﻿(function(global,factory){"use strict";if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document");}
return factory(w);};}else{factory(global);}})(typeof window!=="undefined"?window:this,function(window,noGlobal){"use strict";var arr=[];var getProto=Object.getPrototypeOf;var slice=arr.slice;var flat=arr.flat?function(array){return arr.flat.call(array);}:function(array){return arr.concat.apply([],array);};var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var fnToString=hasOwn.toString;var ObjectFunctionString=fnToString.call(Object);var support={};var isFunction=function isFunction(obj){return typeof obj==="function"&&typeof obj.nodeType!=="number"&&typeof obj.item!=="function";};var isWindow=function isWindow(obj){return obj!=null&&obj===obj.window;};var document=window.document;var preservedScriptAttributes={type:true,src:true,nonce:true,noModule:true};function DOMEval(code,node,doc){doc=doc||document;var i,val,script=doc.createElement("script");script.text=code;if(node){for(i in preservedScriptAttributes){val=node[i]||node.getAttribute&&node.getAttribute(i);if(val){script.setAttribute(i,val);}}}
doc.head.appendChild(script).parentNode.removeChild(script);}
function toType(obj){if(obj==null){return obj+"";}
return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;}
var version="3.7.1",rhtmlSuffix=/HTML$/i,jQuery=function(selector,context){return new jQuery.fn.init(selector,context);};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,length:0,toArray:function(){return slice.call(this);},get:function(num){if(num==null){return slice.call(this);}
return num<0?this[num+this.length]:this[num];},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;return ret;},each:function(callback){return jQuery.each(this,callback);},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},slice:function(){return this.pushStack(slice.apply(this,arguments));},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},even:function(){return this.pushStack(jQuery.grep(this,function(_elem,i){return(i+1)%2;}));},odd:function(){return this.pushStack(jQuery.grep(this,function(_elem,i){return i%2;}));},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[]);},end:function(){return this.prevObject||this.constructor();},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}
if(typeof target!=="object"&&!isFunction(target)){target={};}
if(i===length){target=this;i--;}
for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){copy=options[name];if(name==="__proto__"||target===copy){continue;}
if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=Array.isArray(copy)))){src=target[name];if(copyIsArray&&!Array.isArray(src)){clone=[];}else if(!copyIsArray&&!jQuery.isPlainObject(src)){clone={};}else{clone=src;}
copyIsArray=false;target[name]=jQuery.extend(deep,clone,copy);}else if(copy!==undefined){target[name]=copy;}}}}
return target;};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg);},noop:function(){},isPlainObject:function(obj){var proto,Ctor;if(!obj||toString.call(obj)!=="[object Object]"){return false;}
proto=getProto(obj);if(!proto){return true;}
Ctor=hasOwn.call(proto,"constructor")&&proto.constructor;return typeof Ctor==="function"&&fnToString.call(Ctor)===ObjectFunctionString;},isEmptyObject:function(obj){var name;for(name in obj){return false;}
return true;},globalEval:function(code,options,doc){DOMEval(code,{nonce:options&&options.nonce},doc);},each:function(obj,callback){var length,i=0;if(isArrayLike(obj)){length=obj.length;for(;i<length;i++){if(callback.call(obj[i],i,obj[i])===false){break;}}}else{for(i in obj){if(callback.call(obj[i],i,obj[i])===false){break;}}}
return obj;},text:function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while((node=elem[i++])){ret+=jQuery.text(node);}}
if(nodeType===1||nodeType===11){return elem.textContent;}
if(nodeType===9){return elem.documentElement.textContent;}
if(nodeType===3||nodeType===4){return elem.nodeValue;}
return ret;},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArrayLike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr);}else{push.call(ret,arr);}}
return ret;},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i);},isXMLDoc:function(elem){var namespace=elem&&elem.namespaceURI,docElem=elem&&(elem.ownerDocument||elem).documentElement;return!rhtmlSuffix.test(namespace||docElem&&docElem.nodeName||"HTML");},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j];}
first.length=i;return first;},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i]);}}
return matches;},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}
return flat(ret);},guid:1,support:support});if(typeof Symbol==="function"){jQuery.fn[Symbol.iterator]=arr[Symbol.iterator];}
jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(_i,name){class2type["[object "+name+"]"]=name.toLowerCase();});function isArrayLike(obj){var length=!!obj&&"length" in obj&&obj.length,type=toType(obj);if(isFunction(obj)||isWindow(obj)){return false;}
return type==="array"||length===0||typeof length==="number"&&length>0&&(length-1)in obj;}
function nodeName(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();}
var pop=arr.pop;var sort=arr.sort;var splice=arr.splice;var whitespace="[\\x20\\t\\r\\n\\f]";var rtrimCSS=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g");jQuery.contains=function(a,b){var bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(a.contains?a.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));};var rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function fcssescape(ch,asCodePoint){if(asCodePoint){if(ch==="\0"){return"\uFFFD";}
return ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ";}
return"\\"+ch;}
jQuery.escapeSelector=function(sel){return(sel+"").replace(rcssescape,fcssescape);};var preferredDoc=document,pushNative=push;(function(){var i,Expr,outermostContext,sortInput,hasDuplicate,push=pushNative,document,documentElement,documentIsHTML,rbuggyQSA,matches,expando=jQuery.expando,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),nonnativeSelectorCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true;}
return 0;},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|"+"loop|multiple|open|readonly|required|scoped",identifier="(?:\\\\[\\da-fA-F]{1,6}"+whitespace+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+
whitespace+"*\\]",pseudos=":("+identifier+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rleadingCombinator=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+
whitespace+"*"),rdescend=new RegExp(whitespace+"|>"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+
whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+
whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\[\\da-fA-F]{1,6}"+whitespace+"?|\\\\([^\\r\\n\\f])","g"),funescape=function(escape,nonHex){var high="0x"+escape.slice(1)-0x10000;if(nonHex){return nonHex;}
return high<0?String.fromCharCode(high+0x10000):String.fromCharCode(high>>10|0xD800,high&0x3FF|0xDC00);},unloadHandler=function(){setDocument();},inDisabledFieldset=addCombinator(function(elem){return elem.disabled===true&&nodeName(elem,"fieldset");},{dir:"parentNode",next:"legend"});function safeActiveElement(){try{return document.activeElement;}catch(err){}}
try{push.apply((arr=slice.call(preferredDoc.childNodes)),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType;}catch(e){push={apply:function(target,els){pushNative.apply(target,slice.call(els));},call:function(target){pushNative.apply(target,slice.call(arguments,1));}};}
function find(selector,context,results,seed){var m,i,elem,nid,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;results=results||[];if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results;}
if(!seed){setDocument(context);context=context||document;if(documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if((m=match[1])){if(nodeType===9){if((elem=context.getElementById(m))){if(elem.id===m){push.call(results,elem);return results;}}else{return results;}}else{if(newContext&&(elem=newContext.getElementById(m))&&find.contains(context,elem)&&elem.id===m){push.call(results,elem);return results;}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results;}else if((m=match[3])&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results;}}
if(!nonnativeSelectorCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){newSelector=selector;newContext=context;if(nodeType===1&&(rdescend.test(selector)||rleadingCombinator.test(selector))){newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;if(newContext!=context||!support.scope){if((nid=context.getAttribute("id"))){nid=jQuery.escapeSelector(nid);}else{context.setAttribute("id",(nid=expando));}}
groups=tokenize(selector);i=groups.length;while(i--){groups[i]=(nid?"#"+nid:":scope")+" "+
toSelector(groups[i]);}
newSelector=groups.join(",");}
try{push.apply(results,newContext.querySelectorAll(newSelector));return results;}catch(qsaError){nonnativeSelectorCache(selector,true);}finally{if(nid===expando){context.removeAttribute("id");}}}}}
return select(selector.replace(rtrimCSS,"$1"),context,results,seed);}
function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()];}
return(cache[key+" "]=value);}
return cache;}
function markFunction(fn){fn[expando]=true;return fn;}
function assert(fn){var el=document.createElement("fieldset");try{return!!fn(el);}catch(e){return false;}finally{if(el.parentNode){el.parentNode.removeChild(el);}
el=null;}}
function createInputPseudo(type){return function(elem){return nodeName(elem,"input")&&elem.type===type;};}
function createButtonPseudo(type){return function(elem){return(nodeName(elem,"input")||nodeName(elem,"button"))&&elem.type===type;};}
function createDisabledPseudo(disabled){return function(elem){if("form" in elem){if(elem.parentNode&&elem.disabled===false){if("label" in elem){if("label" in elem.parentNode){return elem.parentNode.disabled===disabled;}else{return elem.disabled===disabled;}}
return elem.isDisabled===disabled||elem.isDisabled!==!disabled&&inDisabledFieldset(elem)===disabled;}
return elem.disabled===disabled;}else if("label" in elem){return elem.disabled===disabled;}
return false;};}
function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[(j=matchIndexes[i])]){seed[j]=!(matches[j]=seed[j]);}}});});}
function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context;}
function setDocument(node){var subWindow,doc=node?node.ownerDocument||node:preferredDoc;if(doc==document||doc.nodeType!==9||!doc.documentElement){return document;}
document=doc;documentElement=document.documentElement;documentIsHTML=!jQuery.isXMLDoc(document);matches=documentElement.matches||documentElement.webkitMatchesSelector||documentElement.msMatchesSelector;if(documentElement.msMatchesSelector&&preferredDoc!=document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow){subWindow.addEventListener("unload",unloadHandler);}
support.getById=assert(function(el){documentElement.appendChild(el).id=jQuery.expando;return!document.getElementsByName||!document.getElementsByName(jQuery.expando).length;});support.disconnectedMatch=assert(function(el){return matches.call(el,"*");});support.scope=assert(function(){return document.querySelectorAll(":scope");});support.cssHas=assert(function(){try{document.querySelector(":has(*,:jqfake)");return false;}catch(e){return true;}});if(support.getById){Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId;};};Expr.find.ID=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var elem=context.getElementById(id);return elem?[elem]:[];}};}else{Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId;};};Expr.find.ID=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var node,i,elems,elem=context.getElementById(id);if(elem){node=elem.getAttributeNode("id");if(node&&node.value===id){return[elem];}
elems=context.getElementsByName(id);i=0;while((elem=elems[i++])){node=elem.getAttributeNode("id");if(node&&node.value===id){return[elem];}}}
return[];}};}
Expr.find.TAG=function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag);}else{return context.querySelectorAll(tag);}};Expr.find.CLASS=function(className,context){if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML){return context.getElementsByClassName(className);}};rbuggyQSA=[];assert(function(el){var input;documentElement.appendChild(el).innerHTML="<a id='"+expando+"' href='' disabled='disabled'></a>"+"<select id='"+expando+"-\r\\' disabled='disabled'>"+"<option selected=''></option></select>";if(!el.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");}
if(!el.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=");}
if(!el.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]");}
if(!el.querySelectorAll(":checked").length){rbuggyQSA.push(":checked");}
input=document.createElement("input");input.setAttribute("type","hidden");el.appendChild(input).setAttribute("name","D");documentElement.appendChild(el).disabled=true;if(el.querySelectorAll(":disabled").length!==2){rbuggyQSA.push(":enabled",":disabled");}
input=document.createElement("input");input.setAttribute("name","");el.appendChild(input);if(!el.querySelectorAll("[name='']").length){rbuggyQSA.push("\\["+whitespace+"*name"+whitespace+"*="+
whitespace+"*(?:''|\"\")");}});if(!support.cssHas){rbuggyQSA.push(":has");}
rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0;}
var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare;}
compare=(a.ownerDocument||a)==(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){if(a===document||a.ownerDocument==preferredDoc&&find.contains(preferredDoc,a)){return-1;}
if(b===document||b.ownerDocument==preferredDoc&&find.contains(preferredDoc,b)){return 1;}
return sortInput?(indexOf.call(sortInput,a)-indexOf.call(sortInput,b)):0;}
return compare&4?-1:1;};return document;}
find.matches=function(expr,elements){return find(expr,null,null,elements);};find.matchesSelector=function(elem,expr){setDocument(elem);if(documentIsHTML&&!nonnativeSelectorCache[expr+" "]&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret;}}catch(e){nonnativeSelectorCache(expr,true);}}
return find(expr,document,null,[elem]).length>0;};find.contains=function(context,elem){if((context.ownerDocument||context)!=document){setDocument(context);}
return jQuery.contains(context,elem);};find.attr=function(elem,name){if((elem.ownerDocument||elem)!=document){setDocument(elem);}
var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;if(val!==undefined){return val;}
return elem.getAttribute(name);};find.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg);};jQuery.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.sortStable;sortInput=!support.sortStable&&slice.call(results,0);sort.call(results,sortOrder);if(hasDuplicate){while((elem=results[i++])){if(elem===results[i]){j=duplicates.push(i);}}
while(j--){splice.call(results,duplicates[j],1);}}
sortInput=null;return results;};jQuery.fn.uniqueSort=function(){return this.pushStack(jQuery.uniqueSort(slice.apply(this)));};Expr=jQuery.expr={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" ";}
return match.slice(0,4);},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){find.error(match[0]);}
match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+((match[7]+match[8])||match[3]==="odd");}else if(match[3]){find.error(match[0]);}
return match;},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr.CHILD.test(match[0])){return null;}
if(match[3]){match[2]=match[4]||match[5]||"";}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess);}
return match.slice(0,3);}},filter:{TAG:function(nodeNameSelector){var expectedNodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true;}:function(elem){return nodeName(elem,expectedNodeName);};},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"");});},ATTR:function(name,operator,check){return function(elem){var result=find.attr(elem,name);if(result==null){return operator==="!=";}
if(!operator){return true;}
result+="";if(operator==="="){return result===check;}
if(operator==="!="){return result!==check;}
if(operator==="^="){return check&&result.indexOf(check)===0;}
if(operator==="*="){return check&&result.indexOf(check)>-1;}
if(operator==="$="){return check&&result.slice(-check.length)===check;}
if(operator==="~="){return(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1;}
if(operator==="|="){return result===check||result.slice(0,check.length+1)===check+"-";}
return false;};},CHILD:function(type,what,_argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode;}:function(elem,_context,xml){var cache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=false;if(parent){if(simple){while(dir){node=elem;while((node=node[dir])){if(ofType?nodeName(node,name):node.nodeType===1){return false;}}
start=dir=type==="only"&&!start&&"nextSibling";}
return true;}
start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break;}}}else{if(useCache){outerCache=elem[expando]||(elem[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex;}
if(diff===false){while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if((ofType?nodeName(node,name):node.nodeType===1)&&++diff){if(useCache){outerCache=node[expando]||(node[expando]={});outerCache[type]=[dirruns,diff];}
if(node===elem){break;}}}}}
diff-=last;return diff===first||(diff%first===0&&diff/first>=0);}};},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||find.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument);}
if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf.call(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i]);}}):function(elem){return fn(elem,0,args);};}
return fn;}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrimCSS,"$1"));return matcher[expando]?markFunction(function(seed,matches,_context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if((elem=unmatched[i])){seed[i]=!(matches[i]=elem);}}}):function(elem,_context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop();};}),has:markFunction(function(selector){return function(elem){return find(selector,elem).length>0;};}),contains:markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||jQuery.text(elem)).indexOf(text)>-1;};}),lang:markFunction(function(lang){if(!ridentifier.test(lang||"")){find.error("unsupported lang: "+lang);}
lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if((elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0;}}while((elem=elem.parentNode)&&elem.nodeType===1);return false;};}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id;},root:function(elem){return elem===documentElement;},focus:function(elem){return elem===safeActiveElement()&&document.hasFocus()&&!!(elem.type||elem.href||~elem.tabIndex);},enabled:createDisabledPseudo(false),disabled:createDisabledPseudo(true),checked:function(elem){return(nodeName(elem,"input")&&!!elem.checked)||(nodeName(elem,"option")&&!!elem.selected);},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}
return elem.selected===true;},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false;}}
return true;},parent:function(elem){return!Expr.pseudos.empty(elem);},header:function(elem){return rheader.test(elem.nodeName);},input:function(elem){return rinputs.test(elem.nodeName);},button:function(elem){return nodeName(elem,"input")&&elem.type==="button"||nodeName(elem,"button");},text:function(elem){var attr;return nodeName(elem,"input")&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text");},first:createPositionalPseudo(function(){return[0];}),last:createPositionalPseudo(function(_matchIndexes,length){return[length-1];}),eq:createPositionalPseudo(function(_matchIndexes,length,argument){return[argument<0?argument+length:argument];}),even:createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i);}
return matchIndexes;}),odd:createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i);}
return matchIndexes;}),lt:createPositionalPseudo(function(matchIndexes,length,argument){var i;if(argument<0){i=argument+length;}else if(argument>length){i=length;}else{i=argument;}
for(;--i>=0;){matchIndexes.push(i);}
return matchIndexes;}),gt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i);}
return matchIndexes;})}};Expr.pseudos.nth=Expr.pseudos.eq;for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i);}
for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i);}
function setFilters(){}
setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();function tokenize(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0);}
soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar;}
groups.push((tokens=[]));}
matched=false;if((match=rleadingCombinator.exec(soFar))){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrimCSS," ")});soFar=soFar.slice(matched.length);}
for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length);}}
if(!matched){break;}}
if(parseOnly){return soFar.length;}
return soFar?find.error(selector):tokenCache(selector,groups).slice(0);}
function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value;}
return selector;}
function addCombinator(matcher,combinator,base){var dir=combinator.dir,skip=combinator.next,key=skip||dir,checkNonElements=base&&key==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml);}}
return false;}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true;}}}}else{while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if(skip&&nodeName(elem,skip)){elem=elem[dir]||elem;}else if((oldCache=outerCache[key])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return(newCache[2]=oldCache[2]);}else{outerCache[key]=newCache;if((newCache[2]=matcher(elem,context,xml))){return true;}}}}}
return false;};}
function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false;}}
return true;}:matchers[0];}
function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){find(selector,contexts[i],results);}
return results;}
function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if((elem=unmatched[i])){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i);}}}}
return newUnmatched;}
function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter);}
if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector);}
return markFunction(function(seed,results,context,xml){var temp,i,elem,matcherOut,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems;if(matcher){matcherOut=postFinder||(seed?preFilter:preexisting||postFilter)?[]:results;matcher(matcherIn,matcherOut,context,xml);}else{matcherOut=matcherIn;}
if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if((elem=temp[i])){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);}}}
if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if((elem=matcherOut[i])){temp.push((matcherIn[i]=elem));}}
postFinder(null,(matcherOut=[]),temp,xml);}
i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf.call(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem);}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml);}else{push.apply(results,matcherOut);}}});}
function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext;},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf.call(checkContext,elem)>-1;},implicitRelative,true),matchers=[function(elem,context,xml){var ret=(!leadingRelative&&(xml||context!=outermostContext))||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret;}];for(;i<len;i++){if((matcher=Expr.relative[tokens[i].type])){matchers=[addCombinator(elementMatcher(matchers),matcher)];}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break;}}
return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrimCSS,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens((tokens=tokens.slice(j))),j<len&&toSelector(tokens));}
matchers.push(matcher);}}
return elementMatcher(matchers);}
function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),len=elems.length;if(outermost){outermostContext=context==document||context||outermost;}
for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;if(!context&&elem.ownerDocument!=document){setDocument(elem);xml=!documentIsHTML;}
while((matcher=elementMatchers[j++])){if(matcher(elem,context||document,xml)){push.call(results,elem);break;}}
if(outermost){dirruns=dirrunsUnique;}}
if(bySet){if((elem=!matcher&&elem)){matchedCount--;}
if(seed){unmatched.push(elem);}}}
matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while((matcher=setMatchers[j++])){matcher(unmatched,setMatched,context,xml);}
if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results);}}}
setMatched=condense(setMatched);}
push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&(matchedCount+setMatchers.length)>1){jQuery.uniqueSort(results);}}
if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup;}
return unmatched;};return bySet?markFunction(superMatcher):superMatcher;}
function compile(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector);}
i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached);}else{elementMatchers.push(cached);}}
cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector;}
return cached;}
function select(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize((selector=compiled.selector||selector));results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results;}else if(compiled){context=context.parentNode;}
selector=selector.slice(tokens.shift().value.length);}
i=matchExpr.needsContext.test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[(type=token.type)]){break;}
if((find=Expr.find[type])){if((seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results;}
break;}}}}
(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context);return results;}
support.sortStable=expando.split("").sort(sortOrder).join("")===expando;setDocument();support.sortDetached=assert(function(el){return el.compareDocumentPosition(document.createElement("fieldset"))&1;});jQuery.find=find;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=jQuery.uniqueSort;find.compile=compile;find.select=select;find.setDocument=setDocument;find.tokenize=tokenize;find.escape=jQuery.escapeSelector;find.getText=jQuery.text;find.isXML=jQuery.isXMLDoc;find.selectors=jQuery.expr;find.support=jQuery.support;find.uniqueSort=jQuery.uniqueSort;})();var dir=function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break;}
matched.push(elem);}}
return matched;};var siblings=function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n);}}
return matched;};var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=(/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i);function winnow(elements,qualifier,not){if(isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not;});}
if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return(elem===qualifier)!==not;});}
if(typeof qualifier!=="string"){return jQuery.grep(elements,function(elem){return(indexOf.call(qualifier,elem)>-1)!==not;});}
return jQuery.filter(qualifier,elements,not);}
jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")";}
if(elems.length===1&&elem.nodeType===1){return jQuery.find.matchesSelector(elem,expr)?[elem]:[];}
return jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1;}));};jQuery.fn.extend({find:function(selector){var i,ret,len=this.length,self=this;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true;}}}));}
ret=this.pushStack([]);for(i=0;i<len;i++){jQuery.find(selector,self[i],ret);}
return len>1?jQuery.uniqueSort(ret):ret;},filter:function(selector){return this.pushStack(winnow(this,selector||[],false));},not:function(selector){return this.pushStack(winnow(this,selector||[],true));},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length;}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector){return this;}
root=root||rootjQuery;if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null];}else{match=rquickExpr.exec(selector);}
if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(isFunction(this[match])){this[match](context[match]);}else{this.attr(match,context[match]);}}}
return this;}else{elem=document.getElementById(match[2]);if(elem){this[0]=elem;this.length=1;}
return this;}}else if(!context||context.jquery){return(context||root).find(selector);}else{return this.constructor(context).find(selector);}}else if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(isFunction(selector)){return root.ready!==undefined?root.ready(selector):selector(jQuery);}
return jQuery.makeArray(selector,this);};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true;}}});},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],targets=typeof selectors!=="string"&&jQuery(selectors);if(!rneedsContext.test(selectors)){for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(targets?targets.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break;}}}}
return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched);},index:function(elem){if(!elem){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1;}
if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0]);}
return indexOf.call(this,elem.jquery?elem[0]:elem);},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))));},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}
return cur;}
jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return dir(elem,"parentNode");},parentsUntil:function(elem,_i,until){return dir(elem,"parentNode",until);},next:function(elem){return sibling(elem,"nextSibling");},prev:function(elem){return sibling(elem,"previousSibling");},nextAll:function(elem){return dir(elem,"nextSibling");},prevAll:function(elem){return dir(elem,"previousSibling");},nextUntil:function(elem,_i,until){return dir(elem,"nextSibling",until);},prevUntil:function(elem,_i,until){return dir(elem,"previousSibling",until);},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem);},children:function(elem){return siblings(elem.firstChild);},contents:function(elem){if(elem.contentDocument!=null&&getProto(elem.contentDocument)){return elem.contentDocument;}
if(nodeName(elem,"template")){elem=elem.content||elem;}
return jQuery.merge([],elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until;}
if(selector&&typeof selector==="string"){matched=jQuery.filter(selector,matched);}
if(this.length>1){if(!guaranteedUnique[name]){jQuery.uniqueSort(matched);}
if(rparentsprev.test(name)){matched.reverse();}}
return this.pushStack(matched);};});var rnothtmlwhite=(/[^\x20\t\r\n\f]+/g);function createOptions(options){var object={};jQuery.each(options.match(rnothtmlwhite)||[],function(_,flag){object[flag]=true;});return object;}
jQuery.Callbacks=function(options){options=typeof options==="string"?createOptions(options):jQuery.extend({},options);var
firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){locked=locked||options.once;fired=firing=true;for(;queue.length;firingIndex=-1){memory=queue.shift();while(++firingIndex<list.length){if(list[firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){firingIndex=list.length;memory=false;}}}
if(!options.memory){memory=false;}
firing=false;if(locked){if(memory){list=[];}else{list="";}}},self={add:function(){if(list){if(memory&&!firing){firingIndex=list.length-1;queue.push(memory);}
(function add(args){jQuery.each(args,function(_,arg){if(isFunction(arg)){if(!options.unique||!self.has(arg)){list.push(arg);}}else if(arg&&arg.length&&toType(arg)!=="string"){add(arg);}});})(arguments);if(memory&&!firing){fire();}}
return this;},remove:function(){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(index<=firingIndex){firingIndex--;}}});return this;},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0;},empty:function(){if(list){list=[];}
return this;},disable:function(){locked=queue=[];list=memory="";return this;},disabled:function(){return!list;},lock:function(){locked=queue=[];if(!memory&&!firing){list=memory="";}
return this;},locked:function(){return!!locked;},fireWith:function(context,args){if(!locked){args=args||[];args=[context,args.slice?args.slice():args];queue.push(args);if(!firing){fire();}}
return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return!!fired;}};return self;};function Identity(v){return v;}
function Thrower(ex){throw ex;}
function adoptValue(value,resolve,reject,noValue){var method;try{if(value&&isFunction((method=value.promise))){method.call(value).done(resolve).fail(reject);}else if(value&&isFunction((method=value.then))){method.call(value,resolve,reject);}else{resolve.apply(undefined,[value].slice(noValue));}}catch(value){reject.apply(undefined,[value]);}}
jQuery.extend({Deferred:function(func){var tuples=[["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory"),2],["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),0,"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),1,"rejected"]],state="pending",promise={state:function(){return state;},always:function(){deferred.done(arguments).fail(arguments);return this;},"catch":function(fn){return promise.then(null,fn);},pipe:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(_i,tuple){var fn=isFunction(fns[tuple[4]])&&fns[tuple[4]];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&isFunction(returned.promise)){returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);}else{newDefer[tuple[0]+"With"](this,fn?[returned]:arguments);}});});fns=null;}).promise();},then:function(onFulfilled,onRejected,onProgress){var maxDepth=0;function resolve(depth,deferred,handler,special){return function(){var that=this,args=arguments,mightThrow=function(){var returned,then;if(depth<maxDepth){return;}
returned=handler.apply(that,args);if(returned===deferred.promise()){throw new TypeError("Thenable self-resolution");}
then=returned&&(typeof returned==="object"||typeof returned==="function")&&returned.then;if(isFunction(then)){if(special){then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special));}else{maxDepth++;then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special),resolve(maxDepth,deferred,Identity,deferred.notifyWith));}}else{if(handler!==Identity){that=undefined;args=[returned];}
(special||deferred.resolveWith)(that,args);}},process=special?mightThrow:function(){try{mightThrow();}catch(e){if(jQuery.Deferred.exceptionHook){jQuery.Deferred.exceptionHook(e,process.error);}
if(depth+1>=maxDepth){if(handler!==Thrower){that=undefined;args=[e];}
deferred.rejectWith(that,args);}}};if(depth){process();}else{if(jQuery.Deferred.getErrorHook){process.error=jQuery.Deferred.getErrorHook();}else if(jQuery.Deferred.getStackHook){process.error=jQuery.Deferred.getStackHook();}
window.setTimeout(process);}};}
return jQuery.Deferred(function(newDefer){tuples[0][3].add(resolve(0,newDefer,isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith));tuples[1][3].add(resolve(0,newDefer,isFunction(onFulfilled)?onFulfilled:Identity));tuples[2][3].add(resolve(0,newDefer,isFunction(onRejected)?onRejected:Thrower));}).promise();},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise;}},deferred={};jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString;},tuples[3-i][2].disable,tuples[3-i][3].disable,tuples[0][2].lock,tuples[0][3].lock);}
list.add(tuple[3].fire);deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?undefined:this,arguments);return this;};deferred[tuple[0]+"With"]=list.fireWith;});promise.promise(deferred);if(func){func.call(deferred,deferred);}
return deferred;},when:function(singleValue){var
remaining=arguments.length,i=remaining,resolveContexts=Array(i),resolveValues=slice.call(arguments),primary=jQuery.Deferred(),updateFunc=function(i){return function(value){resolveContexts[i]=this;resolveValues[i]=arguments.length>1?slice.call(arguments):value;if(!(--remaining)){primary.resolveWith(resolveContexts,resolveValues);}};};if(remaining<=1){adoptValue(singleValue,primary.done(updateFunc(i)).resolve,primary.reject,!remaining);if(primary.state()==="pending"||isFunction(resolveValues[i]&&resolveValues[i].then)){return primary.then();}}
while(i--){adoptValue(resolveValues[i],updateFunc(i),primary.reject);}
return primary.promise();}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,asyncError){if(window.console&&window.console.warn&&error&&rerrorNames.test(error.name)){window.console.warn("jQuery.Deferred exception: "+error.message,error.stack,asyncError);}};jQuery.readyException=function(error){window.setTimeout(function(){throw error;});};var readyList=jQuery.Deferred();jQuery.fn.ready=function(fn){readyList.then(fn).catch(function(error){jQuery.readyException(error);});return this;};jQuery.extend({isReady:false,readyWait:1,ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return;}
jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}
readyList.resolveWith(document,[jQuery]);}});jQuery.ready.then=readyList.then;function completed(){document.removeEventListener("DOMContentLoaded",completed);window.removeEventListener("load",completed);jQuery.ready();}
if(document.readyState==="complete"||(document.readyState!=="loading"&&!document.documentElement.doScroll)){window.setTimeout(jQuery.ready);}else{document.addEventListener("DOMContentLoaded",completed);window.addEventListener("load",completed);}
var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(toType(key)==="object"){chainable=true;for(i in key){access(elems,fn,i,key[i],true,emptyGet,raw);}}else if(value!==undefined){chainable=true;if(!isFunction(value)){raw=true;}
if(bulk){if(raw){fn.call(elems,value);fn=null;}else{bulk=fn;fn=function(elem,_key,value){return bulk.call(jQuery(elem),value);};}}
if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));}}}
if(chainable){return elems;}
if(bulk){return fn.call(elems);}
return len?fn(elems[0],key):emptyGet;};var rmsPrefix=/^-ms-/,rdashAlpha=/-([a-z])/g;function fcamelCase(_all,letter){return letter.toUpperCase();}
function camelCase(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);}
var acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!(+owner.nodeType);};function Data(){this.expando=jQuery.expando+Data.uid++;}
Data.uid=1;Data.prototype={cache:function(owner){var value=owner[this.expando];if(!value){value={};if(acceptData(owner)){if(owner.nodeType){owner[this.expando]=value;}else{Object.defineProperty(owner,this.expando,{value:value,configurable:true});}}}
return value;},set:function(owner,data,value){var prop,cache=this.cache(owner);if(typeof data==="string"){cache[camelCase(data)]=value;}else{for(prop in data){cache[camelCase(prop)]=data[prop];}}
return cache;},get:function(owner,key){return key===undefined?this.cache(owner):owner[this.expando]&&owner[this.expando][camelCase(key)];},access:function(owner,key,value){if(key===undefined||((key&&typeof key==="string")&&value===undefined)){return this.get(owner,key);}
this.set(owner,key,value);return value!==undefined?value:key;},remove:function(owner,key){var i,cache=owner[this.expando];if(cache===undefined){return;}
if(key!==undefined){if(Array.isArray(key)){key=key.map(camelCase);}else{key=camelCase(key);key=key in cache?[key]:(key.match(rnothtmlwhite)||[]);}
i=key.length;while(i--){delete cache[key[i]];}}
if(key===undefined||jQuery.isEmptyObject(cache)){if(owner.nodeType){owner[this.expando]=undefined;}else{delete owner[this.expando];}}},hasData:function(owner){var cache=owner[this.expando];return cache!==undefined&&!jQuery.isEmptyObject(cache);}};var dataPriv=new Data();var dataUser=new Data();var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;function getData(data){if(data==="true"){return true;}
if(data==="false"){return false;}
if(data==="null"){return null;}
if(data===+data+""){return+data;}
if(rbrace.test(data)){return JSON.parse(data);}
return data;}
function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$&").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=getData(data);}catch(e){}
dataUser.set(elem,key,data);}else{data=undefined;}}
return data;}
jQuery.extend({hasData:function(elem){return dataUser.hasData(elem)||dataPriv.hasData(elem);},data:function(elem,name,data){return dataUser.access(elem,name,data);},removeData:function(elem,name){dataUser.remove(elem,name);},_data:function(elem,name,data){return dataPriv.access(elem,name,data);},_removeData:function(elem,name){dataPriv.remove(elem,name);}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=dataUser.get(elem);if(elem.nodeType===1&&!dataPriv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=camelCase(name.slice(5));dataAttr(elem,name,data[name]);}}}
dataPriv.set(elem,"hasDataAttrs",true);}}
return data;}
if(typeof key==="object"){return this.each(function(){dataUser.set(this,key);});}
return access(this,function(value){var data;if(elem&&value===undefined){data=dataUser.get(elem,key);if(data!==undefined){return data;}
data=dataAttr(elem,key);if(data!==undefined){return data;}
return;}
this.each(function(){dataUser.set(this,key,value);});},null,value,arguments.length>1,null,true);},removeData:function(key){return this.each(function(){dataUser.remove(this,key);});}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=dataPriv.get(elem,type);if(data){if(!queue||Array.isArray(data)){queue=dataPriv.access(elem,type,jQuery.makeArray(data));}else{queue.push(data);}}
return queue||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type);};if(fn==="inprogress"){fn=queue.shift();startLength--;}
if(fn){if(type==="fx"){queue.unshift("inprogress");}
delete hooks.stop;fn.call(elem,next,hooks);}
if(!startLength&&hooks){hooks.empty.fire();}},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){dataPriv.remove(elem,[type+"queue",key]);})});}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--;}
if(arguments.length<setter){return jQuery.queue(this[0],type);}
return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!(--count)){defer.resolveWith(elements,[elements]);}};if(typeof type!=="string"){obj=type;type=undefined;}
type=type||"fx";while(i--){tmp=dataPriv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve);}}
resolve();return defer.promise(obj);}});var pnum=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;var rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i");var cssExpand=["Top","Right","Bottom","Left"];var documentElement=document.documentElement;var isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem);},composed={composed:true};if(documentElement.getRootNode){isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem)||elem.getRootNode(composed)===elem.ownerDocument;};}
var isHiddenWithinTree=function(elem,el){elem=el||elem;return elem.style.display==="none"||elem.style.display===""&&isAttached(elem)&&jQuery.css(elem,"display")==="none";};function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale,maxIterations=20,currentValue=tween?function(){return tween.cur();}:function(){return jQuery.css(elem,prop,"");},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=elem.nodeType&&(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){initial=initial/2;unit=unit||initialInUnit[3];initialInUnit=+initial||1;while(maxIterations--){jQuery.style(elem,prop,initialInUnit+unit);if((1-scale)*(1-(scale=currentValue()/initial||0.5))<=0){maxIterations=0;}
initialInUnit=initialInUnit/scale;}
initialInUnit=initialInUnit*2;jQuery.style(elem,prop,initialInUnit+unit);valueParts=valueParts||[];}
if(valueParts){initialInUnit=+initialInUnit||+initial||0;adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2];if(tween){tween.unit=unit;tween.start=initialInUnit;tween.end=adjusted;}}
return adjusted;}
var defaultDisplayMap={};function getDefaultDisplay(elem){var temp,doc=elem.ownerDocument,nodeName=elem.nodeName,display=defaultDisplayMap[nodeName];if(display){return display;}
temp=doc.body.appendChild(doc.createElement(nodeName));display=jQuery.css(temp,"display");temp.parentNode.removeChild(temp);if(display==="none"){display="block";}
defaultDisplayMap[nodeName]=display;return display;}
function showHide(elements,show){var display,elem,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue;}
display=elem.style.display;if(show){if(display==="none"){values[index]=dataPriv.get(elem,"display")||null;if(!values[index]){elem.style.display="";}}
if(elem.style.display===""&&isHiddenWithinTree(elem)){values[index]=getDefaultDisplay(elem);}}else{if(display!=="none"){values[index]="none";dataPriv.set(elem,"display",display);}}}
for(index=0;index<length;index++){if(values[index]!=null){elements[index].style.display=values[index];}}
return elements;}
jQuery.fn.extend({show:function(){return showHide(this,true);},hide:function(){return showHide(this);},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide();}
return this.each(function(){if(isHiddenWithinTree(this)){jQuery(this).show();}else{jQuery(this).hide();}});}});var rcheckableType=(/^(?:checkbox|radio)$/i);var rtagName=(/<([a-z][^\/\0>\x20\t\r\n\f]*)/i);var rscriptType=(/^$|^module$|\/(?:java|ecma)script/i);(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;div.innerHTML="<option></option>";support.option=!!div.lastChild;})();var wrapMap={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!support.option){wrapMap.optgroup=wrapMap.option=[1,"<select multiple='multiple'>","</select>"];}
function getAll(context,tag){var ret;if(typeof context.getElementsByTagName!=="undefined"){ret=context.getElementsByTagName(tag||"*");}else if(typeof context.querySelectorAll!=="undefined"){ret=context.querySelectorAll(tag||"*");}else{ret=[];}
if(tag===undefined||tag&&nodeName(context,tag)){return jQuery.merge([context],ret);}
return ret;}
function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){dataPriv.set(elems[i],"globalEval",!refElements||dataPriv.get(refElements[i],"globalEval"));}}
var rhtml=/<|&#?\w+;/;function buildFragment(elems,context,scripts,selection,ignored){var elem,tmp,tag,wrap,attached,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(toType(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem);}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem));}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild;}
jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent="";}}}
fragment.textContent="";i=0;while((elem=nodes[i++])){if(selection&&jQuery.inArray(elem,selection)>-1){if(ignored){ignored.push(elem);}
continue;}
attached=isAttached(elem);tmp=getAll(fragment.appendChild(elem),"script");if(attached){setGlobalEval(tmp);}
if(scripts){j=0;while((elem=tmp[j++])){if(rscriptType.test(elem.type||"")){scripts.push(elem);}}}}
return fragment;}
var rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return true;}
function returnFalse(){return false;}
function on(elem,types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined;}
for(type in types){on(elem,type,selector,data,types[type],one);}
return elem;}
if(data==null&&fn==null){fn=selector;data=selector=undefined;}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}
if(fn===false){fn=returnFalse;}else if(!fn){return elem;}
if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);}
return elem.each(function(){jQuery.event.add(this,types,fn,data,selector);});}
jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(!acceptData(elem)){return;}
if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector;}
if(selector){jQuery.find.matchesSelector(documentElement,selector);}
if(!handler.guid){handler.guid=jQuery.guid++;}
if(!(events=elemData.events)){events=elemData.events=Object.create(null);}
if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!=="undefined"&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined;};}
types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue;}
special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle);}}}
if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
if(selector){handlers.splice(handlers.delegateCount++,0,handleObj);}else{handlers.push(handleObj);}
jQuery.event.global[type]=true;}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(!elemData||!(events=elemData.events)){return;}
types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true);}
continue;}
special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--;}
if(special.remove){special.remove.call(elem,handleObj);}}}
if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle);}
delete events[type];}}
if(jQuery.isEmptyObject(events)){dataPriv.remove(elem,"handle events");}},dispatch:function(nativeEvent){var i,j,ret,matched,handleObj,handlerQueue,args=new Array(arguments.length),event=jQuery.event.fix(nativeEvent),handlers=(dataPriv.get(this,"events")||Object.create(null))[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;for(i=1;i<arguments.length;i++){args[i]=arguments[i];}
event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return;}
handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.rnamespace||handleObj.namespace===false||event.rnamespace.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation();}}}}}
if(special.postDispatch){special.postDispatch.call(this,event);}
return event.result;},handlers:function(event,handlers){var i,handleObj,sel,matchedHandlers,matchedSelectors,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&!(event.type==="click"&&event.button>=1)){for(;cur!==this;cur=cur.parentNode||this){if(cur.nodeType===1&&!(event.type==="click"&&cur.disabled===true)){matchedHandlers=[];matchedSelectors={};for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matchedSelectors[sel]===undefined){matchedSelectors[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length;}
if(matchedSelectors[sel]){matchedHandlers.push(handleObj);}}
if(matchedHandlers.length){handlerQueue.push({elem:cur,handlers:matchedHandlers});}}}}
cur=this;if(delegateCount<handlers.length){handlerQueue.push({elem:cur,handlers:handlers.slice(delegateCount)});}
return handlerQueue;},addProp:function(name,hook){Object.defineProperty(jQuery.Event.prototype,name,{enumerable:true,configurable:true,get:isFunction(hook)?function(){if(this.originalEvent){return hook(this.originalEvent);}}:function(){if(this.originalEvent){return this.originalEvent[name];}},set:function(value){Object.defineProperty(this,name,{enumerable:true,configurable:true,writable:true,value:value});}});},fix:function(originalEvent){return originalEvent[jQuery.expando]?originalEvent:new jQuery.Event(originalEvent);},special:{load:{noBubble:true},click:{setup:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input")){leverageNative(el,"click",true);}
return false;},trigger:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input")){leverageNative(el,"click");}
return true;},_default:function(event){var target=event.target;return rcheckableType.test(target.type)&&target.click&&nodeName(target,"input")&&dataPriv.get(target,"click")||nodeName(target,"a");}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result;}}}}};function leverageNative(el,type,isSetup){if(!isSetup){if(dataPriv.get(el,type)===undefined){jQuery.event.add(el,type,returnTrue);}
return;}
dataPriv.set(el,type,false);jQuery.event.add(el,type,{namespace:false,handler:function(event){var result,saved=dataPriv.get(this,type);if((event.isTrigger&1)&&this[type]){if(!saved){saved=slice.call(arguments);dataPriv.set(this,type,saved);this[type]();result=dataPriv.get(this,type);dataPriv.set(this,type,false);if(saved!==result){event.stopImmediatePropagation();event.preventDefault();return result;}}else if((jQuery.event.special[type]||{}).delegateType){event.stopPropagation();}}else if(saved){dataPriv.set(this,type,jQuery.event.trigger(saved[0],saved.slice(1),this));event.stopPropagation();event.isImmediatePropagationStopped=returnTrue;}}});}
jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle);}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props);}
if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse;this.target=(src.target&&src.target.nodeType===3)?src.target.parentNode:src.target;this.currentTarget=src.currentTarget;this.relatedTarget=src.relatedTarget;}else{this.type=src;}
if(props){jQuery.extend(this,props);}
this.timeStamp=src&&src.timeStamp||Date.now();this[jQuery.expando]=true;};jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,isSimulated:false,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&!this.isSimulated){e.preventDefault();}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopPropagation();}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopImmediatePropagation();}
this.stopPropagation();}};jQuery.each({altKey:true,bubbles:true,cancelable:true,changedTouches:true,ctrlKey:true,detail:true,eventPhase:true,metaKey:true,pageX:true,pageY:true,shiftKey:true,view:true,"char":true,code:true,charCode:true,key:true,keyCode:true,button:true,buttons:true,clientX:true,clientY:true,offsetX:true,offsetY:true,pointerId:true,pointerType:true,screenX:true,screenY:true,targetTouches:true,toElement:true,touches:true,which:true},jQuery.event.addProp);jQuery.each({focus:"focusin",blur:"focusout"},function(type,delegateType){function focusMappedHandler(nativeEvent){if(document.documentMode){var handle=dataPriv.get(this,"handle"),event=jQuery.event.fix(nativeEvent);event.type=nativeEvent.type==="focusin"?"focus":"blur";event.isSimulated=true;handle(nativeEvent);if(event.target===event.currentTarget){handle(event);}}else{jQuery.event.simulate(delegateType,nativeEvent.target,jQuery.event.fix(nativeEvent));}}
jQuery.event.special[type]={setup:function(){var attaches;leverageNative(this,type,true);if(document.documentMode){attaches=dataPriv.get(this,delegateType);if(!attaches){this.addEventListener(delegateType,focusMappedHandler);}
dataPriv.set(this,delegateType,(attaches||0)+1);}else{return false;}},trigger:function(){leverageNative(this,type);return true;},teardown:function(){var attaches;if(document.documentMode){attaches=dataPriv.get(this,delegateType)-1;if(!attaches){this.removeEventListener(delegateType,focusMappedHandler);dataPriv.remove(this,delegateType);}else{dataPriv.set(this,delegateType,attaches);}}else{return false;}},_default:function(event){return dataPriv.get(event.target,type);},delegateType:delegateType};jQuery.event.special[delegateType]={setup:function(){var doc=this.ownerDocument||this.document||this,dataHolder=document.documentMode?this:doc,attaches=dataPriv.get(dataHolder,delegateType);if(!attaches){if(document.documentMode){this.addEventListener(delegateType,focusMappedHandler);}else{doc.addEventListener(type,focusMappedHandler,true);}}
dataPriv.set(dataHolder,delegateType,(attaches||0)+1);},teardown:function(){var doc=this.ownerDocument||this.document||this,dataHolder=document.documentMode?this:doc,attaches=dataPriv.get(dataHolder,delegateType)-1;if(!attaches){if(document.documentMode){this.removeEventListener(delegateType,focusMappedHandler);}else{doc.removeEventListener(type,focusMappedHandler,true);}
dataPriv.remove(dataHolder,delegateType);}else{dataPriv.set(dataHolder,delegateType,attaches);}}};});jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||(related!==target&&!jQuery.contains(target,related))){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix;}
return ret;}};});jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn);},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1);},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this;}
if(typeof types==="object"){for(type in types){this.off(type,selector,types[type]);}
return this;}
if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}
if(fn===false){fn=returnFalse;}
return this.each(function(){jQuery.event.remove(this,types,fn,selector);});}});var
rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rcleanScript=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function manipulationTarget(elem,content){if(nodeName(elem,"table")&&nodeName(content.nodeType!==11?content:content.firstChild,"tr")){return jQuery(elem).children("tbody")[0]||elem;}
return elem;}
function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem;}
function restoreScript(elem){if((elem.type||"").slice(0,5)==="true/"){elem.type=elem.type.slice(5);}else{elem.removeAttribute("type");}
return elem;}
function cloneCopyEvent(src,dest){var i,l,type,pdataOld,udataOld,udataCur,events;if(dest.nodeType!==1){return;}
if(dataPriv.hasData(src)){pdataOld=dataPriv.get(src);events=pdataOld.events;if(events){dataPriv.remove(dest,"handle events");for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i]);}}}}
if(dataUser.hasData(src)){udataOld=dataUser.access(src);udataCur=jQuery.extend({},udataOld);dataUser.set(dest,udataCur);}}
function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked;}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}}
function domManip(collection,args,callback,ignored){args=flat(args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=collection.length,iNoClone=l-1,value=args[0],valueIsFunction=isFunction(value);if(valueIsFunction||(l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value))){return collection.each(function(index){var self=collection.eq(index);if(valueIsFunction){args[0]=value.call(this,index,self.html());}
domManip(self,args,callback,ignored);});}
if(l){fragment=buildFragment(args,collection[0].ownerDocument,false,collection,ignored);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first;}
if(first||ignored){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"));}}
callback.call(collection[i],node,i);}
if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!dataPriv.access(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src&&(node.type||"").toLowerCase()!=="module"){if(jQuery._evalUrl&&!node.noModule){jQuery._evalUrl(node.src,{nonce:node.nonce||node.getAttribute("nonce")},doc);}}else{DOMEval(node.textContent.replace(rcleanScript,""),node,doc);}}}}}}
return collection;}
function remove(elem,selector,keepData){var node,nodes=selector?jQuery.filter(selector,elem):elem,i=0;for(;(node=nodes[i])!=null;i++){if(!keepData&&node.nodeType===1){jQuery.cleanData(getAll(node));}
if(node.parentNode){if(keepData&&isAttached(node)){setGlobalEval(getAll(node,"script"));}
node.parentNode.removeChild(node);}}
return elem;}
jQuery.extend({htmlPrefilter:function(html){return html;},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=isAttached(elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i]);}}
if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i]);}}else{cloneCopyEvent(elem,clone);}}
destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"));}
return clone;},cleanData:function(elems){var data,elem,type,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(acceptData(elem)){if((data=elem[dataPriv.expando])){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}}
elem[dataPriv.expando]=undefined;}
if(elem[dataUser.expando]){elem[dataUser.expando]=undefined;}}}}});jQuery.fn.extend({detach:function(selector){return remove(this,selector,true);},remove:function(selector){return remove(this,selector);},text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value;}});},null,value,arguments.length);},append:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem);}});},prepend:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild);}});},before:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this);}});},after:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling);}});},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent="";}}
return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML;}
if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value;}}
elem=0;}catch(e){}}
if(elem){this.empty().append(value);}},null,value,arguments.length);},replaceWith:function(){var ignored=[];return domManip(this,arguments,function(elem){var parent=this.parentNode;if(jQuery.inArray(this,ignored)<0){jQuery.cleanData(getAll(this));if(parent){parent.replaceChild(elem,this);}}},ignored);}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get());}
return this.pushStack(ret);};});var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var rcustomProp=/^--/;var getStyles=function(elem){var view=elem.ownerDocument.defaultView;if(!view||!view.opener){view=window;}
return view.getComputedStyle(elem);};var swap=function(elem,options,callback){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
ret=callback.call(elem);for(name in options){elem.style[name]=old[name];}
return ret;};var rboxStyle=new RegExp(cssExpand.join("|"),"i");(function(){function computeStyleTests(){if(!div){return;}
container.style.cssText="position:absolute;left:-11111px;width:60px;"+"margin-top:1px;padding:0;border:0";div.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;"+"margin:auto;border:1px;padding:1px;"+"width:60%;top:1%";documentElement.appendChild(container).appendChild(div);var divStyle=window.getComputedStyle(div);pixelPositionVal=divStyle.top!=="1%";reliableMarginLeftVal=roundPixelMeasures(divStyle.marginLeft)===12;div.style.right="60%";pixelBoxStylesVal=roundPixelMeasures(divStyle.right)===36;boxSizingReliableVal=roundPixelMeasures(divStyle.width)===36;div.style.position="absolute";scrollboxSizeVal=roundPixelMeasures(div.offsetWidth/3)===12;documentElement.removeChild(container);div=null;}
function roundPixelMeasures(measure){return Math.round(parseFloat(measure));}
var pixelPositionVal,boxSizingReliableVal,scrollboxSizeVal,pixelBoxStylesVal,reliableTrDimensionsVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return;}
div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";jQuery.extend(support,{boxSizingReliable:function(){computeStyleTests();return boxSizingReliableVal;},pixelBoxStyles:function(){computeStyleTests();return pixelBoxStylesVal;},pixelPosition:function(){computeStyleTests();return pixelPositionVal;},reliableMarginLeft:function(){computeStyleTests();return reliableMarginLeftVal;},scrollboxSize:function(){computeStyleTests();return scrollboxSizeVal;},reliableTrDimensions:function(){var table,tr,trChild,trStyle;if(reliableTrDimensionsVal==null){table=document.createElement("table");tr=document.createElement("tr");trChild=document.createElement("div");table.style.cssText="position:absolute;left:-11111px;border-collapse:separate";tr.style.cssText="box-sizing:content-box;border:1px solid";tr.style.height="1px";trChild.style.height="9px";trChild.style.display="block";documentElement.appendChild(table).appendChild(tr).appendChild(trChild);trStyle=window.getComputedStyle(tr);reliableTrDimensionsVal=(parseInt(trStyle.height,10)+
parseInt(trStyle.borderTopWidth,10)+
parseInt(trStyle.borderBottomWidth,10))===tr.offsetHeight;documentElement.removeChild(table);}
return reliableTrDimensionsVal;}});})();function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,isCustomProp=rcustomProp.test(name),style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name];if(isCustomProp&&ret){ret=ret.replace(rtrimCSS,"$1")||undefined;}
if(ret===""&&!isAttached(elem)){ret=jQuery.style(elem,name);}
if(!support.pixelBoxStyles()&&rnumnonpx.test(ret)&&rboxStyle.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth;}}
return ret!==undefined?ret+"":ret;}
function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return;}
return(this.get=hookFn).apply(this,arguments);}};}
var cssPrefixes=["Webkit","Moz","ms"],emptyStyle=document.createElement("div").style,vendorProps={};function vendorPropName(name){var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in emptyStyle){return name;}}}
function finalPropName(name){var final=jQuery.cssProps[name]||vendorProps[name];if(final){return final;}
if(name in emptyStyle){return name;}
return vendorProps[name]=vendorPropName(name)||name;}
var
rdisplayswap=/^(none|table(?!-c[ea]).+)/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"};function setPositiveNumber(_elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value;}
function boxModelAdjustment(elem,dimension,box,isBorderBox,styles,computedVal){var i=dimension==="width"?1:0,extra=0,delta=0,marginDelta=0;if(box===(isBorderBox?"border":"content")){return 0;}
for(;i<4;i+=2){if(box==="margin"){marginDelta+=jQuery.css(elem,box+cssExpand[i],true,styles);}
if(!isBorderBox){delta+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(box!=="padding"){delta+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}else{extra+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}else{if(box==="content"){delta-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);}
if(box!=="margin"){delta-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}}
if(!isBorderBox&&computedVal>=0){delta+=Math.max(0,Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-
computedVal-
delta-
extra-
0.5))||0;}
return delta+marginDelta;}
function getWidthOrHeight(elem,dimension,extra){var styles=getStyles(elem),boxSizingNeeded=!support.boxSizingReliable()||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",valueIsBorderBox=isBorderBox,val=curCSS(elem,dimension,styles),offsetProp="offset"+dimension[0].toUpperCase()+dimension.slice(1);if(rnumnonpx.test(val)){if(!extra){return val;}
val="auto";}
if((!support.boxSizingReliable()&&isBorderBox||!support.reliableTrDimensions()&&nodeName(elem,"tr")||val==="auto"||!parseFloat(val)&&jQuery.css(elem,"display",false,styles)==="inline")&&elem.getClientRects().length){isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";valueIsBorderBox=offsetProp in elem;if(valueIsBorderBox){val=elem[offsetProp];}}
val=parseFloat(val)||0;return(val+
boxModelAdjustment(elem,dimension,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles,val))+"px";}
jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret;}}}},cssNumber:{animationIterationCount:true,aspectRatio:true,borderImageSlice:true,columnCount:true,flexGrow:true,flexShrink:true,fontWeight:true,gridArea:true,gridColumn:true,gridColumnEnd:true,gridColumnStart:true,gridRow:true,gridRowEnd:true,gridRowStart:true,lineHeight:true,opacity:true,order:true,orphans:true,scale:true,widows:true,zIndex:true,zoom:true,fillOpacity:true,floodOpacity:true,stopOpacity:true,strokeMiterlimit:true,strokeOpacity:true},cssProps:{},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}
var ret,type,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name),style=elem.style;if(!isCustomProp){name=finalPropName(origName);}
hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){value=adjustCSS(elem,name,ret);type="number";}
if(value==null||value!==value){return;}
if(type==="number"&&!isCustomProp){value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px");}
if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit";}
if(!hooks||!("set" in hooks)||(value=hooks.set(elem,value,extra))!==undefined){if(isCustomProp){style.setProperty(name,value);}else{style[name]=value;}}}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}
return style[name];}},css:function(elem,name,extra,styles){var val,num,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name);if(!isCustomProp){name=finalPropName(origName);}
hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get" in hooks){val=hooks.get(elem,true,extra);}
if(val===undefined){val=curCSS(elem,name,styles);}
if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name];}
if(extra===""||extra){num=parseFloat(val);return extra===true||isFinite(num)?num||0:val;}
return val;}});jQuery.each(["height","width"],function(_i,dimension){jQuery.cssHooks[dimension]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&(!elem.getClientRects().length||!elem.getBoundingClientRect().width)?swap(elem,cssShow,function(){return getWidthOrHeight(elem,dimension,extra);}):getWidthOrHeight(elem,dimension,extra);}},set:function(elem,value,extra){var matches,styles=getStyles(elem),scrollboxSizeBuggy=!support.scrollboxSize()&&styles.position==="absolute",boxSizingNeeded=scrollboxSizeBuggy||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",subtract=extra?boxModelAdjustment(elem,dimension,extra,isBorderBox,styles):0;if(isBorderBox&&scrollboxSizeBuggy){subtract-=Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-
parseFloat(styles[dimension])-
boxModelAdjustment(elem,dimension,"border",false,styles)-
0.5);}
if(subtract&&(matches=rcssNum.exec(value))&&(matches[3]||"px")!=="px"){elem.style[dimension]=value;value=jQuery.css(elem,dimension);}
return setPositiveNumber(elem,value,subtract);}};});jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,function(elem,computed){if(computed){return(parseFloat(curCSS(elem,"marginLeft"))||elem.getBoundingClientRect().left-
swap(elem,{marginLeft:0},function(){return elem.getBoundingClientRect().left;}))+"px";}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];}
return expanded;}};if(prefix!=="margin"){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(Array.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles);}
return map;}
return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);},name,value,arguments.length>1);}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing);}
jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||jQuery.easing._default;this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px");},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this);},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration);}else{this.pos=eased=percent;}
this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this);}
if(hooks&&hooks.set){hooks.set(this);}else{Tween.propHooks._default.set(this);}
return this;}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem.nodeType!==1||tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null){return tween.elem[tween.prop];}
result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result;},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween);}else if(tween.elem.nodeType===1&&(jQuery.cssHooks[tween.prop]||tween.elem.style[finalPropName(tween.prop)]!=null)){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);}else{tween.elem[tween.prop]=tween.now;}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now;}}};jQuery.easing={linear:function(p){return p;},swing:function(p){return 0.5-Math.cos(p*Math.PI)/2;},_default:"swing"};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var
fxNow,inProgress,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function schedule(){if(inProgress){if(document.hidden===false&&window.requestAnimationFrame){window.requestAnimationFrame(schedule);}else{window.setTimeout(schedule,jQuery.fx.interval);}
jQuery.fx.tick();}}
function createFxNow(){window.setTimeout(function(){fxNow=undefined;});return(fxNow=Date.now());}
function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type;}
if(includeWidth){attrs.opacity=attrs.width=type;}
return attrs;}
function createTween(value,prop,animation){var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if((tween=collection[index].call(animation,prop,value))){return tween;}}}
function defaultPrefilter(elem,props,opts){var prop,value,toggle,hooks,oldfire,propTween,restoreDisplay,display,isBox="width" in props||"height" in props,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHiddenWithinTree(elem),dataShow=dataPriv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire();}};}
hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire();}});});}
for(prop in props){value=props[prop];if(rfxtypes.test(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true;}else{continue;}}
orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);}}
propTween=!jQuery.isEmptyObject(props);if(!propTween&&jQuery.isEmptyObject(orig)){return;}
if(isBox&&elem.nodeType===1){opts.overflow=[style.overflow,style.overflowX,style.overflowY];restoreDisplay=dataShow&&dataShow.display;if(restoreDisplay==null){restoreDisplay=dataPriv.get(elem,"display");}
display=jQuery.css(elem,"display");if(display==="none"){if(restoreDisplay){display=restoreDisplay;}else{showHide([elem],true);restoreDisplay=elem.style.display||restoreDisplay;display=jQuery.css(elem,"display");showHide([elem]);}}
if(display==="inline"||display==="inline-block"&&restoreDisplay!=null){if(jQuery.css(elem,"float")==="none"){if(!propTween){anim.done(function(){style.display=restoreDisplay;});if(restoreDisplay==null){display=style.display;restoreDisplay=display==="none"?"":display;}}
style.display="inline-block";}}}
if(opts.overflow){style.overflow="hidden";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2];});}
propTween=false;for(prop in orig){if(!propTween){if(dataShow){if("hidden" in dataShow){hidden=dataShow.hidden;}}else{dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay});}
if(toggle){dataShow.hidden=!hidden;}
if(hidden){showHide([elem],true);}
anim.done(function(){if(!hidden){showHide([elem]);}
dataPriv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop]);}});}
propTween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=propTween.start;if(hidden){propTween.end=propTween.start;propTween.start=0;}}}}
function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=camelCase(index);easing=specialEasing[name];value=props[index];if(Array.isArray(value)){easing=value[1];value=props[index]=value[0];}
if(index!==name){props[name]=value;delete props[index];}
hooks=jQuery.cssHooks[name];if(hooks&&"expand" in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing;}}}else{specialEasing[name]=easing;}}}
function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem;}),tick=function(){if(stopped){return false;}
var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent);}
deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining;}
if(!length){deferred.notifyWith(elem,[animation,1,0]);}
deferred.resolveWith(elem,[animation]);return false;},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween;},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this;}
stopped=true;for(;index<length;index++){animation.tweens[index].run(1);}
if(gotoEnd){deferred.notifyWith(elem,[animation,1,0]);deferred.resolveWith(elem,[animation,gotoEnd]);}else{deferred.rejectWith(elem,[animation,gotoEnd]);}
return this;}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=Animation.prefilters[index].call(animation,elem,props,animation.opts);if(result){if(isFunction(result.stop)){jQuery._queueHooks(animation.elem,animation.opts.queue).stop=result.stop.bind(result);}
return result;}}
jQuery.map(props,createTween,animation);if(isFunction(animation.opts.start)){animation.opts.start.call(elem,animation);}
animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation;}
jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);adjustCSS(tween.elem,prop,rcssNum.exec(value),tween);return tween;}]},tweener:function(props,callback){if(isFunction(props)){callback=props;props=["*"];}else{props=props.match(rnothtmlwhite);}
var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];Animation.tweeners[prop]=Animation.tweeners[prop]||[];Animation.tweeners[prop].unshift(callback);}},prefilters:[defaultPrefilter],prefilter:function(callback,prepend){if(prepend){Animation.prefilters.unshift(callback);}else{Animation.prefilters.push(callback);}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!isFunction(easing)&&easing};if(jQuery.fx.off){opt.duration=0;}else{if(typeof opt.duration!=="number"){if(opt.duration in jQuery.fx.speeds){opt.duration=jQuery.fx.speeds[opt.duration];}else{opt.duration=jQuery.fx.speeds._default;}}}
if(opt.queue==null||opt.queue===true){opt.queue="fx";}
opt.old=opt.complete;opt.complete=function(){if(isFunction(opt.old)){opt.old.call(this);}
if(opt.queue){jQuery.dequeue(this,opt.queue);}};return opt;};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHiddenWithinTree).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||dataPriv.get(this,"finish")){anim.stop(true);}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd);};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined;}
if(clearQueue){this.queue(type||"fx",[]);}
return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=dataPriv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index]);}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index]);}}}
for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1);}}
if(dequeue||!gotoEnd){jQuery.dequeue(this,type);}});},finish:function(type){if(type!==false){type=type||"fx";}
return this.each(function(){var index,data=dataPriv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true);}
for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1);}}
for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this);}}
delete data.finish;});}});jQuery.each(["toggle","show","hide"],function(_i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback);};});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=Date.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1);}}
if(!timers.length){jQuery.fx.stop();}
fxNow=undefined;};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);jQuery.fx.start();};jQuery.fx.interval=13;jQuery.fx.start=function(){if(inProgress){return;}
inProgress=true;schedule();};jQuery.fx.stop=function(){inProgress=null;};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout);};});};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t";})();var boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1);},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name);});}});jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return;}
if(typeof elem.getAttribute==="undefined"){return jQuery.prop(elem,name,value);}
if(nType!==1||!jQuery.isXMLDoc(elem)){hooks=jQuery.attrHooks[name.toLowerCase()]||(jQuery.expr.match.bool.test(name)?boolHook:undefined);}
if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return;}
if(hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}
elem.setAttribute(name,value+"");return value;}
if(hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}
ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret;},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val;}
return value;}}}},removeAttr:function(elem,value){var name,i=0,attrNames=value&&value.match(rnothtmlwhite);if(attrNames&&elem.nodeType===1){while((name=attrNames[i++])){elem.removeAttribute(name);}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name);}else{elem.setAttribute(name,name);}
return name;}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(_i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle,lowercaseName=name.toLowerCase();if(!isXML){handle=attrHandle[lowercaseName];attrHandle[lowercaseName]=ret;ret=getter(elem,name,isXML)!=null?lowercaseName:null;attrHandle[lowercaseName]=handle;}
return ret;};});var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1);},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name];});}});jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return;}
if(nType!==1||!jQuery.isXMLDoc(elem)){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}
if(value!==undefined){if(hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}
return(elem[name]=value);}
if(hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}
return elem[name];},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");if(tabindex){return parseInt(tabindex,10);}
if(rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href){return 0;}
return-1;}}},propFix:{"for":"htmlFor","class":"className"}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex;}
return null;},set:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex;}}}};}
jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this;});function stripAndCollapse(value){var tokens=value.match(rnothtmlwhite)||[];return tokens.join(" ");}
function getClass(elem){return elem.getAttribute&&elem.getAttribute("class")||"";}
function classesToArray(value){if(Array.isArray(value)){return value;}
if(typeof value==="string"){return value.match(rnothtmlwhite)||[];}
return[];}
jQuery.fn.extend({addClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)));});}
classNames=classesToArray(value);if(classNames.length){return this.each(function(){curValue=getClass(this);cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];if(cur.indexOf(" "+className+" ")<0){cur+=className+" ";}}
finalValue=stripAndCollapse(cur);if(curValue!==finalValue){this.setAttribute("class",finalValue);}}});}
return this;},removeClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)));});}
if(!arguments.length){return this.attr("class","");}
classNames=classesToArray(value);if(classNames.length){return this.each(function(){curValue=getClass(this);cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];while(cur.indexOf(" "+className+" ")>-1){cur=cur.replace(" "+className+" "," ");}}
finalValue=stripAndCollapse(cur);if(curValue!==finalValue){this.setAttribute("class",finalValue);}}});}
return this;},toggleClass:function(value,stateVal){var classNames,className,i,self,type=typeof value,isValidValue=type==="string"||Array.isArray(value);if(isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal);});}
if(typeof stateVal==="boolean"&&isValidValue){return stateVal?this.addClass(value):this.removeClass(value);}
classNames=classesToArray(value);return this.each(function(){if(isValidValue){self=jQuery(this);for(i=0;i<classNames.length;i++){className=classNames[i];if(self.hasClass(className)){self.removeClass(className);}else{self.addClass(className);}}}else if(value===undefined||type==="boolean"){className=getClass(this);if(className){dataPriv.set(this,"__className__",className);}
if(this.setAttribute){this.setAttribute("class",className||value===false?"":dataPriv.get(this,"__className__")||"");}}});},hasClass:function(selector){var className,elem,i=0;className=" "+selector+" ";while((elem=this[i++])){if(elem.nodeType===1&&(" "+stripAndCollapse(getClass(elem))+" ").indexOf(className)>-1){return true;}}
return false;}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,valueIsFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get" in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret;}
ret=elem.value;if(typeof ret==="string"){return ret.replace(rreturn,"");}
return ret==null?"":ret;}
return;}
valueIsFunction=isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return;}
if(valueIsFunction){val=value.call(this,i,jQuery(this).val());}else{val=value;}
if(val==null){val="";}else if(typeof val==="number"){val+="";}else if(Array.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}
hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set" in hooks)||hooks.set(this,val,"value")===undefined){this.value=val;}});}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:stripAndCollapse(jQuery.text(elem));}},select:{get:function(elem){var value,option,i,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one",values=one?null:[],max=one?index+1:options.length;if(index<0){i=max;}else{i=one?index:0;}
for(;i<max;i++){option=options[i];if((option.selected||i===index)&&!option.disabled&&(!option.parentNode.disabled||!nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}
values.push(value);}}
return values;},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(option.selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1){optionSet=true;}}
if(!optionSet){elem.selectedIndex=-1;}
return values;}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(Array.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1);}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value;};}});var location=window.location;var nonce={guid:Date.now()};var rquery=(/\?/);jQuery.parseXML=function(data){var xml,parserErrorElem;if(!data||typeof data!=="string"){return null;}
try{xml=(new window.DOMParser()).parseFromString(data,"text/xml");}catch(e){}
parserErrorElem=xml&&xml.getElementsByTagName("parsererror")[0];if(!xml||parserErrorElem){jQuery.error("Invalid XML: "+(parserErrorElem?jQuery.map(parserErrorElem.childNodes,function(el){return el.textContent;}).join("\n"):data));}
return xml;};var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,stopPropagationCallback=function(e){e.stopPropagation();};jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,lastElement,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=lastElement=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return;}
if(rfocusMorph.test(type+jQuery.event.triggered)){return;}
if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}
ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem;}
data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return;}
if(!onlyHandlers&&!special.noBubble&&!isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode;}
for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur;}
if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window);}}
i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){lastElement=cur;event.type=i>1?bubbleType:special.bindType||type;handle=(dataPriv.get(cur,"events")||Object.create(null))[event.type]&&dataPriv.get(cur,"handle");if(handle){handle.apply(cur,data);}
handle=ontype&&cur[ontype];if(handle&&handle.apply&&acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault();}}}
event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&acceptData(elem)){if(ontype&&isFunction(elem[type])&&!isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null;}
jQuery.event.triggered=type;if(event.isPropagationStopped()){lastElement.addEventListener(type,stopPropagationCallback);}
elem[type]();if(event.isPropagationStopped()){lastElement.removeEventListener(type,stopPropagationCallback);}
jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp;}}}}
return event.result;},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event(),event,{type:type,isSimulated:true});jQuery.event.trigger(e,null,elem);}});jQuery.fn.extend({trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true);}}});var
rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(Array.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",v,traditional,add);}});}else if(!traditional&&toType(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}else{add(prefix,obj);}}
jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,valueOrFunction){var value=isFunction(valueOrFunction)?valueOrFunction():valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+
encodeURIComponent(value==null?"":value);};if(a==null){return"";}
if(Array.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add);}}
return s.join("&");};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this;}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type));}).map(function(_i,elem){var val=jQuery(this).val();if(val==null){return null;}
if(Array.isArray(val)){return jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};});}
return{name:elem.name,value:val.replace(rCRLF,"\r\n")};}).get();}});var
r20=/%20/g,rhash=/#.*$/,rantiCache=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/mg,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href;function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}
var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];if(isFunction(func)){while((dataType=dataTypes[i++])){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else{(structure[dataType]=structure[dataType]||[]).push(func);}}}};}
function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=(structure===transports);function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else if(seekingTransport){return!(selected=dataTypeOrTransport);}});return selected;}
return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}
function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}
if(deep){jQuery.extend(true,target,deep);}
return target;}
function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");}}
if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}
if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}
if(!firstDataType){firstDataType=type;}}
finalDataType=finalDataType||firstDataType;}
if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}
return responses[finalDataType];}}
function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv];}}
current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response;}
if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType);}
prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2];}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}
break;}}}}
if(conv!==true){if(conv&&s.throws){response=conv(response);}else{try{response=conv(response);}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}}}
return{state:"success",data:response};}
jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":JSON.parse,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}
options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(completed){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()+" "]=(responseHeaders[match[1].toLowerCase()+" "]||[]).concat(match[2]);}}
match=responseHeaders[key.toLowerCase()+" "];}
return match==null?null:match.join(", ");},getAllResponseHeaders:function(){return completed?responseHeadersString:null;},setRequestHeader:function(name,value){if(completed==null){name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name;requestHeaders[name]=value;}
return this;},overrideMimeType:function(type){if(completed==null){s.mimeType=type;}
return this;},statusCode:function(map){var code;if(map){if(completed){jqXHR.always(map[jqXHR.status]);}else{for(code in map){statusCode[code]=[statusCode[code],map[code]];}}}
return this;},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText);}
done(0,finalText);return this;}};deferred.promise(jqXHR);s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""];if(s.crossDomain==null){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url;urlAnchor.href=urlAnchor.href;s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==urlAnchor.protocol+"//"+urlAnchor.host;}catch(e){s.crossDomain=true;}}
if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}
inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(completed){return jqXHR;}
fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}
s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url.replace(rhash,"");if(!s.hasContent){uncached=s.url.slice(cacheURL.length);if(s.data&&(s.processData||typeof s.data==="string")){cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data;}
if(s.cache===false){cacheURL=cacheURL.replace(rantiCache,"$1");uncached=(rquery.test(cacheURL)?"&":"?")+"_="+(nonce.guid++)+
uncached;}
s.url=cacheURL+uncached;}else if(s.data&&s.processData&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0){s.data=s.data.replace(r20,"+");}
if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);}
if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);}}
if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType);}
jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+
(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}
if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||completed)){return jqXHR.abort();}
strAbort="abort";completeDeferred.add(s.complete);jqXHR.done(s.success);jqXHR.fail(s.error);transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}
if(completed){return jqXHR;}
if(s.async&&s.timeout>0){timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}
try{completed=false;transport.send(requestHeaders,done);}catch(e){if(completed){throw e;}
done(-1,e);}}
function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(completed){return;}
completed=true;if(timeoutTimer){window.clearTimeout(timeoutTimer);}
transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses);}
if(!isSuccess&&jQuery.inArray("script",s.dataTypes)>-1&&jQuery.inArray("json",s.dataTypes)<0){s.converters["text script"]=function(){};}
response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified;}
modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified;}}
if(status===204||s.type==="HEAD"){statusText="nocontent";}else if(status===304){statusText="notmodified";}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0;}}}
jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}
jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]);}
completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}
return jqXHR;},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");}});jQuery.each(["get","post"],function(_i,method){jQuery[method]=function(url,data,callback,type){if(isFunction(data)){type=type||callback;callback=data;data=undefined;}
return jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url));};});jQuery.ajaxPrefilter(function(s){var i;for(i in s.headers){if(i.toLowerCase()==="content-type"){s.contentType=s.headers[i]||"";}}});jQuery._evalUrl=function(url,options,doc){return jQuery.ajax({url:url,type:"GET",dataType:"script",cache:true,async:false,global:false,converters:{"text script":function(){}},dataFilter:function(response){jQuery.globalEval(response,options,doc);}});};jQuery.fn.extend({wrapAll:function(html){var wrap;if(this[0]){if(isFunction(html)){html=html.call(this[0]);}
wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}
wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild;}
return elem;}).append(this);}
return this;},wrapInner:function(html){if(isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}
return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){var htmlIsFunction=isFunction(html);return this.each(function(i){jQuery(this).wrapAll(htmlIsFunction?html.call(this,i):html);});},unwrap:function(selector){this.parent(selector).not("body").each(function(){jQuery(this).replaceWith(this.childNodes);});return this;}});jQuery.expr.pseudos.hidden=function(elem){return!jQuery.expr.pseudos.visible(elem);};jQuery.expr.pseudos.visible=function(elem){return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);};jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest();}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&("withCredentials" in xhrSupported);support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr();xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i];}}
if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType);}
if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}
for(i in headers){xhr.setRequestHeader(i,headers[i]);}
callback=function(type){return function(){if(callback){callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.ontimeout=xhr.onreadystatechange=null;if(type==="abort"){xhr.abort();}else if(type==="error"){if(typeof xhr.status!=="number"){complete(0,"error");}else{complete(xhr.status,xhr.statusText);}}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,(xhr.responseType||"text")!=="text"||typeof xhr.responseText!=="string"?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders());}}};};xhr.onload=callback();errorCallback=xhr.onerror=xhr.ontimeout=callback("error");if(xhr.onabort!==undefined){xhr.onabort=errorCallback;}else{xhr.onreadystatechange=function(){if(xhr.readyState===4){window.setTimeout(function(){if(callback){errorCallback();}});}};}
callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null);}catch(e){if(callback){throw e;}}},abort:function(){if(callback){callback();}}};}});jQuery.ajaxPrefilter(function(s){if(s.crossDomain){s.contents.script=false;}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, "+"application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}
if(s.crossDomain){s.type="GET";}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain||s.scriptAttrs){var script,callback;return{send:function(_,complete){script=jQuery("<script>").attr(s.scriptAttrs||{}).prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type);}});document.head.appendChild(script[0]);},abort:function(){if(callback){callback();}}};}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||(jQuery.expando+"_"+(nonce.guid++));this[callback]=true;return callback;}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;}
s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called");}
return responseContainer[0];};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments;};jqXHR.always(function(){if(overwritten===undefined){jQuery(window).removeProp(callbackName);}else{window[callbackName]=overwritten;}
if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName);}
if(responseContainer&&isFunction(overwritten)){overwritten(responseContainer[0]);}
responseContainer=overwritten=undefined;});return"script";}});support.createHTMLDocument=(function(){var body=document.implementation.createHTMLDocument("").body;body.innerHTML="<form></form><form></form>";return body.childNodes.length===2;})();jQuery.parseHTML=function(data,context,keepScripts){if(typeof data!=="string"){return[];}
if(typeof context==="boolean"){keepScripts=context;context=false;}
var base,parsed,scripts;if(!context){if(support.createHTMLDocument){context=document.implementation.createHTMLDocument("");base=context.createElement("base");base.href=document.location.href;context.head.appendChild(base);}else{context=document;}}
parsed=rsingleTag.exec(data);scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])];}
parsed=buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove();}
return jQuery.merge([],parsed.childNodes);};jQuery.fn.load=function(url,params,callback){var selector,type,response,self=this,off=url.indexOf(" ");if(off>-1){selector=stripAndCollapse(url.slice(off));url=url.slice(0,off);}
if(isFunction(params)){callback=params;params=undefined;}else if(params&&typeof params==="object"){type="POST";}
if(self.length>0){jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText);}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(this,response||[jqXHR.responseText,status,jqXHR]);});});}
return this;};jQuery.expr.pseudos.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative";}
curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}
if(isFunction(options)){options=options.call(elem,i,jQuery.extend({},curOffset));}
if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}
if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}
if("using" in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
var rect,win,elem=this[0];if(!elem){return;}
if(!elem.getClientRects().length){return{top:0,left:0};}
rect=elem.getBoundingClientRect();win=elem.ownerDocument.defaultView;return{top:rect.top+win.pageYOffset,left:rect.left+win.pageXOffset};},position:function(){if(!this[0]){return;}
var offsetParent,offset,doc,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect();}else{offset=this.offset();doc=elem.ownerDocument;offsetParent=elem.offsetParent||doc.documentElement;while(offsetParent&&(offsetParent===doc.body||offsetParent===doc.documentElement)&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.parentNode;}
if(offsetParent&&offsetParent!==elem&&offsetParent.nodeType===1){parentOffset=jQuery(offsetParent).offset();parentOffset.top+=jQuery.css(offsetParent,"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent,"borderLeftWidth",true);}}
return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent;while(offsetParent&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.offsetParent;}
return offsetParent||documentElement;});}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win;if(isWindow(elem)){win=elem;}else if(elem.nodeType===9){win=elem.defaultView;}
if(val===undefined){return win?win[prop]:elem[method];}
if(win){win.scrollTo(!top?val:win.pageXOffset,top?val:win.pageYOffset);}else{elem[method]=val;}},method,val,arguments.length);};});jQuery.each(["top","left"],function(_i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed;}});});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(isWindow(elem)){return funcName.indexOf("outer")===0?elem["inner"+name]:elem.document.documentElement["client"+name];}
if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name]);}
return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra);},type,chainable?margin:undefined,chainable);};});});jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(_i,type){jQuery.fn[type]=function(fn){return this.on(type,fn);};});jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn);},unbind:function(types,fn){return this.off(types,null,fn);},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);},hover:function(fnOver,fnOut){return this.on("mouseenter",fnOver).on("mouseleave",fnOut||fnOver);}});jQuery.each(("blur focus focusin focusout resize scroll click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup contextmenu").split(" "),function(_i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};});var rtrim=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;jQuery.proxy=function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp;}
if(!isFunction(fn)){return undefined;}
args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)));};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy;};jQuery.holdReady=function(hold){if(hold){jQuery.readyWait++;}else{jQuery.ready(true);}};jQuery.isArray=Array.isArray;jQuery.parseJSON=JSON.parse;jQuery.nodeName=nodeName;jQuery.isFunction=isFunction;jQuery.isWindow=isWindow;jQuery.camelCase=camelCase;jQuery.type=toType;jQuery.now=Date.now;jQuery.isNumeric=function(obj){var type=jQuery.type(obj);return(type==="number"||type==="string")&&!isNaN(obj-parseFloat(obj));};jQuery.trim=function(text){return text==null?"":(text+"").replace(rtrim,"$1");};if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery;});}
var
_jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$;}
if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery;}
return jQuery;};if(typeof noGlobal==="undefined"){window.jQuery=window.$=jQuery;}
return jQuery;});
;;;(function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{factory(jQuery);}})(function($){"use strict";$.ui=$.ui||{};var version=$.ui.version="1.13.2";var widgetUuid=0;var widgetHasOwnProperty=Array.prototype.hasOwnProperty;var widgetSlice=Array.prototype.slice;$.cleanData=(function(orig){return function(elems){var events,elem,i;for(i=0;(elem=elems[i])!=null;i++){events=$._data(elem,"events");if(events&&events.remove){$(elem).triggerHandler("remove");}}
orig(elems);};})($.cleanData);$.widget=function(name,base,prototype){var existingConstructor,constructor,basePrototype;var proxiedPrototype={};var namespace=name.split(".")[0];name=name.split(".")[1];var fullName=namespace+"-"+name;if(!prototype){prototype=base;base=$.Widget;}
if(Array.isArray(prototype)){prototype=$.extend.apply(null,[{}].concat(prototype));}
$.expr.pseudos[fullName.toLowerCase()]=function(elem){return!!$.data(elem,fullName);};$[namespace]=$[namespace]||{};existingConstructor=$[namespace][name];constructor=$[namespace][name]=function(options,element){if(!this||!this._createWidget){return new constructor(options,element);}
if(arguments.length){this._createWidget(options,element);}};$.extend(constructor,existingConstructor,{version:prototype.version,_proto:$.extend({},prototype),_childConstructors:[]});basePrototype=new base();basePrototype.options=$.widget.extend({},basePrototype.options);$.each(prototype,function(prop,value){if(typeof value!=="function"){proxiedPrototype[prop]=value;return;}
proxiedPrototype[prop]=(function(){function _super(){return base.prototype[prop].apply(this,arguments);}
function _superApply(args){return base.prototype[prop].apply(this,args);}
return function(){var __super=this._super;var __superApply=this._superApply;var returnValue;this._super=_super;this._superApply=_superApply;returnValue=value.apply(this,arguments);this._super=__super;this._superApply=__superApply;return returnValue;};})();});constructor.prototype=$.widget.extend(basePrototype,{widgetEventPrefix:existingConstructor?(basePrototype.widgetEventPrefix||name):name},proxiedPrototype,{constructor:constructor,namespace:namespace,widgetName:name,widgetFullName:fullName});if(existingConstructor){$.each(existingConstructor._childConstructors,function(i,child){var childPrototype=child.prototype;$.widget(childPrototype.namespace+"."+childPrototype.widgetName,constructor,child._proto);});delete existingConstructor._childConstructors;}else{base._childConstructors.push(constructor);}
$.widget.bridge(name,constructor);return constructor;};$.widget.extend=function(target){var input=widgetSlice.call(arguments,1);var inputIndex=0;var inputLength=input.length;var key;var value;for(;inputIndex<inputLength;inputIndex++){for(key in input[inputIndex]){value=input[inputIndex][key];if(widgetHasOwnProperty.call(input[inputIndex],key)&&value!==undefined){if($.isPlainObject(value)){target[key]=$.isPlainObject(target[key])?$.widget.extend({},target[key],value):$.widget.extend({},value);}else{target[key]=value;}}}}
return target;};$.widget.bridge=function(name,object){var fullName=object.prototype.widgetFullName||name;$.fn[name]=function(options){var isMethodCall=typeof options==="string";var args=widgetSlice.call(arguments,1);var returnValue=this;if(isMethodCall){if(!this.length&&options==="instance"){returnValue=undefined;}else{this.each(function(){var methodValue;var instance=$.data(this,fullName);if(options==="instance"){returnValue=instance;return false;}
if(!instance){return $.error("cannot call methods on "+name+" prior to initialization; "+"attempted to call method '"+options+"'");}
if(typeof instance[options]!=="function"||options.charAt(0)==="_"){return $.error("no such method '"+options+"' for "+name+" widget instance");}
methodValue=instance[options].apply(instance,args);if(methodValue!==instance&&methodValue!==undefined){returnValue=methodValue&&methodValue.jquery?returnValue.pushStack(methodValue.get()):methodValue;return false;}});}}else{if(args.length){options=$.widget.extend.apply(null,[options].concat(args));}
this.each(function(){var instance=$.data(this,fullName);if(instance){instance.option(options||{});if(instance._init){instance._init();}}else{$.data(this,fullName,new object(options,this));}});}
return returnValue;};};$.Widget=function(){};$.Widget._childConstructors=[];$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:false,create:null},_createWidget:function(options,element){element=$(element||this.defaultElement||this)[0];this.element=$(element);this.uuid=widgetUuid++;this.eventNamespace="."+this.widgetName+this.uuid;this.bindings=$();this.hoverable=$();this.focusable=$();this.classesElementLookup={};if(element!==this){$.data(element,this.widgetFullName,this);this._on(true,this.element,{remove:function(event){if(event.target===element){this.destroy();}}});this.document=$(element.style?element.ownerDocument:element.document||element);this.window=$(this.document[0].defaultView||this.document[0].parentWindow);}
this.options=$.widget.extend({},this.options,this._getCreateOptions(),options);this._create();if(this.options.disabled){this._setOptionDisabled(this.options.disabled);}
this._trigger("create",null,this._getCreateEventData());this._init();},_getCreateOptions:function(){return{};},_getCreateEventData:$.noop,_create:$.noop,_init:$.noop,destroy:function(){var that=this;this._destroy();$.each(this.classesElementLookup,function(key,value){that._removeClass(value,key);});this.element.off(this.eventNamespace).removeData(this.widgetFullName);this.widget().off(this.eventNamespace).removeAttr("aria-disabled");this.bindings.off(this.eventNamespace);},_destroy:$.noop,widget:function(){return this.element;},option:function(key,value){var options=key;var parts;var curOption;var i;if(arguments.length===0){return $.widget.extend({},this.options);}
if(typeof key==="string"){options={};parts=key.split(".");key=parts.shift();if(parts.length){curOption=options[key]=$.widget.extend({},this.options[key]);for(i=0;i<parts.length-1;i++){curOption[parts[i]]=curOption[parts[i]]||{};curOption=curOption[parts[i]];}
key=parts.pop();if(arguments.length===1){return curOption[key]===undefined?null:curOption[key];}
curOption[key]=value;}else{if(arguments.length===1){return this.options[key]===undefined?null:this.options[key];}
options[key]=value;}}
this._setOptions(options);return this;},_setOptions:function(options){var key;for(key in options){this._setOption(key,options[key]);}
return this;},_setOption:function(key,value){if(key==="classes"){this._setOptionClasses(value);}
this.options[key]=value;if(key==="disabled"){this._setOptionDisabled(value);}
return this;},_setOptionClasses:function(value){var classKey,elements,currentElements;for(classKey in value){currentElements=this.classesElementLookup[classKey];if(value[classKey]===this.options.classes[classKey]||!currentElements||!currentElements.length){continue;}
elements=$(currentElements.get());this._removeClass(currentElements,classKey);elements.addClass(this._classes({element:elements,keys:classKey,classes:value,add:true}));}},_setOptionDisabled:function(value){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!value);if(value){this._removeClass(this.hoverable,null,"ui-state-hover");this._removeClass(this.focusable,null,"ui-state-focus");}},enable:function(){return this._setOptions({disabled:false});},disable:function(){return this._setOptions({disabled:true});},_classes:function(options){var full=[];var that=this;options=$.extend({element:this.element,classes:this.options.classes||{}},options);function bindRemoveEvent(){var nodesToBind=[];options.element.each(function(_,element){var isTracked=$.map(that.classesElementLookup,function(elements){return elements;}).some(function(elements){return elements.is(element);});if(!isTracked){nodesToBind.push(element);}});that._on($(nodesToBind),{remove:"_untrackClassesElement"});}
function processClassString(classes,checkOption){var current,i;for(i=0;i<classes.length;i++){current=that.classesElementLookup[classes[i]]||$();if(options.add){bindRemoveEvent();current=$($.uniqueSort(current.get().concat(options.element.get())));}else{current=$(current.not(options.element).get());}
that.classesElementLookup[classes[i]]=current;full.push(classes[i]);if(checkOption&&options.classes[classes[i]]){full.push(options.classes[classes[i]]);}}}
if(options.keys){processClassString(options.keys.match(/\S+/g)||[],true);}
if(options.extra){processClassString(options.extra.match(/\S+/g)||[]);}
return full.join(" ");},_untrackClassesElement:function(event){var that=this;$.each(that.classesElementLookup,function(key,value){if($.inArray(event.target,value)!==-1){that.classesElementLookup[key]=$(value.not(event.target).get());}});this._off($(event.target));},_removeClass:function(element,keys,extra){return this._toggleClass(element,keys,extra,false);},_addClass:function(element,keys,extra){return this._toggleClass(element,keys,extra,true);},_toggleClass:function(element,keys,extra,add){add=(typeof add==="boolean")?add:extra;var shift=(typeof element==="string"||element===null),options={extra:shift?keys:extra,keys:shift?element:keys,element:shift?this.element:element,add:add};options.element.toggleClass(this._classes(options),add);return this;},_on:function(suppressDisabledCheck,element,handlers){var delegateElement;var instance=this;if(typeof suppressDisabledCheck!=="boolean"){handlers=element;element=suppressDisabledCheck;suppressDisabledCheck=false;}
if(!handlers){handlers=element;element=this.element;delegateElement=this.widget();}else{element=delegateElement=$(element);this.bindings=this.bindings.add(element);}
$.each(handlers,function(event,handler){function handlerProxy(){if(!suppressDisabledCheck&&(instance.options.disabled===true||$(this).hasClass("ui-state-disabled"))){return;}
return(typeof handler==="string"?instance[handler]:handler).apply(instance,arguments);}
if(typeof handler!=="string"){handlerProxy.guid=handler.guid=handler.guid||handlerProxy.guid||$.guid++;}
var match=event.match(/^([\w:-]*)\s*(.*)$/);var eventName=match[1]+instance.eventNamespace;var selector=match[2];if(selector){delegateElement.on(eventName,selector,handlerProxy);}else{element.on(eventName,handlerProxy);}});},_off:function(element,eventName){eventName=(eventName||"").split(" ").join(this.eventNamespace+" ")+
this.eventNamespace;element.off(eventName);this.bindings=$(this.bindings.not(element).get());this.focusable=$(this.focusable.not(element).get());this.hoverable=$(this.hoverable.not(element).get());},_delay:function(handler,delay){function handlerProxy(){return(typeof handler==="string"?instance[handler]:handler).apply(instance,arguments);}
var instance=this;return setTimeout(handlerProxy,delay||0);},_hoverable:function(element){this.hoverable=this.hoverable.add(element);this._on(element,{mouseenter:function(event){this._addClass($(event.currentTarget),null,"ui-state-hover");},mouseleave:function(event){this._removeClass($(event.currentTarget),null,"ui-state-hover");}});},_focusable:function(element){this.focusable=this.focusable.add(element);this._on(element,{focusin:function(event){this._addClass($(event.currentTarget),null,"ui-state-focus");},focusout:function(event){this._removeClass($(event.currentTarget),null,"ui-state-focus");}});},_trigger:function(type,event,data){var prop,orig;var callback=this.options[type];data=data||{};event=$.Event(event);event.type=(type===this.widgetEventPrefix?type:this.widgetEventPrefix+type).toLowerCase();event.target=this.element[0];orig=event.originalEvent;if(orig){for(prop in orig){if(!(prop in event)){event[prop]=orig[prop];}}}
this.element.trigger(event,data);return!(typeof callback==="function"&&callback.apply(this.element[0],[event].concat(data))===false||event.isDefaultPrevented());}};$.each({show:"fadeIn",hide:"fadeOut"},function(method,defaultEffect){$.Widget.prototype["_"+method]=function(element,options,callback){if(typeof options==="string"){options={effect:options};}
var hasOptions;var effectName=!options?method:options===true||typeof options==="number"?defaultEffect:options.effect||defaultEffect;options=options||{};if(typeof options==="number"){options={duration:options};}else if(options===true){options={};}
hasOptions=!$.isEmptyObject(options);options.complete=callback;if(options.delay){element.delay(options.delay);}
if(hasOptions&&$.effects&&$.effects.effect[effectName]){element[method](options);}else if(effectName!==method&&element[effectName]){element[effectName](options.duration,options.easing,callback);}else{element.queue(function(next){$(this)[method]();if(callback){callback.call(element[0]);}
next();});}};});var widget=$.widget;(function(){var cachedScrollbarWidth,max=Math.max,abs=Math.abs,rhorizontal=/left|center|right/,rvertical=/top|center|bottom/,roffset=/[\+\-]\d+(\.[\d]+)?%?/,rposition=/^\w+/,rpercent=/%$/,_position=$.fn.position;function getOffsets(offsets,width,height){return[parseFloat(offsets[0])*(rpercent.test(offsets[0])?width/100:1),parseFloat(offsets[1])*(rpercent.test(offsets[1])?height/100:1)];}
function parseCss(element,property){return parseInt($.css(element,property),10)||0;}
function isWindow(obj){return obj!=null&&obj===obj.window;}
function getDimensions(elem){var raw=elem[0];if(raw.nodeType===9){return{width:elem.width(),height:elem.height(),offset:{top:0,left:0}};}
if(isWindow(raw)){return{width:elem.width(),height:elem.height(),offset:{top:elem.scrollTop(),left:elem.scrollLeft()}};}
if(raw.preventDefault){return{width:0,height:0,offset:{top:raw.pageY,left:raw.pageX}};}
return{width:elem.outerWidth(),height:elem.outerHeight(),offset:elem.offset()};}
$.position={scrollbarWidth:function(){if(cachedScrollbarWidth!==undefined){return cachedScrollbarWidth;}
var w1,w2,div=$("<div style="+"'display:block;position:absolute;width:200px;height:200px;overflow:hidden;'>"+"<div style='height:300px;width:auto;'></div></div>"),innerDiv=div.children()[0];$("body").append(div);w1=innerDiv.offsetWidth;div.css("overflow","scroll");w2=innerDiv.offsetWidth;if(w1===w2){w2=div[0].clientWidth;}
div.remove();return(cachedScrollbarWidth=w1-w2);},getScrollInfo:function(within){var overflowX=within.isWindow||within.isDocument?"":within.element.css("overflow-x"),overflowY=within.isWindow||within.isDocument?"":within.element.css("overflow-y"),hasOverflowX=overflowX==="scroll"||(overflowX==="auto"&&within.width<within.element[0].scrollWidth),hasOverflowY=overflowY==="scroll"||(overflowY==="auto"&&within.height<within.element[0].scrollHeight);return{width:hasOverflowY?$.position.scrollbarWidth():0,height:hasOverflowX?$.position.scrollbarWidth():0};},getWithinInfo:function(element){var withinElement=$(element||window),isElemWindow=isWindow(withinElement[0]),isDocument=!!withinElement[0]&&withinElement[0].nodeType===9,hasOffset=!isElemWindow&&!isDocument;return{element:withinElement,isWindow:isElemWindow,isDocument:isDocument,offset:hasOffset?$(element).offset():{left:0,top:0},scrollLeft:withinElement.scrollLeft(),scrollTop:withinElement.scrollTop(),width:withinElement.outerWidth(),height:withinElement.outerHeight()};}};$.fn.position=function(options){if(!options||!options.of){return _position.apply(this,arguments);}
options=$.extend({},options);var atOffset,targetWidth,targetHeight,targetOffset,basePosition,dimensions,target=typeof options.of==="string"?$(document).find(options.of):$(options.of),within=$.position.getWithinInfo(options.within),scrollInfo=$.position.getScrollInfo(within),collision=(options.collision||"flip").split(" "),offsets={};dimensions=getDimensions(target);if(target[0].preventDefault){options.at="left top";}
targetWidth=dimensions.width;targetHeight=dimensions.height;targetOffset=dimensions.offset;basePosition=$.extend({},targetOffset);$.each(["my","at"],function(){var pos=(options[this]||"").split(" "),horizontalOffset,verticalOffset;if(pos.length===1){pos=rhorizontal.test(pos[0])?pos.concat(["center"]):rvertical.test(pos[0])?["center"].concat(pos):["center","center"];}
pos[0]=rhorizontal.test(pos[0])?pos[0]:"center";pos[1]=rvertical.test(pos[1])?pos[1]:"center";horizontalOffset=roffset.exec(pos[0]);verticalOffset=roffset.exec(pos[1]);offsets[this]=[horizontalOffset?horizontalOffset[0]:0,verticalOffset?verticalOffset[0]:0];options[this]=[rposition.exec(pos[0])[0],rposition.exec(pos[1])[0]];});if(collision.length===1){collision[1]=collision[0];}
if(options.at[0]==="right"){basePosition.left+=targetWidth;}else if(options.at[0]==="center"){basePosition.left+=targetWidth/2;}
if(options.at[1]==="bottom"){basePosition.top+=targetHeight;}else if(options.at[1]==="center"){basePosition.top+=targetHeight/2;}
atOffset=getOffsets(offsets.at,targetWidth,targetHeight);basePosition.left+=atOffset[0];basePosition.top+=atOffset[1];return this.each(function(){var collisionPosition,using,elem=$(this),elemWidth=elem.outerWidth(),elemHeight=elem.outerHeight(),marginLeft=parseCss(this,"marginLeft"),marginTop=parseCss(this,"marginTop"),collisionWidth=elemWidth+marginLeft+parseCss(this,"marginRight")+
scrollInfo.width,collisionHeight=elemHeight+marginTop+parseCss(this,"marginBottom")+
scrollInfo.height,position=$.extend({},basePosition),myOffset=getOffsets(offsets.my,elem.outerWidth(),elem.outerHeight());if(options.my[0]==="right"){position.left-=elemWidth;}else if(options.my[0]==="center"){position.left-=elemWidth/2;}
if(options.my[1]==="bottom"){position.top-=elemHeight;}else if(options.my[1]==="center"){position.top-=elemHeight/2;}
position.left+=myOffset[0];position.top+=myOffset[1];collisionPosition={marginLeft:marginLeft,marginTop:marginTop};$.each(["left","top"],function(i,dir){if($.ui.position[collision[i]]){$.ui.position[collision[i]][dir](position,{targetWidth:targetWidth,targetHeight:targetHeight,elemWidth:elemWidth,elemHeight:elemHeight,collisionPosition:collisionPosition,collisionWidth:collisionWidth,collisionHeight:collisionHeight,offset:[atOffset[0]+myOffset[0],atOffset[1]+myOffset[1]],my:options.my,at:options.at,within:within,elem:elem});}});if(options.using){using=function(props){var left=targetOffset.left-position.left,right=left+targetWidth-elemWidth,top=targetOffset.top-position.top,bottom=top+targetHeight-elemHeight,feedback={target:{element:target,left:targetOffset.left,top:targetOffset.top,width:targetWidth,height:targetHeight},element:{element:elem,left:position.left,top:position.top,width:elemWidth,height:elemHeight},horizontal:right<0?"left":left>0?"right":"center",vertical:bottom<0?"top":top>0?"bottom":"middle"};if(targetWidth<elemWidth&&abs(left+right)<targetWidth){feedback.horizontal="center";}
if(targetHeight<elemHeight&&abs(top+bottom)<targetHeight){feedback.vertical="middle";}
if(max(abs(left),abs(right))>max(abs(top),abs(bottom))){feedback.important="horizontal";}else{feedback.important="vertical";}
options.using.call(this,props,feedback);};}
elem.offset($.extend(position,{using:using}));});};$.ui.position={fit:{left:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollLeft:within.offset.left,outerWidth=within.width,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=withinOffset-collisionPosLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset,newOverRight;if(data.collisionWidth>outerWidth){if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-
withinOffset;position.left+=overLeft-newOverRight;}else if(overRight>0&&overLeft<=0){position.left=withinOffset;}else{if(overLeft>overRight){position.left=withinOffset+outerWidth-data.collisionWidth;}else{position.left=withinOffset;}}}else if(overLeft>0){position.left+=overLeft;}else if(overRight>0){position.left-=overRight;}else{position.left=max(position.left-collisionPosLeft,position.left);}},top:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollTop:within.offset.top,outerHeight=data.within.height,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=withinOffset-collisionPosTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset,newOverBottom;if(data.collisionHeight>outerHeight){if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-
withinOffset;position.top+=overTop-newOverBottom;}else if(overBottom>0&&overTop<=0){position.top=withinOffset;}else{if(overTop>overBottom){position.top=withinOffset+outerHeight-data.collisionHeight;}else{position.top=withinOffset;}}}else if(overTop>0){position.top+=overTop;}else if(overBottom>0){position.top-=overBottom;}else{position.top=max(position.top-collisionPosTop,position.top);}}},flip:{left:function(position,data){var within=data.within,withinOffset=within.offset.left+within.scrollLeft,outerWidth=within.width,offsetLeft=within.isWindow?within.scrollLeft:within.offset.left,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=collisionPosLeft-offsetLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft,myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:data.at[0]==="right"?-data.targetWidth:0,offset=-2*data.offset[0],newOverRight,newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-
outerWidth-withinOffset;if(newOverRight<0||newOverRight<abs(overLeft)){position.left+=myOffset+atOffset+offset;}}else if(overRight>0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+
atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)<overRight){position.left+=myOffset+atOffset+offset;}}},top:function(position,data){var within=data.within,withinOffset=within.offset.top+within.scrollTop,outerHeight=within.height,offsetTop=within.isWindow?within.scrollTop:within.offset.top,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=collisionPosTop-offsetTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-offsetTop,top=data.my[1]==="top",myOffset=top?-data.elemHeight:data.my[1]==="bottom"?data.elemHeight:0,atOffset=data.at[1]==="top"?data.targetHeight:data.at[1]==="bottom"?-data.targetHeight:0,offset=-2*data.offset[1],newOverTop,newOverBottom;if(overTop<0){newOverBottom=position.top+myOffset+atOffset+offset+data.collisionHeight-
outerHeight-withinOffset;if(newOverBottom<0||newOverBottom<abs(overTop)){position.top+=myOffset+atOffset+offset;}}else if(overBottom>0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+
offset-offsetTop;if(newOverTop>0||abs(newOverTop)<overBottom){position.top+=myOffset+atOffset+offset;}}}},flipfit:{left:function(){$.ui.position.flip.left.apply(this,arguments);$.ui.position.fit.left.apply(this,arguments);},top:function(){$.ui.position.flip.top.apply(this,arguments);$.ui.position.fit.top.apply(this,arguments);}}};})();var position=$.ui.position;var data=$.extend($.expr.pseudos,{data:$.expr.createPseudo?$.expr.createPseudo(function(dataName){return function(elem){return!!$.data(elem,dataName);};}):function(elem,i,match){return!!$.data(elem,match[3]);}});var disableSelection=$.fn.extend({disableSelection:(function(){var eventType="onselectstart" in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(eventType+".ui-disableSelection",function(event){event.preventDefault();});};})(),enableSelection:function(){return this.off(".ui-disableSelection");}});$.ui.focusable=function(element,hasTabindex){var map,mapName,img,focusableIfVisible,fieldset,nodeName=element.nodeName.toLowerCase();if("area"===nodeName){map=element.parentNode;mapName=map.name;if(!element.href||!mapName||map.nodeName.toLowerCase()!=="map"){return false;}
img=$("img[usemap='#"+mapName+"']");return img.length>0&&img.is(":visible");}
if(/^(input|select|textarea|button|object)$/.test(nodeName)){focusableIfVisible=!element.disabled;if(focusableIfVisible){fieldset=$(element).closest("fieldset")[0];if(fieldset){focusableIfVisible=!fieldset.disabled;}}}else if("a"===nodeName){focusableIfVisible=element.href||hasTabindex;}else{focusableIfVisible=hasTabindex;}
return focusableIfVisible&&$(element).is(":visible")&&visible($(element));};function visible(element){var visibility=element.css("visibility");while(visibility==="inherit"){element=element.parent();visibility=element.css("visibility");}
return visibility==="visible";}
$.extend($.expr.pseudos,{focusable:function(element){return $.ui.focusable(element,$.attr(element,"tabindex")!=null);}});var focusable=$.ui.focusable;var form=$.fn._form=function(){return typeof this[0].form==="string"?this.closest("form"):$(this[0].form);};var formResetMixin=$.ui.formResetMixin={_formResetHandler:function(){var form=$(this);setTimeout(function(){var instances=form.data("ui-form-reset-instances");$.each(instances,function(){this.refresh();});});},_bindFormResetHandler:function(){this.form=this.element._form();if(!this.form.length){return;}
var instances=this.form.data("ui-form-reset-instances")||[];if(!instances.length){this.form.on("reset.ui-form-reset",this._formResetHandler);}
instances.push(this);this.form.data("ui-form-reset-instances",instances);},_unbindFormResetHandler:function(){if(!this.form.length){return;}
var instances=this.form.data("ui-form-reset-instances");instances.splice($.inArray(this,instances),1);if(instances.length){this.form.data("ui-form-reset-instances",instances);}else{this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset");}}};var scrollParent=$.fn.scrollParent=function(includeHidden){var position=this.css("position"),excludeStaticParent=position==="absolute",overflowRegex=includeHidden?/(auto|scroll|hidden)/:/(auto|scroll)/,scrollParent=this.parents().filter(function(){var parent=$(this);if(excludeStaticParent&&parent.css("position")==="static"){return false;}
return overflowRegex.test(parent.css("overflow")+parent.css("overflow-y")+
parent.css("overflow-x"));}).eq(0);return position==="fixed"||!scrollParent.length?$(this[0].ownerDocument||document):scrollParent;};var tabbable=$.extend($.expr.pseudos,{tabbable:function(element){var tabIndex=$.attr(element,"tabindex"),hasTabindex=tabIndex!=null;return(!hasTabindex||tabIndex>=0)&&$.ui.focusable(element,hasTabindex);}});var uniqueId=$.fn.extend({uniqueId:(function(){var uuid=0;return function(){return this.each(function(){if(!this.id){this.id="ui-id-"+(++uuid);}});};})(),removeUniqueId:function(){return this.each(function(){if(/^ui-id-\d+$/.test(this.id)){$(this).removeAttr("id");}});}});var ie=$.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var mouseHandled=false;$(document).on("mouseup",function(){mouseHandled=false;});var widgetsMouse=$.widget("ui.mouse",{version:"1.13.2",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var that=this;this.element.on("mousedown."+this.widgetName,function(event){return that._mouseDown(event);}).on("click."+this.widgetName,function(event){if(true===$.data(event.target,that.widgetName+".preventClickEvent")){$.removeData(event.target,that.widgetName+".preventClickEvent");event.stopImmediatePropagation();return false;}});this.started=false;},_mouseDestroy:function(){this.element.off("."+this.widgetName);if(this._mouseMoveDelegate){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate);}},_mouseDown:function(event){if(mouseHandled){return;}
this._mouseMoved=false;if(this._mouseStarted){this._mouseUp(event);}
this._mouseDownEvent=event;var that=this,btnIsLeft=(event.which===1),elIsCancel=(typeof this.options.cancel==="string"&&event.target.nodeName?$(event.target).closest(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){return true;}
this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){that.mouseDelayMet=true;},this.options.delay);}
if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(event)!==false);if(!this._mouseStarted){event.preventDefault();return true;}}
if(true===$.data(event.target,this.widgetName+".preventClickEvent")){$.removeData(event.target,this.widgetName+".preventClickEvent");}
this._mouseMoveDelegate=function(event){return that._mouseMove(event);};this._mouseUpDelegate=function(event){return that._mouseUp(event);};this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate);event.preventDefault();mouseHandled=true;return true;},_mouseMove:function(event){if(this._mouseMoved){if($.ui.ie&&(!document.documentMode||document.documentMode<9)&&!event.button){return this._mouseUp(event);}else if(!event.which){if(event.originalEvent.altKey||event.originalEvent.ctrlKey||event.originalEvent.metaKey||event.originalEvent.shiftKey){this.ignoreMissingWhich=true;}else if(!this.ignoreMissingWhich){return this._mouseUp(event);}}}
if(event.which||event.button){this._mouseMoved=true;}
if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault();}
if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,event)!==false);if(this._mouseStarted){this._mouseDrag(event);}else{this._mouseUp(event);}}
return!this._mouseStarted;},_mouseUp:function(event){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(event.target===this._mouseDownEvent.target){$.data(event.target,this.widgetName+".preventClickEvent",true);}
this._mouseStop(event);}
if(this._mouseDelayTimer){clearTimeout(this._mouseDelayTimer);delete this._mouseDelayTimer;}
this.ignoreMissingWhich=false;mouseHandled=false;event.preventDefault();},_mouseDistanceMet:function(event){return(Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance);},_mouseDelayMet:function(){return this.mouseDelayMet;},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true;}});var plugin=$.ui.plugin={add:function(module,option,set){var i,proto=$.ui[module].prototype;for(i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]]);}},call:function(instance,name,args,allowDisconnected){var i,set=instance.plugins[name];if(!set){return;}
if(!allowDisconnected&&(!instance.element[0].parentNode||instance.element[0].parentNode.nodeType===11)){return;}
for(i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args);}}}};var safeActiveElement=$.ui.safeActiveElement=function(document){var activeElement;try{activeElement=document.activeElement;}catch(error){activeElement=document.body;}
if(!activeElement){activeElement=document.body;}
if(!activeElement.nodeName){activeElement=document.body;}
return activeElement;};var safeBlur=$.ui.safeBlur=function(element){if(element&&element.nodeName.toLowerCase()!=="body"){$(element).trigger("blur");}};$.widget("ui.draggable",$.ui.mouse,{version:"1.13.2",widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false,drag:null,start:null,stop:null},_create:function(){if(this.options.helper==="original"){this._setPositionRelative();}
if(this.options.addClasses){this._addClass("ui-draggable");}
this._setHandleClassName();this._mouseInit();},_setOption:function(key,value){this._super(key,value);if(key==="handle"){this._removeHandleClassName();this._setHandleClassName();}},_destroy:function(){if((this.helper||this.element).is(".ui-draggable-dragging")){this.destroyOnClear=true;return;}
this._removeHandleClassName();this._mouseDestroy();},_mouseCapture:function(event){var o=this.options;if(this.helper||o.disabled||$(event.target).closest(".ui-resizable-handle").length>0){return false;}
this.handle=this._getHandle(event);if(!this.handle){return false;}
this._blurActiveElement(event);this._blockFrames(o.iframeFix===true?"iframe":o.iframeFix);return true;},_blockFrames:function(selector){this.iframeBlocks=this.document.find(selector).map(function(){var iframe=$(this);return $("<div>").css("position","absolute").appendTo(iframe.parent()).outerWidth(iframe.outerWidth()).outerHeight(iframe.outerHeight()).offset(iframe.offset())[0];});},_unblockFrames:function(){if(this.iframeBlocks){this.iframeBlocks.remove();delete this.iframeBlocks;}},_blurActiveElement:function(event){var activeElement=$.ui.safeActiveElement(this.document[0]),target=$(event.target);if(target.closest(activeElement).length){return;}
$.ui.safeBlur(activeElement);},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this._addClass(this.helper,"ui-draggable-dragging");this._cacheHelperProportions();if($.ui.ddmanager){$.ui.ddmanager.current=this;}
this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent(true);this.offsetParent=this.helper.offsetParent();this.hasFixedAncestor=this.helper.parents().filter(function(){return $(this).css("position")==="fixed";}).length>0;this.positionAbs=this.element.offset();this._refreshOffsets(event);this.originalPosition=this.position=this._generatePosition(event,false);this.originalPageX=event.pageX;this.originalPageY=event.pageY;if(o.cursorAt){this._adjustOffsetFromHelper(o.cursorAt);}
this._setContainment();if(this._trigger("start",event)===false){this._clear();return false;}
this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event);}
this._mouseDrag(event,true);if($.ui.ddmanager){$.ui.ddmanager.dragStart(this,event);}
return true;},_refreshOffsets:function(event){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:false,parent:this._getParentOffset(),relative:this._getRelativeOffset()};this.offset.click={left:event.pageX-this.offset.left,top:event.pageY-this.offset.top};},_mouseDrag:function(event,noPropagation){if(this.hasFixedAncestor){this.offset.parent=this._getParentOffset();}
this.position=this._generatePosition(event,true);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp(new $.Event("mouseup",event));return false;}
this.position=ui.position;}
this.helper[0].style.left=this.position.left+"px";this.helper[0].style.top=this.position.top+"px";if($.ui.ddmanager){$.ui.ddmanager.drag(this,event);}
return false;},_mouseStop:function(event){var that=this,dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour){dropped=$.ui.ddmanager.drop(this,event);}
if(this.dropped){dropped=this.dropped;this.dropped=false;}
if((this.options.revert==="invalid"&&!dropped)||(this.options.revert==="valid"&&dropped)||this.options.revert===true||(typeof this.options.revert==="function"&&this.options.revert.call(this.element,dropped))){$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(that._trigger("stop",event)!==false){that._clear();}});}else{if(this._trigger("stop",event)!==false){this._clear();}}
return false;},_mouseUp:function(event){this._unblockFrames();if($.ui.ddmanager){$.ui.ddmanager.dragStop(this,event);}
if(this.handleElement.is(event.target)){this.element.trigger("focus");}
return $.ui.mouse.prototype._mouseUp.call(this,event);},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp(new $.Event("mouseup",{target:this.element[0]}));}else{this._clear();}
return this;},_getHandle:function(event){return this.options.handle?!!$(event.target).closest(this.element.find(this.options.handle)).length:true;},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element;this._addClass(this.handleElement,"ui-draggable-handle");},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle");},_createHelper:function(event){var o=this.options,helperIsFunction=typeof o.helper==="function",helper=helperIsFunction?$(o.helper.apply(this.element[0],[event])):(o.helper==="clone"?this.element.clone().removeAttr("id"):this.element);if(!helper.parents("body").length){helper.appendTo((o.appendTo==="parent"?this.element[0].parentNode:o.appendTo));}
if(helperIsFunction&&helper[0]===this.element[0]){this._setPositionRelative();}
if(helper[0]!==this.element[0]&&!(/(fixed|absolute)/).test(helper.css("position"))){helper.css("position","absolute");}
return helper;},_setPositionRelative:function(){if(!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative";}},_adjustOffsetFromHelper:function(obj){if(typeof obj==="string"){obj=obj.split(" ");}
if(Array.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0};}
if("left" in obj){this.offset.click.left=obj.left+this.margins.left;}
if("right" in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left;}
if("top" in obj){this.offset.click.top=obj.top+this.margins.top;}
if("bottom" in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top;}},_isRootNode:function(element){return(/(html|body)/i).test(element.tagName)||element===this.document[0];},_getParentOffset:function(){var po=this.offsetParent.offset(),document=this.document[0];if(this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop();}
if(this._isRootNode(this.offsetParent[0])){po={top:0,left:0};}
return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)};},_getRelativeOffset:function(){if(this.cssPosition!=="relative"){return{top:0,left:0};}
var p=this.element.position(),scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+
(!scrollIsRootNode?this.scrollParent.scrollTop():0),left:p.left-(parseInt(this.helper.css("left"),10)||0)+
(!scrollIsRootNode?this.scrollParent.scrollLeft():0)};},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0),right:(parseInt(this.element.css("marginRight"),10)||0),bottom:(parseInt(this.element.css("marginBottom"),10)||0)};},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};},_setContainment:function(){var isUserScrollable,c,ce,o=this.options,document=this.document[0];this.relativeContainer=null;if(!o.containment){this.containment=null;return;}
if(o.containment==="window"){this.containment=[$(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,$(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,$(window).scrollLeft()+$(window).width()-
this.helperProportions.width-this.margins.left,$(window).scrollTop()+
($(window).height()||document.body.parentNode.scrollHeight)-
this.helperProportions.height-this.margins.top];return;}
if(o.containment==="document"){this.containment=[0,0,$(document).width()-this.helperProportions.width-this.margins.left,($(document).height()||document.body.parentNode.scrollHeight)-
this.helperProportions.height-this.margins.top];return;}
if(o.containment.constructor===Array){this.containment=o.containment;return;}
if(o.containment==="parent"){o.containment=this.helper[0].parentNode;}
c=$(o.containment);ce=c[0];if(!ce){return;}
isUserScrollable=/(scroll|auto)/.test(c.css("overflow"));this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+
(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),10)||0)+
(parseInt(c.css("paddingTop"),10)||0),(isUserScrollable?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-
(parseInt(c.css("borderRightWidth"),10)||0)-
(parseInt(c.css("paddingRight"),10)||0)-
this.helperProportions.width-
this.margins.left-
this.margins.right,(isUserScrollable?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-
(parseInt(c.css("borderBottomWidth"),10)||0)-
(parseInt(c.css("paddingBottom"),10)||0)-
this.helperProportions.height-
this.margins.top-
this.margins.bottom];this.relativeContainer=c;},_convertPositionTo:function(d,pos){if(!pos){pos=this.position;}
var mod=d==="absolute"?1:-1,scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:(pos.top+
this.offset.relative.top*mod+
this.offset.parent.top*mod-
((this.cssPosition==="fixed"?-this.offset.scroll.top:(scrollIsRootNode?0:this.offset.scroll.top))*mod)),left:(pos.left+
this.offset.relative.left*mod+
this.offset.parent.left*mod-
((this.cssPosition==="fixed"?-this.offset.scroll.left:(scrollIsRootNode?0:this.offset.scroll.left))*mod))};},_generatePosition:function(event,constrainPosition){var containment,co,top,left,o=this.options,scrollIsRootNode=this._isRootNode(this.scrollParent[0]),pageX=event.pageX,pageY=event.pageY;if(!scrollIsRootNode||!this.offset.scroll){this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()};}
if(constrainPosition){if(this.containment){if(this.relativeContainer){co=this.relativeContainer.offset();containment=[this.containment[0]+co.left,this.containment[1]+co.top,this.containment[2]+co.left,this.containment[3]+co.top];}else{containment=this.containment;}
if(event.pageX-this.offset.click.left<containment[0]){pageX=containment[0]+this.offset.click.left;}
if(event.pageY-this.offset.click.top<containment[1]){pageY=containment[1]+this.offset.click.top;}
if(event.pageX-this.offset.click.left>containment[2]){pageX=containment[2]+this.offset.click.left;}
if(event.pageY-this.offset.click.top>containment[3]){pageY=containment[3]+this.offset.click.top;}}
if(o.grid){top=o.grid[1]?this.originalPageY+Math.round((pageY-
this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY;pageY=containment?((top-this.offset.click.top>=containment[1]||top-this.offset.click.top>containment[3])?top:((top-this.offset.click.top>=containment[1])?top-o.grid[1]:top+o.grid[1])):top;left=o.grid[0]?this.originalPageX+
Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX;pageX=containment?((left-this.offset.click.left>=containment[0]||left-this.offset.click.left>containment[2])?left:((left-this.offset.click.left>=containment[0])?left-o.grid[0]:left+o.grid[0])):left;}
if(o.axis==="y"){pageX=this.originalPageX;}
if(o.axis==="x"){pageY=this.originalPageY;}}
return{top:(pageY-
this.offset.click.top-
this.offset.relative.top-
this.offset.parent.top+
(this.cssPosition==="fixed"?-this.offset.scroll.top:(scrollIsRootNode?0:this.offset.scroll.top))),left:(pageX-
this.offset.click.left-
this.offset.relative.left-
this.offset.parent.left+
(this.cssPosition==="fixed"?-this.offset.scroll.left:(scrollIsRootNode?0:this.offset.scroll.left)))};},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging");if(this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval){this.helper.remove();}
this.helper=null;this.cancelHelperRemoval=false;if(this.destroyOnClear){this.destroy();}},_trigger:function(type,event,ui){ui=ui||this._uiHash();$.ui.plugin.call(this,type,[event,ui,this],true);if(/^(drag|start|stop)/.test(type)){this.positionAbs=this._convertPositionTo("absolute");ui.offset=this.positionAbs;}
return $.Widget.prototype._trigger.call(this,type,event,ui);},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs};}});$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.sortables=[];$(draggable.options.connectToSortable).each(function(){var sortable=$(this).sortable("instance");if(sortable&&!sortable.options.disabled){draggable.sortables.push(sortable);sortable.refreshPositions();sortable._trigger("activate",event,uiSortable);}});},stop:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.cancelHelperRemoval=false;$.each(draggable.sortables,function(){var sortable=this;if(sortable.isOver){sortable.isOver=0;draggable.cancelHelperRemoval=true;sortable.cancelHelperRemoval=false;sortable._storedCSS={position:sortable.placeholder.css("position"),top:sortable.placeholder.css("top"),left:sortable.placeholder.css("left")};sortable._mouseStop(event);sortable.options.helper=sortable.options._helper;}else{sortable.cancelHelperRemoval=true;sortable._trigger("deactivate",event,uiSortable);}});},drag:function(event,ui,draggable){$.each(draggable.sortables,function(){var innermostIntersecting=false,sortable=this;sortable.positionAbs=draggable.positionAbs;sortable.helperProportions=draggable.helperProportions;sortable.offset.click=draggable.offset.click;if(sortable._intersectsWith(sortable.containerCache)){innermostIntersecting=true;$.each(draggable.sortables,function(){this.positionAbs=draggable.positionAbs;this.helperProportions=draggable.helperProportions;this.offset.click=draggable.offset.click;if(this!==sortable&&this._intersectsWith(this.containerCache)&&$.contains(sortable.element[0],this.element[0])){innermostIntersecting=false;}
return innermostIntersecting;});}
if(innermostIntersecting){if(!sortable.isOver){sortable.isOver=1;draggable._parent=ui.helper.parent();sortable.currentItem=ui.helper.appendTo(sortable.element).data("ui-sortable-item",true);sortable.options._helper=sortable.options.helper;sortable.options.helper=function(){return ui.helper[0];};event.target=sortable.currentItem[0];sortable._mouseCapture(event,true);sortable._mouseStart(event,true,true);sortable.offset.click.top=draggable.offset.click.top;sortable.offset.click.left=draggable.offset.click.left;sortable.offset.parent.left-=draggable.offset.parent.left-
sortable.offset.parent.left;sortable.offset.parent.top-=draggable.offset.parent.top-
sortable.offset.parent.top;draggable._trigger("toSortable",event);draggable.dropped=sortable.element;$.each(draggable.sortables,function(){this.refreshPositions();});draggable.currentItem=draggable.element;sortable.fromOutside=draggable;}
if(sortable.currentItem){sortable._mouseDrag(event);ui.position=sortable.position;}}else{if(sortable.isOver){sortable.isOver=0;sortable.cancelHelperRemoval=true;sortable.options._revert=sortable.options.revert;sortable.options.revert=false;sortable._trigger("out",event,sortable._uiHash(sortable));sortable._mouseStop(event,true);sortable.options.revert=sortable.options._revert;sortable.options.helper=sortable.options._helper;if(sortable.placeholder){sortable.placeholder.remove();}
ui.helper.appendTo(draggable._parent);draggable._refreshOffsets(event);ui.position=draggable._generatePosition(event,true);draggable._trigger("fromSortable",event);draggable.dropped=false;$.each(draggable.sortables,function(){this.refreshPositions();});}}});}});$.ui.plugin.add("draggable","cursor",{start:function(event,ui,instance){var t=$("body"),o=instance.options;if(t.css("cursor")){o._cursor=t.css("cursor");}
t.css("cursor",o.cursor);},stop:function(event,ui,instance){var o=instance.options;if(o._cursor){$("body").css("cursor",o._cursor);}}});$.ui.plugin.add("draggable","opacity",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("opacity")){o._opacity=t.css("opacity");}
t.css("opacity",o.opacity);},stop:function(event,ui,instance){var o=instance.options;if(o._opacity){$(ui.helper).css("opacity",o._opacity);}}});$.ui.plugin.add("draggable","scroll",{start:function(event,ui,i){if(!i.scrollParentNotHidden){i.scrollParentNotHidden=i.helper.scrollParent(false);}
if(i.scrollParentNotHidden[0]!==i.document[0]&&i.scrollParentNotHidden[0].tagName!=="HTML"){i.overflowOffset=i.scrollParentNotHidden.offset();}},drag:function(event,ui,i){var o=i.options,scrolled=false,scrollParent=i.scrollParentNotHidden[0],document=i.document[0];if(scrollParent!==document&&scrollParent.tagName!=="HTML"){if(!o.axis||o.axis!=="x"){if((i.overflowOffset.top+scrollParent.offsetHeight)-event.pageY<o.scrollSensitivity){scrollParent.scrollTop=scrolled=scrollParent.scrollTop+o.scrollSpeed;}else if(event.pageY-i.overflowOffset.top<o.scrollSensitivity){scrollParent.scrollTop=scrolled=scrollParent.scrollTop-o.scrollSpeed;}}
if(!o.axis||o.axis!=="y"){if((i.overflowOffset.left+scrollParent.offsetWidth)-event.pageX<o.scrollSensitivity){scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft+o.scrollSpeed;}else if(event.pageX-i.overflowOffset.left<o.scrollSensitivity){scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft-o.scrollSpeed;}}}else{if(!o.axis||o.axis!=="x"){if(event.pageY-$(document).scrollTop()<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed);}else if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed);}}
if(!o.axis||o.axis!=="y"){if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed);}else if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed);}}}
if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(i,event);}}});$.ui.plugin.add("draggable","snap",{start:function(event,ui,i){var o=i.options;i.snapElements=[];$(o.snap.constructor!==String?(o.snap.items||":data(ui-draggable)"):o.snap).each(function(){var $t=$(this),$o=$t.offset();if(this!==i.element[0]){i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left});}});},drag:function(event,ui,inst){var ts,bs,ls,rs,l,r,t,b,i,first,o=inst.options,d=o.snapTolerance,x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(i=inst.snapElements.length-1;i>=0;i--){l=inst.snapElements[i].left-inst.margins.left;r=l+inst.snapElements[i].width;t=inst.snapElements[i].top-inst.margins.top;b=t+inst.snapElements[i].height;if(x2<l-d||x1>r+d||y2<t-d||y1>b+d||!$.contains(inst.snapElements[i].item.ownerDocument,inst.snapElements[i].item)){if(inst.snapElements[i].snapping){if(inst.options.snap.release){inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item}));}}
inst.snapElements[i].snapping=false;continue;}
if(o.snapMode!=="inner"){ts=Math.abs(t-y2)<=d;bs=Math.abs(b-y1)<=d;ls=Math.abs(l-x2)<=d;rs=Math.abs(r-x1)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top;}
if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top;}
if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left;}
if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left;}}
first=(ts||bs||ls||rs);if(o.snapMode!=="outer"){ts=Math.abs(t-y1)<=d;bs=Math.abs(b-y2)<=d;ls=Math.abs(l-x1)<=d;rs=Math.abs(r-x2)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top;}
if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top;}
if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left;}
if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left;}}
if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){if(inst.options.snap.snap){inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item}));}}
inst.snapElements[i].snapping=(ts||bs||ls||rs||first);}}});$.ui.plugin.add("draggable","stack",{start:function(event,ui,instance){var min,o=instance.options,group=$.makeArray($(o.stack)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||0)-
(parseInt($(b).css("zIndex"),10)||0);});if(!group.length){return;}
min=parseInt($(group[0]).css("zIndex"),10)||0;$(group).each(function(i){$(this).css("zIndex",min+i);});this.css("zIndex",(min+group.length));}});$.ui.plugin.add("draggable","zIndex",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("zIndex")){o._zIndex=t.css("zIndex");}
t.css("zIndex",o.zIndex);},stop:function(event,ui,instance){var o=instance.options;if(o._zIndex){$(ui.helper).css("zIndex",o._zIndex);}}});var widgetsDraggable=$.ui.draggable;$.widget("ui.resizable",$.ui.mouse,{version:"1.13.2",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(value){return parseFloat(value)||0;},_isNumber:function(value){return!isNaN(parseFloat(value));},_hasScroll:function(el,a){if($(el).css("overflow")==="hidden"){return false;}
var scroll=(a&&a==="left")?"scrollLeft":"scrollTop",has=false;if(el[scroll]>0){return true;}
try{el[scroll]=1;has=(el[scroll]>0);el[scroll]=0;}catch(e){}
return has;},_create:function(){var margins,o=this.options,that=this;this._addClass("ui-resizable");$.extend(this,{_aspectRatio:!!(o.aspectRatio),aspectRatio:o.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:o.helper||o.ghost||o.animate?o.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)){this.element.wrap($("<div class='ui-wrapper'></div>").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance"));this.elementIsWrapper=true;margins={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")};this.element.css(margins);this.originalElement.css("margin",0);this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css(margins);this._proportionallyResize();}
this._setupHandles();if(o.autoHide){$(this.element).on("mouseenter",function(){if(o.disabled){return;}
that._removeClass("ui-resizable-autohide");that._handles.show();}).on("mouseleave",function(){if(o.disabled){return;}
if(!that.resizing){that._addClass("ui-resizable-autohide");that._handles.hide();}});}
this._mouseInit();},_destroy:function(){this._mouseDestroy();this._addedHandles.remove();var wrapper,_destroy=function(exp){$(exp).removeData("resizable").removeData("ui-resizable").off(".resizable");};if(this.elementIsWrapper){_destroy(this.element);wrapper=this.element;this.originalElement.css({position:wrapper.css("position"),width:wrapper.outerWidth(),height:wrapper.outerHeight(),top:wrapper.css("top"),left:wrapper.css("left")}).insertAfter(wrapper);wrapper.remove();}
this.originalElement.css("resize",this.originalResizeStyle);_destroy(this.originalElement);return this;},_setOption:function(key,value){this._super(key,value);switch(key){case"handles":this._removeHandles();this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!value;break;default:break;}},_setupHandles:function(){var o=this.options,handle,i,n,hname,axis,that=this;this.handles=o.handles||(!$(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});this._handles=$();this._addedHandles=$();if(this.handles.constructor===String){if(this.handles==="all"){this.handles="n,e,s,w,se,sw,ne,nw";}
n=this.handles.split(",");this.handles={};for(i=0;i<n.length;i++){handle=String.prototype.trim.call(n[i]);hname="ui-resizable-"+handle;axis=$("<div>");this._addClass(axis,"ui-resizable-handle "+hname);axis.css({zIndex:o.zIndex});this.handles[handle]=".ui-resizable-"+handle;if(!this.element.children(this.handles[handle]).length){this.element.append(axis);this._addedHandles=this._addedHandles.add(axis);}}}
this._renderAxis=function(target){var i,axis,padPos,padWrapper;target=target||this.element;for(i in this.handles){if(this.handles[i].constructor===String){this.handles[i]=this.element.children(this.handles[i]).first().show();}else if(this.handles[i].jquery||this.handles[i].nodeType){this.handles[i]=$(this.handles[i]);this._on(this.handles[i],{"mousedown":that._mouseDown});}
if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)){axis=$(this.handles[i],this.element);padWrapper=/sw|ne|nw|se|n|s/.test(i)?axis.outerHeight():axis.outerWidth();padPos=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");target.css(padPos,padWrapper);this._proportionallyResize();}
this._handles=this._handles.add(this.handles[i]);}};this._renderAxis(this.element);this._handles=this._handles.add(this.element.find(".ui-resizable-handle"));this._handles.disableSelection();this._handles.on("mouseover",function(){if(!that.resizing){if(this.className){axis=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);}
that.axis=axis&&axis[1]?axis[1]:"se";}});if(o.autoHide){this._handles.hide();this._addClass("ui-resizable-autohide");}},_removeHandles:function(){this._addedHandles.remove();},_mouseCapture:function(event){var i,handle,capture=false;for(i in this.handles){handle=$(this.handles[i])[0];if(handle===event.target||$.contains(handle,event.target)){capture=true;}}
return!this.options.disabled&&capture;},_mouseStart:function(event){var curleft,curtop,cursor,o=this.options,el=this.element;this.resizing=true;this._renderProxy();curleft=this._num(this.helper.css("left"));curtop=this._num(this.helper.css("top"));if(o.containment){curleft+=$(o.containment).scrollLeft()||0;curtop+=$(o.containment).scrollTop()||0;}
this.offset=this.helper.offset();this.position={left:curleft,top:curtop};this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:el.width(),height:el.height()};this.originalSize=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()};this.sizeDiff={width:el.outerWidth()-el.width(),height:el.outerHeight()-el.height()};this.originalPosition={left:curleft,top:curtop};this.originalMousePosition={left:event.pageX,top:event.pageY};this.aspectRatio=(typeof o.aspectRatio==="number")?o.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);cursor=$(".ui-resizable-"+this.axis).css("cursor");$("body").css("cursor",cursor==="auto"?this.axis+"-resize":cursor);this._addClass("ui-resizable-resizing");this._propagate("start",event);return true;},_mouseDrag:function(event){var data,props,smp=this.originalMousePosition,a=this.axis,dx=(event.pageX-smp.left)||0,dy=(event.pageY-smp.top)||0,trigger=this._change[a];this._updatePrevProperties();if(!trigger){return false;}
data=trigger.apply(this,[event,dx,dy]);this._updateVirtualBoundaries(event.shiftKey);if(this._aspectRatio||event.shiftKey){data=this._updateRatio(data,event);}
data=this._respectSize(data,event);this._updateCache(data);this._propagate("resize",event);props=this._applyChanges();if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize();}
if(!$.isEmptyObject(props)){this._updatePrevProperties();this._trigger("resize",event,this.ui());this._applyChanges();}
return false;},_mouseStop:function(event){this.resizing=false;var pr,ista,soffseth,soffsetw,s,left,top,o=this.options,that=this;if(this._helper){pr=this._proportionallyResizeElements;ista=pr.length&&(/textarea/i).test(pr[0].nodeName);soffseth=ista&&this._hasScroll(pr[0],"left")?0:that.sizeDiff.height;soffsetw=ista?0:that.sizeDiff.width;s={width:(that.helper.width()-soffsetw),height:(that.helper.height()-soffseth)};left=(parseFloat(that.element.css("left"))+
(that.position.left-that.originalPosition.left))||null;top=(parseFloat(that.element.css("top"))+
(that.position.top-that.originalPosition.top))||null;if(!o.animate){this.element.css($.extend(s,{top:top,left:left}));}
that.helper.height(that.size.height);that.helper.width(that.size.width);if(this._helper&&!o.animate){this._proportionallyResize();}}
$("body").css("cursor","auto");this._removeClass("ui-resizable-resizing");this._propagate("stop",event);if(this._helper){this.helper.remove();}
return false;},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left};this.prevSize={width:this.size.width,height:this.size.height};},_applyChanges:function(){var props={};if(this.position.top!==this.prevPosition.top){props.top=this.position.top+"px";}
if(this.position.left!==this.prevPosition.left){props.left=this.position.left+"px";}
if(this.size.width!==this.prevSize.width){props.width=this.size.width+"px";}
if(this.size.height!==this.prevSize.height){props.height=this.size.height+"px";}
this.helper.css(props);return props;},_updateVirtualBoundaries:function(forceAspectRatio){var pMinWidth,pMaxWidth,pMinHeight,pMaxHeight,b,o=this.options;b={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||forceAspectRatio){pMinWidth=b.minHeight*this.aspectRatio;pMinHeight=b.minWidth/this.aspectRatio;pMaxWidth=b.maxHeight*this.aspectRatio;pMaxHeight=b.maxWidth/this.aspectRatio;if(pMinWidth>b.minWidth){b.minWidth=pMinWidth;}
if(pMinHeight>b.minHeight){b.minHeight=pMinHeight;}
if(pMaxWidth<b.maxWidth){b.maxWidth=pMaxWidth;}
if(pMaxHeight<b.maxHeight){b.maxHeight=pMaxHeight;}}
this._vBoundaries=b;},_updateCache:function(data){this.offset=this.helper.offset();if(this._isNumber(data.left)){this.position.left=data.left;}
if(this._isNumber(data.top)){this.position.top=data.top;}
if(this._isNumber(data.height)){this.size.height=data.height;}
if(this._isNumber(data.width)){this.size.width=data.width;}},_updateRatio:function(data){var cpos=this.position,csize=this.size,a=this.axis;if(this._isNumber(data.height)){data.width=(data.height*this.aspectRatio);}else if(this._isNumber(data.width)){data.height=(data.width/this.aspectRatio);}
if(a==="sw"){data.left=cpos.left+(csize.width-data.width);data.top=null;}
if(a==="nw"){data.top=cpos.top+(csize.height-data.height);data.left=cpos.left+(csize.width-data.width);}
return data;},_respectSize:function(data){var o=this._vBoundaries,a=this.axis,ismaxw=this._isNumber(data.width)&&o.maxWidth&&(o.maxWidth<data.width),ismaxh=this._isNumber(data.height)&&o.maxHeight&&(o.maxHeight<data.height),isminw=this._isNumber(data.width)&&o.minWidth&&(o.minWidth>data.width),isminh=this._isNumber(data.height)&&o.minHeight&&(o.minHeight>data.height),dw=this.originalPosition.left+this.originalSize.width,dh=this.originalPosition.top+this.originalSize.height,cw=/sw|nw|w/.test(a),ch=/nw|ne|n/.test(a);if(isminw){data.width=o.minWidth;}
if(isminh){data.height=o.minHeight;}
if(ismaxw){data.width=o.maxWidth;}
if(ismaxh){data.height=o.maxHeight;}
if(isminw&&cw){data.left=dw-o.minWidth;}
if(ismaxw&&cw){data.left=dw-o.maxWidth;}
if(isminh&&ch){data.top=dh-o.minHeight;}
if(ismaxh&&ch){data.top=dh-o.maxHeight;}
if(!data.width&&!data.height&&!data.left&&data.top){data.top=null;}else if(!data.width&&!data.height&&!data.top&&data.left){data.left=null;}
return data;},_getPaddingPlusBorderDimensions:function(element){var i=0,widths=[],borders=[element.css("borderTopWidth"),element.css("borderRightWidth"),element.css("borderBottomWidth"),element.css("borderLeftWidth")],paddings=[element.css("paddingTop"),element.css("paddingRight"),element.css("paddingBottom"),element.css("paddingLeft")];for(;i<4;i++){widths[i]=(parseFloat(borders[i])||0);widths[i]+=(parseFloat(paddings[i])||0);}
return{height:widths[0]+widths[2],width:widths[1]+widths[3]};},_proportionallyResize:function(){if(!this._proportionallyResizeElements.length){return;}
var prel,i=0,element=this.helper||this.element;for(;i<this._proportionallyResizeElements.length;i++){prel=this._proportionallyResizeElements[i];if(!this.outerDimensions){this.outerDimensions=this._getPaddingPlusBorderDimensions(prel);}
prel.css({height:(element.height()-this.outerDimensions.height)||0,width:(element.width()-this.outerDimensions.width)||0});}},_renderProxy:function(){var el=this.element,o=this.options;this.elementOffset=el.offset();if(this._helper){this.helper=this.helper||$("<div></div>").css({overflow:"hidden"});this._addClass(this.helper,this._helper);this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++o.zIndex});this.helper.appendTo("body").disableSelection();}else{this.helper=this.element;}},_change:{e:function(event,dx){return{width:this.originalSize.width+dx};},w:function(event,dx){var cs=this.originalSize,sp=this.originalPosition;return{left:sp.left+dx,width:cs.width-dx};},n:function(event,dx,dy){var cs=this.originalSize,sp=this.originalPosition;return{top:sp.top+dy,height:cs.height-dy};},s:function(event,dx,dy){return{height:this.originalSize.height+dy};},se:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]));},sw:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]));},ne:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]));},nw:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]));}},_propagate:function(n,event){$.ui.plugin.call(this,n,[event,this.ui()]);if(n!=="resize"){this._trigger(n,event,this.ui());}},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition};}});$.ui.plugin.add("resizable","animate",{stop:function(event){var that=$(this).resizable("instance"),o=that.options,pr=that._proportionallyResizeElements,ista=pr.length&&(/textarea/i).test(pr[0].nodeName),soffseth=ista&&that._hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width,style={width:(that.size.width-soffsetw),height:(that.size.height-soffseth)},left=(parseFloat(that.element.css("left"))+
(that.position.left-that.originalPosition.left))||null,top=(parseFloat(that.element.css("top"))+
(that.position.top-that.originalPosition.top))||null;that.element.animate($.extend(style,top&&left?{top:top,left:left}:{}),{duration:o.animateDuration,easing:o.animateEasing,step:function(){var data={width:parseFloat(that.element.css("width")),height:parseFloat(that.element.css("height")),top:parseFloat(that.element.css("top")),left:parseFloat(that.element.css("left"))};if(pr&&pr.length){$(pr[0]).css({width:data.width,height:data.height});}
that._updateCache(data);that._propagate("resize",event);}});}});$.ui.plugin.add("resizable","containment",{start:function(){var element,p,co,ch,cw,width,height,that=$(this).resizable("instance"),o=that.options,el=that.element,oc=o.containment,ce=(oc instanceof $)?oc.get(0):(/parent/.test(oc))?el.parent().get(0):oc;if(!ce){return;}
that.containerElement=$(ce);if(/document/.test(oc)||oc===document){that.containerOffset={left:0,top:0};that.containerPosition={left:0,top:0};that.parentData={element:$(document),left:0,top:0,width:$(document).width(),height:$(document).height()||document.body.parentNode.scrollHeight};}else{element=$(ce);p=[];$(["Top","Right","Left","Bottom"]).each(function(i,name){p[i]=that._num(element.css("padding"+name));});that.containerOffset=element.offset();that.containerPosition=element.position();that.containerSize={height:(element.innerHeight()-p[3]),width:(element.innerWidth()-p[1])};co=that.containerOffset;ch=that.containerSize.height;cw=that.containerSize.width;width=(that._hasScroll(ce,"left")?ce.scrollWidth:cw);height=(that._hasScroll(ce)?ce.scrollHeight:ch);that.parentData={element:ce,left:co.left,top:co.top,width:width,height:height};}},resize:function(event){var woset,hoset,isParent,isOffsetRelative,that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cp=that.position,pRatio=that._aspectRatio||event.shiftKey,cop={top:0,left:0},ce=that.containerElement,continueResize=true;if(ce[0]!==document&&(/static/).test(ce.css("position"))){cop=co;}
if(cp.left<(that._helper?co.left:0)){that.size.width=that.size.width+
(that._helper?(that.position.left-co.left):(that.position.left-cop.left));if(pRatio){that.size.height=that.size.width/that.aspectRatio;continueResize=false;}
that.position.left=o.helper?co.left:0;}
if(cp.top<(that._helper?co.top:0)){that.size.height=that.size.height+
(that._helper?(that.position.top-co.top):that.position.top);if(pRatio){that.size.width=that.size.height*that.aspectRatio;continueResize=false;}
that.position.top=that._helper?co.top:0;}
isParent=that.containerElement.get(0)===that.element.parent().get(0);isOffsetRelative=/relative|absolute/.test(that.containerElement.css("position"));if(isParent&&isOffsetRelative){that.offset.left=that.parentData.left+that.position.left;that.offset.top=that.parentData.top+that.position.top;}else{that.offset.left=that.element.offset().left;that.offset.top=that.element.offset().top;}
woset=Math.abs(that.sizeDiff.width+
(that._helper?that.offset.left-cop.left:(that.offset.left-co.left)));hoset=Math.abs(that.sizeDiff.height+
(that._helper?that.offset.top-cop.top:(that.offset.top-co.top)));if(woset+that.size.width>=that.parentData.width){that.size.width=that.parentData.width-woset;if(pRatio){that.size.height=that.size.width/that.aspectRatio;continueResize=false;}}
if(hoset+that.size.height>=that.parentData.height){that.size.height=that.parentData.height-hoset;if(pRatio){that.size.width=that.size.height*that.aspectRatio;continueResize=false;}}
if(!continueResize){that.position.left=that.prevPosition.left;that.position.top=that.prevPosition.top;that.size.width=that.prevSize.width;that.size.height=that.prevSize.height;}},stop:function(){var that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cop=that.containerPosition,ce=that.containerElement,helper=$(that.helper),ho=helper.offset(),w=helper.outerWidth()-that.sizeDiff.width,h=helper.outerHeight()-that.sizeDiff.height;if(that._helper&&!o.animate&&(/relative/).test(ce.css("position"))){$(this).css({left:ho.left-cop.left-co.left,width:w,height:h});}
if(that._helper&&!o.animate&&(/static/).test(ce.css("position"))){$(this).css({left:ho.left-cop.left-co.left,width:w,height:h});}}});$.ui.plugin.add("resizable","alsoResize",{start:function(){var that=$(this).resizable("instance"),o=that.options;$(o.alsoResize).each(function(){var el=$(this);el.data("ui-resizable-alsoresize",{width:parseFloat(el.width()),height:parseFloat(el.height()),left:parseFloat(el.css("left")),top:parseFloat(el.css("top"))});});},resize:function(event,ui){var that=$(this).resizable("instance"),o=that.options,os=that.originalSize,op=that.originalPosition,delta={height:(that.size.height-os.height)||0,width:(that.size.width-os.width)||0,top:(that.position.top-op.top)||0,left:(that.position.left-op.left)||0};$(o.alsoResize).each(function(){var el=$(this),start=$(this).data("ui-resizable-alsoresize"),style={},css=el.parents(ui.originalElement[0]).length?["width","height"]:["width","height","top","left"];$.each(css,function(i,prop){var sum=(start[prop]||0)+(delta[prop]||0);if(sum&&sum>=0){style[prop]=sum||null;}});el.css(style);});},stop:function(){$(this).removeData("ui-resizable-alsoresize");}});$.ui.plugin.add("resizable","ghost",{start:function(){var that=$(this).resizable("instance"),cs=that.size;that.ghost=that.originalElement.clone();that.ghost.css({opacity:0.25,display:"block",position:"relative",height:cs.height,width:cs.width,margin:0,left:0,top:0});that._addClass(that.ghost,"ui-resizable-ghost");if($.uiBackCompat!==false&&typeof that.options.ghost==="string"){that.ghost.addClass(this.options.ghost);}
that.ghost.appendTo(that.helper);},resize:function(){var that=$(this).resizable("instance");if(that.ghost){that.ghost.css({position:"relative",height:that.size.height,width:that.size.width});}},stop:function(){var that=$(this).resizable("instance");if(that.ghost&&that.helper){that.helper.get(0).removeChild(that.ghost.get(0));}}});$.ui.plugin.add("resizable","grid",{resize:function(){var outerDimensions,that=$(this).resizable("instance"),o=that.options,cs=that.size,os=that.originalSize,op=that.originalPosition,a=that.axis,grid=typeof o.grid==="number"?[o.grid,o.grid]:o.grid,gridX=(grid[0]||1),gridY=(grid[1]||1),ox=Math.round((cs.width-os.width)/gridX)*gridX,oy=Math.round((cs.height-os.height)/gridY)*gridY,newWidth=os.width+ox,newHeight=os.height+oy,isMaxWidth=o.maxWidth&&(o.maxWidth<newWidth),isMaxHeight=o.maxHeight&&(o.maxHeight<newHeight),isMinWidth=o.minWidth&&(o.minWidth>newWidth),isMinHeight=o.minHeight&&(o.minHeight>newHeight);o.grid=grid;if(isMinWidth){newWidth+=gridX;}
if(isMinHeight){newHeight+=gridY;}
if(isMaxWidth){newWidth-=gridX;}
if(isMaxHeight){newHeight-=gridY;}
if(/^(se|s|e)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;}else if(/^(ne)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;that.position.top=op.top-oy;}else if(/^(sw)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;that.position.left=op.left-ox;}else{if(newHeight-gridY<=0||newWidth-gridX<=0){outerDimensions=that._getPaddingPlusBorderDimensions(this);}
if(newHeight-gridY>0){that.size.height=newHeight;that.position.top=op.top-oy;}else{newHeight=gridY-outerDimensions.height;that.size.height=newHeight;that.position.top=op.top+os.height-newHeight;}
if(newWidth-gridX>0){that.size.width=newWidth;that.position.left=op.left-ox;}else{newWidth=gridX-outerDimensions.width;that.size.width=newWidth;that.position.left=op.left+os.width-newWidth;}}}});var widgetsResizable=$.ui.resizable;var widgetsMenu=$.widget("ui.menu",{version:"1.13.2",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element;this.mouseHandled=false;this.lastMousePosition={x:null,y:null};this.element.uniqueId().attr({role:this.options.role,tabIndex:0});this._addClass("ui-menu","ui-widget ui-widget-content");this._on({"mousedown .ui-menu-item":function(event){event.preventDefault();this._activateItem(event);},"click .ui-menu-item":function(event){var target=$(event.target);var active=$($.ui.safeActiveElement(this.document[0]));if(!this.mouseHandled&&target.not(".ui-state-disabled").length){this.select(event);if(!event.isPropagationStopped()){this.mouseHandled=true;}
if(target.has(".ui-menu").length){this.expand(event);}else if(!this.element.is(":focus")&&active.closest(".ui-menu").length){this.element.trigger("focus",[true]);if(this.active&&this.active.parents(".ui-menu").length===1){clearTimeout(this.timer);}}}},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(event,keepActiveItem){var item=this.active||this._menuItems().first();if(!keepActiveItem){this.focus(event,item);}},blur:function(event){this._delay(function(){var notContained=!$.contains(this.element[0],$.ui.safeActiveElement(this.document[0]));if(notContained){this.collapseAll(event);}});},keydown:"_keydown"});this.refresh();this._on(this.document,{click:function(event){if(this._closeOnDocumentClick(event)){this.collapseAll(event,true);}
this.mouseHandled=false;}});},_activateItem:function(event){if(this.previousFilter){return;}
if(event.clientX===this.lastMousePosition.x&&event.clientY===this.lastMousePosition.y){return;}
this.lastMousePosition={x:event.clientX,y:event.clientY};var actualTarget=$(event.target).closest(".ui-menu-item"),target=$(event.currentTarget);if(actualTarget[0]!==target[0]){return;}
if(target.is(".ui-state-active")){return;}
this._removeClass(target.siblings().children(".ui-state-active"),null,"ui-state-active");this.focus(event,target);},_destroy:function(){var items=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),submenus=items.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled "+"tabIndex").removeUniqueId().show();submenus.children().each(function(){var elem=$(this);if(elem.data("ui-menu-submenu-caret")){elem.remove();}});},_keydown:function(event){var match,prev,character,skip,preventDefault=true;switch(event.keyCode){case $.ui.keyCode.PAGE_UP:this.previousPage(event);break;case $.ui.keyCode.PAGE_DOWN:this.nextPage(event);break;case $.ui.keyCode.HOME:this._move("first","first",event);break;case $.ui.keyCode.END:this._move("last","last",event);break;case $.ui.keyCode.UP:this.previous(event);break;case $.ui.keyCode.DOWN:this.next(event);break;case $.ui.keyCode.LEFT:this.collapse(event);break;case $.ui.keyCode.RIGHT:if(this.active&&!this.active.is(".ui-state-disabled")){this.expand(event);}
break;case $.ui.keyCode.ENTER:case $.ui.keyCode.SPACE:this._activate(event);break;case $.ui.keyCode.ESCAPE:this.collapse(event);break;default:preventDefault=false;prev=this.previousFilter||"";skip=false;character=event.keyCode>=96&&event.keyCode<=105?(event.keyCode-96).toString():String.fromCharCode(event.keyCode);clearTimeout(this.filterTimer);if(character===prev){skip=true;}else{character=prev+character;}
match=this._filterMenuItems(character);match=skip&&match.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):match;if(!match.length){character=String.fromCharCode(event.keyCode);match=this._filterMenuItems(character);}
if(match.length){this.focus(event,match);this.previousFilter=character;this.filterTimer=this._delay(function(){delete this.previousFilter;},1000);}else{delete this.previousFilter;}}
if(preventDefault){event.preventDefault();}},_activate:function(event){if(this.active&&!this.active.is(".ui-state-disabled")){if(this.active.children("[aria-haspopup='true']").length){this.expand(event);}else{this.select(event);}}},refresh:function(){var menus,items,newSubmenus,newItems,newWrappers,that=this,icon=this.options.icons.submenu,submenus=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length);newSubmenus=submenus.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var menu=$(this),item=menu.prev(),submenuCaret=$("<span>").data("ui-menu-submenu-caret",true);that._addClass(submenuCaret,"ui-menu-icon","ui-icon "+icon);item.attr("aria-haspopup","true").prepend(submenuCaret);menu.attr("aria-labelledby",item.attr("id"));});this._addClass(newSubmenus,"ui-menu","ui-widget ui-widget-content ui-front");menus=submenus.add(this.element);items=menus.find(this.options.items);items.not(".ui-menu-item").each(function(){var item=$(this);if(that._isDivider(item)){that._addClass(item,"ui-menu-divider","ui-widget-content");}});newItems=items.not(".ui-menu-item, .ui-menu-divider");newWrappers=newItems.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()});this._addClass(newItems,"ui-menu-item")._addClass(newWrappers,"ui-menu-item-wrapper");items.filter(".ui-state-disabled").attr("aria-disabled","true");if(this.active&&!$.contains(this.element[0],this.active[0])){this.blur();}},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role];},_setOption:function(key,value){if(key==="icons"){var icons=this.element.find(".ui-menu-icon");this._removeClass(icons,null,this.options.icons.submenu)._addClass(icons,null,value.submenu);}
this._super(key,value);},_setOptionDisabled:function(value){this._super(value);this.element.attr("aria-disabled",String(value));this._toggleClass(null,"ui-state-disabled",!!value);},focus:function(event,item){var nested,focused,activeParent;this.blur(event,event&&event.type==="focus");this._scrollIntoView(item);this.active=item.first();focused=this.active.children(".ui-menu-item-wrapper");this._addClass(focused,null,"ui-state-active");if(this.options.role){this.element.attr("aria-activedescendant",focused.attr("id"));}
activeParent=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper");this._addClass(activeParent,null,"ui-state-active");if(event&&event.type==="keydown"){this._close();}else{this.timer=this._delay(function(){this._close();},this.delay);}
nested=item.children(".ui-menu");if(nested.length&&event&&(/^mouse/.test(event.type))){this._startOpening(nested);}
this.activeMenu=item.parent();this._trigger("focus",event,{item:item});},_scrollIntoView:function(item){var borderTop,paddingTop,offset,scroll,elementHeight,itemHeight;if(this._hasScroll()){borderTop=parseFloat($.css(this.activeMenu[0],"borderTopWidth"))||0;paddingTop=parseFloat($.css(this.activeMenu[0],"paddingTop"))||0;offset=item.offset().top-this.activeMenu.offset().top-borderTop-paddingTop;scroll=this.activeMenu.scrollTop();elementHeight=this.activeMenu.height();itemHeight=item.outerHeight();if(offset<0){this.activeMenu.scrollTop(scroll+offset);}else if(offset+itemHeight>elementHeight){this.activeMenu.scrollTop(scroll+offset-elementHeight+itemHeight);}}},blur:function(event,fromFocus){if(!fromFocus){clearTimeout(this.timer);}
if(!this.active){return;}
this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active");this._trigger("blur",event,{item:this.active});this.active=null;},_startOpening:function(submenu){clearTimeout(this.timer);if(submenu.attr("aria-hidden")!=="true"){return;}
this.timer=this._delay(function(){this._close();this._open(submenu);},this.delay);},_open:function(submenu){var position=$.extend({of:this.active},this.options.position);clearTimeout(this.timer);this.element.find(".ui-menu").not(submenu.parents(".ui-menu")).hide().attr("aria-hidden","true");submenu.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(position);},collapseAll:function(event,all){clearTimeout(this.timer);this.timer=this._delay(function(){var currentMenu=all?this.element:$(event&&event.target).closest(this.element.find(".ui-menu"));if(!currentMenu.length){currentMenu=this.element;}
this._close(currentMenu);this.blur(event);this._removeClass(currentMenu.find(".ui-state-active"),null,"ui-state-active");this.activeMenu=currentMenu;},all?0:this.delay);},_close:function(startMenu){if(!startMenu){startMenu=this.active?this.active.parent():this.element;}
startMenu.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false");},_closeOnDocumentClick:function(event){return!$(event.target).closest(".ui-menu").length;},_isDivider:function(item){return!/[^\-\u2014\u2013\s]/.test(item.text());},collapse:function(event){var newItem=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(newItem&&newItem.length){this._close();this.focus(event,newItem);}},expand:function(event){var newItem=this.active&&this._menuItems(this.active.children(".ui-menu")).first();if(newItem&&newItem.length){this._open(newItem.parent());this._delay(function(){this.focus(event,newItem);});}},next:function(event){this._move("next","first",event);},previous:function(event){this._move("prev","last",event);},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length;},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length;},_menuItems:function(menu){return(menu||this.element).find(this.options.items).filter(".ui-menu-item");},_move:function(direction,filter,event){var next;if(this.active){if(direction==="first"||direction==="last"){next=this.active
[direction==="first"?"prevAll":"nextAll"](".ui-menu-item").last();}else{next=this.active
[direction+"All"](".ui-menu-item").first();}}
if(!next||!next.length||!this.active){next=this._menuItems(this.activeMenu)[filter]();}
this.focus(event,next);},nextPage:function(event){var item,base,height;if(!this.active){this.next(event);return;}
if(this.isLastItem()){return;}
if(this._hasScroll()){base=this.active.offset().top;height=this.element.innerHeight();if($.fn.jquery.indexOf("3.2.")===0){height+=this.element[0].offsetHeight-this.element.outerHeight();}
this.active.nextAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base-height<0;});this.focus(event,item);}else{this.focus(event,this._menuItems(this.activeMenu)
[!this.active?"first":"last"]());}},previousPage:function(event){var item,base,height;if(!this.active){this.next(event);return;}
if(this.isFirstItem()){return;}
if(this._hasScroll()){base=this.active.offset().top;height=this.element.innerHeight();if($.fn.jquery.indexOf("3.2.")===0){height+=this.element[0].offsetHeight-this.element.outerHeight();}
this.active.prevAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base+height>0;});this.focus(event,item);}else{this.focus(event,this._menuItems(this.activeMenu).first());}},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight");},select:function(event){this.active=this.active||$(event.target).closest(".ui-menu-item");var ui={item:this.active};if(!this.active.has(".ui-menu").length){this.collapseAll(event,true);}
this._trigger("select",event,ui);},_filterMenuItems:function(character){var escapedCharacter=character.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),regex=new RegExp("^"+escapedCharacter,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return regex.test(String.prototype.trim.call($(this).children(".ui-menu-item-wrapper").text()));});}});$.widget("ui.autocomplete",{version:"1.13.2",defaultElement:"<input>",options:{appendTo:null,autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var suppressKeyPress,suppressKeyPressRepeat,suppressInput,nodeName=this.element[0].nodeName.toLowerCase(),isTextarea=nodeName==="textarea",isInput=nodeName==="input";this.isMultiLine=isTextarea||!isInput&&this._isContentEditable(this.element);this.valueMethod=this.element[isTextarea||isInput?"val":"text"];this.isNewMenu=true;this._addClass("ui-autocomplete-input");this.element.attr("autocomplete","off");this._on(this.element,{keydown:function(event){if(this.element.prop("readOnly")){suppressKeyPress=true;suppressInput=true;suppressKeyPressRepeat=true;return;}
suppressKeyPress=false;suppressInput=false;suppressKeyPressRepeat=false;var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:suppressKeyPress=true;this._move("previousPage",event);break;case keyCode.PAGE_DOWN:suppressKeyPress=true;this._move("nextPage",event);break;case keyCode.UP:suppressKeyPress=true;this._keyEvent("previous",event);break;case keyCode.DOWN:suppressKeyPress=true;this._keyEvent("next",event);break;case keyCode.ENTER:if(this.menu.active){suppressKeyPress=true;event.preventDefault();this.menu.select(event);}
break;case keyCode.TAB:if(this.menu.active){this.menu.select(event);}
break;case keyCode.ESCAPE:if(this.menu.element.is(":visible")){if(!this.isMultiLine){this._value(this.term);}
this.close(event);event.preventDefault();}
break;default:suppressKeyPressRepeat=true;this._searchTimeout(event);break;}},keypress:function(event){if(suppressKeyPress){suppressKeyPress=false;if(!this.isMultiLine||this.menu.element.is(":visible")){event.preventDefault();}
return;}
if(suppressKeyPressRepeat){return;}
var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:this._move("previousPage",event);break;case keyCode.PAGE_DOWN:this._move("nextPage",event);break;case keyCode.UP:this._keyEvent("previous",event);break;case keyCode.DOWN:this._keyEvent("next",event);break;}},input:function(event){if(suppressInput){suppressInput=false;event.preventDefault();return;}
this._searchTimeout(event);},focus:function(){this.selectedItem=null;this.previous=this._value();},blur:function(event){clearTimeout(this.searching);this.close(event);this._change(event);}});this._initSource();this.menu=$("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().attr({"unselectable":"on"}).menu("instance");this._addClass(this.menu.element,"ui-autocomplete","ui-front");this._on(this.menu.element,{mousedown:function(event){event.preventDefault();},menufocus:function(event,ui){var label,item;if(this.isNewMenu){this.isNewMenu=false;if(event.originalEvent&&/^mouse/.test(event.originalEvent.type)){this.menu.blur();this.document.one("mousemove",function(){$(event.target).trigger(event.originalEvent);});return;}}
item=ui.item.data("ui-autocomplete-item");if(false!==this._trigger("focus",event,{item:item})){if(event.originalEvent&&/^key/.test(event.originalEvent.type)){this._value(item.value);}}
label=ui.item.attr("aria-label")||item.value;if(label&&String.prototype.trim.call(label).length){clearTimeout(this.liveRegionTimer);this.liveRegionTimer=this._delay(function(){this.liveRegion.html($("<div>").text(label));},100);}},menuselect:function(event,ui){var item=ui.item.data("ui-autocomplete-item"),previous=this.previous;if(this.element[0]!==$.ui.safeActiveElement(this.document[0])){this.element.trigger("focus");this.previous=previous;this._delay(function(){this.previous=previous;this.selectedItem=item;});}
if(false!==this._trigger("select",event,{item:item})){this._value(item.value);}
this.term=this._value();this.close(event);this.selectedItem=item;}});this.liveRegion=$("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body);this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible");this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete");}});},_destroy:function(){clearTimeout(this.searching);this.element.removeAttr("autocomplete");this.menu.element.remove();this.liveRegion.remove();},_setOption:function(key,value){this._super(key,value);if(key==="source"){this._initSource();}
if(key==="appendTo"){this.menu.element.appendTo(this._appendTo());}
if(key==="disabled"&&value&&this.xhr){this.xhr.abort();}},_isEventTargetInWidget:function(event){var menuElement=this.menu.element[0];return event.target===this.element[0]||event.target===menuElement||$.contains(menuElement,event.target);},_closeOnClickOutside:function(event){if(!this._isEventTargetInWidget(event)){this.close();}},_appendTo:function(){var element=this.options.appendTo;if(element){element=element.jquery||element.nodeType?$(element):this.document.find(element).eq(0);}
if(!element||!element[0]){element=this.element.closest(".ui-front, dialog");}
if(!element.length){element=this.document[0].body;}
return element;},_initSource:function(){var array,url,that=this;if(Array.isArray(this.options.source)){array=this.options.source;this.source=function(request,response){response($.ui.autocomplete.filter(array,request.term));};}else if(typeof this.options.source==="string"){url=this.options.source;this.source=function(request,response){if(that.xhr){that.xhr.abort();}
that.xhr=$.ajax({url:url,data:request,dataType:"json",success:function(data){response(data);},error:function(){response([]);}});};}else{this.source=this.options.source;}},_searchTimeout:function(event){clearTimeout(this.searching);this.searching=this._delay(function(){var equalValues=this.term===this._value(),menuVisible=this.menu.element.is(":visible"),modifierKey=event.altKey||event.ctrlKey||event.metaKey||event.shiftKey;if(!equalValues||(equalValues&&!menuVisible&&!modifierKey)){this.selectedItem=null;this.search(null,event);}},this.options.delay);},search:function(value,event){value=value!=null?value:this._value();this.term=this._value();if(value.length<this.options.minLength){return this.close(event);}
if(this._trigger("search",event)===false){return;}
return this._search(value);},_search:function(value){this.pending++;this._addClass("ui-autocomplete-loading");this.cancelSearch=false;this.source({term:value},this._response());},_response:function(){var index=++this.requestIndex;return function(content){if(index===this.requestIndex){this.__response(content);}
this.pending--;if(!this.pending){this._removeClass("ui-autocomplete-loading");}}.bind(this);},__response:function(content){if(content){content=this._normalize(content);}
this._trigger("response",null,{content:content});if(!this.options.disabled&&content&&content.length&&!this.cancelSearch){this._suggest(content);this._trigger("open");}else{this._close();}},close:function(event){this.cancelSearch=true;this._close(event);},_close:function(event){this._off(this.document,"mousedown");if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.blur();this.isNewMenu=true;this._trigger("close",event);}},_change:function(event){if(this.previous!==this._value()){this._trigger("change",event,{item:this.selectedItem});}},_normalize:function(items){if(items.length&&items[0].label&&items[0].value){return items;}
return $.map(items,function(item){if(typeof item==="string"){return{label:item,value:item};}
return $.extend({},item,{label:item.label||item.value,value:item.value||item.label});});},_suggest:function(items){var ul=this.menu.element.empty();this._renderMenu(ul,items);this.isNewMenu=true;this.menu.refresh();ul.show();this._resizeMenu();ul.position($.extend({of:this.element},this.options.position));if(this.options.autoFocus){this.menu.next();}
this._on(this.document,{mousedown:"_closeOnClickOutside"});},_resizeMenu:function(){var ul=this.menu.element;ul.outerWidth(Math.max(ul.width("").outerWidth()+1,this.element.outerWidth()));},_renderMenu:function(ul,items){var that=this;$.each(items,function(index,item){that._renderItemData(ul,item);});},_renderItemData:function(ul,item){return this._renderItem(ul,item).data("ui-autocomplete-item",item);},_renderItem:function(ul,item){return $("<li>").append($("<div>").text(item.label)).appendTo(ul);},_move:function(direction,event){if(!this.menu.element.is(":visible")){this.search(null,event);return;}
if(this.menu.isFirstItem()&&/^previous/.test(direction)||this.menu.isLastItem()&&/^next/.test(direction)){if(!this.isMultiLine){this._value(this.term);}
this.menu.blur();return;}
this.menu[direction](event);},widget:function(){return this.menu.element;},_value:function(){return this.valueMethod.apply(this.element,arguments);},_keyEvent:function(keyEvent,event){if(!this.isMultiLine||this.menu.element.is(":visible")){this._move(keyEvent,event);event.preventDefault();}},_isContentEditable:function(element){if(!element.length){return false;}
var editable=element.prop("contentEditable");if(editable==="inherit"){return this._isContentEditable(element.parent());}
return editable==="true";}});$.extend($.ui.autocomplete,{escapeRegex:function(value){return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");},filter:function(array,term){var matcher=new RegExp($.ui.autocomplete.escapeRegex(term),"i");return $.grep(array,function(value){return matcher.test(value.label||value.value||value);});}});$.widget("ui.autocomplete",$.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(amount){return amount+(amount>1?" results are":" result is")+" available, use up and down arrow keys to navigate.";}}},__response:function(content){var message;this._superApply(arguments);if(this.options.disabled||this.cancelSearch){return;}
if(content&&content.length){message=this.options.messages.results(content.length);}else{message=this.options.messages.noResults;}
clearTimeout(this.liveRegionTimer);this.liveRegionTimer=this._delay(function(){this.liveRegion.html($("<div>").text(message));},100);}});var widgetsAutocomplete=$.ui.autocomplete;var controlgroupCornerRegex=/ui-corner-([a-z]){2,6}/g;var widgetsControlgroup=$.widget("ui.controlgroup",{version:"1.13.2",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:true,items:{"button":"input[type=button], input[type=submit], input[type=reset], button, a","controlgroupLabel":".ui-controlgroup-label","checkboxradio":"input[type='checkbox'], input[type='radio']","selectmenu":"select","spinner":".ui-spinner-input"}},_create:function(){this._enhance();},_enhance:function(){this.element.attr("role","toolbar");this.refresh();},_destroy:function(){this._callChildMethod("destroy");this.childWidgets.removeData("ui-controlgroup-data");this.element.removeAttr("role");if(this.options.items.controlgroupLabel){this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap();}},_initWidgets:function(){var that=this,childWidgets=[];$.each(this.options.items,function(widget,selector){var labels;var options={};if(!selector){return;}
if(widget==="controlgroupLabel"){labels=that.element.find(selector);labels.each(function(){var element=$(this);if(element.children(".ui-controlgroup-label-contents").length){return;}
element.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>");});that._addClass(labels,null,"ui-widget ui-widget-content ui-state-default");childWidgets=childWidgets.concat(labels.get());return;}
if(!$.fn[widget]){return;}
if(that["_"+widget+"Options"]){options=that["_"+widget+"Options"]("middle");}else{options={classes:{}};}
that.element.find(selector).each(function(){var element=$(this);var instance=element[widget]("instance");var instanceOptions=$.widget.extend({},options);if(widget==="button"&&element.parent(".ui-spinner").length){return;}
if(!instance){instance=element[widget]()[widget]("instance");}
if(instance){instanceOptions.classes=that._resolveClassesValues(instanceOptions.classes,instance);}
element[widget](instanceOptions);var widgetElement=element[widget]("widget");$.data(widgetElement[0],"ui-controlgroup-data",instance?instance:element[widget]("instance"));childWidgets.push(widgetElement[0]);});});this.childWidgets=$($.uniqueSort(childWidgets));this._addClass(this.childWidgets,"ui-controlgroup-item");},_callChildMethod:function(method){this.childWidgets.each(function(){var element=$(this),data=element.data("ui-controlgroup-data");if(data&&data[method]){data[method]();}});},_updateCornerClass:function(element,position){var remove="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all";var add=this._buildSimpleOptions(position,"label").classes.label;this._removeClass(element,null,remove);this._addClass(element,null,add);},_buildSimpleOptions:function(position,key){var direction=this.options.direction==="vertical";var result={classes:{}};result.classes[key]={"middle":"","first":"ui-corner-"+(direction?"top":"left"),"last":"ui-corner-"+(direction?"bottom":"right"),"only":"ui-corner-all"}[position];return result;},_spinnerOptions:function(position){var options=this._buildSimpleOptions(position,"ui-spinner");options.classes["ui-spinner-up"]="";options.classes["ui-spinner-down"]="";return options;},_buttonOptions:function(position){return this._buildSimpleOptions(position,"ui-button");},_checkboxradioOptions:function(position){return this._buildSimpleOptions(position,"ui-checkboxradio-label");},_selectmenuOptions:function(position){var direction=this.options.direction==="vertical";return{width:direction?"auto":false,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(direction?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(direction?"top":"left")},last:{"ui-selectmenu-button-open":direction?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(direction?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[position]};},_resolveClassesValues:function(classes,instance){var result={};$.each(classes,function(key){var current=instance.options.classes[key]||"";current=String.prototype.trim.call(current.replace(controlgroupCornerRegex,""));result[key]=(current+" "+classes[key]).replace(/\s+/g," ");});return result;},_setOption:function(key,value){if(key==="direction"){this._removeClass("ui-controlgroup-"+this.options.direction);}
this._super(key,value);if(key==="disabled"){this._callChildMethod(value?"disable":"enable");return;}
this.refresh();},refresh:function(){var children,that=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction);if(this.options.direction==="horizontal"){this._addClass(null,"ui-helper-clearfix");}
this._initWidgets();children=this.childWidgets;if(this.options.onlyVisible){children=children.filter(":visible");}
if(children.length){$.each(["first","last"],function(index,value){var instance=children[value]().data("ui-controlgroup-data");if(instance&&that["_"+instance.widgetName+"Options"]){var options=that["_"+instance.widgetName+"Options"](children.length===1?"only":value);options.classes=that._resolveClassesValues(options.classes,instance);instance.element[instance.widgetName](options);}else{that._updateCornerClass(children[value](),value);}});this._callChildMethod("refresh");}}});$.widget("ui.checkboxradio",[$.ui.formResetMixin,{version:"1.13.2",options:{disabled:null,label:null,icon:true,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var disabled,labels,labelContents;var options=this._super()||{};this._readType();labels=this.element.labels();this.label=$(labels[labels.length-1]);if(!this.label.length){$.error("No label found for checkboxradio widget");}
this.originalLabel="";labelContents=this.label.contents().not(this.element[0]);if(labelContents.length){this.originalLabel+=labelContents.clone().wrapAll("<div></div>").parent().html();}
if(this.originalLabel){options.label=this.originalLabel;}
disabled=this.element[0].disabled;if(disabled!=null){options.disabled=disabled;}
return options;},_create:function(){var checked=this.element[0].checked;this._bindFormResetHandler();if(this.options.disabled==null){this.options.disabled=this.element[0].disabled;}
this._setOption("disabled",this.options.disabled);this._addClass("ui-checkboxradio","ui-helper-hidden-accessible");this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget");if(this.type==="radio"){this._addClass(this.label,"ui-checkboxradio-radio-label");}
if(this.options.label&&this.options.label!==this.originalLabel){this._updateLabel();}else if(this.originalLabel){this.options.label=this.originalLabel;}
this._enhance();if(checked){this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active");}
this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus");},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus");}});},_readType:function(){var nodeName=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type;if(nodeName!=="input"||!/radio|checkbox/.test(this.type)){$.error("Can't create checkboxradio on element.nodeName="+nodeName+" and element.type="+this.type);}},_enhance:function(){this._updateIcon(this.element[0].checked);},widget:function(){return this.label;},_getRadioGroup:function(){var group;var name=this.element[0].name;var nameSelector="input[name='"+$.escapeSelector(name)+"']";if(!name){return $([]);}
if(this.form.length){group=$(this.form[0].elements).filter(nameSelector);}else{group=$(nameSelector).filter(function(){return $(this)._form().length===0;});}
return group.not(this.element);},_toggleClasses:function(){var checked=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",checked);if(this.options.icon&&this.type==="checkbox"){this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",checked)._toggleClass(this.icon,null,"ui-icon-blank",!checked);}
if(this.type==="radio"){this._getRadioGroup().each(function(){var instance=$(this).checkboxradio("instance");if(instance){instance._removeClass(instance.label,"ui-checkboxradio-checked","ui-state-active");}});}},_destroy:function(){this._unbindFormResetHandler();if(this.icon){this.icon.remove();this.iconSpace.remove();}},_setOption:function(key,value){if(key==="label"&&!value){return;}
this._super(key,value);if(key==="disabled"){this._toggleClass(this.label,null,"ui-state-disabled",value);this.element[0].disabled=value;return;}
this.refresh();},_updateIcon:function(checked){var toAdd="ui-icon ui-icon-background ";if(this.options.icon){if(!this.icon){this.icon=$("<span>");this.iconSpace=$("<span> </span>");this._addClass(this.iconSpace,"ui-checkboxradio-icon-space");}
if(this.type==="checkbox"){toAdd+=checked?"ui-icon-check ui-state-checked":"ui-icon-blank";this._removeClass(this.icon,null,checked?"ui-icon-blank":"ui-icon-check");}else{toAdd+="ui-icon-blank";}
this._addClass(this.icon,"ui-checkboxradio-icon",toAdd);if(!checked){this._removeClass(this.icon,null,"ui-icon-check ui-state-checked");}
this.icon.prependTo(this.label).after(this.iconSpace);}else if(this.icon!==undefined){this.icon.remove();this.iconSpace.remove();delete this.icon;}},_updateLabel:function(){var contents=this.label.contents().not(this.element[0]);if(this.icon){contents=contents.not(this.icon[0]);}
if(this.iconSpace){contents=contents.not(this.iconSpace[0]);}
contents.remove();this.label.append(this.options.label);},refresh:function(){var checked=this.element[0].checked,isDisabled=this.element[0].disabled;this._updateIcon(checked);this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",checked);if(this.options.label!==null){this._updateLabel();}
if(isDisabled!==this.options.disabled){this._setOptions({"disabled":isDisabled});}}}]);var widgetsCheckboxradio=$.ui.checkboxradio;$.widget("ui.button",{version:"1.13.2",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:true},_getCreateOptions:function(){var disabled,options=this._super()||{};this.isInput=this.element.is("input");disabled=this.element[0].disabled;if(disabled!=null){options.disabled=disabled;}
this.originalLabel=this.isInput?this.element.val():this.element.html();if(this.originalLabel){options.label=this.originalLabel;}
return options;},_create:function(){if(!this.option.showLabel&!this.options.icon){this.options.showLabel=true;}
if(this.options.disabled==null){this.options.disabled=this.element[0].disabled||false;}
this.hasTitle=!!this.element.attr("title");if(this.options.label&&this.options.label!==this.originalLabel){if(this.isInput){this.element.val(this.options.label);}else{this.element.html(this.options.label);}}
this._addClass("ui-button","ui-widget");this._setOption("disabled",this.options.disabled);this._enhance();if(this.element.is("a")){this._on({"keyup":function(event){if(event.keyCode===$.ui.keyCode.SPACE){event.preventDefault();if(this.element[0].click){this.element[0].click();}else{this.element.trigger("click");}}}});}},_enhance:function(){if(!this.element.is("button")){this.element.attr("role","button");}
if(this.options.icon){this._updateIcon("icon",this.options.icon);this._updateTooltip();}},_updateTooltip:function(){this.title=this.element.attr("title");if(!this.options.showLabel&&!this.title){this.element.attr("title",this.options.label);}},_updateIcon:function(option,value){var icon=option!=="iconPosition",position=icon?this.options.iconPosition:value,displayBlock=position==="top"||position==="bottom";if(!this.icon){this.icon=$("<span>");this._addClass(this.icon,"ui-button-icon","ui-icon");if(!this.options.showLabel){this._addClass("ui-button-icon-only");}}else if(icon){this._removeClass(this.icon,null,this.options.icon);}
if(icon){this._addClass(this.icon,null,value);}
this._attachIcon(position);if(displayBlock){this._addClass(this.icon,null,"ui-widget-icon-block");if(this.iconSpace){this.iconSpace.remove();}}else{if(!this.iconSpace){this.iconSpace=$("<span> </span>");this._addClass(this.iconSpace,"ui-button-icon-space");}
this._removeClass(this.icon,null,"ui-wiget-icon-block");this._attachIconSpace(position);}},_destroy:function(){this.element.removeAttr("role");if(this.icon){this.icon.remove();}
if(this.iconSpace){this.iconSpace.remove();}
if(!this.hasTitle){this.element.removeAttr("title");}},_attachIconSpace:function(iconPosition){this.icon[/^(?:end|bottom)/.test(iconPosition)?"before":"after"](this.iconSpace);},_attachIcon:function(iconPosition){this.element[/^(?:end|bottom)/.test(iconPosition)?"append":"prepend"](this.icon);},_setOptions:function(options){var newShowLabel=options.showLabel===undefined?this.options.showLabel:options.showLabel,newIcon=options.icon===undefined?this.options.icon:options.icon;if(!newShowLabel&&!newIcon){options.showLabel=true;}
this._super(options);},_setOption:function(key,value){if(key==="icon"){if(value){this._updateIcon(key,value);}else if(this.icon){this.icon.remove();if(this.iconSpace){this.iconSpace.remove();}}}
if(key==="iconPosition"){this._updateIcon(key,value);}
if(key==="showLabel"){this._toggleClass("ui-button-icon-only",null,!value);this._updateTooltip();}
if(key==="label"){if(this.isInput){this.element.val(value);}else{this.element.html(value);if(this.icon){this._attachIcon(this.options.iconPosition);this._attachIconSpace(this.options.iconPosition);}}}
this._super(key,value);if(key==="disabled"){this._toggleClass(null,"ui-state-disabled",value);this.element[0].disabled=value;if(value){this.element.trigger("blur");}}},refresh:function(){var isDisabled=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");if(isDisabled!==this.options.disabled){this._setOptions({disabled:isDisabled});}
this._updateTooltip();}});if($.uiBackCompat!==false){$.widget("ui.button",$.ui.button,{options:{text:true,icons:{primary:null,secondary:null}},_create:function(){if(this.options.showLabel&&!this.options.text){this.options.showLabel=this.options.text;}
if(!this.options.showLabel&&this.options.text){this.options.text=this.options.showLabel;}
if(!this.options.icon&&(this.options.icons.primary||this.options.icons.secondary)){if(this.options.icons.primary){this.options.icon=this.options.icons.primary;}else{this.options.icon=this.options.icons.secondary;this.options.iconPosition="end";}}else if(this.options.icon){this.options.icons.primary=this.options.icon;}
this._super();},_setOption:function(key,value){if(key==="text"){this._super("showLabel",value);return;}
if(key==="showLabel"){this.options.text=value;}
if(key==="icon"){this.options.icons.primary=value;}
if(key==="icons"){if(value.primary){this._super("icon",value.primary);this._super("iconPosition","beginning");}else if(value.secondary){this._super("icon",value.secondary);this._super("iconPosition","end");}}
this._superApply(arguments);}});$.fn.button=(function(orig){return function(options){var isMethodCall=typeof options==="string";var args=Array.prototype.slice.call(arguments,1);var returnValue=this;if(isMethodCall){if(!this.length&&options==="instance"){returnValue=undefined;}else{this.each(function(){var methodValue;var type=$(this).attr("type");var name=type!=="checkbox"&&type!=="radio"?"button":"checkboxradio";var instance=$.data(this,"ui-"+name);if(options==="instance"){returnValue=instance;return false;}
if(!instance){return $.error("cannot call methods on button"+" prior to initialization; "+"attempted to call method '"+options+"'");}
if(typeof instance[options]!=="function"||options.charAt(0)==="_"){return $.error("no such method '"+options+"' for button"+" widget instance");}
methodValue=instance[options].apply(instance,args);if(methodValue!==instance&&methodValue!==undefined){returnValue=methodValue&&methodValue.jquery?returnValue.pushStack(methodValue.get()):methodValue;return false;}});}}else{if(args.length){options=$.widget.extend.apply(null,[options].concat(args));}
this.each(function(){var type=$(this).attr("type");var name=type!=="checkbox"&&type!=="radio"?"button":"checkboxradio";var instance=$.data(this,"ui-"+name);if(instance){instance.option(options||{});if(instance._init){instance._init();}}else{if(name==="button"){orig.call($(this),options);return;}
$(this).checkboxradio($.extend({icon:false},options));}});}
return returnValue;};})($.fn.button);$.fn.buttonset=function(){if(!$.ui.controlgroup){$.error("Controlgroup widget missing");}
if(arguments[0]==="option"&&arguments[1]==="items"&&arguments[2]){return this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]);}
if(arguments[0]==="option"&&arguments[1]==="items"){return this.controlgroup.apply(this,[arguments[0],"items.button"]);}
if(typeof arguments[0]==="object"&&arguments[0].items){arguments[0].items={button:arguments[0].items};}
return this.controlgroup.apply(this,arguments);};}
var widgetsButton=$.ui.button;$.extend($.ui,{datepicker:{version:"1.13.2"}});var datepicker_instActive;function datepicker_getZindex(elem){var position,value;while(elem.length&&elem[0]!==document){position=elem.css("position");if(position==="absolute"||position==="relative"||position==="fixed"){value=parseInt(elem.css("zIndex"),10);if(!isNaN(value)&&value!==0){return value;}}
elem=elem.parent();}
return 0;}
function Datepicker(){this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:"",selectMonthLabel:"Select month",selectYearLabel:"Select year"};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,onUpdateDatepicker:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};$.extend(this._defaults,this.regional[""]);this.regional.en=$.extend(true,{},this.regional[""]);this.regional["en-US"]=$.extend(true,{},this.regional.en);this.dpDiv=datepicker_bindHover($("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"));}
$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv;},setDefaults:function(settings){datepicker_extendRemove(this._defaults,settings||{});return this;},_attachDatepicker:function(target,settings){var nodeName,inline,inst;nodeName=target.nodeName.toLowerCase();inline=(nodeName==="div"||nodeName==="span");if(!target.id){this.uuid+=1;target.id="dp"+this.uuid;}
inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{});if(nodeName==="input"){this._connectDatepicker(target,inst);}else if(inline){this._inlineDatepicker(target,inst);}},_newInst:function(target,inline){var id=target[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:datepicker_bindHover($("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))};},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return;}
this._attachments(input,inst);input.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp);this._autoSize(inst);$.data(target,"datepicker",inst);if(inst.settings.disabled){this._disableDatepicker(target);}},_attachments:function(input,inst){var showOn,buttonText,buttonImage,appendText=this._get(inst,"appendText"),isRTL=this._get(inst,"isRTL");if(inst.append){inst.append.remove();}
if(appendText){inst.append=$("<span>").addClass(this._appendClass).text(appendText);input[isRTL?"before":"after"](inst.append);}
input.off("focus",this._showDatepicker);if(inst.trigger){inst.trigger.remove();}
showOn=this._get(inst,"showOn");if(showOn==="focus"||showOn==="both"){input.on("focus",this._showDatepicker);}
if(showOn==="button"||showOn==="both"){buttonText=this._get(inst,"buttonText");buttonImage=this._get(inst,"buttonImage");if(this._get(inst,"buttonImageOnly")){inst.trigger=$("<img>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText});}else{inst.trigger=$("<button type='button'>").addClass(this._triggerClass);if(buttonImage){inst.trigger.html($("<img>").attr({src:buttonImage,alt:buttonText,title:buttonText}));}else{inst.trigger.text(buttonText);}}
input[isRTL?"before":"after"](inst.trigger);inst.trigger.on("click",function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput===input[0]){$.datepicker._hideDatepicker();}else if($.datepicker._datepickerShowing&&$.datepicker._lastInput!==input[0]){$.datepicker._hideDatepicker();$.datepicker._showDatepicker(input[0]);}else{$.datepicker._showDatepicker(input[0]);}
return false;});}},_autoSize:function(inst){if(this._get(inst,"autoSize")&&!inst.inline){var findMax,max,maxI,i,date=new Date(2009,12-1,20),dateFormat=this._get(inst,"dateFormat");if(dateFormat.match(/[DM]/)){findMax=function(names){max=0;maxI=0;for(i=0;i<names.length;i++){if(names[i].length>max){max=names[i].length;maxI=i;}}
return maxI;};date.setMonth(findMax(this._get(inst,(dateFormat.match(/MM/)?"monthNames":"monthNamesShort"))));date.setDate(findMax(this._get(inst,(dateFormat.match(/DD/)?"dayNames":"dayNamesShort")))+20-date.getDay());}
inst.input.attr("size",this._formatDate(inst,date).length);}},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return;}
divSpan.addClass(this.markerClassName).append(inst.dpDiv);$.data(target,"datepicker",inst);this._setDate(inst,this._getDefaultDate(inst),true);this._updateDatepicker(inst);this._updateAlternate(inst);if(inst.settings.disabled){this._disableDatepicker(target);}
inst.dpDiv.css("display","block");},_dialogDatepicker:function(input,date,onSelect,settings,pos){var id,browserWidth,browserHeight,scrollX,scrollY,inst=this._dialogInst;if(!inst){this.uuid+=1;id="dp"+this.uuid;this._dialogInput=$("<input type='text' id='"+id+"' style='position: absolute; top: -100px; width: 0px;'/>");this._dialogInput.on("keydown",this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],"datepicker",inst);}
datepicker_extendRemove(inst.settings,settings||{});date=(date&&date.constructor===Date?this._formatDate(inst,date):date);this._dialogInput.val(date);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){browserWidth=document.documentElement.clientWidth;browserHeight=document.documentElement.clientHeight;scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY];}
this._dialogInput.css("left",(this._pos[0]+20)+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv);}
$.data(this._dialogInput[0],"datepicker",inst);return this;},_destroyDatepicker:function(target){var nodeName,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return;}
nodeName=target.nodeName.toLowerCase();$.removeData(target,"datepicker");if(nodeName==="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp);}else if(nodeName==="div"||nodeName==="span"){$target.removeClass(this.markerClassName).empty();}
if(datepicker_instActive===inst){datepicker_instActive=null;this._curInst=null;}},_enableDatepicker:function(target){var nodeName,inline,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return;}
nodeName=target.nodeName.toLowerCase();if(nodeName==="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false;}).end().filter("img").css({opacity:"1.0",cursor:""});}else if(nodeName==="div"||nodeName==="span"){inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled");inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",false);}
this._disabledInputs=$.map(this._disabledInputs,function(value){return(value===target?null:value);});},_disableDatepicker:function(target){var nodeName,inline,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return;}
nodeName=target.nodeName.toLowerCase();if(nodeName==="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true;}).end().filter("img").css({opacity:"0.5",cursor:"default"});}else if(nodeName==="div"||nodeName==="span"){inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled");inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",true);}
this._disabledInputs=$.map(this._disabledInputs,function(value){return(value===target?null:value);});this._disabledInputs[this._disabledInputs.length]=target;},_isDisabledDatepicker:function(target){if(!target){return false;}
for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]===target){return true;}}
return false;},_getInst:function(target){try{return $.data(target,"datepicker");}catch(err){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(target,name,value){var settings,date,minDate,maxDate,inst=this._getInst(target);if(arguments.length===2&&typeof name==="string"){return(name==="defaults"?$.extend({},$.datepicker._defaults):(inst?(name==="all"?$.extend({},inst.settings):this._get(inst,name)):null));}
settings=name||{};if(typeof name==="string"){settings={};settings[name]=value;}
if(inst){if(this._curInst===inst){this._hideDatepicker();}
date=this._getDateDatepicker(target,true);minDate=this._getMinMaxDate(inst,"min");maxDate=this._getMinMaxDate(inst,"max");datepicker_extendRemove(inst.settings,settings);if(minDate!==null&&settings.dateFormat!==undefined&&settings.minDate===undefined){inst.settings.minDate=this._formatDate(inst,minDate);}
if(maxDate!==null&&settings.dateFormat!==undefined&&settings.maxDate===undefined){inst.settings.maxDate=this._formatDate(inst,maxDate);}
if("disabled" in settings){if(settings.disabled){this._disableDatepicker(target);}else{this._enableDatepicker(target);}}
this._attachments($(target),inst);this._autoSize(inst);this._setDate(inst,date);this._updateAlternate(inst);this._updateDatepicker(inst);}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value);},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst);}},_setDateDatepicker:function(target,date){var inst=this._getInst(target);if(inst){this._setDate(inst,date);this._updateDatepicker(inst);this._updateAlternate(inst);}},_getDateDatepicker:function(target,noDefault){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst,noDefault);}
return(inst?this._getDate(inst):null);},_doKeyDown:function(event){var onSelect,dateStr,sel,inst=$.datepicker._getInst(event.target),handled=true,isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker();handled=false;break;case 13:sel=$("td."+$.datepicker._dayOverClass+":not(."+
$.datepicker._currentClass+")",inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0]);}
onSelect=$.datepicker._get(inst,"onSelect");if(onSelect){dateStr=$.datepicker._formatDate(inst);onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst]);}else{$.datepicker._hideDatepicker();}
return false;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target);}
handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target);}
handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D");}
handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");}
break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D");}
handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D");}
handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");}
break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D");}
handled=event.ctrlKey||event.metaKey;break;default:handled=false;}}else if(event.keyCode===36&&event.ctrlKey){$.datepicker._showDatepicker(this);}else{handled=false;}
if(handled){event.preventDefault();event.stopPropagation();}},_doKeyPress:function(event){var chars,chr,inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));chr=String.fromCharCode(event.charCode==null?event.keyCode:event.charCode);return event.ctrlKey||event.metaKey||(chr<" "||!chars||chars.indexOf(chr)>-1);}},_doKeyUp:function(event){var date,inst=$.datepicker._getInst(event.target);if(inst.input.val()!==inst.lastVal){try{date=$.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),(inst.input?inst.input.val():null),$.datepicker._getFormatConfig(inst));if(date){$.datepicker._setDateFromField(inst);$.datepicker._updateAlternate(inst);$.datepicker._updateDatepicker(inst);}}catch(err){}}
return true;},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!=="input"){input=$("input",input.parentNode)[0];}
if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput===input){return;}
var inst,beforeShow,beforeShowSettings,isFixed,offset,showAnim,duration;inst=$.datepicker._getInst(input);if($.datepicker._curInst&&$.datepicker._curInst!==inst){$.datepicker._curInst.dpDiv.stop(true,true);if(inst&&$.datepicker._datepickerShowing){$.datepicker._hideDatepicker($.datepicker._curInst.input[0]);}}
beforeShow=$.datepicker._get(inst,"beforeShow");beforeShowSettings=beforeShow?beforeShow.apply(input,[input,inst]):{};if(beforeShowSettings===false){return;}
datepicker_extendRemove(inst.settings,beforeShowSettings);inst.lastVal=null;$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value="";}
if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight;}
isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")==="fixed";return!isFixed;});offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.dpDiv.empty();inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){showAnim=$.datepicker._get(inst,"showAnim");duration=$.datepicker._get(inst,"duration");inst.dpDiv.css("z-index",datepicker_getZindex($(input))+1);$.datepicker._datepickerShowing=true;if($.effects&&$.effects.effect[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration);}else{inst.dpDiv[showAnim||"show"](showAnim?duration:null);}
if($.datepicker._shouldFocusInput(inst)){inst.input.trigger("focus");}
$.datepicker._curInst=inst;}},_updateDatepicker:function(inst){this.maxRows=4;datepicker_instActive=inst;inst.dpDiv.empty().append(this._generateHTML(inst));this._attachHandlers(inst);var origyearshtml,numMonths=this._getNumberOfMonths(inst),cols=numMonths[1],width=17,activeCell=inst.dpDiv.find("."+this._dayOverClass+" a"),onUpdateDatepicker=$.datepicker._get(inst,"onUpdateDatepicker");if(activeCell.length>0){datepicker_handleMouseover.apply(activeCell.get(0));}
inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em");}
inst.dpDiv[(numMonths[0]!==1||numMonths[1]!==1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst===$.datepicker._curInst&&$.datepicker._datepickerShowing&&$.datepicker._shouldFocusInput(inst)){inst.input.trigger("focus");}
if(inst.yearshtml){origyearshtml=inst.yearshtml;setTimeout(function(){if(origyearshtml===inst.yearshtml&&inst.yearshtml){inst.dpDiv.find("select.ui-datepicker-year").first().replaceWith(inst.yearshtml);}
origyearshtml=inst.yearshtml=null;},0);}
if(onUpdateDatepicker){onUpdateDatepicker.apply((inst.input?inst.input[0]:null),[inst]);}},_shouldFocusInput:function(inst){return inst.input&&inst.input.is(":visible")&&!inst.input.is(":disabled")&&!inst.input.is(":focus");},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth(),dpHeight=inst.dpDiv.outerHeight(),inputWidth=inst.input?inst.input.outerWidth():0,inputHeight=inst.input?inst.input.outerHeight():0,viewWidth=document.documentElement.clientWidth+(isFixed?0:$(document).scrollLeft()),viewHeight=document.documentElement.clientHeight+(isFixed?0:$(document).scrollTop());offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left===inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top===(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=Math.min(offset.left,(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0);offset.top-=Math.min(offset.top,(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(dpHeight+inputHeight):0);return offset;},_findPos:function(obj){var position,inst=this._getInst(obj),isRTL=this._get(inst,"isRTL");while(obj&&(obj.type==="hidden"||obj.nodeType!==1||$.expr.pseudos.hidden(obj))){obj=obj[isRTL?"previousSibling":"nextSibling"];}
position=$(obj).offset();return[position.left,position.top];},_hideDatepicker:function(input){var showAnim,duration,postProcess,onClose,inst=this._curInst;if(!inst||(input&&inst!==$.data(input,"datepicker"))){return;}
if(this._datepickerShowing){showAnim=this._get(inst,"showAnim");duration=this._get(inst,"duration");postProcess=function(){$.datepicker._tidyDialog(inst);};if($.effects&&($.effects.effect[showAnim]||$.effects[showAnim])){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess);}else{inst.dpDiv[(showAnim==="slideDown"?"slideUp":(showAnim==="fadeIn"?"fadeOut":"hide"))]((showAnim?duration:null),postProcess);}
if(!showAnim){postProcess();}
this._datepickerShowing=false;onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst]);}
this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv);}}
this._inDialog=false;}},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar");},_checkExternalClick:function(event){if(!$.datepicker._curInst){return;}
var $target=$(event.target),inst=$.datepicker._getInst($target[0]);if((($target[0].id!==$.datepicker._mainDivId&&$target.parents("#"+$.datepicker._mainDivId).length===0&&!$target.hasClass($.datepicker.markerClassName)&&!$target.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)))||($target.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!==inst)){$.datepicker._hideDatepicker();}},_adjustDate:function(id,offset,period){var target=$(id),inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return;}
this._adjustInstDate(inst,offset,period);this._updateDatepicker(inst);},_gotoToday:function(id){var date,target=$(id),inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear;}else{date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();}
this._notifyChange(inst);this._adjustDate(target);},_selectMonthYear:function(id,select,period){var target=$(id),inst=this._getInst(target[0]);inst["selected"+(period==="M"?"Month":"Year")]=inst["draw"+(period==="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target);},_selectDay:function(id,month,year,td){var inst,target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return;}
inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=parseInt($("a",td).attr("data-date"));inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));},_clearDate:function(id){var target=$(id);this._selectDate(target,"");},_selectDate:function(id,dateStr){var onSelect,target=$(id),inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr);}
this._updateAlternate(inst);onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst]);}else if(inst.input){inst.input.trigger("change");}
if(inst.inline){this._updateDatepicker(inst);}else{this._hideDatepicker();this._lastInput=inst.input[0];if(typeof(inst.input[0])!=="object"){inst.input.trigger("focus");}
this._lastInput=null;}},_updateAlternate:function(inst){var altFormat,date,dateStr,altField=this._get(inst,"altField");if(altField){altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(document).find(altField).val(dateStr);}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""];},iso8601Week:function(date){var time,checkDate=new Date(date.getTime());checkDate.setDate(checkDate.getDate()+4-(checkDate.getDay()||7));time=checkDate.getTime();checkDate.setMonth(0);checkDate.setDate(1);return Math.floor(Math.round((time-checkDate)/86400000)/7)+1;},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments";}
value=(typeof value==="object"?value.toString():value+"");if(value===""){return null;}
var iFormat,dim,extra,iValue=0,shortYearCutoffTemp=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff,shortYearCutoff=(typeof shortYearCutoffTemp!=="string"?shortYearCutoffTemp:new Date().getFullYear()%100+parseInt(shortYearCutoffTemp,10)),dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort,dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames,monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort,monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames,year=-1,month=-1,day=-1,doy=-1,literal=false,date,lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)===match);if(matches){iFormat++;}
return matches;},getNumber=function(match){var isDoubled=lookAhead(match),size=(match==="@"?14:(match==="!"?20:(match==="y"&&isDoubled?4:(match==="o"?3:2)))),minSize=(match==="y"?size:1),digits=new RegExp("^\\d{"+minSize+","+size+"}"),num=value.substring(iValue).match(digits);if(!num){throw"Missing number at position "+iValue;}
iValue+=num[0].length;return parseInt(num[0],10);},getName=function(match,shortNames,longNames){var index=-1,names=$.map(lookAhead(match)?longNames:shortNames,function(v,k){return[[k,v]];}).sort(function(a,b){return-(a[1].length-b[1].length);});$.each(names,function(i,pair){var name=pair[1];if(value.substr(iValue,name.length).toLowerCase()===name.toLowerCase()){index=pair[0];iValue+=name.length;return false;}});if(index!==-1){return index+1;}else{throw"Unknown name at position "+iValue;}},checkLiteral=function(){if(value.charAt(iValue)!==format.charAt(iFormat)){throw"Unexpected literal at position "+iValue;}
iValue++;};for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false;}else{checkLiteral();}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"!":date=new Date((getNumber("!")-this._ticksTo1970)/10000);year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral();}else{literal=true;}
break;default:checkLiteral();}}}
if(iValue<value.length){extra=value.substr(iValue);if(!/^\s+/.test(extra)){throw"Extra/unparsed characters found in date: "+extra;}}
if(year===-1){year=new Date().getFullYear();}else if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+
(year<=shortYearCutoff?0:-100);}
if(doy>-1){month=1;day=doy;do{dim=this._getDaysInMonth(year,month-1);if(day<=dim){break;}
month++;day-=dim;}while(true);}
date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!==year||date.getMonth()+1!==month||date.getDate()!==day){throw"Invalid date";}
return date;},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(((1970-1)*365+Math.floor(1970/4)-Math.floor(1970/100)+
Math.floor(1970/400))*24*60*60*10000000),formatDate:function(format,date,settings){if(!date){return"";}
var iFormat,dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort,dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames,monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort,monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames,lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)===match);if(matches){iFormat++;}
return matches;},formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num;}}
return num;},formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value]);},output="",literal=false;if(date){for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false;}else{output+=format.charAt(iFormat);}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":output+=formatNumber("o",Math.round((new Date(date.getFullYear(),date.getMonth(),date.getDate()).getTime()-new Date(date.getFullYear(),0,0).getTime())/86400000),3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getFullYear()%100<10?"0":"")+date.getFullYear()%100);break;case"@":output+=date.getTime();break;case"!":output+=date.getTime()*10000+this._ticksTo1970;break;case"'":if(lookAhead("'")){output+="'";}else{literal=true;}
break;default:output+=format.charAt(iFormat);}}}}
return output;},_possibleChars:function(format){var iFormat,chars="",literal=false,lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)===match);if(matches){iFormat++;}
return matches;};for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false;}else{chars+=format.charAt(iFormat);}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'";}else{literal=true;}
break;default:chars+=format.charAt(iFormat);}}}
return chars;},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name];},_setDateFromField:function(inst,noDefault){if(inst.input.val()===inst.lastVal){return;}
var dateFormat=this._get(inst,"dateFormat"),dates=inst.lastVal=inst.input?inst.input.val():null,defaultDate=this._getDefaultDate(inst),date=defaultDate,settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate;}catch(event){dates=(noDefault?"":dates);}
inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst);},_getDefaultDate:function(inst){return this._restrictMinMax(inst,this._determineDate(inst,this._get(inst,"defaultDate"),new Date()));},_determineDate:function(inst,date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date;},offsetString=function(offset){try{return $.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),offset,$.datepicker._getFormatConfig(inst));}catch(e){}
var date=(offset.toLowerCase().match(/^c/)?$.datepicker._getDate(inst):null)||new Date(),year=date.getFullYear(),month=date.getMonth(),day=date.getDate(),pattern=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,$.datepicker._getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,$.datepicker._getDaysInMonth(year,month));break;}
matches=pattern.exec(offset);}
return new Date(year,month,day);},newDate=(date==null||date===""?defaultDate:(typeof date==="string"?offsetString(date):(typeof date==="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):new Date(date.getTime()))));newDate=(newDate&&newDate.toString()==="Invalid Date"?defaultDate:newDate);if(newDate){newDate.setHours(0);newDate.setMinutes(0);newDate.setSeconds(0);newDate.setMilliseconds(0);}
return this._daylightSavingAdjust(newDate);},_daylightSavingAdjust:function(date){if(!date){return null;}
date.setHours(date.getHours()>12?date.getHours()+2:0);return date;},_setDate:function(inst,date,noChange){var clear=!date,origMonth=inst.selectedMonth,origYear=inst.selectedYear,newDate=this._restrictMinMax(inst,this._determineDate(inst,date,new Date()));inst.selectedDay=inst.currentDay=newDate.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=newDate.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=newDate.getFullYear();if((origMonth!==inst.selectedMonth||origYear!==inst.selectedYear)&&!noChange){this._notifyChange(inst);}
this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst));}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()==="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate;},_attachHandlers:function(inst){var stepMonths=this._get(inst,"stepMonths"),id="#"+inst.id.replace(/\\\\/g,"\\");inst.dpDiv.find("[data-handler]").map(function(){var handler={prev:function(){$.datepicker._adjustDate(id,-stepMonths,"M");},next:function(){$.datepicker._adjustDate(id,+stepMonths,"M");},hide:function(){$.datepicker._hideDatepicker();},today:function(){$.datepicker._gotoToday(id);},selectDay:function(){$.datepicker._selectDay(id,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this);return false;},selectMonth:function(){$.datepicker._selectMonthYear(id,this,"M");return false;},selectYear:function(){$.datepicker._selectMonthYear(id,this,"Y");return false;}};$(this).on(this.getAttribute("data-event"),handler[this.getAttribute("data-handler")]);});},_generateHTML:function(inst){var maxDraw,prevText,prev,nextText,next,currentText,gotoDate,controls,buttonPanel,firstDay,showWeek,dayNames,dayNamesMin,monthNames,monthNamesShort,beforeShowDay,showOtherMonths,selectOtherMonths,defaultDate,html,dow,row,group,col,selectedDate,cornerClass,calender,thead,day,daysInMonth,leadDays,curRows,numRows,printDate,dRow,tbody,daySettings,otherMonth,unselectable,tempDate=new Date(),today=this._daylightSavingAdjust(new Date(tempDate.getFullYear(),tempDate.getMonth(),tempDate.getDate())),isRTL=this._get(inst,"isRTL"),showButtonPanel=this._get(inst,"showButtonPanel"),hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext"),navigationAsDateFormat=this._get(inst,"navigationAsDateFormat"),numMonths=this._getNumberOfMonths(inst),showCurrentAtPos=this._get(inst,"showCurrentAtPos"),stepMonths=this._get(inst,"stepMonths"),isMultiMonth=(numMonths[0]!==1||numMonths[1]!==1),currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay))),minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),drawMonth=inst.drawMonth-showCurrentAtPos,drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--;}
if(maxDate){maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-(numMonths[0]*numMonths[1])+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--;}}}
inst.drawMonth=drawMonth;inst.drawYear=drawYear;prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));if(this._canAdjustMonth(inst,-1,drawYear,drawMonth)){prev=$("<a>").attr({"class":"ui-datepicker-prev ui-corner-all","data-handler":"prev","data-event":"click",title:prevText}).append($("<span>").addClass("ui-icon ui-icon-circle-triangle-"+
(isRTL?"e":"w")).text(prevText))[0].outerHTML;}else if(hideIfNoPrevNext){prev="";}else{prev=$("<a>").attr({"class":"ui-datepicker-prev ui-corner-all ui-state-disabled",title:prevText}).append($("<span>").addClass("ui-icon ui-icon-circle-triangle-"+
(isRTL?"e":"w")).text(prevText))[0].outerHTML;}
nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));if(this._canAdjustMonth(inst,+1,drawYear,drawMonth)){next=$("<a>").attr({"class":"ui-datepicker-next ui-corner-all","data-handler":"next","data-event":"click",title:nextText}).append($("<span>").addClass("ui-icon ui-icon-circle-triangle-"+
(isRTL?"w":"e")).text(nextText))[0].outerHTML;}else if(hideIfNoPrevNext){next="";}else{next=$("<a>").attr({"class":"ui-datepicker-next ui-corner-all ui-state-disabled",title:nextText}).append($("<span>").attr("class","ui-icon ui-icon-circle-triangle-"+
(isRTL?"w":"e")).text(nextText))[0].outerHTML;}
currentText=this._get(inst,"currentText");gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));controls="";if(!inst.inline){controls=$("<button>").attr({type:"button","class":"ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all","data-handler":"hide","data-event":"click"}).text(this._get(inst,"closeText"))[0].outerHTML;}
buttonPanel="";if(showButtonPanel){buttonPanel=$("<div class='ui-datepicker-buttonpane ui-widget-content'>").append(isRTL?controls:"").append(this._isInRange(inst,gotoDate)?$("<button>").attr({type:"button","class":"ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all","data-handler":"today","data-event":"click"}).text(currentText):"").append(isRTL?"":controls)[0].outerHTML;}
firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);showWeek=this._get(inst,"showWeek");dayNames=this._get(inst,"dayNames");dayNamesMin=this._get(inst,"dayNamesMin");monthNames=this._get(inst,"monthNames");monthNamesShort=this._get(inst,"monthNamesShort");beforeShowDay=this._get(inst,"beforeShowDay");showOtherMonths=this._get(inst,"showOtherMonths");selectOtherMonths=this._get(inst,"selectOtherMonths");defaultDate=this._getDefaultDate(inst);html="";for(row=0;row<numMonths[0];row++){group="";this.maxRows=4;for(col=0;col<numMonths[1];col++){selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));cornerClass=" ui-corner-all";calender="";if(isMultiMonth){calender+="<div class='ui-datepicker-group";if(numMonths[1]>1){switch(col){case 0:calender+=" ui-datepicker-group-first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+=" ui-datepicker-group-last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+=" ui-datepicker-group-middle";cornerClass="";break;}}
calender+="'>";}
calender+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+cornerClass+"'>"+
(/all|left/.test(cornerClass)&&row===0?(isRTL?next:prev):"")+
(/all|right/.test(cornerClass)&&row===0?(isRTL?prev:next):"")+
this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,row>0||col>0,monthNames,monthNamesShort)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>";thead=(showWeek?"<th class='ui-datepicker-week-col'>"+this._get(inst,"weekHeader")+"</th>":"");for(dow=0;dow<7;dow++){day=(dow+firstDay)%7;thead+="<th scope='col'"+((dow+firstDay+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+dayNames[day]+"'>"+dayNamesMin[day]+"</span></th>";}
calender+=thead+"</tr></thead><tbody>";daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear===inst.selectedYear&&drawMonth===inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth);}
leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;curRows=Math.ceil((leadDays+daysInMonth)/7);numRows=(isMultiMonth?this.maxRows>curRows?this.maxRows:curRows:curRows);this.maxRows=numRows;printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(dRow=0;dRow<numRows;dRow++){calender+="<tr>";tbody=(!showWeek?"":"<td class='ui-datepicker-week-col'>"+
this._get(inst,"calculateWeek")(printDate)+"</td>");for(dow=0;dow<7;dow++){daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);otherMonth=(printDate.getMonth()!==drawMonth);unselectable=(otherMonth&&!selectOtherMonths)||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+="<td class='"+
((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+
(otherMonth?" ui-datepicker-other-month":"")+
((printDate.getTime()===selectedDate.getTime()&&drawMonth===inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()===printDate.getTime()&&defaultDate.getTime()===selectedDate.getTime())?" "+this._dayOverClass:"")+
(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+
(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+
(printDate.getTime()===currentDate.getTime()?" "+this._currentClass:"")+
(printDate.getTime()===today.getTime()?" ui-datepicker-today":""))+"'"+
((!otherMonth||showOtherMonths)&&daySettings[2]?" title='"+daySettings[2].replace(/'/g,"&#39;")+"'":"")+
(unselectable?"":" data-handler='selectDay' data-event='click' data-month='"+printDate.getMonth()+"' data-year='"+printDate.getFullYear()+"'")+">"+
(otherMonth&&!showOtherMonths?"&#xa0;":(unselectable?"<span class='ui-state-default'>"+printDate.getDate()+"</span>":"<a class='ui-state-default"+
(printDate.getTime()===today.getTime()?" ui-state-highlight":"")+
(printDate.getTime()===currentDate.getTime()?" ui-state-active":"")+
(otherMonth?" ui-priority-secondary":"")+"' href='#' aria-current='"+(printDate.getTime()===currentDate.getTime()?"true":"false")+"' data-date='"+printDate.getDate()+"'>"+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate);}
calender+=tbody+"</tr>";}
drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++;}
calender+="</tbody></table>"+(isMultiMonth?"</div>"+
((numMonths[0]>0&&col===numMonths[1]-1)?"<div class='ui-datepicker-row-break'></div>":""):"");group+=calender;}
html+=group;}
html+=buttonPanel;inst._keyEvent=false;return html;},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,secondary,monthNames,monthNamesShort){var inMinYear,inMaxYear,month,years,thisYear,determineYear,year,endYear,changeMonth=this._get(inst,"changeMonth"),changeYear=this._get(inst,"changeYear"),showMonthAfterYear=this._get(inst,"showMonthAfterYear"),selectMonthLabel=this._get(inst,"selectMonthLabel"),selectYearLabel=this._get(inst,"selectYearLabel"),html="<div class='ui-datepicker-title'>",monthHtml="";if(secondary||!changeMonth){monthHtml+="<span class='ui-datepicker-month'>"+monthNames[drawMonth]+"</span>";}else{inMinYear=(minDate&&minDate.getFullYear()===drawYear);inMaxYear=(maxDate&&maxDate.getFullYear()===drawYear);monthHtml+="<select class='ui-datepicker-month' aria-label='"+selectMonthLabel+"' data-handler='selectMonth' data-event='change'>";for(month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+="<option value='"+month+"'"+
(month===drawMonth?" selected='selected'":"")+">"+monthNamesShort[month]+"</option>";}}
monthHtml+="</select>";}
if(!showMonthAfterYear){html+=monthHtml+(secondary||!(changeMonth&&changeYear)?"&#xa0;":"");}
if(!inst.yearshtml){inst.yearshtml="";if(secondary||!changeYear){html+="<span class='ui-datepicker-year'>"+drawYear+"</span>";}else{years=this._get(inst,"yearRange").split(":");thisYear=new Date().getFullYear();determineYear=function(value){var year=(value.match(/c[+\-].*/)?drawYear+parseInt(value.substring(1),10):(value.match(/[+\-].*/)?thisYear+parseInt(value,10):parseInt(value,10)));return(isNaN(year)?thisYear:year);};year=determineYear(years[0]);endYear=Math.max(year,determineYear(years[1]||""));year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);inst.yearshtml+="<select class='ui-datepicker-year' aria-label='"+selectYearLabel+"' data-handler='selectYear' data-event='change'>";for(;year<=endYear;year++){inst.yearshtml+="<option value='"+year+"'"+
(year===drawYear?" selected='selected'":"")+">"+year+"</option>";}
inst.yearshtml+="</select>";html+=inst.yearshtml;inst.yearshtml=null;}}
html+=this._get(inst,"yearSuffix");if(showMonthAfterYear){html+=(secondary||!(changeMonth&&changeYear)?"&#xa0;":"")+monthHtml;}
html+="</div>";return html;},_adjustInstDate:function(inst,offset,period){var year=inst.selectedYear+(period==="Y"?offset:0),month=inst.selectedMonth+(period==="M"?offset:0),day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period==="D"?offset:0),date=this._restrictMinMax(inst,this._daylightSavingAdjust(new Date(year,month,day)));inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period==="M"||period==="Y"){this._notifyChange(inst);}},_restrictMinMax:function(inst,date){var minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),newDate=(minDate&&date<minDate?minDate:date);return(maxDate&&newDate>maxDate?maxDate:newDate);},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst]);}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths==="number"?[1,numMonths]:numMonths));},_getMinMaxDate:function(inst,minMax){return this._determineDate(inst,this._get(inst,minMax+"Date"),null);},_getDaysInMonth:function(year,month){return 32-this._daylightSavingAdjust(new Date(year,month,32)).getDate();},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay();},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst),date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[0]*numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()));}
return this._isInRange(inst,date);},_isInRange:function(inst,date){var yearSplit,currentYear,minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),minYear=null,maxYear=null,years=this._get(inst,"yearRange");if(years){yearSplit=years.split(":");currentYear=new Date().getFullYear();minYear=parseInt(yearSplit[0],10);maxYear=parseInt(yearSplit[1],10);if(yearSplit[0].match(/[+\-].*/)){minYear+=currentYear;}
if(yearSplit[1].match(/[+\-].*/)){maxYear+=currentYear;}}
return((!minDate||date.getTime()>=minDate.getTime())&&(!maxDate||date.getTime()<=maxDate.getTime())&&(!minYear||date.getFullYear()>=minYear)&&(!maxYear||date.getFullYear()<=maxYear));},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!=="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")};},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear;}
var date=(day?(typeof day==="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst));}});function datepicker_bindHover(dpDiv){var selector="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return dpDiv.on("mouseout",selector,function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!==-1){$(this).removeClass("ui-datepicker-prev-hover");}
if(this.className.indexOf("ui-datepicker-next")!==-1){$(this).removeClass("ui-datepicker-next-hover");}}).on("mouseover",selector,datepicker_handleMouseover);}
function datepicker_handleMouseover(){if(!$.datepicker._isDisabledDatepicker(datepicker_instActive.inline?datepicker_instActive.dpDiv.parent()[0]:datepicker_instActive.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!==-1){$(this).addClass("ui-datepicker-prev-hover");}
if(this.className.indexOf("ui-datepicker-next")!==-1){$(this).addClass("ui-datepicker-next-hover");}}}
function datepicker_extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null){target[name]=props[name];}}
return target;}
$.fn.datepicker=function(options){if(!this.length){return this;}
if(!$.datepicker.initialized){$(document).on("mousedown",$.datepicker._checkExternalClick);$.datepicker.initialized=true;}
if($("#"+$.datepicker._mainDivId).length===0){$("body").append($.datepicker.dpDiv);}
var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options==="string"&&(options==="isDisabled"||options==="getDate"||options==="widget")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs));}
if(options==="option"&&arguments.length===2&&typeof arguments[1]==="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs));}
return this.each(function(){if(typeof options==="string"){$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs));}else{$.datepicker._attachDatepicker(this,options);}});};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.13.2";var widgetsDatepicker=$.datepicker;$.widget("ui.dialog",{version:"1.13.2",options:{appendTo:"body",autoOpen:true,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:true,closeText:"Close",draggable:true,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(pos){var topOffset=$(this).css(pos).offset().top;if(topOffset<0){$(this).css("top",pos.top-topOffset);}}},resizable:true,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},resizableRelatedOptions:{maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height};this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)};this.originalTitle=this.element.attr("title");if(this.options.title==null&&this.originalTitle!=null){this.options.title=this.originalTitle;}
if(this.options.disabled){this.options.disabled=false;}
this._createWrapper();this.element.show().removeAttr("title").appendTo(this.uiDialog);this._addClass("ui-dialog-content","ui-widget-content");this._createTitlebar();this._createButtonPane();if(this.options.draggable&&$.fn.draggable){this._makeDraggable();}
if(this.options.resizable&&$.fn.resizable){this._makeResizable();}
this._isOpen=false;this._trackFocus();},_init:function(){if(this.options.autoOpen){this.open();}},_appendTo:function(){var element=this.options.appendTo;if(element&&(element.jquery||element.nodeType)){return $(element);}
return this.document.find(element||"body").eq(0);},_destroy:function(){var next,originalPosition=this.originalPosition;this._untrackInstance();this._destroyOverlay();this.element.removeUniqueId().css(this.originalCss).detach();this.uiDialog.remove();if(this.originalTitle){this.element.attr("title",this.originalTitle);}
next=originalPosition.parent.children().eq(originalPosition.index);if(next.length&&next[0]!==this.element[0]){next.before(this.element);}else{originalPosition.parent.append(this.element);}},widget:function(){return this.uiDialog;},disable:$.noop,enable:$.noop,close:function(event){var that=this;if(!this._isOpen||this._trigger("beforeClose",event)===false){return;}
this._isOpen=false;this._focusedElement=null;this._destroyOverlay();this._untrackInstance();if(!this.opener.filter(":focusable").trigger("focus").length){$.ui.safeBlur($.ui.safeActiveElement(this.document[0]));}
this._hide(this.uiDialog,this.options.hide,function(){that._trigger("close",event);});},isOpen:function(){return this._isOpen;},moveToTop:function(){this._moveToTop();},_moveToTop:function(event,silent){var moved=false,zIndices=this.uiDialog.siblings(".ui-front:visible").map(function(){return+$(this).css("z-index");}).get(),zIndexMax=Math.max.apply(null,zIndices);if(zIndexMax>=+this.uiDialog.css("z-index")){this.uiDialog.css("z-index",zIndexMax+1);moved=true;}
if(moved&&!silent){this._trigger("focus",event);}
return moved;},open:function(){var that=this;if(this._isOpen){if(this._moveToTop()){this._focusTabbable();}
return;}
this._isOpen=true;this.opener=$($.ui.safeActiveElement(this.document[0]));this._size();this._position();this._createOverlay();this._moveToTop(null,true);if(this.overlay){this.overlay.css("z-index",this.uiDialog.css("z-index")-1);}
this._show(this.uiDialog,this.options.show,function(){that._focusTabbable();that._trigger("focus");});this._makeFocusTarget();this._trigger("open");},_focusTabbable:function(){var hasFocus=this._focusedElement;if(!hasFocus){hasFocus=this.element.find("[autofocus]");}
if(!hasFocus.length){hasFocus=this.element.find(":tabbable");}
if(!hasFocus.length){hasFocus=this.uiDialogButtonPane.find(":tabbable");}
if(!hasFocus.length){hasFocus=this.uiDialogTitlebarClose.filter(":tabbable");}
if(!hasFocus.length){hasFocus=this.uiDialog;}
hasFocus.eq(0).trigger("focus");},_restoreTabbableFocus:function(){var activeElement=$.ui.safeActiveElement(this.document[0]),isActive=this.uiDialog[0]===activeElement||$.contains(this.uiDialog[0],activeElement);if(!isActive){this._focusTabbable();}},_keepFocus:function(event){event.preventDefault();this._restoreTabbableFocus();this._delay(this._restoreTabbableFocus);},_createWrapper:function(){this.uiDialog=$("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo());this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front");this._on(this.uiDialog,{keydown:function(event){if(this.options.closeOnEscape&&!event.isDefaultPrevented()&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){event.preventDefault();this.close(event);return;}
if(event.keyCode!==$.ui.keyCode.TAB||event.isDefaultPrevented()){return;}
var tabbables=this.uiDialog.find(":tabbable"),first=tabbables.first(),last=tabbables.last();if((event.target===last[0]||event.target===this.uiDialog[0])&&!event.shiftKey){this._delay(function(){first.trigger("focus");});event.preventDefault();}else if((event.target===first[0]||event.target===this.uiDialog[0])&&event.shiftKey){this._delay(function(){last.trigger("focus");});event.preventDefault();}},mousedown:function(event){if(this._moveToTop(event)){this._focusTabbable();}}});if(!this.element.find("[aria-describedby]").length){this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")});}},_createTitlebar:function(){var uiDialogTitle;this.uiDialogTitlebar=$("<div>");this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix");this._on(this.uiDialogTitlebar,{mousedown:function(event){if(!$(event.target).closest(".ui-dialog-titlebar-close")){this.uiDialog.trigger("focus");}}});this.uiDialogTitlebarClose=$("<button type='button'></button>").button({label:$("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:false}).appendTo(this.uiDialogTitlebar);this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close");this._on(this.uiDialogTitlebarClose,{click:function(event){event.preventDefault();this.close(event);}});uiDialogTitle=$("<span>").uniqueId().prependTo(this.uiDialogTitlebar);this._addClass(uiDialogTitle,"ui-dialog-title");this._title(uiDialogTitle);this.uiDialogTitlebar.prependTo(this.uiDialog);this.uiDialog.attr({"aria-labelledby":uiDialogTitle.attr("id")});},_title:function(title){if(this.options.title){title.text(this.options.title);}else{title.html("&#160;");}},_createButtonPane:function(){this.uiDialogButtonPane=$("<div>");this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix");this.uiButtonSet=$("<div>").appendTo(this.uiDialogButtonPane);this._addClass(this.uiButtonSet,"ui-dialog-buttonset");this._createButtons();},_createButtons:function(){var that=this,buttons=this.options.buttons;this.uiDialogButtonPane.remove();this.uiButtonSet.empty();if($.isEmptyObject(buttons)||(Array.isArray(buttons)&&!buttons.length)){this._removeClass(this.uiDialog,"ui-dialog-buttons");return;}
$.each(buttons,function(name,props){var click,buttonOptions;props=typeof props==="function"?{click:props,text:name}:props;props=$.extend({type:"button"},props);click=props.click;buttonOptions={icon:props.icon,iconPosition:props.iconPosition,showLabel:props.showLabel,icons:props.icons,text:props.text};delete props.click;delete props.icon;delete props.iconPosition;delete props.showLabel;delete props.icons;if(typeof props.text==="boolean"){delete props.text;}
$("<button></button>",props).button(buttonOptions).appendTo(that.uiButtonSet).on("click",function(){click.apply(that.element[0],arguments);});});this._addClass(this.uiDialog,"ui-dialog-buttons");this.uiDialogButtonPane.appendTo(this.uiDialog);},_makeDraggable:function(){var that=this,options=this.options;function filteredUi(ui){return{position:ui.position,offset:ui.offset};}
this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(event,ui){that._addClass($(this),"ui-dialog-dragging");that._blockFrames();that._trigger("dragStart",event,filteredUi(ui));},drag:function(event,ui){that._trigger("drag",event,filteredUi(ui));},stop:function(event,ui){var left=ui.offset.left-that.document.scrollLeft(),top=ui.offset.top-that.document.scrollTop();options.position={my:"left top",at:"left"+(left>=0?"+":"")+left+" "+"top"+(top>=0?"+":"")+top,of:that.window};that._removeClass($(this),"ui-dialog-dragging");that._unblockFrames();that._trigger("dragStop",event,filteredUi(ui));}});},_makeResizable:function(){var that=this,options=this.options,handles=options.resizable,position=this.uiDialog.css("position"),resizeHandles=typeof handles==="string"?handles:"n,e,s,w,se,sw,ne,nw";function filteredUi(ui){return{originalPosition:ui.originalPosition,originalSize:ui.originalSize,position:ui.position,size:ui.size};}
this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:options.maxWidth,maxHeight:options.maxHeight,minWidth:options.minWidth,minHeight:this._minHeight(),handles:resizeHandles,start:function(event,ui){that._addClass($(this),"ui-dialog-resizing");that._blockFrames();that._trigger("resizeStart",event,filteredUi(ui));},resize:function(event,ui){that._trigger("resize",event,filteredUi(ui));},stop:function(event,ui){var offset=that.uiDialog.offset(),left=offset.left-that.document.scrollLeft(),top=offset.top-that.document.scrollTop();options.height=that.uiDialog.height();options.width=that.uiDialog.width();options.position={my:"left top",at:"left"+(left>=0?"+":"")+left+" "+"top"+(top>=0?"+":"")+top,of:that.window};that._removeClass($(this),"ui-dialog-resizing");that._unblockFrames();that._trigger("resizeStop",event,filteredUi(ui));}}).css("position",position);},_trackFocus:function(){this._on(this.widget(),{focusin:function(event){this._makeFocusTarget();this._focusedElement=$(event.target);}});},_makeFocusTarget:function(){this._untrackInstance();this._trackingInstances().unshift(this);},_untrackInstance:function(){var instances=this._trackingInstances(),exists=$.inArray(this,instances);if(exists!==-1){instances.splice(exists,1);}},_trackingInstances:function(){var instances=this.document.data("ui-dialog-instances");if(!instances){instances=[];this.document.data("ui-dialog-instances",instances);}
return instances;},_minHeight:function(){var options=this.options;return options.height==="auto"?options.minHeight:Math.min(options.minHeight,options.height);},_position:function(){var isVisible=this.uiDialog.is(":visible");if(!isVisible){this.uiDialog.show();}
this.uiDialog.position(this.options.position);if(!isVisible){this.uiDialog.hide();}},_setOptions:function(options){var that=this,resize=false,resizableOptions={};$.each(options,function(key,value){that._setOption(key,value);if(key in that.sizeRelatedOptions){resize=true;}
if(key in that.resizableRelatedOptions){resizableOptions[key]=value;}});if(resize){this._size();this._position();}
if(this.uiDialog.is(":data(ui-resizable)")){this.uiDialog.resizable("option",resizableOptions);}},_setOption:function(key,value){var isDraggable,isResizable,uiDialog=this.uiDialog;if(key==="disabled"){return;}
this._super(key,value);if(key==="appendTo"){this.uiDialog.appendTo(this._appendTo());}
if(key==="buttons"){this._createButtons();}
if(key==="closeText"){this.uiDialogTitlebarClose.button({label:$("<a>").text(""+this.options.closeText).html()});}
if(key==="draggable"){isDraggable=uiDialog.is(":data(ui-draggable)");if(isDraggable&&!value){uiDialog.draggable("destroy");}
if(!isDraggable&&value){this._makeDraggable();}}
if(key==="position"){this._position();}
if(key==="resizable"){isResizable=uiDialog.is(":data(ui-resizable)");if(isResizable&&!value){uiDialog.resizable("destroy");}
if(isResizable&&typeof value==="string"){uiDialog.resizable("option","handles",value);}
if(!isResizable&&value!==false){this._makeResizable();}}
if(key==="title"){this._title(this.uiDialogTitlebar.find(".ui-dialog-title"));}},_size:function(){var nonContentHeight,minContentHeight,maxContentHeight,options=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0});if(options.minWidth>options.width){options.width=options.minWidth;}
nonContentHeight=this.uiDialog.css({height:"auto",width:options.width}).outerHeight();minContentHeight=Math.max(0,options.minHeight-nonContentHeight);maxContentHeight=typeof options.maxHeight==="number"?Math.max(0,options.maxHeight-nonContentHeight):"none";if(options.height==="auto"){this.element.css({minHeight:minContentHeight,maxHeight:maxContentHeight,height:"auto"});}else{this.element.height(Math.max(0,options.height-nonContentHeight));}
if(this.uiDialog.is(":data(ui-resizable)")){this.uiDialog.resizable("option","minHeight",this._minHeight());}},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var iframe=$(this);return $("<div>").css({position:"absolute",width:iframe.outerWidth(),height:iframe.outerHeight()}).appendTo(iframe.parent()).offset(iframe.offset())[0];});},_unblockFrames:function(){if(this.iframeBlocks){this.iframeBlocks.remove();delete this.iframeBlocks;}},_allowInteraction:function(event){if($(event.target).closest(".ui-dialog").length){return true;}
return!!$(event.target).closest(".ui-datepicker").length;},_createOverlay:function(){if(!this.options.modal){return;}
var jqMinor=$.fn.jquery.substring(0,4);var isOpening=true;this._delay(function(){isOpening=false;});if(!this.document.data("ui-dialog-overlays")){this.document.on("focusin.ui-dialog",function(event){if(isOpening){return;}
var instance=this._trackingInstances()[0];if(!instance._allowInteraction(event)){event.preventDefault();instance._focusTabbable();if(jqMinor==="3.4."||jqMinor==="3.5."){instance._delay(instance._restoreTabbableFocus);}}}.bind(this));}
this.overlay=$("<div>").appendTo(this._appendTo());this._addClass(this.overlay,null,"ui-widget-overlay ui-front");this._on(this.overlay,{mousedown:"_keepFocus"});this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1);},_destroyOverlay:function(){if(!this.options.modal){return;}
if(this.overlay){var overlays=this.document.data("ui-dialog-overlays")-1;if(!overlays){this.document.off("focusin.ui-dialog");this.document.removeData("ui-dialog-overlays");}else{this.document.data("ui-dialog-overlays",overlays);}
this.overlay.remove();this.overlay=null;}}});if($.uiBackCompat!==false){$.widget("ui.dialog",$.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super();this.uiDialog.addClass(this.options.dialogClass);},_setOption:function(key,value){if(key==="dialogClass"){this.uiDialog.removeClass(this.options.dialogClass).addClass(value);}
this._superApply(arguments);}});}
var widgetsDialog=$.ui.dialog;var widgetsSlider=$.widget("ui.slider",$.ui.mouse,{version:"1.13.2",widgetEventPrefix:"slide",options:{animate:false,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=false;this._mouseSliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this._calculateNewMax();this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content");this._refresh();this._animateOff=false;},_refresh:function(){this._createRange();this._createHandles();this._setupEvents();this._refreshValue();},_createHandles:function(){var i,handleCount,options=this.options,existingHandles=this.element.find(".ui-slider-handle"),handle="<span tabindex='0'></span>",handles=[];handleCount=(options.values&&options.values.length)||1;if(existingHandles.length>handleCount){existingHandles.slice(handleCount).remove();existingHandles=existingHandles.slice(0,handleCount);}
for(i=existingHandles.length;i<handleCount;i++){handles.push(handle);}
this.handles=existingHandles.add($(handles.join("")).appendTo(this.element));this._addClass(this.handles,"ui-slider-handle","ui-state-default");this.handle=this.handles.eq(0);this.handles.each(function(i){$(this).data("ui-slider-handle-index",i).attr("tabIndex",0);});},_createRange:function(){var options=this.options;if(options.range){if(options.range===true){if(!options.values){options.values=[this._valueMin(),this._valueMin()];}else if(options.values.length&&options.values.length!==2){options.values=[options.values[0],options.values[0]];}else if(Array.isArray(options.values)){options.values=options.values.slice(0);}}
if(!this.range||!this.range.length){this.range=$("<div>").appendTo(this.element);this._addClass(this.range,"ui-slider-range");}else{this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max");this.range.css({"left":"","bottom":""});}
if(options.range==="min"||options.range==="max"){this._addClass(this.range,"ui-slider-range-"+options.range);}}else{if(this.range){this.range.remove();}
this.range=null;}},_setupEvents:function(){this._off(this.handles);this._on(this.handles,this._handleEvents);this._hoverable(this.handles);this._focusable(this.handles);},_destroy:function(){this.handles.remove();if(this.range){this.range.remove();}
this._mouseDestroy();},_mouseCapture:function(event){var position,normValue,distance,closestHandle,index,allowed,offset,mouseOverHandle,that=this,o=this.options;if(o.disabled){return false;}
this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();position={x:event.pageX,y:event.pageY};normValue=this._normValueFromMouse(position);distance=this._valueMax()-this._valueMin()+1;this.handles.each(function(i){var thisDistance=Math.abs(normValue-that.values(i));if((distance>thisDistance)||(distance===thisDistance&&(i===that._lastChangedValue||that.values(i)===o.min))){distance=thisDistance;closestHandle=$(this);index=i;}});allowed=this._start(event,index);if(allowed===false){return false;}
this._mouseSliding=true;this._handleIndex=index;this._addClass(closestHandle,null,"ui-state-active");closestHandle.trigger("focus");offset=closestHandle.offset();mouseOverHandle=!$(event.target).parents().addBack().is(".ui-slider-handle");this._clickOffset=mouseOverHandle?{left:0,top:0}:{left:event.pageX-offset.left-(closestHandle.width()/2),top:event.pageY-offset.top-
(closestHandle.height()/2)-
(parseInt(closestHandle.css("borderTopWidth"),10)||0)-
(parseInt(closestHandle.css("borderBottomWidth"),10)||0)+
(parseInt(closestHandle.css("marginTop"),10)||0)};if(!this.handles.hasClass("ui-state-hover")){this._slide(event,index,normValue);}
this._animateOff=true;return true;},_mouseStart:function(){return true;},_mouseDrag:function(event){var position={x:event.pageX,y:event.pageY},normValue=this._normValueFromMouse(position);this._slide(event,this._handleIndex,normValue);return false;},_mouseStop:function(event){this._removeClass(this.handles,null,"ui-state-active");this._mouseSliding=false;this._stop(event,this._handleIndex);this._change(event,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false;},_detectOrientation:function(){this.orientation=(this.options.orientation==="vertical")?"vertical":"horizontal";},_normValueFromMouse:function(position){var pixelTotal,pixelMouse,percentMouse,valueTotal,valueMouse;if(this.orientation==="horizontal"){pixelTotal=this.elementSize.width;pixelMouse=position.x-this.elementOffset.left-
(this._clickOffset?this._clickOffset.left:0);}else{pixelTotal=this.elementSize.height;pixelMouse=position.y-this.elementOffset.top-
(this._clickOffset?this._clickOffset.top:0);}
percentMouse=(pixelMouse/pixelTotal);if(percentMouse>1){percentMouse=1;}
if(percentMouse<0){percentMouse=0;}
if(this.orientation==="vertical"){percentMouse=1-percentMouse;}
valueTotal=this._valueMax()-this._valueMin();valueMouse=this._valueMin()+percentMouse*valueTotal;return this._trimAlignValue(valueMouse);},_uiHash:function(index,value,values){var uiHash={handle:this.handles[index],handleIndex:index,value:value!==undefined?value:this.value()};if(this._hasMultipleValues()){uiHash.value=value!==undefined?value:this.values(index);uiHash.values=values||this.values();}
return uiHash;},_hasMultipleValues:function(){return this.options.values&&this.options.values.length;},_start:function(event,index){return this._trigger("start",event,this._uiHash(index));},_slide:function(event,index,newVal){var allowed,otherVal,currentValue=this.value(),newValues=this.values();if(this._hasMultipleValues()){otherVal=this.values(index?0:1);currentValue=this.values(index);if(this.options.values.length===2&&this.options.range===true){newVal=index===0?Math.min(otherVal,newVal):Math.max(otherVal,newVal);}
newValues[index]=newVal;}
if(newVal===currentValue){return;}
allowed=this._trigger("slide",event,this._uiHash(index,newVal,newValues));if(allowed===false){return;}
if(this._hasMultipleValues()){this.values(index,newVal);}else{this.value(newVal);}},_stop:function(event,index){this._trigger("stop",event,this._uiHash(index));},_change:function(event,index){if(!this._keySliding&&!this._mouseSliding){this._lastChangedValue=index;this._trigger("change",event,this._uiHash(index));}},value:function(newValue){if(arguments.length){this.options.value=this._trimAlignValue(newValue);this._refreshValue();this._change(null,0);return;}
return this._value();},values:function(index,newValue){var vals,newValues,i;if(arguments.length>1){this.options.values[index]=this._trimAlignValue(newValue);this._refreshValue();this._change(null,index);return;}
if(arguments.length){if(Array.isArray(arguments[0])){vals=this.options.values;newValues=arguments[0];for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(newValues[i]);this._change(null,i);}
this._refreshValue();}else{if(this._hasMultipleValues()){return this._values(index);}else{return this.value();}}}else{return this._values();}},_setOption:function(key,value){var i,valsLength=0;if(key==="range"&&this.options.range===true){if(value==="min"){this.options.value=this._values(0);this.options.values=null;}else if(value==="max"){this.options.value=this._values(this.options.values.length-1);this.options.values=null;}}
if(Array.isArray(this.options.values)){valsLength=this.options.values.length;}
this._super(key,value);switch(key){case"orientation":this._detectOrientation();this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation);this._refreshValue();if(this.options.range){this._refreshRange(value);}
this.handles.css(value==="horizontal"?"bottom":"left","");break;case"value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case"values":this._animateOff=true;this._refreshValue();for(i=valsLength-1;i>=0;i--){this._change(null,i);}
this._animateOff=false;break;case"step":case"min":case"max":this._animateOff=true;this._calculateNewMax();this._refreshValue();this._animateOff=false;break;case"range":this._animateOff=true;this._refresh();this._animateOff=false;break;}},_setOptionDisabled:function(value){this._super(value);this._toggleClass(null,"ui-state-disabled",!!value);},_value:function(){var val=this.options.value;val=this._trimAlignValue(val);return val;},_values:function(index){var val,vals,i;if(arguments.length){val=this.options.values[index];val=this._trimAlignValue(val);return val;}else if(this._hasMultipleValues()){vals=this.options.values.slice();for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(vals[i]);}
return vals;}else{return[];}},_trimAlignValue:function(val){if(val<=this._valueMin()){return this._valueMin();}
if(val>=this._valueMax()){return this._valueMax();}
var step=(this.options.step>0)?this.options.step:1,valModStep=(val-this._valueMin())%step,alignValue=val-valModStep;if(Math.abs(valModStep)*2>=step){alignValue+=(valModStep>0)?step:(-step);}
return parseFloat(alignValue.toFixed(5));},_calculateNewMax:function(){var max=this.options.max,min=this._valueMin(),step=this.options.step,aboveMin=Math.round((max-min)/step)*step;max=aboveMin+min;if(max>this.options.max){max-=step;}
this.max=parseFloat(max.toFixed(this._precision()));},_precision:function(){var precision=this._precisionOf(this.options.step);if(this.options.min!==null){precision=Math.max(precision,this._precisionOf(this.options.min));}
return precision;},_precisionOf:function(num){var str=num.toString(),decimal=str.indexOf(".");return decimal===-1?0:str.length-decimal-1;},_valueMin:function(){return this.options.min;},_valueMax:function(){return this.max;},_refreshRange:function(orientation){if(orientation==="vertical"){this.range.css({"width":"","left":""});}
if(orientation==="horizontal"){this.range.css({"height":"","bottom":""});}},_refreshValue:function(){var lastValPercent,valPercent,value,valueMin,valueMax,oRange=this.options.range,o=this.options,that=this,animate=(!this._animateOff)?o.animate:false,_set={};if(this._hasMultipleValues()){this.handles.each(function(i){valPercent=(that.values(i)-that._valueMin())/(that._valueMax()-
that._valueMin())*100;_set[that.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";$(this).stop(1,1)[animate?"animate":"css"](_set,o.animate);if(that.options.range===true){if(that.orientation==="horizontal"){if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({left:valPercent+"%"},o.animate);}
if(i===1){that.range[animate?"animate":"css"]({width:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate});}}else{if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({bottom:(valPercent)+"%"},o.animate);}
if(i===1){that.range[animate?"animate":"css"]({height:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate});}}}
lastValPercent=valPercent;});}else{value=this.value();valueMin=this._valueMin();valueMax=this._valueMax();valPercent=(valueMax!==valueMin)?(value-valueMin)/(valueMax-valueMin)*100:0;_set[this.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";this.handle.stop(1,1)[animate?"animate":"css"](_set,o.animate);if(oRange==="min"&&this.orientation==="horizontal"){this.range.stop(1,1)[animate?"animate":"css"]({width:valPercent+"%"},o.animate);}
if(oRange==="max"&&this.orientation==="horizontal"){this.range.stop(1,1)[animate?"animate":"css"]({width:(100-valPercent)+"%"},o.animate);}
if(oRange==="min"&&this.orientation==="vertical"){this.range.stop(1,1)[animate?"animate":"css"]({height:valPercent+"%"},o.animate);}
if(oRange==="max"&&this.orientation==="vertical"){this.range.stop(1,1)[animate?"animate":"css"]({height:(100-valPercent)+"%"},o.animate);}}},_handleEvents:{keydown:function(event){var allowed,curVal,newVal,step,index=$(event.target).data("ui-slider-handle-index");switch(event.keyCode){case $.ui.keyCode.HOME:case $.ui.keyCode.END:case $.ui.keyCode.PAGE_UP:case $.ui.keyCode.PAGE_DOWN:case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:event.preventDefault();if(!this._keySliding){this._keySliding=true;this._addClass($(event.target),null,"ui-state-active");allowed=this._start(event,index);if(allowed===false){return;}}
break;}
step=this.options.step;if(this._hasMultipleValues()){curVal=newVal=this.values(index);}else{curVal=newVal=this.value();}
switch(event.keyCode){case $.ui.keyCode.HOME:newVal=this._valueMin();break;case $.ui.keyCode.END:newVal=this._valueMax();break;case $.ui.keyCode.PAGE_UP:newVal=this._trimAlignValue(curVal+((this._valueMax()-this._valueMin())/this.numPages));break;case $.ui.keyCode.PAGE_DOWN:newVal=this._trimAlignValue(curVal-((this._valueMax()-this._valueMin())/this.numPages));break;case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:if(curVal===this._valueMax()){return;}
newVal=this._trimAlignValue(curVal+step);break;case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:if(curVal===this._valueMin()){return;}
newVal=this._trimAlignValue(curVal-step);break;}
this._slide(event,index,newVal);},keyup:function(event){var index=$(event.target).data("ui-slider-handle-index");if(this._keySliding){this._keySliding=false;this._stop(event,index);this._change(event,index);this._removeClass($(event.target),null,"ui-state-active");}}}});function spinnerModifier(fn){return function(){var previous=this.element.val();fn.apply(this,arguments);this._refresh();if(previous!==this.element.val()){this._trigger("change");}};}
$.widget("ui.spinner",{version:"1.13.2",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:true,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max);this._setOption("min",this.options.min);this._setOption("step",this.options.step);if(this.value()!==""){this._value(this.element.val(),true);}
this._draw();this._on(this._events);this._refresh();this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete");}});},_getCreateOptions:function(){var options=this._super();var element=this.element;$.each(["min","max","step"],function(i,option){var value=element.attr(option);if(value!=null&&value.length){options[option]=value;}});return options;},_events:{keydown:function(event){if(this._start(event)&&this._keydown(event)){event.preventDefault();}},keyup:"_stop",focus:function(){this.previous=this.element.val();},blur:function(event){if(this.cancelBlur){delete this.cancelBlur;return;}
this._stop();this._refresh();if(this.previous!==this.element.val()){this._trigger("change",event);}},mousewheel:function(event,delta){var activeElement=$.ui.safeActiveElement(this.document[0]);var isActive=this.element[0]===activeElement;if(!isActive||!delta){return;}
if(!this.spinning&&!this._start(event)){return false;}
this._spin((delta>0?1:-1)*this.options.step,event);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=this._delay(function(){if(this.spinning){this._stop(event);}},100);event.preventDefault();},"mousedown .ui-spinner-button":function(event){var previous;previous=this.element[0]===$.ui.safeActiveElement(this.document[0])?this.previous:this.element.val();function checkFocus(){var isActive=this.element[0]===$.ui.safeActiveElement(this.document[0]);if(!isActive){this.element.trigger("focus");this.previous=previous;this._delay(function(){this.previous=previous;});}}
event.preventDefault();checkFocus.call(this);this.cancelBlur=true;this._delay(function(){delete this.cancelBlur;checkFocus.call(this);});if(this._start(event)===false){return;}
this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event);},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(event){if(!$(event.currentTarget).hasClass("ui-state-active")){return;}
if(this._start(event)===false){return false;}
this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event);},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>");},_draw:function(){this._enhance();this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content");this._addClass("ui-spinner-input");this.element.attr("role","spinbutton");this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",true).button({classes:{"ui-button":""}});this._removeClass(this.buttons,"ui-corner-all");this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up");this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down");this.buttons.first().button({"icon":this.options.icons.up,"showLabel":false});this.buttons.last().button({"icon":this.options.icons.down,"showLabel":false});if(this.buttons.height()>Math.ceil(this.uiSpinner.height()*0.5)&&this.uiSpinner.height()>0){this.uiSpinner.height(this.uiSpinner.height());}},_keydown:function(event){var options=this.options,keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.UP:this._repeat(null,1,event);return true;case keyCode.DOWN:this._repeat(null,-1,event);return true;case keyCode.PAGE_UP:this._repeat(null,options.page,event);return true;case keyCode.PAGE_DOWN:this._repeat(null,-options.page,event);return true;}
return false;},_start:function(event){if(!this.spinning&&this._trigger("start",event)===false){return false;}
if(!this.counter){this.counter=1;}
this.spinning=true;return true;},_repeat:function(i,steps,event){i=i||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,steps,event);},i);this._spin(steps*this.options.step,event);},_spin:function(step,event){var value=this.value()||0;if(!this.counter){this.counter=1;}
value=this._adjustValue(value+step*this._increment(this.counter));if(!this.spinning||this._trigger("spin",event,{value:value})!==false){this._value(value);this.counter++;}},_increment:function(i){var incremental=this.options.incremental;if(incremental){return typeof incremental==="function"?incremental(i):Math.floor(i*i*i/50000-i*i/500+17*i/200+1);}
return 1;},_precision:function(){var precision=this._precisionOf(this.options.step);if(this.options.min!==null){precision=Math.max(precision,this._precisionOf(this.options.min));}
return precision;},_precisionOf:function(num){var str=num.toString(),decimal=str.indexOf(".");return decimal===-1?0:str.length-decimal-1;},_adjustValue:function(value){var base,aboveMin,options=this.options;base=options.min!==null?options.min:0;aboveMin=value-base;aboveMin=Math.round(aboveMin/options.step)*options.step;value=base+aboveMin;value=parseFloat(value.toFixed(this._precision()));if(options.max!==null&&value>options.max){return options.max;}
if(options.min!==null&&value<options.min){return options.min;}
return value;},_stop:function(event){if(!this.spinning){return;}
clearTimeout(this.timer);clearTimeout(this.mousewheelTimer);this.counter=0;this.spinning=false;this._trigger("stop",event);},_setOption:function(key,value){var prevValue,first,last;if(key==="culture"||key==="numberFormat"){prevValue=this._parse(this.element.val());this.options[key]=value;this.element.val(this._format(prevValue));return;}
if(key==="max"||key==="min"||key==="step"){if(typeof value==="string"){value=this._parse(value);}}
if(key==="icons"){first=this.buttons.first().find(".ui-icon");this._removeClass(first,null,this.options.icons.up);this._addClass(first,null,value.up);last=this.buttons.last().find(".ui-icon");this._removeClass(last,null,this.options.icons.down);this._addClass(last,null,value.down);}
this._super(key,value);},_setOptionDisabled:function(value){this._super(value);this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!value);this.element.prop("disabled",!!value);this.buttons.button(value?"disable":"enable");},_setOptions:spinnerModifier(function(options){this._super(options);}),_parse:function(val){if(typeof val==="string"&&val!==""){val=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(val,10,this.options.culture):+val;}
return val===""||isNaN(val)?null:val;},_format:function(value){if(value===""){return"";}
return window.Globalize&&this.options.numberFormat?Globalize.format(value,this.options.numberFormat,this.options.culture):value;},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())});},isValid:function(){var value=this.value();if(value===null){return false;}
return value===this._adjustValue(value);},_value:function(value,allowAny){var parsed;if(value!==""){parsed=this._parse(value);if(parsed!==null){if(!allowAny){parsed=this._adjustValue(parsed);}
value=this._format(parsed);}}
this.element.val(value);this._refresh();},_destroy:function(){this.element.prop("disabled",false).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow");this.uiSpinner.replaceWith(this.element);},stepUp:spinnerModifier(function(steps){this._stepUp(steps);}),_stepUp:function(steps){if(this._start()){this._spin((steps||1)*this.options.step);this._stop();}},stepDown:spinnerModifier(function(steps){this._stepDown(steps);}),_stepDown:function(steps){if(this._start()){this._spin((steps||1)* -this.options.step);this._stop();}},pageUp:spinnerModifier(function(pages){this._stepUp((pages||1)*this.options.page);}),pageDown:spinnerModifier(function(pages){this._stepDown((pages||1)*this.options.page);}),value:function(newVal){if(!arguments.length){return this._parse(this.element.val());}
spinnerModifier(this._value).call(this,newVal);},widget:function(){return this.uiSpinner;}});if($.uiBackCompat!==false){$.widget("ui.spinner",$.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());},_uiSpinnerHtml:function(){return"<span>";},_buttonHtml:function(){return"<a></a><a></a>";}});}
var widgetsSpinner=$.ui.spinner;$.widget("ui.tooltip",{version:"1.13.2",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var title=$(this).attr("title");return $("<a>").text(title).html();},hide:true,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:true,track:false,close:null,open:null},_addDescribedBy:function(elem,id){var describedby=(elem.attr("aria-describedby")||"").split(/\s+/);describedby.push(id);elem.data("ui-tooltip-id",id).attr("aria-describedby",String.prototype.trim.call(describedby.join(" ")));},_removeDescribedBy:function(elem){var id=elem.data("ui-tooltip-id"),describedby=(elem.attr("aria-describedby")||"").split(/\s+/),index=$.inArray(id,describedby);if(index!==-1){describedby.splice(index,1);}
elem.removeData("ui-tooltip-id");describedby=String.prototype.trim.call(describedby.join(" "));if(describedby){elem.attr("aria-describedby",describedby);}else{elem.removeAttr("aria-describedby");}},_create:function(){this._on({mouseover:"open",focusin:"open"});this.tooltips={};this.parents={};this.liveRegion=$("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body);this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible");this.disabledTitles=$([]);},_setOption:function(key,value){var that=this;this._super(key,value);if(key==="content"){$.each(this.tooltips,function(id,tooltipData){that._updateContent(tooltipData.element);});}},_setOptionDisabled:function(value){this[value?"_disable":"_enable"]();},_disable:function(){var that=this;$.each(this.tooltips,function(id,tooltipData){var event=$.Event("blur");event.target=event.currentTarget=tooltipData.element[0];that.close(event,true);});this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var element=$(this);if(element.is("[title]")){return element.data("ui-tooltip-title",element.attr("title")).removeAttr("title");}}));},_enable:function(){this.disabledTitles.each(function(){var element=$(this);if(element.data("ui-tooltip-title")){element.attr("title",element.data("ui-tooltip-title"));}});this.disabledTitles=$([]);},open:function(event){var that=this,target=$(event?event.target:this.element).closest(this.options.items);if(!target.length||target.data("ui-tooltip-id")){return;}
if(target.attr("title")){target.data("ui-tooltip-title",target.attr("title"));}
target.data("ui-tooltip-open",true);if(event&&event.type==="mouseover"){target.parents().each(function(){var parent=$(this),blurEvent;if(parent.data("ui-tooltip-open")){blurEvent=$.Event("blur");blurEvent.target=blurEvent.currentTarget=this;that.close(blurEvent,true);}
if(parent.attr("title")){parent.uniqueId();that.parents[this.id]={element:this,title:parent.attr("title")};parent.attr("title","");}});}
this._registerCloseHandlers(event,target);this._updateContent(target,event);},_updateContent:function(target,event){var content,contentOption=this.options.content,that=this,eventType=event?event.type:null;if(typeof contentOption==="string"||contentOption.nodeType||contentOption.jquery){return this._open(event,target,contentOption);}
content=contentOption.call(target[0],function(response){that._delay(function(){if(!target.data("ui-tooltip-open")){return;}
if(event){event.type=eventType;}
this._open(event,target,response);});});if(content){this._open(event,target,content);}},_open:function(event,target,content){var tooltipData,tooltip,delayedShow,a11yContent,positionOption=$.extend({},this.options.position);if(!content){return;}
tooltipData=this._find(target);if(tooltipData){tooltipData.tooltip.find(".ui-tooltip-content").html(content);return;}
if(target.is("[title]")){if(event&&event.type==="mouseover"){target.attr("title","");}else{target.removeAttr("title");}}
tooltipData=this._tooltip(target);tooltip=tooltipData.tooltip;this._addDescribedBy(target,tooltip.attr("id"));tooltip.find(".ui-tooltip-content").html(content);this.liveRegion.children().hide();a11yContent=$("<div>").html(tooltip.find(".ui-tooltip-content").html());a11yContent.removeAttr("name").find("[name]").removeAttr("name");a11yContent.removeAttr("id").find("[id]").removeAttr("id");a11yContent.appendTo(this.liveRegion);function position(event){positionOption.of=event;if(tooltip.is(":hidden")){return;}
tooltip.position(positionOption);}
if(this.options.track&&event&&/^mouse/.test(event.type)){this._on(this.document,{mousemove:position});position(event);}else{tooltip.position($.extend({of:target},this.options.position));}
tooltip.hide();this._show(tooltip,this.options.show);if(this.options.track&&this.options.show&&this.options.show.delay){delayedShow=this.delayedShow=setInterval(function(){if(tooltip.is(":visible")){position(positionOption.of);clearInterval(delayedShow);}},13);}
this._trigger("open",event,{tooltip:tooltip});},_registerCloseHandlers:function(event,target){var events={keyup:function(event){if(event.keyCode===$.ui.keyCode.ESCAPE){var fakeEvent=$.Event(event);fakeEvent.currentTarget=target[0];this.close(fakeEvent,true);}}};if(target[0]!==this.element[0]){events.remove=function(){var targetElement=this._find(target);if(targetElement){this._removeTooltip(targetElement.tooltip);}};}
if(!event||event.type==="mouseover"){events.mouseleave="close";}
if(!event||event.type==="focusin"){events.focusout="close";}
this._on(true,target,events);},close:function(event){var tooltip,that=this,target=$(event?event.currentTarget:this.element),tooltipData=this._find(target);if(!tooltipData){target.removeData("ui-tooltip-open");return;}
tooltip=tooltipData.tooltip;if(tooltipData.closing){return;}
clearInterval(this.delayedShow);if(target.data("ui-tooltip-title")&&!target.attr("title")){target.attr("title",target.data("ui-tooltip-title"));}
this._removeDescribedBy(target);tooltipData.hiding=true;tooltip.stop(true);this._hide(tooltip,this.options.hide,function(){that._removeTooltip($(this));});target.removeData("ui-tooltip-open");this._off(target,"mouseleave focusout keyup");if(target[0]!==this.element[0]){this._off(target,"remove");}
this._off(this.document,"mousemove");if(event&&event.type==="mouseleave"){$.each(this.parents,function(id,parent){$(parent.element).attr("title",parent.title);delete that.parents[id];});}
tooltipData.closing=true;this._trigger("close",event,{tooltip:tooltip});if(!tooltipData.hiding){tooltipData.closing=false;}},_tooltip:function(element){var tooltip=$("<div>").attr("role","tooltip"),content=$("<div>").appendTo(tooltip),id=tooltip.uniqueId().attr("id");this._addClass(content,"ui-tooltip-content");this._addClass(tooltip,"ui-tooltip","ui-widget ui-widget-content");tooltip.appendTo(this._appendTo(element));return this.tooltips[id]={element:element,tooltip:tooltip};},_find:function(target){var id=target.data("ui-tooltip-id");return id?this.tooltips[id]:null;},_removeTooltip:function(tooltip){clearInterval(this.delayedShow);tooltip.remove();delete this.tooltips[tooltip.attr("id")];},_appendTo:function(target){var element=target.closest(".ui-front, dialog");if(!element.length){element=this.document[0].body;}
return element;},_destroy:function(){var that=this;$.each(this.tooltips,function(id,tooltipData){var event=$.Event("blur"),element=tooltipData.element;event.target=event.currentTarget=element[0];that.close(event,true);$("#"+id).remove();if(element.data("ui-tooltip-title")){if(!element.attr("title")){element.attr("title",element.data("ui-tooltip-title"));}
element.removeData("ui-tooltip-title");}});this.liveRegion.remove();}});if($.uiBackCompat!==false){$.widget("ui.tooltip",$.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var tooltipData=this._superApply(arguments);if(this.options.tooltipClass){tooltipData.tooltip.addClass(this.options.tooltipClass);}
return tooltipData;}});}
var widgetsTooltip=$.ui.tooltip;var jQuery=$;var stepHooks="backgroundColor borderBottomColor borderLeftColor borderRightColor "+"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",class2type={},toString=class2type.toString,rplusequals=/^([\-+])=\s*(\d+\.?\d*)/,stringParsers=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[execResult[1],execResult[2],execResult[3],execResult[4]];}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[execResult[1]*2.55,execResult[2]*2.55,execResult[3]*2.55,execResult[4]];}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/,parse:function(execResult){return[parseInt(execResult[1],16),parseInt(execResult[2],16),parseInt(execResult[3],16),execResult[4]?(parseInt(execResult[4],16)/255).toFixed(2):1];}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/,parse:function(execResult){return[parseInt(execResult[1]+execResult[1],16),parseInt(execResult[2]+execResult[2],16),parseInt(execResult[3]+execResult[3],16),execResult[4]?(parseInt(execResult[4]+execResult[4],16)/255).toFixed(2):1];}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(execResult){return[execResult[1],execResult[2]/100,execResult[3]/100,execResult[4]];}}],color=jQuery.Color=function(color,green,blue,alpha){return new jQuery.Color.fn.parse(color,green,blue,alpha);},spaces={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},propTypes={"byte":{floor:true,max:255},"percent":{max:1},"degrees":{mod:360,floor:true}},support=color.support={},supportElem=jQuery("<p>")[0],colors,each=jQuery.each;supportElem.style.cssText="background-color:rgba(1,1,1,.5)";support.rgba=supportElem.style.backgroundColor.indexOf("rgba")>-1;each(spaces,function(spaceName,space){space.cache="_"+spaceName;space.props.alpha={idx:3,type:"percent",def:1};});jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(_i,name){class2type["[object "+name+"]"]=name.toLowerCase();});function getType(obj){if(obj==null){return obj+"";}
return typeof obj==="object"?class2type[toString.call(obj)]||"object":typeof obj;}
function clamp(value,prop,allowEmpty){var type=propTypes[prop.type]||{};if(value==null){return(allowEmpty||!prop.def)?null:prop.def;}
value=type.floor?~~value:parseFloat(value);if(isNaN(value)){return prop.def;}
if(type.mod){return(value+type.mod)%type.mod;}
return Math.min(type.max,Math.max(0,value));}
function stringParse(string){var inst=color(),rgba=inst._rgba=[];string=string.toLowerCase();each(stringParsers,function(_i,parser){var parsed,match=parser.re.exec(string),values=match&&parser.parse(match),spaceName=parser.space||"rgba";if(values){parsed=inst[spaceName](values);inst[spaces[spaceName].cache]=parsed[spaces[spaceName].cache];rgba=inst._rgba=parsed._rgba;return false;}});if(rgba.length){if(rgba.join()==="0,0,0,0"){jQuery.extend(rgba,colors.transparent);}
return inst;}
return colors[string];}
color.fn=jQuery.extend(color.prototype,{parse:function(red,green,blue,alpha){if(red===undefined){this._rgba=[null,null,null,null];return this;}
if(red.jquery||red.nodeType){red=jQuery(red).css(green);green=undefined;}
var inst=this,type=getType(red),rgba=this._rgba=[];if(green!==undefined){red=[red,green,blue,alpha];type="array";}
if(type==="string"){return this.parse(stringParse(red)||colors._default);}
if(type==="array"){each(spaces.rgba.props,function(_key,prop){rgba[prop.idx]=clamp(red[prop.idx],prop);});return this;}
if(type==="object"){if(red instanceof color){each(spaces,function(_spaceName,space){if(red[space.cache]){inst[space.cache]=red[space.cache].slice();}});}else{each(spaces,function(_spaceName,space){var cache=space.cache;each(space.props,function(key,prop){if(!inst[cache]&&space.to){if(key==="alpha"||red[key]==null){return;}
inst[cache]=space.to(inst._rgba);}
inst[cache][prop.idx]=clamp(red[key],prop,true);});if(inst[cache]&&jQuery.inArray(null,inst[cache].slice(0,3))<0){if(inst[cache][3]==null){inst[cache][3]=1;}
if(space.from){inst._rgba=space.from(inst[cache]);}}});}
return this;}},is:function(compare){var is=color(compare),same=true,inst=this;each(spaces,function(_,space){var localCache,isCache=is[space.cache];if(isCache){localCache=inst[space.cache]||space.to&&space.to(inst._rgba)||[];each(space.props,function(_,prop){if(isCache[prop.idx]!=null){same=(isCache[prop.idx]===localCache[prop.idx]);return same;}});}
return same;});return same;},_space:function(){var used=[],inst=this;each(spaces,function(spaceName,space){if(inst[space.cache]){used.push(spaceName);}});return used.pop();},transition:function(other,distance){var end=color(other),spaceName=end._space(),space=spaces[spaceName],startColor=this.alpha()===0?color("transparent"):this,start=startColor[space.cache]||space.to(startColor._rgba),result=start.slice();end=end[space.cache];each(space.props,function(_key,prop){var index=prop.idx,startValue=start[index],endValue=end[index],type=propTypes[prop.type]||{};if(endValue===null){return;}
if(startValue===null){result[index]=endValue;}else{if(type.mod){if(endValue-startValue>type.mod/2){startValue+=type.mod;}else if(startValue-endValue>type.mod/2){startValue-=type.mod;}}
result[index]=clamp((endValue-startValue)*distance+startValue,prop);}});return this[spaceName](result);},blend:function(opaque){if(this._rgba[3]===1){return this;}
var rgb=this._rgba.slice(),a=rgb.pop(),blend=color(opaque)._rgba;return color(jQuery.map(rgb,function(v,i){return(1-a)*blend[i]+a*v;}));},toRgbaString:function(){var prefix="rgba(",rgba=jQuery.map(this._rgba,function(v,i){if(v!=null){return v;}
return i>2?1:0;});if(rgba[3]===1){rgba.pop();prefix="rgb(";}
return prefix+rgba.join()+")";},toHslaString:function(){var prefix="hsla(",hsla=jQuery.map(this.hsla(),function(v,i){if(v==null){v=i>2?1:0;}
if(i&&i<3){v=Math.round(v*100)+"%";}
return v;});if(hsla[3]===1){hsla.pop();prefix="hsl(";}
return prefix+hsla.join()+")";},toHexString:function(includeAlpha){var rgba=this._rgba.slice(),alpha=rgba.pop();if(includeAlpha){rgba.push(~~(alpha*255));}
return"#"+jQuery.map(rgba,function(v){v=(v||0).toString(16);return v.length===1?"0"+v:v;}).join("");},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString();}});color.fn.parse.prototype=color.fn;function hue2rgb(p,q,h){h=(h+1)%1;if(h*6<1){return p+(q-p)*h*6;}
if(h*2<1){return q;}
if(h*3<2){return p+(q-p)*((2/3)-h)*6;}
return p;}
spaces.hsla.to=function(rgba){if(rgba[0]==null||rgba[1]==null||rgba[2]==null){return[null,null,null,rgba[3]];}
var r=rgba[0]/255,g=rgba[1]/255,b=rgba[2]/255,a=rgba[3],max=Math.max(r,g,b),min=Math.min(r,g,b),diff=max-min,add=max+min,l=add*0.5,h,s;if(min===max){h=0;}else if(r===max){h=(60*(g-b)/diff)+360;}else if(g===max){h=(60*(b-r)/diff)+120;}else{h=(60*(r-g)/diff)+240;}
if(diff===0){s=0;}else if(l<=0.5){s=diff/add;}else{s=diff/(2-add);}
return[Math.round(h)%360,s,l,a==null?1:a];};spaces.hsla.from=function(hsla){if(hsla[0]==null||hsla[1]==null||hsla[2]==null){return[null,null,null,hsla[3]];}
var h=hsla[0]/360,s=hsla[1],l=hsla[2],a=hsla[3],q=l<=0.5?l*(1+s):l+s-l*s,p=2*l-q;return[Math.round(hue2rgb(p,q,h+(1/3))*255),Math.round(hue2rgb(p,q,h)*255),Math.round(hue2rgb(p,q,h-(1/3))*255),a];};each(spaces,function(spaceName,space){var props=space.props,cache=space.cache,to=space.to,from=space.from;color.fn[spaceName]=function(value){if(to&&!this[cache]){this[cache]=to(this._rgba);}
if(value===undefined){return this[cache].slice();}
var ret,type=getType(value),arr=(type==="array"||type==="object")?value:arguments,local=this[cache].slice();each(props,function(key,prop){var val=arr[type==="object"?key:prop.idx];if(val==null){val=local[prop.idx];}
local[prop.idx]=clamp(val,prop);});if(from){ret=color(from(local));ret[cache]=local;return ret;}else{return color(local);}};each(props,function(key,prop){if(color.fn[key]){return;}
color.fn[key]=function(value){var local,cur,match,fn,vtype=getType(value);if(key==="alpha"){fn=this._hsla?"hsla":"rgba";}else{fn=spaceName;}
local=this[fn]();cur=local[prop.idx];if(vtype==="undefined"){return cur;}
if(vtype==="function"){value=value.call(this,cur);vtype=getType(value);}
if(value==null&&prop.empty){return this;}
if(vtype==="string"){match=rplusequals.exec(value);if(match){value=cur+parseFloat(match[2])*(match[1]==="+"?1:-1);}}
local[prop.idx]=value;return this[fn](local);};});});color.hook=function(hook){var hooks=hook.split(" ");each(hooks,function(_i,hook){jQuery.cssHooks[hook]={set:function(elem,value){var parsed,curElem,backgroundColor="";if(value!=="transparent"&&(getType(value)!=="string"||(parsed=stringParse(value)))){value=color(parsed||value);if(!support.rgba&&value._rgba[3]!==1){curElem=hook==="backgroundColor"?elem.parentNode:elem;while((backgroundColor===""||backgroundColor==="transparent")&&curElem&&curElem.style){try{backgroundColor=jQuery.css(curElem,"backgroundColor");curElem=curElem.parentNode;}catch(e){}}
value=value.blend(backgroundColor&&backgroundColor!=="transparent"?backgroundColor:"_default");}
value=value.toRgbaString();}
try{elem.style[hook]=value;}catch(e){}}};jQuery.fx.step[hook]=function(fx){if(!fx.colorInit){fx.start=color(fx.elem,hook);fx.end=color(fx.end);fx.colorInit=true;}
jQuery.cssHooks[hook].set(fx.elem,fx.start.transition(fx.end,fx.pos));};});};color.hook(stepHooks);jQuery.cssHooks.borderColor={expand:function(value){var expanded={};each(["Top","Right","Bottom","Left"],function(_i,part){expanded["border"+part+"Color"]=value;});return expanded;}};colors=jQuery.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"};var dataSpace="ui-effects-",dataSpaceStyle="ui-effects-style",dataSpaceAnimated="ui-effects-animated";$.effects={effect:{}};(function(){var classAnimationActions=["add","remove","toggle"],shorthandStyles={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};$.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(_,prop){$.fx.step[prop]=function(fx){if(fx.end!=="none"&&!fx.setAttr||fx.pos===1&&!fx.setAttr){jQuery.style(fx.elem,prop,fx.end);fx.setAttr=true;}};});function camelCase(string){return string.replace(/-([\da-z])/gi,function(all,letter){return letter.toUpperCase();});}
function getElementStyles(elem){var key,len,style=elem.ownerDocument.defaultView?elem.ownerDocument.defaultView.getComputedStyle(elem,null):elem.currentStyle,styles={};if(style&&style.length&&style[0]&&style[style[0]]){len=style.length;while(len--){key=style[len];if(typeof style[key]==="string"){styles[camelCase(key)]=style[key];}}}else{for(key in style){if(typeof style[key]==="string"){styles[key]=style[key];}}}
return styles;}
function styleDifference(oldStyle,newStyle){var diff={},name,value;for(name in newStyle){value=newStyle[name];if(oldStyle[name]!==value){if(!shorthandStyles[name]){if($.fx.step[name]||!isNaN(parseFloat(value))){diff[name]=value;}}}}
return diff;}
if(!$.fn.addBack){$.fn.addBack=function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));};}
$.effects.animateClass=function(value,duration,easing,callback){var o=$.speed(duration,easing,callback);return this.queue(function(){var animated=$(this),baseClass=animated.attr("class")||"",applyClassChange,allAnimations=o.children?animated.find("*").addBack():animated;allAnimations=allAnimations.map(function(){var el=$(this);return{el:el,start:getElementStyles(this)};});applyClassChange=function(){$.each(classAnimationActions,function(i,action){if(value[action]){animated[action+"Class"](value[action]);}});};applyClassChange();allAnimations=allAnimations.map(function(){this.end=getElementStyles(this.el[0]);this.diff=styleDifference(this.start,this.end);return this;});animated.attr("class",baseClass);allAnimations=allAnimations.map(function(){var styleInfo=this,dfd=$.Deferred(),opts=$.extend({},o,{queue:false,complete:function(){dfd.resolve(styleInfo);}});this.el.animate(this.diff,opts);return dfd.promise();});$.when.apply($,allAnimations.get()).done(function(){applyClassChange();$.each(arguments,function(){var el=this.el;$.each(this.diff,function(key){el.css(key,"");});});o.complete.call(animated[0]);});});};$.fn.extend({addClass:(function(orig){return function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{add:classNames},speed,easing,callback):orig.apply(this,arguments);};})($.fn.addClass),removeClass:(function(orig){return function(classNames,speed,easing,callback){return arguments.length>1?$.effects.animateClass.call(this,{remove:classNames},speed,easing,callback):orig.apply(this,arguments);};})($.fn.removeClass),toggleClass:(function(orig){return function(classNames,force,speed,easing,callback){if(typeof force==="boolean"||force===undefined){if(!speed){return orig.apply(this,arguments);}else{return $.effects.animateClass.call(this,(force?{add:classNames}:{remove:classNames}),speed,easing,callback);}}else{return $.effects.animateClass.call(this,{toggle:classNames},force,speed,easing);}};})($.fn.toggleClass),switchClass:function(remove,add,speed,easing,callback){return $.effects.animateClass.call(this,{add:add,remove:remove},speed,easing,callback);}});})();(function(){if($.expr&&$.expr.pseudos&&$.expr.pseudos.animated){$.expr.pseudos.animated=(function(orig){return function(elem){return!!$(elem).data(dataSpaceAnimated)||orig(elem);};})($.expr.pseudos.animated);}
if($.uiBackCompat!==false){$.extend($.effects,{save:function(element,set){var i=0,length=set.length;for(;i<length;i++){if(set[i]!==null){element.data(dataSpace+set[i],element[0].style[set[i]]);}}},restore:function(element,set){var val,i=0,length=set.length;for(;i<length;i++){if(set[i]!==null){val=element.data(dataSpace+set[i]);element.css(set[i],val);}}},setMode:function(el,mode){if(mode==="toggle"){mode=el.is(":hidden")?"show":"hide";}
return mode;},createWrapper:function(element){if(element.parent().is(".ui-effects-wrapper")){return element.parent();}
var props={width:element.outerWidth(true),height:element.outerHeight(true),"float":element.css("float")},wrapper=$("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),size={width:element.width(),height:element.height()},active=document.activeElement;try{active.id;}catch(e){active=document.body;}
element.wrap(wrapper);if(element[0]===active||$.contains(element[0],active)){$(active).trigger("focus");}
wrapper=element.parent();if(element.css("position")==="static"){wrapper.css({position:"relative"});element.css({position:"relative"});}else{$.extend(props,{position:element.css("position"),zIndex:element.css("z-index")});$.each(["top","left","bottom","right"],function(i,pos){props[pos]=element.css(pos);if(isNaN(parseInt(props[pos],10))){props[pos]="auto";}});element.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"});}
element.css(size);return wrapper.css(props).show();},removeWrapper:function(element){var active=document.activeElement;if(element.parent().is(".ui-effects-wrapper")){element.parent().replaceWith(element);if(element[0]===active||$.contains(element[0],active)){$(active).trigger("focus");}}
return element;}});}
$.extend($.effects,{version:"1.13.2",define:function(name,mode,effect){if(!effect){effect=mode;mode="effect";}
$.effects.effect[name]=effect;$.effects.effect[name].mode=mode;return effect;},scaledDimensions:function(element,percent,direction){if(percent===0){return{height:0,width:0,outerHeight:0,outerWidth:0};}
var x=direction!=="horizontal"?((percent||100)/100):1,y=direction!=="vertical"?((percent||100)/100):1;return{height:element.height()*y,width:element.width()*x,outerHeight:element.outerHeight()*y,outerWidth:element.outerWidth()*x};},clipToBox:function(animation){return{width:animation.clip.right-animation.clip.left,height:animation.clip.bottom-animation.clip.top,left:animation.clip.left,top:animation.clip.top};},unshift:function(element,queueLength,count){var queue=element.queue();if(queueLength>1){queue.splice.apply(queue,[1,0].concat(queue.splice(queueLength,count)));}
element.dequeue();},saveStyle:function(element){element.data(dataSpaceStyle,element[0].style.cssText);},restoreStyle:function(element){element[0].style.cssText=element.data(dataSpaceStyle)||"";element.removeData(dataSpaceStyle);},mode:function(element,mode){var hidden=element.is(":hidden");if(mode==="toggle"){mode=hidden?"show":"hide";}
if(hidden?mode==="hide":mode==="show"){mode="none";}
return mode;},getBaseline:function(origin,original){var y,x;switch(origin[0]){case"top":y=0;break;case"middle":y=0.5;break;case"bottom":y=1;break;default:y=origin[0]/original.height;}
switch(origin[1]){case"left":x=0;break;case"center":x=0.5;break;case"right":x=1;break;default:x=origin[1]/original.width;}
return{x:x,y:y};},createPlaceholder:function(element){var placeholder,cssPosition=element.css("position"),position=element.position();element.css({marginTop:element.css("marginTop"),marginBottom:element.css("marginBottom"),marginLeft:element.css("marginLeft"),marginRight:element.css("marginRight")}).outerWidth(element.outerWidth()).outerHeight(element.outerHeight());if(/^(static|relative)/.test(cssPosition)){cssPosition="absolute";placeholder=$("<"+element[0].nodeName+">").insertAfter(element).css({display:/^(inline|ruby)/.test(element.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:element.css("marginTop"),marginBottom:element.css("marginBottom"),marginLeft:element.css("marginLeft"),marginRight:element.css("marginRight"),"float":element.css("float")}).outerWidth(element.outerWidth()).outerHeight(element.outerHeight()).addClass("ui-effects-placeholder");element.data(dataSpace+"placeholder",placeholder);}
element.css({position:cssPosition,left:position.left,top:position.top});return placeholder;},removePlaceholder:function(element){var dataKey=dataSpace+"placeholder",placeholder=element.data(dataKey);if(placeholder){placeholder.remove();element.removeData(dataKey);}},cleanUp:function(element){$.effects.restoreStyle(element);$.effects.removePlaceholder(element);},setTransition:function(element,list,factor,value){value=value||{};$.each(list,function(i,x){var unit=element.cssUnit(x);if(unit[0]>0){value[x]=unit[0]*factor+unit[1];}});return value;}});function _normalizeArguments(effect,options,speed,callback){if($.isPlainObject(effect)){options=effect;effect=effect.effect;}
effect={effect:effect};if(options==null){options={};}
if(typeof options==="function"){callback=options;speed=null;options={};}
if(typeof options==="number"||$.fx.speeds[options]){callback=speed;speed=options;options={};}
if(typeof speed==="function"){callback=speed;speed=null;}
if(options){$.extend(effect,options);}
speed=speed||options.duration;effect.duration=$.fx.off?0:typeof speed==="number"?speed:speed in $.fx.speeds?$.fx.speeds[speed]:$.fx.speeds._default;effect.complete=callback||options.complete;return effect;}
function standardAnimationOption(option){if(!option||typeof option==="number"||$.fx.speeds[option]){return true;}
if(typeof option==="string"&&!$.effects.effect[option]){return true;}
if(typeof option==="function"){return true;}
if(typeof option==="object"&&!option.effect){return true;}
return false;}
$.fn.extend({effect:function(){var args=_normalizeArguments.apply(this,arguments),effectMethod=$.effects.effect[args.effect],defaultMode=effectMethod.mode,queue=args.queue,queueName=queue||"fx",complete=args.complete,mode=args.mode,modes=[],prefilter=function(next){var el=$(this),normalizedMode=$.effects.mode(el,mode)||defaultMode;el.data(dataSpaceAnimated,true);modes.push(normalizedMode);if(defaultMode&&(normalizedMode==="show"||(normalizedMode===defaultMode&&normalizedMode==="hide"))){el.show();}
if(!defaultMode||normalizedMode!=="none"){$.effects.saveStyle(el);}
if(typeof next==="function"){next();}};if($.fx.off||!effectMethod){if(mode){return this[mode](args.duration,complete);}else{return this.each(function(){if(complete){complete.call(this);}});}}
function run(next){var elem=$(this);function cleanup(){elem.removeData(dataSpaceAnimated);$.effects.cleanUp(elem);if(args.mode==="hide"){elem.hide();}
done();}
function done(){if(typeof complete==="function"){complete.call(elem[0]);}
if(typeof next==="function"){next();}}
args.mode=modes.shift();if($.uiBackCompat!==false&&!defaultMode){if(elem.is(":hidden")?mode==="hide":mode==="show"){elem[mode]();done();}else{effectMethod.call(elem[0],args,done);}}else{if(args.mode==="none"){elem[mode]();done();}else{effectMethod.call(elem[0],args,cleanup);}}}
return queue===false?this.each(prefilter).each(run):this.queue(queueName,prefilter).queue(queueName,run);},show:(function(orig){return function(option){if(standardAnimationOption(option)){return orig.apply(this,arguments);}else{var args=_normalizeArguments.apply(this,arguments);args.mode="show";return this.effect.call(this,args);}};})($.fn.show),hide:(function(orig){return function(option){if(standardAnimationOption(option)){return orig.apply(this,arguments);}else{var args=_normalizeArguments.apply(this,arguments);args.mode="hide";return this.effect.call(this,args);}};})($.fn.hide),toggle:(function(orig){return function(option){if(standardAnimationOption(option)||typeof option==="boolean"){return orig.apply(this,arguments);}else{var args=_normalizeArguments.apply(this,arguments);args.mode="toggle";return this.effect.call(this,args);}};})($.fn.toggle),cssUnit:function(key){var style=this.css(key),val=[];$.each(["em","px","%","pt"],function(i,unit){if(style.indexOf(unit)>0){val=[parseFloat(style),unit];}});return val;},cssClip:function(clipObj){if(clipObj){return this.css("clip","rect("+clipObj.top+"px "+clipObj.right+"px "+
clipObj.bottom+"px "+clipObj.left+"px)");}
return parseClip(this.css("clip"),this);},transfer:function(options,done){var element=$(this),target=$(options.to),targetFixed=target.css("position")==="fixed",body=$("body"),fixTop=targetFixed?body.scrollTop():0,fixLeft=targetFixed?body.scrollLeft():0,endPosition=target.offset(),animation={top:endPosition.top-fixTop,left:endPosition.left-fixLeft,height:target.innerHeight(),width:target.innerWidth()},startPosition=element.offset(),transfer=$("<div class='ui-effects-transfer'></div>");transfer.appendTo("body").addClass(options.className).css({top:startPosition.top-fixTop,left:startPosition.left-fixLeft,height:element.innerHeight(),width:element.innerWidth(),position:targetFixed?"fixed":"absolute"}).animate(animation,options.duration,options.easing,function(){transfer.remove();if(typeof done==="function"){done();}});}});function parseClip(str,element){var outerWidth=element.outerWidth(),outerHeight=element.outerHeight(),clipRegex=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,values=clipRegex.exec(str)||["",0,outerWidth,outerHeight,0];return{top:parseFloat(values[1])||0,right:values[2]==="auto"?outerWidth:parseFloat(values[2]),bottom:values[3]==="auto"?outerHeight:parseFloat(values[3]),left:parseFloat(values[4])||0};}
$.fx.step.clip=function(fx){if(!fx.clipInit){fx.start=$(fx.elem).cssClip();if(typeof fx.end==="string"){fx.end=parseClip(fx.end,fx.elem);}
fx.clipInit=true;}
$(fx.elem).cssClip({top:fx.pos*(fx.end.top-fx.start.top)+fx.start.top,right:fx.pos*(fx.end.right-fx.start.right)+fx.start.right,bottom:fx.pos*(fx.end.bottom-fx.start.bottom)+fx.start.bottom,left:fx.pos*(fx.end.left-fx.start.left)+fx.start.left});};})();(function(){var baseEasings={};$.each(["Quad","Cubic","Quart","Quint","Expo"],function(i,name){baseEasings[name]=function(p){return Math.pow(p,i+2);};});$.extend(baseEasings,{Sine:function(p){return 1-Math.cos(p*Math.PI/2);},Circ:function(p){return 1-Math.sqrt(1-p*p);},Elastic:function(p){return p===0||p===1?p:-Math.pow(2,8*(p-1))*Math.sin(((p-1)*80-7.5)*Math.PI/15);},Back:function(p){return p*p*(3*p-2);},Bounce:function(p){var pow2,bounce=4;while(p<((pow2=Math.pow(2,--bounce))-1)/11){}
return 1/Math.pow(4,3-bounce)-7.5625*Math.pow((pow2*3-2)/22-p,2);}});$.each(baseEasings,function(name,easeIn){$.easing["easeIn"+name]=easeIn;$.easing["easeOut"+name]=function(p){return 1-easeIn(1-p);};$.easing["easeInOut"+name]=function(p){return p<0.5?easeIn(p*2)/2:1-easeIn(p* -2+2)/2;};});})();var effect=$.effects;var effectsEffectDrop=$.effects.define("drop","hide",function(options,done){var distance,element=$(this),mode=options.mode,show=mode==="show",direction=options.direction||"left",ref=(direction==="up"||direction==="down")?"top":"left",motion=(direction==="up"||direction==="left")?"-=":"+=",oppositeMotion=(motion==="+=")?"-=":"+=",animation={opacity:0};$.effects.createPlaceholder(element);distance=options.distance||element[ref==="top"?"outerHeight":"outerWidth"](true)/2;animation[ref]=motion+distance;if(show){element.css(animation);animation[ref]=oppositeMotion+distance;animation.opacity=1;}
element.animate(animation,{queue:false,duration:options.duration,easing:options.easing,complete:done});});var effectsEffectFade=$.effects.define("fade","toggle",function(options,done){var show=options.mode==="show";$(this).css("opacity",show?0:1).animate({opacity:show?1:0},{queue:false,duration:options.duration,easing:options.easing,complete:done});});var effectsEffectHighlight=$.effects.define("highlight","show",function(options,done){var element=$(this),animation={backgroundColor:element.css("backgroundColor")};if(options.mode==="hide"){animation.opacity=0;}
$.effects.saveStyle(element);element.css({backgroundImage:"none",backgroundColor:options.color||"#ffff99"}).animate(animation,{queue:false,duration:options.duration,easing:options.easing,complete:done});});var effectsEffectSize=$.effects.define("size",function(options,done){var baseline,factor,temp,element=$(this),cProps=["fontSize"],vProps=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],hProps=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],mode=options.mode,restore=mode!=="effect",scale=options.scale||"both",origin=options.origin||["middle","center"],position=element.css("position"),pos=element.position(),original=$.effects.scaledDimensions(element),from=options.from||original,to=options.to||$.effects.scaledDimensions(element,0);$.effects.createPlaceholder(element);if(mode==="show"){temp=from;from=to;to=temp;}
factor={from:{y:from.height/original.height,x:from.width/original.width},to:{y:to.height/original.height,x:to.width/original.width}};if(scale==="box"||scale==="both"){if(factor.from.y!==factor.to.y){from=$.effects.setTransition(element,vProps,factor.from.y,from);to=$.effects.setTransition(element,vProps,factor.to.y,to);}
if(factor.from.x!==factor.to.x){from=$.effects.setTransition(element,hProps,factor.from.x,from);to=$.effects.setTransition(element,hProps,factor.to.x,to);}}
if(scale==="content"||scale==="both"){if(factor.from.y!==factor.to.y){from=$.effects.setTransition(element,cProps,factor.from.y,from);to=$.effects.setTransition(element,cProps,factor.to.y,to);}}
if(origin){baseline=$.effects.getBaseline(origin,original);from.top=(original.outerHeight-from.outerHeight)*baseline.y+pos.top;from.left=(original.outerWidth-from.outerWidth)*baseline.x+pos.left;to.top=(original.outerHeight-to.outerHeight)*baseline.y+pos.top;to.left=(original.outerWidth-to.outerWidth)*baseline.x+pos.left;}
delete from.outerHeight;delete from.outerWidth;element.css(from);if(scale==="content"||scale==="both"){vProps=vProps.concat(["marginTop","marginBottom"]).concat(cProps);hProps=hProps.concat(["marginLeft","marginRight"]);element.find("*[width]").each(function(){var child=$(this),childOriginal=$.effects.scaledDimensions(child),childFrom={height:childOriginal.height*factor.from.y,width:childOriginal.width*factor.from.x,outerHeight:childOriginal.outerHeight*factor.from.y,outerWidth:childOriginal.outerWidth*factor.from.x},childTo={height:childOriginal.height*factor.to.y,width:childOriginal.width*factor.to.x,outerHeight:childOriginal.height*factor.to.y,outerWidth:childOriginal.width*factor.to.x};if(factor.from.y!==factor.to.y){childFrom=$.effects.setTransition(child,vProps,factor.from.y,childFrom);childTo=$.effects.setTransition(child,vProps,factor.to.y,childTo);}
if(factor.from.x!==factor.to.x){childFrom=$.effects.setTransition(child,hProps,factor.from.x,childFrom);childTo=$.effects.setTransition(child,hProps,factor.to.x,childTo);}
if(restore){$.effects.saveStyle(child);}
child.css(childFrom);child.animate(childTo,options.duration,options.easing,function(){if(restore){$.effects.restoreStyle(child);}});});}
element.animate(to,{queue:false,duration:options.duration,easing:options.easing,complete:function(){var offset=element.offset();if(to.opacity===0){element.css("opacity",from.opacity);}
if(!restore){element.css("position",position==="static"?"relative":position).offset(offset);$.effects.saveStyle(element);}
done();}});});var effectsEffectScale=$.effects.define("scale",function(options,done){var el=$(this),mode=options.mode,percent=parseInt(options.percent,10)||(parseInt(options.percent,10)===0?0:(mode!=="effect"?0:100)),newOptions=$.extend(true,{from:$.effects.scaledDimensions(el),to:$.effects.scaledDimensions(el,percent,options.direction||"both"),origin:options.origin||["middle","center"]},options);if(options.fade){newOptions.from.opacity=1;newOptions.to.opacity=0;}
$.effects.effect.size.call(this,newOptions,done);});var effectsEffectShake=$.effects.define("shake",function(options,done){var i=1,element=$(this),direction=options.direction||"left",distance=options.distance||20,times=options.times||3,anims=times*2+1,speed=Math.round(options.duration/anims),ref=(direction==="up"||direction==="down")?"top":"left",positiveMotion=(direction==="up"||direction==="left"),animation={},animation1={},animation2={},queuelen=element.queue().length;$.effects.createPlaceholder(element);animation[ref]=(positiveMotion?"-=":"+=")+distance;animation1[ref]=(positiveMotion?"+=":"-=")+distance*2;animation2[ref]=(positiveMotion?"-=":"+=")+distance*2;element.animate(animation,speed,options.easing);for(;i<times;i++){element.animate(animation1,speed,options.easing).animate(animation2,speed,options.easing);}
element.animate(animation1,speed,options.easing).animate(animation,speed/2,options.easing).queue(done);$.effects.unshift(element,queuelen,anims+1);});var effectsEffectSlide=$.effects.define("slide","show",function(options,done){var startClip,startRef,element=$(this),map={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},mode=options.mode,direction=options.direction||"left",ref=(direction==="up"||direction==="down")?"top":"left",positiveMotion=(direction==="up"||direction==="left"),distance=options.distance||element[ref==="top"?"outerHeight":"outerWidth"](true),animation={};$.effects.createPlaceholder(element);startClip=element.cssClip();startRef=element.position()[ref];animation[ref]=(positiveMotion?-1:1)*distance+startRef;animation.clip=element.cssClip();animation.clip[map[direction][1]]=animation.clip[map[direction][0]];if(mode==="show"){element.cssClip(animation.clip);element.css(ref,animation[ref]);animation.clip=startClip;animation[ref]=startRef;}
element.animate(animation,{queue:false,duration:options.duration,easing:options.easing,complete:done});});var effect;if($.uiBackCompat!==false){effect=$.effects.define("transfer",function(options,done){$(this).transfer(options,done);});}
var effectsEffectTransfer=effect;});
;;;(function(glob){var version="0.5.0",has="hasOwnProperty",separator=/[\.\/]/,comaseparator=/\s*,\s*/,wildcard="*",fun=function(){},numsort=function(a,b){return a-b;},current_event,stop,events={n:{}},firstDefined=function(){for(var i=0,ii=this.length;i<ii;i++){if(typeof this[i]!="undefined"){return this[i];}}},lastDefined=function(){var i=this.length;while(--i){if(typeof this[i]!="undefined"){return this[i];}}},objtos=Object.prototype.toString,Str=String,isArray=Array.isArray||function(ar){return ar instanceof Array||objtos.call(ar)=="[object Array]";};eve=function(name,scope){var e=events,oldstop=stop,args=Array.prototype.slice.call(arguments,2),listeners=eve.listeners(name),z=0,f=false,l,indexed=[],queue={},out=[],ce=current_event,errors=[];out.firstDefined=firstDefined;out.lastDefined=lastDefined;current_event=name;stop=0;for(var i=0,ii=listeners.length;i<ii;i++)if("zIndex" in listeners[i]){indexed.push(listeners[i].zIndex);if(listeners[i].zIndex<0){queue[listeners[i].zIndex]=listeners[i];}}
indexed.sort(numsort);while(indexed[z]<0){l=queue[indexed[z++]];out.push(l.apply(scope,args));if(stop){stop=oldstop;return out;}}
for(i=0;i<ii;i++){l=listeners[i];if("zIndex" in l){if(l.zIndex==indexed[z]){out.push(l.apply(scope,args));if(stop){break;}
do{z++;l=queue[indexed[z]];l&&out.push(l.apply(scope,args));if(stop){break;}}while(l)}else{queue[l.zIndex]=l;}}else{out.push(l.apply(scope,args));if(stop){break;}}}
stop=oldstop;current_event=ce;return out;};eve._events=events;eve.listeners=function(name){var names=isArray(name)?name:name.split(separator),e=events,item,items,k,i,ii,j,jj,nes,es=[e],out=[];for(i=0,ii=names.length;i<ii;i++){nes=[];for(j=0,jj=es.length;j<jj;j++){e=es[j].n;items=[e[names[i]],e[wildcard]];k=2;while(k--){item=items[k];if(item){nes.push(item);out=out.concat(item.f||[]);}}}
es=nes;}
return out;};eve.separator=function(sep){if(sep){sep=Str(sep).replace(/(?=[\.\^\]\[\-])/g,"\\");sep="["+sep+"]";separator=new RegExp(sep);}else{separator=/[\.\/]/;}};eve.on=function(name,f){if(typeof f!="function"){return function(){};}
var names=isArray(name)?(isArray(name[0])?name:[name]):Str(name).split(comaseparator);for(var i=0,ii=names.length;i<ii;i++){(function(name){var names=isArray(name)?name:Str(name).split(separator),e=events,exist;for(var i=0,ii=names.length;i<ii;i++){e=e.n;e=e.hasOwnProperty(names[i])&&e[names[i]]||(e[names[i]]={n:{}});}
e.f=e.f||[];for(i=0,ii=e.f.length;i<ii;i++)if(e.f[i]==f){exist=true;break;}
!exist&&e.f.push(f);}(names[i]));}
return function(zIndex){if(+zIndex==+zIndex){f.zIndex=+zIndex;}};};eve.f=function(event){var attrs=[].slice.call(arguments,1);return function(){eve.apply(null,[event,null].concat(attrs).concat([].slice.call(arguments,0)));};};eve.stop=function(){stop=1;};eve.nt=function(subname){var cur=isArray(current_event)?current_event.join("."):current_event;if(subname){return new RegExp("(?:\\.|\\/|^)"+subname+"(?:\\.|\\/|$)").test(cur);}
return cur;};eve.nts=function(){return isArray(current_event)?current_event:current_event.split(separator);};eve.off=eve.unbind=function(name,f){if(!name){eve._events=events={n:{}};return;}
var names=isArray(name)?(isArray(name[0])?name:[name]):Str(name).split(comaseparator);if(names.length>1){for(var i=0,ii=names.length;i<ii;i++){eve.off(names[i],f);}
return;}
names=isArray(name)?name:Str(name).split(separator);var e,key,splice,i,ii,j,jj,cur=[events],inodes=[];for(i=0,ii=names.length;i<ii;i++){for(j=0;j<cur.length;j+=splice.length-2){splice=[j,1];e=cur[j].n;if(names[i]!=wildcard){if(e[names[i]]){splice.push(e[names[i]]);inodes.unshift({n:e,name:names[i]});}}else{for(key in e)if(e[has](key)){splice.push(e[key]);inodes.unshift({n:e,name:key});}}
cur.splice.apply(cur,splice);}}
for(i=0,ii=cur.length;i<ii;i++){e=cur[i];while(e.n){if(f){if(e.f){for(j=0,jj=e.f.length;j<jj;j++)if(e.f[j]==f){e.f.splice(j,1);break;}
!e.f.length&&delete e.f;}
for(key in e.n)if(e.n[has](key)&&e.n[key].f){var funcs=e.n[key].f;for(j=0,jj=funcs.length;j<jj;j++)if(funcs[j]==f){funcs.splice(j,1);break;}
!funcs.length&&delete e.n[key].f;}}else{delete e.f;for(key in e.n)if(e.n[has](key)&&e.n[key].f){delete e.n[key].f;}}
e=e.n;}}
prune:for(i=0,ii=inodes.length;i<ii;i++){e=inodes[i];for(key in e.n[e.name].f){continue prune;}
for(key in e.n[e.name].n){continue prune;}
delete e.n[e.name];}};eve.once=function(name,f){var f2=function(){eve.off(name,f2);return f.apply(this,arguments);};return eve.on(name,f2);};eve.version=version;eve.toString=function(){return"You are running Eve "+version;};(typeof module!="undefined"&&module.exports)?(module.exports=eve):(typeof define==="function"&&define.amd?(define("eve",[],function(){return eve;})):(glob.eve=eve));})(this);(function(glob,factory){if(typeof define=="function"&&define.amd){define(["eve"],function(eve){return factory(glob,eve);});}else if(typeof exports!="undefined"){var eve=require("eve");module.exports=factory(glob,eve);}else{factory(glob,glob.eve);}}(window||this,function(window,eve){var mina=(function(eve){var animations={},requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){setTimeout(callback,16,new Date().getTime());return true;},requestID,isArray=Array.isArray||function(a){return a instanceof Array||Object.prototype.toString.call(a)=="[object Array]";},idgen=0,idprefix="M"+(+new Date).toString(36),ID=function(){return idprefix+(idgen++).toString(36);},diff=function(a,b,A,B){if(isArray(a)){res=[];for(var i=0,ii=a.length;i<ii;i++){res[i]=diff(a[i],b,A[i],B);}
return res;}
var dif=(A-a)/(B-b);return function(bb){return a+dif*(bb-b);};},timer=Date.now||function(){return+new Date;},sta=function(val){var a=this;if(val==null){return a.s;}
var ds=a.s-val;a.b+=a.dur*ds;a.B+=a.dur*ds;a.s=val;},speed=function(val){var a=this;if(val==null){return a.spd;}
a.spd=val;},duration=function(val){var a=this;if(val==null){return a.dur;}
a.s=a.s*val/a.dur;a.dur=val;},stopit=function(){var a=this;delete animations[a.id];a.update();eve("mina.stop."+a.id,a);},pause=function(){var a=this;if(a.pdif){return;}
delete animations[a.id];a.update();a.pdif=a.get()-a.b;},resume=function(){var a=this;if(!a.pdif){return;}
a.b=a.get()-a.pdif;delete a.pdif;animations[a.id]=a;frame();},update=function(){var a=this,res;if(isArray(a.start)){res=[];for(var j=0,jj=a.start.length;j<jj;j++){res[j]=+a.start[j]+
(a.end[j]-a.start[j])*a.easing(a.s);}}else{res=+a.start+(a.end-a.start)*a.easing(a.s);}
a.set(res);},frame=function(timeStamp){if(!timeStamp){if(!requestID){requestID=requestAnimFrame(frame);}
return;}
var len=0;for(var i in animations)if(animations.hasOwnProperty(i)){var a=animations[i],b=a.get(),res;len++;a.s=(b-a.b)/(a.dur/a.spd);if(a.s>=1){delete animations[i];a.s=1;len--;(function(a){setTimeout(function(){eve("mina.finish."+a.id,a);});}(a));}
a.update();}
requestID=len?requestAnimFrame(frame):false;},mina=function(a,A,b,B,get,set,easing){var anim={id:ID(),start:a,end:A,b:b,s:0,dur:B-b,spd:1,get:get,set:set,easing:easing||mina.linear,status:sta,speed:speed,duration:duration,stop:stopit,pause:pause,resume:resume,update:update};animations[anim.id]=anim;var len=0,i;for(i in animations)if(animations.hasOwnProperty(i)){len++;if(len==2){break;}}
len==1&&frame();return anim;};mina.time=timer;mina.getById=function(id){return animations[id]||null;};mina.linear=function(n){return n;};mina.easeout=function(n){return Math.pow(n,1.7);};mina.easein=function(n){return Math.pow(n,.48);};mina.easeinout=function(n){if(n==1){return 1;}
if(n==0){return 0;}
var q=.48-n/1.04,Q=Math.sqrt(.1734+q*q),x=Q-q,X=Math.pow(Math.abs(x),1/3)*(x<0?-1:1),y=-Q-q,Y=Math.pow(Math.abs(y),1/3)*(y<0?-1:1),t=X+Y+.5;return(1-t)*3*t*t+t*t*t;};mina.backin=function(n){if(n==1){return 1;}
var s=1.70158;return n*n*((s+1)*n-s);};mina.backout=function(n){if(n==0){return 0;}
n=n-1;var s=1.70158;return n*n*((s+1)*n+s)+1;};mina.elastic=function(n){if(n==!!n){return n;}
return Math.pow(2,-10*n)*Math.sin((n-.075)*(2*Math.PI)/.3)+1;};mina.bounce=function(n){var s=7.5625,p=2.75,l;if(n<1/p){l=s*n*n;}else{if(n<2/p){n-=1.5/p;l=s*n*n+.75;}else{if(n<2.5/p){n-=2.25/p;l=s*n*n+.9375;}else{n-=2.625/p;l=s*n*n+.984375;}}}
return l;};window.mina=mina;return mina;})(typeof eve=="undefined"?function(){}:eve);var Snap=(function(root){Snap.version="0.5.1";function Snap(w,h){if(w){if(w.nodeType){return wrap(w);}
if(is(w,"array")&&Snap.set){return Snap.set.apply(Snap,w);}
if(w instanceof Element){return w;}
if(h==null){try{w=glob.doc.querySelector(String(w));return wrap(w);}catch(e){return null;}}}
w=w==null?"100%":w;h=h==null?"100%":h;return new Paper(w,h);}
Snap.toString=function(){return"Snap v"+this.version;};Snap._={};var glob={win:root.window,doc:root.window.document};Snap._.glob=glob;var has="hasOwnProperty",Str=String,toFloat=parseFloat,toInt=parseInt,math=Math,mmax=math.max,mmin=math.min,abs=math.abs,pow=math.pow,PI=math.PI,round=math.round,E="",S=" ",objectToString=Object.prototype.toString,ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,colourRegExp=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i,bezierrg=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,separator=Snap._.separator=/[,\s]+/,whitespace=/[\s]/g,commaSpaces=/[\s]*,[\s]*/,hsrg={hs:1,rg:1},pathCommand=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/ig,tCommand=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/ig,pathValues=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\s]*,?[\s]*/ig,idgen=0,idprefix="S"+(+new Date).toString(36),ID=function(el){return(el&&el.type?el.type:E)+idprefix+(idgen++).toString(36);},xlink="http://www.w3.org/1999/xlink",xmlns="http://www.w3.org/2000/svg",hub={},URL=Snap.url=function(url){return"url('#"+url+"')";};function $(el,attr){if(attr){if(el=="#text"){el=glob.doc.createTextNode(attr.text||attr["#text"]||"");}
if(el=="#comment"){el=glob.doc.createComment(attr.text||attr["#text"]||"");}
if(typeof el=="string"){el=$(el);}
if(typeof attr=="string"){if(el.nodeType==1){if(attr.substring(0,6)=="xlink:"){return el.getAttributeNS(xlink,attr.substring(6));}
if(attr.substring(0,4)=="xml:"){return el.getAttributeNS(xmlns,attr.substring(4));}
return el.getAttribute(attr);}else if(attr=="text"){return el.nodeValue;}else{return null;}}
if(el.nodeType==1){for(var key in attr)if(attr[has](key)){var val=Str(attr[key]);if(val){if(key.substring(0,6)=="xlink:"){el.setAttributeNS(xlink,key.substring(6),val);}else if(key.substring(0,4)=="xml:"){el.setAttributeNS(xmlns,key.substring(4),val);}else{el.setAttribute(key,val);}}else{el.removeAttribute(key);}}}else if("text" in attr){el.nodeValue=attr.text;}}else{el=glob.doc.createElementNS(xmlns,el);}
return el;}
Snap._.$=$;Snap._.id=ID;function getAttrs(el){var attrs=el.attributes,name,out={};for(var i=0;i<attrs.length;i++){if(attrs[i].namespaceURI==xlink){name="xlink:";}else{name="";}
name+=attrs[i].name;out[name]=attrs[i].textContent;}
return out;}
function is(o,type){type=Str.prototype.toLowerCase.call(type);if(type=="finite"){return isFinite(o);}
if(type=="array"&&(o instanceof Array||Array.isArray&&Array.isArray(o))){return true;}
return type=="null"&&o===null||type==typeof o&&o!==null||type=="object"&&o===Object(o)||objectToString.call(o).slice(8,-1).toLowerCase()==type;}
Snap.format=(function(){var tokenRegex=/\{([^\}]+)\}/g,objNotationRegex=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,replacer=function(all,key,obj){var res=obj;key.replace(objNotationRegex,function(all,name,quote,quotedName,isFunc){name=name||quotedName;if(res){if(name in res){res=res[name];}
typeof res=="function"&&isFunc&&(res=res());}});res=(res==null||res==obj?all:res)+"";return res;};return function(str,obj){return Str(str).replace(tokenRegex,function(all,key){return replacer(all,key,obj);});};})();function clone(obj){if(typeof obj=="function"||Object(obj)!==obj){return obj;}
var res=new obj.constructor;for(var key in obj)if(obj[has](key)){res[key]=clone(obj[key]);}
return res;}
Snap._.clone=clone;function repush(array,item){for(var i=0,ii=array.length;i<ii;i++)if(array[i]===item){return array.push(array.splice(i,1)[0]);}}
function cacher(f,scope,postprocessor){function newf(){var arg=Array.prototype.slice.call(arguments,0),args=arg.join("\u2400"),cache=newf.cache=newf.cache||{},count=newf.count=newf.count||[];if(cache[has](args)){repush(count,args);return postprocessor?postprocessor(cache[args]):cache[args];}
count.length>=1e3&&delete cache[count.shift()];count.push(args);cache[args]=f.apply(scope,arg);return postprocessor?postprocessor(cache[args]):cache[args];}
return newf;}
Snap._.cacher=cacher;function angle(x1,y1,x2,y2,x3,y3){if(x3==null){var x=x1-x2,y=y1-y2;if(!x&&!y){return 0;}
return(180+math.atan2(-y,-x)*180/PI+360)%360;}else{return angle(x1,y1,x3,y3)-angle(x2,y2,x3,y3);}}
function rad(deg){return deg%360*PI/180;}
function deg(rad){return rad*180/PI%360;}
function x_y(){return this.x+S+this.y;}
function x_y_w_h(){return this.x+S+this.y+S+this.width+" \xd7 "+this.height;}
Snap.rad=rad;Snap.deg=deg;Snap.sin=function(angle){return math.sin(Snap.rad(angle));};Snap.tan=function(angle){return math.tan(Snap.rad(angle));};Snap.cos=function(angle){return math.cos(Snap.rad(angle));};Snap.asin=function(num){return Snap.deg(math.asin(num));};Snap.acos=function(num){return Snap.deg(math.acos(num));};Snap.atan=function(num){return Snap.deg(math.atan(num));};Snap.atan2=function(num){return Snap.deg(math.atan2(num));};Snap.angle=angle;Snap.len=function(x1,y1,x2,y2){return Math.sqrt(Snap.len2(x1,y1,x2,y2));};Snap.len2=function(x1,y1,x2,y2){return(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);};Snap.closestPoint=function(path,x,y){function distance2(p){var dx=p.x-x,dy=p.y-y;return dx*dx+dy*dy;}
var pathNode=path.node,pathLength=pathNode.getTotalLength(),precision=pathLength/pathNode.pathSegList.numberOfItems*.125,best,bestLength,bestDistance=Infinity;for(var scan,scanLength=0,scanDistance;scanLength<=pathLength;scanLength+=precision){if((scanDistance=distance2(scan=pathNode.getPointAtLength(scanLength)))<bestDistance){best=scan;bestLength=scanLength;bestDistance=scanDistance;}}
precision*=.5;while(precision>.5){var before,after,beforeLength,afterLength,beforeDistance,afterDistance;if((beforeLength=bestLength-precision)>=0&&(beforeDistance=distance2(before=pathNode.getPointAtLength(beforeLength)))<bestDistance){best=before;bestLength=beforeLength;bestDistance=beforeDistance;}else if((afterLength=bestLength+precision)<=pathLength&&(afterDistance=distance2(after=pathNode.getPointAtLength(afterLength)))<bestDistance){best=after;bestLength=afterLength;bestDistance=afterDistance;}else{precision*=.5;}}
best={x:best.x,y:best.y,length:bestLength,distance:Math.sqrt(bestDistance)};return best;}
Snap.is=is;Snap.snapTo=function(values,value,tolerance){tolerance=is(tolerance,"finite")?tolerance:10;if(is(values,"array")){var i=values.length;while(i--)if(abs(values[i]-value)<=tolerance){return values[i];}}else{values=+values;var rem=value%values;if(rem<tolerance){return value-rem;}
if(rem>values-tolerance){return value-rem+values;}}
return value;};Snap.getRGB=cacher(function(colour){if(!colour||!!((colour=Str(colour)).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:rgbtoString};}
if(colour=="none"){return{r:-1,g:-1,b:-1,hex:"none",toString:rgbtoString};}
!(hsrg[has](colour.toLowerCase().substring(0,2))||colour.charAt()=="#")&&(colour=toHex(colour));if(!colour){return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:rgbtoString};}
var res,red,green,blue,opacity,t,values,rgb=colour.match(colourRegExp);if(rgb){if(rgb[2]){blue=toInt(rgb[2].substring(5),16);green=toInt(rgb[2].substring(3,5),16);red=toInt(rgb[2].substring(1,3),16);}
if(rgb[3]){blue=toInt((t=rgb[3].charAt(3))+t,16);green=toInt((t=rgb[3].charAt(2))+t,16);red=toInt((t=rgb[3].charAt(1))+t,16);}
if(rgb[4]){values=rgb[4].split(commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red*=2.55);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green*=2.55);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue*=2.55);rgb[1].toLowerCase().slice(0,4)=="rgba"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);}
if(rgb[5]){values=rgb[5].split(commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red/=100);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green/=100);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue/=100);(values[0].slice(-3)=="deg"||values[0].slice(-1)=="\xb0")&&(red/=360);rgb[1].toLowerCase().slice(0,4)=="hsba"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);return Snap.hsb2rgb(red,green,blue,opacity);}
if(rgb[6]){values=rgb[6].split(commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red/=100);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green/=100);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue/=100);(values[0].slice(-3)=="deg"||values[0].slice(-1)=="\xb0")&&(red/=360);rgb[1].toLowerCase().slice(0,4)=="hsla"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);return Snap.hsl2rgb(red,green,blue,opacity);}
red=mmin(math.round(red),255);green=mmin(math.round(green),255);blue=mmin(math.round(blue),255);opacity=mmin(mmax(opacity,0),1);rgb={r:red,g:green,b:blue,toString:rgbtoString};rgb.hex="#"+(16777216|blue|green<<8|red<<16).toString(16).slice(1);rgb.opacity=is(opacity,"finite")?opacity:1;return rgb;}
return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:rgbtoString};},Snap);Snap.hsb=cacher(function(h,s,b){return Snap.hsb2rgb(h,s,b).hex;});Snap.hsl=cacher(function(h,s,l){return Snap.hsl2rgb(h,s,l).hex;});Snap.rgb=cacher(function(r,g,b,o){if(is(o,"finite")){var round=math.round;return"rgba("+[round(r),round(g),round(b),+o.toFixed(2)]+")";}
return"#"+(16777216|b|g<<8|r<<16).toString(16).slice(1);});var toHex=function(color){var i=glob.doc.getElementsByTagName("head")[0]||glob.doc.getElementsByTagName("svg")[0],red="rgb(255, 0, 0)";toHex=cacher(function(color){if(color.toLowerCase()=="red"){return red;}
i.style.color=red;i.style.color=color;var out=glob.doc.defaultView.getComputedStyle(i,E).getPropertyValue("color");return out==red?null:out;});return toHex(color);},hsbtoString=function(){return"hsb("+[this.h,this.s,this.b]+")";},hsltoString=function(){return"hsl("+[this.h,this.s,this.l]+")";},rgbtoString=function(){return this.opacity==1||this.opacity==null?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")";},prepareRGB=function(r,g,b){if(g==null&&is(r,"object")&&"r" in r&&"g" in r&&"b" in r){b=r.b;g=r.g;r=r.r;}
if(g==null&&is(r,string)){var clr=Snap.getRGB(r);r=clr.r;g=clr.g;b=clr.b;}
if(r>1||g>1||b>1){r/=255;g/=255;b/=255;}
return[r,g,b];},packageRGB=function(r,g,b,o){r=math.round(r*255);g=math.round(g*255);b=math.round(b*255);var rgb={r:r,g:g,b:b,opacity:is(o,"finite")?o:1,hex:Snap.rgb(r,g,b),toString:rgbtoString};is(o,"finite")&&(rgb.opacity=o);return rgb;};Snap.color=function(clr){var rgb;if(is(clr,"object")&&"h" in clr&&"s" in clr&&"b" in clr){rgb=Snap.hsb2rgb(clr);clr.r=rgb.r;clr.g=rgb.g;clr.b=rgb.b;clr.opacity=1;clr.hex=rgb.hex;}else if(is(clr,"object")&&"h" in clr&&"s" in clr&&"l" in clr){rgb=Snap.hsl2rgb(clr);clr.r=rgb.r;clr.g=rgb.g;clr.b=rgb.b;clr.opacity=1;clr.hex=rgb.hex;}else{if(is(clr,"string")){clr=Snap.getRGB(clr);}
if(is(clr,"object")&&"r" in clr&&"g" in clr&&"b" in clr&&!("error" in clr)){rgb=Snap.rgb2hsl(clr);clr.h=rgb.h;clr.s=rgb.s;clr.l=rgb.l;rgb=Snap.rgb2hsb(clr);clr.v=rgb.b;}else{clr={hex:"none"};clr.r=clr.g=clr.b=clr.h=clr.s=clr.v=clr.l=-1;clr.error=1;}}
clr.toString=rgbtoString;return clr;};Snap.hsb2rgb=function(h,s,v,o){if(is(h,"object")&&"h" in h&&"s" in h&&"b" in h){v=h.b;s=h.s;o=h.o;h=h.h;}
h*=360;var R,G,B,X,C;h=h%360/60;C=v*s;X=C*(1-abs(h%2-1));R=G=B=v-C;h=~~h;R+=[C,X,0,0,X,C][h];G+=[X,C,C,X,0,0][h];B+=[0,0,X,C,C,X][h];return packageRGB(R,G,B,o);};Snap.hsl2rgb=function(h,s,l,o){if(is(h,"object")&&"h" in h&&"s" in h&&"l" in h){l=h.l;s=h.s;h=h.h;}
if(h>1||s>1||l>1){h/=360;s/=100;l/=100;}
h*=360;var R,G,B,X,C;h=h%360/60;C=2*s*(l<.5?l:1-l);X=C*(1-abs(h%2-1));R=G=B=l-C/2;h=~~h;R+=[C,X,0,0,X,C][h];G+=[X,C,C,X,0,0][h];B+=[0,0,X,C,C,X][h];return packageRGB(R,G,B,o);};Snap.rgb2hsb=function(r,g,b){b=prepareRGB(r,g,b);r=b[0];g=b[1];b=b[2];var H,S,V,C;V=mmax(r,g,b);C=V-mmin(r,g,b);H=C==0?null:V==r?(g-b)/C:V==g?(b-r)/C+2:(r-g)/C+4;H=(H+360)%6*60/360;S=C==0?0:C/V;return{h:H,s:S,b:V,toString:hsbtoString};};Snap.rgb2hsl=function(r,g,b){b=prepareRGB(r,g,b);r=b[0];g=b[1];b=b[2];var H,S,L,M,m,C;M=mmax(r,g,b);m=mmin(r,g,b);C=M-m;H=C==0?null:M==r?(g-b)/C:M==g?(b-r)/C+2:(r-g)/C+4;H=(H+360)%6*60/360;L=(M+m)/2;S=C==0?0:L<.5?C/(2*L):C/(2-2*L);return{h:H,s:S,l:L,toString:hsltoString};};Snap.parsePathString=function(pathString){if(!pathString){return null;}
var pth=Snap.path(pathString);if(pth.arr){return Snap.path.clone(pth.arr);}
var paramCounts={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},data=[];if(is(pathString,"array")&&is(pathString[0],"array")){data=Snap.path.clone(pathString);}
if(!data.length){Str(pathString).replace(pathCommand,function(a,b,c){var params=[],name=b.toLowerCase();c.replace(pathValues,function(a,b){b&&params.push(+b);});if(name=="m"&&params.length>2){data.push([b].concat(params.splice(0,2)));name="l";b=b=="m"?"l":"L";}
if(name=="o"&&params.length==1){data.push([b,params[0]]);}
if(name=="r"){data.push([b].concat(params));}else while(params.length>=paramCounts[name]){data.push([b].concat(params.splice(0,paramCounts[name])));if(!paramCounts[name]){break;}}});}
data.toString=Snap.path.toString;pth.arr=Snap.path.clone(data);return data;};var parseTransformString=Snap.parseTransformString=function(TString){if(!TString){return null;}
var paramCounts={r:3,s:4,t:2,m:6},data=[];if(is(TString,"array")&&is(TString[0],"array")){data=Snap.path.clone(TString);}
if(!data.length){Str(TString).replace(tCommand,function(a,b,c){var params=[],name=b.toLowerCase();c.replace(pathValues,function(a,b){b&&params.push(+b);});data.push([b].concat(params));});}
data.toString=Snap.path.toString;return data;};function svgTransform2string(tstr){var res=[];tstr=tstr.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(all,name,params){params=params.split(/\s*,\s*|\s+/);if(name=="rotate"&&params.length==1){params.push(0,0);}
if(name=="scale"){if(params.length>2){params=params.slice(0,2);}else if(params.length==2){params.push(0,0);}
if(params.length==1){params.push(params[0],0,0);}}
if(name=="skewX"){res.push(["m",1,0,math.tan(rad(params[0])),1,0,0]);}else if(name=="skewY"){res.push(["m",1,math.tan(rad(params[0])),0,1,0,0]);}else{res.push([name.charAt(0)].concat(params));}
return all;});return res;}
Snap._.svgTransform2string=svgTransform2string;Snap._.rgTransform=/^[a-z][\s]*-?\.?\d/i;function transform2matrix(tstr,bbox){var tdata=parseTransformString(tstr),m=new Snap.Matrix;if(tdata){for(var i=0,ii=tdata.length;i<ii;i++){var t=tdata[i],tlen=t.length,command=Str(t[0]).toLowerCase(),absolute=t[0]!=command,inver=absolute?m.invert():0,x1,y1,x2,y2,bb;if(command=="t"&&tlen==2){m.translate(t[1],0);}else if(command=="t"&&tlen==3){if(absolute){x1=inver.x(0,0);y1=inver.y(0,0);x2=inver.x(t[1],t[2]);y2=inver.y(t[1],t[2]);m.translate(x2-x1,y2-y1);}else{m.translate(t[1],t[2]);}}else if(command=="r"){if(tlen==2){bb=bb||bbox;m.rotate(t[1],bb.x+bb.width/2,bb.y+bb.height/2);}else if(tlen==4){if(absolute){x2=inver.x(t[2],t[3]);y2=inver.y(t[2],t[3]);m.rotate(t[1],x2,y2);}else{m.rotate(t[1],t[2],t[3]);}}}else if(command=="s"){if(tlen==2||tlen==3){bb=bb||bbox;m.scale(t[1],t[tlen-1],bb.x+bb.width/2,bb.y+bb.height/2);}else if(tlen==4){if(absolute){x2=inver.x(t[2],t[3]);y2=inver.y(t[2],t[3]);m.scale(t[1],t[1],x2,y2);}else{m.scale(t[1],t[1],t[2],t[3]);}}else if(tlen==5){if(absolute){x2=inver.x(t[3],t[4]);y2=inver.y(t[3],t[4]);m.scale(t[1],t[2],x2,y2);}else{m.scale(t[1],t[2],t[3],t[4]);}}}else if(command=="m"&&tlen==7){m.add(t[1],t[2],t[3],t[4],t[5],t[6]);}}}
return m;}
Snap._.transform2matrix=transform2matrix;Snap._unit2px=unit2px;var contains=glob.doc.contains||glob.doc.compareDocumentPosition?function(a,b){var adown=a.nodeType==9?a.documentElement:a,bup=b&&b.parentNode;return a==bup||!!(bup&&bup.nodeType==1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));}:function(a,b){if(b){while(b){b=b.parentNode;if(b==a){return true;}}}
return false;};function getSomeDefs(el){var p=el.node.ownerSVGElement&&wrap(el.node.ownerSVGElement)||el.node.parentNode&&wrap(el.node.parentNode)||Snap.select("svg")||Snap(0,0),pdefs=p.select("defs"),defs=pdefs==null?false:pdefs.node;if(!defs){defs=make("defs",p.node).node;}
return defs;}
function getSomeSVG(el){return el.node.ownerSVGElement&&wrap(el.node.ownerSVGElement)||Snap.select("svg");}
Snap._.getSomeDefs=getSomeDefs;Snap._.getSomeSVG=getSomeSVG;function unit2px(el,name,value){var svg=getSomeSVG(el).node,out={},mgr=svg.querySelector(".svg---mgr");if(!mgr){mgr=$("rect");$(mgr,{x:-9e9,y:-9e9,width:10,height:10,"class":"svg---mgr",fill:"none"});svg.appendChild(mgr);}
function getW(val){if(val==null){return E;}
if(val==+val){return val;}
$(mgr,{width:val});try{return mgr.getBBox().width;}catch(e){return 0;}}
function getH(val){if(val==null){return E;}
if(val==+val){return val;}
$(mgr,{height:val});try{return mgr.getBBox().height;}catch(e){return 0;}}
function set(nam,f){if(name==null){out[nam]=f(el.attr(nam)||0);}else if(nam==name){out=f(value==null?el.attr(nam)||0:value);}}
switch(el.type){case"rect":set("rx",getW);set("ry",getH);case"image":set("width",getW);set("height",getH);case"text":set("x",getW);set("y",getH);break;case"circle":set("cx",getW);set("cy",getH);set("r",getW);break;case"ellipse":set("cx",getW);set("cy",getH);set("rx",getW);set("ry",getH);break;case"line":set("x1",getW);set("x2",getW);set("y1",getH);set("y2",getH);break;case"marker":set("refX",getW);set("markerWidth",getW);set("refY",getH);set("markerHeight",getH);break;case"radialGradient":set("fx",getW);set("fy",getH);break;case"tspan":set("dx",getW);set("dy",getH);break;default:set(name,getW);}
svg.removeChild(mgr);return out;}
Snap.select=function(query){query=Str(query).replace(/([^\\]):/g,"$1\\:");return wrap(glob.doc.querySelector(query));};Snap.selectAll=function(query){var nodelist=glob.doc.querySelectorAll(query),set=(Snap.set||Array)();for(var i=0;i<nodelist.length;i++){set.push(wrap(nodelist[i]));}
return set;};function add2group(list){if(!is(list,"array")){list=Array.prototype.slice.call(arguments,0);}
var i=0,j=0,node=this.node;while(this[i])delete this[i++];for(i=0;i<list.length;i++){if(list[i].type=="set"){list[i].forEach(function(el){node.appendChild(el.node);});}else{node.appendChild(list[i].node);}}
var children=node.childNodes;for(i=0;i<children.length;i++){this[j++]=wrap(children[i]);}
return this;}
setInterval(function(){for(var key in hub)if(hub[has](key)){var el=hub[key],node=el.node;if(el.type!="svg"&&!node.ownerSVGElement||el.type=="svg"&&(!node.parentNode||"ownerSVGElement" in node.parentNode&&!node.ownerSVGElement)){delete hub[key];}}},1e4);function Element(el){if(el.snap in hub){return hub[el.snap];}
var svg;try{svg=el.ownerSVGElement;}catch(e){}
this.node=el;if(svg){this.paper=new Paper(svg);}
this.type=el.tagName||el.nodeName;var id=this.id=ID(this);this.anims={};this._={transform:[]};el.snap=id;hub[id]=this;if(this.type=="g"){this.add=add2group;}
if(this.type in{g:1,mask:1,pattern:1,symbol:1}){for(var method in Paper.prototype)if(Paper.prototype[has](method)){this[method]=Paper.prototype[method];}}}
Element.prototype.attr=function(params,value){var el=this,node=el.node;if(!params){if(node.nodeType!=1){return{text:node.nodeValue};}
var attr=node.attributes,out={};for(var i=0,ii=attr.length;i<ii;i++){out[attr[i].nodeName]=attr[i].nodeValue;}
return out;}
if(is(params,"string")){if(arguments.length>1){var json={};json[params]=value;params=json;}else{return eve("snap.util.getattr."+params,el).firstDefined();}}
for(var att in params){if(params[has](att)){eve("snap.util.attr."+att,el,params[att]);}}
return el;};Snap.parse=function(svg){var f=glob.doc.createDocumentFragment(),full=true,div=glob.doc.createElement("div");svg=Str(svg);if(!svg.match(/^\s*<\s*svg(?:\s|>)/)){svg="<svg>"+svg+"</svg>";full=false;}
div.innerHTML=svg;svg=div.getElementsByTagName("svg")[0];if(svg){if(full){f=svg;}else{while(svg.firstChild){f.appendChild(svg.firstChild);}}}
return new Fragment(f);};function Fragment(frag){this.node=frag;}
Snap.fragment=function(){var args=Array.prototype.slice.call(arguments,0),f=glob.doc.createDocumentFragment();for(var i=0,ii=args.length;i<ii;i++){var item=args[i];if(item.node&&item.node.nodeType){f.appendChild(item.node);}
if(item.nodeType){f.appendChild(item);}
if(typeof item=="string"){f.appendChild(Snap.parse(item).node);}}
return new Fragment(f);};function make(name,parent){var res=$(name);parent.appendChild(res);var el=wrap(res);return el;}
function Paper(w,h){var res,desc,defs,proto=Paper.prototype;if(w&&w.tagName&&w.tagName.toLowerCase()=="svg"){if(w.snap in hub){return hub[w.snap];}
var doc=w.ownerDocument;res=new Element(w);desc=w.getElementsByTagName("desc")[0];defs=w.getElementsByTagName("defs")[0];if(!desc){desc=$("desc");desc.appendChild(doc.createTextNode("Created with Snap"));res.node.appendChild(desc);}
if(!defs){defs=$("defs");res.node.appendChild(defs);}
res.defs=defs;for(var key in proto)if(proto[has](key)){res[key]=proto[key];}
res.paper=res.root=res;}else{res=make("svg",glob.doc.body);$(res.node,{height:h,version:1.1,width:w,xmlns:xmlns});}
return res;}
function wrap(dom){if(!dom){return dom;}
if(dom instanceof Element||dom instanceof Fragment){return dom;}
if(dom.tagName&&dom.tagName.toLowerCase()=="svg"){return new Paper(dom);}
if(dom.tagName&&dom.tagName.toLowerCase()=="object"&&dom.type=="image/svg+xml"){return new Paper(dom.contentDocument.getElementsByTagName("svg")[0]);}
return new Element(dom);}
Snap._.make=make;Snap._.wrap=wrap;Paper.prototype.el=function(name,attr){var el=make(name,this.node);attr&&el.attr(attr);return el;};Element.prototype.children=function(){var out=[],ch=this.node.childNodes;for(var i=0,ii=ch.length;i<ii;i++){out[i]=Snap(ch[i]);}
return out;};function jsonFiller(root,o){for(var i=0,ii=root.length;i<ii;i++){var item={type:root[i].type,attr:root[i].attr()},children=root[i].children();o.push(item);if(children.length){jsonFiller(children,item.childNodes=[]);}}}
Element.prototype.toJSON=function(){var out=[];jsonFiller([this],out);return out[0];};eve.on("snap.util.getattr",function(){var att=eve.nt();att=att.substring(att.lastIndexOf(".")+1);var css=att.replace(/[A-Z]/g,function(letter){return"-"+letter.toLowerCase();});if(cssAttr[has](css)){return this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(css);}else{return $(this.node,att);}});var cssAttr={"alignment-baseline":0,"baseline-shift":0,"clip":0,"clip-path":0,"clip-rule":0,"color":0,"color-interpolation":0,"color-interpolation-filters":0,"color-profile":0,"color-rendering":0,"cursor":0,"direction":0,"display":0,"dominant-baseline":0,"enable-background":0,"fill":0,"fill-opacity":0,"fill-rule":0,"filter":0,"flood-color":0,"flood-opacity":0,"font":0,"font-family":0,"font-size":0,"font-size-adjust":0,"font-stretch":0,"font-style":0,"font-variant":0,"font-weight":0,"glyph-orientation-horizontal":0,"glyph-orientation-vertical":0,"image-rendering":0,"kerning":0,"letter-spacing":0,"lighting-color":0,"marker":0,"marker-end":0,"marker-mid":0,"marker-start":0,"mask":0,"opacity":0,"overflow":0,"pointer-events":0,"shape-rendering":0,"stop-color":0,"stop-opacity":0,"stroke":0,"stroke-dasharray":0,"stroke-dashoffset":0,"stroke-linecap":0,"stroke-linejoin":0,"stroke-miterlimit":0,"stroke-opacity":0,"stroke-width":0,"text-anchor":0,"text-decoration":0,"text-rendering":0,"unicode-bidi":0,"visibility":0,"word-spacing":0,"writing-mode":0};eve.on("snap.util.attr",function(value){var att=eve.nt(),attr={};att=att.substring(att.lastIndexOf(".")+1);attr[att]=value;var style=att.replace(/-(\w)/gi,function(all,letter){return letter.toUpperCase();}),css=att.replace(/[A-Z]/g,function(letter){return"-"+letter.toLowerCase();});if(cssAttr[has](css)){this.node.style[style]=value==null?E:value;}else{$(this.node,attr);}});(function(proto){}(Paper.prototype));Snap.ajax=function(url,postData,callback,scope){var req=new XMLHttpRequest,id=ID();if(req){if(is(postData,"function")){scope=callback;callback=postData;postData=null;}else if(is(postData,"object")){var pd=[];for(var key in postData)if(postData.hasOwnProperty(key)){pd.push(encodeURIComponent(key)+"="+encodeURIComponent(postData[key]));}
postData=pd.join("&");}
req.open(postData?"POST":"GET",url,true);if(postData){req.setRequestHeader("X-Requested-With","XMLHttpRequest");req.setRequestHeader("Content-type","application/x-www-form-urlencoded");}
if(callback){eve.once("snap.ajax."+id+".0",callback);eve.once("snap.ajax."+id+".200",callback);eve.once("snap.ajax."+id+".304",callback);}
req.onreadystatechange=function(){if(req.readyState!=4)return;eve("snap.ajax."+id+"."+req.status,scope,req);};if(req.readyState==4){return req;}
req.send(postData);return req;}};Snap.load=function(url,callback,scope){Snap.ajax(url,function(req){var f=Snap.parse(req.responseText);scope?callback.call(scope,f):callback(f);});};var getOffset=function(elem){var box=elem.getBoundingClientRect(),doc=elem.ownerDocument,body=doc.body,docElem=doc.documentElement,clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,top=box.top+(g.win.pageYOffset||docElem.scrollTop||body.scrollTop)-clientTop,left=box.left+(g.win.pageXOffset||docElem.scrollLeft||body.scrollLeft)-clientLeft;return{y:top,x:left};};Snap.getElementByPoint=function(x,y){var paper=this,svg=paper.canvas,target=glob.doc.elementFromPoint(x,y);if(glob.win.opera&&target.tagName=="svg"){var so=getOffset(target),sr=target.createSVGRect();sr.x=x-so.x;sr.y=y-so.y;sr.width=sr.height=1;var hits=target.getIntersectionList(sr,null);if(hits.length){target=hits[hits.length-1];}}
if(!target){return null;}
return wrap(target);};Snap.plugin=function(f){f(Snap,Element,Paper,glob,Fragment);};glob.win.Snap=Snap;return Snap;}(window||this));Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var elproto=Element.prototype,is=Snap.is,Str=String,unit2px=Snap._unit2px,$=Snap._.$,make=Snap._.make,getSomeDefs=Snap._.getSomeDefs,has="hasOwnProperty",wrap=Snap._.wrap;elproto.getBBox=function(isWithoutTransform){if(this.type=="tspan"){return Snap._.box(this.node.getClientRects().item(0));}
if(!Snap.Matrix||!Snap.path){return this.node.getBBox();}
var el=this,m=new Snap.Matrix;if(el.removed){return Snap._.box();}
while(el.type=="use"){if(!isWithoutTransform){m=m.add(el.transform().localMatrix.translate(el.attr("x")||0,el.attr("y")||0));}
if(el.original){el=el.original;}else{var href=el.attr("xlink:href");el=el.original=el.node.ownerDocument.getElementById(href.substring(href.indexOf("#")+1));}}
var _=el._,pathfinder=Snap.path.get[el.type]||Snap.path.get.deflt;try{if(isWithoutTransform){_.bboxwt=pathfinder?Snap.path.getBBox(el.realPath=pathfinder(el)):Snap._.box(el.node.getBBox());return Snap._.box(_.bboxwt);}else{el.realPath=pathfinder(el);el.matrix=el.transform().localMatrix;_.bbox=Snap.path.getBBox(Snap.path.map(el.realPath,m.add(el.matrix)));return Snap._.box(_.bbox);}}catch(e){return Snap._.box();}};var propString=function(){return this.string;};function extractTransform(el,tstr){if(tstr==null){var doReturn=true;if(el.type=="linearGradient"||el.type=="radialGradient"){tstr=el.node.getAttribute("gradientTransform");}else if(el.type=="pattern"){tstr=el.node.getAttribute("patternTransform");}else{tstr=el.node.getAttribute("transform");}
if(!tstr){return new Snap.Matrix;}
tstr=Snap._.svgTransform2string(tstr);}else{if(!Snap._.rgTransform.test(tstr)){tstr=Snap._.svgTransform2string(tstr);}else{tstr=Str(tstr).replace(/\.{3}|\u2026/g,el._.transform||"");}
if(is(tstr,"array")){tstr=Snap.path?Snap.path.toString.call(tstr):Str(tstr);}
el._.transform=tstr;}
var m=Snap._.transform2matrix(tstr,el.getBBox(1));if(doReturn){return m;}else{el.matrix=m;}}
elproto.transform=function(tstr){var _=this._;if(tstr==null){var papa=this,global=new Snap.Matrix(this.node.getCTM()),local=extractTransform(this),ms=[local],m=new Snap.Matrix,i,localString=local.toTransformString(),string=Str(local)==Str(this.matrix)?Str(_.transform):localString;while(papa.type!="svg"&&(papa=papa.parent())){ms.push(extractTransform(papa));}
i=ms.length;while(i--){m.add(ms[i]);}
return{string:string,globalMatrix:global,totalMatrix:m,localMatrix:local,diffMatrix:global.clone().add(local.invert()),global:global.toTransformString(),total:m.toTransformString(),local:localString,toString:propString};}
if(tstr instanceof Snap.Matrix){this.matrix=tstr;this._.transform=tstr.toTransformString();}else{extractTransform(this,tstr);}
if(this.node){if(this.type=="linearGradient"||this.type=="radialGradient"){$(this.node,{gradientTransform:this.matrix});}else if(this.type=="pattern"){$(this.node,{patternTransform:this.matrix});}else{$(this.node,{transform:this.matrix});}}
return this;};elproto.parent=function(){return wrap(this.node.parentNode);};elproto.append=elproto.add=function(el){if(el){if(el.type=="set"){var it=this;el.forEach(function(el){it.add(el);});return this;}
el=wrap(el);this.node.appendChild(el.node);el.paper=this.paper;}
return this;};elproto.appendTo=function(el){if(el){el=wrap(el);el.append(this);}
return this;};elproto.prepend=function(el){if(el){if(el.type=="set"){var it=this,first;el.forEach(function(el){if(first){first.after(el);}else{it.prepend(el);}
first=el;});return this;}
el=wrap(el);var parent=el.parent();this.node.insertBefore(el.node,this.node.firstChild);this.add&&this.add();el.paper=this.paper;this.parent()&&this.parent().add();parent&&parent.add();}
return this;};elproto.prependTo=function(el){el=wrap(el);el.prepend(this);return this;};elproto.before=function(el){if(el.type=="set"){var it=this;el.forEach(function(el){var parent=el.parent();it.node.parentNode.insertBefore(el.node,it.node);parent&&parent.add();});this.parent().add();return this;}
el=wrap(el);var parent=el.parent();this.node.parentNode.insertBefore(el.node,this.node);this.parent()&&this.parent().add();parent&&parent.add();el.paper=this.paper;return this;};elproto.after=function(el){el=wrap(el);var parent=el.parent();if(this.node.nextSibling){this.node.parentNode.insertBefore(el.node,this.node.nextSibling);}else{this.node.parentNode.appendChild(el.node);}
this.parent()&&this.parent().add();parent&&parent.add();el.paper=this.paper;return this;};elproto.insertBefore=function(el){el=wrap(el);var parent=this.parent();el.node.parentNode.insertBefore(this.node,el.node);this.paper=el.paper;parent&&parent.add();el.parent()&&el.parent().add();return this;};elproto.insertAfter=function(el){el=wrap(el);var parent=this.parent();el.node.parentNode.insertBefore(this.node,el.node.nextSibling);this.paper=el.paper;parent&&parent.add();el.parent()&&el.parent().add();return this;};elproto.remove=function(){var parent=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=true;parent&&parent.add();return this;};elproto.select=function(query){return wrap(this.node.querySelector(query));};elproto.selectAll=function(query){var nodelist=this.node.querySelectorAll(query),set=(Snap.set||Array)();for(var i=0;i<nodelist.length;i++){set.push(wrap(nodelist[i]));}
return set;};elproto.asPX=function(attr,value){if(value==null){value=this.attr(attr);}
return+unit2px(this,attr,value);};elproto.use=function(){var use,id=this.node.id;if(!id){id=this.id;$(this.node,{id:id});}
if(this.type=="linearGradient"||this.type=="radialGradient"||this.type=="pattern"){use=make(this.type,this.node.parentNode);}else{use=make("use",this.node.parentNode);}
$(use.node,{"xlink:href":"#"+id});use.original=this;return use;};function fixids(el){var els=el.selectAll("*"),it,url=/^\s*url\(("|'|)(.*)\1\)\s*$/,ids=[],uses={};function urltest(it,name){var val=$(it.node,name);val=val&&val.match(url);val=val&&val[2];if(val&&val.charAt()=="#"){val=val.substring(1);}else{return;}
if(val){uses[val]=(uses[val]||[]).concat(function(id){var attr={};attr[name]=Snap.url(id);$(it.node,attr);});}}
function linktest(it){var val=$(it.node,"xlink:href");if(val&&val.charAt()=="#"){val=val.substring(1);}else{return;}
if(val){uses[val]=(uses[val]||[]).concat(function(id){it.attr("xlink:href","#"+id);});}}
for(var i=0,ii=els.length;i<ii;i++){it=els[i];urltest(it,"fill");urltest(it,"stroke");urltest(it,"filter");urltest(it,"mask");urltest(it,"clip-path");linktest(it);var oldid=$(it.node,"id");if(oldid){$(it.node,{id:it.id});ids.push({old:oldid,id:it.id});}}
for(i=0,ii=ids.length;i<ii;i++){var fs=uses[ids[i].old];if(fs){for(var j=0,jj=fs.length;j<jj;j++){fs[j](ids[i].id);}}}}
elproto.clone=function(){var clone=wrap(this.node.cloneNode(true));if($(clone.node,"id")){$(clone.node,{id:clone.id});}
fixids(clone);clone.insertAfter(this);return clone;};elproto.toDefs=function(){var defs=getSomeDefs(this);defs.appendChild(this.node);return this;};elproto.pattern=elproto.toPattern=function(x,y,width,height){var p=make("pattern",getSomeDefs(this));if(x==null){x=this.getBBox();}
if(is(x,"object")&&"x" in x){y=x.y;width=x.width;height=x.height;x=x.x;}
$(p.node,{x:x,y:y,width:width,height:height,patternUnits:"userSpaceOnUse",id:p.id,viewBox:[x,y,width,height].join(" ")});p.node.appendChild(this.node);return p;};elproto.marker=function(x,y,width,height,refX,refY){var p=make("marker",getSomeDefs(this));if(x==null){x=this.getBBox();}
if(is(x,"object")&&"x" in x){y=x.y;width=x.width;height=x.height;refX=x.refX||x.cx;refY=x.refY||x.cy;x=x.x;}
$(p.node,{viewBox:[x,y,width,height].join(" "),markerWidth:width,markerHeight:height,orient:"auto",refX:refX||0,refY:refY||0,id:p.id});p.node.appendChild(this.node);return p;};var eldata={};elproto.data=function(key,value){var data=eldata[this.id]=eldata[this.id]||{};if(arguments.length==0){eve("snap.data.get."+this.id,this,data,null);return data;}
if(arguments.length==1){if(Snap.is(key,"object")){for(var i in key)if(key[has](i)){this.data(i,key[i]);}
return this;}
eve("snap.data.get."+this.id,this,data[key],key);return data[key];}
data[key]=value;eve("snap.data.set."+this.id,this,value,key);return this;};elproto.removeData=function(key){if(key==null){eldata[this.id]={};}else{eldata[this.id]&&delete eldata[this.id][key];}
return this;};elproto.outerSVG=elproto.toString=toString(1);elproto.innerSVG=toString();function toString(type){return function(){var res=type?"<"+this.type:"",attr=this.node.attributes,chld=this.node.childNodes;if(type){for(var i=0,ii=attr.length;i<ii;i++){res+=" "+attr[i].name+'="'+
attr[i].value.replace(/"/g,'\\"')+'"';}}
if(chld.length){type&&(res+=">");for(i=0,ii=chld.length;i<ii;i++){if(chld[i].nodeType==3){res+=chld[i].nodeValue;}else if(chld[i].nodeType==1){res+=wrap(chld[i]).toString();}}
type&&(res+="</"+this.type+">");}else{type&&(res+="/>");}
return res;};}
elproto.toDataURL=function(){if(window&&window.btoa){var bb=this.getBBox(),svg=Snap.format('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="{width}" height="{height}" viewBox="{x} {y} {width} {height}">{contents}</svg>',{x:+bb.x.toFixed(3),y:+bb.y.toFixed(3),width:+bb.width.toFixed(3),height:+bb.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(svg)));}};Fragment.prototype.select=elproto.select;Fragment.prototype.selectAll=elproto.selectAll;});Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var elproto=Element.prototype,is=Snap.is,Str=String,has="hasOwnProperty";function slice(from,to,f){return function(arr){var res=arr.slice(from,to);if(res.length==1){res=res[0];}
return f?f(res):res;};}
var Animation=function(attr,ms,easing,callback){if(typeof easing=="function"&&!easing.length){callback=easing;easing=mina.linear;}
this.attr=attr;this.dur=ms;easing&&(this.easing=easing);callback&&(this.callback=callback);};Snap._.Animation=Animation;Snap.animation=function(attr,ms,easing,callback){return new Animation(attr,ms,easing,callback);};elproto.inAnim=function(){var el=this,res=[];for(var id in el.anims)if(el.anims[has](id)){(function(a){res.push({anim:new Animation(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(val){return a.status(val);},stop:function(){a.stop();}});}(el.anims[id]));}
return res;};Snap.animate=function(from,to,setter,ms,easing,callback){if(typeof easing=="function"&&!easing.length){callback=easing;easing=mina.linear;}
var now=mina.time(),anim=mina(from,to,now,now+ms,mina.time,setter,easing);callback&&eve.once("mina.finish."+anim.id,callback);return anim;};elproto.stop=function(){var anims=this.inAnim();for(var i=0,ii=anims.length;i<ii;i++){anims[i].stop();}
return this;};elproto.animate=function(attrs,ms,easing,callback){if(typeof easing=="function"&&!easing.length){callback=easing;easing=mina.linear;}
if(attrs instanceof Animation){callback=attrs.callback;easing=attrs.easing;ms=attrs.dur;attrs=attrs.attr;}
var fkeys=[],tkeys=[],keys={},from,to,f,eq,el=this;for(var key in attrs)if(attrs[has](key)){if(el.equal){eq=el.equal(key,Str(attrs[key]));from=eq.from;to=eq.to;f=eq.f;}else{from=+el.attr(key);to=+attrs[key];}
var len=is(from,"array")?from.length:1;keys[key]=slice(fkeys.length,fkeys.length+len,f);fkeys=fkeys.concat(from);tkeys=tkeys.concat(to);}
var now=mina.time(),anim=mina(fkeys,tkeys,now,now+ms,mina.time,function(val){var attr={};for(var key in keys)if(keys[has](key)){attr[key]=keys[key](val);}
el.attr(attr);},easing);el.anims[anim.id]=anim;anim._attrs=attrs;anim._callback=callback;eve("snap.animcreated."+el.id,anim);eve.once("mina.finish."+anim.id,function(){eve.off("mina.*."+anim.id);delete el.anims[anim.id];callback&&callback.call(el);});eve.once("mina.stop."+anim.id,function(){eve.off("mina.*."+anim.id);delete el.anims[anim.id];});return el;};});Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var objectToString=Object.prototype.toString,Str=String,math=Math,E="";function Matrix(a,b,c,d,e,f){if(b==null&&objectToString.call(a)=="[object SVGMatrix]"){this.a=a.a;this.b=a.b;this.c=a.c;this.d=a.d;this.e=a.e;this.f=a.f;return;}
if(a!=null){this.a=+a;this.b=+b;this.c=+c;this.d=+d;this.e=+e;this.f=+f;}else{this.a=1;this.b=0;this.c=0;this.d=1;this.e=0;this.f=0;}}
(function(matrixproto){matrixproto.add=function(a,b,c,d,e,f){if(a&&a instanceof Matrix){return this.add(a.a,a.b,a.c,a.d,a.e,a.f);}
var aNew=a*this.a+b*this.c,bNew=a*this.b+b*this.d;this.e+=e*this.a+f*this.c;this.f+=e*this.b+f*this.d;this.c=c*this.a+d*this.c;this.d=c*this.b+d*this.d;this.a=aNew;this.b=bNew;return this;};Matrix.prototype.multLeft=function(a,b,c,d,e,f){if(a&&a instanceof Matrix){return this.multLeft(a.a,a.b,a.c,a.d,a.e,a.f);}
var aNew=a*this.a+c*this.b,cNew=a*this.c+c*this.d,eNew=a*this.e+c*this.f+e;this.b=b*this.a+d*this.b;this.d=b*this.c+d*this.d;this.f=b*this.e+d*this.f+f;this.a=aNew;this.c=cNew;this.e=eNew;return this;};matrixproto.invert=function(){var me=this,x=me.a*me.d-me.b*me.c;return new Matrix(me.d/x,-me.b/x,-me.c/x,me.a/x,(me.c*me.f-me.d*me.e)/x,(me.b*me.e-me.a*me.f)/x);};matrixproto.clone=function(){return new Matrix(this.a,this.b,this.c,this.d,this.e,this.f);};matrixproto.translate=function(x,y){this.e+=x*this.a+y*this.c;this.f+=x*this.b+y*this.d;return this;};matrixproto.scale=function(x,y,cx,cy){y==null&&(y=x);(cx||cy)&&this.translate(cx,cy);this.a*=x;this.b*=x;this.c*=y;this.d*=y;(cx||cy)&&this.translate(-cx,-cy);return this;};matrixproto.rotate=function(a,x,y){a=Snap.rad(a);x=x||0;y=y||0;var cos=+math.cos(a).toFixed(9),sin=+math.sin(a).toFixed(9);this.add(cos,sin,-sin,cos,x,y);return this.add(1,0,0,1,-x,-y);};matrixproto.skewX=function(x){return this.skew(x,0);};matrixproto.skewY=function(y){return this.skew(0,y);};matrixproto.skew=function(x,y){x=x||0;y=y||0;x=Snap.rad(x);y=Snap.rad(y);var c=math.tan(x).toFixed(9);var b=math.tan(y).toFixed(9);return this.add(1,b,c,1,0,0);};matrixproto.x=function(x,y){return x*this.a+y*this.c+this.e;};matrixproto.y=function(x,y){return x*this.b+y*this.d+this.f;};matrixproto.get=function(i){return+this[Str.fromCharCode(97+i)].toFixed(4);};matrixproto.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")";};matrixproto.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)];};function norm(a){return a[0]*a[0]+a[1]*a[1];}
function normalize(a){var mag=math.sqrt(norm(a));a[0]&&(a[0]/=mag);a[1]&&(a[1]/=mag);}
matrixproto.determinant=function(){return this.a*this.d-this.b*this.c;};matrixproto.split=function(){var out={};out.dx=this.e;out.dy=this.f;var row=[[this.a,this.b],[this.c,this.d]];out.scalex=math.sqrt(norm(row[0]));normalize(row[0]);out.shear=row[0][0]*row[1][0]+row[0][1]*row[1][1];row[1]=[row[1][0]-row[0][0]*out.shear,row[1][1]-row[0][1]*out.shear];out.scaley=math.sqrt(norm(row[1]));normalize(row[1]);out.shear/=out.scaley;if(this.determinant()<0){out.scalex=-out.scalex;}
var sin=row[0][1],cos=row[1][1];if(cos<0){out.rotate=Snap.deg(math.acos(cos));if(sin<0){out.rotate=360-out.rotate;}}else{out.rotate=Snap.deg(math.asin(sin));}
out.isSimple=!+out.shear.toFixed(9)&&(out.scalex.toFixed(9)==out.scaley.toFixed(9)||!out.rotate);out.isSuperSimple=!+out.shear.toFixed(9)&&out.scalex.toFixed(9)==out.scaley.toFixed(9)&&!out.rotate;out.noRotation=!+out.shear.toFixed(9)&&!out.rotate;return out;};matrixproto.toTransformString=function(shorter){var s=shorter||this.split();if(!+s.shear.toFixed(9)){s.scalex=+s.scalex.toFixed(4);s.scaley=+s.scaley.toFixed(4);s.rotate=+s.rotate.toFixed(4);return(s.dx||s.dy?"t"+[+s.dx.toFixed(4),+s.dy.toFixed(4)]:E)+
(s.rotate?"r"+[+s.rotate.toFixed(4),0,0]:E)+
(s.scalex!=1||s.scaley!=1?"s"+[s.scalex,s.scaley,0,0]:E);}else{return"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];}};})(Matrix.prototype);Snap.Matrix=Matrix;Snap.matrix=function(a,b,c,d,e,f){return new Matrix(a,b,c,d,e,f);};});Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var has="hasOwnProperty",make=Snap._.make,wrap=Snap._.wrap,is=Snap.is,getSomeDefs=Snap._.getSomeDefs,reURLValue=/^url\((['"]?)([^)]+)\1\)$/,$=Snap._.$,URL=Snap.url,Str=String,separator=Snap._.separator,E="";Snap.deurl=function(value){var res=String(value).match(reURLValue);return res?res[2]:value;}
eve.on("snap.util.attr.mask",function(value){if(value instanceof Element||value instanceof Fragment){eve.stop();if(value instanceof Fragment&&value.node.childNodes.length==1){value=value.node.firstChild;getSomeDefs(this).appendChild(value);value=wrap(value);}
if(value.type=="mask"){var mask=value;}else{mask=make("mask",getSomeDefs(this));mask.node.appendChild(value.node);}
!mask.node.id&&$(mask.node,{id:mask.id});$(this.node,{mask:URL(mask.id)});}});(function(clipIt){eve.on("snap.util.attr.clip",clipIt);eve.on("snap.util.attr.clip-path",clipIt);eve.on("snap.util.attr.clipPath",clipIt);}(function(value){if(value instanceof Element||value instanceof Fragment){eve.stop();var clip,node=value.node;while(node){if(node.nodeName==="clipPath"){clip=new Element(node);break;}
if(node.nodeName==="svg"){clip=undefined;break;}
node=node.parentNode;}
if(!clip){clip=make("clipPath",getSomeDefs(this));clip.node.appendChild(value.node);!clip.node.id&&$(clip.node,{id:clip.id});}
$(this.node,{"clip-path":URL(clip.node.id||clip.id)});}}));function fillStroke(name){return function(value){eve.stop();if(value instanceof Fragment&&value.node.childNodes.length==1&&(value.node.firstChild.tagName=="radialGradient"||value.node.firstChild.tagName=="linearGradient"||value.node.firstChild.tagName=="pattern")){value=value.node.firstChild;getSomeDefs(this).appendChild(value);value=wrap(value);}
if(value instanceof Element){if(value.type=="radialGradient"||value.type=="linearGradient"||value.type=="pattern"){if(!value.node.id){$(value.node,{id:value.id});}
var fill=URL(value.node.id);}else{fill=value.attr(name);}}else{fill=Snap.color(value);if(fill.error){var grad=Snap(getSomeDefs(this).ownerSVGElement).gradient(value);if(grad){if(!grad.node.id){$(grad.node,{id:grad.id});}
fill=URL(grad.node.id);}else{fill=value;}}else{fill=Str(fill);}}
var attrs={};attrs[name]=fill;$(this.node,attrs);this.node.style[name]=E;};}
eve.on("snap.util.attr.fill",fillStroke("fill"));eve.on("snap.util.attr.stroke",fillStroke("stroke"));var gradrg=/^([lr])(?:\(([^)]*)\))?(.*)$/i;eve.on("snap.util.grad.parse",function parseGrad(string){string=Str(string);var tokens=string.match(gradrg);if(!tokens){return null;}
var type=tokens[1],params=tokens[2],stops=tokens[3];params=params.split(/\s*,\s*/).map(function(el){return+el==el?+el:el;});if(params.length==1&&params[0]==0){params=[];}
stops=stops.split("-");stops=stops.map(function(el){el=el.split(":");var out={color:el[0]};if(el[1]){out.offset=parseFloat(el[1]);}
return out;});var len=stops.length,start=0,j=0;function seed(i,end){var step=(end-start)/(i-j);for(var k=j;k<i;k++){stops[k].offset=+(+start+step*(k-j)).toFixed(2);}
j=i;start=end;}
len--;for(var i=0;i<len;i++)if("offset" in stops[i]){seed(i,stops[i].offset);}
stops[len].offset=stops[len].offset||100;seed(len,stops[len].offset);return{type:type,params:params,stops:stops};});eve.on("snap.util.attr.d",function(value){eve.stop();if(is(value,"array")&&is(value[0],"array")){value=Snap.path.toString.call(value);}
value=Str(value);if(value.match(/[ruo]/i)){value=Snap.path.toAbsolute(value);}
$(this.node,{d:value});})(-1);eve.on("snap.util.attr.#text",function(value){eve.stop();value=Str(value);var txt=glob.doc.createTextNode(value);while(this.node.firstChild){this.node.removeChild(this.node.firstChild);}
this.node.appendChild(txt);})(-1);eve.on("snap.util.attr.path",function(value){eve.stop();this.attr({d:value});})(-1);eve.on("snap.util.attr.class",function(value){eve.stop();this.node.className.baseVal=value;})(-1);eve.on("snap.util.attr.viewBox",function(value){var vb;if(is(value,"object")&&"x" in value){vb=[value.x,value.y,value.width,value.height].join(" ");}else if(is(value,"array")){vb=value.join(" ");}else{vb=value;}
$(this.node,{viewBox:vb});eve.stop();})(-1);eve.on("snap.util.attr.transform",function(value){this.transform(value);eve.stop();})(-1);eve.on("snap.util.attr.r",function(value){if(this.type=="rect"){eve.stop();$(this.node,{rx:value,ry:value});}})(-1);eve.on("snap.util.attr.textpath",function(value){eve.stop();if(this.type=="text"){var id,tp,node;if(!value&&this.textPath){tp=this.textPath;while(tp.node.firstChild){this.node.appendChild(tp.node.firstChild);}
tp.remove();delete this.textPath;return;}
if(is(value,"string")){var defs=getSomeDefs(this),path=wrap(defs.parentNode).path(value);defs.appendChild(path.node);id=path.id;path.attr({id:id});}else{value=wrap(value);if(value instanceof Element){id=value.attr("id");if(!id){id=value.id;value.attr({id:id});}}}
if(id){tp=this.textPath;node=this.node;if(tp){tp.attr({"xlink:href":"#"+id});}else{tp=$("textPath",{"xlink:href":"#"+id});while(node.firstChild){tp.appendChild(node.firstChild);}
node.appendChild(tp);this.textPath=wrap(tp);}}}})(-1);eve.on("snap.util.attr.text",function(value){if(this.type=="text"){var i=0,node=this.node,tuner=function(chunk){var out=$("tspan");if(is(chunk,"array")){for(var i=0;i<chunk.length;i++){out.appendChild(tuner(chunk[i]));}}else{out.appendChild(glob.doc.createTextNode(chunk));}
out.normalize&&out.normalize();return out;};while(node.firstChild){node.removeChild(node.firstChild);}
var tuned=tuner(value);while(tuned.firstChild){node.appendChild(tuned.firstChild);}}
eve.stop();})(-1);function setFontSize(value){eve.stop();if(value==+value){value+="px";}
this.node.style.fontSize=value;}
eve.on("snap.util.attr.fontSize",setFontSize)(-1);eve.on("snap.util.attr.font-size",setFontSize)(-1);eve.on("snap.util.getattr.transform",function(){eve.stop();return this.transform();})(-1);eve.on("snap.util.getattr.textpath",function(){eve.stop();return this.textPath;})(-1);(function(){function getter(end){return function(){eve.stop();var style=glob.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue("marker-"+end);if(style=="none"){return style;}else{return Snap(glob.doc.getElementById(style.match(reURLValue)[1]));}};}
function setter(end){return function(value){eve.stop();var name="marker"+end.charAt(0).toUpperCase()+end.substring(1);if(value==""||!value){this.node.style[name]="none";return;}
if(value.type=="marker"){var id=value.node.id;if(!id){$(value.node,{id:value.id});}
this.node.style[name]=URL(id);return;}};}
eve.on("snap.util.getattr.marker-end",getter("end"))(-1);eve.on("snap.util.getattr.markerEnd",getter("end"))(-1);eve.on("snap.util.getattr.marker-start",getter("start"))(-1);eve.on("snap.util.getattr.markerStart",getter("start"))(-1);eve.on("snap.util.getattr.marker-mid",getter("mid"))(-1);eve.on("snap.util.getattr.markerMid",getter("mid"))(-1);eve.on("snap.util.attr.marker-end",setter("end"))(-1);eve.on("snap.util.attr.markerEnd",setter("end"))(-1);eve.on("snap.util.attr.marker-start",setter("start"))(-1);eve.on("snap.util.attr.markerStart",setter("start"))(-1);eve.on("snap.util.attr.marker-mid",setter("mid"))(-1);eve.on("snap.util.attr.markerMid",setter("mid"))(-1);}());eve.on("snap.util.getattr.r",function(){if(this.type=="rect"&&$(this.node,"rx")==$(this.node,"ry")){eve.stop();return $(this.node,"rx");}})(-1);function textExtract(node){var out=[];var children=node.childNodes;for(var i=0,ii=children.length;i<ii;i++){var chi=children[i];if(chi.nodeType==3){out.push(chi.nodeValue);}
if(chi.tagName=="tspan"){if(chi.childNodes.length==1&&chi.firstChild.nodeType==3){out.push(chi.firstChild.nodeValue);}else{out.push(textExtract(chi));}}}
return out;}
eve.on("snap.util.getattr.text",function(){if(this.type=="text"||this.type=="tspan"){eve.stop();var out=textExtract(this.node);return out.length==1?out[0]:out;}})(-1);eve.on("snap.util.getattr.#text",function(){return this.node.textContent;})(-1);eve.on("snap.util.getattr.fill",function(internal){if(internal){return;}
eve.stop();var value=eve("snap.util.getattr.fill",this,true).firstDefined();return Snap(Snap.deurl(value))||value;})(-1);eve.on("snap.util.getattr.stroke",function(internal){if(internal){return;}
eve.stop();var value=eve("snap.util.getattr.stroke",this,true).firstDefined();return Snap(Snap.deurl(value))||value;})(-1);eve.on("snap.util.getattr.viewBox",function(){eve.stop();var vb=$(this.node,"viewBox");if(vb){vb=vb.split(separator);return Snap._.box(+vb[0],+vb[1],+vb[2],+vb[3]);}else{return;}})(-1);eve.on("snap.util.getattr.points",function(){var p=$(this.node,"points");eve.stop();if(p){return p.split(separator);}else{return;}})(-1);eve.on("snap.util.getattr.path",function(){var p=$(this.node,"d");eve.stop();return p;})(-1);eve.on("snap.util.getattr.class",function(){return this.node.className.baseVal;})(-1);function getFontSize(){eve.stop();return this.node.style.fontSize;}
eve.on("snap.util.getattr.fontSize",getFontSize)(-1);eve.on("snap.util.getattr.font-size",getFontSize)(-1);});Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var rgNotSpace=/\S+/g,rgBadSpace=/[\t\r\n\f]/g,rgTrim=/(^\s+|\s+$)/g,Str=String,elproto=Element.prototype;elproto.addClass=function(value){var classes=Str(value||"").match(rgNotSpace)||[],elem=this.node,className=elem.className.baseVal,curClasses=className.match(rgNotSpace)||[],j,pos,clazz,finalValue;if(classes.length){j=0;while(clazz=classes[j++]){pos=curClasses.indexOf(clazz);if(!~pos){curClasses.push(clazz);}}
finalValue=curClasses.join(" ");if(className!=finalValue){elem.className.baseVal=finalValue;}}
return this;};elproto.removeClass=function(value){var classes=Str(value||"").match(rgNotSpace)||[],elem=this.node,className=elem.className.baseVal,curClasses=className.match(rgNotSpace)||[],j,pos,clazz,finalValue;if(curClasses.length){j=0;while(clazz=classes[j++]){pos=curClasses.indexOf(clazz);if(~pos){curClasses.splice(pos,1);}}
finalValue=curClasses.join(" ");if(className!=finalValue){elem.className.baseVal=finalValue;}}
return this;};elproto.hasClass=function(value){var elem=this.node,className=elem.className.baseVal,curClasses=className.match(rgNotSpace)||[];return!!~curClasses.indexOf(value);};elproto.toggleClass=function(value,flag){if(flag!=null){if(flag){return this.addClass(value);}else{return this.removeClass(value);}}
var classes=(value||"").match(rgNotSpace)||[],elem=this.node,className=elem.className.baseVal,curClasses=className.match(rgNotSpace)||[],j,pos,clazz,finalValue;j=0;while(clazz=classes[j++]){pos=curClasses.indexOf(clazz);if(~pos){curClasses.splice(pos,1);}else{curClasses.push(clazz);}}
finalValue=curClasses.join(" ");if(className!=finalValue){elem.className.baseVal=finalValue;}
return this;};});Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var operators={"+":function(x,y){return x+y;},"-":function(x,y){return x-y;},"/":function(x,y){return x/y;},"*":function(x,y){return x*y;}},Str=String,reUnit=/[a-z]+$/i,reAddon=/^\s*([+\-\/*])\s*=\s*([\d.eE+\-]+)\s*([^\d\s]+)?\s*$/;function getNumber(val){return val;}
function getUnit(unit){return function(val){return+val.toFixed(3)+unit;};}
eve.on("snap.util.attr",function(val){var plus=Str(val).match(reAddon);if(plus){var evnt=eve.nt(),name=evnt.substring(evnt.lastIndexOf(".")+1),a=this.attr(name),atr={};eve.stop();var unit=plus[3]||"",aUnit=a.match(reUnit),op=operators[plus[1]];if(aUnit&&aUnit==unit){val=op(parseFloat(a),+plus[2]);}else{a=this.asPX(name);val=op(this.asPX(name),this.asPX(name,plus[2]+unit));}
if(isNaN(a)||isNaN(val)){return;}
atr[name]=val;this.attr(atr);}})(-10);eve.on("snap.util.equal",function(name,b){var A,B,a=Str(this.attr(name)||""),el=this,bplus=Str(b).match(reAddon);if(bplus){eve.stop();var unit=bplus[3]||"",aUnit=a.match(reUnit),op=operators[bplus[1]];if(aUnit&&aUnit==unit){return{from:parseFloat(a),to:op(parseFloat(a),+bplus[2]),f:getUnit(aUnit)};}else{a=this.asPX(name);return{from:a,to:op(a,this.asPX(name,bplus[2]+unit)),f:getNumber};}}})(-10);});Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var proto=Paper.prototype,is=Snap.is;proto.rect=function(x,y,w,h,rx,ry){var attr;if(ry==null){ry=rx;}
if(is(x,"object")&&x=="[object Object]"){attr=x;}else if(x!=null){attr={x:x,y:y,width:w,height:h};if(rx!=null){attr.rx=rx;attr.ry=ry;}}
return this.el("rect",attr);};proto.circle=function(cx,cy,r){var attr;if(is(cx,"object")&&cx=="[object Object]"){attr=cx;}else if(cx!=null){attr={cx:cx,cy:cy,r:r};}
return this.el("circle",attr);};var preload=(function(){function onerror(){this.parentNode.removeChild(this);}
return function(src,f){var img=glob.doc.createElement("img"),body=glob.doc.body;img.style.cssText="position:absolute;left:-9999em;top:-9999em";img.onload=function(){f.call(img);img.onload=img.onerror=null;body.removeChild(img);};img.onerror=onerror;body.appendChild(img);img.src=src;};}());proto.image=function(src,x,y,width,height){var el=this.el("image");if(is(src,"object")&&"src" in src){el.attr(src);}else if(src!=null){var set={"xlink:href":src,preserveAspectRatio:"none"};if(x!=null&&y!=null){set.x=x;set.y=y;}
if(width!=null&&height!=null){set.width=width;set.height=height;}else{preload(src,function(){Snap._.$(el.node,{width:this.offsetWidth,height:this.offsetHeight});});}
Snap._.$(el.node,set);}
return el;};proto.ellipse=function(cx,cy,rx,ry){var attr;if(is(cx,"object")&&cx=="[object Object]"){attr=cx;}else if(cx!=null){attr={cx:cx,cy:cy,rx:rx,ry:ry};}
return this.el("ellipse",attr);};proto.path=function(d){var attr;if(is(d,"object")&&!is(d,"array")){attr=d;}else if(d){attr={d:d};}
return this.el("path",attr);};proto.group=proto.g=function(first){var attr,el=this.el("g");if(arguments.length==1&&first&&!first.type){el.attr(first);}else if(arguments.length){el.add(Array.prototype.slice.call(arguments,0));}
return el;};proto.svg=function(x,y,width,height,vbx,vby,vbw,vbh){var attrs={};if(is(x,"object")&&y==null){attrs=x;}else{if(x!=null){attrs.x=x;}
if(y!=null){attrs.y=y;}
if(width!=null){attrs.width=width;}
if(height!=null){attrs.height=height;}
if(vbx!=null&&vby!=null&&vbw!=null&&vbh!=null){attrs.viewBox=[vbx,vby,vbw,vbh];}}
return this.el("svg",attrs);};proto.mask=function(first){var attr,el=this.el("mask");if(arguments.length==1&&first&&!first.type){el.attr(first);}else if(arguments.length){el.add(Array.prototype.slice.call(arguments,0));}
return el;};proto.ptrn=function(x,y,width,height,vx,vy,vw,vh){if(is(x,"object")){var attr=x;}else{attr={patternUnits:"userSpaceOnUse"};if(x){attr.x=x;}
if(y){attr.y=y;}
if(width!=null){attr.width=width;}
if(height!=null){attr.height=height;}
if(vx!=null&&vy!=null&&vw!=null&&vh!=null){attr.viewBox=[vx,vy,vw,vh];}else{attr.viewBox=[x||0,y||0,width||0,height||0];}}
return this.el("pattern",attr);};proto.use=function(id){if(id!=null){if(id instanceof Element){if(!id.attr("id")){id.attr({id:Snap._.id(id)});}
id=id.attr("id");}
if(String(id).charAt()=="#"){id=id.substring(1);}
return this.el("use",{"xlink:href":"#"+id});}else{return Element.prototype.use.call(this);}};proto.symbol=function(vx,vy,vw,vh){var attr={};if(vx!=null&&vy!=null&&vw!=null&&vh!=null){attr.viewBox=[vx,vy,vw,vh];}
return this.el("symbol",attr);};proto.text=function(x,y,text){var attr={};if(is(x,"object")){attr=x;}else if(x!=null){attr={x:x,y:y,text:text||""};}
return this.el("text",attr);};proto.line=function(x1,y1,x2,y2){var attr={};if(is(x1,"object")){attr=x1;}else if(x1!=null){attr={x1:x1,x2:x2,y1:y1,y2:y2};}
return this.el("line",attr);};proto.polyline=function(points){if(arguments.length>1){points=Array.prototype.slice.call(arguments,0);}
var attr={};if(is(points,"object")&&!is(points,"array")){attr=points;}else if(points!=null){attr={points:points};}
return this.el("polyline",attr);};proto.polygon=function(points){if(arguments.length>1){points=Array.prototype.slice.call(arguments,0);}
var attr={};if(is(points,"object")&&!is(points,"array")){attr=points;}else if(points!=null){attr={points:points};}
return this.el("polygon",attr);};(function(){var $=Snap._.$;function Gstops(){return this.selectAll("stop");}
function GaddStop(color,offset){var stop=$("stop"),attr={offset:+offset+"%"};color=Snap.color(color);attr["stop-color"]=color.hex;if(color.opacity<1){attr["stop-opacity"]=color.opacity;}
$(stop,attr);var stops=this.stops(),inserted;for(var i=0;i<stops.length;i++){var stopOffset=parseFloat(stops[i].attr("offset"));if(stopOffset>offset){this.node.insertBefore(stop,stops[i].node);inserted=true;break;}}
if(!inserted){this.node.appendChild(stop);}
return this;}
function GgetBBox(){if(this.type=="linearGradient"){var x1=$(this.node,"x1")||0,x2=$(this.node,"x2")||1,y1=$(this.node,"y1")||0,y2=$(this.node,"y2")||0;return Snap._.box(x1,y1,math.abs(x2-x1),math.abs(y2-y1));}else{var cx=this.node.cx||.5,cy=this.node.cy||.5,r=this.node.r||0;return Snap._.box(cx-r,cy-r,r*2,r*2);}}
function GsetStops(str){var grad=str,stops=this.stops();if(typeof str=="string"){grad=eve("snap.util.grad.parse",null,"l(0,0,0,1)"+str).firstDefined().stops;}
if(!Snap.is(grad,"array")){return;}
for(var i=0;i<stops.length;i++){if(grad[i]){var color=Snap.color(grad[i].color),attr={"offset":grad[i].offset+"%"};attr["stop-color"]=color.hex;if(color.opacity<1){attr["stop-opacity"]=color.opacity;}
stops[i].attr(attr);}else{stops[i].remove();}}
for(i=stops.length;i<grad.length;i++){this.addStop(grad[i].color,grad[i].offset);}
return this;}
function gradient(defs,str){var grad=eve("snap.util.grad.parse",null,str).firstDefined(),el;if(!grad){return null;}
grad.params.unshift(defs);if(grad.type.toLowerCase()=="l"){el=gradientLinear.apply(0,grad.params);}else{el=gradientRadial.apply(0,grad.params);}
if(grad.type!=grad.type.toLowerCase()){$(el.node,{gradientUnits:"userSpaceOnUse"});}
var stops=grad.stops,len=stops.length;for(var i=0;i<len;i++){var stop=stops[i];el.addStop(stop.color,stop.offset);}
return el;}
function gradientLinear(defs,x1,y1,x2,y2){var el=Snap._.make("linearGradient",defs);el.stops=Gstops;el.addStop=GaddStop;el.getBBox=GgetBBox;el.setStops=GsetStops;if(x1!=null){$(el.node,{x1:x1,y1:y1,x2:x2,y2:y2});}
return el;}
function gradientRadial(defs,cx,cy,r,fx,fy){var el=Snap._.make("radialGradient",defs);el.stops=Gstops;el.addStop=GaddStop;el.getBBox=GgetBBox;if(cx!=null){$(el.node,{cx:cx,cy:cy,r:r});}
if(fx!=null&&fy!=null){$(el.node,{fx:fx,fy:fy});}
return el;}
proto.gradient=function(str){return gradient(this.defs,str);};proto.gradientLinear=function(x1,y1,x2,y2){return gradientLinear(this.defs,x1,y1,x2,y2);};proto.gradientRadial=function(cx,cy,r,fx,fy){return gradientRadial(this.defs,cx,cy,r,fx,fy);};proto.toString=function(){var doc=this.node.ownerDocument,f=doc.createDocumentFragment(),d=doc.createElement("div"),svg=this.node.cloneNode(true),res;f.appendChild(d);d.appendChild(svg);Snap._.$(svg,{xmlns:"http://www.w3.org/2000/svg"});res=d.innerHTML;f.removeChild(f.firstChild);return res;};proto.toDataURL=function(){if(window&&window.btoa){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(this)));}};proto.clear=function(){var node=this.node.firstChild,next;while(node){next=node.nextSibling;if(node.tagName!="defs"){node.parentNode.removeChild(node);}else{proto.clear.call({node:node});}
node=next;}};}());});Snap.plugin(function(Snap,Element,Paper,glob){var elproto=Element.prototype,is=Snap.is,clone=Snap._.clone,has="hasOwnProperty",p2s=/,?([a-z]),?/gi,toFloat=parseFloat,math=Math,PI=math.PI,mmin=math.min,mmax=math.max,pow=math.pow,abs=math.abs;function paths(ps){var p=paths.ps=paths.ps||{};if(p[ps]){p[ps].sleep=100;}else{p[ps]={sleep:100};}
setTimeout(function(){for(var key in p)if(p[has](key)&&key!=ps){p[key].sleep--;!p[key].sleep&&delete p[key];}});return p[ps];}
function box(x,y,width,height){if(x==null){x=y=width=height=0;}
if(y==null){y=x.y;width=x.width;height=x.height;x=x.x;}
return{x:x,y:y,width:width,w:width,height:height,h:height,x2:x+width,y2:y+height,cx:x+width/2,cy:y+height/2,r1:math.min(width,height)/2,r2:math.max(width,height)/2,r0:math.sqrt(width*width+height*height)/2,path:rectPath(x,y,width,height),vb:[x,y,width,height].join(" ")};}
function toString(){return this.join(",").replace(p2s,"$1");}
function pathClone(pathArray){var res=clone(pathArray);res.toString=toString;return res;}
function getPointAtSegmentLength(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,length){if(length==null){return bezlen(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y);}else{return findDotsAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,getTotLen(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,length));}}
function getLengthFactory(istotal,subpath){function O(val){return+(+val).toFixed(3);}
return Snap._.cacher(function(path,length,onlystart){if(path instanceof Element){path=path.attr("d");}
path=path2curve(path);var x,y,p,l,sp="",subpaths={},point,len=0;for(var i=0,ii=path.length;i<ii;i++){p=path[i];if(p[0]=="M"){x=+p[1];y=+p[2];}else{l=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6]);if(len+l>length){if(subpath&&!subpaths.start){point=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6],length-len);sp+=["C"+O(point.start.x),O(point.start.y),O(point.m.x),O(point.m.y),O(point.x),O(point.y)];if(onlystart){return sp;}
subpaths.start=sp;sp=["M"+O(point.x),O(point.y)+"C"+O(point.n.x),O(point.n.y),O(point.end.x),O(point.end.y),O(p[5]),O(p[6])].join();len+=l;x=+p[5];y=+p[6];continue;}
if(!istotal&&!subpath){point=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6],length-len);return point;}}
len+=l;x=+p[5];y=+p[6];}
sp+=p.shift()+p;}
subpaths.end=sp;point=istotal?len:subpath?subpaths:findDotsAtSegment(x,y,p[0],p[1],p[2],p[3],p[4],p[5],1);return point;},null,Snap._.clone);}
var getTotalLength=getLengthFactory(1),getPointAtLength=getLengthFactory(),getSubpathsAtLength=getLengthFactory(0,1);function findDotsAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t){var t1=1-t,t13=pow(t1,3),t12=pow(t1,2),t2=t*t,t3=t2*t,x=t13*p1x+t12*3*t*c1x+t1*3*t*t*c2x+t3*p2x,y=t13*p1y+t12*3*t*c1y+t1*3*t*t*c2y+t3*p2y,mx=p1x+2*t*(c1x-p1x)+t2*(c2x-2*c1x+p1x),my=p1y+2*t*(c1y-p1y)+t2*(c2y-2*c1y+p1y),nx=c1x+2*t*(c2x-c1x)+t2*(p2x-2*c2x+c1x),ny=c1y+2*t*(c2y-c1y)+t2*(p2y-2*c2y+c1y),ax=t1*p1x+t*c1x,ay=t1*p1y+t*c1y,cx=t1*c2x+t*p2x,cy=t1*c2y+t*p2y,alpha=90-math.atan2(mx-nx,my-ny)*180/PI;return{x:x,y:y,m:{x:mx,y:my},n:{x:nx,y:ny},start:{x:ax,y:ay},end:{x:cx,y:cy},alpha:alpha};}
function bezierBBox(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y){if(!Snap.is(p1x,"array")){p1x=[p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y];}
var bbox=curveDim.apply(null,p1x);return box(bbox.min.x,bbox.min.y,bbox.max.x-bbox.min.x,bbox.max.y-bbox.min.y);}
function isPointInsideBBox(bbox,x,y){return x>=bbox.x&&x<=bbox.x+bbox.width&&y>=bbox.y&&y<=bbox.y+bbox.height;}
function isBBoxIntersect(bbox1,bbox2){bbox1=box(bbox1);bbox2=box(bbox2);return isPointInsideBBox(bbox2,bbox1.x,bbox1.y)||isPointInsideBBox(bbox2,bbox1.x2,bbox1.y)||isPointInsideBBox(bbox2,bbox1.x,bbox1.y2)||isPointInsideBBox(bbox2,bbox1.x2,bbox1.y2)||isPointInsideBBox(bbox1,bbox2.x,bbox2.y)||isPointInsideBBox(bbox1,bbox2.x2,bbox2.y)||isPointInsideBBox(bbox1,bbox2.x,bbox2.y2)||isPointInsideBBox(bbox1,bbox2.x2,bbox2.y2)||(bbox1.x<bbox2.x2&&bbox1.x>bbox2.x||bbox2.x<bbox1.x2&&bbox2.x>bbox1.x)&&(bbox1.y<bbox2.y2&&bbox1.y>bbox2.y||bbox2.y<bbox1.y2&&bbox2.y>bbox1.y);}
function base3(t,p1,p2,p3,p4){var t1=-3*p1+9*p2-9*p3+3*p4,t2=t*t1+6*p1-12*p2+6*p3;return t*t2-3*p1+3*p2;}
function bezlen(x1,y1,x2,y2,x3,y3,x4,y4,z){if(z==null){z=1;}
z=z>1?1:z<0?0:z;var z2=z/2,n=12,Tvalues=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],Cvalues=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],sum=0;for(var i=0;i<n;i++){var ct=z2*Tvalues[i]+z2,xbase=base3(ct,x1,x2,x3,x4),ybase=base3(ct,y1,y2,y3,y4),comb=xbase*xbase+ybase*ybase;sum+=Cvalues[i]*math.sqrt(comb);}
return z2*sum;}
function getTotLen(x1,y1,x2,y2,x3,y3,x4,y4,ll){if(ll<0||bezlen(x1,y1,x2,y2,x3,y3,x4,y4)<ll){return;}
var t=1,step=t/2,t2=t-step,l,e=.01;l=bezlen(x1,y1,x2,y2,x3,y3,x4,y4,t2);while(abs(l-ll)>e){step/=2;t2+=(l<ll?1:-1)*step;l=bezlen(x1,y1,x2,y2,x3,y3,x4,y4,t2);}
return t2;}
function intersect(x1,y1,x2,y2,x3,y3,x4,y4){if(mmax(x1,x2)<mmin(x3,x4)||mmin(x1,x2)>mmax(x3,x4)||mmax(y1,y2)<mmin(y3,y4)||mmin(y1,y2)>mmax(y3,y4)){return;}
var nx=(x1*y2-y1*x2)*(x3-x4)-(x1-x2)*(x3*y4-y3*x4),ny=(x1*y2-y1*x2)*(y3-y4)-(y1-y2)*(x3*y4-y3*x4),denominator=(x1-x2)*(y3-y4)-(y1-y2)*(x3-x4);if(!denominator){return;}
var px=nx/denominator,py=ny/denominator,px2=+px.toFixed(2),py2=+py.toFixed(2);if(px2<+mmin(x1,x2).toFixed(2)||px2>+mmax(x1,x2).toFixed(2)||px2<+mmin(x3,x4).toFixed(2)||px2>+mmax(x3,x4).toFixed(2)||py2<+mmin(y1,y2).toFixed(2)||py2>+mmax(y1,y2).toFixed(2)||py2<+mmin(y3,y4).toFixed(2)||py2>+mmax(y3,y4).toFixed(2)){return;}
return{x:px,y:py};}
function inter(bez1,bez2){return interHelper(bez1,bez2);}
function interCount(bez1,bez2){return interHelper(bez1,bez2,1);}
function interHelper(bez1,bez2,justCount){var bbox1=bezierBBox(bez1),bbox2=bezierBBox(bez2);if(!isBBoxIntersect(bbox1,bbox2)){return justCount?0:[];}
var l1=bezlen.apply(0,bez1),l2=bezlen.apply(0,bez2),n1=~~(l1/8),n2=~~(l2/8),dots1=[],dots2=[],xy={},res=justCount?0:[];for(var i=0;i<n1+1;i++){var p=findDotsAtSegment.apply(0,bez1.concat(i/n1));dots1.push({x:p.x,y:p.y,t:i/n1});}
for(i=0;i<n2+1;i++){p=findDotsAtSegment.apply(0,bez2.concat(i/n2));dots2.push({x:p.x,y:p.y,t:i/n2});}
for(i=0;i<n1;i++){for(var j=0;j<n2;j++){var di=dots1[i],di1=dots1[i+1],dj=dots2[j],dj1=dots2[j+1],ci=abs(di1.x-di.x)<.001?"y":"x",cj=abs(dj1.x-dj.x)<.001?"y":"x",is=intersect(di.x,di.y,di1.x,di1.y,dj.x,dj.y,dj1.x,dj1.y);if(is){if(xy[is.x.toFixed(4)]==is.y.toFixed(4)){continue;}
xy[is.x.toFixed(4)]=is.y.toFixed(4);var t1=di.t+abs((is[ci]-di[ci])/(di1[ci]-di[ci]))*(di1.t-di.t),t2=dj.t+abs((is[cj]-dj[cj])/(dj1[cj]-dj[cj]))*(dj1.t-dj.t);if(t1>=0&&t1<=1&&t2>=0&&t2<=1){if(justCount){res++;}else{res.push({x:is.x,y:is.y,t1:t1,t2:t2});}}}}}
return res;}
function pathIntersection(path1,path2){return interPathHelper(path1,path2);}
function pathIntersectionNumber(path1,path2){return interPathHelper(path1,path2,1);}
function interPathHelper(path1,path2,justCount){path1=path2curve(path1);path2=path2curve(path2);var x1,y1,x2,y2,x1m,y1m,x2m,y2m,bez1,bez2,res=justCount?0:[];for(var i=0,ii=path1.length;i<ii;i++){var pi=path1[i];if(pi[0]=="M"){x1=x1m=pi[1];y1=y1m=pi[2];}else{if(pi[0]=="C"){bez1=[x1,y1].concat(pi.slice(1));x1=bez1[6];y1=bez1[7];}else{bez1=[x1,y1,x1,y1,x1m,y1m,x1m,y1m];x1=x1m;y1=y1m;}
for(var j=0,jj=path2.length;j<jj;j++){var pj=path2[j];if(pj[0]=="M"){x2=x2m=pj[1];y2=y2m=pj[2];}else{if(pj[0]=="C"){bez2=[x2,y2].concat(pj.slice(1));x2=bez2[6];y2=bez2[7];}else{bez2=[x2,y2,x2,y2,x2m,y2m,x2m,y2m];x2=x2m;y2=y2m;}
var intr=interHelper(bez1,bez2,justCount);if(justCount){res+=intr;}else{for(var k=0,kk=intr.length;k<kk;k++){intr[k].segment1=i;intr[k].segment2=j;intr[k].bez1=bez1;intr[k].bez2=bez2;}
res=res.concat(intr);}}}}}
return res;}
function isPointInsidePath(path,x,y){var bbox=pathBBox(path);return isPointInsideBBox(bbox,x,y)&&interPathHelper(path,[["M",x,y],["H",bbox.x2+10]],1)%2==1;}
function pathBBox(path){var pth=paths(path);if(pth.bbox){return clone(pth.bbox);}
if(!path){return box();}
path=path2curve(path);var x=0,y=0,X=[],Y=[],p;for(var i=0,ii=path.length;i<ii;i++){p=path[i];if(p[0]=="M"){x=p[1];y=p[2];X.push(x);Y.push(y);}else{var dim=curveDim(x,y,p[1],p[2],p[3],p[4],p[5],p[6]);X=X.concat(dim.min.x,dim.max.x);Y=Y.concat(dim.min.y,dim.max.y);x=p[5];y=p[6];}}
var xmin=mmin.apply(0,X),ymin=mmin.apply(0,Y),xmax=mmax.apply(0,X),ymax=mmax.apply(0,Y),bb=box(xmin,ymin,xmax-xmin,ymax-ymin);pth.bbox=clone(bb);return bb;}
function rectPath(x,y,w,h,r){if(r){return[["M",+x+ +r,y],["l",w-r*2,0],["a",r,r,0,0,1,r,r],["l",0,h-r*2],["a",r,r,0,0,1,-r,r],["l",r*2-w,0],["a",r,r,0,0,1,-r,-r],["l",0,r*2-h],["a",r,r,0,0,1,r,-r],["z"]];}
var res=[["M",x,y],["l",w,0],["l",0,h],["l",-w,0],["z"]];res.toString=toString;return res;}
function ellipsePath(x,y,rx,ry,a){if(a==null&&ry==null){ry=rx;}
x=+x;y=+y;rx=+rx;ry=+ry;if(a!=null){var rad=Math.PI/180,x1=x+rx*Math.cos(-ry*rad),x2=x+rx*Math.cos(-a*rad),y1=y+rx*Math.sin(-ry*rad),y2=y+rx*Math.sin(-a*rad),res=[["M",x1,y1],["A",rx,rx,0,+(a-ry>180),0,x2,y2]];}else{res=[["M",x,y],["m",0,-ry],["a",rx,ry,0,1,1,0,2*ry],["a",rx,ry,0,1,1,0,-2*ry],["z"]];}
res.toString=toString;return res;}
var unit2px=Snap._unit2px,getPath={path:function(el){return el.attr("path");},circle:function(el){var attr=unit2px(el);return ellipsePath(attr.cx,attr.cy,attr.r);},ellipse:function(el){var attr=unit2px(el);return ellipsePath(attr.cx||0,attr.cy||0,attr.rx,attr.ry);},rect:function(el){var attr=unit2px(el);return rectPath(attr.x||0,attr.y||0,attr.width,attr.height,attr.rx,attr.ry);},image:function(el){var attr=unit2px(el);return rectPath(attr.x||0,attr.y||0,attr.width,attr.height);},line:function(el){return"M"+[el.attr("x1")||0,el.attr("y1")||0,el.attr("x2"),el.attr("y2")];},polyline:function(el){return"M"+el.attr("points");},polygon:function(el){return"M"+el.attr("points")+"z";},deflt:function(el){var bbox=el.node.getBBox();return rectPath(bbox.x,bbox.y,bbox.width,bbox.height);}};function pathToRelative(pathArray){var pth=paths(pathArray),lowerCase=String.prototype.toLowerCase;if(pth.rel){return pathClone(pth.rel);}
if(!Snap.is(pathArray,"array")||!Snap.is(pathArray&&pathArray[0],"array")){pathArray=Snap.parsePathString(pathArray);}
var res=[],x=0,y=0,mx=0,my=0,start=0;if(pathArray[0][0]=="M"){x=pathArray[0][1];y=pathArray[0][2];mx=x;my=y;start++;res.push(["M",x,y]);}
for(var i=start,ii=pathArray.length;i<ii;i++){var r=res[i]=[],pa=pathArray[i];if(pa[0]!=lowerCase.call(pa[0])){r[0]=lowerCase.call(pa[0]);switch(r[0]){case"a":r[1]=pa[1];r[2]=pa[2];r[3]=pa[3];r[4]=pa[4];r[5]=pa[5];r[6]=+(pa[6]-x).toFixed(3);r[7]=+(pa[7]-y).toFixed(3);break;case"v":r[1]=+(pa[1]-y).toFixed(3);break;case"m":mx=pa[1];my=pa[2];default:for(var j=1,jj=pa.length;j<jj;j++){r[j]=+(pa[j]-(j%2?x:y)).toFixed(3);}}}else{r=res[i]=[];if(pa[0]=="m"){mx=pa[1]+x;my=pa[2]+y;}
for(var k=0,kk=pa.length;k<kk;k++){res[i][k]=pa[k];}}
var len=res[i].length;switch(res[i][0]){case"z":x=mx;y=my;break;case"h":x+=+res[i][len-1];break;case"v":y+=+res[i][len-1];break;default:x+=+res[i][len-2];y+=+res[i][len-1];}}
res.toString=toString;pth.rel=pathClone(res);return res;}
function pathToAbsolute(pathArray){var pth=paths(pathArray);if(pth.abs){return pathClone(pth.abs);}
if(!is(pathArray,"array")||!is(pathArray&&pathArray[0],"array")){pathArray=Snap.parsePathString(pathArray);}
if(!pathArray||!pathArray.length){return[["M",0,0]];}
var res=[],x=0,y=0,mx=0,my=0,start=0,pa0;if(pathArray[0][0]=="M"){x=+pathArray[0][1];y=+pathArray[0][2];mx=x;my=y;start++;res[0]=["M",x,y];}
var crz=pathArray.length==3&&pathArray[0][0]=="M"&&pathArray[1][0].toUpperCase()=="R"&&pathArray[2][0].toUpperCase()=="Z";for(var r,pa,i=start,ii=pathArray.length;i<ii;i++){res.push(r=[]);pa=pathArray[i];pa0=pa[0];if(pa0!=pa0.toUpperCase()){r[0]=pa0.toUpperCase();switch(r[0]){case"A":r[1]=pa[1];r[2]=pa[2];r[3]=pa[3];r[4]=pa[4];r[5]=pa[5];r[6]=+pa[6]+x;r[7]=+pa[7]+y;break;case"V":r[1]=+pa[1]+y;break;case"H":r[1]=+pa[1]+x;break;case"R":var dots=[x,y].concat(pa.slice(1));for(var j=2,jj=dots.length;j<jj;j++){dots[j]=+dots[j]+x;dots[++j]=+dots[j]+y;}
res.pop();res=res.concat(catmullRom2bezier(dots,crz));break;case"O":res.pop();dots=ellipsePath(x,y,pa[1],pa[2]);dots.push(dots[0]);res=res.concat(dots);break;case"U":res.pop();res=res.concat(ellipsePath(x,y,pa[1],pa[2],pa[3]));r=["U"].concat(res[res.length-1].slice(-2));break;case"M":mx=+pa[1]+x;my=+pa[2]+y;default:for(j=1,jj=pa.length;j<jj;j++){r[j]=+pa[j]+(j%2?x:y);}}}else if(pa0=="R"){dots=[x,y].concat(pa.slice(1));res.pop();res=res.concat(catmullRom2bezier(dots,crz));r=["R"].concat(pa.slice(-2));}else if(pa0=="O"){res.pop();dots=ellipsePath(x,y,pa[1],pa[2]);dots.push(dots[0]);res=res.concat(dots);}else if(pa0=="U"){res.pop();res=res.concat(ellipsePath(x,y,pa[1],pa[2],pa[3]));r=["U"].concat(res[res.length-1].slice(-2));}else{for(var k=0,kk=pa.length;k<kk;k++){r[k]=pa[k];}}
pa0=pa0.toUpperCase();if(pa0!="O"){switch(r[0]){case"Z":x=+mx;y=+my;break;case"H":x=r[1];break;case"V":y=r[1];break;case"M":mx=r[r.length-2];my=r[r.length-1];default:x=r[r.length-2];y=r[r.length-1];}}}
res.toString=toString;pth.abs=pathClone(res);return res;}
function l2c(x1,y1,x2,y2){return[x1,y1,x2,y2,x2,y2];}
function q2c(x1,y1,ax,ay,x2,y2){var _13=1/3,_23=2/3;return[_13*x1+_23*ax,_13*y1+_23*ay,_13*x2+_23*ax,_13*y2+_23*ay,x2,y2];}
function a2c(x1,y1,rx,ry,angle,large_arc_flag,sweep_flag,x2,y2,recursive){var _120=PI*120/180,rad=PI/180*(+angle||0),res=[],xy,rotate=Snap._.cacher(function(x,y,rad){var X=x*math.cos(rad)-y*math.sin(rad),Y=x*math.sin(rad)+y*math.cos(rad);return{x:X,y:Y};});if(!rx||!ry){return[x1,y1,x2,y2,x2,y2];}
if(!recursive){xy=rotate(x1,y1,-rad);x1=xy.x;y1=xy.y;xy=rotate(x2,y2,-rad);x2=xy.x;y2=xy.y;var cos=math.cos(PI/180*angle),sin=math.sin(PI/180*angle),x=(x1-x2)/2,y=(y1-y2)/2;var h=x*x/(rx*rx)+y*y/(ry*ry);if(h>1){h=math.sqrt(h);rx=h*rx;ry=h*ry;}
var rx2=rx*rx,ry2=ry*ry,k=(large_arc_flag==sweep_flag?-1:1)*math.sqrt(abs((rx2*ry2-rx2*y*y-ry2*x*x)/(rx2*y*y+ry2*x*x))),cx=k*rx*y/ry+(x1+x2)/2,cy=k* -ry*x/rx+(y1+y2)/2,f1=math.asin(((y1-cy)/ry).toFixed(9)),f2=math.asin(((y2-cy)/ry).toFixed(9));f1=x1<cx?PI-f1:f1;f2=x2<cx?PI-f2:f2;f1<0&&(f1=PI*2+f1);f2<0&&(f2=PI*2+f2);if(sweep_flag&&f1>f2){f1=f1-PI*2;}
if(!sweep_flag&&f2>f1){f2=f2-PI*2;}}else{f1=recursive[0];f2=recursive[1];cx=recursive[2];cy=recursive[3];}
var df=f2-f1;if(abs(df)>_120){var f2old=f2,x2old=x2,y2old=y2;f2=f1+_120*(sweep_flag&&f2>f1?1:-1);x2=cx+rx*math.cos(f2);y2=cy+ry*math.sin(f2);res=a2c(x2,y2,rx,ry,angle,0,sweep_flag,x2old,y2old,[f2,f2old,cx,cy]);}
df=f2-f1;var c1=math.cos(f1),s1=math.sin(f1),c2=math.cos(f2),s2=math.sin(f2),t=math.tan(df/4),hx=4/3*rx*t,hy=4/3*ry*t,m1=[x1,y1],m2=[x1+hx*s1,y1-hy*c1],m3=[x2+hx*s2,y2-hy*c2],m4=[x2,y2];m2[0]=2*m1[0]-m2[0];m2[1]=2*m1[1]-m2[1];if(recursive){return[m2,m3,m4].concat(res);}else{res=[m2,m3,m4].concat(res).join().split(",");var newres=[];for(var i=0,ii=res.length;i<ii;i++){newres[i]=i%2?rotate(res[i-1],res[i],rad).y:rotate(res[i],res[i+1],rad).x;}
return newres;}}
function findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t){var t1=1-t;return{x:pow(t1,3)*p1x+pow(t1,2)*3*t*c1x+t1*3*t*t*c2x+pow(t,3)*p2x,y:pow(t1,3)*p1y+pow(t1,2)*3*t*c1y+t1*3*t*t*c2y+pow(t,3)*p2y};}
function curveDim(x0,y0,x1,y1,x2,y2,x3,y3){var tvalues=[],bounds=[[],[]],a,b,c,t,t1,t2,b2ac,sqrtb2ac;for(var i=0;i<2;++i){if(i==0){b=6*x0-12*x1+6*x2;a=-3*x0+9*x1-9*x2+3*x3;c=3*x1-3*x0;}else{b=6*y0-12*y1+6*y2;a=-3*y0+9*y1-9*y2+3*y3;c=3*y1-3*y0;}
if(abs(a)<1e-12){if(abs(b)<1e-12){continue;}
t=-c/b;if(0<t&&t<1){tvalues.push(t);}
continue;}
b2ac=b*b-4*c*a;sqrtb2ac=math.sqrt(b2ac);if(b2ac<0){continue;}
t1=(-b+sqrtb2ac)/(2*a);if(0<t1&&t1<1){tvalues.push(t1);}
t2=(-b-sqrtb2ac)/(2*a);if(0<t2&&t2<1){tvalues.push(t2);}}
var x,y,j=tvalues.length,jlen=j,mt;while(j--){t=tvalues[j];mt=1-t;bounds[0][j]=mt*mt*mt*x0+3*mt*mt*t*x1+3*mt*t*t*x2+t*t*t*x3;bounds[1][j]=mt*mt*mt*y0+3*mt*mt*t*y1+3*mt*t*t*y2+t*t*t*y3;}
bounds[0][jlen]=x0;bounds[1][jlen]=y0;bounds[0][jlen+1]=x3;bounds[1][jlen+1]=y3;bounds[0].length=bounds[1].length=jlen+2;return{min:{x:mmin.apply(0,bounds[0]),y:mmin.apply(0,bounds[1])},max:{x:mmax.apply(0,bounds[0]),y:mmax.apply(0,bounds[1])}};}
function path2curve(path,path2){var pth=!path2&&paths(path);if(!path2&&pth.curve){return pathClone(pth.curve);}
var p=pathToAbsolute(path),p2=path2&&pathToAbsolute(path2),attrs={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},attrs2={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},processPath=function(path,d,pcom){var nx,ny;if(!path){return["C",d.x,d.y,d.x,d.y,d.x,d.y];}
!(path[0]in{T:1,Q:1})&&(d.qx=d.qy=null);switch(path[0]){case"M":d.X=path[1];d.Y=path[2];break;case"A":path=["C"].concat(a2c.apply(0,[d.x,d.y].concat(path.slice(1))));break;case"S":if(pcom=="C"||pcom=="S"){nx=d.x*2-d.bx;ny=d.y*2-d.by;}
else{nx=d.x;ny=d.y;}
path=["C",nx,ny].concat(path.slice(1));break;case"T":if(pcom=="Q"||pcom=="T"){d.qx=d.x*2-d.qx;d.qy=d.y*2-d.qy;}
else{d.qx=d.x;d.qy=d.y;}
path=["C"].concat(q2c(d.x,d.y,d.qx,d.qy,path[1],path[2]));break;case"Q":d.qx=path[1];d.qy=path[2];path=["C"].concat(q2c(d.x,d.y,path[1],path[2],path[3],path[4]));break;case"L":path=["C"].concat(l2c(d.x,d.y,path[1],path[2]));break;case"H":path=["C"].concat(l2c(d.x,d.y,path[1],d.y));break;case"V":path=["C"].concat(l2c(d.x,d.y,d.x,path[1]));break;case"Z":path=["C"].concat(l2c(d.x,d.y,d.X,d.Y));break;}
return path;},fixArc=function(pp,i){if(pp[i].length>7){pp[i].shift();var pi=pp[i];while(pi.length){pcoms1[i]="A";p2&&(pcoms2[i]="A");pp.splice(i++,0,["C"].concat(pi.splice(0,6)));}
pp.splice(i,1);ii=mmax(p.length,p2&&p2.length||0);}},fixM=function(path1,path2,a1,a2,i){if(path1&&path2&&path1[i][0]=="M"&&path2[i][0]!="M"){path2.splice(i,0,["M",a2.x,a2.y]);a1.bx=0;a1.by=0;a1.x=path1[i][1];a1.y=path1[i][2];ii=mmax(p.length,p2&&p2.length||0);}},pcoms1=[],pcoms2=[],pfirst="",pcom="";for(var i=0,ii=mmax(p.length,p2&&p2.length||0);i<ii;i++){p[i]&&(pfirst=p[i][0]);if(pfirst!="C")
{pcoms1[i]=pfirst;i&&(pcom=pcoms1[i-1]);}
p[i]=processPath(p[i],attrs,pcom);if(pcoms1[i]!="A"&&pfirst=="C")pcoms1[i]="C";fixArc(p,i);if(p2){p2[i]&&(pfirst=p2[i][0]);if(pfirst!="C"){pcoms2[i]=pfirst;i&&(pcom=pcoms2[i-1]);}
p2[i]=processPath(p2[i],attrs2,pcom);if(pcoms2[i]!="A"&&pfirst=="C"){pcoms2[i]="C";}
fixArc(p2,i);}
fixM(p,p2,attrs,attrs2,i);fixM(p2,p,attrs2,attrs,i);var seg=p[i],seg2=p2&&p2[i],seglen=seg.length,seg2len=p2&&seg2.length;attrs.x=seg[seglen-2];attrs.y=seg[seglen-1];attrs.bx=toFloat(seg[seglen-4])||attrs.x;attrs.by=toFloat(seg[seglen-3])||attrs.y;attrs2.bx=p2&&(toFloat(seg2[seg2len-4])||attrs2.x);attrs2.by=p2&&(toFloat(seg2[seg2len-3])||attrs2.y);attrs2.x=p2&&seg2[seg2len-2];attrs2.y=p2&&seg2[seg2len-1];}
if(!p2){pth.curve=pathClone(p);}
return p2?[p,p2]:p;}
function mapPath(path,matrix){if(!matrix){return path;}
var x,y,i,j,ii,jj,pathi;path=path2curve(path);for(i=0,ii=path.length;i<ii;i++){pathi=path[i];for(j=1,jj=pathi.length;j<jj;j+=2){x=matrix.x(pathi[j],pathi[j+1]);y=matrix.y(pathi[j],pathi[j+1]);pathi[j]=x;pathi[j+1]=y;}}
return path;}
function catmullRom2bezier(crp,z){var d=[];for(var i=0,iLen=crp.length;iLen-2*!z>i;i+=2){var p=[{x:+crp[i-2],y:+crp[i-1]},{x:+crp[i],y:+crp[i+1]},{x:+crp[i+2],y:+crp[i+3]},{x:+crp[i+4],y:+crp[i+5]}];if(z){if(!i){p[0]={x:+crp[iLen-2],y:+crp[iLen-1]};}else if(iLen-4==i){p[3]={x:+crp[0],y:+crp[1]};}else if(iLen-2==i){p[2]={x:+crp[0],y:+crp[1]};p[3]={x:+crp[2],y:+crp[3]};}}else{if(iLen-4==i){p[3]=p[2];}else if(!i){p[0]={x:+crp[i],y:+crp[i+1]};}}
d.push(["C",(-p[0].x+6*p[1].x+p[2].x)/6,(-p[0].y+6*p[1].y+p[2].y)/6,(p[1].x+6*p[2].x-p[3].x)/6,(p[1].y+6*p[2].y-p[3].y)/6,p[2].x,p[2].y]);}
return d;}
Snap.path=paths;Snap.path.getTotalLength=getTotalLength;Snap.path.getPointAtLength=getPointAtLength;Snap.path.getSubpath=function(path,from,to){if(this.getTotalLength(path)-to<1e-6){return getSubpathsAtLength(path,from).end;}
var a=getSubpathsAtLength(path,to,1);return from?getSubpathsAtLength(a,from).end:a;};elproto.getTotalLength=function(){if(this.node.getTotalLength){return this.node.getTotalLength();}};elproto.getPointAtLength=function(length){return getPointAtLength(this.attr("d"),length);};elproto.getSubpath=function(from,to){return Snap.path.getSubpath(this.attr("d"),from,to);};Snap._.box=box;Snap.path.findDotsAtSegment=findDotsAtSegment;Snap.path.bezierBBox=bezierBBox;Snap.path.isPointInsideBBox=isPointInsideBBox;Snap.closest=function(x,y,X,Y){var r=100,b=box(x-r/2,y-r/2,r,r),inside=[],getter=X[0].hasOwnProperty("x")?function(i){return{x:X[i].x,y:X[i].y};}:function(i){return{x:X[i],y:Y[i]};},found=0;while(r<=1e6&&!found){for(var i=0,ii=X.length;i<ii;i++){var xy=getter(i);if(isPointInsideBBox(b,xy.x,xy.y)){found++;inside.push(xy);break;}}
if(!found){r*=2;b=box(x-r/2,y-r/2,r,r)}}
if(r==1e6){return;}
var len=Infinity,res;for(i=0,ii=inside.length;i<ii;i++){var l=Snap.len(x,y,inside[i].x,inside[i].y);if(len>l){len=l;inside[i].len=l;res=inside[i];}}
return res;};Snap.path.isBBoxIntersect=isBBoxIntersect;Snap.path.intersection=pathIntersection;Snap.path.intersectionNumber=pathIntersectionNumber;Snap.path.isPointInside=isPointInsidePath;Snap.path.getBBox=pathBBox;Snap.path.get=getPath;Snap.path.toRelative=pathToRelative;Snap.path.toAbsolute=pathToAbsolute;Snap.path.toCubic=path2curve;Snap.path.map=mapPath;Snap.path.toString=toString;Snap.path.clone=pathClone;});Snap.plugin(function(Snap,Element,Paper,glob){var mmax=Math.max,mmin=Math.min;var Set=function(items){this.items=[];this.bindings={};this.length=0;this.type="set";if(items){for(var i=0,ii=items.length;i<ii;i++){if(items[i]){this[this.items.length]=this.items[this.items.length]=items[i];this.length++;}}}},setproto=Set.prototype;setproto.push=function(){var item,len;for(var i=0,ii=arguments.length;i<ii;i++){item=arguments[i];if(item){len=this.items.length;this[len]=this.items[len]=item;this.length++;}}
return this;};setproto.pop=function(){this.length&&delete this[this.length--];return this.items.pop();};setproto.forEach=function(callback,thisArg){for(var i=0,ii=this.items.length;i<ii;i++){if(callback.call(thisArg,this.items[i],i)===false){return this;}}
return this;};setproto.animate=function(attrs,ms,easing,callback){if(typeof easing=="function"&&!easing.length){callback=easing;easing=mina.linear;}
if(attrs instanceof Snap._.Animation){callback=attrs.callback;easing=attrs.easing;ms=easing.dur;attrs=attrs.attr;}
var args=arguments;if(Snap.is(attrs,"array")&&Snap.is(args[args.length-1],"array")){var each=true;}
var begin,handler=function(){if(begin){this.b=begin;}else{begin=this.b;}},cb=0,set=this,callbacker=callback&&function(){if(++cb==set.length){callback.call(this);}};return this.forEach(function(el,i){eve.once("snap.animcreated."+el.id,handler);if(each){args[i]&&el.animate.apply(el,args[i]);}else{el.animate(attrs,ms,easing,callbacker);}});};setproto.remove=function(){while(this.length){this.pop().remove();}
return this;};setproto.bind=function(attr,a,b){var data={};if(typeof a=="function"){this.bindings[attr]=a;}else{var aname=b||attr;this.bindings[attr]=function(v){data[aname]=v;a.attr(data);};}
return this;};setproto.attr=function(value){var unbound={};for(var k in value){if(this.bindings[k]){this.bindings[k](value[k]);}else{unbound[k]=value[k];}}
for(var i=0,ii=this.items.length;i<ii;i++){this.items[i].attr(unbound);}
return this;};setproto.clear=function(){while(this.length){this.pop();}};setproto.splice=function(index,count,insertion){index=index<0?mmax(this.length+index,0):index;count=mmax(0,mmin(this.length-index,count));var tail=[],todel=[],args=[],i;for(i=2;i<arguments.length;i++){args.push(arguments[i]);}
for(i=0;i<count;i++){todel.push(this[index+i]);}
for(;i<this.length-index;i++){tail.push(this[index+i]);}
var arglen=args.length;for(i=0;i<arglen+tail.length;i++){this.items[index+i]=this[index+i]=i<arglen?args[i]:tail[i-arglen];}
i=this.items.length=this.length-=count-arglen;while(this[i]){delete this[i++];}
return new Set(todel);};setproto.exclude=function(el){for(var i=0,ii=this.length;i<ii;i++)if(this[i]==el){this.splice(i,1);return true;}
return false;};setproto.insertAfter=function(el){var i=this.items.length;while(i--){this.items[i].insertAfter(el);}
return this;};setproto.getBBox=function(){var x=[],y=[],x2=[],y2=[];for(var i=this.items.length;i--;)if(!this.items[i].removed){var box=this.items[i].getBBox();x.push(box.x);y.push(box.y);x2.push(box.x+box.width);y2.push(box.y+box.height);}
x=mmin.apply(0,x);y=mmin.apply(0,y);x2=mmax.apply(0,x2);y2=mmax.apply(0,y2);return{x:x,y:y,x2:x2,y2:y2,width:x2-x,height:y2-y,cx:x+(x2-x)/2,cy:y+(y2-y)/2};};setproto.clone=function(s){s=new Set;for(var i=0,ii=this.items.length;i<ii;i++){s.push(this.items[i].clone());}
return s;};setproto.toString=function(){return"Snap\u2018s set";};setproto.type="set";Snap.Set=Set;Snap.set=function(){var set=new Set;if(arguments.length){set.push.apply(set,Array.prototype.slice.call(arguments,0));}
return set;};});Snap.plugin(function(Snap,Element,Paper,glob){var names={},reUnit=/[%a-z]+$/i,Str=String;names.stroke=names.fill="colour";function getEmpty(item){var l=item[0];switch(l.toLowerCase()){case"t":return[l,0,0];case"m":return[l,1,0,0,1,0,0];case"r":if(item.length==4){return[l,0,item[2],item[3]];}else{return[l,0];}
case"s":if(item.length==5){return[l,1,1,item[3],item[4]];}else if(item.length==3){return[l,1,1];}else{return[l,1];}}}
function equaliseTransform(t1,t2,getBBox){t1=t1||new Snap.Matrix;t2=t2||new Snap.Matrix;t1=Snap.parseTransformString(t1.toTransformString())||[];t2=Snap.parseTransformString(t2.toTransformString())||[];var maxlength=Math.max(t1.length,t2.length),from=[],to=[],i=0,j,jj,tt1,tt2;for(;i<maxlength;i++){tt1=t1[i]||getEmpty(t2[i]);tt2=t2[i]||getEmpty(tt1);if(tt1[0]!=tt2[0]||tt1[0].toLowerCase()=="r"&&(tt1[2]!=tt2[2]||tt1[3]!=tt2[3])||tt1[0].toLowerCase()=="s"&&(tt1[3]!=tt2[3]||tt1[4]!=tt2[4])){t1=Snap._.transform2matrix(t1,getBBox());t2=Snap._.transform2matrix(t2,getBBox());from=[["m",t1.a,t1.b,t1.c,t1.d,t1.e,t1.f]];to=[["m",t2.a,t2.b,t2.c,t2.d,t2.e,t2.f]];break;}
from[i]=[];to[i]=[];for(j=0,jj=Math.max(tt1.length,tt2.length);j<jj;j++){j in tt1&&(from[i][j]=tt1[j]);j in tt2&&(to[i][j]=tt2[j]);}}
return{from:path2array(from),to:path2array(to),f:getPath(from)};}
function getNumber(val){return val;}
function getUnit(unit){return function(val){return+val.toFixed(3)+unit;};}
function getViewBox(val){return val.join(" ");}
function getColour(clr){return Snap.rgb(clr[0],clr[1],clr[2],clr[3]);}
function getPath(path){var k=0,i,ii,j,jj,out,a,b=[];for(i=0,ii=path.length;i<ii;i++){out="[";a=['"'+path[i][0]+'"'];for(j=1,jj=path[i].length;j<jj;j++){a[j]="val["+k++ +"]";}
out+=a+"]";b[i]=out;}
return Function("val","return Snap.path.toString.call(["+b+"])");}
function path2array(path){var out=[];for(var i=0,ii=path.length;i<ii;i++){for(var j=1,jj=path[i].length;j<jj;j++){out.push(path[i][j]);}}
return out;}
function isNumeric(obj){return isFinite(obj);}
function arrayEqual(arr1,arr2){if(!Snap.is(arr1,"array")||!Snap.is(arr2,"array")){return false;}
return arr1.toString()==arr2.toString();}
Element.prototype.equal=function(name,b){return eve("snap.util.equal",this,name,b).firstDefined();};eve.on("snap.util.equal",function(name,b){var A,B,a=Str(this.attr(name)||""),el=this;if(names[name]=="colour"){A=Snap.color(a);B=Snap.color(b);return{from:[A.r,A.g,A.b,A.opacity],to:[B.r,B.g,B.b,B.opacity],f:getColour};}
if(name=="viewBox"){A=this.attr(name).vb.split(" ").map(Number);B=b.split(" ").map(Number);return{from:A,to:B,f:getViewBox};}
if(name=="transform"||name=="gradientTransform"||name=="patternTransform"){if(typeof b=="string"){b=Str(b).replace(/\.{3}|\u2026/g,a);}
a=this.matrix;if(!Snap._.rgTransform.test(b)){b=Snap._.transform2matrix(Snap._.svgTransform2string(b),this.getBBox());}else{b=Snap._.transform2matrix(b,this.getBBox());}
return equaliseTransform(a,b,function(){return el.getBBox(1);});}
if(name=="d"||name=="path"){A=Snap.path.toCubic(a,b);return{from:path2array(A[0]),to:path2array(A[1]),f:getPath(A[0])};}
if(name=="points"){A=Str(a).split(Snap._.separator);B=Str(b).split(Snap._.separator);return{from:A,to:B,f:function(val){return val;}};}
if(isNumeric(a)&&isNumeric(b)){return{from:parseFloat(a),to:parseFloat(b),f:getNumber};}
var aUnit=a.match(reUnit),bUnit=Str(b).match(reUnit);if(aUnit&&arrayEqual(aUnit,bUnit)){return{from:parseFloat(a),to:parseFloat(b),f:getUnit(aUnit)};}else{return{from:this.asPX(name),to:this.asPX(name,b),f:getNumber};}});});Snap.plugin(function(Snap,Element,Paper,glob){var elproto=Element.prototype,has="hasOwnProperty",supportsTouch="createTouch" in glob.doc,events=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","touchstart","touchmove","touchend","touchcancel"],touchMap={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},getScroll=function(xy,el){var name=xy=="y"?"scrollTop":"scrollLeft",doc=el&&el.node?el.node.ownerDocument:glob.doc;return doc[name in doc.documentElement?"documentElement":"body"][name];},preventDefault=function(){this.returnValue=false;},preventTouch=function(){return this.originalEvent.preventDefault();},stopPropagation=function(){this.cancelBubble=true;},stopTouch=function(){return this.originalEvent.stopPropagation();},addEvent=function(obj,type,fn,element){var realName=supportsTouch&&touchMap[type]?touchMap[type]:type,f=function(e){var scrollY=getScroll("y",element),scrollX=getScroll("x",element);if(supportsTouch&&touchMap[has](type)){for(var i=0,ii=e.targetTouches&&e.targetTouches.length;i<ii;i++){if(e.targetTouches[i].target==obj||obj.contains(e.targetTouches[i].target)){var olde=e;e=e.targetTouches[i];e.originalEvent=olde;e.preventDefault=preventTouch;e.stopPropagation=stopTouch;break;}}}
var x=e.clientX+scrollX,y=e.clientY+scrollY;return fn.call(element,e,x,y);};if(type!==realName){obj.addEventListener(type,f,false);}
obj.addEventListener(realName,f,false);return function(){if(type!==realName){obj.removeEventListener(type,f,false);}
obj.removeEventListener(realName,f,false);return true;};},drag=[],dragMove=function(e){var x=e.clientX,y=e.clientY,scrollY=getScroll("y"),scrollX=getScroll("x"),dragi,j=drag.length;while(j--){dragi=drag[j];if(supportsTouch){var i=e.touches&&e.touches.length,touch;while(i--){touch=e.touches[i];if(touch.identifier==dragi.el._drag.id||dragi.el.node.contains(touch.target)){x=touch.clientX;y=touch.clientY;(e.originalEvent?e.originalEvent:e).preventDefault();break;}}}else{e.preventDefault();}
var node=dragi.el.node,o,next=node.nextSibling,parent=node.parentNode,display=node.style.display;x+=scrollX;y+=scrollY;eve("snap.drag.move."+dragi.el.id,dragi.move_scope||dragi.el,x-dragi.el._drag.x,y-dragi.el._drag.y,x,y,e);}},dragUp=function(e){Snap.unmousemove(dragMove).unmouseup(dragUp);var i=drag.length,dragi;while(i--){dragi=drag[i];dragi.el._drag={};eve("snap.drag.end."+dragi.el.id,dragi.end_scope||dragi.start_scope||dragi.move_scope||dragi.el,e);eve.off("snap.drag.*."+dragi.el.id);}
drag=[];};for(var i=events.length;i--;){(function(eventName){Snap[eventName]=elproto[eventName]=function(fn,scope){if(Snap.is(fn,"function")){this.events=this.events||[];this.events.push({name:eventName,f:fn,unbind:addEvent(this.node||document,eventName,fn,scope||this)});}else{for(var i=0,ii=this.events.length;i<ii;i++)if(this.events[i].name==eventName){try{this.events[i].f.call(this);}catch(e){}}}
return this;};Snap["un"+eventName]=elproto["un"+eventName]=function(fn){var events=this.events||[],l=events.length;while(l--)if(events[l].name==eventName&&(events[l].f==fn||!fn)){events[l].unbind();events.splice(l,1);!events.length&&delete this.events;return this;}
return this;};})(events[i]);}
elproto.hover=function(f_in,f_out,scope_in,scope_out){return this.mouseover(f_in,scope_in).mouseout(f_out,scope_out||scope_in);};elproto.unhover=function(f_in,f_out){return this.unmouseover(f_in).unmouseout(f_out);};var draggable=[];elproto.drag=function(onmove,onstart,onend,move_scope,start_scope,end_scope){var el=this;if(!arguments.length){var origTransform;return el.drag(function(dx,dy){this.attr({transform:origTransform+(origTransform?"T":"t")+[dx,dy]});},function(){origTransform=this.transform().local;});}
function start(e,x,y){(e.originalEvent||e).preventDefault();el._drag.x=x;el._drag.y=y;el._drag.id=e.identifier;!drag.length&&Snap.mousemove(dragMove).mouseup(dragUp);drag.push({el:el,move_scope:move_scope,start_scope:start_scope,end_scope:end_scope});onstart&&eve.on("snap.drag.start."+el.id,onstart);onmove&&eve.on("snap.drag.move."+el.id,onmove);onend&&eve.on("snap.drag.end."+el.id,onend);eve("snap.drag.start."+el.id,start_scope||move_scope||el,x,y,e);}
function init(e,x,y){eve("snap.draginit."+el.id,el,e,x,y);}
eve.on("snap.draginit."+el.id,start);el._drag={};draggable.push({el:el,start:start,init:init});el.mousedown(init);return el;};elproto.undrag=function(){var i=draggable.length;while(i--)if(draggable[i].el==this){this.unmousedown(draggable[i].init);draggable.splice(i,1);eve.unbind("snap.drag.*."+this.id);eve.unbind("snap.draginit."+this.id);}
!draggable.length&&Snap.unmousemove(dragMove).unmouseup(dragUp);return this;};});Snap.plugin(function(Snap,Element,Paper,glob){var elproto=Element.prototype,pproto=Paper.prototype,rgurl=/^\s*url\((.+)\)/,Str=String,$=Snap._.$;Snap.filter={};pproto.filter=function(filstr){var paper=this;if(paper.type!="svg"){paper=paper.paper;}
var f=Snap.parse(Str(filstr)),id=Snap._.id(),width=paper.node.offsetWidth,height=paper.node.offsetHeight,filter=$("filter");$(filter,{id:id,filterUnits:"userSpaceOnUse"});filter.appendChild(f.node);paper.defs.appendChild(filter);return new Element(filter);};eve.on("snap.util.getattr.filter",function(){eve.stop();var p=$(this.node,"filter");if(p){var match=Str(p).match(rgurl);return match&&Snap.select(match[1]);}});eve.on("snap.util.attr.filter",function(value){if(value instanceof Element&&value.type=="filter"){eve.stop();var id=value.node.id;if(!id){$(value.node,{id:value.id});id=value.id;}
$(this.node,{filter:Snap.url(id)});}
if(!value||value=="none"){eve.stop();this.node.removeAttribute("filter");}});Snap.filter.blur=function(x,y){if(x==null){x=2;}
var def=y==null?x:[x,y];return Snap.format('\<feGaussianBlur stdDeviation="{def}"/>',{def:def});};Snap.filter.blur.toString=function(){return this();};Snap.filter.shadow=function(dx,dy,blur,color,opacity){if(opacity==null){if(color==null){opacity=blur;blur=4;color="#000";}else{opacity=color;color=blur;blur=4;}}
if(blur==null){blur=4;}
if(opacity==null){opacity=1;}
if(dx==null){dx=0;dy=2;}
if(dy==null){dy=dx;}
color=Snap.color(color);return Snap.format('<feGaussianBlur in="SourceAlpha" stdDeviation="{blur}"/><feOffset dx="{dx}" dy="{dy}" result="offsetblur"/><feFlood flood-color="{color}"/><feComposite in2="offsetblur" operator="in"/><feComponentTransfer><feFuncA type="linear" slope="{opacity}"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>',{color:color,dx:dx,dy:dy,blur:blur,opacity:opacity});};Snap.filter.shadow.toString=function(){return this();};Snap.filter.grayscale=function(amount){if(amount==null){amount=1;}
return Snap.format('<feColorMatrix type="matrix" values="{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0"/>',{a:0.2126+0.7874*(1-amount),b:0.7152-0.7152*(1-amount),c:0.0722-0.0722*(1-amount),d:0.2126-0.2126*(1-amount),e:0.7152+0.2848*(1-amount),f:0.0722-0.0722*(1-amount),g:0.2126-0.2126*(1-amount),h:0.0722+0.9278*(1-amount)});};Snap.filter.grayscale.toString=function(){return this();};Snap.filter.sepia=function(amount){if(amount==null){amount=1;}
return Snap.format('<feColorMatrix type="matrix" values="{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0"/>',{a:0.393+0.607*(1-amount),b:0.769-0.769*(1-amount),c:0.189-0.189*(1-amount),d:0.349-0.349*(1-amount),e:0.686+0.314*(1-amount),f:0.168-0.168*(1-amount),g:0.272-0.272*(1-amount),h:0.534-0.534*(1-amount),i:0.131+0.869*(1-amount)});};Snap.filter.sepia.toString=function(){return this();};Snap.filter.saturate=function(amount){if(amount==null){amount=1;}
return Snap.format('<feColorMatrix type="saturate" values="{amount}"/>',{amount:1-amount});};Snap.filter.saturate.toString=function(){return this();};Snap.filter.hueRotate=function(angle){angle=angle||0;return Snap.format('<feColorMatrix type="hueRotate" values="{angle}"/>',{angle:angle});};Snap.filter.hueRotate.toString=function(){return this();};Snap.filter.invert=function(amount){if(amount==null){amount=1;}
return Snap.format('<feComponentTransfer><feFuncR type="table" tableValues="{amount} {amount2}"/><feFuncG type="table" tableValues="{amount} {amount2}"/><feFuncB type="table" tableValues="{amount} {amount2}"/></feComponentTransfer>',{amount:amount,amount2:1-amount});};Snap.filter.invert.toString=function(){return this();};Snap.filter.brightness=function(amount){if(amount==null){amount=1;}
return Snap.format('<feComponentTransfer><feFuncR type="linear" slope="{amount}"/><feFuncG type="linear" slope="{amount}"/><feFuncB type="linear" slope="{amount}"/></feComponentTransfer>',{amount:amount});};Snap.filter.brightness.toString=function(){return this();};Snap.filter.contrast=function(amount){if(amount==null){amount=1;}
return Snap.format('<feComponentTransfer><feFuncR type="linear" slope="{amount}" intercept="{amount2}"/><feFuncG type="linear" slope="{amount}" intercept="{amount2}"/><feFuncB type="linear" slope="{amount}" intercept="{amount2}"/></feComponentTransfer>',{amount:amount,amount2:.5-amount/2});};Snap.filter.contrast.toString=function(){return this();};});Snap.plugin(function(Snap,Element,Paper,glob,Fragment){var box=Snap._.box,is=Snap.is,firstLetter=/^[^a-z]*([tbmlrc])/i,toString=function(){return"T"+this.dx+","+this.dy;};Element.prototype.getAlign=function(el,way){if(way==null&&is(el,"string")){way=el;el=null;}
el=el||this.paper;var bx=el.getBBox?el.getBBox():box(el),bb=this.getBBox(),out={};way=way&&way.match(firstLetter);way=way?way[1].toLowerCase():"c";switch(way){case"t":out.dx=0;out.dy=bx.y-bb.y;break;case"b":out.dx=0;out.dy=bx.y2-bb.y2;break;case"m":out.dx=0;out.dy=bx.cy-bb.cy;break;case"l":out.dx=bx.x-bb.x;out.dy=0;break;case"r":out.dx=bx.x2-bb.x2;out.dy=0;break;default:out.dx=bx.cx-bb.cx;out.dy=0;break;}
out.toString=toString;return out;};Element.prototype.align=function(el,way){return this.transform("..."+this.getAlign(el,way));};});Snap.plugin(function(Snap,Element,Paper,glob){var red="#ffebee#ffcdd2#ef9a9a#e57373#ef5350#f44336#e53935#d32f2f#c62828#b71c1c#ff8a80#ff5252#ff1744#d50000",pink="#FCE4EC#F8BBD0#F48FB1#F06292#EC407A#E91E63#D81B60#C2185B#AD1457#880E4F#FF80AB#FF4081#F50057#C51162",purple="#F3E5F5#E1BEE7#CE93D8#BA68C8#AB47BC#9C27B0#8E24AA#7B1FA2#6A1B9A#4A148C#EA80FC#E040FB#D500F9#AA00FF",deeppurple="#EDE7F6#D1C4E9#B39DDB#9575CD#7E57C2#673AB7#5E35B1#512DA8#4527A0#311B92#B388FF#7C4DFF#651FFF#6200EA",indigo="#E8EAF6#C5CAE9#9FA8DA#7986CB#5C6BC0#3F51B5#3949AB#303F9F#283593#1A237E#8C9EFF#536DFE#3D5AFE#304FFE",blue="#E3F2FD#BBDEFB#90CAF9#64B5F6#64B5F6#2196F3#1E88E5#1976D2#1565C0#0D47A1#82B1FF#448AFF#2979FF#2962FF",lightblue="#E1F5FE#B3E5FC#81D4FA#4FC3F7#29B6F6#03A9F4#039BE5#0288D1#0277BD#01579B#80D8FF#40C4FF#00B0FF#0091EA",cyan="#E0F7FA#B2EBF2#80DEEA#4DD0E1#26C6DA#00BCD4#00ACC1#0097A7#00838F#006064#84FFFF#18FFFF#00E5FF#00B8D4",teal="#E0F2F1#B2DFDB#80CBC4#4DB6AC#26A69A#009688#00897B#00796B#00695C#004D40#A7FFEB#64FFDA#1DE9B6#00BFA5",green="#E8F5E9#C8E6C9#A5D6A7#81C784#66BB6A#4CAF50#43A047#388E3C#2E7D32#1B5E20#B9F6CA#69F0AE#00E676#00C853",lightgreen="#F1F8E9#DCEDC8#C5E1A5#AED581#9CCC65#8BC34A#7CB342#689F38#558B2F#33691E#CCFF90#B2FF59#76FF03#64DD17",lime="#F9FBE7#F0F4C3#E6EE9C#DCE775#D4E157#CDDC39#C0CA33#AFB42B#9E9D24#827717#F4FF81#EEFF41#C6FF00#AEEA00",yellow="#FFFDE7#FFF9C4#FFF59D#FFF176#FFEE58#FFEB3B#FDD835#FBC02D#F9A825#F57F17#FFFF8D#FFFF00#FFEA00#FFD600",amber="#FFF8E1#FFECB3#FFE082#FFD54F#FFCA28#FFC107#FFB300#FFA000#FF8F00#FF6F00#FFE57F#FFD740#FFC400#FFAB00",orange="#FFF3E0#FFE0B2#FFCC80#FFB74D#FFA726#FF9800#FB8C00#F57C00#EF6C00#E65100#FFD180#FFAB40#FF9100#FF6D00",deeporange="#FBE9E7#FFCCBC#FFAB91#FF8A65#FF7043#FF5722#F4511E#E64A19#D84315#BF360C#FF9E80#FF6E40#FF3D00#DD2C00",brown="#EFEBE9#D7CCC8#BCAAA4#A1887F#8D6E63#795548#6D4C41#5D4037#4E342E#3E2723",grey="#FAFAFA#F5F5F5#EEEEEE#E0E0E0#BDBDBD#9E9E9E#757575#616161#424242#212121",bluegrey="#ECEFF1#CFD8DC#B0BEC5#90A4AE#78909C#607D8B#546E7A#455A64#37474F#263238";Snap.mui={};Snap.flat={};function saveColor(colors){colors=colors.split(/(?=#)/);var color=new String(colors[5]);color[50]=colors[0];color[100]=colors[1];color[200]=colors[2];color[300]=colors[3];color[400]=colors[4];color[500]=colors[5];color[600]=colors[6];color[700]=colors[7];color[800]=colors[8];color[900]=colors[9];if(colors[10]){color.A100=colors[10];color.A200=colors[11];color.A400=colors[12];color.A700=colors[13];}
return color;}
Snap.mui.red=saveColor(red);Snap.mui.pink=saveColor(pink);Snap.mui.purple=saveColor(purple);Snap.mui.deeppurple=saveColor(deeppurple);Snap.mui.indigo=saveColor(indigo);Snap.mui.blue=saveColor(blue);Snap.mui.lightblue=saveColor(lightblue);Snap.mui.cyan=saveColor(cyan);Snap.mui.teal=saveColor(teal);Snap.mui.green=saveColor(green);Snap.mui.lightgreen=saveColor(lightgreen);Snap.mui.lime=saveColor(lime);Snap.mui.yellow=saveColor(yellow);Snap.mui.amber=saveColor(amber);Snap.mui.orange=saveColor(orange);Snap.mui.deeporange=saveColor(deeporange);Snap.mui.brown=saveColor(brown);Snap.mui.grey=saveColor(grey);Snap.mui.bluegrey=saveColor(bluegrey);Snap.flat.turquoise="#1abc9c";Snap.flat.greensea="#16a085";Snap.flat.sunflower="#f1c40f";Snap.flat.orange="#f39c12";Snap.flat.emerland="#2ecc71";Snap.flat.nephritis="#27ae60";Snap.flat.carrot="#e67e22";Snap.flat.pumpkin="#d35400";Snap.flat.peterriver="#3498db";Snap.flat.belizehole="#2980b9";Snap.flat.alizarin="#e74c3c";Snap.flat.pomegranate="#c0392b";Snap.flat.amethyst="#9b59b6";Snap.flat.wisteria="#8e44ad";Snap.flat.clouds="#ecf0f1";Snap.flat.silver="#bdc3c7";Snap.flat.wetasphalt="#34495e";Snap.flat.midnightblue="#2c3e50";Snap.flat.concrete="#95a5a6";Snap.flat.asbestos="#7f8c8d";Snap.importMUIColors=function(){for(var color in Snap.mui){if(Snap.mui.hasOwnProperty(color)){window[color]=Snap.mui[color];}}};});return Snap;}));
;;;var SvgPlan=function(elementId){this.id=elementId;this.root=Snap(elementId);this.data=document.createElement('div');this.data.id=elementId.replace("#","")+"data";this.accommodation=null;this.floors=[];this.rooms=null;this.colours={"available":"#00d628","partAvailable":"#f8f672","unavailable":"#aaa"};this.svgPath="";this.onRoomClick=null;this.onRoomHover=null;this.onRoomHoverOut=null;};SvgPlan.prototype.load=function(path,separateFloors){var _this=this;var deferred=new $.Deferred();separateFloors=separateFloors||false;path=typeof path!="undefined"?path:"/img/svg/silver2.svg";if(this.svgPath!=path){if(this.svgPath){$(this.id).empty();}
this.svgPath=path;Snap.load(path,function(svgFile){if(separateFloors){document.body.appendChild(this.data);this.data=this.root=Snap(this.data);this.data.append(svgFile);var floors=this.data.selectAll("[id^='deck']");for(var i=floors.length-1;i>=0;i--){this.floors.push(floors[i]);}
this.rooms=this.data.selectAll("[id^='rooms'] > g");deferred.resolve(this.floors,this.data);}else{this.root.append(svgFile);this.accommodation=this.root.select("svg");this.rooms=this.root.selectAll("[id^='rooms'] > g");this.addClickEvents();deferred.resolve();}},this);}else{deferred.resolve();}
return deferred.promise();};SvgPlan.prototype.addClickEvents=function(){var _this=this;for(var i=0;i<this.rooms.length;i++){$(this.rooms[i].node).on('touchstart click',function(event){var roomId=event.target.parentNode.id;var roomNumber=event.target.parentNode.id.split("room")[1];var el=$("#"+roomId);if(typeof _this.clickRoom=="function"){_this.clickRoom(roomNumber,el);}});}};SvgPlan.prototype.populateAvailability=function(availableRooms,showPartAvailable,roomColourField){roomColourField=roomColourField||'';for(var i=0;i<this.rooms.length;i++){var room=this.rooms[i];var roomId=room.node.id;var roomNumber=roomId.split('room')[1];if(availableRooms&&availableRooms[roomNumber]){if(roomColourField!=''){this.setFillColour('#'+roomId,availableRooms[roomNumber][roomColourField]);continue;}
else{var isFullyAvailable=typeof availableRooms[roomNumber].Available=='undefined'||availableRooms[roomNumber].Available==1;if(isFullyAvailable||showPartAvailable){room.attr({cursor:'pointer',opacity:'',class:isFullyAvailable?'available':'partAvailable'});this.setFillColour('#'+roomId,isFullyAvailable?this.colours.available:this.colours.partAvailable);continue;}}}
room.attr({cursor:'',opacity:0.25,class:''});this.setFillColour('#'+roomId,this.colours.unavailable);}
if($('#svgKey').length==0){$('#leftPanel').append('<table id="svgKey">'
+'<tr><th colspan="2">Legend</th></tr>'
+'<tr><td class="key" style="background-color:'+this.colours.available+';">101</td><td>Available</td></tr>'
+(showPartAvailable?'<tr><td class="key" style="background-color:'+this.colours.partAvailable+';">102</td><td>Partially available</td></tr>':'')
+'<tr><td class="key" style="background-color:'+this.colours.unavailable+';">103</td><td>Not available</td></tr>'
+'</table>');}};SvgPlan.prototype.setFillColour=function(selector,colour){var el=this.root.select(selector+' rect')||this.root.select(selector+' polygon')||this.root.select(selector+' path');if(el){el.attr({fill:colour});}};SvgPlan.prototype.snap=function(){return this.root;};SvgPlan.prototype.clickRoom=function(event){};SvgPlan.prototype.hoverOverRoom=function(event){};SvgPlan.prototype.hoverOutRoom=function(event){};
;;;var overlay={loaded:false,obj:null,html:'<div id="submitOverlay" style="display:none;">'+'<div class="messageBox"><div class="content">{loadingAnimation}</div></div>'+'</div>',message:'Loading...',loadingAnimation:'<div id="lazyLoading">'+'<div class="icon">&#xf021;</div>'+'</div>{message}',create:function(setHTML){var temp={};for(key in this)if(typeof this[key]=='string')temp[key]=this[key].slice(0);if(typeof setHTML=='string')temp.html=setHTML;for(key in temp){if(typeof temp[key]=='string'&&key!='html'){for(replaceString in temp){if(typeof temp[replaceString]=='string'&&replaceString!='html'&&replaceString!=key){temp[key]=temp[key].replace('{'+replaceString+'}',temp[replaceString]);}}}}
for(replaceString in temp){if(typeof this[replaceString]=='string'&&replaceString!='html'){temp.html=temp.html.replace('{'+replaceString+'}',temp[replaceString]);}}
this.obj=$(temp.html).appendTo('body');this.loaded=true;},open:function(setHTML){if(!this.loaded)this.create(setHTML);this.obj.show();},close:function(){if(this.loaded)this.obj.hide();return this;},destroy:function(){if(this.loaded){this.obj.remove();this.loaded=false;this.obj=null;}},revert:function(){if(this.loaded)this.destroy();this.create();return this.obj;},setHTML:function(setHTML){if(this.loaded)this.destroy();this.open(setHTML);return this.obj;}};function ajaxError(err,status,desc){try{showError(desc+':\n'+err.responseJSON.Message);}
catch(e){showError('A server error has occurred');}}
function showError(message,className,datalayerMessage){className=className||'';message=(message||friendlyErrorMessage);var overlayHTML='<div id="serverError"'+(className?' class="'+className+'"':'')+'>'+'<div class="messageBox"><div class="content">'+message+'</div><a class="close" href="#">Close</a></div>'+'</div>';if(datalayerMessage){window.setTimeout(function(){if(typeof gtm!=='undefined'&&gtm.enabled){dataLayer.push({errorMessage:datalayerMessage});}},1000);}
overlay.setHTML(overlayHTML).click(function(){overlay.close().revert();}).find('.close').click(function(e){e.preventDefault();if(e.target&&e.target.classList.contains('close')){overlay.close().revert();}});overlay.obj.find('.telNumber').text(config.telNum);overlay.open();}
;;;var VirtualTour=function(propertyId,startingScene){var _this=this;startingScene=startingScene||"";var panoHolder=$('#panoHolder');if(!panoHolder.length){panoHolder=$('<div id="panoHolder">'+'<div id="pano"></div>'+'<div id="titleBar">'+'<h1 class="sceneName"></h1>'+'</div>'+'<div id="closePano"><span>Exit Virtual Tour</span></div>'+'<div id="viewPortControl">'+'<div class="centreCircle"></div>'+'<a href="#" id="viewUp" class="viewControlButton">'+'<img src="/360Viewer/img/arrow-up.svg">'+'</a>'+'<a href="#" id="viewDown" class="viewControlButton">'+'<img src="/360Viewer/img/arrow-down.svg">'+'</a>'+'<a href="#" id="viewLeft" class="viewControlButton">'+'<img src="/360Viewer/img/arrow-left.svg">'+'</a>'+'<a href="#" id="viewRight" class="viewControlButton">'+'<img src="/360Viewer/img/arrow-right.svg">'+'</a>'+'</div>'+'<div id="closeViewPortControl">'+'<span>Close</span>'+'</div>'+'<div id="deckPlanOverlay">'+'<div class="styledSelect">'+'<select id="virtualTourView"></select>'+'</div>'+'<div class="closeDeckPlan">'+'<span>Close</span>'+'</div>'+'<div class="planHolder">'+'<img class="svgImg" src="/img/svg/'+propertyId+'.svg"/>'+'<div id="virtualTourSVG" data-src="/img/svg/'+propertyId+'.svg"></div>'+'</div>'+'<div class="openDeckPlan">'+'<span>Show Deck Plan</span>'+'</div>'+'</div>'+'</div>');$('body').append(panoHolder);this.getDependencies().then(function(){return $.getJSON('/360Viewer/'+propertyId+'/data.json');}).then(function(jsonData){_this.init(propertyId,jsonData,startingScene);}).fail(function(error){_this.closePano();console.log("error loading: "+'/360Viewer/'+propertyId+'/data.json',error);});}};VirtualTour.prototype.dependencies=['/360Viewer/js/screenfull.min.js','/360Viewer/js/bowser.min.js','/360Viewer/js/marzipano.js'];VirtualTour.prototype.getDependencies=function(deferred){var _this=this;var deferred=deferred||new $.Deferred();if(this.dependencies.length){$.getScript(this.dependencies.shift(),function(){_this.getDependencies(deferred);});}else{deferred.resolve();}
return deferred;};VirtualTour.prototype.closePano=function(viewer){if(typeof fixBody=="function"){fixBody(false);}
if(typeof viewer!="undefined"){viewer.destroyAllScenes();}
$('#panoHolder').remove();$('body').off('keyup');};VirtualTour.prototype.init=function(propertyId,data,startingScene){var _this=this;var Marzipano=window.Marzipano;var bowser=window.bowser;var screenfull=window.screenfull;var panoElement=document.querySelector('#pano');var sceneNameElement=document.querySelector('#titleBar .sceneName');var virtualTourView=$('#virtualTourView');var deckPlanOverlay=$('#deckPlanOverlay');var planHolder=deckPlanOverlay.find('.planHolder');var svgUrl=$('#virtualTourSVG').data("src");var svg=new SvgPlan('#virtualTourSVG');svg.load(svgUrl,false).then(function(){});if(window.matchMedia){var setMode=function(){if(mql.matches){document.body.classList.remove('desktop');document.body.classList.add('mobile');}else{document.body.classList.remove('mobile');document.body.classList.add('desktop');}};var mql=matchMedia("(max-width: 500px), (max-height: 500px)");setMode();mql.addListener(setMode);}else{document.body.classList.add('desktop');}
document.body.classList.add('no-touch');window.addEventListener('touchstart',function(){document.body.classList.remove('no-touch');document.body.classList.add('touch');});if(bowser.msie&&parseFloat(bowser.version)<11){document.body.classList.add('tooltip-fallback');}
var viewerOpts={controls:{mouseViewMode:data.settings.mouseViewMode}};var viewer=new Marzipano.Viewer(panoElement,viewerOpts);$('#closePano').on('click',function(e){e.preventDefault();_this.closePano(viewer);});$('body').on('keyup',function(event){if(event.keyCode==27){_this.closePano(viewer);}});var scenes=data.scenes.map(function(data){var urlPrefix='/360Viewer/'+propertyId;var source=Marzipano.ImageUrlSource.fromString(urlPrefix+"/"+data.id+"/{z}/{f}/{y}/{x}.jpg",{cubeMapPreviewUrl:urlPrefix+"/"+data.id+"/preview.jpg"});var geometry=new Marzipano.CubeGeometry(data.levels);var limiter=Marzipano.RectilinearView.limit.traditional(data.faceSize,100*Math.PI/180,120*Math.PI/180);var view=new Marzipano.RectilinearView(data.initialViewParameters,limiter);var scene=viewer.createScene({source:source,geometry:geometry,view:view,pinFirstLevel:true});data.linkHotspots.forEach(function(hotspot){var element=createLinkHotspotElement(hotspot);scene.hotspotContainer().createHotspot(element,{yaw:hotspot.yaw,pitch:hotspot.pitch});});data.infoHotspots.forEach(function(hotspot){var element=_this.createInfoHotspotElement(hotspot);scene.hotspotContainer().createHotspot(element,{yaw:hotspot.yaw,pitch:hotspot.pitch});});return{data:data,scene:scene,view:view};});scenes.forEach(function(scene,index){var x=typeof data.mapPointers[scene.data.id]!="undefined"?data.mapPointers[scene.data.id].x||0:0;var y=typeof data.mapPointers[scene.data.id]!="undefined"?data.mapPointers[scene.data.id].y||0:0;if(virtualTourView.length){virtualTourView.append('<option value="'+index+'">'+scene.data.name+'</option>');}
if(x&&y&&planHolder.length){var mapPointer=$('<div class="planPointer" style="left:'+x+'%;top:'+y+'%;" data-id="'+scene.data.id+'"></div>').appendTo(planHolder);mapPointer.on('click',function(){switchScene(scene,index);});}});if(virtualTourView.length){virtualTourView.on('change',function(){switchScene(scenes[$(this).find('option:selected').val()]);});}
var viewUpElement=document.querySelector('#viewUp');var viewDownElement=document.querySelector('#viewDown');var viewLeftElement=document.querySelector('#viewLeft');var viewRightElement=document.querySelector('#viewRight');var viewInElement=document.querySelector('#viewIn');var viewOutElement=document.querySelector('#viewOut');$(viewUpElement).on("contextmenu",function(){return false;});$(viewDownElement).on("contextmenu",function(){return false;});$(viewLeftElement).on("contextmenu",function(){return false;});$(viewRightElement).on("contextmenu",function(){return false;});$(viewInElement).on("contextmenu",function(){return false;});$(viewOutElement).on("contextmenu",function(){return false;});var closeDeckPlan=deckPlanOverlay.find('.closeDeckPlan');var deckPlanOverlayButton=deckPlanOverlay.find('.openDeckPlan');if(deckPlanOverlayButton.length){deckPlanOverlayButton.on('click',function(e){e.preventDefault();deckPlanOverlay.toggleClass('on');});}
if(closeDeckPlan.length){closeDeckPlan.on('click',function(e){e.preventDefault();deckPlanOverlay.addClass('on');});}
var closeViewPortControl=$('#closeViewPortControl');var viewPortControl=$('#viewPortControl');if(closeViewPortControl.length&&viewPortControl.length){closeViewPortControl.on('click',function(e){e.preventDefault();closeViewPortControl.toggleClass('on');viewPortControl.toggleClass('on');});}
var velocity=0.3;var friction=1;var controls=viewer.controls();controls.registerMethod('upElement',new Marzipano.ElementPressControlMethod(viewUpElement,'y',-velocity,friction),true);controls.registerMethod('downElement',new Marzipano.ElementPressControlMethod(viewDownElement,'y',velocity,friction),true);controls.registerMethod('leftElement',new Marzipano.ElementPressControlMethod(viewLeftElement,'x',-velocity,friction),true);controls.registerMethod('rightElement',new Marzipano.ElementPressControlMethod(viewRightElement,'x',velocity,friction),true);function sanitize(s){return s.replace('&','&amp;').replace('<','&lt;').replace('>','&gt;');}
function switchScene(scene,index){scene.view.setParameters(scene.data.initialViewParameters);scene.scene.switchTo();updateSceneName(scene);planHolder.find('.planPointer').removeClass('on');planHolder.find('[data-id="'+scene.data.id+'"]').addClass('on');if(typeof index!="undefined"){virtualTourView.find('option[value='+index+']').prop('selected',true);}}
function updateSceneName(scene){sceneNameElement.innerHTML=sanitize(scene.data.name);}
function toggleFullscreen(){screenfull.toggle();if(screenfull.isFullscreen){fullscreenToggleElement.classList.add('enabled');}else{fullscreenToggleElement.classList.remove('enabled');}}
function createLinkHotspotElement(hotspot){var wrapper=document.createElement('div');wrapper.classList.add('hotspot');wrapper.classList.add('link-hotspot');var icon=document.createElement('img');icon.src='/360Viewer/img/link-icon.svg';icon.classList.add('link-hotspot-icon');var transformProperties=['-ms-transform','-webkit-transform','transform'];for(var i=0;i<transformProperties.length;i++){var property=transformProperties[i];icon.style[property]='rotate('+hotspot.rotation+'rad)';}
wrapper.addEventListener('click',function(){var sceneId=findSceneById(hotspot.target);switchScene(sceneId[0],sceneId[1]);});stopTouchAndScrollEventPropagation(wrapper);var tooltip=document.createElement('div');tooltip.classList.add('hotspot-tooltip');tooltip.classList.add('link-hotspot-tooltip');tooltip.innerHTML=findSceneDataById(hotspot.target).name;wrapper.appendChild(icon);wrapper.appendChild(tooltip);return wrapper;}
function stopTouchAndScrollEventPropagation(element,eventList){var eventList=['touchstart','touchmove','touchend','touchcancel','wheel','mousewheel'];for(var i=0;i<eventList.length;i++){element.addEventListener(eventList[i],function(event){event.stopPropagation();});}}
function findSceneById(id){for(var i=0;i<scenes.length;i++){if(scenes[i].data.id===id){return[scenes[i],i];}}
return null;}
function findSceneDataById(id){for(var i=0;i<data.scenes.length;i++){if(data.scenes[i].id===id){return data.scenes[i];}}
return null;}
if(startingScene){for(var i=0;i<scenes.length;i++){var scene=scenes[i];if(scene.data.id==startingScene||scene.data.name.toLowerCase()==startingScene.toLowerCase()){startingScene=i;break;}}
if(typeof scene=="string"){startingScene=0;}}else{startingScene=0;}
switchScene(scenes[startingScene],startingScene);};VirtualTour.prototype.createInfoHotspotElement=function(hotspot){var wrapper=document.createElement('div');wrapper.classList.add('hotspot');wrapper.classList.add('info-hotspot');var header=document.createElement('div');header.classList.add('info-hotspot-header');var iconWrapper=document.createElement('div');iconWrapper.classList.add('info-hotspot-icon-wrapper');var icon=document.createElement('img');icon.src='img/info.png';icon.classList.add('info-hotspot-icon');iconWrapper.appendChild(icon);var titleWrapper=document.createElement('div');titleWrapper.classList.add('info-hotspot-title-wrapper');var title=document.createElement('div');title.classList.add('info-hotspot-title');title.innerHTML=hotspot.title;titleWrapper.appendChild(title);var closeWrapper=document.createElement('div');closeWrapper.classList.add('info-hotspot-close-wrapper');var closeIcon=document.createElement('img');closeIcon.src='img/close.png';closeIcon.classList.add('info-hotspot-close-icon');closeWrapper.appendChild(closeIcon);header.appendChild(iconWrapper);header.appendChild(titleWrapper);header.appendChild(closeWrapper);var text=document.createElement('div');text.classList.add('info-hotspot-text');text.innerHTML=hotspot.text;wrapper.appendChild(header);wrapper.appendChild(text);var modal=document.createElement('div');modal.innerHTML=wrapper.innerHTML;modal.classList.add('info-hotspot-modal');document.body.appendChild(modal);var toggle=function(){wrapper.classList.toggle('visible');modal.classList.toggle('visible');};wrapper.querySelector('.info-hotspot-header').addEventListener('click',toggle);modal.querySelector('.info-hotspot-close-wrapper').addEventListener('click',toggle);stopTouchAndScrollEventPropagation(wrapper);return wrapper;};
;;;var offerCountdownTimer=function(endDate,$el,displayDays){var _this=this;var diff=0;var timeLeft={};displayDays=parseInt(displayDays)||0;var displayDate=displayDays?this.subtractDays(endDate,displayDays):null;var previous={days:-1,hours:-1,minutes:-1,seconds:-1};var finished=false;this.destroy=function(){clearInterval(_this.tick);$el.removeData('timer');};var endCountdown=function(){finished=true;clearInterval(_this.tick);};var update=function(){if($el.length&&jQuery.contains(document.documentElement,$el[0])&&(displayDate===null||displayDate.getTime()<_this.currentMilliseconds())&&(timeLeft.days||timeLeft.hours||timeLeft.minutes)&&(previous.minutes!=timeLeft.minutes||previous.hours!=timeLeft.hours||previous.days!=timeLeft.days)){previous.seconds=timeLeft.seconds;previous.minutes=timeLeft.minutes;previous.hours=timeLeft.hours;previous.days=timeLeft.days;var html='Ends in <span>'+timeLeft.days+'d, </span>'+'<span>'+timeLeft.hours+'h, </span>'+'<span>'+timeLeft.minutes+'m</span>';$el[0].innerHTML=html;return true;}else{if(!timeLeft.days&&!timeLeft.hours&&!timeLeft.minutes){_this.destroy();$el.closest('.offer, .specialOffer').remove();return false;}}};var calcTimes=function(){if(typeof endDate=="object"&&endDate instanceof Date){diff=Math.floor((endDate.getTime()-_this.currentMilliseconds())/1000);}
if(diff<=0){timeLeft.days=timeLeft.hours=timeLeft.minutes=timeLeft.seconds=diff=0;endCountdown();}else{timeLeft.days=parseInt(diff/86400)||0;diff%=86400;timeLeft.hours=parseInt(diff/3600)||0;diff%=3600;timeLeft.minutes=parseInt(diff/60)||0;diff%=60;timeLeft.seconds=parseInt(diff);}};calcTimes();if(update()){$el.closest('.offer, .specialOffer').addClass('on');}
this.tick=setInterval(function(){calcTimes();update();},5000);};offerCountdownTimer.prototype.currentMilliseconds=function(){return new Date().getTime();};offerCountdownTimer.prototype.subtractDays=function(date,days){var result=new Date(date.getTime());result.setUTCDate(result.getDate()-days);return result;}
;;;function printSection(anchor,contentSelector,iFrameID){contentSelector=contentSelector||'.printContent';iFrameID=$.trim(iFrameID)||"printWindow";var printContent=$(anchor).parent().find(contentSelector)[0];if($('#'+iFrameID).length){$('#'+iFrameID).remove();}
var iFrame=$('<iframe id="'+iFrameID+'" style="width:0px;height:0px;"></iframe>');$('body').append(iFrame);var iFrameWin=iFrame[0].contentWindow;var iFrameDoc=iFrameWin.document||iFrame[0].contentDocument;iFrameDoc.write(printContent.innerHTML);$(document.getElementById(iFrameID).contentWindow.document).ready(function(){var stylesheet=$('<link id="defaultCSS" rel="stylesheet" type="text/css" href="'+$('#maincss').attr('href')+'">');var iFrame=$('#'+iFrameID);var iFrameHead=iFrame.contents().find("head");var embeddedStylesheet=stylesheet.appendTo(iFrameHead);embeddedStylesheet.on('load',function(){iFrameDoc.close();try{iFrame[0].contentWindow.document.execCommand('print',false,null);}catch(e){iFrame[0].contentWindow.print();}});});}
;;;(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else if(typeof exports==='object'){module.exports=factory;}else{factory(jQuery);}}(function($){var toFix=['wheel','mousewheel','DOMMouseScroll','MozMousePixelScroll'],toBind=('onwheel' in document||document.documentMode>=9)?['wheel']:['mousewheel','DomMouseScroll','MozMousePixelScroll'],slice=Array.prototype.slice,nullLowestDeltaTimeout,lowestDelta;if($.event.fixHooks){for(var i=toFix.length;i;){$.event.fixHooks[toFix[--i]]=$.event.mouseHooks;}}
var special=$.event.special.mousewheel={version:'3.1.12',setup:function(){if(this.addEventListener){for(var i=toBind.length;i;){this.addEventListener(toBind[--i],handler,false);}}else{this.onmousewheel=handler;}
$.data(this,'mousewheel-line-height',special.getLineHeight(this));$.data(this,'mousewheel-page-height',special.getPageHeight(this));},teardown:function(){if(this.removeEventListener){for(var i=toBind.length;i;){this.removeEventListener(toBind[--i],handler,false);}}else{this.onmousewheel=null;}
$.removeData(this,'mousewheel-line-height');$.removeData(this,'mousewheel-page-height');},getLineHeight:function(elem){var $elem=$(elem),$parent=$elem['offsetParent' in $.fn?'offsetParent':'parent']();if(!$parent.length){$parent=$('body');}
return parseInt($parent.css('fontSize'),10)||parseInt($elem.css('fontSize'),10)||16;},getPageHeight:function(elem){return $(elem).height();},settings:{adjustOldDeltas:true,normalizeOffset:true}};$.fn.extend({mousewheel:function(fn){return fn?this.bind('mousewheel',fn):this.trigger('mousewheel');},unmousewheel:function(fn){return this.unbind('mousewheel',fn);}});function handler(event){var orgEvent=event||window.event,args=slice.call(arguments,1),delta=0,deltaX=0,deltaY=0,absDelta=0,offsetX=0,offsetY=0;event=$.event.fix(orgEvent);event.type='mousewheel';if('detail' in orgEvent){deltaY=orgEvent.detail* -1;}
if('wheelDelta' in orgEvent){deltaY=orgEvent.wheelDelta;}
if('wheelDeltaY' in orgEvent){deltaY=orgEvent.wheelDeltaY;}
if('wheelDeltaX' in orgEvent){deltaX=orgEvent.wheelDeltaX* -1;}
if('axis' in orgEvent&&orgEvent.axis===orgEvent.HORIZONTAL_AXIS){deltaX=deltaY* -1;deltaY=0;}
delta=deltaY===0?deltaX:deltaY;if('deltaY' in orgEvent){deltaY=orgEvent.deltaY* -1;delta=deltaY;}
if('deltaX' in orgEvent){deltaX=orgEvent.deltaX;if(deltaY===0){delta=deltaX* -1;}}
if(deltaY===0&&deltaX===0){return;}
if(orgEvent.deltaMode===1){var lineHeight=$.data(this,'mousewheel-line-height');delta*=lineHeight;deltaY*=lineHeight;deltaX*=lineHeight;}else if(orgEvent.deltaMode===2){var pageHeight=$.data(this,'mousewheel-page-height');delta*=pageHeight;deltaY*=pageHeight;deltaX*=pageHeight;}
absDelta=Math.max(Math.abs(deltaY),Math.abs(deltaX));if(!lowestDelta||absDelta<lowestDelta){lowestDelta=absDelta;if(shouldAdjustOldDeltas(orgEvent,absDelta)){lowestDelta/=40;}}
if(shouldAdjustOldDeltas(orgEvent,absDelta)){delta/=40;deltaX/=40;deltaY/=40;}
delta=Math[delta>=1?'floor':'ceil'](delta/lowestDelta);deltaX=Math[deltaX>=1?'floor':'ceil'](deltaX/lowestDelta);deltaY=Math[deltaY>=1?'floor':'ceil'](deltaY/lowestDelta);if(special.settings.normalizeOffset&&this.getBoundingClientRect){var boundingRect=this.getBoundingClientRect();offsetX=event.clientX-boundingRect.left;offsetY=event.clientY-boundingRect.top;}
event.deltaX=deltaX;event.deltaY=deltaY;event.deltaFactor=lowestDelta;event.offsetX=offsetX;event.offsetY=offsetY;event.deltaMode=0;args.unshift(event,delta,deltaX,deltaY);if(nullLowestDeltaTimeout){clearTimeout(nullLowestDeltaTimeout);}
nullLowestDeltaTimeout=setTimeout(nullLowestDelta,200);return($.event.dispatch||$.event.handle).apply(this,args);}
function nullLowestDelta(){lowestDelta=null;}
function shouldAdjustOldDeltas(orgEvent,absDelta){return special.settings.adjustOldDeltas&&orgEvent.type==='mousewheel'&&absDelta%120===0;}}));
;;;(function(global,factory){if(typeof define==='function'&&define.amd){define(['jquery'],function(jQuery){return factory(global,jQuery);});}else if(typeof exports==='object'){factory(global,require('jquery'));}else{factory(global,global.jQuery);}}(typeof window!=='undefined'?window:this,function(window,$){'use strict';var document=window.document;var datakey='__pz__';var slice=Array.prototype.slice;var rIE11=/trident\/7./i;var supportsInputEvent=(function(){if(rIE11.test(navigator.userAgent)){return false;}
var input=document.createElement('input');input.setAttribute('oninput','return');return typeof input.oninput==='function';})();var rupper=/([A-Z])/g;var rsvg=/^http:[\w\.\/]+svg$/;var floating='(\\-?\\d[\\d\\.e-]*)';var commaSpace='\\,?\\s*';var rmatrix=new RegExp('^matrix\\('+
floating+commaSpace+
floating+commaSpace+
floating+commaSpace+
floating+commaSpace+
floating+commaSpace+
floating+'\\)$');function matrixEquals(first,second){var i=first.length;while(--i){if(Math.round(+first[i])!==Math.round(+second[i])){return false;}}
return true;}
function createResetOptions(opts){var options={range:true,animate:true};if(typeof opts==='boolean'){options.animate=opts;}else{$.extend(options,opts);}
return options;}
function Matrix(a,b,c,d,e,f,g,h,i){if($.type(a)==='array'){this.elements=[+a[0],+a[2],+a[4],+a[1],+a[3],+a[5],0,0,1];}else{this.elements=[a,b,c,d,e,f,g||0,h||0,i||1];}}
Matrix.prototype={x:function(matrix){var isVector=matrix instanceof Vector;var a=this.elements,b=matrix.elements;if(isVector&&b.length===3){return new Vector(a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]);}else if(b.length===a.length){return new Matrix(a[0]*b[0]+a[1]*b[3]+a[2]*b[6],a[0]*b[1]+a[1]*b[4]+a[2]*b[7],a[0]*b[2]+a[1]*b[5]+a[2]*b[8],a[3]*b[0]+a[4]*b[3]+a[5]*b[6],a[3]*b[1]+a[4]*b[4]+a[5]*b[7],a[3]*b[2]+a[4]*b[5]+a[5]*b[8],a[6]*b[0]+a[7]*b[3]+a[8]*b[6],a[6]*b[1]+a[7]*b[4]+a[8]*b[7],a[6]*b[2]+a[7]*b[5]+a[8]*b[8]);}
return false;},inverse:function(){var d=1/this.determinant(),a=this.elements;return new Matrix(d*(a[8]*a[4]-a[7]*a[5]),d*(-(a[8]*a[1]-a[7]*a[2])),d*(a[5]*a[1]-a[4]*a[2]),d*(-(a[8]*a[3]-a[6]*a[5])),d*(a[8]*a[0]-a[6]*a[2]),d*(-(a[5]*a[0]-a[3]*a[2])),d*(a[7]*a[3]-a[6]*a[4]),d*(-(a[7]*a[0]-a[6]*a[1])),d*(a[4]*a[0]-a[3]*a[1]));},determinant:function(){var a=this.elements;return a[0]*(a[8]*a[4]-a[7]*a[5])-a[3]*(a[8]*a[1]-a[7]*a[2])+a[6]*(a[5]*a[1]-a[4]*a[2]);}};function Vector(x,y,z){this.elements=[x,y,z];}
Vector.prototype.e=Matrix.prototype.e=function(i){return this.elements[i];};function Panzoom(elem,options){if(!(this instanceof Panzoom)){return new Panzoom(elem,options);}
if(elem.nodeType!==1){$.error('Panzoom called on non-Element node');}
if(!$.contains(document,elem)){$.error('Panzoom element must be attached to the document');}
var d=$.data(elem,datakey);if(d){return d;}
this.options=options=$.extend({},Panzoom.defaults,options);this.elem=elem;var $elem=this.$elem=$(elem);this.$set=options.$set&&options.$set.length?options.$set:$elem;this.$doc=$(elem.ownerDocument||document);this.$parent=$elem.parent();this.parent=this.$parent[0];this.isSVG=rsvg.test(elem.namespaceURI)&&elem.nodeName.toLowerCase()!=='svg';this.panning=false;this._buildTransform();this._transform=$.cssProps.transform?$.cssProps.transform.replace(rupper,'-$1').toLowerCase():'transform';this._buildTransition();this.resetDimensions();var $empty=$();var self=this;$.each(['$zoomIn','$zoomOut','$zoomRange','$reset'],function(i,name){self[name]=options[name]||$empty;});this.enable();this.scale=this.getMatrix()[0];this._checkPanWhenZoomed();$.data(elem,datakey,this);}
Panzoom.rmatrix=rmatrix;Panzoom.defaults={eventNamespace:'.panzoom',transition:true,cursor:'move',disablePan:false,disableZoom:false,disableXAxis:false,disableYAxis:false,which:1,increment:0.3,linearZoom:false,panOnlyWhenZoomed:false,minScale:0.3,maxScale:6,rangeStep:0.05,duration:200,easing:'ease-in-out',contain:false};Panzoom.prototype={constructor:Panzoom,instance:function(){return this;},enable:function(){this._initStyle();this._bind();this.disabled=false;},disable:function(){this.disabled=true;this._resetStyle();this._unbind();},isDisabled:function(){return this.disabled;},destroy:function(){this.disable();$.removeData(this.elem,datakey);},resetDimensions:function(){this.container=this.parent.getBoundingClientRect();var elem=this.elem;var dims=elem.getBoundingClientRect();var absScale=Math.abs(this.scale);this.dimensions={width:dims.width,height:dims.height,left:$.css(elem,'left',true)||0,top:$.css(elem,'top',true)||0,border:{top:$.css(elem,'borderTopWidth',true)*absScale||0,bottom:$.css(elem,'borderBottomWidth',true)*absScale||0,left:$.css(elem,'borderLeftWidth',true)*absScale||0,right:$.css(elem,'borderRightWidth',true)*absScale||0},margin:{top:$.css(elem,'marginTop',true)*absScale||0,left:$.css(elem,'marginLeft',true)*absScale||0}};},reset:function(options){options=createResetOptions(options);var matrix=this.setMatrix(this._origTransform,options);if(!options.silent){this._trigger('reset',matrix);}},resetZoom:function(options){options=createResetOptions(options);var origMatrix=this.getMatrix(this._origTransform);options.dValue=origMatrix[3];this.zoom(origMatrix[0],options);},resetPan:function(options){var origMatrix=this.getMatrix(this._origTransform);this.pan(origMatrix[4],origMatrix[5],createResetOptions(options));},setTransform:function(transform){var $set=this.$set;var i=$set.length;while(i--){$.style($set[i],'transform',transform);if(this.isSVG){$set[i].setAttribute('transform',transform);}}},getTransform:function(transform){var $set=this.$set;var transformElem=$set[0];if(transform){this.setTransform(transform);}else{transform=$.style(transformElem,'transform');if(this.isSVG&&(!transform||transform==='none')){transform=$.attr(transformElem,'transform')||'none';}}
if(transform!=='none'&&!rmatrix.test(transform)){this.setTransform(transform=$.css(transformElem,'transform'));}
return transform||'none';},getMatrix:function(transform){var matrix=rmatrix.exec(transform||this.getTransform());if(matrix){matrix.shift();}
return matrix||[1,0,0,1,0,0];},getScale:function(matrix){return Math.sqrt(Math.pow(matrix[0],2)+Math.pow(matrix[1],2));},setMatrix:function(matrix,options){if(this.disabled){return;}
if(!options){options={};}
if(typeof matrix==='string'){matrix=this.getMatrix(matrix);}
var scale=this.getScale(matrix);var contain=typeof options.contain!=='undefined'?options.contain:this.options.contain;if(contain){var dims=options.dims;if(!dims){this.resetDimensions();dims=this.dimensions;}
var spaceWLeft,spaceWRight,scaleDiff;var container=this.container;var width=dims.width;var height=dims.height;var conWidth=container.width;var conHeight=container.height;var zoomAspectW=conWidth/width;var zoomAspectH=conHeight/height;if(this.$parent.css('textAlign')!=='center'||$.css(this.elem,'display')!=='inline'){scaleDiff=(width-this.elem.offsetWidth)/2;spaceWLeft=scaleDiff-dims.border.left;spaceWRight=width-conWidth-scaleDiff+dims.border.right;}else{spaceWLeft=spaceWRight=((width-conWidth)/2);}
var spaceHTop=((height-conHeight)/2)+dims.border.top;var spaceHBottom=((height-conHeight)/2)-dims.border.top-dims.border.bottom;if(contain==='invert'||contain==='automatic'&&zoomAspectW<1.01){matrix[4]=Math.max(Math.min(matrix[4],spaceWLeft-dims.border.left),-spaceWRight);}else{matrix[4]=Math.min(Math.max(matrix[4],spaceWLeft),-spaceWRight);}
if(contain==='invert'||(contain==='automatic'&&zoomAspectH<1.01)){matrix[5]=Math.max(Math.min(matrix[5],spaceHTop-dims.border.top),-spaceHBottom);}else{matrix[5]=Math.min(Math.max(matrix[5],spaceHTop),-spaceHBottom);}}
if(options.animate!=='skip'){this.transition(!options.animate);}
if(options.range){this.$zoomRange.val(scale);}
if(this.options.disableXAxis||this.options.disableYAxis){var originalMatrix=this.getMatrix();if(this.options.disableXAxis){matrix[4]=originalMatrix[4];}
if(this.options.disableYAxis){matrix[5]=originalMatrix[5];}}
this.setTransform('matrix('+matrix.join(',')+')');this.scale=scale;this._checkPanWhenZoomed(scale);if(!options.silent){this._trigger('change',matrix);}
return matrix;},isPanning:function(){return this.panning;},transition:function(off){if(!this._transition){return;}
var transition=off||!this.options.transition?'none':this._transition;var $set=this.$set;var i=$set.length;while(i--){if($.style($set[i],'transition')!==transition){$.style($set[i],'transition',transition);}}},pan:function(x,y,options){if(this.options.disablePan){return;}
if(!options){options={};}
var matrix=options.matrix;if(!matrix){matrix=this.getMatrix();}
if(options.relative){x+=+matrix[4];y+=+matrix[5];}
matrix[4]=x;matrix[5]=y;this.setMatrix(matrix,options);if(!options.silent){this._trigger('pan',matrix[4],matrix[5]);}},zoom:function(scale,opts){if(typeof scale==='object'){opts=scale;scale=null;}else if(!opts){opts={};}
var options=$.extend({},this.options,opts);if(options.disableZoom){return;}
var animate=false;var matrix=options.matrix||this.getMatrix();var surfaceM=new Matrix(matrix);var startScale=this.getScale(matrix);if(typeof scale!=='number'){if(options.linearZoom){scale=1+(options.increment*(scale?-1:1))/startScale;}else{scale=scale?(1/(1+options.increment)):(1+options.increment);}
animate=true;}else{scale=1/startScale;}
scale=Math.max(Math.min(scale,options.maxScale/startScale),options.minScale/startScale);var m=surfaceM.x(new Matrix(scale,0,0,0,(typeof options.dValue==='number'?options.dValue/startScale:scale),0));var focal=options.focal;if(focal&&!options.disablePan){this.resetDimensions();var dims=options.dims=this.dimensions;var clientX=focal.clientX;var clientY=focal.clientY;if(!this.isSVG){clientX-=(dims.width/startScale)/2;clientY-=(dims.height/startScale)/2;}
var clientV=new Vector(clientX,clientY,1);var o=this.parentOffset||this.$parent.offset();var offsetM=new Matrix(1,0,o.left-this.$doc.scrollLeft(),0,1,o.top-this.$doc.scrollTop());var surfaceV=surfaceM.inverse().x(offsetM.inverse().x(clientV));surfaceM=surfaceM.x(new Matrix([scale,0,0,scale,0,0]));clientV=offsetM.x(surfaceM.x(surfaceV));matrix[4]=+matrix[4]+(clientX-clientV.e(0));matrix[5]=+matrix[5]+(clientY-clientV.e(1));}
matrix[0]=m.e(0);matrix[1]=m.e(3);matrix[2]=m.e(1);matrix[3]=m.e(4);this.setMatrix(matrix,{animate:typeof options.animate!=='undefined'?options.animate:animate,range:!options.noSetRange});if(!options.silent){this._trigger('zoom',scale,options);}},option:function(key,value){var options;if(!key){return $.extend({},this.options);}
if(typeof key==='string'){if(arguments.length===1){return this.options[key]!==undefined?this.options[key]:null;}
options={};options[key]=value;}else{options=key;}
this._setOptions(options);},_setOptions:function(options){$.each(options,$.proxy(function(key,value){switch(key){case'disablePan':this._resetStyle();case'$zoomIn':case'$zoomOut':case'$zoomRange':case'$reset':case'disableZoom':case'onStart':case'onChange':case'onZoom':case'onPan':case'onEnd':case'onReset':case'eventNamespace':this._unbind();}
this.options[key]=value;switch(key){case'disablePan':this._initStyle();case'$zoomIn':case'$zoomOut':case'$zoomRange':case'$reset':this[key]=value;case'disableZoom':case'onStart':case'onChange':case'onZoom':case'onPan':case'onEnd':case'onReset':case'eventNamespace':this._bind();break;case'cursor':$.style(this.elem,'cursor',value);break;case'minScale':this.$zoomRange.attr('min',value);break;case'maxScale':this.$zoomRange.attr('max',value);break;case'rangeStep':this.$zoomRange.attr('step',value);break;case'startTransform':this._buildTransform();break;case'duration':case'easing':this._buildTransition();case'transition':this.transition();break;case'panOnlyWhenZoomed':this._checkPanWhenZoomed();break;case'$set':if(value instanceof $&&value.length){this.$set=value;this._initStyle();this._buildTransform();}}},this));},_checkPanWhenZoomed:function(scale){var options=this.options;if(options.panOnlyWhenZoomed){if(!scale){scale=this.getMatrix()[0];}
var toDisable=scale<=options.minScale;if(options.disablePan!==toDisable){this.option('disablePan',toDisable);}}},_initStyle:function(){var styles={'transform-origin':this.isSVG?'0 0':'50% 50%'};if(!this.options.disablePan){styles.cursor=this.options.cursor;}
this.$set.css(styles);var $parent=this.$parent;if($parent.length&&!$.nodeName(this.parent,'body')){styles={overflow:'hidden'};if($parent.css('position')==='static'){styles.position='relative';}
$parent.css(styles);}},_resetStyle:function(){this.$elem.css({'cursor':'','transition':''});this.$parent.css({'overflow':'','position':''});},_bind:function(){var self=this;var options=this.options;var ns=options.eventNamespace;var str_down='mousedown'+ns+' pointerdown'+ns+' MSPointerDown'+ns;var str_start='touchstart'+ns+' '+str_down;var str_click='touchend'+ns+' click'+ns+' pointerup'+ns+' MSPointerUp'+ns;var events={};var $reset=this.$reset;var $zoomRange=this.$zoomRange;$.each(['Start','Change','Zoom','Pan','End','Reset'],function(){var m=options['on'+this];if($.isFunction(m)){events['panzoom'+this.toLowerCase()+ns]=m;}});if(!options.disablePan||!options.disableZoom){events[str_start]=function(e){var touches;if(e.type==='touchstart'?(touches=e.touches||e.originalEvent.touches)&&((touches.length===1&&!options.disablePan)||touches.length===2):!options.disablePan&&(e.which||e.originalEvent.which)===options.which){e.preventDefault();e.stopPropagation();self._startMove(e,touches);}};if(options.which===3){events.contextmenu=false;}}
this.$elem.on(events);if($reset.length){$reset.on(str_click,function(e){e.preventDefault();self.reset();if(cabinSelect&&cabinSelect.debug)cabinSelect&&cabinSelect.debug('$zoomReset');});}
if($zoomRange.length){$zoomRange.attr({step:options.rangeStep===Panzoom.defaults.rangeStep&&$zoomRange.attr('step')||options.rangeStep,min:options.minScale,max:options.maxScale}).prop({value:this.getMatrix()[0]});}
if(options.disableZoom){return;}
var $zoomIn=this.$zoomIn;var $zoomOut=this.$zoomOut;if($zoomIn.length&&$zoomOut.length){$zoomIn.on(str_click,function(e){e.preventDefault();self.zoom();if(cabinSelect&&cabinSelect.debug)cabinSelect&&cabinSelect.debug('$zoomIn');});$zoomOut.on(str_click,function(e){e.preventDefault();self.zoom(true);if(cabinSelect&&cabinSelect.debug)cabinSelect&&cabinSelect.debug('$zoomOut');});}
if($zoomRange.length){events={};events[str_down]=function(){self.transition(true);};events[(supportsInputEvent?'input':'change')+ns]=function(){self.zoom(+this.value,{noSetRange:true});};$zoomRange.on(events);}},_unbind:function(){this.$elem.add(this.$zoomIn).add(this.$zoomOut).add(this.$reset).off(this.options.eventNamespace);},_buildTransform:function(){return this._origTransform=this.getTransform(this.options.startTransform);},_buildTransition:function(){if(this._transform){var options=this.options;this._transition=this._transform+' '+options.duration+'ms '+options.easing;}},_getDistance:function(touches){var touch1=touches[0];var touch2=touches[1];return Math.sqrt(Math.pow(Math.abs(touch2.clientX-touch1.clientX),2)+Math.pow(Math.abs(touch2.clientY-touch1.clientY),2));},_getMiddle:function(touches){var touch1=touches[0];var touch2=touches[1];return{clientX:((touch2.clientX-touch1.clientX)/2)+touch1.clientX,clientY:((touch2.clientY-touch1.clientY)/2)+touch1.clientY};},_trigger:function(event){if(typeof event==='string'){event='panzoom'+event;}
this.$elem.triggerHandler(event,[this].concat(slice.call(arguments,1)));},_startMove:function(event,touches){if(this.panning){return;}
var moveEvent,endEvent,startDistance,startScale,startMiddle,startPageX,startPageY,touch;var self=this;var options=this.options;var ns=options.eventNamespace;var matrix=this.getMatrix();var original=matrix.slice(0);var origPageX=+original[4];var origPageY=+original[5];var panOptions={matrix:matrix,animate:'skip'};var type=event.type;if(type==='pointerdown'){moveEvent='pointermove';endEvent='pointerup';}else if(type==='touchstart'){moveEvent='touchmove';endEvent='touchend';}else if(type==='MSPointerDown'){moveEvent='MSPointerMove';endEvent='MSPointerUp';}else{moveEvent='mousemove';endEvent='mouseup';}
moveEvent+=ns;endEvent+=ns;this.transition(true);this.panning=true;this._trigger('start',event,touches);var setStart=function(event,touches){if(touches){if(touches.length===2){if(startDistance!=null){return;}
startDistance=self._getDistance(touches);startScale=self.getScale(matrix);startMiddle=self._getMiddle(touches);return;}
if(startPageX!=null){return;}
if((touch=touches[0])){startPageX=touch.pageX;startPageY=touch.pageY;}}
if(startPageX!=null){return;}
startPageX=event.pageX;startPageY=event.pageY;};setStart(event,touches);var move=function(e){var coords;e.preventDefault();touches=e.touches||e.originalEvent.touches;setStart(e,touches);if(touches){if(touches.length===2){var middle=self._getMiddle(touches);var diff=self._getDistance(touches)-startDistance;self.zoom(diff*(options.increment/100)+startScale,{focal:middle,matrix:matrix,animate:'skip'});self.pan(+matrix[4]+middle.clientX-startMiddle.clientX,+matrix[5]+middle.clientY-startMiddle.clientY,panOptions);startMiddle=middle;return;}
coords=touches[0]||{pageX:0,pageY:0};}
if(!coords){coords=e;}
self.pan(origPageX+coords.pageX-startPageX,origPageY+coords.pageY-startPageY,panOptions);};$(document).off(ns).on(moveEvent,move).on(endEvent,function(e){e.preventDefault();$(this).off(ns);self.panning=false;e.type='panzoomend';self._trigger(e,matrix,!matrixEquals(matrix,original));});}};$.Panzoom=Panzoom;$.fn.panzoom=function(options){var instance,args,m,ret;if(typeof options==='string'){ret=[];args=slice.call(arguments,1);this.each(function(){instance=$.data(this,datakey);if(!instance){ret.push(undefined);}else if(options.charAt(0)!=='_'&&typeof(m=instance[options])==='function'&&(m=m.apply(instance,args))!==undefined){ret.push(m);}});return ret.length?(ret.length===1?ret[0]:ret):this;}
return this.each(function(){new Panzoom(this,options);});};return Panzoom;}));
;;;(function($){"use strict";function jQueryCloneWithSelectAndTextAreaValues(elmToClone,withDataAndEvents,deepWithDataAndEvents){var $elmToClone=$(elmToClone),$result=$elmToClone.clone(withDataAndEvents,deepWithDataAndEvents),$myTextareas=$elmToClone.find('textarea').add($elmToClone.filter('textarea')),$resultTextareas=$result.find('textarea').add($result.filter('textarea')),$mySelects=$elmToClone.find('select').add($elmToClone.filter('select')),$resultSelects=$result.find('select').add($result.filter('select')),$myCanvas=$elmToClone.find('canvas').add($elmToClone.filter('canvas')),$resultCanvas=$result.find('canvas').add($result.filter('canvas')),i,l,j,m,myCanvasContext;for(i=0,l=$myTextareas.length;i<l;++i){$($resultTextareas[i]).val($($myTextareas[i]).val());}
for(i=0,l=$mySelects.length;i<l;++i){for(j=0,m=$mySelects[i].options.length;j<m;++j){if($mySelects[i].options[j].selected===true){$resultSelects[i].options[j].selected=true;}}}
for(i=0,l=$myCanvas.length;i<l;++i){myCanvasContext=$myCanvas[i].getContext('2d');if(myCanvasContext){$resultCanvas[i].getContext('2d').drawImage($myCanvas[i],0,0);$($resultCanvas[i]).attr("data-jquery-print",myCanvasContext.canvas.toDataURL());}}
return $result;}
function getjQueryObject(string){var jqObj=$("");try{jqObj=jQueryCloneWithSelectAndTextAreaValues(string);}catch(e){jqObj=$("<span />").html(string);}
return jqObj;}
function printFrame(frameWindow,content,options){var def=$.Deferred();try{frameWindow=frameWindow.contentWindow||frameWindow.contentDocument||frameWindow;try{frameWindow.resizeTo(window.innerWidth,window.innerHeight);}catch(err){console.warn(err);}
var wdoc=frameWindow.document||frameWindow.contentDocument||frameWindow;if(options.doctype){wdoc.write(options.doctype);}
wdoc.write(content);try{var canvas=wdoc.querySelectorAll('canvas');for(var i=0;i<canvas.length;i++){var ctx=canvas[i].getContext("2d");var image=new Image();image.onload=function(){ctx.drawImage(image,0,0);};image.src=canvas[i].getAttribute("data-jquery-print");}}catch(err){console.warn(err);}
wdoc.close();var printed=false,callPrint=function(){if(printed){return;}
frameWindow.focus();try{if(!frameWindow.document.execCommand('print',false,null)){frameWindow.print();}
$('body').focus();}catch(e){frameWindow.print();}
frameWindow.close();printed=true;def.resolve();};$(frameWindow).on("load",callPrint);setTimeout(callPrint,options.timeout);}catch(err){def.reject(err);}
return def;}
function printContentInIFrame(content,options){var $iframe=$(options.iframe+"");var iframeCount=$iframe.length;if(iframeCount===0){$iframe=$('<iframe height="0" width="0" border="0" wmode="Opaque"/>').prependTo('body').css({"position":"absolute","top":-999,"left":-999});}
var frameWindow=$iframe.get(0);return printFrame(frameWindow,content,options).done(function(){setTimeout(function(){if(iframeCount===0){$iframe.remove();}},1000);}).fail(function(err){console.error("Failed to print from iframe",err);printContentInNewWindow(content,options);}).always(function(){try{options.deferred.resolve();}catch(err){console.warn('Error notifying deferred',err);}});}
function printContentInNewWindow(content,options){var frameWindow=window.open();return printFrame(frameWindow,content,options).always(function(){try{options.deferred.resolve();}catch(err){console.warn('Error notifying deferred',err);}});}
function isNode(o){return!!(typeof Node==="object"?o instanceof Node:o&&typeof o==="object"&&typeof o.nodeType==="number"&&typeof o.nodeName==="string");}
$.print=$.fn.print=function(){var options,$this,self=this;if(self instanceof $){self=self.get(0);}
if(isNode(self)){$this=$(self);if(arguments.length>0){options=arguments[0];}}else{if(arguments.length>0){$this=$(arguments[0]);if(isNode($this[0])){if(arguments.length>1){options=arguments[1];}}else{options=arguments[0];$this=$("html");}}else{$this=$("html");}}
var defaults={globalStyles:true,mediaPrint:false,stylesheet:null,noPrintSelector:".no-print",iframe:true,append:null,prepend:null,manuallyCopyFormValues:true,deferred:$.Deferred(),timeout:750,title:null,doctype:'<!doctype html>'};options=$.extend({},defaults,(options||{}));var $styles=$("");if(options.globalStyles){$styles=$("style, link, meta, base, title");}else if(options.mediaPrint){$styles=$("link[media=print]");}
if(options.stylesheet){if(!(($.isArray?$.isArray:Array.isArray)(options.stylesheet))){options.stylesheet=[options.stylesheet]}
for(var i=0;i<options.stylesheet.length;i++){$styles=$.merge($styles,$('<link rel="stylesheet" href="'+options.stylesheet[i]+'">'));}}
var copy=jQueryCloneWithSelectAndTextAreaValues($this,true,true);copy=$("<span/>").append(copy);copy.find(options.noPrintSelector).remove();copy.append(jQueryCloneWithSelectAndTextAreaValues($styles));if(options.title){var title=$("title",copy);if(title.length===0){title=$("<title />");copy.append(title);}
title.text(options.title);}
copy.append(getjQueryObject(options.append));copy.prepend(getjQueryObject(options.prepend));if(options.manuallyCopyFormValues){copy.find("input").each(function(){var $field=$(this);if($field.is("[type='radio']")||$field.is("[type='checkbox']")){if($field.prop("checked")){$field.attr("checked","checked");}}else{$field.attr("value",$field.val());}});copy.find("select").each(function(){var $field=$(this);$field.find(":selected").attr("selected","selected");});copy.find("textarea").each(function(){var $field=$(this);$field.text($field.val());});}
var content=copy.html();try{options.deferred.notify('generated_markup',content,copy);}catch(err){console.warn('Error notifying deferred',err);}
copy.remove();if(options.iframe){try{printContentInIFrame(content,options);}catch(e){console.error("Failed to print from iframe",e.stack,e.message);printContentInNewWindow(content,options);}}else{printContentInNewWindow(content,options);}
return this;};})(jQuery);
;;;(function($){jQuery.timer=function(interval,callback,options){var options=jQuery.extend({reset:500},options);var interval=interval||options.reset;if(!callback){return false;}
var Timer=function(interval,callback,disabled){this.internalCallback=function(){callback(self);};this.stop=function(){if(this.state===1&&this.id){clearInterval(self.id);this.state=0;return true;}
return false;};this.reset=function(time){if(self.id){clearInterval(self.id);}
var time=time||options.reset;this.id=setInterval($.proxy(this.internalCallback,this),time);this.state=1;return true;};this.pause=function(){if(self.id&&this.state===1){clearInterval(this.id);this.state=2;return true;}
return false;};this.resume=function(){if(this.state===2){this.state=1;this.id=setInterval($.proxy(this.internalCallback,this),this.interval);return true;}
return false;};this.interval=interval;if(!disabled){this.id=setInterval($.proxy(this.internalCallback,this),this.interval);this.state=1;}
var self=this;};return new Timer(interval,callback,options.disabled);};})(jQuery);
;;;(function($){$.support.touch='ontouchend' in document;if(!$.support.touch){return;}
var mouseProto=$.ui.mouse.prototype,_mouseInit=mouseProto._mouseInit,_mouseDestroy=mouseProto._mouseDestroy,touchHandled;function simulateMouseEvent(event,simulatedType){if(event.originalEvent.touches.length>1){return;}
event.preventDefault();var touch=event.originalEvent.changedTouches[0],simulatedEvent=document.createEvent('MouseEvents');simulatedEvent.initMouseEvent(simulatedType,true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);event.target.dispatchEvent(simulatedEvent);}
mouseProto._touchStart=function(event){var self=this;if(touchHandled||!self._mouseCapture(event.originalEvent.changedTouches[0])){return;}
touchHandled=true;self._touchMoved=false;simulateMouseEvent(event,'mouseover');simulateMouseEvent(event,'mousemove');simulateMouseEvent(event,'mousedown');};mouseProto._touchMove=function(event){if(!touchHandled){return;}
this._touchMoved=true;simulateMouseEvent(event,'mousemove');};mouseProto._touchEnd=function(event){if(!touchHandled){return;}
simulateMouseEvent(event,'mouseup');simulateMouseEvent(event,'mouseout');if(!this._touchMoved){simulateMouseEvent(event,'click');}
touchHandled=false;};mouseProto._mouseInit=function(){var self=this;self.element.bind({touchstart:$.proxy(self,'_touchStart'),touchmove:$.proxy(self,'_touchMove'),touchend:$.proxy(self,'_touchEnd')});_mouseInit.call(self);};mouseProto._mouseDestroy=function(){var self=this;self.element.unbind({touchstart:$.proxy(self,'_touchStart'),touchmove:$.proxy(self,'_touchMove'),touchend:$.proxy(self,'_touchEnd')});_mouseDestroy.call(self);};})(jQuery);
;;;function sortableContent(contentClass){contentClass=contentClass||'.sortable';$(contentClass).each(function(){var root=$(this);var buttons=root.find("[data-sort-by]");if(!buttons.length)return console.log(root[0],"no data-sort-by attributes found");buttons.on("click",function(e){e.preventDefault();sortRows(root,$(this));});var filterOnLoad=buttons.filter(".ascending, .descending").first();if(filterOnLoad.length){sortRows(root,buttons.filter(".ascending, .descending").first());}});function sortRows(root,button){var rowSelector=root.data("row");if(typeof rowSelector=="undefined")return console.log(root[0],"requires a data-row attribute");var rows=root.find(rowSelector);var buttons=root.find("[data-sort-by]");var sortBy=button.data("sort-by");var cells=rows.find(sortBy);var sortAttr=sortBy.indexOf('[')!=-1?sortBy.replace(/[\[\]']/g,''):'';var ascending=button.hasClass("ascending");var cellData=[];if(sortAttr){cells.each(function(){var rawData=$(this).attr(sortAttr);var number=rawData.replace(/[\$\�\.\,]/g,'');var data=isNaN(parseFloat(number))?rawData:parseFloat(number);cellData.push([cellData.length,data]);});}else{cells.each(function(){var rawData=$(this).text().toLowerCase();var number=rawData.replace(/[\$\�\.\,]/g,'');var data=isNaN(parseFloat(number))?rawData:parseFloat(number);cellData.push([cellData.length,data]);});}
buttons.removeClass("descending ascending");if(ascending){cellData.sort(function(a,b){if(a[1]<b[1])return 1;return-1;});button.addClass("descending").removeClass("ascending");}else{cellData.sort(function(a,b){if(a[1]>b[1])return 1;return-1;});button.addClass("ascending").removeClass("descending");}
var detachedRows=rows.detach();for(var i=0;i<cellData.length;i++){root.append(detachedRows[cellData[i][0]]);}}}
;;;var customCheckbox=function(settings,parent){var _this=this;this.root=document.createElement('div');this.settings=settings;this.checked=this.settings.checked;this.parent=parent||document.getElementsByTagName('body');this.id=this.settings.id||'customCheckbox';this.className='styledCheckbox'+(typeof this.settings.class!='undefined'?' '+this.settings.class:'');this.root.className=this.className;this.labelText=this.settings.label||'';this.checkbox={'element':{},'html':function(){return'<input id="'+_this.id+'" data-ga-category="PriceGridFilter" data-ga-action="Confirm" type="checkbox" '+(_this.checked?'checked="checked" ':'')+'name="'+_this.id+'" />';},'change':function(event){_this.checked=_this.settings.checked=event.target.checked;if(typeof _this.settings.refresh=='function')_this.settings.refresh();},};this.label={'element':{},'html':function(){return'<label for="'+_this.id+'">'+_this.labelText+'</label>';}};this.root.innerHTML=this.checkbox.html()+this.label.html();this.createHTML=function(){this.parent.appendChild(this.root);for(var i=0;i<this.root.childNodes.length;i++){var elementTag=this.root.childNodes[i].tagName.toLowerCase();switch(elementTag){case"input":this.checkbox.element=this.root.childNodes[i];break;case"label":this.label.element=this.root.childNodes[i];break;default:break;}}};this.createHTML();this.html=this.root.innerHTML;this.attachClickEvents=function(){this.checkbox.element.addEventListener('change',this.checkbox.change);};this.attachClickEvents();this.update=function(){this.createHTML();this.attachClickEvents();};return this;};
;;;(function($){$.widget("aslPlugins.aslCarousel",{options:{'onInit':null,'autoChange':true,'autoChangeTime':5000,'transitionSpeed':900,'transitionType':0,'onSlideChange':null,'carouselClass':'aslCarousel','slidesData':null,'leftButton':null,'rightButton':null,'upButton':null,'downButton':null,'pauseButton':null,'slidesPerPage':0,'slidesClass':'slides','slideClass':'slide','infiniteScroll':true,'autoMargins':false},_create:function(){var _this=this;this.root=this.element;this.onInit=this.options['onInit'];this.slidesClass=this.options['slidesClass'];this.slideClass=this.options['slideClass'];this.slidesPerPage=this.options['slidesPerPage'];this.autoSlidesPerPage=this.slidesPerPage?false:true;this.autoMargins=this.options['autoMargins'];this.carouselClass=this.options['carouselClass'];this.onSlideChange=this.options['onSlideChange'];this.uniqueId=0;this.slideWidth=0;this.marginSize=0;this.slidesOnPage=0;this.slidesDivWidth=0;this.firstSlideOnPage=0;this.lastSlideOnPage=0;this.slidesData=[];this.imagesToLoad=0;this.passedSlides=$(this.options['slidesData']).siblings();this.autoChangeTime=this.options['autoChangeTime'];this.autoChange=this.options['autoChange'];this.infiniteScroll=this.options['infiniteScroll'];this.timer=undefined;this.timesUp=false;this.nextSlidesLoaded=false;this.userClicked=false;this.transitionType=this.options['transitionType'];this.transitionSpeed=this.options['transitionSpeed'];this.transitioning=false;this.paused=false;this.css3Support=this._detectCSSFeature("transition");this.currentX=0;this.touchDevice=false;if("ontouchstart" in window||navigator.msMaxTouchPoints)this.touchDevice=true;this.touchStartX;this.touchOffsetX;this.touchDiffX;this.touchStartY;this.touchOffsetY;this.touchDiffY;this.touchLimit=30;this.$touchEl=$(this.root);if(this.touchDevice){this.$touchEl[0].addEventListener('touchstart',function(e){_this.touchOffsetX=($(window).width()-_this.$touchEl.outerWidth(true))/2;_this.touchStartX=e.targetTouches[0].pageX-_this.touchOffsetX;_this.touchOffsetY=($(window).height()-_this.$touchEl.outerHeight(true))/2;_this.touchStartY=e.targetTouches[0].pageY-_this.touchOffsetY;},false);this.$touchEl[0].addEventListener("touchmove",function(e){_this.touchDiffX=(e.changedTouches[0].pageX-_this.touchOffsetX)-_this.touchStartX;_this.touchDiffY=(e.changedTouches[0].pageY-_this.touchOffsetY)-_this.touchStartY;},false);this.$touchEl[0].addEventListener("touchend",function(e){if(_this.touchDiffX>_this.touchLimit||_this.touchDiffX<-_this.touchLimit){if(_this.touchDiffX<0){if(!_this.userClicked){_this.userClicked=true;_this._stopTimer();_this.carouselLeft();}}else{if(!_this.userClicked){_this.userClicked=true;_this._stopTimer();_this.carouselRight();}}}else{}
_this.touchDiffX=0;},false);}
$.extend($.easing,{'easeInOutQuad':function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;}});this.leftButton=this.options['leftButton'];this.rightButton=this.options['rightButton'];this.upButton=this.options['upButton'];this.downButton=this.options['downButton'];this.pauseButton=this.options['pauseButton'];if(!this.root.hasClass(this.carouselClass))this.root.addClass(this.carouselClass);if(!this.root.find('.'+this.slidesClass).length){this.root.wrapInner('<div class="'+this.slidesClass+'" />');}
this.slidesDiv=this.root.find('.'+this.slidesClass);this.slides=this.slidesDiv.children();this.slidesDivWidth=this.slidesDiv.width();if(this.slides.length)this.addSlides(this.slides);if(this.passedSlides.length)this.addSlides(this.passedSlides);if(this.slides.length){this.lastSlideOnPage=this.slides.length-1;}else{}
this._preloadImages();if(this.slidesPerPage)this._setSlidesPerPage();if(this.leftButton){this.leftButton.click(function(e){e.preventDefault();_this.userClicked=true;_this._stopTimer();_this.carouselLeft();}).mouseenter(function(e){if(_this.autoChange)_this._stopTimer();}).mouseleave(function(e){if(_this.autoChange)_this._startTimer();});}
if(this.rightButton){this.rightButton.click(function(e){e.preventDefault();_this.userClicked=true;_this._stopTimer();_this.carouselRight();}).mouseenter(function(e){if(_this.autoChange)_this._stopTimer();}).mouseleave(function(e){if(_this.autoChange)_this._startTimer();});}
if(this.upButton){this.upButton.click(function(e){e.preventDefault();_this.userClicked=true;_this._stopTimer();_this.carouselUp();}).mouseenter(function(e){if(_this.autoChange)_this._stopTimer();}).mouseleave(function(e){if(_this.autoChange)_this._startTimer();});}
if(this.downButton){this.downButton.click(function(e){e.preventDefault();_this.userClicked=true;_this._stopTimer();_this.carouselDown();}).mouseenter(function(e){if(_this.autoChange)_this._stopTimer();}).mouseleave(function(e){if(_this.autoChange)_this._startTimer();});}
this.root.mouseenter(function(e){if(_this.autoChange)_this.paused=true;}).mouseleave(function(e){if(_this.autoChange)_this.paused=false;});if(this.slidesData.length<=this.slidesPerPage){this.hideButtons(true);}else{this.hideButtons(false);}
$(window).resize(function(){_this.resize();});if(this.onInit!=null)this.onInit();},destroy:function(){this._stopTimer();for(var i=0;i<this.slidesData.length;i++){this.slidesData[i].obj.off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').remove();this.slidesData[i]=null;}
this.root.remove();$.Widget.prototype.destroy.call(this);},_outputData:function(){for(var i=0;i<this.slidesData.length;i++){console.log(i+" prev:"+this.slidesData[i].prev.src+"\n      src:"+this.slidesData[i].src+"\n      next:"+this.slidesData[i].next.src);}},reinitialise:function(){var _this=this;this._stopTimer();this.slidesData.length=0;this.slidesOnPage=0;this.slides=null;if(!this.root.hasClass(this.carouselClass))this.root.addClass(this.carouselClass);if(!this.root.find('.'+this.slidesClass).length){this.root.wrapInner('<div class="'+this.slidesClass+'" />');}
this.slidesDiv=this.root.find('.'+this.slidesClass);this.slides=this.slidesDiv.children();if(this.slides.length)this.addSlides(this.slides);if(this.passedSlides.length)this.addSlides(this.passedSlides);if(this.slides.length){this.lastSlideOnPage=this.slides.length-1;}else{}
this._preloadImages();},_hideShowButtons:function(){if(this.slidesData.length<=this.slidesPerPage){this.hideButtons(true);if(this.autoChange)this._stopTimer();}else{this.hideButtons(false);if(this.autoChange)this._startTimer();}},getSlides:function(rawData){if(typeof rawData=='undefined'){var exportSlides=[];for(var i=0;i<this.slidesData.length;i++){exportSlides.push(this.slidesData[i].obj);}
return exportSlides;}else{return this.slidesData;}},_setMargins:function(slides){this.slides=this.slidesDiv.children();this.slideWidth=this.slides.first().width();this.slidesPerPage=Math.floor(this.slidesDiv.width()/this.slideWidth);var spareWidth=this.slidesDiv.width()-(this.slidesPerPage*this.slideWidth)-1;this.marginSize=(spareWidth/this.slidesPerPage/2).toFixed(4);this.slides.css({'margin-left':this.marginSize+'px','margin-right':this.marginSize+'px'});for(var i=0;i<this.slidesData.length;i++){this.slidesData[i].obj.css({'margin-left':this.marginSize+'px','margin-right':this.marginSize+'px'});}},addSlides:function(slides){var _this=this;if(!slides instanceof jQuery)slides=$(slides).siblings();if(!slides.hasClass(this.slideClass))slides.addClass(this.slideClass);slides.each(function(){var $this=$(this);var img=$this.find('img');var inDOM=false;var loaded=false;if(jQuery.contains(document.documentElement,$this[0])){inDOM=true;loaded=true;_this.slidesOnPage++;}
for(var i=0;i<_this.slidesData.length;i++){if($this[0].outerHTML==_this.slidesData[i].obj[0].outerHTML)$this.attr('data-carousel-unique-id',_this.uniqueId++);}
var prevSlide=null;var nextSlide=null;if(_this.slidesData.length)prevSlide=_this.slidesData[_this.slidesData.length-1];var slide=nextSlide=_this.slidesData[_this.slidesData.length]={'prev':prevSlide,'next':null,'src':img.attr('src'),'inDOM':inDOM,'loaded':loaded,'error':false,'obj':$this};if(_this.slidesData.length>1)_this.slidesData[_this.slidesData.length-2].next=nextSlide;});this.slidesData[0].prev=this.slidesData[this.slidesData.length-1];this.slidesData[this.slidesData.length-1].next=this.slidesData[0];},_preloadSlides:function(next){var _this=this;},_setSlidesPerPage:function(numOfSlides){this._stopTimer();this.slides=this.slidesDiv.children();if(this.autoMargins)this._setMargins();else this.slidesPerPage=numOfSlides?numOfSlides:Math.floor(this.slidesDiv.width()/this.slides.first().outerWidth(true));if(this.slides.length!=this.slidesPerPage){if(this.slides.length>this.slidesPerPage){this.removeFromDOM(this.slides.length-this.slidesPerPage);}else if(this.infiniteScroll){this.addToDOM(this.slidesPerPage-this.slides.length);}}
this.slides=this.slidesDiv.children();this._hideShowButtons();},setSlidesPerPage:function(numOfSlides){this._setSlidesPerPage(parseInt(numOfSlides));},resize:function(){if(this.slidesDivWidth!=this.slidesDiv.width()&&this.slidesDiv.width()){this.slidesDivWidth=this.slidesDiv.width();if(this.autoSlidesPerPage)this._setSlidesPerPage();}},addToDOM:function(amount){this.slides=this.slidesDiv.children();if(amount>0){for(var i=0;i<amount;i++){this.slidesDiv.append(this._nextSlide().clone(true));if(++this.lastSlideOnPage>=this.slidesData.length)this.lastSlideOnPage=0;}}else{for(var i=0;i<Math.abs(amount);i++){this.slidesDiv.prepend(this._prevSlide().clone(true));if(--this.firstSlideOnPage<0)this.firstSlideOnPage=this.slidesData.length-1;}}},removeFromDOM:function(amount){this.slides=this.slidesDiv.children();if(amount>0){for(var i=1;i<=amount;i++){this.slides.eq(-i).detach();if(--this.lastSlideOnPage<0)this.lastSlideOnPage=this.slidesData.length-1;}}else{for(var i=0;i<Math.abs(amount);i++){this.slides.eq(i).detach();if(++this.firstSlideOnPage>=this.slidesData.length)this.firstSlideOnPage=0;}}},_nextSlide:function(){var lastSlide=this.slidesDiv.find('.'+this.slideClass).last();if(lastSlide.length){for(var i=0;i<this.slidesData.length;i++){if(this.slidesData[i].obj[0].outerHTML==lastSlide[0].outerHTML)return this.slidesData[i].next.obj;}}else{if(this.slidesData.length)return this.slidesData[0].obj;}},_prevSlide:function(){var firstSlide=this.slidesDiv.find('.'+this.slideClass).first();if(firstSlide.length){for(var i=0;i<this.slidesData.length;i++){if(this.slidesData[i].obj[0].outerHTML==firstSlide[0].outerHTML)return this.slidesData[i].prev.obj;}}else{if(this.slidesData.length)return this.slidesData[0].obj;}},_lockSlideWidths:function(moveTo){if(!this.autoMargins){var currentSlides=this.slidesDiv.find('.'+this.slideClass);this.slidePXWidth=currentSlides.width();this.slideMarginWidth=currentSlides.last().outerWidth(true)-this.slidePXWidth;for(var i=0;i<this.slidesData.length;i++){this.slidesData[i].obj.css({'width':(this.slidePXWidth+'px'),'margin-left':(this.slideMarginWidth+'px')}).css('left');}
currentSlides.css({'width':(this.slidePXWidth+'px'),'margin-left':(this.slideMarginWidth+'px')}).css('left');}},_unlockSlideWidths:function(moveTo){if(!this.autoMargins){for(var i=0;i<this.slidesData.length;i++){this.slidesData[i].obj.css({'width':'','margin-left':''});}
this.slidesDiv.find('.'+this.slideClass).css({'width':'','margin-left':''});}},carouselLeft:function(moveTo){var _this=this;var numSlidesAdded=1;moveTo=moveTo?moveTo:0;if(!this.transitioning||moveTo){this.transitioning=true;if(this.infiniteScroll||moveTo){var currentSlides=this.slidesDiv.find('.'+this.slideClass);var extraWidth=currentSlides.first().outerWidth(true);this._lockSlideWidths();this.addToDOM(1);extraWidth=(currentSlides.eq(1).outerWidth(true)-extraWidth);if(moveTo===true)moveTo=0;if(moveTo){var extraSlidesWidth=Math.ceil((this.root.width()/this.slidesPerPage)*moveTo);this.slidesDiv.width(extraWidth+this.root.width()+extraSlidesWidth+10);this.addToDOM(moveTo-1);numSlidesAdded+=moveTo-1;moveTo=-extraSlidesWidth-extraWidth;}else{var newWidth=10+(extraWidth*2)+(Math.ceil(this.root.width()*2));this.slidesDiv.width(newWidth);this.addToDOM(this.slidesPerPage-1);numSlidesAdded+=this.slidesPerPage-1;moveTo=this.slidesDiv.position().left-this.root.width()-(extraWidth*2);}
this._slideLeft(this.slidesDiv,moveTo+'px',function(){_this.slidesDiv.css({'width':'','transition':'','transform':'','-webkit-transform':'','-webkit-transition-property':'','-webkit-transition-duration':''}).css('top');_this._unlockSlideWidths();_this.removeFromDOM(-numSlidesAdded);_this.transitioning=false;_this.userClicked=false;});}else{if(this.lastSlideOnPage+1!=this.slidesData.length){if(this.lastSlideOnPage+1+this.slidesPerPage>this.slidesData.length){this.carouselLeft(this.slidesData.length-(this.lastSlideOnPage+1));}else{this.carouselLeft(true);}}else{this.transitioning=false;this.userClicked=false;}}}},carouselRight:function(moveTo){var _this=this;var numSlidesAdded=1;moveTo=moveTo?moveTo:0;if(!this.transitioning||moveTo){this.transitioning=true;if(this.infiniteScroll||moveTo){var extraWidth=this.slidesDiv.find('.'+this.slideClass).first().outerWidth(true);this._lockSlideWidths();this.addToDOM(-1);extraWidth=(this.slidesDiv.find('.'+this.slideClass).eq(1).outerWidth(true)-extraWidth);if(moveTo===true)moveTo=0;if(moveTo){var extraSlidesWidth=Math.ceil((this.root.width()/this.slidesPerPage)*moveTo);this.slidesDiv.css({'width':(extraWidth+this.root.width()+extraSlidesWidth+10)+'px','margin-left':-extraWidth-extraSlidesWidth+'px'}).css('top');this.addToDOM(-(moveTo-1));numSlidesAdded+=moveTo-1;moveTo=this.slidesDiv.position().left+extraSlidesWidth+extraWidth;}else{moveTo=this.slidesDiv.position().left+this.root.width();this.slidesDiv.css({'width':((extraWidth+this.root.width()*2)+20)+'px','margin-left':-extraWidth-this.root.width()+'px'}).css('top');this.addToDOM(-this.slidesPerPage+1);numSlidesAdded+=this.slidesPerPage-1;}
this._slideRight(this.slidesDiv,moveTo+'px',function(){_this.slidesDiv.css({'margin-left':'','width':'','transition':'','transform':'','-webkit-transform':'','-webkit-transition-property':'','-webkit-transition-duration':''}).css('top');_this._unlockSlideWidths();_this.removeFromDOM(numSlidesAdded);_this.transitioning=false;_this.userClicked=false;});}else{if(this.firstSlideOnPage){if(this.firstSlideOnPage-this.slidesPerPage<0){this.carouselRight(this.firstSlideOnPage);}else{this.carouselRight(true);}}else{this.transitioning=false;this.userClicked=false;}}}},carouselUp:function(){var _this=this;if(!this.transitioning){this.transitioning=true;var extraWidth=this.slidesDiv.find('.'+this.slideClass).first().outerWidth(true);this.slidesDiv.prepend(this._prevSlide().clone(true));extraWidth=(this.slidesDiv.find('.'+this.slideClass).eq(1).outerWidth(true)-extraWidth);this.slidesDiv.append(this._nextSlide().clone(true));for(var i=1;i<this.slidesPerPage;i++)this.slidesDiv.append(this._nextSlide().clone(true));this._slideUp(this.slidesDiv,-this.root.height()+'px',function(){_this.slidesDiv.css({'width':'','transition':'','transform':'','-webkit-transition-property':'','-webkit-transition-duration':''}).css('top');var slides=_this.slidesDiv.find('.'+_this.slideClass);for(var i=0;i<_this.slidesPerPage;i++)slides.eq(i).detach();_this.transitioning=false;});}},carouselDown:function(){var _this=this;if(!this.transitioning){this.transitioning=true;this.slidesDiv.prepend(this._prevSlide().clone(true));this.slidesDiv.css({'margin-top':-this.root.height()+'px'}).css('top');for(var i=1;i<this.slidesPerPage;i++)this.slidesDiv.prepend(this._prevSlide().clone(true));this._slideDown(this.slidesDiv,this.root.height()+'px',function(){_this.slidesDiv.css({'margin-top':'','width':'','transition':'','transform':'','-webkit-transition-property':'','-webkit-transition-duration':''}).css('top');var slides=_this.slidesDiv.find('.'+_this.slideClass);for(var i=1;i<=_this.slidesPerPage;i++)slides.eq(-i).detach();_this.transitioning=false;});}},_slideLeft:function(el,toPosition,callback){if(this.css3Support){el.css({'transition':'transform '+this.transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition':'-webkit-transform '+this.transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition-property':'-webkit-transform','-webkit-transition-duration':this.transitionSpeed+'ms'}).css('top');el.css({'transform':'translate('+(toPosition?toPosition:'-100%')+', 0)','-webkit-transform':'translate('+(toPosition?toPosition:'-100%')+', 0)'}).off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){if(callback&&typeof callback=='function')callback(e);});}else{el.stop().animate({'margin-left':(toPosition?toPosition:'-100%')},this.transitionSpeed,'easeInOutQuad',function(e){$(this).css('margin-left','').css('top');if(callback&&typeof callback=='function')callback(e);});}
return el;},_slideRight:function(el,toPosition,callback){if(this.css3Support){el.css({'transition':'transform '+this.transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition':'-webkit-transform '+this.transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition-property':'-webkit-transform','-webkit-transition-duration':this.transitionSpeed+'ms'}).css('top');el.css({'transform':'translate('+(toPosition?toPosition:'100%')+', 0)','-webkit-transform':'translate('+(toPosition?toPosition:'100%')+', 0)'}).off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){if(callback&&typeof callback=='function')callback(e);});}else{el.stop().animate({'margin-left':''},this.transitionSpeed,'easeInOutQuad',function(e){if(callback&&typeof callback=='function')callback(e);});}
return el;},_slideUp:function(el,toPosition,callback){if(this.css3Support){el.css({'transition':'transform '+this.transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition-property':'transform','-webkit-transition-duration':this.transitionSpeed+'ms'}).css('top');el.css('transform','translate(0,'+(toPosition?toPosition:'-100%')+')').off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){if(callback&&typeof callback=='function')callback(e);});}else{el.stop().animate({'margin-top':(toPosition?toPosition:'-100%')},this.transitionSpeed,'easeInOutQuad',function(e){$(this).css('margin-top','').css('top');if(callback&&typeof callback=='function')callback(e);});}
return el;},_slideDown:function(el,toPosition,callback){if(this.css3Support){el.css({'transition':'transform '+this.transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition-property':'transform','-webkit-transition-duration':this.transitionSpeed+'ms'}).css('top');el.css('transform','translate(0,'+(toPosition?toPosition:'100%')+')').off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){if(callback&&typeof callback=='function')callback(e);});}else{el.stop().animate({'margin-top':''},this.transitionSpeed,'easeInOutQuad',function(e){if(callback&&typeof callback=='function')callback(e);});}
return el;},hideButtons:function(displayNone){if(displayNone){if(this.pauseButton)this.pauseButton.css({display:'none'});if(this.leftButton)this.leftButton.css({display:'none'});if(this.rightButton)this.rightButton.css({display:'none'});if(this.downButton)this.downButton.css({display:'none'});if(this.upButton)this.upButton.css({display:'none'});}else{if(this.pauseButton)this.pauseButton.css({display:''});if(this.leftButton)this.leftButton.css({display:''});if(this.rightButton)this.rightButton.css({display:''});if(this.downButton)this.downButton.css({display:''});if(this.upButton)this.upButton.css({display:''});}},_preloadImages:function(){var _this=this;var images=this.slidesDiv.find('img');this.imagesToLoad=images.length;if(!this.imagesToLoad)this._setSlidesPerPage();images.each(function(){var src=$(this).attr('src');if(src!=undefined){var imageObj=new Image();imageObj.src=src;$(imageObj).one('load',function(){_this.imagesToLoad--;if(_this.imagesToLoad==0){_this._setSlidesPerPage();}}).each(function(){if(this.complete)$(this).load();});}});},_detectCSSFeature:function(featurename){var feature=false,domPrefixes='Webkit Moz ms O'.split(' '),elm=document.createElement('div'),featurenameCapital=null;featurename=featurename.toLowerCase();if(elm.style[featurename]){feature=true;}
if(feature===false){featurenameCapital=featurename.charAt(0).toUpperCase()+featurename.substr(1);for(var i=0;i<domPrefixes.length;i++){if(elm.style[domPrefixes[i]+featurenameCapital]!==undefined){feature=true;break;}}}
return feature;},_startTimer:function(){var _this=this;if(typeof($.timer)!='undefined'){if(this.autoChange&&!this.paused&&this.slidesData.length>1){this.timer=$.timer(this.autoChangeTime,function(){if(!_this.paused){if(_this.upButton)_this.carouselUp();else _this.carouselLeft();}});}}},_stopTimer:function(){if(typeof($.timer)!='undefined'&&typeof this.timer!='undefined'){this.timer.stop();this.timer=undefined;}},});}(jQuery));
;;;(function($){var youtubeAPILoaded=false;var usingOldYoutubeAPI=false;$.widget("aslPlugins.aslGallery",{options:{'autoChange':true,'autoChangeTime':7000,'transitionFirstSlide':false,'transitionSpeed':900,'transitionType':0,'swipeTransitionType':2,'swipeTransitionSpeed':600,'slidesClass':'slides','slideClass':'slide','slideElement':'figure','slideNumbering':null,'slideCaption':null,'videoClass':'video','paginationClass':'pagination','paginationVisible':true,'thumbsClass':'thumbnails','thumbClass':'thumb','thumbElement':'span','thumbSelectedClass':'on','thumbsVisible':true,'thumbsPerPage':18,'thumbPageDisplay':'thumbPageDisplay','thumbnailsRoot':null,'thumbLeftButton':null,'thumbRightButton':null,'showPagination':true,'onSlideChange':null,'galleryClass':'aslGallery','leftButton':null,'rightButton':null,'pauseButton':null,'autoHideNav':true,'showNavOnLoad':false,'imgData':null,'preloader':null,'preloaderClass':'preloader','preloaderWidth':106,'preloaderHeight':106,'preloaderImg':"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAABqCAQAAAD+KAwcAAAGLklEQVR42t2ca0xTZxjH/+e0paVwejvcagTRduCFMEMWBEmqmwryzWxzXWJCpmkcKK4ZWVzHiJEsBo0atwRjIRJv0TjBAbI5QbtBvKBtkFvV8M3EmUXSbA4jhhFlhzCyZZ730M1kOU/f51PbL/31ubzv++/zHPwviwMPDjG1uAprfRaMsYXFuR3j3VsKYwuLL106FR67GgtYHHSIhwArxBUFU+FprM0rIYCnCKOFETakYcGuN09/EKgJNww1DpyUoCT77drXW2ClhMVBDwvs7ryW8nBDJCBByNjzwZZyKlg6CLDvKQnu/7X7LwAW1rkKBpaq/GNz53XvGu2UQZC1F8MMLNUAJXld4YbngwwAclg6iNVr7ja9GFYEYGJJuWVWV4HXwFScM3g4KgAmVlOhenzFwQB7R9V4MGoAWQvWwaoWT/EQKoseXnglIMl69yEVWrXkUfIZz7NQLCHpF2fe/moqTBCJnUnFOeywi95u7VUPkrEsn3X0YdtE32jnUGN3bdue2dftXiSrBSnBt/rJtehhnvSOnGjd4SlAOtJgg6XojRmkA2/DAo1KvORbPR6M1jd3jvrdyICIBGj/LNl8ybLpTw5tgEktRdzgKXjcEw3Q2NUr1bnZEGH4x6bKbXROhtSEpC/OiSaXxq53VFkyIcjmC1cmXlylHiRd9sIHbXMBTQ7cqHs9C4JCtvDQqAVJg5ThI3MhjXb61sIKLZWbrLndOxfS4OGsRTDQkVMMXtfvt5XDrmU7UqADmaXBvJ87lJCeherfg4WWiGLu9Clvr1+spyZ3xW1doRR6E30SUiI4WjKkOORXyiUp8ARqWqu+dp2S8nB220wu0fJT0sgxpSKOZHrSsd7rYvsp0iXtSzqQW7ZwA1td3VWCeHpIOnceW5oMHYQNHD0oIVDD3ptcSyiGHgc7WxPvqIIAgksq5uwbk1QiNBShLKGDLKhOH0wgueyRAOtglJsNLUUk7YblLD/dOQoRJJextYIF5XfDQBPKNuRnFQmkgyeaUb/8IA81coJq8PEOJ+vM1/EREmhCxR0oZWVUZRF0MVYmxoNIp9p+Y+rZLQ/1oA2pILos/fXyUOEG2KhCifeOy0PdqIOZKlTy/WZ5qEANBKpQKT8xxMvvq5BIFcoaaZWHurwFBqpQcRAxHxkvmV1VSqwGAuwy33I+RImA6DL86GH8pfQNLFShEi/tlIe634xkqlDmG3XyUPeOQwSoXo8a5aH66+mGXypr4+nZTVVD4ZDO6ug4/yGMNKG0ngLW9ehAKdWSbjy/jdXn6XCCjzEVJRJAGlHBAelj1+WhhvywEj1N+N9lZVRLOdUyYeuvZ2XUhuVE9ePc7Ik+ZkbZiWoo7M6O4H6ad3ON08EoEpLVroOeIpTw7SfsPjbYwRHMJ4fzSS8DiqiGwsF6bQ+7Y8CdR1E/jvetZXQMkFUldVmLIl3s2R6vi16R4JGiNNI0cgxJ4KghWc5VKs1g0SvmHEyNmyYH2FDDRyBS6zpMrC2d6FNqpXTnIY5W4JlqS5/eVGp57foUZmK5dOR9BS9J9vAC5kFDqIgjpWX7TC6xQ8/rgoFOJsUvf23uudR2L8zgqPjIVrN+dqtVrHopago9HlrwrNlh15K+Q3NPdz9oy14Inapq2sW3yl7eW7QwOR2XdsrcmGRuuSXLoFcV0pfvTIY2Ov8GxcMAMTf7SvXs1ULZHveU5cOgMqTpMi390jw46JAAERl+952j0+9GY09v+lar6ZEqGlhmkKbC+YWwI6Oy6LuPR04w/MMYD5SQEtSDpEVS645Zf/SfedTFniRhd8RLgWdUE1Lqrb3/AkD2/OBaAoOqkHr3vRpS6ODiTOiBmEF6Fjq1GUnQxhDSw9bKIgjgVaUCBev+O9B4sN0Lu9rGOPmmQvZ8z9xzqcU5EKBR4WRjSzn7LMdWHu42Va+BqFY1j4f1XAUDiyFNhhu8LiRBzwg6alijnYEadx5sDCBqWJFAcL8UcHYIdARkCevsVjmsR12Dh5s9knfsMCOOnihpbfbMtnUMnLz8+amyz1ZhAdJghRFaEF08hM0rZx7WUZgPMwzQkvIMW1KZeQZJ6VLGCYEu1njA7QAHxBRWfdYmkwqg6D1m9w9RSLT2LW8j8AAAAABJRU5ErkJggg==",'onTransitionInStart':null,'onTransitionInEnd':null,'onTransitionOutStart':null,'onTransitionOutEnd':null},_create:function(){var _this=this;this.root=this.element;this.debugMode=(document.location.hostname=="localhost")?true:false;this.galleryClass=this.options['galleryClass'];this.slidesClass=this.options['slidesClass'];this.slideClass=this.options['slideClass'];this.slideElement=this.options['slideElement'];this.slideCaption=this.options['slideCaption'];this.slideNumbering=this.options['slideNumbering'];this.videoClass=this.options['videoClass'];this.paginationClass=this.options['paginationClass'];this.paginationVisible=this.options['paginationVisible']?true:false;this.thumbsDiv=this.options['thumbnailsRoot'];this.thumbsClass=this.options['thumbsClass'];this.thumbClass=this.options['thumbClass'];this.thumbSelectedClass=this.options['thumbSelectedClass'];this.thumbElement=this.options['thumbElement'];this.thumbsPerPage=this.options['thumbsPerPage'];this.thumbLeftButton=this.options['thumbLeftButton'];this.thumbRightButton=this.options['thumbRightButton'];this.thumbPageDisplay=this.options['thumbPageDisplay'];this.onTransitionInStart=this._parseFunctionName(this.options['onTransitionInStart']);this.onTransitionInEnd=this._parseFunctionName(this.options['onTransitionInEnd']);this.onTransitionOutStart=this._parseFunctionName(this.options['onTransitionOutStart']);this.onTransitionOutEnd=this._parseFunctionName(this.options['onTransitionOutEnd']);this.userHasSwiped=false;this.transitionDirection=0;if(typeof this.thumbPageDisplay=='string'){(this.thumbPageDisplay.charAt(0)!=='.'&&this.thumbPageDisplay.charAt(0)!=='#')?'.'+this.thumbPageDisplay:this.thumbPageDisplay;this.thumbPageDisplay=this.root.find(this.thumbPageDisplay);}
this.currentThumbPage=-1;this.thumbsVisible=this.options['thumbsVisible']?true:false;this.preloaderWidth=this.options['preloaderWidth'];this.preloaderHeight=this.options['preloaderHeight'];if(!this.options['preloader'])this.preloader=$('<img class="'+this.options['preloaderClass']+'" width="'+this.preloaderWidth+'" height="'+this.preloaderHeight+'" src="'+this.options['preloaderImg']+'"/>');else this.preloader=(!this.options['preloader']instanceof jQuery)?$(this.options['preloader']):this.options['preloader'];this.userClicked=false;this.currentSlide=-1;this.nextSlide=0;this.currentPriority=0;this.slidesData=[];this.imgData=this.options['imgData'];if(this.imgData!=null&&typeof this.imgData=='object'){var html="";var slide="";for(var i=0;i<this.imgData.length;i++){var passedClass="";if(this.imgData[i].src){slide='<img ';for(keys in this.imgData[i]){switch(keys){case'src':case'title':case'alt':slide+=' '+keys+'="'+this.imgData[i][keys]+'"';break;case'class':passedClass=this.imgData[i][keys];break;default:slide+=' data-'+keys+'="'+this.imgData[i][keys]+'"';break;}}
slide='<'+this.slideElement+' class="'+this.slideClass+(passedClass?' '+passedClass:'')+'">'+slide;slide+='/>';}else{slide="";if(this.imgData[i].url||this.imgData[i].href){for(keys in this.imgData[i]){switch(keys){case'url':case'href':slide+=' data-src="'+this.imgData[i][keys]+'"';break;case'class':passedClass=this.imgData[i][keys];break;default:slide+=' data-'+keys+'="'+this.imgData[i][keys]+'"';break;}}}
slide='<'+this.slideElement+' class="'+this.slideClass+' '+this.videoClass+(passedClass?' '+passedClass:'')+'"'+slide+'>';}
slide+='</'+this.slideElement+'>';html+=slide;}
this.imgData=html;}
this.imgData=this.imgData?$(this.imgData):[];if(this.imgData.length>1){this.imgData=this.imgData.siblings();}
this.autoChangeTime=this.options['autoChangeTime'];this.autoChange=this.options['autoChange'];this.timer=null;this.timesUp=false;this.nextSlideLoaded=false;this.autoHideNav=this.options['autoHideNav'];this.showNavOnLoad=this.options['showNavOnLoad'];this.onSlideChange=this.options['onSlideChange'];this.transitionType=this.options['transitionType'];this.swipeTransitionType=this.options['swipeTransitionType'];this.transitionSpeed=this.options['transitionSpeed'];this.swipeTransitionSpeed=this.options['swipeTransitionSpeed'];this.transitionFirstSlide=this.options['transitionFirstSlide'];this.transitioning=false;this.paused=false;this.css3Support=this._detectCSSFeature("transition");this.touchDevice=false;if("ontouchstart" in window||navigator.msMaxTouchPoints)this.touchDevice=true;this.touchStartX;this.touchOffsetX;this.touchDiffX;this.touchStartY;this.touchOffsetY;this.touchDiffY;this.touchLimit=30;this.$touchEl=$(this.root);if(this.touchDevice){this.$touchEl[0].addEventListener('touchstart',function(e){_this.touchOffsetX=($(window).width()-_this.$touchEl.outerWidth(true))/2;_this.touchStartX=e.targetTouches[0].pageX-_this.touchOffsetX;_this.touchOffsetY=($(window).height()-_this.$touchEl.outerHeight(true))/2;_this.touchStartY=e.targetTouches[0].pageY-_this.touchOffsetY;},false);this.$touchEl[0].addEventListener("touchmove",function(e){_this.touchDiffX=(e.changedTouches[0].pageX-_this.touchOffsetX)-_this.touchStartX;_this.touchDiffY=(e.changedTouches[0].pageY-_this.touchOffsetY)-_this.touchStartY;},false);this.$touchEl[0].addEventListener("touchend",function(e){if(_this.touchDiffX>_this.touchLimit||_this.touchDiffX<-_this.touchLimit){if(_this.touchDiffX<0){if(!_this.userClicked){e.preventDefault();_this.userClicked=_this.userHasSwiped=true;_this.transitionDirection=0;_this._stopTimer();_this._preloadSlide(_this._nextSlide());}}else{if(!_this.userClicked){e.preventDefault();_this.userClicked=_this.userHasSwiped=true;_this.transitionDirection=1;_this._stopTimer();_this._preloadSlide(_this._prevSlide());}}}else{}
_this.touchDiffX=0;},false);}
$.extend($.easing,{easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;}});this.leftButton=this.options['leftButton'];this.rightButton=this.options['rightButton'];this.pauseButton=this.options['pauseButton'];if(!this.root.hasClass(this.galleryClass))this.root.addClass(this.galleryClass);if(!this.root.find('.'+this.slidesClass).length){this.root.wrapInner('<div class="'+this.slidesClass+'" />');}
this.slidesDiv=this.root.find('.'+this.slidesClass);this.slides=this.slidesDiv.children();if(this.preloader){this.root.append(this.preloader);this.preloader.hide();}
if(this.slides.length){this.addSlides(this.slides);if(this.transitionFirstSlide)this._transitionIn(0);for(var i=1;i<this.slides.length;i++){this.slidesData[i].obj.detach();this.slidesData[i].inDOM=false;}
this.currentSlide=0;this.slidesData[0].thumb.obj.addClass(this.thumbSelectedClass);}
if(this.imgData&&this.imgData.length)this.addSlides(this.imgData);if(this.slides.length){$(window).bind("load",_this._preloadSlide(this._nextSlide()));if(this.autoChange)this._startTimer();}else{if(this.slidesData&&this.slidesData.length)this._preloadSlide(this.currentSlide);}
if(this.leftButton){if(!this.leftButton instanceof jQuery)this.leftButton=$(this.leftButton);this.leftButton.on("click",function(e){e.preventDefault();if(!_this.userClicked){_this.userClicked=true;_this.transitionDirection=1;_this._stopTimer();_this._preloadSlide(_this._prevSlide());}});}
if(this.rightButton){if(!this.rightButton instanceof jQuery)this.rightButton=$(this.rightButton);this.rightButton.on("click",function(e){e.preventDefault();if(!_this.userClicked){_this.userClicked=true;_this.transitionDirection=0;_this._stopTimer();_this._preloadSlide(_this._nextSlide());}});}
if(this.pauseButton){if(!this.pauseButton instanceof jQuery)this.pauseButton=$(this.pauseButton);this.pauseButton.on("click",function(e){e.preventDefault();if(_this.paused){_this.paused=false;_this._startTimer();}else{_this.paused=true;_this._stopTimer();}});}
if(this.thumbLeftButton){if(!this.thumbLeftButton instanceof jQuery)this.thumbLeftButton=$(this.thumbLeftButton);this.thumbLeftButton.on("click",function(e){e.preventDefault();if(_this.thumbsVisible)_this._updateThumbnails(_this._prevThumbPage());});}
if(this.thumbRightButton){if(!this.thumbRightButton instanceof jQuery)this.thumbRightButton=$(this.thumbRightButton);this.thumbRightButton.on("click",function(e){e.preventDefault();if(_this.thumbsVisible)_this._updateThumbnails(_this._nextThumbPage());});}
if(this.thumbsVisible&&this.slidesData.length)this.showThumbnails();if(this.slidesData.length>1&&this.showNavOnLoad)this.showButtons();if(this.slideCaption&&!this.slideCaption instanceof jQuery)this.slideCaption=$(this.slideCaption);if(this.slideNumbering&&!this.slideNumbering instanceof jQuery)this.slideNumbering=$(this.slideNumbering);},destroy:function(){this._stopTimer();for(var i=0;i<this.slidesData.length;i++){this.slidesData[i].obj.off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').remove();this.slidesData[i]=null;}
this.root.remove();$.Widget.prototype.destroy.call(this);},getSlides:function(){var exportSlides=[];for(var i=0;i<this.slidesData.length;i++){exportSlides.push(this.slidesData[i].obj);}
return exportSlides;},addSlides:function(slides){var _this=this;if(!(slides instanceof jQuery))slides=$(slides).siblings();if(!slides.hasClass(this.slideClass))slides.addClass(this.slideClass);slides.each(function(){var $this=$(this);var isVideo=$this.hasClass(_this.videoClass)?true:false;var $img=null;var videoID="";if(isVideo){$img=$this;videoID=$img.attr('data-src').slice($img.attr('data-src').lastIndexOf('/')+1);}
else $img=($this.prop('tagName').toLowerCase()=='img')?$this:$this.find('img');var inDOM=false;var loaded=false;if(jQuery.contains(document.documentElement,$this[0])){inDOM=true;loaded=true;}
var slide=_this.slidesData[_this.slidesData.length]={'src':$img.attr(isVideo?'data-':''+'src'),'priority':$img.data('priority')?$img.data('priority'):0,'alt':$img.attr(isVideo?'data-':''+'alt')?$img.attr(isVideo?'data-':''+'alt'):'','title':$img.attr(isVideo?'data-':''+'title')?$img.attr(isVideo?'data-':''+'title'):'','inDOM':inDOM,'loaded':loaded,'error':false,'obj':$this,'isVideo':isVideo,'youtubePlayer':null,'videoID':videoID,'thumb':{'id':_this.slidesData.length,'src':$img.data('thumb'),'priority':$img.data('priority')?$img.data('priority'):0,'inDOM':false,'loading':false,'loaded':false,'error':false,'obj':$('<'+_this.thumbElement+' class="'+_this.thumbClass+'">'+(isVideo?'<span class="title">'+$img.attr('data-title')+'</span>':'')+'</'+_this.thumbElement+'>'),'slide':$this}};slide.thumb.obj.click(function(){if(!_this.userClicked&&_this.currentSlide!=slide.thumb.id){_this.userClicked=true;_this._stopTimer();_this.nextSlide=slide.thumb.id;_this._preloadSlide(slide.thumb.id);}});});},_nextSlide:function(next){var i=0;var slideCounter=0;var nextFound=false;next=next?next:this.currentSlide;do{if(next+ ++i>=this.slidesData.length){i=0;if(this.currentPriority>=this.slidesData[i].priority)return this.nextSlide=i;}
if(this.currentPriority>=this.slidesData[next+i].priority)nextFound=true;if(slideCounter++>this.slidesData.length)return next;}while(!nextFound);return this.nextSlide=next+i;},_prevSlide:function(){var i=0;var slideCounter=0;var nextFound=false;do{if(this.currentSlide+ --i<0){i=this.slidesData.length-1;if(this.currentPriority>=this.slidesData[i].priority)return this.nextSlide=i;}
if(this.currentPriority>=this.slidesData[this.currentSlide+i].priority)nextFound=true;if(slideCounter++>this.slidesData.length)return next;}while(!nextFound);return this.nextSlide=this.currentSlide+i;},_preloadSlide:function(next){var _this=this;if(typeof next=='undefined')next=this.nextSlide;if(this.currentSlide<0)next=0;if(this.currentSlide!=next){if(!this.slidesData[next].error){if(!this.slidesData[next].loaded){this.nextSlideLoaded=false;if(this.userClicked)this._showPreloader();if(this.slidesData[next].isVideo){if(!this.slidesData[next].inDOM){this.slidesDiv.append(this.slidesData[next].obj);if(!youtubeAPILoaded)this._loadYoutubeAPI(this.slidesData[next]);else this._loadYoutubeVideo(this.slidesData[next]);this.slidesData[next].inDOM=true;}else{this.nextSlideLoaded=true;if(this.timesUp||this.userClicked){this.userClicked=false;this._changeSlides();}}}else{$.get(this.slidesData[next].src,function(){_this.slidesData[next].loaded=true;_this.nextSlideLoaded=true;if(_this.currentSlide<0)_this._changeSlides();if(_this.timesUp||_this.userClicked){_this.userClicked=false;_this._changeSlides();}}).fail(function(){_this.slidesData[next].error=true;console.log("cannot load: "+_this.slidesData[next].src);});}}else{this.nextSlideLoaded=true;if(this.userClicked){this.userClicked=false;this._changeSlides();}}}else{if(this.userClicked){this.userClicked=false;this._hidePreloader();}
console.log("cannot load: "+this.slidesData[next].src);}}},_preloadThumb:function(thumb){var _this=this;if(!thumb.loaded&&!thumb.error){thumb.loading=true;$.get(thumb.src,function(){thumb.loaded=true;thumb.obj.prepend('<img src="'+thumb.src+'" />');_this._fadeIn(thumb.obj.find('img'));thumb.loading=false;}).fail(function(){thumb.error=true;thumb.obj.prepend('<img src="'+thumb.src+'" />');_this._fadeIn(thumb.obj.find('img'));});}},_showPreloader:function(){var _this=this;setTimeout(function(){if(!_this.nextSlideLoaded&&_this.userClicked){_this._fadeIn(_this.preloader);}},300);},_hidePreloader:function(){this._fadeOut(this.preloader);},setPriority:function(priority){this.currentPriority=parseInt(priority);this._preloadSlide(this._nextSlide());},hideButtons:function(){if(this.leftButton)this._fadeOut(this.leftButton);if(this.rightButton)this._fadeOut(this.rightButton);if(this.pauseButton)this._fadeOut(this.pauseButton);},showButtons:function(){if(this.leftButton)this._fadeIn(this.leftButton);if(this.rightButton)this._fadeIn(this.rightButton);if(this.pauseButton)this._fadeIn(this.pauseButton);},_fadeIn:function(el,callback){var transitionSpeed=this.userHasSwiped?this.swipeTransitionSpeed:this.transitionSpeed;el.css({'opacity':0,'display':''}).css('top');if(el.css('display')=='none')el.css('display','block').css('top');if(this.css3Support){el.css({'transition':'opacity '+transitionSpeed+'ms','-webkit-transition-duration':transitionSpeed+'ms'}).css('top');el.css('opacity','').off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){if(callback&&typeof callback=='function')callback(e);});}else{el.stop().animate({'opacity':1},transitionSpeed,function(e){if(callback&&typeof callback=='function')callback(e);});}
return el;},_fadeOut:function(el,callback){var transitionSpeed=this.userHasSwiped?this.swipeTransitionSpeed:this.transitionSpeed;if(this.css3Support){el.css({'transition':'opacity '+transitionSpeed+'ms','-webkit-transition-duration':transitionSpeed+'ms'}).css('top');el.css('opacity',0).off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){$(this).css({'display':'none','transition':'','transform':'','-webkit-transform':'','left':''});if(callback&&typeof callback=='function')callback(e);});}else{el.stop().animate({'opacity':0},transitionSpeed,function(e){$(this).css('display','none');if(callback&&typeof callback=='function')callback(e);});}
return el;},_slideIn:function(el,callback){var transitionSpeed=this.userHasSwiped?this.swipeTransitionSpeed:this.transitionSpeed;if(this.css3Support){el.css({'left':((this.transitionDirection<=0)?'100%':'-100%'),'transform':'','opacity':'','display':'','transition':''}).css('top');el.css({'transition':'transform '+transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition-duration':transitionSpeed+'ms'}).css('left');el.css({'transform':'translate('+((this.transitionDirection<=0)?'-100%':'100%')+', 0)'}).css('top');el.off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){$(this).css({'transition':'','transform':'','left':''});if(callback&&typeof callback=='function')callback(e);});}else{el.css({'display':'',opacity:'',left:(this.transitionDirection<=0?'100%':'-100%')}).css('top');el.stop().animate({left:'0%'},transitionSpeed,'easeInOutQuad',function(e){$(this).css({'display':'','left':''});if(callback&&typeof callback=='function')callback(e);});}},_slideOut:function(el,callback){var transitionSpeed=this.userHasSwiped?this.swipeTransitionSpeed:this.transitionSpeed;if(this.css3Support){el.css({left:'','transform':'','opacity':'','display':'','transition':''}).css('top');el.css({'transition':'transform '+transitionSpeed+'ms cubic-bezier(.45, .33, .35, 1)','-webkit-transition-duration':transitionSpeed+'ms'}).css('top');el.css({'transform':'translate('+((this.transitionDirection<=0)?'-100%':'100%')+', 0)'});el.off('transitionend webkitTransitionEnd oTransitionEnd otransitionend').one('transitionend webkitTransitionEnd oTransitionEnd otransitionend',function(e){$(this).css({'display':'none','transition':'','transform':'','left':''});if(callback&&typeof callback=='function')callback(e);});}else{el.css({left:'0%',opacity:''}).css('top');el.stop().animate({'left':(this.transitionDirection<=0?'-100%':'100%')},transitionSpeed,'easeInOutQuad',function(e){$(this).css({'display':'none','transform':'','left':''});if(callback&&typeof callback=='function')callback(e);});}
return el;},showThumbnails:function(){this.thumbsVisible=true;if(!this.thumbsDiv){if(!this.root.find('.'+this.thumbsClass).length)this.root.append('<div class="'+this.thumbsClass+'" />');this.thumbsDiv=this.root.find('.'+this.thumbsClass);}else{this._fadeIn(this.thumbsDiv);}
if(this._numOfThumbPages()>1){this.showThumbControls();}
if(this.slideNumbering)this._fadeIn(this.slideNumbering);this._updateThumbnails();if(this.slideCaption)this._fadeIn(this.slideCaption);this._updateCaptions();},hideThumbnails:function(){this.thumbsVisible=false;this._fadeOut(this.thumbsDiv);if(this.slideNumbering)this._fadeOut(this.slideNumbering);this.hideThumbControls();if(this.slideCaption)this._fadeOut(this.slideCaption);},showThumbControls:function(){if(this.thumbLeftButton&&this.thumbLeftButton.is(':hidden'))this._fadeIn(this.thumbLeftButton);if(this.thumbRightButton&&this.thumbRightButton.is(':hidden'))this._fadeIn(this.thumbRightButton);if(this.thumbPageDisplay&&this.thumbPageDisplay.is(':hidden'))this._fadeIn(this.thumbPageDisplay);},hideThumbControls:function(){if(this.thumbLeftButton)this._fadeOut(this.thumbLeftButton);if(this.thumbRightButton)this._fadeOut(this.thumbRightButton);if(this.thumbPageDisplay)this._fadeOut(this.thumbPageDisplay);},playVideo:function(){if(this.currentSlide>=0){if(this.slidesData[this.currentSlide].isVideo){try{this.slidesData[this.currentSlide].youtubePlayer.playVideo();}catch(vidNotReady){}}}},stopVideo:function(){if(this.currentSlide>=0){if(this.slidesData[this.currentSlide].isVideo){try{this.slidesData[this.currentSlide].youtubePlayer.pauseVideo();}catch(vidNotReady){}}}},_updateThumbnails:function(setThumbPage){if(this.thumbsDiv&&!this.thumbsDiv.is(':hidden')){var _this=this;var thumbsInCurrentPriority=0;var inCurrentPriority=false;this.currentThumbPage=typeof setThumbPage!='undefined'?setThumbPage:Math.floor(this.currentSlide<=0?0:this.currentSlide/this.thumbsPerPage);var startingThumb=this.currentThumbPage*this.thumbsPerPage;for(var i=0;i<this.slidesData.length;i++){var thumb=this.slidesData[i].thumb;if(this.currentPriority>=this.slidesData[i].priority){thumbsInCurrentPriority++;inCurrentPriority=true;}
if(i>=startingThumb&&i<startingThumb+this.thumbsPerPage){if(inCurrentPriority&&!thumb.inDOM){this.thumbsDiv.append(thumb.obj);thumb.inDOM=true;if(!thumb.loaded){if(thumb.src){if(!thumb.loading)this._preloadThumb(thumb);}else{thumb.loaded=true;}}else{this._fadeIn(_this.slidesData[i].thumb.obj);}}}else{if(thumb.inDOM){thumb.obj.detach();thumb.inDOM=false;}}
inCurrentPriority=false;}
if(this._numOfThumbPages()>1){this.showThumbControls();this.thumbPageDisplay.text(this.currentThumbPage+1+"/"+Math.ceil(thumbsInCurrentPriority/this.thumbsPerPage));}else{this.hideThumbControls();}
this.thumbsVisible=true;}},numOfThumbsPerPage:function(thumbNum){this.thumbsPerPage=parseInt(thumbNum);for(var i=0;i<this.slidesData.length;i++){var thumb=this.slidesData[i].thumb;if(thumb.inDOM){thumb.obj.detach();thumb.inDOM=false;}}
if(this.thumbsVisible)this._updateThumbnails();},_updateCaptions:function(){var altText=this.currentSlide>=0?this.slidesData[this.currentSlide].alt:'';if(this.slideCaption){if(altText){this.slideCaption.text(altText);if(this.thumbsVisible&&this.slideCaption.is(':hidden'))this._fadeIn(this.slideCaption);}else{this._fadeOut(this.slideCaption);}}
if(this.slideNumbering){var thumbsInCurrentPriority=0;for(var i=0;i<this.slidesData.length;i++){if(this.currentPriority>=this.slidesData[i].priority)thumbsInCurrentPriority++;}
this.slideNumbering.text(this.currentSlide+1+"/"+thumbsInCurrentPriority+" Photos");}},_nextThumbPage:function(){if(this.currentThumbPage+1<this._numOfThumbPages())return this.currentThumbPage+1
return 0;},_prevThumbPage:function(){if(this.currentThumbPage-1>=0)return this.currentThumbPage-1
return this._numOfThumbPages()-1;},_numOfThumbPages:function(){var thumbsInCurrentPriority=0;for(var i=0;i<this.slidesData.length;i++){if(this.currentPriority>=this.slidesData[i].priority)thumbsInCurrentPriority++;}
return Math.ceil(thumbsInCurrentPriority/this.thumbsPerPage);},_changeSlides:function(){if(this.currentSlide<0){this.currentSlide=0;if(!this.slidesData[this.nextSlide].inDOM){this.slidesDiv.append(this.slidesData[this.nextSlide].obj);this.slidesData[this.nextSlide].inDOM=true;}
if(this.transitionFirstSlide)this._transitionIn(0);this.slidesData[0].thumb.obj.addClass(this.thumbSelectedClass);if(this.autoChange&&this.slidesData.length>1){this._preloadSlide(this._nextSlide());this._startTimer();}}else{if(this.currentSlide!=this.nextSlide){if(!this.slidesData[this.nextSlide].inDOM){this.slidesDiv.append(this.slidesData[this.nextSlide].obj);this.slidesData[this.nextSlide].inDOM=true;}
var updateThumbs=false;var transitionType=this.userHasSwiped?this.swipeTransitionType:this.transitionType;if(this.thumbsDiv)updateThumbs=this.thumbsDiv.find('.'+this.thumbSelectedClass).length?true:false;switch(transitionType){case 2:this._transitionOut(this.currentSlide);this._transitionIn(this.nextSlide);break;default:this._transitionOut(this.currentSlide);this._transitionIn(this.nextSlide);break;}
this.currentSlide=this.nextSlide;if(updateThumbs&&this.thumbsVisible)this._updateThumbnails();this._updateCaptions();this._hidePreloader();}}},changeTo:function(slideNumber){if(this.currentSlide!=slideNumber){this.userClicked=true;this._stopTimer();this.nextSlide=slideNumber;this._preloadSlide(slideNumber);return true;}
return false;},_transitionIn:function(slideID){if(typeof this.onTransitionInStart=='function')this.onTransitionInStart(this.slidesData[slideID].obj,slideID);var _this=this;var transitionType=this.userHasSwiped?this.swipeTransitionType:this.transitionType;switch(transitionType){case 2:this._slideIn(this.slidesData[slideID].obj,function(){if(typeof _this.onTransitionInEnd=='function')_this.onTransitionInEnd(_this.slidesData[slideID].obj,slideID);_this.transitioning=_this.userClicked=_this.userHasSwiped=false;try{_this.slidesData[slideID].youtubePlayer.playVideo();}catch(vidNotReady){}});break;default:this._fadeIn(this.slidesData[slideID].obj,function(){if(typeof _this.onTransitionInEnd=='function')_this.onTransitionInEnd(_this.slidesData[slideID].obj,slideID);_this.transitioning=false;if(_this.slidesData[slideID].isVideo){try{_this.slidesData[slideID].youtubePlayer.playVideo();}catch(vidNotReady){}}});break;}
this.slidesData[slideID].thumb.obj.addClass(this.thumbSelectedClass);},_transitionOut:function(slideID){if(typeof this.onTransitionOutStart=='function')this.onTransitionOutStart(this.slidesData[slideID].obj,slideID);var _this=this;var transitionType=this.userHasSwiped?this.swipeTransitionType:this.transitionType;if(this.slidesData[slideID].isVideo){try{this.slidesData[slideID].youtubePlayer.pauseVideo();}catch(vidNotReady){}}
switch(transitionType){case 2:this._slideOut(this.slidesData[slideID].obj,function(){if(typeof _this.onTransitionOutEnd=='function')_this.onTransitionOutEnd(_this.slidesData[slideID].obj,slideID);if(!_this.slidesData[slideID].isVideo){_this.slidesData[slideID].obj.detach();_this.slidesData[slideID].inDOM=false;_this._preloadSlide(_this._nextSlide());}
_this._stopTimer();if(!_this.paused)_this._startTimer();});break;default:this._fadeOut(this.slidesData[slideID].obj,function(){if(typeof _this.onTransitionOutEnd=='function')_this.onTransitionOutEnd(_this.slidesData[slideID].obj,slideID);if(!_this.slidesData[slideID].isVideo){_this.slidesData[slideID].obj.detach();_this.slidesData[slideID].inDOM=false;_this._preloadSlide(_this._nextSlide());}
_this._stopTimer();if(!_this.paused)_this._startTimer();});break;}
this.slidesData[slideID].thumb.obj.removeClass(this.thumbSelectedClass);},_startTimer:function(){var _this=this;if(typeof($.timer)=='function'){if(this.autoChange&&!this.paused&&!this.userClicked){this.timesUp=false;this.timer=$.timer(this.autoChangeTime,function(){_this.timesUp=true;_this._stopTimer();if(_this.nextSlideLoaded&&!_this.userClicked)_this._changeSlides();});}}},_loadYoutubeAPI:function(slide){var _this=this;if(window.postMessage){$.getScript("https://www.youtube.com/iframe_api");window.onYouTubeIframeAPIReady=function(){youtubeAPILoaded=true;_this._loadYoutubeVideo(slide);}}else{usingOldYoutubeAPI=true;$.getScript("https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js",function(){youtubeAPILoaded=true;_this._loadYoutubeVideo(slide);});}},_loadYoutubeVideo:function(slide){if(!slide.loaded){this._newYoutubeVideo(slide);slide.loaded=true;}else{}
this.nextSlideLoaded=true;this.userClicked=false;this._changeSlides();},_newYoutubeVideo:function(slide){var _this=this;var autoPlay=1;var divID=slide.videoID+''+slide.thumb.id;slide.obj.append('<div id="'+divID+'"/>');if(window.postMessage){this.slidesData[slide.thumb.id].youtubePlayer=new YT.Player(divID,{height:'100%',width:'100%',videoId:slide.videoID,playerVars:{'rel':0,'showinfo':0,'autohide':1,'autoplay':autoPlay,'wmode':'opaque'}});}else{var params={allowScriptAccess:"always",wmode:"opaque"};var atts={'id':divID,'class':'youtubeVideo'};var embedString="https://www.youtube.com/v/"+slide.videoID+"?enablejsapi=1&playerapiid=ytplayer&version=3&rel=0&showinfo=0&autohide=1&autoplay="+autoPlay;swfobject.embedSWF(embedString,divID,"100%","100%","8",null,null,params,atts);window.onYouTubePlayerReady=function(playerID){this.slidesData[slide.thumb.id].youtubePlayer=document.getElementById(divID);$(swfobject.getObjectById(divID)).attr('data-video-id',slide.videoID);}}},_stopTimer:function(){if(typeof($.timer)=='function'&&this.timer)this.timer.stop();},_detectCSSFeature:function(featurename){var feature=false,domPrefixes='Webkit Moz ms O'.split(' '),elm=document.createElement('div'),featurenameCapital=null;featurename=featurename.toLowerCase();if(elm.style[featurename]){feature=true;}
if(feature===false){featurenameCapital=featurename.charAt(0).toUpperCase()+featurename.substr(1);for(var i=0;i<domPrefixes.length;i++){if(elm.style[domPrefixes[i]+featurenameCapital]!==undefined){feature=true;break;}}}
return feature;},_parseFunctionName:function(passedFunction){switch(typeof passedFunction){case'object':return null;case'string':if(passedFunction.indexOf("(")!=-1)passedFunction=passedFunction.substr(0,passedFunction.indexOf("("));if(typeof window[passedFunction]=='function')return window[passedFunction];else return null;case'function':return passedFunction;default:return null;break;}}});}(jQuery));
;;;(function($){$.widget("aslPlugins.infoBox",{options:{'parent':null,'hidden':true,'preventDefault':false,'content':'','class':'','toggleOnHover':true,'toggleOnFocus':false,'toggleOnClick':false,'position':'right','noMaxWidthWhenImage':true,'topElementConstraint':null},_create:function(){var _this=this;this.root=this.element;this.preventDefault=this.options['preventDefault'];this.currentX=this.root.offset().left;this.currentY=this.root.offset().top;this.toggleOnHover=this.options['toggleOnHover'];this.toggleOnFocus=this.options['toggleOnFocus'];this.toggleOnClick=this.options['toggleOnClick'];this.position=this.options['position'];this.parent=this.options['parent'];this.topElementConstraint=this.options['topElementConstraint'];if(this.topElementConstraint!==null&&!this.topElementConstraint.length){this.topElementConstraint=null;}
this.noMaxWidthWhenImage=this.options['noMaxWidthWhenImage'];if(this.toggleOnFocus)this.toggleOnHover=false;this.hidden=this.options['hidden']===null?(this.root.is(':hidden')):this.options['hidden'];this.visibleState=0;this.content=(this.options['content'])?(this.options['content']):($.trim(this.root.attr('title')));if(typeof this.root.data('content')!='undefined'&&typeof this.root.data('content')=='string'){if(typeof window[this.root.data('content')]!='undefined')this.content=window[this.root.data('content')];else this.content=this.root.data('content');}
if(this.root.attr('title'))this.root.attr('title','');this.cssClass=(this.options['class'])?(' '+this.options['class']):this.cssClass;this.css3Support=this._detectCSSFeature("transition");this.$infoBox=$('<div class="infoBox hidden opacityHidden'+((this.cssClass)?' '+this.cssClass:'')+'"><div class="point top"></div>'+(this.toggleOnClick?'<div class="close"><span>Close</span></div>':'')+'<div class="content">'+this.content+'</div><div class="point"></div></div>');if(!this.parent||!(this.parent instanceof jQuery)){this.parent=$('body');}
this.parent.append(this.$infoBox);if(!this.hidden){this.setPosition();this.toggleVisibility();}
if(this.toggleOnHover){this.root.on('mousemove',function(){if(_this.$infoBox.hasClass('hidden')||_this.$infoBox.hasClass('opacityHidden')){_this.toggleVisibility();}}).on('mouseenter click',function(e){if(_this.preventDefault)e.preventDefault();if(_this.$infoBox.hasClass('hidden')||_this.$infoBox.hasClass('opacityHidden')){_this.toggleVisibility();}}).on('mouseleave',function(){if(!_this.$infoBox.hasClass('hidden')){_this.toggleVisibility(false);}});}else{if(this.toggleOnFocus){this.root.on('focus',function(){_this.toggleVisibility();}).on('blur',function(){_this.toggleVisibility();});}
if(this.toggleOnClick){this.root.on('click',function(event){_this.toggleVisibility(true);});this.$infoBox.find('.close').on('click',function(){_this.toggleVisibility();});this.parent.on('click',function(event){if(!event.target.parentNode.isSameNode(_this.root[0])&&!($(event.target).closest(".infoBox").first().length&&$(event.target).closest(".infoBox").first()[0].isSameNode(_this.$infoBox[0]))){_this.toggleVisibility(false);}});}}
$(window).on('load',function(){_this.setPosition();}).resize(function(){if(!_this.root.is(':hidden')&&!_this.$infoBox.is(':hidden')){_this.setPosition();}});},_destroy:function(){this.$infoBox.remove();},setPosition:function(){if(this.$infoBox.offset().left!=this.currentX||this.$infoBox.offset().top!=this.currentY){var leftBorderWidth=parseInt(this.$infoBox.css('border-left-width'));var rightBorderWidth=parseInt(this.$infoBox.css('border-right-width'));var topBorderWidth=parseInt(this.$infoBox.css('border-top-width'));var windowWidth=$(window).width();var topOffset=this.root.offset().top-this.$infoBox.height()-(parseInt($('.point').css('height')))-topBorderWidth;var leftOffset=0;var scrollOffset=0;if(this.parent.is('body')){if(this.topElementConstraint){scrollOffset+=this.topElementConstraint.offset().top+this.topElementConstraint.height();}else{scrollOffset=$(window).scrollTop()+this.$infoBox.height();}}else{scrollOffset=this.parent.scrollTop();}
this.$infoBox.css({'left':'0px'}).css('right');var infoBoxWidth=this.$infoBox.width()+leftBorderWidth+rightBorderWidth;if(this.noMaxWidthWhenImage&&this.$infoBox.find('img').length)this.$infoBox.css('max-width','100%');if(topOffset<scrollOffset){this.$infoBox.addClass('positionAtBottom');topOffset=this.root.offset().top+this.root[0].getBoundingClientRect().height+(parseInt($('.point').css('height')));}else{this.$infoBox.removeClass('positionAtBottom');}
switch(this.position){case'right':leftOffset=this.root.offset().left+this.root[0].getBoundingClientRect().width
-(infoBoxWidth/2)-(parseInt($('.point').css('width'))/4);break;case'left':leftOffset=this.root.offset().left+(parseInt($('.point').css('width'))/4)
-(infoBoxWidth/2);break;default:leftOffset=this.root.offset().left+(this.root[0].getBoundingClientRect().width/2)
-(infoBoxWidth/2);break;}
leftOffset=Math.floor(leftOffset);if(leftOffset<0){this.$infoBox.find('.point').css('left',leftOffset);leftOffset=0;}else{if(leftOffset+infoBoxWidth>windowWidth){this.$infoBox.find('.point').css('left',leftOffset+infoBoxWidth-windowWidth);if(windowWidth-infoBoxWidth<0)leftOffset=0;else leftOffset=windowWidth-infoBoxWidth;}else{this.$infoBox.find('.point').css('left','');}}
this.$infoBox.css({'top':topOffset+'px','left':leftOffset+'px'}).css('left');this.currentX=this.root.offset().left;this.currentY=this.root.offset().top;}},toggleVisibility:function(show){var _this=this;if(typeof show=="undefined"){if((this.visibleState==-1||this.visibleState==0)&&this.$infoBox.hasClass('hidden')||this.$infoBox.hasClass('opacityHidden')){this.visibleState=1;this.$infoBox.removeClass('hidden').css('left');var visibleBoxes=0;$('.infoBox').each(function(){if($(this).is(':visible'))visibleBoxes++;});this.$infoBox.removeClass('opacityHidden').css('z-index',(parseInt(this.$infoBox.css('z-index'))+visibleBoxes));}else{if(this.visibleState==1||this.visibleState==0){this.$infoBox.removeClass('opacityHidden').css('left');if(this.css3Support){this.$infoBox.off('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',function(){_this.$infoBox.addClass('hidden').css('z-index','');_this.visibleState=-1;});}else{this.$infoBox.addClass('hidden').css('z-index','');this.visibleState=-1;}
this.$infoBox.addClass('opacityHidden').css('left');}}}else{if(show&&(this.visibleState==-1||this.visibleState==0)){this.visibleState=1;this.$infoBox.removeClass('hidden').css('left');var visibleBoxes=0;$('.infoBox').each(function(){if($(this).is(':visible'))visibleBoxes++;});this.$infoBox.removeClass('opacityHidden').css('z-index',(parseInt(this.$infoBox.css('z-index'))+visibleBoxes));}else{if(!show&&(this.visibleState==1||this.visibleState==0)){this.visibleState=1;this.$infoBox.removeClass('opacityHidden').css('left');if(this.css3Support){this.$infoBox.off('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend');this.$infoBox.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',function(){_this.$infoBox.addClass('hidden').css('z-index','');_this.visibleState=-1;});}else{this.$infoBox.addClass('hidden').css('z-index','');this.visibleState=-1;}
this.$infoBox.addClass('opacityHidden');}}}
this.setPosition();},setContent:function(passedContent){if(passedContent!=this.content){this.$infoBox.find('.content').empty().append(passedContent);}},getInfoBox:function(){return this.$infoBox;},_detectCSSFeature:function(featurename){var feature=false,domPrefixes='Webkit Moz ms O'.split(' '),elm=document.createElement('div'),featurenameCapital=null;featurename=featurename.toLowerCase();if(elm.style[featurename]){feature=true;}
if(feature===false){featurenameCapital=featurename.charAt(0).toUpperCase()+featurename.substr(1);for(var i=0;i<domPrefixes.length;i++){if(elm.style[domPrefixes[i]+featurenameCapital]!==undefined){feature=true;break;}}}
return feature;}});}(jQuery));
;;;(function($){var regExpDefaults={'email':/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,'dob-dd-mm-yyyy':/(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)\d{2})/,'dob-mm-dd-yyyy':/^(?:(?:(?:0[13578]|1[02])(\/)31)\1|(?:(?:0[1,3-9]|1[0-2])(\/)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:02(\/)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/)(?:0[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/,'postcode':/^[a-z]{1,2}[0-9]{1,2}[a-z]? ?[0-9][a-z]{2}$/i,'phonenumber':/^[0-9+\(\)#\.\s\/ext-]+$/,'zip':/^[0-9]{5}([- \\]?[0-9]{4})?$/,'paymentcard':/^[0-9]{13,16}$/,'time':/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/,'url':new RegExp("^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$","i")};regExpDefaults['dd-mm-yyyy']=regExpDefaults['dob-dd-mm-yyyy'];regExpDefaults['mm-dd-yyyy']=regExpDefaults['dob-mm-dd-yyyy'];$.widget("aslPlugins.validate",{options:{'hidden':true,'class':'','validContent':'','invalidContent':'','validClass':'valid','invalidClass':'invalid','validateOnBlur':true,'validateOnChange':true,'position':'right','RegExp':'','inputGroup':'','inputSeparator':'','lowestAge':'','lowestYear':1900,'validDates':'','defaultValue':'','customValidation':'','validateWhenHidden':false,'dateOffset':'','supressOutput':false,'validationActive':true},_create:function(){var _this=this;this.root=this.element;this.hidden=(this.root.is(':hidden'))?true:this.options['hidden'];this.regExName='';this.defaultValue=this.options['defaultValue'];if(this.options['RegExp']instanceof RegExp){this.regEx=this.options['RegExp'];}else{if(regExpDefaults[this.options['RegExp']]){this.regEx=regExpDefaults[this.options['RegExp']];this.regExName=this.options['RegExp'];}else{if($.trim(this.options['RegExp']))this.regEx=new RegExp(this.options['RegExp']);else this.regEx=null;}}
this.inputSeparator=String(this.options['inputSeparator']);this.lowestAge=String(this.options['lowestAge']).toLowerCase();this.lowestYear=this.options['lowestYear'];this.validDates=this.options['validDates'];this.currentX=this.root.offset().left;this.currentY=this.root.offset().top;this.validateOnBlur=this.options['validateOnBlur'];this.validateOnChange=this.options['validateOnChange'];this.dateOffset=this.options['dateOffset'];this.supressOutput=this.options['supressOutput'];this.validationActive=this.options['validationActive'];this.position=this.options['position'];this.validContent=(this.options['validContent'])?this.options['validContent']:'';this.invalidContent=(this.options['invalidContent'])?this.options['invalidContent']:'';this.cssClass=(this.options['class'])?(' '+this.options['class']):this.cssClass;this.validClass=(this.options['validClass'])?(' '+this.options['validClass']):this.validClass;this.invalidClass=(this.options['invalidClass'])?(' '+this.options['invalidClass']):this.invalidClass;this.errorCode=-1;this.inputGroupClass=String(this.options['inputGroup']);if(this.inputGroupClass)this.root.addClass(this.inputGroupClass);this.$inputGroup=false;this.inputValue=$.trim(this.root.val());this.css3Support=this._detectCSSFeature("transition");this.$output=$('<div class="validation'+((this.hidden)?' hidden opacityHidden':'')+((this.cssClass)?this.cssClass:'')+'"></div>');if(this.root.parent().is('label')){this.root.parent().after(this.$output);}else{if(this.root.attr('id')!=this.root.next().attr('for')){this.root.after(this.$output);}else this.root.next().after(this.$output);}
this.customValidation=this.options['customValidation'];this.validateHidden=(this.options['validateWhenHidden'])?true:false;if(this.customValidation){if(typeof(this.customValidation)!=='function'){var functionName=(this.customValidation.indexOf("(")==-1)?this.customValidation:this.customValidation.substr(0,this.customValidation.indexOf("("));this.customValidation=window[functionName];}}
this.root.addClass('validateAttached');if(this.validateOnBlur){this.root.on('blur',function(){_this.validateInput();});}
this.root.on('focus',function(){if(_this.isDefaultValue(_this.root))_this.root.val("");});if(this.validateOnChange){if(this.root.prop('type')=='text'){this.root.on('propertychange change keyup paste input',function(){if(_this.root.val()!="")_this.root.validate('validateInput');});}else{this.root.on('change',function(){_this.root.validate('validateInput');});}}},destroy:function(){this.$output.remove();this.root.removeClass('validateAttached');$.Widget.prototype.destroy.call(this);},isDefaultValue:function(){if(String(this.root.val()).toLowerCase()==this.defaultValue.toLowerCase())return true;return false;},validateInput:function(supressOutput){var _this=this;if(!this.customValidation){if(this.inputGroupClass){var groupValues=[];var hasDefaultValue=false;if(typeof(this.$inputGroup)!='object'){this.$inputGroup=$('.'+this.inputGroupClass);}
this.$inputGroup.each(function(){var $currentInput=$(this);var currentVal=$.trim($currentInput.val());if($currentInput.is(':radio')||$currentInput.is(':checkbox'))currentVal=$currentInput.prop('checked');groupValues.push(currentVal);if($(this).validate('isDefaultValue'))hasDefaultValue=true;});if(!hasDefaultValue){if(this.root.is(this.$inputGroup.last())){this.errorCode=0;if(!this.root.is(':radio')&&!this.root.is(':checkbox')){for(var i=0;i<groupValues.length;i++){if(!groupValues[i]&&this.errorCode!=1)this.errorCode=1;}}else{var allUnchecked=true;for(var i=0;i<groupValues.length;i++){if(groupValues[i])allUnchecked=false;}
if(allUnchecked)this.errorCode=1;}
if(this.errorCode!=1){if(this.regEx){switch(this.regExName){case'dob-dd-mm-yyyy':case'dob-mm-dd-yyyy':case'dd-mm-yyyy':case'mm-dd-yyyy':var currentDate=this.dateOffset?this.dateOffset:new Date();var inputtedDate=(this.regExName.indexOf('mm-dd-')>=0)?new Date(groupValues[2]+'/'+groupValues[0]+'/'+groupValues[1]):new Date(groupValues[2]+'/'+groupValues[1]+'/'+groupValues[0]);var dayOfMonth=parseInt(groupValues[(this.regExName.indexOf('mm-dd-')>=0)?1:0],10);if(dayOfMonth!=inputtedDate.getDate()){this.errorCode=1;}
else if(groupValues.length>3&&groupValues[3]){this.errorCode=1;}
else{var minusMilliseconds=0;groupValues=groupValues.join(this.inputSeparator);if(this.validDates){var onExactDate=false;var notOnDate=true;var outsideRange=false;for(var i=0;i<this.validDates.length;i++){if(this.validDates[i].date instanceof Date){if(this.validDates[i].range!='undefined'){switch(this.validDates[i].range){case'<':if(inputtedDate>this.validDates[i].date)outsideRange=true;break;case'<=':if(inputtedDate>this.validDates[i].date){if(inputtedDate.getTime()!==this.validDates[i].date.getTime())outsideRange=true;else onExactDate=true;}
break;case'>':if(inputtedDate<this.validDates[i].date)outsideRange=true;break;case'>=':if(inputtedDate<this.validDates[i].date){if(inputtedDate.getTime()!==this.validDates[i].date.getTime())outsideRange=true;else onExactDate=true;}
break;case'!=':if(inputtedDate.getTime()===this.validDates[i].date.getTime())notOnDate=false;break;default:if(inputtedDate.getTime()!==this.validDates[i].date.getTime())outsideRange=true;else onExactDate=true;break;}}else{if(inputtedDate.getTime()!==this.validDates[i].date.getTime())outsideRange=true;else onExactDate=true;}}}
if(!onExactDate&&outsideRange&&notOnDate)this.errorCode=4;}
if(this.lowestAge){var yPos=this.lowestAge.lastIndexOf('y');var dPos=this.lowestAge.lastIndexOf('d');var minusYears=0;var minusDays=0;if(yPos!=-1)minusYears=parseInt(this.lowestAge.substring(0,yPos));if(dPos!=-1)minusDays=parseInt(this.lowestAge.substring(yPos+1,dPos));minusMilliseconds+=minusYears*31536000000;minusMilliseconds+=(minusDays+Math.floor(minusYears/4))*86400000;}
if(inputtedDate.getFullYear()<this.lowestYear){this.errorCode=3;break;}
if(this.regExName=='dob-dd-mm-yyyy'||this.regExName=='dob-mm-dd-yyyy'||this.lowestAge){if(currentDate.getTime()-minusMilliseconds>=inputtedDate.getTime()){if(this.regEx.test(groupValues))this.errorCode=0;else this.errorCode=2;}else{this.errorCode=3;}}}
break;default:groupValues=groupValues.join(this.inputSeparator);if(this.regEx.test(groupValues))this.errorCode=0;else this.errorCode=2;break;}}else{this.errorCode=0;}}
if(!supressOutput&&!this.supressOutput)this.displayValidation();}else{this.$inputGroup.last().validate('validateInput',supressOutput);}}else{if(groupValues.length>3&&groupValues[3]&&(this.regExName=='dd-mm-yyyy'||this.regExName=='mm-dd-yyyy')){this.errorCode=0;}
else{this.errorCode=6;}}}else{this.inputValue=$.trim(this.root.val());if(this.root.is(':radio')||this.root.is(':checkbox'))this.inputValue=this.root.prop('checked');if(!this.inputValue){this.errorCode=1;}else{if(this.regEx){if(this.regEx.test(this.inputValue))this.errorCode=0;else this.errorCode=2;}else if(typeof this.inputValue=='string'){this.errorCode=this.inputValue.indexOf('@')>=0?7:0;}}
if(!supressOutput&&!this.supressOutput)this.displayValidation();}}else{if(this.inputGroupClass){if(typeof(this.$inputGroup)!='object'){this.$inputGroup=$('.'+this.inputGroupClass);}
if(this.root.is(this.$inputGroup.last())){if(this.customValidation(this.root))this.errorCode=0;else this.errorCode=5;if(!this.supressOutput)this.displayValidation();}
else{this.$inputGroup.last().validate('validateInput',supressOutput);}}
else{if(this.customValidation(this.root))this.errorCode=0;else this.errorCode=5;if(!this.supressOutput)this.displayValidation();}}},isEverythingValid:function(limitAreaTo){var allValid=true;var $validateSelection=$('.validateAttached');if(typeof limitAreaTo!='undefined'){if(limitAreaTo instanceof jQuery){$validateSelection=limitAreaTo.find('.validateAttached');}else{if(typeof limitAreaTo=='string')$validateSelection=$(limitAreaTo+'.validateAttached');}}
$validateSelection.each(function(){var $this=$(this);if(!$this.is(':hidden')||$this.validate('validateWhenHidden')){$this.validate('validateInput',true);var $inputGroup=$this.validate('getInputGroup');if($inputGroup){var $lastOfGroup=$inputGroup.last();var $firstOfGroup=$inputGroup.first();if($lastOfGroup.validate('getErrorCode')){$lastOfGroup.validate('displayValidation');if(allValid){if($lastOfGroup.offset().top<$(document).scrollTop()){$('html, body').animate({scrollTop:($firstOfGroup.offset().top-40)},function(){if(!$firstOfGroup.is(':radio'))$firstOfGroup.focus();});}else{if(!$firstOfGroup.is(':radio'))$firstOfGroup.focus();}
allValid=false;}}}else{if($this.validate('getErrorCode')){$this.validate('displayValidation');if(allValid){if($this.offset().top<$(document).scrollTop()){$('html,body').animate({scrollTop:($this.offset().top-40)},function(){if(!$this.is(':radio'))$this.focus();});}else{if(!$this.is(':radio'))$this.focus();}
allValid=false;}}}}});return allValid;},validateWhenHidden:function(){return this.validateHidden;},toggleValidation:function(on){if(this.validationActive=on)this.root.addClass('validateAttached');else this.root.removeClass('validateAttached');this.$output.addClass('opacityHidden').addClass('hidden');},displayValidation:function(){if(!this.errorCode)this.$output.addClass(this.validClass).removeClass(this.invalidClass);else this.$output.addClass(this.invalidClass).removeClass(this.validClass);if(!this.root.is(':hidden')&&!this.validateHidden){if(this.$output.hasClass('hidden')||this.$output.hasClass('opacityHidden')){this.$output.removeClass('hidden').css('left');this.$output.removeClass('opacityHidden');}}},setRegExp:function(regEx){if(regExpDefaults[regEx]){this.regEx=regExpDefaults[regEx];this.regExName=this.options['RegExp'];}else{if($.trim(regEx))this.regEx=new RegExp(regEx);else this.regEx=null;}},getRegExp:function(regEx){return this.regEx;},getErrorCode:function(){return this.errorCode;},getInputGroup:function(){return this.$inputGroup;},setContent:function(passedContent){this.$output.find('.validation').empty().append(passedContent);},resetValidation:function(){this.errorCode=-1;},_detectCSSFeature:function(featurename){var feature=false,domPrefixes='Webkit Moz ms O'.split(' '),elm=document.createElement('div'),featurenameCapital=null;featurename=featurename.toLowerCase();if(elm.style[featurename]){feature=true;}
if(feature===false){featurenameCapital=featurename.charAt(0).toUpperCase()+featurename.substr(1);for(var i=0;i<domPrefixes.length;i++){if(elm.style[domPrefixes[i]+featurenameCapital]!==undefined){feature=true;break;}}}
return feature;}});}(jQuery));
;;;(function($){var defaultStyling={'#popupBoxMask':{'z-index':21,'position':'fixed','top':0,'left':0,'width':'100%','height':'100%','opacity':1,'background':'rgba(0,0,0,0.7)','-webkit-transition-property':'opacity','-webkit-transition-duration':'.3s','transition':'opacity .3s'},'.popupBox':{'z-index':22,'position':'absolute','opacity':1,'margin-top':'50px','background':'#fff','border':'1px solid #ccc','box-shadow':'0 0 4px #000','-webkit-transition-property':'opacity','-webkit-transition-duration':'.4s','transition':'opacity .4s'},'.popupBox.hidden, #popupBoxMask.hidden':{'display':'none'},'.popupBox.opacityHidden, #popupBoxMask.opacityHidden':{'opacity':'0'},'.popupBox .closeButton':{'float':'right','display':'block','padding':'13px 25px','box-shadow':'inset 2px -1px 3px rgba(0,0,0,0.15)','border-radius':'0 0 0 8px','text-transform':'uppercase'},'.popupBox .contentHolder':{'clear':'both'},'.popupBox .contentHolder *':{'animation-duration':'0.01s','-ms-animation-duration':'0.01s','-moz-animation-duration':'0.01s','-webkit-animation-duration':'0.01s','animation-name':'newContentAdded','-ms-animation-name':'newContentAdded','-moz-animation-name':'newContentAdded','-webkit-animation-name':'newContentAdded'},'@keyframes newContentAdded':{'from':{'outline-color':'#fff'},'to':{'outline-color':'#000'}},'@-moz-keyframes newContentAdded':{'from':{'outline-color':'#fff'},'to':{'outline-color':'#000'}},'@-webkit-keyframes newContentAdded':{'from':{'outline-color':'#fff'},'to':{'outline-color':'#000'}},'@-ms-keyframes newContentAdded':{'from':{'outline-color':'#fff'},'to':{'outline-color':'#000'}}};$.widget("aslPlugins.popupBox",{options:{'addDefaultStyling':true,'showMask':true,'fadeIn':true,'popupBox':'','content':'','class':'','id':'','position':'centred','onCreate':'','onClose':null,'onOpen':null,'resizeOnContentChange':true},_create:function(){var _this=this;this.initialScrollValue=$(window).scrollTop();this.root=this.element;this.position=this.options['position'];this.fade=this.options['fadeIn'];this.content=(this.options['content'])?(this.options['content']):($.trim(this.root.attr('content')));this.contentHeight=0;this.id=this.options['id'];this.cssClass=(this.options['class'])?(this.options['class']):this.cssClass;this.css3Support=this._detectCSSFeature("transition");this.addDefaultStyling=this.options['addDefaultStyling'];this.onCreate=this.options['onCreate'];this.onClose=this.options['onClose'];this.onOpen=this.options['onOpen'];this.resizeOnContentChange=this.options['resizeOnContentChange'];if(this.addDefaultStyling&&!jQuery.contains(document.documentElement,$('#popupBoxStyling')[0])){var styles='<style id="popupBoxStyling" type="text/css">';for(domObject in defaultStyling){styles+=domObject+'{';for(attribute in defaultStyling[domObject]){if(typeof defaultStyling[domObject][attribute]=='object'){styles+=attribute+'{';for(subAttribute in defaultStyling[domObject][attribute]){styles+=subAttribute+':'+defaultStyling[domObject][attribute][subAttribute]+';';}
styles+='}';}else styles+=attribute+':'+defaultStyling[domObject][attribute]+';';}
styles+='}';}
styles+='</style>';$('head').prepend(styles);}
this.showMask=this.options['showMask'];this.mask=null;if(this.showMask){this.mask=$('body').find('#popupBoxMask');if(!this.mask.length){this.mask=$('<div id="popupBoxMask"'+((this.fade)?' class="hidden opacityHidden"':'')+'/>');$('body').append(this.mask);}}
if(this.options['popupBox']){if(this.options['popupBox']instanceof jQuery){this.popup=this.options['popupBox'];}else{this.popup=$(this.options['popupBox']);}
if(this.popup){this.popup.addClass('popupBox'+(this.fade?' hidden opacityHidden':'')+(this.cssClass?' '+this.cssClass:''));}
if(this.content){if(this.id){this.popup.attr('id',this.id);}
this.popup.addClass('popupBox'+(this.fade?' hidden opacityHidden':'')+(this.cssClass?' '+this.cssClass:''));this.popup.append('<a href="#" class="closeButton"><span>Close</span></a><div class="contentHolder">'+this.content+'</div></div>');}}else{this.popup=$('<div '+(this.id?'id="'+this.id+'"':'')+' class="popupBox'+((this.fade)?' hidden opacityHidden':'')+((this.cssClass)?' '+this.cssClass:'')+'"><a href="#" class="closeButton"><span>Close</span></a><div class="contentHolder">'+this.content+'</div></div>');}
if(!jQuery.contains(document.documentElement,this.popup[0]))$('body').append(this.popup);this.contentHolder=this.popup.find('.contentHolder');this.closeButton=this.popup.find('.closeButton');if(!this.closeButton.length)this.closeButton=null;if(this.closeButton)this.closeButton.click(function(e){e.preventDefault();_this.close();});if(this.showMask)this.mask.click(function(e){e.preventDefault();_this.close();});$(window).resize(function(){if(!_this.popup.is(':hidden'))_this.setPosition(true,false);});this.contentHolder.bind('animationstart MSAnimationStart webkitAnimationStart onreadystatechange',function(e){if(e.originalEvent.animationName=="newContentAdded")_this.onContentChange();});if(typeof this.onCreate=='function'){this.onCreate(this.contentHolder);}
this.root.addClass('popupBoxAttached');},_init:function(){this.open();this.setPosition();},_destroy:function(){this.contentHolder.unbind('animationstart MSAnimationStart webkitAnimationStart onreadystatechange');this.mask.unbind('click');this.popup.remove();},open:function(){this.initialScrollValue=$(window).scrollTop();this.toggleVisibility(this.popup);if(this.showMask)this.toggleVisibility(this.mask);if(typeof this.onOpen=='function')this.onOpen(this.root);},close:function(){var _this=this;if(!this.popup.hasClass('hidden')&&!this.popup.hasClass('opacityHidden')){this.toggleVisibility(this.popup,function(){$(window).scrollTop(_this.initialScrollValue);});if(this.showMask)this.toggleVisibility(this.mask);if(typeof this.onClose=='function')this.onClose(this.root);}},onContentChange:function(){if(this.resizeOnContentChange){if(this.contentHeight!=this.contentHolder.height()&&this.contentHeight<$(window).height())this.setPosition();}},rePosition:function(){if(this.contentHeight!=this.contentHolder.height()&&this.contentHeight<$(window).height())this.setPosition();},setPosition:function(X,Y){var outerBorderWidth=parseInt(this.popup.css('borderLeftWidth'),10)+parseInt(this.popup.css('borderRightWidth'),10);var windowWidth=$(window).width();var windowHeight=$(window).height();if(this.contentHolder.length){switch(this.position){case"centred":default:var widthDiff=windowWidth-this.popup.width();var heightDiff=windowHeight-this.popup.height()+parseInt(this.popup.css('margin-top'),10);if(widthDiff<0)widthDiff=0;if(heightDiff<0)heightDiff=0;if(typeof X=='undefined'||typeof X=='boolean'&&X==true)this.popup.css('left',Math.floor(widthDiff/2)+'px');else this.popup.css('left',X);if(typeof Y=='undefined'||typeof Y=='boolean'&&Y==true){this.popup.css('top',Math.floor(heightDiff/2)+$(window).scrollTop()+'px');}
else this.popup.css('top',Y)
break;}}
this.contentHeight=this.contentHolder.height();},toggleVisibility:function(element,onFadeOutComplete){var _this=this;if(element.hasClass('hidden')||element.hasClass('opacityHidden')){element.removeClass('hidden').css('left');element.removeClass('opacityHidden');}else{element.addClass('opacityHidden');if(this.css3Support){element.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',function(){if(element.hasClass('opacityHidden')){element.addClass('hidden');if(typeof onFadeOutComplete!='undefined'&&typeof onFadeOutComplete=='function')onFadeOutComplete();}});}else{element.addClass('hidden');if(typeof onFadeOutComplete!='undefined'&&typeof onFadeOutComplete=='function')onFadeOutComplete();}}},setContent:function(passedContent){this.contentHolder.empty().append(passedContent);},_detectCSSFeature:function(featurename){var feature=false,domPrefixes='Webkit Moz ms O'.split(' '),elm=document.createElement('div'),featurenameCapital=null;featurename=featurename.toLowerCase();if(elm.style[featurename]){feature=true;}
if(feature===false){featurenameCapital=featurename.charAt(0).toUpperCase()+featurename.substr(1);for(var i=0;i<domPrefixes.length;i++){if(elm.style[domPrefixes[i]+featurenameCapital]!==undefined){feature=true;break;}}}
return feature;}});}(jQuery));
;;;(function(factory){if(typeof define==='function'&&define.amd&&define.amd.jQuery){define(['jquery'],factory);}else if(typeof module!=='undefined'&&module.exports){factory(require("jquery"));}else{factory(jQuery);}}(function($){"use strict";var VERSION="1.6.18",LEFT="left",RIGHT="right",UP="up",DOWN="down",IN="in",OUT="out",NONE="none",AUTO="auto",SWIPE="swipe",PINCH="pinch",TAP="tap",DOUBLE_TAP="doubletap",LONG_TAP="longtap",HOLD="hold",HORIZONTAL="horizontal",VERTICAL="vertical",ALL_FINGERS="all",DOUBLE_TAP_THRESHOLD=10,PHASE_START="start",PHASE_MOVE="move",PHASE_END="end",PHASE_CANCEL="cancel",SUPPORTS_TOUCH='ontouchstart' in window,SUPPORTS_POINTER_IE10=window.navigator.msPointerEnabled&&!window.PointerEvent&&!SUPPORTS_TOUCH,SUPPORTS_POINTER=(window.PointerEvent||window.navigator.msPointerEnabled)&&!SUPPORTS_TOUCH,PLUGIN_NS='TouchSwipe';var defaults={fingers:1,threshold:75,cancelThreshold:null,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,hold:null,triggerOnTouchEnd:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:".noSwipe",preventDefaultEvents:true};$.fn.swipe=function(method){var $this=$(this),plugin=$this.data(PLUGIN_NS);if(plugin&&typeof method==='string'){if(plugin[method]){return plugin[method].apply(plugin,Array.prototype.slice.call(arguments,1));}else{$.error('Method '+method+' does not exist on jQuery.swipe');}}
else if(plugin&&typeof method==='object'){plugin['option'].apply(plugin,arguments);}
else if(!plugin&&(typeof method==='object'||!method)){return init.apply(this,arguments);}
return $this;};$.fn.swipe.version=VERSION;$.fn.swipe.defaults=defaults;$.fn.swipe.phases={PHASE_START:PHASE_START,PHASE_MOVE:PHASE_MOVE,PHASE_END:PHASE_END,PHASE_CANCEL:PHASE_CANCEL};$.fn.swipe.directions={LEFT:LEFT,RIGHT:RIGHT,UP:UP,DOWN:DOWN,IN:IN,OUT:OUT};$.fn.swipe.pageScroll={NONE:NONE,HORIZONTAL:HORIZONTAL,VERTICAL:VERTICAL,AUTO:AUTO};$.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,FOUR:4,FIVE:5,ALL:ALL_FINGERS};function init(options){if(options&&(options.allowPageScroll===undefined&&(options.swipe!==undefined||options.swipeStatus!==undefined))){options.allowPageScroll=NONE;}
if(options.click!==undefined&&options.tap===undefined){options.tap=options.click;}
if(!options){options={};}
options=$.extend({},$.fn.swipe.defaults,options);return this.each(function(){var $this=$(this);var plugin=$this.data(PLUGIN_NS);if(!plugin){plugin=new TouchSwipe(this,options);$this.data(PLUGIN_NS,plugin);}});}
function TouchSwipe(element,options){var options=$.extend({},options);var useTouchEvents=(SUPPORTS_TOUCH||SUPPORTS_POINTER||!options.fallbackToMouseEvents),START_EV=useTouchEvents?(SUPPORTS_POINTER?(SUPPORTS_POINTER_IE10?'MSPointerDown':'pointerdown'):'touchstart'):'mousedown',MOVE_EV=useTouchEvents?(SUPPORTS_POINTER?(SUPPORTS_POINTER_IE10?'MSPointerMove':'pointermove'):'touchmove'):'mousemove',END_EV=useTouchEvents?(SUPPORTS_POINTER?(SUPPORTS_POINTER_IE10?'MSPointerUp':'pointerup'):'touchend'):'mouseup',LEAVE_EV=useTouchEvents?(SUPPORTS_POINTER?'mouseleave':null):'mouseleave',CANCEL_EV=(SUPPORTS_POINTER?(SUPPORTS_POINTER_IE10?'MSPointerCancel':'pointercancel'):'touchcancel');var distance=0,direction=null,currentDirection=null,duration=0,startTouchesDistance=0,endTouchesDistance=0,pinchZoom=1,pinchDistance=0,pinchDirection=0,maximumsMap=null;var $element=$(element);var phase="start";var fingerCount=0;var fingerData={};var startTime=0,endTime=0,previousTouchEndTime=0,fingerCountAtRelease=0,doubleTapStartTime=0;var singleTapTimeout=null,holdTimeout=null;try{$element.on(START_EV,touchStart);$element.on(CANCEL_EV,touchCancel);}catch(e){$.error('events not supported '+START_EV+','+CANCEL_EV+' on jQuery.swipe');}
this.enable=function(){this.disable();$element.on(START_EV,touchStart);$element.on(CANCEL_EV,touchCancel);return $element;};this.disable=function(){removeListeners();return $element;};this.destroy=function(){removeListeners();$element.data(PLUGIN_NS,null);$element=null;};this.option=function(property,value){if(typeof property==='object'){options=$.extend(options,property);}else if(options[property]!==undefined){if(value===undefined){return options[property];}else{options[property]=value;}}else if(!property){return options;}else{$.error('Option '+property+' does not exist on jQuery.swipe.options');}
return null;}
function touchStart(jqEvent){if(getTouchInProgress()){return;}
if($(jqEvent.target).closest(options.excludedElements,$element).length>0){return;}
var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent;if(event.pointerType&&event.pointerType=="mouse"&&options.fallbackToMouseEvents==false){return;};var ret,touches=event.touches,evt=touches?touches[0]:event;phase=PHASE_START;if(touches){fingerCount=touches.length;}
else if(options.preventDefaultEvents!==false){jqEvent.preventDefault();}
distance=0;direction=null;currentDirection=null;pinchDirection=null;duration=0;startTouchesDistance=0;endTouchesDistance=0;pinchZoom=1;pinchDistance=0;maximumsMap=createMaximumsData();cancelMultiFingerRelease();createFingerData(0,evt);if(!touches||(fingerCount===options.fingers||options.fingers===ALL_FINGERS)||hasPinches()){startTime=getTimeStamp();if(fingerCount==2){createFingerData(1,touches[1]);startTouchesDistance=endTouchesDistance=calculateTouchesDistance(fingerData[0].start,fingerData[1].start);}
if(options.swipeStatus||options.pinchStatus){ret=triggerHandler(event,phase);}}else{ret=false;}
if(ret===false){phase=PHASE_CANCEL;triggerHandler(event,phase);return ret;}else{if(options.hold){holdTimeout=setTimeout($.proxy(function(){$element.trigger('hold',[event.target]);if(options.hold){ret=options.hold.call($element,event,event.target);}},this),options.longTapThreshold);}
setTouchInProgress(true);}
return null;};function touchMove(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent;if(phase===PHASE_END||phase===PHASE_CANCEL||inMultiFingerRelease())
return;var ret,touches=event.touches,evt=touches?touches[0]:event;var currentFinger=updateFingerData(evt);endTime=getTimeStamp();if(touches){fingerCount=touches.length;}
if(options.hold){clearTimeout(holdTimeout);}
phase=PHASE_MOVE;if(fingerCount==2){if(startTouchesDistance==0){createFingerData(1,touches[1]);startTouchesDistance=endTouchesDistance=calculateTouchesDistance(fingerData[0].start,fingerData[1].start);}else{updateFingerData(touches[1]);endTouchesDistance=calculateTouchesDistance(fingerData[0].end,fingerData[1].end);pinchDirection=calculatePinchDirection(fingerData[0].end,fingerData[1].end);}
pinchZoom=calculatePinchZoom(startTouchesDistance,endTouchesDistance);pinchDistance=Math.abs(startTouchesDistance-endTouchesDistance);}
if((fingerCount===options.fingers||options.fingers===ALL_FINGERS)||!touches||hasPinches()){direction=calculateDirection(currentFinger.start,currentFinger.end);currentDirection=calculateDirection(currentFinger.last,currentFinger.end);validateDefaultEvent(jqEvent,currentDirection);distance=calculateDistance(currentFinger.start,currentFinger.end);duration=calculateDuration();setMaxDistance(direction,distance);ret=triggerHandler(event,phase);if(!options.triggerOnTouchEnd||options.triggerOnTouchLeave){var inBounds=true;if(options.triggerOnTouchLeave){var bounds=getbounds(this);inBounds=isInBounds(currentFinger.end,bounds);}
if(!options.triggerOnTouchEnd&&inBounds){phase=getNextPhase(PHASE_MOVE);}
else if(options.triggerOnTouchLeave&&!inBounds){phase=getNextPhase(PHASE_END);}
if(phase==PHASE_CANCEL||phase==PHASE_END){triggerHandler(event,phase);}}}else{phase=PHASE_CANCEL;triggerHandler(event,phase);}
if(ret===false){phase=PHASE_CANCEL;triggerHandler(event,phase);}}
function touchEnd(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent,touches=event.touches;if(touches){if(touches.length&&!inMultiFingerRelease()){startMultiFingerRelease(event);return true;}else if(touches.length&&inMultiFingerRelease()){return true;}}
if(inMultiFingerRelease()){fingerCount=fingerCountAtRelease;}
endTime=getTimeStamp();duration=calculateDuration();if(didSwipeBackToCancel()||!validateSwipeDistance()){phase=PHASE_CANCEL;triggerHandler(event,phase);}else if(options.triggerOnTouchEnd||(options.triggerOnTouchEnd===false&&phase===PHASE_MOVE)){if(options.preventDefaultEvents!==false&&jqEvent.cancelable!==false){jqEvent.preventDefault();}
phase=PHASE_END;triggerHandler(event,phase);}
else if(!options.triggerOnTouchEnd&&hasTap()){phase=PHASE_END;triggerHandlerForGesture(event,phase,TAP);}else if(phase===PHASE_MOVE){phase=PHASE_CANCEL;triggerHandler(event,phase);}
setTouchInProgress(false);return null;}
function touchCancel(){fingerCount=0;endTime=0;startTime=0;startTouchesDistance=0;endTouchesDistance=0;pinchZoom=1;cancelMultiFingerRelease();setTouchInProgress(false);}
function touchLeave(jqEvent){var event=jqEvent.originalEvent?jqEvent.originalEvent:jqEvent;if(options.triggerOnTouchLeave){phase=getNextPhase(PHASE_END);triggerHandler(event,phase);}}
function removeListeners(){$element.off(START_EV,touchStart);$element.off(CANCEL_EV,touchCancel);$element.off(MOVE_EV,touchMove);$element.off(END_EV,touchEnd);if(LEAVE_EV){$element.off(LEAVE_EV,touchLeave);}
setTouchInProgress(false);}
function getNextPhase(currentPhase){var nextPhase=currentPhase;var validTime=validateSwipeTime();var validDistance=validateSwipeDistance();var didCancel=didSwipeBackToCancel();if(!validTime||didCancel){nextPhase=PHASE_CANCEL;}
else if(validDistance&&currentPhase==PHASE_MOVE&&(!options.triggerOnTouchEnd||options.triggerOnTouchLeave)){nextPhase=PHASE_END;}
else if(!validDistance&&currentPhase==PHASE_END&&options.triggerOnTouchLeave){nextPhase=PHASE_CANCEL;}
return nextPhase;}
function triggerHandler(event,phase){var ret,touches=event.touches;if(didSwipe()||hasSwipes()){ret=triggerHandlerForGesture(event,phase,SWIPE);}
if((didPinch()||hasPinches())&&ret!==false){ret=triggerHandlerForGesture(event,phase,PINCH);}
if(didDoubleTap()&&ret!==false){ret=triggerHandlerForGesture(event,phase,DOUBLE_TAP);}
else if(didLongTap()&&ret!==false){ret=triggerHandlerForGesture(event,phase,LONG_TAP);}
else if(didTap()&&ret!==false){ret=triggerHandlerForGesture(event,phase,TAP);}
if(phase===PHASE_CANCEL){touchCancel(event);}
if(phase===PHASE_END){if(touches){if(!touches.length){touchCancel(event);}}else{touchCancel(event);}}
return ret;}
function triggerHandlerForGesture(event,phase,gesture){var ret;if(gesture==SWIPE){$element.trigger('swipeStatus',[phase,direction||null,distance||0,duration||0,fingerCount,fingerData,currentDirection]);if(options.swipeStatus){ret=options.swipeStatus.call($element,event,phase,direction||null,distance||0,duration||0,fingerCount,fingerData,currentDirection);if(ret===false)return false;}
if(phase==PHASE_END&&validateSwipe()){clearTimeout(singleTapTimeout);clearTimeout(holdTimeout);$element.trigger('swipe',[direction,distance,duration,fingerCount,fingerData,currentDirection]);if(options.swipe){ret=options.swipe.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection);if(ret===false)return false;}
switch(direction){case LEFT:$element.trigger('swipeLeft',[direction,distance,duration,fingerCount,fingerData,currentDirection]);if(options.swipeLeft){ret=options.swipeLeft.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection);}
break;case RIGHT:$element.trigger('swipeRight',[direction,distance,duration,fingerCount,fingerData,currentDirection]);if(options.swipeRight){ret=options.swipeRight.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection);}
break;case UP:$element.trigger('swipeUp',[direction,distance,duration,fingerCount,fingerData,currentDirection]);if(options.swipeUp){ret=options.swipeUp.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection);}
break;case DOWN:$element.trigger('swipeDown',[direction,distance,duration,fingerCount,fingerData,currentDirection]);if(options.swipeDown){ret=options.swipeDown.call($element,event,direction,distance,duration,fingerCount,fingerData,currentDirection);}
break;}}}
if(gesture==PINCH){$element.trigger('pinchStatus',[phase,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]);if(options.pinchStatus){ret=options.pinchStatus.call($element,event,phase,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData);if(ret===false)return false;}
if(phase==PHASE_END&&validatePinch()){switch(pinchDirection){case IN:$element.trigger('pinchIn',[pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]);if(options.pinchIn){ret=options.pinchIn.call($element,event,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData);}
break;case OUT:$element.trigger('pinchOut',[pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData]);if(options.pinchOut){ret=options.pinchOut.call($element,event,pinchDirection||null,pinchDistance||0,duration||0,fingerCount,pinchZoom,fingerData);}
break;}}}
if(gesture==TAP){if(phase===PHASE_CANCEL||phase===PHASE_END){clearTimeout(singleTapTimeout);clearTimeout(holdTimeout);if(hasDoubleTap()&&!inDoubleTap()){doubleTapStartTime=getTimeStamp();singleTapTimeout=setTimeout($.proxy(function(){doubleTapStartTime=null;$element.trigger('tap',[event.target]);if(options.tap){ret=options.tap.call($element,event,event.target);}},this),options.doubleTapThreshold);}else{doubleTapStartTime=null;$element.trigger('tap',[event.target]);if(options.tap){ret=options.tap.call($element,event,event.target);}}}}else if(gesture==DOUBLE_TAP){if(phase===PHASE_CANCEL||phase===PHASE_END){clearTimeout(singleTapTimeout);clearTimeout(holdTimeout);doubleTapStartTime=null;$element.trigger('doubletap',[event.target]);if(options.doubleTap){ret=options.doubleTap.call($element,event,event.target);}}}else if(gesture==LONG_TAP){if(phase===PHASE_CANCEL||phase===PHASE_END){clearTimeout(singleTapTimeout);doubleTapStartTime=null;$element.trigger('longtap',[event.target]);if(options.longTap){ret=options.longTap.call($element,event,event.target);}}}
return ret;}
function validateSwipeDistance(){var valid=true;if(options.threshold!==null){valid=distance>=options.threshold;}
return valid;}
function didSwipeBackToCancel(){var cancelled=false;if(options.cancelThreshold!==null&&direction!==null){cancelled=(getMaxDistance(direction)-distance)>=options.cancelThreshold;}
return cancelled;}
function validatePinchDistance(){if(options.pinchThreshold!==null){return pinchDistance>=options.pinchThreshold;}
return true;}
function validateSwipeTime(){var result;if(options.maxTimeThreshold){if(duration>=options.maxTimeThreshold){result=false;}else{result=true;}}else{result=true;}
return result;}
function validateDefaultEvent(jqEvent,direction){if(options.preventDefaultEvents===false){return;}
if(options.allowPageScroll===NONE){jqEvent.preventDefault();}else{var auto=options.allowPageScroll===AUTO;switch(direction){case LEFT:if((options.swipeLeft&&auto)||(!auto&&options.allowPageScroll!=HORIZONTAL)){jqEvent.preventDefault();}
break;case RIGHT:if((options.swipeRight&&auto)||(!auto&&options.allowPageScroll!=HORIZONTAL)){jqEvent.preventDefault();}
break;case UP:if((options.swipeUp&&auto)||(!auto&&options.allowPageScroll!=VERTICAL)){jqEvent.preventDefault();}
break;case DOWN:if((options.swipeDown&&auto)||(!auto&&options.allowPageScroll!=VERTICAL)){jqEvent.preventDefault();}
break;case NONE:break;}}}
function validatePinch(){var hasCorrectFingerCount=validateFingers();var hasEndPoint=validateEndPoint();var hasCorrectDistance=validatePinchDistance();return hasCorrectFingerCount&&hasEndPoint&&hasCorrectDistance;}
function hasPinches(){return!!(options.pinchStatus||options.pinchIn||options.pinchOut);}
function didPinch(){return!!(validatePinch()&&hasPinches());}
function validateSwipe(){var hasValidTime=validateSwipeTime();var hasValidDistance=validateSwipeDistance();var hasCorrectFingerCount=validateFingers();var hasEndPoint=validateEndPoint();var didCancel=didSwipeBackToCancel();var valid=!didCancel&&hasEndPoint&&hasCorrectFingerCount&&hasValidDistance&&hasValidTime;return valid;}
function hasSwipes(){return!!(options.swipe||options.swipeStatus||options.swipeLeft||options.swipeRight||options.swipeUp||options.swipeDown);}
function didSwipe(){return!!(validateSwipe()&&hasSwipes());}
function validateFingers(){return((fingerCount===options.fingers||options.fingers===ALL_FINGERS)||!SUPPORTS_TOUCH);}
function validateEndPoint(){return fingerData[0].end.x!==0;}
function hasTap(){return!!(options.tap);}
function hasDoubleTap(){return!!(options.doubleTap);}
function hasLongTap(){return!!(options.longTap);}
function validateDoubleTap(){if(doubleTapStartTime==null){return false;}
var now=getTimeStamp();return(hasDoubleTap()&&((now-doubleTapStartTime)<=options.doubleTapThreshold));}
function inDoubleTap(){return validateDoubleTap();}
function validateTap(){return((fingerCount===1||!SUPPORTS_TOUCH)&&(isNaN(distance)||distance<options.threshold));}
function validateLongTap(){return((duration>options.longTapThreshold)&&(distance<DOUBLE_TAP_THRESHOLD));}
function didTap(){return!!(validateTap()&&hasTap());}
function didDoubleTap(){return!!(validateDoubleTap()&&hasDoubleTap());}
function didLongTap(){return!!(validateLongTap()&&hasLongTap());}
function startMultiFingerRelease(event){previousTouchEndTime=getTimeStamp();fingerCountAtRelease=event.touches.length+1;}
function cancelMultiFingerRelease(){previousTouchEndTime=0;fingerCountAtRelease=0;}
function inMultiFingerRelease(){var withinThreshold=false;if(previousTouchEndTime){var diff=getTimeStamp()-previousTouchEndTime
if(diff<=options.fingerReleaseThreshold){withinThreshold=true;}}
return withinThreshold;}
function getTouchInProgress(){return!!($element.data(PLUGIN_NS+'_intouch')===true);}
function setTouchInProgress(val){if(!$element){return;}
if(val===true){$element.on(MOVE_EV,touchMove);$element.on(END_EV,touchEnd);if(LEAVE_EV){$element.on(LEAVE_EV,touchLeave);}}else{$element.off(MOVE_EV,touchMove,false);$element.off(END_EV,touchEnd,false);if(LEAVE_EV){$element.off(LEAVE_EV,touchLeave,false);}}
$element.data(PLUGIN_NS+'_intouch',val===true);}
function createFingerData(id,evt){var f={start:{x:0,y:0},last:{x:0,y:0},end:{x:0,y:0}};f.start.x=f.last.x=f.end.x=evt.pageX||evt.clientX;f.start.y=f.last.y=f.end.y=evt.pageY||evt.clientY;fingerData[id]=f;return f;}
function updateFingerData(evt){var id=evt.identifier!==undefined?evt.identifier:0;var f=getFingerData(id);if(f===null){f=createFingerData(id,evt);}
f.last.x=f.end.x;f.last.y=f.end.y;f.end.x=evt.pageX||evt.clientX;f.end.y=evt.pageY||evt.clientY;return f;}
function getFingerData(id){return fingerData[id]||null;}
function setMaxDistance(direction,distance){if(direction==NONE)return;distance=Math.max(distance,getMaxDistance(direction));maximumsMap[direction].distance=distance;}
function getMaxDistance(direction){if(maximumsMap[direction])return maximumsMap[direction].distance;return undefined;}
function createMaximumsData(){var maxData={};maxData[LEFT]=createMaximumVO(LEFT);maxData[RIGHT]=createMaximumVO(RIGHT);maxData[UP]=createMaximumVO(UP);maxData[DOWN]=createMaximumVO(DOWN);return maxData;}
function createMaximumVO(dir){return{direction:dir,distance:0}}
function calculateDuration(){return endTime-startTime;}
function calculateTouchesDistance(startPoint,endPoint){var diffX=Math.abs(startPoint.x-endPoint.x);var diffY=Math.abs(startPoint.y-endPoint.y);return Math.round(Math.sqrt(diffX*diffX+diffY*diffY));}
function calculatePinchZoom(startDistance,endDistance){var percent=(endDistance/startDistance)*1;return percent.toFixed(2);}
function calculatePinchDirection(){if(pinchZoom<1){return OUT;}else{return IN;}}
function calculateDistance(startPoint,endPoint){return Math.round(Math.sqrt(Math.pow(endPoint.x-startPoint.x,2)+Math.pow(endPoint.y-startPoint.y,2)));}
function calculateAngle(startPoint,endPoint){var x=startPoint.x-endPoint.x;var y=endPoint.y-startPoint.y;var r=Math.atan2(y,x);var angle=Math.round(r*180/Math.PI);if(angle<0){angle=360-Math.abs(angle);}
return angle;}
function calculateDirection(startPoint,endPoint){if(comparePoints(startPoint,endPoint)){return NONE;}
var angle=calculateAngle(startPoint,endPoint);if((angle<=45)&&(angle>=0)){return LEFT;}else if((angle<=360)&&(angle>=315)){return LEFT;}else if((angle>=135)&&(angle<=225)){return RIGHT;}else if((angle>45)&&(angle<135)){return DOWN;}else{return UP;}}
function getTimeStamp(){var now=new Date();return now.getTime();}
function getbounds(el){el=$(el);var offset=el.offset();var bounds={left:offset.left,right:offset.left+el.outerWidth(),top:offset.top,bottom:offset.top+el.outerHeight()}
return bounds;}
function isInBounds(point,bounds){return(point.x>bounds.left&&point.x<bounds.right&&point.y>bounds.top&&point.y<bounds.bottom);};function comparePoints(pointA,pointB){return(pointA.x==pointB.x&&pointA.y==pointB.y);}}}));
;;;(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else if(typeof module==='object'&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=='undefined'){jQuery=require('jquery');}
else{jQuery=require('jquery')(root);}}
factory(jQuery);return jQuery;};}else{factory(jQuery);}}(function(jQuery){(function($){'use strict';function setupPassiveListeners(){var supportsPassive=false;try{var opts=Object.defineProperty({},'passive',{get:function(){supportsPassive=true;return true;}});window.addEventListener('testPassive.mapster',function(){},opts);window.removeEventListener('testPassive.mapster',function(){},opts);}catch(e){}
if(supportsPassive){var setupListener=function(ns,type,listener){if(ns.includes('noPreventDefault')){window.addEventListener(type,listener,{passive:true});}else{console.warn('non-passive events - listener not added');return false;}};$.event.special.touchstart={setup:function(_,ns,listener){return setupListener(ns,'touchstart',listener);}};$.event.special.touchend={setup:function(_,ns,listener){return setupListener(ns,'touchend',listener);}};}}
function supportsSpecialEvents(){return $.event&&$.event.special;}
if(supportsSpecialEvents()){setupPassiveListeners();}})(jQuery);(function($){'use strict';var mapster_version='1.5.4';$.fn.mapster=function(method){var m=$.mapster.impl;if($.mapster.utils.isFunction(m[method])){return m[method].apply(this,Array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return m.bind.apply(this,arguments);}else{$.error('Method '+method+' does not exist on jQuery.mapster');}};$.mapster={version:mapster_version,render_defaults:{isSelectable:true,isDeselectable:true,fade:false,fadeDuration:150,fill:true,fillColor:'000000',fillColorMask:'FFFFFF',fillOpacity:0.7,highlight:true,stroke:false,strokeColor:'ff0000',strokeOpacity:1,strokeWidth:1,includeKeys:'',altImage:null,altImageId:null,altImages:{}},defaults:{clickNavigate:false,navigateMode:'location',wrapClass:null,wrapCss:null,onGetList:null,sortList:false,listenToList:false,mapKey:'',mapValue:'',singleSelect:false,listKey:'value',listSelectedAttribute:'selected',listSelectedClass:null,onClick:null,onMouseover:null,onMouseout:null,mouseoutDelay:0,onStateChange:null,boundList:null,onConfigured:null,configTimeout:30000,noHrefIsMask:true,scaleMap:true,enableAutoResizeSupport:false,autoResize:false,autoResizeDelay:0,autoResizeDuration:0,onAutoResize:null,safeLoad:false,areas:[]},shared_defaults:{render_highlight:{fade:true},render_select:{fade:false},staticState:null,selected:null},area_defaults:{includeKeys:'',isMask:false},canvas_style:{position:'absolute',left:0,top:0,padding:0,border:0},hasCanvas:null,map_cache:[],hooks:{},addHook:function(name,callback){this.hooks[name]=(this.hooks[name]||[]).push(callback);},callHooks:function(name,context){$.each(this.hooks[name]||[],function(_,e){e.apply(context);});},utils:{when:{all:function(deferredArray){return Promise.all(deferredArray);},defer:function(){var Deferred=function(){this.promise=new Promise(function(resolve,reject){this.resolve=resolve;this.reject=reject;}.bind(this));this.then=this.promise.then.bind(this.promise);this.catch=this.promise.catch.bind(this.promise);};return new Deferred();}},defer:function(){return this.when.defer();},subclass:function(BaseClass,constr){var Subclass=function(){var me=this,args=Array.prototype.slice.call(arguments,0);me.base=BaseClass.prototype;me.base.init=function(){BaseClass.prototype.constructor.apply(me,args);};constr.apply(me,args);};Subclass.prototype=new BaseClass();Subclass.prototype.constructor=Subclass;return Subclass;},asArray:function(obj){return obj.constructor===Array?obj:this.split(obj);},split:function(text,cb){var i,el,arr=text.split(',');for(i=0;i<arr.length;i++){el=arr[i]?arr[i].trim():'';if(el===''){arr.splice(i,1);}else{arr[i]=cb?cb(el):el;}}
return arr;},updateProps:function(_target,_template){var onlyProps,target=_target||{},template=$.isEmptyObject(target)?_template:_target;onlyProps=[];$.each(template,function(prop){onlyProps.push(prop);});$.each(Array.prototype.slice.call(arguments,1),function(_,src){$.each(src||{},function(prop){if(!onlyProps||$.inArray(prop,onlyProps)>=0){var p=src[prop];if($.isPlainObject(p)){target[prop]=$.extend(target[prop]||{},p);}else if(p&&p.constructor===Array){target[prop]=p.slice(0);}else if(typeof p!=='undefined'){target[prop]=src[prop];}}});});return target;},isElement:function(o){return typeof HTMLElement==='object'?o instanceof HTMLElement:o&&typeof o==='object'&&o.nodeType===1&&typeof o.nodeName==='string';},indexOf:function(arr,target){if(Array.prototype.indexOf){return Array.prototype.indexOf.call(arr,target);}else{for(var i=0;i<arr.length;i++){if(arr[i]===target){return i;}}
return-1;}},indexOfProp:function(obj,prop,val){var result=obj.constructor===Array?-1:null;$.each(obj,function(i,e){if(e&&(prop?e[prop]:e)===val){result=i;return false;}});return result;},boolOrDefault:function(obj,def){return this.isBool(obj)?obj:def||false;},isBool:function(obj){return typeof obj==='boolean';},isUndef:function(obj){return typeof obj==='undefined';},isFunction:function(obj){return typeof obj==='function';},ifFunction:function(obj,that,args){if(this.isFunction(obj)){obj.call(that,args);}},size:function(image,raw){var u=$.mapster.utils;return{width:raw?image.width||image.naturalWidth:u.imgWidth(image,true),height:raw?image.height||image.naturalHeight:u.imgHeight(image,true),complete:function(){return!!this.height&&!!this.width;}};},setOpacity:function(el,opacity){if($.mapster.hasCanvas()){el.style.opacity=opacity;}else{$(el).each(function(_,e){if(typeof e.opacity!=='undefined'){e.opacity=opacity;}else{$(e).css('opacity',opacity);}});}},fader:(function(){var elements={},lastKey=0,fade_func=function(el,op,endOp,duration){var index,cbIntervals=duration/15,obj,u=$.mapster.utils;if(typeof el==='number'){obj=elements[el];if(!obj){return;}}else{index=u.indexOfProp(elements,null,el);if(index){delete elements[index];}
elements[++lastKey]=obj=el;el=lastKey;}
endOp=endOp||1;op=op+endOp/cbIntervals>endOp-0.01?endOp:op+endOp/cbIntervals;u.setOpacity(obj,op);if(op<endOp){setTimeout(function(){fade_func(el,op,endOp,duration);},15);}};return fade_func;})(),getShape:function(areaEl){return(areaEl.shape||'rect').toLowerCase();},hasAttribute:function(el,attrName){var attr=$(el).attr(attrName);return typeof attr!=='undefined'&&attr!==false;}},getBoundList:function(opts,key_list){if(!opts.boundList){return null;}
var index,key,result=$(),list=$.mapster.utils.split(key_list);opts.boundList.each(function(_,e){for(index=0;index<list.length;index++){key=list[index];if($(e).is('['+opts.listKey+'="'+key+'"]')){result=result.add(e);}}});return result;},getMapDataIndex:function(obj){var img,id;switch(obj.tagName&&obj.tagName.toLowerCase()){case'area':id=$(obj).parent().attr('name');img=$("img[usemap='#"+id+"']")[0];break;case'img':img=obj;break;}
return img?this.utils.indexOfProp(this.map_cache,'image',img):-1;},getMapData:function(obj){var index=this.getMapDataIndex(obj.length?obj[0]:obj);if(index>=0){return index>=0?this.map_cache[index]:null;}},queueCommand:function(map_data,that,command,args){if(!map_data){return false;}
if(!map_data.complete||map_data.currentAction){map_data.commands.push({that:that,command:command,args:args});return true;}
return false;},unload:function(){this.impl.unload();this.utils=null;this.impl=null;$.fn.mapster=null;$.mapster=null;return $('*').off('.mapster');}};var m=$.mapster,u=m.utils,ap=Array.prototype;$.each(['width','height'],function(_,e){var capProp=e.substr(0,1).toUpperCase()+e.substr(1);u['img'+capProp]=function(img,jqwidth){return((jqwidth?$(img)[e]():0)||img[e]||img['natural'+capProp]||img['client'+capProp]||img['offset'+capProp]);};});m.Method=function(that,func_map,func_area,opts){var me=this;me.name=opts.name;me.output=that;me.input=that;me.first=opts.first||false;me.args=opts.args?ap.slice.call(opts.args,0):[];me.key=opts.key;me.func_map=func_map;me.func_area=func_area;me.name=opts.name;me.allowAsync=opts.allowAsync||false;};m.Method.prototype={constructor:m.Method,go:function(){var i,data,ar,len,result,src=this.input,area_list=[],me=this;len=src.length;for(i=0;i<len;i++){data=$.mapster.getMapData(src[i]);if(data){if(!me.allowAsync&&m.queueCommand(data,me.input,me.name,me.args)){if(this.first){result='';}
continue;}
ar=data.getData(src[i].nodeName==='AREA'?src[i]:this.key);if(ar){if($.inArray(ar,area_list)<0){area_list.push(ar);}}else{result=this.func_map.apply(data,me.args);}
if(this.first||typeof result!=='undefined'){break;}}}
$(area_list).each(function(_,e){result=me.func_area.apply(e,me.args);});if(typeof result!=='undefined'){return result;}else{return this.output;}}};$.mapster.impl=(function(){var me={},addMap=function(map_data){return m.map_cache.push(map_data)-1;},removeMap=function(map_data){m.map_cache.splice(map_data.index,1);for(var i=m.map_cache.length-1;i>=map_data.index;i--){m.map_cache[i].index--;}};function hasVml(){var a=$('<div />').appendTo('body');a.html('<v:shape id="vml_flag1" adj="1" />');var b=a[0].firstChild;b.style.behavior='url(#default#VML)';var has=b?typeof b.adj==='object':true;a.remove();return has;}
function namespaces(){return typeof document.namespaces==='object'?document.namespaces:null;}
function hasCanvas(){var d=namespaces();return d&&d.g_vml_?false:$('<canvas />')[0].getContext?true:false;}
function merge_areas(map_data,areas){var ar,index,map_areas=map_data.options.areas;if(areas){$.each(areas,function(_,e){if(!e||!e.key){return;}
index=u.indexOfProp(map_areas,'key',e.key);if(index>=0){$.extend(map_areas[index],e);}else{map_areas.push(e);}
ar=map_data.getDataForKey(e.key);if(ar){$.extend(ar.options,e);}});}}
function merge_options(map_data,options){var temp_opts=u.updateProps({},options);delete temp_opts.areas;u.updateProps(map_data.options,temp_opts);merge_areas(map_data,options.areas);u.updateProps(map_data.area_options,map_data.options);}
me.get=function(key){var md=m.getMapData(this);if(!(md&&md.complete)){throw"Can't access data until binding complete.";}
return new m.Method(this,function(){return this.getSelected();},function(){return this.isSelected();},{name:'get',args:arguments,key:key,first:true,allowAsync:true,defaultReturn:''}).go();};me.data=function(key){return new m.Method(this,null,function(){return this;},{name:'data',args:arguments,key:key}).go();};me.highlight=function(key){return new m.Method(this,function(){if(key===false){this.ensureNoHighlight();}else{var id=this.highlightId;return id>=0?this.data[id].key:null;}},function(){this.highlight();},{name:'highlight',args:arguments,key:key,first:true}).go();};me.keys=function(key,all){var keyList=[],md=m.getMapData(this);if(!(md&&md.complete)){throw"Can't access data until binding complete.";}
function addUniqueKeys(ad){var areas,keys=[];if(!all){keys.push(ad.key);}else{areas=ad.areas();$.each(areas,function(_,e){keys=keys.concat(e.keys);});}
$.each(keys,function(_,e){if($.inArray(e,keyList)<0){keyList.push(e);}});}
if(!(md&&md.complete)){return'';}
if(typeof key==='string'){if(all){addUniqueKeys(md.getDataForKey(key));}else{keyList=[md.getKeysForGroup(key)];}}else{all=key;this.each(function(_,e){if(e.nodeName==='AREA'){addUniqueKeys(md.getDataForArea(e));}});}
return keyList.join(',');};me.select=function(){me.set.call(this,true);};me.deselect=function(){me.set.call(this,false);};me.set=function(selected,key,options){var lastMap,map_data,opts=options,key_list,area_list;function setSelection(ar){var newState=selected;if(ar){switch(selected){case true:ar.select(opts);break;case false:ar.deselect(true);break;default:newState=ar.toggle(opts);break;}
return newState;}}
function addArea(ar){if(ar&&$.inArray(ar,area_list)<0){area_list.push(ar);key_list+=(key_list===''?'':',')+ar.key;}}
function finishSetForMap(map_data){$.each(area_list,function(_,el){setSelection(el);});if(!selected){map_data.removeSelectionFinish();}}
this.filter('img,area').each(function(_,e){var keys;map_data=m.getMapData(e);if(map_data!==lastMap){if(lastMap){finishSetForMap(lastMap);}
area_list=[];key_list='';}
if(map_data){keys='';if(e.nodeName.toUpperCase()==='IMG'){if(!m.queueCommand(map_data,$(e),'set',[selected,key,opts])){if(key instanceof Array){if(key.length){keys=key.join(',');}}else{keys=key;}
if(keys){$.each(u.split(keys),function(_,key){addArea(map_data.getDataForKey(key.toString()));lastMap=map_data;});}}}else{opts=key;if(!m.queueCommand(map_data,$(e),'set',[selected,opts])){addArea(map_data.getDataForArea(e));lastMap=map_data;}}}});if(map_data){finishSetForMap(map_data);}
return this;};me.unbind=function(preserveState){return new m.Method(this,function(){this.clearEvents();this.clearMapData(preserveState);removeMap(this);},null,{name:'unbind',args:arguments}).go();};me.rebind=function(options){return new m.Method(this,function(){var me=this;me.complete=false;me.configureOptions(options);me.bindImages().then(function(){me.buildDataset(true);me.complete=true;me.onConfigured();});},null,{name:'rebind',args:arguments}).go();};me.get_options=function(key,effective){var eff=u.isBool(key)?key:effective;return new m.Method(this,function(){var opts=$.extend({},this.options);if(eff){opts.render_select=u.updateProps({},m.render_defaults,opts,opts.render_select);opts.render_highlight=u.updateProps({},m.render_defaults,opts,opts.render_highlight);}
return opts;},function(){return eff?this.effectiveOptions():this.options;},{name:'get_options',args:arguments,first:true,allowAsync:true,key:key}).go();};me.set_options=function(options){return new m.Method(this,function(){merge_options(this,options);},null,{name:'set_options',args:arguments}).go();};me.unload=function(){var i;for(i=m.map_cache.length-1;i>=0;i--){if(m.map_cache[i]){me.unbind.call($(m.map_cache[i].image));}}
me.graphics=null;};me.snapshot=function(){return new m.Method(this,function(){$.each(this.data,function(_,e){e.selected=false;});this.base_canvas=this.graphics.createVisibleCanvas(this);$(this.image).before(this.base_canvas);},null,{name:'snapshot'}).go();};me.state=function(){var md,result=null;$(this).each(function(_,e){if(e.nodeName==='IMG'){md=m.getMapData(e);if(md){result=md.state();}
return false;}});return result;};me.bind=function(options){return this.each(function(_,e){var img,map,usemap,md;img=$(e);md=m.getMapData(e);if(md){me.unbind.apply(img);if(!md.complete){return true;}
md=null;}
usemap=this.getAttribute('usemap');map=usemap&&$('map[name="'+usemap.substr(1)+'"]');if(!(img.is('img')&&usemap&&map.length>0)){return true;}
img.css('border',0);if(!md){md=new m.MapData(this,options);md.index=addMap(md);md.map=map;md.bindImages().then(function(){md.initialize();});}});};me.init=function(useCanvas){var style,shapes;m.hasCanvas=function(){if(!u.isBool(m.hasCanvas.value)){m.hasCanvas.value=u.isBool(useCanvas)?useCanvas:hasCanvas();}
return m.hasCanvas.value;};m.hasVml=function(){if(!u.isBool(m.hasVml.value)){var d=namespaces();if(d&&!d.v){d.add('v','urn:schemas-microsoft-com:vml');style=document.createStyleSheet();shapes=['shape','rect','oval','circ','fill','stroke','imagedata','group','textbox'];$.each(shapes,function(_,el){style.addRule('v\\:'+el,'behavior: url(#default#VML); antialias:true');});}
m.hasVml.value=hasVml();}
return m.hasVml.value;};$.extend(m.defaults,m.render_defaults,m.shared_defaults);$.extend(m.area_defaults,m.render_defaults,m.shared_defaults);};me.test=function(obj){return eval(obj);};return me;})();$.mapster.impl.init();})(jQuery);(function($){'use strict';var p,m=$.mapster,u=m.utils,canvasMethods,vmlMethods;function addShapeGroupImpl(graphics,areaData,options){var me=graphics,md=me.map_data,isMask=options.isMask;$.each(areaData.areas(),function(_,e){options.isMask=isMask||(e.nohref&&md.options.noHrefIsMask);me.addShape(e,options);});options.isMask=isMask;}
function hex_to_decimal(hex){return Math.max(0,Math.min(parseInt(hex,16),255));}
function css3color(color,opacity){return('rgba('+
hex_to_decimal(color.substr(0,2))+','+
hex_to_decimal(color.substr(2,2))+','+
hex_to_decimal(color.substr(4,2))+','+
opacity+')');}
m.Graphics=function(map_data){var me=this;me.active=false;me.canvas=null;me.width=0;me.height=0;me.shapes=[];me.masks=[];me.map_data=map_data;};p=m.Graphics.prototype={constructor:m.Graphics,begin:function(canvas,elementName){var c=$(canvas);this.elementName=elementName;this.canvas=canvas;this.width=c.width();this.height=c.height();this.shapes=[];this.masks=[];this.active=true;},addShape:function(mapArea,options){var addto=options.isMask?this.masks:this.shapes;addto.push({mapArea:mapArea,options:options});},createVisibleCanvas:function(mapData){return $(this.createCanvasFor(mapData)).addClass('mapster_el').css(m.canvas_style)[0];},addShapeGroup:function(areaData,mode,options){var me=this,list,name,canvas,map_data=this.map_data,opts=areaData.effectiveRenderOptions(mode);if(options){$.extend(opts,options);}
if(mode==='select'){name='static_'+areaData.areaId.toString();canvas=map_data.base_canvas;}else{canvas=map_data.overlay_canvas;}
me.begin(canvas,name);if(opts.includeKeys){list=u.split(opts.includeKeys);$.each(list,function(_,e){var areaData=map_data.getDataForKey(e.toString());addShapeGroupImpl(me,areaData,areaData.effectiveRenderOptions(mode));});}
addShapeGroupImpl(me,areaData,opts);me.render();if(opts.fade){u.fader(m.hasCanvas()?canvas:$(canvas).find('._fill').not('.mapster_mask'),0,m.hasCanvas()?1:opts.fillOpacity,opts.fadeDuration);}}};function noop(){}
canvasMethods={renderShape:function(context,mapArea,offset){var i,c=mapArea.coords(null,offset);switch(mapArea.shape){case'rect':case'rectangle':context.rect(c[0],c[1],c[2]-c[0],c[3]-c[1]);break;case'poly':case'polygon':context.moveTo(c[0],c[1]);for(i=2;i<mapArea.length;i+=2){context.lineTo(c[i],c[i+1]);}
context.lineTo(c[0],c[1]);break;case'circ':case'circle':context.arc(c[0],c[1],c[2],0,Math.PI*2,false);break;}},addAltImage:function(context,image,mapArea,options){context.beginPath();this.renderShape(context,mapArea);context.closePath();context.clip();context.globalAlpha=options.altImageOpacity||options.fillOpacity;context.drawImage(image,0,0,mapArea.owner.scaleInfo.width,mapArea.owner.scaleInfo.height);},render:function(){var maskCanvas,maskContext,me=this,md=me.map_data,hasMasks=me.masks.length,shapeCanvas=me.createCanvasFor(md),shapeContext=shapeCanvas.getContext('2d'),context=me.canvas.getContext('2d');if(hasMasks){maskCanvas=me.createCanvasFor(md);maskContext=maskCanvas.getContext('2d');maskContext.clearRect(0,0,maskCanvas.width,maskCanvas.height);$.each(me.masks,function(_,e){maskContext.save();maskContext.beginPath();me.renderShape(maskContext,e.mapArea);maskContext.closePath();maskContext.clip();maskContext.lineWidth=0;maskContext.fillStyle='#000';maskContext.fill();maskContext.restore();});}
$.each(me.shapes,function(_,s){shapeContext.save();if(s.options.fill){if(s.options.altImageId){me.addAltImage(shapeContext,md.images[s.options.altImageId],s.mapArea,s.options);}else{shapeContext.beginPath();me.renderShape(shapeContext,s.mapArea);shapeContext.closePath();shapeContext.fillStyle=css3color(s.options.fillColor,s.options.fillOpacity);shapeContext.fill();}}
shapeContext.restore();});$.each(me.shapes.concat(me.masks),function(_,s){var offset=s.options.strokeWidth===1?0.5:0;if(s.options.stroke){shapeContext.save();shapeContext.strokeStyle=css3color(s.options.strokeColor,s.options.strokeOpacity);shapeContext.lineWidth=s.options.strokeWidth;shapeContext.beginPath();me.renderShape(shapeContext,s.mapArea,offset);shapeContext.closePath();shapeContext.stroke();shapeContext.restore();}});if(hasMasks){maskContext.globalCompositeOperation='source-out';maskContext.drawImage(shapeCanvas,0,0);context.drawImage(maskCanvas,0,0);}else{context.drawImage(shapeCanvas,0,0);}
me.active=false;return me.canvas;},createCanvasFor:function(md){return $('<canvas width="'+
md.scaleInfo.width+'" height="'+
md.scaleInfo.height+'"></canvas>')[0];},clearHighlight:function(){var c=this.map_data.overlay_canvas;c.getContext('2d').clearRect(0,0,c.width,c.height);},refreshSelections:function(){var canvas_temp,map_data=this.map_data;canvas_temp=map_data.base_canvas;map_data.base_canvas=this.createVisibleCanvas(map_data);$(map_data.base_canvas).hide();$(canvas_temp).before(map_data.base_canvas);map_data.redrawSelections();$(map_data.base_canvas).show();$(canvas_temp).remove();}};vmlMethods={renderShape:function(mapArea,options,cssclass){var me=this,fill,stroke,e,t_fill,el_name,el_class,template,c=mapArea.coords();el_name=me.elementName?'name="'+me.elementName+'" ':'';el_class=cssclass?'class="'+cssclass+'" ':'';t_fill='<v:fill color="#'+
options.fillColor+'" class="_fill" opacity="'+
(options.fill?options.fillOpacity:0)+'" /><v:stroke class="_fill" opacity="'+
options.strokeOpacity+'"/>';stroke=options.stroke?' strokeweight='+
options.strokeWidth+' stroked="t" strokecolor="#'+
options.strokeColor+'"':' stroked="f"';fill=options.fill?' filled="t"':' filled="f"';switch(mapArea.shape){case'rect':case'rectangle':template='<v:rect '+
el_class+
el_name+
fill+
stroke+' style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:'+
c[0]+'px;top:'+
c[1]+'px;width:'+
(c[2]-c[0])+'px;height:'+
(c[3]-c[1])+'px;">'+
t_fill+'</v:rect>';break;case'poly':case'polygon':template='<v:shape '+
el_class+
el_name+
fill+
stroke+' coordorigin="0,0" coordsize="'+
me.width+','+
me.height+'" path="m '+
c[0]+','+
c[1]+' l '+
c.slice(2).join(',')+' x e" style="zoom:1;margin:0;padding:0;display:block;position:absolute;top:0px;left:0px;width:'+
me.width+'px;height:'+
me.height+'px;">'+
t_fill+'</v:shape>';break;case'circ':case'circle':template='<v:oval '+
el_class+
el_name+
fill+
stroke+' style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:'+
(c[0]-c[2])+'px;top:'+
(c[1]-c[2])+'px;width:'+
c[2]*2+'px;height:'+
c[2]*2+'px;">'+
t_fill+'</v:oval>';break;}
e=$(template);$(me.canvas).append(e);return e;},render:function(){var opts,me=this;$.each(this.shapes,function(_,e){me.renderShape(e.mapArea,e.options);});if(this.masks.length){$.each(this.masks,function(_,e){opts=u.updateProps({},e.options,{fillOpacity:1,fillColor:e.options.fillColorMask});me.renderShape(e.mapArea,opts,'mapster_mask');});}
this.active=false;return this.canvas;},createCanvasFor:function(md){var w=md.scaleInfo.width,h=md.scaleInfo.height;return $('<var width="'+
w+'" height="'+
h+'" style="zoom:1;overflow:hidden;display:block;width:'+
w+'px;height:'+
h+'px;"></var>')[0];},clearHighlight:function(){$(this.map_data.overlay_canvas).children().remove();},removeSelections:function(area_id){if(area_id>=0){$(this.map_data.base_canvas).find('[name="static_'+area_id.toString()+'"]').remove();}else{$(this.map_data.base_canvas).children().remove();}}};$.each(['renderShape','addAltImage','render','createCanvasFor','clearHighlight','removeSelections','refreshSelections'],function(_,e){p[e]=(function(method){return function(){p[method]=(m.hasCanvas()?canvasMethods[method]:vmlMethods[method])||noop;return p[method].apply(this,arguments);};})(e);});})(jQuery);(function($){'use strict';var m=$.mapster,u=m.utils,ap=[];m.MapImages=function(owner){this.owner=owner;this.clear();};m.MapImages.prototype={constructor:m.MapImages,slice:function(){return ap.slice.apply(this,arguments);},splice:function(){ap.slice.apply(this.status,arguments);var result=ap.slice.apply(this,arguments);return result;},complete:function(){return $.inArray(false,this.status)<0;},_add:function(image){var index=ap.push.call(this,image)-1;this.status[index]=false;return index;},indexOf:function(image){return u.indexOf(this,image);},clear:function(){var me=this;if(me.ids&&me.ids.length>0){$.each(me.ids,function(_,e){delete me[e];});}
me.ids=[];me.length=0;me.status=[];me.splice(0);},add:function(image,id){var index,src,me=this;if(!image){return;}
if(typeof image==='string'){src=image;image=me[src];if(typeof image==='object'){return me.indexOf(image);}
image=$('<img />').addClass('mapster_el').hide();index=me._add(image[0]);image.on('load.mapster',function(e){me.imageLoaded.call(me,e);}).on('error.mapster',function(e){me.imageLoadError.call(me,e);});image.attr('src',src);}else{index=me._add($(image)[0]);}
if(id){if(this[id]){throw(id+' is already used or is not available as an altImage alias.');}
me.ids.push(id);me[id]=me[index];}
return index;},bind:function(){var me=this,promise,triesLeft=me.owner.options.configTimeout/200,check=function(){var i;i=me.length;while(i-->0){if(!me.isLoaded(i)){break;}}
if(me.complete()){me.resolve();}else{if(triesLeft-->0){me.imgTimeout=window.setTimeout(function(){check.call(me,true);},50);}else{me.imageLoadError.call(me);}}};promise=me.deferred=u.defer();check();return promise;},resolve:function(){var me=this,resolver=me.deferred;if(resolver){me.deferred=null;resolver.resolve();}},imageLoaded:function(e){var me=this,index=me.indexOf(e.target);if(index>=0){me.status[index]=true;if($.inArray(false,me.status)<0){me.resolve();}}},imageLoadError:function(e){clearTimeout(this.imgTimeout);this.triesLeft=0;var err=e?'The image '+e.target.src+' failed to load.':'The images never seemed to finish loading. You may just need to increase the configTimeout if images could take a long time to load.';throw err;},isLoaded:function(index){var img,me=this,status=me.status;if(status[index]){return true;}
img=me[index];if(typeof img.complete!=='undefined'){status[index]=img.complete;}else{status[index]=!!u.imgWidth(img);}
return status[index];}};})(jQuery);(function($){'use strict';var m=$.mapster,u=m.utils;function initializeDefaults(me){$.extend(me,{complete:false,map:null,base_canvas:null,overlay_canvas:null,commands:[],data:[],mapAreas:[],_xref:{},highlightId:-1,currentAreaId:-1,_tooltip_events:[],scaleInfo:null,index:-1,activeAreaEvent:null,autoResizeTimer:null});}
function getOptionImages(obj){return[obj,obj.render_highlight,obj.render_select];}
function configureAltImages(me){var opts=me.options,mi=me.images;if(m.hasCanvas()){$.each(opts.altImages||{},function(i,e){mi.add(e,i);});$.each([opts].concat(opts.areas),function(_,e){$.each(getOptionImages(e),function(_,e2){if(e2&&e2.altImage){e2.altImageId=mi.add(e2.altImage);}});});}
me.area_options=u.updateProps({},m.area_defaults,opts);}
function queueMouseEvent(me,delay,area,deferred){deferred=deferred||u.when.defer();function cbFinal(areaId){if(me.currentAreaId!==areaId&&me.highlightId>=0){deferred.resolve({completeAction:true});}}
if(me.activeAreaEvent){window.clearTimeout(me.activeAreaEvent);me.activeAreaEvent=0;}
if(delay<0){deferred.resolve({completeAction:false});}else{if(area.owner.currentAction||delay){me.activeAreaEvent=window.setTimeout((function(){return function(){queueMouseEvent(me,0,area,deferred);};})(area),delay||100);}else{cbFinal(area.areaId);}}
return deferred;}
function shouldNavigateTo(href){return!!href&&href!=='#';}
function mousedown(e){if(!m.hasCanvas()){this.blur();}
e.preventDefault();}
function mouseover(me,e){var arData=me.getAllDataForArea(this),ar=arData.length?arData[0]:null;if(!ar||ar.isNotRendered()||ar.owner.currentAction){return;}
if(me.currentAreaId===ar.areaId){return;}
if(me.highlightId!==ar.areaId){me.clearEffects();ar.highlight();if(me.options.showToolTip){$.each(arData,function(_,e){if(e.effectiveOptions().toolTip){e.showToolTip();}});}}
me.currentAreaId=ar.areaId;if(u.isFunction(me.options.onMouseover)){me.options.onMouseover.call(this,{e:e,options:ar.effectiveOptions(),key:ar.key,selected:ar.isSelected()});}}
function mouseout(me,e){var newArea,ar=me.getDataForArea(this),opts=me.options;if(me.currentAreaId<0||!ar){return;}
newArea=me.getDataForArea(e.relatedTarget);if(newArea===ar){return;}
me.currentAreaId=-1;ar.area=null;queueMouseEvent(me,opts.mouseoutDelay,ar).then(function(result){if(!result.completeAction){return;}
me.clearEffects();});if(u.isFunction(opts.onMouseout)){opts.onMouseout.call(this,{e:e,options:opts,key:ar.key,selected:ar.isSelected()});}}
function clearEffects(me){var opts=me.options;me.ensureNoHighlight();if(opts.toolTipClose&&$.inArray('area-mouseout',opts.toolTipClose)>=0&&me.activeToolTip){me.clearToolTip();}}
function click(me,e){var list,list_target,newSelectionState,canChangeState,cbResult,that=this,ar=me.getDataForArea(this),opts=me.options,navDetails,areaOpts;function navigateTo(mode,href,target){switch(mode){case'open':window.open(href,target||'_self');return;default:window.location.href=href;return;}}
function getNavDetails(ar,mode,defaultHref){if(mode==='open'){var elHref=$(ar.area).attr('href'),useEl=shouldNavigateTo(elHref);return{href:useEl?elHref:ar.href,target:useEl?$(ar.area).attr('target'):ar.hrefTarget};}
return{href:defaultHref};}
function clickArea(ar){var target;canChangeState=ar.isSelectable()&&(ar.isDeselectable()||!ar.isSelected());if(canChangeState){newSelectionState=!ar.isSelected();}else{newSelectionState=ar.isSelected();}
list_target=m.getBoundList(opts,ar.key);if(u.isFunction(opts.onClick)){cbResult=opts.onClick.call(that,{e:e,listTarget:list_target,key:ar.key,selected:newSelectionState});if(u.isBool(cbResult)){if(!cbResult){return false;}
target=getNavDetails(ar,opts.navigateMode,$(ar.area).attr('href'));if(shouldNavigateTo(target.href)){navigateTo(opts.navigateMode,target.href,target.target);return false;}}}
if(canChangeState){ar.toggle();}}
mousedown.call(this,e);navDetails=getNavDetails(ar,opts.navigateMode,ar.href);if(opts.clickNavigate&&shouldNavigateTo(navDetails.href)){navigateTo(opts.navigateMode,navDetails.href,navDetails.target);return;}
if(ar&&!ar.owner.currentAction){opts=me.options;clickArea(ar);areaOpts=ar.effectiveOptions();if(areaOpts.includeKeys){list=u.split(areaOpts.includeKeys);$.each(list,function(_,e){var ar=me.getDataForKey(e.toString());if(!ar.options.isMask){clickArea(ar);}});}}}
m.MapData=function(image,options){var me=this;me.image=image;me.images=new m.MapImages(me);me.graphics=new m.Graphics(me);me.imgCssText=image.style.cssText||null;initializeDefaults(me);me.configureOptions(options);me.mouseover=function(e){mouseover.call(this,me,e);};me.mouseout=function(e){mouseout.call(this,me,e);};me.click=function(e){click.call(this,me,e);};me.clearEffects=function(e){clearEffects.call(this,me,e);};me.mousedown=function(e){mousedown.call(this,e);};};m.MapData.prototype={constructor:m.MapData,configureOptions:function(options){this.options=u.updateProps({},m.defaults,options);},bindImages:function(){var me=this,mi=me.images;if(mi.length>2){mi.splice(2);}else if(mi.length===0){mi.add(me.image);mi.add(me.image.src);}
configureAltImages(me);return me.images.bind();},isActive:function(){return!this.complete||this.currentAction;},state:function(){return{complete:this.complete,resizing:this.currentAction==='resizing',zoomed:this.zoomed,zoomedArea:this.zoomedArea,scaleInfo:this.scaleInfo};},wrapId:function(){return'mapster_wrap_'+this.index;},instanceEventNamespace:function(){return'.mapster.'+this.wrapId();},_idFromKey:function(key){return typeof key==='string'&&Object.prototype.hasOwnProperty.call(this._xref,key)?this._xref[key]:-1;},getSelected:function(){var result='';$.each(this.data,function(_,e){if(e.isSelected()){result+=(result?',':'')+this.key;}});return result;},getAllDataForArea:function(area,atMost){var i,ar,result,me=this,key=$(area).filter('area').attr(me.options.mapKey);if(key){result=[];key=u.split(key);for(i=0;i<(atMost||key.length);i++){ar=me.data[me._idFromKey(key[i])];if(ar){ar.area=area.length?area[0]:area;result.push(ar);}}}
return result;},getDataForArea:function(area){var ar=this.getAllDataForArea(area,1);return ar?ar[0]||null:null;},getDataForKey:function(key){return this.data[this._idFromKey(key)];},getKeysForGroup:function(key){var ar=this.getDataForKey(key);return!ar?'':ar.isPrimary?ar.key:this.getPrimaryKeysForMapAreas(ar.areas()).join(',');},getPrimaryKeysForMapAreas:function(areas){var keys=[];$.each(areas,function(_,e){if($.inArray(e.keys[0],keys)<0){keys.push(e.keys[0]);}});return keys;},getData:function(obj){if(typeof obj==='string'){return this.getDataForKey(obj);}else if((obj&&obj.mapster)||u.isElement(obj)){return this.getDataForArea(obj);}else{return null;}},ensureNoHighlight:function(){var ar;if(this.highlightId>=0){this.graphics.clearHighlight();ar=this.data[this.highlightId];ar.changeState('highlight',false);this.setHighlightId(-1);}},setHighlightId:function(id){this.highlightId=id;},clearSelections:function(){$.each(this.data,function(_,e){if(e.selected){e.deselect(true);}});this.removeSelectionFinish();},setAreaOptions:function(areas){var i,area_options,ar;areas=areas||[];for(i=areas.length-1;i>=0;i--){area_options=areas[i];if(area_options){ar=this.getDataForKey(area_options.key);if(ar){u.updateProps(ar.options,area_options);if(u.isBool(area_options.selected)){ar.selected=area_options.selected;}}}}},drawSelections:function(keys){var i,key_arr=u.asArray(keys);for(i=key_arr.length-1;i>=0;i--){this.data[key_arr[i]].drawSelection();}},redrawSelections:function(){$.each(this.data,function(_,e){if(e.isSelectedOrStatic()){e.drawSelection();}});},setBoundListProperties:function(opts,target,selected){target.each(function(_,e){if(opts.listSelectedClass){if(selected){$(e).addClass(opts.listSelectedClass);}else{$(e).removeClass(opts.listSelectedClass);}}
if(opts.listSelectedAttribute){$(e).prop(opts.listSelectedAttribute,selected);}});},clearBoundListProperties:function(opts){var me=this;if(!opts.boundList){return;}
me.setBoundListProperties(opts,opts.boundList,false);},refreshBoundList:function(opts){var me=this;me.clearBoundListProperties(opts);me.setBoundListProperties(opts,m.getBoundList(opts,me.getSelected()),true);},setBoundList:function(opts){var me=this,sorted_list=me.data.slice(0),sort_func;if(opts.sortList){if(opts.sortList==='desc'){sort_func=function(a,b){return a===b?0:a>b?-1:1;};}else{sort_func=function(a,b){return a===b?0:a<b?-1:1;};}
sorted_list.sort(function(a,b){a=a.value;b=b.value;return sort_func(a,b);});}
me.options.boundList=opts.onGetList.call(me.image,sorted_list);},initialize:function(){var imgCopy,base_canvas,overlay_canvas,wrap,parentId,css,i,size,img,scale,me=this,opts=me.options;if(me.complete){return;}
img=$(me.image);parentId=img.parent().attr('id');if(parentId&&parentId.length>=12&&parentId.substring(0,12)==='mapster_wrap'){wrap=img.parent();wrap.attr('id',me.wrapId());}else{wrap=$('<div id="'+me.wrapId()+'"></div>');if(opts.wrapClass){if(opts.wrapClass===true){wrap.addClass(img[0].className);}else{wrap.addClass(opts.wrapClass);}}}
me.wrapper=wrap;me.scaleInfo=scale=u.scaleMap(me.images[0],me.images[1],opts.scaleMap);me.base_canvas=base_canvas=me.graphics.createVisibleCanvas(me);me.overlay_canvas=overlay_canvas=me.graphics.createVisibleCanvas(me);imgCopy=$(me.images[1]).addClass('mapster_el '+me.images[0].className).attr({id:null,usemap:null});size=u.size(me.images[0]);if(size.complete){imgCopy.css({width:size.width,height:size.height});}
me.buildDataset();css=$.extend({display:'block',position:'relative',padding:0},opts.enableAutoResizeSupport===true?{}:{width:scale.width,height:scale.height});if(opts.wrapCss){$.extend(css,opts.wrapCss);}
if(img.parent()[0]!==me.wrapper[0]){img.before(me.wrapper);}
wrap.css(css);$(me.images.slice(2)).hide();for(i=1;i<me.images.length;i++){wrap.append(me.images[i]);}
wrap.append(base_canvas).append(overlay_canvas).append(img.css(m.canvas_style));u.setOpacity(me.images[0],0);$(me.images[1]).show();u.setOpacity(me.images[1],1);me.complete=true;me.processCommandQueue();if(opts.enableAutoResizeSupport===true){me.configureAutoResize();}
me.onConfigured();},onConfigured:function(){var me=this,$img=$(me.image),opts=me.options;if(opts.onConfigured&&typeof opts.onConfigured==='function'){opts.onConfigured.call($img,true);}},buildDataset:function(rebind){var sel,areas,j,area_id,$area,area,curKey,mapArea,key,keys,mapAreaId,group_value,dataItem,href,me=this,opts=me.options,default_group;function addAreaData(key,value){var dataItem=new m.AreaData(me,key,value);dataItem.areaId=me._xref[key]=me.data.push(dataItem)-1;return dataItem.areaId;}
me._xref={};me.data=[];if(!rebind){me.mapAreas=[];}
default_group=!opts.mapKey;if(default_group){opts.mapKey='data-mapster-key';}
sel=m.hasVml()?'area':default_group?'area[coords]':'area['+opts.mapKey+']';areas=$(me.map).find(sel).off('.mapster');for(mapAreaId=0;mapAreaId<areas.length;mapAreaId++){area_id=0;area=areas[mapAreaId];$area=$(area);if(!area.coords){continue;}
if(default_group){curKey=String(mapAreaId);$area.attr('data-mapster-key',curKey);}else{curKey=area.getAttribute(opts.mapKey);}
if(rebind){mapArea=me.mapAreas[$area.data('mapster')-1];mapArea.configure(curKey);mapArea.areaDataXref=[];}else{mapArea=new m.MapArea(me,area,curKey);me.mapAreas.push(mapArea);}
keys=mapArea.keys;for(j=keys.length-1;j>=0;j--){key=keys[j];if(opts.mapValue){group_value=$area.attr(opts.mapValue);}
if(default_group){area_id=addAreaData(me.data.length,group_value);dataItem=me.data[area_id];dataItem.key=key=area_id.toString();}else{area_id=me._xref[key];if(area_id>=0){dataItem=me.data[area_id];if(group_value&&!me.data[area_id].value){dataItem.value=group_value;}}else{area_id=addAreaData(key,group_value);dataItem=me.data[area_id];dataItem.isPrimary=j===0;}}
mapArea.areaDataXref.push(area_id);dataItem.areasXref.push(mapAreaId);}
href=$area.attr('href');if(shouldNavigateTo(href)&&!dataItem.href){dataItem.href=href;dataItem.hrefTarget=$area.attr('target');}
if(!mapArea.nohref){$area.on('click.mapster',me.click).on('mouseover.mapster touchstart.mapster.noPreventDefault',me.mouseover).on('mouseout.mapster touchend.mapster.noPreventDefault',me.mouseout).on('mousedown.mapster',me.mousedown);}
$area.data('mapster',mapAreaId+1);}
me.setAreaOptions(opts.areas);if(opts.onGetList){me.setBoundList(opts);}
if(opts.boundList&&opts.boundList.length>0){me.refreshBoundList(opts);}
if(rebind){me.graphics.removeSelections();me.graphics.refreshSelections();}else{me.redrawSelections();}},processCommandQueue:function(){var cur,me=this;while(!me.currentAction&&me.commands.length){cur=me.commands[0];me.commands.splice(0,1);m.impl[cur.command].apply(cur.that,cur.args);}},clearEvents:function(){$(this.map).find('area').off('.mapster');$(this.images).off('.mapster');$(window).off(this.instanceEventNamespace());$(window.document).off(this.instanceEventNamespace());},_clearCanvases:function(preserveState){if(!preserveState){$(this.base_canvas).remove();}
$(this.overlay_canvas).remove();},clearMapData:function(preserveState){var me=this;this._clearCanvases(preserveState);$.each(this.data,function(_,e){e.reset();});this.data=null;if(!preserveState){this.image.style.cssText=this.imgCssText;$(this.wrapper).before(this.image).remove();}
me.images.clear();if(me.autoResizeTimer){clearTimeout(me.autoResizeTimer);}
me.autoResizeTimer=null;this.image=null;u.ifFunction(this.clearToolTip,this);},removeSelectionFinish:function(){var g=this.graphics;g.refreshSelections();g.clearHighlight();}};})(jQuery);(function($){'use strict';var m=$.mapster,u=m.utils;function optsAreEqual(opts1,opts2){return opts1===opts2;}
function updateSelected(selected){var me=this,prevSelected=me.selected;me.selected=selected;me.staticStateOverridden=u.isBool(me.effectiveOptions().staticState)?true:false;return prevSelected!==selected;}
function select(options){function buildOptions(){return $.extend(me.effectiveRenderOptions('select'),options,{altImageId:o.images.add(options.altImage)});}
var me=this,o=me.owner,hasOptions=!$.isEmptyObject(options),newOptsCache=hasOptions?buildOptions():null,changeOptions=hasOptions?!optsAreEqual(me.optsCache,newOptsCache):false,selectedHasChanged=false,isDrawn=me.isSelectedOrStatic();if(o.options.singleSelect){o.clearSelections();isDrawn=me.isSelectedOrStatic();}
if(changeOptions){me.optsCache=newOptsCache;}
selectedHasChanged=me.updateSelected(true);if(isDrawn&&changeOptions){o.graphics.removeSelections(me.areaId);o.graphics.refreshSelections();}else if(!isDrawn){me.drawSelection();}
if(selectedHasChanged){me.changeState('select',true);}}
function deselect(partial){var me=this,selectedHasChanged=false;selectedHasChanged=me.updateSelected(false);me.optsCache=null;me.owner.graphics.removeSelections(me.areaId);if(!partial){me.owner.removeSelectionFinish();}
if(selectedHasChanged){me.changeState('select',false);}}
function toggle(options){var me=this;if(!me.isSelected()){me.select(options);}else{me.deselect();}
return me.isSelected();}
function isNoHref(areaEl){var $area=$(areaEl);return u.hasAttribute($area,'nohref')||!u.hasAttribute($area,'href');}
m.AreaData=function(owner,key,value){$.extend(this,{owner:owner,key:key||'',isPrimary:true,areaId:-1,href:'',hrefTarget:null,value:value||'',options:{},selected:null,staticStateOverridden:false,areasXref:[],area:null,optsCache:null});};m.AreaData.prototype={constuctor:m.AreaData,select:select,deselect:deselect,toggle:toggle,updateSelected:updateSelected,areas:function(){var i,result=[];for(i=0;i<this.areasXref.length;i++){result.push(this.owner.mapAreas[this.areasXref[i]]);}
return result;},coords:function(offset){var coords=[];$.each(this.areas(),function(_,el){coords=coords.concat(el.coords(offset));});return coords;},reset:function(){$.each(this.areas(),function(_,e){e.reset();});this.areasXref=[];this.options=null;},isSelectedOrStatic:function(){var o=this.effectiveOptions();return!u.isBool(o.staticState)||this.staticStateOverridden?this.isSelected():o.staticState;},isSelected:function(){return u.isBool(this.selected)?this.selected:u.isBool(this.owner.area_options.selected)?this.owner.area_options.selected:false;},isSelectable:function(){return u.isBool(this.effectiveOptions().staticState)?false:u.isBool(this.owner.options.staticState)?false:u.boolOrDefault(this.effectiveOptions().isSelectable,true);},isDeselectable:function(){return u.isBool(this.effectiveOptions().staticState)?false:u.isBool(this.owner.options.staticState)?false:u.boolOrDefault(this.effectiveOptions().isDeselectable,true);},isNotRendered:function(){return isNoHref(this.area)||this.effectiveOptions().isMask;},effectiveOptions:function(options){var opts=u.updateProps({},this.owner.area_options,this.options,options||{},{id:this.areaId});opts.selected=this.isSelected();return opts;},effectiveRenderOptions:function(mode,options){var allOpts,opts=this.optsCache;if(!opts||mode==='highlight'){allOpts=this.effectiveOptions(options);opts=u.updateProps({},allOpts,allOpts['render_'+mode]);if(mode!=='highlight'){this.optsCache=opts;}}
return $.extend({},opts);},changeState:function(state_type,state){if(u.isFunction(this.owner.options.onStateChange)){this.owner.options.onStateChange.call(this.owner.image,{key:this.key,state:state_type,selected:state});}
if(state_type==='select'&&this.owner.options.boundList){this.owner.setBoundListProperties(this.owner.options,m.getBoundList(this.owner.options,this.key),state);}},highlight:function(options){var o=this.owner;o.ensureNoHighlight();if(this.effectiveOptions().highlight){o.graphics.addShapeGroup(this,'highlight',options);}
o.setHighlightId(this.areaId);this.changeState('highlight',true);},drawSelection:function(){this.owner.graphics.addShapeGroup(this,'select');}};m.MapArea=function(owner,areaEl,keys){if(!owner){return;}
var me=this;me.owner=owner;me.area=areaEl;me.areaDataXref=[];me.originalCoords=[];$.each(u.split(areaEl.coords),function(_,el){me.originalCoords.push(parseFloat(el));});me.length=me.originalCoords.length;me.shape=u.getShape(areaEl);me.nohref=isNoHref(areaEl);me.configure(keys);};m.MapArea.prototype={constructor:m.MapArea,configure:function(keys){this.keys=u.split(keys);},reset:function(){this.area=null;},coords:function(offset){return $.map(this.originalCoords,function(e){return offset?e:e+offset;});}};})(jQuery);(function($){'use strict';var u=$.mapster.utils;u.areaCorners=function(elements,image,container,width,height){var pos,found,minX,minY,maxX,maxY,bestMinX,bestMaxX,bestMinY,bestMaxY,curX,curY,nest,j,offsetx=0,offsety=0,rootx,rooty,iCoords,radius,angle,el,coords=[];elements=elements.length?elements:[elements];container=container?$(container):$(document.body);pos=container.offset();rootx=pos.left;rooty=pos.top;if(image){pos=$(image).offset();offsetx=pos.left;offsety=pos.top;}
for(j=0;j<elements.length;j++){el=elements[j];if(el.nodeName==='AREA'){iCoords=u.split(el.coords,parseInt);switch(u.getShape(el)){case'circle':case'circ':curX=iCoords[0];curY=iCoords[1];radius=iCoords[2];coords=[];for(j=0;j<360;j+=20){angle=(j*Math.PI)/180;coords.push(curX+radius*Math.cos(angle),curY+radius*Math.sin(angle));}
break;case'rectangle':case'rect':coords.push(iCoords[0],iCoords[1],iCoords[2],iCoords[1],iCoords[2],iCoords[3],iCoords[0],iCoords[3]);break;default:coords=coords.concat(iCoords);break;}
for(j=0;j<coords.length;j+=2){coords[j]=parseInt(coords[j],10)+offsetx;coords[j+1]=parseInt(coords[j+1],10)+offsety;}}else{el=$(el);pos=el.position();coords.push(pos.left,pos.top,pos.left+el.width(),pos.top,pos.left+el.width(),pos.top+el.height(),pos.left,pos.top+el.height());}}
minX=minY=bestMinX=bestMinY=999999;maxX=maxY=bestMaxX=bestMaxY=-1;for(j=coords.length-2;j>=0;j-=2){curX=coords[j];curY=coords[j+1];if(curX<minX){minX=curX;bestMaxY=curY;}
if(curX>maxX){maxX=curX;bestMinY=curY;}
if(curY<minY){minY=curY;bestMaxX=curX;}
if(curY>maxY){maxY=curY;bestMinX=curX;}}
if(width&&height){found=false;$.each([[bestMaxX-width,minY-height],[bestMinX,minY-height],[minX-width,bestMaxY-height],[minX-width,bestMinY],[maxX,bestMaxY-height],[maxX,bestMinY],[bestMaxX-width,maxY],[bestMinX,maxY]],function(_,e){if(!found&&e[0]>rootx&&e[1]>rooty){nest=e;found=true;return false;}});if(!found){nest=[maxX,maxY];}}
return nest;};})(jQuery);(function($){'use strict';var m=$.mapster,u=m.utils,p=m.MapArea.prototype;m.utils.getScaleInfo=function(eff,actual){var pct;if(!actual){pct=1;actual=eff;}else{pct=eff.width/actual.width||eff.height/actual.height;if(pct>0.98&&pct<1.02){pct=1;}}
return{scale:pct!==1,scalePct:pct,realWidth:actual.width,realHeight:actual.height,width:eff.width,height:eff.height,ratio:eff.width/eff.height};};m.utils.scaleMap=function(image,imageRaw,scale){var vis=u.size(image),raw=u.size(imageRaw,true);if(!raw.complete()){throw'Another script, such as an extension, appears to be interfering with image loading. Please let us know about this.';}
if(!vis.complete()){vis=raw;}
return this.getScaleInfo(vis,scale?raw:null);};m.MapData.prototype.resize=function(width,height,duration,callback){var p,promises,newsize,els,highlightId,ratio,me=this;callback=callback||duration;function sizeCanvas(canvas,w,h){if(m.hasCanvas()){canvas.width=w;canvas.height=h;}else{$(canvas).width(w);$(canvas).height(h);}}
function cleanupAndNotify(){me.currentAction='';if(u.isFunction(callback)){callback();}
me.processCommandQueue();}
function finishResize(){sizeCanvas(me.overlay_canvas,width,height);if(highlightId>=0){var areaData=me.data[highlightId];areaData.tempOptions={fade:false};me.getDataForKey(areaData.key).highlight();areaData.tempOptions=null;}
sizeCanvas(me.base_canvas,width,height);me.redrawSelections();cleanupAndNotify();}
function resizeMapData(){$(me.image).css(newsize);me.scaleInfo=u.getScaleInfo({width:width,height:height},{width:me.scaleInfo.realWidth,height:me.scaleInfo.realHeight});$.each(me.data,function(_,e){$.each(e.areas(),function(_,e){e.resize();});});}
if(me.scaleInfo.width===width&&me.scaleInfo.height===height){return;}
highlightId=me.highlightId;if(!width){ratio=height/me.scaleInfo.realHeight;width=Math.round(me.scaleInfo.realWidth*ratio);}
if(!height){ratio=width/me.scaleInfo.realWidth;height=Math.round(me.scaleInfo.realHeight*ratio);}
newsize={width:String(width)+'px',height:String(height)+'px'};if(!m.hasCanvas()){$(me.base_canvas).children().remove();}
els=$(me.wrapper).find('.mapster_el');if(me.options.enableAutoResizeSupport!==true){els=els.add(me.wrapper);}
if(duration){promises=[];me.currentAction='resizing';els.filter(':visible').each(function(_,e){p=u.defer();promises.push(p);$(e).animate(newsize,{duration:duration,complete:p.resolve,easing:'linear'});});els.filter(':hidden').css(newsize);p=u.defer();promises.push(p);u.when.all(promises).then(finishResize);resizeMapData();p.resolve();}else{els.css(newsize);resizeMapData();finishResize();}};m.MapData.prototype.autoResize=function(duration,callback){var me=this;me.resize($(me.wrapper).width(),null,duration,callback);};m.MapData.prototype.configureAutoResize=function(){var me=this,ns=me.instanceEventNamespace();function resizeMap(){if(me.options.autoResize!==true){return;}
me.autoResize(me.options.autoResizeDuration,me.options.onAutoResize);}
function debounce(){if(me.autoResizeTimer){clearTimeout(me.autoResizeTimer);}
me.autoResizeTimer=setTimeout(resizeMap,me.options.autoResizeDelay);}
$(me.image).on('load'+ns,resizeMap);$(window).on('focus'+ns,resizeMap);$(window).on('resize'+ns,debounce);$(window).on('readystatechange'+ns,resizeMap);$(window.document).on('fullscreenchange'+ns,resizeMap);resizeMap();};m.MapArea=u.subclass(m.MapArea,function(){this.base.init();if(this.owner.scaleInfo.scale){this.resize();}});p.coords=function(percent,coordOffset){var j,newCoords=[],pct=percent||this.owner.scaleInfo.scalePct,offset=coordOffset||0;if(pct===1&&coordOffset===0){return this.originalCoords;}
for(j=0;j<this.length;j++){newCoords.push(Math.round(this.originalCoords[j]*pct)+offset);}
return newCoords;};p.resize=function(){this.area.coords=this.coords().join(',');};p.reset=function(){this.area.coords=this.coords(1).join(',');};m.impl.resize=function(width,height,duration,callback){var x=new m.Method(this,function(){var me=this,noDimensions=!width&&!height,isAutoResize=me.options.enableAutoResizeSupport&&me.options.autoResize&&noDimensions;if(isAutoResize){me.autoResize(duration,callback);return;}
if(noDimensions){return false;}
me.resize(width,height,duration,callback);},null,{name:'resize',args:arguments}).go();return x;};})(jQuery);(function($){'use strict';var m=$.mapster,u=m.utils;$.extend(m.defaults,{toolTipContainer:'<div style="border: 2px solid black; background: #EEEEEE; width:160px; padding:4px; margin: 4px; -moz-box-shadow: 3px 3px 5px #535353; '+'-webkit-box-shadow: 3px 3px 5px #535353; box-shadow: 3px 3px 5px #535353; -moz-border-radius: 6px 6px 6px 6px; -webkit-border-radius: 6px; '+'border-radius: 6px 6px 6px 6px; opacity: 0.9;"></div>',showToolTip:false,toolTip:null,toolTipFade:true,toolTipClose:['area-mouseout','image-mouseout','generic-mouseout'],onShowToolTip:null,onHideToolTip:null});$.extend(m.area_defaults,{toolTip:null,toolTipClose:null});function createToolTip(html,template,css){var tooltip;if(template){tooltip=typeof template==='string'?$(template):$(template).clone();tooltip.append(html);}else{tooltip=$(html);}
tooltip.css($.extend(css||{},{display:'block',position:'absolute'})).hide();$('body').append(tooltip);tooltip.attr('data-opacity',tooltip.css('opacity')).css('opacity',0);return tooltip.show();}
function showToolTipImpl(tooltip,options){var tooltipCss={left:options.left+'px',top:options.top+'px'},actalOpacity=tooltip.attr('data-opacity')||0,zindex=tooltip.css('z-index');if(parseInt(zindex,10)===0||zindex==='auto'){tooltipCss['z-index']=9999;}
tooltip.css(tooltipCss).addClass('mapster_tooltip');if(options.fadeDuration&&options.fadeDuration>0){u.fader(tooltip[0],0,actalOpacity,options.fadeDuration);}else{u.setOpacity(tooltip[0],actalOpacity);}}
m.MapData.prototype.clearToolTip=function(){if(this.activeToolTip){this.activeToolTip.stop().remove();this.activeToolTip=null;this.activeToolTipID=null;u.ifFunction(this.options.onHideToolTip,this);}};function bindToolTipClose(options,bindOption,event,target,beforeClose,onClose){var tooltip_ns='.mapster.tooltip',event_name=event+tooltip_ns;if($.inArray(bindOption,options)>=0){target.off(event_name).on(event_name,function(e){if(!beforeClose||beforeClose.call(this,e)){target.off(tooltip_ns);if(onClose){onClose.call(this);}}});return{object:target,event:event_name};}}
function showToolTip(tooltip,target,image,container,options){var corners,ttopts={};options=options||{};if(target){corners=u.areaCorners(target,image,container,tooltip.outerWidth(true),tooltip.outerHeight(true));ttopts.left=corners[0];ttopts.top=corners[1];}else{ttopts.left=options.left;ttopts.top=options.top;}
ttopts.left+=options.offsetx||0;ttopts.top+=options.offsety||0;ttopts.css=options.css;ttopts.fadeDuration=options.fadeDuration;showToolTipImpl(tooltip,ttopts);return tooltip;}
m.AreaData.prototype.showToolTip=function(content,options){var tooltip,closeOpts,target,tipClosed,template,ttopts={},ad=this,md=ad.owner,areaOpts=ad.effectiveOptions();options=options?$.extend({},options):{};content=content||areaOpts.toolTip;closeOpts=options.closeEvents||areaOpts.toolTipClose||md.options.toolTipClose||'tooltip-click';template=typeof options.template!=='undefined'?options.template:md.options.toolTipContainer;options.closeEvents=typeof closeOpts==='string'?(closeOpts=u.split(closeOpts)):closeOpts;options.fadeDuration=options.fadeDuration||(md.options.toolTipFade?md.options.fadeDuration||areaOpts.fadeDuration:0);target=ad.area?ad.area:$.map(ad.areas(),function(e){return e.area;});if(md.activeToolTipID===ad.areaId){return;}
md.clearToolTip();var effectiveContent=u.isFunction(content)?content({key:this.key,target:target}):content;if(!effectiveContent){return;}
md.activeToolTip=tooltip=createToolTip(effectiveContent,template,options.css);md.activeToolTipID=ad.areaId;tipClosed=function(){md.clearToolTip();};bindToolTipClose(closeOpts,'area-click','click',$(md.map),null,tipClosed);bindToolTipClose(closeOpts,'tooltip-click','click',tooltip,null,tipClosed);bindToolTipClose(closeOpts,'image-mouseout','mouseout',$(md.image),function(e){return(e.relatedTarget&&e.relatedTarget.nodeName!=='AREA'&&e.relatedTarget!==ad.area);},tipClosed);bindToolTipClose(closeOpts,'image-click','click',$(md.image),null,tipClosed);showToolTip(tooltip,target,md.image,options.container,options);u.ifFunction(md.options.onShowToolTip,ad.area,{toolTip:tooltip,options:ttopts,areaOptions:areaOpts,key:ad.key,selected:ad.isSelected()});return tooltip;};function getHtmlFromOptions(options){return options?typeof options==='string'||options.jquery||u.isFunction(options)?options:options.content:null;}
function getOptionsFromOptions(options){return options?typeof options=='string'||options.jquery||u.isFunction(options)?{content:options}:options:{};}
m.impl.tooltip=function(key,options){return new m.Method(this,function mapData(){var tooltip,target,defaultTarget,closeOpts,tipClosed,md=this;if(!key){md.clearToolTip();}else{target=$(key);defaultTarget=target&&target.length>0?target[0]:null;if(md.activeToolTipID===defaultTarget){return;}
md.clearToolTip();if(!defaultTarget){return;}
var content=getHtmlFromOptions(options),effectiveContent=u.isFunction(content)?content({key:this.key,target:target}):content;if(!effectiveContent){return;}
options=getOptionsFromOptions(options);closeOpts=options.closeEvents||md.options.toolTipClose||'tooltip-click';options.closeEvents=typeof closeOpts==='string'?(closeOpts=u.split(closeOpts)):closeOpts;options.fadeDuration=options.fadeDuration||(md.options.toolTipFade?md.options.fadeDuration:0);tipClosed=function(){md.clearToolTip();};md.activeToolTip=tooltip=createToolTip(effectiveContent,options.template||md.options.toolTipContainer,options.css);md.activeToolTipID=defaultTarget;bindToolTipClose(closeOpts,'tooltip-click','click',tooltip,null,tipClosed);bindToolTipClose(closeOpts,'generic-mouseout','mouseout',target,null,tipClosed);bindToolTipClose(closeOpts,'generic-click','click',target,null,tipClosed);md.activeToolTip=tooltip=showToolTip(tooltip,target,md.image,options.container,options);}},function areaData(){if($.isPlainObject(key)&&!options){options=key;}
this.showToolTip(getHtmlFromOptions(options),getOptionsFromOptions(options));},{name:'tooltip',args:arguments,key:key}).go();};})(jQuery);}));
;;;;(function($,window,document,undefined){function Owl(element,options){this.settings=null;this.options=$.extend({},Owl.Defaults,options);this.$element=$(element);this._handlers={};this._plugins={};this._supress={};this._current=null;this._speed=null;this._coordinates=[];this._breakpoint=null;this._width=null;this._items=[];this._clones=[];this._mergers=[];this._widths=[];this._invalidated={};this._pipe=[];this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null};this._states={current:{},tags:{'initializing':['busy'],'animating':['busy'],'dragging':['interacting']}};$.each(['onResize','onThrottledResize'],$.proxy(function(i,handler){this._handlers[handler]=$.proxy(this[handler],this);},this));$.each(Owl.Plugins,$.proxy(function(key,plugin){this._plugins[key.charAt(0).toLowerCase()+key.slice(1)]=new plugin(this);},this));$.each(Owl.Workers,$.proxy(function(priority,worker){this._pipe.push({'filter':worker.filter,'run':$.proxy(worker.run,this)});},this));this.setup();this.initialize();}
Owl.Defaults={items:3,loop:false,center:false,rewind:false,checkVisibility:true,mouseDrag:true,touchDrag:true,pullDrag:true,freeDrag:false,margin:0,stagePadding:0,merge:false,mergeFit:true,autoWidth:false,startPosition:0,rtl:false,smartSpeed:250,fluidSpeed:false,dragEndSpeed:false,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:window,fallbackEasing:'swing',slideTransition:'',info:false,nestedItemSelector:false,itemElement:'div',stageElement:'div',refreshClass:'owl-refresh',loadedClass:'owl-loaded',loadingClass:'owl-loading',rtlClass:'owl-rtl',responsiveClass:'owl-responsive',dragClass:'owl-drag',itemClass:'owl-item',stageClass:'owl-stage',stageOuterClass:'owl-stage-outer',grabClass:'owl-grab'};Owl.Width={Default:'default',Inner:'inner',Outer:'outer'};Owl.Type={Event:'event',State:'state'};Owl.Plugins={};Owl.Workers=[{filter:['width','settings'],run:function(){this._width=this.$element.width();}},{filter:['width','items','settings'],run:function(cache){cache.current=this._items&&this._items[this.relative(this._current)];}},{filter:['items','settings'],run:function(){this.$stage.children('.cloned').remove();}},{filter:['width','items','settings'],run:function(cache){var margin=this.settings.margin||'',grid=!this.settings.autoWidth,rtl=this.settings.rtl,css={'width':'auto','margin-left':rtl?margin:'','margin-right':rtl?'':margin};!grid&&this.$stage.children().css(css);cache.css=css;}},{filter:['width','items','settings'],run:function(cache){var width=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,merge=null,iterator=this._items.length,grid=!this.settings.autoWidth,widths=[];cache.items={merge:false,width:width};while(iterator--){merge=this._mergers[iterator];merge=this.settings.mergeFit&&Math.min(merge,this.settings.items)||merge;cache.items.merge=merge>1||cache.items.merge;widths[iterator]=!grid?this._items[iterator].width():width*merge;}
this._widths=widths;}},{filter:['items','settings'],run:function(){var clones=[],items=this._items,settings=this.settings,view=Math.max(settings.items*2,4),size=Math.ceil(items.length/2)*2,repeat=settings.loop&&items.length?settings.rewind?view:Math.max(view,size):0,append='',prepend='';repeat/=2;while(repeat>0){clones.push(this.normalize(clones.length/2,true));append=append+items[clones[clones.length-1]][0].outerHTML;clones.push(this.normalize(items.length-1-(clones.length-1)/2,true));prepend=items[clones[clones.length-1]][0].outerHTML+prepend;repeat-=1;}
this._clones=clones;$(append).addClass('cloned').appendTo(this.$stage);$(prepend).addClass('cloned').prependTo(this.$stage);}},{filter:['width','items','settings'],run:function(){var rtl=this.settings.rtl?1:-1,size=this._clones.length+this._items.length,iterator=-1,previous=0,current=0,coordinates=[];while(++iterator<size){previous=coordinates[iterator-1]||0;current=this._widths[this.relative(iterator)]+this.settings.margin;coordinates.push(previous+current*rtl);}
this._coordinates=coordinates;}},{filter:['width','items','settings'],run:function(){var padding=this.settings.stagePadding,coordinates=this._coordinates,css={'width':Math.ceil(Math.abs(coordinates[coordinates.length-1]))+padding*2,'padding-left':padding||'','padding-right':padding||''};this.$stage.css(css);}},{filter:['width','items','settings'],run:function(cache){var iterator=this._coordinates.length,grid=!this.settings.autoWidth,items=this.$stage.children();if(grid&&cache.items.merge){while(iterator--){cache.css.width=this._widths[this.relative(iterator)];items.eq(iterator).css(cache.css);}}else if(grid){cache.css.width=cache.items.width;items.css(cache.css);}}},{filter:['items'],run:function(){this._coordinates.length<1&&this.$stage.removeAttr('style');}},{filter:['width','items','settings'],run:function(cache){cache.current=cache.current?this.$stage.children().index(cache.current):0;cache.current=Math.max(this.minimum(),Math.min(this.maximum(),cache.current));this.reset(cache.current);}},{filter:['position'],run:function(){this.animate(this.coordinates(this._current));}},{filter:['width','position','items','settings'],run:function(){var rtl=this.settings.rtl?1:-1,padding=this.settings.stagePadding*2,begin=this.coordinates(this.current())+padding,end=begin+this.width()*rtl,inner,outer,matches=[],i,n;for(i=0,n=this._coordinates.length;i<n;i++){inner=this._coordinates[i-1]||0;outer=Math.abs(this._coordinates[i])+padding*rtl;if((this.op(inner,'<=',begin)&&(this.op(inner,'>',end)))||(this.op(outer,'<',begin)&&this.op(outer,'>',end))){matches.push(i);}}
this.$stage.children('.active').removeClass('active');this.$stage.children(':eq('+matches.join('), :eq(')+')').addClass('active');this.$stage.children('.center').removeClass('center');if(this.settings.center){this.$stage.children().eq(this.current()).addClass('center');}}}];Owl.prototype.initializeStage=function(){this.$stage=this.$element.find('.'+this.settings.stageClass);if(this.$stage.length){return;}
this.$element.addClass(this.options.loadingClass);this.$stage=$('<'+this.settings.stageElement+'>',{"class":this.settings.stageClass}).wrap($('<div/>',{"class":this.settings.stageOuterClass}));this.$element.append(this.$stage.parent());};Owl.prototype.initializeItems=function(){var $items=this.$element.find('.owl-item');if($items.length){this._items=$items.get().map(function(item){return $(item);});this._mergers=this._items.map(function(){return 1;});this.refresh();return;}
this.replace(this.$element.children().not(this.$stage.parent()));if(this.isVisible()){this.refresh();}else{this.invalidate('width');}
this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass);};Owl.prototype.initialize=function(){this.enter('initializing');this.trigger('initialize');this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl);if(this.settings.autoWidth&&!this.is('pre-loading')){var imgs,nestedSelector,width;imgs=this.$element.find('img');nestedSelector=this.settings.nestedItemSelector?'.'+this.settings.nestedItemSelector:undefined;width=this.$element.children(nestedSelector).width();if(imgs.length&&width<=0){this.preloadAutoWidthImages(imgs);}}
this.initializeStage();this.initializeItems();this.registerEventHandlers();this.leave('initializing');this.trigger('initialized');};Owl.prototype.isVisible=function(){return this.settings.checkVisibility?this.$element.is(':visible'):true;};Owl.prototype.setup=function(){var viewport=this.viewport(),overwrites=this.options.responsive,match=-1,settings=null;if(!overwrites){settings=$.extend({},this.options);}else{$.each(overwrites,function(breakpoint){if(breakpoint<=viewport&&breakpoint>match){match=Number(breakpoint);}});settings=$.extend({},this.options,overwrites[match]);if(typeof settings.stagePadding==='function'){settings.stagePadding=settings.stagePadding();}
delete settings.responsive;if(settings.responsiveClass){this.$element.attr('class',this.$element.attr('class').replace(new RegExp('('+this.options.responsiveClass+'-)\\S+\\s','g'),'$1'+match));}}
this.trigger('change',{property:{name:'settings',value:settings}});this._breakpoint=match;this.settings=settings;this.invalidate('settings');this.trigger('changed',{property:{name:'settings',value:this.settings}});};Owl.prototype.optionsLogic=function(){if(this.settings.autoWidth){this.settings.stagePadding=false;this.settings.merge=false;}};Owl.prototype.prepare=function(item){var event=this.trigger('prepare',{content:item});if(!event.data){event.data=$('<'+this.settings.itemElement+'/>').addClass(this.options.itemClass).append(item)}
this.trigger('prepared',{content:event.data});return event.data;};Owl.prototype.update=function(){var i=0,n=this._pipe.length,filter=$.proxy(function(p){return this[p]},this._invalidated),cache={};while(i<n){if(this._invalidated.all||$.grep(this._pipe[i].filter,filter).length>0){this._pipe[i].run(cache);}
i++;}
this._invalidated={};!this.is('valid')&&this.enter('valid');};Owl.prototype.width=function(dimension){dimension=dimension||Owl.Width.Default;switch(dimension){case Owl.Width.Inner:case Owl.Width.Outer:return this._width;default:return this._width-this.settings.stagePadding*2+this.settings.margin;}};Owl.prototype.refresh=function(){this.enter('refreshing');this.trigger('refresh');this.setup();this.optionsLogic();this.$element.addClass(this.options.refreshClass);this.update();this.$element.removeClass(this.options.refreshClass);this.leave('refreshing');this.trigger('refreshed');};Owl.prototype.onThrottledResize=function(){window.clearTimeout(this.resizeTimer);this.resizeTimer=window.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate);};Owl.prototype.onResize=function(){if(!this._items.length){return false;}
if(this._width===this.$element.width()){return false;}
if(!this.isVisible()){return false;}
this.enter('resizing');if(this.trigger('resize').isDefaultPrevented()){this.leave('resizing');return false;}
this.invalidate('width');this.refresh();this.leave('resizing');this.trigger('resized');};Owl.prototype.registerEventHandlers=function(){if($.support.transition){this.$stage.on($.support.transition.end+'.owl.core',$.proxy(this.onTransitionEnd,this));}
if(this.settings.responsive!==false){this.on(window,'resize',this._handlers.onThrottledResize);}
if(this.settings.mouseDrag){this.$element.addClass(this.options.dragClass);this.$stage.on('mousedown.owl.core',$.proxy(this.onDragStart,this));this.$stage.on('dragstart.owl.core selectstart.owl.core',function(){return false});}
if(this.settings.touchDrag){this.$stage.on('touchstart.owl.core',$.proxy(this.onDragStart,this));this.$stage.on('touchcancel.owl.core',$.proxy(this.onDragEnd,this));}};Owl.prototype.onDragStart=function(event){var stage=null;if(event.which===3){return;}
if($.support.transform){stage=this.$stage.css('transform').replace(/.*\(|\)| /g,'').split(',');stage={x:stage[stage.length===16?12:4],y:stage[stage.length===16?13:5]};}else{stage=this.$stage.position();stage={x:this.settings.rtl?stage.left+this.$stage.width()-this.width()+this.settings.margin:stage.left,y:stage.top};}
if(this.is('animating')){$.support.transform?this.animate(stage.x):this.$stage.stop()
this.invalidate('position');}
this.$element.toggleClass(this.options.grabClass,event.type==='mousedown');this.speed(0);this._drag.time=new Date().getTime();this._drag.target=$(event.target);this._drag.stage.start=stage;this._drag.stage.current=stage;this._drag.pointer=this.pointer(event);$(document).on('mouseup.owl.core touchend.owl.core',$.proxy(this.onDragEnd,this));$(document).one('mousemove.owl.core touchmove.owl.core',$.proxy(function(event){var delta=this.difference(this._drag.pointer,this.pointer(event));$(document).on('mousemove.owl.core touchmove.owl.core',$.proxy(this.onDragMove,this));if(Math.abs(delta.x)<Math.abs(delta.y)&&this.is('valid')){return;}
event.preventDefault();this.enter('dragging');this.trigger('drag');},this));};Owl.prototype.onDragMove=function(event){var minimum=null,maximum=null,pull=null,delta=this.difference(this._drag.pointer,this.pointer(event)),stage=this.difference(this._drag.stage.start,delta);if(!this.is('dragging')){return;}
event.preventDefault();if(this.settings.loop){minimum=this.coordinates(this.minimum());maximum=this.coordinates(this.maximum()+1)-minimum;stage.x=(((stage.x-minimum)%maximum+maximum)%maximum)+minimum;}else{minimum=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum());maximum=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum());pull=this.settings.pullDrag?-1*delta.x/5:0;stage.x=Math.max(Math.min(stage.x,minimum+pull),maximum+pull);}
this._drag.stage.current=stage;this.animate(stage.x);};Owl.prototype.onDragEnd=function(event){var delta=this.difference(this._drag.pointer,this.pointer(event)),stage=this._drag.stage.current,direction=delta.x>0^this.settings.rtl?'left':'right';$(document).off('.owl.core');this.$element.removeClass(this.options.grabClass);if(delta.x!==0&&this.is('dragging')||!this.is('valid')){this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed);this.current(this.closest(stage.x,delta.x!==0?direction:this._drag.direction));this.invalidate('position');this.update();this._drag.direction=direction;if(Math.abs(delta.x)>3||new Date().getTime()-this._drag.time>300){this._drag.target.one('click.owl.core',function(){return false;});}}
if(!this.is('dragging')){return;}
this.leave('dragging');this.trigger('dragged');};Owl.prototype.closest=function(coordinate,direction){var position=-1,pull=30,width=this.width(),coordinates=this.coordinates();if(!this.settings.freeDrag){$.each(coordinates,$.proxy(function(index,value){if(direction==='left'&&coordinate>value-pull&&coordinate<value+pull){position=index;}else if(direction==='right'&&coordinate>value-width-pull&&coordinate<value-width+pull){position=index+1;}else if(this.op(coordinate,'<',value)&&this.op(coordinate,'>',coordinates[index+1]!==undefined?coordinates[index+1]:value-width)){position=direction==='left'?index+1:index;}
return position===-1;},this));}
if(!this.settings.loop){if(this.op(coordinate,'>',coordinates[this.minimum()])){position=coordinate=this.minimum();}else if(this.op(coordinate,'<',coordinates[this.maximum()])){position=coordinate=this.maximum();}}
return position;};Owl.prototype.animate=function(coordinate){var animate=this.speed()>0;this.is('animating')&&this.onTransitionEnd();if(animate){this.enter('animating');this.trigger('translate');}
if($.support.transform3d&&$.support.transition){this.$stage.css({transform:'translate3d('+coordinate+'px,0px,0px)',transition:(this.speed()/1000)+'s'+(this.settings.slideTransition?' '+this.settings.slideTransition:'')});}else if(animate){this.$stage.animate({left:coordinate+'px'},this.speed(),this.settings.fallbackEasing,$.proxy(this.onTransitionEnd,this));}else{this.$stage.css({left:coordinate+'px'});}};Owl.prototype.is=function(state){return this._states.current[state]&&this._states.current[state]>0;};Owl.prototype.current=function(position){if(position===undefined){return this._current;}
if(this._items.length===0){return undefined;}
position=this.normalize(position);if(this._current!==position){var event=this.trigger('change',{property:{name:'position',value:position}});if(event.data!==undefined){position=this.normalize(event.data);}
this._current=position;this.invalidate('position');this.trigger('changed',{property:{name:'position',value:this._current}});}
return this._current;};Owl.prototype.invalidate=function(part){if($.type(part)==='string'){this._invalidated[part]=true;this.is('valid')&&this.leave('valid');}
return $.map(this._invalidated,function(v,i){return i});};Owl.prototype.reset=function(position){position=this.normalize(position);if(position===undefined){return;}
this._speed=0;this._current=position;this.suppress(['translate','translated']);this.animate(this.coordinates(position));this.release(['translate','translated']);};Owl.prototype.normalize=function(position,relative){var n=this._items.length,m=relative?0:this._clones.length;if(!this.isNumeric(position)||n<1){position=undefined;}else if(position<0||position>=n+m){position=((position-m/2)%n+n)%n+m/2;}
return position;};Owl.prototype.relative=function(position){position-=this._clones.length/2;return this.normalize(position,true);};Owl.prototype.maximum=function(relative){var settings=this.settings,maximum=this._coordinates.length,iterator,reciprocalItemsWidth,elementWidth;if(settings.loop){maximum=this._clones.length/2+this._items.length-1;}else if(settings.autoWidth||settings.merge){iterator=this._items.length;if(iterator){reciprocalItemsWidth=this._items[--iterator].width();elementWidth=this.$element.width();while(iterator--){reciprocalItemsWidth+=this._items[iterator].width()+this.settings.margin;if(reciprocalItemsWidth>elementWidth){break;}}}
maximum=iterator+1;}else if(settings.center){maximum=this._items.length-1;}else{maximum=this._items.length-settings.items;}
if(relative){maximum-=this._clones.length/2;}
return Math.max(maximum,0);};Owl.prototype.minimum=function(relative){return relative?0:this._clones.length/2;};Owl.prototype.items=function(position){if(position===undefined){return this._items.slice();}
position=this.normalize(position,true);return this._items[position];};Owl.prototype.mergers=function(position){if(position===undefined){return this._mergers.slice();}
position=this.normalize(position,true);return this._mergers[position];};Owl.prototype.clones=function(position){var odd=this._clones.length/2,even=odd+this._items.length,map=function(index){return index%2===0?even+index/2:odd-(index+1)/2};if(position===undefined){return $.map(this._clones,function(v,i){return map(i)});}
return $.map(this._clones,function(v,i){return v===position?map(i):null});};Owl.prototype.speed=function(speed){if(speed!==undefined){this._speed=speed;}
return this._speed;};Owl.prototype.coordinates=function(position){var multiplier=1,newPosition=position-1,coordinate;if(position===undefined){return $.map(this._coordinates,$.proxy(function(coordinate,index){return this.coordinates(index);},this));}
if(this.settings.center){if(this.settings.rtl){multiplier=-1;newPosition=position+1;}
coordinate=this._coordinates[position];coordinate+=(this.width()-coordinate+(this._coordinates[newPosition]||0))/2*multiplier;}else{coordinate=this._coordinates[newPosition]||0;}
coordinate=Math.ceil(coordinate);return coordinate;};Owl.prototype.duration=function(from,to,factor){if(factor===0){return 0;}
return Math.min(Math.max(Math.abs(to-from),1),6)*Math.abs((factor||this.settings.smartSpeed));};Owl.prototype.to=function(position,speed){var current=this.current(),revert=null,distance=position-this.relative(current),direction=(distance>0)-(distance<0),items=this._items.length,minimum=this.minimum(),maximum=this.maximum();if(this.settings.loop){if(!this.settings.rewind&&Math.abs(distance)>items/2){distance+=direction* -1*items;}
position=current+distance;revert=((position-minimum)%items+items)%items+minimum;if(revert!==position&&revert-distance<=maximum&&revert-distance>0){current=revert-distance;position=revert;this.reset(current);}}else if(this.settings.rewind){maximum+=1;position=(position%maximum+maximum)%maximum;}else{position=Math.max(minimum,Math.min(maximum,position));}
this.speed(this.duration(current,position,speed));this.current(position);if(this.isVisible()){this.update();}};Owl.prototype.next=function(speed){speed=speed||false;this.to(this.relative(this.current())+1,speed);};Owl.prototype.prev=function(speed){speed=speed||false;this.to(this.relative(this.current())-1,speed);};Owl.prototype.onTransitionEnd=function(event){if(event!==undefined){event.stopPropagation();if((event.target||event.srcElement||event.originalTarget)!==this.$stage.get(0)){return false;}}
this.leave('animating');this.trigger('translated');};Owl.prototype.viewport=function(){var width;if(this.options.responsiveBaseElement!==window){width=$(this.options.responsiveBaseElement).width();}else if(window.innerWidth){width=window.innerWidth;}else if(document.documentElement&&document.documentElement.clientWidth){width=document.documentElement.clientWidth;}else{console.warn('Can not detect viewport width.');}
return width;};Owl.prototype.replace=function(content){this.$stage.empty();this._items=[];if(content){content=(content instanceof jQuery)?content:$(content);}
if(this.settings.nestedItemSelector){content=content.find('.'+this.settings.nestedItemSelector);}
content.filter(function(){return this.nodeType===1;}).each($.proxy(function(index,item){item=this.prepare(item);this.$stage.append(item);this._items.push(item);this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge')*1||1);},this));this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0);this.invalidate('items');};Owl.prototype.add=function(content,position){var current=this.relative(this._current);position=position===undefined?this._items.length:this.normalize(position,true);content=content instanceof jQuery?content:$(content);this.trigger('add',{content:content,position:position});content=this.prepare(content);if(this._items.length===0||position===this._items.length){this._items.length===0&&this.$stage.append(content);this._items.length!==0&&this._items[position-1].after(content);this._items.push(content);this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge')*1||1);}else{this._items[position].before(content);this._items.splice(position,0,content);this._mergers.splice(position,0,content.find('[data-merge]').addBack('[data-merge]').attr('data-merge')*1||1);}
this._items[current]&&this.reset(this._items[current].index());this.invalidate('items');this.trigger('added',{content:content,position:position});};Owl.prototype.remove=function(position){position=this.normalize(position,true);if(position===undefined){return;}
this.trigger('remove',{content:this._items[position],position:position});this._items[position].remove();this._items.splice(position,1);this._mergers.splice(position,1);this.invalidate('items');this.trigger('removed',{content:null,position:position});};Owl.prototype.preloadAutoWidthImages=function(images){images.each($.proxy(function(i,element){this.enter('pre-loading');element=$(element);$(new Image()).one('load',$.proxy(function(e){element.attr('src',e.target.src);element.css('opacity',1);this.leave('pre-loading');!this.is('pre-loading')&&!this.is('initializing')&&this.refresh();},this)).attr('src',element.attr('src')||element.attr('data-src')||element.attr('data-src-retina'));},this));};Owl.prototype.destroy=function(){this.$element.off('.owl.core');this.$stage.off('.owl.core');$(document).off('.owl.core');if(this.settings.responsive!==false){window.clearTimeout(this.resizeTimer);this.off(window,'resize',this._handlers.onThrottledResize);}
for(var i in this._plugins){this._plugins[i].destroy();}
this.$stage.children('.cloned').remove();this.$stage.unwrap();this.$stage.children().contents().unwrap();this.$stage.children().unwrap();this.$stage.remove();this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr('class',this.$element.attr('class').replace(new RegExp(this.options.responsiveClass+'-\\S+\\s','g'),'')).removeData('owl.carousel');};Owl.prototype.op=function(a,o,b){var rtl=this.settings.rtl;switch(o){case'<':return rtl?a>b:a<b;case'>':return rtl?a<b:a>b;case'>=':return rtl?a<=b:a>=b;case'<=':return rtl?a>=b:a<=b;default:break;}};Owl.prototype.on=function(element,event,listener,capture){if(element.addEventListener){element.addEventListener(event,listener,capture);}else if(element.attachEvent){element.attachEvent('on'+event,listener);}};Owl.prototype.off=function(element,event,listener,capture){if(element.removeEventListener){element.removeEventListener(event,listener,capture);}else if(element.detachEvent){element.detachEvent('on'+event,listener);}};Owl.prototype.trigger=function(name,data,namespace,state,enter){var status={item:{count:this._items.length,index:this.current()}},handler=$.camelCase($.grep(['on',name,namespace],function(v){return v}).join('-').toLowerCase()),event=$.Event([name,'owl',namespace||'carousel'].join('.').toLowerCase(),$.extend({relatedTarget:this},status,data));if(!this._supress[name]){$.each(this._plugins,function(name,plugin){if(plugin.onTrigger){plugin.onTrigger(event);}});this.register({type:Owl.Type.Event,name:name});this.$element.trigger(event);if(this.settings&&typeof this.settings[handler]==='function'){this.settings[handler].call(this,event);}}
return event;};Owl.prototype.enter=function(name){$.each([name].concat(this._states.tags[name]||[]),$.proxy(function(i,name){if(this._states.current[name]===undefined){this._states.current[name]=0;}
this._states.current[name]++;},this));};Owl.prototype.leave=function(name){$.each([name].concat(this._states.tags[name]||[]),$.proxy(function(i,name){this._states.current[name]--;},this));};Owl.prototype.register=function(object){if(object.type===Owl.Type.Event){if(!$.event.special[object.name]){$.event.special[object.name]={};}
if(!$.event.special[object.name].owl){var _default=$.event.special[object.name]._default;$.event.special[object.name]._default=function(e){if(_default&&_default.apply&&(!e.namespace||e.namespace.indexOf('owl')===-1)){return _default.apply(this,arguments);}
return e.namespace&&e.namespace.indexOf('owl')>-1;};$.event.special[object.name].owl=true;}}else if(object.type===Owl.Type.State){if(!this._states.tags[object.name]){this._states.tags[object.name]=object.tags;}else{this._states.tags[object.name]=this._states.tags[object.name].concat(object.tags);}
this._states.tags[object.name]=$.grep(this._states.tags[object.name],$.proxy(function(tag,i){return $.inArray(tag,this._states.tags[object.name])===i;},this));}};Owl.prototype.suppress=function(events){$.each(events,$.proxy(function(index,event){this._supress[event]=true;},this));};Owl.prototype.release=function(events){$.each(events,$.proxy(function(index,event){delete this._supress[event];},this));};Owl.prototype.pointer=function(event){var result={x:null,y:null};event=event.originalEvent||event||window.event;event=event.touches&&event.touches.length?event.touches[0]:event.changedTouches&&event.changedTouches.length?event.changedTouches[0]:event;if(event.pageX){result.x=event.pageX;result.y=event.pageY;}else{result.x=event.clientX;result.y=event.clientY;}
return result;};Owl.prototype.isNumeric=function(number){return!isNaN(parseFloat(number));};Owl.prototype.difference=function(first,second){return{x:first.x-second.x,y:first.y-second.y};};$.fn.owlCarousel=function(option){var args=Array.prototype.slice.call(arguments,1);return this.each(function(){var $this=$(this),data=$this.data('owl.carousel');if(!data){data=new Owl(this,typeof option=='object'&&option);$this.data('owl.carousel',data);$.each(['next','prev','to','destroy','refresh','replace','add','remove'],function(i,event){data.register({type:Owl.Type.Event,name:event});data.$element.on(event+'.owl.carousel.core',$.proxy(function(e){if(e.namespace&&e.relatedTarget!==this){this.suppress([event]);data[event].apply(this,[].slice.call(arguments,1));this.release([event]);}},data));});}
if(typeof option=='string'&&option.charAt(0)!=='_'){data[option].apply(data,args);}});};$.fn.owlCarousel.Constructor=Owl;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){var AutoRefresh=function(carousel){this._core=carousel;this._interval=null;this._visible=null;this._handlers={'initialized.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.autoRefresh){this.watch();}},this)};this._core.options=$.extend({},AutoRefresh.Defaults,this._core.options);this._core.$element.on(this._handlers);};AutoRefresh.Defaults={autoRefresh:true,autoRefreshInterval:500};AutoRefresh.prototype.watch=function(){if(this._interval){return;}
this._visible=this._core.isVisible();this._interval=window.setInterval($.proxy(this.refresh,this),this._core.settings.autoRefreshInterval);};AutoRefresh.prototype.refresh=function(){if(this._core.isVisible()===this._visible){return;}
this._visible=!this._visible;this._core.$element.toggleClass('owl-hidden',!this._visible);this._visible&&(this._core.invalidate('width')&&this._core.refresh());};AutoRefresh.prototype.destroy=function(){var handler,property;window.clearInterval(this._interval);for(handler in this._handlers){this._core.$element.off(handler,this._handlers[handler]);}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!='function'&&(this[property]=null);}};$.fn.owlCarousel.Constructor.Plugins.AutoRefresh=AutoRefresh;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){var Lazy=function(carousel){this._core=carousel;this._loaded=[];this._handlers={'initialized.owl.carousel change.owl.carousel resized.owl.carousel':$.proxy(function(e){if(!e.namespace){return;}
if(!this._core.settings||!this._core.settings.lazyLoad){return;}
if((e.property&&e.property.name=='position')||e.type=='initialized'){var settings=this._core.settings,n=(settings.center&&Math.ceil(settings.items/2)||settings.items),i=((settings.center&&n* -1)||0),position=(e.property&&e.property.value!==undefined?e.property.value:this._core.current())+i,clones=this._core.clones().length,load=$.proxy(function(i,v){this.load(v)},this);if(settings.lazyLoadEager>0){n+=settings.lazyLoadEager;if(settings.loop){position-=settings.lazyLoadEager;n++;}}
while(i++<n){this.load(clones/2+this._core.relative(position));clones&&$.each(this._core.clones(this._core.relative(position)),load);position++;}}},this)};this._core.options=$.extend({},Lazy.Defaults,this._core.options);this._core.$element.on(this._handlers);};Lazy.Defaults={lazyLoad:false,lazyLoadEager:0};Lazy.prototype.load=function(position){var $item=this._core.$stage.children().eq(position),$elements=$item&&$item.find('.owl-lazy');if(!$elements||$.inArray($item.get(0),this._loaded)>-1){return;}
$elements.each($.proxy(function(index,element){var $element=$(element),image,url=(window.devicePixelRatio>1&&$element.attr('data-src-retina'))||$element.attr('data-src')||$element.attr('data-srcset');this._core.trigger('load',{element:$element,url:url},'lazy');if($element.is('img')){$element.one('load.owl.lazy',$.proxy(function(){$element.css('opacity',1);this._core.trigger('loaded',{element:$element,url:url},'lazy');},this)).attr('src',url);}else if($element.is('source')){$element.one('load.owl.lazy',$.proxy(function(){this._core.trigger('loaded',{element:$element,url:url},'lazy');},this)).attr('srcset',url);}else{image=new Image();image.onload=$.proxy(function(){$element.css({'background-image':'url("'+url+'")','opacity':'1'});this._core.trigger('loaded',{element:$element,url:url},'lazy');},this);image.src=url;}},this));this._loaded.push($item.get(0));};Lazy.prototype.destroy=function(){var handler,property;for(handler in this.handlers){this._core.$element.off(handler,this.handlers[handler]);}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!='function'&&(this[property]=null);}};$.fn.owlCarousel.Constructor.Plugins.Lazy=Lazy;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){var AutoHeight=function(carousel){this._core=carousel;this._previousHeight=null;this._handlers={'initialized.owl.carousel refreshed.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.autoHeight){this.update();}},this),'changed.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.autoHeight&&e.property.name==='position'){this.update();}},this),'loaded.owl.lazy':$.proxy(function(e){if(e.namespace&&this._core.settings.autoHeight&&e.element.closest('.'+this._core.settings.itemClass).index()===this._core.current()){this.update();}},this)};this._core.options=$.extend({},AutoHeight.Defaults,this._core.options);this._core.$element.on(this._handlers);this._intervalId=null;var refThis=this;$(window).on('load',function(){if(refThis._core.settings.autoHeight){refThis.update();}});$(window).resize(function(){if(refThis._core.settings.autoHeight){if(refThis._intervalId!=null){clearTimeout(refThis._intervalId);}
refThis._intervalId=setTimeout(function(){refThis.update();},250);}});};AutoHeight.Defaults={autoHeight:false,autoHeightClass:'owl-height'};AutoHeight.prototype.update=function(){var start=this._core._current,end=start+this._core.settings.items,lazyLoadEnabled=this._core.settings.lazyLoad,visible=this._core.$stage.children().toArray().slice(start,end),heights=[],maxheight=0;$.each(visible,function(index,item){heights.push($(item).height());});maxheight=Math.max.apply(null,heights);if(maxheight<=1&&lazyLoadEnabled&&this._previousHeight){maxheight=this._previousHeight;}
this._previousHeight=maxheight;this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass);};AutoHeight.prototype.destroy=function(){var handler,property;for(handler in this._handlers){this._core.$element.off(handler,this._handlers[handler]);}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!=='function'&&(this[property]=null);}};$.fn.owlCarousel.Constructor.Plugins.AutoHeight=AutoHeight;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){var Video=function(carousel){this._core=carousel;this._videos={};this._playing=null;this._handlers={'initialized.owl.carousel':$.proxy(function(e){if(e.namespace){this._core.register({type:'state',name:'playing',tags:['interacting']});}},this),'resize.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.video&&this.isInFullScreen()){e.preventDefault();}},this),'refreshed.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.is('resizing')){this._core.$stage.find('.cloned .owl-video-frame').remove();}},this),'changed.owl.carousel':$.proxy(function(e){if(e.namespace&&e.property.name==='position'&&this._playing){this.stop();}},this),'prepared.owl.carousel':$.proxy(function(e){if(!e.namespace){return;}
var $element=$(e.content).find('.owl-video');if($element.length){$element.css('display','none');this.fetch($element,$(e.content));}},this)};this._core.options=$.extend({},Video.Defaults,this._core.options);this._core.$element.on(this._handlers);this._core.$element.on('click.owl.video','.owl-video-play-icon',$.proxy(function(e){this.play(e);},this));};Video.Defaults={video:false,videoHeight:false,videoWidth:false};Video.prototype.fetch=function(target,item){var type=(function(){if(target.attr('data-vimeo-id')){return'vimeo';}else if(target.attr('data-vzaar-id')){return'vzaar'}else{return'youtube';}})(),id=target.attr('data-vimeo-id')||target.attr('data-youtube-id')||target.attr('data-vzaar-id'),width=target.attr('data-width')||this._core.settings.videoWidth,height=target.attr('data-height')||this._core.settings.videoHeight,url=target.attr('href');if(url){id=url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);if(id[3].indexOf('youtu')>-1){type='youtube';}else if(id[3].indexOf('vimeo')>-1){type='vimeo';}else if(id[3].indexOf('vzaar')>-1){type='vzaar';}else{throw new Error('Video URL not supported.');}
id=id[6];}else{throw new Error('Missing video URL.');}
this._videos[url]={type:type,id:id,width:width,height:height};item.attr('data-video',url);this.thumbnail(target,this._videos[url]);};Video.prototype.thumbnail=function(target,video){var tnLink,icon,path,dimensions=video.width&&video.height?'width:'+video.width+'px;height:'+video.height+'px;':'',customTn=target.find('img'),srcType='src',lazyClass='',settings=this._core.settings,create=function(path){icon='<div class="owl-video-play-icon"></div>';if(settings.lazyLoad){tnLink=$('<div/>',{"class":'owl-video-tn '+lazyClass,"srcType":path});}else{tnLink=$('<div/>',{"class":"owl-video-tn","style":'opacity:1;background-image:url('+path+')'});}
target.after(tnLink);target.after(icon);};target.wrap($('<div/>',{"class":"owl-video-wrapper","style":dimensions}));if(this._core.settings.lazyLoad){srcType='data-src';lazyClass='owl-lazy';}
if(customTn.length){create(customTn.attr(srcType));customTn.remove();return false;}
if(video.type==='youtube'){path="//img.youtube.com/vi/"+video.id+"/hqdefault.jpg";create(path);}else if(video.type==='vimeo'){$.ajax({type:'GET',url:'//vimeo.com/api/v2/video/'+video.id+'.json',jsonp:'callback',dataType:'jsonp',success:function(data){path=data[0].thumbnail_large;create(path);}});}else if(video.type==='vzaar'){$.ajax({type:'GET',url:'//vzaar.com/api/videos/'+video.id+'.json',jsonp:'callback',dataType:'jsonp',success:function(data){path=data.framegrab_url;create(path);}});}};Video.prototype.stop=function(){this._core.trigger('stop',null,'video');this._playing.find('.owl-video-frame').remove();this._playing.removeClass('owl-video-playing');this._playing=null;this._core.leave('playing');this._core.trigger('stopped',null,'video');};Video.prototype.play=function(event){var target=$(event.target),item=target.closest('.'+this._core.settings.itemClass),video=this._videos[item.attr('data-video')],width=video.width||'100%',height=video.height||this._core.$stage.height(),html,iframe;if(this._playing){return;}
this._core.enter('playing');this._core.trigger('play',null,'video');item=this._core.items(this._core.relative(item.index()));this._core.reset(item.index());html=$('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>');html.attr('height',height);html.attr('width',width);if(video.type==='youtube'){html.attr('src','//www.youtube.com/embed/'+video.id+'?autoplay=1&rel=0&v='+video.id);}else if(video.type==='vimeo'){html.attr('src','//player.vimeo.com/video/'+video.id+'?autoplay=1');}else if(video.type==='vzaar'){html.attr('src','//view.vzaar.com/'+video.id+'/player?autoplay=true');}
iframe=$(html).wrap('<div class="owl-video-frame" />').insertAfter(item.find('.owl-video'));this._playing=item.addClass('owl-video-playing');};Video.prototype.isInFullScreen=function(){var element=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement;return element&&$(element).parent().hasClass('owl-video-frame');};Video.prototype.destroy=function(){var handler,property;this._core.$element.off('click.owl.video');for(handler in this._handlers){this._core.$element.off(handler,this._handlers[handler]);}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!='function'&&(this[property]=null);}};$.fn.owlCarousel.Constructor.Plugins.Video=Video;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){var Animate=function(scope){this.core=scope;this.core.options=$.extend({},Animate.Defaults,this.core.options);this.swapping=true;this.previous=undefined;this.next=undefined;this.handlers={'change.owl.carousel':$.proxy(function(e){if(e.namespace&&e.property.name=='position'){this.previous=this.core.current();this.next=e.property.value;}},this),'drag.owl.carousel dragged.owl.carousel translated.owl.carousel':$.proxy(function(e){if(e.namespace){this.swapping=e.type=='translated';}},this),'translate.owl.carousel':$.proxy(function(e){if(e.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)){this.swap();}},this)};this.core.$element.on(this.handlers);};Animate.Defaults={animateOut:false,animateIn:false};Animate.prototype.swap=function(){if(this.core.settings.items!==1){return;}
if(!$.support.animation||!$.support.transition){return;}
this.core.speed(0);var left,clear=$.proxy(this.clear,this),previous=this.core.$stage.children().eq(this.previous),next=this.core.$stage.children().eq(this.next),incoming=this.core.settings.animateIn,outgoing=this.core.settings.animateOut;if(this.core.current()===this.previous){return;}
if(outgoing){left=this.core.coordinates(this.previous)-this.core.coordinates(this.next);previous.one($.support.animation.end,clear).css({'left':left+'px'}).addClass('animated owl-animated-out').addClass(outgoing);}
if(incoming){next.one($.support.animation.end,clear).addClass('animated owl-animated-in').addClass(incoming);}};Animate.prototype.clear=function(e){$(e.target).css({'left':''}).removeClass('animated owl-animated-out owl-animated-in').removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut);this.core.onTransitionEnd();};Animate.prototype.destroy=function(){var handler,property;for(handler in this.handlers){this.core.$element.off(handler,this.handlers[handler]);}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!='function'&&(this[property]=null);}};$.fn.owlCarousel.Constructor.Plugins.Animate=Animate;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){var Autoplay=function(carousel){this._core=carousel;this._call=null;this._time=0;this._timeout=0;this._paused=true;this._handlers={'changed.owl.carousel':$.proxy(function(e){if(e.namespace&&e.property.name==='settings'){if(this._core.settings.autoplay){this.play();}else{this.stop();}}else if(e.namespace&&e.property.name==='position'&&this._paused){this._time=0;}},this),'initialized.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.autoplay){this.play();}},this),'play.owl.autoplay':$.proxy(function(e,t,s){if(e.namespace){this.play(t,s);}},this),'stop.owl.autoplay':$.proxy(function(e){if(e.namespace){this.stop();}},this),'mouseover.owl.autoplay':$.proxy(function(){if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){this.pause();}},this),'mouseleave.owl.autoplay':$.proxy(function(){if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){this.play();}},this),'touchstart.owl.core':$.proxy(function(){if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){this.pause();}},this),'touchend.owl.core':$.proxy(function(){if(this._core.settings.autoplayHoverPause){this.play();}},this)};this._core.$element.on(this._handlers);this._core.options=$.extend({},Autoplay.Defaults,this._core.options);};Autoplay.Defaults={autoplay:false,autoplayTimeout:5000,autoplayHoverPause:false,autoplaySpeed:false};Autoplay.prototype._next=function(speed){this._call=window.setTimeout($.proxy(this._next,this,speed),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read());if(this._core.is('interacting')||document.hidden){return;}
this._core.next(speed||this._core.settings.autoplaySpeed);}
Autoplay.prototype.read=function(){return new Date().getTime()-this._time;};Autoplay.prototype.play=function(timeout,speed){var elapsed;if(!this._core.is('rotating')){this._core.enter('rotating');}
timeout=timeout||this._core.settings.autoplayTimeout;elapsed=Math.min(this._time%(this._timeout||timeout),timeout);if(this._paused){this._time=this.read();this._paused=false;}else{window.clearTimeout(this._call);}
this._time+=this.read()%timeout-elapsed;this._timeout=timeout;this._call=window.setTimeout($.proxy(this._next,this,speed),timeout-elapsed);};Autoplay.prototype.stop=function(){if(this._core.is('rotating')){this._time=0;this._paused=true;window.clearTimeout(this._call);this._core.leave('rotating');}};Autoplay.prototype.pause=function(){if(this._core.is('rotating')&&!this._paused){this._time=this.read();this._paused=true;window.clearTimeout(this._call);}};Autoplay.prototype.destroy=function(){var handler,property;this.stop();for(handler in this._handlers){this._core.$element.off(handler,this._handlers[handler]);}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!='function'&&(this[property]=null);}};$.fn.owlCarousel.Constructor.Plugins.autoplay=Autoplay;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){'use strict';var Navigation=function(carousel){this._core=carousel;this._initialized=false;this._pages=[];this._controls={};this._templates=[];this.$element=this._core.$element;this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to};this._handlers={'prepared.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.dotsData){this._templates.push('<div class="'+this._core.settings.dotClass+'">'+
$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot')+'</div>');}},this),'added.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.dotsData){this._templates.splice(e.position,0,this._templates.pop());}},this),'remove.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.dotsData){this._templates.splice(e.position,1);}},this),'changed.owl.carousel':$.proxy(function(e){if(e.namespace&&e.property.name=='position'){this.draw();}},this),'initialized.owl.carousel':$.proxy(function(e){if(e.namespace&&!this._initialized){this._core.trigger('initialize',null,'navigation');this.initialize();this.update();this.draw();this._initialized=true;this._core.trigger('initialized',null,'navigation');}},this),'refreshed.owl.carousel':$.proxy(function(e){if(e.namespace&&this._initialized){this._core.trigger('refresh',null,'navigation');this.update();this.draw();this._core.trigger('refreshed',null,'navigation');}},this)};this._core.options=$.extend({},Navigation.Defaults,this._core.options);this.$element.on(this._handlers);};Navigation.Defaults={nav:false,navText:['prev','next'],navSpeed:false,navElement:'div',navContainer:false,navContainerClass:'owl-nav',navClass:['owl-prev','owl-next'],slideBy:1,dotClass:'owl-dot',dotsClass:'owl-dots',dots:true,dotsEach:false,dotsData:false,dotsSpeed:false,dotsContainer:false};Navigation.prototype.initialize=function(){var override,settings=this._core.settings;this._controls.$relative=(settings.navContainer?$(settings.navContainer):$('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');this._controls.$previous=$('<'+settings.navElement+'>').addClass(settings.navClass[0]).html(settings.navText[0]).prependTo(this._controls.$relative).on('click',$.proxy(function(e){this.prev(settings.navSpeed);},this));this._controls.$next=$('<'+settings.navElement+'>').addClass(settings.navClass[1]).html(settings.navText[1]).appendTo(this._controls.$relative).on('click',$.proxy(function(e){this.next(settings.navSpeed);},this));if(!settings.dotsData){this._templates=[$('<div>').addClass(settings.dotClass).append($('<span>')).prop('outerHTML')];}
this._controls.$absolute=(settings.dotsContainer?$(settings.dotsContainer):$('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');this._controls.$absolute.on('click','div',$.proxy(function(e){var index=$(e.target).parent().is(this._controls.$absolute)?$(e.target).index():$(e.target).parent().index();e.preventDefault();this.to(index,settings.dotsSpeed);},this));for(override in this._overrides){this._core[override]=$.proxy(this[override],this);}};Navigation.prototype.destroy=function(){var handler,control,property,override,settings;settings=this._core.settings;for(handler in this._handlers){this.$element.off(handler,this._handlers[handler]);}
for(control in this._controls){if(control==='$relative'&&settings.navContainer){this._controls[control].html('');}else{this._controls[control].remove();}}
for(override in this.overides){this._core[override]=this._overrides[override];}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!='function'&&(this[property]=null);}};Navigation.prototype.update=function(){var i,j,k,lower=this._core.clones().length/2,upper=lower+this._core.items().length,maximum=this._core.maximum(true),settings=this._core.settings,size=settings.center||settings.autoWidth||settings.dotsData?1:settings.dotsEach||settings.items;if(settings.slideBy!=='page'){settings.slideBy=Math.min(settings.slideBy,settings.items);}
if(settings.dots||settings.slideBy=='page'){this._pages=[];for(i=lower,j=0,k=0;i<upper;i++){if(j>=size||j===0){this._pages.push({start:Math.min(maximum,i-lower),end:i-lower+size-1});if(Math.min(maximum,i-lower)===maximum){break;}
j=0,++k;}
j+=this._core.mergers(this._core.relative(i));}}};Navigation.prototype.draw=function(){var difference,settings=this._core.settings,disabled=this._core.items().length<=settings.items,index=this._core.relative(this._core.current()),loop=settings.loop||settings.rewind;this._controls.$relative.toggleClass('disabled',!settings.nav||disabled);if(settings.nav){this._controls.$previous.toggleClass('disabled',!loop&&index<=this._core.minimum(true));this._controls.$next.toggleClass('disabled',!loop&&index>=this._core.maximum(true));}
this._controls.$absolute.toggleClass('disabled',!settings.dots||disabled);if(settings.dots){difference=this._pages.length-this._controls.$absolute.children().length;if(settings.dotsData&&difference!==0){this._controls.$absolute.html(this._templates.join(''));}else if(difference>0){this._controls.$absolute.append(new Array(difference+1).join(this._templates[0]));}else if(difference<0){this._controls.$absolute.children().slice(difference).remove();}
this._controls.$absolute.find('.active').removeClass('active');this._controls.$absolute.children().eq($.inArray(this.current(),this._pages)).addClass('active');}};Navigation.prototype.onTrigger=function(event){var settings=this._core.settings;event.page={index:$.inArray(this.current(),this._pages),count:this._pages.length,size:settings&&(settings.center||settings.autoWidth||settings.dotsData?1:settings.dotsEach||settings.items)};};Navigation.prototype.current=function(){var current=this._core.relative(this._core.current());return $.grep(this._pages,$.proxy(function(page,index){return page.start<=current&&page.end>=current;},this)).pop();};Navigation.prototype.getPosition=function(successor){var position,length,settings=this._core.settings;if(settings.slideBy=='page'){position=$.inArray(this.current(),this._pages);length=this._pages.length;successor?++position:--position;position=this._pages[((position%length)+length)%length].start;}else{position=this._core.relative(this._core.current());length=this._core.items().length;successor?position+=settings.slideBy:position-=settings.slideBy;}
return position;};Navigation.prototype.next=function(speed){$.proxy(this._overrides.to,this._core)(this.getPosition(true),speed);};Navigation.prototype.prev=function(speed){$.proxy(this._overrides.to,this._core)(this.getPosition(false),speed);};Navigation.prototype.to=function(position,speed,standard){var length;if(!standard&&this._pages.length){length=this._pages.length;$.proxy(this._overrides.to,this._core)(this._pages[((position%length)+length)%length].start,speed);}else{$.proxy(this._overrides.to,this._core)(position,speed);}};$.fn.owlCarousel.Constructor.Plugins.Navigation=Navigation;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){'use strict';var Hash=function(carousel){this._core=carousel;this._hashes={};this.$element=this._core.$element;this._handlers={'initialized.owl.carousel':$.proxy(function(e){if(e.namespace&&this._core.settings.startPosition==='URLHash'){$(window).trigger('hashchange.owl.navigation');}},this),'prepared.owl.carousel':$.proxy(function(e){if(e.namespace){var hash=$(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');if(!hash){return;}
this._hashes[hash]=e.content;}},this),'changed.owl.carousel':$.proxy(function(e){if(e.namespace&&e.property.name==='position'){var current=this._core.items(this._core.relative(this._core.current())),hash=$.map(this._hashes,function(item,hash){return item===current?hash:null;}).join();if(!hash||window.location.hash.slice(1)===hash){return;}
window.location.hash=hash;}},this)};this._core.options=$.extend({},Hash.Defaults,this._core.options);this.$element.on(this._handlers);$(window).on('hashchange.owl.navigation',$.proxy(function(e){var hash=window.location.hash.substring(1),items=this._core.$stage.children(),position=this._hashes[hash]&&items.index(this._hashes[hash]);if(position===undefined||position===this._core.current()){return;}
this._core.to(this._core.relative(position),false,true);},this));};Hash.Defaults={URLhashListener:false};Hash.prototype.destroy=function(){var handler,property;$(window).off('hashchange.owl.navigation');for(handler in this._handlers){this._core.$element.off(handler,this._handlers[handler]);}
for(property in Object.getOwnPropertyNames(this)){typeof this[property]!='function'&&(this[property]=null);}};$.fn.owlCarousel.Constructor.Plugins.Hash=Hash;})(window.Zepto||window.jQuery,window,document);;(function($,window,document,undefined){var style=$('<support>').get(0).style,prefixes='Webkit Moz O ms'.split(' '),events={transition:{end:{WebkitTransition:'webkitTransitionEnd',MozTransition:'transitionend',OTransition:'oTransitionEnd',transition:'transitionend'}},animation:{end:{WebkitAnimation:'webkitAnimationEnd',MozAnimation:'animationend',OAnimation:'oAnimationEnd',animation:'animationend'}}},tests={csstransforms:function(){return!!test('transform');},csstransforms3d:function(){return!!test('perspective');},csstransitions:function(){return!!test('transition');},cssanimations:function(){return!!test('animation');}};function test(property,prefixed){var result=false,upper=property.charAt(0).toUpperCase()+property.slice(1);$.each((property+' '+prefixes.join(upper+' ')+upper).split(' '),function(i,property){if(style[property]!==undefined){result=prefixed?property:true;return false;}});return result;}
function prefixed(property){return test(property,true);}
if(tests.csstransitions()){$.support.transition=new String(prefixed('transition'))
$.support.transition.end=events.transition.end[$.support.transition];}
if(tests.cssanimations()){$.support.animation=new String(prefixed('animation'))
$.support.animation.end=events.animation.end[$.support.animation];}
if(tests.csstransforms()){$.support.transform=new String(prefixed('transform'));$.support.transform3d=tests.csstransforms3d();}})(window.Zepto||window.jQuery,window,document);
;;;var MobileEsp={initCompleted:false,isWebkit:false,isMobilePhone:false,isIphone:false,isAndroid:false,isAndroidPhone:false,isTierTablet:false,isTierIphone:false,isTierRichCss:false,isTierGenericMobile:false,engineWebKit:'webkit',deviceIphone:'iphone',deviceIpod:'ipod',deviceIpad:'ipad',deviceMacPpc:'macintosh',deviceAndroid:'android',deviceGoogleTV:'googletv',deviceWinPhone7:'windows phone os 7',deviceWinPhone8:'windows phone 8',deviceWinPhone10:'windows phone 10',deviceWinMob:'windows ce',deviceWindows:'windows',deviceIeMob:'iemobile',devicePpc:'ppc',enginePie:'wm5 pie',deviceBB:'blackberry',deviceBB10:'bb10',vndRIM:'vnd.rim',deviceBBStorm:'blackberry95',deviceBBBold:'blackberry97',deviceBBBoldTouch:'blackberry 99',deviceBBTour:'blackberry96',deviceBBCurve:'blackberry89',deviceBBCurveTouch:'blackberry 938',deviceBBTorch:'blackberry 98',deviceBBPlaybook:'playbook',deviceSymbian:'symbian',deviceSymbos:'symbos',deviceS60:'series60',deviceS70:'series70',deviceS80:'series80',deviceS90:'series90',devicePalm:'palm',deviceWebOS:'webos',deviceWebOStv:'web0s',deviceWebOShp:'hpwos',deviceNuvifone:'nuvifone',deviceBada:'bada',deviceTizen:'tizen',deviceMeego:'meego',deviceSailfish:'sailfish',deviceUbuntu:'ubuntu',deviceKindle:'kindle',engineSilk:'silk-accelerated',engineBlazer:'blazer',engineXiino:'xiino',vndwap:'vnd.wap',wml:'wml',deviceTablet:'tablet',deviceBrew:'brew',deviceDanger:'danger',deviceHiptop:'hiptop',devicePlaystation:'playstation',devicePlaystationVita:'vita',deviceNintendoDs:'nitro',deviceNintendo:'nintendo',deviceWii:'wii',deviceXbox:'xbox',deviceArchos:'archos',engineFirefox:'firefox',engineOpera:'opera',engineNetfront:'netfront',engineUpBrowser:'up.browser',deviceMidp:'midp',uplink:'up.link',engineTelecaQ:'teleca q',engineObigo:'obigo',devicePda:'pda',mini:'mini',mobile:'mobile',mobi:'mobi',smartTV1:'smart-tv',smartTV2:'smarttv',maemo:'maemo',linux:'linux',mylocom2:'sony/com',manuSonyEricsson:'sonyericsson',manuericsson:'ericsson',manuSamsung1:'sec-sgh',manuSony:'sony',manuHtc:'htc',svcDocomo:'docomo',svcKddi:'kddi',svcVodafone:'vodafone',disUpdate:'update',uagent:'',InitDeviceScan:function(){this.initCompleted=false;if(navigator&&navigator.userAgent)
this.uagent=navigator.userAgent.toLowerCase();this.isWebkit=this.DetectWebkit();this.isIphone=this.DetectIphone();this.isAndroid=this.DetectAndroid();this.isAndroidPhone=this.DetectAndroidPhone();this.isMobilePhone=this.DetectMobileQuick();this.isTierIphone=this.DetectTierIphone();this.isTierTablet=this.DetectTierTablet();this.isTierRichCss=this.DetectTierRichCss();this.isTierGenericMobile=this.DetectTierOtherPhones();this.initCompleted=true;},DetectIphone:function(){if(this.initCompleted||this.isIphone)
return this.isIphone;if(this.uagent.search(this.deviceIphone)>-1){if(this.DetectIpad()||this.DetectIpod())
return false;else
return true;}
else
return false;},DetectIpod:function(){if(this.uagent.search(this.deviceIpod)>-1)
return true;else
return false;},DetectIphoneOrIpod:function(){if(this.DetectIphone()||this.DetectIpod())
return true;else
return false;},DetectIpad:function(){if(this.uagent.search(this.deviceIpad)>-1&&this.DetectWebkit())
return true;else
return false;},DetectIos:function(){if(this.DetectIphoneOrIpod()||this.DetectIpad())
return true;else
return false;},DetectAndroid:function(){if(this.initCompleted||this.isAndroid)
return this.isAndroid;if((this.uagent.search(this.deviceAndroid)>-1)||this.DetectGoogleTV())
return true;return false;},DetectAndroidPhone:function(){if(this.initCompleted||this.isAndroidPhone)
return this.isAndroidPhone;if(!this.DetectAndroid())
return false;if(this.uagent.search(this.mobile)>-1)
return true;if(this.DetectOperaMobile())
return true;return false;},DetectAndroidTablet:function(){if(!this.DetectAndroid())
return false;if(this.DetectOperaMobile())
return false;if(this.uagent.search(this.mobile)>-1)
return false;else
return true;},DetectAndroidWebKit:function(){if(this.DetectAndroid()&&this.DetectWebkit())
return true;else
return false;},DetectGoogleTV:function(){if(this.uagent.search(this.deviceGoogleTV)>-1)
return true;else
return false;},DetectWebkit:function(){if(this.initCompleted||this.isWebkit)
return this.isWebkit;if(this.uagent.search(this.engineWebKit)>-1)
return true;else
return false;},DetectWindowsPhone:function(){if(this.DetectWindowsPhone7()||this.DetectWindowsPhone8()||this.DetectWindowsPhone10())
return true;else
return false;},DetectWindowsPhone7:function(){if(this.uagent.search(this.deviceWinPhone7)>-1)
return true;else
return false;},DetectWindowsPhone8:function(){if(this.uagent.search(this.deviceWinPhone8)>-1)
return true;else
return false;},DetectWindowsPhone10:function(){if(this.uagent.search(this.deviceWinPhone10)>-1)
return true;else
return false;},DetectWindowsMobile:function(){if(this.DetectWindowsPhone())
return false;if(this.uagent.search(this.deviceWinMob)>-1||this.uagent.search(this.deviceIeMob)>-1||this.uagent.search(this.enginePie)>-1)
return true;if((this.uagent.search(this.devicePpc)>-1)&&!(this.uagent.search(this.deviceMacPpc)>-1))
return true;if(this.uagent.search(this.manuHtc)>-1&&this.uagent.search(this.deviceWindows)>-1)
return true;else
return false;},DetectBlackBerry:function(){if((this.uagent.search(this.deviceBB)>-1)||(this.uagent.search(this.vndRIM)>-1))
return true;if(this.DetectBlackBerry10Phone())
return true;else
return false;},DetectBlackBerry10Phone:function(){if((this.uagent.search(this.deviceBB10)>-1)&&(this.uagent.search(this.mobile)>-1))
return true;else
return false;},DetectBlackBerryTablet:function(){if(this.uagent.search(this.deviceBBPlaybook)>-1)
return true;else
return false;},DetectBlackBerryWebKit:function(){if(this.DetectBlackBerry()&&this.uagent.search(this.engineWebKit)>-1)
return true;else
return false;},DetectBlackBerryTouch:function(){if(this.DetectBlackBerry()&&((this.uagent.search(this.deviceBBStorm)>-1)||(this.uagent.search(this.deviceBBTorch)>-1)||(this.uagent.search(this.deviceBBBoldTouch)>-1)||(this.uagent.search(this.deviceBBCurveTouch)>-1)))
return true;else
return false;},DetectBlackBerryHigh:function(){if(this.DetectBlackBerryWebKit())
return false;if((this.DetectBlackBerry())&&(this.DetectBlackBerryTouch()||this.uagent.search(this.deviceBBBold)>-1||this.uagent.search(this.deviceBBTour)>-1||this.uagent.search(this.deviceBBCurve)>-1))
return true;else
return false;},DetectBlackBerryLow:function(){if(this.DetectBlackBerry()){if(this.DetectBlackBerryHigh()||this.DetectBlackBerryWebKit())
return false;else
return true;}
else
return false;},DetectS60OssBrowser:function(){if(this.DetectWebkit()){if((this.uagent.search(this.deviceS60)>-1||this.uagent.search(this.deviceSymbian)>-1))
return true;else
return false;}
else
return false;},DetectSymbianOS:function(){if(this.uagent.search(this.deviceSymbian)>-1||this.uagent.search(this.deviceS60)>-1||((this.uagent.search(this.deviceSymbos)>-1)&&(this.DetectOperaMobile))||this.uagent.search(this.deviceS70)>-1||this.uagent.search(this.deviceS80)>-1||this.uagent.search(this.deviceS90)>-1)
return true;else
return false;},DetectPalmOS:function(){if(this.DetectPalmWebOS())
return false;if(this.uagent.search(this.devicePalm)>-1||this.uagent.search(this.engineBlazer)>-1||this.uagent.search(this.engineXiino)>-1)
return true;else
return false;},DetectPalmWebOS:function(){if(this.uagent.search(this.deviceWebOS)>-1)
return true;else
return false;},DetectWebOSTablet:function(){if(this.uagent.search(this.deviceWebOShp)>-1&&this.uagent.search(this.deviceTablet)>-1)
return true;else
return false;},DetectWebOSTV:function(){if(this.uagent.search(this.deviceWebOStv)>-1&&this.uagent.search(this.smartTV2)>-1)
return true;else
return false;},DetectOperaMobile:function(){if((this.uagent.search(this.engineOpera)>-1)&&((this.uagent.search(this.mini)>-1||this.uagent.search(this.mobi)>-1)))
return true;else
return false;},DetectKindle:function(){if(this.uagent.search(this.deviceKindle)>-1&&!this.DetectAndroid())
return true;else
return false;},DetectAmazonSilk:function(){if(this.uagent.search(this.engineSilk)>-1)
return true;else
return false;},DetectGarminNuvifone:function(){if(this.uagent.search(this.deviceNuvifone)>-1)
return true;else
return false;},DetectBada:function(){if(this.uagent.search(this.deviceBada)>-1)
return true;else
return false;},DetectTizen:function(){if(this.uagent.search(this.deviceTizen)>-1&&this.uagent.search(this.mobile)>-1)
return true;else
return false;},DetectTizenTV:function(){if(this.uagent.search(this.deviceTizen)>-1&&this.uagent.search(this.smartTV1)>-1)
return true;else
return false;},DetectMeego:function(){if(this.uagent.search(this.deviceMeego)>-1)
return true;else
return false;},DetectMeegoPhone:function(){if(this.uagent.search(this.deviceMeego)>-1&&this.uagent.search(this.mobi)>-1)
return true;else
return false;},DetectFirefoxOS:function(){if(this.DetectFirefoxOSPhone()||this.DetectFirefoxOSTablet())
return true;else
return false;},DetectFirefoxOSPhone:function(){if(this.DetectIos()||this.DetectAndroid()||this.DetectSailfish())
return false;if((this.uagent.search(this.engineFirefox)>-1)&&(this.uagent.search(this.mobile)>-1))
return true;return false;},DetectFirefoxOSTablet:function(){if(this.DetectIos()||this.DetectAndroid()||this.DetectSailfish())
return false;if((this.uagent.search(this.engineFirefox)>-1)&&(this.uagent.search(this.deviceTablet)>-1))
return true;return false;},DetectSailfish:function(){if(this.uagent.search(this.deviceSailfish)>-1)
return true;else
return false;},DetectSailfishPhone:function(){if(this.DetectSailfish()&&(this.uagent.search(this.mobile)>-1))
return true;return false;},DetectUbuntu:function(){if(this.DetectUbuntuPhone()||this.DetectUbuntuTablet())
return true;else
return false;},DetectUbuntuPhone:function(){if((this.uagent.search(this.deviceUbuntu)>-1)&&(this.uagent.search(this.mobile)>-1))
return true;return false;},DetectUbuntuTablet:function(){if((this.uagent.search(this.deviceUbuntu)>-1)&&(this.uagent.search(this.deviceTablet)>-1))
return true;return false;},DetectDangerHiptop:function(){if(this.uagent.search(this.deviceDanger)>-1||this.uagent.search(this.deviceHiptop)>-1)
return true;else
return false;},DetectSonyMylo:function(){if((this.uagent.search(this.manuSony)>-1)&&((this.uagent.search(this.qtembedded)>-1)||(this.uagent.search(this.mylocom2)>-1)))
return true;else
return false;},DetectMaemoTablet:function(){if(this.uagent.search(this.maemo)>-1)
return true;if((this.uagent.search(this.linux)>-1)&&(this.uagent.search(this.deviceTablet)>-1)&&this.DetectWebOSTablet()&&!this.DetectAndroid())
return true;else
return false;},DetectArchos:function(){if(this.uagent.search(this.deviceArchos)>-1)
return true;else
return false;},DetectGameConsole:function(){if(this.DetectSonyPlaystation()||this.DetectNintendo()||this.DetectXbox())
return true;else
return false;},DetectSonyPlaystation:function(){if(this.uagent.search(this.devicePlaystation)>-1)
return true;else
return false;},DetectGamingHandheld:function(){if((this.uagent.search(this.devicePlaystation)>-1)&&(this.uagent.search(this.devicePlaystationVita)>-1))
return true;else
return false;},DetectNintendo:function(){if(this.uagent.search(this.deviceNintendo)>-1||this.uagent.search(this.deviceWii)>-1||this.uagent.search(this.deviceNintendoDs)>-1)
return true;else
return false;},DetectXbox:function(){if(this.uagent.search(this.deviceXbox)>-1)
return true;else
return false;},DetectBrewDevice:function(){if(this.uagent.search(this.deviceBrew)>-1)
return true;else
return false;},DetectSmartphone:function(){if(this.DetectTierIphone()||this.DetectS60OssBrowser()||this.DetectSymbianOS()||this.DetectWindowsMobile()||this.DetectBlackBerry()||this.DetectMeegoPhone()||this.DetectPalmOS())
return true;return false;},DetectMobileQuick:function(){if(this.initCompleted||this.isMobilePhone)
return this.isMobilePhone;if(this.DetectTierTablet())
return false;if(this.DetectSmartphone())
return true;if(this.uagent.search(this.mobile)>-1)
return true;if(this.DetectOperaMobile())
return true;if(this.DetectKindle()||this.DetectAmazonSilk())
return true;if(this.uagent.search(this.deviceMidp)>-1||this.DetectBrewDevice())
return true;if((this.uagent.search(this.engineObigo)>-1)||(this.uagent.search(this.engineNetfront)>-1)||(this.uagent.search(this.engineUpBrowser)>-1))
return true;return false;},DetectMobileLong:function(){if(this.DetectMobileQuick())
return true;if(this.DetectGameConsole())
return true;if(this.DetectDangerHiptop()||this.DetectMaemoTablet()||this.DetectSonyMylo()||this.DetectArchos())
return true;if((this.uagent.search(this.devicePda)>-1)&&!(this.uagent.search(this.disUpdate)>-1))
return true;if((this.uagent.search(this.manuSamsung1)>-1)||(this.uagent.search(this.manuSonyEricsson)>-1)||(this.uagent.search(this.manuericsson)>-1)||(this.uagent.search(this.svcDocomo)>-1)||(this.uagent.search(this.svcKddi)>-1)||(this.uagent.search(this.svcVodafone)>-1))
return true;return false;},DetectTierTablet:function(){if(this.initCompleted||this.isTierTablet)
return this.isTierTablet;if(this.DetectIpad()||this.DetectAndroidTablet()||this.DetectBlackBerryTablet()||this.DetectFirefoxOSTablet()||this.DetectUbuntuTablet()||this.DetectWebOSTablet())
return true;else
return false;},DetectTierIphone:function(){if(this.initCompleted||this.isTierIphone)
return this.isTierIphone;if(this.DetectIphoneOrIpod()||this.DetectAndroidPhone()||this.DetectWindowsPhone()||this.DetectBlackBerry10Phone()||this.DetectPalmWebOS()||this.DetectBada()||this.DetectTizen()||this.DetectFirefoxOSPhone()||this.DetectSailfishPhone()||this.DetectUbuntuPhone()||this.DetectGamingHandheld())
return true;if(this.DetectBlackBerryWebKit()&&this.DetectBlackBerryTouch())
return true;else
return false;},DetectTierRichCss:function(){if(this.initCompleted||this.isTierRichCss)
return this.isTierRichCss;if(this.DetectTierIphone()||this.DetectKindle()||this.DetectTierTablet())
return false;if(!this.DetectMobileQuick())
return false;if(this.DetectWebkit())
return true;if(this.DetectS60OssBrowser()||this.DetectBlackBerryHigh()||this.DetectWindowsMobile()||(this.uagent.search(this.engineTelecaQ)>-1))
return true;else
return false;},DetectTierOtherPhones:function(){if(this.initCompleted||this.isTierGenericMobile)
return this.isTierGenericMobile;if(this.DetectTierIphone()||this.DetectTierRichCss()||this.DetectTierTablet())
return false;if(this.DetectMobileLong())
return true;else
return false;}};MobileEsp.InitDeviceScan();
;;;var gtm={enabled:null,impressions:[],impressionsCategory:null,impressionsList:null,promotions:[],waitForTourListing:false,waitForCarousel:false,waitForHighlightCarousel:false,waitForTourSearch:true,setupWait:function(count){if(gtm.enabled==null)gtm.enabled=(typeof config!="undefined"&&config.enableGoogleTagManager&&typeof dataLayer!="undefined");if(gtm.enabled){if((gtm.waitForCarousel||gtm.waitForTourListing||gtm.waitForTourSearch||gtm.waitForHighlightCarousel)&&count<50){count++;window.setTimeout(function(){gtm.setupWait(count++);},50);}
else{gtm.setup();}}},setup:function(){$(document).click(gtm.pageClick);var tourcode=(typeof tourCode!='undefined')?tourCode:$('[data-tour-code]').data('tour-code')||$('.fav[data-tc]').data('tc');var brand=(location.hostname.indexOf('raildiscoveries')>=0)?'RD':(location.hostname.indexOf('vacationsbyrail')>=0||location.hostname.indexOf('vbr')>=0)?'VBR':'GRJ';var subdomain=location.hostname.toLowerCase().split('.')[0];var agent=(getCookie('Agent')||'').split('|');var data={event:'data_layer_ready',tourCode:tourcode,affiliateCode:getCookie('affId')||'',telRef:getCookie('telCode')||'',orderId:'',countryCode:(brand=='VBR')?'US':config.countryCode.toUpperCase(),currencyCode:config.code,domain:brand,brand:brand,type:(agent.length>1)?'A':'C',mode:(subdomain=='test'||subdomain=='uat'||subdomain=='localhost'||subdomain=='prelive')?'T':'L',abta:(agent.length>1)?agent[1]:''};data.typeModeBrandCountry=data.type
+data.mode
+data.brand
+data.countryCode;data.brandCountry=data.brand
+data.countryCode;var qs=(data.telRef!=''?'&TR='+escape(data.telRef):'')+'&TN='+escape($('#telNumber').text())+'&PB='+(getCookie('brochures')!=null?'1&PBS='+escape(getCookie('brochures')):'0')+'&EM='+(getCookie('em')!=null?'1':'0')+
(getCookie('shortlist')!=null?'&SL='+escape(getCookie('shortlist')):'')+
(getCookie('recentlyViewed')!=null?'&RV='+escape(getCookie('recentlyViewed')):'')+
(tourcode!=''?'&TC='+tourcode:'')+'&BO='+(getCookie('bo')!=null?'1&BOS='+escape(getCookie('bo')):'0');var pathname=location.pathname;if(dataLayer[0].templateName=="HomePage"&&$('body').hasClass('ndc'))pathname+='newhome/';data.pseudoUrl=location.protocol+'//'+location.hostname+pathname+location.search+
(location.search.length?qs:'?'+qs.substr(1));if(dataLayer[0].templateName=="TourItinerary"||dataLayer[0].templateName=="TourItineraryAlt"){var $h1=$('h1[itemprop]');var product={name:$h1.text(),id:tourcode,price:$('.price[data-price]').data('price'),brand:data.brand,category:$h1.data('ga-category'),variant:''};var paxcapacity=Number($('.price[data-paxcapacity]').data('paxcapacity'));if(paxcapacity>0)product.pax_level_capacity=paxcapacity;var singlecapacity=Number($('.price[data-singlecapacity]').data('singlecapacity'));if(singlecapacity>0)product.single_capacity=singlecapacity;var doublecapacity=Number($('.price[data-doublecapacity]').data('doublecapacity'));if(doublecapacity>0)product.double_capacity=doublecapacity;var referrer=document.referrer||'';if(referrer!=''){var path=document.referrer.split('/');var pathIx=Math.max(path.indexOf('holiday-destinations'),path.indexOf('holiday-types'),path.indexOf('train-holiday-ideas'));referrer=(pathIx>0)?path[path.length-2]:'';}
data.productName=product.name;data.productId=product.id;data.productPrice=product.price;data.ecommerce={currencyCode:config.code,detail:{actionField:{list:referrer},products:[product]}};data.physicalRating=$('.mobilityRating[data-physicalrating]').data('physicalrating');data.holidayType=$h1.data('holidaytype')||'';}
if(dataLayer[0].templateName=="TourListing"){var $tl=$('#tourListing');data.dimension11=$tl.data('destination');data.dimension12=$('#ddlWhen option:selected').text();data.dimension13=$('#chkSingle').is(':checked')?'Solo traveller':'';data.theme=$tl.data('theme');data.layout=$tl.data('layout');if($('#ddlWhen').length){var criteria=$tl.data('criteria');var strDate=$('#ddlWhen option:selected').val();if(strDate!=''){var now=new Date();var dt=new Date(Number('20'+strDate.substr(0,2)),Number(strDate.substr(2,2))-1,1);if(dt>now){var msOneDay=1000*60*60*24;var timeDiff=Math.abs(dt.getTime()-now.getTime());var diffDays=Math.ceil(timeDiff/msOneDay);data.leadTime=diffDays;}
else{data.leadTime=15;}}
else if(criteria.lateAvail===true||criteria.lateAvail=='true'){data.leadTime=90;}}
var criteria=$tl.data('criteria');if(typeof criteria=='object'){for(propertyName in criteria){var propertyValue=criteria[propertyName];if(propertyValue===null||typeof propertyValue=='undefined'||propertyValue===''||propertyValue===0||propertyValue==='0'||propertyValue===false){continue;}
switch(propertyName){case'min':case'max':case'sort':case'docType':case'nodeId':case'useAltTemplate':continue;break;case'priceTo':if(propertyValue==999999)continue;break;case'daysTo':if(propertyValue==999)continue;break;}
propertyName='filter'+propertyName.charAt(0).toUpperCase()+propertyName.slice(1);data[propertyName]=propertyValue;}}}
gtm.setupPromotions();if(gtm.promotions.length>0){if(typeof data.ecommerce==='undefined'){data.ecommerce={currencyCode:config.code};}
data.ecommerce.promoView={promotions:gtm.promotions};}
if(gtm.impressions.length>0){if(typeof data.ecommerce==='undefined'){data.ecommerce={currencyCode:config.code};}
data.ecommerce.impressions=gtm.impressions;}
if(dataLayer[0].templateName=="2021 Booking Journey"){if($('#paytypeCredit').length){data.payByPhoneOption=$('#paytypePhone').length?'show':'hide';}
var $tourName=$('.tourName');data.tourName=$tourName.text()||'';data.totalPrice=$('.total[data-totalprice]').data('totalprice')||0;data.masterCode=$('.tourName[data-master-code]').data('master-code')||'';data.holidayType=$tourName.data('holidaytype')||'';if(data.holidayType=='')data.holidayType=$('[data-holidaytype]').data('holidaytype')||'';if($('.payment[data-bookingref]').length){var bookingRef=Number($('.payment[data-bookingref]').data('bookingref'));if(bookingRef>0){data.quoteReference=bookingRef;}}
var paxcapacity=Number($('.tourName[data-paxcapacity]').data('paxcapacity'));if(paxcapacity>0)data.pax_level_capacity=paxcapacity;var singlecapacity=Number($('.tourName[data-singlecapacity]').data('singlecapacity'));if(singlecapacity>0)data.single_capacity=singlecapacity;var doublecapacity=Number($('.tourName[data-doublecapacity]').data('doublecapacity'));if(doublecapacity>0)data.double_capacity=doublecapacity;}
dataLayer.push(data);if(dataLayer[0].templateName=='MyArea'&&$('DIV[data-track-my-area-login]').length>0){gtm.pushEvent('myAreaLogin');}
var event=new CustomEvent('data_layer_ready');window.dispatchEvent(event);if(dataLayer[0].templateName=="TourItinerary"){var heroSlideBackgroundImage=$('.heroSlide').css('background-image');dataLayer.push({event:'DotDigtal_TourItinerary',nonInteraction:0,product_sku:data.productId,product_price:data.productPrice,product_url:location.href,product_name:data.productName,product_status:$('.button.prices').length?'Book Now':'',product_image_path:(typeof heroSlideBackgroundImage!='undefined')?heroSlideBackgroundImage.replace("url(\"","").replace("\")",""):''});}
if(typeof babelError!='undefined'&&babelError){gtm.bookingError(babelError);}},setupPromotions:function(){$('DIV[data-promo-creative],SECTION[data-promo-creative],ARTICLE[data-promo-creative]').each(function(){var $promoPanel=$(this);var creative=$promoPanel.data('promo-creative');$promoPanel.find('[data-promo-id]').each(function(ix){var $promo=$(this);$promo.data('promo-position',$promo.data('promo-position')||ix+1);$promo.data('promo-creative',creative);var promoId=$promo.data('promo-id');var alreadyAdded=gtm.promotions.find(e=>e.creative==creative&&e.id==promoId);if(!alreadyAdded)
gtm.promotions.push({id:promoId,name:$promo.data('promo-name'),creative:creative,position:$promo.data('promo-position')});}).click(gtm.promoClick);});},promoClick:function(e){if(config.enableGoogleTagManager&&typeof dataLayer!=='undefined'&&typeof this.href!=='undefined'){e.preventDefault();gtm.href=this.href;var $promo=$(this);var preventRedirect=(e.target.tagName!='SPAN'&&typeof $promo.data('video-url')!='undefined')||$promo.closest('.fullWidthCarousel').length;var link=null,event=null;if(!preventRedirect&&this.target){link=document.createElement('a');link.href=gtm.href;link.target=this.target;event=new MouseEvent('click',{'view':window,'bubbles':false,'cancelable':true});}
dataLayer.push({event:'promotionClick',ecommerce:{promoClick:{promotions:[{id:$promo.data('promo-id'),name:$promo.data('promo-name'),creative:$promo.data('promo-creative'),position:$promo.data('promo-position')}]}},eventCallback:function(e){if(!preventRedirect){window.clearTimeout(gtm.timeout);if(link)
link.dispatchEvent(event);else
document.location=gtm.href;}}});if(!preventRedirect){gtm.timeout=window.setTimeout(function(){if(link)
link.dispatchEvent(event);else
document.location=gtm.href;},500);}}},setupTourListings:function(tourListingContainer,bFireDataLayerReadyEvent){if(typeof dataLayer=='undefined'||typeof tourListingContainer=='undefined')return;if(bFireDataLayerReadyEvent)gtm.impressions=[];$(tourListingContainer).find('.tour[data-price]').each(function(){var $tour=$(this);if(gtm.impressionsCategory==null)gtm.impressionsCategory=$tour.data('category');if(gtm.impressionsList==null)gtm.impressionsList=$tour.data('list');var impressionData={id:$tour.data('id'),name:$tour.data('name'),price:$tour.data('price'),brand:$tour.data('brand'),category:$tour.data('category')||gtm.impressionsCategory,variant:'',list:$tour.data('list')||gtm.impressionsList,position:$tour.data('position')};if(typeof $tour.data('rating')!='undefined'){impressionData.dimension19=$tour.data('rating');}
var paxcapacity=Number($tour.data('paxcapacity'));if(paxcapacity>0)impressionData.pax_level_capacity=paxcapacity;var singlecapacity=Number($tour.data('singlecapacity'));if(singlecapacity>0)impressionData.single_capacity=singlecapacity;var doublecapacity=Number($tour.data('doublecapacity'));if(doublecapacity>0)impressionData.double_capacity=doublecapacity;gtm.impressions.push(impressionData);$tour.find('A').click(function(e){var $a=$(this);if($a.hasClass('map')||$a.hasClass('toggle'))return;e.preventDefault();gtm.href=this.href;if($(window).width()<size.tabletPortrait||$a.closest('.fullWidthCarousel, .hotels, .cabinList').length==0){gtm.timeout=window.setTimeout(function(){document.location=gtm.href;},500);}
var product={name:$tour.data('name'),id:$tour.data('id'),price:$tour.data('price'),brand:$tour.data('brand'),category:$tour.data('category')||gtm.impressionsCategory,variant:'',position:$tour.data('position')};dataLayer.push({productName:product.name,productId:product.id,productPrice:product.price,event:'productClick',ecommerce:{currencyCode:config.code,click:{actionField:{list:$tour.data('list')},products:[product]}},eventCallback:function(e){if(typeof gtm.timeout!='undefined'){window.clearTimeout(gtm.timeout);document.location=gtm.href;}}});});});if(bFireDataLayerReadyEvent&&gtm.impressions.length>0){dataLayer.push({event:'data_layer_ready',ecommerce:{currencyCode:config.code,impressions:gtm.impressions}});}},pageClick:function(e){var data={};if(typeof dataLayer!=='undefined'&&e&&e.target){var $this=$(e.target);data.event=$this.data('ga-event')||$this.closest('[data-ga-event]').data('ga-event')||'pageClick';data.category=$this.data('ga-category')||$this.closest('[data-ga-category]').data('ga-category')||e.target.tagName;data.action=$this.data('ga-action')||$this.closest('[data-ga-action]').data('ga-action')||'click';data.label=$this.data('ga-label')||$this.closest('[data-ga-label]').data('ga-label')||$this.text();switch(e.target.tagName){case"A":case"BUTTON":if(data.label==''&&typeof $this.attr('title')!='undefined')data.label=$this.attr('title');break;case"AREA":data.label=$this.attr('alt');break;case"INPUT":if($this.val().toUpperCase()=='BOOK'){var numOfTravellersSelected=$('#selectTravellers .options .selected').data('val');switch(numOfTravellersSelected){case 1:numOfTravellersSelected='Solo traveller';break;case 2:numOfTravellersSelected='2 travellers';break;default:numOfTravellersSelected='2+ travellers';break;}
var departData=$this.closest('.row').find('.departData');data.dimension12=departData.data('month')+' '+departData.data('year');data.dimension13=numOfTravellersSelected;break;}
case"TEXTAREA":if($this.attr('id')=='hideSoldOut'){data.label=$this.next('LABEL').text();if(!e.target.checked)data.label=data.label.replace('Hide','Show');}
else if(data.label==''){if(typeof $this.attr('placeholder')!=='undefined'&&$this.attr('placeholder')!=''){data.label=$this.attr('placeholder');}else if($this.prev('LABEL').length){data.label=$this.prev('LABEL').text();}else if($this.next('LABEL').length){data.label=$this.next('LABEL').text();}else if($this.attr('id')){data.label=$this.attr('id');if(data.label.indexOf('txtPartyMemberDoB')>0){data.label='Date of birth '+data.label.substring(label.indexOf('txtPartyMemberDoB')+17);}else if(data.label.indexOf('_')>0){data.label=data.label.substring(data.label.lastIndexOf('_')+1);}}else return;}
break;default:if($this.closest('A').length){if($this.attr('alt')){data.label=$this.attr('alt');}else{data.label=$this.closest('A').text();}
$this=$this.closest('A');data.action=$this.data('ga-action')||data.action;data.label=$this.data('ga-label')||data.label;data.category=$this.data('ga-category')||data.category;break;}else if($this.closest('#pcaList').length>0&&$this.text()!=''){data.category='PostcodeAnywhere';break;}else if($this.closest('ga-action')||$this.closest('ga-category')){break;}
return;}}
if(typeof $this.data('ga-category')=='undefined'&&$this.closest('[data-ga-category]').length==0){if($this.parents('.mobilemenu,.megamenu').length){data.category='MegaMenu';}else if($this.parents('FORM.search').length){data.category='SearchPanel';}else if($this.parents('HEADER,#top').length){data.category='Header';}else if($this.parents('FOOTER').length){data.category='Footer';}else if($this.hasClass('promo')||$this.parents('.promo').length){data.category='PromoPanel';}else if($this.parents('.banner').length){data.category='LargePromo';}else if($this.parents('#itineraryMenu').length){data.category='ItineraryMenu';}else if($this.parents('#itineraryContent').length){data.category='ItineraryContent';}else if($this.parents('.tabs').length){data.category='Tabs';}else if($this.parents('DIV.hero, DIV.aslGallery').length){data.category='HeroPanel';}else if($this.parents('SECTION.popularTours').length){data.category='Popular';}else if($this.parents('SECTION.contentTeaser').length){data.category='ContentTeaser';}else if($this.parents('DIV.buttonBar').length){data.category='ButtonBar';}else if($this.parents('.breadcrumb').length){data.category='Breadcrumb';}else if($this.parents('#searchCriteria, #selectedCriteria').length){data.category='RefineSearch';}else if($this.parents('.sideCol').length){data.category='SideColumn';}else if($this.parents('.sideMenu').length){data.category='SideMenu';}else if($this.parents('#tourStickyHeader').length){data.category='TourStickyHeader';}}
if(data.label.length>50)data.label=data.label.substr(0,50);data.page=$this.attr('href')||'';if(data.page.indexOf('#')==0||data.page.indexOf('javascript:')==0){data.page='';data.nonInteraction=1;}
else
data.nonInteraction=0;dataLayer.push(data);},videoEvent:function(eventName,videoURL,action){if(config.enableGoogleTagManager&&typeof dataLayer!=='undefined'){dataLayer.push({event:eventName,eventCategory:'Videos',eventAction:action,eventLabel:videoURL});}},pushEvent:function(eventName){if(gtm.enabled){dataLayer.push({event:eventName});}},pushPromoView:function(promotions){if(gtm.enabled&&promotions.length){dataLayer.push({ecommerce:{promoView:{promotions:promotions}}});}},validationError:function(eventPrefix,label){if(gtm.enabled){dataLayer.push({event:eventPrefix+'ValidationError',category:'formValidationError',action:'visible',label:label,nonInteraction:0});}},bookingError:function(errorDetail){if(gtm.enabled){dataLayer.push({event:'bookingError',errorDetail:errorDetail});}}};
;;;(function(root,factory){if(typeof define==='function'&&define.amd){define(factory);}else if(typeof exports==='object'){module.exports=factory();}else{root.PhotoSwipe=factory();}})(this,function(){'use strict';var PhotoSwipe=function(template,UiClass,items,options){var framework={features:null,bind:function(target,type,listener,unbind){var methodName=(unbind?'remove':'add')+'EventListener';type=type.split(' ');for(var i=0;i<type.length;i++){if(type[i]){target[methodName](type[i],listener,false);}}},isArray:function(obj){return(obj instanceof Array);},createEl:function(classes,tag){var el=document.createElement(tag||'div');if(classes){el.className=classes;}
return el;},getScrollY:function(){var yOffset=window.pageYOffset;return yOffset!==undefined?yOffset:document.documentElement.scrollTop;},unbind:function(target,type,listener){framework.bind(target,type,listener,true);},removeClass:function(el,className){var reg=new RegExp('(\\s|^)'+className+'(\\s|$)');el.className=el.className.replace(reg,' ').replace(/^\s\s*/,'').replace(/\s\s*$/,'');},addClass:function(el,className){if(!framework.hasClass(el,className)){el.className+=(el.className?' ':'')+className;}},hasClass:function(el,className){return el.className&&new RegExp('(^|\\s)'+className+'(\\s|$)').test(el.className);},getChildByClass:function(parentEl,childClassName){var node=parentEl.firstChild;while(node){if(framework.hasClass(node,childClassName)){return node;}
node=node.nextSibling;}},arraySearch:function(array,value,key){var i=array.length;while(i--){if(array[i][key]===value){return i;}}
return-1;},extend:function(o1,o2,preventOverwrite){for(var prop in o2){if(o2.hasOwnProperty(prop)){if(preventOverwrite&&o1.hasOwnProperty(prop)){continue;}
o1[prop]=o2[prop];}}},easing:{sine:{out:function(k){return Math.sin(k*(Math.PI/2));},inOut:function(k){return-(Math.cos(Math.PI*k)-1)/2;}},cubic:{out:function(k){return--k*k*k+1;}}},detectFeatures:function(){if(framework.features){return framework.features;}
var helperEl=framework.createEl(),helperStyle=helperEl.style,vendor='',features={};features.oldIE=document.all&&!document.addEventListener;features.touch='ontouchstart' in window;if(window.requestAnimationFrame){features.raf=window.requestAnimationFrame;features.caf=window.cancelAnimationFrame;}
features.pointerEvent=!!(window.PointerEvent)||navigator.msPointerEnabled;if(!features.pointerEvent){var ua=navigator.userAgent;if(/iP(hone|od)/.test(navigator.platform)){var v=(navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);if(v&&v.length>0){v=parseInt(v[1],10);if(v>=1&&v<8){features.isOldIOSPhone=true;}}}
var match=ua.match(/Android\s([0-9\.]*)/);var androidversion=match?match[1]:0;androidversion=parseFloat(androidversion);if(androidversion>=1){if(androidversion<4.4){features.isOldAndroid=true;}
features.androidVersion=androidversion;}
features.isMobileOpera=/opera mini|opera mobi/i.test(ua);}
var styleChecks=['transform','perspective','animationName'],vendors=['','webkit','Moz','ms','O'],styleCheckItem,styleName;for(var i=0;i<4;i++){vendor=vendors[i];for(var a=0;a<3;a++){styleCheckItem=styleChecks[a];styleName=vendor+(vendor?styleCheckItem.charAt(0).toUpperCase()+styleCheckItem.slice(1):styleCheckItem);if(!features[styleCheckItem]&&styleName in helperStyle){features[styleCheckItem]=styleName;}}
if(vendor&&!features.raf){vendor=vendor.toLowerCase();features.raf=window[vendor+'RequestAnimationFrame'];if(features.raf){features.caf=window[vendor+'CancelAnimationFrame']||window[vendor+'CancelRequestAnimationFrame'];}}}
if(!features.raf){var lastTime=0;features.raf=function(fn){var currTime=new Date().getTime();var timeToCall=Math.max(0,16-(currTime-lastTime));var id=window.setTimeout(function(){fn(currTime+timeToCall);},timeToCall);lastTime=currTime+timeToCall;return id;};features.caf=function(id){clearTimeout(id);};}
features.svg=!!document.createElementNS&&!!document.createElementNS('http://www.w3.org/2000/svg','svg').createSVGRect;framework.features=features;return features;}};framework.detectFeatures();if(framework.features.oldIE){framework.bind=function(target,type,listener,unbind){type=type.split(' ');var methodName=(unbind?'detach':'attach')+'Event',evName,_handleEv=function(){listener.handleEvent.call(listener);};for(var i=0;i<type.length;i++){evName=type[i];if(evName){if(typeof listener==='object'&&listener.handleEvent){if(!unbind){listener['oldIE'+evName]=_handleEv;}else{if(!listener['oldIE'+evName]){return false;}}
target[methodName]('on'+evName,listener['oldIE'+evName]);}else{target[methodName]('on'+evName,listener);}}}};}
var self=this;var DOUBLE_TAP_RADIUS=25,NUM_HOLDERS=3;var _options={allowPanToNext:true,spacing:0.12,bgOpacity:1,mouseUsed:false,loop:true,pinchToClose:true,closeOnScroll:true,closeOnVerticalDrag:true,verticalDragRange:0.75,hideAnimationDuration:333,showAnimationDuration:333,showHideOpacity:false,focus:true,escKey:true,arrowKeys:true,mainScrollEndFriction:0.35,panEndFriction:0.35,isClickableElement:function(el){return el.tagName==='A';},getDoubleTapZoom:function(isMouseClick,item){if(isMouseClick){return 1;}else{return item.initialZoomLevel<0.7?1:1.33;}},maxSpreadZoom:1.33,modal:true,scaleMode:'fit'};framework.extend(_options,options);var _getEmptyPoint=function(){return{x:0,y:0};};var _isOpen,_isDestroying,_closedByScroll,_currentItemIndex,_containerStyle,_containerShiftIndex,_currPanDist=_getEmptyPoint(),_startPanOffset=_getEmptyPoint(),_panOffset=_getEmptyPoint(),_upMoveEvents,_downEvents,_globalEventHandlers,_viewportSize={},_currZoomLevel,_startZoomLevel,_translatePrefix,_translateSufix,_updateSizeInterval,_itemsNeedUpdate,_currPositionIndex=0,_offset={},_slideSize=_getEmptyPoint(),_itemHolders,_prevItemIndex,_indexDiff=0,_dragStartEvent,_dragMoveEvent,_dragEndEvent,_dragCancelEvent,_transformKey,_pointerEventEnabled,_isFixedPosition=true,_likelyTouchDevice,_modules=[],_requestAF,_cancelAF,_initalClassName,_initalWindowScrollY,_oldIE,_currentWindowScrollY,_features,_windowVisibleSize={},_renderMaxResolution=false,_orientationChangeTimeout,_registerModule=function(name,module){framework.extend(self,module.publicMethods);_modules.push(name);},_getLoopedId=function(index){var numSlides=_getNumItems();if(index>numSlides-1){return index-numSlides;}else if(index<0){return numSlides+index;}
return index;},_listeners={},_listen=function(name,fn){if(!_listeners[name]){_listeners[name]=[];}
return _listeners[name].push(fn);},_shout=function(name){var listeners=_listeners[name];if(listeners){var args=Array.prototype.slice.call(arguments);args.shift();for(var i=0;i<listeners.length;i++){listeners[i].apply(self,args);}}},_getCurrentTime=function(){return new Date().getTime();},_applyBgOpacity=function(opacity){_bgOpacity=opacity;self.bg.style.opacity=opacity*_options.bgOpacity;},_applyZoomTransform=function(styleObj,x,y,zoom,item){if(!_renderMaxResolution||(item&&item!==self.currItem)){zoom=zoom/(item?item.fitRatio:self.currItem.fitRatio);}
styleObj[_transformKey]=_translatePrefix+x+'px, '+y+'px'+_translateSufix+' scale('+zoom+')';},_applyCurrentZoomPan=function(allowRenderResolution){if(_currZoomElementStyle){if(allowRenderResolution){if(_currZoomLevel>self.currItem.fitRatio){if(!_renderMaxResolution){_setImageSize(self.currItem,false,true);_renderMaxResolution=true;}}else{if(_renderMaxResolution){_setImageSize(self.currItem);_renderMaxResolution=false;}}}
_applyZoomTransform(_currZoomElementStyle,_panOffset.x,_panOffset.y,_currZoomLevel);}},_applyZoomPanToItem=function(item){if(item.container){_applyZoomTransform(item.container.style,item.initialPosition.x,item.initialPosition.y,item.initialZoomLevel,item);}},_setTranslateX=function(x,elStyle){elStyle[_transformKey]=_translatePrefix+x+'px, 0px'+_translateSufix;},_moveMainScroll=function(x,dragging){if(!_options.loop&&dragging){var newSlideIndexOffset=_currentItemIndex+(_slideSize.x*_currPositionIndex-x)/_slideSize.x,delta=Math.round(x-_mainScrollPos.x);if((newSlideIndexOffset<0&&delta>0)||(newSlideIndexOffset>=_getNumItems()-1&&delta<0)){x=_mainScrollPos.x+delta*_options.mainScrollEndFriction;}}
_mainScrollPos.x=x;_setTranslateX(x,_containerStyle);},_calculatePanOffset=function(axis,zoomLevel){var m=_midZoomPoint[axis]-_offset[axis];return _startPanOffset[axis]+_currPanDist[axis]+m-m*(zoomLevel/_startZoomLevel);},_equalizePoints=function(p1,p2){p1.x=p2.x;p1.y=p2.y;if(p2.id){p1.id=p2.id;}},_roundPoint=function(p){p.x=Math.round(p.x);p.y=Math.round(p.y);},_mouseMoveTimeout=null,_onFirstMouseMove=function(){if(_mouseMoveTimeout){framework.unbind(document,'mousemove',_onFirstMouseMove);framework.addClass(template,'pswp--has_mouse');_options.mouseUsed=true;_shout('mouseUsed');}
_mouseMoveTimeout=setTimeout(function(){_mouseMoveTimeout=null;},100);},_bindEvents=function(){framework.bind(document,'keydown',self);if(_features.transform){framework.bind(self.scrollWrap,'click',self);}
if(!_options.mouseUsed){framework.bind(document,'mousemove',_onFirstMouseMove);}
framework.bind(window,'resize scroll orientationchange',self);_shout('bindEvents');},_unbindEvents=function(){framework.unbind(window,'resize scroll orientationchange',self);framework.unbind(window,'scroll',_globalEventHandlers.scroll);framework.unbind(document,'keydown',self);framework.unbind(document,'mousemove',_onFirstMouseMove);if(_features.transform){framework.unbind(self.scrollWrap,'click',self);}
if(_isDragging){framework.unbind(window,_upMoveEvents,self);}
clearTimeout(_orientationChangeTimeout);_shout('unbindEvents');},_calculatePanBounds=function(zoomLevel,update){var bounds=_calculateItemSize(self.currItem,_viewportSize,zoomLevel);if(update){_currPanBounds=bounds;}
return bounds;},_getMinZoomLevel=function(item){if(!item){item=self.currItem;}
return item.initialZoomLevel;},_getMaxZoomLevel=function(item){if(!item){item=self.currItem;}
return item.w>0?_options.maxSpreadZoom:1;},_modifyDestPanOffset=function(axis,destPanBounds,destPanOffset,destZoomLevel){if(destZoomLevel===self.currItem.initialZoomLevel){destPanOffset[axis]=self.currItem.initialPosition[axis];return true;}else{destPanOffset[axis]=_calculatePanOffset(axis,destZoomLevel);if(destPanOffset[axis]>destPanBounds.min[axis]){destPanOffset[axis]=destPanBounds.min[axis];return true;}else if(destPanOffset[axis]<destPanBounds.max[axis]){destPanOffset[axis]=destPanBounds.max[axis];return true;}}
return false;},_setupTransforms=function(){if(_transformKey){var allow3dTransform=_features.perspective&&!_likelyTouchDevice;_translatePrefix='translate'+(allow3dTransform?'3d(':'(');_translateSufix=_features.perspective?', 0px)':')';return;}
_transformKey='left';framework.addClass(template,'pswp--ie');_setTranslateX=function(x,elStyle){elStyle.left=x+'px';};_applyZoomPanToItem=function(item){var zoomRatio=item.fitRatio>1?1:item.fitRatio,s=item.container.style,w=zoomRatio*item.w,h=zoomRatio*item.h;s.width=w+'px';s.height=h+'px';s.left=item.initialPosition.x+'px';s.top=item.initialPosition.y+'px';};_applyCurrentZoomPan=function(){if(_currZoomElementStyle){var s=_currZoomElementStyle,item=self.currItem,zoomRatio=item.fitRatio>1?1:item.fitRatio,w=zoomRatio*item.w,h=zoomRatio*item.h;s.width=w+'px';s.height=h+'px';s.left=_panOffset.x+'px';s.top=_panOffset.y+'px';}};},_onKeyDown=function(e){var keydownAction='';if(_options.escKey&&e.keyCode===27){keydownAction='close';}else if(_options.arrowKeys){if(e.keyCode===37){keydownAction='prev';}else if(e.keyCode===39){keydownAction='next';}}
if(keydownAction){if(!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}
self[keydownAction]();}}},_onGlobalClick=function(e){if(!e){return;}
if(_moved||_zoomStarted||_mainScrollAnimating||_verticalDragInitiated){e.preventDefault();e.stopPropagation();}},_updatePageScrollOffset=function(){self.setScrollOffset(0,framework.getScrollY());};var _animations={},_numAnimations=0,_stopAnimation=function(name){if(_animations[name]){if(_animations[name].raf){_cancelAF(_animations[name].raf);}
_numAnimations--;delete _animations[name];}},_registerStartAnimation=function(name){if(_animations[name]){_stopAnimation(name);}
if(!_animations[name]){_numAnimations++;_animations[name]={};}},_stopAllAnimations=function(){for(var prop in _animations){if(_animations.hasOwnProperty(prop)){_stopAnimation(prop);}}},_animateProp=function(name,b,endProp,d,easingFn,onUpdate,onComplete){var startAnimTime=_getCurrentTime(),t;_registerStartAnimation(name);var animloop=function(){if(_animations[name]){t=_getCurrentTime()-startAnimTime;if(t>=d){_stopAnimation(name);onUpdate(endProp);if(onComplete){onComplete();}
return;}
onUpdate((endProp-b)*easingFn(t/d)+b);_animations[name].raf=_requestAF(animloop);}};animloop();};var publicMethods={shout:_shout,listen:_listen,viewportSize:_viewportSize,options:_options,isMainScrollAnimating:function(){return _mainScrollAnimating;},getZoomLevel:function(){return _currZoomLevel;},getCurrentIndex:function(){return _currentItemIndex;},isDragging:function(){return _isDragging;},isZooming:function(){return _isZooming;},setScrollOffset:function(x,y){_offset.x=x;_currentWindowScrollY=_offset.y=y;_shout('updateScrollOffset',_offset);},applyZoomPan:function(zoomLevel,panX,panY,allowRenderResolution){_panOffset.x=panX;_panOffset.y=panY;_currZoomLevel=zoomLevel;_applyCurrentZoomPan(allowRenderResolution);},init:function(){if(_isOpen||_isDestroying){return;}
var i;self.framework=framework;self.template=template;self.bg=framework.getChildByClass(template,'pswp__bg');_initalClassName=template.className;_isOpen=true;_features=framework.detectFeatures();_requestAF=_features.raf;_cancelAF=_features.caf;_transformKey=_features.transform;_oldIE=_features.oldIE;self.scrollWrap=framework.getChildByClass(template,'pswp__scroll-wrap');self.container=framework.getChildByClass(self.scrollWrap,'pswp__container');_containerStyle=self.container.style;self.itemHolders=_itemHolders=[{el:self.container.children[0],wrap:0,index:-1},{el:self.container.children[1],wrap:0,index:-1},{el:self.container.children[2],wrap:0,index:-1}];_itemHolders[0].el.style.display=_itemHolders[2].el.style.display='none';_setupTransforms();_globalEventHandlers={resize:self.updateSize,orientationchange:function(){clearTimeout(_orientationChangeTimeout);_orientationChangeTimeout=setTimeout(function(){if(_viewportSize.x!==self.scrollWrap.clientWidth){self.updateSize();}},500);},scroll:_updatePageScrollOffset,keydown:_onKeyDown,click:_onGlobalClick};var oldPhone=_features.isOldIOSPhone||_features.isOldAndroid||_features.isMobileOpera;if(!_features.animationName||!_features.transform||oldPhone){_options.showAnimationDuration=_options.hideAnimationDuration=0;}
for(i=0;i<_modules.length;i++){self['init'+_modules[i]]();}
if(UiClass){var ui=self.ui=new UiClass(self,framework);ui.init();}
_shout('firstUpdate');_currentItemIndex=_currentItemIndex||_options.index||0;if(isNaN(_currentItemIndex)||_currentItemIndex<0||_currentItemIndex>=_getNumItems()){_currentItemIndex=0;}
self.currItem=_getItemAt(_currentItemIndex);if(_features.isOldIOSPhone||_features.isOldAndroid){_isFixedPosition=false;}
template.setAttribute('aria-hidden','false');if(_options.modal){if(!_isFixedPosition){template.style.position='absolute';template.style.top=framework.getScrollY()+'px';}else{template.style.position='fixed';}}
if(_currentWindowScrollY===undefined){_shout('initialLayout');_currentWindowScrollY=_initalWindowScrollY=framework.getScrollY();}
var rootClasses='pswp--open ';if(_options.mainClass){rootClasses+=_options.mainClass+' ';}
if(_options.showHideOpacity){rootClasses+='pswp--animate_opacity ';}
rootClasses+=_likelyTouchDevice?'pswp--touch':'pswp--notouch';rootClasses+=_features.animationName?' pswp--css_animation':'';rootClasses+=_features.svg?' pswp--svg':'';framework.addClass(template,rootClasses);self.updateSize();_containerShiftIndex=-1;_indexDiff=null;for(i=0;i<NUM_HOLDERS;i++){_setTranslateX((i+_containerShiftIndex)*_slideSize.x,_itemHolders[i].el.style);}
if(!_oldIE){framework.bind(self.scrollWrap,_downEvents,self);}
_listen('initialZoomInEnd',function(){self.setContent(_itemHolders[0],_currentItemIndex-1);self.setContent(_itemHolders[2],_currentItemIndex+1);_itemHolders[0].el.style.display=_itemHolders[2].el.style.display='block';if(_options.focus){template.focus();}
_bindEvents();});self.setContent(_itemHolders[1],_currentItemIndex);self.updateCurrItem();_shout('afterInit');if(!_isFixedPosition){_updateSizeInterval=setInterval(function(){if(!_numAnimations&&!_isDragging&&!_isZooming&&(_currZoomLevel===self.currItem.initialZoomLevel)){self.updateSize();}},1000);}
framework.addClass(template,'pswp--visible');},close:function(){if(!_isOpen){return;}
_isOpen=false;_isDestroying=true;_shout('close');_unbindEvents();_showOrHide(self.currItem,null,true,self.destroy);},destroy:function(){_shout('destroy');if(_showOrHideTimeout){clearTimeout(_showOrHideTimeout);}
template.setAttribute('aria-hidden','true');template.className=_initalClassName;if(_updateSizeInterval){clearInterval(_updateSizeInterval);}
framework.unbind(self.scrollWrap,_downEvents,self);framework.unbind(window,'scroll',self);_stopDragUpdateLoop();_stopAllAnimations();_listeners=null;},panTo:function(x,y,force){if(!force){if(x>_currPanBounds.min.x){x=_currPanBounds.min.x;}else if(x<_currPanBounds.max.x){x=_currPanBounds.max.x;}
if(y>_currPanBounds.min.y){y=_currPanBounds.min.y;}else if(y<_currPanBounds.max.y){y=_currPanBounds.max.y;}}
_panOffset.x=x;_panOffset.y=y;_applyCurrentZoomPan();},handleEvent:function(e){e=e||window.event;if(_globalEventHandlers[e.type]){_globalEventHandlers[e.type](e);}},goTo:function(index){index=_getLoopedId(index);var diff=index-_currentItemIndex;_indexDiff=diff;_currentItemIndex=index;self.currItem=_getItemAt(_currentItemIndex);_currPositionIndex-=diff;_moveMainScroll(_slideSize.x*_currPositionIndex);_stopAllAnimations();_mainScrollAnimating=false;self.updateCurrItem();},next:function(){self.goTo(_currentItemIndex+1);},prev:function(){self.goTo(_currentItemIndex-1);},updateCurrZoomItem:function(emulateSetContent){if(emulateSetContent){_shout('beforeChange',0);}
if(_itemHolders[1].el.children.length){var zoomElement=_itemHolders[1].el.children[0];if(framework.hasClass(zoomElement,'pswp__zoom-wrap')){_currZoomElementStyle=zoomElement.style;}else{_currZoomElementStyle=null;}}else{_currZoomElementStyle=null;}
_currPanBounds=self.currItem.bounds;_startZoomLevel=_currZoomLevel=self.currItem.initialZoomLevel;_panOffset.x=_currPanBounds.center.x;_panOffset.y=_currPanBounds.center.y;if(emulateSetContent){_shout('afterChange');}},invalidateCurrItems:function(){_itemsNeedUpdate=true;for(var i=0;i<NUM_HOLDERS;i++){if(_itemHolders[i].item){_itemHolders[i].item.needsUpdate=true;}}},updateCurrItem:function(beforeAnimation){if(_indexDiff===0){return;}
var diffAbs=Math.abs(_indexDiff),tempHolder;if(beforeAnimation&&diffAbs<2){return;}
self.currItem=_getItemAt(_currentItemIndex);_renderMaxResolution=false;_shout('beforeChange',_indexDiff);if(diffAbs>=NUM_HOLDERS){_containerShiftIndex+=_indexDiff+(_indexDiff>0?-NUM_HOLDERS:NUM_HOLDERS);diffAbs=NUM_HOLDERS;}
for(var i=0;i<diffAbs;i++){if(_indexDiff>0){tempHolder=_itemHolders.shift();_itemHolders[NUM_HOLDERS-1]=tempHolder;_containerShiftIndex++;_setTranslateX((_containerShiftIndex+2)*_slideSize.x,tempHolder.el.style);self.setContent(tempHolder,_currentItemIndex-diffAbs+i+1+1);}else{tempHolder=_itemHolders.pop();_itemHolders.unshift(tempHolder);_containerShiftIndex--;_setTranslateX(_containerShiftIndex*_slideSize.x,tempHolder.el.style);self.setContent(tempHolder,_currentItemIndex+diffAbs-i-1-1);}}
if(_currZoomElementStyle&&Math.abs(_indexDiff)===1){var prevItem=_getItemAt(_prevItemIndex);if(prevItem.initialZoomLevel!==_currZoomLevel){_calculateItemSize(prevItem,_viewportSize);_setImageSize(prevItem);_applyZoomPanToItem(prevItem);}}
_indexDiff=0;self.updateCurrZoomItem();_prevItemIndex=_currentItemIndex;_shout('afterChange');},updateSize:function(force){if(!_isFixedPosition&&_options.modal){var windowScrollY=framework.getScrollY();if(_currentWindowScrollY!==windowScrollY){template.style.top=windowScrollY+'px';_currentWindowScrollY=windowScrollY;}
if(!force&&_windowVisibleSize.x===window.innerWidth&&_windowVisibleSize.y===window.innerHeight){return;}
_windowVisibleSize.x=window.innerWidth;_windowVisibleSize.y=window.innerHeight;template.style.height=_windowVisibleSize.y+'px';}
_viewportSize.x=self.scrollWrap.clientWidth;_viewportSize.y=self.scrollWrap.clientHeight;_updatePageScrollOffset();_slideSize.x=_viewportSize.x+Math.round(_viewportSize.x*_options.spacing);_slideSize.y=_viewportSize.y;_moveMainScroll(_slideSize.x*_currPositionIndex);_shout('beforeResize');if(_containerShiftIndex!==undefined){var holder,item,hIndex;for(var i=0;i<NUM_HOLDERS;i++){holder=_itemHolders[i];_setTranslateX((i+_containerShiftIndex)*_slideSize.x,holder.el.style);hIndex=_currentItemIndex+i-1;if(_options.loop&&_getNumItems()>2){hIndex=_getLoopedId(hIndex);}
item=_getItemAt(hIndex);if(item&&(_itemsNeedUpdate||item.needsUpdate||!item.bounds)){self.cleanSlide(item);self.setContent(holder,hIndex);if(i===1){self.currItem=item;self.updateCurrZoomItem(true);}
item.needsUpdate=false;}else if(holder.index===-1&&hIndex>=0){self.setContent(holder,hIndex);}
if(item&&item.container){_calculateItemSize(item,_viewportSize);_setImageSize(item);_applyZoomPanToItem(item);}}
_itemsNeedUpdate=false;}
_startZoomLevel=_currZoomLevel=self.currItem.initialZoomLevel;_currPanBounds=self.currItem.bounds;if(_currPanBounds){_panOffset.x=_currPanBounds.center.x;_panOffset.y=_currPanBounds.center.y;_applyCurrentZoomPan(true);}
_shout('resize');},zoomTo:function(destZoomLevel,centerPoint,speed,easingFn,updateFn){if(centerPoint){_startZoomLevel=_currZoomLevel;_midZoomPoint.x=Math.abs(centerPoint.x)-_panOffset.x;_midZoomPoint.y=Math.abs(centerPoint.y)-_panOffset.y;_equalizePoints(_startPanOffset,_panOffset);}
var destPanBounds=_calculatePanBounds(destZoomLevel,false),destPanOffset={};_modifyDestPanOffset('x',destPanBounds,destPanOffset,destZoomLevel);_modifyDestPanOffset('y',destPanBounds,destPanOffset,destZoomLevel);var initialZoomLevel=_currZoomLevel;var initialPanOffset={x:_panOffset.x,y:_panOffset.y};_roundPoint(destPanOffset);var onUpdate=function(now){if(now===1){_currZoomLevel=destZoomLevel;_panOffset.x=destPanOffset.x;_panOffset.y=destPanOffset.y;}else{_currZoomLevel=(destZoomLevel-initialZoomLevel)*now+initialZoomLevel;_panOffset.x=(destPanOffset.x-initialPanOffset.x)*now+initialPanOffset.x;_panOffset.y=(destPanOffset.y-initialPanOffset.y)*now+initialPanOffset.y;}
if(updateFn){updateFn(now);}
_applyCurrentZoomPan(now===1);};if(speed){_animateProp('customZoomTo',0,1,speed,easingFn||framework.easing.sine.inOut,onUpdate);}else{onUpdate(1);}}};var MIN_SWIPE_DISTANCE=30,DIRECTION_CHECK_OFFSET=10;var _gestureStartTime,_gestureCheckSpeedTime,p={},p2={},delta={},_currPoint={},_startPoint={},_currPointers=[],_startMainScrollPos={},_releaseAnimData,_posPoints=[],_tempPoint={},_isZoomingIn,_verticalDragInitiated,_oldAndroidTouchEndTimeout,_currZoomedItemIndex=0,_centerPoint=_getEmptyPoint(),_lastReleaseTime=0,_isDragging,_isMultitouch,_zoomStarted,_moved,_dragAnimFrame,_mainScrollShifted,_currentPoints,_isZooming,_currPointsDistance,_startPointsDistance,_currPanBounds,_mainScrollPos=_getEmptyPoint(),_currZoomElementStyle,_mainScrollAnimating,_midZoomPoint=_getEmptyPoint(),_currCenterPoint=_getEmptyPoint(),_direction,_isFirstMove,_opacityChanged,_bgOpacity,_wasOverInitialZoom,_isEqualPoints=function(p1,p2){return p1.x===p2.x&&p1.y===p2.y;},_isNearbyPoints=function(touch0,touch1){return Math.abs(touch0.x-touch1.x)<DOUBLE_TAP_RADIUS&&Math.abs(touch0.y-touch1.y)<DOUBLE_TAP_RADIUS;},_calculatePointsDistance=function(p1,p2){_tempPoint.x=Math.abs(p1.x-p2.x);_tempPoint.y=Math.abs(p1.y-p2.y);return Math.sqrt(_tempPoint.x*_tempPoint.x+_tempPoint.y*_tempPoint.y);},_stopDragUpdateLoop=function(){if(_dragAnimFrame){_cancelAF(_dragAnimFrame);_dragAnimFrame=null;}},_dragUpdateLoop=function(){if(_isDragging){_dragAnimFrame=_requestAF(_dragUpdateLoop);_renderMovement();}},_canPan=function(){return!(_options.scaleMode==='fit'&&_currZoomLevel===self.currItem.initialZoomLevel);},_closestElement=function(el,fn){if(!el||el===document){return false;}
if(el.getAttribute('class')&&el.getAttribute('class').indexOf('pswp__scroll-wrap')>-1){return false;}
if(fn(el)){return el;}
return _closestElement(el.parentNode,fn);},_preventObj={},_preventDefaultEventBehaviour=function(e,isDown){_preventObj.prevent=!_closestElement(e.target,_options.isClickableElement);_shout('preventDragEvent',e,isDown,_preventObj);return _preventObj.prevent;},_convertTouchToPoint=function(touch,p){p.x=touch.pageX;p.y=touch.pageY;p.id=touch.identifier;return p;},_findCenterOfPoints=function(p1,p2,pCenter){pCenter.x=(p1.x+p2.x)*0.5;pCenter.y=(p1.y+p2.y)*0.5;},_pushPosPoint=function(time,x,y){if(time-_gestureCheckSpeedTime>50){var o=_posPoints.length>2?_posPoints.shift():{};o.x=x;o.y=y;_posPoints.push(o);_gestureCheckSpeedTime=time;}},_calculateVerticalDragOpacityRatio=function(){var yOffset=_panOffset.y-self.currItem.initialPosition.y;return 1-Math.abs(yOffset/(_viewportSize.y/2));},_ePoint1={},_ePoint2={},_tempPointsArr=[],_tempCounter,_getTouchPoints=function(e){while(_tempPointsArr.length>0){_tempPointsArr.pop();}
if(!_pointerEventEnabled){if(e.type.indexOf('touch')>-1){if(e.touches&&e.touches.length>0){_tempPointsArr[0]=_convertTouchToPoint(e.touches[0],_ePoint1);if(e.touches.length>1){_tempPointsArr[1]=_convertTouchToPoint(e.touches[1],_ePoint2);}}}else{_ePoint1.x=e.pageX;_ePoint1.y=e.pageY;_ePoint1.id='';_tempPointsArr[0]=_ePoint1;}}else{_tempCounter=0;_currPointers.forEach(function(p){if(_tempCounter===0){_tempPointsArr[0]=p;}else if(_tempCounter===1){_tempPointsArr[1]=p;}
_tempCounter++;});}
return _tempPointsArr;},_panOrMoveMainScroll=function(axis,delta){var panFriction,overDiff=0,newOffset=_panOffset[axis]+delta[axis],startOverDiff,dir=delta[axis]>0,newMainScrollPosition=_mainScrollPos.x+delta.x,mainScrollDiff=_mainScrollPos.x-_startMainScrollPos.x,newPanPos,newMainScrollPos;if(newOffset>_currPanBounds.min[axis]||newOffset<_currPanBounds.max[axis]){panFriction=_options.panEndFriction;}else{panFriction=1;}
newOffset=_panOffset[axis]+delta[axis]*panFriction;if(_options.allowPanToNext||_currZoomLevel===self.currItem.initialZoomLevel){if(!_currZoomElementStyle){newMainScrollPos=newMainScrollPosition;}else if(_direction==='h'&&axis==='x'&&!_zoomStarted){if(dir){if(newOffset>_currPanBounds.min[axis]){panFriction=_options.panEndFriction;overDiff=_currPanBounds.min[axis]-newOffset;startOverDiff=_currPanBounds.min[axis]-_startPanOffset[axis];}
if((startOverDiff<=0||mainScrollDiff<0)&&_getNumItems()>1){newMainScrollPos=newMainScrollPosition;if(mainScrollDiff<0&&newMainScrollPosition>_startMainScrollPos.x){newMainScrollPos=_startMainScrollPos.x;}}else{if(_currPanBounds.min.x!==_currPanBounds.max.x){newPanPos=newOffset;}}}else{if(newOffset<_currPanBounds.max[axis]){panFriction=_options.panEndFriction;overDiff=newOffset-_currPanBounds.max[axis];startOverDiff=_startPanOffset[axis]-_currPanBounds.max[axis];}
if((startOverDiff<=0||mainScrollDiff>0)&&_getNumItems()>1){newMainScrollPos=newMainScrollPosition;if(mainScrollDiff>0&&newMainScrollPosition<_startMainScrollPos.x){newMainScrollPos=_startMainScrollPos.x;}}else{if(_currPanBounds.min.x!==_currPanBounds.max.x){newPanPos=newOffset;}}}}
if(axis==='x'){if(newMainScrollPos!==undefined){_moveMainScroll(newMainScrollPos,true);if(newMainScrollPos===_startMainScrollPos.x){_mainScrollShifted=false;}else{_mainScrollShifted=true;}}
if(_currPanBounds.min.x!==_currPanBounds.max.x){if(newPanPos!==undefined){_panOffset.x=newPanPos;}else if(!_mainScrollShifted){_panOffset.x+=delta.x*panFriction;}}
return newMainScrollPos!==undefined;}}
if(!_mainScrollAnimating){if(!_mainScrollShifted){if(_currZoomLevel>self.currItem.fitRatio){_panOffset[axis]+=delta[axis]*panFriction;}}}},_onDragStart=function(e){if(e.type==='mousedown'&&e.button>0){return;}
if(_initialZoomRunning){e.preventDefault();return;}
if(_oldAndroidTouchEndTimeout&&e.type==='mousedown'){return;}
if(_preventDefaultEventBehaviour(e,true)){e.preventDefault();}
_shout('pointerDown');if(_pointerEventEnabled){var pointerIndex=framework.arraySearch(_currPointers,e.pointerId,'id');if(pointerIndex<0){pointerIndex=_currPointers.length;}
_currPointers[pointerIndex]={x:e.pageX,y:e.pageY,id:e.pointerId};}
var startPointsList=_getTouchPoints(e),numPoints=startPointsList.length;_currentPoints=null;_stopAllAnimations();if(!_isDragging||numPoints===1){_isDragging=_isFirstMove=true;framework.bind(window,_upMoveEvents,self);_isZoomingIn=_wasOverInitialZoom=_opacityChanged=_verticalDragInitiated=_mainScrollShifted=_moved=_isMultitouch=_zoomStarted=false;_direction=null;_shout('firstTouchStart',startPointsList);_equalizePoints(_startPanOffset,_panOffset);_currPanDist.x=_currPanDist.y=0;_equalizePoints(_currPoint,startPointsList[0]);_equalizePoints(_startPoint,_currPoint);_startMainScrollPos.x=_slideSize.x*_currPositionIndex;_posPoints=[{x:_currPoint.x,y:_currPoint.y}];_gestureCheckSpeedTime=_gestureStartTime=_getCurrentTime();_calculatePanBounds(_currZoomLevel,true);_stopDragUpdateLoop();_dragUpdateLoop();}
if(!_isZooming&&numPoints>1&&!_mainScrollAnimating&&!_mainScrollShifted){_startZoomLevel=_currZoomLevel;_zoomStarted=false;_isZooming=_isMultitouch=true;_currPanDist.y=_currPanDist.x=0;_equalizePoints(_startPanOffset,_panOffset);_equalizePoints(p,startPointsList[0]);_equalizePoints(p2,startPointsList[1]);_findCenterOfPoints(p,p2,_currCenterPoint);_midZoomPoint.x=Math.abs(_currCenterPoint.x)-_panOffset.x;_midZoomPoint.y=Math.abs(_currCenterPoint.y)-_panOffset.y;_currPointsDistance=_startPointsDistance=_calculatePointsDistance(p,p2);}},_onDragMove=function(e){e.preventDefault();if(_pointerEventEnabled){var pointerIndex=framework.arraySearch(_currPointers,e.pointerId,'id');if(pointerIndex>-1){var p=_currPointers[pointerIndex];p.x=e.pageX;p.y=e.pageY;}}
if(_isDragging){var touchesList=_getTouchPoints(e);if(!_direction&&!_moved&&!_isZooming){if(_mainScrollPos.x!==_slideSize.x*_currPositionIndex){_direction='h';}else{var diff=Math.abs(touchesList[0].x-_currPoint.x)-Math.abs(touchesList[0].y-_currPoint.y);if(Math.abs(diff)>=DIRECTION_CHECK_OFFSET){_direction=diff>0?'h':'v';_currentPoints=touchesList;}}}else{_currentPoints=touchesList;}}},_renderMovement=function(){if(!_currentPoints){return;}
var numPoints=_currentPoints.length;if(numPoints===0){return;}
_equalizePoints(p,_currentPoints[0]);delta.x=p.x-_currPoint.x;delta.y=p.y-_currPoint.y;if(_isZooming&&numPoints>1){_currPoint.x=p.x;_currPoint.y=p.y;if(!delta.x&&!delta.y&&_isEqualPoints(_currentPoints[1],p2)){return;}
_equalizePoints(p2,_currentPoints[1]);if(!_zoomStarted){_zoomStarted=true;_shout('zoomGestureStarted');}
var pointsDistance=_calculatePointsDistance(p,p2);var zoomLevel=_calculateZoomLevel(pointsDistance);if(zoomLevel>self.currItem.initialZoomLevel+self.currItem.initialZoomLevel/15){_wasOverInitialZoom=true;}
var zoomFriction=1,minZoomLevel=_getMinZoomLevel(),maxZoomLevel=_getMaxZoomLevel();if(zoomLevel<minZoomLevel){if(_options.pinchToClose&&!_wasOverInitialZoom&&_startZoomLevel<=self.currItem.initialZoomLevel){var minusDiff=minZoomLevel-zoomLevel;var percent=1-minusDiff/(minZoomLevel/1.2);_applyBgOpacity(percent);_shout('onPinchClose',percent);_opacityChanged=true;}else{zoomFriction=(minZoomLevel-zoomLevel)/minZoomLevel;if(zoomFriction>1){zoomFriction=1;}
zoomLevel=minZoomLevel-zoomFriction*(minZoomLevel/3);}}else if(zoomLevel>maxZoomLevel){zoomFriction=(zoomLevel-maxZoomLevel)/(minZoomLevel*6);if(zoomFriction>1){zoomFriction=1;}
zoomLevel=maxZoomLevel+zoomFriction*minZoomLevel;}
if(zoomFriction<0){zoomFriction=0;}
_currPointsDistance=pointsDistance;_findCenterOfPoints(p,p2,_centerPoint);_currPanDist.x+=_centerPoint.x-_currCenterPoint.x;_currPanDist.y+=_centerPoint.y-_currCenterPoint.y;_equalizePoints(_currCenterPoint,_centerPoint);_panOffset.x=_calculatePanOffset('x',zoomLevel);_panOffset.y=_calculatePanOffset('y',zoomLevel);_isZoomingIn=zoomLevel>_currZoomLevel;_currZoomLevel=zoomLevel;_applyCurrentZoomPan();}else{if(!_direction){return;}
if(_isFirstMove){_isFirstMove=false;if(Math.abs(delta.x)>=DIRECTION_CHECK_OFFSET){delta.x-=_currentPoints[0].x-_startPoint.x;}
if(Math.abs(delta.y)>=DIRECTION_CHECK_OFFSET){delta.y-=_currentPoints[0].y-_startPoint.y;}}
_currPoint.x=p.x;_currPoint.y=p.y;if(delta.x===0&&delta.y===0){return;}
if(_direction==='v'&&_options.closeOnVerticalDrag){if(!_canPan()){_currPanDist.y+=delta.y;_panOffset.y+=delta.y;var opacityRatio=_calculateVerticalDragOpacityRatio();_verticalDragInitiated=true;_shout('onVerticalDrag',opacityRatio);_applyBgOpacity(opacityRatio);_applyCurrentZoomPan();return;}}
_pushPosPoint(_getCurrentTime(),p.x,p.y);_moved=true;_currPanBounds=self.currItem.bounds;var mainScrollChanged=_panOrMoveMainScroll('x',delta);if(!mainScrollChanged){_panOrMoveMainScroll('y',delta);_roundPoint(_panOffset);_applyCurrentZoomPan();}}},_onDragRelease=function(e){if(_features.isOldAndroid){if(_oldAndroidTouchEndTimeout&&e.type==='mouseup'){return;}
if(e.type.indexOf('touch')>-1){clearTimeout(_oldAndroidTouchEndTimeout);_oldAndroidTouchEndTimeout=setTimeout(function(){_oldAndroidTouchEndTimeout=0;},600);}}
_shout('pointerUp');if(_preventDefaultEventBehaviour(e,false)){e.preventDefault();}
var releasePoint;if(_pointerEventEnabled){var pointerIndex=framework.arraySearch(_currPointers,e.pointerId,'id');if(pointerIndex>-1){releasePoint=_currPointers.splice(pointerIndex,1)[0];if(navigator.msPointerEnabled){var MSPOINTER_TYPES={4:'mouse',2:'touch',3:'pen'};releasePoint.type=MSPOINTER_TYPES[e.pointerType];if(!releasePoint.type){releasePoint.type=e.pointerType||'mouse';}}else{releasePoint.type=e.pointerType||'mouse';}}}
var touchList=_getTouchPoints(e),gestureType,numPoints=touchList.length;if(e.type==='mouseup'){numPoints=0;}
if(numPoints===2){_currentPoints=null;return true;}
if(numPoints===1){_equalizePoints(_startPoint,touchList[0]);}
if(numPoints===0&&!_direction&&!_mainScrollAnimating){if(!releasePoint){if(e.type==='mouseup'){releasePoint={x:e.pageX,y:e.pageY,type:'mouse'};}else if(e.changedTouches&&e.changedTouches[0]){releasePoint={x:e.changedTouches[0].pageX,y:e.changedTouches[0].pageY,type:'touch'};}}
_shout('touchRelease',e,releasePoint);}
var releaseTimeDiff=-1;if(numPoints===0){_isDragging=false;framework.unbind(window,_upMoveEvents,self);_stopDragUpdateLoop();if(_isZooming){releaseTimeDiff=0;}else if(_lastReleaseTime!==-1){releaseTimeDiff=_getCurrentTime()-_lastReleaseTime;}}
_lastReleaseTime=numPoints===1?_getCurrentTime():-1;if(releaseTimeDiff!==-1&&releaseTimeDiff<150){gestureType='zoom';}else{gestureType='swipe';}
if(_isZooming&&numPoints<2){_isZooming=false;if(numPoints===1){gestureType='zoomPointerUp';}
_shout('zoomGestureEnded');}
_currentPoints=null;if(!_moved&&!_zoomStarted&&!_mainScrollAnimating&&!_verticalDragInitiated){return;}
_stopAllAnimations();if(!_releaseAnimData){_releaseAnimData=_initDragReleaseAnimationData();}
_releaseAnimData.calculateSwipeSpeed('x');if(_verticalDragInitiated){var opacityRatio=_calculateVerticalDragOpacityRatio();if(opacityRatio<_options.verticalDragRange){self.close();}else{var initalPanY=_panOffset.y,initialBgOpacity=_bgOpacity;_animateProp('verticalDrag',0,1,300,framework.easing.cubic.out,function(now){_panOffset.y=(self.currItem.initialPosition.y-initalPanY)*now+initalPanY;_applyBgOpacity((1-initialBgOpacity)*now+initialBgOpacity);_applyCurrentZoomPan();});_shout('onVerticalDrag',1);}
return;}
if((_mainScrollShifted||_mainScrollAnimating)&&numPoints===0){var itemChanged=_finishSwipeMainScrollGesture(gestureType,_releaseAnimData);if(itemChanged){return;}
gestureType='zoomPointerUp';}
if(_mainScrollAnimating){return;}
if(gestureType!=='swipe'){_completeZoomGesture();return;}
if(!_mainScrollShifted&&_currZoomLevel>self.currItem.fitRatio){_completePanGesture(_releaseAnimData);}},_initDragReleaseAnimationData=function(){var lastFlickDuration,tempReleasePos;var s={lastFlickOffset:{},lastFlickDist:{},lastFlickSpeed:{},slowDownRatio:{},slowDownRatioReverse:{},speedDecelerationRatio:{},speedDecelerationRatioAbs:{},distanceOffset:{},backAnimDestination:{},backAnimStarted:{},calculateSwipeSpeed:function(axis){if(_posPoints.length>1){lastFlickDuration=_getCurrentTime()-_gestureCheckSpeedTime+50;tempReleasePos=_posPoints[_posPoints.length-2][axis];}else{lastFlickDuration=_getCurrentTime()-_gestureStartTime;tempReleasePos=_startPoint[axis];}
s.lastFlickOffset[axis]=_currPoint[axis]-tempReleasePos;s.lastFlickDist[axis]=Math.abs(s.lastFlickOffset[axis]);if(s.lastFlickDist[axis]>20){s.lastFlickSpeed[axis]=s.lastFlickOffset[axis]/lastFlickDuration;}else{s.lastFlickSpeed[axis]=0;}
if(Math.abs(s.lastFlickSpeed[axis])<0.1){s.lastFlickSpeed[axis]=0;}
s.slowDownRatio[axis]=0.95;s.slowDownRatioReverse[axis]=1-s.slowDownRatio[axis];s.speedDecelerationRatio[axis]=1;},calculateOverBoundsAnimOffset:function(axis,speed){if(!s.backAnimStarted[axis]){if(_panOffset[axis]>_currPanBounds.min[axis]){s.backAnimDestination[axis]=_currPanBounds.min[axis];}else if(_panOffset[axis]<_currPanBounds.max[axis]){s.backAnimDestination[axis]=_currPanBounds.max[axis];}
if(s.backAnimDestination[axis]!==undefined){s.slowDownRatio[axis]=0.7;s.slowDownRatioReverse[axis]=1-s.slowDownRatio[axis];if(s.speedDecelerationRatioAbs[axis]<0.05){s.lastFlickSpeed[axis]=0;s.backAnimStarted[axis]=true;_animateProp('bounceZoomPan'+axis,_panOffset[axis],s.backAnimDestination[axis],speed||300,framework.easing.sine.out,function(pos){_panOffset[axis]=pos;_applyCurrentZoomPan();});}}}},calculateAnimOffset:function(axis){if(!s.backAnimStarted[axis]){s.speedDecelerationRatio[axis]=s.speedDecelerationRatio[axis]*(s.slowDownRatio[axis]+
s.slowDownRatioReverse[axis]-
s.slowDownRatioReverse[axis]*s.timeDiff/10);s.speedDecelerationRatioAbs[axis]=Math.abs(s.lastFlickSpeed[axis]*s.speedDecelerationRatio[axis]);s.distanceOffset[axis]=s.lastFlickSpeed[axis]*s.speedDecelerationRatio[axis]*s.timeDiff;_panOffset[axis]+=s.distanceOffset[axis];}},panAnimLoop:function(){if(_animations.zoomPan){_animations.zoomPan.raf=_requestAF(s.panAnimLoop);s.now=_getCurrentTime();s.timeDiff=s.now-s.lastNow;s.lastNow=s.now;s.calculateAnimOffset('x');s.calculateAnimOffset('y');_applyCurrentZoomPan();s.calculateOverBoundsAnimOffset('x');s.calculateOverBoundsAnimOffset('y');if(s.speedDecelerationRatioAbs.x<0.05&&s.speedDecelerationRatioAbs.y<0.05){_panOffset.x=Math.round(_panOffset.x);_panOffset.y=Math.round(_panOffset.y);_applyCurrentZoomPan();_stopAnimation('zoomPan');return;}}}};return s;},_completePanGesture=function(animData){animData.calculateSwipeSpeed('y');_currPanBounds=self.currItem.bounds;animData.backAnimDestination={};animData.backAnimStarted={};if(Math.abs(animData.lastFlickSpeed.x)<=0.05&&Math.abs(animData.lastFlickSpeed.y)<=0.05){animData.speedDecelerationRatioAbs.x=animData.speedDecelerationRatioAbs.y=0;animData.calculateOverBoundsAnimOffset('x');animData.calculateOverBoundsAnimOffset('y');return true;}
_registerStartAnimation('zoomPan');animData.lastNow=_getCurrentTime();animData.panAnimLoop();},_finishSwipeMainScrollGesture=function(gestureType,_releaseAnimData){var itemChanged;if(!_mainScrollAnimating){_currZoomedItemIndex=_currentItemIndex;}
var itemsDiff;if(gestureType==='swipe'){var totalShiftDist=_currPoint.x-_startPoint.x,isFastLastFlick=_releaseAnimData.lastFlickDist.x<10;if(totalShiftDist>MIN_SWIPE_DISTANCE&&(isFastLastFlick||_releaseAnimData.lastFlickOffset.x>20)){itemsDiff=-1;}else if(totalShiftDist<-MIN_SWIPE_DISTANCE&&(isFastLastFlick||_releaseAnimData.lastFlickOffset.x<-20)){itemsDiff=1;}}
var nextCircle;if(itemsDiff){_currentItemIndex+=itemsDiff;if(_currentItemIndex<0){_currentItemIndex=_options.loop?_getNumItems()-1:0;nextCircle=true;}else if(_currentItemIndex>=_getNumItems()){_currentItemIndex=_options.loop?0:_getNumItems()-1;nextCircle=true;}
if(!nextCircle||_options.loop){_indexDiff+=itemsDiff;_currPositionIndex-=itemsDiff;itemChanged=true;}}
var animateToX=_slideSize.x*_currPositionIndex;var animateToDist=Math.abs(animateToX-_mainScrollPos.x);var finishAnimDuration;if(!itemChanged&&animateToX>_mainScrollPos.x!==_releaseAnimData.lastFlickSpeed.x>0){finishAnimDuration=333;}else{finishAnimDuration=Math.abs(_releaseAnimData.lastFlickSpeed.x)>0?animateToDist/Math.abs(_releaseAnimData.lastFlickSpeed.x):333;finishAnimDuration=Math.min(finishAnimDuration,400);finishAnimDuration=Math.max(finishAnimDuration,250);}
if(_currZoomedItemIndex===_currentItemIndex){itemChanged=false;}
_mainScrollAnimating=true;_shout('mainScrollAnimStart');_animateProp('mainScroll',_mainScrollPos.x,animateToX,finishAnimDuration,framework.easing.cubic.out,_moveMainScroll,function(){_stopAllAnimations();_mainScrollAnimating=false;_currZoomedItemIndex=-1;if(itemChanged||_currZoomedItemIndex!==_currentItemIndex){self.updateCurrItem();}
_shout('mainScrollAnimComplete');});if(itemChanged){self.updateCurrItem(true);}
return itemChanged;},_calculateZoomLevel=function(touchesDistance){return 1/_startPointsDistance*touchesDistance*_startZoomLevel;},_completeZoomGesture=function(){var destZoomLevel=_currZoomLevel,minZoomLevel=_getMinZoomLevel(),maxZoomLevel=_getMaxZoomLevel();if(_currZoomLevel<minZoomLevel){destZoomLevel=minZoomLevel;}else if(_currZoomLevel>maxZoomLevel){destZoomLevel=maxZoomLevel;}
var destOpacity=1,onUpdate,initialOpacity=_bgOpacity;if(_opacityChanged&&!_isZoomingIn&&!_wasOverInitialZoom&&_currZoomLevel<minZoomLevel){self.close();return true;}
if(_opacityChanged){onUpdate=function(now){_applyBgOpacity((destOpacity-initialOpacity)*now+initialOpacity);};}
self.zoomTo(destZoomLevel,0,200,framework.easing.cubic.out,onUpdate);return true;};_registerModule('Gestures',{publicMethods:{initGestures:function(){var addEventNames=function(pref,down,move,up,cancel){_dragStartEvent=pref+down;_dragMoveEvent=pref+move;_dragEndEvent=pref+up;if(cancel){_dragCancelEvent=pref+cancel;}else{_dragCancelEvent='';}};_pointerEventEnabled=_features.pointerEvent;if(_pointerEventEnabled&&_features.touch){_features.touch=false;}
if(_pointerEventEnabled){if(navigator.msPointerEnabled){addEventNames('MSPointer','Down','Move','Up','Cancel');}else{addEventNames('pointer','down','move','up','cancel');}}else if(_features.touch){addEventNames('touch','start','move','end','cancel');_likelyTouchDevice=true;}else{addEventNames('mouse','down','move','up');}
_upMoveEvents=_dragMoveEvent+' '+_dragEndEvent+' '+_dragCancelEvent;_downEvents=_dragStartEvent;if(_pointerEventEnabled&&!_likelyTouchDevice){_likelyTouchDevice=(navigator.maxTouchPoints>1)||(navigator.msMaxTouchPoints>1);}
self.likelyTouchDevice=_likelyTouchDevice;_globalEventHandlers[_dragStartEvent]=_onDragStart;_globalEventHandlers[_dragMoveEvent]=_onDragMove;_globalEventHandlers[_dragEndEvent]=_onDragRelease;if(_dragCancelEvent){_globalEventHandlers[_dragCancelEvent]=_globalEventHandlers[_dragEndEvent];}
if(_features.touch){_downEvents+=' mousedown';_upMoveEvents+=' mousemove mouseup';_globalEventHandlers.mousedown=_globalEventHandlers[_dragStartEvent];_globalEventHandlers.mousemove=_globalEventHandlers[_dragMoveEvent];_globalEventHandlers.mouseup=_globalEventHandlers[_dragEndEvent];}
if(!_likelyTouchDevice){_options.allowPanToNext=false;}}}});var _showOrHideTimeout,_showOrHide=function(item,img,out,completeFn){if(_showOrHideTimeout){clearTimeout(_showOrHideTimeout);}
_initialZoomRunning=true;_initialContentSet=true;var thumbBounds;if(item.initialLayout){thumbBounds=item.initialLayout;item.initialLayout=null;}else{thumbBounds=_options.getThumbBoundsFn&&_options.getThumbBoundsFn(_currentItemIndex);}
var duration=out?_options.hideAnimationDuration:_options.showAnimationDuration;var onComplete=function(){_stopAnimation('initialZoom');if(!out){_applyBgOpacity(1);if(img){img.style.display='block';}
framework.addClass(template,'pswp--animated-in');_shout('initialZoom'+(out?'OutEnd':'InEnd'));}else{self.template.removeAttribute('style');self.bg.removeAttribute('style');}
if(completeFn){completeFn();}
_initialZoomRunning=false;};if(!duration||!thumbBounds||thumbBounds.x===undefined){_shout('initialZoom'+(out?'Out':'In'));_currZoomLevel=item.initialZoomLevel;_equalizePoints(_panOffset,item.initialPosition);_applyCurrentZoomPan();template.style.opacity=out?0:1;_applyBgOpacity(1);if(duration){setTimeout(function(){onComplete();},duration);}else{onComplete();}
return;}
var startAnimation=function(){var closeWithRaf=_closedByScroll,fadeEverything=!self.currItem.src||self.currItem.loadError||_options.showHideOpacity;if(item.miniImg){item.miniImg.style.webkitBackfaceVisibility='hidden';}
if(!out){_currZoomLevel=thumbBounds.w/item.w;_panOffset.x=thumbBounds.x;_panOffset.y=thumbBounds.y-_initalWindowScrollY;self[fadeEverything?'template':'bg'].style.opacity=0.001;_applyCurrentZoomPan();}
_registerStartAnimation('initialZoom');if(out&&!closeWithRaf){framework.removeClass(template,'pswp--animated-in');}
if(fadeEverything){if(out){framework[(closeWithRaf?'remove':'add')+'Class'](template,'pswp--animate_opacity');}else{setTimeout(function(){framework.addClass(template,'pswp--animate_opacity');},30);}}
_showOrHideTimeout=setTimeout(function(){_shout('initialZoom'+(out?'Out':'In'));if(!out){_currZoomLevel=item.initialZoomLevel;_equalizePoints(_panOffset,item.initialPosition);_applyCurrentZoomPan();_applyBgOpacity(1);if(fadeEverything){template.style.opacity=1;}else{_applyBgOpacity(1);}
_showOrHideTimeout=setTimeout(onComplete,duration+20);}else{var destZoomLevel=thumbBounds.w/item.w,initialPanOffset={x:_panOffset.x,y:_panOffset.y},initialZoomLevel=_currZoomLevel,initalBgOpacity=_bgOpacity,onUpdate=function(now){if(now===1){_currZoomLevel=destZoomLevel;_panOffset.x=thumbBounds.x;_panOffset.y=thumbBounds.y-_currentWindowScrollY;}else{_currZoomLevel=(destZoomLevel-initialZoomLevel)*now+initialZoomLevel;_panOffset.x=(thumbBounds.x-initialPanOffset.x)*now+initialPanOffset.x;_panOffset.y=(thumbBounds.y-_currentWindowScrollY-initialPanOffset.y)*now+initialPanOffset.y;}
_applyCurrentZoomPan();if(fadeEverything){template.style.opacity=1-now;}else{_applyBgOpacity(initalBgOpacity-now*initalBgOpacity);}};if(closeWithRaf){_animateProp('initialZoom',0,1,duration,framework.easing.cubic.out,onUpdate,onComplete);}else{onUpdate(1);_showOrHideTimeout=setTimeout(onComplete,duration+20);}}},out?25:90);};startAnimation();};var _items,_tempPanAreaSize={},_imagesToAppendPool=[],_initialContentSet,_initialZoomRunning,_controllerDefaultOptions={index:0,errorMsg:'<div class="pswp__error-msg"><a href="%url%" target="_blank">The image</a> could not be loaded.</div>',forceProgressiveLoading:false,preload:[1,1],getNumItemsFn:function(){return _items.length;}};var _getItemAt,_getNumItems,_initialIsLoop,_getZeroBounds=function(){return{center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}};},_calculateSingleItemPanBounds=function(item,realPanElementW,realPanElementH){var bounds=item.bounds;bounds.center.x=Math.round((_tempPanAreaSize.x-realPanElementW)/2);bounds.center.y=Math.round((_tempPanAreaSize.y-realPanElementH)/2)+item.vGap.top;bounds.max.x=(realPanElementW>_tempPanAreaSize.x)?Math.round(_tempPanAreaSize.x-realPanElementW):bounds.center.x;bounds.max.y=(realPanElementH>_tempPanAreaSize.y)?Math.round(_tempPanAreaSize.y-realPanElementH)+item.vGap.top:bounds.center.y;bounds.min.x=(realPanElementW>_tempPanAreaSize.x)?0:bounds.center.x;bounds.min.y=(realPanElementH>_tempPanAreaSize.y)?item.vGap.top:bounds.center.y;},_calculateItemSize=function(item,viewportSize,zoomLevel){if(item.src&&!item.loadError){var isInitial=!zoomLevel;if(isInitial){if(!item.vGap){item.vGap={top:0,bottom:0};}
_shout('parseVerticalMargin',item);}
_tempPanAreaSize.x=viewportSize.x;_tempPanAreaSize.y=viewportSize.y-item.vGap.top-item.vGap.bottom;if(isInitial){var hRatio=_tempPanAreaSize.x/item.w;var vRatio=_tempPanAreaSize.y/item.h;item.fitRatio=hRatio<vRatio?hRatio:vRatio;var scaleMode=_options.scaleMode;if(scaleMode==='orig'){zoomLevel=1;}else if(scaleMode==='fit'){zoomLevel=item.fitRatio;}
if(zoomLevel>1){zoomLevel=1;}
item.initialZoomLevel=zoomLevel;if(!item.bounds){item.bounds=_getZeroBounds();}}
if(!zoomLevel){return;}
_calculateSingleItemPanBounds(item,item.w*zoomLevel,item.h*zoomLevel);if(isInitial&&zoomLevel===item.initialZoomLevel){item.initialPosition=item.bounds.center;}
return item.bounds;}else{item.w=item.h=0;item.initialZoomLevel=item.fitRatio=1;item.bounds=_getZeroBounds();item.initialPosition=item.bounds.center;return item.bounds;}},_appendImage=function(index,item,baseDiv,img,preventAnimation,keepPlaceholder){if(item.loadError){return;}
if(img){item.imageAppended=true;_setImageSize(item,img,(item===self.currItem&&_renderMaxResolution));baseDiv.appendChild(img);if(keepPlaceholder){setTimeout(function(){if(item&&item.loaded&&item.placeholder){item.placeholder.style.display='none';item.placeholder=null;}},500);}}},_preloadImage=function(item){item.loading=true;item.loaded=false;var img=item.img=framework.createEl('pswp__img','img');var onComplete=function(){item.loading=false;item.loaded=true;if(item.loadComplete){item.loadComplete(item);}else{item.img=null;}
img.onload=img.onerror=null;img=null;};img.onload=onComplete;img.onerror=function(){item.loadError=true;onComplete();};img.src=item.src;return img;},_checkForError=function(item,cleanUp){if(item.src&&item.loadError&&item.container){if(cleanUp){item.container.innerHTML='';}
item.container.innerHTML=_options.errorMsg.replace('%url%',item.src);return true;}},_setImageSize=function(item,img,maxRes){if(!item.src){return;}
if(!img){img=item.container.lastChild;}
var w=maxRes?item.w:Math.round(item.w*item.fitRatio),h=maxRes?item.h:Math.round(item.h*item.fitRatio);if(item.placeholder&&!item.loaded){item.placeholder.style.width=w+'px';item.placeholder.style.height=h+'px';}
img.style.width=w+'px';img.style.height=h+'px';},_appendImagesPool=function(){if(_imagesToAppendPool.length){var poolItem;for(var i=0;i<_imagesToAppendPool.length;i++){poolItem=_imagesToAppendPool[i];if(poolItem.holder.index===poolItem.index){_appendImage(poolItem.index,poolItem.item,poolItem.baseDiv,poolItem.img,false,poolItem.clearPlaceholder);}}
_imagesToAppendPool=[];}};_registerModule('Controller',{publicMethods:{lazyLoadItem:function(index){index=_getLoopedId(index);var item=_getItemAt(index);if(!item||((item.loaded||item.loading)&&!_itemsNeedUpdate)){return;}
_shout('gettingData',index,item);if(!item.src){return;}
_preloadImage(item);},initController:function(){framework.extend(_options,_controllerDefaultOptions,true);self.items=_items=items;_getItemAt=self.getItemAt;_getNumItems=_options.getNumItemsFn;_initialIsLoop=_options.loop;if(_getNumItems()<3){_options.loop=false;}
_listen('beforeChange',function(diff){var p=_options.preload,isNext=diff===null?true:(diff>=0),preloadBefore=Math.min(p[0],_getNumItems()),preloadAfter=Math.min(p[1],_getNumItems()),i;for(i=1;i<=(isNext?preloadAfter:preloadBefore);i++){self.lazyLoadItem(_currentItemIndex+i);}
for(i=1;i<=(isNext?preloadBefore:preloadAfter);i++){self.lazyLoadItem(_currentItemIndex-i);}});_listen('initialLayout',function(){self.currItem.initialLayout=_options.getThumbBoundsFn&&_options.getThumbBoundsFn(_currentItemIndex);});_listen('mainScrollAnimComplete',_appendImagesPool);_listen('initialZoomInEnd',_appendImagesPool);_listen('destroy',function(){var item;for(var i=0;i<_items.length;i++){item=_items[i];if(item.container){item.container=null;}
if(item.placeholder){item.placeholder=null;}
if(item.img){item.img=null;}
if(item.preloader){item.preloader=null;}
if(item.loadError){item.loaded=item.loadError=false;}}
_imagesToAppendPool=null;});},getItemAt:function(index){if(index>=0){return _items[index]!==undefined?_items[index]:false;}
return false;},allowProgressiveImg:function(){return _options.forceProgressiveLoading||!_likelyTouchDevice||_options.mouseUsed||screen.width>1200;},setContent:function(holder,index){if(_options.loop){index=_getLoopedId(index);}
var prevItem=self.getItemAt(holder.index);if(prevItem){prevItem.container=null;}
var item=self.getItemAt(index),img;if(!item){holder.el.innerHTML='';return;}
_shout('gettingData',index,item);holder.index=index;holder.item=item;var baseDiv=item.container=framework.createEl('pswp__zoom-wrap');if(!item.src&&item.html){if(item.html.tagName){baseDiv.appendChild(item.html);}else{baseDiv.innerHTML=item.html;}}
_checkForError(item);_calculateItemSize(item,_viewportSize);if(item.src&&!item.loadError&&!item.loaded){item.loadComplete=function(item){if(!_isOpen){return;}
if(holder&&holder.index===index){if(_checkForError(item,true)){item.loadComplete=item.img=null;_calculateItemSize(item,_viewportSize);_applyZoomPanToItem(item);if(holder.index===_currentItemIndex){self.updateCurrZoomItem();}
return;}
if(!item.imageAppended){if(_features.transform&&(_mainScrollAnimating||_initialZoomRunning)){_imagesToAppendPool.push({item:item,baseDiv:baseDiv,img:item.img,index:index,holder:holder,clearPlaceholder:true});}else{_appendImage(index,item,baseDiv,item.img,_mainScrollAnimating||_initialZoomRunning,true);}}else{if(!_initialZoomRunning&&item.placeholder){item.placeholder.style.display='none';item.placeholder=null;}}}
item.loadComplete=null;item.img=null;_shout('imageLoadComplete',index,item);};if(framework.features.transform){var placeholderClassName='pswp__img pswp__img--placeholder';placeholderClassName+=(item.msrc?'':' pswp__img--placeholder--blank');var placeholder=framework.createEl(placeholderClassName,item.msrc?'img':'');if(item.msrc){placeholder.src=item.msrc;}
_setImageSize(item,placeholder);baseDiv.appendChild(placeholder);item.placeholder=placeholder;}
if(!item.loading){_preloadImage(item);}
if(self.allowProgressiveImg()){if(!_initialContentSet&&_features.transform){_imagesToAppendPool.push({item:item,baseDiv:baseDiv,img:item.img,index:index,holder:holder});}else{_appendImage(index,item,baseDiv,item.img,true,true);}}}else if(item.src&&!item.loadError){img=framework.createEl('pswp__img','img');img.style.opacity=1;img.src=item.src;_setImageSize(item,img);_appendImage(index,item,baseDiv,img,true);}
if(!_initialContentSet&&index===_currentItemIndex){_currZoomElementStyle=baseDiv.style;_showOrHide(item,(img||item.img));}else{_applyZoomPanToItem(item);}
holder.el.innerHTML='';holder.el.appendChild(baseDiv);},cleanSlide:function(item){if(item.img){item.img.onload=item.img.onerror=null;}
item.loaded=item.loading=item.img=item.imageAppended=false;}}});var tapTimer,tapReleasePoint={},_dispatchTapEvent=function(origEvent,releasePoint,pointerType){var e=document.createEvent('CustomEvent'),eDetail={origEvent:origEvent,target:origEvent.target,releasePoint:releasePoint,pointerType:pointerType||'touch'};e.initCustomEvent('pswpTap',true,true,eDetail);origEvent.target.dispatchEvent(e);};_registerModule('Tap',{publicMethods:{initTap:function(){_listen('firstTouchStart',self.onTapStart);_listen('touchRelease',self.onTapRelease);_listen('destroy',function(){tapReleasePoint={};tapTimer=null;});},onTapStart:function(touchList){if(touchList.length>1){clearTimeout(tapTimer);tapTimer=null;}},onTapRelease:function(e,releasePoint){if(!releasePoint){return;}
if(!_moved&&!_isMultitouch&&!_numAnimations){var p0=releasePoint;if(tapTimer){clearTimeout(tapTimer);tapTimer=null;if(_isNearbyPoints(p0,tapReleasePoint)){_shout('doubleTap',p0);return;}}
if(releasePoint.type==='mouse'){_dispatchTapEvent(e,releasePoint,'mouse');return;}
var clickedTagName=e.target.tagName.toUpperCase();if(clickedTagName==='BUTTON'||framework.hasClass(e.target,'pswp__single-tap')){_dispatchTapEvent(e,releasePoint);return;}
_equalizePoints(tapReleasePoint,p0);tapTimer=setTimeout(function(){_dispatchTapEvent(e,releasePoint);tapTimer=null;},300);}}}});var _wheelDelta;_registerModule('DesktopZoom',{publicMethods:{initDesktopZoom:function(){if(_oldIE){return;}
if(_likelyTouchDevice){_listen('mouseUsed',function(){self.setupDesktopZoom();});}else{self.setupDesktopZoom(true);}},setupDesktopZoom:function(onInit){_wheelDelta={};var events='wheel mousewheel DOMMouseScroll';_listen('bindEvents',function(){framework.bind(template,events,self.handleMouseWheel);});_listen('unbindEvents',function(){if(_wheelDelta){framework.unbind(template,events,self.handleMouseWheel);}});self.mouseZoomedIn=false;var hasDraggingClass,updateZoomable=function(){if(self.mouseZoomedIn){framework.removeClass(template,'pswp--zoomed-in');self.mouseZoomedIn=false;}
if(_currZoomLevel<1){framework.addClass(template,'pswp--zoom-allowed');}else{framework.removeClass(template,'pswp--zoom-allowed');}
removeDraggingClass();},removeDraggingClass=function(){if(hasDraggingClass){framework.removeClass(template,'pswp--dragging');hasDraggingClass=false;}};_listen('resize',updateZoomable);_listen('afterChange',updateZoomable);_listen('pointerDown',function(){if(self.mouseZoomedIn){hasDraggingClass=true;framework.addClass(template,'pswp--dragging');}});_listen('pointerUp',removeDraggingClass);if(!onInit){updateZoomable();}},handleMouseWheel:function(e){if(_currZoomLevel<=self.currItem.fitRatio){if(_options.modal){if(!_options.closeOnScroll||_numAnimations||_isDragging){e.preventDefault();}else if(_transformKey&&Math.abs(e.deltaY)>2){_closedByScroll=true;self.close();}}
return true;}
e.stopPropagation();_wheelDelta.x=0;if('deltaX' in e){if(e.deltaMode===1){_wheelDelta.x=e.deltaX*18;_wheelDelta.y=e.deltaY*18;}else{_wheelDelta.x=e.deltaX;_wheelDelta.y=e.deltaY;}}else if('wheelDelta' in e){if(e.wheelDeltaX){_wheelDelta.x=-0.16*e.wheelDeltaX;}
if(e.wheelDeltaY){_wheelDelta.y=-0.16*e.wheelDeltaY;}else{_wheelDelta.y=-0.16*e.wheelDelta;}}else if('detail' in e){_wheelDelta.y=e.detail;}else{return;}
_calculatePanBounds(_currZoomLevel,true);var newPanX=_panOffset.x-_wheelDelta.x,newPanY=_panOffset.y-_wheelDelta.y;if(_options.modal||(newPanX<=_currPanBounds.min.x&&newPanX>=_currPanBounds.max.x&&newPanY<=_currPanBounds.min.y&&newPanY>=_currPanBounds.max.y)){e.preventDefault();}
self.panTo(newPanX,newPanY);},toggleDesktopZoom:function(centerPoint){centerPoint=centerPoint||{x:_viewportSize.x/2+_offset.x,y:_viewportSize.y/2+_offset.y};var doubleTapZoomLevel=_options.getDoubleTapZoom(true,self.currItem);var zoomOut=_currZoomLevel===doubleTapZoomLevel;self.mouseZoomedIn=!zoomOut;self.zoomTo(zoomOut?self.currItem.initialZoomLevel:doubleTapZoomLevel,centerPoint,333);framework[(!zoomOut?'add':'remove')+'Class'](template,'pswp--zoomed-in');}}});var _historyDefaultOptions={history:true,galleryUID:1};var _historyUpdateTimeout,_hashChangeTimeout,_hashAnimCheckTimeout,_hashChangedByScript,_hashChangedByHistory,_hashReseted,_initialHash,_historyChanged,_closedFromURL,_urlChangedOnce,_windowLoc,_supportsPushState,_getHash=function(){return _windowLoc.hash.substring(1);},_cleanHistoryTimeouts=function(){if(_historyUpdateTimeout){clearTimeout(_historyUpdateTimeout);}
if(_hashAnimCheckTimeout){clearTimeout(_hashAnimCheckTimeout);}},_parseItemIndexFromURL=function(){var hash=_getHash(),params={};if(hash.length<5){return params;}
var i,vars=hash.split('&');for(i=0;i<vars.length;i++){if(!vars[i]){continue;}
var pair=vars[i].split('=');if(pair.length<2){continue;}
params[pair[0]]=pair[1];}
if(_options.galleryPIDs){var searchfor=params.pid;params.pid=0;for(i=0;i<_items.length;i++){if(_items[i].pid===searchfor){params.pid=i;break;}}}else{params.pid=parseInt(params.pid,10)-1;}
if(params.pid<0){params.pid=0;}
return params;},_updateHash=function(){if(_hashAnimCheckTimeout){clearTimeout(_hashAnimCheckTimeout);}
if(_numAnimations||_isDragging){_hashAnimCheckTimeout=setTimeout(_updateHash,500);return;}
if(_hashChangedByScript){clearTimeout(_hashChangeTimeout);}else{_hashChangedByScript=true;}
var pid=(_currentItemIndex+1);var item=_getItemAt(_currentItemIndex);if(item.hasOwnProperty('pid')){pid=item.pid;}
var newHash=_initialHash+'&'+'gid='+_options.galleryUID+'&'+'pid='+pid;if(!_historyChanged){if(_windowLoc.hash.indexOf(newHash)===-1){_urlChangedOnce=true;}}
var newURL=_windowLoc.href.split('#')[0]+'#'+newHash;if(_supportsPushState){if('#'+newHash!==window.location.hash){history[_historyChanged?'replaceState':'pushState']('',document.title,newURL);}}else{if(_historyChanged){_windowLoc.replace(newURL);}else{_windowLoc.hash=newHash;}}
_historyChanged=true;_hashChangeTimeout=setTimeout(function(){_hashChangedByScript=false;},60);};_registerModule('History',{publicMethods:{initHistory:function(){framework.extend(_options,_historyDefaultOptions,true);if(!_options.history){return;}
_windowLoc=window.location;_urlChangedOnce=false;_closedFromURL=false;_historyChanged=false;_initialHash=_getHash();_supportsPushState=('pushState' in history);if(_initialHash.indexOf('gid=')>-1){_initialHash=_initialHash.split('&gid=')[0];_initialHash=_initialHash.split('?gid=')[0];}
_listen('afterChange',self.updateURL);_listen('unbindEvents',function(){framework.unbind(window,'hashchange',self.onHashChange);});var returnToOriginal=function(){_hashReseted=true;if(!_closedFromURL){if(_urlChangedOnce){history.back();}else{if(_initialHash){_windowLoc.hash=_initialHash;}else{if(_supportsPushState){history.pushState('',document.title,_windowLoc.pathname+_windowLoc.search);}else{_windowLoc.hash='';}}}}
_cleanHistoryTimeouts();};_listen('unbindEvents',function(){if(_closedByScroll){returnToOriginal();}});_listen('destroy',function(){if(!_hashReseted){returnToOriginal();}});_listen('firstUpdate',function(){_currentItemIndex=_parseItemIndexFromURL().pid;});var index=_initialHash.indexOf('pid=');if(index>-1){_initialHash=_initialHash.substring(0,index);if(_initialHash.slice(-1)==='&'){_initialHash=_initialHash.slice(0,-1);}}
setTimeout(function(){if(_isOpen){framework.bind(window,'hashchange',self.onHashChange);}},40);},onHashChange:function(){if(_getHash()===_initialHash){_closedFromURL=true;self.close();return;}
if(!_hashChangedByScript){_hashChangedByHistory=true;self.goTo(_parseItemIndexFromURL().pid);_hashChangedByHistory=false;}},updateURL:function(){_cleanHistoryTimeouts();if(_hashChangedByHistory){return;}
if(!_historyChanged){_updateHash();}else{_historyUpdateTimeout=setTimeout(_updateHash,800);}}}});framework.extend(self,publicMethods);};return PhotoSwipe;});
;;;(function(root,factory){if(typeof define==='function'&&define.amd){define(factory);}else if(typeof exports==='object'){module.exports=factory();}else{root.PhotoSwipeUI_Default=factory();}})(this,function(){'use strict';var PhotoSwipeUI_Default=function(pswp,framework){var ui=this;var _overlayUIUpdated=false,_controlsVisible=true,_fullscrenAPI,_controls,_captionContainer,_fakeCaptionContainer,_indexIndicator,_shareButton,_shareModal,_shareModalHidden=true,_initalCloseOnScrollValue,_isIdle,_listen,_loadingIndicator,_loadingIndicatorHidden,_loadingIndicatorTimeout,_galleryHasOneSlide,_options,_defaultUIOptions={barsSize:{top:44,bottom:'auto'},closeElClasses:['item','caption','zoom-wrap','ui','top-bar'],timeToIdle:4000,timeToIdleOutside:1000,loadingIndicatorDelay:1000,addCaptionHTMLFn:function(item,captionEl){if(!item.title){captionEl.children[0].innerHTML='';return false;}
captionEl.children[0].innerHTML=item.title;return true;},closeEl:true,captionEl:true,fullscreenEl:false,zoomEl:true,shareEl:true,counterEl:true,arrowEl:true,preloaderEl:true,tapToClose:false,tapToToggleControls:true,clickToCloseNonZoomable:true,shareButtons:[{id:'facebook',label:'Share on Facebook',url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},{id:'twitter',label:'Tweet',url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},{id:'pinterest',label:'Pin it',url:'http://www.pinterest.com/pin/create/button/'+'?url={{url}}&media={{image_url}}&description={{text}}'},{id:'download',label:'Download image',url:'{{raw_image_url}}',download:true}],getImageURLForShare:function(){return pswp.currItem.src||'';},getPageURLForShare:function(){return window.location.href;},getTextForShare:function(){return pswp.currItem.title||'';},indexIndicatorSep:' / ',fitControlsWidth:1200},_blockControlsTap,_blockControlsTapTimeout;var _onControlsTap=function(e){if(_blockControlsTap){return true;}
e=e||window.event;if(_options.timeToIdle&&_options.mouseUsed&&!_isIdle){_onIdleMouseMove();}
var target=e.target||e.srcElement,uiElement,clickedClass=target.getAttribute('class')||'',found;for(var i=0;i<_uiElements.length;i++){uiElement=_uiElements[i];if(uiElement.onTap&&clickedClass.indexOf('pswp__'+uiElement.name)>-1){uiElement.onTap();found=true;}}
if(found){if(e.stopPropagation){e.stopPropagation();}
_blockControlsTap=true;var tapDelay=framework.features.isOldAndroid?600:30;_blockControlsTapTimeout=setTimeout(function(){_blockControlsTap=false;},tapDelay);}},_fitControlsInViewport=function(){return!pswp.likelyTouchDevice||_options.mouseUsed||screen.width>_options.fitControlsWidth;},_togglePswpClass=function(el,cName,add){framework[(add?'add':'remove')+'Class'](el,'pswp__'+cName);},_countNumItems=function(){var hasOneSlide=(_options.getNumItemsFn()===1);if(hasOneSlide!==_galleryHasOneSlide){_togglePswpClass(_controls,'ui--one-slide',hasOneSlide);_galleryHasOneSlide=hasOneSlide;}},_toggleShareModalClass=function(){_togglePswpClass(_shareModal,'share-modal--hidden',_shareModalHidden);},_toggleShareModal=function(){_shareModalHidden=!_shareModalHidden;if(!_shareModalHidden){_toggleShareModalClass();setTimeout(function(){if(!_shareModalHidden){framework.addClass(_shareModal,'pswp__share-modal--fade-in');}},30);}else{framework.removeClass(_shareModal,'pswp__share-modal--fade-in');setTimeout(function(){if(_shareModalHidden){_toggleShareModalClass();}},300);}
if(!_shareModalHidden){_updateShareURLs();}
return false;},_openWindowPopup=function(e){e=e||window.event;var target=e.target||e.srcElement;pswp.shout('shareLinkClick',e,target);if(!target.href){return false;}
if(target.hasAttribute('download')){return true;}
window.open(target.href,'pswp_share','scrollbars=yes,resizable=yes,toolbar=no,'+'location=yes,width=550,height=420,top=100,left='+
(window.screen?Math.round(screen.width/2-275):100));if(!_shareModalHidden){_toggleShareModal();}
return false;},_updateShareURLs=function(){var shareButtonOut='',shareButtonData,shareURL,image_url,page_url,share_text;for(var i=0;i<_options.shareButtons.length;i++){shareButtonData=_options.shareButtons[i];image_url=_options.getImageURLForShare(shareButtonData);page_url=_options.getPageURLForShare(shareButtonData);share_text=_options.getTextForShare(shareButtonData);shareURL=shareButtonData.url.replace('{{url}}',encodeURIComponent(page_url)).replace('{{image_url}}',encodeURIComponent(image_url)).replace('{{raw_image_url}}',image_url).replace('{{text}}',encodeURIComponent(share_text));shareButtonOut+='<a href="'+shareURL+'" target="_blank" '+'class="pswp__share--'+shareButtonData.id+'"'+
(shareButtonData.download?'download':'')+'>'+
shareButtonData.label+'</a>';if(_options.parseShareButtonOut){shareButtonOut=_options.parseShareButtonOut(shareButtonData,shareButtonOut);}}
_shareModal.children[0].innerHTML=shareButtonOut;_shareModal.children[0].onclick=_openWindowPopup;},_hasCloseClass=function(target){for(var i=0;i<_options.closeElClasses.length;i++){if(framework.hasClass(target,'pswp__'+_options.closeElClasses[i])){return true;}}},_idleInterval,_idleTimer,_idleIncrement=0,_onIdleMouseMove=function(){clearTimeout(_idleTimer);_idleIncrement=0;if(_isIdle){ui.setIdle(false);}},_onMouseLeaveWindow=function(e){e=e?e:window.event;var from=e.relatedTarget||e.toElement;if(!from||from.nodeName==='HTML'){clearTimeout(_idleTimer);_idleTimer=setTimeout(function(){ui.setIdle(true);},_options.timeToIdleOutside);}},_setupFullscreenAPI=function(){if(_options.fullscreenEl&&!framework.features.isOldAndroid){if(!_fullscrenAPI){_fullscrenAPI=ui.getFullscreenAPI();}
if(_fullscrenAPI){framework.bind(document,_fullscrenAPI.eventK,ui.updateFullscreen);ui.updateFullscreen();framework.addClass(pswp.template,'pswp--supports-fs');}else{framework.removeClass(pswp.template,'pswp--supports-fs');}}},_setupLoadingIndicator=function(){if(_options.preloaderEl){_toggleLoadingIndicator(true);_listen('beforeChange',function(){clearTimeout(_loadingIndicatorTimeout);_loadingIndicatorTimeout=setTimeout(function(){if(pswp.currItem&&pswp.currItem.loading){if(!pswp.allowProgressiveImg()||(pswp.currItem.img&&!pswp.currItem.img.naturalWidth)){_toggleLoadingIndicator(false);}}else{_toggleLoadingIndicator(true);}},_options.loadingIndicatorDelay);});_listen('imageLoadComplete',function(index,item){if(pswp.currItem===item){_toggleLoadingIndicator(true);}});}},_toggleLoadingIndicator=function(hide){if(_loadingIndicatorHidden!==hide){_togglePswpClass(_loadingIndicator,'preloader--active',!hide);_loadingIndicatorHidden=hide;}},_applyNavBarGaps=function(item){var gap=item.vGap;if(_fitControlsInViewport()){var bars=_options.barsSize;if(_options.captionEl&&bars.bottom==='auto'){if(!_fakeCaptionContainer){_fakeCaptionContainer=framework.createEl('pswp__caption pswp__caption--fake');_fakeCaptionContainer.appendChild(framework.createEl('pswp__caption__center'));_controls.insertBefore(_fakeCaptionContainer,_captionContainer);framework.addClass(_controls,'pswp__ui--fit');}
if(_options.addCaptionHTMLFn(item,_fakeCaptionContainer,true)){var captionSize=_fakeCaptionContainer.clientHeight;gap.bottom=parseInt(captionSize,10)||44;}else{gap.bottom=bars.top;}}else{gap.bottom=bars.bottom==='auto'?0:bars.bottom;}
gap.top=bars.top;}else{gap.top=gap.bottom=0;}},_setupIdle=function(){if(_options.timeToIdle){_listen('mouseUsed',function(){framework.bind(document,'mousemove',_onIdleMouseMove);framework.bind(document,'mouseout',_onMouseLeaveWindow);_idleInterval=setInterval(function(){_idleIncrement++;if(_idleIncrement===2){ui.setIdle(true);}},_options.timeToIdle/2);});}},_setupHidingControlsDuringGestures=function(){_listen('onVerticalDrag',function(now){if(_controlsVisible&&now<0.95){ui.hideControls();}else if(!_controlsVisible&&now>=0.95){ui.showControls();}});var pinchControlsHidden;_listen('onPinchClose',function(now){if(_controlsVisible&&now<0.9){ui.hideControls();pinchControlsHidden=true;}else if(pinchControlsHidden&&!_controlsVisible&&now>0.9){ui.showControls();}});_listen('zoomGestureEnded',function(){pinchControlsHidden=false;if(pinchControlsHidden&&!_controlsVisible){ui.showControls();}});};var _uiElements=[{name:'caption',option:'captionEl',onInit:function(el){_captionContainer=el;}},{name:'share-modal',option:'shareEl',onInit:function(el){_shareModal=el;},onTap:function(){_toggleShareModal();}},{name:'button--share',option:'shareEl',onInit:function(el){_shareButton=el;},onTap:function(){_toggleShareModal();}},{name:'button--zoom',option:'zoomEl',onTap:pswp.toggleDesktopZoom},{name:'counter',option:'counterEl',onInit:function(el){_indexIndicator=el;}},{name:'button--close',option:'closeEl',onTap:pswp.close},{name:'button--arrow--left',option:'arrowEl',onTap:pswp.prev},{name:'button--arrow--right',option:'arrowEl',onTap:pswp.next},{name:'button--fs',option:'fullscreenEl',onTap:function(){if(_fullscrenAPI.isFullscreen()){_fullscrenAPI.exit();}else{_fullscrenAPI.enter();}}},{name:'preloader',option:'preloaderEl',onInit:function(el){_loadingIndicator=el;}}];var _setupUIElements=function(){var item,classAttr,uiElement;var loopThroughChildElements=function(sChildren){if(!sChildren){return;}
var l=sChildren.length;for(var i=0;i<l;i++){item=sChildren[i];classAttr=item.className;for(var a=0;a<_uiElements.length;a++){uiElement=_uiElements[a];if(classAttr.indexOf('pswp__'+uiElement.name)>-1){if(_options[uiElement.option]){framework.removeClass(item,'pswp__element--disabled');if(uiElement.onInit){uiElement.onInit(item);}}else{framework.addClass(item,'pswp__element--disabled');}}}}};loopThroughChildElements(_controls.children);var topBar=framework.getChildByClass(_controls,'pswp__top-bar');if(topBar){loopThroughChildElements(topBar.children);}};ui.init=function(){framework.extend(pswp.options,_defaultUIOptions,true);_options=pswp.options;_controls=framework.getChildByClass(pswp.scrollWrap,'pswp__ui');_listen=pswp.listen;_setupHidingControlsDuringGestures();_listen('beforeChange',ui.update);_listen('doubleTap',function(point){var initialZoomLevel=pswp.currItem.initialZoomLevel;if(pswp.getZoomLevel()!==initialZoomLevel){pswp.zoomTo(initialZoomLevel,point,333);}else{pswp.zoomTo(_options.getDoubleTapZoom(false,pswp.currItem),point,333);}});_listen('preventDragEvent',function(e,isDown,preventObj){var t=e.target||e.srcElement;if(t&&t.getAttribute('class')&&e.type.indexOf('mouse')>-1&&(t.getAttribute('class').indexOf('__caption')>0||(/(SMALL|STRONG|EM)/i).test(t.tagName))){preventObj.prevent=false;}});_listen('bindEvents',function(){framework.bind(_controls,'pswpTap click',_onControlsTap);framework.bind(pswp.scrollWrap,'pswpTap',ui.onGlobalTap);if(!pswp.likelyTouchDevice){framework.bind(pswp.scrollWrap,'mouseover',ui.onMouseOver);}});_listen('unbindEvents',function(){if(!_shareModalHidden){_toggleShareModal();}
if(_idleInterval){clearInterval(_idleInterval);}
framework.unbind(document,'mouseout',_onMouseLeaveWindow);framework.unbind(document,'mousemove',_onIdleMouseMove);framework.unbind(_controls,'pswpTap click',_onControlsTap);framework.unbind(pswp.scrollWrap,'pswpTap',ui.onGlobalTap);framework.unbind(pswp.scrollWrap,'mouseover',ui.onMouseOver);if(_fullscrenAPI){framework.unbind(document,_fullscrenAPI.eventK,ui.updateFullscreen);if(_fullscrenAPI.isFullscreen()){_options.hideAnimationDuration=0;_fullscrenAPI.exit();}
_fullscrenAPI=null;}});_listen('destroy',function(){if(_options.captionEl){if(_fakeCaptionContainer){_controls.removeChild(_fakeCaptionContainer);}
framework.removeClass(_captionContainer,'pswp__caption--empty');}
if(_shareModal){_shareModal.children[0].onclick=null;}
framework.removeClass(_controls,'pswp__ui--over-close');framework.addClass(_controls,'pswp__ui--hidden');ui.setIdle(false);});if(!_options.showAnimationDuration){framework.removeClass(_controls,'pswp__ui--hidden');}
_listen('initialZoomIn',function(){if(_options.showAnimationDuration){framework.removeClass(_controls,'pswp__ui--hidden');}});_listen('initialZoomOut',function(){framework.addClass(_controls,'pswp__ui--hidden');});_listen('parseVerticalMargin',_applyNavBarGaps);_setupUIElements();if(_options.shareEl&&_shareButton&&_shareModal){_shareModalHidden=true;}
_countNumItems();_setupIdle();_setupFullscreenAPI();_setupLoadingIndicator();};ui.setIdle=function(isIdle){_isIdle=isIdle;_togglePswpClass(_controls,'ui--idle',isIdle);};ui.update=function(){if(_controlsVisible&&pswp.currItem){ui.updateIndexIndicator();if(_options.captionEl){_options.addCaptionHTMLFn(pswp.currItem,_captionContainer);_togglePswpClass(_captionContainer,'caption--empty',!pswp.currItem.title);}
_overlayUIUpdated=true;}else{_overlayUIUpdated=false;}
if(!_shareModalHidden){_toggleShareModal();}
_countNumItems();};ui.updateFullscreen=function(e){if(e){setTimeout(function(){pswp.setScrollOffset(0,framework.getScrollY());},50);}
framework[(_fullscrenAPI.isFullscreen()?'add':'remove')+'Class'](pswp.template,'pswp--fs');};ui.updateIndexIndicator=function(){if(_options.counterEl){_indexIndicator.innerHTML=(pswp.getCurrentIndex()+1)+
_options.indexIndicatorSep+
_options.getNumItemsFn();}};ui.onGlobalTap=function(e){e=e||window.event;var target=e.target||e.srcElement;if(_blockControlsTap){return;}
if(e.detail&&e.detail.pointerType==='mouse'){if(_hasCloseClass(target)){pswp.close();return;}
if(framework.hasClass(target,'pswp__img')){if(pswp.getZoomLevel()===1&&pswp.getZoomLevel()<=pswp.currItem.fitRatio){if(_options.clickToCloseNonZoomable){pswp.close();}}else{pswp.toggleDesktopZoom(e.detail.releasePoint);}}}else{if(_options.tapToToggleControls){if(_controlsVisible){ui.hideControls();}else{ui.showControls();}}
if(_options.tapToClose&&(framework.hasClass(target,'pswp__img')||_hasCloseClass(target))){pswp.close();return;}}};ui.onMouseOver=function(e){e=e||window.event;var target=e.target||e.srcElement;_togglePswpClass(_controls,'ui--over-close',_hasCloseClass(target));};ui.hideControls=function(){framework.addClass(_controls,'pswp__ui--hidden');_controlsVisible=false;};ui.showControls=function(){_controlsVisible=true;if(!_overlayUIUpdated){ui.update();}
framework.removeClass(_controls,'pswp__ui--hidden');};ui.supportsFullscreen=function(){var d=document;return!!(d.exitFullscreen||d.mozCancelFullScreen||d.webkitExitFullscreen||d.msExitFullscreen);};ui.getFullscreenAPI=function(){var dE=document.documentElement,api,tF='fullscreenchange';if(dE.requestFullscreen){api={enterK:'requestFullscreen',exitK:'exitFullscreen',elementK:'fullscreenElement',eventK:tF};}else if(dE.mozRequestFullScreen){api={enterK:'mozRequestFullScreen',exitK:'mozCancelFullScreen',elementK:'mozFullScreenElement',eventK:'moz'+tF};}else if(dE.webkitRequestFullscreen){api={enterK:'webkitRequestFullscreen',exitK:'webkitExitFullscreen',elementK:'webkitFullscreenElement',eventK:'webkit'+tF};}else if(dE.msRequestFullscreen){api={enterK:'msRequestFullscreen',exitK:'msExitFullscreen',elementK:'msFullscreenElement',eventK:'MSFullscreenChange'};}
if(api){api.enter=function(){_initalCloseOnScrollValue=_options.closeOnScroll;_options.closeOnScroll=false;if(this.enterK==='webkitRequestFullscreen'){pswp.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT);}else{return pswp.template[this.enterK]();}};api.exit=function(){_options.closeOnScroll=_initalCloseOnScrollValue;return document[this.exitK]();};api.isFullscreen=function(){return document[this.elementK];};}
return api;};};return PhotoSwipeUI_Default;});
;;;(function($){var converter={vertical:{x:false,y:true},horizontal:{x:true,y:false},both:{x:true,y:true},x:{x:true,y:false},y:{x:false,y:true}};var settings={duration:"fast",direction:"both"};var rootrx=/^(?:html)$/i;var borders=function(domElement,styles){styles=styles||(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(domElement,null):domElement.currentStyle);var px=document.defaultView&&document.defaultView.getComputedStyle?true:false;var b={top:(parseFloat(px?styles.borderTopWidth:$.css(domElement,"borderTopWidth"))||0),left:(parseFloat(px?styles.borderLeftWidth:$.css(domElement,"borderLeftWidth"))||0),bottom:(parseFloat(px?styles.borderBottomWidth:$.css(domElement,"borderBottomWidth"))||0),right:(parseFloat(px?styles.borderRightWidth:$.css(domElement,"borderRightWidth"))||0)};return{top:b.top,left:b.left,bottom:b.bottom,right:b.right,vertical:b.top+b.bottom,horizontal:b.left+b.right};};var dimensions=function($element){var win=$(window);var isRoot=rootrx.test($element[0].nodeName);return{border:isRoot?{top:0,left:0,bottom:0,right:0}:borders($element[0]),scroll:{top:(isRoot?win:$element).scrollTop(),left:(isRoot?win:$element).scrollLeft()},scrollbar:{right:isRoot?0:$element.innerWidth()-$element[0].clientWidth,bottom:isRoot?0:$element.innerHeight()-$element[0].clientHeight},rect:(function(){var r=$element[0].getBoundingClientRect();return{top:isRoot?0:r.top,left:isRoot?0:r.left,bottom:isRoot?$element[0].clientHeight:r.bottom,right:isRoot?$element[0].clientWidth:r.right};})()};};$.fn.extend({scrollintoview:function(options){options=$.extend({},settings,options);options.direction=converter[typeof(options.direction)==="string"&&options.direction.toLowerCase()]||converter.both;var dirStr="";if(options.direction.x===true)dirStr="horizontal";if(options.direction.y===true)dirStr=dirStr?"both":"vertical";var el=this.eq(0);var scroller=el.closest(":scrollable("+dirStr+")");if(scroller.length>0){scroller=scroller.eq(0);var dim={e:dimensions(el),s:dimensions(scroller)};var rel={top:dim.e.rect.top-(dim.s.rect.top+dim.s.border.top),bottom:dim.s.rect.bottom-dim.s.border.bottom-dim.s.scrollbar.bottom-dim.e.rect.bottom,left:dim.e.rect.left-(dim.s.rect.left+dim.s.border.left),right:dim.s.rect.right-dim.s.border.right-dim.s.scrollbar.right-dim.e.rect.right};var animOptions={};if(options.direction.y===true){var headers=document.getElementsByTagName('header');var offsetTop=(headers.length&&$(document.getElementsByTagName('header')[0]).css('position')=="fixed")?headers[0].offsetHeight:0;rel.top-=offsetTop;if(rel.top<0){animOptions.scrollTop=dim.s.scroll.top+rel.top;}
else if(rel.top>0&&rel.bottom<0){animOptions.scrollTop=dim.s.scroll.top+Math.min(rel.top,-rel.bottom);}}
if(options.direction.x===true){if(rel.left<0){animOptions.scrollLeft=dim.s.scroll.left+rel.left;}
else if(rel.left>0&&rel.right<0){animOptions.scrollLeft=dim.s.scroll.left+Math.min(rel.left,-rel.right);}}
if(!$.isEmptyObject(animOptions)){if(rootrx.test(scroller[0].nodeName)){scroller=$("html,body");}
scroller.animate(animOptions,options.duration).eq(0).queue(function(next){$.isFunction(options.complete)&&options.complete.call(scroller[0]);next();});}
else{$.isFunction(options.complete)&&options.complete.call(scroller[0]);}}
return this;}});var scrollValue={auto:true,scroll:true,visible:false,hidden:false};$.extend($.expr[":"],{scrollable:function(element,index,meta,stack){var direction=converter[typeof(meta[3])==="string"&&meta[3].toLowerCase()]||converter.both;var styles=(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(element,null):element.currentStyle);var overflow={x:scrollValue[styles.overflowX.toLowerCase()]||false,y:scrollValue[styles.overflowY.toLowerCase()]||false,isRoot:rootrx.test(element.nodeName)};if(!overflow.x&&!overflow.y&&!overflow.isRoot){return false;}
var size={height:{scroll:element.scrollHeight,client:element.clientHeight},width:{scroll:element.scrollWidth,client:element.clientWidth},scrollableX:function(){return(overflow.x||overflow.isRoot)&&this.width.scroll>this.width.client;},scrollableY:function(){return(overflow.y||overflow.isRoot)&&this.height.scroll>this.height.client;}};return direction.y&&size.scrollableY()||direction.x&&size.scrollableX();}});})(jQuery);
;;;function getAjaxGalleryData(tourId,onSuccess){if(typeof tourId!='undefined'){if(typeof urlRoot=='undefined'){window.urlRoot='/';}
$.ajax({type:'GET',url:'/ajax/',data:{type:'gallery',tourcode:tourId,countrycode:config.countryCode},success:function(data){if(typeof galleryImgData=='undefined'){window.galleryImgData={};}
if(typeof galleryImgData[tourId]=='undefined'){galleryImgData[tourId]=data;}
if(typeof onSuccess=='function')onSuccess();},error:function(err,status,desc){console.log(err+"\n"+status+':\n'+desc);}});}else{console.log("Tour ID not passed to getAjaxGalleryData");}}
function openModalGallery(id,passedItems,thumbnailPosition,index){var items=passedItems||[];if(typeof id!='undefined'&&typeof galleryImgData!='undefined'&&typeof galleryImgData[id]!='undefined'){var data=galleryImgData[id];for(var i=0;i<data.length;i++){var img=data[i];items.push({'src':img.src,'title':img.alt,'w':img.width||900,'h':img.height||450});}}
if(items.length>0){var options={'showHideOpacity':true,'history':false,'shareEl':false,'zoomEl':false,'tapToClose':true,'index':index||0};if(typeof thumbnailPosition!='undefined'){options.getThumbBoundsFn=function(index){return thumbnailPosition;}}
var photoswipeCoreEl=document.querySelectorAll('.pswp')[0];var photoswipeGallery=new PhotoSwipe(photoswipeCoreEl,PhotoSwipeUI_Default,items,options);photoswipeGallery.init();}else{console.log("openModalGallery data not passed correctly");}}
function initModalGalleryButtons(forceInit){var viewGalleryButtons=$('.viewGallery');var inlineGalleryButtons=$('.inlineGallery.Modal .owl-carousel, .thumbGallery');if(forceInit||viewGalleryButtons.length||inlineGalleryButtons.length){if(document.querySelector('.pswp')===null){var photoswipeCoreHTML='<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">'+'<div class="pswp__bg"></div>'+'<div class="pswp__scroll-wrap">'+'<div class="pswp__container">'+'<div class="pswp__item"></div>'+'<div class="pswp__item"></div>'+'<div class="pswp__item"></div>'+'</div>'+'<div class="pswp__ui pswp__ui--hidden">'+'<div class="pswp__top-bar">'+'<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>'+'<button class="pswp__button pswp__button--share" title="Share"></button>'+'<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>'+'<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>'+'<div class="pswp__preloader">'+'<div class="pswp__preloader__icn">'+'<div class="pswp__preloader__cut">'+'<div class="pswp__preloader__donut"></div>'+'</div>'+'</div>'+'</div>'+'</div>'+'<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">'+'<div class="pswp__share-tooltip"></div>'+'</div>'+'<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>'+'<div class="pswp__counter"></div>'+'<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>'+'<div class="pswp__caption">'+'<div class="pswp__caption__center"></div>'+'</div>'+'</div>'+'</div>'+'</div>';$('body').append(photoswipeCoreHTML);}}
viewGalleryButtons.each(function(){var button=$(this);var id=button.data('id')||button.attr('id');if(!button.hasClass('attached')){button.addClass('attached');button.on('click',function(e){e.preventDefault();if(typeof button.attr('data-tour-code')!='undefined'){getAjaxGalleryData(button.attr('data-tour-code'),function(){button.data('id',button.attr('data-tour-code'));button.removeAttr('data-tour-code');id=button.data('id');openModalGallery(id);});}else if(typeof button.attr('data-galleryitems')!='undefined'){var photoSwipe=new PhotoSwipe(document.querySelectorAll('.pswp')[0],PhotoSwipeUI_Default,button.data('galleryitems'),{'showHideOpacity':true,'history':false,'shareEl':false,'zoomEl':false,'tapToClose':true,'index':0});photoSwipe.init();}else if(typeof button.attr('data-gallery')!='undefined'){openModalGallery(id,button.data('gallery'),undefined,0);}else{var thumbIndex=button.data('index');if(typeof thumbIndex!='undefined'){openModalGallery(id,undefined,undefined,thumbIndex);}else{openModalGallery(id);}}});}});inlineGalleryButtons.each(function(){var button=$(this);var id=button.data('id');if(!button.hasClass('attached')&&typeof id!='undefined'&&typeof galleryImgData!='undefined'&&typeof galleryImgData[id]!='undefined'&&galleryImgData[id].length>1){button.addClass('attached');button.find('.slide').append('<div class="viewMoreImages"><p>View More Images</p></div>');button.on('click',function(e){e.preventDefault();var image=$(this).find('img');var imageData=[{'src':image.data('src')||image.attr('src'),'title':image.attr('alt'),'w':typeof image.data('src')=="undefined"?image.width()||900:900,'h':typeof image.data('src')=="undefined"?image.height()||450:450,'msrc':typeof image.data('src')=="undefined"?image.attr('src'):undefined}];var pageYScroll=window.pageYOffset||document.documentElement.scrollTop;var boundingBox=image[0].getBoundingClientRect();var thumbnailPosition={x:boundingBox.left,y:boundingBox.top+pageYScroll,w:boundingBox.width};if(button.hasClass('thumbGallery')){var thumbIndex=image.data('index');openModalGallery(id,undefined,undefined,thumbIndex);}else{openModalGallery(id,imageData,thumbnailPosition);}});}});}
$(function(){initModalGalleryButtons();});
;;;var siteWidth=0;var isiPad=navigator.userAgent.match(/iPad/i)!=null;$(function(){var d=document.documentElement.style;var hasFlexWrapSupport=('flexWrap' in d)||('WebkitFlexWrap' in d)||('msFlexWrap' in d);if(!hasFlexWrapSupport)document.body.className+=' noflexwrap';});function setCookie(name,value,days,sameSiteLax){var cookie=name+'='+value+'; path=/; secure';if(sameSiteLax){cookie+='; samesite=lax';}
if(days===undefined||days>0)
{var expiry=new Date();expiry.setDate(expiry.getDate()+(days||90));cookie+='; expires='+expiry.toUTCString();}else if(days<0){cookie+='; expires=Thu, 01 Jan 1970 00:00:01 GMT';}
document.cookie=cookie;}
function removeCookie(name){setCookie(name,'',-1);}
function getCookie(name){var nameEQ=name+'=';var ca=document.cookie.split('; ');for(var i=0;i<ca.length;i++){var c=ca[i];if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length);}}
return null;}
function getQuery(name){var name=name.replace(/[\[]/,'\\\[').replace(/[\]]/,'\\\]');var regexS='[\\?&]'+name+'=([^&#]*)';var regex=new RegExp(regexS,'i');var results=regex.exec(window.location.search);if(results==null)return'';else return decodeURIComponent(results[1].replace(/\+/g,' '));}
function detectIfTablet(){if(MobileEsp.DetectTierTablet()||MobileEsp.DetectTierIphone()){if($('#searchCriteria').length)$('body').addClass('mobileOrTablet');$('[data-tablet-input-type]').each(function(){$(this).attr('type',$(this).data('tablet-input-type'));});}}
function insertPhoneLinks(){if(MobileEsp.DetectTierIphone()){$('#telNumber, .telNumber').each(function(){if(this.tagName!='A'){var $this=$(this);$this.wrap('<a class="telephoneLink" href="tel:'+$this.text()+'"/>');}});}}
function initExpandButtons($elems){$elems.each(function(){var $this=$(this);var $toggleElement=$this.data('expand-id')?$('#'+$this.data('expand-id')):$this.next();if($this.data('expand-nearest')){var elementClass=String($this.data('expand-nearest'));elementClass=(elementClass.charAt(0)!=='.'&&elementClass.charAt(0)!=='#')?'.'+elementClass:elementClass;if($this.nextAll(elementClass).first().length){$toggleElement=$this.nextAll(elementClass).first();}else{if($this.siblings(elementClass).length){$toggleElement=$this.siblings(elementClass).first();}else{if($this.find(elementClass).length){$toggleElement=$this.find(elementClass).first();}else{if($this.closest(elementClass).length){$toggleElement=$this.closest(elementClass).first();}else{$this.parents().each(function(){var $parent=$(this);if($parent.nextAll(elementClass).first().length){$toggleElement=$parent.nextAll(elementClass).first();return false;}});}}}}}
$(this).data('toggleElement',$toggleElement);if($this.hasClass('onHover')){$(this).parent().mouseenter(function(){var expandButton=$(this).find('.expand');var expandEl=expandButton.next();if(expandEl.css('display')=='none')$this.addClass('expanding');expandEl.stop().slideDown({duration:300,complete:function(){$this.removeClass('collapsed expanding').addClass('expanded');}});}).mouseleave(function(){var expandButton=$(this).find('.expand');var expandEl=expandButton.next();expandEl.stop().slideUp({duration:300,complete:function(){$this.removeClass('expanded expanding').addClass('collapsed');}});});}else{$this.click(function(e){if($this.is('a'))e.preventDefault();if($toggleElement.css('display')=='none'){$this.removeClass('collapsing').addClass('expanding');}else{if(!$this.hasClass('expanding')&&!$this.hasClass('expanded')&&!$this.hasClass('collapsing')){$this.addClass('collapsing');}else{if($this.hasClass('expanding')||$this.hasClass('expanded')){$this.removeClass('expanded expanding').addClass('collapsing');}else{if($this.hasClass('collapsing'))$this.removeClass('collapsing').addClass('expanding');}}}
$toggleElement.stop().slideToggle({duration:500,complete:function(){$('.expand').each(function(){if($this.data('toggleElement')[0]===$(this).data('toggleElement')[0])toggleButton($(this),$toggleElement.css('display')=='none'?false:true);});}});});}});}
function toggleButton($button,on){if(on){$button.removeClass('collapsed expanding collapsing').addClass('expanded');}else{$button.removeClass('expanded expanding collapsing').addClass('collapsed');}}
function initMoreInfoPopups(){$('.moreInfoPopup').infoBox({'position':'center','preventDefault':true,'topElementConstraint':$('#stickyHeader')});$('.viewSpecialOffer').on('click',function(){$(this).toggleClass('on');});}
$(document).ready(function(){detectIfTablet();initExpandButtons($('.expand'));$('.refineSearchButton').on('click',function(e){e.preventDefault();var $this=$(this);$this.toggleClass('on');});initMoreInfoPopups();});function setupTelNum(){var affId=getQuery('AffiliateID').toUpperCase();if(affId!=''){setCookie('affId',affId);if(affId.indexOf('AW')>=0)setCookie('lastRef','AW');else if(affId.indexOf('AF')>=0)setCookie('lastRef','AF');}
else{affId=getCookie('affId');}
var telRef=getQuery('TelRef').toUpperCase();if(typeof telNums=='undefined')window.telNums={};if(telRef!=''&&telNums[telRef]!==undefined){setCookie('telCode',telRef);}else if(telNums[affId]!==undefined){telRef=affId;}else{telRef=getCookie('telCode')||'';}
$('INPUT[type=hidden][id^=TelRef_]').val(telRef);if((affId=='PPC'||telRef=='PPC')&&affId!='')setCookie('lastRef','');if(typeof config=='undefined')return console.warn('config is undefined');config.telNum=$('#telNumber').data('tel-num')||$('#telNumber').text();if(typeof telNums[telRef]!='undefined')config.telNum=telNums[telRef].num;$('#telNumber, .telNumber').text(config.telNum);$('.telNumber[href^="tel:"]').attr('href','tel:'+config.telNum);if(config.enableResponseTap&&config.responseTapCode!=''&&config.responseTapWebsiteId!=''){if((telRef==''&&$('#telNumber').data('rtap'))||(typeof telNums[telRef]!='undefined'&&telNums[telRef].rtap)){$('#telNumber, .telNumber').addClass(config.responseTapCode);var responseTapJS='var adiInit="'+config.responseTapWebsiteId+'";'
+'var adiFunc=null;'
+'(function() { '
+'var adiSrc = document.createElement("script");'
+'adiSrc.async = true;'
+'adiSrc.src = ("https:" == document.location.protocol ? "https:" : "http:") + "//static.responsetap.com/static/scripts/rTapTrack.min.js";'
+'var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(adiSrc, s);'
+'})();';attachScriptTag(responseTapJS,$('HEAD'));window.setTimeout(function(){config.telNum=$('#telNumber').text();$('.cta a.call').attr('href','tel:'+config.telNum);},2000);}}
$('.cta a.call').attr('href','tel:'+config.telNum);}
function betweenTime(openTime,closeTime){var dt=new Date();var o=openTime.split(/[: ]/);var oh=Number(o[0]);var om=Number(o[1]);if(o.length==3&&o[2]=='PM'&&oh<12)oh+=12;if(o.length==3&&o[2]=='AM'&&oh==12)oh=0;if(dt.getHours()<oh||(dt.getHours()==oh&&dt.getMinutes()<om))return-1;var c=closeTime.split(/[: ]/);var ch=Number(c[0]);var cm=Number(c[1]);if(c.length==3&&c[2]=='PM'&&ch<12)ch+=12;if(c.length==3&&c[2]=='AM'&&ch==12)ch=0;if(dt.getHours()<ch||(dt.getHours()==ch&&dt.getMinutes()<cm))return 0;return 1;}
var intl=null;function setupLocaleBanner(){var bannerCookie='localeBannerSeen';var selectedCulture=document.documentElement.lang;if(selectedCulture){if(typeof config=='undefined')return console.log("'config' object is undefined");if(typeof international=='undefined')return console.log("'international' object is undefined");intl=international[selectedCulture];if(typeof intl!='undefined'&&typeof intl.landingUrl!='undefined'&&intl.landingUrl!=''&&!getCookie(bannerCookie)&&location.href.indexOf('/manage-my-booking/')<0&&window.top==window.self&&intl.landingRedirectUrl!=''&&intl.landingRedirectTime>0){setCookie(bannerCookie,true,0);var $a=$('<a target="grjPopup" href="'+intl.landingUrl+'" data-modal-title="'+intl.landingTitle+'" style="display:none"></a>');$('body').append($a);$a.click(ndc.openPopUp).click();intl['popUpBox']=$a;$('.iframeModal').on('load',function(){intl.$landingContent=$(this.contentDocument||this.contentWindow.document).find('.genContent .content');var replaced=intl.$landingContent.html().replace('[seconds]','<span class="seconds">'+intl.landingRedirectTime+'</span>');intl.$landingContent.html(replaced+'<p style="text-align:center"><a href="#" class="closeButton">Continue browsing on '+location.hostname+' &gt;&gt;</a></p>');landingRedirect();intl.$landingContent.find('.closeButton').click(function(e){e.preventDefault();intl.landingRedirectTime=-1;$a.popupBox('close');});});}}}
function landingRedirect(){if(intl.landingRedirectTime>0){intl.$landingContent.find('.seconds').text(intl.landingRedirectTime);intl.landingRedirectTime--;setTimeout(landingRedirect,1000);}else if(intl.landingRedirectTime==0){top.location.href=intl.landingRedirectUrl;}}
$(function(){setupTelNum();setupLocaleBanner();setupTravelAgent();insertPhoneLinks();setupVideoButtons();});$(window).on('load',function(){setupOwlCarousels();});function getSlideHTML(slide){if(typeof slide.mobile!='undefined'&&typeof slide.tablet!='undefined'&&typeof slide.largeDesktop!='undefined'){return(typeof slide.videoUrl!='undefined'&&slide.videoUrl?'<div class="galleryVideo" data-src="'+slide.videoUrl+'" data-title=""><div class="play-icon"></div>':'')
+'<picture class="slide" data-dot="'+slide.alt+'">'
+'<source media="(max-width:600px)" srcset="'+slide.mobile+'">'
+'<source media="(min-width:1210px)" srcset="'+slide.largeDesktop+'">'
+'<source media="(min-width:769px)" srcset="'+slide.src+'">'
+'<img alt="'+slide.alt+'" src="'+slide.tablet+'"></picture>'
+(typeof slide.videoUrl!='undefined'&&slide.videoUrl?'</div>':'');}
return(typeof slide.videoUrl!='undefined'&&slide.videoUrl?'<div class="galleryVideo" data-src="'+slide.videoUrl+'" data-title=""><div class="play-icon"></div>':'')
+'<div class="slide" data-dot="'+slide.alt+'"><img class="owl-lazy" data-src="'+slide.src+'" alt="'+slide.alt+'"/></div>'
+(typeof slide.videoUrl!='undefined'&&slide.videoUrl?'</div>':'');}
function getGalleryHTML(id){if(typeof galleryImgData!='undefined'&&typeof id!='undefined'&&typeof galleryImgData[id]!='undefined'){var imgData=galleryImgData[id];var html='';for(var i=0;i<imgData.length;i++){html+=getSlideHTML(imgData[i]);}
return html;}
return'';}
function setupVideoButtons(){var hero=$('#tourHero .owl-carousel');var watchVideoButton=$('#tourOverlay .watchVideoButton');var $firstVideo=hero.find('.galleryVideo').first();if(watchVideoButton.length&&$firstVideo.length){$firstVideo.find('.play-icon').remove();watchVideoButton.css('display','inline-block').click(function(){openVideoModal($firstVideo.data('src'),$firstVideo);});}}
function setupOwlCarousels(){var heroTexts=$('.overlayTexts .owl-carousel');if(heroTexts.length){var numOfItems=heroTexts.children().length;switch(numOfItems){case 1:heroTexts.owlCarousel({'mouseDrag':false,'responsive':{0:{'items':1}}});break;case 2:heroTexts.owlCarousel({'mouseDrag':false,'responsive':{0:{'items':1},801:{'items':2}}});break;default:heroTexts.owlCarousel({'mouseDrag':false,'responsive':{0:{'items':1},801:{'items':3}}});break;}}
var customerReviews=$('.reviewsHolder .owl-carousel');if(customerReviews.length){customerReviews.owlCarousel({'mouseDrag':false,'dots':false,'nav':true,'autoHeight':true,'navText':['',''],'responsive':{0:{'items':1,'nav':false,'dots':true},600:{'items':1,'nav':true,'dots':false}},'onInitialized':function(event){setTimeout(function(){$(event.target).find('.owl-height').css('height','');},100);customerReviews.find('.expandComment').on('click',function(){var $this=$(this);$this.prev().slideToggle({'progress':function(){customerReviews.trigger('refresh.owl.carousel');}});$this.toggleClass('on');});}});}
$('.hero').each(function(){var root=$(this);var id=root.data('id');var hero=root.find('.owl-carousel');if(hero.length){hero[0].innerHTML+=getGalleryHTML(id);var hasMultipleSlides=(hero.find('.slide').length>1);var isHomepage=(root.parent().hasClass('homepage'));hero.owlCarousel({'autoplay':true,'autoplayHoverPause':true,'loop':true,'autoplayTimeout':8000,'dots':false,'nav':(!isHomepage&&hasMultipleSlides),'navText':['',''],'mouseDrag':false,'lazyLoad':true,'video':false,'items':1,'slideBy':1,'center':true,'animateIn':'fadeIn','animateOut':'fadeOut','autoHeight':true,'scrollPerPage':true,'onInitialize':function(event){if(!hasMultipleSlides){this.options.loop=false;this.options.nav=false;this.options.dots=false;this.options.touchDrag=false;this.options.pullDrag=false;}},'onInitialized':function(event){$(event.target).find('.owl-height').css('height','');$(event.target).find('.owl-item').on('click',function(){var $video=$(this).find('.galleryVideo');if($video.length){openVideoModal($video.data('src'),$video);}});}});}});$('.customerComments').each(function(){var root=$(this);var comments=root.find('.owl-carousel');var hasMultipleSlides=(comments.find('.comment').length>1);if(comments.length){comments.owlCarousel({'loop':true,'dots':true,'nav':false,'mouseDrag':false,'items':1,'slideBy':1,'autoHeight':true,'onInitialize':function(event){if(!hasMultipleSlides){this.options.loop=false;this.options.nav=false;this.options.dots=false;this.options.touchDrag=false;this.options.pullDrag=false;}}});}});$('#itineraryMobileMenu .menu').each(function(){var root=$(this);var options={'loop':false,'dots':false,'nav':true,'mouseDrag':true,'margin':3,'items':4,'stagePadding':20,'navText':['',''],'center':false,'navContainer':'#itineraryMobileMenu .carouselNav .buttons','responsive':{0:{'items':3,'slideBy':2},375:{'items':4,'slideBy':2},500:{'items':5,'slideBy':2}},'onInitialized':function(event){setTimeout(function(){$(event.target).find('.owl-height').css('height','');},100);}};root.find('.owl-carousel').owlCarousel(options);});}
function initInlineGallery($elems){$elems.each(function(){var root=$(this);var gallery=root.find('.owl-carousel');var id=gallery.data('id');if(gallery.length&&!gallery.hasClass('owl-loaded')){gallery[0].innerHTML+=getGalleryHTML(id);var hasMultipleSlides=(gallery.find('.slide').length>1);var isDeckPlan=root.hasClass('DeckPlan');gallery.owlCarousel({'loop':true,'dots':true,'nav':true,'mouseDrag':false,'lazyLoad':true,'video':false,'items':1,'slideBy':1,'dotsData':isDeckPlan,'autoHeight':isiPad,'onInitialize':function(event){if(!hasMultipleSlides){this.options.loop=false;this.options.nav=false;this.options.dots=false;this.options.touchDrag=false;this.options.pullDrag=false;}},'onInitialized':function(event){var $target=$(event.target);$target.find('.owl-height').css('height','');$target.find('.owl-item').on('click',function(){var $video=$(this).find('.galleryVideo');if($video.length){openVideoModal($video.data('src'),$video);}});if(typeof ndc!='undefined'&&typeof svg!='undefined'){$target.find('.owl-prev').html(svg.previous);$target.find('.owl-next').html(svg.next);}}});}});}
function addCarouselGTMTracking($el){if(typeof dataLayer==='undefined')return;var slides=$el.aslCarousel('getSlides',true);for(var i=0;i<slides.length;i++){var $slide=$(slides[i].obj);if(typeof $slide.data('promo-id')!=='undefined'){$slide.click(gtm.promoClick);gtm.promotions.push({id:$slide.data('promo-id'),name:$slide.data('promo-name'),creative:$slide.data('promo-creative'),position:$slide.data('promo-position')});}}}
function getVisitorType(){if(getCookie('Agent')!=null)return'Travel Agent';else if(getCookie('recentlyViewed')==null)return'New';else if(getCookie('brochures')==null)return'Returning (no brochure)';else if(getCookie('brochures')!=null)return'Returning (with brochure)';return'';}
$(window).resize(function(){if(siteWidth){var currentWidth=window.innerWidth;if(siteWidth!=currentWidth){siteWidth=currentWidth;siteChangedWidth();}}});function siteChangedWidth(){$('.tourGallery .gallery, .listingGallery .gallery, .generic .gallery').aslGallery('numOfThumbsPerPage',galleryThumbsPerPage());$('.hotelDetails .aslGallery').aslGallery('numOfThumbsPerPage',hotelThumbsPerPage());$('.videoGallery').aslGallery('numOfThumbsPerPage',videoThumbsPerPage());}
function hotelThumbsPerPage(){switch(siteWidth){case 748:return 8;case 978:return 6;default:return 12;}}
function galleryThumbsPerPage(){switch(true){case(siteWidth<940):return 6;case(siteWidth<1110):return 8;case(siteWidth<1200):return 10;default:return 18;}}
function videoThumbsPerPage(){switch(siteWidth){case 748:return 2;case 978:return 5;default:return 6;}}
function displayPromoByVisitorType(){var $galleryHolder=$('.galleryHolder');var visitorType=getVisitorType();$galleryHolder.find('.promo[data-visitor-type]').filter('[data-visitor-type!="'+visitorType+'"]').remove();$galleryHolder.find('.promo:gt(1)').remove();if($galleryHolder.find('.promo').length>0){$galleryHolder.addClass('promoGallery');$galleryHolder.find('.promo').show();$galleryHolder.find('.menu').remove();if(visitorType!='Returning (with brochure)'&&$galleryHolder.find('.brochureBox').length>0){$galleryHolder.find('.promo:gt(0)').remove();$galleryHolder.find('.brochureBox').show();}
else{$galleryHolder.find('.brochureBox').remove();}}
else{$galleryHolder.find('.menu').show();}}
function setupGallery(){siteWidth=window.innerWidth;displayPromoByVisitorType();$('.tourGallery .gallery, .listingGallery .gallery, .generic .gallery').each(function(){var $this=$(this);var galleryRoot=$this.closest('.galleryRoot');var menu=galleryRoot.find('.menuCol');$this.aslGallery({'autoHideNav':false,'thumbsVisible':false,'transitionSpeed':800,'autoChange':true,'autoChangeTime':7000,'leftButton':$this.find('.prev'),'rightButton':$this.find('.next'),'thumbnailsRoot':menu.find('.galleryThumbHolder .thumbnails'),'thumbsPerPage':galleryThumbsPerPage(),'thumbLeftButton':menu.find('.thumbPrev'),'thumbRightButton':menu.find('.thumbNext'),'thumbPageDisplay':menu.find('.pageDisplay'),'slideNumbering':$this.find('.slideNumber'),'slideCaption':$this.find('.slideCaption'),'imgData':galleryImgData});});$('.featured.post .gallery').each(function(){var $this=$(this);$this.aslGallery({'autoHideNav':true,'showNavOnLoad':true,'thumbsVisible':false,'transitionSpeed':800,'autoChange':true,'autoChangeTime':7000,'leftButton':$this.find('.galleryThumbHolder .prev'),'rightButton':$this.find('.galleryThumbHolder .next'),'thumbRightButton':$this.find('.galleryThumbHolder .thumbNext')});});$('.viewGallery > a, .galleryHolder .viewLarger').on('click',function(e){e.preventDefault();var gallery=$('.menuCol').siblings('.gallery');var button=$('.viewGallery');var caption=button.find('.caption');var menu=$('.menuCol');var galleryHolder=gallery.closest('.galleryHolder');if(!galleryHolder.hasClass('expanded')){button.addClass('on');if(!caption.data('defaultText'))caption.data('defaultText',caption.text());caption.text(caption.data('close-text'));menu.addClass('on');galleryHolder.addClass('expanded');gallery.aslGallery('showButtons');gallery.aslGallery('setPriority',1);gallery.aslGallery('showThumbnails');}else{button.removeClass('on');if(caption.data('defaultText'))caption.text(caption.data('defaultText'));menu.removeClass('on');galleryHolder.removeClass('expanded');gallery.aslGallery('hideButtons');gallery.aslGallery('setPriority',0);gallery.aslGallery('hideThumbnails');}});$('.viewVideoGallery > a').on('click',function(e){e.preventDefault();var imgGallery=$('.menuCol').siblings('.gallery');var videoGallery=$('.menuCol').siblings('.videoGallery');var button=$('.viewVideoGallery');var caption=button.find('.caption');var menu=$('.menuCol');var galleryHolder=imgGallery.closest('.galleryHolder');if(!videoGallery.length){videoGallery=$('<div class="videoGallery"/>').insertBefore(imgGallery);videoGallery.append('<div class="slides"/>');menu.find('.vidThumbHolder').show();videoGallery.aslGallery({'autoChange':true,'imgData':galleryVidData,'thumbsPerPage':videoThumbsPerPage(),'thumbnailsRoot':button.find('.thumbnails'),'thumbLeftButton':button.find('.thumbPrev'),'thumbRightButton':button.find('.thumbNext'),'thumbPageDisplay':button.find('.pageDisplay')});}
if(!galleryHolder.hasClass('expanded')){galleryHolder.addClass('expanded');if(!caption.data('defaultText'))caption.data('defaultText',caption.text());caption.text(caption.data('close-text'));imgGallery.css('display','none');videoGallery.css('display','');menu.addClass('on');button.addClass('on');galleryHolder.addClass('expanded');videoGallery.aslGallery('playVideo');videoGallery.aslGallery('showButtons');videoGallery.aslGallery('showThumbnails');}else{galleryHolder.removeClass('expanded');if(caption.data('defaultText'))caption.text(caption.data('defaultText'));button.removeClass('on');menu.removeClass('on');imgGallery.css('display','').css('left');videoGallery.css('display','none');galleryHolder.removeClass('expanded');videoGallery.aslGallery('stopVideo');videoGallery.aslGallery('hideButtons');videoGallery.aslGallery('hideThumbnails');}});}
function attachSocialBookmarks(){var $head=$('head');if($('.facebookEmbed').length||$('.fb-like').length){var facebookJS='(function(d, s, id) {'
+'var js, fjs = d.getElementsByTagName(s)[0];'
+'if (d.getElementById(id)) return;'
+'js = d.createElement(s); js.id = id;'
+'js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";'
+'fjs.parentNode.insertBefore(js, fjs);'
+'}(document, "script", "facebook-jssdk"));';attachScriptTag(facebookJS,$head);}
if($('.twitterEmbed').length){var twitterJS='!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");';attachScriptTag(twitterJS,$head);}
if(typeof config!='undefined'&&config.enableDisqusComments!==undefined&&config.enableDisqusComments.toString()=='1'){var disqusJS='var disqus_shortname = "'+location.hostname.substring(location.hostname.indexOf('.')+1,location.hostname.lastIndexOf('.'))+'";\n'
+'(function () {'
+'var dsq = document.createElement("script"); dsq.async = true; '
+'dsq.src = "//" + disqus_shortname + ".disqus.com/[file]"; '
+'document.getElementsByTagName("head")[0].appendChild(dsq); '
+'})();';if($('.disqus-comment-count').length){attachScriptTag(disqusJS.replace('[file]','count.js'),$head);pollDisqusCounts();}
if($('#disqus_thread').length){var $div=$('#disqus_thread');disqusJS='var disqus_identifier = "'+$div.data('id')+'";\n'
+'var disqus_title = "'+$div.data('title').replace('"','\\"')+'";\n'
+'var disqus_url = "'+location.protocol+'//'+location.hostname+$div.data('url')+'";\n'
+disqusJS.replace('[file]','embed.js');attachScriptTag(disqusJS,$head);}}}
function attachScriptTag(js,$element){var inlineScript=document.createElement("script");inlineScript.text=js
$element.append(inlineScript);}
$(window).on('load',function(){if(typeof config!='undefined')attachSocialBookmarks();});function pollDisqusCounts(){var recurse=false;$('.disqus-comment-count').each(function(){var $this=$(this);var countValue=$.trim($this.text());if(parseInt(countValue)>0){$this.show();}else{if(countValue=="")recurse=true;}});if(recurse)setTimeout(pollDisqusCounts,200);}
function setupTabs(){$('.tabs').each(function(){$ul=$(this);if(!$ul.hasClass('attached')){$ul.find('li').each(function(){var $li=$(this);var $anchor=$(this).find('a');$anchor.click(function(e){e.preventDefault();toggleTabs($anchor);});if($(this).hasClass('on')){$($anchor.attr('href')).siblings('.tab').hide();}});$ul.addClass('attached');}});function toggleTabs($anchor){var $li=$anchor.closest('li');if(!$li.hasClass('on')){var tabId=$anchor.attr('href');var $tabContent=$(tabId);$li.addClass('on').siblings().removeClass('on');$tabContent.show().siblings('.tab').hide().removeClass('on');if($tabContent.hasClass('carousel')){$tabContent.aslCarousel('resize');}}}}
$(window).on('load',function(){setupTabs();});$(document).ready(function(){var $specialistsInfo=$('.specialistsInfo');$specialistsInfo.each(function(ix){var id=$(this).data('specialist-id');$(this).parent().parent().append('<div id="sp'+id+'" class="specialistDetails" style="display:none"></div>');});initExpandButtons($specialistsInfo);$specialistsInfo.click(function(e){var $this=$(this);$this.siblings('.expanding').each(function(){$(this).data('toggleElement').slideUp();$(this).removeClass('expanding');});var $container=$this.data('toggleElement');if($container.text()==''){var id=$this.data('specialist-id');$.get('/ajax/',{specialist:id},function(html){$container.html(html);},'html');}});});function setupEBrochurePopup(){if(typeof config!='undefined'&&typeof(config.eBrochurePopUpUrl)!=='undefined'&&config.eBrochurePopUpUrl!=''&&getCookie('eBrochure')==null&&getCookie('Agent')==null){$('A.viewOnline[data-brochure-id]').each(function(){this.setAttribute('data-brochure-url',this.getAttribute('href'));this.setAttribute('href',config.eBrochurePopUpUrl+'?brochure='+this.getAttribute('data-brochure-id'));$(this).click(function(e){var $this=$(this);if(Boolean(getCookie('eBrochure'))!=true){e.preventDefault();var href=$this.attr('href');var id="popup"+href.replace(/^[^a-z]+|[^\w]+/gi,"");var body=$('body');var popupDiv=body.find('#'+id);if(!popupDiv.length){popupDiv=$('<div id="'+id+'" class="eBrochurePopup"><a href="#" class="closeButton"><span>Close</span></a><div class="contentHolder"><iframe style="opacity:0;" src="'+href+'"></iframe></div>').appendTo(body);}
$this.popupBox({'popupBox':popupDiv});var popupIframe=popupDiv.find('iframe');popupIframe.on('load',function(){var contentsHeight=popupIframe.contents().height();popupIframe.height(contentsHeight).css('opacity','');$this.popupBox('rePosition');});$(window).resize(function(){popupIframe.css('height','');var contentsHeight=popupIframe.contents().height();popupIframe.height(contentsHeight);$this.popupBox('rePosition');});}else{if($this.data().hasOwnProperty("popupBox")){$this.popupBox('destroy');}}});});}
if(getCookie('Agent')!=null){$('.viewOnline').hide();$('.taBrochure').show();}}
$(window).on('load',function(){setupEBrochurePopup();});function setupCookieControl(){if(top.location==location&&typeof cookieControl!=='undefined'&&typeof cookieControl.shortDescription!=='undefined'&&getCookie('cc')==null){var $cookieControl=$('<div id="cookieControl">'+'<div class="closeCookieControl"></div>'+'<div class="content">'+
cookieControl.shortDescription+'</div>'+'</div>');$(document.body).append($cookieControl);$cookieControl.find('.closeCookieControl').click(function(){setCookie('cc','1',Number(cookieControl.cookieLife));$cookieControl.fadeOut();});ccTimeoutDelay=Number(cookieControl.popUpTimeOut)*1000;$cookieControl.mouseenter(function(){clearTimeout(ccTimeout);}).mouseleave(function(){ccTimeout=setTimeout(function(){$cookieControl.fadeOut();},ccTimeoutDelay);}).hide().fadeIn({complete:function(){ccTimeout=setTimeout(function(){$cookieControl.fadeOut();},ccTimeoutDelay);$cookieControl.show();}});}}
$(window).on('load',function(){setupCookieControl();});function setupGrjTv(){$('#rpp').change(function(){location.search='rpp='+$(this).val();});var rpp=$('#rpp').val();if(rpp!=null){$('.tv .pagination A[href]').each(function(){this.href+='&rpp='+rpp;});}}
$(window).on('load',function(){setupGrjTv();});var youtubeAPILoaded=false;function onYouTubePlayerAPIReady(){youtubeAPILoaded=true;createYoutubePlayers();}
var youtubeIframes={};function createYoutubePlayers(){for(var id in youtubeIframes){createYoutubePlayer(id);}}
$(window).on('load',function(){$('.youtubeVideo.inlineVideo').each(function(){var $this=$(this);var autoplay=typeof $this.data('autoplay')!='undefined'?$this.data('autoplay'):1;if(!$this[0].id){$this[0].id="video"+$this.data('video-url').replace(/^[^a-z]+|[^\w]+/gi,"");}
embedYoutubeVideo($this.data('video-url'),$this[0].id,autoplay);});});function embedYoutubeVideo(videoUrl,iframeId,autoplay){autoplay=typeof autoplay!='undefined'?autoplay:1;if(typeof youtubeIframes[iframeId]=='undefined'){youtubeIframes[iframeId]={player:null,videoId:videoUrl.substring(videoUrl.lastIndexOf('/')+1),loading:new $.Deferred(),playInterval:null,autoplay:autoplay,rel:0};createYoutubePlayer(iframeId).then(function(youtube){if(!isiPad&&autoplay){youtube.target.playVideo();}});}}
function insertYoutubeAPIScript(){var s=document.createElement("script");s.id="youtubeAPIScript";s.src="https://www.youtube.com/player_api";var before=document.getElementsByTagName("script")[0];before.parentNode.insertBefore(s,before);}
function createYoutubePlayer(iframeId){if(!$('#youtubeAPIScript').length){insertYoutubeAPIScript();}
var iframe=youtubeIframes[iframeId];if(youtubeAPILoaded){if(iframe.player==null){iframe.player=new YT.Player(iframeId,{videoId:iframe.videoId,playerVars:{'autoplay':iframe.autoplay,'modestbranding':1,'origin':window.location.href,'rel':0},events:{'onReady':iframe.loading.resolve,'onStateChange':youtubeStateChange}});}}
return iframe.loading;}
function youtubeStateChange(event){var iframe=youtubeIframes[event.target.g.id];var videoTitle=iframe.player.getVideoData().title;var percentPlayed=0;var lastPercentPlayed=0;if(event.data==YT.PlayerState.PLAYING){percentPlayed=parseInt(100*(iframe.player.getCurrentTime()/iframe.player.getDuration()));gtm.videoEvent("Video",'youtube['+iframe.videoId+'] '+videoTitle,'Play'+(percentPlayed>0?' from '+percentPlayed+'%':''));iframe.playInterval=setInterval(function(){percentPlayed=parseInt(100*(iframe.player.getCurrentTime()/iframe.player.getDuration()));if(percentPlayed&&percentPlayed%25==0&&percentPlayed!=lastPercentPlayed){lastPercentPlayed=percentPlayed;gtm.videoEvent("Video",'youtube['+iframe.videoId+'] '+videoTitle,"Watched "+percentPlayed+"%");}},300);}
if(event.data==YT.PlayerState.PAUSED){percentPlayed=parseInt(100*(iframe.player.getCurrentTime()/iframe.player.getDuration()));gtm.videoEvent("Video",'youtube['+iframe.videoId+'] '+videoTitle,"Stopped at "+percentPlayed+"%");if(iframe.playInterval){clearInterval(iframe.playInterval);}}
if(event.data==YT.PlayerState.ENDED){gtm.videoEvent("Video",'youtube['+iframe.videoId+'] '+videoTitle,"Watched 100%");if(iframe.playInterval){clearInterval(iframe.playInterval);}}}
function openVideoModal(url,rootEl){var rootEl=rootEl||$('body');var isYoutube=url.indexOf('youtube.com/embed')>0;var isCloudflare=url.indexOf('cloudflarestream.com')>0;var autoplay=typeof rootEl.data('autoplay')!='undefined'?rootEl.data('autoplay'):1;var modalId='videoModal-'+url;if(modalId.indexOf('#')>0)modalId=modalId.split('#')[0];if(modalId.indexOf('?')>0)modalId=modalId.split('?')[0];modalId=modalId.replace(/\W/g,'-');var iframeHTML='';var iframeId=iframeId='iframe'+modalId;if(isYoutube){iframeHTML='<div id="'+iframeId+'" class="modalVideo youtube"></div>';}
if(isCloudflare){var urlParts=url.split('?');var urlPath=urlParts[0].split('/');var videoId=urlPath[urlPath.length-1];var videoTitle=urlParts.length<2?'':urlParts[1].substring(6);iframeHTML='<div id="'+iframeId+'" class="modalVideo cloudflare">'
+'<stream src="'+videoId+'" title="'+videoTitle+'" autoplay controls preload="auto" poster="https://videodelivery.net/'+videoId+'/thumbnails/thumbnail.jpg?time=4s&amp;height=720"></stream>'
+'</div>';}
if(!$('#'+modalId).length){$('body').append('<div id="'+modalId+'"></div>');}
$('#'+modalId).popupBox({'popupBox':$('#'+modalId),'content':'<div class="video">'+'<div class="videoHolder">'+iframeHTML+'<img class="placeholder" src="/img/video-aspect-ratio.png" alt="video placeholder"/>'+'</div>'+'</div>','class':'videoModal','onClose':function(popup){var thisIframe=popup.find('iframe');if(thisIframe.hasClass('youtube')){if(isiPad){youtubeIframes[thisIframe[0].id].player.destroy();delete youtubeIframes[thisIframe[0].id];popup.popupBox('destroy');popup.remove();}else{youtubeIframes[thisIframe[0].id].player.pauseVideo();}}
else if(popup.find('stream').length){popup.find('stream')[0].pause();}},'onOpen':function(popup,content){var modalPopup=$('#'+modalId);window.setTimeout(function(){modalPopup.popupBox('setPosition');},200);var thisIframe=modalPopup.find('iframe');if(thisIframe.hasClass('youtube')){if(!isiPad){youtubeIframes[thisIframe[0].id].player.playVideo();}}
else if(popup.find('stream').length){if(typeof popup.find('stream').data('initialised')=='undefined')
cfVideo.init();else
popup.find('stream')[0].play();}}});if(isYoutube){embedYoutubeVideo(url,iframeId,autoplay);}}
function openPopUp(url,modalTitle,modalWidth,modalHeight){modalWidth=(modalWidth||800);modalHeight=(modalHeight||600);var isYoutube=url.indexOf('youtube.com/embed')>0;var isCloudflare=url.indexOf('cloudflarestream.com')>0;var isVideo=isYoutube||isCloudflare;var popUpId='grjPopup-'+url;if(popUpId.indexOf('#')>0)popUpId=popUpId.split('#')[0];if(popUpId.indexOf('?')>0)popUpId=popUpId.split('?')[0];popUpId=popUpId.replace(/\W/g,'-');var $thisPopUp=$('#'+popUpId);var isPDF=false;var pdfViewerURL=window.location.protocol+"//"+window.location.hostname+'/scripts/pdf/web/viewer.html?file=';if(url.indexOf('type=pdf')>0){isPDF=true;url=pdfViewerURL+''+encodeURIComponent(url);}
if($thisPopUp.length>0){var $iframe=$thisPopUp.find('IFRAME');if($iframe.length&&!isVideo){if($iframe.attr('src')!=url||url.indexOf('e-brochures')>0)$iframe.attr('src',url);}
$thisPopUp.dialog('open');}else{if(modalHeight<1)modalHeight=Math.ceil($(window).height()*modalHeight);var html='<div id="'+popUpId+'" class="iframe"></div>';var iframeHTML='<iframe class="iframeModal'+(isPDF?' pdfModal':'')+(isCloudflare?' cloudflare':'')+(isYoutube?' youtube':'')+'" frameborder="0" src="'+url+(isYoutube?'?autoplay=1&rel=0&enablejsapi=1&modestbranding=1':'')+'"></iframe>';if(url.indexOf('.')>0){switch(url.substring(url.lastIndexOf('.')+1)){case'jpg':case'gif':case'png':html='<div id="'+popUpId+'" class="image"><img src="'+url+'" alt="'+modalTitle+'"/></div>';iframeHTML=null;break;}}
$('BODY').append(html);$('#'+popUpId).dialog({width:modalWidth,height:modalHeight,title:modalTitle,modal:true,show:(isVideo?false:'fade'),hide:'fade',resizable:false,closeText:'',create:function(){if(iframeHTML){$('#'+popUpId).append(iframeHTML);$('#'+popUpId+' IFRAME').on('load',function(){$('#telNumber, .telNumber',$(this).contents()).text(config.telNum);});}else{var popupLayer=$(this);var img=popupLayer.find('img');if(img.length){img.on('load',function(){popupLayer.dialog('option','position','center');});}}},open:function(){$('.ui-widget-overlay').one('click',function(){$(this).siblings('.ui-dialog').find('.ui-dialog-content').dialog('close');});var thisDialog=$(this);thisDialog.prev().find('.ui-dialog-titlebar-close').one('click touchstart',function(){thisDialog.dialog('close');});},close:function(){if(intl!==null&&intl.landingRedirectTime!==null)intl.landingRedirectTime=-1;var thisIframe=$('#'+popUpId).find('iframe');if(thisIframe.hasClass('pdfModal'))thisIframe.attr('src','');if(thisIframe.hasClass('youtube')){thisIframe[0].contentWindow.postMessage('{"event":"command","func":"destroy","args":""}','*');thisIframe.remove();$(this).dialog('destroy');$('#'+popUpId).remove();}
else if(thisIframe.find('stream').length){thisIframe.find('stream')[0].pause();}}});}
return popUpId;}
function setupYoutubeClicks(){$('.youtubeOnClick').each(function(){var $this=$(this);var href=this.href;var parent=$this.parent();if(siteWidth<size.tabletPortrait){$this.remove();parent.append('<iframe class="youtubeVideo" frameborder="0" src="'+href+'"></iframe>');}else{$this.click(function(e){$this.remove();parent.append('<iframe class="youtubeVideo" frameborder="0" src="'+href+'"></iframe>');e.preventDefault();});}});}
$(window).on('load',function(){setupYoutubeClicks();});function setupIPadLabels(){if(navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/iPad/i)){$('LABEL[for]').click(function(){$for=$('#'+$(this).attr('for'));if($for.length){switch($for.attr('type')){case'radio':case'checked':$for.click();break;default:$for.focus();}}});}}
$(window).on('load',function(){setupIPadLabels();});$(window).on('load',function(){fixedInView($('.fixedInView'));});function calcFixedInView($elems){$elems.each(function(){var $el=$(this);var $win=$(window);var boundaryEl=$el.data('boundary-element');var toolBar=$('#toolbar');var headerNav=$('#stickyHeader');var headerIsSticky=(headerNav.length&&headerNav.hasClass('fixed'))?true:false;var headerHeight=headerIsSticky?headerNav.height():0;var toolBarAtBottom=parseInt(toolBar.css('width'))>=$win.width()?true:false;var windowHeight=$win.height()-(toolBarAtBottom?toolBar.height():0);if(boundaryEl.length){if(typeof $el.data('min-width')=='undefined'||(typeof $el.data('min-width')!='undefined'&&parseInt($el.data('min-width'))<window.innerWidth)){var boundaryPositionChange=boundaryEl.position().top-$el.data('boundaryOriginalTop');var topPosition=Math.ceil($win.scrollTop()+headerHeight-$el.data('originalTop')-boundaryPositionChange);if($el.height()<windowHeight-headerHeight){if(topPosition>0){if(topPosition+$el.height()<boundaryEl.outerHeight(true)+(boundaryEl.offset().top-$el.data('originalTop')-boundaryPositionChange)){$el.css('margin-top',topPosition);}}else{$el.css('margin-top','');}}else{if($win.scrollTop()+headerHeight<$el.offset().top){if(topPosition>0)$el.css('margin-top',topPosition);else $el.css('margin-top','');}else{if($el.outerHeight(true)<boundaryEl.outerHeight(true)){if($win.scrollTop()+windowHeight>$el.offset().top+$el.height()){var elMarginTop=parseFloat($el.css('margin-top'));elMarginTop+=($win.scrollTop()+windowHeight)-($el.offset().top+$el.height());$el.css('margin-top',elMarginTop);}}}}}else{if($el.css('margin-top'))$el.css('margin-top','');}}});}
function fixedInView($elems){$elems.each(function(){var $el=$(this);$el.data('originalTop',$el.offset().top);var boundaryEl=$el.data('boundary-element');if(typeof boundaryEl!='undefined'){boundaryEl=$(boundaryEl).first();$el.data('boundary-element',boundaryEl);$el.data('boundaryOriginalTop',boundaryEl.position().top);}
$el.css('position','relative');});calcFixedInView($elems);$(window).scroll(function(){calcFixedInView($elems);});}
$(window).on('load',function(){setupTagClouds();setupYearArchive();});function setupTagClouds(){if($('.sideCol .tags').length){var totalCount=0;var largestVal=0;if($('.blogPost').length){$('.sideCol .tags .count').each(function(){var $this=$(this);var innerText=$this.prev().text();var padding=parseInt($this.prev().find('.bar').css('padding-left'));padding+=parseInt($this.prev().find('.bar').css('padding-right'));$this.prev().find('.bar').text(innerText).css({'display':'inline','width':100-padding+'%'});});}else{$('.sideCol .tags .count').each(function(){var currentVal=parseInt($(this).text());totalCount+=currentVal;if(currentVal>largestVal)largestVal=currentVal;});$('.sideCol .tags .count').each(function(){var $this=$(this);var thisTagCount=parseInt($this.text());var innerText=$this.prev().text();var padding=parseInt($this.prev().find('.bar').css('padding-left'));padding+=parseInt($this.prev().find('.bar').css('padding-right'));$this.prev().find('.bar').text(innerText).fadeIn('1500').position('left');$this.prev().find('.bar').css('width',Math.ceil((thisTagCount/largestVal)*100)-padding+'%');});}}}
function setupYearArchive(){$('.archive .heading').first().addClass('expanded').next().slideDown();$('.archive .heading').click(function(e){var $this=$(this);e.preventDefault();if(!$this.hasClass('expanded'))$this.addClass('expanded').next().slideDown();else $this.removeClass('expanded').next().slideUp();});$('.archive .heading a').click(function(e){e.stopPropagation();var $this=$(this);if(!$this.parent().hasClass('expanded')){e.preventDefault();$this.parent().addClass('expanded').next().slideDown();}});}
function setupCustomPrintButtons(){$('button.print, a.print').each(function(){var $button=$(this);if(typeof $button.data('print-content')!='undefined'){var printContent=$($button.data('print-content'));if(printContent.length){$button.click(function(e){e.preventDefault();printContent.print();});}}});}
$(window).on('load',function(){setupCustomPrintButtons();});function setupTravelAgent(){if(typeof config!='undefined'){var taCookie=(getCookie('Agent')||'').split('|');if(taCookie.length>1){if((config.travelAgentWarning||'')!=''&&taCookie.length>3&&taCookie[3]=='1'){var $div=$('<div id="grjPopup-taWarning" class="grjPopup">'
+'<a href="#" class="closeButton"><span>Close</span></a>'
+'<div class="contentHolder"><h3>Travel Agents</h3>'
+config.travelAgentWarning.replace('[AgentName]',taCookie[0])
+'</div>'
+'</div>').appendTo('body');var $a=$('<a id="taWarning" href="#" target="grjPopup" style="display:none"></a>').appendTo('body');$a.click(ndc.openPopUp).click();taCookie[3]='0';setCookie('Agent',taCookie.join('|'));}
if((config.travelAgentPhoneNo||'')!=''){$('#telNumber, .telNumber').text(config.travelAgentPhoneNo);}
$.ajax({url:'/webservices/BookingJourney.asmx/GetTravelAgentId',data:JSON.stringify({logout:false}),type:'POST',contentType:'application/json; charset=utf-8',success:function(data){var agentId=String(data.d);var $taBanner=$('<div id="taBanner"></div>').hide().appendTo('body');if(agentId==taCookie[2]){$taBanner.text((config.travelAgentBanner||'You are logged in as a Travel Agent').replace('[AgentName]',taCookie[0]).replace('[AbtaId]',taCookie[1]));$('<a href="#">Log out</a>').click(travelAgentLogout).appendTo($taBanner);}
else{$taBanner.text('Your session has expired due to inactivity').css('background-color','#E72A2A');$('<a href="/travelagents/">Log in</a>').appendTo($taBanner);removeCookie('Agent');if(agentId!='0')travelAgentLogout();}
$taBanner.slideDown();}});}}}
function travelAgentLogout(){$('#taBanner').slideUp();$.ajax({url:'/webservices/BookingJourney.asmx/GetTravelAgentId',data:JSON.stringify({logout:true}),type:'POST',contentType:'application/json; charset=utf-8',success:function(data){removeCookie('Agent');}});}
var validatePhoneNumberCache={};function validatePhoneNumber($elem){var phoneNumber=$elem.val();var digitsOnly=phoneNumber.replace(/[^0-9]/g,'');if(digitsOnly.length<8||digitsOnly.length>15){return false;}
var $container=$elem.closest('form, .traveller');var country=$container.find('#Country, SELECT.country, .country SELECT').val()||'';if(typeof validatePhoneNumberCache[phoneNumber]=='undefined'){var xmlHttp=new XMLHttpRequest();xmlHttp.open("GET",'/webservices/PhoneNumber.asmx/Validate?phoneNumber='+encodeURIComponent(phoneNumber)+'&country='+country,false);xmlHttp.send(null);validatePhoneNumberCache[phoneNumber]=(xmlHttp.responseText.indexOf('>true<')>0);}
return validatePhoneNumberCache[phoneNumber];}
$(function(){sortableContent('.sortable');attachRoomClassPopups();$('.svgPlan').each(createSVGPlanGallery);attachDeckPlanPopups();});function attachDeckPlanPopups(){$('.viewDeckPlan').each(function(){var anchor=$(this);if(!anchor.hasClass('attached')){anchor.on('click',function(event){var $this=$(this);var dataId=$this.data('id');var svgInfo=null;if(typeof window[dataId]!='undefined'){svgInfo=window[dataId];openSVGPopup(event,svgInfo.rooms,function(roomNumber,roomEl){var roomClassCode=svgInfo.rooms[roomNumber].RoomClassCode;var url="";for(var floorIndex=0;floorIndex<svgInfo.floors.length;floorIndex++){for(var currentClass in svgInfo.floors[floorIndex].RoomClass){if(currentClass==roomClassCode){url=svgInfo.floors[floorIndex].RoomClass[currentClass].RoomClassUrl;break;break;}}}
fixBody(false,true);openRoomClassPopup(url,roomEl).then(function(){fixBody(true,true);setup360ViewButtons();});},'RoomClassColour');}else{openSVGPopup(event);}
var planOverlayPopup=$('#planOverlay');var planHeader=planOverlayPopup.find('.headingText');planHeader.text('');});anchor.addClass('attached');}});}
function attachRoomClassPopups(){$('.openRoomClassPopup, .openExcursionPopup').each(function(){var anchor=$(this);if(!anchor.hasClass('attached')){anchor.on('click',function(event){event.preventDefault();var $this=$(this);if($this.attr('href')){openRoomClassPopup($this.attr('href'),$this);}else{console.log("no href set on element: ",$this[0]);}});anchor.addClass('attached');}});}
function openRoomClassPopup(url,el){var deferred=new $.Deferred();if(url){var id='popup'+url.replace(/^[^a-z]+|[^\w]+/gi,'');var body=$('body');var popupDiv=body.find('#'+id);if(!popupDiv.length){popupDiv=$('<div id="'+id+'" class="roomClassPopup"><a href="#" class="closeButton"><span>Close</span></a><a href="javascript:void(0);" onclick="printSection(this, \'.generic\', \'CabinClassDetails\')" class="printSection"><span>Print</span></a><div class="contentHolder"></div>').appendTo(body);$.get(url,function(html){var roomClassDoc=$(html);for(var i=0;i<roomClassDoc.length;i++){if(roomClassDoc[i].className&&roomClassDoc[i].className=="generic"){popupDiv.find('.contentHolder').append(roomClassDoc[i]);initModalGalleryButtons();setup360ViewButtons();}}
popupDiv.find('.breadcrumb').remove();});}
el.popupBox({'popupBox':popupDiv,'onClose':function(){deferred.resolve();}});}
return deferred;}
function createSVGPlanGallery(index,el){var svgPlan=new SvgPlan('#'+el.id);var root=$(el);var html='<div class="inlineGallery DeckPlanNew"><div class="owl-carousel owl-theme"></div></div>';var dataId=root.data('id');var svgInfo=null;if(typeof window[dataId]!='undefined'){svgInfo=window[dataId];}
if(typeof root.data('src')=='undefined')return console.log(el,'requires a data-src attribute');svgPlan.load(root.data('src'),true).then(function(floors,mainSVG){root.append(html);var inner=root.find(".owl-carousel");inner.show();if(typeof svgInfo.rooms!='undefined'){svgPlan.populateAvailability(svgInfo.rooms,false,'RoomClassColour');}
floors.forEach(function(floor,index){inner.append('<div class="slide"><svg width="100%"></svg><div class="floorDescription"></div><div class="floorKeys"></div></div>');var newSVG=inner.find('.slide svg').last();var scale=(newSVG.width()/floor.node.getBoundingClientRect().width)-0.05;floor.transform('s'+scale);newSVG.css('height',Math.ceil(floor.node.getBoundingClientRect().height+2)+'px');newSVG=Snap(newSVG[0]);newSVG.append(floor);var translateX=(newSVG.node.getBoundingClientRect().left-floor.node.getBoundingClientRect().left)+2;var translateY=newSVG.node.getBoundingClientRect().top-floor.node.getBoundingClientRect().top;floor.transform('t'+translateX+','+translateY+',s'+scale);var newRooms=floor.selectAll("[id^='room'] > g");for(var i=0;i<newRooms.length;i++){$(newRooms[i].node).on('mouseup',function(event){var roomId=event.target.parentNode.id;var roomNumber=event.target.parentNode.id.split('room')[1];if(svgInfo&&typeof svgInfo.rooms!='undefined'){var el=$('#'+roomId);var roomClassCode=svgInfo.rooms[roomNumber].RoomClassCode;var url="";for(var floorIndex=0;floorIndex<svgInfo.floors.length;floorIndex++){for(var currentClass in svgInfo.floors[floorIndex].RoomClass){if(currentClass==roomClassCode){url=svgInfo.floors[floorIndex].RoomClass[currentClass].RoomClassUrl;break;break;}}}
openRoomClassPopup(url,el);}});}
if(svgInfo&&typeof svgInfo.floors!='undefined'){var floorInfo=svgInfo.floors[index];inner.find('.floorDescription').last().html(floorInfo.FloorDescription);var keysHTML='';for(var key in floorInfo.RoomClass){var roomClass=floorInfo.RoomClass[key];keysHTML+='<a class="openRoomClassPopup" href="'+roomClass.RoomClassUrl+'"><span class="roomClass" style="background-color:'+roomClass.RoomClassColour+';">'+key+'</span><span class="roomClassName">'+roomClass.RoomClassName+' (View Details)</span></a>'}
inner.find('.floorKeys').last().html(keysHTML);}});attachRoomClassPopups();$('#'+el.id+'data').remove();root.find(".owl-carousel").owlCarousel({'rewind':true,'nav':true,'mouseDrag':false,'lazyLoad':false,'video':false,'items':1,'slideBy':1,'autoHeight':false,'navText':[svg.previous,svg.next],'onInitialized':function(event){var $target=$(event.target);$target.find('.owl-height').css('height','');$target.find('.owl-item').on('click',function(){var $video=$(this).find('.galleryVideo');if($video.length){openVideoModal($video.data('src'),$video);}});}});});}
var viewportScaling=function(scalingOn){var metaViewport=$('meta[name=viewport]');if(typeof metaViewport.data('oldMeta')=='undefined'){metaViewport.data('oldMeta',metaViewport.attr('content'));}
if(scalingOn){metaViewport.attr('content',metaViewport.data('oldMeta'));}else{metaViewport.attr('content',metaViewport.data('oldMeta')+',user-scalable=no');}};function newPlanOverlay(){var overlay=$('<div id="planOverlay">'+'<div class="header">'+'<div class="headingText"></div>'+'<div id="closeSVG">Close</div>'+'<div id="planButtons">'+'<button class="zoom-out"></button>'+'<input type="range" class="zoom-range">'+'<button class="zoom-in"></button>'+'<button class="reset"></button>'+'</div>'+'</div>'+'<div class="footer"></div>'+'</div>');return overlay.appendTo("body");}
function fixBody(fixed,ignorePosition){ignorePosition=ignorePosition||false;var $body=$('body');if(fixed){if(!ignorePosition){$body.data('origScrollTop',$(document).scrollTop());}
$body.css({'position':'fixed','overflow':'hidden'});}else{$body.css({'position':'','overflow':''});if(!ignorePosition){$(document).scrollTop($body.data('origScrollTop'));}}}
function openSVGPopup(event,availability,roomClickCallBack,roomColourField){event.preventDefault();roomColourField=roomColourField||"";var deferred=new $.Deferred();var root=$(event.target);var id=root.data('src')||root.data('id');id="id"+id.replace(/^[^a-z]+|[^\w]+/gi,"");var $planOverlay=$('#planOverlay');if(!$planOverlay.length){$planOverlay=newPlanOverlay();var closeButton=$planOverlay.find("#closeSVG");closeButton.on("click",function(event){event.preventDefault();$planOverlay.hide();viewportScaling(true);fixBody(false);deferred.resolve();});}
else{$planOverlay.children('.svg').remove();}
if(typeof root.data('src')=='undefined')return console.log(root[0],"requires a data-src attribute");var svg;var svgEl=$('#'+id);var planButtons=$("#planButtons");if(!svgEl.length){svgEl=$('<div id="'+id+'" class="svg"></div>').appendTo($planOverlay);svgEl.panzoom({$zoomIn:planButtons.find(".zoom-in"),$zoomOut:planButtons.find(".zoom-out"),$zoomRange:planButtons.find(".zoom-range"),$reset:planButtons.find(".reset"),startTransform:'scale(1)',minScale:0.6,increment:0.4,maxScale:2.8,contain:false});svgEl.parent().on('mousewheel.focal',function(e){e.preventDefault();var delta=e.delta||e.originalEvent.wheelDelta;var zoomOut=delta?delta<0:e.originalEvent.deltaY>0;svgEl.panzoom('zoom',zoomOut,{animate:false,focal:e});});}else{svgEl.empty();}
svg=new SvgPlan('#'+id);svg.load(root.data('src'),false).then(function(){if(typeof availability!='undefined'){svg.populateAvailability(availability,(roomColourField==''),roomColourField);}
overlay.close();$planOverlay.show();fixBody(true);viewportScaling(false);svg.clickRoom=function(roomNumber,el){if(typeof roomClickCallBack=="function"){roomClickCallBack(roomNumber,el,(typeof availability!='undefined'&&typeof availability[roomNumber]!='undefined'),deferred,availability);}};});return deferred.promise();}
$(function(){setup360ViewButtons();});function setup360ViewButtons($items){$items=$items||$('.viewVirtualTour');$items.click(function(e){e.preventDefault();var button=$(this);fixBody(true);var newVirtualTour=new VirtualTour(button.data('virtual-tour'),button.data('initial-view'));});}
function copyItineraryOfferContent(){var $headerOffer=$('#tourStickyHeader .specialOffer .content');var $offerContent=$('#tourOverlay .specialOffer');if($offerContent.length&&$headerOffer.length){$headerOffer[0].innerHTML=$offerContent[0].innerHTML;}}
function setupCountdownTimers(){var parseStringToUTC=function(dateString){dateString=dateString.split(',');while(dateString.length<6){dateString.push(0);}
return new Date(Date.UTC(parseInt(dateString[0]),dateString[1]>0?parseInt(dateString[1]-1):0,parseInt(dateString[2]),parseInt(dateString[3]),parseInt(dateString[4]),parseInt(dateString[5])));};$('.offerCountdownTimer').each(function(){var $this=$(this);if(typeof $this.data('timer')=='undefined'){var endDate=typeof $this.data('enddate')!='undefined'?parseStringToUTC($this.data('enddate')):null;if(endDate!=null){$this.data('timer',new offerCountdownTimer(endDate,$this,$this.data('show-days-before')));}}});}
$(function(){setupAccordions();});function setupAccordions(selector){selector=selector||'.accordion';$(selector).on('click',function(e){e.preventDefault();var $this=$(this);if($this.hasClass('expanded')){$this.addClass('off').removeClass('on').next().slideUp(function(){$this.removeClass('expanded off');});}else{$this.addClass('on').next().slideDown(function(){$this.addClass('expanded');});}});}
$(function(){copyItineraryOfferContent();setupCountdownTimers();});
;;;var webForm={initialised:false,forms:null,wait:0,init:function(){if(webForm.initialised)return;webForm.initialised=true;webForm.forms=document.getElementsByClassName('webForm');if(webForm.forms.length==0)return;var enableReCaptcha=false;for(ix=0;ix<webForm.forms.length;ix++){var $form=$(webForm.forms[0]);if($form.hasClass('travelAgentLogin'))continue;webForm.initFields($form);$form.find('INPUT[type=submit]').click(webForm.submit);enableReCaptcha=enableReCaptcha||$form.data('fields').indexOf(',reCAPTCHA,')>=0;$form.append('<div class="pleaseWaitMask"><div><span class="ajaxLoadingIcon">&#xf021;</span> Please wait...</div></div>');}
if(enableReCaptcha){$.getScript('https://www.google.com/recaptcha/api.js');}
var brochureIds=','+getQuery('id')+',';if(brochureIds!=',,'){$('.brochureList A.add[data-brochure-id]').each(function(){if(brochureIds.indexOf(','+$(this).attr('data-brochure-id')+',')>=0){$(this).click();}});}
$(webForm.forms).find('.moreInfo').infoBox({'position':'center','preventDefault':true,'topElementConstraint':$('#stickyHeader')});},initFields:function($form){var nodeid=$form.data('nodeid');var pkcwebform=$form.data('pkcwebform');$('#Title_'+nodeid).validate();$('#FirstName_'+nodeid).validate();$('#LastName_'+nodeid).validate();$('#Email_'+nodeid).attr('type','email').on('blur',webForm.fixEmailAddress).validate({'customValidation':webForm.validateEmail,'validateOnChange':false});$('#EnquiryType_'+nodeid).validate();$('#PreferredContactMethod_'+nodeid).validate();if(pkcwebform==1||pkcwebform==201){$('#Comments_'+nodeid).prev('LABEL').append(' *');}
$('#Phone_'+nodeid).attr('type','tel');if(pkcwebform==201){$('#NoOfTravellers_'+nodeid).validate().prev('LABEL').append(' *');$('#Comments_'+nodeid).validate({'customValidation':webForm.minimumCharacters,'validateOnChange':true});}
else{$('#Comments_'+nodeid).validate();$('#NoOfTravellers_'+nodeid).attr('type','tel');}
switch(pkcwebform){case 1:case 2:case 4:case 15:case 35:case 219:break;default:$('#Phone_'+nodeid).validate({'customValidation':validatePhoneNumber,'validateOnChange':false}).prev('LABEL').append(' *');break;}
if($('#AddressLookup_'+nodeid).length){if(pkcwebform!=1){$('#AddressLookup_'+nodeid).validate({'supressOutput':true}).prev('LABEL').append(' *');$('#Address_'+nodeid).validate().prev('LABEL').append(' *');$('#Town_'+nodeid).validate().prev('LABEL').append(' *');$('#County_'+nodeid).validate().prev('LABEL').append(' *');$('#Country_'+nodeid).change(webForm.togglePostcodeValidation);}
webForm.pca.init(nodeid);}
if($('#CallBackTime_'+nodeid).length){$('#CallBackTime_'+nodeid).validate();webForm.populateCallBackTimes($('#CallBackTime_'+nodeid));}
if($('#BrochureCode_'+nodeid).length&&$('.brochureList A.add[data-brochure-code]').length){$('#BrochureCode_'+nodeid).val('').validate({'customValidation':webForm.validateBrochureCode,'validateOnBlur':false,'validateOnChange':false,'validateWhenHidden':true});$('.brochureList A.add[data-brochure-code]').click(webForm.toggleBrochureSelection);}
$('#AgencyName_'+nodeid).validate();$('#ContactName_'+nodeid).validate();$('#ContactFirstName_'+nodeid).validate();$('#ContactLastName_'+nodeid).validate();var regexAgencyNumber=(pkcwebform>200&&pkcwebform<220)?/^\d{7,12}$/:/^\w{5}$/;$('#Abta_'+nodeid).validate({'RegExp':regexAgencyNumber});$('#AgentId_'+nodeid).validate({'RegExp':/^\w{5,6}|\d{1,9}$/});$form.find('INPUT[type=text], TEXTAREA').attr('autocorrect','off');if(pkcwebform!=15&&$('#Comments_'+nodeid).length&&$('#TourName_'+nodeid).val()!=''){var comments=$('#TourName_'+nodeid).val();switch(pkcwebform){case 1:case 201:comments='';break;case 2:comments='Advance Registration – '+comments+'.\n';break;case 3:comments='Request a Call Back about '+comments+'.\n';break;case 4:comments='Enquire about a tailormade '+comments+'. Please add details about your specific tour requirements below.\n';break;}
$('#Comments_'+nodeid).val(comments);}
if($('#BirthYear_'+nodeid).length){var $birthYear=$('#BirthYear_'+nodeid);var currentYear=new Date().getFullYear();var html='';for(var year=currentYear-100;year<currentYear-18;year++)
html+='<option>'+year+'</option>';$birthYear.append(html);}
if($('#GaCookieId_'+nodeid).length){var gaId=getCookie('_ga')??'';if(gaId.length>5&&gaId.indexOf('.')>0){var gaIdParts=gaId.split('.');if(gaIdParts.length==4&&gaIdParts[2].length>5){gaId=gaIdParts[2]+'.'+gaIdParts[3];}}
$('#GaCookieId_'+nodeid).val(gaId);}
if(pkcwebform==3||pkcwebform==207){var bookingRef=Number(getQuery('id'));if(bookingRef>0){$('#BookingRef_'+nodeid).val(bookingRef);}
var tourCode=getQuery('tc');if(tourCode.length>0&&tourCode.length<=100){$('#DepartureCode_'+nodeid).val(tourCode);}}
if($('#TravelWhen_'+nodeid).length){var dt=new Date();var year=dt.getFullYear();var monthNames=['January','February','March','April','May','June','July','August','September','October','November','December'];var monthIx=dt.getMonth();var options='';while(monthIx<monthNames.length){options+='<option>'+monthNames[monthIx++]+' '+year+'</option>';}
monthIx=0;year++;while(monthIx<monthNames.length){options+='<option>'+monthNames[monthIx++]+' '+year+'</option>';}
$('#TravelWhen_'+nodeid).append(options);}
$('#FormUrl_'+nodeid).val(location.href);},populateCallBackTimes:function($select){if(typeof openingHoursData==='undefined'){if(webForm.wait>5){console.warn('webForm.populateCallBackTimes','Waited too long for openingHoursData to be available');}
else{setTimeout(webForm.populateCallBackTimes,200);webForm.wait++;}
return;}
if($select.length&&openingHoursData.length>0){openingHoursData.sort(function(a,b){return a.dateOffset-b.dateOffset;});var dtNow=new Date();for(var ix in openingHoursData){var oh=openingHoursData[ix];if(oh.close!='Closed'&&oh.dateOffset>=0&&oh.name.indexOf('Sat')<0&&oh.name.indexOf('Sun')<0&&oh.name.indexOf(' Day')<0&&oh.name.indexOf('Holiday')<0){var dt=new Date(dtNow);dt.setDate(dtNow.getDate()+oh.dateOffset);var dateString=dt.toDateString().replace(dt.getFullYear(),'');var s=oh.close.split(':');var h=parseInt(s[0],10);var m=parseInt(s[1],10);if(oh.close.indexOf('PM')>0)h+=12;dt.setHours(h,m);var dtOpen=new Date(dt);s=oh.open.split(':');h=parseInt(s[0],10);m=parseInt(s[1],10);if(oh.open.indexOf('PM')>0)h+=12;dtOpen.setHours(h,m);var opts='';while(dt>dtOpen){var dtFrom=new Date(dt);dtFrom.setHours(dtFrom.getHours()-2);if(dtFrom<dtOpen||dtFrom<dtNow)break;opts='<option value="'+dateString+' at '+webForm.formatTime(dtFrom)+' - '+webForm.formatTime(dt)+' '+config.timeZone+'">'
+webForm.formatTime(dtFrom)+' - '+webForm.formatTime(dt)
+'</option>'+opts;dt.setHours(dt.getHours()-2);}
if(opts!=''){$select.append('<optgroup label="'+dateString+'">'+opts+'</optgroup>');}}}}},formatTime:function(dt){var mins=String(dt.getMinutes());if(mins.length==1)mins='0'+mins;if(dt.getHours()>12)
return(dt.getHours()-12)+':'+mins+' PM';else
return dt.getHours()+':'+mins+' AM';},togglePostcodeValidation:function(){var $country=$(this);var $postcode=$country.closest('FORM').find('INPUT[id^=Postcode_]');switch($country.val()){case'United Kingdom':if($postcode.hasClass('validateAttached'))
$postcode.validate('setRegExp','postcode');else
$postcode.validate({'RegExp':'postcode'});break;case'Ireland':if($postcode.hasClass('validateAttached'))
$postcode.validate('destroy');break;case'United States of America':case'United States':case'USA':if($postcode.hasClass('validateAttached'))
$postcode.validate('setRegExp','zip');else
$postcode.validate({'RegExp':'zip'});break;default:if($postcode.hasClass('validateAttached'))
$postcode.validate('setRegExp','');else
$postcode.validate();break;}
var $label=$postcode.prev('LABEL');if($postcode.hasClass('validateAttached')){if($label.text().indexOf(' *')<0)$label.append(' *');}
else{if($label.text().indexOf(' *')>0)$label.text($label.text().replace(' *',''));}},submit:function(e){e.preventDefault();var $form=$(this).closest('FORM');$form.find('.error').slideUp();if(!$form.find('.validateAttached').first().validate('isEverythingValid',$form)){var $invalid=$form.find('.invalid');gtm.validationError('WebForm',($invalid.length==1)?$invalid.siblings('label').text():'Multiple');return;}
var data={pkcWebForm:$form.data('pkcwebform'),nodeId:$form.data('nodeid'),fields:{}};if(data.pkcWebForm!=1&&data.pkcWebForm!=201){if($('#divAddress_'+data.nodeId).length&&!$('#divAddress_'+data.nodeId).is(':visible')){if($('#pcaList').is(':visible')){$('#pcaList').effect('shake');}else{$('#manualAddress_'+data.nodeId).focus().click();}
return;}}
var fieldNames=$form.data('fields').split(',');for(ix=0;ix<fieldNames.length;ix++){var fieldName=fieldNames[ix];if(fieldName!=''){var $field=$('#'+fieldName+'_'+data.nodeId);if($field.length){data.fields[fieldName]=$field.prop('type')=='checkbox'?$field.is(':checked'):fieldName=='TelRef'&&$field.val()==''?getCookie('telCode')||'':fieldName=='CompanyID'&&$field.val()==''?config.companyID:fieldName=='AddressLookup'?webForm.combineFields('Address,Town,County,Postcode,Country',data.nodeId,'|'):fieldName=='XmlDetails'&&$field.val()==''?$field.val().replace('&','&amp;'):$field.val();if(fieldName!='XmlDetails'){if(typeof data.fields[fieldName]==='string'&&data.fields[fieldName].length>1000){alert(fieldName+' is too long.\nPlease ensure the value in this field is less than 1000 characters');$field.effect('shake').focus().click();return;}}}
else if(fieldName=='TravelAgentDetails'){data.fields[fieldName]=webForm.combineFields('AgencyName,Group,Abta',data.nodeId,'|');}
else if(fieldName=='TravelAgentContact'){if($('#ContactName_'+data.nodeId).length)
data.fields[fieldName]=webForm.combineFields('ContactName,Email,Phone',data.nodeId,'|');else
data.fields[fieldName]=webForm.combineFields('ContactFirstName,ContactLastName,Email,Phone',data.nodeId,'|');}
else if(fieldName=='TravelAgentAddress'){data.fields[fieldName]=webForm.combineFields('Address,Town,County,Postcode,Country',data.nodeId,'|');}
else if(fieldName=='TravelAgentPassword'){data.fields[fieldName]=webForm.combineFields('RequestType,AgencyName,ContactName,AgentId,Email',data.nodeId,'|');}
else if(fieldName=='Interest'){if(data.pkcWebForm==35){data.fields[fieldName]=webForm.combineFields('InterestUK,InterestEurope,InterestWorldwide,InterestRiverCruise',data.nodeId,'|');}
else{data.fields[fieldName]=webForm.combineFields('InterestUSA,InterestCanada,InterestEurope,InterestRiverCruise,InterestBeyond,InterestGroup',data.nodeId,'|');}}
else if(fieldName=='BirthYearMonth'){data.fields[fieldName]=webForm.combineFields('BirthYear,BirthMonth',data.nodeId,'|');}
else if(fieldName=='reCAPTCHA'){data.fields[fieldName]=$('#g-recaptcha-response').val();if(data.fields[fieldName]==''){$('.g-recaptcha').effect('shake');return;}}}}
$form.find('.pleaseWaitMask').show();$.ajax({data:JSON.stringify(data),url:'/webservices/WebForms.asmx/AddEntry',type:'POST',contentType:'application/json; charset=utf-8',dataType:'JSON',success:function(response){$form.find('.pleaseWaitMask').fadeOut();response=response.d;if(response.success){for(var p in data.fields){if(response.message.indexOf('['+p+']')>=0){response.message=response.message.replace('['+p+']',data.fields[p]);}}
if(response.message.indexOf('[BrochureSelection]')>=0){response.message=response.message.replace('[BrochureSelection]','<ul>'+$('#brochureSelection').html()+'</ul>');}
if(typeof data.fields['Email']!='undefined'&&data.fields['Email'].indexOf('<')<0){$form.after('<span id="webformThankYouEmail" class="email" style="display:none">'+data.fields['Email']+'</span>');}
var formHeight=$form[0].offsetHeight;$form.fadeOut(400,function(){window.scrollBy(0,-formHeight);$form.html(response.message).fadeIn();});$('.brochureList A.add[data-brochure-id]').remove();webForm.thankYouTracking(data.pkcWebForm,data.fields,response);if(data.fields['BrochureCode']&&data.fields['BrochureCode']!=''){var brochures=data.fields['BrochureCode'].substr(1).replace(/\|/g,',');setCookie('brochures',brochures,365*2);}
if(data.fields['OptInEmail']&&data.fields['OptInEmail']===true){setCookie('em',1);}
if(data.pkcWebForm==7||data.pkcWebForm==210){setCookie('eBrochure',true);}}
else{$form.find('.error').html(response['message']||'The form submission failed - please try again later').slideDown();}},error:function(err,status,desc){try{showError(desc+':\n'+err.responseJSON.Message);}
catch(e){showError('A server error has occurred');}
$form.find('.pleaseWaitMask').fadeOut();}});if(data.pkcWebForm==7||data.pkcWebForm==210){setCookie('eBrochure',true,1);parent.$('.popupBoxAttached').popupBox('close');parent.$('A.viewOnline[data-brochure-id]:visible').each(function(){this.setAttribute('href',this.getAttribute('data-brochure-url'));this.removeAttribute('data-brochure-url');if(this.getAttribute('data-brochure-code')==data.fields['BrochureCode']){this.click();}});}},combineFields:function(csvFields,nodeId,delimiter){var fieldNames=csvFields.split(',');delimiter=delimiter||'|';var combo='';for(var ix=0;ix<fieldNames.length;ix++){if(combo!='')combo+=delimiter;var $field=$('#'+fieldNames[ix]+'_'+nodeId);if($field.is(':checkbox')){if($field.attr('value')){if($field.is(':checked')){combo+=$field.attr('value');}}
else{combo+=$field.is(':checked');}}
else{combo+=$field.find('[checked]').val()||$field.val();}}
return combo;},pca:{Key:'ZN29-PP32-XM65-RD93',Elems:null,QueuedData:null,Wait:false,init:function(nodeid){if(webForm.pca.Elems!=null)return;if(typeof config!="undefined"&&typeof(config.ConfigPostCodeLookupLicense_Key)!="undefined")webForm.pca.Key=config.ConfigPostCodeLookupLicense_Key;var nodeSuffix=(nodeid)?'_'+nodeid:'';webForm.pca.Elems={divAddressLookup:document.getElementById('divAddressLookup'+nodeSuffix),divAddressList:null,divAddress:document.getElementById('divAddress'+nodeSuffix),Country:document.getElementById('Country'+nodeSuffix),Lookup:document.getElementById('AddressLookup'+nodeSuffix),Address:document.getElementById('Address'+nodeSuffix),Town:document.getElementById('Town'+nodeSuffix),County:document.getElementById('County'+nodeSuffix),Postcode:document.getElementById('Postcode'+nodeSuffix),manualAddress:$('#manualAddress'+nodeSuffix),lookupAddress:$('#lookupAddress'+nodeSuffix)};$('<div id="pcaList" class="pcaList" style="display:none"><label>Select your address from list</label><div></div></div>').appendTo(webForm.pca.Elems.divAddressLookup);webForm.pca.Elems.divAddressList=webForm.pca.Elems.divAddressLookup.getElementsByClassName('pcaList')[0];webForm.pca.Elems.manualAddress.click(webForm.pca.showAddress);webForm.pca.Elems.lookupAddress.click(webForm.pca.showLookup).hide();$('#pcaList').validate({'supressOutput':true,'customValidation':function(){var textArea=webForm.pca.Elems.Address.value;var town=webForm.pca.Elems.Town.value;var county=webForm.pca.Elems.County.value;return($(webForm.pca.Elems.divAddress).is(':visible')&&textArea&&town&&county);}});$(webForm.pca.Elems.Lookup).on('blur input propertychange',function(){var SearchTerm=$.trim(webForm.pca.Elems.Lookup.value);var Country=webForm.pca.Elems.Country.value;if(Country!=''&&SearchTerm.length>2){webForm.pca.find({SearchTerm:SearchTerm,Country:Country});}});},showAddress:function(e){$(webForm.pca.Elems.divAddressList).slideUp();$(webForm.pca.Elems.divAddressLookup).slideUp();$(webForm.pca.Elems.divAddress).slideDown();if(typeof(e)!='undefined'){e.preventDefault();webForm.pca.Elems.Address.focus();}
webForm.pca.Elems.manualAddress.hide();webForm.pca.Elems.lookupAddress.show();},showLookup:function(e){$(webForm.pca.Elems.divAddress).slideUp();$(webForm.pca.Elems.divAddressList).hide();$(webForm.pca.Elems.divAddressLookup).slideDown();webForm.pca.Elems.divAddressLookup.focus();if(typeof(e)!='undefined'){e.preventDefault();}
webForm.pca.Elems.manualAddress.show();webForm.pca.Elems.lookupAddress.hide();},find:function(data){if(typeof(data.Key)==='undefined')data.Key=webForm.pca.Key;if(webForm.pca.Wait){webForm.pca.QueuedData=data;}
else{webForm.pca.Wait=true;$.ajax({dataType:'json',url:'https://services.postcodeanywhere.co.uk/CapturePlus/Interactive/Find/v2.10/json3.ws?callback=?',data:data,success:function(response){var options='';if(response.Items.length>0){for(var ix=0;ix<response.Items.length;ix++){var item=response.Items[ix];if(typeof(response.Items[ix].Error)!=='undefined')
options+='<div><b>'+item.Error+': '+item.Description+'</b><br/>'+item.Cause+'<br/>'+item.Resolution+'</div>';else
options+='<div data-id="'+item.Id+'" data-next="'+item.Next+'" style="cursor:pointer">'+item.Text+'</div>';}}
else{options+='<div><b>Sorry, no matching items found.</b><br/>Please enter more detail.</div>';}
webForm.pca.Elems.divAddressList.childNodes[1].innerHTML=options;$(webForm.pca.Elems.divAddressList).slideDown().find('div[data-next]').click(webForm.pca.select);webForm.pca.Wait=false;if(webForm.pca.QueuedData!=null){var nextData=webForm.pca.QueuedData;webForm.pca.QueuedData=null;webForm.pca.find(nextData);}
webForm.pca.monitor(true);},error:function(err,status,desc){var msg='A server error has occurred';try{alert(desc+':\n'+err.responseJSON.Message);}
catch(e){}
webForm.pca.monitor(false,msg);}});}},retrieve:function(data){data.Key=webForm.pca.Key;$.ajax({dataType:'json',url:'https://services.postcodeanywhere.co.uk/CapturePlus/Interactive/Retrieve/v2.10/json3.ws?callback=?',data:data,success:function(response){if(response.Items.length>0){var record=response.Items[0];if(typeof(record.Error)!=='undefined'){console.log(record);webForm.pca.monitor(false,record);}
else{var address='';if(record.Department)address+=record.Department+'\n';if(record.Company)address+=record.Company+'\n';address+=record.Line1;if(record.Line2)address+='\n'+record.Line2;if(record.line3)address+='\n'+record.line3;webForm.pca.Elems.Address.value=address;webForm.pca.Elems.Town.value=record.City;webForm.pca.Elems.County.value=record.ProvinceCode||record.ProvinceName||record.AdminAreaName;webForm.pca.Elems.Postcode.value=record.PostalCode;webForm.pca.showAddress();webForm.pca.monitor(true);}}
else{console.log(response);webForm.pca.monitor(false,response);}},error:function(err,status,desc){var msg='A server error has occurred';try{alert(desc+':\n'+err.responseJSON.Message);}
catch(e){}
webForm.pca.monitor(false,msg);}});},select:function(){var $this=$(this);switch($this.data('next')){case'Find':webForm.pca.find({SearchTerm:$.trim(webForm.pca.Elems.Lookup.value),LastId:$this.data('id'),Country:webForm.pca.Elems.Country.value});break;case'Retrieve':webForm.pca.retrieve({Id:$this.data('id')});break;}},monitor:function(success,msg){var url='/pcamonitor?status='+(success?1:0);if(msg||''!='')url+='&msg='+encodeURIComponent(msg);fetch(url);}},validateBrochureCode:function($elem){if($elem.val()==''){alert('Please select a Brochure');return false;}else if($elem.val().split(',').length>3){alert('You have selected too many Brochures.\nIf you require four or more brochures please call '+config.telNum+' to request your copies.');return false;}else
return true;},toggleBrochureSelection:function(e){e.preventDefault();var $toggleButton=$(this);var $brochureCode=$('INPUT[id^=BrochureCode_]');var $ul=$('#brochureSelection');var code='|'+$toggleButton.data('brochure-code');var csv=$brochureCode.val();if(csv.indexOf(code)<0){csv+=code;var $box=$toggleButton.closest('.box');$box.addClass('on');$toggleButton.addClass('remove').html('Remove from brochure order');$ul.append('<li data-code="'+code+'">'+$box.find('H3').text()+'</li>');}else{csv=csv.replace(code,'');$toggleButton.closest('.box').removeClass('on');$toggleButton.removeClass('remove').html('Add to brochure order');$ul.find('LI[data-code=\"'+code+'\"]').remove();}
$brochureCode.val(csv);$ul.find(':first-child').css('display',(csv==''?'':'none'));$('INPUT[type=submit][data-ga-action]').data('ga-label',csv);},thankYouTracking:function(pkcWebForm,requestData,responseData){if(location.search.indexOf('tracking=false')>=0)return;if(config.enableGoogleTagManager&&typeof gtm!=='undefined'){var gtmData={event:'',nonInteraction:0};switch(pkcWebForm){case 1:gtmData.event='enquiryThankYou';break;case 2:gtmData.event='advanceRegistrationThankYou';break;case 3:gtmData.event='callBackRequestThankYou';break;case 5:gtmData.event='newsletterSignup';break;case 6:gtmData.event='contactEnquiryThankYou';break;case 11:gtmData.event='brochureThankYou';break;case 12:gtmData.event='websiteFeedbackThankYou';break;case 15:gtmData.event='independentEnquiryThankYou';break;case 20:gtmData.event='agentRegisterSuccess';break;case 21:gtmData.event='agentRegisterSuccess';break;case 35:gtmData.event='multiUseForm';break;case 201:gtmData.event='enquiryThankYou';break;case 202:gtmData.event='advanceRegistrationThankYou';break;case 203:gtmData.event='newsletterSignup';break;case 204:gtmData.event='contactEnquiryThankYou';break;case 205:gtmData.event='brochureThankYou';break;case 206:gtmData.event='agentRegisterSuccess';break;case 207:gtmData.event='callBackRequestThankYou';break;case 208:gtmData.event='groupsRegistration';break;case 209:gtmData.event='aarpeNewsletter';break;case 219:gtmData.event='genericPartnershipForm';break;}
if(gtmData.event!=''){if(requestData['MasterTourCode']){gtmData.tourCode=requestData['MasterTourCode'];}
if(requestData['BrochureCode']){gtmData.brochureId=requestData['BrochureCode'];}
if(responseData['ClientId']){gtmData.clientId=responseData['ClientId'];}
if(responseData['CustomerType']){gtmData.clientStatus=responseData['CustomerType'];}
if(responseData['ExClientId']){gtmData.exClientId=responseData['ExClientId'];}
if(responseData['ExCustomerType']){gtmData.exClientStatus=responseData['ExCustomerType'];}
dataLayer.push(gtmData);}}
if(requestData['OptInEmail']&&requestData['OptInEmail']===true&&requestData['Email']&&requestData['Email'].indexOf('@')){webForm.addEmailToDotDigital(requestData['Email']);}
if(config.enableMarin&&location.search.indexOf('marin=false')<0){switch(responseData.formName){case 1:case 2:case 4:var creativeCode=(requestData['MasterTourCode']||'').replace(/[0-9]/,'');utag_data={tour_code:creativeCode};break;case 11:utag_data={brochure_code:(requestData['BrochureCode']||'')};break;}}},fixEmailAddress:function(e){var email=e.target?e.target.value:e;email=email.replace(/\s/g,'');email=email.replace(/@@+/g,'@');email=email.replace(/(\.+|\d+)$/,'');email=email.replace(/\.+(ocm|co[n,]|[xv]om|c[ip9]m|ccom|comm|.com|com\.?com|com\.?com\.?com)$/i,'.com');email=email.replace(/\.+(co[-,;]?uk|co\.[yi]k|co\.u[jl,]?|co\.uk+|\.co\.uk)$/i,'.co.uk');email=email.replace(/\.+(ne[ry]|met|net+|.net)$/i,'.net');email=email.replace(/@(g\.mail|gmai|gmial|gmil)\./i,'@gmail.');email=email.replace(/@(hotmial|hottmail)\./i,'@hotmail.');email=email.replace(/@(yah+o+)\./i,'@yahoo.');email=email.replace(/@(nylworld)\./i,'@ntlworld.');email=email.replace(/@(tisvali)\./i,'@tiscali.');email=email.replace(/@(outlo+k)\./i,'@outlook.');email=email.replace(/,/g,'.');if(e.target)e.target.value=email;else return email;},addEmailToDotDigital:function(email){if(typeof dataLayer!='undefined'){dataLayer.push({event:'DotDigital_EmailOptIn',nonInteraction:0});}
(function(w,d,u,t,o,c){w['dmtrackingobjectname']=o;c=d.createElement(t);c.async=1;c.src=u;t=d.getElementsByTagName(t)[0];t.parentNode.insertBefore(c,t);w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments);};})(window,document,'/xr/trackedweb.js','script','dmPt');switch(config.companyID){case 1:window.dmPt('create',config.ddAccountId,'greatrail.com');break;case 3:window.dmPt('create',config.ddAccountId,'raildiscoveries.com');break;case 2020:window.dmPt('create',config.ddAccountId,'vacationsbyrail.com');break;}
window.dmPt('identify',email);window.dmPt('track');},rexEmail:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,validateEmail:function(email){if(typeof email!="string")email=email.val();var returnVal=webForm.rexEmail.test(email);if(returnVal){$.ajax({async:false,timeout:5000,data:JSON.stringify({"email":email}),url:'/webservices/WebForms.asmx/ValidateEmail',type:'POST',contentType:'application/json; charset=utf-8',dataType:'JSON',success:function(response){response=response.d;returnVal=response.isvalid;},error:function(err,status,desc){try{showError(desc+':\n'+err.responseJSON.Message);}
catch(e){showError('A server error has occurred');}}});}
return returnVal;},minimumCharacters:function($field){var fieldLength=$field.val().length;return fieldLength>=20;}};$(document).ready(function(){webForm.init();if($('#divAddressLookup').length==1)webForm.pca.init(0);});
;;;var notifications={slideDuration:250,body:null,items:[],itemIndex:0,init:function(){notifications.body=$('BODY');var geoCulture=window.geoNotification?window.geoNotification.culture:'';var dt=new Date();var timeStamp=''+dt.getMonth()+dt.getDate()+dt.getHours();timeStamp+=(dt.getMinutes()<10)?'0':String(dt.getMinutes()).substr(0,1);if(typeof config=="undefined")return console.warn("config is undefined");$.get('/ajax/notification/',{'visitortype':getVisitorType(),'countrycode':config.countryCode,'geoculture':geoCulture,'ts':timeStamp},function(data){if(data.length>0){var $header=$('HEADER');var nodeId=','+$header.data('node-id')+',';var docType=','+$header.data('node-type')+',';var dismissed=getCookie('notifications')||'';var tourCode=$('a[data-tour-code]').data('tour-code')||'';for(var ix=0;ix<data.length;ix++){var item=data[ix];if(dismissed.indexOf(','+item.id+',')<0){var itemOk=((item.docTypes==''&&item.nodeIds==''&&item.tourCodes=='')||(','+item.docTypes+',').indexOf(docType)>=0||item.nodeIds.indexOf(nodeId)>=0||item.tourCodes.indexOf(','+tourCode+',')>=0);if(itemOk){var $div=$('<div class="notification '+item.className+'">'+item.content+'<a href="#" class="dismiss"></a></div>');if(item.id==-1&&window.geoNotification!==undefined){$div.find('A:first-child').attr('href',window.geoNotification.url).click(function(){setCookie('!s!',geoCulture,0);});}
$div.find('.dismiss').data('notification-id',item.id).click(notifications.showNext);notifications.items.push($div);notifications.body.prepend($div);}}}
if(notifications.items.length>0){notifications.showNext();}}},'json');},showNext:function(e){if(e){e.preventDefault();var dismissed=getCookie('notifications')||',';dismissed+=$(this).data('notification-id')+',';setCookie('notifications',dismissed,0);}
if(notifications.itemIndex>0)notifications.items[notifications.itemIndex-1].slideUp(notifications.slideDuration);if(notifications.itemIndex<notifications.items.length)notifications.items[notifications.itemIndex].slideDown(notifications.slideDuration);notifications.itemIndex++;}}
$(window).on('load',notifications.init);
;;;var size={smallMobile:375,tabletPortrait:768,tabletLandscape:1024,desktop:1280};var svg={previous:'<svg xmlns="http://www.w3.org/2000/svg" width="51" height="51"><g fill="none" fill-rule="evenodd"><circle cx="25.5" cy="25.5" r="25.5" fill="#43485C" fill-opacity=".25"/><path stroke="#FFF" stroke-width="3" d="M29 14L19 25l10 11"/></g></svg>',next:'<svg xmlns="http://www.w3.org/2000/svg" width="51" height="51"><g fill="none" fill-rule="evenodd" transform="rotate(180,25.5,25.5)"><circle cx="25.5" cy="25.5" r="25.5" fill="#43485C" fill-opacity=".25"/><path stroke="#FFF" stroke-width="3" d="M29 14L19 25l10 11"/></g></svg>',star:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><polygon fill="#ffb135" points="7.8,0.1 9.8,6.0 15.7,6.1 11.0,9.8 12.6,15.8 7.8,12.3 3.2,15.8 4.8,9.8 0.1,6.1 6.0,6.0 7.8,0.1 9.8,6.0 " /></svg>',reverse:'<svg xmlns="http://www.w3.org/2000/svg" width="21" height="22"><path fill="#43525C" d="M19.3 3.7H14V1c0-1-1.2-1.5-1.9-.8L7 5.5l5.1 5.2c.7.7 1.9.2 1.9-.8V7.3h5.3c1 0 1.7-.8 1.7-1.8s-.8-1.8-1.8-1.8M7 12v2.6H1.7c-1 0-1.7.8-1.7 1.8s.8 1.8 1.8 1.8H7V21c0 1 1.2 1.5 1.9.8l5.1-5.2-5.1-5.2c-.7-.7-1.9-.2-1.9.8"/></svg>',play:'<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 50 50"><path fill="#FFF" fill-opacity=".7" fill-rule="evenodd" d="M25 0a25 25 0 110 50 25 25 0 010-50zm-6 16v17.6c0 1.9 2 3 3.6 1.8l12-8.8a2.2 2.2 0 000-3.5l-12-8.9c-1.5-1-3.6 0-3.6 1.8z"/></svg>'};var ndc={noScrollTop:150,openPopUp:function(e,$this){$this=$this||$(this);if($this.closest('a').length)$this=$this.closest('a');if($this.attr('target')=='grjPopup'){e.preventDefault();var $a=$(this);var url=$this.data('modal-src')||$this.attr('href');if($a.hasClass('map')){return ndc.newMapPopup(url);}
if(e.target!=null){var tab=$(e.target).data('tab');if(tab!=null&&tab!='')url+='?tab='+tab;}
if(url.indexOf('things-you-should-know/')>=0&&url.indexOf('?tab=')<0){url=url.substr(0,url.length-1).replace('things-you-should-know/','things-you-should-know/?tab=');}
var popUpId='grjPopup-'+(this.id||url);if(popUpId.indexOf('#')>0)popUpId=popUpId.split('#')[0];if(popUpId.indexOf('?')>0)popUpId=popUpId.split('?')[0];popUpId=popUpId.replace(/\W/g,'-');var $div=$('#'+popUpId);if($div.length==0){var isYoutube=url.indexOf('youtube.com/embed')>0;var isPDF=url.indexOf('type=pdf')>0;var pdfViewerURL=window.location.protocol+"//"+window.location.hostname+'/scripts/pdf/web/viewer.html?file=';if(isPDF)url=pdfViewerURL+''+encodeURIComponent(url);var iframeheight=$(window).height()-200;var html='<iframe style="height:'+iframeheight+'px" class="iframeModal'+(isPDF?' pdfModal':'')+(isYoutube?' youtube':'')+'" frameborder="0" src="'+url+(isYoutube?'?autoplay=1&rel=0&enablejsapi=1&modestbranding=1':'')+'"></iframe>';var modalTitle=$this.data('modal-title');if(modalTitle===undefined||modalTitle==''){if(url.indexOf('accreditations')>0)modalTitle='Accreditations';else if(url.indexOf('things-you-should-know')>0)modalTitle='Things you should know';else if(url.indexOf('print-tour')>0)modalTitle='Print Tour';else if(url.indexOf('contactpopup')>0)modalTitle='Contact Great Rail Journeys';else if(url.indexOf('e-brochures')>0)modalTitle='View E-Brochure';else if(url.indexOf('/media/')>=0)modalTitle='Tour Map';else if(url.indexOf('youtube.com/embed')>0)modalTitle='Tour Video';}
if(url.indexOf('.jpg')>0||url.indexOf('.png')>0)html='<img src="'+url+'" alt="'+modalTitle+'" style="width:100%"/>';$div=$('<div id="'+popUpId+'" class="grjPopup iframe">'
+'<a href="#" class="closeButton"><span>Close</span></a>'
+'<div class="contentHolder"><h3>'+modalTitle+'</h3>'
+html
+'</div>').appendTo('body');if(modalTitle=='Map'||modalTitle=='Tour Map')$div.attr('style','max-width:900px;');}
$a.popupBox({'popupBox':$div});$div.find('img, iframe').on('load',function(){$a.popupBox('rePosition');});if(url.indexOf('tab')>0){var $elem=$div.find('[src]');if($elem.attr('src')!=url)$elem.attr('src',url);}}},newMapPopup:function(url){var popUpId='newMapPopup-'+url.replace(/\W/g,'-');var $div=$('#'+popUpId);if($div.length==0){$div=$('<div id="'+popUpId+'" class="newMapPopup">'+'<button class="close"></button>'+'<h3>Map</h3>'+'<img src="'+url+'" alt="Tour Map"/>'+'</div>').appendTo('body').hide();$div.find('.close').click(function(){var $this=$(this);$this.closest('.newMapPopup').fadeOut();});}
$div.fadeIn();}};$(document).ready(function(){var querystring=location.search.split('&');for(var i=0;i<querystring.length;i++){var item=querystring[i].replace('?','').split('=');if(item.length==2&&'msclkid,fbclid,gclid'.indexOf(item[0])>=0&&item[1]!=''){setCookie(item[0],item[1],90);break;}}
$('head link[data-defer]').each(function(ix){var $defer=$('<link id="defercss'+ix+'" type="text/css" rel="stylesheet" href="'+$(this).data('defer')+'" >');$defer.on('load',function(){tabbedSlider.init();promoPanel.init();accordion.init();recentlyViewedSlider.init();reviewSlider.init();favourites.init();similarToursSlider.init();fullWidthCarousel.init();listAndContent.init();tabbedContent.init();nsu.init();tourHighlightCarousel.init();lazyLoad.go();if($('#tourListing').length)tourListing.equaliseHeight();initInlineGallery($('.inlineGallery.Simple, .inlineGallery.DeckPlan'));$('a[data-showreverseitinerary=1]').click();tourItinerary.equaliseHeight();});$defer.appendTo('head');});var $body=$('body');$body.find('A[target=grjPopup]').click(ndc.openPopUp);function scroll(){$body.toggleClass('noscroll',$(window).scrollTop()<=ndc.noScrollTop);}
if(typeof Touch=='object')
document.addEventListener('touchmove',scroll,false);else
$(window).scroll(scroll);if($body.hasClass('bookingJourney')){$('.summaryDesktop.sideCol').append($('#paymentLogos'));}
$('.readMore a:first-child').click(function(e){var $this=$(this);var $div=$this.closest('p').next('div');if($div.length&&!$div.is(':visible')){e.preventDefault();$this.hide();$div.slideDown();}});$('.viewMoreNav select').change(function(e){var href=$(this).val().trim();if(href!='')location.href=href;});$('.map.heroSection a').mouseenter(function(e){if(!$(this).hasClass('on')){$('.'+$(this).data('class')).addClass('on');}}).mouseleave(function(e){if($(this).hasClass('on')){$('.'+$(this).data('class')).removeClass('on');}})});$(window).on('load',function(){gtm.waitForTourListing=(document.getElementById('tourListing')!=null);gtm.waitForCarousel=(document.getElementsByClassName('tabbedSlider')!=null);gtm.waitForHighlightCarousel=(document.getElementsByClassName('tourHighlightCarousel')!=null);gtm.setupWait(0);var filter='[data-visitor-type!="'+getVisitorType()+'"]';$('nav a[data-visitor-type]').filter(filter).remove();$('.row[data-visitor-type]').filter(filter).remove();$('footer a[data-visitor-type]').filter(filter).remove();if(typeof config.cookieProID!='undefined'&&config.cookieProID!=''){$('button').each(function(){if(this.innerText=='Cookie Settings'){this.setAttribute('id','ot-sdk-btn');this.classList.add('ot-sdk-show-settings');return false;}});$('head').append('<script src="https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="'+config.cookieProID+'" ></script>');}});function OptanonWrapper(){}
var megaMenu={mobileHtml:null,initWait:0,isOpen:false,init:function(){if(megaMenu.initWait==0){$('header li[data-visitor-type]').css('display','inline-block').filter('[data-visitor-type!="'+getVisitorType()+'"]').remove();}
if(typeof ndcMenu==='undefined'){if(megaMenu.initWait>10){console.warn('megaMenu.init','Waited too long for ndcMenu data to be available');}
else{setTimeout(megaMenu.init,100);megaMenu.initWait++;}
return;}
$('header .menu').click(megaMenu.toggleMobileMenu);$('header a[data-ndcmenu]').click(megaMenu.toggleMenu);$(document).click(megaMenu.documentClick);},toggleMobileMenu:function(){if(megaMenu.mobileHtml==null){var itemHtml=megaMenu.generateMobileItems(ndcMenu);megaMenu.mobileHtml=$('<div class="mobilemenu"><ul>'+itemHtml+'</ul></div>');megaMenu.mobileHtml.click(megaMenu.clickMobileMenu);$('header').append(megaMenu.mobileHtml);$('.mobilemenu .fav').on('click',favourites.headerClick);}
if(megaMenu.mobileHtml.is(':visible')){megaMenu.mobileHtml.slideUp();$('header .menu').removeClass('open');}
else{megaMenu.mobileHtml.slideDown();$('header .menu').addClass('open');siteSearch.close();openingHours.close();tourSearch.close();$('.megamenu:visible').slideUp();$('nav a.open').removeClass('open');}},toggleMenu:function(e){e.preventDefault();var a=$(this);if(a.hasClass('open')){megaMenu.close();return;}
var menuId=a.data('ndcmenu');$('.megamenu[data-ndcmenu!='+menuId+']').slideUp();$('nav a[data-ndcmenu!='+menuId+'].open').removeClass('open');var menu=$('.megamenu[data-ndcmenu='+menuId+']');if(menu.length==0){menu=$('<div class="megamenu" data-ndcmenu="'+menuId+'"><div class="siteWidth">'+megaMenu.generateItems(menuId)+'</div></div>');menu.find('a[data-ndcmenu]').click(megaMenu.clickMenu);$('header').append(menu);}
a.addClass('open');menu.slideDown();openingHours.close();siteSearch.close();if(megaMenu.mobileHtml!=null&&megaMenu.mobileHtml.is(':visible')){megaMenu.mobileHtml.slideUp();$('header .menu').removeClass('open');}},generateItems:function(menuId){var menu=ndcMenu;var toplevel='';var submenu='';for(var z in menu){if(menu[z].id==menuId&&typeof menu[z].children!=='undefined'&&menu[z].children.length>0){for(var y in menu[z].children){var columnGroup=menu[z].children[y];if(typeof columnGroup.children!=='undefined'&&columnGroup.children.length>0){submenu+='<div class="columnGroup" style="display:none" data-ndcmenu="'+columnGroup.id+'">';toplevel+='<li><a href="'+(columnGroup.link||'#')+'" data-ndcmenu="'+columnGroup.id+'">'+columnGroup.text+'</a></li>';for(var x in columnGroup.children){var column=columnGroup.children[x];if(typeof column.children!=='undefined'&&column.children.length>0){submenu+='<ul>';for(var v in column.children){var columnHeader=column.children[v];submenu+='<li class="heading"><a href="'+(columnHeader.link||'#')+'">'+columnHeader.text+'</a></li>';if(typeof columnHeader.children!=='undefined'&&columnHeader.children.length>0){for(var u in columnHeader.children){var columnItem=columnHeader.children[u];submenu+='<li><a href="'+(columnItem.link||'#')+'">'+columnItem.text+'</a></li>';}}}
submenu+='</ul>';}}
if(columnGroup.children.length<4&&typeof columnGroup.promoLink!=='undefined'){var cssClass='promo';if(columnGroup.promoAlign=='Right')cssClass+=' right';submenu+='<ul class="'+cssClass+'">';submenu+='<li><a href="'+columnGroup.promoLink+'">';submenu+='<img src="'+columnGroup.promoImage+'" alt="'+columnGroup.promoTitle.replace('"','&quot;')+'" />';submenu+='<p class="heading">'+columnGroup.promoTitle+'</p>';submenu+='<p>'+columnGroup.promoDesc+'</p>';submenu+='</a></li>';submenu+='</ul>';}
submenu+='</div>';}else if(columnGroup.link){var attr=columnGroup.linkExternal?' target="_blank"':'';attr+=' style="background-image:none;padding-right:0;"'
toplevel+='<li><a href="'+columnGroup.link+'"'+attr+'>'+columnGroup.text+'</a></li>';}}}}
return'<ul>'+toplevel+'</ul><div>'+submenu+'</div>';},close:function(){if(megaMenu.mobileHtml!=null&&megaMenu.mobileHtml.is(':visible')){megaMenu.mobileHtml.slideUp();$('header .menu').removeClass('open');}
$('.megamenu:visible').slideUp();$('nav a.open').removeClass('open');megaMenu.isOpen=false;},generateMobileItems:function(data,parent,parentId){var device=$(window).width()<size.tabletPortrait?'Mobile':'Tablet';var html='';var liClass='';var isTop=(typeof parent==='undefined'||parent==null);if(isTop){liClass=' class="parent"';}
else{html+='<li class="parent back"><a href="'+(parent.link||'#')+'" data-ndcmenu="'+parentId+'" data-ga-category="MobileMenu">'+parent.text+'</a></li>';}
for(var ix in data){var item=data[ix];if(typeof item==='undefined'||(typeof item.device!=='undefined'&&item.device.indexOf(device)<0))
continue;html+='<li'+liClass+'><a href="'+(item.link||'#')+'"';if(typeof item.children!=='undefined'&&item.children.length>0){html+=' data-ndcmenu="'+item.id+'" class="children"';}
if(item.linkExternal){html+=' target="_blank"';}
html+=' data-ga-category="MobileMenu">'
if(typeof item.svg!=='undefined')html+=item.svg;html+=item.text+'</a></li>';}
if(isTop){html+='<li'+liClass+'><a href="#" class="fav" data-ga-category="MobileMenu">'
html+=config.companyID==2020?'Favorites':'Favourites';html+='<svg width="25" height="19" xmlns="http://www.w3.org/2000/svg" class="on"><path d="m12.5 18 9.3-8.7a4.5 4.5 0 0 0 0-6.7 5.6 5.6 0 0 0-7.4 0l-1.9 1.7-1.8-1.8a5.6 5.6 0 0 0-7.5 0 4.5 4.5 0 0 0 0 6.8l9.3 8.6z" stroke-width="2" stroke="#23396a" fill="none"></path></svg>';html+='</a></li>';}
return html;},clickMenu:function(e){e.preventDefault();var $a=$(e.target);var $li=$a.closest('li');if($li.hasClass('open')){$li.removeClass('open');var menuId=$a.data('ndcmenu');var $megamenu=$li.closest('.megamenu');$megamenu.find('div[data-ndcmenu='+menuId+']').slideUp();megaMenu.isOpen=false;}
else{$li.closest('ul').children('.open').removeClass('open');$li.addClass('open');var menuId=$a.data('ndcmenu');var $megamenu=$li.closest('.megamenu');$megamenu.find('div.columnGroup[data-ndcmenu!='+menuId+']').slideUp();$megamenu.find('div[data-ndcmenu='+menuId+']').slideDown();megaMenu.isOpen=true;}},clickMobileMenu:function(e){var $a=$(e.target);if($a.data('ndcmenu')>=0){e.preventDefault();var menuId=$a.data('ndcmenu');var menuHtml='';if(menuId==0){menuHtml=megaMenu.generateMobileItems(ndcMenu);}
else{menuHtml=megaMenu.recurseMobileMenu(ndcMenu,menuId,0);}
if(menuHtml!='')megaMenu.mobileHtml.find('ul').html(menuHtml);else console.warn('clickMobileMenu could not find the menuId',menuId);}},recurseMobileMenu:function(data,menuId,defaultParentId){for(var ix in data){var parentId=defaultParentId;var item=data[ix];if(typeof item==='undefined')continue;var childData=[];for(var iy in item.children){var childItem=item.children[iy];if(typeof childItem.type!=='undefined'&&childItem.type==='Column'){if(typeof childItem.children!=='undefined'&&childItem.children.length>0){for(var iz in childItem.children){childData.push(childItem.children[iz]);}}}
else
childData.push(childItem);}
if(menuId==item.id){return megaMenu.generateMobileItems(childData,item,parentId);}
else if(typeof item.children!=='undefined'){var html=megaMenu.recurseMobileMenu(childData,menuId,item.id);if(html!='')return html;}}
return'';},documentClick:function(e){if(megaMenu.isOpen&&$(e.target).closest('header').length==0){megaMenu,megaMenu.close();}}};$(window).on('load',megaMenu.init);var siteSearch={$textbox:null,init:function(){var $form=$('header .main form');siteSearch.$textbox=$form.find('[type="search"]');$form.find('[type="submit"]').on('click',siteSearch.submitClick);},submitClick:function(e){if(!siteSearch.$textbox.hasClass('open')){var $logo=siteSearch.$textbox.closest('header').find('.logo');var width=window.innerWidth
-82
-$logo.offset().left
-$logo.width();width=window.innerWidth
-82
-$logo.offset().left
-$logo.width()
-50;width=Math.max(Math.min(width,500),260);siteSearch.$textbox.css('width',width+'px').addClass('open').focus();megaMenu.close();openingHours.close();}
else if(siteSearch.$textbox.val()==''){siteSearch.close();}
else{return;}
e.preventDefault();if(typeof dataLayer!='undefined'){dataLayer.push({event:'pageClick',action:'click',category:'Header',label:'ToggleSiteSearch',nonInteraction:1});}},close:function(){if(siteSearch.$textbox!=null){siteSearch.$textbox.css('width','').removeClass('open');}}};var siteSearchOld={form:null,textbox:null,init:function(){siteSearchOld.form=$('form.search');siteSearchOld.textbox=siteSearchOld.form.find('input[type="search"]');siteSearchOld.form.find('.search').click(function(e){if(siteSearchOld.form.hasClass('open')){if($.trim(siteSearchOld.textbox.val()).length>0){return true;}
else
siteSearchOld.form.removeClass('open').css('left','auto');}
else{if($(window).width()>=size.desktop){var div=$(this).closest('div');var logoWidth=div.children('a').outerWidth(true);siteSearchOld.form.css('left',logoWidth+'px');}
else
siteSearchOld.form.css('left','0');siteSearchOld.form.addClass('open');siteSearchOld.textbox.focus();megaMenu.close();openingHours.close();}
e.preventDefault();if(typeof dataLayer!='undefined'){dataLayer.push({event:'pageClick',action:'click',category:'Header',label:'ToggleSiteSearch',nonInteraction:1});}});},close:function(){if(siteSearchOld.form.hasClass('open')){siteSearchOld.form.removeClass('open').css('left','auto');}}};$(window).on('load',function(){var variant=$('header').data('variant');switch(variant){case 0:siteSearchOld.init();break;case 1:siteSearch.init();break;}});var openingHours={html:null,btn:null,initWait:0,init:function(){if(typeof openingHoursData==='undefined'){if(openingHours.initWait>20){console.warn('openingHours.init','Waited too long for openingHoursData to be available');}
else{setTimeout(openingHours.init,100);openingHours.initWait++;}
return;}
if(openingHours.html==null){var innerHtml='';var dynamicOpeningTimes='';var isMobile=MobileEsp.DetectTierIphone();for(var i=0;i<openingHoursData.length;i++){if(i>1)break;innerHtml+='<ul>';var dayData=openingHoursData[i].dayData;var title=openingHoursData[i].title;if(config.timeZone!=='')title+=' <i>('+config.timeZone+')</i>';innerHtml+='<li>'+title+'</li>';var startDay='';for(var ix=0;ix<dayData.length;ix++){var nextIx=ix+1;if(nextIx<dayData.length&&dayData[ix].open==dayData[nextIx].open&&dayData[ix].close==dayData[nextIx].close){if(startDay=='')startDay=dayData[ix].name;}
else if(startDay!=''){innerHtml+='<li>'
+startDay+' - '+dayData[ix].name
+'<i>'+(dayData[ix].open==dayData[ix].close?dayData[ix].open:dayData[ix].open+' - '+dayData[ix].close)+'</i>'
+'</li>';startDay='';}
else{innerHtml+='<li>'
+dayData[ix].name
+'<i>'+(dayData[ix].open==dayData[ix].close?dayData[ix].open:dayData[ix].open+' - '+dayData[ix].close)+'</i>'
+'</li>';}}
{var buttonClass=i==0?'button':'button tertiary';var telNumClass=i==0?' class="telNumber"':'';var telNum=openingHoursData[i].telNumber;if(telNum==''&&config.telNum)telNum=config.telNum;innerHtml+='<li>'
+(isMobile?'<a href="tel:'+telNum+'"':'<span')
+' class="'+buttonClass+'">'+openingHoursData[i].buttonText+' <br/><b'+telNumClass+'>'+telNum+'</b>'
+(isMobile?'</a>':'</span>')
+'</li>';}
innerHtml+='</ul>';if(dynamicOpeningTimes=='')dynamicOpeningTimes=innerHtml;}
openingHours.html=$('<div class="openinghours">'+innerHtml+'</div>');var $ul=openingHours.html.find('ul');if($ul.length>1){var diff=$ul[0].children.length-$ul[1].children.length;var liHtml='';for(i=Math.abs(diff);i>0;i--)liHtml+='<li>&nbsp;</li>';if(diff<0){$ul.first().find('li').last().prepend(liHtml);}
else if(diff>0){$ul.last().find('li').last().prepend(liHtml);}}
if(typeof config.enableResponseTap!='undefined'&&config.enableResponseTap)
window.setTimeout(function(){$('.openinghours .button[href], .telNumber[href]').attr('href','tel:'+config.telNum);$('.openinghours .telNumber').text(config.telNum);},2100);$('.dynamicOpeningTimes').each(function(){var $this=$(this);var pTag=$this.closest('p');if(pTag.length){pTag.replaceWith(dynamicOpeningTimes);}else{$this[0].innerHTML=dynamicOpeningTimes;}});$('header').append(openingHours.html);openingHours.btn=$('header .phone');openingHours.btn.click(openingHours.toggle);}},toggle:function(){if(openingHours.btn.hasClass('open'))
openingHours.close();else{openingHours.btn.addClass('open');openingHours.html.slideDown();megaMenu.close();siteSearch.close();}},close:function(){if(openingHours.btn.hasClass('open')){openingHours.btn.removeClass('open');openingHours.html.slideUp();}}};$(window).on('load',openingHours.init);var tourSearch={data:null,initWait:0,init:function(){var $tourSearch=$('#tourSearch');if($tourSearch.length==0)return;$tourSearch.find('select').change(tourSearch.updateControls);$('.tourSearch .toggle').click(tourSearch.toggleMenu);if($tourSearch.data('showinhero')){var $tourSearchClone=$tourSearch.clone(true).addClass('tourSearch');$tourSearchClone.attr('id',$tourSearchClone.attr('id')+'Hero').find('[id]').each(function(){$(this).attr('id',$(this).attr('id')+'Hero');});$tourSearchClone.find('[for]').each(function(){$(this).attr('for',$(this).attr('for')+'Hero');});$tourSearchClone.appendTo('.heroSection, .hero');ndc.noScrollTop=$tourSearchClone.offset().top+$tourSearchClone.height();$(window).resize(function(){ndc.noScrollTop=$tourSearchClone.offset().top+$tourSearchClone.height();});}
var dt=new Date();var timeStamp=''+dt.getMonth()+dt.getDate()+(dt.getHours()<14?'A':'P');if(tourSearch.data==null){var request=new XMLHttpRequest();var requestUrl=$tourSearch.data('url')+'?ts='+timeStamp;request.onreadystatechange=function(){if(request.readyState===4&&request.status===200){try{tourSearch.data=JSON.parse(request.responseText);}
catch(ex){console.warn('tourSearch.init(): Error parsing tour data',ex);}
tourSearch.populateControls();if(typeof gtm!=='undefined'){gtm.waitForTourSearch=false;}}};request.open('GET',requestUrl,true);request.send(null);}},populateControls:function(){if(tourSearch.data==null)return;var data=tourSearch.data;var whereOptions='';var featuredOptions='';for(var i=0;i<data.continents.length;i++){var opts='';var continentName=data.continents[i].name;var countries=data.continents[i].countries;for(var j=0;j<countries.length;j++){if(!countries[j].hide){opts+='<option value="'+countries[j].id+'">'+countries[j].name+'</option>';}
if(countries[j].featured){featuredOptions+='<option value="'+countries[j].id+'">'+countries[j].name+'</option>';}}
if(opts!=''&&continentName!=''){whereOptions+='<optgroup label="'+continentName+'">'+opts+'</optgroup>';}}
if(featuredOptions!=''){whereOptions='<optgroup label="Featured">'+featuredOptions+'</optgroup>'+whereOptions;}
whereOptions='<option value="">'+((config||false?config.searchBar_whereAny:null)||'Any destination')+'</option>'+whereOptions;$('.tourSearch .where select').html(whereOptions);var whenOptions='<option value="">'+((config||false?config.searchBar_whenAny:null)||'Any month')+'</option>';for(var i=0;i<data.months.length;i++){whenOptions+='<option value="'+data.months[i].id+'">'+data.months[i].name+'</option>';}
$('.tourSearch .when select').html(whenOptions);var typeOptions='<option value="">'+((config||false?config.searchBar_typeAny:null)||'Any type')+'</option>';for(var i=0;i<data.types.length;i++){if(typeof data.types[i].hide!='undefined'&&data.types[i].hide)continue;typeOptions+='<option value="'+data.types[i].id+'">'+data.types[i].name+'</option>';}
$('.tourSearch .type select').html(typeOptions);var preselect=$('#tourSearch').data('preselect')||location.search||'';if(preselect!=''){if(preselect.indexOf('?')==0)preselect=preselect.substr(1);var querystring=preselect.split('&');for(var i=0;i<querystring.length;i++){var item=querystring[i].split('=');if(item.length==2&&'where,when,type'.indexOf(item[0])>=0){var values=item[1].split(',').filter(function(v){return v.trim()!=''&&!isNaN(v);});if(values.length){$('.tourSearch .'+item[0]+' select').val(values[0]).change();}}}}},updateControls:function(e){var tours=tourSearch.data.tours;var $form=(typeof e=='undefined')?$(this).closest('form'):$(e.target).closest('form');var criteria={where:Number($form.find('.where select').val()),when:Number($form.find('.when select').val()),type:Number($form.find('.type select').val())};$form.find('option[value!=""]').attr('disabled','disabled');if(tours.length){for(var i=tours.length;i--;i>=0){var tour=tours[i];if((criteria.where==0||tour.where.indexOf(criteria.where)>=0)&&(criteria.type==0||tour.type.indexOf(criteria.type)>=0)&&(criteria.when==0||tourSearch.whenContainsMonth(tour.when,criteria.when))){if(tour.where.length){var $opts=$form.find('.where option[value!=""]');for(var j=0;j<tour.where.length;j++){$opts.filter('[value='+tour.where[j]+']').removeAttr('disabled');}}
if(tour.when.length){var $opts=$form.find('.when option[value!=""]');for(var j=0;j<tour.when.length;j++){$opts.filter('[value='+tour.when[j].month+']').removeAttr('disabled');}}
if(tour.type.length){var $opts=$form.find('.type option[value!=""]');for(var j=0;j<tour.type.length;j++){$opts.filter('[value='+tour.type[j]+']').removeAttr('disabled');}}}}}
if(typeof dataLayer!='undefined'&&this.tagName=='SELECT'&&this.selectedIndex>0){dataLayer.push({event:'pageClick',action:'click',category:'TourSearch:'+this.name,label:this.options[this.selectedIndex].text,nonInteraction:1});}},whenContainsMonth:function(lst,month){for(i=lst.length;i--;i>=0){if(lst[i].month==month)return true;}
return false;},toggleMenu:function(e){var $this=$(this);if($this.hasClass('open')){tourSearch.close();}
else{$this.addClass('open');$('#tourSearch ul').slideDown();}},close:function(){if($('.tourSearch .toggle').is(':visible')){$('.tourSearch .toggle').removeClass('open');$('#tourSearch ul').slideUp();}}};$(window).on('load',tourSearch.init);var heroSection={scrollTimer:null,scrollDelay:0,slides:typeof heroSectionSlides!='undefined'?heroSectionSlides:'',slideIndex:0,init:function(){var $heroSection=$('.heroSection');if($heroSection.length==0)return;var visitorType=getVisitorType();var $slides=$(heroSection.slides);$slides.find('.heroSlide[data-visitortype!=""][data-visitortype!="'+visitorType+'"]').remove();$slides.find('.h1, .h2, a').each(function(){var $this=$(this);var html=$this.html();if(html.indexOf('[')>=0&&html.indexOf(']')>=0){html=html.replace(/\[/g,'<b>').replace(/\]/g,'</b>');$this.html(html);}});if(heroSection.slides.length>0){var layout=$heroSection.data('layout');if(layout=='AB Test'){layout=getCookie('hsl');if(layout==null)layout=Math.round(Math.random())?'A':'B';setCookie('hsl',layout);}
var useGrid=(layout=='B'&&screen.availWidth>=1024);if(useGrid){$heroSection.addClass('grid');var $hero=$heroSection.parent();$hero.addClass('siteWidth');var $divGrid=$('<div class="grid"></div>');$divGrid.append($slides);$heroSection.append($divGrid);var $gallery=$hero.find('.float .gallery');if(typeof $heroSection.data('galleryitems')!='undefined'){var galleryId='heroSectionGallery';var gaLabel='HeroSectionGallery ';var tourCode=$('a[data-tour-code]').data('tour-code');if(typeof tourCode!='undefined')gaLabel='Gallery '+tourCode+' ';$heroSection.find('.heroSlide:visible').css('cursor','pointer').each(function(ix){$(this).data('ga-label',gaLabel+(ix+1)).click(function(){openModalGallery(galleryId,$heroSection.data('galleryitems'),undefined,ix);});});if($gallery.length){$gallery.addClass('attached').off('click').on('click',function(e){e.preventDefault();openModalGallery(galleryId,$heroSection.data('galleryitems'));});}}
if(config.companyID==2020){$divGrid.find('.heroSlide:nth-of-type(2)').append('<span class="viewGallery"><svg width="30" height="30" xmlns="http://www.w3.org/2000/svg"><path fill="#FFF" d="M24.3 11.6a1.1 1.1 0 01-1.2-1.1 1.1 1.1 0 011.2-1.1 1.1 1.1 0 011.2 1.1 1.1 1.1 0 01-1.2 1.1M15 22.3a5.7 5.7 0 01-5.8-5.6c0-3.1 2.6-5.6 5.8-5.6 3.2 0 5.8 2.5 5.8 5.6s-2.6 5.6-5.8 5.6M25.5 6h-3l-2.2-3.4H9.7L7.4 6H4.5C2.6 6 1.1 7.5 1.1 9.4V24c0 1.9 1.5 3.4 3.4 3.4h21c1.9 0 3.4-1.5 3.4-3.4V9.4C29 7.5 27.4 6 25.5 6"></path></svg> Gallery</a>');var $map=$hero.find('.float .map');if($map.length){$divGrid.find('.heroSlide:nth-of-type(n + 4)').remove();var $divMap=$('<div class="heroSlide map"></div>').css('background-image','url('+$map.attr('href')+')').css('cursor','pointer').click(function(){ndc.newMapPopup($map.attr('href'));});$divGrid.append($divMap);}
$hero.find('.float').hide();}
else{if($gallery.length||$heroSection.find('.heroSlide').length){if(document.querySelector('.pswp')===null){initModalGalleryButtons(true);}}
$hero.find('.float').css('right','20px');}}
else{layout='A';$heroSection.append($slides);var dotsHtml='';heroSection.$slides=$heroSection.children('.heroSlide');heroSection.$slides.each(function(ix){if(ix==heroSection.slideIndex)$(this).css('z-index',4);else $(this).css('opacity',0).hide();dotsHtml+='<li><a href="#" data-slide="'+ix+'"'+(ix==heroSection.slideIndex?' class="on"':'')+'></a></li>';});$heroSection.append('<a href="#" class="handle prev" data-ga-label="Left">'+svg.previous+'</a><a href="#" class="handle next" data-ga-label="Right">'+svg.next+'</a>').append('<ul class="dots">'+dotsHtml+'</ul>').click(heroSection.click)
var scrolldelay=$heroSection.data('scrolldelay')
if(typeof scrolldelay=='number'&&scrolldelay>0){heroSection.scrollDelay=scrolldelay*1000;heroSection.scrollTimer=window.setTimeout(heroSection.autoScroll,heroSection.scrollDelay);}}
if(typeof dataLayer!=='undefined'){dataLayer.push({heroSectionLayout:layout});}}
$heroSection.find('a[data-video-url]').html(svg.play).click(heroSection.clickVideo).after('<br/>');var $backgroundVideo=$heroSection.find('.backgroundVideo');if(typeof $backgroundVideo.data('hls')!='undefined'){$.getScript('/scripts/3rdparty/hls.min.js').done(function(){var video=$backgroundVideo[0];var isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);var addVideoControls=false;if(Hls.isSupported()&&!isSafari){var hls=new Hls();hls.loadSource($backgroundVideo.data('hls'));hls.attachMedia(video);addVideoControls=true;}
else if(video.canPlayType('application/vnd.apple.mpegurl')){video.src=$backgroundVideo.data('hls');addVideoControls=true;}
var $ctrls=$('<div class="ctrls">'+'<a title="Play background video">'+svg.play+'</a>'+'</div>').hide();$ctrls.on('click',function(e){e.preventDefault();e.stopPropagation();$ctrls.hide();video.play();});$backgroundVideo.after($ctrls);if(!video.loop){if(typeof heroSection.$slides!='undefined'){clearTimeout(heroSection.scrollTimer);video.addEventListener('ended',heroSection.autoScroll);}
else{video.addEventListener('ended',function(){try{video.autoplay=false;if(Hls.isSupported()&&!isSafari){var hls=new Hls();hls.loadSource($backgroundVideo.data('hls'));hls.attachMedia(video);}
else{video.load();}}catch{}
$ctrls.show();});}}
if(!video.autoplay){$ctrls.show();}}).fail(function(jqxhr,settings,exception){console.log('heroSection backgroundVideo failed to load hls script',{jqxhr:jqxhr,settings:settings,exception:exception});});}
$('.countdown[data-utcexpires]').each(function(){var expires=new Date($(this).data('utcexpires'));var now=new Date();var diff=expires.getTime()-now.getTime();heroSection.countdown(this,diff);});},autoScroll:function(){heroSection.showSlide(heroSection.slideIndex+1);},click:function(e){var $elem=$(e.target);if($elem.closest('a').length)$elem=$elem.closest('a');var newIndex=null;if($elem.data('slide')>=0)newIndex=$elem.data('slide');else if($elem.hasClass('next'))newIndex=heroSection.slideIndex+1;else if($elem.hasClass('prev'))newIndex=heroSection.slideIndex-1;if(newIndex!=null){e.preventDefault();heroSection.showSlide(newIndex);}},swipe:function(e,dir){var newIndex=null;switch(dir){case'left':newIndex=heroSection.slideIndex+1;break;case'right':newIndex=heroSection.slideIndex-1;break;}
if(newIndex!=null){heroSection.showSlide(newIndex);}},showSlide:function(ix){if(ix<0)ix=heroSection.$slides.length-1;else if(ix>=heroSection.$slides.length)ix=0;if(ix==heroSection.slideIndex)return;var oldSlide=heroSection.$slides[heroSection.slideIndex];var newSlide=heroSection.$slides[ix];oldSlide.style.zIndex=4;newSlide.style.zIndex=3;newSlide.style.opacity=1;newSlide.style.display='block';oldSlide.style.opacity=0;setTimeout(function(){oldSlide.style.zIndex=2;oldSlide.style.display='none';$('.heroSection .dots .on').removeClass('on');$('.heroSection .dots [data-slide='+ix+']').addClass('on');heroSection.slideIndex=ix;},250);var video=null;var videoCollection=newSlide.getElementsByTagName('video');if(videoCollection.length){video=videoCollection[0];if(video.ended&&video.autoplay&&!video.loop){video.play();}}
if(heroSection.scrollDelay>0){clearTimeout(heroSection.scrollTimer);if(video&&!video.loop){video.addEventListener('ended',heroSection.autoScroll);}
else{heroSection.scrollTimer=window.setTimeout(heroSection.autoScroll,heroSection.scrollDelay+250);}}},countdown:function(el,ms){if(ms>0){var diff=ms;var days=Math.floor(diff/(1000*60*60*24));diff-=days*(1000*60*60*24);var hours=Math.floor(diff/(1000*60*60));diff-=hours*(1000*60*60);var mins=Math.floor(diff/(1000*60));diff-=mins*(1000*60);var secs=Math.floor(diff/(1000));diff-=secs*(1000);el.innerHTML='<span>'+days+' day'+(days==1?'':'s')+' :</span> '
+'<span>'+hours+' hour'+(hours==1?'':'s')+' :</span> '
+'<span>'+mins+' min'+(mins==1?'':'s')+'</span>';var delay=10000;setTimeout(function(){heroSection.countdown(el,ms-delay);},delay);}
else{el.innerHTML='<span>0 days :</span> <span>0 hours :</span> <span>0 mins</span>';}},clickVideo:function(e){e.preventDefault();openVideoModal($(this).data('video-url'));}};$(window).on('load',heroSection.init);var tabbedSlider={restartAutoScroll:false,data:typeof tabbedSliderData!='undefined'?tabbedSliderData:{},svgPlaceholder:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='290' height='200' style='background:%23f0f8f0'%3E%3C/svg%3E",init:function(){var $tabbedSlider=$('.tabbedSlider');if($tabbedSlider.length==0)return;$tabbedSlider.click(tabbedSlider.click).each(function(){var $this=$(this);var data=tabbedSlider.data['$'+$this.data('node-id')];if(typeof data==='object'){tabbedSlider.initTabs($this,data);}
$this.find('section .tours').append('<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>');setTimeout(function(){tabbedSlider.equaliseHeight($this);},400);$(window).resize(function(){tabbedSlider.equaliseHeight($this);});});$tabbedSlider.find('.badge[title]').infoBox({position:'center'});var $tours=$tabbedSlider.find('section:visible');gtm.setupTourListings($tours,false);gtm.waitForCarousel=false;$tours.data('tracked',true);tabbedSlider.scrollDelay=$tabbedSlider.data('scroll-delay')||0;if(typeof tabbedSlider.scrollDelay=='number'&&tabbedSlider.scrollDelay>0){tabbedSlider.scrollDelay*=1000;tabbedSlider.timeout=setTimeout(tabbedSlider.clickScrollHandle,tabbedSlider.scrollDelay);}
$tours.find('div[title]').infoBox({position:'center'});},click:function(e){var $elem=$(e.target);if($elem.data('tab')>0)
tabbedSlider.selectTab(e,$elem);else{if($elem.closest('a').length)
$elem=$elem.closest('a');if($elem.hasClass('handle')){tabbedSlider.clickScrollHandle(e,$elem);}
else{tabbedSlider.equaliseHeight($elem.closest('.tabbedSlider'));}}},initTabs:function($tabbedSlider,data){for(var x=0;x<data.length;x++){var html='<section data-tab="'+data[x].tab+'" style="display:none">';html+='<div class="tours">';for(var y=0;y<data[x].tours.length;y++){html+=tabbedSlider.getTourHtml(data[x].tours[y],y+1,'Tabbed slider',data[x].name);}
html+='</div>';if(typeof data[x].viewmorelink!='undefined'){html+='<div class="viewMore"><a href="'+data[x].viewmorelink+'" data-ga-action="View all" data-ga-label="'+data[x].name+'">'+data[x].viewmoretext+'</a></div>';}
html+='</section>';$tabbedSlider.find('.siteWidth').append(html);}
$tabbedSlider.find('select').change(tabbedSlider.selectTab);if(favourites&&favourites.initElems)favourites.initElems($tabbedSlider.find('.tour'));if(geo.userCulture=='en-AU'){$('.tour[data-istravelmarvel] .price').text('On request');}
if(data.length<3){var shortlist=(getCookie('shortlist')||'').split(',').sort();var recentlyViewed=(getCookie('recentlyViewed')||'').split(',').sort();var tabTitle='Late available tours';var requestData={countrycode:config.countryCode};if(shortlist.length>1){tabTitle=config.countryCode=='uk'&&config.companyID!=2020?'Favourites':'Favorites';requestData.tours=shortlist.join(',');}else if(recentlyViewed.length>1){tabTitle='Previously viewed';requestData.tours=recentlyViewed.join(',');}
$.get('/ajax/tabbedslider/',requestData,function(responseData){if(typeof responseData!='object'||responseData.length==0)return;var tabNumber=data.length+2;var html='<section data-tab="'+tabNumber+'" style="display:none"><div class="tours">';for(var y=0;y<responseData.length;y++){html+=tabbedSlider.getTourHtml(responseData[y],y+1,'Tabbed slider',tabTitle);}
html+='<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>';html+='</div></section>';$tabbedSlider.find('.siteWidth').append(html);$tabbedSlider.find('select').append('<option value="'+tabNumber+'">'+tabTitle+'</option>');$tabbedSlider.find('ul').append('<li><a href="#" data-tab="'+tabNumber+'">'+tabTitle+'</a></li>');$tabbedSlider.find('section[data-tab='+tabNumber+'] .badge[title]').infoBox({position:'center'});if(favourites&&favourites.initElems)favourites.initElems($tabbedSlider.find('section[data-tab='+tabNumber+']'));if(geo.userCulture=='en-AU'){$('.tour[data-istravelmarvel] .price').text('On request');}},'json');}},getTourHtml:function(tour,position,category,list){var brand='GRJ';switch(config.companyID){case 1:brand='GRJ';break;case 3:brand='RD';break;case 2020:brand='VBR';break;}
var html='<div class="tour"'
+' data-id="'+tour.tourCode+'"'
+' data-name="'+tour.title+'"'
+' data-price="'+tour.fromPrice+'"'
+' data-days="'+tour.days+'"'
+' data-brand="'+brand+'"'
+' data-list="'+(list||'')+'"'
+' data-category="'+(category||'')+'"'
+' data-position="'+(position||'')+'"';if(typeof tour.brandFlash==='object')
html+=' data-offer-text="'+tour.brandFlash.title+'"'
+' data-discount="'+tour.brandFlash.alt+'"';if(typeof tour.reviews==='object')
html+=' data-rating="'+tour.reviews.rating+'"';if(typeof tour.isTravelmarvel!='undefined')
html+=' data-istravelmarvel="'+tour.isTravelmarvel+'"';html+='><div class="img">';html+='<a href="'+tour.url+'">';if(typeof tour.holidayType==='object'){html+='<div class="holidayType '+tour.holidayType.cssClass+'" title="'+tour.holidayType.desc+'">';if(tour.holidayType.image!='')html+='<img src="'+tour.holidayType.image+'" alt="'+tour.holidayType.name+'" />';html+=tour.holidayType.name+'</div>';}
html+='<img src="'+tabbedSlider.svgPlaceholder+'" data-lazysrc="'+tour.imageUrl+'" alt="'+tour.title+'" />';if(typeof tour.brandFlash==='object'){html+='<div class="badge '+tour.brandFlash.type+'" title="'+tour.brandFlash.alt+'">'+tour.brandFlash.title+'</div>';}
if(typeof tour.badge==='object'){var style=tour.badge.colour.length==6?' style="background-color:#'+tour.badge.colour+'"':'';html+='<div class="recommend '+tour.badge.icon+'"'+style+'>'+tour.badge.text+'</div>';}
html+='</a>';html+='<div class="title">';html+='<div class="fav"></div>';html+='<div class="h1"><a href="'+tour.url+'">'+tour.title+'</a></div>';if(typeof tour.reviews==='object'){var src=(tour.reviews.rating<1.2)?'/img/tp/stars/star.1.svg':(tour.reviews.rating<1.7)?'/img/tp/stars/star.15.svg':(tour.reviews.rating<2.2)?'/img/tp/stars/star.2.svg':(tour.reviews.rating<2.7)?'/img/tp/stars/star.25.svg':(tour.reviews.rating<3.2)?'/img/tp/stars/star.3.svg':(tour.reviews.rating<3.7)?'/img/tp/stars/star.35.svg':(tour.reviews.rating<4.2)?'/img/tp/stars/star.4.svg':(tour.reviews.rating<4.7)?'/img/tp/stars/star.45.svg':'/img/tp/stars/star.5.svg';html+='<div class="trustPilot" data-rating="'+tour.reviews.rating+'">';html+='<img alt="'+tour.reviews.rating+' stars" src="'+src+'"/>';html+='<span>('+tour.reviews.count+' reviews)</span>';html+='</div>';}
if(typeof tour.operatedBy==='object'){html+='<div class="operatedBy" title="'+tour.operatedBy.desc+'"><img src="'+tour.operatedBy.image+'" alt="'+tour.operatedBy.name+'" /></div>';}
if(typeof tour.departures=='string'){if(tour.departures!=''){html+='<p class="departures">'+tour.departures+'</p>';}}
else{for(var i=0;i<tour.departures.length;i++){var title='';if(tour.departures[i].months.length>=6){title=' title="'+tour.departures[i].year+': ';for(var j=0;j<tour.departures[i].months.length;j++){if(j>0)title+=', ';title+=tour.departures[i].months[j];}
title+='"';}
html+='<div class="departures"'+title+'><b>'+tour.departures[i].year+'</b>';for(var j=0;j<tour.departures[i].months.length;j++){if(j==5&&tour.departures[i].months.length>6){html+='<u>...</u>';}
else if(j<6){html+='<u>'+tour.departures[i].months[j]+'</u>';}}
html+='</div>';}}
if(tour.days>1){var daysText=tour.days;if(tour.daysAlt&&tour.daysAlt!=tour.days){if(tour.daysAlt<tour.days){daysText=tour.daysAlt+'-'+tour.days;}
else{daysText=tour.days+'-'+tour.daysAlt;}}
html+='<div class="days">'+daysText+' days '+(tour.fromPrice>0?' from':'')+'</div>';}
if(tour.fromPrice>0){if(typeof tour.nowPrice!='undefined'&&tour.nowPrice>0)
html+='<div class="price"><span class="was">'+config.symbol+tour.fromPrice.toLocaleString()+' pp</span> <span class="now">'+config.symbol+tour.nowPrice.toLocaleString()+' pp</span></div>';else
html+='<div class="price"><span class="cur">'+config.symbol+tour.fromPrice.toLocaleString()+' pp</span></div>';}
html+='<a href="'+tour.url+'" class="button primary">View Details</a>';html+='</div>';html+='</div></div>';return html;},selectTab:function(e,$this){e.preventDefault();$this=$this||$(this);var $tabbedSlider=$this.closest('.tabbedSlider');var dataTab=$this.val()||$this.data('tab');$tabbedSlider.find('a.on').removeClass('on');$tabbedSlider.find('a[data-tab='+dataTab+']').addClass('on');$tabbedSlider.find('select').val(dataTab);$tabbedSlider.find('section[data-tab!='+dataTab+']').hide();var $section=$tabbedSlider.find('section[data-tab='+dataTab+']');$section.show();tabbedSlider.equaliseHeight($tabbedSlider);$section.find('IMG[data-lazysrc]').each(function(){if(typeof this.dataset.lazysrc!=='undefined'){this.src=this.dataset.lazysrc;this.attributes.removeNamedItem('data-lazysrc');}});$section.find('.badge[title],.holidayType[title]').infoBox({position:'center'});if(!$section.data('tracked')){gtm.setupTourListings($section,true);$section.data('tracked',true);}},equaliseHeight:function($tabbedSlider){$tabbedSlider.find('img:not(.load)').addClass('load').on('load',function(){tabbedSlider.equaliseHeight($tabbedSlider);});$tabbedSlider.each(function(){if($(this).hasClass('listAndContent'))return;var $tours=$(this).find('.tour:visible');if($tours.length){var id='tabbedSliderTourHeight';var cssSelector='.tabbedSlider';if($tours[0].className.indexOf('highlight')>0){id+='Highlight';cssSelector+='.tourHighlights';}
else if($(this).hasClass('fullWidthCarousel')){id+='FullWidthCarousel';cssSelector+='.fullWidthCarousel';}
else if($(this).hasClass('hotels')){id+='Hotels';cssSelector+='.hotels';}
var $cssRule=$('#'+id);$cssRule=($cssRule.length==0)?$('<style id="'+id+'"></style>'):$cssRule.detach();$cssRule.html('');var maxHeight=0;$tours.each(function(){var $this=$(this);$this.css('height','auto');var thisHeight=$(this).outerHeight();if(thisHeight>maxHeight){maxHeight=thisHeight;}
$this.css('height','');});var handleDisplay=$tours.width()*$tours.length<$tours.parent().width()?'none':'block';$cssRule.html(cssSelector+' .tour {height:'+maxHeight+'px} '+
cssSelector+' .handle, '+cssSelector+' .dotNav {display:'+handleDisplay+'}');$cssRule.appendTo('head');}});},clickScrollHandle:function(e,$this){var isAutoscroll=(typeof e=='undefined');if(tabbedSlider.scrollDelay>0)clearTimeout(tabbedSlider.timeout);if(!isAutoscroll)e.preventDefault();var $section=isAutoscroll?$('.tabbedSlider .tours'):$this.closest('.tours');if($section.length){var $tours=$section.first().find('.tour');if($tours.length){var section=$section[0];var tourCount=$tours.length;var pixelsPerTour=Math.ceil(section.scrollWidth/tourCount);var toursPerScroll=Math.floor(section.offsetWidth/pixelsPerTour);var pixelsPerScroll=pixelsPerTour*toursPerScroll;var scrollLeft=section.scrollLeft;if(isAutoscroll||$this.hasClass('next'))scrollLeft+=pixelsPerScroll;else scrollLeft-=pixelsPerScroll;var scrollMax=section.scrollWidth-section.offsetWidth;if(isAutoscroll&&tabbedSlider.restartAutoScroll){scrollLeft=0;tabbedSlider.restartAutoScroll=false;}
else if(scrollLeft<0)scrollLeft=0;else if(scrollLeft>scrollMax){scrollLeft=scrollMax;tabbedSlider.restartAutoScroll=true;}
section.scrollLeft=scrollLeft;if(typeof tabbedSlider.scrollDelay=='number'&&tabbedSlider.scrollDelay>0){tabbedSlider.timeout=setTimeout(tabbedSlider.clickScrollHandle,tabbedSlider.scrollDelay);}}}},dotNavClick:function(e){e.preventDefault();var $this=$(this);if(!$this.hasClass('on')){$this.parent().find('.on').removeClass('on');$this.addClass('on');}
var ix=$(this).index();var items=$this.closest('.fullWidthCarousel,.listAndContent,.similarToursSlider').find('.tour:visible');if(ix<items.length){$(items[ix]).scrollintoview({direction:'horizontal'});}}};var recentlyViewedSlider={init:function(){if($(window).width()<size.tabletPortrait)return;var $placeholder=$('.recentlyViewedSlider');if($placeholder.length==0)return;var recentlyViewed=(getCookie('recentlyViewed')||'').split(',').sort();if(recentlyViewed.length<$placeholder.data('min-tours')){$placeholder.remove();return;}
$.get('/ajax/tabbedslider/',{tours:recentlyViewed.join(',')},function(responseData){if(typeof responseData!='object'||responseData.length==0)return;var html='<article class="tabbedSlider" data-ga-category="PreviouslyViewed"><div class="heading">Recently viewed</div><section>';html+='<div class="siteWidth"><div class="tours">';for(var y=0;y<responseData.length;y++){html+=tabbedSlider.getTourHtml(responseData[y],y+1,'Tabbed slider','PreviouslyViewed');}
html+='</div></div>';html+='<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>';html+='</section></article>';$placeholder.html(html).click(tabbedSlider.click);setTimeout(function(){tabbedSlider.equaliseHeight($placeholder);},250);$(window).resize(function(){tabbedSlider.equaliseHeight($placeholder);});if(typeof gtm!='undefined'&&gtm.enabled){gtm.setupTourListings($placeholder,false);}
if(geo.userCulture=='en-AU'){$('.tour[data-istravelmarvel] .price').text('On request');}},'json');}};var similarToursSlider={init:function(){var $placeholder=$('.similarToursSlider');if($placeholder.length==0||!$placeholder.data('tourcodes'))return;$.get('/ajax/tabbedslider/',{tours:$placeholder.data('tourcodes')},function(responseData){if(typeof responseData!='object'||responseData.length==0)return;var html='<div class="siteWidth"><article class="tabbedSlider" data-ga-category="AlternativeTours"><h2>You might also like...</h2><section>';html+='<div class="tours">';for(var y=0;y<responseData.length;y++){html+=tabbedSlider.getTourHtml(responseData[y],y+1,'Alternative tours',$placeholder.data('tourname'));}
html+='<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>';html+='</div>';html+='</section><div class="dotNav">';for(var y=0;y<responseData.length;y++){html+=y==0?'<a href="#" class="on"></a>':'<a href="#"></a>';}
html+='</div></article></div>';$placeholder.html(html).click(tabbedSlider.click);setTimeout(function(){tabbedSlider.equaliseHeight($placeholder);},250);$(window).resize(function(){tabbedSlider.equaliseHeight($placeholder);});$placeholder.find('.badge[title]').infoBox({position:'center'});if(typeof gtm!='undefined'&&gtm.enabled){gtm.setupTourListings($placeholder,false);}
favourites.initElems($placeholder);if(geo.userCulture=='en-AU'){$('.tour[data-istravelmarvel] .price').text('On request');}
lazyLoad.init();$placeholder.find('.dotNav a').on('click',tabbedSlider.dotNavClick);},'json');}};var fullWidthCarousel={init:function(){$('.fullWidthCarousel .sectionSelect a').on('click',fullWidthCarousel.sectionSelectClick);$('.fullWidthCarousel .shipPicker').on('change',fullWidthCarousel.shipPickerChange);$('.fullWidthCarousel .tour a').on('click',fullWidthCarousel.tourClick);$('.fullWidthCarousel .text a').on('click',fullWidthCarousel.textClick);if($(window).width()>=size.tabletPortrait){$('.fullWidthCarousel').each(function(){$(this).find('.tour a').first().click();});}
else{$('.fullWidthCarousel .fullWidthImage .text').fadeOut();}
$('.fullWidthCarousel .dotNav a').on('click',tabbedSlider.dotNavClick);},textClick:function(e){var $this=$(this);if($this.hasClass('openRoomClassPopup')){e.preventDefault();openRoomClassPopup($this.attr('href'),$this);}},tourClick:function(e){if($(window).width()>=size.tabletPortrait){e.preventDefault();var $this=$(this);var $tour=$this.closest('.tour');var $fullWidthCarousel=$tour.closest('.fullWidthCarousel');var $fullWidthImage=$fullWidthCarousel.children('.fullWidthImage');var $text=$fullWidthImage.find('.text');var $crossFadeImage=$fullWidthImage.children('.fullWidthImage');$crossFadeImage.hide();$fullWidthCarousel.find('.tour').each(function(){$crossFadeImage.removeClass('fwi'+$(this).data('fwi'));});$crossFadeImage.addClass('fwi'+$tour.data('fwi')).fadeIn(400,function(){$fullWidthCarousel.find('.tour').each(function(){$fullWidthImage.removeClass('fwi'+$(this).data('fwi'));});$fullWidthImage.addClass('fwi'+$tour.data('fwi'));});$text.fadeOut(200,function(){$text.find('.h2').text($tour.find('.h1').text());$text.find('.description').html(fullWidthCarousel.truncate($tour.find('.description').html(),250));$text.find('a').attr('href',$tour.find('a').attr('href'));if($tour.closest('.tours').prop('class').indexOf(' ship')>0){var $oldButton=$text.find('a');var $newButton=$($oldButton[0].outerHTML).addClass('openRoomClassPopup');$newButton.click(fullWidthCarousel.textClick).insertBefore($oldButton);$oldButton.remove();}
else
$text.find('a').removeClass('openRoomClassPopup');$fullWidthCarousel.find('.tour.on').removeClass('on');$tour.addClass('on');$text.fadeIn(200);});fullWidthCarousel.updateDotNav($fullWidthCarousel,$tour.index());}},truncate:function(txt,charLimit){if(txt.length>charLimit){var pos=0;var charCount=0;var bCount=true;while(pos<txt.length){switch(txt[pos]){case'<':bCount=false;break;case'>':bCount=true;break;default:if(bCount)charCount++;break;}
pos++;if(charCount>=charLimit||txt.substr(pos).indexOf('<br')==0){txt=txt.substr(0,pos);while(txt.length>1&&' .'.indexOf(txt[txt.length-1])<0)txt=txt.substr(0,txt.length-1);txt=txt.substr(0,txt.length-1)+'...';break;}}}
return txt;},sectionSelectClick:function(e){e.preventDefault();var $this=$(this);if(!$this.hasClass('on')){var $carousel=$(this).closest('.fullWidthCarousel');$carousel.find('.tours').hide();$carousel.find('.on').removeClass('on');var $divToShow=$($this.attr('href'));$divToShow.show();$this.addClass('on');var $shipPicker=$this.closest('.fullWidthCarousel').find('.shipPicker');if($divToShow.prop('id')=='trains'){$shipPicker.hide();}
else{$shipPicker.show().prop('selectedIndex',0);}
if($(window).width()>=size.tabletPortrait){$divToShow.find('.tour a').first().click();}
fullWidthCarousel.updateDotNav($carousel);}},shipPickerChange:function(e){var shipSelector='.ship'+this.value;var $carousel=$(this).closest('.fullWidthCarousel');$carousel.find('.tours').hide();$carousel.find(shipSelector).show();if($(window).width()>=size.tabletPortrait){$carousel.find('.tour:visible a').first().click();}
fullWidthCarousel.updateDotNav($carousel);},updateDotNav:function($carousel,ix){if($carousel.is(':visible')){var count=$carousel.find('.tour:visible').length;var $dotNav=$carousel.find('.dotNav');if($dotNav.children().length==count){$dotNav.find('.on').removeClass('on');}
else{var html=''
for(i=0;i<count;i++)html+='<a href="#"></a>';$dotNav.html(html);$dotNav.children().on('click',tabbedSlider.dotNavClick);}
$dotNav.children()[ix||0].classList.add('on');}}};var listAndContent={init:function(){$('.listAndContent .list a').on('click',listAndContent.listClick);$('.listAndContent .dotNav a').on('click',tabbedSlider.dotNavClick);},listClick:function(e){e.preventDefault();var $this=$(this);if(!$this.hasClass('on')){var $listAndContent=$this.closest('.listAndContent');$listAndContent.find('.on').removeClass('on');$this.addClass('on');var hash=$this.attr('href');if(hash.indexOf('#')>=0)hash.substr(hash.indexOf('#'));$(hash).addClass('on');tabbedSlider.equaliseHeight($listAndContent);}}};var tabbedContent={init:function(){$('.tabbedContent nav select').change(tabbedContent.selectTab);$('.tabbedContent nav a').click(tabbedContent.selectTab);},selectTab:function(e){var $this=$(this);if($this.closest('.tabbedSlider').length)return;e.preventDefault();var $tabbedContent=$this.closest('.tabbedContent');var $nav=$tabbedContent.find('nav').first();$nav.find('a.on').removeClass('on');$tabbedContent.children('section:visible').hide();var dataTab=$this.val()||$this.data('tab');$nav.find('a[data-tab="'+dataTab+'"]').addClass('on');$nav.find('select').val(dataTab);$tabbedContent.children('section[data-tab="'+dataTab+'"]').show();}};var reviewSlider={init:function(){$('.ndcReviews').click(reviewSlider.click).each(function(){$(this).find('.container').append('<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>');});},click:function(e){var $elem=$(e.target);if($elem.closest('a').length)
$elem=$elem.closest('a');if($elem.hasClass('handle'))
reviewSlider.clickScrollHandle(e,$elem);},equaliseHeight:function($reviews){var $cssRule=$('#reviewSliderHeight');$cssRule=($cssRule.length==0)?$('<style id="reviewSliderHeight"></style>'):$cssRule.detach();$cssRule.html('');var maxHeight=0;$reviews.each(function(){var thisHeight=$(this).outerHeight();if(thisHeight>maxHeight){maxHeight=thisHeight;}});$cssRule.html('.ndcReviews .container > div {height:'+maxHeight+'px}');$cssRule.appendTo('head');},clickScrollHandle:function(e,$this){e.preventDefault();var $container=$this.closest('.container');var $reviews=$container.children('div');if($reviews.length){var reviewCount=$reviews.length;var pixelsPerReview=Math.ceil($container[0].scrollWidth/reviewCount);var reviewsPerScroll=Math.floor($container.width()/pixelsPerReview);var pixelsPerScroll=pixelsPerReview*reviewsPerScroll;var scrollLeft=$container.scrollLeft();if($this.hasClass('next'))scrollLeft+=pixelsPerScroll;else scrollLeft-=pixelsPerScroll;var scrollMax=$container[0].scrollWidth-$container.width();if(scrollLeft<0)scrollLeft=0;else if(scrollLeft>scrollMax)scrollLeft=scrollMax;$container[0].scrollLeft=scrollLeft;}}};var promoPanel={init:function(){$('.promoPanel .columns.x3, .promoPanel .columns.x4').each(function(){var $columns=$(this).find('.column');for(var i=$columns.length-1;i>=0;i--){var $column=$($columns[i]);var $items=$column.children('a');if($items.length>1){var $newColumn=$('<div class="column portraitOrLess">'+$items[1].outerHTML+'</div>');$column.after($newColumn);var lazy=$newColumn[0].querySelector('IMG[data-lazysrc],DIV[data-lazybg],DIV[data-lazyvideo]');if(lazy!=null)lazyLoad.images.push(lazy);}}
$(this).append('<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>');$(this).find('.handle').click(promoPanel.clickScrollHandle);});$('.promoPanel a[data-video-url]').click(promoPanel.clickVideo).find('span').hide();$('.promoPanel a[data-video-url] b').after(svg.play+'<br/>');},clickScrollHandle:function(e){e.preventDefault();var $panel=$(this).closest('.columns');if($panel.length){var $columns=$panel.find('.column');if($columns.length){var panel=$panel[0];var columnCount=$columns.length;var pixelsPerColumn=Math.round(panel.scrollWidth/columnCount);var columnsPerScroll=Math.round(panel.offsetWidth/pixelsPerColumn);var pixelsPerScroll=pixelsPerColumn*columnsPerScroll;var scrollLeft=panel.scrollLeft;if($(this).hasClass('next'))scrollLeft+=pixelsPerScroll;else scrollLeft-=pixelsPerScroll;var scrollMax=panel.scrollWidth-panel.offsetWidth;if(scrollLeft<0)scrollLeft=0;else if(scrollLeft>scrollMax)scrollLeft=scrollMax;panel.scrollLeft=scrollLeft;}}},clickVideo:function(e){e.preventDefault();if(e.target.tagName!='SPAN'&&typeof $(this).data('video-url')!='undefined'){e.preventDefault();$(this).find('span').show();openVideoModal($(this).data('video-url'));}}};var accordion={init:function(){$('.accordionNdc .content > .handle').click(accordion.click);if($('body').hasClass('asl-MasterTour')){$('section .h2').each(function(){var $this=$(this);var $section=$this.closest('section');if($section.find('.accordionNdc').length){if($this.next('.reverseItin').length)$this=$this.next('.reverseItin');$this.append('<a href="#openAll" class="openAll" data-ga-label="All">Open all</a>');}});}
$('.openAll').click(accordion.openAll);},click:function(e){var $handle=$(this);var $content=$handle.next('div').length?$handle.next('div'):$handle.closest('.siteWidth').next('div');if($handle.hasClass('opened')){$handle.data('ga-action','Close');$content.slideUp(400,function(){$handle.removeClass('opened');lazyLoad.go();});$handle.closest('section').find('.openAll').text('Open all');}
else{$handle.data('ga-action','Open');if($content.data('url-name')&&!$handle.hasClass('loading')){$handle.addClass('loading');var requestData={countryCode:config.countryCode,name:$content.data('url-name')};if($content.data('parent-type'))
requestData.type=$content.data('parent-type');else if($content.data('ids'))
requestData.ids=$content.data('ids');$.get('/ajax/',requestData,function(html){$handle.addClass('opened');$content.hide().append(html).slideDown(400,function(){$handle.removeClass('loading');lazyLoad.go();var $handles=$handle.closest('section').find('.handle');if($handles.filter('.opened').length==$handles.length){$handle.closest('section').find('.openAll').text('Close all');}});if(typeof requestData.type!='undefined'&&requestData.type=='ships'){setup360ViewButtons($content.find('.viewVirtualTour'));attachRoomClassPopups();attachDeckPlanPopups();}},'html');$content.data('url-name',null).data('parent-type',null).data('ids',null);}
else{$handle.addClass('opened');$content.slideDown(400,function(){lazyLoad.go();var $handles=$handle.closest('section').find('.handle');if($handles.filter('.opened').length==$handles.length){$handle.closest('section').find('.openAll').text('Close all');}});}}},openAll:function(e){e.preventDefault();var $this=$(this);var $handles=$this.closest('section').find('.handle');if($handles.filter('.opened').length==$handles.length){$this.data('ga-action','Close');$handles.click();}
else{$this.data('ga-action','Open');$handles.filter(':not(.opened)').click();}}};var lazyLoad={active:false,images:[],eventsAttached:false,init:function(){lazyLoad.images=lazyLoad.images.slice.call(document.querySelectorAll('IMG[data-lazysrc],DIV[data-lazybg],DIV[data-lazyvideo],DIV[data-lazyreviews],DIV[data-lazyclass],DIV[data-lazystyle]'));if(lazyLoad.images.length>0&&!lazyLoad.eventsAttached){document.addEventListener('scroll',lazyLoad.go);window.addEventListener('resize',lazyLoad.go);window.addEventListener('orientationchange',lazyLoad.go);window.addEventListener('load',lazyLoad.go);lazyLoad.eventsAttached=true;}},go:function(){if(lazyLoad.active===false){lazyLoad.active=true;setTimeout(function(){lazyLoad.images.forEach(function(lazyImage){if((lazyImage.getBoundingClientRect().top<=window.innerHeight&&lazyImage.getBoundingClientRect().bottom>=0)&&getComputedStyle(lazyImage).display!=="none"){if(typeof lazyImage.dataset.lazysrc!=='undefined'){lazyImage.src=lazyImage.dataset.lazysrc;lazyImage.attributes.removeNamedItem('data-lazysrc');}
else if(typeof lazyImage.dataset.lazybg!=='undefined'){lazyImage.style.backgroundImage='url('+lazyImage.dataset.lazybg+')';lazyImage.attributes.removeNamedItem('data-lazybg');}
else if(typeof lazyImage.dataset.lazyvideo!=='undefined'){var poster='https://videodelivery.net/'+lazyImage.dataset.lazyvideo+'/thumbnails/thumbnail.jpg?time=29s';if(typeof lazyImage.dataset.imageUrl!=='undefined'){poster=lazyImage.dataset.imageUrl;lazyImage.attributes.removeNamedItem('data-image-url');}
lazyImage.innerHTML='<stream src="'+lazyImage.dataset.lazyvideo+'" controls preload="metadata" poster="'+poster+'"></stream>';lazyImage.attributes.removeNamedItem('data-lazyvideo');cfVideo.init();}
else if(typeof lazyImage.dataset.lazyreviews!=='undefined'){tp.loadReviews(lazyImage);}
else if(typeof lazyImage.dataset.lazystyle!=='undefined'){$(lazyImage).attr('style',lazyImage.dataset.lazystyle);lazyImage.attributes.removeNamedItem('data-lazystyle');}
lazyLoad.images=lazyLoad.images.filter(function(image){return image!==lazyImage;});if(lazyLoad.images.length===0){document.removeEventListener('scroll',lazyLoad);window.removeEventListener('resize',lazyLoad);window.removeEventListener('orientationchange',lazyLoad);lazyLoad.eventsAttached=false;}}});lazyLoad.active=false;},100);}}};$(document).ready(lazyLoad.init);var favourites={tourCodes:null,getTourCount:function(){var a=[];for(var i=0;i<favourites.tourCodes.length;i++){var tc=favourites.tourCodes[i].replace(/[0-9]{2}/,'');if(a.indexOf(tc)<0)a.push(tc);}
return a.length;},filter:function(tc){if(tc.trim()=='')return false;return tc.length==5||config.companyID==2020;},init:function(){favourites.tourCodes=favourites.tourCodes||(getCookie('shortlist')||'').split(',');favourites.tourCodes=favourites.tourCodes.filter(favourites.filter);if(favourites.tourCodes.length>0){$('.fav svg tspan').text(favourites.getTourCount());$('.fav svg').addClass('on');$('.tourSearch .fav').css('cursor','pointer');}
$('nav .fav, .tourSearch .fav').on('click',favourites.headerClick);favourites.initElems($('.tour'));var $save=$('.headline .fav');if($save.length){$save.css('cursor','pointer').click(favourites.toggle);if(favourites.tourCodes.indexOf($save.data('tc'))>=0)$save.addClass('on');}},headerClick:function(e){e.preventDefault();if(favourites.tourCodes.length>0){var href='/favourites/?tours='+favourites.tourCodes.join(',');if(typeof dataLayer!='undefined'){dataLayer.push({event:'pageClick',action:'click',category:'Favourites',label:'Header',nonInteraction:0,page:href});}
location=href;}},initElems:function($parent){favourites.tourCodes=favourites.tourCodes||(getCookie('shortlist')||'').split(',');$parent.find('.fav').each(function(){var $this=$(this);var tc=$this.closest('.tour').data('id');if(tc&&!$this.data('tc')){$this.data('tc',tc).data('ga-category','Favourites').data('ga-label',tc).data('ga-action','Add').css('cursor','pointer').click(favourites.toggle);if(favourites.tourCodes.indexOf(tc)>=0)$this.addClass('on').data('ga-action','Remove');}});},add:function(tc){for(i=0;i<favourites.tourCodes.length;i++){if(favourites.tourCodes[i]==tc)return true;}
favourites.tourCodes.push(tc);favourites.tourCodes.sort();setCookie('shortlist',favourites.tourCodes.join(','));$('.fav svg tspan').text(favourites.getTourCount());$('.fav svg').addClass('on');},remove:function(tc){var ix=favourites.tourCodes.indexOf(tc);if(ix>=0){favourites.tourCodes.splice(ix,1);setCookie('shortlist',favourites.tourCodes.join(','));$('.fav svg tspan').text(favourites.getTourCount());if(favourites.tourCodes.length==0)$('.fav svg').removeClass('on');}},toggle:function(){var $this=$(this);var tc=$this.data('tc');if(tc){if(favourites.tourCodes.indexOf(tc)>=0){favourites.remove(tc);$this.removeClass('on').data('ga-action','Remove');$this.closest('.tour').find('.fav').removeClass('on');$this.closest('.tabbedSlider').find('.tour[data-id='+tc+'] .fav').removeClass('on');}else{favourites.add(tc);$this.addClass('on').data('ga-action','Add');$this.closest('.tour').find('.fav').addClass('on');$this.closest('.tabbedSlider').find('.tour[data-id='+tc+'] .fav').addClass('on');}}}};var nsu={settings:null,init:function(){var $nsu=$('#newsletterSignup');if(location.search.indexOf('dm_i=')>0||location.search.indexOf('dm_t=')>0){setCookie('em',1,7);}
if(getCookie('em')||getCookie('Agent')){$nsu.hide();return;}
$nsu.find('button').click(nsu.submit);if(typeof $nsu.data('dialog')!='undefined'&&getCookie('ex')==null){nsu.settings=$nsu.data('dialog');$('BODY').append('<div id="newsletterDialog" data-nodename="'+nsu.settings.nodeName+'">'+'<a href="#" class="closeButton"></a>'+'<img alt="" src="'+nsu.settings.imageMobile+'" class="mobileOnly"/>'+'<div class="desc">'+nsu.settings.description+'</div>'+
(screen.availWidth>=768?'<div class="image portraitOrMore""><img alt="" src="'+nsu.settings.imageDesktop+'"/></div>':'')+'</div>');var $nlDialog=$('#newsletterDialog');var attributes=$nsu.prop("attributes");$.each(attributes,function(){if(this.name.indexOf('data-')==0){$nlDialog.attr(this.name,this.value);}});var buttonText='Sign up';if(nsu.settings.buttonText??''!='')buttonText=nsu.settings.buttonText;$nlDialog.css('display','none').find('.desc').append($nsu.find('SELECT,INPUT').clone()).append('<button class="flat submit">'+buttonText+'</button><a href="#" class="close">no thanks</a>');if(nsu.settings.buttonStyle??''!=''){$nlDialog.find('.submit').addClass(nsu.settings.buttonStyle.toLowerCase());}
if(nsu.settings.emailInputPlaceholder??''!=''){$nlDialog.find('.email').attr('placeholder',nsu.settings.emailInputPlaceholder);}
$nlDialog.find('.close, .closeButton').click(function(e){e.preventDefault();$nlDialog.popupBox('close');});$nlDialog.find('.submit').click(nsu.submit);if(nsu.settings.exitIntentTime>0){window.setTimeout(nsu.initExitIntent,nsu.settings.exitIntentTime*1000);}
if(nsu.settings.popUpTime>0){window.setTimeout(nsu.openDialog,nsu.settings.popUpTime*1000);}}},initExitIntent:function(){var $ei=$('<div class="newsletterExitIntent" style="height:3px;left:3px;position:fixed;top:3px;width:25%;z-index:1000;"></div>'+'<div class="newsletterExitIntent" style="height:3px;right:3px;position:fixed;top:3px;width:25%;z-index:1000;"></div>');$ei.mouseout(function(){if(!$('#newsletterDialog').hasClass('popupBox'))nsu.openDialog();});$('BODY').append($ei);},openDialog:function(){if(getCookie('em')==null&&getCookie('ex')==null){var $nlDialog=$('#newsletterDialog');$nlDialog.css('display','').popupBox({'popupBox':$nlDialog,'onClose':function(){setCookie('ex',1,1);}});}},submit:function(e){e.preventDefault;var $nsu=$(this).closest('[id]');var data={pkcWebForm:$nsu.data('pkcwebform'),nodeId:$nsu.data('nodeid'),fields:{Email:$nsu.find('.email').val().trim(),OptInEmail:true,CompanyId:config.companyID,ClientId:'',CustomerType:''}};if(!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(data.fields.Email)){$nsu.find('.email').addClass('invalid').focus();gtm.validationError('NSU','Email');return;}
else{$nsu.find('.email').removeClass('invalid');var email=webForm.fixEmailAddress(data.fields.Email);if(email!=data.fields.Email){data.fields.Email=email;$nsu.find('.email').val(email);}}
var fieldNames=$nsu.data('fields').split(',');for(ix=0;ix<fieldNames.length;ix++){var fieldName=fieldNames[ix];switch(fieldName){case'GaCookieId':var gaId=getCookie('_ga')??'';if(gaId.length>5&&gaId.indexOf('.')>0){var gaIdParts=gaId.split('.');if(gaIdParts.length==4&&gaIdParts[2].length>5){gaId=gaIdParts[2]+'.'+gaIdParts[3];}}
data.fields[fieldName]=gaId;break;case'TelRef':data.fields[fieldName]=getCookie('telCode')||'';break;case'FormName':data.fields[fieldName]=$nsu.data('nodename')||'';break;default:if(fieldName!=''&&typeof data.fields[fieldName]==='undefined'){data.fields[fieldName]='';}
break;}}
$nsu.css('min-height',$nsu[0].offsetHeight+'px');$.ajax({data:JSON.stringify(data),url:'/webservices/WebForms.asmx/AddEntry',type:'POST',contentType:'application/json; charset=utf-8',dataType:'JSON',success:function(d){d=d.d;if(d.success){setCookie('em',1);$nsu.find('input, button').remove();$nsu.find('p:not(:first-child)').remove();if($nsu.attr('id')=='newsletterSignup'){$nsu.find('b').text('Thank you for subscribing to our newsletter');}
else{if(nsu.settings.confirmationTimeOut>0){$nsu.find('.desc').html(nsu.settings.confirmation.replace('[seconds]','<span class="seconds">'+nsu.settings.confirmationTimeOut+'</span>'));nsu.autoCloseDialog();}
else{$nsu.find('.desc').html(nsu.settings.confirmation);}}
if(data.fields.Email.indexOf('<')<0){$nsu.after('<span id="webformThankYouEmail" class="email" style="display:none">'+data.fields.Email+'</span>');}
if(gtm.enabled){var gtmData={event:'newsletterSignup'};if(d['ClientId']){gtmData.clientId=d['ClientId'];}
if(d['CustomerType']){gtmData.clientStatus=d['CustomerType'];}
if(d['ExClientId']){gtmData.exClientId=d['ExClientId'];}
if(d['ExCustomerType']){gtmData.exClientStatus=d['ExCustomerType'];}
if(typeof $nsu.data('nodename')!='undefined'){gtmData.formName=$nsu.data('nodename');}
dataLayer.push(gtmData);}
webForm.addEmailToDotDigital(data.fields.Email);}
else{alert('The form submission failed - please try again later\n'+(d['message']||''));}},error:function(err,status,desc){try{alert(desc+':\n'+err.responseJSON.Message);}
catch(e){alert('A server error has occurred');}}});},autoCloseDialog:function(){if(nsu.settings.confirmationTimeOut>1){nsu.settings.confirmationTimeOut--;$('#newsletterDialog .seconds').text(nsu.settings.confirmationTimeOut);window.setTimeout(nsu.autoCloseDialog,1000);}else if(nsu.settings.confirmationTimeOut<=1){$('#newsletterDialog').popupBox('close');}}};function rTapPostReplacement(){var imgUrl=null;var adivi=null;var adis=null;var cvs=0;try{if(document.referrer.indexOf(location.host)==-1){adivi=document.cookie.match(/adiVi=[0-9]+/)[0].replace('adiVi=','');adis=document.cookie.match(/adiS=[\.A-Za-z0-9]+/)[0].replace('adiS=','');imgUrl='https://cm.g.doubleclick.net/pixel?google_nid=responsetap_dmp&cvs='+cvs+'&adivi='+adivi+'&adis='+adis+'&google_cm';(new Image()).src=imgUrl;}}catch(err){}}
function whatsIncludedPopup(e){var $a=$(this);var tc=$a.data('tour-code')||tourCode||'';if(tc=='')return;e.preventDefault();var $div=$('#whats-included-'+tc);if($div.length==0){$.get('/ajax/tourwhatsincluded/',{tourcode:tc,countrycode:config.countryCode},function(html){$div=$('<div id="whats-included-'+tc+'" class="grjPopup iframe">'
+'<a href="#" class="closeButton"><span>Close</span></a>'
+'<div class="whatsIncluded contentHolder">'+html+'</div>').appendTo('body');$a.popupBox({'popupBox':$div});},'html');}
else{$a.popupBox({'popupBox':$div});}}
$(window).on('load',function(){$('.whats-included').click(whatsIncludedPopup);});var cfVideo={lastPercentPlayed:0,init:function(){$('stream').each(function(){var $this=$(this);if(typeof $this.data('initialised')=='undefined'){$this.data('initialised',true);var videoId=$this.attr('src');var videoTitle=$this.data('title')||'';var s=document.createElement('script');s.defer='defer';s.setAttribute('data-cfasync','false');s.src='https://embed.videodelivery.net/embed/r4xu.fla9.latest.js';document.getElementsByTagName('body')[0].appendChild(s);$this.on('play',function(e){var percentPlayed=parseInt(100*(this.currentTime/this.duration));gtm.videoEvent('Video','cloudflare['+videoId+'] '+videoTitle,'Play'+(percentPlayed>0?' from '+percentPlayed+'%':''));var stream=this;this.playInterval=setInterval(function(){var percentPlayed=parseInt(100*(stream.currentTime/stream.duration));if(percentPlayed&&percentPlayed%25==0&&percentPlayed!=cfVideo.lastPercentPlayed){cfVideo.lastPercentPlayed=percentPlayed;gtm.videoEvent("Video",'cloudflare['+videoId+'] '+videoTitle,"Watched "+percentPlayed+"%");}},300);});$this.on('pause',function(e){if(this.playInterval)clearInterval(this.playInterval);var percentPlayed=parseInt(100*(this.currentTime/this.duration));if(percentPlayed<100)gtm.videoEvent('Video','cloudflare['+videoId+'] '+videoTitle,'Stopped at '+percentPlayed+'%');});$this.on('ended',function(e){if(this.playInterval)clearInterval(this.playInterval);gtm.videoEvent('Video','cloudflare['+videoId+'] '+videoTitle,'Watched 100%');});}});}};$(window).on('load',cfVideo.init);var geo={debug:false,userCulture:null,useCF:true,maxIgnore:5,height:0,init:function(){geo.debug=(getCookie('gdb')=='1');if(location.hostname.indexOf('raildiscoveries')>=0){if(geo.debug)console.log('geo.init','raildiscoveries');return;}
if(top.location!=location){if(geo.debug)console.log('geo.init','Not top.location');return;}
if(document.body.className.indexOf('bookingJourney')>=0){if(geo.debug)console.log('geo.init','booking journey');return;}
geo.userCulture=getCookie('guc');if(geo.userCulture!=null&&geo.userCulture.indexOf('en-')==0){if(geo.debug)console.log('geo.init','userCulture read from cookie');return geo.go();}
var xhr=new XMLHttpRequest();if(geo.useCF)xhr.open('HEAD','/favicon.ico',true);else xhr.open('GET','/ajax/geolocation/',true);xhr.onreadystatechange=function(){if(xhr.readyState==XMLHttpRequest.DONE){if(xhr.status==200){if(geo.useCF){var cfRay=this.getResponseHeader('CF-RAY');if(cfRay!=null){cfRay=cfRay.split('-')[1].toUpperCase();switch(cfRay){case'EDI':case'LHR':case'MAN':geo.userCulture='en-GB';if(geo.debug)console.log('geo.init','userCulture (en-GB) read from CF-RAY');geo.go();break;case'IAD':case'ATL':case'BOS':case'BUF':case'CLT':case'ORD':case'CMH':case'DFW':case'DEN':case'DTW':case'HNL':case'IAH':case'IND':case'JAX':case'MCI':case'LAS':case'LAX':case'MFE':case'MEM':case'MIA':case'MSP':case'MGM':case'BNA':case'EWR':case'ORF':case'OMA':case'PHL':case'PHX':case'PIT':case'PDX':case'RIC':case'SMF':case'SLC':case'SAN':case'SJC':case'SEA':case'STL':case'TLH':case'TPA':case'MEX':case'PAP':case'QRO':case'PTY':case'SJO':case'GND':case'BKK':case'CEB':case'CMB':case'KUL':case'ICN':case'SIN':geo.userCulture='en-US';if(geo.debug)console.log('geo.init','userCulture (en-US) read from CF-RAY');geo.go();break;case'YYC':case'YUL':case'YXE':case'YYZ':case'YVR':case'YWG':geo.userCulture='en-CA';if(geo.debug)console.log('geo.init','userCulture (en-CA) read from CF-RAY');geo.go();break;case'ADL':case'AKL':case'BNE':case'CBR':case'MEL':case'NOU':case'PER':case'SYD':geo.userCulture='en-AU';if(geo.debug)console.log('geo.init','userCulture (en-AU) read from CF-RAY');geo.go();break;default:geo.useCF=false;geo.init();break;}}else{geo.useCF=false;geo.init();}}else{try{response=JSON.parse(xhr.responseText);geo.userCulture=response.culture;if(geo.debug)console.log('geo.init','userCulture ('+geo.userCulture+') read from HTTP_CF_IPCOUNTRY');geo.go();}catch(err){console.log('ERROR JSON.parse /ajax/geolocation/ reponseText:'+xhr.responseText);console.log(err);}}}else{console.log('GET: /ajax/geolocation/ [error: '+xhr.status+']');}}};xhr.timeout=2000;xhr.send(null);},go:function(){if(geo.userCulture==null){if(geo.debug)console.log('geo.go','geo.userCulture is null');return;}
else if(geo.userCulture!=getCookie('guc')){setCookie('guc',geo.userCulture);if(geo.debug)console.log('geo.go','set guc cookie to '+geo.userCulture);}
switch(geo.userCulture){case'en-CA':geo.userCulture='en-US';break;case'en-NZ':geo.userCulture='en-AU';break;}
if($('html').attr('lang').toLowerCase()==geo.userCulture.toLowerCase()){if(geo.debug)console.log('geo.go','geo.userCulture = html.lang');return;}
var divHtml='';var trackingLabel='';var crossLinkedTourUrl=$('LINK[hreflang="'+geo.userCulture+'"]').attr('href')||'';if(crossLinkedTourUrl!=''){switch(config.companyID){case 1:divHtml=$('<div class="geo" data-ga-category="LocationBanner">'+'This tour is bookable for North American visitors on <span>Vacations By Rail.</span><br/>'+'<a class="button tertiary" href="'+crossLinkedTourUrl+'"><img src="/img/ndc/vbr-24.png" /> Go to Vacations By Rail</a>'+'<a class="button tertiary" href="#"><img src="/img/ndc/grj-24.png" /> Stay on Great Rail Journeys</a>'+'</div>');trackingLabel='Vacations By Rail - Great Rail Journeys';break;case 2020:divHtml=$('<div class="geo" data-ga-category="LocationBanner">'+'This tour is bookable for UK visitors on <span>Great Rail Journeys.</span><br/>'+'<a class="button tertiary" href="'+crossLinkedTourUrl+'"><img src="/img/ndc/grj-24.png" /> Go to Great Rail Journeys</a>'+'<a class="button tertiary" href="#"><img src="/img/ndc/vbr-24.png" /> Stay on Vacations By Rail</a>'+'</div>');trackingLabel='Great Rail Journeys - Vacations By Rail';}}
else if(getCookie('gig')==null){switch(geo.userCulture){case'en-GB':divHtml=$('<div class="geo" data-ga-category="LocationBanner">'+'It looks like you are visiting from the United Kingdom. Your options are:<br/>'+'<a class="button tertiary" href="https://www.greatrail.com/"><img src="/img/ndc/grj-24.png" /> Go to Great Rail Journeys</a>'+'<a class="button tertiary" href="#"><img src="/img/ndc/vbr-24.png" /> Stay on Vacations By Rail</a>'+'</div>');trackingLabel='Great Rail Journeys - Vacations By Rail';setCookie('gig',1,0);break;case'en-US':divHtml=$('<div class="geo" data-ga-category="LocationBanner">'+'It looks like you are visiting from North America. Your options are:<br/>'+'<a class="button tertiary" href="https://www.vacationsbyrail.com/"><img src="/img/ndc/vbr-24.png" /> Go to Vacations By Rail</a>'+'<a class="button tertiary" href="#"><img src="/img/ndc/grj-24.png" /> Stay on Great Rail Journeys</a>'+'</div>');trackingLabel='Vacations By Rail - Great Rail Journeys';setCookie('gig',1,0);break;}}
if(geo.userCulture=='en-AU'){if($('h1[data-istravelmarvel]').length){$('.price').text('On request');$('.prices').hide();if((config.travelmarvelTelNum||'')!=''){$('#telNumber, .telNumber').text(config.travelmarvelTelNum);}}
else if($('.tour[data-istravelmarvel]').length){$('.tour[data-istravelmarvel] .price, .tour[data-istravelmarvel] .listPrice').text('On request');}}
if(divHtml!=''){var $div=$(divHtml);$div.find('a').click(geo.click);$('body').prepend($div);geo.windowResize();$(window).resize(geo.windowResize);if(typeof dataLayer!='undefined'){dataLayer.push({event:'',action:'Visible',category:'LocationBanner',label:trackingLabel,nonInteraction:1});};document.addEventListener('scroll',geo.documentScroll);}},click:function(e){if(geo.debug)console.log('geo.click',e);if($(this).attr('href')=='#'){$('.geo').hide();geo.windowResize();document.removeEventListener('scroll',geo.documentScroll);e.preventDefault();}
else{}},windowResize:function(){geo.height=$('.geo:visible').outerHeight()||0;document.body.style.marginTop=geo.height+'px';},documentScroll:function(){var scrollTop=$(window).scrollTop();if(scrollTop>=geo.height)$('.geo').hide();else $('.geo').show();}};$(document).ready(geo.init);$(document).ready(function(){if($('body').hasClass('iframeBody')){if(window.location.hash!='')$('nav a[href="'+window.location.hash+'"]').tab('show');$('a[href*="#"]').each(function(){if(this.href.indexOf(location.pathname)>=0){this.target='_self';}});$(window).bind('hashchange',function(){$('nav a[href='+window.location.hash+']').tab('show');});}});var travelAgentLogin={initialised:false,init:function(){if(travelAgentLogin.initialised)return;travelAgentLogin.initialised=true;var $form=$('.travelAgentLogin');if($form.length==0)return;$form.find('INPUT[type=submit]').click(travelAgentLogin.submit);$form.append('<div class="pleaseWaitMask"><div><span class="ajaxLoadingIcon">&#xf021;</span> Please wait...</div></div>');$('#TaLogin_AbtaId').validate({'RegExp':/^\w{5,6}|\d{1,9}$/});$('#TaLogin_Password').validate();},submit:function(e){e.preventDefault();var $form=$(this).closest('FORM');$form.find('.error').slideUp();if(!$form.find('.validateAttached').first().validate('isEverythingValid',$form)){var $invalid=$form.find('.invalid');gtm.validationError('TALogin',($invalid.length==1)?$invalid.siblings('label').text():'Multiple');return;}
var data={abtaId:$('#TaLogin_AbtaId').val(),password:$('#TaLogin_Password').val()};$form.find('.pleaseWaitMask').show();$.ajax({data:JSON.stringify(data),url:'/webservices/WebForms.asmx/TravelAgentLogin',type:'POST',contentType:'application/json; charset=utf-8',dataType:'JSON',success:function(response){response=response.d;if(response.success){if(config.enableGoogleTagManager&&typeof gtm!=='undefined'){var gtmData={event:'agentLogInSuccess',nonInteraction:0};dataLayer.push(gtmData);}
var url='/travelagents/home/';location.href=url;}
else{$form.find('.error').html(response['message']||'Unable to log in at this time - please try again later').slideDown();$form.find('.pleaseWaitMask').fadeOut();}},error:function(err,status,desc){try{showError(desc+':\n'+err.responseJSON.Message);}
catch(e){showError('A server error has occurred');}
$form.find('.pleaseWaitMask').fadeOut();}});}};$(document).ready(travelAgentLogin.init);var tp={init:function(){if($('.trustpilot').length==0)return;var $servicecarousel=$('.servicecarousel');if($servicecarousel.length){$servicecarousel.find('.carousel').append('<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>');$servicecarousel.find('.carousel .handle').click(tp.clickScrollHandle);}},clickScrollHandle:function(e){e.preventDefault();var $container=$(this).closest('.carousel').find('.reviews');var $reviews=$container.find('.review');if($reviews.length){var reviewCount=$reviews.length;var pixelsPerReview=Math.ceil($container[0].scrollWidth/reviewCount);var reviewsPerScroll=Math.floor($container.width()/pixelsPerReview);var pixelsPerScroll=pixelsPerReview*reviewsPerScroll;var scrollLeft=$container.scrollLeft();if($(this).hasClass('next'))scrollLeft+=pixelsPerScroll;else scrollLeft-=pixelsPerScroll;var scrollMax=$container[0].scrollWidth-$container.width();if(scrollLeft<0)scrollLeft=0;else if(scrollLeft>scrollMax)scrollLeft=scrollMax;$container[0].scrollLeft=scrollLeft;}},loadReviews:function(container){var $container=$(container);var isList=$container.hasClass('list');var url='/trustpilot/json/'+$container.data('lazyreviews');if(isList)url+='?type=list';$.ajax({url:url,type:'GET',contentType:'application/json; charset=utf-8',success:function(reviewSummary){if(reviewSummary==null||typeof(reviewSummary.reviews)=='undefined')return;html='<div class="reviews">';for(i=0;i<reviewSummary.reviews.length;i++){var r=reviewSummary.reviews[i];if(isList)r.content=r.content.replace('\n','<br/>');html+='<div class="review">'
+'<div class="stars"><img alt="'+r.stars+' stars" src="/img/tp/stars/star.'+r.stars+'.svg"/></div>'
+'<div class="date">'+r.createdAt+'</div>'
+'<div class="header">'+r.title+'</div>'
+'<div class="text">'+r.content+'</div>'
+'<div class="name">'+r.displayName+'</div>';if(typeof(r.thread)!='undefined'&&r.thread.length>0){for(j=0;j<r.thread.length;j++){var t=r.thread[j];if(isList)t.comment=t.comment.replace('\n','<br/>');html+='<div class="reply">'
+'<div class="date">'+t.createdAt+'</div>'
+'<div class="name">'+t.author+'</div>'
+'<div class="text">'+t.comment+'</div>'
+'</div>';}}
html+='</div>';}
if(isList){var href=$container.closest('.trustpilot').find('a').attr('href');if(typeof(href)!='undefined')
html+='<div style="text-align:center"><a class="button secondary" target="_blank" rel="nopener" href="'+href+'">Read more</a></div>';}
html+='</div>';if(typeof(reviewSummary.caption)!='undefined'&&reviewSummary.caption!=''){if(isList){html='<div class="caption">'+reviewSummary.caption+'</div>'+html;}
else{html+='<div class="caption">'+reviewSummary.caption+'</div>';}}
$container.append(html);},error:function(err,status,desc){try{showError(desc+':\n'+err.responseJSON.Message);}
catch(e){showError('A server error has occurred');}}});}};$(document).ready(tp.init);var tourHighlightCarousel={init:function(){if($('.tourHighlightCarousel').length==0)return;$(window).resize(tourHighlightCarousel.equaliseHeight);tourHighlightCarousel.equaliseHeight();gtm.setupTourListings('.tourHighlightCarousel',false);gtm.waitForCarousel=false;$('.tourHighlightCarousel div[title]').infoBox({position:'center'});},equaliseHeight:function(){$('.tourHighlightCarousel img:not(.load)').addClass('load').on('load',tourHighlightCarousel.equaliseHeight);$('.tourHighlightCarousel').each(function(ix){var $thc=$(this);var $tours=$thc.find('.tour');if($tours.length){var id='thcHeight'+ix;var cssSelector='.tourHighlightCarousel:nth-of-type('+(ix+1)+')';var $cssRule=$('#'+id);$cssRule=($cssRule.length==0)?$('<style id="'+id+'"></style>'):$cssRule.detach();$cssRule.html('');var isSmallScreen=$(window).width()<size.tabletPortrait;var showScrollHandles=isSmallScreen&&$tours.length>1&&$thc.find('.mobileDisplayScroll').length>0;if(!isSmallScreen||showScrollHandles){var maxHeight=0;$tours.each(function(){var $this=$(this);$this.css('height','auto');var thisHeight=$(this).outerHeight();if(thisHeight>maxHeight){maxHeight=thisHeight;}
$this.css('height','');});var handleDisplay=!showScrollHandles||$tours.width()*$tours.length<$tours.parent().width()?'none':'block';$cssRule.html(cssSelector+' .tour {height:'+Math.ceil(maxHeight)+'px} '+
cssSelector+' .handle, '+cssSelector+' .dotNav {display:'+handleDisplay+'}');$cssRule.appendTo('head');if(showScrollHandles&&$thc.find('.handle').length==0){$thc.find('.tours').append('<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>');$thc.find('.handle').click(tourHighlightCarousel.clickScrollHandle);}}}});},clickScrollHandle:function(e){e.preventDefault();var $section=$(this).closest('.tours');if($section.length){var $tours=$section.first().find('.tour');if($tours.length){var section=$section[0];var tourCount=$tours.length;var pixelsPerTour=Math.ceil(section.scrollWidth/tourCount);var toursPerScroll=Math.floor(section.offsetWidth/pixelsPerTour);var pixelsPerScroll=pixelsPerTour*toursPerScroll;var scrollLeft=section.scrollLeft;if($(this).hasClass('next'))scrollLeft+=pixelsPerScroll;else scrollLeft-=pixelsPerScroll;var scrollMax=section.scrollWidth-section.offsetWidth;if(scrollLeft<0)scrollLeft=0;else if(scrollLeft>scrollMax)scrollLeft=scrollMax;section.scrollLeft=scrollLeft;}}}};
;;;var tourItinerary={timer:null,init:function(){$('.year a').click(function(e){if(this.classList.contains('stars'))return;e.preventDefault();if(!$(this).hasClass('on')){var qs=location.search;var tc=this.attributes['href'].value.replace('#','tc=');if(qs=='')qs=tc;else if(qs.indexOf('tc=')>=0)qs=qs.replace(/tc=[\w-]*/,tc);else qs+='&'+tc;location.search=qs;}});if(location.hash!=''&&location.search.indexOf('tc=')<0){var $a=$('.year a[href="'+location.hash+'"]');if($a.length&&!$a.hasClass('on')){var qs=location.search;var tc=$a.attr('href').replace('#','tc=');if(qs=='')qs=tc;else if(qs.indexOf('tc=')>=0)qs=qs.replace(/tc=[\w-]*/,tc);else qs+='&'+tc;location.replace('?'+qs);}}
$('.prices').click(tourItinerary.openPriceGrid);$('.hotels a, .excursions a').click(tourItinerary.openAjaxPopup);tourItinerary.$stickyHeader=$('#stickyHeader');if(tourItinerary.$stickyHeader.length){var html='';tourItinerary.$sections=$('[data-stickyheader]');tourItinerary.$sections.each(function(){var $this=$(this);var anchor=$this.children('i[id]:first-child').attr('id');$this.data('anchor',anchor);html+='<li data-anchor="'+anchor+'"><a href="#'+anchor+'">'+$this.data('stickyheader')+'</a></li>';});if(html!=''){tourItinerary.$stickyHeader.html('<ul data-ga-category="TourSectionNav">'+html+'</ul>').find('a').click(tourItinerary.onscroll);if(typeof Touch=='object')document.addEventListener('touchmove',tourItinerary.onscroll,false);else $(window).scroll(tourItinerary.onscroll);window.addEventListener('resize',tourItinerary.onscroll);window.addEventListener('orientationchange',tourItinerary.onscroll);ndc.noScrollTop=tourItinerary.$sections.offset().top-130;}
else tourItinerary.$stickyHeader.remove();var $cta=$('.cta');if($cta.length==1){var $newCta=$cta.clone(true).addClass('stickyFooter').attr('data-ga-category','TourStickyFooter').appendTo('body');var ctaHeight=$newCta.height();$('body').append('<style>'
+'body { padding-bottom:'+ctaHeight+'px; } '
+'@media (min-width: '+size.tabletLandscape+'px) { body.noscroll .stickyFooter { bottom:-'+ctaHeight+'px; } }'
+'</style>');}
$('.hero .itinVideo').click(function(e){e.preventDefault();var $button=$(this);openVideoModal($button.attr('href')||$button.data('src'),$button);});}
$('a[href="#reverse"], a[href="#forward"]').click(function(e){e.preventDefault();var selectorShow=this.attributes["href"].value.replace('#','.');var selectorHide=(selectorShow=='.reverse')?'.forward':'.reverse';$(this).parent().find('a').addClass('tertiary');this.classList.remove('tertiary');$('.itinerary '+selectorHide).hide();$('.itinerary '+selectorShow).show();});var tourCode=$('a[data-tour-code]').data('tour-code');if(typeof tourCode!='undefined'){var cookie=(getCookie('recentlyViewed')||'').split(',');for(var ix=cookie.length-1;ix>=0;ix--){if(cookie[ix]===tourCode||cookie[ix]===''){cookie.splice(ix,1);}}
cookie.unshift(tourCode);setCookie('recentlyViewed',cookie.slice(0,Math.min(cookie.length,6)).join(','));var $taLogin=$('#taLogin');if($taLogin.length){$taLogin.attr('href',$taLogin.attr('href')+'?tc='+tourCode);}}
$('.review .rating').each(function(){var rating=$(this).data('rating');var html='';for(var i=0;i<5;i++){var starRating=(rating-i);if(starRating<0.2)html+=svg.star.replace('#ffb135','#cacaca');else html+=svg.star;}
$(this).html(html);});$('.reviews .expandComment').click(tourItinerary.expandComment);$('.reviews .paging .button').click(tourItinerary.loadMoreReviews);tourItinerary.truncateReviews();$('.mobilityRating[title]').click(tourItinerary.toggleMobilityRating).each(function(){var html='<div class="info"><b>'
+this.attributes['title'].nodeValue.replace(' - ','</b><br/>').replace(' – ','</b><br/>')
+'</div>';this.innerHTML+=html;this.attributes.removeNamedItem('title');});window.setTimeout(function(){$('.indEnq .contact .phone').html($('#telNumber').html());$('.indEnq .contact .openinghours').html($('.openinghours').html());$('.indEnq .contact .openinghours .button').parent().remove();$('.indEnq .contact .openinghours ul').not(':first').remove();},2500);if($('.itinerary .dotNav').length){tourItinerary.showHideDotNav();$(window).on('resize',tourItinerary.showHideDotNav);$('.accordionNdc .content > .handle, .openAll').click(function(){window.setTimeout(tourItinerary.showHideDotNav,500);});$('.itinerary .dotNav a').click(tourItinerary.clickDotNav);}
$('.tourHighlights.alt').each(function(){var $this=$(this);$this.find('section .highlights').append('<a href="#" class="handle prev">'+svg.previous+'</a><a href="#" class="handle next">'+svg.next+'</a>').find('a.handle').click(function(e){e.preventDefault();var $this=$(this);var $section=$this.closest('.highlights');var $highlights=$section.find('.highlight');if($highlights.length){var section=$section[0];var tourCount=$highlights.length;var pixelsPerTour=Math.ceil(section.scrollWidth/tourCount);var toursPerScroll=Math.floor(section.offsetWidth/pixelsPerTour);var pixelsPerScroll=pixelsPerTour*toursPerScroll;var scrollLeft=section.scrollLeft;if($this.hasClass('next'))scrollLeft+=pixelsPerScroll;else scrollLeft-=pixelsPerScroll;var scrollMax=section.scrollWidth-section.offsetWidth;if(scrollLeft<0)scrollLeft=0;else if(scrollLeft>scrollMax)scrollLeft=scrollMax;section.scrollLeft=scrollLeft;}});});$(window).resize(tourItinerary.windowResize);tourItinerary.windowResize();$('.asl-MasterTour .holidayType[title]').infoBox({position:'center'});$('.walkingTour [title]').infoBox({position:'center'});},onscroll:function(){if(tourItinerary.timer!=null)clearTimeout(tourItinerary.timer);tourItinerary.timer=setTimeout(function(){var currentAnchor=tourItinerary.$stickyHeader.find('li.on').data('anchor');var newAnchor='';var scrollTop=$(window).scrollTop();tourItinerary.$sections.each(function(){var $i=$(this).children('i[id]:first-child');var scroll=$i.offset().top;if(scroll<=scrollTop){newAnchor=$i.attr('id');}});if(currentAnchor!=newAnchor){tourItinerary.$stickyHeader.find('li.on').removeClass('on');if(newAnchor!=''){tourItinerary.$stickyHeader.find('li[data-anchor="'+newAnchor+'"]').addClass('on').scrollintoview({direction:'horizontal'});if(typeof gtm!=='undefined'&&gtm.enabled){dataLayer.push({event:'TourDetailScroll',eventCategory:'TourDetail',eventAction:'Scroll',eventLabel:newAnchor,page:'',nonInteraction:1});}}}},100);},openPriceGrid:function(e){e.preventDefault();if(typeof this.attributes['data-tour-code']=='undefined'){console.log('Error: attribute data-tour-code is missing',this);return;}
var tourCode=this.attributes['data-tour-code'].value;if(config.bookingUrl&&config.useNewPricingGrid){var pricingUrl=(config.bookingUrl+'?Action=pricing&productcode={ProductCode}').replace('{ProductCode}',tourCode);var specialOfferId=$('.specialOffer[data-id]').data('id');if(typeof specialOfferId!='undefined'){pricingUrl+='&ts='+specialOfferId;}
overlay.open();location.href=pricingUrl;return;}
var div=document.getElementById('prices');if(div==null){div=document.createElement('DIV');div.id='prices';document.body.appendChild(div);var reverseTourCode=this.attributes['data-reverse-tour-code'].value;var showPawsPricingOnly=this.attributes['data-showpawspricingonly'].value;var showTailorMadePricing=this.attributes['data-showtailormadepricing'].value=='true';var flightsIncludedHtml=this.attributes['data-showflightsincluded'].value=='1'?'<div id="flightsIncluded"><span class="flight icon"></span><span class="text">Return flights from London included in price</span></div>':'';var filterGroups=(config.companyID==2020?'<div class="vbr"><div class="h4">Please make selection for accurate pricing &amp; availability</div></div><div class="nonVbr"><div class="h4">Filter listing</div></div>':'');var content='<div id="pricesHolder">'+'<div class="h3">Dates &amp; Pricing: '+$('h1').text()+'</div>'+'<div id="filters">'+filterGroups+'</div>'+
(showTailorMadePricing?flightsIncludedHtml:'<div id="guaranteedDeparturesKey" style="display:none;"><span class="guaranteedDepartureIcon"></span><span class="text">Guaranteed Departures</span></div>'+'<div id="nonGuaranteedDepartures" style="display:none;"><span class="text">'+config.nonGuaranteedDeparturesAvailable.replace('[telNumber]','<br/><span class="telNumber">'+$('#telNumber').text()+'</span><br/>')+'</span></div>')+'<div id="pricesAjax"><div class="ajaxLoading"><span class="ajaxLoadingIcon">&#xf021;</span> Loading, please wait</div></div>'+'</div>';var settings={tourCode:tourCode,reverseTourCode:reverseTourCode,showPawsPricingOnly:showPawsPricingOnly,showTailorMadePricing:showTailorMadePricing,config:config};$(div).popupBox({content:content,class:'pricesPopup','resizeOnContentChange':false,onCreate:function(){window.getPrices(settings);gtm.pushEvent('priceGridOpened');}});}
else{$(div).popupBox();}},openAjaxPopup:function(e){e.preventDefault();var $a=$(this);var urlName=$a.data('url-name');if(urlName){var $div=$('#'+urlName);if($div.length==0){var hotelName=$a.data('popup-title')||$a.closest('.hotel, .tour').find('.h1, .h3').text();$div=$('<div id="'+urlName+'" class="roomClassPopup"><a href="#" class="closeButton"><span>Close</span></a><a href="javascript:void(0);" onclick="printSection(this, \'.contentHolder\', \'HotelDetails\')" class="printSection"><span>Print</span></a><div class="contentHolder"><h3>'+hotelName+'</h3></div>').appendTo('body');$.get('/ajax/',{countryCode:config.countryCode,name:urlName,type:$a.data('parent-type')},function(html){$div.find('.contentHolder').append(html);$div.find('.viewGallery').each(function(){var button=$(this);var id=button.data('id')||button.attr('id');if(!button.hasClass('attached')){button.on('click',function(e){e.preventDefault();openModalGallery(id,button.data('gallery'),undefined,0);});button.addClass('attached');}});var $inlineGallery=$div.find('.inlineGallery');if($inlineGallery.length){initInlineGallery($inlineGallery);$inlineGallery.find('.owl-nav').append($inlineGallery.next('.viewGallery'));}
if($div.find('.tripAdvisorHotelWidget').length)$('#tripAdvisorHotelWidgets div[data-hotel='+urlName+']').appendTo($div.find('.tripAdvisorHotelWidget'));var $map=$div.find('.gmap[data-lat][data-lng]');if($map.length){var mapUrl='https://www.google.com/maps/embed/v1/place?key={key}&q={hotel}&center={lat},{lng}&zoom=12'.replace('{key}','AIzaSyA944Iyj76wTyc3LDBqxls4eKONIysIUxw').replace('{hotel}',escape(hotelName)).replace('{lat}',$map.data("lat")).replace('{lng}',$map.data("lng"));$map.html('<iframe frameborder="0" height="250" style="border:0" referrerpolicy="no-referrer-when-downgrade" src="{mapUrl}" allowfullscreen> </iframe>'.replace('{mapUrl}',mapUrl));}
$div.find('.amenities').each(function(){var $amenities=$(this);if($amenities.find('li:hidden')){var $viewAll=$('<a href="#">View all</a>');$viewAll.on('click',function(e){e.preventDefault();$amenities.find('li:hidden').css('display','inline-block');$viewAll.hide();});$amenities.after($viewAll);}});if(typeof gtm!=='undefined'&&gtm.enabled&&$div.find('.hotelPopup[data-ta-enhanced]').length){var taEnhanced=$div.find('.hotelPopup[data-ta-enhanced]').data('ta-enhanced');dataLayer.push({event:'hotelmodal_opened',taEnhanced:taEnhanced,hotelName:hotelName});}},'html');}
$a.popupBox({'popupBox':$div});}},loadMoreReviews:function(e){e.preventDefault();$('.review .paging a').addClass('disabled');var $this=$(this);var url='/ajax/?countrycode='+config.countryCode
+'&name=review'
+'&tourcode='+$this.data('tourcode')
+'&min='+$this.data('min')
+'&max='+$this.data('max')
+'&sort='+$this.data('sort');var companyName=$('section.reviews').data('companyname');$.ajax({url:url,type:'GET',dataType:'json',success:function(json){var $div=$('<div style="display:none"></div>');for(var x=0;x<json.length;x++){var html='';var review=json[x];html+='<div class="review">';html+='<div class="tabletTwoThirds"><p class="displayName">'+(review.displayName||'Anonymous')+'</p>'
+'<p class="stars" data-rating="'+review.stars+'"><img alt="'+review.stars+' stars" src="/img/tp/stars/star.'+review.stars+'.svg"/></p>';if(review.title!='')html+='<p class="title">'+title+'</p>';html+='</div>';html+='<div class="tabletThird"><p class="createdAt">Submitted '+review.createdAt+'</p></div>';html+='<div class="tabletTwoThirds"><p class="_review">'+review.content.replace('\n','<br/>')+'</p>';if(typeof review['thread']!='undefined'){html+='<div class="reviewComments"><div class="commentsHolder">';for(var i=0;i<review.thread.length;i++){var thread=review.thread[i];html+='<div class="'+(thread.type=='companyReply'?'company':'customer')+' comment">';html+='<div class="name"><span>'+thread.author+'</span>'
if(thread.type=='companyReply')html+='from '+companyName;html+='</div><div class="text">'+thread.comment+'</div>';html+='</div>';}
html+='</div><div class="expandComment"><span class="commentCount">'+review.thread.length+' comment'+(review.thread.length>1?'s':'')+'</span></div></div>';}
html+='<p class="isImported'+(review.isImported?'':' trustpilot')+'">Collected by '+(review.isImported?companyName:'Trustpilot')+'</p';html+='</div>';if(typeof review['media']!='undefined'&&review.media.length>0){html+='<div class="tabletThird media">'
html+='<a href="#gallery" id="'+$this.data('tourcode')+review.id+'" class="viewGallery">';html+='<img src="'+review.media[0].src+'?crop=quarter" alt="'+review.media[0].title+'"/>';html+='<div><span>View Gallery</span></div>';html+='</a>';html+='</div>';}
html+='</div>';$div.append(html);if(typeof review['media']!='undefined'&&review.media.length>0){$div.find('#'+$this.data('tourcode')+review.id).data('gallery',review.media);}}
$div.insertBefore('.reviews .paging').slideDown(400,function(){});$div.find('.viewGallery').each(function(){var button=$(this);var id=button.data('id')||button.attr('id');if(!button.hasClass('attached')){button.on('click',function(e){e.preventDefault();openModalGallery(id,button.data('gallery'),undefined,0);});button.addClass('attached');}});$div.find('.expandComment').click(tourItinerary.expandComment);tourItinerary.truncateReviews();var $btn=$('.reviews .paging .button');var total=$btn.data('count');var displayed=$('.reviews .review').length;if(displayed>=total){$btn.hide();}else{$btn.data('min',displayed+1);if(displayed+6>total){$btn.data('max',total);$btn.text('Show all '+total+' reviews');}
else{$btn.data('max',displayed+6);}}},complete:function(x,s){$('.review .paging a').removeClass('disabled');},error:function(err,status,desc){try{alert(desc+':\n'+err.responseJSON.Message);}
catch(e){alert('A server error has occurred');}}});},expandComment:function(e){$(this).toggleClass('on').prev().slideToggle();},truncateReviews:function(){var reviewTextLimit=500;$('._review').each(function(){var $this=$(this);var text=$this.text();if(text.length>reviewTextLimit&&typeof $this.data('review')=='undefined'){$this.data('review',$this.html());$this.html(text.substring(0,reviewTextLimit)+'... <a href="#" class="readMore">read more</a>');$this.find('.readMore').click(tourItinerary.expandReview);}});},expandReview:function(e){e.preventDefault();var $review=$(this).closest('._review');$review.html($review.data('review'));},toggleMobilityRating:function(){var $info=$(this).find('.info');$info.slideToggle(400,function(){var $this=$(this);if($this.is(':visible')){var stickyHeaderHeight=134;var documentScrollTop=$(document).scrollTop()-stickyHeaderHeight;var divTop=Math.round($this.offset().top)-stickyHeaderHeight;if(documentScrollTop>divTop){window.scroll({top:divTop,behavior:'smooth'});}}});},equaliseHeight:function(){var $options=$('.itinerary .options');if($options.length){$options.find('img:not(.load)').addClass('load').on('load',tourItinerary.equaliseHeight);$options.each(function(){var $this=$(this);if($this.is(':visible')){if($this.find('img').length){var pHeight=[0,0];$this.children().each(function(){$div=$(this);$div.find('p').each(function(ix){var $p=$(this);if(ix<pHeight.length&&$p.height()>pHeight[ix]){pHeight[ix]=$p.height();}});});$this.children().each(function(){$div=$(this);$div.find('p').each(function(ix){var $p=$(this);if(ix<pHeight.length){$p.height(pHeight[ix]);}});});}
else{var theHeight=0;$this.children().each(function(){$div=$(this);if($div.height()>theHeight){theHeight=$div.height();}});$this.children().each(function(){$div=$(this);$div.height(theHeight);});}}});}},showHideDotNav:function(){$('.itinerary .options:visible').each(function(){var $options=$(this);var $dotNav=$options.next('.dotNav');if(this.offsetWidth<this.scrollWidth){$dotNav.show();}
else{$dotNav.hide();}});},clickDotNav:function(e){e.preventDefault();var $this=$(this);if(!$this.hasClass('on')){$this.parent().find('.on').removeClass('on');$this.addClass('on');}
var ix=$(this).index();var items=$this.parent().parent().find('.options').children();if(ix<items.length){$(items[ix]).scrollintoview({direction:'horizontal'});}},windowResize:function(){$('.tourHighlights.alt section .highlights').each(function(){var $highlights=$(this).find('.highlight');if($highlights.length){$highlights.find('img:not(.load)').addClass('load').on('load',tourItinerary.windowResize);var hideHandle=$highlights.width()*$highlights.length<$highlights.parent().width();if(hideHandle)
$(this).find('.handle').hide();else
$(this).find('.handle').show();}});}};$(document).ready(tourItinerary.init);
;;;var tourListing={criteria:null,waitCount:0,displayInitialised:false,scrollPosition:{top:0,bottom:0},tours:null,rexCount:/ \(\d+\)/,maxPrice:999999,init:function(){var $tourListing=$('#tourListing');if($tourListing.length==0)return;$tourListing.find('.promo[data-visitor-type]').filter('[data-visitor-type!="'+getVisitorType()+'"]').remove();$('.filter').css('opacity','0.25');if(!tourListing.displayInitialised){$('.display .button').click(tourListing.displayClick);var displayMode=getCookie('display')||'';if(displayMode!=''){var $btn=$('.display .button.'+displayMode);if($btn.length&&!$btn.hasClass('on')){$btn[0].click();$tourListing.data('layout',displayMode);}}
tourListing.displayInitialised=true;$('#sort,#sortMobile').change(tourListing.sortChange);var sortMode=getCookie('sort')||'';if(sortMode!=''){var $option=$('#sort option[value='+sortMode+']');if($option.length&&!$option.is(':selected'))$('#sort').val(sortMode).change();}
$('.openFilter, .filter .close, .apply .button').click(tourListing.toggleFilter);tourListing.scrollPosition.top=$tourListing.offset().top;tourListing.scrollPosition.bottom=$tourListing.height();if(typeof Touch=='object')document.addEventListener('touchmove',tourListing.scroll,false);else $(window).scroll(tourListing.scroll);$('.top').click(tourListing.topClick);if($('.destinationGuides .checkbox').length==0)$('.destinationGuides').remove();}
if(typeof tourSearch=='undefined'||tourSearch==null){console.error('tourListing.init','tourSearch is null or undefined');return;}
if(tourSearch.data==null){if(tourListing.waitCount<200){tourListing.waitCount++;window.setTimeout(tourListing.init,100);}
else
console.error('tourListing.init','Waited too long for tourSearch.data to be available');return;}
else if(tourListing.waitCount>20)
console.log('tourListing.init','Waited '+(tourListing.waitCount/10)+' seconds for tourSearch.data to be available');if(tourListing.criteria==null)tourListing.criteria=$tourListing.data('criteria');tourListing.tours=[];var arrTourCodes=$tourListing.data('tour-codes').split(',');for(var i=tourSearch.data.tours.length-1;i>=0;i--){var tour=tourSearch.data.tours[i];if(arrTourCodes.indexOf(tour.code)>=0)tourListing.tours.push(tour);}
var $tours=$('#tourListing .tours');$tours.find('div[title]').infoBox({position:'center'});$tours.click(tourListing.toursClick);tourListing.initPriceSlider();tourListing.applyFilter('',false);$('.filter').click(tourListing.filterClick).css('opacity','');$(window).resize(tourListing.equaliseHeight);gtm.setupTourListings($tours,false);gtm.waitForTourListing=false;},initPriceSlider:function(){var sliderData=[];var maxPrice=0;var ix=tourListing.tours.length;while(ix>0){ix--;var t=tourListing.tours[ix];if(t.price>maxPrice)maxPrice=t.price;if(t.single>maxPrice)maxPrice=t.single;}
var val=0;sliderData.push(0);do{if(val<1000)val+=200;else if(val<2000)val+=250;else if(val<4000)val+=500;else if(val<6000)val+=1000;else if(val<10000)val+=2000;else if(val<30000)val+=5000;else val+=10000;sliderData.push(val);}while(val<=maxPrice);tourListing.priceSliderData=sliderData;tourListing.maxPrice=sliderData[sliderData.length-1];var selectedRange=[0,sliderData.length-1];if(tourListing.criteria.priceFrom>0||tourListing.criteria.priceTo<tourListing.maxPrice){for(var ix=0;ix<sliderData.length;ix++){if(tourListing.criteria.priceFrom==sliderData[ix])selectedRange[0]=ix;if(tourListing.criteria.priceTo==sliderData[ix])selectedRange[1]=ix;}}
tourListing.setDdlPriceSlider(sliderData,selectedRange[0],selectedRange[1]);tourListing.$priceSlider=$('<div></div>').slider({range:true,min:0,max:sliderData.length-1,values:selectedRange,stop:function(e,ui){var values=typeof ui=='undefined'?tourListing.$priceSlider.slider('values'):ui.values;tourListing.setDdlPriceSlider(sliderData,values[0],values[1]);var c=tourListing.criteria;if(c.priceFrom!=sliderData[values[0]]||c.priceTo!=sliderData[values[1]]){c.priceFrom=sliderData[values[0]];c.priceTo=sliderData[values[1]];tourListing.applyFilter('price');}}});$('#filterPriceFrom').before(tourListing.$priceSlider);$('#filterPriceFrom').on('change',function(){tourListing.setPriceSlider($(this),sliderData)}).before('<span class="from">'+(config.symbol||'&pound;')+'</span>');$('#filterPriceTo').on('change',function(){tourListing.setPriceSlider($(this),sliderData)}).after('<span class="to">'+(config.symbol||'&pound;')+'</span><div style="clear: both;"></div>');},setPriceSlider:function($elem,sliderData){var values=tourListing.$priceSlider.slider('option','values');if($elem.hasClass('from')){values[0]=Number($elem.val());tourListing.criteria.priceFrom=sliderData[values[0]];}
else{values[1]=Number($elem.val());tourListing.criteria.priceTo=sliderData[values[1]];}
tourListing.$priceSlider.slider('option','values',values);tourListing.setDdlPriceSlider(sliderData,values[0],values[1]);tourListing.applyFilter('price');},setDdlPriceSlider:function(data,ixFrom,ixTo){var fromOptions='';var toOptions='';for(ix=0;ix<data.length;ix++){var val=data[ix];if(ix<=ixTo)fromOptions+='<option value="'+ix+'">'+val+'</option>';if(ix>=ixFrom)toOptions+='<option value="'+ix+'">'+val+'</option>';}
$('#filterPriceFrom').html(fromOptions).val(ixFrom);$('#filterPriceTo').html(toOptions).val(ixTo);},toggleFilter:function(e){e.preventDefault();if($('.filter').is(':visible')){$('.top').click();$('.filter').slideUp();}
else
$('.filter').slideDown();},outputPrice:function(value,symbol){value=parseFloat(value).toFixed(2);var currency=symbol||config.symbol||'&pound;';var minusSign=(value<0)?'- ':'';value=String(Math.abs(value).toFixed(2)).replace(/\B(?=(\d{3})+\b)/g,",");return minusSign+currency+value.replace('.00','');},filterClick:function(e){var $this=$(e.target);if($this.hasClass('select')){var $options=$this.next('.options');if($options.is(':visible'))
$options.slideUp();else{$this.closest('.filter').find('.col .options:visible').slideUp();$options.css('right','').slideDown(400,function(){var right=$options.offset().left+$options.width();if(right>screen.width){$options.css('right','0');}});}}
else if(e.target.tagName=='A'&&$this.parent().hasClass('toggle')){e.preventDefault();if($this.hasClass('up'))$this.removeClass('up').addClass('down').next('div:hidden').slideDown();else $this.removeClass('down').addClass('up').next('div:visible').slideUp();}
else if(e.target.tagName=='A'&&$this.hasClass('reset')){e.preventDefault();if($this.parent().find('#filterPriceFrom').length){tourListing.criteria.priceFrom=0;tourListing.criteria.priceTo=999999;tourListing.$priceSlider.slider('option','values',[0,tourListing.$priceSlider.slider('option','max')]);tourListing.$priceSlider.slider('option','stop').call(tourListing.$priceSlider);tourListing.applyFilter();}else if($this.parent().find('input').length){$this.parent().find('input:checked').prop('checked',false);tourListing.applyFilter($this.parent().find('input').data('filter'));}}
else if(e.target.tagName=='A'&&$this.hasClass('clear')){e.preventDefault();$this.parents('.filter').find('input:checked').prop('checked',false);tourListing.criteria.priceFrom=0;tourListing.criteria.priceTo=999999;tourListing.$priceSlider.slider('option','values',[0,tourListing.$priceSlider.slider('option','max')]);tourListing.$priceSlider.slider('option','stop').call(tourListing.$priceSlider);tourListing.applyFilter();}
else if(e.target.tagName=='INPUT'&&$this.attr('type')=='checkbox'){tourListing.applyFilter($this.data('filter'));}
else if($this.parent().hasClass('applied')){if($this.data('id')){$('#'+$this.data('id')).prop('checked',false);$this.remove();}
else if($this.hasClass('price')){tourListing.criteria.priceFrom=0;tourListing.criteria.priceTo=999999;tourListing.$priceSlider.slider('option','values',[0,tourListing.$priceSlider.slider('option','max')]);tourListing.$priceSlider.slider('option','stop').call(tourListing.$priceSlider);}
tourListing.applyFilter();}
else if(e.target.tagName=='SELECT'&&($this.hasClass('from')||$this.hasClass('to'))){}
else if($this.closest('.tourListingAlt').length){$this.closest('.filter').find('.col .options:visible').slideUp();}},applyFilter:function(filterName,refresh){filterName=filterName||'';refresh=typeof refresh=='boolean'?refresh:true;var $applied=$('.filter .applied');var c=tourListing.criteria;if(filterName==''||filterName=='theme'){var what=c.what.toString().split(',');var $select=$('.filter .theme .select');$select.text('Any');$('.filter .theme input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');var arrIx=what.indexOf(this.value);if($chk.is(':checked')){if(arrIx<0)what.push(this.value);var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');if($applied.find('.theme[data-id='+chkId+']').length==0){$applied.append('<div class="theme" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{if(arrIx>=0)what.splice(arrIx,1);$applied.find('.theme[data-id='+chkId+']').remove();}});if(what.length>1&&what.indexOf('0')==0)what.shift();c.what=what.join(',')||'0';}
if(filterName==''||filterName=='days'){c.daysFrom=999;c.daysTo=0;var $select=$('.filter .days .select');$select.text('Any');$('.filter .days input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');if($chk.is(':checked')){var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');if($chk.data('from')<c.daysFrom)c.daysFrom=$chk.data('from');if($chk.data('to')>c.daysTo)c.daysTo=$chk.data('to');if($applied.find('.days[data-id='+chkId+']').length==0){$applied.append('<div class="days" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{$applied.find('.days[data-id='+chkId+']').remove();}});if(c.daysFrom==999)c.daysFrom=0;if(c.daysTo==0)c.daysTo=999;}
if(filterName==''||filterName=='options'){var $select=$('.filter .options .select');$select.text('Any');var $inputs=$select.length?$select.next('.options').find('input'):$('.filter .options input');$inputs.each(function(){var $chk=$(this);var chkId=$chk.attr('id');if($chk.is(':checked')){var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');if($applied.find('.options[data-id='+chkId+']').length==0){$applied.append('<div class="options" data-id="'+chkId+'">'+displayText+'</div>')}
c[$chk.data('criteria')]=true;$select.text($select.text()=='Any'?displayText:'Multiple');}else{$applied.find('.options[data-id='+chkId+']').remove();c[$chk.data('criteria')]=false;}});}
if(filterName==''||filterName=='price'){var $select=$('.filter .price .select');$select.text('Any');$applied.find('.price').remove();if(c.priceFrom>0||c.priceTo<tourListing.maxPrice){var displayText=tourListing.outputPrice(c.priceFrom)+'-'+tourListing.outputPrice(c.priceTo);$applied.append('<div class="price">Price Range '+displayText+'</div>');$select.text($select.text()=='Any'?displayText:'Multiple');}}
if(filterName==''||filterName=='transport'){var transport=[];var $select=$('.filter .transport .select');$select.text('Any');$('.filter .transport input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');if($chk.is(':checked')){var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');transport.push(this.value);if($applied.find('.transport[data-id='+chkId+']').length==0){$applied.append('<div class="transport" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{$applied.find('.transport[data-id='+chkId+']').remove();}});c.transport=transport.join(',');}
if(filterName==''||filterName=='type'){var type=[];var $select=$('.filter .type .select');$select.text('Any');$('.filter .type input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');if($chk.is(':checked')){var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');type.push(this.value);if($applied.find('.type[data-id='+chkId+']').length==0){$applied.append('<div class="type" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{$applied.find('.type[data-id='+chkId+']').remove();}});c.type=type.join(',');}
if(filterName==''||filterName=='physicalRating'){var physicalRating=[];var $select=$('.filter .physicalRating .select');$select.text('Any');$('.filter .physicalRating input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');if($chk.is(':checked')){var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');physicalRating.push(this.value);if($applied.find('.physicalRating[data-id='+chkId+']').length==0){$applied.append('<div class="physicalRating" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{$applied.find('.physicalRating[data-id='+chkId+']').remove();}});c.physicalRating=physicalRating.join(',');}
if(filterName==''||filterName=='month'){var months=[];var $select=$('.filter .month .select');$select.text('Any');$('.filter .month input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');if($chk.is(':checked')){var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');months.push(this.value);if($applied.find('.month[data-id='+chkId+']').length==0){$applied.append('<div class="month" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{$applied.find('.month[data-id='+chkId+']').remove();}});c.when=months.join(',');}
if(filterName==''||filterName=='regionAndCountry'){var where=c.where.toString().split(',');var $select=$('.filter .regionAndCountry .select');$select.text('Any');$('.filter .regionAndCountry input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');var arrIx=where.indexOf(this.value);if($chk.is(':checked')){if(arrIx<0)where.push(this.value);var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');if($applied.find('.regionAndCountry[data-id='+chkId+']').length==0){$applied.append('<div class="regionAndCountry" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{if(arrIx>=0)where.splice(arrIx,1);$applied.find('.regionAndCountry[data-id='+chkId+']').remove();}});if(where.length>1&&where.indexOf('0')==0)where.shift();c.where=where.join(',')||'0';}
if(filterName==''||filterName=='destinationGuides'){var where=c.where.toString().split(',');var $select=$('.filter .destinationGuides .select');$select.text('Any');$('.filter .destinationGuides input').each(function(){var $chk=$(this);var chkId=$chk.attr('id');var arrIx=where.indexOf(this.value);if($chk.is(':checked')){if(arrIx<0)where.push(this.value);var displayText=$chk.next('label').text().replace(tourListing.rexCount,'');if($applied.find('.destinationGuides[data-id='+chkId+']').length==0){$applied.append('<div class="destinationGuides" data-id="'+chkId+'">'+displayText+'</div>')}
$select.text($select.text()=='Any'?displayText:'Multiple');}else{if(arrIx>=0)where.splice(arrIx,1);$applied.find('.destinationGuides[data-id='+chkId+']').remove();}});if(where.length>1&&where.indexOf('0')==0)where.shift();c.where=where.join(',')||'0';}
tourListing.updateFilterCounts();if(refresh){tourListing.refreshTours();if(tourListing.$filter&&tourListing.$filter.hasClass('fixed')){var tourTop=tourListing.$filterTours.offset().top-143;window.scroll({top:tourTop,behavior:'smooth'});}}
var $lbl=$('#tourListing .openFilter');var txt=$lbl.text().replace(tourListing.rexCount,'');var count=$('.filter .applied>div').length;if(count>0)$lbl.text(txt+' ('+count+')');},updateFilterCounts:function(){if(tourListing.tours==null)return;var c=tourListing.criteria;var tourSubset=[];var arrWhere=c.where.split(',').map(Number);var arrTheme=c.what.split(',').map(Number);var arrTransport=c.transport.split(',').map(Number);var arrType=c.type.split(',').map(Number);var arrPhysicalRating=c.physicalRating.split(',').map(Number);var arrWhen=c.when.split(',').map(Number);var $checks=$('.filter .checkbox');$checks.data('count',0);for(var i=tourListing.tours.length-1;i>=0;i--){var tour=tourListing.tours[i];if(tour.days<c.daysFrom||tour.days>c.daysTo||tour.price<c.priceFrom||tour.price>c.priceTo||(c.lateAvail&&!tour.late)||(c.singlePrices&&tour.single==0)||(c.regional&&!tour.regional)||(c.physicalRating!=''&&arrPhysicalRating.indexOf(tour.pr)<0))continue;if(c.what!=''&&c.what!='0'){if(arrTheme.length>tour.what)continue;var themeOk=true;for(var j=0;j<arrTheme.length;j++)
if(tour.what.indexOf(arrTheme[j])<0){themeOk=false;break;}
if(!themeOk)continue;}
if(c.transport!=''){if(arrTransport.length>tour.transport)continue;var transportOk=true;for(var j=0;j<arrTransport.length;j++)
if(tour.transport.indexOf(arrTransport[j])<0){transportOk=false;break;}
if(!transportOk)continue;}
if(c.type!=''){if(arrType.length>tour.type)continue;var typeOk=true;for(var j=0;j<arrType.length;j++)
if(tour.type.indexOf(arrType[j])<0){typeOk=false;break;}
if(!typeOk)continue;}
if(c.where!=''&&c.where!='0'){if(arrWhere.length>tour.where)continue;var whereOk=true;for(var j=0;j<arrWhere.length;j++)
if(tour.where.indexOf(arrWhere[j])<0){whereOk=false;break;}
if(!whereOk)continue;}
if(tour.when.length){var arrMonth=[];for(var j=0;j<tour.when.length;j++){var month=tour.when[j].month;if(arrMonth.indexOf(month)<0&&(c.singlePrices?tour.when[j].single:tour.when[j].price)>0){arrMonth.push(month);var $check=$('#chk'+month).parent();$check.data('count',$check.data('count')+1);}}}
if(c.when!=''){var whenOk=false;for(var j=0;j<tour.when.length;j++){if(arrWhen.indexOf(tour.when[j].month)>=0&&(c.singlePrices?tour.when[j].single:tour.when[j].price)>0){whenOk=true;break;}}
if(!whenOk)continue;}
tourSubset.push(tour);}
for(var i=tourSubset.length-1;i>=0;i--){var tour=tourSubset[i];for(var j=0;j<tour.what.length;j++){var $check=$('#chk'+tour.what[j]).parent();$check.data('count',$check.data('count')+1);}
if(tour.days>0){var $check=$(tour.days<=5?'#chkDays1':tour.days<=9?'#chkDays2':tour.days<=13?'#chkDays3':'#chkDays4').parent();$check.data('count',$check.data('count')+1);}
for(var j=0;j<tour.transport.length;j++){var $check=$('#chk'+tour.transport[j]).parent();$check.data('count',$check.data('count')+1);}
for(var j=0;j<tour.type.length;j++){var $check=$('#chk'+tour.type[j]).parent();$check.data('count',$check.data('count')+1);}
if(tour.late){var $check=$('#filterLate').parent();$check.data('count',$check.data('count')+1);}
if(tour.single>0){var $check=$('#filterSingle').parent();$check.data('count',$check.data('count')+1);if(tour.nss){var $check=$('#filterNoSingleSupplement').parent();$check.data('count',$check.data('count')+1);}}
if(tour.regional){var $check=$('#filterRegional').parent();$check.data('count',$check.data('count')+1);}
if(tour.pr){var $check=$('#chk'+tour.pr).parent();$check.data('count',$check.data('count')+1);}
for(var j=0;j<tour.where.length;j++){var $check=$('#chk'+tour.where[j]).parent();$check.data('count',$check.data('count')+1);}}
$checks.each(function(){var $this=$(this);var count=$this.data('count');if(count==0)
$this.hide();else{var $lbl=$this.find('label');var txt=$lbl.text().replace(tourListing.rexCount,'');$lbl.text(txt+' ('+count+')');$this.show();}});var $wrapper=$('.filter .destinationGuides .checkbox').parent();var $lst=$wrapper.find('.checkbox');$lst.sort(function(a,b){return+$(b).data('count')- +$(a).data('count');});$lst.appendTo($wrapper);},displayClick:function(e){e.preventDefault();var $btn=$(this);if(!$btn.hasClass('on')){$btn.addClass('on').removeClass('tertiary').siblings('.on').removeClass('on').addClass('tertiary');var displayMode=this.href.split('#')[1];$('#tourListing .tours').removeClass('list').removeClass('grid').removeClass('map').addClass(displayMode);setCookie('display',displayMode);if(displayMode=='grid'||displayMode=='map'){tourListing.equaliseHeight();}
if(tourListing.$filter&&tourListing.$filter.hasClass('fixed')){var tourTop=tourListing.$filterTours.offset().top-143;window.scroll({top:tourTop,behavior:'smooth'});}}},sortChange:function(e){if(tourListing.criteria.sort!=this.value){tourListing.criteria.sort=this.value;tourListing.refreshTours();}},equaliseHeight:function(){var $tours=$('#tourListing .tours .tour, #tourListing .tours .promo');if($tours.length){$tours.find('img:not(.load)').addClass('load').on('load',tourListing.equaliseHeight);var $cssRule=$('#equaliseHeight');$cssRule=($cssRule.length==0)?$('<style id="equaliseHeight"></style>'):$cssRule.detach();$cssRule.html('');var maxHeight=0;$tours.each(function(){var thisHeight=$(this).outerHeight();if(thisHeight>maxHeight){maxHeight=thisHeight;}});$cssRule.html('.grid .tour, .map .tour, .grid .promo, .map .promo {height:'+maxHeight+'px}'+'@media (max-width: 1023px) { #tourListing .tour, .tours .promo {height:'+maxHeight+'px}}');$cssRule.appendTo('head');tourListing.scrollPosition.top=$('#tourListing').offset().top;tourListing.scrollPosition.bottom=$('#tourListing').height();}},refreshTours:function(){var $toursLoading=$('#toursLoading');if($toursLoading.length){$toursLoading.show();}
else{$toursLoading='<div id="toursLoading"><span class="ajaxLoadingIcon">&#xf021;</span> Loading, please wait...</div>';$('#tourListing .tours').prepend($toursLoading);}
$('#tourListing .tours .tour').css('opacity',0.4);tourListing.criteria.min=1;tourListing.criteria.max=12;var url='/ajax/?countrycode='+config.countryCode;for(var key in tourListing.criteria){if(key=='sort'||key=='regional'||tourListing.criteria[key]!=''||tourListing.criteria[key]>0){url+='&'+key+'='+tourListing.criteria[key];}}
$.ajax({url:url,type:'GET',dataType:'html',success:function(html){if(html=='')html='<div class="noneFound"><p>Unfortunately, we were not able to find any tours matching your search</p><p>Please adjust the search filters and try again</p></div>';var $tours=$('#tourListing .tours');$tours.html(html);$tours.find('div[title]').infoBox({position:'center'});$tours.find('a[target=grjPopup]').click(ndc.openPopUp);tourListing.equaliseHeight();if(geo.userCulture=='en-AU'){$('.tour[data-istravelmarvel] .price, .tour[data-istravelmarvel] .listPrice').text('On request');}
if(favourites&&favourites.initElems)favourites.initElems($tours);gtm.setupTourListings($tours,true);gtm.waitForTourListing=false;},complete:function(x,s){$('#tourListing .tours .tour').css('opacity','');$('#toursLoading').hide();},error:function(err,status,desc){try{alert(desc+':\n'+err.responseJSON.Message);}
catch(e){alert('A server error has occurred');}}});},toursClick:function(e){var $this=$(e.target);if(e.target.tagName=='A'&&$this.data('max')>0){e.preventDefault();if($this.hasClass('disabled'))return;var min=$this.data('min');var max=$this.data('max');if(min>0&&max>min){tourListing.criteria.min=min;tourListing.criteria.max=max;tourListing.loadMoreTours();}}
else if($this.closest('.toggle').length&&$this.closest('.mapAccordion').length){e.preventDefault();var $a=$this.closest('.toggle');var $div=$a.prev('div');if($a.hasClass('open')){$a.removeClass('open');$div.slideUp();}
else{var $img=$div.find('img[data-src]');if($img.length){$img.attr('src',$img.data('src')).removeData('src');}
$a.addClass('open');$div.slideDown();}}},loadMoreTours:function(){$('.paging a').addClass('disabled');var url='/ajax/?countrycode='+config.countryCode;for(var key in tourListing.criteria){if(typeof tourListing.criteria[key]!='number'||tourListing.criteria[key]>0){url+='&'+key+'='+tourListing.criteria[key];}}
$.ajax({url:url,type:'GET',dataType:'html',success:function(html){$('.paging').slideUp(400);var $newTours=$('<div class="slideDown" style="display:none">'+html+'</div>');$('#tourListing .tours').append($newTours).find('.slideDown').slideDown(400,function(){tourListing.equaliseHeight();tourListing.scrollPosition.bottom=tourListing.scrollPosition.top+$('#tourListing').height();});$newTours.find('div[title]').infoBox({position:'center'});$newTours.find('a[target=grjPopup]').click(ndc.openPopUp);if(favourites&&favourites.initElems)favourites.initElems($newTours);gtm.setupTourListings($newTours,true);gtm.waitForTourListing=false;},complete:function(x,s){$('.paging .button').removeClass('disabled');},error:function(err,status,desc){try{alert(desc+':\n'+err.responseJSON.Message);}
catch(e){alert('A server error has occurred');}}});},scrollTimeout:null,scroll:function(){if(tourListing.scrollTimeout)clearTimeout(tourListing.scrollTimeout);tourListing.scrollTimeout=setTimeout(tourListing.scrollEnd,100);},scrollEnd:function(){var scrollTop=$(window).scrollTop();if(tourListing.scrollPosition.top<scrollTop&&scrollTop<tourListing.scrollPosition.bottom){$('.top').css('right',0);}
else{$('.top').css('right','-51px');}
if(!tourListing.aniInProgress){tourListing.$filterTours=tourListing.$filterTours||$('.tourListingAlt .tours');if(tourListing.$filterTours.length){tourListing.$filter=tourListing.$filter||$('#filter');var tourTop=tourListing.$filterTours.offset().top-132;var height=tourListing.$filter.height();var $tourSearch=$('header .tourSearch');if(scrollTop>tourTop&&window.innerWidth>=1024){if(!tourListing.$filter.hasClass('fixed')){tourListing.aniInProgress=true;tourListing.$filter.css('margin-top','-'+height+'px').addClass('fixed').animate({'margin-top':'0'},400,function(){tourListing.aniInProgress=false;});if($tourSearch.css('position')=='sticky'){var h=$tourSearch.height();$tourSearch.css('display','none').prev().css('margin-bottom',h+'px');}
else
$tourSearch.css('top','6px');}}
else{if(tourListing.$filter.hasClass('fixed')){tourListing.aniInProgress=true;tourListing.$filter.animate({'margin-top':'-'+height+'px'},400,function(){tourListing.$filter.removeClass('fixed').css('margin-top','');tourListing.aniInProgress=false;if($tourSearch.css('position')=='sticky'){var h=$tourSearch.height();$tourSearch.css('display','').prev().css('margin-bottom','');}});$tourSearch.css('top','');}}
tourListing.$filter.find('.col .options:visible').slideUp();}}},topClick:function(e){if(typeof e!='undefined')e.preventDefault();$('html, body').animate({scrollTop:tourListing.scrollPosition.top-$('header').height()-$('.tourSearch').height()},400);}};$(document).ready(tourListing.init);
;;;