function highlightRequiered(id, message){
	$(id).style.color = "black"
	$(id).value = message
	new Effect.Highlight(id,{afterFinish: function(){$(id).value="";$(id).style.color = "";$(id).style.background = "#EFF4AE";}})
}

function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
 }
 
 
function AjaxForm(formid){
	formid = $(formid);
	//Insertion.After(formid,'<div id="cover"></div>') // create dive to hold responce.
	var formsize = Element.getDimensions(formid)
	//alert(formsize.height)
	var pars = Form.serialize(formid)
	var url = formid.action
	
	
	//alert("2action is "+formid.action)
	var myAjax = new Ajax.Updater(
			'cover', 
			url, 
			{
				method: 'post', 
				parameters: pars
			});
		
	Position.clone($('cover'), formid)	
	$('cover').style.height=formsize.height+"px"
	formid.style.display="none"
	$('cover').style.display="block"
	return false
}


function checkRequiered(formtocheck){
	var readytosend = "true";
	var CCerror ="";

	fields = Form.getElements(formtocheck);
	fields.each(function(node){							
			if(Element.hasClassName(node, "required")){
					//alert("checking Field:  "+ node.nodeName + ': ' + node.id);
				// Save values in Cookie if not a CC number;
				if (!Element.hasClassName(node, "ccardnumber")){
					if ($F(node) != ""){
						Set_Cookie($(node).id, $F(node), "", "/");
					}
					//alert("setting c for "+node.id);
				}
					
				if(Element.hasClassName(node, "email")){
					//alert("Validate email address");
					// Validate email address;
					if($F(node)=="" || !isValidEmail($F(node))){
						highlightRequiered(node, "required")
						readytosend = "false"
					}
				}else if (Element.hasClassName(node, "ccardnumber")){
					//alert("Validate Visa Number");
					// Validate Visa Number 
					var cardtype = document.getElementsByClassName('cardtype');
					if(!validateCreditCardNumber($F(node),$F(cardtype[0]))){
						CCerror = "Credit Card appears to be invalid \n Please verify the number and card type are correct.";
						highlightRequiered(node, "required")
						readytosend = "false"
					}
					//alert("Validate "+ $F(cardtype[0])+ ' : '+ node.nodeName + ': ' + node.id);
				}else if (Element.hasClassName(node, "agree")){
					// Must Agree 
					if($F(node)!="yes"){
						CCerror += "You must agree to the Rules and Regulations ";
						//highlightRequiered(node, "required")
						readytosend = "false"
					}
					//alert("Must Agree "+$F(node));
				}else{
					// Higlight empty fields
					if($F(node)==""){
						highlightRequiered(node, "required")
						readytosend = "false"
					}
					//alert("check for empty "+ node.nodeName + ': ' + node.id);
				}
			}
		})
		
	//alert(readytosend);
		
	if(readytosend=="true"){
		//alert("OK all looks good");

	    AjaxForm(formtocheck);

	}else{
		alert("Please verify that all required fields are completed \nRequired fields have been highlighted in yellow \n\n"+CCerror);
		
	}
	return false;

}