// JavaScript Document
addLoadListener(init);

function init(){
	// set focus to first field
	document.getElementById("item2").focus();
	// trap the agree button to enable submit button
	var agree=document.getElementById("agree");
	agree.onclick=enable_submit;
	// trap the form submit event and validate
 	var submit = document.getElementById("Submit");
	submit.onclick = validate;	
	// let it go!
	return true;
};

function enable_submit(){
	// enable/disable Submit
	if(document.getElementById("agree").checked){
		document.getElementById("Submit").disabled=false;
	}
	else{
		document.getElementById("Submit").disabled=true;
	}
}

function addLoadListener(fn){
  if (typeof window.addEventListener != 'undefined'){
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined'){
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined'){
    window.attachEvent('onload', fn);
  }
  else{
    var oldfn = window.onload;
    if (typeof window.onload != 'function'){
      window.onload = fn;
    }
    else{
      window.onload = function(){
        oldfn();
        fn();
      };
    }
  }
};

function validate(){
	// for validating the order form
	var good_data=true;
	
	// trap the agree button to enable submit button
	if(document.getElementById("agree").checked==false){
		alert('You must agree to the conditions to submit order form!');
		enable_submit()
		return false;
	}
	
	good_data=check_cust();
	if(!good_data){return false;}
	else{
		good_data=true;
		good_data=check_co_app();
		if(!good_data){return false;}
		else{
			good_data=true;
			good_data=check_ref();
			if(!good_data){return false;}
		}
	}
}

function check_ref(){
	/*** REFERENCES ***/
	var ref=[];
	var field_err=false;
	var field_num=0;
	
	ref[0]=document.getElementById("ref_first_name1");
	ref[1]=document.getElementById("ref_last_name1");
	ref[2]=document.getElementById("ref_phone1");
	ref[3]=document.getElementById("ref_relation1");
	ref[4]=document.getElementById("ref_first_name2");
	ref[5]=document.getElementById("ref_last_name2");
	ref[6]=document.getElementById("ref_phone2");
	ref[7]=document.getElementById("ref_relation2");
	
	for(i=0;i<ref.length;i++){
		if(ref[i].value==''){
			field_err=true;
			field_num=i;
			break;
		}
	}
	if(field_err){
		alert(ref_err_msg(field_num));
		ref[field_num].focus();
		return false;
	}
	else{return true;}
}

function ref_err_msg(field){
	var msg='';
	switch(field){
		case 0:
			msg='Please enter 1st reference first name!';
			break;
		case 1:
			msg='Please enter 1st reference last name!';
			break;
		case 2:
			msg='Please enter 1st reference phone number!';
			break;
		case 3:
			msg='Please enter 1st reference the relationship!';
			break;
		case 4:
			msg='Please enter 2nd reference first name!';
			break;
		case 5:
			msg='Please enter 2nd reference last name!';
			break;
		case 6:
			msg='Please enter 2nd reference phone number!';
			break;
		case 7:
			msg='Please enter 2nd reference the relationship!';
			break;
	}
	return msg;
}

function check_co_app(){
	/*** CO-APP INFO ***/
	var co_app=[];
	var field_err=false;
	var field_num=0;
	var field_len=0;
	
	co_app[0]=document.getElementById("cust2_first_name");
	co_app[1]=document.getElementById("cust2_last_name");
	co_app[2]=document.getElementById("co_app_phone");
	co_app[3]=document.getElementById("co_app_best_time");
	co_app[4]=document.getElementById("cust2_dl");	
	co_app[5]=document.getElementById("cust2_dl_state");
	co_app[6]=document.getElementById("cust2_dl_exp");
	co_app[7]=document.getElementById("co_app_vehicle_info");	
	co_app[8]=document.getElementById("co_app_vehicle_tag");
	co_app[9]=document.getElementById("co_app_vehicle_finace");
	co_app[10]=document.getElementById("co_app_employer");	
	co_app[11]=document.getElementById("co_app_paydays");
	co_app[12]=document.getElementById("co_app_income");
	co_app[13]=document.getElementById("co_app_work_phone");
	co_app[14]=document.getElementById("co_app_employer_how_long");
	co_app[15]=document.getElementById("co_app_employer_sup_name");
	/******
	make sure there is something in the first name field
	before validating the co-applicant
	******/
	if(!co_app[0].value==''){
		if(document.orderform.co_app_employed[0].checked){
			field_len=co_app.length;
		}
		else{
			field_len=10;
		}
		for(i=1;i<field_len;i++){
			if(co_app[i].value==''){
				field_err=true;
				field_num=i;
				break;
			}
		}
		
		if(field_err){
			alert(co_app_err_msg(field_num));
			co_app[field_num].focus();
			return false;
		}
		else{return true;}
	}
	else{return true;}
}

