Файл: billing/_rootmenu/utils.js
Строк: 552
<?php
var Zapatec = {};
Zapatec.Utils = {};
Zapatec.Utils.getAbsolutePos = function(el) {
    var SL = 0, ST = 0;
    var is_div = /^div$/i.test(el.tagName);
    if (is_div && el.scrollLeft)
        SL = el.scrollLeft;
    if (is_div && el.scrollTop)
        ST = el.scrollTop;
    var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
    if (el.offsetParent) {
        var tmp = this.getAbsolutePos(el.offsetParent);
        r.x += tmp.x;
        r.y += tmp.y;
    }
    return r;
};
Zapatec.Utils.fixBoxPosition = function(box) {
    if (box.x < 0)
        box.x = 0;
    if (box.y < 0)
        box.y = 0;
    var cp = Zapatec.Utils.createElement("div");
    var s = cp.style;
    s.position = "absolute";
    s.right = s.bottom = s.width = s.height = "0px";
    window.document.body.appendChild(cp);
    var br = Zapatec.Utils.getAbsolutePos(cp);
    window.document.body.removeChild(cp);
    if (Zapatec.is_ie) {
        br.y += window.document.body.scrollTop;
        br.x += window.document.body.scrollLeft;
    } else {
        br.y += window.scrollY;
        br.x += window.scrollX;
    }
    var tmp = box.x + box.width - br.x;
    if (tmp > 0) box.x -= tmp;
    tmp = box.y + box.height - br.y;
    if (tmp > 0) box.y -= tmp;
};
Zapatec.Utils.isRelated = function (el, evt) {
    evt || (evt = window.event);
    var related = evt.relatedTarget;
    if (!related) {
        var type = evt.type;
        if (type == "mouseover") {
            related = evt.fromElement;
        } else if (type == "mouseout") {
            related = evt.toElement;
        }
    }
    try {
        while (related) {
            if (related == el) {
                return true;
            }
            related = related.parentNode;
        }
    } catch(e) {};
    return false;
};
Zapatec.Utils.removeClass = function(el, className) {
    if (!(el && el.className)) {
        return;
    }
    var cls = el.className.split(" ");
    var ar = [];
    for (var i = cls.length; i > 0;) {
        if (cls[--i] != className) {
            ar[ar.length] = cls[i];
        }
    }
    el.className = ar.join(" ");
};
Zapatec.Utils.addClass = function(el, className) {
    Zapatec.Utils.removeClass(el, className);
    el.className += " " + className;
};
Zapatec.Utils.getElement = function(ev) {
    if (Zapatec.is_ie) {
        return window.event.srcElement;
    } else {
        return ev.currentTarget;
    }
};
Zapatec.Utils.getTargetElement = function(ev) {
    if (Zapatec.is_ie) {
        return window.event.srcElement;
    } else {
        return ev.target;
    }
};
Zapatec.Utils.stopEvent = function(ev) {
    ev || (ev = window.event);
    if (ev) {
        if (Zapatec.is_ie) {
            ev.cancelBubble = true;
            ev.returnValue = false;
        } else {
            ev.preventDefault();
            ev.stopPropagation();
        }
    }
    return false;
};
Zapatec.Utils.addEvent = function(el, evname, func) {
    if (el.attachEvent) {
        el.attachEvent("on" + evname, func);
    } else if (el.addEventListener) {
        el.addEventListener(evname, func, false);
    } else {
        el["on" + evname] = func;
    }
};
Zapatec.Utils.removeEvent = function(el, evname, func) {
    if (el.detachEvent) {
        el.detachEvent("on" + evname, func);
    } else if (el.removeEventListener) {
        el.removeEventListener(evname, func, false);
    } else {
        el["on" + evname] = null;
    }
};
Zapatec.Utils.createElement = function(type, parent) {
    var el = null;
    if (window.self.document.createElementNS)
        el = window.self.document.createElementNS("http://www.w3.org/1999/xhtml", type);
    else
        el = window.self.document.createElement(type);
    if (typeof parent != "undefined")
        parent.appendChild(el);
    if (Zapatec.is_ie)
        el.setAttribute("unselectable", true);
    if (Zapatec.is_gecko)
        el.style.setProperty("-moz-user-select", "none", "");
    return el;
};
Zapatec.Utils.writeCookie = function(name, value, domain, path, exp_days) {
    value = escape(value);
    var ck = name + "=" + value, exp;
    if (domain)
        ck += ";domain=" + domain;
    if (path)
        ck += ";path=" + path;
    if (exp_days) {
        exp = new Date();
        exp.setTime(exp_days * 86400000 + exp.getTime());
        ck += ";expires=" + exp.toGMTString();
    }
    document.cookie = ck;
};
Zapatec.Utils.getCookie = function(name) {
    var pattern = name + "=";
    var tokenPos = 0;
    while (tokenPos < document.cookie.length) {
        var valuePos = tokenPos + pattern.length;
        if (document.cookie.substring(tokenPos, valuePos) == pattern) {
            var endValuePos = document.cookie.indexOf(";", valuePos);
            if (endValuePos == -1) {
                endValuePos = document.cookie.length;
            }
            return unescape(document.cookie.substring(valuePos, endValuePos));
        }
        tokenPos=document.cookie.indexOf(" ",tokenPos)+1;
        if (tokenPos == 0) {
            break;
        }
    }
    return null;
};
Zapatec.Utils.makePref = function(obj) {
    function stringify(val) {
        if (typeof val == "object" && !val)
            return "null";
        else if (typeof val == "number" || typeof val == "boolean")
            return val;
        else if (typeof val == "string")
            return '"' + val.replace(/22/, "\22") + '"';
        else return null;
    };
    var txt = "", i;
    for (i in obj)
        txt += (txt ? ",'" : "'") + i + "':" + stringify(obj[i]);
    return txt;
};
Zapatec.Utils.loadPref = function(txt) {
    var obj = null;
    try {
        eval("obj={" + txt + "}");
    } catch(e) {}
    return obj;
};
Zapatec.Utils.mergeObjects = function(dest, src) {
    for (var i in src)
        dest[i] = src[i];
};
Zapatec.Utils.__wch_id = 0;
Zapatec.Utils.createWCH = function(element) {
    var f = null;
    element = element || window.self.document.body;
    if (Zapatec.is_ie && !Zapatec.is_ie5) {
        var filter = 'filter:progid:DXImageTransform.Microsoft.alpha(style=0,opacity=0);';
        var id = "WCH" + (++Zapatec.Utils.__wch_id);
        element.insertAdjacentHTML
            ('beforeEnd', '<iframe id="' + id + '" scroll="no" frameborder="0" ' +
             'style="z-index:0;position:absolute;visibility:hidden;' + filter +
             'border:0;top:0;left:0;width:0;height:0;" ' +
             'src="javascript:false;"></iframe>');
        f = window.self.document.getElementById(id);
    }
    return f;
};
Zapatec.Utils.setupWCH_el = function(f, el, el2) {
    if (f) {
        var pos = Zapatec.Utils.getAbsolutePos(el),
            X1 = pos.x,
            Y1 = pos.y,
            X2 = X1 + el.offsetWidth,
            Y2 = Y1 + el.offsetHeight;
        if (el2) {
            var p2 = Zapatec.Utils.getAbsolutePos(el2),
                XX1 = p2.x,
                YY1 = p2.y,
                XX2 = XX1 + el2.offsetWidth,
                YY2 = YY1 + el2.offsetHeight;
            if (X1 > XX1)
                X1 = XX1;
            if (Y1 > YY1)
                Y1 = YY1;
            if (X2 < XX2)
                X2 = XX2;
            if (Y2 < YY2)
                Y2 = YY2;
        }
        Zapatec.Utils.setupWCH(f, X1, Y1, X2-X1, Y2-Y1);
    }
};
Zapatec.Utils.setupWCH = function(f, x, y, w, h) {
    if (f) {
        var s = f.style;
        (typeof x != "undefined") && (s.left = x + "px");
        (typeof y != "undefined") && (s.top = y + "px");
        (typeof w != "undefined") && (s.width = w + "px");
        (typeof h != "undefined") && (s.height = h + "px");
        s.visibility = "inherit";
    }
};
Zapatec.Utils.hideWCH = function(f) {
    if (f)
        f.style.visibility = "hidden";
};
Zapatec.Utils.getPageScrollY = function() {
    return window.pageYOffset ||
            document.documentElement.scrollTop ||
            (document.body ? document.body.scrollTop : 0) ||
            0;
};
Zapatec.ScrollWithWindow = {};
Zapatec.ScrollWithWindow.list = [];
Zapatec.ScrollWithWindow.stickiness = 0.25;
Zapatec.ScrollWithWindow.register = function(node) {
    var top = parseInt(node.style.top) || 0;
    var scrollY = window.pageYOffset || document.body.scrollTop ||
        document.documentElement.scrollTop || 0;
    top -= scrollY;
    if (top < 0) top = 0;
    Zapatec.ScrollWithWindow.list[Zapatec.ScrollWithWindow.list.length] = {
        node: node,
        origTop: top
    };
};
Zapatec.ScrollWithWindow.unregister = function(node) {
    for (var count = 0; count < Zapatec.ScrollWithWindow.list.length; count++) {
        var elm = Zapatec.ScrollWithWindow.list[count];
        if (node == elm.node) {
            Zapatec.ScrollWithWindow.list.splice(count, 1);
            return;
        }
    }
};
Zapatec.ScrollWithWindow.handler = function(newScrollY) {
    oldScrollY += ((newScrollY - oldScrollY) * this.stickiness);
    if (Math.abs(oldScrollY - newScrollY) <= 1) oldScrollY = newScrollY;
    for (var count = 0; count < Zapatec.ScrollWithWindow.list.length; count++) {
        var elm = Zapatec.ScrollWithWindow.list[count];
        var node = elm.node;
        if (!elm.origTop) {
            elm.origTop = Zapatec.Utils.getAbsolutePos(node).y;
            node.style.position = 'absolute';
        }
        node.style.top = elm.origTop + parseInt(oldScrollY) + 'px';
    }
};
var oldScrollY = Zapatec.Utils.getPageScrollY();
setInterval(
    'var newScrollY = Zapatec.Utils.getPageScrollY(); ' +
    'if (newScrollY != oldScrollY) { ' +
        'Zapatec.ScrollWithWindow.handler(newScrollY); ' +
    '}', 50);
