// Example:
// simplePreload( '01.gif', '02.gif' ); 
function simplePreload()
{ 
	var args = simplePreload.arguments;
	document.imageArray = new Array(args.length);
	for(var i=0; i<args.length; i++)
	{
	document.imageArray[i] = new Image;
	document.imageArray[i].src = args[i];
	}
}

function getRealLeft(imgElem) { 
		xPos = document.getElementById(imgElem).offsetLeft; 
		tempEl = document.getElementById(imgElem).offsetParent; 
		  while (tempEl != null) { 
			  xPos += tempEl.offsetLeft; 
			  tempEl = tempEl.offsetParent; 
		  } 
		return xPos; 
	} 

function getRealTop(imgElem) {// 
	yPos = document.getElementById(imgElem).offsetTop; 
	tempEl = document.getElementById(imgElem).offsetParent; 
	while (tempEl != null) { 
		  yPos += tempEl.offsetTop; 
		  tempEl = tempEl.offsetParent; 
	  } 
	return yPos; 
} 




function control_dependant(formname, controlledfield, controllingfield, liveoption)
{
//	eval('var '+controlledfield+'_value');
	
	//alert(controlledfield);
	if (controllingfield == ''){
	}else{
		var controllerObj = MM_findObj(controllingfield);
		var controlledObj = MM_findObj(controlledfield);
	//alert(controllerObj.type);
	//alert(controllerObj.type);
		if(controllerObj.type=='select-one'){
			if(controllerObj.value!=liveoption || controllerObj.value==''){
				controlledObj.disabled=true;
				controlledObj.value='';
			}
			else{
				controlledObj.disabled=false;
				var varin='';
			}
		}
		else if(controllerObj.type=='checkbox'){
			//alert(controllerObj.checked);
			if(controllerObj.checked){
				//alert( controlledfield);
				controlledObj.disabled=false;
				
				
			}else{
				
				controlledObj.disabled=true;
				controlledObj.value='';
				
			}
		}
		else
		{
			//alert (controllerObj[liveoption].checked);
			if(controllerObj[liveoption].checked){
				controlledObj.disabled=false;
				//temp='';
				//eval('temp='+controlledfield+'_value');
				//controlledObj.value=temp;
				
		//		document.getElementById(controlledfield).className="text";
			}else{
				controlledObj.disabled=true;
				//eval(controlledfield+'_value="'+controlledObj.value+'"');
				//controlledObj.value='';
				
		//		document.getElementById(controlledfield).className="disabled";
			}
		}
	}
}








function killBoxes (theDiv)
{
	var elem = document.getElementById(theDiv);
     elem.style.display = "none";
//	document.ForMeReg.Kinder1.disabled = true;
//	document.ForMeReg.Kinder2.disabled = true;
//	document.ForMeReg.Kinder3.disabled = true;
//	document.ForMeReg.Kinder4.disabled = true;
}

function showHideBoxes (theDiv, controlfield)
{
	//alert(MM_findObj(controlfield));
	var controllerObj = MM_findObj(controlfield);
	var liveoption = 0
	var elem = document.getElementById(theDiv);
    //alert(controllerObj[liveoption].checked);
	if (controllerObj[liveoption].checked == true){
		elem.style.display = "";
	}else{
		elem.style.display = "none";
	}
	
	//var elem = document.getElementById(theDiv);
   // elem.style.display = "";
  //document.ForMeReg.Kinder1.disabled = false;
	//document.ForMeReg.Kinder2.disabled = false;
	//document.ForMeReg.Kinder3.disabled = false;
	//document.ForMeReg.Kinder4.disabled = false;
}


	

