function validate(){
	toggle_submit(false, "Please Wait");
	var valid = true;
	var error = false;
	tmpStr = document.getElementById("req_ff_ids").value;
	var req_ff_ids = tmpStr.split(",");
	var errorStr = "";
	
	for (i=0; i<req_ff_ids.length; i++){
		tmpText = "field_"+req_ff_ids[i];
		currElement = document.getElementById(tmpText);
		//alert(req_ff_ids[i]+" = "+currElement.value+" # "+currElement.type);
		if(currElement.type == "text" || currElement.type == "textarea"){
			error = false;
			if(currElement.value == "") error = true;
			if(currElement.value == " ") error = true;
			if(currElement.value == ",") error = true;
			if(currElement.value == ".") error = true;
			if(currElement.value == "#") error = true;
			if(currElement.value == "\n") error = true;
			if(currElement.value == "\t") error = true;
			if(error){
				valid = false;
				//alert("Please enter a value into field #"+(i+1));
				errorStr += "\n"+req_names_r[tmpText];
			}
		} else if(currElement.type == "select-one") {
			if(selectval(currElement) == "")  {
				valid = false;
				errorStr += "\n"+req_names_r[tmpText];
			}
			//if(currElement.value == null)  valid = false;
		} else if(currElement.type == "radio") {
			var rads = document.getElementsByName(tmpText);
			anychecked = false;
			//for(var rad in rads){ 
			//	if(rads[rad].checked){
			//		anychecked = true;
			//	}
			//}
			anychecked = getCheckedValue(currElement);
			if(!anychecked){
				valid = false;
				//alert("Please select a value for field #"+(i+1));
				errorStr += "\n"+req_names_r[tmpText];
			}
		} else if(currElement.type == "hidden") {
			if(currElement.value == "#####CHECKBOX#####"){
				k = 1;
				anychecked = false;
				while(true){
					tmpText2 = "field_"+req_ff_ids[i]+"_"+k;
					if((currChkElement = document.getElementById(tmpText2)) == null){
						break;
					}
					if(currChkElement.checked){
						anychecked = true;
					}
					k++;
				}
				if(!anychecked){
					valid = false;
					//alert("Please select a value(s) for field #"+(i+1));
					errorStr += "\n"+req_names_r[tmpText];
				}
			}
		}
	}
	
	if(errorStr){
		alert("Sorry we were unable to process your booking. \nPlease complete the following required fields:\n"+errorStr);
	}
	
	isemail_ff_id = document.getElementById("isemail_ff_id").value;
	isemailconfirm_ff_id = document.getElementById("isemailconfirm_ff_id").value;
	if((isemail_ff_id != "") && (isemailconfirm_ff_id != "")){
		isemailTmp = "field_"+isemail_ff_id;
		isemailconfirmTmp = "field_"+isemailconfirm_ff_id;
		isemailElement = document.getElementById(isemailTmp);
		isemailconfirmElement = document.getElementById(isemailconfirmTmp);
		
		if(isemailElement.value != isemailconfirmElement.value){
			alert("The email addresses you provided do not match!")
			valid = false;
		}
	}
	
	if(!valid){
		toggle_submit(true, "Submit");
	}
	
	return valid;
}
function getCheckedValue(radioObj) 
{

	//return true;
	if(!radioObj)
	{
		return "";
	}
	radioName = radioObj.name;
	
	//var radioLength = radioObj.length;
	var radioLength = document.regform[radioName].length 
	//alert(radioLength );
	if(radioLength == undefined)
	{
		if(radioObj.checked)
		{
			return radioObj.value;
		}
		else
		{
			return "";
		}
	}
	radioObj = document.getElementsByName(radioName);
	for(var i = 0; i < radioLength; i++) 
	{
		if(radioObj[i].checked) 
		{
			return true;
		}
	}
	return "";
}


function selectval(element)
{
	return element.options[element.selectedIndex].value;
}





// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}


function enable_submit(ck_ele)
{
	if(ck_ele)
	{
		//alert(ck_ele.checked);
		toggle_submit(ck_ele.checked, "");
	}
}

function toggle_submit(enable, text)
{
	//alert(enable);
	var ele = document.getElementById("submitbtn");
	if(ele)
	{
		if(enable == true)
		{
			ele.disabled = false;
		}
		else
		{
			ele.disabled = true;
		}
		if(text != "")
		{
			ele.value = text;
		}
	}
}

