//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;

}