function validatethis(formname){
	//alert("here");
	if (setup_highlighttype + 'x' == 'x') {
		var highlighttype = 'class'; 
	} else {
		//alert(setup_highlighttype);
		var highlighttype = setup_highlighttype	
	}
	var checkboxcount=0;
	var collation=0;

	
	
	if (formname == 'login'){
		var form_action = 'submit';
		}else{
		var form_action = eval('document.'+formname+'.formaction.value')
	}
	d=document.getElementById(formname);
		//alert(d);
	var Errors='';
	var errString="";
	
	if (form_action == 'reset'){
		document.formname.reset()
	}
	else if (form_action == 'back'){
	
	}
	else{
		for($i=1; $i<=d.elements.length; $i++)
		{
			//alert(d.elements[$i-1].name);
			//alert(d.elements[$i-1].type);
			
			if ((d.elements[$i-1].type=="select-one" || d.elements[$i-1].type=="text" || d.elements[$i-1].type=="textarea" || d.elements[$i-1].type=="password" ||  d.elements[$i-1].type=="radio" || d.elements[$i-1].type=="checkbox" || d.elements[$i-1].type=="hidden") && d.elements[$i-1].disabled!=true && d.elements[$i-1].name!= "onsubmit" && d.elements[$i-1].name!= "formaction" && d.elements[$i-1].name.indexOf("_definedsize") < 0  && d.elements[$i-1].name.indexOf("_type") < 0 && d.elements[$i-1].name.indexOf("_old") < 0 && d.elements[$i-1].name.indexOf("SessionID") < 0 && d.elements[$i-1].name.indexOf("recordid") < 0 && d.elements[$i-1].name.indexOf("bty") < 0)
			{
				
				var isrequired='';
				var regex='';
				var dispname='';
				var validationmessage='';
				var checkboxgroup='';
				var checkboxtotal=0;
				var startfield = '';
				//if d.elements[$i-1].name) == 'numberchildren1_m'
				eval('isrequired=required_'+d.elements[$i-1].name);
				eval('regex=regex_'+d.elements[$i-1].name);
				eval('dispname=dispname_'+d.elements[$i-1].name);
				eval('validationmessage=dispmessage_'+d.elements[$i-1].name);
				eval('checkboxgroup=checkboxgroup_'+d.elements[$i-1].name);
				eval('checkboxtotal=checkboxtotal_'+d.elements[$i-1].name);
				eval('startfield = startfield_'+d.elements[$i-1].name);
				
				
				if(validationmessage + 'x' == 'x' ){validationmessage=dispname;}
				//alert (d.elements[$i-1].name + ' ' + isrequired);
				var value=d.elements[$i-1].value;
				var checked=d.elements[$i-1].checked;
				var addErr='';
				
				
				
				
				if(d.elements[$i-1].type=="text" || d.elements[$i-1].type=="password" || d.elements[$i-1].type=="textarea" || d.elements[$i-1].type=="hidden")
				{
					
					
					if(d.elements[$i-1].name =='shopSearchString')
						{
							var search_error = true;
						}else{
							var search_error = false;
						}
						
					if(d.elements[$i-1].name =='LoginUsername' || d.elements[$i-1].name =='LoginPassword' || d.elements[$i-1].name =='LoginEmailAddress' )
						{
							var login_error = true;
						}else{
							var login_error = false;
						}
					
					if(d.elements[$i-1].name =='vouchercode')
						{
							var voucher_error = true;
						}else{
							var voucher_error = false;
						}
					
					//alert(d.elements[$i-1].name + '\n' + value);
					//alert(value+'x'=='x');
					if(d.elements[$i-1].name == 'HomePostcode'){
						//alert(value);
						if(d.elements["HomeCountryID"].value + 'x' == 'x'){
							
							if(required_homepostcode && value+'x'=='x'){
								addErr='required';
							}else{
								addErr='unrequired'; 
							}
						}else{
							if(required_homepostcode && value+'x'=='x'){
								addErr='required';
							}else{
								addErr='unrequired'; 
							}
						}
					}
					else if(isrequired && value+'x'=='x'){
						addErr='required';
							
					}
					else if(regex!='' && value+'x'!='x')
					{
						//alert(regex);
						var rx=new RegExp(regex);
						if(!rx.test(value)){addErr='regex';}
						else{addErr='unrequired';}
					}
					else if (isrequired && value+'x'!=='x')
						{addErr='unrequired';}
					else
					{
						if(d.elements[$i-1].className=="integer"){var rx=new RegExp("^[\-0-9]*$");
						if(!rx.test(value)){addErr='regex';}}
						if(d.elements[$i-1].className=="float"){var rx=new RegExp("^[\-0-9\.]*$");
						if(!rx.test(value)){addErr='regex';}}	
						if(d.elements[$i-1].className=="date" && value+'x'!='x' ){var rx=new RegExp("^[0-3][0-9][\/][0-1][0-9][\/][1-2][0-9][0-9][0-9]$");
						if(!rx.test(value)){addErr='regex';}}	
					}
					
					//alert(d.elements[$i-1].name.indexOf("confirmation_"));
					if(d.elements[$i-1].name.indexOf("confirmation_") != -1 ){
							eval('fieldtoconfirm = d.elements[$i-1].name.replace("confirmation_", "");');							
							eval('valuetoconfirm = document.' + formname + '.' + fieldtoconfirm + '.value');
							//alert(valuetoconfirm);
							//alert(value);
							//addErr='required';
							if(valuetoconfirm == value){
							}else{
								//alert("failed");
								addErr='required';
							}
						}
					
					
				
					if(addErr=='required'){
						if (highlighttype == 'background'){
							d.elements[$i-1].style.backgroundColor = highlightcolour;
						} else if (highlighttype == 'border') {
							
							d.elements[$i-1].style.borderColor = highlightcolour;
							d.elements[$i-1].style.borderWidth = highlightwidth;
							d.elements[$i-1].style.borderStyle = highlightstyle;
						} else if (highlighttype == 'class') {
							
							if(search_error){
								d.elements[$i-1].className = 'search_requiredfield';
							}else if(login_error){
								d.elements[$i-1].className = 'login_requiredfield';
							}else if(voucher_error){
								d.elements[$i-1].className = 'voucher_requiredfield';
							}else{
								if(IsNumeric(d.elements[$i-1].name)){
									d.elements[$i-1].className = 'orderList_requiredfield';
								}else{
									d.elements[$i-1].className = 'requiredfield';
								}
							}
						} else if (highlighttype == 'label') {
							
							if (d.elements[$i-1].name == 'SecurityImageValue') {
								document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
							}else{
								//alert(d.elements[$i-1].name);
								if (startfield + 'x' == 'x'){
									document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
								}else{
									document.getElementById('question_'+startfield).style.color = '#FF0000';
								}
							}
						}
						errString+='\n* '+validationmessage;
							
					}
					else if(addErr=='regex'){
						
						if (highlighttype == 'background'){
							d.elements[$i-1].style.backgroundColor = highlightcolour;
						} else if (highlighttype == 'border') {
							d.elements[$i-1].style.borderColor = highlightcolour;
							d.elements[$i-1].style.borderWidth = highlightwidth;
							d.elements[$i-1].style.borderStyle = highlightstyle;
						} else if (highlighttype == 'class') {
							d.elements[$i-1].className = 'requiredfield';
						} else if (highlighttype == 'label') {
								
							if (d.elements[$i-1].name == 'SecurityImageValue') {
								document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
							}else{
								//alert(d.elements[$i-1].name);
								if (startfield + 'x' == 'x'){
									document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
								}else{
									document.getElementById('question_'+startfield).style.color = '#FF0000';
								}
							}
						}
							
						if(validationmessage==''){validationmessage=dispname+' is entered incorrectly.';}
						errString+='\n* '+validationmessage;
					}
					else {
						//alert(d.elements[$i-1].name + '\n' + value + '\n' + addErr);	
						if (highlighttype == 'background'){
								d.elements[$i-1].style.backgroundColor = '';
							} else if (highlighttype == 'border') {
								
								d.elements[$i-1].style.borderColor = '';
								d.elements[$i-1].style.borderWidth = '';
								d.elements[$i-1].style.borderStyle = '';
							} else if (highlighttype == 'class') {
								if(search_error){
									d.elements[$i-1].className = 'search_requiredfield';
								}else if(login_error){
									d.elements[$i-1].className = 'login_requiredfield';
								}else if(voucher_error){
									d.elements[$i-1].className = 'voucher_requiredfield';
								}else{
									if(IsNumeric(d.elements[$i-1].name)){
										d.elements[$i-1].className = 'orderList';
									}else{
										d.elements[$i-1].className = 'formfield';
									}
								}
							} else if (highlighttype == 'label') {
								//alert(d.elements[$i-1].name);
								if (d.elements[$i-1].name == 'SecurityImageValue') {
									document.getElementById('question_'+d.elements[$i-1].name).style.color = '';
								}else{
									
									if (addErr=='unrequired'){
									//alert(getElementById('question_'+d.elements[$i-1].name));
									document.getElementById('question_'+d.elements[$i-1].name).style.color = '';
									}
								}	
							}
					}
					
				}
				else if(d.elements[$i-1].type=="select-one")
				{
					
					if(isrequired && value+'x'=='x'){
							if (highlighttype == 'background'){
								d.elements[$i-1].style.backgroundColor = highlightcolour;
							} else if (highlighttype == 'border') {
								
								d.elements[$i-1].style.borderColor = highlightcolour;
								d.elements[$i-1].style.borderWidth = highlightwidth;
								d.elements[$i-1].style.borderStyle = highlightstyle;
							} else if (highlighttype == 'class') {
								d.elements[$i-1].className = 'requiredfield';
							} else if (highlighttype == 'label') {
								
								if (d.elements[$i-1].name == 'SecurityImageValue') {
									document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
								}else{
									//alert(d.elements[$i-1].name);
									//alert(value);
									
									if (startfield + 'x' == 'x'){
										document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
									}else{
										document.getElementById('question_'+startfield).style.color = '#FF0000';
									}
									
								}
							}
							
							
							if(validationmessage==''){
								errString+='\n* '+dispname;
							}else{
								errString+='\n* '+validationmessage;
							}
						} else {
							if (highlighttype == 'background'){
								d.elements[$i-1].style.backgroundColor = '';
							} else if (highlighttype == 'border') {
								
								d.elements[$i-1].style.borderColor = '';
								d.elements[$i-1].style.borderWidth = '';
								d.elements[$i-1].style.borderStyle = '';
							} else if (highlighttype == 'class') {
								
								if(d.elements[$i-1].name.indexOf("variationgroup") >= 0)
								{
									d.elements[$i-1].className = 'variationgroupselect';
								}
								else
								{
									d.elements[$i-1].className = 'formfield';
								}
							} else if (highlighttype == 'label') {
								
								if (d.elements[$i-1].name == 'SecurityImageValue') {
									document.getElementById('question_'+d.elements[$i-1].name).style.color = '';
								}else{
									
									document.getElementById('question_'+d.elements[$i-1].name).style.color = '';
								}
							}
						}
				}
				else if(d.elements[$i-1].type=="radio")
				{
					var radioname = d.elements[$i-1].checked;
					//alert(radioname);
					var fieldname = d.elements[$i-1].name;
					e = formname+'.'+fieldname+'.length';
					//alert(eval(e));
					var checkboxlen = (eval(e) - 1);
					//alert(checkboxlen);
					var valselect = false;
					if (!radioname){
						for (var y=0; y <= checkboxlen; y++)
							{
							//alert(y)
							b = formname+'.'+fieldname+'['+y+'].checked';
							//alert(eval(b));
								if (eval(b))
									{
										var valselect = true
									}
							}
					}else{
						var valselect = true
					}
					
					//alert(valselect);
					
					
					//alert(d.elements[$i-1].name);
					//var valselect=false;
					//if(d.elements[$i-1].checked){valselect=true;}
					//if(d.elements[$i].checked){valselect=true;}
					if(isrequired && valselect==false)
						{
							
							for (var y=0; y < checkboxlen; y++)
							{
								k = eval(formname+'.'+fieldname+'['+y+']');
								
								if (highlighttype == 'background'){
									k.style.backgroundColor = highlightcolour;
								} else if (highlighttype == 'border') {
									k.style.borderColor = highlightcolour;
									k.style.borderWidth = highlightwidth;
									k.style.borderStyle = highlightstyle;
								} else if (highlighttype == 'class') {
									//k.className = 'requiredfield';
								} else if (highlighttype == 'label') {
								
									if (d.elements[$i-1].name == 'SecurityImageValue') {
										document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
									}else{
										//alert(d.elements[$i-1].name);
										if (startfield + 'x' == 'x'){
										document.getElementById('question_'+d.elements[$i-1].name).style.color = '#FF0000';
										}else{
											document.getElementById('question_'+startfield).style.color = '#FF0000';
										}
									}
								}
							}
							
							
							if(validationmessage==''){
								errString+='\n* '+dispname;
							}else{
								errString+='\n* '+validationmessage;
							}
						} else {
							for (var y=0; y < checkboxlen; y++)
							{
								k = eval(formname+'.'+fieldname+'['+y+']');
								if (highlighttype == 'background'){
									k.style.backgroundColor = '';
								} else if (highlighttype == 'border') {
									k.style.borderColor = '';
									k.style.borderWidth = '';
									k.style.borderStyle = '';
								} else if (highlighttype == 'class') {
									k.className = 'formfieldBox';
								} else if (highlighttype == 'label') {
								
									if (d.elements[$i-1].name == 'SecurityImageValue') {
										document.getElementById('question_'+d.elements[$i-1].name).style.color = '';
									}else{
										//alert(d.elements[$i-1].name);
										document.getElementById('question_'+d.elements[$i-1].name).style.color = '';
									}
								}
							}
						}
					$i++;
				}else if(d.elements[$i-1].type=="checkbox")
				{
					//This is used to validate multiple checkboxes for the same question
					if (isrequired && checkboxgroup > 0)
					{
						//count so we know when to stop checking checkboxes
						checkboxcount=checkboxcount+1;
						
						//Count number of checkboxes selected
						if (d.elements[$i-1].checked == true){
							collation = collation + 1;
						}
						
						//when loop count reaches desired target - set in setup file, check to error 
						if (checkboxcount == checkboxtotal) {
							if (collation == 0) {
								errString+='\n* '+validationmessage;
////								alert('checkboxtotal = ' + checkboxtotal)
	//							alert('checkboxcount = ' + checkboxcount)
								errString+='\n* '+dispname;
							} else {
								//reset vars for use in next checkbox group
//								alert('shat = ' + collation)
								checkboxcount=0;
								collation=0;				
							}
						}
					} else 
						if(isrequired && d.elements[$i-1].checked == false)
						{	
							if (highlighttype == 'background'){
									d.elements[$i-1].style.backgroundColor = highlightcolour;
								} else if (highlighttype == 'border') {
									
									d.elements[$i-1].style.borderColor = highlightcolour;
									d.elements[$i-1].style.borderWidth = highlightwidth;
									d.elements[$i-1].style.borderStyle = highlightstyle;
								} else if (highlighttype == 'class') {
									d.elements[$i-1].className = 'requiredfield';
									
								}
						
						
							if (setup_alerttype == 2){
								if(validationmessage==''){
									errString+='\n* '+dispname; 
								}else{
									errString+='\n* '+validationmessage;
								}
							}else{
								if(validationmessage==''){
									errString+='\n* '+dispname;
								}else{
									errString+='\n* '+validationmessage;
								}
							}
						} else {
							if (highlighttype == 'background'){
									d.elements[$i-1].style.backgroundColor = '';
								} else if (highlighttype == 'border') {
									
									d.elements[$i-1].style.borderColor = '';
									d.elements[$i-1].style.borderWidth = '';
									d.elements[$i-1].style.borderStyle = '';
								} else if (highlighttype == 'class') {
									d.elements[$i-1].className = 'formfieldBox';
								}
						}
				} 
			}
		}
		if(errString+'x'!='x'){
			
			if (setup_alerttype == 2){
				
				errString = Mid(errString, 3,Len(errString));
				
				if (InStr(errString, "\n") >= 1){
					errString = Mid(errString, 0,InStr(errString, "\n")) ;
				}else{
					errString = Mid(errString, 0,Len(errString)) ;
				}
				
				
				if (errString + 'x' == 'x'){
					return true;
					}
					else{
						if(search_error){
							document.getElementById("searcherrormessage").innerHTML = '';
							document.getElementById("searcherrormessage").innerHTML = errString;
							
							window.scrollTo(getRealLeft("searcherrormessage"),getRealTop("searcherrormessage"));
							//alert(setup_alerttitle + "\n"+errString);
						
						}else if(login_error){
							document.getElementById("loginerrormessage").innerHTML = '';
							document.getElementById("loginerrormessage").innerHTML = errString;
							
							window.scrollTo(getRealLeft("loginerrormessage"),getRealTop("loginerrormessage"));
						
						}else if(voucher_error){
							document.getElementById("vouchererrormessage").innerHTML = '';
							document.getElementById("vouchererrormessage").innerHTML = errString;
							
							window.scrollTo(getRealLeft("vouchererrormessage"),getRealTop("vouchererrormessage"));
							
						}else{
							document.getElementById("errormessage").innerHTML = '';
							document.getElementById("errormessage").innerHTML = errString;
						
							window.scrollTo(getRealLeft("errormessage"),getRealTop("errormessage"));
						}
					return false;
				}
			} else if (setup_alerttype == 3){
				return false;
			}else{
				
				alert(setup_alerttitle + "\n"+errString);
				return false;
				
			}
		}else{
			setWaitVisible();
			//return true;
			
		}
	}
}

	


		function DelayedRedirect(theurl, time_delay) {
			setTimeout(DelayedRedirect_Do_Er1(theurl),time_delay);
		}
		function DelayedRedirect_Do_Er1(urla) {
			return 'DelayedRedirect_Do_Er2(\''+urla+'\')';
		}		
		function DelayedRedirect_Do_Er2(urlb) {
			top.location.href=urlb;
		}
		
		function DelayedRedirectbyForm(theurl, time_delay) {
			setTimeout(DelayedRedirect_Do_Er1_byform(theurl),time_delay);
		}
		function DelayedRedirect_Do_Er1_byform(urla) {
			return 'DelayedRedirect_Do_Er2_byform(\''+urla+'\')';
		}		
		function DelayedRedirect_Do_Er2_byform(urlb) {
			document.auto_redirect.submit();
		}
		

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


