function verifyForm(form,method) {
	disableButton(form,'formsubmit','Sending Email...');
	disableButton(form,'formreset');
	disableButton(form,'formcancel');
	var valid = true;
	var reason = "";
	if (method == 'ajax') { jx.load('_resources/scripts/lib/mail.php?'+getPostVars(form),function (data) { processResult(form,data); },'json','post'); }
	return valid;
}
function getPostVars (form) {
	var returnval = '';
	var elems = form.elements;
	var elemslen = elems.length;
	for (var i = 0; i < elemslen; i++) {
		elem = elems[i];
		returnval = elem.name + '=' + elem.value + '&';
	}
	return returnval.substring(0,returnval.length - 1);
}
function processResult(form,code) {
	switch (code) {
		case '200':
			disableButton(form,'formsubmit','Email Sent');
			disableButton(form,'formreset');
			enableButton(form,'formcancel','Go Back');
			resetError();
		break;
		case '801':
		case '802':
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			formError(form,'Your entry into "Human Test" did not match the picture.');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '1000':
			formError(form,'One or more required fields is empty.');
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '1001':
			formError(form,'The "Your Name" field was left empty.');		
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '1002':
			formError(form,'The "Your Email" field was left empty.');
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '1003':
			formError(form,'The "Email Again" field was left empty.');
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '1004':
			formError(form,'The "Subject" field was left empty.');
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '1005':
			formError(form,'The "Message" field was left empty.');
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '1006':
			formError(form,'The "Your Email" and "Email Again" fields did not match.');
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
		break;
		case '501':
		default:
			enableButton(form,'formsubmit','Retry Email');
			enableButton(form,'formreset');
			enableButton(form,'formcancel');
			formError(form,'We experienced a problem sending your email.<br />Error Code: '+code);
			fetchCaptcha(form,getElementsByClassName(form,'captcha')[0]);
	}
}
function formError(form,str) {
	var statobj = getElementsByClassName(form,'formstatus')[0];
	statobj.innerHTML = "Your email could not be sent because the following errors.<br /><br />"+str+"<br /><br />Please correct the errors and try again.<br />";
	statobj.style.display = 'block';
}
function resetError(form) {
	var statobj = getElementsByClassName(form,'formstatus')[0];
	statobj.innerHTML = "&nbsp;"
	statobj.style.display = 'none';
}
function disableButton(form,button,str) {
	form[button].disabled = 'disabled';
	if (!checkClassName(form[button],'disabledbutton')) { addClassName(form[button],'disabledbutton'); }
	if (str) { form[button].value = str; }
}
function enableButton(form,button,str) {
	form[button].disabled = '';
	if (checkClassName(form[button],'disabledbutton')) { remClassName(form[button],'disabledbutton'); }
	if (str) { form[button].value = str; }
}


setupForm();
function setupForm () {
	var forms = document.forms;
	var formslen = forms.length;
	for (var i = 0; i < formslen; i++) {
		var curform = forms[i];
		curform.formreset.onclick = function () { resetError(curform); }
		captchaimg = getElementsByClassName(curform,'captcha')[0];
		if (captchaimg) { fetchCaptcha(curform,captchaimg);	}
		var frames = curform.getElementsByTagName('iframe');
		var frameslen = frames.length;
		for (var m = 0; m < frameslen; m++) {
			var curframe = frames[m];
			if (checkClassName(curframe,'formtarget')) {
				curframe.onload = function(){
					var result = parent[this.name].document.body.innerHTML;
					processResult(curform,result);
				}
			}
		}
		var elems = curform.elements;
		var elemslen = elems.length;
		for (var j = 0; j < elemslen; j++) {
			var curelem = elems[j];
			if (curelem.tagName == 'INPUT' && checkClassName(curelem,'button')) {
				curelem.onmouseover = function(){
					addClassName(this,'activebutton');
				}
				curelem.onmouseout = function(){
					remClassName(this,'activebutton');
				}
				curelem.onmouseup = function() {
					remClassName(this,'activebutton');
				}
			}
			else if (curelem.tagName == 'INPUT' || curelem.tagName == 'TEXTAREA' || curelem.tagName == 'SELECT') {
				curelem.onfocus = function(){
					addClassName(this,'active');
				}
				curelem.onblur = function(){
					remClassName(this,'active');
				}
			}
		}
	}
}

function fetchCaptcha (formobj,captcha) {
	jx.load('_resources/scripts/lib/mail.php?nk=1',function (data) {
		formobj.cm.value = null;
		formobj.ck.value = data[0];
		formobj.ct.value = data[1];
		captcha.src = "_resources/scripts/lib/mail.php?ci="+data[2];
	},'json','get');
}

