// Form Validation JavaScript for Catalog Request Form

function CatalogValid(f){
  var ret=false;
   if (f.Howmany.options.selectedIndex==0){
     f.Howmany.focus();
     alert('"How many catalogs would you like" is a required field. Please try again.');
  }else if (f.FirstName.value==''){
     f.FirstName.focus();
     alert('Your "First Name" is a required field. Please try again.');
  }else if (f.LastName.value==''){
     f.LastName.focus();
     alert('Your "Last name" is a required field. Please try again.');
  }else if (f.Address.value==''){
     f.Address.focus();
     alert('Your "Address" is a required field. Please try again.');
  }else if (f.City.value==''){
     f.City.focus();
     alert('Your "City" is a required field. Please try again.');
  }else if (f.State.value==''){
     f.State.focus();
     alert('Your "State" is a required field. Please try again.');
  }else if (f.Zip.value==''){
     f.Zip.focus();
     alert('Your "Zip" is a required field. Please try again.');
  }else if (f.Country.value==''){
     f.Country.focus();
     alert('Your "Country" is a required field. Please try again.');
  }else if (f.Mail.value=='' || !fn_checkemail(f.Mail.value)){
     f.Mail.focus();
     alert('Your "Email Address" is a required field (e.g. yourmail@yourdomain.com). Please try again.');
  }else if (f.School.value==''){
     f.School.focus();
     alert('Your "School Name" is a required field. Please try again.');
  }else if (f.How_did.value==''){
     f.How_did.focus();
     alert('"How did you hear of us?" is a required field. Please try again.');
  }
  else if (f.Grade.value==''){
     f.Grade.focus();
     alert('Your "Grade" is a required field. Please try again.');
  }else if (f.Age.value==''){
     f.Age.focus();
     alert('Your "Age" is a required field. Please try again.');
	}else
     ret=true;
  return ret;
}

// Form Validation JavaScript

