/*****************************************************************
*                                                                *
*   Feedback Functions                                           *
*                                                                *
*****************************************************************/

var strSubjects = new Array()
strSubjects[0] = '';
strSubjects[1] = new Array('Parts Pricing','Machine Pricing','Service Pricing')
strSubjects[2] = new Array('New Equipment Information','Used Equipment Information','Rental Equipment Information')
strSubjects[3] = new Array('Human Resources','Investors Inquiries')
strSubjects[4] = new Array('General Inquiry','Web Site Feedback','Web Site Problem')
strSubjects[5] = new Array('Other')

function PopulateForm(form) {
    var i = form.category.selectedIndex;

    //remove current subjects
    for(j=form.subject.options.length;j>=0;j--){
        form.subject.options[j]=null;
    }

    //init new subjects
    for(j=0;j<strSubjects[i].length+1;j++){
        form.subject.options[j] = new Option();
    }
    
    //fill drop down with array values
    form.subject.options[0].text = '-- Select a Subject --';
    for(t=0;t<strSubjects[i].length;t++){
        form.subject.options[t+1].text = strSubjects[i][t];
        
    }
    form.subject.options[0].selected=true;
}

function ContactFormOK(form){
    var ok = true;

    //check for subject
    var strSelSubject = form.subject.options[form.subject.selectedIndex].text;
    if(ok && (strSelSubject.substring(0,2) == '--' || strSelSubject == '')){
        alert('Please select a subject.');
        ok = false;
    }
    
    //check for name
    if(ok && form.fullname.value == ''){
        alert('Please tell us your name.')
        ok = false;
    }
    
    //check for email
    var newString = form.email.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
    if(ok && !newString){
        alert('Invalid e-mail address!')
        ok = false;
    }
    
    //check for phone
    if(ok && form.chkPhone.checked && form.phone.value == ''){
        alert('You didn\'t enter a phone number.');
        ok = false;
    }
    
    //check for comments
    if(ok && form.comments.value == ''){
        alert('Please enter your question or comment.');
        ok = false;
    }
    
    if(!ok)return false;
}

function ValidateFormOK(form){
    var ok = true;

    //check for name
    if(ok && form.fullname.value == ''){
        alert('Please tell us your name.')
        ok = false;
    }
    
     //check for blank email address
    if(ok && form.email.value == ''){
        alert('Please enter email address.')
        ok = false;
    }      

    //check for email
    var newString = form.email.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
    if(ok && !newString){
        alert('Invalid e-mail address!')
        ok = false;
    }
    
    //check to see if emails match
    if(ok && form.email.value != form.email2.value){
		alert('Email addresses do not match!')
		ok = false;
	}
        
    
    //check for phone
    if(ok && form.chkPhone.checked && form.phone.value == ''){
        alert('You didn\'t enter a phone number.');
        ok = false;
    }
    
     //check for email
    if(ok && form.chkEmail.checked && form.email.value == ''){
        alert('You didn\'t enter an email address.');
        ok = false;
    }
    
    //check for comments
    if(ok && form.comments.value == ''){
        alert('Please enter your question or comment.');
        ok = false;
    }
    
    if(!ok)return false;
}


/*****************************************************************
*                                                                *
*   Survey functions                                             *
*                                                                *
*****************************************************************/

//show survey window
function showSurvey(SectionID){
    x = screen.width;
    y = screen.height;
    x = x / 2 - 490 / 2;
    y = y / 2 - 500 / 2;
    sFeatures = 'width=491,height=500,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no';
    sFeatures = sFeatures + ',screenX=' + x;
    sFeatures = sFeatures + ',screenY=' + y;
    sFeatures = sFeatures + ',top=' + y;
    sFeatures = sFeatures + ',left=' + x;
    
    var hWnd = window.open('http://www.finning.ca/utility/surveyDisplay.asp?sid='+SectionID,'FinningSurvey',sFeatures);
    hWnd.focus();
}

//validate survey form
function validateSurvey(form){
	//alert(form.elements[form.elements[0].name].length);
	//alert(form.elements[form.elements[4].name][0].type);
	var ok = 0;
	var checked = 0;
	for (var i = 0; i < form.elements.length; i++){
		
		if(form.elements[i].type == 'radio' || form.elements[i].type == 'checkbox'){
			checked = 0;
			for (var ii = 0; ii < form.elements[form.elements[i].name].length; ii++){
				//alert(form.elements[form.elements[i].name][ii].value);
				if(form.elements[form.elements[i].name][ii].checked){
					checked = 1;
					break;
				}
			}
		}
//		if(form.elements[i].value == ''){
//			checked = 0;
//		}
		if(!checked){
			ok = 0;
			form.elements[i].focus();
			break;
		}else{
			ok = 1;
		}
	}
	
	if(ok==0){
		
		alert('Please choose at least one answer.');
	}
	
	if(ok) return true;
	else return false;
}


/*****************************************************************
*                                                                *
*   Branch list functions                                        *
*                                                                *
*****************************************************************/

