// MIDSOUTH contact.js
// Copyright 2004, DeFinis Computer Associates
// Wantage, NJ 07419  All rights reserved.
// Validate contact Form

var dayNames=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var monthNames=new Array("January","February","March","April","May","June","July","August","September","October","November","December");

function getCurTime() {
	curDateTime=new Date();
	curYear=curDateTime.getFullYear();
	curMonthNbr=curDateTime.getMonth();
	curDayNbrOfWeek=curDateTime.getDay();
	curDayNbrOfMonth=curDateTime.getDate();
	
	curLocalHours=curDateTime.getHours();
	curLocalMinutes=curDateTime.getMinutes();
	curLocalSeconds=curDateTime.getSeconds();
	if (curLocalMinutes<10)
		curLocalMinutes="0"+curLocalMinutes;
	if (curLocalSeconds<10)
		curLocalSeconds="0"+curLocalSeconds;

	curUTCTime = curDateTime.toUTCString();
	curDateTime = curDateTime.toLocaleTimeString();

	var retrnData=dayNames[curDayNbrOfWeek]+', '+monthNames[curMonthNbr]+' '+curDayNbrOfMonth+', '+curYear+', '+curLocalHours +':'+curLocalMinutes +':'+curLocalSeconds+' Local Time '+'\n ('+curUTCTime+')';
	return retrnData;
}

function taLimit(evt) {
/* Copyright 2009, All rights reserved. DeFinis Computer Associates */
	var evtObj;						// Contains event object
	var elementTarget;		// Contains either the srcElement (IE) or the evt.target property
	if (evt.srcElement){	// The browser is IE
		evtObj = window.event;
		elementTarget = evt.srcElement;
	} else {							// The browser is non-IE
		evtObj = evt;
		elementTarget = evt.target;
	}
	
//	var maxLength = elementTarget.rows * elementTarget.cols;
	var maxLength=0;
	if(document.all)
		maxLength = document.getElementById('myMsgMax').innerText;
	else
		maxLength = document.getElementById('myMsgMax').innerHTML;		

	var taCounter=0;
	var keyHit = evtObj.type;
	var keyCode = evtObj.keyCode;
	if (keyCode == 8) {
		taBackspace(evt);
		return;
	}
	
	taCounter = maxLength - document.frmContact.MESSAGE.value.length -1;
	
	if (document.frmContact.MESSAGE.value.length==maxLength){
		document.frmContact.MESSAGE.value = document.frmContact.MESSAGE.value.substring(0,maxLength);
		alert("You may not exceed " + maxLength + " characters.  Message truncated.");
		return false;
	}else{
		if(document.all)
			document.getElementById('myCounter').innerText = taCounter;
		else
			document.getElementById('myCounter').innerHTML = taCounter;		
	}
}	// End taLimit()

function taBackspace(evt) {
	var elementTarget;		// Contains either the srcElement (IE) or the evt.target property
	if (evt.srcElement){	// The browser is IE
		elementTarget = evt.srcElement;
	} else {							// The browser is non-IE
		elementTarget = evt.target;
	}
	keyHit = evt.type;
	keyCode = evt.keyCode;

//	var maxLength = elementTarget.rows * elementTarget.cols;
	var maxLength=0;
	if(document.all)
		maxLength = document.getElementById('myMsgMax').innerText;
	else
		maxLength = document.getElementById('myMsgMax').innerHTML;		
	
	if (document.frmContact.MESSAGE.value.length>maxLength){
		document.frmContact.MESSAGE.value = document.frmContact.MESSAGE.value.substring(0,maxLength);
		var taCounter = maxLength - document.frmContact.MESSAGE.value.length;
		if(document.all){
			document.getElementById('myCounter').innerText = taCounter;
		}else{
			document.getElementById('myCounter').innerHTML = taCounter;
		}
		alert("Message too long.  Truncated to " + maxLength + " characters.");
		document.getElementById('MESSAGE').focus();
		document.getElementById('MESSAGE').select();				
		return false;
	}

	var taCounter = maxLength - document.frmContact.MESSAGE.value.length;
	if(document.all){
		document.getElementById('myCounter').innerText = taCounter;
	}else{
		document.getElementById('myCounter').innerHTML = taCounter;
	}
}	// End taBackspace()

function validateWorkPhone() 
{
	var workPhone = document.getElementById('WORKPHONE').value;
	var	bestTime = document.getElementById('BESTTIME').value;
	if(bestTime.toUpperCase().indexOf("WORK") != -1){
		if(document.getElementById('WORKPHONE').value == ''){
			alert("You must enter a valid Work Phone Number if you want to be called at work.");
			document.getElementById('WORKPHONE').focus();
			document.getElementById('WORKPHONE').select();				
		}
	}
}

