<!-- HIDE

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['YearsEst'] = "Years Established";
Titles['HowDesc'] = "How would you describe your organisation";
Titles['OrgStrength'] = "Organisational Strengths";
Titles['Training_Notable'] = "Notable work";
Titles['Area_ID'] = "Area";
Titles[''] = "";

var FieldValue = new Array();
var Errored = new Array();
var radiovalue;

var Optional = new Array();

// optional fields
Optional['Company_Name'] = true;
Optional['Phone_Number'] = true;
Optional['Information_Required'] = true;
Optional['Address2'] = true;
Optional['Address3'] = true;
Optional['VATregistration'] = true;
Optional['RegNo'] = true;
Optional['CharityNo'] = true;
Optional['OtherDets'] = true;
Optional['InspDets'] = true;
Optional['BrochHowAv'] = true;
Optional['InstDets'] = true;
Optional['Training_Location_Other_Dets'] = true;
Optional['Training_Other_Qual_Dets'] = true;
Optional['Training_How_Many'] = true;
Optional['Public_Funding_Details'] = true;
Optional['Other_Sectors_Details'] = true;
Optional['Other_Locations_Details'] = true;
Optional['Other_Qualifications_Details'] = true;
Optional['Accreditations'] = true;
Optional['Brochure_Details'] = true;
Optional['Professional_Body_Detail'] = true;
Optional['Maximum_Participants_Number'] = true;

var Assoc = new Array();
// associated fields from first quote_request page

Assoc['DatePurchased'] = "";


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 (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);
	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 == '' && 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 == '' && 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;
	if (type == "radio")
	{
		name = Element.name;
		optional = Optional[name];
		radiovalue =  FieldValue[name] ;
		if (typeof(radiovalue) == "undefined" && typeof(optional) == "undefined")
		{
			Title = getTitle(name,Titles);
			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;
		}
	}

}

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("_"," ");
		Title = Title.replace("_"," ");
	}
	return Title;
}


// -->

