﻿// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all ? true : false;

// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE);

// Set-up to use getMouseXY function onMouseMove
//document.onmousemove = getMouseXY;

var mouseX = 0;
var mouseY = 0;

function getMouseXY(e) {
    if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		mouseX = e.pageX;
		mouseY = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
	    mouseX = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		mouseY = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
    if (mouseX < 0) { mouseX = 0; }
    if (mouseY < 0) { mouseY = 0; }
    return true
}

function f_clientWidth() {
    return f_filterResults(
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
    return f_filterResults(
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
    return f_filterResults(
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
    return f_filterResults(
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
    var n_result = n_win ? n_win : 0;
    if (n_docel && (!n_result || (n_result > n_docel)))
        n_result = n_docel;
    return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function showpopup(e, popup) {
    var iScrollTop = 0;
    var iClientHeight = 0;
    var iClientWidth = 0;

    iScrollTop = f_filterResults(
		        window.pageYOffset ? window.pageYOffset : 0,
		        document.documentElement ? document.documentElement.scrollTop : 0,
		        document.body ? document.body.scrollTop : 0
	        );
    iClientHeight = f_filterResults(
		        window.innerHeight ? window.innerHeight : 0,
		        document.documentElement ? document.documentElement.clientHeight : 0,
		        document.body ? document.body.clientHeight : 0
	        );
    iClientWidth = f_filterResults(
	    	    window.innerWidth ? window.innerWidth : 0,
		        document.documentElement ? document.documentElement.clientWidth : 0,
		        document.body ? document.body.clientWidth : 0
	        );
    oPopup = document.getElementById(popup);
    if (oPopup.style.pixelHeight > 0) {
        oPopup.style.top = (iScrollTop + ((iClientHeight / 2) - (oPopup.style.pixelHeight / 2))) + "px";
        oPopup.style.left = ((iClientWidth / 2) - (oPopup.style.pixelWidth / 2)) + "px";
        oPopup.style.display = "block";
    }
    else {
        oPopup.style.display = "block";
        oPopup.style.top = (iScrollTop + ((iClientHeight / 2) - (oPopup.style.height.replace("px", "") / 2))) + "px";
        oPopup.style.left = ((iClientWidth / 2) - (oPopup.style.width.replace("px", "") / 2)) + "px";
    }
    oShader = document.getElementById("dShader");
    oShader.style.height = Math.max(
            Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
            Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
            Math.max(document.body.clientHeight, document.documentElement.clientHeight)
        ) + "px";
    oShader.style.display = "block";
}

function hidepopup(popup) {
    oPopup = document.getElementById(popup);
    oShader = document.getElementById("dShader");
    oPopup.style.display = "none";
    oShader.style.display = "none";
}

function layoutMenus(){
    var ultags=document.getElementById("mainnav").getElementsByTagName("ul")[0].getElementsByTagName("ul");
  
    for (var m=0; m<ultags.length; m++)
    {
        if (ultags[m].parentNode.parentNode.parentNode.id=="mainnav")
        { 
	        ultags[m].style.top=ultags[m].parentNode.offsetHeight+"px";
	        ultags[m].style.left=ultags[m].parentNode.offsetLeft+"px";
	    }
	    ultags[m].parentNode.onmouseover=function(){ this.getElementsByTagName("ul")[0].style.visibility="visible"; }
	    ultags[m].parentNode.onmouseout=function(){ this.getElementsByTagName("ul")[0].style.visibility="hidden"; }
    }
}

function makeRequest(url, callback) {
    makeAjaxRequest(url, "GET", "", callback, "");
}

function makeAjaxRequest(url, type, postdata, callback, params) {
    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');
            // See note below about this line
        }
    } 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('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    if (params != "") {
        http_request.onreadystatechange = function() { alertParameteredContents(http_request, callback, params); };
    }
    else {
        http_request.onreadystatechange = function() { alertContents(http_request, callback); };
    }
    
    if (type == "GET") {
        http_request.open('GET', url, true);
        http_request.send(null);
    }
    else {
        http_request.open('POST', url, true);
        http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http_request.setRequestHeader("Content-length", postdata.length);
        http_request.setRequestHeader("Connection", "close");
        http_request.send(postdata);
    }
}

function makePOSTRequest(url, callback, parameters) {
    makeAjaxRequest(url, "POST", parameters, callback, "");
}

function alertContents(http_request, callback) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            callback(http_request.responseText);
        } else {
            alert("There was a problem with the request." + http_request.status);
            return false;
        }
    }
}

function alertParameteredContents(http_request, callback, params) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            callback(http_request.responseText, params);
        } else {
            alert("There was a problem with the request." + http_request.status);
            return false;
        }
    }
}