﻿﻿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);
}

if (typeof AddEvent != 'function') {
    function AddEvent(strEvent, objSrc, objHandler) {
        if (window.addEventListener) {
            objSrc.addEventListener(strEvent, objHandler, false);
        }
        else {
            objSrc.attachEvent('on' + strEvent, objHandler);
        }
    }
}

if (typeof stopevent != 'function') {
    function stopevent(evt) {
        if (document.all) {//Trace('document.all');
            evt.returnValue = false;
            evt.cancelBubble = true;
        }
        if (evt.preventDefault) {//Trace('preventDefault');
            evt.preventDefault();
            evt.stopPropagation();
        }
    }
}


document.getElementsByClassName = function(cl, root) {
    var retnode = [];
    var myclass = new RegExp('(^|\\s)' + cl + '(\\s|$)');
    var elem = root.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
};

function hasClassName(el, strClassName) {
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    return oRegExp.test(el.className);

}

function GetScrollTop() {
    var nOffset = 0;
    if (document.body.scrollTop)
        return document.body.scrollTop;
    else
        return document.documentElement.scrollTop;
}

function GetScrollLeft() {
    if (document.body.scrollLeft)
        return document.body.scrollLeft;
    else
        return document.documentElement.scrollLeft;
}

function mouseCoords(ev) {
    if (ev.pageX || ev.pageY) {
        return { x: ev.pageX, y: ev.pageY };
    }
    return {
        x: ev.clientX + GetScrollLeft() - document.body.clientLeft,
        y: ev.clientY + GetScrollTop() - document.body.clientTop
    };
}

function getMouseOffset(target, ev) {
    ev = ev || window.event;

    var docPos = getPosition(target);
    var mousePos = mouseCoords(ev);
    return { x: mousePos.x - docPos.x, y: mousePos.y - docPos.y };
}

function getPosition(e) {
    var left = 0;
    var top = 0;
    while (e.offsetParent) {
        left += e.offsetLeft;
        top += e.offsetTop;
        e = e.offsetParent;
    }

    left += e.offsetLeft;
    top += e.offsetTop;

    return { x: left, y: top };
}


var m_bTraceContainerCreated = false;
var m_divTrace;
function Trace(strMessage) {
    if (!m_bTraceContainerCreated) {
        var objBody = document.getElementsByTagName('BODY')[0];
        m_divTrace = document.createElement('DIV');
        objBody.appendChild(m_divTrace);
        m_divTrace.innerHTML = 'TRACE <br />';
        m_bTraceContainerCreated = true;
        m_divTrace.style.position = 'absolute';
        m_divTrace.style.backgroundColor = '#f00';
        m_divTrace.style['color'] = 'white';
        m_divTrace.style.top = '0';
        m_divTrace.style.right = '0';
    }

    m_divTrace.innerHTML += strMessage + '<br />';
}

