/* Minification failed. Returning unminified contents.
(2,1): run-time error CSS1019: Unexpected token, found '('
(2,2): run-time error CSS1019: Unexpected token, found 'function('
(2,14): run-time error CSS1031: Expected selector, found ')'
(2,14): run-time error CSS1025: Expected comma or open brace, found ')'
(211,1242): Scanner error CSS1002: Unterminated string: '\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},
(222,4584): Scanner error CSS1002: Unterminated string: ",a.params.regex)});a(function(){d.unobtrusive.parse(document)})})(jQuery);
(286,83): Scanner error CSS1002: Unterminated string: '");
(329,79): Scanner error CSS1002: Unterminated string: '");
 */
/*! jQuery v1.7.1 jquery.com | jquery.org/license */
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),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(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
/*!
** Unobtrusive Ajax support library for jQuery
** Copyright (C) Microsoft Corporation. All rights reserved.
*/

/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global window: false, jQuery: false */

(function ($) {
    var data_click = "unobtrusiveAjaxClick",
        data_validation = "unobtrusiveValidation";

    function getFunction(code, argNames) {
        var fn = window, parts = (code || "").split(".");
        while (fn && parts.length) {
            fn = fn[parts.shift()];
        }
        if (typeof (fn) === "function") {
            return fn;
        }
        argNames.push(code);
        return Function.constructor.apply(null, argNames);
    }

    function isMethodProxySafe(method) {
        return method === "GET" || method === "POST";
    }

    function asyncOnBeforeSend(xhr, method) {
        if (!isMethodProxySafe(method)) {
            xhr.setRequestHeader("X-HTTP-Method-Override", method);
        }
    }

    function asyncOnSuccess(element, data, contentType) {
        var mode;

        if (contentType.indexOf("application/x-javascript") !== -1) {  // jQuery already executes JavaScript for us
            return;
        }

        mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase();
        $(element.getAttribute("data-ajax-update")).each(function (i, update) {
            var top;

            switch (mode) {
            case "BEFORE":
                top = update.firstChild;
                $("<div />").html(data).contents().each(function () {
                    update.insertBefore(this, top);
                });
                break;
            case "AFTER":
                $("<div />").html(data).contents().each(function () {
                    update.appendChild(this);
                });
                break;
            default:
                $(update).html(data);
                break;
            }
        });
    }

    function asyncRequest(element, options) {
        var confirm, loading, method, duration;

        confirm = element.getAttribute("data-ajax-confirm");
        if (confirm && !window.confirm(confirm)) {
            return;
        }

        loading = $(element.getAttribute("data-ajax-loading"));
        duration = element.getAttribute("data-ajax-loading-duration") || 0;

        $.extend(options, {
            type: element.getAttribute("data-ajax-method") || undefined,
            url: element.getAttribute("data-ajax-url") || undefined,
            beforeSend: function (xhr) {
                var result;
                asyncOnBeforeSend(xhr, method);
                result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this, arguments);
                if (result !== false) {
                    loading.show(duration);
                }
                return result;
            },
            complete: function () {
                loading.hide(duration);
                getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(this, arguments);
            },
            success: function (data, status, xhr) {
                asyncOnSuccess(element, data, xhr.getResponseHeader("Content-Type") || "text/html");
                getFunction(element.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(this, arguments);
            },
            error: getFunction(element.getAttribute("data-ajax-failure"), ["xhr", "status", "error"])
        });

        options.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" });

        method = options.type.toUpperCase();
        if (!isMethodProxySafe(method)) {
            options.type = "POST";
            options.data.push({ name: "X-HTTP-Method-Override", value: method });
        }

        $.ajax(options);
    }

    function validate(form) {
        var validationInfo = $(form).data(data_validation);
        return !validationInfo || !validationInfo.validate || validationInfo.validate();
    }

    $("a[data-ajax=true]").live("click", function (evt) {
        evt.preventDefault();
        asyncRequest(this, {
            url: this.href,
            type: "GET",
            data: []
        });
    });

    $("form[data-ajax=true] input[type=image]").live("click", function (evt) {
        var name = evt.target.name,
            $target = $(evt.target),
            form = $target.parents("form")[0],
            offset = $target.offset();

        $(form).data(data_click, [
            { name: name + ".x", value: Math.round(evt.pageX - offset.left) },
            { name: name + ".y", value: Math.round(evt.pageY - offset.top) }
        ]);

        setTimeout(function () {
            $(form).removeData(data_click);
        }, 0);
    });

    $("form[data-ajax=true] :submit").live("click", function (evt) {
        var name = evt.target.name,
            form = $(evt.target).parents("form")[0];

        $(form).data(data_click, name ? [{ name: name, value: evt.target.value }] : []);

        setTimeout(function () {
            $(form).removeData(data_click);
        }, 0);
    });

    $("form[data-ajax=true]").live("submit", function (evt) {
        var clickInfo = $(this).data(data_click) || [];
        evt.preventDefault();
        if (!validate(this)) {
            return;
        }
        asyncRequest(this, {
            url: this.action,
            type: this.method || "GET",
            data: clickInfo.concat($(this).serializeArray())
        });
    });
}(jQuery));
/**
 * jQuery Validation Plugin 1.9.0
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2011 Jörn Zaefferer
 *
 * Licensed under MIT: http://www.opensource.org/licenses/mit-license.php
 */
(function(c){c.extend(c.fn,{validate:function(a){if(this.length){var b=c.data(this[0],"validator");if(b)return b;this.attr("novalidate","novalidate");b=new c.validator(a,this[0]);c.data(this[0],"validator",b);if(b.settings.onsubmit){a=this.find("input, button");a.filter(".cancel").click(function(){b.cancelSubmit=true});b.settings.submitHandler&&a.filter(":submit").click(function(){b.submitButton=this});this.submit(function(d){function e(){if(b.settings.submitHandler){if(b.submitButton)var f=c("<input type='hidden'/>").attr("name",
b.submitButton.name).val(b.submitButton.value).appendTo(b.currentForm);b.settings.submitHandler.call(b,b.currentForm);b.submitButton&&f.remove();return false}return true}b.settings.debug&&d.preventDefault();if(b.cancelSubmit){b.cancelSubmit=false;return e()}if(b.form()){if(b.pendingRequest){b.formSubmitted=true;return false}return e()}else{b.focusInvalid();return false}})}return b}else a&&a.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(c(this[0]).is("form"))return this.validate().form();
else{var a=true,b=c(this[0].form).validate();this.each(function(){a&=b.element(this)});return a}},removeAttrs:function(a){var b={},d=this;c.each(a.split(/\s/),function(e,f){b[f]=d.attr(f);d.removeAttr(f)});return b},rules:function(a,b){var d=this[0];if(a){var e=c.data(d.form,"validator").settings,f=e.rules,g=c.validator.staticRules(d);switch(a){case "add":c.extend(g,c.validator.normalizeRule(b));f[d.name]=g;if(b.messages)e.messages[d.name]=c.extend(e.messages[d.name],b.messages);break;case "remove":if(!b){delete f[d.name];
return g}var h={};c.each(b.split(/\s/),function(j,i){h[i]=g[i];delete g[i]});return h}}d=c.validator.normalizeRules(c.extend({},c.validator.metadataRules(d),c.validator.classRules(d),c.validator.attributeRules(d),c.validator.staticRules(d)),d);if(d.required){e=d.required;delete d.required;d=c.extend({required:e},d)}return d}});c.extend(c.expr[":"],{blank:function(a){return!c.trim(""+a.value)},filled:function(a){return!!c.trim(""+a.value)},unchecked:function(a){return!a.checked}});c.validator=function(a,
b){this.settings=c.extend(true,{},c.validator.defaults,a);this.currentForm=b;this.init()};c.validator.format=function(a,b){if(arguments.length==1)return function(){var d=c.makeArray(arguments);d.unshift(a);return c.validator.format.apply(this,d)};if(arguments.length>2&&b.constructor!=Array)b=c.makeArray(arguments).slice(1);if(b.constructor!=Array)b=[b];c.each(b,function(d,e){a=a.replace(RegExp("\\{"+d+"\\}","g"),e)});return a};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",
validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:true,ignore:":hidden",ignoreTitle:false,onfocusin:function(a){this.lastActive=a;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass);this.addWrapper(this.errorsFor(a)).hide()}},onfocusout:function(a){if(!this.checkable(a)&&(a.name in this.submitted||!this.optional(a)))this.element(a)},
onkeyup:function(a){if(a.name in this.submitted||a==this.lastElement)this.element(a)},onclick:function(a){if(a.name in this.submitted)this.element(a);else a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(a,b,d){a.type==="radio"?this.findByName(a.name).addClass(b).removeClass(d):c(a).addClass(b).removeClass(d)},unhighlight:function(a,b,d){a.type==="radio"?this.findByName(a.name).removeClass(b).addClass(d):c(a).removeClass(b).addClass(d)}},setDefaults:function(a){c.extend(c.validator.defaults,
a)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:c.validator.format("Please enter no more than {0} characters."),
minlength:c.validator.format("Please enter at least {0} characters."),rangelength:c.validator.format("Please enter a value between {0} and {1} characters long."),range:c.validator.format("Please enter a value between {0} and {1}."),max:c.validator.format("Please enter a value less than or equal to {0}."),min:c.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){function a(e){var f=c.data(this[0].form,"validator"),g="on"+e.type.replace(/^validate/,
"");f.settings[g]&&f.settings[g].call(f,this[0],e)}this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var b=this.groups={};c.each(this.settings.groups,function(e,f){c.each(f.split(/\s/),function(g,h){b[h]=e})});var d=
this.settings.rules;c.each(d,function(e,f){d[e]=c.validator.normalizeRule(f)});c(this.currentForm).validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",a).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",
a);this.settings.invalidHandler&&c(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);this.valid()||c(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(a){this.lastElement=
a=this.validationTargetFor(this.clean(a));this.prepareElement(a);this.currentElements=c(a);var b=this.check(a);if(b)delete this.invalid[a.name];else this.invalid[a.name]=true;if(!this.numberOfInvalids())this.toHide=this.toHide.add(this.containers);this.showErrors();return b},showErrors:function(a){if(a){c.extend(this.errorMap,a);this.errorList=[];for(var b in a)this.errorList.push({message:a[b],element:this.findByName(b)[0]});this.successList=c.grep(this.successList,function(d){return!(d.name in a)})}this.settings.showErrors?
this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){c.fn.resetForm&&c(this.currentForm).resetForm();this.submitted={};this.lastElement=null;this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b=0,d;for(d in a)b++;return b},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return this.size()==
0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{c(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(a){}},findLastActive:function(){var a=this.lastActive;return a&&c.grep(this.errorList,function(b){return b.element.name==a.name}).length==1&&a},elements:function(){var a=this,b={};return c(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&
a.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in b||!a.objectLength(c(this).rules()))return false;return b[this.name]=true})},clean:function(a){return c(a)[0]},errors:function(){return c(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=c([]);this.toHide=c([]);this.currentElements=c([])},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers)},
prepareElement:function(a){this.reset();this.toHide=this.errorsFor(a)},check:function(a){a=this.validationTargetFor(this.clean(a));var b=c(a).rules(),d=false,e;for(e in b){var f={method:e,parameters:b[e]};try{var g=c.validator.methods[e].call(this,a.value.replace(/\r/g,""),a,f.parameters);if(g=="dependency-mismatch")d=true;else{d=false;if(g=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!g){this.formatAndAdd(a,f);return false}}}catch(h){this.settings.debug&&window.console&&console.log("exception occured when checking element "+
a.id+", check the '"+f.method+"' method",h);throw h;}}if(!d){this.objectLength(b)&&this.successList.push(a);return true}},customMetaMessage:function(a,b){if(c.metadata){var d=this.settings.meta?c(a).metadata()[this.settings.meta]:c(a).metadata();return d&&d.messages&&d.messages[b]}},customMessage:function(a,b){var d=this.settings.messages[a];return d&&(d.constructor==String?d:d[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==undefined)return arguments[a]},defaultMessage:function(a,
b){return this.findDefined(this.customMessage(a.name,b),this.customMetaMessage(a,b),!this.settings.ignoreTitle&&a.title||undefined,c.validator.messages[b],"<strong>Warning: No message defined for "+a.name+"</strong>")},formatAndAdd:function(a,b){var d=this.defaultMessage(a,b.method),e=/\$?\{(\d+)\}/g;if(typeof d=="function")d=d.call(this,b.parameters,a);else if(e.test(d))d=jQuery.format(d.replace(e,"{$1}"),b.parameters);this.errorList.push({message:d,element:a});this.errorMap[a.name]=d;this.submitted[a.name]=
d},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parent(this.settings.wrapper));return a},defaultShowErrors:function(){for(var a=0;this.errorList[a];a++){var b=this.errorList[a];this.settings.highlight&&this.settings.highlight.call(this,b.element,this.settings.errorClass,this.settings.validClass);this.showLabel(b.element,b.message)}if(this.errorList.length)this.toShow=this.toShow.add(this.containers);if(this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);
if(this.settings.unhighlight){a=0;for(b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass)}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return c(this.errorList).map(function(){return this.element})},showLabel:function(a,b){var d=this.errorsFor(a);if(d.length){d.removeClass(this.settings.validClass).addClass(this.settings.errorClass);
d.attr("generated")&&d.html(b)}else{d=c("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(a),generated:true}).addClass(this.settings.errorClass).html(b||"");if(this.settings.wrapper)d=d.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,c(a)):d.insertAfter(a))}if(!b&&this.settings.success){d.text("");typeof this.settings.success=="string"?d.addClass(this.settings.success):this.settings.success(d)}this.toShow=
this.toShow.add(d)},errorsFor:function(a){var b=this.idOrName(a);return this.errors().filter(function(){return c(this).attr("for")==b})},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(a){if(this.checkable(a))a=this.findByName(a.name).not(this.settings.ignore)[0];return a},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(a){var b=this.currentForm;return c(document.getElementsByName(a)).map(function(d,
e){return e.form==b&&e.name==a&&e||null})},getLength:function(a,b){switch(b.nodeName.toLowerCase()){case "select":return c("option:selected",b).length;case "input":if(this.checkable(b))return this.findByName(b.name).filter(":checked").length}return a.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):true},dependTypes:{"boolean":function(a){return a},string:function(a,b){return!!c(a,b.form).length},"function":function(a,b){return a(b)}},optional:function(a){return!c.validator.methods.required.call(this,
c.trim(a.value),a)&&"dependency-mismatch"},startRequest:function(a){if(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=true}},stopRequest:function(a,b){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[a.name];if(b&&this.pendingRequest==0&&this.formSubmitted&&this.form()){c(this.currentForm).submit();this.formSubmitted=false}else if(!b&&this.pendingRequest==0&&this.formSubmitted){c(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=
false}},previousValue:function(a){return c.data(a,"previousValue")||c.data(a,"previousValue",{old:null,valid:true,message:this.defaultMessage(a,"remote")})}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(a,b){a.constructor==String?this.classRuleSettings[a]=b:c.extend(this.classRuleSettings,
a)},classRules:function(a){var b={};(a=c(a).attr("class"))&&c.each(a.split(" "),function(){this in c.validator.classRuleSettings&&c.extend(b,c.validator.classRuleSettings[this])});return b},attributeRules:function(a){var b={};a=c(a);for(var d in c.validator.methods){var e;if(e=d==="required"&&typeof c.fn.prop==="function"?a.prop(d):a.attr(d))b[d]=e;else if(a[0].getAttribute("type")===d)b[d]=true}b.maxlength&&/-1|2147483647|524288/.test(b.maxlength)&&delete b.maxlength;return b},metadataRules:function(a){if(!c.metadata)return{};
var b=c.data(a.form,"validator").settings.meta;return b?c(a).metadata()[b]:c(a).metadata()},staticRules:function(a){var b={},d=c.data(a.form,"validator");if(d.settings.rules)b=c.validator.normalizeRule(d.settings.rules[a.name])||{};return b},normalizeRules:function(a,b){c.each(a,function(d,e){if(e===false)delete a[d];else if(e.param||e.depends){var f=true;switch(typeof e.depends){case "string":f=!!c(e.depends,b.form).length;break;case "function":f=e.depends.call(b,b)}if(f)a[d]=e.param!==undefined?
e.param:true;else delete a[d]}});c.each(a,function(d,e){a[d]=c.isFunction(e)?e(b):e});c.each(["minlength","maxlength","min","max"],function(){if(a[this])a[this]=Number(a[this])});c.each(["rangelength","range"],function(){if(a[this])a[this]=[Number(a[this][0]),Number(a[this][1])]});if(c.validator.autoCreateRanges){if(a.min&&a.max){a.range=[a.min,a.max];delete a.min;delete a.max}if(a.minlength&&a.maxlength){a.rangelength=[a.minlength,a.maxlength];delete a.minlength;delete a.maxlength}}a.messages&&delete a.messages;
return a},normalizeRule:function(a){if(typeof a=="string"){var b={};c.each(a.split(/\s/),function(){b[this]=true});a=b}return a},addMethod:function(a,b,d){c.validator.methods[a]=b;c.validator.messages[a]=d!=undefined?d:c.validator.messages[a];b.length<3&&c.validator.addClassRules(a,c.validator.normalizeRule(a))},methods:{required:function(a,b,d){if(!this.depend(d,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case "select":return(a=c(b).val())&&a.length>0;case "input":if(this.checkable(b))return this.getLength(a,
b)>0;default:return c.trim(a).length>0}},remote:function(a,b,d){if(this.optional(b))return"dependency-mismatch";var e=this.previousValue(b);this.settings.messages[b.name]||(this.settings.messages[b.name]={});e.originalMessage=this.settings.messages[b.name].remote;this.settings.messages[b.name].remote=e.message;d=typeof d=="string"&&{url:d}||d;if(this.pending[b.name])return"pending";if(e.old===a)return e.valid;e.old=a;var f=this;this.startRequest(b);var g={};g[b.name]=a;c.ajax(c.extend(true,{url:d,
mode:"abort",port:"validate"+b.name,dataType:"json",data:g,success:function(h){f.settings.messages[b.name].remote=e.originalMessage;var j=h===true;if(j){var i=f.formSubmitted;f.prepareElement(b);f.formSubmitted=i;f.successList.push(b);f.showErrors()}else{i={};h=h||f.defaultMessage(b,"remote");i[b.name]=e.message=c.isFunction(h)?h(a):h;f.showErrors(i)}e.valid=j;f.stopRequest(b,j)}},d));return"pending"},minlength:function(a,b,d){return this.optional(b)||this.getLength(c.trim(a),b)>=d},maxlength:function(a,
b,d){return this.optional(b)||this.getLength(c.trim(a),b)<=d},rangelength:function(a,b,d){a=this.getLength(c.trim(a),b);return this.optional(b)||a>=d[0]&&a<=d[1]},min:function(a,b,d){return this.optional(b)||a>=d},max:function(a,b,d){return this.optional(b)||a<=d},range:function(a,b,d){return this.optional(b)||a>=d[0]&&a<=d[1]},email:function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)},
url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},
date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a))},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 -]+/.test(a))return false;var d=0,e=0,f=false;a=a.replace(/\D/g,"");for(var g=a.length-1;g>=
0;g--){e=a.charAt(g);e=parseInt(e,10);if(f)if((e*=2)>9)e-=9;d+=e;f=!f}return d%10==0},accept:function(a,b,d){d=typeof d=="string"?d.replace(/,/g,"|"):"png|jpe?g|gif";return this.optional(b)||a.match(RegExp(".("+d+")$","i"))},equalTo:function(a,b,d){d=c(d).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){c(b).valid()});return a==d.val()}}});c.format=c.validator.format})(jQuery);
(function(c){var a={};if(c.ajaxPrefilter)c.ajaxPrefilter(function(d,e,f){e=d.port;if(d.mode=="abort"){a[e]&&a[e].abort();a[e]=f}});else{var b=c.ajax;c.ajax=function(d){var e=("port"in d?d:c.ajaxSettings).port;if(("mode"in d?d:c.ajaxSettings).mode=="abort"){a[e]&&a[e].abort();return a[e]=b.apply(this,arguments)}return b.apply(this,arguments)}}})(jQuery);
(function(c){!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.handle.call(this,e)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)},handler:function(e){arguments[0]=c.event.fix(e);arguments[0].type=b;return c.event.handle.apply(this,arguments)}}});c.extend(c.fn,{validateDelegate:function(a,
b,d){return this.bind(b,function(e){var f=c(e.target);if(f.is(a))return d.apply(f,arguments)})}})})(jQuery);