Zapatec.Utils.destroy = function(el) {
    if (el && el.parentNode)
        el.parentNode.removeChild(el);
};
Zapatec.Utils.newCenteredWindow = function(url, windowName, width, height, scrollbars){
    var leftPosition = 0;
    var topPosition = 0;
    if (screen.width)
        leftPosition = (screen.width -  width)/2;
    if (screen.height)
        topPosition = (screen.height -  height)/2;
    var winArgs =
        'height=' + height +
        ',width=' + width +
        ',top=' + topPosition +
        ',left=' + leftPosition +
        ',scrollbars=' + scrollbars +
        ',resizable';
    var win = window.open(url,windowName,winArgs);
    return win;
};
Zapatec.Utils.getWindowSize = function() {
    var winH = document.body.clientHeight || document.documentElement.clientHeight || window.innerHeight || 0;
    var winW = document.body.clientWidth || document.documentElement.clientWidth || window.innerWidth || 0;
    var dimension = {};
    dimension.height = winH;
    dimension.width = winW;
    return dimension;
}
Zapatec.Utils.selectOption = function(sel, val, call_default) {
    var a = sel.options, i, o;
    for (i = a.length; --i >= 0;) {
        o = a[i];
        o.selected = (o.val == val);
    }
    sel.value = val;
    if (call_default) {
        if (typeof sel.onchange == "function")
            sel.onchange();
        else if (typeof sel.onchange == "string")
            eval(sel.onchange);
    }
};
Zapatec.Utils.getNextSibling = function(el, tag, alternateTag) {
    el = el.nextSibling;
    if (!tag) {
        return el;
    }
    tag = tag.toLowerCase();
    if (alternateTag) alternateTag = alternateTag.toLowerCase();
    while (el) {
        if (el.nodeType == 1 && (el.tagName.toLowerCase() == tag ||
         (alternateTag && el.tagName.toLowerCase() == alternateTag))) {
            return el;
        }
        el = el.nextSibling;
    }
    return el;
};
Zapatec.Utils.getFirstChild = function(el, tag, alternateTag) {
    el = el.firstChild;
    if (!tag) {
        return el;
    }
    tag = tag.toLowerCase();
    if (el.nodeType == 1) {
        if (el.tagName.toLowerCase() == tag) {
            return el;
        } else if (alternateTag) {
            alternateTag = alternateTag.toLowerCase();
            if (el.tagName.toLowerCase() == alternateTag) {
                return el;
            }
        }
    }
    return Zapatec.Utils.getNextSibling(el, tag, alternateTag);
};
Zapatec.Utils.insertAfter = function(oldNode, newNode) {
    if(oldNode.nextSibling) {
        oldNode.parentNode.insertBefore(newNode, oldNode.nextSibling);
    } else {
        oldNode.parentNode.appendChild(newNode);
    }
}
Zapatec.Utils._ids = {};
Zapatec.Utils.generateID = function(code, id) {
    if (typeof id == "undefined") {
        if (typeof this._ids[code] == "undefined")
            this._ids[code] = 0;
        id = ++this._ids[code];
    }
    return "zapatec-" + code + "-" + id;
};
Zapatec.Utils.addTooltip = function(target, tooltip) {
return new Zapatec.Tooltip(target, tooltip);
};
Zapatec.isLite=true;
Zapatec.Utils.checkActivation = function() {
    return true;
}
Zapatec.is_opera = /opera/i.test(navigator.userAgent);
Zapatec.is_ie = ( /msie/i.test(navigator.userAgent) && !Zapatec.is_opera );
Zapatec.is_ie5 = ( Zapatec.is_ie && /msie 5.0/i.test(navigator.userAgent) );
Zapatec.is_mac_ie = ( /msie.*mac/i.test(navigator.userAgent) && !Zapatec.is_opera );
Zapatec.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);
Zapatec.is_konqueror = /Konqueror/i.test(navigator.userAgent);
Zapatec.is_gecko = /Gecko/i.test(navigator.userAgent);
if (!Function.prototype.call) {
    Function.prototype.call = function () {
        var self = arguments[0];
        self._this_func = this;
        var args = new Array();
        for (var i=1; i < arguments.length; i++) {
            args[args.length] = 'arguments[' + i + ']';
        }
        var ret = eval('self._this_func(' + args.join(',') + ')');
        self._this_func = null;
        return ret;
    };
}
if (!Array.prototype.pop) {
    Array.prototype.pop = function() {
        var last;
        if (this.length) {
            last = this[this.length - 1];
            this.length -= 1;
        }
        return last;
    };
}
if (!Array.prototype.push) {
    Array.prototype.push = function() {
        for (var i = 0; i < arguments.length; ++i) {
            this[this.length] = arguments[i];
        }
        return this.length;
    };
}
if (!Array.prototype.shift) {
    Array.prototype.shift = function() {
        var first;
        if (this.length) {
            first = this[0];
            for (var i = 0; i < this.length - 1; ++i) {
                this[i] = this[i + 1];
            }
            this.length -= 1;
        }
        return first;
    };
}
if (!Array.prototype.unshift) {
    Array.prototype.unshift = function() {
        if (arguments.length) {
            var i, len = arguments.length;
            for (i = this.length + len - 1; i >= len; --i) {
                this[i] = this[i - len];
            }
            for (i = 0; i < len; ++i) {
                this[i] = arguments[i];
            }
        }
        return this.length;
    };
}
if (!Array.prototype.splice) {
    Array.prototype.splice = function(index, howMany) {
        var elements = [], removed = [], i;
        for (i = 2; i < arguments.length; ++i) {
            elements.push(arguments[i]);
        }
        for (i = index; (i < index + howMany) && (i < this.length); ++i) {
            removed.push(this[i]);
        }
        for (i = index + howMany; i < this.length; ++i) {
            this[i - howMany] = this[i];
        }
        this.length -= removed.length;
        for (i = this.length + elements.length - 1; i >= index + elements.length; --i) {
            this[i] = this[i - elements.length];
        }
        for (i = 0; i < elements.length; ++i) {
            this[index + i] = elements[i];
        }
        return removed;
    };
}
?>