function findObj(n, d) {
	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=findObj(n,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(n);	return x;
}

function toggleRequired(){
	var length = arguments.length;
	
	for (var i = 0; i < arguments.length; i +=2){
		var star = findObj(arguments[i]);
		if (arguments[i+1] == false)
			star.style.visibility = "hidden";
		else
			star.style.visibility = "visible";
	}
}

function isEmail(eml)
// function to check whether the e-mail address is valid
// it must have at least this format ( char + @ + char + . + char )
{	
	a = eml.value.search(/@/i);
	a1 = eml.value.substring(0,a);
	a2 = a1.length;
	
	a = a + 1;
	b = eml.value.indexOf(".");
	b1 = eml.value.substring(a,b);
	b2 = b1.length;
	
	b = b + 1;
	c = eml.value.length;
	c1 = eml.value.substring(b,c);
	c2 = c1.length;

	if(eml.value.indexOf("@") != "-1" && eml.value.indexOf(".") != "-1" && a2 >= 1 && b2 >= 1 && c2 >= 1)	{
		return true;	}
	else	{
		return false;	}		
}

function setColor(el) {
  el.className = "formBad";
}

function checkAdoption() {
	var ruvalid = true;
	var myForm = window.document.adoptionForm;
	var doc = window.document;
	var eml = myForm.Email;
	var emailOK = isEmail(eml);
	var errorMsg = "Please enter all required information.";

	if ( myForm.Name.value == "") { ruvalid = false; setColor(myForm.Name); }
	if ( myForm.Street.value == "") { ruvalid = false; setColor(myForm.Street);}
	if ( myForm.City.value == "") { ruvalid = false; setColor(myForm.City);}
	if ( myForm.State.value == "") { ruvalid = false; setColor(myForm.State);}
	if ( myForm.Zip.value == "") { ruvalid = false; setColor(myForm.Zip);}
	if ( myForm.Email.value == "" ) { ruvalid = false; setColor(myForm.Email);}
	if ( emailOK == false ) { errorMsg += "\nPlease enter a valid email address.";setColor(myForm.Email); }
	if ( myForm.Home_Phone.value == "" ) { ruvalid = false; setColor(myForm.Home_Phone);}
	if ( myForm.Other_Phone.value == "" ) { ruvalid = false; setColor(myForm.Other_Phone);}
	if ( myForm.Best_Time_to_Reach.value == "" ) { ruvalid = false; setColor(myForm.Best_Time_to_Reach);}
	if ( myForm.Living_Situation.value == "" ) { ruvalid = false; setColor(myForm.Living_Situation);}
	if ( myForm.Reason_for_Wanting_to_Adopt.value == "" ) { ruvalid = false; setColor(myForm.Reason_for_Wanting_to_Adopt);}
	if ( myForm.Other_Groups_Shelters_Breeders.value == "" ) { ruvalid = false; setColor(myForm.Other_Groups_Shelters_Breeders);}
	if ( myForm.Owned_Dog_Before[0].checked == false && myForm.Owned_Dog_Before[1].checked == false ) { ruvalid = false; setColor(myForm.Owned_Dog_Before[0]);setColor(myForm.Owned_Dog_Before[1]); }
	else if ( myForm.Owned_Dog_Before[0].checked == true ) {
		if ( myForm.Other_Breeds_Owned.value == "") { ruvalid = false; setColor(myForm.Name);}
		if ( myForm.Owned_GSP_Before[0].checked == false && myForm.Owned_GSP_Before[1].checked == false ) { ruvalid = false; setColor(myForm.Owned_GSP_Before[0]);setColor(myForm.Owned_GSP_Before[1]); }
		else if ( myForm.Owned_GSP_Before[0].checked == true ) {
			if ( myForm.Own_GSP_Now[0].checked == false && myForm.Own_GSP_Now[1].checked == false ) { ruvalid = false; setColor(myForm.Own_GSP_Now[0]);setColor(myForm.Own_GSP_Now[1]);}
			else if ( myForm.Own_GSP_Now[1].checked == true ) {
				if ( myForm.Lost_Former_Pet_How.value == "") { ruvalid = false; setColor(myForm.Lost_Former_Pet_How);}
			}
		}
	}
	if ( myForm.Specific_Gender.value == "" ) { ruvalid = false; setColor(myForm.Specific_Gender);}
	if ( myForm.Description_of_Desired_GSP.value == "" ) { ruvalid = false; setColor(myForm.Description_of_Desired_GSP);}
	if ( myForm.Desired_Activity_Level.value == "" ) { ruvalid = false; setColor(myForm.Desired_Activity_Level);}
	if ( myForm.Desired_Traits.value == "" ) { ruvalid = false; setColor(myForm.Desired_Traits);}
	if ( myForm.Willingness_to_Attend_Obedience_Classes.value == "" ) { ruvalid = false; setColor(myForm.Willingness_to_Attend_Obedience_Classes);}
	if ( myForm.Willingness_to_Crate_Train.value == "" ) { ruvalid = false; setColor(myForm.Willingness_to_Crate_Train);}
	if ( myForm.Current_Animals.value == "" ) { ruvalid = false; setColor(myForm.Current_Animals);}
	if ( myForm.Travel_Distance.value == "" ) { ruvalid = false; setColor(myForm.Travel_Distance);}
	if ( myForm.Search_Timeline.value == "" ) { ruvalid = false; setColor(myForm.Search_Timeline);}
	if ( myForm.Current_Spay_Status.value == "" ) { ruvalid = false; setColor(myForm.Current_Spay_Status);}
	if ( myForm.Ever_Given_Away_or_Returned.value == "" ) { ruvalid = false; setColor(myForm.Ever_Given_Away_or_Returned);}
	if ( myForm.Home_During_Day[0].checked == false && myForm.Home_During_Day[1].checked == false ) { ruvalid = false; setColor(myForm.Home_During_Day[0]);setColor(myForm.Home_During_Day[1]);}
	else if ( myForm.Home_During_Day[1].checked == true ) {
		if ( myForm.Time_Alone_Amount.value == "" || myForm.Time_Alone_Location.value == "") { ruvalid = false; }
	}
	if ( myForm.Time_Off_on_Dogs_Arrival[0].checked == false && myForm.Time_Off_on_Dogs_Arrival[1].checked == false ) { ruvalid = false; setColor(myForm.Time_Off_on_Dogs_Arrival[0]);setColor(myForm.Time_Off_on_Dogs_Arrival[1]);}
	if ( myForm.Sleep_Location.value == "" ) { ruvalid = false; setColor(myForm.Sleep_Location);}
	if ( myForm.Use_Tie_Out[0].checked == false && myForm.Use_Tie_Out[1].checked == false ) { ruvalid = false; setColor(myForm.Use_Tie_Out[0]);setColor(myForm.Use_Tie_Out[1]);}
	if ( myForm.Activities_With_Dog.value == "" ) { ruvalid = false; setColor(myForm.Activities_With_Dog);}
	if ( myForm.Agree_to_6_Month_Adjustment[0].checked == false && myForm.Agree_to_6_Month_Adjustment[1].checked == false ) { ruvalid = false; setColor(myForm.Agree_to_6_Month_Adjustment[0]);setColor(myForm.Agree_to_6_Month_Adjustment[1]);}
	if ( myForm.Single_Multiple_Dog_Family[0].checked == false && myForm.Single_Multiple_Dog_Family[1].checked == false ) { ruvalid = false; setColor(myForm.Single_Multiple_Dog_Family[0]);setColor(myForm.Single_Multiple_Dog_Family[1]);}
	if ( myForm.Specific_Dogs.value == "" ) { ruvalid = false; setColor(myForm.Specific_Dogs);}
	if ( myForm.Primary_Caretaker.value == "" ) { ruvalid = false; setColor(myForm.Primary_Caretaker);}
	if ( myForm.Household_Adults_Ages.value == "" ) { ruvalid = false; setColor(myForm.Household_Adults_Ages);}
	if ( myForm.All_Adults_Support_Adoption[0].checked == false && myForm.All_Adults_Support_Adoption[1].checked == false ) { ruvalid = false; setColor(myForm.All_Adults_Support_Adoption[0]);setColor(myForm.All_Adults_Support_Adoption[1]);}
	if ( myForm.Household_Children_Ages.value == "" ) { ruvalid = false; setColor(myForm.Household_Children_Ages);}
	if ( myForm.Household_Allergies_or_Asthma[0].checked == false && myForm.Household_Allergies_or_Asthma[1].checked == false ) { ruvalid = false; setColor(myForm.Household_Allergies_or_Asthma[0]);setColor(myForm.Household_Allergies_or_Asthma[1]);}
	if ( myForm.Rent_or_Own[0].checked == false && myForm.Rent_or_Own[1].checked == false ) { ruvalid = false; setColor(myForm.Rent_or_Own[0]);setColor(myForm.Rent_or_Own[1]);}
	else if ( myForm.Rent_or_Own[0].checked == true ) {
		if ( myForm.Landlord_Written_Permission[0].checked == false && myForm.Landlord_Written_Permission[1].checked == false ) { ruvalid = false; setColor(myForm.Landlord_Written_Permission[0]);setColor(myForm.Landlord_Written_Permission[1]);}
		if ( myForm.Landlord_Info.value == "" ) { ruvalid = false; setColor(myForm.Landlord_Info);}
	}
	if ( myForm.Vacation_Pet_Care_Info.value == "" ) { ruvalid = false; setColor(myForm.Vacation_Pet_Care_Info);}
	if ( myForm.Move_in_Next_Year[0].checked == false && myForm.Move_in_Next_Year[1].checked == false ) { ruvalid = false; setColor(myForm.Move_in_Next_Year[0]);setColor(myForm.Move_in_Next_Year[1]);}
	if ( myForm.Fenced_Yard[0].checked == false && myForm.Fenced_Yard[1].checked == false ) { ruvalid = false; setColor(myForm.Fenced_Yard[0]);setColor(myForm.Fenced_Yard[1]);}
	else if ( myForm.Fenced_Yard[0].checked == true) {
		if ( myForm.Fence_Type.value == "" )
			{ ruvalid = false; setColor(myForm.Fence_Type); }
		if ( myForm.Fence_Height.value == "" )
			{ ruvalid = false; setColor(myForm.Fence_Height); }		
		if ( myForm.Gates_Lock[0].checked == false && myForm.Gates_Lock[1].checked == false )
			{ ruvalid = false; setColor(myForm.Gates_Lock[0]);setColor(myForm.Gates_Lock[1]); }
		if ( myForm.Fenced_Area_Size.value == "" )
			{ ruvalid = false; setColor(myForm.Fenced_Area_Size); }
	} else if (myForm.Fenced_Yard[1].checked == true ) {
		if ( myForm.Willing_to_Install_Fence[0].checked == false && myForm.Willing_to_Install_Fence[1].checked == false ) { ruvalid = false; setColor(myForm.Willing_to_Install_Fence[0]);setColor(myForm.Willing_to_Install_Fence[1]); }
	}
	if ( myForm.Have_Regular_Vet[0].checked == false && myForm.Have_Regular_Vet[1].checked == false ) { ruvalid = false; setColor(myForm.Have_Regular_Vet[0]);setColor(myForm.Have_Regular_Vet[1]); }
	else if ( myForm.Have_Regular_Vet[0].checked == true ) {
		if ( myForm.Regular_Vet_Length.value == "" )
			{ ruvalid = false; setColor(myForm.Regular_Vet_Length);}
		if ( myForm.Vet_Name.value == "" )
			{ ruvalid = false; setColor(myForm.Vet_Name);}
		if ( myForm.Vet_Address.value == "" )
			{ ruvalid = false; setColor(myForm.Vet_Address);}
		if ( myForm.Vet_Phone.value == "" )
			{ ruvalid = false; setColor(myForm.Vet_Phone);}
	}
	if ( myForm.Annual_Care_Cost.value == "" ) { ruvalid = false; setColor(myForm.Annual_Care_Cost);}
	if ( myForm.Willingness_to_Deal_with_Special_Care[0].checked == false && myForm.Willingness_to_Deal_with_Special_Care[1].checked == false ) { ruvalid = false; setColor(myForm.Willingness_to_Deal_with_Special_Care[0]);setColor(myForm.Willingness_to_Deal_with_Special_Care[1]); }
	if ( myForm.Dog_Health_Limitations.value == "" ) { ruvalid = false; setColor(myForm.Dog_Health_Limitations);}
	if ( myForm.Reasons_for_Giving_Up_Dog.value == "" ) { ruvalid = false; setColor(myForm.Reasons_for_Giving_Up_Dog);}
	if ( myForm.Unacceptable_Behaviors.value == "" ) { ruvalid = false; setColor(myForm.Unacceptable_Behaviors);}
			
	if( ruvalid == false || emailOK == false )	{
    	alert( errorMsg );
	    return false;
	}
	else {
    	return true;
	}
}

function checkVolunteer() {
	var ruvalid = true;
	var myForm = window.document.volunteerForm;
	var doc = window.document;
	var eml = myForm.Email;
	var emailOK = isEmail(eml);
	var errorMsg = "Please enter all required information.";

	if ( myForm.Name.value == "") { ruvalid = false; setColor(myForm.Name); }
	if ( myForm.Street.value == "") { ruvalid = false; setColor(myForm.Street);}
	if ( myForm.City.value == "") { ruvalid = false; setColor(myForm.City);}	
	if ( myForm.State.value == "") { ruvalid = false; setColor(myForm.State);}
	if ( myForm.Zip.value == "") { ruvalid = false; setColor(myForm.Zip);}
	if ( myForm.Day_Phone.value == "") { ruvalid = false; setColor(myForm.Day_Phone);}
	if ( myForm.Evening_Phone.value == "") { ruvalid = false; setColor(myForm.Evening_Phone);}		
	if ( myForm.Email.value == "" ) { ruvalid = false; setColor(myForm.Email);}
	if ( emailOK == false ) { errorMsg += "\nPlease enter a valid email address.";setColor(myForm.Email); }
	if ( myForm.Best_Time_to_Call.value == "" ) { ruvalid = false; setColor(myForm.Best_Time_to_Call);}
	if ( myForm.Time_Involved_With_GSPs.value == "" ) { ruvalid = false; setColor(myForm.Time_Involved_With_GSPs);}
	if ( myForm.Time_Involved_With_Other_Breeds.value == "" ) { ruvalid = false; setColor(myForm.Time_Involved_With_Other_Breeds);}
	if ( myForm.Experience_With_Rescues.value == "" ) { ruvalid = false; setColor(myForm.Experience_With_Rescues);}
	if ( myForm.Experience_With_Breed_Activities.value == "" ) { ruvalid = false; setColor(myForm.Experience_With_Breed_Activities);}
	if ( myForm.Convicted_of_Animal_Cruelty.value == "" ) { ruvalid = false; setColor(myForm.Convicted_of_Animal_Cruelty);}
	if ( myForm.Expelled_From_Club.value == "" ) { ruvalid = false; setColor(myForm.Expelled_From_Club);}
	if ( myForm.Member_of_Organizations.value == "" ) { ruvalid = false; setColor(myForm.Member_of_Organizations);}		
	if ( myForm.Have_Regular_Vet[0].checked == false && myForm.Have_Regular_Vet[1].checked == false ) { ruvalid = false; setColor(myForm.Have_Regular_Vet[0]);setColor(myForm.Have_Regular_Vet[1]); }
	else if ( myForm.Have_Regular_Vet[0].checked == true ) {
		if ( myForm.Vet_Name.value == "" )
			{ ruvalid = false; setColor(myForm.Vet_Name);}
		if ( myForm.Vet_Address.value == "" )
			{ ruvalid = false; setColor(myForm.Vet_Address);}
		if ( myForm.Vet_Phone.value == "" )
			{ ruvalid = false; setColor(myForm.Vet_Phone);}
		if ( myForm.Vet_Discount_Offer.value == "" )
			{ ruvalid = false; setColor(myForm.Vet_Discount_Offer);}			
	}
	if ( myForm.Number_GSPs_Owned.value == "" ) { ruvalid = false; setColor(myForm.Number_GSPs_Owned);}
	if ( myForm.Other_Companion_Animals.value == "" ) { ruvalid = false; setColor(myForm.Other_Companion_Animals);}
	if ( myForm.Willing_To_Foster[0].checked == false && myForm.Willing_To_Foster[1].checked == false ) { ruvalid = false; setColor(myForm.Willing_To_Foster[0]);setColor(myForm.Willing_To_Foster[1]);}
	else if ( myForm.Willing_To_Foster[0].checked == true ) {
		if ( myForm.Foster_Amount_At_A_Time.value == "" )
			{ ruvalid = false; setColor(myForm.Foster_Amount_At_A_Time);}
		if ( myForm.Foster_Gender_Preference.value == "")
			{ ruvalid = false; setColor(myForm.Foster_Gender_Preference);}
		if ( myForm.General_Foster_Length_Preference.value == "")
			{ ruvalid = false; setColor(myForm.General_Foster_Length_Preference);}			
	}
	if ( myForm.Containment_Details.value == "" ) { ruvalid = false; setColor(myForm.Containment_Details);}
	if ( myForm.Kennel_Runs.value == "" ) { ruvalid = false; setColor(myForm.Kennel_Runs);}
	if ( myForm.Dog_Crates_Available.value == "" ) { ruvalid = false; setColor(myForm.Dog_Crates_Available);}	
	if ( myForm.Fenced_Yard[0].checked == false && myForm.Fenced_Yard[1].checked == false ) { ruvalid = false; setColor(myForm.Fenced_Yard[0]);setColor(myForm.Fenced_Yard[1]);}
	else if ( myForm.Fenced_Yard[0].checked == true) {
		if ( myForm.Fence_Description.value == "" )
			{ ruvalid = false; setColor(myForm.Fence_Description); }
	}
	if ( myForm.Yard_Size.value == "" ) { ruvalid = false; setColor(myForm.Yard_Size); }
	if ( myForm.Other_Services_Provided.value == "" ) { ruvalid = false; setColor(myForm.Other_Services_Provided);}
	if ( myForm.Provide_Transportation[0].checked == false && myForm.Provide_Transportation[1].checked == false ) { 
		ruvalid = false; setColor(myForm.Provide_Transportation[0]);setColor(myForm.Provide_Transportation[1]); 
	} else if ( myForm.Provide_Transportation[0].checked == true ) {
		if ( myForm.Transportation_Distance.value == "" ) { ruvalid = false; setColor(myForm.Transportation_Distance); }
	}
	if ( myForm.Contact_Shelters_And_Evaluate_Dogs[0].checked == false && myForm.Contact_Shelters_And_Evaluate_Dogs[1].checked == false ) { ruvalid = false; setColor(myForm.Contact_Shelters_And_Evaluate_Dogs[0]);setColor(myForm.Contact_Shelters_And_Evaluate_Dogs[1]); }
	if ( myForm.Provide_Basic_Training[0].checked == false && myForm.Provide_Basic_Training[1].checked == false ) { ruvalid = false; setColor(myForm.Provide_Basic_Training[0]);setColor(myForm.Provide_Basic_Training[1]); }
	if ( myForm.Screen_Adopters[0].checked == false && myForm.Screen_Adopters[1].checked == false ) { ruvalid = false; setColor(myForm.Screen_Adopters[0]);setColor(myForm.Screen_Adopters[1]); }
	if ( myForm.Assist_With_Fundraising[0].checked == false && myForm.Assist_With_Fundraising[1].checked == false ) { ruvalid = false; setColor(myForm.Assist_With_Fundraising[0]);setColor(myForm.Assist_With_Fundraising[1]); }

	if( ruvalid == false || emailOK == false )	{
    	alert( errorMsg );
	    return false;
	}
	else {
    	return true;
	}
}

