﻿function ShowHide(elementID) {
    var element = document.getElementById(elementID);
    if (element.style.display != "block") {
        element.style.display = "block";
    }
    else {
        element.style.display = "none";
    }
}
//===== FadeInFadeOut ===
var TimeToFade = 250.0;
function fade(elementID) {
    var element = document.getElementById(elementID);
    if (element == null)
        return;

    if (element.FadeState == null) {
        if (element.style.opacity == null || element.style.opacity == ''
       || element.style.opacity == '1')
            element.FadeState = 2;
        else
            element.FadeState = -2;
    }

    if (element.FadeState == 1 || element.FadeState == -1) {
        element.FadeState = element.FadeState == 1 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
    }
    else {
        element.FadeState = element.FadeState == 2 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade;
        setTimeout("animateFade(" + new Date().getTime() + ",'" + elementID + "')", 33);
    }
}
//===== aminateFade ===
function animateFade(lastTick, elementID) {
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;

    var element = document.getElementById(elementID);

    if (element.FadeTimeLeft <= elapsedTicks) {
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        if (element.style.opacity == 0) 
            element.style.display = "none";
        return;
    }

    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft / TimeToFade;
    if (element.FadeState == 1)
        newOpVal = 1 - newOpVal;
    if (element.style.opacity != 0) 
        element.style.display = "block";

    element.style.opacity = newOpVal;
    element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';

    setTimeout("animateFade(" + curTick + ",'" + elementID + "')", 33);
}
//===== TimeStamp ===
function TimeStamp() {
    setInterval(TimeStamp, 1000);
    var stamp = new Date();
    var hours = stamp.getHours();
    var mins = stamp.getMinutes();
    var secs = stamp.getSeconds();
    //if (hours < 10) {
    //    hours = "0" + hours;
    //}
    if (mins < 10) {
        mins = "0" + mins;
    }
    if (secs < 10) {
        secs = "0" + secs;
    }
    var currtime = hours + ":" + mins + ":" + secs;
    var element = document.getElementById("timestampelement");
    element.innerHTML = currtime;
}
//===== UpdateProgress ===
function ShowUpdateProgress(elementID, progelementID) {
    var element = document.getElementById(elementID);
    var progelement = document.getElementById(progelementID);
    
    element.innerHTML = progelement.innerHTML;
}
//===== Ajax ===
var xmlHttp;
var upPanelID;
var upProgressID;
function AjaxRequest(RequestADR, UpdatePanelID, UpdateProgressID, RequestParams) {
    upPanelID = UpdatePanelID;
    upProgressID = UpdateProgressID;
    
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null) {
        alert("Your browser does not support AJAX!");
        return;
    }
    var rnd = Math.random();
    if (RequestParams != null) {
        var url = RequestADR + "?" + RequestParams + "&rnd=" + rnd;
    }
    else {
        var url = RequestADR + "?rnd=" + rnd;
    }

    xmlHttp.onreadystatechange = stateChanged;
    xmlHttp.open("POST", url, true);
    //xmlHttp.setRequestHeader("Content-Type", "text/html; charset=utf-8")
    xmlHttp.send(null);
}
function stateChanged() {
    if (xmlHttp.readyState == 4) {
        document.getElementById(upPanelID).innerHTML = xmlHttp.responseText;
        //var xmlDoc = xmlHttpObj.responseXML;
        //var result = xmlDoc.lastChild.childNodes[0].nodeValue;
        //document.getElementById(upPanelID).childNodes[0].nodeValue = "Result: " + result;
        //var xmlDoc = xmlHttp.responseXML;
        //var node = doc.selectSingleNode("//Customers/Customer/Firstname/text()");
        //xmlDoc.selectSingleNode("//html/body/form/text()");
        //document.getElementById(upPanelID).innerHTML = xmlDoc.nodeValue;
    }
    else {
        document.getElementById(upPanelID).innerHTML = document.getElementById(upProgressID).innerHTML;
    }
}
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;
}
//===== Show as popup ===
function showPopup(elementID, e, xOffset, yOffset, align) {
    var element = document.getElementById(elementID);
    var Offset = { x: xOffset, y: yOffset };
    element.style.position = "absolute";
    if (align == "right") {
        element.style.right = getPosition(e).x + Offset.x;
    }
    else {
        element.style.left = getPosition(e).x + Offset.x;
    }
    element.style.top = getPosition(e).y + Offset.y;
    element.style.display = "block";
}
function hidePopup(elementID) {
    var element = document.getElementById(elementID);
    element.style.display = "none";
}
//===== Get current cursor position ===
function getPosition(e) {
    e = e || window.event;
    var cursor = { x: 0, y: 0 };
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    }
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX +
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY +
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}

