// JavaScript Document

/*
Form validation functions
Two versions of each -  a) name begins with rq for required.  Send the data to checkEmpty first
Required						Not Required
rqNotEmpty
rqAlphOnly						alphOnly
rqNumsOnly						numsOnly
rqCheckEmail					checkEmail
rqImage							image
rqPasswordMatch
*/
/* check if a field is empty*/
function rqNotEmpty(entered,fieldname){
	if(entered.length==0){
	//document.getElementById(fieldname +'_msg').style.backgroundColor='#ff0000';
	document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#fa0a2a;">Please fill in this field.</span>';
	}else{
	//document.getElementById(fieldname+'_msg').style.backgroundColor='#ffFFFF';
	document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" /> ';
	}
	return true;
}

function checkEmail(entered,fieldname){
//regexy = /^[\w\.]+@[a-zA-Z0-9_]+?\.[a-zA-Z\.]{2,6}$/;
//regexy = /^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$^/;
//regexy = /^([a-zA-Z0-9]+([\.+_-][a-zA-Z0-9]+)*)@(([a-zA-Z0-9]+((\.|[-]{1,2})[a-zA-Z0-9]+)*)\.[a-zA-Z]{2,6})$/;
regexy = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/;

if (!regexy.test(entered)) {
	//document.getElementById(fieldname+"_msg").style.backgroundColor='red';
	document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#fa0a2a;">Valid email address please.</span>';
	}
else {
	//document.getElementById(fieldname+"_msg").style.backgroundColor='#fffFFF';
	document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" />';
	return true;}/**/
}
/* email check if field is required */
function rqCheckEmail(entered,fieldname){

	if(entered.length==0){
		rqNotEmpty(entered,fieldname);
	}else{
//regexy = /^[\w\.]+@[a-zA-Z_]+?\.[a-zA-Z\.]{2,6}$/;
//regexy = /^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$^/;
//regexy = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
regexy = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/;
if (!regexy.test(entered)) {
	//document.getElementById(fieldname+"_msg").style.backgroundColor='red';
	document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#fa0a2a;">Valid email address please.</span>';
	}
else {
	//document.getElementById(fieldname+"_msg").style.backgroundColor='#fffFFF';
	document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" />';
	return true;}
	}
}

function numbersOnly(entered,fieldname){
var regexy = /^[1-9.]{1}[0-9.]*$/;
if (!regexy.test(entered)) {
	document.getElementById(fieldname+"_msg").style.backgroundColor='red';
	document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#ffffff;">Please enter a number.</span>';
	}
else {
	document.getElementById(fieldname+"_msg").style.backgroundColor='#fffFFF';
	document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" />';
	return true;}/**/
}
function rqNumbersOnly(entered,fieldname){
	
	if(entered.length==0){
		rqNotEmpty(entered,fieldname);
	}else{
		
		numbersOnly(entered,fieldname);
	}

}

function checkCurrency(entered,fieldname){
	
var regexy = /^\d+(?:\.\d{0,2})?$/;
	if (!regexy.test(entered)) {
		document.getElementById(fieldname+"_msg").style.backgroundColor='red';
		document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#ffffff;">xxx.00 Decimal format</span>';
		}
	else {
		document.getElementById(fieldname+"_msg").style.backgroundColor='#fffFFF';
		document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" />';
		return true;
		}/**/
	}

function rqCheckCurrency(entered,fieldname){
	if(entered.length==0){
		rqNotEmpty(entered,fieldname);
	}else{
		checkCurrency(entered,fieldname);
	}
	
}

