(function(m) {
var c = function(d, e) {
if (typeof d === "object") {
return d
}
if (!e) {
e = document
}
return e.querySelector(d)
},
a = function(d, e) {
if (!e) {
e = document
}
return e.querySelectorAll(d)
};
c.support = function(d) {
return {
classList: document && document.body && !! document.body.classList,
postMessage: !! m.postMessage
}[d]
};
c.indexOf = function(d, g) {
if (Array.prototype.indexOf) {
return Array.prototype.indexOf.call(d, g)
}
var f, e;
for (f = 0, e = d.length; f < e; f++) {
if (d[f] === g) {
return f
}
}
return -1
};
c.addClass = function(e, d) {
if (!e) {
return
}
if (c.support("classList")) {
e.classList.add(d)
} else {
if (c.indexOf(e.className.split(/\s+/), d) === -1) {
e.className += " " + d
}
}
};
c.removeClass = function(j, f) {
if (!j) {
return
}
if (c.support("classList")) {
j.classList.remove(f)
} else {
var d = j.className.split(/\s+/),
g = [],
h, e;
for (h = 0, e = d.length; h < e; h++) {
if (d[h] !== f) {
g.push(d[h])
}
}
if (g.length) {
j.className = g.join(" ")
}
}
};
c.hasClass = function(e, d) {
if (!e) {
return
}
var f;
if (c.support("classList")) {
f = e.classList.contains(d)
} else {
f = c.indexOf(e.className.split(/\s+/), d) !== -1
}
return f
};
c.urldecode = function(j) {
var g = {},
d = j.split("&"),
h, f, e;
if (!j) {
return g
}
for (f = 0, e = d.length; f < e; f++) {
h = d[f].split("=");
g[h[0]] = decodeURIComponent(h[1]) || ""
}
return g
};
c.getQueryParams = function(d) {
d = d ? d : location.search;
if (d.indexOf("?") > -1) {
d = d.split("?")[1];
if (d.indexOf("#") > -1) {
d = d.split("#")[0]
}
} else {
if (d.indexOf("#") > -1) {
d = d.split("#")[1]
}
}
if (!d) {
return {}
}
return c.urldecode(d)
};
c.extend = function(d) {
d = d || {};
var g, e, f;
for (g = 1, e = arguments.length; g < e; g++) {
for (f in arguments[g]) {
if (arguments[g].hasOwnProperty(f)) {
d[f] = arguments[g][f]
}
}
}
return d
};
c.addEvent = function(f, d, e) {
if (!f) {
return
}
if (f.addEventListener) {
f.addEventListener(d, e, false)
} else {
if (f.attachEvent) {
f.attachEvent("on" + d, e)
} else {
f[d] = e
}
}
};
c.ajax = function(d) {
var g, j, k, h = {
type: "GET",
url: "",
data: null,
dataType: "",
timeout: null,
success: null,
error: null
};
function f() {
if (j.readyState === 4) {
if (k) {
clearTimeout(k)
}
if (j.status >= 200 && j.status < 300) {
if (h.success) {
h.success(h.dataType === "json" ? JSON.parse(j.responseText) : j.responseText, "success", j)
}
} else {
if (h.error) {
h.error(j, "error", j.statusText)
}
}
j.removeEventListener("readystatechange", f);
j = null
}
}
for (g in d) {
if (d.hasOwnProperty(g)) {
h[g] = d[g]
}
}
j = new XMLHttpRequest();
c.addEvent(j, "readystatechange", f);
try {
j.open(h.type, h.url)
} catch (i) {
return alert("maybe ajax cross domain. " + i)
}
if (h.type.toUpperCase() === "POST") {
j.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
}
if (h.timeout) {
k = setTimeout(function() {
j.abort();
j = null;
k = null
}, h.timeout)
}
j.send(h.data)
};
c.jsonp = function(d) {
function f(l) {
var j = [],
k;
for (k in l) {
if (l.hasOwnProperty(k)) {
j.push(encodeURIComponent(k) + "=" + encodeURIComponent(l[k]))
}
}
return j.join("&")
}
d = d || {
url: "",
data: {},
jsonp: "callback",
timeout: 20 * 1000
};
if (!d.url || !d.jsonp) {
throw new Error("Need url and jsonp attributes in the options.")
}
var i = ("jsonp_" + (new Date().getTime()) + "_" + Math.random()).replace(".", ""),
h = document.getElementsByTagName("head")[0],
e = document.createElement("script");
if (!d.data) {
d.data = {}
}
d.data[d.jsonp] = i;
h.appendChild(e);
m[i] = function(j) {
h.removeChild(e);
clearTimeout(e.timer);
m[i] = null;
if (d.success) {
d.success(j)
}
};
function g() {
clearTimeout(e.timer);
m[i] = null;
h.removeChild(e);
if (d.fail) {
d.fail({
message: "Timeout"
})
}
}
e.onerror = g;
e.src = d.url + (d.url.indexOf("?") === -1 ? "?" : "&") + f(d.data);
if (d.timeout) {
e.timer = setTimeout(g, d.timeout)
}
};
c.interpolate = function b(d, e) {
if (typeof d === "string") {
return d.replace(/{([^{}]*)}/g, function(g, f) {
var h = e[f];
return typeof h === "string" || typeof h === "number" ? h : g
})
}
return ""
};
c.htmlEncode = function(d) {
if (!d) {
return ""
}
return d.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/ /g, " ").replace(/\"/g, """).replace(/\'/g, "'").replace(/\n/g, "<br>")
};
c.ready = function(a) {
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', function() {
document.removeEventListener('DOMContentLoaded', arguments.callee, false);
a()
}, false)
} else if (document.attachEvent) {
document.attachEvent('onreadystatechange', function() {
if (document.readyState == 'complete') {
document.detachEvent('onreadystatechange', arguments.callee);
a()
}
})
}
};
c.each = function(a, b, c) {
var d, i = 0,
length = a.length,
isObj = length === undefined || typeof(a) == 'function';
if (c) {
if (isObj) {
for (d in a) {
if (b.apply(a[d], c) === false) {
break
}
}
} else {
for (; i < length;) {
if (b.apply(a[i++], c) === false) {
break
}
}
}
} else {
if (isObj) {
for (d in a) {
if (b.call(a[d], d, a[d]) === false) {
break
}
}
} else {
for (var e = a[0]; i < length && b.call(e, i, e) !== false; e = a[++i]) {}
}
}
return a
};
m.$ = c;
m.$.prototype=c;
m.$$ = a;
c.fn = c.prototype;
})(window);