/* 	Author:	Patti Naccarati
	Program Description:   Verifies the Repossession Workorder form, preloads buttons,
	checks and corrects the date.
	Date:	January 19, 2002		Patti Naccarati
	Rev:	April 5, 2002			Patti Naccarati
	Rev:	April 29, 2002			Patti Naccarati
	Rev:	May 24, 2002			Patti Naccarati
	Rev:	June 3, 2002			Patti Naccarati
	Rev:    December 31, 2007		Patti Naccarati
*/

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_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];}}
}

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_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];}
}

//variables used for fixing the year problem
var today = new Date();
var day = today.getDay();  			// 0 is Sunday 6 is Saturday
var month = today.getMonth() + 1; // 0 is January 11 is Dec., add 1
var date = today.getDate();			// day of month 1 - 31
var year = today.getYear();			// the year
var yearfixed;						// fix Netscape year problem
var monthname = new String;			// used to convert var month to a name
var dayname = new String;			// used to convert var day to a name

// fixes the year problem

if (year < 1000)
	{
	yearfixed = year + 1900;
	}
	else
	{
	yearfixed = year;
	}

// sets the month to a name

if (month == 1)
	monthname = "January";
	else if (month == 2)
	monthname = "February";
	else if (month == 3)
	monthname = "March";
	else if (month == 4)
	monthname = "April";
	else if (month == 5)
	monthname = "May";
	else if (month == 6)
	monthname = "June";
	else if (month == 7)
	monthname = "July";
	else if (month == 8)
	monthname = "August";
	else if (month == 9)
	monthname = "September";
	else if (month == 10)
	monthname = "October";
	else if (month == 11)
	monthname = "November";
	else if (month == 12)
	monthname = "December";
	
//sets the day to a name
		
if (day == 0)
	dayname = "Sunday";
	else if (day == 1)
	dayname = "Monday";
	else if (day == 2)
	dayname = "Tuesday";
	else if (day == 3)
	dayname = "Wednesday";
	else if (day == 4)
	dayname = "Thursday";
	else if (day == 5)
	dayname = "Friday";
	else if (day == 6)
	dayname = "Saturday";
		
//assembles the date to display on the form

var fixdate = dayname + ", " + monthname + " " + date + ", " + yearfixed;
	
// end of fix year stuff
var today = new Date();
var day = today.getDay();  			// 0 is Sunday 6 is Saturday
var month = today.getMonth() + 1; // 0 is January 11 is Dec., add 1
var date = today.getDate();			// day of month 1 - 31
var year = today.getYear();			// the year
var yearfixed;						// fix Netscape year problem
var monthname = new String;			// used to convert var month to a name
var dayname = new String;			// used to convert var day to a name

// fixes the year problem

if (year < 1000)
	{
	yearfixed = year + 1900;
	}
	else
	{
	yearfixed = year;
	}

// sets the month to a name

if (month == 1)
	monthname = "January";
	else if (month == 2)
	monthname = "February";
	else if (month == 3)
	monthname = "March";
	else if (month == 4)
	monthname = "April";
	else if (month == 5)
	monthname = "May";
	else if (month == 6)
	monthname = "June";
	else if (month == 7)
	monthname = "July";
	else if (month == 8)
	monthname = "August";
	else if (month == 9)
	monthname = "September";
	else if (month == 10)
	monthname = "October";
	else if (month == 11)
	monthname = "November";
	else if (month == 12)
	monthname = "December";
	
//sets the day to a name
		
if (day == 0)
	dayname = "Sunday";
	else if (day == 1)
	dayname = "Monday";
	else if (day == 2)
	dayname = "Tuesday";
	else if (day == 3)
	dayname = "Wednesday";
	else if (day == 4)
	dayname = "Thursday";
	else if (day == 5)
	dayname = "Friday";
	else if (day == 6)
	dayname = "Saturday";
		
//assembles the date to display on the form

var fixdate = dayname + ", " + monthname + " " + date + ", " + yearfixed;
	
// end of fix year stuff

//define variables that hold the required fields from workorder.htm
//form checking for mandatory fields and formats

