Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla5/media/com_fabrik/js/ |
| [Home] [System Details] [Kill Me] |
MooTools.More = { version: "1.4.0.1", build:
"a4244edf2aa97ac8a196fc96082dd35af1abab87" };
(function () {
Events.Pseudos = function (h, e, f) {
var d = "_monitorEvents:";
var c = function (i) {
return {
store: i.store
? function (j, k) {
i.store(d + j, k);
}
: function (j, k) {
(i._monitorEvents || (i._monitorEvents = {}))[j]
= k;
},
retrieve: i.retrieve
? function (j, k) {
return i.retrieve(d + j, k);
}
: function (j, k) {
if (!i._monitorEvents) {
return k;
}
return i._monitorEvents[j] || k;
},
};
};
var g = function (k) {
if (k.indexOf(":") == -1 || !h) {
return null;
}
var j = Slick.parse(k).expressions[0][0],
p = j.pseudos,
i = p.length,
o = [];
while (i--) {
var n = p[i].key,
m = h[n];
if (m != null) {
o.push({ event: j.tag, value: p[i].value, pseudo: n,
original: k, listener: m });
}
}
return o.length ? o : null;
};
return {
addEvent: function (m, p, j) {
var n = g(m);
if (!n) {
return e.call(this, m, p, j);
}
var k = c(this),
r = k.retrieve(m, []),
i = n[0].event,
l = Array.slice(arguments, 2),
o = p,
q = this;
n.each(function (s) {
var t = s.listener,
u = o;
if (t == false) {
i += ":" + s.pseudo + "(" +
s.value + ")";
} else {
o = function () {
t.call(q, s, u, arguments, o);
};
}
});
r.include({ type: i, event: p, monitor: o });
k.store(m, r);
if (m != i) {
e.apply(this, [m, p].concat(l));
}
return e.apply(this, [i, o].concat(l));
},
removeEvent: function (m, l) {
var k = g(m);
if (!k) {
return f.call(this, m, l);
}
var n = c(this),
j = n.retrieve(m);
if (!j) {
return this;
}
var i = Array.slice(arguments, 2);
f.apply(this, [m, l].concat(i));
j.each(function (o, p) {
if (!l || o.event == l) {
f.apply(this, [o.type, o.monitor].concat(i));
}
delete j[p];
}, this);
n.store(m, j);
return this;
},
};
};
var b = {
once: function (e, f, d, c) {
f.apply(this, d);
this.removeEvent(e.event, c).removeEvent(e.original, f);
},
throttle: function (d, e, c) {
if (!e._throttled) {
e.apply(this, c);
e._throttled = setTimeout(function () {
e._throttled = false;
}, d.value || 250);
}
},
pause: function (d, e, c) {
clearTimeout(e._pause);
e._pause = e.delay(d.value || 250, this, c);
},
};
Events.definePseudo = function (c, d) {
b[c] = d;
return this;
};
Events.lookupPseudo = function (c) {
return b[c];
};
var a = Events.prototype;
Events.implement(Events.Pseudos(b, a.addEvent, a.removeEvent));
["Request", "Fx"].each(function (c) {
if (this[c]) {
this[c].implement(Events.prototype);
}
});
})();
Class.refactor = function (b, a) {
Object.each(a, function (e, d) {
var c = b.prototype[d];
c = (c && c.$origin) || c || function () {};
b.implement(
d,
typeof e == "function"
? function () {
var f = this.previous;
this.previous = c;
var g = e.apply(this, arguments);
this.previous = f;
return g;
}
: e
);
});
return b;
};
Class.Mutators.Binds = function (a) {
if (!this.prototype.initialize) {
this.implement("initialize", function () {});
}
return Array.mofrom(a).concat(this.prototype.Binds || []);
};
Class.Mutators.initialize = function (a) {
return function () {
Array.mofrom(this.Binds).each(function (b) {
var c = this[b];
if (c) {
this[b] = c.bind(this);
}
}, this);
return a.apply(this, arguments);
};
};
Class.Occlude = new Class({
occlude: function (c, b) {
b = document.id(b || this.element);
var a = b.retrieve(c || this.property);
if (a && !this.occluded) {
return (this.occluded = a);
}
this.occluded = false;
b.store(c || this.property, this);
return this.occluded;
},
});
(function () {
var a = {
wait: function (b) {
return this.chain(
function () {
this.callChain.delay(b == null ? 500 : b, this);
return this;
}.bind(this)
);
},
};
Chain.implement(a);
if (this.Fx) {
Fx.implement(a);
}
if (this.Element && Element.implement && this.Fx) {
Element.implement({
chains: function (b) {
Array.mofrom(b || ["tween", "morph",
"reveal"]).each(function (c) {
c = this.get(c);
if (!c) {
return;
}
c.setOptions({ link: "chain" });
}, this);
return this;
},
pauseFx: function (c, b) {
this.chains(b)
.get(b || "tween")
.wait(c);
return this;
},
});
}
})();
(function (a) {
Array.implement({
min: function () {
return Math.min.apply(null, this);
},
max: function () {
return Math.max.apply(null, this);
},
average: function () {
return this.length ? this.sum() / this.length : 0;
},
sum: function () {
var b = 0,
c = this.length;
if (c) {
while (c--) {
b += this[c];
}
}
return b;
},
unique: function () {
return [].combine(this);
},
shuffle: function () {
for (var c = this.length; c && --c; ) {
var b = this[c],
d = Math.floor(Math.random() * (c + 1));
this[c] = this[d];
this[d] = b;
}
return this;
},
reduce: function (d, e) {
for (var c = 0, b = this.length; c < b; c++) {
if (c in this) {
e = e === a ? this[c] : d.call(null, e, this[c], c,
this);
}
}
return e;
},
reduceRight: function (c, d) {
var b = this.length;
while (b--) {
if (b in this) {
d = d === a ? this[b] : c.call(null, d, this[b], b,
this);
}
}
return d;
},
});
})();
(function () {
var b = function (c) {
return c != null;
};
var a = Object.prototype.hasOwnProperty;
Object.extend({
getFromPath: function (e, f) {
if (typeof f == "string") {
f = f.split(".");
}
for (var d = 0, c = f.length; d < c; d++) {
if (a.call(e, f[d])) {
e = e[f[d]];
} else {
return null;
}
}
return e;
},
cleanValues: function (c, e) {
e = e || b;
for (var d in c) {
if (!e(c[d])) {
delete c[d];
}
}
return c;
},
erase: function (c, d) {
if (a.call(c, d)) {
delete c[d];
}
return c;
},
run: function (d) {
var c = Array.slice(arguments, 1);
for (var e in d) {
if (d[e].apply) {
d[e].apply(d, c);
}
}
return d;
},
});
})();
(function () {
var b = null,
a = {},
d = {};
var c = function (f) {
if (instanceOf(f, e.Set)) {
return f;
} else {
return a[f];
}
};
var e = (this.Locale = {
define: function (f, j, h, i) {
var g;
if (instanceOf(f, e.Set)) {
g = f.name;
if (g) {
a[g] = f;
}
} else {
g = f;
if (!a[g]) {
a[g] = new e.Set(g);
}
f = a[g];
}
if (j) {
f.define(j, h, i);
}
if (!b) {
b = f;
}
return f;
},
use: function (f) {
f = c(f);
if (f) {
b = f;
this.fireEvent("change", f);
}
return this;
},
getCurrent: function () {
return b;
},
get: function (g, f) {
return b ? b.get(g, f) : "";
},
inherit: function (f, g, h) {
f = c(f);
if (f) {
f.inherit(g, h);
}
return this;
},
list: function () {
return Object.keys(a);
},
});
Object.append(e, new Events());
e.Set = new Class({
sets: {},
inherits: { locales: [], sets: {} },
initialize: function (f) {
this.name = f || "";
},
define: function (i, g, h) {
var f = this.sets[i];
if (!f) {
f = {};
}
if (g) {
if (typeOf(g) == "object") {
f = Object.merge(f, g);
} else {
f[g] = h;
}
}
this.sets[i] = f;
return this;
},
get: function (r, j, q) {
var p = Object.getFromPath(this.sets, r);
if (p != null) {
var m = typeOf(p);
if (m == "function") {
p = p.apply(null, Array.mofrom(j));
} else {
if (m == "object") {
p = Object.clone(p);
}
}
return p;
}
var h = r.indexOf("."),
o = h < 0 ? r : r.substr(0, h),
k = (this.inherits.sets[o] ||
[]).combine(this.inherits.locales).include("en-US");
if (!q) {
q = [];
}
for (var g = 0, f = k.length; g < f; g++) {
if (q.contains(k[g])) {
continue;
}
q.include(k[g]);
var n = a[k[g]];
if (!n) {
continue;
}
p = n.get(r, j, q);
if (p != null) {
return p;
}
}
return "";
},
inherit: function (g, h) {
g = Array.mofrom(g);
if (h && !this.inherits.sets[h]) {
this.inherits.sets[h] = [];
}
var f = g.length;
while (f--) {
(h ? this.inherits.sets[h] :
this.inherits.locales).unshift(g[f]);
}
return this;
},
});
})();
Locale.define("en-US", "Date", {
months: ["January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"],
months_abbr: ["Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct", "Nov",
"Dec"],
days: ["Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday",
"Saturday"],
days_abbr: ["Sun", "Mon", "Tue",
"Wed", "Thu", "Fri", "Sat"],
dateOrder: ["month", "date", "year"],
shortDate: "%m/%d/%Y",
shortTime: "%I:%M%p",
AM: "AM",
PM: "PM",
firstDayOfWeek: 0,
ordinal: function (a) {
return a > 3 && a < 21 ? "th" :
["th", "st", "nd", "rd",
"th"][Math.min(a % 10, 4)];
},
lessThanMinuteAgo: "less than a minute ago",
minuteAgo: "about a minute ago",
minutesAgo: "{delta} minutes ago",
hourAgo: "about an hour ago",
hoursAgo: "about {delta} hours ago",
dayAgo: "1 day ago",
daysAgo: "{delta} days ago",
weekAgo: "1 week ago",
weeksAgo: "{delta} weeks ago",
monthAgo: "1 month ago",
monthsAgo: "{delta} months ago",
yearAgo: "1 year ago",
yearsAgo: "{delta} years ago",
lessThanMinuteUntil: "less than a minute from now",
minuteUntil: "about a minute from now",
minutesUntil: "{delta} minutes from now",
hourUntil: "about an hour from now",
hoursUntil: "about {delta} hours from now",
dayUntil: "1 day from now",
daysUntil: "{delta} days from now",
weekUntil: "1 week from now",
weeksUntil: "{delta} weeks from now",
monthUntil: "1 month from now",
monthsUntil: "{delta} months from now",
yearUntil: "1 year from now",
yearsUntil: "{delta} years from now",
});
(function () {
var a = this.Date;
var f = (a.Methods = { ms: "Milliseconds", year:
"FullYear", min: "Minutes", mo: "Month", sec:
"Seconds", hr: "Hours" });
[
"Date",
"Day",
"FullYear",
"Hours",
"Milliseconds",
"Minutes",
"Month",
"Seconds",
"Time",
"TimezoneOffset",
"Week",
"Timezone",
"GMTOffset",
"DayOfYear",
"LastMonth",
"LastDayOfMonth",
"UTCDate",
"UTCDay",
"UTCFullYear",
"AMPM",
"Ordinal",
"UTCHours",
"UTCMilliseconds",
"UTCMinutes",
"UTCMonth",
"UTCSeconds",
"UTCMilliseconds",
].each(function (s) {
a.Methods[s.toLowerCase()] = s;
});
var p = function (u, t, s) {
if (t == 1) {
return u;
}
return u < Math.pow(10, t - 1) ? (s || "0") + p(u, t -
1, s) : u;
};
a.implement({
set: function (u, s) {
u = u.toLowerCase();
var t = f[u] && "set" + f[u];
if (t && this[t]) {
this[t](s);
}
return this;
}.overloadSetter(),
get: function (t) {
t = t.toLowerCase();
var s = f[t] && "get" + f[t];
if (s && this[s]) {
return this[s]();
}
return null;
}.overloadGetter(),
clone: function () {
return new a(this.get("time"));
},
increment: function (s, u) {
s = s || "day";
u = u != null ? u : 1;
switch (s) {
case "year":
return this.increment("month", u * 12);
case "month":
var t = this.get("date");
this.set("date", 1).set("mo",
this.get("mo") + u);
return this.set("date",
t.min(this.get("lastdayofmonth")));
case "week":
return this.increment("day", u * 7);
case "day":
return this.set("date",
this.get("date") + u);
}
if (!a.units[s]) {
throw new Error(s + " is not a supported
interval");
}
return this.set("time", this.get("time") +
u * a.units[s]());
},
decrement: function (s, t) {
return this.increment(s, -1 * (t != null ? t : 1));
},
isLeapYear: function () {
return a.isLeapYear(this.get("year"));
},
clearTime: function () {
return this.set({ hr: 0, min: 0, sec: 0, ms: 0 });
},
diff: function (t, s) {
if (typeOf(t) == "string") {
t = a.parse(t);
}
return ((t - this) / a.units[s || "day"](3,
3)).round();
},
getLastDayOfMonth: function () {
return a.daysInMonth(this.get("mo"),
this.get("year"));
},
getDayOfYear: function () {
return (a.UTC(this.get("year"),
this.get("mo"), this.get("date") + 1) -
a.UTC(this.get("year"), 0, 1)) / a.units.day();
},
setDay: function (t, s) {
if (s == null) {
s = a.getMsg("firstDayOfWeek");
if (s === "") {
s = 1;
}
}
t = (7 + a.parseDay(t, true) - s) % 7;
var u = (7 + this.get("day") - s) % 7;
return this.increment("day", t - u);
},
getWeek: function (v) {
if (v == null) {
v = a.getMsg("firstDayOfWeek");
if (v === "") {
v = 1;
}
}
var x = this,
u = (7 + x.get("day") - v) % 7,
t = 0,
w;
if (v == 1) {
var y = x.get("month"),
s = x.get("date") - u;
if (y == 11 && s > 28) {
return 1;
}
if (y == 0 && s < -2) {
x = new a(x).decrement("day", u);
u = 0;
}
w = new a(x.get("year"), 0,
1).get("day") || 7;
if (w > 4) {
t = -7;
}
} else {
w = new a(x.get("year"), 0,
1).get("day");
}
t += x.get("dayofyear");
t += 6 - u;
t += (7 + w - v) % 7;
return t / 7;
},
getOrdinal: function (s) {
return a.getMsg("ordinal", s ||
this.get("date"));
},
getTimezone: function () {
return this.toString()
.replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/, "$1")
.replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+
([A-Z])[a-z]+\)$/, "$1$2$3");
},
getGMTOffset: function () {
var s = this.get("timezoneOffset");
return (s > 0 ? "-" : "+") + p((s.abs()
/ 60).floor(), 2) + p(s % 60, 2);
},
setAMPM: function (s) {
s = s.toUpperCase();
var t = this.get("hr");
if (t > 11 && s == "AM") {
return this.decrement("hour", 12);
} else {
if (t < 12 && s == "PM") {
return this.increment("hour", 12);
}
}
return this;
},
getAMPM: function () {
return this.get("hr") < 12 ? "AM" :
"PM";
},
parse: function (s) {
this.set("time", a.parse(s));
return this;
},
isValid: function (s) {
if (!s) {
s = this;
}
return typeOf(s) == "date" &&
!isNaN(s.valueOf());
},
format: function (s) {
if (!this.isValid()) {
return "invalid date";
}
if (!s) {
s = "%x %X";
}
if (typeof s == "string") {
s = g[s.toLowerCase()] || s;
}
if (typeof s == "function") {
return s(this);
}
var t = this;
return s.replace(/%([a-z%])/gi, function (v, u) {
switch (u) {
case "a":
return
a.getMsg("days_abbr")[t.get("day")];
case "A":
return
a.getMsg("days")[t.get("day")];
case "b":
return
a.getMsg("months_abbr")[t.get("month")];
case "B":
return
a.getMsg("months")[t.get("month")];
case "c":
return t.format("%a %b %d %H:%M:%S %Y");
case "d":
return p(t.get("date"), 2);
case "e":
return p(t.get("date"), 2, "
");
case "H":
return p(t.get("hr"), 2);
case "I":
return p(t.get("hr") % 12 || 12, 2);
case "j":
return p(t.get("dayofyear"), 3);
case "k":
return p(t.get("hr"), 2, " ");
case "l":
return p(t.get("hr") % 12 || 12, 2,
" ");
case "L":
return p(t.get("ms"), 3);
case "m":
return p(t.get("mo") + 1, 2);
case "M":
return p(t.get("min"), 2);
case "o":
return t.get("ordinal");
case "p":
return a.getMsg(t.get("ampm"));
case "s":
return Math.round(t / 1000);
case "S":
return p(t.get("seconds"), 2);
case "T":
return t.format("%H:%M:%S");
case "U":
return p(t.get("week"), 2);
case "w":
return t.get("day");
case "x":
return t.format(a.getMsg("shortDate"));
case "X":
return t.format(a.getMsg("shortTime"));
case "y":
return
t.get("year").toString().substr(2);
case "Y":
return t.get("year");
case "z":
return t.get("GMTOffset");
case "Z":
return t.get("Timezone");
}
return u;
});
},
toISOString: function () {
return this.format("iso8601");
},
}).alias({ toJSON: "toISOString", compare: "diff",
strftime: "format" });
var k = ["Sun", "Mon", "Tue",
"Wed", "Thu", "Fri", "Sat"],
h = ["Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct", "Nov",
"Dec"];
var g = {
db: "%Y-%m-%d %H:%M:%S",
compact: "%Y%m%dT%H%M%S",
short: "%d %b %H:%M",
long: "%B %d, %Y %H:%M",
rfc822: function (s) {
return k[s.get("day")] + s.format(", %d ")
+ h[s.get("month")] + s.format(" %Y %H:%M:%S %Z");
},
rfc2822: function (s) {
return k[s.get("day")] + s.format(", %d ")
+ h[s.get("month")] + s.format(" %Y %H:%M:%S %z");
},
iso8601: function (s) {
return s.getUTCFullYear() + "-" + p(s.getUTCMonth() +
1, 2) + "-" + p(s.getUTCDate(), 2) + "T" +
p(s.getUTCHours(), 2) + ":" + p(s.getUTCMinutes(), 2) +
":" + p(s.getUTCSeconds(), 2) + "." +
p(s.getUTCMilliseconds(), 3) + "Z";
},
};
var c = [],
n = a.parse;
var r = function (v, x, u) {
var t = -1,
w = a.getMsg(v + "s");
switch (typeOf(x)) {
case "object":
t = w[x.get(v)];
break;
case "number":
t = w[x];
if (!t) {
throw new Error("Invalid " + v + "
index: " + x);
}
break;
case "string":
var s = w.filter(function (y) {
return this.test(y);
}, new RegExp("^" + x, "i"));
if (!s.length) {
throw new Error("Invalid " + v + "
string");
}
if (s.length > 1) {
throw new Error("Ambiguous " + v);
}
t = s[0];
}
return u ? w.indexOf(t) : t;
};
var i = 1900,
o = 70;
a.extend({
getMsg: function (t, s) {
return Locale.get("Date." + t, s);
},
units: {
ms: Function.from(1),
second: Function.from(1000),
minute: Function.from(60000),
hour: Function.from(3600000),
day: Function.from(86400000),
week: Function.from(608400000),
month: function (t, s) {
var u = new a();
return a.daysInMonth(t != null ? t : u.get("mo"),
s != null ? s : u.get("year")) * 86400000;
},
year: function (s) {
s = s || new a().get("year");
return a.isLeapYear(s) ? 31622400000 : 31536000000;
},
},
daysInMonth: function (t, s) {
return [31, a.isLeapYear(s) ? 29 : 28, 31, 30, 31, 30, 31, 31,
30, 31, 30, 31][t];
},
isLeapYear: function (s) {
return (s % 4 === 0 && s % 100 !== 0) || s % 400 === 0;
},
parse: function (v) {
var u = typeOf(v);
if (u == "number") {
return new a(v);
}
if (u != "string") {
return v;
}
v = v.clean();
if (!v.length) {
return null;
}
var s;
c.some(function (w) {
var t = w.re.exec(v);
return t ? (s = w.handler(t)) : false;
});
if (!(s && s.isValid())) {
s = new a(n(v));
if (!(s && s.isValid())) {
s = new a(v.toInt());
}
}
return s;
},
parseDay: function (s, t) {
return r("day", s, t);
},
parseMonth: function (t, s) {
return r("month", t, s);
},
parseUTC: function (t) {
var s = new a(t);
var u = a.UTC(s.get("year"), s.get("mo"),
s.get("date"), s.get("hr"), s.get("min"),
s.get("sec"), s.get("ms"));
return new a(u);
},
orderIndex: function (s) {
return a.getMsg("dateOrder").indexOf(s) + 1;
},
defineFormat: function (s, t) {
g[s] = t;
return this;
},
defineParser: function (s) {
c.push(s.re && s.handler ? s : l(s));
return this;
},
defineParsers: function () {
Array.flatten(arguments).each(a.defineParser);
return this;
},
define2DigitYearStart: function (s) {
o = s % 100;
i = s - o;
return this;
},
}).extend({ defineFormats: a.defineFormat.overloadSetter() });
var d = function (s) {
return new RegExp(
"(?:" +
a
.getMsg(s)
.map(function (t) {
return t.substr(0, 3);
})
.join("|") +
")[a-z]*"
);
};
var m = function (s) {
switch (s) {
case "T":
return "%H:%M:%S";
case "x":
return (a.orderIndex("month") == 1 ?
"%m[-./]%d" : "%d[-./]%m") + "([-./]%y)?";
case "X":
return "%H([.:]%M)?([.:]%S([.:]%s)?)? ?%p? ?%z?";
}
return null;
};
var j = { d: /[0-2]?[0-9]|3[01]/, H: /[01]?[0-9]|2[0-3]/, I:
/0?[1-9]|1[0-2]/, M: /[0-5]?\d/, s: /\d+/, o: /[a-z]*/, p: /[ap]\.?m\.?/,
y: /\d{2}|\d{4}/, Y: /\d{4}/, z: /Z|[+-]\d{2}(?::?\d{2})?/ };
j.m = j.I;
j.S = j.M;
var e;
var b = function (s) {
e = s;
j.a = j.A = d("days");
j.b = j.B = d("months");
c.each(function (u, t) {
if (u.format) {
c[t] = l(u.format);
}
});
};
var l = function (u) {
if (!e) {
return { format: u };
}
var s = [];
var t = (u.source || u)
.replace(/%([a-z])/gi, function (w, v) {
return m(v) || w;
})
.replace(/\((?!\?)/g, "(?:")
.replace(/ (?!\?|\*)/g, ",? ")
.replace(/%([a-z%])/gi, function (w, v) {
var x = j[v];
if (!x) {
return v;
}
s.push(v);
return "(" + x.source + ")";
})
.replace(/\[a-z\]/gi, "[a-z\\u00c0-\\uffff;&]");
return {
format: u,
re: new RegExp("^" + t + "$",
"i"),
handler: function (y) {
y = y.slice(1).associate(s);
var v = new a().clearTime(),
x = y.y || y.Y;
if (x != null) {
q.call(v, "y", x);
}
if ("d" in y) {
q.call(v, "d", 1);
}
if ("m" in y || y.b || y.B) {
q.call(v, "m", 1);
}
for (var w in y) {
q.call(v, w, y[w]);
}
return v;
},
};
};
var q = function (s, t) {
if (!t) {
return this;
}
switch (s) {
case "a":
case "A":
return this.set("day", a.parseDay(t, true));
case "b":
case "B":
return this.set("mo", a.parseMonth(t, true));
case "d":
return this.set("date", t);
case "H":
case "I":
return this.set("hr", t);
case "m":
return this.set("mo", t - 1);
case "M":
return this.set("min", t);
case "p":
return this.set("ampm", t.replace(/\./g,
""));
case "S":
return this.set("sec", t);
case "s":
return this.set("ms", ("0." + t) *
1000);
case "w":
return this.set("day", t);
case "Y":
return this.set("year", t);
case "y":
t = +t;
if (t < 100) {
t += i + (t < o ? 100 : 0);
}
return this.set("year", t);
case "z":
if (t == "Z") {
t = "+00";
}
var u = t.match(/([+-])(\d{2}):?(\d{2})?/);
u = (u[1] + "1") * (u[2] * 60 + (+u[3] || 0)) +
this.getTimezoneOffset();
return this.set("time", this - u * 60000);
}
return this;
};
a.defineParsers("%Y([-./]%m([-./]%d((T| )%X)?)?)?",
"%Y%m%d(T%H(%M%S?)?)?", "%x( %X)?", "%d%o( %b(
%Y)?)?( %X)?", "%b( %d%o)?( %Y)?( %X)?", "%Y %b( %d%o(
%X)?)?", "%o %b %d %X %z %Y", "%T", "%H:%M(
?%p)?");
Locale.addEvent("change", function (s) {
if (Locale.get("Date")) {
b(s);
}
}).fireEvent("change", Locale.getCurrent());
})();
Date.implement({
timeDiffInWords: function (a) {
return Date.distanceOfTimeInWords(this, a || new Date());
},
timeDiff: function (f, c) {
if (f == null) {
f = new Date();
}
var h = ((f - this) / 1000).floor().abs();
var e = [],
a = [60, 60, 24, 365, 0],
d = ["s", "m", "h",
"d", "y"],
g,
b;
for (var i = 0; i < a.length; i++) {
if (i && !h) {
break;
}
g = h;
if ((b = a[i])) {
g = h % b;
h = (h / b).floor();
}
e.unshift(g + (d[i] || ""));
}
return e.join(c || ":");
},
})
.extend({
distanceOfTimeInWords: function (b, a) {
return Date.getTimePhrase(((a - b) / 1000).toInt());
},
getTimePhrase: function (f) {
var d = f < 0 ? "Until" : "Ago";
if (f < 0) {
f *= -1;
}
var b = { minute: 60, hour: 60, day: 24, week: 7, month: 52 /
12, year: 12, eon: Infinity };
var e = "lessThanMinute";
for (var c in b) {
var a = b[c];
if (f < 1.5 * a) {
if (f > 0.75 * a) {
e = c;
}
break;
}
f /= a;
e = c + "s";
}
f = f.round();
return Date.getMsg(e + d, f).substitute({ delta: f });
},
})
.defineParsers(
{
re: /^(?:tod|tom|yes)/i,
handler: function (a) {
var b = new Date().clearTime();
switch (a[0]) {
case "tom":
return b.increment();
case "yes":
return b.decrement();
default:
return b;
}
},
},
{
re: /^(next|last) ([a-z]+)$/i,
handler: function (e) {
var f = new Date().clearTime();
var b = f.getDay();
var c = Date.parseDay(e[2], true);
var a = c - b;
if (c <= b) {
a += 7;
}
if (e[1] == "last") {
a -= 7;
}
return f.set("date", f.getDate() + a);
},
}
)
.alias("timeAgoInWords", "timeDiffInWords");
Locale.define("en-US", "Number", { decimal:
".", group: ",", currency: { prefix: "$ " }
});
Number.implement({
format: function (q) {
var n = this;
q = q ? Object.clone(q) : {};
var a = function (i) {
if (q[i] != null) {
return q[i];
}
return Locale.get("Number." + i);
};
var f = n < 0,
h = a("decimal"),
k = a("precision"),
o = a("group"),
c = a("decimals");
if (f) {
var e = a("negative") || {};
if (e.prefix == null && e.suffix == null) {
e.prefix = "-";
}
["prefix", "suffix"].each(function (i) {
if (e[i]) {
q[i] = a(i) + e[i];
}
});
n = -n;
}
var l = a("prefix"),
p = a("suffix");
if (c !== "" && c >= 0 && c <= 20)
{
n = n.toFixed(c);
}
if (k >= 1 && k <= 21) {
n = (+n).toPrecision(k);
}
n += "";
var m;
if (a("scientific") === false &&
n.indexOf("e") > -1) {
var j = n.split("e"),
b = +j[1];
n = j[0].replace(".", "");
if (b < 0) {
b = -b - 1;
m = j[0].indexOf(".");
if (m > -1) {
b -= m - 1;
}
while (b--) {
n = "0" + n;
}
n = "0." + n;
} else {
m = j[0].lastIndexOf(".");
if (m > -1) {
b -= j[0].length - m - 1;
}
while (b--) {
n += "0";
}
}
}
if (h != ".") {
n = n.replace(".", h);
}
if (o) {
m = n.lastIndexOf(h);
m = m > -1 ? m : n.length;
var d = n.substring(m),
g = m;
while (g--) {
if ((m - g - 1) % 3 == 0 && g != m - 1) {
d = o + d;
}
d = n.charAt(g) + d;
}
n = d;
}
if (l) {
n = l + n;
}
if (p) {
n += p;
}
return n;
},
formatCurrency: function (b) {
var a = Locale.get("Number.currency") || {};
if (a.scientific == null) {
a.scientific = false;
}
a.decimals = b != null ? b : a.decimals == null ? 2 : a.decimals;
return this.format(a);
},
formatPercentage: function (b) {
var a = Locale.get("Number.percentage") || {};
if (a.suffix == null) {
a.suffix = "%";
}
a.decimals = b != null ? b : a.decimals == null ? 2 : a.decimals;
return this.format(a);
},
});
(function () {
var c = {
a: /[àáâãäåăą]/g,
A: /[ÀÁÂÃÄÅĂĄ]/g,
c: /[ćčç]/g,
C: /[ĆČÇ]/g,
d: /[ďđ]/g,
D: /[ĎÐ]/g,
e: /[èéêëěę]/g,
E: /[ÈÉÊËĚĘ]/g,
g: /[ğ]/g,
G: /[Ğ]/g,
i: /[ìíîï]/g,
I: /[ÌÍÎÏ]/g,
l: /[ĺľł]/g,
L: /[ĹĽŁ]/g,
n: /[ñňń]/g,
N: /[ÑŇŃ]/g,
o: /[òóôõöøő]/g,
O: /[ÒÓÔÕÖØ]/g,
r: /[řŕ]/g,
R: /[ŘŔ]/g,
s: /[ššş]/g,
S: /[ŠŞŚ]/g,
t: /[ťţ]/g,
T: /[ŤŢ]/g,
ue: /[ü]/g,
UE: /[Ü]/g,
u: /[ùúûůµ]/g,
U: /[ÙÚÛŮ]/g,
y: /[ÿý]/g,
Y: /[ŸÝ]/g,
z: /[žźż]/g,
Z: /[ŽŹŻ]/g,
th: /[þ]/g,
TH: /[Þ]/g,
dh: /[ð]/g,
DH: /[Ð]/g,
ss: /[ß]/g,
oe: /[œ]/g,
OE: /[Œ]/g,
ae: /[æ]/g,
AE: /[Æ]/g,
},
b = { " ": /[\xa0\u2002\u2003\u2009]/g, "*":
/[\xb7]/g, "'": /[\u2018\u2019]/g, '"':
/[\u201c\u201d]/g, "...": /[\u2026]/g, "-":
/[\u2013]/g, "»": /[\uFFFD]/g };
var a = function (f, h) {
var e = f,
g;
for (g in h) {
e = e.replace(h[g], g);
}
return e;
};
var d = function (e, g) {
e = e || "";
var h = g ? "<" + e +
"(?!\\w)[^>]*>([\\s\\S]*?)</" + e +
"(?!\\w)>" : "</?" + e +
"([^>]+)?>",
f = new RegExp(h, "gi");
return f;
};
String.implement({
standardize: function () {
return a(this, c);
},
repeat: function (e) {
return new Array(e + 1).join(this);
},
pad: function (e, h, g) {
if (this.length >= e) {
return this;
}
var f = (h == null ? " " : "" + h).repeat(e
- this.length).substr(0, e - this.length);
if (!g || g == "right") {
return this + f;
}
if (g == "left") {
return f + this;
}
return f.substr(0, (f.length / 2).floor()) + this + f.substr(0,
(f.length / 2).ceil());
},
getTags: function (e, f) {
return this.match(d(e, f)) || [];
},
stripTags: function (e, f) {
return this.replace(d(e, f), "");
},
tidy: function () {
return a(this, b);
},
truncate: function (e, f, i) {
var h = this;
if (f == null && arguments.length == 1) {
f = "…";
}
if (h.length > e) {
h = h.substring(0, e);
if (i) {
var g = h.lastIndexOf(i);
if (g != -1) {
h = h.substr(0, g);
}
}
if (f) {
h += f;
}
}
return h;
},
});
})();
String.implement({
parseQueryString: function (d, a) {
if (d == null) {
d = true;
}
if (a == null) {
a = true;
}
var c = this.split(/[&;]/),
b = {};
if (!c.length) {
return b;
}
c.each(function (i) {
var e = i.indexOf("=") + 1,
g = e ? i.substr(e) : "",
f = e ? i.substr(0, e - 1).match(/([^\]\[]+|(\B)(?=\]))/g)
: [i],
h = b;
if (!f) {
return;
}
if (a) {
g = decodeURIComponent(g);
}
f.each(function (k, j) {
if (d) {
k = decodeURIComponent(k);
}
var l = h[k];
if (j < f.length - 1) {
h = h[k] = l || {};
} else {
if (typeOf(l) == "array") {
l.push(g);
} else {
h[k] = l != null ? [l, g] : g;
}
}
});
});
return b;
},
cleanQueryString: function (a) {
return this.split("&")
.filter(function (e) {
var b = e.indexOf("="),
c = b < 0 ? "" : e.substr(0, b),
d = e.substr(b + 1);
return a ? a.call(null, c, d) : d || d === 0;
})
.join("&");
},
});
(function () {
var b = function () {
return this.get("value");
};
var a = (this.URI = new Class({
Implements: Options,
options: {},
regex:
/^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,
parts: ["scheme", "user", "password",
"host", "port", "directory",
"file", "query", "fragment"],
schemes: { http: 80, https: 443, ftp: 21, rtsp: 554, mms: 1755,
file: 0 },
initialize: function (d, c) {
this.setOptions(c);
var e = this.options.base || a.base;
if (!d) {
d = e;
}
if (d && d.parsed) {
this.parsed = Object.clone(d.parsed);
} else {
this.set("value", d.href || d.toString(), e ? new
a(e) : false);
}
},
parse: function (e, d) {
var c = e.match(this.regex);
if (!c) {
return false;
}
c.shift();
return this.merge(c.associate(this.parts), d);
},
merge: function (d, c) {
if ((!d || !d.scheme) && (!c || !c.scheme)) {
return false;
}
if (c) {
this.parts.every(function (e) {
if (d[e]) {
return false;
}
d[e] = c[e] || "";
return true;
});
}
d.port = d.port || this.schemes[d.scheme.toLowerCase()];
d.directory = d.directory ? this.parseDirectory(d.directory, c
? c.directory : "") : "/";
return d;
},
parseDirectory: function (d, e) {
d = (d.substr(0, 1) == "/" ? "" : e ||
"/") + d;
if (!d.test(a.regs.directoryDot)) {
return d;
}
var c = [];
d.replace(a.regs.endSlash, "")
.split("/")
.each(function (f) {
if (f == ".." && c.length > 0) {
c.pop();
} else {
if (f != ".") {
c.push(f);
}
}
});
return c.join("/") + "/";
},
combine: function (c) {
return (
c.value ||
c.scheme +
"://" +
(c.user ? c.user + (c.password ? ":" +
c.password : "") + "@" : "") +
(c.host || "") +
(c.port && c.port != this.schemes[c.scheme] ?
":" + c.port : "") +
(c.directory || "/") +
(c.file || "") +
(c.query ? "?" + c.query : "") +
(c.fragment ? "#" + c.fragment :
"")
);
},
set: function (d, f, e) {
if (d == "value") {
var c = f.match(a.regs.scheme);
if (c) {
c = c[1];
}
if (c && this.schemes[c.toLowerCase()] == null) {
this.parsed = { scheme: c, value: f };
} else {
this.parsed = this.parse(f, (e || this).parsed) || (c ?
{ scheme: c, value: f } : { value: f });
}
} else {
if (d == "data") {
this.setData(f);
} else {
this.parsed[d] = f;
}
}
return this;
},
get: function (c, d) {
switch (c) {
case "value":
return this.combine(this.parsed, d ? d.parsed : false);
case "data":
return this.getData();
}
return this.parsed[c] || "";
},
go: function () {
document.location.href = this.toString();
},
toURI: function () {
return this;
},
getData: function (e, d) {
var c = this.get(d || "query");
if (!(c || c === 0)) {
return e ? null : {};
}
var f = c.parseQueryString();
return e ? f[e] : f;
},
setData: function (c, f, d) {
if (typeof c == "string") {
var e = this.getData();
e[arguments[0]] = arguments[1];
c = e;
} else {
if (f) {
c = Object.merge(this.getData(), c);
}
}
return this.set(d || "query",
Object.toQueryString(c));
},
clearData: function (c) {
return this.set(c || "query", "");
},
toString: b,
valueOf: b,
}));
a.regs = { endSlash: /\/$/, scheme: /^(\w+):/, directoryDot: /\.\/|\.$/
};
a.base = new
a(Array.mofrom(document.getElements("base[href]",
true)).getLast(), { base: document.location });
String.implement({
toURI: function (c) {
return new a(this, c);
},
});
})();
URI = Class.refactor(URI, {
combine: function (f, e) {
if (!e || f.scheme != e.scheme || f.host != e.host || f.port !=
e.port) {
return this.previous.apply(this, arguments);
}
var a = f.file + (f.query ? "?" + f.query : "")
+ (f.fragment ? "#" + f.fragment : "");
if (!e.directory) {
return (f.directory || (f.file ? "" :
"./")) + a;
}
var d = e.directory.split("/"),
c = f.directory.split("/"),
g = "",
h;
var b = 0;
for (h = 0; h < d.length && h < c.length &&
d[h] == c[h]; h++) {}
for (b = 0; b < d.length - h - 1; b++) {
g += "../";
}
for (b = h; b < c.length - 1; b++) {
g += c[b] + "/";
}
return (g || (f.file ? "" : "./")) + a;
},
toAbsolute: function (a) {
a = new URI(a);
if (a) {
a.set("directory",
"").set("file", "");
}
return this.toRelative(a);
},
toRelative: function (a) {
return this.get("value", new URI(a));
},
});
(function () {
if (this.Hash) {
return;
}
var a = (this.Hash = new Type("Hash", function (b) {
if (typeOf(b) == "hash") {
b = Object.clone(b.getClean());
}
for (var c in b) {
this[c] = b[c];
}
return this;
}));
this.$H = function (b) {
return new a(b);
};
a.implement({
forEach: function (b, c) {
Object.forEach(this, b, c);
},
getClean: function () {
var c = {};
for (var b in this) {
if (this.hasOwnProperty(b)) {
c[b] = this[b];
}
}
return c;
},
getLength: function () {
var c = 0;
for (var b in this) {
if (this.hasOwnProperty(b)) {
c++;
}
}
return c;
},
});
a.alias("each", "forEach");
a.implement({
has: Object.prototype.hasOwnProperty,
keyOf: function (b) {
return Object.keyOf(this, b);
},
hasValue: function (b) {
return Object.contains(this, b);
},
extend: function (b) {
a.each(
b || {},
function (d, c) {
a.set(this, c, d);
},
this
);
return this;
},
combine: function (b) {
a.each(
b || {},
function (d, c) {
a.include(this, c, d);
},
this
);
return this;
},
erase: function (b) {
if (this.hasOwnProperty(b)) {
delete this[b];
}
return this;
},
get: function (b) {
return this.hasOwnProperty(b) ? this[b] : null;
},
set: function (b, c) {
if (!this[b] || this.hasOwnProperty(b)) {
this[b] = c;
}
return this;
},
empty: function () {
a.each(
this,
function (c, b) {
delete this[b];
},
this
);
return this;
},
include: function (b, c) {
if (this[b] == undefined) {
this[b] = c;
}
return this;
},
map: function (b, c) {
return new a(Object.map(this, b, c));
},
filter: function (b, c) {
return new a(Object.filter(this, b, c));
},
every: function (b, c) {
return Object.every(this, b, c);
},
some: function (b, c) {
return Object.some(this, b, c);
},
getKeys: function () {
return Object.keys(this);
},
getValues: function () {
return Object.values(this);
},
toQueryString: function (b) {
return Object.toQueryString(this, b);
},
});
a.alias({ indexOf: "keyOf", contains: "hasValue"
});
})();
Hash.implement({
getFromPath: function (a) {
return Object.getFromPath(this, a);
},
cleanValues: function (a) {
return new Hash(Object.cleanValues(this, a));
},
run: function () {
Object.run(arguments);
},
});
Element.implement({
tidy: function () {
this.set("value", this.get("value").tidy());
},
getTextInRange: function (b, a) {
return this.get("value").substring(b, a);
},
getSelectedText: function () {
if (this.setSelectionRange) {
return this.getTextInRange(this.getSelectionStart(),
this.getSelectionEnd());
}
return document.selection.createRange().text;
},
getSelectedRange: function () {
if (this.selectionStart != null) {
return { start: this.selectionStart, end: this.selectionEnd };
}
var e = { start: 0, end: 0 };
var a = this.getDocument().selection.createRange();
if (!a || a.parentElement() != this) {
return e;
}
var c = a.duplicate();
if (this.type == "text") {
e.start = 0 - c.moveStart("character", -100000);
e.end = e.start + a.text.length;
} else {
var b = this.get("value");
var d = b.length;
c.moveToElementText(this);
c.setEndPoint("StartToEnd", a);
if (c.text.length) {
d -= b.match(/[\n\r]*$/)[0].length;
}
e.end = d - c.text.length;
c.setEndPoint("StartToStart", a);
e.start = d - c.text.length;
}
return e;
},
getSelectionStart: function () {
return this.getSelectedRange().start;
},
getSelectionEnd: function () {
return this.getSelectedRange().end;
},
setCaretPosition: function (a) {
if (a == "end") {
a = this.get("value").length;
}
this.selectRange(a, a);
return this;
},
getCaretPosition: function () {
return this.getSelectedRange().start;
},
selectRange: function (e, a) {
if (this.setSelectionRange) {
this.focus();
this.setSelectionRange(e, a);
} else {
var c = this.get("value");
var d = c.substr(e, a - e).replace(/\r/g, "").length;
e = c.substr(0, e).replace(/\r/g, "").length;
var b = this.createTextRange();
b.collapse(true);
b.moveEnd("character", e + d);
b.moveStart("character", e);
b.select();
}
return this;
},
insertAtCursor: function (b, a) {
var d = this.getSelectedRange();
var c = this.get("value");
this.set("value", c.substring(0, d.start) + b +
c.substring(d.end, c.length));
if (a !== false) {
this.selectRange(d.start, d.start + b.length);
} else {
this.setCaretPosition(d.start + b.length);
}
return this;
},
insertAroundCursor: function (b, a) {
b = Object.append({ before: "", defaultMiddle:
"", after: "" }, b);
var c = this.getSelectedText() || b.defaultMiddle;
var g = this.getSelectedRange();
var f = this.get("value");
if (g.start == g.end) {
this.set("value", f.substring(0, g.start) + b.before
+ c + b.after + f.substring(g.end, f.length));
this.selectRange(g.start + b.before.length, g.end +
b.before.length + c.length);
} else {
var d = f.substring(g.start, g.end);
this.set("value", f.substring(0, g.start) + b.before
+ d + b.after + f.substring(g.end, f.length));
var e = g.start + b.before.length;
if (a !== false) {
this.selectRange(e, e + d.length);
} else {
this.setCaretPosition(e + f.length);
}
}
return this;
},
});
Elements.from = function (e, d) {
if (d || d == null) {
e = e.stripScripts();
}
var b,
c = e.match(/^\s*<(t[dhr]|tbody|tfoot|thead)/i);
if (c) {
b = new Element("table");
var a = c[1].toLowerCase();
if (["td", "th", "tr"].contains(a)) {
b = new Element("tbody").inject(b);
if (a != "tr") {
b = new Element("tr").inject(b);
}
}
}
return (b || new Element("div")).set("html",
e).getChildren();
};
(function () {
var d = { relay: false },
c = ["once", "throttle", "pause"],
b = c.length;
while (b--) {
d[c[b]] = Events.lookupPseudo(c[b]);
}
DOMEvent.definePseudo = function (e, f) {
d[e] = f;
return this;
};
var a = Element.prototype;
[Element, Window, Document].invoke("implement",
Events.Pseudos(d, a.addEvent, a.removeEvent));
})();
(function () {
var a = "$moo:keys-pressed",
b = "$moo:keys-keyup";
DOMEvent.definePseudo("keys", function (d, e, c) {
var g = c[0],
f = [],
h = this.retrieve(a, []);
f.append(
d.value
.replace("++", function () {
f.push("+");
return "";
})
.split("+")
);
h.include(g.key);
if (
f.every(function (j) {
return h.contains(j);
})
) {
e.apply(this, c);
}
this.store(a, h);
if (!this.retrieve(b)) {
var i = function (j) {
(function () {
h = this.retrieve(a, []).erase(j.key);
this.store(a, h);
}.delay(0, this));
};
this.store(b, i).addEvent("keyup", i);
}
});
DOMEvent.defineKeys({
"16": "shift",
"17": "control",
"18": "alt",
"20": "capslock",
"33": "pageup",
"34": "pagedown",
"35": "end",
"36": "home",
"144": "numlock",
"145": "scrolllock",
"186": ";",
"187": "=",
"188": ",",
"190": ".",
"191": "/",
"192": "`",
"219": "[",
"220": "\\",
"221": "]",
"222": "'",
"107": "+",
}).defineKey(Browser.firefox ? 109 : 189, "-");
})();
(function () {
var b = function (e, d) {
var f = [];
Object.each(d, function (g) {
Object.each(g, function (h) {
e.each(function (i) {
f.push(i + "-" + h + (i == "border"
? "-width" : ""));
});
});
});
return f;
};
var c = function (f, e) {
var d = 0;
Object.each(e, function (h, g) {
if (g.test(f)) {
d = d + h.toInt();
}
});
return d;
};
var a = function (d) {
return !!(!d || d.offsetHeight || d.offsetWidth);
};
Element.implement({
measure: function (h) {
if (a(this)) {
return h.call(this);
}
var g = this.getParent(),
e = [];
while (!a(g) && g != document.body) {
e.push(g.expose());
g = g.getParent();
}
var f = this.expose(),
d = h.call(this);
f();
e.each(function (i) {
i();
});
return d;
},
expose: function () {
if (this.getStyle("display") != "none") {
return function () {};
}
var d = this.style.cssText;
this.setStyles({ display: "block", position:
"absolute", visibility: "hidden" });
return function () {
this.style.cssText = d;
}.bind(this);
},
getDimensions: function (d) {
d = Object.merge({ computeSize: false }, d);
var i = { x: 0, y: 0 };
var h = function (j, e) {
return e.computeSize ? j.getComputedSize(e) : j.getSize();
};
var f = this.getParent("body");
if (f && this.getStyle("display") ==
"none") {
i = this.measure(function () {
return h(this, d);
});
} else {
if (f) {
try {
i = h(this, d);
} catch (g) {}
}
}
return Object.append(i, i.x || i.x === 0 ? { width: i.x,
height: i.y } : { x: i.width, y: i.height });
},
getComputedSize: function (d) {
d = Object.merge({ styles: ["padding",
"border"], planes: { height: ["top",
"bottom"], width: ["left", "right"] }, mode:
"both" }, d);
var g = {},
e = { width: 0, height: 0 },
f;
if (d.mode == "vertical") {
delete e.width;
delete d.planes.width;
} else {
if (d.mode == "horizontal") {
delete e.height;
delete d.planes.height;
}
}
b(d.styles, d.planes).each(function (h) {
g[h] = this.getStyle(h).toInt();
}, this);
Object.each(
d.planes,
function (i, h) {
var k = h.capitalize(),
j = this.getStyle(h);
if (j == "auto" && !f) {
f = this.getDimensions();
}
j = g[h] = j == "auto" ? f[h] : j.toInt();
e["total" + k] = j;
i.each(function (m) {
var l = c(m, g);
e["computed" + m.capitalize()] = l;
e["total" + k] += l;
});
},
this
);
return Object.append(e, g);
},
});
})();
(function () {
var a = false,
b = false;
var c = function () {
var d = new Element("div").setStyles({ position:
"fixed", top: 0, right: 0 }).inject(document.body);
a = d.offsetTop === 0;
d.dispose();
b = true;
};
Element.implement({
pin: function (h, f) {
if (!b) {
c();
}
if (this.getStyle("display") == "none") {
return this;
}
var j,
k = window.getScroll(),
l,
e;
if (h !== false) {
j = this.getPosition(a ? document.body :
this.getOffsetParent());
if (!this.retrieve("pin:_pinned")) {
var g = { top: j.y - k.y, left: j.x - k.x };
if (a && !f) {
this.setStyle("position",
"fixed").setStyles(g);
} else {
l = this.getOffsetParent();
var i = this.getPosition(l),
m = this.getStyles("left",
"top");
if ((l && m.left == "auto") ||
m.top == "auto") {
this.setPosition(i);
}
if (this.getStyle("position") ==
"static") {
this.setStyle("position",
"absolute");
}
i = { x: m.left.toInt() - k.x, y: m.top.toInt() -
k.y };
e = function () {
if (!this.retrieve("pin:_pinned")) {
return;
}
var n = window.getScroll();
this.setStyles({ left: i.x + n.x, top: i.y +
n.y });
}.bind(this);
this.store("pin:_scrollFixer", e);
window.addEvent("scroll", e);
}
this.store("pin:_pinned", true);
}
} else {
if (!this.retrieve("pin:_pinned")) {
return this;
}
l = this.getParent();
var d = l.getComputedStyle("position") !=
"static" ? l : l.getOffsetParent();
j = this.getPosition(d);
this.store("pin:_pinned", false);
e = this.retrieve("pin:_scrollFixer");
if (!e) {
this.setStyles({ position: "absolute", top:
j.y + k.y, left: j.x + k.x });
} else {
this.store("pin:_scrollFixer", null);
window.removeEvent("scroll", e);
}
this.removeClass("isPinned");
}
return this;
},
unpin: function () {
return this.pin(false);
},
togglePin: function () {
return this.pin(!this.retrieve("pin:_pinned"));
},
});
})();
(function (b) {
var a = (Element.Position = {
options: { relativeTo: document.body, position: { x:
"center", y: "center" }, offset: { x: 0, y: 0 } },
getOptions: function (d, c) {
c = Object.merge({}, a.options, c);
a.setPositionOption(c);
a.setEdgeOption(c);
a.setOffsetOption(d, c);
a.setDimensionsOption(d, c);
return c;
},
setPositionOption: function (c) {
c.position = a.getCoordinateFromValue(c.position);
},
setEdgeOption: function (d) {
var c = a.getCoordinateFromValue(d.edge);
d.edge = c ? c : d.position.x == "center" &&
d.position.y == "center" ? { x: "center", y:
"center" } : { x: "left", y: "top" };
},
setOffsetOption: function (f, d) {
var c = { x: 0, y: 0 },
g = f.measure(function () {
return document.id(this.getOffsetParent());
}),
e = g.getScroll();
if (!g || g == f.getDocument().body) {
return;
}
c = g.measure(function () {
var i = this.getPosition();
if (this.getStyle("position") ==
"fixed") {
var h = window.getScroll();
i.x += h.x;
i.y += h.y;
}
return i;
});
d.offset = { parentPositioned: g != document.id(d.relativeTo),
x: d.offset.x - c.x + e.x, y: d.offset.y - c.y + e.y };
},
setDimensionsOption: function (d, c) {
c.dimensions = d.getDimensions({ computeSize: true, styles:
["padding", "border", "margin"] });
},
getPosition: function (e, d) {
var c = {};
d = a.getOptions(e, d);
var f = document.id(d.relativeTo) || document.body;
a.setPositionCoordinates(d, c, f);
if (d.edge) {
a.toEdge(c, d);
}
var g = d.offset;
c.left = (c.x >= 0 || g.parentPositioned || d.allowNegative
? c.x : 0).toInt();
c.top = (c.y >= 0 || g.parentPositioned || d.allowNegative ?
c.y : 0).toInt();
a.toMinMax(c, d);
if (d.relFixedPosition || f.getStyle("position") ==
"fixed") {
a.toRelFixedPosition(f, c);
}
if (d.ignoreScroll) {
a.toIgnoreScroll(f, c);
}
if (d.ignoreMargins) {
a.toIgnoreMargins(c, d);
}
c.left = Math.ceil(c.left);
c.top = Math.ceil(c.top);
delete c.x;
delete c.y;
return c;
},
setPositionCoordinates: function (k, g, d) {
var f = k.offset.y,
h = k.offset.x,
e = d == document.body ? window.getScroll() :
d.getPosition(),
j = e.y,
c = e.x,
i = window.getSize();
switch (k.position.x) {
case "left":
g.x = c + h;
break;
case "right":
g.x = c + h + d.offsetWidth;
break;
default:
g.x = c + (d == document.body ? i.x : d.offsetWidth) /
2 + h;
break;
}
switch (k.position.y) {
case "top":
g.y = j + f;
break;
case "bottom":
g.y = j + f + d.offsetHeight;
break;
default:
g.y = j + (d == document.body ? i.y : d.offsetHeight) /
2 + f;
break;
}
},
toMinMax: function (c, d) {
var f = { left: "x", top: "y" },
e;
["minimum", "maximum"].each(function (g) {
["left", "top"].each(function (h) {
e = d[g] ? d[g][f[h]] : null;
if (e != null && (g == "minimum" ?
c[h] < e : c[h] > e)) {
c[h] = e;
}
});
});
},
toRelFixedPosition: function (e, c) {
var d = window.getScroll();
c.top += d.y;
c.left += d.x;
},
toIgnoreScroll: function (e, d) {
var c = e.getScroll();
d.top -= c.y;
d.left -= c.x;
},
toIgnoreMargins: function (c, d) {
c.left += d.edge.x == "right" ?
d.dimensions["margin-right"] : d.edge.x != "center" ?
-d.dimensions["margin-left"] :
-d.dimensions["margin-left"] +
(d.dimensions["margin-right"] +
d.dimensions["margin-left"]) / 2;
c.top += d.edge.y == "bottom" ?
d.dimensions["margin-bottom"] : d.edge.y != "center" ?
-d.dimensions["margin-top"] :
-d.dimensions["margin-top"] +
(d.dimensions["margin-bottom"] +
d.dimensions["margin-top"]) / 2;
},
toEdge: function (c, d) {
var e = {},
g = d.dimensions,
f = d.edge;
switch (f.x) {
case "left":
e.x = 0;
break;
case "right":
e.x = -g.x - g.computedRight - g.computedLeft;
break;
default:
e.x = -Math.round(g.totalWidth / 2);
break;
}
switch (f.y) {
case "top":
e.y = 0;
break;
case "bottom":
e.y = -g.y - g.computedTop - g.computedBottom;
break;
default:
e.y = -Math.round(g.totalHeight / 2);
break;
}
c.x += e.x;
c.y += e.y;
},
getCoordinateFromValue: function (c) {
if (typeOf(c) != "string") {
return c;
}
c = c.toLowerCase();
return { x: c.test("left") ? "left" :
c.test("right") ? "right" : "center", y:
c.test(/upper|top/) ? "top" : c.test("bottom") ?
"bottom" : "center" };
},
});
Element.implement({
position: function (d) {
if (d && (d.x != null || d.y != null)) {
return b ? b.apply(this, arguments) : this;
}
var c = this.setStyle("position",
"absolute").calculatePosition(d);
return d && d.returnPos ? c : this.setStyles(c);
},
calculatePosition: function (c) {
return a.getPosition(this, c);
},
});
})(Element.prototype.position);
Element.implement({
isDisplayed: function () {
return this.getStyle("display") != "none";
},
isVisible: function () {
var a = this.offsetWidth,
b = this.offsetHeight;
return a == 0 && b == 0 ? false : a > 0 && b
> 0 ? true : this.style.display != "none";
},
toggle: function () {
return this[this.isDisplayed() ? "hide" :
"show"]();
},
hide: function () {
var b;
try {
b = this.getStyle("display");
} catch (a) {}
if (b == "none") {
return this;
}
return this.store("element:_originalDisplay", b ||
"").setStyle("display", "none");
},
show: function (a) {
if (!a && this.isDisplayed()) {
return this;
}
a = a || this.retrieve("element:_originalDisplay") ||
"block";
return this.setStyle("display", a == "none" ?
"block" : a);
},
swapClass: function (a, b) {
return this.removeClass(a).addClass(b);
},
});
Document.implement({
clearSelection: function () {
if (window.getSelection) {
var a = window.getSelection();
if (a && a.removeAllRanges) {
a.removeAllRanges();
}
} else {
if (document.selection && document.selection.empty) {
try {
document.selection.empty();
} catch (b) {}
}
}
},
});
var IframeShim = new Class({
Implements: [Options, Events, Class.Occlude],
options: {
className: "iframeShim",
src: 'javascript:false;document.write("");',
display: false,
zIndex: null,
margin: 0,
offset: { x: 0, y: 0 },
browsers: Browser.ie6 || (Browser.firefox &&
Browser.version < 3 && Browser.Platform.mac),
},
property: "IframeShim",
initialize: function (b, a) {
this.element = document.id(b);
if (this.occlude()) {
return this.occluded;
}
this.setOptions(a);
this.makeShim();
return this;
},
makeShim: function () {
if (this.options.browsers) {
var c = this.element.getStyle("zIndex").toInt();
if (!c) {
c = 1;
var b = this.element.getStyle("position");
if (b == "static" || !b) {
this.element.setStyle("position",
"relative");
}
this.element.setStyle("zIndex", c);
}
c = (this.options.zIndex != null || this.options.zIndex === 0)
&& c > this.options.zIndex ? this.options.zIndex : c - 1;
if (c < 0) {
c = 1;
}
this.shim = new Element("iframe", {
src: this.options.src,
scrolling: "no",
frameborder: 0,
styles: { zIndex: c, position: "absolute",
border: "none", filter:
"progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" },
class: this.options.className,
}).store("IframeShim", this);
var a = function () {
this.shim.inject(this.element, "after");
this[this.options.display ? "show" :
"hide"]();
this.fireEvent("inject");
}.bind(this);
if (!IframeShim.ready) {
window.addEvent("load", a);
} else {
a();
}
} else {
this.position = this.hide = this.show = this.dispose =
Function.from(this);
}
},
position: function () {
if (!IframeShim.ready || !this.shim) {
return this;
}
var a = this.element.measure(function () {
return this.getSize();
});
if (this.options.margin != undefined) {
a.x = a.x - this.options.margin * 2;
a.y = a.y - this.options.margin * 2;
this.options.offset.x += this.options.margin;
this.options.offset.y += this.options.margin;
}
this.shim.set({ width: a.x, height: a.y }).position({ relativeTo:
this.element, offset: this.options.offset });
return this;
},
hide: function () {
if (this.shim) {
this.shim.setStyle("display", "none");
}
return this;
},
show: function () {
if (this.shim) {
this.shim.setStyle("display", "block");
}
return this.position();
},
dispose: function () {
if (this.shim) {
this.shim.dispose();
}
return this;
},
destroy: function () {
if (this.shim) {
this.shim.destroy();
}
return this;
},
});
window.addEvent("load", function () {
IframeShim.ready = true;
});
var Mask = new Class({
Implements: [Options, Events],
Binds: ["position"],
options: { style: {}, class: "mask", maskMargins: false,
useIframeShim: true, iframeShimOptions: {} },
initialize: function (b, a) {
this.target = document.id(b) || document.id(document.body);
this.target.store("mask", this);
this.setOptions(a);
this.render();
this.inject();
},
render: function () {
this.element = new Element("div", {
class: this.options["class"],
id: this.options.id || "mask-" + String.uniqueID(),
styles: Object.merge({}, this.options.style, { display:
"none" }),
events: {
click: function (a) {
this.fireEvent("click", a);
if (this.options.hideOnClick) {
this.hide();
}
}.bind(this),
},
});
this.hidden = true;
},
toElement: function () {
return this.element;
},
inject: function (b, a) {
a = a || (this.options.inject ? this.options.inject.where :
"") || this.target == document.body ? "inside" :
"after";
b = b || (this.options.inject &&
this.options.inject.target) || this.target;
this.element.inject(b, a);
if (this.options.useIframeShim) {
this.shim = new IframeShim(this.element,
this.options.iframeShimOptions);
this.addEvents({ show: this.shim.show.bind(this.shim), hide:
this.shim.hide.bind(this.shim), destroy: this.shim.destroy.bind(this.shim)
});
}
},
position: function () {
this.resize(this.options.width, this.options.height);
this.element.position({ relativeTo: this.target, position:
"topLeft", ignoreMargins: !this.options.maskMargins,
ignoreScroll: this.target == document.body });
return this;
},
resize: function (a, e) {
var b = { styles: ["padding", "border"] };
if (this.options.maskMargins) {
b.styles.push("margin");
}
var d = this.target.getComputedSize(b);
if (this.target == document.body) {
this.element.setStyles({ width: 0, height: 0 });
var c = window.getScrollSize();
if (d.totalHeight < c.y) {
d.totalHeight = c.y;
}
if (d.totalWidth < c.x) {
d.totalWidth = c.x;
}
}
this.element.setStyles({ width: Array.pick([a, d.totalWidth, d.x]),
height: Array.pick([e, d.totalHeight, d.y]) });
return this;
},
show: function () {
if (!this.hidden) {
return this;
}
window.addEvent("resize", this.position);
this.position();
this.showMask.apply(this, arguments);
return this;
},
showMask: function () {
this.element.setStyle("display", "block");
this.hidden = false;
this.fireEvent("show");
},
hide: function () {
if (this.hidden) {
return this;
}
window.removeEvent("resize", this.position);
this.hideMask.apply(this, arguments);
if (this.options.destroyOnHide) {
return this.destroy();
}
return this;
},
hideMask: function () {
this.element.setStyle("display", "none");
this.hidden = true;
this.fireEvent("hide");
},
toggle: function () {
this[this.hidden ? "show" : "hide"]();
},
destroy: function () {
this.hide();
this.element.destroy();
this.fireEvent("destroy");
this.target.eliminate("mask");
},
});
Element.Properties.mask = {
set: function (b) {
var a = this.retrieve("mask");
if (a) {
a.destroy();
}
return
this.eliminate("mask").store("mask:options", b);
},
get: function () {
var a = this.retrieve("mask");
if (!a) {
a = new Mask(this, this.retrieve("mask:options"));
this.store("mask", a);
}
return a;
},
};
Element.implement({
mask: function (a) {
if (a) {
this.set("mask", a);
}
this.get("mask").show();
return this;
},
unmask: function () {
this.get("mask").hide();
return this;
},
});
var Spinner = new Class({
Extends: Mask,
Implements: Chain,
options: { class: "spinner", containerPosition: {}, content:
{ class: "spinner-content" }, messageContainer: { class:
"spinner-msg" }, img: { class: "spinner-img" },
fxOptions: { link: "chain" } },
initialize: function (c, a) {
this.target = document.id(c) || document.id(document.body);
this.target.store("spinner", this);
this.setOptions(a);
this.render();
this.inject();
var b = function () {
this.active = false;
}.bind(this);
this.addEvents({ hide: b, show: b });
},
render: function () {
this.parent();
this.element.set("id", this.options.id ||
"spinner-" + String.uniqueID());
this.content = document.id(this.options.content) || new
Element("div", this.options.content);
this.content.inject(this.element);
if (this.options.message) {
this.msg = document.id(this.options.message) || new
Element("p",
this.options.messageContainer).appendText(this.options.message);
this.msg.inject(this.content);
}
if (this.options.img) {
this.img = document.id(this.options.img) || new
Element("div", this.options.img);
this.img.inject(this.content);
}
this.element.set("tween", this.options.fxOptions);
},
show: function (a) {
if (this.active) {
return this.chain(this.show.bind(this));
}
if (!this.hidden) {
this.callChain.delay(20, this);
return this;
}
this.active = true;
return this.parent(a);
},
showMask: function (a) {
var b = function () {
this.content.position(Object.merge({ relativeTo: this.element
}, this.options.containerPosition));
}.bind(this);
if (a) {
this.parent();
b();
} else {
if (!this.options.style.opacity) {
this.options.style.opacity =
this.element.getStyle("opacity").toFloat();
}
this.element.setStyles({ display: "block", opacity: 0
}).tween("opacity", this.options.style.opacity);
b();
this.hidden = false;
this.fireEvent("show");
this.callChain();
}
},
hide: function (a) {
if (this.active) {
return this.chain(this.hide.bind(this));
}
if (this.hidden) {
this.callChain.delay(20, this);
return this;
}
this.active = true;
return this.parent(a);
},
hideMask: function (a) {
if (a) {
return this.parent();
}
this.element
.tween("opacity", 0)
.get("tween")
.chain(
function () {
this.element.setStyle("display",
"none");
this.hidden = true;
this.fireEvent("hide");
this.callChain();
}.bind(this)
);
},
destroy: function () {
this.content.destroy();
this.parent();
this.target.eliminate("spinner");
},
});
Request = Class.refactor(Request, {
options: { useSpinner: false, spinnerOptions: {}, spinnerTarget: false
},
initialize: function (a) {
this._send = this.send;
this.send = function (b) {
var c = this.getSpinner();
if (c) {
c.chain(this._send.pass(b, this)).show();
} else {
this._send(b);
}
return this;
};
this.previous(a);
},
getSpinner: function () {
if (!this.spinner) {
var b = document.id(this.options.spinnerTarget) ||
document.id(this.options.update);
if (this.options.useSpinner && b) {
b.set("spinner", this.options.spinnerOptions);
var a = (this.spinner = b.get("spinner"));
["complete", "exception",
"cancel"].each(function (c) {
this.addEvent(c, a.hide.bind(a));
}, this);
}
}
return this.spinner;
},
});
Element.Properties.spinner = {
set: function (a) {
var b = this.retrieve("spinner");
if (b) {
b.destroy();
}
return
this.eliminate("spinner").store("spinner:options", a);
},
get: function () {
var a = this.retrieve("spinner");
if (!a) {
a = new Spinner(this,
this.retrieve("spinner:options"));
this.store("spinner", a);
}
return a;
},
};
Element.implement({
spin: function (a) {
if (a) {
this.set("spinner", a);
}
this.get("spinner").show();
return this;
},
unspin: function () {
this.get("spinner").hide();
return this;
},
});
if (!window.Form) {
window.Form = {};
}
(function () {
Form.Request = new Class({
Binds: ["onSubmit", "onFormValidate"],
Implements: [Options, Events, Class.Occlude],
options: { requestOptions: { evalScripts: true, useSpinner: true,
emulation: false, link: "ignore" }, sendButtonClicked: true,
extraData: {}, resetForm: true },
property: "form.request",
initialize: function (b, c, a) {
this.element = document.id(b);
if (this.occlude()) {
return this.occluded;
}
this.setOptions(a).setTarget(c).attach();
},
setTarget: function (a) {
this.target = document.id(a);
if (!this.request) {
this.makeRequest();
} else {
this.request.setOptions({ update: this.target });
}
return this;
},
toElement: function () {
return this.element;
},
makeRequest: function () {
var a = this;
this.request = new Request.HTML(Object.merge({ update:
this.target, emulation: false, spinnerTarget: this.element, method:
this.element.get("method") || "post" },
this.options.requestOptions)).addEvents({
success: function (c, e, d, b) {
["complete",
"success"].each(function (f) {
a.fireEvent(f, [a.target, c, e, d, b]);
});
},
failure: function () {
a.fireEvent("complete",
arguments).fireEvent("failure", arguments);
},
exception: function () {
a.fireEvent("failure", arguments);
},
});
return this.attachReset();
},
attachReset: function () {
if (!this.options.resetForm) {
return this;
}
this.request.addEvent(
"success",
function () {
Function.attempt(
function () {
this.element.reset();
}.bind(this)
);
if (window.OverText) {
OverText.update();
}
}.bind(this)
);
return this;
},
attach: function (a) {
var c = a != false ? "addEvent" :
"removeEvent";
this.element[c]("click:relay(button,
input[type=submit])", this.saveClickedButton.bind(this));
var b = this.element.retrieve("validator");
if (b) {
b[c]("onFormValidate", this.onFormValidate);
} else {
this.element[c]("submit", this.onSubmit);
}
return this;
},
detach: function () {
return this.attach(false);
},
enable: function () {
return this.attach();
},
disable: function () {
return this.detach();
},
onFormValidate: function (c, b, a) {
if (!a) {
return;
}
var d = this.element.retrieve("validator");
if (c || (d && !d.options.stopOnFailure)) {
a.stop();
this.send();
}
},
onSubmit: function (a) {
var b = this.element.retrieve("validator");
if (b) {
this.element.removeEvent("submit",
this.onSubmit);
b.addEvent("onFormValidate",
this.onFormValidate);
this.element.validate();
return;
}
if (a) {
a.stop();
}
this.send();
},
saveClickedButton: function (b, c) {
var a = c.get("name");
if (!a || !this.options.sendButtonClicked) {
return;
}
this.options.extraData[a] = c.get("value") || true;
this.clickedCleaner = function () {
delete this.options.extraData[a];
this.clickedCleaner = function () {};
}.bind(this);
},
clickedCleaner: function () {},
send: function () {
var b = this.element.toQueryString().trim(),
a = Object.toQueryString(this.options.extraData);
if (b) {
b += "&" + a;
} else {
b = a;
}
this.fireEvent("send", [this.element,
b.parseQueryString()]);
this.request.send({ data: b, url:
this.options.requestOptions.url || this.element.get("action") });
this.clickedCleaner();
return this;
},
});
Element.implement("formUpdate", function (c, b) {
var a = this.retrieve("form.request");
if (!a) {
a = new Form.Request(this, c, b);
} else {
if (c) {
a.setTarget(c);
}
if (b) {
a.setOptions(b).makeRequest();
}
}
a.send();
return this;
});
})();
(function () {
var a = function (d) {
var b = d.options.hideInputs;
if (window.OverText) {
var c = [null];
OverText.each(function (e) {
c.include("." + e.options.labelClass);
});
if (c) {
b += c.join(", ");
}
}
return b ? d.element.getElements(b) : null;
};
Fx.Reveal = new Class({
Extends: Fx.Morph,
options: {
link: "cancel",
styles: ["padding", "border",
"margin"],
transitionOpacity: !Browser.ie6,
mode: "vertical",
display: function () {
return this.element.get("tag") != "tr"
? "block" : "table-row";
},
opacity: 1,
hideInputs: Browser.ie ? "select, input, textarea, object,
embed" : null,
},
dissolve: function () {
if (!this.hiding && !this.showing) {
if (this.element.getStyle("display") !=
"none") {
this.hiding = true;
this.showing = false;
this.hidden = true;
this.cssText = this.element.style.cssText;
var d = this.element.getComputedSize({ styles:
this.options.styles, mode: this.options.mode });
if (this.options.transitionOpacity) {
d.opacity = this.options.opacity;
}
var c = {};
Object.each(d, function (f, e) {
c[e] = [f, 0];
});
this.element.setStyles({ display:
Function.from(this.options.display).call(this), overflow:
"hidden" });
var b = a(this);
if (b) {
b.setStyle("visibility",
"hidden");
}
this.$chain.unshift(
function () {
if (this.hidden) {
this.hiding = false;
this.element.style.cssText = this.cssText;
this.element.setStyle("display",
"none");
if (b) {
b.setStyle("visibility",
"visible");
}
}
this.fireEvent("hide", this.element);
this.callChain();
}.bind(this)
);
this.start(c);
} else {
this.callChain.delay(10, this);
this.fireEvent("complete", this.element);
this.fireEvent("hide", this.element);
}
} else {
if (this.options.link == "chain") {
this.chain(this.dissolve.bind(this));
} else {
if (this.options.link == "cancel" &&
!this.hiding) {
this.cancel();
this.dissolve();
}
}
}
return this;
},
reveal: function () {
if (!this.showing && !this.hiding) {
if (this.element.getStyle("display") ==
"none") {
this.hiding = false;
this.showing = true;
this.hidden = false;
this.cssText = this.element.style.cssText;
var d;
this.element.measure(
function () {
d = this.element.getComputedSize({ styles:
this.options.styles, mode: this.options.mode });
}.bind(this)
);
if (this.options.heightOverride != null) {
d.height = this.options.heightOverride.toInt();
}
if (this.options.widthOverride != null) {
d.width = this.options.widthOverride.toInt();
}
if (this.options.transitionOpacity) {
this.element.setStyle("opacity", 0);
d.opacity = this.options.opacity;
}
var c = { height: 0, display:
Function.from(this.options.display).call(this) };
Object.each(d, function (f, e) {
c[e] = 0;
});
c.overflow = "hidden";
this.element.setStyles(c);
var b = a(this);
if (b) {
b.setStyle("visibility",
"hidden");
}
this.$chain.unshift(
function () {
this.element.style.cssText = this.cssText;
this.element.setStyle("display",
Function.from(this.options.display).call(this));
if (!this.hidden) {
this.showing = false;
}
if (b) {
b.setStyle("visibility",
"visible");
}
this.callChain();
this.fireEvent("show", this.element);
}.bind(this)
);
this.start(d);
} else {
this.callChain();
this.fireEvent("complete", this.element);
this.fireEvent("show", this.element);
}
} else {
if (this.options.link == "chain") {
this.chain(this.reveal.bind(this));
} else {
if (this.options.link == "cancel" &&
!this.showing) {
this.cancel();
this.reveal();
}
}
}
return this;
},
toggle: function () {
if (this.element.getStyle("display") ==
"none") {
this.reveal();
} else {
this.dissolve();
}
return this;
},
cancel: function () {
this.parent.apply(this, arguments);
if (this.cssText != null) {
this.element.style.cssText = this.cssText;
}
this.hiding = false;
this.showing = false;
return this;
},
});
Element.Properties.reveal = {
set: function (b) {
this.get("reveal").cancel().setOptions(b);
return this;
},
get: function () {
var b = this.retrieve("reveal");
if (!b) {
b = new Fx.Reveal(this);
this.store("reveal", b);
}
return b;
},
};
Element.Properties.dissolve = Element.Properties.reveal;
Element.implement({
reveal: function (b) {
this.get("reveal").setOptions(b).reveal();
return this;
},
dissolve: function (b) {
this.get("reveal").setOptions(b).dissolve();
return this;
},
nix: function (b) {
var c = Array.link(arguments, { destroy: Type.isBoolean,
options: Type.isObject });
this.get("reveal")
.setOptions(b)
.dissolve()
.chain(
function () {
this[c.destroy ? "destroy" :
"dispose"]();
}.bind(this)
);
return this;
},
wink: function () {
var c = Array.link(arguments, { duration: Type.isNumber,
options: Type.isObject });
var b = this.get("reveal").setOptions(c.options);
b.reveal().chain(function () {
(function () {
b.dissolve();
}.delay(c.duration || 2000));
});
},
});
})();
Form.Request.Append = new Class({
Extends: Form.Request,
options: { useReveal: true, revealOptions: {}, inject:
"bottom" },
makeRequest: function () {
this.request = new Request.HTML(Object.merge({ url:
this.element.get("action"), method:
this.element.get("method") || "post", spinnerTarget:
this.element }, this.options.requestOptions, { evalScripts: false
})).addEvents({
success: function (b, g, f, a) {
var c;
var d = Elements.from(f);
if (d.length == 1) {
c = d[0];
} else {
c = new Element("div", { styles: { display:
"none" } }).adopt(d);
}
c.inject(this.target, this.options.inject);
if (this.options.requestOptions.evalScripts) {
Browser.exec(a);
}
this.fireEvent("beforeEffect", c);
var e = function () {
this.fireEvent("success", [c, this.target, b,
g, f, a]);
}.bind(this);
if (this.options.useReveal) {
c.set("reveal",
this.options.revealOptions).get("reveal").chain(e);
c.reveal();
} else {
e();
}
}.bind(this),
failure: function (a) {
this.fireEvent("failure", a);
}.bind(this),
});
this.attachReset();
},
});
Locale.define("en-US", "FormValidator", {
required: "This field is required.",
length: "Please enter {length} characters (you entered {elLength}
characters)",
minLength: "Please enter at least {minLength} characters (you
entered {length} characters).",
maxLength: "Please enter no more than {maxLength} characters (you
entered {length} characters).",
integer: "Please enter an integer in this field. Numbers with
decimals (e.g. 1.25) are not permitted.",
numeric: 'Please enter only numeric values in this field (i.e.
"1" or "1.1" or "-1" or
"-1.1").',
digits: "Please use numbers and punctuation only in this field
(for example, a phone number with dashes or dots is permitted).",
alpha: "Please use only letters (a-z) within this field. No spaces
or other characters are allowed.",
alphanum: "Please use only letters (a-z) or numbers (0-9) in this
field. No spaces or other characters are allowed.",
dateSuchAs: "Please enter a valid date such as {date}",
dateInFormatMDY: 'Please enter a valid date such as MM/DD/YYYY
(i.e. "12/31/1999")',
email: 'Please enter a valid email address. For example
"fred@domain.com".',
url: "Please enter a valid URL such as
http://www.example.com.",
currencyDollar: "Please enter a valid $ amount. For example
$100.00 .",
oneRequired: "Please enter something for at least one of these
inputs.",
errorPrefix: "Error: ",
warningPrefix: "Warning: ",
noSpace: "There can be no spaces in this input.",
reqChkByNode: "No items are selected.",
requiredChk: "This field is required.",
reqChkByName: "Please select a {label}.",
match: "This field needs to match the {matchName} field",
startDate: "the start date",
endDate: "the end date",
currendDate: "the current date",
afterDate: "The date should be the same or after {label}.",
beforeDate: "The date should be the same or before {label}.",
startMonth: "Please select a start month",
sameMonth: "These two dates must be in the same month - you must
change one or the other.",
creditcard: "The credit card number entered is invalid. Please
check the number and try again. {length} digits entered.",
});
if (!window.Form) {
window.Form = {};
}
var InputValidator = (this.InputValidator = new Class({
Implements: [Options],
options: { errorMsg: "Validation failed.", test:
Function.from(true) },
initialize: function (b, a) {
this.setOptions(a);
this.className = b;
},
test: function (b, a) {
b = document.id(b);
return b ? this.options.test(b, a || this.getProps(b)) : false;
},
getError: function (c, a) {
c = document.id(c);
var b = this.options.errorMsg;
if (typeOf(b) == "function") {
b = b(c, a || this.getProps(c));
}
return b;
},
getProps: function (a) {
a = document.id(a);
return a ? a.get("validatorProps") : {};
},
}));
Element.Properties.validators = {
get: function () {
return (this.get("data-validators") ||
this.className).clean().split(" ");
},
};
Element.Properties.validatorProps = {
set: function (a) {
return
this.eliminate("$moo:validatorProps").store("$moo:validatorProps",
a);
},
get: function (a) {
if (a) {
this.set(a);
}
if (this.retrieve("$moo:validatorProps")) {
return this.retrieve("$moo:validatorProps");
}
if (this.getProperty("data-validator-properties") ||
this.getProperty("validatorProps")) {
try {
this.store("$moo:validatorProps",
JSON.decode(this.getProperty("validatorProps") ||
this.getProperty("data-validator-properties")));
} catch (c) {
return {};
}
} else {
var b = this.get("validators").filter(function (d) {
return d.test(":");
});
if (!b.length) {
this.store("$moo:validatorProps", {});
} else {
a = {};
b.each(function (d) {
var f = d.split(":");
if (f[1]) {
try {
a[f[0]] = JSON.decode(f[1]);
} catch (g) {}
}
});
this.store("$moo:validatorProps", a);
}
}
return this.retrieve("$moo:validatorProps");
},
};
Form.Validator = new Class({
Implements: [Options, Events],
Binds: ["onSubmit"],
options: {
fieldSelectors: "input, select, textarea",
ignoreHidden: true,
ignoreDisabled: true,
useTitles: false,
evaluateOnSubmit: true,
evaluateFieldsOnBlur: true,
evaluateFieldsOnChange: true,
serial: true,
stopOnFailure: true,
warningPrefix: function () {
return Form.Validator.getMsg("warningPrefix") ||
"Warning: ";
},
errorPrefix: function () {
return Form.Validator.getMsg("errorPrefix") ||
"Error: ";
},
},
initialize: function (b, a) {
this.setOptions(a);
this.element = document.id(b);
this.element.store("validator", this);
this.warningPrefix = Function.from(this.options.warningPrefix)();
this.errorPrefix = Function.from(this.options.errorPrefix)();
if (this.options.evaluateOnSubmit) {
this.element.addEvent("submit", this.onSubmit);
}
if (this.options.evaluateFieldsOnBlur ||
this.options.evaluateFieldsOnChange) {
this.watchFields(this.getFields());
}
},
toElement: function () {
return this.element;
},
getFields: function () {
return (this.fields =
this.element.getElements(this.options.fieldSelectors));
},
watchFields: function (a) {
a.each(function (b) {
if (this.options.evaluateFieldsOnBlur) {
b.addEvent("blur",
this.validationMonitor.pass([b, false], this));
}
if (this.options.evaluateFieldsOnChange) {
b.addEvent("change",
this.validationMonitor.pass([b, true], this));
}
}, this);
},
validationMonitor: function () {
clearTimeout(this.timer);
this.timer = this.validateField.delay(50, this, arguments);
},
onSubmit: function (a) {
if (this.validate(a)) {
this.reset();
}
},
reset: function () {
this.getFields().each(this.resetField, this);
return this;
},
validate: function (b) {
var a = this.getFields()
.map(function (c) {
return this.validateField(c, true);
}, this)
.every(function (c) {
return c;
});
this.fireEvent("formValidate", [a, this.element, b]);
if (this.options.stopOnFailure && !a && b) {
b.preventDefault();
}
return a;
},
validateField: function (j, b) {
if (this.paused) {
return true;
}
j = document.id(j);
var f = !j.hasClass("validation-failed");
var g, i;
if (this.options.serial && !b) {
g = this.element.getElement(".validation-failed");
i = this.element.getElement(".warning");
}
if (j && (!g || b ||
j.hasClass("validation-failed") || (g &&
!this.options.serial))) {
var a = j.get("validators");
var d = a.some(function (k) {
return this.getValidator(k);
}, this);
var h = [];
a.each(function (k) {
if (k && !this.test(k, j)) {
h.include(k);
}
}, this);
f = h.length === 0;
if (d && !this.hasValidator(j, "warnOnly")) {
if (f) {
j.addClass("validation-passed").removeClass("validation-failed");
this.fireEvent("elementPass", [j]);
} else {
j.addClass("validation-failed").removeClass("validation-passed");
this.fireEvent("elementFail", [j, h]);
}
}
if (!i) {
var e = a.some(function (k) {
if (k.test("^warn")) {
return this.getValidator(k.replace(/^warn-/,
""));
} else {
return null;
}
}, this);
j.removeClass("warning");
var c = a.map(function (k) {
if (k.test("^warn")) {
return this.test(k.replace(/^warn-/, ""),
j, true);
} else {
return null;
}
}, this);
}
}
return f;
},
test: function (b, d, e) {
d = document.id(d);
if ((this.options.ignoreHidden && !d.isVisible()) ||
(this.options.ignoreDisabled && d.get("disabled"))) {
return true;
}
var a = this.getValidator(b);
if (e != null) {
e = false;
}
if (this.hasValidator(d, "warnOnly")) {
e = true;
}
var c = this.hasValidator(d, "ignoreValidation") || (a ?
a.test(d) : true);
if (a && d.isVisible()) {
this.fireEvent("elementValidate", [c, d, b, e]);
}
if (e) {
return true;
}
return c;
},
hasValidator: function (b, a) {
return b.get("validators").contains(a);
},
resetField: function (a) {
a = document.id(a);
if (a) {
a.get("validators").each(function (b) {
if (b.test("^warn-")) {
b = b.replace(/^warn-/, "");
}
a.removeClass("validation-failed");
a.removeClass("warning");
a.removeClass("validation-passed");
}, this);
}
return this;
},
stop: function () {
this.paused = true;
return this;
},
start: function () {
this.paused = false;
return this;
},
ignoreField: function (a, b) {
a = document.id(a);
if (a) {
this.enforceField(a);
if (b) {
a.addClass("warnOnly");
} else {
a.addClass("ignoreValidation");
}
}
return this;
},
enforceField: function (a) {
a = document.id(a);
if (a) {
a.removeClass("warnOnly").removeClass("ignoreValidation");
}
return this;
},
});
Form.Validator.getMsg = function (a) {
return Locale.get("FormValidator." + a);
};
Form.Validator.adders = {
validators: {},
add: function (b, a) {
this.validators[b] = new InputValidator(b, a);
if (!this.initialize) {
this.implement({ validators: this.validators });
}
},
addAllThese: function (a) {
Array.mofrom(a).each(function (b) {
this.add(b[0], b[1]);
}, this);
},
getValidator: function (a) {
return this.validators[a.split(":")[0]];
},
};
Object.append(Form.Validator, Form.Validator.adders);
Form.Validator.implement(Form.Validator.adders);
Form.Validator.add("IsEmpty", {
errorMsg: false,
test: function (a) {
if (a.type == "select-one" || a.type ==
"select") {
return !(a.selectedIndex >= 0 &&
a.options[a.selectedIndex].value != "");
} else {
return a.get("value") == null ||
a.get("value").length == 0;
}
},
});
Form.Validator.addAllThese([
[
"required",
{
errorMsg: function () {
return Form.Validator.getMsg("required");
},
test: function (a) {
return
!Form.Validator.getValidator("IsEmpty").test(a);
},
},
],
[
"length",
{
errorMsg: function (a, b) {
if (typeOf(b.length) != "null") {
return
Form.Validator.getMsg("length").substitute({ length: b.length,
elLength: a.get("value").length });
} else {
return "";
}
},
test: function (a, b) {
if (typeOf(b.length) != "null") {
return a.get("value").length == b.length ||
a.get("value").length == 0;
} else {
return true;
}
},
},
],
[
"minLength",
{
errorMsg: function (a, b) {
if (typeOf(b.minLength) != "null") {
return
Form.Validator.getMsg("minLength").substitute({ minLength:
b.minLength, length: a.get("value").length });
} else {
return "";
}
},
test: function (a, b) {
if (typeOf(b.minLength) != "null") {
return a.get("value").length >=
(b.minLength || 0);
} else {
return true;
}
},
},
],
[
"maxLength",
{
errorMsg: function (a, b) {
if (typeOf(b.maxLength) != "null") {
return
Form.Validator.getMsg("maxLength").substitute({ maxLength:
b.maxLength, length: a.get("value").length });
} else {
return "";
}
},
test: function (a, b) {
return a.get("value").length <= (b.maxLength
|| 10000);
},
},
],
[
"validate-integer",
{
errorMsg: Form.Validator.getMsg.pass("integer"),
test: function (a) {
return
Form.Validator.getValidator("IsEmpty").test(a) ||
/^(-?[1-9]\d*|0)$/.test(a.get("value"));
},
},
],
[
"validate-numeric",
{
errorMsg: Form.Validator.getMsg.pass("numeric"),
test: function (a) {
return
Form.Validator.getValidator("IsEmpty").test(a) ||
/^-?(?:0$0(?=\d*\.)|[1-9]|0)\d*(\.\d+)?$/.test(a.get("value"));
},
},
],
[
"validate-digits",
{
errorMsg: Form.Validator.getMsg.pass("digits"),
test: function (a) {
return
Form.Validator.getValidator("IsEmpty").test(a) || /^[\d()
.:\-\+#]+$/.test(a.get("value"));
},
},
],
[
"validate-alpha",
{
errorMsg: Form.Validator.getMsg.pass("alpha"),
test: function (a) {
return
Form.Validator.getValidator("IsEmpty").test(a) ||
/^[a-zA-Z]+$/.test(a.get("value"));
},
},
],
[
"validate-alphanum",
{
errorMsg: Form.Validator.getMsg.pass("alphanum"),
test: function (a) {
return
Form.Validator.getValidator("IsEmpty").test(a) ||
!/\W/.test(a.get("value"));
},
},
],
[
"validate-date",
{
errorMsg: function (a, b) {
if (Date.parse) {
var c = b.dateFormat || "%x";
return
Form.Validator.getMsg("dateSuchAs").substitute({ date: new
Date().format(c) });
} else {
return
Form.Validator.getMsg("dateInFormatMDY");
}
},
test: function (e, g) {
if
(Form.Validator.getValidator("IsEmpty").test(e)) {
return true;
}
var a = Locale.getCurrent().sets.Date,
b = new RegExp([a.days, a.days_abbr, a.months,
a.months_abbr].flatten().join("|"), "i"),
i = e.get("value"),
f = i.match(/[a-z]+/gi);
if (f && !f.every(b.exec, b)) {
return false;
}
var c = Date.parse(i),
h = g.dateFormat || "%x",
d = c.format(h);
if (d != "invalid date") {
e.set("value", d);
}
return c.isValid();
},
},
],
[
"validate-email",
{
errorMsg: Form.Validator.getMsg.pass("email"),
test: function (a) {
return (
Form.Validator.getValidator("IsEmpty").test(a) ||
/^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]\.?){0,63}[a-z0-9!#$%&'*+\/=?^_`{|}~-]@(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])$/i.test(
a.get("value")
)
);
},
},
],
[
"validate-url",
{
errorMsg: Form.Validator.getMsg.pass("url"),
test: function (a) {
return
Form.Validator.getValidator("IsEmpty").test(a) ||
/^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(a.get("value"));
},
},
],
[
"validate-currency-dollar",
{
errorMsg:
Form.Validator.getMsg.pass("currencyDollar"),
test: function (a) {
return
Form.Validator.getValidator("IsEmpty").test(a) ||
/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(a.get("value"));
},
},
],
[
"validate-one-required",
{
errorMsg: Form.Validator.getMsg.pass("oneRequired"),
test: function (a, b) {
var c = document.id(b["validate-one-required"])
|| a.getParent(b["validate-one-required"]);
return c.getElements("input").some(function (d) {
if (["checkbox",
"radio"].contains(d.get("type"))) {
return d.get("checked");
}
return d.get("value");
});
},
},
],
]);
Element.Properties.validator = {
set: function (a) {
this.get("validator").setOptions(a);
},
get: function () {
var a = this.retrieve("validator");
if (!a) {
a = new Form.Validator(this);
this.store("validator", a);
}
return a;
},
};
Element.implement({
validate: function (a) {
if (a) {
this.set("validator", a);
}
return this.get("validator").validate();
},
});
Form.Validator.Inline = new Class({
Extends: Form.Validator,
options: {
showError: function (a) {
if (a.reveal) {
a.reveal();
} else {
a.setStyle("display", "block");
}
},
hideError: function (a) {
if (a.dissolve) {
a.dissolve();
} else {
a.setStyle("display", "none");
}
},
scrollToErrorsOnSubmit: true,
scrollToErrorsOnBlur: false,
scrollToErrorsOnChange: false,
scrollFxOptions: { transition: "quad:out", offset: { y:
-20 } },
},
initialize: function (b, a) {
this.parent(b, a);
this.addEvent("onElementValidate", function (g, f, e, h)
{
var d = this.getValidator(e);
if (!g && d.getError(f)) {
if (h) {
f.addClass("warning");
}
var c = this.makeAdvice(e, f, d.getError(f), h);
this.insertAdvice(c, f);
this.showAdvice(e, f);
} else {
this.hideAdvice(e, f);
}
});
},
makeAdvice: function (d, f, c, g) {
var e = g ? this.warningPrefix : this.errorPrefix;
e += this.options.useTitles ? f.title || c : c;
var a = g ? "warning-advice" :
"validation-advice";
var b = this.getAdvice(d, f);
if (b) {
b = b.set("html", e);
} else {
b = new Element("div", { html: e, styles: { display:
"none" }, id: "advice-" + d.split(":")[0] +
"-" + this.getFieldId(f) }).addClass(a);
}
f.store("$moo:advice-" + d, b);
return b;
},
getFieldId: function (a) {
return a.id ? a.id : (a.id = "input_" + a.name);
},
showAdvice: function (b, c) {
var a = this.getAdvice(b, c);
if (a && !c.retrieve("$moo:" +
this.getPropName(b)) && (a.getStyle("display") ==
"none" || a.getStyle("visiblity") == "hidden"
|| a.getStyle("opacity") == 0)) {
c.store("$moo:" + this.getPropName(b), true);
this.options.showError(a);
this.fireEvent("showAdvice", [c, a, b]);
}
},
hideAdvice: function (b, c) {
var a = this.getAdvice(b, c);
if (a && c.retrieve("$moo:" +
this.getPropName(b))) {
c.store("$moo:" + this.getPropName(b), false);
this.options.hideError(a);
this.fireEvent("hideAdvice", [c, a, b]);
}
},
getPropName: function (a) {
return "advice" + a;
},
resetField: function (a) {
a = document.id(a);
if (!a) {
return this;
}
this.parent(a);
a.get("validators").each(function (b) {
this.hideAdvice(b, a);
}, this);
return this;
},
getAllAdviceMessages: function (d, c) {
var b = [];
if (d.hasClass("ignoreValidation") && !c) {
return b;
}
var a = d.get("validators").some(function (g) {
var e = g.test("^warn-") ||
d.hasClass("warnOnly");
if (e) {
g = g.replace(/^warn-/, "");
}
var f = this.getValidator(g);
if (!f) {
return;
}
b.push({ message: f.getError(d), warnOnly: e, passed: f.test(),
validator: f });
}, this);
return b;
},
getAdvice: function (a, b) {
return b.retrieve("$moo:advice-" + a);
},
insertAdvice: function (a, c) {
var b = c.get("validatorProps");
if (!b.msgPos || !document.id(b.msgPos)) {
if (c.type && c.type.toLowerCase() ==
"radio") {
c.getParent().adopt(a);
} else {
a.inject(document.id(c), "after");
}
} else {
document.id(b.msgPos).grab(a);
}
},
validateField: function (g, f, b) {
var a = this.parent(g, f);
if (((this.options.scrollToErrorsOnSubmit && b == null) ||
b) && !a) {
var c =
document.id(this).getElement(".validation-failed");
var d = document.id(this).getParent();
while (d != document.body && d.getScrollSize().y ==
d.getSize().y) {
d = d.getParent();
}
var e = d.retrieve("$moo:fvScroller");
if (!e && window.Fx && Fx.Scroll) {
e = new Fx.Scroll(d, this.options.scrollFxOptions);
d.store("$moo:fvScroller", e);
}
if (c) {
if (e) {
e.toElement(c);
} else {
d.scrollTo(d.getScroll().x, c.getPosition(d).y - 20);
}
}
}
return a;
},
watchFields: function (a) {
a.each(function (b) {
if (this.options.evaluateFieldsOnBlur) {
b.addEvent("blur",
this.validationMonitor.pass([b, false, this.options.scrollToErrorsOnBlur],
this));
}
if (this.options.evaluateFieldsOnChange) {
b.addEvent("change",
this.validationMonitor.pass([b, true, this.options.scrollToErrorsOnChange],
this));
}
}, this);
},
});
Form.Validator.addAllThese([
[
"validate-enforce-oncheck",
{
test: function (a, b) {
var c =
a.getParent("form").retrieve("validator");
if (!c) {
return true;
}
(b.toEnforce ||
document.id(b.enforceChildrenOf).getElements("input, select,
textarea")).map(function (d) {
if (a.checked) {
c.enforceField(d);
} else {
c.ignoreField(d);
c.resetField(d);
}
});
return true;
},
},
],
[
"validate-ignore-oncheck",
{
test: function (a, b) {
var c =
a.getParent("form").retrieve("validator");
if (!c) {
return true;
}
(b.toIgnore ||
document.id(b.ignoreChildrenOf).getElements("input, select,
textarea")).each(function (d) {
if (a.checked) {
c.ignoreField(d);
c.resetField(d);
} else {
c.enforceField(d);
}
});
return true;
},
},
],
[
"validate-nospace",
{
errorMsg: function () {
return Form.Validator.getMsg("noSpace");
},
test: function (a, b) {
return !a.get("value").test(/\s/);
},
},
],
[
"validate-toggle-oncheck",
{
test: function (b, c) {
var d =
b.getParent("form").retrieve("validator");
if (!d) {
return true;
}
var a = c.toToggle ||
document.id(c.toToggleChildrenOf).getElements("input, select,
textarea");
if (!b.checked) {
a.each(function (e) {
d.ignoreField(e);
d.resetField(e);
});
} else {
a.each(function (e) {
d.enforceField(e);
});
}
return true;
},
},
],
[
"validate-reqchk-bynode",
{
errorMsg: function () {
return Form.Validator.getMsg("reqChkByNode");
},
test: function (a, b) {
return document
.id(b.nodeId)
.getElements(b.selector || "input[type=checkbox],
input[type=radio]")
.some(function (c) {
return c.checked;
});
},
},
],
[
"validate-required-check",
{
errorMsg: function (a, b) {
return b.useTitle ? a.get("title") :
Form.Validator.getMsg("requiredChk");
},
test: function (a, b) {
return !!a.checked;
},
},
],
[
"validate-reqchk-byname",
{
errorMsg: function (a, b) {
return
Form.Validator.getMsg("reqChkByName").substitute({ label: b.label
|| a.get("type") });
},
test: function (b, d) {
var c = d.groupName || b.get("name");
var a = $$(document.getElementsByName(c)).some(function (g,
f) {
return g.checked;
});
var e =
b.getParent("form").retrieve("validator");
if (a && e) {
e.resetField(b);
}
return a;
},
},
],
[
"validate-match",
{
errorMsg: function (a, b) {
return
Form.Validator.getMsg("match").substitute({ matchName:
b.matchName || document.id(b.matchInput).get("name") });
},
test: function (b, c) {
var d = b.get("value");
var a = document.id(c.matchInput) &&
document.id(c.matchInput).get("value");
return d && a ? d == a : true;
},
},
],
[
"validate-after-date",
{
errorMsg: function (a, b) {
return
Form.Validator.getMsg("afterDate").substitute({ label:
b.afterLabel || (b.afterElement ?
Form.Validator.getMsg("startDate") :
Form.Validator.getMsg("currentDate")) });
},
test: function (b, c) {
var d = document.id(c.afterElement) ?
Date.parse(document.id(c.afterElement).get("value")) : new
Date();
var a = Date.parse(b.get("value"));
return a && d ? a >= d : true;
},
},
],
[
"validate-before-date",
{
errorMsg: function (a, b) {
return
Form.Validator.getMsg("beforeDate").substitute({ label:
b.beforeLabel || (b.beforeElement ?
Form.Validator.getMsg("endDate") :
Form.Validator.getMsg("currentDate")) });
},
test: function (b, c) {
var d = Date.parse(b.get("value"));
var a = document.id(c.beforeElement) ?
Date.parse(document.id(c.beforeElement).get("value")) : new
Date();
return a && d ? a >= d : true;
},
},
],
[
"validate-custom-required",
{
errorMsg: function () {
return Form.Validator.getMsg("required");
},
test: function (a, b) {
return a.get("value") != b.emptyValue;
},
},
],
[
"validate-same-month",
{
errorMsg: function (a, b) {
var c = document.id(b.sameMonthAs) &&
document.id(b.sameMonthAs).get("value");
var d = a.get("value");
if (d != "") {
return Form.Validator.getMsg(c ? "sameMonth"
: "startMonth");
}
},
test: function (a, b) {
var d = Date.parse(a.get("value"));
var c = Date.parse(document.id(b.sameMonthAs) &&
document.id(b.sameMonthAs).get("value"));
return d && c ? d.format("%B") ==
c.format("%B") : true;
},
},
],
[
"validate-cc-num",
{
errorMsg: function (a) {
var b = a.get("value").replace(/[^0-9]/g,
"");
return
Form.Validator.getMsg("creditcard").substitute({ length: b.length
});
},
test: function (c) {
if
(Form.Validator.getValidator("IsEmpty").test(c)) {
return true;
}
var g = c.get("value");
g = g.replace(/[^0-9]/g, "");
var a = false;
if (g.test(/^4[0-9]{12}([0-9]{3})?$/)) {
a = "Visa";
} else {
if (g.test(/^5[1-5]([0-9]{14})$/)) {
a = "Master Card";
} else {
if (g.test(/^3[47][0-9]{13}$/)) {
a = "American Express";
} else {
if (g.test(/^6011[0-9]{12}$/)) {
a = "Discover";
}
}
}
}
if (a) {
var d = 0;
var e = 0;
for (var b = g.length - 1; b >= 0; --b) {
e = g.charAt(b).toInt();
if (e == 0) {
continue;
}
if ((g.length - b) % 2 == 0) {
e += e;
}
if (e > 9) {
e = e.toString().charAt(0).toInt() +
e.toString().charAt(1).toInt();
}
d += e;
}
if (d % 10 == 0) {
return true;
}
}
var f = "";
while (g != "") {
f += " " + g.substr(0, 4);
g = g.substr(4);
}
c.getParent("form").retrieve("validator").ignoreField(c);
c.set("value", f.clean());
c.getParent("form").retrieve("validator").enforceField(c);
return false;
},
},
],
]);
var OverText = new Class({
Implements: [Options, Events, Class.Occlude],
Binds: ["reposition", "assert", "focus",
"hide"],
options: { element: "label", labelClass:
"overTxtLabel", positionOptions: { position:
"upperLeft", edge: "upperLeft", offset: { x: 4, y: 2 }
}, poll: false, pollInterval: 250, wrap: false },
property: "OverText",
initialize: function (b, a) {
b = this.element = document.id(b);
if (this.occlude()) {
return this.occluded;
}
this.setOptions(a);
this.attach(b);
OverText.instances.push(this);
if (this.options.poll) {
this.poll();
}
},
toElement: function () {
return this.element;
},
attach: function () {
var b = this.element,
a = this.options,
c = a.textOverride || b.get("alt") ||
b.get("title");
if (!c) {
return this;
}
var d = (this.text = new Element(a.element, { class: a.labelClass,
styles: { lineHeight: "normal", position: "absolute",
cursor: "text" }, html: c, events: { click:
this.hide.pass(a.element == "label", this) } }).inject(
b,
"after"
));
if (a.element == "label") {
if (!b.get("id")) {
b.set("id", "input_" +
String.uniqueID());
}
d.set("for", b.get("id"));
}
if (a.wrap) {
this.textHolder = new Element("div.overTxtWrapper", {
styles: { lineHeight: "normal", position: "relative" }
}).grab(d).inject(b, "before");
}
return this.enable();
},
destroy: function () {
this.element.eliminate(this.property);
this.disable();
if (this.text) {
this.text.destroy();
}
if (this.textHolder) {
this.textHolder.destroy();
}
return this;
},
disable: function () {
this.element.removeEvents({ focus: this.focus, blur: this.assert,
change: this.assert });
window.removeEvent("resize", this.reposition);
this.hide(true, true);
return this;
},
enable: function () {
this.element.addEvents({ focus: this.focus, blur: this.assert,
change: this.assert });
window.addEvent("resize", this.reposition);
this.reposition();
return this;
},
wrap: function () {
if (this.options.element == "label") {
if (!this.element.get("id")) {
this.element.set("id", "input_" +
String.uniqueID());
}
this.text.set("for",
this.element.get("id"));
}
},
startPolling: function () {
this.pollingPaused = false;
return this.poll();
},
poll: function (a) {
if (this.poller && !a) {
return this;
}
if (a) {
clearInterval(this.poller);
} else {
this.poller = function () {
if (!this.pollingPaused) {
this.assert(true);
}
}.periodical(this.options.pollInterval, this);
}
return this;
},
stopPolling: function () {
this.pollingPaused = true;
return this.poll(true);
},
focus: function () {
if (this.text && (!this.text.isDisplayed() ||
this.element.get("disabled"))) {
return this;
}
return this.hide();
},
hide: function (c, a) {
if (this.text && this.text.isDisplayed() &&
(!this.element.get("disabled") || a)) {
this.text.hide();
this.fireEvent("textHide", [this.text,
this.element]);
this.pollingPaused = true;
if (!c) {
try {
this.element.fireEvent("focus");
this.element.focus();
} catch (b) {}
}
}
return this;
},
show: function () {
if (this.text && !this.text.isDisplayed()) {
this.text.show();
this.reposition();
this.fireEvent("textShow", [this.text,
this.element]);
this.pollingPaused = false;
}
return this;
},
test: function () {
return !this.element.get("value");
},
assert: function (a) {
return this[this.test() ? "show" : "hide"](a);
},
reposition: function () {
this.assert(true);
if (!this.element.isVisible()) {
return this.stopPolling().hide();
}
if (this.text && this.test()) {
this.text.position(Object.merge(this.options.positionOptions, {
relativeTo: this.element }));
}
return this;
},
});
OverText.instances = [];
Object.append(OverText, {
each: function (a) {
return OverText.instances.each(function (c, b) {
if (c.element && c.text) {
a.call(OverText, c, b);
}
});
},
update: function () {
return OverText.each(function (a) {
return a.reposition();
});
},
hideAll: function () {
return OverText.each(function (a) {
return a.hide(true, true);
});
},
showAll: function () {
return OverText.each(function (a) {
return a.show();
});
},
});
Fx.Elements = new Class({
Extends: Fx.CSS,
initialize: function (b, a) {
this.elements = this.subject = $$(b);
this.parent(a);
},
compute: function (g, h, j) {
var c = {};
for (var d in g) {
var a = g[d],
e = h[d],
f = (c[d] = {});
for (var b in a) {
f[b] = this.parent(a[b], e[b], j);
}
}
return c;
},
set: function (b) {
for (var c in b) {
if (!this.elements[c]) {
continue;
}
var a = b[c];
for (var d in a) {
this.render(this.elements[c], d, a[d], this.options.unit);
}
}
return this;
},
start: function (c) {
if (!this.check(c)) {
return this;
}
var h = {},
j = {};
for (var d in c) {
if (!this.elements[d]) {
continue;
}
var f = c[d],
a = (h[d] = {}),
g = (j[d] = {});
for (var b in f) {
var e = this.prepare(this.elements[d], b, f[b]);
a[b] = e.from;
g[b] = e.to;
}
}
return this.parent(h, j);
},
});
Fx.Accordion = new Class({
Extends: Fx.Elements,
options: { fixedHeight: false, fixedWidth: false, display: 0, show:
false, height: true, width: false, opacity: true, alwaysHide: false,
trigger: "click", initialDisplayFx: true, resetHeight: true },
initialize: function () {
var g = function (h) {
return h != null;
};
var f = Array.link(arguments, { container: Type.isElement, options:
Type.isObject, togglers: g, elements: g });
this.parent(f.elements, f.options);
var b = this.options,
e = (this.togglers = $$(f.togglers));
this.previous = -1;
this.internalChain = new Chain();
if (b.alwaysHide) {
this.options.link = "chain";
}
if (b.show || this.options.show === 0) {
b.display = false;
this.previous = b.show;
}
if (b.start) {
b.display = false;
b.show = false;
}
var d = (this.effects = {});
if (b.opacity) {
d.opacity = "fullOpacity";
}
if (b.width) {
d.width = b.fixedWidth ? "fullWidth" :
"offsetWidth";
}
if (b.height) {
d.height = b.fixedHeight ? "fullHeight" :
"scrollHeight";
}
for (var c = 0, a = e.length; c < a; c++) {
this.addSection(e[c], this.elements[c]);
}
this.elements.each(function (j, h) {
if (b.show === h) {
this.fireEvent("active", [e[h], j]);
} else {
for (var k in d) {
j.setStyle(k, 0);
}
}
}, this);
if (b.display || b.display === 0 || b.initialDisplayFx === false) {
this.display(b.display, b.initialDisplayFx);
}
if (b.fixedHeight !== false) {
b.resetHeight = false;
}
this.addEvent("complete",
this.internalChain.callChain.bind(this.internalChain));
},
addSection: function (g, d) {
g = document.id(g);
d = document.id(d);
this.togglers.include(g);
this.elements.include(d);
var f = this.togglers,
c = this.options,
h = f.contains(g),
a = f.indexOf(g),
b = this.display.pass(a, this);
g.store("accordion:display", b).addEvent(c.trigger, b);
if (c.height) {
d.setStyles({ "padding-top": 0,
"border-top": "none", "padding-bottom": 0,
"border-bottom": "none" });
}
if (c.width) {
d.setStyles({ "padding-left": 0,
"border-left": "none", "padding-right": 0,
"border-right": "none" });
}
d.fullOpacity = 1;
if (c.fixedWidth) {
d.fullWidth = c.fixedWidth;
}
if (c.fixedHeight) {
d.fullHeight = c.fixedHeight;
}
d.setStyle("overflow", "hidden");
if (!h) {
for (var e in this.effects) {
d.setStyle(e, 0);
}
}
return this;
},
removeSection: function (f, b) {
var e = this.togglers,
a = e.indexOf(f),
c = this.elements[a];
var d = function () {
e.erase(f);
this.elements.erase(c);
this.detach(f);
}.bind(this);
if (this.now == a || b != null) {
this.display(b != null ? b : a - 1 >= 0 ? a - 1 :
0).chain(d);
} else {
d();
}
return this;
},
detach: function (b) {
var a = function (c) {
c.removeEvent(this.options.trigger,
c.retrieve("accordion:display"));
}.bind(this);
if (!b) {
this.togglers.each(a);
} else {
a(b);
}
return this;
},
display: function (b, c) {
if (!this.check(b, c)) {
return this;
}
var h = {},
g = this.elements,
a = this.options,
f = this.effects;
if (c == null) {
c = true;
}
if (typeOf(b) == "element") {
b = g.indexOf(b);
}
if (b == this.previous && !a.alwaysHide) {
return this;
}
if (a.resetHeight) {
var e = g[this.previous];
if (e && !this.selfHidden) {
for (var d in f) {
e.setStyle(d, e[f[d]]);
}
}
}
if ((this.timer && a.link == "chain") || (b ===
this.previous && !a.alwaysHide)) {
return this;
}
this.previous = b;
this.selfHidden = false;
g.each(function (l, k) {
h[k] = {};
var j;
if (k != b) {
j = true;
} else {
if (a.alwaysHide && ((l.offsetHeight > 0
&& a.height) || (l.offsetWidth > 0 && a.width))) {
j = true;
this.selfHidden = true;
}
}
this.fireEvent(j ? "background" : "active",
[this.togglers[k], l]);
for (var m in f) {
h[k][m] = j ? 0 : l[f[m]];
}
if (!c && !j && a.resetHeight) {
h[k].height = "auto";
}
}, this);
this.internalChain.clearChain();
this.internalChain.chain(
function () {
if (a.resetHeight && !this.selfHidden) {
var i = g[b];
if (i) {
i.setStyle("height", "auto");
}
}
}.bind(this)
);
return c ? this.start(h) : this.set(h).internalChain.callChain();
},
});
Fx.Move = new Class({
Extends: Fx.Morph,
options: { relativeTo: document.body, position: "center",
edge: false, offset: { x: 0, y: 0 } },
start: function (a) {
var b = this.element,
c = b.getStyles("top", "left");
if (c.top == "auto" || c.left == "auto") {
b.setPosition(b.getPosition(b.getOffsetParent()));
}
return this.parent(b.position(Object.merge({}, this.options, a, {
returnPos: true })));
},
});
Element.Properties.move = {
set: function (a) {
this.get("move").cancel().setOptions(a);
return this;
},
get: function () {
var a = this.retrieve("move");
if (!a) {
a = new Fx.Move(this, { link: "cancel" });
this.store("move", a);
}
return a;
},
};
Element.implement({
move: function (a) {
this.get("move").start(a);
return this;
},
});
(function () {
Fx.Scroll = new Class({
Extends: Fx,
options: { offset: { x: 0, y: 0 }, wheelStops: true },
initialize: function (c, b) {
this.element = this.subject = document.id(c);
this.parent(b);
if (typeOf(this.element) != "element") {
this.element =
document.id(this.element.getDocument().body);
}
if (this.options.wheelStops) {
var d = this.element,
e = this.cancel.pass(false, this);
this.addEvent(
"start",
function () {
d.addEvent("mousewheel", e);
},
true
);
this.addEvent(
"complete",
function () {
d.removeEvent("mousewheel", e);
},
true
);
}
},
set: function () {
var b = Array.flatten(arguments);
if (Browser.firefox) {
b = [Math.round(b[0]), Math.round(b[1])];
}
this.element.scrollTo(b[0], b[1]);
return this;
},
compute: function (d, c, b) {
return [0, 1].map(function (e) {
return Fx.compute(d[e], c[e], b);
});
},
start: function (c, d) {
if (!this.check(c, d)) {
return this;
}
var b = this.element.getScroll();
return this.parent([b.x, b.y], [c, d]);
},
calculateScroll: function (g, f) {
var d = this.element,
b = d.getScrollSize(),
h = d.getScroll(),
j = d.getSize(),
c = this.options.offset,
i = { x: g, y: f };
for (var e in i) {
if (!i[e] && i[e] !== 0) {
i[e] = h[e];
}
if (typeOf(i[e]) != "number") {
i[e] = b[e] - j[e];
}
i[e] += c[e];
}
return [i.x, i.y];
},
toTop: function () {
return this.start.apply(this, this.calculateScroll(false, 0));
},
toLeft: function () {
return this.start.apply(this, this.calculateScroll(0, false));
},
toRight: function () {
return this.start.apply(this,
this.calculateScroll("right", false));
},
toBottom: function () {
return this.start.apply(this, this.calculateScroll(false,
"bottom"));
},
toElement: function (d, e) {
e = e ? Array.mofrom(e) : ["x", "y"];
var c = a(this.element) ? { x: 0, y: 0 } :
this.element.getScroll();
var b = Object.map(document.id(d).getPosition(this.element),
function (g, f) {
return e.contains(f) ? g + c[f] : false;
});
return this.start.apply(this, this.calculateScroll(b.x, b.y));
},
toElementEdge: function (d, g, e) {
g = g ? Array.mofrom(g) : ["x", "y"];
d = document.id(d);
var i = {},
f = d.getPosition(this.element),
j = d.getSize(),
h = this.element.getScroll(),
b = this.element.getSize(),
c = { x: f.x + j.x, y: f.y + j.y };
["x", "y"].each(function (k) {
if (g.contains(k)) {
if (c[k] > h[k] + b[k]) {
i[k] = c[k] - b[k];
}
if (f[k] < h[k]) {
i[k] = f[k];
}
}
if (i[k] == null) {
i[k] = h[k];
}
if (e && e[k]) {
i[k] = i[k] + e[k];
}
}, this);
if (i.x != h.x || i.y != h.y) {
this.start(i.x, i.y);
}
return this;
},
toElementCenter: function (e, f, h) {
f = f ? Array.mofrom(f) : ["x", "y"];
e = document.id(e);
var i = {},
c = e.getPosition(this.element),
d = e.getSize(),
b = this.element.getScroll(),
g = this.element.getSize();
["x", "y"].each(function (j) {
if (f.contains(j)) {
i[j] = c[j] - (g[j] - d[j]) / 2;
}
if (i[j] == null) {
i[j] = b[j];
}
if (h && h[j]) {
i[j] = i[j] + h[j];
}
}, this);
if (i.x != b.x || i.y != b.y) {
this.start(i.x, i.y);
}
return this;
},
});
function a(b) {
return /^(?:body|html)$/i.test(b.tagName);
}
})();
Fx.Slide = new Class({
Extends: Fx,
options: { mode: "vertical", wrapper: false, hideOverflow:
true, resetHeight: false },
initialize: function (b, a) {
b = this.element = this.subject = document.id(b);
this.parent(a);
a = this.options;
var d = b.retrieve("wrapper"),
c = b.getStyles("margin", "position",
"overflow");
if (a.hideOverflow) {
c = Object.append(c, { overflow: "hidden" });
}
if (a.wrapper) {
d = document.id(a.wrapper).setStyles(c);
}
if (!d) {
d = new Element("div", { styles: c }).wraps(b);
}
b.store("wrapper", d).setStyle("margin", 0);
if (b.getStyle("overflow") == "visible") {
b.setStyle("overflow", "hidden");
}
this.now = [];
this.open = true;
this.wrapper = d;
this.addEvent(
"complete",
function () {
this.open = d["offset" +
this.layout.capitalize()] != 0;
if (this.open && this.options.resetHeight) {
d.setStyle("height", "");
}
},
true
);
},
vertical: function () {
this.margin = "margin-top";
this.layout = "height";
this.offset = this.element.offsetHeight;
},
horizontal: function () {
this.margin = "margin-left";
this.layout = "width";
this.offset = this.element.offsetWidth;
},
set: function (a) {
this.element.setStyle(this.margin, a[0]);
this.wrapper.setStyle(this.layout, a[1]);
return this;
},
compute: function (c, b, a) {
return [0, 1].map(function (d) {
return Fx.compute(c[d], b[d], a);
});
},
start: function (b, e) {
if (!this.check(b, e)) {
return this;
}
this[e || this.options.mode]();
var d = this.element.getStyle(this.margin).toInt(),
c = this.wrapper.getStyle(this.layout).toInt(),
a = [
[d, c],
[0, this.offset],
],
g = [
[d, c],
[-this.offset, 0],
],
f;
switch (b) {
case "in":
f = a;
break;
case "out":
f = g;
break;
case "toggle":
f = c == 0 ? a : g;
}
return this.parent(f[0], f[1]);
},
slideIn: function (a) {
return this.start("in", a);
},
slideOut: function (a) {
return this.start("out", a);
},
hide: function (a) {
this[a || this.options.mode]();
this.open = false;
return this.set([-this.offset, 0]);
},
show: function (a) {
this[a || this.options.mode]();
this.open = true;
return this.set([0, this.offset]);
},
toggle: function (a) {
return this.start("toggle", a);
},
});
Element.Properties.slide = {
set: function (a) {
this.get("slide").cancel().setOptions(a);
return this;
},
get: function () {
var a = this.retrieve("slide");
if (!a) {
a = new Fx.Slide(this, { link: "cancel" });
this.store("slide", a);
}
return a;
},
};
Element.implement({
slide: function (d, e) {
d = d || "toggle";
var b = this.get("slide"),
a;
switch (d) {
case "hide":
b.hide(e);
break;
case "show":
b.show(e);
break;
case "toggle":
var c = this.retrieve("slide:flag", b.open);
b[c ? "slideOut" : "slideIn"](e);
this.store("slide:flag", !c);
a = true;
break;
default:
b.start(d, e);
}
if (!a) {
this.eliminate("slide:flag");
}
return this;
},
});
Fx.SmoothScroll = new Class({
Extends: Fx.Scroll,
options: { axes: ["x", "y"] },
initialize: function (c, d) {
d = d || document;
this.doc = d.getDocument();
this.parent(this.doc, c);
var e = d.getWindow(),
a = e.location.href.match(/^[^#]*/)[0] + "#",
b = $$(this.options.links || this.doc.links);
b.each(function (g) {
if (g.href.indexOf(a) != 0) {
return;
}
var f = g.href.substr(a.length);
if (f) {
this.useLink(g, f);
}
}, this);
this.addEvent(
"complete",
function () {
e.location.hash = this.anchor;
this.element.scrollTo(this.to[0], this.to[1]);
},
true
);
},
useLink: function (b, a) {
b.addEvent(
"click",
function (d) {
var c = document.id(a) ||
this.doc.getElement("a[name=" + a + "]");
if (!c) {
return;
}
d.preventDefault();
this.toElement(c, this.options.axes).chain(
function () {
this.fireEvent("scrolledTo", [b, c]);
}.bind(this)
);
this.anchor = a;
}.bind(this)
);
return this;
},
});
Fx.Sort = new Class({
Extends: Fx.Elements,
options: { mode: "vertical" },
initialize: function (b, a) {
this.parent(b, a);
this.elements.each(function (c) {
if (c.getStyle("position") == "static") {
c.setStyle("position", "relative");
}
});
this.setDefaultOrder();
},
setDefaultOrder: function () {
this.currentOrder = this.elements.map(function (b, a) {
return a;
});
},
sort: function () {
if (!this.check(arguments)) {
return this;
}
var e = Array.flatten(arguments);
var i = 0,
a = 0,
c = {},
h = {},
d = this.options.mode == "vertical";
var f = this.elements.map(function (m, k) {
var l = m.getComputedSize({ styles: ["border",
"padding", "margin"] });
var n;
if (d) {
n = { top: i, margin: l["margin-top"], height:
l.totalHeight };
i += n.height - l["margin-top"];
} else {
n = { left: a, margin: l["margin-left"], width:
l.totalWidth };
a += n.width;
}
var j = d ? "top" : "left";
h[k] = {};
var o = m.getStyle(j).toInt();
h[k][j] = o || 0;
return n;
}, this);
this.set(h);
e = e.map(function (j) {
return j.toInt();
});
if (e.length != this.elements.length) {
this.currentOrder.each(function (j) {
if (!e.contains(j)) {
e.push(j);
}
});
if (e.length > this.elements.length) {
e.splice(this.elements.length - 1, e.length -
this.elements.length);
}
}
var b = 0;
i = a = 0;
e.each(function (k) {
var j = {};
if (d) {
j.top = i - f[k].top - b;
i += f[k].height;
} else {
j.left = a - f[k].left;
a += f[k].width;
}
b = b + f[k].margin;
c[k] = j;
}, this);
var g = {};
Array.clone(e)
.sort()
.each(function (j) {
g[j] = c[j];
});
this.start(g);
this.currentOrder = e;
return this;
},
rearrangeDOM: function (a) {
a = a || this.currentOrder;
var b = this.elements[0].getParent();
var c = [];
this.elements.setStyle("opacity", 0);
a.each(function (d) {
c.push(this.elements[d].inject(b).setStyles({ top: 0, left: 0
}));
}, this);
this.elements.setStyle("opacity", 1);
this.elements = $$(c);
this.setDefaultOrder();
return this;
},
getDefaultOrder: function () {
return this.elements.map(function (b, a) {
return a;
});
},
getCurrentOrder: function () {
return this.currentOrder;
},
forward: function () {
return this.sort(this.getDefaultOrder());
},
backward: function () {
return this.sort(this.getDefaultOrder().reverse());
},
reverse: function () {
return this.sort(this.currentOrder.reverse());
},
sortByElements: function (a) {
return this.sort(
a.map(function (b) {
return this.elements.indexOf(b);
}, this)
);
},
swap: function (c, b) {
if (typeOf(c) == "element") {
c = this.elements.indexOf(c);
}
if (typeOf(b) == "element") {
b = this.elements.indexOf(b);
}
var a = Array.clone(this.currentOrder);
a[this.currentOrder.indexOf(c)] = b;
a[this.currentOrder.indexOf(b)] = c;
return this.sort(a);
},
});
var Drag = new Class({
Implements: [Events, Options],
options: { snap: 6, unit: "px", grid: false, style: true,
limit: false, handle: false, invert: false, preventDefault: false,
stopPropagation: false, modifiers: { x: "left", y:
"top" } },
initialize: function () {
var b = Array.link(arguments, {
options: Type.isObject,
element: function (c) {
return c != null;
},
});
this.element = document.id(b.element);
this.document = this.element.getDocument();
this.setOptions(b.options || {});
var a = typeOf(this.options.handle);
this.handles = (a == "array" || a ==
"collection" ? $$(this.options.handle) :
document.id(this.options.handle)) || this.element;
this.mouse = { now: {}, pos: {} };
this.value = { start: {}, now: {} };
this.selection = Browser.ie ? "selectstart" :
"mousedown";
if (Browser.ie && !Drag.ondragstartFixed) {
document.ondragstart = Function.from(false);
Drag.ondragstartFixed = true;
}
this.bound = { start: this.start.bind(this), check:
this.check.bind(this), drag: this.drag.bind(this), stop:
this.stop.bind(this), cancel: this.cancel.bind(this), eventStop:
Function.from(false) };
this.attach();
},
attach: function () {
this.handles.addEvent("mousedown", this.bound.start);
return this;
},
detach: function () {
this.handles.removeEvent("mousedown", this.bound.start);
return this;
},
start: function (a) {
var j = this.options;
if (a.rightClick) {
return;
}
if (j.preventDefault) {
a.preventDefault();
}
if (j.stopPropagation) {
a.stopPropagation();
}
this.mouse.start = a.page;
this.fireEvent("beforeStart", this.element);
var c = j.limit;
this.limit = { x: [], y: [] };
var e, g;
for (e in j.modifiers) {
if (!j.modifiers[e]) {
continue;
}
var b = this.element.getStyle(j.modifiers[e]);
if (b && !b.match(/px$/)) {
if (!g) {
g =
this.element.getCoordinates(this.element.getOffsetParent());
}
b = g[j.modifiers[e]];
}
if (j.style) {
this.value.now[e] = (b || 0).toInt();
} else {
this.value.now[e] = this.element[j.modifiers[e]];
}
if (j.invert) {
this.value.now[e] *= -1;
}
this.mouse.pos[e] = a.page[e] - this.value.now[e];
if (c && c[e]) {
var d = 2;
while (d--) {
var f = c[e][d];
if (f || f === 0) {
this.limit[e][d] = typeof f == "function"
? f() : f;
}
}
}
}
if (typeOf(this.options.grid) == "number") {
this.options.grid = { x: this.options.grid, y:
this.options.grid };
}
var h = { mousemove: this.bound.check, mouseup: this.bound.cancel
};
h[this.selection] = this.bound.eventStop;
this.document.addEvents(h);
},
check: function (a) {
if (this.options.preventDefault) {
a.preventDefault();
}
var b = Math.round(Math.sqrt(Math.pow(a.page.x -
this.mouse.start.x, 2) + Math.pow(a.page.y - this.mouse.start.y, 2)));
if (b > this.options.snap) {
this.cancel();
this.document.addEvents({ mousemove: this.bound.drag, mouseup:
this.bound.stop });
this.fireEvent("start", [this.element,
a]).fireEvent("snap", this.element);
}
},
drag: function (b) {
var a = this.options;
if (a.preventDefault) {
b.preventDefault();
}
this.mouse.now = b.page;
for (var c in a.modifiers) {
if (!a.modifiers[c]) {
continue;
}
this.value.now[c] = this.mouse.now[c] - this.mouse.pos[c];
if (a.invert) {
this.value.now[c] *= -1;
}
if (a.limit && this.limit[c]) {
if ((this.limit[c][1] || this.limit[c][1] === 0) &&
this.value.now[c] > this.limit[c][1]) {
this.value.now[c] = this.limit[c][1];
} else {
if ((this.limit[c][0] || this.limit[c][0] === 0)
&& this.value.now[c] < this.limit[c][0]) {
this.value.now[c] = this.limit[c][0];
}
}
}
if (a.grid[c]) {
this.value.now[c] -= (this.value.now[c] - (this.limit[c][0]
|| 0)) % a.grid[c];
}
if (a.style) {
this.element.setStyle(a.modifiers[c], this.value.now[c] +
a.unit);
} else {
this.element[a.modifiers[c]] = this.value.now[c];
}
}
this.fireEvent("drag", [this.element, b]);
},
cancel: function (a) {
this.document.removeEvents({ mousemove: this.bound.check, mouseup:
this.bound.cancel });
if (a) {
this.document.removeEvent(this.selection,
this.bound.eventStop);
this.fireEvent("cancel", this.element);
}
},
stop: function (b) {
var a = { mousemove: this.bound.drag, mouseup: this.bound.stop };
a[this.selection] = this.bound.eventStop;
this.document.removeEvents(a);
if (b) {
this.fireEvent("complete", [this.element, b]);
}
},
});
Element.implement({
makeResizable: function (a) {
var b = new Drag(this, Object.merge({ modifiers: { x:
"width", y: "height" } }, a));
this.store("resizer", b);
return b.addEvent(
"drag",
function () {
this.fireEvent("resize", b);
}.bind(this)
);
},
});
Drag.Move = new Class({
Extends: Drag,
options: { droppables: [], container: false, precalculate: false,
includeMargins: true, checkDroppables: true },
initialize: function (b, a) {
this.parent(b, a);
b = this.element;
this.droppables = $$(this.options.droppables);
this.container = document.id(this.options.container);
if (this.container && typeOf(this.container) !=
"element") {
this.container =
document.id(this.container.getDocument().body);
}
if (this.options.style) {
if (this.options.modifiers.x == "left" &&
this.options.modifiers.y == "top") {
var c = b.getOffsetParent(),
d = b.getStyles("left", "top");
if (c && (d.left == "auto" || d.top ==
"auto")) {
b.setPosition(b.getPosition(c));
}
}
if (b.getStyle("position") == "static") {
b.setStyle("position", "absolute");
}
}
this.addEvent("start", this.checkDroppables, true);
this.overed = null;
},
start: function (a) {
if (this.container) {
this.options.limit = this.calculateLimit();
}
if (this.options.precalculate) {
this.positions = this.droppables.map(function (b) {
return b.getCoordinates();
});
}
this.parent(a);
},
calculateLimit: function () {
var j = this.element,
e = this.container,
d = document.id(j.getOffsetParent()) || document.body,
h = e.getCoordinates(d),
c = {},
b = {},
k = {},
g = {},
m = {};
["top", "right", "bottom",
"left"].each(function (q) {
c[q] = j.getStyle("margin-" + q).toInt();
b[q] = j.getStyle("border-" + q).toInt();
k[q] = e.getStyle("margin-" + q).toInt();
g[q] = e.getStyle("border-" + q).toInt();
m[q] = d.getStyle("padding-" + q).toInt();
}, this);
var f = j.offsetWidth + c.left + c.right,
p = j.offsetHeight + c.top + c.bottom,
i = 0,
l = 0,
o = h.right - g.right - f,
a = h.bottom - g.bottom - p;
if (this.options.includeMargins) {
i += c.left;
l += c.top;
} else {
o += c.right;
a += c.bottom;
}
if (j.getStyle("position") == "relative") {
var n = j.getCoordinates(d);
n.left -= j.getStyle("left").toInt();
n.top -= j.getStyle("top").toInt();
i -= n.left;
l -= n.top;
if (e.getStyle("position") != "relative") {
i += g.left;
l += g.top;
}
o += c.left - n.left;
a += c.top - n.top;
if (e != d) {
i += k.left + m.left;
l += (Browser.ie6 || Browser.ie7 ? 0 : k.top) + m.top;
}
} else {
i -= c.left;
l -= c.top;
if (e != d) {
i += h.left + g.left;
l += h.top + g.top;
}
}
return { x: [i, o], y: [l, a] };
},
getDroppableCoordinates: function (c) {
var b = c.getCoordinates();
if (c.getStyle("position") == "fixed") {
var a = window.getScroll();
b.left += a.x;
b.right += a.x;
b.top += a.y;
b.bottom += a.y;
}
return b;
},
checkDroppables: function () {
var a = this.droppables
.filter(function (d, c) {
d = this.positions ? this.positions[c] :
this.getDroppableCoordinates(d);
var b = this.mouse.now;
return b.x > d.left && b.x < d.right
&& b.y < d.bottom && b.y > d.top;
}, this)
.getLast();
if (this.overed != a) {
if (this.overed) {
this.fireEvent("leave", [this.element,
this.overed]);
}
if (a) {
this.fireEvent("enter", [this.element, a]);
}
this.overed = a;
}
},
drag: function (a) {
this.parent(a);
if (this.options.checkDroppables && this.droppables.length)
{
this.checkDroppables();
}
},
stop: function (a) {
this.checkDroppables();
this.fireEvent("drop", [this.element, this.overed, a]);
this.overed = null;
return this.parent(a);
},
});
Element.implement({
makeDraggable: function (a) {
var b = new Drag.Move(this, a);
this.store("dragger", b);
return b;
},
});
var Slider = new Class({
Implements: [Events, Options],
Binds: ["clickedElement", "draggedKnob",
"scrolledElement"],
options: {
onTick: function (a) {
this.setKnobPosition(a);
},
initialStep: 0,
snap: false,
offset: 0,
range: false,
wheel: false,
steps: 100,
mode: "horizontal",
},
initialize: function (f, a, e) {
this.setOptions(e);
e = this.options;
this.element = document.id(f);
a = this.knob = document.id(a);
this.previousChange = this.previousEnd = this.step = -1;
var b = {},
d = { x: false, y: false };
switch (e.mode) {
case "vertical":
this.axis = "y";
this.property = "top";
this.offset = "offsetHeight";
break;
case "horizontal":
this.axis = "x";
this.property = "left";
this.offset = "offsetWidth";
}
this.setSliderDimensions();
this.setRange(e.range);
if (a.getStyle("position") == "static") {
a.setStyle("position", "relative");
}
a.setStyle(this.property, -e.offset);
d[this.axis] = this.property;
b[this.axis] = [-e.offset, this.full - e.offset];
var c = {
snap: 0,
limit: b,
modifiers: d,
onDrag: this.draggedKnob,
onStart: this.draggedKnob,
onBeforeStart: function () {
this.isDragging = true;
}.bind(this),
onCancel: function () {
this.isDragging = false;
}.bind(this),
onComplete: function () {
this.isDragging = false;
this.draggedKnob();
this.end();
}.bind(this),
};
if (e.snap) {
this.setSnap(c);
}
this.drag = new Drag(a, c);
this.attach();
if (e.initialStep != null) {
this.set(e.initialStep);
}
},
attach: function () {
this.element.addEvent("mousedown", this.clickedElement);
if (this.options.wheel) {
this.element.addEvent("mousewheel",
this.scrolledElement);
}
this.drag.attach();
return this;
},
detach: function () {
this.element.removeEvent("mousedown",
this.clickedElement).removeEvent("mousewheel",
this.scrolledElement);
this.drag.detach();
return this;
},
autosize: function () {
this.setSliderDimensions().setKnobPosition(this.toPosition(this.step));
this.drag.options.limit[this.axis] = [-this.options.offset,
this.full - this.options.offset];
if (this.options.snap) {
this.setSnap();
}
return this;
},
setSnap: function (a) {
if (!a) {
a = this.drag.options;
}
a.grid = Math.ceil(this.stepWidth);
a.limit[this.axis][1] = this.full;
return this;
},
setKnobPosition: function (a) {
if (this.options.snap) {
a = this.toPosition(this.step);
}
this.knob.setStyle(this.property, a);
return this;
},
setSliderDimensions: function () {
this.full = this.element.measure(
function () {
this.half = this.knob[this.offset] / 2;
return this.element[this.offset] - this.knob[this.offset] +
this.options.offset * 2;
}.bind(this)
);
return this;
},
set: function (a) {
if (!((this.range > 0) ^ (a < this.min))) {
a = this.min;
}
if (!((this.range > 0) ^ (a > this.max))) {
a = this.max;
}
this.step = Math.round(a);
return this.checkStep().fireEvent("tick",
this.toPosition(this.step)).end();
},
setRange: function (a, b) {
this.min = Array.pick([a[0], 0]);
this.max = Array.pick([a[1], this.options.steps]);
this.range = this.max - this.min;
this.steps = this.options.steps || this.full;
this.stepSize = Math.abs(this.range) / this.steps;
this.stepWidth = (this.stepSize * this.full) /
Math.abs(this.range);
if (a) {
this.set(Array.pick([b,
this.step]).floor(this.min).max(this.max));
}
return this;
},
clickedElement: function (c) {
if (this.isDragging || c.target == this.knob) {
return;
}
var b = this.range < 0 ? -1 : 1,
a = c.page[this.axis] - this.element.getPosition()[this.axis] -
this.half;
a = a.limit(-this.options.offset, this.full - this.options.offset);
this.step = Math.round(this.min + b * this.toStep(a));
this.checkStep().fireEvent("tick", a).end();
},
scrolledElement: function (a) {
var b = this.options.mode == "horizontal" ? a.wheel <
0 : a.wheel > 0;
this.set(this.step + (b ? -1 : 1) * this.stepSize);
a.stop();
},
draggedKnob: function () {
var b = this.range < 0 ? -1 : 1,
a = this.drag.value.now[this.axis];
a = a.limit(-this.options.offset, this.full - this.options.offset);
this.step = Math.round(this.min + b * this.toStep(a));
this.checkStep();
},
checkStep: function () {
var a = this.step;
if (this.previousChange != a) {
this.previousChange = a;
this.fireEvent("change", a);
}
return this;
},
end: function () {
var a = this.step;
if (this.previousEnd !== a) {
this.previousEnd = a;
this.fireEvent("complete", a + "");
}
return this;
},
toStep: function (a) {
var b = (((a + this.options.offset) * this.stepSize) / this.full) *
this.steps;
return this.options.steps ? Math.round((b -= b % this.stepSize)) :
b;
},
toPosition: function (a) {
return (this.full * Math.abs(this.min - a)) / (this.steps *
this.stepSize) - this.options.offset;
},
});
var Sortables = new Class({
Implements: [Events, Options],
options: { opacity: 1, clone: false, revert: false, handle: false,
dragOptions: {} },
initialize: function (a, b) {
this.setOptions(b);
this.elements = [];
this.lists = [];
this.idle = true;
this.addLists($$(document.id(a) || a));
if (!this.options.clone) {
this.options.revert = false;
}
if (this.options.revert) {
this.effect = new Fx.Morph(null, Object.merge({ duration: 250,
link: "cancel" }, this.options.revert));
}
},
attach: function () {
this.addLists(this.lists);
return this;
},
detach: function () {
this.lists = this.removeLists(this.lists);
return this;
},
addItems: function () {
Array.flatten(arguments).each(function (a) {
this.elements.push(a);
var b = a.retrieve(
"sortables:start",
function (c) {
this.start.call(this, c, a);
}.bind(this)
);
(this.options.handle ? a.getElement(this.options.handle) || a :
a).addEvent("mousedown", b);
}, this);
return this;
},
addLists: function () {
Array.flatten(arguments).each(function (a) {
this.lists.include(a);
this.addItems(a.getChildren());
}, this);
return this;
},
removeItems: function () {
return $$(
Array.flatten(arguments).map(function (a) {
this.elements.erase(a);
var b = a.retrieve("sortables:start");
(this.options.handle ? a.getElement(this.options.handle) ||
a : a).removeEvent("mousedown", b);
return a;
}, this)
);
},
removeLists: function () {
return $$(
Array.flatten(arguments).map(function (a) {
this.lists.erase(a);
this.removeItems(a.getChildren());
return a;
}, this)
);
},
getClone: function (b, a) {
if (!this.options.clone) {
return new Element(a.tagName).inject(document.body);
}
if (typeOf(this.options.clone) == "function") {
return this.options.clone.call(this, b, a, this.list);
}
var c = a
.clone(true)
.setStyles({ margin: 0, position: "absolute",
visibility: "hidden", width: a.getStyle("width") })
.addEvent("mousedown", function (d) {
a.fireEvent("mousedown", d);
});
if (c.get("html").test("radio")) {
c.getElements("input[type=radio]").each(function (d,
e) {
d.set("name", "clone_" + e);
if (d.get("checked")) {
a.getElements("input[type=radio]")[e].set("checked",
true);
}
});
}
return
c.inject(this.list).setPosition(a.getPosition(a.getOffsetParent()));
},
getDroppables: function () {
var a =
this.list.getChildren().erase(this.clone).erase(this.element);
if (!this.options.constrain) {
a.append(this.lists).erase(this.list);
}
return a;
},
insert: function (c, b) {
var a = "inside";
if (this.lists.contains(b)) {
this.list = b;
this.drag.droppables = this.getDroppables();
} else {
a = this.element.getAllPrevious().contains(b) ?
"before" : "after";
}
this.element.inject(b, a);
this.fireEvent("sort", [this.element, this.clone]);
},
start: function (b, a) {
if (!this.idle || b.rightClick || ["button",
"input", "a",
"textarea"].contains(b.target.get("tag"))) {
return;
}
this.idle = false;
this.element = a;
this.opacity = a.getStyle("opacity");
this.list = a.getParent();
this.clone = this.getClone(b, a);
this.drag = new Drag.Move(this.clone, Object.merge({ droppables:
this.getDroppables() }, this.options.dragOptions)).addEvents({
onSnap: function () {
b.stop();
this.clone.setStyle("visibility",
"visible");
this.element.setStyle("opacity",
this.options.opacity || 0);
this.fireEvent("start", [this.element,
this.clone]);
}.bind(this),
onEnter: this.insert.bind(this),
onCancel: this.end.bind(this),
onComplete: this.end.bind(this),
});
this.clone.inject(this.element, "before");
this.drag.start(b);
},
end: function () {
this.drag.detach();
this.element.setStyle("opacity", this.opacity);
if (this.effect) {
var b = this.element.getStyles("width",
"height"),
d = this.clone,
c =
d.computePosition(this.element.getPosition(this.clone.getOffsetParent()));
var a = function () {
this.removeEvent("cancel", a);
d.destroy();
};
this.effect.element = d;
this.effect.start({ top: c.top, left: c.left, width: b.width,
height: b.height, opacity: 0.25 }).addEvent("cancel",
a).chain(a);
} else {
this.clone.destroy();
}
this.reset();
},
reset: function () {
this.idle = true;
this.fireEvent("complete", this.element);
},
serialize: function () {
var c = Array.link(arguments, {
modifier: Type.isFunction,
index: function (d) {
return d != null;
},
});
var b = this.lists.map(function (d) {
return d.getChildren().map(
c.modifier ||
function (e) {
return e.get("id");
},
this
);
}, this);
var a = c.index;
if (this.lists.length == 1) {
a = 0;
}
return (a || a === 0) && a >= 0 && a <
this.lists.length ? b[a] : b;
},
});
Request.JSONP = new Class({
Implements: [Chain, Events, Options],
options: {
onRequest: function (a) {
if (this.options.log && window.console &&
console.log) {
console.log("JSONP retrieving script with url:" +
a);
}
},
onError: function (a) {
if (this.options.log && window.console &&
console.warn) {
console.warn("JSONP " + a + " will fail in
Internet Explorer, which enforces a 2083 bytes length limit on URIs");
}
},
url: "",
callbackKey: "callback",
injectScript: document.head,
data: "",
link: "ignore",
timeout: 0,
log: false,
},
initialize: function (a) {
this.setOptions(a);
},
send: function (c) {
if (!Request.prototype.check.call(this, c)) {
return this;
}
this.running = true;
var d = typeOf(c);
if (d == "string" || d == "element") {
c = { data: c };
}
c = Object.merge(this.options, c || {});
var e = c.data;
switch (typeOf(e)) {
case "element":
e = document.id(e).toQueryString();
break;
case "object":
case "hash":
e = Object.toQueryString(e);
}
var b = (this.index = Request.JSONP.counter++);
var f = c.url + (c.url.test("\\?") ? "&" :
"?") + c.callbackKey +
"=Request.JSONP.request_map.request_" + b + (e ?
"&" + e : "");
if (f.length > 2083) {
this.fireEvent("error", f);
}
Request.JSONP.request_map["request_" + b] = function () {
this.success(arguments, b);
}.bind(this);
var a = this.getScript(f).inject(c.injectScript);
this.fireEvent("request", [f, a]);
if (c.timeout) {
this.timeout.delay(c.timeout, this);
}
return this;
},
getScript: function (a) {
if (!this.script) {
this.script = new Element("script", { type:
"text/javascript", async: true, src: a });
}
return this.script;
},
success: function (b, a) {
if (!this.running) {
return;
}
this.clear().fireEvent("complete",
b).fireEvent("success", b).callChain();
},
cancel: function () {
if (this.running) {
this.clear().fireEvent("cancel");
}
return this;
},
isRunning: function () {
return !!this.running;
},
clear: function () {
this.running = false;
if (this.script) {
this.script.destroy();
this.script = null;
}
return this;
},
timeout: function () {
if (this.running) {
this.running = false;
this.fireEvent("timeout",
[this.script.get("src"), this.script])
.fireEvent("failure")
.cancel();
}
return this;
},
});
Request.JSONP.counter = 0;
Request.JSONP.request_map = {};
Request.Queue = new Class({
Implements: [Options, Events],
Binds: ["attach", "request", "complete",
"cancel", "success", "failure",
"exception"],
options: { stopOnFailure: true, autoAdvance: true, concurrent: 1,
requests: {} },
initialize: function (a) {
var b;
if (a) {
b = a.requests;
delete a.requests;
}
this.setOptions(a);
this.requests = {};
this.queue = [];
this.reqBinders = {};
if (b) {
this.addRequests(b);
}
},
addRequest: function (a, b) {
this.requests[a] = b;
this.attach(a, b);
return this;
},
addRequests: function (a) {
Object.each(
a,
function (c, b) {
this.addRequest(b, c);
},
this
);
return this;
},
getName: function (a) {
return Object.keyOf(this.requests, a);
},
attach: function (a, b) {
if (b._groupSend) {
return this;
}
["request", "complete", "cancel",
"success", "failure",
"exception"].each(function (c) {
if (!this.reqBinders[a]) {
this.reqBinders[a] = {};
}
this.reqBinders[a][c] = function () {
this["on" + c.capitalize()].apply(this, [a,
b].append(arguments));
}.bind(this);
b.addEvent(c, this.reqBinders[a][c]);
}, this);
b._groupSend = b.send;
b.send = function (c) {
this.send(a, c);
return b;
}.bind(this);
return this;
},
removeRequest: function (b) {
var a = typeOf(b) == "object" ? this.getName(b) : b;
if (!a && typeOf(a) != "string") {
return this;
}
b = this.requests[a];
if (!b) {
return this;
}
["request", "complete", "cancel",
"success", "failure",
"exception"].each(function (c) {
b.removeEvent(c, this.reqBinders[a][c]);
}, this);
b.send = b._groupSend;
delete b._groupSend;
return this;
},
getRunning: function () {
return Object.filter(this.requests, function (a) {
return a.running;
});
},
isRunning: function () {
return !!Object.keys(this.getRunning()).length;
},
send: function (b, a) {
var c = function () {
this.requests[b]._groupSend(a);
this.queue.erase(c);
}.bind(this);
c.name = b;
if (Object.keys(this.getRunning()).length >=
this.options.concurrent || (this.error &&
this.options.stopOnFailure)) {
this.queue.push(c);
} else {
c();
}
return this;
},
hasNext: function (a) {
return !a
? !!this.queue.length
: !!this.queue.filter(function (b) {
return b.name == a;
}).length;
},
resume: function () {
this.error = false;
(this.options.concurrent -
Object.keys(this.getRunning()).length).times(this.runNext, this);
return this;
},
runNext: function (a) {
if (!this.queue.length) {
return this;
}
if (!a) {
this.queue[0]();
} else {
var b;
this.queue.each(function (c) {
if (!b && c.name == a) {
b = true;
c();
}
});
}
return this;
},
runAll: function () {
this.queue.each(function (a) {
a();
});
return this;
},
clear: function (a) {
if (!a) {
this.queue.empty();
} else {
this.queue = this.queue
.map(function (b) {
if (b.name != a) {
return b;
} else {
return false;
}
})
.filter(function (b) {
return b;
});
}
return this;
},
cancel: function (a) {
this.requests[a].cancel();
return this;
},
onRequest: function () {
this.fireEvent("request", arguments);
},
onComplete: function () {
this.fireEvent("complete", arguments);
if (!this.queue.length) {
this.fireEvent("end");
}
},
onCancel: function () {
if (this.options.autoAdvance && !this.error) {
this.runNext();
}
this.fireEvent("cancel", arguments);
},
onSuccess: function () {
if (this.options.autoAdvance && !this.error) {
this.runNext();
}
this.fireEvent("success", arguments);
},
onFailure: function () {
this.error = true;
if (!this.options.stopOnFailure &&
this.options.autoAdvance) {
this.runNext();
}
this.fireEvent("failure", arguments);
},
onException: function () {
this.error = true;
if (!this.options.stopOnFailure &&
this.options.autoAdvance) {
this.runNext();
}
this.fireEvent("exception", arguments);
},
});
Request.implement({
options: { initialDelay: 5000, delay: 5000, limit: 60000 },
startTimer: function (b) {
var a = function () {
if (!this.running) {
this.send({ data: b });
}
};
this.lastDelay = this.options.initialDelay;
this.timer = a.delay(this.lastDelay, this);
this.completeCheck = function (c) {
clearTimeout(this.timer);
this.lastDelay = c ? this.options.delay : (this.lastDelay +
this.options.delay).min(this.options.limit);
this.timer = a.delay(this.lastDelay, this);
};
return this.addEvent("complete", this.completeCheck);
},
stopTimer: function () {
clearTimeout(this.timer);
return this.removeEvent("complete", this.completeCheck);
},
});
var Asset = {
javascript: function (d, b) {
if (!b) {
b = {};
}
var a = new Element("script", { src: d, type:
"text/javascript" }),
e = b.document || document,
c = b.onload || b.onLoad;
delete b.onload;
delete b.onLoad;
delete b.document;
if (c) {
if (typeof a.onreadystatechange != "undefined") {
a.addEvent("readystatechange", function () {
if (["loaded",
"complete"].contains(this.readyState)) {
c.call(this);
}
});
} else {
a.addEvent("load", c);
}
}
return a.set(b).inject(e.head);
},
css: function (d, a) {
if (!a) {
a = {};
}
var b = new Element("link", { rel:
"stylesheet", media: "screen", type:
"text/css", href: d });
var c = a.onload || a.onLoad,
e = a.document || document;
delete a.onload;
delete a.onLoad;
delete a.document;
if (c) {
b.addEvent("load", c);
}
return b.set(a).inject(e.head);
},
image: function (c, b) {
if (!b) {
b = {};
}
var d = new Image(),
a = document.id(d) || new Element("img");
["load", "abort",
"error"].each(function (e) {
var g = "on" + e,
f = "on" + e.capitalize(),
h = b[g] || b[f] || function () {};
delete b[f];
delete b[g];
d[g] = function () {
if (!d) {
return;
}
if (!a.parentNode) {
a.width = d.width;
a.height = d.height;
}
d = d.onload = d.onabort = d.onerror = null;
h.delay(1, a, a);
a.fireEvent(e, a, 1);
};
});
d.src = a.src = c;
if (d && d.complete) {
d.onload.delay(1);
}
return a.set(b);
},
images: function (c, b) {
c = Array.mofrom(c);
var d = function () {},
a = 0;
b = Object.merge({ onComplete: d, onProgress: d, onError: d,
properties: {} }, b);
return new Elements(
c.map(function (f, e) {
return Asset.image(
f,
Object.append(b.properties, {
onload: function () {
a++;
b.onProgress.call(this, a, e, f);
if (a == c.length) {
b.onComplete();
}
},
onerror: function () {
a++;
b.onError.call(this, a, e, f);
if (a == c.length) {
b.onComplete();
}
},
})
);
})
);
},
};
(function () {
var a = (this.Color = new Type("Color", function (c, d) {
if (arguments.length >= 3) {
d = "rgb";
c = Array.slice(arguments, 0, 3);
} else {
if (typeof c == "string") {
if (c.match(/rgb/)) {
c = c.rgbToHex().hexToRgb(true);
} else {
if (c.match(/hsb/)) {
c = c.hsbToRgb();
} else {
c = c.hexToRgb(true);
}
}
}
}
d = d || "rgb";
switch (d) {
case "hsb":
var b = c;
c = c.hsbToRgb();
c.hsb = b;
break;
case "hex":
c = c.hexToRgb(true);
break;
}
c.rgb = c.slice(0, 3);
c.hsb = c.hsb || c.rgbToHsb();
c.hex = c.rgbToHex();
return Object.append(c, this);
}));
a.implement({
mix: function () {
var b = Array.slice(arguments);
var d = typeOf(b.getLast()) == "number" ? b.pop() :
50;
var c = this.slice();
b.each(function (e) {
e = new a(e);
for (var f = 0; f < 3; f++) {
c[f] = Math.round((c[f] / 100) * (100 - d) + (e[f] /
100) * d);
}
});
return new a(c, "rgb");
},
invert: function () {
return new a(
this.map(function (b) {
return 255 - b;
})
);
},
setHue: function (b) {
return new a([b, this.hsb[1], this.hsb[2]], "hsb");
},
setSaturation: function (b) {
return new a([this.hsb[0], b, this.hsb[2]], "hsb");
},
setBrightness: function (b) {
return new a([this.hsb[0], this.hsb[1], b], "hsb");
},
});
this.$RGB = function (e, d, c) {
return new a([e, d, c], "rgb");
};
this.$HSB = function (e, d, c) {
return new a([e, d, c], "hsb");
};
this.$HEX = function (b) {
return new a(b, "hex");
};
Array.implement({
rgbToHsb: function () {
var c = this[0],
d = this[1],
k = this[2],
h = 0;
var j = Math.max(c, d, k),
f = Math.min(c, d, k);
var l = j - f;
var i = j / 255,
g = j != 0 ? l / j : 0;
if (g != 0) {
var e = (j - c) / l;
var b = (j - d) / l;
var m = (j - k) / l;
if (c == j) {
h = m - b;
} else {
if (d == j) {
h = 2 + e - m;
} else {
h = 4 + b - e;
}
}
h /= 6;
if (h < 0) {
h++;
}
}
return [Math.round(h * 360), Math.round(g * 100), Math.round(i
* 100)];
},
hsbToRgb: function () {
var d = Math.round((this[2] / 100) * 255);
if (this[1] == 0) {
return [d, d, d];
} else {
var b = this[0] % 360;
var g = b % 60;
var h = Math.round(((this[2] * (100 - this[1])) / 10000) *
255);
var e = Math.round(((this[2] * (6000 - this[1] * g)) /
600000) * 255);
var c = Math.round(((this[2] * (6000 - this[1] * (60 - g)))
/ 600000) * 255);
switch (Math.floor(b / 60)) {
case 0:
return [d, c, h];
case 1:
return [e, d, h];
case 2:
return [h, d, c];
case 3:
return [h, e, d];
case 4:
return [c, h, d];
case 5:
return [d, h, e];
}
}
return false;
},
});
String.implement({
rgbToHsb: function () {
var b = this.match(/\d{1,3}/g);
return b ? b.rgbToHsb() : null;
},
hsbToRgb: function () {
var b = this.match(/\d{1,3}/g);
return b ? b.hsbToRgb() : null;
},
});
})();
(function () {
this.Group = new Class({
initialize: function () {
this.instances = Array.flatten(arguments);
},
addEvent: function (e, d) {
var g = this.instances,
a = g.length,
f = a,
c = new Array(a),
b = this;
g.each(function (h, j) {
h.addEvent(e, function () {
if (!c[j]) {
f--;
}
c[j] = arguments;
if (!f) {
d.call(b, g, h, c);
f = a;
c = new Array(a);
}
});
});
},
});
})();
Hash.Cookie = new Class({
Extends: Cookie,
options: { autoSave: true },
initialize: function (b, a) {
this.parent(b, a);
this.load();
},
save: function () {
var a = JSON.encode(this.hash);
if (!a || a.length > 4096) {
return false;
}
if (a == "{}") {
this.dispose();
} else {
this.write(a);
}
return true;
},
load: function () {
this.hash = new Hash(JSON.decode(this.read(), true));
return this;
},
});
Hash.each(Hash.prototype, function (b, a) {
if (typeof b == "function") {
Hash.Cookie.implement(a, function () {
var c = b.apply(this.hash, arguments);
if (this.options.autoSave) {
this.save();
}
return c;
});
}
});
(function () {
var a = (this.Table = function () {
this.length = 0;
var c = [],
b = [];
this.set = function (e, g) {
var d = c.indexOf(e);
if (d == -1) {
var f = c.length;
c[f] = e;
b[f] = g;
this.length++;
} else {
b[d] = g;
}
return this;
};
this.get = function (e) {
var d = c.indexOf(e);
return d == -1 ? null : b[d];
};
this.erase = function (e) {
var d = c.indexOf(e);
if (d != -1) {
this.length--;
c.splice(d, 1);
return b.splice(d, 1)[0];
}
return null;
};
this.each = this.forEach = function (f, g) {
for (var e = 0, d = this.length; e < d; e++) {
f.call(g, c[e], b[e], this);
}
};
});
if (this.Type) {
new Type("Table", a);
}
})();
var HtmlTable = new Class({
Implements: [Options, Events, Class.Occlude],
options: { properties: { cellpadding: 0, cellspacing: 0, border: 0 },
rows: [], headers: [], footers: [] },
property: "HtmlTable",
initialize: function () {
var a = Array.link(arguments, { options: Type.isObject, table:
Type.isElement, id: Type.isString });
this.setOptions(a.options);
if (!a.table && a.id) {
a.table = document.id(a.id);
}
this.element = a.table || new Element("table",
this.options.properties);
if (this.occlude()) {
return this.occluded;
}
this.build();
},
build: function () {
this.element.store("HtmlTable", this);
this.body = document.id(this.element.tBodies[0]) || new
Element("tbody").inject(this.element);
$$(this.body.rows);
if (this.options.headers.length) {
this.setHeaders(this.options.headers);
} else {
this.thead = document.id(this.element.tHead);
}
if (this.thead) {
this.head = this.getHead();
}
if (this.options.footers.length) {
this.setFooters(this.options.footers);
}
this.tfoot = document.id(this.element.tFoot);
if (this.tfoot) {
this.foot = document.id(this.tfoot.rows[0]);
}
this.options.rows.each(function (a) {
this.push(a);
}, this);
},
toElement: function () {
return this.element;
},
empty: function () {
this.body.empty();
return this;
},
set: function (e, a) {
var d = e == "headers" ? "tHead" :
"tFoot",
b = d.toLowerCase();
this[b] = (document.id(this.element[d]) || new
Element(b).inject(this.element, "top")).empty();
var c = this.push(a, {}, this[b], e == "headers" ?
"th" : "td");
if (e == "headers") {
this.head = this.getHead();
} else {
this.foot = this.getHead();
}
return c;
},
getHead: function () {
var a = this.thead.rows;
return a.length > 1 ? $$(a) : a.length ? document.id(a[0]) :
false;
},
setHeaders: function (a) {
this.set("headers", a);
return this;
},
setFooters: function (a) {
this.set("footers", a);
return this;
},
update: function (d, e, a) {
var b = d.getChildren(a || "td"),
c = b.length - 1;
e.each(function (i, f) {
var j = b[f] || new Element(a || "td").inject(d),
h = (i ? i.content : "") || i,
g = typeOf(h);
if (i && i.properties) {
j.set(i.properties);
}
if (/(element(s?)|array|collection)/.test(g)) {
j.empty().adopt(h);
} else {
j.set("html", h);
}
if (f > c) {
b.push(j);
} else {
b[f] = j;
}
});
return { tr: d, tds: b };
},
push: function (e, c, d, a, b) {
if (typeOf(e) == "element" &&
e.get("tag") == "tr") {
e.inject(d || this.body, b);
return { tr: e, tds: e.getChildren("td") };
}
return this.update(new Element("tr", c).inject(d ||
this.body, b), e, a);
},
pushMany: function (d, c, e, a, b) {
return d.map(function (f) {
return this.push(f, c, e, a, b);
}, this);
},
});
["adopt", "inject", "wraps",
"grab", "replaces", "dispose"].each(function
(a) {
HtmlTable.implement(a, function () {
this.element[a].apply(this.element, arguments);
return this;
});
});
HtmlTable = Class.refactor(HtmlTable, {
options: { classZebra: "table-tr-odd", zebra: true,
zebraOnlyVisibleRows: true },
initialize: function () {
this.previous.apply(this, arguments);
if (this.occluded) {
return this.occluded;
}
if (this.options.zebra) {
this.updateZebras();
}
},
updateZebras: function () {
var a = 0;
Array.each(
this.body.rows,
function (b) {
if (!this.options.zebraOnlyVisibleRows || b.isDisplayed())
{
this.zebra(b, a++);
}
},
this
);
},
setRowStyle: function (b, a) {
if (this.previous) {
this.previous(b, a);
}
this.zebra(b, a);
},
zebra: function (b, a) {
return b[(a % 2 ? "remove" : "add") +
"Class"](this.options.classZebra);
},
push: function () {
var a = this.previous.apply(this, arguments);
if (this.options.zebra) {
this.updateZebras();
}
return a;
},
});
HtmlTable = Class.refactor(HtmlTable, {
options: {
sortIndex: 0,
sortReverse: false,
parsers: [],
defaultParser: "string",
classSortable: "table-sortable",
classHeadSort: "table-th-sort",
classHeadSortRev: "table-th-sort-rev",
classNoSort: "table-th-nosort",
classGroupHead: "table-tr-group-head",
classGroup: "table-tr-group",
classCellSort: "table-td-sort",
classSortSpan: "table-th-sort-span",
sortable: false,
thSelector: "th",
},
initialize: function () {
this.previous.apply(this, arguments);
if (this.occluded) {
return this.occluded;
}
this.sorted = { index: null, dir: 1 };
if (!this.bound) {
this.bound = {};
}
this.bound.headClick = this.headClick.bind(this);
this.sortSpans = new Elements();
if (this.options.sortable) {
this.enableSort();
if (this.options.sortIndex != null) {
this.sort(this.options.sortIndex,
this.options.sortReverse);
}
}
},
attachSorts: function (a) {
this.detachSorts();
if (a !== false) {
this.element.addEvent("click:relay(" +
this.options.thSelector + ")", this.bound.headClick);
}
},
detachSorts: function () {
this.element.removeEvents("click:relay(" +
this.options.thSelector + ")");
},
setHeaders: function () {
this.previous.apply(this, arguments);
if (this.sortEnabled) {
this.setParsers();
}
},
setParsers: function () {
this.parsers = this.detectParsers();
},
detectParsers: function () {
return this.head &&
this.head.getElements(this.options.thSelector).flatten().map(this.detectParser,
this);
},
detectParser: function (a, b) {
if (a.hasClass(this.options.classNoSort) ||
a.retrieve("htmltable-parser")) {
return a.retrieve("htmltable-parser");
}
var c = new Element("div");
c.adopt(a.childNodes).inject(a);
var f = new Element("span", { class:
this.options.classSortSpan }).inject(c, "top");
this.sortSpans.push(f);
var g = this.options.parsers[b],
e = this.body.rows,
d;
switch (typeOf(g)) {
case "function":
g = { convert: g };
d = true;
break;
case "string":
g = g;
d = true;
break;
}
if (!d) {
HtmlTable.ParserPriority.some(function (k) {
var o = HtmlTable.Parsers[k],
m = o.match;
if (!m) {
return false;
}
for (var n = 0, l = e.length; n < l; n++) {
var h = document.id(e[n].cells[b]),
p = h ? h.get("html").clean() :
"";
if (p && m.test(p)) {
g = o;
return true;
}
}
});
}
if (!g) {
g = this.options.defaultParser;
}
a.store("htmltable-parser", g);
return g;
},
headClick: function (b, a) {
if (!this.head || a.hasClass(this.options.classNoSort)) {
return;
}
return
this.sort(Array.indexOf(this.head.getElements(this.options.thSelector).flatten(),
a) % this.body.rows[0].cells.length);
},
serialize: function () {
var a = this.previous.apply(this, arguments) || {};
if (this.options.sortable) {
a.sortIndex = this.sorted.index;
a.sortReverse = this.sorted.reverse;
}
return a;
},
restore: function (a) {
if (this.options.sortable && a.sortIndex) {
this.sort(a.sortIndex, a.sortReverse);
}
this.previous.apply(this, arguments);
},
setSortedState: function (b, a) {
if (a != null) {
this.sorted.reverse = a;
} else {
if (this.sorted.index == b) {
this.sorted.reverse = !this.sorted.reverse;
} else {
this.sorted.reverse = this.sorted.index == null;
}
}
if (b != null) {
this.sorted.index = b;
}
},
setHeadSort: function (a) {
var b = $$(
!this.head.length
? this.head.cells[this.sorted.index]
: this.head
.map(function (c) {
return
c.getElements(this.options.thSelector)[this.sorted.index];
}, this)
.clean()
);
if (!b.length) {
return;
}
if (a) {
b.addClass(this.options.classHeadSort);
if (this.sorted.reverse) {
b.addClass(this.options.classHeadSortRev);
} else {
b.removeClass(this.options.classHeadSortRev);
}
} else {
b.removeClass(this.options.classHeadSort).removeClass(this.options.classHeadSortRev);
}
},
setRowSort: function (b, a) {
var e = b.length,
d = this.body,
g,
f;
while (e) {
var h = b[--e],
c = h.position,
i = d.rows[c];
if (i.disabled) {
continue;
}
if (!a) {
g = this.setGroupSort(g, i, h);
this.setRowStyle(i, e);
}
d.appendChild(i);
for (f = 0; f < e; f++) {
if (b[f].position > c) {
b[f].position--;
}
}
}
},
setRowStyle: function (b, a) {
this.previous(b, a);
b.cells[this.sorted.index].addClass(this.options.classCellSort);
},
setGroupSort: function (b, c, a) {
if (b == a.value) {
c.removeClass(this.options.classGroupHead).addClass(this.options.classGroup);
} else {
c.removeClass(this.options.classGroup).addClass(this.options.classGroupHead);
}
return a.value;
},
getParser: function () {
var a = this.parsers[this.sorted.index];
return typeOf(a) == "string" ? HtmlTable.Parsers[a] : a;
},
sort: function (c, b, e) {
if (!this.head) {
return;
}
if (!e) {
this.clearSort();
this.setSortedState(c, b);
this.setHeadSort(true);
}
var f = this.getParser();
if (!f) {
return;
}
var a;
if (!Browser.ie) {
a = this.body.getParent();
this.body.dispose();
}
var d = this.parseData(f).sort(function (h, g) {
if (h.value === g.value) {
return 0;
}
return h.value > g.value ? 1 : -1;
});
if (this.sorted.reverse == (f ==
HtmlTable.Parsers["input-checked"])) {
d.reverse(true);
}
this.setRowSort(d, e);
if (a) {
a.grab(this.body);
}
this.fireEvent("stateChanged");
return this.fireEvent("sort", [this.body,
this.sorted.index]);
},
parseData: function (a) {
return Array.map(
this.body.rows,
function (d, b) {
var c =
a.convert.call(document.id(d.cells[this.sorted.index]));
return { position: b, value: c };
},
this
);
},
clearSort: function () {
this.setHeadSort(false);
this.body.getElements("td").removeClass(this.options.classCellSort);
},
reSort: function () {
if (this.sortEnabled) {
this.sort.call(this, this.sorted.index, this.sorted.reverse);
}
return this;
},
enableSort: function () {
this.element.addClass(this.options.classSortable);
this.attachSorts(true);
this.setParsers();
this.sortEnabled = true;
return this;
},
disableSort: function () {
this.element.removeClass(this.options.classSortable);
this.attachSorts(false);
this.sortSpans.each(function (a) {
a.destroy();
});
this.sortSpans.empty();
this.sortEnabled = false;
return this;
},
});
HtmlTable.ParserPriority = ["date", "input-checked",
"input-value", "float", "number"];
HtmlTable.Parsers = {
date: {
match: /^\d{2}[-\/ ]\d{2}[-\/ ]\d{2,4}$/,
convert: function () {
var a = Date.parse(this.get("text").stripTags());
return typeOf(a) == "date" ? a.format("db")
: "";
},
type: "date",
},
"input-checked": {
match: / type="(radio|checkbox)" /,
convert: function () {
return this.getElement("input").checked;
},
},
"input-value": {
match: /<input/,
convert: function () {
return this.getElement("input").value;
},
},
number: {
match: /^\d+[^\d.,]*$/,
convert: function () {
return this.get("text").stripTags().toInt();
},
number: true,
},
numberLax: {
match: /^[^\d]+\d+$/,
convert: function () {
return this.get("text")
.replace(/[^-?^0-9]/, "")
.stripTags()
.toInt();
},
number: true,
},
float: {
match: /^[\d]+\.[\d]+/,
convert: function () {
return this.get("text")
.replace(/[^-?^\d.]/, "")
.stripTags()
.toFloat();
},
number: true,
},
floatLax: {
match: /^[^\d]+[\d]+\.[\d]+$/,
convert: function () {
return this.get("text")
.replace(/[^-?^\d.]/, "")
.stripTags();
},
number: true,
},
string: {
match: null,
convert: function () {
return this.get("text").stripTags().toLowerCase();
},
},
title: {
match: null,
convert: function () {
return this.title;
},
},
};
HtmlTable.defineParsers = function (a) {
HtmlTable.Parsers = Object.append(HtmlTable.Parsers, a);
for (var b in a) {
HtmlTable.ParserPriority.unshift(b);
}
};
(function () {
var a = (this.Keyboard = new Class({
Extends: Events,
Implements: [Options],
options: { defaultEventType: "keydown", active: false,
manager: null, events: {}, nonParsedEvents: ["activate",
"deactivate", "onactivate", "ondeactivate",
"changed", "onchanged"] },
initialize: function (f) {
if (f && f.manager) {
this._manager = f.manager;
delete f.manager;
}
this.setOptions(f);
this._setup();
},
addEvent: function (h, g, f) {
return this.parent(a.parse(h, this.options.defaultEventType,
this.options.nonParsedEvents), g, f);
},
removeEvent: function (g, f) {
return this.parent(a.parse(g, this.options.defaultEventType,
this.options.nonParsedEvents), f);
},
toggleActive: function () {
return this[this.isActive() ? "deactivate" :
"activate"]();
},
activate: function (f) {
if (f) {
if (f.isActive()) {
return this;
}
if (this._activeKB && f != this._activeKB) {
this.previous = this._activeKB;
this.previous.fireEvent("deactivate");
}
this._activeKB = f.fireEvent("activate");
a.manager.fireEvent("changed");
} else {
if (this._manager) {
this._manager.activate(this);
}
}
return this;
},
isActive: function () {
return this._manager ? this._manager._activeKB == this :
a.manager == this;
},
deactivate: function (f) {
if (f) {
if (f === this._activeKB) {
this._activeKB = null;
f.fireEvent("deactivate");
a.manager.fireEvent("changed");
}
} else {
if (this._manager) {
this._manager.deactivate(this);
}
}
return this;
},
relinquish: function () {
if (this.isActive() && this._manager &&
this._manager.previous) {
this._manager.activate(this._manager.previous);
} else {
this.deactivate();
}
return this;
},
manage: function (f) {
if (f._manager) {
f._manager.drop(f);
}
this._instances.push(f);
f._manager = this;
if (!this._activeKB) {
this.activate(f);
}
return this;
},
drop: function (f) {
f.relinquish();
this._instances.erase(f);
if (this._activeKB == f) {
if (this.previous &&
this._instances.contains(this.previous)) {
this.activate(this.previous);
} else {
this._activeKB = this._instances[0];
}
}
return this;
},
trace: function () {
a.trace(this);
},
each: function (f) {
a.each(this, f);
},
_instances: [],
_disable: function (f) {
if (this._activeKB == f) {
this._activeKB = null;
}
},
_setup: function () {
this.addEvents(this.options.events);
if (a.manager && !this._manager) {
a.manager.manage(this);
}
if (this.options.active) {
this.activate();
} else {
this.relinquish();
}
},
_handle: function (h, g) {
if (h.preventKeyboardPropagation) {
return;
}
var f = !!this._manager;
if (f && this._activeKB) {
this._activeKB._handle(h, g);
if (h.preventKeyboardPropagation) {
return;
}
}
this.fireEvent(g, h);
if (!f && this._activeKB) {
this._activeKB._handle(h, g);
}
},
}));
var b = {};
var c = ["shift", "control", "alt",
"meta"];
var e = /^(?:shift|control|ctrl|alt|meta)$/;
a.parse = function (h, g, k) {
if (k && k.contains(h.toLowerCase())) {
return h;
}
h = h.toLowerCase().replace(/^(keyup|keydown):/, function (m, l) {
g = l;
return "";
});
if (!b[h]) {
var f,
j = {};
h.split("+").each(function (l) {
if (e.test(l)) {
j[l] = true;
} else {
f = l;
}
});
j.control = j.control || j.ctrl;
var i = [];
c.each(function (l) {
if (j[l]) {
i.push(l);
}
});
if (f) {
i.push(f);
}
b[h] = i.join("+");
}
return g + ":keys(" + b[h] + ")";
};
a.each = function (f, g) {
var h = f || a.manager;
while (h) {
g.run(h);
h = h._activeKB;
}
};
a.stop = function (f) {
f.preventKeyboardPropagation = true;
};
a.manager = new a({ active: true });
a.trace = function (f) {
f = f || a.manager;
var g = window.console && console.log;
if (g) {
console.log("the following items have focus: ");
}
a.each(f, function (h) {
if (g) {
console.log(document.id(h.widget) || h.wiget || h);
}
});
};
var d = function (g) {
var f = [];
c.each(function (h) {
if (g[h]) {
f.push(h);
}
});
if (!e.test(g.key)) {
f.push(g.key);
}
a.manager._handle(g, g.type + ":keys(" +
f.join("+") + ")");
};
document.addEvents({ keyup: d, keydown: d });
})();
Keyboard.prototype.options.nonParsedEvents.combine(["rebound",
"onrebound"]);
Keyboard.implement({
addShortcut: function (b, a) {
this._shortcuts = this._shortcuts || [];
this._shortcutIndex = this._shortcutIndex || {};
a.getKeyboard = Function.from(this);
a.name = b;
this._shortcutIndex[b] = a;
this._shortcuts.push(a);
if (a.keys) {
this.addEvent(a.keys, a.handler);
}
return this;
},
addShortcuts: function (b) {
for (var a in b) {
this.addShortcut(a, b[a]);
}
return this;
},
removeShortcut: function (b) {
var a = this.getShortcut(b);
if (a && a.keys) {
this.removeEvent(a.keys, a.handler);
delete this._shortcutIndex[b];
this._shortcuts.erase(a);
}
return this;
},
removeShortcuts: function (a) {
a.each(this.removeShortcut, this);
return this;
},
getShortcuts: function () {
return this._shortcuts || [];
},
getShortcut: function (a) {
return (this._shortcutIndex || {})[a];
},
});
Keyboard.rebind = function (b, a) {
Array.mofrom(a).each(function (c) {
c.getKeyboard().removeEvent(c.keys, c.handler);
c.getKeyboard().addEvent(b, c.handler);
c.keys = b;
c.getKeyboard().fireEvent("rebound");
});
};
Keyboard.getActiveShortcuts = function (b) {
var a = [],
c = [];
Keyboard.each(b, [].push.bind(a));
a.each(function (d) {
c.extend(d.getShortcuts());
});
return c;
};
Keyboard.getShortcut = function (c, b, d) {
d = d || {};
var a = d.many ? [] : null,
e = d.many
? function (g) {
var f = g.getShortcut(c);
if (f) {
a.push(f);
}
}
: function (f) {
if (!a) {
a = f.getShortcut(c);
}
};
Keyboard.each(b, e);
return a;
};
Keyboard.getShortcuts = function (b, a) {
return Keyboard.getShortcut(b, a, { many: true });
};
HtmlTable = Class.refactor(HtmlTable, {
options: {
useKeyboard: true,
classRowSelected: "table-tr-selected",
classRowHovered: "table-tr-hovered",
classSelectable: "table-selectable",
shiftForMultiSelect: true,
allowMultiSelect: true,
selectable: false,
selectHiddenRows: false,
},
initialize: function () {
this.previous.apply(this, arguments);
if (this.occluded) {
return this.occluded;
}
this.selectedRows = new Elements();
if (!this.bound) {
this.bound = {};
}
this.bound.mouseleave = this.mouseleave.bind(this);
this.bound.clickRow = this.clickRow.bind(this);
this.bound.activateKeyboard = function () {
if (this.keyboard && this.selectEnabled) {
this.keyboard.activate();
}
}.bind(this);
if (this.options.selectable) {
this.enableSelect();
}
},
empty: function () {
this.selectNone();
return this.previous();
},
enableSelect: function () {
this.selectEnabled = true;
this.attachSelects();
this.element.addClass(this.options.classSelectable);
return this;
},
disableSelect: function () {
this.selectEnabled = false;
this.attachSelects(false);
this.element.removeClass(this.options.classSelectable);
return this;
},
push: function () {
var a = this.previous.apply(this, arguments);
this.updateSelects();
return a;
},
toggleRow: function (a) {
return this[(this.isSelected(a) ? "de" : "") +
"selectRow"](a);
},
selectRow: function (b, a) {
if (this.isSelected(b) || (!a &&
!this.body.getChildren().contains(b))) {
return;
}
if (!this.options.allowMultiSelect) {
this.selectNone();
}
if (!this.isSelected(b)) {
this.selectedRows.push(b);
b.addClass(this.options.classRowSelected);
this.fireEvent("rowFocus", [b, this.selectedRows]);
this.fireEvent("stateChanged");
}
this.focused = b;
document.clearSelection();
return this;
},
isSelected: function (a) {
return this.selectedRows.contains(a);
},
getSelected: function () {
return this.selectedRows;
},
getSelected: function () {
return this.selectedRows;
},
serialize: function () {
var a = this.previous.apply(this, arguments) || {};
if (this.options.selectable) {
a.selectedRows = this.selectedRows.map(
function (b) {
return Array.indexOf(this.body.rows, b);
}.bind(this)
);
}
return a;
},
restore: function (a) {
if (this.options.selectable && a.selectedRows) {
a.selectedRows.each(
function (b) {
this.selectRow(this.body.rows[b]);
}.bind(this)
);
}
this.previous.apply(this, arguments);
},
deselectRow: function (b, a) {
if (!this.isSelected(b) || (!a &&
!this.body.getChildren().contains(b))) {
return;
}
this.selectedRows = new
Elements(Array.mofrom(this.selectedRows).erase(b));
b.removeClass(this.options.classRowSelected);
this.fireEvent("rowUnfocus", [b, this.selectedRows]);
this.fireEvent("stateChanged");
return this;
},
selectAll: function (a) {
if (!a && !this.options.allowMultiSelect) {
return;
}
this.selectRange(0, this.body.rows.length, a);
return this;
},
selectNone: function () {
return this.selectAll(true);
},
selectRange: function (b, a, f) {
if (!this.options.allowMultiSelect && !f) {
return;
}
var g = f ? "deselectRow" : "selectRow",
e = Array.clone(this.body.rows);
if (typeOf(b) == "element") {
b = e.indexOf(b);
}
if (typeOf(a) == "element") {
a = e.indexOf(a);
}
a = a < e.length - 1 ? a : e.length - 1;
if (a < b) {
var d = b;
b = a;
a = d;
}
for (var c = b; c <= a; c++) {
if (this.options.selectHiddenRows || e[c].isDisplayed()) {
this[g](e[c], true);
}
}
return this;
},
deselectRange: function (b, a) {
this.selectRange(b, a, true);
},
getSelected: function () {
return this.selectedRows;
},
enterRow: function (a) {
if (this.hovered) {
this.hovered = this.leaveRow(this.hovered);
}
this.hovered = a.addClass(this.options.classRowHovered);
},
leaveRow: function (a) {
a.removeClass(this.options.classRowHovered);
},
updateSelects: function () {
Array.each(
this.body.rows,
function (a) {
var b = a.retrieve("binders");
if (!b && !this.selectEnabled) {
return;
}
if (!b) {
b = { mouseenter: this.enterRow.pass([a], this),
mouseleave: this.leaveRow.pass([a], this) };
a.store("binders", b);
}
if (this.selectEnabled) {
a.addEvents(b);
} else {
a.removeEvents(b);
}
},
this
);
},
shiftFocus: function (b, a) {
if (!this.focused) {
return this.selectRow(this.body.rows[0], a);
}
var c = this.getRowByOffset(b, this.options.selectHiddenRows);
if (c === null || this.focused == this.body.rows[c]) {
return this;
}
this.toggleRow(this.body.rows[c], a);
},
clickRow: function (a, b) {
var c = (a.shift || a.meta || a.control) &&
this.options.shiftForMultiSelect;
if (!c && !(a.rightClick && this.isSelected(b)
&& this.options.allowMultiSelect)) {
this.selectNone();
}
if (a.rightClick) {
this.selectRow(b);
} else {
this.toggleRow(b);
}
if (a.shift) {
this.selectRange(this.rangeStart || this.body.rows[0], b,
this.rangeStart ? !this.isSelected(b) : true);
this.focused = b;
}
this.rangeStart = b;
},
getRowByOffset: function (e, d) {
if (!this.focused) {
return 0;
}
var b = Array.indexOf(this.body.rows, this.focused);
if ((b == 0 && e < 0) || (b == this.body.rows.length - 1
&& e > 0)) {
return null;
}
if (d) {
b += e;
} else {
var a = 0,
c = 0;
if (e > 0) {
while (c < e && b < this.body.rows.length -
1) {
if (this.body.rows[++b].isDisplayed()) {
c++;
}
}
} else {
while (c > e && b > 0) {
if (this.body.rows[--b].isDisplayed()) {
c--;
}
}
}
}
return b;
},
attachSelects: function (d) {
d = d != null ? d : true;
var g = d ? "addEvents" : "removeEvents";
this.element[g]({ mouseleave: this.bound.mouseleave, click:
this.bound.activateKeyboard });
this.body[g]({ "click:relay(tr)": this.bound.clickRow,
"contextmenu:relay(tr)": this.bound.clickRow });
if (this.options.useKeyboard || this.keyboard) {
if (!this.keyboard) {
this.keyboard = new Keyboard();
}
if (!this.selectKeysDefined) {
this.selectKeysDefined = true;
var f, e;
var c = function (i) {
var h = function (j) {
clearTimeout(f);
j.preventDefault();
var k = this.body.rows[this.getRowByOffset(i,
this.options.selectHiddenRows)];
if (j.shift && k &&
this.isSelected(k)) {
this.deselectRow(this.focused);
this.focused = k;
} else {
if (k &&
(!this.options.allowMultiSelect || !j.shift)) {
this.selectNone();
}
this.shiftFocus(i, j);
}
if (e) {
f = h.delay(100, this, j);
} else {
f = function () {
e = true;
h(j);
}.delay(400);
}
}.bind(this);
return h;
}.bind(this);
var b = function () {
clearTimeout(f);
e = false;
};
this.keyboard.addEvents({ "keydown:shift+up":
c(-1), "keydown:shift+down": c(1), "keyup:shift+up": b,
"keyup:shift+down": b, "keyup:up": b,
"keyup:down": b });
var a = "";
if (this.options.allowMultiSelect &&
this.options.shiftForMultiSelect && this.options.useKeyboard) {
a = " (Shift multi-selects).";
}
this.keyboard.addShortcuts({
"Select Previous Row": { keys:
"up", shortcut: "up arrow", handler: c(-1),
description: "Select the previous row in the table." + a },
"Select Next Row": { keys: "down",
shortcut: "down arrow", handler: c(1), description: "Select
the next row in the table." + a },
});
}
this.keyboard[d ? "activate" :
"deactivate"]();
}
this.updateSelects();
},
mouseleave: function () {
if (this.hovered) {
this.leaveRow(this.hovered);
}
},
});
var Scroller = new Class({
Implements: [Events, Options],
options: {
area: 20,
velocity: 1,
onChange: function (a, b) {
this.element.scrollTo(a, b);
},
fps: 50,
},
initialize: function (b, a) {
this.setOptions(a);
this.element = document.id(b);
this.docBody = document.id(this.element.getDocument().body);
this.listener = typeOf(this.element) != "element" ?
this.docBody : this.element;
this.timer = null;
this.bound = { attach: this.attach.bind(this), detach:
this.detach.bind(this), getCoords: this.getCoords.bind(this) };
},
start: function () {
this.listener.addEvents({ mouseover: this.bound.attach, mouseleave:
this.bound.detach });
return this;
},
stop: function () {
this.listener.removeEvents({ mouseover: this.bound.attach,
mouseleave: this.bound.detach });
this.detach();
this.timer = clearInterval(this.timer);
return this;
},
attach: function () {
this.listener.addEvent("mousemove",
this.bound.getCoords);
},
detach: function () {
this.listener.removeEvent("mousemove",
this.bound.getCoords);
this.timer = clearInterval(this.timer);
},
getCoords: function (a) {
this.page = this.listener.get("tag") == "body"
? a.client : a.page;
if (!this.timer) {
this.timer = this.scroll.periodical(Math.round(1000 /
this.options.fps), this);
}
},
scroll: function () {
var c = this.element.getSize(),
a = this.element.getScroll(),
h = this.element != this.docBody ? this.element.getOffsets() :
{ x: 0, y: 0 },
d = this.element.getScrollSize(),
g = { x: 0, y: 0 },
e = this.options.area.top || this.options.area,
b = this.options.area.bottom || this.options.area;
for (var f in this.page) {
if (this.page[f] < e + h[f] && a[f] != 0) {
g[f] = (this.page[f] - e - h[f]) * this.options.velocity;
} else {
if (this.page[f] + b > c[f] + h[f] && a[f] +
c[f] != d[f]) {
g[f] = (this.page[f] - c[f] + b - h[f]) *
this.options.velocity;
}
}
g[f] = g[f].round();
}
if (g.y || g.x) {
this.fireEvent("change", [a.x + g.x, a.y + g.y]);
}
},
});
(function () {
var a = function (c, b) {
return c ? (typeOf(c) == "function" ? c(b) : b.get(c)) :
"";
};
this.Tips = new Class({
Implements: [Events, Options],
options: {
onShow: function () {
this.tip.setStyle("display", "block");
},
onHide: function () {
this.tip.setStyle("display", "none");
},
title: "title",
text: function (b) {
return b.get("rel") || b.get("href");
},
showDelay: 100,
hideDelay: 100,
className: "tip-wrap",
offset: { x: 16, y: 16 },
windowPadding: { x: 0, y: 0 },
fixed: false,
waiAria: true,
},
initialize: function () {
var b = Array.link(arguments, {
options: Type.isObject,
elements: function (c) {
return c != null;
},
});
this.setOptions(b.options);
if (b.elements) {
this.attach(b.elements);
}
this.container = new Element("div", { class:
"tip" });
if (this.options.id) {
this.container.set("id", this.options.id);
if (this.options.waiAria) {
this.attachWaiAria();
}
}
},
toElement: function () {
if (this.tip) {
return this.tip;
}
this.tip = new Element("div", { class:
this.options.className, styles: { position: "absolute", top: 0,
left: 0 } }).adopt(new Element("div", { class:
"tip-top" }), this.container, new Element("div", {
class: "tip-bottom" }));
return this.tip;
},
attachWaiAria: function () {
var b = this.options.id;
this.container.set("role", "tooltip");
if (!this.waiAria) {
this.waiAria = {
show: function (c) {
if (b) {
c.set("aria-describedby", b);
}
this.container.set("aria-hidden",
"false");
},
hide: function (c) {
if (b) {
c.erase("aria-describedby");
}
this.container.set("aria-hidden",
"true");
},
};
}
this.addEvents(this.waiAria);
},
detachWaiAria: function () {
if (this.waiAria) {
this.container.erase("role");
this.container.erase("aria-hidden");
this.removeEvents(this.waiAria);
}
},
attach: function (b) {
$$(b).each(function (d) {
var f = a(this.options.title, d),
e = a(this.options.text, d);
d.set("title",
"").store("tip:native",
f).retrieve("tip:title", f);
d.retrieve("tip:text", e);
this.fireEvent("attach", [d]);
var c = ["enter", "leave"];
if (!this.options.fixed) {
c.push("move");
}
c.each(function (h) {
var g = d.retrieve("tip:" + h);
if (!g) {
g = function (i) {
this["element" +
h.capitalize()].apply(this, [i, d]);
}.bind(this);
}
d.store("tip:" + h,
g).addEvent("mouse" + h, g);
}, this);
}, this);
return this;
},
detach: function (b) {
$$(b).each(function (d) {
["enter", "leave",
"move"].each(function (e) {
d.removeEvent("mouse" + e,
d.retrieve("tip:" + e)).eliminate("tip:" + e);
});
this.fireEvent("detach", [d]);
if (this.options.title == "title") {
var c = d.retrieve("tip:native");
if (c) {
d.set("title", c);
}
}
}, this);
return this;
},
elementEnter: function (c, b) {
clearTimeout(this.timer);
this.timer = function () {
this.container.empty();
["title", "text"].each(function (e) {
var d = b.retrieve("tip:" + e);
var f = (this["_" + e + "Element"]
= new Element("div", { class: "tip-" + e
}).inject(this.container));
if (d) {
this.fill(f, d);
}
}, this);
this.show(b);
this.position(this.options.fixed ? { page: b.getPosition()
} : c);
}.delay(this.options.showDelay, this);
},
elementLeave: function (c, b) {
clearTimeout(this.timer);
this.timer = this.hide.delay(this.options.hideDelay, this, b);
this.fireForParent(c, b);
},
setTitle: function (b) {
if (this._titleElement) {
this._titleElement.empty();
this.fill(this._titleElement, b);
}
return this;
},
setText: function (b) {
if (this._textElement) {
this._textElement.empty();
this.fill(this._textElement, b);
}
return this;
},
fireForParent: function (c, b) {
b = b.getParent();
if (!b || b == document.body) {
return;
}
if (b.retrieve("tip:enter")) {
b.fireEvent("mouseenter", c);
} else {
this.fireForParent(c, b);
}
},
elementMove: function (c, b) {
this.position(c);
},
position: function (f) {
if (!this.tip) {
document.id(this);
}
var c = window.getSize(),
b = window.getScroll(),
g = { x: this.tip.offsetWidth, y: this.tip.offsetHeight },
d = { x: "left", y: "top" },
e = { y: false, x2: false, y2: false, x: false },
h = {};
for (var i in d) {
h[d[i]] = f.page[i] + this.options.offset[i];
if (h[d[i]] < 0) {
e[i] = true;
}
if (h[d[i]] + g[i] - b[i] > c[i] -
this.options.windowPadding[i]) {
h[d[i]] = f.page[i] - this.options.offset[i] - g[i];
e[i + "2"] = true;
}
}
this.fireEvent("bound", e);
this.tip.setStyles(h);
},
fill: function (b, c) {
if (typeof c == "string") {
b.set("html", c);
} else {
b.adopt(c);
}
},
show: function (b) {
if (!this.tip) {
document.id(this);
}
if (!this.tip.getParent()) {
this.tip.inject(document.body);
}
this.fireEvent("show", [this.tip, b]);
},
hide: function (b) {
if (!this.tip) {
document.id(this);
}
this.fireEvent("hide", [this.tip, b]);
},
});
})();
(function () {
var a = { json: JSON.decode };
Locale.Set.defineParser = function (b, c) {
a[b] = c;
};
Locale.Set.from = function (d, c) {
if (instanceOf(d, Locale.Set)) {
return d;
}
if (!c && typeOf(d) == "string") {
c = "json";
}
if (a[c]) {
d = a[c](d);
}
var b = new Locale.Set();
b.sets = d.sets || {};
if (d.inherits) {
b.inherits.locales = Array.mofrom(d.inherits.locales);
b.inherits.sets = d.inherits.sets || {};
}
return b;
};
})();
Locale.define("ar", "Date", { dateOrder:
["date", "month", "year"], shortDate:
"%d/%m/%Y", shortTime: "%H:%M" });
Locale.define("ar", "FormValidator", {
required: "هذا الحقل مطلوب.",
minLength: "رجاءً إدخال {minLength} أحرف على
الأقل (تم إدخال {length} أحرف).",
maxLength: "الرجاء عدم إدخال أكثر من
{maxLength} أحرف (تم إدخال {length} أحرف).",
integer: "الرجاء إدخال عدد صحيح في هذا
الحقل. أي رقم ذو كسر عشري أو مئوي (مثال 1.25 )
غير مسموح.",
numeric: 'الرجاء إدخال قيم رقمية في هذا
الحقل (مثال "1" أو "1.1" أو "-1"
أو "-1.1").',
digits: "الرجاء أستخدام قيم رقمية
وعلامات ترقيمية فقط في هذا الحقل (مثال,
رقم هاتف مع نقطة أو شحطة)",
alpha: "الرجاء أستخدام أحرف فقط (ا-ي) في
هذا الحقل. أي فراغات أو علامات غير
مسموحة.",
alphanum: "الرجاء أستخدام أحرف فقط (ا-ي)
أو أرقام (0-9) فقط في هذا الحقل. أي فراغات أو
علامات غير مسموحة.",
dateSuchAs: "الرجاء إدخال تاريخ صحيح
كالتالي {date}",
dateInFormatMDY: "الرجاء إدخال تاريخ صحيح
(مثال, 31-12-1999)",
email: "الرجاء إدخال بريد إلكتروني
صحيح.",
url: "الرجاء إدخال عنوان إلكتروني صحيح
مثل http://www.example.com",
currencyDollar: "الرجاء إدخال قيمة $ صحيحة.
مثال, 100.00$",
oneRequired: "الرجاء إدخال قيمة في أحد هذه
الحقول على الأقل.",
errorPrefix: "خطأ: ",
warningPrefix: "تحذير: ",
});
Locale.define("ca-CA", "Date", {
months: ["Gener", "Febrer", "Març",
"Abril", "Maig", "Juny", "Juli",
"Agost", "Setembre", "Octubre",
"Novembre", "Desembre"],
months_abbr: ["gen.", "febr.", "març",
"abr.", "maig", "juny", "jul.",
"ag.", "set.", "oct.", "nov.",
"des."],
days: ["Diumenge", "Dilluns", "Dimarts",
"Dimecres", "Dijous", "Divendres",
"Dissabte"],
days_abbr: ["dg", "dl", "dt",
"dc", "dj", "dv", "ds"],
dateOrder: ["date", "month", "year"],
shortDate: "%d/%m/%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 0,
ordinal: "",
lessThanMinuteAgo: "fa menys d`un minut",
minuteAgo: "fa un minut",
minutesAgo: "fa {delta} minuts",
hourAgo: "fa un hora",
hoursAgo: "fa unes {delta} hores",
dayAgo: "fa un dia",
daysAgo: "fa {delta} dies",
lessThanMinuteUntil: "menys d`un minut des d`ara",
minuteUntil: "un minut des d`ara",
minutesUntil: "{delta} minuts des d`ara",
hourUntil: "un hora des d`ara",
hoursUntil: "unes {delta} hores des d`ara",
dayUntil: "1 dia des d`ara",
daysUntil: "{delta} dies des d`ara",
});
Locale.define("ca-CA", "FormValidator", {
required: "Aquest camp es obligatori.",
minLength: "Per favor introdueix al menys {minLength} caracters
(has introduit {length} caracters).",
maxLength: "Per favor introdueix no mes de {maxLength} caracters
(has introduit {length} caracters).",
integer: "Per favor introdueix un nombre enter en aquest camp.
Nombres amb decimals (p.e. 1,25) no estan permesos.",
numeric: 'Per favor introdueix sols valors numerics en aquest camp
(p.e. "1" o "1,1" o "-1" o
"-1,1").',
digits: "Per favor usa sols numeros i puntuacio en aquest camp
(per exemple, un nombre de telefon amb guions i punts no esta
permes).",
alpha: "Per favor utilitza lletres nomes (a-z) en aquest camp. No
s´admiteixen espais ni altres caracters.",
alphanum: "Per favor, utilitza nomes lletres (a-z) o numeros (0-9)
en aquest camp. No s´admiteixen espais ni altres caracters.",
dateSuchAs: "Per favor introdueix una data valida com
{date}",
dateInFormatMDY: 'Per favor introdueix una data valida com
DD/MM/YYYY (p.e. "31/12/1999")',
email: 'Per favor, introdueix una adreça de correu electronic
valida. Per exemple, "fred@domain.com".',
url: "Per favor introdueix una URL valida com
http://www.example.com.",
currencyDollar: "Per favor introdueix una quantitat valida de €.
Per exemple €100,00 .",
oneRequired: "Per favor introdueix alguna cosa per al menys una
d´aquestes entrades.",
errorPrefix: "Error: ",
warningPrefix: "Avis: ",
noSpace: "No poden haver espais en aquesta entrada.",
reqChkByNode: "No hi han elements seleccionats.",
requiredChk: "Aquest camp es obligatori.",
reqChkByName: "Per favor selecciona una {label}.",
match: "Aquest camp necessita coincidir amb el camp
{matchName}",
startDate: "la data de inici",
endDate: "la data de fi",
currendDate: "la data actual",
afterDate: "La data deu ser igual o posterior a {label}.",
beforeDate: "La data deu ser igual o anterior a {label}.",
startMonth: "Per favor selecciona un mes d´orige",
sameMonth: "Aquestes dos dates deuen estar dins del mateix mes -
deus canviar una o altra.",
});
(function () {
var a = function (e, d, c, b) {
if (e == 1) {
return d;
} else {
if (e == 2 || e == 3 || e == 4) {
return c;
} else {
return b;
}
}
};
Locale.define("cs-CZ", "Date", {
months: ["Leden", "Únor", "Březen",
"Duben", "Květen", "Červen",
"Červenec", "Srpen", "Září",
"Říjen", "Listopad", "Prosinec"],
months_abbr: ["ledna", "února",
"března", "dubna", "května",
"června", "července", "srpna",
"září", "října", "listopadu",
"prosince"],
days: ["Neděle", "Pondělí",
"Úterý", "Středa", "Čtvrtek",
"Pátek", "Sobota"],
days_abbr: ["ne", "po", "út",
"st", "čt", "pá", "so"],
dateOrder: ["date", "month", "year"],
shortDate: "%d.%m.%Y",
shortTime: "%H:%M",
AM: "dop.",
PM: "odp.",
firstDayOfWeek: 1,
ordinal: ".",
lessThanMinuteAgo: "před chvílí",
minuteAgo: "přibližně před minutou",
minutesAgo: function (b) {
return "před {delta} " + a(b, "minutou",
"minutami", "minutami");
},
hourAgo: "přibližně před hodinou",
hoursAgo: function (b) {
return "před {delta} " + a(b, "hodinou",
"hodinami", "hodinami");
},
dayAgo: "před dnem",
daysAgo: function (b) {
return "před {delta} " + a(b, "dnem",
"dny", "dny");
},
weekAgo: "před týdnem",
weeksAgo: function (b) {
return "před {delta} " + a(b, "týdnem",
"týdny", "týdny");
},
monthAgo: "před měsícem",
monthsAgo: function (b) {
return "před {delta} " + a(b, "měsícem",
"měsíci", "měsíci");
},
yearAgo: "před rokem",
yearsAgo: function (b) {
return "před {delta} " + a(b, "rokem",
"lety", "lety");
},
lessThanMinuteUntil: "za chvíli",
minuteUntil: "přibližně za minutu",
minutesUntil: function (b) {
return "za {delta} " + a(b, "minutu",
"minuty", "minut");
},
hourUntil: "přibližně za hodinu",
hoursUntil: function (b) {
return "za {delta} " + a(b, "hodinu",
"hodiny", "hodin");
},
dayUntil: "za den",
daysUntil: function (b) {
return "za {delta} " + a(b, "den",
"dny", "dnů");
},
weekUntil: "za týden",
weeksUntil: function (b) {
return "za {delta} " + a(b, "týden",
"týdny", "týdnů");
},
monthUntil: "za měsíc",
monthsUntil: function (b) {
return "za {delta} " + a(b, "měsíc",
"měsíce", "měsíců");
},
yearUntil: "za rok",
yearsUntil: function (b) {
return "za {delta} " + a(b, "rok",
"roky", "let");
},
});
})();
Locale.define("cs-CZ", "FormValidator", {
required: "Tato položka je povinná.",
minLength: "Zadejte prosím alespoň {minLength} znaků (napsáno
{length} znaků).",
maxLength: "Zadejte prosím méně než {maxLength} znaků
(nápsáno {length} znaků).",
integer: "Zadejte prosím celé číslo. Desetinná čísla
(např. 1.25) nejsou povolena.",
numeric: 'Zadejte jen číselné hodnoty (tj. "1" nebo
"1.1" nebo "-1" nebo "-1.1").',
digits: "Zadejte prosím pouze čísla a interpunkční
znaménka(například telefonní číslo s pomlčkami nebo tečkami je
povoleno).",
alpha: "Zadejte prosím pouze písmena (a-z). Mezery nebo jiné
znaky nejsou povoleny.",
alphanum: "Zadejte prosím pouze písmena (a-z) nebo číslice
(0-9). Mezery nebo jiné znaky nejsou povoleny.",
dateSuchAs: "Zadejte prosím platné datum jako {date}",
dateInFormatMDY: 'Zadejte prosím platné datum jako MM / DD /
RRRR (tj. "12/31/1999")',
email: 'Zadejte prosím platnou e-mailovou adresu. Například
"fred@domain.com".',
url: "Zadejte prosím platnou URL adresu jako
http://www.example.com.",
currencyDollar: "Zadejte prosím platnou částku. Například
$100.00.",
oneRequired: "Zadejte prosím alespoň jednu hodnotu pro tyto
položky.",
errorPrefix: "Chyba: ",
warningPrefix: "Upozornění: ",
noSpace: "V této položce nejsou povoleny mezery",
reqChkByNode: "Nejsou vybrány žádné položky.",
requiredChk: "Tato položka je vyžadována.",
reqChkByName: "Prosím vyberte {label}.",
match: "Tato položka se musí shodovat s položkou
{matchName}",
startDate: "datum zahájení",
endDate: "datum ukončení",
currendDate: "aktuální datum",
afterDate: "Datum by mělo být stejné nebo větší než
{label}.",
beforeDate: "Datum by mělo být stejné nebo menší než
{label}.",
startMonth: "Vyberte počáteční měsíc.",
sameMonth: "Tyto dva datumy musí být ve stejném měsíci -
změňte jeden z nich.",
creditcard: "Zadané číslo kreditní karty je neplatné. Prosím
opravte ho. Bylo zadáno {length} čísel.",
});
Locale.define("da-DK", "Date", {
months: ["Januar", "Februar", "Marts",
"April", "Maj", "Juni", "Juli",
"August", "September", "Oktober",
"November", "December"],
months_abbr: ["jan.", "feb.", "mar.",
"apr.", "maj.", "jun.", "jul.",
"aug.", "sep.", "okt.", "nov.",
"dec."],
days: ["Søndag", "Mandag", "Tirsdag",
"Onsdag", "Torsdag", "Fredag",
"Lørdag"],
days_abbr: ["søn", "man", "tir",
"ons", "tor", "fre", "lør"],
dateOrder: ["date", "month", "year"],
shortDate: "%d-%m-%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: ".",
lessThanMinuteAgo: "mindre end et minut siden",
minuteAgo: "omkring et minut siden",
minutesAgo: "{delta} minutter siden",
hourAgo: "omkring en time siden",
hoursAgo: "omkring {delta} timer siden",
dayAgo: "1 dag siden",
daysAgo: "{delta} dage siden",
weekAgo: "1 uge siden",
weeksAgo: "{delta} uger siden",
monthAgo: "1 måned siden",
monthsAgo: "{delta} måneder siden",
yearAgo: "1 år siden",
yearsAgo: "{delta} år siden",
lessThanMinuteUntil: "mindre end et minut fra nu",
minuteUntil: "omkring et minut fra nu",
minutesUntil: "{delta} minutter fra nu",
hourUntil: "omkring en time fra nu",
hoursUntil: "omkring {delta} timer fra nu",
dayUntil: "1 dag fra nu",
daysUntil: "{delta} dage fra nu",
weekUntil: "1 uge fra nu",
weeksUntil: "{delta} uger fra nu",
monthUntil: "1 måned fra nu",
monthsUntil: "{delta} måneder fra nu",
yearUntil: "1 år fra nu",
yearsUntil: "{delta} år fra nu",
});
Locale.define("da-DK", "FormValidator", {
required: "Feltet skal udfyldes.",
minLength: "Skriv mindst {minLength} tegn (du skrev {length}
tegn).",
maxLength: "Skriv maksimalt {maxLength} tegn (du skrev {length}
tegn).",
integer: "Skriv et tal i dette felt. Decimal tal (f.eks. 1.25) er
ikke tilladt.",
numeric: 'Skriv kun tal i dette felt (i.e. "1" eller
"1.1" eller "-1" eller "-1.1").',
digits: "Skriv kun tal og tegnsætning i dette felt (eksempel, et
telefon nummer med bindestreg eller punktum er tilladt).",
alpha: "Skriv kun bogstaver (a-z) i dette felt. Mellemrum og andre
tegn er ikke tilladt.",
alphanum: "Skriv kun bogstaver (a-z) eller tal (0-9) i dette felt.
Mellemrum og andre tegn er ikke tilladt.",
dateSuchAs: "Skriv en gyldig dato som {date}",
dateInFormatMDY: 'Skriv dato i formatet DD-MM-YYYY (f.eks.
"31-12-1999")',
email: 'Skriv en gyldig e-mail adresse. F.eks
"fred@domain.com".',
url: 'Skriv en gyldig URL adresse. F.eks
"http://www.example.com".',
currencyDollar: "Skriv et gldigt beløb. F.eks Kr.100.00 .",
oneRequired: "Et eller flere af felterne i denne formular skal
udfyldes.",
errorPrefix: "Fejl: ",
warningPrefix: "Advarsel: ",
noSpace: "Der må ikke benyttes mellemrum i dette felt.",
reqChkByNode: "Foretag et valg.",
requiredChk: "Dette felt skal udfyldes.",
reqChkByName: "Vælg en {label}.",
match: "Dette felt skal matche {matchName} feltet",
startDate: "start dato",
endDate: "slut dato",
currendDate: "dags dato",
afterDate: "Datoen skal være større end eller lig med
{label}.",
beforeDate: "Datoen skal være mindre end eller lig med
{label}.",
startMonth: "Vælg en start måned",
sameMonth: "De valgte datoer skal være i samme måned - skift en
af dem.",
});
Locale.define("de-DE", "Date", {
months: ["Januar", "Februar", "März",
"April", "Mai", "Juni", "Juli",
"August", "September", "Oktober",
"November", "Dezember"],
months_abbr: ["Jan", "Feb", "Mär",
"Apr", "Mai", "Jun", "Jul",
"Aug", "Sep", "Okt", "Nov",
"Dez"],
days: ["Sonntag", "Montag", "Dienstag",
"Mittwoch", "Donnerstag", "Freitag",
"Samstag"],
days_abbr: ["So.", "Mo.", "Di.",
"Mi.", "Do.", "Fr.", "Sa."],
dateOrder: ["date", "month", "year"],
shortDate: "%d.%m.%Y",
shortTime: "%H:%M",
AM: "vormittags",
PM: "nachmittags",
firstDayOfWeek: 1,
ordinal: ".",
lessThanMinuteAgo: "vor weniger als einer Minute",
minuteAgo: "vor einer Minute",
minutesAgo: "vor {delta} Minuten",
hourAgo: "vor einer Stunde",
hoursAgo: "vor {delta} Stunden",
dayAgo: "vor einem Tag",
daysAgo: "vor {delta} Tagen",
weekAgo: "vor einer Woche",
weeksAgo: "vor {delta} Wochen",
monthAgo: "vor einem Monat",
monthsAgo: "vor {delta} Monaten",
yearAgo: "vor einem Jahr",
yearsAgo: "vor {delta} Jahren",
lessThanMinuteUntil: "in weniger als einer Minute",
minuteUntil: "in einer Minute",
minutesUntil: "in {delta} Minuten",
hourUntil: "in ca. einer Stunde",
hoursUntil: "in ca. {delta} Stunden",
dayUntil: "in einem Tag",
daysUntil: "in {delta} Tagen",
weekUntil: "in einer Woche",
weeksUntil: "in {delta} Wochen",
monthUntil: "in einem Monat",
monthsUntil: "in {delta} Monaten",
yearUntil: "in einem Jahr",
yearsUntil: "in {delta} Jahren",
});
Locale.define("de-CH").inherit("de-DE",
"Date");
Locale.define("de-CH", "FormValidator", {
required: "Dieses Feld ist obligatorisch.",
minLength: "Geben Sie bitte mindestens {minLength} Zeichen ein
(Sie haben {length} Zeichen eingegeben).",
maxLength: "Bitte geben Sie nicht mehr als {maxLength} Zeichen ein
(Sie haben {length} Zeichen eingegeben).",
integer: "Geben Sie bitte eine ganze Zahl ein. Dezimalzahlen (z.B.
1.25) sind nicht erlaubt.",
numeric: "Geben Sie bitte nur Zahlenwerte in dieses Eingabefeld
ein (z.B. "1", "1.1",
"-1" oder "-1.1").",
digits: "Benutzen Sie bitte nur Zahlen und Satzzeichen in diesem
Eingabefeld (erlaubt ist z.B. eine Telefonnummer mit Bindestrichen und
Punkten).",
alpha: "Benutzen Sie bitte nur Buchstaben (a-z) in diesem Feld.
Leerzeichen und andere Zeichen sind nicht erlaubt.",
alphanum: "Benutzen Sie bitte nur Buchstaben (a-z) und Zahlen
(0-9) in diesem Eingabefeld. Leerzeichen und andere Zeichen sind nicht
erlaubt.",
dateSuchAs: "Geben Sie bitte ein gültiges Datum ein. Wie
zum Beispiel {date}",
dateInFormatMDY: "Geben Sie bitte ein gültiges Datum ein.
Wie zum Beispiel TT.MM.JJJJ (z.B. "31.12.1999")",
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.
Wie zum Beispiel "maria@bernasconi.ch".",
url: "Geben Sie bitte eine gültige URL ein. Wie zum
Beispiel http://www.example.com.",
currencyDollar: "Geben Sie bitte einen gültigen Betrag in
Schweizer Franken ein. Wie zum Beispiel 100.00 CHF .",
oneRequired: "Machen Sie für mindestens eines der
Eingabefelder einen Eintrag.",
errorPrefix: "Fehler: ",
warningPrefix: "Warnung: ",
noSpace: "In diesem Eingabefeld darf kein Leerzeichen sein.",
reqChkByNode: "Es wurden keine Elemente gewählt.",
requiredChk: "Dieses Feld ist obligatorisch.",
reqChkByName: "Bitte wählen Sie ein {label}.",
match: "Dieses Eingabefeld muss mit dem Feld {matchName}
übereinstimmen.",
startDate: "Das Anfangsdatum",
endDate: "Das Enddatum",
currendDate: "Das aktuelle Datum",
afterDate: "Das Datum sollte zur gleichen Zeit oder
später sein {label}.",
beforeDate: "Das Datum sollte zur gleichen Zeit oder
früher sein {label}.",
startMonth: "Wählen Sie bitte einen Anfangsmonat",
sameMonth: "Diese zwei Datumsangaben müssen im selben
Monat sein - Sie müssen eine von beiden verändern.",
creditcard: "Die eingegebene Kreditkartennummer ist
ungültig. Bitte überprüfen Sie diese und
versuchen Sie es erneut. {length} Zahlen eingegeben.",
});
Locale.define("de-DE", "FormValidator", {
required: "Dieses Eingabefeld muss ausgefüllt werden.",
minLength: "Geben Sie bitte mindestens {minLength} Zeichen ein
(Sie haben nur {length} Zeichen eingegeben).",
maxLength: "Geben Sie bitte nicht mehr als {maxLength} Zeichen ein
(Sie haben {length} Zeichen eingegeben).",
integer: 'Geben Sie in diesem Eingabefeld bitte eine ganze Zahl
ein. Dezimalzahlen (z.B. "1.25") sind nicht erlaubt.',
numeric: 'Geben Sie in diesem Eingabefeld bitte nur Zahlenwerte
(z.B. "1", "1.1", "-1" oder "-1.1")
ein.',
digits: "Geben Sie in diesem Eingabefeld bitte nur Zahlen und
Satzzeichen ein (z.B. eine Telefonnummer mit Bindestrichen und Punkten ist
erlaubt).",
alpha: "Geben Sie in diesem Eingabefeld bitte nur Buchstaben (a-z)
ein. Leerzeichen und andere Zeichen sind nicht erlaubt.",
alphanum: "Geben Sie in diesem Eingabefeld bitte nur Buchstaben
(a-z) und Zahlen (0-9) ein. Leerzeichen oder andere Zeichen sind nicht
erlaubt.",
dateSuchAs: 'Geben Sie bitte ein gültiges Datum ein (z.B.
"{date}").',
dateInFormatMDY: 'Geben Sie bitte ein gültiges Datum im Format
TT.MM.JJJJ ein (z.B. "31.12.1999").',
email: 'Geben Sie bitte eine gültige E-Mail-Adresse ein (z.B.
"max@mustermann.de").',
url: 'Geben Sie bitte eine gültige URL ein (z.B.
"http://www.example.com").',
currencyDollar: "Geben Sie bitte einen gültigen Betrag in EURO
ein (z.B. 100.00€).",
oneRequired: "Bitte füllen Sie mindestens ein Eingabefeld
aus.",
errorPrefix: "Fehler: ",
warningPrefix: "Warnung: ",
noSpace: "Es darf kein Leerzeichen in diesem Eingabefeld
sein.",
reqChkByNode: "Es wurden keine Elemente gewählt.",
requiredChk: "Dieses Feld muss ausgefüllt werden.",
reqChkByName: "Bitte wählen Sie ein {label}.",
match: "Dieses Eingabefeld muss mit dem {matchName} Eingabefeld
übereinstimmen.",
startDate: "Das Anfangsdatum",
endDate: "Das Enddatum",
currendDate: "Das aktuelle Datum",
afterDate: "Das Datum sollte zur gleichen Zeit oder später sein
als {label}.",
beforeDate: "Das Datum sollte zur gleichen Zeit oder früher sein
als {label}.",
startMonth: "Wählen Sie bitte einen Anfangsmonat",
sameMonth: "Diese zwei Datumsangaben müssen im selben Monat sein
- Sie müssen eines von beiden verändern.",
creditcard: "Die eingegebene Kreditkartennummer ist ungültig.
Bitte überprüfen Sie diese und versuchen Sie es erneut. {length} Zahlen
eingegeben.",
});
Locale.define("EU", "Number", { decimal: ",",
group: ".", currency: { prefix: "€ " } });
Locale.define("de-DE").inherit("EU",
"Number");
Locale.define("en-GB", "Date", { dateOrder:
["date", "month", "year"], shortDate:
"%d/%m/%Y", shortTime: "%H:%M"
}).inherit("en-US", "Date");
Locale.define("es-ES", "Date", {
months: ["Enero", "Febrero", "Marzo",
"Abril", "Mayo", "Junio", "Julio",
"Agosto", "Septiembre", "Octubre",
"Noviembre", "Diciembre"],
months_abbr: ["ene", "feb", "mar",
"abr", "may", "jun", "jul",
"ago", "sep", "oct", "nov",
"dic"],
days: ["Domingo", "Lunes", "Martes",
"Miércoles", "Jueves", "Viernes",
"Sábado"],
days_abbr: ["dom", "lun", "mar",
"mié", "juv", "vie", "sáb"],
dateOrder: ["date", "month", "year"],
shortDate: "%d/%m/%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "",
lessThanMinuteAgo: "hace menos de un minuto",
minuteAgo: "hace un minuto",
minutesAgo: "hace {delta} minutos",
hourAgo: "hace una hora",
hoursAgo: "hace unas {delta} horas",
dayAgo: "hace un día",
daysAgo: "hace {delta} días",
weekAgo: "hace una semana",
weeksAgo: "hace unas {delta} semanas",
monthAgo: "hace un mes",
monthsAgo: "hace {delta} meses",
yearAgo: "hace un año",
yearsAgo: "hace {delta} años",
lessThanMinuteUntil: "menos de un minuto desde ahora",
minuteUntil: "un minuto desde ahora",
minutesUntil: "{delta} minutos desde ahora",
hourUntil: "una hora desde ahora",
hoursUntil: "unas {delta} horas desde ahora",
dayUntil: "un día desde ahora",
daysUntil: "{delta} días desde ahora",
weekUntil: "una semana desde ahora",
weeksUntil: "unas {delta} semanas desde ahora",
monthUntil: "un mes desde ahora",
monthsUntil: "{delta} meses desde ahora",
yearUntil: "un año desde ahora",
yearsUntil: "{delta} años desde ahora",
});
Locale.define("es-AR").inherit("es-ES",
"Date");
Locale.define("es-AR", "FormValidator", {
required: "Este campo es obligatorio.",
minLength: "Por favor ingrese al menos {minLength} caracteres (ha
ingresado {length} caracteres).",
maxLength: "Por favor no ingrese más de {maxLength} caracteres
(ha ingresado {length} caracteres).",
integer: "Por favor ingrese un número entero en este campo.
Números con decimales (p.e. 1,25) no se permiten.",
numeric: 'Por favor ingrese solo valores numéricos en este campo
(p.e. "1" o "1,1" o "-1" o
"-1,1").',
digits: "Por favor use sólo números y puntuación en este campo
(por ejemplo, un número de teléfono con guiones y/o puntos no está
permitido).",
alpha: "Por favor use sólo letras (a-z) en este campo. No se
permiten espacios ni otros caracteres.",
alphanum: "Por favor, usa sólo letras (a-z) o números (0-9) en
este campo. No se permiten espacios u otros caracteres.",
dateSuchAs: "Por favor ingrese una fecha válida como
{date}",
dateInFormatMDY: 'Por favor ingrese una fecha válida, utulizando
el formato DD/MM/YYYY (p.e. "31/12/1999")',
email: 'Por favor, ingrese una dirección de e-mail válida. Por
ejemplo, "fred@dominio.com".',
url: "Por favor ingrese una URL válida como
http://www.example.com.",
currencyDollar: "Por favor ingrese una cantidad válida de pesos.
Por ejemplo $100,00 .",
oneRequired: "Por favor ingrese algo para por lo menos una de
estas entradas.",
errorPrefix: "Error: ",
warningPrefix: "Advertencia: ",
noSpace: "No se permiten espacios en este campo.",
reqChkByNode: "No hay elementos seleccionados.",
requiredChk: "Este campo es obligatorio.",
reqChkByName: "Por favor selecciona una {label}.",
match: "Este campo necesita coincidir con el campo
{matchName}",
startDate: "la fecha de inicio",
endDate: "la fecha de fin",
currendDate: "la fecha actual",
afterDate: "La fecha debe ser igual o posterior a {label}.",
beforeDate: "La fecha debe ser igual o anterior a {label}.",
startMonth: "Por favor selecciona un mes de origen",
sameMonth: "Estas dos fechas deben estar en el mismo mes - debes
cambiar una u otra.",
});
Locale.define("es-ES", "FormValidator", {
required: "Este campo es obligatorio.",
minLength: "Por favor introduce al menos {minLength} caracteres
(has introducido {length} caracteres).",
maxLength: "Por favor introduce no más de {maxLength}
caracteres (has introducido {length} caracteres).",
integer: "Por favor introduce un número entero en este
campo. Números con decimales (p.e. 1,25) no se permiten.",
numeric: 'Por favor introduce solo valores numéricos en
este campo (p.e. "1" o "1,1" o "-1" o
"-1,1").',
digits: "Por favor usa solo números y
puntuación en este campo (por ejemplo, un número de
teléfono con guiones y puntos no esta permitido).",
alpha: "Por favor usa letras solo (a-z) en este campo. No se
admiten espacios ni otros caracteres.",
alphanum: "Por favor, usa solo letras (a-z) o números
(0-9) en este campo. No se admiten espacios ni otros caracteres.",
dateSuchAs: "Por favor introduce una fecha válida como
{date}",
dateInFormatMDY: 'Por favor introduce una fecha válida
como DD/MM/YYYY (p.e. "31/12/1999")',
email: 'Por favor, introduce una dirección de email
válida. Por ejemplo, "fred@domain.com".',
url: "Por favor introduce una URL válida como
http://www.example.com.",
currencyDollar: "Por favor introduce una cantidad
válida de €. Por ejemplo €100,00 .",
oneRequired: "Por favor introduce algo para por lo menos una de
estas entradas.",
errorPrefix: "Error: ",
warningPrefix: "Aviso: ",
noSpace: "No pueden haber espacios en esta entrada.",
reqChkByNode: "No hay elementos seleccionados.",
requiredChk: "Este campo es obligatorio.",
reqChkByName: "Por favor selecciona una {label}.",
match: "Este campo necesita coincidir con el campo
{matchName}",
startDate: "la fecha de inicio",
endDate: "la fecha de fin",
currendDate: "la fecha actual",
afterDate: "La fecha debe ser igual o posterior a {label}.",
beforeDate: "La fecha debe ser igual o anterior a {label}.",
startMonth: "Por favor selecciona un mes de origen",
sameMonth: "Estas dos fechas deben estar en el mismo mes - debes
cambiar una u otra.",
});
Locale.define("et-EE", "Date", {
months: ["jaanuar", "veebruar", "märts",
"aprill", "mai", "juuni", "juuli",
"august", "september", "oktoober",
"november", "detsember"],
months_abbr: ["jaan", "veebr", "märts",
"apr", "mai", "juuni", "juuli",
"aug", "sept", "okt", "nov",
"dets"],
days: ["pühapäev", "esmaspäev",
"teisipäev", "kolmapäev", "neljapäev",
"reede", "laupäev"],
days_abbr: ["pühap", "esmasp", "teisip",
"kolmap", "neljap", "reede",
"laup"],
dateOrder: ["month", "date", "year"],
shortDate: "%m.%d.%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "",
lessThanMinuteAgo: "vähem kui minut aega tagasi",
minuteAgo: "umbes minut aega tagasi",
minutesAgo: "{delta} minutit tagasi",
hourAgo: "umbes tund aega tagasi",
hoursAgo: "umbes {delta} tundi tagasi",
dayAgo: "1 päev tagasi",
daysAgo: "{delta} päeva tagasi",
weekAgo: "1 nädal tagasi",
weeksAgo: "{delta} nädalat tagasi",
monthAgo: "1 kuu tagasi",
monthsAgo: "{delta} kuud tagasi",
yearAgo: "1 aasta tagasi",
yearsAgo: "{delta} aastat tagasi",
lessThanMinuteUntil: "vähem kui minuti aja pärast",
minuteUntil: "umbes minuti aja pärast",
minutesUntil: "{delta} minuti pärast",
hourUntil: "umbes tunni aja pärast",
hoursUntil: "umbes {delta} tunni pärast",
dayUntil: "1 päeva pärast",
daysUntil: "{delta} päeva pärast",
weekUntil: "1 nädala pärast",
weeksUntil: "{delta} nädala pärast",
monthUntil: "1 kuu pärast",
monthsUntil: "{delta} kuu pärast",
yearUntil: "1 aasta pärast",
yearsUntil: "{delta} aasta pärast",
});
Locale.define("et-EE", "FormValidator", {
required: "Väli peab olema täidetud.",
minLength: "Palun sisestage vähemalt {minLength} tähte (te
sisestasite {length} tähte).",
maxLength: "Palun ärge sisestage rohkem kui {maxLength} tähte
(te sisestasite {length} tähte).",
integer: "Palun sisestage väljale täisarv. Kümnendarvud
(näiteks 1.25) ei ole lubatud.",
numeric: 'Palun sisestage ainult numbreid väljale (näiteks
"1", "1.1", "-1" või
"-1.1").',
digits: "Palun kasutage ainult numbreid ja kirjavahemärke
(telefoninumbri sisestamisel on lubatud kasutada kriipse ja punkte).",
alpha: "Palun kasutage ainult tähti (a-z). Tühikud ja teised
sümbolid on keelatud.",
alphanum: "Palun kasutage ainult tähti (a-z) või numbreid (0-9).
Tühikud ja teised sümbolid on keelatud.",
dateSuchAs: "Palun sisestage kehtiv kuupäev kujul {date}",
dateInFormatMDY: 'Palun sisestage kehtiv kuupäev kujul MM.DD.YYYY
(näiteks: "12.31.1999").',
email: 'Palun sisestage kehtiv e-maili aadress (näiteks:
"fred@domain.com").',
url: "Palun sisestage kehtiv URL (näiteks:
http://www.example.com).",
currencyDollar: "Palun sisestage kehtiv $ summa (näiteks:
$100.00).",
oneRequired: "Palun sisestage midagi vähemalt ühele antud
väljadest.",
errorPrefix: "Viga: ",
warningPrefix: "Hoiatus: ",
noSpace: "Väli ei tohi sisaldada tühikuid.",
reqChkByNode: "Ükski väljadest pole valitud.",
requiredChk: "Välja täitmine on vajalik.",
reqChkByName: "Palun valige üks {label}.",
match: "Väli peab sobima {matchName} väljaga",
startDate: "algkuupäev",
endDate: "lõppkuupäev",
currendDate: "praegune kuupäev",
afterDate: "Kuupäev peab olema võrdne või pärast
{label}.",
beforeDate: "Kuupäev peab olema võrdne või enne {label}.",
startMonth: "Palun valige algkuupäev.",
sameMonth: "Antud kaks kuupäeva peavad olema samas kuus - peate
muutma ühte kuupäeva.",
});
Locale.define("fa", "Date", {
months: ["ژانویه", "فوریه",
"مارس", "آپریل", "مه",
"ژوئن", "ژوئیه", "آگوست",
"سپتامبر", "اکتبر",
"نوامبر", "دسامبر"],
months_abbr: ["1", "2", "3",
"4", "5", "6", "7", "8",
"9", "10", "11", "12"],
days: ["یکشنبه", "دوشنبه", "سه
شنبه", "چهارشنبه", "پنجشنبه",
"جمعه", "شنبه"],
days_abbr: ["ي", "د", "س",
"چ", "پ", "ج", "ش"],
dateOrder: ["month", "date", "year"],
shortDate: "%m/%d/%Y",
shortTime: "%I:%M%p",
AM: "ق.ظ",
PM: "ب.ظ",
ordinal: "ام",
lessThanMinuteAgo: "کمتر از یک دقیقه پیش",
minuteAgo: "حدود یک دقیقه پیش",
minutesAgo: "{delta} دقیقه پیش",
hourAgo: "حدود یک ساعت پیش",
hoursAgo: "حدود {delta} ساعت پیش",
dayAgo: "1 روز پیش",
daysAgo: "{delta} روز پیش",
weekAgo: "1 هفته پیش",
weeksAgo: "{delta} هفته پیش",
monthAgo: "1 ماه پیش",
monthsAgo: "{delta} ماه پیش",
yearAgo: "1 سال پیش",
yearsAgo: "{delta} سال پیش",
lessThanMinuteUntil: "کمتر از یک دقیقه از
حالا",
minuteUntil: "حدود یک دقیقه از حالا",
minutesUntil: "{delta} دقیقه از حالا",
hourUntil: "حدود یک ساعت از حالا",
hoursUntil: "حدود {delta} ساعت از حالا",
dayUntil: "1 روز از حالا",
daysUntil: "{delta} روز از حالا",
weekUntil: "1 هفته از حالا",
weeksUntil: "{delta} هفته از حالا",
monthUntil: "1 ماه از حالا",
monthsUntil: "{delta} ماه از حالا",
yearUntil: "1 سال از حالا",
yearsUntil: "{delta} سال از حالا",
});
Locale.define("fa", "FormValidator", {
required: "این فیلد الزامی است.",
minLength: "شما باید حداقل {minLength} حرف وارد
کنید ({length} حرف وارد کرده اید).",
maxLength: "لطفا حداکثر {maxLength} حرف وارد
کنید (شما {length} حرف وارد کرده اید).",
integer: "لطفا از عدد صحیح استفاده کنید.
اعداد اعشاری (مانند 1.25) مجاز نیستند.",
numeric: 'لطفا فقط داده عددی وارد کنید
(مانند "1" یا "1.1" یا "1-" یا
"1.1-").',
digits: "لطفا فقط از اعداد و علامتها در
این فیلد استفاده کنید (برای مثال شماره
تلفن با خط تیره و نقطه قابل قبول است).",
alpha: "لطفا فقط از حروف الفباء برای این
بخش استفاده کنید. کاراکترهای دیگر و فاصله
مجاز نیستند.",
alphanum: "لطفا فقط از حروف الفباء و
اعداد در این بخش استفاده کنید. کاراکترهای
دیگر و فاصله مجاز نیستند.",
dateSuchAs: "لطفا یک تاریخ معتبر مانند {date}
وارد کنید.",
dateInFormatMDY: 'لطفا یک تاریخ معتبر به شکل
MM/DD/YYYY وارد کنید (مانند "12/31/1999").',
email: 'لطفا یک آدرس ایمیل معتبر وارد
کنید. برای مثال "fred@domain.com".',
url: "لطفا یک URL معتبر مانند
http://www.example.com وارد کنید.",
currencyDollar: "لطفا یک محدوده معتبر برای
این بخش وارد کنید مانند 100.00$ .",
oneRequired: "لطفا حداقل یکی از فیلدها را
پر کنید.",
errorPrefix: "خطا: ",
warningPrefix: "هشدار: ",
noSpace: "استفاده از فاصله در این بخش
مجاز نیست.",
reqChkByNode: "موردی انتخاب نشده است.",
requiredChk: "این فیلد الزامی است.",
reqChkByName: "لطفا یک {label} را انتخاب
کنید.",
match: "این فیلد باید با فیلد {matchName}
مطابقت داشته باشد.",
startDate: "تاریخ شروع",
endDate: "تاریخ پایان",
currendDate: "تاریخ کنونی",
afterDate: "تاریخ میبایست برابر یا بعد از
{label} باشد",
beforeDate: "تاریخ میبایست برابر یا قبل از
{label} باشد",
startMonth: "لطفا ماه شروع را انتخاب
کنید",
sameMonth: "این دو تاریخ باید در یک ماه
باشند - شما باید یکی یا هر دو را تغییر
دهید.",
creditcard: "شماره کارت اعتباری که وارد
کرده اید معتبر نیست. لطفا شماره را بررسی
کنید و مجددا تلاش کنید. {length} رقم وارد شده
است.",
});
Locale.define("fi-FI", "Date", {
months: ["tammikuu", "helmikuu",
"maaliskuu", "huhtikuu", "toukokuu",
"kesäkuu", "heinäkuu", "elokuu",
"syyskuu", "lokakuu", "marraskuu",
"joulukuu"],
months_abbr: ["tammik.", "helmik.",
"maalisk.", "huhtik.", "toukok.",
"kesäk.", "heinäk.", "elok.",
"syysk.", "lokak.", "marrask.",
"jouluk."],
days: ["sunnuntai", "maanantai",
"tiistai", "keskiviikko", "torstai",
"perjantai", "lauantai"],
days_abbr: ["su", "ma", "ti",
"ke", "to", "pe", "la"],
dateOrder: ["date", "month", "year"],
shortDate: "%d.%m.%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: ".",
lessThanMinuteAgo: "vajaa minuutti sitten",
minuteAgo: "noin minuutti sitten",
minutesAgo: "{delta} minuuttia sitten",
hourAgo: "noin tunti sitten",
hoursAgo: "noin {delta} tuntia sitten",
dayAgo: "päivä sitten",
daysAgo: "{delta} päivää sitten",
weekAgo: "viikko sitten",
weeksAgo: "{delta} viikkoa sitten",
monthAgo: "kuukausi sitten",
monthsAgo: "{delta} kuukautta sitten",
yearAgo: "vuosi sitten",
yearsAgo: "{delta} vuotta sitten",
lessThanMinuteUntil: "vajaan minuutin kuluttua",
minuteUntil: "noin minuutin kuluttua",
minutesUntil: "{delta} minuutin kuluttua",
hourUntil: "noin tunnin kuluttua",
hoursUntil: "noin {delta} tunnin kuluttua",
dayUntil: "päivän kuluttua",
daysUntil: "{delta} päivän kuluttua",
weekUntil: "viikon kuluttua",
weeksUntil: "{delta} viikon kuluttua",
monthUntil: "kuukauden kuluttua",
monthsUntil: "{delta} kuukauden kuluttua",
yearUntil: "vuoden kuluttua",
yearsUntil: "{delta} vuoden kuluttua",
});
Locale.define("fi-FI", "FormValidator", {
required: "Tämä kenttä on pakollinen.",
minLength: "Ole hyvä ja anna vähintään {minLength} merkkiä
(annoit {length} merkkiä).",
maxLength: "Älä anna enempää kuin {maxLength} merkkiä (annoit
{length} merkkiä).",
integer: "Ole hyvä ja anna kokonaisluku. Luvut, joissa on
desimaaleja (esim. 1.25) eivät ole sallittuja.",
numeric: 'Anna tähän kenttään lukuarvo (kuten "1"
tai "1.1" tai "-1" tai "-1.1").',
digits: "Käytä pelkästään numeroita ja välimerkkejä tässä
kentässä (syötteet, kuten esim. puhelinnumero, jossa on väliviivoja,
pilkkuja tai pisteitä, kelpaa).",
alpha: "Anna tähän kenttään vain kirjaimia (a-z).
Välilyönnit tai muut merkit eivät ole sallittuja.",
alphanum: "Anna tähän kenttään vain kirjaimia (a-z) tai
numeroita (0-9). Välilyönnit tai muut merkit eivät ole
sallittuja.",
dateSuchAs: "Ole hyvä ja anna kelvollinen päivmäärä, kuten
esimerkiksi {date}",
dateInFormatMDY: 'Ole hyvä ja anna kelvollinen päivämäärä
muodossa pp/kk/vvvv (kuten "12/31/1999")',
email: 'Ole hyvä ja anna kelvollinen sähköpostiosoite (kuten
esimerkiksi "matti@meikalainen.com").',
url: "Ole hyvä ja anna kelvollinen URL, kuten esimerkiksi
http://www.example.com.",
currencyDollar: "Ole hyvä ja anna kelvollinen eurosumma (kuten
esimerkiksi 100,00 EUR) .",
oneRequired: "Ole hyvä ja syötä jotakin ainakin johonkin
näistä kentistä.",
errorPrefix: "Virhe: ",
warningPrefix: "Varoitus: ",
noSpace: "Tässä syötteessä ei voi olla välilyöntejä",
reqChkByNode: "Ei valintoja.",
requiredChk: "Tämä kenttä on pakollinen.",
reqChkByName: "Ole hyvä ja valitse {label}.",
match: "Tämän kentän tulee vastata kenttää {matchName}",
startDate: "alkupäivämäärä",
endDate: "loppupäivämäärä",
currendDate: "nykyinen päivämäärä",
afterDate: "Päivämäärän tulisi olla sama tai myöhäisempi
ajankohta kuin {label}.",
beforeDate: "Päivämäärän tulisi olla sama tai aikaisempi
ajankohta kuin {label}.",
startMonth: "Ole hyvä ja valitse aloituskuukausi",
sameMonth: "Näiden kahden päivämäärän tulee olla saman kuun
sisällä -- sinun pitää muuttaa jompaa kumpaa.",
creditcard: "Annettu luottokortin numero ei kelpaa. Ole hyvä ja
tarkista numero sekä yritä uudelleen. {length} numeroa syötetty.",
});
Locale.define("fi-FI", "Number", { group: " "
}).inherit("EU", "Number");
Locale.define("fr-FR", "Date", {
months: ["Janvier", "Février", "Mars",
"Avril", "Mai", "Juin", "Juillet",
"Août", "Septembre", "Octobre",
"Novembre", "Décembre"],
months_abbr: ["janv.", "févr.", "mars",
"avr.", "mai", "juin", "juil.",
"août", "sept.", "oct.", "nov.",
"déc."],
days: ["Dimanche", "Lundi", "Mardi",
"Mercredi", "Jeudi", "Vendredi",
"Samedi"],
days_abbr: ["dim.", "lun.", "mar.",
"mer.", "jeu.", "ven.", "sam."],
dateOrder: ["date", "month", "year"],
shortDate: "%d/%m/%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: function (a) {
return a > 1 ? "" : "er";
},
lessThanMinuteAgo: "il y a moins d'une minute",
minuteAgo: "il y a une minute",
minutesAgo: "il y a {delta} minutes",
hourAgo: "il y a une heure",
hoursAgo: "il y a {delta} heures",
dayAgo: "il y a un jour",
daysAgo: "il y a {delta} jours",
weekAgo: "il y a une semaine",
weeksAgo: "il y a {delta} semaines",
monthAgo: "il y a 1 mois",
monthsAgo: "il y a {delta} mois",
yearthAgo: "il y a 1 an",
yearsAgo: "il y a {delta} ans",
lessThanMinuteUntil: "dans moins d'une minute",
minuteUntil: "dans une minute",
minutesUntil: "dans {delta} minutes",
hourUntil: "dans une heure",
hoursUntil: "dans {delta} heures",
dayUntil: "dans un jour",
daysUntil: "dans {delta} jours",
weekUntil: "dans 1 semaine",
weeksUntil: "dans {delta} semaines",
monthUntil: "dans 1 mois",
monthsUntil: "dans {delta} mois",
yearUntil: "dans 1 an",
yearsUntil: "dans {delta} ans",
});
Locale.define("fr-FR", "FormValidator", {
required: "Ce champ est obligatoire.",
length: "Veuillez saisir {length} caractère(s) (vous
avez saisi {elLength} caractère(s)",
minLength: "Veuillez saisir un minimum de {minLength}
caractère(s) (vous avez saisi {length}
caractère(s)).",
maxLength: "Veuillez saisir un maximum de {maxLength}
caractère(s) (vous avez saisi {length}
caractère(s)).",
integer: 'Veuillez saisir un nombre entier dans ce champ. Les
nombres décimaux (ex : "1,25") ne sont pas
autorisés.',
numeric: 'Veuillez saisir uniquement des chiffres dans ce champ
(ex : "1" ou "1,1" ou "-1" ou
"-1,1").',
digits: "Veuillez saisir uniquement des chiffres et des signes de
ponctuation dans ce champ (ex : un numéro de
téléphone avec des traits d'union est
autorisé).",
alpha: "Veuillez saisir uniquement des lettres (a-z) dans ce
champ. Les espaces ou autres caractères ne sont pas
autorisés.",
alphanum: "Veuillez saisir uniquement des lettres (a-z) ou des
chiffres (0-9) dans ce champ. Les espaces ou autres caractères
ne sont pas autorisés.",
dateSuchAs: "Veuillez saisir une date correcte comme {date}",
dateInFormatMDY: 'Veuillez saisir une date correcte, au format
JJ/MM/AAAA (ex : "31/11/1999").',
email: 'Veuillez saisir une adresse de courrier
électronique. Par example "fred@domaine.com".',
url: "Veuillez saisir une URL, comme
http://www.example.com.",
currencyDollar: "Veuillez saisir une quantité correcte.
Par example 100,00€.",
oneRequired: "Veuillez sélectionner au moins une de ces
options.",
errorPrefix: "Erreur : ",
warningPrefix: "Attention : ",
noSpace: "Ce champ n'accepte pas les espaces.",
reqChkByNode: "Aucun élément n'est
sélectionné.",
requiredChk: "Ce champ est obligatoire.",
reqChkByName: "Veuillez sélectionner un(e)
{label}.",
match: "Ce champ doit correspondre avec le champ
{matchName}.",
startDate: "date de début",
endDate: "date de fin",
currendDate: "date actuelle",
afterDate: "La date doit être identique ou
postérieure à {label}.",
beforeDate: "La date doit être identique ou
antérieure à {label}.",
startMonth: "Veuillez sélectionner un mois de
début.",
sameMonth: "Ces deux dates doivent être dans le
même mois - vous devez en modifier une.",
creditcard: "Le numéro de carte de crédit
est invalide. Merci de vérifier le numéro et de
réessayer. Vous avez entré {length}
chiffre(s).",
});
Locale.define("fr-FR", "Number", { group: " "
}).inherit("EU", "Number");
Locale.define("he-IL", "Date", {
months: ["ינואר", "פברואר",
"מרץ", "אפריל", "מאי",
"יוני", "יולי", "אוגוסט",
"ספטמבר", "אוקטובר",
"נובמבר", "דצמבר"],
months_abbr: ["ינואר", "פברואר",
"מרץ", "אפריל", "מאי",
"יוני", "יולי", "אוגוסט",
"ספטמבר", "אוקטובר",
"נובמבר", "דצמבר"],
days: ["ראשון", "שני",
"שלישי", "רביעי", "חמישי",
"שישי", "שבת"],
days_abbr: ["ראשון", "שני",
"שלישי", "רביעי", "חמישי",
"שישי", "שבת"],
dateOrder: ["date", "month", "year"],
shortDate: "%d/%m/%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 0,
ordinal: "",
lessThanMinuteAgo: "לפני פחות מדקה",
minuteAgo: "לפני כדקה",
minutesAgo: "לפני {delta} דקות",
hourAgo: "לפני כשעה",
hoursAgo: "לפני {delta} שעות",
dayAgo: "לפני יום",
daysAgo: "לפני {delta} ימים",
weekAgo: "לפני שבוע",
weeksAgo: "לפני {delta} שבועות",
monthAgo: "לפני חודש",
monthsAgo: "לפני {delta} חודשים",
yearAgo: "לפני שנה",
yearsAgo: "לפני {delta} שנים",
lessThanMinuteUntil: "בעוד פחות מדקה",
minuteUntil: "בעוד כדקה",
minutesUntil: "בעוד {delta} דקות",
hourUntil: "בעוד כשעה",
hoursUntil: "בעוד {delta} שעות",
dayUntil: "בעוד יום",
daysUntil: "בעוד {delta} ימים",
weekUntil: "בעוד שבוע",
weeksUntil: "בעוד {delta} שבועות",
monthUntil: "בעוד חודש",
monthsUntil: "בעוד {delta} חודשים",
yearUntil: "בעוד שנה",
yearsUntil: "בעוד {delta} שנים",
});
Locale.define("he-IL", "FormValidator", {
required: "נא למלא שדה זה.",
minLength: "נא להזין לפחות {minLength} תווים
(הזנת {length} תווים).",
maxLength: "נא להזין עד {maxLength} תווים (הזנת
{length} תווים).",
integer: "נא להזין מספר שלם לשדה זה.
מספרים עשרוניים (כמו 1.25) אינם חוקיים.",
numeric: 'נא להזין ערך מספרי בלבד בשדה זה
(כמו "1", "1.1", "-1" או
"-1.1").',
digits: "נא להזין רק ספרות וסימני הפרדה
בשדה זה (למשל, מספר טלפון עם מקפים או
נקודות הוא חוקי).",
alpha: "נא להזין רק אותיות באנגלית (a-z)
בשדה זה. רווחים או תווים אחרים אינם
חוקיים.",
alphanum: "נא להזין רק אותריות באנגלית
(a-z) או ספרות (0-9) בשדה זה. אווחרים או תווים
אחרים אינם חוקיים.",
dateSuchAs: "נא להזין תאריך חוקי, כמו
{date}",
dateInFormatMDY: 'נא להזין תאריך חוקי בפורמט
MM/DD/YYYY (כמו "12/31/1999")',
email: 'נא להזין כתובת אימייל חוקית.
לדוגמה: "fred@domain.com".',
url: "נא להזין כתובת אתר חוקית, כמו
http://www.example.com.",
currencyDollar: "נא להזין סכום דולרי חוקי.
לדוגמה $100.00.",
oneRequired: "נא לבחור לפחות בשדה אחד.",
errorPrefix: "שגיאה: ",
warningPrefix: "אזהרה: ",
noSpace: "אין להזין רווחים בשדה זה.",
reqChkByNode: "נא לבחור אחת מהאפשרויות.",
requiredChk: "שדה זה נדרש.",
reqChkByName: "נא לבחור {label}.",
match: "שדה זה צריך להתאים לשדה
{matchName}",
startDate: "תאריך ההתחלה",
endDate: "תאריך הסיום",
currendDate: "התאריך הנוכחי",
afterDate: "התאריך צריך להיות זהה או אחרי
{label}.",
beforeDate: "התאריך צריך להיות זהה או לפני
{label}.",
startMonth: "נא לבחור חודש התחלה",
sameMonth: "שני תאריכים אלה צריכים להיות
באותו חודש - נא לשנות אחד התאריכים.",
creditcard: "מספר כרטיס האשראי שהוזן אינו
חוקי. נא לבדוק שנית. הוזנו {length} ספרות.",
});
Locale.define("he-IL", "Number", { decimal:
".", group: ",", currency: { suffix: " ₪" }
});
Locale.define("hu-HU", "Date", {
months: ["Január", "Február",
"Március", "Április", "Május",
"Június", "Július", "Augusztus",
"Szeptember", "Október", "November",
"December"],
months_abbr: ["jan.", "febr.", "márc.",
"ápr.", "máj.", "jún.", "júl.",
"aug.", "szept.", "okt.", "nov.",
"dec."],
days: ["Vasárnap", "Hétfő", "Kedd",
"Szerda", "Csütörtök", "Péntek",
"Szombat"],
days_abbr: ["V", "H", "K",
"Sze", "Cs", "P", "Szo"],
dateOrder: ["year", "month", "date"],
shortDate: "%Y.%m.%d.",
shortTime: "%I:%M",
AM: "de.",
PM: "du.",
firstDayOfWeek: 1,
ordinal: ".",
lessThanMinuteAgo: "alig egy perce",
minuteAgo: "egy perce",
minutesAgo: "{delta} perce",
hourAgo: "egy órája",
hoursAgo: "{delta} órája",
dayAgo: "1 napja",
daysAgo: "{delta} napja",
weekAgo: "1 hete",
weeksAgo: "{delta} hete",
monthAgo: "1 hónapja",
monthsAgo: "{delta} hónapja",
yearAgo: "1 éve",
yearsAgo: "{delta} éve",
lessThanMinuteUntil: "alig egy perc múlva",
minuteUntil: "egy perc múlva",
minutesUntil: "{delta} perc múlva",
hourUntil: "egy óra múlva",
hoursUntil: "{delta} óra múlva",
dayUntil: "1 nap múlva",
daysUntil: "{delta} nap múlva",
weekUntil: "1 hét múlva",
weeksUntil: "{delta} hét múlva",
monthUntil: "1 hónap múlva",
monthsUntil: "{delta} hónap múlva",
yearUntil: "1 év múlva",
yearsUntil: "{delta} év múlva",
});
Locale.define("hu-HU", "FormValidator", {
required: "A mező kitöltése kötelező.",
minLength: "Legalább {minLength} karakter megadása szükséges
(megadva {length} karakter).",
maxLength: "Legfeljebb {maxLength} karakter megadása lehetséges
(megadva {length} karakter).",
integer: "Egész szám megadása szükséges. A tizedesjegyek (pl.
1.25) nem engedélyezettek.",
numeric: 'Szám megadása szükséges (pl. "1" vagy
"1.1" vagy "-1" vagy "-1.1").',
digits: "Csak számok és írásjelek megadása lehetséges (pl.
telefonszám kötőjelek és/vagy perjelekkel).",
alpha: "Csak betűk (a-z) megadása lehetséges. Szóköz és
egyéb karakterek nem engedélyezettek.",
alphanum: "Csak betűk (a-z) vagy számok (0-9) megadása
lehetséges. Szóköz és egyéb karakterek nem engedélyezettek.",
dateSuchAs: "Valós dátum megadása szükséges (pl.
{date}).",
dateInFormatMDY: 'Valós dátum megadása szükséges
ÉÉÉÉ.HH.NN. formában. (pl. "1999.12.31.")',
email: 'Valós e-mail cím megadása szükséges (pl.
"fred@domain.hu").',
url: "Valós URL megadása szükséges (pl.
http://www.example.com).",
currencyDollar: "Valós pénzösszeg megadása szükséges (pl.
100.00 Ft.).",
oneRequired: "Az alábbi mezők legalább egyikének kitöltése
kötelező.",
errorPrefix: "Hiba: ",
warningPrefix: "Figyelem: ",
noSpace: "A mező nem tartalmazhat szóközöket.",
reqChkByNode: "Nincs egyetlen kijelölt elem sem.",
requiredChk: "A mező kitöltése kötelező.",
reqChkByName: "Egy {label} kiválasztása szükséges.",
match: "A mezőnek egyeznie kell a(z) {matchName} mezővel.",
startDate: "a kezdet dátuma",
endDate: "a vég dátuma",
currendDate: "jelenlegi dátum",
afterDate: "A dátum nem lehet kisebb, mint {label}.",
beforeDate: "A dátum nem lehet nagyobb, mint {label}.",
startMonth: "Kezdeti hónap megadása szükséges.",
sameMonth: "A két dátumnak ugyanazon hónapban kell
lennie.",
creditcard: "A megadott bankkártyaszám nem valódi (megadva
{length} számjegy).",
});
Locale.define("it-IT", "Date", {
months: ["Gennaio", "Febbraio", "Marzo",
"Aprile", "Maggio", "Giugno",
"Luglio", "Agosto", "Settembre",
"Ottobre", "Novembre", "Dicembre"],
months_abbr: ["gen", "feb", "mar",
"apr", "mag", "giu", "lug",
"ago", "set", "ott", "nov",
"dic"],
days: ["Domenica", "Lunedì", "Martedì",
"Mercoledì", "Giovedì", "Venerdì",
"Sabato"],
days_abbr: ["dom", "lun", "mar",
"mer", "gio", "ven", "sab"],
dateOrder: ["date", "month", "year"],
shortDate: "%d/%m/%Y",
shortTime: "%H.%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "º",
lessThanMinuteAgo: "meno di un minuto fa",
minuteAgo: "circa un minuto fa",
minutesAgo: "circa {delta} minuti fa",
hourAgo: "circa un'ora fa",
hoursAgo: "circa {delta} ore fa",
dayAgo: "circa 1 giorno fa",
daysAgo: "circa {delta} giorni fa",
weekAgo: "una settimana fa",
weeksAgo: "{delta} settimane fa",
monthAgo: "un mese fa",
monthsAgo: "{delta} mesi fa",
yearAgo: "un anno fa",
yearsAgo: "{delta} anni fa",
lessThanMinuteUntil: "tra meno di un minuto",
minuteUntil: "tra circa un minuto",
minutesUntil: "tra circa {delta} minuti",
hourUntil: "tra circa un'ora",
hoursUntil: "tra circa {delta} ore",
dayUntil: "tra circa un giorno",
daysUntil: "tra circa {delta} giorni",
weekUntil: "tra una settimana",
weeksUntil: "tra {delta} settimane",
monthUntil: "tra un mese",
monthsUntil: "tra {delta} mesi",
yearUntil: "tra un anno",
yearsUntil: "tra {delta} anni",
});
Locale.define("it-IT", "FormValidator", {
required: "Il campo è obbligatorio.",
minLength: "Inserire almeno {minLength} caratteri (ne sono stati
inseriti {length}).",
maxLength: "Inserire al massimo {maxLength} caratteri (ne sono
stati inseriti {length}).",
integer: "Inserire un numero intero. Non sono consentiti decimali
(es.: 1.25).",
numeric: 'Inserire solo valori numerici (es.: "1" oppure
"1.1" oppure "-1" oppure "-1.1").',
digits: "Inserire solo numeri e caratteri di punteggiatura. Per
esempio è consentito un numero telefonico con trattini o
punti.",
alpha: "Inserire solo lettere (a-z). Non sono consentiti spazi o
altri caratteri.",
alphanum: "Inserire solo lettere (a-z) o numeri (0-9). Non sono
consentiti spazi o altri caratteri.",
dateSuchAs: "Inserire una data valida del tipo {date}",
dateInFormatMDY: 'Inserire una data valida nel formato MM/GG/AAAA
(es.: "12/31/1999")',
email: 'Inserire un indirizzo email valido. Per esempio
"nome@dominio.com".',
url: 'Inserire un indirizzo valido. Per esempio
"http://www.example.com".',
currencyDollar: 'Inserire un importo valido. Per esempio
"$100.00".',
oneRequired: "Completare almeno uno dei campi richiesti.",
errorPrefix: "Errore: ",
warningPrefix: "Attenzione: ",
noSpace: "Non sono consentiti spazi.",
reqChkByNode: "Nessuna voce selezionata.",
requiredChk: "Il campo è obbligatorio.",
reqChkByName: "Selezionare un(a) {label}.",
match: "Il valore deve corrispondere al campo {matchName}",
startDate: "data d'inizio",
endDate: "data di fine",
currendDate: "data attuale",
afterDate: "La data deve corrispondere o essere successiva al
{label}.",
beforeDate: "La data deve corrispondere o essere precedente al
{label}.",
startMonth: "Selezionare un mese d'inizio",
sameMonth: "Le due date devono essere dello stesso mese - occorre
modificarne una.",
});
Locale.define("ja-JP", "Date", {
months: ["1月", "2月", "3月",
"4月", "5月", "6月", "7月",
"8月", "9月", "10月", "11月",
"12月"],
months_abbr: ["1月", "2月", "3月",
"4月", "5月", "6月", "7月",
"8月", "9月", "10月", "11月",
"12月"],
days: ["日曜日", "月曜日",
"火曜日", "水曜日", "木曜日",
"金曜日", "土曜日"],
days_abbr: ["日", "月", "火",
"水", "木", "金", "土"],
dateOrder: ["year", "month", "date"],
shortDate: "%Y/%m/%d",
shortTime: "%H:%M",
AM: "午前",
PM: "午後",
firstDayOfWeek: 0,
ordinal: "",
lessThanMinuteAgo: "1分以内前",
minuteAgo: "約1分前",
minutesAgo: "約{delta}分前",
hourAgo: "約1時間前",
hoursAgo: "約{delta}時間前",
dayAgo: "1日前",
daysAgo: "{delta}日前",
weekAgo: "1週間前",
weeksAgo: "{delta}週間前",
monthAgo: "1ヶ月前",
monthsAgo: "{delta}ヶ月前",
yearAgo: "1年前",
yearsAgo: "{delta}年前",
lessThanMinuteUntil: "今から約1分以内",
minuteUntil: "今から約1分",
minutesUntil: "今から約{delta}分",
hourUntil: "今から約1時間",
hoursUntil: "今から約{delta}時間",
dayUntil: "今から1日間",
daysUntil: "今から{delta}日間",
weekUntil: "今から1週間",
weeksUntil: "今から{delta}週間",
monthUntil: "今から1ヶ月",
monthsUntil: "今から{delta}ヶ月",
yearUntil: "今から1年",
yearsUntil: "今から{delta}年",
});
Locale.define("ja-JP", "FormValidator", {
required: "入力は必須です。",
minLength:
"入力文字数は{minLength}以上にしてください。({length}文字)",
maxLength:
"入力文字数は{maxLength}以下にしてください。({length}文字)",
integer: "整数を入力してください。",
numeric: '入力できるのは数値だけです。(例:
"1", "1.1", "-1",
"-1.1"....)',
digits: "入力できるのは数値と句読記号です。 (例:
-や+を含む電話番号など).",
alpha:
"入力できるのは半角英字だけです。それ以外の文字は入力できません。",
alphanum:
"入力できるのは半角英数字だけです。それ以外の文字は入力できません。",
dateSuchAs:
"有効な日付を入力してください。{date}",
dateInFormatMDY:
'日付の書式に誤りがあります。YYYY/MM/DD (i.e.
"1999/12/31")',
email: "メールアドレスに誤りがあります。",
url: "URLアドレスに誤りがあります。",
currencyDollar: "金額に誤りがあります。",
oneRequired: "ひとつ以上入力してください。",
errorPrefix: "エラー: ",
warningPrefix: "警告: ",
noSpace: "スペースは入力できません。",
reqChkByNode: "選択されていません。",
requiredChk: "この項目は必須です。",
reqChkByName: "{label}を選択してください。",
match:
"{matchName}が入力されている場合必須です。",
startDate: "開始日",
endDate: "終了日",
currendDate: "今日",
afterDate: "{label}以降の日付にしてください。",
beforeDate: "{label}以前の日付にしてください。",
startMonth: "開始月を選択してください。",
sameMonth:
"日付が同一です。どちらかを変更してください。",
});
Locale.define("ja-JP", "Number", { decimal:
".", group: ",", currency: { decimals: 0, prefix:
"\\" } });
Locale.define("nl-NL", "Date", {
months: ["januari", "februari", "maart",
"april", "mei", "juni", "juli",
"augustus", "september", "oktober",
"november", "december"],
months_abbr: ["jan", "feb", "mrt",
"apr", "mei", "jun", "jul",
"aug", "sep", "okt", "nov",
"dec"],
days: ["zondag", "maandag", "dinsdag",
"woensdag", "donderdag", "vrijdag",
"zaterdag"],
days_abbr: ["zo", "ma", "di",
"wo", "do", "vr", "za"],
dateOrder: ["date", "month", "year"],
shortDate: "%d-%m-%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "e",
lessThanMinuteAgo: "minder dan een minuut geleden",
minuteAgo: "ongeveer een minuut geleden",
minutesAgo: "{delta} minuten geleden",
hourAgo: "ongeveer een uur geleden",
hoursAgo: "ongeveer {delta} uur geleden",
dayAgo: "een dag geleden",
daysAgo: "{delta} dagen geleden",
weekAgo: "een week geleden",
weeksAgo: "{delta} weken geleden",
monthAgo: "een maand geleden",
monthsAgo: "{delta} maanden geleden",
yearAgo: "een jaar geleden",
yearsAgo: "{delta} jaar geleden",
lessThanMinuteUntil: "over minder dan een minuut",
minuteUntil: "over ongeveer een minuut",
minutesUntil: "over {delta} minuten",
hourUntil: "over ongeveer een uur",
hoursUntil: "over {delta} uur",
dayUntil: "over ongeveer een dag",
daysUntil: "over {delta} dagen",
weekUntil: "over een week",
weeksUntil: "over {delta} weken",
monthUntil: "over een maand",
monthsUntil: "over {delta} maanden",
yearUntil: "over een jaar",
yearsUntil: "over {delta} jaar",
});
Locale.define("nl-NL", "FormValidator", {
required: "Dit veld is verplicht.",
length: "Vul precies {length} karakters in (je hebt {elLength}
karakters ingevoerd).",
minLength: "Vul minimaal {minLength} karakters in (je hebt
{length} karakters ingevoerd).",
maxLength: "Vul niet meer dan {maxLength} karakters in (je hebt
{length} karakters ingevoerd).",
integer: "Vul een getal in. Getallen met decimalen (bijvoorbeeld
1.25) zijn niet toegestaan.",
numeric: 'Vul alleen numerieke waarden in (bijvoorbeeld
"1" of "1.1" of "-1" of
"-1.1").',
digits: "Vul alleen nummers en leestekens in (bijvoorbeeld een
telefoonnummer met streepjes is toegestaan).",
alpha: "Vul alleen letters in (a-z). Spaties en andere karakters
zijn niet toegestaan.",
alphanum: "Vul alleen letters (a-z) of nummers (0-9) in. Spaties
en andere karakters zijn niet toegestaan.",
dateSuchAs: "Vul een geldige datum in, zoals {date}",
dateInFormatMDY: 'Vul een geldige datum, in het formaat MM/DD/YYYY
(bijvoorbeeld "12/31/1999")',
email: 'Vul een geldig e-mailadres in. Bijvoorbeeld
"fred@domein.nl".',
url: "Vul een geldige URL in, zoals http://www.example.com.",
currencyDollar: "Vul een geldig $ bedrag in. Bijvoorbeeld $100.00
.",
oneRequired: "Vul iets in bij in ieder geval een van deze
velden.",
warningPrefix: "Waarschuwing: ",
errorPrefix: "Fout: ",
noSpace: "Spaties zijn niet toegestaan in dit veld.",
reqChkByNode: "Er zijn geen items geselecteerd.",
requiredChk: "Dit veld is verplicht.",
reqChkByName: "Selecteer een {label}.",
match: "Dit veld moet overeen komen met het {matchName}
veld",
startDate: "de begin datum",
endDate: "de eind datum",
currendDate: "de huidige datum",
afterDate: "De datum moet hetzelfde of na {label} zijn.",
beforeDate: "De datum moet hetzelfde of voor {label} zijn.",
startMonth: "Selecteer een begin maand",
sameMonth: "Deze twee data moeten in dezelfde maand zijn - u moet
een van beide aanpassen.",
creditcard: "Het ingevulde creditcardnummer is niet geldig.
Controleer het nummer en probeer opnieuw. {length} getallen
ingevuld.",
});
Locale.define("nl-NL").inherit("EU",
"Number");
Locale.define("no-NO", "Date", {
dateOrder: ["date", "month", "year"],
shortDate: "%d.%m.%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
lessThanMinuteAgo: "kortere enn et minutt siden",
minuteAgo: "omtrent et minutt siden",
minutesAgo: "{delta} minutter siden",
hourAgo: "omtrent en time siden",
hoursAgo: "omtrent {delta} timer siden",
dayAgo: "{delta} dag siden",
daysAgo: "{delta} dager siden",
});
Locale.define("no-NO", "FormValidator", {
required: "Dette feltet er påkrevd.",
minLength: "Vennligst skriv inn minst {minLength} tegn (du skrev
{length} tegn).",
maxLength: "Vennligst skriv inn maksimalt {maxLength} tegn (du
skrev {length} tegn).",
integer: "Vennligst skriv inn et tall i dette feltet. Tall med
desimaler (for eksempel 1,25) er ikke tillat.",
numeric: 'Vennligst skriv inn kun numeriske verdier i dette feltet
(for eksempel "1", "1.1", "-1" eller
"-1.1").',
digits: "Vennligst bruk kun nummer og skilletegn i dette
feltet.",
alpha: "Vennligst bruk kun bokstaver (a-z) i dette feltet. Ingen
mellomrom eller andre tegn er tillat.",
alphanum: "Vennligst bruk kun bokstaver (a-z) eller nummer (0-9) i
dette feltet. Ingen mellomrom eller andre tegn er tillat.",
dateSuchAs: "Vennligst skriv inn en gyldig dato, som {date}",
dateInFormatMDY: 'Vennligst skriv inn en gyldig dato, i formatet
MM/DD/YYYY (for eksempel "12/31/1999")',
email: 'Vennligst skriv inn en gyldig epost-adresse. For eksempel
"espen@domene.no".',
url: "Vennligst skriv inn en gyldig URL, for eksempel
http://www.example.com.",
currencyDollar: "Vennligst fyll ut et gyldig $ beløp. For
eksempel $100.00 .",
oneRequired: "Vennligst fyll ut noe i minst ett av disse
feltene.",
errorPrefix: "Feil: ",
warningPrefix: "Advarsel: ",
});
Locale.define("pl-PL", "Date", {
months: ["Styczeń", "Luty", "Marzec",
"Kwiecień", "Maj", "Czerwiec",
"Lipiec", "Sierpień", "Wrzesień",
"Październik", "Listopad", "Grudzień"],
months_abbr: ["sty", "lut", "mar",
"kwi", "maj", "cze", "lip",
"sie", "wrz", "paź", "lis",
"gru"],
days: ["Niedziela", "Poniedziałek",
"Wtorek", "Środa", "Czwartek",
"Piątek", "Sobota"],
days_abbr: ["niedz.", "pon.", "wt.",
"śr.", "czw.", "pt.", "sob."],
dateOrder: ["year", "month", "date"],
shortDate: "%Y-%m-%d",
shortTime: "%H:%M",
AM: "nad ranem",
PM: "po południu",
firstDayOfWeek: 1,
ordinal: function (a) {
return a > 3 && a < 21 ? "ty" :
["ty", "szy", "gi", "ci",
"ty"][Math.min(a % 10, 4)];
},
lessThanMinuteAgo: "mniej niż minute temu",
minuteAgo: "około minutę temu",
minutesAgo: "{delta} minut temu",
hourAgo: "około godzinę temu",
hoursAgo: "około {delta} godzin temu",
dayAgo: "Wczoraj",
daysAgo: "{delta} dni temu",
lessThanMinuteUntil: "za niecałą minutę",
minuteUntil: "za około minutę",
minutesUntil: "za {delta} minut",
hourUntil: "za około godzinę",
hoursUntil: "za około {delta} godzin",
dayUntil: "za 1 dzień",
daysUntil: "za {delta} dni",
});
Locale.define("pl-PL", "FormValidator", {
required: "To pole jest wymagane.",
minLength: "Wymagane jest przynajmniej {minLength} znaków
(wpisanych zostało tylko {length}).",
maxLength: "Dozwolone jest nie więcej niż {maxLength} znaków
(wpisanych zostało {length})",
integer: "To pole wymaga liczb całych. Liczby dziesiętne (np.
1.25) są niedozwolone.",
numeric: 'Prosimy używać tylko numerycznych wartości w tym polu
(np. "1", "1.1", "-1" lub
"-1.1").',
digits: "Prosimy używać liczb oraz zankow punktuacyjnych w typ
polu (dla przykładu, przy numerze telefonu myślniki i kropki są
dozwolone).",
alpha: "Prosimy używać tylko liter (a-z) w tym polu. Spacje oraz
inne znaki są niedozwolone.",
alphanum: "Prosimy używać tylko liter (a-z) lub liczb (0-9) w
tym polu. Spacje oraz inne znaki są niedozwolone.",
dateSuchAs: "Prosimy podać prawidłową datę w formacie:
{date}",
dateInFormatMDY: 'Prosimy podać poprawną date w formacie
DD.MM.RRRR (i.e. "12.01.2009")',
email: 'Prosimy podać prawidłowy adres e-mail, np.
"jan@domena.pl".',
url: "Prosimy podać prawidłowy adres URL, np.
http://www.example.com.",
currencyDollar: "Prosimy podać prawidłową sumę w PLN. Dla
przykładu: 100.00 PLN.",
oneRequired: "Prosimy wypełnić chociaż jedno z pól.",
errorPrefix: "Błąd: ",
warningPrefix: "Uwaga: ",
noSpace: "W tym polu nie mogą znajdować się spacje.",
reqChkByNode: "Brak zaznaczonych elementów.",
requiredChk: "To pole jest wymagane.",
reqChkByName: "Prosimy wybrać z {label}.",
match: "To pole musi być takie samo jak {matchName}",
startDate: "data początkowa",
endDate: "data końcowa",
currendDate: "aktualna data",
afterDate: "Podana data poinna być taka sama lub po
{label}.",
beforeDate: "Podana data poinna być taka sama lub przed
{label}.",
startMonth: "Prosimy wybrać początkowy miesiąc.",
sameMonth: "Te dwie daty muszą być w zakresie tego samego
miesiąca - wymagana jest zmiana któregoś z pól.",
});
Locale.define("pt-PT", "Date", {
months: ["Janeiro", "Fevereiro",
"Março", "Abril", "Maio", "Junho",
"Julho", "Agosto", "Setembro",
"Outubro", "Novembro", "Dezembro"],
months_abbr: ["Jan", "Fev", "Mar",
"Abr", "Mai", "Jun", "Jul",
"Ago", "Set", "Out", "Nov",
"Dez"],
days: ["Domingo", "Segunda-feira",
"Terça-feira", "Quarta-feira",
"Quinta-feira", "Sexta-feira", "Sábado"],
days_abbr: ["Dom", "Seg", "Ter",
"Qua", "Qui", "Sex", "Sáb"],
dateOrder: ["date", "month", "year"],
shortDate: "%d-%m-%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "º",
lessThanMinuteAgo: "há menos de um minuto",
minuteAgo: "há cerca de um minuto",
minutesAgo: "há {delta} minutos",
hourAgo: "há cerca de uma hora",
hoursAgo: "há cerca de {delta} horas",
dayAgo: "há um dia",
daysAgo: "há {delta} dias",
weekAgo: "há uma semana",
weeksAgo: "há {delta} semanas",
monthAgo: "há um mês",
monthsAgo: "há {delta} meses",
yearAgo: "há um ano",
yearsAgo: "há {delta} anos",
lessThanMinuteUntil: "em menos de um minuto",
minuteUntil: "em um minuto",
minutesUntil: "em {delta} minutos",
hourUntil: "em uma hora",
hoursUntil: "em {delta} horas",
dayUntil: "em um dia",
daysUntil: "em {delta} dias",
weekUntil: "em uma semana",
weeksUntil: "em {delta} semanas",
monthUntil: "em um mês",
monthsUntil: "em {delta} meses",
yearUntil: "em um ano",
yearsUntil: "em {delta} anos",
});
Locale.define("pt-BR", "Date", { shortDate:
"%d/%m/%Y" }).inherit("pt-PT", "Date");
Locale.define("pt-BR", "FormValidator", {
required: "Este campo é obrigatório.",
minLength: "Digite pelo menos {minLength} caracteres (tamanho
atual: {length}).",
maxLength: "Não digite mais de {maxLength} caracteres (tamanho
atual: {length}).",
integer: "Por favor digite apenas um número inteiro neste campo.
Não são permitidos números decimais (por exemplo, 1,25).",
numeric: 'Por favor digite apenas valores numéricos neste campo
(por exemplo, "1" ou "1.1" ou "-1" ou
"-1,1").',
digits: "Por favor use apenas números e pontuação neste campo
(por exemplo, um número de telefone com traços ou pontos é
permitido).",
alpha: "Por favor use somente letras (a-z). Espaço e outros
caracteres não são permitidos.",
alphanum: "Use somente letras (a-z) ou números (0-9) neste campo.
Espaço e outros caracteres não são permitidos.",
dateSuchAs: "Digite uma data válida, como {date}",
dateInFormatMDY: 'Digite uma data válida, como DD/MM/YYYY (por
exemplo, "31/12/1999")',
email: 'Digite um endereço de email válido. Por exemplo
"nome@dominio.com".',
url: "Digite uma URL válida. Exemplo:
http://www.example.com.",
currencyDollar: "Digite um valor em dinheiro válido. Exemplo:
R$100,00 .",
oneRequired: "Digite algo para pelo menos um desses campos.",
errorPrefix: "Erro: ",
warningPrefix: "Aviso: ",
noSpace: "Não é possível digitar espaços neste campo.",
reqChkByNode: "Não foi selecionado nenhum item.",
requiredChk: "Este campo é obrigatório.",
reqChkByName: "Por favor digite um {label}.",
match: "Este campo deve ser igual ao campo {matchName}.",
startDate: "a data inicial",
endDate: "a data final",
currendDate: "a data atual",
afterDate: "A data deve ser igual ou posterior a {label}.",
beforeDate: "A data deve ser igual ou anterior a {label}.",
startMonth: "Por favor selecione uma data inicial.",
sameMonth: "Estas duas datas devem ter o mesmo mês - você deve
modificar uma das duas.",
creditcard: "O número do cartão de crédito informado é
inválido. Por favor verifique o valor e tente novamente. {length} números
informados.",
});
Locale.define("pt-PT", "FormValidator", {
required: "Este campo é necessário.",
minLength: "Digite pelo menos{minLength} caracteres (comprimento
{length} caracteres).",
maxLength: "Não insira mais de {maxLength} caracteres
(comprimento {length} caracteres).",
integer: "Digite um número inteiro neste domínio. Com números
decimais (por exemplo, 1,25), não são permitidas.",
numeric: 'Digite apenas valores numéricos neste domínio (p.ex.,
"1" ou "1.1" ou "-1" ou
"-1,1").',
digits: "Por favor, use números e pontuação apenas neste campo
(p.ex., um número de telefone com traços ou pontos é permitida).",
alpha: "Por favor use somente letras (a-z), com nesta área. Não
utilize espaços nem outros caracteres são permitidos.",
alphanum: "Use somente letras (a-z) ou números (0-9) neste campo.
Não utilize espaços nem outros caracteres são permitidos.",
dateSuchAs: "Digite uma data válida, como {date}",
dateInFormatMDY: 'Digite uma data válida, como DD/MM/YYYY (p.ex.
"31/12/1999")',
email: 'Digite um endereço de email válido. Por exemplo
"fred@domain.com".',
url: "Digite uma URL válida, como http://www.example.com.",
currencyDollar: "Digite um valor válido $. Por exemplo $ 100,00.
",
oneRequired: "Digite algo para pelo menos um desses
insumos.",
errorPrefix: "Erro: ",
warningPrefix: "Aviso: ",
});
(function () {
var a = function (h, e, d, g, b) {
var c = h % 10,
f = h % 100;
if (c == 1 && f != 11) {
return e;
} else {
if ((c == 2 || c == 3 || c == 4) && !(f == 12 || f ==
13 || f == 14)) {
return d;
} else {
if (c == 0 || c == 5 || c == 6 || c == 7 || c == 8 || c ==
9 || f == 11 || f == 12 || f == 13 || f == 14) {
return g;
} else {
return b;
}
}
}
};
Locale.define("ru-RU", "Date", {
months: ["Январь", "Февраль",
"Март", "Апрель", "Май",
"Июнь", "Июль", "Август",
"Сентябрь", "Октябрь",
"Ноябрь", "Декабрь"],
months_abbr: ["янв", "февр",
"март", "апр", "май",
"июнь", "июль", "авг",
"сент", "окт", "нояб",
"дек"],
days: ["Воскресенье",
"Понедельник", "Вторник",
"Среда", "Четверг",
"Пятница", "Суббота"],
days_abbr: ["Вс", "Пн", "Вт",
"Ср", "Чт", "Пт", "Сб"],
dateOrder: ["date", "month", "year"],
shortDate: "%d.%m.%Y",
shortTime: "%H:%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "",
lessThanMinuteAgo: "меньше минуты
назад",
minuteAgo: "минуту назад",
minutesAgo: function (b) {
return "{delta} " + a(b, "минуту",
"минуты", "минут") + "
назад";
},
hourAgo: "час назад",
hoursAgo: function (b) {
return "{delta} " + a(b, "час",
"часа", "часов") + " назад";
},
dayAgo: "вчера",
daysAgo: function (b) {
return "{delta} " + a(b, "день",
"дня", "дней") + " назад";
},
weekAgo: "неделю назад",
weeksAgo: function (b) {
return "{delta} " + a(b, "неделя",
"недели", "недель") + "
назад";
},
monthAgo: "месяц назад",
monthsAgo: function (b) {
return "{delta} " + a(b, "месяц",
"месяца", "месецев") + "
назад";
},
yearAgo: "год назад",
yearsAgo: function (b) {
return "{delta} " + a(b, "год",
"года", "лет") + " назад";
},
lessThanMinuteUntil: "меньше чем через
минуту",
minuteUntil: "через минуту",
minutesUntil: function (b) {
return "через {delta} " + a(b,
"час", "часа", "часов") +
"";
},
hourUntil: "через час",
hoursUntil: function (b) {
return "через {delta} " + a(b,
"час", "часа", "часов") +
"";
},
dayUntil: "завтра",
daysUntil: function (b) {
return "через {delta} " + a(b,
"день", "дня", "дней") +
"";
},
weekUntil: "через неделю",
weeksUntil: function (b) {
return "через {delta} " + a(b,
"неделю", "недели",
"недель") + "";
},
monthUntil: "через месяц",
monthsUntil: function (b) {
return "через {delta} " + a(b,
"месяц", "месяца",
"месецев") + "";
},
yearUntil: "через",
yearsUntil: function (b) {
return "через {delta} " + a(b,
"год", "года", "лет") +
"";
},
});
})();
Locale.define("ru-RU", "FormValidator", {
required: "Это поле обязательно к
заполнению.",
minLength: "Пожалуйста, введите хотя бы
{minLength} символов (Вы ввели {length}).",
maxLength: "Пожалуйста, введите не больше
{maxLength} символов (Вы ввели {length}).",
integer: "Пожалуйста, введите в это поле
число. Дробные числа (например 1.25) тут не
разрешены.",
numeric: 'Пожалуйста, введите в это поле
число (например "1" или "1.1", или
"-1", или "-1.1").',
digits: "В этом поле Вы можете
использовать только цифры и знаки
пунктуации (например, телефонный номер
со знаками дефиса или с точками).",
alpha: "В этом поле можно использовать
только латинские буквы (a-z). Пробелы и
другие символы запрещены.",
alphanum: "В этом поле можно
использовать только латинские буквы (a-z)
и цифры (0-9). Пробелы и другие символы
запрещены.",
dateSuchAs: "Пожалуйста, введите
корректную дату {date}",
dateInFormatMDY: 'Пожалуйста, введите дату в
формате ММ/ДД/ГГГГ (например
"12/31/1999")',
email: 'Пожалуйста, введите корректный
емейл-адрес. Для примера
"fred@domain.com".',
url: "Пожалуйста, введите правильную
ссылку вида http://www.example.com.",
currencyDollar: "Пожалуйста, введите сумму
в долларах. Например: $100.00 .",
oneRequired: "Пожалуйста, выберите хоть
что-нибудь в одном из этих полей.",
errorPrefix: "Ошибка: ",
warningPrefix: "Внимание: ",
});
(function () {
var a = function (f, d, c, e, b) {
return f >= 1 && f <= 3 ? arguments[f] : b;
};
Locale.define("si-SI", "Date", {
months: ["januar", "februar",
"marec", "april", "maj", "junij",
"julij", "avgust", "september",
"oktober", "november", "december"],
months_abbr: ["jan", "feb", "mar",
"apr", "maj", "jun", "jul",
"avg", "sep", "okt", "nov",
"dec"],
days: ["nedelja", "ponedeljek",
"torek", "sreda", "četrtek",
"petek", "sobota"],
days_abbr: ["ned", "pon", "tor",
"sre", "čet", "pet", "sob"],
dateOrder: ["date", "month", "year"],
shortDate: "%d.%m.%Y",
shortTime: "%H.%M",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: ".",
lessThanMinuteAgo: "manj kot minuto nazaj",
minuteAgo: "minuto nazaj",
minutesAgo: function (b) {
return "{delta} " + a(b, "minuto",
"minuti", "minute", "minut") + "
nazaj";
},
hourAgo: "uro nazaj",
hoursAgo: function (b) {
return "{delta} " + a(b, "uro",
"uri", "ure", "ur") + " nazaj";
},
dayAgo: "dan nazaj",
daysAgo: function (b) {
return "{delta} " + a(b, "dan",
"dneva", "dni", "dni") + " nazaj";
},
weekAgo: "teden nazaj",
weeksAgo: function (b) {
return "{delta} " + a(b, "teden",
"tedna", "tedne", "tednov") + "
nazaj";
},
monthAgo: "mesec nazaj",
monthsAgo: function (b) {
return "{delta} " + a(b, "mesec",
"meseca", "mesece", "mesecov") + "
nazaj";
},
yearthAgo: "leto nazaj",
yearsAgo: function (b) {
return "{delta} " + a(b, "leto",
"leti", "leta", "let") + " nazaj";
},
lessThanMinuteUntil: "še manj kot minuto",
minuteUntil: "še minuta",
minutesUntil: function (b) {
return "še {delta} " + a(b, "minuta",
"minuti", "minute", "minut");
},
hourUntil: "še ura",
hoursUntil: function (b) {
return "še {delta} " + a(b, "ura",
"uri", "ure", "ur");
},
dayUntil: "še dan",
daysUntil: function (b) {
return "še {delta} " + a(b, "dan",
"dneva", "dnevi", "dni");
},
weekUntil: "še tedn",
weeksUntil: function (b) {
return "še {delta} " + a(b, "teden",
"tedna", "tedni", "tednov");
},
monthUntil: "še mesec",
monthsUntil: function (b) {
return "še {delta} " + a(b, "mesec",
"meseca", "meseci", "mesecov");
},
yearUntil: "še leto",
yearsUntil: function (b) {
return "še {delta} " + a(b, "leto",
"leti", "leta", "let");
},
});
})();
Locale.define("si-SI", "FormValidator", {
required: "To polje je obvezno",
minLength: "Prosim, vnesite vsaj {minLength} znakov (vnesli ste
{length} znakov).",
maxLength: "Prosim, ne vnesite več kot {maxLength} znakov (vnesli
ste {length} znakov).",
integer: "Prosim, vnesite celo število. Decimalna števila (kot
1,25) niso dovoljena.",
numeric: 'Prosim, vnesite samo numerične vrednosti (kot
"1" ali "1.1" ali "-1" ali
"-1.1").',
digits: "Prosim, uporabite številke in ločila le na tem polju
(na primer, dovoljena je telefonska številka z pomišlaji ali
pikami).",
alpha: "Prosim, uporabite le črke v tem plju. Presledki in drugi
znaki niso dovoljeni.",
alphanum: "Prosim, uporabite samo črke ali številke v tem polju.
Presledki in drugi znaki niso dovoljeni.",
dateSuchAs: "Prosim, vnesite pravilen datum kot {date}",
dateInFormatMDY: 'Prosim, vnesite pravilen datum kot MM.DD.YYYY
(primer "12.31.1999")',
email: 'Prosim, vnesite pravilen email naslov. Na primer
"fred@domain.com".',
url: "Prosim, vnesite pravilen URL kot
http://www.example.com.",
currencyDollar: "Prosim, vnesit epravilno vrednost €. Primer
100,00€ .",
oneRequired: "Prosimo, vnesite nekaj za vsaj eno izmed teh
polj.",
errorPrefix: "Napaka: ",
warningPrefix: "Opozorilo: ",
noSpace: "To vnosno polje ne dopušča presledkov.",
reqChkByNode: "Nič niste izbrali.",
requiredChk: "To polje je obvezno",
reqChkByName: "Prosim, izberite {label}.",
match: "To polje se mora ujemati z poljem {matchName}",
startDate: "datum začetka",
endDate: "datum konca",
currendDate: "trenuten datum",
afterDate: "Datum bi moral biti isti ali po {label}.",
beforeDate: "Datum bi moral biti isti ali pred {label}.",
startMonth: "Prosim, vnesite začetni datum",
sameMonth: "Ta dva datuma morata biti v istem mesecu - premeniti
morate eno ali drugo.",
creditcard: "Številka kreditne kartice ni pravilna. Preverite
številko ali poskusite še enkrat. Vnešenih {length} znakov.",
});
Locale.define("sv-SE", "Date", {
months: ["januari", "februari", "mars",
"april", "maj", "juni", "juli",
"augusti", "september", "oktober",
"november", "december"],
months_abbr: ["jan", "feb", "mar",
"apr", "maj", "jun", "jul",
"aug", "sep", "okt", "nov",
"dec"],
days: ["söndag", "måndag", "tisdag",
"onsdag", "torsdag", "fredag",
"lördag"],
days_abbr: ["sön", "mån", "tis",
"ons", "tor", "fre", "lör"],
dateOrder: ["year", "month", "date"],
shortDate: "%Y-%m-%d",
shortTime: "%H:%M",
AM: "",
PM: "",
firstDayOfWeek: 1,
ordinal: "",
lessThanMinuteAgo: "mindre än en minut sedan",
minuteAgo: "ungefär en minut sedan",
minutesAgo: "{delta} minuter sedan",
hourAgo: "ungefär en timme sedan",
hoursAgo: "ungefär {delta} timmar sedan",
dayAgo: "1 dag sedan",
daysAgo: "{delta} dagar sedan",
lessThanMinuteUntil: "mindre än en minut sedan",
minuteUntil: "ungefär en minut sedan",
minutesUntil: "{delta} minuter sedan",
hourUntil: "ungefär en timme sedan",
hoursUntil: "ungefär {delta} timmar sedan",
dayUntil: "1 dag sedan",
daysUntil: "{delta} dagar sedan",
});
Locale.define("sv-SE", "FormValidator", {
required: "Fältet är obligatoriskt.",
minLength: "Ange minst {minLength} tecken (du angav {length}
tecken).",
maxLength: "Ange högst {maxLength} tecken (du angav {length}
tecken). ",
integer: "Ange ett heltal i fältet. Tal med decimaler (t.ex.
1,25) är inte tillåtna.",
numeric: 'Ange endast numeriska värden i detta fält (t.ex.
"1" eller "1.1" eller "-1" eller
"-1,1").',
digits: "Använd endast siffror och skiljetecken i detta fält
(till exempel ett telefonnummer med bindestreck tillåtet).",
alpha: "Använd endast bokstäver (a-ö) i detta fält. Inga
mellanslag eller andra tecken är tillåtna.",
alphanum: "Använd endast bokstäver (a-ö) och siffror (0-9) i
detta fält. Inga mellanslag eller andra tecken är tillåtna.",
dateSuchAs: "Ange ett giltigt datum som t.ex. {date}",
dateInFormatMDY: 'Ange ett giltigt datum som t.ex. YYYY-MM-DD
(i.e. "1999-12-31")',
email: 'Ange en giltig e-postadress. Till exempel
"erik@domain.com".',
url: "Ange en giltig webbadress som http://www.example.com.",
currencyDollar: "Ange en giltig belopp. Exempelvis 100,00.",
oneRequired: "Vänligen ange minst ett av dessa alternativ.",
errorPrefix: "Fel: ",
warningPrefix: "Varning: ",
noSpace: "Det får inte finnas några mellanslag i detta
fält.",
reqChkByNode: "Inga objekt är valda.",
requiredChk: "Detta är ett obligatoriskt fält.",
reqChkByName: "Välj en {label}.",
match: "Detta fält måste matcha {matchName}",
startDate: "startdatumet",
endDate: "slutdatum",
currendDate: "dagens datum",
afterDate: "Datumet bör vara samma eller senare än
{label}.",
beforeDate: "Datumet bör vara samma eller tidigare än
{label}.",
startMonth: "Välj en start månad",
sameMonth: "Dessa två datum måste vara i samma månad - du
måste ändra det ena eller det andra.",
});
(function () {
var a = function (j, e, c, i, b) {
var h = (j / 10).toInt(),
g = j % 10,
f = (j / 100).toInt();
if (h == 1 && j > 10) {
return i;
}
if (g == 1) {
return e;
}
if (g > 0 && g < 5) {
return c;
}
return i;
};
Locale.define("uk-UA", "Date", {
months: ["Січень", "Лютий",
"Березень", "Квітень",
"Травень", "Червень",
"Липень", "Серпень",
"Вересень", "Жовтень",
"Листопад", "Грудень"],
months_abbr: ["Січ", "Лют",
"Бер", "Квіт", "Трав",
"Черв", "Лип", "Серп",
"Вер", "Жовт", "Лист",
"Груд"],
days: ["Неділя", "Понеділок",
"Вівторок", "Середа",
"Четвер", "П'ятниця",
"Субота"],
days_abbr: ["Нд", "Пн", "Вт",
"Ср", "Чт", "Пт", "Сб"],
dateOrder: ["date", "month", "year"],
shortDate: "%d/%m/%Y",
shortTime: "%H:%M",
AM: "до полудня",
PM: "по полудню",
firstDayOfWeek: 1,
ordinal: "",
lessThanMinuteAgo: "меньше хвилини
тому",
minuteAgo: "хвилину тому",
minutesAgo: function (b) {
return "{delta} " + a(b, "хвилину",
"хвилини", "хвилин") + "
тому";
},
hourAgo: "годину тому",
hoursAgo: function (b) {
return "{delta} " + a(b, "годину",
"години", "годин") + " тому";
},
dayAgo: "вчора",
daysAgo: function (b) {
return "{delta} " + a(b, "день",
"дня", "днів") + " тому";
},
weekAgo: "тиждень тому",
weeksAgo: function (b) {
return "{delta} " + a(b, "тиждень",
"тижні", "тижнів") + " тому";
},
monthAgo: "місяць тому",
monthsAgo: function (b) {
return "{delta} " + a(b, "місяць",
"місяці", "місяців") + "
тому";
},
yearAgo: "рік тому",
yearsAgo: function (b) {
return "{delta} " + a(b, "рік",
"роки", "років") + " тому";
},
lessThanMinuteUntil: "за мить",
minuteUntil: "через хвилину",
minutesUntil: function (b) {
return "через {delta} " + a(b,
"хвилину", "хвилини",
"хвилин");
},
hourUntil: "через годину",
hoursUntil: function (b) {
return "через {delta} " + a(b,
"годину", "години",
"годин");
},
dayUntil: "завтра",
daysUntil: function (b) {
return "через {delta} " + a(b,
"день", "дня", "днів");
},
weekUntil: "через тиждень",
weeksUntil: function (b) {
return "через {delta} " + a(b,
"тиждень", "тижні",
"тижнів");
},
monthUntil: "через місяць",
monthesUntil: function (b) {
return "через {delta} " + a(b,
"місяць", "місяці",
"місяців");
},
yearUntil: "через рік",
yearsUntil: function (b) {
return "через {delta} " + a(b,
"рік", "роки", "років");
},
});
})();
Locale.define("uk-UA", "FormValidator", {
required: "Це поле повинне бути
заповненим.",
minLength: "Введіть хоча б {minLength}
символів (Ви ввели {length}).",
maxLength: "Кількість символів не може
бути більше {maxLength} (Ви ввели {length}).",
integer: "Введіть в це поле число.
Дробові числа (наприклад 1.25) не
дозволені.",
numeric: 'Введіть в це поле число
(наприклад "1" або "1.1", або
"-1", або "-1.1").',
digits: "В цьому полі ви можете
використовувати лише цифри і знаки
пунктіації (наприклад, телефонний номер
з знаками дефізу або з крапками).",
alpha: "В цьому полі можна
використовувати лише латинські літери
(a-z). Пробіли і інші символи
заборонені.",
alphanum: "В цьому полі можна
використовувати лише латинські літери
(a-z) і цифри (0-9). Пробіли і інші символи
заборонені.",
dateSuchAs: "Введіть коректну дату
{date}.",
dateInFormatMDY: 'Введіть дату в форматі
ММ/ДД/РРРР (наприклад "12/31/2009").',
email: 'Введіть коректну адресу
електронної пошти (наприклад
"name@domain.com").',
url: "Введіть коректне
інтернет-посилання (наприклад
http://www.example.com).",
currencyDollar: 'Введіть суму в доларах
(наприклад "$100.00").',
oneRequired: "Заповніть одне з полів.",
errorPrefix: "Помилка: ",
warningPrefix: "Увага: ",
noSpace: "Пробіли заборонені.",
reqChkByNode: "Не відмічено жодного
варіанту.",
requiredChk: "Це поле повинне бути
віміченим.",
reqChkByName: "Будь ласка, відмітьте
{label}.",
match: "Це поле повинно відповідати
{matchName}",
startDate: "початкова дата",
endDate: "кінцева дата",
currendDate: "сьогоднішня дата",
afterDate: "Ця дата повинна бути такою ж,
або пізнішою за {label}.",
beforeDate: "Ця дата повинна бути такою ж,
або ранішою за {label}.",
startMonth: "Будь ласка, виберіть
початковий місяць",
sameMonth: "Ці дати повинні відноситись
одного і того ж місяця. Будь ласка,
змініть одну з них.",
creditcard: "Номер кредитної карти
введений неправильно. Будь ласка,
перевірте його. Введено {length}
символів.",
});
Locale.define("zh-CHS", "Date", {
months: ["一月", "二月", "三月",
"四月", "五月", "六月",
"七月", "八月", "九月",
"十月", "十一月", "十二月"],
months_abbr: ["一", "二", "三",
"四", "五", "六", "七",
"八", "九", "十", "十一",
"十二"],
days: ["星期日", "星期一",
"星期二", "星期三", "星期四",
"星期五", "星期六"],
days_abbr: ["日", "一", "二",
"三", "四", "五", "六"],
dateOrder: ["year", "month", "date"],
shortDate: "%Y-%m-%d",
shortTime: "%I:%M%p",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "",
lessThanMinuteAgo: "不到1分钟前",
minuteAgo: "大约1分钟前",
minutesAgo: "{delta}分钟之前",
hourAgo: "大约1小时前",
hoursAgo: "大约{delta}小时前",
dayAgo: "1天前",
daysAgo: "{delta}天前",
weekAgo: "1星期前",
weeksAgo: "{delta}星期前",
monthAgo: "1个月前",
monthsAgo: "{delta}个月前",
yearAgo: "1年前",
yearsAgo: "{delta}年前",
lessThanMinuteUntil: "从现在开始不到1分钟",
minuteUntil: "从现在开始約1分钟",
minutesUntil: "从现在开始约{delta}分钟",
hourUntil: "从现在开始1小时",
hoursUntil: "从现在开始约{delta}小时",
dayUntil: "从现在开始1天",
daysUntil: "从现在开始{delta}天",
weekUntil: "从现在开始1星期",
weeksUntil: "从现在开始{delta}星期",
monthUntil: "从现在开始一个月",
monthsUntil: "从现在开始{delta}个月",
yearUntil: "从现在开始1年",
yearsUntil: "从现在开始{delta}年",
});
Locale.define("zh-CHT", "Date", {
months: ["一月", "二月", "三月",
"四月", "五月", "六月",
"七月", "八月", "九月",
"十月", "十一月", "十二月"],
months_abbr: ["一", "二", "三",
"四", "五", "六", "七",
"八", "九", "十", "十一",
"十二"],
days: ["星期日", "星期一",
"星期二", "星期三", "星期四",
"星期五", "星期六"],
days_abbr: ["日", "一", "二",
"三", "四", "五", "六"],
dateOrder: ["year", "month", "date"],
shortDate: "%Y-%m-%d",
shortTime: "%I:%M%p",
AM: "AM",
PM: "PM",
firstDayOfWeek: 1,
ordinal: "",
lessThanMinuteAgo: "不到1分鐘前",
minuteAgo: "大約1分鐘前",
minutesAgo: "{delta}分鐘之前",
hourAgo: "大約1小時前",
hoursAgo: "大約{delta}小時前",
dayAgo: "1天前",
daysAgo: "{delta}天前",
weekAgo: "1星期前",
weeksAgo: "{delta}星期前",
monthAgo: "1个月前",
monthsAgo: "{delta}个月前",
yearAgo: "1年前",
yearsAgo: "{delta}年前",
lessThanMinuteUntil: "從現在開始不到1分鐘",
minuteUntil: "從現在開始約1分鐘",
minutesUntil: "從現在開始約{delta}分鐘",
hourUntil: "從現在開始1小時",
hoursUntil: "從現在開始約{delta}小時",
dayUntil: "從現在開始1天",
daysUntil: "從現在開始{delta}天",
weekUntil: "從現在開始1星期",
weeksUntil: "從現在開始{delta}星期",
monthUntil: "從現在開始一個月",
monthsUntil: "從現在開始{delta}個月",
yearUntil: "從現在開始1年",
yearsUntil: "從現在開始{delta}年",
});
Locale.define("zh-CHS", "FormValidator", {
required: "此项必填。",
minLength: "请至少输入 {minLength} 个字符 (已输入
{length} 个)。",
maxLength: "最多只能输入 {maxLength} 个字符 (已输入
{length} 个)。",
integer:
'请输入一个整数,不能包含小数点。例如:"1",
"200"。',
numeric: '请输入一个数字,例如:"1",
"1.1", "-1", "-1.1"。',
digits:
"请输入由数字和标点符号组成的内容。例如电话号码。",
alpha: "请输入 A-Z 的 26
个字母,不能包含空格或任何其他字符。",
alphanum: "请输入 A-Z 的 26 个字母或 0-9 的 10
个数字,不能包含空格或任何其他字符。",
dateSuchAs:
"请输入合法的日期格式,如:{date}。",
dateInFormatMDY:
'请输入合法的日期格式,例如:YYYY-MM-DD
("2010-12-31")。',
email:
'请输入合法的电子信箱地址,例如:"fred@domain.com"。',
url: "请输入合法的 Url
地址,例如:http://www.example.com。",
currencyDollar:
"请输入合法的货币符号,例如:¥100.0",
oneRequired: "请至少选择一项。",
errorPrefix: "错误:",
warningPrefix: "警告:",
noSpace: "不能包含空格。",
reqChkByNode: "未选择任何内容。",
requiredChk: "此项必填。",
reqChkByName: "请选择 {label}.",
match: "必须与{matchName}相匹配",
startDate: "起始日期",
endDate: "结束日期",
currendDate: "当前日期",
afterDate: "日期必须等于或晚于 {label}.",
beforeDate: "日期必须早于或等于 {label}.",
startMonth: "请选择起始月份",
sameMonth:
"您必须修改两个日期中的一个,以确保它们在同一月份。",
creditcard:
"您输入的信用卡号码不正确。当前已输入{length}个字符。",
});
Locale.define("zh-CHT", "FormValidator", {
required: "此項必填。 ",
minLength: "請至少輸入{minLength} 個字符(已輸入{length}
個)。 ",
maxLength: "最多只能輸入{maxLength}
個字符(已輸入{length} 個)。 ",
integer:
'請輸入一個整數,不能包含小數點。例如:"1",
"200"。 ',
numeric: '請輸入一個數字,例如:"1",
"1.1", "-1", "-1.1"。 ',
digits:
"請輸入由數字和標點符號組成的內容。例如電話號碼。
",
alpha: "請輸入AZ 的26
個字母,不能包含空格或任何其他字符。 ",
alphanum: "請輸入AZ 的26 個字母或0-9 的10
個數字,不能包含空格或任何其他字符。 ",
dateSuchAs: "請輸入合法的日期格式,如:{date}。
",
dateInFormatMDY:
'請輸入合法的日期格式,例如:YYYY-MM-DD
("2010-12-31")。 ',
email:
'請輸入合法的電子信箱地址,例如:"fred@domain.com"。
',
url: "請輸入合法的Url
地址,例如:http://www.example.com。 ",
currencyDollar:
"請輸入合法的貨幣符號,例如:¥100.0",
oneRequired: "請至少選擇一項。 ",
errorPrefix: "錯誤:",
warningPrefix: "警告:",
noSpace: "不能包含空格。 ",
reqChkByNode: "未選擇任何內容。 ",
requiredChk: "此項必填。 ",
reqChkByName: "請選擇 {label}.",
match: "必須與{matchName}相匹配",
startDate: "起始日期",
endDate: "結束日期",
currendDate: "當前日期",
afterDate: "日期必須等於或晚於{label}.",
beforeDate: "日期必須早於或等於{label}.",
startMonth: "請選擇起始月份",
sameMonth:
"您必須修改兩個日期中的一個,以確保它們在同一月份。
",
creditcard:
"您輸入的信用卡號碼不正確。當前已輸入{length}個字符。
",
});
Form.Validator.add("validate-currency-yuan", {
errorMsg: function () {
return Form.Validator.getMsg("currencyYuan");
},
test: function (a) {
return Form.Validator.getValidator("IsEmpty").test(a) ||
/^¥?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(a.get("value"));
},
});