AJS = {
    BASE_URL: "",
    drag_obj: null,
    drag_elm: null,
    _drop_zones: [],
    _cur_pos: null,
    getScrollTop: function(){
        var t;
        if (document.documentElement && document.documentElement.scrollTop) {
            t = document.documentElement.scrollTop;
        }
        else {
            if (document.body) {
                t = document.body.scrollTop;
            }
        }
        return t;
    },
    addClass: function(){
        var _2 = AJS.forceArray(arguments);
        var _3 = _2.pop();
        var _4 = function(o){
            if (!new RegExp("(^|\\s)" + _3 + "(\\s|$)").test(o.className)) {
                o.className += (o.className ? " " : "") + _3;
            }
        };
        AJS.map(_2, function(_6){
            _4(_6);
        });
    },
    setStyle: function(){
        var _7 = AJS.forceArray(arguments);
        var _8 = _7.pop();
        var _9 = _7.pop();
        AJS.map(_7, function(_a){
            _a.style[_9] = AJS.getCssDim(_8);
        });
    },
    extend: function(_b){
        var _c = new this("no_init");
        for (k in _b) {
            var _d = _c[k];
            var _e = _b[k];
            if (_d && _d != _e && typeof _e == "function") {
                _e = this._parentize(_e, _d);
            }
            _c[k] = _e;
        }
        return new AJS.Class(_c);
    },
    log: function(o){
        if (window.console) {
            console.log(o);
        }
        else {
            var div = AJS.$("ajs_logger");
            if (!div) {
                div = AJS.DIV({
                    id: "ajs_logger",
                    "style": "color: green; position: absolute; left: 0"
                });
                div.style.top = AJS.getScrollTop() + "px";
                AJS.ACN(AJS.getBody(), div);
            }
            AJS.setHTML(div, "" + o);
        }
    },
    setHeight: function(){
        var _11 = AJS.forceArray(arguments);
        _11.splice(_11.length - 1, 0, "height");
        AJS.setStyle.apply(null, _11);
    },
    _getRealScope: function(fn, _13){
        _13 = AJS.$A(_13);
        var _14 = fn._cscope || window;
        return function(){
            var _15 = AJS.$FA(arguments).concat(_13);
            return fn.apply(_14, _15);
        };
    },
    documentInsert: function(elm){
        if (typeof(elm) == "string") {
            elm = AJS.HTML2DOM(elm);
        }
        document.write("<span id=\"dummy_holder\"></span>");
        AJS.swapDOM(AJS.$("dummy_holder"), elm);
    },
    getWindowSize: function(doc){
        doc = doc || document;
        var _18, _19;
        if (self.innerHeight) {
            _18 = self.innerWidth;
            _19 = self.innerHeight;
        }
        else {
            if (doc.documentElement && doc.documentElement.clientHeight) {
                _18 = doc.documentElement.clientWidth;
                _19 = doc.documentElement.clientHeight;
            }
            else {
                if (doc.body) {
                    _18 = doc.body.clientWidth;
                    _19 = doc.body.clientHeight;
                }
            }
        }
        return {
            "w": _18,
            "h": _19
        };
    },
    flattenList: function(_1a){
        var r = [];
        var _1c = function(r, l){
            AJS.map(l, function(o){
                if (o == null) {
                }
                else {
                    if (AJS.isArray(o)) {
                        _1c(r, o);
                    }
                    else {
                        r.push(o);
                    }
                }
            });
        };
        _1c(r, _1a);
        return r;
    },
    isFunction: function(obj){
        return (typeof obj == "function");
    },
    setEventKey: function(e){
        e.key = e.keyCode ? e.keyCode : e.charCode;
        if (window.event) {
            e.ctrl = window.event.ctrlKey;
            e.shift = window.event.shiftKey;
        }
        else {
            e.ctrl = e.ctrlKey;
            e.shift = e.shiftKey;
        }
        switch (e.key) {
            case 63232:
                e.key = 38;
                break;
            case 63233:
                e.key = 40;
                break;
            case 63235:
                e.key = 39;
                break;
            case 63234:
                e.key = 37;
                break;
        }
    },
    removeElement: function(){
        var _22 = AJS.forceArray(arguments);
        AJS.map(_22, function(elm){
            AJS.swapDOM(elm, null);
        });
    },
    _unloadListeners: function(){
        if (AJS.listeners) {
            AJS.map(AJS.listeners, function(elm, _25, fn){
                AJS.REV(elm, _25, fn);
            });
        }
        AJS.listeners = [];
    },
    join: function(_27, _28){
        try {
            return _28.join(_27);
        } 
        catch (e) {
            var r = _28[0] || "";
            AJS.map(_28, function(elm){
                r += _27 + elm;
            }, 1);
            return r + "";
        }
    },
    getIndex: function(elm, _2c, _2d){
        for (var i = 0; i < _2c.length; i++) {
            if (_2d && _2d(_2c[i]) || elm == _2c[i]) {
                return i;
            }
        }
        return -1;
    },
    isIn: function(elm, _30){
        var i = AJS.getIndex(elm, _30);
        if (i != -1) {
            return true;
        }
        else {
            return false;
        }
    },
    isArray: function(obj){
        return obj instanceof Array;
    },
    setLeft: function(){
        var _33 = AJS.forceArray(arguments);
        _33.splice(_33.length - 1, 0, "left");
        AJS.setStyle.apply(null, _33);
    },
    appendChildNodes: function(elm){
        if (arguments.length >= 2) {
            AJS.map(arguments, function(n){
                if (AJS.isString(n)) {
                    n = AJS.TN(n);
                }
                if (AJS.isDefined(n)) {
                    elm.appendChild(n);
                }
            }, 1);
        }
        return elm;
    },
    getElementsByTagAndClassName: function(_36, _37, _38, _39){
        var _3a = [];
        if (!AJS.isDefined(_38)) {
            _38 = document;
        }
        if (!AJS.isDefined(_36)) {
            _36 = "*";
        }
        var els = _38.getElementsByTagName(_36);
        var _3c = els.length;
        var _3d = new RegExp("(^|\\s)" + _37 + "(\\s|$)");
        for (i = 0, j = 0; i < _3c; i++) {
            if (_3d.test(els[i].className) || _37 == null) {
                _3a[j] = els[i];
                j++;
            }
        }
        if (_39) {
            return _3a[0];
        }
        else {
            return _3a;
        }
    },
    isOpera: function(){
        return (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
    },
    isString: function(obj){
        return (typeof obj == "string");
    },
    hideElement: function(elm){
        var _40 = AJS.forceArray(arguments);
        AJS.map(_40, function(elm){
            elm.style.display = "none";
        });
    },
    setOpacity: function(elm, p){
        elm.style.opacity = p;
        elm.style.filter = "alpha(opacity=" + p * 100 + ")";
    },
    insertBefore: function(elm, _45){
        _45.parentNode.insertBefore(elm, _45);
        return elm;
    },
    setWidth: function(){
        var _46 = AJS.forceArray(arguments);
        _46.splice(_46.length - 1, 0, "width");
        AJS.setStyle.apply(null, _46);
    },
    createArray: function(v){
        if (AJS.isArray(v) && !AJS.isString(v)) {
            return v;
        }
        else {
            if (!v) {
                return [];
            }
            else {
                return [v];
            }
        }
    },
    isDict: function(o){
        var _49 = String(o);
        return _49.indexOf(" Object") != -1;
    },
    isMozilla: function(){
        return (navigator.userAgent.toLowerCase().indexOf("gecko") != -1 && navigator.productSub >= 20030210);
    },
    removeEventListener: function(elm, _4b, fn, _4d){
        var _4e = "ajsl_" + _4b + fn;
        if (!_4d) {
            _4d = false;
        }
        fn = elm[_4e] || fn;
        if (elm["on" + _4b] == fn) {
            elm["on" + _4b] = elm[_4e + "old"];
        }
        if (elm.removeEventListener) {
            elm.removeEventListener(_4b, fn, _4d);
            if (AJS.isOpera()) {
                elm.removeEventListener(_4b, fn, !_4d);
            }
        }
        else {
            if (elm.detachEvent) {
                elm.detachEvent("on" + _4b, fn);
            }
        }
    },
    callLater: function(fn, _50){
        var _51 = function(){
            fn();
        };
        window.setTimeout(_51, _50);
    },
    setTop: function(){
        var _52 = AJS.forceArray(arguments);
        _52.splice(_52.length - 1, 0, "top");
        AJS.setStyle.apply(null, _52);
    },
    _createDomShortcuts: function(){
        var _53 = ["ul", "li", "td", "tr", "th", "tbody", "table", "input", "span", "b", "a", "div", "img", "button", "h1", "h2", "h3", "h4", "h5", "h6", "br", "textarea", "form", "p", "select", "option", "optgroup", "iframe", "script", "center", "dl", "dt", "dd", "small", "pre", "i"];
        var _54 = function(elm){
            AJS[elm.toUpperCase()] = function(){
                return AJS.createDOM.apply(null, [elm, arguments]);
            };
        };
        AJS.map(_53, _54);
        AJS.TN = function(_56){
            return document.createTextNode(_56);
        };
    },
    addCallback: function(fn){
        this.callbacks.unshift(fn);
    },
    bindMethods: function(_58){
        for (var k in _58) {
            var _5a = _58[k];
            if (typeof(_5a) == "function") {
                _58[k] = AJS.$b(_5a, _58);
            }
        }
    },
    partial: function(fn){
        var _5c = AJS.$FA(arguments);
        _5c.shift();
        return function(){
            _5c = _5c.concat(AJS.$FA(arguments));
            return fn.apply(window, _5c);
        };
    },
    isNumber: function(obj){
        return (typeof obj == "number");
    },
    getCssDim: function(dim){
        if (AJS.isString(dim)) {
            return dim;
        }
        else {
            return dim + "px";
        }
    },
    isIe: function(){
        return (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1);
    },
    removeClass: function(){
        var _5f = AJS.forceArray(arguments);
        var cls = _5f.pop();
        var _61 = function(o){
            o.className = o.className.replace(new RegExp("\\s?" + cls, "g"), "");
        };
        AJS.map(_5f, function(elm){
            _61(elm);
        });
    },
    setHTML: function(elm, _65){
        elm.innerHTML = _65;
        return elm;
    },
    map: function(_66, fn, _68, _69){
        var i = 0, l = _66.length;
        if (_68) {
            i = _68;
        }
        if (_69) {
            l = _69;
        }
        for (i; i < l; i++) {
            var val = fn(_66[i], i);
            if (val != undefined) {
                return val;
            }
        }
    },
    addEventListener: function(elm, _6e, fn, _70, _71){
        var _72 = "ajsl_" + _6e + fn;
        if (!_71) {
            _71 = false;
        }
        AJS.listeners = AJS.$A(AJS.listeners);
        if (AJS.isIn(_6e, ["keypress", "keydown", "keyup", "click"])) {
            var _73 = fn;
            fn = function(e){
                AJS.setEventKey(e);
                return _73.apply(window, arguments);
            };
        }
        var _75 = AJS.isIn(_6e, ["submit", "load", "scroll", "resize"]);
        var _76 = AJS.$A(elm);
        AJS.map(_76, function(_77){
            if (_70) {
                var _78 = fn;
                fn = function(e){
                    AJS.REV(_77, _6e, fn);
                    return _78.apply(window, arguments);
                };
            }
            if (_75) {
                var _7a = _77["on" + _6e];
                var _7b = function(){
                    if (_7a) {
                        fn(arguments);
                        return _7a(arguments);
                    }
                    else {
                        return fn(arguments);
                    }
                };
                _77[_72] = _7b;
                _77[_72 + "old"] = _7a;
                elm["on" + _6e] = _7b;
            }
            else {
                _77[_72] = fn;
                if (_77.attachEvent) {
                    _77.attachEvent("on" + _6e, fn);
                }
                else {
                    if (_77.addEventListener) {
                        _77.addEventListener(_6e, fn, _71);
                    }
                }
                AJS.listeners.push([_77, _6e, fn]);
            }
        });
    },
    preloadImages: function(){
        AJS.AEV(window, "load", AJS.$p(function(_7c){
            AJS.map(_7c, function(src){
                var pic = new Image();
                pic.src = src;
            });
        }, arguments));
    },
    forceArray: function(_7f){
        var r = [];
        AJS.map(_7f, function(elm){
            r.push(elm);
        });
        return r;
    },
    update: function(l1, l2){
        for (var i in l2) {
            l1[i] = l2[i];
        }
        return l1;
    },
    getBody: function(){
        return AJS.$bytc("body")[0];
    },
    HTML2DOM: function(_85, _86){
        var d = AJS.DIV();
        d.innerHTML = _85;
        if (_86) {
            return d.childNodes[0];
        }
        else {
            return d;
        }
    },
    getElement: function(id){
        if (AJS.isString(id) || AJS.isNumber(id)) {
            return document.getElementById(id);
        }
        else {
            return id;
        }
    },
    showElement: function(){
        var _89 = AJS.forceArray(arguments);
        AJS.map(_89, function(elm){
            elm.style.display = "";
        });
    },
    bind: function(fn, _8c, _8d){
        fn._cscope = _8c;
        return AJS._getRealScope(fn, _8d);
    },
    createDOM: function(_8e, _8f){
        var i = 0, _91;
        var elm = document.createElement(_8e);
        var _93 = _8f[0];
        if (AJS.isDict(_8f[i])) {
            for (k in _93) {
                _91 = _93[k];
                if (k == "style" || k == "s") {
                    elm.style.cssText = _91;
                }
                else {
                    if (k == "c" || k == "class" || k == "className") {
                        elm.className = _91;
                    }
                    else {
                        elm.setAttribute(k, _91);
                    }
                }
            }
            i++;
        }
        if (_93 == null) {
            i = 1;
        }
        for (var j = i; j < _8f.length; j++) {
            var _91 = _8f[j];
            if (_91) {
                var _95 = typeof(_91);
                if (_95 == "string" || _95 == "number") {
                    _91 = AJS.TN(_91);
                }
                elm.appendChild(_91);
            }
        }
        return elm;
    },
    swapDOM: function(_96, src){
        _96 = AJS.getElement(_96);
        var _98 = _96.parentNode;
        if (src) {
            src = AJS.getElement(src);
            _98.replaceChild(src, _96);
        }
        else {
            _98.removeChild(_96);
        }
        return src;
    },
    isDefined: function(o){
        return (o != "undefined" && o != null);
    }
};
AJS.$ = AJS.getElement;
AJS.$$ = AJS.getElements;
AJS.$f = AJS.getFormElement;
AJS.$p = AJS.partial;
AJS.$b = AJS.bind;
AJS.$A = AJS.createArray;
AJS.DI = AJS.documentInsert;
AJS.ACN = AJS.appendChildNodes;
AJS.RCN = AJS.replaceChildNodes;
AJS.AEV = AJS.addEventListener;
AJS.REV = AJS.removeEventListener;
AJS.$bytc = AJS.getElementsByTagAndClassName;
AJS.$AP = AJS.absolutePosition;
AJS.$FA = AJS.forceArray;
AJS.addEventListener(window, "unload", AJS._unloadListeners);
AJS._createDomShortcuts();
AJS.Class = function(_9a){
    var fn = function(){
        if (arguments[0] != "no_init") {
            return this.init.apply(this, arguments);
        }
    };
    fn.prototype = _9a;
    AJS.update(fn, AJS.Class.prototype);
    return fn;
};
AJS.Class.prototype = {
    extend: function(_9c){
        var _9d = new this("no_init");
        for (k in _9c) {
            var _9e = _9d[k];
            var cur = _9c[k];
            if (_9e && _9e != cur && typeof cur == "function") {
                cur = this._parentize(cur, _9e);
            }
            _9d[k] = cur;
        }
        return new AJS.Class(_9d);
    },
    implement: function(_a0){
        AJS.update(this.prototype, _a0);
    },
    _parentize: function(cur, _a2){
        return function(){
            this.parent = _a2;
            return cur.apply(this, arguments);
        };
    }
};
script_loaded = true;


script_loaded = true;
