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;
