//TODO: Clear all variables to release resources
//TODO: Check all entries with ASP, don't rely exclusively on javascript

var entkeybehave=0;

function load()
{
	var x=document.getElementsByTagName("div");
	var oStuff=document.getElementsByTagName("li");
	var mStuff=document.getElementsByTagName("ul");
	if (screen.width < 1020)
	{
		for (i=0;i<x.length;i++)
		{
			var tempStuff=x[i].currentStyle.width;
			if ((tempStuff!="auto") && (tempStuff!=""))
			{
				var oldSize=tempStuff.substring(0,3);
				newSize=(oldSize * .76);
				var corSize=newSize.toFixed(0);
				x[i].style.width=corSize + "px";
			}
		}
		for (i=0;i<oStuff.length;i++)
		{
			var tempFont=oStuff[i].currentStyle.fontSize;
			if (tempFont!="")
			{
				oStuff[i].style.fontSize="11px";
				oStuff[i].style.marginLeft="2px";
				oStuff[i].style.marginRight="2px";
				oStuff[i].style.paddingBottom="5px";
				oStuff[i].style.lineHeight="24px";
			}
		}
		mStuff[0].style.height="40px";
		try
		{
			document.getElementById("leftcol").style.fontSize="12px";
		}
		catch(err)
		{
		}
		try
		{
			document.getElementById("topmid").style.width="260px";
		}
		catch(err)
		{
		}
		try
		{
			document.getElementById("specialdisp").style.left="114px";
		}
		catch(err)
		{
		}
	}
	try
	{
		if (document.getElementById("pagetitle").innerHTML == "Classic InFlight Catering Online Order Form")
		{
			document.getElementById("tailnum").focus();
		}
	}
	catch(err)
	{
	}
	try
	{
		if (document.getElementById("pagetitle").innerHTML == "Classic Catering Online Order Form")
		{
			document.getElementById("functiontype").focus();
		}
	}
	catch(err)
	{
	}
}

function numverif(x)
{
	var y=document.getElementById(x).value;
	if (isNaN(y)){
		alert("This field must be a number");
		document.getElementById(x).value="";
		try{
			document.getElementById("tailnum").focus();}
		catch(err){}
		try{
			document.getElementById("functiontype").focus();}
		catch(err){}
		document.getElementById(x).focus();
	}
}

function timeverif(x)
{
	var y=document.getElementById(x).value;
	var failure=0;
	if (y.length!=4){
		failure=1;
	} else if (y.search(/\D/g)!=-1){
		failure=1;
	}
	if (failure==1){
		alert("This entry should be exactly 4 numbers, no letters or puncuation characters.");
		document.getElementById(x).value="";
		document.getElementById("tailnum").focus();
		document.getElementById(x).focus();
	}
}

function tailcap(x)
{
	var y=document.getElementById(x).value;
	document.getElementById(x).value=y.toUpperCase();
}

function phoneverif(x)
{
	//TODO: Compare all digits in full phone number to see if they are the same number, if yes, invalid phone number
	var y=document.getElementById(x).value;
	if (y.length!=12){
		return(1);
	} else {
		var result=y.split(/-/);
		if ((result.length>3) || (result[0].search(/\D/g)!=-1) || (result[1].search(/\D/g)!=-1) || (result[2].search(/\D/g)!=-1) || (result[0].length!=3) || (result[1].length!=3) || (result[2].length!=4)){
			return(1);
		} else {
			return(0);
		}
	}
}

function emailverif(x)
{
	var y=document.getElementById(x).value;
	//TODO: Compare all characters in the string to see if they are the same char, if yes, invalid email
	if (y.length<6){
		return(1);
	} else if (y.match(/@/g)!=null){
		if (y.match(/@/g).length>1){
			return(1);
		} else if (y.search(/@/g)<2){
			return(1);
		} else if ((y.search(/@/g))>(y.length-4)){
			return(1);
		} else if (y.search(/./g)==-1){
			return(1);
		} else {
			return(0);
		}
	} else {
		return(0);
	}
}

function choosedate(x)
{
	calendar_window=window.open('calendar.aspx?formname=' + x,'calendar_window','width=100,height=188,directories=no,location=no,menubar=no,menubar=no,scrollbars=no,status=no,toolbar=no,channelmode=no');
	calendar_window.focus();
	unhide('delivdate');
	//TODO: Add code to check date to ensure it is not a date already past.
}

function keyact(x)
{
	if (x) entkeybehave=1; //disable enter key submission
	if (!x) entkeybehave=0; //enable enter key submission
}

function keyval (x,e)
{
	var keycode;
	if (window.event){
		keycode = window.event.keyCode;
	}else if (e) {
		 keycode = e.which;
	}
	if ((keycode==13) && (entkeybehave==0)){
			verify(x);
		}
}

function dateverif(x)
{
	var y=document.getElementById(x).value;
	var result=y.split("/");
	var today=new Date();
	var month=(today.getMonth() + 1);
	var day=today.getDate();
	var year=today.getFullYear();
	if (result[2]<year){
		return(1);
	} else if ((result[2]==year) && (result[0]<month)){
		return(1);
	} else if ((result[2]==year) && (result[0]==month) && (result[1]<day)){
		return(1);
	} else {
		return(0);
	}
}

