﻿function AttachPopup(elName, popWidth, popHeight, popHtml) {
    var el = document.getElementById(elName);
    if (el) {
        el.alt = "";
        el.setAttribute("popHtml", popHtml);
        el.setAttribute("popWidth", popWidth);
        el.setAttribute("popHeight", popHeight);
        el.onmousemove = ShowPopup;
        el.onmouseover = ShowPopup;
        el.onmouseout = HidePopup;
        el.onclick = StickPopup;
    }
}

function ShowPopup(ev) {
    var e = (window.event ? window.event : ev);
    var source = (e.srcElement ? e.srcElement : e.target)
    var popupId = "popup" + source.id;
    var popup = document.getElementById(popupId);
    if (!popup) {
        popup = document.createElement("div");
        popup.id = popupId;
        popup.className = "popup";
        popup.style.width = source.getAttribute("popWidth") + "px";
        popup.style.height = source.getAttribute("popHeight") + "px";
        popup.setAttribute("opacity", 0);
        popup.innerHTML = source.getAttribute("popHtml");
        popup.onclick = ClosePopup;
        document.body.appendChild(popup);
        AnimatePopup(popup.id);
    }
    var popTop = parseInt(document.documentElement.scrollTop + e.clientY);
    if (popTop + parseInt(popup.style.height) + 25 < document.documentElement.clientHeight ) {
        popup.style.top = popTop + 20 + "px";
    }
    else {
        popup.style.top = popTop - 20 - parseInt(popup.style.height) + "px";
    }
    var popLeft = parseInt(document.documentElement.scrollLeft + e.clientX);
    if (popLeft + parseInt(popup.style.width) + 25 < document.documentElement.clientWidth) {
        popup.style.left = popLeft + 10 + "px";
    }
    else {
        popup.style.left = popLeft - 10 - parseInt(popup.style.width) + "px";
    }
}

function AnimatePopup(id) {
    var popup = document.getElementById(id);
    if (popup) {
        var opacity = popup.getAttribute("opacity");
        if (opacity < 100) {
            opacity++;
            popup.setAttribute("opacity", opacity);
            popup.style.opacity = opacity / 100; 
            popup.style.filter = "alpha(opacity=" + opacity + ")";
            setTimeout("AnimatePopup('" + id + "')", 5);
        }
    }
}

function HidePopup(ev) {
    var e = (window.event ? window.event : ev);
    var source = (e.srcElement ? e.srcElement : e.target)
    var popupId = "popup" + source.id;
    if (document.getElementById(popupId)) {
        document.body.removeChild(document.getElementById(popupId));
    }
}

function StickPopup(ev) {
    var e = (window.event ? window.event : ev);
    var source = (e.srcElement ? e.srcElement : e.target)
    source.onmouseover = null;
    source.onmousemove = null;
    source.onmouseout = null;
}

function ClosePopup(ev) {
    var e = (window.event ? window.event : ev);
    var source = (e.srcElement ? e.srcElement : e.target)

    if (source) {
        var popParent = source.id.substring(5);
        document.body.removeChild(source);
        var el = document.getElementById(popParent);
        if (el) {
            el.onmousemove = ShowPopup;
            el.onmouseover = ShowPopup;
            el.onmouseout = HidePopup;
            el.onclick = StickPopup;
        }
    }
}

function PreloadImage(url) {
    if (document.images) {
        pic1 = new Image();
        pic1.src = url;
    }
}

function OpenForPrint() {
    var height = screen.height;
    var newWin = window.open(window.location.href + "?version=printer", "newWin", "location=0, status=0, menubar=1, scrollbars=1, resizable=1, width=800, height=" + height);
    newWin.moveTo(0, 0)
}

function PrintPage() {
    if (window.print) {
        window.print();
    }
}

function IsPrinterFriendly() {
    if (window.location.search.indexOf("version=printer", 0) > 0) {
        return true;
    }
    else {
        return false;
    }
}

function ChangeFontSize(size) {
    document.body.style.fontSize = size + "em";
    CreateCookie("fs", size , 7);
}

function LoadFontSize() {
    var size = ReadCookie("fs");
    if (size && !isNaN(size) && document.body.style.fontSize != size + "em") {
        document.body.style.fontSize = size + "em";
    }
}


function CreateCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function ReadCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function EraseCookie(name) {
    createCookie(name, "", -1);
}

function ToggleDisplay(elName) {
    var el = document.getElementById(elName);
    if (el) {
        if (el.style.display == "none") {
            el.style.display = "";
        }
        else {
            el.style.display = "none";
        }
    }
    
}
