<!--


		var required = [], format = [], OrderError = [];
		var validateForm = null;
		var TextSelectErr = '', RadioCheckErr = '', othererr = '',othererror2='';
		// initialer helper function to build required array and parameters
		function addRequired(display, field) {
			var pos = required.length;
			required[pos] = new Object();
			required[pos].display = display;
			required[pos].field = field; 
			if (arguments.length > 2) {
				required[pos].trigger = arguments[2];
				required[pos].extra = [];
				for (var i=3; i < arguments.length; i+=2) {
					var extrapos = required[pos].extra.length;
					required[pos].extra[extrapos] = new Object();
					required[pos].extra[extrapos].display = arguments[i];
					required[pos].extra[extrapos].field = arguments[i+1];
				}
			}
		}
		
		function isDate(thedate, theformat) {
			var aDaysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

			// Fetch the date separator from the user's input
			var sSepDate = thedate.charAt(thedate.search(/\D/));
			// Fetch the date separator from the format
			var sSepFormat=theformat.charAt(theformat.search(/[^MDY]/i));
			// Compare separators
			if (sSepDate!=sSepFormat) return false;

			// Fetch the three pieces of the date from the user's input and the format
			var aValueMDY=thedate.split(sSepDate,3);
			var aFormatMDY=theformat.split(sSepFormat,3);

			// Assign day, month, year based on format
			var iMonth,iDay,iYear;
			iMonth = aValueMDY[0];
			iDay   = aValueMDY[1];
			iYear  = aValueMDY[2];

			// Validate that all pieces of the date are numbers
			if ( !/\d/.test( iMonth ) || !/\d/.test( iDay ) || !/\d/.test( iYear ) )
				return false;

			// Require format digit year
			if(iYear.length!=aFormatMDY[2].length)	return false;

			// Check for leap year
			var iDaysInMonth=(iMonth!=2)?aDaysInMonth[iMonth-1]:
			((iYear%4==0 && iYear%100!=0 || iYear % 400==0)?29:28);

			return (iDay!=null && iMonth!=null && iYear!=null && iMonth<13 && iMonth>0 && iDay>0 && iDay<=iDaysInMonth);		
		}
		
		function isTime(thetime, theformat) {
			// Fetch the date separator from the user's input
			var sSepDate = thetime.charAt(thetime.search(/\D/));
			// Fetch the date separator from the format
			var sSepFormat=theformat.charAt(theformat.search(/[^HM]/i));
			// Compare separators
			if (sSepDate!=sSepFormat) return false;

			// Fetch the three pieces of the date from the user's input and the format
			var aValueHM=thetime.split(sSepDate,2);
			var aFormatHM=theformat.split(sSepFormat,2);

			// Assign day, month, year based on format
			var iHour,iMinute;
			iHour 	= aValueHM[0];
			iMinute	= aValueHM[1];

			// Validate that all pieces of the date are numbers
			if ( !/\d/.test( iHour ) || !/\d/.test( iMinute ) )
				return false;

			return (iHour!=null && iMinute!=null && iHour<24 && iHour>=0 && iMinute>=0 && iMinute<60);		
		}		
		
		// initialer helper function to build format array and parameters
		function addFormat(display, field, fmt) {
			var pos = format.length;
			format[pos] = new Object();
			format[pos].display = display;
			format[pos].field = field;
			format[pos].format = fmt;
		}

		var formaterr = '';
		// checks specified format for each case - and builds error string
		function checkFormats() {
			for (var i=0; i < format.length; i++) {
				var elem = format[i];
				switch (elem.format) {
					case "number" :
						var done = false;
						for (var f=0; (f < elem.field.length && !done); f++) {
							var formvalue = eval("validateForm."+elem.field[f]+".value");
							if (formvalue!="" && /\D/.test(formvalue)) {
								addFormatError(elem.display);
								done = true;
							}
						}
						break;
					case "email" :
						var formvalue = eval("validateForm."+elem.field[0]+".value");
						if (formvalue!="" && !/^[\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)*\.\w{2,4}$/.test(formvalue)) {
							addFormatError(elem.display);
						}
						break
					case "zip" :
						var formvalue = eval("validateForm."+elem.field[0]+".value");
						if(formvalue!="" && !/^\d{5}(-?\d{4})?$/.test(formvalue)) {
							addFormatError(elem.display);
						}
						break;
					case "zip4" :
						var formvalue = eval("validateForm."+elem.field[0]+".value");
						if(formvalue!="" && !/^\d{4}(-?\d{3})?$/.test(formvalue)) {
							addFormatError(elem.display);
						}
						break;
					case "phone" :
						var formvalue = "";
						for (var f=0; (f < elem.field.length && !done); f++) {
							formvalue += eval("validateForm."+elem.field[f]+".value").replace(/\D/g,"");
						}
						var iDigits = formvalue.length;
						if( (formvalue!="" && /\D/.test(formvalue))  || !(iDigits==10 || iDigits==11 && /^1/.test(formvalue)) ) {
							addFormatError(elem.display);
						}					
						break;
					case "date" :
						var formvalue = eval("formObj."+elem.field[0]+".value");
						var sFormat = "MM-DD-YYYY";
						if ( formvalue!="" && !isDate(formvalue, sFormat) ) {
							addFormatError(elem.display);
						}
						break;
					case "time" :
						var formvalue = eval("formObj."+elem.field[0]+".value");
						var sFormat = "HH:MM"
						if ( formvalue!="" && !isTime(formvalue, sFormat) ) {
							addFormatError(elem.display);
						}
						break;					
					case "ActivationCardNumber" :
						// match a very specific activation card number 15000001 - 190000000
						var formvalue = eval("validateForm."+elem.field[0]+".value");
						//if ((formvalue!="") && (!/^01$/.test(formvalue.substr(formvalue.length-2,formvalue.length)) || !/^(((15([1-9]\d{5}|\d{1}[1-9]\d{4}|\d{2}[1-9]\d{3}|\d{3}[1-9]\d{2}|\d{4}[1-9]\d{1}|\d{5}[1-9]))|(1[6-9]\d{6}|[2-9]\d{7}))|(1[1-8]\d{7}|190{7}))$/.test(formvalue.substr(0,formvalue.length-2)))) {
						//var testint = parseInt(formvalue.substr(0,formvalue.length-2));
						//if (formvalue!="" && testint && (!/^01$/.test(formvalue.substr(formvalue.length-2,formvalue.length)) || !(testint>150000000 && testint<190000001))) {
						if (formvalue!="" && (/\D/.test(formvalue) || formvalue.length!=11)) {
							addFormatError(elem.display);
						}					
						break;
					 /*case "questionerr":
					   if(!(formObj.QUES_Taking_Lithium_Bipolar.checked) && !(formObj.QUES_Taking_DEPAKOTE_Bipolar.checked) && !(formObj.QUES_Taking_LAMICTAL_Bipolar.checked)
                            && !(formObj.QUES_Taking_EQUETRO_Bipolar.checked) && !(formObj.QUES_Taking_TRILEPTAL_Bipolar.checked) && !(formObj.QUES_Taking_ABILIFY_Bipolar.checked)
                            && !(formObj.QUES_Taking_GEODON_Bipolar.checked) && !(formObj.QUES_Taking_RISPERDAL_Bipolar.checked) && !(formObj.QUES_Taking_SEROQUEL_Bipolar.checked)
                             && !(formObj.QUES_Taking_SYMBYAX_Bipolar.checked) && !(formObj.QUES_Taking_ZYPREXA_Bipolar.checked) && !(formObj.QUES_Taking_Antidepressant_Bipolar.checked) && !(formObj.QUES_Taking_Other_Bipolar.checked) && !(formObj.QUES_no_medication_bipolar_disorder.checked))
					     { 
					       OrderError[OrderError.length] = "RadioCheckErr";
							RadioCheckErr += "\t" + "Which of the following medications are you currently taking for bipolar I disorder?" + "\n";
		             
				        }
					   break;*/

					  case "questionerr":
						  if(!(formObj.QUES_Axert_migraine_treatment.checked) && !(formObj.QUES_Fioricet_migraine_treatment.checked) && !(formObj.QUES_Frova_migraine_treatment.checked)
                            && !(formObj.QUES_Maxalt_migraine_treatment.checked) && !(formObj.QUES_Relpax_migraine_treatment.checked) && !(formObj.QUES_Midrin_migraine_treatment.checked)
                            && !(formObj.QUES_Topamax_migraine_treatment.checked) && !(formObj.QUES_Treximet_migraine_treatment.checked) && !(formObj.QUES_Imitrex_migraine_treatment.checked)
                             && !(formObj.QUES_Zomig_migraine_treatment.checked) && !(formObj.QUES_Advil_migraine_treatment.checked) && !(formObj.QUES_Aleve_migraine_treatment.checked) && !(formObj.QUES_Ibuprofen_migraine_treatment.checked) && !(formObj.QUES_Motrin_migraine_treatment.checked)&& !(formObj.QUES_Tylenol_migraine_treatment.checked)&& !(formObj.QUES_Other_medicine_migraine.checked)&& !(formObj.QUES_Over_counter_medication.checked)&& !(formObj.QUES_No_medication_migraine.checked)&&  !(formObj.QUES_Excedrin_migraine_treatment.checked))

						  //setOtherError("What current migraine treatment(s) are you using?");
						  OrderError[OrderError.length] = "RadioCheckErr";
						  RadioCheckErr += "\t" + "What current migraine treatment(s) are you using?" + "\n";

						  break;
                   case "emailcheck" :
						if((formObj.EMAIL_ADDR.value.length>0) || (formObj.CONFIRM_EMAIL_ADDR.value.length>0))
					{
					   if(formObj.EMAIL_ADDR.value.toLowerCase()!=formObj.CONFIRM_EMAIL_ADDR.value.toLowerCase())
					{
                       // alert('setting email error');
                        setOtherError("E-mail Address and Confirm E-mail address should match. Please re-enter your Confirm E-mail address.");
					}
					}
                       break;
					case "year" :
						var yearValue = formObj.QUESVAL_What_Year_Diagnosed.value;
						//alert(yearValue);
						var today = new Date();
						var currentYear = today.getFullYear();
						//alert(currentYear);
						var minYear = currentYear - 100;
						if(yearValue.length>0)
						{
						if ( (yearValue > currentYear) || (yearValue < minYear) || isNaN(yearValue) ) {
							 // alert('setting year error');
                             setOtherError2("Please enter a valid year.");
						}
						}
						break;					  
					
				}	
			}
		}
			
		
		// resets the error message for before each required check
		function resetErrorMessage() {
			TextSelectErr = '', RadioCheckErr = '', formaterr = '', othererr = '', othererror2='';
			OrderError = [];
		}

		function addFormatError( str ) {	formaterr += "\t"+str+"\n"; }
		
		var validateForm = null;
		function setValidateForm(_form) { validateForm = _form; }

		// runs through specified required array and checks validity for based on field type
		function checkRequired(reqarray) {
			for (var i=0; i < reqarray.length; i++) {
				var elem = reqarray[i];
				var formelem = eval("validateForm."+elem.field[0]);
				if (!formelem) alert("validateForm."+elem.field[0]);
				switch (formelem.type || formelem[0].type) {
					case "text" : case "textarea" : case "password" :
						var done = false;
						for (var f=0; (f < elem.field.length && !done); f++) {
							formelem = eval("validateForm."+elem.field[f]);
							if (formelem.value == "") {
								if (TextSelectErr=="") OrderError[OrderError.length] = "TextSelectErr";
								TextSelectErr += "\t"+elem.display + "\n";
								done = true;
							}
						}
						break;
					case "select-one" :
						if (formelem.options[formelem.selectedIndex].value == "") {
							if (TextSelectErr=="") OrderError[OrderError.length] = "TextSelectErr";
							TextSelectErr += "\t"+elem.display + "\n";
						}
						break;
					case "radio" :
						var done = null;
						for (var r=0; (r < formelem.length && !done); r++) {
							if (formelem[r].checked) done = formelem[r].value
						}
						if (done == null) {
							if (RadioCheckErr=="") OrderError[OrderError.length] = "RadioCheckErr";
							RadioCheckErr += "\t" + elem.display + "\n";
						} else if (elem.trigger == done) checkRequired(elem.extra);
						break;
					case "checkbox" :
						var done = false;
						for (var c=0; (c < elem.field.length && !done); c++) {
							var chbxelem = eval("validateForm."+elem.field[c])
							if (chbxelem.checked) done = true;
						}
						if (!done) {
							if (RadioCheckErr=="") OrderError[OrderError.length] = "RadioCheckErr";
							RadioCheckErr += "\t" + elem.display + "\n";
						}
						break;
				}
			}
		}

		function setOtherError(errmsg) {
           othererr = errmsg;
		}
        function setOtherError2(errmsg) {
           othererror2 = errmsg;
		}
		// builds error message from the required array and alert the user
		function validateRequired() {
			checkRequired(required);
			checkFormats();
			var builderr = '';
			for (var i=0; i < OrderError.length; i++) {
				if (OrderError[i] == "TextSelectErr") builderr += "The following fields are missing:\n"+TextSelectErr+"\n";
				else if (OrderError[i] == "RadioCheckErr") builderr += "The following questions require a selection:\n"+RadioCheckErr+"\n";
			}
			if (formaterr != "") builderr += "The following fields had format input error(s):\n"+formaterr+"\n";
			if (othererr != "") builderr += "\n\t"+othererr+"\n";
			if (othererror2 != "") builderr += "\n"+othererror2+"\n";
			if (builderr != "") {
				alert(builderr);
				return false;
			} else return true;
			
		}

//-->