function phoneCheck(entered,fieldname){

	if(entered.length > 0){

		var regexy = /^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/;
		if (!regexy.test(entered)) {
			//document.getElementById(fieldname+"_row").style.backgroundColor='red';
			document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#fa0a2a;">Valid phone number please.</span>';
		}else {
			//document.getElementById(fieldname+"_row").style.backgroundColor='#fffFFF';
			document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" />  ';
			return true;}
	}else{
	}
}
/* test for alphabetical entries only. need the base name of the divs that have id = fieldname_row etc */
function alphOnly(entered,fieldname){
var regexy = /[0123456789.\/\\.<>?:";',\[\]\{\}=\+\*\)\(&^%$#@!]/;
//var regexy = /\d/;
if (regexy.test(entered)) {

	//document.getElementById(fieldname+'_msg').style.visibility='visible';
	document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#fa0a2a;">Letters only please.</span>';
	}
else {
	//document.getElementById(fieldname+'_msg').style.backgroundColor='#ffFFFF';
	document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" />  ';
	return true;}
}/* end alphonly*/

/* test for alphabetical entries only. need the base name of the divs that have id = fieldname_row etc */
function rqAlphOnly(entered,fieldname){

	if(entered.length==0){
		rqNotEmpty(entered,fieldname);
	}else{

		var regexy = /[0123456789.\/\\.<>?:";',\[\]\{\}=\+\*\)\(&^%$#@!]/;
		//var regexy = /\d/;
		if (regexy.test(entered)) {

			//document.getElementById(fieldname+'_msg').style.visibility='visible';
			document.getElementById(fieldname+'_msg').innerHTML='<span style="color:#fa0a2a;">Letters only please.</span>';
		}else {
			//document.getElementById(fieldname+'_msg').style.backgroundColor='#ffFFFF';
			document.getElementById(fieldname+'_msg').innerHTML='<img src="images/green-tick.gif" />  ';
			return true;}
	}		
}/* end rqAlphOnly*/

function emptyvalidation(entered, alertbox)
{
// Emptyfield Validation by Henrik Petersen / NetKontoret
// Explained at www.echoecho.com/jsforms.htm
// Please do not remove this line and the two lines above.
with (entered)
{
if (value==null || value=="")
{if (alertbox!="") {alert(alertbox);} return false;}
else {return true;}
}
} 
/* alphabetical only*/
function nonumsimple(entered){
var texttotest = entered;
var regexy = /[a-zA-Z.\/\\.<>?:";',\[\]\{\}=\+\-\*\)\(&^%$#@!]/;
//var regexy = /\d/;
if (regexy.test(texttotest)) {
	document.getElementById('fname_row').style.backgroundColor='red';
	document.getElementById('fname_msg').style.visibility='visible';
	}
else {
	document.getElementById('fname_row').style.backgroundColor='#ffFFFF';
	document.getElementById('fname_msg').style.visibility='hidden';
	return true;}
}

function email_check(entered,fieldname){
var regexy;	
regexy = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
		//regexy = /[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/;
if (regexy.test(entered)) {
	document.getElementById(fieldname+'_row').style.backgroundColor='#00FFFF';
	document.getElementById(fieldname+'_msg').style.visibility='hidden';
	}
else {
	document.getElementById(fieldname +'_row').style.backgroundColor='#cc0000';
	document.getElementById(fieldname+'_msg').style.visibility='visible';
	return true;}
}    

function emailvalidation(entered, alertbox)
{
// E-mail Validation by Henrik Petersen / NetKontoret
// Explained at www.echoecho.com/jsforms.htm
// Please do not remove this line and the two lines above.
with (entered)
{
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
lastpos=value.length-1;
if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2)
{
	document.getElementById("email_row").style.backgroundColor='red';
	document.getElementById("email_msg").style.visibility='visible';
	return false;
}
/*{if (alertbox) {alert(alertbox);} return false;}
{if (alertbox) {} return false;}*/
else {	
	document.getElementById("email_row").style.backgroundColor='green';
	document.getElementById("email_msg").style.visibility='hidden';
	return true;}
}
} 	

/*Sends the input value to checkDuplicates.php via $.post to determine whether the 
* data has already been submitted into the database. If it hasn't it then sends the 
* input value to the appropriate validation function above. 
*/
function checkDuplicates(fieldVal, fieldname, validation){

		$.post("admin/checkDuplicates.php",{ sendValue: fieldVal },
		function(data){
			document.getElementById(fieldname+'_msg').style.color='#fa0a2a';
			document.getElementById(fieldname+'_msg').innerHTML = data.returnValue; 
			if(data.returnValue == 'Details accepted.'){
				if(validation=='rqCheckEmail'){
					rqCheckEmail(fieldVal, fieldname);
				}else{
					rqNotEmpty(fieldVal, fieldname);
				}
			}else {			
			}
		}, "json");
}