function AddressChecking(countryID, addresstype, requiredmarker) {
	
	//alert (addresstype);
	//addresstype = home/billing/delivery
	//if (addresstype == "home") {
//		if (countryID == 5) {
//		
//			required_HomeCounty=true;
//			document.getElementById('req_HomeCounty').innerHTML = requiredmarker;
//			regex_HomeCounty='';
//			
//			required_HomePostcode=false;
//			document.getElementById('req_HomePostcode').innerHTML='';
//			regex_HomePostcode='';
//		
//		} else {
//			
//			required_HomeCounty=true;
//			document.getElementById('req_HomeCounty').innerHTML = requiredmarker;
//			regex_HomeCounty='';
//			
//			required_HomePostcode=true;
//			document.getElementById('req_HomePostcode').innerHTML = requiredmarker;
//			regex_HomePostcode='';
//				
//		}
//	}
//	else if (addresstype == "billing") {
//		if (countryID == 5) {
//		
//			required_HomeCounty=true;
//			document.getElementById('req_BillingCounty').innerHTML = requiredmarker;
//			regex_HomeCounty='';
//			
//			required_HomePostcode=false;
//			document.getElementById('req_BillingPostcode').innerHTML='';
//			regex_HomePostcode='';
//		
//		} else {
//			
//			required_HomeCounty=true;
//			document.getElementById('req_BillingCounty').innerHTML = requiredmarker;
//			regex_HomeCounty='';
//			
//			required_HomePostcode=true;
//			document.getElementById('req_BillingPostcode').innerHTML = requiredmarker;
//			regex_HomePostcode='';
//		
//		}
//	}
//	else if (addresstype == "delivery") {
//		if (countryID == 5) {
//		
//			required_HomeCounty=true;
//			document.getElementById('req_DeliveryCounty').innerHTML = requiredmarker;
//			regex_HomeCounty='';
//			
//			required_HomePostcode=false;
//			document.getElementById('req_DeliveryPostcode').innerHTML='';
//			regex_HomePostcode='';
//		
//		} else {
//			
//			required_HomeCounty=true;
//			document.getElementById('req_DeliveryCounty').innerHTML = requiredmarker;
//			regex_HomeCounty='';
//			
//			required_HomePostcode=true;
//			document.getElementById('req_DeliveryPostcode').innerHTML = requiredmarker;
//			regex_HomePostcode='';
//		
//		}
//	
//	
//	
//	
//	}
	
}





