AJS.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  1. AJS={BASE_URL:"",drag_obj:null,drag_elm:null,_drop_zones:[],_cur_pos:null,getScrollTop:function(){
  2. var t;
  3. if(document.documentElement&&document.documentElement.scrollTop){
  4. t=document.documentElement.scrollTop;
  5. }else{
  6. if(document.body){
  7. t=document.body.scrollTop;
  8. }
  9. }
  10. return t;
  11. },addClass:function(){
  12. var _2=AJS.forceArray(arguments);
  13. var _3=_2.pop();
  14. var _4=function(o){
  15. if(!new RegExp("(^|\\s)"+_3+"(\\s|$)").test(o.className)){
  16. o.className+=(o.className?" ":"")+_3;
  17. }
  18. };
  19. AJS.map(_2,function(_6){
  20. _4(_6);
  21. });
  22. },setStyle:function(){
  23. var _7=AJS.forceArray(arguments);
  24. var _8=_7.pop();
  25. var _9=_7.pop();
  26. AJS.map(_7,function(_a){
  27. _a.style[_9]=AJS.getCssDim(_8);
  28. });
  29. },extend:function(_b){
  30. var _c=new this("no_init");
  31. for(k in _b){
  32. var _d=_c[k];
  33. var _e=_b[k];
  34. if(_d&&_d!=_e&&typeof _e=="function"){
  35. _e=this._parentize(_e,_d);
  36. }
  37. _c[k]=_e;
  38. }
  39. return new AJS.Class(_c);
  40. },log:function(o){
  41. if(window.console){
  42. console.log(o);
  43. }else{
  44. var div=AJS.$("ajs_logger");
  45. if(!div){
  46. div=AJS.DIV({id:"ajs_logger","style":"color: green; position: absolute; left: 0"});
  47. div.style.top=AJS.getScrollTop()+"px";
  48. AJS.ACN(AJS.getBody(),div);
  49. }
  50. AJS.setHTML(div,""+o);
  51. }
  52. },setHeight:function(){
  53. var _11=AJS.forceArray(arguments);
  54. _11.splice(_11.length-1,0,"height");
  55. AJS.setStyle.apply(null,_11);
  56. },_getRealScope:function(fn,_13){
  57. _13=AJS.$A(_13);
  58. var _14=fn._cscope||window;
  59. return function(){
  60. var _15=AJS.$FA(arguments).concat(_13);
  61. return fn.apply(_14,_15);
  62. };
  63. },documentInsert:function(elm){
  64. if(typeof (elm)=="string"){
  65. elm=AJS.HTML2DOM(elm);
  66. }
  67. document.write("<span id=\"dummy_holder\"></span>");
  68. AJS.swapDOM(AJS.$("dummy_holder"),elm);
  69. },getWindowSize:function(doc){
  70. doc=doc||document;
  71. var _18,_19;
  72. if(self.innerHeight){
  73. _18=self.innerWidth;
  74. _19=self.innerHeight;
  75. }else{
  76. if(doc.documentElement&&doc.documentElement.clientHeight){
  77. _18=doc.documentElement.clientWidth;
  78. _19=doc.documentElement.clientHeight;
  79. }else{
  80. if(doc.body){
  81. _18=doc.body.clientWidth;
  82. _19=doc.body.clientHeight;
  83. }
  84. }
  85. }
  86. return {"w":_18,"h":_19};
  87. },flattenList:function(_1a){
  88. var r=[];
  89. var _1c=function(r,l){
  90. AJS.map(l,function(o){
  91. if(o==null){
  92. }else{
  93. if(AJS.isArray(o)){
  94. _1c(r,o);
  95. }else{
  96. r.push(o);
  97. }
  98. }
  99. });
  100. };
  101. _1c(r,_1a);
  102. return r;
  103. },isFunction:function(obj){
  104. return (typeof obj=="function");
  105. },setEventKey:function(e){
  106. e.key=e.keyCode?e.keyCode:e.charCode;
  107. if(window.event){
  108. e.ctrl=window.event.ctrlKey;
  109. e.shift=window.event.shiftKey;
  110. }else{
  111. e.ctrl=e.ctrlKey;
  112. e.shift=e.shiftKey;
  113. }
  114. switch(e.key){
  115. case 63232:
  116. e.key=38;
  117. break;
  118. case 63233:
  119. e.key=40;
  120. break;
  121. case 63235:
  122. e.key=39;
  123. break;
  124. case 63234:
  125. e.key=37;
  126. break;
  127. }
  128. },removeElement:function(){
  129. var _22=AJS.forceArray(arguments);
  130. AJS.map(_22,function(elm){
  131. AJS.swapDOM(elm,null);
  132. });
  133. },_unloadListeners:function(){
  134. if(AJS.listeners){
  135. AJS.map(AJS.listeners,function(elm,_25,fn){
  136. AJS.REV(elm,_25,fn);
  137. });
  138. }
  139. AJS.listeners=[];
  140. },join:function(_27,_28){
  141. try{
  142. return _28.join(_27);
  143. }
  144. catch(e){
  145. var r=_28[0]||"";
  146. AJS.map(_28,function(elm){
  147. r+=_27+elm;
  148. },1);
  149. return r+"";
  150. }
  151. },getIndex:function(elm,_2c,_2d){
  152. for(var i=0;i<_2c.length;i++){
  153. if(_2d&&_2d(_2c[i])||elm==_2c[i]){
  154. return i;
  155. }
  156. }
  157. return -1;
  158. },isIn:function(elm,_30){
  159. var i=AJS.getIndex(elm,_30);
  160. if(i!=-1){
  161. return true;
  162. }else{
  163. return false;
  164. }
  165. },isArray:function(obj){
  166. return obj instanceof Array;
  167. },setLeft:function(){
  168. var _33=AJS.forceArray(arguments);
  169. _33.splice(_33.length-1,0,"left");
  170. AJS.setStyle.apply(null,_33);
  171. },appendChildNodes:function(elm){
  172. if(arguments.length>=2){
  173. AJS.map(arguments,function(n){
  174. if(AJS.isString(n)){
  175. n=AJS.TN(n);
  176. }
  177. if(AJS.isDefined(n)){
  178. elm.appendChild(n);
  179. }
  180. },1);
  181. }
  182. return elm;
  183. },getElementsByTagAndClassName:function(_36,_37,_38,_39){
  184. var _3a=[];
  185. if(!AJS.isDefined(_38)){
  186. _38=document;
  187. }
  188. if(!AJS.isDefined(_36)){
  189. _36="*";
  190. }
  191. var els=_38.getElementsByTagName(_36);
  192. var _3c=els.length;
  193. var _3d=new RegExp("(^|\\s)"+_37+"(\\s|$)");
  194. for(i=0,j=0;i<_3c;i++){
  195. if(_3d.test(els[i].className)||_37==null){
  196. _3a[j]=els[i];
  197. j++;
  198. }
  199. }
  200. if(_39){
  201. return _3a[0];
  202. }else{
  203. return _3a;
  204. }
  205. },isOpera:function(){
  206. return (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
  207. },isString:function(obj){
  208. return (typeof obj=="string");
  209. },hideElement:function(elm){
  210. var _40=AJS.forceArray(arguments);
  211. AJS.map(_40,function(elm){
  212. elm.style.display="none";
  213. });
  214. },setOpacity:function(elm,p){
  215. elm.style.opacity=p;
  216. elm.style.filter="alpha(opacity="+p*100+")";
  217. },insertBefore:function(elm,_45){
  218. _45.parentNode.insertBefore(elm,_45);
  219. return elm;
  220. },setWidth:function(){
  221. var _46=AJS.forceArray(arguments);
  222. _46.splice(_46.length-1,0,"width");
  223. AJS.setStyle.apply(null,_46);
  224. },createArray:function(v){
  225. if(AJS.isArray(v)&&!AJS.isString(v)){
  226. return v;
  227. }else{
  228. if(!v){
  229. return [];
  230. }else{
  231. return [v];
  232. }
  233. }
  234. },isDict:function(o){
  235. var _49=String(o);
  236. return _49.indexOf(" Object")!=-1;
  237. },isMozilla:function(){
  238. return (navigator.userAgent.toLowerCase().indexOf("gecko")!=-1&&navigator.productSub>=20030210);
  239. },removeEventListener:function(elm,_4b,fn,_4d){
  240. var _4e="ajsl_"+_4b+fn;
  241. if(!_4d){
  242. _4d=false;
  243. }
  244. fn=elm[_4e]||fn;
  245. if(elm["on"+_4b]==fn){
  246. elm["on"+_4b]=elm[_4e+"old"];
  247. }
  248. if(elm.removeEventListener){
  249. elm.removeEventListener(_4b,fn,_4d);
  250. if(AJS.isOpera()){
  251. elm.removeEventListener(_4b,fn,!_4d);
  252. }
  253. }else{
  254. if(elm.detachEvent){
  255. elm.detachEvent("on"+_4b,fn);
  256. }
  257. }
  258. },callLater:function(fn,_50){
  259. var _51=function(){
  260. fn();
  261. };
  262. window.setTimeout(_51,_50);
  263. },setTop:function(){
  264. var _52=AJS.forceArray(arguments);
  265. _52.splice(_52.length-1,0,"top");
  266. AJS.setStyle.apply(null,_52);
  267. },_createDomShortcuts:function(){
  268. 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"];
  269. var _54=function(elm){
  270. AJS[elm.toUpperCase()]=function(){
  271. return AJS.createDOM.apply(null,[elm,arguments]);
  272. };
  273. };
  274. AJS.map(_53,_54);
  275. AJS.TN=function(_56){
  276. return document.createTextNode(_56);
  277. };
  278. },addCallback:function(fn){
  279. this.callbacks.unshift(fn);
  280. },bindMethods:function(_58){
  281. for(var k in _58){
  282. var _5a=_58[k];
  283. if(typeof (_5a)=="function"){
  284. _58[k]=AJS.$b(_5a,_58);
  285. }
  286. }
  287. },partial:function(fn){
  288. var _5c=AJS.$FA(arguments);
  289. _5c.shift();
  290. return function(){
  291. _5c=_5c.concat(AJS.$FA(arguments));
  292. return fn.apply(window,_5c);
  293. };
  294. },isNumber:function(obj){
  295. return (typeof obj=="number");
  296. },getCssDim:function(dim){
  297. if(AJS.isString(dim)){
  298. return dim;
  299. }else{
  300. return dim+"px";
  301. }
  302. },isIe:function(){
  303. return (navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1);
  304. },removeClass:function(){
  305. var _5f=AJS.forceArray(arguments);
  306. var cls=_5f.pop();
  307. var _61=function(o){
  308. o.className=o.className.replace(new RegExp("\\s?"+cls,"g"),"");
  309. };
  310. AJS.map(_5f,function(elm){
  311. _61(elm);
  312. });
  313. },setHTML:function(elm,_65){
  314. elm.innerHTML=_65;
  315. return elm;
  316. },map:function(_66,fn,_68,_69){
  317. var i=0,l=_66.length;
  318. if(_68){
  319. i=_68;
  320. }
  321. if(_69){
  322. l=_69;
  323. }
  324. for(i;i<l;i++){
  325. var val=fn(_66[i],i);
  326. if(val!=undefined){
  327. return val;
  328. }
  329. }
  330. },addEventListener:function(elm,_6e,fn,_70,_71){
  331. var _72="ajsl_"+_6e+fn;
  332. if(!_71){
  333. _71=false;
  334. }
  335. AJS.listeners=AJS.$A(AJS.listeners);
  336. if(AJS.isIn(_6e,["keypress","keydown","keyup","click"])){
  337. var _73=fn;
  338. fn=function(e){
  339. AJS.setEventKey(e);
  340. return _73.apply(window,arguments);
  341. };
  342. }
  343. var _75=AJS.isIn(_6e,["submit","load","scroll","resize"]);
  344. var _76=AJS.$A(elm);
  345. AJS.map(_76,function(_77){
  346. if(_70){
  347. var _78=fn;
  348. fn=function(e){
  349. AJS.REV(_77,_6e,fn);
  350. return _78.apply(window,arguments);
  351. };
  352. }
  353. if(_75){
  354. var _7a=_77["on"+_6e];
  355. var _7b=function(){
  356. if(_7a){
  357. fn(arguments);
  358. return _7a(arguments);
  359. }else{
  360. return fn(arguments);
  361. }
  362. };
  363. _77[_72]=_7b;
  364. _77[_72+"old"]=_7a;
  365. elm["on"+_6e]=_7b;
  366. }else{
  367. _77[_72]=fn;
  368. if(_77.attachEvent){
  369. _77.attachEvent("on"+_6e,fn);
  370. }else{
  371. if(_77.addEventListener){
  372. _77.addEventListener(_6e,fn,_71);
  373. }
  374. }
  375. AJS.listeners.push([_77,_6e,fn]);
  376. }
  377. });
  378. },preloadImages:function(){
  379. AJS.AEV(window,"load",AJS.$p(function(_7c){
  380. AJS.map(_7c,function(src){
  381. var pic=new Image();
  382. pic.src=src;
  383. });
  384. },arguments));
  385. },forceArray:function(_7f){
  386. var r=[];
  387. AJS.map(_7f,function(elm){
  388. r.push(elm);
  389. });
  390. return r;
  391. },update:function(l1,l2){
  392. for(var i in l2){
  393. l1[i]=l2[i];
  394. }
  395. return l1;
  396. },getBody:function(){
  397. return AJS.$bytc("body")[0];
  398. },HTML2DOM:function(_85,_86){
  399. var d=AJS.DIV();
  400. d.innerHTML=_85;
  401. if(_86){
  402. return d.childNodes[0];
  403. }else{
  404. return d;
  405. }
  406. },getElement:function(id){
  407. if(AJS.isString(id)||AJS.isNumber(id)){
  408. return document.getElementById(id);
  409. }else{
  410. return id;
  411. }
  412. },showElement:function(){
  413. var _89=AJS.forceArray(arguments);
  414. AJS.map(_89,function(elm){
  415. elm.style.display="";
  416. });
  417. },bind:function(fn,_8c,_8d){
  418. fn._cscope=_8c;
  419. return AJS._getRealScope(fn,_8d);
  420. },createDOM:function(_8e,_8f){
  421. var i=0,_91;
  422. var elm=document.createElement(_8e);
  423. var _93=_8f[0];
  424. if(AJS.isDict(_8f[i])){
  425. for(k in _93){
  426. _91=_93[k];
  427. if(k=="style"||k=="s"){
  428. elm.style.cssText=_91;
  429. }else{
  430. if(k=="c"||k=="class"||k=="className"){
  431. elm.className=_91;
  432. }else{
  433. elm.setAttribute(k,_91);
  434. }
  435. }
  436. }
  437. i++;
  438. }
  439. if(_93==null){
  440. i=1;
  441. }
  442. for(var j=i;j<_8f.length;j++){
  443. var _91=_8f[j];
  444. if(_91){
  445. var _95=typeof (_91);
  446. if(_95=="string"||_95=="number"){
  447. _91=AJS.TN(_91);
  448. }
  449. elm.appendChild(_91);
  450. }
  451. }
  452. return elm;
  453. },swapDOM:function(_96,src){
  454. _96=AJS.getElement(_96);
  455. var _98=_96.parentNode;
  456. if(src){
  457. src=AJS.getElement(src);
  458. _98.replaceChild(src,_96);
  459. }else{
  460. _98.removeChild(_96);
  461. }
  462. return src;
  463. },isDefined:function(o){
  464. return (o!="undefined"&&o!=null);
  465. }};
  466. AJS.$=AJS.getElement;
  467. AJS.$$=AJS.getElements;
  468. AJS.$f=AJS.getFormElement;
  469. AJS.$p=AJS.partial;
  470. AJS.$b=AJS.bind;
  471. AJS.$A=AJS.createArray;
  472. AJS.DI=AJS.documentInsert;
  473. AJS.ACN=AJS.appendChildNodes;
  474. AJS.RCN=AJS.replaceChildNodes;
  475. AJS.AEV=AJS.addEventListener;
  476. AJS.REV=AJS.removeEventListener;
  477. AJS.$bytc=AJS.getElementsByTagAndClassName;
  478. AJS.$AP=AJS.absolutePosition;
  479. AJS.$FA=AJS.forceArray;
  480. AJS.addEventListener(window,"unload",AJS._unloadListeners);
  481. AJS._createDomShortcuts();
  482. AJS.Class=function(_9a){
  483. var fn=function(){
  484. if(arguments[0]!="no_init"){
  485. return this.init.apply(this,arguments);
  486. }
  487. };
  488. fn.prototype=_9a;
  489. AJS.update(fn,AJS.Class.prototype);
  490. return fn;
  491. };
  492. AJS.Class.prototype={extend:function(_9c){
  493. var _9d=new this("no_init");
  494. for(k in _9c){
  495. var _9e=_9d[k];
  496. var cur=_9c[k];
  497. if(_9e&&_9e!=cur&&typeof cur=="function"){
  498. cur=this._parentize(cur,_9e);
  499. }
  500. _9d[k]=cur;
  501. }
  502. return new AJS.Class(_9d);
  503. },implement:function(_a0){
  504. AJS.update(this.prototype,_a0);
  505. },_parentize:function(cur,_a2){
  506. return function(){
  507. this.parent=_a2;
  508. return cur.apply(this,arguments);
  509. };
  510. }};
  511. script_loaded=true;
  512. script_loaded=true;