function FormValid(f){
  var ret=false;
  if (f.FirstName.value==''){
     f.FirstName.focus();
     alert('Your "First Name" is a required field. Please try again.');
  }else if (f.LastName.value==''){
     f.LastName.focus();
     alert('Your "Last name" is a required field. Please try again.');
  }else if (!validRadio(f.Gender)){
     alert('Your "Sex" is a required field. Please try again.');
  }else if (f.FormType.value=='App' && !validRadio(f.RepeatStudent)){
     alert('"Have you ever traveled with Rustic Pathways before" is a required field. Please try again.');
  }else if (f.FormType.value=='Alum' && !validRadio(f.RepeatStudent1)){
     alert('"Are you a Star Alumni" is a required field. Please try again.');
  }else if (f.HomeAddress.value==''){
     f.HomeAddress.focus();
     alert('Your "Home Address" is a required field. Please try again.');
  }else if (f.City.value==''){
     f.City.focus();
     alert('Your "City" is a required field. Please try again.');
  }else if (f.State.value==''){
     f.State.focus();
     alert('Your "State" is a required field. Please try again.');
  }else if (f.Zip.value==''){
     f.Zip.focus();
     alert('Your "Zip" is a required field. Please try again.');
  }else if (f.Country.value==''){
     f.Country.focus();
     alert('Your "Country" is a required field. Please try again.');
  }else if (f.Email.value=='' || !fn_checkemail(f.Email.value)){
     f.Email.focus();
     alert('Your "Home Email Address" is a required field (e.g. yourmail@yourdomain.com). Please try again.');
  }else if (f.HomeP.value==''){
     f.HomeP.focus();
     alert('Your "Student Contact Phone" is a required field. Please try again.');
//  }else if (f.Age.value==''){
//     f.Age.focus();
//     alert('Your "Age" is a required field. Please try again.');
  }else if (!validDropDown(f.Month_of_Birth)){
     f.Month_of_Birth.focus();
     alert('Your "Month of Birth" is a required field. Please try again.');
  }else if (!validDropDown(f.Day_of_Birth)){
     f.Day_of_Birth.focus();
     alert('Your "Day of Birth" is a required field. Please try again.');
  }else if (!validDropDown(f.Year_of_Birth)){
     f.Year_of_Birth.focus();
     alert('Your "Year of Birth" is a required field. Please try again.');
  }else if (!fn_checkusdate(f.Month_of_Birth.value+'/'+f.Day_of_Birth.value+'/'+f.Year_of_Birth.value)){
     f.Month_of_Birth.focus();
     alert('Your "Birth Date must be valid (MM/DD/YYYY)". Please try again.');
  }else if (f.Height_Ft.value==''){
     f.Height_Ft.focus();
     alert('Your "Height Feet" is a required field. Please try again.');
  }else if (f.Weight.value=='' || !fn_checknumber(f.Weight.value)){
     f.Weight.focus();
     alert('Your "Weight Lbs" is a required field. Please try again.');
  }else if (f.SchoolName.value==''){
     f.SchoolName.focus();
     alert('Your "School Name" is a required field. Please try again.');
  }else if (f.Grade.value==''){
     f.Grade.focus();
     alert('Your "Grade" is a required field. Please try again.');
  }else if (!validRadio(f.Allergies_or_special_health_information)){
     alert('Your "Allergies or special health information" is a required field. Please try again.');
  }else if (f.Allergies_or_special_health_information[0].checked && f.HealthDetails.value == ''){
     f.HealthDetails.focus();
     alert('Your "allergies, disabilities or special health considerations" is a required field.\n Please try again.');
//  }else if (f.PassportNumber.value==''){
//     f.PassportNumber.focus();
//     alert('Your "Passport Number" is a required field. Please try again.');
//  }else if (f.PassportExpMonth.value=='' || f.PassportExpYear.value==''){
//     f.PassportExpMonth.focus();
//     alert('Your "Passport Expiration Date (MM/YYYY)" is a required field. Please try again.');
//  }else if (!PassportExp(f.PassportExpMonth.value, f.PassportExpYear.value)){
//     f.PassportExpMonth.focus();
//     alert('Your "Passport has expired or was entered incorrectly". Please try again.');
//  }else if (f.PassportNationality.value==''){
//     f.PassportNationality.focus();
//     alert('Your "Passport Nationality" is a required field. Please try again.');
//  }else if (f.PassportCountryofIssue.value==''){
//     f.PassportCountryofIssue.focus();
//     alert('Your "Passport Country of Issue" is a required field. Please try again.');
  }else if (f.MotherLastName.value=='' && f.FatherLastName.value==''){
     f.MotherLastName.focus();
     alert('Your "Mother\'s or Father\'s name" is a required field. Please try again.');
  }else if (!f.MotherEmail.value=='' && !fn_checkemail(f.MotherEmail.value)){
     f.MotherEmail.focus();
     alert('"Invalid e-mail address for Mother." Please try again.');
  }else if (!f.FatherEmail.value=='' && !fn_checkemail(f.FatherEmail.value)){
     f.FatherEmail.focus();
     alert('"Invalid e-mail address for Father." Please try again.');
  }else if (!f.FatherEmail.value=='' && f.Email.value==f.FatherEmail.value){
     f.FatherEmail.focus();
     alert('"Please make sure your emails are different, or remove it from the Participant\'s details if this is a parent\'s email address. Thank you!" Please try again.');
  }else if (!f.MotherEmail.value=='' && f.Email.value==f.MotherEmail.value){
     f.MotherEmail.focus();
     alert('"Please make sure your emails are different, or remove it from the Participant\'s details if this is a parent\'s email address. Thank you!" Please try again.');
  }else if (!validRadio(f.SendTo)){
     f.SendTo[0].focus();
     alert('"Please indicate where to send Acceptance Letter, other trip information and future mailings" is a required field. Please try again.');
  }else if ((f.MotherFirstName.value=='' || f.MotherLastName.value=='' || f.MotherAddress.value==''|| f.MotherCity.value=='' || f.MotherState.value=='' || f.MotherZip.value=='') && (f.SendTo[0].checked || f.SendTo[2].checked)){
     f.MotherFirstName.focus();
     alert('Mother\'s contact information is required for sending future mailings. Please try again.');
  }else if ((f.FatherFirstName.value=='' || f.FatherLastName.value=='' || f.FatherAddress.value==''|| f.FatherCity.value=='' || f.FatherState.value=='' || f.FatherZip.value=='') && (f.SendTo[1].checked || f.SendTo[2].checked)){
     f.FatherFirstName.focus();
     alert('Father\'s contact information is required for sending future mailings. Please try again.');
  }else if (f.FormType.value=='Alum' && f.RepeatStudent1[1].checked && f.comments.value==''){
	 f.comments.focus();
     alert('"PLEASE GIVE US THE FULL NAME OF THE PERSON THAT REFERRED YOU" is a required field.\n Please try again.');
  }else if (!validDropDown(f.My_First_Trip_Country_Selected)){
     f.My_First_Trip_Country_Selected.focus();
     alert('Your "My First Trip Country" is a required field. Please try again.');
  }else if (!validDropDown(f.My_First_Trip_Name_Is)){
     f.My_First_Trip_Name_Is.focus();
     alert('Your "My First Trip Name" is a required field. Please try again.');
  }else if (!validDropDown(f.My_First_Departure_Date)){
     f.My_First_Departure_Date.focus();
     alert('Your "My First Departure Date" is a required field. Please try again.');
  }else if (!validRadio(f.Airfare)){
     alert('Your "Will your first selected program be in either Costa Rica, Peru, India? " is a required field. Please try again.');
  }else if (f.Airport_for_Departure.value=='' && ArrangeAirfare(f.My_First_Trip_Country_Selected.value)){
  	 f.Airport_for_Departure.focus();
  	 f.Airfare[0].checked = true;
     alert('Your "Airport I would like to leave from" is a required field. Please try again.');
  }else if (f.Airport_for_Return.value=='' && ArrangeAirfare(f.My_First_Trip_Country_Selected.value)){
  	 f.Airfare[0].checked = true;
  	 f.Airport_for_Return.focus();
     alert('Your "Airport I would like to return to" is a required field. Please try again.');
  }else if (!validDropDown(f.S_TShirt) && !validDropDown(f.M_TShirt) && !validDropDown(f.L_TShirt) && !validDropDown(f.XL_TShirt) && !validDropDown(f.XXL_TShirt) && !validDropDown(f.XXXL_TShirt)){
     alert('Your "Size of free T-shirt" is a required field. Please try again.');
  }else if (!validCheck(f.Student_Understands)){
     f.Student_Understands.focus();
     alert('Your "Student has read, understands and agrees to abide with the above statement" is a required field.\n Please try again.');
  }else if (!validCheck(f.Parent_Understands)){
     f.Parent_Understands.focus();
     alert('Your "Parent/Guardian has read, understands and agrees to abide with the above statement." is a required field.\n Please try again.');
  }else if (f.FormType.value=='App' && f.RepeatStudent[1].checked && !validRadio(f.ApplicationFeePayment) || f.FormType.value=='Alum' && f.RepeatStudent1[1].checked && !validRadio(f.ApplicationFeePayment)){
	 f.ApplicationFeePayment[0].focus();
     alert('Your "Payment method (i.e. credit card or check)" is a required field.\n Please try again.');
  }else if (f.ApplicationFeePayment[0].checked && !validRadio(f.CCType)){
     alert('Your "credit card type" is a required field.\n Please try again.');
  }else if (f.ApplicationFeePayment[0].checked && !validDropDown(f.Expiration_Month)){
     alert('Your "credit card expiration month" is a required field.\n Please try again.');
  }else if (f.ApplicationFeePayment[0].checked && !validDropDown(f.Expiration_Year)){
     alert('Your "credit card expiration year" is a required field.\n Please try again.');
  }else if (f.ApplicationFeePayment[0].checked && f.CCFullName.value==''){
     alert('Your "full name on credit card" is a required field.\n Please try again.');
  }else if (f.ApplicationFeePayment[0].checked && f.CCNumber.value==''){
     alert('Your "credit card number" is a required field.\n Please try again.');
  }else if (!validCheck(f.Parent_guardian_agrees_with_all_of_this)){
     f.Parent_guardian_agrees_with_all_of_this.focus();
     alert('Your "Parent or Guardian agrees to these terms and conditions" is a required field.\n Please try again.');
  }else if (!validCheck(f.Applicant_agree)){
     f.Applicant_agree.focus();
     alert('Your "Applicant agrees to these terms and conditions" is a required field. Please try again.');
  }else if (f.ApplyDate.value==''){
     f.ApplyDate.focus();
     alert('Your "Applicant Agrees Date" is a required field. Please try again.');
  }else if (f.Parent_Agreement_Date.value==''){
     f.Parent_Agreement_Date.focus();
     alert('Your "Parent has read, understands and agrees to abide with the above statement');
	}else
     ret=true;
  return ret;
}