function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


<!--

// Kaosweaver Calendar Settings - do not remove
// by Paul Davis - http://www.kaosweaver.com
// KW_lang[English]
// KW_order[0,1,2]
// KW_del1[/]
// KW_del2[/]
// KW_dd[true]
// KW_cWidth[170]
// KW_fd[-1]

var sDate = new Array();
var mName = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var wName = new Array("Su","Mo","Tu","We","Th","Fr","Sa")
var cFontName = "Arial, Helvetica, sans-serif;"
var KW_color = new Array("#ffffff","#ffcccc","#999999","#ffffff","#ccffcc","#cccccc","#000000","#000000")
var KW_cl=0;
var KW_od=-1;
var KW_tmo=0;
var KW_cWidth=170;
var KW_fd=-1;
var KW_ss=0;
var KW_sw=0;
var descx=-1;
var descy=-1;
var bwNN=(document.captureEvents)?1:0;
function popmousemove(e){descx=(bwNN)?e.pageX:event.x;descy=(bwNN)?e.pageY:event.y}
function KW_mouseInit(){
	if(bwNN)document.captureEvents(Event.MOUSEMOVE);document.onmousemove=popmousemove;
}
function m_class(m,d,y) { 
	this.month=m;this.day=d;this.year=y;this.output=this.month+"/"+this.day+"/"+this.year;
	var kd=new Date();this.special=checkDates(this.month,this.day,this.year)
	this.today=((kd.getMonth()+1)==this.month && kd.getDate()==this.day && kd.getFullYear()==this.year)
	var td=new Date(this.year, (this.month-1), this.day+KW_od);this.past=(KW_od==-1)?0:(kd>td)
	var tf=new Date(kd.getFullYear(),kd.getMonth(),kd.getDate()+KW_fd);
	var d1=new Date(this.year, (this.month-1), this.day);
	this.future=(KW_fd==-1)?0:(tf<d1);this.ss=(this.special && KW_ss);
	this.display=(this.past || this.future || this.ss);
}

