//text field checks
	function emailCheck(){
	  var fieldName = emailCheck.arguments[0];
	  var alertText = emailCheck.arguments[1];
	  
	  var AtSym = fieldName.value.indexOf('@');
	  var Period = fieldName.value.lastIndexOf('.');
	  var Space = fieldName.value.indexOf(' ');
	  var Length = fieldName.value.length - 1;   // Array is from 0 to length-1
	  if ((AtSym < 1) ||                 // '@' cannot be in first position
	  (Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
	  (Period == Length ) ||             // Must be atleast one valid char after '.'
	  (Space  != -1)){                   // No empty spaces permitted
	 	ValidOk = false;
		alert('Please enter a valid '+alertText+'.');
		fieldName.focus();
		fieldName.select();
		return false;
	  }
	  return true;

		/*var fieldName = emailCheck.arguments[0];
	  
	  var AtSym = fieldName.value.indexOf('@');
	  var Period = fieldName.value.lastIndexOf('.');
	  var Space = fieldName.value.indexOf(' '); 
	  var Length = fieldName.value.length - 1;   // Array is from 0 to length-1
	  if ((AtSym < 1) ||                 // '@' cannot be in first position
	  (Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
	  (Period == Length ) ||             // Must be atleast one valid char after '.'
	  (Space  != -1)){                   // No empty spaces permitted
	 	ValidOk = false;

		return false;
	  }
	  return true;*/
	}
	
	// Check for a valid email address using the reg ex function above
	function emailCheck2(){
		var fieldName = emailCheck2.arguments[0];
		var valid = true;
		var str = fieldName.value;
		
		if(!isRegExpEmail(str)){
			ValidOk = false;
			alert('Please enter a valid email address');
	    	fieldName.focus();
	    	fieldName.select();
		}
	}

	// Regular expression for email address validation
	function isRegExpEmail(str){
		var regExp = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4})|([a-zA-Z0-9\-\.]+))\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/;
		return regExp.test(str);
	}

	// Check for a valid email address using the reg ex function above
	function confirmemailCheck(){
		var fieldName1 = confirmemailCheck.arguments[0];
		var fieldName2 = confirmemailCheck.arguments[1];
		var valid = true;
	
		emailCheck(fieldName2);
		
		if (ValidOk) {
			if (fieldName1.value != fieldName2.value){
			ValidOk = false;
			alert('Sorry your email and confirmation email does not match');
			fieldName2.focus();
	    	fieldName2.select();
			}
		}
	}
	
	function strCheck(){
	  var fieldName = strCheck.arguments[0];
	  var compareNumber = strCheck.arguments[1];
	  var alertText = strCheck.arguments[2];
	  
	  if ((fieldName.value.length < compareNumber) || (isNaN(fieldName.value) != true)){
	    ValidOk = false;
	    alert('Please enter your ' + alertText + '.');
	    fieldName.focus();
	    fieldName.select();
		return false;
	  }
	  return true;
	}
	
	function dob_yearCheck(){
	  var fieldName = dob_yearCheck.arguments[0];
	  var alertText = dob_yearCheck.arguments[1];
	  if ((fieldName.value.length < 4) || (fieldName.value.length > 4) || (isNaN(fieldName.value)) || (fieldName.value > 1986)){
	    ValidOk = false;
		alert('Please enter your ' + alertText + '.');
		fieldName.focus();
	    fieldName.select();
		return false;
	  }
	  return true;
	}
	
	/*	  
	  dateChecker function
	  -----------------------------------------------------------
	  If the user doesn't enter a date then it is not required
	  if they enter either a day, month or year then they have to
	  fill in all three date fields.
	  -----------------------------------------------------------
	*/
	  
	function dateChecker(){
	  // get the variables that need to be passed in.
	  // (name of form,name of field)
	  var formName   = dateChecker.arguments[0];
  
	  // set the variables for day month and year
	  var dayField   = formName.day;
	  var monthField = formName.month;
	  var yearField  = formName.year;
	  
	  //Check to see if the fields are empty

	  if (dayField.options.selectedIndex != 0 || monthField.options.selectedIndex != 0 || yearField.value != ""){
        selectboxCheck(dayField,'Please select a day.');
		if(ValidOk == true){
          selectboxCheck(monthField,'Please select a month.');		
		}
		if(ValidOk == true){
          dob_yearCheck(yearField,'year');		
		}
	  }
	  return true;
    } 

	function alphaNumericCheck(){
	  var fieldName = alphaNumericCheck.arguments[0];
	  var compareNumber = alphaNumericCheck.arguments[1];
	  var alertText = alphaNumericCheck.arguments[2];
	  
	  if (fieldName.value.length < compareNumber){
	    ValidOk = false;
	    alert('Please enter your ' + alertText + '.');
	    fieldName.focus();
	    fieldName.select();
		return false;
	  }
	  return true;
	}	

	function passwordCheck(){
	  var fieldName = passwordCheck.arguments[0];
	  var compareNumberOne = passwordCheck.arguments[1];
	  var compareNumberTwo = passwordCheck.arguments[2];
	  var alertText = passwordCheck.arguments[3];
	  
	  if ((fieldName.value.length < compareNumberOne) || (fieldName.value.length > compareNumberTwo)){
	    ValidOk = false;
	    alert(alertText);
	    fieldName.focus();
	    fieldName.select();
	  }
	}
	
	function passMatch(){
	  var formName = passMatch.arguments[0];
	  var fieldName = passMatch.arguments[1];
	  var alertText = passMatch.arguments[2];
	  var compareField = formName.newPassword.value;
      if (fieldName.value != compareField){
	    ValidOk = false;
	    alert(alertText);
	    fieldName.focus();
	    fieldName.select();
	  }
	}

	function dateCheck(){
	  var formName = dateCheck.arguments[0];
	  var alertText = dateCheck.arguments[2];
	  var dayField = formName.day.value;
	  var monthField = formName.month.value;
	  var yearField = formName.year.value;
	  var validDate;
	  
	  validDate = new Date(yearField, monthField-1, dayField);
	  
	  alert (validDate);
	  
     // if (fieldName.value != compareField){
	  //  ValidOk = false;
	  //  alert(alertText);
	  //  fieldName.focus();
	  //  fieldName.select();
	  //}
	}
	function isRegExpPhone(str){
		var regExp = /^(\d{10}|\d{2} \d{4} \d{4}|\d{8}|\d{4} \d{3} \d{3}|\d{2} \d{8}|\d{4} \d{6}|\(\d{4}\) \d{3} \d{3}|\(\d{2}\) \d{4} \d{4}|\(\d{4}\)\d{6}|\(\d{2}\)\d{8})$/;
		return regExp.test(str);
	}

	//CHecks for a valid phone number using the reg ex function above
	function phoneCheck(){
		var fieldName = phoneCheck.arguments[0];
		var valid = true;
		var str = fieldName.value;
	    
		if(!isRegExpPhone(str)){
			ValidOk = false;
			alert('Please enter a valid phone number');
	    	fieldName.focus();
	    	fieldName.select();
		}
	}

	function numCheck(){
	  var fieldName = numCheck.arguments[0];
	  var compareNumber = numCheck.arguments[1];
	  var alertText = numCheck.arguments[2];
	  if ((isNaN(fieldName.value) == true) || (fieldName.value.length != compareNumber)){
	    ValidOk = false;
	    alert('Please enter a valid ' + alertText + '.');
	    fieldName.focus();
	    fieldName.select();
	  }
	}
	function dualNumCheck(){
	  var fieldName = dualNumCheck.arguments[0];
	  var compareNumber1 = dualNumCheck.arguments[1];
	  var compareNumber2 = dualNumCheck.arguments[2];
	  var alertText = dualNumCheck.arguments[3];
	  var fieldValue = fieldName.value;
	  fieldVal = removeSpaces(fieldValue);
	  fieldName.value = fieldVal
	  if ((isNaN(fieldVal) == true) || (fieldVal.length != compareNumber1) && (fieldVal.length != compareNumber2)){
	    ValidOk = false;
	    alert('Please enter a valid ' + alertText + '.');
	    fieldName.focus();
	    fieldName.select();
	  }
	}
	function removeSpaces(){
	  var fieldValue = removeSpaces.arguments[0];
  	  var fieldVal = fieldValue.replace(" ","");
	  fieldValue = fieldVal;
	  return fieldVal;
	}