function PassportExp(pMo, pYr) {
//	if (!document.forms[0].PassportExpMonth.value=='' || !document.forms[0].PassportExpYear.value==''){
	var pMo=(parseInt(pMo)-1);
	var pYr=parseInt(pYr);
	var now = new Date();
	var ret=false;
	tMo=(now.getMonth());
	tYr=(now.getYear());

	if (pYr > tYr){
		ret=true;
	}else if((pYr==tYr) && (pMo > tMo)){
		ret=true;
	}else
	{
	ret=false;
	}
	return ret;
}


function calcAge() {
	if (validDropDown(document.forms[0].Month_of_Birth) && validDropDown(document.forms[0].Day_of_Birth) && validDropDown(document.forms[0].Year_of_Birth)) {
	var bday=parseInt(document.forms[0].Day_of_Birth.value);
	var bmo=(parseInt(document.forms[0].Month_of_Birth.value)-1);
	var byr=parseInt(document.forms[0].Year_of_Birth.value);
	var byr;
	var age;
	var now = new Date();
	tday=now.getDate();
	tmo=(now.getMonth());
	tyr=(now.getYear());

	{
	if((tmo > bmo)||(tmo==bmo & tday>=bday))
	{age=byr}

	else
	{age=byr+1}
	document.forms[0].Age.value = (tyr-age);
	}}
}