function makeCurrency(value)
{
	value=Math.round(value*100);
	value=value+'';
	pre_dot=value.substring(0, value.length-2);
	post_dot=value.substring(value.length-2, value.length)
	
if (post_dot.length==0){post_dot='00'}
if (post_dot.length==1){post_dot=post_dot + '0'}

if (pre_dot.length==0){pre_dot='0'}

	value=pre_dot+'.'+post_dot;
	return value;
}







	function makethreedigits(valuein)
	{
		
		var valuein=valuein.toString();
		var valueout=0;
		if (valuein.length=="0"){valueout="000";}
		else if(valuein.length=="1"){valueout="00"+valuein;}
		else if(valuein.length=="2"){valueout="0"+valuein;}
		else if(valuein.length=="3"){valueout=valuein;}
		return valueout;
	}
	function killEnter(e) {
		if (e.keyCode) return (e.keyCode != 13);
		if (e.which) return (e.which != 13);
		return true;
	}

		
		function WriteCurrency(valuein, showsymbol, twodp,showcommas){
			var millionpart=0;var thousandpart=0;var  unitpart=0;var remainders=0;
			valuein=parseFloat(valuein);
			
			var remainders='';
			if(twodp){
				(valuein-Math.round(valuein)).toString();
				if(remainders.length==0){remainders="00";}else if(remainders.length==1){remainders="0"+remainders;}
				remainders="."+remainders;
			}
			valuein=parseInt(valuein)
			//alert(valuein);
			millionpart=Math.round((valuein/1000000)-.5);
			thousandpart=Math.round(((valuein-(millionpart*1000000))/1000)-.5);
			unitpart=Math.round((valuein-((millionpart*1000000)+(thousandpart*1000)))-.5);
			
			millionpart=millionpart.toString();
			thousandpart=thousandpart.toString();
			unitpart=unitpart.toString();
			
			if(millionpart!='0'){valueout= millionpart + ','+makethreedigits(thousandpart)+ ',' + makethreedigits(unitpart) +  remainders;}
			else if(thousandpart!='0'){valueout= thousandpart+ ',' + makethreedigits(unitpart) + remainders;}
			else {valueout= unitpart + remainders;}
			
			return valueout;
		}
		
		function isrealdate(datein)
		{
			realdate= new Date(datein);
			if(realdate=="Invalid Date"){
				return false;
				}
			else{
				return true;
			}
		}
		function takeYear(theDate)
		{
			x = theDate.getYear();
			var y = x % 100;
			y += (y < 38) ? 2000 : 1900;
			return y;U
		}
		
		function isoneyear(startdate, enddate)
		{
			oneday= new Date();
			date_start= new Date(startdate);
			
			date_start_plus_one_year= new Date();
			date_start_plus_one_year.setDate(date_start.getDate());
			date_start_plus_one_year.setMonth(date_start.getMonth());
			date_start_plus_one_year.setYear(takeYear(date_start)+1);
			
			date_end  = new Date(enddate);
			date_end_plus_one_day=new Date(enddate);
			with (date_end_plus_one_day) setDate(getDate(date_end_plus_one_day)+1);
			
			alert('start: '+date_start+'\n'+'end: '+date_end+'\n'+'end_plus_a_day: '+date_end_plus_one_day+'\n'+'date_start_plus_one_year: '+date_start_plus_one_year);
		}
		
		function javaround2dp(value)
		{
		
			value=Math.round(value*100);
			value=value+'';
			pre_dot=value.substring(0, value.length-2);
			post_dot=value.substring(value.length-2, value.length)
			
			if (post_dot.length==0){post_dot='00'}
			if (post_dot.length==1){post_dot=post_dot + '0'}
			
			if (pre_dot.length==0){pre_dot='0'}
		
			value=pre_dot+'.'+post_dot;
			return value;
		}
		
	
		function PCase(STRING){
			var strReturn_Value = "";
			var iTemp = STRING.length;
			if(iTemp==0){
				return"";
			}
			var UcaseNext = false;
			strReturn_Value += STRING.charAt(0).toUpperCase();
			for(var iCounter=1;iCounter < iTemp;iCounter++){
				if(UcaseNext == true){
					strReturn_Value += STRING.charAt(iCounter).toUpperCase();
				}
				else{
					strReturn_Value += STRING.charAt(iCounter).toLowerCase();
				}
				var iChar = STRING.charCodeAt(iCounter);
				
				if(iChar == 32 || iChar == 45 || iChar == 46){
					UcaseNext = true;
				}
				else{
					UcaseNext = false
				}
				
				if(iChar == 99 || iChar == 67){
				//alert(STRING.charCodeAt(iCounter-1)); 
					if(STRING.charCodeAt(iCounter-1)==77 || STRING.charCodeAt(iCounter-1)==109 && iCounter == 1 || STRING.charCodeAt(iCounter-2)==109 && STRING.charCodeAt(iCounter-1)==97 && iCounter == 2 || STRING.charCodeAt(iCounter-1)==109 && STRING.charCodeAt(iCounter-2)== 32 || STRING.charCodeAt(iCounter-2)==109 && STRING.charCodeAt(iCounter-1)==97 && STRING.charCodeAt(iCounter-3)==32){
						UcaseNext = true;
					}
				}
				
				
			
			} //End For
		
		return strReturn_Value;
		} //End Function
		
	
		
		function setFieldsToUpperCase(){
			for(var i=0;i<arguments.length;i++) {
				arguments[i].value = arguments[i].value.toUpperCase();
				}
			}
		
		function areyousure($message)
		{
			if(document.MM_returnValue){
				if(confirm($message)){document.MM_returnValue=true;}else{document.MM_returnValue=false;}
			}
				
		}
			
		<!--
		// Kaosweaver Calendar Settings - do not remove
		// by Paul Davis - http://www.kaosweaver.com
		// KW_lang[English]
		// KW_order[1,0,2]
		// KW_del1[/]
		// KW_del2[/]
		// KW_dd[false]
		// KW_cWidth[170]
		// KW_fd[0]
		
		var sDate = new Array();
		var mName = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
		var wName = new Array("Su","Mo","Tu","We","Th","Fr","Sa")
		var cFontName = "Arial, Helvetica, sans-serif;"
		var KW_color = new Array("#333333","#ffffff","#EBEBCA","#EBEBCA","#CC9999","#DBDBA7","#EFEFEF","#999900")
		//var KW_color = new Array("#333333","#333333","#EBEBCA","","#CC9999","#DBDBA7","","#999900")
		var KW_background="";
		var KW_del2 = "/"
		
		var KW_cl=0;
		
		//Set to -1 for any date, set to 0 for after today, set to 1 for today and any day after
		var KW_od=-1;
		//Set to 0 to display next and previous months days after 30/31st and before 1st
		var KW_tmo=1;
		//Doh! Width
		var KW_cWidth=170;
		//Set to 0 for only today, Max number of days, -1 for all days
		var KW_fd=-1;
		var KW_ss=0;
		//Set to -1  or 1 for not weekends, 0 to include weekends,
		var KW_sw=0;
		//X and Y Co-ords for popup
		var descx=-1;
		var descy=-1;
		var bwNN=(document.captureEvents)?1:0;
		function popmousemove(e){descx=(bwNN)?e.pageX:event.x;descy=(bwNN)?e.pageY:event.y}
		function KW_mouseInit(){
			if(bwNN)document.captureEvents(Event.MOUSEMOVE);document.onmousemove=popmousemove;
		}
		function m_class(m,d,y) { 
			this.month=(m<10)?"0"+m:m;if (d) this.day=(d<10)?"0"+d:d;else this.day="";this.year=y;
			this.output=this.day+"\/"+this.month+"\/"+this.year;	var kd=new Date();this.special=checkDates(this.month,this.day,this.year)
			this.today=((kd.getMonth()+1)==this.month && kd.getDate()==this.day && kd.getFullYear()==this.year)
			var td=new Date(this.year, (this.month-1), Number(this.day)+KW_od);this.past=(KW_od==-1)?0:(kd>td)
			var tf=new Date(kd.getFullYear(),kd.getMonth(),kd.getDate()+KW_fd);
			var d1=new Date(this.year, (this.month-1), this.day);
			this.future=(KW_fd==-1)?0:(tf<d1);this.ss=(this.special && KW_ss);
			this.display=(this.past || this.future || this.ss);
		}
		
		// Kaosweaver End of Calendar Settings - do not remove
		
		function checkDates(m1,d1,y1) { //v2.1.5
			var rStr=false;for(var i=0;i<sDate.length;i++) {var tDate=sDate[i].split(",");
				if (tDate[2]=="*" || tDate[2]==y1) {if (tDate[1]==d1 && tDate[0]==m1)	rStr=true;
				}}return rStr;
		}
		
		
		
		function KW_doCalendar(obj,E,m,y) { //v2.6.0
		  var d=new Date();f=0;d.setDate(1);if (!m && m!=0) {m=d.getMonth();f=KW_cl}
		  if (f==1 && MM_findObj('KW_selectedMonth').value!=-1)
		  m=MM_findObj('KW_selectedMonth').value-1;d.setMonth(m);
		  if (!y) y=d.getFullYear();if (f==1 && MM_findObj('KW_selectedYear').value!=-1)
		  y=MM_findObj('KW_selectedYear').value;d.setFullYear(y);dy=d.getDay();if (!E) E=0;
		  if(E==1)dy=(dy==0)?6:dy-1;dP=new Date();dP.setDate(1);dP.setMonth(m);dP.setDate(0);
		  pStart=dP.getDate()-dy+1;dStr=new Array();for (i=pStart;i<dP.getDate()+1;i++) { tmo=(KW_tmo)?"":i;
		  tMonth=(m==0)?"12":m;tYear=(m==0)?y-1:y;dStr[dStr.length]=new m_class(tMonth,tmo,tYear);
		  }EOM=false;for (i=1;!EOM;i++){d.setDate(i);if (m!=d.getMonth()) EOM=true; else {
		  dStr[dStr.length]=new m_class((Number(m)+1),i,y);}}cnt=1;si=0;
		  if(E==1)si=(d.getDay()==0)?6:d.getDay()-1;else si=d.getDay();	for (i=si;i<7;i++) {
		  tMonth=(m==11)?"1":Number(m)+2;tYear=(m==11)?Number(y)+1:y; tmo=(KW_tmo)?"":cnt;
		  dStr[dStr.length]=new m_class(tMonth,tmo,tYear); cnt++;}pM=(m==0)?11:m-1;
		  pY=(m==0)?y-1:y;nM=(m==11)?0:Number(m)+1;nY=(m==11)?Number(y)+1:y;
		  wStr="<ht"+""+"ml><he"+""+"ad><st"+""+"yle type=\"text/css\"><!--  body { background-color: "+KW_color[6]+";background-image: "+KW_background+";background-repeat:no-repeat;background-position:center center;}\ntd {  font-family: "+cFontName+" font-size: 12px; }\n.tblHdr { font-weight: bold; color: "+KW_color[0]+"; background-color: "+KW_color[6]+" }\n.subTbl{ color: "+KW_color[0]+"; background-color: "+KW_color[7]+";  text-align: center}-->\n</st"+""+"yle>\n<ti"+""+"tle>"+mName[m]+", "+y+"</ti"+""+"tle>\n</he"+""+"ad>\n<bo"+""+"dy  topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\" leftmargin=\"0\" onLoad=\"window.focus()\">\n<table style=\"filter:alpha(opacity=50);\" width=\"100%\" border=\"0\" cellspacing=\"0\">\n<tr>\n<td bgcolor=\""+KW_color[6]+"\">\n<table width=\"100%\" border=0>\n"
		  wStr+="<tr>\n<td align=center bgcolor=\""+KW_color[6]+"\" class=\"tblHdr\" colspan=\"4\"><a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+pM+"','"+pY+"');\" class=\"tblHdr\">&laquo</a>&nbsp;&nbsp;"+mName[m]+"&nbsp;&nbsp;<a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+nM+"','"+nY+"');\"  class=\"tblHdr\">&raquo</a></td>\n<td colspan=3 align=center class=\"tblHdr\"><a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+m+"','"+(y-1)+"');\" class=\"tblHdr\">&laquo</a>&nbsp;&nbsp;"+y+"&nbsp;&nbsp;<a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+m+"','"+(Number(y)+1)+"');\"  class=\"tblHdr\">&raquo</a></td>\n</tr>\n"
		  wStr+="<tr>\n";for(wdn=0;wdn<7;wdn++)wStr+="<td class=\"subTbl\">"+wName[wdn]+"</td>\n";wStr+="</tr>\n"
		  for (x=0;x<parseInt(dStr.length/7);x++) {	wStr+="<tr>\n";	for (y=0;y<7;y++) {
		  yT=(E==1)?5:0;bC=(y==yT||y==6)?KW_color[2]:KW_color[3];
		  if ((y==yT||y==6) && KW_sw && !dStr[x*7+y].display) dStr[x*7+y].display=true;
		  if ((Number(m)+1)!=dStr[x*7+y].month) bC=KW_color[5]; if (dStr[x*7+y].special)
		  bC=KW_color[4];if (dStr[x*7+y].today) bC=KW_color[1];
		  a0=(KW_cl!=1)?"":"window.opener.MM_findObj('KW_selectedMonth',window.opener.document).value='"+dStr[x*7+y].month+"';window.opener.MM_findObj('KW_selectedYear',window.opener.document).value='"+dStr[x*7+y].year+"'; "
		  a1=(dStr[x*7+y].display)?"":"<a style=\"text-decoration:none;color:#000;filter:alpha(opacity=50);\" href=\"javascript:window.opener.MM_findObj('"+obj+"',window.opener.document).value='"+dStr[x*7+y].output+"'; "+a0+" window.close(); window.blur();   \" >";
		  a2=(dStr[x*7+y].display)?"":"</a>";
		  wStr+="<td align=\"center\" bgcolor="+bC+">"+a1+dStr[x*7+y].day+a2+"</td>\n";
			}	wStr+="</tr>\n";}	wStr+="<tr><td colspan=7></td></tr></table></td></tr></table></bo"+""+"dy></ht"+""+"ml>";
			var screenX=(self.screenX)?self.screenX+20:window.screenLeft
			var screenY=(self.screenY)?self.screenY+70:window.screenTop
			var w =(descx==-1)?parseInt(screen.width/2-75):descx+screenX;
			var h=(descy==-1)?parseInt(screen.height/2-75):descy+screenY;
			if (isNaN(w)) w=descx+20
			if (isNaN(h)) h=descy+70		
			var look='width='+KW_cWidth+',height=155,left='+w+',top='+h+', status=yes';	popwin=window.open('','calendar',look);
			popwin.document.open();	popwin.document.write(wStr);popwin.document.close(); 
			
			
		}
		
		
		// Check browser version
		var isNav4 = false, isNav5 = false, isIE4 = false
		var strSeperator = "/"; 
		// If you are using any Java validation on the back side you will want to use the / because 
		// Java date validations do not recognize the dash as a valid date separator.
		var vDateType = 3; // Global value for type of date format
		//                1 = mm/dd/yyyy
		//                2 = yyyy/dd/mm  (Unable to do date check at this time)
		//                3 = dd/mm/yyyy
		var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
		var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
		var err = 0; // Set the error code to a default of zero
		if(navigator.appName == "Netscape") {
		if (navigator.appVersion < "5") {
		isNav4 = true;
		isNav5 = false;
		}
		else
		if (navigator.appVersion > "4") {
		isNav4 = false;
		isNav5 = true;
		   }
		}
		else {
		isIE4 = true;
		
		
		
		
		}
		
		

		
		function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
		vDateType = dateType;
		// vDateName = object name
		// vDateValue = value in the field being checked
		// e = event
		// dateCheck 
		// True  = Verify that the vDateValue is a valid date
		// False = Format values being entered into vDateValue only
		// vDateType
		// 1 = mm/dd/yyyy
		// 2 = yyyy/mm/dd
		// 3 = dd/mm/yyyy
		//Enter a tilde sign for the first number and you can check the variable information.
		if (vDateValue == "~") {
		alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
		vDateName.value = "";
		vDateName.focus();
		return true;
		}
		var whichCode = (window.Event) ? e.which : e.keyCode;
		// Check to see if a seperator is already present.
		// bypass the date if a seperator is present and the length greater than 8
		if (vDateValue.length > 8 && isNav4) {
		if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
		return true;
		}
		//Eliminate all the ASCII codes that are not valid
		var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
		if (alphaCheck.indexOf(vDateValue) >= 1) {
		if (isNav4) {
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
		}
		else {
		vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
		return false;
		   }
		}
		if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
		return false;
		else {
		//Create numeric string values for 0123456789/
		//The codes provided include both keyboard and keypad values
		var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
		if (strCheck.indexOf(whichCode) != -1) {
		if (isNav4) {
		if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
		alert("Invalid Date\nPlease Re-Enter");
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
		}
		if (vDateValue.length == 6 && dateCheck) {
		var mDay = vDateName.value.substr(2,2);
		var mMonth = vDateName.value.substr(0,2);
		var mYear = vDateName.value.substr(4,4)
		//Turn a two digit year into a 4 digit year
		if (mYear.length == 2 && vYearType == 4) {
		var mToday = new Date();
		//If the year is greater than 30 years from now use 19, otherwise use 20
		var checkYear = mToday.getFullYear() + 30; 
		var mCheckYear = '20' + mYear;
		if (mCheckYear >= checkYear)
		mYear = '19' + mYear;
		else
		mYear = '20' + mYear;
		}
		var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
		if (!dateValid(vDateValueCheck)) {
		alert("Invalid Date\nPlease Re-Enter");
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
		}
		return true;
		}
		else {
		// Reformat the date for validation and set date type to a 1
		if (vDateValue.length >= 8  && dateCheck) {
		if (vDateType == 1) // mmddyyyy
		{
		var mDay = vDateName.value.substr(2,2);
		var mMonth = vDateName.value.substr(0,2);
		var mYear = vDateName.value.substr(4,4)
		vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
		}
		if (vDateType == 2) // yyyymmdd
		{
		var mYear = vDateName.value.substr(0,4)
		var mMonth = vDateName.value.substr(4,2);
		var mDay = vDateName.value.substr(6,2);
		vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
		}
		if (vDateType == 3) // ddmmyyyy
		{
		var mMonth = vDateName.value.substr(2,2);
		var mDay = vDateName.value.substr(0,2);
		var mYear = vDateName.value.substr(4,4)
		vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
		}
		//Create a temporary variable for storing the DateType and change
		//the DateType to a 1 for validation.
		var vDateTypeTemp = vDateType;
		vDateType = 1;
		var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
		if (!dateValid(vDateValueCheck)) {
		alert("Invalid Date\nPlease Re-Enter");
		vDateType = vDateTypeTemp;
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
		}
		vDateType = vDateTypeTemp;
		return true;
		}
		else {
		if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
		alert("Invalid Date\nPlease Re-Enter");
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
				 }
			  }
		   }
		}
		else {
		// Non isNav Check
		if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
		alert("Invalid Date\nPlease Re-Enter");
		vDateName.value = "";
		vDateName.focus();
		return true;
		}
		// Reformat date to format that can be validated. mm/dd/yyyy
		if (vDateValue.length >= 8 && dateCheck) {
		// Additional date formats can be entered here and parsed out to
		// a valid date format that the validation routine will recognize.
		if (vDateType == 1) // mm/dd/yyyy
		{
		var mMonth = vDateName.value.substr(0,2);
		var mDay = vDateName.value.substr(3,2);
		var mYear = vDateName.value.substr(6,4)
		}
		if (vDateType == 2) // yyyy/mm/dd
		{
		var mYear = vDateName.value.substr(0,4)
		var mMonth = vDateName.value.substr(5,2);
		var mDay = vDateName.value.substr(8,2);
		}
		if (vDateType == 3) // dd/mm/yyyy
		{
		var mDay = vDateName.value.substr(0,2);
		var mMonth = vDateName.value.substr(3,2);
		var mYear = vDateName.value.substr(6,4)
		}
		if (vYearLength == 4) {
		if (mYear.length < 4) {
		alert("Invalid Date\nPlease Re-Enter");
		vDateName.value = "";
		vDateName.focus();
		return true;
		   }
		}
		// Create temp. variable for storing the current vDateType
		var vDateTypeTemp = vDateType;
		// Change vDateType to a 1 for standard date format for validation
		// Type will be changed back when validation is completed.
		vDateType = 1;
		// Store reformatted date to new variable for validation.
		var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
		if (mYear.length == 2 && vYearType == 4 && dateCheck) {
		//Turn a two digit year into a 4 digit year
		var mToday = new Date();
		//If the year is greater than 30 years from now use 19, otherwise use 20
		var checkYear = mToday.getFullYear() + 30; 
		var mCheckYear = '20' + mYear;
		if (mCheckYear >= checkYear)
		mYear = '19' + mYear;
		else
		mYear = '20' + mYear;
		vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
		// Store the new value back to the field.  This function will
		// not work with date type of 2 since the year is entered first.
		if (vDateTypeTemp == 1) // mm/dd/yyyy
		vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
		if (vDateTypeTemp == 3) // dd/mm/yyyy
		vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
		} 
		if (!dateValid(vDateValueCheck)) {
		alert("Invalid Date\nPlease Re-Enter");
		vDateType = vDateTypeTemp;
		vDateName.value = "";
		vDateName.focus();
		return true;
		}
		vDateType = vDateTypeTemp;
		return true;
		}
		else {
		if (vDateType == 1) {
		if (vDateValue.length == 2) {
		vDateName.value = vDateValue+strSeperator;
		}
		if (vDateValue.length == 5) {
		vDateName.value = vDateValue+strSeperator;
		   }
		}
		if (vDateType == 2) {
		if (vDateValue.length == 4) {
		vDateName.value = vDateValue+strSeperator;
		}
		if (vDateValue.length == 7) {
		vDateName.value = vDateValue+strSeperator;
		   }
		} 
		if (vDateType == 3) {
		if (vDateValue.length == 2) {
		vDateName.value = vDateValue+strSeperator;
		}
		if (vDateValue.length == 5) {
		vDateName.value = vDateValue+strSeperator;
		   }
		}
		return true;
		   }
		}
		if (vDateValue.length == 10&& dateCheck) {
		if (!dateValid(vDateName)) {
		// Un-comment the next line of code for debugging the dateValid() function error messages
		//alert(err);  
		alert("Invalid Date\nPlease Re-Enter");
		vDateName.focus();
		vDateName.select();
		   }
		}
		return false;
		}
		else {
		// If the value is not in the string return the string minus the last
		// key entered.
		if (isNav4) {
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
		}
		else
		{
		vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
		return false;
				 }
			  }
		   }
		}
		function dateValid(objName) {
		var strDate;
		var strDateArray;
		var strDay;
		var strMonth;
		var strYear;
		var intday;
		var intMonth;
		var intYear;
		var booFound = false;
		var datefield = objName;
		var strSeparatorArray = new Array("-"," ","/",".");
		var intElementNr;
		// var err = 0;
		var strMonthArray = new Array(12);
		strMonthArray[0] = "Jan";
		strMonthArray[1] = "Feb";
		strMonthArray[2] = "Mar";
		strMonthArray[3] = "Apr";
		strMonthArray[4] = "May";
		strMonthArray[5] = "Jun";
		strMonthArray[6] = "Jul";
		strMonthArray[7] = "Aug";
		strMonthArray[8] = "Sep";
		strMonthArray[9] = "Oct";
		strMonthArray[10] = "Nov";
		strMonthArray[11] = "Dec";
		//strDate = datefield.value;
		strDate = objName;
		if (strDate.length < 1) {
		return true;
		}
		for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
		strDateArray = strDate.split(strSeparatorArray[intElementNr]);
		if (strDateArray.length != 3) {
		err = 1;
		return false;
		}
		else {
		strDay = strDateArray[0];
		strMonth = strDateArray[1];
		strYear = strDateArray[2];
		}
		booFound = true;
		   }
		}
		if (booFound == false) {
		if (strDate.length>5) {
		strDay = strDate.substr(0, 2);
		strMonth = strDate.substr(2, 2);
		strYear = strDate.substr(4);
		   }
		}
		//Adjustment for short years entered
		if (strYear.length == 2) {
		strYear = '20' + strYear;
		}
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
		intday = parseInt(strDay, 10);
		if (isNaN(intday)) {
		err = 2;
		return false;
		}
		intMonth = parseInt(strMonth, 10);
		if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
		if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
		intMonth = i+1;
		strMonth = strMonthArray[i];
		i = 12;
		   }
		}
		if (isNaN(intMonth)) {
		err = 3;
		return false;
		   }
		}
		intYear = parseInt(strYear, 10);
		if (isNaN(intYear)) {
		err = 4;
		return false;
		}
		if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
		}
		if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
		}
		if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
		}
		if (intMonth == 2) {
		if (intday < 1) {
		err = 8;
		return false;
		}
		if (LeapYear(intYear) == true) {
		if (intday > 29) {
		err = 9;
		return false;
		   }
		}
		else {
		if (intday > 28) {
		err = 10;
		return false;
			  }
		   }
		}
		return true;
		}
		function LeapYear(intYear) {
		if (intYear % 100 == 0) {
		if (intYear % 400 == 0) { return true; }
		}
		else {
		if ((intYear % 4) == 0) { return true; }
		}
		return false;
		}
		//  End -->
		
