

// ****************************************
// FORM CHECKER VERSION 1.1
// Released: 26 August 2004
// Author: Ted Howe
// Company: Fortune Cookie
// ****************************************


	var dom = (document.getElementById)?true:false;
	
	var submittable;
	var email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var postcode = /^[a-zA-Z]{1,2}[a-zA-Z0-9]{1,2}[ ]?[0-9]{1}[a-zA-Z]{2}$/;
	var phoneNums = /^[0-9 \+\(\)]{8,}$/;
	var yearNums = /[1,2][9,0][0-9]{2}/;
	var nums = /[0-9]{1,}/
	var errorlist;
	var errorlistcount = 0;

// CLEAR FIELD
function clearField(elmnt,defaultVal){
elmnt.value="";
}
	

// CHECK NORMAL INPUT FIELDS
function chkText(elmnt,msg,defaultVal){
	elmntName = elmnt.name;
	
	if(elmnt.value=="" || elmnt.value==defaultVal){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}
}


// CHECK EMAIL FIELDS
function chkEmail(elmnt,msg){
	elmntName = elmnt.name;
	text = elmnt.value;
	result = email.test(text);
	if(result==false){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}			
}

// CHECK EMAIL_CONFIRMATION_FIELDS
function chkEmailConf(elmnt,msg){
	elmntName = elmnt.name;
	text = elmnt.value;
	result = email.test(text);
	if(result==false){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
		//means there is a problem else carry on
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}			
}


// CHECK POSTCODES
function chkPostcode(elmnt,msg){
	elmntName = elmnt.name;
	text = elmnt.value;
	result = postcode.test(text);
	if(result==false){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}			
}


// CHECK NUMBER-ONLY FIELDS
function chkNums(elmnt,msg){
	elmntName = elmnt.name;
	text = elmnt.value;
	result = nums.test(text);
	if(result==false){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}			
}




// CHECK PHONE NUMBER-ONLY FIELDS
function chkPhoneNums(elmnt,msg){
	elmntName = elmnt.name;
	text = elmnt.value;
	result = phoneNums.test(text);
	if(result==false){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}			
}


// CHECK NORMAL SELECT LISTS
function chkSelect(elmnt,msg){
	elmntName = elmnt.name;
	if(elmnt.options[elmnt.selectedIndex].value==""){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}	
}


// CHECK RADIO BUTTONS
function chkRadio(elmnt,msg){
	elmntName = elmnt[0].name;
	elmntLength = elmnt.length
	falseCheck = 0
	
	for(i=0;i<elmntLength;i++){
		if(elmnt[i].checked==false){
		falseCheck++
		}
	}
	
	if(falseCheck==elmntLength){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt[0]);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}	
	
	
}


// CHECK TEXTAREAS
function chkTextArea(elmnt,msg){
	elmntName = elmnt.name;
	
	if(elmnt.innerHTML==""){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}
}






// CHECK DATE OF BIRTH
function chkDob(elmntDay,elmntMonth,elmntYear,msg,warn){
	elmntNameDay = elmntDay.name;
	elmntNameMonth = elmntMonth.name;
	elmntNameYear = elmntYear.name;
	
	text = elmntYear.value;
	result = yearNums.test(text);
	
	currentDate = new Date();
	currentYear = currentDate.getFullYear();
	
	if(text>currentYear){
	result=false
	}
	
	if(elmntYear.value=="" || elmntYear.value=="19--" || result==false || elmntDay.value=="" || elmntMonth.value==""){
	submittable=false;
	document.getElementById(warn+"_warn").className="warn";
	document.getElementById(warn+"_warn").innerHTML=msg;
	errorList(elmntDay);
	}
	else{
	
		if(elmntYear.value/4 == parseInt(elmntYear.value/4)){leapyear=true;}
		else{leapyear=false}
	

		if(elmntMonth.value=="April" || elmntMonth.value=="June" || elmntMonth.value=="September" || elmntMonth.value=="November"){
			if(elmntDay.value=="31"){
			document.getElementById(warn+"_warn").className="warn";
			document.getElementById(warn+"_warn").innerHTML=msg;
			errorList(elmntDay);
			}
			else{
			document.getElementById(warn+"_warn").innerHTML="";
			document.getElementById(warn+"_warn").className="warnEmpty";
			}
		}
		else if (elmntMonth.value=="February"){
			if(leapyear==false){
				if(elmntDay.value=="29" || elmntDay.value=="30" || elmntDay.value=="31"){
				document.getElementById(warn+"_warn").className="warn";
				document.getElementById(warn+"_warn").innerHTML=msg;
				errorList(elmntDay);
				}
				else{
				document.getElementById(warn+"_warn").innerHTML="";
				document.getElementById(warn+"_warn").className="warnEmpty";
				}		
			}
			else{
				if(elmntDay.value=="30" || elmntDay.value=="31"){
				document.getElementById(warn+"_warn").className="warn";
				document.getElementById(warn+"_warn").innerHTML=msg;
				errorList(elmntDay);
				}
				else{
				document.getElementById(warn+"_warn").innerHTML="";
				document.getElementById(warn+"_warn").className="warnEmpty";
				}	
			}		
		}
		else{
		document.getElementById(warn+"_warn").innerHTML="";
		document.getElementById(warn+"_warn").className="warnEmpty";
		}
	
	}


}