function checkMandatory(form)
{
	//Beginning or regular expressions for field verification
	//phone number verification
	var regExpPhone = /\d{3}\-\d{3}\-\d{4}/;
	var phone = new String();
	phone = workorder.lienholder_phone_number.value;
	
	//fax number verification
	var regExpFax = /\d{3}\-\d{3}\-\d{4}/;
	var fax = new String();
	fax = workorder.lienholder_fax_number.value;
	
	//e-mail verification
	var regExpEmail = /\w+\@\w+\.\D+/;
	var email = new String();
	var email = workorder.lienholder_email.value;
	
	//state, used to convert to uppercase
	var state = workorder.lienholder_state.value;
	var state_debtor = workorder.debtor_state.value;
	
	//zipcode verfication
	var regExpZip = /\d{5}\-{0,1}\d{0,3}/;  //check this does {0,1} work?
	var zipcode = new String();
	var zipcode = workorder.lienholder_zip.value;
	
	//social security verification
	var regExpSsn = /\d{3}\-\d{2}\-\d{4}/;
	var social = new String();
	var social = workorder.debtor_ssn.value;
	
	//year of vehicle verfication
	var regExpYear =/\d{4}/;
	var auto_year = new String();
	var auto_year = workorder.year.value;

	//contract date verfication
	var regExpContractDate =/\d{2}\-\d{2}\-\d{2}/;
	var contractdate = new String();
	var contractdate = workorder.contract_date.value;
	
// End of regular expression definitions
	
// start of lienholder_name check
	if (workorder.lienholder_name.value == "")
		{
		alert("Please enter your first and last name.");
		workorder.lienholder_name.focus();
		workorder.lienholder_name.select();
		return false;
		}
					
// end of lienholder_name check

//	check telephone number format
	
	phoneArray = phone.match(regExpPhone);
//	alert("phoneArray " + phoneArray); //for testing only
	if (phoneArray == null)
		{
		alert("Please enter your phone number in the correct format.");
		workorder.lienholder_phone_number.focus();
		workorder.lienholder_phone_number.select();
		return false;
		}
	//end of lienholder_phone_number

// check lienholder fax number format	

	faxArray = fax.match(regExpFax);
//	alert("faxArray " + faxArray);  //for testing only
	if (faxArray == null)
		{
		alert("Please enter your fax number in the correct format.");
		workorder.lienholder_fax_number.focus();
		workorder.lienholder_fax_number.select();
		return false;
		}
// end check lienholder fax number format

// check lienholder email address

   emailArray = email.match(regExpEmail);
//   alert("emailArray " + emailArray);  //for testing only
   if (emailArray == null)
		{
		alert("Please enter your e-mail address in the correct format.");
		workorder.lienholder_email.focus();
		workorder.lienholder_email.select();
		return false;
		}
//end check lienholder e-mail address

//check lienholder company name is not blank

		if (workorder.lienholder_company.value == "")
			{
			alert("Please enter the name of the company holding the lien.");
			workorder.lienholder_company.focus();
			workorder.lienholder_company.select();
			return false;
			}
// end check leinholder company name	
		

// make sure the lienholder address is not blank
		if (workorder.lienholder_address.value == "")
			{
			alert("Please enter the address of the company holding the lien.");
			workorder.lienholder_address.focus();
			workorder.lienholder_address.select();
			return false;
			}
// end check lienholder address	
	
// make sure the lienholder city is not blank
		
		if (workorder.lienholder_city.value == "")
			{
			alert("Please enter the city where the company holding the lien is located.");
			workorder.lienholder_city.focus();
			workorder.lienholder_city.select();
			return false;
			}
// end check lienholder city

// make sure lienholder state is not blank	
   	   	
		
		if ((state.value == "") || (state.length < 2) || (state.length >= 3))
			{
			alert("Please enter the state in the correct format.");
			workorder.lienholder_state.focus();
			workorder.lienholder_state.select();
			return false;
			}
// end check lienholder state

//	check zipcode format
	
	zipArray = zipcode.match(regExpZip);
//	alert("zipArray " + zipArray); //for testing only
	if (zipArray == null)
		{
		alert("Please enter your zip code in the correct format.");
		workorder.lienholder_zip.focus();
		workorder.lienholder_zip.select();
		return false;
		}
//end of zip code check

// make sure debtor_name is not blank

   if (workorder.debtor_name.value == "")
		{
		alert("Please enter the name of the debtor.");
		workorder.debtor_name.focus();
		workorder.debtor_name.select();
		return false;
		}
// end of check debtor name

// make sure debtor social security number is not blank

   ssnArray = social.match(regExpSsn);
// alert("ssnArray " + ssnArray);
   if (ssnArray == null)
		{
		alert("Please enter the social security number of the debtor in the correct format.");
		workorder.debtor_ssn.focus();
		workorder.debtor_ssn.select();
		return false;
		}			
// end of check debtor social security number

// convert debtor_state to uppercase

   	state_debtor = state_debtor.toUpperCase();
	workorder.debtor_state.value = state_debtor;

// make sure VIN number is not blank

   if (workorder.vin.value == "")
   	  {
	  alert("Please enter the VIN number of the vehicle.");
	  workorder.vin.focus();
	  workorder.vin.select();
	  return false;
	  }
// end of check vin number

// make sure make of vehicle is not blank
   if (workorder.make.value == "")
   	  {
	  alert("Please enter the Make of the vehicle.");
	  workorder.make.focus();
	  workorder.make.select();
	  return false;
	  }
// end of check make

// make sure model of vehicle is not blank

   if (workorder.model.value == "")
   	  {
	  alert("Please enter the Model of the vehicle.");
	  workorder.model.focus();
	  workorder.model.select();
	  return false;
	  }
// end of check model

// make sure year of vehicle is not blank

   yearArray = auto_year.match(regExpYear);
// alert("yearArray " + yearArray);
   if (yearArray == null)
		{
		alert("Please enter the Year of the vehicle.");
		workorder.year.focus();
		workorder.year.select();
		return false;
		}	
// end of check year

// make sure color of vehicle is not blank

   if (workorder.color.value == "")
   	  {
	  alert("Please enter the Color of the vehicle.")
	  workorder.color.focus();
	  workorder.color.select();
	  return false;
	  }
// end of check color

// make sure body type is not blank

   if (workorder.body_type.value == "")
   	  {
	  alert("Please enter the Body Type of the vehicle.")
	  workorder.body_type.focus();
	  workorder.body_type.select();
	  return false;
	  }
// end of check body type

// check license plate number is not blank

   if (workorder.license_plate_number.value == "")
   	  {
	  alert("Please enter the License Plate Number of the vehicle.");
	  workorder.license_plate_number.focus();
	  workorder.license_plate_number.select();
	  return false;
	  }
// end of check license plate number

// check state registered is not blank

   if (workorder.state_registered.value == "")
   	  {
	  alert("Please enter the State in which the vehicle is registered.");
	  workorder.state_registered.focus();
	  workorder.state_registered.select();
	  return false;
	  }
// end of check state registered

// check Contract Date is not blank

   if (workorder.contract_date.value == "")
   	  {
	  alert("Please enter the Contract Date of the vehicle financing.");
	  workorder.contract_date.focus();
	  workorder.contract_date.select();
	  return false;
	  }
// end of check contract date

// check Contract Number is not blank

   if (workorder.contract_number.value == "")
   	  {
	  alert("Please enter the Contract Number of the vehicle financing.");
	  workorder.contract_number.focus();
	  workorder.contract_number.select();
	  return false;
	  }
// end of check contract number
   	   alert("Thank you for submitting your workorder to Allstar. Please click OK to send.");
   	   return true;
	
}
//end of checkMandatory()



//convert lienholder_state and debtor_state to uppercase


// performed onChange for lienholder_state, debtor_state and state_registered fields
function changeCase(form)
	{
	// for lienholder_state
	var state1 = new String;
	state1 = workorder.lienholder_state.value;
	state1 = state1.toUpperCase();
	workorder.lienholder_state.value = state1;
	// for debtor_state
	var state2 = new String;
	state2 = workorder.debtor_state.value;
	state2 = state2.toUpperCase();
	workorder.debtor_state.value = state2;
	//for state_registered
	var state3 = new String;
	state3 = workorder.state_registered.value;
	state3 = state3.toUpperCase();
	workorder.state_registered.value = state3;
	}
// end of changeCase function
