

// ****************************************
// FORM CHECKER VERSION 1.1
// Released: 26 August 2004
// Author: Ted Howe
// Company: Fortune Cookie
// ****************************************
Date.prototype.getDayName = function(shortName) {
	var Days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];  
	if (shortName) {     
		return Days[this.getDay()].substr(0,3);  
		} else {     
			return Days[this.getDay()];  
			}
		}
		Date.prototype.getMonthName = function() { 
			return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][this.getMonth()]; 
			}
function Get_Form_Board(){
//alert(document.request.board[1]);

for (var i=0; i < document.request.board.length; i++)
   {
   if (document.request.board[i].checked)
      {
      var date_vars2 = document.request.board[i].value;
	 // alert("qwe");
      }
   }

var date_vars = document.request.board.value;

//alert (date_vars);


//	var date_vars = rad;
//Winter_Week
//	board
//alert(rad_val);
var e = new Date('04/18/2010');

if (date_vars == '1')
{
	var d = new Date('12/16/2009');
	var f = new Date('12/20/2009');
	var day_add = 7;
//	alert("W-S");
}

if (date_vars == '2')
{
	var d = new Date('12/17/2009');
	var f = new Date('12/20/2009');
	var day_add = 7;
	//alert("Thur-Sun");
}
if (date_vars == '3')
{
	var d = new Date('12/13/2009');
	var f = new Date('12/16/2009');
	var day_add = 7;
//alert("S-W");
}
if (date_vars == 'hb')
{
//	alert("hb");
	var d = new Date('12/13/2009');
	var f = new Date('12/20/2009');
	var day_add = 7;
//	alert("S-S");
}
if (date_vars == 'sc')
{
//	alert("Catered");
	var d = new Date('12/12/2009');
	var f = new Date('12/19/2009');
	var day_add = 7;
//	alert("S-S");
}


var i = e;
removeAllOptions(document.request.Winter_Week);
do
{
	month = d.getMonthName();
	monthf = f.getMonthName();
if (d.getDate() <= 9)
{
	date_zero = "0";
//	alert(d.getDate());
} else {
	date_zero = "";
}
if (f.getDate() <= 9)
{
	date_zero2 = "0";
//	alert(f.getDate());
} else {
	date_zero2 = "";
}
//need to check what dates are selected so that they can then be matched against the list here as selected
//alert(f.getFullYear());
//var the_date_to_match = d.getDate()+"-"+month+"-"+d.getFullYear()
//alert(the_date_to_match);
//alert(date_range+"DATE MATCH");
//if (date_range == the_date_to_match)
//{
	//alert("match");
	//var selected = " selected";
//} else {
selected = "";
	//ert("no matcht");
//}

addOption(document.request.Winter_Week, d.getDate()+"-"+month+"-"+d.getFullYear(), date_zero+d.getDate()+" "+month+" - "+date_zero2+f.getDate()+" "+monthf, selected);

d.setDate(d.getDate()+7); 
f.setDate(f.getDate()+7);

}
while (d<e);

}

		function chkForm_contact(fo){
		if(dom){
		submittable = false;
		errorlist = new Array();
		errorlistcount = 0;
		
		//personal detail fields
	//	chkSelect(fo.title,'Please enter your Title');
		chkText(fo.first_name,'Required','Required');
		chkText(fo.last_name,'Required','Required');
		chkEmail(fo.email,'Please enter a valid Email address');
		chkEmailConf(fo.confemail,'Please confirm Email address');
		
		//address fields
		//chkText(fo.address1,'Please enter your House Name or Number','Please enter your house name or no.');
		//chkText(fo.address2,'Please enter your Street','Please enter your street');
		//chkText(fo.address3,'Please enter your Town','Please enter your town or city');
	//	chkPostcode(fo.postcode,'Please enter a valid Postcode');
		
		
		//card details fields
		chkSelect(fo.source,'Please tell us where you heard about Alpine Elements');
		
		
		
		
		chkFocus();
		
		return submittable;	
		}
		}


		
		function chkForm(fo){
		if(dom){
		submittable = false;
		errorlist = new Array();
		errorlistcount = 0;
		
		//personal detail fields
		chkSelect(fo.title,'Please enter your Title');
		chkText(fo.first_name,'Required','Required');
		chkText(fo.last_name,'Required','Required');
		chkEmail(fo.email,'Please enter a valid Email address');
		chkEmailConf(fo.confemail,'Please confirm Email address');
		
		//address fields
		chkText(fo.address1,'Please enter your House Name or Number','Please enter your house name or no.');
		chkText(fo.address2,'Please enter your Street','Please enter your street');
		chkText(fo.address3,'Please enter your Town','Please enter your town or city');
		chkPostcode(fo.postcode,'Please enter a valid Postcode');
		
		
		//card details fields
		chkSelect(fo.source,'Please tell us where you heard about Alpine Elements');
		
		
		
		
		chkFocus();
		
		return submittable;	
		}
		}

	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];
	focuser.focus(); 

	
}