function textCounter(field, countfield, maxlimit) 
{
		//alert(maxlimit);
	if (field.value.length > maxlimit) // if too long...trim it!
	{
	field.value = field.value.substring(0, maxlimit);
	}
	else 
	{
		
		document.getElementById(countfield).innerHTML = maxlimit - field.value.length;
	}
}

function showhelp($helptext, $boxname)
{
	
	//alert(document.getElementById($boxname).className);
	document.getElementById($boxname).innerHTML="<div class=copy id=helpbox >"+$helptext+"</div>";
	document.getElementById($boxname).className="help_visable";
	var IE = document.all?true:false;

	if (IE) { // grab the x-y pos.s if browser is IE
	    //tempX = event.clientX + document.body.scrollLeft - 80;
	    //tempY = event.clientY + document.body.scrollTop - 0;
		tempX = 240;
		tempY = 10;
	  } else {  // grab the x-y pos.s if browser is NS
		tempX = 300;
		tempY = 10;
	  }  
	  
	 // alert(document.body.scrollTop);
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
	document.getElementById($boxname).style.top=parseFloat(tempY)+10+'px';
	document.getElementById($boxname).style.left=parseFloat(tempX)+10+'px';
	
	
	FadeIn(document.getElementById($boxname), 1000);
}

function FadeIn(obj, delay)
{
	for($n=1;$n<=100;$n++){
		//setTimeout(SetAlphaAmount(obj, $n), 100);
		//wait(1000);
		//DelayedFadeIn(obj, $n, delay);
		SetAlphaAmount(obj, $n);
		

	}
}






