//A utility function that returns true if a string contains only
//whitespace charaters.
function isBlank(s) {
	for(var i=0; i<s.length; i++){
		var c = s.charAt(i);
		if((c != ' ') && (c != '\n') && (c != '\t'))
			return false;
	}
	return true;
}

//This is the function that performs form validation and will be
//invoked onSubmit()

function formValidate(f) {
	var msg;
    	var empty_fields = "";
	var errors = "";

	for(var i = 0; i < f.length; i++){
	    var e = f.elements[i];


if((e.type == "radio") && (e.name == "ptype")){

                if(e.value == "creditcard"){
                        if(f.ptype[0].checked == true)
//alert("creditcard")
			f.cheque.optional = true;
                        f.bank.optional = true;
			
                }
//else if(e.value == "cheque"){
 else if(f.ptype[1].checked == true){
//alert("inside cheque");
                        f.cardnumber.optional = true;
                        f.expire.optional = true;
                        f.cardname.optional = true;
			
		}
//}
          }

            
		
	    if(((e.type == "text") || (e.type == "textarea")) && !e.optional) {
		//first check if the field is empty
	
		if((e.value == null) || (e.value == "") || isBlank(e.value)){
			empty_fields += "\n " + e.name;
			continue;
		}


if(e.name == "email"){
if (e.value.indexOf("@") == -1 ||
            e.value == "" || e.value.indexOf(".") == -1) 
        {
        alert("Please include a proper email address.");
//        return false;
}        
}


//if(e.name == "email"){
			//var myRe = /.+?@.+?\..*/;                	
			//if(!myRe.test(e.value)) {
               			//alert("Enter a valid email address");
		                //return false;
		        //}		
		//}

		//Check for numeric fields
		if(e.numeric || (e.min != null) || (e.max != null)) {
			var v = parseFloat(e.value);
			if(isNaN(v) || ((e.min != null) && (v < e.min)) ||
				((e.max != null) && (v > e.max))) {
				errors += "- the field " + e.name + " must be a number";
				if(e.min != null)
					errors += " that is greater than " + e.min;

				if(e.max != null && e.min != null)
					errors += " and less than " + e.max;
				else if(e.max != null)
			 		errors += " that is less than " + e.max;	
					errors += ".\n";
			}			
		}
		
	  }
	 				
   }




	//Now, if there were any errors, display the messages and return false
	
	if(!empty_fields && !errors)	return true;

	msg = "The form was not submitted because of the following error(s).\n";
	msg += "Please correct these error(s) and re-submit.\n";

	if(empty_fields) {
		msg += "The following required fields are empty:"
				+ empty_fields + "\n";
		if(errors) msg += "\n";
	}	
	msg += errors;
	alert(msg);
	return false;
}