// CHECK OTHER TITLE FIELD IF TITLE FIELD IS EMPTY
function chkOtherTitle(elmnt,titleElmnt,msg,defaultVal){
	elmntName = elmnt.name;
	
	if((elmnt.value=="" || elmnt.value==defaultVal) && titleElmnt.value=="Other"){
		submittable=false;
		document.getElementById(elmntName+"_warn").className="warn";
		document.getElementById(elmntName+"_warn").innerHTML=msg;
		errorList(elmnt);
	}
	else{
		document.getElementById(elmntName+"_warn").innerHTML="";
		document.getElementById(elmntName+"_warn").className="warnEmpty";
	}
}




// CHECK DATES FOR CARDS
function chkCardDate(type,elmntMonth,elmntYear,msg,warn){
	elmntMonthName = elmntMonth.name;
	elmntYearName = elmntYear.name;
	
	if(elmntMonth.options[elmntMonth.selectedIndex].value=="" || elmntYear.options[elmntYear.selectedIndex].value==""){
		submittable=false;
		document.getElementById(warn+"_warn").className="warn";
		document.getElementById(warn+"_warn").innerHTML=msg;
		errorList(elmntMonth);
	}
	else{
	
		if(type=="expiry"){
		
			currentDate = new Date();
			currentMonth = currentDate.getMonth();
			currentYear = currentDate.getFullYear();
			currentMonth++;
			
			if(elmntMonth.options[elmntMonth.selectedIndex].value<currentMonth && elmntYear.options[elmntYear.selectedIndex].value==currentYear){
				submittable=false;
				document.getElementById(warn+"_warn").className="warn";
				document.getElementById(warn+"_warn").innerHTML=msg;
				errorList(elmntMonth);
			}
			else{
				document.getElementById(warn+"_warn").innerHTML="";
				document.getElementById(warn+"_warn").className="warnEmpty";
			}		
		
		}
		else if(type=="start"){
		
			currentDate = new Date();
			currentMonth = currentDate.getMonth();
			currentYear = currentDate.getFullYear();
			currentMonth++;
			
			if(elmntMonth.options[elmntMonth.selectedIndex].value>currentMonth && elmntYear.options[elmntYear.selectedIndex].value==currentYear){
				submittable=false;
				document.getElementById(warn+"_warn").className="warn";
				document.getElementById(warn+"_warn").innerHTML=msg;
				errorList(elmntMonth);
			}
			else{
				if(elmntYear.options[elmntYear.selectedIndex].value>currentYear){
				submittable=false;
				document.getElementById(warn+"_warn").className="warn";
				document.getElementById(warn+"_warn").innerHTML=msg;
				errorList(elmntMonth);
				}
				else{
				document.getElementById(warn+"_warn").innerHTML="";
				document.getElementById(warn+"_warn").className="warnEmpty";
				}
			}	
		}
	}	
}






function chkSwitchCards(elmnt,startMonth,startYear,warn,issueNo){
		if(elmnt.options[elmnt.selectedIndex].value!=""){
		var cardTypeVal = elmnt.options[elmnt.selectedIndex].value;
			if(cardTypeVal=="Switch" || cardTypeVal=="Solo" || cardTypeVal=="Electron"){
			chkCardDate('start',startMonth,startYear,'Please enter a valid Start Date','card_start');
			chkNums(issueNo,'Please enter an Issue Number');
			}
			else{
			issueNoName = issueNo.name;
			document.getElementById(warn+"_warn").innerHTML="";
			document.getElementById(warn+"_warn").className="warnEmpty";
			errorList(startMonth);
			document.getElementById(issueNoName+"_warn").innerHTML="";
			document.getElementById(issueNoName+"_warn").className="warnEmpty";
			errorList(issueNo);
			}
		}
}




function errorList(elmnt){
	errorlist[errorlistcount]=elmnt;
	errorlistcount++;
}


function chkFocus(){
	focuser = errorlist[0];
	alert(focuser);
	//focuser.focus(); 

	
}



