	function displayError(name,error) {
		$("#error_"+name).fadeIn("fast");
		$("#error_"+name).html("<img src='formObj/alert.png' align='left'/>&nbsp;&nbsp;"+error);
	}

	function closeError(name,error) {
		$("#error_"+name).fadeOut("fast");
	}

	function displayThinking(name) {
		$("#error_"+name).fadeIn("fast");
		$("#error_"+name).html("<img src='formObj/ajax-loader-dark.gif' align='left'/>&nbsp;&nbsp; Checking ...");
	}

	function isBlank(form,name,label,option) {
		value = eval("document."+form+"."+name+".value");
		if(value =="") {
			displayError(name,"Please fill in "+label);
			return false;
		} else {
			return true;
		}
	}
	
	function checkLengthGreater(form,name,label,option) {
		value = eval("document."+form+"."+name+".value");
		strLength = value.length; 
		if(strLength<option) {
			displayError(name,label+" must be at least "+option+" characters long");
			return false;
		} else {
			return true;
		}
	}
	
	function checkLengthLess(form,name,label,option) {
		value = eval("document."+form+"."+name+".value");
		strLength = value.length; 
		if(strLength>option) {
			displayError(name,label+" must be at most "+option+" characters long");
			return false;
		} else {
			return true;
		}
	}

	function isNot(form,name,label,option) {
		value = eval("document."+form+"."+name+".options[document."+form+"."+name+".selectedIndex].value");
		if(value==option) {
			displayError(name,"Please select "+label);
			return false;
		} else {
			return true;
		}
	}

	function checkPattern(form,name,label,pattern) {
		var regExp = pattern;
		value = eval("document."+form+"."+name+".value");
		test = value.search(regExp);
		if (test==-1) {
			return false;
		} else {
			return true;
		}
	}

	function isDecimal(form,name,label) {
		if(checkPattern(form,name,label,/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/)==true) {
			return true;
		} else { 
			displayError(name,label+" must be a number");
			return false;
		}
	}

	function isInt(form,name,label) {
		if(checkPattern(form,name,label,/(^-?\d\d*$)/)==true) {
			return true
		} else { 
			displayError(name,label+" must be a whole number");
			return false;
		}
	}

	function isDate(form,name,label) {
		if(checkPattern(form,name,label,/([0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2})/)==true) {
			
			return true
		} else { 
			displayError(name,label+" must be in date format (dd-mm-yyyy)");
			return false;
		}
	}

	function isEmail(form,name,label) {
		if(checkPattern(form,name,label,/^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/)==true) {
			return true
		} else { 
			displayError(name,label+" must be a valid email address");
			return false;
		}
	}

	function checkDB(form,name,label,option) {
		displayThinking(name);
		value = eval("document."+form+"."+name+".value");
		$.ajax({
		   type: "GET",
		   url: "checkEmail.php",
		   async: false,
		   data: "check="+value,
		   success: function(msg){
				if (msg=="FALSE")
				{
					closeError(name);
					return true;
				} else {
					displayError(name,msg);
					return false;
				}
		   }
		 });

		
		
	}

	function checkAmount(form,name,label,option) {
		
		if(isDecimal(form,name,label)) {
			value = eval("document."+form+"."+name+".value");
			if(!eval(value+option)) {
				message = label+" must be ";
				message+=option.substring(0,1);
				message+=" than ";
				message+=option.substring(1,option.length);
				displayError(name,message);
				return false;
			}
		} else {
			return false;
		}
	}

	function checkMinSelected(name,label,option) {
		total = 0;
		max = document.jack.jack_homelocation.length;
			for (var i = 0; i < max; i++) {
				if(document.jack.jack_homelocation[i].checked==true) {
					total += 1;
				}
			}
			if(total<option) {
				displayError(name,"Please select at least "+option+" options");
				return false;
			} else {
				return true;
			}
	}

	function checkSelected(name,label,option) {
		total = 0;
		max = document.jack.jack_homelocation.length;
			for (var i = 0; i < max; i++) {
				if(document.jack.jack_homelocation[i].checked==true) {
					total += 1;
				}
			}
			if(total!=option) {
				displayError(name,"Please select "+option+" options");
				return false;
			} else {
				return true;
			}
	}

	function checkMaxSelected(name,label,option) {
		total = 0;
		max = document.jack.jack_homelocation.length;
			for (var i = 0; i < max; i++) {
				if(document.jack.jack_homelocation[i].checked==true) {
					total += 1;
				}
			}
			if(total>option) {
				displayError(name,"Please select at most "+option+" options");
				return false;
			} else {
				return true;
			}
	}