function SetAlphaAmount(obj, alpha_amt)
{
	//obj.innerHTML=obj.innerHTML+alpha_amt;
	obj.style.filter= "alpha(opacity="+alpha_amt+");";
	//if (alpha_amt==100)
    //obj.filters.alpha.opacity=0
  //else
   // obj.filters.alpha.opacity=100
}



function hidehelp($boxname)
{
	//alert($boxname);
	//alert(document.getElementById($boxname).className);
	document.getElementById($boxname).innerHTML="";
	document.getElementById($boxname).className="help_hidden";
}

function mtrack(e) {
   var text = 'Coordinates: ';
   if (document.layers) text += e.pageX + ',' + e.pageY
   else text += event.x + ',' + event.y;
   alert(text);
}



function InStr(strSearch, charSearchFor)
{
	for (i=0; i < Len(strSearch); i++)
	{
	    if (charSearchFor == Mid(strSearch, i, 1))
	    {
			return i;
	    }
	}
	return -1;
}


function Len(str)
        {  return String(str).length;  }


function Mid(str, start, len)
{
		// Make sure start and len are within proper bounds
		if (start < 0 || len < 0) return "";

		var iEnd, iLen = String(str).length;
		if (start + len > iLen)
				iEnd = iLen;
		else
				iEnd = start + len;

		return String(str).substring(start,iEnd);
}




