//--------------------------------------------------
addLoadEvent (

	function() 
	{
		if (document.getElementsByTagName) 
		{
			firstError=10000;
			
			// check the form exists and add the validation   
			if( document.getElementById("personalDetails"))
			{		
				document.getElementById("personalDetails").onsubmit=validateinput;
			} 
            
            var inputs = document.getElementsByTagName('input'); 
			var inputsLength = inputs.length;
			for (var i=0; i<inputsLength; i++) 
			{
				inputs[i].onfocus=removeError;
			}
			
			return true;			            
		} 
		else
		{
			return false;
		}
	}
)
//--------------------------------------------------

function validateinput()
{
    //alert ("in validateinput");
	// check all required input (radios and texts);
	var errorCount=0;
	
	if (document.getElementById("edName").value=="")
	{
		var tx="You need to tell us your name."
		errorCount++;
		appendError(document.getElementById("edName").parentNode,tx);
	}

	if (document.getElementById("edEmail").value=="")
	{
		var tx="You must supply your email address."
		errorCount++;
		appendError(document.getElementById("edEmail").parentNode,tx);   
    }
	else
	{
		if (!isEmailAddr(document.getElementById("edEmail").value)) {
			var tx="Your email address appears to be invalid."
			errorCount++;
			appendError(document.getElementById("edEmail").parentNode,tx);
		}
	}
	
	if (document.getElementById("edConfirmEmail").value=="")
	{
		var tx="You must confirm your email address."
		errorCount++;
		appendError(document.getElementById("edConfirmEmail").parentNode,tx);
	}
	else
	{
		
		if (document.getElementById("edEmail").value != document.getElementById("edConfirmEmail").value) {
			var tx="Your confirm email address entry does not match."
			errorCount++;
			appendError(document.getElementById("edEmail").parentNode,tx);
		}
	}
	
	if(errorCount==0)
	{ 
		//no errors, all is well   	   
		return true;  
	}
	else
	{
	 
	    window.scrollTo(0,firstError);

		document.getElementById('contentBottom').style.position="relative";
		//document.getElementById('content').style.paddingBottom="0";
		document.getElementById('contentInput').style.paddingBottom="0";
	
	 return false;
	}
}

// validate format of email address
function isEmailAddr(str) {
	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	return re.test(str);
}

//showing errors in context
var firstError;
function appendError(obj,error) 
{
	//error="x";

	var y =  findPosY(obj)-10; 

	if(y>0 && y<firstError){
		firstError= y;
	}
	var temp=document.createElement("p");
	var txt=document.createTextNode(error); 
	//temp.className="error";
	temp.className="inputError";
	temp.title="inputError";
	temp.appendChild(txt);
	// make sure we're not doubling up error messages
	if(obj && (!obj.lastChild || !obj.lastChild.className || obj.lastChild.className != "inputError"))
	{
		obj.appendChild(temp); 
	} 
}   

//get rid of error messages
function removeError()
{ 

	var par=this.parentNode; 
	var parpar=par.parentNode;
	var parparpar=parpar.parentNode; 
	if(parparpar && parparpar.lastChild && parparpar.lastChild.className && parparpar.lastChild.className=="inputError")
	{
		parparpar.removeChild(parparpar.lastChild)
	}

	if(parpar && parpar.lastChild && parpar.lastChild.className && parpar.lastChild.className=="inputError")
	{
		parpar.removeChild(parpar.lastChild);
	}
	if(par && par.lastChild && par.lastChild.className && par.lastChild.className=="inputError")
	{
		par.removeChild(par.lastChild)
	}

	return true;
}  

function notTelephoneNum(str) {
	str = str.replace(/[^0-9]/g, '');
	return (str.length < 6);
}

function notSortCode(str) {
	str = str.replace(/[^0-9]/g, '');
	return (str.length != 6);
}

// check a date is well-formed and lies between limits
function dateCheck(day,month,year,lowLimit,highLimit){

	if(isValidDate(day,month,year)){
        //isVaildDate is in scripts.js
		var entered=new Date(year,(month - 1),day); // (month - 1) as January is month 0
		var today=new Date();
		var diff=today.getTime()-entered.getTime();
		var one_year=1000*60*60*24*365.242199;
		var years=Math.floor(diff/one_year);
		
		
		if(years<=highLimit   && years>=lowLimit) 
		{
			return years;  //this'll be the age if the given date was a DOB
		}
		else
		{    
			return -1;  //out of range
		}
	} else{

		return -2;   // not a valid date

	}

}