var OK2SEND = false;
var errFields;
var cgiLocation = 'bnbform/bnbform.cgi';
//var cgiLocation = '../bnbform/bnbform.cgi';

function sendDaMail() {
// changes form action to the bnbform cgi and submits
	document.forms[0].action = cgiLocation;
	document.forms[0].submit();
}

function getReq() {
// handles required fields - passed in by hidden form field 'required'
// returns array of required field names
	daReqStr = document.info_form.elements['validate'].value; 
	// remove any white space
	tempStr = new String(daReqStr);
	rExp = / /gi;
	newString = new String ("");
	results = tempStr.replace(rExp, newString);
	//split on ","
	returnReqArr = results.split(',');
	return returnReqArr;
}

function validateDaForm() {
	
// validates form values
// required fields != '''
// email is valid
// all numbers are numbers of the correct length
	var reqFields = getReq();
	
	errFields = new Array();
	awareFilledOut = 1;
	for (fld in reqFields) {		
		field = reqFields[fld];
		
		/*
		daLabel =  'label_' + field;
		if (field.indexOf('phone') > -1) {
			daLabel =  'label_phone';
		}
		if (field.indexOf('aware') > -1) {
			daLabel =  'label_aware';
		}
		getStyle(daLabel).color = '#365686';
		*/
		tester = eval('document.info_form.elements["' + field+'"].value');
		
		if (tester == "") {
			errFields[errFields.length] = field;
		}
		else if (field == 'email') {
			if( validateDaEmail(tester) ) {
				if ( tester != document.info_form.elements['email_conf'].value ) {
					alert('E-mail addresses did not match');			
					errFields[errFields.length] = field;	
				}
			}
			else {
				errFields[errFields.length] = field;
			}
		}
		else if ( (field.indexOf('phone') > -1) || (field.indexOf('zip') > -1) ) {
			switch (field) {
				case 'phone1':
				case 'phone2':
					if( !validateDaNums(tester,10) ) {		
						errFields[errFields.length] = field;						
					}
					break;
				case 'phone3':
					if( !validateDaNums(tester,4) ) {		
						errFields[errFields.length] = field;						
					}
					break;
				case 'zip':
					if( !validateDaNums(tester,5) ) {		
						errFields[errFields.length] = field;						
					}
					/*if( document.info_form.elements['zip2'].value != '' ) {
						zip2 = document.info_form.elements['zip2'].value;
						if( !validateDaNums(zip2,4) ) {		
							errFields[errFields.length] = field;						
						}
					}*/
					break;				
			}
		}
		else if (field == 'endoscopy')  {
			filledOut = 0;
			fieldRef = eval('document.info_form.elements["' + field+'"]');
			for (i=0; i<fieldRef.length; i++)  {
				//alert(fieldRef[i].checked);
				if (fieldRef[i].checked)  {filledOut++;}
			}
			if (!filledOut)  {errFields[errFields.length] = field;}
		}
		else if (field.indexOf('aware') > -1)  {
			fieldRef = eval('document.info_form.elements["' + field+'"]');
			if (fieldRef.checked)  {awareFilledOut++;}
		}
		else if (field == 'takenPPI')  {
			filledOut = 0;
			fieldRef = eval('document.info_form.elements["' + field+'"]');
			for (i=0; i<fieldRef.length; i++)  {
				//alert(fieldRef[i].checked);
				if (fieldRef[i].checked)  {filledOut++;}
			}
			if (!filledOut)  {errFields[errFields.length] = field;}
		}
	}
	if (!awareFilledOut)  {errFields[errFields.length] = 'aware';}
	if (errFields.length == 0) {
		OK2SEND = true;
	}
	//alert('yo')
	var errorsF='';
	for(s=0; s<errFields.length; s++){
	errorsF +=( errFields[s] + ' ');
	}
	//alert(errorsF)
	//alert(OK2SEND)
}

function validateDaEmail(email) {
// email validator
	var matcher = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if (matcher.test(email)) {
		return (true);
	}
	else {
		alert("Invalid E-mail Address! Please re-enter.");
		return (false);
	}
}

function validateDaNums(tester, numNums) {
// number validator
// tester = items to validate //numNums = required digits the number needs to be
	var matcher = eval('/^\\d{'+numNums+'}$/');
	( matcher.test(tester) ) ? state=true : state=false;
	return state;
}