function setSendTo(f){
	if (f=='Mother'){
		document.forms[0].SendToMother.value = -1;
	}else if (f=='Father'){
		document.forms[0].SendToFather.value = -1;
	}else if (f=='Both'){
		document.forms[0].SendToMother.value = -1;
		document.forms[0].SendToFather.value = -1;
	}
}

function setAddress(f){
	if (f=='Mother'){
		document.forms[0].MotherAddress.value = document.forms[0].HomeAddress.value;
		document.forms[0].MotherCity.value = document.forms[0].City.value;
		document.forms[0].MotherState.value = document.forms[0].State.value;
		document.forms[0].MotherZip.value = document.forms[0].Zip.value;
		document.forms[0].MotherCountry.value = document.forms[0].Country.value;
	}else if (f=='Father'){
		document.forms[0].FatherAddress.value = document.forms[0].HomeAddress.value;
		document.forms[0].FatherCity.value = document.forms[0].City.value;
		document.forms[0].FatherState.value = document.forms[0].State.value;
		document.forms[0].FatherZip.value = document.forms[0].Zip.value;
		document.forms[0].FatherCountry.value = document.forms[0].Country.value;
	}
}


function ArrangeAirfare(f){
	var ret=false;
	if (f=='Costa Rica' || f=='India' || f=='Peru'){
		ret=true;
	}
	return ret;
}

