
// ALL: get an elements width
Object.prototype.getElementWidth = function() {
	if (typeof this.clip !== "undefined") {
		return this.clip.width;
	} else {
		if (this.style.pixelWidth) {
			return this.style.pixelWidth;
		} else {
			return this.offsetWidth;
		}
	}
}

// MENU: shows drop down menu and finds its correct position
function popUp(obj) {

	var menu = document.getElementById(obj).previousSibling;
	
	while (menu.nodeType == '3') {
		menu = menu.previousSibling;
	}
	
	var objtop = menutop(menu);
	var objleft = menuleft(menu);
	
	var parentdiv = document.getElementById('maindiv');
	
	var parentstop = menutop(parentdiv);
	var parentsleft = menuleft(parentdiv);
	
	var settop = (objtop - parentstop);
	var setleft = (objleft - parentsleft - 10);
	
	document.getElementById(obj).style.top = '19px';
	document.getElementById(obj).style.left = setleft + 'px';
}

// MENU: hides drop down menu
function popDown(obj) { 

	document.getElementById(obj).style.top = "-500px";
	document.getElementById(obj).style.left = "-500px";
}

// ALL: get an elemants top pixel position
function menutop(menu) {

var posy = 0;

	while (menu != null) {
	
		posy += menu.offsetTop;
		menu = menu.offsetParent;
	}
	
	return posy;
	
}

// ALL: get an elemants left pixel position
function menuleft(menu) {

var posx = 0;

	while (menu != null) {
	
		posx += menu.offsetLeft;
		menu = menu.offsetParent;
	}
	
	return posx;
	
}

// SEVERICE AREA MAP: function to hide and dispaly larger service area map based on cursor position
function showmap(calid, event) { 

	var agent = navigator.userAgent.toLowerCase();

	var scrollp = [0, 0];
	
	if (typeof document.documentElement.scrollTop != "undefined" && document.documentElement.scrollTop > 0 ){
	scrollp = [document.documentElement.scrollLeft,
				document.documentElement.scrollTop];
	}
	else if (typeof document.body.scrollTop != "undefined" ){
	scrollp = [document.body.scrollLeft,
				document.body.scrollTop];
	}
	else if (typeof window.pageYOffset != "undefined" ){
	scrollp = [window.pageXOffset,
				window.pageYOffset];
	}
	
	var cursorp = [0, 0];

	if(typeof event.pageX != "undefined" && typeof event.x != "undefined"){
	cursorp[0] = event.pageX + 50;
	cursorp[1] = event.pageY - 300;
	}
	else if (agent.indexOf("gecko") != -1){
	cursorp[0] = event.clientX + scrollp[0] + 50;
	cursorp[1] = event.clientY + scrollp[1] - 300;
	}
	else{
	cursorp[0] = event.clientX + scrollp[0] + 50;
	cursorp[1] = event.clientY + scrollp[1] - 300;
	}
	
	document.getElementById(calid).style.top = cursorp[1] + "px";
	document.getElementById(calid).style.left = cursorp[0] + "px";
	document.getElementById(calid).style.display = "block";
}
function hidemap(calid, event) { 
	document.getElementById(calid).style.top = "-900px";
	document.getElementById(calid).style.left = "-900px";
	document.getElementById(calid).style.display = "none";
}
function showselect(selectdiv) { 
	if (typeof setstate == 'undefined' || setstate == "showit") {
		document.getElementById(selectdiv).style.position = "relative";
		document.getElementById(selectdiv).style.top = "0px";
		document.getElementById(selectdiv).style.left = "0px";
		document.getElementById(selectdiv).style.display = "block";
	}
	else {
		document.getElementById(selectdiv).style.position = "absolute";
		document.getElementById(selectdiv).style.top = "-900px";
		document.getElementById(selectdiv).style.left = "-900px";
		document.getElementById(selectdiv).style.display = "none";
	}
	if (typeof setstate == 'undefined' || setstate == "showit") {
	setstate = "hideit";
	}
	else {
	setstate = "showit";
	}
}


// ALL: custom trim function so javascript can make sure check that no required filed is left blank
function trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}

// CONTACT FORM: checks the form one last time before creating the data for AJAX to send to sedemail.php
function Contactvalidate() {
var error = '';

	if((trim(document.getElementById('email').value) == '') && (trim(document.getElementById('phone').value) == '')) {
		error += 'Please enter an E-mail address or Phone number so we can reply to you<br>';
	}
	if((trim(document.getElementById('email').value) != '') && (trim(document.getElementById('phone').value) == '')) {
		var femail = trim(document.getElementById('email').value);
		var tempd = new Array();
		tempd = femail.split('@');
		if (tempd[1]) {
			var temp = new Array();
			temp = tempd[1].split('.');
			if(!temp[1]) {
				error += 'Please enter a valid E-mail address, so we can reply to your email<br>';
			}
		}
		else {
			error += 'Please enter a valid E-mail address, so we can reply to your email<br>';
		}
	}
	if((trim(document.getElementById('notes').value) == '') || (document.getElementById('notes').value.length < 5)) {
		error += 'Please fill in the Message field<br>';
	}

	if(error != '') {
		alert(error);
	
	}
	else {
	
		// CONTACT FORM: data for send to the AJAX function
		var params = "fname="+document.getElementById('name').value;
		params += "&femail="+document.getElementById('email').value;
		params += "&fphone="+document.getElementById('phone').value;
		params += "&fpest="+document.getElementById('pest').value;
		params += "&fnotes="+document.getElementById('notes').value;
		
		sendmail(params);
	}
}

// EMAILING DATA: the AJAX function
function sendmail(params) {

var url = 'http://promptactionpest.com/main_sendemail.php'

	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.open("POST", url, true);
		req.setRequestHeader('User-Agent','XMLHTTP/1.0');
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length", params.length);
		req.setRequestHeader("Connection", "close");
		req.onreadystatechange = processReqChange;
		req.send(params);
	}
	else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.open("POST", url, true);
			req.setRequestHeader('User-Agent','XMLHTTP/1.0');
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			req.setRequestHeader("Content-length", params.length);
			req.setRequestHeader("Connection", "close");
			req.onreadystatechange = processReqChange;
			req.send(params);
		}
	}
}

// EMAILING DATA: once data is returned to the AJAX function this process XML sent from sendemail.php
function processReqChange() {

	if (req.readyState == 4) {

		if (req.status == 200) {

		var mailresponse  = req.responseXML.documentElement;

			try {

				formstatus(mailresponse.getElementsByTagName("status")[0].childNodes[0].nodeValue);
			}
			catch (error) {

				formstatus('error');
			}
		}
	}
}

// EMAILING DATA: displays user freindly success or errors reported to the AJAX function
function formstatus(status) {

	if(status == 'error') {
	
		alert('An Error Has Occured! Please try sending the email again');
		
		return true;
	}
	else if(status == 'success') {
	
		var a = new Array('est','onp','pta','tac','con','t@p','rom','cti','.co','m');

		alert('Thank you ' + document.getElementById('name').value + ' for contacting us. Your request for more information on ' + document.getElementById('pest').value + ' has been sent to '+a[4]+a[3]+a[5]+a[6]+a[2]+a[7]+a[1]+a[0]+a[8]+a[9] );
	
		return true;
	}
	else{
		return false;
	}
}