function displayErrors() {
	
// handles error messaging
// write main error message with error field list
// changes field label text color to red 
	errtext = 'The following required fields have not been completed or have invalid information: <br />&nbsp;<br />';
	for (i = 0; i < errFields.length; i++) {
		errStr = new String(errFields[i]);
		rExp = /_/gi;
		newString = new String (" ");
		results = errStr.replace(rExp, newString)
		
		if (errStr.indexOf('zip') > -1) {
			errtext +=  '&#149; '+ 'ZIP CODE' + '<br />';
		}
		else if (errStr.indexOf('address') > -1 ) {
			errtext +=  '&#149; '+ 'ADDRESS' + '<br />';
		}
		else if (errStr.indexOf('phone1') > -1 ) {
			if (errtext.indexOf('TELEPHONE') == -1) {
				errtext +=  '&#149; '+ 'TELEPHONE NUMBER' + '<br />';
			}
		}
		else if (errStr.indexOf('phone2') > -1) {
			if (errtext.indexOf('TELEPHONE') == -1) {
				errtext +=  '&#149; '+ 'TELEPHONE NUMBER' + '<br />';
			}
		}
		else if (errStr.indexOf('phone3') > -1) {
			if (errtext.indexOf('TELEPHONE') == -1) {
				errtext +=  '&#149; '+ 'TELEPHONE NUMBER' + '<br />';
			}
		}
		else if (errStr.indexOf('email') > -1 && errStr.indexOf('email_conf') == -1) {
			errtext +=  '&#149; '+ 'E-MAIL ADDRESS' + '<br />';
		}
		else if (errStr.indexOf('email_conf') > -1) {
			errtext +=  '&#149; '+ 'CONFIRM E-MAIL ADDRESS' + '<br />';
		}
		
		else {
			errtext +=  '&#149; '+ results.toUpperCase() + '<br />';
		}
		
		
		
		//if ((i != 0) && (i % 3 ==0)) {
		//	errtext += '<br />';
		//}
		/*errLabel = 'label_' + errFields[i];
		if (errFields[i].indexOf('phone') > -1) {
			errLabel = 'label_phone';
		}
		if (getStyle(errLabel))  {getStyle(errLabel).color = '#FF0000';}
		*/
	}
	errtext += '&nbsp;<br />';
	myDOM('errDiv').innerHTML = errtext;
	getStyle('errDiv').display='block';
	//calcHeight();
	contentResizer();
}

function handleDaMail() {
// main function
	validateDaForm();
	/*if(document.info_form.elements["mailcode"].value != '') {
			if( !validateDaNums(getForm('col1').info_form.elements["mailcode"].value,6) ) {		
					alert('The tracking code you entered is not valid. Please check your mailing to confirm you have entered the proper tracking code.');		
				OK2SEND = 0;				
			}
	}*/
	
	if (OK2SEND) {
		document.info_form.elements["required"].value = '';
		sendDaMail();
	}
	else {
		displayErrors();
	}
}

/********** copy this into your form  *******
For use with BNBForm
Replace values for
required (javascript validates these fields email and phone names are hard coded in validatior)
data_order (field display order in email)
submit_to (who the mail goes to)
form_id (email subject)
ok_url (thank you page)
not_ok_url (error page - should actually never get to this page cause the js pre-validates)

<!--  SCRIPT CONFIGURATION SECTION -->
<INPUT TYPE="HIDDEN" NAME="required" 
    VALUE="info_type, first_name, last_name, medical_specialty, hospital_clinic, address1, city, state, zip, phone1, phone2, phone3, e-mail, e-mail_conf">
<INPUT TYPE="HIDDEN" NAME="data_order" 
    VALUE="info_type, first_name, last_name, medical_specialty, hospital_clinic, address1, address2, city, state, zip, phone1, phone2, phone3, e-mail, e-mail_conf, dea, hear, hear_other">
<INPUT TYPE="HIDDEN" NAME="submit_to" VALUE="rick.fulgencio@akqa.com">
<INPUT TYPE="HIDDEN" NAME="automessage" VALUE="mymessage">
<INPUT TYPE="HIDDEN" NAME="outputfile" VALUE="form1">
<INPUT TYPE="HIDDEN" NAME="countfile" VALUE="form1">
<INPUT TYPE="HIDDEN" NAME="emailfile" VALUE="form1">
<INPUT TYPE="HIDDEN" NAME="form_id" VALUE="Order Material Request (Doctor)">
<INPUT TYPE="HIDDEN" NAME="ok_url" 
     VALUE="http://bscent.dc.akqa.com:837/doctor/order_materials_thankyou.html">
<INPUT TYPE="HIDDEN" NAME="not_ok_url" 
     VALUE="http://bscent.dc.akqa.com:837/doctor/#">
<!--  END OF SCRIPT CONFIGURATION SECTION -->
*/
