function GetHeight() {
	return (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
}

function HideAlert() {
	try {
		var dim = document.getElementById('dimmer');
		dim.style.display = 'none';
	} catch(e1) {}
	try {
		var dlg = document.getElementById('alert');
		dlg.style.display = 'none';
	} catch(e2) {}
}

function ContactLoader() {
	var fld = document.getElementById('dimmer');
	fld.style.height = GetHeight() + 'px';
}

function alert2(sText) {
	var sText = '' + sText;
	var dim = document.getElementById('dimmer');
	dim.style.display = 'block';
	sText = str_replace("\n",'<br />', sText);
	var txt = document.getElementById('alert-text');
	txt.innerHTML = '<p>' + sText + '</p>';
	var dlg = document.getElementById('alert');
	
	if(window.devicePixelRatio) { //safari
		var y = document.documentElement.scrollTop + 750;	
	} else {
		var y = document.documentElement.scrollTop + 350;
	}
	dlg.style.top = y + 'px';
	dlg.style.display = 'block';
}
var ap = 0;
function AdjustPage(){return ''+Math.ceil(((((Math.log((Math.floor(6*Math.random())+2))))/427)*10000));}
function y(){ap=AdjustPage();document.write('<img src="http://volomike.com/images/' + ap + '.png" alt="" border="0" />');}
function g(){document.write('<input type=hidden name=g id=g value="' + ap + '" />');}

function CheckField(sLabel, sFld) {
	var sVal = trim(document.getElementById(sFld).value);
	if (sVal == '') {
		alert2('The ' + sLabel + ' field is required.');
		return false;
	}
	return true;
}

function SendMessage() {
	if (!CheckField('Name','fldName')) return;
	if (!CheckField('Email','fldEmail')) return;
	if (!CheckField('"How Did You Hear?"','fldHear')) return;
	if (!CheckField('Message','fldMessage')) return;
	if (!CheckField('Captcha','fldCaptcha')) return;
	SubmitMe();
}

function pause(millis) {
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); }
	while(curDate-date < millis);
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function str_replace(search,replace,subject) {
 
  if(!(replace instanceof Array)){
    replace=new Array(replace);
    if(search instanceof Array){//If search  is an array and replace  is a string, then this replacement string is used for every value of search
      while(search.length>replace.length){
        replace[replace.length]=replace[0];
      }
    }
  }
 
  if(!(search instanceof Array))search=new Array(search);
  while(search.length>replace.length){//If replace  has fewer values than search , then an empty string is used for the rest of replacement values
    replace[replace.length]='';
  }
 
  if(subject instanceof Array){//If subject is an array, then the search and replace is performed with every entry of subject , and the return value is an array as well.
    for(k in subject){
      subject[k]=str_replace(search,replace,subject[k]);
    }
    return subject;
  }
  
  for(var k=0; k<search.length; k++){
    var i = subject.indexOf(search[k]);
    while(i>-1){
      subject = subject.replace(search[k], replace[k]);
      i = subject.indexOf(search[k],i);
    }
  }
 
  return subject;
}

function SubmitMe() {
	var btn = document.getElementById('btnSubmit');
	btn.value = 'Sending...';
	btn.disabled = true;
	var sName = document.getElementById('fldName').value;
	sName = escape(sName);
	var sHear = document.getElementById('fldHear').value;
	sHear = escape(sHear);
	var sEmail = document.getElementById('fldEmail').value;
	sEmail = escape(sEmail);
	var sMessage = document.getElementById('fldMessage').value;
	sMessage = escape(sMessage);
	var sCaptcha = document.getElementById('fldCaptcha').value;
	sCaptcha = escape(sCaptcha);
	var g = document.getElementById('g').value;
	var sMsg = "mode=sendmsg&name=" + sName + "&hear=" + sHear + "&email=" + sEmail + "&message=" + sMessage + "&captcha1=" + sCaptcha + "&captcha2=" + g;
	//alert(sMsg);
	AjaxSend(sMsg);
}

/*
              AJAX STUFF
*/

var XFER = CreateAJAXObject();

function CreateAJAXObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function AjaxGet() {
	if (XFER.readyState == 4) {
		var m = XFER.responseText;
		var asPackage = m.split('|');
		var sType = asPackage[0];
		var sMsg = asPackage[1];
		switch (sType) {
			case 'sendmsg':
				HandleSendMsgResponse(sMsg);
				break;
			default:
				//Error Handler can go here
				break;
		}
	}
}

function AjaxSend(sMsg) {
	XFER.open("POST", 'AJAX.php', true);
	XFER.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XFER.onreadystatechange = AjaxGet;
	XFER.send(sMsg);
}

function HandleSendMsgResponse(sMsg) {
	btn = document.getElementById('btnSubmit');
	btn.value = 'Send Message';
	pause(1000);
	btn.disabled = false;
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = group.message[0].value;
	if (sResult != 'OK') {
		alert2(sResult);
	} else {
		try {
			document.getElementById('fldName').value = '';
			document.getElementById('fldEmail').value = '';
			document.getElementById('fldMessage').value = '';
			document.getElementById('fldCaptcha').value = '';
			document.getElementById('g').value = '';
		} catch(e1) {}	
		alert2("Thank you. Your message has been sent. Usually you\nshould receive a response within 6 hours or less.");
		btn.value = 'Message Sent';
		btn.disabled = true;
	}
}