//create arrays for ab, bc, nt and yt	
city = new Array()
city[0] = new Array()
city[1] = new Array()
city[2] = new Array()
city[3] = new Array()

function buildArrays(){
  //build arrays from anchors
  var strProvince
  var intProvinceIdx = -1
  var intCityIdx

  for(i=0;i<document.anchors.length;i++){
    if(document.anchors[i].name!=''){
      strNextProvince = document.anchors[i].name.split('|')[0]
      if(strProvince != strNextProvince){
        intProvinceIdx++;
        strProvince = strNextProvince;
        intCityIdx = 0;
      }
      city[intProvinceIdx][intCityIdx] = document.anchors[i].name;
      intCityIdx++;
    }
  }
}

//update city list
function showCities(form){
  buildArrays();

	//deterine which province radio was clicked
	var i = 0
	while (!form.province[i].checked){i++}

	//populate list from array
	//remove current cities
	for(j=form.citylist.options.length;j>=0;j--){
	    form.citylist.options[j] = null;
	}

	//init new cities
	for(j=0;j<city[i].length+1;j++){
	    form.citylist.options[j] = new Option();
	}
    
	//fill list with array values
	for(t=0;t<city[i].length;t++){
	    form.citylist.options[t].value = city[i][t];
	    form.citylist.options[t].text = city[i][t].split('|')[1].replace('_',' ');
		    
	}
	form.citylist.options[t].text = '                                ';
}
	
//jump to specified city
function jumpTo(form) {
	location='#' + form.citylist.options[form.citylist.selectedIndex].value;
}



/*****************************************************************
*                                                                *
*   Used Equipment Functions                                     *
*                                                                *
*****************************************************************/

//printer friendly window
function openPrint(location){
	window.open(location, 'PrintFriendly', 'width=620,height=500,toolbar=yes,location=no,directories=no,status=yes,menubar=yes,scrollbars=yes, resizable=yes');
}


/*****************************************************************
*                                                                *
*   Truck Engines Registration Form Validation                   *
*   (products/poweresystems/truckengines/register.asp)           *
*                                                                *
*****************************************************************/

//validate form
function validateTruckEnginesForm(objForm){
var blnFormOk = true;
var strContactBy;

  for(var i=0;i<objForm.radContactBy.length;i++){
    if(objForm.radContactBy[i].checked) strContactBy = objForm.radContactBy[i].value;
  }
  switch(strContactBy){
    case "email" :
      var strMatch = objForm.txtEmail.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
      
      if(blnFormOk && objForm.txtName.value == ''){
        alert('Please enter your name.');
        objFocus = objForm.txtName;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtPhone.value == ''){
        alert('Please enter your phone number.');
        objFocus = objForm.txtPhone;
        blnFormOk = false;
      }
      
      if(blnFormOk && !strMatch){
        alert('You have indicated that you wish to be contacted by e-mail. Please enter a valid e-mail address.');
        objFocus = objForm.txtEmail;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtAddress.value == ''){
        alert('Please enter your address.');
        objFocus = objForm.txtAddress;
        blnFormOk = false;
      }
            
      if(blnFormOk && objForm.txtCity.value == ''){
        alert('Please enter your city.');
        objFocus = objForm.txtCity;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtProvince.value == ''){
        alert('Please enter your province.');
        objFocus = objForm.txtProvince;
        blnFormOk = false;
      }

      if(blnFormOk && objForm.txtPostal.value == ''){
        alert('Please enter your postal code.');
        objFocus = objForm.txtPostal;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.selModel1.selectedIndex == 0){
        alert('Please enter at least one model.');
        objFocus = objForm.selModel1;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtSerial1.value == ''){
        alert('Please enter the serial number to match the engine model selected.');
        objFocus = objForm.txtSerial1;
        blnFormOk = false;
      }
      
      
      break;
    case "mail" :
      if(blnFormOk && objForm.txtName.value == ''){
        alert('Please enter your name.');
        objFocus = objForm.txtName;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtPhone.value == ''){
        alert('Please enter your phone number.');
        objFocus = objForm.txtPhone;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtAddress.value == ''){
        alert('Please enter your address.');
        objFocus = objForm.txtAddress;
        blnFormOk = false;
      }

      if(blnFormOk && objForm.txtCity.value == ''){
        alert('Please enter your city.');
        objFocus = objForm.txtCity;
        blnFormOk = false;
      }

      if(blnFormOk && objForm.txtProvince.value == ''){
        alert('Please enter your province.');
        objFocus = objForm.txtProvince;
        blnFormOk = false;
      }

      if(blnFormOk && objForm.txtPostal.value == ''){
        alert('Please enter your postal code.');
        objFocus = objForm.txtPostal;
        blnFormOk = false;
      }

      if(blnFormOk && objForm.txtCountry.value == ''){
        alert('Please enter your country.');
        objFocus = objForm.txtCountry;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.selModel1.selectedIndex == 0){
        alert('Please enter at least one model.');
        objFocus = objForm.selModel1;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtSerial1.value == ''){
        alert('Please enter the serial number to match the engine model selected.');
        objFocus = objForm.txtSerial1;
        blnFormOk = false;
      }

      break;
    case "fax" :
      
      if(blnFormOk && objForm.txtName.value == ''){
        alert('Please enter your name.');
        objFocus = objForm.txtName;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtPhone.value == ''){
        alert('Please enter your phone number.');
        objFocus = objForm.txtPhone;
        blnFormOk = false;
      }
     
     if(blnFormOk && objForm.txtFax.value == ''){
        alert('You have indicated that you wish to be contacted by fax. Please enter a valid fax number.');
        objFocus = objForm.txtFax;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtAddress.value == ''){
        alert('Please enter your address.');
        objFocus = objForm.txtAddress;
        blnFormOk = false;
      }
            
      if(blnFormOk && objForm.txtCity.value == ''){
        alert('Please enter your city.');
        objFocus = objForm.txtCity;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtProvince.value == ''){
        alert('Please enter your province.');
        objFocus = objForm.txtProvince;
        blnFormOk = false;
      }

      if(blnFormOk && objForm.txtPostal.value == ''){
        alert('Please enter your postal code.');
        objFocus = objForm.txtPostal;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.selModel1.selectedIndex == 0){
        alert('Please enter at least one model.');
        objFocus = objForm.selModel1;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtSerial1.value == ''){
        alert('Please enter the serial number to match the engine model selected.');
        objFocus = objForm.txtSerial1;
        blnFormOk = false;
      }
       
      break;
  }

  if(!blnFormOk)objFocus.focus();

  return blnFormOk;
}