//radio button checks
	function radioCheck(){
	  var fieldName = radioCheck.arguments[0];
	  var alertText = radioCheck.arguments[1];
	  
	  if (fieldName[0].checked != true && fieldName[1].checked != true){
	    ValidOk = false;
	    alert(alertText);
	  }
	}
	
	function dealerCheck(){
      var formName    = dealerCheck.arguments[0];
	  var fieldName   = dealerCheck.arguments[1];
	  var alertText   = dealerCheck.arguments[2];
	  var dealerNum   = formName.dealerNum;
	  var dealerAM    = formName.dealerAM;
	  var distName    = formName.distName;
	  var distContact = formName.distContact;
	  
	  if (fieldName[0].checked != true && fieldName[1].checked != true){
	    ValidOk = false;
	    alert(alertText);
	  }else if(fieldName[0].checked){
	    strCheck(dealerNum,8,'Brother Account Code');
		if(ValidOk == true){
		strCheck(dealerAM,2,'Brother Account Manager');
		}
	  }else if(fieldName[1].checked){
	    strCheck(distName,2,'Brother Distributor');
		if(ValidOk == true){
		  strCheck(distContact,2,'Distributor contact');
		}
	  }	
	}	

//select boxes
	function selectboxCheck(){
	  var fieldName = selectboxCheck.arguments[0];
	  var alertText = selectboxCheck.arguments[1];
	  if (((parseInt(navigator.appName.indexOf("Netscape")) == 0) && (parseInt(fieldName.selectedIndex) == 0))){
	    ValidOk = false;
	    alert(alertText);
		return false;
	  }else if(document.all){
	    if (parseInt(fieldName.selectedIndex) == 0){
          ValidOk = false;
	      alert(alertText);
		  return false;
		}  
	  }
	  return true;
	}
	