function setPaymentArea(f) {
  if (f.value=='Yes'){
	PaymentArea.style.display="none";
	document.forms[0].ApplicationFeePayment[0].checked = false;
	}else if (f.value=='No'){
	document.forms[0].ApplicationFeePayment[0].checked = true;
	PaymentArea.style.display="block";
	} 
}



function setCreditCard(f) {
//  alert(f.value);
  if (f.value=='Sending Check'){
//    alert("Disabled");
//	document.forms[0].CCType.value = "";
	document.forms[0].Expiration_Month.value = "";
	document.forms[0].Expiration_Year.value = "";
	document.forms[0].CCNumber.value = "";
	document.forms[0].CCFullName.value = "";
	document.forms[0].CCType[0].disabled = true;
	document.forms[0].CCType[1].disabled = true;
	document.forms[0].CCType[2].disabled = true;
	document.forms[0].Expiration_Month.disabled = true;
	document.forms[0].Expiration_Year.disabled = true;
	document.forms[0].CCNumber.disabled = true;
	document.forms[0].CCFullName.disabled = true;
	
	CCArea.style.display="none";
	
	}else if (f.value=='Credit Card'){
	document.forms[0].CCType[0].disabled = false;
	document.forms[0].CCType[1].disabled = false;
	document.forms[0].CCType[2].disabled = false;
	document.forms[0].Expiration_Month.disabled = false;
	document.forms[0].Expiration_Year.disabled = false;
	document.forms[0].CCNumber.disabled = false;
	document.forms[0].CCFullName.disabled = false;
	
	CCArea.style.display="block";

	} 
}


function fn_onError(form_object, input_object, object_type, error_message)
    {
		alert(error_message);
        if (object_type == "RADIO" || object_type == "CHECKBOX") {
        	if (input_object[0])
				input_object[0].focus();
			else
				input_object.focus();
		}
		else
			input_object.focus();
		if (object_type == "TEXT" || object_type == "PASSWORD")
			input_object.select();		
       	return false;	
    }


function fn_hasValue(obj, obj_type)
    {
    if (obj_type == "TEXT" || obj_type == "PASSWORD" || obj_type == "TEXTAREA")
	{
    	if (obj.value.length == 0) 
      		return false;
    	else 
      		return true;
    	}
    else if (obj_type == "SELECT")
	{
		if (obj.selectedIndex == 0)
			return false;
		else
       		return true;	
	}   
    else if (obj_type == "RADIO" || obj_type == "CHECKBOX")
	{
        if (obj[0])
		{
			for (i=0; i < obj.length; i++)
		    	{
			if (obj[i].checked)
				return true;
			}
		}
		else
		{
			if (obj.checked)
				return true;
			else
	       		return false;	
		}
       	return false;	
	}
	}

	
// Date (mm/dd/yyyy)
function fn_checkusdate(object_value)
    {
    if (object_value.length == 0)
        return true;

   	isplit = object_value.indexOf('/');

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sMonth = object_value.substring(0, isplit);

	if (sMonth.length == 0)
        return false;

	isplit = object_value.indexOf('/', isplit + 1);

	if (isplit == -1 || (isplit + 1 ) == object_value.length)
		return false;

    sDay = object_value.substring((sMonth.length + 1), isplit);

	if (sDay.length == 0)
        return false;

	sYear = object_value.substring(isplit + 1);

	if (!fn_checkinteger(sMonth)) 
		return false;
	else
	if (!fn_checkrange(sMonth, 1, 12)) 
		return false;
	else
	if (!fn_checkinteger(sYear)) 
		return false;
	else
	if (!fn_checkrange(sYear, 0, 9999)) 
		return false;
	else
	if (!fn_checkinteger(sDay)) 
		return false;
	else
	if (!fn_checkday(sYear, sMonth, sDay))
		return false;
	else
		return true;
    }

	