function co_app_err_msg(field){
	var msg='';
	switch(field){
		case 0:
			msg='Please enter Co-Applicant first name!';
			break;
		case 1:
			msg='Please enter Co-Applicant last name!';
			break;
		case 2:
			msg='Please enter Co-Applicant phone number!';
			break;
		case 3:
			msg='Please enter Co-Applicant best time to call!';
			break;
		case 4:
			msg='Please enter Co-Applicant drivers license number!';
			break;
		case 5:
			msg='Please enter Co-Applicant drivers license state!';
			break;
		case 6:
			msg='Please enter Co-Applicant drivers license expiration date!';
			break;
		case 7:
			msg='Please enter the Co-Applicant make and model of car!';
			break;
		case 8:
			msg='Please enter Co-Applicant license plate number!';
			break;
		case 9:
			msg='Please enter who Co-Applicant car is financed by!';
			break;
		case 10:
			msg='Please enter Co-Applicant employer!';
			break;
		case 11:
			msg='Please enter Co-Applicant pay day(s)!';
			break;
		case 12:
			msg='Please enter Co-Applicant income!';
			break;
		case 13:
			msg='Please enter Co-Applicant work phone!';
			break;
		case 14:
			msg='Please state how long Co-Applicant has worked for this company!';
			break;
		case 15:
			msg='Please enter Co-Applicant supervisor\'s name!';
			break;
	}
	return msg;
}

function check_cust(){
	/*** CUSTOMER INFO ***/	
	var cust=[];
	var field_err=false;
	var field_num=0;
	cust[0]=document.getElementById("item2");
	cust[1]=document.getElementById("cust_first_name");
	cust[2]=document.getElementById("cust_mi");
	cust[3]=document.getElementById("cust_last_name");
	cust[4]=document.getElementById("cust_address");
	cust[5]=document.getElementById("cust_city");
	cust[6]=document.getElementById("cust_state");
	cust[7]=document.getElementById("cust_zip");	
	cust[8]=document.getElementById("how_long_yrs");
	cust[9]=document.getElementById("how_long_mnths");	
	cust[10]=document.getElementById("cust_phone");
	cust[11]=document.getElementById("best_time");
	cust[12]=document.getElementById("name_on_phone");	
	cust[13]=document.getElementById("rentown");
	cust[14]=document.getElementById("landlord_name");
	cust[15]=document.getElementById("landlord_phone");	
	cust[16]=document.getElementById("cust_email");	
	cust[17]=document.getElementById("cust_dl");
	cust[18]=document.getElementById("dl_state");
	cust[19]=document.getElementById("dl_exp");	
	cust[20]=document.getElementById("vehicle_info");
	cust[21]=document.getElementById("vehicle_tag");
	cust[22]=document.getElementById("vehicle_finace");	
	cust[23]=document.getElementById("employer");
	cust[24]=document.getElementById("paydays");
	cust[25]=document.getElementById("cust_income");
	cust[26]=document.getElementById("cust_work_phone");
	cust[27]=document.getElementById("employer_how_long");
	cust[28]=document.getElementById("employer_sup_name");
	
	for(i=0;i<cust.length;i++){
		if(cust[i].value==''){
			field_err=true;
			field_num=i;
			break;
		}
		// check if rent/own is checked
		if(i==13){
			if(!document.orderform.rentown[0].checked && !document.orderform.rentown[1].checked){
				field_err=true;
				field_num=i;
				break;
			}
		}
		// check email
		if(i==16){
			if(!verifyEmail(cust[i].value)){
				field_err=true;
				field_num=i;
				break;
			}
		}
	}
	if(field_err){
		alert(cust_err_msg(field_num));
		cust[field_num].focus();
		return false;
	}
	else{return true;}
}

function cust_err_msg(field){
	var msg='';
	switch(field){
		case 0:
			msg='Please enter the item interested in!';
			break;
		case 1:
			msg='Please enter first name!';
			break;
		case 2:
			msg='Please enter middle initial!';
			break;
		case 3:
			msg='Please enter last name!';
			break;
		case 4:
			msg='Please enter address!';
			break;
		case 5:
			msg='Please enter city!';
			break;
		case 6:
			msg='Please enter state!';
			break;
		case 7:
			msg='Please enter zip code!';
			break;
		case 8:
			msg='Please enter how many years at current address!';
			break;
		case 9:
			msg='Please enter how many months at current address!';
			break;
		case 10:
			msg='Please enter phone number!';
			break;
		case 11:
			msg='Please enter best time to call!';
			break;
		case 12:
			msg='Please enter name on phone account!';
			break;
		case 13:
			msg='Please choose Rent or Own!';
			break;
		case 14:
			msg='Please enter Landlord or Mortgage Company!';
			break;
		case 15:
			msg='Please enter Landlord or Mortgage Company phone number!';
			break;
		case 16:
			msg='Please enter a valid email address!';
			break;
		case 17:
			msg='Please enter your drivers license number!';
			break;
		case 18:
			msg='Please enter drivers license state!';
			break;
		case 19:
			msg='Please enter drivers license expiration date!';
			break;
		case 20:
			msg='Please enter the make and model of your car!';
			break;
		case 21:
			msg='Please enter license plate number!';
			break;
		case 22:
			msg='Please enter who your car is financed by!';
			break;
		case 23:
			msg='Please enter your employer!';
			break;
		case 24:
			msg='Please enter your pay day(s)!';
			break;
		case 25:
			msg='Please enter your income!';
			break;
		case 26:
			msg='Please enter your work phone!';
			break;
		case 27:
			msg='Please state how long you\'ve worked for this company!';
			break;
		case 28:
			msg='Please enter your supervisor\'s name!';
			break;
	}
	return msg;
}

function verifyEmail(checkEmail){
	var emailPattern = /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/;
	if (!emailPattern.test(checkEmail)){return false;}
	else{return true;}
}