Created
October 28, 2013 21:58
-
-
Save anonymous/7205559 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Core.Packed: 22/10/2013 17:22:24 | |
var Core = { | |
empty: function () {}, | |
version: "1.02", | |
author: "georgep@phaistosnetworks.gr", | |
inspiration: "Mootools, Base2, Prototype", | |
path: (location.protocol.indexOf("https") !== -1 ? "https://s3.amazonaws.com/" : "http://") + "sobpool.phaistosnetworks.gr/pathfinder/core/", | |
isHuman: false, | |
JSON: {}, | |
hasProperJSONSupport: ("JSON" in window) && !(navigator.userAgent.match(/Chrome\/[1-6]\./gi)), | |
supports: {} | |
}; | |
window.xpath = !! (document.evaluate); | |
window.opera = window[document.isSameNode ? "opera95" : "opera9"] = window.opera; | |
if (window.ActiveXObject) { | |
window.ie = (window[document.implementation ? (window.XMLHttpRequest || window.postMessage ? (window.postMessage && navigator.userAgent.indexOf("MSIE 8") !== -1 ? "ie8" : "ie7") : "ie6") : "ie5"]) = true; | |
if (window.HTMLCanvasElement && !window.atob) { | |
window.ie9 = true; | |
window.ie8 = false | |
} | |
if (window.atob) { | |
window.ie9 = window.ie8 = false; | |
window.ie10 = true | |
} | |
} else { | |
if (document.childNodes && !document.all && !navigator.taintEnabled && !window.mozIndexedDB) { | |
window.webkit = window.safari = window[window.xpath ? "webkit420" : "webkit419"] = true; | |
window.safari3 = window["webkit420"]; | |
window.safari2 = window["webkit419"] | |
} else { | |
if (document.getBoxObjectFor !== null && !window.opera) { | |
window.gecko = window.moz = true; | |
window.gecko3 = window.gecko && !! document.getElementsByClassName && document.createElement("div").isContentEditable === undefined; | |
window.gecko2 = window.gecko && !window.gecko3; | |
window.gecko4 = window.gecko && !window.gecko2 && !window.gecko3 | |
} | |
} | |
} | |
window.chrome = !window.sidebar && !window.gecko && window.webkit && !window.ie && navigator.userAgent.indexOf("Chrome") != -1; | |
window.ios = window.navigator.userAgent.indexOf("AppleWebKit") !== -1 && window.navigator.userAgent.indexOf("Mobile") !== -1; | |
window.android = window.navigator.userAgent.indexOf("Android") !== -1; | |
if (window.chrome) { | |
document.documentElement.className += "agent-chrome"; | |
window.safari = window.safari2 = window.safari3 = false | |
} | |
if (!window.HTMLElement) { | |
window.HTMLElement = {}; | |
if (window.safari) { | |
document.createElement("iframe") | |
} | |
window.HTMLElement.prototype = (window.safari) ? window["[[DOMElement.prototype]]"] : {} | |
} | |
if (window.ie && !window.ie9) { | |
"article aside footer header hgroup nav section time figure figcaption mark main".replace(/\w+/g, function (n) { | |
document.createElement(n) | |
}) | |
} | |
window.HTMLElement.prototype.ID = { | |
type: "element" | |
}; | |
window.ID = { | |
type: "window" | |
}; | |
document.ID = { | |
type: "document" | |
}; | |
document.head = document.getElementsByTagName("head")[0]; | |
document.base = document.getElementsByTagName("base")[0] || null; | |
if (document.base) { | |
document.base = document.base.href | |
} | |
if (window.ie6 || window.ie5) { | |
try { | |
document.execCommand("BackgroundImageCache", false, true) | |
} catch (ex) {} | |
} | |
if (!window.console) { | |
window.console = window.console || {}; | |
var consoleMethods = ["time", "timeEnd", "clear", "log", "warn", "error", "info"]; | |
for (var i = 0, l = consoleMethods.length; i < l; i++) { | |
window.console[consoleMethods[i]] = window.console[consoleMethods[i]] || Core.empty | |
} | |
} | |
Core.supports["webSockets"] = "WebSocket" in window || "MozWebSocket" in window; | |
Core.supports["classList"] = !window.webkit && (document.documentElement && document.documentElement.classList !== undefined); | |
Core.supports["transitions"] = document.documentElement.style.webkitTransition !== undefined || document.documentElement.style.mozTransition !== undefined || document.documentElement.style.oTransition !== undefined || document.documentElement.style.transition != undefined; | |
var Element = {}; | |
var Garbage = { | |
closures: {}, | |
elements: [], | |
discarded: 0, | |
onBeforeUnload: function (_2) { | |
this.removeEvent("DOMContentLoaded"); | |
if (window.ie && document.state === "interactive") { | |
function _3() { | |
document.detachEvent("onstop", _3); | |
Garbage.onLoad.call(this) | |
}; | |
document.attachEvent("onstop", _3); | |
window.setTimeout(function () { | |
document.detachEvent("onstop", _3) | |
}, 0) | |
} else { | |
this.addEvent("unload", Garbage.onUnload.bind(this)) | |
} | |
}, | |
onUnload: function (_4) { | |
Garbage.collect(this.document); | |
Garbage.collect(this); | |
Garbage.discard(_4) | |
}, | |
collect: function (el) { | |
if (!el || (el.ID && el.ID.collected) || !Garbage.elements || !el.nodeType) { | |
return el | |
} | |
el.ID = el.ID || {}; | |
el.ID.collected = true; | |
Garbage.elements.push(el); | |
this.elCount++; | |
return el | |
}, | |
discard: function (_6) { | |
var el, p; | |
var _9 = _6 && _6.type && _6.type == "beforeunload"; | |
_6 = _9 ? this.elements : _6; | |
for (var i = 0, j = _6.length; i < j; i++) { | |
var _c = true; | |
el = _6[i]; | |
if (!el || !el.extended) { | |
continue | |
} | |
this.discarded++; | |
Garbage.elements[Garbage.elements.indexOf(el)] = null; | |
if (el.removeEvents) { | |
el.removeEvents() | |
} | |
if (window.ie) { | |
for (p in Element.Methods) { | |
el[p] = null | |
} | |
for (p in el.methods) { | |
el[p] = null | |
} | |
} | |
el.extended = el.ID = el.events = el.methods = el.cache = el = null | |
} | |
if (_9) { | |
Garbage.closures = Garbage.elements = null; | |
if (window.CollectGarbage) { | |
window.CollectGarbage() | |
} | |
} | |
} | |
}; | |
$typeOf = $type = function (_d) { | |
var _e, _f; | |
if (_d === null || _d === undefined) { | |
return false | |
} | |
if (_d.ID && _d.ID.type) { | |
return _d.ID.type | |
} | |
if (_d.window) { | |
_d.ID = { | |
type: "window" | |
}; | |
return "window" | |
} | |
_e = typeof (_d); | |
if (_e == "object" && (_d.extented && _d.type) || (_d.target || _d.srcElement)) { | |
if (_d.type) { | |
_d.ID = { | |
type: "event" | |
}; | |
return "event" | |
} | |
} | |
if (_e == "object" && _d.nodeName) { | |
switch (_d.nodeType) { | |
case 1: | |
_f = "element"; | |
break; | |
case 3: | |
_f = (/\S/).test(_d.nodeValue) ? "textnode" : "whitespace"; | |
break | |
} | |
_d.ID = { | |
type: _f | |
}; | |
return _f | |
} | |
if (_d.length !== undefined && typeof _d.length == "number") { | |
if ("item" in _d) { | |
_f = "collection" | |
} | |
if (_d.callee) { | |
_f = "arguments" | |
} | |
if (!window.ie) { | |
_d.ID = { | |
type: _f | |
} | |
} | |
return _f | |
} | |
return _e | |
}; | |
$extend = function () { | |
var _10 = arguments; | |
if (!_10[1]) { | |
_10 = [this, _10[0]] | |
} | |
if (!_10[1]) { | |
return _10[0] | |
} | |
for (var p in _10[1]) { | |
try { | |
_10[0][p] = _10[1][p] | |
} catch (ex) {} | |
} | |
return _10[0] | |
}; | |
$is = function (obj) { | |
return !(obj === null || typeof (obj) === "undefined" || typeof (obj) === "unknown") && (obj || obj === 0) | |
}; | |
$any = function () { | |
var _13 = null, | |
_14 = $A(arguments); | |
for (var i = 0, l = _14.length; i < l; i++) { | |
if ($is(_14[i])) { | |
_13 = _14[i]; | |
break | |
} | |
} | |
return _13 | |
}; | |
$filter = function () { | |
return $A(arguments).filter($is) | |
}; | |
function $arguments(i) { | |
return function () { | |
return arguments[i] | |
} | |
}; | |
$uniqueID = function (obj) { | |
if (!this.$UID) { | |
this.$UID = 0 | |
} | |
if (!obj.$UID) { | |
obj.$UID = "UID" + this.$UID++ | |
} | |
return obj.$UID | |
}; | |
$A = function (arg, _1a) { | |
var _1b = [], | |
_1c = $typeOf(arg); | |
if (_1c === "string") { | |
return arg.toArray() | |
} | |
if (_1c === "object") { | |
each(arg, function (_1d) { | |
_1b.push(_1d) | |
}); | |
return _1b | |
} | |
_1a = _1a || 0; | |
if (_1a !== 0 && _1c === "arguments") { | |
return Array.prototype.slice.call(arg) | |
} | |
if (_1a < 0) { | |
_1a = arg.length + _1a | |
} | |
var _1e = _1e || (arg.length - _1a); | |
for (var i = 0; i < _1e; i++) { | |
_1b[i] = arg[_1a++] | |
} | |
return _1b | |
}; | |
$clear = function (_20) { | |
clearInterval(_20); | |
clearTimeout(_20); | |
return ((_20 = null)) | |
}; | |
$forEach = each = function (obj, fn, _23) { | |
for (var _24 in obj) { | |
if (!(_24 === "extend" && $typeOf(obj[_24]) === "function")) { | |
fn.call(_23, obj[_24], _24) | |
} | |
} | |
}; | |
$toJSON = function (_25) { | |
return JSON.stringify(_25) | |
}; | |
$now = function () { | |
return new Date().getTime() | |
}; | |
$rnd = function (min, max) { | |
return min + (Math.random() * (max - min)) | |
}; | |
$C = function (_28, _29) { | |
return $(document.createElement(_28)).set(_29) | |
}; | |
$CT = function (_2a) { | |
return document.createTextNode(_2a) | |
}; | |
$T = function (_2b, _2c) { | |
if (!_2b.push) { | |
_2b = [_2b] | |
} | |
return ($(_2c) || document).getElements(_2b.join(",")) | |
}; | |
$merge = function () { | |
var mix = {}, ap, mp, t; | |
for (var i = 0; i < arguments.length; i++) { | |
for (var _32 in arguments[i]) { | |
ap = arguments[i][_32]; | |
mp = mix[_32]; | |
if ($typeOf(ap) == "object" && $typeOf(mp) == "object") { | |
mix[_32] = $merge(mp, ap) | |
} else { | |
mix[_32] = ap | |
} | |
} | |
} | |
return mix | |
}; | |
Abstract = function (obj) { | |
obj = obj || {}; | |
obj.extend = $extend; | |
return obj | |
}; | |
if (!Object.create && typeof (Object.create) !== "function") { | |
Object.create = function (src) { | |
var F = new Function(); | |
F.prototype = src; | |
return new F | |
} | |
} | |
if (!Object.keys) { | |
Object.keys = function (obj) { | |
var ret = []; | |
for (var _38 in obj) { | |
if (obj.hasOwnProperty(_38)) { | |
ret.push(_38) | |
} | |
} | |
return ret | |
} | |
} | |
var prototypes = [Array, String, Date, Number, Function, RegExp, Boolean]; | |
for (var i = 0, l = prototypes.length; i < l; i++) { | |
prototypes[i].extend = function () { | |
$extend(this.prototype, arguments[0]) | |
}; | |
prototypes[i].prototype.ID = { | |
type: ["array", "string", "date", "number", "function", "regexp", "boolean"][i] | |
} | |
} | |
Array.extend({ | |
forEach: function (fn, _3a) { | |
for (var i = 0, j = this.length; i < j; i++) { | |
fn.call((_3a || this[i]), this[i], i, this) | |
} | |
}, | |
map: function (fn, _3e) { | |
var _3f = []; | |
var _40 = function () { | |
return this | |
}; | |
for (var i = 0, j = this.length; i < j; i++) { | |
_3f[i] = fn.call(_3e, this[i], i, this) | |
} | |
return _3f | |
}, | |
unique: function (_43) { | |
var _44 = {}, ret = []; | |
this.each(function (_46) { | |
var _47 = _46; | |
if (_43 == true) { | |
_47 = _46.toLowerCase() | |
} | |
if (!_44[_47]) { | |
_44[_47] = true; | |
ret.push(_46) | |
} | |
}); | |
return ret | |
}, | |
reduce: function (fn) { | |
if (Array.prototype.reduce) { | |
return Array.prototype.reduce | |
} | |
var len = this.length || 0, | |
i = 0, | |
rv; | |
if (arguments.length > 2) { | |
rv = arguments[1] | |
} else { | |
do { | |
if (i in this) { | |
rv = this[i++]; | |
break | |
} | |
if (++i >= len) { | |
throw new TypeError() | |
} | |
} while (true) | |
} | |
for (; i < len; i++) { | |
if (i in this) { | |
rv = fn.call(undefined, rv, this[i], this) | |
} | |
} | |
return rv | |
}, | |
indexOf: function (_4c) { | |
for (var i = 0; | |
((thisItem = this[i]) || $is(thisItem)); i++) { | |
if ($typeOf(thisItem) === "date" && $typeOf(_4c) === "date") { | |
if (thisItem.getTime() === _4c.getTime()) { | |
return i | |
} | |
} else { | |
if (thisItem == _4c) { | |
return i | |
} | |
} | |
} | |
return -1 | |
}, | |
empty: function () { | |
this.length = 0; | |
return this | |
}, | |
shuffle: function () { | |
for (var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x) {} | |
return this | |
}, | |
clone: function () { | |
return $A(this) | |
}, | |
rnd: function () { | |
return this[parseInt($rnd(0, this.length - 1))] | |
}, | |
every: function (fn, _52) { | |
for (var i = 0, j = this.length; i < j; i++) { | |
if (!fn.call(_52, this[i], i, this)) { | |
return false | |
} | |
} | |
return true | |
}, | |
filter: function (fn, _56) { | |
var _57 = []; | |
for (var i = 0, j = this.length; i < j; i++) { | |
if (fn.call(_56, this[i], i, this)) { | |
_57.push(this[i]) | |
} | |
} | |
return _57 | |
}, | |
remove: function (_5a) { | |
var i = 0, | |
len = this.length; | |
while (i < len) { | |
if (this[i] === _5a) { | |
this.splice(i, 1); | |
len-- | |
} else { | |
i++ | |
} | |
} | |
return this | |
}, | |
contains: function (_5d) { | |
return !!(this.indexOf(_5d) != -1) | |
}, | |
extend: function (_5e) { | |
for (var i = 0, j = _5e.length; i < j; i++) { | |
this.include(_5e[i]) | |
} | |
return this | |
}, | |
getLast: function () { | |
return this[this.length - 1] | |
}, | |
clone: function () { | |
return [].concat(this) | |
}, | |
include: function (_61) { | |
if (!this.contains(_61)) { | |
this.push(_61) | |
} | |
return this | |
} | |
}); | |
Array.prototype.each = Array.prototype.forEach; | |
Array.prototype.copy = Array.prototype.clone; | |
String.extend({ | |
escapeRegExp: function () { | |
return this.replace(/([.*+?^${}()|[\]\\])/g, "\\$1") | |
}, | |
toUpper: function () { | |
var _62 = { | |
"Ά": "Α", | |
"Ό": "Ο", | |
"Ύ": "Υ", | |
"Ε": "Ε", | |
"Έ": "Ε", | |
"Ί": "Ι", | |
"Ώ": "Ω", | |
"Ή": "Η", | |
"ς": "Σ" | |
}, _63 = this.toUpperCase(); | |
each(_62, function (_64, key) { | |
_63 = _63.replace(new RegExp(key, "g"), _64) | |
}); | |
return _63 | |
}, | |
reverse: function () { | |
return $A(String(this)).reverse().join("") | |
}, | |
trim: function () { | |
return this.replace(/^\s\s*/, "").replace(/\s\s*$/, "") | |
}, | |
trimLeft: function () { | |
return this.replace(/^\s+/g, "") | |
}, | |
trimRight: function () { | |
return this.replace(/\s+$/g, "") | |
}, | |
stripScripts: function () { | |
return this.replace(new RegExp("(?:<script.*?>)((\n|\r|.)*?)(?:</script>)", "img"), "") | |
}, | |
toArray: function () { | |
return this.split("") | |
}, | |
stripSlashes: function () { | |
return this.replace(/\\('|")/g, "$1").replace(/\\{2}/g, "\\") | |
}, | |
addSlashes: function (_66) { | |
var _67 = this.replace(/"/g, "\\\""); | |
if (!_66) { | |
_67 = _67.replace(/'/g, "'\\'") | |
} | |
return _67 | |
}, | |
addSlashesSingle: function () {}, | |
camelCase: function () { | |
return this.replace(/-\D/g, function (_68) { | |
return _68.charAt(1).toUpperCase() | |
}) | |
}, | |
hyphenate: function () { | |
return this.replace(/\w[A-Z]/g, function (_69) { | |
return (_69.charAt(0) + "-" + _69.charAt(1).toLowerCase()) | |
}) | |
}, | |
evalJSON: function () { | |
var _6a = this.toString(); | |
if (!_6a || !_6a.length) { | |
return null | |
} | |
if (typeof (JSON) !== "undefined" && JSON.parse) { | |
try { | |
return JSON.parse(_6a) | |
} catch (ex) { | |
if (window.chrome && ex.type && ex.type !== "unexpected_token" || _6a[0] === "{" || _6a[0] === "[") { | |
return Core.JSON.parse(_6a) || null | |
} | |
return null | |
} | |
} | |
}, | |
contains: function (_6b) { | |
return this.indexOf(_6b) != -1 | |
}, | |
escapeHTML: function (_6c) { | |
var _6d = arguments.callee; | |
var _6e = this.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); | |
return _6c ? _6e.replace(/'/g, "'") : _6e.replace(/"/g, """) | |
}, | |
unescapeHTML: function () { | |
return this.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">") | |
}, | |
capitalize: function () { | |
return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase() | |
}, | |
pad: function (_6f, _70) { | |
_6f = _6f || 2; | |
_70 = _70 || "0"; | |
for (var i = 0, str = ""; i < _6f - this.toString().length - _70.length + 1; i++) { | |
str += _70 | |
} | |
return str + this | |
}, | |
toInt: function () { | |
var res = parseInt(this, 10); | |
return !isNaN(res) ? res : 0 | |
}, | |
toFloat: function () { | |
return parseFloat(this) | |
}, | |
toFormatted: function (_74, _75) { | |
var _76 = parseInt(Number(this)) || 0; | |
_75 === undefined && (function () { | |
_75 = _76.toString().indexOf(".") !== -1 ? _76.toString().replace(/^.+\./, "").length : 0 | |
})(); | |
_74 = _74 || "."; | |
var _77 = _74 == "." ? "," : "."; | |
var _78 = String(_76.toFixed(_75)).match(/^(\-)?(\d+?)(\.(\d+)?)?$/); | |
return ((_78[1] || "") + _78[2].reverse().replace(/(\d{3})(?!$)/g, "$1" + _74).reverse() + (_78[4] ? (_77 || ",") + _78[4] : "")).replace(new RegExp((_74 + _77).escapeRegExp()), _77) | |
}, | |
stripTags: function (_79) { | |
var reg, _7b = this; | |
if (_79) { | |
_79 = _79.push ? _79.join("|") : _79; | |
_79 = _79.replace(/[,>]\s*/gi, "|").replace(/</gi, "").replace(/^\||\|$/gi, ""); | |
reg = new RegExp("(\r\n|\r|\n)", "gi"); | |
_7b = _7b.replace(reg, ""); | |
reg = new RegExp("</(?!" + _79 + ").+?>", "gi"); | |
_7b = _7b.replace(reg, ""); | |
reg = new RegExp("<(?!" + _79 + ")[^/].+?>", "gi"); | |
_7b = _7b.replace(reg, ""); | |
return _7b | |
} else { | |
reg = new RegExp("</?[^>]+>", "gi"); | |
return _7b.replace(reg, "") | |
} | |
}, | |
rgbToHex: function (_7c) { | |
var rgb = this.match(/\d{1,3}/g); | |
return (rgb) ? rgb.rgbToHex(_7c) : false | |
}, | |
hexToRgb: function (_7e) { | |
var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/); | |
return (hex) ? hex.slice(1).hexToRgb(_7e) : false | |
}, | |
isValidEmail: function () { | |
return new RegExp("^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$").test(this) | |
}, | |
injectIn: function (_80) { | |
var _81 = $C("div"); | |
$A(_81.setHTML(this).childNodes).each(function (_82) { | |
$(_82).injectIn(_80) | |
}); | |
_81 = null; | |
return this | |
}, | |
injectAfter: function (_83) { | |
var _84 = $C("div"); | |
$A(_84.setHTML(this).childNodes).each(function (_85) { | |
$(_85).injectAfter(_83) | |
}); | |
_84 = null; | |
return this | |
}, | |
injectBefore: function (_86) { | |
var _87 = $C("div"); | |
$A(_87.setHTML(this).childNodes).each(function (_88) { | |
$(_88).injectBefore(_86) | |
}); | |
_87 = null; | |
return this | |
}, | |
unserialize: function (_89) { | |
var _8a; | |
var _8b = this; | |
var _8c = []; | |
var key = null; | |
var _8e = null; | |
var _8f = function (_90) { | |
return Number(_90.match(/:(.*?):/)[1]) | |
}; | |
var num, _92; | |
var obj = {}; | |
switch (_8b.charAt(0)) { | |
case "a": | |
_8a = _8f(_8b); | |
_8b = _8b.substr(String(_8a).length + 4); | |
for (var i = 0; i < _8a; ++i) { | |
key = _8b.unserialize(true); | |
_8b = key[1]; | |
_8e = _8b.unserialize(true); | |
_8b = _8e[1]; | |
obj[key[0]] = _8e[0] | |
} | |
_8b = _8b.substr(1); | |
return _89 ? [obj, _8b] : obj; | |
break; | |
case "s": | |
_8a = _8f(_8b); | |
return _89 ? [String(_8b.substr(String(_8a).length + 4, _8a)), _8b.substr(String(_8a).length + 6 + _8a)] : String(_8b.substr(String(_8a).length + 4, _8a)); | |
break; | |
case "i": | |
case "d": | |
num = Number(_8b.substring(2, _8b.indexOf(";"))); | |
return _89 ? [num, _8b.substr(String(num).length + 3)] : num; | |
break; | |
case "b": | |
_92 = (_8b.substr(2, 1) == 1); | |
return _89 ? [_92, _8b.substr(4)] : _92; | |
break; | |
default: | |
break | |
} | |
} | |
}); | |
String.extend({ | |
getWeekDay: function () { | |
var _95 = Date.Constants.days; | |
var _96 = this.trim(); | |
for (var i = 0, j = _95.length; i < j; i++) { | |
var reg = _95[i].replace(/\.$/, "").split(",").join(".?|") + " ?"; | |
if (new RegExp("^(" + reg + ")$", "i").test(_96)) { | |
return i | |
} | |
} | |
return null | |
}, | |
getMonth: function () { | |
string = this.trim(); | |
var _9a = Date.Constants.months; | |
for (var i = 0, j = _9a.length; i < j; i++) { | |
var reg = _9a[i].replace(/\.$/, "").split(",").join(".?|") + " ?"; | |
if (new RegExp("^(" + reg + ")$", "i").test(string)) { | |
return i | |
} | |
} | |
return null | |
}, | |
isDateDefinition: function () { | |
for (var key in Date.Constants.tokens) { | |
if (key.split(/,/).contains(this)) { | |
return Date.Constants.tokens[key][0]; | |
break | |
} | |
} | |
return false | |
}, | |
toDate: function (_9f) { | |
_9f = _9f && $typeOf(_9f) === "date" ? _9f : new Date(); | |
var _a0, _a1, _a2, _a3, _a4, day, _a6, _a7; | |
var _a8 = this.toString().replace(/(\d)[-\.]/g, "$1/").trim(); | |
_a8 = _a8.replace(/,/g, " "); | |
var _a9 = "(" + Date.Constants.months.join("|").replace(/\./, "").split(",").join(".?|") + ".?" + ")"; | |
var res, _ab = false; | |
var _ac = false; | |
if (_a8 === "") { | |
return _9f | |
} | |
_a8 = _a8.replace(/([0-9]{1,2})(th|st|rd|nd)/gi, "$1"); | |
_a8 = _a8.replace(/([\d:]+)? ?(PM|pm|am)/, function (_ad) { | |
var _ae; | |
if (_ad.toLowerCase().contains("pm")) { | |
_ae = _ad.replace(/^(\d{1,2})/, function (_af) { | |
return _af.toInt() + 12 | |
}) | |
} else { | |
_ae = _ad | |
} | |
return _ae.replace(/(PM|ΑΜ|AM|am)/gi, ":00") | |
}); | |
_a8 = _a8.replace(/^(\d{1,2})\/(\d{1,2})\/(\d{2,4})/, "$3/$2/$1"); | |
_a8 = _a8.replace(/ +/, " "); | |
if (_a8.getWeekDay() !== null) { | |
return _9f.next(_a8) | |
} | |
if (_a8.getMonth() !== null) { | |
return _9f.next(_a8) | |
} | |
if (/^\d{4}$/.test(_a8)) { | |
return _9f.today().set(_a8 + "/1/1") | |
} | |
if (/^\d{1,2}$/.test(_a8)) { | |
return _9f.set({ | |
"day": _a8 | |
}) | |
} | |
if (_a4 = _a8.match(new RegExp("^(\\d{1,2})[ /](" + _a9 + ")(.*?)$", "i"))) { | |
_a8 = [_a4[2], _a4[1], _a4[4]].join(" ") | |
} | |
_a8 = _a8.replace(/(\d{2,4})(\d{2})(\d{2,4})/, function (_b0, _b1, _b2, _b3) { | |
var _b4 = _b1.length > _b3.length ? _b1 : _b3; | |
var day = _b4 === _b1 ? _b3 : _b1; | |
return [_b4.pad(4, "20"), _b2, day].join("/") | |
}); | |
var reg = Date.Constants.days.join("|").replace(/\./, "").split(",").join(".?|") + ".?"; | |
_a8 = _a8.replace(new RegExp("^(" + reg + ")", "i"), ""); | |
_a8 = _a8.replace(/(\d+ ?\w+) ago/i, "-$1"); | |
if (_a4 = _a8.match(/(\d{2,4})\/(\d{2,4})\/(\d{2})/i)) { | |
if (_a4[3].toInt() > 31) { | |
return null | |
} | |
if (_a4[2].toInt() > 12) { | |
return null | |
} | |
} | |
if (_a4 = _a8.match(/(\d{2}):(\d{2})(:(\d{2}))?/i)) { | |
if (_a4[1].toInt() > 23 || _a4[2] > 59 || (_a4[3] && _a4[3] > 59)) { | |
return null | |
} | |
} | |
if (((_a4 = _a8.split(/ /g)) && _a4.length < 3) && (_a0 = new Date(_a8)) && _a0.isValid()) { | |
if (!/[0-9]{4}/.test(_a8)) { | |
_a0.setYear(new Date().getFullYear()) | |
} | |
return _a0 | |
} | |
if (_a4 && _a4.length >= 3) { | |
if (_a4[0].length > 3 && (_a0 = new Date(_a4[0] + " " + _a4[1])) && _a0.isValid()) { | |
_a8 = _a8.replace(/^.*? .*? /gi, ""); | |
_9f = _a0; | |
var _b7 = _a8.match(/[0-9]{4}/); | |
if (!_b7) { | |
_9f.setYear(new Date().getFullYear()) | |
} | |
} else { | |
if (_a4[0].length > 3 && (_a0 = new Date(_a4[0])) && _a0.isValid()) { | |
_a8 = _a8.replace(/^.*? /gi, ""); | |
_9f = _a0 | |
} | |
} | |
} | |
var _b8 = _a8.replace(/ [^ ]+$/g, ""); | |
if (_b8.length > 4 && _a4 && _a4.length >= 2 && (_a0 = new Date(_b8)) && _a0.isValid()) { | |
var _b7 = _a8.match(/[0-9]{4}/); | |
if (!_b7) { | |
_a0.setYear(new Date().getFullYear()) | |
} else { | |
_a8 = _a8.replace(new RegExp("^.*?" + _b8 + "/?"), "") | |
} | |
_9f = _a0 | |
} | |
_a1 = (_a8 + " ").match(/(\d{4}|^today|now|noon|midnight|yesterday|tomorrow|next \w+|last \w+|[\+\-]\d{1,} ?\w+|\d{1,} ?[a-z]+|\S+? )/gi) || []; | |
if (!_a1.length && _9f) { | |
_ac = true | |
} | |
for (var i = 0, j = _a1.length; i < j; i++) { | |
day = null; | |
_a7 = null; | |
_a7 = null; | |
_a2 = _a1[i].trim().toLowerCase(); | |
if (_a4 = _a2.match(/(next|last) (\w+)/)) { | |
_ac = true; | |
res = _9f[_a4[1]](_a4[2]); | |
continue | |
} | |
if (_9f[_a2] && $typeOf(_9f[_a2]) === "function") { | |
if (_a2 === "today" && i > 0) { | |
return null | |
} | |
res = _9f[_a2](); | |
if (res) { | |
_ac = true | |
} | |
continue | |
} | |
if (/\+|-/.test(_a2)) { | |
res = _9f.add(_a2); | |
if (!res) { | |
return null | |
} else { | |
_ab = _a2.contains("+") ? 1 : -1 | |
} | |
_ac = true; | |
continue | |
} | |
if (_ab && /\d{1,} ?[a-z]+/.test(_a2)) { | |
res = _9f.add(_a2); | |
_ac = true; | |
if (!res) { | |
_ab = false | |
} else { | |
continue | |
} | |
} | |
_ab = false; | |
if (_a2.contains(":") && (_a4 = _a2.split(/:/)) && $typeOf(_a4) == "array") { | |
_9f.set({ | |
"hours": _a4[0], | |
"mins": _a4[1] || 0, | |
"secs": _a4[2] || 0, | |
"millisecs": _a4[3] || 0 | |
}); | |
_ac = true; | |
continue | |
} | |
if ((_a6 = _a2.getMonth()) !== null) { | |
if (_a1[i + 1] && /^\d{1,2}$/.test(_a1[i + 1].trim())) { | |
day = _a1[i + 1].trim(); | |
i++ | |
} | |
if (_a1[i + 1] && /^\d{4}$/.test(_a1[i + 1].trim())) { | |
_a7 = _a1[i + 1].trim(); | |
i++ | |
} | |
if (!_a7) { | |
_9f.next(_a1[i].trim()) | |
} | |
_9f.set({ | |
"month": _a6, | |
"day": day || 1, | |
"year": _a7 | |
}); | |
_ac = true; | |
continue | |
} | |
if (/^\d{4}$/i.test(_a2)) { | |
_9f.set({ | |
"year": _a2 | |
}); | |
_ac = true; | |
continue | |
} | |
return null | |
} | |
if (!_ac) { | |
_9f = null | |
} | |
return _9f && _9f.isValid() ? _9f : null | |
} | |
}); | |
String.prototype.htmlSpecialChars = String.prototype.escapeHTML; | |
Function.prototype.prototype = {}; | |
Function.extend({ | |
bind: function () { | |
var fn = this; | |
var _bc = $A(arguments); | |
var _bd = _bc.shift(); | |
var _be = $uniqueID(fn); | |
if (fn === null) { | |
return null | |
} | |
if (!Garbage.closures) { | |
Garbage.closures = {} | |
} | |
Garbage.closures[_be] = fn; | |
fn = null; | |
var _bf = function (e) { | |
return e && e.type && !e.extended && (e.target || e.srcElement !== undefined) | |
}; | |
var _c1 = function () { | |
if (typeof ($A) === "undefined") { | |
return null | |
} | |
var _c2 = $A(arguments) || []; | |
var evt = _c2.getLast(), | |
_c4; | |
var _c5 = $A(_bc); | |
if (_bf(evt)) { | |
if (evt.type === "DOMContentLoaded") { | |
window.DOMContentLoaded = true | |
} | |
if (_bf(_c5.getLast())) { | |
_c5.pop() | |
} | |
if ((_c4 = _c2.pop()) && _c4.length) { | |
_c5.extend(_c2) | |
} | |
_c5.push($E(evt)) | |
} else { | |
_c5 = _c5.concat(_c2) | |
} if (_bd && _bd.nodeType && _bd.nodeType == 1) { | |
_bd = $(_bd) | |
} | |
if (Garbage.closures && Garbage.closures[_be]) { | |
return Garbage.closures[_be].apply(_bd, _c5) | |
} | |
}; | |
_c1.bound = true; | |
return _c1 | |
}, | |
delay: function (_c6, _c7) { | |
var _c8 = this; | |
var _c9 = arguments; | |
var fn = function () { | |
return _c8.apply(_c7, $A(_c9).slice(2)) | |
}; | |
if (_c6 === -1) { | |
fn(); | |
return -1 | |
} | |
return setTimeout(fn, _c6) | |
}, | |
periodical: function (_cb, _cc) { | |
var _cd = this; | |
var _ce = arguments; | |
var fn = function () { | |
return _cd.apply(_cc, $A(_ce).slice(2)) | |
}; | |
return setInterval(fn, _cb) | |
} | |
}); | |
Number.extend({ | |
clear: function () { | |
$clear(this); | |
return this | |
}, | |
round: function (_d0) { | |
_d0 = Math.pow(10, _d0 || 0); | |
return Math.round(this * _d0) / _d0 | |
}, | |
repeat: function (fn, _d2) { | |
for (var i = 0; i < this; i++) { | |
fn.call(_d2, i + 1) | |
} | |
}, | |
limit: function (min, max) { | |
if (max === undefined) { | |
return Math.max(this, min) | |
} else { | |
return Math.min(max, Math.max(min, this)) | |
} | |
}, | |
toFormatted: String.prototype.toFormatted, | |
pad: String.prototype.pad, | |
toInt: String.prototype.toInt, | |
toFloat: String.prototype.toFloat | |
}); | |
Date.extend({ | |
toYMD: function () { | |
return this.format("Y-m-d") | |
}, | |
isLeap: function () { | |
var _d6 = this.getFullYear(); | |
return _d6 % 400 === 0 || (_d6 % 4 === 0 && _d6 % 100 !== 0) | |
}, | |
format: function (_d7) { | |
var _d8 = this; | |
return _d7.replace(/(Y|y|j|n|w|m|d|s|h|H|i|m|G|D|l|M|F)/g, function (_d9, _da) { | |
var _db = _d8.getHours(); | |
var _dc = _db > 12 ? _db - 12 : _db; | |
switch (_d9) { | |
case "Y": | |
return _d8.getFullYear(); | |
case "y": | |
return (_d8.getFullYear() - 2000).pad(2); | |
case "j": | |
return _d8.getDate(); | |
case "d": | |
return _d8.getDate().pad(2); | |
case "n": | |
return _d8.getMonth() + 1; | |
case "m": | |
return (_d8.getMonth() + 1).pad(2); | |
case "h": | |
return _dc.pad(2); | |
case "H": | |
return _db.pad(2); | |
case "g": | |
return _dc; | |
case "G": | |
return _db; | |
case "i": | |
return _d8.getMinutes().pad(2); | |
case "s": | |
return _d8.getSeconds().pad(2); | |
case "w": | |
return _d8.getDay(); | |
case "D": | |
return Date.Constants.days[_d8.getDay()].split(/,/)[1]; | |
case "l": | |
return Date.Constants.days[_d8.getDay()].split(/,/)[0]; | |
case "M": | |
return Date.Constants.months[_d8.getMonth()].split(/,/)[1]; | |
case "F": | |
return Date.Constants.months[_d8.getMonth()].split(/,/)[0] | |
} | |
}) | |
}, | |
clone: function () { | |
return new Date(this.getTime()) | |
}, | |
getDaysInMonth: function () { | |
this.daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][this.getMonth()]; | |
if (this.isLeap() && this.getMonth() == 1) { | |
this.daysInMonth += 1 | |
} | |
return this.daysInMonth | |
}, | |
set: function (_dd) { | |
var _de = this; | |
if ($typeOf(_dd === "number") && _dd < 100000) { | |
_dd = String(_dd) | |
} | |
switch ($typeOf(_dd)) { | |
case "string": | |
return _dd.toDate(_de); | |
break; | |
case "number": | |
return new Date(_dd); | |
break; | |
case "date": | |
return new Date(_dd.getTime()); | |
break | |
} | |
each(_dd, function (_df, _e0) { | |
for (var key in Date.Constants.tokens) { | |
var _e2 = key.split(/,/); | |
if (_e2.contains(_e0) && $typeOf(_df)) { | |
_df = _df.toInt(); | |
_de.add((_df - _de[Date.Constants.tokens[key][1]]()) + _e0); | |
break | |
} | |
} | |
}); | |
return _de | |
}, | |
clearTime: function () { | |
["Hours", "Minutes", "Seconds", "Milliseconds"].each(function (_e3) { | |
this["set" + _e3](0) | |
}, this); | |
return this | |
}, | |
addMilliseconds: function (_e4) { | |
this.setMilliseconds(this.getMilliseconds() + _e4); | |
return this | |
}, | |
addMonths: function (_e5) { | |
var n = this.getDate(); | |
this.setDate(1); | |
this.setMonth(this.getMonth().toInt() + _e5.toInt()); | |
this.setDate(Math.min(n, this.getDaysInMonth())); | |
return this | |
}, | |
addYears: function (_e7) { | |
return this.addMonths(12 * _e7) | |
}, | |
today: function () { | |
return this.set(new Date()).clearTime() | |
}, | |
now: function () { | |
return this.set(new Date()) | |
}, | |
yesterday: function () { | |
return this.add("-1d").clearTime() | |
}, | |
tomorrow: function () { | |
return this.add("+1d").clearTime() | |
}, | |
noon: function () { | |
return this.clearTime().add("+12h") | |
}, | |
midnight: function () { | |
return this.tomorrow().clearTime() | |
}, | |
toLastDayOfMonth: function (_e8) { | |
this.set({ | |
"month": _e8 || this.getMonth() | |
}); | |
return this.set({ | |
"day": this.getDaysInMonth() | |
}) | |
}, | |
toLastDaysOfWeek: function () {}, | |
getDayOfYear: function () { | |
return Math.floor((this - new Date(this.getFullYear(), 0, 1)) / 86400000) | |
}, | |
next: function (_e9, _ea) { | |
var _eb = this, | |
_ec, day, _ee; | |
_ea = _ea || "+"; | |
if (!_e9) { | |
return false | |
} else { | |
_eb.clearTime() | |
} if (_ec = _e9.isDateDefinition()) { | |
if ($typeOf(_ec) === "string") { | |
_eb[_ec](_ea === "+" ? 1 : -1); | |
return _eb | |
} | |
_eb.addMilliseconds(_ea === "+" ? _ec : -_ec); | |
return _eb | |
} | |
if ((day = _e9.getWeekDay()) !== null) { | |
while (_eb.getDay() !== day) { | |
_eb.add(_ea + "1d") | |
} | |
return _eb | |
} | |
if ((_ee = _e9.getMonth()) !== null) { | |
while (_eb.getMonth() !== _ee) { | |
_eb.add(_ea + "1month"); | |
_eb.set({ | |
day: 1 | |
}) | |
} | |
return _eb | |
} | |
}, | |
add: function (_ef) { | |
var _f0 = this, | |
_f1; | |
var _f2 = _ef.match(/^([+-])? ?(\d{1,}) ?(.*?)$/); | |
if (_f2 === null || !_f2[3]) { | |
return false | |
} | |
var _f3 = _f2[1] || "+"; | |
var _f4 = _f2[2]; | |
var _f5 = _f2[3]; | |
for (var key in Date.Constants.tokens) { | |
var _f7 = key.split(/,/); | |
if (_f7.contains(_f5)) { | |
_f1 = Date.Constants.tokens[key][0]; | |
if ($typeOf(_f1) === "string") { | |
_f0[_f1](_f3 == "+" ? _f4 : -_f4); | |
continue | |
} | |
_f0.addMilliseconds(_f3 === "+" ? (_f1 * _f4) : -(_f1 * _f4)); | |
break | |
} | |
} | |
return _f0 | |
}, | |
last: function (_f8) { | |
this.next(_f8, "-") | |
}, | |
isValid: function () { | |
return this.toString() !== "Invalid Date" && !isNaN(this) && this.getFullYear() !== 1970 | |
}, | |
dt: function () { | |
var _f9 = new Date(), | |
day, _fb, _fc, _fd; | |
var _fe = _f9.clone().set("-1 day midnight").getTime(), | |
_ff = $now(), | |
ts = this.getTime(); | |
var days = ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"]; | |
var _102 = ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπτ", "Οκτ", "Νοε", "Δεκ"]; | |
var diff = (_ff - ts) / 1000; | |
var _fb = this.format("n").toInt(); | |
var day = this.format("j"); | |
var _fc = this.format("y"); | |
var _104 = _102[_fb - 1] + "."; | |
if (this.format("Hi") === "00") { | |
if (this.format("Y").toInt() !== _f9.getFullYear().toInt()) { | |
return this.format("j/n/Y") | |
} else { | |
return this.format("j/n") | |
} | |
} | |
if (ts > _ff) { | |
if (_fc != _f9.getFullYear()) { | |
return day + " " + _104 + " " + _fc | |
} else { | |
return day + " " + _104 | |
} | |
} | |
diff = parseInt(diff); | |
if (diff < 300) { | |
if (diff < 60 && diff > 0) { | |
return "πριν " + diff + "''" | |
} else { | |
if (diff < 60) { | |
return "πριν 1 λεπτό" | |
} else { | |
return "πριν " + parseInt((diff / 60 + 1)) + "'" | |
} | |
} | |
} else { | |
if (diff < 3600) { | |
return "πριν " + parseInt(((diff / 60) / 10) * 10) + "'" | |
} else { | |
if (diff < 7200) { | |
_fd = ((((diff - 3600) / 60) / 5) * 5).toInt(); | |
return "πριν 1 ώρα" + (_fd ? " & " + _fd + "'" : "") | |
} else { | |
if (diff < 10800) { | |
_fd = ((((diff - 7200) / 60) / 5) * 5).toInt(); | |
return "πριν 2 ώρες" + (_fd ? " & " + _fd + "'" : "") | |
} | |
} | |
} | |
} if (ts < _fe) { | |
if (ts >= _fe - 86400 * 1000 && this.format("Hi").toInt() > 400) { | |
return this.format("χτές H:i") | |
} else { | |
if (ts >= _fe - 86400 * 1000 * 5) { | |
return days[this.format("w").toInt()] + " " + this.format("H:i") | |
} else { | |
if (this.getFullYear() !== _f9.getFullYear()) { | |
return day + " " + _104 + " " + _fc | |
} else { | |
return day + " " + _104 | |
} | |
} | |
} | |
} else { | |
return this.format("H:i") | |
} | |
} | |
}); | |
Date.parseYMD = function (_105) { | |
return new Date(_105.replace(/^(\d+)?-(\d+)?-(\d+)$/, function (full, year, _108, day) { | |
return year + "," + _108.toInt() + "," + day.toInt() | |
})) | |
}; | |
Date.from = function (_10a) { | |
if (_10a) { | |
var date = new Date().set(_10a); | |
return date && date.isValid() ? date : null | |
} else { | |
return null | |
} | |
}; | |
Date.setLocale = function (_10c) { | |
this.locale = Date.locales[_10c] | |
}; | |
Date.locales = {}; | |
Date.Constants = { | |
days: ["Sunday,Sun", "Monday,Mon", "Tuesday,Tue", "Wednesday,Wen", "Thursday,Thu", "Friday,Fri", "Saturday,Sat"], | |
tokens: { | |
"ms,millisecs,milliseconds": [1, "getMilliseconds"], | |
"s,secs,second,seconds": [1000, "getSeconds"], | |
"m,mins,minutes,min": [60000, "getMinutes"], | |
"h,hour,hours": [3600000, "getHours"], | |
"d,day,days": [86400000, "getDate"], | |
"w,weeks,week": [86400000 * 7], | |
"month,months": ["addMonths", "getMonth"], | |
"y,year,years": ["addYears", "getFullYear"] | |
}, | |
months: ["January,Jan", "February,Feb", "March,Mar", "April,Apr", "May,May", "June,Jun", "July,Jul", "August,Aug", "September,Sept", "October,Oct", "November,Nov", "December,Dec"] | |
}; | |
var Class = function (_10d) { | |
var _10e = function () { | |
this.constructor = _10e; | |
return (arguments[0] !== null && this.initialize && $typeOf(this.initialize) == "function") ? this.initialize.apply(this, arguments) : this; | |
return (arguments[0] !== null && this.initialize && $typeOf(this.constructor) == "function") ? this.constructor.apply(this, arguments) : this | |
}; | |
$extend(_10e, this); | |
_10e.prototype = _10d || {}; | |
_10e.constructor = Class; | |
_10e.ID = { | |
type: "class" | |
}; | |
return _10e | |
}; | |
Class.prototype = { | |
implement: function () { | |
var obj = {}, args = arguments; | |
if ($typeOf(arguments[0]) == "string" && arguments[1]) { | |
obj[arguments[0]] = arguments[1]; | |
args = [obj] | |
} | |
for (var i = 0, l = args.length; i < l; i++) { | |
$extend(this.prototype, args[i]); | |
if (args[i] && args[i].constructor === Options) { | |
this.setOptions = $extend.bind(this.prototype.options) | |
} | |
} | |
return this | |
}, | |
extend: function (_113) { | |
var _114 = new this(null); | |
var hash = {}; | |
var _116; | |
for (var _117 in _113) { | |
var pp = _114[_117]; | |
_114[_117] = Class.Merge(pp, _113[_117]) | |
} | |
_114.constructor = this; | |
for (var i in _114) { | |
if ($typeOf(_114[i]) === "function" && !_114[i].parent) { | |
_114[i].parent = _114[i] | |
} | |
} | |
_116 = new Class(_114); | |
if (this.setOptions) { | |
_116.setOptions = $extend.bind(_116.prototype.options) | |
} | |
return _116 | |
} | |
}; | |
Class.Merge = function (_11a, _11b) { | |
if (_11a && _11a != _11b) { | |
var type = $typeOf(_11b); | |
if (type != $typeOf(_11a)) { | |
return _11b | |
} | |
switch (type) { | |
case "function": | |
var _11d = function () { | |
this.parent = arguments.callee.parent; | |
return _11b.apply(this, arguments) | |
}; | |
_11d.parent = _11a; | |
return _11d; | |
case "object": | |
return $merge(_11a, _11b) | |
} | |
} | |
return _11b | |
}; | |
$ = function (_11e, _11f) { | |
var _120 = true; | |
if ($typeOf(_11e) == "string") { | |
var _121 = _11e; | |
if (![" ", "<", "[", "]"].contains(_11e[0]) && /[#\. >]/.test(_11e)) { | |
_11e = $$(_11e)[0] | |
} else { | |
_11e = document.getElementById(_11e); | |
if (_11e && (_11e.nodeName === "TEXTAREA" || _11e.nodeName === "INPUT" || _11e.nodeName === "SELECT") && (window.ie5 || window.ie6 || window.ie7)) { | |
if (!_11e.id || (_11e.id != _121)) { | |
return null | |
} | |
} | |
} | |
} | |
if (!_11e) { | |
return null | |
} | |
if (!window["SVGPathElement"] || (_11e.constructor && (_11e.constructor !== window.SVGPathElement && _11e.constructor !== window.HTMLEmbedElement && _11e.constructor.toString() !== "[object HTMLUnknownElement]" && _11e.constructor.toString() !== "[object HTMLEmbedElement]"))) { | |
$extend(_11e, Element.Methods) | |
} else { | |
_120 = false | |
} if (_11e.extended) { | |
if (!_11e.set) {} | |
return _120 ? _11e.set(_11f) : _11e | |
} | |
if (_11e.nodeName && (_11e.nodeName.toLowerCase() === "embed" || _11e.nodeName.toLowerCase() === "object")) { | |
return _11e | |
} | |
if (_11e.window && _11e.window.document) { | |
each(window.Methods, function (fn, _123) { | |
_11e[_123] = fn.bind(_11e) | |
}) | |
} | |
_11e.extended = Core.empty; | |
_11e.methods = {}; | |
_11e.cache = {}; | |
_11e.ID = _11e.ID || {}; | |
_11e.ID.type = "element"; | |
if (!_11e.uniqueID) { | |
_11e.uniqueID = $uniqueID(_11e) | |
} | |
return _120 ? Garbage.collect(_11e).set(_11f) : _11e | |
}; | |
$E = function (_124) { | |
return _124.extended ? _124 : new Element.Event(_124 || window.event) | |
}; | |
Element.Event = new Class({ | |
initialize: function (_125) { | |
_125 = _125 || window.event; | |
this.type = _125.type; | |
this.extended = Core.empty; | |
this.target = $(_125.target || _125.srcElement || document); | |
this.currentTarget = _125.currentTarget || this.target; | |
this.eventPhase = _125.eventPhase; | |
if (this.target && this.target.nodeType == 3) { | |
this.target = $(this.target.parentNode) | |
} | |
this.layerX = window.webkit ? _125.offsetX : _125.layerX || _125.offsetX; | |
this.layerY = window.webkit ? _125.offsetY : _125.layerY || _125.offsetY; | |
if (["DOMMouseScroll", "mousewheel"].contains(this.type)) { | |
this.wheel = (_125.wheelDelta) ? _125.wheelDelta / 120 : -(_125.detail || 0) / 3 | |
} else { | |
if (/click|mouse|menu/.test(this.type)) { | |
try { | |
this.page = { | |
"x": _125.pageX || _125.clientX + window.getBody().scrollLeft, | |
"y": _125.pageY || _125.clientY + window.getBody().scrollTop | |
}; | |
this.client = { | |
"x": _125.pageX ? _125.pageX - window.pageXOffset : _125.clientX, | |
"y": _125.pageY ? _125.pageY - window.pageYOffset : _125.clientY | |
} | |
} catch (ex) {} | |
if (["mouseover", "mouseout"].contains(_125.type)) { | |
if (!_125.relatedTarget) { | |
if (window.ie) { | |
try { | |
this.relatedTarget = $((_125.type == "mouseover" ? _125.fromElement : _125.toElement)) | |
} catch (ex) {} | |
} | |
} else { | |
try { | |
this.relatedTarget = $(_125.relatedTarget) | |
} catch (ex) { | |
this.relatedTarget = null | |
} | |
} if (this.relatedTarget && this.relatedTarget.nodeType !== 1) { | |
try { | |
this.relatedTarget = this.relatedTarget.parentNode | |
} catch (ex) { | |
this.relatedTarget = this.target | |
} | |
} | |
this.relatedTarget = this.relatedTarget || null | |
} | |
this.rightClick = (_125.which == 3) || (_125.button == 2) || null; | |
this.middleClick = (_125.which == 2) || (_125.button == 4) || null; | |
this.leftClick = (_125.which < 2 || _125.button < 2) || null | |
} else { | |
if (this.type.contains("key")) { | |
this.code = _125.which || _125.keyCode; | |
for (var key in Element.Event.keys) { | |
if (parseInt(Element.Event.keys[key]) == parseInt(this.code)) { | |
this.key = key.toLowerCase(); | |
break | |
} | |
} | |
if (this.type == "keydown") { | |
var fKey = this.code - 111; | |
if (fKey > 0 && fKey < 13) { | |
this.key = "f" + fKey | |
} | |
} | |
this.key = this.key || String.fromCharCode(this.code).toLowerCase() | |
} | |
} | |
} | |
this.alt = _125.altKey; | |
this.meta = _125.metaKey; | |
this.shift = _125.shiftKey; | |
if (!this.shift && _125.modifiers) { | |
this.shift = !! (_125.modifiers & 4) | |
} | |
this.ctrl = _125.ctrlKey || this.key == "ctrl"; | |
this.timestamp = $now(); | |
this.event = _125; | |
this.ID = { | |
type: "event" | |
}; | |
if (this.event.dataTransfer) { | |
this.dataTransfer = this.event.dataTransfer | |
} | |
return this | |
}, | |
stop: function () { | |
if (Core.showEvent) { | |
console.log(this.type, this.event.target, this) | |
} | |
return this.stopPropagation().preventDefault() | |
}, | |
stopPropagation: function () { | |
if (this.event.stopPropagation) { | |
this.event.stopPropagation() | |
} else { | |
try { | |
this.event.cancelBubble = true | |
} catch (ex) {} | |
} | |
return this | |
}, | |
preventDefault: function () { | |
if (this.event.preventDefault) { | |
this.event.preventDefault() | |
} else { | |
try { | |
this.event.returnValue = false | |
} catch (ex) {} | |
} | |
return this | |
} | |
}); | |
Element.Event.checkRelatedTarget = function (_128) { | |
var _129 = _128.relatedTarget; | |
if (!_129) { | |
return true | |
} | |
return ($typeOf(this) != "document" && _129 != this && _129.prefix != "xul" && !this.contains(_129)) | |
}; | |
Element.Event.keys = new Abstract({ | |
"backspace": 8, | |
"tab": 9, | |
"return": 13, | |
"shift": 16, | |
"ctrl": 17, | |
"alt": 18, | |
"caps": 20, | |
"esc": 27, | |
"space": 32, | |
"pageup": 33, | |
"pagedown": 34, | |
"end": 35, | |
"home": 36, | |
"left": 37, | |
"up": 38, | |
"right": 39, | |
"down": 40, | |
"insert": 45, | |
"delete": 46 | |
}); | |
Element.Properties = new Abstract({ | |
"class": "className", | |
"cellspacing": "cellSpacing", | |
"cellpadding": "cellPadding", | |
"for": "htmlFor", | |
"colspan": "colSpan", | |
"rowspan": "rowSpan", | |
"accesskey": "accessKey", | |
"tabindex": "tabIndex", | |
"maxlength": "maxLength", | |
"readonly": "readOnly", | |
"frameborder": "frameBorder", | |
"value": "value", | |
"disabled": "disabled", | |
"checked": "checked", | |
"multiple": "multiple", | |
"selected": "selected" | |
}); | |
Element.Styles = { | |
"border": [], | |
"padding": [], | |
"margin": [] | |
}; | |
["Top", "Right", "Bottom", "Left"].each(function (_12a) { | |
for (var _12b in Element.Styles) { | |
Element.Styles[_12b].push(_12b + _12a) | |
} | |
}); | |
Element.borderShort = ["borderWidth", "borderStyle", "borderColor"]; | |
window.Methods = { | |
getBody: function (root) { | |
if (window.webkit) { | |
return this.document.body | |
} | |
if (!window.ie || this.document.documentElement) { | |
return this.document.documentElement | |
} | |
return this.document.compatMode == "BackCompat" || this != top ? this.document.body : this.document.documentElement | |
}, | |
getScrollTop: function () { | |
return this.pageYOffset || this.getBody().scrollTop | |
}, | |
getScrollLeft: function () { | |
return this.pageXOffset || this.getBody().scrollLeft | |
}, | |
getWidth: function () { | |
return window.webkit ? this.innerWidth - (this.document.body.offsetHeight > this.innerHeight ? 20 : 0) : this.getBody().clientWidth | |
}, | |
getHeight: function () { | |
return window.webkit ? this.innerHeight - (this.document.body.offsetWidth > this.innerWidth ? 20 : 0) : this.getBody().clientHeight | |
}, | |
getScrollWidth: function () { | |
if (window.ie) { | |
return Math.max(this.document.documentElement.offsetWidth, this.document.documentElement.scrollWidth) | |
} | |
if (window.safari) { | |
return this.document.body.scrollWidth | |
} | |
return this.document.documentElement.scrollWidth | |
}, | |
getScrollHeight: function () { | |
if (window.ie) { | |
return Math.max(this.document.documentElement.offsetHeight, this.document.documentElement.scrollHeight) | |
} | |
if (window.safari) { | |
return this.document.body.scrollHeight | |
} | |
return this.document.documentElement.scrollHeight | |
} | |
}; | |
(function () { | |
var _12d = 0; | |
var _12e = ["ms", "moz", "webkit", "o"]; | |
for (var x = 0; x < _12e.length && !window.requestAnimationFrame; ++x) { | |
window.requestAnimationFrame = window[_12e[x] + "RequestAnimationFrame"]; | |
window.cancelAnimationFrame = window[_12e[x] + "CancelAnimationFrame"] || window[_12e[x] + "RequestCancelAnimationFrame"] | |
} | |
if (!window.requestAnimationFrame) { | |
window.requestAnimationFrame = function (_130, _131) { | |
var _132 = new Date().getTime(); | |
var _133 = Math.max(0, 16 - (_132 - _12d)); | |
var id = window.setTimeout(function () { | |
_130(_132 + _133) | |
}, _133); | |
_12d = _132 + _133; | |
return id | |
} | |
} | |
if (!window.cancelAnimationFrame) { | |
window.cancelAnimationFrame = function (id) { | |
clearTimeout(id) | |
} | |
} | |
}()); | |
Element.Methods = { | |
set: function (_136) { | |
this.ID = this.ID || {}; | |
this.ID.type = "element"; | |
if (!_136 || $typeOf(_136) !== "object") { | |
return this | |
} | |
for (var _137 in _136) { | |
switch (_137) { | |
case "styles": | |
this.setStyles(_136[_137]); | |
break; | |
case "events": | |
this.addEvents(_136[_137]); | |
break; | |
case "properties": | |
this.setProperties(_136[_137]); | |
break; | |
case "methods": | |
this.addMethods(_136[_137]); | |
break; | |
default: | |
switch ($typeOf(_136[_137])) { | |
case "function": | |
this.addMethod(_137, _136[_137]); | |
break; | |
default: | |
this.setProperty(_137, _136[_137]) | |
} | |
break | |
} | |
} | |
return this | |
}, | |
addMethod: function (name, _139) { | |
this[name] = this.methods[name] = _139; | |
return this | |
}, | |
addMethods: function (_13a) { | |
each(_13a, function (_13b, name) { | |
this.addMethod(name, _13b) | |
}, this); | |
return | |
}, | |
setStyle: function (_13d, _13e) { | |
if (arguments.length == 1 && $typeOf(_13d) == "string") { | |
return this.setProperty("style", _13d) | |
} | |
if (_13d == "float") { | |
_13d = window.ie ? "styleFloat" : "cssFloat" | |
} | |
if (_13d == "opacity") { | |
this.setOpacity(parseFloat(_13e)) | |
} else { | |
switch ($typeOf(_13e)) { | |
case "number": | |
if (!["z-index", "zoom"].contains(_13d)) { | |
_13e += "px" | |
} | |
break; | |
case "array": | |
_13e = "rgb(" + _13e.join(",") + ")" | |
} | |
try { | |
this.style[_13d.camelCase()] = _13e.toString() | |
} catch (ex) { | |
alert([_13d, _13e]) | |
} | |
} | |
return this | |
}, | |
setStyles: function (css) { | |
each(css, function (_140, _141) { | |
this.setStyle(_141, _140) | |
}, this); | |
return this | |
}, | |
getProperty: function (_142) { | |
var flag = 0, | |
_144; | |
var _145 = Element.Properties[_142]; | |
if (_145) { | |
return this[_145] | |
} | |
if (["href", "src", "type"].contains(_142) || this.className === undefined) { | |
flag = 2 | |
} | |
if ((!window.ie || flag) || window.ie8 || (window.ie && _142 == "id")) { | |
return this.getAttribute(_142, flag) | |
} | |
return (_144 = this.attributes[_142]) && _144.specified ? _144.nodeValue : null | |
}, | |
getProperties: function () { | |
var obj = {}; | |
$A(arguments).each(function (prop) { | |
obj[prop] = this.getProperty(prop) | |
}, this); | |
return obj | |
}, | |
setProperty: function (_148, _149) { | |
if (_148 == "style") { | |
this.style.cssText = _149.toLowerCase(); | |
return this | |
} | |
var _14a = Element.Properties[String(_148)]; | |
if (_14a) { | |
this[_14a] = _149 | |
} else { | |
if (1) { | |
if (_149 === null) { | |
this.removeProperty(_148) | |
} else { | |
if (this.attributes && _148 === "action" && (window.ie7 || window.ie6)) { | |
this.attributes[_148].nodeValue = _149 | |
} else { | |
this.setAttribute(_148, _149) | |
} | |
} | |
} else { | |
this.attributes[_148].nodeValue = _149 | |
} | |
} | |
return this | |
}, | |
setProperties: function (_14b) { | |
each(_14b, function (_14c, _14d) { | |
this.setProperty(_14d.trim(), _14c) | |
}, this); | |
return this | |
}, | |
removeProperty: function (_14e) { | |
var _14f = Element.Properties[String(_14e)]; | |
if (_14f) { | |
this[_14f] = null | |
} else { | |
if (this.removeAttribute) { | |
this.removeAttribute(_14e) | |
} else { | |
this.attributes[_14e].nodeValue = null | |
} | |
} | |
return this | |
}, | |
addClass: function (_150) { | |
if (!_150) { | |
return this | |
} | |
if (Core.supports["classList"]) { | |
if (this.classList && !_150.push) { | |
try { | |
this.classList.add(_150.trim()) | |
} catch (ex) {} | |
return this | |
} | |
} | |
if (!this.hasClass(_150)) { | |
this.className += ((this.className ? " " : "") + _150) | |
} | |
return this | |
}, | |
removeClass: function (_151) { | |
if (Core.supports["classList"]) { | |
if (this.classList && !_151.push) { | |
this.classList.remove(_151.trim()); | |
return this | |
} | |
} | |
this.className = this.className.replace(new RegExp("(^| )" + _151.escapeRegExp() + "( |$)"), " ").trim(); | |
return this | |
}, | |
makePositioned: function () { | |
if (!this.isPositioned()) { | |
this.setStyle("position", "relative") | |
} | |
return this | |
}, | |
setClass: function (_152) { | |
this.className = _152; | |
return this | |
}, | |
toggleClass: function (_153) { | |
if (Core.supports["classList"]) { | |
if (this.classList) { | |
this.classList.toggle(_153); | |
return this | |
} | |
} | |
return this.hasClass(_153) ? this.removeClass(_153) : this.addClass(_153) | |
}, | |
hasClass: function (_154) { | |
if (Core.supports["classList"]) { | |
if (this.classList && !_154.push) { | |
return this.classList.contains(_154) | |
} | |
} | |
if (this.className == _154) { | |
return true | |
} | |
if ($typeOf(_154) == "array") { | |
_154 = "(" + _154.join("|") + ")" | |
} | |
return new RegExp("(^| )" + _154.escapeRegExp() + "($| )").test(this.className.toString()) | |
}, | |
isVisible: function () { | |
var isTR = this.nodeName.toLowerCase() === "tr", | |
w = this.offsetWidth, | |
h = this.offsetHeight; | |
return w !== 0 && h !== 0 && !isTR ? true : w === 0 && h === 0 && !isTR ? false : this.getStyle("display") !== "none" | |
}, | |
isHidden: function () { | |
return !this.isVisible() | |
}, | |
clone: function (_158, _159) { | |
var _15a = $(this.cloneNode( !! !(_158))); | |
if (!_159) { | |
return _15a | |
} | |
_15a.events = {}; | |
for (var type in this.events) { | |
_15a.events[type] = { | |
"keys": $A(this.events[type].keys), | |
"values": $A(this.events[type].values) | |
} | |
} | |
return _15a.removeEvents() | |
}, | |
remove: function () { | |
Garbage.discard(this); | |
return this.parentNode.removeChild(this) | |
}, | |
replace: function (el) { | |
this.parentNode.replaceChild(el, this); | |
return $(el) | |
}, | |
adopt: function (root) { | |
$(root).injectIn(this); | |
return this | |
}, | |
append: function (_15e) { | |
if (!_15e.nodeName) { | |
_15e = $C(_15e) | |
} | |
$(_15e).injectIn(this); | |
return _15e | |
}, | |
injectIn: function (root) { | |
return (root || document.body).appendChild(this) | |
}, | |
injectBefore: function (root) { | |
return ($(root.parentNode.insertBefore(this, root))) | |
}, | |
injectAfter: function (root) { | |
var next = $(root).getNext(); | |
if (next) { | |
return next.parentNode.insertBefore(this, next) | |
} else { | |
return this.injectIn($(root).parentNode) | |
} | |
}, | |
setHTML: function (html) { | |
if (html === undefined || html === null) { | |
html = "" | |
} | |
html = html.toString(); | |
if (window.ie && ["THEAD", "TBODY", "TR", "TD"].contains(this.tagName)) { | |
var div = $C("div"), | |
_165 = this.tagName; | |
switch (_165) { | |
case "THEAD": | |
case "TBODY": | |
div.innerHTML = "<table><tbody>" + html.stripScripts() + "</tbody></table>"; | |
depth = 2; | |
break; | |
case "TR": | |
div.innerHTML = "<table><tbody><tr>" + html.stripScripts() + "</tr></tbody></table>"; | |
depth = 3; | |
break; | |
case "TD": | |
div.innerHTML = "<table><tbody><tr><td>" + html.stripScripts() + "</td></tr></tbody></table>"; | |
depth = 4; | |
break | |
} | |
div = div.getChildDeep(depth); | |
$A(this.childNodes).each(function (node) { | |
this.removeChild(node) | |
}, this); | |
$A(div.childNodes).each(function (node) { | |
this.appendChild(node) | |
}, this) | |
} else { | |
try { | |
this.innerHTML = html | |
} catch (ex) {} | |
} | |
return this | |
}, | |
addEvents: function (_168, _169) { | |
each(_168, function (item, _16b) { | |
this.addEvent(_16b, item, _169) | |
}, this); | |
return this | |
}, | |
addEvent: function (type, fn, _16e) { | |
if (fn === null) { | |
return this | |
} | |
var skip = false, | |
_170 = !Element.nativeEvents.contains(type); | |
var _171 = null; | |
var _172; | |
var _173 = type; | |
var _174; | |
var _175 = true; | |
if (_16e) { | |
fn = fn.bind(_16e) | |
} | |
if (type === "mousewheel" && window.gecko) { | |
_173 = type = "DOMMouseScroll" | |
} | |
this.events = this.events || {}; | |
this.events[type] = this.events[type] || { | |
"keys": [], | |
"values": [] | |
}; | |
if (this.events[type].keys.contains(fn)) { | |
return this | |
} | |
this.events[type].keys.push(fn); | |
if (type == "DOMContentLoaded" && (document.readyState === "complete" || window.DOMContentLoaded === true)) { | |
fn(); | |
return this | |
} | |
if (type == "DOMContentLoaded" && (!document.addEventListener || window.safari2)) { | |
var _176 = false; | |
try { | |
_176 = window.frameElement === null | |
} catch (ex) {} | |
if (!_176) {} | |
if (!window._DOMCLEvents) { | |
var _177 = function () { | |
if (arguments.callee.done || !window._DOMCLEvents) { | |
return false | |
} | |
arguments.callee.done = true; | |
$clear(window._DOMCLTimer); | |
window._DOMCLEvents.each(function (e) { | |
e() | |
}); | |
window._DOMCLEvents = null; | |
if (window._DOMScriptElement) { | |
window._DOMScriptElement.onreadystatechange = null; | |
Element.remove(window._DOMScriptElement); | |
window._DOMScriptElement = null | |
} | |
}; | |
var _ie = function (_17a) { | |
document.write("<scr" + "ipt id=__ie_onload defer src=" + (window.location.protocol == "https" ? "https://0" : "javascript:void(0)") + "></scr" + "ipt>"); | |
window._DOMScriptElement = document.all["__ie_onload"]; | |
window._DOMScriptElement.onreadystatechange = function () { | |
if (this.readyState === "complete") { | |
setTimeout(function () { | |
_177(); | |
window.onload = _177 | |
}, 50) | |
} | |
} | |
}; | |
var _17b = function (_17c) { | |
var _17d = false; | |
var m; | |
(function m() { | |
if (!window.DOMContentLoaded) { | |
try { | |
document.documentElement.doScroll("left") | |
} catch (a) { | |
setTimeout(m, 1); | |
return | |
} | |
window.DOMContentLoaded = true; | |
_177() | |
} | |
})() | |
}; | |
if (window.ie) { | |
_175 ? _17b() : _ie() | |
} else { | |
if (window.safari2) { | |
window._DOMCLTimer = function () { | |
if (/loaded|complete/.test(document.readyState)) { | |
_177() | |
} | |
}.periodical(50) | |
} else { | |
$(window).addEvent("onload", _177) | |
} | |
} | |
} | |
window._DOMCLEvents = window._DOMCLEvents || []; | |
window._DOMCLEvents.push(fn); | |
skip = true | |
} | |
fn = (_170 || fn.bound) ? fn : fn.bind(this); | |
_174 = fn; | |
_172 = null; | |
if ((_171 = Element.customEvents[type])) { | |
_173 = _171.base || type; | |
if (_171.condition) { | |
_172 = function (_17f) { | |
if (_171.condition.call(this, _17f)) { | |
return fn.call(this, _17f) | |
} | |
return false | |
}; | |
var self = this; | |
_174 = function (_181) { | |
_181 = $E(_181); | |
if (_172.call(self, _181) === false) { | |
_181.stop() | |
} | |
} | |
} | |
} | |
this.events[type].values.push(_174); | |
if (!skip && (!_170 || _171)) { | |
this.addEventListener ? this.addEventListener(_173, _174, false) : this.attachEvent("on" + _173, _174) | |
} | |
return this | |
}, | |
invokeEvent: function () { | |
var args = $A(arguments), | |
type = args.shift(), | |
_184 = this; | |
if (this.events && this.events[type]) { | |
this.events[type].keys.each(function (fn) { | |
fn.apply(this, args) | |
}, this) | |
} | |
return this | |
}, | |
removeEvent: function (type, fn) { | |
if (!this.events || !this.events[type] || !this.events[type].keys) { | |
return this | |
} | |
var pos = this.events[type].keys.indexOf(fn); | |
if (pos == -1 && fn) { | |
return this | |
} | |
var key = this.events[type].keys.splice(pos, 1)[0]; | |
var _18a = this.events[type].values.splice(pos, 1)[0]; | |
var _18b = Element.nativeEvents.contains(type); | |
var _18c = Element.customEvents[type]; | |
var _18d = type; | |
var _18e = _18a; | |
if (_18c && _18c.base) { | |
_18b = true; | |
_18d = _18c.base | |
} | |
if (_18b) { | |
if (this.addEventListener) { | |
this.removeEventListener(_18d, _18e, false) | |
} else { | |
if (type != "DOMContentLoaded" && this.detachEvent) { | |
var res = this.detachEvent("on" + _18d, _18e) | |
} | |
} | |
} | |
return this | |
}, | |
removeEvents: function (type) { | |
if (!this.events) { | |
return this | |
} | |
if (!type) { | |
for (var _191 in this.events) { | |
this.removeEvents(_191) | |
} | |
this.events = null | |
} else { | |
if ($typeOf(type) == "object") { | |
each(type, function (fn, _193) { | |
this.removeEvent(_193, fn) | |
}, this) | |
} else { | |
if (this.events[type]) { | |
this.events[type].keys.each(function (_fn) { | |
this.removeEvent(type, _fn) | |
}, this); | |
this.events[type] = null | |
} | |
} | |
} if (window.ie && !type) { | |
Element.nativeEvents.each(function (evt) { | |
this["on" + evt] = null | |
}, this) | |
} | |
return this | |
}, | |
hasEvent: function (type) { | |
return this.events && !! this.events[type] | |
}, | |
cloneEvents: function (_197, type) { | |
if (!_197.events) { | |
return this | |
} | |
if (!type) { | |
for (var _199 in _197.events) { | |
this.cloneEvents(_197, _199) | |
} | |
} else { | |
if (_197.events[type]) { | |
_197.events[type].keys.each(function (fn) { | |
this.addEvent(type, fn) | |
}, this) | |
} | |
} | |
return this | |
}, | |
hide: function () { | |
this.style.display = "none"; | |
return this | |
}, | |
show: function () { | |
this.style.display = ""; | |
if (this.getStyle("display") == "none" && !["TR", "TBODY", "TD", "THEAD", "TH"].contains(this.tagName)) { | |
this.style.display = "block" | |
} else { | |
if (!(window.ie || window.ie6 || window.ie7) && ["TR", "TD", "TH"].contains(this.tagName)) { | |
this.style.display = { | |
"tr": "table-row", | |
"th": "table-cell", | |
"td": "table-cell" | |
}[this.tagName.toLowerCase()] | |
} | |
} | |
return this | |
}, | |
toggle: function () { | |
return this.isVisible() ? this.hide() : this.show() | |
}, | |
getPosition: function (_19b, _19c) { | |
var el = this, | |
left = 0, | |
top = 0, | |
_1a0, box, doc = el.ownerDocument || document, | |
_1a3 = false, | |
_1a4 = el.parentNode; | |
var _1a5 = el, | |
_1a6 = $(el.offsetParent); | |
var _1a7 = _19c === true || (_1a6 && ((el.offsetLeft > _1a6.offsetWidth) && (el.offsetTop > _1a6.offsetHeight))); | |
if (el.getBoundingClientRect && !_1a7) { | |
if ((window.ie6 || window.ie7) && !(window.ie && document.compatMode !== "CSS1Compat")) { | |
if (document.documentElement.style.border) { | |
document.documentElement.style.border = 0 | |
} | |
} | |
box = el.getBoundingClientRect(); | |
left = box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft); | |
top = box.top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop); | |
if ((window.ie6 || window.ie7) && document.compatMode === "BackCompat") { | |
left += 2; | |
top += 2 | |
} | |
if (window.ie8) {} | |
if (window.opera) { | |
left -= this.getStyle("border-left-width").toInt(); | |
top -= this.getStyle("border-top-width").toInt() | |
} | |
left -= doc.documentElement.clientLeft; | |
top -= doc.documentElement.clientTop; | |
if (_19b !== true) { | |
return { | |
x: left, | |
y: top | |
} | |
} else { | |
return { | |
"left": left, | |
"top": top | |
} | |
} | |
} | |
_1a3 = el.getStyle("position") === "fixed"; | |
left += el.offsetLeft || 0; | |
top += el.offsetTop || 0; | |
while (_1a6) { | |
left += _1a6.offsetLeft || 0; | |
top += _1a6.offsetTop || 0; | |
if (window.moz && !/^t(able|d|h)$/i.test(_1a6.tagName) || (window.safari && !window.webkit420)) { | |
left -= _1a6.getStyle("border-left-width").toInt() || 0; | |
top -= _1a6.getStyle("border-top-width").toInt() || 0 | |
} | |
if (!_1a3 && _1a6.getStyle("position") === "fixed") { | |
_1a3 = true | |
} | |
_1a5 = /^body$/i.test(_1a6.tagName) ? _1a5 : _1a6; | |
_1a6 = $(_1a6.offsetParent) | |
} | |
while (_1a4 && _1a4.tagName && !/^body|html$/i.test(_1a4.tagName)) { | |
if (window.opera && !/^inline|table.*$/i.test($(_1a4).getStyle("display"))) {} | |
if (window.mozilla && _1a4.getStyle("overflow") != "visible") { | |
left -= _1a4.getStyle("border-left-width"); | |
top -= _1a4.getStyle("border-top-wdith") | |
} | |
_1a4 = $(_1a4.parentNode) | |
} | |
if ((window.webkit419 && ($fixed || _1a5.getStyle("position") === "absolute")) || (window.mozilla && _1a5.getStyle("position") !== "absolute")) { | |
left -= doc.body.offsetLeft; | |
top -= doc.body.offsetTop | |
} | |
if (_1a3) { | |
left += Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft); | |
top += Math.max(doc.documentElement.scrollTop, doc.body.scrollTop) | |
} | |
if (window.webkit419) { | |
left += 2; | |
top += 2 | |
} | |
return _19b === true ? { | |
"left": left, | |
"top": top | |
} : { | |
"x": left, | |
"y": top | |
} | |
}, | |
isPositioned: function () { | |
return ["relative", "absolute", "fixed"].contains(this.getStyle("position")) | |
}, | |
getTop: function (_1a8) { | |
return this.getPosition(_1a8).y | |
}, | |
getLeft: function (_1a9) { | |
return this.getPosition(_1a9).x | |
}, | |
setBlockStyles: function (_1aa) { | |
var _1ab = this; | |
var _1ac = (this.offsetHeight === 0 && this.offsetHeight === 0); | |
if (!_1ac) { | |
return this | |
} | |
_1aa = false; | |
if (this.__hiddenElementsList) { | |
return this | |
} | |
this.__hiddenElementsList = []; | |
if (this.getStyle("display") === "none") { | |
this.__hiddenElementsList.push(this) | |
} | |
while (_1ab = _1ab.getParent()) { | |
if (_1ab.getStyle("display") === "none") { | |
this.__hiddenElementsList.push(_1ab) | |
} | |
} | |
this.__hiddenElementsList.each(function (_1ad, _1ae) { | |
this._originalStyles = {}; | |
["position", "float", "visibility", "display"].each(function (_1af) { | |
var prop = _1af; | |
if (prop === "float") { | |
prop = window.ie ? "styleFloat" : "cssFloat" | |
} | |
this._originalStyles[_1af] = this.style[prop] | |
}, this); | |
this.setStyles({ | |
"position": _1aa ? "static" : "absolute", | |
"visibility": "hidden", | |
"float": "left", | |
"display": "block" | |
}) | |
}); | |
return this | |
}, | |
restoreBlockStyles: function () { | |
if (!this.__hiddenElementsList) { | |
return this | |
} | |
this.__hiddenElementsList.each(function (_1b1, _1b2) { | |
this.setStyles(this._originalStyles || {}); | |
this._originalStyles = null | |
}); | |
this.__hiddenElementsList = null; | |
return this | |
}, | |
scrollTo: function (x, y) { | |
var _1b5 = this, | |
pos, _1b7 = false; | |
if ((x == undefined || x == null) && (y == null || y == undefined)) { | |
pos = this.getCoordinates(); | |
x = pos.right - window.getWidth(); | |
y = pos.bottom - window.getHeight(); | |
_1b7 = true | |
} | |
if (this.window) { | |
_1b5 = this.window.getBody() | |
} | |
if (_1b7) { | |
_1b5 = $(window).getBody() | |
} | |
if (x != undefined) { | |
_1b5.scrollLeft = x | |
} | |
if (y != undefined) { | |
_1b5.scrollTop = y | |
} | |
return this | |
}, | |
getSize: function () { | |
this.setBlockStyles(); | |
var size = { | |
"scroll": { | |
"x": this.scrollLeft, | |
"y": this.scrollTop | |
}, | |
"size": { | |
"width": this.offsetWidth, | |
"height": this.offsetHeight | |
}, | |
"scrollSize": { | |
"x": this.scrollWidth, | |
"y": this.scrollHeight | |
} | |
}; | |
this.restoreBlockStyles(); | |
return size | |
}, | |
getDimensions: function () { | |
this.setBlockStyles(); | |
var _1b9 = { | |
"width": this.offsetWidth, | |
"height": this.offsetHeight | |
}; | |
this.restoreBlockStyles(); | |
return _1b9 | |
}, | |
getCoordinates: function (_1ba, _1bb) { | |
if (_1bb && this.cache.coordinates) { | |
return this.cache.coordinates | |
} | |
var _1bc = this.getPosition(_1ba); | |
this.setBlockStyles(); | |
var obj = { | |
"width": this.offsetWidth, | |
"height": this.offsetHeight, | |
"left": _1bc.x, | |
"top": _1bc.y | |
}; | |
obj.right = obj.left + obj.width; | |
obj.bottom = obj.top + obj.height; | |
if (this.cache) { | |
this.cache.coordinates = obj | |
} | |
this.restoreBlockStyles(); | |
return obj | |
}, | |
getStyle: function (_1be) { | |
var css = null, | |
_1c0, _1c1 = _1be; | |
_1be = _1be.camelCase(); | |
if (!this.style) { | |
return this | |
} | |
_1c0 = this.style[_1be]; | |
if (!$is(_1c0) || _1be.contains("Color")) { | |
if (_1be == "opacity") { | |
return this.getOpacity() | |
} | |
if (window.ie && ["float", "cssFloat"].contains(_1be)) { | |
_1be = "styleFloat" | |
} | |
var _1c2 = []; | |
for (var _1c3 in Element.Styles) { | |
if (_1be == _1c3) { | |
Element.Styles[_1c3].each(function (s) { | |
var _1c5 = this.getStyle(s); | |
_1c2.push(parseInt(_1c5) ? _1c5 : "0px") | |
}, this); | |
if (_1be == "border") { | |
var _1c6 = _1c2.every(function (bit) { | |
return (bit == _1c2[0]) | |
}); | |
return (_1c6) ? _1c2[0] : false | |
} | |
return _1c2.join(" ") | |
} | |
} | |
if (_1be.contains("border")) { | |
if (Element.Styles.border.contains(_1be)) { | |
return ["Width", "Style", "Color"].map(function (p) { | |
return this.getStyle(_1be + p) | |
}, this).join(" ") | |
} else { | |
if (Element.borderShort.contains(_1be)) { | |
return ["Top", "Right", "Bottom", "Left"].map(function (p) { | |
return this.getStyle("border" + p + _1be.replace("border", "")) | |
}, this).join(" ") | |
} | |
} | |
} | |
if (document.defaultView) { | |
var _1ca = _1c1.indexOf("-") === 0 ? _1c1 : _1be.hyphenate(); | |
try { | |
_1c0 = document.defaultView.getComputedStyle(this, null).getPropertyValue(_1ca) | |
} catch (ex) { | |
if (console !== undefined && console.log) { | |
console.log("style :" + _1be, ex.message) | |
} | |
} | |
} else { | |
if (this.currentStyle) { | |
_1c0 = this.currentStyle[_1be] | |
} | |
} | |
_1c0 = Element.fixStyle(_1be, _1c0, this); | |
if (_1c0 && /color/i.test(_1be) && _1c0.contains("rgb")) { | |
return _1c0.split("rgb").splice(1, 4).map(function (_1cb) { | |
return _1cb.rgbToHex() | |
}).join(" ") | |
} | |
} | |
return _1c0 | |
}, | |
getStyles: function () { | |
var obj = {}; | |
$A(arguments).each(function (_1cd) { | |
obj[_1cd] = this.getStyle(_1cd) | |
}, this); | |
return obj | |
}, | |
remove: function () { | |
this.parentNode.removeChild(this); | |
return this | |
}, | |
getOpacity: function () { | |
var _1ce = 1; | |
if (window.ie) { | |
_1ce = this.filters && this.filters.alpha && $typeOf(this.filters.alpha.opacity) == "number" ? Number(this.filters.alpha.opacity) / 100 : 1 | |
} else { | |
_1ce = this.style.opacity || this.style.MozOpacity || this.style.KhtmlOpacity || 1 | |
} | |
return _1ce >= 0.999999 ? 1 : Math.max(_1ce, 0.000001) | |
}, | |
setOpacity: function (_1cf) { | |
var _1d0 = (window.ie6 || window.ie5) && this.tagName === "IFRAME"; | |
if (_1cf == 0) { | |
if (this.style.visibility != "hidden" && !_1d0) { | |
this.style.visibility = "hidden" | |
} | |
} else { | |
if (this.style.visibility != "visible" && !_1d0) { | |
this.style.visibility = "visible" | |
} | |
} if (!this.currentStyle || !this.currentStyle.hasLayout) { | |
this.style.zoom = 1 | |
} | |
if (window.ie) { | |
this.style.filter = (_1cf == 1) ? this.style.filter.replace(/alpha\([^\)]*\)/gi, "") : "alpha(opacity=" + (_1cf * 100) + ")" | |
} | |
this.style.opacity = this.style.MozOpacity = this.style.KhtmlOpacity = parseFloat(_1cf); | |
return this | |
}, | |
traverse: function (_1d1, _1d2, _1d3, fn, _1d5) { | |
var _1d6 = [], | |
el = (_1d5 ? this[_1d5] : this[_1d1]), | |
_1d8 = 0; | |
while (el) { | |
if (el.nodeType == 1) { | |
_1d6.push($(el)); | |
if ($is(_1d2) && (_1d8++ == _1d2)) { | |
break | |
} | |
if ($is(_1d3) && (_1d3 == el)) { | |
break | |
} | |
if (fn && fn.call(el, el)) { | |
break | |
} | |
} | |
el = el[_1d1] | |
} | |
return _1d6 | |
}, | |
getOwnerDocument: function () { | |
return this.ownerDocument | |
}, | |
isElement: function () { | |
return $typeOf(this) === "element" | |
}, | |
isDocument: function () { | |
return !!(this && this.documentElement) | |
}, | |
getFirst: function (_1d9) { | |
return this.getChild(_1d9 || 1) | |
}, | |
getLast: function (_1da) { | |
return this.traverse("previousSibling", _1da || 1, null, null, "lastChild")[0] | |
}, | |
getNext: function (_1db) { | |
return $(this.traverse("nextSibling", 1)[_1db || 0]) | |
}, | |
getPrevious: function (_1dc) { | |
return $(this.traverse("previousSibling", 1)[_1dc || 0]) | |
}, | |
getChild: function (_1dd) { | |
return $(this.traverse("nextSibling", _1dd, null, null, "firstChild")[_1dd - 1]) | |
}, | |
getChildDeep: function (_1de) { | |
return this.traverse("firstChild", _1de, null, null, "firstChild")[_1de - 1] | |
}, | |
getParent: function (fn) { | |
if (!fn) { | |
return $(this.parentNode) | |
} else { | |
return this.traverse("parentNode", null, null, fn).last() | |
} | |
}, | |
getContentWidth: function () { | |
var self = this; | |
offset = 0; | |
["padding-left", "padding-right", "border-left-width", "border-right-width"].each(function (_1e1) { | |
offset += parseInt(self.getStyle(_1e1)) | |
}); | |
return this.scrollWidth - offset | |
}, | |
getContentHeight: function () { | |
var self = this; | |
offset = 0; | |
["padding-top", "padding-bottom", "border-top-width", "border-bottom-width"].each(function (_1e3) { | |
offset += parseInt(self.getStyle(_1e3)) | |
}); | |
return this.scrollHeight - offset | |
}, | |
isWithin: function (root, _1e5) { | |
return !!(this.traverse("parentNode", null, $(root)).getLast() == root) || (_1e5 && this == root) ? true : false | |
}, | |
isOverlapping: function (_1e6, _1e7) { | |
var _1e8 = false, | |
_1e9; | |
if (!_1e6.push) { | |
_1e8 = true; | |
_1e6 = [$(_1e6)] | |
} | |
_1e9 = _1e7 || this.getCoordinates(); | |
var _1ea = _1e6.filter(function (_1eb) { | |
var _1ec = _1eb.getCoordinates(null, true); | |
return (((_1ec.left >= _1e9.left && _1ec.left <= _1e9.left + _1e9.width) || (_1ec.left <= _1e9.left && _1ec.left + _1ec.width >= _1e9.left)) && ((_1ec.top >= _1e9.top && _1ec.top <= _1e9.top + _1e9.height) || (_1ec.top <= _1e9.top && _1ec.top + _1ec.height >= _1e9.top))) | |
}, this); | |
return (_1e8 ? !! _1ea[0] : _1ea) | |
}, | |
contains: function (_1ed, _1ee) { | |
return $(this).isDocument() ? this == $(this).getOwnerDocument() : (_1ee && this == _1ed) ? 1 : 0 || this != _1ed && $(_1ed) && _1ed.isWithin && !! ($(_1ed).isWithin(this)) | |
}, | |
getText: function () { | |
if (["STYLE", "SCRIPT"].contains(this.tagName)) { | |
if (window.ie) { | |
return this.tagName == "STYLE" ? this.styleSheet.cssText : this.getProperty("text") | |
} else { | |
return this.innerHTML | |
} | |
} | |
return this.innerText || this.textContent | |
}, | |
setText: function (text) { | |
if (this.innerText !== undefined) { | |
this.innerText = text | |
} else { | |
if (this.textContent !== undefined) { | |
this.textContent = text | |
} else { | |
this.innerHTML = text | |
} | |
} | |
return this | |
}, | |
empty: function () { | |
Garbage.discard(this.getElementsByTagName("*")); | |
if (this.tagName === "TABLE" && window.ie) { | |
$$(this.children).each(Element.remove); | |
return $(this) | |
} else { | |
return $(this.setHTML("")) | |
} | |
}, | |
makeUnselectable: function () { | |
if (window.ie) { | |
this["unselectable"] = "on" | |
} else { | |
this.style["MozUserSelect"] = this.style["WebkitUserSelect"] = this.style["KhtmlUserSelect"] = "none" | |
} | |
return this | |
}, | |
effect: function (_1f0, _1f1) { | |
return new Fx.Style(this, _1f0, _1f1) | |
}, | |
transition: function () { | |
var args = $A(arguments), | |
_1f3 = false; | |
properties = {}; | |
options = props.last(); | |
if (args[0].toLowerCase) { | |
properties[args[0]] = args[1] | |
} else { | |
properties = args[0] | |
} | |
options = options || {}; | |
if (property.indexOf("attr:") === 0) { | |
property = property.slice(5); | |
options.useAttributes = true | |
} | |
if (this.__coreX) { | |
this.__coreFX.stop() | |
} | |
this.__coreFX = new Fx.Style(this, property, options).start(value); | |
return this | |
}, | |
effects: function (_1f4) { | |
return new Fx.Styles(this, _1f4) | |
}, | |
serialize: function (_1f5) { | |
var _1f6 = [], | |
_1f7 = {}, qs; | |
var _1f9 = {}; | |
$T(["select", "input", "textarea"], this).each(function (_1fa) { | |
var _1fb = _1fa.value; | |
var name = _1fa.name; | |
if (_1fa.nodeName === "INPUT" && (["checkbox", "radio"].contains(_1fa.type))) { | |
_1fb = _1fa.checked ? "checked" : "" | |
} | |
if (name.contains("[]")) { | |
name = name.replace(/\[\]/gi, ""); | |
_1f9[name] = (_1f9[name] !== undefined ? _1f9[name] : -1) + 1; | |
name = name + "[" + _1f9[name] + "]" | |
} | |
if (_1fb === false || !name || _1fa.disabled) { | |
return false | |
} | |
if (!_1f5) { | |
qs = function (val) { | |
_1f6.push(encodeURIComponent(name) + "=" + encodeURIComponent(val)) | |
} | |
} else { | |
qs = function (val) { | |
_1f7[name] = encodeURIComponent(val) | |
} | |
} if ($typeOf(_1fb) === "array") { | |
_1fb.each(qs) | |
} else { | |
qs(_1fb) | |
} | |
}); | |
return !_1f5 ? _1f6.join("&") : _1f7 | |
}, | |
enable: function () { | |
this.disabled = false; | |
return this | |
}, | |
disable: function () { | |
with(this) { | |
blur(); | |
disabled = true | |
} | |
return this | |
}, | |
resetValue: function (_1ff) { | |
var def = this.getProperty("default"); | |
var _201 = (_1ff ? def : "") || ""; | |
if (["radio", "checkbox"].contains(this.type)) { | |
this.checked = !! (def && def === "default") | |
} | |
this.setValue(_201); | |
return this | |
}, | |
setValue: function (_202) { | |
var _203; | |
if (this.tagName === "SELECT") { | |
for (var i = 0; i < this.options.length; i++) { | |
if (this.options[i].value == _202) { | |
this.selectedIndex = i; | |
break | |
} | |
} | |
} | |
if (_202 === null) { | |
_202 = "" | |
} | |
this.value = _202; | |
if (_202 === "" && !Pathfinder.Fields.isHTML5Ready && (_203 = this.getProperty("placeholder"))) { | |
this.value = _203; | |
this.style.color = "#A9A9A9"; | |
this._isEmpty = true | |
} | |
return this | |
}, | |
getValue: function () { | |
var ret = this.value; | |
if (this.__setup && this.getProperty("placeholder") == this.value || this._isEmpty) { | |
ret = "" | |
} | |
return ret || "" | |
}, | |
shield: function () { | |
if (!(window.ie6 || window.ie5)) { | |
return this | |
} | |
if (!this._shield) { | |
this._shield = $C("iframe", { | |
"marginheight": 0, | |
"marginwidth": 0, | |
"scrolling": "no", | |
"frameBorder": 0, | |
"allowTransparency ": "true", | |
"styles": { | |
"opacity": 0, | |
"z-index": -1, | |
"position": "absolute", | |
"top": -parseInt(this.getStyle("border-top-width").toInt()), | |
"left": -parseInt(this.getStyle("border-left-width").toInt()) | |
} | |
}); | |
this.getFirst() ? this._shield.injectBefore(this.getFirst()) : this._shield.injectIn(this) | |
} | |
this._shield.show().setStyles(this.getDimensions()).show(); | |
return this | |
}, | |
unShield: function () { | |
if (!(window.ie6 || window.ie5) || !this._shield) { | |
return this | |
} | |
this._shield.hide().remove(); | |
this._shield = null | |
} | |
}; | |
Element.extend = function (args) { | |
var fn; | |
$extend(this.Methods, args); | |
$extend(window.HTMLElement, args); | |
$extend($, args); | |
for (var _208 in args) { | |
if (!args.hasOwnProperty(_208)) { | |
continue | |
}(function (fn) { | |
Element[_208] = function (_20a) { | |
var args = $A(arguments), | |
_20a = args.shift(); | |
return fn.apply($(_20a), args) | |
}; | |
Array.prototype[_208] = function () { | |
var args = $A(arguments); | |
this.each(function (_20d, _20e) { | |
fn.apply($(_20d), args) | |
}); | |
return this | |
} | |
}(args[_208])) | |
} | |
}; | |
Element.Rules = new Class({ | |
initialize: function (_20f) { | |
this.rules = _20f; | |
return this | |
}, | |
apply: function () { | |
each(this.rules, function (_210, rule) { | |
$$(rule).each(function (el) { | |
el.set(_210) | |
}) | |
}); | |
return this | |
} | |
}); | |
$extend(Element, { | |
fixStyle: function (_213, _214, _215) { | |
if (_213 === "background") { | |
var bg = _215.getStyle("background-image"); | |
if (bg) { | |
return _214 + " " + bg + " " + _215.getStyle("background-repeat") + " " + _215.getStyle("background-position") | |
} | |
} | |
if ($is(_214) && _214 !== "auto") { | |
return _214 | |
} | |
if (["height", "width"].contains(_213)) { | |
var _217 = (_213 == "width") ? ["left", "right"] : ["top", "bottom"]; | |
var size = 0; | |
_217.each(function (_219) { | |
size += _215.getStyle("border-" + _219 + "-width").toInt() + _215.getStyle("padding-" + _219).toInt() | |
}); | |
return _215["offset" + _213.capitalize()] - size + "px" | |
} else { | |
if (/border(.+)Width|margin|padding/.test(_213)) { | |
return "0px" | |
} | |
} if (_213 === "background") { | |
_214 = "transparent" | |
} | |
return _214 | |
}, | |
nativeEvents: ["message", "click", "dblclick", "mouseup", "mousedown", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "copy", "paste", "cut", "beforecopy", "beforepaste", "beforecut", "keydown", "keypress", "keyup", "DOMContentLoaded", "load", "unload", "beforeunload", "resize", "move", "focus", "blur", "change", "submit", "reset", "select", "input", "error", "abort", "contextmenu", "scroll", "dragenter", "dragexit", "dragend", "dragover", "drop", "dragleave", "haschanged"], | |
customEvents: new Abstract({ | |
"mouseenter": { | |
base: "mouseover", | |
condition: Element.Event.checkRelatedTarget | |
}, | |
"mouseleave": { | |
base: "mouseout", | |
condition: Element.Event.checkRelatedTarget | |
} | |
}) | |
}); | |
var Cookie = { | |
options: { | |
path: "/", | |
domain: false, | |
duration: false, | |
secure: false, | |
encode: true | |
}, | |
cookies: {}, | |
set: function (key, _21b, _21c) { | |
if ($typeOf(_21c) === "number") { | |
_21c = { | |
duration: _21c | |
} | |
} | |
var _21d = _21b === ""; | |
_21c = $merge(this.options, _21c); | |
_21b = _21c.encode ? encodeURIComponent(_21b) : _21b; | |
if (_21c.domain) { | |
_21b += "; domain=" + _21c.domain | |
} | |
if (_21c.path) { | |
_21b += "; path=" + _21c.path | |
} | |
if (_21c.duration) { | |
var date = new Date(); | |
date.setTime(date.getTime() + _21c.duration * 24 * 60 * 60 * 1000); | |
_21b += "; expires=" + date.toUTCString() | |
} | |
if (_21c.secure) { | |
_21b += "; secure" | |
} | |
document.cookie = key + "=" + _21b; | |
return $extend(_21c, { | |
"key": key, | |
"value": _21b | |
}) | |
}, | |
get: function (name) { | |
var _220 = null, | |
_221, _222; | |
if (document.cookie && document.cookie !== "") { | |
_221 = document.cookie.split(";"); | |
for (var i = 0, l = _221.length; i < l; i++) { | |
_222 = _221[i].trim(); | |
if (_222.substring(0, name.length + 1) == (name + "=")) { | |
_220 = decodeURIComponent(_222.substring(name.length + 1)); | |
break | |
} | |
} | |
} | |
return _220 | |
}, | |
remove: function (_225, _226) { | |
var res; | |
if ($type(_225) == "object") { | |
res = this.set(_225.key, "", $merge(_225, { | |
duration: -1 | |
})) | |
} else { | |
res = this.set(_225, "", $merge(_226, { | |
duration: -1 | |
})) | |
} | |
return true | |
} | |
}; | |
Core.useNativeSelectors = true; | |
Element.extend({ | |
getElements: function (_228, _229) { | |
var _22a = Core.useNativeSelectors; | |
if (window.webkit420 && _228.contains("\"#\"")) { | |
_22a = false | |
} | |
_228 = _228.split(","); | |
var _22b = [], | |
j = _228.length; | |
if (_22a && this.querySelectorAll) { | |
_228.each(function (_22d) { | |
var _22e = []; | |
try { | |
_22e = this.querySelectorAll(_22d) | |
} catch (ex) {} | |
if (_22e) { | |
_22b = _22b.concat($A(_22e)) | |
} | |
}, this); | |
return $$.unique(_22b) | |
} | |
var _22f = {}; | |
var ddup = (j > 1); | |
for (var i = 0; i < j; i++) { | |
var _232 = _228[i], | |
_233 = [], | |
_234 = []; | |
_232 = _232.trim().replace(Selectors.sRegExp, function (_235) { | |
if (_235.charAt(2)) { | |
_235 = _235.trim() | |
} | |
_234.push(_235.charAt(0)); | |
return ":)" + _235.charAt(1) | |
}).split(":)"); | |
for (var k = 0, l = _232.length; k < l; k++) { | |
var sel = Selectors.parse(_232[k]); | |
if (!sel) { | |
return [] | |
} | |
var temp = Selectors.Method.getParam(_233, _234[k - 1] || false, this, sel, _22f); | |
if (!temp) { | |
break | |
} | |
_233 = temp | |
} | |
var _23a = Selectors.Method.getItems(_233, this); | |
_22b = (ddup) ? _22b.concat(_23a) : _23a | |
} | |
return $$.unique(_22b) | |
}, | |
getElement: function (_23b, _23c) { | |
var _23d = Core.useNativeSelectors; | |
if (window.webkit420 && _23b.contains("#")) { | |
_23d = false | |
} | |
if (_23d && this.querySelector) { | |
return $(this.querySelector(_23b)) || null | |
} else { | |
return $(this.getElements(_23b, true)[0] || null) | |
} | |
} | |
}); | |
var Selectors = { | |
"regExp": (/:([^-:(]+)[^:(]*(?:\((["']?)(.*?)\2\))?|\[([a-z\-]+)(?:([!*^$~|]?=)(["']?)(.*?)\6)?\]|\.[\w-]+|#[\w-]+|\w+|\*/g), | |
"sRegExp": (/\s*([+>~\s])[a-zA-Z#.*\s]/g) | |
}; | |
Selectors.parse = function (_23e) { | |
var _23f = { | |
"tag": "*", | |
"id": null, | |
"classes": [], | |
"attributes": [], | |
"pseudos": [] | |
}; | |
var _240 = _23e; | |
_23e = _23e.replace(Selectors.regExp, function (bit) { | |
switch (bit.charAt(0)) { | |
case ".": | |
_23f.classes.push(bit.slice(1)); | |
break; | |
case "#": | |
_23f.id = bit.slice(1); | |
break; | |
case "[": | |
_23f.attributes.push([arguments[4], arguments[5], arguments[7]]); | |
break; | |
case ":": | |
var _242 = Selectors.Pseudo[arguments[1]]; | |
if (!_242) { | |
_23f.attributes.push([arguments[1], arguments[3] ? "=" : "", arguments[3]]); | |
break | |
} | |
var _243 = { | |
"name": arguments[1], | |
"parser": _242, | |
"argument": (_242.parser) ? _242.parser(arguments[3]) : arguments[3] | |
}; | |
_23f.pseudos.push(_243); | |
break; | |
default: | |
_23f.tag = bit | |
} | |
return "" | |
}); | |
return _23f | |
}; | |
Selectors.Pseudo = new Abstract; | |
Selectors.XPath = { | |
getParam: function (_244, _245, _246, _247) { | |
var temp = _246.namespaceURI ? "xhtml:" : ""; | |
switch (_245) { | |
case " ": | |
temp += "//"; | |
break; | |
case ">": | |
temp += "/"; | |
break; | |
case "+": | |
temp += "/following-sibling::*[1]/self::"; | |
break; | |
case "~": | |
temp += "/following-sibling::"; | |
break | |
} | |
temp += _247.tag; | |
var i; | |
for (i = _247.pseudos.length; i--; i) { | |
var _24a = _247.pseudos[i]; | |
if (_24a.parser && _24a.parser.xpath) { | |
temp += _24a.parser.xpath(_24a.argument) | |
} else { | |
temp += ($chk(_24a.argument)) ? "[@" + _24a.name + "=\"" + _24a.argument + "\"]" : "[@" + _24a.name + "]" | |
} | |
} | |
if (_247.id) { | |
temp += "[@id=\"" + _247.id + "\"]" | |
} | |
for (i = _247.classes.length; i--; i) { | |
temp += "[contains(concat(\" \", @class, \" \"), \" " + _247.classes[i] + " \")]" | |
} | |
for (i = _247.attributes.length; i--; i) { | |
var bits = _247.attributes[i]; | |
switch (bits[1]) { | |
case "=": | |
temp += "[@" + bits[0] + "=\"" + bits[2] + "\"]"; | |
break; | |
case "*=": | |
temp += "[contains(@" + bits[0] + ", \"" + bits[2] + "\")]"; | |
break; | |
case "^=": | |
temp += "[starts-with(@" + bits[0] + ", \"" + bits[2] + "\")]"; | |
break; | |
case "$=": | |
temp += "[substring(@" + bits[0] + ", string-length(@" + bits[0] + ") - " + bits[2].length + " + 1) = \"" + bits[2] + "\"]"; | |
break; | |
case "!=": | |
temp += "[@" + bits[0] + "!=\"" + bits[2] + "\"]"; | |
break; | |
case "~=": | |
temp += "[contains(concat(\" \", @" + bits[0] + ", \" \"), \" " + bits[2] + " \")]"; | |
break; | |
case "|=": | |
temp += "[contains(concat(\"-\", @" + bits[0] + ", \"-\"), \"-" + bits[2] + "-\")]"; | |
break; | |
default: | |
temp += "[@" + bits[0] + "]" | |
} | |
} | |
_244.push(temp); | |
return _244 | |
}, | |
getItems: function (_24c, _24d) { | |
var _24e = [], | |
_24f; | |
var doc = _24d.ownerDocument || _24d; | |
try { | |
_24f = doc.evaluate(".//" + _24c.join(""), _24d, Selectors.XPath.resolver, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null) | |
} catch (ex) {} | |
if (_24f) { | |
for (var i = 0, j = _24f.snapshotLength; i < j; i++) { | |
_24e[i] = _24f.snapshotItem(i) | |
} | |
} | |
return _24e | |
}, | |
resolver: function (_253) { | |
return (_253 == "xhtml") ? "http://www.w3.org/1999/xhtml" : false | |
} | |
}; | |
Selectors.Filter = { | |
getParam: function (_254, _255, _256, _257, _258) { | |
var _259 = []; | |
var tag = _257.tag; | |
if (_255) { | |
var _25b = {}, _25c, _25d, item, k, l; | |
var add = function (_262) { | |
_262.uid = $uniqueID(_262); | |
if (!_25b[_262.uid] && Selectors.Filter.match(_262, _257, _258)) { | |
_25b[_262.uid] = true; | |
_259.push(_262); | |
return true | |
} | |
return false | |
}; | |
for (var i = 0, j = _254.length; i < j; i++) { | |
item = _254[i]; | |
switch (_255) { | |
case " ": | |
_25d = item.getElementsByTagName(tag); | |
_257.tag = false; | |
for (k = 0, l = _25d.length; k < l; k++) { | |
add(_25d[k]) | |
} | |
break; | |
case ">": | |
_25d = item.childNodes; | |
for (k = 0, l = _25d.length; k < l; k++) { | |
if (_25d[k].nodeType == 1) { | |
add(_25d[k]) | |
} | |
} | |
break; | |
case "+": | |
while ((item = item.nextSibling)) { | |
if (item.nodeType == 1) { | |
add(item); | |
break | |
} | |
} | |
break; | |
case "~": | |
while ((item = item.nextSibling)) { | |
if (item.nodeType == 1 && add(item)) { | |
break | |
} | |
} | |
break | |
} | |
} | |
return _259 | |
} | |
if (_257.id) { | |
var _265 = _256.getElementById ? _256.getElementById : document.getElementById; | |
el = _265 && _265(_257.id, true); | |
_257.id = false; | |
return (el && Selectors.Filter.match(el, _257, _258)) ? [el] : false | |
} else { | |
_254 = _256.getElementsByTagName(tag); | |
_257.tag = false; | |
for (var m = 0, n = _254.length; m < n; m++) { | |
if (Selectors.Filter.match(_254[m], _257, _258)) { | |
_259.push(_254[m]) | |
} | |
} | |
} | |
return _259 | |
}, | |
getItems: $arguments(0) | |
}; | |
Selectors.Filter.match = function (el, _269, _26a) { | |
_26a = _26a || {}; | |
if (_269.id && _269.id != el.id) { | |
return false | |
} | |
if (_269.tag && _269.tag != "*" && _269.tag != el.tagName.toLowerCase()) { | |
return false | |
} | |
var i; | |
for (i = _269.classes.length; i--; i) { | |
if (!el.className || !Element.hasClass(el, _269.classes[i])) { | |
return false | |
} | |
} | |
for (i = _269.attributes.length; i--; i) { | |
var bits = _269.attributes[i]; | |
if (bits[1]) { | |
var _26d = Element.Methods.getProperty.call(el, bits[0]); | |
if (!_26d) { | |
return false | |
} | |
} else { | |
if (el[bits[0]] === undefined) { | |
return false | |
} | |
} if (!bits[1]) { | |
continue | |
} | |
if (!_26d["substr"]) { | |
return false | |
} | |
var _26e; | |
switch (bits[1]) { | |
case "=": | |
_26e = (_26d == bits[2]); | |
break; | |
case "*=": | |
_26e = (_26d.contains(bits[2])); | |
break; | |
case "^=": | |
_26e = (_26d.substr(0, bits[2].length) == bits[2]); | |
break; | |
case "$=": | |
_26e = (_26d.substr(_26d.length - bits[2].length) == bits[2]); | |
break; | |
case "!=": | |
_26e = (_26d != bits[2]); | |
break; | |
case "~=": | |
_26e = _26d.contains(bits[2], " "); | |
break; | |
case "|=": | |
_26e = _26d.contains(bits[2], "-") | |
} | |
if (!_26e) { | |
return false | |
} | |
} | |
for (i = _269.pseudos.length; i--; i) { | |
if (!_269.pseudos[i].parser.filter.call(el, _269.pseudos[i].argument, _26a)) { | |
return false | |
} | |
} | |
return true | |
}; | |
Selectors.Method = (window.xpath) ? Selectors.XPath : Selectors.Filter; | |
Element.extend({ | |
match: function (_26f) { | |
return (!_26f || Selectors.Filter.match(this, Selectors.parse(_26f))) | |
} | |
}); | |
Selectors.Pseudo.enabled = { | |
xpath: function () { | |
return "[not(@disabled)]" | |
}, | |
filter: function () { | |
return !(this.disabled) | |
} | |
}; | |
Selectors.Pseudo.empty = { | |
xpath: function () { | |
return "[not(node())]" | |
}, | |
filter: function () { | |
return !(this.innerText || this.textContent || "").length | |
} | |
}; | |
Selectors.Pseudo.contains = { | |
xpath: function (_270) { | |
return "[contains(text(), \"" + _270 + "\")]" | |
}, | |
filter: function (_271) { | |
for (var i = this.childNodes.length; i--; i) { | |
var _273 = this.childNodes[i]; | |
if (_273.nodeName && _273.nodeType == 3 && _273.nodeValue.contains(_271)) { | |
return true | |
} | |
} | |
return false | |
} | |
}; | |
Selectors.Pseudo.nth = { | |
parser: function (_274) { | |
_274 = (_274) ? _274.match(/^([+-]?\d*)?([devon]+)?([+-]?\d*)?$/) : [null, 1, "n", 0]; | |
if (!_274) { | |
return false | |
} | |
var inta = parseInt(_274[1]); | |
var a = ($chk(inta)) ? inta : 1; | |
var _277 = _274[2] || false; | |
var b = parseInt(_274[3]) || 0; | |
b = b - 1; | |
while (b < 1) { | |
b += a | |
} | |
while (b >= a) { | |
b -= a | |
} | |
switch (_277) { | |
case "n": | |
return { | |
"a": a, | |
"b": b, | |
"special": "n" | |
}; | |
case "odd": | |
return { | |
"a": 2, | |
"b": 0, | |
"special": "n" | |
}; | |
case "even": | |
return { | |
"a": 2, | |
"b": 1, | |
"special": "n" | |
}; | |
case "first": | |
return { | |
"a": 0, | |
"special": "index" | |
}; | |
case "last": | |
return { | |
"special": "last" | |
}; | |
case "only": | |
return { | |
"special": "only" | |
}; | |
default: | |
return { | |
"a": (a - 1), | |
"special": "index" | |
} | |
} | |
}, | |
xpath: function (_279) { | |
switch (_279.special) { | |
case "n": | |
return "[count(preceding-sibling::*) mod " + _279.a + " = " + _279.b + "]"; | |
case "last": | |
return "[count(following-sibling::*) = 0]"; | |
case "only": | |
return "[not(preceding-sibling::* or following-sibling::*)]"; | |
default: | |
return "[count(preceding-sibling::*) = " + _279.a + "]" | |
} | |
}, | |
filter: function (_27a, _27b) { | |
var _27c = 0, | |
el = this; | |
switch (_27a.special) { | |
case "n": | |
_27b.Positions = _27b.Positions || {}; | |
if (!_27b.Positions[this.uid]) { | |
var _27e = this.parentNode.childNodes; | |
for (var i = 0, l = _27e.length; i < l; i++) { | |
var _281 = _27e[i]; | |
if (_281.nodeType != 1) { | |
continue | |
} | |
_281.uid = $uniqueID(_281); | |
_27b.Positions[_281.uid] = _27c++ | |
} | |
} | |
return (_27b.Positions[this.uid] % _27a.a == _27a.b); | |
case "last": | |
while ((el = el.nextSibling)) { | |
if (el.nodeType == 1) { | |
return false | |
} | |
} | |
return true; | |
case "only": | |
var prev = el; | |
while ((prev = prev.previousSibling)) { | |
if (prev.nodeType == 1) { | |
return false | |
} | |
} | |
var next = el; | |
while ((next = next.nextSibling)) { | |
if (next.nodeType == 1) { | |
return false | |
} | |
} | |
return true; | |
case "index": | |
while ((el = el.previousSibling)) { | |
if (el.nodeType == 1 && ++_27c > _27a.a) { | |
return false | |
} | |
} | |
return true | |
} | |
return false | |
} | |
}; | |
Selectors.Pseudo.extend({ | |
"even": { | |
parser: function () { | |
return { | |
"a": 2, | |
"b": 1, | |
"special": "n" | |
} | |
}, | |
xpath: Selectors.Pseudo.nth.xpath, | |
filter: Selectors.Pseudo.nth.filter | |
}, | |
"odd": { | |
parser: function () { | |
return { | |
"a": 2, | |
"b": 0, | |
"special": "n" | |
} | |
}, | |
xpath: Selectors.Pseudo.nth.xpath, | |
filter: Selectors.Pseudo.nth.filter | |
}, | |
"first": { | |
parser: function () { | |
return { | |
"a": 0, | |
"special": "index" | |
} | |
}, | |
xpath: Selectors.Pseudo.nth.xpath, | |
filter: Selectors.Pseudo.nth.filter | |
}, | |
"last": { | |
parser: function () { | |
return { | |
"special": "last" | |
} | |
}, | |
xpath: Selectors.Pseudo.nth.xpath, | |
filter: Selectors.Pseudo.nth.filter | |
}, | |
"only": { | |
parser: function () { | |
return { | |
"special": "only" | |
} | |
}, | |
xpath: Selectors.Pseudo.nth.xpath, | |
filter: Selectors.Pseudo.nth.filter | |
} | |
}); | |
function $ELS(_284, root) { | |
return ($(root) || document).getElementsBySelector(_284) | |
}; | |
$$ = function () { | |
var _286 = []; | |
for (var i = 0, j = arguments.length; i < j; i++) { | |
var _289 = arguments[i]; | |
switch ($typeOf(_289)) { | |
case "element": | |
_286.push(_289); | |
case "boolean": | |
break; | |
case false: | |
break; | |
case "string": | |
_289 = document.getElements(_289, true); | |
default: | |
_286.extend(_289) | |
} | |
} | |
return $$.unique(_286) | |
}; | |
$$.unique = function (_28a) { | |
var _28b = []; | |
var _28c = {}; | |
for (var i = 0, l = _28a.length; i < l; i++) { | |
var _28f = $(_28a[i]), | |
uid; | |
if (!_28f) { | |
return false | |
} | |
uid = $uniqueID(_28f); | |
if (_28c[uid] || !_28f) { | |
continue | |
} | |
_28b.push(_28f) | |
} | |
_28c = null; | |
return _28b.map($) | |
}; | |
Events = new Class({ | |
addEvent: function (type, fn) { | |
if (fn != Class.empty && $typeOf(fn) == "function") { | |
this.events = this.events || {}; | |
this.events[type] = this.events[type] || []; | |
this.events[type].remove(fn); | |
this.events[type].include(fn) | |
} | |
return this | |
}, | |
removeEvent: function (type, fn) { | |
if (this.events && this.events[type]) { | |
if (fn) { | |
this.events[type].remove(fn) | |
} else { | |
this.events[type] = null | |
} | |
} | |
return this | |
}, | |
hasEvent: function (type) { | |
return ( !! (this.events && this.events[type])) | |
}, | |
invokeEvent: function () { | |
var args = $A(arguments), | |
type = args.shift(); | |
if (this.events && this.events[type]) { | |
this.events[type].each(function (fn) { | |
fn.apply(this, args) | |
}, this) | |
} else { | |
if (this["on" + type.capitalize()] && $typeOf(this["on" + type.capitalize()]) === "function") { | |
this["on" + type.capitalize()].apply(this, args) | |
} | |
} if (type != "event") { | |
this.invokeEvent("event", type, args) | |
} | |
return this | |
} | |
}); | |
var Chain = new Class({ | |
chain: function (fn) { | |
this.chains = this.chains || []; | |
this.chains.push(fn); | |
return this | |
}, | |
callChain: function () { | |
var _29a, self = this, | |
args = $A(arguments); | |
if (this.chains && this.chains.length) { | |
_29a = this.chains.shift(); | |
(function () { | |
return _29a.apply(self, args.slice(0)) | |
}).delay(10, this) | |
} | |
return this | |
}, | |
clearChain: function () { | |
this.chains.empty(); | |
return this | |
} | |
}); | |
Chain.prototype.then = Chain.prototype.chain; | |
var Options = new Class({ | |
setOptions: function () { | |
if (!arguments) { | |
return | |
} | |
this.options = $merge.apply(null, [this.options].extend(arguments)); | |
if (this.options["events"]) { | |
each(this.options["events"], function (fn, _29e) { | |
this.addEvent(_29e, fn) | |
}, this) | |
} | |
each(this.options, function (_29f, key) { | |
if (key.indexOf("on") === 0 && $typeOf(_29f) == "function") { | |
this.options[key] = null; | |
var _2a1 = key.replace(/on/, ""); | |
_2a1 = _2a1.charAt(0).toLowerCase() + _2a1.substr(1); | |
this.addEvent(_2a1, _29f) | |
} | |
}, this); | |
each(this.options, function (fn, name) { | |
var self = this; | |
if ($typeOf(fn) == "function") { | |
this.options[name] = function () { | |
return fn.apply(self, arguments) | |
} | |
} | |
}, this); | |
return this | |
} | |
}); | |
Fx = new Class({ | |
options: { | |
"transition": function (p) { | |
return -(Math.cos(Math.PI * p) - 1) / 2 | |
}, | |
"duration": 800, | |
"unit": "px", | |
"wait": false, | |
"useAttributes": false, | |
"fps": 60, | |
"useRAF": window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || window.requestAnimationFrame | |
}, | |
initialize: function (_2a6) { | |
this.element = this.element || null; | |
this.setOptions(_2a6); | |
if (this.options.initialize) { | |
this.options.initialize.call(this) | |
} | |
}, | |
step: function () { | |
var time = $now(); | |
if (time < this.time + this.options.duration) { | |
this.delta = this.options.transition((time - this.time) / this.options.duration); | |
this.setNow(); | |
this.invokeEvent("progress", 1 - this.now); | |
this.next && this.next(); | |
if (this.options.useRAF) { | |
this.raf = requestAnimationFrame(this.step.bind(this)) | |
} | |
} else { | |
return this.complete() | |
} | |
}, | |
set: function (to) { | |
this.now = to; | |
this.next && this.next(); | |
return this | |
}, | |
complete: function () { | |
this.stop(true); | |
this.set(this.to); | |
this.invokeEvent("complete", this.element); | |
this.invokeEvent("postComplete", this.element); | |
this.invokeEvent("progress", 1 - this.now); | |
return this.callChain() | |
}, | |
stop: function (end) { | |
if (!this.timer && !this.raf) { | |
return this | |
} | |
if (this.options.useRAF) { | |
cancelAnimationFrame(this.raf) | |
} else { | |
this.timer = $clear(this.timer) | |
} if (!end) { | |
this.invokeEvent("cancel") | |
} | |
return this | |
}, | |
setNow: function () { | |
this.now = this.compute(this.from, this.to) | |
}, | |
compute: function (from, to) { | |
return (to - from) * this.delta + from | |
}, | |
start: function (from, to) { | |
if (!this.options.wait) { | |
this.stop() | |
} else { | |
if (this.timer) { | |
return this | |
} | |
} | |
this.from = from; | |
this.to = to; | |
this.change = this.to - this.from; | |
this.time = $now(); | |
if (this.options.useRAF) { | |
this.raf = requestAnimationFrame(this.step.bind(this)) | |
} else { | |
this.timer = this.step.bind(this).periodical(Math.round(1000 / this.options.fps)) | |
} | |
this.invokeEvent("start"); | |
return this | |
}, | |
tick: function () {}, | |
toggle: function () { | |
return this.start(this.now, this.from) | |
} | |
}); | |
Fx.implement(new Chain, new Events, new Options); | |
Fx.Attrib = Fx.extend({ | |
initialize: function (_2ae, _2af, _2b0) { | |
this.element = $(_2ae); | |
this.attribute = _2af; | |
return this.parent(_2b0) | |
}, | |
set: function (to) { | |
return this.parent(to) | |
}, | |
start: function (from, to) { | |
var _2b4; | |
if (this.timer && this.options.wait) { | |
return this | |
} | |
if (to === undefined) { | |
to = from; | |
from = parseInt(this.element.getProperty(this.attribute) || 0) | |
} | |
return this.parent(from, to) | |
}, | |
next: function () { | |
this.element.setProperty(this.attribute, this.now); | |
return this | |
} | |
}); | |
Fx.CSS = { | |
select: function (_2b5, to) { | |
if (/color/i.test(_2b5)) { | |
return this.Color | |
} | |
var type = $typeOf(to); | |
if ((type == "array") || (type == "string" && to.contains(" "))) { | |
return this.Multi | |
} | |
return this.Single | |
}, | |
parse: function (el, _2b9, _2ba, _2bb) { | |
if (!_2ba.push) { | |
_2ba = [_2ba] | |
} | |
var from = _2ba[0], | |
to = _2ba[1]; | |
if (!$is(to)) { | |
to = from; | |
from = _2bb ? el.getProperty(_2b9) : el.getStyle(_2b9) | |
} | |
var css = this.select(_2b9, to); | |
return { | |
"from": css.parse(from), | |
"to": css.parse(to), | |
"css": css | |
} | |
} | |
}; | |
Fx.CSS.Single = { | |
parse: function (_2bf) { | |
return parseFloat(_2bf) | |
}, | |
getNow: function (from, to, fx) { | |
return fx.compute(from, to) | |
}, | |
getValue: function (_2c3, unit, _2c5) { | |
if (unit == "px" && _2c5 != "opacity") { | |
_2c3 = Math.round(_2c3) | |
} | |
return _2c3 + unit | |
} | |
}; | |
Fx.CSS.Multi = { | |
parse: function (_2c6) { | |
return _2c6.push ? _2c6 : _2c6.split(" ").map(function (v) { | |
return parseFloat(v) | |
}) | |
}, | |
getNow: function (from, to, fx) { | |
var now = []; | |
for (var i = 0; i < from.length; i++) { | |
now[i] = fx.compute(from[i], to[i]) | |
} | |
return now | |
}, | |
getValue: function (_2cd, unit, _2cf) { | |
if (unit == "px" && _2cf != "opacity") { | |
_2cd = _2cd.map(Math.round) | |
} | |
return _2cd.join(unit + " ") + unit | |
} | |
}; | |
Fx.CSS.Color = { | |
parse: function (_2d0) { | |
if (window.opera && _2d0 === "transparent") { | |
_2d0 = "#ffffff" | |
} | |
return _2d0.push ? _2d0 : _2d0.hexToRgb(true) | |
}, | |
getNow: function (from, to, fx) { | |
var now = []; | |
for (var i = 0; i < from.length; i++) { | |
now[i] = Math.round(fx.compute(from[i], to[i])) | |
} | |
return now | |
}, | |
getValue: function (_2d6) { | |
return "rgb(" + _2d6.join(",") + ")" | |
} | |
}; | |
Fx.Style = Fx.extend({ | |
initialize: function (el, _2d8, _2d9) { | |
this.element = $(el); | |
this.property = _2d8; | |
this.parent(_2d9) | |
}, | |
hide: function () { | |
return this.set(0) | |
}, | |
setNow: function () { | |
this.now = this.css.getNow(this.from, this.to, this) | |
}, | |
set: function (to) { | |
this.css = Fx.CSS.select(this.property, to); | |
return this.parent(this.css.parse(to)) | |
}, | |
start: function (from, to) { | |
if (this.timer && this.options.wait) { | |
return this | |
} | |
var _2dd = Fx.CSS.parse(this.element, this.property, [from, to]); | |
this.css = _2dd.css; | |
return this.parent(_2dd.from, _2dd.to) | |
}, | |
next: function () { | |
if (this.options.useAttributes) { | |
this.element.setProperty(this.property, parseFloat(this.css.getValue(this.now, this.options.unit, this.property))) | |
} else { | |
this.element.setStyle(this.property, this.css.getValue(this.now, this.options.unit, this.property)) | |
} | |
} | |
}); | |
Fx.Styles = Fx.extend({ | |
initialize: function (el, _2df) { | |
this.element = $(el); | |
this.parent(_2df) | |
}, | |
setNow: function () { | |
for (var p in this.from) { | |
this.now[p] = this.css[p].getNow(this.from[p], this.to[p], this) | |
} | |
}, | |
set: function (to) { | |
var _2e2 = {}; | |
this.css = {}; | |
for (var p in to) { | |
this.css[p] = Fx.CSS.select(p, to[p]); | |
_2e2[p] = this.css[p].parse(to[p]) | |
} | |
return this.parent(_2e2) | |
}, | |
start: function (obj) { | |
if (this.timer && this.options.wait) { | |
return this | |
} | |
this.now = {}; | |
this.css = {}; | |
var from = {}, to = {}; | |
for (var p in obj) { | |
var _2e8 = Fx.CSS.parse(this.element, p, obj[p]); | |
from[p] = _2e8.from; | |
to[p] = _2e8.to; | |
this.css[p] = _2e8.css | |
} | |
return this.parent(from, to) | |
}, | |
next: function () { | |
for (var p in this.now) { | |
if (!this.options.useAttributes) { | |
this.element.setStyle(p, this.css[p].getValue(this.now[p], this.options.unit, p)) | |
} else { | |
this.element.setProperty(p, this.css[p].getValue(this.now[p], this.options.unit, p)) | |
} | |
} | |
}, | |
toggle: function () { | |
var obj = {}; | |
for (var p in this.now) { | |
obj[p] = [this.now[p], this.from[p]] | |
} | |
this.start(obj); | |
return this | |
} | |
}); | |
Fx.Slide = Fx.extend({ | |
options: { | |
mode: "vertical", | |
wait: true, | |
reverse: false, | |
postComplete: function (_2ec) { | |
if (this.to[1] === this.offset) { | |
return this.restore() | |
} | |
} | |
}, | |
initialize: function (el, _2ee) { | |
this.element = $(el); | |
var _2ef = { | |
"margin-left": this.element.getStyle("margin-left"), | |
"margin-right": this.element.getStyle("margin-right"), | |
"position": (this.element.getStyle("position") != "static" && window.ie) ? "relative" : "static", | |
"overflow": "hidden" | |
}; | |
this.element.setBlockStyles(); | |
this.element._initStyles = $extend(this.element.getStyles("margin-top", "margin-bottom", "margin-top"), { | |
"height": "auto" | |
}); | |
this.element.restoreBlockStyles(); | |
this.wrapper = $C("div", { | |
"styles": _2ef | |
}).injectAfter(this.element).adopt(this.element); | |
this.element.setStyle("margin-top", 0); | |
this.element.setStyle("margin-bottom", 0); | |
this.setOptions(_2ee); | |
this.now = []; | |
this.parent(this.options); | |
this.open = true; | |
this.addEvent("complete", function () { | |
this.open = (this.now[0] >= 0) | |
}); | |
if (window.webkit419) { | |
this.addEvent("complete", function () { | |
if (this.open) { | |
this.element.remove().injectIn(this.wrapper) | |
} | |
}) | |
} | |
if (this.element.isHidden()) { | |
this.hide() | |
} | |
}, | |
restore: function () { | |
if (this.wrapper) { | |
this.wrapper.style.height = "auto" | |
} | |
this.element.setStyles(this.element._initStyles) | |
}, | |
setNow: function () { | |
for (var i = 0; i < 2; i++) { | |
this.now[i] = this.compute(this.from[i], this.to[i]) | |
} | |
}, | |
vertical: function () { | |
this.margin = this.options.reverse ? "margin-top" : "margin-top"; | |
this.layout = "height"; | |
this.offset = this.element.offsetHeight || this.element.scrollHeight | |
}, | |
horizontal: function () { | |
this.margin = this.options.reverse ? "margin-right" : "margin-left"; | |
this.layout = "width"; | |
this.offset = this.element.offsetWidth || this.element.scrollWidth | |
}, | |
slideIn: function (mode) { | |
this.element.show(); | |
this[mode || this.options.mode](); | |
return this.start([parseInt(this.element.getStyle(this.margin)), parseInt(this.wrapper.getStyle(this.layout))], [0, this.offset]) | |
}, | |
slideOut: function (mode) { | |
this.element.show(); | |
this[mode || this.options.mode](); | |
return this.start([parseInt(this.element.getStyle(this.margin)), parseInt(this.wrapper.getStyle(this.layout))], [-this.offset, 0]) | |
}, | |
hide: function (mode) { | |
var _2f4 = false; | |
if (this.element.isHidden()) { | |
_2f4 = true; | |
this.element.setBlockStyles() | |
} | |
this[mode || this.options.mode](); | |
this.open = false; | |
this.set([-this.offset, 0]); | |
if (_2f4) { | |
this.element.restoreBlockStyles(); | |
this.element.show() | |
} | |
return this | |
}, | |
show: function (mode) { | |
this[mode || this.options.mode](); | |
this.open = true; | |
return this.set([0, this.offset]) | |
}, | |
toggle: function (mode) { | |
if (this.wrapper.offsetHeight == 0 || this.wrapper.offsetWidth == 0) { | |
return this.slideIn(mode) | |
} | |
return this.slideOut(mode) | |
}, | |
next: function () { | |
this.element.setStyle(this.margin, this.now[0] + this.options.unit); | |
this.wrapper.setStyle(this.layout, this.now[1] + this.options.unit) | |
} | |
}); | |
Fx.Elements = Fx.extend({ | |
initialize: function (_2f7, _2f8) { | |
this.elements = $$(_2f7); | |
this.parent(_2f8) | |
}, | |
setNow: function () { | |
for (var i in this.from) { | |
var _2fa = this.from[i], | |
iTo = this.to[i], | |
iCss = this.css[i], | |
iNow = this.now[i] = {}; | |
for (var p in _2fa) { | |
iNow[p] = iCss[p].getNow(_2fa[p], iTo[p], this) | |
} | |
} | |
}, | |
set: function (to) { | |
var _300 = {}; | |
this.css = {}; | |
for (var i in to) { | |
var iTo = to[i], | |
iCss = this.css[i] = {}, _304 = _300[i] = {}; | |
for (var p in iTo) { | |
iCss[p] = Fx.CSS.select(p, iTo[p]); | |
_304[p] = iCss[p].parse(iTo[p]) | |
} | |
} | |
return this.parent(_300) | |
}, | |
start: function (obj) { | |
if (this.timer && this.options.wait) { | |
return this | |
} | |
this.now = {}; | |
this.css = {}; | |
var from = {}, to = {}; | |
for (var i in obj) { | |
var _30a = obj[i], | |
_30b = from[i] = {}, iTo = to[i] = {}, iCss = this.css[i] = {}; | |
for (var p in _30a) { | |
var _30f = Fx.CSS.parse(this.elements[i], p, _30a[p]); | |
_30b[p] = _30f.from; | |
iTo[p] = _30f.to; | |
iCss[p] = _30f.css | |
} | |
} | |
return this.parent(from, to) | |
}, | |
increase: function () { | |
for (var i in this.now) { | |
var iNow = this.now[i], | |
iCss = this.css[i]; | |
for (var p in iNow) { | |
this.elements[i].setStyle(p, iCss[p].getValue(iNow[p], this.options.unit, p)) | |
} | |
} | |
} | |
}); | |
Fx.Scroll = Fx.extend({ | |
options: { | |
overflown: [], | |
offset: { | |
"x": 0, | |
"y": 0 | |
}, | |
wheelStops: false | |
}, | |
initialize: function (_314, _315) { | |
this.now = []; | |
this.isDocument = false; | |
if (!_314 || $(_314).isDocument()) { | |
this.isDocument = true; | |
_314 = window.getBody(); | |
this.options.wheelStops = true | |
} | |
this.element = $(_314); | |
this.bound = { | |
"stop": this.stop.bind(this, false) | |
}; | |
this.parent(_315); | |
if (this.options.wheelStops) { | |
this.addEvent("start", function () { | |
document.addEvent("mousewheel", this.bound.stop) | |
}.bind(this)); | |
this.addEvent("complete", function () { | |
document.removeEvent("mousewheel", this.bound.stop) | |
}.bind(this)) | |
} | |
}, | |
setNow: function () { | |
for (var i = 0; i < 2; i++) { | |
this.now[i] = this.compute(this.from[i], this.to[i]) | |
} | |
}, | |
scrollTo: function (x, y) { | |
if (this.timer && this.options.wait) { | |
return this | |
} | |
var el = this.element.getSize(), | |
max; | |
el.size["x"] = el.size["width"]; | |
el.size["y"] = el.size["height"]; | |
var _31b = { | |
"x": x, | |
"y": y | |
}; | |
for (var z in _31b) { | |
if (!this.isDocument) { | |
max = el.scrollSize[z] - el.size[z] | |
} else { | |
max = el.scrollSize[z] | |
} if ($is(_31b[z])) { | |
_31b[z] = ($typeOf(_31b[z]) == "number") ? _31b[z].limit(0, max) : max | |
} else { | |
_31b[z] = el.scrollSize[z] | |
} | |
_31b[z] += this.options.offset[z] | |
} | |
return this.start([el.scroll.x, el.scroll.y], [_31b.x, _31b.y]) | |
}, | |
toTop: function () { | |
return this.scrollTo(false, 0) | |
}, | |
toBottom: function () { | |
return this.scrollTo(0, "full") | |
}, | |
toLeft: function () { | |
return this.scrollTo(0, false) | |
}, | |
toRight: function () { | |
return this.scrollTo("full", false) | |
}, | |
toElement: function (el) { | |
var _31e = this.element.getPosition(false, true); | |
var _31f = $(el).getPosition(false, true); | |
return this.scrollTo(_31f.x - _31e.x, _31f.y - _31e.y) | |
}, | |
next: function () { | |
this.element.scrollTo(this.now[0], this.now[1]) | |
} | |
}); | |
JSONP = new Class({ | |
options: { | |
"callback": "callback", | |
"timeout": 20000, | |
"cache": false | |
}, | |
initialize: function (src, _321) { | |
if (src && !src.toLowerCase) { | |
_321 = src; | |
src = null | |
} | |
this.setOptions(_321); | |
JSONP.id = (JSONP.id || 0) + 1; | |
JSONP.callbacks = JSONP.callbacks || {}; | |
this.id = JSONP.id; | |
src && this.getSrc(src); | |
return this | |
}, | |
setCallback: function () { | |
var self = this; | |
JSONP.callbacks[this.id] = function (_323) { | |
this.endTs = $now(); | |
this.time = this.endTs - this.startTs; | |
if (!_323) { | |
this.error("NO_CONTENT") | |
} else { | |
this.invokeEvent("success", _323); | |
this.callChain(_323) | |
} | |
this.remove.delay(10, this) | |
}.bind(this); | |
JSONP["callbacks_" + this.id] = JSONP.callbacks[this.id]; | |
return this | |
}, | |
getSrc: function (src) { | |
if (src !== undefined) { | |
if (this.options.callback) { | |
this.src = src.replace(/&callback=.*?$/, "") + (src.contains("?") ? "&" : "?") + this.options.callback + "=JSONP.callbacks_" + this.id + (this.options.cache ? "&rnd=1" : "&rnd=" + $now()) | |
} else { | |
this.src = src + (src.contains("?") ? "&" : "?") + (this.options.cache ? "&rnd=1" : "&rnd=" + $now()) | |
} | |
} else { | |
this.src = this.src.replace(/rnd=.*?$/, "rnd=" + $now()) | |
} | |
return this.src.replace(/&&/, "&") | |
}, | |
send: function (src) { | |
!this.src && this.getSrc(src); | |
this.abort(); | |
this.options.callback && this.setCallback(); | |
this.startTs = $now(); | |
this.element = $C("script").setProperties({ | |
"async": true, | |
"src": this.getSrc(src) | |
}).addEvents({ | |
"load": this.invokeEvent.bind(this, "load"), | |
"error": this.error.bind(this, "SCRIPT_ERROR"), | |
"abort": this.abort.bind(this) | |
}).injectIn(document.head || document.body); | |
this.timer = function () { | |
this.invokeEvent("timeout"); | |
this.abort(); | |
if (this.options.callback) { | |
JSONP.callbacks[this.id] = function () { | |
this.remove() | |
}.bind(this); | |
delete(JSONP["callbacks_" + this.id]) | |
} | |
}.delay(this.options.timeout, this); | |
return this.invokeEvent("send") | |
}, | |
error: function (type, _327) { | |
return this.invokeEvent("error", type).abort() | |
}, | |
abort: function () { | |
if (this.timer) { | |
this.timer.clear(); | |
this.timer = null | |
} | |
if (!this.element) { | |
return this | |
} | |
return this.invokeEvent("abort").remove() | |
}, | |
remove: function () { | |
this.options.callback && (JSONP.callbacks[this.id] = Core.empty); | |
delete(JSON["callbacks_" + this.id]); | |
if (this.element) { | |
this.element.remove(); | |
this.element = null | |
} | |
return this | |
} | |
}).implement(new Options, new Events, new Chain); | |
Ajax = new Class({ | |
options: { | |
"method": "POST", | |
"asynchronous": true, | |
"encoding": "iso-8859-7", | |
"timeout": 20000, | |
"mimeType": "text/plain", | |
"multipart": false, | |
"queryString": "", | |
"forceAbort": true, | |
"username": null, | |
"password": null, | |
"encodeURI": true, | |
"appendDecacheString": true, | |
"url": "" | |
}, | |
setXHR: function () { | |
if (window.ie && !window.XMLHttpRequest) { | |
try { | |
this.XHR = new ActiveXObject("MSXML2.XMLHTTP.6.0") | |
} catch (ex) { | |
this.XHR = new ActiveXObject("MSXML3.XMLHTTP") | |
} | |
} | |
this.XHR = this.XHR || ((window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ie ? new ActiveXObject("Microsoft.XMLHTTP") : false)); | |
try {} catch (ex) {} | |
return this | |
}, | |
_timeOut: function () { | |
return this.abort().invokeEvent("timeout") | |
}, | |
_setQueryString: function () { | |
var _328 = []; | |
each(this.parameters, function (_329, key) { | |
if (_329 !== null) { | |
_328.push(key + "=" + (this.options.encodeURI ? encodeURIComponent(_329) : _329)) | |
} | |
}, this); | |
this.queryString = _328.join("&") | |
}, | |
abort: function () { | |
if (!this.isRunning) { | |
return this | |
} | |
this.__doneNotAsync = false; | |
this.isRunning = Ajax.isRunning = this.isSuccess = false; | |
this.timer = $clear(this.timer); | |
this.XHR.abort(); | |
this.XHR.onreadystatechange = Core.empty; | |
this.isAborted = true; | |
this.__startedLoading = false; | |
this.setXHR(); | |
return this.invokeEvent("abort") | |
}, | |
getHeader: function (_32b) { | |
try { | |
return _32b ? this.XHR.getResponseHeader(_32b) : this.XHR.getAllResponseHeaders() | |
} catch (ex) { | |
return null | |
} | |
}, | |
set: function (_32c) { | |
var _32d = []; | |
if ($typeOf(_32c) == "string") { | |
this.queryString = _32c | |
} else { | |
this.setOptions(_32c); | |
this.options.method = this.options.method.toUpperCase(); | |
this._setQueryString() | |
} if (this.options.method == "GET") { | |
this.URI = this.options.url + (this.queryString ? (this.options.url.contains("?") ? "&" : "?") + this.queryString : "") | |
} else { | |
this.URI = this.options.url | |
} | |
return this | |
}, | |
send: function (_32e) { | |
var self = this; | |
if (this.options.forceAbort && this.isRunning) { | |
this.abort() | |
} else { | |
if (this.isRunning) { | |
return this | |
} | |
} | |
this.__startedLoading = false; | |
this.isRunning = Ajax.isRunning = true; | |
this.parameters = $merge(this.options.parameters); | |
this.queryString = this.options.queryString; | |
if ($typeOf(_32e) != "string") { | |
$extend(this.parameters, _32e) | |
} | |
var _330 = this.options.mimeType || ""; | |
if (_330.toLowerCase() === "text/plain" && this.parameters) {} | |
if (this.XHR.overrideMimeType && this.options.mimeType) { | |
this.XHR.overrideMimeType(_330) | |
} | |
if (this.options.multipart) { | |
this.XHR.multipart = this.options.multipart | |
} | |
this.set(_32e); | |
var _331 = function (_332) { | |
_332 = _332.replace(/._crnd=\d+/, ""); | |
return _332 + (_332.contains("?") ? "&" : "?") + "_crnd=" + $now() | |
}; | |
this.URI = (this.options.appendDecacheString ? _331(this.URI) : this.URI) || "?"; | |
if (this.options.helper && this.options.appendDecacheString) { | |
this.URI += ("&_helper=" + this.options.helper) | |
} | |
try { | |
this.XHR.open(this.options.method, this.URI, this.options.multipart ? false : this.options.asynchronous, this.options.username, this.options.password); | |
if (this.options.asynchronous) { | |
this.onreadystatechange.delay(10, this, 1) | |
} | |
this.XHR.onreadystatechange = this.onreadystatechange.bind(this); | |
if (this.XHR.addEventListener) { | |
var _333 = { | |
"progress": function (_334) { | |
if (_334.lengthComputable) { | |
self.invokeEvent("progress", _334.loaded / _334.total) | |
} | |
}.bind(this), | |
"load": function (_335) { | |
_336(); | |
self.invokeEvent("load", _335) | |
}.bind(this), | |
"abort": function (_337) { | |
_336(); | |
self.invokeEvent("abort") | |
}.bind(this), | |
"error": function (_338) {}.bind(this) | |
}, _336 = function () { | |
if (self.XHR && !self.XHR.removedEvents) { | |
for (var i in _333) { | |
self.XHR.removeEventListener(i, _333[i]) | |
} | |
self.XHR.removedEvents = true | |
} | |
}; | |
if (!window.gecko || (window.gecko && this.XHR.upload)) { | |
!this.options.multipart && this.XHR.addEventListener("progress", _333.progress.bind(this), false); | |
this.XHR.addEventListener("load", _333.load, false); | |
this.XHR.addEventListener("error", _333.error, false); | |
this.XHR.addEventListener("abort", _333.abort, false) | |
} | |
} | |
each(this.options.headers, function (_33a, key) { | |
this.XHR.setRequestHeader(encodeURIComponent(key), encodeURIComponent(_33a)) | |
}, this); | |
if (!this.options.skipCoreHeader) { | |
this.XHR.setRequestHeader("X-Core-version", Core.version) | |
} | |
if (window.XAjaxAuthToken && !this.options.skipCoreHeader) { | |
if ($typeOf(window.XAjaxAuthToken) === "string") { | |
window.XAjaxAuthToken = window.XAjaxAuthToken.evalJSON() || {} | |
} | |
each(window.XAjaxAuthToken, function (_33c, key) { | |
this.XHR.setRequestHeader(encodeURIComponent(key), encodeURIComponent(_33c)) | |
}, this) | |
} | |
this.times++; | |
this.timeStart = $now(); | |
this.timeEnd = this.isAborted = this.isSuccess = null; | |
this.invokeEvent("send"); | |
switch (this.options.method) { | |
case "POST": | |
if (!this.options.skipCoreHeader) { | |
this.XHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded" + (this.options.encoding ? "; encoding: " + this.options.encoding : "")) | |
} else {} | |
this.XHR.send(this.queryString); | |
break; | |
case "GET": | |
this.XHR.send(null); | |
break | |
} | |
if (!this.options.asynchronous && this.XHR.overrideMimeType) { | |
this.onreadystatechange() | |
} | |
} catch (ex) { | |
if (console && console.log) { | |
console.log(ex, this.URI) | |
} | |
return this.invokeEvent("error", ex) | |
} | |
if (this.options.timeout > 1000) { | |
this.timer = this._timeOut.bind(this).delay(this.options.timeout) | |
} | |
return this | |
}, | |
onreadystatechange: function (_33e) { | |
if (this.options.multipart) { | |
return this | |
} | |
var _33f = false; | |
var req = this.XHR; | |
try { | |
_33f = (this.XHR.readyState == 4 && this.XHR.status == 0) | |
} catch (ex) { | |
_33f = true | |
} | |
switch (parseInt(_33e) || this.XHR.readyState) { | |
case 1: | |
if (!this.__startedLoading) { | |
this.invokeEvent("startLoading").invokeEvent("loading"); | |
this.__startedLoading = true | |
} | |
return this; | |
break; | |
case 2: | |
return this.invokeEvent("loaded"); | |
case 3: | |
return this.invokeEvent("interactive", this.XHR); | |
case 4: | |
this.invokeEvent("finishLoading"); | |
(function () { | |
req.onreadystatechange = Core.empty | |
}).delay(10); | |
if (_33f) {} | |
this.invokeEvent("complete"); | |
$clear(this.timer); | |
this.responseText = this.XHR.responseText || ""; | |
this.responseXML = this.XHR.responseXML; | |
var _341 = this.XHR.responseText; | |
if (this.XHR.responseText.indexOf("while") === 0) { | |
_341 = _341.slice(9) | |
} | |
this.responseJSON = _341.evalJSON(); | |
if (this.XHR.status) { | |
this.status = $any(this.XHR.status, -1); | |
this.statusText = $any(this.XHR.statusText, "") | |
} | |
if (this.status >= 200 || this.status < 300) { | |
if (!this.options.asynchronous) { | |
if (!this.__doneNotAsync) { | |
this.invokeEvent("beforeSuccess", this); | |
this.invokeEvent("success", this); | |
this.__doneNotAsync = true | |
} | |
} else { | |
this.invokeEvent.bind(this, "beforeSuccess", this).delay(1, this); | |
this.invokeEvent.bind(this, "success", this).delay(1, this) | |
} | |
this.callChain(this); | |
this.timeEnd = $now(); | |
this.time = this.timeEnd - this.timeStart; | |
this.isSuccess = true; | |
this.isRunning = false; | |
this.__startedLoading = false | |
} | |
return this | |
} | |
}, | |
initialize: function () { | |
var args = $A(arguments), | |
_343; | |
if (args[0].toLowerCase) { | |
_343 = args[1] || {}; | |
if (["get", "post"].contains(args[0].toLowerCase())) { | |
_343["method"] = args[0] | |
} else { | |
_343["url"] = args[0] | |
} | |
} else { | |
_343 = args[0] | |
} | |
this.options["parameters"] = {}; | |
this.options["headers"] = {}; | |
this.times = 0; | |
this.setXHR(); | |
if (!this.XHR) { | |
return invokeEvent("error", "Can't set up XHR") | |
} | |
return this.set(_343) | |
} | |
}); | |
Ajax.implement(new Chain, new Events, new Options); | |
XHR = Ajax; | |
window.gecko && window.addEventListener("keypress", function (_344) { | |
if (_344.keyCode == 27 && Ajax && Ajax.isRunning) { | |
_344.preventDefault() | |
} | |
}, false); | |
Ajax.RPC = Ajax.extend({ | |
initialize: function () { | |
var _345 = this.getRPCOptions.apply(this, arguments); | |
_345.url = Ajax.RPC.proxy; | |
return this.parent("post", _345) | |
}, | |
getRPCOptions: function () { | |
var args = arguments, | |
_347 = "", | |
_348 = "", | |
_349; | |
if ($typeOf(args[0]) == "array") { | |
args = args[0] | |
} else { | |
if ($typeOf(args[0]) == "object") { | |
return args[0] | |
} else { | |
args = $A(arguments) | |
} | |
} | |
_349 = args.pop(); | |
if ($typeOf(_349) != "object") { | |
_349 = {}; | |
args = $A(arguments) | |
} | |
_349.parameters = _349.parameters || new Abstract(); | |
_348 = args.shift(); | |
args.each(function (_34a, _34b) { | |
if (_34a === null) { | |
return | |
} | |
var type = $typeOf(_34a); | |
if (type == "string") { | |
_34a = _34a.trim(); | |
_34a = _34a.replace(/\n/gi, "\\n"); | |
_34a = _34a.replace(/\\"/gi, "\\\\\""); | |
if (_34a.indexOf("xmlrpc_struct") === -1) { | |
_34a = _34a.replace(/\"/gi, "\\\"") | |
} | |
_34a = _34a.replace(/\\$/g, "\\\\\\\\"); | |
_34a = _34a.replace(/\\'$/, "\\" + String.fromCharCode(9) + "'"); | |
if (_34a.match(/^\(float\)/)) { | |
_347 += _34a.replace(/\(float\)/, "") | |
} else { | |
_347 += "\"" + _34a + "\"" | |
} | |
} else { | |
if (type === "array") { | |
_347 += "array(" + _34a.join(",").replace(/\"/gi, "\\\"") + ")" | |
} else { | |
if (type === "object") { | |
_347 += XHR.RPC.getStruct(_34a) | |
} else { | |
_347 += _34a | |
} | |
} | |
} if (_34b < args.length - 1) { | |
_347 += ", " | |
} | |
}); | |
_347 = _347.replace(/(xmlrpc_struct\(array\()(.*?)\)(,|\$)/gi, function (_34d) { | |
return _34d.replace(/\\\"/gi, "\"") | |
}); | |
this.rpcMethod = this.rpcMethod = _348; | |
$extend(_349.parameters, { | |
rpcQuery: "\"" + _348 + "\", " + _347, | |
port: this.options.port || null, | |
host: this.options.host || null, | |
api: this.options.api || null, | |
ttl: this.options.ttl || null, | |
convertTo: this.options.convertTo || null, | |
charset: (document.characterSet || "UTF-8").toLowerCase() | |
}); | |
return _349 | |
}, | |
send: function () { | |
return this.parent(arguments.length ? this.getRPCOptions.apply(this, arguments).parameters : this.parameters) | |
} | |
}); | |
Ajax.RPC.proxy = "/gateway.php"; | |
Ajax.RPC.JSONP = Ajax.RPC.extend({ | |
send: function () { | |
var self = this; | |
var obj = arguments.length ? this.getRPCOptions.apply(this, arguments).parameters : this.parameters; | |
this.jsonP = this.jsonP || (new JSONP("", { | |
"cache": this.options.cache, | |
"callback": "coreCallback", | |
"onSuccess": function (json) { | |
self.callChain(json); | |
self.invokeEvent("success", json) | |
} | |
})); | |
this.jsonP.send("http://c.pathfinder.gr/gateway.php?rpcQuery=" + encodeURIComponent(obj.rpcQuery)); | |
return this | |
} | |
}); | |
Core.XHR = {}; | |
Core.XHR.get = Core.get = function (url, _352) { | |
return new XHR("get", { | |
url: url, | |
onSuccess: (_352 || Core.empty) | |
}).send() | |
}; | |
Core.XHR.post = Core.post = function (url, _354) { | |
return new XHR("POST", { | |
url: url, | |
onSuccess: (_354 || Core.empty) | |
}).send() | |
}; | |
Core.XHR.rpc = Core.rpc = function () { | |
var args = $A(arguments), | |
ttl = !isNaN(args[0]) ? args.shift() : undefined, | |
_357 = args.last() instanceof Function ? args.pop() : Core.empty; | |
return (xhr = new XHR.RPC({ | |
ttl: ttl, | |
onSuccess: _357 | |
})).send.apply(xhr, args) | |
}; | |
Ajax.RPC.getStruct = function (obj) { | |
var _359 = "xmlrpc_struct(array(", | |
ar = []; | |
each(obj, function (_35b, key) { | |
var _35d = _35b && _35b["indexOf"] && _35b.indexOf("xmlrpc_struct") === 0 ? true : false; | |
var val = ("'" + key + "' => " + (typeof (_35b) !== "number" && typeof (_35b) !== "boolean" && !_35d ? "'" : "")) + (typeof (_35b) !== "number" && typeof (_35b) !== "boolean" && !_35d ? _35b.replace(/\\/gi, "\\\\").replace(/'/g, "\\'") + "'" : _35b); | |
val = val.replace(/\\'$/, "\\" + String.fromCharCode(9) + "'"); | |
ar.push(val) | |
}); | |
_359 += ar.join(", ") + "))"; | |
return _359 | |
}; | |
var Color = new Class({ | |
initialize: function (_35f, type) { | |
var rgb, hsb; | |
type = type || (_35f.push ? "rgb" : "hex"); | |
switch (type) { | |
case "rgb": | |
rgb = _35f; | |
hsb = rgb.rgbToHsb(); | |
break; | |
case "hsb": | |
rgb = _35f.hsbToRgb(); | |
hsb = _35f; | |
break; | |
default: | |
rgb = _35f.hexToRgb(true); | |
hsb = rgb.rgbToHsb() | |
} | |
rgb.hsb = hsb; | |
rgb.hex = rgb.rgbToHex(); | |
return $extend(rgb, Color.prototype) | |
}, | |
mix: function () { | |
var _363 = $A(arguments); | |
var _364 = ($typeOf(_363[_363.length - 1]) == "number") ? _363.pop() : 50; | |
var rgb = this.copy(); | |
_363.each(function (_366) { | |
_366 = new Color(_366); | |
for (var i = 0; i < 3; i++) { | |
rgb[i] = Math.round((rgb[i] / 100 * (100 - _364)) + (_366[i] / 100 * _364)) | |
} | |
}); | |
return new Color(rgb, "rgb") | |
}, | |
invert: function () { | |
return new Color(this.map(function (_368) { | |
return 255 - _368 | |
})) | |
}, | |
setHue: function (_369) { | |
return new Color([_369, this.hsb[1], this.hsb[2]], "hsb") | |
}, | |
getHue: function () { | |
return this.hsb[0] | |
}, | |
setSaturation: function (_36a) { | |
return new Color([this.hsb[0], _36a, this.hsb[2]], "hsb") | |
}, | |
getSaturation: function () { | |
return this.hsb[1] | |
}, | |
setBrightness: function (_36b) { | |
return new Color([this.hsb[0], this.hsb[1], _36b], "hsb") | |
}, | |
getBrightness: function () { | |
return this.hsb[2] | |
}, | |
getGreen: function () { | |
return this.rbg[0] | |
}, | |
getBlue: function () { | |
return this.rgb[1] | |
}, | |
getRed: function () { | |
return this.rgb[2] | |
} | |
}); | |
function $RGB(r, g, b) { | |
return new Color([r, g, b], "rgb") | |
}; | |
function $HSB(h, s, b) { | |
return new Color([h, s, b], "hsb") | |
}; | |
Array.extend({ | |
rgbToHsb: function () { | |
var red = this[0], | |
_373 = this[1], | |
blue = this[2]; | |
var hue, _376, _377; | |
var max = Math.max(red, _373, blue), | |
min = Math.min(red, _373, blue); | |
var _37a = max - min; | |
_377 = max / 255; | |
_376 = (max != 0) ? _37a / max : 0; | |
if (_376 == 0) { | |
hue = 0 | |
} else { | |
var rr = (max - red) / _37a; | |
var gr = (max - _373) / _37a; | |
var br = (max - blue) / _37a; | |
if (red == max) { | |
hue = br - gr | |
} else { | |
if (_373 == max) { | |
hue = 2 + rr - br | |
} else { | |
hue = 4 + gr - rr | |
} | |
} | |
hue /= 6; | |
if (hue < 0) { | |
hue++ | |
} | |
} | |
return [Math.round(hue * 360), Math.round(_376 * 100), Math.round(_377 * 100)] | |
}, | |
hsbToRgb: function () { | |
var br = Math.round(this[2] / 100 * 255); | |
if (this[1] == 0) { | |
return [br, br, br] | |
} else { | |
var hue = this[0] % 360; | |
var f = hue % 60; | |
var p = Math.round((this[2] * (100 - this[1])) / 10000 * 255); | |
var q = Math.round((this[2] * (6000 - this[1] * f)) / 600000 * 255); | |
var t = Math.round((this[2] * (6000 - this[1] * (60 - f))) / 600000 * 255); | |
switch (Math.floor(hue / 60)) { | |
case 0: | |
return [br, t, p]; | |
case 1: | |
return [q, br, p]; | |
case 2: | |
return [p, br, t]; | |
case 3: | |
return [p, q, br]; | |
case 4: | |
return [t, p, br]; | |
case 5: | |
return [br, p, q] | |
} | |
} | |
return false | |
}, | |
rgbToHex: function (_384) { | |
if (this.length < 3) { | |
return false | |
} | |
if (this.length == 4 && this[3] == 0 && !_384) { | |
return "transparent" | |
} | |
var hex = []; | |
for (var i = 0; i < 3; i++) { | |
var bit = (this[i] - 0).toString(16); | |
hex.push((bit.length == 1) ? "0" + bit : bit) | |
} | |
return _384 ? hex : "#" + hex.join("") | |
}, | |
hexToRgb: function (_388) { | |
if (this.length != 3) { | |
return false | |
} | |
var rgb = []; | |
for (var i = 0; i < 3; i++) { | |
rgb.push(parseInt((this[i].length == 1) ? this[i] + this[i] : this[i], 16)) | |
} | |
return _388 ? rgb : "rgb(" + rgb.join(",") + ")" | |
} | |
}); | |
Fx.Transition = function (_38b, _38c) { | |
_38c = _38c || []; | |
if ($typeOf(_38c) != "array") { | |
_38c = [_38c] | |
} | |
return $extend(_38b, { | |
easeIn: function (pos) { | |
return _38b(pos, _38c) | |
}, | |
easeOut: function (pos) { | |
return 1 - _38b(1 - pos, _38c) | |
}, | |
easeInOut: function (pos) { | |
return (pos <= 0.5) ? _38b(2 * pos, _38c) / 2 : (2 - _38b(2 * (1 - pos), _38c)) / 2 | |
} | |
}) | |
}; | |
Fx.Transitions = new Abstract({ | |
Linear: function (p) { | |
return p | |
} | |
}); | |
Fx.Transitions.extend = function (_391) { | |
for (var _392 in _391) { | |
Fx.Transitions[_392] = new Fx.Transition(_391[_392]); | |
Fx.Transitions.compat(_392) | |
} | |
}; | |
Fx.Transitions.compat = function (_393) { | |
["In", "Out", "InOut"].each(function (_394) { | |
Fx.Transitions[_393.toLowerCase() + _394] = Fx.Transitions[_393]["ease" + _394] | |
}) | |
}; | |
Fx.Transitions.extend({ | |
Pow: function (p, x) { | |
return Math.pow(p, x[0] || 6) | |
}, | |
Expo: function (p) { | |
return Math.pow(2, 8 * (p - 1)) | |
}, | |
Circ: function (p) { | |
return 1 - Math.sin(Math.acos(p)) | |
}, | |
Sine: function (p) { | |
return 1 - Math.sin((1 - p) * Math.PI / 2) | |
}, | |
Back: function (p, x) { | |
x = x[0] || 1.618; | |
return Math.pow(p, 2) * ((x + 1) * p - x) | |
}, | |
Bounce: function (p) { | |
var _39d; | |
for (var a = 0, b = 1; 1; a += b, b /= 2) { | |
if (p >= (7 - 4 * a) / 11) { | |
_39d = -Math.pow((11 - 6 * a - 11 * p) / 4, 2) + b * b; | |
break | |
} | |
} | |
return _39d | |
}, | |
Elastic: function (p, x) { | |
return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3) | |
} | |
}); | |
["Quad", "Cubic", "Quart", "Quint"].each(function (_3a2, i) { | |
Fx.Transitions[_3a2] = new Fx.Transition(function (p) { | |
return Math.pow(p, [i + 2]) | |
}); | |
Fx.Transitions.compat(_3a2) | |
}); | |
Drag = new Class({ | |
options: { | |
handle: false, | |
unit: "px", | |
onStart: Class.empty, | |
onBeforeStart: Class.empty, | |
onComplete: Class.empty, | |
onSnap: Class.empty, | |
onDrag: Class.empty, | |
limit: false, | |
modifiers: { | |
x: "left", | |
y: "top" | |
}, | |
grid: false, | |
snap: 6 | |
}, | |
initialize: function (el, _3a6) { | |
this.setOptions(_3a6); | |
this.element = $(el); | |
this.handle = $(this.options.handle) || this.element; | |
this.mouse = { | |
"now": {}, | |
"pos": {} | |
}; | |
this.value = { | |
"start": {}, | |
"now": {} | |
}; | |
this.bound = { | |
"start": this.start.bind(this), | |
"check": this.check.bind(this), | |
"drag": this.drag.bind(this), | |
"stop": this.stop.bind(this) | |
}; | |
this.attach(); | |
if (this.options.initialize) { | |
this.options.initialize.call(this) | |
} | |
}, | |
attach: function () { | |
this.handle.addEvent("mousedown", this.bound.start); | |
return this | |
}, | |
detach: function () { | |
this.handle.removeEvent("mousedown", this.bound.start); | |
return this | |
}, | |
start: function (_3a7) { | |
this.invokeEvent("beforestart", this.element, _3a7); | |
this.mouse.start = _3a7.page; | |
var _3a8 = this.options.limit; | |
this.limit = { | |
"x": [], | |
"y": [] | |
}; | |
for (var z in this.options.modifiers) { | |
if (!this.options.modifiers[z]) { | |
continue | |
} | |
this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt(); | |
this.mouse.pos[z] = _3a7.page[z] - this.value.now[z]; | |
if (_3a8 && _3a8[z]) { | |
for (var i = 0; i < 2; i++) { | |
if ($is(_3a8[z][i])) { | |
this.limit[z][i] = ($typeOf(_3a8[z][i]) == "function") ? _3a8[z][i]() : _3a8[z][i] | |
} | |
} | |
} | |
} | |
if ($typeOf(this.options.grid) == "number") { | |
this.options.grid = { | |
"x": this.options.grid, | |
"y": this.options.grid | |
} | |
} | |
$(document).addEvent("mousemove", this.bound.check); | |
$(document).addEvent("mouseup", this.bound.stop); | |
this.invokeEvent("start", this.element); | |
_3a7.stop() | |
}, | |
reCalc: function () { | |
var _3ab = this.options.limit; | |
this.limit = { | |
"x": [], | |
"y": [] | |
}; | |
for (var z in this.options.modifiers) { | |
if (!this.options.modifiers[z]) { | |
continue | |
} | |
this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt(); | |
if (_3ab && _3ab[z]) { | |
for (var i = 0; i < 2; i++) { | |
if ($is(_3ab[z][i])) { | |
this.limit[z][i] = ($typeOf(_3ab[z][i]) == "function") ? _3ab[z][i]() : _3ab[z][i] | |
} | |
} | |
} | |
} | |
if ($typeOf(this.options.grid) == "number") { | |
this.options.grid = { | |
"x": this.options.grid, | |
"y": this.options.grid | |
} | |
} | |
return this | |
}, | |
check: function (_3ae) { | |
var _3af = Math.round(Math.sqrt(Math.pow(_3ae.page.x - this.mouse.start.x, 2) + Math.pow(_3ae.page.y - this.mouse.start.y, 2))); | |
if (_3af > this.options.snap) { | |
$(document).removeEvent("mousemove", this.bound.check); | |
$(document).addEvent("mousemove", this.bound.drag); | |
this.drag(_3ae); | |
this.invokeEvent("snap", this.element) | |
} | |
_3ae.stop() | |
}, | |
drag: function (_3b0) { | |
this.out = false; | |
this.isDragging = true; | |
this.mouse.now = _3b0.page; | |
for (var z in this.options.modifiers) { | |
if (!this.options.modifiers[z]) { | |
continue | |
} | |
this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z]; | |
if (this.limit[z]) { | |
if ($is(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])) { | |
this.value.now[z] = this.limit[z][1]; | |
this.out = true | |
} else { | |
if ($is(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])) { | |
this.value.now[z] = this.limit[z][0]; | |
this.out = true | |
} | |
} | |
} | |
if (this.options.grid[z]) { | |
this.value.now[z] -= (this.value.now[z] % this.options.grid[z]) | |
} | |
this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit) | |
} | |
this.invokeEvent("drag", _3b0, this); | |
_3b0.stop() | |
}, | |
stop: function () { | |
this.isDragging = false; | |
document.removeEvent("mousemove", this.bound.check); | |
document.removeEvent("mousemove", this.bound.drag); | |
document.removeEvent("mouseup", this.bound.stop); | |
this.invokeEvent("complete", this.element); | |
return this | |
} | |
}); | |
Drag.implement(new Events, new Options); | |
Element.extend({ | |
makeResizable: function (_3b2) { | |
return new Drag(this, $merge({ | |
modifiers: { | |
x: "width", | |
y: "height" | |
} | |
}, _3b2)) | |
} | |
}); | |
Drag.Move = Drag.extend({ | |
options: { | |
"droppables": [], | |
"container": false, | |
"overflown": [] | |
}, | |
initialize: function (el, _3b4) { | |
this.setOptions(_3b4); | |
this.element = $(el); | |
this.droppables = $$(this.options.droppables); | |
this.container = $(this.options.container); | |
this.elementSize = { | |
width: this.element.offsetWidth, | |
height: this.element.offsetHeight | |
}; | |
this.position = { | |
"element": this.element.getStyle("position"), | |
"container": false | |
}; | |
if (this.container) { | |
this.position.container = this.container.getStyle("position") | |
} | |
if (!["relative", "absolute", "fixed"].contains(this.position.element)) { | |
this.position.element = "absolute" | |
} | |
var pos = this.element.getPosition(); | |
var _3b6 = this.element.getParent(), | |
_3b7; | |
if (!this.isFixedOrAbs) { | |
while (_3b6 && !this.isFixedOrAbs) { | |
if (["absolute", "fixed"].contains(_3b6.getStyle("position"))) { | |
this.isFixedOrAbs = true; | |
_3b7 = _3b6; | |
break | |
} | |
_3b6 = _3b6.getParent() | |
} | |
} | |
if (this.isFixedOrAbs) { | |
pos = { | |
x: this.element.offsetLeft - this.element.parentNode.scrollLeft, | |
y: this.element.offsetTop - this.element.parentNode.scrollTop | |
} | |
} | |
var left = pos.x.toInt(); | |
var top = pos.y.toInt(); | |
if (this.element.position == "absolute" && !["relative", "absolute", "fixed"].contains(this.position.container)) { | |
top = $is(top) ? top : this.element.getTop(this.options.overflown); | |
left = $is(left) ? left : this.element.getLeft(this.options.overflown) | |
} else { | |
top = $is(top) ? top : 0; | |
left = $is(left) ? left : 0 | |
} | |
this.element.setStyles({ | |
"top": top, | |
"left": left, | |
"position": this.position.element | |
}); | |
this.parent(this.element) | |
}, | |
start: function (_3ba) { | |
this.overed = null; | |
if (this.container) { | |
var cont = this.container.getCoordinates(); | |
var el = this.element.getCoordinates(); | |
if (this.position.element == "absolute" && !["relative", "absolute", "fixed"].contains(this.position.container)) { | |
this.options.limit = { | |
"x": [cont.left, cont.right - el.width], | |
"y": [cont.top, cont.bottom - el.height] | |
} | |
} else { | |
this.options.limit = { | |
"y": [0, cont.height - el.height], | |
"x": [0, cont.width - el.width] | |
} | |
} | |
} | |
this.parent(_3ba) | |
}, | |
drag: function (_3bd) { | |
this.parent(_3bd); | |
var _3be = this.out ? false : this.droppables.filter(this.checkAgainst, this)[0]; | |
if (this.overed != _3be) { | |
if (this.overed) { | |
this.overed.invokeEvent("out", this.element, this.overed, _3bd, this) | |
} | |
this.overed = _3be ? _3be.invokeEvent("over", this.element, _3be, _3bd, this) : null | |
} | |
return this | |
}, | |
checkAgainst: function (el) { | |
var _3c0 = el, | |
now = this.mouse.now; | |
el = el.getCoordinates(this.options.overflown); | |
var _3c2 = 0, | |
_3c3 = 0; | |
if (this.options.droppablesCenter) { | |
_3c2 = this.elementSize.width / 2; | |
_3c3 = this.elementSize.height / 2; | |
now = this.value.now | |
} | |
var left = now.x + _3c2 * 2 >= el.left + _3c2; | |
var _3c5 = now.x < el.right - _3c2; | |
var top = now.y + _3c3 * 2 > el.top + _3c3; | |
var _3c7 = now.y < el.bottom - _3c3; | |
if (this.options.droppablesAxis) { | |
return this.options.droppablesAxis == "x" ? (left && _3c5) : (_3c7 && top) | |
} else { | |
return left && _3c5 && top && _3c7 | |
} | |
}, | |
stop: function (_3c8) { | |
this.parent(); | |
if (this.overed && !this.out) { | |
this.overed.invokeEvent("dropped", this.element, _3c8) | |
} else { | |
this.element.invokeEvent("emptydrop", this) | |
} | |
return this | |
} | |
}); | |
Element.extend({ | |
makeDraggable: function (_3c9) { | |
return new Drag.Move(this, _3c9) | |
} | |
}); | |
var Slider = new Class({ | |
options: { | |
"tick": function (pos) { | |
this.knob.setStyle(this.p, pos); | |
return this | |
}, | |
mode: "horizontal", | |
steps: 100, | |
offset: 0 | |
}, | |
initialize: function (el, knob, _3cd) { | |
this.element = $(el); | |
this.knob = $(knob); | |
this.setOptions(_3cd); | |
this.previousChange = -1; | |
this.previousEnd = -1; | |
this.step = -1; | |
this.element.addEvent("mousedown", this.clickedElement.bind(this)); | |
var mod, _3cf; | |
switch (this.options.mode) { | |
case "horizontal": | |
this.z = "x"; | |
this.p = "left"; | |
mod = { | |
"x": "left", | |
"y": false | |
}; | |
_3cf = "offsetWidth"; | |
this.knobOffset = this.knob.offsetWidth / 2; | |
break; | |
case "vertical": | |
this.z = "y"; | |
this.p = "top"; | |
mod = { | |
"x": false, | |
"y": "top" | |
}; | |
_3cf = "offsetHeight"; | |
this.knobOffset = this.knob.offsetHeight / 2 | |
} | |
this.max = this.element[_3cf] - this.knobOffset + (this.options.offset * 2); | |
this.getPos = function () { | |
return this.element["get" + this.p.capitalize()]() + this.element.offsetParent.getStyle("border-" + this.p + "-width").toInt() | |
}.bind(this); | |
this.knob.setStyle("position", "relative").setStyle(this.p, -this.options.offset); | |
var lim = {}; | |
lim[this.z] = [-this.knob[_3cf] / 2 + (this.options.offset), this.max - this.options.offset]; | |
this.drag = new Drag(this.knob, { | |
limit: lim, | |
modifiers: mod, | |
snap: 0, | |
onStart: function () { | |
this.invokeEvent("start"); | |
this.draggedKnob() | |
}.bind(this), | |
onDrag: function () { | |
this.draggedKnob() | |
}.bind(this), | |
onComplete: function () { | |
this.draggedKnob(); | |
this.end() | |
}.bind(this) | |
}); | |
if (this.options.initialize) { | |
this.options.initialize.call(this) | |
} | |
}, | |
reCalc: function () { | |
var lim = {}; | |
var _3d2 = "offset" + (this.options.mode === "vertical" ? "Height" : "Width"); | |
this.max = this.element[_3d2] - this.knobOffset + (this.options.offset * 2); | |
lim[this.options.mode === "vertical" ? "y" : "x"] = [-this.knob[_3d2] / 2 + (this.options.offset), this.max - this.options.offset]; | |
this.drag.setOptions({ | |
"limit": lim | |
}); | |
this.drag.reCalc(); | |
return this | |
}, | |
set: function (step, _3d4) { | |
this.step = step.limit(0, this.options.steps); | |
if (!_3d4) { | |
this.checkStep() | |
} | |
this.end(); | |
return this.options.tick(this.toPosition(this.step)); | |
if (!_3d4) { | |
return this.invokeEvent("change", this.step) | |
} else { | |
return this | |
} | |
}, | |
clickedElement: function (_3d5) { | |
var _3d6 = _3d5.page[this.z] - this.getPos() - this.knobOffset / 2; | |
_3d6 = _3d6.limit(-this.options.offset, this.max - this.options.offset); | |
this.step = this.toStep(_3d6); | |
this.options.tick(_3d6).invokeEvent("change", this.step); | |
this.drag.start(_3d5); | |
this.checkStep(); | |
this.end(); | |
return this | |
}, | |
draggedKnob: function () { | |
this.step = this.toStep(this.drag.value.now[this.z]); | |
this.checkStep() | |
}, | |
checkStep: function () { | |
if (this.previousChange != this.step) { | |
this.previousChange = this.step; | |
this.invokeEvent("change", this.step) | |
} | |
}, | |
end: function () { | |
if (this.previousEnd !== this.step) { | |
this.previousEnd = this.step; | |
this.invokeEvent("complete", this.step + "") | |
} | |
}, | |
toStep: function (_3d7) { | |
return Math.round((_3d7 + this.options.offset + this.knobOffset / 2) / (this.max + this.knobOffset / 2) * this.options.steps) | |
}, | |
toPosition: function (step) { | |
return -this.knobOffset / 2 + (this.max - this.options.offset + this.knobOffset / 2) * step / this.options.steps | |
} | |
}); | |
Slider.implement(new Events, new Options); | |
var Preloader = new Class({ | |
options: { | |
asynchronous: true, | |
returnElement: false | |
}, | |
initialize: function (_3d9, _3da) { | |
this.elements = _3d9.push ? _3d9 : [_3d9]; | |
this.setOptions(_3da); | |
this.total = this.elements.length; | |
this.current = this.index = this.percent = 0; | |
if (!this.options.asynchronous) { | |
this.next() | |
} else { | |
this.elements.each(this.next, this) | |
} | |
return this | |
}, | |
next: function () { | |
if (this.index === this.total) { | |
return this | |
} | |
this.index++; | |
var item = this.elements[this.index - 1], | |
_3dc; | |
var _3dd = item.match(/\.(js|css|gif|png|jpeg|jpg|tiff|bmp)(\??|$)/i); | |
_3dd = (_3dd ? _3dd[0].replace(/\?/, "") : "").toLowerCase(); | |
switch (_3dd) { | |
case ".js": | |
_3dc = this.script(item, this.index); | |
break; | |
case ".css": | |
_3dc = this.css(item, this.index); | |
break; | |
default: | |
case ".png": | |
case ".jpg": | |
case ".gif": | |
case ".jpeg": | |
_3dc = this.image(item, this.index); | |
break | |
} | |
return this.invokeEvent("start", _3dc, this.index) | |
}, | |
progress: function (item, _3df, _3e0) { | |
var ret = this.options.returnElement ? item : {}; | |
this.current++; | |
this.percent = (100 * this.current) / this.total; | |
if (item.nodeName === "IMG") { | |
if (window.webkit419) { | |
var size = { | |
width: item.width || item.scrollWidth, | |
height: item.height || item.scrollHeight | |
}; | |
item.remove() | |
} | |
if (!this.options.returnElement) { | |
ret = { | |
width: item.width, | |
height: item.height | |
} | |
} | |
} | |
item.removeEvents(); | |
if (!this.options.returnElement) { | |
Garbage.discard(item); | |
delete(item); | |
item = null | |
}(function () { | |
this.invokeEvent("progress", ret, _3df, this.elements[_3df - 1], _3e0) | |
}).delay(0, this); | |
if (this.current == this.total) { | |
(function () { | |
this.invokeEvent("complete", ret, _3df, this.elements[_3df - 1], _3e0).callChain(ret, _3df, this.elements[_3df - 1], _3e0) | |
}).delay(0, this); | |
return this | |
} else { | |
return !this.options.asynchronous ? this.next() : this | |
} | |
}, | |
error: function (item, _3e4, _3e5) { | |
this.invokeEvent("error", item, _3e4, _3e5); | |
return this.progress(item, _3e4, _3e5) | |
}, | |
image: function (item, _3e7) { | |
var img = $C("img", { | |
src: item, | |
alt: "core preloaded image" | |
}); | |
if (window.webkit419) { | |
img.setStyles({ | |
"position": "absolute", | |
"visibility": "hidden", | |
"top": -50000, | |
"left": -50000 | |
}).injectIn(document.body) | |
} | |
img.addEvents({ | |
"load": this.progress.bind(this, img, _3e7), | |
"abort": this.error.bind(this, img, _3e7), | |
"error": this.error.bind(this, img, _3e7) | |
}); | |
if (img.width && img.height && (window.ie ? img.readyState == "complete" : 1)) { | |
img.invokeEvent.delay(0, img, "load", img, _3e7) | |
} | |
return img | |
}, | |
script: function (item, _3ea) { | |
var _3eb = $C("script", { | |
"src": item | |
}).injectIn(document.head); | |
_3eb.addEvents({ | |
"load": this.progress.bind(this, _3eb, _3ea) | |
}); | |
_3eb["onreadystatechange"] = function () { | |
if (/loaded|complete/.test(this.readyState)) { | |
this.invokeEvent("load") | |
} | |
}.bind(_3eb); | |
return _3eb | |
}, | |
css: function (item, _3ed) { | |
var css = $C("style", { | |
"type": "text/css", | |
"media": "all", | |
"src": item | |
}).injectIn(document.head); | |
css.addEvents({ | |
"load": this.progress.bind(this, css, _3ed) | |
}); | |
css["onreadystatechange"] = function () { | |
if (/loaded|complete/.test(this.readyState)) { | |
this.invokeEvent("load") | |
} | |
}.bind(css); | |
return css | |
} | |
}); | |
Preloader.implement(new Options, new Events, new Chain); | |
new Abstract($(document)); | |
new Abstract($(window)); | |
$(window).addEvent("beforeunload", Garbage.onBeforeUnload); | |
$extend(window.HTMLElement.prototype, Element.Methods); | |
$extend($, Element.Methods); | |
each(Element.Methods, function (_3ef, name) { | |
if (/set|hide|toggle|make|show|Event|fix|Class|transition/.test(name)) { | |
Array.prototype[name] = function () { | |
var args = arguments; | |
this.each(function (_3f2, _3f3) { | |
_3ef.apply($(_3f2), args) | |
}); | |
return this | |
} | |
} | |
}); | |
$forEach(Element.Methods, function (fn, name) { | |
Element[name] = function (el) { | |
return fn.apply($(el), $A(arguments).slice(1)) | |
} | |
}); | |
PNGFix = { | |
blankImg: "http://c.pathfinder.gr/img/void.gif", | |
alphaFilter: "DXImageTransform.Microsoft.AlphaImageLoader", | |
filter: function (s, m) { | |
if (this.filters[this.alphaFilter]) { | |
this.filters[this.alphaFilter].enabled = s ? true : false; | |
if (s) { | |
with(this.filters[this.alphaFilter]) { | |
src = s; | |
sizingMethod = m | |
} | |
} | |
} else { | |
if (s) { | |
this.style.filter = "progid:" + PNGFix.alphaFilter + "(src=\"" + s + "\",sizingMethod=\"" + m + "\")" | |
} | |
} | |
}, | |
fixImg: function () { | |
if (/\.png($|\?|\/)/i.test(this.src)) { | |
if (this.currentStyle.width == "auto" && this.currentStyle.height == "auto") { | |
this.style.width = this.offsetWidth + "px"; | |
this.style.height = this.offsetHeight + "px" | |
} | |
var _3f9 = this.src; | |
this.src = PNGFix.blankImg; | |
setTimeout(function () { | |
this.style.visibility = "visible"; | |
PNGFix.filter.apply(this, [_3f9, "scale"]); | |
this.src = PNGFix.blankImg | |
}.bind(this), 150) | |
} else { | |
if (this.src.indexOf(PNGFix.blankImg) < 0) { | |
this.style.visibility = "visible"; | |
PNGFix.filter.apply(this) | |
} | |
} | |
}, | |
removeFix: function (_3fa) { | |
_3fa.style.backgroundImage = "" | |
}, | |
fix: function (_3fb) { | |
if (!(window.ie6 || window.ie5)) { | |
return | |
} | |
if (!_3fb) { | |
_3fb = $T("img") | |
} else { | |
_3fb = $$(_3fb) | |
} | |
_3fb.each(function (_3fc) { | |
var _3fd = _3fc.currentStyle.backgroundImage || _3fc.style.backgroundImage; | |
if (_3fc.tagName == "IMG" && /\.png($|\?|\/)/i.test(_3fc.src)) { | |
_3fc.style.visibility = "hidden"; | |
if (_3fc.readyState != "complete") { | |
_3fc.addEvent("load", PNGFix.fixImg.bind(_3fc)) | |
} else { | |
PNGFix.fixImg.apply(_3fc) | |
} | |
} else { | |
if (_3fd && _3fd != "none") { | |
if (_3fd.match(/^url[("']+(.*\.png)[)"']+$/i)) { | |
var s = RegExp.$1; | |
if (_3fc.currentStyle.width == "auto" && _3fc.currentStyle.height == "auto") { | |
_3fc.style.width = this.offsetWidth + "px"; | |
_3fc.style.height = this.offsetHeight + "px" | |
} | |
_3fc.style.backgroundImage = "none"; | |
PNGFix.filter.apply(_3fc, [s, "crop"]); | |
for (var n = 0; n < _3fc.childNodes.length; n++) { | |
if (_3fc.childNodes[n].style) { | |
_3fc.childNodes[n].style.position = "relative" | |
} | |
} | |
_3fc.__pngFixed = true | |
} | |
} else { | |
PNGFix.filter.apply(_3fc) | |
} | |
} | |
}) | |
} | |
}; | |
window.addEvent("DOMContentLoaded", function () { | |
window.DOMContentLoaded = true; | |
if (window.ie6 || window.ie5) { | |
try { | |
document.execCommand("BackgroundImageCache", false, true) | |
} catch (ex) {} | |
} | |
if (Function.__bindSource) { | |
Function._bindSource = Function.__bindSource.trim().replace(/^\(|\)$/, ""); | |
eval("Function.prototype.bind = " + Function._bindSource) | |
} | |
}); | |
(function (OBJ) { | |
(function () { | |
"use strict"; | |
function f(n) { | |
return n < 10 ? "0" + n : n | |
}; | |
if (typeof Date.prototype.toJSON !== "function") { | |
Date.prototype.toJSON = function (key) { | |
return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null | |
}; | |
String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (key) { | |
return this.valueOf() | |
} | |
} | |
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | |
_406 = /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | |
gap, _408, meta = { | |
"\b": "\\b", | |
"\t": "\\t", | |
"\n": "\\n", | |
"\f": "\\f", | |
"\r": "\\r", | |
"\"": "\\\"", | |
"\\": "\\\\" | |
}, rep; | |
function _40b(_40c) { | |
_406.lastIndex = 0; | |
return _406.test(_40c) ? "\"" + _40c.replace(_406, function (a) { | |
var c = meta[a]; | |
return typeof c === "string" ? c : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) | |
}) + "\"" : "\"" + _40c + "\"" | |
}; | |
function str(key, _411) { | |
var i, k, v, _415, mind = gap, | |
_417, _418 = _411[key]; | |
if (_418 && typeof _418 === "object" && typeof _418.toJSON === "function") { | |
_418 = _418.toJSON(key) | |
} | |
if (typeof rep === "function") { | |
_418 = rep.call(_411, key, _418) | |
} | |
switch (typeof _418) { | |
case "string": | |
return _40b(_418); | |
case "number": | |
return isFinite(_418) ? String(_418) : "null"; | |
case "boolean": | |
case "null": | |
return String(_418); | |
case "object": | |
if (!_418) { | |
return "null" | |
} | |
gap += _408; | |
_417 = []; | |
if (Object.prototype.toString.apply(_418) === "[object Array]") { | |
_415 = _418.length; | |
for (i = 0; i < _415; i += 1) { | |
_417[i] = str(i, _418) || "null" | |
} | |
v = _417.length === 0 ? "[]" : gap ? "[\n" + gap + _417.join(",\n" + gap) + "\n" + mind + "]" : "[" + _417.join(",") + "]"; | |
gap = mind; | |
return v | |
} | |
if (rep && typeof rep === "object") { | |
_415 = rep.length; | |
for (i = 0; i < _415; i += 1) { | |
if (typeof rep[i] === "string") { | |
k = rep[i]; | |
v = str(k, _418); | |
if (v) { | |
_417.push(_40b(k) + (gap ? ": " : ":") + v) | |
} | |
} | |
} | |
} else { | |
for (k in _418) { | |
if (Object.prototype.hasOwnProperty.call(_418, k)) { | |
v = str(k, _418); | |
if (v) { | |
_417.push(_40b(k) + (gap ? ": " : ":") + v) | |
} | |
} | |
} | |
} | |
v = _417.length === 0 ? "{}" : gap ? "{\n" + gap + _417.join(",\n" + gap) + "\n" + mind + "}" : "{" + _417.join(",") + "}"; | |
gap = mind; | |
return v | |
} | |
}; | |
if (typeof OBJ.stringify !== "function") { | |
OBJ.stringify = function (_419, _41a, _41b) { | |
var i; | |
gap = ""; | |
_408 = ""; | |
if (typeof _41b === "number") { | |
for (i = 0; i < _41b; i += 1) { | |
_408 += " " | |
} | |
} else { | |
if (typeof _41b === "string") { | |
_408 = _41b | |
} | |
} | |
rep = _41a; | |
if (_41a && typeof _41a !== "function" && (typeof _41a !== "object" || typeof _41a.length !== "number")) { | |
throw new Error("JSON.stringify") | |
} | |
return str("", { | |
"": _419 | |
}) | |
} | |
} | |
if (typeof OBJ.parse !== "function") { | |
OBJ.parse = function (text, _41e) { | |
var j; | |
function walk(_421, key) { | |
var k, v, _425 = _421[key]; | |
if (_425 && typeof _425 === "object") { | |
for (k in _425) { | |
if (Object.prototype.hasOwnProperty.call(_425, k)) { | |
v = walk(_425, k); | |
if (v !== undefined) { | |
_425[k] = v | |
} else { | |
delete _425[k] | |
} | |
} | |
} | |
} | |
return _41e.call(_421, key, _425) | |
}; | |
text = String(text); | |
cx.lastIndex = 0; | |
if (cx.test(text)) { | |
text = text.replace(cx, function (a) { | |
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) | |
}) | |
} | |
if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) { | |
j = eval("(" + text + ")"); | |
return typeof _41e === "function" ? walk({ | |
"": j | |
}, "") : j | |
} | |
} | |
} | |
}()) | |
}(Core.JSON)); | |
if (!this.JSON) { | |
this.JSON = Core.JSON | |
} | |
if (0) { | |
if (!JSON.stringify) { | |
for (var i = 0, l = prototypes.length; i < l; i++) { | |
prototypes[i].prototype.toJSON = prototypes[i].prototype.toJSON || prototypes[i].prototype.toJSON_ext | |
} | |
} | |
} | |
Core.newClass = function () { | |
return new Class() | |
}; | |
Core.debug = Core.empty; | |
Object.extend = $extend; | |
if (window.chrome) { | |
document.Node = Element; | |
document.Node.disableSelect = document.Node.makeUnselectable | |
} else { | |
document.Node = Element; | |
document.Node.disableSelect = document.Node.makeUnselectable; | |
Node = Element; | |
Node.disableSelect = Node.makeUnselectable | |
} | |
Event = {}; | |
Event.add = Element.addEvent; | |
Event.remove = Element.removeEvent; | |
Event.target = function (e) { | |
return e.target || e.srcElement | |
}; | |
Event.stop = function (e) { | |
if (e.stopPropagation) { | |
e.stopPropagation(); | |
e.preventDefault() | |
} else { | |
e.returnValue = false; | |
e.cancelBubble = true | |
} | |
}; | |
Ajax.rpc = function () { | |
return new Ajax.RPC($A(arguments)).send() | |
}; | |
Ajax.get = function (_429) { | |
return new Ajax("get", _429).send() | |
}; | |
Ajax.post = function (_42a) { | |
return new Ajax("post", _42a).send() | |
}; | |
System = { | |
"browser": { | |
"ie": window.ie, | |
"ie70": window.ie7, | |
"ie60": window.ie6, | |
"ie50": window.ie5, | |
"moz": window.gecko, | |
"mozilla": window.gecko, | |
"safari": window.webkit | |
} | |
}; | |
$CN = function (_42b, root) { | |
var _42d = ""; | |
if (!_42b.push) { | |
_42d = "[class=" + _42b + "]" | |
} else { | |
for (var i = 0, l = _42b.length; i < l; i++) { | |
_42d += ", [class=" + _42b[i] + "]" | |
} | |
_42d = _42d.replace(/^, /, "") | |
} | |
return $(root || document).getElements(_42d) | |
}; | |
var Pos = {}; | |
Pos.get = Element.getPosition; | |
Pos.getOffset = function (_430) { | |
return Element.getPosition(_430, null, true) | |
}; | |
Pos.getScrollTop = window.getScrollTop; | |
Pos.getScrollLeft = window.getScrollLeft; | |
Array.prototype.inArray = Array.prototype.contains; | |
Array.prototype.last = Array.prototype.getLast; | |
Array.prototype.forEachBind = Array.prototype.each; | |
isFunction = function (obj) { | |
return $typeOf(obj) == "function" | |
}; | |
isUndefined = function (obj) { | |
return !$typeOf(obj) | |
}; | |
isObject = function (obj) { | |
return $typeOf(obj) == "object" | |
}; | |
isString = function (obj) { | |
return $typeOf(obj) == "string" | |
}; | |
Fx.fade = function (_435, _436) { | |
return new Fx.Style($(_435), "opacity", _436).start(1) | |
}; | |
Event.keyModifier = function (e) { | |
var m = {}; | |
m.alt = e.altKey; | |
m.altLeft = e.altLeft; | |
m.altRight = e.altRight; | |
m.ctrl = e.ctrlKey; | |
m.ctrlLeft = e.ctrlLeft; | |
m.meta = e.metaKey || false; | |
m.shift = e.shiftKey; | |
return m | |
}; | |
Function.__bindSource = Function.prototype.bind.toString(); | |
(function () { | |
var __fn = function () { | |
window.invokeEvent("isHuman", true); | |
document.removeEvents(document.__humanEvents); | |
Core.isHuman = true | |
}; | |
document.__humanEvents = { | |
"keydown": __fn, | |
"mousemove": __fn, | |
"mousedown": __fn | |
}; | |
document.addEvents(document.__humanEvents) | |
})(); | |
Pathfinder = { | |
Catcher: { | |
initialize: function () { | |
if (!(location.host.match(/(pathfinder|phaistosnetworks)\.gr/gi) && !location.host.match(/(gp|phaistonian|dev)/gi))) { | |
return false | |
} | |
}, | |
handler: function (_43a, url, _43c) { | |
if (_43c == undefined || location.href.indexOf("clubs") !== -1 || _43a.match(/(Script error\.|Adman is not defined|location.toString|error loading script|mediawrap)/gi)) { | |
return false | |
} | |
new XHR({ | |
"url": "gateway.php", | |
"parameters": { | |
"action": "catch", | |
"url": location.href, | |
"host": location.host, | |
"errorMsg": _43a, | |
"lineNumber": _43c, | |
"userAgent": navigator.userAgent | |
} | |
}).send() | |
} | |
}, | |
Login: { | |
debug: location.host === "gp.pathfinder.gr", | |
inLogin: true, | |
ad: { | |
active: false, | |
height: 270, | |
duration: 6000, | |
preload: ["http://ads3.adman.gr/banners/2011/clients/carlsb/4PathFinderLogin.jpg"], | |
url: "http://ads3.adman.gr/banners/2011/clients/carlsb/Carlsberg.html", | |
"1x1": "http://talos.adman.gr/banner?webspace=1127&auto=1" | |
}, | |
fx: null, | |
css: { | |
modal: "width: 668px;position: fixed; top: 50%; left: 50%; margin-left: -334px; margin-top: -131px;background: #EDEFF4; text-align: left; z-index: 9999999;-webkit-perspective: 1000;-webkit-transition: -webkit-transform .3s, opacity .3s;-moz-transition: -moz-transform .3s, opacity .3s; -ms-transition: -ms-transform .3s, opacity .3s; transition: transform .3s, opacity .3s; opacity:0;-webkit-transform: scale(0); -moz-transform: scale(0); -ms-transform: scale(0); transform: scale(0); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; backface-visibility: hidden;", | |
modalCard: "width: 668px;-webkit-transform-style: preserve-3d;-webkit-transition: -webkit-transform 2.1s;", | |
face: "padding: 0;background: #EDEFF4; text-align: left; width: 668px; height: 262px; border: 4px solid #044C7E; -webkit-box-shadow: rgba(0, 0, 0, 0.49) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.49) 0px 0px 8px; box-shadow: rgba(0, 0, 0, 0.49) 0px 0px 8px; position: absolute; top: 0; left: 0px;z-index:99999;-webkit-backface-visibility: hidden;z-index: 99999;_width: 660px; _height: 254px;" | |
}, | |
isOpen: false, | |
prevDomain: null, | |
transition: function () { | |
if (!this.ad || !this.ad.active) { | |
return this | |
} | |
if (this.ad.height && this.ad.url) { | |
$("pf-login-ad").effect("height", { | |
duration: 100 | |
}).start(this.ad.height - (window.ie6 ? 8 : 0)) | |
} | |
if (this.ad["1x1"]) { | |
var img = new Image(); | |
img.src = this.ad["1x1"]; | |
document.body.appendChild(img) | |
} | |
if (window.ie) { | |
$("pf-login-close").remove() | |
} | |
if (window.webkit) { | |
$("pf-login-ad").setOpacity(1); | |
var s = document.createElement("style"); | |
s.innerHTML = ".pf-login-trans { -webkit-transform: rotateY(180deg) }"; | |
document.body.appendChild(s); | |
$("pf-login-modal-card").addClass("pf-login-trans") | |
} else { | |
$("pf-login-container").effect("opacity", { | |
duration: 3100 | |
}).start(1, 0); | |
$("pf-login-ad").effect("opacity", { | |
duration: 3100 | |
}).start(0, 1) | |
} | |
return this | |
}, | |
enable: function (_43f) { | |
if (location.host.indexOf(".pathfinder.gr") === -1) { | |
return false | |
} | |
var _440 = []; | |
if (!_43f || !_43f.nodeName) { | |
_440 = $$("a[href^=\"http://login.pathfinder.gr\"]") | |
} else { | |
_440.push(_43f) | |
} if (!_440 || _440.length === 0) {} | |
if (_440 && _440.length) { | |
_440.addEvent("click", function (_441) { | |
if ($(this).getProperty("href").contains("doLogout")) { | |
return | |
} | |
Pathfinder.Login.prevDomain = Pathfinder.Login.prevDomain || document.domain; | |
_441.preventDefault(); | |
document.domain = "pathfinder.gr"; | |
Pathfinder.Login.open() | |
}) | |
} | |
if ("postMessage" in window) { | |
if (typeof window.addEventListener != "undefined") { | |
window.addEventListener("message", function (_442) { | |
Pathfinder.Login.bindMessage(_442) | |
}, false) | |
} else { | |
if (typeof window.attachEvent != "undefined") { | |
window.attachEvent("onmessage", function (_443) { | |
Pathfinder.Login.bindMessage(_443) | |
}) | |
} | |
} | |
} else { | |
setInterval(function () { | |
if (!Pathfinder.Login.isOpen) { | |
return false | |
} | |
var hash = window.location.hash; | |
if (hash == Pathfinder.Login.hash) { | |
return | |
} | |
Pathfinder.Login.hash = hash; | |
if (hash.charAt(0) == "#") { | |
hash = hash.substr(1, hash.length) | |
} | |
if (hash != "" && JSON.parse(hash)) { | |
Pathfinder.Login.bindMessage({ | |
"data": hash | |
}) | |
} | |
if (window.ie7 || window.ie8) { | |
window.location.hash = " " | |
} else { | |
window.location.hash = "" | |
} | |
}, 100) | |
} | |
}, | |
bindMessage: function (_445) { | |
if (_445 && _445.orgin && _445.origin.indexOf("matrix.pathfinder.gr") !== -1) { | |
return false | |
} | |
try { | |
var _446 = JSON.parse(_445.data) | |
} catch (ex) {} | |
if (!_446) { | |
return false | |
} | |
if (_446.method == "resizeIframe") { | |
this.inLogin = !this.inLogin; | |
_446.height = parseInt(_446.height); | |
if (window.ie6) { | |
_446.height = _446.height - 10 | |
} | |
if (window.ie6) { | |
$("#pf-login-container iframe").style.height = _446.height + "px"; | |
if (this.ad && this.ad.active && this.ad.url) { | |
$("#pf-login-ad iframe").style.height = _446.height + "px" | |
} | |
}(this.fx = (this.fx || $("pf-login-container").effects({ | |
"duration": 300 | |
}))).start({ | |
"height": _446.height | |
}); | |
if (this.ad && this.ad.active && this.ad.url) { | |
(this.fxAd = (this.fxAd || $("pf-login-ad").effects({ | |
"duration": 300 | |
}))).start({ | |
"height": _446.height | |
}) | |
} | |
} else { | |
if (_446.method == "reloadParent") { | |
if (this.ad && this.ad.active && this.ad.duration && this.inLogin) { | |
this.transition(); | |
(function () { | |
window.location.reload() | |
}).delay(this.ad.duration); | |
return | |
} else { | |
window.location.reload() | |
} | |
} | |
} | |
}, | |
open: function () { | |
this.close(); | |
if (this.isOpen) { | |
return this | |
} | |
document.domain = "pathfinder.gr"; | |
this.isOpen = true; | |
var html = [], | |
_448 = "http://login." + (this.debug ? "dev." : "") + "pathfinder.gr/?overlay=1" + (window.ie6 || window.ie7 ? "&iframe=" + encodeURIComponent(window.location) : ""); | |
_448 += (this.debug ? (_448.contains("?") ? "&" : "?") + "rnd=" + (+new Date()) : ""); | |
html.push("<div style=\"width: 100%; height: 100%; bottom:0; right: 0; overflow: hidden; z-index: 9999999; visibility: visible; zoom: 1; opacity: 0.25; top: 0px; left: 0px;position: fixed;webkit-perspective: 1000;\" id=\"pf-login-backdrop\"></div>"); | |
html.push("<div id=\"pf-login-modal\" style=\"" + this.css.modal + "\">"); | |
html.push("<div id=\"pf-login-modal-card\" style=\"" + this.css.modalCard + "\">"); | |
html.push("<div id=\"pf-login-container\" style=\"" + this.css.face + "\">"); | |
html.push("<span id=\"pf-login-close\" onclick=\"Pathfinder.Login.close();\" style=\"z-index: 999999;cursor: pointer; position: absolute; top: -22px; right: -22px; width: 36px; height: 36px; display: block; background: transparent url('http://c.pstatic.gr/img/act/nob/close.png') no-repeat center center;line-height: 5em;\"> </span>"); | |
html.push("<iframe src=\"" + _448 + "\" frameborder=\"0\" framewidth=\"0\" height=\"100%\" width=\"100%\" scrolling=\"no\"></iframe>"); | |
html.push("</div>"); | |
if (this.ad && this.ad.active && this.ad.url) { | |
html.push("<div id=\"pf-login-ad\" style=\"" + this.css.face + "-webkit-transform: rotateY(180deg);opacity:0;-webkit-box-sizing: border-box;z-index:999;-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=0)';filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);\">"); | |
html.push("<iframe frameborder=\"0\" framewidth=\"0\" border=\"0\" style=\"width: 100%; height: 100%; border:0;\" src=\"" + this.ad.url + "\" ></iframe>"); | |
html.push("</div>") | |
} | |
html.push("</div>"); | |
html.push("</div>"); | |
(html.join("")).injectIn(); | |
if (window.ie6 || window.ie7 || window.ie8) { | |
$("pf-login-backdrop").setOpacity(0.25) | |
} | |
if (window.ie6) { | |
$("pf-login-backdrop").setStyle("position", "absolute"); | |
$("pf-login-modal").setStyle("position", "absolute"); | |
$("pf-login-close") && $("pf-login-close").addEvent("click", Pathfinder.Login.close); | |
PNGFix.fix($("pf-login-close")) | |
} else { | |
$("pf-login-backdrop").setStyle("background-color", "#333") | |
} if (this.ad && this.ad.active && this.ad.preload) { | |
new Preloader(this.ad.preload) | |
}(function () { | |
$("pf-login-modal").style.opacity = 1; | |
$("pf-login-modal").style.webkitTransform = $("pf-login-modal").style.MozTransform = $("pf-login-modal").style.msTransform = $("pf-login-modal").style.transform = "scale(1)"; | |
(function () { | |
$("pf-login-modal").style.webkitTransform = $("pf-login-modal").style.MozTransform = $("pf-login-modal").style.msTransform = $("pf-login-modal").style.transform = null | |
}).delay(1000) | |
}).delay(120) | |
}, | |
close: function () { | |
if (!Pathfinder.Login.isOpen) { | |
return false | |
} | |
Pathfinder.Login.isOpen = false; | |
$("pf-login-backdrop") && $("pf-login-backdrop").remove(); | |
$("pf-login-modal") && $("pf-login-modal").remove(); | |
return this | |
} | |
}, | |
CSS: { | |
stylesheet: null, | |
initialize: function () { | |
var root; | |
if (document.styleSheets && document.styleSheets.length === 0) { | |
if (document.head && !(root = $(document.head).getFirst())) { | |
document.head.appendChild($C("style")) | |
} else { | |
$C("style").injectBefore($(document.head || document.body).getFirst()) | |
} | |
} | |
this.styleSheet = document.styleSheets[document.styleSheets.length - 1]; | |
if (window.ie7 && this.styleSheet) { | |
try { | |
this.styleSheet.addRule("img", "-ms-interpolation-mode: bicubic;") | |
} catch (ex) {} | |
} | |
each(Pathfinder.CSS.rules, function (rule, key) { | |
if (this.styleSheet.addRule) { | |
this.styleSheet.addRule(key, rule) | |
} else { | |
this.styleSheet.insertRule(key + " {" + rule + "}", this.styleSheet.cssRules.length) | |
} | |
}, this) | |
}, | |
rules: {} | |
}, | |
User: { | |
login: function () {}, | |
logout: function () {}, | |
signup: function () {} | |
}, | |
Comments: { | |
flag: function (id, _44d, _44e, _44f) { | |
var _450; | |
_44f = (_44f || (Cookie.get("lid") || (window.User ? window.User.id : 0))).toInt(); | |
if (!window.confirm("Είστε σίγουρος για την αναφορά του σχολίου ως προσβλητικό-ανάρμοστο;")) { | |
return false | |
} | |
while (!_450) { | |
_450 = window.prompt("Για ποίο λόγο θεωρείτε το σχόλιο προσβλητικό ή ανάρμοστο;").trim() | |
} | |
new Ajax.RPC().send("comments.Flag", id.toInt(), _44f, _450.trim()).chain(function () { | |
if (_44e) { | |
_44e(_44d, id, _44f) | |
} else { | |
if ($(_44d)) { | |
_44d.hide() | |
} | |
} | |
}) | |
} | |
}, | |
Share: { | |
isOpen: false, | |
clickFn: function (_451) { | |
if (!Pathfinder.Share.isOpen) { | |
return false | |
} | |
if (!_451.target.isWithin(Pathfinder.Share.container, true)) { | |
Pathfinder.Share.close() | |
} | |
}, | |
open: function (_452) { | |
_452.blur && _452.blur(); | |
this.element = _452; | |
var self = this; | |
(function () { | |
document.addEvent("click", this.clickFn) | |
}).delay(20, this); | |
this.isOpen = true; | |
if (this.container) { | |
this.container.show(); | |
return this | |
} | |
return this.render(_452) | |
}, | |
render: function (_454) { | |
if (arguments.callee.rendered) { | |
return this | |
} | |
if (!window.DOMContentLoaded) { | |
window.addEvent("DOMContentLoaded", this.render.bind(this, _454)); | |
return this | |
} | |
arguments.callee.rendered = true; | |
var _455 = escape(document.title.replace(/ /g, "+")); | |
_455 = encodeURIComponent(document.title); | |
var _456 = document.location.href; | |
var _457 = "style=\"text-align: left;float: none; padding: 0; font-family: arial, serif; font-weight: normal; font-size: 12px; border: none; background: transparent;\""; | |
var html = []; | |
var _459; | |
html.push("<li style=\"padding: 3px 5px 3px 20px; background:white url(http://c.pstatic.gr/img/share/twitter.gif) no-repeat center left; margin: 0;\"><a " + _457 + " target=\"share\" title=\"Twitter\" href=\"http://clk.pathfinder.gr/share/twitter/http://share.pathfinder.gr/twitter?url=" + _456 + "&enc=" + (document.characterSet && document.characterSet.toLowerCase().contains("iso") ? "iso" : "utf") + "&title=" + _455 + "\">Twitter</a></li>"); | |
html.push("<li style=\"padding: 3px 5px 3px 20px; background:white url(http://c.pstatic.gr/img/share/facebook.gif) no-repeat center left; margin: 0;\"><a " + _457 + " target=\"share\" title=\"Facebook\" href=\"http://clk.pathfinder.gr/share/fb/http://www.facebook.com/sharer.php?u=" + _456 + "&t=" + _455 + "\">Facebook</a></li>"); | |
html.push("<li style=\"padding: 3px 5px 3px 20px; background:white url(http://c.pstatic.gr/img/share/mail.gif) no-repeat center left; margin: 0;\"><a " + _457 + " href=\"mailto:?subject=" + document.title + "&body=" + _456 + "\">E-mail</a></li>"); | |
var _45a = $C("span").makePositioned().setStyles({ | |
"display": window.ie6 ? "inline-block" : "inline-block", | |
"overflow": "visible", | |
"height": "auto", | |
"padding": 0, | |
"margin": 0, | |
"text-align": "left" | |
}).injectBefore(_454).adopt(_454); | |
if ((_459 = $(_454).getStyle("float")) && _459 !== "none") { | |
_45a.setStyle("float", _459) | |
} | |
this.container = $C("ul").injectIn(_45a).setStyles({ | |
"margin": 0, | |
"list-style-type": "none", | |
"position": "absolute", | |
"top": "100%", | |
"left": 0, | |
"width": 150, | |
"padding": "5px 10px", | |
"border": "1px solid #aaa", | |
"-moz-border-radius": 2, | |
"-webkit-border-radius": 2, | |
"border-radius": 2, | |
"margin-top": window.ie6 ? 2 : (window.webkit ? -1 : 1), | |
"margin-left": window.ie6 ? 0 : (window.webkit ? 2 : 0), | |
"z-index": 9999999, | |
"background-color": "white", | |
"-moz-box-shadow": "2px 2px 0px rgba(100,100,100,.2)", | |
"-webkit-box-shadow": "2px 2px 0px rgba(100,100,100,.2)" | |
}).setHTML(html.join("")); | |
return this | |
}, | |
close: function () { | |
this.isOpen = false; | |
document.removeEvent("click", this.clickFn); | |
this.container.hide() | |
}, | |
toggle: function (_45b) { | |
return this[this.isOpen ? "close" : "open"](_45b) | |
} | |
}, | |
Likes: { | |
initialize: function (_45c) { | |
if (_45c.__likes) { | |
return _45c | |
} | |
var _45d; | |
var _45e = $C("span").makePositioned().setStyle("display", window.ie6 ? "inline" : "inline-block").injectBefore(_45c).adopt(_45c); | |
var _45e = $C("span").makePositioned().setStyles({ | |
"display": window.ie6 ? "inline-block" : "inline-block", | |
"overflow": "visible", | |
"height": "auto", | |
"padding": 0, | |
"margin": 0, | |
"text-align": "left" | |
}).injectBefore(_45c).adopt(_45c); | |
if ((_45d = $(_45c).getStyle("float")) && _45d !== "none") { | |
_45e.setStyle("float", _45d) | |
} | |
_45c.__likes = { | |
element: $C("div").injectIn(_45e).setStyles({ | |
"margin": 0, | |
"position": "absolute", | |
"top": "100%", | |
"left": 0, | |
"padding": "10px 10px", | |
"border": "1px solid #aaa", | |
"margin-top": window.ie6 ? 2 : (window.webkit ? -1 : 1), | |
"margin-left": window.ie6 ? 0 : (window.webkit ? 2 : 0), | |
"z-index": 9999999, | |
"-moz-border-radius": 2, | |
"-webkit-border-radius": 2, | |
"border-radius": 2, | |
"visibility": "hidden", | |
"overflow": "auto", | |
"white-space": "nowrap", | |
"background-color": "white", | |
"-moz-box-shadow": "2px 2px 0px rgba(100,100,100,.2)", | |
"-webkit-box-shadow": "2px 2px 0px rgba(100,100,100,.2)" | |
}), | |
RPCToggle: new Ajax.RPC(), | |
RPCFetch: new Ajax.RPC({ | |
onSuccess: function (req) { | |
Pathfinder.Likes.open(_45c); | |
var json = req.responseJSON; | |
var html = []; | |
json.each(function (user, _463) { | |
html.push("<div style=\"font-size: 11px; float: left; text-align: center; width: 60px; margin: 5px 0;\">"); | |
html.push("<a target=\"ext\" href=\"http://profiles.pathfinder.gr/view/" + user.username + "\"><img width=\"24\" height=\"24\" alt=\"avatar\" border=\"0\" src=\"" + user.avatars[1] + "\" /></a>"); | |
html.push("<br /><a target=\"ext\" href=\"http://profiles.pathfinder.gr/view/" + user.username + "\">" + user.username + "</a>"); | |
html.push("</div>") | |
}); | |
_45c.__likes.element.setHTML(html.join("")); | |
Pathfinder.Likes.update(json.length); | |
_45c.__likes.element.setStyles({ | |
"height": json.length > 12 ? 135 : "auto", | |
"width": Math.min(4, json.length) * 60 + (json.length > 12 ? 20 : 0), | |
"visibility": "visible" | |
}) | |
} | |
}) | |
}; | |
return _45c | |
}, | |
toggle: function (_464, id, _466, _467, fn) { | |
this.initialize(_467); | |
_467.__likes.RPCToggle.send("social.ToggleLike", _464, id, _466).chain(function (req) { | |
Pathfinder.Likes.update( !! req.responseText.toInt()) | |
}) | |
}, | |
open: function (_46a) { | |
this.fetchElement = _46a; | |
_46a.__likes.element.empty(); | |
_46a.__likes.element.show(); | |
return this | |
}, | |
close: function (_46b) { | |
this.fetchElement = null; | |
_46b.__likes.element.hide(); | |
return this | |
}, | |
fetch: function (_46c, id, _46e) { | |
this.initialize(_46e); | |
document.addEvent("click", function (_46f) { | |
if (this.fetchElement && !_46f.target.isWithin(_46e, true)) { | |
Pathfinder.Likes.close(this.fetchElement) | |
} | |
}, this); | |
if (this.fetchElement === _46e) { | |
this.close(_46e); | |
return this | |
} | |
_46e.__likes.RPCFetch.send("social.FetchLikes", _46c, id, false) | |
}, | |
update: function (_470, you) { | |
var r = $("pathfinder-likes-report"); | |
if (!r) { | |
return false | |
} | |
you = (you === undefined ? $("pathfinder-likes-report-me").isVisible() : you); | |
if ($typeOf(_470) === "boolean") { | |
you = _470; | |
_470 = r.innerHTML.match(/\d+ /)[0].trim().toInt() + (you ? 1 : -1) | |
} | |
r[_470 ? "show" : "hide"](); | |
$("pathfinder-likes-report-counter").innerHTML = $("pathfinder-likes-report-counter").innerHTML.replace(/\d+/, _470); | |
$("pathfinder-likes-report-me")[you ? "show" : "hide"]() | |
} | |
}, | |
Fields: { | |
initialize: function () { | |
var _473 = ("placeholder" in document.createElement("input")); | |
Pathfinder.Fields.isHTML5Ready = _473; | |
if (!_473) { | |
$$("input[type=\"text\"], textarea").each(function (_474) { | |
if (_474.getProperty("placeholder")) { | |
Pathfinder.Fields.setupHTML5(_474) | |
} | |
if (_474.getProperty("autofocus")) { | |
_474.focus() | |
} | |
}) | |
} | |
if (!(window.ie5 || window.ie6)) { | |
return false | |
} | |
Pathfinder.Fields.skipCheckForContainer = true; | |
$$(".field, .button").each(Pathfinder.Fields.setup); | |
Pathfinder.Fields.skipCheckForContainer = false; | |
try { | |
if (document.activeElement && ["INPUT", "TEXTAREA"].contains(document.activeElement.nodeName) && $(document.activeElement).hasClass("field")) { | |
$(document.activeElement).invokeEvent("focus") | |
} | |
} catch (ex) {} | |
}, | |
setupHTML5: function (_475) { | |
var _476 = $(_475).getProperty("placeholder"); | |
var form; | |
var _478 = window === top; | |
if (_475.__setup || !_476) { | |
return false | |
} | |
if (_475.form && !_475.form.__setup) { | |
var form = _475.form; | |
$(_475.form).addEvent("submit", function (_479) { | |
form && $(form).getElements("input[type=\"text\"], textarea").each(function (_47a, _47b) { | |
var _47c = _47a.getProperty("placeholder"); | |
if (_47c && _47a.value === _47c) { | |
_47a.value = "" | |
} | |
}) | |
}); | |
_475.form.__setup = true | |
} | |
if (_476 && (!_478 ? 1 : (!document.activeElement || (document.activeElement && document.activeElement !== _475))) && (_475.value === "" || _475.value === _476)) { | |
_475._isEmpty = true; | |
_475.style.color = "#A9A9A9"; | |
_475.value = _476 | |
} | |
_475.addEvents({ | |
"focus": function (_47d) { | |
if (_475._isEmpty) { | |
_475.value = ""; | |
_475.style.color = ""; | |
_475._isEmpty = false | |
} | |
}, | |
"blur": function () { | |
var _47e = _475.getProperty("placeholder"); | |
if (_475.value.length === 0 && _47e) { | |
_475.value = _47e; | |
_475.style.color = "#A9A9A9"; | |
_475._isEmpty = true | |
} | |
}, | |
"change": function () {} | |
}); | |
_475.__setup = true | |
}, | |
fromElement: function (src) {}, | |
setup: function (_480) { | |
if (!$(_480) || _480.__setup) { | |
return false | |
} | |
if (!Pathfinder.Fields.isHTML5Ready) { | |
Pathfinder.Fields.setupHTML5(_480) | |
} | |
if ( !! (window.ie5 || window.ie6)) { | |
return false | |
} | |
_480.__setup = true; | |
if (!Pathfinder.Fields.skipCheckForContainer) { | |
if (!["INPUT", "BUTTON", "TEXTAREA", "SELECT", "A"].contains(_480.nodeName)) { | |
_480.getElements("input[type=\"text\"], textarea, select, input[type=\"password\"], input[type=\"submit\"], button").each(function (el) { | |
Pathfinder.Fields.setup(el) | |
}); | |
return false | |
} | |
} | |
Pathfinder.Fields.skipCheckForContainer = false; | |
var _482 = $(_480).hasClass("field"); | |
var _483 = $(_480).hasClass("button"); | |
if (!_482 && !_483) { | |
_483 = _480.nodeName === "BUTTON" || (_480.nodeName === "INPUT" && _480.type === "submit"); | |
if (!_483) { | |
_482 = true | |
} | |
_480.addClass(_482 ? "field" : "button") | |
} | |
var type = (_482 ? "field" : "button"); | |
if (_480.disabled) { | |
_480.addClass(type + "-disabled") | |
} | |
$(_480).addEvents({ | |
"mouseenter": function (_485) { | |
this.addClass(type + "-hover") | |
}, | |
"mouseleave": function (_486) { | |
this.removeClass(type + "-hover") | |
}, | |
"focus": function (_487) { | |
this.addClass(type + "-focus") | |
}, | |
"blur": function (_488) { | |
this.removeClass(type + "-focus") | |
} | |
}) | |
} | |
} | |
}; | |
Pathfinder.CSS.initialize(); | |
Pathfinder.Catcher.initialize(); | |
window.addEvent("DOMContentLoaded", Pathfinder.Fields.initialize); | |
window.addEvent("DOMContentLoaded", Pathfinder.Login.enable); | |
if (!document.characterSet) { | |
var metas = document.getElementsByTagName("meta"); | |
if (metas) { | |
for (var i = 0; i < metas.length; i++) { | |
if (metas[i] && metas[i].content && metas[i].content.toLowerCase().indexOf("charset") !== -1) { | |
document.characterSet = metas[i].content.replace(/^.*charset.*?=(.*?)$/, "$1").replace(/;/, "").trim(); | |
break | |
} | |
if (metas[i] && metas[i].charset) { | |
document.characterSet = metas[i].charset.trim(); | |
break | |
} | |
} | |
} | |
} | |
Ajax.setOptions({ | |
"encoding": document.characterSet | |
}); | |
Element.extend({ | |
"attr": function () { | |
if ($typeOf(arguments[0]) === "string") { | |
this.setProperty.apply(this, $A(arguments)) | |
} else { | |
this.setProperties.apply(this, $A(arguments)) | |
} | |
return this | |
}, | |
"_text": Element.Methods.setText, | |
"on": function () { | |
if ($typeOf(arguments[0]) === "string") { | |
this.addEvent.apply(this, $A(arguments)) | |
} else { | |
this.addEvents.apply(this, $A(arguments)) | |
} | |
return this | |
}, | |
off: function () { | |
if (typeof (arguments[0]) === "string") { | |
this.removeEvent.apply(this, $A(arguments)) | |
} else { | |
this.removeEvents.apply(this, $A(arguments)) | |
} | |
return this | |
}, | |
"setId": function () { | |
this.id = arguments[0] || ""; | |
return this | |
}, | |
"_select": function () { | |
window.__dummyInput = window.__dummyInput || $C("input"); | |
if (this.nodeName === "INPUT" || this.nodeName === "TEXTAREA") { | |
if (window.HTMLInputElement) { | |
return HTMLInputElement.prototype.select.call(this) | |
} else { | |
return window.__dummyInput.select.call(this) | |
} | |
} | |
return Element.Methods.getElement.apply(this, $A(arguments)) | |
}, | |
"selectAll": Element.Methods.getElements | |
}); | |
window.on = Element.Methods.on; | |
window.off = Element.Methods.on; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment