Вход Регистрация
Файл: framework/thirdparty/greybox/AmiJS.js
Строк: 537
<?php
//AJS JavaScript library (minify'ed version)
//Copyright (c) 2006 Amir Salihefendic. All rights reserved.
//Copyright (c) 2005 Bob Ippolito. All rights reserved.
//License: http://www.opensource.org/licenses/mit-license.php
//Visit http://orangoo.com/AmiNation/AJS for full version.
AJS = {
BASE_URL"",
drag_objnull,
drag_elmnull,
_drop_zones: [],
_cur_posnull,

_unloadListeners: function() {
if(
AJS.listeners)
AJS.map(AJS.listeners, function(elmtypefn) {AJS.removeEventListener(elmtypefn)});
AJS.listeners = [];
},
getElement: function(id) {
if(
AJS.isString(id) || AJS.isNumber(id))
return 
document.getElementById(id);
else
return 
id;
},
getScrollTop: function() {
//From: http://www.quirksmode.org/js/doctypes.html
var t;
if (
document.documentElement && document.documentElement.scrollTop)
document.documentElement.scrollTop;
else if (
document.body)
document.body.scrollTop;
return 
t;
},
isArray: function(obj) {
return 
obj instanceof Array;
},
removeElement: function(/*elm1, elm2...*/) {
var 
args AJS.flattenList(arguments);
AJS.map(args, function(elm) { AJS.swapDOM(elmnull); });
},
isDict: function(o) {
var 
str_repr String(o);
return 
str_repr.indexOf(" Object") != -1;
},
isString: function(obj) {
return (
typeof obj == 'string');
},
getIndex: function(elm, list/*optional*/eval_fn) {
for(var 
i=0< list.lengthi++)
if(
eval_fn && eval_fn(list[i]) || elm == list[i])
return 
i;
return -
1;
},
createDOM: function(nameattrs) {
var 
i=0attr;
elm document.createElement(name);
if(
AJS.isDict(attrs[i])) {
for(
k in attrs[0]) {
attr attrs[0][k];
if(
== "style")
elm.style.cssText attr;
else if(
== "class" || == 'className')
elm.className attr;
else {
elm.setAttribute(kattr);
}
}
i++;
}
if(
attrs[0] == null)
1;
AJS.map(attrs, function(n) {
if(
n) {
if(
AJS.isString(n) || AJS.isNumber(n))
AJS.TN(n);
elm.appendChild(n);
}
}, 
i);
return 
elm;
},
isIe: function() {
return (
navigator.userAgent.toLowerCase().indexOf("msie") != -&& navigator.userAgent.toLowerCase().indexOf("opera") == -1);
},
addEventListener: function(elmtypefn/*optional*/listen_oncecancle_bubble) {
if(!
cancle_bubble)
cancle_bubble false;
var 
elms AJS.$A(elm);
AJS.map(elms, function(elmz) {
if(
listen_once)
fn AJS._listenOnce(elmztypefn);
if(
AJS.isIn(type, ['submit''load''scroll''resize'])) {
var 
old elm['on' type];
elm['on' type] = function() {
if(
old) {
fn(arguments);
return 
old(arguments);
}
else
return 
fn(arguments);
};
return;
}
if (
elmz.attachEvent) {
//FIXME: We ignore cancle_bubble for IE... hmmz
elmz.attachEvent("on" typefn);
}
else if(
elmz.addEventListener)
elmz.addEventListener(typefncancle_bubble);
AJS.listeners AJS.$A(AJS.listeners);
AJS.listeners.push([elmztypefn]);
});
},
swapDOM: function(destsrc) {
dest AJS.getElement(dest);
var 
parent dest.parentNode;
if (
src) {
src AJS.getElement(src);
parent.replaceChild(srcdest);
} else {
parent.removeChild(dest);
}
return 
src;
},
getLast: function(list) {
if(list.
length 0)
return list[list.
length-1];
else
return 
null;
},
map: function(list, fn,/*optional*/ start_indexend_index) {
var 
0= list.length;
if(
start_index)
start_index;
if(
end_index)
end_index;
for(
ili++)
fn.apply(null, [list[i]]);
},
getElementsByTagAndClassName: function(tag_nameclass_name/*optional*/ parent) {
var 
class_elements = [];
if(!
AJS.isDefined(parent))
parent document;
if(!
AJS.isDefined(tag_name))
tag_name '*';
var 
els parent.getElementsByTagName(tag_name);
var 
els_len els.length;
var 
pattern = new RegExp("(^|\s)" class_name "(\s|$)");
for (
00els_leni++) {
if ( 
pattern.test(els[i].className) || class_name == null ) {
class_elements[j] = els[i];
j++;
}
}
return 
class_elements;
},
isOpera: function() {
return (
navigator.userAgent.toLowerCase().indexOf("opera") != -1);
},
setLeft: function(/*elm1, elm2..., left*/) {
var 
args AJS.flattenList(arguments);
var 
AJS.getLast(args);
AJS.map(args, function(elm) { elm.style.left AJS.getCssDim(l)}, 0args.length-1);
},
getBody: function() {
return 
AJS.$bytc('body')[0]
},
getWindowSize: function() {
var 
win_wwin_h;
if (
self.innerHeight) {
win_w self.innerWidth;
win_h self.innerHeight;
} else if (
document.documentElement && document.documentElement.clientHeight) {
win_w document.documentElement.clientWidth;
win_h document.documentElement.clientHeight;
} else if (
document.body) {
win_w document.body.clientWidth;
win_h document.body.clientHeight;
}
return {
'w'win_w'h'win_h};
},
showElement: function(/*elms...*/) {
var 
args AJS.flattenList(arguments);
AJS.map(args, function(elm) { elm.style.display ''});
},
removeEventListener: function(elmtypefn/*optional*/cancle_bubble) {
if(!
cancle_bubble)
cancle_bubble false;
if(
elm.removeEventListener) {
elm.removeEventListener(typefncancle_bubble);
if(
AJS.isOpera())
elm.removeEventListener(typefn, !cancle_bubble);
}
else if(
elm.detachEvent)
elm.detachEvent("on" typefn);
},
_getRealScope: function(fn/*optional*/ extra_argsdont_send_eventrev_extra_args) {
var 
scope window;
extra_args AJS.$A(extra_args);
if(
fn._cscope)
scope fn._cscope;
return function() {
//Append all the orginal arguments + extra_args
var args = [];
var 
0;
if(
dont_send_event)
1;
AJS.map(arguments, function(arg) { args.push(arg) }, i);
args args.concat(extra_args);
if(
rev_extra_args)
args args.reverse();
return 
fn.apply(scopeargs);
};
},
_createDomShortcuts: function() {
var 
elms = [
"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 
createDOM AJS.createDOM;
var 
extends_ajs = function(elm) {
var 
c_dom "return createDOM.apply(null, ['" elm "', arguments]);";
var 
c_fun_dom 'function() { ' c_dom '  }';
eval(
"AJS." elm.toUpperCase() + "=" c_fun_dom);
}
AJS.map(elmsextends_ajs);
AJS.TN = function(text) { return document.createTextNode(text) };
},
isNumber: function(obj) {
return (
typeof obj == 'number');
},
bind: function(fnscope/*optional*/ extra_argsdont_send_eventrev_extra_args) {
fn._cscope scope;
return 
AJS._getRealScope(fnextra_argsdont_send_eventrev_extra_args);
},
setTop: function(/*elm1, elm2..., top*/) {
var 
args AJS.flattenList(arguments);
var 
AJS.getLast(args);
AJS.map(args, function(elm) { elm.style.top AJS.getCssDim(t)}, 0args.length-1);
},
appendChildNodes: function(elm/*, elms...*/) {
if(
arguments.length >= 2) {
AJS.map(arguments, function(n) {
if(
AJS.isString(n))
AJS.TN(n);
if(
AJS.isDefined(n))
elm.appendChild(n);
}, 
1);
}
return 
elm;
},
isDefined: function(o) {
return (
!= "undefined" && != null)
},
isIn: function(elm, list) {
var 
AJS.getIndex(elm, list);
if(
!= -1)
return 
true;
else
return 
false;
},
setHeight: function(/*elm1, elm2..., height*/) {
var 
args AJS.flattenList(arguments);
var 
AJS.getLast(args);
AJS.map(args, function(elm) { elm.style.height AJS.getCssDim(h)}, 0args.length-1);
},
hideElement: function(elm) {
var 
args AJS.flattenList(arguments);
AJS.map(args, function(elm) { elm.style.display 'none'});
},
createArray: function(v) {
if(
AJS.isArray(v) && !AJS.isString(v))
return 
v;
else if(!
v)
return [];
else
return [
v];
},
setWidth: function(/*elm1, elm2..., width*/) {
var 
args AJS.flattenList(arguments);
var 
AJS.getLast(args);
AJS.map(args, function(elm) { elm.style.width AJS.getCssDim(w)}, 0args.length-1);
},
getCssDim: function(dim) {
if(
AJS.isString(dim))
return 
dim;
else
return 
dim "px";
},
_listenOnce: function(elmtypefn) {
var 
r_fn = function() {
AJS.removeEventListener(elmtyper_fn);
fn(arguments);
}
return 
r_fn;
},
flattenList: function(list) {
var 
= [];
var 
_flatten = function(rl) {
AJS.map(l, function(o) {
if (
AJS.isArray(o))
_flatten(ro);
else
r.push(o);
});
}
_flatten(r, list);
return 
r;
}
}

AJS.$ = AJS.getElement;
AJS.$$ = AJS.getElements;
AJS.$f AJS.getFormElement;
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()

AJSDeferred = function(req) {
this.callbacks = [];
this.errbacks = [];
this.req req;
};
AJSDeferred.prototype = {
excCallbackSeq: function(req, list) {
var 
data req.responseText;
while (list.
length 0) {
var 
fn = list.pop();
var 
new_data fn(datareq);
if(
new_data)
data new_data;
}
},
callback: function () {
this.excCallbackSeq(this.reqthis.callbacks);
},
errback: function() {
if(
this.errbacks.length == 0)
alert("Error encountered:n" this.req.responseText);
this.excCallbackSeq(this.reqthis.errbacks);
},
addErrback: function(fn) {
this.errbacks.unshift(fn);
},
addCallback: function(fn) {
this.callbacks.unshift(fn);
},
addCallbacks: function(fn1fn2) {
this.addCallback(fn1);
this.addErrback(fn2);
},
sendReq: function(data) {
if(
AJS.isObject(data)) {
var 
post_data = [];
for(
k in data) {
post_data.push("=" AJS.urlencode(data[k]));
}
post_data post_data.join("&");
this.req.send(post_data);
}
else if(
AJS.isDefined(data))
this.req.send(data);
else {
this.req.send("");
}
}
}
?>
Онлайн: 1
Реклама