var MouseLeft = 0;
var MouseTop = 0;

function SetValues(e)
{
	MouseTop = e.clientY;
	MouseLeft = e.clientX;
}

function targetEdit(contentUrl)
{	
	window.parent.frames['edit'].location.href=contentUrl;
}

var secs;
var _SECONDS;
var timerID = null;
var timerRunning = false;
var delay = 1000;
var ResponseHandler;

function InitializeTimer(responseHandler)
{
	// Set the length of the timer, in seconds
	secs = 60;
	_SECONDS = 60;
	ResponseHandler = responseHandler;
	StopTheClock();
	StartTheTimer();
}

function InitializeTimer(responseHandler, seconds)
{
	// Set the length of the timer, in seconds
	secs = seconds;	
	_SECONDS = seconds;
	ResponseHandler = responseHandler;
	StopTheClock();
	StartTheTimer();
}

function ResetTimer() {
	//reset the clock
	secs = _SECONDS;
	StartTheTimer();
}

function StopTheClock()
{
	if(timerRunning) {
		window.clearTimeout(timerID);
	}
	timerRunning = false;
}

function StartTheTimer()
{
	if (secs==0)
	{
		StopTheClock();
		ResponseHandler();
	}
	else
	{
		//self.status = secs;
		secs = secs - 1;
		timerRunning = true;
		timerID = self.setTimeout("StartTheTimer()", delay);
	}
}

function openPopup(url, height, width, pageTitle){
	var left = (GetScreenWidth() / 2) - (width / 2);
	var top = (GetScreenHeight() / 2) - (height / 2);
	var attrib = "height=" + height + ",width=" + width + ",left=" + left + ",top=" + top + ",resizable,scrollbars";
	window.open(url,"",attrib);
}

function GetWindowWidth() {

	var frameWidth;
	
	if (top.innerWidth)
	{
		frameWidth = top.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		frameWidth = document.documentElement.clientWidth;
	}
	else if (document.body)
	{
		frameWidth = document.body.clientWidth;
	}
	
	return frameWidth;

}

function GetScreenWidth() {
	return self.screen.width;
}

function GetScreenHeight() {
	return self.screen.height;
}

function WindowOnload(f) {
	var prev = window.onload;
	window.onload = function() { if(prev) prev(); f(); }
}
  
/*function OpenMessageBox(pagetitle) {
	//openPopup("/AlertsMessageBoxPopup.aspx", 550, 650, pagetitle);	
	ShowPopup("/AlertsMessageBoxPopup.aspx","500", "300");
}*/
	
function ShowHideDiv(id)
{
	var e = document.getElementById(id);	
	if (e.style.display == 'block' || e.style.display == '')
	{
		e.style.display = 'none'; 
		return 0;
	}
	else
	{
		e.style.display = 'block'; 
		return 1;
	}
}

function HideDiv(id)
{
	var e = document.getElementById(id);	
	e.style.display = 'none'; 
}

function ShowDiv(id)
{
	var e = document.getElementById(id);	
	e.style.display = 'block';	
}

function ShowDivByElement(e)
{
	e.style.display = 'block';
}

function getFormValues(fobj, valFunc) 
{ 
	var str = ""; 
	var valueArr = null; 
	var val = ""; 
	var cmd = ""; 
	for(var i = 0;i < fobj.elements.length;i++) 
	{ 
		switch(fobj.elements[i].type) 
		{ 
			case "text": 
				if(valFunc) 
				{ 
					//use single quotes for argument so that the value of 
					//fobj.elements[i].value is treated as a string not a literal 
					cmd = valFunc + "(" + 'fobj.elements[i].value' + ")"; 
					val = eval(cmd);
				} 
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&"; 
				break; 

			case "select-one": 				
				str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
				break; 
			case "hidden":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&"; 
				break; 
			case "checkbox":
				if (fobj.elements[i].checked == true) {
					str += fobj.elements[i].name + "=on&"; 
				}
				break;
			default:
				//alert(fobj.elements[i].type);
				break; 
		} 
	} 
	str = str.substr(0,(str.length - 1)); 
	return str; 
}

function GetPopupLeft(popupWidth) {
	if (browserName = "IE")
		return (GetWindowWidth() / 2) - (popupWidth / 2);
	else
		return (GetWindowWidth() / 2) - (popupWidth);
}

function GetPopupTop(popupHeight) {
	return (GetWindowHeight() / 2) - (popupHeight);	
}

function CallThePoiLayer() {
	try
	{
		if (window.parent.parent.MAP)
			window.parent.parent.MAP.AddPoiLayer();
		
		if (window.parent.MAP)
			window.parent.MAP.AddPoiLayer();
	}
	catch(err)
	{
		//do nothing
	}
}

function CallTheNoGoZoneLayer() {
	try
	{
		if (window.parent.parent.MAP)
			window.parent.parent.MAP.AddNoGoZoneLayer();

		if (window.parent.MAP)
			window.parent.MAP.AddNoGoZoneLayer();
	}
	catch(err)
	{
		//do nothing
	}
}

