// JavaScript Document
function checkForm(f){
	msg="";
	if (f.ContactName.value.length < 3)
		msg+="Enter Contact Name\n";
	if (f.CompanyName.value.length < 3)
		msg+="Enter Company Name.\n";
	if (f.JobName.value.length < 3)
		msg+="Enter Job Name.\n";
	validatePhoneNbr(f.PhoneNumber.value, "Phone Nbr");
	validateEmail(f.Email.value, "Email");
	if (f.Email.value != f.ConfirmEmail.value)
		msg+="Email's do not match.\n";
	if (f.Quantity.value.length < 1)
		msg+="Enter Quantity.\n";
	validateDate(f.ExpectedMaterialDate.value, "Expected Material Date");
	validateDate(f.ExpectedMailDate.value, "Expected Mail Date");
	if (f.PiecesToAplus[1].checked && f.NameOfPrinter.value.length < 2)
		msg+="Enter your Printer.\n";
	if (f.PiecesToAplus[2].checked && f.WherePickup.value.length < 2){
		msg+="Enter where A+ to Pick-up.\n";
		validateDate(f.WhenPickup.value, "When A+ to Pick-up");
	}
	if (f.PostageApplied[1].checked && f.PermitNbr.value.length < 2)
		msg+="Enter your Permit Nbr.\n";
	if (f.FinishedPieceSize.value.length < 1)
		msg+="Enter Finished mail piece size.\n";
			 
			 
			 
// if Error display alert
	if (msg){
		alert("Fix these error(s):\n"+ msg);
		return false;
	}else{
		return true;
	}
}

function validatePhoneNbr(n, lit){
	if ((!n) || (n.length < 5))
		msg+="Please fill in "+ lit +" field.\n";
	else{
		j=0;
		for (k=0; k < n.length; k++){
			x=parseInt(n.charAt(k));
			if ((x < 10) && (x ==n.charAt(k))) {
				j++;
			}
		}
		if ((j < 10) || (n.length < 12))
			msg+="Please include Area Code with "+ lit +"\n            (i.e. 123-456-7890)\n";
	}
}

function validateEmail(e, lit){
// verify that the e-mail address has at least this format xx\@xx.xx
	i=e.indexOf('@',0)
	j=e.indexOf('.',i)
	if ((i < 2) || (j < 5) || (e.length < 7)){
		msg+="Enter a proper "+lit+" (i.e. joe\@abc.com)\n";
		return;
	}
	if (((j-i) < 3) || ((e.length - j) < 3)){
		msg+="Enter a proper "+lit+" (i.e. joe\@abc.com)\n";
		return;
	}
}

function toggleFields(f,x,y,z){
	if (eval("f."+x+".value == z")){
		eval("f."+y+".disabled = false");
	}else{
		eval("f."+y+".disabled = true");
		eval("f."+y+".value = ''");
	}
}
function toggleCheck(f,x,y){
	if (eval("f."+x+".checked")){
		eval("f."+y+".disabled = false");
	}else{
		eval("f."+y+".disabled = true");
		eval("f."+y+".value = ''");
	}
}
function togglePiecesToAplus(f,n){
	if (n == 0){
		f.NameOfPrinter.disabled = true;
		f.NameOfPrinter.value = '';
		f.WhenPickup.disabled = true;
		f.WhenPickup.value = '';
		f.WherePickup.disabled = true;
		f.WherePickup.value = '';
	}else if (n == 1){
		f.NameOfPrinter.disabled = false;
		f.WhenPickup.disabled = true;
		f.WhenPickup.value = '';
		f.WherePickup.disabled = true;
		f.WherePickup.value = '';
	}else if (n == 2){
		f.NameOfPrinter.disabled = true;
		f.NameOfPrinter.value = '';
		f.WhenPickup.disabled = false;
		f.WherePickup.disabled = false;
	}
}
function togglePostageApplied(f,n){
	if (n == 0){
		f.PermitNbr.disabled = true;
		f.PermitNbr.value = '';
	}else if (n == 1){
		f.PermitNbr.disabled = false;
	}else if (n == 2){
		f.PermitNbr.disabled = true;
		f.PermitNbr.value = '';
	}else if (n == 3){
		f.PermitNbr.disabled = true;
		f.PermitNbr.value = '';
	}
}
function toggleCheckforDups(f,n){
	if (n == 1){
		f.DupMethod[0].disabled = true;
		f.DupMethod[1].disabled = true;
		f.DupMethod[2].disabled = true;
		f.DupMethod[3].disabled = true;
	}else if (n == 0){
		f.DupMethod[0].disabled = false;
		f.DupMethod[1].disabled = false;
		f.DupMethod[2].disabled = false;
		f.DupMethod[3].disabled = false;
	}
}
function toggleCompliantWithMoveUpdate(f,n){
	if (n == 4){
		f.AlternateFormat[0].disabled = false;
		f.AlternateFormat[1].disabled = false;
		f.AlternateFormat[2].disabled = false;
		f.AlternateFormat[3].disabled = false;
	}else{
		f.AlternateFormat[0].disabled = true;
		f.AlternateFormat[1].disabled = true;
		f.AlternateFormat[2].disabled = true;
		f.AlternateFormat[3].disabled = true;
	}
}

function montharr(m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11){
	this[0]=m0;this[1]=m1;this[2]=m2;this[3]=m3;this[4]=m4;this[5]=m5;this[6]=m6;this[7]=m7;this[8]=m8;this[9]=m9;this[10]=m10;this[11]=m11;
}

// GLOBAL vars
var monthDays = new montharr(31,28,31,30,31,30,31,31,30,31,30,31);
var today =new Date();
var thisMonth;
var thisDay;
var thisYear;

function validateDate(d,lit){
	mm=getMonthNbr(d);
	dd=getDayNbr(d);
	yyyy=getYearNbr(d);
	if (yyyy < 1950){
		msg+=lit + " year is invalid. Date format is MM/DD/YYYY.\r\n";
	}
	if (((yyyy % 4 == 0) && (yyyy % 100 != 0)) || (yyyy % 400 == 0))
		monthDays[1] = 29;
	else
		monthDays[1] = 28;
	if ((mm <1) || (mm > 12)){
		msg+=lit + " month is invalid. Date format is MM/DD/YYYY.\r\n";
	}
	if ((dd <1) || (dd > monthDays[mm-1])){
		msg+=lit + " day is invalid. Date format is MM/DD/YYYY.\r\n";
	}
	return;
}

function getMonthNbr(x){
	var z = new String(x);
	var q=z.substring(0,z.indexOf("/"));
	if (q.length==2 && q.substring(0,1) == "0")
		q=q.charAt(1);
	var p = new String(parseInt(q));
	if (isNaN(p)) {
		p=0;
	}
	if (p.length == 1) {
		p = "0" + p;
	}
	return p;
}

function getDayNbr(x){
	var z = new String(x);
	var q = new String(z.substring(z.indexOf("/")+1, z.lastIndexOf("/")));
	var p = new String(parseInt(q,10));
	if (isNaN(p)) {
		p=0;
	}
	if (p.length == 1) {
		p = "0" + p;
	}
	return p;
}

function getYearNbr(x){
	var z = new String(x);
	var q = new String(z.substring(z.lastIndexOf("/")+1, z.length));
	var p = new String(parseInt(q));
	if (isNaN(p)) {
		p=0;
	}
	while (p.length < 4) {
		p = "0" + p;
	}
	return p;
}
