Created
March 3, 2014 19:49
-
-
Save miketaylr/9333150 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if (!cGB) { | |
var cGB = true; | |
if (!cm_ClientID) { | |
var cm_ClientID = "99999999"; | |
} | |
if (!cm_HOST) { | |
var cm_HOST = "test.coremetrics.com/cm?"; | |
} | |
if (!cm_ClientTS) { | |
var dt = new Date(); | |
var cm_ClientTS = dt.getTime(); | |
} | |
if (!cm_TrackLink) { | |
var cm_TrackLink = ""; | |
} | |
if (!cm_DelayHandlerReg) { | |
var cm_DelayHandlerReg = "FL"; | |
} | |
if (!cm_SkipHandlerReg) { | |
var cm_SkipHandlerReg = ""; | |
} | |
if (!cm_TrackTime) { | |
var cm_TrackTime = false; | |
} | |
if (!cm_TrackImpressions) { | |
var cm_TrackImpressions = ""; | |
} | |
if (!cm_SecureTags || cm_SecureTags == null) { | |
var cm_SecureTags = "|2|3|"; | |
} | |
if (!cm_FirstPartyDetect) { | |
var cm_FirstPartyDetect = false; | |
} | |
if (!cm_DownloadExtensions) { | |
var cm_DownloadExtensions = null; | |
} | |
if (!cm_UseUTF8) { | |
var cm_UseUTF8 = false; | |
} | |
if (!cm_FormError) { | |
var cm_FormError = ""; | |
} | |
if (cm_UseCookie == null) { | |
var cm_UseCookie = true; | |
} | |
if (!cm_TimeoutSecs) { | |
var cm_TimeoutSecs = 15; | |
} | |
if (!cm_OffsiteImpressionsEnabled) { | |
var cm_OffsiteImpressionsEnabled = false; | |
} | |
if (!cm_AvidHost) { | |
var cm_AvidHost = "data.cmcore.com/cookie-id.js?fn=cmSetAvid"; | |
} | |
var cm_AvidLoadTimedOut = false; | |
if (!cm_JSFEnabled) { | |
var cm_JSFEnabled = false; | |
} | |
if (!cm_JSFPCookieDomain) { | |
var cm_JSFPCookieDomain = null; | |
} | |
if (!cm_JSFMigrationEnabled) { | |
var cm_JSFMigrationEnabled = 0; | |
} | |
if (!cm_JSFSessionType) { | |
var cm_JSFSessionType = "I"; | |
} | |
if (!cm_JSFSessionTimeout) { | |
var cm_JSFSessionTimeout = 1800; | |
} | |
if (!cm_JSFCoreCookieName) { | |
var cm_JSFCoreCookieName = "CoreID6"; | |
} | |
if (!cm_JSFSpecCookieNames) { | |
var cm_JSFSpecCookieNames = new Array(); | |
} | |
if (!cmUA) { | |
var cmUA = new Object(); | |
cmUA.MSIE = 2083; | |
} | |
if (!cmDefaultLimit) { | |
var cmDefaultLimit = 8197; | |
} | |
if (cGQ == null) { | |
var cGQ = true; | |
} | |
if (!cGO) { | |
var cGO = 1024; | |
} | |
if (!cGR) { | |
var cGR = 6e5; | |
} | |
if (!encodeURIComponent) { | |
var encodeURIComponent = null; | |
} | |
var cG8; | |
var cG8Index; | |
var cG6 = document; | |
var cGT; | |
var cG7 = new _cG7(); | |
cG6.cmTagCtl = cG7; | |
var CI = cmStartTagSet; | |
var CJ = cmSendTagSet; | |
var cG1 = 0; | |
var cG0 = new Array("vn1", "vn2", "st", "pi", "rs", "ec", "rf", "ul"); | |
var cmLastPageID = null; | |
var cGA = null; | |
var cmMigrationDisabled = 0; | |
var cmMigrationFrom1p_CM = 1; | |
var cmMigrationFrom1p_SA = 2; | |
var cmValidFlag_SessionContinue = 1; | |
var cmValidFlag_NewSession = 2; | |
var cmValidFlag_NewVisitor = 4; | |
var cmValidFlag_SessionReset = 32; | |
var cmSACookieName = "sauid"; | |
var cmCore_JSFParamEnabled = "cjen"; | |
var cmCore_JSFParamUserID = "cjuid"; | |
var cmCore_JSFParamSessionID = "cjsid"; | |
var cmCore_JSFParamValidFlag = "cjvf"; | |
var cmCore_JSFParamSpecCookiesCount = "cjscc"; | |
var cmCore_JSFParamSpecCookiesNames = "cjscn"; | |
var cmCore_JSFParamSpecCookiesValues = "cjscv"; | |
var cmSpecCookieNames = ""; | |
var cmSpecCookieValues = ""; | |
var cmSpecCookiesCount = 0; | |
if (!cG4) { | |
var cG4 = 5e3; | |
} | |
if (!cG5) { | |
var cG5 = 200; | |
} | |
var cG2 = new Object(); | |
var cG3 = new Object(); | |
var cGM = navigator.appVersion; | |
var cGN = navigator.userAgent; | |
var cGS = cGN.indexOf("Opera") >= 0; | |
var cGU = cGN.indexOf("Safari") >= 0; | |
var cmT2 = -1; | |
var cmT3 = -1; | |
var cGC = ""; | |
var cGD = ""; | |
var cGE = ""; | |
var cGF = ""; | |
var cGG = ""; | |
var cGH = ""; | |
var cGI = ""; | |
var cGJ = ""; | |
var cGK = ""; | |
var cGL = ""; | |
var chost = null; | |
var cci = null; | |
CI(); | |
for (var cmSpecCookieIndex = 0; cmSpecCookieIndex < cm_JSFSpecCookieNames.length; cmSpecCookieIndex++) { | |
var currSpecCookieName = cm_JSFSpecCookieNames[cmSpecCookieIndex]; | |
var currSpecCookieValue = cI(cm_JSFSpecCookieNames[cmSpecCookieIndex]); | |
if (currSpecCookieValue == null) { | |
continue; | |
} | |
if (currSpecCookieValue.length == 0) { | |
continue; | |
} | |
cmSpecCookieNames = cmSpecCookieNames + (cmSpecCookieNames != "" ? "|" : "") + escape(currSpecCookieName); | |
cmSpecCookieValues = cmSpecCookieValues + (cmSpecCookieValues != "" ? "|" : "") + escape(currSpecCookieValue); | |
cmSpecCookiesCount++; | |
} | |
var dt = new Date(); | |
var cmYearOffset = 0; | |
if (dt.getFullYear) { | |
cmYearOffset = dt.getFullYear(); | |
} else { | |
cmYearOffset = dt.getYear(); | |
if (cmYearOffset < 1900) { | |
cmYearOffset += 1900; | |
} | |
} | |
dt.setYear(cmYearOffset + 15); | |
var cmCookieExpDate = dt.toGMTString(); | |
if (cm_UseCookie) { | |
var pi = cI("cmRS", "pi", ""); | |
if (pi != "") { | |
cmLastPageID = pi; | |
} | |
chost = cm_HOST; | |
cm_HOST = cI("cmRS", "ho", chost); | |
cci = cm_ClientID; | |
cm_ClientID = cI("cmRS", "ci", cci); | |
var cT3 = cI("cmRS", "t3", ""); | |
if (cT3 != "") { | |
cGA = cT3; | |
} | |
var jsfpdata = cI("cmRS", "cjen", ""); | |
if (jsfpdata != "") { | |
cm_JSFEnabled = true; | |
} | |
var cT1 = cI("cmRS", "t1", ""); | |
if (cT1 != "" && (!cGA || cm_ClientTS - cGA < cGR)) { | |
cmAddShared("st", cT1); | |
var ul = cI("cmRS", "ul", ""); | |
var rf = cI("cmRS", "rf", ""); | |
var cT2 = cI("cmRS", "t2", ""); | |
var cT4 = cI("cmRS", "t4", ""); | |
if (cm_TrackTime) { | |
cN(cT1, cT2, cT3, cT4, true, pi); | |
} | |
var hr = cI("cmRS", "hr", ""); | |
if (hr != "") { | |
var ti = cI("cmRS", "lti", ""); | |
if (cm_ClientTS - ti < cGR) { | |
var nm = cI("cmRS", "ln", ""); | |
cM(cT1, ti, nm, hr, true, pi, ul, rf); | |
} | |
} | |
var cV6 = cI("cmRS", "ac", ""); | |
var cV7 = cI("cmRS", "fd", ""); | |
if (cV6 != "" || cV7 != "") { | |
var ti = cI("cmRS", "fti", ""); | |
if (cm_ClientTS - ti < cGR) { | |
var cV9 = cI("cmRS", "fn", ""); | |
var cV0 = cI("cmRS", "fu", ""); | |
cL(cT1, ti, cV9, cV6, cV0, cV7, true, pi, ul, rf); | |
} | |
} | |
var cError = unescape(cI("cmRS", "uer", "")); | |
CH(cT1, cT3, cError, true, pi); | |
} | |
CC("cmRS"); | |
} | |
if (!cGS && (cF(4) || CD(5))) { | |
this.onload = cK(this, "onload", this.onload, "cY(e)", cY); | |
this.onunload = cK(this, "onunload", this.onunload, "cZ(e)", cZ); | |
if (cm_DelayHandlerReg.indexOf("L") == -1) { | |
window.cX("main"); | |
} | |
if (cm_DelayHandlerReg.indexOf("F") == -1) { | |
cU(); | |
} | |
} | |
CJ(1); | |
if (cm_OffsiteImpressionsEnabled) { | |
var cm_Avid = cI("CMAVID"); | |
if (cm_Avid == null) { | |
document.write("<script src='" + C8(null) + "//" + cm_AvidHost + "' language='javascript1.1' type='text/javascript'></script>"); | |
var cm_AvidLoadTimer = setTimeout("cm_AvidLoadTimedOut=true", 2e3); | |
} | |
} | |
if (chost) { | |
cm_HOST = chost; | |
} | |
if (cci) { | |
cm_ClientID = cci; | |
} | |
} | |
var cI = cI; | |
var cE = cE; | |
function cmStartTagSet() { | |
if (cG8) { | |
return; | |
} | |
cG8 = new Array(); | |
cG8[0] = new _cm(); | |
cG8Index = 1; | |
} | |
function cmAddShared(a, b) { | |
if (cG8) { | |
cG8[0][a] = b; | |
} | |
} | |
function cmSendTagSet() { | |
var b; | |
var a = cG8; | |
while ((b = C7(arguments[0])) != null) { | |
setTimeout(function(c) { | |
c9(c, a[0].ci); | |
}, 2e3, b); | |
} | |
cG8 = null; | |
} | |
function CQ(b, c, a) { | |
this.pl = b; | |
this.hosts = c.split(","); | |
if (a) { | |
this.qs = a; | |
} | |
this.cM5 = CR; | |
} | |
function CR() { | |
var b = arguments; | |
var c = b[0] ? b[0] : this.hosts[0]; | |
return this.pl + "//" + c + (this.qs ? this.qs : ""); | |
} | |
function _cG7() { | |
this.cM0 = new Object(); | |
this.uls = new Object(); | |
this.rfs = new Object(); | |
this.cTI = new Array(); | |
this.cPE = 0; | |
this.normalizeURL = c2; | |
this.getPageID = c1; | |
this.getPluginPageID = cmGetPluginPageID; | |
} | |
function cmGetPluginPageID(a) { | |
splitClientIDs = cm_ClientID.split(";"); | |
finalClientID = a; | |
for (var b = 0; b < splitClientIDs.length; b++) { | |
if (splitClientIDs[b] == a) { | |
finalClientID = cm_ClientID; | |
break; | |
} | |
} | |
return this.getPageID(finalClientID); | |
} | |
function c1(a) { | |
var b = cG7.cM0[a]; | |
return b ? b : ""; | |
} | |
function CS(b) { | |
var a = cG7.uls[b]; | |
if (!a) { | |
a = window.location.href; | |
} | |
return a ? a : ""; | |
} | |
function CT(b) { | |
var a = cG7.rfs[b]; | |
if (!a) { | |
a = cG6.referrer; | |
} | |
return a ? a : ""; | |
} | |
function CP(d) { | |
var f = cGT; | |
if (!f) { | |
f = cGT = cG7.normalizeURL(window.location.href, false); | |
} | |
var c = d.indexOf("#"); | |
if (c >= 0 && c <= f.length) { | |
var b = f.indexOf("#"); | |
if (b < 0) { | |
b = f.length; | |
} | |
if (d.substring(0, c) == f.substring(0, b)) { | |
return d.substring(c); | |
} | |
} | |
return d; | |
} | |
function c2(b, a) { | |
if (a) { | |
b = CP(b); | |
var c = window.location.protocol + "//" + window.location.host; | |
if (b.indexOf(c) == 0) { | |
b = b.substring(c.length); | |
} | |
} | |
return cD(b); | |
} | |
function c4() { | |
for (var a in cmUA) { | |
if (cGM.indexOf(a) != -1) { | |
return cmUA[a]; | |
} | |
} | |
return cmDefaultLimit; | |
} | |
function C0(a) { | |
if (cG7) { | |
if (cG7.cTI && cG7.cTI[a]) { | |
cG7.cTI[a].cmLD = true; | |
if (cG7.cTI[a].ci) { | |
cmJSFSetValidFlagValue(cmValidFlag_SessionContinue, false, cG7.cTI[a].ci); | |
cmJSFSetSessionCookies(false, cG7.cTI[a].ci); | |
} | |
} | |
cG7.cPE--; | |
if (cG7.onResponse) { | |
cG7.onResponse(a); | |
} | |
} | |
dontExit = false; | |
} | |
function CN(b) { | |
if (cG7) { | |
cG7.cPE--; | |
var a = null; | |
if (cG7.cTI && cG7.cTI[b]) { | |
a = cG7.cTI[b]; | |
a.cmLD = true; | |
} | |
if (cG7.onError && (!a || !a.cmTO)) { | |
cG7.onError(3, a); | |
} | |
} | |
} | |
function c6(a, b) { | |
if (cG3) { | |
cG3[a] = true; | |
} | |
C0(b); | |
} | |
function CO(b) { | |
if (cG7 && cG7.cTI && cG7.cTI[b] && !cG7.cTI[b].cmLD) { | |
var a = cG7.cTI[b]; | |
a.cmTO = a.src; | |
if (cG7.onError) { | |
cG7.onError(4, a.cmTO); | |
} | |
} | |
} | |
function c8(b) { | |
if (!cG3 || cG3[b]) { | |
return true; | |
} | |
var a = new Date(); | |
if (a.getTime() - cG2[b] > cG4) { | |
return true; | |
} | |
return false; | |
} | |
function CV(h, d, b) { | |
if (!b) { | |
b = cm_ClientID; | |
} | |
if ((!cG2[h] || c8(h)) && (cm_OffsiteImpressionsEnabled == false || cm_Avid != null || cm_AvidLoadTimedOut)) { | |
var c = new Image(); | |
var f = cG1; | |
cG7.cTI[cG1++] = c; | |
if (!cG2[h]) { | |
var g = new Date(); | |
cG2[h] = g.getTime(); | |
c.onload = new Function("if(c6)c6('" + h + "'," + f + ");"); | |
} else { | |
c.onload = new Function("if(C0)C0(" + f + ");"); | |
} | |
c.onerror = new Function("if(CN)CN(" + f + ");"); | |
if (cm_OffsiteImpressionsEnabled && cm_Avid != null) { | |
d += "&avid=" + cm_Avid; | |
} | |
var a = c4(); | |
if (d.length > a) { | |
d = d.substring(0, a - 6) + "&err=O"; | |
} | |
if (cG7.onTagSent) { | |
cG7.onTagSent(d, f); | |
} | |
c.src = d; | |
c.ci = b; | |
setTimeout("if(CO)CO(" + f + ");", cm_TimeoutSecs * 1e3); | |
} else { | |
setTimeout('if(CV)CV("' + h + '","' + d + '","' + b + '");', cG5); | |
} | |
} | |
function c9(a, c) { | |
if (cI("CMDisabled")) { | |
return; | |
} | |
for (var d = 0; d < a.hosts.length; d++) { | |
var b = a.cM5(a.hosts[d]); | |
cG7.cPE++; | |
CV(a.hosts[d], b, c); | |
} | |
} | |
function cC() { | |
if (!this.ul) { | |
if (this.tid == "8" || (this.tid == "9" || this.tid == "10")) { | |
this.ul = window.location.protocol + "//" + window.location.hostname; | |
} else { | |
this.ul = window.location.href; | |
} | |
} | |
if (cG8) { | |
cG8[cG8Index++] = this; | |
} else { | |
var a = this.getImgSrc(arguments[0], 1); | |
c9(a, this.ci); | |
return a; | |
} | |
} | |
function C4(c, d, b) { | |
if (!b) { | |
if (!c.rf) { | |
if (!document.referrer) { | |
d.rf = ""; | |
} else { | |
d.rf = document.referrer; | |
} | |
} else { | |
if (c != d) { | |
d.rf = c.rf; | |
} | |
} | |
if (!c.ul || c.ul == "" || c.ul == "(none)") { | |
d.ul = window.location.href; | |
} else { | |
if (c != d) { | |
d.ul = c.ul; | |
} | |
} | |
var a = cG7.normalizeURL(d.ul, false); | |
if (a != "") { | |
d.ul = a; | |
} | |
} | |
} | |
function C5(b, a) { | |
if (cm_FirstPartyDetect && !a) { | |
if (cI("cmRS") || cI("TestSess")) { | |
b.ts = "Y"; | |
} else { | |
CB("TestSess", "Y"); | |
b.ts = cI("TestSess"); | |
} | |
b.tp = cI("TestPerm"); | |
if (b.tp != "Y") { | |
dt.setHours(dt.getHours() + 5); | |
CB("TestPerm", "Y", dt.toGMTString()); | |
b.tp = cI("TestPerm"); | |
} | |
} | |
} | |
function C6(b, h, g) { | |
var a = ""; | |
if (b.tid) { | |
a += "tid=" + b.tid; | |
} | |
var d = b.tid == 1 || b.pc && b.pc.charAt(0) == "Y"; | |
if (!b.lp && d) { | |
b.lp = cmLastPageID; | |
} | |
for (var f in b) { | |
if (!b[f] || b[f] == "" || b[f].constructor == Function || f == "qs" || f == "tid") { | |
continue; | |
} | |
if (h && h[f] == b[f]) { | |
continue; | |
} | |
if (a != "") { | |
a += "&"; | |
} | |
a += cD(f) + "=" + cE(cD(b[f])); | |
} | |
if (!b.rs && b.ci) { | |
if (b.pi && d) { | |
cG7.cM0[b.ci] = b.pi; | |
} | |
if (b.ul) { | |
cG7.uls[b.ci] = b.ul; | |
} | |
if (b.rf) { | |
cG7.rfs[b.ci] = b.rf; | |
} | |
} | |
if (h && cm_SecureTags.indexOf("|" + b.tid + "|") != -1) { | |
h.protocol = "https:"; | |
} | |
if (cm_JSFEnabled && !g) { | |
cmJSFSetSessionCookies(false, b.ci); | |
a += (a != "" ? "&" : "") + cmCore_JSFParamEnabled + "=1"; | |
var c = cI(cm_JSFCoreCookieName); | |
a += "&" + cmCore_JSFParamUserID + "=" + (c != null ? c : ""); | |
a += "&" + cmCore_JSFParamSessionID + "=" + cmJSFGetSessionValue(b.ci); | |
if (cmSpecCookiesCount > 0) { | |
a += "&" + cmCore_JSFParamSpecCookiesCount + "=" + cmSpecCookiesCount; | |
a += "&" + cmCore_JSFParamSpecCookiesNames + "=" + cmSpecCookieNames; | |
a += "&" + cmCore_JSFParamSpecCookiesValues + "=" + cmSpecCookieValues; | |
} | |
a += "&" + cmCore_JSFParamValidFlag + "=" + cmJSFGetValidFlagValue(b.ci); | |
} | |
return a; | |
} | |
function C8(b) { | |
var a = location.protocol; | |
if (b && b.protocol) { | |
a = b.protocol; | |
} | |
if (a != "http:" && a != "https:") { | |
a = "http:"; | |
} | |
return a; | |
} | |
function c0() { | |
var c = arguments; | |
C4(this, this, c[0]); | |
C5(this, c[0]); | |
var f = new Object(); | |
var b = C6(this, f); | |
var d = new CQ(C8(f), cm_HOST, b); | |
return c[1] ? d : d.cM5(); | |
} | |
function C7() { | |
var g, n, b, r, f, c, o, d, k, q; | |
if (!cG8 || cG8.length < 2) { | |
return null; | |
} | |
g = cG8[0]; | |
n = cG8[1]; | |
g.ci = n.ci; | |
for (k = 2; k < cG8.length; k++) { | |
if (g.ci.indexOf(cG8[k].ci) == -1) { | |
g.ci += ";" + cG8[k].ci; | |
} | |
} | |
for (k = 0; k < cG0.length; k++) { | |
b = cG0[k]; | |
if (!g[b]) { | |
g[b] = n[b]; | |
} | |
} | |
r = arguments; | |
C4(n, g, r[0]); | |
C5(g, r[0]); | |
f = C8(g); | |
img = new CQ(f, cm_HOST); | |
img.qs = C6(g); | |
c = c4(); | |
o = 0; | |
for (var m = 0; m < img.hosts.length; m++) { | |
d = f.length + img.hosts[m].length + img.qs.length; | |
if (d > o) { | |
o = d; | |
} | |
} | |
for (k = 1; k < cG8.length; k++) { | |
q = C6(cG8[k], g, true); | |
if (k > 1 && o + q.length + 1 > c) { | |
for (j = 1; j < cG8.length - k + 1; j++) { | |
cG8[j] = cG8[j + k - 1]; | |
} | |
cG8.length = cG8.length - k + 1; | |
break; | |
} | |
o += q.length + 1; | |
img.qs += "&" + q; | |
} | |
if (k == cG8.length) { | |
cG8 = null; | |
} | |
return img; | |
} | |
function _cm() { | |
var d, b = arguments; | |
this.ci = cm_ClientID; | |
for (d = 0; d < b.length; d++) { | |
this[b[d]] = b[++d]; | |
} | |
this.write = cC; | |
this.getImgSrc = c0; | |
this.writeImg = cC; | |
this.st = cm_ClientTS; | |
this.vn1 = "4.2.7"; | |
if (cF(5.5) || !cF(0)) { | |
var c = cm_UseUTF8 && encodeURIComponent || cGU ? "utf-8" : cG6.charset; | |
if (!c) { | |
c = cG6.defaultCharset; | |
} | |
if (!c) { | |
c = cG6.characterSet; | |
} | |
this.ec = c; | |
} | |
} | |
function cD(a) { | |
var b = ""; | |
a = b + (!a ? "" : a); | |
return a.split("'").join(b).split('"').join(b).split("\r").join(b).split("\n").join(b); | |
} | |
function cE(d) { | |
var c = 0, b; | |
while (d.charAt(c) == " " && c != d.length) { | |
c++; | |
} | |
b = d.length - 1; | |
while (d.charAt(b) == " " && b != 0) { | |
b--; | |
} | |
d = d.substring(c, b + 1); | |
if (cm_UseUTF8 && encodeURIComponent) { | |
d = encodeURIComponent(d); | |
} else { | |
d = preEscape(d); | |
d = escape(d); | |
var a = new RegExp("%25u00", "g"); | |
d = d.replace(a, "%u00"); | |
} | |
d = d.split("+").join("%2B"); | |
return d; | |
} | |
function preEscape(c) { | |
for (var b = 160; b < 256; b++) { | |
var a = new RegExp(String.fromCharCode(b), "g"); | |
c = c.replace(a, "%u00" + b.toString(16)); | |
} | |
return c; | |
} | |
function cF(a) { | |
var b = cGM.indexOf("MSIE"); | |
if (b != -1) { | |
return parseFloat(cGM.substring(b + 5)) >= a; | |
} | |
return false; | |
} | |
function CD(a) { | |
return cGN.indexOf("Gecko") != -1 && parseInt(cGM) >= a; | |
} | |
function cI(b, a, d) { | |
var c = cG6.cookie; | |
var f = cJ(b, c, ";"); | |
if (!a || !f) { | |
if (!f && d != null) { | |
return d; | |
} | |
return f; | |
} | |
f = cJ(a, f, "&"); | |
if (!f && d != null) { | |
return d; | |
} | |
return unescape(f); | |
} | |
function CL() { | |
var f, a, b, d, g = 0; | |
a = cG6.cookie; | |
if (a) { | |
f = a.split(";"); | |
g = f.length; | |
for (d = 0; d < f.length; d++) { | |
b = f[d].split("="); | |
if (b.length < 2 || b[1] == null || b[1] == "") { | |
g--; | |
} | |
} | |
} | |
return g; | |
} | |
function CB(b, k, d, h) { | |
var g, a, f, c = cG6.cookie; | |
g = null; | |
a = k.length + 1; | |
if (!cI(b)) { | |
a += b.length; | |
} | |
if (a > 4096) { | |
g = 1; | |
} else { | |
if (c) { | |
if (CL() >= 50) { | |
g = 2; | |
} | |
} | |
} | |
if (g) { | |
if (cG7.onError) { | |
cG7.onError(g, name); | |
} | |
return false; | |
} | |
f = b + "=" + k + ";path=/"; | |
if (h) { | |
f += ";domain=" + h; | |
} | |
if (d) { | |
f += ";expires=" + d; | |
} | |
cG6.cookie = f; | |
return true; | |
} | |
function cmSetSubCookie(o, m, l, b, g) { | |
var f = cI(o); | |
var k; | |
if (!f) { | |
k = m + "=" + l; | |
} else { | |
var n = "&"; | |
var h = m + "="; | |
var c = f.indexOf(h); | |
if (c >= 0) { | |
if (c > 0 && f.charAt(c - 1) != n) { | |
c = f.indexOf(n + h); | |
if (c >= 0) { | |
c++; | |
} | |
} | |
} | |
if (c >= 0) { | |
var a = c + m.length + 1; | |
var d = f.indexOf(n, a); | |
if (d < 0) { | |
d = f.length; | |
} | |
k = f.substring(0, a) + l + f.substring(d); | |
} else { | |
k = f + n + m + "=" + l; | |
} | |
} | |
CB(o, k, b, g); | |
} | |
function CC(a, d) { | |
var b = cI(a); | |
if (b != null) { | |
var c = new Date(); | |
c.setYear(1973); | |
var b = a + "=;path=/;expires=" + c.toGMTString(); | |
if (d) { | |
b += ";domain=" + d; | |
} | |
cG6.cookie = b; | |
} | |
return b; | |
} | |
function cJ(a, k, c) { | |
var h, f, d, b, g = null; | |
h = a + "="; | |
f = c + " "; | |
d = k.indexOf(f + h); | |
if (d == -1) { | |
f = c; | |
d = k.indexOf(f + h); | |
} | |
if (d == -1) { | |
d = k.indexOf(h); | |
if (d != 0) { | |
return null; | |
} | |
} else { | |
d += f.length; | |
} | |
b = k.indexOf(f, d); | |
if (b == -1) { | |
b = k.length; | |
} | |
return k.substring(d + h.length, b); | |
} | |
function cK(a, b, k, h, g) { | |
if (k) { | |
var c = k.toString(); | |
if (c.indexOf(h) == -1) { | |
if (cGU && c.indexOf("function (") == 0) { | |
if (b == "onload") { | |
h = c.substring(c.indexOf("{"), c.length) + ";" + h + ";"; | |
} else { | |
h = h + ";" + c.substring(c.indexOf("{"), c.length); | |
} | |
} else { | |
a["_c_" + b] = k; | |
if (b == "onload") { | |
h = "if(!e)var e=null;var ret=this._c_" + b + "(" + (cF(5) ? "" : "e") + ");" + h + ";return ret;"; | |
} else { | |
h = "if(!e)var e=null;" + h + ";return this._c_" + b + "(" + (cF(5) ? "" : "e") + ");"; | |
} | |
} | |
if (b == "onsubmit") { | |
a.cmFunction1 = cP; | |
a.cmFunction2 = a.onsubmit; | |
return cmAlternateOnSubmit; | |
} else { | |
var d = new Function("e", h); | |
return d; | |
} | |
} else { | |
return k; | |
} | |
} else { | |
if (b == "onsubmit") { | |
a.cmFunction1 = cP; | |
return cmAlternateOnSubmit; | |
} else { | |
return g; | |
} | |
} | |
} | |
function cmAlternateOnSubmit(a) { | |
a = CG(a); | |
if (!a) { | |
if (document.cmPostbackForm) { | |
a = document.cmPostbackForm; | |
} else { | |
if (this.cmFunction1) { | |
a = this; | |
} else { | |
return true; | |
} | |
} | |
} else { | |
if (a) { | |
if (a.form) { | |
a = a.form; | |
} | |
} else { | |
return true; | |
} | |
} | |
if (a.cM1 >= 0) { | |
CI(); | |
cO(a ? a.cM1 : -1, "S"); | |
CA(1); | |
CJ(1); | |
CE(); | |
} | |
if (a.cmFunction2) { | |
return a.cmFunction2(); | |
} else { | |
return true; | |
} | |
} | |
function CG(a) { | |
var a; | |
if (cF(4)) { | |
if (window.event) { | |
a = window.event.srcElement; | |
} | |
} else { | |
if (a) { | |
if (CD(5)) { | |
a = a.currentTarget; | |
} else { | |
a = a.target; | |
} | |
} | |
} | |
return a; | |
} | |
function CU(a, b, h, c, g) { | |
var f, d; | |
a.pi = h ? h : c1(b); | |
if (cGQ) { | |
if (c || g) { | |
a.ul = c ? c : ""; | |
a.rf = g ? g : ""; | |
} else { | |
f = CS(b); | |
d = CT(b); | |
if (a.pi == "" || f.indexOf("cm_") > 0 || d != "" && d.indexOf(window.location.protocol + "//" + window.location.host) != 0) { | |
a.ul = f; | |
a.rf = d; | |
} | |
} | |
} | |
} | |
function cL(g, d, c, h, a, k, n, f, m, b) { | |
var l = new _cm("tid", "10"); | |
CU(l, l.ci, f, m, b); | |
l.st = g; | |
l.ti = d; | |
l.fo = c; | |
l.ac = h; | |
l.hr = a; | |
l.fi = k; | |
if (n) { | |
l.rs = "Y"; | |
} | |
l.write(1); | |
} | |
function cM(h, a, b, c, o, g, n, f) { | |
var m = new _cm("tid", "8"); | |
CU(m, m.ci, g, n, f); | |
m.st = h; | |
m.ti = a; | |
m.nm = b; | |
m.hr = c; | |
var k = c.indexOf("cm_cr="); | |
var d = c.indexOf("cm_me="); | |
if (k > -1) { | |
var l = c.indexOf("&", k); | |
if (l == -1) { | |
m.cm_cr = c.substring(k + 6); | |
} else { | |
m.cm_cr = c.substring(k + 6, l); | |
} | |
} | |
if (d > -1) { | |
var l = c.indexOf("&", d); | |
if (l == -1) { | |
m.cm_me = c.substring(d + 6); | |
} else { | |
m.cm_me = c.substring(d + 6, l); | |
} | |
} | |
if (o) { | |
m.rs = "Y"; | |
} | |
m.write(1); | |
} | |
function cN(g, f, b, d, c, h) { | |
var a = new _cm("tid", "11"); | |
a.pi = h ? h : c1(a.ci); | |
a.st = g; | |
a.lc = f; | |
a.lx = d; | |
a.cx = b; | |
if (c) { | |
a.rs = "Y"; | |
} | |
a.write(1); | |
} | |
function CM(d) { | |
var g, b, c, f; | |
if ((g = d.indexOf("?")) == -1) { | |
g = d.lastIndexOf("/"); | |
} | |
if (g != -1) { | |
b = d.indexOf("#", g); | |
if (b == -1) { | |
b = d.length; | |
} | |
while (g != -1 && g < b) { | |
g = d.indexOf("cm_", g); | |
if (g != -1) { | |
c = d.indexOf("&", g); | |
if (c == -1) { | |
c = b; | |
} | |
f = d.indexOf("=", g); | |
if (f != -1 && f < c) { | |
this[d.substring(g, f)] = d.substring(f + 1, c); | |
} | |
g = c; | |
} | |
} | |
} | |
} | |
function CK(b, g, f, a, d) { | |
var m, l, c, n, h, k; | |
if ((g || f) && b) { | |
m = new _cm("tid", "9"); | |
l = new CM(CP(b)); | |
if (g) { | |
c = m.cm_sp_o = l.cm_sp_o; | |
if (!c) { | |
c = m.cm_sp = l.cm_sp; | |
} | |
} | |
if (f) { | |
n = m.cm_re_o = l.cm_re_o; | |
if (!n) { | |
n = m.cm_re = l.cm_re; | |
} | |
} | |
if (a) { | |
if (b.indexOf("#") == -1) { | |
h = m.cm_cr = l.cm_cr; | |
} | |
} | |
if (d) { | |
k = m.cm_me = l.cm_me; | |
} | |
if (c || n || h || k) { | |
m.pi = c1(m.ci); | |
m.st = cm_ClientTS; | |
m.write(1); | |
} | |
} | |
} | |
function CH(d, c, g, b, f) { | |
if (g != cGL) { | |
var a = new _cm("tid", "12"); | |
a.pi = f ? f : c1(a.ci); | |
a.st = d; | |
a.ti = c; | |
if (b) { | |
a.rs = "Y"; | |
} | |
a.er = g; | |
a.write(1); | |
cGL = cm_FormError; | |
} | |
} | |
function cO(c, f) { | |
var d, a = ""; | |
f = c + ":" + f; | |
if (c != -1) { | |
var b = cG6.forms[c]; | |
if (cF(5)) { | |
a = b.attributes.action.nodeValue; | |
} else { | |
if (b.attributes.getNamedItem) { | |
a = b.attributes.getNamedItem("action"); | |
if (a) { | |
a = a.value; | |
} | |
} else { | |
a = b.action; | |
} | |
} | |
if (!a) { | |
a = ""; | |
} | |
} | |
if (cV(a)) { | |
d = new Date(); | |
cGH = d.getTime(); | |
cGF = f; | |
cGE = cG7.normalizeURL(a, true); | |
cL(cm_ClientTS, cGH, cGD, cGF, cGE, cGC, false); | |
cGG = cGC; | |
cGC = ""; | |
} else { | |
cGF = ""; | |
} | |
} | |
function cP(a) { | |
CI(); | |
var a = CG(a); | |
cO(a ? a.cM1 : -1, "S"); | |
CA(1); | |
CJ(1); | |
CE(); | |
} | |
function cQ(a) { | |
var a = CG(a); | |
if (a) { | |
cO(a.cM1, "R"); | |
} | |
} | |
function cR(a) { | |
var a = CG(a); | |
if (a) { | |
a.cM3 = "xyzzy"; | |
} | |
} | |
function cS(a) { | |
var a = CG(a); | |
if (a) { | |
a.cM3 = a.value; | |
} | |
} | |
function cT(c) { | |
var c = CG(c); | |
if (c && c.type != "submit" && c.type != "reset") { | |
if (c.value != c.cM3) { | |
var b = c.name; | |
if (!b) { | |
b = c.id; | |
} | |
var a = cGC + c.cM1 + ":" + c.cM2 + ":" + b.split(":").join("|").split(";").join("|") + ";"; | |
if (a.length < 1e3) { | |
cGC = a; | |
} | |
} | |
} | |
} | |
function CF(a) { | |
var a = CG(a); | |
if (a) { | |
cGC = cGC + a.cM1 + ":" + a.cM2 + ":" + a.name + ";"; | |
} | |
} | |
function cU() { | |
if (cm_SkipHandlerReg.indexOf("F") == -1) { | |
var c, d, b, a, f; | |
for (c = 0; c < cG6.forms.length; c++) { | |
d = cG6.forms[c]; | |
if (d.cM1 == null) { | |
d.cM1 = c; | |
if (cF(5)) { | |
if (d.attributes.name) { | |
b = d.attributes.name.nodeValue; | |
} else { | |
if (d.attributes.id) { | |
b = d.attributes.id.nodeValue; | |
} else { | |
b = "UNDEFINED"; | |
} | |
} | |
} else { | |
if (d.attributes.getNamedItem) { | |
b = d.attributes.getNamedItem("name"); | |
if (b) { | |
b = b.value; | |
} | |
} else { | |
b = d.name; | |
} | |
} | |
if (!b) { | |
b = ""; | |
} | |
cGD = cGD + b + ":" + c + ";"; | |
d.onsubmit = cK(d, "onsubmit", d.onsubmit, "cP(e)", cP); | |
d.onreset = cK(d, "onreset", d.onreset, "cQ(e)", cQ); | |
for (a = 0; a < d.elements.length; a++) { | |
f = d.elements[a]; | |
f.cM1 = c; | |
f.cM2 = a; | |
f.cM3 = ""; | |
f.onfocus = cK(f, "onfocus", f.onfocus, "cS(e)", cS); | |
f.onblur = cK(f, "onblur", f.onblur, "cT(e)", cT); | |
f.onchange = cK(f, "onchange", f.onchange, "cR(e)", cR); | |
if (f.type == "submit" || f.type == "button") { | |
f.onclick = cK(f, "onclick", f.onclick, "CF(e)", CF); | |
} | |
} | |
} | |
} | |
} | |
} | |
function cV(d) { | |
if (cm_TrackLink == true || cm_TrackLink == "A") { | |
return true; | |
} else { | |
if (cm_TrackLink == "E" && d.indexOf("/") != 0) { | |
return true; | |
} | |
var f; | |
if ((f = cm_DownloadExtensions) != null) { | |
var c = d.lastIndexOf("."); | |
if (c != -1) { | |
var a = d.substring(c); | |
for (var b = 0; b < f.length; b++) { | |
if (a == f[b]) { | |
return true; | |
} | |
} | |
} | |
} | |
return false; | |
} | |
} | |
function cW(a) { | |
CI(); | |
var a = CG(a); | |
if (a) { | |
C9(a); | |
} | |
CA(1); | |
CJ(1); | |
CE(); | |
} | |
function C9(f) { | |
cGI = ""; | |
cGJ = ""; | |
cGK = ""; | |
var b = f.tagName.toUpperCase(); | |
if (b == "AREA") { | |
cGJ = f.href ? f.href : ""; | |
var d = f.parentElement ? f.parentElement : f.parentNode; | |
if (d != null) { | |
cGI = d.name ? d.name : ""; | |
} | |
} else { | |
while (b != "A" && b != "HTML") { | |
if (!f.parentElement) { | |
f = f.parentNode; | |
} else { | |
f = f.parentElement; | |
} | |
if (f) { | |
b = f.tagName.toUpperCase(); | |
} | |
} | |
if (b == "A") { | |
cGJ = f.href ? f.href : ""; | |
cGI = f.name ? f.name : ""; | |
} | |
} | |
var g = f.getAttribute("manual_cm_re"); | |
if (g) { | |
cGJ = cGJ + (cGJ.indexOf("?") > -1 ? "&" : "?") + "cm_re=" + g; | |
} | |
var a = f.getAttribute("manual_cm_sp"); | |
if (a) { | |
cGJ = cGJ + (cGJ.indexOf("?") > -1 ? "&" : "?") + "cm_sp=" + a; | |
} | |
cGJ = cG7.normalizeURL(cGJ, true); | |
if (cV(cGJ) == true) { | |
var c = new Date(); | |
cGK = c.getTime(); | |
cM(cm_ClientTS, cGK, cGI, cGJ, false); | |
} else { | |
cGJ = ""; | |
} | |
} | |
function cX(l) { | |
CI(); | |
var f, g, a, h, d, b, c; | |
a = cm_TrackImpressions; | |
h = a.indexOf("S") != -1; | |
d = a.indexOf("R") != -1; | |
b = a.indexOf("C") != -1; | |
c = a.indexOf("C") != -1; | |
for (f = 0; f < cG6.links.length; f++) { | |
g = cG6.links[f]; | |
if (cm_SkipHandlerReg.indexOf("L") == -1) { | |
if (!CD(5)) { | |
g.onclick = cK(g, "onclick", g.onclick, "cW(e)", cW); | |
} else { | |
if (!g.cM4) { | |
g.addEventListener("click", cW, false); | |
g.cM4 = 1; | |
} | |
} | |
} | |
if (l == "onload") { | |
var k = g.href; | |
if (g.getAttribute("manual_cm_re")) { | |
if (g.href.indexOf("?") > -1) { | |
k = k + "&cm_re=" + g.getAttribute("manual_cm_re"); | |
} else { | |
k = k + "?cm_re=" + g.getAttribute("manual_cm_re"); | |
} | |
} | |
if (g.getAttribute("manual_cm_sp")) { | |
if (g.href.indexOf("?") > -1) { | |
k = k + "&cm_sp=" + g.getAttribute("manual_cm_sp"); | |
} else { | |
k = k + "?cm_sp=" + g.getAttribute("manual_cm_sp"); | |
} | |
} | |
if (!g.cmImpressionSent) { | |
CK(k, h, d, b, c); | |
g.cmImpressionSent = 1; | |
} | |
} | |
} | |
CJ(1); | |
} | |
function cY(b) { | |
var a = new Date(); | |
cmT2 = a.getTime(); | |
CH(cm_ClientTS, cmT2, cm_FormError, false); | |
if (!cGS && (cF(4) || CD(5))) { | |
window.cX("onload"); | |
cU(); | |
} | |
cGB = null; | |
} | |
function cZ(g) { | |
cG3 = null; | |
CI(); | |
var a = false; | |
if (cGC != "") { | |
cO(-1, "U"); | |
a = true; | |
} | |
CA(0); | |
CH(cm_ClientTS, cmT3, cm_FormError, false); | |
CJ(1); | |
if (a) { | |
dontExit = true; | |
var d = new Date(); | |
var c = new Date(); | |
for (;dontExit && c - d < 1e3; ) { | |
c = new Date(); | |
} | |
} | |
CE(); | |
if (cm_UseCookie && cG7.cPE == 0) { | |
var f = escape(c1(cm_ClientID)); | |
CB("cmRS", "t3=" + cmT3 + "&pi=" + f); | |
} | |
if (cG7.onUnload) { | |
cG7.onUnload(); | |
} | |
if (cF(5) && !cF(5.5) && window.parent != window) { | |
cG7.cTI = null; | |
} else { | |
if (!cGU) { | |
for (var b = 0; b < cG7.cTI.length; b++) { | |
cG7.cTI[b].onload = null; | |
cG7.cTI[b].onerror = null; | |
} | |
} | |
} | |
} | |
function CA(c) { | |
var b = new Date(); | |
var a = b.getTime(); | |
if (cm_TrackTime && (cmT3 == -1 || c == 1 || a - cmT3 > 1e4)) { | |
cN(cm_ClientTS, cmT2, a, cGA, false); | |
} | |
cmT3 = a; | |
} | |
function CE() { | |
if (cm_UseCookie) { | |
var b, a, g, d, c = ""; | |
b = cGA ? "&t4=" + cGA : ""; | |
a = cGJ != "" ? "<i=" + cGK + "&ln=" + escape(cGI) + "&hr=" + escape(cGJ) : ""; | |
g = new Object(); | |
CU(g, cm_ClientID); | |
var f = ""; | |
if (cm_JSFEnabled) { | |
f = "&cjen=1"; | |
} | |
d = "&t1=" + cm_ClientTS + "&t2=" + cmT2 + "&t3=" + cmT3 + b + a + "&fti=" + cGH + "&fn=" + escape(cGD) + "&ac=" + cGF + "&fd=" + escape(cGG) + "&uer=" + escape(cm_FormError) + "&fu=" + escape(cGE) + "&pi=" + escape(g.pi) + "&ho=" + escape(cm_HOST) + "&ci=" + escape(cm_ClientID); | |
if (g.ul && g.rf && g.ul.length + g.rf.length < cGO) { | |
c = "&ul=" + escape(g.ul) + "&rf=" + escape(g.rf); | |
} | |
if (!CB("cmRS", d + c + f)) { | |
if (!CB("cmRS", d + f)) { | |
CB("cmRS", "t3=" + cmT3 + "&pi=" + escape(g.pi) + f); | |
} | |
} | |
} | |
} | |
function cmSetAvid(a) { | |
clearTimeout(cm_AvidLoadTimer); | |
if (a) { | |
cm_Avid = a; | |
} else { | |
cm_Avid = ""; | |
} | |
CB("CMAVID", cm_Avid); | |
cm_AvidLoadTimedOut = false; | |
} | |
function cmJSFConvertSAtoCM(f) { | |
var b = f.length; | |
var d = 22; | |
var c = 23; | |
if (b < 19) { | |
return null; | |
} | |
if (f.charAt(0) != "U" && f.charAt(0) != "u") { | |
return null; | |
} | |
if (b < d) { | |
f = f + f.substring(b - (d - b), b); | |
} | |
var a = "99"; | |
a = a + f.substring(1, c - 1); | |
return a; | |
} | |
function cmJSFSetSessionCookies(c, b) { | |
if (!cm_JSFEnabled) { | |
return; | |
} | |
var a = b.split(";"); | |
for (var d = 0; d < a.length; d++) { | |
cmJSFSetSingleSessionCookie(c, a[d]); | |
} | |
} | |
function debugReadCookie(b) { | |
var f = b + "="; | |
var a = document.cookie.split(";"); | |
for (var d = 0; d < a.length; d++) { | |
var g = a[d]; | |
while (g.charAt(0) == " ") { | |
g = g.substring(1, g.length); | |
} | |
if (g.indexOf(f) == 0) { | |
return g.substring(f.length, g.length); | |
} | |
} | |
return null; | |
} | |
function cmJSFSetSingleSessionCookie(g, k, c) { | |
if (!cm_JSFEnabled) { | |
return; | |
} | |
if (cI(cm_JSFCoreCookieName) == null) { | |
if (!cmJSFDoMigrateCookies()) { | |
CB(cm_JSFCoreCookieName, cmJSFCreateUserId(), cmCookieExpDate, cm_JSFPCookieDomain); | |
} | |
if (!c) { | |
cmJSFSetSingleSessionCookie(true, k, true); | |
} | |
cmJSFSetValidFlagSingleValue(cmValidFlag_NewSession, false, k); | |
cmJSFSetValidFlagSingleValue(cmValidFlag_NewVisitor, true, k); | |
return; | |
} | |
var l = cmJSFGetSessionLoginCookieValue(k) != null; | |
if (!l) { | |
if (cmJSFCombineSessionCookies(k)) { | |
l = cmJSFGetSessionLoginCookieValue(k) != null; | |
} | |
} | |
if (!l && !g) { | |
if (!c) { | |
cmJSFSetSingleSessionCookie(true, k, true); | |
} | |
cmJSFSetValidFlagSingleValue(cmValidFlag_NewSession, true, k); | |
return; | |
} | |
var a = new Date(); | |
var b = a.getTime(); | |
var f = b + cm_JSFSessionTimeout * 1e3; | |
var d = cmJSFIsSessionExpired(cmJSFGetSessionExpireCookieValue(k)); | |
if (g != null && g == true || d) { | |
var h = b.toString(); | |
if (h.length < 10) { | |
while (h.length < 10) { | |
h = "0" + h; | |
} | |
} else { | |
h = h.substring(0, 10); | |
} | |
cmJSFSetSessionLoginCookieValue(k, h); | |
if (d) { | |
cmJSFSetValidFlagSingleValue(cmValidFlag_SessionReset, true, k); | |
} else { | |
cmJSFSetValidFlagSingleValue(cmValidFlag_NewSession, true, k); | |
} | |
if (cm_JSFSessionType == "T") { | |
cmJSFSetSessionExpiresCookieValue(k, f.toString()); | |
} | |
} | |
if (cm_JSFSessionType == "I") { | |
cmJSFSetSessionExpiresCookieValue(k, f.toString()); | |
} | |
} | |
function cmJSFIsSessionExpired(b) { | |
if (b == null) { | |
return false; | |
} | |
var a = new Date(); | |
if (a.getTime() > b) { | |
return true; | |
} else { | |
return false; | |
} | |
} | |
function cmJSFCreateUserId() { | |
var g = new Date(); | |
var d = Math.random(); | |
if (d == 0) { | |
d = Math.random(); | |
} | |
var b = Math.random(); | |
if (b == 0) { | |
b = Math.random(); | |
} | |
var c = d.toString().substring(2, 4) + b.toString().substring(2, 12) + g.getTime().toString(); | |
var a = c.length; | |
var f = 23; | |
if (a < f) { | |
c = c + c.substring(a - (f - a), a); | |
} | |
if (a > f) { | |
c = c.substring(0, f); | |
} | |
return c; | |
} | |
function cmJSFSetValidFlagValue(d, a, c) { | |
if (!cm_JSFEnabled) { | |
return; | |
} | |
var b = c.split(";"); | |
for (var f = 0; f < b.length; f++) { | |
cmJSFSetValidFlagSingleValue(d, a, b[f]); | |
} | |
} | |
function cmJSFSetValidFlagSingleValue(f, a, c) { | |
var b = null; | |
var d = cmJSFGetSessionValidFlagCookieValue(c); | |
if (d) { | |
var g = parseInt(d); | |
if (!isNaN(g)) { | |
b = g; | |
} | |
} | |
if (b == null) { | |
b = cmValidFlag_SessionContinue; | |
} | |
if (a) { | |
if (f == cmValidFlag_NewSession) { | |
b &= ~cmValidFlag_SessionReset; | |
} | |
if (f == cmValidFlag_SessionReset) { | |
b &= ~cmValidFlag_NewSession; | |
} | |
b |= f; | |
} else { | |
b = f; | |
} | |
b |= cmValidFlag_SessionContinue; | |
cmJSFSetSessionValidFlagCookieValue(c, b); | |
} | |
function cmJSFCreateCombinedSessionCookieName(a) { | |
return a + "_clogin"; | |
} | |
function cmJSFCombineSessionCookies(b) { | |
var a = cI(b + "_login"); | |
var f = cI(b + "_expires"); | |
var d = cI(b + "_valid"); | |
if (a != null && f != null & d != null) { | |
var c = "l=" + a + "&e=" + f + "&v=" + d; | |
CB(cmJSFCreateCombinedSessionCookieName(b), c, null, cm_JSFPCookieDomain); | |
CC(b + "_login", cm_JSFPCookieDomain); | |
CC(b + "_expires", cm_JSFPCookieDomain); | |
CC(b + "_valid", cm_JSFPCookieDomain); | |
return true; | |
} | |
return false; | |
} | |
function cmJSFSetSessionLoginCookieValue(a, b) { | |
cmSetSubCookie(cmJSFCreateCombinedSessionCookieName(a), "l", b, null, cm_JSFPCookieDomain); | |
} | |
function cmJSFSetSessionExpiresCookieValue(a, b) { | |
cmSetSubCookie(cmJSFCreateCombinedSessionCookieName(a), "e", b, null, cm_JSFPCookieDomain); | |
} | |
function cmJSFSetSessionValidFlagCookieValue(a, b) { | |
cmSetSubCookie(cmJSFCreateCombinedSessionCookieName(a), "v", b, null, cm_JSFPCookieDomain); | |
} | |
function cmJSFGetSessionLoginCookieValue(a) { | |
return cI(cmJSFCreateCombinedSessionCookieName(a), "l"); | |
} | |
function cmJSFGetSessionExpireCookieValue(a) { | |
return cI(cmJSFCreateCombinedSessionCookieName(a), "e"); | |
} | |
function cmJSFGetSessionValidFlagCookieValue(a) { | |
return cI(cmJSFCreateCombinedSessionCookieName(a), "v"); | |
} | |
function cmJSFGetSessionValue(c) { | |
var g = ""; | |
var f = ""; | |
var b = c.split(";"); | |
for (var h = 0; h < b.length; h++) { | |
var a = b[h]; | |
if (a == "") { | |
continue; | |
} | |
var d = cmJSFGetSessionLoginCookieValue(a); | |
g += f + (d != null ? d : ""); | |
if (f == "") { | |
f = "|"; | |
} | |
} | |
return g; | |
} | |
function cmJSFGetValidFlagValue(c) { | |
var g = ""; | |
var f = ""; | |
var b = c.split(";"); | |
for (var h = 0; h < b.length; h++) { | |
var a = b[h]; | |
if (a == "") { | |
continue; | |
} | |
var d = cmJSFGetSessionValidFlagCookieValue(a); | |
g += f + (d != null ? d : ""); | |
if (f == "") { | |
f = "|"; | |
} | |
} | |
return g; | |
} | |
function cmJSFDoMigrateCookies() { | |
if (cm_JSFMigrationEnabled == cmMigrationFrom1p_SA) { | |
if (cI(cm_JSFCoreCookieName) == null) { | |
var a = cI(cmSACookieName); | |
if (a) { | |
a = cmJSFConvertSAtoCM(a); | |
if (a != null) { | |
CB(cm_JSFCoreCookieName, a, cmCookieExpDate, cm_JSFPCookieDomain); | |
return true; | |
} | |
} | |
} | |
} | |
return false; | |
} | |
_cm.prototype.addTP = function() { | |
var b = new cmTP(new cmApp()); | |
for (var a in b) { | |
if (b[a] == null || b[a] == "" || b[a].toString().indexOf("function ") == 0) { | |
continue; | |
} | |
this[a] = cE(cD(b[a])); | |
} | |
return this; | |
}; | |
function cmApp() { | |
var f = navigator, a = f.appName, d = this; | |
if (a == "Netscape") { | |
d.b = "ns"; | |
} else { | |
if (a == "Microsoft Internet Explorer") { | |
d.b = "ie"; | |
} else { | |
d.b = a; | |
} | |
} | |
d.v = parseInt(f.appVersion); | |
} | |
function cmTP(c) { | |
var n = navigator, w = window.screen; | |
this.jv = cmJv; | |
if (c.b == "ns" && c.v >= 3) { | |
for (var i = 0; i < n.plugins.length; i++) { | |
eval("this.np" + i + "=n.plugins[" + i + "].name"); | |
} | |
} | |
if (c.v > 3) { | |
if (c.v >= 4 && (c.b == "ns" || c.b == "ie")) { | |
this.je = n.javaEnabled() == true ? "y" : "n"; | |
} | |
if (c.b == "ie") { | |
this.ce = n.cookieEnabled; | |
this.cp = n.cpuClass; | |
} | |
this.sw = w.width; | |
this.sh = w.height; | |
this.pd = w.colorDepth; | |
if (this.pd == 0) { | |
this.pd = w.pixelDepth; | |
} | |
var fs = w.fontSmoothingEnabled; | |
if (fs) { | |
this.fs = fs ? "y" : "n"; | |
} | |
} | |
var tz = new Date(); | |
if (tz.getTimezoneOffset() == 0) { | |
this.tz = "0"; | |
} else { | |
this.tz = tz.getTimezoneOffset() / 60; | |
} | |
} | |
var cm_exAttr = []; | |
var cm_ClientID = "60392154"; | |
var low_ids = [ [ "60392154", [ "dtq8m.lowes.com", "ppm.lowes.com", "lxvbv2app.lowes.com", "sit3m.lowes.com" ] ], [ "90392154", [ "m.lowes.com", "deploy.m.lowes.com", "origin-m.lowes.com" ] ] ]; | |
var low_droid_ids = [ [ "60386293", [ "dtq8m.lowes.com", "ppm.lowes.com", "lxvbv2app.lowes.com", "sit3m.lowes.com" ] ], [ "90386293", [ "m.lowes.com", "deploy.m.lowes.com", "origin-m.lowes.com" ] ] ]; | |
var low_iphone_ids = [ [ "60382523", [ "dtq8m.lowes.com", "ppm.lowes.com", "lxvbv2app.lowes.com", "sit3m.lowes.com" ] ], [ "90382523", [ "m.lowes.com", "deploy.m.lowes.com", "origin-m.lowes.com" ] ] ]; | |
function getCookie(b) { | |
var f = b + "="; | |
var a = document.cookie.split(";"); | |
for (var d = 0; d < a.length; d++) { | |
var g = a[d]; | |
while (g.charAt(0) == " ") { | |
g = g.substring(1, g.length); | |
} | |
if (g.indexOf(f) == 0) { | |
return g.substring(f.length, g.length); | |
} | |
} | |
return null; | |
} | |
function getUrlParamsCM() { | |
var a = {}; | |
var c = (window.location.search.split("?")[1] || "").split("&"); | |
for (var b in c) { | |
if (c.hasOwnProperty(b)) { | |
paramParts = c[b].split("="); | |
a[paramParts[0]] = decodeURIComponent(paramParts[1] || ""); | |
} | |
} | |
return a; | |
} | |
for (var i = 0; i < low_ids.length; i++) { | |
var cm_temp_id = low_ids[i][0], cm_url_arr = low_ids[i][1]; | |
for (var j = 0; j < cm_url_arr.length; j++) { | |
if (window.location.hostname == cm_url_arr[j]) { | |
cm_ClientID = cm_temp_id; | |
break; | |
} | |
} | |
} | |
function setAppsCoremetricId(f) { | |
if (!f) { | |
return; | |
} | |
for (var d = 0; d < f.length; d++) { | |
var c = f[d][0], b = f[d][1]; | |
for (var a = 0; a < b.length; a++) { | |
if (window.location.hostname == b[a]) { | |
cm_ClientID = c; | |
break; | |
} | |
} | |
} | |
} | |
fromApps = getCookie("fromApps"); | |
cm_queryParams = getUrlParamsCM(); | |
if (fromApps === "Y") { | |
cm_ClientID_apps_id = getCookie("cm_ClientID_apps"); | |
if (cm_ClientID_apps_id) { | |
cm_ClientID = cm_ClientID_apps_id; | |
} else { | |
iPhoneLegacy = getCookie("iPhoneLegacy"); | |
if (iPhoneLegacy) { | |
setAppsCoremetricId(low_iphone_ids); | |
} else { | |
setAppsCoremetricId(low_droid_ids); | |
} | |
} | |
} else { | |
if (cm_queryParams.fromApps === "Y") { | |
if (cm_queryParams.coremetric_id && cm_queryParams.coremetric_id !== "") { | |
cm_ClientID = cm_queryParams.coremetric_id; | |
} else { | |
if (cm_queryParams.un_jtt_application_platform === "iphone") { | |
setAppsCoremetricId(low_iphone_ids); | |
} else { | |
setAppsCoremetricId(low_droid_ids); | |
} | |
} | |
} | |
} | |
cG7.cM0[cm_ClientID] = ""; | |
var cm_TrackLink = "A"; | |
var cm_TrackImpressions = ""; | |
var cm_JSFEnabled = false; | |
var cmJv = "1.0"; | |
if (typeof isNaN == "function") { | |
cmJv = "1.1"; | |
} | |
if (typeof isFinite == "function") { | |
cmJv = "1.2"; | |
} | |
if (typeof NaN == "number") { | |
cmJv = "1.3"; | |
} | |
if (typeof decodeURI == "function") { | |
cmJv = "1.5"; | |
} | |
if (typeof Array.forEach == "function") { | |
cmJv = "1.6"; | |
} | |
if (typeof Iterator == "object") { | |
cmJv = "1.7"; | |
} | |
var cmCheckCMEMFlag = true; | |
var cmSendOSLinkClickTag = true; | |
if (typeof IORequest == "function") { | |
IORequest.client_id = cm_ClientID; | |
IORequest.encrypt_cats = true; | |
IORequest.encrypt_prds = true; | |
IORequest.conflict_resolution = true; | |
IORequest.max_prd_length = 25; | |
IORequest.max_cat_length = 25; | |
IORequest.timeout = [ 8e3, 4e3 ]; | |
IORequest.use_site_category = false; | |
if (IORequest.ie_version() !== null && IORequest.ie_version() < 7) { | |
IORequest.a_max_elements = [ 3, 3, 5, 3, 3, 3, 3 ]; | |
} else { | |
IORequest.a_max_elements = [ 3, 3, 5, 3, 3, 7, 7 ]; | |
} | |
IORequest.required_attributes = [ 0, 0, 0, 0, 0 ]; | |
IORequest.access_method = "json remote"; | |
IORequest.default_product_file = undefined; | |
} | |
function cmSetProduction() { | |
if (cm_ClientID.toString()[0] == "9") { | |
cm_HOST = "www7.lowes.com/eluminate?"; | |
} else { | |
cm_HOST = "testdata.coremetrics.com/eluminate?"; | |
} | |
} | |
function cmCreateConversionEventTag(c, b, f, d, a) { | |
if (a) { | |
var g = new Array(); | |
g = a.split("-_-"); | |
} | |
cmMakeTag([ "tid", "14", "cid", c, "cat", b, "ccid", f, "cpt", d, "cm_exAttr", g ]); | |
} | |
function cmCreatePageviewTag(f, b, d, a, h, c) { | |
if (c) { | |
var g = new Array(); | |
g = c.split("-_-"); | |
} | |
cmMakeTag([ "tid", "1", "pi", f, "cg", b, "se", d, "sr", a, "pc", "Y", "pv11", h, "cm_exAttr", g ]); | |
} | |
function cmCreateDefaultPageviewTag(a) { | |
cmCreatePageviewTag(cmGetDefaultPageID(), a); | |
} | |
function cmCreateProductviewTag(g, p, b, q, m, d, n, h, k, l, o) { | |
if (n) { | |
if (n != "0") { | |
q = n; | |
} | |
} | |
if (d == null || d == "") { | |
d = "Y"; | |
} | |
if (g == null || g == "" || d == "N") { | |
g = cmPageviewData.pageName; | |
} | |
if (h) { | |
var c = new Array(), a; | |
c = h.split("-_-"); | |
try { | |
a = document.location.href.split("pd_")[1]; | |
a = a.split("?")[0]; | |
a = a.split("_"); | |
if (a[1] !== "" && a[2] !== "") { | |
c.splice(15, 0, a[1], a[2]); | |
} | |
} catch (f) {} | |
} | |
if (k == null) { | |
k = cmExtractParameter("cm_vc", document.location.href); | |
} | |
cmMakeTag([ "tid", "5", "pi", g, "pr", p, "pm", b, "cg", q, "pc", d, "pv11", m, "cm_vc", k, "se", l, "sr", o, "cm_exAttr", c ]); | |
} | |
var __sArray = new Array(); | |
var __skuString = ""; | |
var __ex = new Array(); | |
function __cmGetPI(b) { | |
var a; | |
for (a = 0; a < __sArray.length; ++a) { | |
if (b == __sArray[a][1]) { | |
return a; | |
} | |
} | |
return -1; | |
} | |
function __cmGetPIPC(f, a) { | |
var b, c; | |
var g = new Array(); | |
var d = new Array(); | |
for (c = 0; c < __ex.length; ++c) { | |
g = g + __ex[c]; | |
} | |
for (b = 0; b < __sArray.length; ++b) { | |
if (__ex.length > 0) { | |
d = new Array(); | |
for (c = __sArray[b].length - __ex.length * 2 + 1; c < __sArray[b].length; c = c + 2) { | |
d = d + __sArray[b][c]; | |
} | |
if (f == __sArray[b][1] && a == __sArray[b][9] && g == d) { | |
return b; | |
} | |
} else { | |
if (f == __sArray[b][1] && a == __sArray[b][9]) { | |
return b; | |
} | |
} | |
} | |
return -1; | |
} | |
function cmAddShop(f) { | |
var a = __cmGetPIPC(f[1], f[9]); | |
if (a == -1) { | |
if (__ex.length > 0) { | |
for (var d = 0; d < __ex.length; ++d) { | |
f[f.length] = "s_a" + (d + 1); | |
f[f.length] = __ex[d]; | |
} | |
} | |
__sArray[__sArray.length] = f; | |
} else { | |
var b = __sArray[a][5]; | |
var c = __sArray[a][7]; | |
__sArray[a][5] = parseInt(__sArray[a][5]) + parseInt(f[5]); | |
__sArray[a][7] = (f[7] * f[5] + c * b) / __sArray[a][5]; | |
} | |
} | |
function cmCreateShopAction5Tag(k, a, c, h, l, f, d, g, b) { | |
if (g) { | |
if (g != "0") { | |
l = g; | |
} | |
} | |
if (b) { | |
__ex = b.split("-_-"); | |
} else { | |
__ex = new Array(); | |
} | |
cmAddShop([ "pr", k, "pm", a, "qt", c, "bp", h, "cg", l, "ha1", b ? cm_hex_sha1(b) : null, "at", "5", "tid", "4", "pc", "N", "sx11", f, "cc", d ]); | |
} | |
function cmCreateShopAction9Tag(p, b, f, o, a, d, g, q, m, h, k, n, l, c) { | |
if (l) { | |
if (l != "0") { | |
q = l; | |
} | |
} | |
q = ""; | |
if (c) { | |
__ex = c.split("-_-"); | |
} else { | |
__ex = new Array(); | |
} | |
cmAddShop([ "pr", p, "pm", b, "qt", f, "bp", o, "cg", q, "ha1", c ? cm_hex_sha1(c) : null, "cd", a, "on", d, "tr", g, "at", "9", "tid", "4", "pc", "N", "sx11", m, "cc", h, "sx13", k, "sx14", n ]); | |
cmCalcSKUString(); | |
} | |
function cmDisplayShop5s() { | |
cmDisplayShops(); | |
} | |
function cmDisplayShop9s() { | |
cmCalcSKUString(); | |
cmDisplayShops(); | |
} | |
function cmCalcSKUString() { | |
__skuString = ""; | |
for (i = 0; i < __sArray.length; ++i) { | |
__skuString += "|" + __sArray[i][1] + "|" + __sArray[i][7] + "|" + __sArray[i][5] + "|"; | |
} | |
} | |
function cmDisplayShops() { | |
var a; | |
for (a = 0; a < __sArray.length; ++a) { | |
cmMakeTag(__sArray[a]); | |
} | |
__sArray = new Array(); | |
} | |
function cmCreateOrderTag(g, l, f, a, d, m, k, q, n, o, h, p, c) { | |
if ((p == null || p == "") && o) { | |
p = "No Code"; | |
} | |
if (c) { | |
var b = new Array(); | |
b = c.split("-_-"); | |
} | |
cmMakeTag([ "tid", "3", "osk", __skuString, "on", g, "tr", l, "sg", f, "cd", a, "ct", d, "sa", m, "zp", k, "or11", q, "cc", n, "or13", o, "or14", h, "or15", p, "cm_exAttr", b ]); | |
} | |
function cmCreateRegistrationTag(d, g, h, a, c, b) { | |
if (b) { | |
var f = new Array(); | |
f = b.split("-_-"); | |
} | |
cmMakeTag([ "tid", "2", "cd", d, "em", g, "ct", h, "sa", a, "zp", c, "cm_exAttr", f ]); | |
} | |
function cmAttrCreator(b) { | |
var a = new Array(); | |
$.each(b, function(c, d) { | |
a[parseInt(c) - 1] = d.toString(); | |
}); | |
return a.join("-_-"); | |
} | |
function cmCreateErrorTag(c, a, f, b) { | |
if (b) { | |
var d = new Array(); | |
d = b.split("-_-"); | |
} | |
cmMakeTag([ "tid", "404", "pi", c, "cg", a, "pc", "Y", "pv1", f, "cm_exAttr", d ]); | |
} | |
function cmGetDefaultPageID() { | |
var d = window.location.pathname; | |
var b = d.indexOf("?"); | |
if (b != -1) { | |
d = d.substr(0, b); | |
} | |
var a = d.indexOf("#"); | |
if (a != -1) { | |
d = d.substr(0, a); | |
} | |
var f = d.indexOf(";"); | |
if (f != -1) { | |
d = d.substr(0, f); | |
} | |
var c = d.lastIndexOf("/"); | |
if (c == d.length - 1) { | |
d = d + "default.asp"; | |
} | |
while (d.indexOf("/") == 0) { | |
d = d.substr(1, d.length); | |
} | |
return d; | |
} | |
function cmMakeTag(a) { | |
setTimeout(function() { | |
var n = new _cm("vn2", "e4.0"); | |
var h; | |
for (h = 0; h < a.length; h += 2) { | |
var d = a[h]; | |
var m = a[h + 1]; | |
n[d] = m; | |
} | |
var k = new Date(); | |
var b = Math.floor(Math.random() * 11111111) + k.valueOf(); | |
n.rnd = b; | |
if (n.tid == "6") { | |
n.addTP(); | |
document.cookie = "cmTPSet=Y; path=/"; | |
} | |
if (n.tid == "1") { | |
if (cI("cmTPSet") != "Y") { | |
n.tid = "6"; | |
n.pc = "Y"; | |
n.addTP(); | |
document.cookie = "cmTPSet=Y; path=/"; | |
} | |
} | |
if (n.tid != "4") { | |
switch (n.tid) { | |
case "6": | |
prefix = "pv"; | |
break; | |
case "1": | |
prefix = "pv"; | |
break; | |
case "2": | |
prefix = "rg"; | |
break; | |
case "5": | |
prefix = "pr"; | |
break; | |
case "3": | |
prefix = "o"; | |
break; | |
case "14": | |
prefix = "c"; | |
break; | |
case "15": | |
prefix = "e"; | |
break; | |
default: | |
break; | |
} | |
var o = n.cm_exAttr ? n.cm_exAttr.length : 0; | |
for (h = 0; h < o; h++) { | |
if (n.tid == "2") { | |
Attval = prefix + (h + 1); | |
} else { | |
Attval = prefix + "_a" + (h + 1); | |
} | |
n[Attval] = n.cm_exAttr[h]; | |
} | |
if (o == 0) { | |
n[prefix + "_a1"] = "_blank"; | |
} | |
var l = Lowes.GPS.accurateLocation || "0,0", g = new Date(); | |
n[prefix + "_a24"] = g.toISOString().replace("T", " ").replace("Z", ""); | |
n[prefix + "_a25"] = Lowes.User.HorizontalAccuracy || "0"; | |
n[prefix + "_a28"] = ":mow:" + Lowes.User.uuid; | |
n[prefix + "_a29"] = l.split(",")[0]; | |
n[prefix + "_a30"] = Lowes.User.backendId || "0"; | |
n[prefix + "_a31"] = Lowes.User.email || "null"; | |
n[prefix + "_a32"] = l.split(",")[1]; | |
n.cm_exAttr = null; | |
} | |
if (n.pi == null && n.pc == "Y") { | |
n.pi = cmGetDefaultPageID(); | |
} | |
try { | |
if (parent.cm_ref != null) { | |
n.rf = parent.cm_ref; | |
if (n.pc == "Y") { | |
parent.cm_ref = document.URL; | |
} | |
} | |
if (parent.cm_set_mmc) { | |
n.ul = document.location.href + (document.location.href.indexOf("?") < 0 ? "?" : "&") + parent.cm_mmc_params; | |
if (n.pc == "Y") { | |
parent.cm_ref = n.ul; | |
parent.cm_set_mmc = false; | |
} | |
} | |
} catch (f) {} | |
if (!n.ul) { | |
n.ul = document.location.href; | |
} | |
if (!n.rf) { | |
n.rf = document.referrer; | |
} | |
n.ul = cmRemoveParameter("krypto", n.ul); | |
n.rf = cmRemoveParameter("krypto", n.rf); | |
n.ul = cmRemoveParameter("firstReferURL", n.ul); | |
n.rf = cmRemoveParameter("firstReferURL", n.rf); | |
n.ul = cmRemoveParameter("selectedLocalStoreBeanArray", n.ul); | |
n.rf = cmRemoveParameter("selectedLocalStoreBeanArray", n.rf); | |
n.ul = cmRemoveParameter("parentProductCacheKey", n.ul); | |
n.rf = cmRemoveParameter("parentProductCacheKey", n.rf); | |
if (cmCheckCMEMFlag) { | |
cmStartTagSet(); | |
} | |
n.writeImg(); | |
if (cmCheckCMEMFlag) { | |
cmCheckCMEMFlag = false; | |
cmCheckCMEM(); | |
cmSendTagSet(); | |
} | |
if (cmSendOSLinkClickTag) { | |
if (window.location.href.indexOf("cm_cr=OS:") > -1 || window.location.href.indexOf("cm_cr=OS%3A") > -1 || window.location.href.indexOf("cm_cr=OS%3a") > -1) { | |
var c = window.location.href; | |
c = c.split("cm_cr=OS:").join("cm_cr="); | |
c = c.split("cm_cr=OS%3A").join("cm_cr="); | |
c = c.split("cm_cr=OS%3a").join("cm_cr="); | |
c = c.split("-_-E-mail%20Activity-_-").join("-_-1-_-"); | |
c = c.split("-_-E-mail%2BActivity-_-").join("-_-1-_-"); | |
c = c.split("-_-E-mail%2bActivity-_-").join("-_-1-_-"); | |
cmCreateManualLinkClickTag(c, null, "Email"); | |
cmSendOSLinkClickTag = false; | |
} | |
} | |
if (typeof cm_ted_io == "function") { | |
cm_ted_io(n); | |
} | |
}, 1500, a); | |
} | |
if (defaultNormalize == null) { | |
var defaultNormalize = null; | |
} | |
function myNormalizeURL(a, l) { | |
if (cmIndexOfParameter("#", a) != -1) { | |
h = cmRemoveParameter("cm_cr", a); | |
} else { | |
var h = a; | |
} | |
var n = document.URL; | |
if (l) { | |
var k = [ "krypto=", "storeref=", "site=", "Ntt=", "newSearch=", "Ns=" ]; | |
var b; | |
var o = h.indexOf("?"); | |
var c; | |
var m = new Array(); | |
var g; | |
if (o > 0) { | |
b = h.substring(o + 1); | |
h = h.substring(0, o); | |
c = b.split("&"); | |
for (var f = 0; f < c.length; f++) { | |
g = true; | |
for (var d = 0; d < k.length; d++) { | |
if (c[f].toLowerCase().indexOf(k[d].toLowerCase()) == 0) { | |
g = false; | |
} | |
} | |
if (g == true) { | |
m[m.length] = c[f]; | |
} | |
} | |
h += "?" + m.join("&"); | |
} | |
if (defaultNormalize != null) { | |
h = defaultNormalize(h, l); | |
} | |
} | |
return h; | |
} | |
if (document.cmTagCtl != null) { | |
var func = "" + document.cmTagCtl.normalizeURL; | |
if (func.indexOf("myNormalizeURL") == -1) { | |
defaultNormalize = document.cmTagCtl.normalizeURL; | |
document.cmTagCtl.normalizeURL = myNormalizeURL; | |
} | |
} | |
function cmIndexOfParameter(b, a) { | |
return a.indexOf(b); | |
} | |
function cmExtractParameter(g, f) { | |
if (cmIndexOfParameter(g, f) == -1) { | |
return null; | |
} | |
var d = f; | |
var c = d.indexOf(g); | |
var a = d.indexOf("&", c); | |
if (a == -1) { | |
a = d.length; | |
} | |
var b = d.indexOf("=", c); | |
return d.substring(b + 1, a); | |
} | |
function cmRemoveParameter(g, d) { | |
if (cmIndexOfParameter(g, d) == -1) { | |
return d; | |
} | |
var c = d; | |
var b = c.indexOf(g); | |
var f = b - 1; | |
var a = c.indexOf("&", b); | |
if (a == -1) { | |
a = c.length; | |
} | |
if (c.substring(f, b) == "?") { | |
f = f + 1; | |
a = a + 1; | |
} | |
return c.substring(0, f) + c.substring(a, c.length); | |
} | |
function cmCheckCMEM() { | |
if (cmIndexOfParameter("cm_em", document.location.href) != -1) { | |
var a = cmExtractParameter("cm_em", document.location.href); | |
if (a.indexOf(":") > -1) { | |
a = a.substring(a.indexOf(":") + 1); | |
} | |
cmCreateRegistrationTag(a, a); | |
} | |
if (cmIndexOfParameter("cm_lm", document.location.href) != -1) { | |
var a = cmExtractParameter("cm_lm", document.location.href); | |
if (a.indexOf(":") > -1) { | |
a = a.substring(a.indexOf(":") + 1); | |
} | |
cmCreateRegistrationTag(a, a); | |
} | |
} | |
function cmCreateManualPageviewTag(a, d, c, b) { | |
cmMakeTag([ "tid", "1", "pi", a, "cg", d, "ul", c, "rf", b ]); | |
} | |
function cmCreateManualImpressionTag(a, c, b) { | |
cmMakeTag([ "tid", "9", "pi", a, "cm_sp", c, "cm_re", b, "st", cm_ClientTS ]); | |
} | |
function cmCreateManualLinkClickTag(b, c, a) { | |
if (d == null && cM != null) { | |
var d = cM; | |
} | |
if (d != null) { | |
var f = new Date(); | |
cmLnkT3 = f.getTime(); | |
b = cG7.normalizeURL(b, true); | |
d(cm_ClientTS, cmLnkT3, c, b, false, a); | |
} | |
} | |
function cmCreatePageElementTag(b, a, c) { | |
if (c) { | |
var d = new Array(); | |
d = c.split("-_-"); | |
} | |
cmMakeTag([ "tid", "15", "eid", b, "ecat", a, "pflg", "0", "cm_exAttr", d ]); | |
} | |
function cm_hex_sha1(a) { | |
return cm_rstr2hex(cm_rstr_sha1(cm_str2rstr_utf8(a))); | |
} | |
function cm_rstr_sha1(a) { | |
return cm_binb2rstr(cm_binb_sha1(cm_rstr2binb(a), a.length * 8)); | |
} | |
function cm_rstr2hex(c) { | |
var f = 0 ? "0123456789ABCDEF" : "0123456789abcdef"; | |
var b = ""; | |
var a; | |
for (var d = 0; d < c.length; d++) { | |
a = c.charCodeAt(d); | |
b += f.charAt(a >>> 4 & 15) + f.charAt(a & 15); | |
} | |
return b; | |
} | |
function cm_str2rstr_utf8(c) { | |
var b = ""; | |
var d = -1; | |
var a, f; | |
while (++d < c.length) { | |
a = c.charCodeAt(d); | |
f = d + 1 < c.length ? c.charCodeAt(d + 1) : 0; | |
if (55296 <= a && a <= 56319 && 56320 <= f && f <= 57343) { | |
a = 65536 + ((a & 1023) << 10) + (f & 1023); | |
d++; | |
} | |
if (a <= 127) { | |
b += String.fromCharCode(a); | |
} else { | |
if (a <= 2047) { | |
b += String.fromCharCode(192 | a >>> 6 & 31, 128 | a & 63); | |
} else { | |
if (a <= 65535) { | |
b += String.fromCharCode(224 | a >>> 12 & 15, 128 | a >>> 6 & 63, 128 | a & 63); | |
} else { | |
if (a <= 2097151) { | |
b += String.fromCharCode(240 | a >>> 18 & 7, 128 | a >>> 12 & 63, 128 | a >>> 6 & 63, 128 | a & 63); | |
} | |
} | |
} | |
} | |
} | |
return b; | |
} | |
function cm_rstr2binb(b) { | |
var a = Array(b.length >> 2); | |
for (var c = 0; c < a.length; c++) { | |
a[c] = 0; | |
} | |
for (var c = 0; c < b.length * 8; c += 8) { | |
a[c >> 5] |= (b.charCodeAt(c / 8) & 255) << 24 - c % 32; | |
} | |
return a; | |
} | |
function cm_binb2rstr(b) { | |
var a = ""; | |
for (var c = 0; c < b.length * 32; c += 8) { | |
a += String.fromCharCode(b[c >> 5] >>> 24 - c % 32 & 255); | |
} | |
return a; | |
} | |
function cm_binb_sha1(v, o) { | |
v[o >> 5] |= 128 << 24 - o % 32; | |
v[(o + 64 >> 9 << 4) + 15] = o; | |
var y = Array(80); | |
var u = 1732584193; | |
var s = -271733879; | |
var r = -1732584194; | |
var q = 271733878; | |
var p = -1009589776; | |
for (var l = 0; l < v.length; l += 16) { | |
var n = u; | |
var m = s; | |
var k = r; | |
var h = q; | |
var f = p; | |
for (var g = 0; g < 80; g++) { | |
if (g < 16) { | |
y[g] = v[l + g]; | |
} else { | |
y[g] = cm_bit_rol(y[g - 3] ^ y[g - 8] ^ y[g - 14] ^ y[g - 16], 1); | |
} | |
var z = cm_safe_add(cm_safe_add(cm_bit_rol(u, 5), cm_sha1_ft(g, s, r, q)), cm_safe_add(cm_safe_add(p, y[g]), cm_sha1_kt(g))); | |
p = q; | |
q = r; | |
r = cm_bit_rol(s, 30); | |
s = u; | |
u = z; | |
} | |
u = cm_safe_add(u, n); | |
s = cm_safe_add(s, m); | |
r = cm_safe_add(r, k); | |
q = cm_safe_add(q, h); | |
p = cm_safe_add(p, f); | |
} | |
return Array(u, s, r, q, p); | |
} | |
function cm_sha1_ft(f, a, h, g) { | |
if (f < 20) { | |
return a & h | ~a & g; | |
} | |
if (f < 40) { | |
return a ^ h ^ g; | |
} | |
if (f < 60) { | |
return a & h | a & g | h & g; | |
} | |
return a ^ h ^ g; | |
} | |
function cm_sha1_kt(a) { | |
return a < 20 ? 1518500249 : a < 40 ? 1859775393 : a < 60 ? -1894007588 : -899497514; | |
} | |
function cm_safe_add(a, d) { | |
var c = (a & 65535) + (d & 65535); | |
var b = (a >> 16) + (d >> 16) + (c >> 16); | |
return b << 16 | c & 65535; | |
} | |
function cm_bit_rol(a, b) { | |
return a << b | a >>> 32 - b; | |
} | |
function getCmExplorerAttributes() { | |
var b = "", a = "-_-", f = Lowes.User.getCurrentStore(), d = [ f.name, f.state, f.number, f.zip, f.city ]; | |
for (var c = 0; c < d.length; c++) { | |
b += d[c] || ""; | |
b += c == d.length - 1 ? "" : a; | |
} | |
return b; | |
} | |
cmSetProduction(); | |
(function(bd, N) { | |
var ax = bd.document, bw = bd.navigator, bn = bd.location; | |
var b = function() { | |
var bI = function(b3, b4) { | |
return new bI.fn.init(b3, b4, bG); | |
}, bX = bd.jQuery, bK = bd.$, bG, b1 = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, bP = /\S/, bL = /^\s+/, bH = /\s+$/, bD = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, bQ = /^[\],:{}\s]*$/, bZ = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, bS = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, bM = /(?:^|:|,)(?:\s*\[)+/g, bB = /(webkit)[ \/]([\w.]+)/, bU = /(opera)(?:.*version)?[ \/]([\w.]+)/, bT = /(msie) ([\w.]+)/, bV = /(mozilla)(?:.*? rv:([\w.]+))?/, bE = /-([a-z]|[0-9])/gi, b2 = /^-ms-/, bW = function(b3, b4) { | |
return (b4 + "").toUpperCase(); | |
}, b0 = bw.userAgent, bY, bF, bx, bO = Object.prototype.toString, bJ = Object.prototype.hasOwnProperty, bC = Array.prototype.push, bN = Array.prototype.slice, bR = String.prototype.trim, by = Array.prototype.indexOf, bA = {}; | |
bI.fn = bI.prototype = { | |
constructor: bI, | |
init: function(b3, b7, b6) { | |
var b5, b8, b4, b9; | |
if (!b3) { | |
return this; | |
} | |
if (b3.nodeType) { | |
this.context = this[0] = b3; | |
this.length = 1; | |
return this; | |
} | |
if (b3 === "body" && !b7 && ax.body) { | |
this.context = ax; | |
this[0] = ax.body; | |
this.selector = b3; | |
this.length = 1; | |
return this; | |
} | |
if (typeof b3 === "string") { | |
if (b3.charAt(0) === "<" && b3.charAt(b3.length - 1) === ">" && b3.length >= 3) { | |
b5 = [ null, b3, null ]; | |
} else { | |
b5 = b1.exec(b3); | |
} | |
if (b5 && (b5[1] || !b7)) { | |
if (b5[1]) { | |
b7 = b7 instanceof bI ? b7[0] : b7; | |
b9 = b7 ? b7.ownerDocument || b7 : ax; | |
b4 = bD.exec(b3); | |
if (b4) { | |
if (bI.isPlainObject(b7)) { | |
b3 = [ ax.createElement(b4[1]) ]; | |
bI.fn.attr.call(b3, b7, true); | |
} else { | |
b3 = [ b9.createElement(b4[1]) ]; | |
} | |
} else { | |
b4 = bI.buildFragment([ b5[1] ], [ b9 ]); | |
b3 = (b4.cacheable ? bI.clone(b4.fragment) : b4.fragment).childNodes; | |
} | |
return bI.merge(this, b3); | |
} else { | |
b8 = ax.getElementById(b5[2]); | |
if (b8 && b8.parentNode) { | |
if (b8.id !== b5[2]) { | |
return b6.find(b3); | |
} | |
this.length = 1; | |
this[0] = b8; | |
} | |
this.context = ax; | |
this.selector = b3; | |
return this; | |
} | |
} else { | |
if (!b7 || b7.jquery) { | |
return (b7 || b6).find(b3); | |
} else { | |
return this.constructor(b7).find(b3); | |
} | |
} | |
} else { | |
if (bI.isFunction(b3)) { | |
return b6.ready(b3); | |
} | |
} | |
if (b3.selector !== N) { | |
this.selector = b3.selector; | |
this.context = b3.context; | |
} | |
return bI.makeArray(b3, this); | |
}, | |
selector: "", | |
jquery: "1.7.1", | |
length: 0, | |
size: function() { | |
return this.length; | |
}, | |
toArray: function() { | |
return bN.call(this, 0); | |
}, | |
get: function(b3) { | |
return b3 == null ? this.toArray() : b3 < 0 ? this[this.length + b3] : this[b3]; | |
}, | |
pushStack: function(b4, b6, b3) { | |
var b5 = this.constructor(); | |
if (bI.isArray(b4)) { | |
bC.apply(b5, b4); | |
} else { | |
bI.merge(b5, b4); | |
} | |
b5.prevObject = this; | |
b5.context = this.context; | |
if (b6 === "find") { | |
b5.selector = this.selector + (this.selector ? " " : "") + b3; | |
} else { | |
if (b6) { | |
b5.selector = this.selector + "." + b6 + "(" + b3 + ")"; | |
} | |
} | |
return b5; | |
}, | |
each: function(b4, b3) { | |
return bI.each(this, b4, b3); | |
}, | |
ready: function(b3) { | |
bI.bindReady(); | |
bF.add(b3); | |
return this; | |
}, | |
eq: function(b3) { | |
b3 = +b3; | |
return b3 === -1 ? this.slice(b3) : this.slice(b3, b3 + 1); | |
}, | |
first: function() { | |
return this.eq(0); | |
}, | |
last: function() { | |
return this.eq(-1); | |
}, | |
slice: function() { | |
return this.pushStack(bN.apply(this, arguments), "slice", bN.call(arguments).join(",")); | |
}, | |
map: function(b3) { | |
return this.pushStack(bI.map(this, function(b5, b4) { | |
return b3.call(b5, b4, b5); | |
})); | |
}, | |
end: function() { | |
return this.prevObject || this.constructor(null); | |
}, | |
push: bC, | |
sort: [].sort, | |
splice: [].splice | |
}; | |
bI.fn.init.prototype = bI.fn; | |
bI.extend = bI.fn.extend = function() { | |
var cc, b5, b3, b4, b9, ca, b8 = arguments[0] || {}, b7 = 1, b6 = arguments.length, cb = false; | |
if (typeof b8 === "boolean") { | |
cb = b8; | |
b8 = arguments[1] || {}; | |
b7 = 2; | |
} | |
if (typeof b8 !== "object" && !bI.isFunction(b8)) { | |
b8 = {}; | |
} | |
if (b6 === b7) { | |
b8 = this; | |
--b7; | |
} | |
for (;b7 < b6; b7++) { | |
if ((cc = arguments[b7]) != null) { | |
for (b5 in cc) { | |
b3 = b8[b5]; | |
b4 = cc[b5]; | |
if (b8 === b4) { | |
continue; | |
} | |
if (cb && b4 && (bI.isPlainObject(b4) || (b9 = bI.isArray(b4)))) { | |
if (b9) { | |
b9 = false; | |
ca = b3 && bI.isArray(b3) ? b3 : []; | |
} else { | |
ca = b3 && bI.isPlainObject(b3) ? b3 : {}; | |
} | |
b8[b5] = bI.extend(cb, ca, b4); | |
} else { | |
if (b4 !== N) { | |
b8[b5] = b4; | |
} | |
} | |
} | |
} | |
} | |
return b8; | |
}; | |
bI.extend({ | |
noConflict: function(b3) { | |
if (bd.$ === bI) { | |
bd.$ = bK; | |
} | |
if (b3 && bd.jQuery === bI) { | |
bd.jQuery = bX; | |
} | |
return bI; | |
}, | |
isReady: false, | |
readyWait: 1, | |
holdReady: function(b3) { | |
if (b3) { | |
bI.readyWait++; | |
} else { | |
bI.ready(true); | |
} | |
}, | |
ready: function(b3) { | |
if (b3 === true && !--bI.readyWait || b3 !== true && !bI.isReady) { | |
if (!ax.body) { | |
return setTimeout(bI.ready, 1); | |
} | |
bI.isReady = true; | |
if (b3 !== true && --bI.readyWait > 0) { | |
return; | |
} | |
bF.fireWith(ax, [ bI ]); | |
if (bI.fn.trigger) { | |
bI(ax).trigger("ready").off("ready"); | |
} | |
} | |
}, | |
bindReady: function() { | |
if (bF) { | |
return; | |
} | |
bF = bI.Callbacks("once memory"); | |
if (ax.readyState === "complete") { | |
return setTimeout(bI.ready, 1); | |
} | |
if (ax.addEventListener) { | |
ax.addEventListener("DOMContentLoaded", bx, false); | |
bd.addEventListener("load", bI.ready, false); | |
} else { | |
if (ax.attachEvent) { | |
ax.attachEvent("onreadystatechange", bx); | |
bd.attachEvent("onload", bI.ready); | |
var b3 = false; | |
try { | |
b3 = bd.frameElement == null; | |
} catch (b4) {} | |
if (ax.documentElement.doScroll && b3) { | |
bz(); | |
} | |
} | |
} | |
}, | |
isFunction: function(b3) { | |
return bI.type(b3) === "function"; | |
}, | |
isArray: Array.isArray || function(b3) { | |
return bI.type(b3) === "array"; | |
}, | |
isWindow: function(b3) { | |
return b3 && typeof b3 === "object" && "setInterval" in b3; | |
}, | |
isNumeric: function(b3) { | |
return !isNaN(parseFloat(b3)) && isFinite(b3); | |
}, | |
type: function(b3) { | |
return b3 == null ? String(b3) : bA[bO.call(b3)] || "object"; | |
}, | |
isPlainObject: function(b5) { | |
if (!b5 || bI.type(b5) !== "object" || b5.nodeType || bI.isWindow(b5)) { | |
return false; | |
} | |
try { | |
if (b5.constructor && !bJ.call(b5, "constructor") && !bJ.call(b5.constructor.prototype, "isPrototypeOf")) { | |
return false; | |
} | |
} catch (b4) { | |
return false; | |
} | |
var b3; | |
for (b3 in b5) {} | |
return b3 === N || bJ.call(b5, b3); | |
}, | |
isEmptyObject: function(b4) { | |
for (var b3 in b4) { | |
return false; | |
} | |
return true; | |
}, | |
error: function(b3) { | |
throw new Error(b3); | |
}, | |
parseJSON: function(b3) { | |
if (typeof b3 !== "string" || !b3) { | |
return null; | |
} | |
b3 = bI.trim(b3); | |
if (bd.JSON && bd.JSON.parse) { | |
return bd.JSON.parse(b3); | |
} | |
if (bQ.test(b3.replace(bZ, "@").replace(bS, "]").replace(bM, ""))) { | |
return new Function("return " + b3)(); | |
} | |
bI.error("Invalid JSON: " + b3); | |
}, | |
parseXML: function(b5) { | |
var b3, b4; | |
try { | |
if (bd.DOMParser) { | |
b4 = new DOMParser(); | |
b3 = b4.parseFromString(b5, "text/xml"); | |
} else { | |
b3 = new ActiveXObject("Microsoft.XMLDOM"); | |
b3.async = "false"; | |
b3.loadXML(b5); | |
} | |
} catch (b6) { | |
b3 = N; | |
} | |
if (!b3 || !b3.documentElement || b3.getElementsByTagName("parsererror").length) { | |
bI.error("Invalid XML: " + b5); | |
} | |
return b3; | |
}, | |
noop: function() {}, | |
globalEval: function(b3) { | |
if (b3 && bP.test(b3)) { | |
(bd.execScript || function(b4) { | |
bd["eval"].call(bd, b4); | |
})(b3); | |
} | |
}, | |
camelCase: function(b3) { | |
return b3.replace(b2, "ms-").replace(bE, bW); | |
}, | |
nodeName: function(b4, b3) { | |
return b4.nodeName && b4.nodeName.toUpperCase() === b3.toUpperCase(); | |
}, | |
each: function(b6, b9, b5) { | |
var b4, b7 = 0, b8 = b6.length, b3 = b8 === N || bI.isFunction(b6); | |
if (b5) { | |
if (b3) { | |
for (b4 in b6) { | |
if (b9.apply(b6[b4], b5) === false) { | |
break; | |
} | |
} | |
} else { | |
for (;b7 < b8; ) { | |
if (b9.apply(b6[b7++], b5) === false) { | |
break; | |
} | |
} | |
} | |
} else { | |
if (b3) { | |
for (b4 in b6) { | |
if (b9.call(b6[b4], b4, b6[b4]) === false) { | |
break; | |
} | |
} | |
} else { | |
for (;b7 < b8; ) { | |
if (b9.call(b6[b7], b7, b6[b7++]) === false) { | |
break; | |
} | |
} | |
} | |
} | |
return b6; | |
}, | |
trim: bR ? function(b3) { | |
return b3 == null ? "" : bR.call(b3); | |
} : function(b3) { | |
return b3 == null ? "" : b3.toString().replace(bL, "").replace(bH, ""); | |
}, | |
makeArray: function(b6, b4) { | |
var b3 = b4 || []; | |
if (b6 != null) { | |
var b5 = bI.type(b6); | |
if (b6.length == null || b5 === "string" || b5 === "function" || b5 === "regexp" || bI.isWindow(b6)) { | |
bC.call(b3, b6); | |
} else { | |
bI.merge(b3, b6); | |
} | |
} | |
return b3; | |
}, | |
inArray: function(b5, b6, b4) { | |
var b3; | |
if (b6) { | |
if (by) { | |
return by.call(b6, b5, b4); | |
} | |
b3 = b6.length; | |
b4 = b4 ? b4 < 0 ? Math.max(0, b3 + b4) : b4 : 0; | |
for (;b4 < b3; b4++) { | |
if (b4 in b6 && b6[b4] === b5) { | |
return b4; | |
} | |
} | |
} | |
return -1; | |
}, | |
merge: function(b7, b5) { | |
var b6 = b7.length, b4 = 0; | |
if (typeof b5.length === "number") { | |
for (var b3 = b5.length; b4 < b3; b4++) { | |
b7[b6++] = b5[b4]; | |
} | |
} else { | |
while (b5[b4] !== N) { | |
b7[b6++] = b5[b4++]; | |
} | |
} | |
b7.length = b6; | |
return b7; | |
}, | |
grep: function(b4, b9, b3) { | |
var b5 = [], b8; | |
b3 = !!b3; | |
for (var b6 = 0, b7 = b4.length; b6 < b7; b6++) { | |
b8 = !!b9(b4[b6], b6); | |
if (b3 !== b8) { | |
b5.push(b4[b6]); | |
} | |
} | |
return b5; | |
}, | |
map: function(b3, ca, cb) { | |
var b8, b9, b7 = [], b5 = 0, b4 = b3.length, b6 = b3 instanceof bI || b4 !== N && typeof b4 === "number" && (b4 > 0 && b3[0] && b3[b4 - 1] || b4 === 0 || bI.isArray(b3)); | |
if (b6) { | |
for (;b5 < b4; b5++) { | |
b8 = ca(b3[b5], b5, cb); | |
if (b8 != null) { | |
b7[b7.length] = b8; | |
} | |
} | |
} else { | |
for (b9 in b3) { | |
b8 = ca(b3[b9], b9, cb); | |
if (b8 != null) { | |
b7[b7.length] = b8; | |
} | |
} | |
} | |
return b7.concat.apply([], b7); | |
}, | |
guid: 1, | |
proxy: function(b7, b6) { | |
if (typeof b6 === "string") { | |
var b5 = b7[b6]; | |
b6 = b7; | |
b7 = b5; | |
} | |
if (!bI.isFunction(b7)) { | |
return N; | |
} | |
var b3 = bN.call(arguments, 2), b4 = function() { | |
return b7.apply(b6, b3.concat(bN.call(arguments))); | |
}; | |
b4.guid = b7.guid = b7.guid || b4.guid || bI.guid++; | |
return b4; | |
}, | |
access: function(b3, cb, b9, b5, b8, ca) { | |
var b4 = b3.length; | |
if (typeof cb === "object") { | |
for (var b6 in cb) { | |
bI.access(b3, b6, cb[b6], b5, b8, b9); | |
} | |
return b3; | |
} | |
if (b9 !== N) { | |
b5 = !ca && b5 && bI.isFunction(b9); | |
for (var b7 = 0; b7 < b4; b7++) { | |
b8(b3[b7], cb, b5 ? b9.call(b3[b7], b7, b8(b3[b7], cb)) : b9, ca); | |
} | |
return b3; | |
} | |
return b4 ? b8(b3[0], cb) : N; | |
}, | |
now: function() { | |
return new Date().getTime(); | |
}, | |
uaMatch: function(b4) { | |
b4 = b4.toLowerCase(); | |
var b3 = bB.exec(b4) || bU.exec(b4) || bT.exec(b4) || b4.indexOf("compatible") < 0 && bV.exec(b4) || []; | |
return { | |
browser: b3[1] || "", | |
version: b3[2] || "0" | |
}; | |
}, | |
sub: function() { | |
function b3(b6, b7) { | |
return new b3.fn.init(b6, b7); | |
} | |
bI.extend(true, b3, this); | |
b3.superclass = this; | |
b3.fn = b3.prototype = this(); | |
b3.fn.constructor = b3; | |
b3.sub = this.sub; | |
b3.fn.init = function b5(b6, b7) { | |
if (b7 && b7 instanceof bI && !(b7 instanceof b3)) { | |
b7 = b3(b7); | |
} | |
return bI.fn.init.call(this, b6, b7, b4); | |
}; | |
b3.fn.init.prototype = b3.fn; | |
var b4 = b3(ax); | |
return b3; | |
}, | |
browser: {} | |
}); | |
bI.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(b4, b3) { | |
bA["[object " + b3 + "]"] = b3.toLowerCase(); | |
}); | |
bY = bI.uaMatch(b0); | |
if (bY.browser) { | |
bI.browser[bY.browser] = true; | |
bI.browser.version = bY.version; | |
} | |
if (bI.browser.webkit) { | |
bI.browser.safari = true; | |
} | |
if (bP.test(" ")) { | |
bL = /^[\s\xA0]+/; | |
bH = /[\s\xA0]+$/; | |
} | |
bG = bI(ax); | |
if (ax.addEventListener) { | |
bx = function() { | |
ax.removeEventListener("DOMContentLoaded", bx, false); | |
bI.ready(); | |
}; | |
} else { | |
if (ax.attachEvent) { | |
bx = function() { | |
if (ax.readyState === "complete") { | |
ax.detachEvent("onreadystatechange", bx); | |
bI.ready(); | |
} | |
}; | |
} | |
} | |
function bz() { | |
if (bI.isReady) { | |
return; | |
} | |
try { | |
ax.documentElement.doScroll("left"); | |
} catch (b3) { | |
setTimeout(bz, 1); | |
return; | |
} | |
bI.ready(); | |
} | |
return bI; | |
}(); | |
var a4 = {}; | |
function Z(bx) { | |
var by = a4[bx] = {}, bz, bA; | |
bx = bx.split(/\s+/); | |
for (bz = 0, bA = bx.length; bz < bA; bz++) { | |
by[bx[bz]] = true; | |
} | |
return by; | |
} | |
b.Callbacks = function(bz) { | |
bz = bz ? a4[bz] || Z(bz) : {}; | |
var bE = [], bF = [], bA, bB, by, bC, bD, bH = function(bI) { | |
var bJ, bM, bL, bK, bN; | |
for (bJ = 0, bM = bI.length; bJ < bM; bJ++) { | |
bL = bI[bJ]; | |
bK = b.type(bL); | |
if (bK === "array") { | |
bH(bL); | |
} else { | |
if (bK === "function") { | |
if (!bz.unique || !bG.has(bL)) { | |
bE.push(bL); | |
} | |
} | |
} | |
} | |
}, bx = function(bJ, bI) { | |
bI = bI || []; | |
bA = !bz.memory || [ bJ, bI ]; | |
bB = true; | |
bD = by || 0; | |
by = 0; | |
bC = bE.length; | |
for (;bE && bD < bC; bD++) { | |
if (bE[bD].apply(bJ, bI) === false && bz.stopOnFalse) { | |
bA = true; | |
break; | |
} | |
} | |
bB = false; | |
if (bE) { | |
if (!bz.once) { | |
if (bF && bF.length) { | |
bA = bF.shift(); | |
bG.fireWith(bA[0], bA[1]); | |
} | |
} else { | |
if (bA === true) { | |
bG.disable(); | |
} else { | |
bE = []; | |
} | |
} | |
} | |
}, bG = { | |
add: function() { | |
if (bE) { | |
var bI = bE.length; | |
bH(arguments); | |
if (bB) { | |
bC = bE.length; | |
} else { | |
if (bA && bA !== true) { | |
by = bI; | |
bx(bA[0], bA[1]); | |
} | |
} | |
} | |
return this; | |
}, | |
remove: function() { | |
if (bE) { | |
var bI = arguments, bK = 0, bL = bI.length; | |
for (;bK < bL; bK++) { | |
for (var bJ = 0; bJ < bE.length; bJ++) { | |
if (bI[bK] === bE[bJ]) { | |
if (bB) { | |
if (bJ <= bC) { | |
bC--; | |
if (bJ <= bD) { | |
bD--; | |
} | |
} | |
} | |
bE.splice(bJ--, 1); | |
if (bz.unique) { | |
break; | |
} | |
} | |
} | |
} | |
} | |
return this; | |
}, | |
has: function(bJ) { | |
if (bE) { | |
var bI = 0, bK = bE.length; | |
for (;bI < bK; bI++) { | |
if (bJ === bE[bI]) { | |
return true; | |
} | |
} | |
} | |
return false; | |
}, | |
empty: function() { | |
bE = []; | |
return this; | |
}, | |
disable: function() { | |
bE = bF = bA = N; | |
return this; | |
}, | |
disabled: function() { | |
return !bE; | |
}, | |
lock: function() { | |
bF = N; | |
if (!bA || bA === true) { | |
bG.disable(); | |
} | |
return this; | |
}, | |
locked: function() { | |
return !bF; | |
}, | |
fireWith: function(bJ, bI) { | |
if (bF) { | |
if (bB) { | |
if (!bz.once) { | |
bF.push([ bJ, bI ]); | |
} | |
} else { | |
if (!(bz.once && bA)) { | |
bx(bJ, bI); | |
} | |
} | |
} | |
return this; | |
}, | |
fire: function() { | |
bG.fireWith(this, arguments); | |
return this; | |
}, | |
fired: function() { | |
return !!bA; | |
} | |
}; | |
return bG; | |
}; | |
var aL = [].slice; | |
b.extend({ | |
Deferred: function(bB) { | |
var bA = b.Callbacks("once memory"), bz = b.Callbacks("once memory"), by = b.Callbacks("memory"), bx = "pending", bD = { | |
resolve: bA, | |
reject: bz, | |
notify: by | |
}, bF = { | |
done: bA.add, | |
fail: bz.add, | |
progress: by.add, | |
state: function() { | |
return bx; | |
}, | |
isResolved: bA.fired, | |
isRejected: bz.fired, | |
then: function(bH, bG, bI) { | |
bE.done(bH).fail(bG).progress(bI); | |
return this; | |
}, | |
always: function() { | |
bE.done.apply(bE, arguments).fail.apply(bE, arguments); | |
return this; | |
}, | |
pipe: function(bI, bH, bG) { | |
return b.Deferred(function(bJ) { | |
b.each({ | |
done: [ bI, "resolve" ], | |
fail: [ bH, "reject" ], | |
progress: [ bG, "notify" ] | |
}, function(bL, bO) { | |
var bK = bO[0], bN = bO[1], bM; | |
if (b.isFunction(bK)) { | |
bE[bL](function() { | |
bM = bK.apply(this, arguments); | |
if (bM && b.isFunction(bM.promise)) { | |
bM.promise().then(bJ.resolve, bJ.reject, bJ.notify); | |
} else { | |
bJ[bN + "With"](this === bE ? bJ : this, [ bM ]); | |
} | |
}); | |
} else { | |
bE[bL](bJ[bN]); | |
} | |
}); | |
}).promise(); | |
}, | |
promise: function(bH) { | |
if (bH == null) { | |
bH = bF; | |
} else { | |
for (var bG in bF) { | |
bH[bG] = bF[bG]; | |
} | |
} | |
return bH; | |
} | |
}, bE = bF.promise({}), bC; | |
for (bC in bD) { | |
bE[bC] = bD[bC].fire; | |
bE[bC + "With"] = bD[bC].fireWith; | |
} | |
bE.done(function() { | |
bx = "resolved"; | |
}, bz.disable, by.lock).fail(function() { | |
bx = "rejected"; | |
}, bA.disable, by.lock); | |
if (bB) { | |
bB.call(bE, bE); | |
} | |
return bE; | |
}, | |
when: function(bD) { | |
var bA = aL.call(arguments, 0), by = 0, bx = bA.length, bE = new Array(bx), bz = bx, bB = bx, bF = bx <= 1 && bD && b.isFunction(bD.promise) ? bD : b.Deferred(), bH = bF.promise(); | |
function bG(bI) { | |
return function(bJ) { | |
bA[bI] = arguments.length > 1 ? aL.call(arguments, 0) : bJ; | |
if (!--bz) { | |
bF.resolveWith(bF, bA); | |
} | |
}; | |
} | |
function bC(bI) { | |
return function(bJ) { | |
bE[bI] = arguments.length > 1 ? aL.call(arguments, 0) : bJ; | |
bF.notifyWith(bH, bE); | |
}; | |
} | |
if (bx > 1) { | |
for (;by < bx; by++) { | |
if (bA[by] && bA[by].promise && b.isFunction(bA[by].promise)) { | |
bA[by].promise().then(bG(by), bF.reject, bC(by)); | |
} else { | |
--bz; | |
} | |
} | |
if (!bz) { | |
bF.resolveWith(bF, bA); | |
} | |
} else { | |
if (bF !== bD) { | |
bF.resolveWith(bF, bx ? [ bD ] : []); | |
} | |
} | |
return bH; | |
} | |
}); | |
b.support = function() { | |
var bL, bK, bH, bI, bz, bG, bC, bF, bB, bM, bD, bA, by, bx = ax.createElement("div"), bJ = ax.documentElement; | |
bx.setAttribute("className", "t"); | |
bx.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; | |
bK = bx.getElementsByTagName("*"); | |
bH = bx.getElementsByTagName("a")[0]; | |
if (!bK || !bK.length || !bH) { | |
return {}; | |
} | |
bI = ax.createElement("select"); | |
bz = bI.appendChild(ax.createElement("option")); | |
bG = bx.getElementsByTagName("input")[0]; | |
bL = { | |
leadingWhitespace: bx.firstChild.nodeType === 3, | |
tbody: !bx.getElementsByTagName("tbody").length, | |
htmlSerialize: !!bx.getElementsByTagName("link").length, | |
style: /top/.test(bH.getAttribute("style")), | |
hrefNormalized: bH.getAttribute("href") === "/a", | |
opacity: /^0.55/.test(bH.style.opacity), | |
cssFloat: !!bH.style.cssFloat, | |
checkOn: bG.value === "on", | |
optSelected: bz.selected, | |
getSetAttribute: bx.className !== "t", | |
enctype: !!ax.createElement("form").enctype, | |
html5Clone: ax.createElement("nav").cloneNode(true).outerHTML !== "<:nav></:nav>", | |
submitBubbles: true, | |
changeBubbles: true, | |
focusinBubbles: false, | |
deleteExpando: true, | |
noCloneEvent: true, | |
inlineBlockNeedsLayout: false, | |
shrinkWrapBlocks: false, | |
reliableMarginRight: true | |
}; | |
bG.checked = true; | |
bL.noCloneChecked = bG.cloneNode(true).checked; | |
bI.disabled = true; | |
bL.optDisabled = !bz.disabled; | |
try { | |
delete bx.test; | |
} catch (bE) { | |
bL.deleteExpando = false; | |
} | |
if (!bx.addEventListener && bx.attachEvent && bx.fireEvent) { | |
bx.attachEvent("onclick", function() { | |
bL.noCloneEvent = false; | |
}); | |
bx.cloneNode(true).fireEvent("onclick"); | |
} | |
bG = ax.createElement("input"); | |
bG.value = "t"; | |
bG.setAttribute("type", "radio"); | |
bL.radioValue = bG.value === "t"; | |
bG.setAttribute("checked", "checked"); | |
bx.appendChild(bG); | |
bF = ax.createDocumentFragment(); | |
bF.appendChild(bx.lastChild); | |
bL.checkClone = bF.cloneNode(true).cloneNode(true).lastChild.checked; | |
bL.appendChecked = bG.checked; | |
bF.removeChild(bG); | |
bF.appendChild(bx); | |
bx.innerHTML = ""; | |
if (bd.getComputedStyle) { | |
bC = ax.createElement("div"); | |
bC.style.width = "0"; | |
bC.style.marginRight = "0"; | |
bx.style.width = "2px"; | |
bx.appendChild(bC); | |
bL.reliableMarginRight = (parseInt((bd.getComputedStyle(bC, null) || { | |
marginRight: 0 | |
}).marginRight, 10) || 0) === 0; | |
} | |
if (bx.attachEvent) { | |
for (bA in { | |
submit: 1, | |
change: 1, | |
focusin: 1 | |
}) { | |
bD = "on" + bA; | |
by = bD in bx; | |
if (!by) { | |
bx.setAttribute(bD, "return;"); | |
by = typeof bx[bD] === "function"; | |
} | |
bL[bA + "Bubbles"] = by; | |
} | |
} | |
bF.removeChild(bx); | |
bF = bI = bz = bC = bx = bG = null; | |
b(function() { | |
var bP, bX, bY, bW, bQ, bR, bO, bV, bU, bN, bS, bT = ax.getElementsByTagName("body")[0]; | |
if (!bT) { | |
return; | |
} | |
bO = 1; | |
bV = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;"; | |
bU = "visibility:hidden;border:0;"; | |
bN = "style='" + bV + "border:5px solid #000;padding:0;'"; | |
bS = "<div " + bN + "><div></div></div><table " + bN + " cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; | |
bP = ax.createElement("div"); | |
bP.style.cssText = bU + "width:0;height:0;position:static;top:0;margin-top:" + bO + "px"; | |
bT.insertBefore(bP, bT.firstChild); | |
bx = ax.createElement("div"); | |
bP.appendChild(bx); | |
bx.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>"; | |
bB = bx.getElementsByTagName("td"); | |
by = bB[0].offsetHeight === 0; | |
bB[0].style.display = ""; | |
bB[1].style.display = "none"; | |
bL.reliableHiddenOffsets = by && bB[0].offsetHeight === 0; | |
bx.innerHTML = ""; | |
bx.style.width = bx.style.paddingLeft = "1px"; | |
b.boxModel = bL.boxModel = bx.offsetWidth === 2; | |
if (typeof bx.style.zoom !== "undefined") { | |
bx.style.display = "inline"; | |
bx.style.zoom = 1; | |
bL.inlineBlockNeedsLayout = bx.offsetWidth === 2; | |
bx.style.display = ""; | |
bx.innerHTML = "<div style='width:4px;'></div>"; | |
bL.shrinkWrapBlocks = bx.offsetWidth !== 2; | |
} | |
bx.style.cssText = bV + bU; | |
bx.innerHTML = bS; | |
bX = bx.firstChild; | |
bY = bX.firstChild; | |
bQ = bX.nextSibling.firstChild.firstChild; | |
bR = { | |
doesNotAddBorder: bY.offsetTop !== 5, | |
doesAddBorderForTableAndCells: bQ.offsetTop === 5 | |
}; | |
bY.style.position = "fixed"; | |
bY.style.top = "20px"; | |
bR.fixedPosition = bY.offsetTop === 20 || bY.offsetTop === 15; | |
bY.style.position = bY.style.top = ""; | |
bX.style.overflow = "hidden"; | |
bX.style.position = "relative"; | |
bR.subtractsBorderForOverflowNotVisible = bY.offsetTop === -5; | |
bR.doesNotIncludeMarginInBodyOffset = bT.offsetTop !== bO; | |
bT.removeChild(bP); | |
bx = bP = null; | |
b.extend(bL, bR); | |
}); | |
return bL; | |
}(); | |
var aU = /^(?:\{.*\}|\[.*\])$/, aC = /([A-Z])/g; | |
b.extend({ | |
cache: {}, | |
uuid: 0, | |
expando: "jQuery" + (b.fn.jquery + Math.random()).replace(/\D/g, ""), | |
noData: { | |
embed: true, | |
object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", | |
applet: true | |
}, | |
hasData: function(bx) { | |
bx = bx.nodeType ? b.cache[bx[b.expando]] : bx[b.expando]; | |
return !!bx && !U(bx); | |
}, | |
data: function(bA, by, bC, bB) { | |
if (!b.acceptData(bA)) { | |
return; | |
} | |
var bJ, bD, bG, bH = b.expando, bF = typeof by === "string", bI = bA.nodeType, bx = bI ? b.cache : bA, bz = bI ? bA[bH] : bA[bH] && bH, bE = by === "events"; | |
if ((!bz || !bx[bz] || !bE && !bB && !bx[bz].data) && bF && bC === N) { | |
return; | |
} | |
if (!bz) { | |
if (bI) { | |
bA[bH] = bz = ++b.uuid; | |
} else { | |
bz = bH; | |
} | |
} | |
if (!bx[bz]) { | |
bx[bz] = {}; | |
if (!bI) { | |
bx[bz].toJSON = b.noop; | |
} | |
} | |
if (typeof by === "object" || typeof by === "function") { | |
if (bB) { | |
bx[bz] = b.extend(bx[bz], by); | |
} else { | |
bx[bz].data = b.extend(bx[bz].data, by); | |
} | |
} | |
bJ = bD = bx[bz]; | |
if (!bB) { | |
if (!bD.data) { | |
bD.data = {}; | |
} | |
bD = bD.data; | |
} | |
if (bC !== N) { | |
bD[b.camelCase(by)] = bC; | |
} | |
if (bE && !bD[by]) { | |
return bJ.events; | |
} | |
if (bF) { | |
bG = bD[by]; | |
if (bG == null) { | |
bG = bD[b.camelCase(by)]; | |
} | |
} else { | |
bG = bD; | |
} | |
return bG; | |
}, | |
removeData: function(bA, by, bB) { | |
if (!b.acceptData(bA)) { | |
return; | |
} | |
var bE, bD, bC, bF = b.expando, bG = bA.nodeType, bx = bG ? b.cache : bA, bz = bG ? bA[bF] : bF; | |
if (!bx[bz]) { | |
return; | |
} | |
if (by) { | |
bE = bB ? bx[bz] : bx[bz].data; | |
if (bE) { | |
if (!b.isArray(by)) { | |
if (by in bE) { | |
by = [ by ]; | |
} else { | |
by = b.camelCase(by); | |
if (by in bE) { | |
by = [ by ]; | |
} else { | |
by = by.split(" "); | |
} | |
} | |
} | |
for (bD = 0, bC = by.length; bD < bC; bD++) { | |
delete bE[by[bD]]; | |
} | |
if (!(bB ? U : b.isEmptyObject)(bE)) { | |
return; | |
} | |
} | |
} | |
if (!bB) { | |
delete bx[bz].data; | |
if (!U(bx[bz])) { | |
return; | |
} | |
} | |
if (b.support.deleteExpando || !bx.setInterval) { | |
delete bx[bz]; | |
} else { | |
bx[bz] = null; | |
} | |
if (bG) { | |
if (b.support.deleteExpando) { | |
delete bA[bF]; | |
} else { | |
if (bA.removeAttribute) { | |
bA.removeAttribute(bF); | |
} else { | |
bA[bF] = null; | |
} | |
} | |
} | |
}, | |
_data: function(by, bx, bz) { | |
return b.data(by, bx, bz, true); | |
}, | |
acceptData: function(by) { | |
if (by.nodeName) { | |
var bx = b.noData[by.nodeName.toLowerCase()]; | |
if (bx) { | |
return !(bx === true || by.getAttribute("classid") !== bx); | |
} | |
} | |
return true; | |
} | |
}); | |
b.fn.extend({ | |
data: function(bB, bD) { | |
var bE, bx, bz, bC = null; | |
if (typeof bB === "undefined") { | |
if (this.length) { | |
bC = b.data(this[0]); | |
if (this[0].nodeType === 1 && !b._data(this[0], "parsedAttrs")) { | |
bx = this[0].attributes; | |
for (var bA = 0, by = bx.length; bA < by; bA++) { | |
bz = bx[bA].name; | |
if (bz.indexOf("data-") === 0) { | |
bz = b.camelCase(bz.substring(5)); | |
a7(this[0], bz, bC[bz]); | |
} | |
} | |
b._data(this[0], "parsedAttrs", true); | |
} | |
} | |
return bC; | |
} else { | |
if (typeof bB === "object") { | |
return this.each(function() { | |
b.data(this, bB); | |
}); | |
} | |
} | |
bE = bB.split("."); | |
bE[1] = bE[1] ? "." + bE[1] : ""; | |
if (bD === N) { | |
bC = this.triggerHandler("getData" + bE[1] + "!", [ bE[0] ]); | |
if (bC === N && this.length) { | |
bC = b.data(this[0], bB); | |
bC = a7(this[0], bB, bC); | |
} | |
return bC === N && bE[1] ? this.data(bE[0]) : bC; | |
} else { | |
return this.each(function() { | |
var bF = b(this), bG = [ bE[0], bD ]; | |
bF.triggerHandler("setData" + bE[1] + "!", bG); | |
b.data(this, bB, bD); | |
bF.triggerHandler("changeData" + bE[1] + "!", bG); | |
}); | |
} | |
}, | |
removeData: function(bx) { | |
return this.each(function() { | |
b.removeData(this, bx); | |
}); | |
} | |
}); | |
function a7(bz, by, bA) { | |
if (bA === N && bz.nodeType === 1) { | |
var bx = "data-" + by.replace(aC, "-$1").toLowerCase(); | |
bA = bz.getAttribute(bx); | |
if (typeof bA === "string") { | |
try { | |
bA = bA === "true" ? true : bA === "false" ? false : bA === "null" ? null : b.isNumeric(bA) ? parseFloat(bA) : aU.test(bA) ? b.parseJSON(bA) : bA; | |
} catch (bB) {} | |
b.data(bz, by, bA); | |
} else { | |
bA = N; | |
} | |
} | |
return bA; | |
} | |
function U(by) { | |
for (var bx in by) { | |
if (bx === "data" && b.isEmptyObject(by[bx])) { | |
continue; | |
} | |
if (bx !== "toJSON") { | |
return false; | |
} | |
} | |
return true; | |
} | |
function bk(bB, bA, bD) { | |
var bz = bA + "defer", by = bA + "queue", bx = bA + "mark", bC = b._data(bB, bz); | |
if (bC && (bD === "queue" || !b._data(bB, by)) && (bD === "mark" || !b._data(bB, bx))) { | |
setTimeout(function() { | |
if (!b._data(bB, by) && !b._data(bB, bx)) { | |
b.removeData(bB, bz, true); | |
bC.fire(); | |
} | |
}, 0); | |
} | |
} | |
b.extend({ | |
_mark: function(by, bx) { | |
if (by) { | |
bx = (bx || "fx") + "mark"; | |
b._data(by, bx, (b._data(by, bx) || 0) + 1); | |
} | |
}, | |
_unmark: function(bB, bA, by) { | |
if (bB !== true) { | |
by = bA; | |
bA = bB; | |
bB = false; | |
} | |
if (bA) { | |
by = by || "fx"; | |
var bx = by + "mark", bz = bB ? 0 : (b._data(bA, bx) || 1) - 1; | |
if (bz) { | |
b._data(bA, bx, bz); | |
} else { | |
b.removeData(bA, bx, true); | |
bk(bA, by, "mark"); | |
} | |
} | |
}, | |
queue: function(by, bx, bA) { | |
var bz; | |
if (by) { | |
bx = (bx || "fx") + "queue"; | |
bz = b._data(by, bx); | |
if (bA) { | |
if (!bz || b.isArray(bA)) { | |
bz = b._data(by, bx, b.makeArray(bA)); | |
} else { | |
bz.push(bA); | |
} | |
} | |
return bz || []; | |
} | |
}, | |
dequeue: function(bB, bA) { | |
bA = bA || "fx"; | |
var by = b.queue(bB, bA), bz = by.shift(), bx = {}; | |
if (bz === "inprogress") { | |
bz = by.shift(); | |
} | |
if (bz) { | |
if (bA === "fx") { | |
by.unshift("inprogress"); | |
} | |
b._data(bB, bA + ".run", bx); | |
bz.call(bB, function() { | |
b.dequeue(bB, bA); | |
}, bx); | |
} | |
if (!by.length) { | |
b.removeData(bB, bA + "queue " + bA + ".run", true); | |
bk(bB, bA, "queue"); | |
} | |
} | |
}); | |
b.fn.extend({ | |
queue: function(bx, by) { | |
if (typeof bx !== "string") { | |
by = bx; | |
bx = "fx"; | |
} | |
if (by === N) { | |
return b.queue(this[0], bx); | |
} | |
return this.each(function() { | |
var bz = b.queue(this, bx, by); | |
if (bx === "fx" && bz[0] !== "inprogress") { | |
b.dequeue(this, bx); | |
} | |
}); | |
}, | |
dequeue: function(bx) { | |
return this.each(function() { | |
b.dequeue(this, bx); | |
}); | |
}, | |
delay: function(by, bx) { | |
by = b.fx ? b.fx.speeds[by] || by : by; | |
bx = bx || "fx"; | |
return this.queue(bx, function(bA, bz) { | |
var bB = setTimeout(bA, by); | |
bz.stop = function() { | |
clearTimeout(bB); | |
}; | |
}); | |
}, | |
clearQueue: function(bx) { | |
return this.queue(bx || "fx", []); | |
}, | |
promise: function(bG, bz) { | |
if (typeof bG !== "string") { | |
bz = bG; | |
bG = N; | |
} | |
bG = bG || "fx"; | |
var bx = b.Deferred(), by = this, bB = by.length, bE = 1, bC = bG + "defer", bD = bG + "queue", bF = bG + "mark", bA; | |
function bH() { | |
if (!--bE) { | |
bx.resolveWith(by, [ by ]); | |
} | |
} | |
while (bB--) { | |
if (bA = b.data(by[bB], bC, N, true) || (b.data(by[bB], bD, N, true) || b.data(by[bB], bF, N, true)) && b.data(by[bB], bC, b.Callbacks("once memory"), true)) { | |
bE++; | |
bA.add(bH); | |
} | |
} | |
bH(); | |
return bx.promise(); | |
} | |
}); | |
var aR = /[\n\t\r]/g, ah = /\s+/, aW = /\r/g, g = /^(?:button|input)$/i, F = /^(?:button|input|object|select|textarea)$/i, n = /^a(?:rea)?$/i, aq = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, H = b.support.getSetAttribute, bg, a0, aH; | |
b.fn.extend({ | |
attr: function(bx, by) { | |
return b.access(this, bx, by, true, b.attr); | |
}, | |
removeAttr: function(bx) { | |
return this.each(function() { | |
b.removeAttr(this, bx); | |
}); | |
}, | |
prop: function(bx, by) { | |
return b.access(this, bx, by, true, b.prop); | |
}, | |
removeProp: function(bx) { | |
bx = b.propFix[bx] || bx; | |
return this.each(function() { | |
try { | |
this[bx] = N; | |
delete this[bx]; | |
} catch (by) {} | |
}); | |
}, | |
addClass: function(bB) { | |
var bD, bz, by, bA, bC, bE, bx; | |
if (b.isFunction(bB)) { | |
return this.each(function(bF) { | |
b(this).addClass(bB.call(this, bF, this.className)); | |
}); | |
} | |
if (bB && typeof bB === "string") { | |
bD = bB.split(ah); | |
for (bz = 0, by = this.length; bz < by; bz++) { | |
bA = this[bz]; | |
if (bA.nodeType === 1) { | |
if (!bA.className && bD.length === 1) { | |
bA.className = bB; | |
} else { | |
bC = " " + bA.className + " "; | |
for (bE = 0, bx = bD.length; bE < bx; bE++) { | |
if (!~bC.indexOf(" " + bD[bE] + " ")) { | |
bC += bD[bE] + " "; | |
} | |
} | |
bA.className = b.trim(bC); | |
} | |
} | |
} | |
} | |
return this; | |
}, | |
removeClass: function(bC) { | |
var bD, bz, by, bB, bA, bE, bx; | |
if (b.isFunction(bC)) { | |
return this.each(function(bF) { | |
b(this).removeClass(bC.call(this, bF, this.className)); | |
}); | |
} | |
if (bC && typeof bC === "string" || bC === N) { | |
bD = (bC || "").split(ah); | |
for (bz = 0, by = this.length; bz < by; bz++) { | |
bB = this[bz]; | |
if (bB.nodeType === 1 && bB.className) { | |
if (bC) { | |
bA = (" " + bB.className + " ").replace(aR, " "); | |
for (bE = 0, bx = bD.length; bE < bx; bE++) { | |
bA = bA.replace(" " + bD[bE] + " ", " "); | |
} | |
bB.className = b.trim(bA); | |
} else { | |
bB.className = ""; | |
} | |
} | |
} | |
} | |
return this; | |
}, | |
toggleClass: function(bA, by) { | |
var bz = typeof bA, bx = typeof by === "boolean"; | |
if (b.isFunction(bA)) { | |
return this.each(function(bB) { | |
b(this).toggleClass(bA.call(this, bB, this.className, by), by); | |
}); | |
} | |
return this.each(function() { | |
if (bz === "string") { | |
var bD, bC = 0, bB = b(this), bE = by, bF = bA.split(ah); | |
while (bD = bF[bC++]) { | |
bE = bx ? bE : !bB.hasClass(bD); | |
bB[bE ? "addClass" : "removeClass"](bD); | |
} | |
} else { | |
if (bz === "undefined" || bz === "boolean") { | |
if (this.className) { | |
b._data(this, "__className__", this.className); | |
} | |
this.className = this.className || bA === false ? "" : b._data(this, "__className__") || ""; | |
} | |
} | |
}); | |
}, | |
hasClass: function(bx) { | |
var bA = " " + bx + " ", bz = 0, by = this.length; | |
for (;bz < by; bz++) { | |
if (this[bz].nodeType === 1 && (" " + this[bz].className + " ").replace(aR, " ").indexOf(bA) > -1) { | |
return true; | |
} | |
} | |
return false; | |
}, | |
val: function(bA) { | |
var bx, by, bB, bz = this[0]; | |
if (!arguments.length) { | |
if (bz) { | |
bx = b.valHooks[bz.nodeName.toLowerCase()] || b.valHooks[bz.type]; | |
if (bx && "get" in bx && (by = bx.get(bz, "value")) !== N) { | |
return by; | |
} | |
by = bz.value; | |
return typeof by === "string" ? by.replace(aW, "") : by == null ? "" : by; | |
} | |
return; | |
} | |
bB = b.isFunction(bA); | |
return this.each(function(bD) { | |
var bC = b(this), bE; | |
if (this.nodeType !== 1) { | |
return; | |
} | |
if (bB) { | |
bE = bA.call(this, bD, bC.val()); | |
} else { | |
bE = bA; | |
} | |
if (bE == null) { | |
bE = ""; | |
} else { | |
if (typeof bE === "number") { | |
bE += ""; | |
} else { | |
if (b.isArray(bE)) { | |
bE = b.map(bE, function(bF) { | |
return bF == null ? "" : bF + ""; | |
}); | |
} | |
} | |
} | |
bx = b.valHooks[this.nodeName.toLowerCase()] || b.valHooks[this.type]; | |
if (!bx || !("set" in bx) || bx.set(this, bE, "value") === N) { | |
this.value = bE; | |
} | |
}); | |
} | |
}); | |
b.extend({ | |
valHooks: { | |
option: { | |
get: function(bx) { | |
var by = bx.attributes.value; | |
return !by || by.specified ? bx.value : bx.text; | |
} | |
}, | |
select: { | |
get: function(bx) { | |
var bD, by, bC, bA, bB = bx.selectedIndex, bE = [], bF = bx.options, bz = bx.type === "select-one"; | |
if (bB < 0) { | |
return null; | |
} | |
by = bz ? bB : 0; | |
bC = bz ? bB + 1 : bF.length; | |
for (;by < bC; by++) { | |
bA = bF[by]; | |
if (bA.selected && (b.support.optDisabled ? !bA.disabled : bA.getAttribute("disabled") === null) && (!bA.parentNode.disabled || !b.nodeName(bA.parentNode, "optgroup"))) { | |
bD = b(bA).val(); | |
if (bz) { | |
return bD; | |
} | |
bE.push(bD); | |
} | |
} | |
if (bz && !bE.length && bF.length) { | |
return b(bF[bB]).val(); | |
} | |
return bE; | |
}, | |
set: function(by, bz) { | |
var bx = b.makeArray(bz); | |
b(by).find("option").each(function() { | |
this.selected = b.inArray(b(this).val(), bx) >= 0; | |
}); | |
if (!bx.length) { | |
by.selectedIndex = -1; | |
} | |
return bx; | |
} | |
} | |
}, | |
attrFn: { | |
val: true, | |
css: true, | |
html: true, | |
text: true, | |
data: true, | |
width: true, | |
height: true, | |
offset: true | |
}, | |
attr: function(bD, bA, bE, bC) { | |
var bz, bx, bB, by = bD.nodeType; | |
if (!bD || by === 3 || by === 8 || by === 2) { | |
return; | |
} | |
if (bC && bA in b.attrFn) { | |
return b(bD)[bA](bE); | |
} | |
if (typeof bD.getAttribute === "undefined") { | |
return b.prop(bD, bA, bE); | |
} | |
bB = by !== 1 || !b.isXMLDoc(bD); | |
if (bB) { | |
bA = bA.toLowerCase(); | |
bx = b.attrHooks[bA] || (aq.test(bA) ? a0 : bg); | |
} | |
if (bE !== N) { | |
if (bE === null) { | |
b.removeAttr(bD, bA); | |
return; | |
} else { | |
if (bx && "set" in bx && bB && (bz = bx.set(bD, bE, bA)) !== N) { | |
return bz; | |
} else { | |
bD.setAttribute(bA, "" + bE); | |
return bE; | |
} | |
} | |
} else { | |
if (bx && "get" in bx && bB && (bz = bx.get(bD, bA)) !== null) { | |
return bz; | |
} else { | |
bz = bD.getAttribute(bA); | |
return bz === null ? N : bz; | |
} | |
} | |
}, | |
removeAttr: function(bA, bC) { | |
var bB, bD, by, bx, bz = 0; | |
if (bC && bA.nodeType === 1) { | |
bD = bC.toLowerCase().split(ah); | |
bx = bD.length; | |
for (;bz < bx; bz++) { | |
by = bD[bz]; | |
if (by) { | |
bB = b.propFix[by] || by; | |
b.attr(bA, by, ""); | |
bA.removeAttribute(H ? by : bB); | |
if (aq.test(by) && bB in bA) { | |
bA[bB] = false; | |
} | |
} | |
} | |
} | |
}, | |
attrHooks: { | |
type: { | |
set: function(bx, by) { | |
if (g.test(bx.nodeName) && bx.parentNode) { | |
b.error("type property can't be changed"); | |
} else { | |
if (!b.support.radioValue && by === "radio" && b.nodeName(bx, "input")) { | |
var bz = bx.value; | |
bx.setAttribute("type", by); | |
if (bz) { | |
bx.value = bz; | |
} | |
return by; | |
} | |
} | |
} | |
}, | |
value: { | |
get: function(by, bx) { | |
if (bg && b.nodeName(by, "button")) { | |
return bg.get(by, bx); | |
} | |
return bx in by ? by.value : null; | |
}, | |
set: function(by, bz, bx) { | |
if (bg && b.nodeName(by, "button")) { | |
return bg.set(by, bz, bx); | |
} | |
by.value = bz; | |
} | |
} | |
}, | |
propFix: { | |
tabindex: "tabIndex", | |
readonly: "readOnly", | |
"for": "htmlFor", | |
"class": "className", | |
maxlength: "maxLength", | |
cellspacing: "cellSpacing", | |
cellpadding: "cellPadding", | |
rowspan: "rowSpan", | |
colspan: "colSpan", | |
usemap: "useMap", | |
frameborder: "frameBorder", | |
contenteditable: "contentEditable" | |
}, | |
prop: function(bC, bA, bD) { | |
var bz, bx, bB, by = bC.nodeType; | |
if (!bC || by === 3 || by === 8 || by === 2) { | |
return; | |
} | |
bB = by !== 1 || !b.isXMLDoc(bC); | |
if (bB) { | |
bA = b.propFix[bA] || bA; | |
bx = b.propHooks[bA]; | |
} | |
if (bD !== N) { | |
if (bx && "set" in bx && (bz = bx.set(bC, bD, bA)) !== N) { | |
return bz; | |
} else { | |
return bC[bA] = bD; | |
} | |
} else { | |
if (bx && "get" in bx && (bz = bx.get(bC, bA)) !== null) { | |
return bz; | |
} else { | |
return bC[bA]; | |
} | |
} | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(by) { | |
var bx = by.getAttributeNode("tabindex"); | |
return bx && bx.specified ? parseInt(bx.value, 10) : F.test(by.nodeName) || n.test(by.nodeName) && by.href ? 0 : N; | |
} | |
} | |
} | |
}); | |
b.attrHooks.tabindex = b.propHooks.tabIndex; | |
a0 = { | |
get: function(by, bx) { | |
var bA, bz = b.prop(by, bx); | |
return bz === true || typeof bz !== "boolean" && (bA = by.getAttributeNode(bx)) && bA.nodeValue !== false ? bx.toLowerCase() : N; | |
}, | |
set: function(by, bA, bx) { | |
var bz; | |
if (bA === false) { | |
b.removeAttr(by, bx); | |
} else { | |
bz = b.propFix[bx] || bx; | |
if (bz in by) { | |
by[bz] = true; | |
} | |
by.setAttribute(bx, bx.toLowerCase()); | |
} | |
return bx; | |
} | |
}; | |
if (!H) { | |
aH = { | |
name: true, | |
id: true | |
}; | |
bg = b.valHooks.button = { | |
get: function(bz, by) { | |
var bx; | |
bx = bz.getAttributeNode(by); | |
return bx && (aH[by] ? bx.nodeValue !== "" : bx.specified) ? bx.nodeValue : N; | |
}, | |
set: function(bz, bA, by) { | |
var bx = bz.getAttributeNode(by); | |
if (!bx) { | |
bx = ax.createAttribute(by); | |
bz.setAttributeNode(bx); | |
} | |
return bx.nodeValue = bA + ""; | |
} | |
}; | |
b.attrHooks.tabindex.set = bg.set; | |
b.each([ "width", "height" ], function(by, bx) { | |
b.attrHooks[bx] = b.extend(b.attrHooks[bx], { | |
set: function(bz, bA) { | |
if (bA === "") { | |
bz.setAttribute(bx, "auto"); | |
return bA; | |
} | |
} | |
}); | |
}); | |
b.attrHooks.contenteditable = { | |
get: bg.get, | |
set: function(by, bz, bx) { | |
if (bz === "") { | |
bz = "false"; | |
} | |
bg.set(by, bz, bx); | |
} | |
}; | |
} | |
if (!b.support.hrefNormalized) { | |
b.each([ "href", "src", "width", "height" ], function(by, bx) { | |
b.attrHooks[bx] = b.extend(b.attrHooks[bx], { | |
get: function(bA) { | |
var bz = bA.getAttribute(bx, 2); | |
return bz === null ? N : bz; | |
} | |
}); | |
}); | |
} | |
if (!b.support.style) { | |
b.attrHooks.style = { | |
get: function(bx) { | |
return bx.style.cssText.toLowerCase() || N; | |
}, | |
set: function(bx, by) { | |
return bx.style.cssText = "" + by; | |
} | |
}; | |
} | |
if (!b.support.optSelected) { | |
b.propHooks.selected = b.extend(b.propHooks.selected, { | |
get: function(by) { | |
var bx = by.parentNode; | |
if (bx) { | |
bx.selectedIndex; | |
if (bx.parentNode) { | |
bx.parentNode.selectedIndex; | |
} | |
} | |
return null; | |
} | |
}); | |
} | |
if (!b.support.enctype) { | |
b.propFix.enctype = "encoding"; | |
} | |
if (!b.support.checkOn) { | |
b.each([ "radio", "checkbox" ], function() { | |
b.valHooks[this] = { | |
get: function(bx) { | |
return bx.getAttribute("value") === null ? "on" : bx.value; | |
} | |
}; | |
}); | |
} | |
b.each([ "radio", "checkbox" ], function() { | |
b.valHooks[this] = b.extend(b.valHooks[this], { | |
set: function(bx, by) { | |
if (b.isArray(by)) { | |
return bx.checked = b.inArray(b(bx).val(), by) >= 0; | |
} | |
} | |
}); | |
}); | |
var bf = /^(?:textarea|input|select)$/i, p = /^([^\.]*)?(?:\.(.+))?$/, L = /\bhover(\.\S+)?\b/, aQ = /^key/, bh = /^(?:mouse|contextmenu)|click/, V = /^(?:focusinfocus|focusoutblur)$/, W = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, aa = function(bx) { | |
var by = W.exec(bx); | |
if (by) { | |
by[1] = (by[1] || "").toLowerCase(); | |
by[3] = by[3] && new RegExp("(?:^|\\s)" + by[3] + "(?:\\s|$)"); | |
} | |
return by; | |
}, l = function(bz, bx) { | |
var by = bz.attributes || {}; | |
return (!bx[1] || bz.nodeName.toLowerCase() === bx[1]) && (!bx[2] || (by.id || {}).value === bx[2]) && (!bx[3] || bx[3].test((by["class"] || {}).value)); | |
}, bv = function(bx) { | |
return b.event.special.hover ? bx : bx.replace(L, "mouseenter$1 mouseleave$1"); | |
}; | |
b.event = { | |
add: function(bA, bF, bM, bD, bB) { | |
var bG, bE, bN, bL, bK, bI, bx, bJ, by, bC, bz, bH; | |
if (bA.nodeType === 3 || bA.nodeType === 8 || !bF || !bM || !(bG = b._data(bA))) { | |
return; | |
} | |
if (bM.handler) { | |
by = bM; | |
bM = by.handler; | |
} | |
if (!bM.guid) { | |
bM.guid = b.guid++; | |
} | |
bN = bG.events; | |
if (!bN) { | |
bG.events = bN = {}; | |
} | |
bE = bG.handle; | |
if (!bE) { | |
bG.handle = bE = function(bO) { | |
return typeof b !== "undefined" && (!bO || b.event.triggered !== bO.type) ? b.event.dispatch.apply(bE.elem, arguments) : N; | |
}; | |
bE.elem = bA; | |
} | |
bF = b.trim(bv(bF)).split(" "); | |
for (bL = 0; bL < bF.length; bL++) { | |
bK = p.exec(bF[bL]) || []; | |
bI = bK[1]; | |
bx = (bK[2] || "").split(".").sort(); | |
bH = b.event.special[bI] || {}; | |
bI = (bB ? bH.delegateType : bH.bindType) || bI; | |
bH = b.event.special[bI] || {}; | |
bJ = b.extend({ | |
type: bI, | |
origType: bK[1], | |
data: bD, | |
handler: bM, | |
guid: bM.guid, | |
selector: bB, | |
quick: aa(bB), | |
namespace: bx.join(".") | |
}, by); | |
bz = bN[bI]; | |
if (!bz) { | |
bz = bN[bI] = []; | |
bz.delegateCount = 0; | |
if (!bH.setup || bH.setup.call(bA, bD, bx, bE) === false) { | |
if (bA.addEventListener) { | |
bA.addEventListener(bI, bE, false); | |
} else { | |
if (bA.attachEvent) { | |
bA.attachEvent("on" + bI, bE); | |
} | |
} | |
} | |
} | |
if (bH.add) { | |
bH.add.call(bA, bJ); | |
if (!bJ.handler.guid) { | |
bJ.handler.guid = bM.guid; | |
} | |
} | |
if (bB) { | |
bz.splice(bz.delegateCount++, 0, bJ); | |
} else { | |
bz.push(bJ); | |
} | |
b.event.global[bI] = true; | |
} | |
bA = null; | |
}, | |
global: {}, | |
remove: function(bM, bH, by, bK, bE) { | |
var bL = b.hasData(bM) && b._data(bM), bI, bA, bC, bO, bF, bD, bJ, bz, bB, bN, bG, bx; | |
if (!bL || !(bz = bL.events)) { | |
return; | |
} | |
bH = b.trim(bv(bH || "")).split(" "); | |
for (bI = 0; bI < bH.length; bI++) { | |
bA = p.exec(bH[bI]) || []; | |
bC = bO = bA[1]; | |
bF = bA[2]; | |
if (!bC) { | |
for (bC in bz) { | |
b.event.remove(bM, bC + bH[bI], by, bK, true); | |
} | |
continue; | |
} | |
bB = b.event.special[bC] || {}; | |
bC = (bK ? bB.delegateType : bB.bindType) || bC; | |
bG = bz[bC] || []; | |
bD = bG.length; | |
bF = bF ? new RegExp("(^|\\.)" + bF.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null; | |
for (bJ = 0; bJ < bG.length; bJ++) { | |
bx = bG[bJ]; | |
if ((bE || bO === bx.origType) && (!by || by.guid === bx.guid) && (!bF || bF.test(bx.namespace)) && (!bK || bK === bx.selector || bK === "**" && bx.selector)) { | |
bG.splice(bJ--, 1); | |
if (bx.selector) { | |
bG.delegateCount--; | |
} | |
if (bB.remove) { | |
bB.remove.call(bM, bx); | |
} | |
} | |
} | |
if (bG.length === 0 && bD !== bG.length) { | |
if (!bB.teardown || bB.teardown.call(bM, bF) === false) { | |
b.removeEvent(bM, bC, bL.handle); | |
} | |
delete bz[bC]; | |
} | |
} | |
if (b.isEmptyObject(bz)) { | |
bN = bL.handle; | |
if (bN) { | |
bN.elem = null; | |
} | |
b.removeData(bM, [ "events", "handle" ], true); | |
} | |
}, | |
customEvent: { | |
getData: true, | |
setData: true, | |
changeData: true | |
}, | |
trigger: function(by, bG, bD, bM) { | |
if (bD && (bD.nodeType === 3 || bD.nodeType === 8)) { | |
return; | |
} | |
var bJ = by.type || by, bA = [], bx, bz, bF, bK, bC, bB, bI, bH, bE, bL; | |
if (V.test(bJ + b.event.triggered)) { | |
return; | |
} | |
if (bJ.indexOf("!") >= 0) { | |
bJ = bJ.slice(0, -1); | |
bz = true; | |
} | |
if (bJ.indexOf(".") >= 0) { | |
bA = bJ.split("."); | |
bJ = bA.shift(); | |
bA.sort(); | |
} | |
if ((!bD || b.event.customEvent[bJ]) && !b.event.global[bJ]) { | |
return; | |
} | |
by = typeof by === "object" ? by[b.expando] ? by : new b.Event(bJ, by) : new b.Event(bJ); | |
by.type = bJ; | |
by.isTrigger = true; | |
by.exclusive = bz; | |
by.namespace = bA.join("."); | |
by.namespace_re = by.namespace ? new RegExp("(^|\\.)" + bA.join("\\.(?:.*\\.)?") + "(\\.|$)") : null; | |
bB = bJ.indexOf(":") < 0 ? "on" + bJ : ""; | |
if (!bD) { | |
bx = b.cache; | |
for (bF in bx) { | |
if (bx[bF].events && bx[bF].events[bJ]) { | |
b.event.trigger(by, bG, bx[bF].handle.elem, true); | |
} | |
} | |
return; | |
} | |
by.result = N; | |
if (!by.target) { | |
by.target = bD; | |
} | |
bG = bG != null ? b.makeArray(bG) : []; | |
bG.unshift(by); | |
bI = b.event.special[bJ] || {}; | |
if (bI.trigger && bI.trigger.apply(bD, bG) === false) { | |
return; | |
} | |
bE = [ [ bD, bI.bindType || bJ ] ]; | |
if (!bM && !bI.noBubble && !b.isWindow(bD)) { | |
bL = bI.delegateType || bJ; | |
bK = V.test(bL + bJ) ? bD : bD.parentNode; | |
bC = null; | |
for (;bK; bK = bK.parentNode) { | |
bE.push([ bK, bL ]); | |
bC = bK; | |
} | |
if (bC && bC === bD.ownerDocument) { | |
bE.push([ bC.defaultView || bC.parentWindow || bd, bL ]); | |
} | |
} | |
for (bF = 0; bF < bE.length && !by.isPropagationStopped(); bF++) { | |
bK = bE[bF][0]; | |
by.type = bE[bF][1]; | |
bH = (b._data(bK, "events") || {})[by.type] && b._data(bK, "handle"); | |
if (bH) { | |
bH.apply(bK, bG); | |
} | |
bH = bB && bK[bB]; | |
if (bH && b.acceptData(bK) && bH.apply(bK, bG) === false) { | |
by.preventDefault(); | |
} | |
} | |
by.type = bJ; | |
if (!bM && !by.isDefaultPrevented()) { | |
if ((!bI._default || bI._default.apply(bD.ownerDocument, bG) === false) && !(bJ === "click" && b.nodeName(bD, "a")) && b.acceptData(bD)) { | |
if (bB && bD[bJ] && (bJ !== "focus" && bJ !== "blur" || by.target.offsetWidth !== 0) && !b.isWindow(bD)) { | |
bC = bD[bB]; | |
if (bC) { | |
bD[bB] = null; | |
} | |
b.event.triggered = bJ; | |
bD[bJ](); | |
b.event.triggered = N; | |
if (bC) { | |
bD[bB] = bC; | |
} | |
} | |
} | |
} | |
return by.result; | |
}, | |
dispatch: function(bx) { | |
bx = b.event.fix(bx || bd.event); | |
var bC = (b._data(this, "events") || {})[bx.type] || [], bD = bC.delegateCount, bJ = [].slice.call(arguments, 0), bB = !bx.exclusive && !bx.namespace, bK = [], bF, bE, bN, bA, bI, bH, by, bG, bL, bz, bM; | |
bJ[0] = bx; | |
bx.delegateTarget = this; | |
if (bD && !bx.target.disabled && !(bx.button && bx.type === "click")) { | |
bA = b(this); | |
bA.context = this.ownerDocument || this; | |
for (bN = bx.target; bN != this; bN = bN.parentNode || this) { | |
bH = {}; | |
bG = []; | |
bA[0] = bN; | |
for (bF = 0; bF < bD; bF++) { | |
bL = bC[bF]; | |
bz = bL.selector; | |
if (bH[bz] === N) { | |
bH[bz] = bL.quick ? l(bN, bL.quick) : bA.is(bz); | |
} | |
if (bH[bz]) { | |
bG.push(bL); | |
} | |
} | |
if (bG.length) { | |
bK.push({ | |
elem: bN, | |
matches: bG | |
}); | |
} | |
} | |
} | |
if (bC.length > bD) { | |
bK.push({ | |
elem: this, | |
matches: bC.slice(bD) | |
}); | |
} | |
for (bF = 0; bF < bK.length && !bx.isPropagationStopped(); bF++) { | |
by = bK[bF]; | |
bx.currentTarget = by.elem; | |
for (bE = 0; bE < by.matches.length && !bx.isImmediatePropagationStopped(); bE++) { | |
bL = by.matches[bE]; | |
if (bB || !bx.namespace && !bL.namespace || bx.namespace_re && bx.namespace_re.test(bL.namespace)) { | |
bx.data = bL.data; | |
bx.handleObj = bL; | |
bI = ((b.event.special[bL.origType] || {}).handle || bL.handler).apply(by.elem, bJ); | |
if (bI !== N) { | |
bx.result = bI; | |
if (bI === false) { | |
bx.preventDefault(); | |
bx.stopPropagation(); | |
} | |
} | |
} | |
} | |
} | |
return bx.result; | |
}, | |
props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), | |
fixHooks: {}, | |
keyHooks: { | |
props: "char charCode key keyCode".split(" "), | |
filter: function(by, bx) { | |
if (by.which == null) { | |
by.which = bx.charCode != null ? bx.charCode : bx.keyCode; | |
} | |
return by; | |
} | |
}, | |
mouseHooks: { | |
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), | |
filter: function(bA, bz) { | |
var bB, bC, bx, by = bz.button, bD = bz.fromElement; | |
if (bA.pageX == null && bz.clientX != null) { | |
bB = bA.target.ownerDocument || ax; | |
bC = bB.documentElement; | |
bx = bB.body; | |
bA.pageX = bz.clientX + (bC && bC.scrollLeft || bx && bx.scrollLeft || 0) - (bC && bC.clientLeft || bx && bx.clientLeft || 0); | |
bA.pageY = bz.clientY + (bC && bC.scrollTop || bx && bx.scrollTop || 0) - (bC && bC.clientTop || bx && bx.clientTop || 0); | |
} | |
if (!bA.relatedTarget && bD) { | |
bA.relatedTarget = bD === bA.target ? bz.toElement : bD; | |
} | |
if (!bA.which && by !== N) { | |
bA.which = by & 1 ? 1 : by & 2 ? 3 : by & 4 ? 2 : 0; | |
} | |
return bA; | |
} | |
}, | |
fix: function(bz) { | |
if (bz[b.expando]) { | |
return bz; | |
} | |
var by, bC, bx = bz, bA = b.event.fixHooks[bz.type] || {}, bB = bA.props ? this.props.concat(bA.props) : this.props; | |
bz = b.Event(bx); | |
for (by = bB.length; by; ) { | |
bC = bB[--by]; | |
bz[bC] = bx[bC]; | |
} | |
if (!bz.target) { | |
bz.target = bx.srcElement || ax; | |
} | |
if (bz.target.nodeType === 3) { | |
bz.target = bz.target.parentNode; | |
} | |
if (bz.metaKey === N) { | |
bz.metaKey = bz.ctrlKey; | |
} | |
return bA.filter ? bA.filter(bz, bx) : bz; | |
}, | |
special: { | |
ready: { | |
setup: b.bindReady | |
}, | |
load: { | |
noBubble: true | |
}, | |
focus: { | |
delegateType: "focusin" | |
}, | |
blur: { | |
delegateType: "focusout" | |
}, | |
beforeunload: { | |
setup: function(bz, by, bx) { | |
if (b.isWindow(this)) { | |
this.onbeforeunload = bx; | |
} | |
}, | |
teardown: function(by, bx) { | |
if (this.onbeforeunload === bx) { | |
this.onbeforeunload = null; | |
} | |
} | |
} | |
}, | |
simulate: function(by, bA, bz, bx) { | |
var bB = b.extend(new b.Event(), bz, { | |
type: by, | |
isSimulated: true, | |
originalEvent: {} | |
}); | |
if (bx) { | |
b.event.trigger(bB, null, bA); | |
} else { | |
b.event.dispatch.call(bA, bB); | |
} | |
if (bB.isDefaultPrevented()) { | |
bz.preventDefault(); | |
} | |
} | |
}; | |
b.event.handle = b.event.dispatch; | |
b.removeEvent = ax.removeEventListener ? function(by, bx, bz) { | |
if (by.removeEventListener) { | |
by.removeEventListener(bx, bz, false); | |
} | |
} : function(by, bx, bz) { | |
if (by.detachEvent) { | |
by.detachEvent("on" + bx, bz); | |
} | |
}; | |
b.Event = function(by, bx) { | |
if (!(this instanceof b.Event)) { | |
return new b.Event(by, bx); | |
} | |
if (by && by.type) { | |
this.originalEvent = by; | |
this.type = by.type; | |
this.isDefaultPrevented = by.defaultPrevented || by.returnValue === false || by.getPreventDefault && by.getPreventDefault() ? k : bm; | |
} else { | |
this.type = by; | |
} | |
if (bx) { | |
b.extend(this, bx); | |
} | |
this.timeStamp = by && by.timeStamp || b.now(); | |
this[b.expando] = true; | |
}; | |
function bm() { | |
return false; | |
} | |
function k() { | |
return true; | |
} | |
b.Event.prototype = { | |
preventDefault: function() { | |
this.isDefaultPrevented = k; | |
var bx = this.originalEvent; | |
if (!bx) { | |
return; | |
} | |
if (bx.preventDefault) { | |
bx.preventDefault(); | |
} else { | |
bx.returnValue = false; | |
} | |
}, | |
stopPropagation: function() { | |
this.isPropagationStopped = k; | |
var bx = this.originalEvent; | |
if (!bx) { | |
return; | |
} | |
if (bx.stopPropagation) { | |
bx.stopPropagation(); | |
} | |
bx.cancelBubble = true; | |
}, | |
stopImmediatePropagation: function() { | |
this.isImmediatePropagationStopped = k; | |
this.stopPropagation(); | |
}, | |
isDefaultPrevented: bm, | |
isPropagationStopped: bm, | |
isImmediatePropagationStopped: bm | |
}; | |
b.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout" | |
}, function(by, bx) { | |
b.event.special[by] = { | |
delegateType: bx, | |
bindType: bx, | |
handle: function(bC) { | |
var bE = this, bD = bC.relatedTarget, bB = bC.handleObj, bz = bB.selector, bA; | |
if (!bD || bD !== bE && !b.contains(bE, bD)) { | |
bC.type = bB.origType; | |
bA = bB.handler.apply(this, arguments); | |
bC.type = bx; | |
} | |
return bA; | |
} | |
}; | |
}); | |
if (!b.support.submitBubbles) { | |
b.event.special.submit = { | |
setup: function() { | |
if (b.nodeName(this, "form")) { | |
return false; | |
} | |
b.event.add(this, "click._submit keypress._submit", function(bz) { | |
var by = bz.target, bx = b.nodeName(by, "input") || b.nodeName(by, "button") ? by.form : N; | |
if (bx && !bx._submit_attached) { | |
b.event.add(bx, "submit._submit", function(bA) { | |
if (this.parentNode && !bA.isTrigger) { | |
b.event.simulate("submit", this.parentNode, bA, true); | |
} | |
}); | |
bx._submit_attached = true; | |
} | |
}); | |
}, | |
teardown: function() { | |
if (b.nodeName(this, "form")) { | |
return false; | |
} | |
b.event.remove(this, "._submit"); | |
} | |
}; | |
} | |
if (!b.support.changeBubbles) { | |
b.event.special.change = { | |
setup: function() { | |
if (bf.test(this.nodeName)) { | |
if (this.type === "checkbox" || this.type === "radio") { | |
b.event.add(this, "propertychange._change", function(bx) { | |
if (bx.originalEvent.propertyName === "checked") { | |
this._just_changed = true; | |
} | |
}); | |
b.event.add(this, "click._change", function(bx) { | |
if (this._just_changed && !bx.isTrigger) { | |
this._just_changed = false; | |
b.event.simulate("change", this, bx, true); | |
} | |
}); | |
} | |
return false; | |
} | |
b.event.add(this, "beforeactivate._change", function(by) { | |
var bx = by.target; | |
if (bf.test(bx.nodeName) && !bx._change_attached) { | |
b.event.add(bx, "change._change", function(bz) { | |
if (this.parentNode && !bz.isSimulated && !bz.isTrigger) { | |
b.event.simulate("change", this.parentNode, bz, true); | |
} | |
}); | |
bx._change_attached = true; | |
} | |
}); | |
}, | |
handle: function(by) { | |
var bx = by.target; | |
if (this !== bx || by.isSimulated || by.isTrigger || bx.type !== "radio" && bx.type !== "checkbox") { | |
return by.handleObj.handler.apply(this, arguments); | |
} | |
}, | |
teardown: function() { | |
b.event.remove(this, "._change"); | |
return bf.test(this.nodeName); | |
} | |
}; | |
} | |
if (!b.support.focusinBubbles) { | |
b.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(bA, bx) { | |
var by = 0, bz = function(bB) { | |
b.event.simulate(bx, bB.target, b.event.fix(bB), true); | |
}; | |
b.event.special[bx] = { | |
setup: function() { | |
if (by++ === 0) { | |
ax.addEventListener(bA, bz, true); | |
} | |
}, | |
teardown: function() { | |
if (--by === 0) { | |
ax.removeEventListener(bA, bz, true); | |
} | |
} | |
}; | |
}); | |
} | |
b.fn.extend({ | |
on: function(bz, bx, bC, bB, by) { | |
var bD, bA; | |
if (typeof bz === "object") { | |
if (typeof bx !== "string") { | |
bC = bx; | |
bx = N; | |
} | |
for (bA in bz) { | |
this.on(bA, bx, bC, bz[bA], by); | |
} | |
return this; | |
} | |
if (bC == null && bB == null) { | |
bB = bx; | |
bC = bx = N; | |
} else { | |
if (bB == null) { | |
if (typeof bx === "string") { | |
bB = bC; | |
bC = N; | |
} else { | |
bB = bC; | |
bC = bx; | |
bx = N; | |
} | |
} | |
} | |
if (bB === false) { | |
bB = bm; | |
} else { | |
if (!bB) { | |
return this; | |
} | |
} | |
if (by === 1) { | |
bD = bB; | |
bB = function(bE) { | |
b().off(bE); | |
return bD.apply(this, arguments); | |
}; | |
bB.guid = bD.guid || (bD.guid = b.guid++); | |
} | |
return this.each(function() { | |
b.event.add(this, bz, bB, bC, bx); | |
}); | |
}, | |
one: function(by, bx, bA, bz) { | |
return this.on.call(this, by, bx, bA, bz, 1); | |
}, | |
off: function(bz, bx, bB) { | |
if (bz && bz.preventDefault && bz.handleObj) { | |
var by = bz.handleObj; | |
b(bz.delegateTarget).off(by.namespace ? by.type + "." + by.namespace : by.type, by.selector, by.handler); | |
return this; | |
} | |
if (typeof bz === "object") { | |
for (var bA in bz) { | |
this.off(bA, bx, bz[bA]); | |
} | |
return this; | |
} | |
if (bx === false || typeof bx === "function") { | |
bB = bx; | |
bx = N; | |
} | |
if (bB === false) { | |
bB = bm; | |
} | |
return this.each(function() { | |
b.event.remove(this, bz, bB, bx); | |
}); | |
}, | |
bind: function(bx, bz, by) { | |
return this.on(bx, null, bz, by); | |
}, | |
unbind: function(bx, by) { | |
return this.off(bx, null, by); | |
}, | |
live: function(bx, bz, by) { | |
b(this.context).on(bx, this.selector, bz, by); | |
return this; | |
}, | |
die: function(bx, by) { | |
b(this.context).off(bx, this.selector || "**", by); | |
return this; | |
}, | |
delegate: function(bx, by, bA, bz) { | |
return this.on(by, bx, bA, bz); | |
}, | |
undelegate: function(bx, by, bz) { | |
return arguments.length == 1 ? this.off(bx, "**") : this.off(by, bx, bz); | |
}, | |
trigger: function(bx, by) { | |
return this.each(function() { | |
b.event.trigger(bx, by, this); | |
}); | |
}, | |
triggerHandler: function(bx, by) { | |
if (this[0]) { | |
return b.event.trigger(bx, by, this[0], true); | |
} | |
}, | |
toggle: function(bA) { | |
var by = arguments, bx = bA.guid || b.guid++, bz = 0, bB = function(bC) { | |
var bD = (b._data(this, "lastToggle" + bA.guid) || 0) % bz; | |
b._data(this, "lastToggle" + bA.guid, bD + 1); | |
bC.preventDefault(); | |
return by[bD].apply(this, arguments) || false; | |
}; | |
bB.guid = bx; | |
while (bz < by.length) { | |
by[bz++].guid = bx; | |
} | |
return this.click(bB); | |
}, | |
hover: function(bx, by) { | |
return this.mouseenter(bx).mouseleave(by || bx); | |
} | |
}); | |
b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(by, bx) { | |
b.fn[bx] = function(bA, bz) { | |
if (bz == null) { | |
bz = bA; | |
bA = null; | |
} | |
return arguments.length > 0 ? this.on(bx, null, bA, bz) : this.trigger(bx); | |
}; | |
if (b.attrFn) { | |
b.attrFn[bx] = true; | |
} | |
if (aQ.test(bx)) { | |
b.event.fixHooks[bx] = b.event.keyHooks; | |
} | |
if (bh.test(bx)) { | |
b.event.fixHooks[bx] = b.event.mouseHooks; | |
} | |
}); | |
(function() { | |
var bJ = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, bE = "sizcache" + (Math.random() + "").replace(".", ""), bK = 0, bN = Object.prototype.toString, bD = false, bC = true, bM = /\\/g, bQ = /\r\n/g, bS = /\W/; | |
[ 0, 0 ].sort(function() { | |
bC = false; | |
return 0; | |
}); | |
var bA = function(bY, bT, b1, b2) { | |
b1 = b1 || []; | |
bT = bT || ax; | |
var b4 = bT; | |
if (bT.nodeType !== 1 && bT.nodeType !== 9) { | |
return []; | |
} | |
if (!bY || typeof bY !== "string") { | |
return b1; | |
} | |
var bV, b6, b9, bU, b5, b8, b7, b0, bX = true, bW = bA.isXML(bT), bZ = [], b3 = bY; | |
do { | |
bJ.exec(""); | |
bV = bJ.exec(b3); | |
if (bV) { | |
b3 = bV[3]; | |
bZ.push(bV[1]); | |
if (bV[2]) { | |
bU = bV[3]; | |
break; | |
} | |
} | |
} while (bV); | |
if (bZ.length > 1 && bF.exec(bY)) { | |
if (bZ.length === 2 && bG.relative[bZ[0]]) { | |
b6 = bO(bZ[0] + bZ[1], bT, b2); | |
} else { | |
b6 = bG.relative[bZ[0]] ? [ bT ] : bA(bZ.shift(), bT); | |
while (bZ.length) { | |
bY = bZ.shift(); | |
if (bG.relative[bY]) { | |
bY += bZ.shift(); | |
} | |
b6 = bO(bY, b6, b2); | |
} | |
} | |
} else { | |
if (!b2 && bZ.length > 1 && bT.nodeType === 9 && !bW && bG.match.ID.test(bZ[0]) && !bG.match.ID.test(bZ[bZ.length - 1])) { | |
b5 = bA.find(bZ.shift(), bT, bW); | |
bT = b5.expr ? bA.filter(b5.expr, b5.set)[0] : b5.set[0]; | |
} | |
if (bT) { | |
b5 = b2 ? { | |
expr: bZ.pop(), | |
set: bH(b2) | |
} : bA.find(bZ.pop(), bZ.length === 1 && (bZ[0] === "~" || bZ[0] === "+") && bT.parentNode ? bT.parentNode : bT, bW); | |
b6 = b5.expr ? bA.filter(b5.expr, b5.set) : b5.set; | |
if (bZ.length > 0) { | |
b9 = bH(b6); | |
} else { | |
bX = false; | |
} | |
while (bZ.length) { | |
b8 = bZ.pop(); | |
b7 = b8; | |
if (!bG.relative[b8]) { | |
b8 = ""; | |
} else { | |
b7 = bZ.pop(); | |
} | |
if (b7 == null) { | |
b7 = bT; | |
} | |
bG.relative[b8](b9, b7, bW); | |
} | |
} else { | |
b9 = bZ = []; | |
} | |
} | |
if (!b9) { | |
b9 = b6; | |
} | |
if (!b9) { | |
bA.error(b8 || bY); | |
} | |
if (bN.call(b9) === "[object Array]") { | |
if (!bX) { | |
b1.push.apply(b1, b9); | |
} else { | |
if (bT && bT.nodeType === 1) { | |
for (b0 = 0; b9[b0] != null; b0++) { | |
if (b9[b0] && (b9[b0] === true || b9[b0].nodeType === 1 && bA.contains(bT, b9[b0]))) { | |
b1.push(b6[b0]); | |
} | |
} | |
} else { | |
for (b0 = 0; b9[b0] != null; b0++) { | |
if (b9[b0] && b9[b0].nodeType === 1) { | |
b1.push(b6[b0]); | |
} | |
} | |
} | |
} | |
} else { | |
bH(b9, b1); | |
} | |
if (bU) { | |
bA(bU, b4, b1, b2); | |
bA.uniqueSort(b1); | |
} | |
return b1; | |
}; | |
bA.uniqueSort = function(bU) { | |
if (bL) { | |
bD = bC; | |
bU.sort(bL); | |
if (bD) { | |
for (var bT = 1; bT < bU.length; bT++) { | |
if (bU[bT] === bU[bT - 1]) { | |
bU.splice(bT--, 1); | |
} | |
} | |
} | |
} | |
return bU; | |
}; | |
bA.matches = function(bT, bU) { | |
return bA(bT, null, null, bU); | |
}; | |
bA.matchesSelector = function(bT, bU) { | |
return bA(bU, null, null, [ bT ]).length > 0; | |
}; | |
bA.find = function(b0, bT, b1) { | |
var bZ, bV, bX, bW, bY, bU; | |
if (!b0) { | |
return []; | |
} | |
for (bV = 0, bX = bG.order.length; bV < bX; bV++) { | |
bY = bG.order[bV]; | |
if (bW = bG.leftMatch[bY].exec(b0)) { | |
bU = bW[1]; | |
bW.splice(1, 1); | |
if (bU.substr(bU.length - 1) !== "\\") { | |
bW[1] = (bW[1] || "").replace(bM, ""); | |
bZ = bG.find[bY](bW, bT, b1); | |
if (bZ != null) { | |
b0 = b0.replace(bG.match[bY], ""); | |
break; | |
} | |
} | |
} | |
} | |
if (!bZ) { | |
bZ = typeof bT.getElementsByTagName !== "undefined" ? bT.getElementsByTagName("*") : []; | |
} | |
return { | |
set: bZ, | |
expr: b0 | |
}; | |
}; | |
bA.filter = function(b4, b3, b7, bX) { | |
var bZ, bT, b2, b9, b6, bU, bW, bY, b5, bV = b4, b8 = [], b1 = b3, b0 = b3 && b3[0] && bA.isXML(b3[0]); | |
while (b4 && b3.length) { | |
for (b2 in bG.filter) { | |
if ((bZ = bG.leftMatch[b2].exec(b4)) != null && bZ[2]) { | |
bU = bG.filter[b2]; | |
bW = bZ[1]; | |
bT = false; | |
bZ.splice(1, 1); | |
if (bW.substr(bW.length - 1) === "\\") { | |
continue; | |
} | |
if (b1 === b8) { | |
b8 = []; | |
} | |
if (bG.preFilter[b2]) { | |
bZ = bG.preFilter[b2](bZ, b1, b7, b8, bX, b0); | |
if (!bZ) { | |
bT = b9 = true; | |
} else { | |
if (bZ === true) { | |
continue; | |
} | |
} | |
} | |
if (bZ) { | |
for (bY = 0; (b6 = b1[bY]) != null; bY++) { | |
if (b6) { | |
b9 = bU(b6, bZ, bY, b1); | |
b5 = bX ^ b9; | |
if (b7 && b9 != null) { | |
if (b5) { | |
bT = true; | |
} else { | |
b1[bY] = false; | |
} | |
} else { | |
if (b5) { | |
b8.push(b6); | |
bT = true; | |
} | |
} | |
} | |
} | |
} | |
if (b9 !== N) { | |
if (!b7) { | |
b1 = b8; | |
} | |
b4 = b4.replace(bG.match[b2], ""); | |
if (!bT) { | |
return []; | |
} | |
break; | |
} | |
} | |
} | |
if (b4 === bV) { | |
if (bT == null) { | |
bA.error(b4); | |
} else { | |
break; | |
} | |
} | |
bV = b4; | |
} | |
return b1; | |
}; | |
bA.error = function(bT) { | |
throw new Error("Syntax error, unrecognized expression: " + bT); | |
}; | |
var by = bA.getText = function(bX) { | |
var bV, bW, bT = bX.nodeType, bU = ""; | |
if (bT) { | |
if (bT === 1 || bT === 9) { | |
if (typeof bX.textContent === "string") { | |
return bX.textContent; | |
} else { | |
if (typeof bX.innerText === "string") { | |
return bX.innerText.replace(bQ, ""); | |
} else { | |
for (bX = bX.firstChild; bX; bX = bX.nextSibling) { | |
bU += by(bX); | |
} | |
} | |
} | |
} else { | |
if (bT === 3 || bT === 4) { | |
return bX.nodeValue; | |
} | |
} | |
} else { | |
for (bV = 0; bW = bX[bV]; bV++) { | |
if (bW.nodeType !== 8) { | |
bU += by(bW); | |
} | |
} | |
} | |
return bU; | |
}; | |
var bG = bA.selectors = { | |
order: [ "ID", "NAME", "TAG" ], | |
match: { | |
ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, | |
CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, | |
NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, | |
ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, | |
TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, | |
CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, | |
POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, | |
PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ | |
}, | |
leftMatch: {}, | |
attrMap: { | |
"class": "className", | |
"for": "htmlFor" | |
}, | |
attrHandle: { | |
href: function(bT) { | |
return bT.getAttribute("href"); | |
}, | |
type: function(bT) { | |
return bT.getAttribute("type"); | |
} | |
}, | |
relative: { | |
"+": function(bZ, bU) { | |
var bW = typeof bU === "string", bY = bW && !bS.test(bU), b0 = bW && !bY; | |
if (bY) { | |
bU = bU.toLowerCase(); | |
} | |
for (var bV = 0, bT = bZ.length, bX; bV < bT; bV++) { | |
if (bX = bZ[bV]) { | |
while ((bX = bX.previousSibling) && bX.nodeType !== 1) {} | |
bZ[bV] = b0 || bX && bX.nodeName.toLowerCase() === bU ? bX || false : bX === bU; | |
} | |
} | |
if (b0) { | |
bA.filter(bU, bZ, true); | |
} | |
}, | |
">": function(bZ, bU) { | |
var bY, bX = typeof bU === "string", bV = 0, bT = bZ.length; | |
if (bX && !bS.test(bU)) { | |
bU = bU.toLowerCase(); | |
for (;bV < bT; bV++) { | |
bY = bZ[bV]; | |
if (bY) { | |
var bW = bY.parentNode; | |
bZ[bV] = bW.nodeName.toLowerCase() === bU ? bW : false; | |
} | |
} | |
} else { | |
for (;bV < bT; bV++) { | |
bY = bZ[bV]; | |
if (bY) { | |
bZ[bV] = bX ? bY.parentNode : bY.parentNode === bU; | |
} | |
} | |
if (bX) { | |
bA.filter(bU, bZ, true); | |
} | |
} | |
}, | |
"": function(bW, bU, bY) { | |
var bX, bV = bK++, bT = bP; | |
if (typeof bU === "string" && !bS.test(bU)) { | |
bU = bU.toLowerCase(); | |
bX = bU; | |
bT = bx; | |
} | |
bT("parentNode", bU, bV, bW, bX, bY); | |
}, | |
"~": function(bW, bU, bY) { | |
var bX, bV = bK++, bT = bP; | |
if (typeof bU === "string" && !bS.test(bU)) { | |
bU = bU.toLowerCase(); | |
bX = bU; | |
bT = bx; | |
} | |
bT("previousSibling", bU, bV, bW, bX, bY); | |
} | |
}, | |
find: { | |
ID: function(bU, bV, bW) { | |
if (typeof bV.getElementById !== "undefined" && !bW) { | |
var bT = bV.getElementById(bU[1]); | |
return bT && bT.parentNode ? [ bT ] : []; | |
} | |
}, | |
NAME: function(bV, bY) { | |
if (typeof bY.getElementsByName !== "undefined") { | |
var bU = [], bX = bY.getElementsByName(bV[1]); | |
for (var bW = 0, bT = bX.length; bW < bT; bW++) { | |
if (bX[bW].getAttribute("name") === bV[1]) { | |
bU.push(bX[bW]); | |
} | |
} | |
return bU.length === 0 ? null : bU; | |
} | |
}, | |
TAG: function(bT, bU) { | |
if (typeof bU.getElementsByTagName !== "undefined") { | |
return bU.getElementsByTagName(bT[1]); | |
} | |
} | |
}, | |
preFilter: { | |
CLASS: function(bW, bU, bV, bT, bZ, b0) { | |
bW = " " + bW[1].replace(bM, "") + " "; | |
if (b0) { | |
return bW; | |
} | |
for (var bX = 0, bY; (bY = bU[bX]) != null; bX++) { | |
if (bY) { | |
if (bZ ^ (bY.className && (" " + bY.className + " ").replace(/[\t\n\r]/g, " ").indexOf(bW) >= 0)) { | |
if (!bV) { | |
bT.push(bY); | |
} | |
} else { | |
if (bV) { | |
bU[bX] = false; | |
} | |
} | |
} | |
} | |
return false; | |
}, | |
ID: function(bT) { | |
return bT[1].replace(bM, ""); | |
}, | |
TAG: function(bU, bT) { | |
return bU[1].replace(bM, "").toLowerCase(); | |
}, | |
CHILD: function(bT) { | |
if (bT[1] === "nth") { | |
if (!bT[2]) { | |
bA.error(bT[0]); | |
} | |
bT[2] = bT[2].replace(/^\+|\s*/g, ""); | |
var bU = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(bT[2] === "even" && "2n" || bT[2] === "odd" && "2n+1" || !/\D/.test(bT[2]) && "0n+" + bT[2] || bT[2]); | |
bT[2] = bU[1] + (bU[2] || 1) - 0; | |
bT[3] = bU[3] - 0; | |
} else { | |
if (bT[2]) { | |
bA.error(bT[0]); | |
} | |
} | |
bT[0] = bK++; | |
return bT; | |
}, | |
ATTR: function(bX, bU, bV, bT, bY, bZ) { | |
var bW = bX[1] = bX[1].replace(bM, ""); | |
if (!bZ && bG.attrMap[bW]) { | |
bX[1] = bG.attrMap[bW]; | |
} | |
bX[4] = (bX[4] || bX[5] || "").replace(bM, ""); | |
if (bX[2] === "~=") { | |
bX[4] = " " + bX[4] + " "; | |
} | |
return bX; | |
}, | |
PSEUDO: function(bX, bU, bV, bT, bY) { | |
if (bX[1] === "not") { | |
if ((bJ.exec(bX[3]) || "").length > 1 || /^\w/.test(bX[3])) { | |
bX[3] = bA(bX[3], null, null, bU); | |
} else { | |
var bW = bA.filter(bX[3], bU, bV, true ^ bY); | |
if (!bV) { | |
bT.push.apply(bT, bW); | |
} | |
return false; | |
} | |
} else { | |
if (bG.match.POS.test(bX[0]) || bG.match.CHILD.test(bX[0])) { | |
return true; | |
} | |
} | |
return bX; | |
}, | |
POS: function(bT) { | |
bT.unshift(true); | |
return bT; | |
} | |
}, | |
filters: { | |
enabled: function(bT) { | |
return bT.disabled === false && bT.type !== "hidden"; | |
}, | |
disabled: function(bT) { | |
return bT.disabled === true; | |
}, | |
checked: function(bT) { | |
return bT.checked === true; | |
}, | |
selected: function(bT) { | |
if (bT.parentNode) { | |
bT.parentNode.selectedIndex; | |
} | |
return bT.selected === true; | |
}, | |
parent: function(bT) { | |
return !!bT.firstChild; | |
}, | |
empty: function(bT) { | |
return !bT.firstChild; | |
}, | |
has: function(bV, bU, bT) { | |
return !!bA(bT[3], bV).length; | |
}, | |
header: function(bT) { | |
return /h\d/i.test(bT.nodeName); | |
}, | |
text: function(bV) { | |
var bT = bV.getAttribute("type"), bU = bV.type; | |
return bV.nodeName.toLowerCase() === "input" && "text" === bU && (bT === bU || bT === null); | |
}, | |
radio: function(bT) { | |
return bT.nodeName.toLowerCase() === "input" && "radio" === bT.type; | |
}, | |
checkbox: function(bT) { | |
return bT.nodeName.toLowerCase() === "input" && "checkbox" === bT.type; | |
}, | |
file: function(bT) { | |
return bT.nodeName.toLowerCase() === "input" && "file" === bT.type; | |
}, | |
password: function(bT) { | |
return bT.nodeName.toLowerCase() === "input" && "password" === bT.type; | |
}, | |
submit: function(bU) { | |
var bT = bU.nodeName.toLowerCase(); | |
return (bT === "input" || bT === "button") && "submit" === bU.type; | |
}, | |
image: function(bT) { | |
return bT.nodeName.toLowerCase() === "input" && "image" === bT.type; | |
}, | |
reset: function(bU) { | |
var bT = bU.nodeName.toLowerCase(); | |
return (bT === "input" || bT === "button") && "reset" === bU.type; | |
}, | |
button: function(bU) { | |
var bT = bU.nodeName.toLowerCase(); | |
return bT === "input" && "button" === bU.type || bT === "button"; | |
}, | |
input: function(bT) { | |
return /input|select|textarea|button/i.test(bT.nodeName); | |
}, | |
focus: function(bT) { | |
return bT === bT.ownerDocument.activeElement; | |
} | |
}, | |
setFilters: { | |
first: function(bU, bT) { | |
return bT === 0; | |
}, | |
last: function(bV, bU, bT, bW) { | |
return bU === bW.length - 1; | |
}, | |
even: function(bU, bT) { | |
return bT % 2 === 0; | |
}, | |
odd: function(bU, bT) { | |
return bT % 2 === 1; | |
}, | |
lt: function(bV, bU, bT) { | |
return bU < bT[3] - 0; | |
}, | |
gt: function(bV, bU, bT) { | |
return bU > bT[3] - 0; | |
}, | |
nth: function(bV, bU, bT) { | |
return bT[3] - 0 === bU; | |
}, | |
eq: function(bV, bU, bT) { | |
return bT[3] - 0 === bU; | |
} | |
}, | |
filter: { | |
PSEUDO: function(bV, b0, bZ, b1) { | |
var bT = b0[1], bU = bG.filters[bT]; | |
if (bU) { | |
return bU(bV, bZ, b0, b1); | |
} else { | |
if (bT === "contains") { | |
return (bV.textContent || bV.innerText || by([ bV ]) || "").indexOf(b0[3]) >= 0; | |
} else { | |
if (bT === "not") { | |
var bW = b0[3]; | |
for (var bY = 0, bX = bW.length; bY < bX; bY++) { | |
if (bW[bY] === bV) { | |
return false; | |
} | |
} | |
return true; | |
} else { | |
bA.error(bT); | |
} | |
} | |
} | |
}, | |
CHILD: function(bV, bX) { | |
var bW, b3, bZ, b2, bT, bY, b1, b0 = bX[1], bU = bV; | |
switch (b0) { | |
case "only": | |
case "first": | |
while (bU = bU.previousSibling) { | |
if (bU.nodeType === 1) { | |
return false; | |
} | |
} | |
if (b0 === "first") { | |
return true; | |
} | |
bU = bV; | |
case "last": | |
while (bU = bU.nextSibling) { | |
if (bU.nodeType === 1) { | |
return false; | |
} | |
} | |
return true; | |
case "nth": | |
bW = bX[2]; | |
b3 = bX[3]; | |
if (bW === 1 && b3 === 0) { | |
return true; | |
} | |
bZ = bX[0]; | |
b2 = bV.parentNode; | |
if (b2 && (b2[bE] !== bZ || !bV.nodeIndex)) { | |
bY = 0; | |
for (bU = b2.firstChild; bU; bU = bU.nextSibling) { | |
if (bU.nodeType === 1) { | |
bU.nodeIndex = ++bY; | |
} | |
} | |
b2[bE] = bZ; | |
} | |
b1 = bV.nodeIndex - b3; | |
if (bW === 0) { | |
return b1 === 0; | |
} else { | |
return b1 % bW === 0 && b1 / bW >= 0; | |
} | |
} | |
}, | |
ID: function(bU, bT) { | |
return bU.nodeType === 1 && bU.getAttribute("id") === bT; | |
}, | |
TAG: function(bU, bT) { | |
return bT === "*" && bU.nodeType === 1 || !!bU.nodeName && bU.nodeName.toLowerCase() === bT; | |
}, | |
CLASS: function(bU, bT) { | |
return (" " + (bU.className || bU.getAttribute("class")) + " ").indexOf(bT) > -1; | |
}, | |
ATTR: function(bY, bW) { | |
var bV = bW[1], bT = bA.attr ? bA.attr(bY, bV) : bG.attrHandle[bV] ? bG.attrHandle[bV](bY) : bY[bV] != null ? bY[bV] : bY.getAttribute(bV), bZ = bT + "", bX = bW[2], bU = bW[4]; | |
return bT == null ? bX === "!=" : !bX && bA.attr ? bT != null : bX === "=" ? bZ === bU : bX === "*=" ? bZ.indexOf(bU) >= 0 : bX === "~=" ? (" " + bZ + " ").indexOf(bU) >= 0 : !bU ? bZ && bT !== false : bX === "!=" ? bZ !== bU : bX === "^=" ? bZ.indexOf(bU) === 0 : bX === "$=" ? bZ.substr(bZ.length - bU.length) === bU : bX === "|=" ? bZ === bU || bZ.substr(0, bU.length + 1) === bU + "-" : false; | |
}, | |
POS: function(bX, bU, bV, bY) { | |
var bT = bU[2], bW = bG.setFilters[bT]; | |
if (bW) { | |
return bW(bX, bV, bU, bY); | |
} | |
} | |
} | |
}; | |
var bF = bG.match.POS, bz = function(bU, bT) { | |
return "\\" + (bT - 0 + 1); | |
}; | |
for (var bB in bG.match) { | |
bG.match[bB] = new RegExp(bG.match[bB].source + /(?![^\[]*\])(?![^\(]*\))/.source); | |
bG.leftMatch[bB] = new RegExp(/(^(?:.|\r|\n)*?)/.source + bG.match[bB].source.replace(/\\(\d+)/g, bz)); | |
} | |
var bH = function(bU, bT) { | |
bU = Array.prototype.slice.call(bU, 0); | |
if (bT) { | |
bT.push.apply(bT, bU); | |
return bT; | |
} | |
return bU; | |
}; | |
try { | |
Array.prototype.slice.call(ax.documentElement.childNodes, 0)[0].nodeType; | |
} catch (bR) { | |
bH = function(bX, bW) { | |
var bV = 0, bU = bW || []; | |
if (bN.call(bX) === "[object Array]") { | |
Array.prototype.push.apply(bU, bX); | |
} else { | |
if (typeof bX.length === "number") { | |
for (var bT = bX.length; bV < bT; bV++) { | |
bU.push(bX[bV]); | |
} | |
} else { | |
for (;bX[bV]; bV++) { | |
bU.push(bX[bV]); | |
} | |
} | |
} | |
return bU; | |
}; | |
} | |
var bL, bI; | |
if (ax.documentElement.compareDocumentPosition) { | |
bL = function(bU, bT) { | |
if (bU === bT) { | |
bD = true; | |
return 0; | |
} | |
if (!bU.compareDocumentPosition || !bT.compareDocumentPosition) { | |
return bU.compareDocumentPosition ? -1 : 1; | |
} | |
return bU.compareDocumentPosition(bT) & 4 ? -1 : 1; | |
}; | |
} else { | |
bL = function(b1, b0) { | |
if (b1 === b0) { | |
bD = true; | |
return 0; | |
} else { | |
if (b1.sourceIndex && b0.sourceIndex) { | |
return b1.sourceIndex - b0.sourceIndex; | |
} | |
} | |
var bY, bU, bV = [], bT = [], bX = b1.parentNode, bZ = b0.parentNode, b2 = bX; | |
if (bX === bZ) { | |
return bI(b1, b0); | |
} else { | |
if (!bX) { | |
return -1; | |
} else { | |
if (!bZ) { | |
return 1; | |
} | |
} | |
} | |
while (b2) { | |
bV.unshift(b2); | |
b2 = b2.parentNode; | |
} | |
b2 = bZ; | |
while (b2) { | |
bT.unshift(b2); | |
b2 = b2.parentNode; | |
} | |
bY = bV.length; | |
bU = bT.length; | |
for (var bW = 0; bW < bY && bW < bU; bW++) { | |
if (bV[bW] !== bT[bW]) { | |
return bI(bV[bW], bT[bW]); | |
} | |
} | |
return bW === bY ? bI(b1, bT[bW], -1) : bI(bV[bW], b0, 1); | |
}; | |
bI = function(bU, bT, bV) { | |
if (bU === bT) { | |
return bV; | |
} | |
var bW = bU.nextSibling; | |
while (bW) { | |
if (bW === bT) { | |
return -1; | |
} | |
bW = bW.nextSibling; | |
} | |
return 1; | |
}; | |
} | |
(function() { | |
var bU = ax.createElement("div"), bV = "script" + new Date().getTime(), bT = ax.documentElement; | |
bU.innerHTML = "<a name='" + bV + "'/>"; | |
bT.insertBefore(bU, bT.firstChild); | |
if (ax.getElementById(bV)) { | |
bG.find.ID = function(bX, bY, bZ) { | |
if (typeof bY.getElementById !== "undefined" && !bZ) { | |
var bW = bY.getElementById(bX[1]); | |
return bW ? bW.id === bX[1] || typeof bW.getAttributeNode !== "undefined" && bW.getAttributeNode("id").nodeValue === bX[1] ? [ bW ] : N : []; | |
} | |
}; | |
bG.filter.ID = function(bY, bW) { | |
var bX = typeof bY.getAttributeNode !== "undefined" && bY.getAttributeNode("id"); | |
return bY.nodeType === 1 && bX && bX.nodeValue === bW; | |
}; | |
} | |
bT.removeChild(bU); | |
bT = bU = null; | |
})(); | |
(function() { | |
var bT = ax.createElement("div"); | |
bT.appendChild(ax.createComment("")); | |
if (bT.getElementsByTagName("*").length > 0) { | |
bG.find.TAG = function(bU, bY) { | |
var bX = bY.getElementsByTagName(bU[1]); | |
if (bU[1] === "*") { | |
var bW = []; | |
for (var bV = 0; bX[bV]; bV++) { | |
if (bX[bV].nodeType === 1) { | |
bW.push(bX[bV]); | |
} | |
} | |
bX = bW; | |
} | |
return bX; | |
}; | |
} | |
bT.innerHTML = "<a href='#'></a>"; | |
if (bT.firstChild && typeof bT.firstChild.getAttribute !== "undefined" && bT.firstChild.getAttribute("href") !== "#") { | |
bG.attrHandle.href = function(bU) { | |
return bU.getAttribute("href", 2); | |
}; | |
} | |
bT = null; | |
})(); | |
if (ax.querySelectorAll) { | |
(function() { | |
var bT = bA, bW = ax.createElement("div"), bV = "__sizzle__"; | |
bW.innerHTML = "<p class='TEST'></p>"; | |
if (bW.querySelectorAll && bW.querySelectorAll(".TEST").length === 0) { | |
return; | |
} | |
bA = function(b7, bY, b2, b6) { | |
bY = bY || ax; | |
if (!b6 && !bA.isXML(bY)) { | |
var b5 = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b7); | |
if (b5 && (bY.nodeType === 1 || bY.nodeType === 9)) { | |
if (b5[1]) { | |
return bH(bY.getElementsByTagName(b7), b2); | |
} else { | |
if (b5[2] && bG.find.CLASS && bY.getElementsByClassName) { | |
return bH(bY.getElementsByClassName(b5[2]), b2); | |
} | |
} | |
} | |
if (bY.nodeType === 9) { | |
if (b7 === "body" && bY.body) { | |
return bH([ bY.body ], b2); | |
} else { | |
if (b5 && b5[3]) { | |
var b1 = bY.getElementById(b5[3]); | |
if (b1 && b1.parentNode) { | |
if (b1.id === b5[3]) { | |
return bH([ b1 ], b2); | |
} | |
} else { | |
return bH([], b2); | |
} | |
} | |
} | |
try { | |
return bH(bY.querySelectorAll(b7), b2); | |
} catch (b3) {} | |
} else { | |
if (bY.nodeType === 1 && bY.nodeName.toLowerCase() !== "object") { | |
var bZ = bY, b0 = bY.getAttribute("id"), bX = b0 || bV, b9 = bY.parentNode, b8 = /^\s*[+~]/.test(b7); | |
if (!b0) { | |
bY.setAttribute("id", bX); | |
} else { | |
bX = bX.replace(/'/g, "\\$&"); | |
} | |
if (b8 && b9) { | |
bY = bY.parentNode; | |
} | |
try { | |
if (!b8 || b9) { | |
return bH(bY.querySelectorAll("[id='" + bX + "'] " + b7), b2); | |
} | |
} catch (b4) {} finally { | |
if (!b0) { | |
bZ.removeAttribute("id"); | |
} | |
} | |
} | |
} | |
} | |
return bT(b7, bY, b2, b6); | |
}; | |
for (var bU in bT) { | |
bA[bU] = bT[bU]; | |
} | |
bW = null; | |
})(); | |
} | |
(function() { | |
var bT = ax.documentElement, bV = bT.matchesSelector || bT.mozMatchesSelector || bT.webkitMatchesSelector || bT.msMatchesSelector; | |
if (bV) { | |
var bX = !bV.call(ax.createElement("div"), "div"), bU = false; | |
try { | |
bV.call(ax.documentElement, "[test!='']:sizzle"); | |
} catch (bW) { | |
bU = true; | |
} | |
bA.matchesSelector = function(bZ, b1) { | |
b1 = b1.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); | |
if (!bA.isXML(bZ)) { | |
try { | |
if (bU || !bG.match.PSEUDO.test(b1) && !/!=/.test(b1)) { | |
var bY = bV.call(bZ, b1); | |
if (bY || !bX || bZ.document && bZ.document.nodeType !== 11) { | |
return bY; | |
} | |
} | |
} catch (b0) {} | |
} | |
return bA(b1, null, null, [ bZ ]).length > 0; | |
}; | |
} | |
})(); | |
(function() { | |
var bT = ax.createElement("div"); | |
bT.innerHTML = "<div class='test e'></div><div class='test'></div>"; | |
if (!bT.getElementsByClassName || bT.getElementsByClassName("e").length === 0) { | |
return; | |
} | |
bT.lastChild.className = "e"; | |
if (bT.getElementsByClassName("e").length === 1) { | |
return; | |
} | |
bG.order.splice(1, 0, "CLASS"); | |
bG.find.CLASS = function(bU, bV, bW) { | |
if (typeof bV.getElementsByClassName !== "undefined" && !bW) { | |
return bV.getElementsByClassName(bU[1]); | |
} | |
}; | |
bT = null; | |
})(); | |
function bx(bU, bZ, bY, b2, b0, b1) { | |
for (var bW = 0, bV = b2.length; bW < bV; bW++) { | |
var bT = b2[bW]; | |
if (bT) { | |
var bX = false; | |
bT = bT[bU]; | |
while (bT) { | |
if (bT[bE] === bY) { | |
bX = b2[bT.sizset]; | |
break; | |
} | |
if (bT.nodeType === 1 && !b1) { | |
bT[bE] = bY; | |
bT.sizset = bW; | |
} | |
if (bT.nodeName.toLowerCase() === bZ) { | |
bX = bT; | |
break; | |
} | |
bT = bT[bU]; | |
} | |
b2[bW] = bX; | |
} | |
} | |
} | |
function bP(bU, bZ, bY, b2, b0, b1) { | |
for (var bW = 0, bV = b2.length; bW < bV; bW++) { | |
var bT = b2[bW]; | |
if (bT) { | |
var bX = false; | |
bT = bT[bU]; | |
while (bT) { | |
if (bT[bE] === bY) { | |
bX = b2[bT.sizset]; | |
break; | |
} | |
if (bT.nodeType === 1) { | |
if (!b1) { | |
bT[bE] = bY; | |
bT.sizset = bW; | |
} | |
if (typeof bZ !== "string") { | |
if (bT === bZ) { | |
bX = true; | |
break; | |
} | |
} else { | |
if (bA.filter(bZ, [ bT ]).length > 0) { | |
bX = bT; | |
break; | |
} | |
} | |
} | |
bT = bT[bU]; | |
} | |
b2[bW] = bX; | |
} | |
} | |
} | |
if (ax.documentElement.contains) { | |
bA.contains = function(bU, bT) { | |
return bU !== bT && (bU.contains ? bU.contains(bT) : true); | |
}; | |
} else { | |
if (ax.documentElement.compareDocumentPosition) { | |
bA.contains = function(bU, bT) { | |
return !!(bU.compareDocumentPosition(bT) & 16); | |
}; | |
} else { | |
bA.contains = function() { | |
return false; | |
}; | |
} | |
} | |
bA.isXML = function(bT) { | |
var bU = (bT ? bT.ownerDocument || bT : 0).documentElement; | |
return bU ? bU.nodeName !== "HTML" : false; | |
}; | |
var bO = function(bV, bT, bZ) { | |
var bY, b0 = [], bX = "", b1 = bT.nodeType ? [ bT ] : bT; | |
while (bY = bG.match.PSEUDO.exec(bV)) { | |
bX += bY[0]; | |
bV = bV.replace(bG.match.PSEUDO, ""); | |
} | |
bV = bG.relative[bV] ? bV + "*" : bV; | |
for (var bW = 0, bU = b1.length; bW < bU; bW++) { | |
bA(bV, b1[bW], b0, bZ); | |
} | |
return bA.filter(bX, b0); | |
}; | |
bA.attr = b.attr; | |
bA.selectors.attrMap = {}; | |
b.find = bA; | |
b.expr = bA.selectors; | |
b.expr[":"] = b.expr.filters; | |
b.unique = bA.uniqueSort; | |
b.text = bA.getText; | |
b.isXMLDoc = bA.isXML; | |
b.contains = bA.contains; | |
})(); | |
var ad = /Until$/, at = /^(?:parents|prevUntil|prevAll)/, bb = /,/, br = /^.[^:#\[\.,]*$/, R = Array.prototype.slice, J = b.expr.match.POS, aA = { | |
children: true, | |
contents: true, | |
next: true, | |
prev: true | |
}; | |
b.fn.extend({ | |
find: function(bx) { | |
var bz = this, bB, by; | |
if (typeof bx !== "string") { | |
return b(bx).filter(function() { | |
for (bB = 0, by = bz.length; bB < by; bB++) { | |
if (b.contains(bz[bB], this)) { | |
return true; | |
} | |
} | |
}); | |
} | |
var bA = this.pushStack("", "find", bx), bD, bE, bC; | |
for (bB = 0, by = this.length; bB < by; bB++) { | |
bD = bA.length; | |
b.find(bx, this[bB], bA); | |
if (bB > 0) { | |
for (bE = bD; bE < bA.length; bE++) { | |
for (bC = 0; bC < bD; bC++) { | |
if (bA[bC] === bA[bE]) { | |
bA.splice(bE--, 1); | |
break; | |
} | |
} | |
} | |
} | |
} | |
return bA; | |
}, | |
has: function(by) { | |
var bx = b(by); | |
return this.filter(function() { | |
for (var bA = 0, bz = bx.length; bA < bz; bA++) { | |
if (b.contains(this, bx[bA])) { | |
return true; | |
} | |
} | |
}); | |
}, | |
not: function(bx) { | |
return this.pushStack(aI(this, bx, false), "not", bx); | |
}, | |
filter: function(bx) { | |
return this.pushStack(aI(this, bx, true), "filter", bx); | |
}, | |
is: function(bx) { | |
return !!bx && (typeof bx === "string" ? J.test(bx) ? b(bx, this.context).index(this[0]) >= 0 : b.filter(bx, this).length > 0 : this.filter(bx).length > 0); | |
}, | |
closest: function(bB, bA) { | |
var by = [], bz, bx, bC = this[0]; | |
if (b.isArray(bB)) { | |
var bE = 1; | |
while (bC && bC.ownerDocument && bC !== bA) { | |
for (bz = 0; bz < bB.length; bz++) { | |
if (b(bC).is(bB[bz])) { | |
by.push({ | |
selector: bB[bz], | |
elem: bC, | |
level: bE | |
}); | |
} | |
} | |
bC = bC.parentNode; | |
bE++; | |
} | |
return by; | |
} | |
var bD = J.test(bB) || typeof bB !== "string" ? b(bB, bA || this.context) : 0; | |
for (bz = 0, bx = this.length; bz < bx; bz++) { | |
bC = this[bz]; | |
while (bC) { | |
if (bD ? bD.index(bC) > -1 : b.find.matchesSelector(bC, bB)) { | |
by.push(bC); | |
break; | |
} else { | |
bC = bC.parentNode; | |
if (!bC || !bC.ownerDocument || bC === bA || bC.nodeType === 11) { | |
break; | |
} | |
} | |
} | |
} | |
by = by.length > 1 ? b.unique(by) : by; | |
return this.pushStack(by, "closest", bB); | |
}, | |
index: function(bx) { | |
if (!bx) { | |
return this[0] && this[0].parentNode ? this.prevAll().length : -1; | |
} | |
if (typeof bx === "string") { | |
return b.inArray(this[0], b(bx)); | |
} | |
return b.inArray(bx.jquery ? bx[0] : bx, this); | |
}, | |
add: function(bx, by) { | |
var bA = typeof bx === "string" ? b(bx, by) : b.makeArray(bx && bx.nodeType ? [ bx ] : bx), bz = b.merge(this.get(), bA); | |
return this.pushStack(E(bA[0]) || E(bz[0]) ? bz : b.unique(bz)); | |
}, | |
andSelf: function() { | |
return this.add(this.prevObject); | |
} | |
}); | |
function E(bx) { | |
return !bx || !bx.parentNode || bx.parentNode.nodeType === 11; | |
} | |
b.each({ | |
parent: function(by) { | |
var bx = by.parentNode; | |
return bx && bx.nodeType !== 11 ? bx : null; | |
}, | |
parents: function(bx) { | |
return b.dir(bx, "parentNode"); | |
}, | |
parentsUntil: function(by, bx, bz) { | |
return b.dir(by, "parentNode", bz); | |
}, | |
next: function(bx) { | |
return b.nth(bx, 2, "nextSibling"); | |
}, | |
prev: function(bx) { | |
return b.nth(bx, 2, "previousSibling"); | |
}, | |
nextAll: function(bx) { | |
return b.dir(bx, "nextSibling"); | |
}, | |
prevAll: function(bx) { | |
return b.dir(bx, "previousSibling"); | |
}, | |
nextUntil: function(by, bx, bz) { | |
return b.dir(by, "nextSibling", bz); | |
}, | |
prevUntil: function(by, bx, bz) { | |
return b.dir(by, "previousSibling", bz); | |
}, | |
siblings: function(bx) { | |
return b.sibling(bx.parentNode.firstChild, bx); | |
}, | |
children: function(bx) { | |
return b.sibling(bx.firstChild); | |
}, | |
contents: function(bx) { | |
return b.nodeName(bx, "iframe") ? bx.contentDocument || bx.contentWindow.document : b.makeArray(bx.childNodes); | |
} | |
}, function(bx, by) { | |
b.fn[bx] = function(bB, bz) { | |
var bA = b.map(this, by, bB); | |
if (!ad.test(bx)) { | |
bz = bB; | |
} | |
if (bz && typeof bz === "string") { | |
bA = b.filter(bz, bA); | |
} | |
bA = this.length > 1 && !aA[bx] ? b.unique(bA) : bA; | |
if ((this.length > 1 || bb.test(bz)) && at.test(bx)) { | |
bA = bA.reverse(); | |
} | |
return this.pushStack(bA, bx, R.call(arguments).join(",")); | |
}; | |
}); | |
b.extend({ | |
filter: function(bz, bx, by) { | |
if (by) { | |
bz = ":not(" + bz + ")"; | |
} | |
return bx.length === 1 ? b.find.matchesSelector(bx[0], bz) ? [ bx[0] ] : [] : b.find.matches(bz, bx); | |
}, | |
dir: function(bz, by, bB) { | |
var bx = [], bA = bz[by]; | |
while (bA && bA.nodeType !== 9 && (bB === N || bA.nodeType !== 1 || !b(bA).is(bB))) { | |
if (bA.nodeType === 1) { | |
bx.push(bA); | |
} | |
bA = bA[by]; | |
} | |
return bx; | |
}, | |
nth: function(bB, bx, bz, bA) { | |
bx = bx || 1; | |
var by = 0; | |
for (;bB; bB = bB[bz]) { | |
if (bB.nodeType === 1 && ++by === bx) { | |
break; | |
} | |
} | |
return bB; | |
}, | |
sibling: function(bz, by) { | |
var bx = []; | |
for (;bz; bz = bz.nextSibling) { | |
if (bz.nodeType === 1 && bz !== by) { | |
bx.push(bz); | |
} | |
} | |
return bx; | |
} | |
}); | |
function aI(bA, bz, bx) { | |
bz = bz || 0; | |
if (b.isFunction(bz)) { | |
return b.grep(bA, function(bC, bB) { | |
var bD = !!bz.call(bC, bB, bC); | |
return bD === bx; | |
}); | |
} else { | |
if (bz.nodeType) { | |
return b.grep(bA, function(bC, bB) { | |
return bC === bz === bx; | |
}); | |
} else { | |
if (typeof bz === "string") { | |
var by = b.grep(bA, function(bB) { | |
return bB.nodeType === 1; | |
}); | |
if (br.test(bz)) { | |
return b.filter(bz, by, !bx); | |
} else { | |
bz = b.filter(bz, by); | |
} | |
} | |
} | |
} | |
return b.grep(bA, function(bC, bB) { | |
return b.inArray(bC, bz) >= 0 === bx; | |
}); | |
} | |
function a(bx) { | |
var bz = aT.split("|"), by = bx.createDocumentFragment(); | |
if (by.createElement) { | |
while (bz.length) { | |
by.createElement(bz.pop()); | |
} | |
} | |
return by; | |
} | |
var aT = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", ai = / jQuery\d+="(?:\d+|null)"/g, au = /^\s+/, T = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, d = /<([\w:]+)/, y = /<tbody/i, Y = /<|&#?\w+;/, ag = /<(?:script|style)/i, Q = /<(?:script|object|embed|option|style)/i, aj = new RegExp("<(?:" + aT + ")", "i"), q = /checked\s*(?:[^=]|=\s*.checked.)/i, bo = /\/(java|ecma)script/i, aP = /^\s*<!(?:\[CDATA\[|\-\-)/, az = { | |
option: [ 1, "<select multiple='multiple'>", "</select>" ], | |
legend: [ 1, "<fieldset>", "</fieldset>" ], | |
thead: [ 1, "<table>", "</table>" ], | |
tr: [ 2, "<table><tbody>", "</tbody></table>" ], | |
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], | |
col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], | |
area: [ 1, "<map>", "</map>" ], | |
_default: [ 0, "", "" ] | |
}, ae = a(ax); | |
az.optgroup = az.option; | |
az.tbody = az.tfoot = az.colgroup = az.caption = az.thead; | |
az.th = az.td; | |
if (!b.support.htmlSerialize) { | |
az._default = [ 1, "div<div>", "</div>" ]; | |
} | |
b.fn.extend({ | |
text: function(bx) { | |
if (b.isFunction(bx)) { | |
return this.each(function(bz) { | |
var by = b(this); | |
by.text(bx.call(this, bz, by.text())); | |
}); | |
} | |
if (typeof bx !== "object" && bx !== N) { | |
return this.empty().append((this[0] && this[0].ownerDocument || ax).createTextNode(bx)); | |
} | |
return b.text(this); | |
}, | |
wrapAll: function(bx) { | |
if (b.isFunction(bx)) { | |
return this.each(function(bz) { | |
b(this).wrapAll(bx.call(this, bz)); | |
}); | |
} | |
if (this[0]) { | |
var by = b(bx, this[0].ownerDocument).eq(0).clone(true); | |
if (this[0].parentNode) { | |
by.insertBefore(this[0]); | |
} | |
by.map(function() { | |
var bz = this; | |
while (bz.firstChild && bz.firstChild.nodeType === 1) { | |
bz = bz.firstChild; | |
} | |
return bz; | |
}).append(this); | |
} | |
return this; | |
}, | |
wrapInner: function(bx) { | |
if (b.isFunction(bx)) { | |
return this.each(function(by) { | |
b(this).wrapInner(bx.call(this, by)); | |
}); | |
} | |
return this.each(function() { | |
var by = b(this), bz = by.contents(); | |
if (bz.length) { | |
bz.wrapAll(bx); | |
} else { | |
by.append(bx); | |
} | |
}); | |
}, | |
wrap: function(bx) { | |
var by = b.isFunction(bx); | |
return this.each(function(bz) { | |
b(this).wrapAll(by ? bx.call(this, bz) : bx); | |
}); | |
}, | |
unwrap: function() { | |
return this.parent().each(function() { | |
if (!b.nodeName(this, "body")) { | |
b(this).replaceWith(this.childNodes); | |
} | |
}).end(); | |
}, | |
append: function() { | |
return this.domManip(arguments, true, function(bx) { | |
if (this.nodeType === 1) { | |
this.appendChild(bx); | |
} | |
}); | |
}, | |
prepend: function() { | |
return this.domManip(arguments, true, function(bx) { | |
if (this.nodeType === 1) { | |
this.insertBefore(bx, this.firstChild); | |
} | |
}); | |
}, | |
before: function() { | |
if (this[0] && this[0].parentNode) { | |
return this.domManip(arguments, false, function(by) { | |
this.parentNode.insertBefore(by, this); | |
}); | |
} else { | |
if (arguments.length) { | |
var bx = b.clean(arguments); | |
bx.push.apply(bx, this.toArray()); | |
return this.pushStack(bx, "before", arguments); | |
} | |
} | |
}, | |
after: function() { | |
if (this[0] && this[0].parentNode) { | |
return this.domManip(arguments, false, function(by) { | |
this.parentNode.insertBefore(by, this.nextSibling); | |
}); | |
} else { | |
if (arguments.length) { | |
var bx = this.pushStack(this, "after", arguments); | |
bx.push.apply(bx, b.clean(arguments)); | |
return bx; | |
} | |
} | |
}, | |
remove: function(bx, bA) { | |
for (var by = 0, bz; (bz = this[by]) != null; by++) { | |
if (!bx || b.filter(bx, [ bz ]).length) { | |
if (!bA && bz.nodeType === 1) { | |
b.cleanData(bz.getElementsByTagName("*")); | |
b.cleanData([ bz ]); | |
} | |
if (bz.parentNode) { | |
bz.parentNode.removeChild(bz); | |
} | |
} | |
} | |
return this; | |
}, | |
empty: function() { | |
for (var bx = 0, by; (by = this[bx]) != null; bx++) { | |
if (by.nodeType === 1) { | |
b.cleanData(by.getElementsByTagName("*")); | |
} | |
while (by.firstChild) { | |
by.removeChild(by.firstChild); | |
} | |
} | |
return this; | |
}, | |
clone: function(by, bx) { | |
by = by == null ? false : by; | |
bx = bx == null ? by : bx; | |
return this.map(function() { | |
return b.clone(this, by, bx); | |
}); | |
}, | |
html: function(bz) { | |
if (bz === N) { | |
return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(ai, "") : null; | |
} else { | |
if (typeof bz === "string" && !ag.test(bz) && (b.support.leadingWhitespace || !au.test(bz)) && !az[(d.exec(bz) || [ "", "" ])[1].toLowerCase()]) { | |
bz = bz.replace(T, "<$1></$2>"); | |
try { | |
for (var by = 0, bx = this.length; by < bx; by++) { | |
if (this[by].nodeType === 1) { | |
b.cleanData(this[by].getElementsByTagName("*")); | |
this[by].innerHTML = bz; | |
} | |
} | |
} catch (bA) { | |
this.empty().append(bz); | |
} | |
} else { | |
if (b.isFunction(bz)) { | |
this.each(function(bC) { | |
var bB = b(this); | |
bB.html(bz.call(this, bC, bB.html())); | |
}); | |
} else { | |
this.empty().append(bz); | |
} | |
} | |
} | |
return this; | |
}, | |
replaceWith: function(bx) { | |
if (this[0] && this[0].parentNode) { | |
if (b.isFunction(bx)) { | |
return this.each(function(bA) { | |
var bz = b(this), by = bz.html(); | |
bz.replaceWith(bx.call(this, bA, by)); | |
}); | |
} | |
if (typeof bx !== "string") { | |
bx = b(bx).detach(); | |
} | |
return this.each(function() { | |
var bz = this.nextSibling, by = this.parentNode; | |
b(this).remove(); | |
if (bz) { | |
b(bz).before(bx); | |
} else { | |
b(by).append(bx); | |
} | |
}); | |
} else { | |
return this.length ? this.pushStack(b(b.isFunction(bx) ? bx() : bx), "replaceWith", bx) : this; | |
} | |
}, | |
detach: function(bx) { | |
return this.remove(bx, true); | |
}, | |
domManip: function(bE, bI, bH) { | |
var bA, bB, bD, bG, bF = bE[0], by = []; | |
if (!b.support.checkClone && arguments.length === 3 && typeof bF === "string" && q.test(bF)) { | |
return this.each(function() { | |
b(this).domManip(bE, bI, bH, true); | |
}); | |
} | |
if (b.isFunction(bF)) { | |
return this.each(function(bK) { | |
var bJ = b(this); | |
bE[0] = bF.call(this, bK, bI ? bJ.html() : N); | |
bJ.domManip(bE, bI, bH); | |
}); | |
} | |
if (this[0]) { | |
bG = bF && bF.parentNode; | |
if (b.support.parentNode && bG && bG.nodeType === 11 && bG.childNodes.length === this.length) { | |
bA = { | |
fragment: bG | |
}; | |
} else { | |
bA = b.buildFragment(bE, this, by); | |
} | |
bD = bA.fragment; | |
if (bD.childNodes.length === 1) { | |
bB = bD = bD.firstChild; | |
} else { | |
bB = bD.firstChild; | |
} | |
if (bB) { | |
bI = bI && b.nodeName(bB, "tr"); | |
for (var bz = 0, bx = this.length, bC = bx - 1; bz < bx; bz++) { | |
bH.call(bI ? bc(this[bz], bB) : this[bz], bA.cacheable || bx > 1 && bz < bC ? b.clone(bD, true, true) : bD); | |
} | |
} | |
if (by.length) { | |
b.each(by, bq); | |
} | |
} | |
return this; | |
} | |
}); | |
function bc(bx, by) { | |
return b.nodeName(bx, "table") ? bx.getElementsByTagName("tbody")[0] || bx.appendChild(bx.ownerDocument.createElement("tbody")) : bx; | |
} | |
function v(bE, by) { | |
if (by.nodeType !== 1 || !b.hasData(bE)) { | |
return; | |
} | |
var bB, bA, bx, bD = b._data(bE), bC = b._data(by, bD), bz = bD.events; | |
if (bz) { | |
delete bC.handle; | |
bC.events = {}; | |
for (bB in bz) { | |
for (bA = 0, bx = bz[bB].length; bA < bx; bA++) { | |
b.event.add(by, bB + (bz[bB][bA].namespace ? "." : "") + bz[bB][bA].namespace, bz[bB][bA], bz[bB][bA].data); | |
} | |
} | |
} | |
if (bC.data) { | |
bC.data = b.extend({}, bC.data); | |
} | |
} | |
function ak(by, bx) { | |
var bz; | |
if (bx.nodeType !== 1) { | |
return; | |
} | |
if (bx.clearAttributes) { | |
bx.clearAttributes(); | |
} | |
if (bx.mergeAttributes) { | |
bx.mergeAttributes(by); | |
} | |
bz = bx.nodeName.toLowerCase(); | |
if (bz === "object") { | |
bx.outerHTML = by.outerHTML; | |
} else { | |
if (bz === "input" && (by.type === "checkbox" || by.type === "radio")) { | |
if (by.checked) { | |
bx.defaultChecked = bx.checked = by.checked; | |
} | |
if (bx.value !== by.value) { | |
bx.value = by.value; | |
} | |
} else { | |
if (bz === "option") { | |
bx.selected = by.defaultSelected; | |
} else { | |
if (bz === "input" || bz === "textarea") { | |
bx.defaultValue = by.defaultValue; | |
} | |
} | |
} | |
} | |
bx.removeAttribute(b.expando); | |
} | |
b.buildFragment = function(bC, bA, by) { | |
var bB, bx, bz, bD, bE = bC[0]; | |
if (bA && bA[0]) { | |
bD = bA[0].ownerDocument || bA[0]; | |
} | |
if (!bD.createDocumentFragment) { | |
bD = ax; | |
} | |
if (bC.length === 1 && typeof bE === "string" && bE.length < 512 && bD === ax && bE.charAt(0) === "<" && !Q.test(bE) && (b.support.checkClone || !q.test(bE)) && (b.support.html5Clone || !aj.test(bE))) { | |
bx = true; | |
bz = b.fragments[bE]; | |
if (bz && bz !== 1) { | |
bB = bz; | |
} | |
} | |
if (!bB) { | |
bB = bD.createDocumentFragment(); | |
b.clean(bC, bD, bB, by); | |
} | |
if (bx) { | |
b.fragments[bE] = bz ? bB : 1; | |
} | |
return { | |
fragment: bB, | |
cacheable: bx | |
}; | |
}; | |
b.fragments = {}; | |
b.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function(bx, by) { | |
b.fn[bx] = function(bz) { | |
var bC = [], bF = b(bz), bE = this.length === 1 && this[0].parentNode; | |
if (bE && bE.nodeType === 11 && bE.childNodes.length === 1 && bF.length === 1) { | |
bF[by](this[0]); | |
return this; | |
} else { | |
for (var bD = 0, bA = bF.length; bD < bA; bD++) { | |
var bB = (bD > 0 ? this.clone(true) : this).get(); | |
b(bF[bD])[by](bB); | |
bC = bC.concat(bB); | |
} | |
return this.pushStack(bC, bx, bF.selector); | |
} | |
}; | |
}); | |
function bi(bx) { | |
if (typeof bx.getElementsByTagName !== "undefined") { | |
return bx.getElementsByTagName("*"); | |
} else { | |
if (typeof bx.querySelectorAll !== "undefined") { | |
return bx.querySelectorAll("*"); | |
} else { | |
return []; | |
} | |
} | |
} | |
function aB(bx) { | |
if (bx.type === "checkbox" || bx.type === "radio") { | |
bx.defaultChecked = bx.checked; | |
} | |
} | |
function G(bx) { | |
var by = (bx.nodeName || "").toLowerCase(); | |
if (by === "input") { | |
aB(bx); | |
} else { | |
if (by !== "script" && typeof bx.getElementsByTagName !== "undefined") { | |
b.grep(bx.getElementsByTagName("input"), aB); | |
} | |
} | |
} | |
function an(bx) { | |
var by = ax.createElement("div"); | |
ae.appendChild(by); | |
by.innerHTML = bx.outerHTML; | |
return by.firstChild; | |
} | |
b.extend({ | |
clone: function(bB, bD, bz) { | |
var bx, by, bA, bC = b.support.html5Clone || !aj.test("<" + bB.nodeName) ? bB.cloneNode(true) : an(bB); | |
if ((!b.support.noCloneEvent || !b.support.noCloneChecked) && (bB.nodeType === 1 || bB.nodeType === 11) && !b.isXMLDoc(bB)) { | |
ak(bB, bC); | |
bx = bi(bB); | |
by = bi(bC); | |
for (bA = 0; bx[bA]; ++bA) { | |
if (by[bA]) { | |
ak(bx[bA], by[bA]); | |
} | |
} | |
} | |
if (bD) { | |
v(bB, bC); | |
if (bz) { | |
bx = bi(bB); | |
by = bi(bC); | |
for (bA = 0; bx[bA]; ++bA) { | |
v(bx[bA], by[bA]); | |
} | |
} | |
} | |
bx = by = null; | |
return bC; | |
}, | |
clean: function(bz, bB, bK, bD) { | |
var bI; | |
bB = bB || ax; | |
if (typeof bB.createElement === "undefined") { | |
bB = bB.ownerDocument || bB[0] && bB[0].ownerDocument || ax; | |
} | |
var bL = [], bE; | |
for (var bH = 0, bC; (bC = bz[bH]) != null; bH++) { | |
if (typeof bC === "number") { | |
bC += ""; | |
} | |
if (!bC) { | |
continue; | |
} | |
if (typeof bC === "string") { | |
if (!Y.test(bC)) { | |
bC = bB.createTextNode(bC); | |
} else { | |
bC = bC.replace(T, "<$1></$2>"); | |
var bN = (d.exec(bC) || [ "", "" ])[1].toLowerCase(), bA = az[bN] || az._default, bG = bA[0], by = bB.createElement("div"); | |
if (bB === ax) { | |
ae.appendChild(by); | |
} else { | |
a(bB).appendChild(by); | |
} | |
by.innerHTML = bA[1] + bC + bA[2]; | |
while (bG--) { | |
by = by.lastChild; | |
} | |
if (!b.support.tbody) { | |
var bx = y.test(bC), bF = bN === "table" && !bx ? by.firstChild && by.firstChild.childNodes : bA[1] === "<table>" && !bx ? by.childNodes : []; | |
for (bE = bF.length - 1; bE >= 0; --bE) { | |
if (b.nodeName(bF[bE], "tbody") && !bF[bE].childNodes.length) { | |
bF[bE].parentNode.removeChild(bF[bE]); | |
} | |
} | |
} | |
if (!b.support.leadingWhitespace && au.test(bC)) { | |
by.insertBefore(bB.createTextNode(au.exec(bC)[0]), by.firstChild); | |
} | |
bC = by.childNodes; | |
} | |
} | |
var bJ; | |
if (!b.support.appendChecked) { | |
if (bC[0] && typeof (bJ = bC.length) === "number") { | |
for (bE = 0; bE < bJ; bE++) { | |
G(bC[bE]); | |
} | |
} else { | |
G(bC); | |
} | |
} | |
if (bC.nodeType) { | |
bL.push(bC); | |
} else { | |
bL = b.merge(bL, bC); | |
} | |
} | |
if (bK) { | |
bI = function(bO) { | |
return !bO.type || bo.test(bO.type); | |
}; | |
for (bH = 0; bL[bH]; bH++) { | |
if (bD && b.nodeName(bL[bH], "script") && (!bL[bH].type || bL[bH].type.toLowerCase() === "text/javascript")) { | |
bD.push(bL[bH].parentNode ? bL[bH].parentNode.removeChild(bL[bH]) : bL[bH]); | |
} else { | |
if (bL[bH].nodeType === 1) { | |
var bM = b.grep(bL[bH].getElementsByTagName("script"), bI); | |
bL.splice.apply(bL, [ bH + 1, 0 ].concat(bM)); | |
} | |
bK.appendChild(bL[bH]); | |
} | |
} | |
} | |
return bL; | |
}, | |
cleanData: function(by) { | |
var bB, bz, bx = b.cache, bE = b.event.special, bD = b.support.deleteExpando; | |
for (var bC = 0, bA; (bA = by[bC]) != null; bC++) { | |
if (bA.nodeName && b.noData[bA.nodeName.toLowerCase()]) { | |
continue; | |
} | |
bz = bA[b.expando]; | |
if (bz) { | |
bB = bx[bz]; | |
if (bB && bB.events) { | |
for (var bF in bB.events) { | |
if (bE[bF]) { | |
b.event.remove(bA, bF); | |
} else { | |
b.removeEvent(bA, bF, bB.handle); | |
} | |
} | |
if (bB.handle) { | |
bB.handle.elem = null; | |
} | |
} | |
if (bD) { | |
delete bA[b.expando]; | |
} else { | |
if (bA.removeAttribute) { | |
bA.removeAttribute(b.expando); | |
} | |
} | |
delete bx[bz]; | |
} | |
} | |
} | |
}); | |
function bq(bx, by) { | |
if (by.src) { | |
b.ajax({ | |
url: by.src, | |
async: false, | |
dataType: "script" | |
}); | |
} else { | |
b.globalEval((by.text || by.textContent || by.innerHTML || "").replace(aP, "/*$0*/")); | |
} | |
if (by.parentNode) { | |
by.parentNode.removeChild(by); | |
} | |
} | |
var am = /alpha\([^)]*\)/i, aw = /opacity=([^)]*)/, B = /([A-Z]|^ms)/g, be = /^-?\d+(?:px)?$/i, bp = /^-?\d/, K = /^([\-+])=([\-+.\de]+)/, a9 = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, ap = [ "Left", "Right" ], a3 = [ "Top", "Bottom" ], ab, aK, aZ; | |
b.fn.css = function(bx, by) { | |
if (arguments.length === 2 && by === N) { | |
return this; | |
} | |
return b.access(this, bx, by, true, function(bA, bz, bB) { | |
return bB !== N ? b.style(bA, bz, bB) : b.css(bA, bz); | |
}); | |
}; | |
b.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(bz, by) { | |
if (by) { | |
var bx = ab(bz, "opacity", "opacity"); | |
return bx === "" ? "1" : bx; | |
} else { | |
return bz.style.opacity; | |
} | |
} | |
} | |
}, | |
cssNumber: { | |
fillOpacity: true, | |
fontWeight: true, | |
lineHeight: true, | |
opacity: true, | |
orphans: true, | |
widows: true, | |
zIndex: true, | |
zoom: true | |
}, | |
cssProps: { | |
"float": b.support.cssFloat ? "cssFloat" : "styleFloat" | |
}, | |
style: function(bz, by, bF, bA) { | |
if (!bz || bz.nodeType === 3 || bz.nodeType === 8 || !bz.style) { | |
return; | |
} | |
var bD, bE, bB = b.camelCase(by), bx = bz.style, bG = b.cssHooks[bB]; | |
by = b.cssProps[bB] || bB; | |
if (bF !== N) { | |
bE = typeof bF; | |
if (bE === "string" && (bD = K.exec(bF))) { | |
bF = +(bD[1] + 1) * +bD[2] + parseFloat(b.css(bz, by)); | |
bE = "number"; | |
} | |
if (bF == null || bE === "number" && isNaN(bF)) { | |
return; | |
} | |
if (bE === "number" && !b.cssNumber[bB]) { | |
bF += "px"; | |
} | |
if (!bG || !("set" in bG) || (bF = bG.set(bz, bF)) !== N) { | |
try { | |
bx[by] = bF; | |
} catch (bC) {} | |
} | |
} else { | |
if (bG && "get" in bG && (bD = bG.get(bz, false, bA)) !== N) { | |
return bD; | |
} | |
return bx[by]; | |
} | |
}, | |
css: function(bB, bA, by) { | |
var bz, bx; | |
bA = b.camelCase(bA); | |
bx = b.cssHooks[bA]; | |
bA = b.cssProps[bA] || bA; | |
if (bA === "cssFloat") { | |
bA = "float"; | |
} | |
if (bx && "get" in bx && (bz = bx.get(bB, true, by)) !== N) { | |
return bz; | |
} else { | |
if (ab) { | |
return ab(bB, bA); | |
} | |
} | |
}, | |
swap: function(bA, bz, bB) { | |
var bx = {}; | |
for (var by in bz) { | |
bx[by] = bA.style[by]; | |
bA.style[by] = bz[by]; | |
} | |
bB.call(bA); | |
for (by in bz) { | |
bA.style[by] = bx[by]; | |
} | |
} | |
}); | |
b.curCSS = b.css; | |
b.each([ "height", "width" ], function(by, bx) { | |
b.cssHooks[bx] = { | |
get: function(bB, bA, bz) { | |
var bC; | |
if (bA) { | |
if (bB.offsetWidth !== 0) { | |
return r(bB, bx, bz); | |
} else { | |
b.swap(bB, a9, function() { | |
bC = r(bB, bx, bz); | |
}); | |
} | |
return bC; | |
} | |
}, | |
set: function(bz, bA) { | |
if (be.test(bA)) { | |
bA = parseFloat(bA); | |
if (bA >= 0) { | |
return bA + "px"; | |
} | |
} else { | |
return bA; | |
} | |
} | |
}; | |
}); | |
if (!b.support.opacity) { | |
b.cssHooks.opacity = { | |
get: function(by, bx) { | |
return aw.test((bx && by.currentStyle ? by.currentStyle.filter : by.style.filter) || "") ? parseFloat(RegExp.$1) / 100 + "" : bx ? "1" : ""; | |
}, | |
set: function(bB, bC) { | |
var bA = bB.style, by = bB.currentStyle, bx = b.isNumeric(bC) ? "alpha(opacity=" + bC * 100 + ")" : "", bz = by && by.filter || bA.filter || ""; | |
bA.zoom = 1; | |
if (bC >= 1 && b.trim(bz.replace(am, "")) === "") { | |
bA.removeAttribute("filter"); | |
if (by && !by.filter) { | |
return; | |
} | |
} | |
bA.filter = am.test(bz) ? bz.replace(am, bx) : bz + " " + bx; | |
} | |
}; | |
} | |
b(function() { | |
if (!b.support.reliableMarginRight) { | |
b.cssHooks.marginRight = { | |
get: function(bz, by) { | |
var bx; | |
b.swap(bz, { | |
display: "inline-block" | |
}, function() { | |
if (by) { | |
bx = ab(bz, "margin-right", "marginRight"); | |
} else { | |
bx = bz.style.marginRight; | |
} | |
}); | |
return bx; | |
} | |
}; | |
} | |
}); | |
if (ax.defaultView && ax.defaultView.getComputedStyle) { | |
aK = function(bB, bz) { | |
var by, bA, bx; | |
bz = bz.replace(B, "-$1").toLowerCase(); | |
if ((bA = bB.ownerDocument.defaultView) && (bx = bA.getComputedStyle(bB, null))) { | |
by = bx.getPropertyValue(bz); | |
if (by === "" && !b.contains(bB.ownerDocument.documentElement, bB)) { | |
by = b.style(bB, bz); | |
} | |
} | |
return by; | |
}; | |
} | |
if (ax.documentElement.currentStyle) { | |
aZ = function(bC, bz) { | |
var bD, bx, bB, by = bC.currentStyle && bC.currentStyle[bz], bA = bC.style; | |
if (by === null && bA && (bB = bA[bz])) { | |
by = bB; | |
} | |
if (!be.test(by) && bp.test(by)) { | |
bD = bA.left; | |
bx = bC.runtimeStyle && bC.runtimeStyle.left; | |
if (bx) { | |
bC.runtimeStyle.left = bC.currentStyle.left; | |
} | |
bA.left = bz === "fontSize" ? "1em" : by || 0; | |
by = bA.pixelLeft + "px"; | |
bA.left = bD; | |
if (bx) { | |
bC.runtimeStyle.left = bx; | |
} | |
} | |
return by === "" ? "auto" : by; | |
}; | |
} | |
ab = aK || aZ; | |
function r(bB, bz, by) { | |
var bD = bz === "width" ? bB.offsetWidth : bB.offsetHeight, bC = bz === "width" ? ap : a3, bA = 0, bx = bC.length; | |
if (bD > 0) { | |
if (by !== "border") { | |
for (;bA < bx; bA++) { | |
if (!by) { | |
bD -= parseFloat(b.css(bB, "padding" + bC[bA])) || 0; | |
} | |
if (by === "margin") { | |
bD += parseFloat(b.css(bB, by + bC[bA])) || 0; | |
} else { | |
bD -= parseFloat(b.css(bB, "border" + bC[bA] + "Width")) || 0; | |
} | |
} | |
} | |
return bD + "px"; | |
} | |
bD = ab(bB, bz, bz); | |
if (bD < 0 || bD == null) { | |
bD = bB.style[bz] || 0; | |
} | |
bD = parseFloat(bD) || 0; | |
if (by) { | |
for (;bA < bx; bA++) { | |
bD += parseFloat(b.css(bB, "padding" + bC[bA])) || 0; | |
if (by !== "padding") { | |
bD += parseFloat(b.css(bB, "border" + bC[bA] + "Width")) || 0; | |
} | |
if (by === "margin") { | |
bD += parseFloat(b.css(bB, by + bC[bA])) || 0; | |
} | |
} | |
} | |
return bD + "px"; | |
} | |
if (b.expr && b.expr.filters) { | |
b.expr.filters.hidden = function(bz) { | |
var by = bz.offsetWidth, bx = bz.offsetHeight; | |
return by === 0 && bx === 0 || !b.support.reliableHiddenOffsets && (bz.style && bz.style.display || b.css(bz, "display")) === "none"; | |
}; | |
b.expr.filters.visible = function(bx) { | |
return !b.expr.filters.hidden(bx); | |
}; | |
} | |
var m = /%20/g, ar = /\[\]$/, bu = /\r?\n/g, bs = /#.*$/, aF = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, a1 = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, aO = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, aS = /^(?:GET|HEAD)$/, c = /^\/\//, O = /\?/, a8 = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, s = /^(?:select|textarea)/i, h = /\s+/, bt = /([?&])_=[^&]*/, M = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, C = b.fn.load, ac = {}, t = {}, aG, u, aX = [ "*/" ] + [ "*" ]; | |
try { | |
aG = bn.href; | |
} catch (ay) { | |
aG = ax.createElement("a"); | |
aG.href = ""; | |
aG = aG.href; | |
} | |
u = M.exec(aG.toLowerCase()) || []; | |
function f(bx) { | |
return function(bB, bD) { | |
if (typeof bB !== "string") { | |
bD = bB; | |
bB = "*"; | |
} | |
if (b.isFunction(bD)) { | |
var bA = bB.toLowerCase().split(h), bz = 0, bC = bA.length, by, bE, bF; | |
for (;bz < bC; bz++) { | |
by = bA[bz]; | |
bF = /^\+/.test(by); | |
if (bF) { | |
by = by.substr(1) || "*"; | |
} | |
bE = bx[by] = bx[by] || []; | |
bE[bF ? "unshift" : "push"](bD); | |
} | |
} | |
}; | |
} | |
function aY(by, bH, bC, bG, bE, bA) { | |
bE = bE || bH.dataTypes[0]; | |
bA = bA || {}; | |
bA[bE] = true; | |
var bD = by[bE], bz = 0, bx = bD ? bD.length : 0, bB = by === ac, bF; | |
for (;bz < bx && (bB || !bF); bz++) { | |
bF = bD[bz](bH, bC, bG); | |
if (typeof bF === "string") { | |
if (!bB || bA[bF]) { | |
bF = N; | |
} else { | |
bH.dataTypes.unshift(bF); | |
bF = aY(by, bH, bC, bG, bF, bA); | |
} | |
} | |
} | |
if ((bB || !bF) && !bA["*"]) { | |
bF = aY(by, bH, bC, bG, "*", bA); | |
} | |
return bF; | |
} | |
function ao(bz, bA) { | |
var by, bx, bB = b.ajaxSettings.flatOptions || {}; | |
for (by in bA) { | |
if (bA[by] !== N) { | |
(bB[by] ? bz : bx || (bx = {}))[by] = bA[by]; | |
} | |
} | |
if (bx) { | |
b.extend(true, bz, bx); | |
} | |
} | |
b.fn.extend({ | |
load: function(bz, bC, bD) { | |
if (typeof bz !== "string" && C) { | |
return C.apply(this, arguments); | |
} else { | |
if (!this.length) { | |
return this; | |
} | |
} | |
var bB = bz.indexOf(" "); | |
if (bB >= 0) { | |
var bx = bz.slice(bB, bz.length); | |
bz = bz.slice(0, bB); | |
} | |
var bA = "GET"; | |
if (bC) { | |
if (b.isFunction(bC)) { | |
bD = bC; | |
bC = N; | |
} else { | |
if (typeof bC === "object") { | |
bC = b.param(bC, b.ajaxSettings.traditional); | |
bA = "POST"; | |
} | |
} | |
} | |
var by = this; | |
b.ajax({ | |
url: bz, | |
type: bA, | |
dataType: "html", | |
data: bC, | |
complete: function(bF, bE, bG) { | |
bG = bF.responseText; | |
if (bF.isResolved()) { | |
bF.done(function(bH) { | |
bG = bH; | |
}); | |
by.html(bx ? b("<div>").append(bG.replace(a8, "")).find(bx) : bG); | |
} | |
if (bD) { | |
by.each(bD, [ bG, bE, bF ]); | |
} | |
} | |
}); | |
return this; | |
}, | |
serialize: function() { | |
return b.param(this.serializeArray()); | |
}, | |
serializeArray: function() { | |
return this.map(function() { | |
return this.elements ? b.makeArray(this.elements) : this; | |
}).filter(function() { | |
return this.name && !this.disabled && (this.checked || s.test(this.nodeName) || a1.test(this.type)); | |
}).map(function(bx, by) { | |
var bz = b(this).val(); | |
return bz == null ? null : b.isArray(bz) ? b.map(bz, function(bB, bA) { | |
return { | |
name: by.name, | |
value: bB.replace(bu, "\r\n") | |
}; | |
}) : { | |
name: by.name, | |
value: bz.replace(bu, "\r\n") | |
}; | |
}).get(); | |
} | |
}); | |
b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(bx, by) { | |
b.fn[by] = function(bz) { | |
return this.on(by, bz); | |
}; | |
}); | |
b.each([ "get", "post" ], function(bx, by) { | |
b[by] = function(bz, bB, bC, bA) { | |
if (b.isFunction(bB)) { | |
bA = bA || bC; | |
bC = bB; | |
bB = N; | |
} | |
return b.ajax({ | |
type: by, | |
url: bz, | |
data: bB, | |
success: bC, | |
dataType: bA | |
}); | |
}; | |
}); | |
b.extend({ | |
getScript: function(bx, by) { | |
return b.get(bx, N, by, "script"); | |
}, | |
getJSON: function(bx, by, bz) { | |
return b.get(bx, by, bz, "json"); | |
}, | |
ajaxSetup: function(by, bx) { | |
if (bx) { | |
ao(by, b.ajaxSettings); | |
} else { | |
bx = by; | |
by = b.ajaxSettings; | |
} | |
ao(by, bx); | |
return by; | |
}, | |
ajaxSettings: { | |
url: aG, | |
isLocal: aO.test(u[1]), | |
global: true, | |
type: "GET", | |
contentType: "application/x-www-form-urlencoded", | |
processData: true, | |
async: true, | |
accepts: { | |
xml: "application/xml, text/xml", | |
html: "text/html", | |
text: "text/plain", | |
json: "application/json, text/javascript", | |
"*": aX | |
}, | |
contents: { | |
xml: /xml/, | |
html: /html/, | |
json: /json/ | |
}, | |
responseFields: { | |
xml: "responseXML", | |
text: "responseText" | |
}, | |
converters: { | |
"* text": bd.String, | |
"text html": true, | |
"text json": b.parseJSON, | |
"text xml": b.parseXML | |
}, | |
flatOptions: { | |
context: true, | |
url: true | |
} | |
}, | |
ajaxPrefilter: f(ac), | |
ajaxTransport: f(t), | |
ajax: function(bB, bz) { | |
if (typeof bB === "object") { | |
bz = bB; | |
bB = N; | |
} | |
bz = bz || {}; | |
var bF = b.ajaxSetup({}, bz), bU = bF.context || bF, bI = bU !== bF && (bU.nodeType || bU instanceof b) ? b(bU) : b.event, bT = b.Deferred(), bP = b.Callbacks("once memory"), bD = bF.statusCode || {}, bE, bJ = {}, bQ = {}, bS, bA, bN, bG, bK, bC = 0, by, bM, bL = { | |
readyState: 0, | |
setRequestHeader: function(bW, bX) { | |
if (!bC) { | |
var bV = bW.toLowerCase(); | |
bW = bQ[bV] = bQ[bV] || bW; | |
bJ[bW] = bX; | |
} | |
return this; | |
}, | |
getAllResponseHeaders: function() { | |
return bC === 2 ? bS : null; | |
}, | |
getResponseHeader: function(bW) { | |
var bV; | |
if (bC === 2) { | |
if (!bA) { | |
bA = {}; | |
while (bV = aF.exec(bS)) { | |
bA[bV[1].toLowerCase()] = bV[2]; | |
} | |
} | |
bV = bA[bW.toLowerCase()]; | |
} | |
return bV === N ? null : bV; | |
}, | |
overrideMimeType: function(bV) { | |
if (!bC) { | |
bF.mimeType = bV; | |
} | |
return this; | |
}, | |
abort: function(bV) { | |
bV = bV || "abort"; | |
if (bN) { | |
bN.abort(bV); | |
} | |
bH(0, bV); | |
return this; | |
} | |
}; | |
function bH(b1, bW, b2, bY) { | |
if (bC === 2) { | |
return; | |
} | |
bC = 2; | |
if (bG) { | |
clearTimeout(bG); | |
} | |
bN = N; | |
bS = bY || ""; | |
bL.readyState = b1 > 0 ? 4 : 0; | |
var bV, b6, b5, bZ = bW, b0 = b2 ? bl(bF, bL, b2) : N, bX, b4; | |
if (b1 >= 200 && b1 < 300 || b1 === 304) { | |
if (bF.ifModified) { | |
if (bX = bL.getResponseHeader("Last-Modified")) { | |
b.lastModified[bE] = bX; | |
} | |
if (b4 = bL.getResponseHeader("Etag")) { | |
b.etag[bE] = b4; | |
} | |
} | |
if (b1 === 304) { | |
bZ = "notmodified"; | |
bV = true; | |
} else { | |
try { | |
b6 = I(bF, b0); | |
bZ = "success"; | |
bV = true; | |
} catch (b3) { | |
bZ = "parsererror"; | |
b5 = b3; | |
} | |
} | |
} else { | |
b5 = bZ; | |
if (!bZ || b1) { | |
bZ = "error"; | |
if (b1 < 0) { | |
b1 = 0; | |
} | |
} | |
} | |
bL.status = b1; | |
bL.statusText = "" + (bW || bZ); | |
if (bV) { | |
bT.resolveWith(bU, [ b6, bZ, bL ]); | |
} else { | |
bT.rejectWith(bU, [ bL, bZ, b5 ]); | |
} | |
bL.statusCode(bD); | |
bD = N; | |
if (by) { | |
bI.trigger("ajax" + (bV ? "Success" : "Error"), [ bL, bF, bV ? b6 : b5 ]); | |
} | |
bP.fireWith(bU, [ bL, bZ ]); | |
if (by) { | |
bI.trigger("ajaxComplete", [ bL, bF ]); | |
if (!--b.active) { | |
b.event.trigger("ajaxStop"); | |
} | |
} | |
} | |
bT.promise(bL); | |
bL.success = bL.done; | |
bL.error = bL.fail; | |
bL.complete = bP.add; | |
bL.statusCode = function(bW) { | |
if (bW) { | |
var bV; | |
if (bC < 2) { | |
for (bV in bW) { | |
bD[bV] = [ bD[bV], bW[bV] ]; | |
} | |
} else { | |
bV = bW[bL.status]; | |
bL.then(bV, bV); | |
} | |
} | |
return this; | |
}; | |
bF.url = ((bB || bF.url) + "").replace(bs, "").replace(c, u[1] + "//"); | |
bF.dataTypes = b.trim(bF.dataType || "*").toLowerCase().split(h); | |
if (bF.crossDomain == null) { | |
bK = M.exec(bF.url.toLowerCase()); | |
bF.crossDomain = !!(bK && (bK[1] != u[1] || bK[2] != u[2] || (bK[3] || (bK[1] === "http:" ? 80 : 443)) != (u[3] || (u[1] === "http:" ? 80 : 443)))); | |
} | |
if (bF.data && bF.processData && typeof bF.data !== "string") { | |
bF.data = b.param(bF.data, bF.traditional); | |
} | |
aY(ac, bF, bz, bL); | |
if (bC === 2) { | |
return false; | |
} | |
by = bF.global; | |
bF.type = bF.type.toUpperCase(); | |
bF.hasContent = !aS.test(bF.type); | |
if (by && b.active++ === 0) { | |
b.event.trigger("ajaxStart"); | |
} | |
if (!bF.hasContent) { | |
if (bF.data) { | |
bF.url += (O.test(bF.url) ? "&" : "?") + bF.data; | |
delete bF.data; | |
} | |
bE = bF.url; | |
if (bF.cache === false) { | |
var bx = b.now(), bR = bF.url.replace(bt, "$1_=" + bx); | |
bF.url = bR + (bR === bF.url ? (O.test(bF.url) ? "&" : "?") + "_=" + bx : ""); | |
} | |
} | |
if (bF.data && bF.hasContent && bF.contentType !== false || bz.contentType) { | |
bL.setRequestHeader("Content-Type", bF.contentType); | |
} | |
if (bF.ifModified) { | |
bE = bE || bF.url; | |
if (b.lastModified[bE]) { | |
bL.setRequestHeader("If-Modified-Since", b.lastModified[bE]); | |
} | |
if (b.etag[bE]) { | |
bL.setRequestHeader("If-None-Match", b.etag[bE]); | |
} | |
} | |
bL.setRequestHeader("Accept", bF.dataTypes[0] && bF.accepts[bF.dataTypes[0]] ? bF.accepts[bF.dataTypes[0]] + (bF.dataTypes[0] !== "*" ? ", " + aX + "; q=0.01" : "") : bF.accepts["*"]); | |
for (bM in bF.headers) { | |
bL.setRequestHeader(bM, bF.headers[bM]); | |
} | |
if (bF.beforeSend && (bF.beforeSend.call(bU, bL, bF) === false || bC === 2)) { | |
bL.abort(); | |
return false; | |
} | |
for (bM in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) { | |
bL[bM](bF[bM]); | |
} | |
bN = aY(t, bF, bz, bL); | |
if (!bN) { | |
bH(-1, "No Transport"); | |
} else { | |
bL.readyState = 1; | |
if (by) { | |
bI.trigger("ajaxSend", [ bL, bF ]); | |
} | |
if (bF.async && bF.timeout > 0) { | |
bG = setTimeout(function() { | |
bL.abort("timeout"); | |
}, bF.timeout); | |
} | |
try { | |
bC = 1; | |
bN.send(bJ, bH); | |
} catch (bO) { | |
if (bC < 2) { | |
bH(-1, bO); | |
} else { | |
throw bO; | |
} | |
} | |
} | |
return bL; | |
}, | |
param: function(bx, bz) { | |
var by = [], bB = function(bC, bD) { | |
bD = b.isFunction(bD) ? bD() : bD; | |
by[by.length] = encodeURIComponent(bC) + "=" + encodeURIComponent(bD); | |
}; | |
if (bz === N) { | |
bz = b.ajaxSettings.traditional; | |
} | |
if (b.isArray(bx) || bx.jquery && !b.isPlainObject(bx)) { | |
b.each(bx, function() { | |
bB(this.name, this.value); | |
}); | |
} else { | |
for (var bA in bx) { | |
x(bA, bx[bA], bz, bB); | |
} | |
} | |
return by.join("&").replace(m, "+"); | |
} | |
}); | |
function x(bz, bB, by, bA) { | |
if (b.isArray(bB)) { | |
b.each(bB, function(bD, bC) { | |
if (by || ar.test(bz)) { | |
bA(bz, bC); | |
} else { | |
x(bz + "[" + (typeof bC === "object" || b.isArray(bC) ? bD : "") + "]", bC, by, bA); | |
} | |
}); | |
} else { | |
if (!by && bB != null && typeof bB === "object") { | |
for (var bx in bB) { | |
x(bz + "[" + bx + "]", bB[bx], by, bA); | |
} | |
} else { | |
bA(bz, bB); | |
} | |
} | |
} | |
b.extend({ | |
active: 0, | |
lastModified: {}, | |
etag: {} | |
}); | |
function bl(bG, bF, bC) { | |
var by = bG.contents, bE = bG.dataTypes, bz = bG.responseFields, bB, bD, bA, bx; | |
for (bD in bz) { | |
if (bD in bC) { | |
bF[bz[bD]] = bC[bD]; | |
} | |
} | |
while (bE[0] === "*") { | |
bE.shift(); | |
if (bB === N) { | |
bB = bG.mimeType || bF.getResponseHeader("content-type"); | |
} | |
} | |
if (bB) { | |
for (bD in by) { | |
if (by[bD] && by[bD].test(bB)) { | |
bE.unshift(bD); | |
break; | |
} | |
} | |
} | |
if (bE[0] in bC) { | |
bA = bE[0]; | |
} else { | |
for (bD in bC) { | |
if (!bE[0] || bG.converters[bD + " " + bE[0]]) { | |
bA = bD; | |
break; | |
} | |
if (!bx) { | |
bx = bD; | |
} | |
} | |
bA = bA || bx; | |
} | |
if (bA) { | |
if (bA !== bE[0]) { | |
bE.unshift(bA); | |
} | |
return bC[bA]; | |
} | |
} | |
function I(bK, bC) { | |
if (bK.dataFilter) { | |
bC = bK.dataFilter(bC, bK.dataType); | |
} | |
var bG = bK.dataTypes, bJ = {}, bD, bH, bz = bG.length, bE, bF = bG[0], bA, bB, bI, by, bx; | |
for (bD = 1; bD < bz; bD++) { | |
if (bD === 1) { | |
for (bH in bK.converters) { | |
if (typeof bH === "string") { | |
bJ[bH.toLowerCase()] = bK.converters[bH]; | |
} | |
} | |
} | |
bA = bF; | |
bF = bG[bD]; | |
if (bF === "*") { | |
bF = bA; | |
} else { | |
if (bA !== "*" && bA !== bF) { | |
bB = bA + " " + bF; | |
bI = bJ[bB] || bJ["* " + bF]; | |
if (!bI) { | |
bx = N; | |
for (by in bJ) { | |
bE = by.split(" "); | |
if (bE[0] === bA || bE[0] === "*") { | |
bx = bJ[bE[1] + " " + bF]; | |
if (bx) { | |
by = bJ[by]; | |
if (by === true) { | |
bI = bx; | |
} else { | |
if (bx === true) { | |
bI = by; | |
} | |
} | |
break; | |
} | |
} | |
} | |
} | |
if (!(bI || bx)) { | |
b.error("No conversion from " + bB.replace(" ", " to ")); | |
} | |
if (bI !== true) { | |
bC = bI ? bI(bC) : bx(by(bC)); | |
} | |
} | |
} | |
} | |
return bC; | |
} | |
var aE = b.now(), w = /(\=)\?(&|$)|\?\?/i; | |
b.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
return b.expando + "_" + aE++; | |
} | |
}); | |
b.ajaxPrefilter("json jsonp", function(bG, bD, bF) { | |
var bA = bG.contentType === "application/x-www-form-urlencoded" && typeof bG.data === "string"; | |
if (bG.dataTypes[0] === "jsonp" || bG.jsonp !== false && (w.test(bG.url) || bA && w.test(bG.data))) { | |
var bE, bz = bG.jsonpCallback = b.isFunction(bG.jsonpCallback) ? bG.jsonpCallback() : bG.jsonpCallback, bC = bd[bz], bx = bG.url, bB = bG.data, by = "$1" + bz + "$2"; | |
if (bG.jsonp !== false) { | |
bx = bx.replace(w, by); | |
if (bG.url === bx) { | |
if (bA) { | |
bB = bB.replace(w, by); | |
} | |
if (bG.data === bB) { | |
bx += (/\?/.test(bx) ? "&" : "?") + bG.jsonp + "=" + bz; | |
} | |
} | |
} | |
bG.url = bx; | |
bG.data = bB; | |
bd[bz] = function(bH) { | |
bE = [ bH ]; | |
}; | |
bF.always(function() { | |
bd[bz] = bC; | |
if (bE && b.isFunction(bC)) { | |
bd[bz](bE[0]); | |
} | |
}); | |
bG.converters["script json"] = function() { | |
if (!bE) { | |
b.error(bz + " was not called"); | |
} | |
return bE[0]; | |
}; | |
bG.dataTypes[0] = "json"; | |
return "script"; | |
} | |
}); | |
b.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /javascript|ecmascript/ | |
}, | |
converters: { | |
"text script": function(bx) { | |
b.globalEval(bx); | |
return bx; | |
} | |
} | |
}); | |
b.ajaxPrefilter("script", function(bx) { | |
if (bx.cache === N) { | |
bx.cache = false; | |
} | |
if (bx.crossDomain) { | |
bx.type = "GET"; | |
bx.global = false; | |
} | |
}); | |
b.ajaxTransport("script", function(bz) { | |
if (bz.crossDomain) { | |
var bx, by = ax.head || ax.getElementsByTagName("head")[0] || ax.documentElement; | |
return { | |
send: function(bA, bB) { | |
bx = ax.createElement("script"); | |
bx.async = "async"; | |
if (bz.scriptCharset) { | |
bx.charset = bz.scriptCharset; | |
} | |
bx.src = bz.url; | |
bx.onload = bx.onreadystatechange = function(bD, bC) { | |
if (bC || !bx.readyState || /loaded|complete/.test(bx.readyState)) { | |
bx.onload = bx.onreadystatechange = null; | |
if (by && bx.parentNode) { | |
by.removeChild(bx); | |
} | |
bx = N; | |
if (!bC) { | |
bB(200, "success"); | |
} | |
} | |
}; | |
by.insertBefore(bx, by.firstChild); | |
}, | |
abort: function() { | |
if (bx) { | |
bx.onload(0, 1); | |
} | |
} | |
}; | |
} | |
}); | |
var D = bd.ActiveXObject ? function() { | |
for (var bx in P) { | |
P[bx](0, 1); | |
} | |
} : false, A = 0, P; | |
function aN() { | |
try { | |
return new bd.XMLHttpRequest(); | |
} catch (bx) {} | |
} | |
function al() { | |
try { | |
return new bd.ActiveXObject("Microsoft.XMLHTTP"); | |
} catch (bx) {} | |
} | |
b.ajaxSettings.xhr = bd.ActiveXObject ? function() { | |
return !this.isLocal && aN() || al(); | |
} : aN; | |
(function(bx) { | |
b.extend(b.support, { | |
ajax: !!bx, | |
cors: !!bx && "withCredentials" in bx | |
}); | |
})(b.ajaxSettings.xhr()); | |
if (b.support.ajax) { | |
b.ajaxTransport(function(bx) { | |
if (!bx.crossDomain || b.support.cors) { | |
var by; | |
return { | |
send: function(bE, bz) { | |
var bD = bx.xhr(), bC, bB; | |
if (bx.username) { | |
bD.open(bx.type, bx.url, bx.async, bx.username, bx.password); | |
} else { | |
bD.open(bx.type, bx.url, bx.async); | |
} | |
if (bx.xhrFields) { | |
for (bB in bx.xhrFields) { | |
bD[bB] = bx.xhrFields[bB]; | |
} | |
} | |
if (bx.mimeType && bD.overrideMimeType) { | |
bD.overrideMimeType(bx.mimeType); | |
} | |
if (!bx.crossDomain && !bE["X-Requested-With"]) { | |
bE["X-Requested-With"] = "XMLHttpRequest"; | |
} | |
try { | |
for (bB in bE) { | |
bD.setRequestHeader(bB, bE[bB]); | |
} | |
} catch (bA) {} | |
bD.send(bx.hasContent && bx.data || null); | |
by = function(bN, bH) { | |
var bI, bG, bF, bL, bK; | |
try { | |
if (by && (bH || bD.readyState === 4)) { | |
by = N; | |
if (bC) { | |
bD.onreadystatechange = b.noop; | |
if (D) { | |
delete P[bC]; | |
} | |
} | |
if (bH) { | |
if (bD.readyState !== 4) { | |
bD.abort(); | |
} | |
} else { | |
bI = bD.status; | |
bF = bD.getAllResponseHeaders(); | |
bL = {}; | |
bK = bD.responseXML; | |
if (bK && bK.documentElement) { | |
bL.xml = bK; | |
} | |
bL.text = bD.responseText; | |
try { | |
bG = bD.statusText; | |
} catch (bM) { | |
bG = ""; | |
} | |
if (!bI && bx.isLocal && !bx.crossDomain) { | |
bI = bL.text ? 200 : 404; | |
} else { | |
if (bI === 1223) { | |
bI = 204; | |
} | |
} | |
} | |
} | |
} catch (bJ) { | |
if (!bH) { | |
bz(-1, bJ); | |
} | |
} | |
if (bL) { | |
bz(bI, bG, bL, bF); | |
} | |
}; | |
if (!bx.async || bD.readyState === 4) { | |
by(); | |
} else { | |
bC = ++A; | |
if (D) { | |
if (!P) { | |
P = {}; | |
b(bd).unload(D); | |
} | |
P[bC] = by; | |
} | |
bD.onreadystatechange = by; | |
} | |
}, | |
abort: function() { | |
if (by) { | |
by(0, 1); | |
} | |
} | |
}; | |
} | |
}); | |
} | |
var S = {}, ba, o, aD = /^(?:toggle|show|hide)$/, aV = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, a5, aJ = [ [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ], [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], [ "opacity" ] ], a6; | |
b.fn.extend({ | |
show: function(bA, bD, bC) { | |
var bz, bB; | |
if (bA || bA === 0) { | |
return this.animate(a2("show", 3), bA, bD, bC); | |
} else { | |
for (var by = 0, bx = this.length; by < bx; by++) { | |
bz = this[by]; | |
if (bz.style) { | |
bB = bz.style.display; | |
if (!b._data(bz, "olddisplay") && bB === "none") { | |
bB = bz.style.display = ""; | |
} | |
if (bB === "" && b.css(bz, "display") === "none") { | |
b._data(bz, "olddisplay", z(bz.nodeName)); | |
} | |
} | |
} | |
for (by = 0; by < bx; by++) { | |
bz = this[by]; | |
if (bz.style) { | |
bB = bz.style.display; | |
if (bB === "" || bB === "none") { | |
bz.style.display = b._data(bz, "olddisplay") || ""; | |
} | |
} | |
} | |
return this; | |
} | |
}, | |
hide: function(bA, bD, bC) { | |
if (bA || bA === 0) { | |
return this.animate(a2("hide", 3), bA, bD, bC); | |
} else { | |
var bz, bB, by = 0, bx = this.length; | |
for (;by < bx; by++) { | |
bz = this[by]; | |
if (bz.style) { | |
bB = b.css(bz, "display"); | |
if (bB !== "none" && !b._data(bz, "olddisplay")) { | |
b._data(bz, "olddisplay", bB); | |
} | |
} | |
} | |
for (by = 0; by < bx; by++) { | |
if (this[by].style) { | |
this[by].style.display = "none"; | |
} | |
} | |
return this; | |
} | |
}, | |
_toggle: b.fn.toggle, | |
toggle: function(bz, by, bA) { | |
var bx = typeof bz === "boolean"; | |
if (b.isFunction(bz) && b.isFunction(by)) { | |
this._toggle.apply(this, arguments); | |
} else { | |
if (bz == null || bx) { | |
this.each(function() { | |
var bB = bx ? bz : b(this).is(":hidden"); | |
b(this)[bB ? "show" : "hide"](); | |
}); | |
} else { | |
this.animate(a2("toggle", 3), bz, by, bA); | |
} | |
} | |
return this; | |
}, | |
fadeTo: function(bx, bA, bz, by) { | |
return this.filter(":hidden").css("opacity", 0).show().end().animate({ | |
opacity: bA | |
}, bx, bz, by); | |
}, | |
animate: function(bC, bz, bB, bA) { | |
var bx = b.speed(bz, bB, bA); | |
if (b.isEmptyObject(bC)) { | |
return this.each(bx.complete, [ false ]); | |
} | |
bC = b.extend({}, bC); | |
function by() { | |
if (bx.queue === false) { | |
b._mark(this); | |
} | |
var bH = b.extend({}, bx), bN = this.nodeType === 1, bL = bN && b(this).is(":hidden"), bE, bI, bG, bM, bK, bF, bJ, bO, bD; | |
bH.animatedProperties = {}; | |
for (bG in bC) { | |
bE = b.camelCase(bG); | |
if (bG !== bE) { | |
bC[bE] = bC[bG]; | |
delete bC[bG]; | |
} | |
bI = bC[bE]; | |
if (b.isArray(bI)) { | |
bH.animatedProperties[bE] = bI[1]; | |
bI = bC[bE] = bI[0]; | |
} else { | |
bH.animatedProperties[bE] = bH.specialEasing && bH.specialEasing[bE] || bH.easing || "swing"; | |
} | |
if (bI === "hide" && bL || bI === "show" && !bL) { | |
return bH.complete.call(this); | |
} | |
if (bN && (bE === "height" || bE === "width")) { | |
bH.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; | |
if (b.css(this, "display") === "inline" && b.css(this, "float") === "none") { | |
if (!b.support.inlineBlockNeedsLayout || z(this.nodeName) === "inline") { | |
this.style.display = "inline-block"; | |
} else { | |
this.style.zoom = 1; | |
} | |
} | |
} | |
} | |
if (bH.overflow != null) { | |
this.style.overflow = "hidden"; | |
} | |
for (bG in bC) { | |
bM = new b.fx(this, bH, bG); | |
bI = bC[bG]; | |
if (aD.test(bI)) { | |
bD = b._data(this, "toggle" + bG) || (bI === "toggle" ? bL ? "show" : "hide" : 0); | |
if (bD) { | |
b._data(this, "toggle" + bG, bD === "show" ? "hide" : "show"); | |
bM[bD](); | |
} else { | |
bM[bI](); | |
} | |
} else { | |
bK = aV.exec(bI); | |
bF = bM.cur(); | |
if (bK) { | |
bJ = parseFloat(bK[2]); | |
bO = bK[3] || (b.cssNumber[bG] ? "" : "px"); | |
if (bO !== "px") { | |
b.style(this, bG, (bJ || 1) + bO); | |
bF = (bJ || 1) / bM.cur() * bF; | |
b.style(this, bG, bF + bO); | |
} | |
if (bK[1]) { | |
bJ = (bK[1] === "-=" ? -1 : 1) * bJ + bF; | |
} | |
bM.custom(bF, bJ, bO); | |
} else { | |
bM.custom(bF, bI, ""); | |
} | |
} | |
} | |
return true; | |
} | |
return bx.queue === false ? this.each(by) : this.queue(bx.queue, by); | |
}, | |
stop: function(bz, by, bx) { | |
if (typeof bz !== "string") { | |
bx = by; | |
by = bz; | |
bz = N; | |
} | |
if (by && bz !== false) { | |
this.queue(bz || "fx", []); | |
} | |
return this.each(function() { | |
var bA, bB = false, bD = b.timers, bC = b._data(this); | |
if (!bx) { | |
b._unmark(true, this); | |
} | |
function bE(bH, bI, bG) { | |
var bF = bI[bG]; | |
b.removeData(bH, bG, true); | |
bF.stop(bx); | |
} | |
if (bz == null) { | |
for (bA in bC) { | |
if (bC[bA] && bC[bA].stop && bA.indexOf(".run") === bA.length - 4) { | |
bE(this, bC, bA); | |
} | |
} | |
} else { | |
if (bC[bA = bz + ".run"] && bC[bA].stop) { | |
bE(this, bC, bA); | |
} | |
} | |
for (bA = bD.length; bA--; ) { | |
if (bD[bA].elem === this && (bz == null || bD[bA].queue === bz)) { | |
if (bx) { | |
bD[bA](true); | |
} else { | |
bD[bA].saveState(); | |
} | |
bB = true; | |
bD.splice(bA, 1); | |
} | |
} | |
if (!(bx && bB)) { | |
b.dequeue(this, bz); | |
} | |
}); | |
} | |
}); | |
function bj() { | |
setTimeout(av, 0); | |
return a6 = b.now(); | |
} | |
function av() { | |
a6 = N; | |
} | |
function a2(by, bx) { | |
var bz = {}; | |
b.each(aJ.concat.apply([], aJ.slice(0, bx)), function() { | |
bz[this] = by; | |
}); | |
return bz; | |
} | |
b.each({ | |
slideDown: a2("show", 1), | |
slideUp: a2("hide", 1), | |
slideToggle: a2("toggle", 1), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(bx, by) { | |
b.fn[bx] = function(bz, bB, bA) { | |
return this.animate(by, bz, bB, bA); | |
}; | |
}); | |
b.extend({ | |
speed: function(bz, bA, by) { | |
var bx = bz && typeof bz === "object" ? b.extend({}, bz) : { | |
complete: by || !by && bA || b.isFunction(bz) && bz, | |
duration: bz, | |
easing: by && bA || bA && !b.isFunction(bA) && bA | |
}; | |
bx.duration = b.fx.off ? 0 : typeof bx.duration === "number" ? bx.duration : bx.duration in b.fx.speeds ? b.fx.speeds[bx.duration] : b.fx.speeds._default; | |
if (bx.queue == null || bx.queue === true) { | |
bx.queue = "fx"; | |
} | |
bx.old = bx.complete; | |
bx.complete = function(bB) { | |
if (b.isFunction(bx.old)) { | |
bx.old.call(this); | |
} | |
if (bx.queue) { | |
b.dequeue(this, bx.queue); | |
} else { | |
if (bB !== false) { | |
b._unmark(this); | |
} | |
} | |
}; | |
return bx; | |
}, | |
easing: { | |
linear: function(bz, bA, bx, by) { | |
return bx + by * bz; | |
}, | |
swing: function(bz, bA, bx, by) { | |
return (-Math.cos(bz * Math.PI) / 2 + .5) * by + bx; | |
} | |
}, | |
timers: [], | |
fx: function(by, bx, bz) { | |
this.options = bx; | |
this.elem = by; | |
this.prop = bz; | |
bx.orig = bx.orig || {}; | |
} | |
}); | |
b.fx.prototype = { | |
update: function() { | |
if (this.options.step) { | |
this.options.step.call(this.elem, this.now, this); | |
} | |
(b.fx.step[this.prop] || b.fx.step._default)(this); | |
}, | |
cur: function() { | |
if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) { | |
return this.elem[this.prop]; | |
} | |
var bx, by = b.css(this.elem, this.prop); | |
return isNaN(bx = parseFloat(by)) ? !by || by === "auto" ? 0 : by : bx; | |
}, | |
custom: function(bC, bB, bA) { | |
var bx = this, bz = b.fx; | |
this.startTime = a6 || bj(); | |
this.end = bB; | |
this.now = this.start = bC; | |
this.pos = this.state = 0; | |
this.unit = bA || this.unit || (b.cssNumber[this.prop] ? "" : "px"); | |
function by(bD) { | |
return bx.step(bD); | |
} | |
by.queue = this.options.queue; | |
by.elem = this.elem; | |
by.saveState = function() { | |
if (bx.options.hide && b._data(bx.elem, "fxshow" + bx.prop) === N) { | |
b._data(bx.elem, "fxshow" + bx.prop, bx.start); | |
} | |
}; | |
if (by() && b.timers.push(by) && !a5) { | |
a5 = setInterval(bz.tick, bz.interval); | |
} | |
}, | |
show: function() { | |
var bx = b._data(this.elem, "fxshow" + this.prop); | |
this.options.orig[this.prop] = bx || b.style(this.elem, this.prop); | |
this.options.show = true; | |
if (bx !== N) { | |
this.custom(this.cur(), bx); | |
} else { | |
this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()); | |
} | |
b(this.elem).show(); | |
}, | |
hide: function() { | |
this.options.orig[this.prop] = b._data(this.elem, "fxshow" + this.prop) || b.style(this.elem, this.prop); | |
this.options.hide = true; | |
this.custom(this.cur(), 0); | |
}, | |
step: function(bB) { | |
var bD, bE, by, bA = a6 || bj(), bx = true, bC = this.elem, bz = this.options; | |
if (bB || bA >= bz.duration + this.startTime) { | |
this.now = this.end; | |
this.pos = this.state = 1; | |
this.update(); | |
bz.animatedProperties[this.prop] = true; | |
for (bD in bz.animatedProperties) { | |
if (bz.animatedProperties[bD] !== true) { | |
bx = false; | |
} | |
} | |
if (bx) { | |
if (bz.overflow != null && !b.support.shrinkWrapBlocks) { | |
b.each([ "", "X", "Y" ], function(bF, bG) { | |
bC.style["overflow" + bG] = bz.overflow[bF]; | |
}); | |
} | |
if (bz.hide) { | |
b(bC).hide(); | |
} | |
if (bz.hide || bz.show) { | |
for (bD in bz.animatedProperties) { | |
b.style(bC, bD, bz.orig[bD]); | |
b.removeData(bC, "fxshow" + bD, true); | |
b.removeData(bC, "toggle" + bD, true); | |
} | |
} | |
by = bz.complete; | |
if (by) { | |
bz.complete = false; | |
by.call(bC); | |
} | |
} | |
return false; | |
} else { | |
if (bz.duration == Infinity) { | |
this.now = bA; | |
} else { | |
bE = bA - this.startTime; | |
this.state = bE / bz.duration; | |
this.pos = b.easing[bz.animatedProperties[this.prop]](this.state, bE, 0, 1, bz.duration); | |
this.now = this.start + (this.end - this.start) * this.pos; | |
} | |
this.update(); | |
} | |
return true; | |
} | |
}; | |
b.extend(b.fx, { | |
tick: function() { | |
var bz, by = b.timers, bx = 0; | |
for (;bx < by.length; bx++) { | |
bz = by[bx]; | |
if (!bz() && by[bx] === bz) { | |
by.splice(bx--, 1); | |
} | |
} | |
if (!by.length) { | |
b.fx.stop(); | |
} | |
}, | |
interval: 13, | |
stop: function() { | |
clearInterval(a5); | |
a5 = null; | |
}, | |
speeds: { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}, | |
step: { | |
opacity: function(bx) { | |
b.style(bx.elem, "opacity", bx.now); | |
}, | |
_default: function(bx) { | |
if (bx.elem.style && bx.elem.style[bx.prop] != null) { | |
bx.elem.style[bx.prop] = bx.now + bx.unit; | |
} else { | |
bx.elem[bx.prop] = bx.now; | |
} | |
} | |
} | |
}); | |
b.each([ "width", "height" ], function(bx, by) { | |
b.fx.step[by] = function(bz) { | |
b.style(bz.elem, by, Math.max(0, bz.now) + bz.unit); | |
}; | |
}); | |
if (b.expr && b.expr.filters) { | |
b.expr.filters.animated = function(bx) { | |
return b.grep(b.timers, function(by) { | |
return bx === by.elem; | |
}).length; | |
}; | |
} | |
function z(bA) { | |
if (!S[bA]) { | |
var bx = ax.body, by = b("<" + bA + ">").appendTo(bx), bz = by.css("display"); | |
by.remove(); | |
if (bz === "none" || bz === "") { | |
if (!ba) { | |
ba = ax.createElement("iframe"); | |
ba.frameBorder = ba.width = ba.height = 0; | |
} | |
bx.appendChild(ba); | |
if (!o || !ba.createElement) { | |
o = (ba.contentWindow || ba.contentDocument).document; | |
o.write((ax.compatMode === "CSS1Compat" ? "<!doctype html>" : "") + "<html><body>"); | |
o.close(); | |
} | |
by = o.createElement(bA); | |
o.body.appendChild(by); | |
bz = b.css(by, "display"); | |
bx.removeChild(ba); | |
} | |
S[bA] = bz; | |
} | |
return S[bA]; | |
} | |
var X = /^t(?:able|d|h)$/i, af = /^(?:body|html)$/i; | |
if ("getBoundingClientRect" in ax.documentElement) { | |
b.fn.offset = function(bK) { | |
var bA = this[0], bD; | |
if (bK) { | |
return this.each(function(bL) { | |
b.offset.setOffset(this, bK, bL); | |
}); | |
} | |
if (!bA || !bA.ownerDocument) { | |
return null; | |
} | |
if (bA === bA.ownerDocument.body) { | |
return b.offset.bodyOffset(bA); | |
} | |
try { | |
bD = bA.getBoundingClientRect(); | |
} catch (bH) {} | |
var bJ = bA.ownerDocument, by = bJ.documentElement; | |
if (!bD || !b.contains(by, bA)) { | |
return bD ? { | |
top: bD.top, | |
left: bD.left | |
} : { | |
top: 0, | |
left: 0 | |
}; | |
} | |
var bE = bJ.body, bF = aM(bJ), bC = by.clientTop || bE.clientTop || 0, bG = by.clientLeft || bE.clientLeft || 0, bx = bF.pageYOffset || b.support.boxModel && by.scrollTop || bE.scrollTop, bB = bF.pageXOffset || b.support.boxModel && by.scrollLeft || bE.scrollLeft, bI = bD.top + bx - bC, bz = bD.left + bB - bG; | |
return { | |
top: bI, | |
left: bz | |
}; | |
}; | |
} else { | |
b.fn.offset = function(bI) { | |
var bC = this[0]; | |
if (bI) { | |
return this.each(function(bJ) { | |
b.offset.setOffset(this, bI, bJ); | |
}); | |
} | |
if (!bC || !bC.ownerDocument) { | |
return null; | |
} | |
if (bC === bC.ownerDocument.body) { | |
return b.offset.bodyOffset(bC); | |
} | |
var bF, bz = bC.offsetParent, by = bC, bH = bC.ownerDocument, bA = bH.documentElement, bD = bH.body, bE = bH.defaultView, bx = bE ? bE.getComputedStyle(bC, null) : bC.currentStyle, bG = bC.offsetTop, bB = bC.offsetLeft; | |
while ((bC = bC.parentNode) && bC !== bD && bC !== bA) { | |
if (b.support.fixedPosition && bx.position === "fixed") { | |
break; | |
} | |
bF = bE ? bE.getComputedStyle(bC, null) : bC.currentStyle; | |
bG -= bC.scrollTop; | |
bB -= bC.scrollLeft; | |
if (bC === bz) { | |
bG += bC.offsetTop; | |
bB += bC.offsetLeft; | |
if (b.support.doesNotAddBorder && !(b.support.doesAddBorderForTableAndCells && X.test(bC.nodeName))) { | |
bG += parseFloat(bF.borderTopWidth) || 0; | |
bB += parseFloat(bF.borderLeftWidth) || 0; | |
} | |
by = bz; | |
bz = bC.offsetParent; | |
} | |
if (b.support.subtractsBorderForOverflowNotVisible && bF.overflow !== "visible") { | |
bG += parseFloat(bF.borderTopWidth) || 0; | |
bB += parseFloat(bF.borderLeftWidth) || 0; | |
} | |
bx = bF; | |
} | |
if (bx.position === "relative" || bx.position === "static") { | |
bG += bD.offsetTop; | |
bB += bD.offsetLeft; | |
} | |
if (b.support.fixedPosition && bx.position === "fixed") { | |
bG += Math.max(bA.scrollTop, bD.scrollTop); | |
bB += Math.max(bA.scrollLeft, bD.scrollLeft); | |
} | |
return { | |
top: bG, | |
left: bB | |
}; | |
}; | |
} | |
b.offset = { | |
bodyOffset: function(bx) { | |
var bz = bx.offsetTop, by = bx.offsetLeft; | |
if (b.support.doesNotIncludeMarginInBodyOffset) { | |
bz += parseFloat(b.css(bx, "marginTop")) || 0; | |
by += parseFloat(b.css(bx, "marginLeft")) || 0; | |
} | |
return { | |
top: bz, | |
left: by | |
}; | |
}, | |
setOffset: function(bA, bJ, bD) { | |
var bE = b.css(bA, "position"); | |
if (bE === "static") { | |
bA.style.position = "relative"; | |
} | |
var bC = b(bA), by = bC.offset(), bx = b.css(bA, "top"), bH = b.css(bA, "left"), bI = (bE === "absolute" || bE === "fixed") && b.inArray("auto", [ bx, bH ]) > -1, bG = {}, bF = {}, bz, bB; | |
if (bI) { | |
bF = bC.position(); | |
bz = bF.top; | |
bB = bF.left; | |
} else { | |
bz = parseFloat(bx) || 0; | |
bB = parseFloat(bH) || 0; | |
} | |
if (b.isFunction(bJ)) { | |
bJ = bJ.call(bA, bD, by); | |
} | |
if (bJ.top != null) { | |
bG.top = bJ.top - by.top + bz; | |
} | |
if (bJ.left != null) { | |
bG.left = bJ.left - by.left + bB; | |
} | |
if ("using" in bJ) { | |
bJ.using.call(bA, bG); | |
} else { | |
bC.css(bG); | |
} | |
} | |
}; | |
b.fn.extend({ | |
position: function() { | |
if (!this[0]) { | |
return null; | |
} | |
var bz = this[0], by = this.offsetParent(), bA = this.offset(), bx = af.test(by[0].nodeName) ? { | |
top: 0, | |
left: 0 | |
} : by.offset(); | |
bA.top -= parseFloat(b.css(bz, "marginTop")) || 0; | |
bA.left -= parseFloat(b.css(bz, "marginLeft")) || 0; | |
bx.top += parseFloat(b.css(by[0], "borderTopWidth")) || 0; | |
bx.left += parseFloat(b.css(by[0], "borderLeftWidth")) || 0; | |
return { | |
top: bA.top - bx.top, | |
left: bA.left - bx.left | |
}; | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
var bx = this.offsetParent || ax.body; | |
while (bx && (!af.test(bx.nodeName) && b.css(bx, "position") === "static")) { | |
bx = bx.offsetParent; | |
} | |
return bx; | |
}); | |
} | |
}); | |
b.each([ "Left", "Top" ], function(by, bx) { | |
var bz = "scroll" + bx; | |
b.fn[bz] = function(bC) { | |
var bA, bB; | |
if (bC === N) { | |
bA = this[0]; | |
if (!bA) { | |
return null; | |
} | |
bB = aM(bA); | |
return bB ? "pageXOffset" in bB ? bB[by ? "pageYOffset" : "pageXOffset"] : b.support.boxModel && bB.document.documentElement[bz] || bB.document.body[bz] : bA[bz]; | |
} | |
return this.each(function() { | |
bB = aM(this); | |
if (bB) { | |
bB.scrollTo(!by ? bC : b(bB).scrollLeft(), by ? bC : b(bB).scrollTop()); | |
} else { | |
this[bz] = bC; | |
} | |
}); | |
}; | |
}); | |
function aM(bx) { | |
return b.isWindow(bx) ? bx : bx.nodeType === 9 ? bx.defaultView || bx.parentWindow : false; | |
} | |
b.each([ "Height", "Width" ], function(by, bx) { | |
var bz = bx.toLowerCase(); | |
b.fn["inner" + bx] = function() { | |
var bA = this[0]; | |
return bA ? bA.style ? parseFloat(b.css(bA, bz, "padding")) : this[bz]() : null; | |
}; | |
b.fn["outer" + bx] = function(bB) { | |
var bA = this[0]; | |
return bA ? bA.style ? parseFloat(b.css(bA, bz, bB ? "margin" : "border")) : this[bz]() : null; | |
}; | |
b.fn[bz] = function(bC) { | |
var bD = this[0]; | |
if (!bD) { | |
return bC == null ? null : this; | |
} | |
if (b.isFunction(bC)) { | |
return this.each(function(bH) { | |
var bG = b(this); | |
bG[bz](bC.call(this, bH, bG[bz]())); | |
}); | |
} | |
if (b.isWindow(bD)) { | |
var bE = bD.document.documentElement["client" + bx], bA = bD.document.body; | |
return bD.document.compatMode === "CSS1Compat" && bE || bA && bA["client" + bx] || bE; | |
} else { | |
if (bD.nodeType === 9) { | |
return Math.max(bD.documentElement["client" + bx], bD.body["scroll" + bx], bD.documentElement["scroll" + bx], bD.body["offset" + bx], bD.documentElement["offset" + bx]); | |
} else { | |
if (bC === N) { | |
var bF = b.css(bD, bz), bB = parseFloat(bF); | |
return b.isNumeric(bB) ? bB : bF; | |
} else { | |
return this.css(bz, typeof bC === "string" ? bC : bC + "px"); | |
} | |
} | |
} | |
}; | |
}); | |
bd.jQuery = bd.$ = b; | |
if (typeof define === "function" && define.amd && define.amd.jQuery) { | |
define("jquery", [], function() { | |
return b; | |
}); | |
} | |
})(window); | |
jQuery.fn.extend({ | |
getUrlParam: function(g) { | |
g = escape(unescape(g)); | |
var f = new Array(); | |
var b = null; | |
if ($(this).attr("nodeName") == "#document") { | |
if (window.location.search.search(g) > -1) { | |
b = window.location.search.substr(1, window.location.search.length).split("&"); | |
} | |
} else { | |
if ($(this).attr("src") != "undefined") { | |
var d = $(this).attr("src"); | |
if (d.indexOf("?") > -1) { | |
var a = d.substr(d.indexOf("?") + 1); | |
b = a.split("&"); | |
} | |
} else { | |
if (j$(this).attr("href") != "undefined") { | |
var d = $(this).attr("href"); | |
if (d.indexOf("?") > -1) { | |
var a = d.substr(d.indexOf("?") + 1); | |
b = a.split("&"); | |
} | |
} else { | |
return null; | |
} | |
} | |
} | |
if (b == null) { | |
return null; | |
} | |
for (var c = 0; c < b.length; c++) { | |
if (escape(unescape(b[c].split("=")[0])) == g) { | |
f.push(b[c].split("=")[1]); | |
} | |
} | |
if (f.length == 0) { | |
return null; | |
} else { | |
if (f.length == 1) { | |
return f[0]; | |
} else { | |
return f; | |
} | |
} | |
} | |
}); | |
jQuery.fn.extend({ | |
everyTime: function(b, c, d, f, a) { | |
return this.each(function() { | |
jQuery.timer.add(this, b, c, d, f, a); | |
}); | |
}, | |
oneTime: function(a, b, c) { | |
return this.each(function() { | |
jQuery.timer.add(this, a, b, c, 1); | |
}); | |
}, | |
stopTime: function(a, b) { | |
return this.each(function() { | |
jQuery.timer.remove(this, a, b); | |
}); | |
} | |
}); | |
jQuery.extend({ | |
timer: { | |
global: [], | |
guid: 1, | |
dataKey: "jQuery.timer", | |
regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/, | |
powers: { | |
ms: 1, | |
cs: 10, | |
ds: 100, | |
s: 1e3, | |
das: 1e4, | |
hs: 1e5, | |
ks: 1e6 | |
}, | |
timeParse: function(c) { | |
if (c == undefined || c == null) { | |
return null; | |
} | |
var a = this.regex.exec(jQuery.trim(c.toString())); | |
if (a[2]) { | |
var b = parseFloat(a[1]); | |
var d = this.powers[a[2]] || 1; | |
return b * d; | |
} else { | |
return c; | |
} | |
}, | |
add: function(f, c, k, h, b, g) { | |
var a = 0; | |
if (jQuery.isFunction(k)) { | |
if (!b) { | |
b = h; | |
} | |
h = k; | |
k = c; | |
} | |
c = jQuery.timer.timeParse(c); | |
if (typeof c != "number" || isNaN(c) || c <= 0) { | |
return; | |
} | |
if (b && b.constructor != Number) { | |
g = !!b; | |
b = 0; | |
} | |
b = b || 0; | |
g = g || false; | |
var d = jQuery.data(f, this.dataKey) || jQuery.data(f, this.dataKey, {}); | |
if (!d[k]) { | |
d[k] = {}; | |
} | |
h.timerID = h.timerID || this.guid++; | |
var l = function() { | |
if (g && this.inProgress) { | |
return; | |
} | |
this.inProgress = true; | |
if (++a > b && b !== 0 || h.call(f, a) === false) { | |
jQuery.timer.remove(f, k, h); | |
} | |
this.inProgress = false; | |
}; | |
l.timerID = h.timerID; | |
if (!d[k][h.timerID]) { | |
d[k][h.timerID] = window.setInterval(l, c); | |
} | |
this.global.push(f); | |
}, | |
remove: function(c, b, d) { | |
var f = jQuery.data(c, this.dataKey), a; | |
if (f) { | |
if (!b) { | |
for (b in f) { | |
this.remove(c, b, d); | |
} | |
} else { | |
if (f[b]) { | |
if (d) { | |
if (d.timerID) { | |
window.clearInterval(f[b][d.timerID]); | |
delete f[b][d.timerID]; | |
} | |
} else { | |
for (var d in f[b]) { | |
window.clearInterval(f[b][d]); | |
delete f[b][d]; | |
} | |
} | |
for (a in f[b]) { | |
break; | |
} | |
if (!a) { | |
a = null; | |
delete f[b]; | |
} | |
} | |
} | |
for (a in f) { | |
break; | |
} | |
if (!a) { | |
jQuery.removeData(c, this.dataKey); | |
} | |
} | |
} | |
} | |
}); | |
try { | |
jQuery(window).bind("unload", function() { | |
jQuery.each(jQuery.timer.global, function(a, b) { | |
jQuery.timer.remove(b); | |
}); | |
}); | |
} catch (e) {} | |
(function(b, g) { | |
var a = 0, f = /^ui-id-\d+$/; | |
b.ui = b.ui || {}; | |
if (b.ui.version) { | |
return; | |
} | |
b.extend(b.ui, { | |
version: "1.10.1", | |
keyCode: { | |
BACKSPACE: 8, | |
COMMA: 188, | |
DELETE: 46, | |
DOWN: 40, | |
END: 35, | |
ENTER: 13, | |
ESCAPE: 27, | |
HOME: 36, | |
LEFT: 37, | |
NUMPAD_ADD: 107, | |
NUMPAD_DECIMAL: 110, | |
NUMPAD_DIVIDE: 111, | |
NUMPAD_ENTER: 108, | |
NUMPAD_MULTIPLY: 106, | |
NUMPAD_SUBTRACT: 109, | |
PAGE_DOWN: 34, | |
PAGE_UP: 33, | |
PERIOD: 190, | |
RIGHT: 39, | |
SPACE: 32, | |
TAB: 9, | |
UP: 38 | |
} | |
}); | |
b.fn.extend({ | |
_focus: b.fn.focus, | |
focus: function(h, k) { | |
return typeof h === "number" ? this.each(function() { | |
var l = this; | |
setTimeout(function() { | |
b(l).focus(); | |
if (k) { | |
k.call(l); | |
} | |
}, h); | |
}) : this._focus.apply(this, arguments); | |
}, | |
scrollParent: function() { | |
var h; | |
if (b.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position"))) { | |
h = this.parents().filter(function() { | |
return /(relative|absolute|fixed)/.test(b.css(this, "position")) && /(auto|scroll)/.test(b.css(this, "overflow") + b.css(this, "overflow-y") + b.css(this, "overflow-x")); | |
}).eq(0); | |
} else { | |
h = this.parents().filter(function() { | |
return /(auto|scroll)/.test(b.css(this, "overflow") + b.css(this, "overflow-y") + b.css(this, "overflow-x")); | |
}).eq(0); | |
} | |
return /fixed/.test(this.css("position")) || !h.length ? b(document) : h; | |
}, | |
zIndex: function(m) { | |
if (m !== g) { | |
return this.css("zIndex", m); | |
} | |
if (this.length) { | |
var k = b(this[0]), h, l; | |
while (k.length && k[0] !== document) { | |
h = k.css("position"); | |
if (h === "absolute" || h === "relative" || h === "fixed") { | |
l = parseInt(k.css("zIndex"), 10); | |
if (!isNaN(l) && l !== 0) { | |
return l; | |
} | |
} | |
k = k.parent(); | |
} | |
} | |
return 0; | |
}, | |
uniqueId: function() { | |
return this.each(function() { | |
if (!this.id) { | |
this.id = "ui-id-" + ++a; | |
} | |
}); | |
}, | |
removeUniqueId: function() { | |
return this.each(function() { | |
if (f.test(this.id)) { | |
b(this).removeAttr("id"); | |
} | |
}); | |
} | |
}); | |
function d(l, h) { | |
var n, m, k, o = l.nodeName.toLowerCase(); | |
if ("area" === o) { | |
n = l.parentNode; | |
m = n.name; | |
if (!l.href || !m || n.nodeName.toLowerCase() !== "map") { | |
return false; | |
} | |
k = b("img[usemap=#" + m + "]")[0]; | |
return !!k && c(k); | |
} | |
return (/input|select|textarea|button|object/.test(o) ? !l.disabled : "a" === o ? l.href || h : h) && c(l); | |
} | |
function c(h) { | |
return b.expr.filters.visible(h) && !b(h).parents().addBack().filter(function() { | |
return b.css(this, "visibility") === "hidden"; | |
}).length; | |
} | |
b.extend(b.expr[":"], { | |
data: b.expr.createPseudo ? b.expr.createPseudo(function(h) { | |
return function(k) { | |
return !!b.data(k, h); | |
}; | |
}) : function(l, k, h) { | |
return !!b.data(l, h[3]); | |
}, | |
focusable: function(h) { | |
return d(h, !isNaN(b.attr(h, "tabindex"))); | |
}, | |
tabbable: function(l) { | |
var h = b.attr(l, "tabindex"), k = isNaN(h); | |
return (k || h >= 0) && d(l, !k); | |
} | |
}); | |
if (!b("<a>").outerWidth(1).jquery) { | |
b.each([ "Width", "Height" ], function(l, h) { | |
var k = h === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], m = h.toLowerCase(), o = { | |
innerWidth: b.fn.innerWidth, | |
innerHeight: b.fn.innerHeight, | |
outerWidth: b.fn.outerWidth, | |
outerHeight: b.fn.outerHeight | |
}; | |
function n(r, q, p, s) { | |
b.each(k, function() { | |
q -= parseFloat(b.css(r, "padding" + this)) || 0; | |
if (p) { | |
q -= parseFloat(b.css(r, "border" + this + "Width")) || 0; | |
} | |
if (s) { | |
q -= parseFloat(b.css(r, "margin" + this)) || 0; | |
} | |
}); | |
return q; | |
} | |
b.fn["inner" + h] = function(p) { | |
if (p === g) { | |
return o["inner" + h].call(this); | |
} | |
return this.each(function() { | |
b(this).css(m, n(this, p) + "px"); | |
}); | |
}; | |
b.fn["outer" + h] = function(p, q) { | |
if (typeof p !== "number") { | |
return o["outer" + h].call(this, p); | |
} | |
return this.each(function() { | |
b(this).css(m, n(this, p, true, q) + "px"); | |
}); | |
}; | |
}); | |
} | |
if (!b.fn.addBack) { | |
b.fn.addBack = function(h) { | |
return this.add(h == null ? this.prevObject : this.prevObject.filter(h)); | |
}; | |
} | |
if (b("<a>").data("a-b", "a").removeData("a-b").data("a-b")) { | |
b.fn.removeData = function(h) { | |
return function(k) { | |
if (arguments.length) { | |
return h.call(this, b.camelCase(k)); | |
} else { | |
return h.call(this); | |
} | |
}; | |
}(b.fn.removeData); | |
} | |
b.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()); | |
b.support.selectstart = "onselectstart" in document.createElement("div"); | |
b.fn.extend({ | |
disableSelection: function() { | |
return this.bind((b.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(h) { | |
h.preventDefault(); | |
}); | |
}, | |
enableSelection: function() { | |
return this.unbind(".ui-disableSelection"); | |
} | |
}); | |
b.extend(b.ui, { | |
plugin: { | |
add: function(k, l, n) { | |
var h, m = b.ui[k].prototype; | |
for (h in n) { | |
m.plugins[h] = m.plugins[h] || []; | |
m.plugins[h].push([ l, n[h] ]); | |
} | |
}, | |
call: function(h, l, k) { | |
var m, n = h.plugins[l]; | |
if (!n || !h.element[0].parentNode || h.element[0].parentNode.nodeType === 11) { | |
return; | |
} | |
for (m = 0; m < n.length; m++) { | |
if (h.options[n[m][0]]) { | |
n[m][1].apply(h.element, k); | |
} | |
} | |
} | |
}, | |
hasScroll: function(m, k) { | |
if (b(m).css("overflow") === "hidden") { | |
return false; | |
} | |
var h = k && k === "left" ? "scrollLeft" : "scrollTop", l = false; | |
if (m[h] > 0) { | |
return true; | |
} | |
m[h] = 1; | |
l = m[h] > 0; | |
m[h] = 0; | |
return l; | |
} | |
}); | |
})(jQuery); | |
(function(b, f) { | |
var a = 0, d = Array.prototype.slice, c = b.cleanData; | |
b.cleanData = function(g) { | |
for (var h = 0, k; (k = g[h]) != null; h++) { | |
try { | |
b(k).triggerHandler("remove"); | |
} catch (l) {} | |
} | |
c(g); | |
}; | |
b.widget = function(g, h, q) { | |
var n, o, l, p, k = {}, m = g.split(".")[0]; | |
g = g.split(".")[1]; | |
n = m + "-" + g; | |
if (!q) { | |
q = h; | |
h = b.Widget; | |
} | |
b.expr[":"][n.toLowerCase()] = function(r) { | |
return !!b.data(r, n); | |
}; | |
b[m] = b[m] || {}; | |
o = b[m][g]; | |
l = b[m][g] = function(r, s) { | |
if (!this._createWidget) { | |
return new l(r, s); | |
} | |
if (arguments.length) { | |
this._createWidget(r, s); | |
} | |
}; | |
b.extend(l, o, { | |
version: q.version, | |
_proto: b.extend({}, q), | |
_childConstructors: [] | |
}); | |
p = new h(); | |
p.options = b.widget.extend({}, p.options); | |
b.each(q, function(s, r) { | |
if (!b.isFunction(r)) { | |
k[s] = r; | |
return; | |
} | |
k[s] = function() { | |
var t = function() { | |
return h.prototype[s].apply(this, arguments); | |
}, u = function(v) { | |
return h.prototype[s].apply(this, v); | |
}; | |
return function() { | |
var x = this._super, v = this._superApply, w; | |
this._super = t; | |
this._superApply = u; | |
w = r.apply(this, arguments); | |
this._super = x; | |
this._superApply = v; | |
return w; | |
}; | |
}(); | |
}); | |
l.prototype = b.widget.extend(p, { | |
widgetEventPrefix: o ? p.widgetEventPrefix : g | |
}, k, { | |
constructor: l, | |
namespace: m, | |
widgetName: g, | |
widgetFullName: n | |
}); | |
if (o) { | |
b.each(o._childConstructors, function(s, t) { | |
var r = t.prototype; | |
b.widget(r.namespace + "." + r.widgetName, l, t._proto); | |
}); | |
delete o._childConstructors; | |
} else { | |
h._childConstructors.push(l); | |
} | |
b.widget.bridge(g, l); | |
}; | |
b.widget.extend = function(n) { | |
var h = d.call(arguments, 1), m = 0, g = h.length, k, l; | |
for (;m < g; m++) { | |
for (k in h[m]) { | |
l = h[m][k]; | |
if (h[m].hasOwnProperty(k) && l !== f) { | |
if (b.isPlainObject(l)) { | |
n[k] = b.isPlainObject(n[k]) ? b.widget.extend({}, n[k], l) : b.widget.extend({}, l); | |
} else { | |
n[k] = l; | |
} | |
} | |
} | |
} | |
return n; | |
}; | |
b.widget.bridge = function(h, g) { | |
var k = g.prototype.widgetFullName || h; | |
b.fn[h] = function(n) { | |
var l = typeof n === "string", m = d.call(arguments, 1), o = this; | |
n = !l && m.length ? b.widget.extend.apply(null, [ n ].concat(m)) : n; | |
if (l) { | |
this.each(function() { | |
var q, p = b.data(this, k); | |
if (!p) { | |
return b.error("cannot call methods on " + h + " prior to initialization; attempted to call method '" + n + "'"); | |
} | |
if (!b.isFunction(p[n]) || n.charAt(0) === "_") { | |
return b.error("no such method '" + n + "' for " + h + " widget instance"); | |
} | |
q = p[n].apply(p, m); | |
if (q !== p && q !== f) { | |
o = q && q.jquery ? o.pushStack(q.get()) : q; | |
return false; | |
} | |
}); | |
} else { | |
this.each(function() { | |
var p = b.data(this, k); | |
if (p) { | |
p.option(n || {})._init(); | |
} else { | |
b.data(this, k, new g(n, this)); | |
} | |
}); | |
} | |
return o; | |
}; | |
}; | |
b.Widget = function() {}; | |
b.Widget._childConstructors = []; | |
b.Widget.prototype = { | |
widgetName: "widget", | |
widgetEventPrefix: "", | |
defaultElement: "<div>", | |
options: { | |
disabled: false, | |
create: null | |
}, | |
_createWidget: function(g, h) { | |
h = b(h || this.defaultElement || this)[0]; | |
this.element = b(h); | |
this.uuid = a++; | |
this.eventNamespace = "." + this.widgetName + this.uuid; | |
this.options = b.widget.extend({}, this.options, this._getCreateOptions(), g); | |
this.bindings = b(); | |
this.hoverable = b(); | |
this.focusable = b(); | |
if (h !== this) { | |
b.data(h, this.widgetFullName, this); | |
this._on(true, this.element, { | |
remove: function(k) { | |
if (k.target === h) { | |
this.destroy(); | |
} | |
} | |
}); | |
this.document = b(h.style ? h.ownerDocument : h.document || h); | |
this.window = b(this.document[0].defaultView || this.document[0].parentWindow); | |
} | |
this._create(); | |
this._trigger("create", null, this._getCreateEventData()); | |
this._init(); | |
}, | |
_getCreateOptions: b.noop, | |
_getCreateEventData: b.noop, | |
_create: b.noop, | |
_init: b.noop, | |
destroy: function() { | |
this._destroy(); | |
this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(b.camelCase(this.widgetFullName)); | |
this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"); | |
this.bindings.unbind(this.eventNamespace); | |
this.hoverable.removeClass("ui-state-hover"); | |
this.focusable.removeClass("ui-state-focus"); | |
}, | |
_destroy: b.noop, | |
widget: function() { | |
return this.element; | |
}, | |
option: function(l, m) { | |
var g = l, n, k, h; | |
if (arguments.length === 0) { | |
return b.widget.extend({}, this.options); | |
} | |
if (typeof l === "string") { | |
g = {}; | |
n = l.split("."); | |
l = n.shift(); | |
if (n.length) { | |
k = g[l] = b.widget.extend({}, this.options[l]); | |
for (h = 0; h < n.length - 1; h++) { | |
k[n[h]] = k[n[h]] || {}; | |
k = k[n[h]]; | |
} | |
l = n.pop(); | |
if (m === f) { | |
return k[l] === f ? null : k[l]; | |
} | |
k[l] = m; | |
} else { | |
if (m === f) { | |
return this.options[l] === f ? null : this.options[l]; | |
} | |
g[l] = m; | |
} | |
} | |
this._setOptions(g); | |
return this; | |
}, | |
_setOptions: function(g) { | |
var h; | |
for (h in g) { | |
this._setOption(h, g[h]); | |
} | |
return this; | |
}, | |
_setOption: function(g, h) { | |
this.options[g] = h; | |
if (g === "disabled") { | |
this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!h).attr("aria-disabled", h); | |
this.hoverable.removeClass("ui-state-hover"); | |
this.focusable.removeClass("ui-state-focus"); | |
} | |
return this; | |
}, | |
enable: function() { | |
return this._setOption("disabled", false); | |
}, | |
disable: function() { | |
return this._setOption("disabled", true); | |
}, | |
_on: function(l, k, h) { | |
var m, g = this; | |
if (typeof l !== "boolean") { | |
h = k; | |
k = l; | |
l = false; | |
} | |
if (!h) { | |
h = k; | |
k = this.element; | |
m = this.widget(); | |
} else { | |
k = m = b(k); | |
this.bindings = this.bindings.add(k); | |
} | |
b.each(h, function(s, r) { | |
function p() { | |
if (!l && (g.options.disabled === true || b(this).hasClass("ui-state-disabled"))) { | |
return; | |
} | |
return (typeof r === "string" ? g[r] : r).apply(g, arguments); | |
} | |
if (typeof r !== "string") { | |
p.guid = r.guid = r.guid || p.guid || b.guid++; | |
} | |
var q = s.match(/^(\w+)\s*(.*)$/), o = q[1] + g.eventNamespace, n = q[2]; | |
if (n) { | |
m.delegate(n, o, p); | |
} else { | |
k.bind(o, p); | |
} | |
}); | |
}, | |
_off: function(h, g) { | |
g = (g || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace; | |
h.unbind(g).undelegate(g); | |
}, | |
_delay: function(l, k) { | |
function h() { | |
return (typeof l === "string" ? g[l] : l).apply(g, arguments); | |
} | |
var g = this; | |
return setTimeout(h, k || 0); | |
}, | |
_hoverable: function(g) { | |
this.hoverable = this.hoverable.add(g); | |
this._on(g, { | |
mouseenter: function(h) { | |
b(h.currentTarget).addClass("ui-state-hover"); | |
}, | |
mouseleave: function(h) { | |
b(h.currentTarget).removeClass("ui-state-hover"); | |
} | |
}); | |
}, | |
_focusable: function(g) { | |
this.focusable = this.focusable.add(g); | |
this._on(g, { | |
focusin: function(h) { | |
b(h.currentTarget).addClass("ui-state-focus"); | |
}, | |
focusout: function(h) { | |
b(h.currentTarget).removeClass("ui-state-focus"); | |
} | |
}); | |
}, | |
_trigger: function(g, h, k) { | |
var n, m, l = this.options[g]; | |
k = k || {}; | |
h = b.Event(h); | |
h.type = (g === this.widgetEventPrefix ? g : this.widgetEventPrefix + g).toLowerCase(); | |
h.target = this.element[0]; | |
m = h.originalEvent; | |
if (m) { | |
for (n in m) { | |
if (!(n in h)) { | |
h[n] = m[n]; | |
} | |
} | |
} | |
this.element.trigger(h, k); | |
return !(b.isFunction(l) && l.apply(this.element[0], [ h ].concat(k)) === false || h.isDefaultPrevented()); | |
} | |
}; | |
b.each({ | |
show: "fadeIn", | |
hide: "fadeOut" | |
}, function(h, g) { | |
b.Widget.prototype["_" + h] = function(m, l, o) { | |
if (typeof l === "string") { | |
l = { | |
effect: l | |
}; | |
} | |
var n, k = !l ? h : l === true || typeof l === "number" ? g : l.effect || g; | |
l = l || {}; | |
if (typeof l === "number") { | |
l = { | |
duration: l | |
}; | |
} | |
n = !b.isEmptyObject(l); | |
l.complete = o; | |
if (l.delay) { | |
m.delay(l.delay); | |
} | |
if (n && b.effects && b.effects.effect[k]) { | |
m[h](l); | |
} else { | |
if (k !== h && m[k]) { | |
m[k](l.duration, l.easing, o); | |
} else { | |
m.queue(function(p) { | |
b(this)[h](); | |
if (o) { | |
o.call(m[0]); | |
} | |
p(); | |
}); | |
} | |
} | |
}; | |
}); | |
})(jQuery); | |
(function(b, c) { | |
var a = false; | |
b(document).mouseup(function() { | |
a = false; | |
}); | |
b.widget("ui.mouse", { | |
version: "1.10.1", | |
options: { | |
cancel: "input,textarea,button,select,option", | |
distance: 1, | |
delay: 0 | |
}, | |
_mouseInit: function() { | |
var d = this; | |
this.element.bind("mousedown." + this.widgetName, function(f) { | |
return d._mouseDown(f); | |
}).bind("click." + this.widgetName, function(f) { | |
if (true === b.data(f.target, d.widgetName + ".preventClickEvent")) { | |
b.removeData(f.target, d.widgetName + ".preventClickEvent"); | |
f.stopImmediatePropagation(); | |
return false; | |
} | |
}); | |
this.started = false; | |
}, | |
_mouseDestroy: function() { | |
this.element.unbind("." + this.widgetName); | |
if (this._mouseMoveDelegate) { | |
b(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); | |
} | |
}, | |
_mouseDown: function(g) { | |
if (a) { | |
return; | |
} | |
this._mouseStarted && this._mouseUp(g); | |
this._mouseDownEvent = g; | |
var f = this, h = g.which === 1, d = typeof this.options.cancel === "string" && g.target.nodeName ? b(g.target).closest(this.options.cancel).length : false; | |
if (!h || d || !this._mouseCapture(g)) { | |
return true; | |
} | |
this.mouseDelayMet = !this.options.delay; | |
if (!this.mouseDelayMet) { | |
this._mouseDelayTimer = setTimeout(function() { | |
f.mouseDelayMet = true; | |
}, this.options.delay); | |
} | |
if (this._mouseDistanceMet(g) && this._mouseDelayMet(g)) { | |
this._mouseStarted = this._mouseStart(g) !== false; | |
if (!this._mouseStarted) { | |
g.preventDefault(); | |
return true; | |
} | |
} | |
if (true === b.data(g.target, this.widgetName + ".preventClickEvent")) { | |
b.removeData(g.target, this.widgetName + ".preventClickEvent"); | |
} | |
this._mouseMoveDelegate = function(k) { | |
return f._mouseMove(k); | |
}; | |
this._mouseUpDelegate = function(k) { | |
return f._mouseUp(k); | |
}; | |
b(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); | |
g.preventDefault(); | |
a = true; | |
return true; | |
}, | |
_mouseMove: function(d) { | |
if (b.ui.ie && (!document.documentMode || document.documentMode < 9) && !d.button) { | |
return this._mouseUp(d); | |
} | |
if (this._mouseStarted) { | |
this._mouseDrag(d); | |
return d.preventDefault(); | |
} | |
if (this._mouseDistanceMet(d) && this._mouseDelayMet(d)) { | |
this._mouseStarted = this._mouseStart(this._mouseDownEvent, d) !== false; | |
this._mouseStarted ? this._mouseDrag(d) : this._mouseUp(d); | |
} | |
return !this._mouseStarted; | |
}, | |
_mouseUp: function(d) { | |
b(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); | |
if (this._mouseStarted) { | |
this._mouseStarted = false; | |
if (d.target === this._mouseDownEvent.target) { | |
b.data(d.target, this.widgetName + ".preventClickEvent", true); | |
} | |
this._mouseStop(d); | |
} | |
return false; | |
}, | |
_mouseDistanceMet: function(d) { | |
return Math.max(Math.abs(this._mouseDownEvent.pageX - d.pageX), Math.abs(this._mouseDownEvent.pageY - d.pageY)) >= this.options.distance; | |
}, | |
_mouseDelayMet: function() { | |
return this.mouseDelayMet; | |
}, | |
_mouseStart: function() {}, | |
_mouseDrag: function() {}, | |
_mouseStop: function() {}, | |
_mouseCapture: function() { | |
return true; | |
} | |
}); | |
})(jQuery); | |
(function(f, c) { | |
f.ui = f.ui || {}; | |
var m, n = Math.max, r = Math.abs, p = Math.round, d = /left|center|right/, k = /top|center|bottom/, a = /[\+\-]\d+(\.[\d]+)?%?/, o = /^\w+/, b = /%$/, h = f.fn.position; | |
function q(u, t, s) { | |
return [ parseFloat(u[0]) * (b.test(u[0]) ? t / 100 : 1), parseFloat(u[1]) * (b.test(u[1]) ? s / 100 : 1) ]; | |
} | |
function l(s, t) { | |
return parseInt(f.css(s, t), 10) || 0; | |
} | |
function g(t) { | |
var s = t[0]; | |
if (s.nodeType === 9) { | |
return { | |
width: t.width(), | |
height: t.height(), | |
offset: { | |
top: 0, | |
left: 0 | |
} | |
}; | |
} | |
if (f.isWindow(s)) { | |
return { | |
width: t.width(), | |
height: t.height(), | |
offset: { | |
top: t.scrollTop(), | |
left: t.scrollLeft() | |
} | |
}; | |
} | |
if (s.preventDefault) { | |
return { | |
width: 0, | |
height: 0, | |
offset: { | |
top: s.pageY, | |
left: s.pageX | |
} | |
}; | |
} | |
return { | |
width: t.outerWidth(), | |
height: t.outerHeight(), | |
offset: t.offset() | |
}; | |
} | |
f.position = { | |
scrollbarWidth: function() { | |
if (m !== c) { | |
return m; | |
} | |
var t, s, v = f("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), u = v.children()[0]; | |
f("body").append(v); | |
t = u.offsetWidth; | |
v.css("overflow", "scroll"); | |
s = u.offsetWidth; | |
if (t === s) { | |
s = v[0].clientWidth; | |
} | |
v.remove(); | |
return m = t - s; | |
}, | |
getScrollInfo: function(w) { | |
var v = w.isWindow ? "" : w.element.css("overflow-x"), u = w.isWindow ? "" : w.element.css("overflow-y"), t = v === "scroll" || v === "auto" && w.width < w.element[0].scrollWidth, s = u === "scroll" || u === "auto" && w.height < w.element[0].scrollHeight; | |
return { | |
width: t ? f.position.scrollbarWidth() : 0, | |
height: s ? f.position.scrollbarWidth() : 0 | |
}; | |
}, | |
getWithinInfo: function(t) { | |
var u = f(t || window), s = f.isWindow(u[0]); | |
return { | |
element: u, | |
isWindow: s, | |
offset: u.offset() || { | |
left: 0, | |
top: 0 | |
}, | |
scrollLeft: u.scrollLeft(), | |
scrollTop: u.scrollTop(), | |
width: s ? u.width() : u.outerWidth(), | |
height: s ? u.height() : u.outerHeight() | |
}; | |
} | |
}; | |
f.fn.position = function(C) { | |
if (!C || !C.of) { | |
return h.apply(this, arguments); | |
} | |
C = f.extend({}, C); | |
var D, z, x, B, w, s, y = f(C.of), v = f.position.getWithinInfo(C.within), t = f.position.getScrollInfo(v), A = (C.collision || "flip").split(" "), u = {}; | |
s = g(y); | |
if (y[0].preventDefault) { | |
C.at = "left top"; | |
} | |
z = s.width; | |
x = s.height; | |
B = s.offset; | |
w = f.extend({}, B); | |
f.each([ "my", "at" ], function() { | |
var G = (C[this] || "").split(" "), F, E; | |
if (G.length === 1) { | |
G = d.test(G[0]) ? G.concat([ "center" ]) : k.test(G[0]) ? [ "center" ].concat(G) : [ "center", "center" ]; | |
} | |
G[0] = d.test(G[0]) ? G[0] : "center"; | |
G[1] = k.test(G[1]) ? G[1] : "center"; | |
F = a.exec(G[0]); | |
E = a.exec(G[1]); | |
u[this] = [ F ? F[0] : 0, E ? E[0] : 0 ]; | |
C[this] = [ o.exec(G[0])[0], o.exec(G[1])[0] ]; | |
}); | |
if (A.length === 1) { | |
A[1] = A[0]; | |
} | |
if (C.at[0] === "right") { | |
w.left += z; | |
} else { | |
if (C.at[0] === "center") { | |
w.left += z / 2; | |
} | |
} | |
if (C.at[1] === "bottom") { | |
w.top += x; | |
} else { | |
if (C.at[1] === "center") { | |
w.top += x / 2; | |
} | |
} | |
D = q(u.at, z, x); | |
w.left += D[0]; | |
w.top += D[1]; | |
return this.each(function() { | |
var F, O, H = f(this), J = H.outerWidth(), G = H.outerHeight(), I = l(this, "marginLeft"), E = l(this, "marginTop"), N = J + I + l(this, "marginRight") + t.width, M = G + E + l(this, "marginBottom") + t.height, K = f.extend({}, w), L = q(u.my, H.outerWidth(), H.outerHeight()); | |
if (C.my[0] === "right") { | |
K.left -= J; | |
} else { | |
if (C.my[0] === "center") { | |
K.left -= J / 2; | |
} | |
} | |
if (C.my[1] === "bottom") { | |
K.top -= G; | |
} else { | |
if (C.my[1] === "center") { | |
K.top -= G / 2; | |
} | |
} | |
K.left += L[0]; | |
K.top += L[1]; | |
if (!f.support.offsetFractions) { | |
K.left = p(K.left); | |
K.top = p(K.top); | |
} | |
F = { | |
marginLeft: I, | |
marginTop: E | |
}; | |
f.each([ "left", "top" ], function(Q, P) { | |
if (f.ui.position[A[Q]]) { | |
f.ui.position[A[Q]][P](K, { | |
targetWidth: z, | |
targetHeight: x, | |
elemWidth: J, | |
elemHeight: G, | |
collisionPosition: F, | |
collisionWidth: N, | |
collisionHeight: M, | |
offset: [ D[0] + L[0], D[1] + L[1] ], | |
my: C.my, | |
at: C.at, | |
within: v, | |
elem: H | |
}); | |
} | |
}); | |
if (C.using) { | |
O = function(S) { | |
var U = B.left - K.left, R = U + z - J, T = B.top - K.top, Q = T + x - G, P = { | |
target: { | |
element: y, | |
left: B.left, | |
top: B.top, | |
width: z, | |
height: x | |
}, | |
element: { | |
element: H, | |
left: K.left, | |
top: K.top, | |
width: J, | |
height: G | |
}, | |
horizontal: R < 0 ? "left" : U > 0 ? "right" : "center", | |
vertical: Q < 0 ? "top" : T > 0 ? "bottom" : "middle" | |
}; | |
if (z < J && r(U + R) < z) { | |
P.horizontal = "center"; | |
} | |
if (x < G && r(T + Q) < x) { | |
P.vertical = "middle"; | |
} | |
if (n(r(U), r(R)) > n(r(T), r(Q))) { | |
P.important = "horizontal"; | |
} else { | |
P.important = "vertical"; | |
} | |
C.using.call(this, S, P); | |
}; | |
} | |
H.offset(f.extend(K, { | |
using: O | |
})); | |
}); | |
}; | |
f.ui.position = { | |
fit: { | |
left: function(w, v) { | |
var u = v.within, y = u.isWindow ? u.scrollLeft : u.offset.left, A = u.width, x = w.left - v.collisionPosition.marginLeft, z = y - x, t = x + v.collisionWidth - A - y, s; | |
if (v.collisionWidth > A) { | |
if (z > 0 && t <= 0) { | |
s = w.left + z + v.collisionWidth - A - y; | |
w.left += z - s; | |
} else { | |
if (t > 0 && z <= 0) { | |
w.left = y; | |
} else { | |
if (z > t) { | |
w.left = y + A - v.collisionWidth; | |
} else { | |
w.left = y; | |
} | |
} | |
} | |
} else { | |
if (z > 0) { | |
w.left += z; | |
} else { | |
if (t > 0) { | |
w.left -= t; | |
} else { | |
w.left = n(w.left - x, w.left); | |
} | |
} | |
} | |
}, | |
top: function(v, u) { | |
var t = u.within, z = t.isWindow ? t.scrollTop : t.offset.top, A = u.within.height, x = v.top - u.collisionPosition.marginTop, y = z - x, w = x + u.collisionHeight - A - z, s; | |
if (u.collisionHeight > A) { | |
if (y > 0 && w <= 0) { | |
s = v.top + y + u.collisionHeight - A - z; | |
v.top += y - s; | |
} else { | |
if (w > 0 && y <= 0) { | |
v.top = z; | |
} else { | |
if (y > w) { | |
v.top = z + A - u.collisionHeight; | |
} else { | |
v.top = z; | |
} | |
} | |
} | |
} else { | |
if (y > 0) { | |
v.top += y; | |
} else { | |
if (w > 0) { | |
v.top -= w; | |
} else { | |
v.top = n(v.top - x, v.top); | |
} | |
} | |
} | |
} | |
}, | |
flip: { | |
left: function(y, x) { | |
var w = x.within, C = w.offset.left + w.scrollLeft, F = w.width, u = w.isWindow ? w.scrollLeft : w.offset.left, z = y.left - x.collisionPosition.marginLeft, D = z - u, t = z + x.collisionWidth - F - u, B = x.my[0] === "left" ? -x.elemWidth : x.my[0] === "right" ? x.elemWidth : 0, E = x.at[0] === "left" ? x.targetWidth : x.at[0] === "right" ? -x.targetWidth : 0, v = -2 * x.offset[0], s, A; | |
if (D < 0) { | |
s = y.left + B + E + v + x.collisionWidth - F - C; | |
if (s < 0 || s < r(D)) { | |
y.left += B + E + v; | |
} | |
} else { | |
if (t > 0) { | |
A = y.left - x.collisionPosition.marginLeft + B + E + v - u; | |
if (A > 0 || r(A) < t) { | |
y.left += B + E + v; | |
} | |
} | |
} | |
}, | |
top: function(x, w) { | |
var v = w.within, E = v.offset.top + v.scrollTop, F = v.height, s = v.isWindow ? v.scrollTop : v.offset.top, z = x.top - w.collisionPosition.marginTop, B = z - s, y = z + w.collisionHeight - F - s, C = w.my[1] === "top", A = C ? -w.elemHeight : w.my[1] === "bottom" ? w.elemHeight : 0, G = w.at[1] === "top" ? w.targetHeight : w.at[1] === "bottom" ? -w.targetHeight : 0, u = -2 * w.offset[1], D, t; | |
if (B < 0) { | |
t = x.top + A + G + u + w.collisionHeight - F - E; | |
if (x.top + A + G + u > B && (t < 0 || t < r(B))) { | |
x.top += A + G + u; | |
} | |
} else { | |
if (y > 0) { | |
D = x.top - w.collisionPosition.marginTop + A + G + u - s; | |
if (x.top + A + G + u > y && (D > 0 || r(D) < y)) { | |
x.top += A + G + u; | |
} | |
} | |
} | |
} | |
}, | |
flipfit: { | |
left: function() { | |
f.ui.position.flip.left.apply(this, arguments); | |
f.ui.position.fit.left.apply(this, arguments); | |
}, | |
top: function() { | |
f.ui.position.flip.top.apply(this, arguments); | |
f.ui.position.fit.top.apply(this, arguments); | |
} | |
} | |
}; | |
(function() { | |
var w, y, t, v, u, s = document.getElementsByTagName("body")[0], x = document.createElement("div"); | |
w = document.createElement(s ? "div" : "body"); | |
t = { | |
visibility: "hidden", | |
width: 0, | |
height: 0, | |
border: 0, | |
margin: 0, | |
background: "none" | |
}; | |
if (s) { | |
f.extend(t, { | |
position: "absolute", | |
left: "-1000px", | |
top: "-1000px" | |
}); | |
} | |
for (u in t) { | |
w.style[u] = t[u]; | |
} | |
w.appendChild(x); | |
y = s || document.documentElement; | |
y.insertBefore(w, y.firstChild); | |
x.style.cssText = "position: absolute; left: 10.7432222px;"; | |
v = f(x).offset().left; | |
f.support.offsetFractions = v > 10 && v < 11; | |
w.innerHTML = ""; | |
y.removeChild(w); | |
})(); | |
})(jQuery); | |
(function(a, b) { | |
a.widget("ui.draggable", a.ui.mouse, { | |
version: "1.10.1", | |
widgetEventPrefix: "drag", | |
options: { | |
addClasses: true, | |
appendTo: "parent", | |
axis: false, | |
connectToSortable: false, | |
containment: false, | |
cursor: "auto", | |
cursorAt: false, | |
grid: false, | |
handle: false, | |
helper: "original", | |
iframeFix: false, | |
opacity: false, | |
refreshPositions: false, | |
revert: false, | |
revertDuration: 500, | |
scope: "default", | |
scroll: true, | |
scrollSensitivity: 20, | |
scrollSpeed: 20, | |
snap: false, | |
snapMode: "both", | |
snapTolerance: 20, | |
stack: false, | |
zIndex: false, | |
drag: null, | |
start: null, | |
stop: null | |
}, | |
_create: function() { | |
if (this.options.helper === "original" && !/^(?:r|a|f)/.test(this.element.css("position"))) { | |
this.element[0].style.position = "relative"; | |
} | |
if (this.options.addClasses) { | |
this.element.addClass("ui-draggable"); | |
} | |
if (this.options.disabled) { | |
this.element.addClass("ui-draggable-disabled"); | |
} | |
this._mouseInit(); | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); | |
this._mouseDestroy(); | |
}, | |
_mouseCapture: function(c) { | |
var d = this.options; | |
if (this.helper || d.disabled || a(c.target).closest(".ui-resizable-handle").length > 0) { | |
return false; | |
} | |
this.handle = this._getHandle(c); | |
if (!this.handle) { | |
return false; | |
} | |
a(d.iframeFix === true ? "iframe" : d.iframeFix).each(function() { | |
a("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({ | |
width: this.offsetWidth + "px", | |
height: this.offsetHeight + "px", | |
position: "absolute", | |
opacity: "0.001", | |
zIndex: 1e3 | |
}).css(a(this).offset()).appendTo("body"); | |
}); | |
return true; | |
}, | |
_mouseStart: function(c) { | |
var d = this.options; | |
this.helper = this._createHelper(c); | |
this.helper.addClass("ui-draggable-dragging"); | |
this._cacheHelperProportions(); | |
if (a.ui.ddmanager) { | |
a.ui.ddmanager.current = this; | |
} | |
this._cacheMargins(); | |
this.cssPosition = this.helper.css("position"); | |
this.scrollParent = this.helper.scrollParent(); | |
this.offset = this.positionAbs = this.element.offset(); | |
this.offset = { | |
top: this.offset.top - this.margins.top, | |
left: this.offset.left - this.margins.left | |
}; | |
a.extend(this.offset, { | |
click: { | |
left: c.pageX - this.offset.left, | |
top: c.pageY - this.offset.top | |
}, | |
parent: this._getParentOffset(), | |
relative: this._getRelativeOffset() | |
}); | |
this.originalPosition = this.position = this._generatePosition(c); | |
this.originalPageX = c.pageX; | |
this.originalPageY = c.pageY; | |
d.cursorAt && this._adjustOffsetFromHelper(d.cursorAt); | |
if (d.containment) { | |
this._setContainment(); | |
} | |
if (this._trigger("start", c) === false) { | |
this._clear(); | |
return false; | |
} | |
this._cacheHelperProportions(); | |
if (a.ui.ddmanager && !d.dropBehaviour) { | |
a.ui.ddmanager.prepareOffsets(this, c); | |
} | |
this._mouseDrag(c, true); | |
if (a.ui.ddmanager) { | |
a.ui.ddmanager.dragStart(this, c); | |
} | |
return true; | |
}, | |
_mouseDrag: function(c, f) { | |
this.position = this._generatePosition(c); | |
this.positionAbs = this._convertPositionTo("absolute"); | |
if (!f) { | |
var d = this._uiHash(); | |
if (this._trigger("drag", c, d) === false) { | |
this._mouseUp({}); | |
return false; | |
} | |
this.position = d.position; | |
} | |
if (!this.options.axis || this.options.axis !== "y") { | |
this.helper[0].style.left = this.position.left + "px"; | |
} | |
if (!this.options.axis || this.options.axis !== "x") { | |
this.helper[0].style.top = this.position.top + "px"; | |
} | |
if (a.ui.ddmanager) { | |
a.ui.ddmanager.drag(this, c); | |
} | |
return false; | |
}, | |
_mouseStop: function(f) { | |
var c, d = this, h = false, g = false; | |
if (a.ui.ddmanager && !this.options.dropBehaviour) { | |
g = a.ui.ddmanager.drop(this, f); | |
} | |
if (this.dropped) { | |
g = this.dropped; | |
this.dropped = false; | |
} | |
c = this.element[0]; | |
while (c && (c = c.parentNode)) { | |
if (c === document) { | |
h = true; | |
} | |
} | |
if (!h && this.options.helper === "original") { | |
return false; | |
} | |
if (this.options.revert === "invalid" && !g || this.options.revert === "valid" && g || this.options.revert === true || a.isFunction(this.options.revert) && this.options.revert.call(this.element, g)) { | |
a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { | |
if (d._trigger("stop", f) !== false) { | |
d._clear(); | |
} | |
}); | |
} else { | |
if (this._trigger("stop", f) !== false) { | |
this._clear(); | |
} | |
} | |
return false; | |
}, | |
_mouseUp: function(c) { | |
a("div.ui-draggable-iframeFix").each(function() { | |
this.parentNode.removeChild(this); | |
}); | |
if (a.ui.ddmanager) { | |
a.ui.ddmanager.dragStop(this, c); | |
} | |
return a.ui.mouse.prototype._mouseUp.call(this, c); | |
}, | |
cancel: function() { | |
if (this.helper.is(".ui-draggable-dragging")) { | |
this._mouseUp({}); | |
} else { | |
this._clear(); | |
} | |
return this; | |
}, | |
_getHandle: function(c) { | |
var d = !this.options.handle || !a(this.options.handle, this.element).length ? true : false; | |
a(this.options.handle, this.element).find("*").addBack().each(function() { | |
if (this === c.target) { | |
d = true; | |
} | |
}); | |
return d; | |
}, | |
_createHelper: function(d) { | |
var f = this.options, c = a.isFunction(f.helper) ? a(f.helper.apply(this.element[0], [ d ])) : f.helper === "clone" ? this.element.clone().removeAttr("id") : this.element; | |
if (!c.parents("body").length) { | |
c.appendTo(f.appendTo === "parent" ? this.element[0].parentNode : f.appendTo); | |
} | |
if (c[0] !== this.element[0] && !/(fixed|absolute)/.test(c.css("position"))) { | |
c.css("position", "absolute"); | |
} | |
return c; | |
}, | |
_adjustOffsetFromHelper: function(c) { | |
if (typeof c === "string") { | |
c = c.split(" "); | |
} | |
if (a.isArray(c)) { | |
c = { | |
left: +c[0], | |
top: +c[1] || 0 | |
}; | |
} | |
if ("left" in c) { | |
this.offset.click.left = c.left + this.margins.left; | |
} | |
if ("right" in c) { | |
this.offset.click.left = this.helperProportions.width - c.right + this.margins.left; | |
} | |
if ("top" in c) { | |
this.offset.click.top = c.top + this.margins.top; | |
} | |
if ("bottom" in c) { | |
this.offset.click.top = this.helperProportions.height - c.bottom + this.margins.top; | |
} | |
}, | |
_getParentOffset: function() { | |
this.offsetParent = this.helper.offsetParent(); | |
var c = this.offsetParent.offset(); | |
if (this.cssPosition === "absolute" && this.scrollParent[0] !== document && a.contains(this.scrollParent[0], this.offsetParent[0])) { | |
c.left += this.scrollParent.scrollLeft(); | |
c.top += this.scrollParent.scrollTop(); | |
} | |
if (this.offsetParent[0] === document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && a.ui.ie) { | |
c = { | |
top: 0, | |
left: 0 | |
}; | |
} | |
return { | |
top: c.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
left: c.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
}; | |
}, | |
_getRelativeOffset: function() { | |
if (this.cssPosition === "relative") { | |
var c = this.element.position(); | |
return { | |
top: c.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), | |
left: c.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() | |
}; | |
} else { | |
return { | |
top: 0, | |
left: 0 | |
}; | |
} | |
}, | |
_cacheMargins: function() { | |
this.margins = { | |
left: parseInt(this.element.css("marginLeft"), 10) || 0, | |
top: parseInt(this.element.css("marginTop"), 10) || 0, | |
right: parseInt(this.element.css("marginRight"), 10) || 0, | |
bottom: parseInt(this.element.css("marginBottom"), 10) || 0 | |
}; | |
}, | |
_cacheHelperProportions: function() { | |
this.helperProportions = { | |
width: this.helper.outerWidth(), | |
height: this.helper.outerHeight() | |
}; | |
}, | |
_setContainment: function() { | |
var f, h, d, g = this.options; | |
if (g.containment === "parent") { | |
g.containment = this.helper[0].parentNode; | |
} | |
if (g.containment === "document" || g.containment === "window") { | |
this.containment = [ g.containment === "document" ? 0 : a(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, g.containment === "document" ? 0 : a(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, (g.containment === "document" ? 0 : a(window).scrollLeft()) + a(g.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (g.containment === "document" ? 0 : a(window).scrollTop()) + (a(g.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; | |
} | |
if (!/^(document|window|parent)$/.test(g.containment) && g.containment.constructor !== Array) { | |
h = a(g.containment); | |
d = h[0]; | |
if (!d) { | |
return; | |
} | |
f = a(d).css("overflow") !== "hidden"; | |
this.containment = [ (parseInt(a(d).css("borderLeftWidth"), 10) || 0) + (parseInt(a(d).css("paddingLeft"), 10) || 0), (parseInt(a(d).css("borderTopWidth"), 10) || 0) + (parseInt(a(d).css("paddingTop"), 10) || 0), (f ? Math.max(d.scrollWidth, d.offsetWidth) : d.offsetWidth) - (parseInt(a(d).css("borderLeftWidth"), 10) || 0) - (parseInt(a(d).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (f ? Math.max(d.scrollHeight, d.offsetHeight) : d.offsetHeight) - (parseInt(a(d).css("borderTopWidth"), 10) || 0) - (parseInt(a(d).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom ]; | |
this.relative_container = h; | |
} else { | |
if (g.containment.constructor === Array) { | |
this.containment = g.containment; | |
} | |
} | |
}, | |
_convertPositionTo: function(g, k) { | |
if (!k) { | |
k = this.position; | |
} | |
var f = g === "absolute" ? 1 : -1, c = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && a.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, h = /(html|body)/i.test(c[0].tagName); | |
return { | |
top: k.top + this.offset.relative.top * f + this.offset.parent.top * f - (this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : h ? 0 : c.scrollTop()) * f, | |
left: k.left + this.offset.relative.left * f + this.offset.parent.left * f - (this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : h ? 0 : c.scrollLeft()) * f | |
}; | |
}, | |
_generatePosition: function(d) { | |
var c, m, n, g, f = this.options, p = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && a.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, l = /(html|body)/i.test(p[0].tagName), k = d.pageX, h = d.pageY; | |
if (this.originalPosition) { | |
if (this.containment) { | |
if (this.relative_container) { | |
m = this.relative_container.offset(); | |
c = [ this.containment[0] + m.left, this.containment[1] + m.top, this.containment[2] + m.left, this.containment[3] + m.top ]; | |
} else { | |
c = this.containment; | |
} | |
if (d.pageX - this.offset.click.left < c[0]) { | |
k = c[0] + this.offset.click.left; | |
} | |
if (d.pageY - this.offset.click.top < c[1]) { | |
h = c[1] + this.offset.click.top; | |
} | |
if (d.pageX - this.offset.click.left > c[2]) { | |
k = c[2] + this.offset.click.left; | |
} | |
if (d.pageY - this.offset.click.top > c[3]) { | |
h = c[3] + this.offset.click.top; | |
} | |
} | |
if (f.grid) { | |
n = f.grid[1] ? this.originalPageY + Math.round((h - this.originalPageY) / f.grid[1]) * f.grid[1] : this.originalPageY; | |
h = c ? n - this.offset.click.top >= c[1] || n - this.offset.click.top > c[3] ? n : n - this.offset.click.top >= c[1] ? n - f.grid[1] : n + f.grid[1] : n; | |
g = f.grid[0] ? this.originalPageX + Math.round((k - this.originalPageX) / f.grid[0]) * f.grid[0] : this.originalPageX; | |
k = c ? g - this.offset.click.left >= c[0] || g - this.offset.click.left > c[2] ? g : g - this.offset.click.left >= c[0] ? g - f.grid[0] : g + f.grid[0] : g; | |
} | |
} | |
return { | |
top: h - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : l ? 0 : p.scrollTop()), | |
left: k - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : l ? 0 : p.scrollLeft()) | |
}; | |
}, | |
_clear: function() { | |
this.helper.removeClass("ui-draggable-dragging"); | |
if (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) { | |
this.helper.remove(); | |
} | |
this.helper = null; | |
this.cancelHelperRemoval = false; | |
}, | |
_trigger: function(c, d, f) { | |
f = f || this._uiHash(); | |
a.ui.plugin.call(this, c, [ d, f ]); | |
if (c === "drag") { | |
this.positionAbs = this._convertPositionTo("absolute"); | |
} | |
return a.Widget.prototype._trigger.call(this, c, d, f); | |
}, | |
plugins: {}, | |
_uiHash: function() { | |
return { | |
helper: this.helper, | |
position: this.position, | |
originalPosition: this.originalPosition, | |
offset: this.positionAbs | |
}; | |
} | |
}); | |
a.ui.plugin.add("draggable", "connectToSortable", { | |
start: function(d, g) { | |
var f = a(this).data("ui-draggable"), h = f.options, c = a.extend({}, g, { | |
item: f.element | |
}); | |
f.sortables = []; | |
a(h.connectToSortable).each(function() { | |
var k = a.data(this, "ui-sortable"); | |
if (k && !k.options.disabled) { | |
f.sortables.push({ | |
instance: k, | |
shouldRevert: k.options.revert | |
}); | |
k.refreshPositions(); | |
k._trigger("activate", d, c); | |
} | |
}); | |
}, | |
stop: function(d, g) { | |
var f = a(this).data("ui-draggable"), c = a.extend({}, g, { | |
item: f.element | |
}); | |
a.each(f.sortables, function() { | |
if (this.instance.isOver) { | |
this.instance.isOver = 0; | |
f.cancelHelperRemoval = true; | |
this.instance.cancelHelperRemoval = false; | |
if (this.shouldRevert) { | |
this.instance.options.revert = true; | |
} | |
this.instance._mouseStop(d); | |
this.instance.options.helper = this.instance.options._helper; | |
if (f.options.helper === "original") { | |
this.instance.currentItem.css({ | |
top: "auto", | |
left: "auto" | |
}); | |
} | |
} else { | |
this.instance.cancelHelperRemoval = false; | |
this.instance._trigger("deactivate", d, c); | |
} | |
}); | |
}, | |
drag: function(d, g) { | |
var f = a(this).data("ui-draggable"), c = this; | |
a.each(f.sortables, function() { | |
var h = false, k = this; | |
this.instance.positionAbs = f.positionAbs; | |
this.instance.helperProportions = f.helperProportions; | |
this.instance.offset.click = f.offset.click; | |
if (this.instance._intersectsWith(this.instance.containerCache)) { | |
h = true; | |
a.each(f.sortables, function() { | |
this.instance.positionAbs = f.positionAbs; | |
this.instance.helperProportions = f.helperProportions; | |
this.instance.offset.click = f.offset.click; | |
if (this !== k && this.instance._intersectsWith(this.instance.containerCache) && a.contains(k.instance.element[0], this.instance.element[0])) { | |
h = false; | |
} | |
return h; | |
}); | |
} | |
if (h) { | |
if (!this.instance.isOver) { | |
this.instance.isOver = 1; | |
this.instance.currentItem = a(c).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true); | |
this.instance.options._helper = this.instance.options.helper; | |
this.instance.options.helper = function() { | |
return g.helper[0]; | |
}; | |
d.target = this.instance.currentItem[0]; | |
this.instance._mouseCapture(d, true); | |
this.instance._mouseStart(d, true, true); | |
this.instance.offset.click.top = f.offset.click.top; | |
this.instance.offset.click.left = f.offset.click.left; | |
this.instance.offset.parent.left -= f.offset.parent.left - this.instance.offset.parent.left; | |
this.instance.offset.parent.top -= f.offset.parent.top - this.instance.offset.parent.top; | |
f._trigger("toSortable", d); | |
f.dropped = this.instance.element; | |
f.currentItem = f.element; | |
this.instance.fromOutside = f; | |
} | |
if (this.instance.currentItem) { | |
this.instance._mouseDrag(d); | |
} | |
} else { | |
if (this.instance.isOver) { | |
this.instance.isOver = 0; | |
this.instance.cancelHelperRemoval = true; | |
this.instance.options.revert = false; | |
this.instance._trigger("out", d, this.instance._uiHash(this.instance)); | |
this.instance._mouseStop(d, true); | |
this.instance.options.helper = this.instance.options._helper; | |
this.instance.currentItem.remove(); | |
if (this.instance.placeholder) { | |
this.instance.placeholder.remove(); | |
} | |
f._trigger("fromSortable", d); | |
f.dropped = false; | |
} | |
} | |
}); | |
} | |
}); | |
a.ui.plugin.add("draggable", "cursor", { | |
start: function() { | |
var c = a("body"), d = a(this).data("ui-draggable").options; | |
if (c.css("cursor")) { | |
d._cursor = c.css("cursor"); | |
} | |
c.css("cursor", d.cursor); | |
}, | |
stop: function() { | |
var c = a(this).data("ui-draggable").options; | |
if (c._cursor) { | |
a("body").css("cursor", c._cursor); | |
} | |
} | |
}); | |
a.ui.plugin.add("draggable", "opacity", { | |
start: function(d, f) { | |
var c = a(f.helper), g = a(this).data("ui-draggable").options; | |
if (c.css("opacity")) { | |
g._opacity = c.css("opacity"); | |
} | |
c.css("opacity", g.opacity); | |
}, | |
stop: function(c, d) { | |
var f = a(this).data("ui-draggable").options; | |
if (f._opacity) { | |
a(d.helper).css("opacity", f._opacity); | |
} | |
} | |
}); | |
a.ui.plugin.add("draggable", "scroll", { | |
start: function() { | |
var c = a(this).data("ui-draggable"); | |
if (c.scrollParent[0] !== document && c.scrollParent[0].tagName !== "HTML") { | |
c.overflowOffset = c.scrollParent.offset(); | |
} | |
}, | |
drag: function(f) { | |
var d = a(this).data("ui-draggable"), g = d.options, c = false; | |
if (d.scrollParent[0] !== document && d.scrollParent[0].tagName !== "HTML") { | |
if (!g.axis || g.axis !== "x") { | |
if (d.overflowOffset.top + d.scrollParent[0].offsetHeight - f.pageY < g.scrollSensitivity) { | |
d.scrollParent[0].scrollTop = c = d.scrollParent[0].scrollTop + g.scrollSpeed; | |
} else { | |
if (f.pageY - d.overflowOffset.top < g.scrollSensitivity) { | |
d.scrollParent[0].scrollTop = c = d.scrollParent[0].scrollTop - g.scrollSpeed; | |
} | |
} | |
} | |
if (!g.axis || g.axis !== "y") { | |
if (d.overflowOffset.left + d.scrollParent[0].offsetWidth - f.pageX < g.scrollSensitivity) { | |
d.scrollParent[0].scrollLeft = c = d.scrollParent[0].scrollLeft + g.scrollSpeed; | |
} else { | |
if (f.pageX - d.overflowOffset.left < g.scrollSensitivity) { | |
d.scrollParent[0].scrollLeft = c = d.scrollParent[0].scrollLeft - g.scrollSpeed; | |
} | |
} | |
} | |
} else { | |
if (!g.axis || g.axis !== "x") { | |
if (f.pageY - a(document).scrollTop() < g.scrollSensitivity) { | |
c = a(document).scrollTop(a(document).scrollTop() - g.scrollSpeed); | |
} else { | |
if (a(window).height() - (f.pageY - a(document).scrollTop()) < g.scrollSensitivity) { | |
c = a(document).scrollTop(a(document).scrollTop() + g.scrollSpeed); | |
} | |
} | |
} | |
if (!g.axis || g.axis !== "y") { | |
if (f.pageX - a(document).scrollLeft() < g.scrollSensitivity) { | |
c = a(document).scrollLeft(a(document).scrollLeft() - g.scrollSpeed); | |
} else { | |
if (a(window).width() - (f.pageX - a(document).scrollLeft()) < g.scrollSensitivity) { | |
c = a(document).scrollLeft(a(document).scrollLeft() + g.scrollSpeed); | |
} | |
} | |
} | |
} | |
if (c !== false && a.ui.ddmanager && !g.dropBehaviour) { | |
a.ui.ddmanager.prepareOffsets(d, f); | |
} | |
} | |
}); | |
a.ui.plugin.add("draggable", "snap", { | |
start: function() { | |
var c = a(this).data("ui-draggable"), d = c.options; | |
c.snapElements = []; | |
a(d.snap.constructor !== String ? d.snap.items || ":data(ui-draggable)" : d.snap).each(function() { | |
var g = a(this), f = g.offset(); | |
if (this !== c.element[0]) { | |
c.snapElements.push({ | |
item: this, | |
width: g.outerWidth(), | |
height: g.outerHeight(), | |
top: f.top, | |
left: f.left | |
}); | |
} | |
}); | |
}, | |
drag: function(w, s) { | |
var c, B, m, n, v, q, p, C, x, k, h = a(this).data("ui-draggable"), u = h.options, A = u.snapTolerance, z = s.offset.left, y = z + h.helperProportions.width, g = s.offset.top, f = g + h.helperProportions.height; | |
for (x = h.snapElements.length - 1; x >= 0; x--) { | |
v = h.snapElements[x].left; | |
q = v + h.snapElements[x].width; | |
p = h.snapElements[x].top; | |
C = p + h.snapElements[x].height; | |
if (!(v - A < z && z < q + A && p - A < g && g < C + A || v - A < z && z < q + A && p - A < f && f < C + A || v - A < y && y < q + A && p - A < g && g < C + A || v - A < y && y < q + A && p - A < f && f < C + A)) { | |
if (h.snapElements[x].snapping) { | |
h.options.snap.release && h.options.snap.release.call(h.element, w, a.extend(h._uiHash(), { | |
snapItem: h.snapElements[x].item | |
})); | |
} | |
h.snapElements[x].snapping = false; | |
continue; | |
} | |
if (u.snapMode !== "inner") { | |
c = Math.abs(p - f) <= A; | |
B = Math.abs(C - g) <= A; | |
m = Math.abs(v - y) <= A; | |
n = Math.abs(q - z) <= A; | |
if (c) { | |
s.position.top = h._convertPositionTo("relative", { | |
top: p - h.helperProportions.height, | |
left: 0 | |
}).top - h.margins.top; | |
} | |
if (B) { | |
s.position.top = h._convertPositionTo("relative", { | |
top: C, | |
left: 0 | |
}).top - h.margins.top; | |
} | |
if (m) { | |
s.position.left = h._convertPositionTo("relative", { | |
top: 0, | |
left: v - h.helperProportions.width | |
}).left - h.margins.left; | |
} | |
if (n) { | |
s.position.left = h._convertPositionTo("relative", { | |
top: 0, | |
left: q | |
}).left - h.margins.left; | |
} | |
} | |
k = c || B || m || n; | |
if (u.snapMode !== "outer") { | |
c = Math.abs(p - g) <= A; | |
B = Math.abs(C - f) <= A; | |
m = Math.abs(v - z) <= A; | |
n = Math.abs(q - y) <= A; | |
if (c) { | |
s.position.top = h._convertPositionTo("relative", { | |
top: p, | |
left: 0 | |
}).top - h.margins.top; | |
} | |
if (B) { | |
s.position.top = h._convertPositionTo("relative", { | |
top: C - h.helperProportions.height, | |
left: 0 | |
}).top - h.margins.top; | |
} | |
if (m) { | |
s.position.left = h._convertPositionTo("relative", { | |
top: 0, | |
left: v | |
}).left - h.margins.left; | |
} | |
if (n) { | |
s.position.left = h._convertPositionTo("relative", { | |
top: 0, | |
left: q - h.helperProportions.width | |
}).left - h.margins.left; | |
} | |
} | |
if (!h.snapElements[x].snapping && (c || B || m || n || k)) { | |
h.options.snap.snap && h.options.snap.snap.call(h.element, w, a.extend(h._uiHash(), { | |
snapItem: h.snapElements[x].item | |
})); | |
} | |
h.snapElements[x].snapping = c || B || m || n || k; | |
} | |
} | |
}); | |
a.ui.plugin.add("draggable", "stack", { | |
start: function() { | |
var c, f = this.data("ui-draggable").options, d = a.makeArray(a(f.stack)).sort(function(h, g) { | |
return (parseInt(a(h).css("zIndex"), 10) || 0) - (parseInt(a(g).css("zIndex"), 10) || 0); | |
}); | |
if (!d.length) { | |
return; | |
} | |
c = parseInt(a(d[0]).css("zIndex"), 10) || 0; | |
a(d).each(function(g) { | |
a(this).css("zIndex", c + g); | |
}); | |
this.css("zIndex", c + d.length); | |
} | |
}); | |
a.ui.plugin.add("draggable", "zIndex", { | |
start: function(d, f) { | |
var c = a(f.helper), g = a(this).data("ui-draggable").options; | |
if (c.css("zIndex")) { | |
g._zIndex = c.css("zIndex"); | |
} | |
c.css("zIndex", g.zIndex); | |
}, | |
stop: function(c, d) { | |
var f = a(this).data("ui-draggable").options; | |
if (f._zIndex) { | |
a(d.helper).css("zIndex", f._zIndex); | |
} | |
} | |
}); | |
})(jQuery); | |
(function(c, d) { | |
function b(f) { | |
return parseInt(f, 10) || 0; | |
} | |
function a(f) { | |
return !isNaN(parseInt(f, 10)); | |
} | |
c.widget("ui.resizable", c.ui.mouse, { | |
version: "1.10.1", | |
widgetEventPrefix: "resize", | |
options: { | |
alsoResize: false, | |
animate: false, | |
animateDuration: "slow", | |
animateEasing: "swing", | |
aspectRatio: false, | |
autoHide: false, | |
containment: false, | |
ghost: false, | |
grid: false, | |
handles: "e,s,se", | |
helper: false, | |
maxHeight: null, | |
maxWidth: null, | |
minHeight: 10, | |
minWidth: 10, | |
zIndex: 90, | |
resize: null, | |
start: null, | |
stop: null | |
}, | |
_create: function() { | |
var p, g, l, h, f, k = this, m = this.options; | |
this.element.addClass("ui-resizable"); | |
c.extend(this, { | |
_aspectRatio: !!m.aspectRatio, | |
aspectRatio: m.aspectRatio, | |
originalElement: this.element, | |
_proportionallyResizeElements: [], | |
_helper: m.helper || m.ghost || m.animate ? m.helper || "ui-resizable-helper" : null | |
}); | |
if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { | |
this.element.wrap(c("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ | |
position: this.element.css("position"), | |
width: this.element.outerWidth(), | |
height: this.element.outerHeight(), | |
top: this.element.css("top"), | |
left: this.element.css("left") | |
})); | |
this.element = this.element.parent().data("ui-resizable", this.element.data("ui-resizable")); | |
this.elementIsWrapper = true; | |
this.element.css({ | |
marginLeft: this.originalElement.css("marginLeft"), | |
marginTop: this.originalElement.css("marginTop"), | |
marginRight: this.originalElement.css("marginRight"), | |
marginBottom: this.originalElement.css("marginBottom") | |
}); | |
this.originalElement.css({ | |
marginLeft: 0, | |
marginTop: 0, | |
marginRight: 0, | |
marginBottom: 0 | |
}); | |
this.originalResizeStyle = this.originalElement.css("resize"); | |
this.originalElement.css("resize", "none"); | |
this._proportionallyResizeElements.push(this.originalElement.css({ | |
position: "static", | |
zoom: 1, | |
display: "block" | |
})); | |
this.originalElement.css({ | |
margin: this.originalElement.css("margin") | |
}); | |
this._proportionallyResize(); | |
} | |
this.handles = m.handles || (!c(".ui-resizable-handle", this.element).length ? "e,s,se" : { | |
n: ".ui-resizable-n", | |
e: ".ui-resizable-e", | |
s: ".ui-resizable-s", | |
w: ".ui-resizable-w", | |
se: ".ui-resizable-se", | |
sw: ".ui-resizable-sw", | |
ne: ".ui-resizable-ne", | |
nw: ".ui-resizable-nw" | |
}); | |
if (this.handles.constructor === String) { | |
if (this.handles === "all") { | |
this.handles = "n,e,s,w,se,sw,ne,nw"; | |
} | |
p = this.handles.split(","); | |
this.handles = {}; | |
for (g = 0; g < p.length; g++) { | |
l = c.trim(p[g]); | |
f = "ui-resizable-" + l; | |
h = c("<div class='ui-resizable-handle " + f + "'></div>"); | |
h.css({ | |
zIndex: m.zIndex | |
}); | |
if ("se" === l) { | |
h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); | |
} | |
this.handles[l] = ".ui-resizable-" + l; | |
this.element.append(h); | |
} | |
} | |
this._renderAxis = function(s) { | |
var o, q, n, r; | |
s = s || this.element; | |
for (o in this.handles) { | |
if (this.handles[o].constructor === String) { | |
this.handles[o] = c(this.handles[o], this.element).show(); | |
} | |
if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { | |
q = c(this.handles[o], this.element); | |
r = /sw|ne|nw|se|n|s/.test(o) ? q.outerHeight() : q.outerWidth(); | |
n = [ "padding", /ne|nw|n/.test(o) ? "Top" : /se|sw|s/.test(o) ? "Bottom" : /^e$/.test(o) ? "Right" : "Left" ].join(""); | |
s.css(n, r); | |
this._proportionallyResize(); | |
} | |
if (!c(this.handles[o]).length) { | |
continue; | |
} | |
} | |
}; | |
this._renderAxis(this.element); | |
this._handles = c(".ui-resizable-handle", this.element).disableSelection(); | |
this._handles.mouseover(function() { | |
if (!k.resizing) { | |
if (this.className) { | |
h = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); | |
} | |
k.axis = h && h[1] ? h[1] : "se"; | |
} | |
}); | |
if (m.autoHide) { | |
this._handles.hide(); | |
c(this.element).addClass("ui-resizable-autohide").mouseenter(function() { | |
if (m.disabled) { | |
return; | |
} | |
c(this).removeClass("ui-resizable-autohide"); | |
k._handles.show(); | |
}).mouseleave(function() { | |
if (m.disabled) { | |
return; | |
} | |
if (!k.resizing) { | |
c(this).addClass("ui-resizable-autohide"); | |
k._handles.hide(); | |
} | |
}); | |
} | |
this._mouseInit(); | |
}, | |
_destroy: function() { | |
this._mouseDestroy(); | |
var g, f = function(h) { | |
c(h).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove(); | |
}; | |
if (this.elementIsWrapper) { | |
f(this.element); | |
g = this.element; | |
this.originalElement.css({ | |
position: g.css("position"), | |
width: g.outerWidth(), | |
height: g.outerHeight(), | |
top: g.css("top"), | |
left: g.css("left") | |
}).insertAfter(g); | |
g.remove(); | |
} | |
this.originalElement.css("resize", this.originalResizeStyle); | |
f(this.originalElement); | |
return this; | |
}, | |
_mouseCapture: function(h) { | |
var g, k, f = false; | |
for (g in this.handles) { | |
k = c(this.handles[g])[0]; | |
if (k === h.target || c.contains(k, h.target)) { | |
f = true; | |
} | |
} | |
return !this.options.disabled && f; | |
}, | |
_mouseStart: function(h) { | |
var n, k, m, l = this.options, g = this.element.position(), f = this.element; | |
this.resizing = true; | |
if (/absolute/.test(f.css("position"))) { | |
f.css({ | |
position: "absolute", | |
top: f.css("top"), | |
left: f.css("left") | |
}); | |
} else { | |
if (f.is(".ui-draggable")) { | |
f.css({ | |
position: "absolute", | |
top: g.top, | |
left: g.left | |
}); | |
} | |
} | |
this._renderProxy(); | |
n = b(this.helper.css("left")); | |
k = b(this.helper.css("top")); | |
if (l.containment) { | |
n += c(l.containment).scrollLeft() || 0; | |
k += c(l.containment).scrollTop() || 0; | |
} | |
this.offset = this.helper.offset(); | |
this.position = { | |
left: n, | |
top: k | |
}; | |
this.size = this._helper ? { | |
width: f.outerWidth(), | |
height: f.outerHeight() | |
} : { | |
width: f.width(), | |
height: f.height() | |
}; | |
this.originalSize = this._helper ? { | |
width: f.outerWidth(), | |
height: f.outerHeight() | |
} : { | |
width: f.width(), | |
height: f.height() | |
}; | |
this.originalPosition = { | |
left: n, | |
top: k | |
}; | |
this.sizeDiff = { | |
width: f.outerWidth() - f.width(), | |
height: f.outerHeight() - f.height() | |
}; | |
this.originalMousePosition = { | |
left: h.pageX, | |
top: h.pageY | |
}; | |
this.aspectRatio = typeof l.aspectRatio === "number" ? l.aspectRatio : this.originalSize.width / this.originalSize.height || 1; | |
m = c(".ui-resizable-" + this.axis).css("cursor"); | |
c("body").css("cursor", m === "auto" ? this.axis + "-resize" : m); | |
f.addClass("ui-resizable-resizing"); | |
this._propagate("start", h); | |
return true; | |
}, | |
_mouseDrag: function(f) { | |
var n, h = this.helper, o = {}, l = this.originalMousePosition, p = this.axis, r = this.position.top, g = this.position.left, q = this.size.width, m = this.size.height, t = f.pageX - l.left || 0, s = f.pageY - l.top || 0, k = this._change[p]; | |
if (!k) { | |
return false; | |
} | |
n = k.apply(this, [ f, t, s ]); | |
this._updateVirtualBoundaries(f.shiftKey); | |
if (this._aspectRatio || f.shiftKey) { | |
n = this._updateRatio(n, f); | |
} | |
n = this._respectSize(n, f); | |
this._updateCache(n); | |
this._propagate("resize", f); | |
if (this.position.top !== r) { | |
o.top = this.position.top + "px"; | |
} | |
if (this.position.left !== g) { | |
o.left = this.position.left + "px"; | |
} | |
if (this.size.width !== q) { | |
o.width = this.size.width + "px"; | |
} | |
if (this.size.height !== m) { | |
o.height = this.size.height + "px"; | |
} | |
h.css(o); | |
if (!this._helper && this._proportionallyResizeElements.length) { | |
this._proportionallyResize(); | |
} | |
if (!c.isEmptyObject(o)) { | |
this._trigger("resize", f, this.ui()); | |
} | |
return false; | |
}, | |
_mouseStop: function(k) { | |
this.resizing = false; | |
var h, f, g, n, r, m, q, l = this.options, p = this; | |
if (this._helper) { | |
h = this._proportionallyResizeElements; | |
f = h.length && /textarea/i.test(h[0].nodeName); | |
g = f && c.ui.hasScroll(h[0], "left") ? 0 : p.sizeDiff.height; | |
n = f ? 0 : p.sizeDiff.width; | |
r = { | |
width: p.helper.width() - n, | |
height: p.helper.height() - g | |
}; | |
m = parseInt(p.element.css("left"), 10) + (p.position.left - p.originalPosition.left) || null; | |
q = parseInt(p.element.css("top"), 10) + (p.position.top - p.originalPosition.top) || null; | |
if (!l.animate) { | |
this.element.css(c.extend(r, { | |
top: q, | |
left: m | |
})); | |
} | |
p.helper.height(p.size.height); | |
p.helper.width(p.size.width); | |
if (this._helper && !l.animate) { | |
this._proportionallyResize(); | |
} | |
} | |
c("body").css("cursor", "auto"); | |
this.element.removeClass("ui-resizable-resizing"); | |
this._propagate("stop", k); | |
if (this._helper) { | |
this.helper.remove(); | |
} | |
return false; | |
}, | |
_updateVirtualBoundaries: function(h) { | |
var l, k, g, n, f, m = this.options; | |
f = { | |
minWidth: a(m.minWidth) ? m.minWidth : 0, | |
maxWidth: a(m.maxWidth) ? m.maxWidth : Infinity, | |
minHeight: a(m.minHeight) ? m.minHeight : 0, | |
maxHeight: a(m.maxHeight) ? m.maxHeight : Infinity | |
}; | |
if (this._aspectRatio || h) { | |
l = f.minHeight * this.aspectRatio; | |
g = f.minWidth / this.aspectRatio; | |
k = f.maxHeight * this.aspectRatio; | |
n = f.maxWidth / this.aspectRatio; | |
if (l > f.minWidth) { | |
f.minWidth = l; | |
} | |
if (g > f.minHeight) { | |
f.minHeight = g; | |
} | |
if (k < f.maxWidth) { | |
f.maxWidth = k; | |
} | |
if (n < f.maxHeight) { | |
f.maxHeight = n; | |
} | |
} | |
this._vBoundaries = f; | |
}, | |
_updateCache: function(f) { | |
this.offset = this.helper.offset(); | |
if (a(f.left)) { | |
this.position.left = f.left; | |
} | |
if (a(f.top)) { | |
this.position.top = f.top; | |
} | |
if (a(f.height)) { | |
this.size.height = f.height; | |
} | |
if (a(f.width)) { | |
this.size.width = f.width; | |
} | |
}, | |
_updateRatio: function(h) { | |
var k = this.position, g = this.size, f = this.axis; | |
if (a(h.height)) { | |
h.width = h.height * this.aspectRatio; | |
} else { | |
if (a(h.width)) { | |
h.height = h.width / this.aspectRatio; | |
} | |
} | |
if (f === "sw") { | |
h.left = k.left + (g.width - h.width); | |
h.top = null; | |
} | |
if (f === "nw") { | |
h.top = k.top + (g.height - h.height); | |
h.left = k.left + (g.width - h.width); | |
} | |
return h; | |
}, | |
_respectSize: function(m) { | |
var h = this._vBoundaries, q = this.axis, s = a(m.width) && h.maxWidth && h.maxWidth < m.width, n = a(m.height) && h.maxHeight && h.maxHeight < m.height, k = a(m.width) && h.minWidth && h.minWidth > m.width, r = a(m.height) && h.minHeight && h.minHeight > m.height, g = this.originalPosition.left + this.originalSize.width, p = this.position.top + this.size.height, l = /sw|nw|w/.test(q), f = /nw|ne|n/.test(q); | |
if (k) { | |
m.width = h.minWidth; | |
} | |
if (r) { | |
m.height = h.minHeight; | |
} | |
if (s) { | |
m.width = h.maxWidth; | |
} | |
if (n) { | |
m.height = h.maxHeight; | |
} | |
if (k && l) { | |
m.left = g - h.minWidth; | |
} | |
if (s && l) { | |
m.left = g - h.maxWidth; | |
} | |
if (r && f) { | |
m.top = p - h.minHeight; | |
} | |
if (n && f) { | |
m.top = p - h.maxHeight; | |
} | |
if (!m.width && !m.height && !m.left && m.top) { | |
m.top = null; | |
} else { | |
if (!m.width && !m.height && !m.top && m.left) { | |
m.left = null; | |
} | |
} | |
return m; | |
}, | |
_proportionallyResize: function() { | |
if (!this._proportionallyResizeElements.length) { | |
return; | |
} | |
var k, g, m, f, l, h = this.helper || this.element; | |
for (k = 0; k < this._proportionallyResizeElements.length; k++) { | |
l = this._proportionallyResizeElements[k]; | |
if (!this.borderDif) { | |
this.borderDif = []; | |
m = [ l.css("borderTopWidth"), l.css("borderRightWidth"), l.css("borderBottomWidth"), l.css("borderLeftWidth") ]; | |
f = [ l.css("paddingTop"), l.css("paddingRight"), l.css("paddingBottom"), l.css("paddingLeft") ]; | |
for (g = 0; g < m.length; g++) { | |
this.borderDif[g] = (parseInt(m[g], 10) || 0) + (parseInt(f[g], 10) || 0); | |
} | |
} | |
l.css({ | |
height: h.height() - this.borderDif[0] - this.borderDif[2] || 0, | |
width: h.width() - this.borderDif[1] - this.borderDif[3] || 0 | |
}); | |
} | |
}, | |
_renderProxy: function() { | |
var f = this.element, g = this.options; | |
this.elementOffset = f.offset(); | |
if (this._helper) { | |
this.helper = this.helper || c("<div style='overflow:hidden;'></div>"); | |
this.helper.addClass(this._helper).css({ | |
width: this.element.outerWidth() - 1, | |
height: this.element.outerHeight() - 1, | |
position: "absolute", | |
left: this.elementOffset.left + "px", | |
top: this.elementOffset.top + "px", | |
zIndex: ++g.zIndex | |
}); | |
this.helper.appendTo("body").disableSelection(); | |
} else { | |
this.helper = this.element; | |
} | |
}, | |
_change: { | |
e: function(g, f) { | |
return { | |
width: this.originalSize.width + f | |
}; | |
}, | |
w: function(h, f) { | |
var g = this.originalSize, k = this.originalPosition; | |
return { | |
left: k.left + f, | |
width: g.width - f | |
}; | |
}, | |
n: function(k, g, f) { | |
var h = this.originalSize, l = this.originalPosition; | |
return { | |
top: l.top + f, | |
height: h.height - f | |
}; | |
}, | |
s: function(h, g, f) { | |
return { | |
height: this.originalSize.height + f | |
}; | |
}, | |
se: function(h, g, f) { | |
return c.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [ h, g, f ])); | |
}, | |
sw: function(h, g, f) { | |
return c.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [ h, g, f ])); | |
}, | |
ne: function(h, g, f) { | |
return c.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [ h, g, f ])); | |
}, | |
nw: function(h, g, f) { | |
return c.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [ h, g, f ])); | |
} | |
}, | |
_propagate: function(g, f) { | |
c.ui.plugin.call(this, g, [ f, this.ui() ]); | |
g !== "resize" && this._trigger(g, f, this.ui()); | |
}, | |
plugins: {}, | |
ui: function() { | |
return { | |
originalElement: this.originalElement, | |
element: this.element, | |
helper: this.helper, | |
position: this.position, | |
size: this.size, | |
originalSize: this.originalSize, | |
originalPosition: this.originalPosition | |
}; | |
} | |
}); | |
c.ui.plugin.add("resizable", "animate", { | |
stop: function(k) { | |
var q = c(this).data("ui-resizable"), m = q.options, h = q._proportionallyResizeElements, f = h.length && /textarea/i.test(h[0].nodeName), g = f && c.ui.hasScroll(h[0], "left") ? 0 : q.sizeDiff.height, p = f ? 0 : q.sizeDiff.width, l = { | |
width: q.size.width - p, | |
height: q.size.height - g | |
}, n = parseInt(q.element.css("left"), 10) + (q.position.left - q.originalPosition.left) || null, r = parseInt(q.element.css("top"), 10) + (q.position.top - q.originalPosition.top) || null; | |
q.element.animate(c.extend(l, r && n ? { | |
top: r, | |
left: n | |
} : {}), { | |
duration: m.animateDuration, | |
easing: m.animateEasing, | |
step: function() { | |
var o = { | |
width: parseInt(q.element.css("width"), 10), | |
height: parseInt(q.element.css("height"), 10), | |
top: parseInt(q.element.css("top"), 10), | |
left: parseInt(q.element.css("left"), 10) | |
}; | |
if (h && h.length) { | |
c(h[0]).css({ | |
width: o.width, | |
height: o.height | |
}); | |
} | |
q._updateCache(o); | |
q._propagate("resize", k); | |
} | |
}); | |
} | |
}); | |
c.ui.plugin.add("resizable", "containment", { | |
start: function() { | |
var r, h, t, f, q, k, u, s = c(this).data("ui-resizable"), n = s.options, m = s.element, g = n.containment, l = g instanceof c ? g.get(0) : /parent/.test(g) ? m.parent().get(0) : g; | |
if (!l) { | |
return; | |
} | |
s.containerElement = c(l); | |
if (/document/.test(g) || g === document) { | |
s.containerOffset = { | |
left: 0, | |
top: 0 | |
}; | |
s.containerPosition = { | |
left: 0, | |
top: 0 | |
}; | |
s.parentData = { | |
element: c(document), | |
left: 0, | |
top: 0, | |
width: c(document).width(), | |
height: c(document).height() || document.body.parentNode.scrollHeight | |
}; | |
} else { | |
r = c(l); | |
h = []; | |
c([ "Top", "Right", "Left", "Bottom" ]).each(function(p, o) { | |
h[p] = b(r.css("padding" + o)); | |
}); | |
s.containerOffset = r.offset(); | |
s.containerPosition = r.position(); | |
s.containerSize = { | |
height: r.innerHeight() - h[3], | |
width: r.innerWidth() - h[1] | |
}; | |
t = s.containerOffset; | |
f = s.containerSize.height; | |
q = s.containerSize.width; | |
k = c.ui.hasScroll(l, "left") ? l.scrollWidth : q; | |
u = c.ui.hasScroll(l) ? l.scrollHeight : f; | |
s.parentData = { | |
element: l, | |
left: t.left, | |
top: t.top, | |
width: k, | |
height: u | |
}; | |
} | |
}, | |
resize: function(g) { | |
var n, t, m, l, p = c(this).data("ui-resizable"), k = p.options, r = p.containerOffset, q = p.position, s = p._aspectRatio || g.shiftKey, f = { | |
top: 0, | |
left: 0 | |
}, h = p.containerElement; | |
if (h[0] !== document && /static/.test(h.css("position"))) { | |
f = r; | |
} | |
if (q.left < (p._helper ? r.left : 0)) { | |
p.size.width = p.size.width + (p._helper ? p.position.left - r.left : p.position.left - f.left); | |
if (s) { | |
p.size.height = p.size.width / p.aspectRatio; | |
} | |
p.position.left = k.helper ? r.left : 0; | |
} | |
if (q.top < (p._helper ? r.top : 0)) { | |
p.size.height = p.size.height + (p._helper ? p.position.top - r.top : p.position.top); | |
if (s) { | |
p.size.width = p.size.height * p.aspectRatio; | |
} | |
p.position.top = p._helper ? r.top : 0; | |
} | |
p.offset.left = p.parentData.left + p.position.left; | |
p.offset.top = p.parentData.top + p.position.top; | |
n = Math.abs((p._helper ? p.offset.left - f.left : p.offset.left - f.left) + p.sizeDiff.width); | |
t = Math.abs((p._helper ? p.offset.top - f.top : p.offset.top - r.top) + p.sizeDiff.height); | |
m = p.containerElement.get(0) === p.element.parent().get(0); | |
l = /relative|absolute/.test(p.containerElement.css("position")); | |
if (m && l) { | |
n -= p.parentData.left; | |
} | |
if (n + p.size.width >= p.parentData.width) { | |
p.size.width = p.parentData.width - n; | |
if (s) { | |
p.size.height = p.size.width / p.aspectRatio; | |
} | |
} | |
if (t + p.size.height >= p.parentData.height) { | |
p.size.height = p.parentData.height - t; | |
if (s) { | |
p.size.width = p.size.height * p.aspectRatio; | |
} | |
} | |
}, | |
stop: function() { | |
var n = c(this).data("ui-resizable"), g = n.options, p = n.containerOffset, f = n.containerPosition, k = n.containerElement, l = c(n.helper), r = l.offset(), q = l.outerWidth() - n.sizeDiff.width, m = l.outerHeight() - n.sizeDiff.height; | |
if (n._helper && !g.animate && /relative/.test(k.css("position"))) { | |
c(this).css({ | |
left: r.left - f.left - p.left, | |
width: q, | |
height: m | |
}); | |
} | |
if (n._helper && !g.animate && /static/.test(k.css("position"))) { | |
c(this).css({ | |
left: r.left - f.left - p.left, | |
width: q, | |
height: m | |
}); | |
} | |
} | |
}); | |
c.ui.plugin.add("resizable", "alsoResize", { | |
start: function() { | |
var f = c(this).data("ui-resizable"), h = f.options, g = function(k) { | |
c(k).each(function() { | |
var l = c(this); | |
l.data("ui-resizable-alsoresize", { | |
width: parseInt(l.width(), 10), | |
height: parseInt(l.height(), 10), | |
left: parseInt(l.css("left"), 10), | |
top: parseInt(l.css("top"), 10) | |
}); | |
}); | |
}; | |
if (typeof h.alsoResize === "object" && !h.alsoResize.parentNode) { | |
if (h.alsoResize.length) { | |
h.alsoResize = h.alsoResize[0]; | |
g(h.alsoResize); | |
} else { | |
c.each(h.alsoResize, function(k) { | |
g(k); | |
}); | |
} | |
} else { | |
g(h.alsoResize); | |
} | |
}, | |
resize: function(h, l) { | |
var g = c(this).data("ui-resizable"), m = g.options, k = g.originalSize, p = g.originalPosition, n = { | |
height: g.size.height - k.height || 0, | |
width: g.size.width - k.width || 0, | |
top: g.position.top - p.top || 0, | |
left: g.position.left - p.left || 0 | |
}, f = function(o, q) { | |
c(o).each(function() { | |
var t = c(this), u = c(this).data("ui-resizable-alsoresize"), s = {}, r = q && q.length ? q : t.parents(l.originalElement[0]).length ? [ "width", "height" ] : [ "width", "height", "top", "left" ]; | |
c.each(r, function(v, x) { | |
var w = (u[x] || 0) + (n[x] || 0); | |
if (w && w >= 0) { | |
s[x] = w || null; | |
} | |
}); | |
t.css(s); | |
}); | |
}; | |
if (typeof m.alsoResize === "object" && !m.alsoResize.nodeType) { | |
c.each(m.alsoResize, function(o, q) { | |
f(o, q); | |
}); | |
} else { | |
f(m.alsoResize); | |
} | |
}, | |
stop: function() { | |
c(this).removeData("resizable-alsoresize"); | |
} | |
}); | |
c.ui.plugin.add("resizable", "ghost", { | |
start: function() { | |
var g = c(this).data("ui-resizable"), h = g.options, f = g.size; | |
g.ghost = g.originalElement.clone(); | |
g.ghost.css({ | |
opacity: .25, | |
display: "block", | |
position: "relative", | |
height: f.height, | |
width: f.width, | |
margin: 0, | |
left: 0, | |
top: 0 | |
}).addClass("ui-resizable-ghost").addClass(typeof h.ghost === "string" ? h.ghost : ""); | |
g.ghost.appendTo(g.helper); | |
}, | |
resize: function() { | |
var f = c(this).data("ui-resizable"); | |
if (f.ghost) { | |
f.ghost.css({ | |
position: "relative", | |
height: f.size.height, | |
width: f.size.width | |
}); | |
} | |
}, | |
stop: function() { | |
var f = c(this).data("ui-resizable"); | |
if (f.ghost && f.helper) { | |
f.helper.get(0).removeChild(f.ghost.get(0)); | |
} | |
} | |
}); | |
c.ui.plugin.add("resizable", "grid", { | |
resize: function() { | |
var u = c(this).data("ui-resizable"), l = u.options, v = u.size, n = u.originalSize, r = u.originalPosition, w = u.axis, g = typeof l.grid === "number" ? [ l.grid, l.grid ] : l.grid, s = g[0] || 1, q = g[1] || 1, k = Math.round((v.width - n.width) / s) * s, h = Math.round((v.height - n.height) / q) * q, p = n.width + k, f = n.height + h, m = l.maxWidth && l.maxWidth < p, x = l.maxHeight && l.maxHeight < f, t = l.minWidth && l.minWidth > p, y = l.minHeight && l.minHeight > f; | |
l.grid = g; | |
if (t) { | |
p = p + s; | |
} | |
if (y) { | |
f = f + q; | |
} | |
if (m) { | |
p = p - s; | |
} | |
if (x) { | |
f = f - q; | |
} | |
if (/^(se|s|e)$/.test(w)) { | |
u.size.width = p; | |
u.size.height = f; | |
} else { | |
if (/^(ne)$/.test(w)) { | |
u.size.width = p; | |
u.size.height = f; | |
u.position.top = r.top - h; | |
} else { | |
if (/^(sw)$/.test(w)) { | |
u.size.width = p; | |
u.size.height = f; | |
u.position.left = r.left - k; | |
} else { | |
u.size.width = p; | |
u.size.height = f; | |
u.position.top = r.top - h; | |
u.position.left = r.left - k; | |
} | |
} | |
} | |
} | |
}); | |
})(jQuery); | |
(function(g, b) { | |
var n, f, a, k, l = "ui-button ui-widget ui-state-default ui-corner-all", c = "ui-state-hover ui-state-active ", h = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", m = function() { | |
var o = g(this).find(":ui-button"); | |
setTimeout(function() { | |
o.button("refresh"); | |
}, 1); | |
}, d = function(p) { | |
var o = p.name, q = p.form, r = g([]); | |
if (o) { | |
o = o.replace(/'/g, "\\'"); | |
if (q) { | |
r = g(q).find("[name='" + o + "']"); | |
} else { | |
r = g("[name='" + o + "']", p.ownerDocument).filter(function() { | |
return !this.form; | |
}); | |
} | |
} | |
return r; | |
}; | |
g.widget("ui.button", { | |
version: "1.10.1", | |
defaultElement: "<button>", | |
options: { | |
disabled: null, | |
text: true, | |
label: null, | |
icons: { | |
primary: null, | |
secondary: null | |
} | |
}, | |
_create: function() { | |
this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, m); | |
if (typeof this.options.disabled !== "boolean") { | |
this.options.disabled = !!this.element.prop("disabled"); | |
} else { | |
this.element.prop("disabled", this.options.disabled); | |
} | |
this._determineButtonType(); | |
this.hasTitle = !!this.buttonElement.attr("title"); | |
var r = this, p = this.options, s = this.type === "checkbox" || this.type === "radio", q = !s ? "ui-state-active" : "", o = "ui-state-focus"; | |
if (p.label === null) { | |
p.label = this.type === "input" ? this.buttonElement.val() : this.buttonElement.html(); | |
} | |
this._hoverable(this.buttonElement); | |
this.buttonElement.addClass(l).attr("role", "button").bind("mouseenter" + this.eventNamespace, function() { | |
if (p.disabled) { | |
return; | |
} | |
if (this === n) { | |
g(this).addClass("ui-state-active"); | |
} | |
}).bind("mouseleave" + this.eventNamespace, function() { | |
if (p.disabled) { | |
return; | |
} | |
g(this).removeClass(q); | |
}).bind("click" + this.eventNamespace, function(t) { | |
if (p.disabled) { | |
t.preventDefault(); | |
t.stopImmediatePropagation(); | |
} | |
}); | |
this.element.bind("focus" + this.eventNamespace, function() { | |
r.buttonElement.addClass(o); | |
}).bind("blur" + this.eventNamespace, function() { | |
r.buttonElement.removeClass(o); | |
}); | |
if (s) { | |
this.element.bind("change" + this.eventNamespace, function() { | |
if (k) { | |
return; | |
} | |
r.refresh(); | |
}); | |
this.buttonElement.bind("mousedown" + this.eventNamespace, function(t) { | |
if (p.disabled) { | |
return; | |
} | |
k = false; | |
f = t.pageX; | |
a = t.pageY; | |
}).bind("mouseup" + this.eventNamespace, function(t) { | |
if (p.disabled) { | |
return; | |
} | |
if (f !== t.pageX || a !== t.pageY) { | |
k = true; | |
} | |
}); | |
} | |
if (this.type === "checkbox") { | |
this.buttonElement.bind("click" + this.eventNamespace, function() { | |
if (p.disabled || k) { | |
return false; | |
} | |
}); | |
} else { | |
if (this.type === "radio") { | |
this.buttonElement.bind("click" + this.eventNamespace, function() { | |
if (p.disabled || k) { | |
return false; | |
} | |
g(this).addClass("ui-state-active"); | |
r.buttonElement.attr("aria-pressed", "true"); | |
var t = r.element[0]; | |
d(t).not(t).map(function() { | |
return g(this).button("widget")[0]; | |
}).removeClass("ui-state-active").attr("aria-pressed", "false"); | |
}); | |
} else { | |
this.buttonElement.bind("mousedown" + this.eventNamespace, function() { | |
if (p.disabled) { | |
return false; | |
} | |
g(this).addClass("ui-state-active"); | |
n = this; | |
r.document.one("mouseup", function() { | |
n = null; | |
}); | |
}).bind("mouseup" + this.eventNamespace, function() { | |
if (p.disabled) { | |
return false; | |
} | |
g(this).removeClass("ui-state-active"); | |
}).bind("keydown" + this.eventNamespace, function(t) { | |
if (p.disabled) { | |
return false; | |
} | |
if (t.keyCode === g.ui.keyCode.SPACE || t.keyCode === g.ui.keyCode.ENTER) { | |
g(this).addClass("ui-state-active"); | |
} | |
}).bind("keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() { | |
g(this).removeClass("ui-state-active"); | |
}); | |
if (this.buttonElement.is("a")) { | |
this.buttonElement.keyup(function(t) { | |
if (t.keyCode === g.ui.keyCode.SPACE) { | |
g(this).click(); | |
} | |
}); | |
} | |
} | |
} | |
this._setOption("disabled", p.disabled); | |
this._resetButton(); | |
}, | |
_determineButtonType: function() { | |
var o, q, p; | |
if (this.element.is("[type=checkbox]")) { | |
this.type = "checkbox"; | |
} else { | |
if (this.element.is("[type=radio]")) { | |
this.type = "radio"; | |
} else { | |
if (this.element.is("input")) { | |
this.type = "input"; | |
} else { | |
this.type = "button"; | |
} | |
} | |
} | |
if (this.type === "checkbox" || this.type === "radio") { | |
o = this.element.parents().last(); | |
q = "label[for='" + this.element.attr("id") + "']"; | |
this.buttonElement = o.find(q); | |
if (!this.buttonElement.length) { | |
o = o.length ? o.siblings() : this.element.siblings(); | |
this.buttonElement = o.filter(q); | |
if (!this.buttonElement.length) { | |
this.buttonElement = o.find(q); | |
} | |
} | |
this.element.addClass("ui-helper-hidden-accessible"); | |
p = this.element.is(":checked"); | |
if (p) { | |
this.buttonElement.addClass("ui-state-active"); | |
} | |
this.buttonElement.prop("aria-pressed", p); | |
} else { | |
this.buttonElement = this.element; | |
} | |
}, | |
widget: function() { | |
return this.buttonElement; | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-helper-hidden-accessible"); | |
this.buttonElement.removeClass(l + " " + c + " " + h).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()); | |
if (!this.hasTitle) { | |
this.buttonElement.removeAttr("title"); | |
} | |
}, | |
_setOption: function(o, p) { | |
this._super(o, p); | |
if (o === "disabled") { | |
if (p) { | |
this.element.prop("disabled", true); | |
} else { | |
this.element.prop("disabled", false); | |
} | |
return; | |
} | |
this._resetButton(); | |
}, | |
refresh: function() { | |
var o = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled"); | |
if (o !== this.options.disabled) { | |
this._setOption("disabled", o); | |
} | |
if (this.type === "radio") { | |
d(this.element[0]).each(function() { | |
if (g(this).is(":checked")) { | |
g(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true"); | |
} else { | |
g(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false"); | |
} | |
}); | |
} else { | |
if (this.type === "checkbox") { | |
if (this.element.is(":checked")) { | |
this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true"); | |
} else { | |
this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false"); | |
} | |
} | |
} | |
}, | |
_resetButton: function() { | |
if (this.type === "input") { | |
if (this.options.label) { | |
this.element.val(this.options.label); | |
} | |
return; | |
} | |
var s = this.buttonElement.removeClass(h), q = g("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(s.empty()).text(), p = this.options.icons, o = p.primary && p.secondary, r = []; | |
if (p.primary || p.secondary) { | |
if (this.options.text) { | |
r.push("ui-button-text-icon" + (o ? "s" : p.primary ? "-primary" : "-secondary")); | |
} | |
if (p.primary) { | |
s.prepend("<span class='ui-button-icon-primary ui-icon " + p.primary + "'></span>"); | |
} | |
if (p.secondary) { | |
s.append("<span class='ui-button-icon-secondary ui-icon " + p.secondary + "'></span>"); | |
} | |
if (!this.options.text) { | |
r.push(o ? "ui-button-icons-only" : "ui-button-icon-only"); | |
if (!this.hasTitle) { | |
s.attr("title", g.trim(q)); | |
} | |
} | |
} else { | |
r.push("ui-button-text-only"); | |
} | |
s.addClass(r.join(" ")); | |
} | |
}); | |
g.widget("ui.buttonset", { | |
version: "1.10.1", | |
options: { | |
items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" | |
}, | |
_create: function() { | |
this.element.addClass("ui-buttonset"); | |
}, | |
_init: function() { | |
this.refresh(); | |
}, | |
_setOption: function(o, p) { | |
if (o === "disabled") { | |
this.buttons.button("option", o, p); | |
} | |
this._super(o, p); | |
}, | |
refresh: function() { | |
var o = this.element.css("direction") === "rtl"; | |
this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function() { | |
return g(this).button("widget")[0]; | |
}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(o ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(o ? "ui-corner-left" : "ui-corner-right").end().end(); | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-buttonset"); | |
this.buttons.map(function() { | |
return g(this).button("widget")[0]; | |
}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); | |
} | |
}); | |
})(jQuery); | |
(function(g, k) { | |
g.extend(g.ui, { | |
datepicker: { | |
version: "1.10.1" | |
} | |
}); | |
var h = "datepicker", f = new Date().getTime(), c; | |
function b() { | |
this._curInst = null; | |
this._keyEvent = false; | |
this._disabledInputs = []; | |
this._datepickerShowing = false; | |
this._inDialog = false; | |
this._mainDivId = "ui-datepicker-div"; | |
this._inlineClass = "ui-datepicker-inline"; | |
this._appendClass = "ui-datepicker-append"; | |
this._triggerClass = "ui-datepicker-trigger"; | |
this._dialogClass = "ui-datepicker-dialog"; | |
this._disableClass = "ui-datepicker-disabled"; | |
this._unselectableClass = "ui-datepicker-unselectable"; | |
this._currentClass = "ui-datepicker-current-day"; | |
this._dayOverClass = "ui-datepicker-days-cell-over"; | |
this.regional = []; | |
this.regional[""] = { | |
closeText: "Done", | |
prevText: "Prev", | |
nextText: "Next", | |
currentText: "Today", | |
monthNames: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], | |
monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], | |
dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], | |
dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], | |
dayNamesMin: [ "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" ], | |
weekHeader: "Wk", | |
dateFormat: "mm/dd/yy", | |
firstDay: 0, | |
isRTL: false, | |
showMonthAfterYear: false, | |
yearSuffix: "" | |
}; | |
this._defaults = { | |
showOn: "focus", | |
showAnim: "fadeIn", | |
showOptions: {}, | |
defaultDate: null, | |
appendText: "", | |
buttonText: "...", | |
buttonImage: "", | |
buttonImageOnly: false, | |
hideIfNoPrevNext: false, | |
navigationAsDateFormat: false, | |
gotoCurrent: false, | |
changeMonth: false, | |
changeYear: false, | |
yearRange: "c-10:c+10", | |
showOtherMonths: false, | |
selectOtherMonths: false, | |
showWeek: false, | |
calculateWeek: this.iso8601Week, | |
shortYearCutoff: "+10", | |
minDate: null, | |
maxDate: null, | |
duration: "fast", | |
beforeShowDay: null, | |
beforeShow: null, | |
onSelect: null, | |
onChangeMonthYear: null, | |
onClose: null, | |
numberOfMonths: 1, | |
showCurrentAtPos: 0, | |
stepMonths: 1, | |
stepBigMonths: 12, | |
altField: "", | |
altFormat: "", | |
constrainInput: true, | |
showButtonPanel: false, | |
autoSize: false, | |
disabled: false | |
}; | |
g.extend(this._defaults, this.regional[""]); | |
this.dpDiv = d(g("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")); | |
} | |
g.extend(b.prototype, { | |
markerClassName: "hasDatepicker", | |
maxRows: 4, | |
_widgetDatepicker: function() { | |
return this.dpDiv; | |
}, | |
setDefaults: function(l) { | |
a(this._defaults, l || {}); | |
return this; | |
}, | |
_attachDatepicker: function(o, l) { | |
var p, n, m; | |
p = o.nodeName.toLowerCase(); | |
n = p === "div" || p === "span"; | |
if (!o.id) { | |
this.uuid += 1; | |
o.id = "dp" + this.uuid; | |
} | |
m = this._newInst(g(o), n); | |
m.settings = g.extend({}, l || {}); | |
if (p === "input") { | |
this._connectDatepicker(o, m); | |
} else { | |
if (n) { | |
this._inlineDatepicker(o, m); | |
} | |
} | |
}, | |
_newInst: function(m, l) { | |
var n = m[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); | |
return { | |
id: n, | |
input: m, | |
selectedDay: 0, | |
selectedMonth: 0, | |
selectedYear: 0, | |
drawMonth: 0, | |
drawYear: 0, | |
inline: l, | |
dpDiv: !l ? this.dpDiv : d(g("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) | |
}; | |
}, | |
_connectDatepicker: function(n, m) { | |
var l = g(n); | |
m.append = g([]); | |
m.trigger = g([]); | |
if (l.hasClass(this.markerClassName)) { | |
return; | |
} | |
this._attachments(l, m); | |
l.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp); | |
this._autoSize(m); | |
g.data(n, h, m); | |
if (m.settings.disabled) { | |
this._disableDatepicker(n); | |
} | |
}, | |
_attachments: function(n, q) { | |
var m, p, l, r = this._get(q, "appendText"), o = this._get(q, "isRTL"); | |
if (q.append) { | |
q.append.remove(); | |
} | |
if (r) { | |
q.append = g("<span class='" + this._appendClass + "'>" + r + "</span>"); | |
n[o ? "before" : "after"](q.append); | |
} | |
n.unbind("focus", this._showDatepicker); | |
if (q.trigger) { | |
q.trigger.remove(); | |
} | |
m = this._get(q, "showOn"); | |
if (m === "focus" || m === "both") { | |
n.focus(this._showDatepicker); | |
} | |
if (m === "button" || m === "both") { | |
p = this._get(q, "buttonText"); | |
l = this._get(q, "buttonImage"); | |
q.trigger = g(this._get(q, "buttonImageOnly") ? g("<img/>").addClass(this._triggerClass).attr({ | |
src: l, | |
alt: p, | |
title: p | |
}) : g("<button type='button'></button>").addClass(this._triggerClass).html(!l ? p : g("<img/>").attr({ | |
src: l, | |
alt: p, | |
title: p | |
}))); | |
n[o ? "before" : "after"](q.trigger); | |
q.trigger.click(function() { | |
if (g.datepicker._datepickerShowing && g.datepicker._lastInput === n[0]) { | |
g.datepicker._hideDatepicker(); | |
} else { | |
if (g.datepicker._datepickerShowing && g.datepicker._lastInput !== n[0]) { | |
g.datepicker._hideDatepicker(); | |
g.datepicker._showDatepicker(n[0]); | |
} else { | |
g.datepicker._showDatepicker(n[0]); | |
} | |
} | |
return false; | |
}); | |
} | |
}, | |
_autoSize: function(r) { | |
if (this._get(r, "autoSize") && !r.inline) { | |
var o, m, n, q, p = new Date(2009, 12 - 1, 20), l = this._get(r, "dateFormat"); | |
if (l.match(/[DM]/)) { | |
o = function(s) { | |
m = 0; | |
n = 0; | |
for (q = 0; q < s.length; q++) { | |
if (s[q].length > m) { | |
m = s[q].length; | |
n = q; | |
} | |
} | |
return n; | |
}; | |
p.setMonth(o(this._get(r, l.match(/MM/) ? "monthNames" : "monthNamesShort"))); | |
p.setDate(o(this._get(r, l.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - p.getDay()); | |
} | |
r.input.attr("size", this._formatDate(r, p).length); | |
} | |
}, | |
_inlineDatepicker: function(m, l) { | |
var n = g(m); | |
if (n.hasClass(this.markerClassName)) { | |
return; | |
} | |
n.addClass(this.markerClassName).append(l.dpDiv); | |
g.data(m, h, l); | |
this._setDate(l, this._getDefaultDate(l), true); | |
this._updateDatepicker(l); | |
this._updateAlternate(l); | |
if (l.settings.disabled) { | |
this._disableDatepicker(m); | |
} | |
l.dpDiv.css("display", "block"); | |
}, | |
_dialogDatepicker: function(s, m, q, n, r) { | |
var l, v, p, u, t, o = this._dialogInst; | |
if (!o) { | |
this.uuid += 1; | |
l = "dp" + this.uuid; | |
this._dialogInput = g("<input type='text' id='" + l + "' style='position: absolute; top: -100px; width: 0px;'/>"); | |
this._dialogInput.keydown(this._doKeyDown); | |
g("body").append(this._dialogInput); | |
o = this._dialogInst = this._newInst(this._dialogInput, false); | |
o.settings = {}; | |
g.data(this._dialogInput[0], h, o); | |
} | |
a(o.settings, n || {}); | |
m = m && m.constructor === Date ? this._formatDate(o, m) : m; | |
this._dialogInput.val(m); | |
this._pos = r ? r.length ? r : [ r.pageX, r.pageY ] : null; | |
if (!this._pos) { | |
v = document.documentElement.clientWidth; | |
p = document.documentElement.clientHeight; | |
u = document.documentElement.scrollLeft || document.body.scrollLeft; | |
t = document.documentElement.scrollTop || document.body.scrollTop; | |
this._pos = [ v / 2 - 100 + u, p / 2 - 150 + t ]; | |
} | |
this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"); | |
o.settings.onSelect = q; | |
this._inDialog = true; | |
this.dpDiv.addClass(this._dialogClass); | |
this._showDatepicker(this._dialogInput[0]); | |
if (g.blockUI) { | |
g.blockUI(this.dpDiv); | |
} | |
g.data(this._dialogInput[0], h, o); | |
return this; | |
}, | |
_destroyDatepicker: function(n) { | |
var o, l = g(n), m = g.data(n, h); | |
if (!l.hasClass(this.markerClassName)) { | |
return; | |
} | |
o = n.nodeName.toLowerCase(); | |
g.removeData(n, h); | |
if (o === "input") { | |
m.append.remove(); | |
m.trigger.remove(); | |
l.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp); | |
} else { | |
if (o === "div" || o === "span") { | |
l.removeClass(this.markerClassName).empty(); | |
} | |
} | |
}, | |
_enableDatepicker: function(o) { | |
var p, n, l = g(o), m = g.data(o, h); | |
if (!l.hasClass(this.markerClassName)) { | |
return; | |
} | |
p = o.nodeName.toLowerCase(); | |
if (p === "input") { | |
o.disabled = false; | |
m.trigger.filter("button").each(function() { | |
this.disabled = false; | |
}).end().filter("img").css({ | |
opacity: "1.0", | |
cursor: "" | |
}); | |
} else { | |
if (p === "div" || p === "span") { | |
n = l.children("." + this._inlineClass); | |
n.children().removeClass("ui-state-disabled"); | |
n.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", false); | |
} | |
} | |
this._disabledInputs = g.map(this._disabledInputs, function(q) { | |
return q === o ? null : q; | |
}); | |
}, | |
_disableDatepicker: function(o) { | |
var p, n, l = g(o), m = g.data(o, h); | |
if (!l.hasClass(this.markerClassName)) { | |
return; | |
} | |
p = o.nodeName.toLowerCase(); | |
if (p === "input") { | |
o.disabled = true; | |
m.trigger.filter("button").each(function() { | |
this.disabled = true; | |
}).end().filter("img").css({ | |
opacity: "0.5", | |
cursor: "default" | |
}); | |
} else { | |
if (p === "div" || p === "span") { | |
n = l.children("." + this._inlineClass); | |
n.children().addClass("ui-state-disabled"); | |
n.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", true); | |
} | |
} | |
this._disabledInputs = g.map(this._disabledInputs, function(q) { | |
return q === o ? null : q; | |
}); | |
this._disabledInputs[this._disabledInputs.length] = o; | |
}, | |
_isDisabledDatepicker: function(m) { | |
if (!m) { | |
return false; | |
} | |
for (var l = 0; l < this._disabledInputs.length; l++) { | |
if (this._disabledInputs[l] === m) { | |
return true; | |
} | |
} | |
return false; | |
}, | |
_getInst: function(m) { | |
try { | |
return g.data(m, h); | |
} catch (l) { | |
throw "Missing instance data for this datepicker"; | |
} | |
}, | |
_optionDatepicker: function(r, m, q) { | |
var n, l, p, s, o = this._getInst(r); | |
if (arguments.length === 2 && typeof m === "string") { | |
return m === "defaults" ? g.extend({}, g.datepicker._defaults) : o ? m === "all" ? g.extend({}, o.settings) : this._get(o, m) : null; | |
} | |
n = m || {}; | |
if (typeof m === "string") { | |
n = {}; | |
n[m] = q; | |
} | |
if (o) { | |
if (this._curInst === o) { | |
this._hideDatepicker(); | |
} | |
l = this._getDateDatepicker(r, true); | |
p = this._getMinMaxDate(o, "min"); | |
s = this._getMinMaxDate(o, "max"); | |
a(o.settings, n); | |
if (p !== null && n.dateFormat !== k && n.minDate === k) { | |
o.settings.minDate = this._formatDate(o, p); | |
} | |
if (s !== null && n.dateFormat !== k && n.maxDate === k) { | |
o.settings.maxDate = this._formatDate(o, s); | |
} | |
if ("disabled" in n) { | |
if (n.disabled) { | |
this._disableDatepicker(r); | |
} else { | |
this._enableDatepicker(r); | |
} | |
} | |
this._attachments(g(r), o); | |
this._autoSize(o); | |
this._setDate(o, l); | |
this._updateAlternate(o); | |
this._updateDatepicker(o); | |
} | |
}, | |
_changeDatepicker: function(n, l, m) { | |
this._optionDatepicker(n, l, m); | |
}, | |
_refreshDatepicker: function(m) { | |
var l = this._getInst(m); | |
if (l) { | |
this._updateDatepicker(l); | |
} | |
}, | |
_setDateDatepicker: function(n, l) { | |
var m = this._getInst(n); | |
if (m) { | |
this._setDate(m, l); | |
this._updateDatepicker(m); | |
this._updateAlternate(m); | |
} | |
}, | |
_getDateDatepicker: function(n, l) { | |
var m = this._getInst(n); | |
if (m && !m.inline) { | |
this._setDateFromField(m, l); | |
} | |
return m ? this._getDate(m) : null; | |
}, | |
_doKeyDown: function(o) { | |
var m, l, q, p = g.datepicker._getInst(o.target), r = true, n = p.dpDiv.is(".ui-datepicker-rtl"); | |
p._keyEvent = true; | |
if (g.datepicker._datepickerShowing) { | |
switch (o.keyCode) { | |
case 9: | |
g.datepicker._hideDatepicker(); | |
r = false; | |
break; | |
case 13: | |
q = g("td." + g.datepicker._dayOverClass + ":not(." + g.datepicker._currentClass + ")", p.dpDiv); | |
if (q[0]) { | |
g.datepicker._selectDay(o.target, p.selectedMonth, p.selectedYear, q[0]); | |
} | |
m = g.datepicker._get(p, "onSelect"); | |
if (m) { | |
l = g.datepicker._formatDate(p); | |
m.apply(p.input ? p.input[0] : null, [ l, p ]); | |
} else { | |
g.datepicker._hideDatepicker(); | |
} | |
return false; | |
case 27: | |
g.datepicker._hideDatepicker(); | |
break; | |
case 33: | |
g.datepicker._adjustDate(o.target, o.ctrlKey ? -g.datepicker._get(p, "stepBigMonths") : -g.datepicker._get(p, "stepMonths"), "M"); | |
break; | |
case 34: | |
g.datepicker._adjustDate(o.target, o.ctrlKey ? +g.datepicker._get(p, "stepBigMonths") : +g.datepicker._get(p, "stepMonths"), "M"); | |
break; | |
case 35: | |
if (o.ctrlKey || o.metaKey) { | |
g.datepicker._clearDate(o.target); | |
} | |
r = o.ctrlKey || o.metaKey; | |
break; | |
case 36: | |
if (o.ctrlKey || o.metaKey) { | |
g.datepicker._gotoToday(o.target); | |
} | |
r = o.ctrlKey || o.metaKey; | |
break; | |
case 37: | |
if (o.ctrlKey || o.metaKey) { | |
g.datepicker._adjustDate(o.target, n ? +1 : -1, "D"); | |
} | |
r = o.ctrlKey || o.metaKey; | |
if (o.originalEvent.altKey) { | |
g.datepicker._adjustDate(o.target, o.ctrlKey ? -g.datepicker._get(p, "stepBigMonths") : -g.datepicker._get(p, "stepMonths"), "M"); | |
} | |
break; | |
case 38: | |
if (o.ctrlKey || o.metaKey) { | |
g.datepicker._adjustDate(o.target, -7, "D"); | |
} | |
r = o.ctrlKey || o.metaKey; | |
break; | |
case 39: | |
if (o.ctrlKey || o.metaKey) { | |
g.datepicker._adjustDate(o.target, n ? -1 : +1, "D"); | |
} | |
r = o.ctrlKey || o.metaKey; | |
if (o.originalEvent.altKey) { | |
g.datepicker._adjustDate(o.target, o.ctrlKey ? +g.datepicker._get(p, "stepBigMonths") : +g.datepicker._get(p, "stepMonths"), "M"); | |
} | |
break; | |
case 40: | |
if (o.ctrlKey || o.metaKey) { | |
g.datepicker._adjustDate(o.target, +7, "D"); | |
} | |
r = o.ctrlKey || o.metaKey; | |
break; | |
default: | |
r = false; | |
} | |
} else { | |
if (o.keyCode === 36 && o.ctrlKey) { | |
g.datepicker._showDatepicker(this); | |
} else { | |
r = false; | |
} | |
} | |
if (r) { | |
o.preventDefault(); | |
o.stopPropagation(); | |
} | |
}, | |
_doKeyPress: function(n) { | |
var m, l, o = g.datepicker._getInst(n.target); | |
if (g.datepicker._get(o, "constrainInput")) { | |
m = g.datepicker._possibleChars(g.datepicker._get(o, "dateFormat")); | |
l = String.fromCharCode(n.charCode == null ? n.keyCode : n.charCode); | |
return n.ctrlKey || n.metaKey || (l < " " || !m || m.indexOf(l) > -1); | |
} | |
}, | |
_doKeyUp: function(n) { | |
var l, o = g.datepicker._getInst(n.target); | |
if (o.input.val() !== o.lastVal) { | |
try { | |
l = g.datepicker.parseDate(g.datepicker._get(o, "dateFormat"), o.input ? o.input.val() : null, g.datepicker._getFormatConfig(o)); | |
if (l) { | |
g.datepicker._setDateFromField(o); | |
g.datepicker._updateAlternate(o); | |
g.datepicker._updateDatepicker(o); | |
} | |
} catch (m) {} | |
} | |
return true; | |
}, | |
_showDatepicker: function(m) { | |
m = m.target || m; | |
if (m.nodeName.toLowerCase() !== "input") { | |
m = g("input", m.parentNode)[0]; | |
} | |
if (g.datepicker._isDisabledDatepicker(m) || g.datepicker._lastInput === m) { | |
return; | |
} | |
var o, s, n, q, r, l, p; | |
o = g.datepicker._getInst(m); | |
if (g.datepicker._curInst && g.datepicker._curInst !== o) { | |
g.datepicker._curInst.dpDiv.stop(true, true); | |
if (o && g.datepicker._datepickerShowing) { | |
g.datepicker._hideDatepicker(g.datepicker._curInst.input[0]); | |
} | |
} | |
s = g.datepicker._get(o, "beforeShow"); | |
n = s ? s.apply(m, [ m, o ]) : {}; | |
if (n === false) { | |
return; | |
} | |
a(o.settings, n); | |
o.lastVal = null; | |
g.datepicker._lastInput = m; | |
g.datepicker._setDateFromField(o); | |
if (g.datepicker._inDialog) { | |
m.value = ""; | |
} | |
if (!g.datepicker._pos) { | |
g.datepicker._pos = g.datepicker._findPos(m); | |
g.datepicker._pos[1] += m.offsetHeight; | |
} | |
q = false; | |
g(m).parents().each(function() { | |
q |= g(this).css("position") === "fixed"; | |
return !q; | |
}); | |
r = { | |
left: g.datepicker._pos[0], | |
top: g.datepicker._pos[1] | |
}; | |
g.datepicker._pos = null; | |
o.dpDiv.empty(); | |
o.dpDiv.css({ | |
position: "absolute", | |
display: "block", | |
top: "-1000px" | |
}); | |
g.datepicker._updateDatepicker(o); | |
r = g.datepicker._checkOffset(o, r, q); | |
o.dpDiv.css({ | |
position: g.datepicker._inDialog && g.blockUI ? "static" : q ? "fixed" : "absolute", | |
display: "none", | |
left: r.left + "px", | |
top: r.top + "px" | |
}); | |
if (!o.inline) { | |
l = g.datepicker._get(o, "showAnim"); | |
p = g.datepicker._get(o, "duration"); | |
o.dpDiv.zIndex(g(m).zIndex() + 1); | |
g.datepicker._datepickerShowing = true; | |
if (g.effects && g.effects.effect[l]) { | |
o.dpDiv.show(l, g.datepicker._get(o, "showOptions"), p); | |
} else { | |
o.dpDiv[l || "show"](l ? p : null); | |
} | |
if (o.input.is(":visible") && !o.input.is(":disabled")) { | |
o.input.focus(); | |
} | |
g.datepicker._curInst = o; | |
} | |
}, | |
_updateDatepicker: function(n) { | |
this.maxRows = 4; | |
c = n; | |
n.dpDiv.empty().append(this._generateHTML(n)); | |
this._attachHandlers(n); | |
n.dpDiv.find("." + this._dayOverClass + " a").mouseover(); | |
var p, l = this._getNumberOfMonths(n), o = l[1], m = 17; | |
n.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); | |
if (o > 1) { | |
n.dpDiv.addClass("ui-datepicker-multi-" + o).css("width", m * o + "em"); | |
} | |
n.dpDiv[(l[0] !== 1 || l[1] !== 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); | |
n.dpDiv[(this._get(n, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); | |
if (n === g.datepicker._curInst && g.datepicker._datepickerShowing && n.input && n.input.is(":visible") && !n.input.is(":disabled") && n.input[0] !== document.activeElement) { | |
n.input.focus(); | |
} | |
if (n.yearshtml) { | |
p = n.yearshtml; | |
setTimeout(function() { | |
if (p === n.yearshtml && n.yearshtml) { | |
n.dpDiv.find("select.ui-datepicker-year:first").replaceWith(n.yearshtml); | |
} | |
p = n.yearshtml = null; | |
}, 0); | |
} | |
}, | |
_getBorders: function(l) { | |
var m = function(n) { | |
return { | |
thin: 1, | |
medium: 2, | |
thick: 3 | |
}[n] || n; | |
}; | |
return [ parseFloat(m(l.css("border-left-width"))), parseFloat(m(l.css("border-top-width"))) ]; | |
}, | |
_checkOffset: function(q, o, n) { | |
var p = q.dpDiv.outerWidth(), t = q.dpDiv.outerHeight(), s = q.input ? q.input.outerWidth() : 0, l = q.input ? q.input.outerHeight() : 0, r = document.documentElement.clientWidth + (n ? 0 : g(document).scrollLeft()), m = document.documentElement.clientHeight + (n ? 0 : g(document).scrollTop()); | |
o.left -= this._get(q, "isRTL") ? p - s : 0; | |
o.left -= n && o.left === q.input.offset().left ? g(document).scrollLeft() : 0; | |
o.top -= n && o.top === q.input.offset().top + l ? g(document).scrollTop() : 0; | |
o.left -= Math.min(o.left, o.left + p > r && r > p ? Math.abs(o.left + p - r) : 0); | |
o.top -= Math.min(o.top, o.top + t > m && m > t ? Math.abs(t + l) : 0); | |
return o; | |
}, | |
_findPos: function(o) { | |
var l, n = this._getInst(o), m = this._get(n, "isRTL"); | |
while (o && (o.type === "hidden" || o.nodeType !== 1 || g.expr.filters.hidden(o))) { | |
o = o[m ? "previousSibling" : "nextSibling"]; | |
} | |
l = g(o).offset(); | |
return [ l.left, l.top ]; | |
}, | |
_hideDatepicker: function(n) { | |
var m, q, p, l, o = this._curInst; | |
if (!o || n && o !== g.data(n, h)) { | |
return; | |
} | |
if (this._datepickerShowing) { | |
m = this._get(o, "showAnim"); | |
q = this._get(o, "duration"); | |
p = function() { | |
g.datepicker._tidyDialog(o); | |
}; | |
if (g.effects && (g.effects.effect[m] || g.effects[m])) { | |
o.dpDiv.hide(m, g.datepicker._get(o, "showOptions"), q, p); | |
} else { | |
o.dpDiv[m === "slideDown" ? "slideUp" : m === "fadeIn" ? "fadeOut" : "hide"](m ? q : null, p); | |
} | |
if (!m) { | |
p(); | |
} | |
this._datepickerShowing = false; | |
l = this._get(o, "onClose"); | |
if (l) { | |
l.apply(o.input ? o.input[0] : null, [ o.input ? o.input.val() : "", o ]); | |
} | |
this._lastInput = null; | |
if (this._inDialog) { | |
this._dialogInput.css({ | |
position: "absolute", | |
left: "0", | |
top: "-100px" | |
}); | |
if (g.blockUI) { | |
g.unblockUI(); | |
g("body").append(this.dpDiv); | |
} | |
} | |
this._inDialog = false; | |
} | |
}, | |
_tidyDialog: function(l) { | |
l.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); | |
}, | |
_checkExternalClick: function(m) { | |
if (!g.datepicker._curInst) { | |
return; | |
} | |
var l = g(m.target), n = g.datepicker._getInst(l[0]); | |
if (l[0].id !== g.datepicker._mainDivId && l.parents("#" + g.datepicker._mainDivId).length === 0 && !l.hasClass(g.datepicker.markerClassName) && !l.closest("." + g.datepicker._triggerClass).length && g.datepicker._datepickerShowing && !(g.datepicker._inDialog && g.blockUI) || l.hasClass(g.datepicker.markerClassName) && g.datepicker._curInst !== n) { | |
g.datepicker._hideDatepicker(); | |
} | |
}, | |
_adjustDate: function(p, o, n) { | |
var m = g(p), l = this._getInst(m[0]); | |
if (this._isDisabledDatepicker(m[0])) { | |
return; | |
} | |
this._adjustInstDate(l, o + (n === "M" ? this._get(l, "showCurrentAtPos") : 0), n); | |
this._updateDatepicker(l); | |
}, | |
_gotoToday: function(o) { | |
var l, n = g(o), m = this._getInst(n[0]); | |
if (this._get(m, "gotoCurrent") && m.currentDay) { | |
m.selectedDay = m.currentDay; | |
m.drawMonth = m.selectedMonth = m.currentMonth; | |
m.drawYear = m.selectedYear = m.currentYear; | |
} else { | |
l = new Date(); | |
m.selectedDay = l.getDate(); | |
m.drawMonth = m.selectedMonth = l.getMonth(); | |
m.drawYear = m.selectedYear = l.getFullYear(); | |
} | |
this._notifyChange(m); | |
this._adjustDate(n); | |
}, | |
_selectMonthYear: function(p, l, o) { | |
var n = g(p), m = this._getInst(n[0]); | |
m["selected" + (o === "M" ? "Month" : "Year")] = m["draw" + (o === "M" ? "Month" : "Year")] = parseInt(l.options[l.selectedIndex].value, 10); | |
this._notifyChange(m); | |
this._adjustDate(n); | |
}, | |
_selectDay: function(q, o, l, p) { | |
var m, n = g(q); | |
if (g(p).hasClass(this._unselectableClass) || this._isDisabledDatepicker(n[0])) { | |
return; | |
} | |
m = this._getInst(n[0]); | |
m.selectedDay = m.currentDay = g("a", p).html(); | |
m.selectedMonth = m.currentMonth = o; | |
m.selectedYear = m.currentYear = l; | |
this._selectDate(q, this._formatDate(m, m.currentDay, m.currentMonth, m.currentYear)); | |
}, | |
_clearDate: function(m) { | |
var l = g(m); | |
this._selectDate(l, ""); | |
}, | |
_selectDate: function(p, l) { | |
var m, o = g(p), n = this._getInst(o[0]); | |
l = l != null ? l : this._formatDate(n); | |
if (n.input) { | |
n.input.val(l); | |
} | |
this._updateAlternate(n); | |
m = this._get(n, "onSelect"); | |
if (m) { | |
m.apply(n.input ? n.input[0] : null, [ l, n ]); | |
} else { | |
if (n.input) { | |
n.input.trigger("change"); | |
} | |
} | |
if (n.inline) { | |
this._updateDatepicker(n); | |
} else { | |
this._hideDatepicker(); | |
this._lastInput = n.input[0]; | |
if (typeof n.input[0] !== "object") { | |
n.input.focus(); | |
} | |
this._lastInput = null; | |
} | |
}, | |
_updateAlternate: function(p) { | |
var o, n, l, m = this._get(p, "altField"); | |
if (m) { | |
o = this._get(p, "altFormat") || this._get(p, "dateFormat"); | |
n = this._getDate(p); | |
l = this.formatDate(o, n, this._getFormatConfig(p)); | |
g(m).each(function() { | |
g(this).val(l); | |
}); | |
} | |
}, | |
noWeekends: function(m) { | |
var l = m.getDay(); | |
return [ l > 0 && l < 6, "" ]; | |
}, | |
iso8601Week: function(l) { | |
var m, n = new Date(l.getTime()); | |
n.setDate(n.getDate() + 4 - (n.getDay() || 7)); | |
m = n.getTime(); | |
n.setMonth(0); | |
n.setDate(1); | |
return Math.floor(Math.round((m - n) / 864e5) / 7) + 1; | |
}, | |
parseDate: function(B, w, D) { | |
if (B == null || w == null) { | |
throw "Invalid arguments"; | |
} | |
w = typeof w === "object" ? w.toString() : w + ""; | |
if (w === "") { | |
return null; | |
} | |
var o, y, m, C = 0, r = (D ? D.shortYearCutoff : null) || this._defaults.shortYearCutoff, n = typeof r !== "string" ? r : new Date().getFullYear() % 100 + parseInt(r, 10), u = (D ? D.dayNamesShort : null) || this._defaults.dayNamesShort, F = (D ? D.dayNames : null) || this._defaults.dayNames, l = (D ? D.monthNamesShort : null) || this._defaults.monthNamesShort, p = (D ? D.monthNames : null) || this._defaults.monthNames, q = -1, G = -1, A = -1, t = -1, z = false, E, v = function(I) { | |
var J = o + 1 < B.length && B.charAt(o + 1) === I; | |
if (J) { | |
o++; | |
} | |
return J; | |
}, H = function(K) { | |
var I = v(K), L = K === "@" ? 14 : K === "!" ? 20 : K === "y" && I ? 4 : K === "o" ? 3 : 2, M = new RegExp("^\\d{1," + L + "}"), J = w.substring(C).match(M); | |
if (!J) { | |
throw "Missing number at position " + C; | |
} | |
C += J[0].length; | |
return parseInt(J[0], 10); | |
}, s = function(J, K, M) { | |
var I = -1, L = g.map(v(J) ? M : K, function(O, N) { | |
return [ [ N, O ] ]; | |
}).sort(function(O, N) { | |
return -(O[1].length - N[1].length); | |
}); | |
g.each(L, function(O, P) { | |
var N = P[1]; | |
if (w.substr(C, N.length).toLowerCase() === N.toLowerCase()) { | |
I = P[0]; | |
C += N.length; | |
return false; | |
} | |
}); | |
if (I !== -1) { | |
return I + 1; | |
} else { | |
throw "Unknown name at position " + C; | |
} | |
}, x = function() { | |
if (w.charAt(C) !== B.charAt(o)) { | |
throw "Unexpected literal at position " + C; | |
} | |
C++; | |
}; | |
for (o = 0; o < B.length; o++) { | |
if (z) { | |
if (B.charAt(o) === "'" && !v("'")) { | |
z = false; | |
} else { | |
x(); | |
} | |
} else { | |
switch (B.charAt(o)) { | |
case "d": | |
A = H("d"); | |
break; | |
case "D": | |
s("D", u, F); | |
break; | |
case "o": | |
t = H("o"); | |
break; | |
case "m": | |
G = H("m"); | |
break; | |
case "M": | |
G = s("M", l, p); | |
break; | |
case "y": | |
q = H("y"); | |
break; | |
case "@": | |
E = new Date(H("@")); | |
q = E.getFullYear(); | |
G = E.getMonth() + 1; | |
A = E.getDate(); | |
break; | |
case "!": | |
E = new Date((H("!") - this._ticksTo1970) / 1e4); | |
q = E.getFullYear(); | |
G = E.getMonth() + 1; | |
A = E.getDate(); | |
break; | |
case "'": | |
if (v("'")) { | |
x(); | |
} else { | |
z = true; | |
} | |
break; | |
default: | |
x(); | |
} | |
} | |
} | |
if (C < w.length) { | |
m = w.substr(C); | |
if (!/^\s+/.test(m)) { | |
throw "Extra/unparsed characters found in date: " + m; | |
} | |
} | |
if (q === -1) { | |
q = new Date().getFullYear(); | |
} else { | |
if (q < 100) { | |
q += new Date().getFullYear() - new Date().getFullYear() % 100 + (q <= n ? 0 : -100); | |
} | |
} | |
if (t > -1) { | |
G = 1; | |
A = t; | |
do { | |
y = this._getDaysInMonth(q, G - 1); | |
if (A <= y) { | |
break; | |
} | |
G++; | |
A -= y; | |
} while (true); | |
} | |
E = this._daylightSavingAdjust(new Date(q, G - 1, A)); | |
if (E.getFullYear() !== q || E.getMonth() + 1 !== G || E.getDate() !== A) { | |
throw "Invalid date"; | |
} | |
return E; | |
}, | |
ATOM: "yy-mm-dd", | |
COOKIE: "D, dd M yy", | |
ISO_8601: "yy-mm-dd", | |
RFC_822: "D, d M y", | |
RFC_850: "DD, dd-M-y", | |
RFC_1036: "D, d M y", | |
RFC_1123: "D, d M yy", | |
RFC_2822: "D, d M yy", | |
RSS: "D, d M y", | |
TICKS: "!", | |
TIMESTAMP: "@", | |
W3C: "yy-mm-dd", | |
_ticksTo1970: ((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 1e7, | |
formatDate: function(u, o, p) { | |
if (!o) { | |
return ""; | |
} | |
var w, x = (p ? p.dayNamesShort : null) || this._defaults.dayNamesShort, m = (p ? p.dayNames : null) || this._defaults.dayNames, s = (p ? p.monthNamesShort : null) || this._defaults.monthNamesShort, q = (p ? p.monthNames : null) || this._defaults.monthNames, v = function(y) { | |
var z = w + 1 < u.length && u.charAt(w + 1) === y; | |
if (z) { | |
w++; | |
} | |
return z; | |
}, l = function(A, B, y) { | |
var z = "" + B; | |
if (v(A)) { | |
while (z.length < y) { | |
z = "0" + z; | |
} | |
} | |
return z; | |
}, r = function(y, A, z, B) { | |
return v(y) ? B[A] : z[A]; | |
}, n = "", t = false; | |
if (o) { | |
for (w = 0; w < u.length; w++) { | |
if (t) { | |
if (u.charAt(w) === "'" && !v("'")) { | |
t = false; | |
} else { | |
n += u.charAt(w); | |
} | |
} else { | |
switch (u.charAt(w)) { | |
case "d": | |
n += l("d", o.getDate(), 2); | |
break; | |
case "D": | |
n += r("D", o.getDay(), x, m); | |
break; | |
case "o": | |
n += l("o", Math.round((new Date(o.getFullYear(), o.getMonth(), o.getDate()).getTime() - new Date(o.getFullYear(), 0, 0).getTime()) / 864e5), 3); | |
break; | |
case "m": | |
n += l("m", o.getMonth() + 1, 2); | |
break; | |
case "M": | |
n += r("M", o.getMonth(), s, q); | |
break; | |
case "y": | |
n += v("y") ? o.getFullYear() : (o.getYear() % 100 < 10 ? "0" : "") + o.getYear() % 100; | |
break; | |
case "@": | |
n += o.getTime(); | |
break; | |
case "!": | |
n += o.getTime() * 1e4 + this._ticksTo1970; | |
break; | |
case "'": | |
if (v("'")) { | |
n += "'"; | |
} else { | |
t = true; | |
} | |
break; | |
default: | |
n += u.charAt(w); | |
} | |
} | |
} | |
} | |
return n; | |
}, | |
_possibleChars: function(p) { | |
var o, n = "", m = false, l = function(q) { | |
var r = o + 1 < p.length && p.charAt(o + 1) === q; | |
if (r) { | |
o++; | |
} | |
return r; | |
}; | |
for (o = 0; o < p.length; o++) { | |
if (m) { | |
if (p.charAt(o) === "'" && !l("'")) { | |
m = false; | |
} else { | |
n += p.charAt(o); | |
} | |
} else { | |
switch (p.charAt(o)) { | |
case "d": | |
case "m": | |
case "y": | |
case "@": | |
n += "0123456789"; | |
break; | |
case "D": | |
case "M": | |
return null; | |
case "'": | |
if (l("'")) { | |
n += "'"; | |
} else { | |
m = true; | |
} | |
break; | |
default: | |
n += p.charAt(o); | |
} | |
} | |
} | |
return n; | |
}, | |
_get: function(m, l) { | |
return m.settings[l] !== k ? m.settings[l] : this._defaults[l]; | |
}, | |
_setDateFromField: function(q, n) { | |
if (q.input.val() === q.lastVal) { | |
return; | |
} | |
var l = this._get(q, "dateFormat"), s = q.lastVal = q.input ? q.input.val() : null, r = this._getDefaultDate(q), m = r, o = this._getFormatConfig(q); | |
try { | |
m = this.parseDate(l, s, o) || r; | |
} catch (p) { | |
s = n ? "" : s; | |
} | |
q.selectedDay = m.getDate(); | |
q.drawMonth = q.selectedMonth = m.getMonth(); | |
q.drawYear = q.selectedYear = m.getFullYear(); | |
q.currentDay = s ? m.getDate() : 0; | |
q.currentMonth = s ? m.getMonth() : 0; | |
q.currentYear = s ? m.getFullYear() : 0; | |
this._adjustInstDate(q); | |
}, | |
_getDefaultDate: function(l) { | |
return this._restrictMinMax(l, this._determineDate(l, this._get(l, "defaultDate"), new Date())); | |
}, | |
_determineDate: function(p, m, q) { | |
var o = function(s) { | |
var r = new Date(); | |
r.setDate(r.getDate() + s); | |
return r; | |
}, n = function(y) { | |
try { | |
return g.datepicker.parseDate(g.datepicker._get(p, "dateFormat"), y, g.datepicker._getFormatConfig(p)); | |
} catch (x) {} | |
var s = (y.toLowerCase().match(/^c/) ? g.datepicker._getDate(p) : null) || new Date(), t = s.getFullYear(), w = s.getMonth(), r = s.getDate(), v = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, u = v.exec(y); | |
while (u) { | |
switch (u[2] || "d") { | |
case "d": | |
case "D": | |
r += parseInt(u[1], 10); | |
break; | |
case "w": | |
case "W": | |
r += parseInt(u[1], 10) * 7; | |
break; | |
case "m": | |
case "M": | |
w += parseInt(u[1], 10); | |
r = Math.min(r, g.datepicker._getDaysInMonth(t, w)); | |
break; | |
case "y": | |
case "Y": | |
t += parseInt(u[1], 10); | |
r = Math.min(r, g.datepicker._getDaysInMonth(t, w)); | |
break; | |
} | |
u = v.exec(y); | |
} | |
return new Date(t, w, r); | |
}, l = m == null || m === "" ? q : typeof m === "string" ? n(m) : typeof m === "number" ? isNaN(m) ? q : o(m) : new Date(m.getTime()); | |
l = l && l.toString() === "Invalid Date" ? q : l; | |
if (l) { | |
l.setHours(0); | |
l.setMinutes(0); | |
l.setSeconds(0); | |
l.setMilliseconds(0); | |
} | |
return this._daylightSavingAdjust(l); | |
}, | |
_daylightSavingAdjust: function(l) { | |
if (!l) { | |
return null; | |
} | |
l.setHours(l.getHours() > 12 ? l.getHours() + 2 : 0); | |
return l; | |
}, | |
_setDate: function(r, o, q) { | |
var l = !o, n = r.selectedMonth, p = r.selectedYear, m = this._restrictMinMax(r, this._determineDate(r, o, new Date())); | |
r.selectedDay = r.currentDay = m.getDate(); | |
r.drawMonth = r.selectedMonth = r.currentMonth = m.getMonth(); | |
r.drawYear = r.selectedYear = r.currentYear = m.getFullYear(); | |
if ((n !== r.selectedMonth || p !== r.selectedYear) && !q) { | |
this._notifyChange(r); | |
} | |
this._adjustInstDate(r); | |
if (r.input) { | |
r.input.val(l ? "" : this._formatDate(r)); | |
} | |
}, | |
_getDate: function(m) { | |
var l = !m.currentYear || m.input && m.input.val() === "" ? null : this._daylightSavingAdjust(new Date(m.currentYear, m.currentMonth, m.currentDay)); | |
return l; | |
}, | |
_attachHandlers: function(m) { | |
var l = this._get(m, "stepMonths"), n = "#" + m.id.replace(/\\\\/g, "\\"); | |
m.dpDiv.find("[data-handler]").map(function() { | |
var o = { | |
prev: function() { | |
window["DP_jQuery_" + f].datepicker._adjustDate(n, -l, "M"); | |
}, | |
next: function() { | |
window["DP_jQuery_" + f].datepicker._adjustDate(n, +l, "M"); | |
}, | |
hide: function() { | |
window["DP_jQuery_" + f].datepicker._hideDatepicker(); | |
}, | |
today: function() { | |
window["DP_jQuery_" + f].datepicker._gotoToday(n); | |
}, | |
selectDay: function() { | |
window["DP_jQuery_" + f].datepicker._selectDay(n, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this); | |
return false; | |
}, | |
selectMonth: function() { | |
window["DP_jQuery_" + f].datepicker._selectMonthYear(n, this, "M"); | |
return false; | |
}, | |
selectYear: function() { | |
window["DP_jQuery_" + f].datepicker._selectMonthYear(n, this, "Y"); | |
return false; | |
} | |
}; | |
g(this).bind(this.getAttribute("data-event"), o[this.getAttribute("data-handler")]); | |
}); | |
}, | |
_generateHTML: function(ab) { | |
var E, D, W, O, p, af, Z, S, ai, M, am, w, y, x, m, ae, u, H, ah, U, an, G, L, v, q, X, Q, T, R, t, J, z, aa, ad, o, ag, ak, P, A, ac = new Date(), F = this._daylightSavingAdjust(new Date(ac.getFullYear(), ac.getMonth(), ac.getDate())), aj = this._get(ab, "isRTL"), al = this._get(ab, "showButtonPanel"), V = this._get(ab, "hideIfNoPrevNext"), K = this._get(ab, "navigationAsDateFormat"), B = this._getNumberOfMonths(ab), s = this._get(ab, "showCurrentAtPos"), N = this._get(ab, "stepMonths"), I = B[0] !== 1 || B[1] !== 1, n = this._daylightSavingAdjust(!ab.currentDay ? new Date(9999, 9, 9) : new Date(ab.currentYear, ab.currentMonth, ab.currentDay)), r = this._getMinMaxDate(ab, "min"), C = this._getMinMaxDate(ab, "max"), l = ab.drawMonth - s, Y = ab.drawYear; | |
if (l < 0) { | |
l += 12; | |
Y--; | |
} | |
if (C) { | |
E = this._daylightSavingAdjust(new Date(C.getFullYear(), C.getMonth() - B[0] * B[1] + 1, C.getDate())); | |
E = r && E < r ? r : E; | |
while (this._daylightSavingAdjust(new Date(Y, l, 1)) > E) { | |
l--; | |
if (l < 0) { | |
l = 11; | |
Y--; | |
} | |
} | |
} | |
ab.drawMonth = l; | |
ab.drawYear = Y; | |
D = this._get(ab, "prevText"); | |
D = !K ? D : this.formatDate(D, this._daylightSavingAdjust(new Date(Y, l - N, 1)), this._getFormatConfig(ab)); | |
W = this._canAdjustMonth(ab, -1, Y, l) ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + D + "'><span class='ui-icon ui-icon-circle-triangle-" + (aj ? "e" : "w") + "'>" + D + "</span></a>" : V ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + D + "'><span class='ui-icon ui-icon-circle-triangle-" + (aj ? "e" : "w") + "'>" + D + "</span></a>"; | |
O = this._get(ab, "nextText"); | |
O = !K ? O : this.formatDate(O, this._daylightSavingAdjust(new Date(Y, l + N, 1)), this._getFormatConfig(ab)); | |
p = this._canAdjustMonth(ab, +1, Y, l) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + O + "'><span class='ui-icon ui-icon-circle-triangle-" + (aj ? "w" : "e") + "'>" + O + "</span></a>" : V ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + O + "'><span class='ui-icon ui-icon-circle-triangle-" + (aj ? "w" : "e") + "'>" + O + "</span></a>"; | |
af = this._get(ab, "currentText"); | |
Z = this._get(ab, "gotoCurrent") && ab.currentDay ? n : F; | |
af = !K ? af : this.formatDate(af, Z, this._getFormatConfig(ab)); | |
S = !ab.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + this._get(ab, "closeText") + "</button>" : ""; | |
ai = al ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (aj ? S : "") + (this._isInRange(ab, Z) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + af + "</button>" : "") + (aj ? "" : S) + "</div>" : ""; | |
M = parseInt(this._get(ab, "firstDay"), 10); | |
M = isNaN(M) ? 0 : M; | |
am = this._get(ab, "showWeek"); | |
w = this._get(ab, "dayNames"); | |
y = this._get(ab, "dayNamesMin"); | |
x = this._get(ab, "monthNames"); | |
m = this._get(ab, "monthNamesShort"); | |
ae = this._get(ab, "beforeShowDay"); | |
u = this._get(ab, "showOtherMonths"); | |
H = this._get(ab, "selectOtherMonths"); | |
ah = this._getDefaultDate(ab); | |
U = ""; | |
an; | |
for (G = 0; G < B[0]; G++) { | |
L = ""; | |
this.maxRows = 4; | |
for (v = 0; v < B[1]; v++) { | |
q = this._daylightSavingAdjust(new Date(Y, l, ab.selectedDay)); | |
X = " ui-corner-all"; | |
Q = ""; | |
if (I) { | |
Q += "<div class='ui-datepicker-group"; | |
if (B[1] > 1) { | |
switch (v) { | |
case 0: | |
Q += " ui-datepicker-group-first"; | |
X = " ui-corner-" + (aj ? "right" : "left"); | |
break; | |
case B[1] - 1: | |
Q += " ui-datepicker-group-last"; | |
X = " ui-corner-" + (aj ? "left" : "right"); | |
break; | |
default: | |
Q += " ui-datepicker-group-middle"; | |
X = ""; | |
break; | |
} | |
} | |
Q += "'>"; | |
} | |
Q += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + X + "'>" + (/all|left/.test(X) && G === 0 ? aj ? p : W : "") + (/all|right/.test(X) && G === 0 ? aj ? W : p : "") + this._generateMonthYearHeader(ab, l, Y, r, C, G > 0 || v > 0, x, m) + "</div><table class='ui-datepicker-calendar'><thead><tr>"; | |
T = am ? "<th class='ui-datepicker-week-col'>" + this._get(ab, "weekHeader") + "</th>" : ""; | |
for (an = 0; an < 7; an++) { | |
R = (an + M) % 7; | |
T += "<th" + ((an + M + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + w[R] + "'>" + y[R] + "</span></th>"; | |
} | |
Q += T + "</tr></thead><tbody>"; | |
t = this._getDaysInMonth(Y, l); | |
if (Y === ab.selectedYear && l === ab.selectedMonth) { | |
ab.selectedDay = Math.min(ab.selectedDay, t); | |
} | |
J = (this._getFirstDayOfMonth(Y, l) - M + 7) % 7; | |
z = Math.ceil((J + t) / 7); | |
aa = I ? this.maxRows > z ? this.maxRows : z : z; | |
this.maxRows = aa; | |
ad = this._daylightSavingAdjust(new Date(Y, l, 1 - J)); | |
for (o = 0; o < aa; o++) { | |
Q += "<tr>"; | |
ag = !am ? "" : "<td class='ui-datepicker-week-col'>" + this._get(ab, "calculateWeek")(ad) + "</td>"; | |
for (an = 0; an < 7; an++) { | |
ak = ae ? ae.apply(ab.input ? ab.input[0] : null, [ ad ]) : [ true, "" ]; | |
P = ad.getMonth() !== l; | |
A = P && !H || !ak[0] || r && ad < r || C && ad > C; | |
ag += "<td class='" + ((an + M + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (P ? " ui-datepicker-other-month" : "") + (ad.getTime() === q.getTime() && l === ab.selectedMonth && ab._keyEvent || ah.getTime() === ad.getTime() && ah.getTime() === q.getTime() ? " " + this._dayOverClass : "") + (A ? " " + this._unselectableClass + " ui-state-disabled" : "") + (P && !u ? "" : " " + ak[1] + (ad.getTime() === n.getTime() ? " " + this._currentClass : "") + (ad.getTime() === F.getTime() ? " ui-datepicker-today" : "")) + "'" + ((!P || u) && ak[2] ? " title='" + ak[2].replace(/'/g, "'") + "'" : "") + (A ? "" : " data-handler='selectDay' data-event='click' data-month='" + ad.getMonth() + "' data-year='" + ad.getFullYear() + "'") + ">" + (P && !u ? " " : A ? "<span class='ui-state-default'>" + ad.getDate() + "</span>" : "<a class='ui-state-default" + (ad.getTime() === F.getTime() ? " ui-state-highlight" : "") + (ad.getTime() === n.getTime() ? " ui-state-active" : "") + (P ? " ui-priority-secondary" : "") + "' href='#'>" + ad.getDate() + "</a>") + "</td>"; | |
ad.setDate(ad.getDate() + 1); | |
ad = this._daylightSavingAdjust(ad); | |
} | |
Q += ag + "</tr>"; | |
} | |
l++; | |
if (l > 11) { | |
l = 0; | |
Y++; | |
} | |
Q += "</tbody></table>" + (I ? "</div>" + (B[0] > 0 && v === B[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : ""); | |
L += Q; | |
} | |
U += L; | |
} | |
U += ai; | |
ab._keyEvent = false; | |
return U; | |
}, | |
_generateMonthYearHeader: function(p, n, x, r, v, y, t, l) { | |
var C, m, D, A, q, z, w, s, o = this._get(p, "changeMonth"), E = this._get(p, "changeYear"), F = this._get(p, "showMonthAfterYear"), u = "<div class='ui-datepicker-title'>", B = ""; | |
if (y || !o) { | |
B += "<span class='ui-datepicker-month'>" + t[n] + "</span>"; | |
} else { | |
C = r && r.getFullYear() === x; | |
m = v && v.getFullYear() === x; | |
B += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>"; | |
for (D = 0; D < 12; D++) { | |
if ((!C || D >= r.getMonth()) && (!m || D <= v.getMonth())) { | |
B += "<option value='" + D + "'" + (D === n ? " selected='selected'" : "") + ">" + l[D] + "</option>"; | |
} | |
} | |
B += "</select>"; | |
} | |
if (!F) { | |
u += B + (y || !(o && E) ? " " : ""); | |
} | |
if (!p.yearshtml) { | |
p.yearshtml = ""; | |
if (y || !E) { | |
u += "<span class='ui-datepicker-year'>" + x + "</span>"; | |
} else { | |
A = this._get(p, "yearRange").split(":"); | |
q = new Date().getFullYear(); | |
z = function(H) { | |
var G = H.match(/c[+\-].*/) ? x + parseInt(H.substring(1), 10) : H.match(/[+\-].*/) ? q + parseInt(H, 10) : parseInt(H, 10); | |
return isNaN(G) ? q : G; | |
}; | |
w = z(A[0]); | |
s = Math.max(w, z(A[1] || "")); | |
w = r ? Math.max(w, r.getFullYear()) : w; | |
s = v ? Math.min(s, v.getFullYear()) : s; | |
p.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; | |
for (;w <= s; w++) { | |
p.yearshtml += "<option value='" + w + "'" + (w === x ? " selected='selected'" : "") + ">" + w + "</option>"; | |
} | |
p.yearshtml += "</select>"; | |
u += p.yearshtml; | |
p.yearshtml = null; | |
} | |
} | |
u += this._get(p, "yearSuffix"); | |
if (F) { | |
u += (y || !(o && E) ? " " : "") + B; | |
} | |
u += "</div>"; | |
return u; | |
}, | |
_adjustInstDate: function(o, r, q) { | |
var n = o.drawYear + (q === "Y" ? r : 0), p = o.drawMonth + (q === "M" ? r : 0), l = Math.min(o.selectedDay, this._getDaysInMonth(n, p)) + (q === "D" ? r : 0), m = this._restrictMinMax(o, this._daylightSavingAdjust(new Date(n, p, l))); | |
o.selectedDay = m.getDate(); | |
o.drawMonth = o.selectedMonth = m.getMonth(); | |
o.drawYear = o.selectedYear = m.getFullYear(); | |
if (q === "M" || q === "Y") { | |
this._notifyChange(o); | |
} | |
}, | |
_restrictMinMax: function(o, m) { | |
var n = this._getMinMaxDate(o, "min"), p = this._getMinMaxDate(o, "max"), l = n && m < n ? n : m; | |
return p && l > p ? p : l; | |
}, | |
_notifyChange: function(m) { | |
var l = this._get(m, "onChangeMonthYear"); | |
if (l) { | |
l.apply(m.input ? m.input[0] : null, [ m.selectedYear, m.selectedMonth + 1, m ]); | |
} | |
}, | |
_getNumberOfMonths: function(m) { | |
var l = this._get(m, "numberOfMonths"); | |
return l == null ? [ 1, 1 ] : typeof l === "number" ? [ 1, l ] : l; | |
}, | |
_getMinMaxDate: function(m, l) { | |
return this._determineDate(m, this._get(m, l + "Date"), null); | |
}, | |
_getDaysInMonth: function(l, m) { | |
return 32 - this._daylightSavingAdjust(new Date(l, m, 32)).getDate(); | |
}, | |
_getFirstDayOfMonth: function(l, m) { | |
return new Date(l, m, 1).getDay(); | |
}, | |
_canAdjustMonth: function(o, q, n, p) { | |
var l = this._getNumberOfMonths(o), m = this._daylightSavingAdjust(new Date(n, p + (q < 0 ? q : l[0] * l[1]), 1)); | |
if (q < 0) { | |
m.setDate(this._getDaysInMonth(m.getFullYear(), m.getMonth())); | |
} | |
return this._isInRange(o, m); | |
}, | |
_isInRange: function(p, n) { | |
var m, s, o = this._getMinMaxDate(p, "min"), l = this._getMinMaxDate(p, "max"), t = null, q = null, r = this._get(p, "yearRange"); | |
if (r) { | |
m = r.split(":"); | |
s = new Date().getFullYear(); | |
t = parseInt(m[0], 10); | |
q = parseInt(m[1], 10); | |
if (m[0].match(/[+\-].*/)) { | |
t += s; | |
} | |
if (m[1].match(/[+\-].*/)) { | |
q += s; | |
} | |
} | |
return (!o || n.getTime() >= o.getTime()) && (!l || n.getTime() <= l.getTime()) && (!t || n.getFullYear() >= t) && (!q || n.getFullYear() <= q); | |
}, | |
_getFormatConfig: function(l) { | |
var m = this._get(l, "shortYearCutoff"); | |
m = typeof m !== "string" ? m : new Date().getFullYear() % 100 + parseInt(m, 10); | |
return { | |
shortYearCutoff: m, | |
dayNamesShort: this._get(l, "dayNamesShort"), | |
dayNames: this._get(l, "dayNames"), | |
monthNamesShort: this._get(l, "monthNamesShort"), | |
monthNames: this._get(l, "monthNames") | |
}; | |
}, | |
_formatDate: function(o, l, p, n) { | |
if (!l) { | |
o.currentDay = o.selectedDay; | |
o.currentMonth = o.selectedMonth; | |
o.currentYear = o.selectedYear; | |
} | |
var m = l ? typeof l === "object" ? l : this._daylightSavingAdjust(new Date(n, p, l)) : this._daylightSavingAdjust(new Date(o.currentYear, o.currentMonth, o.currentDay)); | |
return this.formatDate(this._get(o, "dateFormat"), m, this._getFormatConfig(o)); | |
} | |
}); | |
function d(m) { | |
var l = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; | |
return m.delegate(l, "mouseout", function() { | |
g(this).removeClass("ui-state-hover"); | |
if (this.className.indexOf("ui-datepicker-prev") !== -1) { | |
g(this).removeClass("ui-datepicker-prev-hover"); | |
} | |
if (this.className.indexOf("ui-datepicker-next") !== -1) { | |
g(this).removeClass("ui-datepicker-next-hover"); | |
} | |
}).delegate(l, "mouseover", function() { | |
if (!g.datepicker._isDisabledDatepicker(c.inline ? m.parent()[0] : c.input[0])) { | |
g(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); | |
g(this).addClass("ui-state-hover"); | |
if (this.className.indexOf("ui-datepicker-prev") !== -1) { | |
g(this).addClass("ui-datepicker-prev-hover"); | |
} | |
if (this.className.indexOf("ui-datepicker-next") !== -1) { | |
g(this).addClass("ui-datepicker-next-hover"); | |
} | |
} | |
}); | |
} | |
function a(n, m) { | |
g.extend(n, m); | |
for (var l in m) { | |
if (m[l] == null) { | |
n[l] = m[l]; | |
} | |
} | |
return n; | |
} | |
g.fn.datepicker = function(m) { | |
if (!this.length) { | |
return this; | |
} | |
if (!g.datepicker.initialized) { | |
g(document).mousedown(g.datepicker._checkExternalClick); | |
g.datepicker.initialized = true; | |
} | |
if (g("#" + g.datepicker._mainDivId).length === 0) { | |
g("body").append(g.datepicker.dpDiv); | |
} | |
var l = Array.prototype.slice.call(arguments, 1); | |
if (typeof m === "string" && (m === "isDisabled" || m === "getDate" || m === "widget")) { | |
return g.datepicker["_" + m + "Datepicker"].apply(g.datepicker, [ this[0] ].concat(l)); | |
} | |
if (m === "option" && arguments.length === 2 && typeof arguments[1] === "string") { | |
return g.datepicker["_" + m + "Datepicker"].apply(g.datepicker, [ this[0] ].concat(l)); | |
} | |
return this.each(function() { | |
typeof m === "string" ? g.datepicker["_" + m + "Datepicker"].apply(g.datepicker, [ this ].concat(l)) : g.datepicker._attachDatepicker(this, m); | |
}); | |
}; | |
g.datepicker = new b(); | |
g.datepicker.initialized = false; | |
g.datepicker.uuid = new Date().getTime(); | |
g.datepicker.version = "1.10.1"; | |
window["DP_jQuery_" + f] = g; | |
})(jQuery); | |
(function(c, d) { | |
var a = { | |
buttons: true, | |
height: true, | |
maxHeight: true, | |
maxWidth: true, | |
minHeight: true, | |
minWidth: true, | |
width: true | |
}, b = { | |
maxHeight: true, | |
maxWidth: true, | |
minHeight: true, | |
minWidth: true | |
}; | |
c.widget("ui.dialog", { | |
version: "1.10.1", | |
options: { | |
appendTo: "body", | |
autoOpen: true, | |
buttons: [], | |
closeOnEscape: true, | |
closeText: "close", | |
dialogClass: "", | |
draggable: true, | |
hide: null, | |
height: "auto", | |
maxHeight: null, | |
maxWidth: null, | |
minHeight: 150, | |
minWidth: 150, | |
modal: false, | |
position: { | |
my: "center", | |
at: "center", | |
of: window, | |
collision: "fit", | |
using: function(g) { | |
var f = c(this).css(g).offset().top; | |
if (f < 0) { | |
c(this).css("top", g.top - f); | |
} | |
} | |
}, | |
resizable: true, | |
show: null, | |
title: null, | |
width: 300, | |
beforeClose: null, | |
close: null, | |
drag: null, | |
dragStart: null, | |
dragStop: null, | |
focus: null, | |
open: null, | |
resize: null, | |
resizeStart: null, | |
resizeStop: null | |
}, | |
_create: function() { | |
this.originalCss = { | |
display: this.element[0].style.display, | |
width: this.element[0].style.width, | |
minHeight: this.element[0].style.minHeight, | |
maxHeight: this.element[0].style.maxHeight, | |
height: this.element[0].style.height | |
}; | |
this.originalPosition = { | |
parent: this.element.parent(), | |
index: this.element.parent().children().index(this.element) | |
}; | |
this.originalTitle = this.element.attr("title"); | |
this.options.title = this.options.title || this.originalTitle; | |
this._createWrapper(); | |
this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog); | |
this._createTitlebar(); | |
this._createButtonPane(); | |
if (this.options.draggable && c.fn.draggable) { | |
this._makeDraggable(); | |
} | |
if (this.options.resizable && c.fn.resizable) { | |
this._makeResizable(); | |
} | |
this._isOpen = false; | |
}, | |
_init: function() { | |
if (this.options.autoOpen) { | |
this.open(); | |
} | |
}, | |
_appendTo: function() { | |
var f = this.options.appendTo; | |
if (f && (f.jquery || f.nodeType)) { | |
return c(f); | |
} | |
return this.document.find(f || "body").eq(0); | |
}, | |
_destroy: function() { | |
var g, f = this.originalPosition; | |
this._destroyOverlay(); | |
this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(); | |
this.uiDialog.stop(true, true).remove(); | |
if (this.originalTitle) { | |
this.element.attr("title", this.originalTitle); | |
} | |
g = f.parent.children().eq(f.index); | |
if (g.length && g[0] !== this.element[0]) { | |
g.before(this.element); | |
} else { | |
f.parent.append(this.element); | |
} | |
}, | |
widget: function() { | |
return this.uiDialog; | |
}, | |
disable: c.noop, | |
enable: c.noop, | |
close: function(g) { | |
var f = this; | |
if (!this._isOpen || this._trigger("beforeClose", g) === false) { | |
return; | |
} | |
this._isOpen = false; | |
this._destroyOverlay(); | |
if (!this.opener.filter(":focusable").focus().length) { | |
c(this.document[0].activeElement).blur(); | |
} | |
this._hide(this.uiDialog, this.options.hide, function() { | |
f._trigger("close", g); | |
}); | |
}, | |
isOpen: function() { | |
return this._isOpen; | |
}, | |
moveToTop: function() { | |
this._moveToTop(); | |
}, | |
_moveToTop: function(h, f) { | |
var g = !!this.uiDialog.nextAll(":visible").insertBefore(this.uiDialog).length; | |
if (g && !f) { | |
this._trigger("focus", h); | |
} | |
return g; | |
}, | |
open: function() { | |
var f = this; | |
if (this._isOpen) { | |
if (this._moveToTop()) { | |
this._focusTabbable(); | |
} | |
return; | |
} | |
this._isOpen = true; | |
this.opener = c(this.document[0].activeElement); | |
this._size(); | |
this._position(); | |
this._createOverlay(); | |
this._moveToTop(null, true); | |
this._show(this.uiDialog, this.options.show, function() { | |
f._focusTabbable(); | |
f._trigger("focus"); | |
}); | |
this._trigger("open"); | |
}, | |
_focusTabbable: function() { | |
var f = this.element.find("[autofocus]"); | |
if (!f.length) { | |
f = this.element.find(":tabbable"); | |
} | |
if (!f.length) { | |
f = this.uiDialogButtonPane.find(":tabbable"); | |
} | |
if (!f.length) { | |
f = this.uiDialogTitlebarClose.filter(":tabbable"); | |
} | |
if (!f.length) { | |
f = this.uiDialog; | |
} | |
f.eq(0).focus(); | |
}, | |
_keepFocus: function(f) { | |
function g() { | |
var k = this.document[0].activeElement, h = this.uiDialog[0] === k || c.contains(this.uiDialog[0], k); | |
if (!h) { | |
this._focusTabbable(); | |
} | |
} | |
f.preventDefault(); | |
g.call(this); | |
this._delay(g); | |
}, | |
_createWrapper: function() { | |
this.uiDialog = c("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + this.options.dialogClass).hide().attr({ | |
tabIndex: -1, | |
role: "dialog" | |
}).appendTo(this._appendTo()); | |
this._on(this.uiDialog, { | |
keydown: function(h) { | |
if (this.options.closeOnEscape && !h.isDefaultPrevented() && h.keyCode && h.keyCode === c.ui.keyCode.ESCAPE) { | |
h.preventDefault(); | |
this.close(h); | |
return; | |
} | |
if (h.keyCode !== c.ui.keyCode.TAB) { | |
return; | |
} | |
var g = this.uiDialog.find(":tabbable"), k = g.filter(":first"), f = g.filter(":last"); | |
if ((h.target === f[0] || h.target === this.uiDialog[0]) && !h.shiftKey) { | |
k.focus(1); | |
h.preventDefault(); | |
} else { | |
if ((h.target === k[0] || h.target === this.uiDialog[0]) && h.shiftKey) { | |
f.focus(1); | |
h.preventDefault(); | |
} | |
} | |
}, | |
mousedown: function(f) { | |
if (this._moveToTop(f)) { | |
this._focusTabbable(); | |
} | |
} | |
}); | |
if (!this.element.find("[aria-describedby]").length) { | |
this.uiDialog.attr({ | |
"aria-describedby": this.element.uniqueId().attr("id") | |
}); | |
} | |
}, | |
_createTitlebar: function() { | |
var f; | |
this.uiDialogTitlebar = c("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog); | |
this._on(this.uiDialogTitlebar, { | |
mousedown: function(g) { | |
if (!c(g.target).closest(".ui-dialog-titlebar-close")) { | |
this.uiDialog.focus(); | |
} | |
} | |
}); | |
this.uiDialogTitlebarClose = c("<button></button>").button({ | |
label: this.options.closeText, | |
icons: { | |
primary: "ui-icon-closethick" | |
}, | |
text: false | |
}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar); | |
this._on(this.uiDialogTitlebarClose, { | |
click: function(g) { | |
g.preventDefault(); | |
this.close(g); | |
} | |
}); | |
f = c("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar); | |
this._title(f); | |
this.uiDialog.attr({ | |
"aria-labelledby": f.attr("id") | |
}); | |
}, | |
_title: function(f) { | |
if (!this.options.title) { | |
f.html(" "); | |
} | |
f.text(this.options.title); | |
}, | |
_createButtonPane: function() { | |
this.uiDialogButtonPane = c("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"); | |
this.uiButtonSet = c("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane); | |
this._createButtons(); | |
}, | |
_createButtons: function() { | |
var g = this, f = this.options.buttons; | |
this.uiDialogButtonPane.remove(); | |
this.uiButtonSet.empty(); | |
if (c.isEmptyObject(f) || c.isArray(f) && !f.length) { | |
this.uiDialog.removeClass("ui-dialog-buttons"); | |
return; | |
} | |
c.each(f, function(h, k) { | |
var l, m; | |
k = c.isFunction(k) ? { | |
click: k, | |
text: h | |
} : k; | |
k = c.extend({ | |
type: "button" | |
}, k); | |
l = k.click; | |
k.click = function() { | |
l.apply(g.element[0], arguments); | |
}; | |
m = { | |
icons: k.icons, | |
text: k.showText | |
}; | |
delete k.icons; | |
delete k.showText; | |
c("<button></button>", k).button(m).appendTo(g.uiButtonSet); | |
}); | |
this.uiDialog.addClass("ui-dialog-buttons"); | |
this.uiDialogButtonPane.appendTo(this.uiDialog); | |
}, | |
_makeDraggable: function() { | |
var h = this, g = this.options; | |
function f(k) { | |
return { | |
position: k.position, | |
offset: k.offset | |
}; | |
} | |
this.uiDialog.draggable({ | |
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", | |
handle: ".ui-dialog-titlebar", | |
containment: "document", | |
start: function(k, l) { | |
c(this).addClass("ui-dialog-dragging"); | |
h._blockFrames(); | |
h._trigger("dragStart", k, f(l)); | |
}, | |
drag: function(k, l) { | |
h._trigger("drag", k, f(l)); | |
}, | |
stop: function(k, l) { | |
g.position = [ l.position.left - h.document.scrollLeft(), l.position.top - h.document.scrollTop() ]; | |
c(this).removeClass("ui-dialog-dragging"); | |
h._unblockFrames(); | |
h._trigger("dragStop", k, f(l)); | |
} | |
}); | |
}, | |
_makeResizable: function() { | |
var m = this, k = this.options, l = k.resizable, f = this.uiDialog.css("position"), h = typeof l === "string" ? l : "n,e,s,w,se,sw,ne,nw"; | |
function g(n) { | |
return { | |
originalPosition: n.originalPosition, | |
originalSize: n.originalSize, | |
position: n.position, | |
size: n.size | |
}; | |
} | |
this.uiDialog.resizable({ | |
cancel: ".ui-dialog-content", | |
containment: "document", | |
alsoResize: this.element, | |
maxWidth: k.maxWidth, | |
maxHeight: k.maxHeight, | |
minWidth: k.minWidth, | |
minHeight: this._minHeight(), | |
handles: h, | |
start: function(n, o) { | |
c(this).addClass("ui-dialog-resizing"); | |
m._blockFrames(); | |
m._trigger("resizeStart", n, g(o)); | |
}, | |
resize: function(n, o) { | |
m._trigger("resize", n, g(o)); | |
}, | |
stop: function(n, o) { | |
k.height = c(this).height(); | |
k.width = c(this).width(); | |
c(this).removeClass("ui-dialog-resizing"); | |
m._unblockFrames(); | |
m._trigger("resizeStop", n, g(o)); | |
} | |
}).css("position", f); | |
}, | |
_minHeight: function() { | |
var f = this.options; | |
return f.height === "auto" ? f.minHeight : Math.min(f.minHeight, f.height); | |
}, | |
_position: function() { | |
var f = this.uiDialog.is(":visible"); | |
if (!f) { | |
this.uiDialog.show(); | |
} | |
this.uiDialog.position(this.options.position); | |
if (!f) { | |
this.uiDialog.hide(); | |
} | |
}, | |
_setOptions: function(h) { | |
var k = this, g = false, f = {}; | |
c.each(h, function(l, m) { | |
k._setOption(l, m); | |
if (l in a) { | |
g = true; | |
} | |
if (l in b) { | |
f[l] = m; | |
} | |
}); | |
if (g) { | |
this._size(); | |
this._position(); | |
} | |
if (this.uiDialog.is(":data(ui-resizable)")) { | |
this.uiDialog.resizable("option", f); | |
} | |
}, | |
_setOption: function(h, k) { | |
var g, l, f = this.uiDialog; | |
if (h === "dialogClass") { | |
f.removeClass(this.options.dialogClass).addClass(k); | |
} | |
if (h === "disabled") { | |
return; | |
} | |
this._super(h, k); | |
if (h === "appendTo") { | |
this.uiDialog.appendTo(this._appendTo()); | |
} | |
if (h === "buttons") { | |
this._createButtons(); | |
} | |
if (h === "closeText") { | |
this.uiDialogTitlebarClose.button({ | |
label: "" + k | |
}); | |
} | |
if (h === "draggable") { | |
g = f.is(":data(ui-draggable)"); | |
if (g && !k) { | |
f.draggable("destroy"); | |
} | |
if (!g && k) { | |
this._makeDraggable(); | |
} | |
} | |
if (h === "position") { | |
this._position(); | |
} | |
if (h === "resizable") { | |
l = f.is(":data(ui-resizable)"); | |
if (l && !k) { | |
f.resizable("destroy"); | |
} | |
if (l && typeof k === "string") { | |
f.resizable("option", "handles", k); | |
} | |
if (!l && k !== false) { | |
this._makeResizable(); | |
} | |
} | |
if (h === "title") { | |
this._title(this.uiDialogTitlebar.find(".ui-dialog-title")); | |
} | |
}, | |
_size: function() { | |
var f, h, k, g = this.options; | |
this.element.show().css({ | |
width: "auto", | |
minHeight: 0, | |
maxHeight: "none", | |
height: 0 | |
}); | |
if (g.minWidth > g.width) { | |
g.width = g.minWidth; | |
} | |
f = this.uiDialog.css({ | |
height: "auto", | |
width: g.width | |
}).outerHeight(); | |
h = Math.max(0, g.minHeight - f); | |
k = typeof g.maxHeight === "number" ? Math.max(0, g.maxHeight - f) : "none"; | |
if (g.height === "auto") { | |
this.element.css({ | |
minHeight: h, | |
maxHeight: k, | |
height: "auto" | |
}); | |
} else { | |
this.element.height(Math.max(0, g.height - f)); | |
} | |
if (this.uiDialog.is(":data(ui-resizable)")) { | |
this.uiDialog.resizable("option", "minHeight", this._minHeight()); | |
} | |
}, | |
_blockFrames: function() { | |
this.iframeBlocks = this.document.find("iframe").map(function() { | |
var f = c(this); | |
return c("<div>").css({ | |
position: "absolute", | |
width: f.outerWidth(), | |
height: f.outerHeight() | |
}).appendTo(f.parent()).offset(f.offset())[0]; | |
}); | |
}, | |
_unblockFrames: function() { | |
if (this.iframeBlocks) { | |
this.iframeBlocks.remove(); | |
delete this.iframeBlocks; | |
} | |
}, | |
_createOverlay: function() { | |
if (!this.options.modal) { | |
return; | |
} | |
if (!c.ui.dialog.overlayInstances) { | |
this._delay(function() { | |
if (c.ui.dialog.overlayInstances) { | |
this.document.bind("focusin.dialog", function(f) { | |
if (!c(f.target).closest(".ui-dialog").length && !c(f.target).closest(".ui-datepicker").length) { | |
f.preventDefault(); | |
c(".ui-dialog:visible:last .ui-dialog-content").data("ui-dialog")._focusTabbable(); | |
} | |
}); | |
} | |
}); | |
} | |
this.overlay = c("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()); | |
this._on(this.overlay, { | |
mousedown: "_keepFocus" | |
}); | |
c.ui.dialog.overlayInstances++; | |
}, | |
_destroyOverlay: function() { | |
if (!this.options.modal) { | |
return; | |
} | |
if (this.overlay) { | |
c.ui.dialog.overlayInstances--; | |
if (!c.ui.dialog.overlayInstances) { | |
this.document.unbind("focusin.dialog"); | |
} | |
this.overlay.remove(); | |
this.overlay = null; | |
} | |
} | |
}); | |
c.ui.dialog.overlayInstances = 0; | |
if (c.uiBackCompat !== false) { | |
c.widget("ui.dialog", c.ui.dialog, { | |
_position: function() { | |
var g = this.options.position, h = [], k = [ 0, 0 ], f; | |
if (g) { | |
if (typeof g === "string" || typeof g === "object" && "0" in g) { | |
h = g.split ? g.split(" ") : [ g[0], g[1] ]; | |
if (h.length === 1) { | |
h[1] = h[0]; | |
} | |
c.each([ "left", "top" ], function(m, l) { | |
if (+h[m] === h[m]) { | |
k[m] = h[m]; | |
h[m] = l; | |
} | |
}); | |
g = { | |
my: h[0] + (k[0] < 0 ? k[0] : "+" + k[0]) + " " + h[1] + (k[1] < 0 ? k[1] : "+" + k[1]), | |
at: h.join(" ") | |
}; | |
} | |
g = c.extend({}, c.ui.dialog.prototype.options.position, g); | |
} else { | |
g = c.ui.dialog.prototype.options.position; | |
} | |
f = this.uiDialog.is(":visible"); | |
if (!f) { | |
this.uiDialog.show(); | |
} | |
this.uiDialog.position(g); | |
if (!f) { | |
this.uiDialog.hide(); | |
} | |
} | |
}); | |
} | |
})(jQuery); | |
jQuery.effects || function(a, c) { | |
var b = "ui-effects-"; | |
a.effects = { | |
effect: {} | |
}; | |
(function(u, h) { | |
var q = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", n = /^([\-+])=\s*(\d+\.?\d*)/, m = [ { | |
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, | |
parse: function(v) { | |
return [ v[1], v[2], v[3], v[4] ]; | |
} | |
}, { | |
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, | |
parse: function(v) { | |
return [ v[1] * 2.55, v[2] * 2.55, v[3] * 2.55, v[4] ]; | |
} | |
}, { | |
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, | |
parse: function(v) { | |
return [ parseInt(v[1], 16), parseInt(v[2], 16), parseInt(v[3], 16) ]; | |
} | |
}, { | |
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, | |
parse: function(v) { | |
return [ parseInt(v[1] + v[1], 16), parseInt(v[2] + v[2], 16), parseInt(v[3] + v[3], 16) ]; | |
} | |
}, { | |
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, | |
space: "hsla", | |
parse: function(v) { | |
return [ v[1], v[2] / 100, v[3] / 100, v[4] ]; | |
} | |
} ], k = u.Color = function(w, x, v, y) { | |
return new u.Color.fn.parse(w, x, v, y); | |
}, p = { | |
rgba: { | |
props: { | |
red: { | |
idx: 0, | |
type: "byte" | |
}, | |
green: { | |
idx: 1, | |
type: "byte" | |
}, | |
blue: { | |
idx: 2, | |
type: "byte" | |
} | |
} | |
}, | |
hsla: { | |
props: { | |
hue: { | |
idx: 0, | |
type: "degrees" | |
}, | |
saturation: { | |
idx: 1, | |
type: "percent" | |
}, | |
lightness: { | |
idx: 2, | |
type: "percent" | |
} | |
} | |
} | |
}, t = { | |
"byte": { | |
floor: true, | |
max: 255 | |
}, | |
percent: { | |
max: 1 | |
}, | |
degrees: { | |
mod: 360, | |
floor: true | |
} | |
}, s = k.support = {}, f = u("<p>")[0], d, r = u.each; | |
f.style.cssText = "background-color:rgba(1,1,1,.5)"; | |
s.rgba = f.style.backgroundColor.indexOf("rgba") > -1; | |
r(p, function(v, w) { | |
w.cache = "_" + v; | |
w.props.alpha = { | |
idx: 3, | |
type: "percent", | |
def: 1 | |
}; | |
}); | |
function o(w, y, x) { | |
var v = t[y.type] || {}; | |
if (w == null) { | |
return x || !y.def ? null : y.def; | |
} | |
w = v.floor ? ~~w : parseFloat(w); | |
if (isNaN(w)) { | |
return y.def; | |
} | |
if (v.mod) { | |
return (w + v.mod) % v.mod; | |
} | |
return 0 > w ? 0 : v.max < w ? v.max : w; | |
} | |
function l(v) { | |
var x = k(), w = x._rgba = []; | |
v = v.toLowerCase(); | |
r(m, function(C, D) { | |
var A, B = D.re.exec(v), z = B && D.parse(B), y = D.space || "rgba"; | |
if (z) { | |
A = x[y](z); | |
x[p[y].cache] = A[p[y].cache]; | |
w = x._rgba = A._rgba; | |
return false; | |
} | |
}); | |
if (w.length) { | |
if (w.join() === "0,0,0,0") { | |
u.extend(w, d.transparent); | |
} | |
return x; | |
} | |
return d[v]; | |
} | |
k.fn = u.extend(k.prototype, { | |
parse: function(B, z, v, A) { | |
if (B === h) { | |
this._rgba = [ null, null, null, null ]; | |
return this; | |
} | |
if (B.jquery || B.nodeType) { | |
B = u(B).css(z); | |
z = h; | |
} | |
var y = this, x = u.type(B), w = this._rgba = []; | |
if (z !== h) { | |
B = [ B, z, v, A ]; | |
x = "array"; | |
} | |
if (x === "string") { | |
return this.parse(l(B) || d._default); | |
} | |
if (x === "array") { | |
r(p.rgba.props, function(C, D) { | |
w[D.idx] = o(B[D.idx], D); | |
}); | |
return this; | |
} | |
if (x === "object") { | |
if (B instanceof k) { | |
r(p, function(C, D) { | |
if (B[D.cache]) { | |
y[D.cache] = B[D.cache].slice(); | |
} | |
}); | |
} else { | |
r(p, function(D, E) { | |
var C = E.cache; | |
r(E.props, function(F, G) { | |
if (!y[C] && E.to) { | |
if (F === "alpha" || B[F] == null) { | |
return; | |
} | |
y[C] = E.to(y._rgba); | |
} | |
y[C][G.idx] = o(B[F], G, true); | |
}); | |
if (y[C] && u.inArray(null, y[C].slice(0, 3)) < 0) { | |
y[C][3] = 1; | |
if (E.from) { | |
y._rgba = E.from(y[C]); | |
} | |
} | |
}); | |
} | |
return this; | |
} | |
}, | |
is: function(x) { | |
var v = k(x), y = true, w = this; | |
r(p, function(z, B) { | |
var C, A = v[B.cache]; | |
if (A) { | |
C = w[B.cache] || B.to && B.to(w._rgba) || []; | |
r(B.props, function(D, E) { | |
if (A[E.idx] != null) { | |
y = A[E.idx] === C[E.idx]; | |
return y; | |
} | |
}); | |
} | |
return y; | |
}); | |
return y; | |
}, | |
_space: function() { | |
var v = [], w = this; | |
r(p, function(x, y) { | |
if (w[y.cache]) { | |
v.push(x); | |
} | |
}); | |
return v.pop(); | |
}, | |
transition: function(w, C) { | |
var x = k(w), y = x._space(), z = p[y], A = this.alpha() === 0 ? k("transparent") : this, B = A[z.cache] || z.to(A._rgba), v = B.slice(); | |
x = x[z.cache]; | |
r(z.props, function(G, I) { | |
var F = I.idx, E = B[F], D = x[F], H = t[I.type] || {}; | |
if (D === null) { | |
return; | |
} | |
if (E === null) { | |
v[F] = D; | |
} else { | |
if (H.mod) { | |
if (D - E > H.mod / 2) { | |
E += H.mod; | |
} else { | |
if (E - D > H.mod / 2) { | |
E -= H.mod; | |
} | |
} | |
} | |
v[F] = o((D - E) * C + E, I); | |
} | |
}); | |
return this[y](v); | |
}, | |
blend: function(y) { | |
if (this._rgba[3] === 1) { | |
return this; | |
} | |
var x = this._rgba.slice(), w = x.pop(), v = k(y)._rgba; | |
return k(u.map(x, function(z, A) { | |
return (1 - w) * v[A] + w * z; | |
})); | |
}, | |
toRgbaString: function() { | |
var w = "rgba(", v = u.map(this._rgba, function(x, y) { | |
return x == null ? y > 2 ? 1 : 0 : x; | |
}); | |
if (v[3] === 1) { | |
v.pop(); | |
w = "rgb("; | |
} | |
return w + v.join() + ")"; | |
}, | |
toHslaString: function() { | |
var w = "hsla(", v = u.map(this.hsla(), function(x, y) { | |
if (x == null) { | |
x = y > 2 ? 1 : 0; | |
} | |
if (y && y < 3) { | |
x = Math.round(x * 100) + "%"; | |
} | |
return x; | |
}); | |
if (v[3] === 1) { | |
v.pop(); | |
w = "hsl("; | |
} | |
return w + v.join() + ")"; | |
}, | |
toHexString: function(v) { | |
var w = this._rgba.slice(), x = w.pop(); | |
if (v) { | |
w.push(~~(x * 255)); | |
} | |
return "#" + u.map(w, function(y) { | |
y = (y || 0).toString(16); | |
return y.length === 1 ? "0" + y : y; | |
}).join(""); | |
}, | |
toString: function() { | |
return this._rgba[3] === 0 ? "transparent" : this.toRgbaString(); | |
} | |
}); | |
k.fn.parse.prototype = k.fn; | |
function g(x, w, v) { | |
v = (v + 1) % 1; | |
if (v * 6 < 1) { | |
return x + (w - x) * v * 6; | |
} | |
if (v * 2 < 1) { | |
return w; | |
} | |
if (v * 3 < 2) { | |
return x + (w - x) * (2 / 3 - v) * 6; | |
} | |
return x; | |
} | |
p.hsla.to = function(x) { | |
if (x[0] == null || x[1] == null || x[2] == null) { | |
return [ null, null, null, x[3] ]; | |
} | |
var v = x[0] / 255, A = x[1] / 255, B = x[2] / 255, D = x[3], C = Math.max(v, A, B), y = Math.min(v, A, B), E = C - y, F = C + y, w = F * .5, z, G; | |
if (y === C) { | |
z = 0; | |
} else { | |
if (v === C) { | |
z = 60 * (A - B) / E + 360; | |
} else { | |
if (A === C) { | |
z = 60 * (B - v) / E + 120; | |
} else { | |
z = 60 * (v - A) / E + 240; | |
} | |
} | |
} | |
if (E === 0) { | |
G = 0; | |
} else { | |
if (w <= .5) { | |
G = E / F; | |
} else { | |
G = E / (2 - F); | |
} | |
} | |
return [ Math.round(z) % 360, G, w, D == null ? 1 : D ]; | |
}; | |
p.hsla.from = function(z) { | |
if (z[0] == null || z[1] == null || z[2] == null) { | |
return [ null, null, null, z[3] ]; | |
} | |
var y = z[0] / 360, x = z[1], w = z[2], v = z[3], A = w <= .5 ? w * (1 + x) : w + x - w * x, B = 2 * w - A; | |
return [ Math.round(g(B, A, y + 1 / 3) * 255), Math.round(g(B, A, y) * 255), Math.round(g(B, A, y - 1 / 3) * 255), v ]; | |
}; | |
r(p, function(w, y) { | |
var x = y.props, v = y.cache, A = y.to, z = y.from; | |
k.fn[w] = function(F) { | |
if (A && !this[v]) { | |
this[v] = A(this._rgba); | |
} | |
if (F === h) { | |
return this[v].slice(); | |
} | |
var C, E = u.type(F), B = E === "array" || E === "object" ? F : arguments, D = this[v].slice(); | |
r(x, function(G, I) { | |
var H = B[E === "object" ? G : I.idx]; | |
if (H == null) { | |
H = D[I.idx]; | |
} | |
D[I.idx] = o(H, I); | |
}); | |
if (z) { | |
C = k(z(D)); | |
C[v] = D; | |
return C; | |
} else { | |
return k(D); | |
} | |
}; | |
r(x, function(B, C) { | |
if (k.fn[B]) { | |
return; | |
} | |
k.fn[B] = function(G) { | |
var I = u.type(G), F = B === "alpha" ? this._hsla ? "hsla" : "rgba" : w, E = this[F](), H = E[C.idx], D; | |
if (I === "undefined") { | |
return H; | |
} | |
if (I === "function") { | |
G = G.call(this, H); | |
I = u.type(G); | |
} | |
if (G == null && C.empty) { | |
return this; | |
} | |
if (I === "string") { | |
D = n.exec(G); | |
if (D) { | |
G = H + parseFloat(D[2]) * (D[1] === "+" ? 1 : -1); | |
} | |
} | |
E[C.idx] = G; | |
return this[F](E); | |
}; | |
}); | |
}); | |
k.hook = function(w) { | |
var v = w.split(" "); | |
r(v, function(x, y) { | |
u.cssHooks[y] = { | |
set: function(C, D) { | |
var A, B, z = ""; | |
if (D !== "transparent" && (u.type(D) !== "string" || (A = l(D)))) { | |
D = k(A || D); | |
if (!s.rgba && D._rgba[3] !== 1) { | |
B = y === "backgroundColor" ? C.parentNode : C; | |
while ((z === "" || z === "transparent") && B && B.style) { | |
try { | |
z = u.css(B, "backgroundColor"); | |
B = B.parentNode; | |
} catch (E) {} | |
} | |
D = D.blend(z && z !== "transparent" ? z : "_default"); | |
} | |
D = D.toRgbaString(); | |
} | |
try { | |
C.style[y] = D; | |
} catch (E) {} | |
} | |
}; | |
u.fx.step[y] = function(z) { | |
if (!z.colorInit) { | |
z.start = k(z.elem, y); | |
z.end = k(z.end); | |
z.colorInit = true; | |
} | |
u.cssHooks[y].set(z.elem, z.start.transition(z.end, z.pos)); | |
}; | |
}); | |
}; | |
k.hook(q); | |
u.cssHooks.borderColor = { | |
expand: function(w) { | |
var v = {}; | |
r([ "Top", "Right", "Bottom", "Left" ], function(y, x) { | |
v["border" + x + "Color"] = w; | |
}); | |
return v; | |
} | |
}; | |
d = u.Color.names = { | |
aqua: "#00ffff", | |
black: "#000000", | |
blue: "#0000ff", | |
fuchsia: "#ff00ff", | |
gray: "#808080", | |
green: "#008000", | |
lime: "#00ff00", | |
maroon: "#800000", | |
navy: "#000080", | |
olive: "#808000", | |
purple: "#800080", | |
red: "#ff0000", | |
silver: "#c0c0c0", | |
teal: "#008080", | |
white: "#ffffff", | |
yellow: "#ffff00", | |
transparent: [ null, null, null, 0 ], | |
_default: "#ffffff" | |
}; | |
})(jQuery); | |
(function() { | |
var f = [ "add", "remove", "toggle" ], g = { | |
border: 1, | |
borderBottom: 1, | |
borderColor: 1, | |
borderLeft: 1, | |
borderRight: 1, | |
borderTop: 1, | |
borderWidth: 1, | |
margin: 1, | |
padding: 1 | |
}; | |
a.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function(k, l) { | |
a.fx.step[l] = function(m) { | |
if (m.end !== "none" && !m.setAttr || m.pos === 1 && !m.setAttr) { | |
jQuery.style(m.elem, l, m.end); | |
m.setAttr = true; | |
} | |
}; | |
}); | |
function h(o) { | |
var l, k, m = o.ownerDocument.defaultView ? o.ownerDocument.defaultView.getComputedStyle(o, null) : o.currentStyle, n = {}; | |
if (m && m.length && m[0] && m[m[0]]) { | |
k = m.length; | |
while (k--) { | |
l = m[k]; | |
if (typeof m[l] === "string") { | |
n[a.camelCase(l)] = m[l]; | |
} | |
} | |
} else { | |
for (l in m) { | |
if (typeof m[l] === "string") { | |
n[l] = m[l]; | |
} | |
} | |
} | |
return n; | |
} | |
function d(k, m) { | |
var o = {}, l, n; | |
for (l in m) { | |
n = m[l]; | |
if (k[l] !== n) { | |
if (!g[l]) { | |
if (a.fx.step[l] || !isNaN(parseFloat(n))) { | |
o[l] = n; | |
} | |
} | |
} | |
} | |
return o; | |
} | |
if (!a.fn.addBack) { | |
a.fn.addBack = function(k) { | |
return this.add(k == null ? this.prevObject : this.prevObject.filter(k)); | |
}; | |
} | |
a.effects.animateClass = function(k, l, p, n) { | |
var m = a.speed(l, p, n); | |
return this.queue(function() { | |
var r = a(this), o = r.attr("class") || "", q, s = m.children ? r.find("*").addBack() : r; | |
s = s.map(function() { | |
var t = a(this); | |
return { | |
el: t, | |
start: h(this) | |
}; | |
}); | |
q = function() { | |
a.each(f, function(t, u) { | |
if (k[u]) { | |
r[u + "Class"](k[u]); | |
} | |
}); | |
}; | |
q(); | |
s = s.map(function() { | |
this.end = h(this.el[0]); | |
this.diff = d(this.start, this.end); | |
return this; | |
}); | |
r.attr("class", o); | |
s = s.map(function() { | |
var v = this, t = a.Deferred(), u = a.extend({}, m, { | |
queue: false, | |
complete: function() { | |
t.resolve(v); | |
} | |
}); | |
this.el.animate(this.diff, u); | |
return t.promise(); | |
}); | |
a.when.apply(a, s.get()).done(function() { | |
q(); | |
a.each(arguments, function() { | |
var t = this.el; | |
a.each(this.diff, function(u) { | |
t.css(u, ""); | |
}); | |
}); | |
m.complete.call(r[0]); | |
}); | |
}); | |
}; | |
a.fn.extend({ | |
_addClass: a.fn.addClass, | |
addClass: function(l, k, n, m) { | |
return k ? a.effects.animateClass.call(this, { | |
add: l | |
}, k, n, m) : this._addClass(l); | |
}, | |
_removeClass: a.fn.removeClass, | |
removeClass: function(l, k, n, m) { | |
return arguments.length > 1 ? a.effects.animateClass.call(this, { | |
remove: l | |
}, k, n, m) : this._removeClass.apply(this, arguments); | |
}, | |
_toggleClass: a.fn.toggleClass, | |
toggleClass: function(m, l, k, o, n) { | |
if (typeof l === "boolean" || l === c) { | |
if (!k) { | |
return this._toggleClass(m, l); | |
} else { | |
return a.effects.animateClass.call(this, l ? { | |
add: m | |
} : { | |
remove: m | |
}, k, o, n); | |
} | |
} else { | |
return a.effects.animateClass.call(this, { | |
toggle: m | |
}, l, k, o); | |
} | |
}, | |
switchClass: function(k, m, l, o, n) { | |
return a.effects.animateClass.call(this, { | |
add: m, | |
remove: k | |
}, l, o, n); | |
} | |
}); | |
})(); | |
(function() { | |
a.extend(a.effects, { | |
version: "1.10.1", | |
save: function(h, k) { | |
for (var g = 0; g < k.length; g++) { | |
if (k[g] !== null) { | |
h.data(b + k[g], h[0].style[k[g]]); | |
} | |
} | |
}, | |
restore: function(h, l) { | |
var k, g; | |
for (g = 0; g < l.length; g++) { | |
if (l[g] !== null) { | |
k = h.data(b + l[g]); | |
if (k === c) { | |
k = ""; | |
} | |
h.css(l[g], k); | |
} | |
} | |
}, | |
setMode: function(g, h) { | |
if (h === "toggle") { | |
h = g.is(":hidden") ? "show" : "hide"; | |
} | |
return h; | |
}, | |
getBaseline: function(h, k) { | |
var l, g; | |
switch (h[0]) { | |
case "top": | |
l = 0; | |
break; | |
case "middle": | |
l = .5; | |
break; | |
case "bottom": | |
l = 1; | |
break; | |
default: | |
l = h[0] / k.height; | |
} | |
switch (h[1]) { | |
case "left": | |
g = 0; | |
break; | |
case "center": | |
g = .5; | |
break; | |
case "right": | |
g = 1; | |
break; | |
default: | |
g = h[1] / k.width; | |
} | |
return { | |
x: g, | |
y: l | |
}; | |
}, | |
createWrapper: function(h) { | |
if (h.parent().is(".ui-effects-wrapper")) { | |
return h.parent(); | |
} | |
var k = { | |
width: h.outerWidth(true), | |
height: h.outerHeight(true), | |
"float": h.css("float") | |
}, n = a("<div></div>").addClass("ui-effects-wrapper").css({ | |
fontSize: "100%", | |
background: "transparent", | |
border: "none", | |
margin: 0, | |
padding: 0 | |
}), g = { | |
width: h.width(), | |
height: h.height() | |
}, m = document.activeElement; | |
try { | |
m.id; | |
} catch (l) { | |
m = document.body; | |
} | |
h.wrap(n); | |
if (h[0] === m || a.contains(h[0], m)) { | |
a(m).focus(); | |
} | |
n = h.parent(); | |
if (h.css("position") === "static") { | |
n.css({ | |
position: "relative" | |
}); | |
h.css({ | |
position: "relative" | |
}); | |
} else { | |
a.extend(k, { | |
position: h.css("position"), | |
zIndex: h.css("z-index") | |
}); | |
a.each([ "top", "left", "bottom", "right" ], function(o, p) { | |
k[p] = h.css(p); | |
if (isNaN(parseInt(k[p], 10))) { | |
k[p] = "auto"; | |
} | |
}); | |
h.css({ | |
position: "relative", | |
top: 0, | |
left: 0, | |
right: "auto", | |
bottom: "auto" | |
}); | |
} | |
h.css(g); | |
return n.css(k).show(); | |
}, | |
removeWrapper: function(g) { | |
var h = document.activeElement; | |
if (g.parent().is(".ui-effects-wrapper")) { | |
g.parent().replaceWith(g); | |
if (g[0] === h || a.contains(g[0], h)) { | |
a(h).focus(); | |
} | |
} | |
return g; | |
}, | |
setTransition: function(h, l, g, k) { | |
k = k || {}; | |
a.each(l, function(n, m) { | |
var o = h.cssUnit(m); | |
if (o[0] > 0) { | |
k[m] = o[0] * g + o[1]; | |
} | |
}); | |
return k; | |
} | |
}); | |
function d(h, g, k, l) { | |
if (a.isPlainObject(h)) { | |
g = h; | |
h = h.effect; | |
} | |
h = { | |
effect: h | |
}; | |
if (g == null) { | |
g = {}; | |
} | |
if (a.isFunction(g)) { | |
l = g; | |
k = null; | |
g = {}; | |
} | |
if (typeof g === "number" || a.fx.speeds[g]) { | |
l = k; | |
k = g; | |
g = {}; | |
} | |
if (a.isFunction(k)) { | |
l = k; | |
k = null; | |
} | |
if (g) { | |
a.extend(h, g); | |
} | |
k = k || g.duration; | |
h.duration = a.fx.off ? 0 : typeof k === "number" ? k : k in a.fx.speeds ? a.fx.speeds[k] : a.fx.speeds._default; | |
h.complete = l || g.complete; | |
return h; | |
} | |
function f(g) { | |
if (!g || typeof g === "number" || a.fx.speeds[g]) { | |
return true; | |
} | |
return typeof g === "string" && !a.effects.effect[g]; | |
} | |
a.fn.extend({ | |
effect: function() { | |
var k = d.apply(this, arguments), m = k.mode, g = k.queue, h = a.effects.effect[k.effect]; | |
if (a.fx.off || !h) { | |
if (m) { | |
return this[m](k.duration, k.complete); | |
} else { | |
return this.each(function() { | |
if (k.complete) { | |
k.complete.call(this); | |
} | |
}); | |
} | |
} | |
function l(p) { | |
var q = a(this), o = k.complete, r = k.mode; | |
function n() { | |
if (a.isFunction(o)) { | |
o.call(q[0]); | |
} | |
if (a.isFunction(p)) { | |
p(); | |
} | |
} | |
if (q.is(":hidden") ? r === "hide" : r === "show") { | |
n(); | |
} else { | |
h.call(q[0], k, n); | |
} | |
} | |
return g === false ? this.each(l) : this.queue(g || "fx", l); | |
}, | |
_show: a.fn.show, | |
show: function(h) { | |
if (f(h)) { | |
return this._show.apply(this, arguments); | |
} else { | |
var g = d.apply(this, arguments); | |
g.mode = "show"; | |
return this.effect.call(this, g); | |
} | |
}, | |
_hide: a.fn.hide, | |
hide: function(h) { | |
if (f(h)) { | |
return this._hide.apply(this, arguments); | |
} else { | |
var g = d.apply(this, arguments); | |
g.mode = "hide"; | |
return this.effect.call(this, g); | |
} | |
}, | |
__toggle: a.fn.toggle, | |
toggle: function(h) { | |
if (f(h) || typeof h === "boolean" || a.isFunction(h)) { | |
return this.__toggle.apply(this, arguments); | |
} else { | |
var g = d.apply(this, arguments); | |
g.mode = "toggle"; | |
return this.effect.call(this, g); | |
} | |
}, | |
cssUnit: function(g) { | |
var h = this.css(g), k = []; | |
a.each([ "em", "px", "%", "pt" ], function(l, m) { | |
if (h.indexOf(m) > 0) { | |
k = [ parseFloat(h), m ]; | |
} | |
}); | |
return k; | |
} | |
}); | |
})(); | |
(function() { | |
var d = {}; | |
a.each([ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function(g, f) { | |
d[f] = function(h) { | |
return Math.pow(h, g + 2); | |
}; | |
}); | |
a.extend(d, { | |
Sine: function(f) { | |
return 1 - Math.cos(f * Math.PI / 2); | |
}, | |
Circ: function(f) { | |
return 1 - Math.sqrt(1 - f * f); | |
}, | |
Elastic: function(f) { | |
return f === 0 || f === 1 ? f : -Math.pow(2, 8 * (f - 1)) * Math.sin(((f - 1) * 80 - 7.5) * Math.PI / 15); | |
}, | |
Back: function(f) { | |
return f * f * (3 * f - 2); | |
}, | |
Bounce: function(h) { | |
var f, g = 4; | |
while (h < ((f = Math.pow(2, --g)) - 1) / 11) {} | |
return 1 / Math.pow(4, 3 - g) - 7.5625 * Math.pow((f * 3 - 2) / 22 - h, 2); | |
} | |
}); | |
a.each(d, function(g, f) { | |
a.easing["easeIn" + g] = f; | |
a.easing["easeOut" + g] = function(h) { | |
return 1 - f(1 - h); | |
}; | |
a.easing["easeInOut" + g] = function(h) { | |
return h < .5 ? f(h * 2) / 2 : 1 - f(h * -2 + 2) / 2; | |
}; | |
}); | |
})(); | |
}(jQuery); | |
(function(b, d) { | |
var a = /up|down|vertical/, c = /up|left|vertical|horizontal/; | |
b.effects.effect.blind = function(h, q) { | |
var k = b(this), t = [ "position", "top", "bottom", "left", "right", "height", "width" ], r = b.effects.setMode(k, h.mode || "hide"), u = h.direction || "up", m = a.test(u), l = m ? "height" : "width", s = m ? "top" : "left", w = c.test(u), p = {}, v = r === "show", g, f, n; | |
if (k.parent().is(".ui-effects-wrapper")) { | |
b.effects.save(k.parent(), t); | |
} else { | |
b.effects.save(k, t); | |
} | |
k.show(); | |
g = b.effects.createWrapper(k).css({ | |
overflow: "hidden" | |
}); | |
f = g[l](); | |
n = parseFloat(g.css(s)) || 0; | |
p[l] = v ? f : 0; | |
if (!w) { | |
k.css(m ? "bottom" : "right", 0).css(m ? "top" : "left", "auto").css({ | |
position: "absolute" | |
}); | |
p[s] = v ? n : f + n; | |
} | |
if (v) { | |
g.css(l, 0); | |
if (!w) { | |
g.css(s, n + f); | |
} | |
} | |
g.animate(p, { | |
duration: h.duration, | |
easing: h.easing, | |
queue: false, | |
complete: function() { | |
if (r === "hide") { | |
k.hide(); | |
} | |
b.effects.restore(k, t); | |
b.effects.removeWrapper(k); | |
q(); | |
} | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.bounce = function(p, n) { | |
var c = a(this), d = [ "position", "top", "bottom", "left", "right", "height", "width" ], m = a.effects.setMode(c, p.mode || "effect"), l = m === "hide", x = m === "show", y = p.direction || "up", f = p.distance, k = p.times || 5, z = k * 2 + (x || l ? 1 : 0), w = p.duration / z, r = p.easing, g = y === "up" || y === "down" ? "top" : "left", q = y === "up" || y === "left", v, h, u, s = c.queue(), t = s.length; | |
if (x || l) { | |
d.push("opacity"); | |
} | |
a.effects.save(c, d); | |
c.show(); | |
a.effects.createWrapper(c); | |
if (!f) { | |
f = c[g === "top" ? "outerHeight" : "outerWidth"]() / 3; | |
} | |
if (x) { | |
u = { | |
opacity: 1 | |
}; | |
u[g] = 0; | |
c.css("opacity", 0).css(g, q ? -f * 2 : f * 2).animate(u, w, r); | |
} | |
if (l) { | |
f = f / Math.pow(2, k - 1); | |
} | |
u = {}; | |
u[g] = 0; | |
for (v = 0; v < k; v++) { | |
h = {}; | |
h[g] = (q ? "-=" : "+=") + f; | |
c.animate(h, w, r).animate(u, w, r); | |
f = l ? f * 2 : f / 2; | |
} | |
if (l) { | |
h = { | |
opacity: 0 | |
}; | |
h[g] = (q ? "-=" : "+=") + f; | |
c.animate(h, w, r); | |
} | |
c.queue(function() { | |
if (l) { | |
c.hide(); | |
} | |
a.effects.restore(c, d); | |
a.effects.removeWrapper(c); | |
n(); | |
}); | |
if (t > 1) { | |
s.splice.apply(s, [ 1, 0 ].concat(s.splice(t, z + 1))); | |
} | |
c.dequeue(); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.clip = function(g, l) { | |
var h = a(this), q = [ "position", "top", "bottom", "left", "right", "height", "width" ], p = a.effects.setMode(h, g.mode || "hide"), s = p === "show", r = g.direction || "vertical", n = r === "vertical", t = n ? "height" : "width", m = n ? "top" : "left", k = {}, d, f, c; | |
a.effects.save(h, q); | |
h.show(); | |
d = a.effects.createWrapper(h).css({ | |
overflow: "hidden" | |
}); | |
f = h[0].tagName === "IMG" ? d : h; | |
c = f[t](); | |
if (s) { | |
f.css(t, 0); | |
f.css(m, c / 2); | |
} | |
k[t] = s ? c : 0; | |
k[m] = s ? 0 : c / 2; | |
f.animate(k, { | |
queue: false, | |
duration: g.duration, | |
easing: g.easing, | |
complete: function() { | |
if (!s) { | |
h.hide(); | |
} | |
a.effects.restore(h, q); | |
a.effects.removeWrapper(h); | |
l(); | |
} | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.drop = function(d, k) { | |
var f = a(this), m = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], l = a.effects.setMode(f, d.mode || "hide"), p = l === "show", n = d.direction || "left", g = n === "up" || n === "down" ? "top" : "left", q = n === "up" || n === "left" ? "pos" : "neg", h = { | |
opacity: p ? 1 : 0 | |
}, c; | |
a.effects.save(f, m); | |
f.show(); | |
a.effects.createWrapper(f); | |
c = d.distance || f[g === "top" ? "outerHeight" : "outerWidth"](true) / 2; | |
if (p) { | |
f.css("opacity", 0).css(g, q === "pos" ? -c : c); | |
} | |
h[g] = (p ? q === "pos" ? "+=" : "-=" : q === "pos" ? "-=" : "+=") + c; | |
f.animate(h, { | |
queue: false, | |
duration: d.duration, | |
easing: d.easing, | |
complete: function() { | |
if (l === "hide") { | |
f.hide(); | |
} | |
a.effects.restore(f, m); | |
a.effects.removeWrapper(f); | |
k(); | |
} | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.explode = function(t, s) { | |
var l = t.pieces ? Math.round(Math.sqrt(t.pieces)) : 3, d = l, c = a(this), n = a.effects.setMode(c, t.mode || "hide"), x = n === "show", h = c.show().css("visibility", "hidden").offset(), u = Math.ceil(c.outerWidth() / d), r = Math.ceil(c.outerHeight() / l), k = [], w, v, f, q, p, m; | |
function y() { | |
k.push(this); | |
if (k.length === l * d) { | |
g(); | |
} | |
} | |
for (w = 0; w < l; w++) { | |
q = h.top + w * r; | |
m = w - (l - 1) / 2; | |
for (v = 0; v < d; v++) { | |
f = h.left + v * u; | |
p = v - (d - 1) / 2; | |
c.clone().appendTo("body").wrap("<div></div>").css({ | |
position: "absolute", | |
visibility: "visible", | |
left: -v * u, | |
top: -w * r | |
}).parent().addClass("ui-effects-explode").css({ | |
position: "absolute", | |
overflow: "hidden", | |
width: u, | |
height: r, | |
left: f + (x ? p * u : 0), | |
top: q + (x ? m * r : 0), | |
opacity: x ? 0 : 1 | |
}).animate({ | |
left: f + (x ? 0 : p * u), | |
top: q + (x ? 0 : m * r), | |
opacity: x ? 1 : 0 | |
}, t.duration || 500, t.easing, y); | |
} | |
} | |
function g() { | |
c.css({ | |
visibility: "visible" | |
}); | |
a(k).remove(); | |
if (!x) { | |
c.hide(); | |
} | |
s(); | |
} | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.fade = function(g, c) { | |
var d = a(this), f = a.effects.setMode(d, g.mode || "toggle"); | |
d.animate({ | |
opacity: f | |
}, { | |
queue: false, | |
duration: g.duration, | |
easing: g.easing, | |
complete: c | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.fold = function(f, l) { | |
var g = a(this), r = [ "position", "top", "bottom", "left", "right", "height", "width" ], n = a.effects.setMode(g, f.mode || "hide"), u = n === "show", p = n === "hide", w = f.size || 15, q = /([0-9]+)%/.exec(w), v = !!f.horizFirst, m = u !== v, h = m ? [ "width", "height" ] : [ "height", "width" ], k = f.duration / 2, d, c, t = {}, s = {}; | |
a.effects.save(g, r); | |
g.show(); | |
d = a.effects.createWrapper(g).css({ | |
overflow: "hidden" | |
}); | |
c = m ? [ d.width(), d.height() ] : [ d.height(), d.width() ]; | |
if (q) { | |
w = parseInt(q[1], 10) / 100 * c[p ? 0 : 1]; | |
} | |
if (u) { | |
d.css(v ? { | |
height: 0, | |
width: w | |
} : { | |
height: w, | |
width: 0 | |
}); | |
} | |
t[h[0]] = u ? c[0] : w; | |
s[h[1]] = u ? c[1] : 0; | |
d.animate(t, k, f.easing).animate(s, k, f.easing, function() { | |
if (p) { | |
g.hide(); | |
} | |
a.effects.restore(g, r); | |
a.effects.removeWrapper(g); | |
l(); | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.highlight = function(k, c) { | |
var f = a(this), d = [ "backgroundImage", "backgroundColor", "opacity" ], h = a.effects.setMode(f, k.mode || "show"), g = { | |
backgroundColor: f.css("backgroundColor") | |
}; | |
if (h === "hide") { | |
g.opacity = 0; | |
} | |
a.effects.save(f, d); | |
f.show().css({ | |
backgroundImage: "none", | |
backgroundColor: k.color || "#ffff99" | |
}).animate(g, { | |
queue: false, | |
duration: k.duration, | |
easing: k.easing, | |
complete: function() { | |
if (h === "hide") { | |
f.hide(); | |
} | |
a.effects.restore(f, d); | |
c(); | |
} | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.pulsate = function(c, h) { | |
var f = a(this), m = a.effects.setMode(f, c.mode || "show"), r = m === "show", n = m === "hide", s = r || m === "hide", p = (c.times || 5) * 2 + (s ? 1 : 0), g = c.duration / p, q = 0, l = f.queue(), d = l.length, k; | |
if (r || !f.is(":visible")) { | |
f.css("opacity", 0).show(); | |
q = 1; | |
} | |
for (k = 1; k < p; k++) { | |
f.animate({ | |
opacity: q | |
}, g, c.easing); | |
q = 1 - q; | |
} | |
f.animate({ | |
opacity: q | |
}, g, c.easing); | |
f.queue(function() { | |
if (n) { | |
f.hide(); | |
} | |
h(); | |
}); | |
if (d > 1) { | |
l.splice.apply(l, [ 1, 0 ].concat(l.splice(d, p + 1))); | |
} | |
f.dequeue(); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.puff = function(m, c) { | |
var k = a(this), l = a.effects.setMode(k, m.mode || "hide"), g = l === "hide", h = parseInt(m.percent, 10) || 150, f = h / 100, d = { | |
height: k.height(), | |
width: k.width(), | |
outerHeight: k.outerHeight(), | |
outerWidth: k.outerWidth() | |
}; | |
a.extend(m, { | |
effect: "scale", | |
queue: false, | |
fade: true, | |
mode: l, | |
complete: c, | |
percent: g ? h : 100, | |
from: g ? d : { | |
height: d.height * f, | |
width: d.width * f, | |
outerHeight: d.outerHeight * f, | |
outerWidth: d.outerWidth * f | |
} | |
}); | |
k.effect(m); | |
}; | |
a.effects.effect.scale = function(c, g) { | |
var d = a(this), p = a.extend(true, {}, c), h = a.effects.setMode(d, c.mode || "effect"), k = parseInt(c.percent, 10) || (parseInt(c.percent, 10) === 0 ? 0 : h === "hide" ? 0 : 100), m = c.direction || "both", n = c.origin, f = { | |
height: d.height(), | |
width: d.width(), | |
outerHeight: d.outerHeight(), | |
outerWidth: d.outerWidth() | |
}, l = { | |
y: m !== "horizontal" ? k / 100 : 1, | |
x: m !== "vertical" ? k / 100 : 1 | |
}; | |
p.effect = "size"; | |
p.queue = false; | |
p.complete = g; | |
if (h !== "effect") { | |
p.origin = n || [ "middle", "center" ]; | |
p.restore = true; | |
} | |
p.from = c.from || (h === "show" ? { | |
height: 0, | |
width: 0, | |
outerHeight: 0, | |
outerWidth: 0 | |
} : f); | |
p.to = { | |
height: f.height * l.y, | |
width: f.width * l.x, | |
outerHeight: f.outerHeight * l.y, | |
outerWidth: f.outerWidth * l.x | |
}; | |
if (p.fade) { | |
if (h === "show") { | |
p.from.opacity = 0; | |
p.to.opacity = 1; | |
} | |
if (h === "hide") { | |
p.from.opacity = 1; | |
p.to.opacity = 0; | |
} | |
} | |
d.effect(p); | |
}; | |
a.effects.effect.size = function(p, n) { | |
var t, l, m, c = a(this), s = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], r = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], q = [ "width", "height", "overflow" ], h = [ "fontSize" ], v = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], d = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], k = a.effects.setMode(c, p.mode || "effect"), u = p.restore || k !== "effect", y = p.scale || "both", w = p.origin || [ "middle", "center" ], x = c.css("position"), f = u ? s : r, g = { | |
height: 0, | |
width: 0, | |
outerHeight: 0, | |
outerWidth: 0 | |
}; | |
if (k === "show") { | |
c.show(); | |
} | |
t = { | |
height: c.height(), | |
width: c.width(), | |
outerHeight: c.outerHeight(), | |
outerWidth: c.outerWidth() | |
}; | |
if (p.mode === "toggle" && k === "show") { | |
c.from = p.to || g; | |
c.to = p.from || t; | |
} else { | |
c.from = p.from || (k === "show" ? g : t); | |
c.to = p.to || (k === "hide" ? g : t); | |
} | |
m = { | |
from: { | |
y: c.from.height / t.height, | |
x: c.from.width / t.width | |
}, | |
to: { | |
y: c.to.height / t.height, | |
x: c.to.width / t.width | |
} | |
}; | |
if (y === "box" || y === "both") { | |
if (m.from.y !== m.to.y) { | |
f = f.concat(v); | |
c.from = a.effects.setTransition(c, v, m.from.y, c.from); | |
c.to = a.effects.setTransition(c, v, m.to.y, c.to); | |
} | |
if (m.from.x !== m.to.x) { | |
f = f.concat(d); | |
c.from = a.effects.setTransition(c, d, m.from.x, c.from); | |
c.to = a.effects.setTransition(c, d, m.to.x, c.to); | |
} | |
} | |
if (y === "content" || y === "both") { | |
if (m.from.y !== m.to.y) { | |
f = f.concat(h).concat(q); | |
c.from = a.effects.setTransition(c, h, m.from.y, c.from); | |
c.to = a.effects.setTransition(c, h, m.to.y, c.to); | |
} | |
} | |
a.effects.save(c, f); | |
c.show(); | |
a.effects.createWrapper(c); | |
c.css("overflow", "hidden").css(c.from); | |
if (w) { | |
l = a.effects.getBaseline(w, t); | |
c.from.top = (t.outerHeight - c.outerHeight()) * l.y; | |
c.from.left = (t.outerWidth - c.outerWidth()) * l.x; | |
c.to.top = (t.outerHeight - c.to.outerHeight) * l.y; | |
c.to.left = (t.outerWidth - c.to.outerWidth) * l.x; | |
} | |
c.css(c.from); | |
if (y === "content" || y === "both") { | |
v = v.concat([ "marginTop", "marginBottom" ]).concat(h); | |
d = d.concat([ "marginLeft", "marginRight" ]); | |
q = s.concat(v).concat(d); | |
c.find("*[width]").each(function() { | |
var z = a(this), o = { | |
height: z.height(), | |
width: z.width(), | |
outerHeight: z.outerHeight(), | |
outerWidth: z.outerWidth() | |
}; | |
if (u) { | |
a.effects.save(z, q); | |
} | |
z.from = { | |
height: o.height * m.from.y, | |
width: o.width * m.from.x, | |
outerHeight: o.outerHeight * m.from.y, | |
outerWidth: o.outerWidth * m.from.x | |
}; | |
z.to = { | |
height: o.height * m.to.y, | |
width: o.width * m.to.x, | |
outerHeight: o.height * m.to.y, | |
outerWidth: o.width * m.to.x | |
}; | |
if (m.from.y !== m.to.y) { | |
z.from = a.effects.setTransition(z, v, m.from.y, z.from); | |
z.to = a.effects.setTransition(z, v, m.to.y, z.to); | |
} | |
if (m.from.x !== m.to.x) { | |
z.from = a.effects.setTransition(z, d, m.from.x, z.from); | |
z.to = a.effects.setTransition(z, d, m.to.x, z.to); | |
} | |
z.css(z.from); | |
z.animate(z.to, p.duration, p.easing, function() { | |
if (u) { | |
a.effects.restore(z, q); | |
} | |
}); | |
}); | |
} | |
c.animate(c.to, { | |
queue: false, | |
duration: p.duration, | |
easing: p.easing, | |
complete: function() { | |
if (c.to.opacity === 0) { | |
c.css("opacity", c.from.opacity); | |
} | |
if (k === "hide") { | |
c.hide(); | |
} | |
a.effects.restore(c, f); | |
if (!u) { | |
if (x === "static") { | |
c.css({ | |
position: "relative", | |
top: c.to.top, | |
left: c.to.left | |
}); | |
} else { | |
a.each([ "top", "left" ], function(o, z) { | |
c.css(z, function(B, D) { | |
var C = parseInt(D, 10), A = o ? c.to.left : c.to.top; | |
if (D === "auto") { | |
return A + "px"; | |
} | |
return C + A + "px"; | |
}); | |
}); | |
} | |
} | |
a.effects.removeWrapper(c); | |
n(); | |
} | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.shake = function(n, m) { | |
var c = a(this), d = [ "position", "top", "bottom", "left", "right", "height", "width" ], l = a.effects.setMode(c, n.mode || "effect"), w = n.direction || "left", f = n.distance || 20, k = n.times || 3, x = k * 2 + 1, s = Math.round(n.duration / x), h = w === "up" || w === "down" ? "top" : "left", g = w === "up" || w === "left", v = {}, u = {}, t = {}, r, p = c.queue(), q = p.length; | |
a.effects.save(c, d); | |
c.show(); | |
a.effects.createWrapper(c); | |
v[h] = (g ? "-=" : "+=") + f; | |
u[h] = (g ? "+=" : "-=") + f * 2; | |
t[h] = (g ? "-=" : "+=") + f * 2; | |
c.animate(v, s, n.easing); | |
for (r = 1; r < k; r++) { | |
c.animate(u, s, n.easing).animate(t, s, n.easing); | |
} | |
c.animate(u, s, n.easing).animate(v, s / 2, n.easing).queue(function() { | |
if (l === "hide") { | |
c.hide(); | |
} | |
a.effects.restore(c, d); | |
a.effects.removeWrapper(c); | |
m(); | |
}); | |
if (q > 1) { | |
p.splice.apply(p, [ 1, 0 ].concat(p.splice(q, x + 1))); | |
} | |
c.dequeue(); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.slide = function(f, l) { | |
var g = a(this), n = [ "position", "top", "bottom", "left", "right", "width", "height" ], m = a.effects.setMode(g, f.mode || "show"), q = m === "show", p = f.direction || "left", h = p === "up" || p === "down" ? "top" : "left", d = p === "up" || p === "left", c, k = {}; | |
a.effects.save(g, n); | |
g.show(); | |
c = f.distance || g[h === "top" ? "outerHeight" : "outerWidth"](true); | |
a.effects.createWrapper(g).css({ | |
overflow: "hidden" | |
}); | |
if (q) { | |
g.css(h, d ? isNaN(c) ? "-" + c : -c : c); | |
} | |
k[h] = (q ? d ? "+=" : "-=" : d ? "-=" : "+=") + c; | |
g.animate(k, { | |
queue: false, | |
duration: f.duration, | |
easing: f.easing, | |
complete: function() { | |
if (m === "hide") { | |
g.hide(); | |
} | |
a.effects.restore(g, n); | |
a.effects.removeWrapper(g); | |
l(); | |
} | |
}); | |
}; | |
})(jQuery); | |
(function(a, b) { | |
a.effects.effect.transfer = function(d, k) { | |
var g = a(this), n = a(d.to), r = n.css("position") === "fixed", m = a("body"), p = r ? m.scrollTop() : 0, q = r ? m.scrollLeft() : 0, c = n.offset(), h = { | |
top: c.top - p, | |
left: c.left - q, | |
height: n.innerHeight(), | |
width: n.innerWidth() | |
}, l = g.offset(), f = a("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(d.className).css({ | |
top: l.top - p, | |
left: l.left - q, | |
height: g.innerHeight(), | |
width: g.innerWidth(), | |
position: r ? "fixed" : "absolute" | |
}).animate(h, d.duration, d.easing, function() { | |
f.remove(); | |
k(); | |
}); | |
}; | |
})(jQuery); | |
(function(n) { | |
n.transit = { | |
version: "0.9.9", | |
propertyMap: { | |
marginLeft: "margin", | |
marginRight: "margin", | |
marginBottom: "margin", | |
marginTop: "margin", | |
paddingLeft: "padding", | |
paddingRight: "padding", | |
paddingBottom: "padding", | |
paddingTop: "padding" | |
}, | |
enabled: true, | |
useTransitionEnd: false | |
}; | |
var d = document.createElement("div"); | |
var t = {}; | |
function b(y) { | |
if (y in d.style) { | |
return y; | |
} | |
var x = [ "Moz", "Webkit", "O", "ms" ]; | |
var u = y.charAt(0).toUpperCase() + y.substr(1); | |
if (y in d.style) { | |
return y; | |
} | |
for (var w = 0; w < x.length; ++w) { | |
var v = x[w] + u; | |
if (v in d.style) { | |
return v; | |
} | |
} | |
} | |
function f() { | |
d.style[t.transform] = ""; | |
d.style[t.transform] = "rotateY(90deg)"; | |
return d.style[t.transform] !== ""; | |
} | |
var a = navigator.userAgent.toLowerCase().indexOf("chrome") > -1; | |
t.transition = b("transition"); | |
t.transitionDelay = b("transitionDelay"); | |
t.transform = b("transform"); | |
t.transformOrigin = b("transformOrigin"); | |
t.transform3d = f(); | |
var l = { | |
transition: "transitionEnd", | |
MozTransition: "transitionend", | |
OTransition: "oTransitionEnd", | |
WebkitTransition: "webkitTransitionEnd", | |
msTransition: "MSTransitionEnd" | |
}; | |
var g = t.transitionEnd = l[t.transition] || null; | |
for (var s in t) { | |
if (t.hasOwnProperty(s) && typeof n.support[s] === "undefined") { | |
n.support[s] = t[s]; | |
} | |
} | |
d = null; | |
n.cssEase = { | |
_default: "ease", | |
"in": "ease-in", | |
out: "ease-out", | |
"in-out": "ease-in-out", | |
snap: "cubic-bezier(0,1,.5,1)", | |
easeOutCubic: "cubic-bezier(.215,.61,.355,1)", | |
easeInOutCubic: "cubic-bezier(.645,.045,.355,1)", | |
easeInCirc: "cubic-bezier(.6,.04,.98,.335)", | |
easeOutCirc: "cubic-bezier(.075,.82,.165,1)", | |
easeInOutCirc: "cubic-bezier(.785,.135,.15,.86)", | |
easeInExpo: "cubic-bezier(.95,.05,.795,.035)", | |
easeOutExpo: "cubic-bezier(.19,1,.22,1)", | |
easeInOutExpo: "cubic-bezier(1,0,0,1)", | |
easeInQuad: "cubic-bezier(.55,.085,.68,.53)", | |
easeOutQuad: "cubic-bezier(.25,.46,.45,.94)", | |
easeInOutQuad: "cubic-bezier(.455,.03,.515,.955)", | |
easeInQuart: "cubic-bezier(.895,.03,.685,.22)", | |
easeOutQuart: "cubic-bezier(.165,.84,.44,1)", | |
easeInOutQuart: "cubic-bezier(.77,0,.175,1)", | |
easeInQuint: "cubic-bezier(.755,.05,.855,.06)", | |
easeOutQuint: "cubic-bezier(.23,1,.32,1)", | |
easeInOutQuint: "cubic-bezier(.86,0,.07,1)", | |
easeInSine: "cubic-bezier(.47,0,.745,.715)", | |
easeOutSine: "cubic-bezier(.39,.575,.565,1)", | |
easeInOutSine: "cubic-bezier(.445,.05,.55,.95)", | |
easeInBack: "cubic-bezier(.6,-.28,.735,.045)", | |
easeOutBack: "cubic-bezier(.175, .885,.32,1.275)", | |
easeInOutBack: "cubic-bezier(.68,-.55,.265,1.55)" | |
}; | |
n.cssHooks["transit:transform"] = { | |
get: function(u) { | |
return n(u).data("transform") || new m(); | |
}, | |
set: function(w, u) { | |
var x = u; | |
if (!(x instanceof m)) { | |
x = new m(x); | |
} | |
if (t.transform === "WebkitTransform" && !a) { | |
w.style[t.transform] = x.toString(true); | |
} else { | |
w.style[t.transform] = x.toString(); | |
} | |
n(w).data("transform", x); | |
} | |
}; | |
n.cssHooks.transform = { | |
set: n.cssHooks["transit:transform"].set | |
}; | |
if (n.fn.jquery < "1.8") { | |
n.cssHooks.transformOrigin = { | |
get: function(u) { | |
return u.style[t.transformOrigin]; | |
}, | |
set: function(u, v) { | |
u.style[t.transformOrigin] = v; | |
} | |
}; | |
n.cssHooks.transition = { | |
get: function(u) { | |
return u.style[t.transition]; | |
}, | |
set: function(u, v) { | |
u.style[t.transition] = v; | |
} | |
}; | |
} | |
q("scale"); | |
q("translate"); | |
q("rotate"); | |
q("rotateX"); | |
q("rotateY"); | |
q("rotate3d"); | |
q("perspective"); | |
q("skewX"); | |
q("skewY"); | |
q("x", true); | |
q("y", true); | |
function m(u) { | |
if (typeof u === "string") { | |
this.parse(u); | |
} | |
return this; | |
} | |
m.prototype = { | |
setFromString: function(w, v) { | |
var u = typeof v === "string" ? v.split(",") : v.constructor === Array ? v : [ v ]; | |
u.unshift(w); | |
m.prototype.set.apply(this, u); | |
}, | |
set: function(v) { | |
var u = Array.prototype.slice.apply(arguments, [ 1 ]); | |
if (this.setter[v]) { | |
this.setter[v].apply(this, u); | |
} else { | |
this[v] = u.join(","); | |
} | |
}, | |
get: function(u) { | |
if (this.getter[u]) { | |
return this.getter[u].apply(this); | |
} else { | |
return this[u] || 0; | |
} | |
}, | |
setter: { | |
rotate: function(u) { | |
this.rotate = r(u, "deg"); | |
}, | |
rotateX: function(u) { | |
this.rotateX = r(u, "deg"); | |
}, | |
rotateY: function(u) { | |
this.rotateY = r(u, "deg"); | |
}, | |
scale: function(u, v) { | |
if (v === undefined) { | |
v = u; | |
} | |
this.scale = u + "," + v; | |
}, | |
skewX: function(u) { | |
this.skewX = r(u, "deg"); | |
}, | |
skewY: function(u) { | |
this.skewY = r(u, "deg"); | |
}, | |
perspective: function(u) { | |
this.perspective = r(u, "px"); | |
}, | |
x: function(u) { | |
this.set("translate", u, null); | |
}, | |
y: function(u) { | |
this.set("translate", null, u); | |
}, | |
translate: function(u, v) { | |
if (this._translateX === undefined) { | |
this._translateX = 0; | |
} | |
if (this._translateY === undefined) { | |
this._translateY = 0; | |
} | |
if (u !== null && u !== undefined) { | |
this._translateX = r(u, "px"); | |
} | |
if (v !== null && v !== undefined) { | |
this._translateY = r(v, "px"); | |
} | |
this.translate = this._translateX + "," + this._translateY; | |
} | |
}, | |
getter: { | |
x: function() { | |
return this._translateX || 0; | |
}, | |
y: function() { | |
return this._translateY || 0; | |
}, | |
scale: function() { | |
var u = (this.scale || "1,1").split(","); | |
if (u[0]) { | |
u[0] = parseFloat(u[0]); | |
} | |
if (u[1]) { | |
u[1] = parseFloat(u[1]); | |
} | |
return u[0] === u[1] ? u[0] : u; | |
}, | |
rotate3d: function() { | |
var v = (this.rotate3d || "0,0,0,0deg").split(","); | |
for (var u = 0; u <= 3; ++u) { | |
if (v[u]) { | |
v[u] = parseFloat(v[u]); | |
} | |
} | |
if (v[3]) { | |
v[3] = r(v[3], "deg"); | |
} | |
return v; | |
} | |
}, | |
parse: function(v) { | |
var u = this; | |
v.replace(/([a-zA-Z0-9]+)\((.*?)\)/g, function(w, z, y) { | |
u.setFromString(z, y); | |
}); | |
}, | |
toString: function(w) { | |
var v = []; | |
for (var u in this) { | |
if (this.hasOwnProperty(u)) { | |
if (!t.transform3d && (u === "rotateX" || u === "rotateY" || u === "perspective" || u === "transformOrigin")) { | |
continue; | |
} | |
if (u[0] !== "_") { | |
if (w && u === "scale") { | |
v.push(u + "3d(" + this[u] + ",1)"); | |
} else { | |
if (w && u === "translate") { | |
v.push(u + "3d(" + this[u] + ",0)"); | |
} else { | |
v.push(u + "(" + this[u] + ")"); | |
} | |
} | |
} | |
} | |
} | |
return v.join(" "); | |
} | |
}; | |
function p(v, u, w) { | |
if (u === true) { | |
v.queue(w); | |
} else { | |
if (u) { | |
v.queue(u, w); | |
} else { | |
w(); | |
} | |
} | |
} | |
function k(v) { | |
var u = []; | |
n.each(v, function(w) { | |
w = n.camelCase(w); | |
w = n.transit.propertyMap[w] || n.cssProps[w] || w; | |
w = c(w); | |
if (n.inArray(w, u) === -1) { | |
u.push(w); | |
} | |
}); | |
return u; | |
} | |
function h(v, y, A, u) { | |
var w = k(v); | |
if (n.cssEase[A]) { | |
A = n.cssEase[A]; | |
} | |
var z = "" + o(y) + " " + A; | |
if (parseInt(u, 10) > 0) { | |
z += " " + o(u); | |
} | |
var x = []; | |
n.each(w, function(C, B) { | |
x.push(B + " " + z); | |
}); | |
return x.join(", "); | |
} | |
n.fn.transition = n.fn.transit = function(C, v, B, F) { | |
var G = this; | |
var x = 0; | |
var z = true; | |
if (typeof v === "function") { | |
F = v; | |
v = undefined; | |
} | |
if (typeof B === "function") { | |
F = B; | |
B = undefined; | |
} | |
if (typeof C.easing !== "undefined") { | |
B = C.easing; | |
delete C.easing; | |
} | |
if (typeof C.duration !== "undefined") { | |
v = C.duration; | |
delete C.duration; | |
} | |
if (typeof C.complete !== "undefined") { | |
F = C.complete; | |
delete C.complete; | |
} | |
if (typeof C.queue !== "undefined") { | |
z = C.queue; | |
delete C.queue; | |
} | |
if (typeof C.delay !== "undefined") { | |
x = C.delay; | |
delete C.delay; | |
} | |
if (typeof v === "undefined") { | |
v = n.fx.speeds._default; | |
} | |
if (typeof B === "undefined") { | |
B = n.cssEase._default; | |
} | |
v = o(v); | |
var H = h(C, v, B, x); | |
var E = n.transit.enabled && t.transition; | |
var w = E ? parseInt(v, 10) + parseInt(x, 10) : 0; | |
if (w === 0) { | |
var D = function(I) { | |
G.css(C); | |
if (F) { | |
F.apply(G); | |
} | |
if (I) { | |
I(); | |
} | |
}; | |
p(G, z, D); | |
return G; | |
} | |
var A = {}; | |
var u = function(K) { | |
var J = false; | |
var I = function() { | |
if (J) { | |
G.unbind(g, I); | |
} | |
if (w > 0) { | |
G.each(function() { | |
this.style[t.transition] = A[this] || null; | |
}); | |
} | |
if (typeof F === "function") { | |
F.apply(G); | |
} | |
if (typeof K === "function") { | |
K(); | |
} | |
}; | |
if (w > 0 && g && n.transit.useTransitionEnd) { | |
J = true; | |
G.bind(g, I); | |
} else { | |
window.setTimeout(I, w); | |
} | |
G.each(function() { | |
if (w > 0) { | |
this.style[t.transition] = H; | |
} | |
n(this).css(C); | |
}); | |
}; | |
var y = function(I) { | |
this.offsetWidth; | |
u(I); | |
}; | |
p(G, z, y); | |
return this; | |
}; | |
function q(v, u) { | |
if (!u) { | |
n.cssNumber[v] = true; | |
} | |
n.transit.propertyMap[v] = t.transform; | |
n.cssHooks[v] = { | |
get: function(x) { | |
var w = n(x).css("transit:transform"); | |
return w.get(v); | |
}, | |
set: function(x, y) { | |
var w = n(x).css("transit:transform"); | |
w.setFromString(v, y); | |
n(x).css({ | |
"transit:transform": w | |
}); | |
} | |
}; | |
} | |
function c(u) { | |
return u.replace(/([A-Z])/g, function(v) { | |
return "-" + v.toLowerCase(); | |
}); | |
} | |
function r(v, u) { | |
if (typeof v === "string" && !v.match(/^[\-0-9\.]+$/)) { | |
return v; | |
} else { | |
return "" + v + u; | |
} | |
} | |
function o(v) { | |
var u = v; | |
if (n.fx.speeds[u]) { | |
u = n.fx.speeds[u]; | |
} | |
return r(u, "ms"); | |
} | |
n.transit.getTransitionValue = h; | |
})(jQuery); | |
(function(d) { | |
var b = { | |
undHash: /_|-/, | |
colons: /::/, | |
words: /([A-Z]+)([A-Z][a-z])/g, | |
lowUp: /([a-z\d])([A-Z])/g, | |
dash: /([a-z\d])([A-Z])/g, | |
replacer: /\{([^\}]+)\}/g, | |
dot: /\./ | |
}, g = function(l, k, h) { | |
return l[k] !== undefined ? l[k] : h && (l[k] = {}); | |
}, c = function(k) { | |
var h = typeof k; | |
return k && (h == "function" || h == "object"); | |
}, a, f = d.String = d.extend(d.String || {}, { | |
getObject: a = function(k, s, t) { | |
var m = k ? k.split(b.dot) : [], l = m.length, o, p, n, h = 0, q; | |
s = d.isArray(s) ? s : [ s || window ]; | |
if (l == 0) { | |
return s[0]; | |
} | |
while (o = s[h++]) { | |
for (n = 0; n < l - 1 && c(o); n++) { | |
o = g(o, m[n], t); | |
} | |
if (c(o)) { | |
p = g(o, m[n], t); | |
if (p !== undefined) { | |
if (t === false) { | |
delete o[m[n]]; | |
} | |
return p; | |
} | |
} | |
} | |
}, | |
capitalize: function(k, h) { | |
return k.charAt(0).toUpperCase() + k.substr(1); | |
}, | |
camelize: function(h) { | |
h = f.classize(h); | |
return h.charAt(0).toLowerCase() + h.substr(1); | |
}, | |
classize: function(k, m) { | |
var l = k.split(b.undHash), h = 0; | |
for (;h < l.length; h++) { | |
l[h] = f.capitalize(l[h]); | |
} | |
return l.join(m || ""); | |
}, | |
niceName: function(h) { | |
return f.classize(h, " "); | |
}, | |
underscore: function(h) { | |
return h.replace(b.colons, "/").replace(b.words, "$1_$2").replace(b.lowUp, "$1_$2").replace(b.dash, "_").toLowerCase(); | |
}, | |
sub: function(k, l, h) { | |
var m = [], h = typeof h == "boolean" ? !h : h; | |
m.push(k.replace(b.replacer, function(p, n) { | |
var o = a(n, l, h); | |
if (c(o)) { | |
m.push(o); | |
return ""; | |
} else { | |
return "" + o; | |
} | |
})); | |
return m.length <= 1 ? m[0] : m; | |
}, | |
_regs: b | |
}); | |
})(jQuery); | |
(function(f) { | |
var g = false, a = f.makeArray, b = f.isFunction, h = f.isArray, k = f.extend, n = f.String.getObject, d = function(o, p) { | |
return o.concat(a(p)); | |
}, l = /xyz/.test(function() { | |
xyz; | |
}) ? /\b_super\b/ : /.*/, c = function(r, o, q) { | |
q = q || r; | |
for (var p in r) { | |
q[p] = b(r[p]) && b(o[p]) && l.test(r[p]) ? function(s, t) { | |
return function() { | |
var v = this._super, u; | |
this._super = o[s]; | |
u = t.apply(this, arguments); | |
this._super = v; | |
return u; | |
}; | |
}(p, r[p]) : r[p]; | |
} | |
}, m = "prototype"; | |
clss = f.Class = function() { | |
if (arguments.length) { | |
clss.extend.apply(clss, arguments); | |
} | |
}; | |
k(clss, { | |
proxy: function(p) { | |
var q = a(arguments), o; | |
p = q.shift(); | |
if (!h(p)) { | |
p = [ p ]; | |
} | |
o = this; | |
return function r() { | |
var w = d(q, arguments), s, u = p.length, v = 0, t; | |
for (;v < u; v++) { | |
t = p[v]; | |
if (!t) { | |
continue; | |
} | |
s = typeof t == "string"; | |
if (s && o._set_called) { | |
o.called = t; | |
} | |
w = (s ? o[t] : t).apply(o, w || []); | |
if (v < u - 1) { | |
w = !h(w) || w._use_call ? [ w ] : w; | |
} | |
} | |
return w; | |
}; | |
}, | |
newInstance: function() { | |
var p = this.rawInstance(), o; | |
if (p.setup) { | |
o = p.setup.apply(p, arguments); | |
} | |
if (p.init) { | |
p.init.apply(p, h(o) ? o : arguments); | |
} | |
return p; | |
}, | |
setup: function(o, p) { | |
this.defaults = k(true, {}, o.defaults, this.defaults); | |
return arguments; | |
}, | |
rawInstance: function() { | |
g = true; | |
var o = new this(); | |
g = false; | |
return o; | |
}, | |
extend: function(q, w, t) { | |
if (typeof q != "string") { | |
t = w; | |
w = q; | |
q = null; | |
} | |
if (!t) { | |
t = w; | |
w = null; | |
} | |
t = t || {}; | |
var u = this, A = this[m], p, y, r, z; | |
g = true; | |
z = new this(); | |
g = false; | |
c(t, A, z); | |
function o() { | |
if (g) { | |
return; | |
} | |
if (this.constructor !== o && arguments.length) { | |
return arguments.callee.extend.apply(arguments.callee, arguments); | |
} else { | |
return this.Class.newInstance.apply(this.Class, arguments); | |
} | |
} | |
for (p in this) { | |
if (this.hasOwnProperty(p)) { | |
o[p] = this[p]; | |
} | |
} | |
c(w, this, o); | |
if (q) { | |
var s = q.split(/\./), y = s.pop(), v = n(s.join("."), window, true), r = v; | |
v[y] = o; | |
} | |
k(o, { | |
prototype: z, | |
namespace: r, | |
shortName: y, | |
constructor: o, | |
fullName: q | |
}); | |
o[m].Class = o[m].constructor = o; | |
var x = o.setup.apply(o, d([ u ], arguments)); | |
if (o.init) { | |
o.init.apply(o, x || d([ u ], arguments)); | |
} | |
return o; | |
} | |
}); | |
clss.callback = clss[m].callback = clss[m].proxy = clss.proxy; | |
})(jQuery); | |
(function(b) { | |
var a = jQuery.cleanData; | |
b.cleanData = function(c) { | |
for (var d = 0, f; (f = c[d]) !== undefined; d++) { | |
b(f).triggerHandler("destroyed"); | |
} | |
a(c); | |
}; | |
})(jQuery); | |
(function(h) { | |
var A = function(D, E, G) { | |
var F, C = D.bind && D.unbind ? D : h(b(D) ? [ D ] : D); | |
if (E.indexOf(">") === 0) { | |
E = E.substr(1); | |
F = function(H) { | |
if (H.target === D) { | |
G.apply(this, arguments); | |
} | |
}; | |
} | |
C.bind(E, F || G); | |
return function() { | |
C.unbind(E, F || G); | |
D = E = G = F = null; | |
}; | |
}, o = h.makeArray, p = h.isArray, b = h.isFunction, u = h.extend, z = h.String, g = h.each, m = "prototype", B = "constructor", r = Array[m].slice, t = function(E, C, F, G) { | |
var D = E.delegate && E.undelegate ? E : h(b(E) ? [ E ] : E); | |
D.delegate(C, F, G); | |
return function() { | |
D.undelegate(C, F, G); | |
D = E = F = G = C = null; | |
}; | |
}, n = function(D, E, F, C) { | |
return C ? t(D, C, E, F) : A(D, E, F); | |
}, w = function w(D, C) { | |
var E = typeof C == "string" ? D[C] : C; | |
return function() { | |
D.called = C; | |
return E.apply(D, [ this.nodeName ? h(this) : this ].concat(r.call(arguments, 0))); | |
}; | |
}, x = /\./g, k = /_?controllers?/gi, q = function(C) { | |
return z.underscore(C.replace("jQuery.", "").replace(x, "_").replace(k, "")); | |
}, l = /[^\w]/, f = /\{([^\}]+)\}/g, c = /^(?:(.*?)\s)?([\w\.\:>]+)$/, a, y = function(C, D) { | |
return h.data(C, "controllers", D); | |
}; | |
h.Class("jQuery.Controller", { | |
setup: function() { | |
this._super.apply(this, arguments); | |
if (!this.shortName || this.fullName == "jQuery.Controller") { | |
return; | |
} | |
this._fullName = q(this.fullName); | |
this._shortName = q(this.shortName); | |
var C = this, F = this.pluginName || this._fullName, D, E; | |
if (!h.fn[F]) { | |
h.fn[F] = function(I) { | |
var H = o(arguments), J = typeof I == "string" && b(C[m][I]), G = H[0]; | |
return this.each(function() { | |
var L = y(this), K = L && L[F]; | |
if (K) { | |
if (J) { | |
K[G].apply(K, H.slice(1)); | |
} else { | |
K.update.apply(K, H); | |
} | |
} else { | |
C.newInstance.apply(C, [ this ].concat(H)); | |
} | |
}); | |
}; | |
} | |
this.actions = {}; | |
for (D in this[m]) { | |
if (D == "constructor" || !b(this[m][D])) { | |
continue; | |
} | |
if (this._isAction(D)) { | |
this.actions[D] = this._action(D); | |
} | |
} | |
}, | |
hookup: function(C) { | |
return new this(C); | |
}, | |
_isAction: function(C) { | |
if (l.test(C)) { | |
return true; | |
} else { | |
return h.inArray(C, this.listensTo) > -1 || h.event.special[C] || v[C]; | |
} | |
}, | |
_action: function(D, E) { | |
f.lastIndex = 0; | |
if (!E && f.test(D)) { | |
return null; | |
} | |
var F = E ? z.sub(D, [ E, window ]) : D, C = p(F), I = (C ? F[1] : F).match(c), H = I[2], G = v[H] || a; | |
return { | |
processor: G, | |
parts: I, | |
delegate: C ? F[0] : undefined | |
}; | |
}, | |
processors: {}, | |
listensTo: [], | |
defaults: {} | |
}, { | |
setup: function(E, D) { | |
var G, F, C = this[B]; | |
E = (typeof E == "string" ? h(E) : E.jquery ? E : [ E ])[0]; | |
var H = C.pluginName || C._fullName; | |
this.element = h(E).addClass(H); | |
(y(E) || y(E, {}))[H] = this; | |
this.options = u(u(true, {}, C.defaults), D); | |
this.called = "init"; | |
this.bind(); | |
return [ this.element, this.options ].concat(o(arguments).slice(2)); | |
}, | |
bind: function(G, D, H) { | |
if (G === undefined) { | |
this._bindings = []; | |
var C = this[B], J = this._bindings, I = C.actions, E = this.element; | |
for (funcName in I) { | |
if (I.hasOwnProperty(funcName)) { | |
ready = I[funcName] || C._action(funcName, this.options); | |
J.push(ready.processor(ready.delegate || E, ready.parts[2], ready.parts[1], funcName, this)); | |
} | |
} | |
var F = w(this, "destroy"); | |
E.bind("destroyed", F); | |
J.push(function(K) { | |
h(K).unbind("destroyed", F); | |
}); | |
return J.length; | |
} | |
if (typeof G == "string") { | |
H = D; | |
D = G; | |
G = this.element; | |
} | |
return this._binder(G, D, H); | |
}, | |
_binder: function(E, D, F, C) { | |
if (typeof F == "string") { | |
F = w(this, F); | |
} | |
this._bindings.push(n(E, D, F, C)); | |
return this._bindings.length; | |
}, | |
_unbind: function() { | |
var C = this.element[0]; | |
g(this._bindings, function(D, E) { | |
E(C); | |
}); | |
this._bindings = []; | |
}, | |
delegate: function(E, C, D, F) { | |
if (typeof E == "string") { | |
F = D; | |
D = C; | |
C = E; | |
E = this.element; | |
} | |
return this._binder(E, D, F, C); | |
}, | |
update: function(C) { | |
u(this.options, C); | |
this._unbind(); | |
this.bind(); | |
}, | |
destroy: function() { | |
if (this._destroyed) { | |
throw this[B].shortName + " controller already deleted"; | |
} | |
var C = this, E = this[B].pluginName || this[B]._fullName, D; | |
this._destroyed = true; | |
this.element.removeClass(E); | |
this._unbind(); | |
delete this._actions; | |
delete this.element.data("controllers")[E]; | |
h(this).triggerHandler("destroyed"); | |
this.element = null; | |
}, | |
find: function(C) { | |
return this.element.find(C); | |
}, | |
_set_called: true | |
}); | |
var v = h.Controller.processors, a = function(F, G, C, E, D) { | |
return n(F, G, w(D, E), C); | |
}; | |
g("change click contextmenu dblclick keydown keyup keypress mousedown mousemove mouseout mouseover mouseup reset resize scroll select submit focusin focusout mouseenter mouseleave".split(" "), function(D, C) { | |
v[C] = a; | |
}); | |
var s, d = function(C, D) { | |
for (s = 0; s < D.length; s++) { | |
if (typeof D[s] == "string" ? C[B]._shortName == D[s] : C instanceof D[s]) { | |
return true; | |
} | |
} | |
return false; | |
}; | |
h.fn.extend({ | |
controllers: function() { | |
var G = o(arguments), E = [], D, F, C; | |
this.each(function() { | |
D = h.data(this, "controllers"); | |
for (C in D) { | |
if (D.hasOwnProperty(C)) { | |
F = D[C]; | |
if (!G.length || d(F, G)) { | |
E.push(F); | |
} | |
} | |
} | |
}); | |
return E; | |
}, | |
controller: function(C) { | |
return this.controllers.apply(this, arguments)[0]; | |
} | |
}); | |
})(jQuery); | |
(function() { | |
var b = $.String, t = b.getObject, u = b.underscore, s = b.classize, l = $.isArray, h = $.makeArray, r = $.extend, c = $.each, o = function(A, z, y) { | |
$.event.trigger(z, y, A, true); | |
}, n = function(B, E, F, z, C, A, y) { | |
if (typeof B == "string") { | |
var D = B.indexOf(" "); | |
if (D > -1) { | |
B = { | |
url: B.substr(D + 1), | |
type: B.substr(0, D) | |
}; | |
} else { | |
B = { | |
url: B | |
}; | |
} | |
} | |
B.data = typeof E == "object" && !l(E) ? r(B.data || {}, E) : E; | |
B.url = b.sub(B.url, B.data, true); | |
return $.ajax(r({ | |
type: A || "post", | |
dataType: y || "json", | |
fixture: C, | |
success: F, | |
error: z | |
}, B)); | |
}, v = function(A, y, C) { | |
var z = u(A.shortName), B = "-" + z + (y || ""); | |
return $.fixture && $.fixture[B] ? B : C || "//" + u(A.fullName).replace(/\.models\..*/, "").replace(/\./g, "/") + "/fixtures/" + z + (y || "") + ".json"; | |
}, q = function(A, z, B) { | |
z = z || {}; | |
var y = A.id; | |
if (z[y] && z[y] !== B) { | |
z["new" + b.capitalize(B)] = z[y]; | |
delete z[y]; | |
} | |
z[y] = B; | |
return z; | |
}, g = function(z) { | |
var y = z || $.Model.List || Array; | |
return new y(); | |
}, m = function(y) { | |
return y[y.constructor.id]; | |
}, a = function(y) { | |
var z = []; | |
c(y, function(A, B) { | |
if (!B["__u Nique"]) { | |
z.push(B); | |
B["__u Nique"] = 1; | |
} | |
}); | |
return c(z, function(A, B) { | |
delete B["__u Nique"]; | |
}); | |
}, p = function(G, B, E, C, y) { | |
var H = $.Deferred(), F = function(K) { | |
G[y || B + "d"](K); | |
H.resolveWith(G, [ G, K, B ]); | |
}, J = function(K) { | |
H.rejectWith(G, [ K ]); | |
}, A = [ G.serialize(), F, J ], z = G.constructor, D, I = H.promise(); | |
if (B == "destroy") { | |
A.shift(); | |
} | |
if (B !== "create") { | |
A.unshift(m(G)); | |
} | |
H.then(E); | |
H.fail(C); | |
D = z[B].apply(z, A); | |
if (D && D.abort) { | |
I.abort = function() { | |
D.abort(); | |
}; | |
} | |
return I; | |
}, k = function(y) { | |
return typeof y === "object" && y !== null && y; | |
}, f = function(y) { | |
return function(z, A) { | |
return $.fn[y].apply($([ this ]), arguments); | |
}; | |
}, x = f("bind"), d = f("unbind"), w = "constructor"; | |
ajaxMethods = { | |
create: function(y) { | |
return function(A, B, z) { | |
return n(y || this._shortName, A, B, z, v(this, "Create", "-restCreate")); | |
}; | |
}, | |
update: function(y) { | |
return function(C, A, B, z) { | |
return n(y || this._shortName + "/{" + this.id + "}", q(this, A, C), B, z, v(this, "Update", "-restUpdate"), "put"); | |
}; | |
}, | |
destroy: function(y) { | |
return function(C, B, A) { | |
var z = {}; | |
z[this.id] = C; | |
return n(y || this._shortName + "/{" + this.id + "}", z, B, A, v(this, "Destroy", "-restDestroy"), "delete"); | |
}; | |
}, | |
findAll: function(y) { | |
return function(B, A, z) { | |
return n(y || this._shortName, B, A, z, v(this, "s"), "get", "json " + this._shortName + ".models"); | |
}; | |
}, | |
findOne: function(y) { | |
return function(B, A, z) { | |
return n(y || this._shortName + "/{" + this.id + "}", B, A, z, v(this), "get", "json " + this._shortName + ".model"); | |
}; | |
} | |
}; | |
jQuery.Class("jQuery.Model", { | |
setup: function(B, A, C) { | |
var y = this, D = this.fullName; | |
c([ "attributes", "validations" ], function(G, F) { | |
if (!y[F] || B[F] === y[F]) { | |
y[F] = {}; | |
} | |
}); | |
c([ "convert", "serialize" ], function(G, F) { | |
if (B[F] != y[F]) { | |
y[F] = r({}, B[F], y[F]); | |
} | |
}); | |
this._fullName = u(D.replace(/\./g, "_")); | |
this._shortName = u(this.shortName); | |
if (D.indexOf("jQuery") == 0) { | |
return; | |
} | |
if (this.listType) { | |
this.list = new this.listType([]); | |
} | |
c(ajaxMethods, function(F, H) { | |
var G = y[F]; | |
if (typeof G !== "function") { | |
y[F] = H(G); | |
} | |
}); | |
var E = {}, z = "* " + this._shortName + ".model"; | |
E[z + "s"] = this.proxy("models"); | |
E[z] = this.proxy("model"); | |
$.ajaxSetup({ | |
converters: E | |
}); | |
}, | |
attributes: {}, | |
model: function(y) { | |
if (!y) { | |
return null; | |
} | |
if (y instanceof this) { | |
y = y.serialize(); | |
} | |
return new this(k(y[this._shortName]) || k(y.data) || k(y.attributes) || y); | |
}, | |
models: function(D) { | |
if (!D) { | |
return null; | |
} | |
var C = g(this.List), z = l(D), y = $.Model.List, F = y && D instanceof y, A = z ? D : F ? D.serialize() : D.data, E = A ? A.length : null, B = 0; | |
for (;B < E; B++) { | |
C.push(this.model(A[B])); | |
} | |
if (!z) { | |
c(D, function(H, G) { | |
if (H !== "data") { | |
C[H] = G; | |
} | |
}); | |
} | |
return C; | |
}, | |
id: "id", | |
addAttr: function(A, z) { | |
var B, y = this.attributes; | |
B = y[A] || (y[A] = z); | |
return z; | |
}, | |
convert: { | |
date: function(z) { | |
var y = typeof z; | |
if (y === "string") { | |
return isNaN(Date.parse(z)) ? null : Date.parse(z); | |
} else { | |
if (y === "number") { | |
return new Date(z); | |
} else { | |
return z; | |
} | |
} | |
}, | |
number: function(y) { | |
return parseFloat(y); | |
}, | |
"boolean": function(y) { | |
return Boolean(y === "false" ? 0 : y); | |
}, | |
"default": function(D, z, C) { | |
var y = t(C), A = window, B; | |
if (C.indexOf(".") >= 0) { | |
B = C.substring(0, C.lastIndexOf(".")); | |
A = t(B); | |
} | |
return typeof y == "function" ? y.call(A, D) : D; | |
} | |
}, | |
serialize: { | |
"default": function(z, y) { | |
return k(z) && z.serialize ? z.serialize() : z; | |
}, | |
date: function(y) { | |
return y && y.getTime(); | |
} | |
}, | |
bind: x, | |
unbind: d, | |
_ajax: n | |
}, { | |
setup: function(y) { | |
this._init = true; | |
this.attrs(r({}, this.constructor.defaults, y)); | |
delete this._init; | |
}, | |
update: function(z, A, y) { | |
this.attrs(z); | |
return this.save(A, y); | |
}, | |
errors: function(A) { | |
if (A) { | |
A = l(A) ? A : h(arguments); | |
} | |
var D = {}, z = this, y, C = function(E, F) { | |
c(F, function(H, I) { | |
var G = I.call(z); | |
if (G) { | |
if (!D[E]) { | |
D[E] = []; | |
} | |
D[E].push(G); | |
} | |
}); | |
}, B = this.constructor.validations; | |
c(A || B || {}, function(E, F) { | |
if (typeof E == "number") { | |
E = F; | |
F = B[E]; | |
} | |
C(E, F || []); | |
}); | |
return $.isEmptyObject(D) ? null : D; | |
}, | |
attr: function(y, E, F, D) { | |
var G = s(y), z = "get" + G; | |
if (E !== undefined) { | |
var C = "set" + G, A = this[y], H = this, B = function(J) { | |
var I; | |
I = D && D.call(H, J); | |
o(H, "error." + y, J); | |
}; | |
if (this[C] && (E = this[C](E, this.proxy("_updateProperty", y, E, A, F, B), B)) === undefined) { | |
return; | |
} | |
this._updateProperty(y, E, A, F, B); | |
return this; | |
} | |
return this[z] ? this[z]() : this[y]; | |
}, | |
bind: x, | |
unbind: d, | |
_updateProperty: function(L, K, B, N, D) { | |
var y = this.constructor, A, I = y.attributes[L] || y.addAttr(L, "string"), C = y.convert[I] || y.convert["default"], J = null, E = "", z = "updated.", H, G, M = N, F = y.list; | |
A = this[L] = K === null ? null : C.call(y, K, function() {}, I); | |
if (!this._init) { | |
J = this.errors(L); | |
} | |
H = [ A ]; | |
G = [ L, A, B ]; | |
if (J) { | |
E = z = "error."; | |
M = D; | |
G.splice(1, 0, J); | |
H.unshift(J); | |
} | |
if (B !== A && !this._init) { | |
!J && o(this, E + L, H); | |
o(this, z + "attr", G); | |
} | |
M && M.apply(this, H); | |
if (L === y.id && A !== null && F) { | |
if (!B) { | |
F.push(this); | |
} else { | |
if (B != A) { | |
F.remove(B); | |
F.push(this); | |
} | |
} | |
} | |
}, | |
removeAttr: function(z) { | |
var A = this[z], y = false, B = this.constructor.attributes; | |
if (this[z]) { | |
delete this[z]; | |
} | |
if (B[z]) { | |
delete B[z]; | |
y = true; | |
} | |
if (!this._init && y && A) { | |
o(this, "updated.attr", [ z, null, A ]); | |
} | |
}, | |
attrs: function(z) { | |
var B, C = this.constructor, A = C.attributes; | |
if (!z) { | |
z = {}; | |
for (B in A) { | |
if (A.hasOwnProperty(B)) { | |
z[B] = this.attr(B); | |
} | |
} | |
} else { | |
var y = C.id; | |
for (B in z) { | |
if (B != y) { | |
this.attr(B, z[B]); | |
} | |
} | |
if (y in z) { | |
this.attr(y, z[y]); | |
} | |
} | |
return z; | |
}, | |
serialize: function() { | |
var z = this.constructor, A = z.attributes, C, B, D = {}, y; | |
attributes = {}; | |
for (y in A) { | |
if (A.hasOwnProperty(y)) { | |
C = A[y]; | |
B = z.serialize[C] || z.serialize["default"]; | |
D[y] = B.call(z, this[y], C); | |
} | |
} | |
return D; | |
}, | |
isNew: function() { | |
var y = m(this); | |
return y === undefined || y === null || y === ""; | |
}, | |
save: function(z, y) { | |
return p(this, this.isNew() ? "create" : "update", z, y); | |
}, | |
destroy: function(z, y) { | |
return p(this, "destroy", z, y, "destroyed"); | |
}, | |
identity: function() { | |
var z = m(this), y = this.constructor; | |
return (y._fullName + "_" + (y.escapeIdentity ? encodeURIComponent(z) : z)).replace(/ /g, "_"); | |
}, | |
elements: function(y) { | |
var z = this.identity(); | |
if (this.constructor.escapeIdentity) { | |
z = z.replace(/([ #;&,.+*~\'%:"!^$[\]()=>|\/])/g, "\\$1"); | |
} | |
return $("." + z, y); | |
}, | |
hookup: function(z) { | |
var y = this.constructor._shortName, A = $.data(z, "models") || $.data(z, "models", {}); | |
$(z).addClass(y + " " + this.identity()); | |
A[y] = this; | |
} | |
}); | |
c([ "created", "updated", "destroyed" ], function(y, z) { | |
$.Model.prototype[z] = function(A) { | |
var C, B = this.constructor; | |
if (z === "destroyed" && B.list) { | |
B.list.remove(m(this)); | |
} | |
C = A && typeof A == "object" && this.attrs(A.attrs ? A.attrs() : A); | |
o(this, z); | |
o(B, z, this); | |
return [ this ].concat(h(arguments)); | |
}; | |
}); | |
$.fn.models = function(A) { | |
var C = [], z, y, B; | |
this.each(function() { | |
c($.data(this, "models") || {}, function(E, D) { | |
z = z === undefined ? D.constructor.List || null : D.constructor.List === z ? z : null; | |
C.push(D); | |
}); | |
}); | |
y = g(z); | |
y.push.apply(y, a(C)); | |
return y; | |
}; | |
$.fn.model = function(y) { | |
if (y && y instanceof $.Model) { | |
y.hookup(this[0]); | |
return this; | |
} else { | |
return this.models.apply(this, arguments)[0]; | |
} | |
}; | |
})(jQuery); | |
(function(b) { | |
var d = function(n) { | |
if (n[0] && b.isArray(n[0])) { | |
return n[0]; | |
} else { | |
if (n[0] instanceof b.Model.List) { | |
return b.makeArray(n[0]); | |
} else { | |
return b.makeArray(n); | |
} | |
} | |
}, a = 0, f = function(n) { | |
return n[n.constructor.id]; | |
}, m = jQuery.expando, h = b.each, k = b.Model._ajax, c = { | |
update: function(n) { | |
return function(q, p, r, o) { | |
return k(n, { | |
ids: q, | |
attrs: p | |
}, r, o, "-updateAll", "put"); | |
}; | |
}, | |
destroy: function(n) { | |
return function(p, q, o) { | |
return k(n, p, q, o, "-destroyAll", "post"); | |
}; | |
} | |
}; | |
b.Class("jQuery.Model.List", { | |
setup: function() { | |
for (var n in c) { | |
if (typeof this[n] !== "function") { | |
this[n] = c[n](this[n]); | |
} | |
} | |
} | |
}, { | |
init: function(o, n) { | |
this.length = 0; | |
this._data = {}; | |
this._namespace = ".list" + ++a, this.push.apply(this, b.makeArray(o || [])); | |
}, | |
slice: function() { | |
return new this.Class(Array.prototype.slice.apply(this, arguments)); | |
}, | |
match: function(o, n) { | |
return this.grep(function(p) { | |
return p[o] == n; | |
}); | |
}, | |
grep: function(o, n) { | |
return new this.Class(b.grep(this, o, n)); | |
}, | |
_makeData: function() { | |
var n = this._data = {}; | |
this.each(function(o, p) { | |
n[p[p.constructor.id]] = p; | |
}); | |
}, | |
get: function() { | |
if (!this.length) { | |
return new this.Class([]); | |
} | |
if (this._changed) { | |
this._makeData(); | |
} | |
var s = [], o = this[0].constructor, r = o._fullName, v = o.id, t = new RegExp(r + "_([^ ]+)"), q, n, u = d(arguments); | |
for (var p = 0; p < u.length; p++) { | |
if (u[p].nodeName && (q = u[p].className.match(t))) { | |
n = this._data[q[1]]; | |
} else { | |
n = this._data[typeof u[p] == "string" || typeof u[p] == "number" ? u[p] : u[p][v]]; | |
} | |
n && s.push(n); | |
} | |
return new this.Class(s); | |
}, | |
remove: function(x) { | |
if (!this.length) { | |
return []; | |
} | |
var v = [], p = this[0].constructor, t = p._fullName, z = p.id, w = new RegExp(t + "_([^ ]+)"), s, o; | |
x = d(arguments); | |
var q = 0; | |
while (q < this.length) { | |
var r = this[q], A = false; | |
for (var y = 0; y < x.length; y++) { | |
var n = x[y].nodeName && (s = x[y].className.match(w)) && s[1] || (typeof x[y] == "string" || typeof x[y] == "number" ? x[y] : x[y][z]); | |
if (r[z] == n) { | |
v.push.apply(v, this.splice(q, 1)); | |
x.splice(y, 1); | |
A = true; | |
break; | |
} | |
} | |
if (!A) { | |
q++; | |
} | |
} | |
var u = new this.Class(v); | |
if (u.length) { | |
b([ this ]).trigger("remove", [ u ]); | |
} | |
return u; | |
}, | |
elements: function(n) { | |
return b(this.map(function(o) { | |
return "." + o.identity(); | |
}).join(","), n); | |
}, | |
model: function() { | |
return this.constructor.namespace; | |
}, | |
findAll: function(q, p, o) { | |
var n = this; | |
this.model().findAll(q, function(r) { | |
n.push(r); | |
p && p(n); | |
}, o); | |
}, | |
destroy: function(q, o) { | |
var p = this.map(f), n = this.slice(0, this.length); | |
if (p.length) { | |
this.constructor.destroy(p, function() { | |
h(n, function() { | |
this.destroyed(); | |
}); | |
q && q(n); | |
}, o); | |
} else { | |
q && q(this); | |
} | |
return this; | |
}, | |
update: function(p, r, o) { | |
var q = this.map(f), n = this.slice(0, this.length); | |
if (q.length) { | |
this.constructor.update(q, p, function(t) { | |
var s = b.extend(p, t || {}); | |
h(n, function() { | |
this.updated(s); | |
}); | |
r && r(n); | |
}, o); | |
} else { | |
r && r(this); | |
} | |
return this; | |
}, | |
bind: function() { | |
if (this[m] === undefined) { | |
this.bindings(this); | |
} | |
b.fn.bind.apply(b([ this ]), arguments); | |
return this; | |
}, | |
unbind: function() { | |
b.fn.unbind.apply(b([ this ]), arguments); | |
if (this[m] === undefined) { | |
b(this).unbind(this._namespace); | |
} | |
return this; | |
}, | |
bindings: function(o) { | |
var n = this; | |
b(o).bind("destroyed" + this._namespace, function() { | |
n.remove(this); | |
}).bind("updated" + this._namespace, function() { | |
b([ n ]).trigger("updated", this); | |
}); | |
}, | |
push: function() { | |
var n = d(arguments); | |
if (this[m] !== undefined) { | |
this.bindings(n); | |
} | |
this._changed = true; | |
var o = g.apply(this, n); | |
if (this[m] && n.length) { | |
b([ this ]).trigger("add", [ n ]); | |
} | |
return o; | |
}, | |
serialize: function() { | |
return this.map(function(n) { | |
return n.serialize(); | |
}); | |
} | |
}); | |
var g = [].push, l = { | |
pop: [].pop, | |
shift: [].shift, | |
unshift: [].unshift, | |
splice: [].splice, | |
sort: [].sort, | |
reverse: [].reverse | |
}; | |
h(l, function(n, o) { | |
b.Model.List.prototype[n] = function() { | |
this._changed = true; | |
return o.apply(this, arguments); | |
}; | |
}); | |
h([ "each", "map" ], function(o, n) { | |
b.Model.List.prototype[n] = function(q, p) { | |
return b[n](this, q, p); | |
}; | |
}); | |
})(jQuery); | |
(function(a) { | |
var b = function(g, f, c) { | |
if (!c) { | |
c = f; | |
f = {}; | |
} | |
f = f || {}; | |
g = a.makeArray(g); | |
if (f.testIf && !f.testIf.call(this)) { | |
return; | |
} | |
var d = this; | |
a.each(g, function(k, h) { | |
if (!d.validations[h]) { | |
d.validations[h] = []; | |
} | |
d.validations[h].push(function() { | |
var l = c.call(this, this[h]); | |
return l === undefined ? undefined : f.message || l; | |
}); | |
}); | |
}; | |
a.extend(a.Model, { | |
validate: b, | |
validationMessages: { | |
format: "is invalid", | |
inclusion: "is not a valid option (perhaps out of range)", | |
lengthShort: "is too short", | |
lengthLong: "is too long", | |
presence: "can't be empty", | |
range: "is out of range" | |
}, | |
validateFormatOf: function(f, d, c) { | |
b.call(this, f, c, function(g) { | |
if (typeof g != "undefined" && g != "" && String(g).match(d) == null) { | |
return this.Class.validationMessages.format; | |
} | |
}); | |
}, | |
validateInclusionOf: function(f, d, c) { | |
b.call(this, f, c, function(g) { | |
if (typeof g == "undefined") { | |
return; | |
} | |
if (a.grep(d, function(h) { | |
return h == g; | |
}).length == 0) { | |
return this.Class.validationMessages.inclusion; | |
} | |
}); | |
}, | |
validateLengthOf: function(g, f, c, d) { | |
b.call(this, g, d, function(h) { | |
if (typeof h == "undefined" && f > 0 || h.length < f) { | |
return this.Class.validationMessages.lengthShort + " (min=" + f + ")"; | |
} else { | |
if (typeof h != "undefined" && h.length > c) { | |
return this.Class.validationMessages.lengthLong + " (max=" + c + ")"; | |
} | |
} | |
}); | |
}, | |
validatePresenceOf: function(d, c) { | |
b.call(this, d, c, function(f) { | |
if (typeof f == "undefined" || f == "" || f === null) { | |
return this.Class.validationMessages.presence; | |
} | |
}); | |
}, | |
validateRangeOf: function(g, c, f, d) { | |
b.call(this, g, d, function(h) { | |
if (typeof h != "undefined" && h < c || h > f) { | |
return this.Class.validationMessages.range + " [" + c + "," + f + "]"; | |
} | |
}); | |
} | |
}); | |
})(jQuery); | |
(function($) { | |
var k, l = $.event.special, b = "location", c = "hashchange", m = "href", f = $.browser, g = document.documentMode, h = f.msie && (g === undefined || g < 8), d = "on" + c in window && !h; | |
function a(n) { | |
n = n || window[b][m]; | |
return n.replace(/^[^#]*#?(.*)$/, "$1"); | |
} | |
$[c + "Delay"] = 100; | |
l[c] = $.extend(l[c], { | |
setup: function() { | |
if (d) { | |
return false; | |
} | |
$(k.start); | |
}, | |
teardown: function() { | |
if (d) { | |
return false; | |
} | |
$(k.stop); | |
} | |
}); | |
k = function() { | |
var n = {}, s, o, p, r; | |
function q() { | |
p = r = function(t) { | |
return t; | |
}; | |
if (h) { | |
o = $('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow; | |
r = function() { | |
return a(o.document[b][m]); | |
}; | |
p = function(v, t) { | |
if (v !== t) { | |
var u = o.document; | |
u.open().close(); | |
u[b].hash = "#" + v; | |
} | |
}; | |
p(a()); | |
} | |
} | |
n.start = function() { | |
if (s) { | |
return; | |
} | |
var u = a(); | |
p || q(); | |
if (!navigator.userAgent.match(/Rhino/)) { | |
(function t() { | |
var w = a(), v = r(u); | |
if (w !== u) { | |
p(u = w, v); | |
$(window).trigger(c); | |
} else { | |
if (v !== u) { | |
window[b][m] = window[b][m].replace(/#.*/, "") + "#" + v; | |
} | |
} | |
s = setTimeout(t, $[c + "Delay"]); | |
})(); | |
} | |
}; | |
n.stop = function() { | |
if (!o) { | |
s && clearTimeout(s); | |
s = 0; | |
} | |
}; | |
return n; | |
}(); | |
})(jQuery); | |
(function(c) { | |
var g = function(w) { | |
return w.replace(/^\/\//, "").replace(/[\/\.]/g, "_"); | |
}, h = c.makeArray, o = 1; | |
var p = c.View = function(w, C, B, D) { | |
if (typeof B === "function") { | |
D = B; | |
B = undefined; | |
} | |
var A = s(C); | |
if (A.length) { | |
var y = c.Deferred(); | |
A.push(u(w, true)); | |
c.when.apply(c, A).then(function(F) { | |
var H = h(arguments), G = H.pop()[0], E; | |
if (d(C)) { | |
C = k(F); | |
} else { | |
for (var I in C) { | |
if (d(C[I])) { | |
C[I] = k(H.shift()); | |
} | |
} | |
} | |
E = G(C, B); | |
y.resolve(E); | |
D && D(E); | |
}); | |
return y.promise(); | |
} else { | |
var x, z = typeof D === "function", y = u(w, z); | |
if (z) { | |
x = y; | |
y.done(function(E) { | |
D(E(C, B)); | |
}); | |
} else { | |
y.done(function(E) { | |
x = E(C, B); | |
}); | |
} | |
return x; | |
} | |
}, t = function(x, w) { | |
if (!x.match(/[^\s]/)) { | |
throw "$.View ERROR: There is no template or an empty template at " + w; | |
} | |
}, u = function(w, x) { | |
return c.ajax({ | |
url: w, | |
dataType: "view", | |
async: x | |
}); | |
}, d = function(w) { | |
return w && c.isFunction(w.always); | |
}, s = function(x) { | |
var w = []; | |
if (d(x)) { | |
return [ x ]; | |
} else { | |
for (var y in x) { | |
if (d(x[y])) { | |
w.push(x[y]); | |
} | |
} | |
} | |
return w; | |
}, k = function(w) { | |
return c.isArray(w) && w.length === 3 && w[1] === "success" ? w[0] : w; | |
}; | |
c.ajaxTransport("view", function(F, C) { | |
var x = C.url, E = x.match(/\.[\w\d]+$/), B, z, y, D, A = function(H) { | |
var G = B.renderer(y, H); | |
if (p.cache) { | |
p.cached[y] = G; | |
} | |
return { | |
view: G | |
}; | |
}; | |
if (z = document.getElementById(x)) { | |
E = "." + z.type.match(/\/(x\-)?(.+)/)[2]; | |
} | |
if (!E) { | |
E = p.ext; | |
x = x + p.ext; | |
} | |
y = g(x); | |
if (x.match(/^\/\//)) { | |
var w = x.substr(2); | |
x = typeof steal === "undefined" ? x = "/" + w : steal.root.mapJoin(w) + ""; | |
} | |
B = p.types[E]; | |
return { | |
send: function(G, H) { | |
if (p.cached[y]) { | |
return H(200, "success", { | |
view: p.cached[y] | |
}); | |
} else { | |
if (z) { | |
H(200, "success", A(z.innerHTML)); | |
} else { | |
D = c.ajax({ | |
async: C.async, | |
url: x, | |
dataType: "text", | |
error: function() { | |
t("", x); | |
H(404); | |
}, | |
success: function(I) { | |
t(I, x); | |
H(200, "success", A(I)); | |
} | |
}); | |
} | |
} | |
}, | |
abort: function() { | |
D && D.abort(); | |
} | |
}; | |
}); | |
c.extend(p, { | |
hookups: {}, | |
hookup: function(w) { | |
var x = ++o; | |
p.hookups[x] = w; | |
return x; | |
}, | |
cached: {}, | |
cache: true, | |
register: function(w) { | |
this.types["." + w.suffix] = w; | |
if (window.steal) { | |
steal.type(w.suffix + " view js", function(y, A, x) { | |
var z = p.types["." + y.type], B = g(y.rootSrc + ""); | |
y.text = z.script(B, y.text); | |
A(); | |
}); | |
} | |
}, | |
types: {}, | |
ext: ".ejs", | |
registerScript: function(w, y, x) { | |
return "$.View.preload('" + y + "'," + p.types["." + w].script(y, x) + ");"; | |
}, | |
preload: function(x, w) { | |
p.cached[x] = function(z, y) { | |
return w.call(z, z, y); | |
}; | |
} | |
}); | |
if (window.steal) { | |
steal.type("view js", function(x, z, w) { | |
var y = p.types["." + x.type], A = g(x.rootSrc + ""); | |
x.text = "steal('" + (y.plugin || "jquery/view/" + x.type) + "').then(function($){$.View.preload('" + A + "'," + x.text + ");\n})"; | |
z(); | |
}); | |
} | |
var f, v, q, n, r, b, a, l, m = { | |
val: true, | |
text: true | |
}; | |
f = function(x) { | |
var w = c.fn[x]; | |
c.fn[x] = function() { | |
var A = h(arguments), C, B, z = this, y; | |
if (d(A[0])) { | |
A[0].done(function(D) { | |
v.call(z, [ D ], w); | |
}); | |
return this; | |
} else { | |
if (q(A)) { | |
if (C = b(A)) { | |
B = A[C]; | |
A[C] = function(D) { | |
v.call(z, [ D ], w); | |
B.call(z, D); | |
}; | |
p.apply(p, A); | |
return this; | |
} | |
y = p.apply(p, A); | |
if (!d(y)) { | |
A = [ y ]; | |
} else { | |
y.done(function(D) { | |
v.call(z, [ D ], w); | |
}); | |
return this; | |
} | |
} | |
} | |
return m[x] ? w.apply(this, A) : v.call(this, A, w); | |
}; | |
}; | |
v = function(z, y) { | |
var A, B, x; | |
for (var w in p.hookups) { | |
break; | |
} | |
if (w && z[0] && n(z[0])) { | |
x = p.hookups; | |
p.hookups = {}; | |
z[0] = c(z[0]); | |
} | |
A = y.apply(this, z); | |
if (x) { | |
a(z[0], x); | |
} | |
return A; | |
}; | |
q = function(w) { | |
var x = typeof w[1]; | |
return typeof w[0] == "string" && (x == "object" || x == "function") && !r(w[1]); | |
}; | |
r = function(w) { | |
return w.nodeType || w.jquery; | |
}; | |
n = function(w) { | |
if (r(w)) { | |
return true; | |
} else { | |
if (typeof w === "string") { | |
w = c.trim(w); | |
return w.substr(0, 1) === "<" && w.substr(w.length - 1, 1) === ">" && w.length >= 3; | |
} else { | |
return false; | |
} | |
} | |
}; | |
b = function(w) { | |
return typeof w[3] === "function" ? 3 : typeof w[2] === "function" && 2; | |
}; | |
a = function(z, x) { | |
var C, w, y = 0, B, A; | |
z = z.filter(function() { | |
return this.nodeType != 3; | |
}); | |
C = z.add("[data-view-id]", z); | |
w = C.length; | |
for (;y < w; y++) { | |
if (C[y].getAttribute && (B = C[y].getAttribute("data-view-id")) && (A = x[B])) { | |
A(C[y], B); | |
delete x[B]; | |
C[y].removeAttribute("data-view-id"); | |
} | |
} | |
c.extend(p.hookups, x); | |
}; | |
c.fn.hookup = function() { | |
var w = p.hookups; | |
p.hookups = {}; | |
a(this, w); | |
return this; | |
}; | |
c.each([ "prepend", "append", "after", "before", "text", "html", "replaceWith", "val" ], function(w, x) { | |
f(x); | |
}); | |
})(jQuery); | |
(function() { | |
var h = $.isArray, p = function(s) { | |
return typeof s === "object" && s !== null && s; | |
}, b = $.makeArray, o = $.each, r = function(t, u, s) { | |
if (t instanceof $.Observe) { | |
k([ t ], s._namespace); | |
} else { | |
if (h(t)) { | |
t = new $.Observe.List(t); | |
} else { | |
t = new $.Observe(t); | |
} | |
} | |
t.bind("change" + s._namespace, function(x, v) { | |
var w = $.makeArray(arguments), x = w.shift(); | |
if (u === "*") { | |
w[0] = s.indexOf(t) + "." + w[0]; | |
} else { | |
w[0] = u + "." + w[0]; | |
} | |
$.event.trigger(x, w, s); | |
}); | |
return t; | |
}, k = function(s, u) { | |
var v; | |
for (var t = 0; t < s.length; t++) { | |
v = s[t]; | |
if (v && v.unbind) { | |
v.unbind("change" + u); | |
} | |
} | |
}, a = 0, c = null, n = function() { | |
if (!c) { | |
c = []; | |
return true; | |
} | |
}, f = function(u, t, s) { | |
if (u._init) { | |
return; | |
} | |
if (!c) { | |
return $.event.trigger(t, s, u, true); | |
} else { | |
c.push({ | |
t: u, | |
ev: t, | |
args: s | |
}); | |
} | |
}, g = 0, d = function() { | |
var s = c.length, t = c.slice(0), v; | |
c = null; | |
g++; | |
for (var u = 0; u < s; u++) { | |
v = t[u]; | |
$.event.trigger({ | |
type: v.ev, | |
batchNum: g | |
}, v.args, v.t); | |
} | |
}, q = function(u, t, s) { | |
u.each(function(v, w) { | |
s[v] = p(w) && typeof w[t] == "function" ? w[t]() : w; | |
}); | |
return s; | |
}; | |
$.Class("jQuery.Observe", { | |
init: function(s) { | |
this._data = {}; | |
this._namespace = ".observe" + ++a; | |
this._init = true; | |
this.attrs(s); | |
delete this._init; | |
}, | |
attr: function(s, t) { | |
if (t === undefined) { | |
return this._get(s); | |
} else { | |
this._set(s, t); | |
return this; | |
} | |
}, | |
each: function() { | |
return o.apply(null, [ this.__get() ].concat(b(arguments))); | |
}, | |
removeAttr: function(s) { | |
var u = h(s) ? s : s.split("."), v = u.shift(), t = this._data[v]; | |
if (u.length) { | |
return t.removeAttr(u); | |
} else { | |
delete this._data[v]; | |
f(this, "change", [ v, "remove", undefined, t ]); | |
return t; | |
} | |
}, | |
_get: function(s) { | |
var u = h(s) ? s : ("" + s).split("."), t = this.__get(u.shift()); | |
if (u.length) { | |
return t ? t._get(u) : undefined; | |
} else { | |
return t; | |
} | |
}, | |
__get: function(s) { | |
return s ? this._data[s] : this._data; | |
}, | |
_set: function(t, u) { | |
var w = h(t) ? t : ("" + t).split("."), x = w.shift(), v = this.__get(x); | |
if (p(v) && w.length) { | |
v._set(w, u); | |
} else { | |
if (!w.length) { | |
if (u !== v) { | |
var s = this.__get().hasOwnProperty(x) ? "set" : "add"; | |
this.__set(x, p(u) ? r(u, x, this) : u); | |
f(this, "change", [ x, s, u, v ]); | |
v && k([ v ], this._namespace); | |
} | |
} else { | |
throw "jQuery.Observe: set a property on an object that does not exist"; | |
} | |
} | |
}, | |
__set: function(t, s) { | |
this._data[t] = s; | |
if (!(t in this.constructor.prototype)) { | |
this[t] = s; | |
} | |
}, | |
bind: function(s, t) { | |
$.fn.bind.apply($([ this ]), arguments); | |
return this; | |
}, | |
unbind: function(s, t) { | |
$.fn.unbind.apply($([ this ]), arguments); | |
return this; | |
}, | |
serialize: function() { | |
return q(this, "serialize", {}); | |
}, | |
attrs: function(v, s) { | |
if (v === undefined) { | |
return q(this, "attrs", {}); | |
} | |
v = $.extend(true, {}, v); | |
var x, w = n(); | |
for (x in this._data) { | |
var u = this._data[x], t = v[x]; | |
if (t === undefined) { | |
s && this.removeAttr(x); | |
continue; | |
} | |
if (p(u) && p(t)) { | |
u.attrs(t, s); | |
} else { | |
if (u != t) { | |
this._set(x, t); | |
} else {} | |
} | |
delete v[x]; | |
} | |
for (var x in v) { | |
t = v[x]; | |
this._set(x, t); | |
} | |
if (w) { | |
d(); | |
} | |
} | |
}); | |
var l = jQuery.Observe("jQuery.Observe.List", { | |
init: function(t, s) { | |
this.length = 0; | |
this._namespace = ".list" + ++a; | |
this._init = true; | |
this.bind("change", this.proxy("_changes")); | |
this.push.apply(this, b(t || [])); | |
$.extend(this, s); | |
if (this.comparator) { | |
this.sort(); | |
} | |
delete this._init; | |
}, | |
_changes: function(z, s, x, v, t) { | |
if (this.comparator && /^\d+./.test(s)) { | |
var u = +/^\d+/.exec(s)[0], y = this[u], w = this.sortedIndex(y); | |
if (w !== u) { | |
[].splice.call(this, u, 1); | |
[].splice.call(this, w, 0, y); | |
f(this, "move", [ y, w, u ]); | |
z.stopImmediatePropagation(); | |
f(this, "change", [ s.replace(/^\d+/, w), x, v, t ]); | |
return; | |
} | |
} | |
if (s.indexOf(".") === -1) { | |
if (x === "add") { | |
f(this, x, [ v, +s ]); | |
} else { | |
if (x === "remove") { | |
f(this, x, [ t, +s ]); | |
} | |
} | |
} | |
}, | |
sortedIndex: function(u) { | |
var v = u.attr(this.comparator), s = 0, t; | |
for (var t = 0; t < this.length; t++) { | |
if (u === this[t]) { | |
s = -1; | |
continue; | |
} | |
if (v <= this[t].attr(this.comparator)) { | |
return t + s; | |
} | |
} | |
return t + s; | |
}, | |
__get: function(s) { | |
return s ? this[s] : this; | |
}, | |
__set: function(s, t) { | |
this[s] = t; | |
}, | |
serialize: function() { | |
return q(this, "serialize", []); | |
}, | |
splice: function(t, v) { | |
var s = b(arguments), u; | |
for (u = 2; u < s.length; u++) { | |
var x = s[u]; | |
if (p(x)) { | |
s[u] = r(x, "*", this); | |
} | |
} | |
if (v === undefined) { | |
v = s[1] = this.length - t; | |
} | |
var w = [].splice.apply(this, s); | |
if (v > 0) { | |
f(this, "change", [ "" + t, "remove", undefined, w ]); | |
k(w, this._namespace); | |
} | |
if (s.length > 2) { | |
f(this, "change", [ "" + t, "add", s.slice(2), w ]); | |
} | |
return w; | |
}, | |
attrs: function(w, t) { | |
if (w === undefined) { | |
return q(this, "attrs", []); | |
} | |
w = w.slice(0); | |
var s = Math.min(w.length, this.length), x = n(); | |
for (var y = 0; y < s; y++) { | |
var v = this[y], u = w[y]; | |
if (p(v) && p(u)) { | |
v.attrs(u, t); | |
} else { | |
if (v != u) { | |
this._set(y, u); | |
} else {} | |
} | |
} | |
if (w.length > this.length) { | |
this.push(w.slice(this.length)); | |
} else { | |
if (w.length < this.length && t) { | |
this.splice(w.length); | |
} | |
} | |
if (x) { | |
d(); | |
} | |
}, | |
sort: function(w, t) { | |
var s = this.comparator, u = s ? [ function(y, x) { | |
y = y[s]; | |
x = x[s]; | |
return y === x ? 0 : y < x ? -1 : 1; | |
} ] : [], v = [].sort.apply(this, u); | |
!t && f(this, "reset"); | |
} | |
}), m = function(s) { | |
if (s[0] && $.isArray(s[0])) { | |
return s[0]; | |
} else { | |
return b(s); | |
} | |
}; | |
o({ | |
push: "length", | |
unshift: 0 | |
}, function(t, s) { | |
l.prototype[t] = function() { | |
var w = m(arguments), u = s ? this.length : 0; | |
for (var y = 0; y < w.length; y++) { | |
var z = w[y]; | |
if (p(z)) { | |
w[y] = r(z, "*", this); | |
} | |
} | |
if (w.length == 1 && this.comparator) { | |
var v = this.sortedIndex(w[0]); | |
this.splice(v, 0, w[0]); | |
return this.length; | |
} | |
var x = [][t].apply(this, w); | |
if (this.comparator && w.length > 1) { | |
this.sort(null, true); | |
f(this, "reset", [ w ]); | |
} else { | |
f(this, "change", [ "" + u, "add", w, undefined ]); | |
} | |
return x; | |
}; | |
}); | |
o({ | |
pop: "length", | |
shift: 0 | |
}, function(t, s) { | |
l.prototype[t] = function() { | |
var v = m(arguments), u = s && this.length ? this.length - 1 : 0; | |
var w = [][t].apply(this, v); | |
f(this, "change", [ "" + u, "remove", undefined, [ w ] ]); | |
if (w && w.unbind) { | |
w.unbind("change" + this._namespace); | |
} | |
return w; | |
}; | |
}); | |
l.prototype.indexOf = [].indexOf || function(s) { | |
return $.inArray(s, this); | |
}; | |
$.O = function(t, s) { | |
if (h(t) || t instanceof $.Observe.List) { | |
return new $.Observe.List(t, s); | |
} else { | |
return new $.Observe(t, s); | |
} | |
}; | |
})(jQuery); | |
(function(d) { | |
var b = /^\d+$/, a = /([^\[\]]+)|(\[\])/g, f = /\+/g, c = /([^?#]*)(#.*)?$/; | |
d.String = d.extend(d.String || {}, { | |
deparam: function(k) { | |
if (!k || !c.test(k)) { | |
return {}; | |
} | |
var o = {}, g = k.split("&"), q; | |
for (var p = 0; p < g.length; p++) { | |
q = o; | |
var n = g[p].split("="); | |
if (n.length != 2) { | |
n = [ n[0], n.slice(1).join("=") ]; | |
} | |
var s = decodeURIComponent(n[0].replace(f, " ")), r = decodeURIComponent(n[1].replace(f, " ")), m = s.match(a); | |
for (var l = 0; l < m.length - 1; l++) { | |
var h = m[l]; | |
if (!q[h]) { | |
q[h] = b.test(m[l + 1]) || m[l + 1] == "[]" ? [] : {}; | |
} | |
q = q[h]; | |
} | |
lastPart = m[m.length - 1]; | |
if (lastPart == "[]") { | |
q.push(r); | |
} else { | |
q[lastPart] = r; | |
} | |
} | |
return o; | |
} | |
}); | |
})(jQuery); | |
(function(g) { | |
var h = /\:([\w\.]+)/g, d = /^(?:&[^=]+=[^&]*)+/, f = function(u) { | |
var t = [], s, v; | |
n(u, function(w, x) { | |
if (w === "className") { | |
w = "class"; | |
} | |
x && t.push(r(w), '="', r(x), '" '); | |
}); | |
return t.join(""); | |
}, r = function(s) { | |
return s.replace(/"/g, """).replace(/'/g, "'"); | |
}, b = function(s, v) { | |
var u = 0; | |
for (var t = 0; t < s.names.length; t++) { | |
if (!v.hasOwnProperty(s.names[t])) { | |
return -1; | |
} | |
u++; | |
} | |
return u; | |
}, o = true, p = window.location, l = encodeURIComponent, a = decodeURIComponent, n = g.each, m = g.extend; | |
g.route = function(s, u) { | |
var t = [], v = s.replace(h, function(x, w) { | |
t.push(w); | |
return "([^\\/\\&]*)"; | |
}); | |
g.route.routes[s] = { | |
test: new RegExp("^" + v + "($|&)"), | |
route: s, | |
names: t, | |
defaults: u || {}, | |
length: s.split("/").length | |
}; | |
return g.route; | |
}; | |
m(g.route, { | |
param: function(y) { | |
var t, x = 0, v, s = y.route; | |
delete y.route; | |
if (s && (t = g.route.routes[s])) {} else { | |
n(g.route.routes, function(B, A) { | |
v = b(A, y); | |
if (v > x) { | |
t = A; | |
x = v; | |
} | |
}); | |
} | |
if (t) { | |
var u = m({}, y), w = t.route.replace(h, function(B, A) { | |
delete u[A]; | |
return y[A] === t.defaults[A] ? "" : l(y[A]); | |
}), z; | |
n(t.defaults, function(A, B) { | |
if (u[A] === B) { | |
delete u[A]; | |
} | |
}); | |
z = g.param(u); | |
return w + (z ? "&" + z : ""); | |
} | |
return g.isEmptyObject(y) ? "" : "&" + g.param(y); | |
}, | |
deparam: function(t) { | |
var s = { | |
length: -1 | |
}; | |
n(g.route.routes, function(z, y) { | |
if (y.test.test(t) && y.length > s.length) { | |
s = y; | |
} | |
}); | |
if (s.length > -1) { | |
var w = t.match(s.test), x = w.shift(), u = t.substr(x.length - (w[w.length - 1] === "&" ? 1 : 0)), v = u && d.test(u) ? g.String.deparam(u.slice(1)) : {}; | |
v = m(true, {}, s.defaults, v); | |
n(w, function(z, y) { | |
if (y && y !== "&") { | |
v[s.names[z]] = a(y); | |
} | |
}); | |
v.route = s.route; | |
return v; | |
} | |
if (t.charAt(0) !== "&") { | |
t = "&" + t; | |
} | |
return d.test(t) ? g.String.deparam(t.slice(1)) : {}; | |
}, | |
data: new g.Observe({}), | |
routes: {}, | |
ready: function(s) { | |
if (s === false) { | |
o = false; | |
} | |
if (s === true || o === true) { | |
k(); | |
} | |
return g.route; | |
}, | |
url: function(s, t) { | |
if (t) { | |
return "#!" + g.route.param(m({}, c, s)); | |
} else { | |
return "#!" + g.route.param(s); | |
} | |
}, | |
link: function(t, s, u, v) { | |
return "<a " + f(m({ | |
href: g.route.url(s, v) | |
}, u)) + ">" + t + "</a>"; | |
}, | |
current: function(s) { | |
return p.hash == "#!" + g.route.param(s); | |
} | |
}); | |
g(function() { | |
g.route.ready(); | |
}); | |
n([ "bind", "unbind", "delegate", "undelegate", "attr", "attrs", "serialize", "removeAttr" ], function(t, s) { | |
g.route[s] = function() { | |
return g.route.data[s].apply(g.route.data, arguments); | |
}; | |
}); | |
var q = function(s) { | |
var t; | |
return function() { | |
var v = arguments, u = this; | |
clearTimeout(t); | |
t = setTimeout(function() { | |
s.apply(u, v); | |
}, 1); | |
}; | |
}, c, k = function() { | |
var s = p.hash.substr(1, 1) === "!" ? p.hash.slice(2) : p.hash.slice(1); | |
c = g.route.deparam(s); | |
g.route.attrs(c, true); | |
}; | |
g(window).bind("hashchange", k); | |
g.route.bind("change", q(function() { | |
p.hash = "#!" + g.route.param(g.route.serialize()); | |
})); | |
})(jQuery); | |
(function(a) { | |
a.cookie = function(c, n, q) { | |
var g = "", f = null, h, p, k, b, o, l, d; | |
if (typeof n != "undefined") { | |
q = q || {}; | |
if (n === null) { | |
n = ""; | |
q.expires = -1; | |
} | |
if (typeof n == "object" && jQuery.toJSON) { | |
n = a.toJSON(n); | |
} | |
if (q.expires && (typeof q.expires == "number" || q.expires.toUTCString)) { | |
if (typeof q.expires == "number") { | |
h = new Date(); | |
h.setTime(h.getTime() + q.expires * 24 * 60 * 60 * 1e3); | |
} else { | |
h = q.expires; | |
} | |
g = "; expires=" + h.toUTCString(); | |
} | |
p = q.path ? "; path=" + q.path : ""; | |
k = q.domain ? "; domain=" + q.domain : ""; | |
b = q.secure ? "; secure" : ""; | |
document.cookie = [ c, "=", encodeURIComponent(n), g, p, k, b ].join(""); | |
} else { | |
if (document.cookie && document.cookie != "") { | |
o = document.cookie.split(";"); | |
for (l = 0; l < o.length; l++) { | |
d = a.trim(o[l]); | |
if (d.substring(0, c.length + 1) == c + "=") { | |
f = decodeURIComponent(d.substring(c.length + 1)); | |
break; | |
} | |
} | |
} | |
if (jQuery.evalJSON && f && f.match(/^\s*\{/)) { | |
try { | |
f = a.evalJSON(f); | |
} catch (m) {} | |
} | |
return f; | |
} | |
}; | |
})(jQuery); | |
(function(d) { | |
var a = /[^\[\]]+/g, b = function(f) { | |
if (d.isNumeric(f)) { | |
return parseFloat(f); | |
} else { | |
if (f === "true") { | |
return true; | |
} else { | |
if (f === "false") { | |
return false; | |
} else { | |
if (f === "") { | |
return undefined; | |
} | |
} | |
} | |
} | |
return f; | |
}, c = function(k, h, m, n, l, f) { | |
var g = n.shift(); | |
if (n.length) { | |
if (!m[g]) { | |
m[g] = {}; | |
} | |
c(k, h, m[g], n, l, f); | |
} else { | |
if (g in f && h != "radio" && !d.isArray(m[g])) { | |
if (g in m) { | |
m[g] = [ m[g] ]; | |
} else { | |
m[g] = []; | |
} | |
} else { | |
f[g] = true; | |
} | |
if ((h == "radio" || h == "checkbox") && !k.is(":checked")) { | |
return; | |
} | |
if (!m[g]) { | |
m[g] = l; | |
} else { | |
m[g].push(l); | |
} | |
} | |
}; | |
d.fn.extend({ | |
formParams: function(g) { | |
var f; | |
if (!!g === g) { | |
f = g; | |
g = null; | |
} | |
if (g) { | |
return this.setParams(g); | |
} else { | |
return this.getParams(f); | |
} | |
}, | |
setParams: function(f) { | |
this.find("[name]").each(function() { | |
var g = f[d(this).attr("name")], h; | |
if (g !== undefined) { | |
h = d(this); | |
if (h.is(":radio")) { | |
if (h.val() == g) { | |
h.attr("checked", true); | |
} | |
} else { | |
if (h.is(":checkbox")) { | |
g = d.isArray(g) ? g : [ g ]; | |
if (d.inArray(h.val(), g) > -1) { | |
h.attr("checked", true); | |
} | |
} else { | |
h.val(g); | |
} | |
} | |
} | |
}); | |
}, | |
getParams: function(k) { | |
var g = {}, f = {}, h; | |
this.find("[name]").each(function() { | |
var p = d(this), m = p.attr("type"), l = p.attr("name"), n = p.val(), o; | |
if (m == "submit" || !l) { | |
return; | |
} | |
o = l.match(a); | |
if (!o.length) { | |
o = [ l ]; | |
} | |
if (k) { | |
n = b(n); | |
} | |
c(p, m, g, o, n, f); | |
}); | |
return g; | |
} | |
}); | |
})(jQuery); | |
var handlebars = function() { | |
var g = { | |
trace: function c() {}, | |
yy: {}, | |
symbols_: { | |
error: 2, | |
root: 3, | |
program: 4, | |
EOF: 5, | |
statements: 6, | |
simpleInverse: 7, | |
statement: 8, | |
openInverse: 9, | |
closeBlock: 10, | |
openBlock: 11, | |
mustache: 12, | |
partial: 13, | |
CONTENT: 14, | |
COMMENT: 15, | |
OPEN_BLOCK: 16, | |
inMustache: 17, | |
CLOSE: 18, | |
OPEN_INVERSE: 19, | |
OPEN_ENDBLOCK: 20, | |
path: 21, | |
OPEN: 22, | |
OPEN_UNESCAPED: 23, | |
OPEN_PARTIAL: 24, | |
params: 25, | |
hash: 26, | |
param: 27, | |
STRING: 28, | |
INTEGER: 29, | |
BOOLEAN: 30, | |
hashSegments: 31, | |
hashSegment: 32, | |
ID: 33, | |
EQUALS: 34, | |
pathSegments: 35, | |
SEP: 36, | |
$accept: 0, | |
$end: 1 | |
}, | |
terminals_: { | |
2: "error", | |
5: "EOF", | |
14: "CONTENT", | |
15: "COMMENT", | |
16: "OPEN_BLOCK", | |
18: "CLOSE", | |
19: "OPEN_INVERSE", | |
20: "OPEN_ENDBLOCK", | |
22: "OPEN", | |
23: "OPEN_UNESCAPED", | |
24: "OPEN_PARTIAL", | |
28: "STRING", | |
29: "INTEGER", | |
30: "BOOLEAN", | |
33: "ID", | |
34: "EQUALS", | |
36: "SEP" | |
}, | |
productions_: [ 0, [ 3, 2 ], [ 4, 3 ], [ 4, 1 ], [ 4, 0 ], [ 6, 1 ], [ 6, 2 ], [ 8, 3 ], [ 8, 3 ], [ 8, 1 ], [ 8, 1 ], [ 8, 1 ], [ 8, 1 ], [ 11, 3 ], [ 9, 3 ], [ 10, 3 ], [ 12, 3 ], [ 12, 3 ], [ 13, 3 ], [ 13, 4 ], [ 7, 2 ], [ 17, 3 ], [ 17, 2 ], [ 17, 2 ], [ 17, 1 ], [ 25, 2 ], [ 25, 1 ], [ 27, 1 ], [ 27, 1 ], [ 27, 1 ], [ 27, 1 ], [ 26, 1 ], [ 31, 2 ], [ 31, 1 ], [ 32, 3 ], [ 32, 3 ], [ 32, 3 ], [ 32, 3 ], [ 21, 1 ], [ 35, 3 ], [ 35, 1 ] ], | |
performAction: function b(h, m, n, q, p, l, o) { | |
var k = l.length - 1; | |
switch (p) { | |
case 1: | |
return l[k - 1]; | |
break; | |
case 2: | |
this.$ = new q.ProgramNode(l[k - 2], l[k]); | |
break; | |
case 3: | |
this.$ = new q.ProgramNode(l[k]); | |
break; | |
case 4: | |
this.$ = new q.ProgramNode([]); | |
break; | |
case 5: | |
this.$ = [ l[k] ]; | |
break; | |
case 6: | |
l[k - 1].push(l[k]); | |
this.$ = l[k - 1]; | |
break; | |
case 7: | |
this.$ = new q.InverseNode(l[k - 2], l[k - 1], l[k]); | |
break; | |
case 8: | |
this.$ = new q.BlockNode(l[k - 2], l[k - 1], l[k]); | |
break; | |
case 9: | |
this.$ = l[k]; | |
break; | |
case 10: | |
this.$ = l[k]; | |
break; | |
case 11: | |
this.$ = new q.ContentNode(l[k]); | |
break; | |
case 12: | |
this.$ = new q.CommentNode(l[k]); | |
break; | |
case 13: | |
this.$ = new q.MustacheNode(l[k - 1][0], l[k - 1][1]); | |
break; | |
case 14: | |
this.$ = new q.MustacheNode(l[k - 1][0], l[k - 1][1]); | |
break; | |
case 15: | |
this.$ = l[k - 1]; | |
break; | |
case 16: | |
this.$ = new q.MustacheNode(l[k - 1][0], l[k - 1][1]); | |
break; | |
case 17: | |
this.$ = new q.MustacheNode(l[k - 1][0], l[k - 1][1], true); | |
break; | |
case 18: | |
this.$ = new q.PartialNode(l[k - 1]); | |
break; | |
case 19: | |
this.$ = new q.PartialNode(l[k - 2], l[k - 1]); | |
break; | |
case 20: | |
break; | |
case 21: | |
this.$ = [ [ l[k - 2] ].concat(l[k - 1]), l[k] ]; | |
break; | |
case 22: | |
this.$ = [ [ l[k - 1] ].concat(l[k]), null ]; | |
break; | |
case 23: | |
this.$ = [ [ l[k - 1] ], l[k] ]; | |
break; | |
case 24: | |
this.$ = [ [ l[k] ], null ]; | |
break; | |
case 25: | |
l[k - 1].push(l[k]); | |
this.$ = l[k - 1]; | |
break; | |
case 26: | |
this.$ = [ l[k] ]; | |
break; | |
case 27: | |
this.$ = l[k]; | |
break; | |
case 28: | |
this.$ = new q.StringNode(l[k]); | |
break; | |
case 29: | |
this.$ = new q.IntegerNode(l[k]); | |
break; | |
case 30: | |
this.$ = new q.BooleanNode(l[k]); | |
break; | |
case 31: | |
this.$ = new q.HashNode(l[k]); | |
break; | |
case 32: | |
l[k - 1].push(l[k]); | |
this.$ = l[k - 1]; | |
break; | |
case 33: | |
this.$ = [ l[k] ]; | |
break; | |
case 34: | |
this.$ = [ l[k - 2], l[k] ]; | |
break; | |
case 35: | |
this.$ = [ l[k - 2], new q.StringNode(l[k]) ]; | |
break; | |
case 36: | |
this.$ = [ l[k - 2], new q.IntegerNode(l[k]) ]; | |
break; | |
case 37: | |
this.$ = [ l[k - 2], new q.BooleanNode(l[k]) ]; | |
break; | |
case 38: | |
this.$ = new q.IdNode(l[k]); | |
break; | |
case 39: | |
l[k - 2].push(l[k]); | |
this.$ = l[k - 2]; | |
break; | |
case 40: | |
this.$ = [ l[k] ]; | |
break; | |
} | |
}, | |
table: [ { | |
3: 1, | |
4: 2, | |
5: [ 2, 4 ], | |
6: 3, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [ 1, 9 ], | |
15: [ 1, 10 ], | |
16: [ 1, 12 ], | |
19: [ 1, 11 ], | |
22: [ 1, 13 ], | |
23: [ 1, 14 ], | |
24: [ 1, 15 ] | |
}, { | |
1: [ 3 ] | |
}, { | |
5: [ 1, 16 ] | |
}, { | |
5: [ 2, 3 ], | |
7: 17, | |
8: 18, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [ 1, 9 ], | |
15: [ 1, 10 ], | |
16: [ 1, 12 ], | |
19: [ 1, 19 ], | |
20: [ 2, 3 ], | |
22: [ 1, 13 ], | |
23: [ 1, 14 ], | |
24: [ 1, 15 ] | |
}, { | |
5: [ 2, 5 ], | |
14: [ 2, 5 ], | |
15: [ 2, 5 ], | |
16: [ 2, 5 ], | |
19: [ 2, 5 ], | |
20: [ 2, 5 ], | |
22: [ 2, 5 ], | |
23: [ 2, 5 ], | |
24: [ 2, 5 ] | |
}, { | |
4: 20, | |
6: 3, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [ 1, 9 ], | |
15: [ 1, 10 ], | |
16: [ 1, 12 ], | |
19: [ 1, 11 ], | |
20: [ 2, 4 ], | |
22: [ 1, 13 ], | |
23: [ 1, 14 ], | |
24: [ 1, 15 ] | |
}, { | |
4: 21, | |
6: 3, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [ 1, 9 ], | |
15: [ 1, 10 ], | |
16: [ 1, 12 ], | |
19: [ 1, 11 ], | |
20: [ 2, 4 ], | |
22: [ 1, 13 ], | |
23: [ 1, 14 ], | |
24: [ 1, 15 ] | |
}, { | |
5: [ 2, 9 ], | |
14: [ 2, 9 ], | |
15: [ 2, 9 ], | |
16: [ 2, 9 ], | |
19: [ 2, 9 ], | |
20: [ 2, 9 ], | |
22: [ 2, 9 ], | |
23: [ 2, 9 ], | |
24: [ 2, 9 ] | |
}, { | |
5: [ 2, 10 ], | |
14: [ 2, 10 ], | |
15: [ 2, 10 ], | |
16: [ 2, 10 ], | |
19: [ 2, 10 ], | |
20: [ 2, 10 ], | |
22: [ 2, 10 ], | |
23: [ 2, 10 ], | |
24: [ 2, 10 ] | |
}, { | |
5: [ 2, 11 ], | |
14: [ 2, 11 ], | |
15: [ 2, 11 ], | |
16: [ 2, 11 ], | |
19: [ 2, 11 ], | |
20: [ 2, 11 ], | |
22: [ 2, 11 ], | |
23: [ 2, 11 ], | |
24: [ 2, 11 ] | |
}, { | |
5: [ 2, 12 ], | |
14: [ 2, 12 ], | |
15: [ 2, 12 ], | |
16: [ 2, 12 ], | |
19: [ 2, 12 ], | |
20: [ 2, 12 ], | |
22: [ 2, 12 ], | |
23: [ 2, 12 ], | |
24: [ 2, 12 ] | |
}, { | |
17: 22, | |
21: 23, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
17: 26, | |
21: 23, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
17: 27, | |
21: 23, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
17: 28, | |
21: 23, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
21: 29, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
1: [ 2, 1 ] | |
}, { | |
6: 30, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [ 1, 9 ], | |
15: [ 1, 10 ], | |
16: [ 1, 12 ], | |
19: [ 1, 11 ], | |
22: [ 1, 13 ], | |
23: [ 1, 14 ], | |
24: [ 1, 15 ] | |
}, { | |
5: [ 2, 6 ], | |
14: [ 2, 6 ], | |
15: [ 2, 6 ], | |
16: [ 2, 6 ], | |
19: [ 2, 6 ], | |
20: [ 2, 6 ], | |
22: [ 2, 6 ], | |
23: [ 2, 6 ], | |
24: [ 2, 6 ] | |
}, { | |
17: 22, | |
18: [ 1, 31 ], | |
21: 23, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
10: 32, | |
20: [ 1, 33 ] | |
}, { | |
10: 34, | |
20: [ 1, 33 ] | |
}, { | |
18: [ 1, 35 ] | |
}, { | |
18: [ 2, 24 ], | |
21: 40, | |
25: 36, | |
26: 37, | |
27: 38, | |
28: [ 1, 41 ], | |
29: [ 1, 42 ], | |
30: [ 1, 43 ], | |
31: 39, | |
32: 44, | |
33: [ 1, 45 ], | |
35: 24 | |
}, { | |
18: [ 2, 38 ], | |
28: [ 2, 38 ], | |
29: [ 2, 38 ], | |
30: [ 2, 38 ], | |
33: [ 2, 38 ], | |
36: [ 1, 46 ] | |
}, { | |
18: [ 2, 40 ], | |
28: [ 2, 40 ], | |
29: [ 2, 40 ], | |
30: [ 2, 40 ], | |
33: [ 2, 40 ], | |
36: [ 2, 40 ] | |
}, { | |
18: [ 1, 47 ] | |
}, { | |
18: [ 1, 48 ] | |
}, { | |
18: [ 1, 49 ] | |
}, { | |
18: [ 1, 50 ], | |
21: 51, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
5: [ 2, 2 ], | |
8: 18, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [ 1, 9 ], | |
15: [ 1, 10 ], | |
16: [ 1, 12 ], | |
19: [ 1, 11 ], | |
20: [ 2, 2 ], | |
22: [ 1, 13 ], | |
23: [ 1, 14 ], | |
24: [ 1, 15 ] | |
}, { | |
14: [ 2, 20 ], | |
15: [ 2, 20 ], | |
16: [ 2, 20 ], | |
19: [ 2, 20 ], | |
22: [ 2, 20 ], | |
23: [ 2, 20 ], | |
24: [ 2, 20 ] | |
}, { | |
5: [ 2, 7 ], | |
14: [ 2, 7 ], | |
15: [ 2, 7 ], | |
16: [ 2, 7 ], | |
19: [ 2, 7 ], | |
20: [ 2, 7 ], | |
22: [ 2, 7 ], | |
23: [ 2, 7 ], | |
24: [ 2, 7 ] | |
}, { | |
21: 52, | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
5: [ 2, 8 ], | |
14: [ 2, 8 ], | |
15: [ 2, 8 ], | |
16: [ 2, 8 ], | |
19: [ 2, 8 ], | |
20: [ 2, 8 ], | |
22: [ 2, 8 ], | |
23: [ 2, 8 ], | |
24: [ 2, 8 ] | |
}, { | |
14: [ 2, 14 ], | |
15: [ 2, 14 ], | |
16: [ 2, 14 ], | |
19: [ 2, 14 ], | |
20: [ 2, 14 ], | |
22: [ 2, 14 ], | |
23: [ 2, 14 ], | |
24: [ 2, 14 ] | |
}, { | |
18: [ 2, 22 ], | |
21: 40, | |
26: 53, | |
27: 54, | |
28: [ 1, 41 ], | |
29: [ 1, 42 ], | |
30: [ 1, 43 ], | |
31: 39, | |
32: 44, | |
33: [ 1, 45 ], | |
35: 24 | |
}, { | |
18: [ 2, 23 ] | |
}, { | |
18: [ 2, 26 ], | |
28: [ 2, 26 ], | |
29: [ 2, 26 ], | |
30: [ 2, 26 ], | |
33: [ 2, 26 ] | |
}, { | |
18: [ 2, 31 ], | |
32: 55, | |
33: [ 1, 56 ] | |
}, { | |
18: [ 2, 27 ], | |
28: [ 2, 27 ], | |
29: [ 2, 27 ], | |
30: [ 2, 27 ], | |
33: [ 2, 27 ] | |
}, { | |
18: [ 2, 28 ], | |
28: [ 2, 28 ], | |
29: [ 2, 28 ], | |
30: [ 2, 28 ], | |
33: [ 2, 28 ] | |
}, { | |
18: [ 2, 29 ], | |
28: [ 2, 29 ], | |
29: [ 2, 29 ], | |
30: [ 2, 29 ], | |
33: [ 2, 29 ] | |
}, { | |
18: [ 2, 30 ], | |
28: [ 2, 30 ], | |
29: [ 2, 30 ], | |
30: [ 2, 30 ], | |
33: [ 2, 30 ] | |
}, { | |
18: [ 2, 33 ], | |
33: [ 2, 33 ] | |
}, { | |
18: [ 2, 40 ], | |
28: [ 2, 40 ], | |
29: [ 2, 40 ], | |
30: [ 2, 40 ], | |
33: [ 2, 40 ], | |
34: [ 1, 57 ], | |
36: [ 2, 40 ] | |
}, { | |
33: [ 1, 58 ] | |
}, { | |
14: [ 2, 13 ], | |
15: [ 2, 13 ], | |
16: [ 2, 13 ], | |
19: [ 2, 13 ], | |
20: [ 2, 13 ], | |
22: [ 2, 13 ], | |
23: [ 2, 13 ], | |
24: [ 2, 13 ] | |
}, { | |
5: [ 2, 16 ], | |
14: [ 2, 16 ], | |
15: [ 2, 16 ], | |
16: [ 2, 16 ], | |
19: [ 2, 16 ], | |
20: [ 2, 16 ], | |
22: [ 2, 16 ], | |
23: [ 2, 16 ], | |
24: [ 2, 16 ] | |
}, { | |
5: [ 2, 17 ], | |
14: [ 2, 17 ], | |
15: [ 2, 17 ], | |
16: [ 2, 17 ], | |
19: [ 2, 17 ], | |
20: [ 2, 17 ], | |
22: [ 2, 17 ], | |
23: [ 2, 17 ], | |
24: [ 2, 17 ] | |
}, { | |
5: [ 2, 18 ], | |
14: [ 2, 18 ], | |
15: [ 2, 18 ], | |
16: [ 2, 18 ], | |
19: [ 2, 18 ], | |
20: [ 2, 18 ], | |
22: [ 2, 18 ], | |
23: [ 2, 18 ], | |
24: [ 2, 18 ] | |
}, { | |
18: [ 1, 59 ] | |
}, { | |
18: [ 1, 60 ] | |
}, { | |
18: [ 2, 21 ] | |
}, { | |
18: [ 2, 25 ], | |
28: [ 2, 25 ], | |
29: [ 2, 25 ], | |
30: [ 2, 25 ], | |
33: [ 2, 25 ] | |
}, { | |
18: [ 2, 32 ], | |
33: [ 2, 32 ] | |
}, { | |
34: [ 1, 57 ] | |
}, { | |
21: 61, | |
28: [ 1, 62 ], | |
29: [ 1, 63 ], | |
30: [ 1, 64 ], | |
33: [ 1, 25 ], | |
35: 24 | |
}, { | |
18: [ 2, 39 ], | |
28: [ 2, 39 ], | |
29: [ 2, 39 ], | |
30: [ 2, 39 ], | |
33: [ 2, 39 ], | |
36: [ 2, 39 ] | |
}, { | |
5: [ 2, 19 ], | |
14: [ 2, 19 ], | |
15: [ 2, 19 ], | |
16: [ 2, 19 ], | |
19: [ 2, 19 ], | |
20: [ 2, 19 ], | |
22: [ 2, 19 ], | |
23: [ 2, 19 ], | |
24: [ 2, 19 ] | |
}, { | |
5: [ 2, 15 ], | |
14: [ 2, 15 ], | |
15: [ 2, 15 ], | |
16: [ 2, 15 ], | |
19: [ 2, 15 ], | |
20: [ 2, 15 ], | |
22: [ 2, 15 ], | |
23: [ 2, 15 ], | |
24: [ 2, 15 ] | |
}, { | |
18: [ 2, 34 ], | |
33: [ 2, 34 ] | |
}, { | |
18: [ 2, 35 ], | |
33: [ 2, 35 ] | |
}, { | |
18: [ 2, 36 ], | |
33: [ 2, 36 ] | |
}, { | |
18: [ 2, 37 ], | |
33: [ 2, 37 ] | |
} ], | |
defaultActions: { | |
16: [ 2, 1 ], | |
37: [ 2, 23 ], | |
53: [ 2, 21 ] | |
}, | |
parseError: function d(k, h) { | |
throw new Error(k); | |
}, | |
parse: function f(t) { | |
var A = this, o = [ 0 ], J = [ null ], v = [], K = this.table, k = "", u = 0, H = 0, m = 0, s = 2, x = 1; | |
this.lexer.setInput(t); | |
this.lexer.yy = this.yy; | |
this.yy.lexer = this.lexer; | |
if (typeof this.lexer.yylloc == "undefined") { | |
this.lexer.yylloc = {}; | |
} | |
var l = this.lexer.yylloc; | |
v.push(l); | |
if (typeof this.yy.parseError === "function") { | |
this.parseError = this.yy.parseError; | |
} | |
function z(p) { | |
o.length = o.length - 2 * p; | |
J.length = J.length - p; | |
v.length = v.length - p; | |
} | |
function y() { | |
var p; | |
p = A.lexer.lex() || 1; | |
if (typeof p !== "number") { | |
p = A.symbols_[p] || p; | |
} | |
return p; | |
} | |
var G, C, n, F, L, w, E = {}, B, I, h, q; | |
while (true) { | |
n = o[o.length - 1]; | |
if (this.defaultActions[n]) { | |
F = this.defaultActions[n]; | |
} else { | |
if (G == null) { | |
G = y(); | |
} | |
F = K[n] && K[n][G]; | |
} | |
if (typeof F === "undefined" || !F.length || !F[0]) { | |
if (!m) { | |
q = []; | |
for (B in K[n]) { | |
if (this.terminals_[B] && B > 2) { | |
q.push("'" + this.terminals_[B] + "'"); | |
} | |
} | |
var D = ""; | |
if (this.lexer.showPosition) { | |
D = "Parse error on line " + (u + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + q.join(", "); | |
} else { | |
D = "Parse error on line " + (u + 1) + ": Unexpected " + (G == 1 ? "end of input" : "'" + (this.terminals_[G] || G) + "'"); | |
} | |
this.parseError(D, { | |
text: this.lexer.match, | |
token: this.terminals_[G] || G, | |
line: this.lexer.yylineno, | |
loc: l, | |
expected: q | |
}); | |
} | |
if (m == 3) { | |
if (G == x) { | |
throw new Error(D || "Parsing halted."); | |
} | |
H = this.lexer.yyleng; | |
k = this.lexer.yytext; | |
u = this.lexer.yylineno; | |
l = this.lexer.yylloc; | |
G = y(); | |
} | |
while (1) { | |
if (s.toString() in K[n]) { | |
break; | |
} | |
if (n == 0) { | |
throw new Error(D || "Parsing halted."); | |
} | |
z(1); | |
n = o[o.length - 1]; | |
} | |
C = G; | |
G = s; | |
n = o[o.length - 1]; | |
F = K[n] && K[n][s]; | |
m = 3; | |
} | |
if (F[0] instanceof Array && F.length > 1) { | |
throw new Error("Parse Error: multiple actions possible at state: " + n + ", token: " + G); | |
} | |
switch (F[0]) { | |
case 1: | |
o.push(G); | |
J.push(this.lexer.yytext); | |
v.push(this.lexer.yylloc); | |
o.push(F[1]); | |
G = null; | |
if (!C) { | |
H = this.lexer.yyleng; | |
k = this.lexer.yytext; | |
u = this.lexer.yylineno; | |
l = this.lexer.yylloc; | |
if (m > 0) { | |
m--; | |
} | |
} else { | |
G = C; | |
C = null; | |
} | |
break; | |
case 2: | |
I = this.productions_[F[1]][1]; | |
E.$ = J[J.length - I]; | |
E._$ = { | |
first_line: v[v.length - (I || 1)].first_line, | |
last_line: v[v.length - 1].last_line, | |
first_column: v[v.length - (I || 1)].first_column, | |
last_column: v[v.length - 1].last_column | |
}; | |
w = this.performAction.call(E, k, H, u, this.yy, F[1], J, v); | |
if (typeof w !== "undefined") { | |
return w; | |
} | |
if (I) { | |
o = o.slice(0, -1 * I * 2); | |
J = J.slice(0, -1 * I); | |
v = v.slice(0, -1 * I); | |
} | |
o.push(this.productions_[F[1]][0]); | |
J.push(E.$); | |
v.push(E._$); | |
h = K[o[o.length - 2]][o[o.length - 1]]; | |
o.push(h); | |
break; | |
case 3: | |
return true; | |
} | |
} | |
return true; | |
} | |
}; | |
var a = function() { | |
var m = { | |
EOF: 1, | |
parseError: function o(r, q) { | |
if (this.yy.parseError) { | |
this.yy.parseError(r, q); | |
} else { | |
throw new Error(r); | |
} | |
}, | |
setInput: function(q) { | |
this._input = q; | |
this._more = this._less = this.done = false; | |
this.yylineno = this.yyleng = 0; | |
this.yytext = this.matched = this.match = ""; | |
this.conditionStack = [ "INITIAL" ]; | |
this.yylloc = { | |
first_line: 1, | |
first_column: 0, | |
last_line: 1, | |
last_column: 0 | |
}; | |
return this; | |
}, | |
input: function() { | |
var r = this._input[0]; | |
this.yytext += r; | |
this.yyleng++; | |
this.match += r; | |
this.matched += r; | |
var q = r.match(/\n/); | |
if (q) { | |
this.yylineno++; | |
} | |
this._input = this._input.slice(1); | |
return r; | |
}, | |
unput: function(q) { | |
this._input = q + this._input; | |
return this; | |
}, | |
more: function() { | |
this._more = true; | |
return this; | |
}, | |
pastInput: function() { | |
var q = this.matched.substr(0, this.matched.length - this.match.length); | |
return (q.length > 20 ? "..." : "") + q.substr(-20).replace(/\n/g, ""); | |
}, | |
upcomingInput: function() { | |
var q = this.match; | |
if (q.length < 20) { | |
q += this._input.substr(0, 20 - q.length); | |
} | |
return (q.substr(0, 20) + (q.length > 20 ? "..." : "")).replace(/\n/g, ""); | |
}, | |
showPosition: function() { | |
var q = this.pastInput(); | |
var r = new Array(q.length + 1).join("-"); | |
return q + this.upcomingInput() + "\n" + r + "^"; | |
}, | |
next: function() { | |
if (this.done) { | |
return this.EOF; | |
} | |
if (!this._input) { | |
this.done = true; | |
} | |
var u, s, r, q; | |
if (!this._more) { | |
this.yytext = ""; | |
this.match = ""; | |
} | |
var v = this._currentRules(); | |
for (var t = 0; t < v.length; t++) { | |
s = this._input.match(this.rules[v[t]]); | |
if (s) { | |
q = s[0].match(/\n.*/g); | |
if (q) { | |
this.yylineno += q.length; | |
} | |
this.yylloc = { | |
first_line: this.yylloc.last_line, | |
last_line: this.yylineno + 1, | |
first_column: this.yylloc.last_column, | |
last_column: q ? q[q.length - 1].length - 1 : this.yylloc.last_column + s[0].length | |
}; | |
this.yytext += s[0]; | |
this.match += s[0]; | |
this.matches = s; | |
this.yyleng = this.yytext.length; | |
this._more = false; | |
this._input = this._input.slice(s[0].length); | |
this.matched += s[0]; | |
u = this.performAction.call(this, this.yy, this, v[t], this.conditionStack[this.conditionStack.length - 1]); | |
if (u) { | |
return u; | |
} else { | |
return; | |
} | |
} | |
} | |
if (this._input === "") { | |
return this.EOF; | |
} else { | |
this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { | |
text: "", | |
token: null, | |
line: this.yylineno | |
}); | |
} | |
}, | |
lex: function h() { | |
var q = this.next(); | |
if (typeof q !== "undefined") { | |
return q; | |
} else { | |
return this.lex(); | |
} | |
}, | |
begin: function k(q) { | |
this.conditionStack.push(q); | |
}, | |
popState: function p() { | |
return this.conditionStack.pop(); | |
}, | |
_currentRules: function n() { | |
return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; | |
} | |
}; | |
m.performAction = function l(u, r, t, q) { | |
var s = q; | |
switch (t) { | |
case 0: | |
this.begin("mu"); | |
if (r.yytext) { | |
return 14; | |
} | |
break; | |
case 1: | |
return 14; | |
break; | |
case 2: | |
return 24; | |
break; | |
case 3: | |
return 16; | |
break; | |
case 4: | |
return 20; | |
break; | |
case 5: | |
return 19; | |
break; | |
case 6: | |
return 19; | |
break; | |
case 7: | |
return 23; | |
break; | |
case 8: | |
return 23; | |
break; | |
case 9: | |
r.yytext = r.yytext.substr(3, r.yyleng - 5); | |
this.begin("INITIAL"); | |
return 15; | |
break; | |
case 10: | |
return 22; | |
break; | |
case 11: | |
return 34; | |
break; | |
case 12: | |
return 33; | |
break; | |
case 13: | |
return 33; | |
break; | |
case 14: | |
return 36; | |
break; | |
case 15: | |
break; | |
case 16: | |
this.begin("INITIAL"); | |
return 18; | |
break; | |
case 17: | |
this.begin("INITIAL"); | |
return 18; | |
break; | |
case 18: | |
r.yytext = r.yytext.substr(1, r.yyleng - 2).replace(/\\"/g, '"'); | |
return 28; | |
break; | |
case 19: | |
return 30; | |
break; | |
case 20: | |
return 30; | |
break; | |
case 21: | |
return 29; | |
break; | |
case 22: | |
return 33; | |
break; | |
case 23: | |
return "INVALID"; | |
break; | |
case 24: | |
return 5; | |
break; | |
} | |
}; | |
m.rules = [ /^[^\x00]*?(?=(\{\{))/, /^[^\x00]+/, /^\{\{>/, /^\{\{#/, /^\{\{\//, /^\{\{\^/, /^\{\{\s*else\b/, /^\{\{\{/, /^\{\{&/, /^\{\{![\s\S]*?\}\}/, /^\{\{/, /^=/, /^\.(?=[} ])/, /^\.\./, /^[/.]/, /^\s+/, /^\}\}\}/, /^\}\}/, /^"(\\["]|[^"])*"/, /^true(?=[}\s])/, /^false(?=[}\s])/, /^[0-9]+(?=[}\s])/, /^[a-zA-Z0-9_$-]+(?=[=}\s/.])/, /^./, /^$/ ]; | |
m.conditions = { | |
mu: { | |
rules: [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 ], | |
inclusive: false | |
}, | |
INITIAL: { | |
rules: [ 0, 1, 24 ], | |
inclusive: true | |
} | |
}; | |
return m; | |
}(); | |
g.lexer = a; | |
return g; | |
}(); | |
if (typeof require !== "undefined" && typeof exports !== "undefined") { | |
exports.parser = handlebars; | |
exports.parse = function() { | |
return handlebars.parse.apply(handlebars, arguments); | |
}; | |
exports.main = function commonjsMain(a) { | |
if (!a[1]) { | |
throw new Error("Usage: " + a[0] + " FILE"); | |
} | |
if (typeof process !== "undefined") { | |
var c = require("fs").readFileSync(require("path").join(process.cwd(), a[1]), "utf8"); | |
} else { | |
var b = require("file").path(require("file").cwd()); | |
var c = b.join(a[1]).read({ | |
charset: "utf-8" | |
}); | |
} | |
return exports.parser.parse(c); | |
}; | |
if (typeof module !== "undefined" && require.main === module) { | |
exports.main(typeof process !== "undefined" ? process.argv.slice(1) : require("system").args); | |
} | |
} | |
var Handlebars = {}; | |
Handlebars.VERSION = "1.0.beta.5"; | |
Handlebars.Parser = handlebars; | |
Handlebars.parse = function(a) { | |
Handlebars.Parser.yy = Handlebars.AST; | |
return Handlebars.Parser.parse(a); | |
}; | |
Handlebars.print = function(a) { | |
return new Handlebars.PrintVisitor().accept(a); | |
}; | |
Handlebars.logger = { | |
DEBUG: 0, | |
INFO: 1, | |
WARN: 2, | |
ERROR: 3, | |
level: 3, | |
log: function(b, a) {} | |
}; | |
Handlebars.log = function(b, a) { | |
Handlebars.logger.log(b, a); | |
}; | |
Handlebars.helpers = {}; | |
Handlebars.partials = {}; | |
Handlebars.registerHelper = function(b, c, a) { | |
if (a) { | |
c.not = a; | |
} | |
this.helpers[b] = c; | |
}; | |
Handlebars.registerPartial = function(a, b) { | |
this.partials[a] = b; | |
}; | |
Handlebars.registerHelper("helperMissing", function(a) { | |
if (arguments.length === 2) { | |
return undefined; | |
} else { | |
throw new Error("Could not find property '" + a + "'"); | |
} | |
}); | |
var toString = Object.prototype.toString, functionType = "[object Function]"; | |
Handlebars.registerHelper("blockHelperMissing", function(g, d) { | |
var a = d.inverse || function() {}, k = d.fn; | |
var c = ""; | |
var h = toString.call(g); | |
if (h === functionType) { | |
g = g.call(this); | |
} | |
if (g === true) { | |
return k(this); | |
} else { | |
if (g === false || g == null) { | |
return a(this); | |
} else { | |
if (h === "[object Array]") { | |
if (g.length > 0) { | |
for (var f = 0, b = g.length; f < b; f++) { | |
c = c + k(g[f]); | |
} | |
} else { | |
c = a(this); | |
} | |
return c; | |
} else { | |
return k(g); | |
} | |
} | |
} | |
}); | |
Handlebars.registerHelper("each", function(g, d) { | |
var h = d.fn, a = d.inverse; | |
var c = ""; | |
if (g && g.length > 0) { | |
for (var f = 0, b = g.length; f < b; f++) { | |
c = c + h(g[f]); | |
} | |
} else { | |
c = a(this); | |
} | |
return c; | |
}); | |
Handlebars.registerHelper("if", function(b, a) { | |
var c = toString.call(b); | |
if (c === functionType) { | |
b = b.call(this); | |
} | |
if (!b || Handlebars.Utils.isEmpty(b)) { | |
return a.inverse(this); | |
} else { | |
return a.fn(this); | |
} | |
}); | |
Handlebars.registerHelper("unless", function(c, b) { | |
var d = b.fn, a = b.inverse; | |
b.fn = a; | |
b.inverse = d; | |
return Handlebars.helpers["if"].call(this, c, b); | |
}); | |
Handlebars.registerHelper("with", function(b, a) { | |
return a.fn(b); | |
}); | |
Handlebars.registerHelper("log", function(a) { | |
Handlebars.log(a); | |
}); | |
(function() { | |
Handlebars.AST = {}; | |
Handlebars.AST.ProgramNode = function(c, b) { | |
this.type = "program"; | |
this.statements = c; | |
if (b) { | |
this.inverse = new Handlebars.AST.ProgramNode(b); | |
} | |
}; | |
Handlebars.AST.MustacheNode = function(d, c, b) { | |
this.type = "mustache"; | |
this.id = d[0]; | |
this.params = d.slice(1); | |
this.hash = c; | |
this.escaped = !b; | |
}; | |
Handlebars.AST.PartialNode = function(c, b) { | |
this.type = "partial"; | |
this.id = c; | |
this.context = b; | |
}; | |
var a = function(b, c) { | |
if (b.original !== c.original) { | |
throw new Handlebars.Exception(b.original + " doesn't match " + c.original); | |
} | |
}; | |
Handlebars.AST.BlockNode = function(c, b, d) { | |
a(c.id, d); | |
this.type = "block"; | |
this.mustache = c; | |
this.program = b; | |
}; | |
Handlebars.AST.InverseNode = function(c, b, d) { | |
a(c.id, d); | |
this.type = "inverse"; | |
this.mustache = c; | |
this.program = b; | |
}; | |
Handlebars.AST.ContentNode = function(b) { | |
this.type = "content"; | |
this.string = b; | |
}; | |
Handlebars.AST.HashNode = function(b) { | |
this.type = "hash"; | |
this.pairs = b; | |
}; | |
Handlebars.AST.IdNode = function(g) { | |
this.type = "ID"; | |
this.original = g.join("."); | |
var d = [], h = 0; | |
for (var f = 0, b = g.length; f < b; f++) { | |
var c = g[f]; | |
if (c === "..") { | |
h++; | |
} else { | |
if (c === "." || c === "this") { | |
this.isScoped = true; | |
} else { | |
d.push(c); | |
} | |
} | |
} | |
this.parts = d; | |
this.string = d.join("."); | |
this.depth = h; | |
this.isSimple = d.length === 1 && h === 0; | |
}; | |
Handlebars.AST.StringNode = function(b) { | |
this.type = "STRING"; | |
this.string = b; | |
}; | |
Handlebars.AST.IntegerNode = function(b) { | |
this.type = "INTEGER"; | |
this.integer = b; | |
}; | |
Handlebars.AST.BooleanNode = function(b) { | |
this.type = "BOOLEAN"; | |
this.bool = b; | |
}; | |
Handlebars.AST.CommentNode = function(b) { | |
this.type = "comment"; | |
this.comment = b; | |
}; | |
})(); | |
Handlebars.Visitor = function() {}; | |
Handlebars.Visitor.prototype = { | |
accept: function(a) { | |
return this[a.type](a); | |
} | |
}; | |
Handlebars.Exception = function(b) { | |
var a = Error.prototype.constructor.apply(this, arguments); | |
for (var c in a) { | |
if (a.hasOwnProperty(c)) { | |
this[c] = a[c]; | |
} | |
} | |
this.message = a.message; | |
}; | |
Handlebars.Exception.prototype = new Error(); | |
Handlebars.SafeString = function(a) { | |
this.string = a; | |
}; | |
Handlebars.SafeString.prototype.toString = function() { | |
return this.string.toString(); | |
}; | |
(function() { | |
var c = { | |
"<": "<", | |
">": ">", | |
'"': """, | |
"'": "'", | |
"`": "`" | |
}; | |
var d = /&(?!\w+;)|[<>"'`]/g; | |
var b = /[&<>"'`]/; | |
var a = function(f) { | |
return c[f] || "&"; | |
}; | |
Handlebars.Utils = { | |
escapeExpression: function(f) { | |
if (f instanceof Handlebars.SafeString) { | |
return f.toString(); | |
} else { | |
if (f == null || f === false) { | |
return ""; | |
} | |
} | |
if (!b.test(f)) { | |
return f; | |
} | |
return f.replace(d, a); | |
}, | |
isEmpty: function(f) { | |
if (typeof f === "undefined") { | |
return true; | |
} else { | |
if (f === null) { | |
return true; | |
} else { | |
if (f === false) { | |
return true; | |
} else { | |
if (Object.prototype.toString.call(f) === "[object Array]" && f.length === 0) { | |
return true; | |
} else { | |
return false; | |
} | |
} | |
} | |
} | |
} | |
}; | |
})(); | |
Handlebars.Compiler = function() {}; | |
Handlebars.JavaScriptCompiler = function() {}; | |
(function(g, f) { | |
g.OPCODE_MAP = { | |
appendContent: 1, | |
getContext: 2, | |
lookupWithHelpers: 3, | |
lookup: 4, | |
append: 5, | |
invokeMustache: 6, | |
appendEscaped: 7, | |
pushString: 8, | |
truthyOrFallback: 9, | |
functionOrFallback: 10, | |
invokeProgram: 11, | |
invokePartial: 12, | |
push: 13, | |
assignToHash: 15, | |
pushStringParam: 16 | |
}; | |
g.MULTI_PARAM_OPCODES = { | |
appendContent: 1, | |
getContext: 1, | |
lookupWithHelpers: 2, | |
lookup: 1, | |
invokeMustache: 3, | |
pushString: 1, | |
truthyOrFallback: 1, | |
functionOrFallback: 1, | |
invokeProgram: 3, | |
invokePartial: 1, | |
push: 1, | |
assignToHash: 1, | |
pushStringParam: 1 | |
}; | |
g.DISASSEMBLE_MAP = {}; | |
for (var k in g.OPCODE_MAP) { | |
var h = g.OPCODE_MAP[k]; | |
g.DISASSEMBLE_MAP[h] = k; | |
} | |
g.multiParamSize = function(l) { | |
return g.MULTI_PARAM_OPCODES[g.DISASSEMBLE_MAP[l]]; | |
}; | |
g.prototype = { | |
compiler: g, | |
disassemble: function() { | |
var u = this.opcodes, s, o; | |
var r = [], w, n, x; | |
for (var t = 0, p = u.length; t < p; t++) { | |
s = u[t]; | |
if (s === "DECLARE") { | |
n = u[++t]; | |
x = u[++t]; | |
r.push("DECLARE " + n + " = " + x); | |
} else { | |
w = g.DISASSEMBLE_MAP[s]; | |
var v = g.multiParamSize(s); | |
var m = []; | |
for (var q = 0; q < v; q++) { | |
o = u[++t]; | |
if (typeof o === "string") { | |
o = '"' + o.replace("\n", "\\n") + '"'; | |
} | |
m.push(o); | |
} | |
w = w + " " + m.join(" "); | |
r.push(w); | |
} | |
} | |
return r.join("\n"); | |
}, | |
guid: 0, | |
compile: function(l, n) { | |
this.children = []; | |
this.depths = { | |
list: [] | |
}; | |
this.options = n; | |
var o = this.options.knownHelpers; | |
this.options.knownHelpers = { | |
helperMissing: true, | |
blockHelperMissing: true, | |
each: true, | |
"if": true, | |
unless: true, | |
"with": true, | |
log: true | |
}; | |
if (o) { | |
for (var m in o) { | |
this.options.knownHelpers[m] = o[m]; | |
} | |
} | |
return this.program(l); | |
}, | |
accept: function(l) { | |
return this[l.type](l); | |
}, | |
program: function(o) { | |
var n = o.statements, q; | |
this.opcodes = []; | |
for (var p = 0, m = n.length; p < m; p++) { | |
q = n[p]; | |
this[q.type](q); | |
} | |
this.isSimple = m === 1; | |
this.depths.list = this.depths.list.sort(function(r, l) { | |
return r - l; | |
}); | |
return this; | |
}, | |
compileProgram: function(o) { | |
var m = new this.compiler().compile(o, this.options); | |
var p = this.guid++, r; | |
this.usePartial = this.usePartial || m.usePartial; | |
this.children[p] = m; | |
for (var q = 0, n = m.depths.list.length; q < n; q++) { | |
r = m.depths.list[q]; | |
if (r < 2) { | |
continue; | |
} else { | |
this.addDepth(r - 1); | |
} | |
} | |
return p; | |
}, | |
block: function(r) { | |
var o = r.mustache; | |
var q, s, m, n; | |
var p = this.setupStackForMustache(o); | |
var l = this.compileProgram(r.program); | |
if (r.program.inverse) { | |
n = this.compileProgram(r.program.inverse); | |
this.declare("inverse", n); | |
} | |
this.opcode("invokeProgram", l, p.length, !!o.hash); | |
this.declare("inverse", null); | |
this.opcode("append"); | |
}, | |
inverse: function(n) { | |
var m = this.setupStackForMustache(n.mustache); | |
var l = this.compileProgram(n.program); | |
this.declare("inverse", l); | |
this.opcode("invokeProgram", null, m.length, !!n.mustache.hash); | |
this.declare("inverse", null); | |
this.opcode("append"); | |
}, | |
hash: function(p) { | |
var o = p.pairs, r, q; | |
this.opcode("push", "{}"); | |
for (var n = 0, m = o.length; n < m; n++) { | |
r = o[n]; | |
q = r[1]; | |
this.accept(q); | |
this.opcode("assignToHash", r[0]); | |
} | |
}, | |
partial: function(l) { | |
var m = l.id; | |
this.usePartial = true; | |
if (l.context) { | |
this.ID(l.context); | |
} else { | |
this.opcode("push", "depth0"); | |
} | |
this.opcode("invokePartial", m.original); | |
this.opcode("append"); | |
}, | |
content: function(l) { | |
this.opcode("appendContent", l.string); | |
}, | |
mustache: function(l) { | |
var m = this.setupStackForMustache(l); | |
this.opcode("invokeMustache", m.length, l.id.original, !!l.hash); | |
if (l.escaped && !this.options.noEscape) { | |
this.opcode("appendEscaped"); | |
} else { | |
this.opcode("append"); | |
} | |
}, | |
ID: function(o) { | |
this.addDepth(o.depth); | |
this.opcode("getContext", o.depth); | |
this.opcode("lookupWithHelpers", o.parts[0] || null, o.isScoped || false); | |
for (var n = 1, m = o.parts.length; n < m; n++) { | |
this.opcode("lookup", o.parts[n]); | |
} | |
}, | |
STRING: function(l) { | |
this.opcode("pushString", l.string); | |
}, | |
INTEGER: function(l) { | |
this.opcode("push", l.integer); | |
}, | |
BOOLEAN: function(l) { | |
this.opcode("push", l.bool); | |
}, | |
comment: function() {}, | |
pushParams: function(n) { | |
var l = n.length, m; | |
while (l--) { | |
m = n[l]; | |
if (this.options.stringParams) { | |
if (m.depth) { | |
this.addDepth(m.depth); | |
} | |
this.opcode("getContext", m.depth || 0); | |
this.opcode("pushStringParam", m.string); | |
} else { | |
this[m.type](m); | |
} | |
} | |
}, | |
opcode: function(l, o, n, m) { | |
this.opcodes.push(g.OPCODE_MAP[l]); | |
if (o !== undefined) { | |
this.opcodes.push(o); | |
} | |
if (n !== undefined) { | |
this.opcodes.push(n); | |
} | |
if (m !== undefined) { | |
this.opcodes.push(m); | |
} | |
}, | |
declare: function(l, m) { | |
this.opcodes.push("DECLARE"); | |
this.opcodes.push(l); | |
this.opcodes.push(m); | |
}, | |
addDepth: function(l) { | |
if (l === 0) { | |
return; | |
} | |
if (!this.depths[l]) { | |
this.depths[l] = true; | |
this.depths.list.push(l); | |
} | |
}, | |
setupStackForMustache: function(l) { | |
var m = l.params; | |
this.pushParams(m); | |
if (l.hash) { | |
this.hash(l.hash); | |
} | |
this.ID(l.id); | |
return m; | |
} | |
}; | |
f.prototype = { | |
nameLookup: function(n, l, m) { | |
if (/^[0-9]+$/.test(l)) { | |
return n + "[" + l + "]"; | |
} else { | |
if (f.isValidJavaScriptVariableName(l)) { | |
return n + "." + l; | |
} else { | |
return n + "['" + l + "']"; | |
} | |
} | |
}, | |
appendToBuffer: function(l) { | |
if (this.environment.isSimple) { | |
return "return " + l + ";"; | |
} else { | |
return "buffer += " + l + ";"; | |
} | |
}, | |
initializeBuffer: function() { | |
return this.quotedString(""); | |
}, | |
namespace: "Handlebars", | |
compile: function(l, m, o, n) { | |
this.environment = l; | |
this.options = m || {}; | |
this.name = this.environment.name; | |
this.isChild = !!o; | |
this.context = o || { | |
programs: [], | |
aliases: { | |
self: "this" | |
}, | |
registers: { | |
list: [] | |
} | |
}; | |
this.preamble(); | |
this.stackSlot = 0; | |
this.stackVars = []; | |
this.compileChildren(l, m); | |
var q = l.opcodes, p; | |
this.i = 0; | |
for (b = q.length; this.i < b; this.i++) { | |
p = this.nextOpcode(0); | |
if (p[0] === "DECLARE") { | |
this.i = this.i + 2; | |
this[p[1]] = p[2]; | |
} else { | |
this.i = this.i + p[1].length; | |
this[p[0]].apply(this, p[1]); | |
} | |
} | |
return this.createFunctionContext(n); | |
}, | |
nextOpcode: function(t) { | |
var q = this.environment.opcodes, p = q[this.i + t], o, r; | |
var s, l; | |
if (p === "DECLARE") { | |
o = q[this.i + 1]; | |
r = q[this.i + 2]; | |
return [ "DECLARE", o, r ]; | |
} else { | |
o = g.DISASSEMBLE_MAP[p]; | |
s = g.multiParamSize(p); | |
l = []; | |
for (var m = 0; m < s; m++) { | |
l.push(q[this.i + m + 1 + t]); | |
} | |
return [ o, l ]; | |
} | |
}, | |
eat: function(l) { | |
this.i = this.i + l.length; | |
}, | |
preamble: function() { | |
var l = []; | |
this.useRegister("foundHelper"); | |
if (!this.isChild) { | |
var m = this.namespace; | |
var n = "helpers = helpers || " + m + ".helpers;"; | |
if (this.environment.usePartial) { | |
n = n + " partials = partials || " + m + ".partials;"; | |
} | |
l.push(n); | |
} else { | |
l.push(""); | |
} | |
if (!this.environment.isSimple) { | |
l.push(", buffer = " + this.initializeBuffer()); | |
} else { | |
l.push(""); | |
} | |
this.lastContext = 0; | |
this.source = l; | |
}, | |
createFunctionContext: function(r) { | |
var s = this.stackVars; | |
if (!this.isChild) { | |
s = s.concat(this.context.registers.list); | |
} | |
if (s.length > 0) { | |
this.source[1] = this.source[1] + ", " + s.join(", "); | |
} | |
if (!this.isChild) { | |
var n = []; | |
for (var q in this.context.aliases) { | |
this.source[1] = this.source[1] + ", " + q + "=" + this.context.aliases[q]; | |
} | |
} | |
if (this.source[1]) { | |
this.source[1] = "var " + this.source[1].substring(2) + ";"; | |
} | |
if (!this.isChild) { | |
this.source[1] += "\n" + this.context.programs.join("\n") + "\n"; | |
} | |
if (!this.environment.isSimple) { | |
this.source.push("return buffer;"); | |
} | |
var t = this.isChild ? [ "depth0", "data" ] : [ "Handlebars", "depth0", "helpers", "partials", "data" ]; | |
for (var p = 0, m = this.environment.depths.list.length; p < m; p++) { | |
t.push("depth" + this.environment.depths.list[p]); | |
} | |
if (r) { | |
t.push(this.source.join("\n ")); | |
return Function.apply(this, t); | |
} else { | |
var o = "function " + (this.name || "") + "(" + t.join(",") + ") {\n " + this.source.join("\n ") + "}"; | |
Handlebars.log(Handlebars.logger.DEBUG, o + "\n\n"); | |
return o; | |
} | |
}, | |
appendContent: function(l) { | |
this.source.push(this.appendToBuffer(this.quotedString(l))); | |
}, | |
append: function() { | |
var l = this.popStack(); | |
this.source.push("if(" + l + " || " + l + " === 0) { " + this.appendToBuffer(l) + " }"); | |
if (this.environment.isSimple) { | |
this.source.push("else { " + this.appendToBuffer("''") + " }"); | |
} | |
}, | |
appendEscaped: function() { | |
var m = this.nextOpcode(1), l = ""; | |
this.context.aliases.escapeExpression = "this.escapeExpression"; | |
if (m[0] === "appendContent") { | |
l = " + " + this.quotedString(m[1][0]); | |
this.eat(m); | |
} | |
this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")" + l)); | |
}, | |
getContext: function(l) { | |
if (this.lastContext !== l) { | |
this.lastContext = l; | |
} | |
}, | |
lookupWithHelpers: function(n, o) { | |
if (n) { | |
var l = this.nextStack(); | |
this.usingKnownHelper = false; | |
var m; | |
if (!o && this.options.knownHelpers[n]) { | |
m = l + " = " + this.nameLookup("helpers", n, "helper"); | |
this.usingKnownHelper = true; | |
} else { | |
if (o || this.options.knownHelpersOnly) { | |
m = l + " = " + this.nameLookup("depth" + this.lastContext, n, "context"); | |
} else { | |
this.register("foundHelper", this.nameLookup("helpers", n, "helper")); | |
m = l + " = foundHelper || " + this.nameLookup("depth" + this.lastContext, n, "context"); | |
} | |
} | |
m += ";"; | |
this.source.push(m); | |
} else { | |
this.pushStack("depth" + this.lastContext); | |
} | |
}, | |
lookup: function(m) { | |
var l = this.topStack(); | |
this.source.push(l + " = (" + l + " === null || " + l + " === undefined || " + l + " === false ? " + l + " : " + this.nameLookup(l, m, "context") + ");"); | |
}, | |
pushStringParam: function(l) { | |
this.pushStack("depth" + this.lastContext); | |
this.pushString(l); | |
}, | |
pushString: function(l) { | |
this.pushStack(this.quotedString(l)); | |
}, | |
push: function(l) { | |
this.pushStack(l); | |
}, | |
invokeMustache: function(n, m, l) { | |
this.populateParams(n, this.quotedString(m), "{}", null, l, function(o, q, p) { | |
if (!this.usingKnownHelper) { | |
this.context.aliases.helperMissing = "helpers.helperMissing"; | |
this.context.aliases.undef = "void 0"; | |
this.source.push("else if(" + p + "=== undef) { " + o + " = helperMissing.call(" + q + "); }"); | |
if (o !== p) { | |
this.source.push("else { " + o + " = " + p + "; }"); | |
} | |
} | |
}); | |
}, | |
invokeProgram: function(n, o, m) { | |
var l = this.programExpression(this.inverse); | |
var p = this.programExpression(n); | |
this.populateParams(o, null, p, l, m, function(q, s, r) { | |
if (!this.usingKnownHelper) { | |
this.context.aliases.blockHelperMissing = "helpers.blockHelperMissing"; | |
this.source.push("else { " + q + " = blockHelperMissing.call(" + s + "); }"); | |
} | |
}); | |
}, | |
populateParams: function(r, m, v, s, z, y) { | |
var n = z || this.options.stringParams || s || this.options.data; | |
var l = this.popStack(), x; | |
var p = [], o, q, w; | |
if (n) { | |
this.register("tmp1", v); | |
w = "tmp1"; | |
} else { | |
w = "{ hash: {} }"; | |
} | |
if (n) { | |
var u = z ? this.popStack() : "{}"; | |
this.source.push("tmp1.hash = " + u + ";"); | |
} | |
if (this.options.stringParams) { | |
this.source.push("tmp1.contexts = [];"); | |
} | |
for (var t = 0; t < r; t++) { | |
o = this.popStack(); | |
p.push(o); | |
if (this.options.stringParams) { | |
this.source.push("tmp1.contexts.push(" + this.popStack() + ");"); | |
} | |
} | |
if (s) { | |
this.source.push("tmp1.fn = tmp1;"); | |
this.source.push("tmp1.inverse = " + s + ";"); | |
} | |
if (this.options.data) { | |
this.source.push("tmp1.data = data;"); | |
} | |
p.push(w); | |
this.populateCall(p, l, m || l, y, v !== "{}"); | |
}, | |
populateCall: function(q, m, n, t, r) { | |
var p = [ "depth0" ].concat(q).join(", "); | |
var l = [ "depth0" ].concat(n).concat(q).join(", "); | |
var s = this.nextStack(); | |
if (this.usingKnownHelper) { | |
this.source.push(s + " = " + m + ".call(" + p + ");"); | |
} else { | |
this.context.aliases.functionType = '"function"'; | |
var o = r ? "foundHelper && " : ""; | |
this.source.push("if(" + o + "typeof " + m + " === functionType) { " + s + " = " + m + ".call(" + p + "); }"); | |
} | |
t.call(this, s, l, m); | |
this.usingKnownHelper = false; | |
}, | |
invokePartial: function(l) { | |
var m = [ this.nameLookup("partials", l, "partial"), "'" + l + "'", this.popStack(), "helpers", "partials" ]; | |
if (this.options.data) { | |
m.push("data"); | |
} | |
this.pushStack("self.invokePartial(" + m.join(", ") + ");"); | |
}, | |
assignToHash: function(l) { | |
var m = this.popStack(); | |
var n = this.topStack(); | |
this.source.push(n + "['" + l + "'] = " + m + ";"); | |
}, | |
compiler: f, | |
compileChildren: function(m, p) { | |
var r = m.children, t, s; | |
for (var q = 0, n = r.length; q < n; q++) { | |
t = r[q]; | |
s = new this.compiler(); | |
this.context.programs.push(""); | |
var o = this.context.programs.length; | |
t.index = o; | |
t.name = "program" + o; | |
this.context.programs[o] = s.compile(t, p, this.context); | |
} | |
}, | |
programExpression: function(n) { | |
if (n == null) { | |
return "self.noop"; | |
} | |
var s = this.environment.children[n], r = s.depths.list, q; | |
var p = [ s.index, s.name, "data" ]; | |
for (var o = 0, m = r.length; o < m; o++) { | |
q = r[o]; | |
if (q === 1) { | |
p.push("depth0"); | |
} else { | |
p.push("depth" + (q - 1)); | |
} | |
} | |
if (r.length === 0) { | |
return "self.program(" + p.join(", ") + ")"; | |
} else { | |
p.shift(); | |
return "self.programWithDepth(" + p.join(", ") + ")"; | |
} | |
}, | |
register: function(l, m) { | |
this.useRegister(l); | |
this.source.push(l + " = " + m + ";"); | |
}, | |
useRegister: function(l) { | |
if (!this.context.registers[l]) { | |
this.context.registers[l] = true; | |
this.context.registers.list.push(l); | |
} | |
}, | |
pushStack: function(l) { | |
this.source.push(this.nextStack() + " = " + l + ";"); | |
return "stack" + this.stackSlot; | |
}, | |
nextStack: function() { | |
this.stackSlot++; | |
if (this.stackSlot > this.stackVars.length) { | |
this.stackVars.push("stack" + this.stackSlot); | |
} | |
return "stack" + this.stackSlot; | |
}, | |
popStack: function() { | |
return "stack" + this.stackSlot--; | |
}, | |
topStack: function() { | |
return "stack" + this.stackSlot; | |
}, | |
quotedString: function(l) { | |
return '"' + l.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r") + '"'; | |
} | |
}; | |
var a = "break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "); | |
var d = f.RESERVED_WORDS = {}; | |
for (var c = 0, b = a.length; c < b; c++) { | |
d[a[c]] = true; | |
} | |
f.isValidJavaScriptVariableName = function(l) { | |
if (!f.RESERVED_WORDS[l] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(l)) { | |
return true; | |
} | |
return false; | |
}; | |
})(Handlebars.Compiler, Handlebars.JavaScriptCompiler); | |
Handlebars.precompile = function(d, c) { | |
c = c || {}; | |
var b = Handlebars.parse(d); | |
var a = new Handlebars.Compiler().compile(b, c); | |
return new Handlebars.JavaScriptCompiler().compile(a, c); | |
}; | |
Handlebars.compile = function(b, a) { | |
a = a || {}; | |
var d; | |
function c() { | |
var h = Handlebars.parse(b); | |
var g = new Handlebars.Compiler().compile(h, a); | |
var f = new Handlebars.JavaScriptCompiler().compile(g, a, undefined, true); | |
return Handlebars.template(f); | |
} | |
return function(g, f) { | |
if (!d) { | |
d = c(); | |
} | |
return d.call(this, g, f); | |
}; | |
}; | |
Handlebars.VM = { | |
template: function(a) { | |
var b = { | |
escapeExpression: Handlebars.Utils.escapeExpression, | |
invokePartial: Handlebars.VM.invokePartial, | |
programs: [], | |
program: function(d, f, g) { | |
var c = this.programs[d]; | |
if (g) { | |
return Handlebars.VM.program(f, g); | |
} else { | |
if (c) { | |
return c; | |
} else { | |
c = this.programs[d] = Handlebars.VM.program(f); | |
return c; | |
} | |
} | |
}, | |
programWithDepth: Handlebars.VM.programWithDepth, | |
noop: Handlebars.VM.noop | |
}; | |
return function(d, c) { | |
c = c || {}; | |
return a.call(b, Handlebars, d, c.helpers, c.partials, c.data); | |
}; | |
}, | |
programWithDepth: function(b, d, c) { | |
var a = Array.prototype.slice.call(arguments, 2); | |
return function(g, f) { | |
f = f || {}; | |
return b.apply(this, [ g, f.data || d ].concat(a)); | |
}; | |
}, | |
program: function(a, b) { | |
return function(d, c) { | |
c = c || {}; | |
return a(d, c.data || b); | |
}; | |
}, | |
noop: function() { | |
return ""; | |
}, | |
invokePartial: function(a, c, f, g, d, h) { | |
var b = { | |
helpers: g, | |
partials: d, | |
data: h | |
}; | |
if (a === undefined) { | |
throw new Handlebars.Exception("The partial " + c + " could not be found"); | |
} else { | |
if (a instanceof Function) { | |
return a(f, b); | |
} else { | |
if (!Handlebars.compile) { | |
throw new Handlebars.Exception("The partial " + c + " could not be compiled when running in runtime-only mode"); | |
} else { | |
d[c] = Handlebars.compile(a); | |
return d[c](f, b); | |
} | |
} | |
} | |
} | |
}; | |
Handlebars.template = Handlebars.VM.template; | |
Handlebars.TemplateCache = {}; | |
$.View.register({ | |
suffix: "mustache", | |
plugin: "jquery/view/mustache", | |
renderer: function(b, a) { | |
Handlebars.TemplateCache[b] = Handlebars.compile(a); | |
return function(d, c) { | |
return Handlebars.TemplateCache[b](d); | |
}; | |
}, | |
get: function(c, a) { | |
var b = $.ajax({ | |
async: false, | |
url: a, | |
dataType: "text", | |
error: function() { | |
throw "mustache.js ERROR: There is no template or an empty template at " + a; | |
} | |
}).responseText; | |
return this.renderer(c, b); | |
}, | |
script: function(b, a) { | |
return "((function(){ Handlebars.TemplateCache['" + b + "'] = Handlebars.compile(" + $.quoteString(a) + "); return function(data){return Handlebars.TemplateCache['" + b + "'](data)} })())"; | |
} | |
}); | |
Handlebars.registerHelper("hookupModel", function() { | |
var a = this, b = $.View.hookup(function(c) { | |
a.hookup(c); | |
}); | |
return 'data-view-id="' + b + '"'; | |
}); | |
Handlebars.registerHelper("hookupView", function(a, b) { | |
return $.View(a, b); | |
}); | |
(function(a, g) { | |
var b = a.store = function(l, n, k) { | |
var m = b.type; | |
if (k && k.type && k.type in b.types) { | |
m = k.type; | |
} | |
return b.types[m](l, n, k || {}); | |
}; | |
b.types = {}; | |
b.type = null; | |
b.addType = function(k, l) { | |
if (!b.type) { | |
b.type = k; | |
} | |
b.types[k] = l; | |
b[k] = function(n, o, m) { | |
m = m || {}; | |
m.type = k; | |
return b(n, o, m); | |
}; | |
}; | |
b.error = function() { | |
return "amplify.store quota exceeded"; | |
}; | |
var h = /^__amplify__/; | |
function d(k, l) { | |
b.addType(k, function(u, t, v) { | |
var n, s, o, p, q = t, m = new Date().getTime(); | |
if (!u) { | |
q = {}; | |
p = []; | |
o = 0; | |
try { | |
u = l.length; | |
while (u = l.key(o++)) { | |
if (h.test(u)) { | |
s = JSON.parse(l.getItem(u)); | |
if (s.expires && s.expires <= m) { | |
p.push(u); | |
} else { | |
q[u.replace(h, "")] = s.data; | |
} | |
} | |
} | |
while (u = p.pop()) { | |
l.removeItem(u); | |
} | |
} catch (r) {} | |
return q; | |
} | |
u = "__amplify__" + u; | |
if (t === g) { | |
n = l.getItem(u); | |
s = n ? JSON.parse(n) : { | |
expires: -1 | |
}; | |
if (s.expires && s.expires <= m) { | |
l.removeItem(u); | |
} else { | |
return s.data; | |
} | |
} else { | |
if (t === null) { | |
l.removeItem(u); | |
} else { | |
s = JSON.stringify({ | |
data: t, | |
expires: v.expires ? m + v.expires : null | |
}); | |
try { | |
l.setItem(u, s); | |
} catch (r) { | |
b[k](); | |
try { | |
l.setItem(u, s); | |
} catch (r) { | |
throw b.error(); | |
} | |
} | |
} | |
} | |
return q; | |
}); | |
} | |
for (var c in { | |
localStorage: 1, | |
sessionStorage: 1 | |
}) { | |
try { | |
window[c].setItem("__amplify__", "x"); | |
window[c].removeItem("__amplify__"); | |
d(c, window[c]); | |
} catch (f) {} | |
} | |
if (!b.types.localStorage && window.globalStorage) { | |
try { | |
d("globalStorage", window.globalStorage[window.location.hostname]); | |
if (b.type === "sessionStorage") { | |
b.type = "globalStorage"; | |
} | |
} catch (f) {} | |
} | |
(function() { | |
if (b.types.localStorage) { | |
return; | |
} | |
var m = document.createElement("div"), l = "amplify"; | |
m.style.display = "none"; | |
document.getElementsByTagName("head")[0].appendChild(m); | |
try { | |
m.addBehavior("#default#userdata"); | |
m.load(l); | |
} catch (k) { | |
m.parentNode.removeChild(m); | |
return; | |
} | |
b.addType("userData", function(w, v, x) { | |
m.load(l); | |
var s, u, q, o, p, r = v, n = new Date().getTime(); | |
if (!w) { | |
r = {}; | |
p = []; | |
o = 0; | |
while (s = m.XMLDocument.documentElement.attributes[o++]) { | |
u = JSON.parse(s.value); | |
if (u.expires && u.expires <= n) { | |
p.push(s.name); | |
} else { | |
r[s.name] = u.data; | |
} | |
} | |
while (w = p.pop()) { | |
m.removeAttribute(w); | |
} | |
m.save(l); | |
return r; | |
} | |
w = w.replace(/[^\-._0-9A-Za-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c-\u200d\u203f\u2040\u2070-\u218f]/g, "-"); | |
w = w.replace(/^-/, "_-"); | |
if (v === g) { | |
s = m.getAttribute(w); | |
u = s ? JSON.parse(s) : { | |
expires: -1 | |
}; | |
if (u.expires && u.expires <= n) { | |
m.removeAttribute(w); | |
} else { | |
return u.data; | |
} | |
} else { | |
if (v === null) { | |
m.removeAttribute(w); | |
} else { | |
q = m.getAttribute(w); | |
u = JSON.stringify({ | |
data: v, | |
expires: x.expires ? n + x.expires : null | |
}); | |
m.setAttribute(w, u); | |
} | |
} | |
try { | |
m.save(l); | |
} catch (t) { | |
if (q === null) { | |
m.removeAttribute(w); | |
} else { | |
m.setAttribute(w, q); | |
} | |
b.userData(); | |
try { | |
m.setAttribute(w, u); | |
m.save(l); | |
} catch (t) { | |
if (q === null) { | |
m.removeAttribute(w); | |
} else { | |
m.setAttribute(w, q); | |
} | |
throw b.error(); | |
} | |
} | |
return r; | |
}); | |
})(); | |
(function() { | |
var m = {}, k = {}; | |
function l(n) { | |
return n === g ? g : JSON.parse(JSON.stringify(n)); | |
} | |
b.addType("memory", function(o, p, n) { | |
if (!o) { | |
return l(m); | |
} | |
if (p === g) { | |
return l(m[o]); | |
} | |
if (k[o]) { | |
clearTimeout(k[o]); | |
delete k[o]; | |
} | |
if (p === null) { | |
delete m[o]; | |
return null; | |
} | |
m[o] = p; | |
if (n.expires) { | |
k[o] = setTimeout(function() { | |
delete m[o]; | |
delete k[o]; | |
}, n.expires); | |
} | |
return p; | |
}); | |
})(); | |
})(this.amplify = this.amplify || {}); | |
(function(n, d) { | |
var l = n.document, c = l.documentElement, b = "overthrow-enabled", q = "ontouchmove" in l, f = "WebkitOverflowScrolling" in c.style || !q && n.screen.width > 1200 || function() { | |
var s = n.navigator.userAgent, r = s.match(/AppleWebKit\/([0-9]+)/), u = r && r[1], t = r && u >= 534; | |
return s.match(/Android ([0-9]+)/) && RegExp.$1 >= 3 && t || s.match(/ Version\/([0-9]+)/) && RegExp.$1 >= 0 && n.blackberry && t || s.indexOf(/PlayBook/) > -1 && RegExp.$1 >= 0 && t || s.match(/Fennec\/([0-9]+)/) && RegExp.$1 >= 4 || s.match(/wOSBrowser\/([0-9]+)/) && RegExp.$1 >= 233 && t || s.match(/NokiaBrowser\/([0-9\.]+)/) && parseFloat(RegExp.$1) === 7.3 && r && u >= 533; | |
}(), m = function(s, r, v, u) { | |
return v * ((s = s / u - 1) * s * s + 1) + r; | |
}, k = false, h, p = function(t, z) { | |
var v = 0, x = t.scrollLeft, y = t.scrollTop, s = { | |
top: "+0", | |
left: "+0", | |
duration: 100, | |
easing: n.overthrow.easing | |
}, w, r; | |
if (z) { | |
for (var u in s) { | |
if (z[u] !== d) { | |
s[u] = z[u]; | |
} | |
} | |
} | |
if (typeof s.left === "string") { | |
s.left = parseFloat(s.left); | |
w = s.left + x; | |
} else { | |
w = s.left; | |
s.left = s.left - x; | |
} | |
if (typeof s.top === "string") { | |
s.top = parseFloat(s.top); | |
r = s.top + y; | |
} else { | |
r = s.top; | |
s.top = s.top - y; | |
} | |
h = setInterval(function() { | |
if (v++ < s.duration) { | |
t.scrollLeft = s.easing(v, x, s.left, s.duration); | |
t.scrollTop = s.easing(v, y, s.top, s.duration); | |
} else { | |
if (w !== t.scrollLeft) { | |
t.scrollLeft = w; | |
} | |
if (r !== t.scrollTop) { | |
t.scrollTop = r; | |
} | |
o(); | |
} | |
}, 1); | |
return { | |
top: r, | |
left: w, | |
duration: s.duration, | |
easing: s.easing | |
}; | |
}, a = function(s, r) { | |
return !r && s.className && s.className.indexOf("overthrow") > -1 && s || a(s.parentNode); | |
}, o = function() { | |
clearInterval(h); | |
}, g = function() { | |
if (k) { | |
return; | |
} | |
k = true; | |
if (f || q) { | |
c.className += " " + b; | |
} | |
n.overthrow.forget = function() { | |
c.className = c.className.replace(b, ""); | |
if (l.removeEventListener) { | |
l.removeEventListener("touchstart", s, false); | |
} | |
n.overthrow.easing = m; | |
k = false; | |
}; | |
if (f || !q) { | |
return; | |
} | |
var v, z = [], r = [], y, B, A = function() { | |
z = []; | |
y = null; | |
}, w = function() { | |
r = []; | |
B = null; | |
}, u = function() { | |
var F = (z[0] - z[z.length - 1]) * 8, E = (r[0] - r[r.length - 1]) * 8, D = Math.max(Math.abs(E), Math.abs(F)) / 8; | |
F = (F > 0 ? "+" : "") + F; | |
E = (E > 0 ? "+" : "") + E; | |
if (!isNaN(D) && D > 0 && (Math.abs(E) > 80 || Math.abs(F) > 80)) { | |
p(v, { | |
left: E, | |
top: F, | |
duration: D | |
}); | |
} | |
}, x, t = function(F) { | |
x = v.querySelectorAll("textarea, input"); | |
for (var E = 0, D = x.length; E < D; E++) { | |
x[E].style.pointerEvents = F; | |
} | |
}, C = function(E, F) { | |
if (l.createEvent) { | |
var G = (!F || F === d) && v.parentNode || v.touchchild || v, D; | |
if (G !== v) { | |
D = l.createEvent("HTMLEvents"); | |
D.initEvent("touchend", true, true); | |
v.dispatchEvent(D); | |
G.touchchild = v; | |
v = G; | |
G.dispatchEvent(E); | |
} | |
} | |
}, s = function(L) { | |
o(); | |
A(); | |
w(); | |
v = a(L.target); | |
if (!v || v === c || L.touches.length > 1) { | |
return; | |
} | |
t("none"); | |
var M = L, D = v.scrollTop, H = v.scrollLeft, N = v.offsetHeight, E = v.offsetWidth, I = L.touches[0].pageY, K = L.touches[0].pageX, O = v.scrollHeight, J = v.scrollWidth, F = function(S) { | |
var P = D + I - S.touches[0].pageY, Q = H + K - S.touches[0].pageX, T = P >= (z.length ? z[0] : 0), R = Q >= (r.length ? r[0] : 0); | |
if (P > 0 && P < O - N || Q > 0 && Q < J - E) { | |
S.preventDefault(); | |
} else { | |
C(M); | |
} | |
if (y && T !== y) { | |
A(); | |
} | |
if (B && R !== B) { | |
w(); | |
} | |
y = T; | |
B = R; | |
v.scrollTop = P; | |
v.scrollLeft = Q; | |
z.unshift(P); | |
r.unshift(Q); | |
if (z.length > 3) { | |
z.pop(); | |
} | |
if (r.length > 3) { | |
r.pop(); | |
} | |
}, G = function(P) { | |
u(); | |
t("auto"); | |
setTimeout(function() { | |
t("none"); | |
}, 450); | |
v.removeEventListener("touchmove", F, false); | |
v.removeEventListener("touchend", G, false); | |
}; | |
v.addEventListener("touchmove", F, false); | |
v.addEventListener("touchend", G, false); | |
}; | |
l.addEventListener("touchstart", s, false); | |
}; | |
n.overthrow = { | |
set: g, | |
forget: function() {}, | |
easing: m, | |
toss: p, | |
intercept: o, | |
closest: a, | |
support: f ? "native" : q && "polyfilled" || "none" | |
}; | |
g(); | |
})(this); | |
var Crittercism = function() { | |
function ag(k) { | |
var k = k || { | |
guess: !0 | |
}, h = k.e || null, k = !!k.guess, l = new ag.implementation(), h = l.run(h); | |
return k ? l.guessAnonymousFunctions(h) : h; | |
} | |
var ah = null, Z = null, af = !1, aj = function() { | |
var k = false; | |
if ("localStorage" in window) { | |
try { | |
window.localStorage.setItem("isStorageAvailable", "true"); | |
k = true; | |
window.localStorage.removeItem("isStorageAvailable", "true"); | |
} catch (h) {} | |
} | |
return k; | |
}, ae = function() { | |
aj() && (localStorage["Crittercism.last_seen"] = new Date().toString()); | |
}, X = function() { | |
var k = localStorage.getItem("Crittercism.last_seen"); | |
if (k) { | |
try { | |
return new Date(k); | |
} catch (h) { | |
return null; | |
} | |
} else { | |
return null; | |
} | |
}, U = function() { | |
if (aj()) { | |
try { | |
return localStorage.getItem("Crittercism.did"); | |
} catch (h) { | |
return ""; | |
} | |
} else { | |
return ""; | |
} | |
}, ai = null, aa = !1, Y = [], O = 0, S = function(h) { | |
aa ? ai.postMessage(h, "*") : Y.push(h); | |
}, W = function() { | |
for (;message = Y.pop(); ) { | |
ai.postMessage(message, "*"); | |
} | |
}, ad = function(h) { | |
switch (h.data.type) { | |
case "iframeSyn": | |
ai = h.source; | |
ai.postMessage({ | |
type: "clientSynAck" | |
}, "*"); | |
break; | |
case "iframeSynAck": | |
ai = h.source; | |
ai.postMessage({ | |
type: "clientAck" | |
}, "*"); | |
aa = !0; | |
W(); | |
break; | |
case "iframeAck": | |
aa = !0; | |
W(); | |
break; | |
case "setDeviceId": | |
h = h.data.contents.deviceId, aj() && localStorage.setItem("Crittercism.did", h); | |
} | |
}; | |
"undefined" === typeof inTest && window.addEventListener("message", ad, !1); | |
document.getElementById("crittercism_iframe") && (ai = document.getElementById("crittercism_iframe"), | |
ai.postMessage({ | |
type: "clientSyn" | |
}, "*")); | |
ag.implementation = function() {}; | |
ag.implementation.prototype = { | |
run: function(k, h) { | |
k = k || this.createException(); | |
h = h || this.mode(k); | |
return h === "other" ? this.other(arguments.callee) : this[h](k); | |
}, | |
createException: function() { | |
try { | |
this.undef(); | |
} catch (h) { | |
return h; | |
} | |
}, | |
mode: function(h) { | |
return h.arguments && h.stack ? "chrome" : typeof h.message === "string" && typeof window !== "undefined" && window.opera ? !h.stacktrace || h.message.indexOf("\n") > -1 && h.message.split("\n").length > h.stacktrace.split("\n").length ? "opera9" : !h.stack ? "opera10a" : h.stacktrace.indexOf("called from line") < 0 ? "opera10b" : "opera11" : h.stack ? "firefox" : "other"; | |
}, | |
instrumentFunction: function(k, h, m) { | |
var k = k || window, l = k[h]; | |
k[h] = function() { | |
m.call(this, ag().slice(4)); | |
return k[h]._instrumented.apply(this, arguments); | |
}; | |
k[h]._instrumented = l; | |
}, | |
deinstrumentFunction: function(k, h) { | |
if (k[h].constructor === Function && k[h]._instrumented && k[h]._instrumented.constructor === Function) { | |
k[h] = k[h]._instrumented; | |
} | |
}, | |
chrome: function(h) { | |
h = (h.stack + "\n").replace(/^\S[^\(]+?[\n$]/gm, "").replace(/^\s+(at eval )?at\s+/gm, "").replace(/^([^\(]+?)([\n$])/gm, "{anonymous}()@$1$2").replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm, "{anonymous}()@$1").split("\n"); | |
h.pop(); | |
return h; | |
}, | |
firefox: function(h) { | |
return h.stack.replace(/(?:\n@:0)?\s+$/m, "").replace(/^\(/gm, "{anonymous}(").split("\n"); | |
}, | |
opera11: function(k) { | |
for (var h = /^.*line (\d+), column (\d+)(?: in (.+))? in (\S+):$/, k = k.stacktrace.split("\n"), p = [], o = 0, m = k.length; o < m; o = o + 2) { | |
var n = h.exec(k[o]); | |
if (n) { | |
var l = n[4] + ":" + n[1] + ":" + n[2], n = n[3] || "global code", n = n.replace(/<anonymous function: (\S+)>/, "$1").replace(/<anonymous function>/, "{anonymous}"); | |
p.push(n + "@" + l + " -- " + k[o + 1].replace(/^\s+/, "")); | |
} | |
} | |
return p; | |
}, | |
opera10b: function(k) { | |
for (var h = /^(.*)@(.+):(\d+)$/, k = k.stacktrace.split("\n"), o = [], n = 0, l = k.length; n < l; n++) { | |
var m = h.exec(k[n]); | |
m && o.push((m[1] ? m[1] + "()" : "global code") + "@" + m[2] + ":" + m[3]); | |
} | |
return o; | |
}, | |
opera10a: function(k) { | |
for (var h = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i, k = k.stacktrace.split("\n"), o = [], n = 0, l = k.length; n < l; n = n + 2) { | |
var m = h.exec(k[n]); | |
m && o.push((m[3] || "{anonymous}") + "()@" + m[2] + ":" + m[1] + " -- " + k[n + 1].replace(/^\s+/, "")); | |
} | |
return o; | |
}, | |
opera9: function(k) { | |
for (var h = /Line (\d+).*script (?:in )?(\S+)/i, k = k.message.split("\n"), o = [], n = 2, l = k.length; n < l; n = n + 2) { | |
var m = h.exec(k[n]); | |
m && o.push("{anonymous}()@" + m[2] + ":" + m[1] + " -- " + k[n + 1].replace(/^\s+/, "")); | |
} | |
return o; | |
}, | |
other: function(k) { | |
for (var h = /function\s*([\w\-$]+)?\s*\(/i, n = [], m, l; k && k.arguments && n.length < 10; ) { | |
m = h.test(k.toString()) ? RegExp.$1 || "{anonymous}" : "{anonymous}"; | |
l = Array.prototype.slice.call(k.arguments || []); | |
n[n.length] = m + "(" + this.stringifyArguments(l) + ")"; | |
k = k.caller; | |
} | |
return n; | |
}, | |
stringifyArguments: function(k) { | |
for (var h = [], n = Array.prototype.slice, m = 0; m < k.length; ++m) { | |
var l = k[m]; | |
l === void 0 ? h[m] = "undefined" : l === null ? h[m] = "null" : l.constructor && (l.constructor === Array ? h[m] = l.length < 3 ? "[" + this.stringifyArguments(l) + "]" : "[" + this.stringifyArguments(n.call(l, 0, 1)) + "..." + this.stringifyArguments(n.call(l, -1)) + "]" : l.constructor === Object ? h[m] = "#object" : l.constructor === Function ? h[m] = "#function" : l.constructor === String ? h[m] = '"' + l + '"' : l.constructor === Number && (h[m] = l)); | |
} | |
return h.join(","); | |
}, | |
sourceCache: {}, | |
ajax: function(k) { | |
var h = this.createXMLHTTPObject(); | |
if (h) { | |
try { | |
h.open("GET", k, false); | |
h.send(null); | |
return h.responseText; | |
} catch (l) {} | |
} | |
return ""; | |
}, | |
createXMLHTTPObject: function() { | |
for (var k, h = [ function() { | |
return new XMLHttpRequest(); | |
}, function() { | |
return new ActiveXObject("Msxml2.XMLHTTP"); | |
}, function() { | |
return new ActiveXObject("Msxml3.XMLHTTP"); | |
}, function() { | |
return new ActiveXObject("Microsoft.XMLHTTP"); | |
} ], m = 0; m < h.length; m++) { | |
try { | |
k = h[m](); | |
this.createXMLHTTPObject = h[m]; | |
return k; | |
} catch (l) {} | |
} | |
}, | |
isSameDomain: function(h) { | |
return typeof location !== "undefined" && h.indexOf(location.hostname) !== -1; | |
}, | |
getSource: function(h) { | |
h in this.sourceCache || (this.sourceCache[h] = this.ajax(h).split("\n")); | |
return this.sourceCache[h]; | |
}, | |
guessAnonymousFunctions: function(k) { | |
for (var h = 0; h < k.length; ++h) { | |
var o = /^(.*?)(?::(\d+))(?::(\d+))?(?: -- .+)?$/, n = k[h], l = /\{anonymous\}\(.*\)@(.*)/.exec(n); | |
if (l) { | |
var m = o.exec(l[1]); | |
if (m) { | |
o = m[1]; | |
l = m[2]; | |
m = m[3] || 0; | |
if (o && this.isSameDomain(o) && l) { | |
o = this.guessAnonymousFunction(o, l, m); | |
k[h] = n.replace("{anonymous}", o); | |
} | |
} | |
} | |
} | |
return k; | |
}, | |
guessAnonymousFunction: function(k, h) { | |
var m; | |
try { | |
m = this.findFunctionName(this.getSource(k), h); | |
} catch (l) { | |
m = "getSource failed with url: " + k + ", exception: " + l.toString(); | |
} | |
return m; | |
}, | |
findFunctionName: function(t, s) { | |
for (var r = /function\s+([^(]*?)\s*\(([^)]*)\)/, q = /['"]?([0-9A-Za-z_]+)['"]?\s*[:=]\s*function\b/, o = /['"]?([0-9A-Za-z_]+)['"]?\s*[:=]\s*(?:eval|new Function)\b/, p = "", n, m = Math.min(s, 20), l, k = 0; k < m; ++k) { | |
n = t[s - k - 1]; | |
l = n.indexOf("//"); | |
l >= 0 && (n = n.substr(0, l)); | |
if (n) { | |
p = n + p; | |
if ((n = q.exec(p)) && n[1]) { | |
return n[1]; | |
} | |
if ((n = r.exec(p)) && n[1]) { | |
return n[1]; | |
} | |
if ((n = o.exec(p)) && n[1]) { | |
return n[1]; | |
} | |
} | |
} | |
return "(?)"; | |
} | |
}; | |
var T = function(s) { | |
for (var r = [], q = [ /^crittercismErrorHandler/i, /^printStackTrace/i ], p = 0, n = s.length; p < n; p++) { | |
for (var o = s[p], m = false, l = 0, k = q.length; l < k; l++) { | |
if (o.match(q[l])) { | |
m = true; | |
break; | |
} | |
} | |
m || r.push(o); | |
} | |
return r; | |
}, R, ak = { | |
metadata: {} | |
}, M = !1, f = function(h) { | |
return typeof h == "undefined" || h == null || h == ""; | |
}, Q = function() { | |
battery = null; | |
if (navigator.battery) { | |
battery = navigator.battery.level; | |
} else { | |
if (navigator.mozBattery) { | |
battery = navigator.mozBattery.level; | |
} else { | |
if (navigator.webkitBattery) { | |
battery = navigator.webkitBattery.level; | |
} | |
} | |
} | |
return battery; | |
}, N = function() { | |
S({ | |
type: "metadata", | |
contents: { | |
app_id: ah, | |
device_id: U(), | |
library_version: "pre", | |
device_name: "html5", | |
metadata: ak.metadata | |
} | |
}); | |
}, d = function() { | |
if (aj()) { | |
try { | |
return JSON.parse(localStorage.getItem("Crittercism.app_state")) || {}; | |
} catch (h) { | |
return ak || {}; | |
} | |
} else { | |
return ak || {}; | |
} | |
}, c = function() { | |
var k = d(); | |
if (aj()) { | |
for (var h = ak, n = 0, m = 0; m < localStorage.length; m++) { | |
var l = localStorage.key(m), n = n + l.length * 2; | |
f(localStorage.getItem(l)) || (n = n + localStorage.getItem(localStorage.key(m)).length * 2); | |
} | |
h.local_storage = n; | |
} | |
Q() && (k.battery_level = Q()); | |
k.app_version = R; | |
return k; | |
}; | |
window.onerror = function(k) { | |
if (Lowes.Constants.CRITTERCISM_ENABLED && (location.hostname.indexOf(".lowes.com") > -1 || Lowes.Constants.ALLOW_LOCAL_CRITTERCISM)) { | |
++O; | |
var h = T(ag({ | |
e: k, | |
guess: true | |
})); | |
S({ | |
type: "crash", | |
contents: { | |
app_id: ah, | |
app_state: c(), | |
breadcrumbs: V, | |
did: U(), | |
exception_name: "Error", | |
exception_reason: k, | |
library_version: "pre", | |
unsymbolized_stacktrace: h | |
} | |
}); | |
return true; | |
} | |
}; | |
var V; | |
aj() ? (ad = localStorage.getItem("Crittercism.breadcrumbs") || "[]", ad = JSON.parse(ad)) : ad = []; | |
V = { | |
current_session: [], | |
previous_session: ad | |
}; | |
var b = function() { | |
function k(l) { | |
return l < 10 ? "0" + l : l; | |
} | |
var h = new Date(); | |
return h.getUTCFullYear() + "-" + k(h.getUTCMonth() + 1) + "-" + k(h.getUTCDate()) + "T" + k(h.getUTCHours()) + ":" + k(h.getUTCMinutes()) + ":" + k(h.getUTCSeconds()) + "Z"; | |
}, ac = [], ab = null, g = 21, P = null, a = function(k) { | |
if (ac.length < 20) { | |
var h = k && typeof k.name == "string" ? k.name : "Unknown Exception (No name passed by caller)", k = k && typeof k.message == "string" ? k.message : "Unknown Exception Reason (No reason passed by caller)", l = T(ag({ | |
e: k, | |
guess: true | |
})), h = { | |
type: "handled_exception", | |
contents: { | |
app_id: ah, | |
hashed_device_id: U(), | |
library_version: "pre", | |
exceptions: [ { | |
library_version: "pre", | |
exception_name: h, | |
exception_reason: k, | |
library_version: "pre", | |
state: c(), | |
unsymbolized_stacktrace: l | |
} ] | |
} | |
}; | |
ac.push(h); | |
} | |
return this; | |
}; | |
return { | |
init: function(h) { | |
af = true; | |
ah = h.appId; | |
R = h.appVersion || "unspecified"; | |
Z = h._iframeSrc || "https://api.crittercism.com/html5-static/html/iframe.html"; | |
if (document.getElementById("critterframe") == null) { | |
h = document.createElement("iframe"); | |
h.id = "critterframe"; | |
h.src = Z; | |
h.style.display = "none"; | |
document.body.appendChild(h); | |
} | |
if (h = M == false) { | |
if (aj()) { | |
h = (h = X()) ? new Date() - h >= 18e5 ? true : false : true; | |
} else { | |
h = true; | |
} | |
} | |
if (h) { | |
S({ | |
type: "appLoad", | |
contents: { | |
app_id: ah, | |
did: U(), | |
library_version: "pre", | |
app_state: c() | |
} | |
}); | |
M = true; | |
} | |
ae(); | |
return this; | |
}, | |
setMetadata: function(h) { | |
if (af) { | |
ak.metadata.username && f(h.username) && (h.username = ak.metadata.username); | |
ak.metadata = h; | |
N(); | |
} else { | |
throw Error("Crittercism.init call required before setMetadata"); | |
} | |
ae(); | |
return this; | |
}, | |
setValue: function(k, h) { | |
if (af) { | |
f(k) || (ak.metadata[k] = h); | |
N(); | |
} else { | |
throw Error("Crittercism.init call required before setValue"); | |
} | |
ae(); | |
return this; | |
}, | |
setUsername: function(h) { | |
if (af) { | |
ak.metadata.username = h; | |
} else { | |
throw Error("Crittercism.init call required before setUsername"); | |
} | |
ae(); | |
return this; | |
}, | |
logHandledException: function(k) { | |
if (Lowes.Constants.CRITTERCISM_ENABLED && (location.hostname.indexOf(".lowes.com") > -1 || Lowes.Constants.ALLOW_LOCAL_CRITTERCISM)) { | |
if (af) { | |
a(k); | |
var h = function() { | |
P = ac.length; | |
P > 0 && S(ac.pop()); | |
ab = P != 0 || g != 0 ? window.setTimeout(h, 2e4) : null; | |
g = P; | |
}; | |
ab == null && h(); | |
} else { | |
throw Error("Crittercism.init call required before logHandledException"); | |
} | |
ae(); | |
return this; | |
} | |
}, | |
leaveBreadcrumb: function(h) { | |
if (af) { | |
if (typeof h == "string") { | |
V.current_session.push([ h, b() ]); | |
aj() && (localStorage["Crittercism.breadcrumbs"] = JSON.stringify(V.current_session)); | |
} else { | |
throw Error("Invalid breadcrumb type; must be a string"); | |
} | |
} else { | |
throw Error("Crittercism.init call required before leaveBreadcrumb"); | |
} | |
ae(); | |
return this; | |
}, | |
_dumpState: function() { | |
return { | |
appId: ah, | |
appState: ak, | |
breadcrumbs: V, | |
communicationReady: aa, | |
crashesRecorded: O, | |
messageQueue: Y.slice(), | |
lastSeen: X(), | |
handledExceptionQueue: ac, | |
exceptionSendTimer: ab | |
}; | |
}, | |
_reset: function() { | |
M = aa = ah = false; | |
ak = {}; | |
Y = []; | |
}, | |
_crashesRecorded: function() { | |
return O; | |
}, | |
_resetQueues: function() { | |
Y = []; | |
ac = []; | |
} | |
}; | |
}(); | |
(function(a) { | |
a.Cookie = { | |
get: function(d) { | |
var h = d + "=", b = document.cookie.split(";"), f, g; | |
for (f = 0; f < b.length; f++) { | |
g = b[f]; | |
while (g.charAt(0) == " ") { | |
g = g.substring(1, g.length); | |
} | |
if (g.indexOf(h) == 0) { | |
return g.substring(h.length, g.length); | |
} | |
} | |
return null; | |
}, | |
set: function(d, f, g) { | |
var b = "", c; | |
if (g) { | |
c = new Date(); | |
c.setTime(c.getTime() + g * 24 * 60 * 60 * 1e3); | |
b = "; expires=" + c.toGMTString(); | |
} | |
document.cookie = d + "=" + f + b + "; path=/"; | |
}, | |
del: function(b) { | |
this.set(b, "", -1); | |
}, | |
enabled: function() { | |
var b = !!navigator.cookieEnabled; | |
if (typeof navigator.cookieEnabled == "undefined" && !b) { | |
document.cookie = "testcookie"; | |
b = document.cookie.indexOf("testcookie") != -1; | |
} | |
return b; | |
} | |
}; | |
window.Lowes = a; | |
})(window.Lowes || {}); | |
(function() { | |
var a = window.Lowes || {}; | |
a.Utils = { | |
urlQueryObject: function(d) { | |
d = d || window.location.href; | |
var g = d.indexOf("?") !== -1 ? d.split("?")[1] : d; | |
var c = {}; | |
var f; | |
var b; | |
g = g.indexOf("#") !== -1 ? g.split("#")[0] : g; | |
if (typeof g == "undefined") { | |
return c; | |
} | |
g = g.split("&"); | |
for (f = 0; f < g.length; f++) { | |
b = g[f].split("="); | |
c[b[0]] = b[1]; | |
} | |
return c; | |
}, | |
urlQueryString: function(b) { | |
var d = "", c; | |
b = b || {}; | |
for (c in b) { | |
d += "%@=%@&".$$(c, b[c]); | |
} | |
return d.substring(0, d.length - 1); | |
}, | |
formatCurrency: function(m) { | |
if (isNaN(m) || m === null) { | |
return "$0.00"; | |
} | |
var f = ",", l = m.toFixed(2), c = l.split(".", 2), h = c[1], g = [], k, b = ""; | |
m = parseInt(c[0], 10); | |
if (m < 0) { | |
b = "-"; | |
} | |
m = String(Math.abs(m)); | |
while (m.length > 3) { | |
k = m.substr(m.length - 3); | |
g.unshift(k); | |
m = m.substr(0, m.length - 3); | |
} | |
if (m.length) { | |
g.unshift(m); | |
} | |
m = g.join(f); | |
l = h.length < 1 ? m : m + "." + h; | |
return b + "$" + l; | |
}, | |
removeCurrency: function(b) { | |
var c = b.replace(/\$|,/g, ""); | |
if (isNaN(c) || c === null) { | |
return 0; | |
} | |
return c; | |
}, | |
clearForm: function(b) { | |
$(":input", b).each(function() { | |
var d = this.type; | |
var c = this.tagName.toLowerCase(); | |
if (d == "text" || d == "number" || d == "password" || c == "textarea") { | |
this.value = ""; | |
} else { | |
if (d == "checkbox" || d == "radio") { | |
this.checked = false; | |
} else { | |
if (c == "select") { | |
this.selectedIndex = -1; | |
} | |
} | |
} | |
}); | |
}, | |
formKeyHandler: function(g) { | |
var h = $(this), f = h.val().replace(/[^\d]/g, ""); | |
if (h.val() == "(" || g.which == 8) { | |
return; | |
} | |
if (!f.length) { | |
return h.val(""); | |
} | |
if (f.length < 3) { | |
return h.val("(" + f); | |
} | |
if (f.length == 3) { | |
return h.val("(" + f + ") "); | |
} | |
if (f.length > 3 && f.length < 6) { | |
var b = f.substring(0, 3); | |
var c = f.substring(3, f.length); | |
return h.val("(" + b + ") " + c); | |
} | |
if (f.length == 6) { | |
var b = f.substring(0, 3); | |
var c = f.substring(3, f.length); | |
return h.val("(" + b + ") " + c + "-"); | |
} | |
if (f.length > 6 && f.length <= 10) { | |
var b = f.substring(0, 3); | |
var d = f.substring(3, 6); | |
var c = f.substring(6, f.length); | |
return h.val("(" + b + ") " + d + "-" + c); | |
} | |
}, | |
processCmCallback: function() { | |
var c = $.parseJSON($.cookie("cmCallback")), b = c.attrs ? cmAttrCreator(c.attrs) : null; | |
switch (c.type) { | |
case "event": | |
cmCreateConversionEventTag(c.CID, c.CAT, c.CCID, 0, b); | |
if (c.CCID == "CUSTOMER SECURITY" && c.CAT == 2) { | |
var b = { | |
1: a.User.CurrentStore.state || "", | |
12: a.User.CurrentStore.shortName || "", | |
14: a.User.CurrentStore.number || "", | |
15: a.User.CurrentStore.zip || "" | |
}; | |
cmCreateRegistrationTag(a.User.backendId, a.User.email, a.User.CurrentStore.city, a.User.CurrentStore.state, a.User.CurrentStore.zip, cmAttrCreator(b)); | |
cmCreatePageElementTag(":mow:" + a.User.uuid, "DeviceId"); | |
} | |
break; | |
case "element": | |
cmCreatePageElementTag(c.EID, c.ECAT, b); | |
break; | |
case "registration": | |
cmCreateRegistrationTag(a.User.backendId, a.User.email, a.User.CurrentStore.city, a.User.CurrentStore.state, a.User.CurrentStore.zip, b); | |
cmCreatePageElementTag(":mow:" + a.User.uuid, "DeviceId"); | |
break; | |
case "conversion": | |
cmCreateConversionEventTag(c.CID, c.CAT, c.CCID, c.POINTS, b); | |
break; | |
case "piProduct": | |
var d = { | |
storeNumber: a.currentParams.store, | |
searchTerm: c.searchTerm, | |
selectedItem: c.itemNumber, | |
devId: ":mow:" + a.User.uuid, | |
keywordSearchIdx: c.index, | |
piDateTime: new Date().toISOString(), | |
langId: a.Constants.LANG, | |
storeId: a.Constants.STORE, | |
catalogId: a.Constants.CATALOG, | |
location: a.GPS.accurateLocation ? a.GPS.accurateLocation : "0,0" | |
}; | |
$.ajax({ | |
type: "POST", | |
dataType: "json", | |
data: d, | |
preventGlobalErrorHandling: true, | |
url: a.Constants.Urls.WAYFINDER_ANALYTICS | |
}); | |
break; | |
case "piSearchTerm": | |
var d = { | |
storeNumber: a.currentParams.storeNumber, | |
searchTerm: c.searchTerm, | |
selectedItem: c.selectedItem, | |
pageId: c.pageId, | |
devId: ":mow:" + a.User.uuid, | |
keywordSearchIdx: c.index, | |
piDateTime: new Date().toISOString(), | |
langId: a.Constants.LANG, | |
storeId: a.Constants.STORE, | |
catalogId: a.Constants.CATALOG, | |
location: a.GPS.accurateLocation ? a.GPS.accurateLocation : "0,0" | |
}; | |
$.ajax({ | |
type: "POST", | |
dataType: "json", | |
data: d, | |
preventGlobalErrorHandling: true, | |
url: a.Constants.Urls.SEARCH_ANALYTICS | |
}); | |
cmCreatePageElementTag("PRODUCT SEARCH", d.pageId, cmAttrCreator({ | |
1: d.selectedItem, | |
2: d.searchTerm, | |
3: "Yes" | |
})); | |
break; | |
} | |
$.cookie("cmCallback", null, { | |
path: "/" | |
}); | |
}, | |
login: function(d, b, c, f) { | |
if (a.User.CurrentStore && a.User.CurrentStore.number) { | |
d.zippedInStoreId = a.User.CurrentStore.number; | |
} | |
$.ajax({ | |
url: a.Constants.Urls.MYLOWES_AUTH, | |
type: "GET", | |
dataType: "json", | |
data: d, | |
beforeSend: function() { | |
var g, k, h; | |
a.ErrorHandlers = $.extend(a.ErrorHandlers, { | |
error_400: function(l) { | |
invalidParams = $.parseJSON(l.responseText).invalidParams; | |
if ($.inArray("userId", invalidParams) != -1) { | |
$("#email").addClass("error").after('<p class="error">' + a.Constants.Error_Messages.FORM_EMAIL + "</p>").next().hide().fadeIn("slow"); | |
} else { | |
g = a.Constants.Error_Messages.FORM_CURRENT_PASSWORD; | |
$(".error-block").text(g).fadeIn("slow"); | |
} | |
k = " ERROR INVALID EMAIL OR PASSWORD"; | |
$(window).scrollTop(1); | |
c(k); | |
}, | |
error_401: function(l) { | |
h = l.responseText.substr(l.responseText.indexOf('attemptsRemaining":') + 19, 1); | |
if (h === "5") { | |
g = a.Constants.Error_Messages.FORM_NOACCOUNT; | |
$(".error-block").text(g).fadeIn("slow"); | |
k = " ERROR UNKNOWN EMAIL"; | |
} else { | |
if (f) { | |
g = a.Constants.Error_Messages.MODAL_LOCK_WARN.replace("[n]", h); | |
$(".accountVerificationDialog").parent().css("top", "25px"); | |
$(".error-block").text(g).fadeIn("slow"); | |
k = " ERROR INVALID PASSWORD"; | |
} else { | |
g = a.Constants.Error_Messages.FORM_LOCK_WARN.replace("[n]", h); | |
$(".error-block").text(g).fadeIn("slow"); | |
k = " ERROR INVALID EMAIL OR PASSWORD"; | |
} | |
} | |
$(window).scrollTop(1); | |
c(k); | |
}, | |
error_405: function(l) { | |
g = a.Constants.Error_Messages.FORM_LOCK; | |
$(".error-block").text(g).fadeIn("slow"); | |
k = " ERROR ACCOUNT LOCKED"; | |
$(window).scrollTop(1); | |
c(k); | |
}, | |
error_403: function(l) { | |
g = a.Constants.Error_Messages.FORM_LOCK; | |
$(".error-block").text(g).fadeIn("slow"); | |
k = " ERROR ACCOUNT LOCKED"; | |
$(window).scrollTop(1); | |
c(k); | |
}, | |
error_500: function(l) { | |
g = a.Constants.Error_Messages.SIGNIN_500; | |
$(".error-block").text(g).fadeIn("slow"); | |
$(window).scrollTop(1); | |
}, | |
error: function(l) { | |
g = a.Constants.Error_Messages.FORM_UNKNOWN; | |
$(".error-block").text(g).fadeIn("slow"); | |
k = " GENERIC ERROR"; | |
$(window).scrollTop(1); | |
c(k); | |
} | |
}); | |
}, | |
complete: function(g) { | |
var h = g; | |
}, | |
success: function(h) { | |
if (h) { | |
var g = $.extend($.parseJSON($.cookie("user")), {}); | |
a.User.authToken1 = g.authToken1 = h.authToken1; | |
a.User.authToken2 = g.authToken2 = h.authToken2; | |
a.User.firstName = g.firstName = h.firstName; | |
a.User.lastName = g.lastName = h.lastName; | |
a.User.backendId = g.backendId = h.backendId; | |
if (g.email) { | |
a.User.email = g.email; | |
} else { | |
a.User.email = g.email = $("#email").val(); | |
} | |
if (h.homeProfile) { | |
a.User.homeProfileId = g.homeProfileId = h.homeProfile.id; | |
a.User.homeProfileName = g.homeProfileName = h.homeProfile.name; | |
} | |
$.cookie("user", JSON.stringify(g), { | |
path: "/" | |
}); | |
b(); | |
} | |
} | |
}); | |
}, | |
buildStoreCookie: function(c) { | |
var b = []; | |
b.push(c.STORENAME, c.KEY, c.DIST, c.ZIP, c.TYPE, "Y", c.ADDR, c.CITY, c.HOURS, c.PHONE, c.COMMFAX, "DE", JSON.stringify(c.StoreHours), c.STATE, c.COUNTRY, new Date().getTime(), c.LLAT, c.LLON, c.showInStockPageView, c.showProductAisleNumber, c.showProductBayNumber, c.showMetaProducts, c.showStoreMapView, c.showProductLocations); | |
return b.join("|").replace(/,/gi, "##"); | |
}, | |
validatePasswords: function(f, c, d, b) { | |
if (d && b) { | |
passwordVal = $(c).val(); | |
verifyPasswordVal = $(d).val(); | |
if (passwordVal.length >= 6 && verifyPasswordVal.length >= 6 && passwordVal.indexOf(" ") == -1 && verifyPasswordVal.indexOf(" ") == -1 && passwordVal.match(/[A-Za-z]+/g) && verifyPasswordVal.match(/[A-Za-z]+/g) && passwordVal.match(/\d+/g) && verifyPasswordVal.match(/\d+/g) && passwordVal == verifyPasswordVal) { | |
$(f).find(".submitBtn").removeAttr("disabled"); | |
if (b) { | |
return true; | |
} | |
} else { | |
$(f).find(".submitBtn").attr("disabled", "disabled"); | |
if (b) { | |
$(c).addClass("error"); | |
$(d).addClass("error").after('<p class="error">' + a.Constants.Error_Messages.FORM_PASSWORD_INVALID + "</p>").next().hide().fadeIn("slow"); | |
return false; | |
} | |
} | |
} else { | |
if (d) { | |
passwordVal = $(c).val(); | |
verifyPasswordVal = $(d).val(); | |
if (passwordVal.length >= 6 && verifyPasswordVal.length >= 6 && passwordVal == verifyPasswordVal) { | |
$(f).find(".submitBtn").removeAttr("disabled"); | |
} else { | |
$(f).find(".submitBtn").attr("disabled", "disabled"); | |
} | |
} else { | |
passwordVal = $(c).val(); | |
if (passwordVal.length >= 6 && passwordVal.indexOf(" ") == -1 && passwordVal.match(/[A-Za-z]+/g) && passwordVal.match(/\d+/g)) { | |
$(f).find(".submitBtn").removeAttr("disabled"); | |
if (b) { | |
return true; | |
} | |
} else { | |
$(f).find(".submitBtn").attr("disabled", "disabled"); | |
if ($(c).val().length > 0) { | |
$(c).addClass("error").after('<p class="error">' + a.Constants.Error_Messages.FORM_PASSWORD_INVALID + "</p>").next().hide().fadeIn("slow"); | |
} | |
if (b) { | |
return false; | |
} | |
} | |
} | |
} | |
}, | |
kVoid: function() { | |
return; | |
}, | |
kenshoo_conv: function(f, h, b, l, g) { | |
var k = "https:" == document.location.protocol ? "https" : "http"; | |
var d = k + "://47.xg4ken.com/media/getpx.php?track=1&id=62e92524-d1f0-4540-9046-49a6147d3235&type=" + f + "&val=" + h + "&orderId=" + b + "&valueCurrency=" + g + "&promoCode=" + l + "&ref=" + encodeURIComponent(document.referrer); | |
var c = new Image(1, 1); | |
c.src = d; | |
c.onload = function() { | |
kVoid(); | |
}; | |
}, | |
redirect: function(b) { | |
return location.href = b; | |
} | |
}; | |
window.Lowes = a; | |
})(); | |
(function() { | |
String.prototype.format = String.prototype.$$ = function() { | |
var b = arguments; | |
var a = 0; | |
return this.replace(/%@([0-9]+)?/g, function(c, d) { | |
d = d ? parseInt(d, 0) - 1 : a++; | |
c = b[d]; | |
return (c === null ? "(null)" : c === undefined ? "" : c).toString(); | |
}); | |
}; | |
String.prototype.words = String.prototype.w = function() { | |
return this.split(" "); | |
}; | |
String.prototype.ucFirstSentence = function() { | |
return this.substring(0, 1).toUpperCase() + this.substring(1, this.length); | |
}; | |
String.prototype.ucFirstWord = function() { | |
var b = this.w(); | |
var a = ""; | |
var c; | |
for (c in b) { | |
a += b[c].substring(0, 1).toUpperCase() + b[c].substring(1, b[c].length) + " "; | |
} | |
return a.substring(0, a.length - 1); | |
}; | |
String.prototype.deCamel = function() { | |
var a = this.replace(new RegExp("([A-Z])", "g"), typeof arguments[0] !== "undefined" ? arguments[0] : "_$1"); | |
return a.toLowerCase(); | |
}; | |
String.prototype.linkify = function() { | |
return function(b) { | |
var a = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi; | |
return !b.match(a) ? b.replace("www.", "http://").replace(a, "<a href='$1'>$1</a>") : b.replace(a, "<a href='$1'>$1</a>"); | |
}(this); | |
}; | |
String.prototype.addslashes = function() { | |
var a = this; | |
a = a.replace(/\'/g, "\\'"); | |
a = a.replace(/\"/g, '\\"'); | |
a = a.replace(/\\/g, "\\\\"); | |
a = a.replace(/\0/g, "\\0"); | |
return a; | |
}; | |
String.prototype.stripslashes = function() { | |
var a = this; | |
a = a.replace(/\\'/g, "'"); | |
a = a.replace(/\\"/g, '"'); | |
a = a.replace(/\\\\/g, "\\"); | |
a = a.replace(/\\0/g, "\x00"); | |
return a; | |
}; | |
String.prototype.trim = function(a) { | |
return this.replace(/(?:^\s+|\s+$)/g, ""); | |
}; | |
String.prototype.toTitleCase = function() { | |
var f = "a an and as at but by en for if in of on or the to v[.]? via vs[.]?".split(/\s/); | |
var o = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"; | |
var r = f.join("|"); | |
function g(k) { | |
return k.charAt(0).toUpperCase() + k.substring(1); | |
} | |
var w = [ [ /\b([A-Za-z][a-z.\']*)\b/g, function(m, k) { | |
if (/[A-Za-z][.][A-Za-z]/.test(k)) { | |
return k; | |
} | |
return g(k); | |
} ], [ new RegExp("\\b(" + r + ")\\b", "ig"), function(m, k) { | |
return k.toLowerCase(); | |
} ], [ new RegExp("^([" + o + "]*)(" + r + ")\\b", "ig"), function(y, m, k) { | |
return m + g(k); | |
} ], [ new RegExp("\\b(" + r + ")([" + o + "]*)$", "ig"), function(y, k, m) { | |
return g(k) + m; | |
} ] ]; | |
var c = [ [ / V(s?)\. /g, function(m, k) { | |
return " v" + k + ". "; | |
} ], [ /([\'\u2019])S\b/g, function(m, k) { | |
return k + "s"; | |
} ], [ /\b(AT&T|Q&A)\b/gi, function(m, k) { | |
return k.toUpperCase(); | |
} ], [ /\b([NEWS]\.)/gi, function(m, k) { | |
return k.toUpperCase(); | |
} ] ]; | |
var b = /([:.;?!][ ]|(?:[ ]|^)[\"\u201c])/g; | |
var n = []; | |
var l = []; | |
var d, a, p, h = 0, q; | |
var v = this.toLowerCase(); | |
var u, t, s; | |
while ((q = b.exec(v)) != null) { | |
n.push(v.substring(h, q.index), q[1]); | |
h = b.lastIndex; | |
} | |
n.push(v.substring(h)); | |
for (u = 0; u < n.length; u++) { | |
d = n[u]; | |
for (t = 0; t < w.length; t++) { | |
a = w[t][0]; | |
p = w[t][1]; | |
d = d.replace(a, p); | |
} | |
l.push(d); | |
} | |
var x = l.join(""); | |
for (s = 0; s < c.length; s++) { | |
a = c[s][0]; | |
p = c[s][1]; | |
x = x.replace(a, p); | |
} | |
return x; | |
}; | |
})(); | |
(function() { | |
var a = window.Lowes || {}; | |
a.User = { | |
init: function() { | |
var b = $.extend($.parseJSON($.cookie("user")), {}); | |
a.Cart = a.Cart || {}; | |
a.User.Details = $.parseJSON(unescape(a.Cookie.get("userDetails"))) || {}; | |
a.User.CurrentStore = a.User.getCurrentStore(); | |
a.User.authToken1 = b.authToken1; | |
a.User.authToken2 = b.authToken2 ? b.authToken2 : "Guest"; | |
a.User.orderId = b.orderId; | |
a.User.firstName = b.firstName; | |
a.User.lastName = b.lastName; | |
a.User.email = b.email; | |
a.User.backendId = b.backendId; | |
a.User.declinedGeolocation = b.declinedGeolocation; | |
a.User.homeProfileId = b.homeProfileId; | |
a.User.homeProfileName = b.homeProfileName; | |
a.User.isFromApps = a.Cookie.get("fromApps") || a.Utils.urlQueryObject().fromApps === "Y"; | |
a.User.HorizontalAccuracy = b.horizontalaccuracy; | |
if (!b.uuid) { | |
a.User.uuid = b.uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(g) { | |
var f = Math.random() * 16 | 0, d = g == "x" ? f : f & 3 | 8; | |
return d.toString(16); | |
}); | |
$.cookie("user", JSON.stringify(b), { | |
path: "/" | |
}); | |
} else { | |
a.User.uuid = b.uuid; | |
} | |
if ($.cookie("SHOPPINGCART")) { | |
a.Cart.count = parseInt($.cookie("SHOPPINGCART").split("%7C")[0]); | |
$("#cartCount").html(a.Cart.count).show(); | |
} else { | |
a.Cart.count = 0; | |
} | |
}, | |
isSignedIn: function() { | |
if (a.User.authToken2 == "Guest" || a.User.authToken2 == "") { | |
return false; | |
} else { | |
return true; | |
} | |
}, | |
isZippedIn: function() { | |
return !!a.Cookie.get("selectedStore1"); | |
}, | |
isInStore: function(c, g) { | |
var f = false, b = function(h) { | |
return h * (Math.PI / 180); | |
}, d = function(l, o, k, n) { | |
var m = 6371, q = b(k - l), h = b(n - o), s = Math.sin(q / 2) * Math.sin(q / 2) + Math.cos(b(l)) * Math.cos(b(k)) * Math.sin(h / 2) * Math.sin(h / 2), r = 2 * Math.atan2(Math.sqrt(s), Math.sqrt(1 - s)), p = m * r * 1e3; | |
if (p <= a.Constants.GEOFENCE) { | |
return true; | |
} else { | |
return false; | |
} | |
}; | |
geolocate(function(h) { | |
if (h && h != "") { | |
var k = h.split(","); | |
if (typeof c == "number" || typeof c == "string" && c.length == 4) { | |
a.StoreLocator.getClosestStores(c, 1, function(m) { | |
if (m && m.length) { | |
g(d(k[0], k[1], m[0].LLAT, m[0].LLON) ? c : null); | |
} else { | |
console.log("isInStore() - No store returned."); | |
} | |
}); | |
} else { | |
if (typeof c == "object" && c.length && c.length == 2) { | |
g(d(c[0], c[1], k[0], k[1]) ? c : null); | |
} else { | |
if (typeof c == "string" && c.indexOf(",") > -1) { | |
var l = c.split(","); | |
g(d(k[0], k[1], l[0].LLAT, l[0].LLON) ? c : null); | |
} else { | |
console.log("isInStore() - Incorrect storeparam passed."); | |
} | |
} | |
} | |
} else { | |
g("Unknown User Location"); | |
} | |
}); | |
}, | |
getCurrentStore: function() { | |
var c = {}; | |
if (this.isZippedIn()) { | |
var b = a.Cookie.get("selectedStore1").split("|"); | |
c.shortName = b[0]; | |
c.zip = b[3]; | |
c.number = b[1]; | |
c.address = b[6]; | |
c.city = b[7]; | |
c.hours = b[8]; | |
c.phone = b[9]; | |
c.fax = b[10]; | |
c.patchCode = b[11]; | |
c.storeHours = b[12]; | |
c.state = b[13]; | |
c.country = b[14]; | |
c.created = b[15]; | |
c.llat = b[16]; | |
c.llong = b[17]; | |
c.showInStockPageView = b[18] === "TRUE"; | |
c.showProductAisleNumber = b[19] === "TRUE"; | |
c.showProductBayNumber = b[20] === "TRUE"; | |
c.showProductDepartment = b[21] === "TRUE"; | |
c.showStoreMapView = b[22] === "TRUE"; | |
c.showProductLocations = b[23] === "TRUE"; | |
c.name = c.shortName; | |
c.postalAddress = c.address + " " + c.city + ", " + c.state; | |
} | |
return c; | |
}, | |
isHomeProfileUser: function() { | |
return a.User.homeProfileId ? true : false; | |
}, | |
device: function() { | |
var b = navigator.userAgent; | |
if (b.match(/Android/i)) { | |
return "android"; | |
} else { | |
if (b.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i)) { | |
return "ios"; | |
} else { | |
if (b.match(/Windows Phone/i)) { | |
return "windows"; | |
} else { | |
return "other"; | |
} | |
} | |
} | |
}, | |
version: function() { | |
agent = window.navigator.userAgent; | |
switch (a.User.device()) { | |
case "ios": | |
return window.Number(agent.substr(agent.indexOf("OS ") + 3, 3).replace("_", ".")); | |
case "android": | |
return window.Number(agent.substr(agent.indexOf("Android ") + 8, 3)); | |
case "windows": | |
return window.Number(agent.substr(agent.indexOf("Windows Phone ") + 14, 3)); | |
} | |
}, | |
storageAvailable: function() { | |
var c = false; | |
if ("localStorage" in window) { | |
try { | |
window.localStorage.setItem("isStorageAvailable", "true"); | |
c = true; | |
window.localStorage.removeItem("isStorageAvailable", "true"); | |
} catch (b) { | |
Crittercism.logHandledException(b); | |
} | |
} | |
return c; | |
} | |
}; | |
window.Lowes = a; | |
})(); | |
Lowes.User.init(); | |
(function(a, b) { | |
b.Dialog = { | |
masthead: a("#masthead"), | |
productSticky: a("#productSticky"), | |
init: function() { | |
b.Dialog.bind(); | |
}, | |
bind: function() { | |
a(document).on("click", ".modal", function(f) { | |
f.preventDefault(); | |
var h = a(this), c = h.data("view"), g = h.data("data") ? h.data("data") : {}, d = h.data("element"); | |
b.Dialog.modalRender(c, g, d); | |
}); | |
a(document).on("click", ".slide-panel", function(f) { | |
f.preventDefault(); | |
var h = a(this), d = h.data("view"), g = h.data("data") ? h.data("data") : {}, c = a(h.data("element")); | |
if (!c.length) { | |
c = a(a.View(d, g)); | |
a("body").append(c); | |
b.Dialog.slidePanelRender(c, true); | |
} else { | |
if (!c.hasClass("ui-dialog")) { | |
b.Dialog.slidePanelRender(c, true); | |
} else { | |
c.dialog("show"); | |
} | |
} | |
}); | |
}, | |
showOverlay: function(d) { | |
if (a(".contentOverlay").length == 0) { | |
var c; | |
if (a("html").hasClass("navPanel")) { | |
c = a("#topNav"); | |
} else { | |
if (a("#bodyContent").hasClass("InStoreMapPanel")) { | |
c = a("#bodyContent .top"); | |
} else { | |
if (a(".panel").is(":visible")) { | |
c = a(".panel:visible"); | |
if (c.parent().is(".ui-effects-wrapper")) { | |
c = c.parent(); | |
} | |
} else { | |
c = a("header"); | |
} | |
} | |
} | |
if (d) { | |
c.after(b.Constants.OVERLAY); | |
} else { | |
c.before(b.Constants.OVERLAY); | |
} | |
a(".contentOverlay").height(a(document).height()); | |
if (!d) { | |
a(".contentOverlay").on("click touchmove", function(f) { | |
b.Dialog.hideOverlay(); | |
a(document).trigger("contentOverlayClose"); | |
}); | |
} | |
} | |
}, | |
hideOverlay: function() { | |
if (a(".contentOverlay").length > 0) { | |
a(".contentOverlay").remove(); | |
a(".contentOverlay").off("click"); | |
} | |
}, | |
globalDialogOpen: function(c) { | |
if (c) { | |
a("body").on("touchstart touchmove", function(f) { | |
var d = a(f.target); | |
if (d.closest(".ui-dialog").hasClass("panel") || f.type == "touchstart" && d.is(b.Constants.MODAL_EXCEPTIONS) && d.closest(".ui-dialog").length) { | |
return; | |
} | |
f.stopPropagation(); | |
f.preventDefault(); | |
}); | |
} | |
b.Dialog.showOverlay(c); | |
}, | |
globalDialogClose: function() { | |
a("body").off("touchstart touchmove"); | |
b.Dialog.hideOverlay(); | |
}, | |
showLoadingMessage: function(c) { | |
if (b.Dialog.Loader) { | |
a(".loading p").html(c); | |
} else { | |
a("body").append('<div class="loading"><img src="/mobile/web/images/mobile/loading.gif"><p>' + c + "</p></div>"); | |
b.Dialog.Loader = a(".loading").dialog({ | |
modal: false, | |
closeText: "", | |
width: 200, | |
height: 200, | |
dialogClass: "loading", | |
open: function() { | |
b.Dialog.globalDialogOpen(true); | |
}, | |
close: function() { | |
a(this).dialog("destroy").remove(); | |
} | |
}); | |
} | |
}, | |
hideLoadingMessage: function() { | |
if (b.Dialog.Loader) { | |
b.Dialog.Loader.dialog("close"); | |
b.Dialog.Loader = null; | |
b.Dialog.globalDialogClose(); | |
} | |
}, | |
modalRender: function(c, f, d, g) { | |
if (a(d).length == 0) { | |
a("body").append(c, f, function() { | |
a(d).dialog({ | |
modal: false, | |
closeText: "l", | |
width: window.innerWidth - 40, | |
height: "auto", | |
dialogClass: "close-icon", | |
open: function() { | |
b.Dialog.globalDialogOpen(true); | |
a(window).on("orientationchange.uidialog", function() { | |
setTimeout(function() { | |
var h = window.innerWidth - 40; | |
a(d).closest(".ui-dialog").css({ | |
left: "20px" | |
}); | |
a(d).dialog("option", "width", h); | |
a(d).dialog("option", "position", "center"); | |
}, 500); | |
}); | |
}, | |
close: function() { | |
a(this).dialog("destroy").remove(); | |
b.Dialog.globalDialogClose(); | |
a(window).off("orientationchange.uidialog"); | |
} | |
}); | |
a(d + " .close-btn").on("click", function() { | |
a(d).dialog("close"); | |
}); | |
if (g) { | |
g(); | |
} | |
}); | |
} | |
}, | |
slidePanelRender: function(c, f) { | |
var d = function() { | |
b.Constants.OVERLAY = '<div class="contentOverlay"></div>'; | |
a(this).dialog("close").remove(); | |
a(window).off("orientationchange.panelorientation"); | |
}; | |
if (typeof f == "undefined") { | |
f = false; | |
} | |
return c.dialog({ | |
modal: false, | |
width: "100%", | |
dialogClass: "panel", | |
closeText: "", | |
autoOpen: f, | |
show: { | |
effect: "slide", | |
direction: "right", | |
duration: 200 | |
}, | |
hide: { | |
effect: "slide", | |
direction: "right", | |
duration: 200 | |
}, | |
focus: function() { | |
var h = window.innerHeight, g = a("html").css("height"), k = a(window).scrollTop(); | |
if (b.User.device() == "ios") { | |
h = h + 68; | |
} | |
a(".panel").css("min-height", h).css("top", 0); | |
setTimeout(function() { | |
window.scrollTo(0, 1); | |
}, 0); | |
a("body").children().not(a(this).dialog("widget")).hide(); | |
a(window).on("orientationchange.panelorientation", function() { | |
var l = window.innerHeight; | |
if (!this.windowScrollTop || this.windowScrollTop <= 0) { | |
window.scrollTo(0, 1); | |
} | |
if (b.User.device() == "ios") { | |
l = l + 68; | |
} | |
a(".panel:visible").css({ | |
"min-height": l, | |
top: 0 | |
}); | |
}); | |
}, | |
beforeClose: function() { | |
a("body").children().not(".ui-dialog, .confirmation, #critterframe").show(); | |
}, | |
close: f ? d : null | |
}); | |
}, | |
slidePanelRenderAndOpen: function(c) { | |
b.Dialog.slidePanelRender(c); | |
c.dialog("open"); | |
} | |
}; | |
})(jQuery, window.Lowes = window.Lowes || {}); | |
(function(d) { | |
var k = "/IntegrationServices", m = "/resources", l = k + m, g = "10151", c = "10702", f = "-1", b = "10051", a = "?langId=" + f + "&storeId=" + c + "&catalogId=" + b, h = "?langId=" + f + "&storeId=" + g + "&catalogId=" + b; | |
d.Constants = { | |
STORE: c, | |
OLD_STORE: g, | |
LANG: f || "-1", | |
CATALOG: b || "10051", | |
PROD_URLS: [ "m.lowes.com", "origin-m.lowes.com" ], | |
CRITTERCISM_ENABLED: true, | |
ALLOW_LOCAL_CRITTERCISM: false, | |
ALLOW_ACCURATE_LOCATION: false, | |
APP_VERSION: "2.1.8", | |
PAGE_VIEW_ATTRS: function() { | |
var o = {}; | |
if (d.User.isZippedIn()) { | |
var n = d.User.CurrentStore; | |
o = { | |
1: n.name || "", | |
2: n.state || "", | |
3: n.number || "", | |
4: n.zip || "", | |
5: n.city || "", | |
14: "Logged-" + (!!d.User.isSignedIn() ? "In" : "Out") | |
}; | |
} | |
return o; | |
}, | |
AJAX_TIMEOUT: 2 * 60 * 1e3, | |
LOCATION_TIMEOUT: 2e3, | |
GEOFENCE: 400, | |
Holidays: [ { | |
start: "2012-11-21T{closeTime}:00:00.000-05:00", | |
end: "2012-11-22T23:59:59.000-05:00" | |
}, { | |
start: "2012-12-24T{closeTime}:00:00.000-05:00", | |
end: "2012-12-25T23:59:59.000-05:00" | |
} ], | |
DAY_OPEN: { | |
0: "Sunday_Open", | |
1: "Monday_Open", | |
2: "Tuesday_Open", | |
3: "Wednesday_Open", | |
4: "Thursday_Open", | |
5: "Friday_Open", | |
6: "Saturday_Open" | |
}, | |
DAY_CLOSE: { | |
0: "Sunday_Close", | |
1: "Monday_Close", | |
2: "Tuesday_Close", | |
3: "Wednesday_Close", | |
4: "Thursday_Close", | |
5: "Friday_Close", | |
6: "Saturday_Close" | |
}, | |
SELECTED_STORE_EXP: 30, | |
SELECTED_STORE_REFRESH: 60 * 24 * 30, | |
APP_PROMPT_EXP: 7, | |
STORE_LOCATOR_LIST_SIZE: 10, | |
EMAIL_REG: /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/, | |
HIDDEN_CATALOGS: "Hidden Catalogs", | |
Error_Messages: { | |
FORM_EMAIL: "Please enter a valid email address.", | |
FORM_EMAIL_CONF: "Email addresses don't match. Please try again.", | |
FORM_NO_EMAIL: "Please enter an email address and password.", | |
FORM_LOCK: "Your account has been locked. Please try again in 30 minutes.", | |
FORM_LOCK_WARN: "The email address and password you provided were incorrect. For security reasons, your account will be locked after [n] more attempts.", | |
MODAL_LOCK_WARN: "The password you provided is incorrect. For security reasons, your account will be locked after [n] more attempts.", | |
FORM_VERIFY: "Passwords don't match. Please try again.", | |
FORM_PASSWORD: "Passwords must contain at least 6 characters, including 1 number. Please try again.", | |
FORM_PASSWORD_INVALID: "Your password doesn't appear to be valid.", | |
FORM_CURRENT_PASSWORD: "The password you provided is incorrect.", | |
FORM_CONFLICT: "An account for this email already exists. Please try again.", | |
FORM_ZIP: "Please enter a 5-digit ZIP Code.", | |
FORM_PHONE_NUM: "Please enter a 10-digit phone number.", | |
FORM_FIELD: "Please review the highlighted field(s) and try again.", | |
FORM_NOACCOUNT: "There's no account associated with this email address. Please try again.", | |
FORM_UNKNOWN: "An error has occured. Please try again later.", | |
FORM_CC_NUM: "Invalid card number. Please try again.", | |
FORM_CC_NICKNAME: "This nickname is already in use. Please try again.", | |
FORM_CC_EXP: "Please enter a valid expiration date.", | |
PREF_CC_EXP: "One or more of your credit cards has expired.", | |
FORM_GC_QTY_MORE: "Please enter a quantity of 1 or more.", | |
FORM_GC_QTY_LESS: "Please enter a quantity of 10 or less.", | |
FORM_GC_AMT: "Please enter an amount between $5 and $500.", | |
FORM_INVALID_PIN: "Please enter a valid PIN.", | |
FORM_ADDRESS_LINE_1: "Please review the Address Line 1 field and try again.", | |
FORM_ADDRESS_LINE_2: "Please review the Address Line 2 field and try again.", | |
FORM_ADDRESS_CITY: "Please review the City field and try again.", | |
FORM_ADDRESS_STATE: "Please review the State field and try again.", | |
FORM_ADDRESS_NICKNAME: "The address name you entered is already in use. Please try again.", | |
FORM_ADDRESS_INVALID_NICKNAME: "The address name you entered is invalid. Please try again.", | |
FORM_ADDRESS_INVALID_CITY: "The city you entered doesn't exist within your state or ZIP code. Please try again.", | |
FORM_ADDRESS_INVALID_ZIP: "The ZIP Code you entered doesn't match your state. Please try again.", | |
INVALID_ZIP_CODE: "Please enter a valid ZIP Code.", | |
INVALID_PROMO: "An invalid promotional code was entered. Please enter a valid code, then tap Apply Code.", | |
CUSTOMER_CARE_ERROR: "Invalid information was entered. Please review the fields below and try again.", | |
TRUCK_DELIVERY_MILEAGE_ERROR: "The address you entered is outside your selected store's delivery range. Please return to cart to update your delivery method.", | |
QTY_INIT_AVAIL: "Quantity for the item(s) cannot be fulfilled at this time. Please return to cart to enter a valid item quantity.", | |
BUYING_RESTRICTION: "This item has a buying restriction.", | |
GC_APPLICATION_RESTRICTION: "Gift Cards cannot be applied to the purchase of gift cards.", | |
GC_NEGATIVE_BALANCE: "The gift card amount exceeds the balance due. Please re-enter your gift card details to continue.", | |
GC_UNAVAILABLE: "We're unable to retrieve your Gift Card balance at this time. Please try again later.", | |
NO_SEARCH_INPUT: "Please enter a valid Search Term.", | |
PARCEL_NO_SHIP_METHOD_ERROR: "Parcel shipping is unavailable for this item. Please choose a different fulfillment method in Cart", | |
ZIPIN_PRIOR_SIGNIN: "Please enter a ZIP code to Sign in.", | |
SIGNIN_500: "We're sorry. We're unable to access your account at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
SIGNUP_500: "We're sorry. We're unable to create your account at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
FORGOT_PW_500: "We're unable to reset your password at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
MYLOWES_HOME_500: "We're unable to retrieve your MyLowe's card at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_ACCOUNTINFO_500: "We're unable to retrieve your name and / or password at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_ACCOUNTINFO_SAVE_500: "We're unable to save your name and / or password at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_CREDIT_500: "We're unable to retrieve your credit cards at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_CREDIT_ADD_500: "We're unable to add your credit card at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_CREDIT_EDIT_500: "We're unable to save your credit card at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_ADDR_500: "We're unable to retrieve your addresses at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_ADDR_ADD_500: "We're unable to add your address at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_ADDR_EDIT_500: "We're unable to edit your address at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_MYLOWES_CARD_500: "We're unable to retrieve your MyLowe's cards at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_MYLOWES_CARD_REG_500: "We're unable to register your MyLowe's card at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PREF_MYLOWES_CARD_REQ_500: "We're unable to request your MyLowe's card at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
LISTS_500: "We're unable to retrieve your MyLowe's Lists at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
LISTS_ALL_ITEMS_500: "We're unable to retrieve your saved items at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
HOMEPROFILE_SPACES_500: "We're unable to retrieve your MyLowe's Spaces at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
HOMEPROFILE_ITEMS_500: "We're unable to retrieve the items in your spaces at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>.", | |
PURCHASE_HISTORY_500: "We're unable to retrieve your purchases at this time. Please try again. If the problem persists, please call Customer Care at <a href='tel:18666782760'>1-866-678-2760</a>." | |
}, | |
Messages: { | |
LOADING: "Loading", | |
FILTERING: "Filtering Results ...", | |
SORTING: "Sorting Results ...", | |
SIGNING_IN: "Signing In ...", | |
SIGNING_OUT: "Signing Out ...", | |
REGISTERING: "Creating Account ...", | |
REGISTERING_CARD: "Registering Card ...", | |
VERIFY_ADDRESS: "Verifying Address ...", | |
SIGN_IN: "Sign In", | |
TRUCK_DELIVERY: "Truck Delivery", | |
PARCEL_SHIPPING: "Parcel Shipping", | |
IN_STORE_PICKUP: "In-Store Pickup", | |
PAYMENT: "Payment", | |
TRUCK_LEAD: "Arrives In Store By:", | |
PARCEL_LEAD: "Purchase Ships By:", | |
DELIVERY_ADDRESS: "Delivery Address", | |
SHIPPING_ADDRESS: "Shipping Address", | |
BILLING_ADDRESS: "Billing Address", | |
SHOPPING_CART: "Shopping Cart", | |
CONTINUE_PARCEL: "Continue to Parcel Shipping", | |
CONTINUE_PAYMENT: "Choose Your Payment Method", | |
CONTINUE_REVIEW: "Review Your Purchase", | |
PLACE_ORDER: "Place Your Purchase", | |
SUBMIT_ORDER: "Submitting Purchase", | |
ANDROID_APP_PROMPT: "Tap here to download the Lowe's Android App", | |
IPHONE_APP_PROMPT: "Tap here to download the Lowe's iPhone App", | |
LISTS_ANDROID_APP_PROMPT: "To add and edit lists, tap here to download the Lowe's Android App", | |
LISTS_IPHONE_APP_PROMPT: "To add and edit lists, tap here to download the Lowe's iPhone App", | |
HP_ANDROID_APP_PROMPT: "To add and edit spaces tap here to download the Lowe's Android App", | |
HP_IPHONE_APP_PROMPT: "To add and edit spaces tap here to download the Lowe's iPhone App", | |
HP_GENERIC_PROMPT: "To add and edit spaces, navigate to lowes.com", | |
SEARCH_PLACEHOLDER: "Enter City, State or Zip Code", | |
MYLOWES_NOCARDS: "With a registered MyLowe's card you can view your complete online and store purchase history all in one place.", | |
MYLOWES_REGISTER_CARD: "Register your MyLowe's card", | |
MYLOWES_REQUEST_CARD: "Request a card", | |
CHANGE_STORE_WARN: "If you change your shopping location, you may lose the items in your Cart.", | |
CHANGE_STORE_SEARCH_WARN: "This action will change your shopping location. You may lose items in your Cart.", | |
REFRESH: "Refreshing Page ...", | |
REMOVE_CART_ITEM: "Removing Item ...", | |
UPDATE_CART: "Updating Cart ...", | |
LOADING_CART: "Loading Cart ...", | |
ADDING_CART: "Adding to Cart ... ", | |
UPDATE_CC: "Updating Credit Card ...", | |
DELETE_CC: "Deleting Credit Card ...", | |
DEACTIVATE_CARD: "Deactivating Card ...", | |
SAVING: "Saving ...", | |
SEARCHING: "Searching ...", | |
REMOVING_PROMOTION: "Removing Promotion ...", | |
APPLYPROMOTION: "Applying promotion ...", | |
CUSTOMER_CARE_COMMENT: "\n***** Mobile - Mobile Optimized Web 1.0 ******\n", | |
SHIP_1: "3-7 Business Days", | |
SHIP_2: "2 Business Days", | |
SHIP_3: "Next Day Delivery", | |
APPLYING_GIFTCARD: "Applying Giftcard ...", | |
REMOVING_GIFTCARD: "Removing Giftcard ...", | |
SHARE_MESSAGE_EMAIL: "Have any experience or thoughts on this product that I found at Lowe's?", | |
SHARE_MESSAGE_TWITTER: "Anyone+have+any+experience+or+thoughts+on+this+product+that+I+found+at+Lowe's?+", | |
LOADING_SIGNIN: "Loading Signin Page ...", | |
LOADING_TRUCK: "Loading Truck Delivery Page ...", | |
LOADING_PARCEL: "Loading Parcel Delivery Page ...", | |
LOADING_PAYMENT: "Loading Payment Page ...", | |
LOADING_REVIEW: "Loading Review Page ...", | |
LOADING_ADD_CC: "Adding Credit Card ...", | |
LOADING_ADD_ADDRESS: "Adding Address ...", | |
LOADING_ACCOUNT_CHANGE: "Saving Account Changes ...", | |
LOADING_PURCHASES: "Loading Purchases ...", | |
PLACING_ORDER: "Placing Purchase ...", | |
LOADING_LISTS: "Loading Lists ...", | |
LOADING_CHANGE_STORE: "Changing Store ...", | |
CREATING_HOME_PROFILE: "Creating Home Profile ...", | |
LOADING_HOME_PROFILE: "Loading Home Profile ...", | |
LOADING_SPACE_DETAILS: "Loading Space Details ...", | |
LOADING_ALL_ITEMS: "Loading All Items ...", | |
LOADING_SHARING: "Sharing ...", | |
APPLYING_DISCOUNT: "Applying Discount ...", | |
CHANGING_PASSWORD: "Changing Password ...", | |
MIN_QTY: "This product is only sold in quantities of [n] or more.", | |
MUL_QTY: "This product is only sold in multiples of [n].", | |
MIN_MUL_QTY: "This product is only sold in quantities of [min] or more and multiples of [mul].", | |
SELLING_RESTRICTION: "Due to selling restrictions, one or more items aren't available for store pickup in your area. Please choose a different delivery method to continue.", | |
SELLING_RESTRICTION_FAILED: "Due to restrictions, one or more items could not be added to your cart. Please remove this item from your cart or change your store to continue.", | |
AGE_RESTRICTION: "Due to an age restriction, you must be at least 21 to order this item online and pick it up in the store. Please be prepared to show proper photo ID upon pickup.", | |
SHIPPING_RESTRICTION: "Due to restrictions, one or more items aren't available for delivery in your area. Please enter a new shipping address to continue.", | |
UNAVAILABLE_ITEM: "Product is currently unavailable online.", | |
POS_RESTRICTION: "Due to restrictions at your selected store, this item couldn't be added to your cart. Please remove this item from your cart or change your store to continue.", | |
PAINT_RESTRICTION: "Due to restrictions at your selected store, one or more items could not be added to your cart. Please remove this item from your cart or change your store to continue.", | |
MAP_UNAVAILABLE_MESSAGE: "We're sorry. We are unable to load the map at this time. Please try again." | |
}, | |
Urls: { | |
FACEBOOK_SHARE: "http://www.facebook.com/sharer/sharer.php?u=", | |
TWITTER_SHARE: "http://www.twitter.com/intent/tweet?text=", | |
ANDROID_LINK: "http://play.google.com/store/apps/details?id=com.lowes.android&hl=en", | |
IPHONE_LINK: "http://itunes.apple.com/us/app/lowes/id457954781", | |
HOME: "/home" + a, | |
CATEGORY: "/category" + a, | |
GIFT_CARD: "/giftcard" + a, | |
PRODUCT: "/product" + a, | |
PRODUCT_LIST_LINK: "/productlist" + a, | |
CART: "/cart" + a, | |
REVIEWS: "/reviews" + a, | |
FIND_STORE: "/storeLocator" + a, | |
MYLOWES_HOME: "/accounthome" + a, | |
MYLOWES_PREFS: "/preferences" + a, | |
MYLOWES_LOGIN: "/login" + a, | |
MYLOWES_REGISTRATION: "/register" + a, | |
MYLOWES_LISTS_LINK: "/lists" + a, | |
MYLOWES_HOME_PROFILE: "/homeprofile" + a, | |
CHECKOUT_SIGNIN: "/checkoutlogon" + a, | |
CHECKOUT_PARCEL: "/parcel" + a, | |
CHECKOUT_TRUCK: "/truck" + a, | |
CHECKOUT_PAYMENT: "/payment" + a, | |
CHECKOUT_REVIEW: "/orderreview" + a, | |
CHECKOUT_COMPLETE: "/orderconfirmation" + a, | |
STORE_LOCATOR: l + "/storeLocator/json/v2_0/stores" + a, | |
CART_LIST: l + "/user/cart/list/v1_0" + h, | |
CART_ITEM: l + "/user/cart/item/v1_0", | |
CART_ADDRESSES: l + "/user/cart/cartaddresslist/v1_0" + h, | |
CART_PROMO: l + "/user/cart/applypromocode/v1_0" + h, | |
CART_UPDATE: l + "/user/cart/item/UpdateItem/v1_0" + h, | |
CART_UPDATE_MULTI: l + "/user/cart/item/UpdateMultiItem/v1_0" + h, | |
CART_UPDATE_GIFTCARD: l + "/user/cart/item/UpdateGiftCardItem/v1_0" + h, | |
CART_GIFT_CARD: l + "/user/cart/giftcard/v1_0", | |
CHECKOUT_VALIDATION: l + "/checkout/validation/v1_0" + h, | |
CHECKOUT_VALIDATE_PARCEL: l + "/checkout/parcel/v1_0" + h, | |
CHECKOUT_PROCESS_ORDER: l + "/checkout/processorder/v1_0" + h, | |
CATALOG: l + "/catalog/json/v2_0", | |
HERO_ZONES: l + "/catalog/json/v2_0/businessrules/normalized/4294937087" + a, | |
MYLOWES_USER: l + "/mylowes/user/v1_0" + a, | |
MYLOWES_CARD: l + "/mylowes/user/mylowescard/list/v1_0" + a, | |
MYLOWES_CARD_REQUEST: l + "/mylowes/user/mylowescard/v1_0", | |
MYLOWES_AUTH: l + "/mylowes/user/authentication/v1_0", | |
MYLOWES_LOGOFF: l + "/mylowes/user/authentication/logoff/v1_0" + a, | |
MYLOWES_PASSWORD: l + "/mylowes/user/password/v1_0" + a, | |
MYLOWES_RESET_PASSWORD: l + "/mylowes/user/password/reset/v1_0" + a, | |
MYLOWES_LISTS: l + "/mylowes/user/folder/list/v1_0" + a, | |
MYLOWES_LISTS_SAVE: l + "/mylowes/product/folder/v1_0", | |
MYLOWES_LIST: l + "/mylowes/user/listitem/v1_0" + a, | |
MYLOWES_LIST_MOVE_ITEM: l + "/mylowes/user/listitem/move/v1_0" + a, | |
MYLOWES_HOUZZ_DETAIL: l + "/houzz/space/v1_0" + a, | |
MYLOWES_HP_LIST: l + "/mylowes/user/homeprofile/list/v1_0" + a, | |
MYLOWES_HP: l + "/mylowes/user/homeprofile/v1_0", | |
MYLOWES_HP_SAVE: l + "/mylowes/product/homeprofile/v1_0", | |
MYLOWES_HP_SPACES: l + "/mylowes/user/space/list/v1_0" + a, | |
MYLOWES_HP_SPACE: l + "/mylowes/user/space/v1_0" + a, | |
MYLOWES_HP_DIMENSIONS: l + "/mylowes/user/dimensions/all/v1_0" + a, | |
MYLOWES_HP_ITEMS: l + "/mylowes/user/homeprofile/list/all/v1_0" + a, | |
MYLOWES_HP_SPACE_ITEMS: l + "/mylowes/user/space/item/list/v1_0" + a, | |
MYLOWES_HP_SPACE_ITEM: l + "/mylowes/user/space/item/v1_0" + a, | |
MYLOWES_HP_PRODUCT_ITEM: l + "/mylowes/product/homeprofile/v1_0" + a, | |
MYLOWES_HP_MANAGE_ITEM: l + "/mylowes/user/itemSpace/v1_0" + a, | |
CREDIT_CARD: l + "/mylowes/user/creditcard/v1_0", | |
CREDIT_CARD_LIST: l + "/mylowes/user/creditcard/list/v1_0" + a, | |
GIFT_CARD_LIST: l + "/productList/json/v1_0/giftcards/4294625950" + a, | |
GIFT_CARD_BALANCE: l + "/giftCard/json/v1_0/enhancedBalance/", | |
ADDRESS: l + "/mylowes/user/address/v1_0", | |
ADDRESSES: l + "/mylowes/user/address/list/v1_0" + a, | |
ADDRESS_PRIMARY: l + "/mylowes/user/address/primary/v1_0", | |
PRODUCT_LIST: l + "/productList/json/v3_0", | |
PRODUCT_BY_ID: l + "/productList/json/v2_0/productByRecordID", | |
PRODUCT_BY_STORE: l + "/productList/json/v2_0/wayfindingProductSearch", | |
PRODUCT_AVAIL: l + "/storeLocator/json/v2_0/productAvailPill" + a, | |
PRODUCT_WINBUYER: l + "/winbuyer/json/v1_0" + a, | |
PRODUCT_QUESTIONS: l + "/productQuestionsAndAnswers/json/v1_0" + a, | |
SORT_OPTIONS: l + "/serviceUtil/v1_0/businessControlledSortOptions" + a, | |
REVIEWS_LIST: l + "/productReviews/json/v1_0" + a, | |
VALIDATE_ADDRESS: l + "/mylowes/user/address/validate/v1_0" + a, | |
PURCHASES: l + "/mylowes/user/order/list/v1_0" + a, | |
ONLINE_ORDER_DETAIL: l + "/mylowes/user/order/online/v1_0" + a, | |
INSTORE_ORDER_DETAIL: l + "/mylowes/user/order/instore/v1_0" + a, | |
CUSTOMER_CARE: l + "/mylowes/customerservice/contactus/v1_0", | |
PREDICTIVE_SEARCH: l + "/productLocator/predictiveSearch/v1_0" + a, | |
INSTORE_SERVICES: l + "/productLocator/pointsOfInterest/v1_0/", | |
INSTORE_METAPRODUCT: l + "/productLocator/pointsOfInterest", | |
WAYFINDER_ANALYTICS: l + "/productLocator/wayfindingKeywordMatchingProductSelected/v1_0", | |
SEARCH_ANALYTICS: l + "/productLocator/wayfindingAutoCompleteItemSelected/v1_0", | |
LCC_TERMS_XML: "/MContent/xml/SiteContent/lccPromotion.xml", | |
ErrorPages: { | |
ERROR_400: "/MobileGenericErrorView" + a, | |
ERROR_403: "/Mobile403ErrorView" + a, | |
ERROR_404: "/Mobile404ErrorView" + a, | |
ERROR_405: "/Mobile404ErrorView" + a, | |
ERROR_406: "/Mobile404ErrorView" + a, | |
ERROR_409: "/Mobile403ErrorView" + a, | |
ERROR_500: "/MobileMaintErrorView" + a, | |
ERROR_502: "/Mobile502ErrorView" + a, | |
ERROR_403: "/Mobile403ErrorView" + a, | |
ERROR_503: "/MobileGenericErrorView" + a, | |
ERROR_PAGE_GENERIC: "/template" + a + "&templateName=errorpage&businessControlledTemplateName=mobileGenericPageErrorPage", | |
PRIVATE_BROWSING: "/template" + a + "&templateName=errorpage&businessControlledTemplateName=mobilePrivateBrowsingErrorPage" | |
} | |
}, | |
FulfillmentMethods: { | |
STORE_PICKUP: [ 10052, 10053 ], | |
TRUCK_DELIVERY: [ 10054, 10055, 10056 ], | |
PARCEL_SHIP: [ 10057, 10058, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071 ] | |
}, | |
SHIP_1_ID: 10060, | |
SHIP_2_ID: 10061, | |
SHIP_3_ID: 10062, | |
OPTIONAL_ADDRESS_FIELDS: [ "companyName", "addressLine2", "instructions" ], | |
OPTIONAL_CC_FIELDS: [ "gcNum", "gcPIN", "gcButton", "password", "passwordVerify", "companyName", "addressLine2" ], | |
OPTIONAL_CC_FIELDS_AFTER_GC: [ "gcNum", "gcPIN", "gcButton", "password", "passwordVerify", "companyName", "addressLine2", "ccNickname", "ccType", "ccNum", "sCode", "ccExpMonth", "ccExpYear" ], | |
OVERLAY: '<div class="contentOverlay"></div>', | |
MODAL_EXCEPTIONS: "input, label,.btn,.ui-button-text,.mini-cart-remove,.map-modal,.accountVerificationDialog,input,button,a,.submitBtn,legend", | |
PROD_DETAIL_VIEW_MSGS: { | |
QUANTITY: "available", | |
CHECK_OTHER_STORES: "Check Other Stores", | |
PARCEL: { | |
AVAILABLE: "Parcel Shipping", | |
LEAD: "Ships by", | |
FACADE_LABEL: "Ship" | |
}, | |
STORE_PICKUP: { | |
AVAILABLE: "In-Store Pickup", | |
UNAVAILABLE: "In-Store Pickup", | |
LEAD: "Pick up in store", | |
FACADE_LABEL: "Store Pick-up" | |
}, | |
TRUCK_DELIVERY: { | |
AVAILABLE: "Truck Delivery", | |
UNAVAILABLE: "Truck Delivery", | |
LEAD: "Arrives In Store By", | |
FACADE_LABEL: "Truck Delivery" | |
} | |
}, | |
CheckoutErrorCodes: { | |
GenericCodeErrors: [ -1, -2, -7, -11, -13, -15, -16, -19, -20, -21, -22, -51, -52, -53, -54, -55, -56, -57, -59, -60, -61, -62, -63, -65, -66, -99, -207, -302 ], | |
GenericErrors: [ -58, -98, -911, "ERR501", "ERR502", "ERR503", "ERR504", "ERR505", "ERR506", "ERR507", "ERR508", "ERR509", "ERR999" ] | |
}, | |
PARTIAL_ERROR_SERVICES: [ { | |
url: "/productReviews", | |
msg: "Reviews" | |
}, { | |
url: "/winbuyer", | |
msg: "Product Comparisons" | |
}, { | |
url: "/creditcard/list", | |
msg: "Credit Cards" | |
}, { | |
url: "/address/list", | |
msg: "Addresses" | |
}, { | |
url: "/mylowescard/list", | |
msg: "MyLowe's Cards" | |
} ], | |
BITLY_URL: "http://api.bitly.com/v3/shorten?", | |
BITLY_USER: "lowesapp", | |
BITLY_KEY: "R_0eee24037eebfc40922d557649efd3f2", | |
WHITE_GOODS_FEE_NAME: "SC WHITE GOODS FEE", | |
CANADA_CODE: "CA", | |
CONVERSION_TRACKING_URL: "https://www.emjcd.com/tags/c?CID=1520885&TYPE=351154&CURRENCY=USD", | |
Statuses: { | |
"In process": "In process", | |
"Ready for Pickup": "In process", | |
"Out for Delivery": "In process", | |
Rescheduling: "In process", | |
"Ready for Delivery": "In process", | |
Multiple: "In process", | |
Complete: "Complete", | |
Cancelled: "Complete", | |
Delivered: "Complete", | |
Shipped: "Complete", | |
"Picked Up": "Complete", | |
"Return Received": "Complete", | |
"Return Processed": "Complete", | |
Returned: "Returned", | |
"Status Unavailable": "Unknown", | |
Unavailable: "Unknown", | |
Unknown: "Unknown" | |
}, | |
PREDICTIVE_SEARCH_LIMIT: 10, | |
SHOW_PREDICTIVE_SEARCH: true, | |
SHOW_IN_STOCK_VIEW: true, | |
SHOW_PRODUCT_AISLE_NUMBER: true, | |
SHOW_PRODUCT_BAY_NUMBER: true, | |
SHOW_PRODUCT_DEPARTMENT: true, | |
SHOW_PRODUCT_LOCATIONS: true, | |
SHOW_STORE_MAP_PAGE: true | |
}; | |
})(Lowes = window.Lowes || {}); | |
Handlebars.registerHelper("titleCase", function(a) { | |
return new Handlebars.SafeString(a.toTitleCase()); | |
}); | |
Handlebars.registerHelper("isSignedIn", function(a) { | |
return Lowes.User.isSignedIn() ? a.fn(this) : a.inverse(this); | |
}); | |
Handlebars.registerHelper("isHomeProfileUser", function(a) { | |
return Lowes.User.isHomeProfileUser() ? a.fn(this) : a.inverse(this); | |
}); | |
Handlebars.registerHelper("isCurrentStore", function(a) { | |
return this.KEY == Lowes.User.CurrentStore.number ? a.fn(this) : a.inverse(this); | |
}); | |
Handlebars.registerHelper("isCanada", function(a, b) { | |
return this.COUNTRY == Lowes.Constants.CANADA_CODE ? a.fn(this) : a.inverse(this); | |
}); | |
Handlebars.registerHelper("isEqual", function(c, b, a) { | |
if (c.toString() == b.toString()) { | |
return a.fn(this); | |
} else { | |
return a.inverse(this); | |
} | |
}); | |
Handlebars.registerHelper("ifNotEqual", function(c, b, a) { | |
if (c != b) { | |
return a.fn(this); | |
} else { | |
return a.inverse(this); | |
} | |
}); | |
Handlebars.registerHelper("isGreaterThan1", function(b, a) { | |
if (parseInt(b) > 1) { | |
return a.fn(this); | |
} | |
return a.inverse(this); | |
}); | |
Handlebars.registerHelper("isGreaterThan0", function(b, a) { | |
if (parseInt(b) > 0) { | |
return a.fn(this); | |
} | |
return a.inverse(this); | |
}); | |
Handlebars.registerHelper("getCurrentStore", function(a) { | |
if (Lowes.User.CurrentStore.number) { | |
return parseInt(Lowes.User.CurrentStore.number, 10); | |
} | |
return ""; | |
}); | |
Handlebars.registerHelper("getCurrentStoreName", function(a) { | |
if (Lowes.User.CurrentStore) { | |
return Lowes.User.CurrentStore.shortName; | |
} | |
return ""; | |
}); | |
Handlebars.registerHelper("getUserUUID", function(a) { | |
if (Lowes.User.uuid) { | |
return Lowes.User.uuid; | |
} | |
return ""; | |
}); | |
Handlebars.registerHelper("trimStore", function(a) { | |
return parseInt(a, 10); | |
}); | |
Handlebars.registerHelper("getCurrentStoreLatLong", function(a) { | |
if (Lowes.User.CurrentStore) { | |
return Lowes.User.CurrentStore.llat + "," + Lowes.User.CurrentStore.llong; | |
} | |
return ""; | |
}); | |
Handlebars.registerHelper("log", function(a) { | |
console.log(this); | |
}); | |
Handlebars.registerHelper("formatPhone", function(a) { | |
areaCode = a.substring(0, 3); | |
exchange = a.substring(3, 6); | |
number = a.substring(6, 10); | |
return "(" + areaCode + ") " + exchange + "-" + number; | |
}); | |
Handlebars.registerHelper("unFormatPhone", function(a) { | |
return a.replace("(", "").replace(")", "").replace(" ", "").replace("-", ""); | |
}); | |
Handlebars.registerHelper("round", function(a) { | |
return Math.round(a); | |
}); | |
Handlebars.registerHelper("lastLetterUpperCase", function(a) { | |
a = a.toTitleCase(); | |
newval = a.slice(0, -1) + a.substr(a.length - 1).toUpperCase(); | |
return new Handlebars.SafeString(newval); | |
}); | |
Handlebars.registerHelper("formatCurrency", function(a) { | |
floatVal = parseFloat(a); | |
if (floatVal < 0 && floatVal > -1) { | |
b = floatVal.toString(); | |
} else { | |
var b = Lowes.Utils.formatCurrency(floatVal); | |
if (b.indexOf("-") > -1) { | |
b = "-" + b.replace("-", ""); | |
} | |
} | |
return new Handlebars.SafeString(b); | |
}); | |
Handlebars.registerHelper("formatCurrencyNoSign", function(a) { | |
var b = Lowes.Utils.formatCurrency(parseFloat(a)); | |
if (b.indexOf("-") > -1) { | |
b = "-" + b.replace("-", ""); | |
} | |
if (b.indexOf("$") > -1) { | |
b = b.replace("$", ""); | |
} | |
return new Handlebars.SafeString(b); | |
}); | |
Handlebars.registerHelper("parseInt", function(a) { | |
return new Handlebars.SafeString(parseInt(a).toString()); | |
}); | |
Handlebars.registerHelper("if", function(b, a) { | |
var c = toString.call(b); | |
if (c === functionType) { | |
b = b.call(this); | |
} | |
if (!b || Handlebars.Utils.isEmpty(b) || b === "false") { | |
return a.inverse(this); | |
} else { | |
return a.fn(this); | |
} | |
}); | |
Handlebars.registerHelper("agnosticUrl", function(a) { | |
return a.replace(/(http|https):/gi, ""); | |
}); | |
Handlebars.registerHelper("getCurrentYear", function() { | |
return new Date().getFullYear(); | |
}); | |
Handlebars.registerHelper("formatDate", function(f) { | |
var d = f.split(/[- :T]/), c = new Date(d[0], d[1] - 1, d[2], d[3], d[4], d[5]), a = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"), b = ""; | |
b += a[c.getMonth()] + " "; | |
b += c.getDate() + ", "; | |
b += c.getFullYear(); | |
return b; | |
}); | |
Handlebars.registerHelper("formatDateShort", function(f) { | |
var d = f.split(/[- :]/), a = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"), c = new Date(d[7], a.indexOf(d[1]), d[2], d[3], d[4], d[5]), b = ""; | |
b += c.getMonth() + 1 + "/"; | |
b += c.getDate() + "/"; | |
b += c.getFullYear().toString().slice(2, 4); | |
return b; | |
}); | |
Handlebars.registerHelper("getPrimaryAddr", function(b, a) { | |
Lowes.Checkout.selectedAddress = b[0]; | |
$.each(b, function(c, d) { | |
if (d.isPrimary) { | |
Lowes.Checkout.selectedAddress = d; | |
return false; | |
} | |
}); | |
return a.fn(Lowes.Checkout.selectedAddress); | |
}); | |
Handlebars.registerHelper("keyValue", function(d, c) { | |
var a = "", b; | |
for (b in d) { | |
if (d.hasOwnProperty(b)) { | |
a += c({ | |
key: b, | |
value: d[b] | |
}); | |
} | |
} | |
return a; | |
}); | |
Handlebars.registerHelper("geolocationEnabled", function(a) { | |
return geolocationEnabled() ? a.fn(this) : a.inverse(this); | |
}); | |
Handlebars.registerHelper("showInStockPageView", function() { | |
return Lowes.BusinessPropertyUtils.showInStockPageView(); | |
}); | |
Handlebars.registerHelper("showProductAisleNumber", function() { | |
return Lowes.BusinessPropertyUtils.showProductAisleNumber(); | |
}); | |
Handlebars.registerHelper("showProductBayNumber", function() { | |
return Lowes.BusinessPropertyUtils.showProductBayNumber(); | |
}); | |
Handlebars.registerHelper("showProductDepartment", function() { | |
return Lowes.BusinessPropertyUtils.showProductDepartment(); | |
}); | |
Handlebars.registerHelper("showStoreMapView", function() { | |
return Lowes.BusinessPropertyUtils.showStoreMapView(); | |
}); | |
Handlebars.registerHelper("showStoreMapView_PerStore", function() { | |
if (Lowes.Constants.SHOW_STORE_MAP_PAGE) { | |
if (Lowes.User.isZippedIn() && Lowes.User.getCurrentStore().showStoreMapView) { | |
return true; | |
} | |
} | |
return false; | |
}); | |
Handlebars.registerHelper("showProductLocations", function() { | |
return Lowes.BusinessPropertyUtils.showProductLocations(); | |
}); | |
(function(g) { | |
function d(l, k) { | |
this.name = "AjaxError"; | |
this.message = l || ""; | |
this.fileName = k || ""; | |
} | |
d.prototype = new Error(); | |
d.prototype.constructor = d; | |
var c = $.cookie("NOERRORS"), f = { | |
error_400: function() { | |
if (c) { | |
return; | |
} | |
cmCreatePageviewTag("ERROR 400", "NETWORK ERROR", null, null, g.Constants.STORE, cmAttrCreator(g.Constants.PAGE_VIEW_ATTRS())); | |
location.href = g.Constants.Urls.ErrorPages.ERROR_400; | |
return; | |
}, | |
error_401: function() { | |
if (c) { | |
return; | |
} | |
g.Dialog.hideLoadingMessage(); | |
if (!$(".accountVerificationDialog").length) { | |
cmCreateConversionEventTag("ACCOUNT VERIFICATION", 1, "CUSTOMER SECURITY"); | |
g.Dialog.modalRender("AccountVerificationView", {}, ".accountVerificationDialog", function() { | |
$(".accountVerificationDialog").on("dialogclose", function() { | |
if (g.Cookie.get("fromApps") === "Y") { | |
var l = $.extend($.parseJSON($.cookie("user")), {}); | |
g.User.authToken1 = l.authToken1 = ""; | |
g.User.authToken2 = l.authToken2 = "Guest"; | |
$.cookie("user", JSON.stringify(l), { | |
path: "/" | |
}); | |
var k; | |
$.each(g.Utils.urlQueryObject(), function(m, n) { | |
if (m != "storeId" && m != "catalogId" && m != "langId") { | |
switch (m) { | |
case "authToken1": | |
k += "&" + m + "="; | |
break; | |
case "authToken2": | |
k += "&" + m + "=Guest"; | |
break; | |
default: | |
k += "&" + m + "=" + n; | |
} | |
} | |
}); | |
window.location = "http://" + location.host + g.Constants.Urls.CART + k; | |
} | |
}); | |
$("body").off("touchstart touchmove"); | |
$(".accountVerificationDialog").on("click", function(l) { | |
var k = $(l.srcElement); | |
if (k.is(".cancel")) { | |
l.preventDefault(); | |
$(".accountVerificationDialog").dialog("close"); | |
} else { | |
if (!k.is("#password-modal")) { | |
if (!$("#accountVerificationForm p.error").length > 0) { | |
g.Utils.validatePasswords("#accountVerificationForm", "#password-modal"); | |
} | |
} | |
} | |
}); | |
$("#password-modal").on("focus", function() { | |
$this = $(this); | |
$this.removeClass("error"); | |
$("#accountVerificationForm p.error").remove(); | |
}).on("keyup", function(k) { | |
if ($(this).val().length >= 6) { | |
$(".submitBtn").removeAttr("disabled"); | |
} else { | |
$(".submitBtn").attr("disabled", true); | |
} | |
}); | |
$("#accountVerificationForm").on("submit", function(l) { | |
if (g.Utils.validatePasswords("#accountVerificationForm", "#password-modal", "", true)) { | |
l.preventDefault(); | |
var k = { | |
userId: g.User.email, | |
password: $("#password-modal").val(), | |
getHomeProfile: true | |
}; | |
g.Utils.login(k, b, h, true); | |
} else { | |
l.preventDefault(); | |
} | |
}); | |
}); | |
} | |
return; | |
}, | |
error_403: function() { | |
if (c) { | |
return; | |
} | |
location.href = g.Constants.Urls.ErrorPages.ERROR_403; | |
return; | |
}, | |
error_404: function() { | |
if (c) { | |
return; | |
} | |
cmCreatePageviewTag("ERROR 404", "NETWORK ERROR", null, null, g.Constants.STORE, cmAttrCreator(g.Constants.PAGE_VIEW_ATTRS())); | |
location.href = g.Constants.Urls.ErrorPages.ERROR_404; | |
return; | |
}, | |
error_405: function() { | |
if (c) { | |
return; | |
} | |
location.href = g.Constants.Urls.ErrorPages.ERROR_405; | |
return; | |
}, | |
error_406: function() { | |
if (c) { | |
return; | |
} | |
location.href = g.Constants.Urls.ErrorPages.ERROR_406; | |
return; | |
}, | |
error_409: function() { | |
if (c) { | |
return; | |
} | |
location.href = g.Constants.Urls.ErrorPages.ERROR_409; | |
return; | |
}, | |
error_500: function(k) { | |
if (c) { | |
return; | |
} | |
if (a(k)) { | |
return; | |
} | |
cmCreatePageviewTag("MAINTENANCE PAGE", "NETWORK ERROR", null, null, g.Constants.STORE, cmAttrCreator(g.Constants.PAGE_VIEW_ATTRS())); | |
location.href = g.Constants.Urls.ErrorPages.ERROR_500; | |
return; | |
}, | |
error_502: function(k) { | |
if (c) { | |
return; | |
} | |
if (a(k)) { | |
return; | |
} | |
location.href = g.Constants.Urls.ErrorPages.ERROR_502; | |
return; | |
}, | |
error_503: function(k) { | |
if (c) { | |
return; | |
} | |
if (a(k)) { | |
return; | |
} | |
location.href = g.Constants.Urls.ErrorPages.ERROR_503; | |
return; | |
}, | |
error: function() { | |
g.Dialog.hideLoadingMessage(); | |
return; | |
} | |
}; | |
g.ErrorHandlers = f; | |
$.ajaxSetup({ | |
timeout: g.Constants.AJAX_TIMEOUT | |
}); | |
$(document).ajaxError(function(m, l, k, n) { | |
if (k && k.preventGlobalErrorHandling) { | |
return; | |
} | |
if (n == "timeout") { | |
g.ErrorHandlers.error_503(l); | |
} else { | |
switch (l.status) { | |
case 400: | |
g.ErrorHandlers.error_400(l); | |
break; | |
case 401: | |
g.ErrorHandlers.error_401(l); | |
break; | |
case 403: | |
g.ErrorHandlers.error_403(l); | |
break; | |
case 404: | |
g.ErrorHandlers.error_404(l); | |
break; | |
case 405: | |
g.ErrorHandlers.error_405(l); | |
break; | |
case 406: | |
g.ErrorHandlers.error_406(l); | |
break; | |
case 409: | |
g.ErrorHandlers.error_409(l); | |
break; | |
case 500: | |
if (g.Constants.CRITTERCISM_ENABLED && (location.hostname.indexOf(".lowes.com") > -1 || g.Constants.ALLOW_LOCAL_CRITTERCISM)) { | |
Crittercism.logHandledException(new d(l.status + ": " + k.type + " - " + k.url)); | |
} | |
g.ErrorHandlers.error_500(l); | |
break; | |
case 502: | |
if (g.Constants.CRITTERCISM_ENABLED && (location.hostname.indexOf(".lowes.com") > -1 || g.Constants.ALLOW_LOCAL_CRITTERCISM)) { | |
Crittercism.logHandledException(new d(l.status + ": " + k.type + " - " + k.url)); | |
} | |
g.ErrorHandlers.error_502(l); | |
break; | |
case 503: | |
if (g.Constants.CRITTERCISM_ENABLED && (location.hostname.indexOf(".lowes.com") > -1 || g.Constants.ALLOW_LOCAL_CRITTERCISM)) { | |
Crittercism.logHandledException(new d(l.status + ": " + k.type + " - " + k.url)); | |
} | |
g.ErrorHandlers.error_503(l); | |
break; | |
default: | |
if (g.Constants.CRITTERCISM_ENABLED && (location.hostname.indexOf(".lowes.com") > -1 || g.Constants.ALLOW_LOCAL_CRITTERCISM)) { | |
Crittercism.logHandledException(new d(l.status + " (Default): " + k.type + " - " + k.url)); | |
} | |
g.ErrorHandlers.error(l); | |
break; | |
} | |
} | |
}).ajaxStart(function(m, l, k) { | |
g.ErrorHandlers = f; | |
}); | |
function a(l) { | |
handledServices = g.Constants.PARTIAL_ERROR_SERVICES; | |
for (var k = 0; k < handledServices.length; k++) { | |
if (l.responseText && l.responseText.indexOf(handledServices[k].url) > -1) { | |
$("header").append("PartialErrorView", { | |
area: handledServices[k].msg | |
}); | |
return true; | |
} | |
} | |
return false; | |
} | |
function b() { | |
cmCallback = {}; | |
cmCallback.type = "event"; | |
cmCallback.CID = "ACCOUNT VERIFICATION"; | |
cmCallback.CAT = 2; | |
cmCallback.CCID = "CUSTOMER SECURITY"; | |
$.cookie("cmCallback", JSON.stringify(cmCallback), { | |
path: "/" | |
}); | |
if (g.Cookie.get("fromApps") === "Y") { | |
var k = ""; | |
$.each(g.Utils.urlQueryObject(), function(l, m) { | |
if (l != "storeId" && l != "catalogId" && l != "langId") { | |
switch (l) { | |
case "authToken1": | |
k += "&" + l + "=" + encodeURIComponent(g.User.authToken1); | |
break; | |
case "authToken2": | |
k += "&" + l + "=" + g.User.authToken2; | |
break; | |
default: | |
k += "&" + l + "=" + m; | |
} | |
} | |
}); | |
window.location = "http://" + location.host + g.Constants.Urls.CART + k; | |
} else { | |
location.reload(); | |
} | |
} | |
function h(k) { | |
cmCreateConversionEventTag("ACCOUNT VERIFICATION", 2, "CUSTOMER SECURITY", 0, cmAttrCreator({ | |
1: "Errors:" + k | |
})); | |
cmCreateRegistrationTag(g.User.backendId, g.User.email, g.User.CurrentStore.city, g.User.CurrentStore.state, g.User.CurrentStore.zip); | |
cmCreatePageElementTag(":mow:" + g.User.uuid, "DeviceId"); | |
} | |
})(Lowes || {}); | |
window.console = window.console || { | |
log: function() {} | |
}; | |
if (typeof Crittercism != "undefined" && Lowes.Constants.CRITTERCISM_ENABLED && (location.hostname.indexOf(".lowes.com") > -1 || Lowes.Constants.ALLOW_LOCAL_CRITTERCISM)) { | |
Crittercism.init({ | |
appId: location.hostname == "m.lowes.com" ? "5171660246b7c21457000003" : "5149caa246b7c205fc00000a", | |
appVersion: Lowes.Constants.APP_VERSION | |
}); | |
Crittercism.leaveBreadcrumb(location.pathname.replace("/", "").toTitleCase() + " Page Loaded - " + location.href); | |
} | |
$(document).ready(function() { | |
FSR = window.FSR || { | |
CPPS: { | |
set: function() {} | |
} | |
}; | |
}); | |
if (Lowes.User.storageAvailable()) { | |
if (!amplify.store("APP_VERSION") || amplify.store("APP_VERSION") !== Lowes.Constants.APP_VERSION) { | |
localStorage.clear(); | |
amplify.store("APP_VERSION", Lowes.Constants.APP_VERSION); | |
} | |
} | |
$.cookie("user", null, { | |
path: "/MobileWeb/web" | |
}); | |
function globalPostRender() { | |
var c = Lowes.User.device(), a = $("html"), h = $.cookie("fromApps"), b, f, d = navigator.userAgent; | |
if (c !== "other") { | |
f = Lowes.User.version(); | |
f = f ? f.toString().replace(".", "-") : "0"; | |
a.prop({ | |
id: c | |
}).addClass(function() { | |
var k = "_" + f; | |
if (d.indexOf("Chrome") > -1) { | |
k += " chrome"; | |
} else { | |
if (d.indexOf("Mobile Safari") > -1) { | |
k += " webkit"; | |
} | |
} | |
return k; | |
}); | |
} | |
if (!h || h == "N") { | |
$("header, footer").show(); | |
$(".social a").on("click", function() { | |
cmCreatePageElementTag($(this).data("cmtag"), "GLOBAL"); | |
}); | |
} else { | |
if (h && h == "Y") { | |
$("body").addClass("fromApps"); | |
} | |
} | |
if (h == "Y" && c == "ios" && parseFloat(d.split("iPhone OS")[1].slice(0, 2)) == 6) { | |
var g = true; | |
$(window).on("touchmove", function(k) { | |
g = false; | |
$(window).off("touchmove"); | |
}); | |
if (document.height <= window.outerHeight) { | |
document.body.style.height = window.outerHeight + 50 + "px"; | |
setTimeout(function() { | |
if (g) { | |
window.scrollTo(0, 1); | |
$(window).off("touchmove"); | |
} | |
}, 1e3); | |
} else { | |
setTimeout(function() { | |
if (g) { | |
window.scrollTo(0, 1); | |
$(window).off("touchmove"); | |
} | |
}, 0); | |
} | |
} | |
if (c == "android" && h == "Y") { | |
$(document).off("focus.androidLegacy", "input"); | |
} | |
$("#cartLocator").on("change keyup", function(k) { | |
k.preventDefault(); | |
}); | |
if (c == "ios") { | |
window.onpageshow = function(k) { | |
var l = $.cookie("selectedStore1") ? $.cookie("selectedStore1").split("|")[1] : null, m = $.cookie("user") && JSON.parse($.cookie("user")).authToken2 ? JSON.parse($.cookie("user")).authToken2 : "Guest"; | |
if (k.persisted && l && (l != Lowes.User.CurrentStore.number.toString() || m != Lowes.User.authToken2)) { | |
location.reload(); | |
} | |
}; | |
} | |
if ($("footer #footerLinks").length) { | |
$("footer #footerLinks").html($.View("FooterLinkSection", { | |
CurrentYear: new Date().getFullYear() | |
})).show(); | |
} | |
if ($.cookie("cmCallback")) { | |
Lowes.Utils.processCmCallback(); | |
} | |
Lowes.ZipPrompt.init(); | |
Lowes.Dialog.init(); | |
if (Lowes.User.device() === "android") { | |
$('input[pattern="[0-9]*"]').each(function() { | |
var m = $(this), l = m.attr("type"), k = parseInt(m.data("maxlength")); | |
if (!(k && k > 15 && d.indexOf("Chrome") > -1)) { | |
m.on("focus", function() { | |
this.type = "number"; | |
}).on("blur", function() { | |
this.type = l; | |
}); | |
} | |
}); | |
} | |
$(document).on("keypress", "input[data-maxlength]", function(n) { | |
var o = $(this), m = o.val().length, k = parseInt(o.data("maxlength")), l = n.which || n.keyCode; | |
if (k) { | |
if (m == k && !(l == 13 || l == 127)) { | |
n.preventDefault(); | |
} | |
} | |
}); | |
if (Lowes.NavPanel && (!Lowes.NavPanel.menu || !Lowes.NavPanel.menu.hasClass("initalized"))) { | |
Lowes.NavPanel.init(); | |
} | |
populateStore(); | |
Lowes.Dialog.hideLoadingMessage(); | |
$.ajax({ | |
url: "http://fast.fonts.com/t/1.css?apiType=css&projectid=adbe5680-6d67-4ed7-bca2-e61383d732f3", | |
type: "GET", | |
dataType: "json", | |
preventGlobalErrorHandling: true | |
}); | |
if (Lowes.User.storageAvailable() && localStorage.showChangedAlert) { | |
localStorage.removeItem("showChangedAlert"); | |
$("body").append("ChangeStoreConfirmation", {}, function() { | |
$(".storeConfirmation").fadeIn("slow").delay(2e3).fadeOut("slow", function() { | |
$(this).remove(); | |
}); | |
}); | |
} | |
if (!$(".InStoreMapPanel").length && !Lowes.SearchBar) { | |
Lowes.SearchBar = SearchBar().init($("#searchContainer")); | |
} | |
} | |
function populateStore() { | |
if (Lowes.Cookie.get("selectedStore1")) { | |
var a = new Date().getTime() - Lowes.User.getCurrentStore().created; | |
if (isNaN(a) || a > Lowes.Constants.SELECTED_STORE_REFRESH * 60 * 1e3) { | |
refreshSelectedStore1(function() { | |
if (location.pathname == "/" || document.URL.match(/\/home/) && !document.URL.match(/\/homeprofile/) || $.cookie("showPanel")) { | |
showStoreInfo(); | |
} | |
}); | |
} else { | |
if (location.pathname == "/" || document.URL.match(/\/home/) && !document.URL.match(/\/homeprofile/) || $.cookie("showPanel")) { | |
showStoreInfo(); | |
} | |
} | |
} else { | |
geolocate(function(b) { | |
if (b) { | |
cmCreatePageElementTag("Allowed GPS", "STORE LOCATOR"); | |
Lowes.StoreLocator.zipIn(b); | |
} else { | |
cmCreatePageElementTag("Not - Allowed GPS", "STORE LOCATOR"); | |
Lowes.ZipPrompt.enable(); | |
} | |
}); | |
} | |
} | |
function showStoreInfo() { | |
cmCreatePageElementTag("STORE ZIPPED IN", "Navigation Menu", cmAttrCreator(Lowes.Constants.PAGE_VIEW_ATTRS())); | |
cmCreatePageElementTag("STORE #: " + Lowes.User.CurrentStore.number, "GLOBAL"); | |
cmCreatePageElementTag("ZIP CODE:" + Lowes.User.CurrentStore.zip, "GLOBAL"); | |
parseStoreHours(); | |
if (location.pathname == "/" || (document.URL.match(/\/home/) || document.URL.match(/category/)) || $.cookie("showPanel") && Lowes.currentParams.view != "moreoptions" && Lowes.currentParams.view != "specs") { | |
$.cookie("showPanel", null, { | |
path: "/" | |
}); | |
$("#bodyContent").prepend($.View("CurrentStoreView", Lowes.User.CurrentStore)); | |
$("#currentStore").on("click", function() { | |
$.cookie("cmCallback", JSON.stringify({ | |
type: "element", | |
EID: "STORE DETAIL", | |
ECAT: "HOME PAGE" | |
}), { | |
path: "/" | |
}); | |
window.location = $(this).find("a").attr("href"); | |
}); | |
$("#currentStore .changeStore a").on("click", function() { | |
$.cookie("cmCallback", JSON.stringify({ | |
type: "element", | |
EID: "CHANGE STORE", | |
ECAT: "HOME PAGE" | |
}), { | |
path: "/" | |
}); | |
window.location = $(this).attr("href"); | |
}); | |
} | |
if (Lowes.Cookie.get("fromApps") != "Y") { | |
var a = $(".changeStoreHeader"); | |
if (a.length) { | |
a.html($.View("ChangeStoreHeaderTemplate", {})).show(); | |
} | |
} | |
} | |
$(document).on("scroll", function(a) { | |
if ($("body").hasClass("productDetail")) { | |
buttonOffset = $(".add-button").offset() || {}; | |
buttonHeight = $(".add-button").height(); | |
buttonTotal = buttonOffset.top + buttonHeight; | |
docTop = $(document).scrollTop(); | |
if (docTop > buttonTotal) { | |
$("#productSticky").removeClass("hide"); | |
} else { | |
$("#productSticky").addClass("hide"); | |
} | |
} | |
}); | |
$(function() { | |
$("#topNav").on("click", ".btn", function(b) { | |
b.preventDefault(); | |
var c = $(this); | |
$.cookie("cmCallback", JSON.stringify({ | |
type: "element", | |
EID: c.data("cmtag"), | |
ECAT: "Navigation Menu" | |
}), { | |
path: "/" | |
}); | |
switch (c.attr("id")) { | |
case "menuBtn": | |
cmCreatePageElementTag(c.data("cmtag"), "GLOBAL"); | |
break; | |
case "searchBtn": | |
if (Lowes.currentParams && Lowes.currentParams.nValue == "productsearch" && !$("body").hasClass("navMenu")) { | |
return; | |
} | |
cmCreateConversionEventTag("SEARCH LANDING", 1, "SEARCH"); | |
cmCreatePageElementTag(c.data("cmtag"), "GLOBAL"); | |
$("body").removeClass("navMenu"); | |
Lowes.SearchBar.toggle(); | |
break; | |
case "cartButton": | |
$.cookie("cmCallback", JSON.stringify({ | |
type: "element", | |
EID: "CART", | |
ECAT: "GLOBAL" | |
}), { | |
path: "/" | |
}); | |
var a = window.location.pathname.substring(window.location.pathname.lastIndexOf("/") + 1); | |
if (Lowes.User.storageAvailable() && a !== "cart") { | |
sessionStorage.removeItem("myCart"); | |
} | |
window.location = cartUrl = "http://" + location.host + c.attr("href"); | |
break; | |
case "accountButton": | |
$.cookie("cmCallback", JSON.stringify({ | |
type: "element", | |
EID: "MYLOWES", | |
ECAT: "GLOBAL" | |
}), { | |
path: "/" | |
}); | |
if (Lowes.User.storageAvailable()) { | |
sessionStorage.removeItem("myCart"); | |
} | |
window.location = Lowes.User.isSignedIn() ? Lowes.Constants.Urls.MYLOWES_HOME : Lowes.Constants.Urls.MYLOWES_LOGIN; | |
break; | |
} | |
}); | |
if (Lowes.User.isZippedIn() && $("#mastheadStore").length) { | |
if (!$("#bodyContent").hasClass("errorContent")) { | |
parseStoreHours(); | |
$("#mastheadStore").show().html("MastheadStoreSelection", Lowes.User.CurrentStore, function() { | |
$(document).on("click", ".changeStoreBtn", function(a) { | |
$.cookie("cmCallback", JSON.stringify({ | |
type: "element", | |
EID: "CHANGE ZIPPED IN STORE", | |
ECAT: "Navigation Menu" | |
}), { | |
path: "/" | |
}); | |
if (!$(this).closest("#instock-wrapper").length) { | |
window.location = Lowes.Constants.Urls.FIND_STORE; | |
} | |
}); | |
}); | |
} | |
} | |
$("#navPanel a.cmNav").on("click", function(a) { | |
a.preventDefault(); | |
var b = $(this); | |
$.cookie("cmCallback", JSON.stringify({ | |
type: "element", | |
EID: b.data("cmtag"), | |
ECAT: "Navigation Menu" | |
}), { | |
path: "/" | |
}); | |
window.location = b.attr("href"); | |
}); | |
}); | |
jQuery(document).ready(function(a) { | |
a("h2.collapsable a").on("click", function(b) { | |
$this = a(this).parent(); | |
$this.toggleClass("section-heading-collapsed"); | |
$this.find("i").toggleClass("icon-up-arrow").toggleClass("icon-down-arrow"); | |
$this.next("div.collapsable").toggle(); | |
b.preventDefault(); | |
}); | |
}); | |
(function(a) { | |
a.fn.collapsableList = function() { | |
var b = a(this); | |
if (this.length == 1 && this.hasClass("collapsable")) { | |
return b.on("click", ".section-heading.collapsable", function() { | |
var c = a(this); | |
c.toggleClass("collapsed"); | |
c.find("i").toggleClass("icon-up-arrow").toggleClass("icon-down-arrow"); | |
}); | |
} else { | |
return this.each(function() { | |
b.on("click", ".section-heading.collapsable", function() { | |
var c = a(this); | |
c.toggleClass("collapsed"); | |
c.find("i").toggleClass("icon-up-arrow").toggleClass("icon-down-arrow"); | |
}); | |
}); | |
} | |
}; | |
})(jQuery); | |
!function(c) { | |
var b = '[data-dismiss="alert"]', a = function(d) { | |
c(d).on("click", b, this.close); | |
}; | |
a.prototype = { | |
constructor: a, | |
close: function(k) { | |
var h = c(this), f = h.attr("data-target"), g; | |
if (!f) { | |
f = h.attr("href"); | |
f = f && f.replace(/.*(?=#[^\s]*$)/, ""); | |
} | |
g = c(f); | |
g.trigger("close"); | |
k && k.preventDefault(); | |
g.length || (g = h.hasClass("alert") ? h : h.parent()); | |
g.trigger("close").removeClass("in"); | |
function d() { | |
g.trigger("closed").remove(); | |
} | |
c.support.transition && g.hasClass("fade") ? g.on(c.support.transition.end, d) : d(); | |
} | |
}; | |
c.fn.alert = function(d) { | |
return this.each(function() { | |
var g = c(this), f = g.data("alert"); | |
if (!f) { | |
g.data("alert", f = new a(this)); | |
} | |
if (typeof d == "string") { | |
f[d].call(g); | |
} | |
}); | |
}; | |
c.fn.alert.Constructor = a; | |
c(function() { | |
c("body").on("click.alert.data-api", b, a.prototype.close); | |
}); | |
}(window.jQuery); | |
function getTarget(a) { | |
return $(a.attr("data-target") || (href = a.attr("href")) && href.replace(/.*(?=#[^\s]+$)/, "")); | |
} | |
(function(a) { | |
Lowes.getPrice = function(b) { | |
lowesPrice = Lowes.Utils.formatCurrency(b.Pricing.lowesPrice); | |
wasPrice = ""; | |
pctOff = ""; | |
if (b.Pricing.thruDate) { | |
split = b.Pricing.thruDate.split("-"); | |
thruDate = split[1] + "/" + split[2] + "/" + split[0]; | |
} else { | |
thruDate = ""; | |
} | |
if (b.Pricing.showMapPricing == true) { | |
mapPrice = Lowes.Utils.formatCurrency(b.Pricing.mapPrice); | |
return { | |
mapPrice: mapPrice, | |
thruDate: thruDate | |
}; | |
} else { | |
if (b.Pricing.wasPrice) { | |
if (b.Pricing.wasPrice > b.Pricing.lowesPrice) { | |
wasPrice = Lowes.Utils.formatCurrency(b.Pricing.wasPrice); | |
pctOff = Math.floor((b.Pricing.wasPrice - b.Pricing.lowesPrice) / b.Pricing.wasPrice * 100); | |
} | |
} | |
return { | |
lowesPrice: lowesPrice, | |
wasPrice: wasPrice, | |
pctOff: pctOff, | |
thruDate: thruDate | |
}; | |
} | |
}; | |
a(document).on("click", ".moreLink", function(b) { | |
b.preventDefault(); | |
a(this).parent().next("span").removeClass("hide").end().remove(); | |
}); | |
})(jQuery); | |
(function(E, m) { | |
var z = function(P, O) { | |
return new z.Instance(P, O || {}); | |
}; | |
z.defaults = { | |
stop_browser_behavior: { | |
userSelect: "none", | |
touchAction: "none", | |
touchCallout: "none", | |
contentZooming: "none", | |
userDrag: "none", | |
tapHighlightColor: "rgba(0,0,0,0)" | |
} | |
}; | |
z.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled; | |
z.HAS_TOUCHEVENTS = "ontouchstart" in E; | |
z.MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; | |
z.NO_MOUSEEVENTS = z.HAS_TOUCHEVENTS && navigator.userAgent.match(z.MOBILE_REGEX); | |
z.EVENT_TYPES = {}; | |
z.DIRECTION_DOWN = "down"; | |
z.DIRECTION_LEFT = "left"; | |
z.DIRECTION_UP = "up"; | |
z.DIRECTION_RIGHT = "right"; | |
z.POINTER_MOUSE = "mouse"; | |
z.POINTER_TOUCH = "touch"; | |
z.POINTER_PEN = "pen"; | |
z.EVENT_START = "start"; | |
z.EVENT_MOVE = "move"; | |
z.EVENT_END = "end"; | |
z.DOCUMENT = document; | |
z.plugins = {}; | |
z.READY = false; | |
function f() { | |
if (z.READY) { | |
return; | |
} | |
z.event.determineEventTypes(); | |
for (var O in z.gestures) { | |
if (z.gestures.hasOwnProperty(O)) { | |
z.detection.register(z.gestures[O]); | |
} | |
} | |
z.event.onTouch(z.DOCUMENT, z.EVENT_MOVE, z.detection.detect); | |
z.event.onTouch(z.DOCUMENT, z.EVENT_END, z.detection.detect); | |
z.READY = true; | |
} | |
z.Instance = function(Q, P) { | |
var O = this; | |
f(); | |
this.element = Q; | |
this.enabled = true; | |
this.options = z.utils.extend(z.utils.extend({}, z.defaults), P || {}); | |
if (this.options.stop_browser_behavior) { | |
z.utils.stopDefaultBrowserBehavior(this.element, this.options.stop_browser_behavior); | |
} | |
z.event.onTouch(Q, z.EVENT_START, function(R) { | |
if (O.enabled) { | |
z.detection.startDetect(O, R); | |
} | |
}); | |
return this; | |
}; | |
z.Instance.prototype = { | |
on: function F(P, Q) { | |
var R = P.split(" "); | |
for (var O = 0; O < R.length; O++) { | |
this.element.addEventListener(R[O], Q, false); | |
} | |
return this; | |
}, | |
off: function r(P, Q) { | |
var R = P.split(" "); | |
for (var O = 0; O < R.length; O++) { | |
this.element.removeEventListener(R[O], Q, false); | |
} | |
return this; | |
}, | |
trigger: function J(P, R) { | |
var Q = z.DOCUMENT.createEvent("Event"); | |
Q.initEvent(P, true, true); | |
Q.gesture = R; | |
var O = this.element; | |
if (z.utils.hasParent(R.target, O)) { | |
O = R.target; | |
} | |
O.dispatchEvent(Q); | |
return this; | |
}, | |
enable: function d(O) { | |
this.enabled = O; | |
return this; | |
} | |
}; | |
var I = null; | |
var o = false; | |
var k = false; | |
z.event = { | |
bindDom: function(Q, S, R) { | |
var P = S.split(" "); | |
for (var O = 0; O < P.length; O++) { | |
Q.addEventListener(P[O], R, false); | |
} | |
}, | |
onTouch: function C(Q, P, R) { | |
var O = this; | |
this.bindDom(Q, z.EVENT_TYPES[P], function S(U) { | |
var V = U.type.toLowerCase(); | |
if (V.match(/mouse/) && k) { | |
return; | |
} else { | |
if (V.match(/touch/) || V.match(/pointerdown/) || V.match(/mouse/) && U.which === 1) { | |
o = true; | |
} | |
} | |
if (V.match(/touch|pointer/)) { | |
k = true; | |
} | |
var T = 0; | |
if (o) { | |
if (z.HAS_POINTEREVENTS && P != z.EVENT_END) { | |
T = z.PointerEvent.updatePointer(P, U); | |
} else { | |
if (V.match(/touch/)) { | |
T = U.touches.length; | |
} else { | |
if (!k) { | |
T = V.match(/up/) ? 0 : 1; | |
} | |
} | |
} | |
if (T > 0 && P == z.EVENT_END) { | |
P = z.EVENT_MOVE; | |
} else { | |
if (!T) { | |
P = z.EVENT_END; | |
} | |
} | |
if (!T && I !== null) { | |
U = I; | |
} else { | |
I = U; | |
} | |
R.call(z.detection, O.collectEventData(Q, P, U)); | |
if (z.HAS_POINTEREVENTS && P == z.EVENT_END) { | |
T = z.PointerEvent.updatePointer(P, U); | |
} | |
} | |
if (!T) { | |
I = null; | |
o = false; | |
k = false; | |
z.PointerEvent.reset(); | |
} | |
}); | |
}, | |
determineEventTypes: function H() { | |
var O; | |
if (z.HAS_POINTEREVENTS) { | |
O = z.PointerEvent.getEvents(); | |
} else { | |
if (z.NO_MOUSEEVENTS) { | |
O = [ "touchstart", "touchmove", "touchend touchcancel" ]; | |
} else { | |
O = [ "touchstart mousedown", "touchmove mousemove", "touchend touchcancel mouseup" ]; | |
} | |
} | |
z.EVENT_TYPES[z.EVENT_START] = O[0]; | |
z.EVENT_TYPES[z.EVENT_MOVE] = O[1]; | |
z.EVENT_TYPES[z.EVENT_END] = O[2]; | |
}, | |
getTouchList: function v(O) { | |
if (z.HAS_POINTEREVENTS) { | |
return z.PointerEvent.getTouchList(); | |
} else { | |
if (O.touches) { | |
return O.touches; | |
} else { | |
return [ { | |
identifier: 1, | |
pageX: O.pageX, | |
pageY: O.pageY, | |
target: O.target | |
} ]; | |
} | |
} | |
}, | |
collectEventData: function M(Q, P, R) { | |
var S = this.getTouchList(R, P); | |
var O = z.POINTER_TOUCH; | |
if (R.type.match(/mouse/) || z.PointerEvent.matchType(z.POINTER_MOUSE, R)) { | |
O = z.POINTER_MOUSE; | |
} | |
return { | |
center: z.utils.getCenter(S), | |
timeStamp: new Date().getTime(), | |
target: R.target, | |
touches: S, | |
eventType: P, | |
pointerType: O, | |
srcEvent: R, | |
preventDefault: function() { | |
if (this.srcEvent.preventManipulation) { | |
this.srcEvent.preventManipulation(); | |
} | |
if (this.srcEvent.preventDefault) { | |
this.srcEvent.preventDefault(); | |
} | |
}, | |
stopPropagation: function() { | |
this.srcEvent.stopPropagation(); | |
}, | |
stopDetect: function() { | |
return z.detection.stopDetect(); | |
} | |
}; | |
} | |
}; | |
z.PointerEvent = { | |
pointers: {}, | |
getTouchList: function() { | |
var O = this; | |
var P = []; | |
Object.keys(O.pointers).sort().forEach(function(Q) { | |
P.push(O.pointers[Q]); | |
}); | |
return P; | |
}, | |
updatePointer: function(P, O) { | |
if (P == z.EVENT_END) { | |
this.pointers = {}; | |
} else { | |
O.identifier = O.pointerId; | |
this.pointers[O.pointerId] = O; | |
} | |
return Object.keys(this.pointers).length; | |
}, | |
matchType: function(O, Q) { | |
if (!Q.pointerType) { | |
return false; | |
} | |
var P = {}; | |
P[z.POINTER_MOUSE] = Q.pointerType == Q.MSPOINTER_TYPE_MOUSE || Q.pointerType == z.POINTER_MOUSE; | |
P[z.POINTER_TOUCH] = Q.pointerType == Q.MSPOINTER_TYPE_TOUCH || Q.pointerType == z.POINTER_TOUCH; | |
P[z.POINTER_PEN] = Q.pointerType == Q.MSPOINTER_TYPE_PEN || Q.pointerType == z.POINTER_PEN; | |
return P[O]; | |
}, | |
getEvents: function() { | |
return [ "pointerdown MSPointerDown", "pointermove MSPointerMove", "pointerup pointercancel MSPointerUp MSPointerCancel" ]; | |
}, | |
reset: function() { | |
this.pointers = {}; | |
} | |
}; | |
z.utils = { | |
extend: function l(O, Q, R) { | |
for (var P in Q) { | |
if (O[P] !== m && R) { | |
continue; | |
} | |
O[P] = Q[P]; | |
} | |
return O; | |
}, | |
hasParent: function(P, O) { | |
while (P) { | |
if (P == O) { | |
return true; | |
} | |
P = P.parentNode; | |
} | |
return false; | |
}, | |
getCenter: function A(R) { | |
var S = [], Q = []; | |
for (var P = 0, O = R.length; P < O; P++) { | |
S.push(R[P].pageX); | |
Q.push(R[P].pageY); | |
} | |
return { | |
pageX: (Math.min.apply(Math, S) + Math.max.apply(Math, S)) / 2, | |
pageY: (Math.min.apply(Math, Q) + Math.max.apply(Math, Q)) / 2 | |
}; | |
}, | |
getVelocity: function a(O, Q, P) { | |
return { | |
x: Math.abs(Q / O) || 0, | |
y: Math.abs(P / O) || 0 | |
}; | |
}, | |
getAngle: function q(Q, P) { | |
var R = P.pageY - Q.pageY, O = P.pageX - Q.pageX; | |
return Math.atan2(R, O) * 180 / Math.PI; | |
}, | |
getDirection: function n(Q, P) { | |
var O = Math.abs(Q.pageX - P.pageX), R = Math.abs(Q.pageY - P.pageY); | |
if (O >= R) { | |
return Q.pageX - P.pageX > 0 ? z.DIRECTION_LEFT : z.DIRECTION_RIGHT; | |
} else { | |
return Q.pageY - P.pageY > 0 ? z.DIRECTION_UP : z.DIRECTION_DOWN; | |
} | |
}, | |
getDistance: function p(Q, P) { | |
var O = P.pageX - Q.pageX, R = P.pageY - Q.pageY; | |
return Math.sqrt(O * O + R * R); | |
}, | |
getScale: function y(P, O) { | |
if (P.length >= 2 && O.length >= 2) { | |
return this.getDistance(O[0], O[1]) / this.getDistance(P[0], P[1]); | |
} | |
return 1; | |
}, | |
getRotation: function w(P, O) { | |
if (P.length >= 2 && O.length >= 2) { | |
return this.getAngle(O[1], O[0]) - this.getAngle(P[1], P[0]); | |
} | |
return 0; | |
}, | |
isVertical: function D(O) { | |
return O == z.DIRECTION_UP || O == z.DIRECTION_DOWN; | |
}, | |
stopDefaultBrowserBehavior: function c(Q, P) { | |
var T, S = [ "webkit", "khtml", "moz", "ms", "o", "" ]; | |
if (!P || !Q.style) { | |
return; | |
} | |
for (var O = 0; O < S.length; O++) { | |
for (var R in P) { | |
if (P.hasOwnProperty(R)) { | |
T = R; | |
if (S[O]) { | |
T = S[O] + T.substring(0, 1).toUpperCase() + T.substring(1); | |
} | |
Q.style[T] = P[R]; | |
} | |
} | |
} | |
if (P.userSelect == "none") { | |
Q.onselectstart = function() { | |
return false; | |
}; | |
} | |
} | |
}; | |
z.detection = { | |
gestures: [], | |
current: null, | |
previous: null, | |
stopped: false, | |
startDetect: function B(P, O) { | |
if (this.current) { | |
return; | |
} | |
this.stopped = false; | |
this.current = { | |
inst: P, | |
startEvent: z.utils.extend({}, O), | |
lastEvent: false, | |
name: "" | |
}; | |
this.detect(O); | |
}, | |
detect: function t(R) { | |
if (!this.current || this.stopped) { | |
return; | |
} | |
R = this.extendEventData(R); | |
var S = this.current.inst.options; | |
for (var Q = 0, O = this.gestures.length; Q < O; Q++) { | |
var P = this.gestures[Q]; | |
if (!this.stopped && S[P.name] !== false) { | |
if (P.handler.call(P, R, this.current.inst) === false) { | |
this.stopDetect(); | |
break; | |
} | |
} | |
} | |
if (this.current) { | |
this.current.lastEvent = R; | |
} | |
if (R.eventType == z.EVENT_END && !R.touches.length - 1) { | |
this.stopDetect(); | |
} | |
return R; | |
}, | |
stopDetect: function b() { | |
this.previous = z.utils.extend({}, this.current); | |
this.current = null; | |
this.stopped = true; | |
}, | |
extendEventData: function x(S) { | |
var T = this.current.startEvent; | |
if (T && (S.touches.length != T.touches.length || S.touches === T.touches)) { | |
T.touches = []; | |
for (var Q = 0, O = S.touches.length; Q < O; Q++) { | |
T.touches.push(z.utils.extend({}, S.touches[Q])); | |
} | |
} | |
var P = S.timeStamp - T.timeStamp, V = S.center.pageX - T.center.pageX, U = S.center.pageY - T.center.pageY, R = z.utils.getVelocity(P, V, U); | |
z.utils.extend(S, { | |
deltaTime: P, | |
deltaX: V, | |
deltaY: U, | |
velocityX: R.x, | |
velocityY: R.y, | |
distance: z.utils.getDistance(T.center, S.center), | |
angle: z.utils.getAngle(T.center, S.center), | |
direction: z.utils.getDirection(T.center, S.center), | |
scale: z.utils.getScale(T.touches, S.touches), | |
rotation: z.utils.getRotation(T.touches, S.touches), | |
startEvent: T | |
}); | |
return S; | |
}, | |
register: function g(P) { | |
var O = P.defaults || {}; | |
if (O[P.name] === m) { | |
O[P.name] = true; | |
} | |
z.utils.extend(z.defaults, O, true); | |
P.index = P.index || 1e3; | |
this.gestures.push(P); | |
this.gestures.sort(function(R, Q) { | |
if (R.index < Q.index) { | |
return -1; | |
} | |
if (R.index > Q.index) { | |
return 1; | |
} | |
return 0; | |
}); | |
return this.gestures; | |
} | |
}; | |
z.gestures = z.gestures || {}; | |
z.gestures.Hold = { | |
name: "hold", | |
index: 10, | |
defaults: { | |
hold_timeout: 500, | |
hold_threshold: 1 | |
}, | |
timer: null, | |
handler: function L(O, P) { | |
switch (O.eventType) { | |
case z.EVENT_START: | |
clearTimeout(this.timer); | |
z.detection.current.name = this.name; | |
this.timer = setTimeout(function() { | |
if (z.detection.current.name == "hold") { | |
P.trigger("hold", O); | |
} | |
}, P.options.hold_timeout); | |
break; | |
case z.EVENT_MOVE: | |
if (O.distance > P.options.hold_threshold) { | |
clearTimeout(this.timer); | |
} | |
break; | |
case z.EVENT_END: | |
clearTimeout(this.timer); | |
break; | |
} | |
} | |
}; | |
z.gestures.Tap = { | |
name: "tap", | |
index: 100, | |
defaults: { | |
tap_max_touchtime: 250, | |
tap_max_distance: 10, | |
tap_always: true, | |
doubletap_distance: 20, | |
doubletap_interval: 300 | |
}, | |
handler: function G(Q, R) { | |
if (Q.eventType == z.EVENT_END) { | |
var P = z.detection.previous, O = false; | |
if (Q.deltaTime > R.options.tap_max_touchtime || Q.distance > R.options.tap_max_distance) { | |
return; | |
} | |
if (P && P.name == "tap" && Q.timeStamp - P.lastEvent.timeStamp < R.options.doubletap_interval && Q.distance < R.options.doubletap_distance) { | |
R.trigger("doubletap", Q); | |
O = true; | |
} | |
if (!O || R.options.tap_always) { | |
z.detection.current.name = "tap"; | |
R.trigger(z.detection.current.name, Q); | |
} | |
} | |
} | |
}; | |
z.gestures.Swipe = { | |
name: "swipe", | |
index: 40, | |
defaults: { | |
swipe_max_touches: 1, | |
swipe_velocity: .7 | |
}, | |
handler: function N(O, P) { | |
if (O.eventType == z.EVENT_END) { | |
if (P.options.swipe_max_touches > 0 && O.touches.length > P.options.swipe_max_touches) { | |
return; | |
} | |
if (O.velocityX > P.options.swipe_velocity || O.velocityY > P.options.swipe_velocity) { | |
P.trigger(this.name, O); | |
P.trigger(this.name + O.direction, O); | |
} | |
} | |
} | |
}; | |
z.gestures.Drag = { | |
name: "drag", | |
index: 50, | |
defaults: { | |
drag_min_distance: 10, | |
drag_max_touches: 1, | |
drag_block_horizontal: false, | |
drag_block_vertical: false, | |
drag_lock_to_axis: false, | |
drag_lock_min_distance: 25 | |
}, | |
triggered: false, | |
handler: function u(O, P) { | |
if (z.detection.current.name != this.name && this.triggered) { | |
P.trigger(this.name + "end", O); | |
this.triggered = false; | |
return; | |
} | |
if (P.options.drag_max_touches > 0 && O.touches.length > P.options.drag_max_touches) { | |
return; | |
} | |
switch (O.eventType) { | |
case z.EVENT_START: | |
this.triggered = false; | |
break; | |
case z.EVENT_MOVE: | |
if (O.distance < P.options.drag_min_distance && z.detection.current.name != this.name) { | |
return; | |
} | |
z.detection.current.name = this.name; | |
if (z.detection.current.lastEvent.drag_locked_to_axis || P.options.drag_lock_to_axis && P.options.drag_lock_min_distance <= O.distance) { | |
O.drag_locked_to_axis = true; | |
} | |
var Q = z.detection.current.lastEvent.direction; | |
if (O.drag_locked_to_axis && Q !== O.direction) { | |
if (z.utils.isVertical(Q)) { | |
O.direction = O.deltaY < 0 ? z.DIRECTION_UP : z.DIRECTION_DOWN; | |
} else { | |
O.direction = O.deltaX < 0 ? z.DIRECTION_LEFT : z.DIRECTION_RIGHT; | |
} | |
} | |
if (!this.triggered) { | |
P.trigger(this.name + "start", O); | |
this.triggered = true; | |
} | |
P.trigger(this.name, O); | |
P.trigger(this.name + O.direction, O); | |
if (P.options.drag_block_vertical && z.utils.isVertical(O.direction) || P.options.drag_block_horizontal && !z.utils.isVertical(O.direction)) { | |
O.preventDefault(); | |
} | |
break; | |
case z.EVENT_END: | |
if (this.triggered) { | |
P.trigger(this.name + "end", O); | |
} | |
this.triggered = false; | |
break; | |
} | |
} | |
}; | |
z.gestures.Transform = { | |
name: "transform", | |
index: 45, | |
defaults: { | |
transform_min_scale: .01, | |
transform_min_rotation: 1, | |
transform_always_block: false | |
}, | |
triggered: false, | |
handler: function s(Q, R) { | |
if (z.detection.current.name != this.name && this.triggered) { | |
R.trigger(this.name + "end", Q); | |
this.triggered = false; | |
return; | |
} | |
if (Q.touches.length < 2) { | |
return; | |
} | |
if (R.options.transform_always_block) { | |
Q.preventDefault(); | |
} | |
switch (Q.eventType) { | |
case z.EVENT_START: | |
this.triggered = false; | |
break; | |
case z.EVENT_MOVE: | |
var P = Math.abs(1 - Q.scale); | |
var O = Math.abs(Q.rotation); | |
if (P < R.options.transform_min_scale && O < R.options.transform_min_rotation) { | |
return; | |
} | |
z.detection.current.name = this.name; | |
if (!this.triggered) { | |
R.trigger(this.name + "start", Q); | |
this.triggered = true; | |
} | |
R.trigger(this.name, Q); | |
if (O > R.options.transform_min_rotation) { | |
R.trigger("rotate", Q); | |
} | |
if (P > R.options.transform_min_scale) { | |
R.trigger("pinch", Q); | |
R.trigger("pinch" + (Q.scale < 1 ? "in" : "out"), Q); | |
} | |
break; | |
case z.EVENT_END: | |
if (this.triggered) { | |
R.trigger(this.name + "end", Q); | |
} | |
this.triggered = false; | |
break; | |
} | |
} | |
}; | |
z.gestures.Touch = { | |
name: "touch", | |
index: -Infinity, | |
defaults: { | |
prevent_default: false, | |
prevent_mouseevents: false | |
}, | |
handler: function h(O, P) { | |
if (P.options.prevent_mouseevents && O.pointerType == z.POINTER_MOUSE) { | |
O.stopDetect(); | |
return; | |
} | |
if (P.options.prevent_default) { | |
O.preventDefault(); | |
} | |
if (O.eventType == z.EVENT_START) { | |
P.trigger(this.name, O); | |
} | |
} | |
}; | |
z.gestures.Release = { | |
name: "release", | |
index: Infinity, | |
handler: function K(O, P) { | |
if (O.eventType == z.EVENT_END) { | |
P.trigger(this.name, O); | |
} | |
} | |
}; | |
if (typeof module === "object" && typeof module.exports === "object") { | |
module.exports = z; | |
} else { | |
E.Hammer = z; | |
if (typeof E.define === "function" && E.define.amd) { | |
E.define("hammer", [], function() { | |
return z; | |
}); | |
} | |
} | |
})(this); | |
(function(a, b) { | |
if (a === b) { | |
return; | |
} | |
Hammer.event.bindDom = function(c, f, d) { | |
a(c).on(f, function(g) { | |
var h = g.originalEvent || g; | |
if (h.pageX === b) { | |
h.pageX = g.pageX; | |
h.pageY = g.pageY; | |
} | |
if (!h.target) { | |
h.target = g.target; | |
} | |
if (h.which === b) { | |
h.which = h.button; | |
} | |
if (!h.preventDefault) { | |
h.preventDefault = g.preventDefault; | |
} | |
if (!h.stopPropagation) { | |
h.stopPropagation = g.stopPropagation; | |
} | |
d.call(this, h); | |
}); | |
}; | |
Hammer.Instance.prototype.on = function(c, d) { | |
return a(this.element).on(c, d); | |
}; | |
Hammer.Instance.prototype.off = function(c, d) { | |
return a(this.element).off(c, d); | |
}; | |
Hammer.Instance.prototype.trigger = function(c, f) { | |
var d = a(this.element); | |
if (d.has(f.target).length) { | |
d = a(f.target); | |
} | |
return d.trigger({ | |
type: c, | |
gesture: f | |
}); | |
}; | |
a.fn.hammer = function(c) { | |
return this.each(function() { | |
var d = a(this); | |
var f = d.data("hammer"); | |
if (!f) { | |
d.data("hammer", new Hammer(this, c || {})); | |
} else { | |
if (f && c) { | |
Hammer.utils.extend(f.options, c); | |
} | |
} | |
}); | |
}; | |
})(window.jQuery || window.Zepto); | |
var $$FSR = { | |
timestamp: "September 4, 2013 @ 2:44 PM", | |
version: "16.1.1", | |
build: "4", | |
enabled: true, | |
frames: false, | |
sessionreplay: true, | |
auto: true, | |
encode: true, | |
files: "/wcsstore/B2BDirectStorefrontAssetStore/mobile/web/js/foresee/", | |
id: "ooHPEq6j8lMgGxndybifdA==", | |
definition: "foresee-surveydef.js", | |
swf: "foresee-transport.swf", | |
worker: "foresee-worker.js", | |
embedded: false, | |
replay_id: "m.lowes.com", | |
attach: false, | |
renderer: "W3C", | |
layout: "CENTERFIXED", | |
triggerDelay: undefined, | |
heartbeat: true, | |
pools: [ { | |
path: ".", | |
sp: 100 | |
} ], | |
sites: [ { | |
path: /\w+-?\w+\.(com|org|edu|gov|net|co\.uk)/ | |
}, { | |
path: ".", | |
domain: "default" | |
} ], | |
storageOption: "cookie", | |
nameBackup: window.name | |
}; | |
var FSRCONFIG = {}; | |
if (typeof FSR == "undefined") { | |
(function(b) { | |
var a = void 0, f = !0, d = null, c = !1; | |
function g() { | |
return function() {}; | |
} | |
(function(au, L) { | |
function an(m, h) { | |
var n = aQ.controller; | |
n && n.execute(aQ.controller.Tb, aT._sd(), { | |
sp: m, | |
when: h, | |
qualifier: a, | |
invite: c | |
}); | |
} | |
function ap(m, h, n) { | |
setTimeout(function() { | |
m.we(h, n); | |
}, 1); | |
} | |
function q(h) { | |
return "trigger" == h && "v1" || "replay" == h && "v2"; | |
} | |
function ah(m, h) { | |
return (h ? m.get(h) : m) || ""; | |
} | |
function am(h) { | |
return [ h || aS.g(), (h || aS.g()).get("cp") || {} ]; | |
} | |
function aH(m, h) { | |
aT.k(m.length) || (m = [ m ]); | |
for (var n = 0; n < m.length; n++) { | |
ay(m[n], "click", h); | |
} | |
} | |
function aA(E, B, z) { | |
var y = []; | |
if (0 < E.length) { | |
var w, s, v, x, u = /[\.:\[#]/g, t = []; | |
if (u.test(E)) { | |
for (var u = E.match(u), p = 0; p < u.length; p++) { | |
var r = E.indexOf(u[p]); | |
t.push({ | |
$b: E.substr(0, r), | |
Ze: u[p] | |
}); | |
E = E.substr(r); | |
} | |
} | |
t.push({ | |
$b: E | |
}); | |
E = t[0].$b.toUpperCase(); | |
for (u = t.length - 1; 1 <= u; u--) { | |
p = t[u - 1].Ze, r = t[u].$b, "[" == p ? s = r.substr(1, r.length - 2).split("=") : "." == p ? v = r.substr(1) : "#" == p ? w = r.substr(1) : ":" == p && (x = parseInt(r.replace(":nth-child(", "").replace(")", ""))); | |
} | |
0 == E.length && (E = "*"); | |
if (z) { | |
for (u = B.childNodes.length - 1; 0 <= u; u--) { | |
z = B.childNodes[u], 1 == z.nodeType && ("*" == E || z.tagName == E) && y.push(z); | |
} | |
} else { | |
y = aq(B.getElementsByTagName(E)); | |
} | |
if (w || s || v || x) { | |
for (u = y.length - 1; 0 <= u; u--) { | |
(x && aT.ce(y[u]) != x - 1 || v && -1 == y[u].className.indexOf(v) || w && y[u].id != w || s && 0 > y[u].getAttribute(s[0]).indexOf(s[1])) && y.splice(u, 1); | |
} | |
} | |
} | |
return y; | |
} | |
function aq(m) { | |
var h = [], n, p = 0; | |
for (n = h.length = m.length; p < n; p++) { | |
h[p] = m[p]; | |
} | |
return h; | |
} | |
function ai(m) { | |
var h = aE.createElement("div"); | |
h.innerHTML = m; | |
m = h.firstChild; | |
m.parentNode.removeChild(m); | |
var h = aI.mc.Ed, n; | |
for (n in h) { | |
m[n] = h[n]; | |
} | |
return m; | |
} | |
function aU(w, v) { | |
var t, u, r, m, p = al, n, s = v[w]; | |
s && ("object" === typeof s && "function" === typeof s.toJSON) && (s = s.toJSON(w)); | |
"function" === typeof ag && (s = ag.call(v, w, s)); | |
switch (typeof s) { | |
case "string": | |
return k(s); | |
case "number": | |
return isFinite(s) ? "" + s : "null"; | |
case "boolean": | |
case "null": | |
return "" + s; | |
case "object": | |
if (!s) { | |
return "null"; | |
} | |
al += F; | |
n = []; | |
if ("[object Array]" === Object.prototype.toString.apply(s)) { | |
m = s.length; | |
for (t = 0; t < m; t += 1) { | |
n[t] = aU(t, s) || "null"; | |
} | |
r = 0 === n.length ? "[]" : al ? "[\n" + al + n.join(",\n" + al) + "\n" + p + "]" : "[" + n.join(",") + "]"; | |
al = p; | |
return r; | |
} | |
if (ag && "object" === typeof ag) { | |
m = ag.length; | |
for (t = 0; t < m; t += 1) { | |
"string" === typeof ag[t] && (u = ag[t], (r = aU(u, s)) && n.push(k(u) + (al ? ": " : ":") + r)); | |
} | |
} else { | |
for (u in s) { | |
Object.prototype.hasOwnProperty.call(s, u) && (r = aU(u, s)) && n.push(k(u) + (al ? ": " : ":") + r); | |
} | |
} | |
r = 0 === n.length ? "{}" : al ? "{\n" + al + n.join(",\n" + al) + "\n" + p + "}" : "{" + n.join(",") + "}"; | |
al = p; | |
return r; | |
} | |
} | |
function k(h) { | |
aw.lastIndex = 0; | |
return aw.test(h) ? '"' + h.replace(aw, function(m) { | |
var n = V[m]; | |
return "string" === typeof n ? n : "\\u" + ("0000" + m.charCodeAt(0).toString(16)).slice(-4); | |
}) + '"' : '"' + h + '"'; | |
} | |
function aK(m, h) { | |
var n = [], p; | |
for (p in m) { | |
m.hasOwnProperty(p) && (n[p] = h(m[p])); | |
} | |
return n; | |
} | |
var aT = {}, aP = aP = au, aE = aP.document; | |
aT.Va = 864e5; | |
aT.ka = !!aE.attachEvent; | |
var C = Object.prototype.hasOwnProperty, ad = [], A = c, M, ad = [], A = c; | |
aT.k = function(h) { | |
return d !== h && a !== h; | |
}; | |
aT.be = function(m) { | |
for (var h = m.length - 1; 0 <= h; h--) { | |
for (var n = h - 1; 0 <= n; n--) { | |
m[n] == m[h] && m.splice(h, 1); | |
} | |
} | |
return m; | |
}; | |
aT.ce = function(m) { | |
for (var h = m.parentNode.childNodes, n, p = count = 0; (n = h.item(p++)) && n != m; ) { | |
1 == n.nodeType && count++; | |
} | |
return count; | |
}; | |
aT.H = function(h) { | |
return "[object Array]" == Object.prototype.toString.call(h); | |
}; | |
aT.cc = function(m) { | |
if (m) { | |
if (m.length) { | |
for (var h = m.length - 1; 0 <= h; h--) { | |
m[h] = d; | |
} | |
} | |
for (var n in m) { | |
if (h = typeof m[n], "function" == h || "object" == h) { | |
m[n] = d; | |
} | |
} | |
} | |
}; | |
aT.M = function(h) { | |
return "function" == typeof h; | |
}; | |
aT.se = function(h) { | |
return "object" == typeof h; | |
}; | |
aT.trim = function(h) { | |
return h.toString().replace(/\s+/g, " ").replace(/^\s+|\s+$/g, ""); | |
}; | |
aT.Af = function(m) { | |
var h = m.getAttribute ? m.getAttribute("id") : m.id; | |
h && !aT.Df(h) && (h = m.attributes.id.value); | |
return h; | |
}; | |
aT.de = function(h) { | |
return h.toString().replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1"); | |
}; | |
aT.z = function() { | |
var p = arguments, m = p[0] || {}, u = 1, t = p.length, s, n, r; | |
"object" !== typeof m && !aT.M(m) && (m = {}); | |
t === u && (m = this, --u); | |
for (;u < t; u++) { | |
if ((s = p[u]) != d) { | |
for (n in s) { | |
r = s[n], m !== r && r !== a && (m[n] = r); | |
} | |
} | |
} | |
return m; | |
}; | |
aT.W = g(); | |
aT.now = function() { | |
return +new Date(); | |
}; | |
aT.shift = function(h) { | |
return h.splice(0, 1)[0]; | |
}; | |
aT.yc = function(m, h) { | |
for (var n in h) { | |
if (h[n] === m) { | |
return n; | |
} | |
} | |
return -1; | |
}; | |
aT.ya = function() { | |
return aE.location.protocol; | |
}; | |
aT.Cf = function(m, h) { | |
return -1 != aT.yc(m, h); | |
}; | |
aT.wa = function(h) { | |
return aE.getElementById(h); | |
}; | |
aT.Cb = function(n, h, s) { | |
for (var r = n.split("."), h = h[aT.shift(r)], p = s, m; h != d && 0 < r.length; ) { | |
h = h[aT.shift(r)]; | |
} | |
if (h) { | |
for (r = n.split("."); r.length && (m = aT.shift(r)); ) { | |
p = p[m] ? p[m] : p[m] = {}; | |
} | |
r = n.split("."); | |
for (p = s; r.length && (m = aT.shift(r)); ) { | |
0 < r.length ? p = p[m] : p[m] = h; | |
} | |
} | |
}; | |
aT.K = function() { | |
return aE.location.href; | |
}; | |
aT.ab = function(h) { | |
return encodeURIComponent(h); | |
}; | |
aT.V = function(h) { | |
return decodeURIComponent(h); | |
}; | |
aT.Fb = function() { | |
return aE.referrer; | |
}; | |
aT.Pb = {}; | |
aT.ib = function(p, m, v) { | |
var p = p + "?build=" + aQ.build, v = v || aT.W, u = aE.createElement(m); | |
if (!(m = "script" === m)) { | |
u.rel = "stylesheet"; | |
} | |
u.type = m ? "text/javascript" : "text/css"; | |
m && (aT.ka ? u.onreadystatechange = function() { | |
("loaded" == this.readyState || "complete" == this.readyState) && v("ok"); | |
} : u.onload = function() { | |
v("ok"); | |
}, u.onerror = function() { | |
v("error"); | |
}); | |
u[m ? "src" : "href"] = 0 == aT.yc("//", p) ? aT.ya() + p : p; | |
p = aE.getElementsByTagName("head")[0] || aE.documentElement; | |
m ? p.appendChild(u) : m || (aT.Pb[u.href] ? u = aT.Pb[u.href] : (aT.Pb[u.href] = u, | |
p.appendChild(u))); | |
if (!m) { | |
var s, n; | |
"sheet" in u ? (s = "sheet", n = "cssRules") : (s = "styleSheet", n = "rules"); | |
var r = setInterval(function() { | |
try { | |
if (u[s] && u[s][n].length) { | |
clearInterval(r); | |
clearTimeout(t); | |
v(f, u); | |
} | |
} catch (h) {} finally {} | |
}, 10), t = setTimeout(function() { | |
clearInterval(r); | |
clearTimeout(t); | |
v(c, u); | |
}, 2500); | |
} | |
}; | |
aT.Pa = function(m, h, n) { | |
n || (n = aP); | |
n = n.document; | |
n = n.readyState; | |
h = h || 1; | |
if (aT.M(m) && (m = function(r, p) { | |
return function() { | |
setTimeout(function(s) { | |
return function() { | |
s.call(aT.Bb); | |
s = d; | |
}; | |
}(r), p); | |
r = d; | |
}; | |
}(m, h), n && ("complete" == n || "loaded" == n))) { | |
A = f; | |
for (ad.push(m); m = aT.shift(ad); ) { | |
m && m.call(aT.Bb); | |
} | |
return; | |
} | |
if (!A && aT.M(m)) { | |
ad.push(m); | |
} else { | |
if (A && aT.M(m)) { | |
m.call(aT.Bb); | |
} else { | |
if (!aT.M(m)) { | |
for (A = f; 0 < ad.length; ) { | |
(m = aT.shift(ad)) && m.call(aT.Bb); | |
} | |
} | |
} | |
} | |
m = n = n = n = d; | |
}; | |
aE.addEventListener ? M = function() { | |
-1 < "complete,loaded".indexOf(aE.readyState) && (aE.removeEventListener("readystatechange", M, c), | |
aT.Pa(d)); | |
} : aT.ka && (M = function() { | |
-1 < "complete,loaded".indexOf(aE.readyState) && (aE.detachEvent("onreadystatechange", M), | |
aT.Pa(d)); | |
}); | |
c || (aE.addEventListener ? (aE.addEventListener("readystatechange", M, c), aE.addEventListener("DOMContentLoaded", aT.Pa, c)) : aT.ka && aE.attachEvent("onreadystatechange", M)); | |
aT.match = function(J) { | |
for (var G = [ [ "urls", aT.K() ], [ "referrers", aT.Fb() ], [ "userAgents", aP.navigator.userAgent ], [ "browsers", { | |
name: aJ.q.name, | |
version: aJ.q.ha | |
} ] ], B = 0; B < G.length; B++) { | |
for (var z = G[B], y = J[z[0]] || [], v = 0; v < y.length; v++) { | |
var x = y[v]; | |
if (aT.se(z[1])) { | |
if (aT.V(z[1].name.toLowerCase()).match(x.name.toLowerCase()) && (!x.version || z[1].version == x.version)) { | |
return f; | |
} | |
} else { | |
if (aT.V(z[1]).match(x)) { | |
return f; | |
} | |
} | |
} | |
} | |
y = J.cookies || []; | |
for (B = 0; B < y.length; B++) { | |
z = y[B]; | |
if (G = aS.l.S(z.name)) { | |
if (!z.operator || z.operator == "eq") { | |
if (G.match(z.value || ".")) { | |
return f; | |
} | |
} else { | |
if ((z.operator || z.operator == "neq") && G.match(z.value) == d) { | |
return f; | |
} | |
} | |
} | |
} | |
B = aS.Ya("fsr.ipo", aS.bb("fsr.ipo")); | |
if (J = J.variables) { | |
z = 0; | |
for (y = J.length; z < y; z++) { | |
G = J[z].name; | |
v = J[z].value; | |
if (!(G == aN.ipexclude && B.get("value") == 1)) { | |
if (!aT.H(G)) { | |
G = [ G ]; | |
v = [ v ]; | |
} | |
for (var w, x = f, u = 0, t = G.length, I = v.length; u < t && u < I; u++) { | |
try { | |
w = new Function("return " + G[u])(); | |
aT.k(w) || (w = ""); | |
} catch (p) { | |
w = ""; | |
} | |
var r; | |
J: { | |
r = w; | |
var E = v[u]; | |
aT.H(E) || (E = [ E ]); | |
for (var n = 0, K = E.length; n < K; n++) { | |
if ((r + "").match(E[n])) { | |
r = f; | |
break J; | |
} | |
} | |
r = c; | |
} | |
if (!r) { | |
x = c; | |
break; | |
} | |
} | |
if (x) { | |
return f; | |
} | |
} | |
} | |
} | |
return c; | |
}; | |
aT.startTime = aT.now(); | |
var aN = {}, aQ = aT.z({ | |
replay_id: "sitecom", | |
site: { | |
domain: "site.com" | |
}, | |
renderer: "W3C", | |
layout: "", | |
swf_files: "/" | |
}, L || {}); | |
aT.Qb = function() { | |
for (var p = {}, m = arguments, v = 0, u = m.length; v < u; v++) { | |
var s = m[v]; | |
if (aT.gb(s)) { | |
for (var n in s) { | |
var r = s[n], t = p[n]; | |
p[n] = t && aT.gb(r) && aT.gb(t) ? aT.Qb(t, r) : aT.dc(r); | |
} | |
} | |
} | |
return p; | |
}; | |
aT.dc = function(m) { | |
var h; | |
if (aT.gb(m)) { | |
h = {}; | |
for (var p in m) { | |
h[p] = aT.dc(m[p]); | |
} | |
} else { | |
if (aT.H(m)) { | |
h = []; | |
p = 0; | |
for (var n = m.length; p < n; p++) { | |
h[p] = aT.dc(m[p]); | |
} | |
} else { | |
h = m; | |
} | |
} | |
return h; | |
}; | |
aT.gb = function(m) { | |
if (!m || (Object.prototype.toString.call(m) !== "[object Object]" || m.nodeType || m.setInterval) || m.constructor && !C.call(m, "constructor") && !C.call(m.constructor.prototype, "isPrototypeOf")) { | |
return c; | |
} | |
for (var h in m) {} | |
return h === a || C.call(m, h) || !C.call(m, h) && C.call(Object.prototype, h); | |
}; | |
aT.Eb = function() { | |
ad = aQ = d; | |
aT = aP = aP.FSR = d; | |
}; | |
aT.Bf = function(m) { | |
var h = aT.now(), n; | |
do { | |
n = aT.now(); | |
} while (n - h < m); | |
}; | |
if (aT.k(aP.FSRCONFIG)) { | |
var aB = aP.FSRCONFIG; | |
aB.surveydefs && (aT.surveydefs = aB.surveydefs, aB.surveydefs = d); | |
aB.properties && (aT.properties = aB.properties, aB.properties = d); | |
} | |
aP.FSR = aT; | |
aP.FSR.opts = aQ; | |
aP.FSR.prop = aN; | |
aT.Z = {}; | |
aT.Z.xd = {}; | |
var aF = aT.Z.xd; | |
aT.Z.Bd = {}; | |
var aO = aT.Z.Bd; | |
aO.ge = function() { | |
for (var m = aJ.yb.replace(/[\s\\\/\.\(\);:]/gim, ""), h = "", p = aT.now() + "", n = 0; n < m.length - 1; n = n + m.length / 7) { | |
h = h + Number(m.charCodeAt(Math.round(n)) % 16).toString(16); | |
} | |
h.length > 7 && (h = h.substr(h.length - 7)); | |
return h + "-" + m.length + p.substr(p.length - 6) + "-xxxx-xxxx-xxxxx".replace(/[xy]/g, function(s) { | |
var r = Math.random() * 16 | 0; | |
return (s == "x" ? r : r & 3 | 8).toString(16); | |
}); | |
}; | |
aO.Ca = function() { | |
return 0 + Math.random() * 100; | |
}; | |
aO.gf = function(p, m) { | |
var t = aP.document.createElement("a"); | |
t.href = aP.location.href; | |
var u = t.hostname, s = t.protocol; | |
t.href = p; | |
var n = t.hostname || u, r = t.protocol.indexOf("http") == 0 ? t.protocol : s; | |
t.href = m; | |
s = t.protocol.indexOf("http") == 0 ? t.protocol : s; | |
return n.toLowerCase() == (t.hostname || u).toLowerCase() && r.toLowerCase() == s.toLowerCase(); | |
}; | |
aO.N = function(m, h, r) { | |
var p = ""; | |
if (m) { | |
for (var n in m) { | |
p = p + ((p.length != 0 ? "&" : "") + (h ? h + "[" + n + "]" : n) + "=" + (r ? m[n] : aT.ab(m[n]))); | |
} | |
} | |
return p; | |
}; | |
aO.hash = function(h) { | |
h = h.split("_"); | |
return h[0] * 3 + 1357 + "" + (h[1] * 9 + 58); | |
}; | |
aO.ne = function(m) { | |
var h = 0, n = ""; | |
if (m.length == 0) { | |
return h; | |
} | |
for (aC = 0; aC < m.length; aC++) { | |
n = m.charCodeAt(aC); | |
h = (h << 5) - h + n; | |
h = h & h; | |
} | |
return h; | |
}; | |
aO.Tc = function(h) { | |
h = h.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); | |
h = RegExp("[\\?&+]" + h + "=([^&#]*)").exec(aT.K()); | |
return h == d ? c : h[1]; | |
}; | |
aO.na = function(m, h, n) { | |
return m[h] || m[n]; | |
}; | |
aO.Nb = function(h) { | |
h = h.replace(/[^0-9]/g, ""); | |
return h.length == 10 || h[0] == "1" && h.length == 11; | |
}; | |
aO.Mb = function(h) { | |
return h.match(/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,6})+$/) != d; | |
}; | |
for (var ao = {}, o = [ "onload", "onerror", "onabort" ], aC = 0; aC < o.length; aC++) { | |
ao[o[aC]] = function() { | |
this.jb(arguments.callee.oe == 0 ? 1 : 0); | |
this.nb = c; | |
}, ao[o[aC]].oe = aC; | |
} | |
aF.L = function(m, h) { | |
this.options = aT.z({}, m); | |
this.nb = c; | |
this.event = h; | |
this.gc = 0; | |
return this; | |
}; | |
aF.L.prototype.jb = function(m, h) { | |
if (this.nb) { | |
this.nb = c; | |
this.status = m; | |
switch (m) { | |
case 1: | |
(this.options.onSuccess || aT.W)(h); | |
break; | |
case 0: | |
this.event ? this.jf() : (this.options.onFailure || aT.W)(h); | |
break; | |
case -1: | |
(this.options.onError || aT.W)(h); | |
} | |
} | |
}; | |
aF.L.prototype.jf = function() { | |
if (this.gc < 3) { | |
this.sc(); | |
} else { | |
this.onFailure(); | |
} | |
}; | |
aF.L.prototype.vc = function(n, h) { | |
this.nb = f; | |
for (var s = aO.N(aT.z(n, { | |
uid: aT.now() | |
})), s = aT.ya() + "//" + this.options.host + this.options.path + this.options.url + "?" + s, h = aT.z({}, ao, h), r = new Image(), p = 0; p < o.length; p++) { | |
var m = o[p]; | |
r[m] = function() { | |
var t = arguments.callee; | |
t.Ia.onload = t.Ia.onerror = t.Ia.onabort = d; | |
t.fe.call(t.self, t.Ia); | |
t.Ia = d; | |
}; | |
r[m].fe = h[m]; | |
r[m].Ia = r; | |
r[m].self = this; | |
} | |
r.src = s; | |
}; | |
aF.L.prototype.send = function(h) { | |
this.qf = h; | |
this.sc(); | |
}; | |
aF.L.prototype.Aa = function() { | |
this.vc(aT.z(this.options.kb, { | |
protocol: aT.ya() | |
}), { | |
onload: function(h) { | |
!this.options.X || h.width == this.options.X ? this.jb(1, h.width) : this.jb(0, h.width); | |
}, | |
onerror: function() { | |
this.jb(-1); | |
} | |
}); | |
}; | |
aF.L.prototype.sc = function() { | |
var h; | |
this.gc++; | |
h = aT.z({ | |
event: this.event, | |
ver: this.gc | |
}, this.qf, h); | |
this.vc(h); | |
}; | |
aT.Z.ud = {}; | |
var aI = aT.Z.ud; | |
aI.ba = function(n, h) { | |
var s, r, p; | |
aT.k(n.length) || (n = [ n ]); | |
s = 0; | |
for (r = n.length; s < r; s++) { | |
p = n[s]; | |
var m = p.className || ""; | |
if (!RegExp("\\b" + h + "\\b").test(m)) { | |
p.className = (m == "" ? "" : m + " ") + h; | |
} | |
} | |
}; | |
aI.ea = function(m, h) { | |
var r, p, n; | |
aT.k(m.length) || (m = [ m ]); | |
r = 0; | |
for (p = m.length; r < p; r++) { | |
n = m[r]; | |
if (n.className) { | |
n.className = n.className.replace(RegExp("(\\s|^)" + h + "(\\s|$)"), " ").replace(/^\s+|\s+$/g, ""); | |
} | |
} | |
}; | |
aI.$d = function(m, h) { | |
if (m) { | |
aT.k(m.length) || (m = [ m ]); | |
for (var p = 0; p < m.length; p++) { | |
for (var n in h) { | |
if (n) { | |
"zIndex".indexOf(n) == -1 && (typeof h[n] == "number" && n != "opacity") && (h[n] = h[n] + "px"); | |
m[p].style[n] = h[n]; | |
} | |
} | |
} | |
} | |
return m; | |
}; | |
aI.wf = function(m, h) { | |
if (m) { | |
aT.k(m.length) || (m = [ m ]); | |
for (var p = 0; p < m.length; p++) { | |
for (var n in h) { | |
m[p].setAttribute(n, h[n]); | |
} | |
} | |
} | |
return m; | |
}; | |
var af = aI.$d; | |
aI.outerHTML = function(p) { | |
if (aT.k(p.outerHTML)) { | |
return p.outerHTML; | |
} | |
var m = { | |
TEXTAREA: f | |
}, u = { | |
HR: f, | |
BR: f, | |
IMG: f, | |
INPUT: f | |
}, t = [], s = "", n = p.nodeName; | |
switch (p.nodeType) { | |
case 1: | |
s = s + "<" + n.toLowerCase(); | |
if (m[n]) { | |
switch (n) { | |
case "TEXTAREA": | |
for (m = 0; m < p.attributes.length; m++) { | |
if (p.attributes[m].nodeName.toLowerCase() != "value") { | |
s = s + (" " + p.attributes[m].nodeName.toUpperCase() + '="' + p.attributes[m].nodeValue + '"'); | |
} else { | |
var r = p.attributes[m].nodeValue; | |
} | |
} | |
s = s + ">" + r + ("</" + n + ">"); | |
} | |
} else { | |
for (m = p.attributes.length - 1; m >= 0; m--) { | |
r = p.attributes[m].nodeName.toLowerCase(); | |
"style,class,id".indexOf(r.toLowerCase()) > -1 && (s = s + (" " + r + '="' + p.attributes[m].nodeValue + '"')); | |
} | |
s = s + ">"; | |
if (!u[n]) { | |
s = s + p.innerHTML; | |
s = s + ("</" + n.toLowerCase() + ">"); | |
} | |
} | |
break; | |
case 3: | |
s = s + p.nodeValue; | |
break; | |
case 8: | |
s = s + ("<!--" + p.nodeValue + "-->"); | |
} | |
t.push(s); | |
return t.join(""); | |
}; | |
aT.stringify = function(m, h, r) { | |
var p; | |
if (aP.Prototype) { | |
p = Array.prototype.toJSON; | |
delete Array.prototype.toJSON; | |
} | |
if (!aP.JSON || typeof aP.JSON.stringify !== "function") { | |
var n; | |
F = al = ""; | |
if (typeof r === "number") { | |
for (n = 0; n < r; n = n + 1) { | |
F = F + " "; | |
} | |
} else { | |
typeof r === "string" && (F = r); | |
} | |
if ((ag = h) && typeof h !== "function" && (typeof h !== "object" || typeof h.length !== "number")) { | |
throw Error("_4c.stringify"); | |
} | |
m = aU("", { | |
"": m | |
}); | |
} else { | |
m = aP.JSON.stringify(m, h, r); | |
} | |
if (aT.k(p)) { | |
Array.prototype.toJSON = p; | |
} | |
return m; | |
}; | |
aT.parse = function(h) { | |
if (!aP.JSON || !aT.M(aP.JSON.parse)) { | |
h = "" + h; | |
l.lastIndex = 0; | |
l.test(h) && (h = h.replace(l, function(m) { | |
return "\\u" + ("0000" + m.charCodeAt(0).toString(16)).slice(-4); | |
})); | |
if (/^[\],:{}\s]*$/.test(h.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) { | |
return new Function("return " + h)(); | |
} | |
throw new SyntaxError("_4c.parse"); | |
} | |
return aP.JSON.parse(h); | |
}; | |
var l = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, aw = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, al, F, V = { | |
"\b": "\\b", | |
" ": "\\t", | |
"\n": "\\n", | |
"\f": "\\f", | |
"\r": "\\r", | |
'"': '\\"', | |
"\\": "\\\\" | |
}, ag; | |
aO.C = {}; | |
aO.C.Fa = {}; | |
aO.C.rb = function(m, h, r, p) { | |
var n = aO.C.Fa; | |
if (m) { | |
n[h] || (n[h] = []); | |
n[h].push({ | |
Ec: m, | |
$a: r | |
}); | |
if (h == "unload") { | |
if (aT.k(aT.Ua)) { | |
aT.Ua.push(r); | |
return; | |
} | |
aT.Ua = []; | |
} | |
h != "propertychange" && m.addEventListener ? m.addEventListener(h, r, !p) : m.attachEvent && m.attachEvent("on" + h, r); | |
} | |
}; | |
aO.C.sf = function(n, h, r, s, p) { | |
var m = aO.C; | |
if (p) { | |
if (n.getAttribute("_fsr" + h)) { | |
return c; | |
} | |
n.setAttribute("_fsr" + h, "true"); | |
} else { | |
if (p = m.Fa[h]) { | |
for (m = p.length - 1; m >= 0; m--) { | |
if (p[m].Ec == n && (s || p[m].$a == r)) { | |
return c; | |
} | |
} | |
} | |
} | |
aO.C.rb(n, h, r); | |
}; | |
aO.C.tf = function(m, h, n) { | |
aO.C.rb(m, h, n, f); | |
}; | |
aO.C.nc = function(m, h, p, r) { | |
try { | |
h != "propertychange" && m.removeEventListener ? m.removeEventListener(h, p, !!r) : m.detachEvent && m.detachEvent("on" + h, p); | |
} catch (n) {} | |
}; | |
var ay = aO.C.rb, ab = aO.C.nc; | |
aO.C.wd = function() { | |
for (var m = aT.Ua.length - 1; m >= 0; m--) { | |
try { | |
aT.Ua[m].call(); | |
} catch (h) {} | |
} | |
aT.cc(aT.Ua); | |
aO.C.yd(); | |
aT.Eb(); | |
}; | |
ay(aP, "unload", aO.C.wd); | |
aO.C.yd = function() { | |
if (aT) { | |
var m = aO.C, h; | |
for (h in m.Fa) { | |
for (var p = m.Fa[h], n = {}; n = p.pop(); ) { | |
m.nc(n.Ec, h, n.$a); | |
aT.cc(n); | |
} | |
delete m.Fa[h]; | |
} | |
} | |
}; | |
aO.C.sb = function() { | |
this.Sa = []; | |
}; | |
aO.C.sb.prototype.Ra = function(h) { | |
this.Sa[this.Sa.length] = { | |
Fe: c, | |
$a: h | |
}; | |
}; | |
aO.C.sb.prototype.F = function() { | |
for (var m = 0; m < this.Sa.length; m++) { | |
var h = this.Sa[m]; | |
h.$a.apply(this, arguments); | |
if (h.Fe) { | |
this.Sa.splice(m, 1); | |
m--; | |
} | |
} | |
}; | |
var aj = aO.C.sb; | |
aI.mc = { | |
Ed: {} | |
}; | |
try { | |
Array.prototype.slice.call(document.getElementsByTagName("html")), makeArray = function(h) { | |
return Array.prototype.slice.call(h); | |
}; | |
} catch (aM) {} | |
var az = aI.mc.If = function(y, x, w) { | |
x = x || aE; | |
w = !aT.k(aT.f) || !aT.f.P.nf || w; | |
if (x.querySelectorAll && (!aT.ka || !(aJ.q.ha <= 8 && y.indexOf("nth") > -1))) { | |
return aq(x.querySelectorAll(y)); | |
} | |
if (!w && aP.$ && !aP.Prototype) { | |
return aP.$(y, x); | |
} | |
for (var y = y.split(","), w = [], v = y.length - 1; v >= 0; v--) { | |
var t = y[v].replace(/^\s\s*/, "").replace(/\s\s*$/, "").replace(/\*=/g, "=").replace(/\>/g, " > ").replace(/\s+/g, " "); | |
if (t.indexOf(" ") > -1) { | |
for (var t = t.split(" "), p = [ x ], s = c, u = 0; u < t.length; u++) { | |
if (t[u] == ">") { | |
s = f; | |
} else { | |
for (var r = [], n = p.length - 1; n >= 0; n--) { | |
r = r.concat(aA(t[u], p[n], s)); | |
} | |
p = r; | |
s = c; | |
} | |
} | |
w = w.concat(aT.be(p)); | |
} else { | |
w = w.concat(aA(t, x)); | |
} | |
} | |
return w; | |
}; | |
aT.Z.f = {}; | |
var aR = aT.Z.f; | |
aR.Kc = function(m, h) { | |
for (var p = m.name, r = [ m.site, m.section, h, aS.g("q"), aS.g("l") ], n = 0; n < r.length; n++) { | |
p = p + (r[n] ? "-" + r[n] : ""); | |
} | |
return p; | |
}; | |
aR.xe = function(m, h) { | |
function p(r) { | |
if ("ok" === r && aT.surveydefs) { | |
aT.z(aN, aT.properties); | |
aQ.Ea = aQ.surveydefs = aT.surveydefs; | |
m(); | |
} | |
} | |
var n = aQ.definition || "foresee-surveydef.js"; | |
h ? setTimeout(function() { | |
p("ok"); | |
}, 100) : aT.ib(aO.na(aQ.site, "js_files", "files") + n, "script", p); | |
}; | |
aR.log = function(m, h) { | |
if (aN.events.enabled) { | |
var r = aS.g(), p = r.get("sd"); | |
aT.k(p) || (p = r.get("cd")); | |
aT.k(p) || (p = 0); | |
var p = aQ.Ea[p], n = new Date(); | |
new aF.L(new aR.U(aN).event(), "logit").send({ | |
cid: aQ.id, | |
rid: r.get("rid") || "", | |
cat: p.name, | |
sec: p.section || "", | |
type: r.get("q") || "", | |
site: aQ.site.name || "", | |
lang: r.get("l") || (aT.$S ? aT.$S.locale : ""), | |
msg: m, | |
param: h, | |
tms: n.getTime(), | |
tmz: n.getTimezoneOffset() * 6e4 | |
}); | |
} | |
}; | |
aF.B = function(n, m) { | |
var u = { | |
method: "POST", | |
url: aT.K(), | |
data: {}, | |
contentType: "application/x-www-form-urlencoded", | |
X: aT.W, | |
oa: aT.W | |
}; | |
this.sd = this.fc = c; | |
var t = aO.na; | |
if (aP.Worker && !m) { | |
var r = aO.gf, p = t(aQ.site, "js_files", "files"); | |
if (r(p, aP.location.href)) { | |
this.Jd(p + (aQ.worker || "foresee-worker.js")); | |
} else { | |
var t = t(aQ.site, "html_files", "files"), s = document.createElement("a"); | |
s.href = t; | |
if ((this.Jb = s.protocol + "//" + s.hostname) && r(t, p)) { | |
this.Id(t + "iframe_proxier.html"); | |
p != t && this.Nd(p + "foresee_worker.js"); | |
} | |
} | |
} | |
this.options = aT.z(u, n); | |
}; | |
aF.B.prototype.send = function(m, h) { | |
var n = aT.z(this.options, m); | |
aP.XDomainRequest && !(aJ.q.name == "IE" && aJ.q.ha >= 10) ? this.Rd(n) : this.sd && !h ? this.tc(n) : this.fc && !h ? this.Qd(n) : aP.XMLHttpRequest && this.Sd(n); | |
}; | |
aF.B.prototype.Eb = function() { | |
this.qb && this.qb.terminate(); | |
if (this.ja) { | |
this.ja.parentNode.removeChild(ifr); | |
ifr = d; | |
} | |
aT.cc(this.options); | |
}; | |
aF.B.isSupported = function() { | |
return aT.ka && aJ.q.ha < 10 && aT.K().substring(0, 5) != "https" && aP == aP.top ? c : f; | |
}; | |
aF.B.fb = function(h) { | |
h.call(aF.B); | |
}; | |
aF.B.prototype.Id = function(h) { | |
this.ja = document.createElement("iframe"); | |
this.ja.src = h; | |
this.ja.onload = aF.B.Fd(this); | |
this.ja.style.display = "none"; | |
document.body.appendChild(this.ja); | |
this.Ta = 0; | |
this.Na = {}; | |
this.sd = f; | |
ay(aP, "message", function(m) { | |
return function(n) { | |
aF.B.pc(m, n); | |
}; | |
}(this)); | |
}; | |
aF.B.prototype.Jd = function(m) { | |
try { | |
this.qb = new Worker(m); | |
this.fc = f; | |
} catch (h) {} | |
if (this.fc) { | |
this.Ta = 0; | |
this.Na = {}; | |
this.qb.onmessage = function(n) { | |
return function(p) { | |
aF.B.pc(n, p); | |
}; | |
}(this); | |
} | |
}; | |
aF.B.pc = function(m, h) { | |
var n = m.Na[h.data.i]; | |
switch (h.data.status) { | |
case 200: | |
n.X && n.X.call(n, h.data.rt); | |
break; | |
case -1: | |
aT.r.ca(); | |
break; | |
default: | |
n.oa && n.oa.call(n, h.data.rt); | |
} | |
delete m.Na[h.data.i]; | |
}; | |
aF.B.Fd = function(h) { | |
return function() { | |
h.pe = f; | |
if (h.ta) { | |
for (var m = 0; m < h.ta.length; m++) { | |
h.tc(h.ta[m]); | |
} | |
} | |
h.ta = d; | |
}; | |
}; | |
aF.B.prototype.Sd = function(m) { | |
var h = new aP.XMLHttpRequest(), p = aT.k(m.ac) && m.ac == f ? m.data : aO.N(m.data, d, c); | |
try { | |
h.open(m.method, m.url, f); | |
} catch (n) { | |
aT.r.ca(); | |
return; | |
} | |
h.setRequestHeader("Accept", "*/*"); | |
h.setRequestHeader("Content-Type", m.contentType); | |
h.onreadystatechange = function(s, r) { | |
return function() { | |
r.readyState == 4 && r.status == 200 ? s.X && s.X.apply(s, [ r.responseText ]) : r.readyState == 4 && r.status != 200 && s.oa && s.oa.apply(s, [ r.responseText ]); | |
}; | |
}(m, h); | |
h.send(p); | |
}; | |
aF.B.prototype.Qd = function(h) { | |
h = aT.z(this.options, h); | |
this.Na[++this.Ta] = h; | |
this.qb.postMessage(aF.B.rc(h, this.Ta)); | |
}; | |
aF.B.prototype.tc = function(m) { | |
var h = aT.z(this.options, m); | |
if (this.pe) { | |
this.Na[++this.Ta] = h; | |
this.ja.contentWindow.postMessage(aF.B.rc(h, this.Ta), this.Jb); | |
} else { | |
this.ta ? this.ta[this.ta.length] = m : this.ta = [ m ]; | |
} | |
}; | |
aF.B.prototype.Rd = function(m) { | |
var h = aT.k(m.ac) && m.ac == f ? m.data : aO.N(m.data, d, c), p = new aP.XDomainRequest(); | |
p.onerror = m.oa; | |
p.ontimeout = m.oa; | |
p.onprogress = aT.W; | |
p.onload = function(s, r) { | |
return function() { | |
r.X(s.responseText); | |
r = s = d; | |
}; | |
}(p, m); | |
p.timeout = 3e4; | |
try { | |
p.open("post", m.url); | |
} catch (n) { | |
aT.r.ca(); | |
return; | |
} | |
p.send(h); | |
}; | |
aF.B.prototype.Nd = function(m) { | |
var h = { | |
m: "worker_url" | |
}; | |
h.u = m; | |
this.ja.contentWindow.postMessage(h, this.Jb); | |
}; | |
aF.B.rc = function(m, h) { | |
var p = { | |
i: h | |
}, r = [ "method", "url", "data", "contentType" ], n; | |
for (n in r) { | |
p[r[n]] = m[r[n]]; | |
} | |
return { | |
m: "CORS", | |
d: p | |
}; | |
}; | |
aT.Z.zd = {}; | |
var aS = aT.Z.zd; | |
aS.pa = function(h) { | |
return h + (aQ.site.cookie ? "." + aQ.site.cookie : ""); | |
}; | |
aS.g = function(m, h) { | |
var n = aS.pa("fsr.s"), n = aS.Ya(n, aS.bb(n)); | |
return m ? aT.k(h) ? n.set(m, h) : n.get(m) : n; | |
}; | |
aS.bb = function(m) { | |
var h; | |
h = aQ.storageOption == "window" && aS.Ga.isSupported() ? function() { | |
var n = arguments.callee; | |
return new aS.Ga(n.Sc, n.Hc || {}); | |
} : function() { | |
var n = arguments.callee; | |
return new aS.l(n.Sc, aT.z({ | |
path: "/", | |
domain: n.Rb.site.domain, | |
secure: n.Rb.site.secure, | |
encode: n.Rb.encode | |
}, n.Hc || {})); | |
}; | |
h.Sc = m; | |
h.Rb = aQ; | |
h.Hc = a; | |
return h; | |
}; | |
var D = {}; | |
aS.Ya = function(m, h) { | |
var n = D[m]; | |
if (n != d) { | |
return n; | |
} | |
return n = D[m] = new h(); | |
}; | |
var aD = { | |
IE: 6.9, | |
Safari: 2, | |
Firefox: 1.4, | |
Opera: 1e3 | |
}, ar = { | |
Android: 1.9, | |
Winphone: 7.4 | |
}; | |
aO.td = function() { | |
function E() { | |
aT.Pa(function(n, h, r) { | |
return function() { | |
n.hb = h(); | |
n.te = r(); | |
n.Lb = f; | |
n.Ab.F(); | |
}; | |
}(x, y, B)); | |
} | |
function B() { | |
var h = f; | |
if (x.R) { | |
x.hb = y(); | |
x.A.name == "Android" && (x.A.version < 2.2 ? h = c : x.A.version < 3 && x.hb && (h = c)); | |
} | |
return h; | |
} | |
function z() { | |
x.q.name = t.name; | |
x.q.version = t.version; | |
x.q.ha = x.q.name != "IE" ? x.q.version : x.q.version > 6 && x.q.version < 10 ? !v("Trident") && x.q.version == 7 ? 7 : v("Trident/5.0") && x.q.version <= 9 ? 9 : v("Trident/4.0") && x.q.version < 9 ? 8 : x.q.version : x.q.version; | |
x.A.name = w(x.R); | |
var n = x.A, h; | |
if (x.R) { | |
h = u.match(/Android[\/\s](\d+\.?\d+)/) || u.match(/Windows Phone OS[\/\s](\d+\.?\d+)/) || u.match(/Windows Phone[\/\s](\d+\.?\d+)/); | |
h = h == d ? 1 : h[1]; | |
} else { | |
h = 1; | |
} | |
n.version = h; | |
} | |
function y() { | |
if (x.A.name != "Winphone") { | |
var n = az("head meta[name=viewport],head meta[name=VIEWPORT],head meta[name=Viewport]") || []; | |
aT.H(n) || (n = [ n ]); | |
if (n.length > 0) { | |
for (var h = 0; h < n.length; h++) { | |
var I = function(K, J) { | |
return K.match(RegExp("[\\w\\W]*" + J + "[\\s]*=[\\s]*([^\\s,;]*)[\\w\\W]*", "i")); | |
}, s = I(n[h].content, "user-scalable"), r = I(n[h].content, "initial-scale"), I = I(n[h].content, "maximum-scale"); | |
if (s && s.length > 1 && ("iphone,ipad,ipod".indexOf(x.A.name.toLowerCase()) >= 0 && s[1].toLowerCase() == "0" || "android".indexOf(x.A.name.toLowerCase()) >= 0 && s[1].toLowerCase() == "no")) { | |
return c; | |
} | |
if (r && I) { | |
return !(r[1] == "1.0" && I[1] == "1.0"); | |
} | |
} | |
} | |
return f; | |
} | |
return c; | |
} | |
function w(h) { | |
if (h) { | |
return v("iPod") ? "iPod" : v("iPad") ? "iPad" : v("iPhone") ? "iPhone" : (v("blackberry") || v("playbook") || v("BB10")) && v("applewebkit") ? "Blackberry" : v("Windows Phone") ? "Winphone" : v("Kindle") || v("Silk") ? "Kindle" : v("BNTV") || v("Nook") ? "Nook" : v("Android") ? "Android" : aP.orientation != a ? "Mobile" : "Other"; | |
} | |
if (v("Windows")) { | |
return "Windows"; | |
} | |
if (v("OS X")) { | |
return "Mac"; | |
} | |
if (v("Linux")) { | |
return "Linux"; | |
} | |
if (v("Mac")) { | |
return "Mac"; | |
} | |
} | |
function v(h) { | |
return u.toLowerCase().indexOf(h.toLowerCase()) > -1; | |
} | |
var x = this; | |
x.A = { | |
name: "", | |
version: 0 | |
}; | |
x.q = { | |
name: "", | |
version: 0, | |
ha: 0 | |
}; | |
x.yb = ""; | |
x.R = c; | |
x.Ka = c; | |
x.te = f; | |
x.hb = f; | |
x.Lb = c; | |
x.Ab = new aj(); | |
x.Pc = c; | |
x.gd = aT.ya() + "//device.4seeresults.com/detect?accessToken="; | |
var u = x.yb = aP.navigator.userAgent; | |
x.R = /iphone|ipad|ipod|android|kindle|silk|bntv|nook|blackberry|playbook|mini|windows\sce|windows\sphone|palm|bb10/i.test(u); | |
x.ue = /Windows Phone/i.test(u); | |
if (x.R) { | |
if (/iphone|ipad|ipod/i.test(u)) { | |
x.Pc = f; | |
} | |
if (/ipad|silk|kindle|playbook|nook|bntv/i.test(u)) { | |
x.Ka = f; | |
} | |
} | |
var t = function(n) { | |
var h = "Unknown", r; | |
if ((r = n.match(/Opera[\/\s](\d+\.\d+)/)) != d) { | |
h = "Opera"; | |
} else { | |
if ((r = n.match(/MSIE (\d+\.\d+)/)) != d) { | |
h = "IE"; | |
} else { | |
if ((r = n.match(/Navigator[\/\s](\d+\.\d+)/)) != d) { | |
h = "Netscape"; | |
} else { | |
if ((r = n.match(/Chrome[\/\s](\d+\.\d+)/)) != d) { | |
h = "Chrome"; | |
} else { | |
if ((r = n.match(/Safari[\/\s](\d+\.?\d+)/)) != d) { | |
h = "Safari"; | |
} else { | |
if ((r = n.match(/Firefox[\/\s](\d+\.\d+)/)) != d) { | |
h = "Firefox"; | |
} | |
} | |
} | |
} | |
} | |
} | |
return { | |
name: h, | |
version: r != d ? parseFloat(r[1]) : a | |
}; | |
}(u); | |
if (x.R) { | |
if (x.Pc || x.gd == "" || x.Ka || x.ue) { | |
z(); | |
E(); | |
E(); | |
} else { | |
var m = function(h) { | |
h = aT.parse(h); | |
x.q.name = h.browser.name; | |
x.q.version = x.q.ha = h.browser.version; | |
x.A.name = h.os.name; | |
x.A.version = h.os.version; | |
x.R = h.isMobile; | |
x.Ka = h.isTablet; | |
E(); | |
}, G; | |
if (aP.sessionStorage) { | |
var p = aP.sessionStorage; | |
G = p.getItem("FSR_BROWSER"); | |
} | |
if (G) { | |
m(G); | |
} else { | |
G = { | |
method: "GET", | |
url: x.gd + aO.ne(function() { | |
var n = new Date(), h = (n.getMonth() + 1).toString(), r = n.getDate().toString(); | |
return n.getFullYear().toString() + (h[1] ? h : "0" + h[0]) + (r[1] ? r : "0" + r[0]); | |
}() + "ForeSee" + (aP.location.origin || "null")) + "&ua=" + u, | |
type: "*/*", | |
contentType: "application/x-www-form-urlencoded", | |
X: function(h) { | |
p && p.setItem("FSR_BROWSER", h); | |
m(h); | |
}, | |
oa: function() { | |
z(); | |
E(); | |
E(); | |
} | |
}; | |
new aF.B(G, f).send(); | |
} | |
} | |
} else { | |
z(); | |
x.Lb = f; | |
x.Ab.F(); | |
} | |
}; | |
var aJ = new aO.td(); | |
aI.ga = {}; | |
aI.ga.kc = function(m) { | |
var h = 0, p = 0, r = m.document, n = r.documentElement; | |
if (typeof m.innerWidth == "number") { | |
h = m.innerWidth; | |
p = m.innerHeight; | |
} else { | |
if (n && (n.clientWidth || n.clientHeight)) { | |
h = n.clientWidth; | |
p = n.clientHeight; | |
} else { | |
if (r.body && (r.body.clientWidth || r.body.clientHeight)) { | |
h = r.body.clientWidth; | |
p = r.body.clientHeight; | |
} | |
} | |
} | |
return { | |
w: h, | |
h: p | |
}; | |
}; | |
aI.ga.vd = function(h) { | |
return aJ.R ? { | |
w: h.innerWidth, | |
h: h.innerHeight | |
} : aI.ga.kc(h); | |
}; | |
aI.ga.jc = function(m) { | |
var h = 0, p = 0, r = m.document, n = r.documentElement; | |
if (typeof m.pageYOffset == "number") { | |
p = m.pageYOffset; | |
h = m.pageXOffset; | |
} else { | |
if (r.body && (r.body.scrollLeft || r.body.scrollTop)) { | |
p = r.body.scrollTop; | |
h = r.body.scrollLeft; | |
} else { | |
if (n && (n.scrollLeft || n.scrollTop)) { | |
p = n.scrollTop; | |
h = n.scrollLeft; | |
} | |
} | |
} | |
return { | |
x: h, | |
y: p | |
}; | |
}; | |
aI.ga.vf = function(m, h, n) { | |
m.scrollTo(h, n); | |
au.document.body.scrollTop = n; | |
au.document.body.scrollLeft = h; | |
}; | |
aR.tb = {}; | |
aR.tb.Qa = function(m, h) { | |
if (m) { | |
var p = aS.g("m"); | |
if (p) { | |
p = new Date().getTime() - p; | |
if (p < h * 1e3) { | |
var r = function() { | |
var s = new aR.U(aN).Ce(); | |
s.kb = { | |
rid: aQ.rid, | |
cid: aQ.id | |
}; | |
new aF.L(s).Aa(); | |
}; | |
r(); | |
var n = setInterval(r, m * 1e3); | |
setTimeout(function() { | |
clearInterval(n); | |
}, h * 1e3 - p); | |
} | |
} | |
} | |
}; | |
aR.U = function(h) { | |
h = h && h.survey || {}; | |
this.qc = { | |
name: h.host || "survey.foreseeresults.com" | |
}; | |
this.Gd = { | |
name: h.events_host || "events.foreseeresults.com" | |
}; | |
this.oc = { | |
name: ".4seeresults.com" | |
}; | |
this.uc = { | |
name: "i.4see.mobi" | |
}; | |
this.Od = h.protocol || aT.ya(); | |
}; | |
aR.U.prototype.ff = function() { | |
return { | |
host: this.qc.name, | |
path: "/survey", | |
url: "/display", | |
protocol: this.Od | |
}; | |
}; | |
aR.U.prototype.De = function() { | |
return { | |
host: this.uc.name, | |
path: "/e", | |
url: "/initialize" | |
}; | |
}; | |
aR.U.prototype.Ce = function() { | |
return { | |
host: this.uc.name, | |
path: "/e", | |
url: "/recordHeartbeat" | |
}; | |
}; | |
aR.U.prototype.D = function() { | |
return { | |
host: "controller" + this.oc.name, | |
path: "/fsrSurvey", | |
url: "/OTCImg", | |
X: 3 | |
}; | |
}; | |
aR.U.prototype.event = function() { | |
return { | |
host: this.Gd.name, | |
path: "/rec", | |
url: "/process" | |
}; | |
}; | |
aR.U.prototype.domain = function() { | |
return { | |
host: this.qc.name, | |
path: "/survey", | |
url: "/FSRImg", | |
X: 3 | |
}; | |
}; | |
aR.U.prototype.$e = function() { | |
return { | |
host: "replaycontroller" + this.oc.name, | |
path: "/images", | |
enabled: f | |
}; | |
}; | |
aR.T = function(m, h) { | |
this.options = m; | |
this.Y = h; | |
this.Y.invite = aT.z({ | |
position: { | |
pin: { | |
left: c, | |
right: c, | |
top: c, | |
bottom: c | |
}, | |
offset: { | |
left: "0px", | |
top: "0px" | |
} | |
} | |
}, this.Y.invite); | |
this.xb = new aj(); | |
this.Db = new aj(); | |
this.dd = new aj(); | |
}; | |
aR.T.prototype.show = function(a8, a7, a6) { | |
this.Sb = a7; | |
this.Ud = a6; | |
this.Dc = this.wc = c; | |
this.Yb = f; | |
var a5 = aJ.R, a7 = a8[0].mobileExitDialog; | |
if (this.Sb == 0) { | |
if (aT.H(this.Y.invite.dialogs) && this.Y.invite.dialogs.length > 1) { | |
this.Yb = c; | |
} | |
aI.ba(aP.document.documentElement, "fsrInvitePresent"); | |
if (a5) { | |
aI.ba(aP.document.documentElement, "fsrM"); | |
aI.ba(aP.document.documentElement, "fsrOnExit"); | |
"Winphone".indexOf(aJ.A.name) > -1 && aI.ba(aP.document.documentElement, "fsrWinPhone"); | |
var a4 = aJ.A.name == "Android" && aJ.A.version < 3; | |
a4 && aI.ba(aP.document.documentElement, "fsrMobileCompat"); | |
this.Ma = az('meta[name="viewport"]', aP.document.head); | |
if (!this.Ma.length || aJ.hb) { | |
if (a4) { | |
this.J = ai('<meta name="viewport" content="width=device-width, user-scalable=no, target-densityDpi=high-dpi" />'); | |
aE.head.appendChild(this.J); | |
} else { | |
if ("iPod,iPad,iPhone".indexOf(aJ.A.name) > -1) { | |
this.J = ai('<meta name="viewport" content="user-scalable=0"/>'); | |
aE.head.appendChild(this.J); | |
} else { | |
if ("Android".indexOf(aJ.A.name) > -1) { | |
this.J = ai("<meta content='width=device-width; initial-scale=1.0; maximum-scale=1.0;minimum-scale=1.0; user-scalable=no;' name='viewport' />"); | |
aE.head.appendChild(this.J); | |
} | |
} | |
} | |
} | |
ay(aE, "touchstart", aT.W); | |
} | |
} | |
var a3 = this.Y.invite, a2 = aO.na(aQ.site, "image_files", "files"), X = aS.g("l"), a4 = this.La = ai('<div id="fsrOverlay" class="fsrC" style="font-size:12px"><div class="fsrFloatingContainer"><div class="fsrFloatingMid"><div class="fsrInvite"></div></div></div></div>'); | |
a3.hideOnClick && ay(a4, "click", function(n) { | |
return function(p) { | |
if ((p.originalTarget || p.target || p.srcElement).id == "fsrOverlay") { | |
p && p.preventDefault ? p.preventDefault() : aP.event && aP.event.returnValue && (aP.eventReturnValue = c); | |
n.ia(); | |
} | |
}; | |
}(this)); | |
var z = az(".fsrFloatingContainer", a4)[0], h = az(".fsrInvite", a4)[0], aa = ai('<div class="fsrDialogs"></div>'); | |
h.appendChild(aa); | |
a8 = aR.T.pf(a8, a6, X); | |
a6 = a3.siteLogo ? a3.siteLogo : ""; | |
typeof a6 === "object" && (a6 = a6.hasOwnProperty(X) ? a6[X] : a6.base); | |
a3 = a3.siteLogoAlt ? a3.siteLogoAlt : ""; | |
for (X = 0; X < a8.length; X++) { | |
var aY = a8[X], a0 = '<div class="fsrLogos">', I = X == a8.length - 1, aX = ""; | |
X == 0 && (a0 = a0 + (a6 != "" ? '<img class="fsrSiteLogo" alt="' + a3 + '" src="$SITEFILES$SLOGO">' : '<img class="fsrSiteLogo" alt="" src="">')); | |
I && (a0 = a0 + '<img class="fsrCorpLogo" alt="Foresee" src="$SITEFILESfsrlogo.gif">'); | |
var a0 = a0 + "</div>", a1 = '<p class="fsrSubBlurb">$FNOTICE</p>'; | |
aY.noticeAboutSurvey || (a1 = ""); | |
var Y = ""; | |
a7 && (Y = '<input type="hidden" id="mobileOnExitSupport" value="' + a7.support + '"/><div class="fsrMobileExitErrorFieldRequired fsrMobileExitError hideField">' + a7.fieldRequiredErrorText + '</div><div class="fsrMobileExitErrorInvalidFormat fsrMobileExitError hideField">' + a7.invalidFormatErrorText + '</div><input type="email" class="fsrEmailOrNumber" id="mobileOnExitInput" placeholder="' + a7.inputMessage + '">'); | |
var aW = aY.quizContent, W = ""; | |
if (a8.length > 1) { | |
W = W + " fsrMultiDialog"; | |
X < a8.length - 1 && (W = W + " fsrDSpacer"); | |
} | |
a0 = ai(('<div class="fsrDialog ' + W + '" style="margin-left: 0px;">' + a0 + '<p class="fsrHeading">$FHEAD</p><p class="fsrBlurb">$FBLURB</p>' + a1 + Y + "</div>").replace(/\$SITEFILES/gi, a2).replace(/\$SLOGO/gi, a6).replace(/\$FHEAD/gi, aY.headline).replace(/\$FBLURB/gi, aY.blurb).replace(/\$FNOTICE/gi, aY.noticeAboutSurvey)); | |
if (aW) { | |
a1 = ai('<div class="fsrQuiz"></div>'); | |
a1.appendChild(ai('<p class="fsrQuizQuestion">' + aW.question + "</p>")); | |
for (aX = 0; aX < aW.answers.length; aX++) { | |
var Y = aW.answers[aX], W = function() { | |
return function(n) { | |
n = (n.originalTarget || n.target || n.srcElement).parentNode.parentNode.parentNode; | |
af(az(".fsrQuiz", n), { | |
display: "none" | |
}); | |
af(az(".fsrSubBlurb", n), { | |
display: "block" | |
}); | |
af(az(".fsrB", n), { | |
display: "block" | |
}); | |
}; | |
}, Z = function(p, n, t) { | |
return function(u) { | |
u = (u.originalTarget || u.target || u.srcElement).parentNode.parentNode.parentNode; | |
u.innerHTML = ('<div class="fsrDialog" style="margin-left: 0px;"><div class="fsrLogos"><img class="fsrCorpLogo" alt="ForeSee" src="$SITEFILESfsrlogo.gif"></div><p class="fsrHeading fsrCTitle">' + n.cancelTitle + '</p><p class="fsrBlurb">' + n.cancelText + '</p><div class="fsrB" style="display: block;"><a class="declineButton fsrDb">' + t + "</a></div></div>").replace(/\$SITEFILES/gi, a2); | |
aH(az(".declineButton", u), function(w) { | |
return function() { | |
w.ia(); | |
}; | |
}(p)); | |
u = d; | |
}; | |
}, aZ = ai('<p class="fsrAnswer" id="fsrAns' + X + "_" + aX + '"><input name="fsrQuiz' + X + '" type="radio" id="fsrA' + X + "_" + aX + '"><label for="fsrA' + X + "_" + aX + '">' + Y.answer + "</label></p>"); | |
a1.appendChild(aZ); | |
Y.proceedWithSurvey ? ay(aZ, "click", W()) : ay(aZ, "click", Z(this, Y, aY.closeInviteButtonText)); | |
} | |
Y = aZ = d; | |
aX = "display:none;"; | |
a0.appendChild(a1); | |
} | |
if (aY.attribution) { | |
aW = ai('<p class="fsrAttribution">$FATTR</p>'.replace(/\$FATTR/gi, aY.attribution)); | |
a0.appendChild(aW); | |
} | |
aW = ai(('<div class="fsrB" style="' + aX + '"><div class="fsrAcceptButtonContainer"><a tabindex="2" class="fsrAcceptButton" href="javascript:void(0)">$ABTN</a></div><div class="fsrDeclineButtonContainer"><a tabindex="1" class="fsrDeclineButton" href="javascript:void(0)">$FDECL</a></div></div>').replace(/\$ABTN/gi, aY.acceptButton).replace(/\$FDECL/gi, aY.declineButton)); | |
a0.appendChild(aW); | |
if (I) { | |
a0.appendChild(ai('<div class="fsrFooter"><a class="fsrTE" target="_blank" title="Validate TRUSTe privacy certification" href="http://privacy-policy.truste.com/click-with-confidence/ctv/en/www.foreseeresults.com/seal_m"><img class="fsrTruste" alt="TRUSTe verified" src="$SITEFILEStruste.png"></a></div>'.replace(/\$SITEFILES/gi, a2))); | |
h.appendChild(ai('<a title="$CCLOSE" class="fsrCloseBtn" href="#">×</a>'.replace(/\$CCLOSE/gi, aY.closeInviteButtonText))); | |
ay(az(".fsrCloseBtn", h)[0], "click", function(n) { | |
return function(p) { | |
p && p.preventDefault ? p.preventDefault() : aP.event && aP.event.returnValue && (aP.eventReturnValue = c); | |
n.ia(); | |
}; | |
}(this)); | |
} | |
aa.appendChild(a0); | |
var aV = aY.locale; | |
ay(az(".fsrAcceptButton", a0)[0], "click", function(p, n) { | |
return function() { | |
aS.g("l", n); | |
p.la(n); | |
}; | |
}(this, aV)); | |
ay(az(".fsrDeclineButton", a0)[0], "click", function(p, n) { | |
return function() { | |
p.ia(n); | |
}; | |
}(this, aV)); | |
if (a8.length > 1 && I) { | |
I = function(n) { | |
return az(".fsrB", n)[0].offsetTop; | |
}; | |
aW = az(".fsrDialog"); | |
aX = aW[0]; | |
for (a1 = 0; a1 < aW.length - 1; a1++) { | |
I(aX) < I(aW[a1 + 1]) && (aX = aW[a1 + 1]); | |
} | |
for (a1 = 0; a1 < aW.length; a1++) { | |
if (aW[a1] != aX) { | |
Y = I(aX) - I(aW[a1]); | |
W = az(".fsrHeading", aW[a1])[0]; | |
aJ.q.name == "IE" && aJ.q.ha < 9 ? W.style.cssText = "padding-top: " + Y.toString() + "px" : af(W, { | |
"padding-top": Y | |
}); | |
} | |
} | |
} | |
if (a7) { | |
var U = aO; | |
this.Be = function(p, n, w, x) { | |
var u = c, t = az(".fsrAcceptButton")[0]; | |
if (p && (U.Mb(p) || U.Nb(p))) { | |
if (U.Mb(p)) { | |
t.innerHTML = w; | |
} else { | |
if (U.Nb(p)) { | |
t.innerHTML = x; | |
} | |
} | |
u = f; | |
} | |
if (!u) { | |
t.innerHTML = n; | |
} | |
}; | |
var O = az(".fsrEmailOrNumber", a0)[0], v = function(n) { | |
return function() { | |
var p = n.getBoundingClientRect(); | |
aP.scrollTo(0, p.top + aI.ga.jc(aP).y - (aI.ga.kc(aP).h - p.height) / 2); | |
}; | |
}(O); | |
ay(O, "focus", function(n) { | |
return function() { | |
n.Wb = f; | |
aI.ea(az(".fsrMobileExitError"), "showField"); | |
aI.ba(az(".fsrMobileExitError"), "hideField"); | |
aJ.A.name == "Android" && setTimeout(v, 500); | |
}; | |
}(this, aV)); | |
ay(O, "blur", function(n) { | |
return function() { | |
n.Wb = c; | |
setTimeout(s, 1); | |
}; | |
}(this)); | |
ay(O, "keyup", function(p, n, t, u) { | |
return function(w) { | |
p.Be(this.value, n, t, u); | |
if ((w.ve ? w.keyCode : w.which) == 13) { | |
O.blur(); | |
aS.g("l", aV); | |
p.la(aV); | |
} | |
}; | |
}(this, aY.acceptButton, a7.emailMeButtonText, a7.textMeButtonText)); | |
} | |
aE.body.appendChild(a4); | |
aT.ka && aP.document.compatMode != "CSS1Co |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment