function validate(Form)
{
	var formname = Form.name;
	//alert("name " + Form.name);
	var checkbox_mandatory = false;
	if (Form.name == "find_provider3")
	{
		//alert(formname);
		checkbox_mandatory = true;
	}
	var checkbox_y = "";
	var Element;
	var i;
	var BadFields = "";
	var type;
	var name;
	var outMessage = "";
	var Title;
	var Titles = new Array();
	Titles['Name'] = "Name of Establishment";
	Titles['Town_City'] = "Town or City";
	Titles["Postcode_Zip"] = "Postcode or Zip code";
	Titles["Address1"] = "Address Line 1";
	Titles["Email"] = "Email Address";


	Titles[""] = "";

	var FieldValue = new Array();
	var Errored = new Array();
	var radiovalue;

	var Optional = new Array();

	// optional fields
	Optional['Address2'] = true;
	Optional['County_State'] = true;
	Optional['OtherInfo'] = true;



	var Assoc = new Array();
	// associated fields from first quote_request page
	//Assoc["Card_ID"] = "Card1";


	for ( i = 0; i < Form.length; i++ )
	{
		Element = Form.elements[i];
		type = Element.type;

		if (type == "checkbox")
		{
			//alert(type);
			if (Element.checked)
			{
				cbvalue = Element.value;
				if (cbvalue == "Y")
				{
					checkbox_y = true;
				}
			}
		}
		if ( Element.type == 'radio')
		{
			//alert( Element.value + ":" + Element.checked + ":");
			if (Element.checked)
			{
				name = Element.name;
				FieldValue[name] = Element.value;
			}
		}
	}

	if (checkbox_mandatory == true && checkbox_y != true)
	{
		BadFields += "- " + "An area of training" + "\n";
	}



	for ( i = 0; i < Form.length; i++ )
	{
		Element = Form.elements[i];
		//alert(Element.type + " " + Element.name);
		
		
		//set the quantity variables to optional
		if(Element.name.indexOf("qty") != -1)
		{
			Optional[Element.name] = true;
		}
		
			
		if ( Element.type == 'select-one' )
		{
			//alert(Element.type);
			name = Element.name;
			
			fieldvalue = selectval(Element);
			if (name.indexOf(" Occupation Type") > 0 && fieldvalue == "Unemployed")
			{
				occ = Form.elements[i + 1].value;
				if (occ == "")
				{
					Form.elements[i + 1].value = "N/A";
				}
			}
			FieldValue[name] = fieldvalue;
			//alert(Element.type + ' ' + name + ' ' + fieldvalue);

			optional = Optional[name];
			if ( (fieldvalue == '' || fieldvalue == name ) && typeof(optional) == "undefined")
			{
				Title = getTitle(name,Titles);
				BadFields += "- " + Title + "\n";
			}   
		}

		if ( Element.type == 'text' ||
			Element.type == 'textarea')
		{
			
			name = Element.name;
			FieldValue[name] = Element.value;
			//alert(name + " " + Element.value); 
			optional = Optional[name];
			if (  (Element.value == name || Element.value == ''  ) && typeof(optional) == "undefined")
			{
				Title = getTitle(name,Titles);
				BadFields += "- " + Title + "\n";
			}   
		}

		if ( Element.type == 'password')
		{
			
			name = Element.name;
			FieldValue[name] = Element.value;
			//alert(name + " " + Element.value); 
			optional = Optional[name];
			if ( Element.value == '' && typeof(optional) == "undefined")
			{
				Title = getTitle(name,Titles);
				BadFields += "- " + Title + "\n";
			}   
			if (name == "Password1")
			{	
				var v1 = Form.Password1.value;
				var v2 = Form.Password2.value;
				if (v1.length < 6)
				{
					BadFields += "- Password must be at least 6 characters long\n";
				}
				if (v1 != v2)
				{
					BadFields += "- Passwords do not match\n";
				}
			}
		}
		type = Element.type;
	//	alert(type);
		if (type == "radio")
		{
			name = Element.name;
			optional = Optional[name];
			radiovalue =  FieldValue[name] ;
			if (typeof(radiovalue) == "undefined" && typeof(optional) == "undefined")
			{
				Title = getTitle(name,Titles);
				alert(Title);
				BadFields += "- " + Title + "\n";
				FieldValue[name] = "";
			}		
		}

		// do cross-validation
		name = Element.name;
		assoc = Assoc[name];
		if (typeof(assoc) != "undefined")
		{
			noval = assoc.substr(0,1);
			if (noval == "!")
			{
				triggervalue = "No";
				assoc = assoc.substr(1);
			}
			else
			{
				triggervalue = "Yes";
			}
			radiovalue =  FieldValue[assoc] ;
			myvalue = FieldValue[name];
			errored = Errored[name];
			if (typeof(errored) == "undefined" && radiovalue == triggervalue && (myvalue == "" || typeof(myvalue) == "undefined"))
			{
				Title = getTitle(name,Titles);
				BadFields += "- " + Title + "\n";
				Errored[name] = true;
			}
		}

	}
	var phone = FieldValue["Phone"] + FieldValue["Mobile"] + FieldValue["Work"]  ;

	if (phone == "PhoneMobileWork Phone" || phone == "")
	{
		BadFields += "- a contact phone number\n";
	}


	if ( BadFields )
	{
		outMessage = "We are unable to proceed as the following \n";
		outMessage += "required fields have not been completed:\n\n";
		outMessage += BadFields;

		alert(outMessage);
		return false;
	}
	return true;
}

function selectval(Sel)
{
	return Sel.options[Sel.selectedIndex].value;
}

function getTitle(name,Titles)
{
	Title = Titles[name];
	if (typeof(Title) == "undefined")
	{
		Title = name;
		Title = Title.replace(/_/g," ");
	}
	return Title;
}

var calc_in_progress = false;

function Calc_Total(ele)
{
if (ele)
{
	var calc_store = calc_in_progress;
	calc_in_progress = true;
	
	var numstr = Get_Element_Value(ele).toString();
	if (numstr == false)
	{
		numstr = "0.00";
	}
	numstr = numstr.toString();
	numstr = numstr.replace("£","");
	//alert(numstr);
	var num = parseFloat(numstr);
	if (isNaN(num))
	{
		alert("Please enter a number here, e.g. 1 or 100.00");
		num = 0;
	}
	id = (ele.id)
	//alert(id);
	if (id == undefined)
	{
		//
	}
	else if (id == "Cancel_Ins")
	{
		val = num * 22;
		ele = Get_Element("Cost_Cancel_Ins")
		ele.value = val;
	}
	else if (id == "No_Cots")
	{
		val = num * 15;
		ele = Get_Element("Cost_Cots")
		ele.value = val;
	}
	else if (id == "No_High_Chair")
	{
		val = num * 10;
		ele = Get_Element("Cost_High_Chair")
		ele.value = val;
	}
	else if (id == "No_Stair_Guards")
	{
		val = num * 10;
		ele = Get_Element("Cost_Stair_Guards")
		ele.value = val;
	}
	else if (id == "No_Fire_Guards")
	{
		val = num * 7;
		ele = Get_Element("Cost_Fire_Guards")
		ele.value = val;
	}
	else if (id == "No_Coal")
	{
		val = num * 8;
		ele = Get_Element("Cost_Coal")
		ele.value = val;
	}
	else if (id == "No_Logs")
	{
		val = num * 8;
		ele = Get_Element("Cost_Logs")
		ele.value = val;
	}
	else if (id == "No_Pets")
	{
		val = num * 15;
		ele = Get_Element("Cost_Pets")
		ele.value = val;
	}
	if (calc_store == false)
	{
		calc_in_progress = false;
	}
}
Recalc_Totals();

}
function Recalc_Totals ()
{
	if (calc_in_progress)
	{
		return;
	}
	var tot = 0;
	tot = tot + NumVal("Deposit");
	tot = tot + NumVal("Full_Amount");
	tot = tot + NumVal("Booking_Fee");
	tot = tot + NumVal("Cost_Cancel_Ins");
	ele = Get_Element("Total_Rent_Ins")
	ele.value = tot.toFixed(2);

	//alert(tot);
	ele = Get_Element("Pay_Cots");
	if (ele != null && ele.checked)
	{
		tot = tot + NumVal("Cost_Cots");

	}
	ele = Get_Element("Pay_High_Chair");
	if (ele != null && ele.checked)
	{
		tot = tot + NumVal("Cost_High_Chair");

	}
	ele = Get_Element("Pay_Stair_Guards");
	if (ele != null && ele.checked)
	{
		tot = tot + NumVal("Cost_Stair_Guards");

	}
	ele = Get_Element("Pay_Fire_Guards");
	
	if (ele != null && ele.checked)
	{
		tot = tot + NumVal("Cost_Fire_Guards");

	}
	ele = Get_Element("Pay_Coal");
	if (ele != null && ele.checked)
	{
		tot = tot + NumVal("Cost_Coal");

	}
	ele = Get_Element("Pay_Logs");
	if (ele != null && ele.checked)
	{
		tot = tot + NumVal("Cost_Logs");

	}
	ele = Get_Element("Pay_Pets");
	if (ele != null && ele.checked)
	{
		tot = tot + NumVal("Cost_Pets");

	}
	ele = Get_Element("Total_Paid_Now")
	ele.value = tot.toFixed(2);

}
function Get_Element(id)
{
	var rv = false;
	if (document.getElementById)
	{
		rv = document.getElementById(id);
	}
	return rv;
}
function  NumVal(id)
{
	var ele = Get_Element(id);
	var rv = 0;
	var num;
	if (ele)
	{
		num = Get_Element_Value(ele);
	//	alert(num);
		if (num == "" || isNaN(num))
		{
			return rv;
		}
		else
		{
			return parseFloat(num);
		}
	}
	else
	{
		return rv;
	}
}