/*****************************************************************
*                                                                *
*   Standby Power Solutions Form Validation						 *
*   (products/powersystems/truckengines/ForumRegister.asp)       *
*                                                                *
*****************************************************************/

//validate form
function validateStandbyPowerForm(objForm){
var blnFormOk = true;
var strContactBy;

  for(var i=0;i<objForm.radContactBy.length;i++)

      var strMatch = objForm.txtEmail.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
      
      if(blnFormOk && objForm.txtName.value == ''){
        alert('Please enter your name.');
        objFocus = objForm.txtName;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtPhone.value == ''){
        alert('Please enter your phone number.');
        objFocus = objForm.txtPhone;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtAddress.value == ''){
        alert('Please enter your address.');
        objFocus = objForm.txtAddress;
        blnFormOk = false;
      }
            
      if(blnFormOk && objForm.txtCity.value == ''){
        alert('Please enter your city.');
        objFocus = objForm.txtCity;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.txtProvince.value == ''){
        alert('Please enter your province.');
        objFocus = objForm.txtProvince;
        blnFormOk = false;
      }

      if(blnFormOk && objForm.txtPostal.value == ''){
        alert('Please enter your postal code.');
        objFocus = objForm.txtPostal;
        blnFormOk = false;
      }
      
      if(blnFormOk && objForm.selLocation1.selectedIndex == 0){
        alert('Please choose a location.');
        objFocus = objForm.selLocation1;
        blnFormOk = false;
      }

  if(!blnFormOk)objFocus.focus();

  return blnFormOk;
}


/*****************************************************************
*                                                                *
*   Career Opportunity Resume Validation                         *
*   (home/employment/submit/internal_app.asp)                    *
*                                                                *
*****************************************************************/

 

function validateCareerOpportunityResume(objForm){

if (objForm.txtName.value == "") { 
   alert("Please fill in your name."); 
   objForm.txtName.focus();
   return false; 
   }

if (objForm.txtEmployeeNo.value.search(/^\d{4}$/) == -1) { 
   alert("Please fill in a valid employee number."); 
   objForm.txtEmployeeNo.focus();
   return false; 
   }
  
if (objForm.txtBranch.value == "") { 
   alert("Please fill in your branch number and/or location."); 
   objForm.txtBranch.focus();
   return false; 
   }

if (objForm.txtPhone.value == "") { 
   alert("Please fill in a contact phone number."); 
   objForm.txtPhone.focus();
   return false; 
   }

if (objForm.txtPresentPos.value == "") { 
   alert("Please fill in your present position at Finning."); 
   objForm.txtPresentPos.focus();
   return false; 
   }
  
 if (objForm.txtPositionLength.value == "") { 
   alert("Please fill in the length of time in your current position."); 
   objForm.txtPositionLength.focus();
   return false; 
   }

if (objForm.txtHireDate.value == "") { 
   alert("Please fill in your hire date."); 
   objForm.txtHireDate.focus();
   return false; 
   }
  
if (objForm.txtApplyFor.value == "") { 
   alert("Please fill in the position you are applying for."); 
   objForm.txtApplyFor.focus();
   return false; 
   }

if (objForm.txtCompetition.value == "") { 
   alert("Please fill in the competition number of the position you are applying for."); 
   objForm.txtCompetition.focus();
   return false; 
   }
  
if (objForm.txtSupervisor.value == "") { 
   alert("Please fill in your supervisor's name."); 
   objForm.txtSupervisor.focus();
   return false; 
   }
 }
