// Developed by Andrew Read - Cenetrix Systems

	var http_request = false;
	
	function makeRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
   }
  
  
  	function makeRequestHandler(url, parameters, handler) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = handler;
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
   }

   function check(tocheck) {
   
   		if(tocheck == undefined) return "undef=u&";
   		
		var radioLength = tocheck.length;
		if(radioLength == undefined) return "undef=u&";
		
		for(var i = 0; i < radioLength; i++) {
			if(tocheck[i].checked) {
				return(tocheck[i].name + "=" + tocheck[i].value + "&");
			}
		}
	}

window.size = function()
{
	var w = 0;
	var h = 0;

	//IE
	if(!window.innerWidth)
	{
		//strict mode
		if(!(document.documentElement.clientWidth == 0))
		{
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		}
		//quirks mode
		else
		{
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
	}
	//w3c
	else
	{
		w = window.innerWidth;
		h = window.innerHeight;
	}
	return {width:w,height:h};
}

function display_form(layer) {
	var layer1 = document.getElementById([layer]);
	var layerwidthstr = layer1.style.width;
	var layerwidth = parseInt(layerwidthstr.replace(/px$/, ""));
	var layerheight = layer1.style.heightclientHeight;
	var layerheightstr = layer1.style.height;
	var layerheight = parseInt(layerheightstr.replace(/px$/, ""));
	var _x;
	var _y;
	
	//IE
	if(!window.pageYOffset)
	{
		//strict mode
		if(!(document.documentElement.scrollTop == 0))
		{
			offsetY = document.documentElement.scrollTop;
			offsetX = document.documentElement.scrollLeft;
		}
		//quirks mode
		else
		{
			offsetY = document.body.scrollTop;
			offsetX = document.body.scrollLeft;
		}
	}
	//w3c
	else
	{
		offsetX = window.pageXOffset;
		offsetY = window.pageYOffset;
	}

	//var outstr = "x=" + (window.size().width) + "-" + layerwidth;
	//alert(outstr);
	_x = ((window.size().width-layerwidth)/3)+offsetX;
	_y = ((window.size().height-(layerheight+100))/2)+offsetY;
	if ( _y < 0 ) {
			// Sometimes we have the popups appear too high n smaller viewports
			_y = 0;
	}
	
	
	//Lets call Google Page View for the click, so we have
	// 1. An Area Page ID - if not an area page, then it's NULL so check existence
	// 2. The type of form to display
	
	if ( $('areaToken') ) {
		// We are an area page
		pageTracker._trackPageview('/' + $F('areaToken') + '/' + layer);
	} else {
		// We're somewhere else on the site
		pageTracker._trackPageview('/' + 'site' + '/' + layer);
	}


	// Centre the layer
	//alert(_x);
	//alert(_y);
	layer1.style.left = (_x) + "px";
	layer1.style.top = (_y) + "px";
	layer1.style.display = "block";
}

function hide_form(layer) {
	document.getElementById([layer]).style.display = "none";
}

function set_location(element, email) {
	document.getElementById([element]).value = email;
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}


// ajax.Request
function ajaxPostcodeRequest(url,data) {  
		var aj = new Ajax.Request(  
			url, {  
				method:'get',   
				parameters: data,   
				onComplete: getPostcodeResponse  
		}  
	);  
} 

/* ajax.Response */  
function getPostcodeResponse(oReq) {  
	$('postcode_list').innerHTML = oReq.responseText;	
	display_form('postcode_results');
}


function track_interaction(token, layer) {	
	if ( $('areaToken') ) {
		// We are an area page
		pageTracker._trackPageview('/' + token + '/' + $F('areaToken'));
	} else {
		// We're somewhere else on the site
		pageTracker._trackPageview('/' + token + '/' + layer);
	}
}