// Date (yyyy/mm/dd)
function fn_checkdate(object_value)
    {
    if (object_value.length == 0)
        return true;

	isplit = object_value.indexOf('/');

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sYear = object_value.substring(0, isplit);

	isplit = object_value.indexOf('/', isplit + 1);

	if (isplit == -1 || (isplit + 1 ) == object_value.length)
		return false;

    sMonth = object_value.substring((sYear.length + 1), isplit);
	
	if (sMonth.length == 0)
        return false;

	sDay = object_value.substring(isplit + 1);
	
	if (sDay.length == 0)
        return false;

	if (!fn_checkinteger(sMonth)) 
		return false;
	else
	if (!fn_checkrange(sMonth, 1, 12)) 
		return false;
	else
	if (!fn_checkinteger(sYear)) 
		return false;
	else
	if (!fn_checkrange(sYear, 0, 9999)) 
		return false;
	else
	if (!fn_checkinteger(sDay)) 
		return false;
	else
	if (!fn_checkday(sYear, sMonth, sDay))
		return false;
	else
		return true;
    }


// Date (dd/mm/yyyy)
function fn_checkeurodate(object_value)
    {
    if (object_value.length == 0)
        return true;

	isplit = object_value.indexOf('/');

	if (isplit == -1)
	{
		isplit = object_value.indexOf('.');
	}

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sDay = object_value.substring(0, isplit);

	monthSplit = isplit + 1;

	isplit = object_value.indexOf('/', monthSplit);

	if (isplit == -1)
	{
		isplit = object_value.indexOf('.', monthSplit);
	}

	if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
		return false;

    sMonth = object_value.substring((sDay.length + 1), isplit);

	sYear = object_value.substring(isplit + 1);

	if (!fn_checkinteger(sMonth)) 
		return false;
	else
	if (!fn_checkrange(sMonth, 1, 12)) 
		return false;
	else
	if (!fn_checkinteger(sYear)) 
		return false;
	else
	if (!fn_checkrange(sYear, 0, null)) 
		return false;
	else
	if (!fn_checkinteger(sDay)) 
		return false;
	else
	if (!fn_checkday(sYear, sMonth, sDay)) 
		return false;
	else
		return true;
    }



function fn_checkday(checkYear, checkMonth, checkDay)
    {

	maxDay = 31;

	if (checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	if (checkMonth == 2)
	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else
		if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}

	return fn_checkrange(checkDay, 1, maxDay); 
    }



function fn_checkinteger(object_value)
    {
    if (object_value.length == 0)
        return true;

	var decimal_format = ".";
	var check_char;

	check_char = object_value.indexOf(decimal_format)
    if (check_char < 1)
	return fn_checknumber(object_value);
    else
	return false;
    }



function fn_numberrange(object_value, min_value, max_value)
    {
    if (min_value != null)
	{
        if (object_value < min_value)
		return false;
	}

    if (max_value != null)
	{
	if (object_value > max_value)
		return false;
	}
	
    return true;
    }



function fn_checknumber(object_value)
    {
    if (object_value.length == 0)
        return true;

	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

	check_char = start_format.indexOf(object_value.charAt(0))
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1)
		return false;
        
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{
			if (decimal)
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
		}
	    else if (trailing_blank)
			return false;
		else
			digits = true;
	}	

    return true
    }



function fn_checkrange(object_value, min_value, max_value)
    {
    if (object_value.length == 0)
        return true;

    if (!fn_checknumber(object_value))
	{
	return false;
	}
    else
	{
	return (fn_numberrange((eval(object_value)), min_value, max_value));
	}
	
    return true;
    }



function fn_checktime(object_value)
    {
    if (object_value.length == 0)
        return true;

	isplit = object_value.indexOf(':');

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);

	if (iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);

    if (!fn_checkinteger(sHour))
		return false;
    else
    if (!fn_checkrange(sHour, 0, 23)) 
		return false;

	if (!fn_checkinteger(sMin))
		return false;
	else
	if (!fn_checkrange(sMin, 0, 59))
		return false;

    if (iminute != -1)
	{
		sSec = object_value.substring(iminute + 1);

		if (!fn_checkinteger(sSec))
			return false;
		else
		if (!fn_checkrange(sSec, 0, 59))
			return false;	
	}
    
    return true;
    }
    


