514 lines
No EOL
10 KiB
JavaScript
514 lines
No EOL
10 KiB
JavaScript
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; |