AJS={BASE_URL:"",drag_obj:null,drag_elm:null,_drop_zones:[],_cur_pos:null,join:function(_1,_2){
    try{
        return _2.join(_1);
    }
    catch(e){
        var r=_2[0]||"";
        AJS.map(_2,function(_4){
            r+=_1+_4;
        },1);
        return r+"";
    }
},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 _6=AJS.forceArray(arguments);
    var _7=_6.pop();
    var _8=function(o){
        if(!new RegExp("(^|\\s)"+_7+"(\\s|$)").test(o.className)){
            o.className+=(o.className?" ":"")+_7;
        }
    };
    AJS.map(_6,function(_a){
        _8(_a);
    });
},setStyle:function(){
    var _b=AJS.forceArray(arguments);
    var _c=_b.pop();
    var _d=_b.pop();
    AJS.map(_b,function(_e){
        _e.style[_d]=AJS.getCssDim(_c);
    });
},_getRealScope:function(fn,_10,_11,_12){
    var _13=window;
    _10=AJS.$A(_10);
    if(fn._cscope){
        _13=fn._cscope;
    }
    return function(){
        var _14=[];
        var i=0;
        if(_11){
            i=1;
        }
        AJS.map(arguments,function(arg){
            _14.push(arg);
        },i);
        _14=_14.concat(_10);
        if(_12){
            _14=_14.reverse();
        }
        return fn.apply(_13,_14);
    };
},preloadImages:function(){
    AJS.AEV(window,"load",AJS.$p(function(_17){
        AJS.map(_17,function(src){
            var pic=new Image();
            pic.src=src;
        });
    },arguments));
},_createDomShortcuts:function(){
    var _1a=["ul","li","td","tr","th","tbody","table","input","span","b","a","div","img","button","h1","h2","h3","br","textarea","form","p","select","option","iframe","script","center","dl","dt","dd","small","pre"];
    var _1b=function(elm){
        var _1d="return AJS.createDOM.apply(null, ['"+elm+"', arguments]);";
        var _1e="function() { "+_1d+"    }";
        eval("AJS."+elm.toUpperCase()+"="+_1e);
    };
    AJS.map(_1a,_1b);
    AJS.TN=function(_1f){
        return document.createTextNode(_1f);
    };
},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 _22,_23;
    if(self.innerHeight){
        _22=self.innerWidth;
        _23=self.innerHeight;
    }else{
        if(doc.documentElement&&doc.documentElement.clientHeight){
            _22=doc.documentElement.clientWidth;
            _23=doc.documentElement.clientHeight;
        }else{
            if(doc.body){
                _22=doc.body.clientWidth;
                _23=doc.body.clientHeight;
            }
        }
    }
    return {"w":_22,"h":_23};
},flattenList:function(_24){
    var r=[];
    var _26=function(r,l){
        AJS.map(l,function(o){
            if(o==null){
            }else{
                if(AJS.isArray(o)){
                    _26(r,o);
                }else{
                    r.push(o);
                }
            }
        });
    };
    _26(r,_24);
    return r;
},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 _2b=AJS.forceArray(arguments);
    AJS.map(_2b,function(elm){
        AJS.swapDOM(elm,null);
    });
},_unloadListeners:function(){
    if(AJS.listeners){
        AJS.map(AJS.listeners,function(elm,_2e,fn){
            AJS.REV(elm,_2e,fn);
        });
    }
    AJS.listeners=[];
},partial:function(fn){
    var _31=AJS.forceArray(arguments);
    return AJS.$b(fn,null,_31.slice(1,_31.length).reverse(),false,true);
},getIndex:function(elm,_33,_34){
    for(var i=0;i<_33.length;i++){
        if(_34&&_34(_33[i])||elm==_33[i]){
            return i;
        }
    }
    return -1;
},isDefined:function(o){
    return (o!="undefined"&&o!=null);
},isArray:function(obj){
    return obj instanceof Array;
},setLeft:function(){
    var _38=AJS.forceArray(arguments);
    _38.splice(_38.length-1,0,"left");
    AJS.setStyle.apply(null,_38);
},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;
},isOpera:function(){
    return (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
},isString:function(obj){
    return (typeof obj=="string");
},hideElement:function(elm){
    var _3d=AJS.forceArray(arguments);
        AJS.map(_3d,function(elm){
        elm.style.display="none";
    });
},setOpacity:function(elm,p){
    elm.style.opacity=p;
    elm.style.filter="alpha(opacity="+p*100+")";
},setHeight:function(){
    var _41=AJS.forceArray(arguments);
    _41.splice(_41.length-1,0,"height");
    AJS.setStyle.apply(null,_41);
},setWidth:function(){
    var _42=AJS.forceArray(arguments);
    _42.splice(_42.length-1,0,"width");
    AJS.setStyle.apply(null,_42);
},createArray:function(v){
    if(AJS.isArray(v)&&!AJS.isString(v)){
        return v;
    }else{
        if(!v){
            return [];
        }else{
            return [v];
        }
    }
},isDict:function(o){
    var _45=String(o);
    return _45.indexOf(" Object")!=-1;
},isMozilla:function(){
    return (navigator.userAgent.toLowerCase().indexOf("gecko")!=-1&&navigator.productSub>=20030210);
},_listenOnce:function(elm,_47,fn){
    var _49=function(){
        AJS.removeEventListener(elm,_47,_49);
        fn(arguments);
    };
    return _49;
},addEventListener:function(elm,_4b,fn,_4d,_4e){
    if(!_4e){
        _4e=false;
    }
    var _4f=AJS.$A(elm);
    AJS.map(_4f,function(_50){
        if(_4d){
            fn=AJS._listenOnce(_50,_4b,fn);
        }
        if(AJS.isIn(_4b,["submit","load","scroll","resize"])){
            var old=elm["on"+_4b];
            elm["on"+_4b]=function(){
                if(old){
                    fn(arguments);
                    return old(arguments);
                }else{
                    return fn(arguments);
                }
            };
            return;
        }
        if(AJS.isIn(_4b,["keypress","keydown","keyup","click"])){
            var _52=fn;
            fn=function(e){
                AJS.setEventKey(e);
                return _52.apply(null,arguments);
            };
        }
        if(_50.attachEvent){
            _50.attachEvent("on"+_4b,fn);
        }else{
            if(_50.addEventListener){
                _50.addEventListener(_4b,fn,_4e);
            }
        }
        AJS.listeners=AJS.$A(AJS.listeners);
        AJS.listeners.push([_50,_4b,fn]);
    });
},createDOM:function(_54,_55){
    var i=0,_57;
    elm=document.createElement(_54);
    if(AJS.isDict(_55[i])){
        for(k in _55[0]){
            _57=_55[0][k];
            if(k=="style"){
                elm.style.cssText=_57;
            }else{
                if(k=="class"||k=="className"){
                    elm.className=_57;
                }else{
                    elm.setAttribute(k,_57);
                }
            }
        }
        i++;
    }
    if(_55[0]==null){
        i=1;
    }
    AJS.map(_55,function(n){
        if(n){
            if(AJS.isString(n)||AJS.isNumber(n)){
                n=AJS.TN(n);
            }
            elm.appendChild(n);
        }
    },i);
    return elm;
},setTop:function(){
    var _59=AJS.forceArray(arguments);
    _59.splice(_59.length-1,0,"top");
    AJS.setStyle.apply(null,_59);
},getElementsByTagAndClassName:function(_5a,_5b,_5c){
    var _5d=[];
    if(!AJS.isDefined(_5c)){
        _5c=document;
    }
    if(!AJS.isDefined(_5a)){
        _5a="*";
    }
    var els=_5c.getElementsByTagName(_5a);
    var _5f=els.length;
    var _60=new RegExp("(^|\\s)"+_5b+"(\\s|$)");
    for(i=0,j=0;i<_5f;i++){
        if(_60.test(els[i].className)||_5b==null){
            _5d[j]=els[i];
            j++;
        }
    }
    return _5d;
},removeClass:function(){
    var _61=AJS.forceArray(arguments);
    var cls=_61.pop();
    var _63=function(o){
        o.className=o.className.replace(new RegExp("\\s?"+cls,"g"),"");
    };
    AJS.map(_61,function(elm){
        _63(elm);
    });
},bindMethods:function(_66){
    for(var k in _66){
        var _68=_66[k];
        if(typeof (_68)=="function"){
            _66[k]=AJS.$b(_68,_66);
        }
    }
},log:function(o){
    if(AJS.isMozilla()){
        console.log(o);
    }else{
        var div=AJS.DIV({"style":"color: green"});
        AJS.ACN(AJS.getBody(),AJS.setHTML(div,""+o));
    }
},isNumber:function(obj){
    return (typeof obj=="number");
},map:function(_6c,fn,_6e,_6f){
    var i=0,l=_6c.length;
    if(_6e){
        i=_6e;
    }
    if(_6f){
        l=_6f;
    }
    for(i;i<l;i++){
        fn.apply(null,[_6c[i],i]);
    }
},removeEventListener:function(elm,_73,fn,_75){
    if(!_75){
        _75=false;
    }
    if(elm.removeEventListener){
        elm.removeEventListener(_73,fn,_75);
        if(AJS.isOpera()){
            elm.removeEventListener(_73,fn,!_75);
        }
    }else{
        if(elm.detachEvent){
            elm.detachEvent("on"+_73,fn);
        }
    }
},getCssDim:function(dim){
    if(AJS.isString(dim)){
        return dim;
    }else{
        return dim+"px";
    }
},setHTML:function(elm,_78){
    elm.innerHTML=_78;
    return elm;
},bind:function(fn,_7a,_7b,_7c,_7d){
    fn._cscope=_7a;
    return AJS._getRealScope(fn,_7b,_7c,_7d);
},forceArray:function(_7e){
    var r=[];
    AJS.map(_7e,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(_84,_85){
    var d=AJS.DIV();
    d.innerHTML=_84;
    if(_85){
        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 _88=AJS.forceArray(arguments);
    AJS.map(_88,function(elm){
        elm.style.display="";
    });
},swapDOM:function(_8a,src){
    _8a=AJS.getElement(_8a);
    var _8c=_8a.parentNode;
    if(src){
        src=AJS.getElement(src);
        _8c.replaceChild(src,_8a);
    }else{
        _8c.removeChild(_8a);
    }
    return src;
},isIn:function(elm,_8e){
    var i=AJS.getIndex(elm,_8e);
    if(i!=-1){
        return true;
    }else{
        return false;
    }
}};

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.addEventListener(window,"unload",AJS._unloadListeners);
AJS._createDomShortcuts();

AJS.Class=function(_90){
    var fn=function(){
        if(arguments[0]!="no_init"){
            return this.init.apply(this,arguments);
        }
    };
    fn.prototype=_90;
    AJS.update(fn,AJS.Class.prototype);
    return fn;
};

AJS.Class.prototype={extend:function(_92){
    var _93=new this("no_init");
    for(k in _92){
        var _94=_93[k];
        var cur=_92[k];
        if(_94&&_94!=cur&&typeof cur=="function"){
            cur=this._parentize(cur,_94);
        }
        _93[k]=cur;
    }
    return new AJS.Class(_93);
},implement:function(_96){
    AJS.update(this.prototype,_96);
},_parentize:function(cur,_98){
    return function(){
        this.parent=_98;
        return cur.apply(this,arguments);
    };
}};

AJS.$=AJS.getElement;
AJS.$$=AJS.getElements;
AJS.$f=AJS.getFormElement;
AJS.$b=AJS.bind;
AJS.$p=AJS.partial;
AJS.$FA=AJS.forceArray;
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;

AJSDeferred=function(req){
    this.callbacks=[];
    this.errbacks=[];
    this.req=req;
};

AJSDeferred.prototype={excCallbackSeq:function(req,_9b){
    var _9c=req.responseText;
    while(_9b.length>0){
        var fn=_9b.pop();
        var _9e=fn(_9c,req);
        if(_9e){
            _9c=_9e;
        }
    }
},callback:function(){
    this.excCallbackSeq(this.req,this.callbacks);
},errback:function(){
    if(this.errbacks.length==0){
        alert("Error encountered:\n"+this.req.responseText);
    }
    this.excCallbackSeq(this.req,this.errbacks);
},addErrback:function(fn){
    this.errbacks.unshift(fn);
},addCallback:function(fn){
    this.callbacks.unshift(fn);
},addCallbacks:function(fn1,fn2){
    this.addCallback(fn1);
    this.addErrback(fn2);
},sendReq:function(_a3){
    if(AJS.isObject(_a3)){
        this.req.send(AJS.queryArguments(_a3));
    }else{
        if(AJS.isDefined(_a3)){
            this.req.send(_a3);
        }else{
            this.req.send("");
        }
    }
}};

script_loaded=true;

