function GetXmlHttpObject() {
	var xmlHttp=null;

	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

var http = GetXmlHttpObject();

function sendContact() {

	var req = 'part=sendContact';

	if (document.getElementById('id').value != '') {
		req += '&id='+escape(document.getElementById('id').value);
	}

	if (document.getElementById('fromEmail').value != '') {
		email = document.getElementById('fromEmail').value
		AtPos = email.indexOf("@")
		StopPos = email.lastIndexOf(".")


			if (AtPos == -1 || StopPos == -1) {
			alert ("Not a valid email address");
			document.getElementById('fromEmail').focus();
			return false;
			}

			if (StopPos < AtPos) {
			alert ("Not a valid email address");
			document.getElementById('fromEmail').focus();
			return false;
			}

			if (StopPos - AtPos == 1) {
			alert ("Not a valid email address");
			document.getElementById('fromEmail').focus();
			return false;
			}

		req += '&fromEmail='+escape(document.getElementById('fromEmail').value);

	} else {
		alert ("Not a valid Email address");
		document.getElementById('fromEmail').focus();
		return false;
	}

	if (document.getElementById('subject').value != '') {
		req += '&subject='+escape(document.getElementById('subject').value);
	} else {
		alert ("Please enter a subject");
		document.getElementById('subject').focus();
		return false;
	}

	if (document.getElementById('emailMessage').value != '') {
		req += '&emailMessage='+document.getElementById('emailMessage').value;
	} else {
		alert ("Please enter a message");
		document.getElementById('emailMessage').focus();
		return false;
	}

	if (req != 'part=sendContact') {
		http.open("POST", "companyMailer.php", true);

		//Send the proper header information along with the request
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.setRequestHeader("Content-length", req.length);
		http.setRequestHeader("Connection", "close");
		//alert(req);

		http.onreadystatechange = handleContactResponse;

	http.send(req);

	} else {
		alert("Nothing to send in Email");
	}
}

function handleContactResponse() {
	var companyName = document.getElementById('companyName').value;

	if (http.readyState == 4) { //If request 'complete'
		if(http.status == 200) { //If status is 'ok'+
		//alert(http.responseText);
			switch (http.responseText) {
				case "OK":
					document.getElementById('emailConfirm').innerHTML = "<div id=\"outputSent\"><div class=\"contactPadding\">Your message has been sent to " + companyName + ". A copy of your message has also been emailed to you.</div></div>";
					break;

				case "Fail":
					document.getElementById('emailConfirm').innerHTML = "<div id=\"outputSent\"><div class=\"contactPadding\">Your message to " + companyName + " has failed, please try again later.</div></div>";
					break;

				default:
				document.getElementById('emailConfirm').innerHTML = "<div id=\"outputSent\"><div class=\"contactPadding\">Your message to " + companyName + " has failed, please try again later.</div></div>";
					break;
			}

		}
	}
}
function setMapFromPostcode(fromPostcode) {

	var length = fromPostcode.length

	if (isNaN(fromPostcode.charAt(2)) || isNaN(fromPostcode.charAt(3))){
		initialiseDirections2();
	} else {

		//fromPostcode = fromPostcode.toUpperCase();

		if (fromPostcode == '') {
			alert('No postcode entered');
			document.getElementById('Postcode').focus();
			return false;
			}
		if (length < 6 || length > 8){
		  alert(fromPostcode + " is not a valid postcode");
		  document.getElementById('Postcode').focus();
		  return false;
		  }
		if (!(isNaN(fromPostcode.charAt(0)))){
		   alert(fromPostcode + " is not a valid postcode");
		   document.getElementById('Postcode').focus();
		   return false;
		  }
		if (isNaN(fromPostcode.charAt(length-3))){
		   alert(fromPostcode + " is not a valid postcode");
		   document.getElementById('Postcode').focus();
		   return false;
		  }
		space1 = fromPostcode.indexOf(" ");space2 = fromPostcode.lastIndexOf(" ");
		 if (space1 != space2){
		   alert(fromPostcode + " is not a valid postcode");
		   document.getElementById('Postcode').focus();
		   return false;
		  }
		var queryString = "?postcode=" + fromPostcode;
		//alert(queryString);
		http.open("GET", url + 'directionsLoad.php' + queryString, true);
		http.onreadystatechange = handleMapLoad;
		http.send(null);
	}
}
function handleMapLoad() {
	if (http.readyState == 4) { //If request 'complete'
		if(http.status==200) { //If status is 'ok'

			document.getElementById('latLong').innerHTML = http.responseText;
			postcodeCo = document.getElementById('latLong').innerHTML;
			//alert(http.responseText);
			initialiseDirections(postcodeCo);
		}
	}
}


function initialize() {
	var googleLatLng = new GLatLng(lat, lng);	

    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("CompanyMap"));	
		map.setCenter(googleLatLng, 13);
        var point = new GLatLng(lat, lng);
        map.addOverlay(new GMarker(point));
        map.addControl(new GSmallMapControl());
      	map.addControl(new GMapTypeControl());
    }
}

function initialiseDirections(postcodeCo) {
	if (GBrowserIsCompatible()) {
		var directionsPanel;
		var map;
		var directions;
		var fromTO = postcodeCo + " to " + lat + "," + lng;

		directionsPanel = document.getElementById("directions").innerHTML = " ";

        map = new GMap2(document.getElementById("CompanyMap"));
		map.addControl(new GSmallMapControl());
      	map.addControl(new GMapTypeControl());

		directionsPanel = document.getElementById("directions");
		map.setCenter(new GLatLng(lat, lng), 15);
		directions = new GDirections(map, directionsPanel);
		directions.load([fromTO]);
		//directions.load("51.368703948999, -2.9250603128834 to 51.0148919969237, -3.09003353118896");
	}

}
function initialiseDirections2(postcodeCo) {
	if (GBrowserIsCompatible()) {
		var directionsPanel;
		var map;
		var directions;

		directionsPanel = document.getElementById("directions").innerHTML = " ";

        map = new GMap2(document.getElementById("CompanyMap"));
		map.addControl(new GSmallMapControl());
      	map.addControl(new GMapTypeControl());

		directionsPanel = document.getElementById("directions");
		map.setCenter(new GLatLng(lat, lng), 15);
		directions = new GDirections(map, directionsPanel);

		directions.load("from: "+document.getElementById('directionsFrom').value+" to: " + lat + "," + lng);
	}
}
function companyDivSwitch(div) {

		document.getElementById('page1').style.display="none";
		document.getElementById('page2').style.display="none";
		document.getElementById('page3').style.display="none";
		document.getElementById('page4').style.display="none";

		switch(div) {
			case 1:
				document.getElementById('microsite').style.display="block";
				document.getElementById('page1').style.display="block";
				document.getElementById('page4').style.display="none";
				break;

			case 2:
				document.getElementById('microsite').style.display="block";
				document.getElementById('page2').style.display="block";
				document.getElementById('page4').style.display="none";
				break;

			case 3:
				document.getElementById('microsite').style.display="block";
				document.getElementById('page3').style.display="block";
				document.getElementById('page4').style.display="none";
				break;

			case 4:
				document.getElementById('page4').style.display="block";
				document.getElementById('microsite').style.display="none";
				break;

			default:
				document.getElementById('microsite').style.display="block";
				document.getElementById('page1').style.display="block";
				break;
		}
}

function changeTab(url){
	switch(url){
		case "#map":
			companyDivSwitch(3);
		break;
		
		case "#contact":
			companyDivSwitch(2);
		break;
		
		case "default":
			companyDivSwitch(1);
		break;
	}
}