/*
05.19.08	MDC	copied from Blush for AMCD
			includes fix when element name doesn't exist
02.20.10	MDC	updated after site migration to new host; skips invalid form elements; handles []
*/
document.write('<script type="text/javascript" src="validations.js"></script>');

function verify(f,submitBtn) {	//input: form element, submit button element
	//hidden var of "required" tells this script what should be required (same for server-side)
	try {
	    var missing='',x,req;
	    if (f.required) {
		    req = f.required.value.split(',');
		    for (x=0; x<req.length; x++) {		//for every required field...
			    if (!f[req[x]]) continue;
			    if (f[req[x]].name) {
			        if (f[req[x]].name.toLowerCase() == 'email') {
				        if (checkEmail(f[req[x]].value) == false) {
					        missing += "\n - "+ f[req[x]].name +' (invalid)';
					        continue;
				        }
				    }
				}
		        if (getInputValue(f[req[x]]) == '' || getInputValue(f[req[x]]) == null) {
				    missing += "\n - "+ req[x].replace('_',' ').replace('[]','');
			    }
		    }
	    }
	    if (missing != '') {
		    alert('The following fields are required:'+ missing +'\nPlease fill them in and re-submit.');
		    return false;
	    } else {
//		    submitBtn.disabled = true;
		    submitBtn.value = 'Submitting...';
		    //alert(debugForm(f));
		    return true;
	    }
	} catch(Err) {
	    return true;		// just like the server-side do validation
	    //console.error(Err);
	    //alert(Err.lineNumber +' = '+ Err.message);
	    //return false;
    }
}
function checkEmail(email) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) {
		return true;
	} else {
		return false;
	}
}
function debugForm(f) {							//loop through all elements in a form and return them and their value in a string
	if (!f) return alert('Form not found to debug');
	var y = f.name +'\n';
	//alert(f.elements.length);
	for(i=0; i<f.elements.length; i++){
		if (f.elements[i].type == 'radio' || f.elements[i].type == 'checkbox') {
			if (f.elements[i].checked == true)	//only show checked
				y += ('['+ f.elements[i].type +'] '+ f.elements[i].name +' = '+ f.elements[i].value +'\n')
		}
		else
			y += ('['+ f.elements[i].type +'] '+ f.elements[i].name +' = '+ f.elements[i].value +'\n')
	}
	return y +'---------------------------------->length = '+ y.length;
}
