﻿var isOpera = false;
var ua = navigator.userAgent.toLowerCase();

var KO = ua.match(/konqueror\/(\d+)/);
var KO3 = KO && KO[1] == 3;
var SA = ua.match(/safari\/(\d+)/);
var SA1 = SA && SA[1] < 86;

KO = !!KO;
SA = !!SA;

var MAC = /mac/.test(ua);
var OP = !!self.opera
var WEBTV = /webtv/.test(ua);
var IE = /msie/.test(ua) && !OP && !WEBTV && !SA && !KO;
var GK = /gecko/.test(ua)
var OP8 = /opera 8/.test(ua) && OP;
var NN4 = false;
var NS6 = ua.indexOf("netscape6/6") != -1;
var IE4 = IE && !document.getElementById;
var IE5 = IE && ![].push && !IE4;
var isGecko = GK;
var ML;
var MM;
var MR;
function MenuHighlighed(anchor, ml, mm, mr, sm) {
    displaymenu(anchor, sm);
    ML = document.getElementById(ml);
    ML.className = "ml_g";
    MM = document.getElementById(mm);
    MM.className = "mm_g";
    MR = document.getElementById(mr);
    MR.className = "mr_g";
}
function MenuDefault() {
    if (ML) ML.className = "ml";
    if (MM) MM.className = "mm";
    if (MR) MR.className = "mr";
}
function getposOffset(overlayobj, offsettype) {
    if (isOpera)
        return;
    var totaloffset = (offsettype == "left") ? overlayobj.offsetLeft + 4 : overlayobj.offsetTop;
    var parentEl = overlayobj.offsetParent;
    while (parentEl != null) {
        totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft + 4 : totaloffset + parentEl.offsetTop;
        parentEl = parentEl.offsetParent;
    }
    return totaloffset;
}

function cascadedstyle(el, cssproperty, csspropertyNS) {
    if (window.getComputedStyle) {
        var elstyle = window.getComputedStyle(el, "")
        var ret = elstyle.getPropertyValue(csspropertyNS);
        if (ret)
            return ret;
        return elstyle.getPropertyValue(cssproperty);
    }
    if (el.currentStyle)
        return el.currentStyle[cssproperty]
}

function ConvertColorValue(color1) {
    if (document.ids)
        color1 = "#00000".substr(0, (7 - color1.toString(16).length)) + color1.toString(16);
    else if (color1.indexOf('rgb') > -1) {
        color1 = color1.split("(")[1].split(")")[0].split(",");
        for (i = 0; i < 3; i++)
            color1[i] = (color1[i] * 1).toString(16);
        color1 = "#" + color1.join("");
    }
    return color1;
}

function getElementsBySelector(selector) {
    var i;
    var s = [];
    var selid = "";
    var selclass = "";
    var tag = selector;
    var objlist = [];
    if (selector.indexOf(" ") > 0) {  //descendant selector like "tag#id tag"
        s = selector.split(" ");
        var fs = s[0].split("#");
        if (fs.length == 1) return (objlist);
        return (document.getElementById(fs[1]).getElementsByTagName(s[1]));
    }
    if (selector.indexOf("#") > 0) { //id selector like "tag#id"
        s = selector.split("#");
        tag = s[0];
        selid = s[1];
    }
    if (selid != "") {
        objlist.push(document.getElementById(selid));
        return (objlist);
    }
    if (selector.indexOf(".") > 0) {  //class selector like "tag.class"
        s = selector.split(".");
        tag = s[0];
        selclass = s[1];
    }
    var v = document.getElementsByTagName(tag);  // tag selector like "tag"
    if (selclass == "")
        return (v);
    for (i = 0; i < v.length; i++) {
        if (v[i].className == selclass)
            objlist.push(v[i]);
    }
    return (objlist);
}

var openoverlay = null;

function switchhoveron(object) {
    object.className = object.className + 'hover';
}
function switchhoveroff(object, classname) {
    object.className = object.className.replace(/hover/g, "");
}