//Multiple Field Processes
	// This process checks that if the checkbox has been checked then something must be selected in the dropdown
	// if checkbox is selected then the drop down box must not equal 0 (0 = the first field)
	function selectCheck(){
	  var selectFieldName = selectCheck.arguments[0];
	  var alertText = selectCheck.arguments[1];
 	  if (((parseInt(navigator.appName.indexOf("Netscape")) != 0) && (parseInt(selectFieldName.selectedIndex) == 0))){
		ValidOk = false;
		alert(alertText);
	  }
 	}

//Multiple Field Processes
	// This process checks that if the checkbox has been checked then something must be selected in the dropdown
	// if checkbox is selected then the drop down box must not equal 0 (0 = the first field)
	function checkboxDropdownCheck(){
	  var checkBoxFieldName = checkboxDropdownCheck.arguments[0];
	  var selectFieldName = checkboxDropdownCheck.arguments[1];
	  var alertText = checkboxDropdownCheck.arguments[2];
 	  if (checkBoxFieldName.checked == true && ((parseInt(navigator.appName.indexOf("Netscape")) == 0) && (parseInt(selectFieldName.selectedIndex) == 0)) ||
		checkBoxFieldName.checked == true && ((parseInt(navigator.appName.indexOf("Netscape")) != 0) && (parseInt(selectFieldName.selectedIndex) <= 0))){
		ValidOk = false;
		alert(alertText);
	  }
 	}
//Checks for a valid date
	function IsDate(dd, mm, yyyy){
        var err=0
        var psj=0;
        
        //basic error checking
        if (mm<1 || mm>12) err = 1
        if (dd<1 || dd>31) err = 1
        if (yyyy<1900 || yyyy>2999) err = 1
        
        //advanced error checking

        // months with 30 days
        if (mm==4 || mm==6 || mm==9 || mm==11){
                if (dd==31) err=1
        }

        // february, leap year
        if (mm==2){
                // feb
                var g=parseInt(yyyy/4)
                if (isNaN(g)) {
                        err=1
                }

                if (dd>29) err=1
                if (dd==29 && ((yyyy/4)!=parseInt(yyyy/4))) err=1
        }

        return (err==1) ? false : true;           

	}