function verify(x)
{
	var numfail=requiredcheck(x);
	if (numfail>0){
		alert("You left " + numfail + " required fields blank." + '\n' + "Please complete the required information" + '\n' + "in the highlighted fields and resubmit the form." + '\n' + "Thank you!");
	} else {
		var notice="";
		var emailfail=emailverif("contactemail");
		if (emailfail){
			document.getElementById("contactemailtxt").style.color="red";
			document.getElementById("contactemailtxt").style.backgroundColor="white";
			notice=notice + "There is a problem with the email address entered, please correct and resubmit the form";
		}
		var phonefail=phoneverif("contactphone");
		if (phonefail){
			document.getElementById("contactphonetxt").style.color="red";
			document.getElementById("contactphonetxt").style.backgroundColor="white";
			notice=notice + '\n' + "There is a problem with the phone number entered, please correct and resubmit the form";
		}
		var datefail=dateverif("delivdate");
		if (datefail){
			document.getElementById("delivdatetxt").style.color="red";
			document.getElementById("delivdatetxt").style.backgroundColor="white";
			notice=notice + '\n' + "The date entered is already past.  Please correct and resubmit the form";
		}
		if (notice!=""){
			alert(notice)
		}
		if ((!emailfail) && (!phonefail) && (!datefail)){
			document.getElementById("delivdate").disabled="";
			document.getElementById(x).submit();
		}
	}
}

function frmCorrection(x)
{
	if (x=="traditionorders") var dest="order.asp";
	if (x=="inflightorder") var dest="inflightorder.asp";
	y=document.getElementById(x);
	y.action=dest;
	y.submit();
}

function requiredcheck(x)
{
	var y=document.getElementById(x);
	var ovencheck=0;
	var mealchkbox=0;
	var blank=0;
	for(var i=0;i<y.length;i++)
	{
		var frmArea=y.elements[i].id;
		var frmText=frmArea + "txt";
		if ((y.elements[i].id=="costcenter") || (y.elements[i].id=="costcenmgr") || (y.elements[i].id=="ccemail"))
		{
			continue;
		} else if (((y.elements[i].value=="") || (y.elements[i].value==null)) && (y.elements[i].id!="specinstr"))
		{
			document.getElementById(frmText).style.color="red";
			document.getElementById(frmText).style.backgroundColor="white";
			document.getElementById(frmText).style.fontSize="large";
			document.getElementById(frmText).style.fontStyle="italic";
			blank++;
		} else if ((x=="inflightorder") && ((y.elements[i].id=="micoven") || (y.elements[i].id=="conoven") || (y.elements[i].id=="na")) && (y.elements[i].checked==false)) {
			ovencheck = ovencheck + 1;
			if (ovencheck==3){
				document.getElementById("oventxt").style.color="red";
				document.getElementById("oventxt").style.backgroundColor="white";
				document.getElementById("oventxt").style.fontSize="large";
				document.getElementById("oventxt").style.fontStyle="italic";
				blank++;
			}
		} else if (y.elements[i].type=="checkbox"){
			if (y.elements[i].checked==false) mealchkbox++;
			if (mealchkbox==6){
				document.getElementById("mealtypetxt").style.color="red";
				document.getElementById("mealtypetxt").style.backgroundColor="white";
				document.getElementById("mealtypetxt").style.fontSize="large";
				document.getElementById("mealtypetxt").style.fontStyle="italic";
				blank++;
			} else if (document.getElementById("mealtypetxt").style.color="red"){
				document.getElementById("mealtypetxt").style.color="";
				document.getElementById("mealtypetxt").style.backgroundColor="";
				document.getElementById("mealtypetxt").style.fontSize="";
				document.getElementById("mealtypetxt").style.fontStyle="";
			}				
		} else if ((y.elements[i].type!="hidden") && (y.elements[i].type!="radio") && (y.elements[i].type!="button")){
			if  (document.getElementById(frmText).style.color=="red"){
				document.getElementById(frmText).style.color="";
				document.getElementById(frmText).style.backgroundColor="";
				document.getElementById(frmText).style.fontSize="";
				document.getElementById(frmText).style.fontStyle="";
				}
		} else if ((x=="inflightorder") && ((y.elements[i].id=="micoven") || (y.elements[i].id=="conoven" || y.elements[i].id=="na")) && (y.elements[i].checked==true)) {
			document.getElementById("oventxt").style.color="";
			document.getElementById("oventxt").style.backgroundColor="";
			document.getElementById("oventxt").style.fontSize="";
			document.getElementById("oventxt").style.fontStyle="";
		}
	}
	return(blank);
}

function unhide(x)
{
	document.getElementById(x).style.visibility="visible";
}

//need to check radio buttons to ensure one of them is choosen
//'Enter' (the enter key) is also CR (carriage return) and ASCII value 13.
//on submit check for blanks in required fields
// indicate blanks for customer with: style="background-color: white; color: red; font-size: large; font-style: italic;"
