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); | |