/*
** Unobtrusive validation support library for jQuery and jQuery Validate
** Copyright (C) Microsoft Corporation. All rights reserved.
*/
(function(a){var d=a.validator,b,e="unobtrusiveValidation";function c(a,b,c){a.rules[b]=c;if(a.message)a.messages[b]=a.message}function j(a){return a.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}function f(a){return a.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function h(a){return a.substr(0,a.lastIndexOf(".")+1)}function g(a,b){if(a.indexOf("*.")===0)a=a.replace("*.",b);return a}function m(c,d){var b=a(this).find("[data-valmsg-for='"+f(d[0].name)+"']"),e=a.parseJSON(b.attr("data-valmsg-replace"))!==false;b.removeClass("field-validation-valid").addClass("field-validation-error");c.data("unobtrusiveContainer",b);if(e){b.empty();c.removeClass("input-validation-error").appendTo(b)}else c.hide()}function l(e,d){var c=a(this).find("[data-valmsg-summary=true]"),b=c.find("ul");if(b&&b.length&&d.errorList.length){b.empty();c.addClass("validation-summary-errors").removeClass("validation-summary-valid");a.each(d.errorList,function(){a("<li />").html(this.message).appendTo(b)})}}function k(c){var b=c.data("unobtrusiveContainer"),d=a.parseJSON(b.attr("data-valmsg-replace"));if(b){b.addClass("field-validation-valid").removeClass("field-validation-error");c.removeData("unobtrusiveContainer");d&&b.empty()}}function n(){var b=a(this);b.data("validator").resetForm();b.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors");b.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}function i(c){var b=a(c),d=b.data(e),f=a.proxy(n,c);if(!d){d={options:{errorClass:"input-validation-error",errorElement:"span",errorPlacement:a.proxy(m,c),invalidHandler:a.proxy(l,c),messages:{},rules:{},success:a.proxy(k,c)},attachValidation:function(){b.unbind("reset."+e,f).bind("reset."+e,f).validate(this.options)},validate:function(){b.validate();return b.valid()}};b.data(e,d)}return d}d.unobtrusive={adapters:[],parseElement:function(b,h){var d=a(b),f=d.parents("form")[0],c,e,g;if(!f)return;c=i(f);c.options.rules[b.name]=e={};c.options.messages[b.name]=g={};a.each(this.adapters,function(){var c="data-val-"+this.name,i=d.attr(c),h={};if(i!==undefined){c+="-";a.each(this.params,function(){h[this]=d.attr(c+this)});this.adapt({element:b,form:f,message:i,params:h,rules:e,messages:g})}});a.extend(e,{__dummy__:true});!h&&c.attachValidation()},parse:function(b){var c=a(b).parents("form").andSelf().add(a(b).find("form")).filter("form");a(b).find(":input[data-val=true]").each(function(){d.unobtrusive.parseElement(this,true)});c.each(function(){var a=i(this);a&&a.attachValidation()})}};b=d.unobtrusive.adapters;b.add=function(c,a,b){if(!b){b=a;a=[]}this.push({name:c,params:a,adapt:b});return this};b.addBool=function(a,b){return this.add(a,function(d){c(d,b||a,true)})};b.addMinMax=function(e,g,f,a,d,b){return this.add(e,[d||"min",b||"max"],function(b){var e=b.params.min,d=b.params.max;if(e&&d)c(b,a,[e,d]);else if(e)c(b,g,e);else d&&c(b,f,d)})};b.addSingleVal=function(a,b,d){return this.add(a,[b||"val"],function(e){c(e,d||a,e.params[b])})};d.addMethod("__dummy__",function(){return true});d.addMethod("regex",function(b,c,d){var a;if(this.optional(c))return true;a=(new RegExp(d)).exec(b);return a&&a.index===0&&a[0].length===b.length});d.addMethod("nonalphamin",function(c,d,b){var a;if(b){a=c.match(/\W/g);a=a&&a.length>=b}return a});b.addSingleVal("accept","exts").addSingleVal("regex","pattern");b.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");b.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range");b.add("equalto",["other"],function(b){var i=h(b.element.name),j=b.params.other,d=g(j,i),e=a(b.form).find(":input[name='"+f(d)+"']")[0];c(b,"equalTo",e)});b.add("required",function(a){(a.element.tagName.toUpperCase()!=="INPUT"||a.element.type.toUpperCase()!=="CHECKBOX")&&c(a,"required",true)});b.add("remote",["url","type","additionalfields"],function(b){var d={url:b.params.url,type:b.params.type||"GET",data:{}},e=h(b.element.name);a.each(j(b.params.additionalfields||b.element.name),function(i,h){var c=g(h,e);d.data[c]=function(){return a(b.form).find(":input[name='"+f(c)+"']").val()}});c(b,"remote",d)});b.add("password",["min","nonalphamin","regex"],function(a){a.params.min&&c(a,"minlength",a.params.min);a.params.nonalphamin&&c(a,"nonalphamin",a.params.nonalphamin);a.params.regex&&c(a,"regex",a.params.regex)});a(function(){d.unobtrusive.parse(document)})})(jQuery);
/*! Lazy Load 2.0.0-beta.2 - MIT license - Copyright 2007-2017 Mika Tuupola */
!function(t,e){"object"==typeof exports?module.exports=e(t):"function"==typeof define&&define.amd?define([],e(t)):t.LazyLoad=e(t)}("undefined"!=typeof global?global:this.window||this.global,function(t){"use strict";function e(t,e){this.settings=r(s,e||{}),this.images=t||document.querySelectorAll(this.settings.selector),this.observer=null,this.init()}const s={src:"data-src",srcset:"data-srcset",selector:".lazyload"},r=function(){let t={},e=!1,s=0,o=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(e=arguments[0],s++);for(;s<o;s++)!function(s){for(let o in s)Object.prototype.hasOwnProperty.call(s,o)&&(e&&"[object Object]"===Object.prototype.toString.call(s[o])?t[o]=r(!0,t[o],s[o]):t[o]=s[o])}(arguments[s]);return t};if(e.prototype={init:function(){if(!t.IntersectionObserver)return void this.loadImages();let e=this,s={root:null,rootMargin:"0px",threshold:[0]};this.observer=new IntersectionObserver(function(t){t.forEach(function(t){if(t.intersectionRatio>0){e.observer.unobserve(t.target);let s=t.target.getAttribute(e.settings.src),r=t.target.getAttribute(e.settings.srcset);"img"===t.target.tagName.toLowerCase()?(s&&(t.target.src=s),r&&(t.target.srcset=r)):t.target.style.backgroundImage="url("+s+")"}})},s),this.images.forEach(function(t){e.observer.observe(t)})},loadAndDestroy:function(){this.settings&&(this.loadImages(),this.destroy())},loadImages:function(){if(!this.settings)return;let t=this;this.images.forEach(function(e){let s=e.getAttribute(t.settings.src),r=e.getAttribute(t.settings.srcset);"img"===e.tagName.toLowerCase()?(s&&(e.src=s),r&&(e.srcset=r)):e.style.backgroundImage="url("+s+")"})},destroy:function(){this.settings&&(this.observer.disconnect(),this.settings=null)}},t.lazyload=function(t,s){return new e(t,s)},t.jQuery){const s=t.jQuery;s.fn.lazyload=function(t){return t=t||{},t.attribute=t.attribute||"data-src",new e(s.makeArray(this),t),this}}return e});

var appModule = (function () {
    var configs = {
        googleAuthUrl: 'https://accounts.google.com/o/oauth2/auth?',
        googleValidUrl: 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=',
        googleUserInfoUrl: 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=',
        googleScope: 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
        facebookAppId: '117134849575084',
        googleClientId: '430060160652-v6547hpru6paae2boas196b4j7l1qcnr.apps.googleusercontent.com',
        redirectUrl: window.location.href.indexOf('https://luatvietnam.vn') > -1 ? 'https://luatvietnam.vn/' : 'https://luat.icsoft.vn/',
        changeTimer: false
    };
    ajaxEvents =
    {
        OnBegin: function () {
            showLoading();
        },
        OnComplete: function (element) {
            hideLoading();
        },
        LoginOnSuccess: function (response, status, xhr) {
            if (response != null) {
                if (response.Completed) {
                    $('#_login').removeClass('target-expanded').addClass('target-hidden');
                    if (response.ReturnUrl != null && response.ReturnUrl.length > 0) {
                        //Kích hoạt tk thành công => chuyển hướng về homepage
                        if (response.ReturnUrl.indexOf('NewUserActive') !== -1) {
                            window.location.assign('/');
                        } else if (response.returnUrl == '/giao-dien-ca-nhan.html') {
                            setTimeout(function () {
                                window.location.href = response.ReturnUrl;
                            },
                                100);
                        } else if (response.returnUrl == '/user/dang-ky-linh-vuc-quan-tam.html') {
                            setTimeout(function () {
                                window.location.href = response.ReturnUrl;
                            },
                                100);
                        }
                        else if (response.ReturnUrl == '/user/dang-nhap-tai-khoan.html') {
                            setTimeout(function () {
                                window.location.href = '/';
                            },
                                100);
                        } else if (response.ReturnUrl == '/pldn/dang-nhap-tai-khoan.html') {
                            setTimeout(function () {
                                window.location.href = '/phap-ly-doanh-nghiep.html';
                            },
                                100);
                        }
                        else {
                            setTimeout(function () {
                                window.location.href = response.ReturnUrl;
                            },
                                100);
                        }
                    } else window.location.href = '/';
                } else {
                    if (response.Message != null && response.Message.length > 0) {
                        var username = '';
                        if (response.Message.indexOf('The provided anti-forgery token was meant for user') > -1) {
                            response.Message = response.Message.replace(/"/g, "'");
                            var str = response.Message.match(/'(.*?)'/g);
                            if (str != null) username = str[1];
                        }
                        var msg = username.length > 0
                            ? 'Tài khoản: <b>' +
                            username +
                            '</b> hiện đã đăng nhập. Quý khách vui lòng refresh lại trang web để tiếp tục sử dụng.'
                            : response.Message;
                        //msg += '<p>Để được hỗ trợ về đăng nhập tài khoản, Quý khách vui lòng liên hệ với LuatVietnam:</p>';
                        //msg += '<p>Hotline: <a href="tel:0938361919" title="Hotline: 0938361919" style="color: #ed1d35">0938361919</a></p>';
                        //msg += '<p>Email: <a href="mailto:cskh@luatvietnam.vn" title="Email: cskh@luatvietnam.vn">cskh@luatvietnam.vn</a></p>';
                        //msg += '<p><a href="javascript:void(0)" rel="nofollow" id="chat-online" title="Chat trực tuyến" style="color: #ed1d35">Chat trực tuyến</a></p>';

                        if (msg.indexOf('hiện đang đăng nhập') > -1) {
                            showMessageLogin({
                                buttons: [
                                    {
                                        Name: 'Tiếp tục',
                                        ClassName: 'btn-law-ok',
                                        ClickEvent: function () {
                                            $(`#_message`).remove();
                                            $('#login').find('form').submit();
                                        }
                                    }],
                                messages: [msg]
                            });
                        }
                        else {
                            showMessageLogin({
                                messages: [msg]
                            });
                        }
                    }
                }
            }
            hideLoading();
        },
        OnSuccess: function (response, status, xhr) {
            if (response != null) {
                if (response.Message != null) {
                    var username = '', msg = response.Message;
                    if (response.Message.indexOf('The provided anti-forgery token was meant for user') > -1) {
                        response.Message = response.Message.replace(/"/g, "'");
                        var str = response.Message.match(/'(.*?)'/g);
                        if (str != null) username = str[1];

                        msg = username.length > 0
                            ? 'Tài khoản: <b>' +
                            username +
                            '</b> hiện đã đăng nhập. Quý khách vui lòng refresh lại trang web để tiếp tục sử dụng.'
                            : response.Message;
                        msg += '<p>Để được hỗ trợ về đăng nhập tài khoản, Quý khách vui lòng liên hệ với LuatVietnam:</p>';
                        msg += '<p>Hotline: <a href="tel:0938361919" title="Hotline: 0938361919" style="color: #ed1d35">0938361919</a></p>';
                        msg += '<p>Email: <a href="mailto:cskh@luatvietnam.vn" title="Email: cskh@luatvietnam.vn">cskh@luatvietnam.vn</a></p>';
                    }

                    showMessage({
                        autoClose: true,
                        buttons: [{
                            Name: 'Đóng',
                            ClassName: 'btn-law',
                            ClickEvent: function () {

                                if ($(this).attr('data-clicked')) {
                                    return
                                }

                                if (!response.Completed) {
                                    return;
                                }

                                if (response.Callback != null && response.Callback.length > 0) {
                                    eval(b64DecodeUnicode(response.Callback));
                                }

                                $(this).attr('data-clicked', true)

                                if (response.Completed && response.ReturnUrl != null) {
                                    window.location.href = response.ReturnUrl;
                                    return;
                                }
                            }
                        }],
                        messages: [msg]
                    });
                } else if (response.Completed) {
                    if (response.ReturnUrl != null) {
                        window.location.href = response.ReturnUrl;
                        return;
                    }

                    if (response.Callback != null && response.Callback.length > 0) {
                        eval(b64DecodeUnicode(response.Callback));
                    }
                } else {
                    if (response.ReturnUrl != null) {
                        window.location.href = response.ReturnUrl;
                        return;
                    }
                }
            }
            hideLoading();
        },
        OnFailed: function () {
            hideLoading();
            showMessage({
                messages: ['Quý khách vui lòng thử lại sau.']
            });
        }
    };
    function ajaxError() {
        $(document).ajaxError(function (e, xhr) {
            if (xhr.status === 403) {
                var response = $.parseJSON(xhr.responseText);
                if (response.Message != null && (response.Message == 'ptvb' || response.Message == 'ChiDanThayDoi' || response.Message.match('^Rất tiếc. Quý khách không xem được nội dung này.'))) {
                    return;
                }
                $('#ReturnUrl').val(window.location.href.replace(window.location.origin, ''));
                $('.tabs-login-item, .tabs-login-content').removeClass('active');
                $('.tabs-login-item[data-tab="login"]').addClass('active');
                $('#login').addClass('active');
                $('#_login').addClass('target-expanded').css('display', '');
            } //else {
            //showMessage({ messages : ['Quý khách vui lòng thử lại sau.'] })
            //}
            hideLoading();
        });
    }
    function initLazyload() {
        if (jQuery().lazyload) { $('.lazyload').lazyload(); }
    }
    function init() {
        $('.opt-dropdown.dropdown-checkbox').each(function () {
            setupFilterCheckboxSearchForm(this);
        });
    }
    function initEvents() {
        $('.btn-menu-mega').on('click', function () {
            $('.menu-mega').toggleClass('open-menu')
            $('.btn-menu-mega').toggleClass('active')
        })
        $('.close-menu-mega').on('click', function () {
            $('.menu-mega').removeClass('open-menu')
            $('.btn-menu-mega').removeClass('active')
        })
        $(document).on('keyup change', '.input-menulvvb', function () {
            var self = $(this), searchTerm = self.val().trim();

            function normalizeString(str) {
                return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase();
            }

            function resetToInitialState() {
                const parent = self.closest('.col-mega'),
                    menuItems = parent.find('.ul-menu-list li');
                var isExpanded = parent.find('.btn-more-menu').text() === 'Thu gọn';
                menuItems.each(function () {
                    var li = $(this);
                    li.removeClass('highlight target-hidden');

                    if (!li.data('available') && !isExpanded) {
                        li.addClass('target-hidden');
                    }
                });
            }

            function highlightText(element, keyword) {
                var text = element.text();
                var normalizedText = normalizeString(text);
                var normalizedKeyword = normalizeString(keyword);

                if (normalizedKeyword.length > 0) {
                    var keywordIndex = normalizedText.indexOf(normalizedKeyword);
                    if (keywordIndex !== -1) {
                        var originalKeyword = text.substr(keywordIndex, keyword.length);
                        var highlightedText = text.replace(new RegExp(originalKeyword, 'gi'), function (match) {
                            return '<span class="highlight">' + match + '</span>';
                        });
                        element.html(highlightedText);
                    } else {
                        element.html(text);
                    }
                } else {
                    element.html(text);
                }
            }

            function highlightAndShowKeyword(keyword) {
                var keywordExists = keyword.length > 0;

                $('.ul-menu-list li').each(function () {
                    var li = $(this);
                    var link = li.find('a');

                    if (link.length) {
                        link.each(function () {
                            highlightText($(this), keyword);
                        });
                    } else {
                        highlightText(li, keyword);
                    }

                    if (keywordExists && li.find('.highlight').length === 0) {
                        li.addClass('target-hidden');
                    } else {
                        li.removeClass('target-hidden');
                    }
                });

                if (!keywordExists) {
                    resetToInitialState();
                }
            }

            highlightAndShowKeyword(searchTerm);
        });

        $(document).on('click', '.btn-more-menu', function (event) {
            event.preventDefault();
            const self = $(this), parent = self.closest('.col-mega'),
                menuItems = parent.find('.ul-mega'),
                hiddenItems = menuItems.find('li.target-hidden'),
                availableItems = menuItems.find('li[data-available="1"]'),
                initialItems = availableItems.length

            if (hiddenItems.length) {
                hiddenItems.removeClass('target-hidden')
                self.text('Thu gọn')
            } else {
                menuItems.find('li').addClass('target-hidden')

                availableItems.slice(0, initialItems).removeClass('target-hidden')

                if (availableItems.length < initialItems) {
                    menuItems.find('li:not([data-available])')
                        .slice(0, initialItems - availableItems.length)
                        .removeClass('target-hidden')
                }

                self.text('Xem thêm')
            }
        })
        $(document).on('keyup', 'input', function (event) {
            if (event.which === 13) {
                event.preventDefault();
                var form = $(this).closest('form');
                if (form && form.find('.btn-submit').first().length > 0) {
                    form.submit();
                }
            }
        })
        $(document).off('click', '.btn-submit').on('click', '.btn-submit', function () {
            $(this).closest('form').submit();
        })
        $(document).on('submit', 'form', function (e) {
            var self = $(this), action = self.data('action'), reCaptchaToken = self.find('input[type="hidden"][name$="ReCaptchaToken"]').first();
            if (reCaptchaToken.length > 0 && typeof action !== 'undefined') {
                getRecaptchaToken(self, action);
            }
        });
        $(document).on('click', '.btn-tips-thong-bao', function (event) {
            event.preventDefault();
            var self = $(this), url = self.data('url') || '', id = self.data('id') || 0
            if (url.trim().length > 0) {
                if (id > 0) {
                    fetchData(
                        {
                            type: 'POST',
                            url: '/ajax/CustomerNotifyUpdateComplete',
                            data: { id: id }
                        })
                        .then((response) => {
                            if (response.Completed) {
                                window.location.href = url;
                                return;
                            }

                            if (response.Message != null && response.Message.length > 0) {
                                appModule.showMessage({ messages: [response.Message] });
                            }
                        })
                        .catch((error) => {
                            console.error(error)
                        })
                }
            }
        })
        $('form#_register, form#RegisterFormTarget').on('submit', function (e) {
            e.preventDefault();
            return checkboxTermsOfUseRequired();
        });
        $(document).on('change', '.onchange-submit', function () {
            $(this).closest('form').submit();
        })
        $(document).on('change', '.onchange-redirect', function () {
            var url = $(this).find(':selected').attr('data-url');
            if (typeof url != 'undefined' && url.length > 0)
                window.location.href = url;
        })
        $(document).on('click', '.scroll-to', function () {
            var self = $(this), id = self.data('id');
            if (typeof id != 'undefined') {
                $('html, body').animate({
                    scrollTop: parseInt($(`#${id}`).offset().top)
                }, 500);
            }
        })
        $(document).on('click', '.lawsVnsLogin', function () {
            $('.popup-bg').removeClass('target-expanded').addClass('target-hidden');
        })
        $(document).on('change keyup paste', 'input[name="CustomerName"]', function () {
            var self = $(this), customerName = self.val().trim();
            checkCustomerLoginByParent(self, customerName);
        })
        if ($('#category-scroll').length) {
            var self = $('#category-scroll'), tab = self.find('.tab-page').first(), scrollElement = self.find('.tab-page .tab-ban-tin.active').first();
            if (tab.length && scrollElement.length) {
                tab.animate({ scrollLeft: scrollElement.offset().left -= 100 });
            }
        }
        $('.category-more-icon').click(function () {
            $("#category-scroll").animate({ scrollLeft: "+=100px" });
        });
        $('.sidebar-toggle').off('click').on('click', function () {
            var overlay = $('.sidebar-overlay');
            var sidebar = $('#sidebardefault');
            sidebar.toggleClass('open');
            if ((sidebar.hasClass('sidebar-fixed-left') || sidebar.hasClass('sidebar-fixed-right')) && sidebar.hasClass('open')) {
                overlay.addClass('active');
            } else {
                overlay.removeClass('active');
            }
        })
        $('.sidebar-overlay').off('click').on('click', function () {
            $(this).removeClass('active');
            $('#sidebardefault').removeClass('open');
        })
        if ($('#customer-messages-container').length > 0 && $('#customer-messages-right').length > 0) {
            var customerMessages = $('#customer-messages-right').html();
            $('#customer-messages-right').remove();
            $('#customer-messages-container').html(customerMessages)
        }
        const isHover = e => e.parentElement.querySelector(':hover') === e;
        $('.btn-thongbao').click(function () {
            if ($('.w3-thongbao').hasClass('showme')) {
                $('.w3-thongbao').removeClass('showme');
            }
            else {
                $('.w3-thongbao').addClass('showme');
            }
        });

        $(document).on('click', '.w3-close-thongbao', function () {
            $('.w3-thongbao').removeClass('showme');
        })
        $(document).on('click', '.tabs-login-item', function () {
            $('.tabs-login-item, .tabs-login-content').removeClass('active');
            $(this).addClass('active');
            $(`#${$(this).data('tab')}`).addClass('active');
            $(`.tabs-login-content[data-content="${$(this).data('content')}"]`).addClass('active');
        })
        $(document).on('click', '.view-more2', function () {
            $('.menu-nav-sub2').addClass('show_hight');
        })
        $(document).on('click', '.close-more2', function () {
            $('.menu-nav-sub2').removeClass('show_hight');
        })
        $(document).on('click', '.tab-nav-doc-item', function () {
            $('.tab-nav-doc-item', $(this).parent('.tab-nav-doc')).removeClass('active');
            $(this).addClass('active');
        })
        $(document).on('click', '.tabvb-item', function () {
            $('.tabvb-item', $(this).parent('.tabvb-left')).removeClass('active');
            $(this).addClass('active');
        })
        $(document).on('change', '.orderby-filter', function () {
            var self = $(this), parent = self.closest('.tabvb'),
                currentLink = parent.find('.tabvb-item.active').first();

            if (currentLink.length > 0) {
                var urlRequest = currentLink.data('url');

                if (typeof urlRequest != 'undefined') {

                    urlRequest = updateQueryStringParameter(urlRequest, 'FilterBy', self.val());

                    currentLink.attr('data-url', urlRequest);

                    currentLink.trigger('click');
                }
            }
        })
        $(document).on('click', '[data-ajax="1"]', function () {
            var self = $(this), urlRequest = self.attr('data-url'), elementUpdate = self.data('id'),
                dataType = self.data('datatype') || 'html',
                type = self.data('type') || 'get', parent = self.closest('.tabvb');

            if (parent.length > 0) {

                var orderBySelect = parent.find('.orderby-filter').first();

                if (orderBySelect.length > 0) {

                    urlRequest = updateQueryStringParameter(urlRequest, 'FilterBy', orderBySelect.find('option:selected').val());

                    self.attr('data-url', urlRequest);
                }
            }


            if (typeof urlRequest != 'undefined' && typeof elementUpdate != 'undefined') {
                fetchData(
                    {
                        url: urlRequest,
                        dataType: dataType,
                        type: type
                    })
                    .then((response) => {
                        if (response != null && response.length > 0) {
                            $(`#${elementUpdate}`).html(response);
                        }
                        if (response.Callback != null && response.Callback.length > 0) {
                            eval(atob(response.Callback));
                        }
                    })
                    .catch((error) => {
                        console.error(error)
                    })
            }
        })
        $(document).on('click', '.btn-user-login', function () {
            $('.content-dropdown-login').addClass('show_dropdown');
        })
        $(document).on('click', '.close-fix', function () {
            $('.content-dropdown-login').removeClass('show_dropdown');
        })
        $(document).on('click', '.ic-show-pass', function (e) {
            var parent = $(this).closest('.form-group'), password = parent.find('input').first();
            $(this).remove();
            parent.append('<i class="iconlvn-eye-close ic-hidden-pass"></i>');
            password.prop("type", "text");
        });
        $(document).on('click', '.ic-hidden-pass', function (e) {
            var parent = $(this).closest('.form-group'), password = parent.find('input').first();
            $(this).remove();
            parent.append('<i class="iconlvn-eye-open ic-show-pass"></i>');
            password.prop("type", "password");
        });
        $(document).on('click', '.logout', function () {
            showMessage({
                buttons: [{
                    Name: 'Đóng',
                    ClassName: 'btn-law',
                    ClickEvent: function () {
                        //$('#_message').removeClass('target-expanded').addClass('target-hidden').css('display', '');
                    }
                },
                {
                    Name: 'Đồng ý',
                    ClassName: 'btn-law-ok',
                    ClickEvent: function () {
                        //lawsVns.logs.webpagelogs('pageview', '/user/dang-xuat-tai-khoan.html', pageTitle, source);
                        window.location.href = '/user/dang-xuat-tai-khoan.html';
                    }
                }],
                messages: ['Quý khách muốn đăng xuất khỏi hệ thống?']
            });
        })
        $(document).on('click', '.google-login', function (e) {
            e.preventDefault();
            var url = configs.googleAuthUrl + 'scope=' + configs.googleScope + '&client_id=' + configs.googleClientId + '&redirect_uri=' + configs.redirectUrl + '&response_type=token';
            var googlePopup = window.open(url, 'Đăng nhập tài khoản Google', 'width=800, height=600');

            var time = window.setInterval(function () {
                try {
                    if (googlePopup.document.URL.indexOf(configs.redirectUrl) !== -1) {
                        window.clearInterval(time);
                        var accessToken = getGoogleResponse(googlePopup.document.URL, 'access_token');
                        googlePopup.close();
                        requestGoogleAccountInfo(accessToken);
                    }
                }
                catch (e) {
                    console.log(e);
                }
            }, 500);
        });
        $(document).on('click', '.facebook-login', function (e) {
            e.preventDefault();
            facebookLogin();
        });
        $(document).on('click', '.save-doc', function () {
            var docId = $(this).data('id');
            if (typeof docId != 'undefined') {
                fetchData(
                    {
                        url: '/ajax/saveDocument',
                        dataType: 'json',
                        type: 'get',
                        data:
                        {
                            docId: docId
                        }
                    })
                    .then((resp) => {
                        if (resp.Message != null && resp.Message.length > 0) {
                            showMessage({
                                messages: [resp.Message]
                            });
                        }
                    })
                    .catch((error) => {
                        console.error(error)
                    })
            }
        });
        $(document).on('keyup change',
            '#text-search-field',
            function () {
                var searchTerm = $(this).val();
                $('#search-fields').removeHighlight();
                if (searchTerm) {
                    $('#search-fields').highlight(searchTerm);
                }
            });

        /*begin PartialHomeSearchBox*/
        $(document).on('click', '.search-clear', function (event) {
            const self = $(event.target), parent = self.closest('.search-suggest'),
                searchBox = parent.find('.search-box').first()
            searchContent = parent.find('.search-content').first();
            searchContent.empty();
            searchBox.removeClass('open-search');
            if ($('.search-field').length) {
                $('.search-field').val('');
            }
        })
        $(document).on('keyup', '.input-search-all-suggest', debounce((e) => {
            const self = $(e.target),
                inputValue = self.val().trim(), parent = self.closest('.search-suggest'),
                activeTab = $('.search-tab a.active', parent).text();
            iconContainer = self.next('.search-clear'),
                searchBox = parent.find('.search-box').first()
            searchContent = parent.find('.search-content').first()

            let urlRequest = '/van-ban/docs/search-suggest.html'
            if (activeTab == 'Tin tức') {
                urlRequest = '/tin-bai/search-suggest.html'
            } else if (activeTab == 'Hỏi đáp') {
                urlRequest = '/van-ban/faqs/search-suggest.html'
            } else if (activeTab == 'Bản án') {
                urlRequest = '/ban-an/search-suggest.html'
            }

            var code = (e.keyCode || e.which)

            if (inputValue.length == 0) {
                searchContent.empty()
                searchBox.removeClass('open-search')
                return
            }

            if (code == 37 || code == 38 || code == 39 || code == 40 || code == 13) {
                return
            }

            fetchData({
                url: urlRequest,
                type: 'GET',
                dataType: 'json',
                data:
                {
                    keywords: inputValue
                },
                beforeSend: () => {
                    iconContainer.html('<i class="loader"></i>')
                },
                always: () => {
                    iconContainer.html('<i class="iconlvn-remove"></i>')
                }
            }).then(response => {

                searchContent.empty()

                let docName = '', docNameClear = '', docSuggests = []


                if (response?.data?.docSearchSuggestsList && response.data.docSearchSuggestsList.length > 0) {

                    for (var index = 0; index < response.data.docSearchSuggestsList.length && index < 3; index++) {
                        docSuggests.push(response.data.docSearchSuggestsList[index].docId);
                        docName = response.data.docSearchSuggestsList[index].h1Tag;
                        if (docName == null || docName == '') {
                            docName = response.data.docSearchSuggestsList[index].docName;
                        }
                        docNameClear = docName.replaceAll('<span class="bg_yelow">', '').replaceAll('<span class="bg_suggest">', '').replaceAll('</span>', '');


                        searchContent.append(`<div>
                                <a href="${response.data.docSearchSuggestsList[index].docUrl}" target="_blank" title="${docNameClear}">${docName}</a>
                            </div>`)
                    }
                }
                if (response?.data?.docSearchsList && response.data.docSearchsList.length > 0) {

                    for (var index = 0; index < response.data.docSearchsList.length; index++) {

                        if (!docSuggests.includes(response.data.docSearchsList[index].docId)) {
                            docName = response.data.docSearchsList[index].h1Tag;
                            if (docName == null || docName == '') {
                                docName = response.data.docSearchsList[index].docName;
                            }
                            docNameClear = docName.replaceAll('<span class="bg_yelow">', '').replaceAll('<span class="bg_suggest">', '').replaceAll('</span>', '');

                            searchContent.append(`<div>
                                <a href="${response.data.docSearchsList[index].docUrl}" target="_blank" title="${docNameClear}">${docName}</a>
                            </div>`)

                        }
                    }
                }
                if (response?.data?.lawJudgSearchsList && response.data.lawJudgSearchsList.length > 0) {

                    for (var index = 0; index < response.data.lawJudgSearchsList.length; index++) {

                        docSuggests.push(response.data.lawJudgSearchsList[index].docId)

                        searchContent.append(`<div class="suggest">
                                <a href="https://luatvietnam.vn${response.data.lawJudgSearchsList[index].docUrl}" target="_blank">${response.data.lawJudgSearchsList[index].title}</a>
                            </div>`)
                    }
                }

                if (response.Data && response.Data.length > 0) {
                    let dataUrl = '', title = ''
                    for (var index = 0; index < response.Data.length; index++) {
                        if (response.Data[index].DocUrl) {
                            dataUrl = response.Data[index].DocUrl
                        } else {
                            dataUrl = response.Data[index].ArticleUrl
                        }
                        title = response.Data[index].Title
                        if (activeTab == 'Hỏi đáp') {
                            title = highlightKeywords(title, inputValue)
                        }
                        searchContent.append(`<div>
                                <a href="${dataUrl}" target="_blank">${title}</a>
                            </div>`)
                    }
                }
                if (response.data && response.data.length > 0) {
                    let dataUrl = '', title = ''
                    for (var index = 0; index < response.data.length; index++) {
                        if (response.data[index].docUrl) {
                            dataUrl = response.data[index].docUrl
                        } else {
                            dataUrl = response.data[index].articleUrl
                        }
                        title = response.data[index].title
                        if (activeTab == 'Hỏi đáp') {
                            title = highlightKeywords(title, inputValue)
                        }
                        searchContent.append(`<div>
                                <a href="${dataUrl}" target="_blank">${title}</a>
                            </div>`)
                    }
                }

                if (searchContent.children().length == 0) {
                    searchContent.html('<div>Không tìm thấy kết quả phù hợp.</div>')
                }

                searchBox.addClass('open-search')

            }).catch((error) => {
                console.log(error)
            })

        }, 350))

        $(document).on('keypress', '.input-search-all-suggest', function (e) {
            var code = (e.keyCode || e.which)
            if (code == 13) {
                $(this).closest('form').submit();
            }
        });

        $(document).on('click', '#suggested-doc-search', function (event) {
            const self = $(event.target), urlRequest = '/van-ban/docs/search-suggest.html',
                parent = self.closest('.search-suggest'),
                form = parent.find('form').first(),
                inputValue = parent.find('.input-search-all-suggest').first().val().trim(),
                searchBox = parent.find('.search-box').first()
            searchContent = parent.find('.search-content').first()

            if (self.hasClass('active')) {
                return
            }
            $('.search-tab a', parent).removeClass('active')
            self.addClass('active')
            form.attr('action', '/van-ban/tim-van-ban.html')
            fetchData({
                url: urlRequest,
                type: 'GET',
                dataType: 'json',
                data: { keywords: inputValue },
                beforeSend: () => {
                    self.html('<i class="loader"></i>')
                },
                always: () => {
                    self.text('Văn bản')
                }
            }).then(response => {

                searchContent.empty()

                let docName = '', docNameClear = '', docSuggests = []

                if (response?.data?.docSearchSuggestsList && response.data.docSearchSuggestsList.length > 0) {

                    for (var index = 0; index < response.data.docSearchSuggestsList.length && index < 3; index++) {
                        docSuggests.push(response.data.docSearchSuggestsList[index].docId);
                        docName = response.data.docSearchSuggestsList[index].h1Tag;
                        if (docName == null || docName == '') {
                            docName = response.data.docSearchSuggestsList[index].docName;
                        }
                        docNameClear = docName.replaceAll('<span class="bg_yelow">', '').replaceAll('<span class="bg_suggest">', '').replaceAll('</span>', '');

                        searchContent.append(`<div>
                                <a href="${response.data.docSearchSuggestsList[index].docUrl}" target="_blank" title="${docNameClear}">${response.data.docSearchSuggestsList[index].docName}</a>
                            </div>`)
                    }
                }
                if (response?.data?.docSearchsList && response.data.docSearchsList.length > 0) {

                    for (var index = 0; index < response.data.docSearchsList.length; index++) {

                        if (!docSuggests.includes(response.data.docSearchsList[index].docId)) {
                            docName = response.data.docSearchsList[index].h1Tag;
                            if (docName == null || docName == '') {
                                docName = response.data.docSearchsList[index].docName;
                            }
                            docNameClear = docName.replaceAll('<span class="bg_yelow">', '').replaceAll('<span class="bg_suggest">', '').replaceAll('</span>', '');

                            searchContent.append(`<div>
                                <a href="${response.data.docSearchsList[index].docUrl}" target="_blank" title="${docNameClear}">${docName}</a>
                            </div>`)

                        }
                    }
                }

                if (searchContent.children().length == 0) {
                    searchContent.html('<div>Không tìm thấy kết quả phù hợp.</div>')
                }

                searchBox.addClass('open-search')

            }).catch((error) => {
                console.log(error)
            })
        })
        $(document).on('click', '#suggested-article-search', function (event) {
            const self = $(event.target), urlRequest = '/tin-bai/search-suggest.html',
                parent = self.closest('.search-suggest'),
                form = parent.find('form').first(),
                inputValue = parent.find('.input-search-all-suggest').first().val().trim(),
                searchBox = parent.find('.search-box').first()
            searchContent = parent.find('.search-content').first()

            if (self.hasClass('active')) {
                return
            }
            $('.search-tab a', parent).removeClass('active')
            self.addClass('active')
            form.attr('action', '/tin-bai/tim-tin-bai.html')
            fetchData({
                url: urlRequest,
                type: 'GET',
                dataType: 'json',
                data: { keywords: inputValue },
                beforeSend: () => {
                    self.html('<i class="loader"></i>')
                },
                always: () => {
                    self.text('Tin tức')
                }
            }).then(response => {

                searchContent.empty()

                let title = ''

                if (response.data != null && response.data.length > 0) {

                    for (var index = 0; index < response.data.length; index++) {

                        searchContent.append(`<div>
                            <a href="${response.data[index].articleUrl}" target="_blank" title="${title}">${response.data[index].title}</a>
                        </div>`)
                    }
                }

                if (searchContent.children().length == 0) {
                    searchContent.html('<div>Không tìm thấy kết quả phù hợp.</div>')
                }

                searchBox.addClass('open-search')

            }).catch((error) => {
                console.log(error)
            })
        })
        $(document).on('click', '#suggested-faqs-search', function (event) {
            const self = $(event.target), urlRequest = '/van-ban/faqs/search-suggest.html',
                parent = self.closest('.search-suggest'),
                form = parent.find('form').first(),
                inputValue = parent.find('.input-search-all-suggest').first().val().trim(),
                searchBox = parent.find('.search-box').first()
            searchContent = parent.find('.search-content').first()

            if (self.hasClass('active')) {
                return
            }
            $('.search-tab a', parent).removeClass('active')
            self.addClass('active')
            form.attr('action', '/van-ban/tim-luat-su-tu-van.html')
            fetchData({
                url: urlRequest,
                type: 'GET',
                dataType: 'json',
                data: { keywords: inputValue },
                beforeSend: () => {
                    self.html('<i class="loader"></i>')
                },
                always: () => {
                    self.text('Hỏi đáp')
                }
            }).then(response => {

                searchContent.empty()

                if (response.data != null && response.data.length > 0) {
                    let title = ''
                    for (var index = 0; index < response.data.length; index++) {
                        title = highlightKeywords(response.data[index].title, inputValue)

                        searchContent.append(`<div>
                            <a href="${response.data[index].articleUrl}" target="_blank">${title}</a>
                        </div>`)
                    }
                }

                if (searchContent.children().length == 0) {
                    searchContent.html('<div>Không tìm thấy kết quả phù hợp.</div>')
                }

                searchBox.addClass('open-search')

            }).catch((error) => {
                console.log(error)
            })
        })
        $(document).on('click', '#suggested-lawjudg-search', function (event) {
            const self = $(event.target), urlRequest = '/ban-an/search-suggest.html',
                parent = self.closest('.search-suggest'),
                form = parent.find('form').first(),
                inputValue = parent.find('.input-search-all-suggest').first().val().trim(),
                searchBox = parent.find('.search-box').first()
            searchContent = parent.find('.search-content').first()

            if (self.hasClass('active')) {
                return
            }
            $('.search-tab a', parent).removeClass('active')
            self.addClass('active')
            form.attr('action', '/ban-an/tim-ban-an.html')
            fetchData({
                url: urlRequest,
                type: 'GET',
                dataType: 'json',
                data: { keywords: inputValue },
                beforeSend: () => {
                    self.html('<i class="loader"></i>')
                },
                always: () => {
                    self.text('Bản án')
                }
            }).then(response => {

                searchContent.empty()

                //if (response?.data?.lawJudgSearchSuggestsList && response.data.lawJudgSearchSuggestsList.length > 0) {

                //    for (var index = 0; index < 3 && index < response.data.lawJudgSearchSuggestsList.length; index++) {

                //        docSuggests.push(response.data.lawJudgSearchSuggestsList[index].docId)

                //        searchContent.append(`<div class="suggest">
                //                <a href="${response.data.lawJudgSearchSuggestsList[index].docUrl}" target="_blank">${response.data.lawJudgSearchSuggestsList[index].title}</a>
                //            </div>`)
                //    }
                //}

                if (response?.data?.lawJudgSearchsList && response.data.lawJudgSearchsList.length > 0) {
                    for (var index = 0; index < response.data.lawJudgSearchsList.length; index++) {
                        searchContent.append(`<div>
                                <a href="https://luatvietnam.vn${response.data.lawJudgSearchsList[index].docUrl}" target="_blank">${response.data.lawJudgSearchsList[index].title}</a>
                            </div>`)
                    }
                }

                if (searchContent.children().length == 0) {
                    searchContent.html('<div>Không tìm thấy kết quả phù hợp.</div>')
                }

                searchBox.addClass('open-search')

            }).catch((error) => {
                console.log(error)
            })
        })
        $('.search-field').keyup(function (e) {
            if ($(this).val().trim() == '') {
                $('.searchlawauto').addClass('empty-icon');
            } else {
                $('.searchlawauto').removeClass('empty-icon');
            }
        });
        /*end PartialHomeSearchBox*/
        /* Góp ý */
        $(document).on('click',
            '#gopyv2',
            function (event) {
                event.preventDefault();
                appModule.fetchData({
                    type: 'GET',
                    dataType: 'html',
                    url: '/Ajax/PartialGopY2'
                }).then(response => {
                    if (response.length > 0) {
                        $('#_gopy').find('.popup-content').first().html(response);

                        var form = $('#FormGopYv2');
                        form.removeData('validator');
                        form.removeData('unobtrusiveValidation');
                        $.validator.unobtrusive.parse(form);
                        $('#_gopy').removeClass('target-hidden').addClass('target-expanded');
                        appModule.getRecaptchaToken(form, 'FeedBacksV2')
                    }
                })
            });
        $(document).on('click',
            '#btn_attachmentGopY_10w2p3',
            function (e) {
                e.preventDefault();
                $('#input_attachmentGopY_6cnnq3').trigger('click');
            });
        $(document).on('change',
            '#input_attachmentGopY_6cnnq3',
            function (e) {
                e.preventDefault();
                if (this.files.length > 0) {
                    var formData = new FormData(),
                        fileUploads = this.files,
                        maxSize = 10,
                        limitNumberUploads = 1,
                        index = 0,
                        validExtensions = ['jpeg', 'jpg', 'png', 'gif', 'bmp', 'pdf', 'doc', 'docx'],
                        fileNameExt = '';
                    if ($(':input[type=hidden][name=FilePath]', $('#filePath_pw9l69')).length + fileUploads.length <= limitNumberUploads) {
                        if (fileUploads.length > limitNumberUploads) {
                            lawsVns.showMessage({ messages: ['Vui lòng chọn tối đa ' + limitNumberUploads + ' file đính kèm (PDF, word, ảnh).'] });
                            return;
                        }
                        for (; index < fileUploads.length; index++) {
                            fileNameExt = fileUploads[index].name.split('.').pop().toLowerCase();
                            if (validExtensions.indexOf(fileNameExt) == -1) {
                                lawsVns.showMessage({ messages: ['Vui lòng chọn file đính kèm (PDF, word, ảnh).'] });
                                return;
                            }
                            if (fileUploads[index].size / 1024 / 1024 > maxSize) {
                                lawsVns.showMessage({ messages: ['Dung lượng file đính kèm vượt quá ' + maxSize + 'MB cho phép.'] });
                                return;
                            }
                            formData.append('listFiles', fileUploads[index]);
                        }
                        $.ajax({
                            url: '/Ajax/UploadFileAttach',
                            type: 'POST',
                            data: formData,
                            cache: false,
                            contentType: false,
                            processData: false,
                            xhr: function () {
                                var xhrUpload = $.ajaxSettings.xhr(),
                                    progress = $('#progress_container_ku8ufw'),
                                    progressBar = $('#progress_bar_835j9x');
                                progress.show();
                                if (xhrUpload.upload) {
                                    xhrUpload.upload.addEventListener('progress',
                                        function (evt) {
                                            if (evt.lengthComputable) {
                                                var percentComplete = Math.round((evt.loaded * 100) / evt.total);
                                                progressBar.css({
                                                    'width': percentComplete + '%',
                                                    'background-color': '#49c5c7'
                                                });
                                            }
                                        },
                                        false);
                                    xhrUpload.addEventListener("progress",
                                        function (evt) {
                                            if (evt.lengthComputable) {
                                                var percentComplete = Math.round((evt.loaded * 100) / evt.total);
                                                setTimeout(function () {
                                                    progress.hide();
                                                    progressBar.css({
                                                        'width': 100 - percentComplete + '%',
                                                        'background-color': 'none'
                                                    });
                                                },
                                                    1000);
                                            }
                                        },
                                        false);
                                }
                                return xhrUpload;
                            },
                            success: function (resp) {
                                if (resp.Completed) {
                                    if (resp.Data != null && resp.Data.length > 0) {
                                        var fileName = '';
                                        for (var i = 0; i < resp.Data.length; i++) {
                                            var fileId = Math.random().toString(36).substring(7);
                                            if (resp.Data[i].FilePath != null && resp.Data[i].FilePath.length > 0) {

                                                $('#filePath_pw9l69')
                                                    .append(
                                                        '<input type="hidden" name="FilePath" data-id="' +
                                                        fileId +
                                                        '" value="' +
                                                        resp.Data[i].FilePath +
                                                        '">');
                                            }
                                            if (resp.Data[i].FileName != null && resp.Data[i].FileName.length > 0) {
                                                fileName += '<p class="ptext2" style="color: #333;"><span class="img-text">' +
                                                    resp.Data[i].FileName +
                                                    '</span><span class="img-sce"></span><span class="del-img" title="Hủy file tải lên: ' +
                                                    resp.Data[i].FileName +
                                                    '" data-id="' +
                                                    fileId +
                                                    '">Hủy file tải lên</span></p>';
                                            }
                                        }
                                        if (fileName.length > 0)
                                            $('#attachment_name_fdk7tn').append(fileName).css('display', 'block');
                                    }
                                } else if (resp.Message != null && resp.Message.length > 0) {
                                    lawsVns.showMessage({ messages: [resp.Message] });
                                }
                            },
                            error: function () {
                                lawsVns.showMessage({ messages: ['Quý khách vui lòng thử lại sau.'] });
                            }
                        });
                    } else {
                        lawsVns.showMessage({ messages: ['Quý khách vui lòng chọn tối đa ' + limitNumberUploads + ' file đính kèm.'] });
                    }
                }
            });




        /* End Góp ý */
        $(document).on('click',
            '.guigopy',
            function (e) {
                e.preventDefault();
                try {
                    let form = $('#FormGopYv2')
                    appModule.addRecaptchaV3ToForm(form, 'GopY').then(function () {
                        form.submit()
                    }).catch(function (error) {
                        console.error('reCAPTCHA error:', error)
                    })
                } catch (ex) {
                    console.log(ex);
                }
            });
        const backToTopButton = document.getElementById('backtotop');
        if (backToTopButton) {
            function toggleBackToTopButton() {
                if (window.scrollY > 20) {
                    backToTopButton.style.display = "block";
                } else {
                    backToTopButton.style.display = "none";
                }
            }

            window.addEventListener('scroll', toggleBackToTopButton);
        }
    }
    function highlightKeywords(title, keywordPhrase) {
        let keywords = keywordPhrase.split(/\s+/).filter(Boolean);

        let normalizedTitle = removeDiacritics(title)
        let highlightedTitle = title

        let matchRanges = []

        keywords.forEach(function (keyword) {
            let normalizedKeyword = removeDiacritics(keyword)

            let normalizedPattern = new RegExp("\\b" + escapeRegex(normalizedKeyword) + "\\b", "gi")

            let match
            while ((match = normalizedPattern.exec(normalizedTitle)) !== null) {
                matchRanges.push({ index: match.index, length: match[0].length })
            }
        })

        matchRanges.sort((a, b) => b.index - a.index)

        matchRanges.forEach(function ({ index, length }) {
            let originalText = highlightedTitle.substring(index, index + length)
            highlightedTitle = highlightedTitle.substring(0, index) +
                "<span class='bg_suggest'>" + originalText + "</span>" +
                highlightedTitle.substring(index + length)
        })

        return highlightedTitle
    }
    function removeDiacritics(str) {
        return str.normalize("NFD").replace(/[\u0300-\u036f]/g, '').replace(/[đĐ]/g, 'd')
    }

    function escapeRegex(str) {
        return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
    }

    function checkCustomerLoginByParent(element, customerName) {
        try {
            if (configs.changeTimer) clearTimeout(configs.changeTimer);
            configs.changeTimer = setTimeout(function () {
                $('.ic-show-pass, .iconpass').hide();
                $.ajax({
                    url: '/ajax/checkloginbyparentcustomer',
                    dataType: 'json',
                    type: 'GET',
                    data: { customerName },
                    success: function (response) {
                        if (response != null && response.Id > 0) {
                            element.attr('readonly', true);
                            $('input[type=password]').addClass('password');
                        }
                        else {
                            $('.ic-show-pass, .iconpass').show();
                        };
                        configs.changeTimer = false;
                    }
                });
            }, 300);
        } catch (e) {
            console.log(e);
        }
    }
    function removeDiacritics(str) {
        return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
    }
    function setupFilterCheckboxSearchForm(optDropdownSelector) {
        var dataName = $(optDropdownSelector).data('name');

        var inputSelector = $(optDropdownSelector).find('.input.input-full.search-items');
        var checkboxSelector = $(optDropdownSelector).find('.row-opt .checkbox');
        var allCheckboxSelector = $(optDropdownSelector).find('.checkbox-all');
        var optDropdownSelectorContent = $(optDropdownSelector).find('.content-sc-y');

        var originalRows = $(optDropdownSelector).find('.row-opt').toArray();

        inputSelector.on('input', debounce(function () {
            var searchTerm = $(this).val().toLowerCase();
            var normalizedSearchTerm = removeDiacritics(searchTerm);
            var fragment = document.createDocumentFragment();

            if (searchTerm.trim().length == 0) {
                $(optDropdownSelectorContent).find('.row-opt').remove();
                $(optDropdownSelectorContent).append(originalRows);
            } else {
                $(optDropdownSelectorContent).find('.row-opt').remove();
                originalRows.forEach(function (row) {
                    var labelText = $(row).text().toLowerCase();
                    var normalizedLabelText = removeDiacritics(labelText);

                    if (normalizedLabelText.includes(normalizedSearchTerm)) {
                        fragment.appendChild(row);
                    }
                });

                $(optDropdownSelectorContent).append(fragment);
            }
        }, 250));

        allCheckboxSelector.on('change', function () {
            var isChecked = $(this).is(':checked');
            checkboxSelector.prop('checked', isChecked);
        });

        $('.btn-reset-search').one('click', function (event) {
            event.preventDefault();
            inputSelector.val('');
            $(optDropdownSelectorContent).find('.row-opt').remove();
            $(optDropdownSelectorContent).append(originalRows);
            checkboxSelector.prop('checked', false);
            allCheckboxSelector.prop('checked', false);
        });
        $('.btn-search-lvn').one('click', function (event) {
            event.preventDefault();
            const self = $(this), form = self.closest('form');
            var selectedValues = [];
            checkboxSelector.filter(':checked').each(function () {
                selectedValues.push($(this).val());
            });

            var selectedValueString = selectedValues.join(',');

            var hiddenInput = $(`input[name="${dataName}"]`, form);

            if (hiddenInput.length === 0) {

                hiddenInput = $('<input>', {
                    type: 'hidden',
                    name: dataName,
                    value: selectedValueString
                });

                form.append(hiddenInput);
            } else {
                hiddenInput.val(selectedValueString);
            }

            if (selectedValueString === '') {
                hiddenInput.remove();
            }

            if (form) {
                form.submit();
            }
        });
    }
    function setupFilterSearchForm(optDropdownSelector) {
        const dataName = $(optDropdownSelector).data('name');
        const inputSelector = $(optDropdownSelector).find('.input.input-full.search-items');
        const optDropdownSelectorContent = $(optDropdownSelector).find('.content-sc-y');
        const displayTextSelector = $(optDropdownSelector).find('.input-dropdown span').first();
        const wrapper = $(optDropdownSelector).find('.opt-wrapper');
        const originalRows = $(optDropdownSelectorContent).find('.item-search').toArray();
        const defaultText = displayTextSelector.text();

        const filterItems = (searchTerm) => {
            const normalizedSearchTerm = removeDiacritics(searchTerm.toLowerCase());
            const fragment = document.createDocumentFragment();

            originalRows.forEach(row => {
                const labelText = $(row).text().toLowerCase();
                const normalizedLabelText = removeDiacritics(labelText);
                if (normalizedLabelText.includes(normalizedSearchTerm)) {
                    fragment.appendChild(row);
                }
            });

            $(optDropdownSelectorContent).empty().append(fragment);
        };

        inputSelector.on('input', debounce(function () {
            const searchTerm = $(this).val().trim();
            if (searchTerm.length === 0) {
                $(optDropdownSelectorContent).empty().append(originalRows);
            } else {
                filterItems(searchTerm);
            }
        }, 250));

        $(optDropdownSelectorContent).on('click', '.item-search', function () {
            const selectedText = $(this).text();
            const itemValue = $(this).data('value');
            wrapper.hide();
            if (typeof itemValue !== 'undefined') {
                if (itemValue == 0) {
                    displayTextSelector.text(defaultText);
                } else {
                    displayTextSelector.text(selectedText);
                }

                const form = $(this).closest('form');
                let hiddenInput = $(`input[name="${dataName}"]`, form);

                if (hiddenInput.length === 0) {
                    hiddenInput = $('<input>', {
                        type: 'hidden',
                        name: dataName,
                        value: itemValue
                    }).appendTo(form);
                } else {
                    hiddenInput.val(itemValue);
                }

                if (itemValue === '' || itemValue === 0) {
                    hiddenInput.remove();
                }
            }
        });

        $('.btn-reset-search').one('click', function (event) {
            event.preventDefault();
            inputSelector.val('');
            $(optDropdownSelectorContent).empty().append(originalRows);
            displayTextSelector.text(defaultText);
        });
    }
    function setupFilterAutocompleteSearchForm(optDropdownSelector) {
        const dataNames = $(optDropdownSelector).data('name').split(',');
        const dataSearchName = $(optDropdownSelector).data('search-name') || 'name';
        const dataSearchKey = $(optDropdownSelector).data('search-key');
        const dataStoreName = $(optDropdownSelector).data('search-store') || '';
        const inputSelector = $(optDropdownSelector).find('.input.input-full.search-items');
        const optDropdownSelectorContent = $(optDropdownSelector).find('.content-sc-y');
        const displayTextSelector = $(optDropdownSelector).find('.input-dropdown span').first();
        const wrapper = $(optDropdownSelector).find('.opt-wrapper');
        const defaultText = displayTextSelector.text();
        let isLoading = false;
        let selectedText = '';

        if (dataStoreName) {
            deleteCookie(dataStoreName);
        }

        const searchItems = (searchTerm) => {
            if (isLoading) return;
            isLoading = true;

            displayTextSelector.text('Đang tải dữ liệu...');

            fetchData({
                url: $(optDropdownSelector).data('url'),
                data: { [dataSearchName]: searchTerm }
            })
                .then(response => {
                    let data;

                    if (dataSearchKey && response[dataSearchKey]) {
                        try {
                            data = JSON.parse(response[dataSearchKey]);
                        } catch (error) {
                            return;
                        }
                    } else {
                        if (Array.isArray(response)) {
                            data = response;
                        } else {
                            return;
                        }
                    }

                    if (Array.isArray(data)) {
                        updateItemList(data);
                    }
                })
                .catch(error => {
                    console.error(error);
                })
                .finally(() => {
                    isLoading = false;
                    setTimeout(() => {
                        displayTextSelector.text(selectedText.length > 0 ? selectedText : defaultText);
                    }, 200);
                });
        };

        const updateItemList = (items) => {
            const fragment = document.createDocumentFragment();

            if (items.length > 0 && items[0][dataNames[0]] != 0) {
                const allItem = $('<div>', {
                    class: 'item-search',
                    'data-value': 0,
                    text: 'Tất cả'
                });
                fragment.appendChild(allItem[0]);
            }

            items.forEach(item => {
                const listItem = $('<div>', {
                    class: 'item-search',
                    'data-value': item[dataNames[0]],
                    text: item[dataNames[1]].replace('...', 'Tất cả')
                });
                fragment.appendChild(listItem[0]);
            });

            $(optDropdownSelectorContent).empty().append(fragment);
        };

        inputSelector.on('input', debounce(function () {
            const searchTerm = $(this).val().trim();
            if (searchTerm.length == 0) {
                selectedText = '';
            }
            searchItems(searchTerm);
        }, 250));

        $(optDropdownSelector).on('click', function () {
            //if ($(optDropdownSelectorContent).children().length === 0) {
            searchItems(inputSelector.val().trim());
            //}
        });

        $(optDropdownSelectorContent).on('click', '.item-search', function () {
            selectedText = $(this).text();
            const itemValue = $(this).data('value');
            wrapper.hide();
            let cookieData = {};
            const form = $(this).closest('form');
            if (typeof itemValue !== 'undefined' && (itemValue !== 0 && itemValue !== '')) {
                displayTextSelector.text(selectedText);
                if (dataStoreName) {
                    dataNames.forEach((name) => {
                        cookieData[name] = name === dataNames[0] ? itemValue : selectedText;
                    });

                    setCookie(dataStoreName, JSON.stringify(cookieData), 1);
                }
            } else {
                selectedText = 'Tất cả';
                displayTextSelector.text(defaultText);
                if (dataStoreName) {
                    deleteCookie(dataStoreName);
                }
            }

            const existingInput = form.find(`input[name="${dataNames[0]}"]`);
            if (existingInput.length) {
                existingInput.val(itemValue);
            } else {
                $('<input>', {
                    type: 'hidden',
                    name: dataNames[0],
                    value: itemValue
                }).appendTo(form);
            }

            //dataNames.forEach((name, index) => {
            //    const existingInput = form.find(`input[name="${name}"]`);
            //    const valueToSet = index === 0 ? itemValue : selectedText;

            //    if (itemValue) {
            //        if (existingInput.length) {
            //            existingInput.val(valueToSet);
            //        } else {
            //            $('<input>', {
            //                type: 'hidden',
            //                name: name,
            //                value: valueToSet
            //            }).appendTo(form);
            //        }
            //    } else {
            //        existingInput.remove();
            //    }
            //});
        });

        $('.btn-reset-search').one('click', function (event) {
            event.preventDefault();
            inputSelector.val('');
            selectedText = '';
            $(optDropdownSelectorContent).empty();
            displayTextSelector.text(defaultText);
            if (dataStoreName) {
                deleteCookie(dataStoreName);
            }
        });

        function setCookie(name, value, days) {
            var expires = "";
            if (days) {
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                expires = "; expires=" + date.toUTCString();
            }
            document.cookie = name + "=" + (value || "") + expires + "; path=/";
        }

        function deleteCookie(name) {
            document.cookie = name + '=; Max-Age=-99999999; path=/';
        }
    }
    function validatorForm(form) {
        form.removeData('validator');
        form.removeData('unobtrusiveValidation');
        $.validator.unobtrusive.parse(form);
    }
    function b64DecodeUnicode(str) {
        return decodeURIComponent(atob(str).split('').map(function (c) {
            return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
        }).join(''));
    }
    function initWebPageLogs() {
        var logType = 'pageview',
            pageUrl = $(location).attr('href'),
            pageTitle = encodeURIComponent($(document).attr('title')),
            referSource = document.referrer || '';
        webPageLogs(logType, pageUrl, pageTitle, referSource);
    }
    function webPageLogs(logType, pageUrl, pageTitle, referSource, pageData) {
        try {
            var userLang = navigator.language || navigator.userLanguage;
            var colorDepth = screen.colorDepth;
            var screenS = screen.width + 'x' + screen.height;
            var viewport = screen.availWidth + 'x' + screen.availHeight;
            var preTop = localStorage.getItem("preTop");
            if (preTop == null) {
                preTop = 0;
            }
            var preLeft = localStorage.getItem("preLeft");
            if (preLeft == null) {
                preLeft = 0;
            }
            var preWidth = localStorage.getItem("preWidth");
            if (preWidth == null) {
                preWidth = 0;
            }
            var preHeight = localStorage.getItem("preHeight");
            if (preHeight == null) {
                preHeight = 0;
            }
            var preDom = localStorage.getItem("preDom");
            if (preDom == null) {
                preDom = "";
            }
            var preItem = localStorage.getItem("preItem");
            if (!preItem) {
                preItem = 0;
            }
            var ppTime = localStorage.getItem("ppTime");
            if (ppTime == null) {
                ppTime = Number(new Date());
            }
            var ppTimeEnd = localStorage.getItem("ppTimeEnd");
            if (ppTimeEnd == null) {
                ppTimeEnd = Number(new Date());
            }
            var objData = {
                t: logType,
                dl: pageUrl,
                dt: pageTitle,
                ul: userLang,
                sd: colorDepth,
                sr: screenS,
                vp: viewport,
                rs: referSource,
                pt: preTop,
                pl: preLeft,
                ppt: ppTime,
                ph: preHeight,
                pw: preWidth,
                pe: preDom,
                pi: preItem,
                pte: ppTimeEnd
            };
            var isEmpty = typeof pageData == 'string' && !pageData.trim() || typeof pageData == 'undefined' || pageData === null;
            if (!isEmpty) {
                objData.pgd = pageData;
            }
            window.setTimeout(function () {
                fetchData({
                    url: '/log',
                    dataType: 'json',
                    type: 'get',
                    data: objData,
                    beforeSend: function () { }
                }).then((resp) => {
                    localStorage.setItem("ppTime", Number(new Date()));
                })
                    .catch((error) => {
                        console.error(error);
                    })
            }, 5);
        } catch (e) {
            console.log(e)
        }
    }
    function updateQueryStringParameter(uri, key, value) {
        var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
        var separator = uri.indexOf('?') !== -1 ? "&" : "?";
        if (uri.match(re)) {
            return uri.replace(re, '$1' + key + "=" + value + '$2');
        }
        else {
            return uri + separator + key + "=" + value;
        }
    }
    function termsAndConditions() {
        var defaultRangeValidator = jQuery.validator.methods.range;
        jQuery.validator.methods.range = function (value, element, param) {
            if (element.type === 'checkbox') {
                // neu la checkbox: tra ve true neu checkbox checked
                return element.checked;
            } else {
                // neu ko thi goi ham range validator default
                return defaultRangeValidator.call(this, value, element, param);
            }
        }
    }
    function showMessageLogin(options) {
        var defaults = {
            id: '_message',
            buttons: [{
                Name: 'Thoát',
                ClassName: 'btn-law',
                ClickEvent: function () { }
            },
            {
                Name: 'Đồng ý',
                ClassName: 'btn-law-ok',
                ClickEvent: function () { }
            }],


            callback: {},
            success: true,
            title: 'Thông báo',
            messages: [],
            returnUrl: ''
        }
        options = $.extend(defaults, options);
        options.messages = $.isArray(options.messages) ? options.messages : [];
        var popup = `<div id="${options.id}" class="popup-bg target-hidden"> <div class="popup-wrapper popup-340"> <div class="popup-body"> <div class="popup-content"> <div class="form-pad16"> <div class="form-group text-center"> <div class="text-successful color-orange">${options.title}</div> </div> <div class="form-group text-center text-content">`;
        if (options.messages.length > 0) {
            popup += '<div class="form-group text-center text-content">';
            for (var i = 0; i < options.messages.length; i++) {
                popup += '<p>' + options.messages[i] + '</p>';
            }
            popup += `</div>
            <div class="form-group popup-button text-center">`;
            if (options.buttons.length > 0) {
                for (var i = 0; i < options.buttons.length; i++) {
                    if (options.buttons[i].Name == 'Thoát') {
                        popup += `<span class="btn-law" data-toggle-target="#${options.id}">Thoát</span>`;
                    } else if (options.buttons[i].Name == 'Đồng ý') {
                        popup += `<span class="btn-law-ok" data-toggle-target="#${options.id}">Đồng ý</span>`;
                    }
                    else {
                        popup += `<span class="${options.buttons[i].ClassName}">${options.buttons[i].Name}</span>`;
                    }
                }
            }
            popup += '</div>';
        }

        if (options.success) {
            $(`#${options.id}`).remove();
            $('body').append(popup);
            for (var i = 0; i < options.buttons.length; i++) {
                var el = options.buttons[i];
                var event = el.ClickEvent;
                $(`#${options.id}`).on('click',
                    `.${el.ClassName}`,
                    $.isFunction(event) ? event : $.noop
                );
            }
        }
        $('#' + options.id).addClass('target-expanded').css('display', '');
    }
    function showMessage(options) {
        var defaults = {
            id: '_message',
            buttons: [{
                Name: 'Đóng',
                ClassName: 'btn-law',
                ClickEvent: {}
            }],
            callback: {},
            success: true,
            title: 'Thông báo',
            messages: [],
            autoClose: false,
            timeClose: 2,
            returnUrl: ''
        }
        options = $.extend(defaults, options);
        options.messages = $.isArray(options.messages) ? options.messages : [];
        var popup = `<div id="${options.id}" class="popup-bg target-hidden"> <div class="popup-wrapper popup-340"> <div class="popup-body"> <div class="popup-content"> <div class="form-pad16"> <div class="form-group text-center"> <div class="text-successful color-orange">${options.title}</div> </div> <div class="form-group text-center text-content">`

        if (options.messages.length > 0) {
            popup += '<div class="form-group text-center text-content">';
            for (var i = 0; i < options.messages.length; i++) {
                popup += '<p>' + options.messages[i] + '</p>';
            }
            popup += `</div>
            <div class="form-group popup-button text-center">`;
            if (options.buttons.length > 0) {
                for (var i = 0; i < options.buttons.length; i++) {
                    if (options.buttons[i].Name == 'Đóng') {
                        popup += `<span class="btn-law" data-toggle-target="#${options.id}">Đóng</span>`;
                    } else {
                        popup += `<span class="${options.buttons[i].ClassName}">${options.buttons[i].Name}</span>`;
                    }
                }
            }
            popup += '</div>';
        }

        if (appModule.MessageTimer) {
            clearInterval(appModule.MessageTimer)
        }

        if (options.success) {
            $(`#${options.id}`).remove();
            $('body').append(popup);
            for (var i = 0; i < options.buttons.length; i++) {
                var el = options.buttons[i];
                var event = el.ClickEvent;

                $(`#${options.id}`).on('click',
                    `.${el.ClassName}`,
                    $.isFunction(event) ? event : $.noop
                );
            }
        }

        if (options.autoClose && options.buttons.length == 1) {
            var autoCloseAfter = options.timeClose,
                button = $(`.${options.buttons[0].ClassName}`, $(`#${options.id}`)),
                buttonText = button.text()

            appModule.MessageTimer = setInterval(function () {

                if (autoCloseAfter > 0) {
                    button.text(`${buttonText} (${autoCloseAfter})`)
                }
                else {
                    button.text(buttonText)
                }

                if (autoCloseAfter == 0) {

                    clearInterval(appModule.MessageTimer)

                    if (!button.attr('data-clicked')) {

                        button.trigger('click')

                        $(`#${options.id}`).remove()
                    }
                }
                autoCloseAfter--;
            }, 1000)

        }

        $('#' + options.id).addClass('target-expanded').css('display', '');
    }
    function pushState(object) {
        if (window.history && window.history.pushState) {
            var url = new URL(window.location.href);
            for (var key in object) {
                url.searchParams.set(key, object[key]);
            }
            window.history.pushState(null, '', url);
        }
    }
    function getGoogleResponse(url, name) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = '[\\#&]' + name + '=([^&#]*)';
        var regex = new RegExp(regexS);
        var results = regex.exec(url);
        if (results == null)
            return '';
        else
            return results[1];
    }
    function requestGoogleAccountInfo(accessToken) {
        $.ajax({
            type: 'Get',
            url: configs.googleUserInfoUrl + accessToken,
            success: function (response) {
                $.ajax({
                    type: 'post',
                    url: '/account/googlelogin',
                    data: { googleId: response.id, email: response.email, name: typeof (response.name) === 'undefined' ? '' : response.name, givenname: typeof (response.given_name) === 'undefined' ? '' : response.given_name, familyname: typeof (response.family_name) === 'undefined' ? '' : response.family_name, picture: typeof (response.picture) === 'undefined' ? '' : response.picture },
                    success: function (resp) {
                        if (resp.Completed) {
                            //logs.webpagelogs("Login", pageUrl, "Đăng nhập thành công", source);
                            if (resp.ReturnUrl != null && resp.ReturnUrl.length > 0) {
                                window.location.href = resp.ReturnUrl;
                            }
                        } else {
                            if (resp.Data != null) {
                                if (resp.Data.startsWith('NOK_REDIRECT')) {
                                    window.location.href = '/dang-nhap-tai-khoan-gmail.html?openId=' +
                                        response.id +
                                        '&email=' +
                                        (typeof (response.email) === 'undefined' ? '' : response.email) +
                                        '&name=' +
                                        (typeof (response.name) === 'undefined' ? '' : response.name) +
                                        '&givenname=' +
                                        (typeof (response.given_name) === 'undefined' ? '' : response.given_name) +
                                        '&familyname=' +
                                        (typeof (response.family_name) === 'undefined' ? '' : response.family_name);
                                } else if (resp.Data.startsWith('NOK')) {
                                    if (resp.Message != null && resp.Message.length > 0) {
                                        showMessage({ messages: [resp.Message] });
                                    }
                                }
                            }
                        }
                    }
                })
            }
        })
        //fetchData({ type: 'GET', url: configs.googleUserInfoUrl + accessToken })
        //    .then((response) => {
        //        return fetchData({ type: 'POST', url: '/account/googlelogin', data: { googleId: response.id, email: response.email, name: typeof (response.name) === 'undefined' ? '' : response.name, givenname: typeof (response.given_name) === 'undefined' ? '' : response.given_name, familyname: typeof (response.family_name) === 'undefined' ? '' : response.family_name, picture: typeof (response.picture) === 'undefined' ? '' : response.picture } });
        //    })
        //    .then((resp) => {
        //        if (resp.Completed) {
        //            //logs.webpagelogs("Login", pageUrl, "Đăng nhập thành công", source);
        //            if (resp.ReturnUrl != null && resp.ReturnUrl.length > 0) {
        //                window.location.href = resp.ReturnUrl;
        //            }
        //        } else {
        //            if (resp.Data != null) {
        //                if (resp.Data.startsWith('NOK_REDIRECT')) {
        //                    window.location.href = '/dang-nhap-tai-khoan-gmail.html?openId=' +
        //                        response.id +
        //                        '&email=' +
        //                        (typeof (response.email) === 'undefined' ? '' : response.email) +
        //                        '&name=' +
        //                        (typeof (response.name) === 'undefined' ? '' : response.name) +
        //                        '&givenname=' +
        //                        (typeof (response.given_name) === 'undefined' ? '' : response.given_name) +
        //                        '&familyname=' +
        //                        (typeof (response.family_name) === 'undefined' ? '' : response.family_name);
        //                } else if (resp.Data.startsWith('NOK')) {
        //                    if (resp.Message != null && resp.Message.length > 0) {
        //                        showMessage({ messages: [resp.Message] });
        //                    }
        //                }
        //            }
        //        }
        //    })
        //    .catch((error) => {
        //        showMessage({ messages : ['Quý khách vui lòng thử lại sau.']});
        //    });
    }
    function fBOnSuccess(resp) {
        fetchData({
            type: 'POST', url: '/account/facebooklogin',
            data: { facebookId: resp.id, email: typeof (resp.email) === 'undefined' ? '' : resp.email, name: typeof (resp.name) === 'undefined' ? '' : resp.name, firstname: typeof (resp.first_name) === 'undefined' ? '' : resp.first_name, lastname: typeof (resp.last_name) === 'undefined' ? '' : resp.last_name, gender: typeof (resp.gender) === 'undefined' ? '' : resp.gender },
        }).then((response) => {
            if (response.completed || response.Completed) {
                //logs.webpagelogs("Login", pageUrl, "Đăng nhập thành công", source);
                if (response.ReturnUrl != null && response.ReturnUrl.length > 0) {
                    window.location.href = response.ReturnUrl;
                }
            } else {
                if (response.Data != null) {
                    if (response.Data.startsWith('NOK_REDIRECT')) {
                        window.location.href = '/dang-nhap-tai-khoan-facebook.html?openId=' +
                            resp.id +
                            '&email=' +
                            (typeof (resp.email) === 'undefined' ? '' : resp.email) +
                            '&name=' +
                            (typeof (resp.name) === 'undefined' ? '' : resp.name) +
                            '&firstname=' +
                            (typeof (resp.first_name) === 'undefined' ? '' : resp.first_name) +
                            '&lastname=' +
                            (typeof (resp.last_name) === 'undefined' ? '' : resp.last_name);
                    } else if (response.Data.startsWith('NOK')) {
                        if (response.Message != null && response.Message.length > 0) {
                            showMessage({ messages: [response.Message] });
                            //lawsVns.logs.webpagelogs('Login', pageUrl, response.Message, response.Data);
                        }
                    }
                }
            }
        })
            .catch((error) => {
                showMessage({ messages: ['Quý khách vui lòng thử lại sau.'] });
            });
    }
    function fbOnError(error) {
        console.log(error);
    }
    function fbLog(message) {
        console.log('$.facebookLogin ' + message);
    }
    function fbOnConnected() {
        fbLog('fbOnConnected');
        FB.api('/me', 'GET', { fields: 'id,email,name,first_name,last_name,gender,birthday,location' }, $.proxy(function (response) {
            fbLog('successful login for: ' + response.name);
            fBOnSuccess(response);
        }, this));
    }
    function fbStatusChangeCallback(response) {
        fbLog('fbstatusChangeCallback');
        if (response.status === 'connected') {
            //connected = true;
            fbOnConnected();
        } else if (response.status === 'not_authorized') {
            fbLog('not authorized');
            //connected = false;
            fbOnError('not authorized');
        } else {
            fbLog('not connected');
            //connected = false;
            fbOnError('not connected');
        }
    }
    function fbCheckLoginState() {
        fbLog('fbcheckLoginState');
        FB.getLoginStatus($.proxy(function (response) {
            fbStatusChangeCallback(response);
        }, this));
    }
    function facebookLogin() {
        if (FB) {
            fbLog('login');
            FB.login($.proxy(fbCheckLoginState, this), {
                scope: 'email,user_photos',
                return_scopes: true
            });
        }
        else {
            fbLog('Đăng nhập tài khoản Facebook không thành công - thử lại sau 5 giây...');
            setTimeout($.proxy(facebookLogin, this), 5000);
        }
    }
    function initToggleTarget() {
        $(document).off('click', '[data-toggle-target]').on('click', '[data-toggle-target]', function (e) {
            e.preventDefault();
            var self = $(this), target = self.attr('data-toggle-target'), tab = self.attr('data-tab') || self.attr('data-content'),
                checkCustomerLoginByParentValue = $('footer').data('clpc') || 0;

            if (typeof tab != typeof undefined) {
                $('.tabs-login-item, .tabs-login-content').removeClass('active');
                $('.tabs-login-item[data-tab="' + tab + '"]').addClass('active');
                $('.tabs-login-item[data-content="' + tab + '"]').addClass('active');
                $(`#${tab}`).addClass('active');
                $(`.tabs-login-content[data-content="${tab}"]`).addClass('active');
                $(`.tabs-login-content[data-tab="${tab}"]`).addClass('active');
            }

            if ((tab == 'dangnhap' || tab == 'login') && checkCustomerLoginByParentValue > 0) {
                var inputCustomerName = $('input[name="CustomerName"]').first();
                checkCustomerLoginByParent(inputCustomerName, inputCustomerName.val().trim());
            }

            if (typeof target != typeof undefined) {
                $(target).toggleClass('target-expanded').css('display', '');
            }
        });
    }
    function initTab() {
        $('[data-tab]').off('click').on('click',
            function () {
                var self = $(this), tab = self.data('tab'), tabEl = $('#' + tab);
                self.parent().children().removeClass('active');
                self.addClass('active');
                tabEl.parent().children().removeClass('active');
                tabEl.addClass('active');
            });
    }
    function initAdsSticky() {
        if ($('.sticky-ads-content').length > 0) {
            $('.sticky-ads-content').each(function (i, item) {
                adsSticky($(item))
            });
        }
    }
    function adsSticky(ads) {
        try {
            var sticky_ads_content = ads, parent = ads.parent(),
                positionTop = sticky_ads_content.data('top'),
                end_sticky_ads = sticky_ads_content.data('id');
            positionTop = positionTop || 10;
            end_sticky_ads = end_sticky_ads || $('footer');
            setTimeout(function () {
                var sticky_ads_content_top = sticky_ads_content.offset().top;
                $(window).scroll(function () {
                    var scrollTop = $(window).scrollTop();
                    sticky_ads = sticky_ads_content.prev('.sticky-ads'),
                        end_sticky = $(end_sticky_ads).offset().top - sticky_ads.outerHeight();
                    if (sticky_ads_content_top < scrollTop)
                        sticky_ads.css({ position: 'fixed', top: positionTop, left: parent.offset().left, width: parent.width() });
                    else
                        sticky_ads.css('position', 'static');
                    if (end_sticky < scrollTop) {
                        var diff = end_sticky - scrollTop + -20;
                        sticky_ads.css({ top: diff });
                    }
                });
            }, 500);
        } catch (e) {
            console.error(e);
        }
    }
    function adjustBackToTopButton() {
        const chatDiv = document.getElementById('vnp_chat');
        const backToTopButton = document.getElementById('backtotop');

        if (backToTopButton) {

            backToTopButton.style.right = '40px';

            if (chatDiv) {
                backToTopButton.style.bottom = '115px';
            } else {
                backToTopButton.style.bottom = '40px';
            }
        }
    }

    function initBackToTopButton() {
        adjustBackToTopButton();

        // Tạo một MutationObserver để theo dõi sự thay đổi trong DOM
        const observer = new MutationObserver((mutationsList) => {
            for (const mutation of mutationsList) {
                if (mutation.type === 'childList') {
                    adjustBackToTopButton();
                }
            }
        });

        // Bắt đầu theo dõi sự thay đổi trong body
        observer.observe(document.body, { childList: true, subtree: true });
    }

    function detectIframevChat() {
        var detector = setInterval(function () {
            try {
                var elem = document.activeElement;

                if (elem && elem.tagName == 'IFRAME' && elem.getAttribute('id') == 'vnp_code_chat') {
                    //clearInterval(detector);
                }
            } catch (e) {
                clearInterval(detector);
            }
        }, 500);
    }
    function fetchData(options) {
        return new Promise((resolve, reject) => {
            $.ajax({
                cache: false,
                url: options.url,
                type: options.type || 'GET',
                data: options.data || {},
                dataType: options.dataType || 'json',
                beforeSend: options.beforeSend || showLoading(),
                success: function (data) {
                    resolve(data);
                },
                error: function (error) {
                    reject(error);
                }
            }).always(options.always || hideLoading());
        });
    }
    function initGrecaptcha(reCaptchaSiteKey) {
        try {
            if (typeof reCaptchaSiteKey !== 'undefined') {
                $('form').each(function (i, form) {
                    var action = $(form).data('action');
                    if (typeof action !== 'undefined') {
                        grecaptcha.ready(function () {
                            grecaptcha.execute(reCaptchaSiteKey,
                                {
                                    action: action
                                })
                                .then(function (token) {
                                    if (token != null && token.length > 0) {
                                        $(form).find('.g-recaptcha-response').first().val(token);
                                    }
                                });
                        });
                    }
                })
            }
        } catch (e) {
            console.error(e);
        }
    }
    function getRecaptchaToken(form, action) {
        try {
            if (form.length > 0 && $('#hfCaptcha').length > 0) {
                var hfCaptcha = $('#hfCaptcha').first(), reCaptchaSiteKey = hfCaptcha.data('id');
                if (typeof reCaptchaSiteKey !== 'undefined') {
                    grecaptcha.ready(function () {
                        grecaptcha.execute(reCaptchaSiteKey,
                            {
                                action: action
                            })
                            .then(function (token) {
                                if (token != null && token.length > 0) {
                                    form.find('.g-recaptcha-response').first().val(token);
                                }
                            });
                    });
                }
            }
        } catch (e) {
            console.error(e);
        }
    }

    function addRecaptchaV3ToForm(formSelector, action) {
        return new Promise((resolve, reject) => {
            var hfCaptcha = $('#hfCaptcha').first(), reCAPTCHASiteKey = hfCaptcha.data('id');
            if (typeof reCAPTCHASiteKey !== 'undefined') {
                grecaptcha.ready(function () {

                    grecaptcha.execute(reCAPTCHASiteKey, { action: action }).then(function (token) {

                        var recaptchaResponse = $(formSelector).find('input.g-recaptcha-response')

                        if (recaptchaResponse.length === 0) {

                            recaptchaResponse = $('<input>').attr({
                                type: 'hidden',
                                name: 'RecaptchaResponse',
                                id: 'g-recaptcha-response'
                            })

                            $(formSelector).append(recaptchaResponse)
                        }

                        recaptchaResponse.val(token)

                        resolve()
                    }).catch(function (error) {
                        reject(error)
                    })
                })
            }
        })
    }
    function loadScript(src, async = true, type = "text/javascript") {
        return new Promise((resolve, reject) => {
            try {
                const el = document.createElement("script");
                const container = document.head || document.body;

                el.type = type;
                el.async = async;
                el.src = src;

                el.addEventListener("load", () => {
                    resolve({ status: true });
                });

                el.addEventListener("error", () => {
                    reject({
                        status: false,
                        message: `Failed to load the script ${src}`
                    });
                });

                container.appendChild(el);
            } catch (err) {
                reject(err);
            }
        });
    }
    function loadGoogleTagManager(w, d, l, i) {
        w[l] = w[l] || []; w[l].push({
            'gtm.start':
                new Date().getTime(), event: 'gtm.js'
        })
        var dl = l != 'dataLayer' ? '&l=' + l : '';
        loadScript('https://www.googletagmanager.com/gtm.js?id=' + i + dl)
            .then((data) => {
                console.log("Google Tag Manager script loaded successfully", data);
            })
            .catch((err) => {
                console.error(err);
            });
    }
    function loadFacebookPixel(f, b, n, t, s) {
        if (f.fbq) return; n = f.fbq = function () {
            n.callMethod ?
                n.callMethod.apply(n, arguments) : n.queue.push(arguments)
        };
        if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
        n.queue = [];
        loadScript('https://connect.facebook.net/en_US/fbevents.js')
            .then((data) => {
                console.log("Facebook Pixel script loaded successfully", data);
                fbq('init', '297190890797171');
                fbq('track', 'PageView');
            })
            .catch((err) => {
                console.error(err);
            });
    }
    function loadGoogleRecaptcha() {
        if ($('#hfCaptcha').length > 0) {
            var hfCaptcha = $('#hfCaptcha').first(), reCaptchaSiteKey = hfCaptcha.data('id');
            if (typeof reCaptchaSiteKey !== 'undefined') {
                loadScript(`https://www.google.com/recaptcha/api.js?render=${reCaptchaSiteKey}`)
                    .then((data) => {
                        console.log("Google recaptcha script loaded successfully", data);
                        initGrecaptcha(reCaptchaSiteKey);
                    })
                    .catch((err) => {
                        console.error(err);
                    });
            }
        }
    }
    function loadFacebookJavascriptSDK() {
        loadScript('https://connect.facebook.net/en_US/all.js')
            .then((data) => {
                console.log("Facebook script loaded successfully", data);
                window.fbAsyncInit = function () {
                    FB.init({
                        appId: configs.facebookAppId,
                        status: true,
                        xfbml: true,
                        cookie: true
                    });
                };
            })
            .catch((err) => {
                console.error(err);
            });
    }
    function loadZaloJavascriptSDK() {
        loadScript('https://sp.zalo.me/plugins/sdk.js')
            .then((data) => {
                console.log("Zalo script loaded successfully", data);
            })
            .catch((err) => {
                console.error(err);
            });
    }
    function loadvChat() {
        loadScript('https://core.vchat.vn/code/tracking.js')
            .then((data) => {
                console.log("vChat script loaded successfully", data);
            })
            .catch((err) => {
                console.error(err);
            });
    }
    function initNotify() {
        if ($('.tips-thong-bao').length > 0) {
            var tips = $('.tips-thong-bao').first(), objDate = new Date();
            if (localStorage.getItem('customer-notify') != objDate.getDate()) {
                localStorage.setItem('customer-notify-click', 'false');
                localStorage.setItem('customer-notify', objDate.getDate());
            }

            if (localStorage.getItem('customer-notify-click') == 'false') {
                tips.show();
            }
        }
    }
    function removeAccents(str) {
        str = str.toLowerCase();
        str = str
            .normalize('NFD')
            .replace(/[\u0300-\u036f]/g, '')
            .replace(/[đĐ]/g, 'd')
            .replace(/[^\w]+/g, ' ');
        return str;
    }
    function checkboxTermsOfUseRequired() {
        var defaultRangeValidator = jQuery.validator.methods.range;
        jQuery.validator.methods.range = function (value, element, param) {
            if (element.type === 'checkbox') {
                // neu la checkbox: tra ve true neu checkbox checked
                return element.checked;
            } else {
                // neu ko thi goi ham range validator default
                return defaultRangeValidator.call(this, value, element, param);
            }
        }
    }
    function requiredIf() {
        $.validator.addMethod('requiredif',
            function (value, element, parameters) {
                var id = '#' + parameters['dependentproperty'];
                var targetvalue = parameters['targetvalue'];
                targetvalue = (targetvalue == null ? '' : targetvalue).toString();

                var control = $(id);
                var controltype = control.attr('type');
                var actualvalue =
                    (controltype === 'checkbox' || controltype === 'radio') ?
                        (control.is(':checked') ? true : false) : //control.attr('checked').toString() :
                        control.val();

                if ($.trim(targetvalue) === $.trim(actualvalue) || ($.trim(targetvalue) === '*' && $.trim(actualvalue) !== ''))
                    return $.validator.methods.required.call(
                        this, value, element, parameters);

                return true;
            });

        $.validator.unobtrusive.adapters.add(
            'requiredif',
            ['dependentproperty', 'targetvalue'],
            function (options) {
                options.rules['requiredif'] = {
                    dependentproperty: options.params['dependentproperty'],
                    targetvalue: options.params['targetvalue']
                };
                options.messages['requiredif'] = options.message;
            });
    }
    function formatNumber(nStr, decSeperate, groupSeperate) {
        nStr += '';
        var x = nStr.split(decSeperate);
        var x1 = x[0];
        var x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
            x1 = x1.replace(rgx, '$1' + groupSeperate + '$2');
        }
        return x1 + x2;
    }
    function showLoading() {
        $('#spinner-back').addClass('show');
        $('#spinner-front').addClass('show');
    }
    function hideLoading() {
        $('#spinner-back').removeClass('show');
        $('#spinner-front').removeClass('show');
    }
    function debounce(func, delay = 500) {
        let timeout

        return function executedFunc(...args) {
            if (timeout) {
                clearTimeout(timeout)
            }

            timeout = setTimeout(() => {
                //func(...args)
                func.apply(this, args);
                timeout = null
            }, delay)
        }
    }
    $(window).scroll(function () {
        if ($(window).scrollTop() >= 100) {
            $('.fixed-sticky-').addClass('navigation-sticky');
            $('.fixed-sticky- .nav-bar').addClass('visible-title');
        }
        else {
            $('.fixed-sticky-').removeClass('navigation-sticky');
            $('.fixed-sticky- .nav-bar').removeClass('visible-title');
        }
    });
    if ($('#doc-sticky').length == 0) {
        $(window).scroll(function () {
            if ($(window).scrollTop() >= 60) {
                $('#stickymenu').addClass('stickymenu')
            }
            else {
                $('#stickymenu').removeClass('stickymenu')
            }
        })
    }
    jQuery.fn.highlight = function (pat) {
        function innerHighlight(node, pat) {
            var skip = 0;
            if (node.nodeType == 3) {
                var pos = node.data.toUpperCase().indexOf(pat);
                if (pos >= 0) {
                    var spannode = document.createElement('span');
                    spannode.className = 'highlight';
                    var middlebit = node.splitText(pos);
                    var endbit = middlebit.splitText(pat.length);
                    var middleclone = middlebit.cloneNode(true);
                    spannode.appendChild(middleclone);
                    middlebit.parentNode.replaceChild(spannode, middlebit);
                    skip = 1;
                }
            }
            else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
                for (var i = 0; i < node.childNodes.length; ++i) {
                    i += innerHighlight(node.childNodes[i], pat);
                }
            }
            return skip;
        }
        return this.each(function () {
            innerHighlight(this, pat.toUpperCase());
        });
    };
    jQuery.fn.removeHighlight = function () {
        function newNormalize(node) {
            for (var i = 0, children = node.childNodes, nodeCount = children.length; i < nodeCount; i++) {
                var child = children[i];
                if (child.nodeType == 1) {
                    newNormalize(child);
                    continue;
                }
                if (child.nodeType != 3) { continue; }
                var next = child.nextSibling;
                if (next == null || next.nodeType != 3) { continue; }
                var combined_text = child.nodeValue + next.nodeValue;
                new_node = node.ownerDocument.createTextNode(combined_text);
                node.insertBefore(new_node, child);
                node.removeChild(child);
                node.removeChild(next);
                i--;
                nodeCount--;
            }
        }

        return this.find("span.highlight").each(function () {
            var thisParent = this.parentNode;
            thisParent.replaceChild(this.firstChild, this);
            newNormalize(thisParent);
        }).end();
    };
    storage = {
        getItem: function (key, optionalCallback) {
            if (!this.supportsLocalStorage()) {
                return null;
            }

            var callback = function (data) {
                data = typeof data !== 'undefined' ? data : null;

                return typeof optionalCallback === 'function' ? optionalCallback(data) : data;
            };

            var value = localStorage.getItem(key);

            if (value !== null) {
                value = JSON.parse(value);

                if (value.hasOwnProperty('__expiry')) {
                    var expiry = value.__expiry;
                    var now = Date.now();

                    if (now >= expiry) {
                        this.removeItem(key);

                        return callback();
                    } else {
                        return callback(value.__data);
                    }
                } else {
                    return callback(value);
                }
            } else {
                return callback();
            }
        },
        setItem: function (key, value, expiry) {
            if (!this.supportsLocalStorage() || typeof value === 'undefined' || key === null || value === null) {
                return false;
            }

            if (typeof expiry === 'number') {
                value = {
                    __data: value,
                    __expiry: Date.now() + (parseInt(expiry) * 1000)
                };
            }

            try {
                localStorage.setItem(key, JSON.stringify(value));

                return true;
            } catch (e) {
                console.log('Không thể lưu dữ liệu ' + key + ' trong localStorage: ' + e.name);
                return false;
            }
        },
        removeItem: function (key) {
            if (this.supportsLocalStorage()) {
                localStorage.removeItem(key);
            }
        },
        clear: function () {
            if (this.supportsLocalStorage()) {
                localStorage.clear();
            }
        },
        supportsLocalStorage: function () {
            try {
                localStorage.setItem('_', '_');
                localStorage.removeItem('_');

                return true;
            } catch (e) {
                return false;
            }
        }
    }
    ajaxError();
    init();
    initEvents();
    initTab();
    initToggleTarget();
    initLazyload();
    initWebPageLogs();
    initNotify();
    initBackToTopButton();

    return {
        fetchData: fetchData,
        ajaxEvents: ajaxEvents,
        showMessage: showMessage,
        storage: storage,
        showLoading: showLoading,
        hideLoading: hideLoading,
        pushState: pushState,
        validatorForm: validatorForm,
        getRecaptchaToken: getRecaptchaToken,
        addRecaptchaV3ToForm: addRecaptchaV3ToForm,
        loadScript: loadScript,
        loadGoogleRecaptcha: loadGoogleRecaptcha,
        loadGoogleTagManager: loadGoogleTagManager,
        loadFacebookPixel: loadFacebookPixel,
        loadFacebookJavascriptSDK: loadFacebookJavascriptSDK,
        loadZaloJavascriptSDK: loadZaloJavascriptSDK,
        loadvChat: loadvChat,
        removeAccents: removeAccents,
        requiredIf: requiredIf,
        formatNumber: formatNumber,
        initAdsSticky: initAdsSticky,
        debounce: debounce,
        setupFilterCheckboxSearchForm,
        setupFilterSearchForm,
        setupFilterAutocompleteSearchForm
    };
})();
var lawsVns = {
    ajaxEvents: {
        OnBegin: function () {
            $('#loading').fadeIn('normal');
        },
        OnComplete: function (element) {
            $('#loading').fadeOut('normal');
        },
        OnFailure: function (jqXhr, errorMessage) {
            $('#loading').fadeOut('normal');
            $('.popup-bg').lawsExists(function () {
                $(this).hide();
            });
            appModule.showMessage({ messages: ['Quý khách vui lòng thử lại sau.'] });
        },
        FeedBackOnSuccess: function (data, status, xhr) {
            var form = $('#FormGopYv2'), msg = form.find('#FeedBacksMessages');
            if (data.Completed) {
                $('#Comment', form).val('');
                $('#CaptchaCode', form).val('');
            }
            if (data.Message !== null && data.Message.length > 0) {
                appModule.showMessage({ messages: [data.Message] });
            }
            form.remove()
            $('#_gopy').addClass('target-hidden').removeClass('target-expanded');
            $('.getcaptcha', form).trigger('click');
        },
        CustomerUpdateInfoOnSuccess: function (data, status, xhr) {
            if (data.Completed) {
                if ($('#_tipsthongbao_kq').length > 0) {
                    var tips = $('#_tipsthongbao_kq').first();
                    if (tips.find('.popup-content').children().length > 0) {
                        tips.removeClass('target-hidden').addClass('target-expanded');
                    }
                    tips.prev('.popup-bg').removeClass('target-expanded').addClass('target-hidden');
                    $('.tips-thong-bao').removeClass('target-expanded').addClass('target-hidden');
                    $('#attachment_name_fdk7tn').empty();
                    $('#filePath_pw9l69').find('input[type="hidden"][name="FilePath"]').remove();
                }
            } else {
                appModule.showMessage({ messages: ['Quý khách vui lòng thử lại sau.'] });
            }
        }
    }
}
var landingPagesModule = (function () {

    function init() {
        initEvents();
        appModule.loadGoogleTagManager(window, document, 'dataLayer', 'GTM-NVLHPK6');
        appModule.loadFacebookPixel(window, document);
        appModule.loadFacebookJavascriptSDK();
        appModule.loadvChat();
    }

    function initEvents() {
        $(document).on('click', '.btn-anchor', function (e) {
            e.preventDefault();
            var id = $(this).data('id') || '';
            if (id.length > 0) {
                $('html, body').animate({
                    scrollTop: $(id).offset().top
                }, 500);
            }
        });
    }

    init();
})();
