var guestBookFolder = "feeling";

Event.observe(window, 'load', init, false);

function init(){
    
	new Ajax.Request(guestBookFolder + "/index.php?route=comment/newcomment/", {
		method: 'get',
		onSuccess: function(transport) {
			
			if (transport.status == 200) {

				$('commentInput').update(transport.responseText);
			}
			else {
			
				$('commentInput').update('<p style="color: red;">Problem communicating with the server! Please repeat the action.</p>');
			}
		}
	});
	
	new Ajax.Request(guestBookFolder + "/index.php?route=comment/get/", {
		method: 'get',
		onSuccess: function(transport) {
			
			if (transport.status == 200) {

				$('commentsDisplay').update(transport.responseText);
				
				$('commentsDisplay').down();
			}
			else {
				$('commentsDisplay').update('<p style="color: red;">Problem communicating with the server! Please repeat the action.</p>');
			}
		}
	});
}

	
function getComments(page) {
		
	new Ajax.Request(guestBookFolder + "/index.php?route=comment/get/"+page+"/", {
		method: 'get',
		onSuccess: function(transport) {
			
			if (transport.status == 200) {
				$('commentsDisplay').update(transport.responseText);
			}
			else {
				$('commentsDisplay').update('<p style="color: red;">Problem communicating with the server! Please repeat the action.</p>');
			}
		}
	});
}
	
function validateForm(formElem) {
	
	formElem = $(formElem);
	
	var guestName = formElem.down('input[name=guestName]').getValue();
	var guestEmail = formElem.down('input[name=guestEmail]').getValue();
	var commentText = formElem.down('textarea[name=commentText]').getValue();
	var verificationCode = formElem.down('input[name=verificationCode]').getValue();
	
	var errMsg = "";
	
	if(guestName.empty() || commentText.empty()) {
			
		errMsg += '<p style="color: red;">You must enter the required fields (Name and Message)!</p>';
	}
	
	if((guestName.length > 50) || (commentText.length > 250) || (guestEmail.length > 100)) {
			
		errMsg += '<p style="color: red;">The text you have entered is too long (name 50 characters, email 100 characters, Message 250 characters max)!</p>';
	}
	
	var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if(!guestEmail.empty() && !emailFilter.test(guestEmail)) {
	
		errMsg += '<p style="color: red;">The email you entered is not valid!</p>';
	}
	
	if(verificationCode.empty()) {
	
		errMsg += '<p style="color: red;">You must enter a verification code!</p>';
	}
	
	return errMsg;
}

function insertComment(e) {
	
	formElem = Event.element(e);
	formElem.disabled = true;
	$('commentInputSubmitButton').disabled = true;

	Event.stop(e);
	
	var responseText = $('responseText');
	
	errMsg = validateForm(formElem);
	
	if(!errMsg.empty()) {
		responseText.update(errMsg);
		formElem.disabled = false;
		$('commentInputSubmitButton').disabled = false;
		return;
	}
		
	var params = formElem.serialize(true);
			
	new Ajax.Request(guestBookFolder + "/index.php?route=comment/insert/", {
		method: 'post',
		parameters: params,
		onSuccess: function(transport) {
			
			if (transport.status == 200) {
				$('commentInput').update(transport.responseText);
			}
			else {
				responseText.update('<p style="color: red;">Problem communicating with the server! Please repeat the action.</p>');
			}
			formElem.disabled = false;
			$('commentInputSubmitButton').disabled = false;
		}
	});
}

/*
function countRemainChars(e) {
	var maxChars = 250;
	
	var commentText = Event.element(e).getValue();
	var remain = maxChars - commentText.length;

	$('nummberOfRemainChars').update(remain);
}
*/

function limitText(e) {
	
	var maxChars = 250;
	
	var limitField = Event.element(e);
	
	var limitCount = $('nummberOfRemainChars');
	
	if (limitField.getValue().length > maxChars) {
		limitField.value = limitField.getValue().truncate(maxChars, "");
	} else {
		limitCount.update(maxChars - limitField.getValue().length);
	}
	
}
