//function validate
//accepts any number inputs
//first input is the form itself (using "this") in onsubmit
//second is whether or not to submit with ajax
//the rest of the inputs are the ids of the elements and a type (comma separated)
function validate(){
	//This function takes any number of args. The first is a form object
	//That contains the fields named in the other args.
	var form = arguments[0];
	var usingajax = arguments[1];
	var popup = false;
	var popup2 = false;
	var ret_val = false;
	for(i = 2;i < arguments.length;i++){
		var fieldinfo = arguments[i].split(",");
		var type = eval("form."+fieldinfo[0]+".type");
		temp = eval("form."+fieldinfo[0]+".className='textFields'");
		if(type == "checkbox"){
			var empty = eval("form."+fieldinfo[0]+".checked");
			var value = empty;
		} else if(type == "select" || type=="select-one"){
			var select = eval("form."+fieldinfo[0]);
			var empty = select.options[select.selectedIndex].value=="";
			var value = select.options[select.selectedIndex].value;
		} else {
			var empty = eval("form."+fieldinfo[0]+".value==''");
			var value = eval("form."+fieldinfo[0]+".value");
		}
		if(fieldinfo[1] != undefined){
			var valid = checkType(value,fieldinfo[1]);
		} else {
			var valid = true;
		}
		if(valid==false){
			temp = eval("form."+fieldinfo[0]+".className='validationError'");
			popup2 = true;
		}
		if(empty==true){
			temp = eval("form."+fieldinfo[0]+".className='validationError'");
			popup = true;
		}
	}
	if(popup == true){
		alert('One or more required fields were not filled in. Please check the highlighted field(s) for details.');
	} else if(popup2 == true) {
		alert('One or more required fields contained invalid data. Please check the highlighted field(s) for details.');
	} else {
		if(usingajax){
			submitForm(form);
		} else {
			ret_val= true;
		}
	}
	return ret_val;
}

function checkType(value,type){
	var retval = false;
	switch(type){
		case 'phone':
			var validNum = new RegExp(/^\d*$/);
			value = value.replace(/\(/g,"");
			value = value.replace(/\)/g,"");
			value = value.replace(/-/g,"");
			value = value.replace(/\s/g,"");
			value = value.replace(/\./g,"");
			value = value.replace(/\,/g,"");
			retval = validNum.test(value);
		break;
		case 'number':
			var validNum = new RegExp(/^\d*$/);
			value = value.replace(/\./g,"");
			value = value.replace(/-/g,"");
			value = value.replace(/\,/g,"");
			retval = validNum.test(value);
		break;

		case 'non-number':
			var validNonNum = new RegExp(/^\d*$/);
			retval = validNonNum.test(value);
		break;
	}
	return retval;
}