function fn_checkphone(object_value)
    {
    if (object_value.length == 0)
        return true;
		
    if (object_value.length != 12)
        return false;

    if (!fn_checknumber(object_value.substring(0,3)))
		return false;
    else
	if (!fn_numberrange((eval(object_value.substring(0,3))), 100, 1000))
		return false;

	if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
        return false

    if (!fn_checknumber(object_value.substring(4,7)))
		return false;
    else
	if (!fn_numberrange((eval(object_value.substring(4,7))), 100, 1000))
		return false;
	
	if (object_value.charAt(7) != "-" && object_value.charAt(7) != " ")
        return false;

	if (object_value.charAt(8) == "-" || object_value.charAt(8) == "+")
        return false;
	else
	{
		return (fn_checkinteger(object_value.substring(8,12)));
	}
    }


function fn_checkzip(object_value)
    {
    if (object_value.length == 0)
        return true;
		
    if (object_value.length != 5 && object_value.length != 10)
        return false;

	if (object_value.charAt(0) == "-" || object_value.charAt(0) == "+")
        return false;

	if (!fn_checkinteger(object_value.substring(0,5)))
		return false;

	if (object_value.length == 5)
		return true;
	
	if (object_value.charAt(5) != "-" && object_value.charAt(5) != " ")
        return false;

	if (object_value.charAt(6) == "-" || object_value.charAt(6) == "+")
        return false;

	return (fn_checkinteger(object_value.substring(6,10)));
    }


function fn_checkcreditcard(object_value)
    {
	var white_space = " -";
	var creditcard_string="";
	var check_char;

    if (object_value.length == 0)
        return true;

	for (var i = 0; i < object_value.length; i++)
	{
		check_char = white_space.indexOf(object_value.charAt(i))
		if (check_char < 0)
			creditcard_string += object_value.substring(i, (i + 1));
	}	

    if (creditcard_string.length == 0)
        return false;	 
	 	
	if (creditcard_string.charAt(0) == "+")
        return false;

	if (!fn_checkinteger(creditcard_string))
		return false;

	var doubledigit = creditcard_string.length % 2 == 1 ? false : true;
	var checkdigit = 0;
	var tempdigit;

	for (var i = 0; i < creditcard_string.length; i++)
	{
		tempdigit = eval(creditcard_string.charAt(i))

		if (doubledigit)
		{
			tempdigit *= 2;
			checkdigit += (tempdigit % 10);

			if ((tempdigit / 10) >= 1.0)
			{
				checkdigit++;
			}

			doubledigit = false;
		}
		else
		{
			checkdigit += tempdigit;
			doubledigit = true;
		}
	}	
	return (checkdigit % 10) == 0 ? true : false;
    }


function fn_checkssc(object_value)
    {
	var white_space = " -+.";
	var ssc_string="";
	var check_char;

    if (object_value.length == 0)
        return true;

    if (object_value.length != 11)
        return false;

	if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
        return false;

	if (object_value.charAt(6) != "-" && object_value.charAt(6) != " ")
        return false;
	 
	for (var i = 0; i < object_value.length; i++)
	{
		check_char = white_space.indexOf(object_value.charAt(i))
		if (check_char < 0)
			ssc_string += object_value.substring(i, (i + 1));
	}	

    if (ssc_string.length != 9)
        return false;	 
	 	
	if (!fn_checkinteger(ssc_string))
		return false;

	return true;
    }
	

function fn_checkemail(object_value)
	{
	  if(!(object_value.indexOf("@") > -1 && object_value.indexOf(".") > -1))
         return false;    

	return true;
	}
	


