
var bErr = false;
var focusElem = '';

function setErr(name, errMsg) {
var errSpan = document.getElementById('err' + name);
  errSpan.innerHTML = errMsg;
  if ( errMsg == '' ) {
    errSpan.style.display = 'none';
  } else {
    errSpan.style.display = '';
    bErr = true;
    if (focusElem == '')
      focusElem = name;
  }
}

function testWhiteSpace (name, errMsg) {
var whiteSpace = /^[\s]+$/;
var el = document.getElementById('pos' + name);
  if ( el.value == '' || whiteSpace.test(el.value) ) {
    setErr(name, errMsg);
	} else {
    setErr(name, '');
  }
}

function testEmail (name, errMsg) {
var emailRegExp = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
var el = document.getElementById('pos' + name);
  testWhiteSpace(name, errMsg);
  if ( !emailRegExp.test(el.value) ) {
    setErr(name, errMsg);
	} else {
    setErr(name, '');
	} 
}

function validateFields(name) {
  
  bErr = false;

  switch (name) {
  case 'Name':
    testWhiteSpace(name, 'Please enter your name.');    
    break;
  
  case 'Email':
    testEmail(name, 'Please enter your valid email.');
    break;
  
  case 'Regard':
    testWhiteSpace(name, 'Please enter a subject.');
    break;

  case 'Text':
    testWhiteSpace(name, 'Please type a message.');
    break;
  
  default: //test all fields upon clicking Send button
    testWhiteSpace('Name', 'Please enter your name.');    
    testEmail('Email', 'Please enter your valid email.');
    testWhiteSpace('Regard', 'Please enter a subject.');
    testWhiteSpace('Text', 'Please type a message.');
    break;
  }
  if ( bErr ) {
    document.getElementById('pos'+focusElem).focus();
    focusElem = '';
    return false;
  } else {
  	return true;
  }
}

function sendPosEmail () {

  if ( validateFields('all') ) { 
  	var submitButton = document.getElementById('sendContactEmail');
  	var submitDiv = document.getElementById('submitDiv');
  	var success = document.getElementById('emailSuccess');
  	var posName = document.getElementById('posName');
  	var posEmail = document.getElementById('posEmail');
  	var posRegard = document.getElementById('posRegard');
  	var posText = document.getElementById('posText');
  	var strCC = document.getElementById('selfCC').value;
  	var page = "/contact/xmlHttpRequest.php?contact=true&xml=true";
  	
  	  submitButton.disabled = true;
      submitDiv.style.display = "none";

  	showContactTimer(); // quickly begin the load bar
  	success.style.display = 'none'; // hide the success bar (incase this is a multi-email
  	
  	// convert (&, +, =) to string equivs. Needed so URL encoded POST won't choke.
  	var str1 = posName.value;
  	str1 = str1.replace(/&/g,"**am**");
  	str1 = str1.replace(/=/g,"**eq**");
  	str1 = str1.replace(/\+/g,"**pl**");
  	var str2 = posEmail.value;
  	str2 = str2.replace(/&/g,"**am**");
  	str2 = str2.replace(/=/g,"**eq**");
  	str2 = str2.replace(/\+/g,"**pl**");
  	var str3 = posRegard.value;
  	str3 = str3.replace(/&/g,"**am**");
  	str3 = str3.replace(/=/g,"**eq**");
  	str3 = str3.replace(/\+/g,"**pl**");
  	var str4 = posText.value;
  	str4 = str4.replace(/&/g,"**am**");
  	str4 = str4.replace(/=/g,"**eq**");
  	str4 = str4.replace(/\+/g,"**pl**");
  	
  	var stuff = "selfCC="+strCC+"&posName="+str1+"&posEmail="+str2+"&posRegard="+str3+"&posText="+str4;
    loadXMLPosDoc(page,stuff);
  }
}
function showContactTimer () {
	var loader = document.getElementById('loadBar');
	loader.style.display = 'block';
	sentTimer = setTimeout("hideContactTimer()",6000);
}

function hideContactTimer () {
	var submitButton = document.getElementById('sendContactEmail');
	var submitDiv = document.getElementById('submitDiv');
	var loader = document.getElementById('loadBar');
	var success = document.getElementById('emailSuccess');
	var fieldArea = document.getElementById('contactFormArea');
	var inputs = fieldArea.getElementsByTagName('input');
	var inputsLen = inputs.length;
	var tAreas = fieldArea.getElementsByTagName('textarea');
	var tAreasLen = tAreas.length;
	// Hide the load bar alas! Done Loading
	loader.style.display = "none";
	success.style.display = "block";
	success.innerHTML = '<strong style="color:green;">'+grabPosXML("confirmation")+'</strong>';
	// Now Hijack the form elements
	for ( i=0;i<inputsLen;i++ ) {
		if ( inputs[i].getAttribute('type') == 'text' ) {
			inputs[i].value = '';
		}
	}
	for ( j=0;j<tAreasLen;j++ ) {
		tAreas[j].value = '';
	}
  submitButton.disabled = false;
  submitDiv.style.display = "block";
}

function ajaxContact() {
var frmEl = document.getElementById('cForm');
addEvent(frmEl, 'submit', sendPosEmail, false);
frmEl.onsubmit = function() { return false; }
}
addEvent(window, 'load',ajaxContact, false);


