// $RCSfile: comments.js,v $
// $Source: /cvs/cyplonweb-live/javascript/comments.js,v $, $Revision: 1.1 $, $Date: 2010/07/12 10:32:46 $, $State: Exp $

function postComment() {
	var inputs = $('commentForm').getElementsByTagName('input');
	var pars = "";
	
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == "checkbox") {
			if (inputs[i].checked == true) {
				pars = pars + inputs[i].name + '=' + inputs[i].value + "&";
			}
		} else if (inputs[i].type == "radio") {
			if (inputs[i].checked == true) {
				pars = pars + inputs[i].name + '=' + inputs[i].value + "&";
			}
		} else {
			pars = pars + inputs[i].name + '=' + inputs[i].value + "&";
		}		
	}
	
	pars = pars + 'commentText=' + $('commentText').value;
	
	var url = 'comments-func';
	
	var myAjax = new Ajax.Request( url, { 
		method: 'post',
		parameters: pars,
		onLoading: function() {
			$('bottomLine').innerHTML = 'Please wait <img src="images/indicator.gif" alt="Please Wait" />';
		},
		onComplete: showResponse
	}); 
}

function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}

function showResponse(requestObject) {
	var newPara = document.createElement('p');
	newPara.innerHTML = 'Thankyou for submitting your comments. They have been sent to the administrator for moderation.'
	newPara.style.visibility = 'hidden';
	newPara.id = 'newpara';
	$('comments').appendChild(newPara);
	new Effect.BlindUp('commentForm');
	//$('commentForm').style.display = 'none';
	$('newpara').style.visibility = 'visible';
}

function checkValidation() {
//alert('hello');
	var inputs = $('commentForm').getElementsByTagName('input');
	
	if ($('commentPara').getElementsByTagName('label').length > 0) {
		 $('commentPara').getElementsByTagName('label')[0].parentNode.removeChild($('commentPara').getElementsByTagName('label')[0]);
	}
	
	var msgs = $('comments').getElementsByTagName('span');
	var lengthTest = msgs.length;
	for (var i = 0; i < lengthTest; i++) {
		msgs[0].parentNode.removeChild(msgs[0]);
	}
		
	var url = 'secureCheck';
	var pars = 'secure=' + $('secure').getElementsByTagName('input')[0].value;
	var secureCheck = new Ajax.Request( url, { 
	method: 'post',
	parameters: pars,
	onComplete: function(requestObject) {
		var xmldoc = requestObject.responseXML;
		var response = xmldoc.getElementsByTagName('response')[0].firstChild.nodeValue;
		var flag = true;
		
		if (response != "true") {
			flag = false;
			$('secure').getElementsByTagName('label')[0].innerHTML = $('secure').getElementsByTagName('label')[0].innerHTML + ' <span>(please enter the security code)</span>';
		}
		
		if ($('firstName').getElementsByTagName('input')[0].value == "") {
			flag = false;
			$('firstName').getElementsByTagName('label')[0].innerHTML = $('firstName').getElementsByTagName('label')[0].innerHTML + ' <span>(please enter your first name)</span>';
		}
		
		if ($('surname').getElementsByTagName('input')[0].value == "") {
			flag = false;
			$('surname').getElementsByTagName('label')[0].innerHTML = $('surname').getElementsByTagName('label')[0].innerHTML + ' <span>(please enter your surname)</span>';
		}
		
		if ($('email').getElementsByTagName('input')[0].value == "") {
			flag = false;
			$('email').getElementsByTagName('label')[0].innerHTML = $('email').getElementsByTagName('label')[0].innerHTML + ' <span>(please enter your email)</span>';
		} else if (isValidEmail($('email').getElementsByTagName('input')[0].value) == false) {
			flag = false;
			$('email').getElementsByTagName('label')[0].innerHTML = $('email').getElementsByTagName('label')[0].innerHTML + ' <span>(please a valid email addess)</span>';
		}
		
		if ($('commentText').value == "") {
			flag = false;
			var commentError = document.createElement('label');
			commentError.innerHTML = '<span style="width: 95%; text-align: right; display: block;">(please enter some text for your comment)</span>';
			$('commentPara').appendChild(commentError);
		}
		
		if (flag == false) {
			new Effect.Shake('comments');
			return false;
		} else if (flag == true) {
			postComment();
			return false;
		}
	}
	});
}

Event.observe(window, 'load', function() {
//window.onload = function() {
    Event.observe($('commentSubmit'), 'click', function() {
	//$('commentSubmit').onclick = function() {
		checkValidation();
		return false;
	});
});

