{"version":3,"file":"Scripts/General.js","sources":["Scripts/General.js"],"sourcesContent":["var $x = function (id, win) {\r\n return (win || window).document.getElementById(id);\r\n};\r\n$x.isV8 = function (win) {\r\n try { return win.urlAddVer && win.location.host.toLowerCase().replace(/\\:\\d+/, \"\") == location.host.toLowerCase().replace(/\\:\\d+/, \"\") } catch (e) { return false; }\r\n};\r\n$x.top = function (wind) {\r\n //__isKYTop需要在General.js加载之前设置\r\n if ($x.topw) return $x.topw;\r\n var win = wind || window;\r\n while (!win.__isKYTop && win.parent && win.parent != win && $x.isV8(win.parent) && !win.parent.__isNotTop) {\r\n win = win.parent;\r\n }\r\n if (win.__isKYTop) { return $x.topw = win; }\r\n while (win.dialogArguments != null) {\r\n win = $x.top(win.dialogArguments);\r\n }\r\n return $x.topw = win;\r\n};\r\n$x.opener = function (win) {\r\n if (!win) win = self\r\n try { var r = win.opener; var t = r.document.body; return r } catch (e) { } // 避免跨域报错\r\n}\r\n$x.ajax = function (func, d, fnOk, fnError, thiso) {\r\n d.FuncName = func;\r\n return $x.top().ajaxSync.call(window, d, fnOk, fnError, thiso || window);\r\n};\r\n$x.ajaxAsync = function (func, d, fnOk, fnError, thiso) {\r\n d.FuncName = func;\r\n return $x.top().ajaxAsync.call(window, d, fnOk, fnError, thiso || window);\r\n};\r\n$x.ajaxMsg = function (func, d) {\r\n d.FuncName = func;\r\n return $x.top().ajaxMsg.apply(this, [].slice.call(arguments, 1))\r\n}\r\n//异步,返回Promise。注意接口报错会弹框提示。如要不提示请用ajaxAsync\r\n$x.ajaxPro = function (func, d) {\r\n d.FuncName = func;\r\n return $x.top().ajaxAsync(d)\r\n}\r\n$x.tx = function (o) {\r\n return o.innerText || o.textContent || \"\";\r\n}\r\n$x.toJSON = function (o) {\r\n return $x.top().$.toJSON(o);\r\n};\r\n$x.appRoot = function () {\r\n if (!$x.appRootV) {\r\n var scripts = document.getElementsByTagName(\"script\");\r\n for (var i = 0; i < scripts.length; i++) {\r\n var strJsPath = scripts[i].src.split('?')[0].toLowerCase();\r\n var pos = strJsPath.indexOf('/scripts/');\r\n if (pos > -1) {\r\n $x.appRootV = scripts[i].src.split('?')[0].substring(0, pos + 1);\r\n break;\r\n }\r\n }\r\n if ($x.appRootV.indexOf(\":\") == -1 && $x.appRootV.substr(0, 1) != \"/\") {\r\n $x.appRootV = $x.curPath() + $x.appRootV;\r\n }\r\n }\r\n return $x.appRootV;\r\n};\r\n$x.curPath = function (win) {\r\n if (!$x.curPathV) {\r\n var li = (win || window).location.href.split('?')[0].replace(\"\\\\\", \"/\").lastIndexOf(\"/\") + 1;\r\n $x.curPathV = (win || window).location.href.substring(0, li);\r\n }\r\n return $x.curPathV;\r\n};\r\n$x.toAbsUrl = function (relativeUrl, compareUrlWin) {\r\n if (!/^https?:|^javascript:/i.test(relativeUrl) && !/^\\//.test(relativeUrl)) {\r\n if (typeof compareUrlWin != \"string\") {\r\n compareUrlWin = $x.curPath(compareUrlWin);\r\n }\r\n relativeUrl = compareUrlWin + relativeUrl;\r\n }\r\n return relativeUrl;\r\n};\r\n$x.queryString = function (name, search) {\r\n return getQueryStr(name, search)\r\n}\r\n$x.isIE = function (ver) {\r\n var tr = /(msie\\s*|trident.*rv:)([\\d]+)/i.exec(navigator.userAgent);\r\n var r = tr ? { v: parseInt(tr[2]) } : false;\r\n return (r.v == ver || !ver) ? r : false;\r\n};\r\n$x.getScrollbarWidth = function () {\r\n var topx = $x.top().$x;\r\n if (topx && topx != this) { return topx.getScrollbarWidth(); }\r\n if (!this.scbarWidth) {\r\n var noScroll, scroll, oDiv = document.createElement(\"DIV\");\r\n oDiv.style.cssText = \"position:absolute; top:-1000px; width:100px; height:100px; overflow:hidden;\";\r\n noScroll = document.body.appendChild(oDiv).clientWidth;\r\n oDiv.style.overflowY = \"scroll\";\r\n scroll = oDiv.clientWidth;\r\n document.body.removeChild(oDiv);\r\n this.scbarWidth = noScroll - scroll;\r\n }\r\n return this.scbarWidth;\r\n}\r\n$x.keyCode = function (e) {\r\n var key = window.event ? e.keyCode : e.which;\r\n return key;\r\n};\r\n$x.docWin = function (doc) {\r\n doc = doc || document;\r\n return doc.defaultView || doc.parentWindow;\r\n};\r\n$x.loadJs = function (src, win) {\r\n win = win || window;\r\n var sc = win.document.createElement('script');\r\n win.document.getElementsByTagName('head')[0].appendChild(sc).src = src;\r\n};\r\n$x.close = function () {\r\n (window.closeIfr || window.close)();\r\n};\r\n$x.postTo = function (url, data, target) {\r\n var form = document.createElement(\"form\");\r\n form.style.display = 'none'; form.method = 'post';\r\n form.action = url; form.target = target || '';\r\n for (var n in data) {\r\n if (typeof (data[n]) != 'object' && typeof (data[n]) != 'function') {\r\n $('').appendTo(form).val(data[n]);\r\n }\r\n }\r\n document.body.appendChild(form).submit();\r\n document.body.removeChild(form);\r\n}\r\n$x.clone = function (obj) {\r\n if (!obj) return obj;\r\n return JSON.parse(JSON.stringify(obj));\r\n}\r\nfunction getEvent() {\r\n if (window.event) {\r\n return window.event;\r\n }\r\n var f = arguments.callee.caller;\r\n do {\r\n var e = f.arguments[0];\r\n if (e && Object.prototype.toString.call(e).match(/^\\[.+Event\\]$/)) {\r\n return e;\r\n }\r\n } while (f = f.caller);\r\n}\r\n\r\nif (window.$) $.fn.extend({\r\n dropCss: function (name) {\r\n return this.each(function () {\r\n if (this.style.removeProperty) this.style.removeProperty(name);\r\n if (this.style.removeAttribute) this.style.removeAttribute(name);\r\n })\r\n }\r\n});\r\n\r\nvar CookieUtil = new Object();\r\nCookieUtil.getCookieVal = function (offset) {\r\n var endstr = document.cookie.indexOf(\";\", offset);\r\n if (endstr == -1) {\r\n endstr = document.cookie.length;\r\n }\r\n return unescape(document.cookie.substring(offset, endstr));\r\n};\r\nCookieUtil.GetCookie = function (name) {\r\n var arg = name + \"=\";\r\n var alen = arg.length;\r\n var clen = document.cookie.length;\r\n var i = 0;\r\n while (i < clen) {\r\n var j = i + alen;\r\n if (document.cookie.substring(i, j) == arg) {\r\n return CookieUtil.getCookieVal(j);\r\n }\r\n i = document.cookie.indexOf(\" \", i) + 1;\r\n if (i == 0) {\r\n break;\r\n }\r\n }\r\n return null;\r\n};\r\nCookieUtil.DeleteCookie = function (name, path, domain) {\r\n if (CookieUtil.GetCookie(name)) {\r\n path = (self._virPath || '') + (path || '');\r\n document.cookie = name + \"=\" +\r\n ((path) ? \"; path=\" + path : \"\") +\r\n ((domain) ? \"; domain=\" + domain : \"\") +\r\n \"; expires=Thu, 01-Jan-1970 00:00:01 GMT\";\r\n }\r\n};\r\nCookieUtil.SetCookie = function (name, value, expires, path, domain, secure) {\r\n if (location.href.match(/^https/i)) secure = true;\r\n CookieUtil.DeleteCookie(name, \"/\");\r\n path = (self._virPath || '') + (path || '');\r\n document.cookie = name + \"=\" + escape(value) +\r\n ((expires) ? \"; expires=\" + expires.toGMTString() : \"\") +\r\n ((path) ? \"; path=\" + path : \"\") +\r\n ((domain) ? \"; domain=\" + domain : \"\") +\r\n ((secure) ? \"; secure\" : \"\");\r\n};\r\nCookieUtil.SetLongCookie = function (name, value, path, domain, secure) {\r\n if (location.href.match(/^https/i)) secure = true;\r\n path = (self._virPath || '') + (path || '');\r\n document.cookie = name + \"=\" + escape(value) +\r\n \"; expires=Mon, 31 Jan 3200 16:00:00 UTC\" +\r\n ((path) ? \"; path=\" + path : \"\") +\r\n ((domain) ? \"; domain=\" + domain : \"\") +\r\n ((secure) ? \"; secure\" : \"\");\r\n}\r\n\r\nvar SessionUtil = {\r\n Expire: function (url, msg) {\r\n var tp = $x.top();\r\n try {\r\n if (tp.parent.__isKyH5) tp = tp.parent; //上层是嘉扬h5页面\r\n } catch (e) { }\r\n if (!tp._isJumping) {\r\n tp._isJumping = 1\r\n if (!window.confirm(msg)) return;\r\n\r\n var target = tp.location.pathname + tp.location.search + tp.location.hash;\r\n if (!/\\b(sid|paths)=\\w+/.test(target) || /\\/Win\\.\\w+/i.test(tp.location.pathname)) //带sid校验的url无法跳回,只能跳首页(Win.aspx除外)\r\n url += url.indexOf('?') > -1 ? '&' : '?' + 'targeturl=' + encodeURIComponent(target);\r\n tp.location.href = url;\r\n }\r\n },\r\n Timeout: function (url, msg) {\r\n this.Expire(url, msg || kygMsg(900146))\r\n },\r\n};\r\n\r\n\r\nvar maskUtil = {\r\n init: function () {\r\n if (!this.inited) {\r\n this.count = 0;\r\n this.inited = 1;\r\n var maskHTML = '
';\r\n maskHTML += '';\r\n $(document.body).append(maskHTML);\r\n } else if (this.count == 0) {\r\n $('.i-masker,.i-progress-bar').addClass('trans-mask');\r\n }\r\n },\r\n show: function (transparentAll) {\r\n this.init();\r\n var spin = $('.i-progress-bar');\r\n var maskTop = $(window).height() / 2 - spin.outerHeight() / 2 - 30 + 'px';\r\n var maskLeft = $(window).width() / 2 - spin.outerWidth() / 2 + 'px';\r\n spin.css({ top: maskTop, left: maskLeft });\r\n $('.i-masker').css({ 'display': 'block' }); //蒙版\r\n if (!transparentAll) {\r\n var topMask = $x.top().maskUtil;\r\n if (!topMask || !topMask.totalCount) { // 避免2个转圈(只显示蒙版而不显示转圈)\r\n spin.show();\r\n setTimeout(function () { spin.removeClass('trans-mask'); }, 500);\r\n setTimeout(function () { $('.i-masker').removeClass('trans-mask'); }, 1600);\r\n }\r\n }\r\n this.addCount(1);\r\n },\r\n hide: function () {\r\n if (this.count > 0) this.addCount(-1);\r\n if (this.count == 0) {\r\n var layer = '.i-masker,.i-progress-bar';\r\n $(layer).hide();\r\n $x.top().$(layer).hide();\r\n }\r\n },\r\n addCount: function (num) {\r\n this.count += num;\r\n var topMask = $x.top().maskUtil;\r\n topMask.totalCount = (topMask.totalCount || 0) + num;\r\n }\r\n}\r\nvar maskUtilImage = {\r\n id: 'grd-c-ico',\r\n src: function (obj) {\r\n var imgClick = $(obj).attr(\"onclick\"), src;\r\n if (imgClick) {\r\n src = imgClick.indexOf('openImage') == -1 ? imgClick : imgClick.split('\\'')[1];\r\n }\r\n if (!src) src = $(obj).attr('src')\r\n if (!src) src = $x.appRoot() + \"Styles/Images/defaultphoto.jpg\"\r\n return src;\r\n },\r\n show: function (obj) {\r\n var maskHTML = '