function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }




function showMenu(menuin,submenuin)
{
    if (window.innerWidth) {							
        frameWidth = window.innerWidth;
    } else {
        frameWidth = document.body.clientWidth;
    }
    var menustr = '<table width="100%" cellpadding="2" cellspacing="0" class="popupmenu">';
    if (submenuin >= 0) {
        cancelTimer(2);
        var whichmenu = 'menudiv2';
        var offsetx = 250;
        eval("var menuname = productsMenu"+menuin+"[1]["+submenuin+"]");
        eval("var menuitems = "+menuname);
        var offsety = submenuin * 22;
        for (var i=0;i<menuitems[0].length;i++) {
            menustr += '<tr><td width="100%" class="popupsubmenu">';
            menustr += '<a href="'+menuitems[1][i]+'" class="popupsubmenuitem">'+menuitems[0][i]+'</a>';
            menustr += '</td></tr>';
        }   
    } else {
        cancelTimer(1);
        var whichmenu = 'menudiv';
        var offsetx = 0;
        var offsety = 0;
        eval("var menuitems = productsMenu"+menuin);
        if (menuitems[0].length > 0) {
			for (var i=0;i<menuitems[0].length;i++) {
				if (menuitems[1][i].indexOf('.') == -1)
				{
					if (menuitems[1][i].length > 0) 
					   {
					   	menustr += '<tr><td width="100%" class="popupmenu" onmouseover="showMenu('+menuin+','+i+')" onmouseout="hideMenu(false,true)">';
					   	menustr += '<a href="javascript: function() {return false}" class="popupmenuitem" onfocus="showMenu('+menuin+','+i+')" onblur="hideMenu(false,true)">'+menuitems[0][i]+'</a>';
					   }
				}
				else
				{
					menustr += '<tr><td width="100%" class="popupmenu">';
					menustr += '<a href="'+menuitems[1][i]+'" class="popupmenuitem">'+menuitems[0][i]+'</a>';
				}
				menustr += '</td></tr>';
			}
		}
    }
	if (menuitems[0].length > 0)
	{
    	menustr += '</table>';
	}
	else
	{
		menustr = '';
	}
    setContents(whichmenu,menustr);
	
    for (var i=1;i<menuin;i++) {
        offsetx += getWidth('menuposition'+i);
    }
	eval('posX = findPosX(document.getElementById("menuposition' + menuin + '"))')
	eval('posY = findPosY(document.getElementById("menuposition' + menuin + '"))')
	//eval('menuName = document.getElementById("menuposition' + menuin + '").offsetLeft')
	//alert(posY);
	setX(whichmenu,posX);
    setY(whichmenu,posY + 20);
	if (menuitems[0].length > 0)
	{
		if (layerobject) 
		{
			getElement(whichmenu).visibility = 'show';
		}
		else 
		{
			getElement(whichmenu).style.visibility = 'visible';
		}
	}
}



function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }


function findPosY(obj)
  {
    var curTop = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curTop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curleft += obj.y;
    return curTop;
  }


// Cancels timer because user has moved mouse back over menu.
function cancelTimer(whichTimer) 
{
    if (timerid1) {clearTimeout(timerid1)}
    if (whichTimer == 2) 
    {
        if (timerid2) {clearTimeout(timerid2)}
    }
}

// Hides menu after a delay after mouse has moved off menu.
function hideMenu(afterDelay,submenuOnly)
{
    if (afterDelay)
    {
	    if (layerobject) 
	    {
	        if (!submenuOnly) 
	        {
		        getElement('menudiv').visibility = 'hide';
		    }
		    getElement('menudiv2').visibility = 'hide';
	    }
	    else 
	    {
	        if (!submenuOnly) 
	        {
		        getElement('menudiv').style.visibility = 'hidden';
		    }
		    getElement('menudiv2').style.visibility = 'hidden';
	    }
    }
    else
    {
        if (submenuOnly)
        {
            timerid2 = setTimeout('hideMenu(true,true)', hideDelay * 1000);
        }
        else
        {
            timerid1 = setTimeout('hideMenu(true,false)', hideDelay * 1000);
        }
  	}
}

// Returns the object of a screen element, given it's ID.
function getElement(layerName) 
{	
	if (dom) 
	{
	    return document.getElementById(layerName);
	}
	if (allobject) 
	{
	    return document.all[layerName];
	}
	if (layerobject) 
	{
		layerCollection = self.document.layers;
		if (layerCollection[layerName]) 
		{
			return layerCollection[layerName];
			for(i=0; i < layerCollection.length;) 
			{
				return (getElement(layerName, layerCollection[i++]));
			}
		}
	}
}

// Sets the horizontal position of the layer with given id and pixels from left of frame.
function setX(layerName, x) 
{	
	var theLayer = getElement(layerName);
	if (layerobject) {
		theLayer.left=x;
	} else if (opera) {
		theLayer.style.pixelLeft=x;
	} else {
		theLayer.style.left=x+"px";
	}
}

// Sets the vertical position of the layer with given id and pixels from top of frame.
function setY(layerName, y) 
{	
	var theLayer = getElement(layerName);
	if (layerobject) {
		theLayer.top=y;
	} else if (opera) {
		theLayer.style.pixelTop=y;
	} else {
		theLayer.style.top=y+"px";
	}
}

// Sets the width of the layer with given id and width in pixels.
function setWidth(layerName, width) 
{	
	var theLayer = getElement(layerName);
	if (layerobject) {
		theLayer.clip.width = width;
	} else if (opera) {
		theLayer.style.pixelWidth = width;
	} else {
		theLayer.style.width = width+"px";
	}
}

// Sets the contents of the layer with given id and string to insert.
function setContents(layerName, content) 
{	
	var theLayer = getElement(layerName);
	if (layerobject) {
		theLayer.document.write(content);
		theLayer.document.close();
		return;
	}
	if (theLayer.innerHTML) {
		theLayer.innerHTML = content;
	}
}

// Returns the width of the layer with given id, in pixels
function getWidth(layerName) {	
	var theLayer = getElement(layerName);
	if (layerobject) 
	{
		return parseInt(theLayer.clip.width);
		
	} 
	else if (opera) 
	{
		return parseInt(theLayer.style.pixelWidth);
	}
	else 
	{
		return parseInt(theLayer.style.width);
	}
}

// Detect browser capabilities.
(document.layers) ? layerobject=true : layerobject=false;		// Old Netscape Browsers
(document.all) ? allobject=true: allobject=false;				// Old IE Browsers
opera=navigator.userAgent.toLowerCase().indexOf('opera')!=-1;	// Opera Browsers
(document.getElementById) ? dom=true : dom=false;				// All Modern Browsers (using proper DOM)

// Create variables.
var frameWidth = 1000;
var timerid1 = null;
var timerid2 = null;

// Create pop-up menu container.
document.write('<div id="menudiv" style="position:absolute; top:1px; left:1px; width:250px; z-index:100; visibility:hidden;" onmouseover="cancelTimer(1)" onmouseout="hideMenu()">&nbsp;</div>');
document.write('<div id="menudiv2" style="position:absolute; top:1px; left:1px; width:150px; z-index:101; visibility:hidden;" onmouseover="cancelTimer(2)" onmouseout="hideMenu(false,true); hideMenu(false,false);">&nbsp;</div>');