function fnValidateForm(formName)
{
  var x  = 0;
  var FormOk  = true;
	var ItemName = '';
	var ItemValue = '';
	var myForm = document.forms[formName];

// *** INTERNAL FIELD NAMES ***
	fldNames = new Array(
		"NAME",
		"JOBTITLE",
		"COMPANYNAME",
		"PHONE",
		"EXT",
		"FAX",
		"EMAIL",
		"BESTTIME",
		"MESSAGE"
	);
	captionNames = new Array(
		'Name',
		'Job Title',
		'Company Name',
		'Phone',
		'Extension',
		'Fax',
		'E-Mail Address',
		'Best Time to Call',
		'Message'
	);
		
	var ItemCount = fldNames.length;
	var ItemRequired = false;
	var captionPtr = 0;
	
  while ((x < myForm.elements.length) && myForm.elements[x].name != 'undefined' && (FormOk)){
		ItemName = myForm.elements[x].name;
		ItemValue = myForm.elements[x].value;
	
		// Set the Caption Pointer
		for (captionPtr=0;captionPtr<ItemCount;captionPtr++){
			if(ItemName == fldNames[captionPtr]){
				break;
			}
		}	

		// Check if required field is empty
		if (myForm.elements[x].className.indexOf("cRequiredFld") != -1){
			if (ItemValue.length == 0){
			  FormOk = false;
				alert(captionNames[captionPtr] + ' is a required item.');
				myForm.elements[x].focus();
				myForm.elements[x].select();
				return FormOk;				
			}
		}

		//	Required or not, must be valid format if present		
		if(ItemName.indexOf("PHONE") != -1 || ItemName.indexOf("FAX") != -1){
			if (myForm.elements[x].className.indexOf("cRequiredFld") != -1 || ItemValue.length > 0) {
				var myRegExp=/^\d{3}-\d{3}-\d{4}$/;		// 3 digits followed by hyphen followed by 3 digits followed by hyphen followed by 4 digits
				if(!myRegExp.test(ItemValue)){
					FormOk = false;
					alert("Please enter a valid " + captionNames[captionPtr] + " with format as 000-000-0000.");
					myForm.elements[x].focus();
					myForm.elements[x].select();
					return FormOk;				
				}
			}
		}

		if(ItemName.indexOf("EXT") != -1){
			if(ItemValue.length > 0){
				if(myForm.elements[x-1].value.length == 0) {
					FormOk = false;
					alert(captionNames[captionPtr]+" must be Blank or associated Phone Number is missing");
					myForm.elements[x].focus();
					myForm.elements[x].select();
					return FormOk;				
				}else if(isNaN(ItemValue) || myForm.elements[x-1].value.length == 0) {	// EXT must immediately follow WORKPHONE
					FormOk = false;
					alert(captionNames[captionPtr]+" must be Numeric");
					myForm.elements[x].focus();
					myForm.elements[x].select();
					return FormOk;				
				}
			}
		}

		if(ItemName == "EMAIL"){
			if (myForm.elements[x].className.indexOf("cRequiredFld") != -1 || ItemValue.length > 0) {
				var myRegExp1=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
				if(!myRegExp1.test(ItemValue)){
					FormOk = false;
					alert(captionNames[captionPtr] + " has an invalid format.");
					myForm.elements[x].focus();
					myForm.elements[x].select();				
					return FormOk;				
				}
			}
		}
		
		if(ItemName == "BESTTIME"){
			if(ItemValue.toUpperCase().indexOf("WORK") != -1){
				if(document.getElementById('WORKPHONE').value == ''){
					FormOk = false;
					alert("You must enter a valid Work Phone Number if you want to be called at work.");
					document.getElementById('WORKPHONE').focus();
					document.getElementById('WORKPHONE').select();				
					return FormOk;				
				}else{
					document.getElementById('WORKPHONE').className = 'cOptionalFld';
				}
			}
		}
		
		if(ItemName == "MESSAGE"){
			var maxMsgLen=0;
			if(document.all)
				maxMsgLen = document.getElementById('myMsgMax').innerText;
			else
				maxMsgLen = document.getElementById('myMsgMax').innerHTML;		
			if(ItemValue.length > maxMsgLen){
				FormOk = false;
				alert("Your message exceeds the maximum allowable length of " + maxMsgLen);
				document.getElementById('MESSAGE').focus();
				document.getElementById('MESSAGE').select();				
				return FormOk;				
			}
		}

    x ++;
  }
	
	return FormOk;
		
}

function formSubmit(formName){
// last updated 10-09-2009	
	var msgSent = 'MSG SENT:';
	var myForm = document.forms[formName]
	
	if(window.event)
		window.event.returnValue = false;
		
  if(fnValidateForm(formName)){
		// Prevent redundant "MSG SENT:" lines which may result from incorrect Captcha codes
  	ItemName = myForm.elements['MESSAGE'].name;
		ItemValue = myForm.elements['MESSAGE'].value;
		if(ItemValue.toUpperCase().indexOf(msgSent) != -1){
			var stop = ItemValue.lastIndexOf(msgSent)-2;
			myForm.elements['MESSAGE'].value=ItemValue.substring(0, stop);
		}

		if (confirm ("Data is valid.  Click O.K. to Send.")){
			if(document.all){									// if IE
				if(myForm.action.substring(0,7).toLowerCase()	== 'mailto:'){
					alert("\n"+'Please do not block messages that may follow.  Click Yes/OK'+"\n"+"\n");
				}
				var timeSubmitted = "\n\n" + msgSent + ' '+getCurTime();
				myForm.elements['MESSAGE'].value+=timeSubmitted + "\n";		// Timestamp message with time sent
				myForm.submit();
				if(window.event){
					window.event.returnValue = true;
					return true;
				}else{
					return false;
				}
			}else if(document.getElementById){		// If other than IE
				if(myForm.action.substring(0,7).toLowerCase()	== 'mailto:'){	
					alert("\n"+'Please do not block messages that may follow.  Click Yes/OK, then,'+"\n\n"+'Your E-mail software may then be waiting for your response.  If so, Click SEND to continue'+"\n"+"\n");
				}
				var timeSubmitted = "\n\n" + msgSent + ' '+getCurTime();
				myForm.elements['MESSAGE'].value+=timeSubmitted + "\n";		// Timestamp message with time sent
				myForm.submit();
				return false;
			}
		}
		return false;
	}
	return false;
}

function formReset(formName,rtrnLoc){	
// last updated 04-16-2009	
	var myForm = document.forms[formName]
	if (confirm ("Are you sure you want to clear the entire form?")){
		window.location = rtrnLoc;
		return false;
	}else{
		return true;	// 		return false in HTML;
	}
}
