var r20 = /%20/g, rbracket = /\[\]$/, rCRLF = /\r?\n/g, rhash = /#.*$/, rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, rquery = /\?/, rscript = /)<[^<]*)*<\/script>/gi, rselectTextarea = /^(?:select|textarea)/i, rts = /([?&])_=[^&]*/, rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, _load = jQuery.fn.load, prefilters = { } , transports = { } , ajaxLocation, ajaxLocParts, allTypes = ["*/"] + ["*"] ; try { ajaxLocation = _AN_Read_href("href", _AN_Read_location("location", window)); } catch (e) { ajaxLocation = _AN_Call_createelement("createElement", document, "a"); _AN_Write_href("href", ajaxLocation, false , ""); ajaxLocation = _AN_Read_href("href", ajaxLocation); } ajaxLocParts = rurl.exec(ajaxLocation.toLowerCase()) || [] ; function addToPrefiltersOrTransports(structure){ return function (dataTypeExpression, func){ if (typeof dataTypeExpression !== "string") { func = dataTypeExpression; dataTypeExpression = "*"; } if (jQuery.isFunction(func)) { var dataTypes = dataTypeExpression.toLowerCase().split(core_rspace), i = 0, length = _AN_Read_length("length", dataTypes), dataType, list, placeBefore; for (; i < length; i++ ){ dataType = dataTypes[i]; placeBefore = /^\+/.test(dataType); if (placeBefore) { dataType = dataType.substr(1) || "*"; } list = structure[dataType] = structure[dataType] || [] ; list[placeBefore? "unshift": "push"](func); } } } ; } function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR, dataType, inspected){ dataType = dataType || options.dataTypes[0]; inspected = inspected || { } ; inspected[dataType] = true ; var list = structure[dataType], i = 0, length = list? _AN_Read_length("length", list): 0, executeOnly = (structure === prefilters), selection; for (; i < length && (executeOnly || !selection); i++ ){ selection = list[i](options, originalOptions, jqXHR); if (typeof selection === "string") { if (!executeOnly || inspected[selection]) { selection = undefined; } else { options.dataTypes.unshift(selection); selection = inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR, selection, inspected); } } } if ((executeOnly || !selection) && !inspected["*"] ) { selection = inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR, "*", inspected); } return selection; } function ajaxExtend(target, src){ var key, deep, flatOptions = jQuery.ajaxSettings.flatOptions || { } ; for (key in src){ if (src[key] !== undefined) { (flatOptions[key]? target: (deep || (deep = { } )))[key] = src[key]; } } if (deep) { jQuery.extend(true , target, deep); } } jQuery.fn.extend({ load: function (url, params, callback){ if (typeof url !== "string" && _load) { return _load.apply(this, arguments); } if (!_AN_Read_length("length", this)) { return this; } var selector, type, response, self = this, off = url.indexOf(" "); if (off >= 0) { selector = url.slice(off, _AN_Read_length("length", url)); url = url.slice(0, off); } if (jQuery.isFunction(params)) { callback = params; params = undefined; } else if (typeof params === "object") { type = "POST"; } jQuery.ajax({ url: url, type: type, dataType: "html", data: params, complete: function (jqXHR, status){ if (callback) { self.each(callback, response || [jqXHR.responseText, status, jqXHR] ); } } } ).done(function (responseText){ response = arguments; self.html(selector? jQuery("
").append(_AN_Call_replace("replace", responseText, rscript, "")).find(selector): responseText); } ); return this; } , serialize: function (){ return jQuery.param(this.serializeArray()); } , serializeArray: function (){ return this.map(function (){ return this.elements? jQuery.makeArray(this.elements): this; } ).filter(function (){ return this.name && !this.disabled && (this.checked || rselectTextarea.test(this.nodeName) || rinput.test(this.type)); } ).map(function (i, elem){ var val = jQuery(this).val(); return val == null ? null : jQuery.isArray(val)? jQuery.map(val, function (val, i){ return { name: elem.name, value: _AN_Call_replace("replace", val, rCRLF, "\r\n")} ; } ): { name: elem.name, value: _AN_Call_replace("replace", val, rCRLF, "\r\n")} ; } ).get(); } } ); jQuery.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (i, o){ jQuery.fn[o] = function (f){ return this.on(o, f); } ; } ); jQuery.each(["get", "post"] , function (i, method){ jQuery[method] = function (url, data, callback, type){ if (jQuery.isFunction(data)) { type = type || callback; callback = data; data = undefined; } return jQuery.ajax({ type: method, url: url, data: data, success: callback, dataType: type} ); } ; } ); jQuery.extend({ getScript: function (url, callback){ return jQuery.get(url, undefined, callback, "script"); } , getJSON: function (url, data, callback){ return jQuery.get(url, data, callback, "json"); } , ajaxSetup: function (target, settings){ if (settings) { ajaxExtend(target, jQuery.ajaxSettings); } else { settings = target; target = jQuery.ajaxSettings; } ajaxExtend(target, settings); return target; } , ajaxSettings: { url: ajaxLocation, isLocal: rlocalProtocol.test(ajaxLocParts[1]), global: true , type: "GET", contentType: "application/x-www-form-urlencoded; charset=UTF-8", processData: true , async: true , accepts: { xml: "application/xml, text/xml", html: "text/html", text: "text/plain", json: "application/json, text/javascript", "*": allTypes} , contents: { xml: /xml/, html: /html/, json: /json/} , responseFields: { xml: "responseXML", text: "responseText"} , converters: { "* text": window.String, "text html": true , "text json": jQuery.parseJSON, "text xml": jQuery.parseXML} , flatOptions: { context: true , url: true } } , ajaxPrefilter: addToPrefiltersOrTransports(prefilters), ajaxTransport: addToPrefiltersOrTransports(transports), ajax: function (url, options){ if (typeof url === "object") { options = url; url = undefined; } options = options || { } ; var s = jQuery.ajaxSetup({ } , options), callbackContext = s.context || s, globalEventContext = callbackContext !== s && (callbackContext.nodeType || callbackContext instanceof jQuery)? jQuery(callbackContext): jQuery.event, deferred = jQuery.Deferred(), completeDeferred = jQuery.Callbacks("once memory"), statusCode = s.statusCode || { } , ifModifiedKey, requestHeaders = { } , requestHeadersNames = { } , responseHeadersString, responseHeaders, transport, timeoutTimer, parts, state = 0, fireGlobals, i, strAbort = "canceled", jqXHR = { readyState: 0, setRequestHeader: function (name, value){ if (!state) { var lname = name.toLowerCase(); name = requestHeadersNames[lname] = requestHeadersNames[lname] || name; requestHeaders[name] = value; } return this; } , getAllResponseHeaders: function (){ return state === 2? responseHeadersString: null ; } , getResponseHeader: function (key){ var match; if (state === 2) { if (!responseHeaders) { responseHeaders = { } ; while ((match = rheaders.exec(responseHeadersString))){ responseHeaders[match[1].toLowerCase()] = match[2]; } } match = responseHeaders[key.toLowerCase()]; } return match === undefined? null : match; } , overrideMimeType: function (type){ if (!state) { s.mimeType = type; } return this; } , abort: function (statusText){ statusText = statusText || strAbort; if (transport) { transport.abort(statusText); } done(0, statusText); return this; } } ; function done(status, nativeStatusText, responses, headers){ var isSuccess, success, error, response, modified, statusText = nativeStatusText; if (state === 2) { return ; } state = 2; if (timeoutTimer) { clearTimeout(timeoutTimer); } transport = undefined; responseHeadersString = headers || ""; jqXHR.readyState = status > 0? 4: 0; if (responses) { response = ajaxHandleResponses(s, jqXHR, responses); } if (status >= 200 && status < 300 || status === 304) { if (s.ifModified) { modified = jqXHR.getResponseHeader("Last-Modified"); if (modified) { jQuery.lastModified[ifModifiedKey] = modified; } modified = jqXHR.getResponseHeader("Etag"); if (modified) { jQuery.etag[ifModifiedKey] = modified; } } if (status === 304) { statusText = "notmodified"; isSuccess = true ; } else { isSuccess = ajaxConvert(s, response); statusText = isSuccess.state; success = isSuccess.data; error = isSuccess.error; isSuccess = !error; } } else { error = statusText; if (!statusText || status) { statusText = "error"; if (status < 0) { status = 0; } } } jqXHR.status = status; jqXHR.statusText = "" + (nativeStatusText || statusText); if (isSuccess) { deferred.resolveWith(callbackContext, [success, statusText, jqXHR] ); } else { deferred.rejectWith(callbackContext, [jqXHR, statusText, error] ); } jqXHR.statusCode(statusCode); statusCode = undefined; if (fireGlobals) { globalEventContext.trigger("ajax" + (isSuccess? "Success": "Error"), [jqXHR, s, isSuccess? success: error] ); } completeDeferred.fireWith(callbackContext, [jqXHR, statusText] ); if (fireGlobals) { globalEventContext.trigger("ajaxComplete", [jqXHR, s] ); if (!(--jQuery.active)) { jQuery.event.trigger("ajaxStop"); } } } deferred.promise(jqXHR); jqXHR.success = jqXHR.done; jqXHR.error = jqXHR.fail; jqXHR.complete = completeDeferred.add; jqXHR.statusCode = function (map){ if (map) { var tmp; if (state < 2) { for (tmp in map){ statusCode[tmp] = [statusCode[tmp], map[tmp]] ; } } else { tmp = map[jqXHR.status]; jqXHR.always(tmp); } } return this; } ; _AN_Write_url("url", s, false , _AN_Call_replace("replace", _AN_Call_replace("replace", ((url || _AN_Read_url("url", s)) + ""), rhash, ""), rprotocol, ajaxLocParts[1] + "//")); s.dataTypes = jQuery.trim(s.dataType || "*").toLowerCase().split(core_rspace); if (s.crossDomain == null ) { parts = rurl.exec(_AN_Read_url("url", s).toLowerCase()); s.crossDomain = !!(parts && (parts[1] != ajaxLocParts[1] || parts[2] != ajaxLocParts[2] || (parts[3] || (parts[1] === "http:"? 80: 443)) != (ajaxLocParts[3] || (ajaxLocParts[1] === "http:"? 80: 443)))); } if (s.data && s.processData && typeof s.data !== "string") { s.data = jQuery.param(s.data, s.traditional); } inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); if (state === 2) { return jqXHR; } fireGlobals = s.global; s.type = s.type.toUpperCase(); s.hasContent = !rnoContent.test(s.type); if (fireGlobals && jQuery.active++ === 0) { jQuery.event.trigger("ajaxStart"); } if (!s.hasContent) { if (s.data) { _AN_Write_url("url", s, true , (rquery.test(_AN_Read_url("url", s))? "&": "?") + s.data); delete s.data; } ifModifiedKey = _AN_Read_url("url", s); if (s.cache === false ) { var ts = jQuery.now(), ret = _AN_Call_replace("replace", _AN_Read_url("url", s), rts, "$1_=" + ts); _AN_Write_url("url", s, false , ret + ((ret === _AN_Read_url("url", s))? (rquery.test(_AN_Read_url("url", s))? "&": "?") + "_=" + ts: "")); } } if (s.data && s.hasContent && s.contentType !== false || options.contentType) { jqXHR.setRequestHeader("Content-Type", s.contentType); } if (s.ifModified) { ifModifiedKey = ifModifiedKey || _AN_Read_url("url", s); if (jQuery.lastModified[ifModifiedKey]) { jqXHR.setRequestHeader("If-Modified-Since", jQuery.lastModified[ifModifiedKey]); } if (jQuery.etag[ifModifiedKey]) { jqXHR.setRequestHeader("If-None-Match", jQuery.etag[ifModifiedKey]); } } jqXHR.setRequestHeader("Accept", s.dataTypes[0] && s.accepts[s.dataTypes[0]]? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== "*"? ", " + allTypes + "; q=0.01": ""): s.accepts["*"] ); for (i in s.headers){ jqXHR.setRequestHeader(i, s.headers[i]); } if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || state === 2)) { return jqXHR.abort(); } strAbort = "abort"; for (i in { success: 1, error: 1, complete: 1} ){ jqXHR[i](s[i]); } transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); if (!transport) { done(-1, "No Transport"); } else { jqXHR.readyState = 1; if (fireGlobals) { globalEventContext.trigger("ajaxSend", [jqXHR, s] ); } if (s.async && s.timeout > 0) { timeoutTimer = _AN_Call_settimeout("setTimeout", window, function (){ jqXHR.abort("timeout"); } , s.timeout); } try { state = 1; _AN_Call_send("send", transport, requestHeaders, done); } catch (e) { if (state < 2) { done(-1, e); } else { throw e } } } return jqXHR; } , param: function (a, traditional){ var s = [] , add = function (key, value){ value = jQuery.isFunction(value)? value(): (value == null ? "": value); s[_AN_Read_length("length", s)] = encodeURIComponent(key) + "=" + encodeURIComponent(value); } ; if (traditional === undefined) { traditional = jQuery.ajaxSettings.traditional; } if (jQuery.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) { jQuery.each(a, function (){ add(this.name, this.value); } ); } else { for (var prefix in a){ buildParams(prefix, a[prefix], traditional, add); } } return _AN_Call_replace("replace", s.join("&"), r20, "+"); } } ); function buildParams(prefix, obj, traditional, add){ if (jQuery.isArray(obj)) { jQuery.each(obj, function (i, v){ if (traditional || rbracket.test(prefix)) { add(prefix, v); } else { buildParams(prefix + "[" + (typeof v === "object"? i: "") + "]", v, traditional, add); } } ); } else if (!traditional && jQuery.type(obj) === "object") { for (var name in obj){ buildParams(prefix + "[" + name + "]", obj[name], traditional, add); } } else { add(prefix, obj); } } jQuery.extend({ active: 0, lastModified: { } , etag: { } } ); function ajaxHandleResponses(s, jqXHR, responses){ var contents = s.contents, dataTypes = s.dataTypes, responseFields = s.responseFields, ct, type, finalDataType, firstDataType; for (type in responseFields){ if (type in responses) { jqXHR[responseFields[type]] = responses[type]; } } while (dataTypes[0] === "*"){ dataTypes.shift(); if (ct === undefined) { ct = s.mimeType || jqXHR.getResponseHeader("content-type"); } } if (ct) { for (type in contents){ if (contents[type] && contents[type].test(ct)) { dataTypes.unshift(type); break ; } } } if (dataTypes[0] in responses) { finalDataType = dataTypes[0]; } else { for (type in responses){ if (!dataTypes[0] || s.converters[type + " " + dataTypes[0]]) { finalDataType = type; break ; } if (!firstDataType) { firstDataType = type; } } finalDataType = finalDataType || firstDataType; } if (finalDataType) { if (finalDataType !== dataTypes[0]) { dataTypes.unshift(finalDataType); } return responses[finalDataType]; } } function ajaxConvert(s, response){ var conv, conv2, current, tmp, dataTypes = s.dataTypes.slice(), prev = dataTypes[0], converters = { } , i = 0; if (s.dataFilter) { response = s.dataFilter(response, s.dataType); } if (dataTypes[1]) { for (conv in s.converters){ converters[conv.toLowerCase()] = s.converters[conv]; } } for (; (current = dataTypes[++i]); ){ if (current !== "*") { if (prev !== "*" && prev !== current) { conv = converters[prev + " " + current] || converters["* " + current]; if (!conv) { for (conv2 in converters){ tmp = conv2.split(" "); if (tmp[1] === current) { conv = converters[prev + " " + tmp[0]] || converters["* " + tmp[0]]; if (conv) { if (conv === true ) { conv = converters[conv2]; } else if (converters[conv2] !== true ) { current = tmp[0]; dataTypes.splice(i-- , 0, current); } break ; } } } } if (conv !== true ) { if (conv && s["throws"] ) { response = conv(response); } else { try { response = conv(response); } catch (e) { return { state: "parsererror", error: conv? e: "No conversion from " + prev + " to " + current} ; } } } } prev = current; } } return { state: "success", data: response} ; }