PageSourceSearch

https://dwhcmall.com/iv/js/iv_util.js?v=260729

js dwhcmall.com collected 2026-10-07 04:18:45 UTC 491,303 bytes, 5,952 lines download raw bytes

vendor: 2,656 bytes, lines 1-22
1
2/** ===============================================================================================================================================
3 * 
4 * 랜덤 번호 생성
5 * - 배너매니저 등 사용할 경우 ord 변수가 이미 존재하여, 없는 경우에만 변수 생성하도록 정의
6 */
7if(typeof ord === 'undefind'){
8    var ord=Math.random();
9};
10/* ================================================================================================================================================== */
11/** ===============================================================================================================================================
12 * 
13 * IV$ 
14 * - 이미 호출 중인 jQuery(1.4.4이상)가 있는 경우 추가 호출하지않고 사용 / 충족하지 않을때만 jQuery 1.11.2버전을 로드합니다.
15 * - ! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license
16 * @IV$ {function} jQuery 충돌방지 별칭 
17 */
18var IV$;
19try {
20    ( IVCallJQuery = function(){
21        if(typeof jQuery === 'undefined'){
22            !function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){var n=[],r=n.slice,i=n.concat,o=n.push,a=n.indexOf,s={},l=s.toString,u=s.hasOwnProperty,c={},d="1.11.2",f=function(e,t){return new f.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,h=/^-ms-/,m=/-([\da-z])/gi,g=function(e,t){return t.toUpperCase()};function v(e){var t=e.length,n=f.type(e);return"function"!==n&&!f.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e))}f.fn=f.prototype={jquery:d,constructor:f,selector:"",length:0,toArray:function(){return r.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:r.call(this)},pushStack:function(e){var t=f.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return f.each(this,e,t)},map:function(e){return this.pushStack(f.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(r.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:o,sort:n.sort,splice:n.splice},f.extend=f.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[s]||{}
22,s++),"object"==typeof a||f.isFunction(a)||(a={}),s===l&&(a=this,s--);l>s;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],a!==(n=i[r])&&(u&&n&&(f.isPlainObject(n)||(t=f.isArray(n)))?(t?(t=!1,o=e&&f.isArray(e)?e:[]):o=e&&f.isPlainObject(e)?e:{},a[r]=f.extend(u,o,n)):void 0!==n&&(a[r]=n));return a},f.extend({expando:"jQuery"+(d+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===f.type(e)},isArray:Array.isArray||function(e){return"array"===f.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!f.isArray(e)&&e-parseFloat(e)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==f.type(e)||e.nodeType||f.isWindow(e))return!1;try{if(e.constructor&&!u.call(e,"constructor")&&!u.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}if(c.ownLast)for(t in e)return u.call(e,t);for(t in e);return void 0===t||u.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?s[l.call(e)]||"object":typeof e},globalEval:function(t){t&&f.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(h,"ms-").replace(m,g)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r=0,i=e.length,o=v(e);if(n){if(o)for(;i>r&&!1!==t.apply(e[r],n);r++);else for(r in e)if(!1===t.apply(e[r],n))break}else if(o)for(;i>r&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(v(Object(e))?f.merge(n,"string"==typeof e?[e]:e):o.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(a)return a.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;)e[i++]=t[r++];if(n!=n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;o>i;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,o=0,a=e.length,s=[];if(v(e))for(;a>o;o++)null!=(r=t(e[o],o,n))&&s.push(r);else for(o in e)null!=(r=t(e[o],o,n))&&s.push(r);return i.apply([],s)},guid:1,proxy:function(e,t){var n,i,o;return"string"==typeof t&&(o=e[t],t=e,e=o),f.isFunction(e)?(n=r.call(arguments,2),(i=function(){return e.apply(t||this,n.concat(r.call(arguments)))}).guid=e.guid=e.guid||f.guid++,i):void 0},now:function(){return+new Date},support:c}),f.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){s["[object "+t+"]"]=t.toLowerCase()});var y=function(e){var t,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v,y,b,x="sizzle"+1*new Date,w=e.document,T=0,C=0,N=ae(),E=ae(),k=ae(),S=function(e,t){return e===t&&(d=!0),0},A=1<<31,D={}.hasOwnProperty,j=[],L=j.pop,H=j.push,q=j.push,_=j.slice,M=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},F="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",O="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",P=B.replace("w","w#"),R="\\["+O+"*("+B+")(?:"+O+"*([*^$|!~]?=)"+O+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+P+"))|)"+O+"*\\]",W=":("+B+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+R+")*)|.*)\\)|)",$=new RegExp(O+"+","g"),z=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),I=new RegExp("^"+O+"*,"+O+"*"),X=new RegExp("^"+O+"*([>+~]|"+O+")"+O+"*"),U=new RegExp("="+O+"*([^\\]'\"]*?)"+O+"*\\]","g"),V=new RegExp(W),J=new RegExp("^"+P+"$"),Y={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B.replace("w","w*")+")"),ATTR:new RegExp("^"+R),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),bool:new RegExp("^(?:"+F+")$","i"),needsContext:new RegExp("^"+O+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=/'|\\/g,ne=new RegExp("\\\\([\\da-f]{1,6}"+O+"?|("+O+")|.)","ig"),re=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},ie=function(){f()};try{q.apply(j=_.call(w.childNodes),w.childNodes),j[w.childNodes.length].nodeType}catch(e){q={apply:j.length?function(e,t){H.apply(e,_.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}
22function oe(e,t,r,i){var o,s,u,c,d,h,v,y,T,C;if((t?t.ownerDocument||t:w)!==p&&f(t),r=r||[],c=(t=t||p).nodeType,"string"!=typeof e||!e||1!==c&&9!==c&&11!==c)return r;if(!i&&m){if(11!==c&&(o=Z.exec(e)))if(u=o[1]){if(9===c){if(!(s=t.getElementById(u))||!s.parentNode)return r;if(s.id===u)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(u))&&b(t,s)&&s.id===u)return r.push(s),r}else{if(o[2])return q.apply(r,t.getElementsByTagName(e)),r;if((u=o[3])&&n.getElementsByClassName)return q.apply(r,t.getElementsByClassName(u)),r}if(n.qsa&&(!g||!g.test(e))){if(y=v=x,T=t,C=1!==c&&e,1===c&&"object"!==t.nodeName.toLowerCase()){for(h=a(e),(v=t.getAttribute("id"))?y=v.replace(te,"\\$&"):t.setAttribute("id",y),y="[id='"+y+"'] ",d=h.length;d--;)h[d]=y+ge(h[d]);T=ee.test(e)&&he(t.parentNode)||t,C=h.join(",")}if(C)try{return q.apply(r,T.querySelectorAll(C)),r}catch(e){}finally{v||t.removeAttribute("id")}}}return l(e.replace(z,"$1"),t,r,i)}function ae(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function se(e){return e[x]=!0,e}function le(e){var t=p.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ue(e,t){for(var n=e.split("|"),i=e.length;i--;)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||A)-(~e.sourceIndex||A);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function fe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pe(e){return se(function(t){return t=+t,se(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function he(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},f=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==p&&9===a.nodeType&&a.documentElement?(p=a,h=a.documentElement,(i=a.defaultView)&&i!==i.top&&(i.addEventListener?i.addEventListener("unload",ie,!1):i.attachEvent&&i.attachEvent("onunload",ie)),m=!o(a),n.attributes=le(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=le(function(e){return e.appendChild(a.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=K.test(a.getElementsByClassName),n.getById=le(function(e){return h.appendChild(e).id=x,!a.getElementsByName||!a.getElementsByName(x).length}),n.getById?(r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},r.filter.ID=function(e){var t=e.replace(ne,re);return function(e){return e.getAttribute("id")===t}}):(delete r.find.ID,r.filter.ID=function(e){var t=e.replace(ne,re);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){return m?t.getElementsByClassName(e):void 0},v=[],g=[],(n.qsa=K.test(a.querySelectorAll))&&(le(function(e){h.appendChild(e).innerHTML="<a id='"+x+"'></a><select id='"+x+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+O+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+O+"*(?:value|"+F+")"),e.querySelectorAll("[id~="+x+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+x+"+*").length||g.push(".#.+[+~]")}),le(function(e){var t=a.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+O+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(n.matchesSelector=K.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&le(function(e){n.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),v.push("!=",W)}),g=g.length&&new RegExp(g.join("|")),v=v.length&&new RegExp(v.j
vendor: 6,266 bytes, line 22
22oin("|")),t=K.test(h.compareDocumentPosition),b=t||K.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},S=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===a||e.ownerDocument===w&&b(w,e)?-1:t===a||t.ownerDocument===w&&b(w,t)?1:c?M(c,e)-M(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],l=[t];if(!i||!o)return e===a?-1:t===a?1:i?-1:o?1:c?M(c,e)-M(c,t):0;if(i===o)return ce(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;s[r]===l[r];)r++;return r?ce(s[r],l[r]):s[r]===w?-1:l[r]===w?1:0},a):p},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&f(e),t=t.replace(U,"='$1']"),!(!n.matchesSelector||!m||v&&v.test(t)||g&&g.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,p,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==p&&f(e),b(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==p&&f(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!m):void 0;return void 0!==o?o:n.attributes||!m?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(d=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(S),d){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ne,re),e[3]=(e[3]||e[4]||e[5]||"").replace(ne,re),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ne,re).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(p=(u=(c=g[x]||(g[x]={}))[e]||[])[0]===T&&u[1],f=u[0]===T&&u[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){c[e]=[T,p,f];break}}else if(y&&(u=(t[x]||(t[x]={}))[e])&&u[0]===T)f=u[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[x]||(d[x]={}))[e]=[T,f]),d!==t)););return(f-=i)===r||f%r==0&&f/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[x]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=M(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(z,"$1"));return r[x]?se(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(ne,re),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return J.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(ne,re).toLowerCase(),function(t){var n;do{if(n=m?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)}
vendor: 5,116 bytes, line 22
22,input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:pe(function(){return[0]}),last:pe(function(e,t){return[t-1]}),eq:pe(function(e,t,n){return[0>n?n+t:n]}),even:pe(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:pe(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:pe(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:pe(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=de(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=fe(t);function me(){}function ge(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function ve(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=C++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,u=[T,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if((s=(l=t[x]||(t[x]={}))[r])&&s[0]===T&&s[1]===o)return u[2]=s[2];if(l[r]=u,u[2]=e(t,n,a))return!0}}}function ye(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function xe(e,t,n,r,i,o){return r&&!r[x]&&(r=xe(r)),i&&!i[x]&&(i=xe(i,o)),se(function(o,a,s,l){var u,c,d,f=[],p=[],h=a.length,m=o||function(e,t,n){for(var r=0,i=t.length;i>r;r++)oe(e,t[r],n);return n}(t||"*",s.nodeType?[s]:s,[]),g=!e||!o&&t?m:be(m,f,e,s,l),v=n?i||(o?e:h||r)?[]:a:g;if(n&&n(g,v,s,l),r)for(u=be(v,p),r(u,[],s,l),c=u.length;c--;)(d=u[c])&&(v[p[c]]=!(g[p[c]]=d));if(o){if(i||e){if(i){for(u=[],c=v.length;c--;)(d=v[c])&&u.push(g[c]=d);i(null,v=[],u,l)}for(c=v.length;c--;)(d=v[c])&&(u=i?M(o,d):f[c])>-1&&(o[u]=!(a[u]=d))}}else v=be(v===a?v.splice(h,v.length):v),i?i(null,a,v,l):q.apply(a,v)})}function we(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],l=a?1:0,c=ve(function(e){return e===t},s,!0),d=ve(function(e){return M(t,e)>-1},s,!0),f=[function(e,n,r){var i=!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):d(e,n,r));return t=null,i}];o>l;l++)if(n=r.relative[e[l].type])f=[ve(ye(f),n)];else{if((n=r.filter[e[l].type].apply(null,e[l].matches))[x]){for(i=++l;o>i&&!r.relative[e[i].type];i++);return xe(l>1&&ye(f),l>1&&ge(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,i>l&&we(e.slice(l,i)),o>i&&we(e=e.slice(i)),o>i&&ge(e))}f.push(n)}return ye(f)}function Te(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,l,c){var d,f,h,m=0,g="0",v=o&&[],y=[],b=u,x=o||i&&r.find.TAG("*",c),w=T+=null==b?1:Math.random()||.1,C=x.length;for(c&&(u=a!==p&&a);g!==C&&null!=(d=x[g]);g++){if(i&&d){for(f=0;h=e[f++];)if(h(d,a,s)){l.push(d);break}c&&(T=w)}n&&((d=!h&&d)&&m--,o&&v.push(d))}if(m+=g,n&&g!==m){for(f=0;h=t[f++];)h(v,y,a,s);if(o){if(m>0)for(;g--;)v[g]||y[g]||(y[g]=L.call(l));y=be(y)}q.apply(l,y),c&&!o&&y.length>0&&m+t.length>1&&oe.uniqueSort(l)}return c&&(T=w,u=b),v};return n?se(o):o}return me.prototype=r.filters=r.pseudos,r.setFilters=new me,a=oe.tokenize=function(e,t){var n,i,o,a,s,l,u,c=E[e+" "];if(c)return t?0:c.slice(0);for(s=e,l=[],u=r.preFilter;s;){for(a in(!n||(i=I.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),n=!1,(i=X.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(z," ")}),s=s.slice(n.length)),r.filter)!(i=Y[a].exec(s))||u[a]&&!(i=u[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):E(e,l).slice(0)},s=oe.compile=function(e,t){var n,r=[],i=[],o=k[e+" "];if(!o){for(t||(t=a(e)),n=t.length;n--;)(o=we(t[n]))[x]?r.push(o):i.push(o);(o=k(e,Te(i,r))).selector=e}return o},l=oe.select=function(e,t,i,o){var l,u,c,d,f,p="function"==typeof e&&e,h=!o&&a(e=p.selector||e);if(i=i||[],1===h.length){if((u=h[0]=h[0].slice(0)).length>2&&"ID"===(c=u[0]).type&&n.getById&&9===t.nodeType&&m&&r.relative[u[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(ne,re),t)||[])[0]))return i;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(l=Y.needsContext.test(e)?0:u.length;l--&&(c=u[l],!r.relative[d=c.type]);)if((f=r.find[d])&&(o=f(c.matches[0].replace(ne,re),ee.test(u[0].type)&&he(t.parentNode)||t))){if(u.splice(l,1),!(e=o.length&&ge(u)))return q.apply(i,o),i;break}}return(p||s(e,h))(o,t,!m,i,ee.test(e)&&he(t.parentNode)||t),i},n.sortStable=x.split("").sort(S).join("")===x,n.detectDuplicates=!!d,f(),n.sortDetached=le(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),le(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ue("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&le(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}
vendor: 6,217 bytes, line 22
22)||ue("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),le(function(e){return null==e.getAttribute("disabled")})||ue(F,function(e,t,n){var r;return n?void 0:!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);f.find=y,f.expr=y.selectors,f.expr[":"]=f.expr.pseudos,f.unique=y.uniqueSort,f.text=y.getText,f.isXMLDoc=y.isXML,f.contains=y.contains;var b=f.expr.match.needsContext,x=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function T(e,t,n){if(f.isFunction(t))return f.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return f.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(w.test(t))return f.filter(t,e,n);t=f.filter(t,e)}return f.grep(e,function(e){return f.inArray(e,t)>=0!==n})}f.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?f.find.matchesSelector(r,e)?[r]:[]:f.find.matches(e,f.grep(t,function(e){return 1===e.nodeType}))},f.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(f(e).filter(function(){for(t=0;i>t;t++)if(f.contains(r[t],this))return!0}));for(t=0;i>t;t++)f.find(e,r[t],n);return(n=this.pushStack(i>1?f.unique(n):n)).selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?f(e):e||[],!1).length}});var C,N=e.document,E=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(f.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(!(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:E.exec(e))||!n[1]&&t)return!t||t.jquery?(t||C).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof f?t[0]:t,f.merge(this,f.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:N,!0)),x.test(n[1])&&f.isPlainObject(t))for(n in t)f.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if((r=N.getElementById(n[2]))&&r.parentNode){if(r.id!==n[2])return C.find(e);this.length=1,this[0]=r}return this.context=N,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):f.isFunction(e)?void 0!==C.ready?C.ready(e):e(f):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),f.makeArray(e,this))}).prototype=f.fn,C=f(N);var k=/^(?:parents|prev(?:Until|All))/,S={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){do{e=e[t]}while(e&&1!==e.nodeType);return e}f.extend({dir:function(e,t,n){for(var r=[],i=e[t];i&&9!==i.nodeType&&(void 0===n||1!==i.nodeType||!f(i).is(n));)1===i.nodeType&&r.push(i),i=i[t];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),f.fn.extend({has:function(e){var t,n=f(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(f.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=b.test(e)||"string"!=typeof e?f(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&f.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?f.unique(o):o)},index:function(e){return e?"string"==typeof e?f.inArray(this[0],f(e)):f.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(f.unique(f.merge(this.get(),f(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),f.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return f.dir(e,"parentNode")},parentsUntil:function(e,t,n){return f.dir(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return f.dir(e,"nextSibling")},prevAll:function(e){return f.dir(e,"previousSibling")},nextUntil:function(e,t,n){return f.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return f.dir(e,"previousSibling",n)},siblings:function(e){return f.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return f.sibling(e.firstChild)},contents:function(e){return f.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:f.merge([],e.childNodes)}},function(e,t){f.fn[e]=function(n,r){var i=f.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=f.filter(r,i)),this.length>1&&(S[e]||(i=f.unique(i)),k.test(e)&&(i=i.reverse())),this.pushStack(i)}});var D,j=/\S+/g,L={};function H(){N.addEventListener?(N.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(N.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))}function q(){(N.addEventListener||"load"===event.type||"complete"===N.readyState)&&(H(),f.ready())}f.Callbacks=function(e){e="string"==typeof e?L[e]||function(e){var t=L[e]={};return f.each(e.match(j)||[],function(e,n){t[n]=!0}),t}(e):f.extend({},e);var t,n,r,i,o,a,s=[],l=!e.once&&[],u=function(d){for(n=e.memory&&d,r=!0,o=a||0,a=0,i=s.length,t=!0;s&&i>o;o++)if(!1===s[o].apply(d[0],d[1])&&e.stopOnFalse){n=!1;break}t=!1,s&&(l?l.length&&u(l.shift()):n?s=[]:c.disable())},c={add:function(){if(s){var r=s.length;!function t(n){f.each(n,function(n,r){var i=f.type(r);"function"===i?e.unique&&c.has(r)||s.push(r):r&&r.length&&"string"!==i&&t(r)})}(arguments),t?i=s.length:n&&(a=r,u(n))}return this},remove:function(){return s&&f.each(arguments,function(e,n){for(var r;(r=f.inArray(n,s,r))>-1;)s.splice(r,1),t&&(i>=r&&i--,o>=r&&o--)}),this},has:function(e){return e?f.inArray(e,s)>-1:!(!s||!s.length)},empty:function(){return s=[],i=0,this},disable:function(){return s=l=n=void 0,this},disabled:function(){return!s},lock:function(){return l=void 0,n||c.disable(),this},locked:function(){return!l},fireWith:function(e,n){return!s||r&&!l||(n=[e,(n=n||[]).slice?n.slice():n],t?l.push(n):u(n)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},f.extend({Deferred:function(e){var t=[["resolve","done",f.Callbacks("once memory"),"resolved"],["reject","fail",f.Callbacks("once memory"),"rejected"],["notify","progress",f.Callbacks("memory")]],n="pe
22nding",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return f.Deferred(function(n){f.each(t,function(t,o){var a=f.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&f.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?f.extend(e,r):r}},i={};return r.pipe=r.then,f.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,i,o=0,a=r.call(arguments),s=a.length,l=1!==s||e&&f.isFunction(e.promise)?s:0,u=1===l?e:f.Deferred(),c=function(e,n,i){return function(o){n[e]=this,i[e]=arguments.length>1?r.call(arguments):o,i===t?u.notifyWith(n,i):--l||u.resolveWith(n,i)}};if(s>1)for(t=new Array(s),n=new Array(s),i=new Array(s);s>o;o++)a[o]&&f.isFunction(a[o].promise)?a[o].promise().done(c(o,i,a)).fail(u.reject).progress(c(o,n,t)):--l;return l||u.resolveWith(i,a),u.promise()}}),f.fn.ready=function(e){return f.ready.promise().done(e),this},f.extend({isReady:!1,readyWait:1,holdReady:function(e){e?f.readyWait++:f.ready(!0)},ready:function(e){if(!0===e?!--f.readyWait:!f.isReady){if(!N.body)return setTimeout(f.ready);f.isReady=!0,!0!==e&&--f.readyWait>0||(D.resolveWith(N,[f]),f.fn.triggerHandler&&(f(N).triggerHandler("ready"),f(N).off("ready")))}}}),f.ready.promise=function(t){if(!D)if(D=f.Deferred(),"complete"===N.readyState)setTimeout(f.ready);else if(N.addEventListener)N.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{N.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var n=!1;try{n=null==e.frameElement&&N.documentElement}catch(e){}n&&n.doScroll&&function e(){if(!f.isReady){try{n.doScroll("left")}catch(t){return setTimeout(e,50)}H(),f.ready()}}()}return D.promise(t)};var _,M="undefined";for(_ in f(c))break;c.ownLast="0"!==_,c.inlineBlockNeedsLayout=!1,f(function(){var e,t,n,r;(n=N.getElementsByTagName("body")[0])&&n.style&&(t=N.createElement("div"),(r=N.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==M&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",c.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=N.createElement("div");if(null==c.deleteExpando){c.deleteExpando=!0;try{delete e.test}catch(e){c.deleteExpando=!1}}e=null}(),f.acceptData=function(e){var t=f.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||!0!==t&&e.getAttribute("classid")===t)};var F=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function B(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(O,"-$1").toLowerCase();if("string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:F.test(n)?f.parseJSON(n):n)}catch(e){}f.data(e,t,n)}else n=void 0}return n}function P(e){var t;for(t in e)if(("data"!==t||!f.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function R(e,t,r,i){if(f.acceptData(e)){var o,a,s=f.expando,l=e.nodeType,u=l?f.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||void 0!==r||"string"!=typeof t)return c||(c=l?e[s]=n.pop()||f.guid++:s),u[c]||(u[c]=l?{}:{toJSON:f.noop}),("object"==typeof t||"function"==typeof t)&&(i?u[c]=f.extend(u[c],t):u[c].data=f.extend(u[c].data,t)),a=u[c],i||(a.data||(a.data={}),a=a.data),void 0!==r&&(a[f.camelCase(t)]=r),"string"==typeof t?null==(o=a[t])&&(o=a[f.camelCase(t)]):o=a,o}}function W(e,t,n){if(f.acceptData(e)){var r,i,o=e.nodeType,a=o?f.cache:e,s=o?e[f.expando]:f.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){f.isArray(t)?t=t.concat(f.map(t,f.camelCase)):t in r?t=[t]:t=(t=f.camelCase(t))in r?[t]:t.split(" "),i=t.length;for(;i--;)delete r[t[i]];if(n?!P(r):!f.isEmptyObject(r))return}
22(n||(delete a[s].data,P(a[s])))&&(o?f.cleanData([e],!0):c.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}f.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return!!(e=e.nodeType?f.cache[e[f.expando]]:e[f.expando])&&!P(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)}}),f.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=f.data(o),1===o.nodeType&&!f._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(0===(r=a[n].name).indexOf("data-")&&B(o,r=f.camelCase(r.slice(5)),i[r]));f._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){f.data(this,e)}):arguments.length>1?this.each(function(){f.data(this,e,t)}):o?B(o,e,f.data(o,e)):void 0},removeData:function(e){return this.each(function(){f.removeData(this,e)})}}),f.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=f._data(e,t),n&&(!r||f.isArray(n)?r=f._data(e,t,f.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=f.queue(e,t),r=n.length,i=n.shift(),o=f._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){f.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return f._data(e,n)||f._data(e,n,{empty:f.Callbacks("once memory").add(function(){f._removeData(e,t+"queue"),f._removeData(e,n)})})}}),f.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?f.queue(this[0],e):void 0===t?this:this.each(function(){var n=f.queue(this,e,t);f._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&f.dequeue(this,e)})},dequeue:function(e){return this.each(function(){f.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=f.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=f._data(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,z=["Top","Right","Bottom","Left"],I=function(e,t){return e=t||e,"none"===f.css(e,"display")||!f.contains(e.ownerDocument,e)},X=f.access=function(e,t,n,r,i,o,a){var s=0,l=e.length,u=null==n;if("object"===f.type(n))for(s in i=!0,n)f.access(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,f.isFunction(r)||(a=!0),u&&(a?(t.call(e,r),t=null):(u=t,t=function(e,t,n){return u.call(f(e),n)})),t))for(;l>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:u?t.call(e):l?t(e[0],n):o},U=/^(?:checkbox|radio)$/i;!function(){var e=N.createElement("input"),t=N.createElement("div"),n=N.createDocumentFragment();if(t.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c.leadingWhitespace=3===t.firstChild.nodeType,c.tbody=!t.getElementsByTagName("tbody").length,c.htmlSerialize=!!t.getElementsByTagName("link").length,c.html5Clone="<:nav></:nav>"!==N.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),c.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",c.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",c.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,c.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){c.noCloneEvent=!1}),t.cloneNode(!0).click()),null==c.deleteExpando){c.deleteExpando=!0;try{delete t.test}catch(e){c.deleteExpando=!1}}}(),function(){var t,n,r=N.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(c[t+"Bubbles"]=n in e)||(r.setAttribute(n,"t"),c[t+"Bubbles"]=!1===r.attributes[n].expando);r=null}();var V=/^(?:input|select|textarea)$/i,J=/^key/,Y=/^(?:mouse|pointer|contextmenu)|click/,G=/^(?:focusinfocus|focusoutblur)$/,Q=/^([^.]*)(?:\.(.+)|)$/;function K(){return!0}function Z(){return!1}function ee(){try{return N.activeElement}catch(e){}}function te(e){var t=ne.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}f.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,u,c,d,p,h,m,g,v=f._data(e);if(v){for(n.handler&&(n=(l=n).handler,i=l.selector),n.guid||(n.guid=f.guid++),(a=v.events)||(a=v.events={}),(c=v.handle)||((c=v.handle=function(e){return typeof f===M||e&&f.event.triggered===e.type?void 0:f.event.dispatch.apply(c.elem,arguments)}).elem=e),s=(t=(t||"").match(j)||[""]).length;s--;)h=g=(o=Q.exec(t[s])||[])[1],m=(o[2]||"").split(".").sort(),h&&(u=f.event.special[h]||{},h=(i?u.delegateType:u.bindType)||h,u=f.event.special[h]||{},d=f.extend({type:h,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&f.expr.match.needsContext.test(i),namespace:m.join(".")},l),(p=a[h])||((p=a[h]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,r,m,c)||(e.addEventListener?e.addEventListener(h,c,!1):e.attachEvent&&e.attachEvent("on"+h,c))),u.add&&(u.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,d):p.push(d),f.event.global[h]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,d,p,h,m,g,v=f.hasData(e)&&f._data(e);if(v&&(c=v.events)){for(u=(t=(t||"").match(j)||[""]).length;u--;)if(h=g=(s=Q.exec(t[u])||[])[1],m=(s[2]||"").split(".").sort(),h){for(d=f.event.special[h]||{},p=c[h=(r?d.delegateType:d.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=p.length;o--;)a=p[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(p.splice(o,1),a.selector&&p.delegateCount--,d.remove&&d.remove.call(e,a));l&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,m,v.handle)||f.removeEvent(e,h,v.handle),delete c[h])}else for(h in c)f.event.remove(e,h+t[u],n,r,!0);f.isEmptyObject(c)&&(delete v.handle,f._removeData(e,"events"))}},trigger:function(t,n,r,i){var o,a,s,l,c,d,p,h=[r||N],m=u.call(t,"type")?t.type:t,g=u.call(t,"namespace")?t.namespace.split("."):[];if(s=d=r=r||N,3!==r.nodeType&&8!==r.nodeType&&!G.test(m+f.event.triggered)&&(m.indexOf(".")>=0&&(g=m.split("."),m=g.shift(),g.sort()),a=m.indexOf(":")<0&&"on"+m,(t=t[f.expando]?t:new f.Event(m,"object"==typeof t&&t)).isTrigger=i?2:3,t.namespace=g.join("."),t.n
22amespace_re=t.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:f.makeArray(n,[t]),c=f.event.special[m]||{},i||!c.trigger||!1!==c.trigger.apply(r,n))){if(!i&&!c.noBubble&&!f.isWindow(r)){for(l=c.delegateType||m,G.test(l+m)||(s=s.parentNode);s;s=s.parentNode)h.push(s),d=s;d===(r.ownerDocument||N)&&h.push(d.defaultView||d.parentWindow||e)}for(p=0;(s=h[p++])&&!t.isPropagationStopped();)t.type=p>1?l:c.bindType||m,(o=(f._data(s,"events")||{})[t.type]&&f._data(s,"handle"))&&o.apply(s,n),(o=a&&s[a])&&o.apply&&f.acceptData(s)&&(t.result=o.apply(s,n),!1===t.result&&t.preventDefault());if(t.type=m,!i&&!t.isDefaultPrevented()&&(!c._default||!1===c._default.apply(h.pop(),n))&&f.acceptData(r)&&a&&r[m]&&!f.isWindow(r)){(d=r[a])&&(r[a]=null),f.event.triggered=m;try{r[m]()}catch(e){}f.event.triggered=void 0,d&&(r[a]=d)}return t.result}},dispatch:function(e){e=f.event.fix(e);var t,n,i,o,a,s=[],l=r.call(arguments),u=(f._data(this,"events")||{})[e.type]||[],c=f.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,e)){for(s=f.event.handlers.call(this,e,u),t=0;(o=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,a=0;(i=o.handlers[a++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,void 0!==(n=((f.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l))&&!1===(e.result=n)&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(!0!==l.disabled||"click"!==e.type)){for(i=[],o=0;s>o;o++)void 0===i[n=(r=t[o]).selector+" "]&&(i[n]=r.needsContext?f(n,this).index(l)>=0:f.find(n,this,null,[l]).length),i[n]&&i.push(r);i.length&&a.push({elem:l,handlers:i})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[f.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Y.test(i)?this.mouseHooks:J.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new f.Event(o),t=r.length;t--;)e[n=r[t]]=o[n];return e.target||(e.target=o.srcElement||N),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(i=(r=e.target.ownerDocument||N).documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ee()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===ee()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return f.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return f.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=f.extend(new f.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?f.event.trigger(i,null,t):f.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},f.removeEvent=N.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===M&&(e[r]=null),e.detachEvent(r,n))},f.Event=function(e,t){return this instanceof f.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?K:Z):this.type=e,t&&f.extend(this,t),this.timeStamp=e&&e.timeStamp||f.now(),void(this[f.expando]=!0)):new f.Event(e,t)},f.Event.prototype={isDefaultPrevented:Z,isPropagationStopped:Z,isImmediatePropagationStopped:Z,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=K,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=K,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=K,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}}
vendor: 13,037 bytes, line 22
22,f.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){f.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=e.relatedTarget,i=e.handleObj;return(!r||r!==this&&!f.contains(this,r))&&(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),c.submitBubbles||(f.event.special.submit={setup:function(){return!f.nodeName(this,"form")&&void f.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=f.nodeName(t,"input")||f.nodeName(t,"button")?t.form:void 0;n&&!f._data(n,"submitBubbles")&&(f.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),f._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&f.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return!f.nodeName(this,"form")&&void f.event.remove(this,"._submit")}}),c.changeBubbles||(f.event.special.change={setup:function(){return V.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(f.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),f.event.simulate("change",this,e,!0)})),!1):void f.event.add(this,"beforeactivate._change",function(e){var t=e.target;V.test(t.nodeName)&&!f._data(t,"changeBubbles")&&(f.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||f.event.simulate("change",this.parentNode,e,!0)}),f._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return f.event.remove(this,"._change"),!V.test(this.nodeName)}}),c.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){f.event.simulate(t,e.target,f.event.fix(e),!0)};f.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=f._data(r,t);i||r.addEventListener(e,n,!0),f._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=f._data(r,t)-1;i?f._data(r,t,i):(r.removeEventListener(e,n,!0),f._removeData(r,t))}}}),f.fn.extend({on:function(e,t,n,r,i){var o,a;if("object"==typeof e){for(o in"string"!=typeof t&&(n=n||t,t=void 0),e)this.on(o,t,n,e[o],i);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),!1===r)r=Z;else if(!r)return this;return 1===i&&(a=r,(r=function(e){return f().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=f.guid++)),this.each(function(){f.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,f(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(!1===t||"function"==typeof t)&&(n=t,t=void 0),!1===n&&(n=Z),this.each(function(){f.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){f.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?f.event.trigger(e,t,n,!0):void 0}});var ne="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",re=/ jQuery\d+="(?:null|\d+)"/g,ie=new RegExp("<(?:"+ne+")[\\s/>]","i"),oe=/^\s+/,ae=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,se=/<([\w:]+)/,le=/<tbody/i,ue=/<|&#?\w+;/,ce=/<(?:script|style|link)/i,de=/checked\s*(?:[^=]|=\s*.checked.)/i,fe=/^$|\/(?:java|ecma)script/i,pe=/^true\/(.*)/,he=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,me={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:c.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},ge=te(N).appendChild(N.createElement("div"));function ve(e,t){var n,r,i=0,o=typeof e.getElementsByTagName!==M?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==M?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||f.nodeName(r,t)?o.push(r):f.merge(o,ve(r,t));return void 0===t||t&&f.nodeName(e,t)?f.merge([e],o):o}function ye(e){U.test(e.type)&&(e.defaultChecked=e.checked)}function be(e,t){return f.nodeName(e,"table")&&f.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function xe(e){return e.type=(null!==f.find.attr(e,"type"))+"/"+e.type,e}function we(e){var t=pe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Te(e,t){for(var n,r=0;null!=(n=e[r]);r++)f._data(n,"globalEval",!t||f._data(t[r],"globalEval"))}function Ce(e,t){if(1===t.nodeType&&f.hasData(e)){var n,r,i,o=f._data(e),a=f._data(t,o),s=o.events;if(s)for(n in delete a.handle,a.events={},s)for(r=0,i=s[n].length;i>r;r++)f.event.add(t,n,s[n][r]);a.data&&(a.data=f.extend({},a.data))}}function Ne(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!c.noCloneEvent&&t[f.expando]){for(r in(i=f._data(t)).events)f.removeEvent(t,r,i.handle);t.removeAttribute(f.expando)}"script"===n&&t.text!==e.text?(xe(t).text=e.text,we(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),c.html5Clone&&e.innerHTML&&!f.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&U.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}me.optgroup=me.option,me.tbody=me.tfoot=me.colgroup=me.caption=me.thead,me.th=me.td,f.extend({clone:function(e,t,n){var r,i,o,a,s,l=f.contains(e.ownerDocument,e);if(c.html5Clone||f.isXMLDoc(e)||!ie.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(ge.innerHTML=e.outerHTML,ge.removeChild(o=ge.firstChild)),!(c.noCloneEvent&&c.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||f.isXMLDoc(e)))for(r=ve(o),s=ve(e),a=0;null!=(i=s[a]);++a)r[a]&&Ne(i,r[a]);if(t)if(n)for(s=s||ve(e),r=r||ve(o),a=0;null!=(i=s[a]);a++)Ce(i,r[a]);else Ce(e,o);return(r=ve(o,"script")).length>0&&Te(r,!l&&ve(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,l,u,d,p=e.length,h=te(t),m=[],g=0;p>g;g++)if((o=e[g])||0===o)if("object"===f.type(o))f.merge(m,o.nodeType?[o]:o);else if(ue.test(o)){for(s=s||h.appendChild(t.createElement("div")),l=(se.exec(o)||["",""])[1].toLowerCase(),d=me[l]||me._default,s.innerHTML=d[1]+o.replace(ae,"<$1></$2>")+d[2],i=d[0];i--;)s=s.lastChild;if(!c.leadingWhitespace&&oe.test(o)&&m.push(t.createTextNode(oe.exec(o)[0])),!c.tbody)for(i=(o="table"!==l||le.test(o)?"<table>"!==d[1]||le.test(o)?0:s:s.firstChild)&&o.childNodes.length;i--;)f.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u);for(f.merge(m,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=h.lastChild}else m.push(t.createTextNode(o));for(s&&h.removeChild(s),c.appendChecked||f.grep(ve(m,"input"),ye),g=0;o=m[g++];)if((!r||-1===f.inArray(o,r))&&(a=f.contains(o.ownerDocument,o),s=ve(h.appendChild(o),"script"),a&&Te(s),n))for(i=0;o=s[i++];)fe.test(o.type||"")&&n.push(o);return s=null,h},cleanData:function(e,t){for(var r,i,o,a,s=0,l=f.expando,u=f.cache,d=c.deleteExpando,p=f.event.special;null!=(r=e[s]);s++)if((t||f.acceptData(r))&&(a=(o=r[l])&&u[o])){if(a.events)for(i in a.events)p[i]?f.event.remove(r,i):f.removeEvent(r,i,a.handle);u[o]&&(delete u[o],d?delete r[l]:typeof r.removeAttribute!==M?r.removeAttribute(l):r[l]=null,n.push(o))}}}),f.fn.extend({text:function(e){return X(this,function(e){return void 0===e?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||N).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||be(this,e).appendChild(e)})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=be(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?f.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||f.cleanData(ve(n)),n.parentNode&&(t&&f.contains(n.ownerDocument,n)&&Te(ve(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&f.cleanData(ve(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&f.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return f.clone(this,e,t)})},html:function(e){return X(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(re,""):void 0;if(!("string"!=typeof e||ce.test(e)||!c.htmlSerialize&&ie.test(e)||!c.leadingWhitespace&&oe.test(e)||me[(se.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(ae,"<$1></$2>");try{for(;r>n;n++)1===(t=this[n]||{}).nodeType&&(f.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,f.cleanData(ve(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=i.apply([],e);var n,r,o,a,s,l,u=0,d=this.length,p=this,h=d-1,m=e[0],g=f.isFunction(m);if(g||d>1&&"string"==typeof m&&!c.checkClone&&de.test(m))return this.each(function(n){var r=p.eq(n);g&&(e[0]=m.call(this,n,r.html())),r.domManip(e,t)});if(d&&(n=(l=f.buildFragment(e,this[0].ownerDocument,!1,this)).firstChild,1===l.childNodes.length&&(l=n),n)){for(o=(a=f.map(ve(l,"script"),xe)).length;d>u;u++)r=l,u!==h&&(r=f.clone(r,!0,!0),o&&f.merge(a,ve(r,"script"))),t.call(this[u],r,u);if(o)for(s=a[a.length-1].ownerDocument,f.map(a,we),u=0;o>u;u++)r=a[u],fe.test(r.type||"")&&!f._data(r,"globalEval")&&f.contains(s,r)&&(r.src?f._evalUrl&&f._evalUrl(r.src):f.globalEval((r.text||r.textContent||r.innerHTML||"").replace(he,"")));l=n=null}return this}}),f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){f.fn[e]=function(e){for(var n,r=0,i=[],a=f(e),s=a.length-1;s>=r;r++)n=r===s?this:this.clone(!0),f(a[r])[t](n),o.apply(i,n.get());return this.pushStack(i)}});var Ee,ke={};function Se(t,n){var r,i=f(n.createElement(t)).appendTo(n.body),o=e.getDefaultComputedStyle&&(r=e.getDefaultComputedStyle(i[0]))?r.display:f.css(i[0],"display");return i.detach(),o}function Ae(e){var t=N,n=ke[e];return n||("none"!==(n=Se(e,t))&&n||((t=((Ee=(Ee||f("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentWindow||Ee[0].contentDocument).document).write(),t.close(),n=Se(e,t),Ee.detach()),ke[e]=n),n}!function(){var e;c.shrinkWrapBlocks=function(){return null!=e?e:(e=!1,(n=N.getElementsByTagName("body")[0])&&n.style?(t=N.createElement("div"),(r=N.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==M&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(N.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0);var t,n,r}}();var De,je,Le=/^margin/,He=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),qe=/^(top|right|bottom|left)$/;function _e(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}e.getComputedStyle?(De=function(t){return t.ownerDocument.defaultView.opener?t.ownerDocument.defaultView.getComputedStyle(t,null):e.getComputedStyle(t,null)},je=function(e,t,n){var r,i,o,a,s=e.style;return a=(n=n||De(e))?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==a||f.contains(e.ownerDocument,e)||(a=f.style(e,t)),He.test(a)&&Le.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0===a?a:a+""}):N.documentElement.currentStyle&&(De=function(e){return e.currentStyle},je=function(e,t,n){var r,i,o,a,s=e.style;return null==(a=(n=n||De(e))?n[t]:void 0)&&s&&s[t]&&(a=s[t]),He.test(a)&&!qe.test(t)&&(r=s.left,(o=(i=e.runtimeStyle)&&i.left)&&(i.left
vendor: 9,307 bytes, line 22
22=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"}),function(){var t,n,r,i,o,a,s;if((t=N.createElement("div")).innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=(r=t.getElementsByTagName("a")[0])&&r.style){function l(){var t,n,r,l;(n=N.getElementsByTagName("body")[0])&&n.style&&(t=N.createElement("div"),(r=N.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),t.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",i=o=!1,s=!0,e.getComputedStyle&&(i="1%"!==(e.getComputedStyle(t,null)||{}).top,o="4px"===(e.getComputedStyle(t,null)||{width:"4px"}).width,(l=t.appendChild(N.createElement("div"))).style.cssText=t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",l.style.marginRight=l.style.width="0",t.style.width="1px",s=!parseFloat((e.getComputedStyle(l,null)||{}).marginRight),t.removeChild(l)),t.innerHTML="<table><tr><td></td><td>t</td></tr></table>",(l=t.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",(a=0===l[0].offsetHeight)&&(l[0].style.display="",l[1].style.display="none",a=0===l[0].offsetHeight),n.removeChild(r))}n.cssText="float:left;opacity:.5",c.opacity="0.5"===n.opacity,c.cssFloat=!!n.cssFloat,t.style.backgroundClip="content-box",t.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle="content-box"===t.style.backgroundClip,c.boxSizing=""===n.boxSizing||""===n.MozBoxSizing||""===n.WebkitBoxSizing,f.extend(c,{reliableHiddenOffsets:function(){return null==a&&l(),a},boxSizingReliable:function(){return null==o&&l(),o},pixelPosition:function(){return null==i&&l(),i},reliableMarginRight:function(){return null==s&&l(),s}})}}(),f.swap=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};var Me=/alpha\([^)]*\)/i,Fe=/opacity\s*=\s*([^)]*)/,Oe=/^(none|table(?!-c[ea]).+)/,Be=new RegExp("^("+$+")(.*)$","i"),Pe=new RegExp("^([+-])=("+$+")","i"),Re={position:"absolute",visibility:"hidden",display:"block"},We={letterSpacing:"0",fontWeight:"400"},$e=["Webkit","O","Moz","ms"];function ze(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=$e.length;i--;)if((t=$e[i]+n)in e)return t;return r}function Ie(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)(r=e[a]).style&&(o[a]=f._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&I(r)&&(o[a]=f._data(r,"olddisplay",Ae(r.nodeName)))):(i=I(r),(n&&"none"!==n||!i)&&f._data(r,"olddisplay",i?n:f.css(r,"display"))));for(a=0;s>a;a++)(r=e[a]).style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function Xe(e,t,n){var r=Be.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ue(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=f.css(e,n+z[o],!0,i)),r?("content"===n&&(a-=f.css(e,"padding"+z[o],!0,i)),"margin"!==n&&(a-=f.css(e,"border"+z[o]+"Width",!0,i))):(a+=f.css(e,"padding"+z[o],!0,i),"padding"!==n&&(a+=f.css(e,"border"+z[o]+"Width",!0,i)));return a}function Ve(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=De(e),a=c.boxSizing&&"border-box"===f.css(e,"boxSizing",!1,o);if(0>=i||null==i){if((0>(i=je(e,t,o))||null==i)&&(i=e.style[t]),He.test(i))return i;r=a&&(c.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+Ue(e,t,n||(a?"border":"content"),r,o)+"px"}function Je(e,t,n,r,i){return new Je.prototype.init(e,t,n,r,i)}f.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=je(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:c.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=f.camelCase(t),l=e.style;if(t=f.cssProps[s]||(f.cssProps[s]=ze(l,s)),a=f.cssHooks[t]||f.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];if("string"===(o=typeof n)&&(i=Pe.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(f.css(e,t)),o="number"),null!=n&&n==n&&("number"!==o||f.cssNumber[s]||(n+="px"),c.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{l[t]=n}catch(e){}}},css:function(e,t,n,r){var i,o,a,s=f.camelCase(t);return t=f.cssProps[s]||(f.cssProps[s]=ze(e.style,s)),(a=f.cssHooks[t]||f.cssHooks[s])&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=je(e,t,r)),"normal"===o&&t in We&&(o=We[t]),""===n||n?(i=parseFloat(o),!0===n||f.isNumeric(i)?i||0:o):o}}),f.each(["height","width"],function(e,t){f.cssHooks[t]={get:function(e,n,r){return n?Oe.test(f.css(e,"display"))&&0===e.offsetWidth?f.swap(e,Re,function(){return Ve(e,t,r)}):Ve(e,t,r):void 0},set:function(e,n,r){var i=r&&De(e);return Xe(0,n,r?Ue(e,t,r,c.boxSizing&&"border-box"===f.css(e,"boxSizing",!1,i),i):0)}}}),c.opacity||(f.cssHooks.opacity={get:function(e,t){return Fe.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=f.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===f.trim(o.replace(Me,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=Me.test(o)?o.replace(Me,i):o+" "+i)}}),f.cssHooks.marginRight=_e(c.reliableMarginRight,function(e,t){return t?f.swap(e,{display:"inline-block"},je,[e,"marginRight"]):void 0}),f.each({margin:"",padding:"",border:"Width"},function(e,t){f.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+z[r]+t]=o[r]||o[r-2]||o[0];return i}},Le.test(e)||(f.cssHooks[e+t].set=Xe)}),f.fn.extend({css:function(e,t){return X(this,function(e,t,n){var r,i,o={},a=0;if(f.isArray(t)){for(r=De(e),i=t.length;i>a;a++)o[t[a]]=f.css(e,t[a],!1,r);return o}return void 0!==n?f.style(e,t,n):f.css(e,t)},e,t,arguments.length>1)},show:function(){return Ie(this,!0)},hide:function(){return Ie(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){I(this)?f(this).show():f(this).hide()})}}),f.Tween=Je,Je.prototype={constructor:Je,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(f.cssNumber[n]?"":"px")},cur:function(){var e=Je.propHooks[this.prop];return e&&e.get?e.get(this):Je.propHooks._default.get(this)},run:function(e){var t,n=Je.propHooks[this.prop];return this.pos=t=this.options.duration?f.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Je.propHooks._default.set(this),this}},Je.prototype.init.prototype=Je.prototype,Je.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=f.css(e.elem,e.prop,""))&&"auto"!==t?t:0:e.elem[e.prop]},set:function(e){f.fx.step[e.prop]?f.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[f.cssProps[e.prop]]||f.cssHooks[e.prop])?f.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Je.propHooks.scrollTop=Je.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},f.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},f.fx=Je.prototype.init,f.fx.step={};var Ye,Ge,Qe=/^(?:toggle|show|hide)$/,Ke=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),Ze=/queueHooks$/,et=[function(e,t,n){var r,i,o,a,s,l,u,d=this,p={},h=e.style,m=e.nodeType&&I(e),g=f._data(e,"fxshow");for(r in n.queue||(null==(s=f._queueHooks(e,"fx")).unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,f.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],u=f.css(e,"display"),"inline"===("none"===u?f._data(e,"olddisplay")||Ae(e.nodeName):u)&&"none"===f.css(e,"float")&&(c.inlineBlockNeedsLayout&&"inline"!==Ae(e.nodeName)?h.zoom=1:h.display="inline-block")),n.overflow&&(h.overflow="hidden",c.shrinkWrapBlocks()||d.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),t)if(i=t[r],Qe.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(m?"hide":"show")){if("show"!==i||!g||void 0===g[r])continue;m=!0}p[r]=g&&g[r]||f.style(e,r)}else u=void 0;if(f.isEmptyObject(p))"inline"===("none"===u?Ae(e.nodeName):u)&&(h.display=u);else for(r in g?"hidden"in g&&(m=g.hidden):g=f._data(e,"fxshow",{}),o&&(g.hidden=!m),m?f(e).show():d.done(function(){f(e).hide()}),d.done(function(){var t;for(t in f._removeData(e,"fxshow"),p)f.style(e,t,p[t])}),p)a=it(m?g[r]:0,r,d),r in g||(g[r]=a.start,m&&(a.end=a.start,a.start="width"===r||"he
22ight"===r?1:0))}],tt={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Ke.exec(t),o=i&&i[3]||(f.cssNumber[e]?"":"px"),a=(f.cssNumber[e]||"px"!==o&&+r)&&Ke.exec(f.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do{a/=s=s||".5",f.style(n.elem,e,a+o)}while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function nt(){return setTimeout(function(){Ye=void 0}),Ye=f.now()}function rt(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)r["margin"+(n=z[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function it(e,t,n){for(var r,i=(tt[t]||[]).concat(tt["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function ot(e,t,n){var r,i,o=0,a=et.length,s=f.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;for(var t=Ye||nt(),n=Math.max(0,u.startTime+u.duration-t),r=1-(n/u.duration||0),o=0,a=u.tweens.length;a>o;o++)u.tweens[o].run(r);return s.notifyWith(e,[u,r,n]),1>r&&a?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:f.extend({},t),opts:f.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Ye||nt(),duration:n.duration,tweens:[],createTween:function(t,n){var r=f.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=f.camelCase(n)],o=e[n],f.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=f.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,u.opts.specialEasing);a>o;o++)if(r=et[o].call(u,e,c,u.opts))return r;return f.map(c,it,u),f.isFunction(u.opts.start)&&u.opts.start.call(e,u),f.fx.timer(f.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}f.Animation=f.extend(ot,{tweener:function(e,t){f.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],tt[n]=tt[n]||[],tt[n].unshift(t)},prefilter:function(e,t){t?et.unshift(e):et.push(e)}}),f.speed=function(e,t,n){var r=e&&"object"==typeof e?f.extend({},e):{complete:n||!n&&t||f.isFunction(e)&&e,duration:e,easing:n&&t||t&&!f.isFunction(t)&&t};return r.duration=f.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in f.fx.speeds?f.fx.speeds[r.duration]:f.fx.speeds._default,(null==r.queue||!0===r.queue)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){f.isFunction(r.old)&&r.old.call(this),r.queue&&f.dequeue(this,r.queue)},r},f.fn.extend({fadeTo:function(e,t,n,r){return this.filter(I).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=f.isEmptyObject(e),o=f.speed(t,n,r),a=function(){var t=ot(this,f.extend({},e),o);(i||f._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=f.timers,a=f._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&Ze.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&f.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=f._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=f.timers,a=r?r.length:0;for(n.finish=!0,f.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),f.each(["toggle","show","hide"],function(e,t){var n=f.fn[t];f.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(rt(t,!0),e,r,i)}}),f.each({slideDown:rt("show"),slideUp:rt("hide"),slideToggle:rt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){f.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),f.timers=[],f.fx.tick=function(){var e,t=f.timers,n=0;for(Ye=f.now();n<t.length;n++)(e=t[n])()||t[n]!==e||t.splice(n--,1);t.length||f.fx.stop(),Ye=void 0},f.fx.timer=function(e){f.timers.push(e),e()?f.fx.start():f.timers.pop()},f.fx.interval=13,f.fx.start=function(){Ge||(Ge=setInterval(f.fx.tick,f.fx.interval))},f.fx.stop=function(){clearInterval(Ge),Ge=null},f.fx.speeds={slow:600,fast:200,_default:400},f.fn.delay=function(e,t){return e=f.fx&&f.fx.speeds[e]||e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e,t,n,r,i;(t=N.createElement("div")).setAttribute("className","t"),t.innerHTML="  <link/><table></table><a href='/a'>a</a>
22<input type='checkbox'/>",r=t.getElementsByTagName("a")[0],i=(n=N.createElement("select")).appendChild(N.createElement("option")),e=t.getElementsByTagName("input")[0],r.style.cssText="top:1px",c.getSetAttribute="t"!==t.className,c.style=/top/.test(r.getAttribute("style")),c.hrefNormalized="/a"===r.getAttribute("href"),c.checkOn=!!e.value,c.optSelected=i.selected,c.enctype=!!N.createElement("form").enctype,n.disabled=!0,c.optDisabled=!i.disabled,(e=N.createElement("input")).setAttribute("value",""),c.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),c.radioValue="t"===e.value}();var at=/\r/g;f.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=f.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,f(this).val()):e)?i="":"number"==typeof i?i+="":f.isArray(i)&&(i=f.map(i,function(e){return null==e?"":e+""})),(t=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=f.valHooks[i.type]||f.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(at,""):null==n?"":n:void 0}}),f.extend({valHooks:{option:{get:function(e){var t=f.find.attr(e,"value");return null!=t?t:f.trim(f.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;s>l;l++)if(!(!(n=r[l]).selected&&l!==i||(c.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&f.nodeName(n.parentNode,"optgroup"))){if(t=f(n).val(),o)return t;a.push(t)}return a}
vendor: 4,151 bytes, line 22
22,set:function(e,t){for(var n,r,i=e.options,o=f.makeArray(t),a=i.length;a--;)if(r=i[a],f.inArray(f.valHooks.option.get(r),o)>=0)try{r.selected=n=!0}catch(e){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]={set:function(e,t){return f.isArray(t)?e.checked=f.inArray(f(e).val(),t)>=0:void 0}},c.checkOn||(f.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var st,lt,ut=f.expr.attrHandle,ct=/^(?:checked|selected)$/i,dt=c.getSetAttribute,ft=c.input;f.fn.extend({attr:function(e,t){return X(this,f.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){f.removeAttr(this,e)})}}),f.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return typeof e.getAttribute===M?f.prop(e,t,n):(1===o&&f.isXMLDoc(e)||(t=t.toLowerCase(),r=f.attrHooks[t]||(f.expr.match.bool.test(t)?lt:st)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:null==(i=f.find.attr(e,t))?void 0:i:null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void f.removeAttr(e,t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(j);if(o&&1===e.nodeType)for(;n=o[i++];)r=f.propFix[n]||n,f.expr.match.bool.test(n)?ft&&dt||!ct.test(n)?e[r]=!1:e[f.camelCase("default-"+n)]=e[r]=!1:f.attr(e,n,""),e.removeAttribute(dt?n:r)},attrHooks:{type:{set:function(e,t){if(!c.radioValue&&"radio"===t&&f.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),lt={set:function(e,t,n){return!1===t?f.removeAttr(e,n):ft&&dt||!ct.test(n)?e.setAttribute(!dt&&f.propFix[n]||n,n):e[f.camelCase("default-"+n)]=e[n]=!0,n}},f.each(f.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ut[t]||f.find.attr;ut[t]=ft&&dt||!ct.test(t)?function(e,t,r){var i,o;return r||(o=ut[t],ut[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,ut[t]=o),i}:function(e,t,n){return n?void 0:e[f.camelCase("default-"+t)]?t.toLowerCase():null}}),ft&&dt||(f.attrHooks.value={set:function(e,t,n){return f.nodeName(e,"input")?void(e.defaultValue=t):st&&st.set(e,t,n)}}),dt||(st={set:function(e,t,n){var r=e.getAttributeNode(n);return r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},ut.id=ut.name=ut.coords=function(e,t,n){var r;return n?void 0:(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},f.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:st.set},f.attrHooks.contenteditable={set:function(e,t,n){st.set(e,""!==t&&t,n)}},f.each(["width","height"],function(e,t){f.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),c.style||(f.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var pt=/^(?:input|select|textarea|button|object)$/i,ht=/^(?:a|area)$/i;f.fn.extend({prop:function(e,t){return X(this,f.prop,e,t,arguments.length>1)},removeProp:function(e){return e=f.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(e){}})}}),f.extend({propFix:{for:"htmlFor",class:"className"},prop:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return(1!==o||!f.isXMLDoc(e))&&(t=f.propFix[t]||t,i=f.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=f.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||ht.test(e.nodeName)&&e.href?0:-1}}}}),c.hrefNormalized||f.each(["href","src"],function(e,t){f.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),c.optSelected||(f.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),f.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){f.propFix[this.toLowerCase()]=this}),c.enctype||(f.propFix.enctype="encoding");var mt=/[\t\r\n\f]/g;f.fn.extend({addClass:function(e){var t,n,r,i,o,a,s=0,l=this.length,u="string"==typeof e&&e;
22if(f.isFunction(e))return this.each(function(t){f(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(j)||[];l>s;s++)if(r=1===(n=this[s]).nodeType&&(n.className?(" "+n.className+" ").replace(mt," "):" ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=f.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(e){var t,n,r,i,o,a,s=0,l=this.length,u=0===arguments.length||"string"==typeof e&&e;if(f.isFunction(e))return this.each(function(t){f(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(j)||[];l>s;s++)if(r=1===(n=this[s]).nodeType&&(n.className?(" "+n.className+" ").replace(mt," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");a=e?f.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(f.isFunction(e)?function(n){f(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,r=0,i=f(this),o=e.match(j)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else(n===M||"boolean"===n)&&(this.className&&f._data(this,"__className__",this.className),this.className=this.className||!1===e?"":f._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(mt," ").indexOf(t)>=0)return!0;return!1}}),f.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(e,t){f.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),f.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var gt=f.now(),vt=/\?/,yt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;f.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=f.trim(t+"");return i&&!f.trim(i.replace(yt,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():f.error("Invalid JSON: "+t)},f.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{e.DOMParser?n=(new DOMParser).parseFromString(t,"text/xml"):((n=new ActiveXObject("Microsoft.XMLDOM")).async="false",n.loadXML(t))}catch(e){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||f.error("Invalid XML: "+t),n};var bt,xt,wt=/#.*$/,Tt=/([?&])_=[^&]*/,Ct=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nt=/^(?:GET|HEAD)$/,Et=/^\/\//,kt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,St={},At={},Dt="*/".concat("*");try{xt=location.href}catch(e){(xt=N.createElement("a")).href="",xt=xt.href}function jt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(j)||[];if(f.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Lt(e,t,n,r){var i={},o=e===At;function a(s){var l;return i[s]=!0,f.each(e[s]||[],function(e,s){var u=s(t,n,r);return"string"!=typeof u||o||i[u]?o?!(l=u):void 0:(t.dataTypes.unshift(u),a(u),!1)}),l}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Ht(e,t){var n,r,i=f.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&f.extend(!0,e,n),e}bt=kt.exec(xt.toLowerCase())||[],f.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:xt,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}
vendor: 5,286 bytes, line 22
22,flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ht(Ht(e,f.ajaxSettings),t):Ht(f.ajaxSettings,e)},ajaxPrefilter:jt(St),ajaxTransport:jt(At),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,r,i,o,a,s,l,u,c=f.ajaxSetup({},t),d=c.context||c,p=c.context&&(d.nodeType||d.jquery)?f(d):f.event,h=f.Deferred(),m=f.Callbacks("once memory"),g=c.statusCode||{},v={},y={},b=0,x="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!u)for(u={};t=Ct.exec(o);)u[t[1].toLowerCase()]=t[2];t=u[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?o:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(c.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)g[t]=[g[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||x;return l&&l.abort(t),T(0,t),this}};if(h.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,c.url=((e||c.url||xt)+"").replace(wt,"").replace(Et,bt[1]+"//"),c.type=t.method||t.type||c.method||c.type,c.dataTypes=f.trim(c.dataType||"*").toLowerCase().match(j)||[""],null==c.crossDomain&&(n=kt.exec(c.url.toLowerCase()),c.crossDomain=!(!n||n[1]===bt[1]&&n[2]===bt[2]&&(n[3]||("http:"===n[1]?"80":"443"))===(bt[3]||("http:"===bt[1]?"80":"443")))),c.data&&c.processData&&"string"!=typeof c.data&&(c.data=f.param(c.data,c.traditional)),Lt(St,c,t,w),2===b)return w;for(r in(s=f.event&&c.global)&&0==f.active++&&f.event.trigger("ajaxStart"),c.type=c.type.toUpperCase(),c.hasContent=!Nt.test(c.type),i=c.url,c.hasContent||(c.data&&(i=c.url+=(vt.test(i)?"&":"?")+c.data,delete c.data),!1===c.cache&&(c.url=Tt.test(i)?i.replace(Tt,"$1_="+gt++):i+(vt.test(i)?"&":"?")+"_="+gt++)),c.ifModified&&(f.lastModified[i]&&w.setRequestHeader("If-Modified-Since",f.lastModified[i]),f.etag[i]&&w.setRequestHeader("If-None-Match",f.etag[i])),(c.data&&c.hasContent&&!1!==c.contentType||t.contentType)&&w.setRequestHeader("Content-Type",c.contentType),w.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+("*"!==c.dataTypes[0]?", "+Dt+"; q=0.01":""):c.accepts["*"]),c.headers)w.setRequestHeader(r,c.headers[r]);if(c.beforeSend&&(!1===c.beforeSend.call(d,w,c)||2===b))return w.abort();for(r in x="abort",{success:1,error:1,complete:1})w[r](c[r]);if(l=Lt(At,c,t,w)){w.readyState=1,s&&p.trigger("ajaxSend",[w,c]),c.async&&c.timeout>0&&(a=setTimeout(function(){w.abort("timeout")},c.timeout));try{b=1,l.send(v,T)}catch(e){if(!(2>b))throw e;T(-1,e)}}else T(-1,"No Transport");function T(e,t,n,r){var u,v,y,x,T,C=t;2!==b&&(b=2,a&&clearTimeout(a),l=void 0,o=r||"",w.readyState=e>0?4:0,u=e>=200&&300>e||304===e,n&&(x=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){l.unshift(a);break}if(l[0]in n)o=l[0];else{for(a in n){if(!l[0]||e.converters[a+" "+l[0]]){o=a;break}r||(r=a)}o=o||r}return o?(o!==l[0]&&l.unshift(o),n[o]):void 0}(c,w,n)),x=function(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=u[l+" "+o]||u["* "+o]))for(i in u)if((s=i.split(" "))[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){!0===a?a=u[i]:!0!==u[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(c,x,w,u),u?(c.ifModified&&((T=w.getResponseHeader("Last-Modified"))&&(f.lastModified[i]=T),(T=w.getResponseHeader("etag"))&&(f.etag[i]=T)),204===e||"HEAD"===c.type?C="nocontent":304===e?C="notmodified":(C=x.state,v=x.data,u=!(y=x.error))):(y=C,(e||!C)&&(C="error",0>e&&(e=0))),w.status=e,w.statusText=(t||C)+"",u?h.resolveWith(d,[v,C,w]):h.rejectWith(d,[w,C,y]),w.statusCode(g),g=void 0,s&&p.trigger(u?"ajaxSuccess":"ajaxError",[w,c,u?v:y]),m.fireWith(d,[w,C]),s&&(p.trigger("ajaxComplete",[w,c]),--f.active||f.event.trigger("ajaxStop")))}return w},getJSON:function(e,t,n){return f.get(e,t,n,"json")},getScript:function(e,t){return f.get(e,void 0,t,"script")}}),f.each(["get","post"],function(e,t){f[t]=function(e,n,r,i){return f.isFunction(n)&&(i=i||r,r=n,n=void 0),f.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),f._evalUrl=function(e){return f.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},f.fn.extend({wrapAll:function(e){if(f.isFunction(e))return this.each(function(t){f(this).wrapAll(e.call(this,t))});if(this[0]){var t=f(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(f.isFunction(e)?function(t){f(this).wrapInner(e.call(this,t))}:function(){var t=f(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=f.isFunction(e);return this.each(function(n){f(this).wrapAll(t?e.call(this,n):e)})}
vendor: 5,879 bytes, line 22
22,unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()}}),f.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!c.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||f.css(e,"display"))},f.expr.filters.visible=function(e){return!f.expr.filters.hidden(e)};var qt=/%20/g,_t=/\[\]$/,Mt=/\r?\n/g,Ft=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Bt(e,t,n,r){var i;if(f.isArray(t))f.each(t,function(t,i){n||_t.test(e)?r(e,i):Bt(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==f.type(t))r(e,t);else for(i in t)Bt(e+"["+i+"]",t[i],n,r)}f.param=function(e,t){var n,r=[],i=function(e,t){t=f.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=f.ajaxSettings&&f.ajaxSettings.traditional),f.isArray(e)||e.jquery&&!f.isPlainObject(e))f.each(e,function(){i(this.name,this.value)});else for(n in e)Bt(n,e[n],t,i);return r.join("&").replace(qt,"+")},f.fn.extend({serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=f.prop(this,"elements");return e?f.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!f(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ft.test(e)&&(this.checked||!U.test(e))}).map(function(e,t){var n=f(this).val();return null==n?null:f.isArray(n)?f.map(n,function(e){return{name:t.name,value:e.replace(Mt,"\r\n")}}):{name:t.name,value:n.replace(Mt,"\r\n")}}).get()}}),f.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$t()||function(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}()}:$t;var Pt=0,Rt={},Wt=f.ajaxSettings.xhr();function $t(){try{return new e.XMLHttpRequest}catch(e){}}e.attachEvent&&e.attachEvent("onunload",function(){for(var e in Rt)Rt[e](void 0,!0)}),c.cors=!!Wt&&"withCredentials"in Wt,(Wt=c.ajax=!!Wt)&&f.ajaxTransport(function(e){var t;if(!e.crossDomain||c.cors)return{send:function(n,r){var i,o=e.xhr(),a=++Pt;if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)o[i]=e.xhrFields[i];for(i in e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest"),n)void 0!==n[i]&&o.setRequestHeader(i,n[i]+"");o.send(e.hasContent&&e.data||null),t=function(n,i){var s,l,u;if(t&&(i||4===o.readyState))if(delete Rt[a],t=void 0,o.onreadystatechange=f.noop,i)4!==o.readyState&&o.abort();else{u={},s=o.status,"string"==typeof o.responseText&&(u.text=o.responseText);try{l=o.statusText}catch(e){l=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=u.text?200:404}u&&r(s,l,u,o.getAllResponseHeaders())},e.async?4===o.readyState?setTimeout(t):o.onreadystatechange=Rt[a]=t:t()},abort:function(){t&&t(void 0,!0)}}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return f.globalEval(e),e}}}),f.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),f.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=N.head||f("head")[0]||N.documentElement;return{send:function(r,i){(t=N.createElement("script")).async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var zt=[],It=/(=)\?(?=&|$)|\?\?/;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||f.expando+"_"+gt++;return this[e]=!0,e}}),f.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(It.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&It.test(t.data)&&"data");return s||"jsonp"===t.dataTypes[0]?(i=t.jsonpCallback=f.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(It,"$1"+i):!1!==t.jsonp&&(t.url+=(vt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||f.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,zt.push(i)),a&&f.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),f.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||N;var r=x.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=f.buildFragment([e],t,i),i&&i.length&&f(i).remove(),f.merge([],r.childNodes))};var Xt=f.fn.load;f.fn.load=function(e,t,n){if("string"!=typeof e&&Xt)return Xt.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>=0&&(r=f.trim(e.slice(s,e.length)),e=e.slice(0,s)),f.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),a.length>0&&f.ajax({url:e,type:o,dataType:"html",data:t}).done(function(e){i=arguments,a.html(r?f("<div>").append(f.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){a.each(n,i||[e.responseText,t,e])}),this},f.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){f.fn[t]=function(e){return this.on(t,e)}}),f.expr.filters.animated=function(e){return f.grep(f.timers,function(t){return e===t.elem}).length};var Ut=e.document.documentElement;function Vt(e){return f.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}f.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,u=f.css(e,"position"),c=f(e),d={};"static"===u&&(e.style.position="relative"),s=c.offset(),o=f.css(e,"to
22p"),l=f.css(e,"left"),("absolute"===u||"fixed"===u)&&f.inArray("auto",[o,l])>-1?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),f.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):c.css(d)}},f.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){f.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;return o?(t=o.documentElement,f.contains(t,i)?(typeof i.getBoundingClientRect!==M&&(r=i.getBoundingClientRect()),n=Vt(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r):void 0},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===f.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),f.nodeName(e[0],"html")||(n=e.offset()),n.top+=f.css(e[0],"borderTopWidth",!0),n.left+=f.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-f.css(r,"marginTop",!0),left:t.left-n.left-f.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||Ut;e&&!f.nodeName(e,"html")&&"static"===f.css(e,"position");)e=e.offsetParent;return e||Ut})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);f.fn[e]=function(r){return X(this,function(e,r,i){var o=Vt(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?f(o).scrollLeft():i,n?i:f(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),f.each(["top","left"],function(e,t){f.cssHooks[t]=_e(c.pixelPosition,function(e,n){return n?(n=je(e,t),He.test(n)?f(e).position()[t]+"px":n):void 0})}),f.each({Height:"height",Width:"width"},function(e,t){f.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){f.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(!0===r||!0===i?"margin":"border");return X(this,function(t,n,r){var i;return f.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?f.css(t,n,a):f.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),f.fn.size=function(){return this.length},f.fn.andSelf=f.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return f});var Jt=e.jQuery,Yt=e.$;return f.noConflict=function(t){return e.$===f&&(e.$=Yt),t&&e.jQuery===f&&(e.jQuery=Jt),f},typeof t===M&&(e.jQuery=e.$=f),f});
23            IV$ = window.IV$ = jQuery.noConflict(true); 
24        }else{
25            if($().jquery !== '1.4.4'){
26                IV$ = $;
27            }else{
28                !function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){var n=[],r=n.slice,i=n.concat,o=n.push,a=n.indexOf,s={},l=s.toString,u=s.hasOwnProperty,c={},d="1.11.2",f=function(e,t){return new f.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,h=/^-ms-/,m=/-([\da-z])/gi,g=function(e,t){return t.toUpperCase()};function v(e){var t=e.length,n=f.type(e);return"function"!==n&&!f.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e))}f.fn=f.prototype={jquery:d,constructor:f,selector:"",length:0,toArray:function(){return r.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:r.call(this)},pushStack:function(e){var t=f.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return f.each(this,e,t)},map:function(e){return this.pushStack(f.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(r.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:o,sort:n.sort,splice:n.splice},f.extend=f.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[s]||{}
28,s++),"object"==typeof a||f.isFunction(a)||(a={}),s===l&&(a=this,s--);l>s;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],a!==(n=i[r])&&(u&&n&&(f.isPlainObject(n)||(t=f.isArray(n)))?(t?(t=!1,o=e&&f.isArray(e)?e:[]):o=e&&f.isPlainObject(e)?e:{},a[r]=f.extend(u,o,n)):void 0!==n&&(a[r]=n));return a},f.extend({expando:"jQuery"+(d+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===f.type(e)},isArray:Array.isArray||function(e){return"array"===f.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!f.isArray(e)&&e-parseFloat(e)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==f.type(e)||e.nodeType||f.isWindow(e))return!1;try{if(e.constructor&&!u.call(e,"constructor")&&!u.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}if(c.ownLast)for(t in e)return u.call(e,t);for(t in e);return void 0===t||u.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?s[l.call(e)]||"object":typeof e},globalEval:function(t){t&&f.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(h,"ms-").replace(m,g)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r=0,i=e.length,o=v(e);if(n){if(o)for(;i>r&&!1!==t.apply(e[r],n);r++);else for(r in e)if(!1===t.apply(e[r],n))break}else if(o)for(;i>r&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(v(Object(e))?f.merge(n,"string"==typeof e?[e]:e):o.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(a)return a.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;)e[i++]=t[r++];if(n!=n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;o>i;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,o=0,a=e.length,s=[];if(v(e))for(;a>o;o++)null!=(r=t(e[o],o,n))&&s.push(r);else for(o in e)null!=(r=t(e[o],o,n))&&s.push(r);return i.apply([],s)},guid:1,proxy:function(e,t){var n,i,o;return"string"==typeof t&&(o=e[t],t=e,e=o),f.isFunction(e)?(n=r.call(arguments,2),(i=function(){return e.apply(t||this,n.concat(r.call(arguments)))}).guid=e.guid=e.guid||f.guid++,i):void 0},now:function(){return+new Date},support:c}),f.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){s["[object "+t+"]"]=t.toLowerCase()});var y=function(e){var t,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v,y,b,x="sizzle"+1*new Date,w=e.document,T=0,C=0,N=ae(),E=ae(),k=ae(),S=function(e,t){return e===t&&(d=!0),0},A=1<<31,D={}.hasOwnProperty,j=[],L=j.pop,H=j.push,q=j.push,_=j.slice,M=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},F="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",O="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",P=B.replace("w","w#"),R="\\["+O+"*("+B+")(?:"+O+"*([*^$|!~]?=)"+O+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+P+"))|)"+O+"*\\]",W=":("+B+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+R+")*)|.*)\\)|)",$=new RegExp(O+"+","g"),z=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),I=new RegExp("^"+O+"*,"+O+"*"),X=new RegExp("^"+O+"*([>+~]|"+O+")"+O+"*"),U=new RegExp("="+O+"*([^\\]'\"]*?)"+O+"*\\]","g"),V=new RegExp(W),J=new RegExp("^"+P+"$"),Y={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B.replace("w","w*")+")"),ATTR:new RegExp("^"+R),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),bool:new RegExp("^(?:"+F+")$","i"),needsContext:new RegExp("^"+O+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=/'|\\/g,ne=new RegExp("\\\\([\\da-f]{1,6}"+O+"?|("+O+")|.)","ig"),re=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},ie=function(){f()};try{q.apply(j=_.call(w.childNodes),w.childNodes),j[w.childNodes.length].nodeType}catch(e){q={apply:j.length?function(e,t){H.apply(e,_.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}
28function oe(e,t,r,i){var o,s,u,c,d,h,v,y,T,C;if((t?t.ownerDocument||t:w)!==p&&f(t),r=r||[],c=(t=t||p).nodeType,"string"!=typeof e||!e||1!==c&&9!==c&&11!==c)return r;if(!i&&m){if(11!==c&&(o=Z.exec(e)))if(u=o[1]){if(9===c){if(!(s=t.getElementById(u))||!s.parentNode)return r;if(s.id===u)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(u))&&b(t,s)&&s.id===u)return r.push(s),r}else{if(o[2])return q.apply(r,t.getElementsByTagName(e)),r;if((u=o[3])&&n.getElementsByClassName)return q.apply(r,t.getElementsByClassName(u)),r}if(n.qsa&&(!g||!g.test(e))){if(y=v=x,T=t,C=1!==c&&e,1===c&&"object"!==t.nodeName.toLowerCase()){for(h=a(e),(v=t.getAttribute("id"))?y=v.replace(te,"\\$&"):t.setAttribute("id",y),y="[id='"+y+"'] ",d=h.length;d--;)h[d]=y+ge(h[d]);T=ee.test(e)&&he(t.parentNode)||t,C=h.join(",")}if(C)try{return q.apply(r,T.querySelectorAll(C)),r}catch(e){}finally{v||t.removeAttribute("id")}}}return l(e.replace(z,"$1"),t,r,i)}function ae(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function se(e){return e[x]=!0,e}function le(e){var t=p.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ue(e,t){for(var n=e.split("|"),i=e.length;i--;)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||A)-(~e.sourceIndex||A);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function fe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pe(e){return se(function(t){return t=+t,se(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function he(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},f=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==p&&9===a.nodeType&&a.documentElement?(p=a,h=a.documentElement,(i=a.defaultView)&&i!==i.top&&(i.addEventListener?i.addEventListener("unload",ie,!1):i.attachEvent&&i.attachEvent("onunload",ie)),m=!o(a),n.attributes=le(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=le(function(e){return e.appendChild(a.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=K.test(a.getElementsByClassName),n.getById=le(function(e){return h.appendChild(e).id=x,!a.getElementsByName||!a.getElementsByName(x).length}),n.getById?(r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},r.filter.ID=function(e){var t=e.replace(ne,re);return function(e){return e.getAttribute("id")===t}}):(delete r.find.ID,r.filter.ID=function(e){var t=e.replace(ne,re);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){return m?t.getElementsByClassName(e):void 0},v=[],g=[],(n.qsa=K.test(a.querySelectorAll))&&(le(function(e){h.appendChild(e).innerHTML="<a id='"+x+"'></a><select id='"+x+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+O+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+O+"*(?:value|"+F+")"),e.querySelectorAll("[id~="+x+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+x+"+*").length||g.push(".#.+[+~]")}),le(function(e){var t=a.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+O+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(n.matchesSelector=K.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&le(function(e){n.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),v.push("!=",W)}),g=g.length&&new RegExp(g.join("|")),v=v.length&&new RegExp(v.j
vendor: 6,266 bytes, line 28
28oin("|")),t=K.test(h.compareDocumentPosition),b=t||K.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},S=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===a||e.ownerDocument===w&&b(w,e)?-1:t===a||t.ownerDocument===w&&b(w,t)?1:c?M(c,e)-M(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],l=[t];if(!i||!o)return e===a?-1:t===a?1:i?-1:o?1:c?M(c,e)-M(c,t):0;if(i===o)return ce(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;s[r]===l[r];)r++;return r?ce(s[r],l[r]):s[r]===w?-1:l[r]===w?1:0},a):p},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&f(e),t=t.replace(U,"='$1']"),!(!n.matchesSelector||!m||v&&v.test(t)||g&&g.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,p,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==p&&f(e),b(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==p&&f(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!m):void 0;return void 0!==o?o:n.attributes||!m?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(d=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(S),d){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ne,re),e[3]=(e[3]||e[4]||e[5]||"").replace(ne,re),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ne,re).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(p=(u=(c=g[x]||(g[x]={}))[e]||[])[0]===T&&u[1],f=u[0]===T&&u[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){c[e]=[T,p,f];break}}else if(y&&(u=(t[x]||(t[x]={}))[e])&&u[0]===T)f=u[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[x]||(d[x]={}))[e]=[T,f]),d!==t)););return(f-=i)===r||f%r==0&&f/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[x]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=M(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(z,"$1"));return r[x]?se(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(ne,re),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return J.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(ne,re).toLowerCase(),function(t){var n;do{if(n=m?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)}
vendor: 5,116 bytes, line 28
28,input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:pe(function(){return[0]}),last:pe(function(e,t){return[t-1]}),eq:pe(function(e,t,n){return[0>n?n+t:n]}),even:pe(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:pe(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:pe(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:pe(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=de(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=fe(t);function me(){}function ge(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function ve(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=C++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,u=[T,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if((s=(l=t[x]||(t[x]={}))[r])&&s[0]===T&&s[1]===o)return u[2]=s[2];if(l[r]=u,u[2]=e(t,n,a))return!0}}}function ye(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function xe(e,t,n,r,i,o){return r&&!r[x]&&(r=xe(r)),i&&!i[x]&&(i=xe(i,o)),se(function(o,a,s,l){var u,c,d,f=[],p=[],h=a.length,m=o||function(e,t,n){for(var r=0,i=t.length;i>r;r++)oe(e,t[r],n);return n}(t||"*",s.nodeType?[s]:s,[]),g=!e||!o&&t?m:be(m,f,e,s,l),v=n?i||(o?e:h||r)?[]:a:g;if(n&&n(g,v,s,l),r)for(u=be(v,p),r(u,[],s,l),c=u.length;c--;)(d=u[c])&&(v[p[c]]=!(g[p[c]]=d));if(o){if(i||e){if(i){for(u=[],c=v.length;c--;)(d=v[c])&&u.push(g[c]=d);i(null,v=[],u,l)}for(c=v.length;c--;)(d=v[c])&&(u=i?M(o,d):f[c])>-1&&(o[u]=!(a[u]=d))}}else v=be(v===a?v.splice(h,v.length):v),i?i(null,a,v,l):q.apply(a,v)})}function we(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],l=a?1:0,c=ve(function(e){return e===t},s,!0),d=ve(function(e){return M(t,e)>-1},s,!0),f=[function(e,n,r){var i=!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):d(e,n,r));return t=null,i}];o>l;l++)if(n=r.relative[e[l].type])f=[ve(ye(f),n)];else{if((n=r.filter[e[l].type].apply(null,e[l].matches))[x]){for(i=++l;o>i&&!r.relative[e[i].type];i++);return xe(l>1&&ye(f),l>1&&ge(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,i>l&&we(e.slice(l,i)),o>i&&we(e=e.slice(i)),o>i&&ge(e))}f.push(n)}return ye(f)}function Te(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,l,c){var d,f,h,m=0,g="0",v=o&&[],y=[],b=u,x=o||i&&r.find.TAG("*",c),w=T+=null==b?1:Math.random()||.1,C=x.length;for(c&&(u=a!==p&&a);g!==C&&null!=(d=x[g]);g++){if(i&&d){for(f=0;h=e[f++];)if(h(d,a,s)){l.push(d);break}c&&(T=w)}n&&((d=!h&&d)&&m--,o&&v.push(d))}if(m+=g,n&&g!==m){for(f=0;h=t[f++];)h(v,y,a,s);if(o){if(m>0)for(;g--;)v[g]||y[g]||(y[g]=L.call(l));y=be(y)}q.apply(l,y),c&&!o&&y.length>0&&m+t.length>1&&oe.uniqueSort(l)}return c&&(T=w,u=b),v};return n?se(o):o}return me.prototype=r.filters=r.pseudos,r.setFilters=new me,a=oe.tokenize=function(e,t){var n,i,o,a,s,l,u,c=E[e+" "];if(c)return t?0:c.slice(0);for(s=e,l=[],u=r.preFilter;s;){for(a in(!n||(i=I.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),n=!1,(i=X.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(z," ")}),s=s.slice(n.length)),r.filter)!(i=Y[a].exec(s))||u[a]&&!(i=u[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):E(e,l).slice(0)},s=oe.compile=function(e,t){var n,r=[],i=[],o=k[e+" "];if(!o){for(t||(t=a(e)),n=t.length;n--;)(o=we(t[n]))[x]?r.push(o):i.push(o);(o=k(e,Te(i,r))).selector=e}return o},l=oe.select=function(e,t,i,o){var l,u,c,d,f,p="function"==typeof e&&e,h=!o&&a(e=p.selector||e);if(i=i||[],1===h.length){if((u=h[0]=h[0].slice(0)).length>2&&"ID"===(c=u[0]).type&&n.getById&&9===t.nodeType&&m&&r.relative[u[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(ne,re),t)||[])[0]))return i;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(l=Y.needsContext.test(e)?0:u.length;l--&&(c=u[l],!r.relative[d=c.type]);)if((f=r.find[d])&&(o=f(c.matches[0].replace(ne,re),ee.test(u[0].type)&&he(t.parentNode)||t))){if(u.splice(l,1),!(e=o.length&&ge(u)))return q.apply(i,o),i;break}}return(p||s(e,h))(o,t,!m,i,ee.test(e)&&he(t.parentNode)||t),i},n.sortStable=x.split("").sort(S).join("")===x,n.detectDuplicates=!!d,f(),n.sortDetached=le(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),le(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ue("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&le(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}
vendor: 6,217 bytes, line 28
28)||ue("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),le(function(e){return null==e.getAttribute("disabled")})||ue(F,function(e,t,n){var r;return n?void 0:!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);f.find=y,f.expr=y.selectors,f.expr[":"]=f.expr.pseudos,f.unique=y.uniqueSort,f.text=y.getText,f.isXMLDoc=y.isXML,f.contains=y.contains;var b=f.expr.match.needsContext,x=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function T(e,t,n){if(f.isFunction(t))return f.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return f.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(w.test(t))return f.filter(t,e,n);t=f.filter(t,e)}return f.grep(e,function(e){return f.inArray(e,t)>=0!==n})}f.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?f.find.matchesSelector(r,e)?[r]:[]:f.find.matches(e,f.grep(t,function(e){return 1===e.nodeType}))},f.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(f(e).filter(function(){for(t=0;i>t;t++)if(f.contains(r[t],this))return!0}));for(t=0;i>t;t++)f.find(e,r[t],n);return(n=this.pushStack(i>1?f.unique(n):n)).selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?f(e):e||[],!1).length}});var C,N=e.document,E=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(f.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(!(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:E.exec(e))||!n[1]&&t)return!t||t.jquery?(t||C).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof f?t[0]:t,f.merge(this,f.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:N,!0)),x.test(n[1])&&f.isPlainObject(t))for(n in t)f.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if((r=N.getElementById(n[2]))&&r.parentNode){if(r.id!==n[2])return C.find(e);this.length=1,this[0]=r}return this.context=N,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):f.isFunction(e)?void 0!==C.ready?C.ready(e):e(f):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),f.makeArray(e,this))}).prototype=f.fn,C=f(N);var k=/^(?:parents|prev(?:Until|All))/,S={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){do{e=e[t]}while(e&&1!==e.nodeType);return e}f.extend({dir:function(e,t,n){for(var r=[],i=e[t];i&&9!==i.nodeType&&(void 0===n||1!==i.nodeType||!f(i).is(n));)1===i.nodeType&&r.push(i),i=i[t];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),f.fn.extend({has:function(e){var t,n=f(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(f.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=b.test(e)||"string"!=typeof e?f(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&f.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?f.unique(o):o)},index:function(e){return e?"string"==typeof e?f.inArray(this[0],f(e)):f.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(f.unique(f.merge(this.get(),f(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),f.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return f.dir(e,"parentNode")},parentsUntil:function(e,t,n){return f.dir(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return f.dir(e,"nextSibling")},prevAll:function(e){return f.dir(e,"previousSibling")},nextUntil:function(e,t,n){return f.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return f.dir(e,"previousSibling",n)},siblings:function(e){return f.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return f.sibling(e.firstChild)},contents:function(e){return f.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:f.merge([],e.childNodes)}},function(e,t){f.fn[e]=function(n,r){var i=f.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=f.filter(r,i)),this.length>1&&(S[e]||(i=f.unique(i)),k.test(e)&&(i=i.reverse())),this.pushStack(i)}});var D,j=/\S+/g,L={};function H(){N.addEventListener?(N.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(N.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))}function q(){(N.addEventListener||"load"===event.type||"complete"===N.readyState)&&(H(),f.ready())}f.Callbacks=function(e){e="string"==typeof e?L[e]||function(e){var t=L[e]={};return f.each(e.match(j)||[],function(e,n){t[n]=!0}),t}(e):f.extend({},e);var t,n,r,i,o,a,s=[],l=!e.once&&[],u=function(d){for(n=e.memory&&d,r=!0,o=a||0,a=0,i=s.length,t=!0;s&&i>o;o++)if(!1===s[o].apply(d[0],d[1])&&e.stopOnFalse){n=!1;break}t=!1,s&&(l?l.length&&u(l.shift()):n?s=[]:c.disable())},c={add:function(){if(s){var r=s.length;!function t(n){f.each(n,function(n,r){var i=f.type(r);"function"===i?e.unique&&c.has(r)||s.push(r):r&&r.length&&"string"!==i&&t(r)})}(arguments),t?i=s.length:n&&(a=r,u(n))}return this},remove:function(){return s&&f.each(arguments,function(e,n){for(var r;(r=f.inArray(n,s,r))>-1;)s.splice(r,1),t&&(i>=r&&i--,o>=r&&o--)}),this},has:function(e){return e?f.inArray(e,s)>-1:!(!s||!s.length)},empty:function(){return s=[],i=0,this},disable:function(){return s=l=n=void 0,this},disabled:function(){return!s},lock:function(){return l=void 0,n||c.disable(),this},locked:function(){return!l},fireWith:function(e,n){return!s||r&&!l||(n=[e,(n=n||[]).slice?n.slice():n],t?l.push(n):u(n)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},f.extend({Deferred:function(e){var t=[["resolve","done",f.Callbacks("once memory"),"resolved"],["reject","fail",f.Callbacks("once memory"),"rejected"],["notify","progress",f.Callbacks("memory")]],n="pe
28nding",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return f.Deferred(function(n){f.each(t,function(t,o){var a=f.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&f.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?f.extend(e,r):r}},i={};return r.pipe=r.then,f.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,i,o=0,a=r.call(arguments),s=a.length,l=1!==s||e&&f.isFunction(e.promise)?s:0,u=1===l?e:f.Deferred(),c=function(e,n,i){return function(o){n[e]=this,i[e]=arguments.length>1?r.call(arguments):o,i===t?u.notifyWith(n,i):--l||u.resolveWith(n,i)}};if(s>1)for(t=new Array(s),n=new Array(s),i=new Array(s);s>o;o++)a[o]&&f.isFunction(a[o].promise)?a[o].promise().done(c(o,i,a)).fail(u.reject).progress(c(o,n,t)):--l;return l||u.resolveWith(i,a),u.promise()}}),f.fn.ready=function(e){return f.ready.promise().done(e),this},f.extend({isReady:!1,readyWait:1,holdReady:function(e){e?f.readyWait++:f.ready(!0)},ready:function(e){if(!0===e?!--f.readyWait:!f.isReady){if(!N.body)return setTimeout(f.ready);f.isReady=!0,!0!==e&&--f.readyWait>0||(D.resolveWith(N,[f]),f.fn.triggerHandler&&(f(N).triggerHandler("ready"),f(N).off("ready")))}}}),f.ready.promise=function(t){if(!D)if(D=f.Deferred(),"complete"===N.readyState)setTimeout(f.ready);else if(N.addEventListener)N.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{N.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var n=!1;try{n=null==e.frameElement&&N.documentElement}catch(e){}n&&n.doScroll&&function e(){if(!f.isReady){try{n.doScroll("left")}catch(t){return setTimeout(e,50)}H(),f.ready()}}()}return D.promise(t)};var _,M="undefined";for(_ in f(c))break;c.ownLast="0"!==_,c.inlineBlockNeedsLayout=!1,f(function(){var e,t,n,r;(n=N.getElementsByTagName("body")[0])&&n.style&&(t=N.createElement("div"),(r=N.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==M&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",c.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=N.createElement("div");if(null==c.deleteExpando){c.deleteExpando=!0;try{delete e.test}catch(e){c.deleteExpando=!1}}e=null}(),f.acceptData=function(e){var t=f.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||!0!==t&&e.getAttribute("classid")===t)};var F=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function B(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(O,"-$1").toLowerCase();if("string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:F.test(n)?f.parseJSON(n):n)}catch(e){}f.data(e,t,n)}else n=void 0}return n}function P(e){var t;for(t in e)if(("data"!==t||!f.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function R(e,t,r,i){if(f.acceptData(e)){var o,a,s=f.expando,l=e.nodeType,u=l?f.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||void 0!==r||"string"!=typeof t)return c||(c=l?e[s]=n.pop()||f.guid++:s),u[c]||(u[c]=l?{}:{toJSON:f.noop}),("object"==typeof t||"function"==typeof t)&&(i?u[c]=f.extend(u[c],t):u[c].data=f.extend(u[c].data,t)),a=u[c],i||(a.data||(a.data={}),a=a.data),void 0!==r&&(a[f.camelCase(t)]=r),"string"==typeof t?null==(o=a[t])&&(o=a[f.camelCase(t)]):o=a,o}}function W(e,t,n){if(f.acceptData(e)){var r,i,o=e.nodeType,a=o?f.cache:e,s=o?e[f.expando]:f.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){f.isArray(t)?t=t.concat(f.map(t,f.camelCase)):t in r?t=[t]:t=(t=f.camelCase(t))in r?[t]:t.split(" "),i=t.length;for(;i--;)delete r[t[i]];if(n?!P(r):!f.isEmptyObject(r))return}
28(n||(delete a[s].data,P(a[s])))&&(o?f.cleanData([e],!0):c.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}f.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return!!(e=e.nodeType?f.cache[e[f.expando]]:e[f.expando])&&!P(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)}}),f.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=f.data(o),1===o.nodeType&&!f._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(0===(r=a[n].name).indexOf("data-")&&B(o,r=f.camelCase(r.slice(5)),i[r]));f._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){f.data(this,e)}):arguments.length>1?this.each(function(){f.data(this,e,t)}):o?B(o,e,f.data(o,e)):void 0},removeData:function(e){return this.each(function(){f.removeData(this,e)})}}),f.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=f._data(e,t),n&&(!r||f.isArray(n)?r=f._data(e,t,f.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=f.queue(e,t),r=n.length,i=n.shift(),o=f._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){f.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return f._data(e,n)||f._data(e,n,{empty:f.Callbacks("once memory").add(function(){f._removeData(e,t+"queue"),f._removeData(e,n)})})}}),f.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?f.queue(this[0],e):void 0===t?this:this.each(function(){var n=f.queue(this,e,t);f._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&f.dequeue(this,e)})},dequeue:function(e){return this.each(function(){f.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=f.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=f._data(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,z=["Top","Right","Bottom","Left"],I=function(e,t){return e=t||e,"none"===f.css(e,"display")||!f.contains(e.ownerDocument,e)},X=f.access=function(e,t,n,r,i,o,a){var s=0,l=e.length,u=null==n;if("object"===f.type(n))for(s in i=!0,n)f.access(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,f.isFunction(r)||(a=!0),u&&(a?(t.call(e,r),t=null):(u=t,t=function(e,t,n){return u.call(f(e),n)})),t))for(;l>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:u?t.call(e):l?t(e[0],n):o},U=/^(?:checkbox|radio)$/i;!function(){var e=N.createElement("input"),t=N.createElement("div"),n=N.createDocumentFragment();if(t.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c.leadingWhitespace=3===t.firstChild.nodeType,c.tbody=!t.getElementsByTagName("tbody").length,c.htmlSerialize=!!t.getElementsByTagName("link").length,c.html5Clone="<:nav></:nav>"!==N.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),c.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",c.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",c.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,c.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){c.noCloneEvent=!1}),t.cloneNode(!0).click()),null==c.deleteExpando){c.deleteExpando=!0;try{delete t.test}catch(e){c.deleteExpando=!1}}}(),function(){var t,n,r=N.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(c[t+"Bubbles"]=n in e)||(r.setAttribute(n,"t"),c[t+"Bubbles"]=!1===r.attributes[n].expando);r=null}();var V=/^(?:input|select|textarea)$/i,J=/^key/,Y=/^(?:mouse|pointer|contextmenu)|click/,G=/^(?:focusinfocus|focusoutblur)$/,Q=/^([^.]*)(?:\.(.+)|)$/;function K(){return!0}function Z(){return!1}function ee(){try{return N.activeElement}catch(e){}}function te(e){var t=ne.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}f.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,u,c,d,p,h,m,g,v=f._data(e);if(v){for(n.handler&&(n=(l=n).handler,i=l.selector),n.guid||(n.guid=f.guid++),(a=v.events)||(a=v.events={}),(c=v.handle)||((c=v.handle=function(e){return typeof f===M||e&&f.event.triggered===e.type?void 0:f.event.dispatch.apply(c.elem,arguments)}).elem=e),s=(t=(t||"").match(j)||[""]).length;s--;)h=g=(o=Q.exec(t[s])||[])[1],m=(o[2]||"").split(".").sort(),h&&(u=f.event.special[h]||{},h=(i?u.delegateType:u.bindType)||h,u=f.event.special[h]||{},d=f.extend({type:h,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&f.expr.match.needsContext.test(i),namespace:m.join(".")},l),(p=a[h])||((p=a[h]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,r,m,c)||(e.addEventListener?e.addEventListener(h,c,!1):e.attachEvent&&e.attachEvent("on"+h,c))),u.add&&(u.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,d):p.push(d),f.event.global[h]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,d,p,h,m,g,v=f.hasData(e)&&f._data(e);if(v&&(c=v.events)){for(u=(t=(t||"").match(j)||[""]).length;u--;)if(h=g=(s=Q.exec(t[u])||[])[1],m=(s[2]||"").split(".").sort(),h){for(d=f.event.special[h]||{},p=c[h=(r?d.delegateType:d.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=p.length;o--;)a=p[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(p.splice(o,1),a.selector&&p.delegateCount--,d.remove&&d.remove.call(e,a));l&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,m,v.handle)||f.removeEvent(e,h,v.handle),delete c[h])}else for(h in c)f.event.remove(e,h+t[u],n,r,!0);f.isEmptyObject(c)&&(delete v.handle,f._removeData(e,"events"))}},trigger:function(t,n,r,i){var o,a,s,l,c,d,p,h=[r||N],m=u.call(t,"type")?t.type:t,g=u.call(t,"namespace")?t.namespace.split("."):[];if(s=d=r=r||N,3!==r.nodeType&&8!==r.nodeType&&!G.test(m+f.event.triggered)&&(m.indexOf(".")>=0&&(g=m.split("."),m=g.shift(),g.sort()),a=m.indexOf(":")<0&&"on"+m,(t=t[f.expando]?t:new f.Event(m,"object"==typeof t&&t)).isTrigger=i?2:3,t.namespace=g.join("."),t.n
28amespace_re=t.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:f.makeArray(n,[t]),c=f.event.special[m]||{},i||!c.trigger||!1!==c.trigger.apply(r,n))){if(!i&&!c.noBubble&&!f.isWindow(r)){for(l=c.delegateType||m,G.test(l+m)||(s=s.parentNode);s;s=s.parentNode)h.push(s),d=s;d===(r.ownerDocument||N)&&h.push(d.defaultView||d.parentWindow||e)}for(p=0;(s=h[p++])&&!t.isPropagationStopped();)t.type=p>1?l:c.bindType||m,(o=(f._data(s,"events")||{})[t.type]&&f._data(s,"handle"))&&o.apply(s,n),(o=a&&s[a])&&o.apply&&f.acceptData(s)&&(t.result=o.apply(s,n),!1===t.result&&t.preventDefault());if(t.type=m,!i&&!t.isDefaultPrevented()&&(!c._default||!1===c._default.apply(h.pop(),n))&&f.acceptData(r)&&a&&r[m]&&!f.isWindow(r)){(d=r[a])&&(r[a]=null),f.event.triggered=m;try{r[m]()}catch(e){}f.event.triggered=void 0,d&&(r[a]=d)}return t.result}},dispatch:function(e){e=f.event.fix(e);var t,n,i,o,a,s=[],l=r.call(arguments),u=(f._data(this,"events")||{})[e.type]||[],c=f.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,e)){for(s=f.event.handlers.call(this,e,u),t=0;(o=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,a=0;(i=o.handlers[a++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,void 0!==(n=((f.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l))&&!1===(e.result=n)&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(!0!==l.disabled||"click"!==e.type)){for(i=[],o=0;s>o;o++)void 0===i[n=(r=t[o]).selector+" "]&&(i[n]=r.needsContext?f(n,this).index(l)>=0:f.find(n,this,null,[l]).length),i[n]&&i.push(r);i.length&&a.push({elem:l,handlers:i})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[f.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Y.test(i)?this.mouseHooks:J.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new f.Event(o),t=r.length;t--;)e[n=r[t]]=o[n];return e.target||(e.target=o.srcElement||N),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(i=(r=e.target.ownerDocument||N).documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ee()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===ee()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return f.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return f.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=f.extend(new f.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?f.event.trigger(i,null,t):f.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},f.removeEvent=N.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===M&&(e[r]=null),e.detachEvent(r,n))},f.Event=function(e,t){return this instanceof f.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?K:Z):this.type=e,t&&f.extend(this,t),this.timeStamp=e&&e.timeStamp||f.now(),void(this[f.expando]=!0)):new f.Event(e,t)},f.Event.prototype={isDefaultPrevented:Z,isPropagationStopped:Z,isImmediatePropagationStopped:Z,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=K,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=K,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=K,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}}
vendor: 13,037 bytes, line 28
28,f.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){f.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=e.relatedTarget,i=e.handleObj;return(!r||r!==this&&!f.contains(this,r))&&(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),c.submitBubbles||(f.event.special.submit={setup:function(){return!f.nodeName(this,"form")&&void f.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=f.nodeName(t,"input")||f.nodeName(t,"button")?t.form:void 0;n&&!f._data(n,"submitBubbles")&&(f.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),f._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&f.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return!f.nodeName(this,"form")&&void f.event.remove(this,"._submit")}}),c.changeBubbles||(f.event.special.change={setup:function(){return V.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(f.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),f.event.simulate("change",this,e,!0)})),!1):void f.event.add(this,"beforeactivate._change",function(e){var t=e.target;V.test(t.nodeName)&&!f._data(t,"changeBubbles")&&(f.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||f.event.simulate("change",this.parentNode,e,!0)}),f._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return f.event.remove(this,"._change"),!V.test(this.nodeName)}}),c.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){f.event.simulate(t,e.target,f.event.fix(e),!0)};f.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=f._data(r,t);i||r.addEventListener(e,n,!0),f._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=f._data(r,t)-1;i?f._data(r,t,i):(r.removeEventListener(e,n,!0),f._removeData(r,t))}}}),f.fn.extend({on:function(e,t,n,r,i){var o,a;if("object"==typeof e){for(o in"string"!=typeof t&&(n=n||t,t=void 0),e)this.on(o,t,n,e[o],i);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),!1===r)r=Z;else if(!r)return this;return 1===i&&(a=r,(r=function(e){return f().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=f.guid++)),this.each(function(){f.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,f(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(!1===t||"function"==typeof t)&&(n=t,t=void 0),!1===n&&(n=Z),this.each(function(){f.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){f.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?f.event.trigger(e,t,n,!0):void 0}});var ne="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",re=/ jQuery\d+="(?:null|\d+)"/g,ie=new RegExp("<(?:"+ne+")[\\s/>]","i"),oe=/^\s+/,ae=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,se=/<([\w:]+)/,le=/<tbody/i,ue=/<|&#?\w+;/,ce=/<(?:script|style|link)/i,de=/checked\s*(?:[^=]|=\s*.checked.)/i,fe=/^$|\/(?:java|ecma)script/i,pe=/^true\/(.*)/,he=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,me={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:c.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},ge=te(N).appendChild(N.createElement("div"));function ve(e,t){var n,r,i=0,o=typeof e.getElementsByTagName!==M?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==M?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||f.nodeName(r,t)?o.push(r):f.merge(o,ve(r,t));return void 0===t||t&&f.nodeName(e,t)?f.merge([e],o):o}function ye(e){U.test(e.type)&&(e.defaultChecked=e.checked)}function be(e,t){return f.nodeName(e,"table")&&f.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function xe(e){return e.type=(null!==f.find.attr(e,"type"))+"/"+e.type,e}function we(e){var t=pe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Te(e,t){for(var n,r=0;null!=(n=e[r]);r++)f._data(n,"globalEval",!t||f._data(t[r],"globalEval"))}function Ce(e,t){if(1===t.nodeType&&f.hasData(e)){var n,r,i,o=f._data(e),a=f._data(t,o),s=o.events;if(s)for(n in delete a.handle,a.events={},s)for(r=0,i=s[n].length;i>r;r++)f.event.add(t,n,s[n][r]);a.data&&(a.data=f.extend({},a.data))}}function Ne(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!c.noCloneEvent&&t[f.expando]){for(r in(i=f._data(t)).events)f.removeEvent(t,r,i.handle);t.removeAttribute(f.expando)}"script"===n&&t.text!==e.text?(xe(t).text=e.text,we(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),c.html5Clone&&e.innerHTML&&!f.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&U.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}me.optgroup=me.option,me.tbody=me.tfoot=me.colgroup=me.caption=me.thead,me.th=me.td,f.extend({clone:function(e,t,n){var r,i,o,a,s,l=f.contains(e.ownerDocument,e);if(c.html5Clone||f.isXMLDoc(e)||!ie.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(ge.innerHTML=e.outerHTML,ge.removeChild(o=ge.firstChild)),!(c.noCloneEvent&&c.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||f.isXMLDoc(e)))for(r=ve(o),s=ve(e),a=0;null!=(i=s[a]);++a)r[a]&&Ne(i,r[a]);if(t)if(n)for(s=s||ve(e),r=r||ve(o),a=0;null!=(i=s[a]);a++)Ce(i,r[a]);else Ce(e,o);return(r=ve(o,"script")).length>0&&Te(r,!l&&ve(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,l,u,d,p=e.length,h=te(t),m=[],g=0;p>g;g++)if((o=e[g])||0===o)if("object"===f.type(o))f.merge(m,o.nodeType?[o]:o);else if(ue.test(o)){for(s=s||h.appendChild(t.createElement("div")),l=(se.exec(o)||["",""])[1].toLowerCase(),d=me[l]||me._default,s.innerHTML=d[1]+o.replace(ae,"<$1></$2>")+d[2],i=d[0];i--;)s=s.lastChild;if(!c.leadingWhitespace&&oe.test(o)&&m.push(t.createTextNode(oe.exec(o)[0])),!c.tbody)for(i=(o="table"!==l||le.test(o)?"<table>"!==d[1]||le.test(o)?0:s:s.firstChild)&&o.childNodes.length;i--;)f.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u);for(f.merge(m,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=h.lastChild}else m.push(t.createTextNode(o));for(s&&h.removeChild(s),c.appendChecked||f.grep(ve(m,"input"),ye),g=0;o=m[g++];)if((!r||-1===f.inArray(o,r))&&(a=f.contains(o.ownerDocument,o),s=ve(h.appendChild(o),"script"),a&&Te(s),n))for(i=0;o=s[i++];)fe.test(o.type||"")&&n.push(o);return s=null,h},cleanData:function(e,t){for(var r,i,o,a,s=0,l=f.expando,u=f.cache,d=c.deleteExpando,p=f.event.special;null!=(r=e[s]);s++)if((t||f.acceptData(r))&&(a=(o=r[l])&&u[o])){if(a.events)for(i in a.events)p[i]?f.event.remove(r,i):f.removeEvent(r,i,a.handle);u[o]&&(delete u[o],d?delete r[l]:typeof r.removeAttribute!==M?r.removeAttribute(l):r[l]=null,n.push(o))}}}),f.fn.extend({text:function(e){return X(this,function(e){return void 0===e?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||N).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||be(this,e).appendChild(e)})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=be(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?f.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||f.cleanData(ve(n)),n.parentNode&&(t&&f.contains(n.ownerDocument,n)&&Te(ve(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&f.cleanData(ve(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&f.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return f.clone(this,e,t)})},html:function(e){return X(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(re,""):void 0;if(!("string"!=typeof e||ce.test(e)||!c.htmlSerialize&&ie.test(e)||!c.leadingWhitespace&&oe.test(e)||me[(se.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(ae,"<$1></$2>");try{for(;r>n;n++)1===(t=this[n]||{}).nodeType&&(f.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,f.cleanData(ve(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=i.apply([],e);var n,r,o,a,s,l,u=0,d=this.length,p=this,h=d-1,m=e[0],g=f.isFunction(m);if(g||d>1&&"string"==typeof m&&!c.checkClone&&de.test(m))return this.each(function(n){var r=p.eq(n);g&&(e[0]=m.call(this,n,r.html())),r.domManip(e,t)});if(d&&(n=(l=f.buildFragment(e,this[0].ownerDocument,!1,this)).firstChild,1===l.childNodes.length&&(l=n),n)){for(o=(a=f.map(ve(l,"script"),xe)).length;d>u;u++)r=l,u!==h&&(r=f.clone(r,!0,!0),o&&f.merge(a,ve(r,"script"))),t.call(this[u],r,u);if(o)for(s=a[a.length-1].ownerDocument,f.map(a,we),u=0;o>u;u++)r=a[u],fe.test(r.type||"")&&!f._data(r,"globalEval")&&f.contains(s,r)&&(r.src?f._evalUrl&&f._evalUrl(r.src):f.globalEval((r.text||r.textContent||r.innerHTML||"").replace(he,"")));l=n=null}return this}}),f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){f.fn[e]=function(e){for(var n,r=0,i=[],a=f(e),s=a.length-1;s>=r;r++)n=r===s?this:this.clone(!0),f(a[r])[t](n),o.apply(i,n.get());return this.pushStack(i)}});var Ee,ke={};function Se(t,n){var r,i=f(n.createElement(t)).appendTo(n.body),o=e.getDefaultComputedStyle&&(r=e.getDefaultComputedStyle(i[0]))?r.display:f.css(i[0],"display");return i.detach(),o}function Ae(e){var t=N,n=ke[e];return n||("none"!==(n=Se(e,t))&&n||((t=((Ee=(Ee||f("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentWindow||Ee[0].contentDocument).document).write(),t.close(),n=Se(e,t),Ee.detach()),ke[e]=n),n}!function(){var e;c.shrinkWrapBlocks=function(){return null!=e?e:(e=!1,(n=N.getElementsByTagName("body")[0])&&n.style?(t=N.createElement("div"),(r=N.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==M&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(N.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0);var t,n,r}}();var De,je,Le=/^margin/,He=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),qe=/^(top|right|bottom|left)$/;function _e(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}e.getComputedStyle?(De=function(t){return t.ownerDocument.defaultView.opener?t.ownerDocument.defaultView.getComputedStyle(t,null):e.getComputedStyle(t,null)},je=function(e,t,n){var r,i,o,a,s=e.style;return a=(n=n||De(e))?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==a||f.contains(e.ownerDocument,e)||(a=f.style(e,t)),He.test(a)&&Le.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0===a?a:a+""}):N.documentElement.currentStyle&&(De=function(e){return e.currentStyle},je=function(e,t,n){var r,i,o,a,s=e.style;return null==(a=(n=n||De(e))?n[t]:void 0)&&s&&s[t]&&(a=s[t]),He.test(a)&&!qe.test(t)&&(r=s.left,(o=(i=e.runtimeStyle)&&i.left)&&(i.left
vendor: 9,307 bytes, line 28
28=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"}),function(){var t,n,r,i,o,a,s;if((t=N.createElement("div")).innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=(r=t.getElementsByTagName("a")[0])&&r.style){function l(){var t,n,r,l;(n=N.getElementsByTagName("body")[0])&&n.style&&(t=N.createElement("div"),(r=N.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),t.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",i=o=!1,s=!0,e.getComputedStyle&&(i="1%"!==(e.getComputedStyle(t,null)||{}).top,o="4px"===(e.getComputedStyle(t,null)||{width:"4px"}).width,(l=t.appendChild(N.createElement("div"))).style.cssText=t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",l.style.marginRight=l.style.width="0",t.style.width="1px",s=!parseFloat((e.getComputedStyle(l,null)||{}).marginRight),t.removeChild(l)),t.innerHTML="<table><tr><td></td><td>t</td></tr></table>",(l=t.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",(a=0===l[0].offsetHeight)&&(l[0].style.display="",l[1].style.display="none",a=0===l[0].offsetHeight),n.removeChild(r))}n.cssText="float:left;opacity:.5",c.opacity="0.5"===n.opacity,c.cssFloat=!!n.cssFloat,t.style.backgroundClip="content-box",t.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle="content-box"===t.style.backgroundClip,c.boxSizing=""===n.boxSizing||""===n.MozBoxSizing||""===n.WebkitBoxSizing,f.extend(c,{reliableHiddenOffsets:function(){return null==a&&l(),a},boxSizingReliable:function(){return null==o&&l(),o},pixelPosition:function(){return null==i&&l(),i},reliableMarginRight:function(){return null==s&&l(),s}})}}(),f.swap=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};var Me=/alpha\([^)]*\)/i,Fe=/opacity\s*=\s*([^)]*)/,Oe=/^(none|table(?!-c[ea]).+)/,Be=new RegExp("^("+$+")(.*)$","i"),Pe=new RegExp("^([+-])=("+$+")","i"),Re={position:"absolute",visibility:"hidden",display:"block"},We={letterSpacing:"0",fontWeight:"400"},$e=["Webkit","O","Moz","ms"];function ze(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=$e.length;i--;)if((t=$e[i]+n)in e)return t;return r}function Ie(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)(r=e[a]).style&&(o[a]=f._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&I(r)&&(o[a]=f._data(r,"olddisplay",Ae(r.nodeName)))):(i=I(r),(n&&"none"!==n||!i)&&f._data(r,"olddisplay",i?n:f.css(r,"display"))));for(a=0;s>a;a++)(r=e[a]).style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function Xe(e,t,n){var r=Be.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ue(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=f.css(e,n+z[o],!0,i)),r?("content"===n&&(a-=f.css(e,"padding"+z[o],!0,i)),"margin"!==n&&(a-=f.css(e,"border"+z[o]+"Width",!0,i))):(a+=f.css(e,"padding"+z[o],!0,i),"padding"!==n&&(a+=f.css(e,"border"+z[o]+"Width",!0,i)));return a}function Ve(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=De(e),a=c.boxSizing&&"border-box"===f.css(e,"boxSizing",!1,o);if(0>=i||null==i){if((0>(i=je(e,t,o))||null==i)&&(i=e.style[t]),He.test(i))return i;r=a&&(c.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+Ue(e,t,n||(a?"border":"content"),r,o)+"px"}function Je(e,t,n,r,i){return new Je.prototype.init(e,t,n,r,i)}f.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=je(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:c.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=f.camelCase(t),l=e.style;if(t=f.cssProps[s]||(f.cssProps[s]=ze(l,s)),a=f.cssHooks[t]||f.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];if("string"===(o=typeof n)&&(i=Pe.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(f.css(e,t)),o="number"),null!=n&&n==n&&("number"!==o||f.cssNumber[s]||(n+="px"),c.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{l[t]=n}catch(e){}}},css:function(e,t,n,r){var i,o,a,s=f.camelCase(t);return t=f.cssProps[s]||(f.cssProps[s]=ze(e.style,s)),(a=f.cssHooks[t]||f.cssHooks[s])&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=je(e,t,r)),"normal"===o&&t in We&&(o=We[t]),""===n||n?(i=parseFloat(o),!0===n||f.isNumeric(i)?i||0:o):o}}),f.each(["height","width"],function(e,t){f.cssHooks[t]={get:function(e,n,r){return n?Oe.test(f.css(e,"display"))&&0===e.offsetWidth?f.swap(e,Re,function(){return Ve(e,t,r)}):Ve(e,t,r):void 0},set:function(e,n,r){var i=r&&De(e);return Xe(0,n,r?Ue(e,t,r,c.boxSizing&&"border-box"===f.css(e,"boxSizing",!1,i),i):0)}}}),c.opacity||(f.cssHooks.opacity={get:function(e,t){return Fe.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=f.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===f.trim(o.replace(Me,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=Me.test(o)?o.replace(Me,i):o+" "+i)}}),f.cssHooks.marginRight=_e(c.reliableMarginRight,function(e,t){return t?f.swap(e,{display:"inline-block"},je,[e,"marginRight"]):void 0}),f.each({margin:"",padding:"",border:"Width"},function(e,t){f.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+z[r]+t]=o[r]||o[r-2]||o[0];return i}},Le.test(e)||(f.cssHooks[e+t].set=Xe)}),f.fn.extend({css:function(e,t){return X(this,function(e,t,n){var r,i,o={},a=0;if(f.isArray(t)){for(r=De(e),i=t.length;i>a;a++)o[t[a]]=f.css(e,t[a],!1,r);return o}return void 0!==n?f.style(e,t,n):f.css(e,t)},e,t,arguments.length>1)},show:function(){return Ie(this,!0)},hide:function(){return Ie(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){I(this)?f(this).show():f(this).hide()})}}),f.Tween=Je,Je.prototype={constructor:Je,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(f.cssNumber[n]?"":"px")},cur:function(){var e=Je.propHooks[this.prop];return e&&e.get?e.get(this):Je.propHooks._default.get(this)},run:function(e){var t,n=Je.propHooks[this.prop];return this.pos=t=this.options.duration?f.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Je.propHooks._default.set(this),this}},Je.prototype.init.prototype=Je.prototype,Je.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=f.css(e.elem,e.prop,""))&&"auto"!==t?t:0:e.elem[e.prop]},set:function(e){f.fx.step[e.prop]?f.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[f.cssProps[e.prop]]||f.cssHooks[e.prop])?f.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Je.propHooks.scrollTop=Je.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},f.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},f.fx=Je.prototype.init,f.fx.step={};var Ye,Ge,Qe=/^(?:toggle|show|hide)$/,Ke=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),Ze=/queueHooks$/,et=[function(e,t,n){var r,i,o,a,s,l,u,d=this,p={},h=e.style,m=e.nodeType&&I(e),g=f._data(e,"fxshow");for(r in n.queue||(null==(s=f._queueHooks(e,"fx")).unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,f.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],u=f.css(e,"display"),"inline"===("none"===u?f._data(e,"olddisplay")||Ae(e.nodeName):u)&&"none"===f.css(e,"float")&&(c.inlineBlockNeedsLayout&&"inline"!==Ae(e.nodeName)?h.zoom=1:h.display="inline-block")),n.overflow&&(h.overflow="hidden",c.shrinkWrapBlocks()||d.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),t)if(i=t[r],Qe.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(m?"hide":"show")){if("show"!==i||!g||void 0===g[r])continue;m=!0}p[r]=g&&g[r]||f.style(e,r)}else u=void 0;if(f.isEmptyObject(p))"inline"===("none"===u?Ae(e.nodeName):u)&&(h.display=u);else for(r in g?"hidden"in g&&(m=g.hidden):g=f._data(e,"fxshow",{}),o&&(g.hidden=!m),m?f(e).show():d.done(function(){f(e).hide()}),d.done(function(){var t;for(t in f._removeData(e,"fxshow"),p)f.style(e,t,p[t])}),p)a=it(m?g[r]:0,r,d),r in g||(g[r]=a.start,m&&(a.end=a.start,a.start="width"===r||"he
28ight"===r?1:0))}],tt={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Ke.exec(t),o=i&&i[3]||(f.cssNumber[e]?"":"px"),a=(f.cssNumber[e]||"px"!==o&&+r)&&Ke.exec(f.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do{a/=s=s||".5",f.style(n.elem,e,a+o)}while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function nt(){return setTimeout(function(){Ye=void 0}),Ye=f.now()}function rt(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)r["margin"+(n=z[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function it(e,t,n){for(var r,i=(tt[t]||[]).concat(tt["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function ot(e,t,n){var r,i,o=0,a=et.length,s=f.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;for(var t=Ye||nt(),n=Math.max(0,u.startTime+u.duration-t),r=1-(n/u.duration||0),o=0,a=u.tweens.length;a>o;o++)u.tweens[o].run(r);return s.notifyWith(e,[u,r,n]),1>r&&a?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:f.extend({},t),opts:f.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Ye||nt(),duration:n.duration,tweens:[],createTween:function(t,n){var r=f.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=f.camelCase(n)],o=e[n],f.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=f.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,u.opts.specialEasing);a>o;o++)if(r=et[o].call(u,e,c,u.opts))return r;return f.map(c,it,u),f.isFunction(u.opts.start)&&u.opts.start.call(e,u),f.fx.timer(f.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}f.Animation=f.extend(ot,{tweener:function(e,t){f.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],tt[n]=tt[n]||[],tt[n].unshift(t)},prefilter:function(e,t){t?et.unshift(e):et.push(e)}}),f.speed=function(e,t,n){var r=e&&"object"==typeof e?f.extend({},e):{complete:n||!n&&t||f.isFunction(e)&&e,duration:e,easing:n&&t||t&&!f.isFunction(t)&&t};return r.duration=f.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in f.fx.speeds?f.fx.speeds[r.duration]:f.fx.speeds._default,(null==r.queue||!0===r.queue)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){f.isFunction(r.old)&&r.old.call(this),r.queue&&f.dequeue(this,r.queue)},r},f.fn.extend({fadeTo:function(e,t,n,r){return this.filter(I).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=f.isEmptyObject(e),o=f.speed(t,n,r),a=function(){var t=ot(this,f.extend({},e),o);(i||f._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=f.timers,a=f._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&Ze.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&f.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=f._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=f.timers,a=r?r.length:0;for(n.finish=!0,f.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),f.each(["toggle","show","hide"],function(e,t){var n=f.fn[t];f.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(rt(t,!0),e,r,i)}}),f.each({slideDown:rt("show"),slideUp:rt("hide"),slideToggle:rt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){f.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),f.timers=[],f.fx.tick=function(){var e,t=f.timers,n=0;for(Ye=f.now();n<t.length;n++)(e=t[n])()||t[n]!==e||t.splice(n--,1);t.length||f.fx.stop(),Ye=void 0},f.fx.timer=function(e){f.timers.push(e),e()?f.fx.start():f.timers.pop()},f.fx.interval=13,f.fx.start=function(){Ge||(Ge=setInterval(f.fx.tick,f.fx.interval))},f.fx.stop=function(){clearInterval(Ge),Ge=null},f.fx.speeds={slow:600,fast:200,_default:400},f.fn.delay=function(e,t){return e=f.fx&&f.fx.speeds[e]||e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e,t,n,r,i;(t=N.createElement("div")).setAttribute("className","t"),t.innerHTML="  <link/><table></table><a href='/a'>a</a>
28<input type='checkbox'/>",r=t.getElementsByTagName("a")[0],i=(n=N.createElement("select")).appendChild(N.createElement("option")),e=t.getElementsByTagName("input")[0],r.style.cssText="top:1px",c.getSetAttribute="t"!==t.className,c.style=/top/.test(r.getAttribute("style")),c.hrefNormalized="/a"===r.getAttribute("href"),c.checkOn=!!e.value,c.optSelected=i.selected,c.enctype=!!N.createElement("form").enctype,n.disabled=!0,c.optDisabled=!i.disabled,(e=N.createElement("input")).setAttribute("value",""),c.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),c.radioValue="t"===e.value}();var at=/\r/g;f.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=f.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,f(this).val()):e)?i="":"number"==typeof i?i+="":f.isArray(i)&&(i=f.map(i,function(e){return null==e?"":e+""})),(t=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=f.valHooks[i.type]||f.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(at,""):null==n?"":n:void 0}}),f.extend({valHooks:{option:{get:function(e){var t=f.find.attr(e,"value");return null!=t?t:f.trim(f.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;s>l;l++)if(!(!(n=r[l]).selected&&l!==i||(c.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&f.nodeName(n.parentNode,"optgroup"))){if(t=f(n).val(),o)return t;a.push(t)}return a}
vendor: 4,151 bytes, line 28
28,set:function(e,t){for(var n,r,i=e.options,o=f.makeArray(t),a=i.length;a--;)if(r=i[a],f.inArray(f.valHooks.option.get(r),o)>=0)try{r.selected=n=!0}catch(e){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]={set:function(e,t){return f.isArray(t)?e.checked=f.inArray(f(e).val(),t)>=0:void 0}},c.checkOn||(f.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var st,lt,ut=f.expr.attrHandle,ct=/^(?:checked|selected)$/i,dt=c.getSetAttribute,ft=c.input;f.fn.extend({attr:function(e,t){return X(this,f.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){f.removeAttr(this,e)})}}),f.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return typeof e.getAttribute===M?f.prop(e,t,n):(1===o&&f.isXMLDoc(e)||(t=t.toLowerCase(),r=f.attrHooks[t]||(f.expr.match.bool.test(t)?lt:st)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:null==(i=f.find.attr(e,t))?void 0:i:null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void f.removeAttr(e,t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(j);if(o&&1===e.nodeType)for(;n=o[i++];)r=f.propFix[n]||n,f.expr.match.bool.test(n)?ft&&dt||!ct.test(n)?e[r]=!1:e[f.camelCase("default-"+n)]=e[r]=!1:f.attr(e,n,""),e.removeAttribute(dt?n:r)},attrHooks:{type:{set:function(e,t){if(!c.radioValue&&"radio"===t&&f.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),lt={set:function(e,t,n){return!1===t?f.removeAttr(e,n):ft&&dt||!ct.test(n)?e.setAttribute(!dt&&f.propFix[n]||n,n):e[f.camelCase("default-"+n)]=e[n]=!0,n}},f.each(f.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ut[t]||f.find.attr;ut[t]=ft&&dt||!ct.test(t)?function(e,t,r){var i,o;return r||(o=ut[t],ut[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,ut[t]=o),i}:function(e,t,n){return n?void 0:e[f.camelCase("default-"+t)]?t.toLowerCase():null}}),ft&&dt||(f.attrHooks.value={set:function(e,t,n){return f.nodeName(e,"input")?void(e.defaultValue=t):st&&st.set(e,t,n)}}),dt||(st={set:function(e,t,n){var r=e.getAttributeNode(n);return r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},ut.id=ut.name=ut.coords=function(e,t,n){var r;return n?void 0:(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},f.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:st.set},f.attrHooks.contenteditable={set:function(e,t,n){st.set(e,""!==t&&t,n)}},f.each(["width","height"],function(e,t){f.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),c.style||(f.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var pt=/^(?:input|select|textarea|button|object)$/i,ht=/^(?:a|area)$/i;f.fn.extend({prop:function(e,t){return X(this,f.prop,e,t,arguments.length>1)},removeProp:function(e){return e=f.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(e){}})}}),f.extend({propFix:{for:"htmlFor",class:"className"},prop:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return(1!==o||!f.isXMLDoc(e))&&(t=f.propFix[t]||t,i=f.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=f.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||ht.test(e.nodeName)&&e.href?0:-1}}}}),c.hrefNormalized||f.each(["href","src"],function(e,t){f.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),c.optSelected||(f.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),f.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){f.propFix[this.toLowerCase()]=this}),c.enctype||(f.propFix.enctype="encoding");var mt=/[\t\r\n\f]/g;f.fn.extend({addClass:function(e){var t,n,r,i,o,a,s=0,l=this.length,u="string"==typeof e&&e;
28if(f.isFunction(e))return this.each(function(t){f(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(j)||[];l>s;s++)if(r=1===(n=this[s]).nodeType&&(n.className?(" "+n.className+" ").replace(mt," "):" ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=f.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(e){var t,n,r,i,o,a,s=0,l=this.length,u=0===arguments.length||"string"==typeof e&&e;if(f.isFunction(e))return this.each(function(t){f(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(j)||[];l>s;s++)if(r=1===(n=this[s]).nodeType&&(n.className?(" "+n.className+" ").replace(mt," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");a=e?f.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(f.isFunction(e)?function(n){f(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,r=0,i=f(this),o=e.match(j)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else(n===M||"boolean"===n)&&(this.className&&f._data(this,"__className__",this.className),this.className=this.className||!1===e?"":f._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(mt," ").indexOf(t)>=0)return!0;return!1}}),f.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(e,t){f.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),f.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var gt=f.now(),vt=/\?/,yt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;f.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=f.trim(t+"");return i&&!f.trim(i.replace(yt,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():f.error("Invalid JSON: "+t)},f.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{e.DOMParser?n=(new DOMParser).parseFromString(t,"text/xml"):((n=new ActiveXObject("Microsoft.XMLDOM")).async="false",n.loadXML(t))}catch(e){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||f.error("Invalid XML: "+t),n};var bt,xt,wt=/#.*$/,Tt=/([?&])_=[^&]*/,Ct=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nt=/^(?:GET|HEAD)$/,Et=/^\/\//,kt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,St={},At={},Dt="*/".concat("*");try{xt=location.href}catch(e){(xt=N.createElement("a")).href="",xt=xt.href}function jt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(j)||[];if(f.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Lt(e,t,n,r){var i={},o=e===At;function a(s){var l;return i[s]=!0,f.each(e[s]||[],function(e,s){var u=s(t,n,r);return"string"!=typeof u||o||i[u]?o?!(l=u):void 0:(t.dataTypes.unshift(u),a(u),!1)}),l}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Ht(e,t){var n,r,i=f.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&f.extend(!0,e,n),e}bt=kt.exec(xt.toLowerCase())||[],f.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:xt,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}
vendor: 5,286 bytes, line 28
28,flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ht(Ht(e,f.ajaxSettings),t):Ht(f.ajaxSettings,e)},ajaxPrefilter:jt(St),ajaxTransport:jt(At),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,r,i,o,a,s,l,u,c=f.ajaxSetup({},t),d=c.context||c,p=c.context&&(d.nodeType||d.jquery)?f(d):f.event,h=f.Deferred(),m=f.Callbacks("once memory"),g=c.statusCode||{},v={},y={},b=0,x="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!u)for(u={};t=Ct.exec(o);)u[t[1].toLowerCase()]=t[2];t=u[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?o:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(c.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)g[t]=[g[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||x;return l&&l.abort(t),T(0,t),this}};if(h.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,c.url=((e||c.url||xt)+"").replace(wt,"").replace(Et,bt[1]+"//"),c.type=t.method||t.type||c.method||c.type,c.dataTypes=f.trim(c.dataType||"*").toLowerCase().match(j)||[""],null==c.crossDomain&&(n=kt.exec(c.url.toLowerCase()),c.crossDomain=!(!n||n[1]===bt[1]&&n[2]===bt[2]&&(n[3]||("http:"===n[1]?"80":"443"))===(bt[3]||("http:"===bt[1]?"80":"443")))),c.data&&c.processData&&"string"!=typeof c.data&&(c.data=f.param(c.data,c.traditional)),Lt(St,c,t,w),2===b)return w;for(r in(s=f.event&&c.global)&&0==f.active++&&f.event.trigger("ajaxStart"),c.type=c.type.toUpperCase(),c.hasContent=!Nt.test(c.type),i=c.url,c.hasContent||(c.data&&(i=c.url+=(vt.test(i)?"&":"?")+c.data,delete c.data),!1===c.cache&&(c.url=Tt.test(i)?i.replace(Tt,"$1_="+gt++):i+(vt.test(i)?"&":"?")+"_="+gt++)),c.ifModified&&(f.lastModified[i]&&w.setRequestHeader("If-Modified-Since",f.lastModified[i]),f.etag[i]&&w.setRequestHeader("If-None-Match",f.etag[i])),(c.data&&c.hasContent&&!1!==c.contentType||t.contentType)&&w.setRequestHeader("Content-Type",c.contentType),w.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+("*"!==c.dataTypes[0]?", "+Dt+"; q=0.01":""):c.accepts["*"]),c.headers)w.setRequestHeader(r,c.headers[r]);if(c.beforeSend&&(!1===c.beforeSend.call(d,w,c)||2===b))return w.abort();for(r in x="abort",{success:1,error:1,complete:1})w[r](c[r]);if(l=Lt(At,c,t,w)){w.readyState=1,s&&p.trigger("ajaxSend",[w,c]),c.async&&c.timeout>0&&(a=setTimeout(function(){w.abort("timeout")},c.timeout));try{b=1,l.send(v,T)}catch(e){if(!(2>b))throw e;T(-1,e)}}else T(-1,"No Transport");function T(e,t,n,r){var u,v,y,x,T,C=t;2!==b&&(b=2,a&&clearTimeout(a),l=void 0,o=r||"",w.readyState=e>0?4:0,u=e>=200&&300>e||304===e,n&&(x=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){l.unshift(a);break}if(l[0]in n)o=l[0];else{for(a in n){if(!l[0]||e.converters[a+" "+l[0]]){o=a;break}r||(r=a)}o=o||r}return o?(o!==l[0]&&l.unshift(o),n[o]):void 0}(c,w,n)),x=function(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=u[l+" "+o]||u["* "+o]))for(i in u)if((s=i.split(" "))[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){!0===a?a=u[i]:!0!==u[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(c,x,w,u),u?(c.ifModified&&((T=w.getResponseHeader("Last-Modified"))&&(f.lastModified[i]=T),(T=w.getResponseHeader("etag"))&&(f.etag[i]=T)),204===e||"HEAD"===c.type?C="nocontent":304===e?C="notmodified":(C=x.state,v=x.data,u=!(y=x.error))):(y=C,(e||!C)&&(C="error",0>e&&(e=0))),w.status=e,w.statusText=(t||C)+"",u?h.resolveWith(d,[v,C,w]):h.rejectWith(d,[w,C,y]),w.statusCode(g),g=void 0,s&&p.trigger(u?"ajaxSuccess":"ajaxError",[w,c,u?v:y]),m.fireWith(d,[w,C]),s&&(p.trigger("ajaxComplete",[w,c]),--f.active||f.event.trigger("ajaxStop")))}return w},getJSON:function(e,t,n){return f.get(e,t,n,"json")},getScript:function(e,t){return f.get(e,void 0,t,"script")}}),f.each(["get","post"],function(e,t){f[t]=function(e,n,r,i){return f.isFunction(n)&&(i=i||r,r=n,n=void 0),f.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),f._evalUrl=function(e){return f.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},f.fn.extend({wrapAll:function(e){if(f.isFunction(e))return this.each(function(t){f(this).wrapAll(e.call(this,t))});if(this[0]){var t=f(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(f.isFunction(e)?function(t){f(this).wrapInner(e.call(this,t))}:function(){var t=f(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=f.isFunction(e);return this.each(function(n){f(this).wrapAll(t?e.call(this,n):e)})}
vendor: 5,879 bytes, line 28
28,unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()}}),f.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!c.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||f.css(e,"display"))},f.expr.filters.visible=function(e){return!f.expr.filters.hidden(e)};var qt=/%20/g,_t=/\[\]$/,Mt=/\r?\n/g,Ft=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Bt(e,t,n,r){var i;if(f.isArray(t))f.each(t,function(t,i){n||_t.test(e)?r(e,i):Bt(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==f.type(t))r(e,t);else for(i in t)Bt(e+"["+i+"]",t[i],n,r)}f.param=function(e,t){var n,r=[],i=function(e,t){t=f.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=f.ajaxSettings&&f.ajaxSettings.traditional),f.isArray(e)||e.jquery&&!f.isPlainObject(e))f.each(e,function(){i(this.name,this.value)});else for(n in e)Bt(n,e[n],t,i);return r.join("&").replace(qt,"+")},f.fn.extend({serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=f.prop(this,"elements");return e?f.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!f(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ft.test(e)&&(this.checked||!U.test(e))}).map(function(e,t){var n=f(this).val();return null==n?null:f.isArray(n)?f.map(n,function(e){return{name:t.name,value:e.replace(Mt,"\r\n")}}):{name:t.name,value:n.replace(Mt,"\r\n")}}).get()}}),f.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$t()||function(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}()}:$t;var Pt=0,Rt={},Wt=f.ajaxSettings.xhr();function $t(){try{return new e.XMLHttpRequest}catch(e){}}e.attachEvent&&e.attachEvent("onunload",function(){for(var e in Rt)Rt[e](void 0,!0)}),c.cors=!!Wt&&"withCredentials"in Wt,(Wt=c.ajax=!!Wt)&&f.ajaxTransport(function(e){var t;if(!e.crossDomain||c.cors)return{send:function(n,r){var i,o=e.xhr(),a=++Pt;if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)o[i]=e.xhrFields[i];for(i in e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest"),n)void 0!==n[i]&&o.setRequestHeader(i,n[i]+"");o.send(e.hasContent&&e.data||null),t=function(n,i){var s,l,u;if(t&&(i||4===o.readyState))if(delete Rt[a],t=void 0,o.onreadystatechange=f.noop,i)4!==o.readyState&&o.abort();else{u={},s=o.status,"string"==typeof o.responseText&&(u.text=o.responseText);try{l=o.statusText}catch(e){l=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=u.text?200:404}u&&r(s,l,u,o.getAllResponseHeaders())},e.async?4===o.readyState?setTimeout(t):o.onreadystatechange=Rt[a]=t:t()},abort:function(){t&&t(void 0,!0)}}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return f.globalEval(e),e}}}),f.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),f.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=N.head||f("head")[0]||N.documentElement;return{send:function(r,i){(t=N.createElement("script")).async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var zt=[],It=/(=)\?(?=&|$)|\?\?/;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||f.expando+"_"+gt++;return this[e]=!0,e}}),f.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(It.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&It.test(t.data)&&"data");return s||"jsonp"===t.dataTypes[0]?(i=t.jsonpCallback=f.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(It,"$1"+i):!1!==t.jsonp&&(t.url+=(vt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||f.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,zt.push(i)),a&&f.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),f.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||N;var r=x.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=f.buildFragment([e],t,i),i&&i.length&&f(i).remove(),f.merge([],r.childNodes))};var Xt=f.fn.load;f.fn.load=function(e,t,n){if("string"!=typeof e&&Xt)return Xt.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>=0&&(r=f.trim(e.slice(s,e.length)),e=e.slice(0,s)),f.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),a.length>0&&f.ajax({url:e,type:o,dataType:"html",data:t}).done(function(e){i=arguments,a.html(r?f("<div>").append(f.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){a.each(n,i||[e.responseText,t,e])}),this},f.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){f.fn[t]=function(e){return this.on(t,e)}}),f.expr.filters.animated=function(e){return f.grep(f.timers,function(t){return e===t.elem}).length};var Ut=e.document.documentElement;function Vt(e){return f.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}f.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,u=f.css(e,"position"),c=f(e),d={};"static"===u&&(e.style.position="relative"),s=c.offset(),o=f.css(e,"to
28p"),l=f.css(e,"left"),("absolute"===u||"fixed"===u)&&f.inArray("auto",[o,l])>-1?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),f.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):c.css(d)}},f.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){f.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;return o?(t=o.documentElement,f.contains(t,i)?(typeof i.getBoundingClientRect!==M&&(r=i.getBoundingClientRect()),n=Vt(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r):void 0},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===f.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),f.nodeName(e[0],"html")||(n=e.offset()),n.top+=f.css(e[0],"borderTopWidth",!0),n.left+=f.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-f.css(r,"marginTop",!0),left:t.left-n.left-f.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||Ut;e&&!f.nodeName(e,"html")&&"static"===f.css(e,"position");)e=e.offsetParent;return e||Ut})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);f.fn[e]=function(r){return X(this,function(e,r,i){var o=Vt(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?f(o).scrollLeft():i,n?i:f(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),f.each(["top","left"],function(e,t){f.cssHooks[t]=_e(c.pixelPosition,function(e,n){return n?(n=je(e,t),He.test(n)?f(e).position()[t]+"px":n):void 0})}),f.each({Height:"height",Width:"width"},function(e,t){f.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){f.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(!0===r||!0===i?"margin":"border");return X(this,function(t,n,r){var i;return f.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?f.css(t,n,a):f.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),f.fn.size=function(){return this.length},f.fn.andSelf=f.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return f});var Jt=e.jQuery,Yt=e.$;return f.noConflict=function(t){return e.$===f&&(e.$=Yt),t&&e.jQuery===f&&(e.jQuery=Jt),f},typeof t===M&&(e.jQuery=e.$=f),f});
29                IV$ = window.IV$ = jQuery.noConflict(true); 
30            };
31        };
32    })();
33} catch (err) {
34    IV$ = window.IV$ = jQuery.noConflict(true); 
35};
36/* ================================================================================================================================================== */
37
38/** ===============================================================================================================================================
39 * 
40 * 회원데이터 생성 
41 * - winodow load 이후에 호출 시 정상 노출 / 값 없을 경우 null 
42 * @IV_MEMBER_ID 회원 아이디 {string} / @IV_MEMBER_NAME 회원 이름 {string} / @IV_MEMBER_NICKNAME 회원 별명 
43 * @IV_MEMBER_GROUPNAME 등급명 {string} / @IV_MEMBER_GROUPNO 등급번호 {string}
44 * @IV_MEMBER_EMAIL 회원 이메일 {string} / @IV_MEMBER_PHONE 회원 일반전화번호 {string} / @IV_MEMBER_CELLPHONE 회원 핸드폰번호 {string} / @IV_MEMBER_BIRTHDAY 회원 생일
45 * @IV_MEMBER_BOARDWRITENAME 회원 게시판 작성 시 이름 {string} / @IV_MEMBER_ADDITIONALINFOMATION 회원 추가정보 {array} (객체 배열) / @IV_MEMBER_CREATEDATE 회원 계정생성일 {string} 
46 * @IV_MEMBER_AVAIL_MILEAGE 회원 사용가능 적립금(소수점 포함) {string} / @IV_MEMBER_UNAVAIL_MILEAGE 회원 미가용 적립금(소수점 포함) {string} / @IV_MEMBER_RETURN_MILEAGE 회원 환불예정 적립금(소수점 포함) {string} 
47 * @IV_MEMBER_TOTAL_MILEAGE 회원 총적립금(미가용+가용) (소수점 포함) {string} / @IV_MEMBER_USED_MILEAGE 회원이 사용한 적립금(소수점 포함) {string} 
48 * @IV_MEMBER_ACC_DEPOSIT 회원 누적 예치금{string} / @IV_MEMBER_USED_DEPOSIT 회원 사용 예치금 {string} / @IV_MEMBER_AVAIL_DEPOSIT 사용 가능 예치금 / @IV_MEMBER_RETURN_DEPOSIT 현금 환불요청 예치금 /@IV_MEMBER_TOTAL_DEPOSIT 회원 총예치금(미가용+가용) 
49 * @IV_MEMBER_COUPON_COUNT 보유 쿠폰 수 {number}
50 * @IV_MEMBER_ORDER_COUNT 총주문수 {string} / @IV_MEMBER_ORDER_TOTAL 총주문금액 {string} / @IV_MEMBER_ORDER_INCREASEVALUE 승급까지 남은 정보 ? 
51 */
52var IV_MEMBER_CHECK = IV_MEMBER_CHECK || null;
53var IV_MEMBER_ID = IV_MEMBER_ID || null; 
54var IV_MEMBER_NAME = IV_MEMBER_NAME || null; 
55var IV_MEMBER_NICKNAME = IV_MEMBER_NICKNAME || null; 
56var IV_MEMBER_GROUPNAME = IV_MEMBER_GROUPNAME || null; 
57var IV_MEMBER_GROUPNO = IV_MEMBER_GROUPNO || null; 
58var IV_MEMBER_EMAIL = IV_MEMBER_EMAIL || null; 
59var IV_MEMBER_PHONE = IV_MEMBER_PHONE || null; 
60var IV_MEMBER_CELLPHONE = IV_MEMBER_CELLPHONE || null; 
61var IV_MEMBER_BIRTHDAY = IV_MEMBER_BIRTHDAY || null; 
62var IV_MEMBER_BOARDWRITENAME = IV_MEMBER_BOARDWRITENAME || null; 
63var IV_MEMBER_ADDITIONALINFOMATION = IV_MEMBER_ADDITIONALINFOMATION || null; 
64var IV_MEMBER_CREATEDATE = IV_MEMBER_CREATEDATE || null; 
65var IV_MEMBER_NAME_MILEAGE = IV_MEMBER_NAME_MILEAGE || null;
66var IV_MEMBER_UNIT_MILEAGE = IV_MEMBER_UNIT_MILEAGE || null;
67var IV_MEMBER_AVAIL_MILEAGE = IV_MEMBER_AVAIL_MILEAGE || null; 
68var IV_MEMBER_UNAVAIL_MILEAGE = IV_MEMBER_UNAVAIL_MILEAGE || null; 
69var IV_MEMBER_RETURN_MILEAGE = IV_MEMBER_RETURN_MILEAGE || null; 
70var IV_MEMBER_TOTAL_MILEAGE = IV_MEMBER_TOTAL_MILEAGE || null; 
71var IV_MEMBER_USED_MILEAGE = IV_MEMBER_USED_MILEAGE || null; 
72var IV_MEMBER_NAME_DEPOSIT = IV_MEMBER_NAME_DEPOSIT || null;
73var IV_MEMBER_UNIT_DEPOSIT = IV_MEMBER_UNIT_DEPOSIT || null;
74var IV_MEMBER_ACC_DEPOSIT = IV_MEMBER_ACC_DEPOSIT || null; 
75var IV_MEMBER_USED_DEPOSIT = IV_MEMBER_USED_DEPOSIT || null; 
76var IV_MEMBER_RETURN_DEPOSIT = IV_MEMBER_RETURN_DEPOSIT || null; 
77var IV_MEMBER_AVAIL_DEPOSIT = IV_MEMBER_AVAIL_DEPOSIT || null; 
78var IV_MEMBER_TOTAL_DEPOSIT = IV_MEMBER_TOTAL_DEPOSIT || null; 
79var IV_MEMBER_COUPON_COUNT = IV_MEMBER_COUPON_COUNT || null; 
80var IV_MEMBER_ORDER_COUNT = IV_MEMBER_ORDER_COUNT || null; 
81var IV_MEMBER_ORDER_TOTAL = IV_MEMBER_ORDER_TOTAL || null; 
82var IV_MEMBER_ORDER_INCREASEVALUE = IV_MEMBER_ORDER_INCREASEVALUE || null; 
83var IV_MEMBER_OBJ = IV_MEMBER_OBJ || {};
84/* ================================================================================================================================================== */
85
86/** ================================================================================================================================================== 
87 * 페이지 접속 정보 
88 * @ IV_LOCATION ~ : 주소줄 기준 정보
89 * @ isPopupPage 팝업페이지 여부 0 아님 1 iframe 2 새 창
90 * @ topDocument 최상위 문서
91 * @ IV_TOP_SUBCONTAINER_DATA_PAGE / IV_SUBCONTAINER_DATA_PAGE 최상위/현재 페이지 고유값
92 * @ IV_MEMBER_CHECK 회원/비회원 여부
93 */
94var IV_LOCATION_HREF = IV_LOCATION_HREF || window.location.href; /* 현재 주소줄 전체 */
95var IV_LOCATION_HOSTNAME = IV_LOCATION_HOSTNAME || window.location.hostname; /* 현재 주소 기준 hostname */
96var IV_LOCATION_PATHNAME = IV_LOCATION_PATHNAME || window.location.pathname; /* 현재 주소 기준 pathname */
97var IV_LOCATION_PROTOCOL = IV_LOCATION_PROTOCOL || window.location.protocol; /* 현재 주소 기준 protocol */
98var IV_LOCATION_PARAMETERS = IV_LOCATION_PARAMETERS || ((window.location.search == '') ? '' : window.location.search.split('?')[1]); /* 현재 주소 기준 parameters */
99var isPopupPage = isPopupPage || null; 
100var topDocument = topDocument || null; 
101var IV_TOP_SUBCONTAINER_DATA_PAGE = IV_TOP_SUBCONTAINER_DATA_PAGE || null;
102var IV_SUBCONTAINER_DATA_PAGE = IV_SUBCONTAINER_DATA_PAGE || null;
103try {
104    if(window.frameElement || opener){
105        if(window.frameElement){
106            isPopupPage = 1;
107            topDocument = top.document.documentElement;
108            document.documentElement.classList.add('ivIframeHtml');
109        }else{
110            if(IV$('html').attr('class').indexOf('popup') == -1){
111                isPopupPage = 0;
112                topDocument = document.documentElement;
113            }else{
114                isPopupPage = 2;
115                topDocument = opener.document.documentElement;
116                document.documentElement.classList.add('ivPopupHtml');
117            };
118        };
119    }else{
120        isPopupPage = 0;
121        topDocument = document.documentElement;
122    };
123} catch (err) {
124    isPopupPage = 0;
125    topDocument = document.documentElement;
126};
127IV_MEMBER_CHECK = topDocument.querySelectorAll('#iv_memberChk_nomember').length > 0 ? false : true; //true : 회원 , false: 비회원
128/* ================================================================================================================================================== */
129/** ================================================================================================================================================= 
130 * js, css 동적 호출
131 */
132var includeJs = includeJs || function(jsFilePath, randomUse) {
133    var ord=Math.random();
134    var js = document.createElement("script");
135    js.type = "text/javascript";
136    if(randomUse){
137        js.src = jsFilePath + '?v=' + ord;
138    }else{
139        js.src = jsFilePath;
140    };
141    document.body.appendChild(js);
142};
143var includeCss = includeCss || function(cssFilePath, randomUse){
144    var ord=Math.random();
145    // element 추가
146    var link = document.createElement("link");
147    // href 어트리뷰트에 경로 추가
148    if(randomUse){
149        link.href = cssFilePath + '?v=' + ord;
150    }else{
151        link.href = cssFilePath;
152    };
153    // 비동기식이 아닌 동기식으로 한다.
154    link.async = false;
155    // style일의 기본 어트리뷰트 추가
156    link.rel = "stylesheet";
157    link.type = "text/css";
158    // 헤더에 추가
159    document.head.appendChild(link);
160};
161var loadScript = loadScript || function(url, callback)
162{
163    // adding the script tag to the head as suggested before
164    var head = document.getElementsByTagName('head')[0];
165    var script = document.createElement('script');
166    script.type = 'text/javascript';
167    script.src = url;
168    // then bind the event to the callback function 
169    // there are several events for cross browser compatibility
170    script.onreadystatechange = callback;
171    script.onload = callback;
172    // fire the loading
173    head.appendChild(script);
174};
175/* ================================================================================================================================================== */
176/** ================================================================================================================================================= 
177 * 접속한 기기/브라우저 정보 (iv_userAgentChk통해 확인)
178 * @ IV_DEVICE_CHK : PC/MO
179 * @ IV_BROWSER_CHK : iphone/not-iphone, ie, chrome ... etc
180 */
181var IV_DEVICE_CHK;
182var IV_BROWSER_CHK;
183/**
184 * userAgetn Check 
185 * iv_userAgentChk.__userAgent : 현재 접속 기기 관련 정보 ex 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'
186 * deviceChk : PC or mobile 
187 * browserChk : 브라우저 체크 (ie, edge, whale ...)
188 */
189var iv_userAgentChk = {
190    __userAgent: navigator.userAgent,
191    deviceChk: function () {
192        var e;
193        return e = "m." == IV_LOCATION_HOSTNAME.substr(0, 2) || "mobile--shop" == IV_LOCATION_HOSTNAME.substr(0, 12) || "skin-mobile" == IV_LOCATION_HOSTNAME.substr(0, 11) ? "mobile" : "pc", IV_DEVICE_CHK = e, e
194    },
195    browserChk: function () {
196        var e, t = iv_userAgentChk.__userAgent;
197        return "pc" == iv_userAgentChk.deviceChk() ? t.indexOf("Trident") > -1 ? e = "ie" : t.indexOf("Edg") > -1 ? e = "edge" : t.indexOf("Whale") > -1 ? e = "whale" : t.indexOf("Opera") > -1 || t.indexOf("OPR") > -1 ? e = "opera" : t.indexOf("Firefox") > -1 ? e = "firefox" : t.indexOf("Safari") > -1 && -1 == t.indexOf("Chrome") ? e = "safari" : t.indexOf("Chrome") > -1 && (e = "chrome") : e = t.match(/iPad/i) || t.match(/iPhone/i) ? "iphone" : "not-iphone", IV_BROWSER_CHK = e, iv_userAgentChk.appChk(), e
198    },
199    appChk: function () {
200        var e = null;
201        return e = iv_userAgentChk.__userAgent.indexOf("Cafe24Plus") > -1 ? "app" : "pc" == IV_DEVICE_CHK ? "pc-web" : "mobile-web", IV_TYPE_CHK = e, e
202    }
203};
204iv_userAgentChk.browserChk();
205/* ================================================================================================================================================== */
206/** ================================================================================================================================================= 
207 * 창 정보
208 */
209var IV_vh = IV_vh || 0;
210var IV_vh2 = IV_vh2 || 0;
211var IV_vw = IV_vw || (window.innerWidth * 0.01);
212var IV_topHeight = IV_topHeight || 0;
213/**
214 * swiper custom Array -> 커스텀 swiper array 
215 */
216var IV_SwiperCustomArray = IV_SwiperCustomArray || [];
217/**
218 * property setting -> css변수 생성 지정 설정 
219 */
220var IVSetPropertyArray = IVSetPropertyArray || [
221    {name : 'topBanner', element : '#base_topBanner_container'},
222    {name : 'header', element : '#base_header_container'},
223    {name : 'gnb', element : '#base_header_container .gnb'},
224    {name : 'footer', element : '#base_footer_container'},
225    {name : 'fixedNavi', element : '#base_fixedNavi_container'},
226    {name : 'brandTab', element: '#drgroot_brand_tab'}
227];
228/* ================================================================================================================================================== */
229/**
230 * util function -> util 영역
231 */
232
233var iv_util = iv_util || {
234    getParameterByName: function (href, name) {
235        /**
236         * 파라미터 name에 할당된 값 출력
237         * @href 기준 주소 
238         * @name 파라미터 name
239         * result type string
240         */
241        try {
242            name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
243            var regexS = "[\\?&]" + name + "=([^&#]*)";
244            var regex = new RegExp(regexS);
245            var results = regex.exec(href);
246            if (results == null) {
247                return '';
248            } else {
249                return decodeURIComponent(results[1].replace(/\+/g, " "));
250            };
251        } catch (err) {
252            console.log(err);
253            return '';
254        };
255    },
256    getURLParameters: function (href, name) {
257        /**
258         * 파라미터 name에 할당된 값 출력
259         * @href 기준 주소 
260         * @name 파라미터 name
261         * name 없을 경우 전체 파라미터를 object 형태로 출력, name있을 경우 해당 name에 할당된 값만 string으로 출력 (name 지정의 경우 getParameterByName와 유사함)
262         * result type object/string
263         */
264        try {
265            var result = {};
266            href = href.replace(/[?&]{1}([^=&#]+)=([^&#]*)/g, function(s, k, v) { result[k] = decodeURIComponent(v); return ''; });
267            if(href !== ''){
268                href.replace(/([^=&#]+)=([^&#]*)/g, function(s, k, v) { result[k] = decodeURIComponent(v); return ''; });
269            }
270            if(typeof name !== 'undefined'){
271                if(result[name]){
272                    return result[name];
273                }else{
274                    result = '';
275                    return result;
276                };
277            }else{
278                return result;
279            };
280        } catch (err) {
281            console.log(err);
282            return '';
283        };
284    },
285    getUrl : function(href){
286        try {
287            if(typeof href === 'undefined'){
288                IV_LOCATION_HREF = window.location.href; /* 현재 주소줄 전체 */
289                IV_LOCATION_HOSTNAME = window.location.hostname; /* 현재 주소 기준 hostname */
290                IV_LOCATION_PATHNAME = window.location.pathname; /* 현재 주소 기준 pathname */
291                IV_LOCATION_PROTOCOL = window.location.protocol; /* 현재 주소 기준 protocol */
292                IV_LOCATION_PARAMETERS = ((window.location.search == '') ? '' : window.location.search.split('?')[1]); /* 현재 주소 기준 parameters */
293            }else{
294                if(typeof href === 'string' && href != ''){
295                    if(href.indexOf('?') > -1){
296                        return [href.split('?')[0], href.split('?')[1]];
297                    }else{
298                        return href;
299                    }
300                }else{
301                    return href;
302                }
303            }
304        } catch (err) {
305            console.log(err); 
306            return href;
307        };
308    },
309    comma: function (str) {
310        /**
311         * 숫자 comma 찍어주는 함수
312         * @str string
313         * result type string
314         */
315        try {
316            str = String(str);
317            return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
318        } catch (err) {
319            console.log(err); 
320            return str;
321        };
322    },
323    uncomma: function (str) {
324        /**
325         * 숫자 comma 제거하는 함수
326         * @str string
327         * result type number
328         */
329        try {
330            str = String(str);
331            return Number(str.replace(/[^\d]+/g, ''));
332        }
333        catch (err) {
334            console.log(err); 
335            return str;
336        }
337    },
338    checkAvailability : function(arr, val){
339        /**
340         * 배열 중에 특정 값이 존재하는지 여부 
341         * @arr array 
342         * @val value
343         * result type boolean
344         * error result : null
345         */
346        try {
347            return arr.some(function(arrVal) {
348                return val === arrVal;
349            });
350        } catch (err) {
351            console.log(err); 
352            return null;
353        };
354    },
355    onlyNumbFunc : function(str){
356        /**
357         * 숫자만 남기는 함수
358         * @str string
359         * result type number
360         */
361        try {
362            str = String(str);
363            var reg = /[^0-9]/g;
364            if(reg.test(str)){
365                return Number(str.replace(reg,'').trim());
366            }else{
367                return Number(str);
368            };
369        } catch (err) {
370            console.log(err); 
371            return str;
372        };
373    }, 
374    removeNumbFunc : function(str){
375        /**
376         * 숫자만 제거하는 함수
377         * @str string
378         * result type string
379         */
380        try {
381            str = String(str);
382            var reg = /[0-9]/g;
383            if(reg.test(str)){
384                return str.replace(reg,'').trim();
385            }else{
386                return str;
387            };
388        } catch (err) {
389            console.log(err); 
390            return str;
391        };
392    }, 
393    removeDashFunc : function(str){
394        /**
395         * 대시 제거하는 함수
396         * @str string
397         * result type string
398         */
399        try {
400            str = String(str);
401            var reg = /\-/g;
402            if(reg.test(str)){
403                return str.replace(reg,'').trim();
404            }else{
405                return str;
406            };
407        } catch (err) {
408            console.log(err); 
409            return str;
410        };
411    },
412    removeBlankFunc : function(str){
413        /**
414         * 공백 전체 제거하는 함수
415         * @str string
416         * result type string
417         */
418        try {
419            str = String(str);
420            var reg = / /g;
421            if(reg.test(str)){
422                return str.replace(reg,'').trim();
423            }else{
424                return str;
425            };
426        } catch (err) {
427            console.log(err); 
428            return str;
429        };
430    },
431    removeEnterFunc : function(str){
432        /**
433         * 엔터문자 전체 제거하는 함수
434         * @str string
435         * result type string
436         */
437        try {
438            str = String(str);
439            var reg = /(\r\n|\n|\r)/gm;
440            if(reg.test(str)){
441                return str.replace(reg,'').trim();
442            }else{
443                return str;
444            }
445        } catch (err) {
446            console.log(err); 
447            return str;
448        };
449    },
450    roundDown : function(number, decimals){
451        /**
452         * 특정 자리 수에서 버림 처리  
453         * @number number
454         * @decimals 자리수 (0,-1,-2...)
455         * result type number
456         */
457        try {
458            decimals = decimals || 0;
459            return ( Math.floor( number * Math.pow(10, decimals) ) / Math.pow(10, decimals) );
460        } catch (err) {
461            console.log(err); 
462            return number;
463        };
464    },
465    roundUp : function(number, decimals){
466        /**
467         * 특정 자리 수에서 올림 처리  
468         * @number number
469         * @decimals 자리수 (0,-1,-2...)
470         * result type number
471         */
472        try {
473            decimals = decimals || 0;
474            return ( Math.ceil( number * Math.pow(10, decimals) ) / Math.pow(10, decimals) );
475        } catch (err) {
476            console.log(err); 
477            return number;
478        };
479    },
480    round : function(number, decimals){
481        /**
482         * 특정 자리 수에서 반올림 처리  
483         * @number number
484         * @decimals 자리수 (0,-1,-2...)
485         * result type number
486         */
487        try {
488            decimals = decimals || 0;
489            return ( Math.round( number * Math.pow(10, decimals) ) / Math.pow(10, decimals) );
490        } catch (err) {
491            console.log(err); 
492            return number;
493        };
494    },
495    removeSpecialChars : function(str){
496        /**
497         * 특수문자 제거하는 함수
498         * @str string
499         * result type string
500         */
501        try {
502            str = String(str);
503            var reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi;
504            if(reg.test(str)){
505                return str.replace(reg,'').trim();
506            }else{
507                return str;
508            };
509        } catch (err) {
510            console.log(err); 
511            return str;
512        };
513    },
514    makeDimmed : function(e,t,n){
515        /**
516         * dimmed 영역 생성 함수
517         * @e dimmed 영역 붙는 타이밍 true append -> addClass / false addClass -> append
518         * @t dimmed number 
519         * @n 노출되는 elemenet
520         */
521        if (arguments.length > 0) {
522            let i = typeof arguments[0];
523            "number" === i ? (e = !0, t = arguments[0], void 0 !== arguments[1] && (n = arguments[1])) : "object" === i ? (e = !0, t = 0, n = arguments[0]) : (t = t || 0, n = n || null)
524        } else e = !0, t = 0, n = null;
525        if (0 == IV$(".iv_dimmed_" + t).length) {
526            let i = IV$('<div class="iv_dimmed_' + t + '"></div>');
527            !1 === e ? (i.addClass("on"), IV$("body").append(i)) : (IV$("body").append(i), setTimeout(function () {
528                i.addClass("on")
529            }, 0)), i.on("click", function () {
530                IV$('.ec-base-layer, [class*="iv_"][class*="_layer"], .ec-base-tooltip, .iv_base_tooptip').filter(".on").removeClass("on"), null !== n && EC$(n).children('[class*="close"], [class*="Close"], [class*="delete"]').trigger("click"), iv_util.removeDimmed(e)
531            });
532        };
533    },
534    removeDimmed : function(e){
535        /**
536         * dimmed 영역 제거 함수
537         * @e dimmed 영역 붙는 타이밍 true remove -> removeClass / false removeClass -> remove
538         */
539        let t = IV$('[class*="iv_dimmed"]');
540        if(t.length > 0){
541            function n() {
542                t.remove()
543            }!1 === (e = e || !0) ? t.remove() : "all 0s ease 0s" == t.css("transition") ? (t.removeClass("on"), n()) : (t[0].addEventListener("transitionend", n), t.removeClass("on"));
544        }else{
545            return false;
546        }
547    },
548    scrollDisabled : function(e,t){
549        /**
550         * 스크롤 막기 
551         * @e 노출되는 element
552         * @t dimmed 노출 여부
553         */
554        if (arguments.length > 0) {
555            "object" !== typeof arguments[0] ? (t = arguments[0], e = null) : (e = e || null, t = t || !0)
556        } else t = !0, e = null;
557        iv_util.scrollDisabled.object = iv_util.scrollDisabled.object || [];
558        let n = iv_util.scrollDisabled.object;
559        null !== e && (n.push(e), e[0].iv_openCustomFunction && -1 == String(e[0].iv_openCustomFunction).indexOf("scrollDisabled") && e[0].iv_openCustomFunction());
560        const i = topDocument;
561        topDocument.querySelector("body");
562        if (0 == i.classList.contains("noscroll")) {
563            var r = window.pageYOffset;
564            i.classList.add("noscroll"), i.style.top = -1 * r + "px", !1 !== t && (iv_util.makeDimmed(), IV$('[class*="iv_dimmed_"]').on("click", function () {
565                iv_util.scrollEnabled()
566            }));
567        };
568    },
569    scrollEnabled : function(e){
570        /**
571         * 스크롤 풀기
572         * @e  노출되는 element
573         */
574        if (null !== (e = e || null)) e[0].iv_closeCustomFunction ? -1 == String(e[0].iv_closeCustomFunction).indexOf("scrollEnabled") && e[0].iv_closeCustomFunction() : IV$(e).removeClass("on active");
575        else {
576            iv_util.scrollDisabled.object = iv_util.scrollDisabled.object || [];
577            let e = iv_util.scrollDisabled.object;
578            0 != e.lenegth && e.forEach(function (t, n) {
579                t[0].iv_closeCustomFunction ? -1 == String(t[0].iv_closeCustomFunction).indexOf("scrollEnabled") && t[0].iv_closeCustomFunction() : IV$(t).removeClass("on active"), e.splice(n, 1)
580            });
581        };
582        const t = topDocument;
583        if (t.classList.contains("noscroll")) {
584            topDocument.querySelector("body");
585            var n = Math.abs(t.style.getPropertyValue("top").replace("px", ""));
586            t.classList.remove("noscroll"), t.style.removeProperty("top"), window.scrollTo(0, n), IV$('[class*="iv_dimmed_"]').length > 0 && iv_util.removeDimmed()
587        };
588    },
589    layerOpenFunc : function(e, t, n){
590        /**
591         * iv_layer 여는 함수
592         * 클릭 ele에 data-layer값 필수(팝업 id, class등 구분값) : 열려야 하는 팝업 구분값
593         * addClass on 형태 -> css 작업 필요함
594         * 레이어 영역 외 클릭 시 닫힘 처리
595         * @e button 
596         * @t dimmed 생성 여부
597         * @n scroll 고정 여부 
598         */
599        try {
600            var i = e.getAttribute("data-layer"),
601                r = IV$(i),
602                o = r.attr("class");
603            o = (o = o.indexOf("on") ? o.replace("on", "") : o).indexOf("active") ? o.replace("active", "") : o, IV$(o = "." + o).not(r).removeClass("on active"), r.addClass("on"), t = t || !1, !1 === (n = n || !1) ? !0 === t ? iv_util.scrollDisabled(IV$(i), !0) : iv_util.scrollDisabled(IV$(i), !1) : !0 === t ? iv_util.makeDimmed(IV$(i)) : iv_util.targetOutCloseFunc(IV$(i))
604        } catch (e) {
605            console.log(e)
606        };
607    },
608    layerCloseFunc: function(e){
609        /**
610         * iv_layer 닫는 함수
611         * 클릭 ele에 data-layer값 필수(팝업 id, class등 구분값) : 닫혀야 하는 팝업 구분값
612         * removeClass on 형태 -> css 작업 필요함
613         * @e button 
614         */
615        try {
616            var layer = e.getAttribute('data-layer');
617            IV$(layer).removeClass('on');
618        } catch (err) {
619            console.log(err); 
620        };
621    },
622    targetOutCloseFunc : function(e, t){
623        /**
624         * classname으로 지정한 영역 외 클릭 시, classname 요소 닫힘 처리 함수
625         * @e element
626         * @t callback function 
627         */
628        setTimeout(function () {
629            if (e) try {
630                var n = IV$(e),
631                    i = n.attr("class"),
632                    r = null;
633                if (void 0 !== i)(i = (i = i.indexOf("on") ? i.replace("on", "") : i).indexOf("active") ? i.replace("active", "") : i).indexOf(/ /gi) > -1 && (i = i.replace(/ /gi, ".")), i = "." + i, r = $(i);
634                else {
635                    var o = n.attr("id");
636                    void 0 !== o ? r = $('[id^="' + o + '"]').not(n) : n.siblings().length > 0 && (r = n.siblings())
637                };
638                IV$("body").one("click", function (i) {
639                    if (n.hasClass("on") || n.hasClass("active")) {
640                        var o = IV$(i.target);
641                        (i.target == e || o.parents().filter(n).length > 0) && !o.attr("data-layer") ? (null !== r && r.not(n).removeClass("on active"), iv_util.targetOutCloseFunc(n)) : void 0 !== t ? "all 0s ease 0s" == n.css("transition") ? (n.removeClass("on active"), t()) : (n[0].addEventListener("transitionend", t), n.removeClass("on active")) : n.removeClass("on active")
642                    };
643                })
644            } catch (e) {
645                console.log(e)
646            };
647        }, 0)
648    },
649    arrayUnique : function(arr){
650        /**
651         * 배열 항목 unique만 남기는 함수
652         * @arr array
653         */
654        try {
655            arr = 
656                arr.reduce(function(acc,curr,index){
657                acc.indexOf(curr) > -1 ? acc : acc.push(curr);
658                return acc;
659            },[]);
660            return arr;
661        } catch (err) {
662            console.log(err); 
663        };
664    },
665    checkBatchimEnding : function(str){
666        /**
667         * 한글 끝자리에 받침 있는지 확인 
668         * true 받침있음 false 받침없음
669         * @str string
670         */
671        try {
672            if (typeof str !== 'string') return null;
673            var lastLetter = str[str.length - 1];
674            var uni = lastLetter.charCodeAt(0);
675            if (uni < 44032 || uni > 55203) return null;
676            return (uni - 44032) % 28 != 0;
677        } catch (err) {
678            console.log(err); 
679        };
680    },
681    floatingBox : function (el1, el2){
682        /**
683         * 스크롤 
684         * el1 기준점이 될 전체 영역
685         * el2 //스크롤 시 따라다닐 영역
686         */
687        IV$(window).scroll(function(){srollFunc();});
688        if(IV$(window).scrollTop() > 0){srollFunc();}
689        function srollFunc(){
690            var setScollStandard = el1.outerHeight();
691            var infoBoxHeight = el2.outerHeight();
692            var headerHeight = IV$('header').outerHeight() + 40;
693            el2.find('[data-fixed="true"]').css('top',headerHeight);
694            el1.css('min-height',infoBoxHeight);
695            if(setScollStandard > infoBoxHeight){
696                var scrollStartOffsetTop = el1.offset().top -headerHeight;
697                var offSetMax = setScollStandard + scrollStartOffsetTop - infoBoxHeight;
698                var winTop = IV$(window).scrollTop();
699                if(winTop < offSetMax){
700                    if(winTop < scrollStartOffsetTop){
701                        el2.find('[data-fixed="true"]').removeClass('fixed');
702                    }else{
703                        el2.find('[data-fixed="true"]').addClass('fixed').removeClass('max');
704                    };
705                }else{
706                    el2.find('[data-fixed="true"]').addClass('fixed max');
707                };
708            };
709        };
710    },
711    execDaumPostcode : function(e, t){
712        /**
713         * 다음 우편번호 팝업 함수 
714         * @e : data-layer / .content / data-addr=true 3가지 항목 필요
715         * [data-addr-type="zipcode"] zipcode
716         * [data-addr-type="raddr1"] addr1
717         * [data-addr-type="raddr2"] addr2
718         * @t page 구분
719         */
720        if(typeof IV_ZIPCODE_LAYER_THEME_FOR_DAUMKAKAO === 'undefined'){
721            var IV_ZIPCODE_LAYER_THEME_FOR_DAUMKAKAO = {
722                bgColor: "#FAFAFA", //바탕 배경색
723                //searchBgColor: "", //검색창 배경색
724                //contentBgColor: "", //본문 배경색(검색결과,결과없음,첫화면,검색서제스트)
725                //pageBgColor: "", //페이지 배경색
726                textColor: "#000000", //기본 글자색
727                //queryTextColor: "", //검색창 글자색
728                postcodeTextColor: "#EB3300" //우편번호 글자색
729                //emphTextColor: "", //강조 글자색
730                //outlineColor: "", //테두리
731            };
732        }
733        var theme = IV_ZIPCODE_LAYER_THEME_FOR_DAUMKAKAO;
734        // 우편번호 찾기 찾기 화면을 넣을 element
735        var n = e.getAttribute("data-layer"),
736            i = document.querySelector(n).querySelector(".content"),
737            r = IV$(e).closest('[data-addr="true"]');
738        Math.max(document.body.scrollTop, document.documentElement.scrollTop);
739        new daum.Postcode({
740            oncomplete: function (e) {
741                var n = "",
742                    i = "";
743                n = "R" === e.userSelectedType ? e.roadAddress : e.jibunAddress, "R" === e.userSelectedType && ("" !== e.bname && /[동|로|가]$/g.test(e.bname) && (i += e.bname), "" !== e.buildingName && "Y" === e.apartment && (i += "" !== i ? ", " + e.buildingName : e.buildingName), "" !== i && (i = " (" + i + ")")), void 0 !== iv_util.execDaumPostcode.selectBefore ? iv_util.execDaumPostcode.selectBefore.execute(r, e, n, i) : (r.find('[data-addr-type="zipcode"]').val(e.zonecode), r.find('[data-addr-type="addr1"]').val(n + " " + i), r.find('[data-addr-type="addr2"]').val("").focus(), "orderform" === t && EC_SHOP_FRONT_ORDERFORM_SHIPPING.exec(), void 0 !== iv_util.execDaumPostcode.selectAfter && iv_util.execDaumPostcode.selectAfter.execute()), iv_util.scrollEnabled()
744            },
745            onsearch: function (e) {},
746            theme: theme,
747            onresize: function (e) {
748                i.style.height = e.height + 30 + "px", document.querySelector(n).classList.add("on"), iv_util.scrollDisabled(IV$(n))
749            },
750            width: "100%",
751            height: "100%"
752        }).embed(i)
753    },
754    optionTxt : function(e){
755        /**
756        * 옵션명에서 추가금/대괄호 제거
757        * @e element
758        */
759        e.find(".option_str_txt").each(function () {
760            var e = IV$(this);
761            e.text(e.text().slice(1, e.text().length - 1)), e.text().indexOf("(+") > -1 ? e.text(e.text().split("(+")[0].trim()) : e.text().indexOf("(-") > -1 && e.text(e.text().split("(-")[0].trim())
762        })
763    },
764    selectedOptionTxt : function(e){
765        /**
766        * 선택 완료 옵션명에서 쿠폰적용가 / 박스당 가격 / 추가금액 문구 제거
767        * @e element
768        */
769        var $scope = (typeof e === 'undefined') ? IV$(document) : IV$(e);
770        var $target = $scope.is('.option_product .product .inner') ? $scope : $scope.find('.option_product .product .inner');
771
772        $target.each(function () {
773            var $this = IV$(this);
774
775            $this.find('.coupon_prc, .month_prc, .inner_right').remove();
776
777            var txt = $this.text();
778
779            var replaceTxt = txt
780                .replace(/\s*쿠폰적용가\s*[\d,]+\s*원?.*$/g, '')
781                .replace(/\s*\(1박스\s*당\s*[\d,]+\s*원\)/g, '')
782                .replace(/\s*\(\+\s*[\d,]+\s*원\)/g, '')
783                .replace(/\s{2,}/g, ' ')
784                .trim();
785
786            if(txt.trim() !== replaceTxt){
787                $this.text(replaceTxt + ' ');
788            };
789        });
790    },
791    selectedOptionTxtInit : function(){
792        var $optionProducts = IV$('tbody.option_products, tbody.add_products');
793        $optionProducts.each(function(){
794            var $this = IV$(this);
795            if($this.attr('data-iv-selected-option-txt') === 'done'){
796                return true;
797            };
798            $this.attr('data-iv-selected-option-txt', 'done');
799            iv_util.selectedOptionTxt($this);
800            $this.iv_observerFunc(function(){
801                iv_util.selectedOptionTxt($this);
802            }, {
803                childList: true,
804                characterData: true,
805                subtree: true
806            });
807        });
808    },
809    selectedOptionTxtDelay : function(){
810        iv_util.selectedOptionTxt();
811        setTimeout(function(){
812            iv_util.selectedOptionTxt();
813        }, 0);
814        setTimeout(function(){
815            iv_util.selectedOptionTxt();
816        }, 100);
817        setTimeout(function(){
818            iv_util.selectedOptionTxt();
819        }, 300);
820    },
821    selectedOptionTxtByItemCode : function(itemCode, optionText){
822        if(typeof itemCode === 'undefined' || itemCode === '' || itemCode === '*' || itemCode === '**' || typeof optionText === 'undefined' || optionText === ''){
823            return false;
824        };
825
826        optionText = IV$.trim(String(optionText)
827            .replace(/\s*쿠폰적용가\s*[\d,]+\s*원?.*$/g, '')
828            .replace(/\s*\(1박스\s*당\s*[\d,]+\s*원\)/g, '')
829            .replace(/\s*\(\+\s*[\d,]+\s*원\)/g, '')
830            .replace(/\s{2,}/g, ' ')
831        );
832
833        IV$('.option_box_id').filter(function(){
834            return IV$(this).val() === itemCode;
835        }).closest('.option_product').find('.product .inner').text(optionText + ' ');
836    },
837    selectedOptionTxtByItemCodeDelay : function(itemCode, optionText){
838        iv_util.selectedOptionTxtByItemCode(itemCode, optionText);
839        setTimeout(function(){
840            iv_util.selectedOptionTxtByItemCode(itemCode, optionText);
841        }, 0);
842        setTimeout(function(){
843            iv_util.selectedOptionTxtByItemCode(itemCode, optionText);
844        }, 100);
845        setTimeout(function(){
846            iv_util.selectedOptionTxtByItemCode(itemCode, optionText);
847        }, 300);
848    },
849    tablePrc : function(e){
850        /**
851         * 상품테이블에서 가격 출력
852         * @e element
853         */
854        var t = e.find(".td_prc"),
855            n = t.find('[title="판매가"]'),
856            i = t.find('[title="최종가"]'),
857            r = e.find('input[id^="quantity_id_"]').val();
858        void 0 === r && (r = 0 == e.find(".qty_text").length ? iv_util.uncomma(e.find(".qty-text").text()) : e.find(".qty_text").text());
859        var o = r * Number(iv_util.uncomma(n.children("strong").text())),
860            a = r * Number(iv_util.uncomma(i.children("strong").text()));
861        e.find(".fin_prc > strong").text(iv_util.comma(a)), e.find(".default_prc").text(iv_util.comma(o)), a < o && (e.find(".default_prc").removeClass("displaynone"), e.find(".default_prc").hasClass("discount") || e.find(".default_prc").addClass("discount"))
862    },
863    IntersectionObserver : function(e, t, n){
864        /**
865         * viewport 감지
866         * @e element
867         * @t option
868         * @n callback function
869         */
870        let i, r;
871        (i = "string" == typeof e ? document.querySelectorAll(e) : e).forEach(function (e, i) {
872            let o = IV$(e).css("top");
873            "auto" == o && (o = IV_topHeight);
874            let a = -1 * iv_util.onlyNumbFunc(o) - 1,
875                s = -1 * Math.round(100 * IV_vh + a - 2);
876            a = a + 'px';
877            s = s + 'px';
878            if(typeof t !== 'undefined'){
879                r = t;
880            }else{
881                r = {
882                    root: null,
883                    rootMargin: a + " 0px " + s + " 0px",
884                    threshold: [0]
885                };
886            };
887            const l = new IntersectionObserver(function (e, t) {
888                e.forEach(function (i) {
889                    !0 === i.isIntersecting ? IV$(i.target).addClass("iv-isIntersecting") : IV$(i.target).removeClass("iv-isIntersecting"), n(i, t, e, l)
890                });
891            }, r);
892            l.observe(e);
893        });
894    },
895    debounce : function(callback, limit) {
896        /**
897         * debounce
898         * @callback 실행할 함수
899         * @limit 실행 기준 시간
900         */
901        let timeout;
902        return function(arguments) { 
903            clearTimeout(timeout); 
904            timeout = setTimeout(function() { 
905                callback.apply(this, arguments); 
906            }, limit); 
907        }
908    },
909    throttle : function(callback, limit) {
910        /**
911         * debounce
912         * @callback 실행할 함수
913         * @limit 실행 기준 시간
914         */
915        let waiting = false;
916        return function() {
917            if(!waiting) {
918                callback.apply(this, arguments);
919                waiting = true;
920                setTimeout(function() {
921                    waiting = false;
922                }, limit);
923            };
924        };
925    },
926    hexToRgb : function(e) {
927        /**
928         * hex -> rgb 전환 (축약/#포함미포함/확장형 모두 전환)
929         * Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
930         * @e = hex code
931         */
932        e = e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (e, t, n, i) {
933            return t + t + n + n + i + i
934        });
935        var t = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);
936        return t ? {
937            r: parseInt(t[1], 16),
938            g: parseInt(t[2], 16),
939            b: parseInt(t[3], 16)
940        } : null
941    },
942    rgbToHex : function(e, t, n) {
943        /**
944         * rgb -> hex 전환 
945         * @e red color value(number or string) ex 250
946         * @t green color value(number or string) ex 250
947         * @n blue color value(number or string) ex 250
948         */
949        return "#" + (16777216 + (e << 16 | t << 8 | n << 0)).toString(16).slice(1);
950    },
951    getComments : function(e){
952        /**
953         * 주석 내용 가져오기
954         * @e element
955         */
956        let t = [];
957        return e.contents().filter(function () {
958            if (8 == this.nodeType) {
959                let e = iv_util.removeBlankFunc(this.nodeValue);
960                t.push(e)
961            }
962        }), t;
963    },
964    getCommentParam : function(e, t){
965        /**
966         * 주석 변수 name에 따라 출력
967         * @e 주석
968         * @t name
969         */
970        try {
971            t = t.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
972            var n = new RegExp("[\\$@]" + t + "=([^$@]*)").exec(e);
973            return null == n ? "" : decodeURIComponent(n[1].replace(/\+/g, " "))
974        } catch (e) {
975            return console.log(e), ""
976        };
977    },
978    getTime : function(date, type, type2){
979        /**
980         * 시간 가져오기 
981         * @date 기준 날짜 (없을 경우 오늘 날짜) / type array 
982         * @type 출력 타입 time or array
983         * @type2 출력할 단계 1 날짜 + 시간 / 2 날짜 + 시간 + 분 / 3 날짜 + 시간 + 분 + 초 / else 날짜 
984         */
985        var today = new Date();
986        type2 = String(type2);
987        var basic = ['','','','','',''];
988        date = IV$.extend(basic,date);
989        if(date !== false){
990            if(type2 === '1'){
991                //날짜 + 시간
992                if(type === 'time'){
993                    date = new Date(date[0], date[1] -1, date[2], date[3], 00,00);
994                    return date;
995                }else{
996                    return [date[0],date[1],date[2],'',''];
997                };
998            }else if(type2=='2'){
999                //날짜 + 시간 + 분
1000                if(type === 'time'){
1001                    date = new Date(date[0], date[1] -1, date[2], date[3], date[4], 00);
1002                    return date;
1003                }else{
1004                    return [date[0],date[1],date[2],date[3],''];
1005                };
1006            }else if(type2 == '3'){
1007                //날짜 + 시간 + 분 + 초
1008                if(type === 'time'){
1009                    date = new Date(date[0], date[1] -1, date[2], date[3], date[4], date[5]);
1010                    return date;
1011                }else{
1012                    return [date[0],date[1],date[2],date[3],date[4],date[5]];
1013                };
1014            }else{
1015                //그 외 값이면 날짜까지만
1016                if(type === 'time'){
1017                    date = new Date(date[0], date[1] -1, date[2],00,00,00);
1018                    return date;
1019                }else{
1020                    return [date[0],date[1],date[2],'','',''];
1021                };
1022            };
1023        }else{
1024            date = today;
1025            var year = String(date.getFullYear());
1026            var month = ('0' + (date.getMonth() + 1)).slice(-2);
1027            var day = ('0' + date.getDate()).slice(-2);
1028            var hours = ('0' + date.getHours()).slice(-2); 
1029            var minutes = ('0' + date.getMinutes()).slice(-2);
1030            var seconds = ('0' + date.getSeconds()).slice(-2); 
1031            if(type2 === '1'){
1032                //날짜 + 시간
1033                if(type === 'time'){
1034                    date = new Date(year, date.getMonth(), day, hours, 00,00);
1035                    return date;
1036                }else{
1037                    return [year, month, day, hours, '', ''];
1038                };
1039            }else if(type2=='2'){
1040                //날짜 + 시간 + 분
1041                if(type === 'time'){
1042                    date = new Date(year, date.getMonth(), day, hours, minutes,00);
1043                    return date;
1044                }else{
1045                    return [year, month, day, hours, minutes, ''];
1046                };
1047            }else if(type2 == '3'){
1048                //날짜 + 시간 + 분 + 초
1049                if(type === 'time'){
1050                    date = new Date(year, date.getMonth(), day, hours, minutes,seconds);
1051                    return date;
1052                }else{
1053                    return [year, month, day, hours, minutes, seconds];
1054                };
1055            }else{
1056                //그 외 값이면 날짜까지만
1057                if(type === 'time'){
1058                    date = new Date(year, date.getMonth(), day, 00, 00,00);
1059                    return date;
1060                }else{
1061                    return [year, month, day, '', '', ''];
1062                };
1063            };
1064        };
1065    },
1066    getServerTime : function(){
1067        /**
1068         * 서버 시간 가져오기 
1069         */
1070        return new Promise(function (e, t) {
1071            $.get("https://ododoc.kr/api_return_cur_time", function (n) {
1072                if (n) {
1073                    var i = n.serverTime.split(" "),
1074                        r = i[0].split("-"),
1075                        o = i[1].split("-"),
1076                        a = r[0],
1077                        s = ("0" + r[1]).slice(-2),
1078                        l = ("0" + r[2]).slice(-2),
1079                        c = ("0" + o[0]).slice(-2),
1080                        u = ("0" + o[1]).slice(-2),
1081                        d = ("0" + o[2]).slice(-2),
1082                        f = [new Date(a, Number(s) - 1, l, c, u, d), a, s, l, c, u, d];
1083                    e(f);
1084                };
1085                t(new Error("Request is failed"))
1086            });
1087        });
1088    },
1089    replaceAt : function(e, t, n){
1090        /**
1091         * 특정 자리 수 기준으로 replace
1092         * @e string
1093         * @t 자리수
1094         * @n 변경할 텍스트 
1095         */
1096        return e.substr(0, t) + n + e.substr(t + n.length);
1097    },
1098    betweenDateGapCalc : function(stDate, endDate){
1099        /**
1100         * 날짜 사이 gap 구하는 함수 
1101         * 특수문자 포함 시 특수문자 기준으로 split / 없을 경우 자리수 기준으로 뜯기
1102         * yyyy-mm-dd-hh-mm-ss 양식
1103         * @stDate 시작일
1104         * @endDate 종료일
1105         */
1106        var reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi;
1107        let sTime;
1108        let eTime; 
1109        if(typeof stDate === 'string'){
1110            if(reg.test(stDate)){
1111                stDate = stDate.split(reg);
1112            }else{
1113                stDate = [stDate.substr(0,4), stDate.substr(4,2), stDate.substr(6,2), stDate.substr(8,2), stDate.substr(10,2), stDate.substr(12,2)];   
1114            };
1115            sTime = new Date(stDate[0], stDate[1] -1, stDate[2], stDate[3], stDate[4], stDate[5]);
1116        }else{
1117            if(Array.isArray(stDate)){
1118                sTime = new Date(stDate[0], stDate[1] -1, stDate[2], stDate[3], stDate[4], stDate[5]);
1119            }else{
1120                sTime = stDate;
1121            };
1122        };
1123        if(typeof endDate === 'string'){
1124            if(reg.test(endDate)){
1125                endDate = endDate.split(reg);
1126            }else{
1127                endDate = [endDate.substr(0,4), endDate.substr(4,2), endDate.substr(6,2), endDate.substr(8,2), endDate.substr(10,2), endDate.substr(12,2)];   
1128            };
1129            eTime = new Date(endDate[0], endDate[1] -1, endDate[2], endDate[3], endDate[4], endDate[5]); 
1130        }else{
1131            if(Array.isArray(endDate)){
1132                eTime = new Date(endDate[0], endDate[1] -1, endDate[2], endDate[3], endDate[4], endDate[5]); 
1133            }else{
1134                eTime = endDate;
1135            };
1136        };
1137        var dateGap = eTime.getTime() - sTime.getTime();
1138        var timeGap = new Date(0, 0, 0, 0, 0, 0, eTime - sTime); 
1139        var diffDay  = Math.floor(dateGap / (1000 * 60 * 60 * 24)); // 일수       
1140        var diffHour = timeGap.getHours();       // 시간
1141        var diffMin  = timeGap.getMinutes();      // 분
1142        var diffSec  = timeGap.getSeconds();      // 초
1143        var result = [dateGap, diffDay, diffHour, diffMin, diffSec];
1144        return result;
1145    },
1146    viewtestCondition : function(condition, callback){
1147        /**
1148         * 테스트 컨디션으로 보기 위한 함수
1149         * @condition 추가조건 / true/false
1150         * @callback function
1151         */
1152        if(typeof IV_TEST_CONDITION_ARRAY !== 'undefined'){
1153            if(condition){
1154                IV_TEST_CONDITION_ARRAY.some(function(e,i){
1155                    if(IV_MEMBER_ID == e){
1156                        if(typeof callback !== 'undefined'){
1157                            callback();
1158                        }
1159                    }
1160                });
1161            }
1162        }
1163    },
1164    getDeepestChild : function(param) {
1165        /**
1166         * 가장 깊은 단계 자식 요소 return 
1167         * @param element
1168         */
1169        var element_list = IV$(param);
1170        var depth = 0;
1171        var deepest_element;
1172        ( findChildren = function(){
1173            if(element_list.children().length == 0){
1174                deepest_element = element_list;
1175            }else{
1176                if(element_list.children().children().length > 0){
1177                    element_list = element_list.children();
1178                    findChildren();
1179                }else{
1180                    deepest_element = element_list.children();
1181                };
1182            };
1183        })();
1184        return deepest_element;
1185    },
1186    setCookie : function(name, value, exp){
1187        var date = new Date();
1188        date.setTime(date.getTime() + exp*24*60*60*1000);
1189        document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/';
1190    },
1191    getCookie : function(name){
1192        var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
1193        return value? value[2] : null;
1194    },
1195    deleteCookie : function(name){
1196        document.cookie = name + '=; expires=Thu, 01 Jan 1999 00:00:10 GMT;path=/';
1197    },
1198};
1199
1200
1201/**
1202 * extend 
1203 */
1204var IV_SWIPE_NUM = IV_SWIPE_NUM || 0;
1205var IV_SWIPE_KEYS;
1206var IV_SWIPE_DEFERREDLIST = [];
1207
1208IV$.fn.extend({
1209    /**
1210     * 기본 swiper 생성 -> data-custom = false인 경우 생성
1211     */
1212    iv_swiperFunc : function(options){
1213        var def = IV$.Deferred();
1214        
1215        this.each(function(i, x){
1216            var innerDef = IV$.Deferred();
1217            IV_SWIPE_DEFERREDLIST.push(innerDef.promise());
1218            let classList = x.classList, 
1219                $x = IV$(x),
1220                config = {};
1221            if(typeof options === 'undefined'){
1222                if(typeof IV_SwiperBasicOption !== 'object'){
1223                    config = {
1224                        slidesPerView : 'auto',
1225                        spaceBetween : 0,
1226                        speed : 300,
1227                        loop: false,
1228                    };
1229                }else{
1230                    config = Object.assign({}, IV_SwiperBasicOption);
1231                };
1232            }
1233            
1234            ( letMakeSwiper = function(){
1235                if(classList.contains('ivswipe-done') === false){
1236                    let checkMakeSwiperFlag = false;
1237                    let checkID = ((typeof $x.attr('id') === 'undefined') ? false : $x.attr('id').indexOf('ivBanner_') > -1) ? true : false;
1238                    function setIvSwiper(){
1239                        Array.from($x[0].attributes).forEach(attr => {
1240                            if(attr.nodeName.indexOf('ivswipe-') > -1){
1241                                $x.children('[class*="container-ivBanner-"]').children('[class*="wrapper-ivBanner"]').attr(`${attr.nodeName}`,`${attr.nodeValue}`);
1242                                $x.removeAttr(attr.nodeName);
1243                            }
1244                        })
1245                        $x.removeClass('iv_swiper');
1246                        $x.children('[class*="container-ivBanner-"]').children('[class*="wrapper-ivBanner"]').addClass('iv_swiper');
1247                        $x = $x.children('[class*="container-ivBanner-"]').children('[class*="wrapper-ivBanner"]');
1248                        x = $x[0];
1249                    }
1250                    
1251                    function setSwiper(){
1252                        if(checkMakeSwiperFlag && typeof x !== 'undefined'){
1253                            let dataSet = x.dataset,
1254                                dataSetKeyArray = Object.keys(dataSet),
1255                                name = (typeof dataSet['ivswipeName'] !== 'undefined') ? dataSet['ivswipeName'] : 'tempName' + String(IV_SWIPE_NUM),
1256                                custom = dataSet['ivswipeCustom'],
1257                                module = dataSet['ivswipeModule'],
1258                                connect = dataSet['ivswipeConnect'];
1259                            name = (name.indexOf('ivswipe_') > -1) ? name.split('ivswipe_')[1].trim() : name;
1260                            if(typeof window['ivswipe_'+name] !== 'undefined'){
1261                                name = 'tempName' + String(IV_SWIPE_NUM);
1262                            }
1263                            IV_SWIPE_NUM++;
1264                            let ivswiper = null,
1265                                $baseSwiperContainer,
1266                                $swiperContainer,
1267                                $swiperSlide;
1268                            if(classList.contains('ivswipe-init')){
1269                                $baseSwiperContainer = $x.closest('.base_swiper_container');
1270                                $swiperContainer = $x.parent('.swiper-container');
1271                                $swiperSlide = $x.children();
1272                                ivswiper = window['ivswipe_' + name];
1273                                if(typeof ivswiper !== 'undefined'){
1274                                    ivswiper.init();
1275                                }else{
1276                                    makeIvSwiper();
1277                                }
1278                            }else{
1279                                let checkID = $x.attr('id');
1280                                let makeElementFunc = function(){
1281                                    $baseSwiperContainer = $x.parent().addClass('base_swiper_container');
1282                                    $swiperSlide = $x.children().addClass('swiper-slide');
1283                                    $x.wrap('<div class="swiper-container"></div>');
1284                                    $swiperContainer = $x.closest('.swiper-container');
1285                                    $x.addClass('ivswipe-init swiper-wrapper');
1286                                };
1287                                makeElementFunc();
1288                                if(typeof module !== 'undefined' && module !== ''){
1289                                    module = (module.indexOf(',') > -1) ? module.split(',') : [module];
1290                                    module.forEach(function(e,i){
1291                                        switch(e.trim()){
1292                                            case 'scrollbar' :
1293                                                let $scrollbar;
1294                                                if($baseSwiperContainer.find('.base_swiper_scrollbar').length == 0){
1295                                                    $scrollbar = IV$('<div class="base_module_container base_swiper_scrollbar"><div class="swiper-scrollbar"></div></div>');
1296                                                    $baseSwiperContainer.append($scrollbar);
1297                                                }
1298                                                config['scrollbar'] = {el: $baseSwiperContainer.find('.swiper-scrollbar')[0],hide: false};
1299                                                break;
1300                                            case 'pagination' :
1301                                                let $pagination;
1302                                                if($baseSwiperContainer.find('.base_swiper_pagination').length ==0){
1303                                                    $pagination = IV$('<div class="base_module_container base_swiper_pagination"><div class="swiper-pagination"></div></div>');
1304                                                    $baseSwiperContainer.append($pagination);
1305                                                }
1306                                                config['pagination'] = {el: $baseSwiperContainer.find('.swiper-pagination')[0],clickable: true}; 
1307                                                break;
1308                                            case 'navigation' :
1309                                                let $navigation;
1310                                                if($baseSwiperContainer.find('.base_swiper_navigation').length == 0){
1311                                                    $navigation = IV$('<div class="base_module_container base_swiper_navigation"><div class="swiper-button-prev"></div><div class="swiper-button-next"></div></div>');
1312                                                    $baseSwiperContainer.append($navigation);
1313                                                }
1314                                                config['navigation'] = {
1315                                                    nextEl: $baseSwiperContainer.find('.base_swiper_navigation .swiper-button-next')[0],
1316                                                    prevEl: $baseSwiperContainer.find('.base_swiper_navigation .swiper-button-prev')[0]};
1317                                                break;
1318                                            case 'progressbar' :
1319                                                let $progressbar;
1320                                                if($baseSwiperContainer.find('.base_swiper_pagination').length == 0){
1321                                                    $progressbar = IV$('<div class="base_module_container base_swiper_pagination"><div class="swiper-pagination"></div></div>');
1322                                                    $baseSwiperContainer.append($progressbar);
1323                                                }
1324                                                config['pagination'] = {el: $baseSwiperContainer.find('.swiper-pagination')[0],type: 'progressbar'};
1325                                                break;
1326                                            case 'fraction' :
1327                                                let $fraction;
1328                                                if($baseSwiperContainer.find('.base_swiper_pagination').length == 0){
1329                                                    $fraction = IV$('<div class="base_module_container base_swiper_pagination"><div class="swiper-pagination"></div></div>');
1330                                                    $baseSwiperContainer.append($fraction);
1331                                                }
1332                                                config['pagination'] = {el: $baseSwiperContainer.find('.swiper-pagination')[0],type: 'fraction'};
1333                                                break;
1334                                            default : 
1335                                                break;
1336                                        }
1337                                    });
1338                                }
1339                                makeIvSwiper();
1340                            }
1341                            /**
1342                             * swiper 생성 방법
1343                             * 1) IV_SwiperCustomArray -> {swiperName : 스와이퍼구분명, swiperOption : 스와이퍼 실행 옵션} 형태로 push
1344                             * 2) html 마크업에 data 속성으로 요소 넣는다
1345                             * 3) 직접 swiper option을 넣는다 ex $mainContent.addClass('iv_swiper').iv_swiperFunc(config);
1346                             */
1347                            function makeIvSwiper(){
1348                                if(custom === 'true'){
1349                                    if(typeof options !== 'undefined'){
1350                                        config = IV$.extend(config,options);
1351                                    }else{
1352                                        IV_SwiperCustomArray.forEach(function(e,i){
1353                                            if(e.swiperName == name){
1354                                                var options = e.swiperOption;
1355                                                config = IV$.extend(config,options);
1356                                            }
1357                                        });
1358                                    }
1359                                }else{
1360                                    if(typeof options !== 'undefined'){
1361                                        config = IV$.extend(config,options);
1362                                    }else{
1363                                        let ivSwiperDataArray=dataSetKeyArray.reduce(function(acc,e,i,arr){
1364                                            if(e.indexOf('ivswipe')>-1&&e.indexOf('ivswipeName')==-1&&e.indexOf('ivswipeCustom')==-1&&e.indexOf('ivswipeConnect')==-1&&e.indexOf('ivswipeModule')==-1){
1365                                                let option=e.split('ivswipe')[1];option=option.replace(option[0],option[0].toLowerCase());
1366                                                let value = dataSet[e];
1367                                                let numberValue = Number(value);
1368                                                if (isNaN(numberValue) === !1) {
1369                                                    value = numberValue
1370                                                }
1371                                                switch (value) {
1372                                                    case 'true':
1373                                                        value = !0;
1374                                                        break;
1375                                                    case 'false':
1376                                                        value = !1;
1377                                                        break;
1378                                                    default:
1379                                                        break
1380                                                }
1381                                                Object.keys(IV_SWIPE_KEYS).forEac
1381h(function(e,i){
1382                                                    let keyLowerCase = e.toLowerCase();
1383                                                    if(option == keyLowerCase){
1384                                                        option = e;
1385                                                    }
1386                                                });
1387                                                switch (option) {
1388                                                    case 'autoplay':
1389                                                        value = {
1390                                                            delay: value,
1391                                                            disableOnInteraction: !1
1392                                                        };
1393                                                        break;
1394                                                    case 'keyboard':
1395                                                        value = {
1396                                                            enabled: !0
1397                                                        };
1398                                                        break;
1399                                                    default:
1400                                                        break
1401                                                }
1402                                                acc[option]=value;
1403                                                return acc;
1404                                            }else{return acc}},{});
1405                                        config=IV$.extend(config,ivSwiperDataArray);
1406                                    }
1407                                }
1408                            };
1409                            function updateSwipe(){
1410                                if(ivswiper.virtualSize - ivswiper.size < 5){
1411                                    IV$(ivswiper.$wrapperEl).addClass('no-swiping');
1412                                    IV$(ivswiper.$el).closest('.base_swiper_container').find('.base_module_container').addClass('displaynone');
1413                                }else{
1414                                    IV$(ivswiper.$wrapperEl).removeClass('no-swiping');
1415                                    IV$(ivswiper.$el).closest('.base_swiper_container').find('.base_module_container').removeClass('displaynone');
1416                                }
1417                                ivswiper.update();
1418                            }
1419                            if(typeof config['observeParents'] === 'undefined'){
1420                                const targetNode = $x.get(0);
1421                                const observer = new ResizeObserver(detectChange);
1422                                function detectChange(mutationsList, observer) {
1423                                    if(mutationsList){
1424                                        setTimeout(updateSwipe, 300);
1425                                        setTimeout(updateSwipe, 1200);
1426                                    }
1427                                };
1428                                observer.observe(targetNode, {box: "border-box"});
1429                            }
1430                            let slideUpdateFunc = function(a, b){
1431                                a.some(function(arr, val){
1432                                    if(arr.type === 'childList'){
1433                                        IV$(ivswiper.$wrapperEl).children().addClass('swiper-slide');
1434                                        updateSwipe();
1435                                        return true;
1436                                    }
1437                                });
1438                            }
1439                            $x.iv_observerFunc(slideUpdateFunc, {
1440                                attributes: false,
1441                                childList: true,
1442                                subtree: false,
1443                            });
1444                            x['ivswipe'] = config; //iv_swiper에 넣어줌
1445                            window['ivswipe_' +name] = new Swiper($swiperContainer[0], config);
1446                            $x.attr('data-ivswipe-name', 'ivswipe_' + name);
1447                            ivswiper = window['ivswipe_' +name];
1448                            $x.addClass('ivswipe-done');
1449                            let IV_SWIPER_SINGLE_CALL_END = new CustomEvent('IVSwiperCall', {'detail': window['ivswipe_' +name] });
1450                            x.dispatchEvent(IV_SWIPER_SINGLE_CALL_END);
1451                            innerDef.resolve();    
1452                        }
1453                    }
1454                    if(checkID){
1455                        if($x.children('[class*="container-ivBanner-"]').length == 0){
1456                            let test = function(a, b){
1457                                a.some(function(arr, val){
1458                                    if(arr.type === 'childList'){
1459                                        checkMakeSwiperFlag = true;
1460                                        setIvSwiper();
1461                                        setSwiper();
1462                                        return false;
1463                                    }
1464                                });
1465                                return true;
1466                            }
1467                            $x.iv_observerFunc(test, {
1468                                attributes: false,
1469                                childList: true,
1470                                subtree: false,
1471                            });
1472                        }else{
1473                            checkMakeSwiperFlag = true;
1474                            setIvSwiper();
1475                            setSwiper();
1476                        }
1477                    }else{
1478                        checkMakeSwiperFlag = true;
1479                        setSwiper();
1480                    }
1481                }else{
1482                    let name = IV$(this).attr('data-ivswipe-name');
1483                    let ivswiper = window[name];
1484                    if(typeof ivswiper !== 'undefined'){
1485                        ( chk = function(){
1486                            setTimeout(function(){
1487                                if(ivswiper.virtualSize - ivswiper.size < 5){
1488                                    IV$(ivswiper.$wrapperEl).addClass('no-swiping');
1489                                    IV$(ivswiper.$el).closest('.base_swiper_container').find('.base_module_container').addClass('displaynone');
1490                                }else{
1491                                    IV$(ivswiper.$wrapperEl).removeClass('no-swiping');
1492                                    IV$(ivswiper.$el).closest('.base_swiper_container').find('.base_module_container').removeClass('displaynone');
1493                                }
1494                                ivswiper.slideTo(0,0,true);
1495                                innerDef.resolve();    
1496                            },300);
1497                        })();
1498                    }
1499                }
1500            })();
1501        });
1502
1503        IV$.when.apply(IV$, IV_SWIPE_DEFERREDLIST).done(function() {
1504            def.resolve(); 
1505        });
1506
1507        return def.promise();
1508
1509    },
1510    iv_swiperConnectFunc : function($ivSwiper, speed){
1511        this.each(function(i, x){
1512            let classList = x.classList; 
1513            if(classList.contains('ivswipe-done') === true){
1514                let $x = IV$(x),
1515                    name = $x.attr('data-ivswipe-name'),
1516                    ivswiper = window[name],
1517                    connect, 
1518                    ivswiperConnect = [];
1519                if(typeof $ivSwiper !== 'undefined'){
1520                    $ivSwiper.each(function(j, y){
1521                        let $y = IV$(y),
1522                            connectName = $y.attr('data-ivswipe-name'),
1523                            speed = y['ivswipe'].speed,
1524                            obj = {};
1525                        obj['name'] = connectName;
1526                        obj['speed'] = speed;
1527                        ivswiperConnect.push(obj);
1528                    });
1529                }else{
1530                    connect = $x.attr('data-ivswipe-connect');
1531                    if(typeof connect !== 'undefined' && connect !== ''){
1532                        connect = (connect.indexOf(',')>-1) ? connect.split(',') : [connect];
1533                        connect.forEach(function(e,i){
1534                            let connectName = (e.indexOf('ivswipe_')>-1) ? e : 'ivswipe_' + e,
1535                                $e = IV$('[data-ivswipe-name="'+ connectName +'"]');
1536                            if($e.length > 0){
1537                                let speed = $e[0]['ivswipe'].speed,
1538                                    obj = {};
1539                                obj['name'] = connectName;
1540                                obj['speed'] = speed;
1541                                ivswiperConnect.push(obj);
1542                            }
1543                        });
1544                    }
1545                }
1546                ivswiper.on('slideChange', function () {
1547                    let x = this;
1548                    ivswiperConnect.forEach(function(e,i){
1549                        window[e.name].slideTo(x.realIndex,e.speed,true);
1550                    });
1551                });
1552            }
1553        });
1554    },
1555    /**
1556     * change observer (dom 변화 감지 후 함수 실행)
1557     */
1558    iv_observerFunc : function(callback, config){
1559        const targetNode = this.get(0);
1560        const observer = new MutationObserver(detectChange);
1561        function detectChange(mutationsList, observer) {
1562            if(mutationsList){
1563                observer.disconnect(); 
1564                let result = callback(mutationsList,observer);
1565                if(result !== false){
1566                    setTimeout(function(){
1567                        observer.observe(targetNode, config);
1568                    },0);
1569                }
1570            }
1571        };
1572        observer.observe(targetNode, config);
1573    },
1574    iv_replaceTag : function(newTag) {
1575        var originalElement = this[0];
1576        if(typeof originalElement !== 'undefined'){
1577            var originalTag = originalElement.tagName.toLowerCase()
1578            , startRX = new RegExp('^<'+originalTag, 'i')
1579            , endRX = new RegExp(originalTag+'>$', 'i')
1580            , startSubst = '<'+newTag
1581            , endSubst = newTag+'>'
1582            , newHTML = originalElement.outerHTML
1583            .replace(startRX, startSubst)
1584            .replace(endRX, endSubst);
1585            this.replaceWith(newHTML);
1586        }
1587    },
1588});
1589
1590/**
1591 * menu list call
1592 */
1593var IVBaseMenuCall = IVBaseMenuCall || {
1594    __IV_DEFAULT_VALUE_FUNCTION_USE : true,
1595    __IV_DEFAULT_VALUE_AJAX_URL : '/exec/front/Product/SubCategory', 
1596    __IV_DEFAULT_VALUE_PRINT_ELEMENT : ['[data-ivcate-type]'], 
1597    __IV_DEFAULT_VALUE_SUBCATEGORY_DATA_ORIGINAL : [] || {},
1598    __IV_DEFAULT_VALUE_SUBCATEGORY_DATA : [] || {},
1599    __IV_DEFAULT_VALUE_LOCATION_HAS_CATE_PARAM : (IV_LOCATION_PARAMETERS.indexOf('cate_no=') > -1 ) ? true : false,
1600    __IV_DEFAULT_VALUE_LOCATION_NOW_CATE : null, 
1601    __IV_DEFAULT_VALUE_SUBCATEGORY_MAX_DEPTH : null,
1602    __IV_DEFAULT_VALUE_SUBCATEGORY_TYPE_LIST : [ 
1603        {type : 'allView_hover', allCateSet : 2,viewNextSet: 1, virtualParentUse : false, virtualParentList: [{name: "HOME", design_page_url: "/", use: false}, {name: "SHOP", cate_no : 1, design_page_url: "/product/shop.html", use: true}]}, 
1604        {type : 'allView_slide', allCateSet : 1,viewNextSet: 1, virtualParentUse : false,virtualParentList: [{name: "HOME", design_page_url: "/", use: false}, {name: "SHOP", cate_no : 1, design_page_url: "/product/shop.html", use: true}]},
1605        {type : 'currentView_list_full', allCateSet : 1,viewNextSet: 1, virtualParentUse : false,virtualParentList: [{name: "HOME", design_page_url: "/", use: false}, {name: "SHOP", cate_no : 1, design_page_url: "/product/shop.html", use: true}]},
1606        {type : 'currentView_list_under', allCateSet : 1,viewNextSet: 1, virtualParentUse : false,virtualParentList: [{name: "HOME", design_page_url: "/", use: false}, {name: "SHOP", cate_no : 1, design_page_url: "/product/shop.html", use: true}]}, 
1607        {type : 'currentView_list_select', allCateSet : 0,viewNextSet: 1, virtualParentUse : false,virtualParentList: [{name: "HOME", design_page_url: "/", use: false}, {name: "SHOP", cate_no : 1, design_page_url: "/product/shop.html", use: true}]}
1608    ],
1609    __IV_DEFAULT_VALUE_SUBCATEGORY_ALL_TXT : 'All',
1610    init : function(){
1611        return new Promise(function (res, rej) {
1612            /* 세팅값 변경 (/iv/js/iv_setting.js or /iv/js/iv_common.js IV_CATE_SETTING) */
1613            if(typeof IV_CATE_LINK_SETTING !== 'undefined'){
1614                IV$.each(IV_CATE_LINK_SETTING, function(k, v){
1615                    if(typeof IVBaseMenuCall[k] === 'object'){
1616                        IVBaseMenuCall[k] = IV$.extend(true, IVBaseMenuCall[k], v);
1617                    }else{
1618                        IVBaseMenuCall[k] = v;
1619                    };
1620                });
1621            };
1622            if(IVBaseMenuCall.__IV_DEFAULT_VALUE_FUNCTION_USE){
1623                if(IVBaseMenuCall.__IV_DEFAULT_VALUE_SUBCATEGORY_DATA.length == 0){
1624                    IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE =  (IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_HAS_CATE_PARAM) ? Number(iv_util.getParameterByName(IV_LOCATION_HREF, 'cate_no')) : null;
1625                    IV$.ajax({
1626                        url : IVBaseMenuCall.__IV_DEFAULT_VALUE_AJAX_URL,
1627                        dataType: 'json',
1628                        success: function(aData) {
1629                            if (aData == null || aData == 'undefined') return;
1630                            /* 오리지널 데이터 저장 - 해당 카테고리 번호로 배열 등록 */
1631                            IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_RAW'] = aData;
1632                            IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_ORIGINAL'] = {};
1633                            aData.forEach(function(e,i){
1634                                IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_ORIGINAL'][e.cate_no] = e;
1635                            });
1636                            res(aData);
1637                        },
1638                    });
1639                }else{
1640                    res(IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_RAW']);
1641                };
1642            }else{
1643                let obj = {};
1644                res(obj);
1645            };
1646        });
1647    },
1648    printList : function(){
1649        IVBaseMenuCall.init().then(function(res){
1650            let aData = res;
1651            /* 메뉴 데이터 재조정 */
1652            let data = JSON.parse(JSON.stringify(aData));
1653            IVBaseMenuCall.__IV_DEFAULT_VALUE_PRINT_ELEMENT.forEach(function(e, i){
1654                IV$(e).each(function(idx, item){
1655                    let $baseMenuWrapper = IV$(item);
1656                    if(i == 0 && idx == 0){
1657                        var prefix = '__IV_DEFAULT_VALUE_CATE_LIST_DEPTH_';
1658                        var chkMax = 0;
1659
1660                        /* 메인 분류 저장 */
1661                        var mainCategoryNumArray = [];
1662                        $baseMenuWrapper.find('.xans-record-[data-cate]').each(function(){
1663                            let $menu1li = IV$(this);
1664                            let cate_no_chk = $menu1li.attr('data-cate');
1665                            mainCategoryNumArray.push(Number(cate_no_chk));
1666                        });
1667
1668                        let duplicateCateIfisMainArray = [];
1669                        data.forEach(function(item){
1670                            item['parent_cate_no_custom'] = item['parent_cate_no'];
1671
1672                            /* 카테고리 세팅값 변경 (/iv/js/iv_setting.js or /iv/js/iv_common.js IV_CATE_LINK_CUSTOM) */
1673                            IV_CATE_LINK_CUSTOM.some(function(v, idx, arr) { 
1674                                if(v.cate_no == item.cate_no) {
1675                                    IV$.extend(item, arr[idx]); 
1676                                    arr.splice(idx,1); 
1677                                    return true; 
1678                                };
1679                            });
1680
1681                            /* 메인 분류이나 1차 메뉴가 아닌 경우 별도 복제 */
1682                            mainCategoryNumArray.some(function(v, idx, arr) { 
1683                                if(v == item.cate_no) {
1684                                    item['is_main'] = true;
1685                                    if(item['parent_cate_no_custom'] !== 1){
1686                                        let duplicateCateIfisMain = JSON.parse(JSON.stringify(item))
1687                                        duplicateCateIfisMain['parent_cate_no_custom'] = 1;
1688                                        duplicateCateIfisMainArray.push(duplicateCateIfisMain);
1689                                    }
1690                                    arr.splice(idx,1); 
1691                                    return true; 
1692                                };
1693                            });
1694                        });
1695                        data.push(...duplicateCateIfisMainArray);
1696                        IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'] = data; //카테고리 데이터 저장
1697
1698                        let testtest = function(subData, subChildrens, src, idx){
1699                            src[idx] = JSON.parse(JSON.stringify(subData));
1700                            subChildrens= src[idx].childrens;
1701
1702                            if(typeof subChildrens !== 'undefined'){
1703                                let plus = function(parents){
1704                                    (test = function(subChildrens, depth, parents){
1705                                        subChildrens.forEach(function(e, i){
1706                                            let childrens = e.childrens;
1707                                            e['cate_depth'] = depth + 1;
1708                                            e['parents'] = [...new Set(JSON.parse(JSON.stringify(parents)))];
1709                                            let newparents = JSON.parse(JSON.stringify(parents));
1710                                            newparents.push(e.cate_no);
1711                                            let name = prefix + (depth+1);
1712                                            if(typeof IVBaseMenuCall[name] === 'undefined') {
1713                                                IVBaseMenuCall[name] = [];
1714                                            }
1715                                            IVBaseMenuCall[name][e.cate_no] = e;
1716                                            test(childrens, (depth + 1), newparents);
1717                                        });
1718                                    })(subChildrens, 1, parents);
1719                                }
1720                                let minus = function(parents){
1721                                    (test = function(subChildrens, depth, parents){
1722                                        subChildrens.forEach(function(e, i){
1723                                            let childrens = e.childrens;
1724                                            e['cate_depth'] = depth - 1;
1725                                            e['parents'] = [...new Set(JSON.parse(JSON.stringify(parents)))];
1726                                            let newparents = JSON.parse(JSON.stringify(parents));
1727                                            newparents.push(e.cate_no);
1728                                            let name = prefix + (depth-1);
1729                                            if(typeof IVBaseMenuCall[prefix + 'undefined'] === 'undefined') {
1730                                                IVBaseMenuCall[prefix + 'undefined'] = [];
1731                                            }
1732                                            if(typeof IVBaseMenuCall[name] === 'undefined') {
1733                                                IVBaseMenuCall[name] = [];
1734                                            }
1735                                            IVBaseMenuCall[name][e.cate_no] = e;
1736                                            IVBaseMenuCall[prefix + 'undefined'][e.cate_no] = e;
1737                                            test(childrens, (depth - 1), newparents);
1738                                        });
1739                                    })(subChildrens, -1, parents);
1740                                }
1741
1742                                if(src[idx]['parent_cate_no'] !== 1 && src[idx]['parent_cate_no_custom'] === 1){
1743                                    src[idx]['cate_depth'] = -1;
1744                                    src[idx]['parents'] = [-1];
1745                                    let name = prefix + (-1);
1746                                    if(typeof IVBaseMenuCall[name] === 'undefined') {
1747                                        IVBaseMenuCall[name] = [];
1748                                    }
1749                                    IVBaseMenuCall[name][ src[idx]['cate_no']] = src[idx];
1750                                    minus([-1, src[idx]['cate_no']]);
1751                                }else{
1752                                    src[idx]['cate_depth'] = 1;
1753                                    src[idx]['parents'] = [1];
1754                                    let name = prefix + (1);
1755                                    if(typeof IVBaseMenuCall[name] === 'undefined') {
1756                                        IVBaseMenuCall[name] = [];
1757                                    }
1758                                    IVBaseMenuCall[name][ src[idx]['cate_no']] = src[idx];
1759                                    plus([1, src[idx]['cate_no']]);
1760                                }
1761                            }
1762                        };
1763
1764
1765                        /* 카테고리 트리 생성 (카테고리 하위로 childrens object 생성) */
1766                        const nest = function(data, single_data){
1767                            data = data.filter(function(item){
1768                                let parentCustomCateNo = (typeof single_data === 'number') ? 1 : single_data.cate_no;
1769                                let parentCateDepth = (typeof single_data.cate_depth === 'undefined') ? 0 : single_data.cate_depth;
1770                                if(item['parent_cate_no_custom'] == parentCustomCateNo){
1771                                    return true;
1772                                }
1773                            }).map(function(item){
1774                                item['childrens'] = nest(data, item);
1775                                return item;
1776                            }); 
1777                            return data;
1778                        };
1779                        const tree = nest(data, 1);
1780
1781                        IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_TREE'] = tree; //카테고리 트리 데이터 저장 
1782                        IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'].forEach(function(subData, subDataIdx){
1783                            let subDataParentCateNo = subData.parent_cate_no;
1784                            let subChildrens = subData.childrens;
1785                            duplicateCateIfisMainArray.forEach(function(dup){
1786                                let dupChildrens = dup.childrens;
1787                                if((subData.cate_no == dup.cate_no) && (subData.parent_cate_no_custom == 1 && subData.parent_cate_no !== 1)){
1788                                    let remainData;
1789                                    IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'].filter(function(remain){
1790                                        if((remain.cate_no == subData.cate_no) && remain.parent_cate_no_custom !== 1){
1791                                            remainData = remain;
1792                                        }
1793                                    });
1794                                    remainData['childrens'] = [];
1795                                    remainData['childrens'] = dupChildrens;
1796                                    IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'][subDataIdx] = {};
1797                                    IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'].splice(subDataIdx,1); 
1798                                }
1799                            });
1800                        });
1801
1802                        IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_TREE'].forEach(function(subData, subDataIdx){
1803                            let subChildrens = subData.childrens;
1804                            testtest(subData, subChildrens,IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_TREE'],subDataIdx);
1805                        })
1806
1807                        let testbbbb = [];
1808                        (testbbbbFunc = function(array){
1809                            array.forEach((el) => {
1810                                let chk = (typeof IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_ORIGINAL'][el.cate_no]=== 'undefined') ? false : true; 
1811                                if(testbbbb.length > 0){
1812                                    let result = false;
1813                                    testbbbb.forEach(function(el2,idx){
1814                                        let copy = JSON.parse(JSON.stringify(el2));
1815                                        let copy2 = JSON.parse(JSON.stringify(el2));
1816                                        delete copy.cate_depth;
1817                                        delete copy2.cate_depth;
1818                                        delete copy.childrens;
1819                                        delete copy2.childrens;
1820                                        delete copy.parents;
1821                                        delete copy2.parents;
1822                                        if(JSON.stringify(el) === JSON.stringify(el2)){
1823                                            if(el.cate_depth > 0){
1824                                                result = true;
1825                                            }
1826                                        }else{
1827                                            result = true;
1828                                        }
1829                                    });
1830                                    if(result){
1831                                        testbbbb.push(el);
1832                                        testbbbbFunc(el.childrens);
1833                                    }
1834                                }else{
1835                                    if(el.childrens.length > 0){
1836                                        testbbbb.push(el);
1837                                        testbbbbFunc(el.childrens);
1838                                    }else{
1839                                        testbbbb.push(el);
1840                                    }
1841                                }
1842                            })
1843                        })(JSON.parse(JSON.stringify(tree)));
1844                        IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'] = testbbbb; //카테고리 데이터 재저장
1845                        Object.keys(IVBaseMenuCall).forEach(function(key){
1846                            if(key.indexOf(prefix) > -1){
1847                                let chkNum = iv_util.onlyNumbFunc(key.split(prefix)[1]);
1848                                if(chkMax < chkNum){
1849                                    chkMax = chkNum;
1850                                }
1851                            }
1852                        });
1853                        IVBaseMenuCall.__IV_DEFAULT_VALUE_SUBCATEGORY_MAX_DEPTH = chkMax; //최고 메뉴 뎁스
1854                    }
1855                    /* 카테고리 영역 생성 함수 실행 */
1856                    if(! $baseMenuWrapper.hasClass('done')){
1857                        let dataCateType = $baseMenuWrapper.data('ivcate-type');
1858                        IVBaseMenuCall.custom(IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_TREE'], $baseMenuWrapper, dataCateType);
1859                        $baseMenuWrapper.addClass('done');
1860                    };
1861                });
1862            });
1863            /* 모든 카테고리 영역 생성 완료 시 이벤트 body - IVMenuCall */
1864            let IV_MENU_CALL_END = new CustomEvent('IVMenuCall', {'detail': data });
1865            document.body.dispatchEvent(IV_MENU_CALL_END);
1866        });
1867    },
1868    custom : function(data, $el, type){
1869        /* 카테고리 영역 생성 함수 - $el data-ivcate-type 값에 따라 변경됨 */
1870        switch(true){
1871            case (type.indexOf('allView') != -1) : 
1872                IVBaseMenuCall.allView(IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA_TREE'], $el, type);
1873                break;
1874            case (type.indexOf('currentView') != -1) : 
1875                IVBaseMenuCall.currentView(IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'], $el, type);
1876                break;
1877            default : 
1878                break;
1879        };
1880    },
1881    allView : function(data, $el, type){
1882        /**
1883         * 전체 메뉴 노출의 경우 생성
1884         */
1885        let allCateSet = false;
1886        let virutalCateSet = false;
1887        let virtualCateList = [];
1888        IVBaseMenuCall.__IV_DEFAULT_VALUE_SUBCATEGORY_TYPE_LIST.filter(function(el) {
1889            if(el.type == type){
1890                allCateSet = el.allCateSet;
1891                virutalCateSet = el.virtualParentUse;
1892                virtualCateList = el.virtualParentList;
1893            };
1894        });
1895
1896        let allCateName = IVBaseMenuCall.__IV_DEFAULT_VALUE_SUBCATEGORY_ALL_TXT;
1897        let defaultEventExec = ($el.attr('data-ivcate-event')) ? ($el.attr('data-ivcate-event') === 'false')? false: true : true;
1898        let $menuEl = $el.find('.xans-record-[data-cate]').first().parent();
1899        let $menuTopPaernetCate = $menuEl.siblings('a');
1900        if($menuTopPaernetCate.length > 0){
1901            if(virutalCateSet){
1902                virtualCateList.forEach(function(e,i){
1903                    if(typeof e.cate_no !== 'undefined'){
1904                        $menuTopPaernetCate.text(e.name);
1905                        if(e.use !== false){
1906                            $menuTopPaernetCate.attr('href', e.design_page_url);
1907                        }else{
1908                            $menuTopPaernetCate.attr('href', 'javascript:void(0);');
1909                        }
1910                    }
1911                });
1912            }else{
1913                $menuTopPaernetCate.attr('href', 'javascript:void(0);');
1914            } 
1915        }
1916        ( makeCategoryFunc = function(data, parentCateNo){
1917            if(data.length == 0) return;
1918            data.forEach(function(e,i){
1919                let dataDepth = e.cate_depth,
1920                    cateNo = e.cate_no,
1921                    link = (e['custom_link']) ? e['custom_link'] : '/' + e['design_page_url'] + e['param'],
1922                    name = (e['change_name']) ? e['change_name'] : e['name'],
1923                    addText = (typeof e['add_sub_text'] != 'undefined') ? e['add_sub_text'] : null,
1924                    viewType = (typeof e['cate_view_type'] != 'undefined') ? e['cate_view_type'] : null,
1925                    allCateType = (typeof e['all_cate_type'] != 'undefined') ? e['all_cate_type'] : null,
1926                    isMain = (typeof e['is_main'] != 'undefined') ? e['is_main'] : false,
1927                    hasChildren = (e.childrens.length > 0) ? true : false;
1928
1929                let makeAllCateView = 0;
1930                switch(allCateSet){
1931                    case 0 : 
1932                        /* 전체 카테고리 생성 없음 */
1933                        break;
1934                    case 1 :
1935                        /* 실하위 카테고리가 하나 이상일때 하위에 전체 메뉴 생성 */
1936                        makeAllCateView = 1;
1937                        break;
1938                    case 2 : 
1939                        /* 실하위 카테고리와 무관하게 하위에 전체 메뉴 생성 */
1940                        makeAllCateView = 2;
1941                        break;
1942                    default : 
1943                        break;
1944                };
1945
1946                /**
1947                  * allCateSet 설정과 무관하게 우선적으로 적용되는 전체 카테고리 생성 설정 
1948                  */
1949                if(allCateType != null){
1950                    switch(allCateType){
1951                        case 0 : 
1952                            makeAllCateView = 0;
1953                            /* 전체 카테고리 생성 없음 */
1954                            break;
1955                        case 1 :
1956                            /* 실하위 카테고리가 하나 이상일때 하위에 전체 메뉴 생성 */
1957                            makeAllCateView = 1;
1958                            break;
1959                        case 2 :
1960                            /* 실하위 카테고리와 무관하게 하위에 전체 메뉴 생성 */
1961                            makeAllCateView = 2;
1962                            break;
1963                        default : 
1964                            break;
1965                    };
1966                };
1967
1968                var $parent;
1969                if(parentCateNo === 1){
1970                    $parent = $menuEl.parent();
1971                }else{
1972                    $parent = $menuEl.find('[data-cate="'+ parentCateNo +'"]').not('.menu_virtual');
1973                }
1974                var $cateEl = $menuEl.find('[data-cate="'+ cateNo +'"]');
1975
1976                if(typeof dataDepth !== 'undefined'){
1977                    $parent.each(function(i,e){
1978                        let $e = IV$(e);
1979                        if($e.children('ul').length > 0){
1980                            let chkClass = $e.children('ul').attr('class');
1981                            if(chkClass.indexOf(' ') > -1){
1982                                chkClass = chkClass.split(' ');
1983                            }else{
1984                                chkClass = [chkClass];
1985                            }
1986                            chkClass = chkClass.filter(function(item){
1987                                if(item.indexOf('menu_') > -1){
1988                                    return true;
1989                                }
1990                            });
1991                            dataDepth = iv_util.onlyNumbFunc(chkClass[0]);
1992                            if($e.children('ul').children('[data-cate="'+ cateNo +'"]').length == 0){
1993                                if(! ($e.children('ul')[0] === $menuEl[0] && isMain === false)){
1994                                    $cateEl = IV$('<li class="menu_'+ dataDepth +'li" data-cate="'+ cateNo +'" data-depth="'+ dataDepth +'"><a href="'+ link +'">'+ name +'</a></li>');
1995                                    $e.children('ul').append($cateEl);  
1996                                }
1997                            }else{
1998                                $cateEl.attr('href',link).not('.menu_virtual').children('a').text(name);
1999                            }
2000                        }
2001                    });
2002
2003                    $menuEl.find('[data-cate="'+ cateNo +'"]').each(function(i,e){
2004                        var $e = IV$(e);
2005                        if(addText != null){
2006                            $e.addClass('menu_point').children('a').append('<span class="add_txt" data-txt="'+ addText +'">'+ addText +'</span>');
2007                        }
2008                        if(viewType != null){
2009                            switch(viewType[0]){
2010                                case 0 : /* 해당 카테고리 감춤 */ 
2011                                    $e.addClass('displaynone');
2012                                    break;
2013                                case 1 : /* 해당 카테고리 하위 계층 안보여줌 */ 
2014                                    $e.addClass('hidden_under').removeClass('submenu');
2015                                    break;
2016                                default :
2017                                    break;
2018                            };
2019                        };
2020                        if($e.children('ul').length == 0 && $e.hasClass('menu_virtual') == false){
2021                            let chkClass = $e.attr('class');
2022                            if(chkClass.indexOf(' ') > -1){
2023                                chkClass = chkClass.split(' ');
2024                            }else{
2025                                chkClass = [chkClass];
2026                            }
2027                            chkClass = chkClass.filter(function(item){
2028                                if(item.indexOf('menu_') > -1){
2029                                    return true;
2030                                }
2031                            });
2032                            dataDepth = iv_util.onlyNumbFunc(chkClass[0]);
2033                            if(hasChildren){
2034                                $e.append('<ul class="menu_'+ (dataDepth+1) + 'ul"></ul>');
2035                                $e.addClass('submenu');
2036                            }
2037                            if(makeAllCateView > 0){
2038                                if((makeAllCateView == 1 && hasChildren == true) || (makeAllCateView == 2)){
2039                                    //append all cate
2040                                    let allCateNameFin;
2041                                    if(! allCateName){
2042                                        allCateNameFin = name;
2043                                        if(addText) allCateNameFin += '<span class="add_txt" data-txt="'+ addText +'">'+ addText +'</span>';
2044                                    }else{
2045                                        allCateNameFin = allCateName;
2046                                    };
2047                                    var $cateEl2 = $e.clone();
2048                                    $cateEl2.attr('data-depth', dataDepth+1).removeClass().addClass('menu_' + (dataDepth+1) + 'li menu_virtual').children('a').html(allCateNameFin);
2049                                    if($e.children('ul').length == 0){
2050                                        $e.append('<ul class="menu_'+ (dataDepth+1) + 'ul"></ul>');
2051                                        $e.addClass('submenu');
2052                                    }
2053                                    $e.children('ul').prepend($cateEl2);
2054                                }
2055                            }
2056                        }
2057                    });
2058                    makeCategoryFunc(e.childrens, cateNo, name);
2059                }
2060            });
2061        })(data, 1);
2062
2063        if(defaultEventExec){
2064            IVBaseMenuCall.allViewEvent(type, $el);
2065        };
2066
2067        let IV_MENU_SINGLE_CALL_END = new CustomEvent('IVMenuCall', {'detail': data });
2068        $el[0].dispatchEvent(IV_MENU_SINGLE_CALL_END);
2069    },
2070    currentView : function(data, $el, type){
2071        /**
2072         * 특정 메뉴 기준 노출의 경우 생성
2073         */
2074        if($el.find('.cate_path').length == 0){$el.prepend('<div class="cate_path"><ul></ul></div>');}
2075        if($el.find('.cate_list').length == 0){$el.find('.menu_1ul').wrap('<div class="cate_list"></div>');}
2076        var thisCateNum = $el.attr('data-ivcate-num');
2077        if(! thisCateNum){
2078            thisCateNum = IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE;
2079        };
2080        let allCateSet = false;
2081        let viewNextSet = false;
2082        let virutalCateSet = false;
2083        let virtualCateList = [];
2084        IVBaseMenuCall.__IV_DEFAULT_VALUE_SUBCATEGORY_TYPE_LIST.filter(function(el) {
2085            if(el.type == type){
2086                allCateSet = el.allCateSet;
2087                if(typeof el.viewNextSet !== 'undefined'){
2088                    viewNextSet = el.viewNextSet;
2089                }else{
2090                    viewNextSet = '';
2091                }
2092                virutalCateSet = el.virtualParentUse;
2093                virtualCateList = el.virtualParentList;
2094            };
2095        });
2096        let defaultEventExec = ($el.attr('data-ivcate-event')) ? ($el.attr('data-ivcate-event') === 'false')? false: true : true;
2097        let allCateName = IVBaseMenuCall.__IV_DEFAULT_VALUE_SUBCATEGORY_ALL_TXT;
2098        let $menuEl = $el.find('.xans-record-[data-cate]').first().parent();
2099        let $menuTopPaernetCate = $menuEl.siblings('a');
2100
2101        let this_data;
2102        let this_data_chk = data.filter(function(item) {
2103            if(item.cate_no == thisCateNum){
2104                return true;
2105            };
2106        });
2107
2108        if(this_data_chk.length > 1){
2109            this_data_chk.forEach(function(e){
2110                if(e.cate_depth > 0){
2111                    this_data = e;
2112                }
2113            });
2114        }else{
2115            this_data = this_data_chk[0];
2116        }
2117        
2118        
2119        if(typeof this_data === 'undefined'){
2120            return false;
2121        }else{
2122           
2123
2124            let this_cateNo = this_data['cate_no'],
2125                this_viewType = this_data['cate_view_type'],
2126                this_childrens = this_data['childrens'],
2127                this_parenstCateNo = this_data['parents'],
2128                this_cateDepth = this_data['cate_depth'],
2129                this_name = (this_data['change_name']) ? this_data['change_name'] : this_data['name'],
2130                this_parentCateNo = this_data.parent_cate_no;
2131            IVBaseMenuCall['__IV_DEFAULT_VALUE_CURRENT_CATE_STANDARD_NO_' + this_cateNo] = [];
2132            IVBaseMenuCall['__IV_DEFAULT_VALUE_CURRENT_CATE_NEXT_DEPTH_CATE_FROM_' + this_cateNo] = (this_childrens.length > 0) ? this_childrens : [];
2133            IVBaseMenuCall['__IV_DEFAULT_VALUE_LOCATION_NOW_CATE_NAME'] = this_name;
2134            $el.find('.menu_1ul').remove();
2135
2136            if(typeof this_viewType !== 'undefined'){
2137                if(this_viewType.length == 2 ){
2138                    viewNextSet = this_viewType[1];
2139                }
2140            }
2141
2142            if(this_viewType !== 1){
2143                var setSingleCate = function(item, prevDepth, chk){
2144                    let dataDepth = Math.abs(item['cate_depth']),
2145                        cateNo = item['cate_no'],
2146                        link = (item['custom_link']) ? item['custom_link'] : '/' + item['design_page_url'] + item['param'],
2147                        name = (item['change_name']) ? item['change_name'] : item['name'],
2148                        addText = (item['add_sub_text']) ? item['add_sub_text'] : null,
2149                        viewType = (typeof item['cate_view_type'] != 'undefined') ? item['cate_view_type'] : null,
2150                        allCateType = (typeof item['all_cate_type'] != 'undefined') ? item['all_cate_type'] : null,
2151                        $cateEl = IV$('<li class="menu_'+ (dataDepth) +'li" data-cate="'+ cateNo +'" data-depth="'+ (dataDepth) +'"><a href="'+ link +'">'+ name +'</a></li>'),
2152                        hasChildren = (item['childrens'].length > 0) ? true : false,
2153                        parentCateNo = item['parent_cate_no'],
2154                        parents = IVBaseMenuCall['__IV_DEFAULT_VALUE_SUBCATEGORY_DATA'].filter(function(item){
2155                            if(item.cate_no === parentCateNo){return true;}
2156                        }); 
2157                    if(hasChildren){
2158                        $cateEl.addClass('submenu');
2159                    }
2160                    if(addText != null) $cateEl.addClass('menu_point').children('a').append('<span class="add_txt" data-txt="'+ addText +'">'+ addText +'</span>');
2161                    $el.find('.menu_'+ (prevDepth) +'ul').append($cateEl);
2162
2163
2164                    let $parent = IV$('<ul class="menu_'+ (prevDepth + 1) +'ul"></ul>');
2165
2166                    /**
2167             * 전체 카테고리 생성 
2168             */
2169                    let makeAllCateView = 0;
2170                    /**
2171             * 영역별 전체 카테고리 생성 설정 
2172             */
2173                    switch(allCateSet){
2174                        case 0 : 
2175                            /* 전체 카테고리 생성 없음 */
2176                            break;
2177                        case 1 :
2178                            /* 실하위 카테고리가 하나 이상일때 하위에 전체 메뉴 생성 */
2179                            makeAllCateView = 1;
2180                            break;
2181                        case 2 : 
2182                            /* 실하위 카테고리와 무관하게 하
2182위에 전체 메뉴 생성 */
2183                            makeAllCateView = 2;
2184                            break;
2185                    };
2186                    /**
2187             * allCateSet 설정과 무관하게 우선적으로 적용되는 전체 카테고리 생성 설정 
2188             */
2189                    if(allCateType != null){
2190                        switch(allCateType){
2191                            case 0 : 
2192                                makeAllCateView = 0;
2193                                /* 전체 카테고리 생성 없음 */
2194                                break;
2195                            case 1 :
2196                                /* 실하위 카테고리가 하나 이상일때 하위에 전체 메뉴 생성 */
2197                                makeAllCateView = 1;
2198                                break;
2199                            case 2 :
2200                                /* 실하위 카테고리와 무관하게 하위에 전체 메뉴 생성 */
2201                                makeAllCateView = 2;
2202                                break;
2203                        };
2204                    };
2205
2206
2207                    if(makeAllCateView > 0 && chk){
2208                        if((makeAllCateView == 1 && hasChildren == true) || (makeAllCateView == 2)){
2209                            //append all cate
2210                            let allCateNameFin;
2211                            if(! allCateName){
2212                                allCateNameFin = name;
2213                                if(addText) allCateNameFin += '<span class="add_txt" data-txt="'+ addText +'">'+ addText +'</span>';
2214                            }else{
2215                                allCateNameFin = allCateName;
2216                            };
2217                            var $cateEl2 = $cateEl.clone();
2218                            $cateEl2.attr('data-depth', (prevDepth+1)).removeClass().addClass('menu_' + (prevDepth+1) + 'li menu_virtual').children('a').html(allCateNameFin);
2219                            $cateEl2.addClass('submenu');
2220                            if($el.find('.menu_'+ (prevDepth + 1) +'ul').length == 0){
2221                                $el.find('.cate_list').append($parent);
2222                            }
2223                            $parent = $el.find('.menu_'+ (prevDepth+1) +'ul');
2224                            if($parent.find('.menu_virtual').length == 0){
2225                                $parent.prepend($cateEl2);
2226                            }
2227                        }
2228                    }
2229
2230
2231                }
2232
2233                var makeCategoryFunc = function(item){
2234                    let p_depth = Math.abs(item.cate_depth),
2235                        p_cateNo = item.cate_no,
2236                        p_link = (item['custom_link']) ? item['custom_link'] : '/' + item['design_page_url'] + item['param'],
2237                        p_name = (item['change_name']) ? item['change_name'] : item['name'],
2238                        p_childrens = item.childrens;
2239
2240                    let result = IVBaseMenuCall['__IV_DEFAULT_VALUE_CURRENT_CATE_STANDARD_NO_' + this_data.cate_no].some(function(item2){
2241                        if(item2.cate_no == item.cate_no){
2242                            return true;
2243                        }
2244                    });
2245                    if(result == false){
2246                        IVBaseMenuCall['__IV_DEFAULT_VALUE_CURRENT_CATE_STANDARD_NO_' + this_data.cate_no].unshift(item);
2247                        /* 경로 저장 */
2248                        $el.find('.cate_path ul').prepend('<li data-path="'+p_cateNo+'"><a href="'+ p_link +'">'+ p_name +'</a></li>');
2249                    }
2250
2251                    /* 메뉴 생성 */
2252                    if($el.find('.menu_'+ (p_depth) +'ul').length == 0){
2253                        $el.find('.cate_list').append('<ul class="menu_'+ p_depth +'ul"></ul>');
2254                    }
2255                    if($el.find('.menu_'+ (p_depth) +'ul').children('[data-cate="'+p_cateNo+'"]').length == 0){
2256                        setSingleCate(item, p_depth, true);
2257                    }
2258                    if(p_childrens.length > 0){
2259                        if($el.find('.menu_'+ (p_depth+1) +'ul').length == 0){
2260                            $el.find('.cate_list').append('<ul class="menu_'+ (p_depth+1) +'ul"></ul>');
2261                        }
2262                        p_childrens.forEach(function(item2){
2263                            if($el.find('.menu_'+ (p_depth+1) +'ul').children('[data-cate="'+item2.cate_no+'"]').length == 0){
2264                                setSingleCate(item2, (p_depth+1), false);
2265                            }
2266                        });
2267                    }
2268                };
2269
2270                IVBaseMenuCall['__IV_DEFAULT_VALUE_LOCATION_NOW_CATE_PARENT_NAME'] = '';
2271                IVBaseMenuCall['__IV_DEFAULT_VALUE_LOCATION_NOW_CATE_PARENT_CATE'] = 1;
2272
2273                this_parenstCateNo.forEach(function(no, idx){
2274                    if(no > 1){
2275                        data.filter(function(item){
2276                            if(item.cate_no == no){
2277                                if(idx == (this_parenstCateNo.length - 1)){
2278                                    IVBaseMenuCall['__IV_DEFAULT_VALUE_LOCATION_NOW_CATE_PARENT_NAME'] = (item['change_name']) ? item['change_name'] : item['name'];
2279                                    IVBaseMenuCall['__IV_DEFAULT_VALUE_LOCATION_NOW_CATE_PARENT_CATE'] = item.cate_no;
2280                                }
2281                                if(item.cate_depth > 0){
2282                                    makeCategoryFunc(item);
2283                                    $el.find('[data-cate="'+ item.cate_no +'"]').not('.menu_virtual').addClass('selected');
2284                                }else if((this_cateDepth < 0 && item.cate_depth < 0)){
2285                                    makeCategoryFunc(item, true);
2286                                    $el.find('[data-cate="'+ item.cate_no +'"]').not('.menu_virtual').addClass('selected');
2287                                }
2288                            }
2289                        });
2290                    }
2291
2292                });
2293                makeCategoryFunc(this_data);
2294
2295
2296                if(viewNextSet === 0 && this_childrens.length > 0){
2297                    $el.find('.cate_list').find('ul').last().remove(); //자식 요소 제거하고 형제 요소까지만 노출
2298                }else if(viewNextSet === 2 && this_childrens.length == 0 && $el.find('[data-cate="'+ this_cateNo +'"]').siblings().length == 0){
2299                    $el.remove(); //자식요소가 없고 형제 요소도 없을때 메뉴 영역 감춤
2300                }
2301
2302                $el.find('[data-cate="'+ this_cateNo +'"]').addClass('selected');
2303
2304
2305                if(virutalCateSet){
2306                    let virtualIndexChk = false;
2307                    virtualCateList.forEach(function(e,i){
2308                        if(e.use !== false){
2309                            if(virtualIndexChk == false){
2310                                $el.find('.cate_path ul').prepend('<li data-path="'+(i-1)+'"><a href="'+ e.design_page_url +'">'+ e.name +'</a></li>');
2311                                virtualIndexChk = true;
2312                            }else{
2313                                IV$('<li data-path="'+(i-1)+'"><a href="'+ e.design_page_url +'">'+ e.name +'</a></li>').insertAfter($el.find('.cate_path ul').children().first());
2314                            }
2315                        }
2316                    });
2317                }
2318
2319                $el.addClass('done');
2320
2321                if(defaultEventExec){
2322                    IVBaseMenuCall.currentViewEvent(type, $el);
2323                };
2324            }
2325            let IV_MENU_SINGLE_CALL_END = new CustomEvent('IVMenuCall', {'detail': IVBaseMenuCall['__IV_DEFAULT_VALUE_CURRENT_CATE_STANDARD_NO_' + this_cateNo] });
2326        $el[0].dispatchEvent(IV_MENU_SINGLE_CALL_END);
2327        }
2328        
2329
2330    },
2331    allViewEvent : function(type, $el){
2332        /**
2333         * allView 타입일 경우 실행할 함수(기본값 - 아래 함수가 실행되지 않기를 원한다면 allView_example 의 example 부분을 고유값
2333으로 두거나 data-ivcate-event = false 로 부여) 
2334         */
2335        switch(type){
2336            case 'allView_slide' :
2337                $el.find('.submenu > a').attr('href','javascript: void(0);'); 
2338                $el.find('li[class^="menu"]').off().on('click',function(event){
2339                    //상위전파 막기
2340                    if (event.stopPropagation) event.stopPropagation();
2341                    else event.cancelBubble = true; // IE 대응
2342                    var $clickMenu = IV$(this);
2343                    if($clickMenu.hasClass('fixed') == false){
2344                        if($clickMenu.children('ul[class^="menu"]').hasClass('on')){
2345                            $clickMenu.removeClass('on');
2346                            $clickMenu.children('ul[class^="menu"]').hide();
2347                            $clickMenu.children('ul[class^="menu"]').removeClass('on');
2348                        }else{
2349                            $clickMenu.addClass('on');
2350                            $clickMenu.siblings().removeClass('on').find('li[class^="menu"]').removeClass('on');
2351                            $clickMenu.children('ul[class^="menu"]').fadeIn();
2352                            $clickMenu.children('ul[class^="menu"]').addClass('on');
2353                            $clickMenu.siblings().find('ul[class^="menu"]').hide();
2354                            $clickMenu.siblings().find('ul[class^="menu"]').removeClass('on');
2355                        };
2356                    }
2357                });
2358                break;
2359            case 'allView_depth' :
2360                let depth = Number($el.attr('data-ivcate-depth'));
2361                let $depthCate = $el.find('[data-depth="'+ depth +'"]');
2362                let $menu1ul = $el.find('.menu_1ul');
2363                let $depthNameUl = IV$('<ul class="cate_depth_ul" data-depth="'+ depth +'"></ul>');
2364                $depthCate.each(function(j,y){
2365                    let $y = IV$(y);
2366                    let dataCate = $y.attr('data-cate');
2367                    let subMenu = ($y.hasClass('submenu')) ? 'submenu' : '';
2368                    let $depthName = $y.children('a');
2369                    let newli = IV$('<li class="'+ subMenu +'" data-cate="'+ dataCate +'"></li>');
2370                    if(subMenu == 'submenu'){
2371                        $depthName.attr('href','javascript: void(0);'); 
2372                    };
2373                    newli.append($depthName);
2374                    $depthNameUl.append(newli);
2375                });
2376                $depthNameUl.insertBefore($menu1ul);
2377                $depthNameUl.find('li').off().on('click',function(event){
2378                    //상위전파 막기
2379                    if (event.stopPropagation) event.stopPropagation();
2380                    else event.cancelBubble = true; // IE 대응
2381                    var $clickMenu = IV$(this);
2382                    let dataCate = $clickMenu.attr('data-cate');
2383                    if($clickMenu.hasClass('on')){
2384                        $clickMenu.removeClass('on');
2385                        $menu1ul.find('li[class^="menu"]').filter('[data-cate="'+ dataCate +'"]').removeClass('on');
2386                    }else{
2387                        $clickMenu.addClass('on');
2388                        $clickMenu.siblings().removeClass('on');
2389                        $menu1ul.find('li[class^="menu"]').filter('[data-cate="'+ dataCate +'"]').addClass('on');
2390                        $menu1ul.find('li[class^="menu"]').filter('[data-cate="'+ dataCate +'"]').siblings().removeClass('on');
2391                    };
2392                });
2393                break;
2394            default :
2395                break;
2396        };
2397    },
2398    currentViewEvent : function(type, $el){
2399        /**
2400         * currentView 타입일 경우 실행할 함수(기본값 - 아래 함수가 실행되지 않기를 원한다면 currentView_example 의 example 부분을 고유값
2400으로 두거나 data-ivcate-event = false 로 부여) 
2401         */
2402        switch(type){
2403            case 'currentView_list_full' :
2404                break;
2405            case 'currentView_list_under' :
2406                break;
2407            case 'currentView_list_select' :
2408                $el.find('ul[class^="menu_"]').each(function(){
2409                    let $menu_ul = IV$(this);
2410                    if($menu_ul.find('.selected').length > 0){
2411                        var menuClass = iv_util.onlyNumbFunc($menu_ul.attr('class'));
2412                        var menuHeight = $menu_ul.outerHeight();
2413                        IV$(this).wrap('<div class="menu_'+ menuClass +'div"></div>');
2414                        IV$(this).before('<h4 class="current_cate"></h4>');
2415                        IV$(this).prev('h4').html(IV$(this).find('.selected').html());
2416                        IV$(this).attr('style', 'max-height: '+ menuHeight + 'px');
2417                        if(menuHeight == 0){
2418                            IV$(this).prev('h4').addClass('noBg');
2419                            IV$(this).prev('h4').find('a').addClass('noEvent');
2420                        }else{
2421                            IV$(this).prev('h4').find('a').attr('href','javascript:void(0);');
2422                        };
2423                    }else{
2424                        $menu_ul.addClass('displaynone');
2425                    };
2426                });
2427                $el.find('h4 a:not(.noEvent)').on('click',function(){
2428                    if(IV$(this).closest('div').hasClass('on')){
2429                        IV$(this).closest('div').removeClass('on');
2430                    }else{
2431                        $el.find('div[class^="menu_"]').not(IV$(this).closest('div')).removeClass('on');
2432                        IV$(this).closest('div').addClass('on');
2433                        iv_util.targetOutCloseFunc(IV$(this).closest('div'));
2434                    };
2435                });
2436                $el.find('div[class^="menu_"]').each(function(){
2437                    IV$(this).iv_observerFunc(function () {
2438                        setTimeout(function(){
2439                            if($el.find('div[class^="menu_"].on').length > 0){
2440                                $el.addClass('on');
2441                            }else{
2442                                $el.removeClass('on');
2443                            };
2444                        },0);
2445                    }, {
2446                        attributes: true,
2447                        childList: false,
2448                        subtree: false
2449                    });
2450                });
2451                break;
2452            default :
2453                break;
2454        };
2455    }
2456};
2457
2458
2459
2460/**
2461 * swiper 
2462 * iv_swiper 클래스 보유 시 swiper 자동 생성
2463 * swiper 완료 시에 body에 IVSwiperCall 이벤트 발생
2464 */
2465var IVSwiperFunc = IVSwiperFunc || function(){
2466    return new Promise(function (topRes, topRej) {
2467        let count = 0;
2468        let $ivSwiper = IV$('.iv_swiper');
2469        if($ivSwiper.length > 0){
2470            return new Promise(function (res, rej) {
2471                $ivSwiper.iv_swiperFunc().done(function(){
2472                    res(true);
2473                });
2474            }).then(function(res) {
2475                if($ivSwiper.filter('[data-ivswipe-connect]').length > 0){
2476                    $ivSwiper.filter('[data-ivswipe-connect]').iv_swiperConnectFunc();
2477                };
2478                let IV_SWIPER_CALL_END = new CustomEvent('IVSwiperCall');
2479                document.body.dispatchEvent(IV_SWIPER_CALL_END);
2480                topRes(true);
2481                if(typeof IVPrdDynamicCall !== 'undefined'){
2482                    IVPrdDynamicCall.init();
2483                };
2484            });
2485        }else{
2486            let IV_SWIPER_CALL_END = new CustomEvent('IVSwiperCall');
2487            document.body.dispatchEvent(IV_SWIPER_CALL_END);
2488            if(typeof IVPrdDynamicCall !== 'undefined'){
2489                IVPrdDynamicCall.init();
2490                topRes(true);
2491            }else{
2492                topRes(true);
2493            }
2494        };
2495    })
2496};
2497
2498/**
2499 * 상품별 실행 : document ready 이후 실행해야 정상 동작합니다.
2500 * 상품 개별 영역 / 페이지 기준(ex 상품 상세/상품 선택창) 공통으로 사용 중
2501 */
2502var IVbasePrdInfoCall = IVbasePrdInfoCall || {
2503    __IV_DEFAULT_VALUE_FUNCTION_USE : false,
2504    __IV_DEFAULT_VALUE_PRC_CALC_USE : false, //할인율 계산 함수를 사용할 것인지 여부 : 쓰지 않을 경우 false로 바꾸고 개별적으로 지정하세요.
2505    __IV_DEFAULT_VALUE_PRC_ITEM_LIST: [
2506        {name: 'customPrice', element : '[id^="product_prc_custom"]'},
2507        {name: 'sellPrice', element : '[id^="product_prc_sell"]'},
2508        {name: 'promoPrice', element : '[id^="product_prc_promo"]'},
2509    ], // name : (example) + Price, value : [id^="product_prc_(example)"] / (example) 부분은 동일해야 합니다. & data-prc가 필요합니다.
2510    __IV_DEFAULT_VALUE_PRC_PAGE_LIST: [
2511        {name: 'customPrice', element : '#IV_ForFIndPrdDetailInfo #product_prc_custom_page'},
2512        {name: 'sellPrice', element : '#IV_ForFIndPrdDetailInfo #product_prc_sell_page'},
2513        {name: 'promoPrice', element : '#IV_ForFIndPrdDetailInfo #product_prc_promo_page'},
2514    ], // name : (example) + Price, value : 기준점이 될 요소 / (example) 부분 item list의 name값과 동일해야 합니다. & data-prc가 필요합니다.
2515    __IV_DEFAULT_VALUE_PRC_PAGE_PRINT_ELEMENT : [
2516        '.iv_prc_infoBox',
2517    ], // page 기준으로 출력하는 경우 출력해야 되는 요소 기준점
2518    __IV_DEFAULT_VALUE_PRC_CALC_STANDARD : [
2519        {oriEl: 'sellPrice', finEl: 'promoPrice'},
2520        {oriEl: 'customPrice', finEl: 'sellPrice'},
2521    ], //계산 기준 (순차실행이므로 각 쇼핑몰 계산 우선순위 맞춰서 배열에 넣어주세요)
2522    __IV_DEFAULT_VALUE_PRC_CALC_DECIMAL_SET : function(ori, fin){
2523        return Math.ceil(((ori - fin) / ori) * 100);
2524    }, //할인율 계산식 입력하시면 됩니다
2525    calc : function(el){
2526        if(IVbasePrdInfoCall.__IV_DEFAULT_VALUE_PRC_CALC_USE){
2527            if(! el){
2528                IVbasePrdInfoCall.__IV_DEFAULT_VALUE_PRC_PAGE_PRINT_ELEMENT.forEach(function(el,idx){ 
2529                    var el = IV$(el); 
2530                    if(el.length > 0){
2531                        IVbasePrdInfoCall.__IV_DEFAULT_VALUE_PRC_PAGE_LIST.forEach(function(e,i){
2532                            //모바일 환경 오류로 인한 수정
2533                            if(IV$(e.element).attr('content')){
2534                                if(IV$(e.element).attr('content').indexOf('(') > -1){
2535                                    IV$(e.element).attr('content', IV$(e.element).attr('content').split('(')[0]);
2536                                    IV$(e.element).attr('data-prc',IV$(e.element).attr('content').split('(')[0] );
2537                                };
2538                            };
2539                            el[e.name] = (IV$(e.element).length > 0) ? IV$(e.element).attr('data-prc') : 0;
2540                            if(el[e.name]){
2541                                el[e.name] = (el[e.name].indexOf('.') > -1) ? Math.floor(el[e.name]) : iv_util.onlyNumbFunc(el[e.name]);
2542                            };
2543                            IV$(e.element).attr('data-prc', el[e.name]);
2544                        });
2545                        prcCalc(el); 
2546                    };
2547                });
2548            }else{
2549                IVbasePrdInfoCall.__IV_DEFAULT_VALUE_PRC_ITEM_LIST.forEach(function(e,i){
2550                    el[e.name] =  (el.find(e.element).length > 0) ? el.find(e.element).attr('data-prc') : 0;
2551                    if(el[e.name]){ el[e.name] = (el[e.name].indexOf('.') > -1) ? Math.floor(el[e.name]) : iv_util.onlyNumbFunc(el[e.name]); }
2552                    el.find(e.element).attr('data-prc', el[e.name]);
2553                });
2554                prcCalc(el);
2555            };
2556            function prcCalc(el){
2557                var calcChk = false;
2558                IVbasePrdInfoCall.__IV_DEFAULT_VALUE_PRC_CALC_STANDARD.some(function(v, i, arr){
2559                    var $ori = '.base_prc_' + v.oriEl.split('Price')[0];
2560                    var $fin = '.base_prc_' + v.finEl.split('Price')[0];
2561                    //요소가 모두 있는지, 0은 아닌지, 최종값이 기본값보다 작은지 
2562                    if( el[v.oriEl] && el[v.finEl] &&  el[v.finEl] < el[v.oriEl] ){
2563                        var discountRatio = IVbasePrdInfoCall.__IV_DEFAULT_VALUE_PRC_CALC_DECIMAL_SET(el[v.oriEl], el[v.finEl]);
2564                        el.find('.base_prc_item .desc:not('+ $ori +'):not('+ $fin +')').text('');
2565                        el.find('.base_prc_item .desc:not('+ $ori +'):not('+ $fin +')').closest('.base_prc_item').addClass('displaynone');
2566                        el.find($ori).text(iv_util.comma(el[v.oriEl]));
2567                        el.find($fin).text(iv_util.comma(el[v.finEl]));
2568                        el.find($ori).closest('.base_prc_item').addClass('discount').removeClass('displaynone');
2569                        el.find($fin).closest('.base_prc_item').removeClass('displaynone');
2570                        el.find($fin).before('<span id="discount_ratio"><span class="desc">'+discountRatio+'%</span></span>');
2571                        calcChk = true;
2572                        return true; //가격 계산되면 그만돌림
2573                    };
2574                });
2575                if(! calcChk){
2576                    el.find('.base_prc_item .desc:not(.base_prc_sell)').text('');
2577                    el.find('.base_prc_item .desc:not(.base_prc_sell)').closest('.base_prc_item').addClass('displaynone');
2578                    el.find('.base_prc_sell').text(iv_util.comma(el['sellPrice']));
2579                    el.find('.base_prc_sell').closest('.base_prc_item').removeClass('displaynone');
2580                };
2581            };
2582        }else{
2583            console.log('이 함수를 사용하려면 변수값을 변경하세요.');
2584        };
2585    },
2586    iconChange : function(el){
2587        /**
2588     	 * 상품 아이콘 변경 / iv_promotion_icons 요소 필요
2589     	 */
2590        if(! el){
2591            el = IV$('body');
2592        }
2593        el.find('.iv_promotion_icons img').each(function(){
2594            var $icon = IV$(this);
2595            if($icon.css('display') != 'none'){
2596                var src = $icon.attr('src');
2597                //아이콘 출력 오류 시 제거
2598                if($icon.hasClass('displaynone') == false){
2599                    var img = new Image();
2600                    img.onerror = function() {
2601                        $icon.remove();
2602                    };
2603                    img.src = src;
2604                };
2605                var replaceTxt;
2606                IV_ICONS_CUSTOM.forEach(function(e,i){
2607                    if(src.indexOf(e.src) > -1){
2608                        $icon.after('<span class="icon_txt" data-type="'+ e.replaceTxt +'">'+ e.replaceTxt +'</span>');
2609                        $icon.addClass('displaynone');
2610                    };
2611                });
2612            };
2613        });
2614    },
2615   // basketConfirmChk : function(el){
2616   //     if(typeof el === 'undefined'){
2617   //         el = IV$('[onClick*="/exec/"][onClick*="submit(2"]');
2617 //장바구니 버튼
2618   //         let onClickList = el.attr('onClick');
2619   //         el.attr('onClick', 'basketConfirmShow(); ' + onClickList);
2620   //     }else{
2621   //         let basketButtonActionEl = el.find('.ec-admin-icon');
2622   //         let basketButtonEvent = basketButtonActionEl.attr('onClick');
2623   //         if(basketButtonEvent){
2624   //             if(basketButtonEvent.indexOf('CAPP_SHOP_NEW_PRODUCT_OPTIONSELECT') > -1){
2625   //                 basketButtonActionEl.closest('[onclick*="basketConfirmShow"]').removeAttr('onClick');
2626   //             };
2627   //         };
2628   //     };
2629   // },
2630};
2631
2632
2633/**
2634 * 상품별 실행 함수 
2635 */
2636var IVPrdItemInfoCall = IVPrdItemInfoCall || {
2637    __IV_DEFAULT_VALUE_FUNCTION_USE : false, //상품 영역 함수 전체 사용 여부
2638    __IV_DEFAULT_VALUE_PRC_CALC_USE : false, //상품 영역 할인율 계산 사용 여부
2639    __IV_DEFAULT_VALUE_ICON_CHANGE_USE : false, //상품 영역 아이콘 변경 사용 여부 
2640    __IV_DEFAULT_VALUE_CUSTOM_FUNCTION_USE : false, //상품 영역 커스텀 함수 사용 여부
2641    __IV_DEFAULT_VALUE_BASKETCONFIRM_FUNCTION_USE : false, //상품 영역 장바구니 확인창 수정 함수 사용 여부 
2642    init : function(callback, el){
2643        if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_FUNCTION_USE){
2644            if (arguments.length == 0) {
2645                callback = null;
2646                el = null;
2647            }else if(arguments.length == 1 && typeof arguments[0] !== 'function'){
2648                el = arguments[0];
2649                callback = null;
2650            }else{
2651                el = null;
2652            }
2653            if(el === null){
2654                el = IV$('.base_prd_list [id^="anchorBoxId_"]');
2655            };
2656            el.each(function(){
2657                var $this = IV$(this);
2658                if(! $this.hasClass('done')){
2659                    // * ============================ 상품 가격 ============================ * //
2660                    if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_PRC_CALC_USE){ IVbasePrdInfoCall.calc($this); }
2661                    // * ============================ 상품 가격 ============================ * //
2662                    // * ===================== 프로모션 아이콘 ======================= * //
2663                    if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_ICON_CHANGE_USE){ IVbasePrdInfoCall.iconChange($this); }
2664                    // * ===================== 프로모션 아이콘 ======================= * //
2665                    // * ===================== 추가 커스텀 함수 ======================= * //
2666                    if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_CUSTOM_FUNCTION_USE){ 
2667                        if(typeof basePrdItemInfoCallCustom === 'function'){
2668                            basePrdItemInfoCallCustom($this);
2669                        }
2670                        if(callback !== null){ callback($this); }
2671                    }
2672                    // * ===================== 추가 커스텀 함수 ======================= * //
2673                    // * ============================ 상품 담기 옵션창 ============================ * //
2674                    //if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_BASKETCONFIRM_FUNCTION_USE){
2675                    //    IVbasePrdInfoCall.basketConfirmChk($this);
2676                    //}
2677                    // * ============================ 상품 담기 옵션창 ============================ * //
2678                    $this.addClass('done');
2679                };
2680            });
2681        }else{
2682            console.log('이 함수를 사용하려면 변수값을 변경하세요.');
2683        };
2684    },
2685};
2686
2687/**
2688 * 페이지별 실행 함수 
2689 */
2690var IVPrdPageInfoCall = IVPrdPageInfoCall || {
2691    __IV_DEFAULT_VALUE_FUNCTION_USE : false, //페이지 기준 함수 전체 사용 여부
2692    __IV_DEFAULT_VALUE_PRC_CALC_USE : false, //페이지 기준 할인율 계산 사용 여부
2693    __IV_DEFAULT_VALUE_ICON_CHANGE_USE : false, //페이지 기준 아이콘 변경 사용 여부 
2694    __IV_DEFAULT_VALUE_CUSTOM_FUNCTION_USE : false, //페이지 기준 커스텀 함수 사용 여부
2695    __IV_DEFAULT_VALUE_BASKETCONFIRM_FUNCTION_USE : false, //페이지 기준 장바구니 확인창 수정 함수 사용 여부 
2696    init : function(callback){
2697        if(IVPrdPageInfoCall.__IV_DEFAULT_VALUE_FUNCTION_USE){
2698            if (arguments.length == 0) {
2699                callback = null;
2700            }
2701            // * ============================ 상품 가격 ============================ * //
2702            if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_PRC_CALC_USE){ IVbasePrdInfoCall.calc(); }
2703            // * ============================ 상품 가격 ============================ * //
2704            // * ===================== 프로모션 아이콘 ======================= * //
2705            if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_ICON_CHANGE_USE){ IVbasePrdInfoCall.iconChange(); }
2706            // * ===================== 프로모션 아이콘 ======================= * //
2707            // * ===================== 추가 커스텀 함수 ======================= * //
2708            if(IVPrdItemInfoCall.__IV_DEFAULT_VALUE_CUSTOM_FUNCTION_USE){ 
2709                if(typeof basePrdPageInfoCallCustom === 'function'){
2710                    basePrdPageInfoCallCustom();
2711                }
2712                if(callback !== null){ 
2713                    callback();
2714                } 
2715            }
2716            // * ===================== 추가 커스텀 함수 ======================= * //
2717            // * ============================ 상품 담기 옵션창 ============================ * //
2718            //if(IVPrdPageInfoCall.__IV_DEFAULT_VALUE_BASKETCONFIRM_FUNCTION_USE){
2719            //    IVbasePrdInfoCall.basketConfirmChk();
2720            //}
2721            // * ============================ 상품 담기 옵션창 ============================ * //
2722        }else{
2723            console.log('이 함수를 사용하려면 변수값을 변경하세요.');
2724        };
2725    },
2726};
2727
2728/** 
2729 * mcustomScrollbar
2730 * 스크롤 위치가 잘못 붙는 오류 때문에 onInit/onBeforeUpdate/onScrollStart 이벤트에서 수정
2731 */
2732var IVmcustomScrollbar = IVmcustomScrollbar || function() {
2733    $(".iv_mcustomScrollbar").each(function () {
2734        let e = $(this);
2735        try {
2736            0 == e.hasClass("mCustomScrollbar") && e.mCustomScrollbar({
2737                axis: "y",
2738                theme: "minimal-dark",
2739                alwaysShowScrollbar: 0,
2740                callbacks: {
2741                    onInit:function(){
2742                        let $scrollBox = e.find(".mCustomScrollBox");
2743                        let $scrollContent = e.find(".mCSB_container");
2744                        let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
2745                        (gap < 10) ? e.find(".mCSB_scrollTools").addClass("layout-hidden") : e.find(".mCSB_scrollTools").removeClass("layout-hidden");
2746                    },
2747                    onBeforeUpdate: function () {
2748                        let $scrollBox = e.find(".mCustomScrollBox");
2749                        let $scrollContent = e.find(".mCSB_container");
2750                        let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
2751                        (gap < 10) ? e.find(".mCSB_scrollTools").addClass("layout-hidden") : e.find(".mCSB_scrollTools").removeClass("layout-hidden");
2752                    },
2753                    onScrollStart: function () {
2754                        let $scrollBox = e.find(".mCustomScrollBox");
2755                        let $scrollContent = e.find(".mCSB_container");
2756                        let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
2757                        (gap < 10) ? e.find(".mCSB_scrollTools").addClass("layout-hidden") : e.find(".mCSB_scrollTools").removeClass("layout-hidden");
2758                    }
2759                }
2760            });
2761        } catch (err) {
2762            console.log(err);
2763            IV$ = window.IV$ = jQuery.noConflict(true); 
2764        };
2765    });
2766};
2767
2768/**
2769 * 옵션 수정 레이어 열림 함수(장바구니)
2770 */
2771var IVoptionModifyLayer = IVoptionModifyLayer || function(el){
2772    let $el = IV$(el);
2773    let onClickInfo = $el.attr('onClick');
2774    let findElReg = /\(\'.*\'/g;
2775    let layerName;
2776    let result = onClickInfo.match(findElReg)[0];
2777    layerName = (result.indexOf('#') > -1) ? result.substring(3,result.length-1) : result.substring(2,result.length-1);
2778    let customChk = false;
2779    if(IV_SUBCONTAINER_DATA_PAGE == 'orderBasket' && onClickInfo.indexOf('Basket.showOptionChangeLayer') > -1){
2780        if(iv_orderBaseFunc.__IV_DEFAULT_VALUE_OPTION_LAYER_FUNC_DEFAULT){
2781            let $modifyLayer = IV$('#ec-basketOptionModifyLayer');
2782            let $modifyLayer2 = null;
2783            switch (IV_DEVICE_CHK) {
2784                case 'pc':
2785                    $modifyLayer.find('.list_body tr').empty();
2786                    let $prd = $el.closest('.list');
2787                    let clone = $prd.clone();
2788                    clone.find('.optionModify').remove();
2789                    if($prd.find('.option_str_list > li').length > 1){
2790                        let optionIndex = iv_util.onlyNumbFunc(layerName.split(',')[0].trim().slice(-2)) + 1;
2791                        clone.find('.option_str_list > li:not(:nth-child('+ optionIndex +'))').remove();
2792                    };
2793                    clone.find('.b_chk').remove();
2794                    $modifyLayer.find('.list_body').html(clone);
2795                    $modifyLayer.addClass('on');
2796                    $modifyLayer.find('.iv_close_button, [class^="btnClose"], [class*="close"]').on('click',function(){
2797                        iv_util.scrollEnabled();
2798                    });
2799                    iv_util.scrollDisabled($modifyLayer);
2800                    break;
2801                case 'mobile':
2802                    $modifyLayer.addClass('on');
2803                    $modifyLayer.find('.iv_close_button, [class^="btnClose"], [class*="close"]').on('click',function(){
2804                        iv_util.scrollEnabled();
2805                    });
2806                    iv_util.scrollDisabled($modifyLayer);
2807                    break;
2808                default:
2809                    console.log('error');
2810                    break;
2811            };
2812        }else{
2813            let $modifyLayer = IV$('#ec-basketOptionModifyLayer');
2814            let openFunction = $modifyLayer[0].iv_openCustomFunction;
2815            let closeFunction = $modifyLayer[0].iv_closeCustomFunction;
2816            switch (IV_DEVICE_CHK) {
2817                case 'pc':
2818                    $modifyLayer.find('.list_body tr').empty();
2819                    let $prd = $el.closest('.list');
2820                    let clone = $prd.clone();
2821                    clone.find('.optionModify').remove();
2822                    clone.find('.b_chk').remove();
2823                    if($prd.find('.option_str_list > li').length > 1){
2824                        let optionIndex = iv_util.onlyNumbFunc(layerName.split(',')[0].trim().slice(-2)) + 1;
2825                        clone.find('.option_str_list > li:not(:nth-child('+ optionIndex +'))').remove();
2826                    };
2827                    $modifyLayer.find('.list_body').html(clone);
2828                    break;
2829                case 'mobile':
2830                    console.log($modifyLayer);
2831                    break;
2832                default:
2833                    console.log('error');
2834                    break;
2835            };
2836            openFunction();
2837            $modifyLayer.find('.iv_close_button, [class^="btnClose"], [class*="close"]').on('click',function(){
2838                iv_util.scrollEnabled();
2839                if(typeof closeFunction !== 'undefined'){
2840                    closeFunction();
2841                };
2842            });
2843        };
2844    }else{
2845        let openFunction = IV$('#' + layerName)[0].iv_openCustomFunction;
2846        let closeFunction = IV$('#' + layerName)[0].iv_closeCustomFunction;
2847        if(typeof openFunction === 'undefined'){
2848            IV$('#' + layerName).addClass('on');
2849            iv_util.scrollDisabled(IV$('#' + layerName));
2850            IV$('#' + layerName).find('.iv_close_button, [class^="btnClose"],[class*="close"]').on('click',function(){
2851                iv_util.scrollEnabled();
2852            });
2853        }else{
2854            openFunction();
2855            IV$('#' + layerName).find('.iv_close_button, [class^="btnClose"],[class*="close"]').on('click',function(){
2856                if(typeof closeFunction !== 'undefined'){
2857                    closeFunction();
2858                };
2859            });
2860        };
2861    };
2862};
2863
2864
2865/**
2866 * 테이블 레이아웃 수정
2867 * tfoot colspan, 배송옵션 자동 입력 등
2868 */
2869var IVTableLayoutFix = IVTableLayoutFix || function(el){
2870    /**
2871     * 테이블 레이아웃 수정
2872     */
2873    let $baseOrderPrdList;
2874    if(typeof el === 'undefined'){
2875        $baseOrderPrdList = IV$('.base_order_prdlist');
2876    }else{
2877        $baseOrderPrdList = IV$(el);
2878    };
2879    let $orderPrdItem = $baseOrderPrdList.find('.list_body').children();
2880    $baseOrderPrdList.each(function(){
2881        let $this = IV$(this);
2882        if( $this.hasClass('done') === false ){
2883            if($this.hasClass('ec-base-table')){
2884                let $tfoot = $this.find('tfoot');
2885                let isEmpty = $this.closest('.xans-order-empty').length;
2886                let $tdLength = $this.find('tr').eq(0).children().length;
2887                if($tfoot.length > 0){
2888                    $tfoot.find('td').attr('colspan', $tdLength);	
2889                };
2890                if(isEmpty > 0){
2891                    $this.find('.list_body td').attr('colspan', $tdLength);	
2892                };
2893            };
2894            let $orderTable = $this.find('.orderList');
2895            if($orderTable.length == 0){
2896                $this.remove();
2897            }else{
2898                let dataStr = $orderTable.attr('data-dstr');
2899                $this.find('.delv_dstr').text(dataStr);
2900
2901                let $optionButtons = $orderTable.find('.b_button .option_button');
2902                $optionButtons.each(function(){
2903                    let $parent = IV$(this).closest('.option_str_list');
2904                    if($parent.length > 0){
2905                        let flag = false;
2906                        if(IV$(this).siblings().length == 0){
2907                            flag = true;
2908                        }
2909                        IV$(this).insertAfter($parent);
2910                        if(flag){
2911                            $parent.remove();
2912                        }
2913                    }
2914                });
2915            };
2916            $this.addClass('done');
2917        };
2918    });
2919};
2920
2921
2922/**
2923 * 특정 체크박스 선택하면 연결된 체크박스 다 선택해줌
2924 */
2925var ivchkFunc = ivchkFunc || function(d, boolean){
2926    let $this = IV$(d);
2927    let dom = d;
2928    let $children = dom.iv_children;
2929    let nodeName = dom.nodeName;
2930    let customFunction = dom.iv_customFunction;
2931    if(typeof $children !== 'undefined'){
2932        if(nodeName === 'INPUT'){
2933            $this.on('change',function(e,eventDirection){
2934                let checkedChk = $this.is(':checked');
2935                let $parent = dom['iv_parent'];
2936                if(boolean !== false){
2937                    $children = dom.iv_children.filter(':not(:disabled)');
2938                }else{
2939                    $children = dom.iv_children;
2940                };
2941                if(typeof eventDirection === 'undefined'){
2942                    //trigger되지 않은 이벤트 실행
2943                    triggerChildren();
2944                    if(typeof $parent !== 'undefined'){
2945                        triggerParent();
2946                    };
2947                }else{
2948                    //trigger된 이벤트 실행
2949                    if(eventDirection.direction === 'down'){
2950                        triggerChildren();
2951                    }else if(eventDirection.direction === 'up'){
2952                        if(typeof $parent !== 'undefined'){
2953                            triggerParent();
2954                        };
2955                    };
2956                };
2957                if(typeof customFunction !== 'undefined'){
2958                    customFunction(d, checkedChk);
2959                };
2960                function triggerChildren(){
2961                    if(checkedChk){
2962                        $children.prop('checked',true).trigger('change',[{'direction': 'down'}]);
2963                    }else{
2964                        $children.prop('checked',false).trigger('change',[{'direction': 'down'}]);
2965                    };
2966                };
2967                function triggerParent(){
2968                    if($parent !== 'undefined'){
2969                        let $siblings = dom['iv_siblings']; 
2970                        if($siblings.length ==  $siblings.filter(':checked').length){
2971                            $parent.prop('checked',true).trigger('change',[{'direction': 'up'}]);
2972                        }else{
2973                            $parent.prop('checked',false).trigger('change',[{'direction': 'up'}]);
2974                        };
2975                    };
2976                };
2977            });
2978        };
2979        $children.on('change',function(e, eventDirection){
2980            let $this_children = IV$(this);
2981            let childrenLength = $children.length;
2982            let childrenChkLength = $children.filter(':checked').length;
2983            if(boolean === false && typeof $this_children.iv_children === 'undefined'){
2984                childrenLength = $children.filter(':not(:disabled)').length;
2985                childrenChkLength = $children.filter(':not(:disabled)').filter(':checked').length;
2986            };
2987            let checkedChk = $this_children.is(':checked');
2988            let customFunction = $this_children.iv_customFunction;
2989            if(typeof eventDirection === 'undefined'){
2990                //trigger되지 않은 이벤트 실행
2991                triggerParents();
2992            }else{
2993                //trigger된 이벤트 실행
2994                if(eventDirection.direction == 'up'){
2995                    triggerParents();
2996                };
2997            };
2998            function triggerParents(){
2999                if(childrenLength === childrenChkLength && childrenChkLength !== 0){
3000                    $this.prop('checked',true).trigger('change',[{'direction': 'up'}]);
3001                }else{
3002                    $this.prop('checked',false).trigger('change',[{'direction': 'up'}]);
3003                };
3004            };
3005            if(typeof customFunction !== 'undefined' && typeof $this_children.iv_children === 'undefined'){
3006                customFunction(this, checkedChk);
3007            };
3008        });
3009    };
3010};
3011
3012/**
3013 * 장바구니 확인창 관련 이벤트 
3014 * 팝업 아닌 레이아웃에 [id*="iv_memberChk_"] > input 요소 필요
3015 */
3016if(IV$(topDocument).find('[id*="iv_memberChk_"] > input').length > 0){
3017    /* 장바구니 확인창 */
3018    IV$(topDocument).find('[id*="iv_memberChk_"] > input').on('IVbasketConfirm',function(e){
3019        IV$(topDocument).find('[onClick*="basketConfirmShow"]').addClass('noEvent');
3020        basketConfirmFunc.run();
3021    });
3022    var basketConfirmFunc = basketConfirmFunc || {
3023        __layer : null,
3024        __count : 0,
3025        __maxCount : 10,
3026        __autoHideUse : true,
3027        __autoHide : true,
3028        __autoFadeTime : 500,
3029        __autoHideTime : 1500,
3030        init: function(){
3031            let IV_BASKET_CONFIRM_EVENT = new CustomEvent("IVbasketConfirm");
3032            IV$(topDocument).find('[id*="iv_memberChk_"] > input')[0].dispatchEvent(IV_BASKET_CONFIRM_EVENT);
3033        },
3034        run : function(){
3035            /* 함수 실행 */
3036            basketConfirmFunc.__layer = IV$('#confirmLayer');
3037            var $comfirmLayer = basketConfirmFunc.__layer;
3038            var confirmLength = $comfirmLayer.length;
3039            if(bIsRunningAddBasket){
3040                basketConfirmFunc.__count = basketConfirmFunc.__count + 1;
3041                setTimeout(basketConfirmFunc.run,150);   
3042            }else{
3043                if(confirmLength > 0){
3044                    clearTimeout(basketConfirmFunc.run);
3045                    try {
3046                        basketConfirmFunc.set();
3047                    } catch (e) {
3048                        console.log(e);
3049                        basketConfirmFunc.set();
3050                    };
3051
3052                    if(basketConfirmFunc.__autoHideUse){
3053                        if(basketConfirmFunc.__autoHide){
3054                            $comfirmLayer.find('.popup_container').children('.close').addClass('displaynone');
3055                            basketConfirmFunc.fadeInAuto();
3056                        }else{
3057                            iv_util.makeDimmed(true,1,$comfirmLayer.find('.popup_container'));
3058                            $comfirmLayer.find('.popup_container').addClass('on');
3059                            basketConfirmFunc.reset();
3060                        };
3061                    }else{
3062                        iv_util.makeDimmed(true,1,$comfirmLayer.find('.popup_container'));
3063                        $comfirmLayer.find('.popup_container').addClass('on');
3064                        basketConfirmFunc.reset();
3065                    }
3066                }else{
3067                    basketConfirmFunc.__count = basketConfirmFunc.__count + 1;
3068                    if(basketConfirmFunc.__count > basketConfirmFunc.__maxCount){
3069                        basketConfirmFunc.reset();
3070                    }else{	
3071                        setTimeout(basketConfirmFunc.run,100);
3072                    };
3073                };
3074            };
3075        },
3076        set : function(){
3077            /** 커스텀 스크롤바 생성 / 상품 미리보기 형태일 경우 상품 관련 함수 실행 
3078             * 상품 미리보기 형태일 경우 오류가 잦게 발생하므로 가능한 사용하지를 않는 것을 권장
3079             * 사용하게 될 경우 함수 수정 필수 
3080             */
3081            var $comfirmLayer = basketConfirmFunc.__layer;
3082            //IVmcustomScrollbar();
3083            if($comfirmLayer.find('.base_prd_list').length > 0){
3084                basketConfirmFunc.__autoHide = false;
3085                setTimeout(function(){
3086                    IVPrdItemInfoCall.init(basePrdItemInfoCallCustom, $comfirmLayer.find('[id^="anchorBoxId_"]')); //상품별 실행 함수
3087                    $comfirmLayer.find('[onClick*="layer_basket_paging"]').each(function(){
3088                        let $page = IV$(this);
3089                        let onClick = $page.attr('onClick');
3090                        $page.attr('onClick', 'basketConfirmFunc.reset(); ' + onClick + '  setTimeout(basketConfirmFunc.run,500);');
3091                    });
3092                },500);
3093            };
3094        },
3095        fadeInAuto : function(){
3096            /* 노출 시 페이드인 */
3097            var $comfirmLayer = basketConfirmFunc.__layer;
3098            $comfirmLayer.hide();
3099            $comfirmLayer.find('.popup_container').addClass('on');
3100            $comfirmLayer.stop(true,true).fadeIn(basketConfirmFunc.__autoFadeTime).promise().done(function() {
3101                if($comfirmLayer.length > 0){
3102                    setTimeout(basketConfirmFunc.hideAuto,basketConfirmFunc.__autoHideTime);
3103                }else{
3104                    basketConfirmFunc.reset();
3105                };
3106            });
3107        },
3108        hideAuto : function(){
3109            /* 자동 닫힘 */
3110            var $comfirmLayer = basketConfirmFunc.__layer;
3111            if($comfirmLayer.length > 0){
3112                $comfirmLayer.stop(true,true).fadeOut(basketConfirmFunc.__autoFadeTime).promise().done(function() {
3113                    $comfirmLayer.find('.popup_container').removeClass('on').css('transition','all 0s ease 0s');
3114                    basketConfirmFunc.close();
3115                });
3116            }else{
3117                basketConfirmFunc.reset();
3118            };
3119        },
3120        reset : function(){
3121            /* 초기화 */
3122            basketConfirmFunc.__count = 0;
3123            clearTimeout(basketConfirmFunc.run);
3124            IV$(topDocument).find('[onClick*="basketConfirmShow"]').removeClass('noEvent');
3125        },
3126        close : function(){
3127            /* 닫기 */
3128            var $comfirmLayer = basketConfirmFunc.__layer;
3129            basketConfirmFunc.reset();
3130            if($comfirmLayer.find('.popup_container').css('transition') == 'all 0s ease 0s'){
3131                $comfirmLayer.find('.popup_container').removeClass('on');
3132                $comfirmLayer.remove();
3133                iv_util.removeDimmed();
3134            }else{
3135                $comfirmLayer.find('.popup_container')[0].addEventListener("transitionend", function(){
3136                    $comfirmLayer.remove();
3137                    iv_util.removeDimmed();
3138                });
3139                $comfirmLayer.find('.popup_container').removeClass('on');
3140            }
3141        },
3142    };
3143    var basketConfirmShow = basketConfirmFunc.init; //기존 함수(basketConfirmShow) 활용 하기 위해 추가
3144    /* 관심상품 확인창 */
3145    IV$(topDocument).find('[id*="iv_memberChk_"] > input').on('IVwishConfirm',function(e){
3146        IV$(topDocument).find('[onClick*="wishConfirmShow"]').addClass('noEvent');
3147        wishConfirmFunc.run();
3148    });
3149    var wishConfirmFunc = wishConfirmFunc || {
3150        __layer : null,
3151        __count : 0,
3152        __maxCount : 10,
3153        __autoHideUse : true,
3154        __autoHide : true,
3155        __autoFadeTime : 500,
3156        __autoHideTime : 1500,
3157        init: function(){
3158            let IV_WISH_CONFIRM_EVENT = new CustomEvent("IVwishConfirm");
3159            IV$(topDocument).find('[id*="iv_memberChk_"] > input')[0].dispatchEvent(IV_WISH_CONFIRM_EVENT);
3160        },
3161        run : function(){
3162            /* 함수 실행 */
3163            wishConfirmFunc.__layer = IV$('#confirmLayer');
3164            var $comfirmLayer = wishConfirmFunc.__layer;
3165            var confirmLength = $comfirmLayer.length;
3166            if(confirmLength > 0){
3167                clearTimeout(wishConfirmFunc.run);
3168                if(wishConfirmFunc.__autoHideUse){
3169                    if(wishConfirmFunc.__autoHide){
3170                        $comfirmLayer.find('.popup_container').children('.close').addClass('displaynone');
3171                        wishConfirmFunc.fadeInAuto();
3172                    }else{
3173                        iv_util.makeDimmed(true,1,$comfirmLayer.find('.popup_container'));
3174                        $comfirmLayer.find('.popup_container').addClass('on');
3175                        wishConfirmFunc.reset();
3176                    };
3177                }
3178            }else{
3179                wishConfirmFunc.__count = wishConfirmFunc.__count + 1;
3180                if(wishConfirmFunc.__count > wishConfirmFunc.__maxCount){
3181                    wishConfirmFunc.reset();
3182                }else{	
3183                    setTimeout(wishConfirmFunc.run,100);
3184                };
3185            };
3186        },
3187        set : function(){
3188            /** 커스텀 스크롤바 생성 / 상품 미리보기 형태일 경우 상품 관련 함수 실행 
3189             * 상품 미리보기 형태일 경우 오류가 잦게 발생하므로 가능한 사용하지를 않는 것을 권장
3190             * 사용하게 될 경우 함수 수정 필수 
3191             */
3192            var $comfirmLayer = wishConfirmFunc.__layer;
3193            //IVmcustomScrollbar();
3194            if($comfirmLayer.find('.base_prd_list').length > 0){
3195                IVPrdItemInfoCall.init(basePrdItemInfoCallCustom, $comfirmLayer.find('[id^="anchorBoxId_"]')); //상품별 실행 함수
3196            };
3197        },
3198        fadeInAuto : function(){
3199            /* 노출 시 페이드인 */
3200            var $comfirmLayer = wishConfirmFunc.__layer;
3201            $comfirmLayer.hide();
3202            $comfirmLayer.find('.popup_container').addClass('on');
3203            $comfirmLayer.stop(true,true).fadeIn(wishConfirmFunc.__autoFadeTime).promise().done(function() {
3204                let chk = IV$('#confirmLayer');
3205                if(chk.length > 0){
3206                    setTimeout(wishConfirmFunc.hideAuto,wishConfirmFunc.__autoHideTime);
3207                }else{
3208                    wishConfirmFunc.reset();
3209                };
3210            });
3211        },
3212        hideAuto : function(){
3213            /* 자동 닫힘 */
3214            var $comfirmLayer = wishConfirmFunc.__layer;
3215            if($comfirmLayer.length > 0){
3216                $comfirmLayer.stop(true,true).fadeOut(wishConfirmFunc.__autoFadeTime).promise().done(function() {
3217                    $comfirmLayer.find('.popup_container').removeClass('on').css('transition','all 0s ease 0s');
3218                    wishConfirmFunc.close();
3219                });
3220            }else{
3221                wishConfirmFunc.reset();
3222            };
3223        },
3224        reset : function(){
3225            /* 초기화 */
3226            wishConfirmFunc.__count = 0;
3227            clearTimeout(wishConfirmFunc.run);
3228            IV$(topDocument).find('[onClick*="wishConfirmShow"]').removeClass('noEvent');
3229        },
3230        close : function(){
3231            /* 닫기 */
3232            var $comfirmLayer = wishConfirmFunc.__layer;
3233            wishConfirmFunc.reset();
3234            if($comfirmLayer.find('.popup_container').css('transition') == 'all 0s ease 0s'){
3235                $comfirmLayer.find('.popup_container').removeClass('on');
3236                $comfirmLayer.remove();
3237                iv_util.removeDimmed();
3238            }else{
3239                $comfirmLayer.find('.popup_container')[0].addEventListener("transitionend", function(){
3240                    $comfirmLayer.remove();
3241                    iv_util.removeDimmed();
3242                });
3243                $comfirmLayer.find('.popup_container').removeClass('on');
3244            }
3245        },
3246    };
3247    var wishConfirmShow = wishConfirmFunc.init; //기존 함수(wishConfirmShow) 활용 하기 위해 추가
3248};
3249
3250/**
3251 * 커스텀 셀렉트 생성 
3252 */
3253var iv_optionCustomUtil = iv_optionCustomUtil || {
3254    find: function ($select) {
3255        /**
3256         * 상품 셀렉트일때는 초기 옵션값 텍스트 변경 
3257         */
3258        if($select[0].tagName == 'SELECT' && $select.attr('data-ivcustom-input') === 'product'){
3259            var firstOption = $select.find('option:first-child');
3260            var requiredChk = (firstOption.text().indexOf('필수') > -1) ? true : false;
3261            var firstOptionTxt = '';
3262            if(requiredChk){
3263                firstOptionTxt += iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_REQUIRED_FIXED_TXT;
3264            }else{
3265                firstOptionTxt += iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_OPTIONAL_FIXED_TXT;
3266            };
3267            firstOptionTxt += ' ' + iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_DEFAULT_FIXED_TXT;
3268            firstOption.text(firstOptionTxt);
3269        };
3270        iv_optionCustomUtil.make($select);
3271        iv_optionCustomUtil.append($select);
3272    },
3273    update : function($select, result){
3274        var $customSelect = $select.prev('.base_data_connect');
3275        var dataConnectResult = $customSelect.attr('data-result');
3276        //본래 select에 변경이 발생했을때
3277        if($select.val() !== $customSelect.attr('data-selected')){
3278            var dataVal = $select.val();
3279            if(dataVal === ''){
3280                dataVal = '*';
3281            };
3282            let $dataOption = $customSelect.find('[data-value="'+ dataVal +'"]');
3283            var dataText = $dataOption.html();
3284            $customSelect.find('.base_data_view').html(dataText);
3285            $customSelect.attr('data-selected', dataVal);
3286            $dataOption.addClass('selected');
3287            $customSelect.removeClass('on');
3288            $customSelect.find('[data-value]').not($dataOption).removeClass('selected');
3289            if (dataConnectResult == 'button') {
3290                $customSelect.find('.base_data_select').slideUp();
3291            };
3292            let disbledChk = (typeof $select.attr('disabled') === 'undefined') ? false : $select.attr('disabled');
3293            if(disbledChk === 'disabled'){
3294                $customSelect.attr('data-disabled','disabled');
3295            }else{
3296                $customSelect.removeAttr('data-disabled');
3297            };
3298        };
3299        if(result === true){
3300            iv_optionCustomUtil.append($select);
3301        };
3302    },
3303    make: function ($select) {
3304        var $customSelect = $select.prev('.base_data_connect');
3305        if ($customSelect.length == 0) {
3306            switch (IV_DEVICE_CHK) {
3307                case 'pc':
3308                    var customProductSelect = EC$('<div class="base_data_connect data-done" data-ori="" data-result="select" data-selected=""><h4 class="base_data_view"></h4><ul class="base_data_select"></ul></div>');
3309                    break;
3310                case 'mobile':
3311                    var customProductSelect = EC$('<div class="base_data_connect data-done" data-ori="" data-result="button" data-selected=""><h4 class="base_data_view"></h4><ul class="base_data_select"></ul></div>');
3312                    break;
3313                default:
3314                    console.log('error');
3315                    break;
3316            };
3317            $select.addClass('layout-hidden');
3318            $select.before(customProductSelect);
3319            $customSelect = $select.prev('.base_data_connect');
3320            if ($select.hasClass('displaynone')) {
3321                $customSelect.addClass('displaynone');
3322            };
3323        };
3324        $customSelect.find('.base_data_view').off().on('click', function () {
3325            var $this = EC$(this);
3326            var $dataConnect = $this.closest('.base_data_connect');
3327            var dataConnectResult = $dataConnect.data('revealtype');
3328            var classname = '.base_data_connect';
3329            if($dataConnect.attr('data-disabled') == 'disabled'){
3330                return false;
3331            }else{
3332                if (dataConnectResult == 'select') {
3333                    if ($dataConnect.hasClass('on')) {
3334                        $dataConnect.removeClass('on');
3335                        
3336                        
3337                    } else {
3338                        $dataConnect.addClass('on');
3339                        iv_util.targetOutCloseFunc($dataConnect);
3340                    };
3341                    EC$(classname).not($dataConnect).removeClass('on');
3342                } else if (dataConnectResult == 'toggle') {
3343                    if ($dataConnect.hasClass('on')) {
3344                        $dataConnect.removeClass('on');
3345                        $dataConnect.find('.base_data_select').slideUp();
3346                    } else {
3347                        $dataConnect.addClass('on');
3348                        $dataConnect.find('.base_data_select').slideDown();
3349                    };
3350                    EC$(classname).not($dataConnect).removeClass('on');
3351                    EC$(classname).not($dataConnect).find('.base_data_select').slideUp();
3352                };
3353            };
3354        });
3355    },
3356                
3357    append: function ($select) {
3358        if ($select) {
3359            var $customSelect = $select.prev('.base_data_connect');
3360            var isProductSelect = ($select.attr('data-ivcustom-input') === 'product') ? true : false; //상품 select일 경우 일부 추가됨
3361            
3362            //할인 판매가 유무
3363            var discountPrd = $('.prdDetail_infoBox').find('[data-title="할인판매가"]').length;
3364            var pricePrd = $('.prdDetail_infoBox').find('[data-title="판매가"]').length;
3365            if ($customSelect.length > 0) {
3366                
3367                if (!$select.hasClass('displaynone')) {
3368                    var required = $select.attr('required');
3369                    required = (required) ? iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_REQUIRED_FIXED_TXT : iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_OPTIONAL_FIXED_TXT;
3370                    $customSelect.find('.base_data_select').remove();
3371                    $customSelect.append('<ul class="base_data_select"></ul>');
3372                    var selectVal = $select.val();
3373                    $select.find('option').each(function () {
3374                        var $option = EC$(this);
3375                        var value = $option.val();
3376                        var disabled = ($option.attr('disabled')) ? 'disabled' : '';
3377                        if (value != '*' && value != '**' && value !== '') {
3378                            var text = $option.text();
3379                            var textSplit1,
3380                                textSplit2;
3381                            let soldOutChk = false;
3382                            if(text.indexOf('[품절]') > -1){
3383                                soldOutChk = true;
3384                            };
3385                            if (text.indexOf(iv_commonCustom.__IV_DEFAULT_VALUE_DETAIL_SELECT_CUSTOM_SUB_TXT_SIGN) > -1) {
3386                                var chk = text.indexOf(iv_commonCustom.__IV_DEFAULT_VALUE_DETAIL_SELECT_CUSTOM_SUB_TXT_SIGN);
3387                                textSplit1 = text.slice(0, chk).trim();
3388                                if(soldOutChk){
3389                                    textSplit2 = text.slice(chk + 1).split('[품절]')[0].trim();
3390                                    text = '<strong>' + textSplit1 + '</strong><span>' + textSplit2 + '<span class="soldOut">'+ iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_SOLDOUT_FIXED_TXT +'</span></span>';
3391                                }else{
3392                                    textSplit2 = text.slice(chk + 1).trim();
3393                                    text = '<strong>' + textSplit1 + '</strong><span>' + textSplit2 + '</span>';
3394                                };
3395                            } else {
3396                                if(soldOutChk){
3397                                    text = text.split('[품절]')[0].trim();
3398                                    text = '<strong>' + text + '<span class="soldOut">'+ iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_SOLDOUT_FIXED_TXT +'<
3398/span></strong>';
3399                                }else{
3400                                    text = '<strong>' + text + '</strong>';
3401                                };
3402                            };
3403                            var $li = IV$('<li data-value="' + value + '" class="base_data_option">' + text + '</li>');
3404                            if(disabled !== ''){
3405                                $li.attr('data-disabled', 'disabled');
3406                            }
3407                            if (value == selectVal) {
3408                                $customSelect.find('.base_data_view').html(text);
3409                                $li.addClass('selected');
3410                                $customSelect.attr('data-selected', value);
3411                            };
3412                            $customSelect.find('.base_data_select').append($li);
3413                        };
3414                    });
3415                    if(isProductSelect){
3416                        var defaultTxt = required + ' ' + iv_commonCustom.__IV_DEFAULT_VALUE_OPTION_DEFAULT_FIXED_TXT;
3417                        $customSelect.find('.base_data_select').prepend('<li data-value="*" class="base_data_option uiqtext">' + defaultTxt + '</li>');
3418                    }else{
3419                        $customSelect.find('.base_data_select').prepend('<li data-value="*" class="base_data_option uiqtext">' + $select.find('option').eq(0).text() + '</li>');
3420                    };
3421                    let disbledChk = (typeof $select.attr('disabled') === 'undefined') ? false : $select.attr('disabled');
3422                    if ($customSelect.find('.base_data_option').length == 1 || disbledChk == 'disabled') {
3423                        $customSelect.attr('data-disabled', 'disabled');
3424                    } else {
3425                        $customSelect.removeAttr('data-disabled');
3426                    };
3427                    if (selectVal == '*' || selectVal == '') {
3428                        if(isProductSelect){
3429                            $customSelect.find('.base_data_view').text(defaultTxt);
3430                            $customSelect.find('.base_data_select [data-value="*"]').addClass('selected');
3431                            $customSelect.attr('data-selected', '*');
3432                        }else{
3433                            $customSelect.find('.base_data_view').text($select.find('option').eq(0).text());
3434                            $customSelect.find('.base_data_select [data-value="*"]').addClass('selected');
3435                            $customSelect.attr('data-selected', '*');
3436                        };
3437                    };
3438                    var dataConnectResult = $customSelect.attr('data-result');
3439                    if (dataConnectResult == 'select') {
3440                        $customSelect.attr('data-revealType', 'select');
3441                        var optionSelect = $customSelect.find('.base_data_select .base_data_option');
3442                        optionSelect.each(function(){
3443                        	var _optionSelect = $(this);
3444                            _optionSelect.not( '.uiqtext' ).addClass('textapd');
3445                            var apendText = $(this).find('strong').text();
3446                            
3447                            if( apendText.indexOf('#') > -1 || apendText.indexOf('쿠폰적용가') > -1 ){
3448                                var hasPriceSign = apendText.indexOf('#') > -1;
3449                                
3450                                var nomPri = apendText;
3451                                if( apendText.indexOf('(') > -1 ){
3452                                    var nomPri = apendText.split('(')[0];
3453                                }
3454                                
3455                                
3456                                // var frontPri = nomPri.split('#')[1];
3457                                var priceInfo = (hasPriceSign) ? nomPri.split('#')[1].trim() : nomPri.split('쿠폰적용가').slice(1).join('쿠폰적용가').trim();
3458                                var frontPri = priceInfo;
3459                                var couponPri = '';
3460                                if( priceInfo.indexOf('$') > -1 ){
3461                                    frontPri = priceInfo.split('$')[0].trim();
3462                                    couponPri = priceInfo.split('$').slice(1).join('$').trim();
3463                                }else if( priceInfo.indexOf('쿠폰적용가') > -1 ){
3464                                    frontPri = priceInfo.split('쿠폰적용가')[0].trim();
3465                                    couponPri = '쿠폰적용가 ' + priceInfo.split('쿠폰적용가').slice(1).join('쿠폰적용가').trim();
3466                                }else if( !hasPriceSign ){
3467                                    couponPri = '쿠폰적용가 ' + priceInfo;
3468                                }
3469                                var firPri = (hasPriceSign) ? nomPri.split('#')[0] : nomPri.split('쿠폰적용가')[0].trim();
3470                                var $strong = $(this).find('strong');
3471                                var discountRateMatch = firPri.match(/\[\d+(?:\.\d+)?%\]/);
3472                                $strong.text(firPri);
3473                                if(discountRateMatch !== null){
3474                                    var discountRate = discountRateMatch[0];
3475                                    var discountRateIndex = firPri.indexOf(discountRate);
3476                                    $strong.empty()
3477                                        .append(document.createTextNode(firPri.slice(0, discountRateIndex)))
3478                                        .append($('<span class="per"></span>').text(discountRate))
3479                                        .append(document.createTextNode(firPri.slice(discountRateIndex + discountRate.length)));
3480                                }
3481                                var secPri = iv_util.comma(iv_util.onlyNumbFunc(frontPri));
3482                                    
3483                                $(this).append('<div class="inner_right"></div>');
3484                                if( hasPriceSign || couponPri === '' ){
3485                                    $(this).find('.inner_right').append('<p class="price_opt">' + secPri + '원</p>');
3486                                }
3487                                if( couponPri !== '' ){
3488                                    var couponPriTxt = couponPri.replace(/[\d,\s]+원?$/g,'').trim();
3489                                    var couponPriWon = iv_util.comma(iv_util.onlyNumbFunc(couponPri));
3490                                    if( couponPriTxt !== '' && couponPriWon !== '' ){
3491                                        $(this).find('.inner_right').append('<span class="coupon_prc">' + couponPriTxt + ' ' + couponPriWon + '원</span>');
3492                                    }else{
3493                                        $(this).find('.inner_right').append('<span class="coupon_prc">' + couponPri + '</span>');
3494                                    }
3495                                }
3496
3497                                if( apendText.indexOf('(') > -1 ){
3498
3499                                    var monPri = apendText.split('(')[1];
3500                                    if( monPri.indexOf('분') > -1 ){
3501                                        var monPritxt = monPri.split('분')[0];
3502                                        
3503                                        var monPrinner = monPri.split('분')[1];
3504                                        var montPrcWon = iv_util.comma(iv_util.onlyNumbFunc(monPrinner));
3505                                        $(this).find('.inner_right').append('<span class="month_prc"> ('+ monPritxt + '분' + ' ' + montPrcWon +'원)</span>');
3506                                    }
3507                                    if( monPri.indexOf('당') > -1 ){
3508                                        var monPritxt = monPri.split('당')[0];
3509                                        var monPrinner = monPri.split('당')[1];
3510                                        var montPrcWon = iv_util.comma(iv_util.onlyNumbFunc(monPrinner));
3511                                        $(this).find('.inner_right').append('<span class="month_prc"> ('+ monPritxt + '당' + ' ' + montPrcWon +'원)</span>');
3512                                    }
3513                                }
3514                            }
3515                        });
3516                        
3517                        $customSelect.find('.base_data_select').each(function(){
3518                            if( $(this).find('li').length > 3 ){
3519                                $(this).parents('.base_data_connect').click(function(){
3520                                    var selectLiHeight = $(this).find('li.textapd').eq(0).outerHeight();
3521                                    var selectLiHeight02 = $(this).find('li.textapd').eq(1).outerHeight();
3522                                    var selectLiHeight03 = $(this).find('li.textapd').eq(2).outerHeight();
3523                                    var selectUlHeight = selectLiHeight + selectLiHeight02 + (selectLiHeight03 * 2.5);
3524                                    var height = $(this).find('.base_data_select').css("max-height");
3525                                    if ( height == "none" ){
3526                                        $(this).find('.base_data_select').css('max-height' , selectUlHeight);
3527                                    }
3528                                });
3529                                if( $(this).hasClass('mCustomScrollbar').length != 'undefined' ){
3530                                    $(this).mCustomScrollbar({
3531                                        axis: "y",
3532                                        theme: "minimal-dark",
3533                                        alwaysShowScrollbar: 0,
3534                                        callbacks: {
3535                                            onInit:function(){
3536                                                let $scrollBox = $customSelect.find(".mCustomScrollBox");
3537                                                let $scrollContent = $customSelect.find(".mCSB_container");
3538                                                let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
3539                                                (gap < 10) ? $customSelect.find(".mCSB_scrollTools").addClass("layout-hidden") : $customSelect.find(".mCSB_scrollTools").removeClass("layout-hidden");
3540                                            },
3541                                            onBeforeUpdate: function () {
3542                                                let $scrollBox = $customSelect.find(".mCustomScrollBox");
3543                                                let $scrollContent = $customSelect.find(".mCSB_container");
3544                                                let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
3545                                                (gap < 10) ? $customSelect.find(".mCSB_scrollTools").addClass("layout-hidden") : $customSelect.find(".mCSB_scrollTools").removeClass("layout-hidden");
3546                                            },
3547                                            onScrollStart: function () {
3548                                                let $scrollBox = $customSelect.find(".mCustomScrollBox");
3549                                                let $scrollContent = $customSelect.find(".mCSB_container");
3550                                                let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
3551                                                (gap < 10) ? $customSelect.find(".mCSB_scrollTools").addClass("layout-hidden") : $customSelect.find(".mCSB_scrollTools").removeClass("layout-hidden");
3552                                            }
3553                                        }
3554                                    });
3555                                }
3556                                
3557                            }
3558                        });
3559                        
3560                      //$customSelect.find('.base_data_select').each(function(){
3561                      //    $(this).mCustomScrollbar();
3562                      //});
3563                        
3564                        try {
3565                          // $customSelect.find('.base_data_select').mCustomScrollbar({
3566                          //     axis: "y",
3567                          //     theme: "minimal-dark",
3568                          //     alwaysShowScrollbar: 0,
3569                          //     callbacks: {
3570                          //         onInit:function(){
3571                          //             let $scrollBox = $customSelect.find(".mCustomScrollBox");
3572                          //             let $scrollContent = $customSelect.find(".mCSB_container");
3573                          //             let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
3574                          //             (gap < 10) ? $customSelect.find(".mCSB_scrollTools").addClass("layout-hidden") : $customSelect.find(".mCSB_scrollTools").removeClass("layout-hidden");
3575                          //         },
3576                          //         onBeforeUpdate: function () {
3577                          //             let $scrollBox = $customSelect.find(".mCustomScrollBox");
3578                          //             let $scrollContent = $customSelect.find(".mCSB_container");
3579                          //             let gap = Math.abs($scrollBox.outerHeight() - $scrollContent.outerHeight());
3580                          //             (gap < 10) ? $customSelect.find(".mCSB_scrollTools").addClass("layout-hidden") : $customSelect.find(".mCSB_scrollTools").removeClass("layout-hidden");
3581                          //         },
3582                          //         onScrollStart: function () {
3583                          //             let $scrollBox = $customSelect.find(".mCustomScrollBox");
3584                          //             let $scrollContent = $customSelect.find(".mCSB_container");
3585                          //             let gap = Math.abs($scrollBox.outerHeight() - $scrollC
3585ontent.outerHeight());
3586                          //             (gap < 10) ? $customSelect.find(".mCSB_scrollTools").addClass("layout-hidden") : $customSelect.find(".mCSB_scrollTools").removeClass("layout-hidden");
3587                          //         }
3588                          //     }
3589                          // });
3590                        }catch(e) {
3591                            console.log(e); //////////////////// 여기서 오류
3592                        }
3593                    } else if (dataConnectResult == 'button') {
3594                        $customSelect.attr('data-revealType', 'toggle');
3595                    };
3596                    $customSelect.find('.base_data_option').off().on('click', function () {
3597                        var $dataOption = EC$(this);
3598                        var dataVal = $dataOption.attr('data-value');
3599                        var selectedOptionText = IV$.trim($dataOption.find('strong').text());
3600                        iv_util.selectedOptionTxtDelay();
3601                        iv_util.selectedOptionTxtByItemCodeDelay(dataVal, selectedOptionText);
3602                        if(dataVal === '*' && $select.find('option[value="' + dataVal + '"]').length === 0){
3603                            dataVal = '';
3604                        };
3605                        var dataText = $dataOption.html();
3606                        if (!$dataOption.hasClass('selected')) {
3607                            $select.find('option[value="' + dataVal + '"]').prop('checked', true);
3608                            $select.val(dataVal).trigger('change');
3609                            $customSelect.find('.base_data_view').html(dataText);
3610                        };
3611                        $customSelect.attr('data-selected', dataVal);
3612                        $dataOption.addClass('selected');
3613                        $customSelect.removeClass('on');
3614                        $customSelect.find('[data-value]').not($dataOption).removeClass('selected');
3615                        if (dataConnectResult == 'button') {
3616                            $customSelect.find('.base_data_select').slideUp();
3617                        };
3618                        iv_util.selectedOptionTxtDelay();
3619                        iv_util.selectedOptionTxtByItemCodeDelay(dataVal, selectedOptionText);
3620                    });
3621                    EC$($select).on('change',function(){
3622                        let value = $select.val();
3623                        if(value == '*' || value == '**'){
3624                            let $defaultOption = $customSelect.find('[data-value="*"]');
3625                            $customSelect.find('.base_data_view').html($defaultOption.html());
3626                            $customSelect.attr('data-selected', '*');
3627                            $defaultOption.addClass('selected');
3628                            $customSelect.removeClass('on');
3629                            $customSelect.find('[data-value]').not($defaultOption).removeClass('selected');
3630                            if (dataConnectResult == 'button') {
3631                                $customSelect.find('.base_data_select').slideUp();
3632                            };
3633                        }
3634                        iv_util.selectedOptionTxtDelay();
3635                    });
3636                }
3637            }
3638        }
3639    },
3640};
3641
3642
3643var IV_FRONT_XANS_INTERPRETER = (function() {
3644    // 변수 정규표현식 (카페24 기존)
3645    var XANS_VAR_FULL_NAME_REGEXP = '\\{\\$([a-z0-9_\\.]+)(?:[\\s]*[\\|][\\s]*([a-z0-9]+)[\\s]*[:]?((?:[^\\{\\}]+)*))?\\}';
3646    // 템플릿에서 모든 변수를 찾기 위한 정규식 (카페24 기존)
3647    var regexpFindSDEVarFullName = new RegExp(XANS_VAR_FULL_NAME_REGEXP, 'ig');
3648    // '{$var_name|display}'과 같은 문자열에서 변수명과 모디파이어를 분리하기 위한 정규식 (카페24 기존)
3649    var regexpSDEVarFullname = new RegExp('^' + XANS_VAR_FULL_NAME_REGEXP + '$', 'i');
3650    //{$var|display:{$var}}과 같은 형식의 경우 정상 처리 되지 않아 아래와 같이 추가 
3651    var IV_VAR_FULL_NAME_REGEXP = '\\{\\$([^\\}]*)\[\}]*';
3652    IV_VAR_FULL_NAME_REGEXP = new RegExp(IV_VAR_FULL_NAME_REGEXP, 'ig');
3653    /** 
3654     * 모디파이어 
3655     * 카페24 기본의 경우 display / numberformat / striptag 외에 구현되지 않아 발생하는 ì˜
3655¤ë¥˜ 수정 위해 추가
3656     * 추가된 모디파이어 : cover, replace, cut, date, timetodate, imgconv, strconv, lower, upper, nl2br
3657     * display : 변수가 존재하면 '', 존재하지 않으면 displaynone 리턴 / 사용법 : {$var|display} or {$var|display:{$var}} 
3658     * numberformat : 해당하는 변수를 3자리마다 찍어서 리턴 / 사용법 : {$var|numberformat}
3659     * striptag : 태그 제거 / 사용법 : {$var|striptag}
3660     * cover : 변수 감싸기 / 사용법 : {$var|cover:<div>,</div>}
3661     * replace : 변수 치환 / 사용법 : {$var|replace:변수,변수치환}
3662     * cut : 특정 글자 수까지 자르기 / 사용법 : {$var|cut:10,...} --> 10글자까지 자르고 맨 끝에 ... 텍스트 붙임
3663     * date : 날짜 포맷 바꾸기 / 사용법 : {$var|date:Y-m-d h:m:s}
3664     * timetodate : date와 다른 부분 있는지 확인중
3665     * imgconv : 이미지 주소 대체하기 / 사용법 : {$var|/iv/common/test.png, /iv/common/test2.png} --> 쉼표로 두 개 연결할 경우 첫번째는 값 있을때 img src값, 두번째는 없을 경우 img src값. 두 번째 값을 입력하지 않거나 비워두면 빈값으로 출력
3666     * strconv : 텍스트 대체하기 / 사용법 : {$var|test,test2} --> 쉼표로 두 개 연결할 경우 첫번째는 값 있을때 텍스트값, 두번째는 없을 경우 텍스트값. 두 번째 값을 입력하지 않거나 비워두면 빈값으로 출력
3667     * nl2br : 확인중
3668     */
3669    var aSDEModifier = {
3670        display: function(sVar){
3671            if (sVar) {
3672                return '';
3673            } else {
3674                return 'displaynone';
3675            }
3676        },
3677        numberformat: function(sVar){
3678            if (isFinite(sVar)) {
3679                // 3자리씩 ,로 끊어서 리턴
3680                var sNumber = String(parseInt(sVar));
3681                var regexp = /^(-?[0-9]+)([0-9]{3})($|\.|,)/;
3682                while (regexp.test(sNumber)) {
3683                    sNumber = sNumber.replace(regexp, "$1,$2$3");
3684                }
3685                return sNumber;
3686            } else {
3687                return '';
3688            }
3689        },
3690        striptag: function(sVar){
3691            return sVar.replace(/(<([^>]+)>)/ig, '');
3692        },
3693        cover: function(sVar, el){
3694            var first = el.split(',')[0];
3695            var last = el.split(',')[1];
3696            return (first+sVar+last);
3697        },
3698        replace : function(sVar, content){
3699            var ori = content.split(',')[0];
3700            var replace = content.split(',')[1];
3701            ori = new RegExp(ori, 'g');
3702            return sVar.replace(ori,replace);
3703        },
3704        cut : function(sVar, content){
3705            if(typeof sVar !== 'undefined'){
3706                if(sVar){
3707                    var length = content.split(',')[0];
3708                    var lastTxt = content.split(',')[1];
3709                    var fullTxt = sVar.slice(0,length) + lastTxt;
3710                    return fullTxt;
3711                }else{
3712                    return '';
3713                }
3714            }else{
3715                return '';
3716            }
3717        },
3718        date :function(sVar, content){
3719            if(typeof sVar === 'string'){
3720                sVar = new Date(sVar);
3721                if(String(sVar) == 'Invalid Date'){
3722                    return '';
3723                }
3724            }else{
3725                return '';
3726            }
3727            var date = sVar;
3728            var year = String(date.getFullYear());
3729            var month = ('0' + (date.getMonth() + 1)).slice(-2);
3730            var day = ('0' + date.getDate()).slice(-2);
3731            var hours = ('0' + date.getHours()).slice(-2); 
3732            var minutes = ('0' + date.getMinutes()).slice(-2);
3733            var seconds = ('0' + date.getSeconds()).slice(-2); 
3734            date = [year,month,day,hours,minutes,seconds];
3735            var format = content;
3736            var reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"\s]/gi; //특수문자 + 공백
3737            var chk = format.split(reg);
3738            chk = chk.reduce(function(acc,e,i,arr){
3739                if(e == ''){
3740                    return acc;
3741                }else{
3742                    acc.push(e);
3743                    return acc;
3744                }
3745            },[]).reduce(function(acc,e,i,arr){
3746                format = format.replace(e,date[i]); 
3747                acc = format;
3748                return acc;
3749            },'');
3750            return chk;
3751        },
3752        timetodate : function(sVar, content){
3753            if(typeof sVar === 'string'){
3754                sVar = new Date(sVar);
3755                if(String(sVar) == 'Invalid Date'){
3756                    return '';
3757                }
3758            }else{
3759                return '';
3760            }
3761            var date = sVar;
3762            var year = String(date.getFullYear());
3763            var month = ('0' + (date.getMonth() + 1)).slice(-2);
3764            var day = ('0' + date.getDate()).slice(-2);
3765            var hours = ('0' + date.getHours()).slice(-2); 
3766            var minutes = ('0' + date.getMinutes()).slice(-2);
3767            var seconds = ('0' + date.getSeconds()).slice(-2); 
3768            date = [year,month,day,hours,minutes,seconds];
3769            var format = content;
3770            var reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"\s]/gi; //특수문자 + 공백
3771            var chk = format.split(reg);
3772            chk = chk.reduce(function(acc,e,i,arr){
3773                if(e == ''){
3774                    return acc;
3775                }else{
3776                    acc.push(e);
3777                    return acc;
3778                }
3779            },[]).reduce(function(acc,e,i,arr){
3780                format = format.replace(e,date[i]); 
3781                acc = format;
3782                return acc;
3783            },'');
3784            return chk;
3785        },
3786        imgconv : function(sVar, content){
3787            if(content.indexOf(',') > -1){
3788                var url1 = content.split(',')[0];	
3789                var url2 = content.split(',')[1];
3790            }else{
3791                var url1 = content;
3792                var url2 = '';
3793            }
3794            var $tag = $(sVar);
3795            if(typeof $tag[0] !== 'undefined'){
3796                if($tag[0].nodeName == 'IMG'){
3797                    $tag = $tag.attr('src', url1);
3798                    return String($tag[0].outerHTML);
3799                }else{
3800                    $tag = $('<img src="'+ url2 +'" />');
3801                    return String($tag[0].outerHTML);
3802                }
3803            }else{
3804                $tag = $('<img src="'+ url2 +'" />');
3805                return String($tag[0].outerHTML);
3806            }
3807        },
3808        strconv : function(sVar, content){
3809            if(content.indexOf(',') > -1){
3810                var txt1 = content.split(',')[0];	
3811                var txt2 = content.split(',')[1];
3812            }else{
3813                var txt1 = content;
3814                var txt2 = '';
3815            }
3816            if(sVar){
3817                return txt1;
3818            }else{
3819                return txt2;
3820            }
3821        },
3822        lower : function(sVar){
3823            if(sVar){
3824                return sVar.toLowerCase();
3825            }else{
3826                return sVar;
3827            }
3828        },
3829        upper : function(sVar){
3830            if(sVar){
3831                return sVar.toUpperCase();
3832            }else{
3833                return sVar;
3834            }
3835        },
3836        nl2br : function(sVar){
3837            var reg = /(\r\n|\n|\r)/gm; 
3838            return sVar.replace(reg,'<br />').trim();
3839        },
3840    };
3841    /**
3842     * 모듈 이름 리턴 ex) Imagestyle / Listitem
3843     */
3844    function ucfirst(sString){
3845        if (typeof(sString) !== 'string') {
3846            return '';
3847        }
3848        return sString.substring(0, 1).toUpperCase() + sString.substring(1).toLowerCase();
3849    }
3850    /**
3851     * 템플릿의 변수들을 실제 데이터 변수값으로 넣어주는 함수
3852     * @param string sTemplate 템플릿 (HTML)
3853     * @param array aVars 변수 리스트
3854     * @return string 완성된 HTML
3855     * 재고현황보기 아이콘($option_preview_icon)의 경우 해당 함수때문에 더보기 클릭 시 출력되는 상품에서 노출되지 않는 것이 아니라 원래부터 변수 리스트에 존재X
3856     */
3857    function convertHtmlVars(sTemplate, aVars){
3858        return sTemplate.replace(IV_VAR_FULL_NAME_REGEXP, function(sVarFullName) {
3859            var varName;
3860            var modifire;
3861            var modifireContent;
3862            var modifireTxtIndex = sVarFullName.indexOf('|');
3863            var modifireContentTxtIndex = sVarFullName.indexOf(':');
3864            if(modifireTxtIndex > -1){
3865                if(modifireContentTxtIndex > -1){
3866                    varName = sVarFullName.slice(0,modifireTxtIndex) + '}';
3867                    var test = sVarFullName.slice((modifireTxtIndex+1));
3868                    modifire = test.split(':')[0];
3869                    modifireContentTxtIndex = test.indexOf(':');
3870                    modifireContent = test.slice((modifireContentTxtIndex+1));
3871                    if(modifire.indexOf('}') > -1){
3872                        modifire = modifire.replace('}','');
3873                    }
3874                    if(modifireContent.indexOf('}') > -1){
3875                        modifireContent = modifireContent.replace(/}/g,'').trim();
3876                    }
3877                    if(modifireContent.indexOf('{') > -1){
3878                        modifireContent = modifireContent.replace(/{/g,'').trim();
3879                    }
3880                }else{
3881                    modifire = sVarFullName.split('|')[1];
3882                    if(modifire.indexOf('}') > -1){
3883                        modifire = modifire.replace('}','').trim();
3884                    }
3885                    modifireContent = null;
3886                    varName = sVarFullName.split('|')[0] + '}';
3887                }
3888            }else{
3889                varName = sVarFullName;
3890                modifire = null;
3891                modifireContent = null;
3892            }
3893            if(modifireContent != null){
3894                if(modifireContent.indexOf('$') > -1){
3895                    modifireContent = modifireContent.replace(/\$/g,'').trim();
3896                }
3897            }
3898            varName = varName.match(regexpSDEVarFullname)[1];
3899            if(typeof aVars[varName] !== 'undefined'){
3900                var returnContent;
3901                if(modifire !== null){
3902                    if(modifireContent == null){
3903                        returnContent = aSDEModifier[modifire](aVars[varName]);
3904                    }else{
3905                        returnContent = aSDEModifier[modifire](aVars[varName], modifireContent);
3906                    }
3907                }else{
3908                    if(aVars[varName] != null){
3909                        returnContent = aVars[varName];
3910                    }else{
3911                        returnContent = '';
3912                    }
3913                }
3914                return returnContent;
3915            }else{
3916                return '';
3917            }
3918        });
3919    }
3920    /**
3921     * XANS 템플릿에서 변수를 반영하여 리턴합니다.
3922     * @param string sTemplate 템플릿 (HTML)
3923     * @param array aVars 변수 리스트
3924     * @return string 완성된 HTML
3925     * 재고현황보기 아이콘($option_preview_icon)의 경우 해당 함수때문에 더보기 클릭 시 출력되는 상품에서 노출되지 않는 것이 아니라 원래부터 변수 리스트에 존재X
3926     */
3927    function fetch(sTemplate, aVars){
3928        var aHtml = sTemplate.split('<!--#-->');
3929        var sHtml = '';
3930        EC$(aHtml).each(function(iIndex, sModuleHtml) {
3931            if (iIndex < 1 || (iIndex % 2) !== 1) {
3932                sHtml += convertHtmlVars(sModuleHtml, aVars);
3933            } else {
3934                var oObj = EC$(sModuleHtml);
3935                var sChildNode = EC$('<div>').append(oObj.children().first().clone()).html();
3936                if (/<!--\$--><!--@-->([\s\S]+)<!--\$-->/gm.test(sModuleHtml) === true) {
3937                    sChildNode = /<!--\$--><!--@-->([\s\S]+)<!--\$-->/gm.exec(sModuleHtml)[1].split('<!--@-->')[0];
3938                }
3939                var sModuleClass = EC$(oObj).attr('class');
3940                var sModuleName = ucfirst(sModuleClass.match(/xans-product-([^- ]+)/)[1]);
3941                if (typeof(aVars['@' + sModuleName]) === 'object') {
3942                    var s = '';
3943                    EC$(aVars['@' + sModuleName]).each(function(i, aData) {
3944                        s += convertHtmlVars(sChildNode, aData);
3945                    });
3946                    if (s !== '') {
3947                        sHtml += EC$('<div>').append(oObj.html(s).clone()).html();
3948                    }
3949                }
3950            }
3951        });
3952        return sHtml;
3953    }
3954    return {
3955        fetch: fetch
3956    };
3957})();
3958
3959
3960//상품 데이터 동적으로 붙이기
3961var IVPrdDynamicCall= IVPrdDynamicCall || {
3962    __IV_DEFAULT_VALUE_FUNCTION_USE : true, //이 함수 사용할 것인지
3963    __IV_DEFAULT_VALUE_AJAX_URL : ['/exec/front/Product/ApiProductNormal', '/exec/front/Product/ApiProductMain'], /* data 호출 url */
3964    __IV_DEFAULT_VALUE_CONDITION_ARRAY : [],
3965    __IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY : [],
3966    __IV_DEFAULT_VALUE_PRDLIST_AJAX_CALL_CUSTOM_DATA : {},
3967    __IV_DEFAULT_VALUE_AJAX_COUNT : 200, //max 200
3968    __IV_DEFAULT_VALUE_MOREBUTTON_TEXT : '+ 더보기',
3969    __IV_DEFAULT_VALUE_CACHE_ITEM_APPEND_CHK_FLAG : null,
3970    __IV_DEFAULT_VALUE_CUSTOM_FUNCTION : null, //custom function 
3971    /**
3972     * @ no : 동적상품영역 고유번호
3973     * @ $basePrdList : 동적상품영역 기준 최상위 엘리먼트 .base_prd_list 
3974     * @ $prdList : 상품이 붙는 영역 (직계 자식으로 상품 추가됨)
3975     * @ basicSettingArray : 카페24 상품 관련 설정 (ajax 호출 페이지 등)
3976     * @ ivSettingArray : IV 커스텀 세팅 설정 
3977     * @ _prdList_categoryList 상품분류 페이지의 일반 상품 진열 영역 > .prdItem_normalBox .base_prd_list
3978     */
3979    _prdList_categoryList : null,
3980    init: function(){ 
3981        IVPrdDynamicCall._prdList_categoryList = IV$('.prdItem_normalBox .base_prd_list')[0];
3982        /**
3983         * .base_prd_list 마크업 기준으로 생성 (필수)
3984         */
3985        IV$('.base_prd_list').each(function(idx, el){
3986            console.log(el, 'elementxs')
3987            let $basePrdList = IV$(el);
3988            let no = IVPrdDynamicCall.getCondition($basePrdList); //호출 조건 세팅 no : 해당 영역 고유 번호 / false : 사용안함
3989            if( no !== false ){
3990                //해당 함수 사용 시
3991                if(IVPrdDynamicCall.__IV_DEFAULT_VALUE_FUNCTION_USE){
3992                    //상품 분류 일반 상품 진열 영역의 경우 큐레이션 동작 아닐때만 실행 
3993                    if(el == IVPrdDynamicCall._prdList_categoryList){
3994                        if(IV_LOCATION_HREF.indexOf('keyword=&search_form') === -1){
3995                            let keyword = IV_LOCATION_HREF.indexOf('keyword=&');
3996                            let cateFilter = IV_LOCATION_HREF.indexOf('%3Fcate_no%3D' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE);
3997                            if(keyword > -1){
3998                                let newLink = IV_LOCATION_HREF;
3999                                if(IV_LOCATION_HREF.indexOf('keyword=&rel_keyword=&') > -1){
4000                                    newLink.replace('keyword=&rel_keyword=','');
4001                                }else{
4002                                    newLink = newLink.replace('keyword=&','');
4003                                };
4004                                history.replaceState(null, null, newLink);  
4005                            };
4006                            let storage_ivCateInfo = sessionStorage.getItem('iv_cate_info');
4007                            let storage_ivCateInfo2 = sessionStorage.getItem('iv_cate_info2');
4008                            let storage_ivCateInfo3 = sessionStorage.getItem('iv_cate_info3');
4009                            try {
4010                                if(typeof storage_ivCateInfo3 === 'string' && typeof storage_ivCateInfo2 !== 'undefined' && typeof storage_ivCateInfo !== 'undefined'){
4011                                    storage_ivCateInfo = JSON.parse(storage_ivCateInfo);
4012                                    storage_ivCateInfo2 =  JSON.parse(storage_ivCateInfo2);
4013                                    storage_ivCateInfo3 =  JSON.parse(storage_ivCateInfo3);
4014                                    var iNowTime = Math.floor(new Date().getTime() / 1000);
4015                                    var iSessionTime = 60 * 5;
4016                                    if(typeof storage_ivCateInfo3 === 'string' && iNowTime - Number(storage_ivCateInfo['saveTime']) < iSessionTime && storage_ivCateInfo['oriCatePage']=== window.location.href){
4017                                        $basePrdList.find('.prdList').html(storage_ivCateInfo3);
4018                                        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no]; //카페24 기본 설정
4019                                        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no]; //IV 커스텀 설정
4020                                        IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no] = storage_ivCateInfo2;
4021                                        basicSettingArray['page'] = 3;
4022                                        if(storage_ivCateInfo['viewType']){
4023                                            IV$('.iv_viewType').find('[data-view="'+ storage_ivCateInfo['viewType'] +'"]').trigger('click');
4024                                        };
4025                                        IVPrdDynamicCall.run(no, $basePrdList);
4026                                    }else{
4027                                        IVPrdDynamicCall.run(no, $basePrdList);
4028                                    };
4029                                }else{
4030                                    IVPrdDynamicCall.run(no, $basePrdList);
4031                                };
4032                            }
4033                            catch (err) {
4034                                console.log(err); 
4035                                sessionStorage.removeItem('iv_cate_info');
4036                                sessionStorage.removeItem('iv_cate_info2');
4037                                sessionStorage.removeItem('iv_cate_info3');
4038                                IVPrdDynamicCall.run(no, $basePrdList);
4039                            };
4040                        };
4041                    }
4042                    //나머지는 @ivuse -> yes 값이 있으면 실행 
4043                    else{
4044                        IVPrdDynamicCall.run(no, $basePrdList);
4045                    };
4046                };
4047            };
4048
4049            /**
4050             * 해당 함수 off되더라도 dom 변경 감지하여, 상품별로 호출해야 하는 함수가 있는 경우 실행될 수 있도록 함
4051             */
4052            if($basePrdList.find('.prdList').length > 0){
4053                var lastObserveFunc = function (a, b, c){
4054                    if (a.isIntersecting) {
4055                        IV$(a.target).removeClass('iv-isIntersecting');
4056                        b.disconnect();
4057                        if(typeof basePrdItemInfoCallCustom !== 'undefined'){
4058                            IVPrdItemInfoCall.init(basePrdItemInfoCallCustom, $basePrdList.find('[id^="anchorBoxId_"]')); //상품별 실행 함수
4059                        }else{
4060                            IVPrdItemInfoCall.init(); //상품별 실행 함수
4061                        };
4062                    }
4063                };
4064                $basePrdList.find('.prdList').iv_observerFunc( function(a,b,c){
4065                    //자식 노드 추가될 때 실행
4066                    var test = $basePrdList[0].querySelectorAll('.prdList > *:not(.done)');
4067                    iv_util.IntersectionObserver(test, {
4068                        root: null, 
4069                        threshold: [0.1],
4070                    }, lastObserveFunc);
4071                } , {
4072                    attributes: false,
4073                    childList: true, /* 자식요소만 변경 감지 */
4074                    subtree: false
4075                });
4076            };
4077        });
4078    },
4079    getCondition : function($basePrdList){
4080        /**
4081         * 주석에 입력된 내용 기반으로 조건 생성
4082         * @ $basePrdList : 기준으로 정보 호출
4083         */ 
4084
4085        //조건 전체
4086        let targetHtml = String($basePrdList.html()); 
4087        let index1 = targetHtml.indexOf('<!--');
4088        let index2 = targetHtml.indexOf('-->');
4089        let condition = targetHtml.slice((index1+4), index2); 
4090        condition = iv_util.removeBlankFunc(condition); 
4091        let useChk = false,  //해당 기능 사용할 것인지 최종확인
4092            sTargetModuleName, //모듈타입
4093            count; //실행 체크 카운트
4094        if(IVPrdDynamicCall.__chkCount){ count = Number(IVPrdDynamicCall.__chkCount); } else { IVPrdDynamicCall.__chkCount = 0; count = 0; } 
4095        //설정 obj
4096        let array1 = {}; //카페24 기본 설정 obj
4097        let array2 = {}; //IV 커스텀 설정 obj
4098
4099        var sum = condition.split(/\s/gi).reduce(function (acc, v, i) {
4100            if(v){
4101                if(v != '' && v!= '\n' && v.indexOf('basket') == -1){
4102                    if(v.indexOf('$') > -1){
4103                        /**
4104                         * 기존 주석옵션 ($)
4105                         */
4106                        let con = v.trim(),
4107                            name = con.split('=')[0].replace('$',''),
4108                            value = con.split('=')[1];
4109                        if(name == 'count' || name == 'sort_method' || name == 'ec_soldout_display' || name == 'cate_no'){
4110                            array1[name] = value;
4111                        }else if(name == 'cache'){
4112                            array1['b_' + name] = value;
4113                        };
4114                    }else if(v.indexOf('@iv') > -1){
4115                        /**
4116                         * 커스텀 옵션 (@)
4117                         */
4118                        let con = v.trim(),
4119                            name = con.split('=')[0].replace('@',''),
4120                            value = con.split('=')[1];
4121                        if(name == 'ivuse' && value == 'yes'){
4122                            useChk = true;
4123                        };
4124                        array2[name] = value;
4125                    };
4126                };
4127            };
4128        },[]);
4129        if(useChk){ 
4130            IVPrdDynamicCall.__chkCount = count + 1;
4131            //필요한 요소이나 주석에 기록하지 않는 항목 추가
4132            array1['first_page'] = 1;
4133            array1['page'] = 1; 
4134            array1['idx'] = count;
4135            let displaygroup = Number($basePrdList.siblings('.base_paginate_container').attr('data-ivdynamic-displyagroup'));  //더보기 버튼에서 가져옴 
4136            if(displaygroup === null || displaygroup === 'undefined' || displaygroup === '' || isNaN(displaygroup)){
4137                array1['display_group'] = 1;
4138            }else{
4139                array1['display_group'] = displaygroup;
4140            };
4141            //상품분류 페이지 일반 상품 영역
4142            if($basePrdList[0] === IVPrdDynamicCall._prdList_categoryList){
4143                array1['cate_no'] = IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE;
4144                array2['ivmodule'] = 'xans-product-listnormal';
4145                array1['sort_method'] = (typeof array1['sort_method'] === 'undefined') ? Number(iv_util.getParameterByName(IV_LOCATION_HREF, 'sort_method')) : array1['sort_method'];
4146            };
4147            //카테고리
4148            if(typeof array1['cate_no'] === 'undefined' || array1['cate_no'] === 0){
4149                array1['cate_no'] = 1;
4150            };
4151            //정렬
4152            if(typeof array1['sort_method'] === 'undefined'){ 
4153                array1['sort_method'] = 0;
4154            };
4155            //모듈 타입
4156            if(typeof array2['ivlink'] !== 'undefined'){
4157                if(array2['ivlink'] === '0'){
4158                    array2['ivmodule'] = 'xans-product-listnormal';
4159                    array2['ivstorage'] = 'sStorageList_' + array1['cate_no'] + '_' +  array1['display_group'];
4160                    if(array1['b_cache'] === 'yes'){
4161                        array1['first_page'] = EC$.cookie('mobile_more_current_page_' + array1['cate_no']);
4162                    };
4163                }else if(array2['ivlink'] === '1'){
4164                    let moduleNumber = $basePrdList[0].classList;
4165                    let moduleNumberChk = function(item){ if(item.indexOf('xans-product-listmain-') > -1){ return true; } }
4166                    moduleNumber = iv_util.onlyNumbFunc(moduleNumberChk);
4167                    array2['ivmodule'] = 'xans-product-listmain-' + moduleNumber;
4168                    array2['ivstorage'] = 'sStorageList_' + moduleNumber;
4169                    if(array1['b_cache'] === 'yes'){
4170                        array1['first_page'] = EC$.cookie('mobile_more_current_page_' + moduleNumber);
4171                    };
4172                }else{
4173                    array2['ivmodule'] = 'iv-dynamic-custom';
4174                };
4175            };
4176            array1['cate_no'] = Number(array1['cate_no']);
4177            array1['count'] = Number(array1['count']);
4178            array1['sort_method'] = Number(array1['sort_method']);
4179            IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[count] = array1; //카페24 기본 설정 
4180            IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[count] = array2; //IV 커스텀 설정
4181            $basePrdList.attr({'data-ivdynamic-idx' : count, //고유번호
4182                               'data-ivdynamic-init' : count 
4183                              }).addClass('iv_dynamic_prdList_' + count); //고유 클래스
4184            return count; 
4185        } else { 
4186            return false; //사용안하는 경우 false return 
4187        };
4188    },
4189    setData : function(no){
4190        /**
4191         * 데이터 세팅
4192         */
4193        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no]; //카페24 기본 설정 
4194        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no]; //IV 커스텀 설정
4195        let moredata = basicSettingArray; //ajax를 요청하기 위한 data obj
4196        return moredata;
4197    },
4198    sModuleHtmlForVDOM : function(sTargetModuleName, sPos){
4199        /**
4200         * VDOM에서 모듈 템플릿 호출 
4201         */
4202        var sModuleHtmlForVDOM = CAFE24.FRONT_XANS_TEMPLATE.getTemplateForVDOM(sTargetModuleName);
4203        var $li = EC$.fn[sPos].apply(EC$(sModuleHtmlForVDOM).find('ul').first().children('li'));
4204        $li.removeClass('on');
4205        var sLiHtmlForVDOM = EC$('<ul>').append($li).html();
4206        return CAFE24.FRONT_XANS_TEMPLATE.convertVDomHtmlToHTML(sLiHtmlForVDOM);
4207    },
4208    getLiTemplate : function(sTargetModuleName, prdData){
4209        /**
4210         * 데이터/템플릿에서 li템플릿 호출
4211         */
4212        var sFirstLiTemplate = IVPrdDynamicCall.sModuleHtmlForVDOM(sTargetModuleName, 'first');
4213        var sLiTemplate = IVPrdDynamicCall.sModuleHtmlForVDOM(sTargetModuleName, 'last');
4214        var aHtml = [];
4215        var sTemplate = sLiTemplate;
4216        EC$(prdData).each(function(iIndex, aVar) {
4217            if (iIndex === 0) {
4218                sTemplate = sFirstLiTemplate;
4219            } else {
4220                sTemplate = sLiTemplate;
4221            };
4222            aHtml.push(IV_FRONT_XANS_INTERPRETER.fetch(sTemplate, aVar));
4223            //aHtml.push(CAFE24.FRONT_XANS_INTERPRETER.fetch(sTemplate, aVar));
4224        });
4225        var sHtml = aHtml.join('');
4226        return sHtml;
4227    },
4228    run : function(no, $basePrdList){
4229        /**
4230         * 상품 동적 호출 시작
4231         * @ no : 영역별 고유 번호
4232         * @ $basePrdList : .base_prd_list
4233         */
4234        let $prdList; //상품이 붙을 영역
4235        let $basicButton = $basePrdList.siblings('[class*="xans-product-listmore"]'); //기존 더보기 버튼 (base_prd_list 다음 요소여야 정상 동작)
4236        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no]; //카페24 기본 설정
4237        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no]; //IV 커스텀 설정
4238        let moredata = IVPrdDynamicCall.setData(no); //ajax 호출 요청 시 필요한 데이터
4239        let ajaxLink = IVPrdDynamicCall.__IV_DEFAULT_VALUE_AJAX_URL[Number(ivSettingArray.ivlink)]; //ajax 링크
4240        let defaultViewCount =  moredata['count']; //기본 노출 수 
4241        let pageChk = moredata['page'];
4242        let type = ivSettingArray.ivmoretype; //더보기 출력 방식(페이지네이션/더보기/무한스크롤/swi
4242pe)
4243        let sTargetModuleName = ivSettingArray['ivmodule'];
4244        let sStorageListName = ivSettingArray['ivstorage'];
4245        let sStorageListData;
4246        let chkCount = pageChk; //ajax 호출 완료 체크용
4247        let typeChk; 
4248        let lastPageChk = 0;
4249        let lastPageNum;
4250        let resultType = true;
4251        
4252        /**
4253         * 고유번호별 데이터 저장 위치 지정
4254         */
4255        if(typeof IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no] === 'undefined'){
4256            IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no] = [];
4257        };
4258        /**
4259         * 기존 더보기 버튼 유무에 따라 호출 방식 지정
4260         * @ seq 동기 호출
4261         * @ async 비동기 호출
4262         */
4263        if($basicButton.length > 0){
4264            $basicButton.hide(); //기존 버튼 감춤
4265            if(sTargetModuleName.indexOf('xans-product-listmain') > -1 && Number(basicSettingArray['display_group']) != 0){
4266                typeChk = 'seq';
4267            }else{
4268                typeChk = 'async';
4269            };
4270        }else{
4271            typeChk = 'seq';
4272        };
4273        //필터 사용 여부 
4274        let filterUseChk = false;
4275        if(($basePrdList.attr('data-ivdynamic-connect') !== 'undefined') && (typeof ivSettingArray.ivfilter !== 'undefined') ){
4276            filterUseChk = true;	
4277        }
4278        $basePrdList.attr('data-ivdynamic-type', type);
4279        let testchkCount = 0;
4280        /**
4281         * 캐시 저장 유무에 따른 분류 
4282         */
4283        if(Number(basicSettingArray['first_page']) !== 1 && basicSettingArray.b_cache =='yes'){
4284            ( storageDataChk = function(){
4285                try {
4286                    sStorageListData = sessionStorage.getItem(sStorageListName);
4287                    if(sStorageListData){
4288                        //console.log('캐시 사용하고 있고 세션에 데이터 있음');
4289                        IVPrdDynamicCall.displayMore(ajaxLink, '', moredata, defaultViewCount, true).then(function(res) {
4290                            IVPrdDynamicCall.__IV_DEFAULT_VALUE_CACHE_ITEM_APPEND_CHK_FLAG = 'wait'; //캐시사용시 상품 append flag 시작
4291                            callDataNormal();
4292                        });
4293                    }else{
4294                        testchkCount++;
4295                        if(testchkCount < 5){
4296                            setTimeout(function(){storageDataChk();},100);
4297                        }else{
4298                            //console.log('캐시 사용하고 있는데 세션에 데이터 없음');
4299                            IVPrdDynamicCall.__IV_DEFAULT_VALUE_CACHE_ITEM_APPEND_CHK_FLAG = false; //캐시사용시 상품 append flag 필요X
4300                            callDataNormal();
4301                        };
4302                    };
4303                } catch (e) {
4304                }
4305            })();
4306        }else{
4307            //console.log('첫번째 호출이거나 캐시 저장 기능 사용안함');
4308            IVPrdDynamicCall.__IV_DEFAULT_VALUE_CACHE_ITEM_APPEND_CHK_FLAG = false; //캐시사용시 상품 append flag 필요X
4309            callDataNormal();
4310        };
4311        /**
4312         * 영역타입별 상품 호출
4313         */
4314        function callDataNormal(){
4315            //상품 분류 페이지 일반 상품 영역
4316            if($basePrdList[0] == IVPrdDynamicCall._prdList_categoryList){
4317                callData();
4318            }
4319            //상품 분류 페이지의 일반 상품 영역이 아닌 경우 
4320            else{
4321                let testData = JSON.parse(JSON.stringify(moredata));
4322                testData['page'] = 1;
4323                IVPrdDynamicCall.displayMore(ajaxLink, '', testData, defaultViewCount, true).then(function(res) {
4324                    let prdData = res;
4325                    $basePrdList.find('.prdList').html(IVPrdDynamicCall.getLiTemplate(sTargetModuleName, res));
4326                    callData();
4327                });
4328            };
4329        };
4330        /**
4331         * 더보기 방식에 따라 분기처리
4332         */
4333        function callData(){
4334            /**
4335             * @ page : 페이지네이션
4336             * @ button : 더보기 버튼
4337             * @ scroll : 무한스크롤
4338             * @ swipe : swiper 
4339             */
4340            switch(type){
4341                case 'page' :
4342                    $prdList = $basePrdList.find('.prdList');
4343                    ( dataCall = function(){
4344                        if(typeChk === 'seq'){
4345                            call_seq(resultType);
4346                        }else{
4347                            call_async(resultType);
4348                        };
4349                    })();
4350                    break;
4351                case 'button' :
4352                    $basicButton.hide();
4353                    $prdList = $basePrdList.find('.prdList');
4354                    if(typeChk === 'seq'){
4355                        call_seq(resultType);
4356                    }else{
4357                        call_async(resultType);
4358                        //filterUseChk = false;
4359                    };
4360                    break;
4361                case 'scroll' :
4362                    $basicButton.hide();
4363                    $prdList = $basePrdList.find('.prdList');
4364                    if(typeChk === 'seq'){
4365                        call_seq(resultType);
4366                    }else{
4367                        call_async(resultType);
4368                    };
4369                    filterUseChk = false;
4370                    break;
4371                case 'swipe' :
4372                    filterUseChk = false;
4373                    $basicButton.hide();
4374                    $prdList = $basePrdList.find('.prdList');
4375                    //sessionStorage.removeItem(sStorageListName);
4376                    resultType = false;
4377                    if(! $prdList.hasClass('swiper-wrapper')){
4378                        $prdList.addClass('iv_swiper');
4379                        $prdList.attr('data-ivswipe-name', 'ivdynamic'+no);
4380                        $prdList.attr('data-ivswipe-custom', 'false');
4381                        $prdList.attr('data-ivswipe-module', 'scrollbar');
4382                        callDataNormal_Swipe();
4383                    }else{
4384                        callDataNormal_Swipe();
4385                    };
4386                    function callDataNormal_Swipe(){
4387                        call_async(resultType).then(function(resFin) {
4388                            $prdList.iv_swiperFunc();
4389                            let swiperName = $prdList.attr('data-ivswipe-name');
4390                            $prdList.children().addClass('on');
4391                            let beforeLength = $prdList.children().filter('[data-prd]').length;
4392                            let sliceArray = IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no].slice(beforeLength, beforeLength+Number(defaultViewCount));
4393                            if(sliceArray.length > 0){
4394                                $prdList.append(IVPrdDynamicCall.getLiTemplate(sTargetModuleName, sliceArray));
4395                                $prdList.children().addClass('on');
4396                            };
4397                            window[swiperName].on('reachEnd',function(){
4398                                let beforeLength = $prdList.children().filter('[data-prd]').length;
4399                                let sliceArray = IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no].slice(beforeLength, beforeLength+Number(defaultViewCount));
4400                                if(sliceArray.length > 0){
4401                                    $prdList.append(IVPrdDynamicCall.getLiTemplate(sTargetModuleName, sliceArray));
4402                                    $prdList.children().addClass('on');
4403                                };
4404                            });
4405                        });
4406                    };
4407                    if(typeof IVPrdDynamicCall.__IV_DEFAULT_VALUE_CUSTOM_FUNCTION === 'function'){
4408                        IVPrdDynamicCall.__IV_DEFAULT_VALUE_CUSTOM_FUNCTION();
4409                    };
4410                    IVPrdDynamicCall.initAfter();
4411                    $basePrdList.addClass('ivdynamic-done');
4412                    break;
4413                default :
4414                    break;
4415            };
4416            if(filterUseChk === false){
4417                var connect = $basePrdList.attr('data-ivdynamic-connect');
4418                if(typeof connect !== 'undefined'){
4419                    var $curation = IV$('#iv_dynamic_curation[data-ivdynamic-connect="'+ connect +'"]:not(.done)');
4420                    var $filter = IV$('.iv_dynamic_filter[data-ivdynamic-connect="'+ connect +'"]:not(.done)');
4421                    $curation.addClass('displaynone');
4422                    $filter.addClass('displaynone');
4423                }
4424            };
4425            //순차 연쇄 실행
4426            function call_seq(resultType){
4427                return new Promise(function (resFin, rejFin) {
4428                    let count = Number(IVPrdDynamicCall.__IV_DEFAULT_VALUE_AJAX_COUNT);
4429                    ( seqDataCall = function(){
4430                        IVPrdDynamicCall.displayMore(ajaxLink, '', moredata, count).then(function(res) {
4431                            if(res != 'end'){
4432                                moredata['page'] = Number(moredata['page']) + 1;
4433                                chkCount++;
4434                                seqDataCall();
4435                            }else{
4436                                resFin(true);
4437                            };
4438                        });
4439                    })();
4440                }).then(function(resFin){
4441                    IVPrdDynamicCall.dynamicDataEnd(no, $basePrdList, moredata, type);
4442                });
4443            };
4444            //비동기 연쇄 실행
4445            function call_async(resultType){
4446                console.log('비동기 연쇄 실행');
4447                return new Promise(function (resFin, rejFin) {
4448                    let count = Number(IVPrdDynamicCall.__IV_DEFAULT_VALUE_AJAX_COUNT); //한 번 호출 실행 시 호출할 상품 수 
4449                    //sessionStorage.removeItem(sStorageListName);
4450                    let maxPrdCount;
4451                    let test = Number($basicButton.find('[id^="more_total_page"]').text()); //더보기 버튼에 적힌 마지막 페이지 숫자
4452                    maxPrdCount = Number($basicButton.find('[id^="more_total_page"]').text()) * defaultViewCount; //페이지 기준 최대 수량 
4453                    let callCount = Math.ceil(maxPrdCount/Number(IVPrdDynamicCall.__IV_DEFAULT_VALUE_AJAX_COUNT)); //필요한 ajax 호출 횟수
4454                    if(pageChk > callCount){
4455                        callCount = pageChk;
4456                    };
4457                    if(callCount > 0){ 
4458                        for(let i=pageChk; i<=callCount; i++){
4459                            moredata['page'] = i;
4460                            IVPrdDynamicCall.displayMore(ajaxLink, '', moredata, count).then(function(res) {
4461                                if(chkCount == callCount){
4462                                    resFin(true);
4463                                }else{
4464                                    chkCount++;
4465                                };
4466                            });
4467                        };
4468                    };
4469                }).then(function(resFin){
4470                    IVPrdDynamicCall.dynamicDataEnd(no, $basePrdList, moredata, type);
4471                });
4472            };
4473        };
4474    },
4475    displayMore : function(url, $prdList, moredata, customCount, dataChk){
4476        /**
4477         * 상품데이터 호출
4478         * url : 호출 url
4479         * $prdList : 상품이 붙을 영역
4480         * moredata : 상품을 호출하기 위한 data
4481         * customCount : 호출 수 커스텀 (있을 경우)
4482         * dataChk : 데이터 체크 flag true : 데이터 return / false : 상품 데이터 append
4483         */
4484        let ajaxData =  JSON.parse(JSON.stringify(moredata)); // 최종호출 data
4485        let idx;
4486        if(typeof moredata['idx'] !== 'undefined'){
4487            idx = moredata['idx'];
4488            delete ajaxData['idx'];
4489        }else{
4490            idx = 999;
4491            delete ajaxData['ivmodule'];
4492        };
4493        let pageChk =  moredata['page'];
4494        delete ajaxData['first_page'];
4495        let count = moredata['count'];
4496        if(typeof customCount !== 'undefined'){
4497            ajaxData['count'] = customCount; 
4498        };
4499        if(moredata['cate_no'] === 1){
4500            delete ajaxData['cate_no'];
4501        };
4502        let sStorageListName;
4503        let sStorageListData;
4504        if(typeof moredata['display_group'] !== 'undefined'){
4505            sStorageListName = 'sStorageList_' + moredata['display_group'];
4506        };
4507        if(typeof moredata['cate_no'] !== 'undefined'){
4508            sStorageListName = 'sStorageList_' + moredata['cate_no'] + '_' + moredata['display_group'];
4509        };
4510        try {
4511            sStorageListData = sessionStorage.getItem(sStorageListName);
4512        } catch (e) {
4513        };
4514        return new Promise(function (res, rej) {
4515            IV$.ajax({
4516                url: url,
4517                type: 'GET',
4518                dataType: 'json',
4519                data: ajaxData,
4520                success: function (data) {
4521                    var prdData = data["rtn_data"]["data"];
4522                    if(prdData != null){
4523                        if (prdData.length) {
4524                            if(dataChk){
4525                                if (sStorageListData !== null && idx !== 999) {
4526                                    IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + idx] = prdData;
4527                                };
4528                                if(data['rtn_data'].end){
4529                                    res('end');
4530                                }else{
4531                                    res(prdData);
4532                                };
4533                            }else{
4534                                if(idx !== 999){
4535                                    prdData.forEach(function(e, i){
4536                                        let num = ((pageChk-1)*Number(customCount)) + i;
4537                                        if(IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + idx]){
4538                                            IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + idx][num] = e;
4539                                        };
4540                                    });
4541                                }else{
4542                                    if(typeof $prdList !== 'undefined'){
4543                                        if($prdList !== ''){
4544                                            let sTargetModuleName;
4545                                            if(IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[idx]){
4546                                                sTargetModuleName = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[idx]['ivmodule'];
4547                                            }else{
4548                                                sTargetModuleName = moredata['ivmodule'];
4549                                            };
4550                                            $prdList.append(IVPrdDynamicCall.getLiTemplate(sTargetModuleName, prdData));
4551                                        }
4552                                    };
4553                                };
4554                                if(data['rtn_data'].end){
4555                                    res('end');
4556                                }else{
4557                                    if($prdList !== ''){
4558                                        res('continue');
4559                                    }else{
4560                                        res(prdData);
4561                                    }
4562                                };
4563                            };
4564                        };
4565                    }else{
4566                        res('end');
4567                    };
4568                },
4569                error:function(request,status,error){
4570                    console.log("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
4571                }
4572            });
4573        });
4574    },
4575    makeMoreButton: function(no, $basePrdList, moredata){
4576        /**
4577         * 더보기 버튼 생성 
4578         */
4579        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no];
4580        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no];
4581        let prdListData = IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no];
4582        let startNum = basicSettingArray.first_page;
4583        let lastNum;
4584        let $basicButton = $basePrdList.siblings('[class*="xans-product-listmore"]');
4585        $basicButton.hide();
4586        let count = Number(basicSettingArray.count);
4587        if(prdListData){
4588            lastNum = Math.ceil(prdListData.length/count);
4589        }else{
4590            lastNum = $basicButton.find('[id^="more_total_page"]').text();
4591        };
4592        if(startNum >= lastNum){
4593            startNum = lastNum;
4594        };
4595        let $moreButtonHtml = '<div class="base_paginate_container iv_dynamic_moreButton" data-ivdynamic-page="'+ startNum +'" data-ivdynamic-count="'+ count +'" data-ivdynamic-idx="'+ no +'" data-ivdynamic-last="'+ lastNum +'" ><div class="iv_button">';
4596        $moreButtonHtml += '<a href="javascript:void(0);"><span>'+ IVPrdDynamicCall.__IV_DEFAULT_VALUE_MOREBUTTON_TEXT +'</span>';
4597        $moreButtonHtml += '<span id="more_current_page_iv_dynamic_'+ no +'">'+ startNum +'</span>/<span id="more_total_page_iv_dynamic_'+ no +'">'+ lastNum +'</span>';
4598        $moreButtonHtml = IV$($moreButtonHtml);
4599        if(startNum >= lastNum){ $moreButtonHtml.hide(); };
4600        $moreButtonHtml.insertAfter($basePrdList);
4601        IVPrdDynamicCall.clickButton(no, $basePrdList, moredata);
4602        let typeChk = $basePrdList.attr('data-ivdynamic-type');
4603        if((typeChk !== 'button') || (typeChk === 'button' && lastNum == 1)){ $moreButtonHtml.hide(); }
4604        IVPrdDynamicCall.filter(no, $basePrdList);
4605    },
4606    makePagination: function(no, $basePrdList, moredata){
4607        /**
4608         * 페이지네이션 생성
4609         */
4610        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no];
4611        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no];
4612        let prdListData = IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no];
4613        let $basicButton = $basePrdList.siblings('[class*="xans-product-listmore"]');
4614        let lastNum;
4615        let count = Number(basicSettingArray.count);
4616        if(prdListData){
4617            lastNum = Math.ceil(prdListData.length/count);
4618        }else{
4619            lastNum = $basicButton.find('[id^="more_total_page"]').text();
4620        };
4621        if(typeof moredata !== 'undefined'){
4622            IVPrdDynamicCall.saveCache(moredata, lastNum);
4623        };
4624        let $paginate = IV$('.iv_dynamic_paginate[data-ivdynamic-idx="'+no+'"]'); //페이지네이션 element
4625        //기존 페이지네이션 갱신
4626        if($paginate.length > 0){
4627            let chkLast = Number($paginate.attr('data-ivdynamic-last')); //마지막 페이지 
4628            let chkCount = Number($paginate.attr('data-ivdynamic-count')); //페이지 당 보이는 상품 수
4629            let chkLimit = Number($paginate.attr('data-ivdynamic-limit')); //페이지네이션 생성 시 리밋 (ex 리밋 5 -> 페이지네이션 번호 1,2,3,4,5 / 6,7,8,9,10, 리밋 3 -> 페이지네이션 번호 1,2,3 / 4,5,6 )
4630            let chkPage = Number($paginate.attr('data-ivdynamic-page')); //현재 보는 페이지 번호
4631            let $pagination = $paginate.find('ol'); //페이지네이션 번호 목록 
4632            let newViewEnd = Math.ceil(chkPage/chkLimit)*chkLimit; //새로 갱신 시 마지막 페이지네이션 목록 번호 
4633            let newViewStart = newViewEnd - chkLimit; //새로 갱신 시 최초 페이지네이션 목록 번호 
4634            if(newViewEnd > chkLast){ 
4635                newViewEnd = chkLast;
4636            };
4637            let $pageAll = '';
4638            for(var i=newViewStart; i<newViewEnd; i++){
4639                let $page = '<li><a href="javascript:void(0);" data-page="'+ (i+1) +'">'+ (i+1) +'</a></li>';
4640                if(i==0){
4641                    $page = '<li class="on"><a href="javascript:void(0);" class="this" data-page="'+ (i+1) +'">'+ (i+1) +'</a></li>';
4642                }else{
4643                    $page = '<li><a href="javascript:void(0);" data-page="'+ (i+1) +'">'+ (i+1) +'</a></li>';
4644                };
4645                $pageAll += $page;
4646            };
4647            $pagination.html($pageAll);
4648        }
4649        //페이지네이션 최초 생성 
4650        else{
4651            let pageViewLimit = Number(ivSettingArray.ivpage); //페이지네이션 생성 시 리밋 (ex 리밋 5 -> 페이지네이션 번호 1,2,3,4,5 / 6,7,8,9,10, 리밋 3 -> 페이지네이션 번호 1,2,3 / 4,5,6 )
4652            let $paginationHtml = IV$('<div class="base_paginate_container iv_dynamic_paginate" data-ivdynamic-page="1" data-ivdynamic-count="'+ basicSettingArray.count +'" data-ivdynamic-idx="'+ no +'" data-ivdynamic-last="'+ lastNum +'" data-ivdynamic-limit="'+ pageViewLimit +'"></div>');
4653            let $goFirst = IV$('<a href="javascript:void(0);" class="first" data-page="1">first</a>');
4654            let $goPrev = IV$('<a href="javascript:void(0);" class="prev" data-page="1"></a>');
4655            let $pagination = IV$('<ol></ol>');
4656            let makePage = pageViewLimit;
4657            if(lastNum<pageViewLimit){
4658                makePage = lastNum;
4659            };
4660            let $pageAll = '';
4661            for(var i=0; i<makePage; i++){
4662                let $page = '<li><a href="javascript:void(0);" data-page="'+ (i+1) +'">'+ (i+1) +'</a></li>';
4663                if(i==0){
4664                    $page = '<li class="on"><a href="javascript:void(0);" class="this" data-page="'+ (i+1) +'">'+ (i+1) +'</a></li>';
4665                }else{
4666                    $page = '<li><a href="javascript:void(0);" data-page="'+ (i+1) +'">'+ (i+1) +'</a></li>';
4667                };
4668                $pageAll += $page;
4669            };
4670            $pagination.html($pageAll);
4671            let $goNext = IV$('<a href="javascript:void(0);" class="next" data-page="2">next</a>');
4672            let $goLast = IV$('<a href="javascript:void(0);" class="last" data-page="'+ lastNum +'">last</a>');
4673            $paginationHtml.append($goFirst, $goPrev, $pagination, $goNext, $goLast);
4674            $paginationHtml.insertAfter($basePrdList);
4675            $paginate = $paginationHtml;
4676            //최초 필터링 
4677            IVPrdDynamicCall.filter(no, $basePrdList);
4678        };
4679        //페이지네이션 a태그 클릭 시 data-page값에 맞춰 이동
4680        $paginate.find('a').off().on('click',function(){
4681            let page = Number($(this).attr('data-page'));
4682            IVPrdDynamicCall.goPage(no, page, $basePrdList);
4683        });
4684    },
4685    goPage : function(no, page, $basePrdList){
4686        /**
4687         * 페이지네이션 페이지 이동 
4688         */
4689        page = Number(page);
4690        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no];
4691        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no];
4692        let $paginate = $basePrdList.siblings('.iv_dynamic_paginate[data-ivdynamic-idx="'+no+'"]'); //페이지네이션 
4693        let viewCount = Number(basicSettingArray.count); //한 페이지 당 보이는 상품 수 
4694        let maxCount = Number($paginate.attr('data-ivdynamic-last')); //마지막 페이지 
4695        let limitCountMin = Number($paginate.find('ol li:first-child a').attr('data-page')); //페이지 목록 첫번째 
4696        let limitCountMax = Number($paginate.find('ol li:last-child a').attr('data-page')); //페이지 목록 마지막 
4697        let lastViewIndex = viewCount*page - 1;
4698        let startViewIndex = lastViewIndex - viewCount + 1;
4699        let nextpage;
4700        let prevpage;
4701        //현재 보이는 페이지네이션 목록 범위에 이동 페이지 내용이 없다면 다시 목록 생성 
4702        $paginate.attr('data-ivdynamic-page',page);
4703        if((page > limitCountMax) || (page < limitCountMin)){
4704            IVPrdDynamicCall.makePagination(no, $basePrdList);
4705        };
4706        //페이지네이션에 이동 후 페이지 내용 갱신 
4707        $paginate.find('ol a[data-page]').removeClass('this');
4708        $paginate.find('ol a[data-page]').parent().removeClass('on');
4709        $paginate.find('ol a[data-page="'+ page +'"]').addClass('this');
4710        $paginate.find('ol a[data-page="'+ page +'"]').parent().addClass('on');
4711        nextpage = ((page+1) > maxCount) ? maxCount : page+1;
4712        prevpage = ((page-1) < 1) ? 1 : page-1;
4713        $paginate.find('.next').attr('data-page', nextpage);
4714        $paginate.find('.prev').attr('data-page', prevpage);
4715        //페이지 갱신 내용에 맞춰 상품 display 변경
4716        IVPrdDynamicCall.replaceState($basePrdList, page);
4717        let condition = function(v, i){
4718            if(i >= startViewIndex && i <= lastViewIndex ){
4719                return true;
4720            }else{
4721                return false;
4722            };
4723        };
4724        IVPrdDynamicCall.filtering(no, condition, $basePrdList);
4725    },
4726    clickButton : function(no, $basePrdList, moredata){
4727        /**
4728         * 더보기 버튼 클릭 시 
4729         */
4730        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no];
4731        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no];
4732        let prdListData = IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA' + no];
4733        let lastNum;
4734        let $basicButton = $basePrdList.siblings('[class*="xans-product-listmore"]');
4735        let count = Number(basicSettingArray.count);
4736        if(prdListData){
4737            lastNum = Math.ceil(prdListData.length/count);
4738        }else{
4739            lastNum = $basicButton.find('[id^="more_total_page"]').text();
4740        };
4741        let ajaxLink = IVPrdDynamicCall.__IV_DEFAULT_VALUE_AJAX_URL[Number(ivSettingArray.ivlink)];
4742        let $moreButton = $basePrdList.siblings('.iv_dynamic_moreButton[data-ivdynamic-idx="'+no+'"]');
4743        $moreButton['bLoading'] = true;
4744
4745        if(typeof prdListData !== 'undefined'){
4746            $moreButton.off().on('click',function(){
4747                let nowPage = Number($moreButton.attr('data-ivdynamic-page'));
4748                let nextPage = nowPage + 1;
4749                let viewCount = Number($moreButton.attr('data-ivdynamic-count'));
4750                let maxCount = Number($moreButton.attr('data-ivdynamic-last'));
4751                let lastViewIndex = nextPage * viewCount - 1;
4752                let condition = function(v, i){
4753                    if(i <= lastViewIndex ){
4754                        return true;
4755                    }else{
4756                        return false;
4757                    };
4758                };
4759                IVPrdDynamicCall.replaceState($basePrdList, nextPage);
4760                IVPrdDynamicCall.filtering(no, condition, $basePrdList);
4761                if(nextPage >= maxCount){
4762                    $moreButton.hide();
4763                    $moreButton.addClass('displaynone');
4764                }else{
4765                    IVPrdDynamicCall.infinitScroll(no, $basePrdList, $moreButton);
4766                };
4767                if(nextPage <= maxCount){
4768                    $moreButton.attr('data-ivdynamic-page', nextPage);
4769                    $moreButton.find('[id^="more_current_page"]').text(nextPage);
4770                    IVPrdDynamicCall.saveCache(moredata, nextPage);
4771                };
4772            });
4773        }else{
4774            $moreButton.off().on('click',function(){
4775                if(! $moreButton['bLoading']){
4776                    console.log('호출 기능 비활성화');
4777                }else{
4778                    console.log('호출 기능 활성화');
4779                    let nowPage = Number($moreButton.attr('data-ivdynamic-page'));
4780                    let nextPage = nowPage + 1;
4781                    let viewCount = Number($moreButton.attr('data-ivdynamic-count'));
4782                    let maxCount = Number($moreButton.attr('data-ivdynamic-last'));
4783                    moredata['page'] = nextPage;
4784                    $moreButton['bLoading'] = false;
4785                    //현재 주소줄 내용 갱신 ---> 상품 분류 페이지 & 일반 상품 영역 일 경우에만
4786                    IVPrdDynamicCall.replaceState($basePrdList, nextPage);
4787                    IVPrdDynamicCall.displayMore(ajaxLink, $basePrdList.find('.prdList'), moredata).then(function(res) {
4788                        $moreButton['bLoading'] = true;
4789                        if(res == 'end'){
4790                            $moreButton.hide();
4791                            $moreButton.addClass('displaynone');
4792                            $moreButton['bLoading'] = false;
4793                        }else{
4794                            $moreButton.find('[id^="more_current_page"]').text(nextPage);
4795                            $moreButton.attr('data-ivdynamic-page', nextPage)
4796                            IVPrdDynamicCall.infinitScroll(no, $basePrdList, $moreButton);
4797                        };
4798                        if(nextPage <= maxCount){
4799                            IVPrdDynamicCall.saveCache(moredata, nextPage);
4800                        };
4801                    });
4802                };
4803            });
4804        };
4805    },
4806    infinitScroll : function(no, $basePrdList, $moreButton){
4807        /**
4808         * 무한스크롤 방식일 경우
4809         */
4810        if($basePrdList.attr('data-ivdynamic-type') === 'scroll'){
4811            let basicTag = $basePrdList.find('.prdList').children('[data-prd]').eq(0)[0].tagName.toLowerCase();
4812            if(! $moreButton.hasClass('displaynone')){
4813                var lastObserveFunc = function (a, b, c){
4814                    if (a.isIntersecting) {
4815                        IV$(a.target).removeClass('iv-isIntersecting');
4816                        b.disconnect();
4817                        $moreButton.trigger('click');
4818                    };
4819                };
4820                let findlastElidx = $basePrdList.find('.prdList').children().filter('.filter-chk').last().index();
4821                let findlastEl = '.iv_dynamic_prdList_'+ no +' .prdList > ' + basicTag + ':nth-child('+ findlastElidx +')';
4822                iv_util.IntersectionObserver(document.querySelectorAll(findlastEl), {
4823                    root: null, 
4824                    threshold: [0.95],
4825                }, lastObserveFunc);
4826            }else{
4827                return false;
4828            };
4829        }else{
4830            return false;
4831        };
4832    },
4833    dynamicDataEnd : function(no, $basePrdList, moredata, type){
4834        /**
4835         * 데이터 호출 끝난 후 (페이지네이션 생성 / 더보기 버튼 생성)
4836         */
4837        switch(type){
4838            case 'page' : 
4839                IVPrdDynamicCall.makePagination(no, $basePrdList, moredata);
4840                break;
4841            case 'button' : case  'scroll' :
4842                IVPrdDynamicCall.makeMoreButton(no, $basePrdList, moredata);
4843                break;
4844            case 'swipe' :
4845                break;
4846            default :
4847                break;
4848        };
4849    },
4850    saveCache : function(moredata, count){
4851        //캐시 저장 기능 사용 시 
4852        if(typeof moredata['b_cache'] !== 'undefined'){
4853            if(moredata['cate_no']){
4854                EC$.cookie('mobile_more_current_page_' + moredata['cate_no'], (count), { expires: 1 });
4855            }else{
4856                EC$.cookie('mobile_more_current_page_' + moredata['display_group'], (count), { expires: 1 });
4857            };
4858        };
4859    },
4860    filtering : function(no, condition, $basePrdList){
4861        
4862        /**
4863         * 상품 목록 필터링
4864         * @ prdListData : no 기준 상품 데이터
4865         * @ $prdList : 상품 목록이 붙는 영역
4866         * @ gridMax : 상품 목록 grid 기준 (class 부여 기준)
4867         */
4868        let prdListData = IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA'+no], // 해당 카테고리 안에 있는 애들 obj 불러 옴,,,,,,,,,
4869            $prdList = $basePrdList.find('.prdList'),
4870            gridMax; 
4871        if($basePrdList.find('.iv_dynamic_nodata')){$basePrdList.find('.iv_dynamic_nodata').remove();}
4872        let gridClassChk = function(item){ if(item.indexOf('grid') > -1){ return true; } }
4873        let gridClassList = $prdList[0].classList.value.split(' ');
4874        if(gridClassList){
4875            gridMax = iv_util.onlyNumbFunc(gridClassList.filter(gridClassChk)) - 1;
4876        };
4877        if(gridMax == -1){
4878            gridMax = 1;	
4879        };
4880        let num = 0;
4881        let viewIndex = 0;
4882        let result = [];
4883        result = prdListData.reduce(function(acc, v, i, arr){
4884            let $prdEl = $prdList.children('[id^="anchorBoxId_"]').eq(i);
4885            if($prdEl.length > 0){
4886                let nClassChk = function(item){ if(item.indexOf('n') == 0){ return true; } }
4887                let nClass = $prdEl[0].classList.value.split(' ').filter(nClassChk);
4888                $prdEl.removeClass('on last-view even filter-chk '+ nClass).removeAttr('data-view-index').removeAttr('data-view-last-index');
4889            };
4890            if(condition(v,i) !== false){
4891                if(num > gridMax){ 
4892                    num = 0;
4893                    num++;
4894                }else{ 
4895                    num++; 
4896                };
4897                let addClass = '';
4898                if(num == 2 && gridMax == 1){
4899                    addClass = 'even';
4900                };
4901                $prdEl.addClass('on filter-chk n'+num + ' ' + addClass);
4902                viewIndex++;
4903                acc[i] = i;
4904                return acc;
4905            }else{
4906                return acc;
4907            };
4908        },[]);
4909        if(result.length == 0){
4910            $basePrdList.append('<div class="iv_base_nodata iv_dynamic_nodata"><p>결과가 없습니다.</p></div>');
4911        }else{
4912            let chkNum = 0;
4913            let lastIndex = (viewIndex - 1);
4914            result.forEach(function(e,i){
4915                
4916                
4917                if(chkNum == 0){
4918                    $prdList.children().eq(e).addClass('first-view');
4919                }else if(chkNum==lastIndex){
4920                    $prdList.children().eq(e).addClass('last-view');
4921                }
4922                $prdList.children().eq(e).attr({
4923                    'data-view-index': chkNum,
4924                    'data-view-last-index' : lastIndex - chkNum
4925                });
4926                chkNum++;
4927            });
4928        };
4929
4930        let IV_FILTERING_CALL_END = new CustomEvent('IVFilteringEnd', {'detail': result });
4931        $basePrdList[0].dispatchEvent(IV_FILTERING_CALL_END);
4932
4933        return result;
4934        
4935    },    
4936    filter : function(no, $basePrdList){
4937        /**
4938         * @ prdListData : no 기준 상품 데이터
4939         */
4940        
4941        let ivSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_IVSETTING_CONDITION_ARRAY[no];
4942        let basicSettingArray = IVPrdDynamicCall.__IV_DEFAULT_VALUE_CONDITION_ARRAY[no];
4943        let prdListData = IVPrdDynamicCall['__IV_DEFAULT_VALUE_PRDLIST_ALL_DATA'+no]; // 여기서도 해당 데이터 불러옴
4944        //console.log(prdListData, '해당 페이지 상품 불러오기');
4945        /********************************        필터 메뉴 커스텀                ******************************************/
4946
4947        var filterOptinSet = []; // 현재 페이지에 들어가있는 상품 필터 옵션값 들..
4948        var cateNumberArry = []; // 카테 넘버 값 박아올 배열 ..
4949        var realFilterArry = []; // 실제 페이지에 들어갈 상품 필터..
4950        var filterOptinUniqueArrSort = []; // 중복 제거한 받아줄 배열 
4951        var path_name = '/iv/prd/cate/filter/';
4952        var imgExtension = '.png';
4953
4954        if( currentUrl.indexOf('&') > -1 ){
4955            var cateNumberAnd = currentUrl.split('cate_no=')[1].split('&')[0];
4956            cateNumberArry.push(cateNumberAnd);
4957        } else{
4958            var cateNumber = currentUrl.split('cate_no=')[1];
4959            cateNumberArry.push(cateNumber);
4960        }
4961
4962        prdListData.forEach(function(item, idx){
4963            //console.log(item.custom_option3)
4964            if( item.custom_option3 != 0 ){
4965                var optionArry = item.custom_option3;
4966                //console.log(optionArry);
4967                if(optionArry.indexOf(',') > -1){
4968                    var inOriLenArr = optionArry.split(',');
4969                    for(i=0; i<inOriLenArr.length; i++){
4970                        filterOptinSet.push(inOriLenArr[i])
4971                    }
4972                } else {
4973                    filterOptinSet.push(optionArry);
4974                }
4975            }
4976        });
4977        //console.log(filterOptinSet, 'filterOptinSet')       // 중복으로 나타나는 배열
4978        filterOptinUniqueArrSort.push(...new Set(filterOptinSet))
4979        //console.log(filterOptinUniqueArrSort, 'filterOptinUniqueArrSort')   // 중복 제거 배열     
4980        // 눈이면 눈에 대한 이미지 간이면 간에대한 이미지 근데 이미지를 한글로 저장 하기엔 좀 그렇고 그냥 단순 idx 본호로 하는건 안됨
4981        // setting 에서 지정한 이름 값이랑 배열에서 빼낸 이름일랑 일치하면 obj에서 이미지이름 값 들고와서 넣어주기
4982        ivFilterObjCom.filter(function(item1, idx){
4983            var filObjInnerTit = item1.filObjInner.title;
4984            //console.log(filObjInnerTit, 'filObjInnerTit')
4985            filterOptinUniqueArrSort.forEach(function(item2, idx2){
4986                var realFilterTit = item2;
4987                //console.log(realFilterTit)
4988                if( filObjInnerTit == realFilterTit ){
4989                    realFilterArry.push(item1);
4990                }
4991            });
4992        });
4993        realFilterArry.forEach(function(item, idx){ // 실제 화면 구성하는 
4994            var filterLi = ''; 
4995            filterLi += '<li class="iv_filter">';
4996            filterLi += '<a href="javascript:void(0);">';
4997            filterLi += '<img src ='+ path_name + cateNumberArry[0] + '/filter' + item.filObjInner.imgName + imgExtension +'>';
4998            filterLi += '<p class="iv_filter_name">' + item.filObjInner.title + '</p>';
4999            filterLi += '</a>';
5000            filterLi += '</li>';
5001            $('.iv_filter_inner').append(filterLi);
5002        });
5003        /**************************************            필터 메뉴 커스텀           ************************************/
5004        let connect = $basePrdList.attr('data-ivdynamic-connect');
5005        let $curation = IV$('#iv_dynamic_curation[data-ivdynamic-connect='+ connect +']'); //큐레이션 영역 있으면 
5006        let $filter = IV$('.iv_dynamic_filter[data-ivdynamic-connect='+ connect +']'); //동적 필터 전체 영역
5007        $filter.addClass('done');
5008        let filterType = ivSettingArray.ivfilter; //동적 필터 선택 타입 multiple (복수 선택 가능) / single (단일 선택)
5009        let moreViewType = ivSettingArray.ivmoretype; //더보기 타입
5010        let $paginate = $basePrdList.siblings('.iv_dynamic_paginate[data-ivdynamic-idx="'+no+'"]');
5011        let $moreButton = $basePrdList.siblings('.iv_dynamic_moreButton[data-ivdynamic-idx="'+no+'"]');
5012        let $section = $filter.find('[data-ivdynamic-var]'); //조건별 섹션
5013        let sectionLength = $section.length; //섹션 수 
5014        let $filterButton = $filter.find('.iv_filter'); //필터 버튼
5015        let $filterAllButton = $section.find('.iv_filter[data-ivdynamic-type="all"]'); //전체선택 버튼(== 해당영역 리셋)
5016        let $sort = IV$('.iv_dynamic_sort[data-ivdynamic-connect='+ connect +']');
5017        let $sortButton = $sort.find('.iv_filter'); //정렬 버튼
5018        let $curationButton = $curation.find('.iv_dynamic_buttons .iv_filter'); //큐레이션 버튼
5019        let type = Number(ivSettingArray.ivlink);
5020        let defaultView = Number(basicSettingArray.count);
5021        let $prdList = $basePrdList.find('.prdList');
5022        let sTargetModuleName = ivSettingArray.ivmodule;
5023        let filterResultType = 1;
5024        //필터 버튼 형태 수정 (input태그 없을 경우 생성)
5025        ($sortButton, $filterButton).each(function(idx,el){
5026            let $el = IV$(el),
5027                parentIdx = $el.closest($section).index();
5028            if($el.find('input').length == 0){
5029                let text = $el.text().trim();
5030                $el.children().append('<input type="checkbox" name="filter_'+parentIdx+'" id="'+ text +'" / ><label></label>\n');
5031            };
5032        });
5033        $filterButton.each(function(){
5034            let val = IV$(this).closest($section).attr('data-ivdynamic-var'); 
5035            let idx = IV$(this).closest($section).index();
5036            let inputId = IV$(this).find('input').attr('id');
5037            $filterButton.css('cursor','pointer');
5038            $filterButton.children().css('pointer-events','none');
5039            IV$(this).attr('data-ivdynamic-val', val + '_'+ idx + '_' + inputId);
5040            IV$(this).find('input').attr('id',val + '_' + idx + '_' + inputId);
5041            IV$(this).find('input').next('label').attr('for',val +  '_'  + idx + '_' + inputId);
5042        });
5043        let saveTimeChk = false;
5044        let filterDIsplayChk = false;
5045        let storage_ivCateInfo = sessionStorage.getItem('iv_cate_info');
5046        let storage_ivCateInfo2 = sessionStorage.getItem('iv_cate_info2');
5047        let storage_ivCateInfo3 = sessionStorage.getItem('iv_cate_info3');
5048        let defaultSort = iv_util.getParameterByName(IV_LOCATION_HREF, 'sort_method');
5049        if($basePrdList[0] == IVPrdDynamicCall._prdList_categoryList){
5050            window['IV_CATE_INFO'] = {
5051                'cateNo' : IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE,
5052                'viewType' : null,
5053                'scrollTop' : null,
5054                'oriCatePage' : null,
5055                'saveTime' : null,
5056            };
5057            window['IV_CATE_INFO2'] = prdListData.slice(0,IVPrdDynamicCall.__IV_DEFAULT_VALUE_AJAX_COUNT*2);
5058            window['IV_CATE_INFO3'] =  null;
5059            var iNowTime = Math.floor(new Date().getTime() / 1000);
5060            var iSessionTime = 60 * 5;
5061            try {
5062                if(typeof storage_ivCateInfo3 === 'string' && typeof storage_ivCateInfo2 !== 'undefined' && typeof storage_ivCateInfo !== 'undefined'){
5063                    storage_ivCateInfo = JSON.parse(storage_ivCateInfo);
5064                    storage_ivCateInfo2 = JSON.parse(storage_ivCateInfo2);
5065                    storage_ivCateInfo3 = JSON.parse(storage_ivCateInfo3);
5066                    if(typeof storage_ivCateInfo3 === 'string' && iNowTime - Number(storage_ivCateInfo['saveTime']) < iSessionTime && storage_ivCateInfo['oriCatePage'] === window.location.href){
5067                        saveTimeChk = true;
5068                        $('html,body').animate({scrollTop:storage_ivCateInfo['scrollTop']}, 0);
5069                    };
5070                };
5071            }
5072            catch (err) {
5073                console.log(err); 
5074                sessionStorage.removeItem('iv_cate_info');
5075                sessionStorage.removeItem('iv_cate_info2');
5076                sessionStorage.removeItem('iv_cate_info3');
5077            };
5078            Object.keys(sessionStorage).forEach(function(el){
5079                if(el.indexOf('coupon_download_') > -1){
5080                    sessionStorage.removeItem(el);
5081                };
5082            });
5083            let appendLength = IV$(IVPrdDynamicCall._prdList_categoryList).find('[id^="anchorBoxId_"]').length;
5084            
5085             console.log(appendLength, 'appendLength'); // 첫페이지에서 호출 시키는 prd
5086           
5087            
5088            let arrayFin = prdListData.slice(appendLength);
5089            let templete = IVPrdDynamicCall.getLiTemplate(sTargetModuleName, arrayFin);
5090            if(templete.trim() != ''){
5091                $prdList.append(templete);
5092            };
5093            if(! saveTimeChk){
5094                saveTimeChk = Math.floor(new Date().getTime() / 1000);
5095            }else{
5096                saveTimeChk = storage_ivCateInfo['saveTime'];
5097            };
5098            /**
5099             * 상품 클릭할때 데이터 세션에 저장 
5100             */
5101            IV$(document).on('click', '.prdItem_normalBox .prdList [id^="anchorBoxId_"]', function(e){
5102                var target = e.target;
5103                if(target.classList.contains('ec-admin-icon') || target.classList.contains('Prev_Cart')){
5104                }else{
5105                    let viewType = null;
5106                    if(IV$('.iv_viewType').is(':visible')){
5107                        viewType = IV$('.iv_viewType').attr('data-view');
5108                    };
5109                    window['IV_CATE_INFO']['viewType'] = viewType;
5110                    window['IV_CATE_INFO']['scrollTop'] = window.pageYOffset;
5111                    window['IV_CATE_INFO']['oriCatePage'] = window.location.href;
5112                    window['IV_CATE_INFO']['saveTime'] = saveTimeChk;
5113                    let html = '';
5114                    IV$('.prdItem_normalBox .prdList [id^="anchorBoxId_"]').each(function(idx,el){
5115                        if(idx < IVPrdDynamicCall.__IV_DEFAULT_VALUE_AJAX_COUNT*1.5){
5116                            html+= el.outerHTML;
5117                        };
5118                    });
5119                    window['IV_CATE_INFO3'] = html;
5120                    sessionStorage.setItem('iv_cate_info',  JSON.stringify(window['IV_CATE_INFO']));
5121                    sessionStorage.setItem('iv_cate_info2',  JSON.stringify(window['IV_CATE_INFO2']));
5122                    sessionStorage.setItem('iv_cate_info3',  JSON.stringify(window['IV_CATE_INFO3']));
5123                };
5124            });
5125            //주소줄 정렬값 적용 
5126            if(defaultSort){
5127                $sortButton.filter('[data-ivdynamic-val$="sort_method='+ defaultSort +'"]').addClass('on');
5128                $sortButton.filter('[data-ivdynamic-val$="sort_method='+ defaultSort +'"]').find('input').prop('checked',true);
5129            };
5130        }else{
5131            let templete = IVPrdDynamicCall.getLiTemplate(sTargetModuleName, prdListData);
5132            if(templete.trim() != ''){
5133                $prdList.html(templete);
5134            };
5135        };
5136        if(IVPrdDynamicCall.__IV_DEFAULT_VALUE_CACHE_ITEM_APPEND_CHK_FLAG === 'wait'){
5137            IVPrdDynamicCall.__IV_DEFAULT_VALUE_CACHE_ITEM_APPEND_CHK_FLAG = true;
5138        };
5139        if(typeof IVPrdDynamicCall.__IV_DEFAULT_VALUE_CUSTOM_FUNCTION === 'function'){
5140            IVPrdDynamicCall.__IV_DEFAULT_VALUE_CUSTOM_FUNCTION();
5141        };
5142        IVPrdDynamicCall.initAfter();
5143        $basePrdList.addClass('ivdynamic-done');
5144        /**
5145         * 주소줄 기본값 적용  
5146         */
5147        let defaultPage = iv_util.getParameterByName(IV_LOCATION_HREF, 'page_num');
5148        defaultPage = (defaultPage == '') ? 1 : defaultPage;
5149        let defaultFilter = '';
5150        $section.each(function(i,e){
5151            let chkVar = IV$(e).attr('data-ivdynamic-var');
5152            let chkVarValue;
5153            if($section.length == 1){
5154                chkVarValue = iv_util.getParameterByName(IV_LOCATION_HREF, 'custom_filter');
5155            }else{
5156                chkVarValue = iv_util.getParameterByName(IV_LOCATION_HREF, 'custom_filter_' + chkVar);
5157            };
5158            let idx = IV$(e).index();
5159            if(chkVarValue){
5160                chkVarValue = (chkVarValue.indexOf('_') > -1) ? chkVarValue.split('_') : [chkVarValue];
5161                if(chkVarValue[0].trim() == 'all'){
5162                    IV$(e).find('.iv_filter[data-ivdynamic-val="all"]').addClass('on');
5163                    IV$(e).find('.iv_filter[data-ivdynamic-val="all"] input').prop('checked',true);
5164                }else{
5165                    chkVarValue.forEach(function(e2, i2){
5166                        IV$(e).find('.iv_filter[data-ivdynamic-val="'+ chkVar + '_' + idx + '_' + e2.trim() + '"]').addClass('on');
5167                        IV$(e).find('.iv_filter[data-ivdynamic-val="'+ chkVar + '_' + idx + '_' + e2.trim() + '"]').find('input').prop('checked',true);
5168                    });
5169                };
5170                defaultFilter += chkVarValue;
5171            };
5172        });
5173        if(defaultFilter.trim() == ''){ //커스텀 필터값 없음 -> 페이지만 적용
5174            if(moreViewType == 'page'){
5175                $paginate.attr('data-ivdynamic-page',defaultPage);
5176                $paginate.find('ol li a[data-page="'+ defaultPage +'"]').addClass('this');
5177                $paginate.find('ol li a[data-page="'+ defaultPage +'"]').parent().addClass('on');
5178                if(! filterDIsplayChk){
5179                    IVPrdDynamicCall.goPage(no, defaultPage, $basePrdList);
5180                };
5181            }
5182            else if(moreViewType == 'button' || moreViewType == 'scroll'){
5183                $moreButton.attr('data-ivdynamic-page', defaultPage);
5184                $moreButton.find('[id^="more_current_page"]').text(defaultPage);
5185                let viewCount = Number($moreButton.attr('data-ivdynamic-count'));
5186                let maxCount = Number($moreButton.attr('data-ivdynamic-last'));
5187                let lastViewIndex = defaultPage * viewCount - 1;
5188                let condition = function(v, i){
5189                    if(i <= lastViewIndex ){
5190                        return true;
5191                    }else{
5192                        return false;
5193                    };
5194                };
5195                if(! filterDIsplayChk){
5196                    IVPrdDynamicCall.filtering(no, condition, $basePrdList);
5197                }
5198                if(defaultPage < maxCount){
5199                    if(moreViewType === 'button'){
5200                        $moreButton.show();
5201                    };
5202                    IVPrdDynamicCall.infinitScroll(no, $basePrdList, $moreButton);
5203                }else{
5204                    $moreButton.hide();
5205                };
5206            };
5207        }
5208        else{
5209            //커스텀 필터값 있음 -> 커스텀값 적용
5210            if($paginate.length > 0){
5211                $paginate.attr('data-ivdynamic-page',defaultPage);
5212                $paginate.find('ol li a[data-page="'+ defaultPage +'"]').addClass('this');
5213                $paginate.find('ol li a[data-page="'+ defaultPage +'"]').parent().addClass('on');
5214            }else if($moreButton.length > 0){
5215                $moreButton.attr('data-ivdynamic-page', defaultPage);
5216                $moreButton.find('[id^="more_current_page"]').text(defaultPage);
5217                let viewCount = Number($moreButton.attr('data-ivdynamic-count'));
5218                let maxCount = Number($moreButton.attr('data-ivdynamic-last'));
5219                if(defaultPage < maxCount){
5220                    if(moreViewType === 'button'){
5221                        $moreButton.show();
5222                    };
5223                }else{
5224                    $moreButton.hide();
5225                };
5226            };
5227            if(! filterDIsplayChk){
5228                filterCondition();
5229            };
5230        };
5231        if($curation.length > 0){
5232            filterResultType = 2;
5233            $sortButton.off().on('click',function(){
5234                let $this = IV$(this);
5235                if(! $this.hasClass('on')){
5236                    $this.addClass('on');
5237                    $this.find('input').prop('checked',true);
5238                    $sortButton.not($this).removeClass('on');
5239                    $sortButton.not($this).find('input').prop('checked',false);
5240                }else{
5241                    $this.removeClass('on');
5242                    $this.find('input').prop('checked',false);
5243                };
5244            });
5245            $curationButton.off().on('click',function(){
5246                let $this = IV$(this);
5247                let type = $this.attr('data-ivdynamic-val');
5248                if(type === 'search'){
5249                    let result = filterCondition();
5250                    window.location.href = '/product/list.html' + encodeURI(result);
5251                }else if(type === 'reset'){
5252                    $sort.find('.on').removeClass('on');
5253                    $section.find('.on').removeClass('on');
5254                    $sort.find('input').prop('checked',false);
5255                    $section.find('input').prop('checked',false);
5256                };
5257            });
5258        }else{
5259            filterResultType = 1;
5260            $sort.hide();
5261        };
5262        $filterButton.off().on('click', function(event){
5263            let $this = IV$(this);
5264            let type = $this.attr('data-ivdynamic-type');
5265            // 버튼 on/off 제어
5266            if(! $this.hasClass('on')){
5267                if(type === 'all'){
5268                    $this.addClass('on');
5269                    $this.find('input').prop('checked',true);
5270                    $this.siblings($filterButton).removeClass('on');
5271                    $this.siblings($filterButton).find('input').prop('checked',false);
5272                }else{
5273                    $this.addClass('on');
5274                    $this.find('input').prop('checked',true);
5275                    if(filterType !== 'multiple'){
5276                        $this.siblings($filterButton).removeClass('on');
5277                        $this.siblings($filterButton).find('input').prop('checked',false);
5278                    }else{
5279                        $this.siblings($filterButton).filter('[data-ivdynamic-type="all"]').removeClass('on');
5280                        $this.siblings($filterButton).filter('[data-ivdynamic-type="all"]').find('input').prop('checked',fal
5280se);
5281                    };
5282                };
5283            }else{
5284                $this.removeClass('on');
5285                $this.find('input').prop('checked',false);
5286            };
5287            if(filterResultType === 1){
5288                filterCondition();
5289            };
5290        });
5291        // 필터 컨디션 생성
5292        function filterCondition(){
5293            
5294
5295            
5296            
5297            
5298            
5299            
5300            
5301            let allButtonOnLength = $filterAllButton.filter('.on').length;
5302            let sectionSelectLength = $section.has('.on').length;
5303            let makeParamFilter = '';
5304            let filterConditionChk;
5305            if(sectionLength == allButtonOnLength){
5306                //console.log('전체');
5307                filterConditionChk = 'all';
5308                condition = true;
5309            }else{
5310                $filter['filter'] = {};
5311                $section.each(function(i,e){
5312                    let chkVar = IV$(e).attr('data-ivdynamic-var');
5313
5314                    let text = IV$(e).find('.iv_filter.on').not('.iv_filter[data-ivdynamic-type="all"]').text().trim();
5315                    let textArray = [];
5316                    if(IV$(e).find('.iv_filter[data-ivdynamic-type="all"]').hasClass('on')){
5317                        textArray.push('all');
5318                    }else{
5319                        IV$(e).find('.iv_filter.on').each(function(){
5320                            let $filterBtn = IV$(this);
5321                            let valueId = $filterBtn.find('input').attr('id');
5322                            if(valueId.indexOf('_') > -1){
5323                                valueId = valueId.split('_');
5324                                textArray.push(valueId[valueId.length-1]);
5325                            };
5326                        });
5327                    };
5328                    if(textArray.length !== 0){
5329                        if(textArray[0] != 'all'){
5330                            $filter['filter'][chkVar] = textArray;
5331                        };
5332                        if($section.length > 1){
5333                            makeParamFilter += '&custom_filter_' + chkVar + '=' + textArray.join('_');
5334                        }else{	
5335                            makeParamFilter += '&custom_filter=' + textArray.join('_');
5336                        };
5337                    };
5338                });
5339                
5340                let chkArray = JSON.parse(JSON.stringify($filter['filter']));
5341                if(sectionSelectLength>0){
5342                    $paginate.addClass('displaynone');
5343                    $moreButton.addClass('displaynone');
5344                    condition = function(v, i){
5345                        let chk = true;
5346                        let chk2 = true;
5347                        let length = Object.keys(chkArray).length;
5348                        for(let x=0; x<length; x++){
5349                            let key = Object.keys(chkArray)[x];
5350                            let value = chkArray[key];
5351                            if(chk === true){
5352                                let chkVal = v[key];
5353                                if(value.length > 0){
5354                                    
5355                                    let test = value.some(function(val) {
5356                                        //console.log(chkVal, 'chkValchkValchkVal@@@@@@@@');
5357                                        return (chkVal.indexOf(val) > -1) ? true : false;
5358                                    });
5359                                    if(test === false){
5360                                        chk = false;
5361                                        break;
5362                                    };
5363                                };
5364                            };
5365                        };
5366                        if(chk === true){
5367                            return true;
5368                        }else{
5369                            return false;
5370                        };
5371                    };
5372                }else{
5373                    //console.log('선택된 것 없음');
5374                    filterConditionChk = 'reset';
5375                    IVPrdDynamicCall.infinitScroll(no, $basePrdList, $moreButton);
5376                };
5377            };
5378            if(filterResultType === 1){
5379                let makePage;
5380                if($paginate.length > 0){
5381                    makePage = Number($paginate.attr('data-ivdynamic-page'));
5382                }else{
5383                    makePage = Number($moreButton.attr('data-ivdynamic-page'));
5384                };
5385                if(filterConditionChk === 'reset'){
5386                    if($basePrdList.find('.iv_dynamic_nodata')){$basePrdList.find('.iv_dynamic_nodata').remove();}
5387                    if($paginate.length > 0){
5388                        $paginate.removeClass('displaynone');
5389                        IVPrdDynamicCall.goPage(no, makePage, $basePrdList);
5390                    }else{
5391                        $moreButton.removeClass('displaynone');
5392                        let viewCount = Number($moreButton.attr('data-ivdynamic-count'));
5393                        let maxCount = Number($moreButton.attr('data-ivdynamic-last'));
5394                        let lastViewIndex = makePage * viewCount - 1;
5395                        condition = function(v, i){
5396                            if(i <= lastViewIndex ){
5397                                return true;
5398                            }else{
5399                                return false;
5400                            };
5401                        };
5402                        IVPrdDynamicCall.filtering(no, condition, $basePrdList);
5403                    };
5404                }else{
5405                    IVPrdDynamicCall.filtering(no, condition, $basePrdList);
5406                };
5407                IVPrdDynamicCall.replaceState($basePrdList, makePage, defaultSort, makeParamFilter);
5408            }else{
5409                if($basePrdList[0] == IVPrdDynamicCall._prdList_categoryList){
5410                    let makeParamSort = ($sortButton.filter('.on').length > 0) ? $sortButton.filter('.on').attr('data-ivdynamic-val') : '?cate_no=' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE;
5411                    let makeParamPage = '&page_num=1'; //우선 무조건 1페이지로 
5412                    let lastParam = makeParamSort + makeParamPage + makeParamFilter;
5413                    return lastParam;
5414                }
5415            };
5416        };
5417    },
5418    replaceState : function($basePrdList, page, sort, filter){
5419        //현재 주소줄 내용 갱신 ---> 상품 분류 페이지 & 일반 상품 영역 일 경우에만
5420        if(typeof sort !== 'undefined'){
5421            let makeParamSort = sort.trim();
5422            if(makeParamSort != ''){
5423                if(makeParamSort.indexOf('#Product_ListMenu')){
5424                    makeParamSort = '?cate_no=' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE + '&sort_method=' + makeParamSort.split('#Product_ListMenu')[0].trim();
5425                }else{
5426                    makeParamSort = '?cate_no=' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE + '&sort_method=' + makeParamSort;
5427                };
5428            }else{
5429                makeParamSort = '?cate_no=' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE;
5430            };
5431            let makeParamPage = '&page_num='+ page; 
5432            let lastParam = makeParamSort + makeParamPage + filter;
5433            let newLink = IV_LOCATION_HREF.split(IV_LOCATION_PATHNAME)[0] + IV_LOCATION_PATHNAME + lastParam;
5434            history.replaceState(null, null, newLink);
5435            iv_util.getUrl();
5436        }else{
5437            if($basePrdList[0] == IVPrdDynamicCall._prdList_categoryList){
5438                let makePage;
5439                let nowLink = IV_LOCATION_HREF;
5440                let linkPage = iv_util.getParameterByName(nowLink, 'page_num');
5441                let newLink;
5442                if(linkPage != ''){
5443                    newLink = nowLink.replace('&page_num='+linkPage, '&page_num='+page);
5444                }else{
5445                    let prevParam = nowLink.split('?cate_no=' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE)[0];
5446                    let lastParam = nowLink.split('?cate_no=' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE)[1];
5447                    newLink = prevParam + '?cate_no=' + IVBaseMenuCall.__IV_DEFAULT_VALUE_LOCATION_NOW_CATE + '&page_num=' + page + lastParam;
5448                };
5449                history.replaceState(null, null, newLink);  
5450                iv_util.getUrl();
5451            };
5452        }
5453    },
5454    initAfter : function(){
5455        sessionStorage.removeItem('iv_cate_info');
5456        sessionStorage.removeItem('iv_cate_info2');
5457        sessionStorage.removeItem('iv_cate_info3');
5458    },
5459}; 
5460
5461
5462/**
5463 * 공통 실행
5464 */
5465var iv_commonBaseFunc = iv_commonBaseFunc || {
5466    __IV_DEFAULT_VALUE_ORDER_LAYER_OPEN_CLOSE_FUNCTION_MODIFY : false,
5467    initBefore: function () {
5468        if(isPopupPage == 0){
5469            IV_MEMBER_CHECK = topDocument.querySelectorAll('#iv_memberChk_nomember').length > 0 ? false : true; //true : 회원 , false: 비회원
5470            IV_SUBCONTAINER_DATA_PAGE = IV$('.sub_container').attr('data-page'); 
5471            IV_TOP_SUBCONTAINER_DATA_PAGE = IV$('.sub_container').attr('data-page');  
5472
5473        }else{
5474            IV_SUBCONTAINER_DATA_PAGE = IV$('.popup_container').attr('data-page'); 
5475            IV_TOP_SUBCONTAINER_DATA_PAGE = IV$(topDocument).find('.sub_container').attr('data-page'); 
5476        };
5477        iv_commonBaseFunc.connectEvent();
5478        iv_commonBaseFunc.memberStateLayoutFix();
5479        IVBaseMenuCall.printList(); //메뉴 호출
5480        //custom swiper
5481        IVSwiperFunc();
5482    },
5483    init: function () {
5484        //페이지별 실행
5485        if(typeof basePrdPageInfoCallCustom !== 'undefined'){
5486            IVPrdPageInfoCall.init();
5487        }else{
5488            IVPrdPageInfoCall.init();
5489        };
5490        //상품별 실행 
5491        if(typeof basePrdItemInfoCallCustom !== 'undefined'){
5492            IVPrdItemInfoCall.init();
5493        }else{
5494            IVPrdItemInfoCall.init();
5495        };
5496        iv_commonBaseFunc.cssVarSet(isPopupPage);
5497        iv_util.selectedOptionTxtInit();
5498    },
5499    initLast : function(){
5500        if(isPopupPage == 0){
5501            if(IV_MEMBER_CHECK){
5502                ( memberDataCall = function(){
5503                    if(iv_commonBaseFunc.memberInfo() == false){
5504                        setTimeout(memberDataCall,300);
5505                    }else{
5506                        //회원 데이터 끝났을때 동작할 함수 
5507                        let IV_MEMBER_CALL_END = new CustomEvent("IVMemberCall",{'detail': IV_MEMBER_OBJ}); /* 멤버 정보 호출 완료 */
5508                        document.body.dispatchEvent(IV_MEMBER_CALL_END);
5509                    };
5510                })();
5511            }else{
5512                //회원 데이터 끝났을때 동작할 함수 
5513                let IV_MEMBER_CALL_END = new CustomEvent("IVMemberCall",{'detail' : 'guest-member'}); /* 멤버 정보 호출 완료 */
5514                document.body.dispatchEvent(IV_MEMBER_CALL_END);
5515            };
5516        };
5517       
5518        //IVmcustomScrollbar();
5519        iv_commonBaseFunc.cssVarSet(isPopupPage);
5520        IVBaseScroll.stickySet();
5521        window['oldURL'] = null;
5522        window['oldResponseText'] = null;
5523
5524    },
5525    memberStateLayoutFix : function(){
5526        //회원/비회원 class (Layout_statelogoff/Layout_statelogon 모듈 사용 불가 시 사용)
5527        if(IV_MEMBER_CHECK){
5528            IV$('.iv_statelogoff').remove();
5529            IV$('.iv_statelogoff2').addClass('displaynone');
5530            IV$('.iv_statelogoff3').addClass('layout-hidden');
5531
5532            IV$('[class*="nm_return_btn"]').each(function(){
5533                var $this = IV$(this);
5534                $this.removeClass('nm_return_btn nm_return_btn2 nm_return_btn3');
5535            });
5536        }else{
5537            IV$('.iv_statelogon').remove();
5538            IV$('.iv_statelogon2').addClass('displaynone');
5539            IV$('.iv_statelogon3').addClass('layout-hidden');
5540
5541            //type1 현재 링크를 return url로 넣기
5542            IV$('.nm_return_btn').each(function(){
5543                var $this = IV$(this);
5544                var oriLink = $this.attr('href');
5545                $this.attr('href',oriLink+'?returnUrl='+IV_LOCATION_HREF.split(IV_LOCATION_HOSTNAME)[1]);
5546            });
5547
5548            //type2 현재 링크를 주소줄에 있는 return Url값으로 넣기
5549            IV$('.nm_return_btn2').each(function(){
5550                if(IV_LOCATION_HREF.indexOf('returnUrl=') > -1){
5551                    var $this = IV$(this);
5552                    var oriLink = $this.attr('href');
5553                    var returnUrlLink = IV_LOCATION_HREF.split('returnUrl=')[1];
5554                    $this.attr('href',oriLink+'?returnUrl='+returnUrlLink);
5555                };
5556            });
5557
5558            //type3 현재 링크를 주소줄에 있는 return Url값으로 넣기 + 로그인 페이지로 보내기
5559            IV$('.nm_return_btn3').each(function(){
5560                var $this = IV$(this);
5561                var oriLink = $this.attr('href');
5562                $this.attr('href','/member/login.html?returnUrl='+oriLink);
5563            });
5564        };
5565    },
5566    connectEvent : function(){
5567        //토클 클릭
5568        IV$(document).on('click', '.base_form_toggle > .title', function(e){
5569            // input/label 등 요소 클릭 시에는 열림/닫힘 기능하지 않게 수정 
5570            if(e.target.tagName =='INPUT'|| e.target.tagName =='LABEL') return;
5571            if(IV$(this).closest('.base_form_toggle').hasClass('on') && IV$(this).closest('.base_form_toggle').hasClass('fixed') == false){
5572                IV$(this).closest('.base_form_toggle').removeClass('on');
5573            }else{
5574                if(IV$(this).closest('.base_form_toggle').hasClass('fixed') == false){
5575                    IV$(this).closest('.base_form_toggle').addClass('on');
5576                };
5577            };
5578        });
5579        //탭바 클릭
5580        IV$(document).on('click', '.tabbar_header li ', function(){
5581            var $this = IV$(this);
5582            var triggerClick = $this.data('click');
5583            $this.addClass('selected');
5584            $this.closest('.tabbar_container').find('.tabbar_header li').not($this).removeClass('selected');
5585            if(triggerClick){
5586                if(triggerClick.indexOf(',') > -1){
5587                    triggerClick = triggerClick.split(',');
5588                    triggerClick.forEach(function(e,i){
5589                        EC$(e).trigger('click');
5590                    });
5591                }else{
5592                    EC$(triggerClick).trigger('click');
5593                };
5594            };
5595            $this.closest('.tabbar_header').attr('data-selected',$this.index());
5596        });
5597    },
5598    cssVarSet : function(isPopupPage){
5599        if(isPopupPage == 0){
5600            if(IV_vh == 0 || Math.abs(IV_vh - (window.innerHeight * 0.01)) > 3){
5601                IV_vh = window.innerHeight * 0.01;
5602                document.querySelector(':root').style.setProperty("--vh", IV_vh +"px"); /* 1vh 값 */
5603            };
5604            IV_vh2 = window.innerHeight * 0.01;
5605            document.querySelector(':root').style.setProperty("--vh2", IV_vh2 +"px"); /* 1vh 값2 */
5606            IV_vw = window.innerWidth * 0.01;
5607            if(typeof IVSetPropertyArray !== 'undefined'){
5608                IVSetPropertyArray.forEach(function(e,i){
5609                    var name = e.name;
5610                    var $el = IV$(e.element);
5611                    window['IV_'+name] = ($el.length > 0) ? $el.outerHeight() : 0;
5612                    document.querySelector(':root').style.setProperty('--' + name, window['IV_'+name] + 'px');
5613                });
5614            };
5615            document.querySelector(':root').style.setProperty("--vw", IV_vw +"px"); /* 1vw 값 */
5616        }else{
5617            IV_vh = top.window.innerHeight * 0.01;
5618            IV_vw = top.window.innerWidth * 0.01;
5619            document.querySelector(':root').style.setProperty("--vh", IV_vh +"px"); /* 1vh 값 */
5620            document.querySelector(':root').style.setProperty("--vw", IV_vw +"px"); /* 1vw 값 */
5621            if(typeof IVSetPropertyArray !== 'undefined'){
5622                IVSetPropertyArray.forEach(function(e,i){
5623                    var name = e.name;
5624                    var $el = IV$(topDocument).find(e.element);
5625                    window['IV_'+name] = ($el.length > 0) ? $el.outerHeight() : 0;
5626                    document.querySelector(':root').style.setProperty('--' + name, window['IV_'+name] + 'px');
5627                });
5628            };
5629        };
5630    },
5631    memberInfo : function(){
5632        IV_MEMBER_ID = CAPP_ASYNC_METHODS.member.__sMemberId; 
5633        if(IV_MEMBER_ID == null){
5634            return false;
5635        };
5636        IV_MEMBER_NAME = CAPP_ASYNC_METHODS.member.__sName;
5637        IV_MEMBER_NICKNAME = CAPP_ASYNC_METHODS.member.__sNickName; 
5638        IV_MEMBER_GROUPNAME = CAPP_ASYNC_METHODS.member.__sGroupName;
5639        IV_MEMBER_GROUPNO = CAPP_ASYNC_METHODS.member.__sGroupNo;
5640        IV_MEMBER_EMAIL = CAPP_ASYNC_METHODS.member.__sEmail; 
5641        IV_MEMBER_PHONE = CAPP_ASYNC_METHODS.member.__sPhone;
5642        IV_MEMBER_CELLPHONE = CAPP_ASYNC_METHODS.member.__sCellphone; 
5643        IV_MEMBER_BIRTHDAY = CAPP_ASYNC_METHODS.member.__sBirthday; 
5644        IV_MEMBER_BOARDWRITENAME = CAPP_ASYNC_METHODS.member.__sBoardWriteName; 
5645        IV_MEMBER_ADDITIONALINFOMATION = CAPP_ASYNC_METHODS.member.__sAdditionalInformation; 
5646        IV_MEMBER_CREATEDATE = CAPP_ASYNC_METHODS.member.__sCreatedDate;
5647        IV_MEMBER_NAME_MILEAGE = (typeof sMileageName === 'undefined') ? null : sMileageName;
5648        if(typeof sMileageUnit !== 'undefined'){
5649            IV_MEMBER_UNIT_MILEAGE = (sMileageUnit.indexOf(']')>-1) ? sMileageUnit.split(']')[1].trim() : sMileageUnit;
5650        }
5651        IV_MEMBER_AVAIL_MILEAGE = CAPP_ASYNC_METHODS.Mileage.__sAvailMileage;
5652        IV_MEMBER_UNAVAIL_MILEAGE = CAPP_ASYNC_METHODS.Mileage.__sUnavailMileage;
5653        IV_MEMBER_RETURN_MILEAGE = CAPP_ASYNC_METHODS.Mileage.__sReturnedMileage;
5654        IV_MEMBER_TOTAL_MILEAGE = CAPP_ASYNC_METHODS.Mileage.__sTotalMileage;
5655        IV_MEMBER_USED_MILEAGE = CAPP_ASYNC_METHODS.Mileage.__sUsedMileage;
5656        IV_MEMBER_COUPON_COUNT = CAPP_ASYNC_METHODS.Couponcnt.__iCouponCount;
5657        IV_MEMBER_ORDER_COUNT = CAPP_ASYNC_METHODS.Order.__iOrderCount;
5658        if(CAPP_ASYNC_METHODS.Order.__iOrderTotalPrice != null){
5659            IV_MEMBER_ORDER_TOTAL = (CAPP_ASYNC_METHODS.Order.__iOrderTotalPrice.indexOf('원') > -1) ? CAPP_ASYNC_METHODS.Order.__iOrderTotalPrice.replace('원','') : CAPP_ASYNC_METHODS.Order.__iOrderTotalPrice; 
5660        }
5661        IV_MEMBER_ORDER_INCREASEVALUE = CAPP_ASYNC_METHODS.Order.__iGradeIncreaseValue;
5662        IV_MEMBER_ACC_DEPOSIT = CAPP_ASYNC_METHODS.Deposit.__sAllDeposit; 
5663        IV_MEMBER_USED_DEPOSIT = CAPP_ASYNC_METHODS.Deposit.__sUsedDeposit; 
5664        IV_MEMBER_RETURN_DEPOSIT = CAPP_ASYNC_METHODS.Deposit.__sRefundWaitDeposit; 
5665        IV_MEMBER_AVAIL_DEPOSIT = CAPP_ASYNC_METHODS.Deposit.__sTotalDeposit; 
5666        IV_MEMBER_TOTAL_DEPOSIT = CAPP_ASYNC_METHODS.Deposit.__sMemberTotalDeposit; 
5667        IV_MEMBER_NAME_DEPOSIT = sDepositName;
5668        IV_MEMBER_UNIT_DEPOSIT = sDepositUnit;
5669        if(typeof sDepositUnit !== 'undefined'){
5670            IV_MEMBER_UNIT_DEPOSIT = (sDepositUnit.indexOf(']')>-1) ? sDepositUnit.split(']')[1].trim() : sDepositUnit;
5671        }
5672        IV_MEMBER_OBJ = {
5673            'IV_MEMBER_ID' : IV_MEMBER_ID,
5674            'IV_MEMBER_NAME' : IV_MEMBER_NAME , 
5675            'IV_MEMBER_NICKNAME' : IV_MEMBER_NICKNAME ,
5676            'IV_MEMBER_GROUPNAME' : IV_MEMBER_GROUPNAME ,
5677            'IV_MEMBER_GROUPNO' : IV_MEMBER_GROUPNO ,
5678            'IV_MEMBER_EMAIL' : IV_MEMBER_EMAIL ,
5679            'IV_MEMBER_PHONE' : IV_MEMBER_PHONE ,
5680            'IV_MEMBER_CELLPHONE' : IV_MEMBER_CELLPHONE ,
5681            'IV_MEMBER_BIRTHDAY' : IV_MEMBER_BIRTHDAY  ,
5682            'IV_MEMBER_BOARDWRITENAME' : IV_MEMBER_BOARDWRITENAME  ,
5683            'IV_MEMBER_ADDITIONALINFOMATION' : IV_MEMBER_ADDITIONALINFOMATION  ,
5684            'IV_MEMBER_CREATEDATE' : IV_MEMBER_CREATEDATE ,
5685            'IV_MEMBER_NAME_MILEAGE' : IV_MEMBER_NAME_MILEAGE ,
5686            'IV_MEMBER_UNIT_MILEAGE' : IV_MEMBER_UNIT_MILEAGE,
5687            'IV_MEMBER_AVAIL_MILEAGE' : IV_MEMBER_AVAIL_MILEAGE ,
5688            'IV_MEMBER_UNAVAIL_MILEAGE' : IV_MEMBER_UNAVAIL_MILEAGE ,
5689            'IV_MEMBER_RETURN_MILEAGE' : IV_MEMBER_RETURN_MILEAGE ,
5690            'IV_MEMBER_TOTAL_MILEAGE' : IV_MEMBER_TOTAL_MILEAGE ,
5691            'IV_MEMBER_USED_MILEAGE' : IV_MEMBER_USED_MILEAGE ,
5692            'IV_MEMBER_COUPON_COUNT' : IV_MEMBER_COUPON_COUNT ,
5693            'IV_MEMBER_ORDER_COUNT' : IV_MEMBER_ORDER_COUNT ,
5694            'IV_MEMBER_ORDER_TOTAL' : IV_MEMBER_ORDER_TOTAL ,
5695            'IV_MEMBER_ORDER_INCREASEVALUE' : IV_MEMBER_ORDER_INCREASEVALUE,
5696            'IV_MEMBER_NAME_DEPOSIT' : IV_MEMBER_NAME_DEPOSIT,
5697            'IV_MEMBER_UNIT_DEPOSIT' : IV_MEMBER_UNIT_DEPOSIT,
5698            'IV_MEMBER_ACC_DEPOSIT' : CAPP_ASYNC_METHODS.Deposit.__sAllDeposit,
5699            'IV_MEMBER_USED_DEPOSIT' : CAPP_ASYNC_METHODS.Deposit.__sUsedDeposit,
5700            'IV_MEMBER_RETURN_DEPOSIT' : CAPP_ASYNC_METHODS.Deposit.__sRefundWaitDeposit, 
5701            'IV_MEMBER_AVAIL_DEPOSIT' : CAPP_ASYNC_METHODS.Deposit.__sTotalDeposit,
5702            'IV_MEMBER_TOTAL_DEPOSIT' : CAPP_ASYNC_METHODS.Deposit.__sMemberTotalDeposit
5703        };
5704        Object.keys(IV_MEMBER_OBJ).forEach(function(el){
5705            let txt = (typeof IV_MEMBER_OBJ[el] === 'object') ? '' : String(IV_MEMBER_OBJ[el]);
5706            if(txt){
5707                var Numbercheck = /[^0-9]/g;
5708                if(iv_util.removeNumbFunc(txt).trim() == '.' && Numbercheck.test(txt) && txt !== '.'){
5709                    var chk = iv_util.comma(Math.floor(txt));
5710                    if(isNaN(txt)){
5711                        IV$('.' + el).text(txt);
5712                    }else{
5713                        IV$('.' + el).text(chk);
5714                    }
5715                }else{
5716                    IV$('.' + el).text(txt);
5717                };
5718            };
5719        });
5720        if(IV_MEMBER_GROUPNO == '' && IV_MEMBER_CHECK){
5721            IV$('.base_board_admin').removeClass('displaynone');
5722        };
5723    },
5724    ieLeave : function(){
5725        if(typeof ieAlert !== 'undefined' && typeof ieRedirect !== 'undefined'){
5726            if(ieAlert){
5727                if(ieRedirect){
5728                    //ie edge로 전환
5729                    alert("본 사이트는 Edge, Chrome 브라우저에 최적화 되어 있습니다." + "확인 버튼을 누르시면 Edge브라우저로 이동합니다.") 
5730                    moveEdge();
5731                }else{
5732                    IV$('#base_header_container').append('<div class="ie_info_banner"><p onClick="moveEdge();">본 사이트는 Edge, Chrome 브라우저에 최적화 되어 있습니다. Edge 브라우저로 이동하기 →</p></div>');
5733                };
5734            };
5735        }
5736    },
5737};
5738
5739
5740var IVBaseScroll = IVBaseScroll || {
5741    delta : 0,
5742    didScroll : null,
5743    direction : null,
5744    amount : null,
5745    st :  null,
5746    lastSt : null,
5747    stickyActiveHeight : null,
5748    stickySet : function(){
5749        let stickyHeight = 0;
5750        var $ivsticky = document.querySelectorAll('.iv_sticky');
5751        if($ivsticky.length > 0){
5752            var $ivsticky = IV$('.iv_sticky');
5753            let ivStickyPositionArray = [];
5754            let ivStickyHeightArray = [];
5755            IVBaseScroll.stickyActiveHeight = 0;
5756            $ivsticky.each(function(i,e){
5757                let $e = IV$(e);
5758                let boundingClientRect = e.getBoundingClientRect();
5759                let height = boundingClientRect.height;
5760                let top = boundingClientRect.y;
5761                let stickyChk = parseInt($e.css('top'), 10);
5762                let dataStart = $e.attr('data-ivsticky-start'); 
5763                if(top < 0 && stickyChk == 0){
5764                    return false;
5765                }else{
5766                    var pass = false;
5767                    if(typeof dataStart !== 'undefined'){
5768                        if(dataStart.indexOf('auto') > -1){
5769                            let autoTop = ivStickyPositionArray.reduce(function(acc,el,idx,arr){
5770                                if(idx < arr.length-1){
5771                                    if(arr[idx+1] != el){
5772                                        acc = acc + Math.abs(ivStickyHeightArray[idx]);
5773                                    };
5774                                }else{
5775                                    acc = acc + Math.abs(ivStickyHeightArray[idx]);
5776                                };
5777                                return acc;
5778                            },0);
5779                            $e.css('top', autoTop);
5780                        };
5781                        if(dataStart === 'auto-once'){
5782                            $e.removeAttr('data-ivsticky-start');
5783                        }else if(dataStart == '1'){
5784                            pass = true;
5785                        }
5786                    };
5787                    ivStickyHeightArray.push(height);
5788                    if(pass != true){
5789                        if(top < stickyChk){
5790                            $e.addClass('scroll-max').removeClass('scroll-fixed');
5791                            ivStickyHeightArray.splice(i,1,-1*ivStickyHeightArray[i]);
5792                        }else{
5793                            if(top == stickyChk){
5794                                let chk = true;
5795                                let filter = $ivsticky.filter(function(idx, el) {
5796                                    if(ivStickyPositionArray[idx] == stickyChk){
5797                                        let offsetParent1 = el.offsetParent;
5798                                        let offsetParent2 =   e.offsetParent;
5799                                        let zIndex1 = 0;
5800                                        let zIndex2 =  0;
5801                                        if(offsetParent1 == offsetParent2){
5802                                            zIndex1 = Number(IV$(el).css('zIndex'));
5803                                            zIndex2 =  IV$(e).css('zIndex');
5804                                        }else{
5805                                            zIndex1 = Number(IV$(offsetParent1).css('zIndex'));
5806                                            zIndex2 =  IV$(offsetParent2).css('zIndex');
5807                                        };
5808                                        zIndex1 = (isNaN(zIndex1)) ? 0 : zIndex1;
5809                                        zIndex2 = (isNaN(zIndex2)) ? 0 : zIndex2;
5810                                        if(zIndex1 <= zIndex2){
5811                                            IV$(el).addClass('scroll-max');
5812                                            ivStickyHeightArray.splice(idx,1,-1*ivStickyHeightArray[idx]);
5813                                            return true;
5814                                        }else{
5815                                            chk = false;
5816                                        };
5817                                    };
5818                                });
5819                                if(chk != false){
5820                                    if(IVBaseScroll.st > 0){
5821                                        $e.removeClass('scroll-max').addClass('scroll-fixed');
5822                                    }else{
5823                                        $e.removeClass('scroll-max scroll-fixed');
5824                                    };
5825                                }else{
5826                                    ivStickyHeightArray.splice(i,1,-1*ivStickyHeightArray[i]);
5827                                };
5828                            }else{
5829                                $e.removeClass('scroll-max scroll-fixed');
5830                                ivStickyHeightArray.splice(i,1,-1*ivStickyHeightArray[i]);
5831                            };
5832                        };
5833                    }
5834                    ivStickyPositionArray.push(stickyChk);
5835                }
5836            });
5837            IVBaseScroll.stickyActiveHeight = ivStickyHeightArray.reduce(function(acc,el){
5838                if(el > 0){
5839                    acc = acc + el;
5840                };
5841                return acc;
5842            },0);
5843            IV_topHeight = IVBaseScroll.stickyActiveHeight;
5844            document.querySelector(':root').style.setProperty("--topHeight", IV_topHeight +"px");
5845        }
5846    },
5847    fix : function(){
5848        if(IVBaseScroll.st > 0){
5849            IV$('.iv_sticky[data-ivsticky-start="1"]').addClass('scroll-fixed');
5850        }else{
5851            IV$('.iv_sticky[data-ivsticky-start="1"]').removeClass('scroll-fixed scroll-max');
5852        };
5853    },
5854    scrollUp : function(){
5855        IV$('html, .iv_sticky').addClass('scroll-up').removeClass('scroll-down');
5856        IVBaseScroll.direction = 'up';
5857    },
5858    scrollDown : function(){
5859        IV$('html, .iv_sticky').addClass('scroll-down').removeClass('scroll-up');
5860        IVBaseScroll.direction = 'down';
5861    },
5862    infoUpdate : function(){
5863        IVBaseScroll.amount = IVBaseScroll.lastSt - IVBaseScroll.st;
5864        IVBaseScroll.lastSt = IVBaseScroll.st;
5865        IVBaseScroll.stickySet();
5866    },
5867    execute : function(){
5868        if(Math.abs(IVBaseScroll.lastSt - IVBaseScroll.st) <= IVBaseScroll.delta){
5869            IVBaseScroll.didScroll = false;
5870            return;
5871        };
5872        IVBaseScroll.didScroll = true;
5873        IVBaseScroll.basic();
5874    },
5875    basic : function(){
5876        IVBaseScroll.fix();
5877        if(IVBaseScroll.lastSt > IVBaseScroll.st){
5878            IVBaseScroll.scrollUp();
5879        }else{
5880            IVBaseScroll.scrollDown(); 
5881        };
5882        IVBaseScroll.infoUpdate();
5883    }
5884};
5885
5886/**
5887 * 문서 이벤트 
5888 * - iv_common.js에서 함수 호출하여 사용 (sub_container의 js보다 먼저 실행이 필요할때 사용)
5889 * @ IVreadyBefore {event} document.ready(DOMContentLoaded)보다 빠름
5890 * @ IVready {event} document.ready(DOMContentLoaded)
5891 * @ IVloadBefore {event} window.load(load)보다 빠름
5892 * @ IVload {event} window.load
5893 * @ IVbeforeunload {event} 사용자 페이지 이탈 중
5894 * @ IVunload {event} 사용자 페이지 이탈 
5895 */
5896var IVbeforeUnloadFlag = false;
5897document.addEventListener("readystatechange", function (e) {
5898    switch (document.readyState) {
5899        case "interactive":
5900            let e = new CustomEvent("IVreadyBefore");
5901            document.body.dispatchEvent(e);
5902            break;
5903        case "complete":
5904            let t = new CustomEvent("IVloadBefore");
5905            document.body.dispatchEvent(t);
5906    }
5907}), window.addEventListener("DOMContentLoaded", function (e) {
5908    let t = new CustomEvent("IVready");
5909    document.body.dispatchEvent(t)
5910}), window.addEventListener("load", function (e) {
5911    let t = new CustomEvent("IVload");
5912    document.body.dispatchEvent(t)
5913}), window.addEventListener("beforeunload", function (e) {
5914    let t = new CustomEvent("IVbeforeunload");
5915    IVbeforeUnloadFlag = true;
5916    document.body.dispatchEvent(t);
5917}), document.addEventListener("visibilitychange", function (e) {
5918    if (document.visibilityState === 'visible') {
5919        let t = new CustomEvent("IVVisible");
5920        document.body.dispatchEvent(t);
5921    } else if(document.visibilityState === 'hidden') {
5922        if(IVbeforeUnloadFlag){
5923            let t = new CustomEvent("IVunload");
5924            document.body.dispatchEvent(t, {cancelable: true, bubbles: true});
5925        }else{
5926            let t = new CustomEvent("IVNotvisible");
5927            document.body.dispatchEvent(t);
5928        }
5929    }
5930}), window.addEventListener("scroll", iv_util.throttle(function (e) {
5931    var t = window.pageYOffset;
5932    if (parseInt(IV$("html").css("top"), 10) < 0);
5933    else {
5934        IVBaseScroll.st = t;
5935        let e = new CustomEvent("IVScroll", {
5936            detail: IVBaseScroll
5937        });
5938        document.body.dispatchEvent(e)
5939    }
5940}, 100)), window.addEventListener("scroll", iv_util.debounce(function (e) {
5941    var t = window.pageYOffset;
5942    if (parseInt(IV$("html").css("top"), 10) < 0);
5943    else {
5944        IVBaseScroll.st = t;
5945        let e = new CustomEvent("IVScroll", {
5946            detail: IVBaseScroll
5947        });
5948        document.body.dispatchEvent(e)
5949    }
5950}, 200)), window.addEventListener("resize", function () {
5951    iv_commonBaseFunc.cssVarSet(isPopupPage)
5952});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.