function Get_Element_Value(ele)
{
	if (ele)
	{
		rv = ele.value;
	}
	//alert(rv);
	return rv;

}

function prop_change(ele)
{
	prop = Get_Element_Value(ele);
	document.location.href = 'booking-form.php?ID='+prop;
	//alert('property-details.php?ID='+prop);
}

function payment_type_change(ele)
{
	var ptype = Get_Element_Value(ele);
	var card_ele;
	if ((ptype == "") || (ptype == 3))
	{
		//alert('to change');
		card_ele = Get_Element("Cardholder Name");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Cr Card No1");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Cr Card No2");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Cr Card No3");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Cr Card No4");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Cr Card No5");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Cr Card Address");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("sec_num");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Switch Iss No");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Start Date");
		card_ele.value ='';
		card_ele.disabled ='true';
		card_ele = Get_Element("Expiry Date");
		card_ele.value ='';
		card_ele.disabled ='true';
	}
	else
	{
		card_ele = Get_Element("Cardholder Name");
		card_ele.disabled ='';
		card_ele = Get_Element("Cr Card No1");
		card_ele.disabled ='';
		card_ele = Get_Element("Cr Card No2");
		card_ele.disabled ='';
		card_ele = Get_Element("Cr Card No3");
		card_ele.disabled ='';
		card_ele = Get_Element("Cr Card No4");
		card_ele.disabled ='';
		card_ele = Get_Element("Cr Card No5");
		card_ele.disabled ='';
		card_ele = Get_Element("Cr Card Address");
		card_ele.disabled ='';
		card_ele = Get_Element("sec_num");
		card_ele.disabled ='';
		card_ele = Get_Element("Switch Iss No");
		card_ele.disabled ='';
		card_ele = Get_Element("Start Date");
		card_ele.disabled ='';
		card_ele = Get_Element("Expiry Date");
		card_ele.disabled ='';
	}	
}

/*
function bark()
{
	var mySound = "/dogbrk.wav";
	
	
	IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)?  1:0; 
	NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0; 
	ver4 = IE||NS? 1:0; 
	onload=auPreload; 
	function auPreload() { if (!ver4) return; 
	if (NS) auEmb = new Layer(0,window); else { Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>"; 
	document.body.insertAdjacentHTML("BeforeEnd",Str); } 
	var Str = ''; 
	Str += "<EMBED SRC='"+mySound+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"; 
	auEmb.innerHTML = Str;} else 
	{ auEmb.document.open(); auEmb.document.write(Str); auEmb.document.close(); } 
	auCon = IE? document.all.soundfiles:auEmb; auCon.control = auCtrl; } function 
	auCtrl(whSound,play) { if (IE) this.src = play? mySound:''; else eval("this.document.embeds[whSound]." 
	+ (play? "play()":"stop()")) } function playSound(whSound) 
	{ if (window.auCon) auCon.control(whSound,true); } function stopSound(whSound) 
	{ if (window.auCon) auCon.control(whSound,false); }
}
*/

function bark() 
{
	var IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)?  1:0; 
	
	if (IE) 
	{
		var ele = document.getElementById("dummyspan");
		if(ele)
		{
			ele.innerHTML = "<embed src='/dogbrk.wav' hidden='true' autostart='true' loop='false'>";
		}
	}
}