function overlay(anchorobj, subobj, widthcorrect, disablewidthcheck, leftadjustment) {
    if (isOpera)
        return;

    if (openoverlay)
        overlayclose(openoverlay);

    subobj.style.display = "block";
    if (!disablewidthcheck) {
        var availwidth = parseInt(document.body.offsetWidth, 10) - parseInt(getposOffset(anchorobj, "left"), 10);

        var minwidth = parseInt(subobj.offsetWidth, 10);
        if (widthcorrect)
            minwidth += widthcorrect;

        var left;
        if (minwidth > availwidth)
            left = (parseInt(document.body.offsetWidth, 10) - minwidth);
        else
            left = getposOffset(anchorobj, "left");
    }
    else
        left = getposOffset(anchorobj, "left");

    subobj.style.left = left - leftadjustment + "px";
    subobj.style.top = (getposOffset(anchorobj, "top") - 1) + anchorobj.offsetHeight + "px";

    var subDivIframe = document.getElementById('divIframe');
    subDivIframe.style.left = subobj.style.left;
    subDivIframe.style.width = subobj.offsetWidth;
    subDivIframe.style.top = subobj.style.top;
    subDivIframe.style.height = subobj.offsetHeight;

    subDivIframe.style.display = "block";

    if (document.getElementById('iframeInv')) {
        var subIframe = document.getElementById('iframeInv')
        subIframe.style.left = subobj.style.left;
        subIframe.style.top = subobj.style.top;
        subIframe.style.width = subobj.offsetWidth;
        subIframe.style.height = subobj.offsetHeight;
    }
    openoverlay = subobj;
}

function overlayclose(subobj) {
    if (isOpera)
        return;
    openoverlay = null;
    subobj.style.display = "none";
    document.getElementById('divIframe').style.display = "none"; 
    MenuDefault();
}

function displaymenu(anchorobj, menuname) {
    var menuobj = document.getElementById(menuname);
    if (!menuobj)
        return;

    menuobj.style.display = "block";

    if (parseInt(anchorobj.offsetWidth, 10) > parseInt(menuobj.offsetWidth, 10)) {
        var width;
        if (IE)
            width = parseInt(anchorobj.offsetWidth, 10) - 8;
        else
            width = parseInt(anchorobj.offsetWidth, 10) - 8;
        menuobj.style.width = width;
    }

//    var color = cascadedstyle(anchorobj, "backgroundColor", "background-color");
//    menuobj.style.borderLeft = 'solid 1px ' + color;
//    menuobj.style.borderRight = menuobj.style.borderLeft;
//    menuobj.style.borderBottom = menuobj.style.borderLeft;
//    menuobj.style.borderTop = menuobj.style.borderLeft;

    if (IE)
        overlay(anchorobj, menuobj, 16, false, 14);
    else
        overlay(anchorobj, menuobj, null, false, 14);

    document.onmousemove = function(evt) {
        if (isOpera)
            return;

        evt = (evt) ? evt : ((window.event) ? window.event : "");
        var elem = (evt.target) ? evt.target : evt.srcElement;

        if (!ismouseoverelement(anchorobj, evt.clientX, evt.clientY) && !ismouseoverelement(menuobj, evt.clientX, evt.clientY)) {
            overlayclose(menuobj);
            document.onmousemove = null;
        }
    }
}

function hovermenu(element, colorbasename) {
    if (!element) return;
    var elobj = (typeof element == 'string') ? document.getElementById(element) : element;
    var menuobj = (typeof colorbasename == 'string') ? document.getElementById(colorbasename) : colorbasename;
    var color = cascadedstyle(menuobj, "backgroundColor", "background-color");
    elobj.style.backgroundColor = color;
    color = cascadedstyle(menuobj, "Color", "color");
    elobj.style.color = color;
}

//function unhovermenu(element, colorbasename) {
//    hovermenu(element, colorbasename);
//}

function ismouseoverelement(element, x, y) {
    if (!element)
        return;
    var LeftSide = getposOffset(element, "left");
    var RightSide = parseInt(LeftSide, 10) + parseInt(element.offsetWidth, 10);

    var HeightTop = getposOffset(element, "top");
    var HeightBottom = parseInt(HeightTop, 10) + parseInt(element.offsetHeight, 10);

    var scrollLeft = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
    var scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
    if ((x < LeftSide - scrollLeft || x > RightSide - scrollLeft) || (y < HeightTop - scrollTop || y > HeightBottom - scrollTop))
        return false;
    return true;
}

function getElementPosition(obj) {
    var position = new Object();
    position.pxleft = 0;
    position.pxtop = 0;
    while (obj) {
        if (obj.scrollTop) position.pxtop -= parseInt(obj.scrollTop);
        if (obj.scrollLeft) position.pxleft -= parseInt(obj.scrollLeft);
        position.pxleft = position.pxleft + parseInt(obj.offsetLeft);
        position.pxtop = position.pxtop + parseInt(obj.offsetTop);
        obj = obj.offsetParent;
    }
    return position;
}