function CallTheGeofenceLayer() {
	try
	{
		if (window.parent.parent.MAP)
			window.parent.parent.MAP.AddGeofenceLayer();
		
		if (window.parent.MAP)
			window.parent.MAP.AddGeofenceLayer();
	}
	catch(err)
	{
		//do nothing
	}
}

function resizeMapMenu() {
	var e;
	try
	{
		if (document.getElementById("mappopup")) {
			e = document.getElementById("mappopup");	
		} else if (window.parent.document.getElementById("mappopup")) {
			e = window.parent.document.getElementById("mappopup");	
		} else if (window.frames["imappopup"].document.getElementById("mappopup")) {
			e = window.frames["imappopup"].document.getElementById("mappopup");	
		}
	}	
	catch(err)
	{
		//do nothing
	}
	
	var e1;
	if (document.getElementById("mapmenu")) {
		e1 = document.getElementById("mapmenu");	
	} else if (window.parent.document.getElementById("mapmenu")) {
		e1 = window.parent.document.getElementById("mapmenu");	
	} else if (window.frames["imappopup"].document.getElementById("mapmenu")) {
		e1 = window.frames["imappopup"].document.getElementById("mapmenu");	
	}
	
	//this sortof works, but there are many details that need to be sorted first.
	//top.resizeMapPopup(e1.offsetWidth + 20, e1.offsetHeight + 35);
	
}

function getElement(id) {
	var e;
	if (document.getElementById(id)) {
		e = document.getElementById(id);	
	} else if (window.parent.document.getElementById(id)) {
		e = window.parent.document.getElementById(id);	
	} 
	
	if (!e) {
		if (parent.MAP) {
			if (parent.MAP.document.getElementById(id)) {
				e = parent.MAP.document.getElementById(id);
			}			
		}
	}
	
	if (!e) {
		if (parent.content) {
			if (parent.content.document.getElementById(id)) {
				e = parent.content.document.getElementById(id);
			}			
		}
	}
	
	return e;
}

//oElm = form element (it is the actuall element not the name).
//strTagName = element type eg. "input", "a"
//strAttributeName = attribute to find e.g. "foo"
//strAttributeValue = value that it will try and match. e.g. "bar"
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)", "i") : null;
    var oCurrent;
    var oAttribute;
    for(var i=0; i<arrElements.length; i++){
        oCurrent = arrElements[i];
        oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
        if(typeof oAttribute == "string" && oAttribute.length > 0){
            if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
                arrReturnElements.push(oCurrent);
            }
        }
    }
    return arrReturnElements;
}

function closePopup() {
	try
	{
		var e;
		if (document.getElementById("popup")) {
			e = document.getElementById("popup");	
		} else {
			e = window.parent.document.getElementById("popup");	
		}
		e.style.display = 'none';

		var iframe;
		if (document.getElementById("ipopup")) {
			iframe = document.getElementById('ipopup');
		} else {
			iframe = window.parent.document.getElementById('ipopup');
		}
	}
	catch(err)
	{
		txt="There was an error on this page.\n\n"
		txt+="Error description: " + err.description + "\n\n"
		txt+="Click OK to continue.\n\n"
		alert(txt)
	}		
}

function ShowDivPopup(inpt) {
	try
	{
		if (document.getElementById('popup')) {
			
			var e = document.getElementById('popup');
							
			var iframe = document.getElementById('ipopup');
			iframe.src = '/PackageAdminAddressPopup.aspx?returninput=' + inpt;
		
			var width = 600;
			var height = 400;
			resizePopup(width,height);
			ShowDiv('popup');			
			
			e.style.left = 0;
			e.style.top = 0 + 50;
		}
	}
	catch(err)
	{
		txt="There was an error on this page.\n\n"
		txt+="Error description: " + err.description + "\n\n"
		txt+="Click OK to continue.\n\n"
		alert(txt)
	}
	
	//alert(e.style.left);
}

function resizePopup(width, height) {
	var e = getElement("popup");	
	//e.style.width=width;
	//e.style.height=height;

	var iframe = getElement("ipopup");
	//iframe.style.width=width;
	//iframe.style.height=height;
}

function RandomizeUrl(url) {
	var ran_number= Math.random()*5; 
	url = url + '&rnd=' + ran_number; // doing this so the url changes and forces reload.
	
	return url;
}

function SerialiseXmlDoc(xmlDoc) {
	if(xmlDoc.responseXML.xml) { // ie
		return xmlDoc.responseXML.xml;
	} else { // firefox
		var s = new XMLSerializer();
		var d = xmlDoc.responseXML.documentElement;
		return s.serializeToString(d);
	}
}

function HideActionButtons() {
	var arr=document.getElementsByName("action");
	for(var i = 0; i < arr.length; i++) {
		arr[i].style.visibility = 'hidden';
	}
}

function GetMapFrame() {
	if (top.frames["containerFrame"].MAP)
		return top.frames["containerFrame"].MAP;
		
	if (top.window.frames["containerFrame"].MAP)
		return top.window.frames["containerFrame"].MAP;
		
	if (window.parent.parent.MAP)
		return window.parent.parent.MAP;

	if (window.parent.MAP)
		return window.parent.MAP;
}