function createMethod(n){return function(){throw new Error('The "'+n+"\" method is not available on the playback technology's API");}}function getPosKey(){return"scrollPosition"}function saveScrollPosition(n){var t=[],r=$.cookie(getPosKey()),i;r&&t.push(JSON.parse(r));i=_.find(t,function(n){return n.location==window.location.pathname?!0:!1});i?i.pos=n?0:$(window).scrollTop():t.push({location:window.location.pathname,pos:n?0:$(window).scrollTop()});t=_.last(t,2);n?($("html,body").animate({scrollTop:0},1),$.removeCookie(getPosKey()),window.DoNotScroll=!0):$.cookie(getPosKey(),JSON.stringify(t),{path:"/"})}function resetScroll(n){var i,t,r;console.log("resetting scroll possy "+n);i=$.cookie("productDetailUnloaded");i?($.removeCookie("productDetailUnloaded",{path:"/"}),t=$.cookie(getPosKey()),t&&(r=JSON.parse(t),_.find(r,function(n){n.location==window.location.pathname&&setTimeout(function(){$.cookie(getPosKey())&&!window.DoNotScroll&&(console.log("reseting"),$("html,body").animate({scrollTop:n.pos},1))},1)}))):setTimeout(function(){console.log("reset occurs");$("html,body").animate({scrollTop:0},1)},1)}var exciteApp,_gaq,vjs,videojs,hasOwnProp,_backgroundSizeSupported,i,methodName,cx,categoriesHelper,ibsa;for(function(){var n,r,v,i,t,y,p,w,b,k,d,o,g,s,h,l,c,u,nt,tt,it,f,e,a,ut=[].slice,rt=[].indexOf||function(n){for(var t=0,i=this.length;i>t;t++)if(t in this&&this[t]===n)return t;return-1};n=window.jQuery||window.Zepto||window.$;n.payment={};n.payment.fn={};n.fn.payment=function(){var t,i;return i=arguments[0],t=2<=arguments.length?ut.call(arguments,1):[],n.payment.fn[i].apply(this,t)};t=/(\d{1,4})/g;n.payment.cards=i=[{type:"visaelectron",patterns:[4026,417500,4405,4508,4844,4913,4917],format:t,length:[16],cvcLength:[3],luhn:!0},{type:"maestro",patterns:[5018,502,503,56,58,639,6220,67],format:t,length:[12,13,14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"forbrugsforeningen",patterns:[600],format:t,length:[16],cvcLength:[3],luhn:!0},{type:"dankort",patterns:[5019],format:t,length:[16],cvcLength:[3],luhn:!0},{type:"visa",patterns:[4],format:t,length:[13,16],cvcLength:[3],luhn:!0},{type:"mastercard",patterns:[51,52,53,54,55,22,23,24,25,26,27],format:t,length:[16],cvcLength:[3],luhn:!0},{type:"amex",patterns:[34,37],format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[3,4],luhn:!0},{type:"dinersclub",patterns:[30,36,38,39],format:/(\d{1,4})(\d{1,6})?(\d{1,4})?/,length:[14],cvcLength:[3],luhn:!0},{type:"discover",patterns:[60,64,65,622],format:t,length:[16],cvcLength:[3],luhn:!0},{type:"unionpay",patterns:[62,88],format:t,length:[16,17,18,19],cvcLength:[3],luhn:!1},{type:"jcb",patterns:[35],format:t,length:[16],cvcLength:[3],luhn:!0}];r=function(n){var u,f,o,t,r,s,h,e;for(n=(n+"").replace(/\D/g,""),t=0,s=i.length;s>t;t++)for(u=i[t],e=u.patterns,r=0,h=e.length;h>r;r++)if(o=e[r],f=o+"",n.substr(0,f.length)===f)return u};v=function(n){for(var r,t=0,u=i.length;u>t;t++)if(r=i[t],r.type===n)return r};g=function(n){var t,r,u,f,i,e;for(u=!0,f=0,r=(n+"").split("").reverse(),i=0,e=r.length;e>i;i++)t=r[i],t=parseInt(t,10),(u=!u)&&(t*=2),t>9&&(t-=9),f+=t;return f%10==0};o=function(n){var t;return null!=n.prop("selectionStart")&&n.prop("selectionStart")!==n.prop("selectionEnd")?!0:null!=("undefined"!=typeof document&&null!==document&&null!=(t=document.selection)?t.createRange:void 0)&&document.selection.createRange().text?!0:!1};e=function(n,t){var i,u,r;try{i=t.prop("selectionStart")}catch(f){u=f;i=null}return r=t.val(),t.val(n),null!==i&&t.is(":focus")?(i===r.length&&(i=n.length),t.prop("selectionStart",i),t.prop("selectionEnd",i)):void 0};u=function(n){var r,t,e,o,u,f,i,s;for(null==n&&(n=""),e="０１２３４５６７８９",o="0123456789",f="",r=n.split(""),i=0,s=r.length;s>i;i++)t=r[i],u=e.indexOf(t),u>-1&&(t=o[u]),f+=t;return f};c=function(t){return setTimeout(function(){var r,i;return r=n(t.currentTarget),i=r.val(),i=u(i),i=i.replace(/\D/g,""),e(i,r)})};h=function(t){return setTimeout(function(){var r,i;return r=n(t.currentTarget),i=r.val(),i=u(i),i=n.payment.formatCardNumber(i),e(i,r)})};w=function(t){var f,e,u,h,o,s,i;return u=String.fromCharCode(t.which),!/^\d+$/.test(u)||(f=n(t.currentTarget),i=f.val(),e=r(i+u),h=(i.replace(/\D/g,"")+u).length,s=16,e&&(s=e.length[e.length.length-1]),h>=s||null!=f.prop("selectionStart")&&f.prop("selectionStart")!==i.length)?void 0:(o=e&&"amex"===e.type?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/,o.test(i)?(t.preventDefault(),setTimeout(function(){return f.val(i+" "+u)})):o.test(i+u)?(t.preventDefault(),setTimeout(function(){return f.val(i+u+" ")})):void 0)};y=function(t){var i,r;return i=n(t.currentTarget),r=i.val(),8!==t.which||null!=i.prop("selectionStart")&&i.prop("selectionStart")!==r.length?void 0:/\d\s$/.test(r)?(t.preventDefault(),setTimeout(function(){return i.val(r.replace(/\d\s$/,""))})):/\s\d?$/.test(r)?(t.preventDefault(),setTimeout(function(){return i.val(r.replace(/\d$/,""))})):void 0};l=function(t){return setTimeout(function(){var r,i;return r=n(t.currentTarget),i=r.val(),i=u(i),i=n.payment.formatExpiry(i),e(i,r)})};b=function(t){var r,u,i;return u=String.fromCharCode(t.which),/^\d+$/.test(u)?(r=n(t.currentTarget),i=r.val()+u,/^\d$/.test(i)&&"0"!==i&&"1"!==i?(t.preventDefault(),setTimeout(function(){return r.val("0"+i+" / ")})):/^\d\d$/.test(i)?(t.preventDefault(),setTimeout(function(){var n,t;return n=parseInt(i[0],10),t=parseInt(i[1],10),t>2&&0!==n?r.val("0"+n+" / "+t):r.val(""+i+" / ")})):void 0):void 0};k=function(t){var i,u,r;return u=String.fromCharCode(t.which),/^\d+$/.test(u)?(i=n(t.currentTarget),r=i.val(),/^\d\d$/.test(r)?i.val(""+r+" / "):void 0):void 0};d=function(t){var r,i,u;return u=String.fromCharCode(t.which),"/"===u||" "===u?(r=n(t.currentTarget),i=r.val(),/^\d$/.test(i)&&"0"!==i?r.val("0"+i+" / "):void 0):void 0};p=function(t){var i,r;return i=n(t.currentTarget),r=i.val(),8!==t.which||null!=i.prop("selectionStart")&&i.prop("selectionStart")!==r.length?void 0:/\d\s\/\s$/.test(r)?(t.preventDefault(),setTimeout(function(){return i.val(r.replace(/\d\s\/\s$/,""))})):void 0};s=function(t){return setTimeout(function(){var r,i;return r=n(t.currentTarget),i=r.val(),i=u(i),i=i.replace(/\D/g,"").slice(0,4),e(i,r)})};f=function(n){var t;return n.metaKey||n.ctrlKey?!0:32===n.which?!1:0===n.which?!0:n.which<33?!0:(t=String.fromCharCode(n.which),!!/[\d\s]/.test(t))};tt=function(t){var f,i,e,u;return f=n(t.currentTarget),e=String.fromCharCode(t.which),/^\d+$/.test(e)&&!o(f)?(u=(f.val()+e).replace(/\D/g,""),i=r(u),i?u.length<=i.length[i.length.length-1]:u.length<=16):void 0};it=function(t){var r,u,i;return r=n(t.currentTarget),u=String.fromCharCode(t.which),/^\d+$/.test(u)&&!o(r)?(i=r.val()+u,i=i.replace(/\D/g,""),i.length>6?!1:void 0):void 0};nt=function(t){var i,r,u;return i=n(t.currentTarget),r=String.fromCharCode(t.which),/^\d+$/.test(r)&&!o(i)?(u=i.val()+r,u.length<=4):void 0};a=function(t){var r,f,e,u,o;return r=n(t.currentTarget),o=r.val(),u=n.payment.cardType(o)||"unknown",r.hasClass(u)?void 0:(f=function(){var n,r,t;for(t=[],n=0,r=i.length;r>n;n++)e=i[n],t.push(e.type);return t}(),r.removeClass("unknown"),r.removeClass(f.join(" ")),r.addClass(u),r.toggleClass("identified","unknown"!==u),r.trigger("payment.cardType",u))};n.payment.fn.formatCardCVC=function(){return this.on("keypress",f),this.on("keypress",nt),this.on("paste",s),this.on("change",s),this.on("input",s),this};n.payment.fn.formatCardExpiry=function(){return this.on("keypress",f),this.on("keypress",it),this.on("keypress",b),this.on("keypress",d),this.on("keypress",k),this.on("keydown",p),this.on("change",l),this.on("input",l),this};n.payment.fn.formatCardNumber=function(){return this.on("keypress",f),this.on("keypress",tt),this.on("keypress",w),this.on("keydown",y),this.on("keyup",a),this.on("paste",h),this.on("change",h),this.on("input",h),this.on("input",a),this};n.payment.fn.restrictNumeric=function(){return this.on("keypress",f),this.on("paste",c),this.on("change",c),this.on("input",c),this};n.payment.fn.cardExpiryVal=function(){return n.payment.cardExpiryVal(n(this).val())};n.payment.cardExpiryVal=function(n){var i,r,t,u;return u=n.split(/[\s\/]+/,2),i=u[0],t=u[1],2===(null!=t?t.length:void 0)&&/^\d+$/.test(t)&&(r=(new Date).getFullYear(),r=r.toString().slice(0,2),t=r+t),i=parseInt(i,10),t=parseInt(t,10),{month:i,year:t}};n.payment.validateCardNumber=function(n){var t,i;return n=(n+"").replace(/\s+|-/g,""),/^\d+$/.test(n)?(t=r(n),t?(i=n.length,rt.call(t.length,i)>=0&&(t.luhn===!1||g(n))):!1):!1};n.payment.validateCardExpiry=function(t,i){var f,r,u;return"object"==typeof t&&"month"in t&&(u=t,t=u.month,i=u.year),t&&i?(t=n.trim(t),i=n.trim(i),/^\d+$/.test(t)&&/^\d+$/.test(i)&&t>=1&&12>=t?(2===i.length&&(i=70>i?"20"+i:"19"+i),4!==i.length?!1:(r=new Date(i,t),f=new Date,r.setMonth(r.getMonth()-1),r.setMonth(r.getMonth()+1,1),r>f)):!1):!1};n.payment.validateCardCVC=function(t,i){var r,u;return t=n.trim(t),/^\d+$/.test(t)?(r=v(i),null!=r?(u=t.length,rt.call(r.cvcLength,u)>=0):t.length>=3&&t.length<=4):!1};n.payment.cardType=function(n){var t;return n?(null!=(t=r(n))?t.type:void 0)||null:null};n.payment.formatCardNumber=function(t){var i,u,f,e;return t=t.replace(/\D/g,""),(i=r(t))?(f=i.length[i.length.length-1],t=t.slice(0,f),i.format.global?null!=(e=t.match(i.format))?e.join(" "):void 0:(u=i.format.exec(t),null!=u?(u.shift(),u=n.grep(u,function(n){return n}),u.join(" ")):void 0)):t};n.payment.formatExpiry=function(n){var t,r,i,u;return(r=n.match(/^\D*(\d{1,2})(\D+)?(\d{1,4})?/))?(t=r[1]||"",i=r[2]||"",u=r[3]||"",u.length>0?i=" / ":" /"===i?(t=t.substring(0,1),i=""):2===t.length||i.length>0?i=" / ":1===t.length&&"0"!==t&&"1"!==t&&(t="0"+t,i=" / "),t+i+u):""}}.call(this),function(n){typeof define=="function"?define(n):typeof YUI=="function"?YUI.add("es5",n):n()}(function(){function s(){}function tt(n){return n=+n,n!==n?n=0:n!==0&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}function p(n){var t=typeof n;return n===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function ct(n){var t,i,r;if(p(n))return n;if((i=n.valueOf,typeof i=="function"&&(t=i.call(n),p(t)))||(r=n.toString,typeof r=="function"&&(t=r.call(n),p(t))))return t;throw new TypeError;}var o,w,c,t,ht,l,a,v,y,d,u,g,nt,i;Function.prototype.bind||(Function.prototype.bind=function(n){var t=this,u,i;if(typeof t!="function")throw new TypeError("Function.prototype.bind called on incompatible "+t);return u=r.call(arguments,1),i=function(){if(this instanceof i){var f=t.apply(this,u.concat(r.call(arguments)));return Object(f)===f?f:this}return t.apply(n,u.concat(r.call(arguments)))},t.prototype&&(s.prototype=t.prototype,i.prototype=new s,s.prototype=null),i});var e=Function.prototype.call,it=Array.prototype,f=Object.prototype,r=it.slice,n=e.bind(f.toString),h=e.bind(f.hasOwnProperty),rt,ut,ft,et,ot;if((ot=h(f,"__defineGetter__"))&&(rt=e.bind(f.__defineGetter__),ut=e.bind(f.__defineSetter__),ft=e.bind(f.__lookupGetter__),et=e.bind(f.__lookupSetter__)),[1,2].splice(0).length!=2&&(o=Array.prototype.splice,Array.prototype.splice=function(){function t(n){for(var t=[];n--;)t.unshift(n);return t}var n=[],i;return n.splice.bind(n,0,0).apply(null,t(20)),n.splice.bind(n,0,0).apply(null,t(26)),i=n.length,n.splice(5,0,"XXX"),i+1==n.length?!0:void 0}()?function(n,t){return arguments.length?o.apply(this,[n===void 0?0:n,t===void 0?this.length-n:t].concat(r.call(arguments,2))):[]}:function(n,t){var u,i=r.call(arguments,2),f=i.length;if(!arguments.length)return[];if(n===void 0&&(n=0),t===void 0&&(t=this.length-n),f>0){if(t<=0){if(n==this.length)return this.push.apply(this,i),[];if(n==0)return this.unshift.apply(this,i),[]}return u=r.call(this,n,n+t),i.push.apply(i,r.call(this,n+t,this.length)),i.unshift.apply(i,r.call(this,0,n)),i.unshift(0,this.length),o.apply(this,i),u}return o.call(this,n,t)}),[].unshift(0)!=1&&(w=Array.prototype.unshift,Array.prototype.unshift=function(){return w.apply(this,arguments),this.length}),Array.isArray||(Array.isArray=function(t){return n(t)=="[object Array]"}),c=Object("a"),t=c[0]!="a"||!(0 in c),Array.prototype.forEach||(Array.prototype.forEach=function(r){var e=i(this),f=t&&n(this)=="[object String]"?this.split(""):e,o=arguments[1],u=-1,s=f.length>>>0;if(n(r)!="[object Function]")throw new TypeError;while(++u<s)u in f&&r.call(o,f[u],u,e)}),Array.prototype.map||(Array.prototype.map=function(r){var e=i(this),f=t&&n(this)=="[object String]"?this.split(""):e,o=f.length>>>0,s=Array(o),h=arguments[1],u;if(n(r)!="[object Function]")throw new TypeError(r+" is not a function");for(u=0;u<o;u++)u in f&&(s[u]=r.call(h,f[u],u,e));return s}),Array.prototype.filter||(Array.prototype.filter=function(r){var o=i(this),f=t&&n(this)=="[object String]"?this.split(""):o,h=f.length>>>0,s=[],e,c=arguments[1],u;if(n(r)!="[object Function]")throw new TypeError(r+" is not a function");for(u=0;u<h;u++)u in f&&(e=f[u],r.call(c,e,u,o)&&s.push(e));return s}),Array.prototype.every||(Array.prototype.every=function(r){var e=i(this),f=t&&n(this)=="[object String]"?this.split(""):e,o=f.length>>>0,s=arguments[1],u;if(n(r)!="[object Function]")throw new TypeError(r+" is not a function");for(u=0;u<o;u++)if(u in f&&!r.call(s,f[u],u,e))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(r){var e=i(this),f=t&&n(this)=="[object String]"?this.split(""):e,o=f.length>>>0,s=arguments[1],u;if(n(r)!="[object Function]")throw new TypeError(r+" is not a function");for(u=0;u<o;u++)if(u in f&&r.call(s,f[u],u,e))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(r){var s=i(this),f=t&&n(this)=="[object String]"?this.split(""):s,o=f.length>>>0,u,e;if(n(r)!="[object Function]")throw new TypeError(r+" is not a function");if(!o&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");if(u=0,arguments.length>=2)e=arguments[1];else do{if(u in f){e=f[u++];break}if(++u>=o)throw new TypeError("reduce of empty array with no initial value");}while(1);for(;u<o;u++)u in f&&(e=r.call(void 0,e,f[u],u,s));return e}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(r){var o=i(this),e=t&&n(this)=="[object String]"?this.split(""):o,s=e.length>>>0,f,u;if(n(r)!="[object Function]")throw new TypeError(r+" is not a function");if(!s&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");if(u=s-1,arguments.length>=2)f=arguments[1];else do{if(u in e){f=e[u--];break}if(--u<0)throw new TypeError("reduceRight of empty array with no initial value");}while(1);if(u<0)return f;do u in this&&(f=r.call(void 0,f,e[u],u,o));while(u--);return f}),Array.prototype.indexOf&&[0,1].indexOf(1,2)==-1||(Array.prototype.indexOf=function(r){var f=t&&n(this)=="[object String]"?this.split(""):i(this),e=f.length>>>0,u;if(!e)return-1;for(u=0,arguments.length>1&&(u=tt(arguments[1])),u=u>=0?u:Math.max(0,e+u);u<e;u++)if(u in f&&f[u]===r)return u;return-1}),Array.prototype.lastIndexOf&&[0,1].lastIndexOf(0,-3)==-1||(Array.prototype.lastIndexOf=function(r){var f=t&&n(this)=="[object String]"?this.split(""):i(this),e=f.length>>>0,u;if(!e)return-1;for(u=e-1,arguments.length>1&&(u=Math.min(u,tt(arguments[1]))),u=u>=0?u:e-Math.abs(u);u>=0;u--)if(u in f&&r===f[u])return u;return-1}),!Object.keys){var b=!0,k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],st=k.length;for(ht in{toString:null})b=!1;Object.keys=function(n){var t,r,i,f,u;if(typeof n!="object"&&typeof n!="function"||n===null)throw new TypeError("Object.keys called on a non-object");t=[];for(r in n)h(n,r)&&t.push(r);if(b)for(i=0,f=st;i<f;i++)u=k[i],h(n,u)&&t.push(u);return t}}l=-621987552e5;a="-000001";Date.prototype.toISOString&&new Date(l).toISOString().indexOf(a)!==-1||(Date.prototype.toISOString=function(){var t,r,u,n,i;if(!isFinite(this))throw new RangeError("Date.prototype.toISOString called on non-finite value.");for(n=this.getUTCFullYear(),i=this.getUTCMonth(),n+=Math.floor(i/12),i=(i%12+12)%12,t=[i+1,this.getUTCDate(),this.getUTCHours(),this.getUTCMinutes(),this.getUTCSeconds()],n=(n<0?"-":n>9999?"+":"")+("00000"+Math.abs(n)).slice(0<=n&&n<=9999?-4:-6),r=t.length;r--;)u=t[r],u<10&&(t[r]="0"+u);return n+"-"+t.slice(0,2).join("-")+"T"+t.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"});v=!1;try{v=Date.prototype.toJSON&&new Date(NaN).toJSON()===null&&new Date(l).toJSON().indexOf(a)!==-1&&Date.prototype.toJSON.call({toISOString:function(){return!0}})}catch(ri){}v||(Date.prototype.toJSON=function(){var n=Object(this),i=ct(n),t;if(typeof i=="number"&&!isFinite(i))return null;if(t=n.toISOString,typeof t!="function")throw new TypeError("toISOString property is not callable");return t.call(n)});(!Date.parse||"Date.parse is buggy")&&(Date=function(n){function t(i,r,u,f,e,o,s){var h=arguments.length,c;return this instanceof n?(c=h==1&&String(i)===i?new n(t.parse(i)):h>=7?new n(i,r,u,f,e,o,s):h>=6?new n(i,r,u,f,e,o):h>=5?new n(i,r,u,f,e):h>=4?new n(i,r,u,f):h>=3?new n(i,r,u):h>=2?new n(i,r):h>=1?new n(i):new n,c.constructor=t,c):n.apply(this,arguments)}function i(n,t){var i=t>1?1:0;return f[t]+Math.floor((n-1969+i)/4)-Math.floor((n-1901+i)/100)+Math.floor((n-1601+i)/400)+365*(n-1970)}var u=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"),f=[0,31,59,90,120,151,181,212,243,273,304,334,365];for(var r in n)t[r]=n[r];return t.now=n.now,t.UTC=n.UTC,t.prototype=n.prototype,t.prototype.constructor=t,t.parse=function(t){var r=u.exec(t);if(r){var o=Number(r[1]),e=Number(r[2]||1)-1,s=Number(r[3]||1)-1,a=Number(r[4]||0),h=Number(r[5]||0),c=Number(r[6]||0),l=Math.floor(Number(r[7]||0)*1e3),w=!r[4]||r[8]?0:Number(new n(1970,0)),v=r[9]==="-"?1:-1,y=Number(r[10]||0),p=Number(r[11]||0),f;return a<(h>0||c>0||l>0?24:25)&&h<60&&c<60&&l<1e3&&e>-1&&e<12&&y<24&&p<60&&s>-1&&s<i(o,e+1)-i(o,e)&&(f=((i(o,e)+s)*24+a+y*v)*60,f=((f+h+p*v)*60+c)*1e3+l+w,-864e13<=f&&f<=864e13)?f:NaN}return n.parse.apply(this,arguments)},t}(Date));Date.now||(Date.now=function(){return(new Date).getTime()});Number.prototype.toFixed&&8e-5.toFixed(3)==="0.000"&&.9.toFixed(0)!=="0"&&1.255.toFixed(2)==="1.25"&&0xde0b6b3a7640080.toFixed(0)==="1000000000000000128"||function(){function t(t,i){for(var f=-1;++f<u;)i+=t*n[f],n[f]=i%r,i=Math.floor(i/r)}function f(t){for(var f=u,i=0;--f>=0;)i+=n[f],n[f]=Math.floor(i/t),i=i%t*r}function e(){for(var i=u,t="",r;--i>=0;)(t!==""||i===0||n[i]!==0)&&(r=String(n[i]),t===""?t=r:t+="0000000".slice(0,7-r.length)+r);return t}function i(n,t,r){return t===0?r:t%2==1?i(n,t-1,r*n):i(n*n,t/2,r)}function o(n){for(var t=0;n>=4096;)t+=12,n/=4096;while(n>=2)t+=1,n/=2;return t}var r,u,n;r=1e7;u=6;n=[0,0,0,0,0,0];Number.prototype.toFixed=function(n){var r,u,l,s,h,v,c,a;if(r=Number(n),r=r!==r?0:Math.floor(r),r<0||r>20)throw new RangeError("Number.toFixed called with invalid number of decimals");if(u=Number(this),u!==u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(l="",u<0&&(l="-",u=-u),s="0",u>1e-21)if(h=o(u*i(2,69,1))-69,v=h<0?u*i(2,-h,1):u/i(2,h,1),v*=4503599627370496,h=52-h,h>0){for(t(0,v),c=r;c>=7;)t(1e7,0),c-=7;for(t(i(10,c,1),0),c=h-1;c>=23;)f(8388608),c-=23;f(1<<c);t(1,1);f(2);s=e()}else t(0,v),t(1<<-h,0),s=e()+"0.00000000000000000000".slice(2,2+r);return r>0?(a=s.length,s=a<=r?l+"0.0000000000000000000".slice(0,r-a+2)+s:l+s.slice(0,a-r)+"."+s.slice(a-r)):s=l+s,s}}();y=String.prototype.split;"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||"tesst".split(/(s)*/)[1]==="t"||"".split(/.?/).length===0||".".split(/()()/).length>1?function(){var n=/()??/.exec("")[1]===void 0;String.prototype.split=function(t,i){var f=this;if(t===void 0&&i===0)return[];if(Object.prototype.toString.call(t)!=="[object RegExp]")return y.apply(this,arguments);var u=[],s=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.extended?"x":"")+(t.sticky?"y":""),e=0,t=new RegExp(t.source,s+"g"),h,r,o,c;for(f+="",n||(h=new RegExp("^"+t.source+"$(?!\\s)",s)),i=i===void 0?-1>>>0:i>>>0;r=t.exec(f);){if(o=r.index+r[0].length,o>e&&(u.push(f.slice(e,r.index)),!n&&r.length>1&&r[0].replace(h,function(){for(var n=1;n<arguments.length-2;n++)arguments[n]===void 0&&(r[n]=void 0)}),r.length>1&&r.index<f.length&&Array.prototype.push.apply(u,r.slice(1)),c=r[0].length,e=o,u.length>=i))break;t.lastIndex===r.index&&t.lastIndex++}return e===f.length?(c||!t.test(""))&&u.push(""):u.push(f.slice(e)),u.length>i?u.slice(0,i):u}}():"0".split(void 0,0).length&&(String.prototype.split=function(n,t){return n===void 0&&t===0?[]:y.apply(this,arguments)});"".substr&&"0b".substr(-1)!=="b"&&(d=String.prototype.substr,String.prototype.substr=function(n,t){return d.call(this,n<0?(n=this.length+n)<0?0:n:n,t)});u="\t\n\x0b\f\r   ᠎             　\u2028\u2029﻿";(!String.prototype.trim||u.trim())&&(u="["+u+"]",g=new RegExp("^"+u+u+"*"),nt=new RegExp(u+u+"*$"),String.prototype.trim=function(){if(this===void 0||this===null)throw new TypeError("can't convert "+this+" to object");return String(this).replace(g,"").replace(nt,"")});i=function(n){if(n==null)throw new TypeError("can't convert "+n+" to object");return Object(n)}}),function(){"use strict";function n(t,r){function h(n,t){return function(){return n.apply(t,arguments)}}var o,f,e,u,s;if(r=r||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=r.touchBoundary||10,this.layer=t,this.tapDelay=r.tapDelay||200,this.tapTimeout=r.tapTimeout||700,!n.notNeeded(t)){for(f=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],e=this,u=0,s=f.length;u<s;u++)e[f[u]]=h(e[f[u]],e);i&&(t.addEventListener("mouseover",this.onMouse,!0),t.addEventListener("mousedown",this.onMouse,!0),t.addEventListener("mouseup",this.onMouse,!0));t.addEventListener("click",this.onClick,!0);t.addEventListener("touchstart",this.onTouchStart,!1);t.addEventListener("touchmove",this.onTouchMove,!1);t.addEventListener("touchend",this.onTouchEnd,!1);t.addEventListener("touchcancel",this.onTouchCancel,!1);Event.prototype.stopImmediatePropagation||(t.removeEventListener=function(n,i,r){var u=Node.prototype.removeEventListener;n==="click"?u.call(t,n,i.hijacked||i,r):u.call(t,n,i,r)},t.addEventListener=function(n,i,r){var u=Node.prototype.addEventListener;n==="click"?u.call(t,n,i.hijacked||(i.hijacked=function(n){n.propagationStopped||i(n)}),r):u.call(t,n,i,r)});typeof t.onclick=="function"&&(o=t.onclick,t.addEventListener("click",function(n){o(n)},!1),t.onclick=null)}}var r=navigator.userAgent.indexOf("Windows Phone")>=0,i=navigator.userAgent.indexOf("Android")>0&&!r,t=/iP(ad|hone|od)/.test(navigator.userAgent)&&!r,u=t&&/OS 4_\d(_\d)?/.test(navigator.userAgent),f=t&&/OS [6-7]_\d/.test(navigator.userAgent),e=navigator.userAgent.indexOf("BB10")>0;n.prototype.needsClick=function(n){switch(n.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(n.disabled)return!0;break;case"input":if(t&&n.type==="file"||n.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(n.className)};n.prototype.needsFocus=function(n){switch(n.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!i;case"input":switch(n.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!n.disabled&&!n.readOnly;default:return/\bneedsfocus\b/.test(n.className)}};n.prototype.sendClick=function(n,t){var r,i;document.activeElement&&document.activeElement!==n&&document.activeElement.blur();i=t.changedTouches[0];r=document.createEvent("MouseEvents");r.initMouseEvent(this.determineEventType(n),!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null);r.forwardedTouchEvent=!0;n.dispatchEvent(r)};n.prototype.determineEventType=function(n){return i&&n.tagName.toLowerCase()==="select"?"mousedown":"click"};n.prototype.focus=function(n){var i;t&&n.setSelectionRange&&n.type.indexOf("date")!==0&&n.type!=="time"&&n.type!=="month"?(i=n.value.length,n.setSelectionRange(i,i)):n.focus()};n.prototype.updateScrollParent=function(n){var i,t;if(i=n.fastClickScrollParent,!i||!i.contains(n)){t=n;do{if(t.scrollHeight>t.offsetHeight){i=t;n.fastClickScrollParent=t;break}t=t.parentElement}while(t)}i&&(i.fastClickLastScrollTop=i.scrollTop)};n.prototype.getTargetElementFromEventTarget=function(n){return n.nodeType===Node.TEXT_NODE?n.parentNode:n};n.prototype.onTouchStart=function(n){var r,i,f;if(n.targetTouches.length>1)return!0;if(r=this.getTargetElementFromEventTarget(n.target),i=n.targetTouches[0],t){if(f=window.getSelection(),f.rangeCount&&!f.isCollapsed)return!0;if(!u){if(i.identifier&&i.identifier===this.lastTouchIdentifier)return n.preventDefault(),!1;this.lastTouchIdentifier=i.identifier;this.updateScrollParent(r)}}return this.trackingClick=!0,this.trackingClickStart=n.timeStamp,this.targetElement=r,this.touchStartX=i.pageX,this.touchStartY=i.pageY,n.timeStamp-this.lastClickTime<this.tapDelay&&n.preventDefault(),!0};n.prototype.touchHasMoved=function(n){var t=n.changedTouches[0],i=this.touchBoundary;return Math.abs(t.pageX-this.touchStartX)>i||Math.abs(t.pageY-this.touchStartY)>i?!0:!1};n.prototype.onTouchMove=function(n){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(n.target)||this.touchHasMoved(n))&&(this.trackingClick=!1,this.targetElement=null),!0):!0};n.prototype.findControl=function(n){return n.control!==undefined?n.control:n.htmlFor?document.getElementById(n.htmlFor):n.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};n.prototype.onTouchEnd=function(n){var s,c,e,o,h,r=this.targetElement;if(!this.trackingClick)return!0;if(n.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(n.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=n.timeStamp,c=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,f&&(h=n.changedTouches[0],r=document.elementFromPoint(h.pageX-window.pageXOffset,h.pageY-window.pageYOffset)||r,r.fastClickScrollParent=this.targetElement.fastClickScrollParent),e=r.tagName.toLowerCase(),e==="label"){if(s=this.findControl(r),s){if(this.focus(r),i)return!1;r=s}}else if(this.needsFocus(r))return n.timeStamp-c>100||t&&window.top!==window&&e==="input"?(this.targetElement=null,!1):(this.focus(r),this.sendClick(r,n),t&&e==="select"||(this.targetElement=null,n.preventDefault()),!1);return t&&!u&&(o=r.fastClickScrollParent,o&&o.fastClickLastScrollTop!==o.scrollTop)?!0:(this.needsClick(r)||(n.preventDefault(),this.sendClick(r,n)),!1)};n.prototype.onTouchCancel=function(){this.trackingClick=!1;this.targetElement=null};n.prototype.onMouse=function(n){return this.targetElement?n.forwardedTouchEvent?!0:n.cancelable?!this.needsClick(this.targetElement)||this.cancelNextClick?(n.stopImmediatePropagation?n.stopImmediatePropagation():n.propagationStopped=!0,n.stopPropagation(),n.preventDefault(),!1):!0:!0:!0};n.prototype.onClick=function(n){var t;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):n.target.type==="submit"&&n.detail===0?!0:(t=this.onMouse(n),t||(this.targetElement=null),t)};n.prototype.destroy=function(){var n=this.layer;i&&(n.removeEventListener("mouseover",this.onMouse,!0),n.removeEventListener("mousedown",this.onMouse,!0),n.removeEventListener("mouseup",this.onMouse,!0));n.removeEventListener("click",this.onClick,!0);n.removeEventListener("touchstart",this.onTouchStart,!1);n.removeEventListener("touchmove",this.onTouchMove,!1);n.removeEventListener("touchend",this.onTouchEnd,!1);n.removeEventListener("touchcancel",this.onTouchCancel,!1)};n.notNeeded=function(n){var t,r,u,f;if(typeof ontouchstart=="undefined")return!0;if(r=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],r)if(i){if(t=document.querySelector("meta[name=viewport]"),t&&(t.content.indexOf("user-scalable=no")!==-1||r>31&&document.documentElement.scrollWidth<=window.outerWidth))return!0}else return!0;return e&&(u=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),u[1]>=10&&u[2]>=3&&(t=document.querySelector("meta[name=viewport]"),t&&(t.content.indexOf("user-scalable=no")!==-1||document.documentElement.scrollWidth<=window.outerWidth)))?!0:n.style.msTouchAction==="none"||n.style.touchAction==="manipulation"?!0:(f=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],f>=27&&(t=document.querySelector("meta[name=viewport]"),t&&(t.content.indexOf("user-scalable=no")!==-1||document.documentElement.scrollWidth<=window.outerWidth)))?!0:n.style.touchAction==="none"||n.style.touchAction==="manipulation"?!0:!1};n.attach=function(t,i){return new n(t,i)};typeof define=="function"&&typeof define.amd=="object"&&define.amd?define(function(){return n}):typeof module!="undefined"&&module.exports?(module.exports=n.attach,module.exports.FastClick=n):window.FastClick=n}(),exciteApp=angular.module("exciteApp",["$strap.directives"]),exciteApp.run(function(){try{}catch(n){}}),_gaq=_gaq||[],angular.module("exciteApp").factory("trackingEvents",function(){"use strict";var n=[];return{addOrder:function(t){n.forEach(function(n){n(t)})},on:function(t,i){switch(t){case"addOrder":n.push(i)}},off:function(t,i){switch(t){case"addOrder":n=_.without(n,i)}}}}).directive("wsGoogleAnalytics",["$log","$document","trackingEvents","siteInfo",function(n,t,i,r){"use strict";var u=!0,f=!1,o=!r.siteDomain||/localhost/i.test(r.siteDomain)?"UA-36861345-1":r.googleUacct,e;_gaq.push(["_setAccount",o]);_gaq.push(["_setDomainName","auto"]);_gaq.push(["_setAllowLinker",!0]);_gaq.push(["_trackPageview"]);e=function(n){n.isHistorical||f||(f=!0,_gaq.push(["_addTrans",n.orderNumber,n.affiliateId,n.subTotal,n.gst.toFixed(2),n.postageTotal,n.shippingAddress.city,n.shippingAddress.state,n.shippingAddress.country,]),_.each(n.lines,function(t){_gaq.push(["_addItem",n.orderNumber,t.productCode,t.productName.replace("'",""),_.reduce([t.colour,t.size],function(n,t){return t==null?n:n.length?n+" "+t:t},""),t.unitPrice.toString(),t.quantity])}),_gaq.push(["_trackTrans"]))};i.on("addOrder",e);return{restrict:"A",link:function(n,t){$(t).hide();u&&(u=!1)}}}]).directive("wsSalesConversion",["$sce","trackingEvents",function(n,t){"use strict";var i=!1;return{restrict:"A",template:'<span class="c-track" ng-bind-html="conversionHtml"><\/span>',link:function(n,r){if(!i){i=!0;t.on("addOrder",function(n){var t;n.isHistorical||(t=n.siteInfo.salesTrackHtml,t&&(t=t.replace("__order_id__",n.orderNumber),t=t.replace("__price__",n.subTotal)),r.replaceWith(t))})}}}}]),!function(n){"use strict";n(function(){n.support.transition=function(){var n=function(){var i=document.createElement("bootstrap"),n={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var t in n)if(i.style[t]!==undefined)return n[t]}();return n&&{end:n}}()})}(window.jQuery),!function(n){"use strict";var i='[data-dismiss="alert"]',t=function(t){n(t).on("click",i,this.close)},r;t.prototype.close=function(t){function f(){i.trigger("closed").remove()}var u=n(this),r=u.attr("data-target"),i;(r||(r=u.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=n(r),t&&t.preventDefault(),i.length||(i=u.hasClass("alert")?u:u.parent()),i.trigger(t=n.Event("close")),t.isDefaultPrevented())||(i.removeClass("in"),n.support.transition&&i.hasClass("fade")?i.on(n.support.transition.end,f):f())};r=n.fn.alert;n.fn.alert=function(i){return this.each(function(){var r=n(this),u=r.data("alert");u||r.data("alert",u=new t(this));typeof i=="string"&&u[i].call(r)})};n.fn.alert.Constructor=t;n.fn.alert.noConflict=function(){return n.fn.alert=r,this};n(document).on("click.alert.data-api",i,t.prototype.close)}(window.jQuery),!function(n){"use strict";var t=function(t,i){this.$element=n(t);this.options=n.extend({},n.fn.button.defaults,i)},i;t.prototype.setState=function(n){var i="disabled",t=this.$element,r=t.data(),u=t.is("input")?"val":"html";n=n+"Text";r.resetText||t.data("resetText",t[u]());t[u](r[n]||this.options[n]);setTimeout(function(){n=="loadingText"?t.addClass(i).attr(i,i):t.removeClass(i).removeAttr(i)},0)};t.prototype.toggle=function(){var n=this.$element.closest('[data-toggle="buttons-radio"]');n&&n.find(".active").removeClass("active");this.$element.toggleClass("active")};i=n.fn.button;n.fn.button=function(i){return this.each(function(){var u=n(this),r=u.data("button"),f=typeof i=="object"&&i;r||u.data("button",r=new t(this,f));i=="toggle"?r.toggle():i&&r.setState(i)})};n.fn.button.defaults={loadingText:"loading..."};n.fn.button.Constructor=t;n.fn.button.noConflict=function(){return n.fn.button=i,this};n(document).on("click.button.data-api","[data-toggle^=button]",function(t){var i=n(t.target);i.hasClass("btn")||(i=i.closest(".btn"));i.button("toggle")})}(window.jQuery),!function(n){"use strict";var t=function(t,i){this.$element=n(t);this.$indicators=this.$element.find(".carousel-indicators");this.options=i;this.options.pause=="hover"&&this.$element.on("mouseenter",n.proxy(this.pause,this)).on("mouseleave",n.proxy(this.cycle,this))},i;t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(n.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},getNextActiveIndex:function(){var n=this.$element.find(".item.next"),t=this.$element.find(".item.prev");return this.$active=this.$element.find(".item.active"),n.length||(n=t),n.length||(n=this.$active),this.$items=this.$active.parent().children(),this.$items.index(n)},to:function(t){var i=this.getActiveIndex(),r=this;if(!(t>this.$items.length-1)&&!(t<0))return this.sliding?this.$element.one("slid",function(){r.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",n(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&n.support.transition.end&&(this.$element.trigger(n.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(t,i){var e=this.$element.find(".item.active"),r=i||e[t](),s=this.interval,u=t=="next"?"left":"right",c=t=="next"?"first":"last",h=this,f,o;if(this.sliding=!0,s&&this.pause(),r=r.length?r:this.$element.find(".item")[c](),f=n.Event("slide",{relatedTarget:r[0],direction:u}),!r.hasClass("active")){if(this.$indicators.length&&this.$indicators.find(".active").removeClass("active"),n.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(f),f.isDefaultPrevented())return;r.addClass(t);r[0].offsetWidth;e.addClass(u);r.addClass(u);this.$element.one(n.support.transition.end,function(){r.removeClass([t,u].join(" ")).addClass("active");e.removeClass(["active",u].join(" "));h.sliding=!1;setTimeout(function(){h.$element.trigger("slid")},0)})}else{if(this.$element.trigger(f),f.isDefaultPrevented())return;e.removeClass("active");r.addClass("active");this.sliding=!1;this.$element.trigger("slid")}return s&&this.cycle(),o=n(this.$indicators.children()[this.getNextActiveIndex()]),o&&o.addClass("active"),this}}};i=n.fn.carousel;n.fn.carousel=function(i){return this.each(function(){var f=n(this),r=f.data("carousel"),u=n.extend({},n.fn.carousel.defaults,typeof i=="object"&&i),e=typeof i=="string"?i:u.slide;r||f.data("carousel",r=new t(this,u));typeof i=="number"?r.to(i):e?r[e]():u.interval&&r.pause().cycle()})};n.fn.carousel.defaults={interval:5e3,pause:"hover"};n.fn.carousel.Constructor=t;n.fn.carousel.noConflict=function(){return n.fn.carousel=i,this};n(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var i=n(this),u,r=n(i.attr("data-target")||(u=i.attr("href"))&&u.replace(/.*(?=#[^\s]+$)/,"")),e=n.extend({},r.data(),i.data()),f;r.carousel(e);(f=i.attr("data-slide-to"))&&r.data("carousel").pause().to(f).cycle();t.preventDefault()})}(window.jQuery),!function(n){"use strict";var t=function(t,i){this.$element=n(t);this.options=n.extend({},n.fn.collapse.defaults,i);this.options.parent&&(this.$parent=n(this.options.parent));this.options.toggle&&this.toggle()},i;t.prototype={constructor:t,dimension:function(){var n=this.$element.hasClass("width");return n?"width":"height"},show:function(){var i,u,t,r;if(!this.transitioning&&!this.$element.hasClass("in")){if(i=this.dimension(),u=n.camelCase(["scroll",i].join("-")),t=this.$parent&&this.$parent.find("> .accordion-group > .in"),t&&t.length){if(r=t.data("collapse"),r&&r.transitioning)return;t.collapse("hide");r||t.data("collapse",null)}this.$element[i](0);this.transition("addClass",n.Event("show"),"shown");n.support.transition&&this.$element[i](this.$element[0][u])}},hide:function(){var t;!this.transitioning&&this.$element.hasClass("in")&&(t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",n.Event("hide"),"hidden"),this.$element[t](0))},reset:function(n){var t=this.dimension();return this.$element.removeClass("collapse")[t](n||"auto")[0].offsetWidth,this.$element[n!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,i,r){var u=this,f=function(){i.type=="show"&&u.reset();u.transitioning=0;u.$element.trigger(r)};(this.$element.trigger(i),i.isDefaultPrevented())||(this.transitioning=1,this.$element[t]("in"),n.support.transition&&this.$element.hasClass("collapse")?this.$element.one(n.support.transition.end,f):f())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};i=n.fn.collapse;n.fn.collapse=function(i){return this.each(function(){var r=n(this),u=r.data("collapse"),f=n.extend({},n.fn.collapse.defaults,r.data(),typeof i=="object"&&i);u||r.data("collapse",u=new t(this,f));typeof i=="string"&&u[i]()})};n.fn.collapse.defaults={toggle:!0};n.fn.collapse.Constructor=t;n.fn.collapse.noConflict=function(){return n.fn.collapse=i,this};n(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var i=n(this),u,r=i.attr("data-target")||t.preventDefault()||(u=i.attr("href"))&&u.replace(/.*(?=#[^\s]+$)/,""),f=n(r).data("collapse")?"toggle":i.data();i[n(r).hasClass("in")?"addClass":"removeClass"]("collapsed");n(r).collapse(f)})}(window.jQuery),!function(n){"use strict";function r(){n(".dropdown-backdrop").remove();n(i).each(function(){u(n(this)).removeClass("open")})}function u(t){var i=t.attr("data-target"),r;return i||(i=t.attr("href"),i=i&&/#/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,"")),r=i&&n(i),r&&r.length||(r=t.parent()),r}var i="[data-toggle=dropdown]",t=function(t){var i=n(t).on("click.dropdown.data-api",this.toggle);n("html").on("click.dropdown.data-api",function(){i.parent().removeClass("open")})},f;t.prototype={constructor:t,toggle:function(){var t=n(this),i,f;if(!t.is(".disabled, :disabled")){if(i=u(t),f=i.hasClass("open"),r(),!f){if("ontouchstart"in document.documentElement)n('<div class="dropdown-backdrop"/>').insertBefore(n(this)).on("click",r);i.toggleClass("open")}return t.focus(),!1}},keydown:function(t){var e,f,o,s,r;if(/(38|40|27)/.test(t.keyCode)&&(e=n(this),t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled"))){if(o=u(e),s=o.hasClass("open"),!s||s&&t.keyCode==27)return t.which==27&&o.find(i).focus(),e.click();(f=n("[role=menu] li:not(.divider):visible a",o),f.length)&&(r=f.index(f.filter(":focus")),t.keyCode==38&&r>0&&r--,t.keyCode==40&&r<f.length-1&&r++,~r||(r=0),f.eq(r).focus())}}};f=n.fn.dropdown;n.fn.dropdown=function(i){return this.each(function(){var r=n(this),u=r.data("dropdown");u||r.data("dropdown",u=new t(this));typeof i=="string"&&u[i].call(r)})};n.fn.dropdown.Constructor=t;n.fn.dropdown.noConflict=function(){return n.fn.dropdown=f,this};n(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(n){n.stopPropagation()}).on("click.dropdown.data-api",i,t.prototype.toggle).on("keydown.dropdown.data-api",i+", [role=menu]",t.prototype.keydown)}(window.jQuery),!function(n){"use strict";var t=function(t,i){this.options=i;this.$element=n(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",n.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)},i;t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,i=n.Event("show");(this.$element.trigger(i),this.isShown||i.isDefaultPrevented())||(this.isShown=!0,this.escape(),this.backdrop(function(){var i=n.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body);t.$element.show();i&&t.$element[0].offsetWidth;t.$element.addClass("in").attr("aria-hidden",!1);t.enforceFocus();i?t.$element.one(n.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")}))},hide:function(t){t&&t.preventDefault();var i=this;(t=n.Event("hide"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented())&&(this.isShown=!1,this.escape(),n(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),n.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var t=this;n(document).on("focusin.modal",function(n){t.$element[0]===n.target||t.$element.has(n.target).length||t.$element.focus()})},escape:function(){var n=this;if(this.isShown&&this.options.keyboard)this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&n.hide()});else this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,i=setTimeout(function(){t.$element.off(n.support.transition.end);t.hideModal()},500);this.$element.one(n.support.transition.end,function(){clearTimeout(i);t.hideModal()})},hideModal:function(){var n=this;this.$element.hide();this.backdrop(function(){n.removeBackdrop();n.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove();this.$backdrop=null},backdrop:function(t){var u=this,r=this.$element.hasClass("fade")?"fade":"",i;if(this.isShown&&this.options.backdrop){if(i=n.support.transition&&r,this.$backdrop=n('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?n.proxy(this.$element[0].focus,this.$element[0]):n.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;i?this.$backdrop.one(n.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),n.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(n.support.transition.end,t):t()):t&&t()}};i=n.fn.modal;n.fn.modal=function(i){return this.each(function(){var u=n(this),r=u.data("modal"),f=n.extend({},n.fn.modal.defaults,u.data(),typeof i=="object"&&i);r||u.data("modal",r=new t(this,f));typeof i=="string"?r[i]():f.show&&r.show()})};n.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0};n.fn.modal.Constructor=t;n.fn.modal.noConflict=function(){return n.fn.modal=i,this};n(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var i=n(this),r=i.attr("href"),u=n(i.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),f=u.data("modal")?"toggle":n.extend({remote:!/#/.test(r)&&r},u.data(),i.data());t.preventDefault();u.modal(f).one("hide",function(){i.focus()})})}(window.jQuery),!function(n){"use strict";var t=function(n,t){this.init("tooltip",n,t)},i;t.prototype={constructor:t,init:function(t,i,r){var o,s,f,u,e;for(this.type=t,this.$element=n(i),this.options=this.getOptions(r),this.enabled=!0,f=this.options.trigger.split(" "),e=f.length;e--;)if(u=f[e],u=="click")this.$element.on("click."+this.type,this.options.selector,n.proxy(this.toggle,this));else if(u!="manual"){o=u=="hover"?"mouseenter":"focus";s=u=="hover"?"mouseleave":"blur";this.$element.on(o+"."+this.type,this.options.selector,n.proxy(this.enter,this));this.$element.on(s+"."+this.type,this.options.selector,n.proxy(this.leave,this))}this.options.selector?this._options=n.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=n.extend({},n.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var u=n.fn[this.type].defaults,r={},i;if(this._options&&n.each(this._options,function(n,t){u[n]!=t&&(r[n]=t)},this),i=n(t.currentTarget)[this.type](r).data(this.type),!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout);i.hoverState="in";this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var i=n(t.currentTarget)[this.type](this._options).data(this.type);if(this.timeout&&clearTimeout(this.timeout),!i.options.delay||!i.options.delay.hide)return i.hide();i.hoverState="out";this.timeout=setTimeout(function(){i.hoverState=="out"&&i.hide()},i.options.delay.hide)},show:function(){var i,t,u,f,e,r,o=n.Event("show");if(this.hasContent()&&this.enabled){if(this.$element.trigger(o),o.isDefaultPrevented())return;i=this.tip();this.setContent();this.options.animation&&i.addClass("fade");e=typeof this.options.placement=="function"?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement;i.detach().css({top:0,left:0,display:"block"});this.options.container?i.appendTo(this.options.container):i.insertAfter(this.$element);t=this.getPosition();u=i[0].offsetWidth;f=i[0].offsetHeight;switch(e){case"bottom":r={top:t.top+t.height,left:t.left+t.width/2-u/2};break;case"top":r={top:t.top-f,left:t.left+t.width/2-u/2};break;case"left":r={top:t.top+t.height/2-f/2,left:t.left-u};break;case"right":r={top:t.top+t.height/2-f/2,left:t.left+t.width}}this.applyPlacement(r,e);this.$element.trigger("shown")}},applyPlacement:function(n,t){var i=this.tip(),s=i[0].offsetWidth,f=i[0].offsetHeight,u,r,e,o;i.offset(n).addClass(t).addClass("in");u=i[0].offsetWidth;r=i[0].offsetHeight;t=="top"&&r!=f&&(n.top=n.top+f-r,o=!0);t=="bottom"||t=="top"?(e=0,n.left<0&&(e=n.left*-2,n.left=0,i.offset(n),u=i[0].offsetWidth,r=i[0].offsetHeight),this.replaceArrow(e-s+u,u,"left")):this.replaceArrow(r-f,r,"top");o&&i.offset(n)},replaceArrow:function(n,t,i){this.arrow().css(i,n?50*(1-n/t)+"%":"")},setContent:function(){var n=this.tip(),t=this.getTitle();n.find(".tooltip-inner")[this.options.html?"html":"text"](t);n.removeClass("fade in top bottom left right")},hide:function(){function r(){var i=setTimeout(function(){t.off(n.support.transition.end).detach()},500);t.one(n.support.transition.end,function(){clearTimeout(i);t.detach()})}var u=this,t=this.tip(),i=n.Event("hide");if(this.$element.trigger(i),!i.isDefaultPrevented())return t.removeClass("in"),n.support.transition&&this.$tip.hasClass("fade")?r():t.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var n=this.$element;(n.attr("title")||typeof n.attr("data-original-title")!="string")&&n.attr("data-original-title",n.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return n.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var t=this.$element,n=this.options;return t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title)},tip:function(){return this.$tip=this.$tip||n(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var i=t?n(t.currentTarget)[this.type](this._options).data(this.type):this;i.tip().hasClass("in")?i.hide():i.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};i=n.fn.tooltip;n.fn.tooltip=function(i){return this.each(function(){var u=n(this),r=u.data("tooltip"),f=typeof i=="object"&&i;r||u.data("tooltip",r=new t(this,f));typeof i=="string"&&r[i]()})};n.fn.tooltip.Constructor=t;n.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"><\/div><div class="tooltip-inner"><\/div><\/div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};n.fn.tooltip.noConflict=function(){return n.fn.tooltip=i,this}}(window.jQuery),!function(n){"use strict";var t=function(n,t){this.init("popover",n,t)},i;t.prototype=n.extend({},n.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var n=this.tip(),t=this.getTitle(),i=this.getContent();n.find(".popover-title")[this.options.html?"html":"text"](t);n.find(".popover-content")[this.options.html?"html":"text"](i);n.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var t=this.$element,n=this.options;return(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content")},tip:function(){return this.$tip||(this.$tip=n(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});i=n.fn.popover;n.fn.popover=function(i){return this.each(function(){var u=n(this),r=u.data("popover"),f=typeof i=="object"&&i;r||u.data("popover",r=new t(this,f));typeof i=="string"&&r[i]()})};n.fn.popover.Constructor=t;n.fn.popover.defaults=n.extend({},n.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"><\/div><h3 class="popover-title"><\/h3><div class="popover-content"><\/div><\/div>'});n.fn.popover.noConflict=function(){return n.fn.popover=i,this}}(window.jQuery),!function(n){"use strict";function t(t,i){var u=n.proxy(this.process,this),f=n(t).is("body")?n(window):n(t),r;this.options=n.extend({},n.fn.scrollspy.defaults,i);this.$scrollElement=f.on("scroll.scroll-spy.data-api",u);this.selector=(this.options.target||(r=n(t).attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a";this.$body=n("body");this.refresh();this.process()}t.prototype={constructor:t,refresh:function(){var t=this,i;this.offsets=n([]);this.targets=n([]);i=this.$body.find(this.selector).map(function(){var u=n(this),i=u.data("target")||u.attr("href"),r=/^#\w/.test(i)&&n(i);return r&&r.length&&[[r.position().top+(!n.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),i]]||null}).sort(function(n,t){return n[0]-t[0]}).each(function(){t.offsets.push(this[0]);t.targets.push(this[1])})},process:function(){var i=this.$scrollElement.scrollTop()+this.options.offset,f=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,e=f-this.$scrollElement.height(),t=this.offsets,r=this.targets,u=this.activeTarget,n;if(i>=e)return u!=(n=r.last()[0])&&this.activate(n);for(n=t.length;n--;)u!=r[n]&&i>=t[n]&&(!t[n+1]||i<=t[n+1])&&this.activate(r[n])},activate:function(t){var i,r;this.activeTarget=t;n(this.selector).parent(".active").removeClass("active");r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]';i=n(r).parent("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active"));i.trigger("activate")}};var i=n.fn.scrollspy;n.fn.scrollspy=function(i){return this.each(function(){var u=n(this),r=u.data("scrollspy"),f=typeof i=="object"&&i;r||u.data("scrollspy",r=new t(this,f));typeof i=="string"&&r[i]()})};n.fn.scrollspy.Constructor=t;n.fn.scrollspy.defaults={offset:10};n.fn.scrollspy.noConflict=function(){return n.fn.scrollspy=i,this};n(window).on("load",function(){n('[data-spy="scroll"]').each(function(){var t=n(this);t.scrollspy(t.data())})})}(window.jQuery),!function(n){"use strict";var t=function(t){this.element=n(t)},i;t.prototype={constructor:t,show:function(){var t=this.element,e=t.closest("ul:not(.dropdown-menu)"),i=t.attr("data-target"),r,u,f;(i||(i=t.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,"")),t.parent("li").hasClass("active"))||(r=e.find(".active:last a")[0],f=n.Event("show",{relatedTarget:r}),t.trigger(f),f.isDefaultPrevented())||(u=n(i),this.activate(t.parent("li"),e),this.activate(u,u.parent(),function(){t.trigger({type:"shown",relatedTarget:r})}))},activate:function(t,i,r){function e(){u.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");t.addClass("active");f?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade");t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active");r&&r()}var u=i.find("> .active"),f=r&&n.support.transition&&u.hasClass("fade");f?u.one(n.support.transition.end,e):e();u.removeClass("in")}};i=n.fn.tab;n.fn.tab=function(i){return this.each(function(){var u=n(this),r=u.data("tab");r||u.data("tab",r=new t(this));typeof i=="string"&&r[i]()})};n.fn.tab.Constructor=t;n.fn.tab.noConflict=function(){return n.fn.tab=i,this};n(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault();n(this).tab("show")})}(window.jQuery),!function(n){"use strict";var t=function(t,i){this.$element=n(t);this.options=n.extend({},n.fn.typeahead.defaults,i);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=n(this.options.menu);this.shown=!1;this.listen()},i;t.prototype={constructor:t,select:function(){var n=this.$menu.find(".active").attr("data-value");return n&&this.$element.val(this.updater(n)).change().trigger("input"),this.hide()},updater:function(n){return n},show:function(){var t=n.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(){var t;return(this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength)?this.shown?this.hide():this:(t=n.isFunction(this.source)?this.source(this.query,n.proxy(this.process,this)):this.source,t?this.process(t):this)},process:function(t){var i=this;return(t=n.grep(t,function(n){return i.matcher(n)}),t=this.sorter(t),!t.length)?this.shown?this.hide():this:this.render(t.slice(0,this.options.items)).show()},matcher:function(n){return~n.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(n){for(var i=[],r=[],u=[],t;t=n.shift();)t.toLowerCase().indexOf(this.query.toLowerCase())?~t.indexOf(this.query)?r.push(t):u.push(t):i.push(t);return i.concat(r,u)},highlighter:function(n){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return n.replace(new RegExp("("+t+")","ig"),function(n,t){return"<strong>"+t+"<\/strong>"})},render:function(t){var i=this;return t=n(t).map(function(t,r){return t=n(i.options.item).attr("data-value",r),t.find("a").html(i.highlighter(r)),t[0]}),this.$menu.html(t),this},next:function(){var i=this.$menu.find(".active").removeClass("active"),t=i.next();t.length||(t=n(this.$menu.find("li")[0]));t.addClass("active")},prev:function(){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last());n.addClass("active")},listen:function(){this.$element.on("focus",n.proxy(this.focus,this)).on("blur",n.proxy(this.blur,this)).on("keypress",n.proxy(this.keypress,this)).on("keyup",n.proxy(this.keyup,this));if(this.eventSupported("keydown"))this.$element.on("keydown",n.proxy(this.keydown,this));this.$menu.on("click",n.proxy(this.click,this)).on("mouseenter","li",n.proxy(this.mouseenter,this)).on("mouseleave","li",n.proxy(this.mouseleave,this))},eventSupported:function(n){var t=n in this.$element;return t||(this.$element.setAttribute(n,"return;"),t=typeof this.$element[n]=="function"),t},move:function(n){if(this.shown){switch(n.keyCode){case 9:case 13:case 27:n.preventDefault();break;case 38:n.preventDefault();this.prev();break;case 40:n.preventDefault();this.next()}n.stopPropagation()}},keydown:function(t){this.suppressKeyPressRepeat=~n.inArray(t.keyCode,[40,38,9,13,27]);this.move(t)},keypress:function(n){this.suppressKeyPressRepeat||this.move(n)},keyup:function(t){switch(t.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;var i=this.$menu.find(".active").attr("data-value");this.select();i||n("#address")||n("#submitSearch").click();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}t.stopPropagation();t.preventDefault()},focus:function(){this.focused=!0},blur:function(){this.focused=!1;!this.mousedover&&this.shown&&this.hide()},click:function(n){n.stopPropagation();n.preventDefault();this.select();this.$element.focus()},mouseenter:function(t){this.mousedover=!0;this.$menu.find(".active").removeClass("active");n(t.currentTarget).addClass("active")},mouseleave:function(){this.mousedover=!1;!this.focused&&this.shown&&this.hide()}};i=n.fn.typeahead;n.fn.typeahead=function(i){return this.each(function(){var u=n(this),r=u.data("typeahead"),f=typeof i=="object"&&i;r||u.data("typeahead",r=new t(this,f));typeof i=="string"&&r[i]()})};n.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"><\/ul>',item:'<li><a href="#"><\/a><\/li>',minLength:1};n.fn.typeahead.Constructor=t;n.fn.typeahead.noConflict=function(){return n.fn.typeahead=i,this};n(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(){var t=n(this);t.data("typeahead")||t.typeahead(t.data())})}(window.jQuery),!function(n){"use strict";var t=function(t,i){this.options=n.extend({},n.fn.affix.defaults,i);this.$window=n(window).on("scroll.affix.data-api",n.proxy(this.checkPosition,this)).on("click.affix.data-api",n.proxy(function(){setTimeout(n.proxy(this.checkPosition,this),1)},this));this.$element=n(t);this.checkPosition()},i;t.prototype.checkPosition=function(){if(!this.$element.data("affix-is-disabled")&&this.$element.is(":visible")){var o=n(document).height(),f=this.$window.scrollTop(),e=this.$element.offset(),i=this.options.offset,r=i.bottom,u=i.top,t;(typeof i!="object"&&(r=u=i),typeof u=="function"&&(u=i.top()),typeof r=="function"&&(r=i.bottom()),t=this.unpin!=null&&f+this.unpin<=e.top?!1:r!=null&&e.top+this.$element.height()>=o-r?"bottom":u!=null&&f<=u?"top":!1,this.affixed!==t)&&(t==="top"?this.$element.trigger("unaffix","top"):t===!1&&this.$element.trigger("affix",this.affixed),this.affixed=t,this.unpin=t=="bottom"?e.top-f:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(t?"-"+t:"")))}};i=n.fn.affix;n.fn.affix=function(i){return this.each(function(){var u=n(this),r=u.data("affix"),f=typeof i=="object"&&i;r||u.data("affix",r=new t(this,f));typeof i=="string"&&r[i]()})};n.fn.affix.Constructor=t;n.fn.affix.defaults={offset:0};n.fn.affix.noConflict=function(){return n.fn.affix=i,this};n(window).on("load",function(){n('[data-spy="affix"]').each(function(){var i=n(this),t=i.data();t.offset=t.offset||{};t.offsetBottom&&(t.offset.bottom=t.offsetBottom);t.offsetTop&&(t.offset.top=t.offsetTop);i.affix(t)})})}(window.jQuery),angular.module("$strap.config",[]).value("$strapConfig",{}),angular.module("$strap.filters",["$strap.config"]),angular.module("$strap.directives",["$strap.config"]),angular.module("$strap",["$strap.filters","$strap.directives","$strap.config"]),angular.module("$strap.directives").directive("bsAlert",["$parse","$timeout","$compile",function(n,t,i){return{restrict:"A",link:function(r,u,f){var h=n(f.bsAlert),e=(h.assign,h(r)),o=function(n){t(function(){u.alert("close")},1*n)},s;f.bsAlert?r.$watch(f.bsAlert,function(n,t){e=n;u.html((n.title?"<strong>"+n.title+"<\/strong>&nbsp;":"")+n.content||"");n.closed&&u.hide();i(u.contents())(r);(n.type||t.type)&&(t.type&&u.removeClass("alert-"+t.type),n.type&&u.addClass("alert-"+n.type));angular.isDefined(n.closeAfter)?o(n.closeAfter):f.closeAfter&&o(f.closeAfter);(angular.isUndefined(f.closeButton)||"0"!==f.closeButton&&"false"!==f.closeButton)&&u.prepend('<button type="button" class="close" data-dismiss="alert">&times;<\/button>')},!0):((angular.isUndefined(f.closeButton)||"0"!==f.closeButton&&"false"!==f.closeButton)&&u.prepend('<button type="button" class="close" data-dismiss="alert">&times;<\/button>'),f.closeAfter&&o(f.closeAfter));u.addClass("alert").alert();u.hasClass("fade")&&(u.removeClass("in"),setTimeout(function(){u.addClass("in")}));s=f.ngRepeat&&f.ngRepeat.split(" in ").pop();u.on("close",function(n){var t;s?(n.preventDefault(),u.removeClass("in"),t=function(){u.trigger("closed");r.$parent&&r.$parent.$apply(function(){for(var i=s.split("."),n=r.$parent,t=0;i.length>t;++t)n&&(n=n[i[t]]);n&&n.splice(r.$index,1)})},$.support.transition&&u.hasClass("fade")?u.on($.support.transition.end,t):t()):e&&(n.preventDefault(),u.removeClass("in"),t=function(){u.trigger("closed");r.$apply(function(){e.closed=!0})},$.support.transition&&u.hasClass("fade")?u.on($.support.transition.end,t):t())})}}}]),angular.module("$strap.directives").directive("bsButton",["$parse","$timeout",function(n){return{restrict:"A",require:"?ngModel",link:function(t,i,r,u){var f,e;u&&(i.parent('[data-toggle="buttons-checkbox"], [data-toggle="buttons-radio"]').length||i.attr("data-toggle","button"),f=!!t.$eval(r.ngModel),f&&i.addClass("active"),t.$watch(r.ngModel,function(n,t){var r=!!n,u=!!t;r!==u?$.fn.button.Constructor.prototype.toggle.call(e):r&&!f&&i.addClass("active")}));i.hasClass("btn")||i.on("click.button.data-api",function(){i.button("toggle")});i.button();e=i.data("button");e.toggle=function(){if(!u)return $.fn.button.Constructor.prototype.toggle.call(this);var r=i.parent('[data-toggle="buttons-radio"]');r.length?(i.siblings("[ng-model]").each(function(i,r){n($(r).attr("ng-model")).assign(t,!1)}),t.$digest(),u.$modelValue||(u.$setViewValue(!u.$modelValue),t.$digest())):t.$apply(function(){u.$setViewValue(!u.$modelValue)})}}}}]).directive("bsButtonsCheckbox",["$parse",function(){return{restrict:"A",require:"?ngModel",compile:function(n){n.attr("data-toggle","buttons-checkbox").find("a, button").each(function(n,t){$(t).attr("bs-button","")})}}}]).directive("bsButtonsRadio",["$timeout",function(n){return{restrict:"A",require:"?ngModel",compile:function(t,i){return t.attr("data-toggle","buttons-radio"),i.ngModel||t.find("a, button").each(function(n,t){$(t).attr("bs-button","")}),function(t,i,r,u){u&&(n(function(){i.find("[value]").button().filter('[value="'+u.$viewValue+'"]').addClass("active")}),i.on("click.button.data-api",function(n){t.$apply(function(){u.$setViewValue($(n.target).closest("button").attr("value"))})}),t.$watch(r.ngModel,function(n,u){if(n!==u){var f=i.find('[value="'+t.$eval(r.ngModel)+'"]');f.length&&f.button("toggle")}}))}}}}]),angular.module("$strap.directives").directive("bsButtonSelect",["$parse","$timeout",function(n){return{restrict:"A",require:"?ngModel",link:function(t,i,r,u){var s=n(r.bsButtonSelect),f,h,e,o;s.assign;u&&(i.text(t.$eval(r.ngModel)),t.$watch(r.ngModel,function(n){i.text(n)}));i.bind("click",function(){f=s(t);h=u?t.$eval(r.ngModel):i.text();e=f.indexOf(h);o=e>f.length-2?f[0]:f[e+1];t.$apply(function(){i.text(o);u&&u.$setViewValue(o)})})}}}]),angular.module("$strap.directives").directive("bsDatepicker",["$timeout","$strapConfig",function(n,t){var i=/(iP(a|o)d|iPhone)/g.test(navigator.userAgent),r=function(n){return n=n||"en",{"/":"[\\/]","-":"[-]",".":"[.]"," ":"[\\s]",dd:"(?:(?:[0-2]?[0-9]{1})|(?:[3][01]{1}))",d:"(?:(?:[0-2]?[0-9]{1})|(?:[3][01]{1}))",mm:"(?:[0]?[1-9]|[1][012])",m:"(?:[0]?[1-9]|[1][012])",DD:"(?:"+$.fn.datepicker.dates[n].days.join("|")+")",D:"(?:"+$.fn.datepicker.dates[n].daysShort.join("|")+")",MM:"(?:"+$.fn.datepicker.dates[n].months.join("|")+")",M:"(?:"+$.fn.datepicker.dates[n].monthsShort.join("|")+")",yyyy:"(?:(?:[1]{1}[0-9]{1}[0-9]{1}[0-9]{1})|(?:[2]{1}[0-9]{3}))(?![[0-9]])",yy:"(?:(?:[0-9]{1}[0-9]{1}))(?![[0-9]])"}},u=function(n,t){var i,u=n,f=r(t);return i=0,angular.forEach(f,function(n,t){u=u.split(t).join("${"+i+"}");i++}),i=0,angular.forEach(f,function(n){u=u.split("${"+i+"}").join(n);i++}),RegExp("^"+u+"$",["i"])};return{restrict:"A",require:"?ngModel",link:function(n,r,f,e){var s=angular.extend({autoclose:!0},t.datepicker||{}),h=f.dateType||s.type||"date",l;angular.forEach(["format","weekStart","calendarWeeks","startDate","endDate","daysOfWeekDisabled","autoclose","startView","minViewMode","todayBtn","todayHighlight","keyboardNavigation","language","forceParse"],function(n){angular.isDefined(f[n])&&(s[n]=f[n])});var o=s.language||"en",a=f.dateFormat||s.format||$.fn.datepicker.dates[o]&&$.fn.datepicker.dates[o].format||"mm/dd/yyyy",c=i?"yyyy-mm-dd":a,v=u(c,o);e&&(e.$formatters.unshift(function(n){return"date"===h&&angular.isString(n)&&n?$.fn.datepicker.DPGlobal.parseDate(n,$.fn.datepicker.DPGlobal.parseFormat(a),o):n}),e.$parsers.unshift(function(n){return n?"date"===h&&angular.isDate(n)?(e.$setValidity("date",!0),n):angular.isString(n)&&v.test(n)?(e.$setValidity("date",!0),i?new Date(n):"string"===h?n:$.fn.datepicker.DPGlobal.parseDate(n,$.fn.datepicker.DPGlobal.parseFormat(c),o)):(e.$setValidity("date",!1),void 0):(e.$setValidity("date",!0),null)}),e.$render=function(){if(i){var n=e.$viewValue?$.fn.datepicker.DPGlobal.formatDate(e.$viewValue,$.fn.datepicker.DPGlobal.parseFormat(c),o):"";return r.val(n),n}return e.$viewValue||r.val(""),r.datepicker("update",e.$viewValue)});i?r.prop("type","date").css("-webkit-appearance","textfield"):(e&&r.on("changeDate",function(t){n.$apply(function(){e.$setViewValue("string"===h?r.val():t.date)})}),r.datepicker(angular.extend(s,{format:c,language:o})),n.$on("$destroy",function(){var n=r.data("datepicker");n&&(n.picker.remove(),r.data("datepicker",null))}),f.$observe("startDate",function(n){r.datepicker("setStartDate",n)}),f.$observe("endDate",function(n){r.datepicker("setEndDate",n)}));l=r.siblings('[data-toggle="datepicker"]');l.length&&l.on("click",function(){r.prop("disabled")||r.trigger("focus")})}}}]),angular.module("$strap.directives").directive("bsDropdown",["$parse","$compile","$timeout",function(n,t,i){var r=function(n,t){return t||(t=['<ul class="dropdown-menu" role="menu" aria-labelledby="drop1">',"<\/ul>"]),angular.forEach(n,function(n,i){if(n.divider)return t.splice(i+1,0,'<li class="divider"><\/li>');var u="<li"+(n.submenu&&n.submenu.length?' class="dropdown-submenu"':"")+'><a tabindex="-1" ng-href="'+(n.href||"")+'"'+(n.click?'" ng-click="'+n.click+'"':"")+(n.target?'" target="'+n.target+'"':"")+(n.method?'" data-method="'+n.method+'"':"")+">"+(n.text||"")+"<\/a>";n.submenu&&n.submenu.length&&(u+=r(n.submenu).join("\n"));u+="<\/li>";t.splice(i+1,0,u)}),t};return{restrict:"EA",scope:!0,link:function(u,f,e){var s=n(e.bsDropdown),o=s(u);i(function(){!angular.isArray(o);var n=angular.element(r(o).join(""));n.insertAfter(f);t(f.next("ul.dropdown-menu"))(u)});f.addClass("dropdown-toggle").attr("data-toggle","dropdown")}}}]),angular.module("$strap.directives").factory("$modal",["$rootScope","$compile","$http","$timeout","$q","$templateCache","$strapConfig",function(n,t,i,r,u,f,e){return function(o){function s(o){var h=angular.extend({show:!0},e.modal,o),s=h.scope?h.scope:n.$new(),c=h.template;return u.when(f.get(c)||i.get(c,{cache:!0}).then(function(n){return n.data})).then(function(n){var u=c.replace(".html","").replace(/[\/|\.|:]/g,"-")+"-"+s.$id,i=$('<div class="modal hide" tabindex="-1"><\/div>').attr("id",u).addClass("fade").html(n);return h.modalClass&&i.addClass(h.modalClass),$("body").append(i),r(function(){t(i)(s)}),s.$modal=function(n){i.modal(n)},angular.forEach(["show","hide"],function(n){s[n]=function(){i.modal(n)}}),s.dismiss=s.hide,angular.forEach(["show","shown","hide","hidden"],function(n){i.on(n,function(t){s.$emit("modal-"+n,t)})}),i.on("shown",function(){$("input[autofocus], textarea[autofocus]",i).first().trigger("focus")}),i.on("hidden",function(){h.persist||s.$destroy()}),s.$on("$destroy",function(){i.remove()}),i.modal(h),i})}return new s(o)}}]).directive("bsModal",["$q","$modal",function(n,t){return{restrict:"A",scope:!0,link:function(i,r,u){var f={template:i.$eval(u.bsModal),persist:!0,show:!1,scope:i};angular.forEach(["modalClass","backdrop","keyboard"],function(n){angular.isDefined(u[n])&&(f[n]=u[n])});n.when(t(f)).then(function(n){r.attr("data-target","#"+n.attr("id")).attr("data-toggle","modal")})}}}]),angular.module("$strap.directives").directive("bsNavbar",["$location",function(n){return{restrict:"A",link:function(t,i){t.$watch(function(){return n.path()},function(n){$("li[data-match-route]",i).each(function(t,i){var r=angular.element(i),u=r.attr("data-match-route"),f=RegExp("^"+u+"$",["i"]);f.test(n)?r.addClass("active").find(".collapse.in").collapse("hide"):r.removeClass("active")})})}}}]),angular.module("$strap.directives").directive("bsPopover",["$parse","$compile","$http","$timeout","$q","$templateCache",function(n,t,i,r,u,f){return $("body").on("keyup",function(n){27===n.keyCode&&$(".popover.in").each(function(){$(this).popover("hide")})}),{restrict:"A",scope:!0,link:function(e,o,s){var l=n(s.bsPopover),h=(l.assign,l(e)),c={};angular.isObject(h)&&(c=h);u.when(c.content||f.get(h)||i.get(h,{cache:!0})).then(function(n){angular.isObject(n)&&(n=n.data);s.unique&&o.on("show",function(){$(".popover.in").each(function(){var n=$(this),t=n.data("popover");t&&!t.$element.is(o)&&n.popover("hide")})});s.hide&&e.$watch(s.hide,function(n,t){n?i.hide():n!==t&&i.show()});s.show&&e.$watch(s.show,function(n,t){n?r(function(){i.show()}):n!==t&&i.hide()});o.popover(angular.extend({},c,{content:n,html:!0}));var i=o.data("popover");i.hasContent=function(){return this.getTitle()||n};i.getPosition=function(){var n=$.fn.popover.Constructor.prototype.getPosition.apply(this,arguments);return t(this.$tip)(e),e.$digest(),this.$tip.data("popover",this),n};e.$popover=function(n){i(n)};angular.forEach(["show","hide"],function(n){e[n]=function(){i[n]()}});e.dismiss=e.hide;angular.forEach(["show","shown","hide","hidden"],function(n){o.on(n,function(t){e.$emit("popover-"+n,t)})})})}}}]),angular.module("$strap.directives").directive("bsSelect",["$timeout",function(n){return{restrict:"A",require:"?ngModel",link:function(t,i,r,u){var f=t.$eval(r.bsSelect)||{};n(function(){i.selectpicker(f);i.next().removeClass("ng-scope")});u&&t.$watch(r.ngModel,function(n,t){angular.equals(n,t)||i.selectpicker("refresh")})}}}]),angular.module("$strap.directives").directive("bsTabs",["$parse","$compile","$timeout",function(n,t,i){return{restrict:"A",require:"?ngModel",priority:0,scope:!0,template:'<div class="tabs"><ul class="nav nav-tabs"><li ng-repeat="pane in panes" ng-class="{active:pane.active}"><a data-target="#{{pane.id}}" data-index="{{$index}}" data-toggle="tab">{{pane.title}}<\/a><\/li><\/ul><div class="tab-content" ng-transclude><\/div>',replace:!0,transclude:!0,compile:function(){return function(t,r,u,f){var s=n(u.bsTabs);s.assign;s(t);t.panes=[];var o,h,e,l=r.find("ul.nav-tabs"),c=r.find("div.tab-content"),a=0;i(function(){c.find("[data-title], [data-tab]").each(function(n){var i=angular.element(this);o="tab-"+t.$id+"-"+n;h=i.data("title")||i.data("tab");e=!e&&i.hasClass("active");i.attr("id",o).addClass("tab-pane");u.fade&&i.addClass("fade");t.panes.push({id:o,title:h,content:this.innerHTML,active:e})});t.panes.length&&!e&&(c.find(".tab-pane:first-child").addClass("active"+(u.fade?" in":"")),t.panes[0].active=!0)});f&&(r.on("show",function(n){var i=$(n.target);t.$apply(function(){f.$setViewValue(i.data("index"))})}),t.$watch(u.ngModel,function(n){angular.isUndefined(n)||(a=n,setTimeout(function(){var t=$(l[0].querySelectorAll("li")[1*n]);t.hasClass("active")||t.children("a").tab("show")}))}))}}}}]),angular.module("$strap.directives").directive("bsTimepicker",["$timeout","$strapConfig",function(n,t){var i="((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\\s?(?:am|AM|pm|PM))?)";return{restrict:"A",require:"?ngModel",link:function(r,u,f,e){var h,o,s;if(e){u.on("changeTime.timepicker",function(){n(function(){e.$setViewValue(u.val())})});h=RegExp("^"+i+"$",["i"]);e.$parsers.unshift(function(n){return!n||h.test(n)?(e.$setValidity("time",!0),n):(e.$setValidity("time",!1),void 0)})}u.attr("data-toggle","timepicker");u.parent().addClass("bootstrap-timepicker");u.timepicker(t.timepicker||{});o=u.data("timepicker");s=u.siblings('[data-toggle="timepicker"]');s.length&&s.on("click",$.proxy(o.showWidget,o))}}}]),angular.module("$strap.directives").directive("bsTooltip",["$parse","$compile",function(n){return{restrict:"A",scope:!0,link:function(t,i,r){var f=n(r.bsTooltip),u=(f.assign,f(t)),e;t.$watch(r.bsTooltip,function(n,t){n!==t&&(u=n)});r.unique&&i.on("show",function(){$(".tooltip.in").each(function(){var n=$(this),t=n.data("tooltip");t&&!t.$element.is(i)&&n.tooltip("hide")})});i.tooltip({title:function(){return angular.isFunction(u)?u.apply(null,arguments):u},html:!0});e=i.data("tooltip");e.show=function(){var n=$.fn.tooltip.Constructor.prototype.show.apply(this,arguments);return this.tip().data("tooltip",this),n};t._tooltip=function(n){i.tooltip(n)};t.hide=function(){i.tooltip("hide")};t.show=function(){i.tooltip("show")};t.dismiss=t.hide}}}]),angular.module("$strap.directives").directive("bsTypeahead",["$parse",function(n){return{restrict:"A",require:"?ngModel",link:function(t,i,r,u){var o=n(r.bsTypeahead),f=(o.assign,o(t)),e;t.$watch(r.bsTypeahead,function(n,t){n!==t&&(f=n)});i.attr("data-provide","typeahead");i.typeahead({source:function(){return angular.isFunction(f)?f.apply(null,arguments):f},minLength:r.minLength||1,items:r.items,updater:function(n){return u&&t.$apply(function(){u.$setViewValue(n)}),t.$emit("typeahead-updated",n),n}});e=i.data("typeahead");e.lookup=function(){var n;return this.query=this.$element.val()||"",this.query.length<this.options.minLength?this.shown?this.hide():this:(n=$.isFunction(this.source)?this.source(this.query,$.proxy(this.process,this)):this.source,n?this.process(n):this)};r.matchAll&&(e.matcher=function(){return!0});"0"===r.minLength&&setTimeout(function(){i.on("focus",function(){0===i.val().length&&setTimeout(i.typeahead.bind(i,"lookup"),200)})})}}}]),window.Modernizr=function(n,t,i){function l(n){c.cssText=n}function at(n,t){return l(y.join(n+";")+(t||""))}function h(n,t){return typeof n===t}function a(n,t){return!!~(""+n).indexOf(t)}function ut(n,t){var u,r;for(u in n)if(r=n[u],!a(r,"-")&&c[r]!==i)return t=="pfx"?r:!0;return!1}function vt(n,t,r){var f,u;for(f in n)if(u=t[n[f]],u!==i)return r===!1?n[f]:h(u,"function")?u.bind(r||t):u;return!1}function f(n,t,i){var r=n.charAt(0).toUpperCase()+n.slice(1),u=(n+" "+st.join(r+" ")+r).split(" ");return h(t,"string")||h(t,"undefined")?ut(u,t):(u=(n+" "+ht.join(r+" ")+r).split(" "),vt(u,t,i))}function yt(){u.input=function(i){for(var r=0,u=i.length;r<u;r++)w[i[r]]=!!(i[r]in e);return w.list&&(w.list=!!(t.createElement("datalist")&&n.HTMLDataListElement)),w}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));u.inputtypes=function(n){for(var u=0,r,f,o,h=n.length;u<h;u++)e.setAttribute("type",f=n[u]),r=e.type!=="text",r&&(e.value=g,e.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&e.style.WebkitAppearance!==i?(s.appendChild(e),o=t.defaultView,r=o.getComputedStyle&&o.getComputedStyle(e,null).WebkitAppearance!=="textfield"&&e.offsetHeight!==0,s.removeChild(e)):/^(search|tel)$/.test(f)||(r=/^(url|email)$/.test(f)?e.checkValidity&&e.checkValidity()===!1:e.value!=g)),ct[n[u]]=!!r;return ct}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var u={},d=!0,s=t.documentElement,o="modernizr",ft=t.createElement(o),c=ft.style,e=t.createElement("input"),g=":)",et={}.toString,y=" -webkit- -moz- -o- -ms- ".split(" "),ot="Webkit Moz O ms",st=ot.split(" "),ht=ot.toLowerCase().split(" "),p={svg:"http://www.w3.org/2000/svg"},r={},ct={},w={},nt=[],tt=nt.slice,b,v=function(n,i,r,u){var l,a,c,v,f=t.createElement("div"),h=t.body,e=h||t.createElement("body");if(parseInt(r,10))while(r--)c=t.createElement("div"),c.id=u?u[r]:o+(r+1),f.appendChild(c);return l=["&#173;",'<style id="s',o,'">',n,"<\/style>"].join(""),f.id=o,(h?f:e).innerHTML+=l,e.appendChild(f),h||(e.style.background="",e.style.overflow="hidden",v=s.style.overflow,s.style.overflow="hidden",s.appendChild(e)),a=i(f,n),h?f.parentNode.removeChild(f):(e.parentNode.removeChild(e),s.style.overflow=v),!!a},lt=function(){function n(n,u){u=u||t.createElement(r[n]||"div");n="on"+n;var f=n in u;return f||(u.setAttribute||(u=t.createElement("div")),u.setAttribute&&u.removeAttribute&&(u.setAttribute(n,""),f=h(u[n],"function"),h(u[n],"undefined")||(u[n]=i),u.removeAttribute(n))),u=null,f}var r={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return n}(),it={}.hasOwnProperty,rt,k;rt=h(it,"undefined")||h(it.call,"undefined")?function(n,t){return t in n&&h(n.constructor.prototype[t],"undefined")}:function(n,t){return it.call(n,t)};Function.prototype.bind||(Function.prototype.bind=function(n){var t=this,i,r;if(typeof t!="function")throw new TypeError;return i=tt.call(arguments,1),r=function(){var f,e,u;return this instanceof r?(f=function(){},f.prototype=t.prototype,e=new f,u=t.apply(e,i.concat(tt.call(arguments))),Object(u)===u)?u:e:t.apply(n,i.concat(tt.call(arguments)))},r});r.flexbox=function(){return f("flexWrap")};r.canvas=function(){var n=t.createElement("canvas");return!!(n.getContext&&n.getContext("2d"))};r.canvastext=function(){return!!(u.canvas&&h(t.createElement("canvas").getContext("2d").fillText,"function"))};r.webgl=function(){return!!n.WebGLRenderingContext};r.touch=function(){var i;return"ontouchstart"in n||n.DocumentTouch&&t instanceof DocumentTouch?i=!0:v(["@media (",y.join("touch-enabled),("),o,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(n){i=n.offsetTop===9}),i};r.geolocation=function(){return"geolocation"in navigator};r.postmessage=function(){return!!n.postMessage};r.websqldatabase=function(){return!!n.openDatabase};r.indexedDB=function(){return!!f("indexedDB",n)};r.hashchange=function(){return lt("hashchange",n)&&(t.documentMode===i||t.documentMode>7)};r.history=function(){return!!(n.history&&history.pushState)};r.draganddrop=function(){var n=t.createElement("div");return"draggable"in n||"ondragstart"in n&&"ondrop"in n};r.websockets=function(){return"WebSocket"in n||"MozWebSocket"in n};r.rgba=function(){return l("background-color:rgba(150,255,150,.5)"),a(c.backgroundColor,"rgba")};r.hsla=function(){return l("background-color:hsla(120,40%,100%,.5)"),a(c.backgroundColor,"rgba")||a(c.backgroundColor,"hsla")};r.multiplebgs=function(){return l("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(c.background)};r.backgroundsize=function(){return f("backgroundSize")};r.borderimage=function(){return f("borderImage")};r.borderradius=function(){return f("borderRadius")};r.boxshadow=function(){return f("boxShadow")};r.textshadow=function(){return t.createElement("div").style.textShadow===""};r.opacity=function(){return at("opacity:.55"),/^0.55$/.test(c.opacity)};r.cssanimations=function(){return f("animationName")};r.csscolumns=function(){return f("columnCount")};r.cssgradients=function(){var n="background-image:";return l((n+"-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));"+n)+y.join("linear-gradient(left top,#9f9, white);"+n)).slice(0,-n.length)),a(c.backgroundImage,"gradient")};r.cssreflections=function(){return f("boxReflect")};r.csstransforms=function(){return!!f("transform")};r.csstransforms3d=function(){var n=!!f("perspective");return n&&"webkitPerspective"in s.style&&v("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t){n=t.offsetLeft===9&&t.offsetHeight===3}),n};r.csstransitions=function(){return f("transition")};r.fontface=function(){var n;return v('@font-face {font-family:"font";src:url("https://")}',function(i,r){var f=t.getElementById("smodernizr"),u=f.sheet||f.styleSheet,e=u?u.cssRules&&u.cssRules[0]?u.cssRules[0].cssText:u.cssText||"":"";n=/src/i.test(e)&&e.indexOf(r.split(" ")[0])===0}),n};r.generatedcontent=function(){var n;return v(["#",o,"{font:0/0 a}#",o,':after{content:"',g,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){n=t.offsetHeight>=3}),n};r.video=function(){var i=t.createElement("video"),n=!1;try{(n=!!i.canPlayType)&&(n=new Boolean(n),n.ogg=i.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=i.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=i.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(r){}return n};r.audio=function(){var i=t.createElement("audio"),n=!1;try{(n=!!i.canPlayType)&&(n=new Boolean(n),n.ogg=i.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=i.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=i.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(i.canPlayType("audio/x-m4a;")||i.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(r){}return n};r.localstorage=function(){try{return localStorage.setItem(o,o),localStorage.removeItem(o),!0}catch(n){return!1}};r.sessionstorage=function(){try{return sessionStorage.setItem(o,o),sessionStorage.removeItem(o),!0}catch(n){return!1}};r.webworkers=function(){return!!n.Worker};r.applicationcache=function(){return!!n.applicationCache};r.svg=function(){return!!t.createElementNS&&!!t.createElementNS(p.svg,"svg").createSVGRect};r.inlinesvg=function(){var n=t.createElement("div");return n.innerHTML="<svg/>",(n.firstChild&&n.firstChild.namespaceURI)==p.svg};r.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(et.call(t.createElementNS(p.svg,"animate")))};r.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(et.call(t.createElementNS(p.svg,"clipPath")))};for(k in r)rt(r,k)&&(b=k.toLowerCase(),u[b]=r[k](),nt.push((u[b]?"":"no-")+b));return u.input||yt(),u.addTest=function(n,t){if(typeof n=="object")for(var r in n)rt(n,r)&&u.addTest(r,n[r]);else{if(n=n.toLowerCase(),u[n]!==i)return u;t=typeof t=="function"?t():t;typeof d!="undefined"&&d&&(s.className+=" "+(t?"":"no-")+n);u[n]=t}return u},l(""),ft=e=null,function(n,t){function v(n,t){var i=n.createElement("p"),r=n.getElementsByTagName("head")[0]||n.documentElement;return i.innerHTML="x<style>"+t+"<\/style>",r.insertBefore(i.lastChild,r.firstChild)}function s(){var n=r.elements;return typeof n=="string"?n.split(" "):n}function u(n){var t=a[n[l]];return t||(t={},o++,n[l]=o,a[o]=t),t}function h(n,r,f){if(r||(r=t),i)return r.createElement(n);f||(f=u(r));var e;return e=f.cache[n]?f.cache[n].cloneNode():b.test(n)?(f.cache[n]=f.createElem(n)).cloneNode():f.createElem(n),e.canHaveChildren&&!w.test(n)?f.frag.appendChild(e):e}function y(n,r){if(n||(n=t),i)return n.createDocumentFragment();r=r||u(n);for(var e=r.frag.cloneNode(),f=0,o=s(),h=o.length;f<h;f++)e.createElement(o[f]);return e}function p(n,t){t.cache||(t.cache={},t.createElem=n.createElement,t.createFrag=n.createDocumentFragment,t.frag=t.createFrag());n.createElement=function(i){return r.shivMethods?h(i,n,t):t.createElem(i)};n.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+s().join().replace(/\w+/g,function(n){return t.createElem(n),t.frag.createElement(n),'c("'+n+'")'})+");return n}")(r,t.frag)}function c(n){n||(n=t);var f=u(n);return!r.shivCSS||e||f.hasCSS||(f.hasCSS=!!v(n,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),i||p(n,f),n}var f=n.html5||{},w=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,b=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,e,l="_html5shiv",o=0,a={},i,r;(function(){try{var n=t.createElement("a");n.innerHTML="<xyz><\/xyz>";e="hidden"in n;i=n.childNodes.length==1||function(){t.createElement("a");var n=t.createDocumentFragment();return typeof n.cloneNode=="undefined"||typeof n.createDocumentFragment=="undefined"||typeof n.createElement=="undefined"}()}catch(r){e=!0;i=!0}})();r={elements:f.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:f.shivCSS!==!1,supportsUnknownElements:i,shivMethods:f.shivMethods!==!1,type:"default",shivDocument:c,createElement:h,createDocumentFragment:y};n.html5=r;c(t)}(this,t),u._version="2.6.2",u._prefixes=y,u._domPrefixes=ht,u._cssomPrefixes=st,u.hasEvent=lt,u.testProp=function(n){return ut([n])},u.testAllProps=f,u.testStyles=v,u.prefixed=function(n,t,i){return t?f(n,t,i):f(n,"pfx")},s.className=s.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(d?" js "+nt.join(" "):""),u}(this,this.document),function(n,t,i){function h(n){return"[object Function]"==y.call(n)}function c(n){return"string"==typeof n}function l(){}function w(n){return!n||"loaded"==n||"complete"==n||"uninitialized"==n}function f(){var n=a.shift();v=1;n?n.t?s(function(){("c"==n.t?u.injectCss:u.injectJs)(n.s,0,n.a,n.x,n.e,1)},0):(n(),f()):v=0}function ut(n,i,o,h,c,l,y){function k(t){if(!nt&&w(p.readyState)&&(tt.r=nt=1,!v&&f(),p.onload=p.onreadystatechange=null,t)){"img"!=n&&s(function(){g.removeChild(p)},50);for(var u in r[i])r[i].hasOwnProperty(u)&&r[i][u].onload()}}var y=y||u.errorTimeout,p=t.createElement(n),nt=0,b=0,tt={t:o,s:i,e:c,a:l,x:y};1===r[i]&&(b=1,r[i]=[]);"object"==n?p.data=i:(p.src=i,p.type=n);p.width=p.height="0";p.onerror=p.onload=p.onreadystatechange=function(){k.call(this,b)};a.splice(h,0,tt);"img"!=n&&(b||2===r[i]?(g.insertBefore(p,d?null:e),s(k,y)):r[i].push(p))}function ft(n,t,i,r,u){return v=0,t=t||"j",c(n)?ut("c"==t?et:nt,n,t,this.i++,i,r,u):(a.splice(this.i++,0,n),1==a.length&&f()),this}function b(){var n=u;return n.loader={load:ft,i:0},n}var o=t.documentElement,s=n.setTimeout,e=t.getElementsByTagName("script")[0],y={}.toString,a=[],v=0,k="MozAppearance"in o.style,d=k&&!!t.createRange().compareNode,g=d?o:e.parentNode,o=n.opera&&"[object Opera]"==y.call(n.opera),o=!!t.attachEvent&&!o,nt=k?"object":o?"script":"img",et=o?"script":nt,tt=Array.isArray||function(n){return"[object Array]"==y.call(n)},p=[],r={},it={timeout:function(n,t){return t.length&&(n.timeout=t[0]),n}},rt,u;u=function(n){function a(n){for(var n=n.split("!"),f=p.length,t=n.pop(),e=n.length,t={url:t,origUrl:t,prefixes:n},u,r,i=0;i<e;i++)r=n[i].split("="),(u=it[r.shift()])&&(t=u(t,r));for(i=0;i<f;i++)t=p[i](t);return t}function f(n,t,u,f,e){var o=a(n),s=o.autoCallback;o.url.split(".").pop().split("?").shift();o.bypass||(t&&(t=h(t)?t:t[n]||t[f]||t[n.split("/").pop().split("?")[0]]),o.instead?o.instead(n,t,u,f,e):(r[o.url]?o.noexec=!0:r[o.url]=1,u.load(o.url,o.forceCSS||!o.forceJS&&"css"==o.url.split(".").pop().split("?").shift()?"c":i,o.noexec,o.attrs,o.timeout),(h(t)||h(s))&&u.load(function(){b();t&&t(o.origUrl,e,f);s&&s(o.origUrl,e,f);r[o.url]=2})))}function s(n,t){function a(n,o){if(n){if(c(n))o||(i=function(){var n=[].slice.call(arguments);s.apply(this,n);u()}),f(n,i,t,0,e);else if(Object(n)===n)for(r in v=function(){var t=0;for(var i in n)n.hasOwnProperty(i)&&t++;return t}(),n)n.hasOwnProperty(r)&&(!o&&!--v&&(h(i)?i=function(){var n=[].slice.call(arguments);s.apply(this,n);u()}:i[r]=function(n){return function(){var t=[].slice.call(arguments);n&&n.apply(this,t);u()}}(s[r])),f(n[r],i,t,r,e))}else o||u()}var e=!!n.test,o=n.load||n.both,i=n.callback||l,s=i,u=n.complete||l,v,r;a(e?n.yep:n.nope,!!o);o&&a(o)}var e,t,o=this.yepnope.loader;if(c(n))f(n,0,o,0);else if(tt(n))for(e=0;e<n.length;e++)t=n[e],c(t)?f(t,0,o,0):tt(t)?u(t):Object(t)===t&&s(t,o);else Object(n)===n&&s(n,o)};u.addPrefix=function(n,t){it[n]=t};u.addFilter=function(n){p.push(n)};u.errorTimeout=1e4;null==t.readyState&&t.addEventListener&&(t.readyState="loading",t.addEventListener("DOMContentLoaded",rt=function(){t.removeEventListener("DOMContentLoaded",rt,0);t.readyState="complete"},0));n.yepnope=b();n.yepnope.executeStack=f;n.yepnope.injectJs=function(n,i,r,o,h,c){var a=t.createElement("script"),v,y,o=o||u.errorTimeout;a.src=n;for(y in r)a.setAttribute(y,r[y]);i=c?f:i||l;a.onreadystatechange=a.onload=function(){!v&&w(a.readyState)&&(v=1,i(),a.onload=a.onreadystatechange=null)};s(function(){v||(v=1,i(1))},o);h?a.onload():e.parentNode.insertBefore(a,e)};n.yepnope.injectCss=function(n,i,r,u,o,h){var u=t.createElement("link"),c,i=h?f:i||l;u.href=n;u.rel="stylesheet";u.type="text/css";for(c in r)u.setAttribute(c,r[c]);o||(e.parentNode.insertBefore(u,e),s(i,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))},function(){"use strict";var n=function(n){var t=function(t,i){this.el=n(t);this.zoomFactor=1;this.lastScale=1;this.offset={x:0,y:0};this.options=n.extend({},this.defaults,i);this.setupMarkup();this.bindEvents();this.update();t&&t.context&&t.context.id&&t.context.id.indexOf("zoom0")!==-1&&this.startZoomTap()},i=function(n,t){return n+t},u=function(n,t){return n>t-.01&&n<t+.01},r;return t.prototype={defaults:{tapZoomFactor:2,zoomOutFactor:1.3,animationDuration:300,animationInterval:5,maxZoom:4,minZoom:.5,use2d:!0},handleDragStart:function(n){this.stopAnimation();this.lastDragPosition=!1;this.hasInteraction=!0;this.handleDrag(n)},handleDrag:function(n){if(this.zoomFactor>1){var t=this.getTouches(n)[0];this.drag(t,this.lastDragPosition);this.offset=this.sanitizeOffset(this.offset);this.lastDragPosition=t}},handleDragEnd:function(){this.end()},handleZoomStart:function(){this.stopAnimation();this.lastScale=1;this.nthZoom=0;this.lastZoomCenter=!1;this.hasInteraction=!0},handleZoom:function(n,t){var i=this.getTouchCenter(this.getTouches(n)),r=t/this.lastScale;this.lastScale=t;this.nthZoom+=1;this.nthZoom>3&&(this.scale(r,i),this.drag(i,this.lastZoomCenter));this.lastZoomCenter=i},handleZoomEnd:function(){this.end()},handleDoubleTap:function(n){var i=this.getTouches(n)[0],r=this.zoomFactor>1?1:this.options.tapZoomFactor,t=this.zoomFactor,u=function(n){this.scaleTo(t+n*(r-t),i)}.bind(this);this.hasInteraction||(t>r&&(i=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,this.options.animationInterval,u,this.swing))},startZoomTap:function(){var t={x:180,y:270},i=this.zoomFactor>1?1:this.options.tapZoomFactor,n=this.zoomFactor,r=function(r){this.scaleTo(n+r*(i-n),t)}.bind(this);this.hasInteraction||(n>i&&(t=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,this.options.animationInterval,r,this.swing))},sanitizeOffset:function(n){var t=(this.zoomFactor-1)*this.getContainerX(),i=(this.zoomFactor-1)*this.getContainerY(),r=Math.max(t,0),u=Math.max(i,0),f=Math.min(t,0),e=Math.min(i,0);return{x:Math.min(Math.max(n.x,f),r),y:Math.min(Math.max(n.y,e),u)}},scaleTo:function(n,t){this.scale(n/this.zoomFactor,t)},scale:function(n,t){n=this.scaleZoomFactor(n);this.addOffset({x:(n-1)*(t.x+this.offset.x),y:(n-1)*(t.y+this.offset.y)})},scaleZoomFactor:function(n){var t=this.zoomFactor;return this.zoomFactor*=n,this.zoomFactor=Math.min(this.options.maxZoom,Math.max(this.zoomFactor,this.options.minZoom)),this.zoomFactor/t},drag:function(n,t){t&&this.addOffset({x:-(n.x-t.x),y:-(n.y-t.y)})},getTouchCenter:function(n){return this.getVectorAvg(n)},getVectorAvg:function(n){return{x:n.map(function(n){return n.x}).reduce(i)/n.length,y:n.map(function(n){return n.y}).reduce(i)/n.length}},addOffset:function(n){this.offset={x:this.offset.x+n.x,y:this.offset.y+n.y}},sanitize:function(){this.zoomFactor<this.options.zoomOutFactor?this.zoomOutAnimation():this.isInsaneOffset(this.offset)&&this.sanitizeOffsetAnimation()},isInsaneOffset:function(n){var t=this.sanitizeOffset(n);return t.x!==n.x||t.y!==n.y},sanitizeOffsetAnimation:function(){var t=this.sanitizeOffset(this.offset),n={x:this.offset.x,y:this.offset.y},i=function(i){this.offset.x=n.x+i*(t.x-n.x);this.offset.y=n.y+i*(t.y-n.y);this.update()}.bind(this);this.animate(this.options.animationDuration,this.options.animationInterval,i,this.swing)},zoomOutAnimation:function(){var n=this.zoomFactor,t=1,i=this.getCurrentZoomCenter(),r=function(r){this.scaleTo(n+r*(t-n),i)}.bind(this);this.animate(this.options.animationDuration,this.options.animationInterval,r,this.swing)},updateAspectRatio:function(){this.setContainerY(this.getContainerX()/this.getAspectRatio())},getInitialZoomFactor:function(){return this.container.width()/this.el.width()},getAspectRatio:function(){return this.el.width()/this.el.height()},getCurrentZoomCenter:function(){var s=this.container.width()*this.zoomFactor,n=this.offset.x,t=s-n-this.container.width(),i=n/t,r=i*this.container.width()/(i+1),h=this.container.height()*this.zoomFactor,u=this.offset.y,f=h-u-this.container.height(),e=u/f,o=e*this.container.height()/(e+1);return t===0&&(r=this.container.width()),f===0&&(o=this.container.height()),{x:r,y:o}},canDrag:function(){return!u(this.zoomFactor,1)},getTouches:function(n){var t=this.container.offset();return Array.prototype.slice.call(n.touches).map(function(n){return{x:n.pageX-t.left,y:n.pageY-t.top}})},animate:function(n,t,i,r,u){var e=(new Date).getTime(),f=function(){if(this.inAnimation){var s=(new Date).getTime()-e,o=s/n;s>=n?(i(1),u&&u(),this.update(),this.stopAnimation(),this.update()):(r&&(o=r(o)),i(o),this.update(),setTimeout(f,t))}}.bind(this);this.inAnimation=!0;f()},stopAnimation:function(){this.inAnimation=!1},swing:function(n){return-Math.cos(n*Math.PI)/2+.5},getContainerX:function(){return this.container.width()},getContainerY:function(){return this.container.height()},setContainerY:function(n){return this.container.height(n)},setupMarkup:function(){this.container=n('<div class="pinch-zoom-container"><\/div>');this.el.before(this.container);this.container.append(this.el);this.container.css({overflow:"hidden",position:"relative"});this.el.css({webkitTransformOrigin:"0% 0%",mozTransformOrigin:"0% 0%",msTransformOrigin:"0% 0%",oTransformOrigin:"0% 0%",transformOrigin:"0% 0%",position:"absolute"})},end:function(){this.hasInteraction=!1;this.sanitize();this.update()},bindEvents:function(){r(this.container.get(0),this);n(window).bind("resize",this.update.bind(this));n(this.el).find("img").bind("load",this.update.bind(this))},update:function(){this.updatePlaned||(this.updatePlaned=!0,setTimeout(function(){this.updatePlaned=!1;this.updateAspectRatio();var t=this.getInitialZoomFactor()*this.zoomFactor,i=-this.offset.x/t,r=-this.offset.y/t,u="scale3d("+t+", "+t+",1) translate3d("+i+"px,"+r+"px,0px)",n="scale("+t+", "+t+") translate("+i+"px,"+r+"px)",f=function(){this.clone&&(this.clone.remove(),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,f(),this.el.css({webkitTransform:u,oTransform:n,msTransform:n,mozTransform:n,transform:u})):(this.is3d&&(this.clone=this.el.clone(),this.clone.css("pointer-events","none"),this.clone.appendTo(this.container),setTimeout(f,200)),this.el.css({webkitTransform:n,oTransform:n,msTransform:n,mozTransform:n,transform:n}),this.is3d=!1)}.bind(this),0))}},r=function(n,t){var i=null,r=0,u=null,s=null,f=function(n,r){if(i!==n){if(i&&!n)switch(i){case"zoom":t.handleZoomEnd(r);break;case"drag":t.handleDragEnd(r)}switch(n){case"zoom":t.handleZoomStart(r);break;case"drag":t.handleDragStart(r)}}i=n},h=function(n){r===2?f("zoom"):r===1&&t.canDrag()?f("drag",n):f(null,n)},c=function(n){return Array.prototype.slice.call(n).map(function(n){return{x:n.pageX,y:n.pageY}})},l=function(n,t){var i,r;return i=n.x-t.x,r=n.y-t.y,Math.sqrt(i*i+r*r)},a=function(n,t){var i=l(n[0],n[1]),r=l(t[0],t[1]);return r/i},e=function(n){n.stopPropagation();n.preventDefault()},v=function(n){var f=(new Date).getTime();if(r>1&&(u=null),f-u<300){e(n);t.handleDoubleTap(n);switch(i){case"zoom":t.handleZoomEnd(n);break;case"drag":t.handleDragEnd(n)}}r===1&&(u=f)},o=!0;n.addEventListener("touchstart",function(n){o=!0;r=n.touches.length;v(n)});n.addEventListener("touchmove",function(n){if(o)h(n),i&&e(n),s=c(n.touches);else{switch(i){case"zoom":t.handleZoom(n,a(s,c(n.touches)));break;case"drag":t.handleDrag(n)}i&&(e(n),t.update())}o=!1});n.addEventListener("touchend",function(n){r=n.touches.length;h(n)})},t};typeof define!="undefined"&&define.amd?define(["jquery"],function(t){return n(t)}):(window.RTP=window.RTP||{},window.RTP.PinchZoom=n(jQuery))}.call(this),document.createElement("video"),document.createElement("audio"),document.createElement("track"),vjs=function(n,t,i){var r;if(typeof n=="string"){if(n.indexOf("#")===0&&(n=n.slice(1)),vjs.players[n])return vjs.players[n];r=vjs.el(n)}else r=n;if(!r||!r.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return r.player||new vjs.Player(r,t,i)},videojs=vjs,window.videojs=window.vjs=vjs,vjs.CDN_VERSION="4.4",vjs.ACCESS_PROTOCOL="https:"==document.location.protocol?"https://":"http://",vjs.options={techOrder:["html5","flash"],html5:{},flash:{},width:300,height:150,defaultVolume:0,children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}},notSupportedMessage:'Sorry, no compatible source and playback technology were found for this video. Try using another browser like <a href="http://bit.ly/ccMUEC">Chrome<\/a> or download the latest <a href="http://adobe.ly/mwfN1">Adobe Flash Player<\/a>.'},vjs.CDN_VERSION!=="GENERATED_CDN_VSN"&&(videojs.options.flash.swf=vjs.ACCESS_PROTOCOL+"vjs.zencdn.net/"+vjs.CDN_VERSION+"/video-js.swf"),vjs.players={},typeof define=="function"&&define.amd?define([],function(){return videojs}):typeof exports=="object"&&typeof module=="object"&&(module.exports=videojs),vjs.CoreObject=vjs.CoreObject=function(){},vjs.CoreObject.extend=function(n){var r,t,i;n=n||{};r=n.init||n.init||this.prototype.init||this.prototype.init||function(){};t=function(){r.apply(this,arguments)};t.prototype=vjs.obj.create(this.prototype);t.prototype.constructor=t;t.extend=vjs.CoreObject.extend;t.create=vjs.CoreObject.create;for(i in n)n.hasOwnProperty(i)&&(t.prototype[i]=n[i]);return t},vjs.CoreObject.create=function(){var n=vjs.obj.create(this.prototype);return this.apply(n,arguments),n},vjs.on=function(n,t,i){var r=vjs.getData(n);r.handlers||(r.handlers={});r.handlers[t]||(r.handlers[t]=[]);i.guid||(i.guid=vjs.guid++);r.handlers[t].push(i);r.dispatcher||(r.disabled=!1,r.dispatcher=function(t){var u,f,i,e;if(!r.disabled&&(t=vjs.fixEvent(t),u=r.handlers[t.type],u))for(f=u.slice(0),i=0,e=f.length;i<e;i++)if(t.isImmediatePropagationStopped())break;else f[i].call(n,t)});r.handlers[t].length==1&&(document.addEventListener?n.addEventListener(t,r.dispatcher,!1):document.attachEvent&&n.attachEvent("on"+t,r.dispatcher))},vjs.off=function(n,t,i){var r,e,o,u,f;if(vjs.hasData(n)&&(r=vjs.getData(n),r.handlers)){if(e=function(t){r.handlers[t]=[];vjs.cleanUpEvents(n,t)},!t){for(o in r.handlers)e(o);return}if(u=r.handlers[t],u){if(!i){e(t);return}if(i.guid)for(f=0;f<u.length;f++)u[f].guid===i.guid&&u.splice(f--,1);vjs.cleanUpEvents(n,t)}}},vjs.cleanUpEvents=function(n,t){var i=vjs.getData(n);i.handlers[t].length===0&&(delete i.handlers[t],document.removeEventListener?n.removeEventListener(t,i.dispatcher,!1):document.detachEvent&&n.detachEvent("on"+t,i.dispatcher));vjs.isEmpty(i.handlers)&&(delete i.handlers,delete i.dispatcher,delete i.disabled);vjs.isEmpty(i)&&vjs.removeData(n)},vjs.fixEvent=function(n){function f(){return!0}function e(){return!1}var t,u,i,r;if(!n||!n.isPropagationStopped){t=n||window.event;n={};for(u in t)u!=="layerX"&&u!=="layerY"&&u!=="keyboardEvent.keyLocation"&&(u=="returnValue"&&t.preventDefault||(n[u]=t[u]));n.target||(n.target=n.srcElement||document);n.relatedTarget=n.fromElement===n.target?n.toElement:n.fromElement;n.preventDefault=function(){t.preventDefault&&t.preventDefault();n.returnValue=!1;n.isDefaultPrevented=f};n.isDefaultPrevented=e;n.stopPropagation=function(){t.stopPropagation&&t.stopPropagation();n.cancelBubble=!0;n.isPropagationStopped=f};n.isPropagationStopped=e;n.stopImmediatePropagation=function(){t.stopImmediatePropagation&&t.stopImmediatePropagation();n.isImmediatePropagationStopped=f;n.stopPropagation()};n.isImmediatePropagationStopped=e;n.clientX!=null&&(i=document.documentElement,r=document.body,n.pageX=n.clientX+(i&&i.scrollLeft||r&&r.scrollLeft||0)-(i&&i.clientLeft||r&&r.clientLeft||0),n.pageY=n.clientY+(i&&i.scrollTop||r&&r.scrollTop||0)-(i&&i.clientTop||r&&r.clientTop||0));n.which=n.charCode||n.keyCode;n.button!=null&&(n.button=n.button&1?0:n.button&4?1:n.button&2?2:0)}return n},vjs.trigger=function(n,t){var u=vjs.hasData(n)?vjs.getData(n):{},i=n.parentNode||n.ownerDocument,r;return typeof t=="string"&&(t={type:t,target:n}),t=vjs.fixEvent(t),u.dispatcher&&u.dispatcher.call(n,t),i&&!t.isPropagationStopped()&&t.bubbles!==!1?vjs.trigger(i,t):i||t.isDefaultPrevented()||(r=vjs.getData(t.target),t.target[t.type]&&(r.disabled=!0,typeof t.target[t.type]=="function"&&t.target[t.type](),r.disabled=!1)),!t.isDefaultPrevented()},vjs.one=function(n,t,i){var r=function(){vjs.off(n,t,r);i.apply(this,arguments)};r.guid=i.guid=i.guid||vjs.guid++;vjs.on(n,t,r)},hasOwnProp=Object.prototype.hasOwnProperty,vjs.createEl=function(n,t){var r,i;r=document.createElement(n||"div");for(i in t)hasOwnProp.call(t,i)&&(i.indexOf("aria-")!==-1||i=="role"?r.setAttribute(i,t[i]):r[i]=t[i]);return r},vjs.capitalize=function(n){return n.charAt(0).toUpperCase()+n.slice(1)},vjs.obj={},vjs.obj.create=Object.create||function(n){function t(){}return t.prototype=n,new t},vjs.obj.each=function(n,t,i){for(var r in n)hasOwnProp.call(n,r)&&t.call(i||this,r,n[r])},vjs.obj.merge=function(n,t){if(!t)return n;for(var i in t)hasOwnProp.call(t,i)&&(n[i]=t[i]);return n},vjs.obj.deepMerge=function(n,t){var i,r,u;n=vjs.obj.copy(n);for(i in t)hasOwnProp.call(t,i)&&(r=n[i],u=t[i],n[i]=vjs.obj.isPlain(r)&&vjs.obj.isPlain(u)?vjs.obj.deepMerge(r,u):t[i]);return n},vjs.obj.copy=function(n){return vjs.obj.merge({},n)},vjs.obj.isPlain=function(n){return!!n&&typeof n=="object"&&n.toString()==="[object Object]"&&n.constructor===Object},vjs.bind=function(n,t,i){t.guid||(t.guid=vjs.guid++);var r=function(){return t.apply(n,arguments)};return r.guid=i?i+"_"+t.guid:t.guid,r},vjs.cache={},vjs.guid=1,vjs.expando="vdata"+(new Date).getTime(),vjs.getData=function(n){var t=n[vjs.expando];return t||(t=n[vjs.expando]=vjs.guid++,vjs.cache[t]={}),vjs.cache[t]},vjs.hasData=function(n){var t=n[vjs.expando];return!(!t||vjs.isEmpty(vjs.cache[t]))},vjs.removeData=function(n){var t=n[vjs.expando];if(t){delete vjs.cache[t];try{delete n[vjs.expando]}catch(i){n.removeAttribute?n.removeAttribute(vjs.expando):n[vjs.expando]=null}}},vjs.isEmpty=function(n){for(var t in n)if(n[t]!==null)return!1;return!0},vjs.addClass=function(n,t){(" "+n.className+" ").indexOf(" "+t+" ")==-1&&(n.className=n.className===""?t:n.className+" "+t)},vjs.removeClass=function(n,t){var i,r;if(n.className.indexOf(t)!=-1){for(i=n.className.split(" "),r=i.length-1;r>=0;r--)i[r]===t&&i.splice(r,1);n.className=i.join(" ")}},vjs.TEST_VID=vjs.createEl("video"),vjs.USER_AGENT=navigator.userAgent,vjs.IS_IPHONE=/iPhone/i.test(vjs.USER_AGENT),vjs.IS_IPAD=/iPad/i.test(vjs.USER_AGENT),vjs.IS_IPOD=/iPod/i.test(vjs.USER_AGENT),vjs.IS_IOS=vjs.IS_IPHONE||vjs.IS_IPAD||vjs.IS_IPOD,vjs.IOS_VERSION=function(){var n=vjs.USER_AGENT.match(/OS (\d+)_/i);if(n&&n[1])return n[1]}(),vjs.IS_ANDROID=/Android/i.test(vjs.USER_AGENT),vjs.ANDROID_VERSION=function(){var n=vjs.USER_AGENT.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),t,i;return n?(t=n[1]&&parseFloat(n[1]),i=n[2]&&parseFloat(n[2]),t&&i?parseFloat(n[1]+"."+n[2]):t?t:null):null}(),vjs.IS_OLD_ANDROID=vjs.IS_ANDROID&&/webkit/i.test(vjs.USER_AGENT)&&vjs.ANDROID_VERSION<2.3,vjs.IS_FIREFOX=/Firefox/i.test(vjs.USER_AGENT),vjs.IS_CHROME=/Chrome/i.test(vjs.USER_AGENT),vjs.TOUCH_ENABLED=!!("ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),vjs.getAttributeValues=function(n){var f,e,i,r,u,t;if(f={},e=",autoplay,controls,loop,muted,default,",n&&n.attributes&&n.attributes.length>0)for(i=n.attributes,t=i.length-1;t>=0;t--)r=i[t].name,u=i[t].value,(typeof n[r]=="boolean"||e.indexOf(","+r+",")!==-1)&&(u=u!==null?!0:!1),f[r]=u;return f},vjs.getComputedDimension=function(n,t){var i="";return document.defaultView&&document.defaultView.getComputedStyle?i=document.defaultView.getComputedStyle(n,"").getPropertyValue(t):n.currentStyle&&(i=n["client"+t.substr(0,1).toUpperCase()+t.substr(1)]+"px"),i},vjs.insertFirst=function(n,t){t.firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n)},vjs.support={},vjs.el=function(n){return n.indexOf("#")===0&&(n=n.slice(1)),document.getElementById(n)},vjs.formatTime=function(n,t){t=t||n;var i=Math.floor(n%60),r=Math.floor(n/60%60),u=Math.floor(n/3600),f=Math.floor(t/60%60),e=Math.floor(t/3600);return(isNaN(n)||n===Infinity)&&(u=r=i="-"),u=u>0||e>0?u+":":"",r=((u||f>=10)&&r<10?"0"+r:r)+":",i=i<10?"0"+i:i,u+r+i},vjs.blockTextSelection=function(){document.body.focus();document.onselectstart=function(){return!1}},vjs.unblockTextSelection=function(){document.onselectstart=function(){return!0}},vjs.trim=function(n){return(n+"").replace(/^\s+|\s+$/g,"")},vjs.round=function(n,t){return t||(t=0),Math.round(n*Math.pow(10,t))/Math.pow(10,t)},vjs.createTimeRange=function(n,t){return{length:1,start:function(){return n},end:function(){return t}}},vjs.get=function(n,t,i){var u,r;typeof XMLHttpRequest=="undefined"&&(window.XMLHttpRequest=function(){try{return new window.ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(n){}try{return new window.ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(t){}try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(i){}throw new Error("This browser does not support XMLHttpRequest.");});r=new XMLHttpRequest;try{r.open("GET",n)}catch(f){i(f)}u=n.indexOf("file:")===0||window.location.href.indexOf("file:")===0&&n.indexOf("http")===-1;r.onreadystatechange=function(){r.readyState===4&&(r.status===200||u&&r.status===0?t(r.responseText):i&&i())};try{r.send()}catch(f){i&&i(f)}},vjs.setLocalStorage=function(n,t){try{var r=window.localStorage||!1;if(!r)return;r[n]=t}catch(i){i.code==22||i.code==1014?vjs.log("LocalStorage Full (VideoJS)",i):i.code==18?vjs.log("LocalStorage not allowed (VideoJS)",i):vjs.log("LocalStorage Error (VideoJS)",i)}},vjs.getAbsoluteURL=function(n){return n.match(/^https?:\/\//)||(n=vjs.createEl("div",{innerHTML:'<a href="'+n+'">x<\/a>'}).firstChild.href),n},vjs.log=function(){vjs.log.history=vjs.log.history||[];vjs.log.history.push(arguments);window.console&&window.console.log(Array.prototype.slice.call(arguments))},vjs.findPosition=function(n){var i,r,t,u,f,e,o,s,h;return(n.getBoundingClientRect&&n.parentNode&&(i=n.getBoundingClientRect()),!i)?{left:0,top:0}:(r=document.documentElement,t=document.body,u=r.clientLeft||t.clientLeft||0,f=window.pageXOffset||t.scrollLeft,e=i.left+f-u,o=r.clientTop||t.clientTop||0,s=window.pageYOffset||t.scrollTop,h=i.top+s-o,{left:e,top:h})},vjs.util={},vjs.util.mergeOptions=function(n,t){var i,r,u;n=vjs.obj.copy(n);for(i in t)t.hasOwnProperty(i)&&(r=n[i],u=t[i],n[i]=vjs.obj.isPlain(r)&&vjs.obj.isPlain(u)?vjs.util.mergeOptions(r,u):t[i]);return n},vjs.Component=vjs.CoreObject.extend({init:function(n,t,i){this.player_=n;this.options_=vjs.obj.copy(this.options_);t=this.options(t);this.id_=t.id||(t.el&&t.el.id?t.el.id:n.id()+"_component_"+vjs.guid++);this.name_=t.name||null;this.el_=t.el||this.createEl();this.children_=[];this.childIndex_={};this.childNameIndex_={};this.initChildren();this.ready(i);t.reportTouchActivity!==!1&&this.enableTouchActivity()}}),vjs.Component.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var n=this.children_.length-1;n>=0;n--)this.children_[n].dispose&&this.children_[n].dispose();this.children_=null;this.childIndex_=null;this.childNameIndex_=null;this.off();this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_);vjs.removeData(this.el_);this.el_=null},vjs.Component.prototype.player_=!0,vjs.Component.prototype.player=function(){return this.player_},vjs.Component.prototype.options_,vjs.Component.prototype.options=function(n){return n===undefined?this.options_:this.options_=vjs.util.mergeOptions(this.options_,n)},vjs.Component.prototype.el_,vjs.Component.prototype.createEl=function(n,t){return vjs.createEl(n,t)},vjs.Component.prototype.el=function(){return this.el_},vjs.Component.prototype.contentEl_,vjs.Component.prototype.contentEl=function(){return this.contentEl_||this.el_},vjs.Component.prototype.id_,vjs.Component.prototype.id=function(){return this.id_},vjs.Component.prototype.name_,vjs.Component.prototype.name=function(){return this.name_},vjs.Component.prototype.children_,vjs.Component.prototype.children=function(){return this.children_},vjs.Component.prototype.childIndex_,vjs.Component.prototype.getChildById=function(n){return this.childIndex_[n]},vjs.Component.prototype.childNameIndex_,vjs.Component.prototype.getChild=function(n){return this.childNameIndex_[n]},vjs.Component.prototype.addChild=function(n,t){var i,u,r;return typeof n=="string"?(r=n,t=t||{},u=t.componentClass||vjs.capitalize(r),t.name=r,i=new window.videojs[u](this.player_||this,t)):i=n,this.children_.push(i),typeof i.id=="function"&&(this.childIndex_[i.id()]=i),r=r||i.name&&i.name(),r&&(this.childNameIndex_[r]=i),typeof i.el=="function"&&i.el()&&this.contentEl().appendChild(i.el()),i},vjs.Component.prototype.removeChild=function(n){var i,t,r;if(typeof n=="string"&&(n=this.getChild(n)),n&&this.children_){for(i=!1,t=this.children_.length-1;t>=0;t--)if(this.children_[t]===n){i=!0;this.children_.splice(t,1);break}i&&(this.childIndex_[n.id]=null,this.childNameIndex_[n.name]=null,r=n.el(),r&&r.parentNode===this.contentEl()&&this.contentEl().removeChild(n.el()))}},vjs.Component.prototype.initChildren=function(){var n=this.options_,t;n&&n.children&&(t=this,vjs.obj.each(n.children,function(n,i){if(i!==!1){var r=function(){t[n]=t.addChild(n,i)};i.loadEvent||r()}}))},vjs.Component.prototype.buildCSSClass=function(){return""},vjs.Component.prototype.on=function(n,t){vjs.on(this.el_,n,vjs.bind(this,t));return this},vjs.Component.prototype.off=function(n,t){return vjs.off(this.el_,n,t),this},vjs.Component.prototype.one=function(n,t){vjs.one(this.el_,n,vjs.bind(this,t));return this},vjs.Component.prototype.trigger=function(n,t){return vjs.trigger(this.el_,n,t),this},vjs.Component.prototype.isReady_,vjs.Component.prototype.isReadyOnInitFinish_=!0,vjs.Component.prototype.readyQueue_,vjs.Component.prototype.ready=function(n){return n&&(this.isReady_?n.call(this):(this.readyQueue_===undefined&&(this.readyQueue_=[]),this.readyQueue_.push(n))),this},vjs.Component.prototype.triggerReady=function(){var n,t,i;if(this.isReady_=!0,n=this.readyQueue_,n&&n.length>0){for(t=0,i=n.length;t<i;t++)n[t].call(this);this.readyQueue_=[];this.trigger("ready")}},vjs.Component.prototype.addClass=function(n){return vjs.addClass(this.el_,n),this},vjs.Component.prototype.removeClass=function(n){return vjs.removeClass(this.el_,n),this},vjs.Component.prototype.show=function(){return this.el_.style.display="block",this},vjs.Component.prototype.hide=function(){return this.el_.style.display="none",this},vjs.Component.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},vjs.Component.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},vjs.Component.prototype.disable=function(){this.hide();this.show=function(){}},vjs.Component.prototype.width=function(n,t){return this.dimension("width",n,t)},vjs.Component.prototype.height=function(n,t){return this.dimension("height",n,t)},vjs.Component.prototype.dimensions=function(n,t){return this.width(n,!0).height(t)},vjs.Component.prototype.dimension=function(n,t,i){if(t!==undefined)return this.el_.style[n]=(""+t).indexOf("%")!==-1||(""+t).indexOf("px")!==-1?t:t==="auto"?"":t+"px",i||this.trigger("resize"),this;if(!this.el_)return 0;var r=this.el_.style[n],u=r.indexOf("px");return u!==-1?parseInt(r.slice(0,u),10):parseInt(this.el_["offset"+vjs.capitalize(n)],10)},vjs.Component.prototype.onResize,vjs.Component.prototype.emitTapEvents=function(){var t,r,i,n;t=0;this.on("touchstart",function(){t=(new Date).getTime();i=!0});n=function(){i=!1};this.on("touchmove",n);this.on("touchleave",n);this.on("touchcancel",n);this.on("touchend",function(){i===!0&&(r=(new Date).getTime()-t,r<250&&this.trigger("tap"))})},vjs.Component.prototype.enableTouchActivity=function(){var n,t,i;n=vjs.bind(this.player(),this.player().reportUserActivity);this.on("touchstart",function(){n();clearInterval(t);t=setInterval(n,250)});i=function(){n();clearInterval(t)};this.on("touchmove",n);this.on("touchend",i);this.on("touchcancel",i)},vjs.Button=vjs.Component.extend({init:function(n,t){var i,r;vjs.Component.call(this,n,t);i=!1;this.on("touchstart",function(n){n.preventDefault();i=!0});this.on("touchmove",function(){i=!1});r=this;this.on("touchend",function(n){if(i)r.onClick(n);n.preventDefault()});this.on("click",this.onClick);this.on("focus",this.onFocus);this.on("blur",this.onBlur)}}),vjs.Button.prototype.createEl=function(n,t){return t=vjs.obj.merge({className:this.buildCSSClass(),innerHTML:'<div class="vjs-control-content"><span class="vjs-control-text">'+(this.buttonText||"Need Text")+"<\/span><\/div>",role:"button","aria-live":"polite",tabIndex:0},t),vjs.Component.prototype.createEl.call(this,n,t)},vjs.Button.prototype.buildCSSClass=function(){return"vjs-control "+vjs.Component.prototype.buildCSSClass.call(this)},vjs.Button.prototype.onClick=function(){},vjs.Button.prototype.onFocus=function(){vjs.on(document,"keyup",vjs.bind(this,this.onKeyPress))},vjs.Button.prototype.onKeyPress=function(n){(n.which==32||n.which==13)&&(n.preventDefault(),this.onClick())},vjs.Button.prototype.onBlur=function(){vjs.off(document,"keyup",vjs.bind(this,this.onKeyPress))},vjs.Slider=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);this.bar=this.getChild(this.options_.barName);this.handle=this.getChild(this.options_.handleName);n.on(this.playerEvent,vjs.bind(this,this.update));this.on("mousedown",this.onMouseDown);this.on("touchstart",this.onMouseDown);this.on("focus",this.onFocus);this.on("blur",this.onBlur);this.on("click",this.onClick);this.player_.on("controlsvisible",vjs.bind(this,this.update));n.ready(vjs.bind(this,this.update));this.boundEvents={}}}),vjs.Slider.prototype.createEl=function(n,t){return t=t||{},t.className=t.className+" vjs-slider",t=vjs.obj.merge({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},t),vjs.Component.prototype.createEl.call(this,n,t)},vjs.Slider.prototype.onMouseDown=function(n){n.preventDefault();vjs.blockTextSelection();this.boundEvents.move=vjs.bind(this,this.onMouseMove);this.boundEvents.end=vjs.bind(this,this.onMouseUp);vjs.on(document,"mousemove",this.boundEvents.move);vjs.on(document,"mouseup",this.boundEvents.end);vjs.on(document,"touchmove",this.boundEvents.move);vjs.on(document,"touchend",this.boundEvents.end);this.onMouseMove(n)},vjs.Slider.prototype.onMouseUp=function(){vjs.unblockTextSelection();vjs.off(document,"mousemove",this.boundEvents.move,!1);vjs.off(document,"mouseup",this.boundEvents.end,!1);vjs.off(document,"touchmove",this.boundEvents.move,!1);vjs.off(document,"touchend",this.boundEvents.end,!1);this.update()},vjs.Slider.prototype.update=function(){if(this.el_){var t,n=this.getPercent(),i=this.handle,e=this.bar;if(isNaN(n)&&(n=0),t=n,i){var o=this.el_,s=o.offsetWidth,r=i.el().offsetWidth,u=r?r/s:0,h=1-u,f=n*h;t=f+u/2;i.el().style.left=vjs.round(f*100,2)+"%"}e.el().style.width=vjs.round(t*100,2)+"%"}},vjs.Slider.prototype.calculateDistance=function(n){var e,o,r,u,f,t,i,c,l,s,h;return e=this.el_,o=vjs.findPosition(e),f=t=e.offsetWidth,i=this.handle,this.options_.vertical?(u=o.top,l=n.changedTouches?n.changedTouches[0].pageY:n.pageY,i&&(s=i.el().offsetHeight,u=u+s/2,t=t-s),Math.max(0,Math.min(1,(u-l+t)/t))):(r=o.left,c=n.changedTouches?n.changedTouches[0].pageX:n.pageX,i&&(h=i.el().offsetWidth,r=r+h/2,f=f-h),Math.max(0,Math.min(1,(c-r)/f)))},vjs.Slider.prototype.onFocus=function(){vjs.on(document,"keyup",vjs.bind(this,this.onKeyPress))},vjs.Slider.prototype.onKeyPress=function(n){n.which==37?(n.preventDefault(),this.stepBack()):n.which==39&&(n.preventDefault(),this.stepForward())},vjs.Slider.prototype.onBlur=function(){vjs.off(document,"keyup",vjs.bind(this,this.onKeyPress))},vjs.Slider.prototype.onClick=function(n){n.stopImmediatePropagation();n.preventDefault()},vjs.SliderHandle=vjs.Component.extend(),vjs.SliderHandle.prototype.defaultValue=0,vjs.SliderHandle.prototype.createEl=function(n,t){return t=t||{},t.className=t.className+" vjs-slider-handle",t=vjs.obj.merge({innerHTML:'<span class="vjs-control-text">'+this.defaultValue+"<\/span>"},t),vjs.Component.prototype.createEl.call(this,"div",t)},vjs.Menu=vjs.Component.extend(),vjs.Menu.prototype.addItem=function(n){this.addChild(n);n.on("click",vjs.bind(this,function(){this.unlockShowing()}))},vjs.Menu.prototype.createEl=function(){var t=this.options().contentElType||"ul",n;this.contentEl_=vjs.createEl(t,{className:"vjs-menu-content"});n=vjs.Component.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});n.appendChild(this.contentEl_);vjs.on(n,"click",function(n){n.preventDefault();n.stopImmediatePropagation()});return n},vjs.MenuItem=vjs.Button.extend({init:function(n,t){vjs.Button.call(this,n,t);this.selected(t.selected)}}),vjs.MenuItem.prototype.createEl=function(n,t){return vjs.Button.prototype.createEl.call(this,"li",vjs.obj.merge({className:"vjs-menu-item",innerHTML:this.options_.label},t))},vjs.MenuItem.prototype.onClick=function(){this.selected(!0)},vjs.MenuItem.prototype.selected=function(n){n?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},vjs.MenuButton=vjs.Button.extend({init:function(n,t){vjs.Button.call(this,n,t);this.menu=this.createMenu();this.addChild(this.menu);this.items&&this.items.length===0&&this.hide();this.on("keyup",this.onKeyPress);this.el_.setAttribute("aria-haspopup",!0);this.el_.setAttribute("role","button")}}),vjs.MenuButton.prototype.buttonPressed_=!1,vjs.MenuButton.prototype.createMenu=function(){var t=new vjs.Menu(this.player_),n;if(this.options().title&&t.el().appendChild(vjs.createEl("li",{className:"vjs-menu-title",innerHTML:vjs.capitalize(this.kind_),tabindex:-1})),this.items=this.createItems(),this.items)for(n=0;n<this.items.length;n++)t.addItem(this.items[n]);return t},vjs.MenuButton.prototype.createItems=function(){},vjs.MenuButton.prototype.buildCSSClass=function(){return this.className+" vjs-menu-button "+vjs.Button.prototype.buildCSSClass.call(this)},vjs.MenuButton.prototype.onFocus=function(){},vjs.MenuButton.prototype.onBlur=function(){},vjs.MenuButton.prototype.onClick=function(){this.one("mouseout",vjs.bind(this,function(){this.menu.unlockShowing();this.el_.blur()}));this.buttonPressed_?this.unpressButton():this.pressButton()},vjs.MenuButton.prototype.onKeyPress=function(n){n.preventDefault();n.which==32||n.which==13?this.buttonPressed_?this.unpressButton():this.pressButton():n.which==27&&this.buttonPressed_&&this.unpressButton()},vjs.MenuButton.prototype.pressButton=function(){this.buttonPressed_=!0;this.menu.lockShowing();this.el_.setAttribute("aria-pressed",!0);this.items&&this.items.length>0&&this.items[0].el().focus()},vjs.MenuButton.prototype.unpressButton=function(){this.buttonPressed_=!1;this.menu.unlockShowing();this.el_.setAttribute("aria-pressed",!1)},vjs.Player=vjs.Component.extend({init:function(n,t,i){this.tag=n;n.id=n.id||"vjs_video_"+vjs.guid++;t=vjs.obj.merge(this.getTagSettings(n),t);this.cache_={};this.poster_=t.poster;this.controls_=t.controls;n.controls=!1;t.reportTouchActivity=!1;vjs.Component.call(this,this,t,i);this.controls()?this.addClass("vjs-controls-enabled"):this.addClass("vjs-controls-disabled");this.one("play",function(n){var t={type:"firstplay",target:this.el_},i=vjs.trigger(this.el_,t);i||(n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation())});this.on("ended",this.onEnded);this.on("play",this.onPlay);this.on("firstplay",this.onFirstPlay);this.on("pause",this.onPause);this.on("progress",this.onProgress);this.on("durationchange",this.onDurationChange);this.on("error",this.onError);this.on("fullscreenchange",this.onFullscreenChange);vjs.players[this.id_]=this;t.plugins&&vjs.obj.each(t.plugins,function(n,t){this[n](t)},this);this.listenForUserActivity()}}),vjs.Player.prototype.options_=vjs.options,vjs.Player.prototype.dispose=function(){this.trigger("dispose");this.off("dispose");vjs.players[this.id_]=null;this.tag&&this.tag.player&&(this.tag.player=null);this.el_&&this.el_.player&&(this.el_.player=null);this.stopTrackingProgress();this.stopTrackingCurrentTime();this.tech&&this.tech.dispose();vjs.Component.prototype.dispose.call(this)},vjs.Player.prototype.getTagSettings=function(n){var t={sources:[],tracks:[]},u,i,f,r,e;if(vjs.obj.merge(t,vjs.getAttributeValues(n)),n.hasChildNodes())for(u=n.childNodes,r=0,e=u.length;r<e;r++)i=u[r],f=i.nodeName.toLowerCase(),f==="source"?t.sources.push(vjs.getAttributeValues(i)):f==="track"&&t.tracks.push(vjs.getAttributeValues(i));return t},vjs.Player.prototype.createEl=function(){var t=this.el_=vjs.Component.prototype.createEl.call(this,"div"),n=this.tag,u,f,i,e,o,r;if(n.removeAttribute("width"),n.removeAttribute("height"),n.hasChildNodes()){for(u=n.childNodes,f=u.length,r=[];f--;)e=u[f],o=e.nodeName.toLowerCase(),o==="track"&&r.push(e);for(i=0;i<r.length;i++)n.removeChild(r[i])}return t.id=n.id,t.className=n.className,n.id+="_html5_api",n.className="vjs-tech",n.player=t.player=this,this.addClass("vjs-paused"),this.width(this.options_.width,!0),this.height(this.options_.height,!0),n.parentNode&&n.parentNode.insertBefore(t,n),vjs.insertFirst(n,t),t},vjs.Player.prototype.loadTech=function(n,t){this.tech&&this.unloadTech();n!=="Html5"&&this.tag&&(vjs.Html5.disposeMediaElement(this.tag),this.tag=null);this.techName=n;this.isReady_=!1;var r=function(){this.player_.triggerReady();this.features.progressEvents||this.player_.manualProgressOn();this.features.timeupdateEvents||this.player_.manualTimeUpdatesOn()},i=vjs.obj.merge({source:t,parentEl:this.el_},this.options_[n.toLowerCase()]);t&&(t.src==this.cache_.src&&this.cache_.currentTime>0&&(i.startTime=this.cache_.currentTime),this.cache_.src=t.src);this.tech=new window.videojs[n](this,i);this.tech.ready(r)},vjs.Player.prototype.unloadTech=function(){this.isReady_=!1;this.tech.dispose();this.manualProgress&&this.manualProgressOff();this.manualTimeUpdates&&this.manualTimeUpdatesOff();this.tech=!1},vjs.Player.prototype.manualProgressOn=function(){this.manualProgress=!0;this.trackProgress();this.tech.one("progress",function(){this.features.progressEvents=!0;this.player_.manualProgressOff()})},vjs.Player.prototype.manualProgressOff=function(){this.manualProgress=!1;this.stopTrackingProgress()},vjs.Player.prototype.trackProgress=function(){this.progressInterval=setInterval(vjs.bind(this,function(){this.cache_.bufferEnd<this.buffered().end(0)?this.trigger("progress"):this.bufferedPercent()==1&&(this.stopTrackingProgress(),this.trigger("progress"))}),500)},vjs.Player.prototype.stopTrackingProgress=function(){clearInterval(this.progressInterval)},vjs.Player.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0;this.on("play",this.trackCurrentTime);this.on("pause",this.stopTrackingCurrentTime);this.tech.one("timeupdate",function(){this.features.timeupdateEvents=!0;this.player_.manualTimeUpdatesOff()})},vjs.Player.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1;this.stopTrackingCurrentTime();this.off("play",this.trackCurrentTime);this.off("pause",this.stopTrackingCurrentTime)},vjs.Player.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime();this.currentTimeInterval=setInterval(vjs.bind(this,function(){this.trigger("timeupdate")}),250)},vjs.Player.prototype.stopTrackingCurrentTime=function(){clearInterval(this.currentTimeInterval)},vjs.Player.prototype.onLoadStart,vjs.Player.prototype.onLoadedMetaData,vjs.Player.prototype.onLoadedData,vjs.Player.prototype.onLoadedAllData,vjs.Player.prototype.onPlay=function(){vjs.removeClass(this.el_,"vjs-paused");vjs.addClass(this.el_,"vjs-playing")},vjs.Player.prototype.onFirstPlay=function(){this.options_.starttime&&this.currentTime(this.options_.starttime);this.addClass("vjs-has-started")},vjs.Player.prototype.onPause=function(){vjs.removeClass(this.el_,"vjs-playing");vjs.addClass(this.el_,"vjs-paused")},vjs.Player.prototype.onTimeUpdate,vjs.Player.prototype.onProgress=function(){this.bufferedPercent()==1&&this.trigger("loadedalldata")},vjs.Player.prototype.onEnded=function(){this.options_.loop&&(this.currentTime(0),this.play())},vjs.Player.prototype.onDurationChange=function(){var n=this.techGet("duration");n&&this.duration(n)},vjs.Player.prototype.onVolumeChange,vjs.Player.prototype.onFullscreenChange=function(){this.isFullScreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},vjs.Player.prototype.onError=function(n){vjs.log("Video Error",n)},vjs.Player.prototype.cache_,vjs.Player.prototype.getCache=function(){return this.cache_},vjs.Player.prototype.techCall=function(n,t){if(this.tech&&!this.tech.isReady_)this.tech.ready(function(){this[n](t)});else try{this.tech[n](t)}catch(i){vjs.log(i);throw i;}},vjs.Player.prototype.techGet=function(n){if(this.tech&&this.tech.isReady_)try{return this.tech[n]()}catch(t){this.tech[n]===undefined?vjs.log("Video.js: "+n+" method not defined for "+this.techName+" playback technology.",t):t.name=="TypeError"?(vjs.log("Video.js: "+n+" unavailable on "+this.techName+" playback technology element.",t),this.tech.isReady_=!1):vjs.log(t);throw t;}return},vjs.Player.prototype.play=function(){return this.techCall("play"),this},vjs.Player.prototype.pause=function(){return this.techCall("pause"),this},vjs.Player.prototype.paused=function(){return this.techGet("paused")===!1?!1:!0},vjs.Player.prototype.currentTime=function(n){return n!==undefined?(this.techCall("setCurrentTime",n),this.manualTimeUpdates&&this.trigger("timeupdate"),this):this.cache_.currentTime=this.techGet("currentTime")||0},vjs.Player.prototype.duration=function(n){return n!==undefined?(this.cache_.duration=parseFloat(n),this):(this.cache_.duration===undefined&&this.onDurationChange(),this.cache_.duration||0)},vjs.Player.prototype.remainingTime=function(){return this.duration()-this.currentTime()},vjs.Player.prototype.buffered=function(){var n=this.techGet("buffered"),i=n.length-1,t=this.cache_.bufferEnd=this.cache_.bufferEnd||0;return n&&i>=0&&n.end(i)!==t&&(t=n.end(i),this.cache_.bufferEnd=t),vjs.createTimeRange(0,t)},vjs.Player.prototype.bufferedPercent=function(){return this.duration()?this.buffered().end(0)/this.duration():0},vjs.Player.prototype.volume=function(n){var t;return n!==undefined?(t=Math.max(0,Math.min(1,parseFloat(n))),this.cache_.volume=t,this.techCall("setVolume",t),vjs.setLocalStorage("volume",t),this):(t=parseFloat(this.techGet("volume")),isNaN(t)?1:t)},vjs.Player.prototype.muted=function(n){return n!==undefined?(this.techCall("setMuted",n),this):this.techGet("muted")||!1},vjs.Player.prototype.supportsFullScreen=function(){return this.techGet("supportsFullScreen")||!1},vjs.Player.prototype.isFullScreen_=!1,vjs.Player.prototype.isFullScreen=function(n){return n!==undefined?(this.isFullScreen_=n,this):this.isFullScreen_},vjs.Player.prototype.requestFullScreen=function(){var n=vjs.support.requestFullScreen;if(this.isFullScreen(!0),n){vjs.on(document,n.eventName,vjs.bind(this,function(){this.isFullScreen(document[n.isFullScreen]);this.isFullScreen()===!1&&vjs.off(document,n.eventName,arguments.callee);this.trigger("fullscreenchange")}));this.el_[n.requestFn]()}else this.tech.supportsFullScreen()?this.techCall("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange"));return this},vjs.Player.prototype.cancelFullScreen=function(){var n=vjs.support.requestFullScreen;return this.isFullScreen(!1),n?document[n.cancelFn]():this.tech.supportsFullScreen()?this.techCall("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},vjs.Player.prototype.enterFullWindow=function(){this.isFullWindow=!0;this.docOrigOverflow=document.documentElement.style.overflow;vjs.on(document,"keydown",vjs.bind(this,this.fullWindowOnEscKey));document.documentElement.style.overflow="hidden";vjs.addClass(document.body,"vjs-full-window");this.trigger("enterFullWindow")},vjs.Player.prototype.fullWindowOnEscKey=function(n){n.keyCode===27&&(this.isFullScreen()===!0?this.cancelFullScreen():this.exitFullWindow())},vjs.Player.prototype.exitFullWindow=function(){this.isFullWindow=!1;vjs.off(document,"keydown",this.fullWindowOnEscKey);document.documentElement.style.overflow=this.docOrigOverflow;vjs.removeClass(document.body,"vjs-full-window");this.trigger("exitFullWindow")},vjs.Player.prototype.selectSource=function(n){for(var u,f,i,e,o,t=0,r=this.options_.techOrder;t<r.length;t++)if(u=vjs.capitalize(r[t]),f=window.videojs[u],f.isSupported())for(i=0,e=n;i<e.length;i++)if(o=e[i],f.canPlaySource(o))return{source:o,tech:u};return!1},vjs.Player.prototype.src=function(n){if(n instanceof Array){var t=this.selectSource(n),i;t?(n=t.source,i=t.tech,i==this.techName?this.src(n):this.loadTech(i,n)):this.el_.appendChild(vjs.createEl("p",{innerHTML:this.options().notSupportedMessage}))}else n instanceof Object?window.videojs[this.techName].canPlaySource(n)?this.src(n.src):this.src([n]):(this.cache_.src=n,this.isReady_?(this.techCall("src",n),this.options_.preload=="auto"&&this.load(),this.options_.autoplay&&this.play()):this.ready(function(){this.src(n)}));return this},vjs.Player.prototype.load=function(){return this.techCall("load"),this},vjs.Player.prototype.currentSrc=function(){return this.techGet("currentSrc")||this.cache_.src||""},vjs.Player.prototype.preload=function(n){return n!==undefined?(this.techCall("setPreload",n),this.options_.preload=n,this):this.techGet("preload")},vjs.Player.prototype.autoplay=function(n){return n!==undefined?(this.techCall("setAutoplay",n),this.options_.autoplay=n,this):this.techGet("autoplay",n)},vjs.Player.prototype.loop=function(n){return n!==undefined?(this.techCall("setLoop",n),this.options_.loop=n,this):this.techGet("loop")},vjs.Player.prototype.poster_,vjs.Player.prototype.poster=function(n){if(n===undefined)return this.poster_;this.poster_=n;this.techCall("setPoster",n);this.trigger("posterchange")},vjs.Player.prototype.controls_,vjs.Player.prototype.controls=function(n){return n!==undefined?(n=!!n,this.controls_!==n&&(this.controls_=n,n?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled")):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"))),this):this.controls_},vjs.Player.prototype.usingNativeControls_,vjs.Player.prototype.usingNativeControls=function(n){return n!==undefined?(n=!!n,this.usingNativeControls_!==n&&(this.usingNativeControls_=n,n?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols"))),this):this.usingNativeControls_},vjs.Player.prototype.error=function(){return this.techGet("error")},vjs.Player.prototype.ended=function(){return this.techGet("ended")},vjs.Player.prototype.seeking=function(){return this.techGet("seeking")},vjs.Player.prototype.userActivity_=!0,vjs.Player.prototype.reportUserActivity=function(){this.userActivity_=!0},vjs.Player.prototype.userActive_=!0,vjs.Player.prototype.userActive=function(n){if(n!==undefined){if(n=!!n,n!==this.userActive_)if(this.userActive_=n,n)this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),this.trigger("useractive");else{this.userActivity_=!1;this.tech.one("mousemove",function(n){n.stopPropagation();n.preventDefault()});this.removeClass("vjs-user-active");this.addClass("vjs-user-inactive");this.trigger("userinactive")}return this}return this.userActive_},vjs.Player.prototype.listenForUserActivity=function(){var n,r,t,u,f,i;n=vjs.bind(this,this.reportUserActivity);r=function(){n();clearInterval(t);t=setInterval(n,250)};u=function(){n();clearInterval(t)};this.on("mousedown",r);this.on("mousemove",n);this.on("mouseup",u);this.on("keydown",n);this.on("keyup",n);f=setInterval(vjs.bind(this,function(){this.userActivity_&&(this.userActivity_=!1,this.userActive(!0),clearTimeout(i),i=setTimeout(vjs.bind(this,function(){this.userActivity_||this.userActive(!1)}),2e3))}),250);this.on("dispose",function(){clearInterval(f);clearTimeout(i)})},function(){var t,n,i;i=document.createElement("div");n={};i.cancelFullscreen!==undefined?(n.requestFn="requestFullscreen",n.cancelFn="exitFullscreen",n.eventName="fullscreenchange",n.isFullScreen="fullScreen"):(document.mozCancelFullScreen?(t="moz",n.isFullScreen=t+"FullScreen"):(t="webkit",n.isFullScreen=t+"IsFullScreen"),i[t+"RequestFullScreen"]&&(n.requestFn=t+"RequestFullScreen",n.cancelFn=t+"CancelFullScreen"),n.eventName=t+"fullscreenchange");document[n.cancelFn]&&(vjs.support.requestFullScreen=n)}(),vjs.ControlBar=vjs.Component.extend(),vjs.ControlBar.prototype.options_={loadEvent:"play",children:{playToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},fullscreenToggle:{},volumeControl:{},muteToggle:{}}},vjs.ControlBar.prototype.createEl=function(){return vjs.createEl("div",{className:"vjs-control-bar"})},vjs.PlayToggle=vjs.Button.extend({init:function(n,t){vjs.Button.call(this,n,t);n.on("play",vjs.bind(this,this.onPlay));n.on("pause",vjs.bind(this,this.onPause))}}),vjs.PlayToggle.prototype.buttonText="Play",vjs.PlayToggle.prototype.buildCSSClass=function(){return"vjs-play-control "+vjs.Button.prototype.buildCSSClass.call(this)},vjs.PlayToggle.prototype.onClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},vjs.PlayToggle.prototype.onPlay=function(){vjs.removeClass(this.el_,"vjs-paused");vjs.addClass(this.el_,"vjs-playing");this.el_.children[0].children[0].innerHTML="Pause"},vjs.PlayToggle.prototype.onPause=function(){vjs.removeClass(this.el_,"vjs-playing");vjs.addClass(this.el_,"vjs-paused");this.el_.children[0].children[0].innerHTML="Play"},vjs.CurrentTimeDisplay=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);n.on("timeupdate",vjs.bind(this,this.updateContent))}}),vjs.CurrentTimeDisplay.prototype.createEl=function(){var n=vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});return this.contentEl_=vjs.createEl("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time <\/span>0:00',"aria-live":"off"}),n.appendChild(this.contentEl_),n},vjs.CurrentTimeDisplay.prototype.updateContent=function(){var n=this.player_.scrubbing?this.player_.getCache().currentTime:this.player_.currentTime();this.contentEl_.innerHTML='<span class="vjs-control-text">Current Time <\/span>'+vjs.formatTime(n,this.player_.duration())},vjs.DurationDisplay=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);n.on("timeupdate",vjs.bind(this,this.updateContent))}}),vjs.DurationDisplay.prototype.createEl=function(){var n=vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});return this.contentEl_=vjs.createEl("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">Duration Time <\/span>0:00',"aria-live":"off"}),n.appendChild(this.contentEl_),n},vjs.DurationDisplay.prototype.updateContent=function(){var n=this.player_.duration();n&&(this.contentEl_.innerHTML='<span class="vjs-control-text">Duration Time <\/span>'+vjs.formatTime(n))},vjs.TimeDivider=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t)}}),vjs.TimeDivider.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/<\/span><\/div>"})},vjs.RemainingTimeDisplay=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);n.on("timeupdate",vjs.bind(this,this.updateContent))}}),vjs.RemainingTimeDisplay.prototype.createEl=function(){var n=vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});return this.contentEl_=vjs.createEl("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">Remaining Time <\/span>-0:00',"aria-live":"off"}),n.appendChild(this.contentEl_),n},vjs.RemainingTimeDisplay.prototype.updateContent=function(){this.player_.duration()&&(this.contentEl_.innerHTML='<span class="vjs-control-text">Remaining Time <\/span>-'+vjs.formatTime(this.player_.remainingTime()))},vjs.FullscreenToggle=vjs.Button.extend({init:function(n,t){vjs.Button.call(this,n,t)}}),vjs.FullscreenToggle.prototype.buttonText="Fullscreen",vjs.FullscreenToggle.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+vjs.Button.prototype.buildCSSClass.call(this)},vjs.FullscreenToggle.prototype.onClick=function(){this.player_.isFullScreen()?(this.player_.cancelFullScreen(),this.el_.children[0].children[0].innerHTML="Fullscreen"):(this.player_.requestFullScreen(),this.el_.children[0].children[0].innerHTML="Non-Fullscreen")},vjs.ProgressControl=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t)}}),vjs.ProgressControl.prototype.options_={children:{seekBar:{}}},vjs.ProgressControl.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},vjs.SeekBar=vjs.Slider.extend({init:function(n,t){vjs.Slider.call(this,n,t);n.on("timeupdate",vjs.bind(this,this.updateARIAAttributes));n.ready(vjs.bind(this,this.updateARIAAttributes))}}),vjs.SeekBar.prototype.options_={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"},vjs.SeekBar.prototype.playerEvent="timeupdate",vjs.SeekBar.prototype.createEl=function(){return vjs.Slider.prototype.createEl.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})},vjs.SeekBar.prototype.updateARIAAttributes=function(){var n=this.player_.scrubbing?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",vjs.round(this.getPercent()*100,2));this.el_.setAttribute("aria-valuetext",vjs.formatTime(n,this.player_.duration()))},vjs.SeekBar.prototype.getPercent=function(){return this.player_.currentTime()/this.player_.duration()},vjs.SeekBar.prototype.onMouseDown=function(n){vjs.Slider.prototype.onMouseDown.call(this,n);this.player_.scrubbing=!0;this.videoWasPlaying=!this.player_.paused();this.player_.pause()},vjs.SeekBar.prototype.onMouseMove=function(n){var t=this.calculateDistance(n)*this.player_.duration();t==this.player_.duration()&&(t=t-.1);this.player_.currentTime(t)},vjs.SeekBar.prototype.onMouseUp=function(n){vjs.Slider.prototype.onMouseUp.call(this,n);this.player_.scrubbing=!1;this.videoWasPlaying&&this.player_.play()},vjs.SeekBar.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},vjs.SeekBar.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},vjs.LoadProgressBar=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);n.on("progress",vjs.bind(this,this.update))}}),vjs.LoadProgressBar.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text">Loaded: 0%<\/span>'})},vjs.LoadProgressBar.prototype.update=function(){this.el_.style&&(this.el_.style.width=vjs.round(this.player_.bufferedPercent()*100,2)+"%")},vjs.PlayProgressBar=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t)}}),vjs.PlayProgressBar.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text">Progress: 0%<\/span>'})},vjs.SeekHandle=vjs.SliderHandle.extend({init:function(n,t){vjs.SliderHandle.call(this,n,t);n.on("timeupdate",vjs.bind(this,this.updateContent))}}),vjs.SeekHandle.prototype.defaultValue="00:00",vjs.SeekHandle.prototype.createEl=function(){return vjs.SliderHandle.prototype.createEl.call(this,"div",{className:"vjs-seek-handle","aria-live":"off"})},vjs.SeekHandle.prototype.updateContent=function(){var n=this.player_.scrubbing?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.innerHTML='<span class="vjs-control-text">'+vjs.formatTime(n,this.player_.duration())+"<\/span>"},vjs.VolumeControl=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);n.tech&&n.tech.features&&n.tech.features.volumeControl===!1&&this.addClass("vjs-hidden");n.on("loadstart",vjs.bind(this,function(){n.tech.features&&n.tech.features.volumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}))}}),vjs.VolumeControl.prototype.options_={children:{volumeBar:{}}},vjs.VolumeControl.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},vjs.VolumeBar=vjs.Slider.extend({init:function(n,t){vjs.Slider.call(this,n,t);n.on("volumechange",vjs.bind(this,this.updateARIAAttributes));n.ready(vjs.bind(this,this.updateARIAAttributes));setTimeout(vjs.bind(this,this.update),0)}}),vjs.VolumeBar.prototype.updateARIAAttributes=function(){this.el_.setAttribute("aria-valuenow",vjs.round(this.player_.volume()*100,2));this.el_.setAttribute("aria-valuetext",vjs.round(this.player_.volume()*100,2)+"%")},vjs.VolumeBar.prototype.options_={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"},vjs.VolumeBar.prototype.playerEvent="volumechange",vjs.VolumeBar.prototype.createEl=function(){return vjs.Slider.prototype.createEl.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})},vjs.VolumeBar.prototype.onMouseMove=function(n){this.player_.muted()&&this.player_.muted(!1);this.player_.volume(this.calculateDistance(n))},vjs.VolumeBar.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},vjs.VolumeBar.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},vjs.VolumeBar.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},vjs.VolumeLevel=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t)}}),vjs.VolumeLevel.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"><\/span>'})},vjs.VolumeHandle=vjs.SliderHandle.extend(),vjs.VolumeHandle.prototype.defaultValue="00:00",vjs.VolumeHandle.prototype.createEl=function(){return vjs.SliderHandle.prototype.createEl.call(this,"div",{className:"vjs-volume-handle"})},vjs.MuteToggle=vjs.Button.extend({init:function(n,t){vjs.Button.call(this,n,t);n.on("volumechange",vjs.bind(this,this.update));n.tech&&n.tech.features&&n.tech.features.volumeControl===!1&&this.addClass("vjs-hidden");n.on("loadstart",vjs.bind(this,function(){n.tech.features&&n.tech.features.volumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}))}}),vjs.MuteToggle.prototype.createEl=function(){return vjs.Button.prototype.createEl.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute<\/span><\/div>'})},vjs.MuteToggle.prototype.onClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},vjs.MuteToggle.prototype.update=function(){var i=this.player_.volume(),n=3,t;for(i===0||this.player_.muted()?n=0:i<.33?n=1:i<.67&&(n=2),this.player_.muted()?this.el_.children[0].children[0].innerHTML!="Unmute"&&(this.el_.children[0].children[0].innerHTML="Unmute"):this.el_.children[0].children[0].innerHTML!="Mute"&&(this.el_.children[0].children[0].innerHTML="Mute"),t=0;t<4;t++)vjs.removeClass(this.el_,"vjs-vol-"+t);vjs.addClass(this.el_,"vjs-vol-"+n)},vjs.VolumeMenuButton=vjs.MenuButton.extend({init:function(n,t){vjs.MenuButton.call(this,n,t);n.on("volumechange",vjs.bind(this,this.update));n.tech&&n.tech.features&&n.tech.features.volumeControl===!1&&this.addClass("vjs-hidden");n.on("loadstart",vjs.bind(this,function(){n.tech.features&&n.tech.features.volumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}));this.addClass("vjs-menu-button")}}),vjs.VolumeMenuButton.prototype.createMenu=function(){var n=new vjs.Menu(this.player_,{contentElType:"div"}),t=new vjs.VolumeBar(this.player_,vjs.obj.merge({vertical:!0},this.options_.volumeBar));return n.addChild(t),n},vjs.VolumeMenuButton.prototype.onClick=function(){vjs.MuteToggle.prototype.onClick.call(this);vjs.MenuButton.prototype.onClick.call(this)},vjs.VolumeMenuButton.prototype.createEl=function(){return vjs.Button.prototype.createEl.call(this,"div",{className:"vjs-volume-menu-button vjs-menu-button vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute<\/span><\/div>'})},vjs.VolumeMenuButton.prototype.update=vjs.MuteToggle.prototype.update,vjs.PosterImage=vjs.Button.extend({init:function(n,t){vjs.Button.call(this,n,t);n.poster()&&this.src(n.poster());n.poster()&&n.controls()||this.hide();n.on("posterchange",vjs.bind(this,function(){this.src(n.poster())}));n.on("play",vjs.bind(this,this.hide))}}),_backgroundSizeSupported=("backgroundSize"in vjs.TEST_VID.style),vjs.PosterImage.prototype.createEl=function(){var n=vjs.createEl("div",{className:"vjs-poster",tabIndex:-1});return _backgroundSizeSupported||n.appendChild(vjs.createEl("img")),n},vjs.PosterImage.prototype.src=function(n){var t=this.el();n!==undefined&&(_backgroundSizeSupported?t.style.backgroundImage='url("'+n+'")':t.firstChild.src=n)},vjs.PosterImage.prototype.onClick=function(){this.player().controls()&&this.player_.play()},vjs.LoadingSpinner=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);n.on("canplay",vjs.bind(this,this.hide));n.on("canplaythrough",vjs.bind(this,this.hide));n.on("playing",vjs.bind(this,this.hide));n.on("seeked",vjs.bind(this,this.hide));n.on("seeking",vjs.bind(this,this.show));n.on("seeked",vjs.bind(this,this.hide));n.on("error",vjs.bind(this,this.show));n.on("waiting",vjs.bind(this,this.show))}}),vjs.LoadingSpinner.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner"})},vjs.BigPlayButton=vjs.Button.extend(),vjs.BigPlayButton.prototype.createEl=function(){return vjs.Button.prototype.createEl.call(this,"div",{className:"vjs-big-play-button",innerHTML:'<span aria-hidden="true"><\/span>',"aria-label":"play video"})},vjs.BigPlayButton.prototype.onClick=function(){this.player_.play()},vjs.MediaTechController=vjs.Component.extend({init:function(n,t,i){t=t||{};t.reportTouchActivity=!1;vjs.Component.call(this,n,t,i);this.initControlsListeners()}}),vjs.MediaTechController.prototype.initControlsListeners=function(){var n,t,r,i;t=this;n=this.player();i=function(){n.controls()&&!n.usingNativeControls()&&t.addControlsListeners()};r=vjs.bind(t,t.removeControlsListeners);this.ready(i);n.on("controlsenabled",i);n.on("controlsdisabled",r)},vjs.MediaTechController.prototype.addControlsListeners=function(){var n;this.on("mousedown",this.onClick);this.on("touchstart",function(t){t.preventDefault();n=this.player_.userActive()});this.on("touchmove",function(){n&&this.player().reportUserActivity()});this.emitTapEvents();this.on("tap",this.onTap)},vjs.MediaTechController.prototype.removeControlsListeners=function(){this.off("tap");this.off("touchstart");this.off("touchmove");this.off("touchleave");this.off("touchcancel");this.off("touchend");this.off("click");this.off("mousedown")},vjs.MediaTechController.prototype.onClick=function(n){n.button===0&&this.player().controls()&&(this.player().paused()?this.player().play():this.player().pause())},vjs.MediaTechController.prototype.onTap=function(){this.player().userActive(!this.player().userActive())},vjs.MediaTechController.prototype.setPoster=function(){},vjs.MediaTechController.prototype.features={volumeControl:!0,fullscreenResize:!1,progressEvents:!1,timeupdateEvents:!1},vjs.media={},vjs.media.ApiMethods="play,pause,paused,currentTime,setCurrentTime,duration,buffered,volume,setVolume,muted,setMuted,width,height,supportsFullScreen,enterFullScreen,src,load,currentSrc,preload,setPreload,autoplay,setAutoplay,loop,setLoop,error,networkState,readyState,seeking,initialTime,startOffsetTime,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks,defaultPlaybackRate,playbackRate,mediaGroup,controller,controls,defaultMuted".split(","),i=vjs.media.ApiMethods.length-1;i>=0;i--)methodName=vjs.media.ApiMethods[i],vjs.MediaTechController.prototype[vjs.media.ApiMethods[i]]=createMethod(methodName);vjs.Html5=vjs.MediaTechController.extend({init:function(n,t,i){this.features.volumeControl=vjs.Html5.canControlVolume();this.features.movingMediaElementInDOM=!vjs.IS_IOS;this.features.fullscreenResize=!0;vjs.MediaTechController.call(this,n,t,i);this.setupTriggers();var r=t.source;r&&this.el_.currentSrc===r.src&&this.el_.networkState>0?n.trigger("loadstart"):r&&(this.el_.src=r.src);vjs.TOUCH_ENABLED&&n.options().nativeControlsForTouch!==!1&&this.useNativeControls();n.ready(function(){this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())});this.triggerReady()}});vjs.Html5.prototype.dispose=function(){vjs.MediaTechController.prototype.dispose.call(this)};vjs.Html5.prototype.createEl=function(){var t=this.player_,n=t.tag,f,u,i,r;for(n&&this.features.movingMediaElementInDOM!==!1||(n?(f=n.cloneNode(!1),vjs.Html5.disposeMediaElement(n),n=f,t.tag=null):n=vjs.createEl("video",{id:t.id()+"_html5_api",className:"vjs-tech"}),n.player=t,vjs.insertFirst(n,t.el())),u=["autoplay","preload","loop","muted"],i=u.length-1;i>=0;i--)r=u[i],t.options_[r]!==null&&(n[r]=t.options_[r]);return n};vjs.Html5.prototype.setupTriggers=function(){for(var n=vjs.Html5.Events.length-1;n>=0;n--)vjs.on(this.el_,vjs.Html5.Events[n],vjs.bind(this.player_,this.eventHandler))};vjs.Html5.prototype.eventHandler=function(n){this.trigger(n);n.stopPropagation()};vjs.Html5.prototype.useNativeControls=function(){var t,n,i,r,u;t=this;n=this.player();t.setControls(n.controls());i=function(){t.setControls(!0)};r=function(){t.setControls(!1)};n.on("controlsenabled",i);n.on("controlsdisabled",r);u=function(){n.off("controlsenabled",i);n.off("controlsdisabled",r)};t.on("dispose",u);n.on("usingcustomcontrols",u);n.usingNativeControls(!0)};vjs.Html5.prototype.play=function(){this.el_.play()};vjs.Html5.prototype.pause=function(){this.el_.pause()};vjs.Html5.prototype.paused=function(){return this.el_.paused};vjs.Html5.prototype.currentTime=function(){return this.el_.currentTime};vjs.Html5.prototype.setCurrentTime=function(n){try{this.el_.currentTime=n}catch(t){vjs.log(t,"Video is not ready. (Video.js)")}};vjs.Html5.prototype.duration=function(){return this.el_.duration||0};vjs.Html5.prototype.buffered=function(){return this.el_.buffered};vjs.Html5.prototype.volume=function(){return this.el_.volume};vjs.Html5.prototype.setVolume=function(n){this.el_.volume=n};vjs.Html5.prototype.muted=function(){return this.el_.muted};vjs.Html5.prototype.setMuted=function(n){this.el_.muted=n};vjs.Html5.prototype.width=function(){return this.el_.offsetWidth};vjs.Html5.prototype.height=function(){return this.el_.offsetHeight};vjs.Html5.prototype.supportsFullScreen=function(){return typeof this.el_.webkitEnterFullScreen=="function"&&(/Android/.test(vjs.USER_AGENT)||!/Chrome|Mac OS X 10.5/.test(vjs.USER_AGENT))?!0:!1};vjs.Html5.prototype.enterFullScreen=function(){var n=this.el_;n.paused&&n.networkState<=n.HAVE_METADATA?(this.el_.play(),setTimeout(function(){n.pause();n.webkitEnterFullScreen()},0)):n.webkitEnterFullScreen()};vjs.Html5.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()};vjs.Html5.prototype.src=function(n){this.el_.src=n};vjs.Html5.prototype.load=function(){this.el_.load()};vjs.Html5.prototype.currentSrc=function(){return this.el_.currentSrc};vjs.Html5.prototype.poster=function(){return this.el_.poster};vjs.Html5.prototype.setPoster=function(n){this.el_.poster=n};vjs.Html5.prototype.preload=function(){return this.el_.preload};vjs.Html5.prototype.setPreload=function(n){this.el_.preload=n};vjs.Html5.prototype.autoplay=function(){return this.el_.autoplay};vjs.Html5.prototype.setAutoplay=function(n){this.el_.autoplay=n};vjs.Html5.prototype.controls=function(){return this.el_.controls};vjs.Html5.prototype.setControls=function(n){this.el_.controls=!!n};vjs.Html5.prototype.loop=function(){return this.el_.loop};vjs.Html5.prototype.setLoop=function(n){this.el_.loop=n};vjs.Html5.prototype.error=function(){return this.el_.error};vjs.Html5.prototype.seeking=function(){return this.el_.seeking};vjs.Html5.prototype.ended=function(){return this.el_.ended};vjs.Html5.prototype.defaultMuted=function(){return this.el_.defaultMuted};vjs.Html5.isSupported=function(){try{vjs.TEST_VID.volume=.5}catch(n){return!1}return!!vjs.TEST_VID.canPlayType};vjs.Html5.canPlaySource=function(n){try{return!!vjs.TEST_VID.canPlayType(n.type)}catch(t){return""}};vjs.Html5.canControlVolume=function(){var n=vjs.TEST_VID.volume;return vjs.TEST_VID.volume=n/2+.1,n!==vjs.TEST_VID.volume};vjs.Html5.Events="loadstart,suspend,abort,error,emptied,stalled,loadedmetadata,loadeddata,canplay,canplaythrough,playing,waiting,seeking,seeked,ended,durationchange,timeupdate,progress,play,pause,ratechange,volumechange".split(",");vjs.Html5.disposeMediaElement=function(n){if(n){for(n.player=null,n.parentNode&&n.parentNode.removeChild(n);n.hasChildNodes();)n.removeChild(n.firstChild);n.removeAttribute("src");typeof n.load=="function"&&function(){try{n.load()}catch(t){}}()}};vjs.IS_OLD_ANDROID&&(document.createElement("video").constructor.prototype.canPlayType=function(n){return n&&n.toLowerCase().indexOf("video/mp4")!=-1?"maybe":""});vjs.Flash=vjs.MediaTechController.extend({init:function(n,t,i){var h,u;vjs.MediaTechController.call(this,n,t,i);var f=t.source,v=t.parentEl,e=this.el_=vjs.createEl("div",{id:n.id()+"_temp_flash"}),o=n.id()+"_flash_api",s=n.options_,r=vjs.obj.merge({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:s.autoplay,preload:s.preload,loop:s.loop,muted:s.muted},t.flashVars),c=vjs.obj.merge({wmode:"opaque",bgcolor:"#000000"},t.params),l=vjs.obj.merge({id:o,name:o,"class":"vjs-tech"},t.attributes),a;if(f&&(f.type&&vjs.Flash.isStreamingType(f.type)?(h=vjs.Flash.streamToParts(f.src),r.rtmpConnection=encodeURIComponent(h.connection),r.rtmpStream=encodeURIComponent(h.stream)):r.src=encodeURIComponent(vjs.getAbsoluteURL(f.src))),this.setCurrentTime=function(n){a=n;this.el_.vjs_setProperty("currentTime",n)},this.currentTime=function(){return this.seeking()?a:this.el_.vjs_getProperty("currentTime")},vjs.insertFirst(e,v),t.startTime&&this.ready(function(){this.load();this.play();this.currentTime(t.startTime)}),vjs.IS_FIREFOX&&this.ready(function(){vjs.on(this.el(),"mousemove",vjs.bind(this,function(){this.player().trigger({type:"mousemove",bubbles:!1})}))}),t.iFrameMode!==!0||vjs.IS_FIREFOX)vjs.Flash.embed(t.swf,e,r,c,l);else{u=vjs.createEl("iframe",{id:o+"_iframe",name:o+"_iframe",className:"vjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});r.readyFunction="ready";r.eventProxyFunction="events";r.errorEventProxyFunction="errors";vjs.on(u,"load",vjs.bind(this,function(){var i,n=u.contentWindow;i=u.contentDocument?u.contentDocument:u.contentWindow.document;i.write(vjs.Flash.getEmbedCode(t.swf,r,c,l));n.player=this.player_;n.ready=vjs.bind(this.player_,function(n){var r=i.getElementById(n),u=this,t=u.tech;t.el_=r;vjs.Flash.checkReady(t)});n.events=vjs.bind(this.player_,function(n,t){var i=this;i&&i.techName==="flash"&&i.trigger(t)});n.errors=vjs.bind(this.player_,function(n,t){vjs.log("Flash Error",t)})}));e.parentNode.replaceChild(u,e)}}});vjs.Flash.prototype.dispose=function(){vjs.MediaTechController.prototype.dispose.call(this)};vjs.Flash.prototype.play=function(){this.el_.vjs_play()};vjs.Flash.prototype.pause=function(){this.el_.vjs_pause()};vjs.Flash.prototype.src=function(n){if(vjs.Flash.isStreamingSrc(n)?(n=vjs.Flash.streamToParts(n),this.setRtmpConnection(n.connection),this.setRtmpStream(n.stream)):(n=vjs.getAbsoluteURL(n),this.el_.vjs_src(n)),this.player_.autoplay()){var t=this;setTimeout(function(){t.play()},0)}};vjs.Flash.prototype.currentSrc=function(){var n=this.el_.vjs_getProperty("currentSrc"),t,i;return n==null&&(t=this.rtmpConnection(),i=this.rtmpStream(),t&&i&&(n=vjs.Flash.streamFromParts(t,i))),n};vjs.Flash.prototype.load=function(){this.el_.vjs_load()};vjs.Flash.prototype.poster=function(){this.el_.vjs_getProperty("poster")};vjs.Flash.prototype.setPoster=function(){};vjs.Flash.prototype.buffered=function(){return vjs.createTimeRange(0,this.el_.vjs_getProperty("buffered"))};vjs.Flash.prototype.supportsFullScreen=function(){return!1};vjs.Flash.prototype.enterFullScreen=function(){return!1};var api=vjs.Flash.prototype,readWrite="rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),readOnly="error,currentSrc,networkState,readyState,seeking,initialTime,duration,startOffsetTime,paused,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks".split(","),createSetter=function(n){var t=n.charAt(0).toUpperCase()+n.slice(1);api["set"+t]=function(t){return this.el_.vjs_setProperty(n,t)}},createGetter=function(n){api[n]=function(){return this.el_.vjs_getProperty(n)}};if(function(){for(var n=0;n<readWrite.length;n++)createGetter(readWrite[n]),createSetter(readWrite[n]);for(n=0;n<readOnly.length;n++)createGetter(readOnly[n])}(),vjs.Flash.isSupported=function(){return vjs.Flash.version()[0]>=10},vjs.Flash.canPlaySource=function(n){var t;return n.type?(t=n.type.replace(/;.*/,"").toLowerCase(),t in vjs.Flash.formats||t in vjs.Flash.streamingFormats?"maybe":void 0):""},vjs.Flash.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},vjs.Flash.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},vjs.Flash.onReady=function(n){var t=vjs.el(n),i=t.player||t.parentNode.player,r=i.tech;t.player=i;r.el_=t;vjs.Flash.checkReady(r)},vjs.Flash.checkReady=function(n){n.el().vjs_getProperty?n.triggerReady():setTimeout(function(){vjs.Flash.checkReady(n)},50)},vjs.Flash.onEvent=function(n,t){var i=vjs.el(n).player;i.trigger(t)},vjs.Flash.onError=function(n,t){var i=vjs.el(n).player;i.trigger("error");vjs.log("Flash Error",t,n)},vjs.Flash.version=function(){var n="0,0,0";try{n=new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(t){try{navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(n=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(i){}}return n.split(",")},vjs.Flash.embed=function(n,t,i,r,u){var o=vjs.Flash.getEmbedCode(n,i,r,u),f=vjs.createEl("div",{innerHTML:o}).childNodes[0],s=t.parentNode,e;return t.parentNode.replaceChild(f,t),e=s.childNodes[0],setTimeout(function(){e.style.display="block"},1e3),f},vjs.Flash.getEmbedCode=function(n,t,i,r){var u="",f="",e="";return t&&vjs.obj.each(t,function(n,t){u+=n+"="+t+"&amp;"}),i=vjs.obj.merge({movie:n,flashvars:u,allowScriptAccess:"always",allowNetworking:"all"},i),vjs.obj.each(i,function(n,t){f+='<param name="'+n+'" value="'+t+'" />'}),r=vjs.obj.merge({data:n,width:"100%",height:"100%"},r),vjs.obj.each(r,function(n,t){e+=n+'="'+t+'" '}),'<object type="application/x-shockwave-flash"'+e+">"+f+"<\/object>"},vjs.Flash.streamFromParts=function(n,t){return n+"&"+t},vjs.Flash.streamToParts=function(n){var i={connection:"",stream:""},t,r;return n?(t=n.indexOf("&"),t!==-1?r=t+1:(t=r=n.lastIndexOf("/")+1,t===0&&(t=r=n.length)),i.connection=n.substring(0,t),i.stream=n.substring(r,n.length),i):i},vjs.Flash.isStreamingType=function(n){return n in vjs.Flash.streamingFormats},vjs.Flash.RTMP_RE=/^rtmp[set]?:\/\//i,vjs.Flash.isStreamingSrc=function(n){return vjs.Flash.RTMP_RE.test(n)},vjs.MediaLoader=vjs.Component.extend({init:function(n,t,i){var r,u,f,e;if(vjs.Component.call(this,n,t,i),n.options_.sources&&n.options_.sources.length!==0)n.src(n.options_.sources);else for(r=0,u=n.options_.techOrder;r<u.length;r++)if(f=vjs.capitalize(u[r]),e=window.videojs[f],e&&e.isSupported()){n.loadTech(f);break}}}),vjs.Player.prototype.textTracks_,vjs.Player.prototype.textTracks=function(){return this.textTracks_=this.textTracks_||[],this.textTracks_},vjs.Player.prototype.addTextTrack=function(n,t,i,r){var e=this.textTracks_=this.textTracks_||[],f,u;return r=r||{},r.kind=n,r.label=t,r.language=i,f=vjs.capitalize(n||"subtitles"),u=new window.videojs[f+"Track"](this,r),e.push(u),u},vjs.Player.prototype.addTextTracks=function(n){for(var t,i=0;i<n.length;i++)t=n[i],this.addTextTrack(t.kind,t.label,t.language,t);return this},vjs.Player.prototype.showTextTrack=function(n,t){for(var e=this.textTracks_,r=0,o=e.length,i,u,f;r<o;r++)i=e[r],i.id()===n?(i.show(),u=i):t&&i.kind()==t&&i.mode()>0&&i.disable();return f=u?u.kind():t?t:!1,f&&this.trigger(f+"trackchange"),this},vjs.TextTrack=vjs.Component.extend({init:function(n,t){vjs.Component.call(this,n,t);this.id_=t.id||"vjs_"+t.kind+"_"+t.language+"_"+vjs.guid++;this.src_=t.src;this.dflt_=t["default"]||t.dflt;this.title_=t.title;this.language_=t.srclang;this.label_=t.label;this.cues_=[];this.activeCues_=[];this.readyState_=0;this.mode_=0;this.player_.on("fullscreenchange",vjs.bind(this,this.adjustFontSize))}}),vjs.TextTrack.prototype.kind_,vjs.TextTrack.prototype.kind=function(){return this.kind_},vjs.TextTrack.prototype.src_,vjs.TextTrack.prototype.src=function(){return this.src_},vjs.TextTrack.prototype.dflt_,vjs.TextTrack.prototype.dflt=function(){return this.dflt_},vjs.TextTrack.prototype.title_,vjs.TextTrack.prototype.title=function(){return this.title_},vjs.TextTrack.prototype.language_,vjs.TextTrack.prototype.language=function(){return this.language_},vjs.TextTrack.prototype.label_,vjs.TextTrack.prototype.label=function(){return this.label_},vjs.TextTrack.prototype.cues_,vjs.TextTrack.prototype.cues=function(){return this.cues_},vjs.TextTrack.prototype.activeCues_,vjs.TextTrack.prototype.activeCues=function(){return this.activeCues_},vjs.TextTrack.prototype.readyState_,vjs.TextTrack.prototype.readyState=function(){return this.readyState_},vjs.TextTrack.prototype.mode_,vjs.TextTrack.prototype.mode=function(){return this.mode_},vjs.TextTrack.prototype.adjustFontSize=function(){this.el_.style.fontSize=this.player_.isFullScreen()?screen.width/this.player_.width()*1.4*100+"%":""},vjs.TextTrack.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-"+this.kind_+" vjs-text-track"})},vjs.TextTrack.prototype.show=function(){this.activate();this.mode_=2;vjs.Component.prototype.show.call(this)},vjs.TextTrack.prototype.hide=function(){this.activate();this.mode_=1;vjs.Component.prototype.hide.call(this)},vjs.TextTrack.prototype.disable=function(){this.mode_==2&&this.hide();this.deactivate();this.mode_=0},vjs.TextTrack.prototype.activate=function(){if(this.readyState_===0&&this.load(),this.mode_===0){this.player_.on("timeupdate",vjs.bind(this,this.update,this.id_));this.player_.on("ended",vjs.bind(this,this.reset,this.id_));(this.kind_==="captions"||this.kind_==="subtitles")&&this.player_.getChild("textTrackDisplay").addChild(this)}},vjs.TextTrack.prototype.deactivate=function(){this.player_.off("timeupdate",vjs.bind(this,this.update,this.id_));this.player_.off("ended",vjs.bind(this,this.reset,this.id_));this.reset();this.player_.getChild("textTrackDisplay").removeChild(this)},vjs.TextTrack.prototype.load=function(){this.readyState_===0&&(this.readyState_=1,vjs.get(this.src_,vjs.bind(this,this.parseCues),vjs.bind(this,this.onError)))},vjs.TextTrack.prototype.onError=function(n){this.error=n;this.readyState_=3;this.trigger("error")},vjs.TextTrack.prototype.parseCues=function(n){for(var r,f,e,u=n.split("\n"),t="",o,i=1,s=u.length;i<s;i++)if(t=vjs.trim(u[i]),t){for(t.indexOf("-->")==-1?(o=t,t=vjs.trim(u[++i])):o=this.cues_.length,r={id:o,index:this.cues_.length},f=t.split(" --> "),r.startTime=this.parseCueTime(f[0]),r.endTime=this.parseCueTime(f[1]),e=[];u[++i]&&(t=vjs.trim(u[i]));)e.push(t);r.text=e.join("<br/>");this.cues_.push(r)}this.readyState_=2;this.trigger("loaded")},vjs.TextTrack.prototype.parseCueTime=function(n){var i=n.split(":"),r=0,f,e,u,t,o;return i.length==3?(f=i[0],e=i[1],u=i[2]):(f=0,e=i[0],u=i[1]),u=u.split(/\s+/),t=u.splice(0,1)[0],t=t.split(/\.|,/),o=parseFloat(t[1]),t=t[0],r+=parseFloat(f)*3600,r+=parseFloat(e)*60,r+=parseFloat(t),o&&(r+=o/1e3),r},vjs.TextTrack.prototype.update=function(){var i;if(this.cues_.length>0&&(i=this.player_.currentTime(),this.prevChange===undefined||i<this.prevChange||this.nextChange<=i)){var s=this.cues_,r=this.player_.duration(),u=0,f=!1,h=[],e,o,n,t;for(i>=this.nextChange||this.nextChange===undefined?t=this.firstActiveIndex!==undefined?this.firstActiveIndex:0:(f=!0,t=this.lastActiveIndex!==undefined?this.lastActiveIndex:s.length-1);;){if(n=s[t],n.endTime<=i)u=Math.max(u,n.endTime),n.active&&(n.active=!1);else if(i<n.startTime){if(r=Math.min(r,n.startTime),n.active&&(n.active=!1),!f)break}else f?(h.splice(0,0,n),o===undefined&&(o=t),e=t):(h.push(n),e===undefined&&(e=t),o=t),r=Math.min(r,n.endTime),u=Math.max(u,n.startTime),n.active=!0;if(f)if(t===0)break;else t--;else if(t===s.length-1)break;else t++}this.activeCues_=h;this.nextChange=r;this.prevChange=u;this.firstActiveIndex=e;this.lastActiveIndex=o;this.updateDisplay();this.trigger("cuechange")}},vjs.TextTrack.prototype.updateDisplay=function(){for(var t=this.activeCues_,i="",n=0,r=t.length;n<r;n++)i+='<span class="vjs-tt-cue">'+t[n].text+"<\/span>";this.el_.innerHTML=i},vjs.TextTrack.prototype.reset=function(){this.nextChange=0;this.prevChange=this.player_.duration();this.firstActiveIndex=0;this.lastActiveIndex=0},vjs.CaptionsTrack=vjs.TextTrack.extend(),vjs.CaptionsTrack.prototype.kind_="captions",vjs.SubtitlesTrack=vjs.TextTrack.extend(),vjs.SubtitlesTrack.prototype.kind_="subtitles",vjs.ChaptersTrack=vjs.TextTrack.extend(),vjs.ChaptersTrack.prototype.kind_="chapters",vjs.TextTrackDisplay=vjs.Component.extend({init:function(n,t,i){vjs.Component.call(this,n,t,i);n.options_.tracks&&n.options_.tracks.length>0&&this.player_.addTextTracks(n.options_.tracks)}}),vjs.TextTrackDisplay.prototype.createEl=function(){return vjs.Component.prototype.createEl.call(this,"div",{className:"vjs-text-track-display"})},vjs.TextTrackMenuItem=vjs.MenuItem.extend({init:function(n,t){var i=this.track=t.track;t.label=i.label();t.selected=i.dflt();vjs.MenuItem.call(this,n,t);this.player_.on(i.kind()+"trackchange",vjs.bind(this,this.update))}}),vjs.TextTrackMenuItem.prototype.onClick=function(){vjs.MenuItem.prototype.onClick.call(this);this.player_.showTextTrack(this.track.id_,this.track.kind())},vjs.TextTrackMenuItem.prototype.update=function(){this.selected(this.track.mode()==2)},vjs.OffTextTrackMenuItem=vjs.TextTrackMenuItem.extend({init:function(n,t){t.track={kind:function(){return t.kind},player:n,label:function(){return t.kind+" off"},dflt:function(){return!1},mode:function(){return!1}};vjs.TextTrackMenuItem.call(this,n,t);this.selected(!0)}}),vjs.OffTextTrackMenuItem.prototype.onClick=function(){vjs.TextTrackMenuItem.prototype.onClick.call(this);this.player_.showTextTrack(this.track.id_,this.track.kind())},vjs.OffTextTrackMenuItem.prototype.update=function(){for(var i=this.player_.textTracks(),n=0,u=i.length,t,r=!0;n<u;n++)t=i[n],t.kind()==this.track.kind()&&t.mode()==2&&(r=!1);this.selected(r)},vjs.TextTrackButton=vjs.MenuButton.extend({init:function(n,t){vjs.MenuButton.call(this,n,t);this.items.length<=1&&this.hide()}}),vjs.TextTrackButton.prototype.createItems=function(){var t=[],i,n;for(t.push(new vjs.OffTextTrackMenuItem(this.player_,{kind:this.kind_})),n=0;n<this.player_.textTracks().length;n++)i=this.player_.textTracks()[n],i.kind()===this.kind_&&t.push(new vjs.TextTrackMenuItem(this.player_,{track:i}));return t},vjs.CaptionsButton=vjs.TextTrackButton.extend({init:function(n,t,i){vjs.TextTrackButton.call(this,n,t,i);this.el_.setAttribute("aria-label","Captions Menu")}}),vjs.CaptionsButton.prototype.kind_="captions",vjs.CaptionsButton.prototype.buttonText="Captions",vjs.CaptionsButton.prototype.className="vjs-captions-button",vjs.SubtitlesButton=vjs.TextTrackButton.extend({init:function(n,t,i){vjs.TextTrackButton.call(this,n,t,i);this.el_.setAttribute("aria-label","Subtitles Menu")}}),vjs.SubtitlesButton.prototype.kind_="subtitles",vjs.SubtitlesButton.prototype.buttonText="Subtitles",vjs.SubtitlesButton.prototype.className="vjs-subtitles-button",vjs.ChaptersButton=vjs.TextTrackButton.extend({init:function(n,t,i){vjs.TextTrackButton.call(this,n,t,i);this.el_.setAttribute("aria-label","Chapters Menu")}}),vjs.ChaptersButton.prototype.kind_="chapters",vjs.ChaptersButton.prototype.buttonText="Chapters",vjs.ChaptersButton.prototype.className="vjs-chapters-button",vjs.ChaptersButton.prototype.createItems=function(){for(var i=[],n,t=0;t<this.player_.textTracks().length;t++)n=this.player_.textTracks()[t],n.kind()===this.kind_&&i.push(new vjs.TextTrackMenuItem(this.player_,{track:n}));return i},vjs.ChaptersButton.prototype.createMenu=function(){for(var o=this.player_.textTracks(),n=0,u=o.length,t,i,h=this.items=[],r,f,s,e;n<u;n++)if(t=o[n],t.kind()==this.kind_&&t.dflt()){if(t.readyState()<2){this.chaptersTrack=t;t.on("loaded",vjs.bind(this,this.createMenu));return}i=t;break}if(r=this.menu=new vjs.Menu(this.player_),r.el_.appendChild(vjs.createEl("li",{className:"vjs-menu-title",innerHTML:vjs.capitalize(this.kind_),tabindex:-1})),i)for(f=i.cues_,n=0,u=f.length;n<u;n++)s=f[n],e=new vjs.ChaptersTrackMenuItem(this.player_,{track:i,cue:s}),h.push(e),r.addChild(e);return this.items.length>0&&this.show(),r},vjs.ChaptersTrackMenuItem=vjs.MenuItem.extend({init:function(n,t){var u=this.track=t.track,i=this.cue=t.cue,r=n.currentTime();t.label=i.text;t.selected=i.startTime<=r&&r<i.endTime;vjs.MenuItem.call(this,n,t);u.on("cuechange",vjs.bind(this,this.update))}}),vjs.ChaptersTrackMenuItem.prototype.onClick=function(){vjs.MenuItem.prototype.onClick.call(this);this.player_.currentTime(this.cue.startTime);this.update(this.cue.startTime)},vjs.ChaptersTrackMenuItem.prototype.update=function(){var n=this.cue,t=this.player_.currentTime();this.selected(n.startTime<=t&&t<n.endTime)},vjs.obj.merge(vjs.ControlBar.prototype.options_.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}}),vjs.JSON,typeof JSON!="undefined"&&window.JSON.parse==="function"?vjs.JSON=window.JSON:(vjs.JSON={},cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,vjs.JSON.parse=function(text,reviver){function walk(n,t){var r,u,i=n[t];if(i&&typeof i=="object")for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(u=walk(i,r),u!==undefined?i[r]=u:delete i[r]);return reviver.call(n,t,i)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(n){return"\\u"+("0000"+n.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),typeof reviver=="function"?walk({"":j},""):j;throw new SyntaxError("JSON.parse(): invalid or malformed JSON data");}),vjs.autoSetup=function(){var t,n,f,i=document.getElementsByTagName("video"),r,u;if(i&&i.length>0)for(r=0,u=i.length;r<u;r++)if(n=i[r],n&&n.getAttribute)n.player===undefined&&(t=n.getAttribute("data-setup"),t!==null&&(t=vjs.JSON.parse(t||"{}"),f=videojs(n,t)));else{vjs.autoSetupTimeout(1);break}else vjs.windowLoaded||vjs.autoSetupTimeout(1)},vjs.autoSetupTimeout=function(n){setTimeout(vjs.autoSetup,n)},document.readyState==="complete")vjs.windowLoaded=!0;else vjs.one(window,"load",function(){vjs.windowLoaded=!0});vjs.autoSetupTimeout(1);vjs.plugin=function(n,t){vjs.Player.prototype[n]=t},function(n,t){"object"==typeof module&&module.exports?module.exports=t():"function"==typeof define&&define.amd?define(t):n.IPv6=t(n)}(this,function(n){var t=n&&n.IPv6;return{best:function(n){var r,t,i,u;for(n=n.toLowerCase().split(":"),i=n.length,r=8,""===n[0]&&""===n[1]&&""===n[2]?(n.shift(),n.shift()):""===n[0]&&""===n[1]?n.shift():""===n[i-1]&&""===n[i-2]&&n.pop(),i=n.length,-1!==n[i-1].indexOf(".")&&(r=7),t=0;t<i&&""!==n[t];t++);if(t<r)for(n.splice(t,1,"0000");n.length<r;)n.splice(t,0,"0000");for(t=0;t<r;t++){for(i=n[t].split(""),u=0;3>u;u++)if("0"===i[0]&&1<i.length)i.splice(0,1);else break;n[t]=i.join("")}var i=-1,f=u=0,e=-1,o=!1;for(t=0;t<r;t++)o?"0"===n[t]?f+=1:(o=!1,f>u&&(i=e,u=f)):"0"===n[t]&&(o=!0,e=t,f=1);for(f>u&&(i=e,u=f),1<u&&n.splice(i,u,""),i=n.length,r="",""===n[0]&&(r=":"),t=0;t<i;t++){if(r+=n[t],t===i-1)break;r+=":"}return""===n[i-1]&&(r+=":"),r},noConflict:function(){return n.IPv6===this&&(n.IPv6=t),this}}}),function(n){function i(n){throw new RangeError(g[n]);}function s(n,t){for(var i=n.length,r=[];i--;)r[i]=t(n[i]);return r}function h(n,t){var i=n.split("@"),r="";return 1<i.length&&(r=i[0]+"@",n=i[1]),n=n.replace(d,"."),i=n.split("."),i=s(i,t).join("."),r+i}function c(n){for(var r=[],i=0,f=n.length,t,u;i<f;)t=n.charCodeAt(i++),55296<=t&&56319>=t&&i<f?(u=n.charCodeAt(i++),56320==(u&64512)?r.push(((t&1023)<<10)+(u&1023)+65536):(r.push(t),i--)):r.push(t);return r}function l(n){return s(n,function(n){var t="";return 65535<n&&(n-=65536,t+=f(n>>>10&1023|55296),n=56320|n&1023),t+f(n)}).join("")}function a(n,t){return n+22+75*(26>n)-((0!=t)<<5)}function v(n,i,r){var u=0;for(n=r?t(n/700):n>>1,n+=t(n/i);455<n;u+=36)n=t(n/35);return t(u+36*n/(n+38))}function y(n){var h=[],p=n.length,u,e=0,a=128,c=72,f,o,s,r,y;for(f=n.lastIndexOf("-"),0>f&&(f=0),o=0;o<f;++o)128<=n.charCodeAt(o)&&i("not-basic"),h.push(n.charCodeAt(o));for(f=0<f?f+1:0;f<p;){for(o=e,u=1,s=36;;s+=36){if(f>=p&&i("invalid-input"),r=n.charCodeAt(f++),r=10>r-48?r-22:26>r-65?r-65:26>r-97?r-97:36,(36<=r||r>t((2147483647-e)/u))&&i("overflow"),e+=r*u,y=s<=c?1:s>=c+26?26:s-c,r<y)break;r=36-y;u>t(2147483647/r)&&i("overflow");u*=r}u=h.length+1;c=v(e-o,u,0==o);t(e/u)>2147483647-a&&i("overflow");a+=t(e/u);e%=u;h.splice(e++,0,a)}return l(h)}function p(n){var o,s,y,d,p,u,e,h,r,l=[],w,b,k;for(n=c(n),w=n.length,o=128,s=0,p=72,u=0;u<w;++u)r=n[u],128>r&&l.push(f(r));for((y=d=l.length)&&l.push("-");y<w;){for(e=2147483647,u=0;u<w;++u)r=n[u],r>=o&&r<e&&(e=r);for(b=y+1,e-o>t((2147483647-s)/b)&&i("overflow"),s+=(e-o)*b,o=e,u=0;u<w;++u)if(r=n[u],r<o&&2147483647<++s&&i("overflow"),r==o){for(h=s,e=36;;e+=36){if(r=e<=p?1:e>=p+26?26:e-p,h<r)break;k=h-r;h=36-r;l.push(f(a(r+k%h,0)));h=t(k/h)}l.push(f(a(h,0)));p=v(s,b,y==d);s=0;++y}++s;++o}return l.join("")}var o="object"==typeof exports&&exports&&!exports.nodeType&&exports,w="object"==typeof module&&module&&!module.nodeType&&module,r="object"==typeof global&&global;(r.global===r||r.window===r||r.self===r)&&(n=r);var u,b=/^xn--/,k=/[^\x20-\x7E]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,g={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},t=Math.floor,f=String.fromCharCode,e;if(u={version:"1.3.2",ucs2:{decode:c,encode:l},decode:y,encode:p,toASCII:function(n){return h(n,function(n){return k.test(n)?"xn--"+p(n):n})},toUnicode:function(n){return h(n,function(n){return b.test(n)?y(n.slice(4).toLowerCase()):n})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return u});else if(o&&w)if(module.exports==o)w.exports=u;else for(e in u)u.hasOwnProperty(e)&&(o[e]=u[e]);else n.punycode=u}(this),function(n,t){"object"==typeof module&&module.exports?module.exports=t():"function"==typeof define&&define.amd?define(t):n.SecondLevelDomains=t(n)}(this,function(n){var i=n&&n.SecondLevelDomains,t={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ","do":" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ","in":" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch "},has:function(n){var i=n.lastIndexOf("."),r,u;return 0>=i||i>=n.length-1?!1:(r=n.lastIndexOf(".",i-1),0>=r||r>=i-1)?!1:(u=t.list[n.slice(i+1)],u?0<=u.indexOf(" "+n.slice(r+1,i)+" "):!1)},is:function(n){var i=n.lastIndexOf("."),r;return 0>=i||i>=n.length-1||0<=n.lastIndexOf(".",i-1)?!1:(r=t.list[n.slice(i+1)],r?0<=r.indexOf(" "+n.slice(0,i)+" "):!1)},get:function(n){var i=n.lastIndexOf("."),r,u;return 0>=i||i>=n.length-1?null:(r=n.lastIndexOf(".",i-1),0>=r||r>=i-1)?null:(u=t.list[n.slice(i+1)],!u||0>u.indexOf(" "+n.slice(r+1,i)+" ")?null:n.slice(r+1))},noConflict:function(){return n.SecondLevelDomains===this&&(n.SecondLevelDomains=i),this}};return t}),function(n,t){"object"==typeof module&&module.exports?module.exports=t(require("./punycode"),require("./IPv6"),require("./SecondLevelDomains")):"function"==typeof define&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):n.URI=t(n.punycode,n.IPv6,n.SecondLevelDomains,n)}(this,function(n,t,i,r){function u(n,t){var i=1<=arguments.length,r=2<=arguments.length;if(!(this instanceof u))return i?r?new u(n,t):new u(n):new u;if(void 0===n){if(i)throw new TypeError("undefined is not a valid argument for URI");n="undefined"!=typeof location?location.href+"":""}return this.href(n),void 0!==t?this.absoluteTo(t):this}function h(n){return n.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function c(n){return void 0===n?"Undefined":String(Object.prototype.toString.call(n)).slice(8,-1)}function e(n){return"Array"===c(n)}function b(n,t){var r={},i,u;if("RegExp"===c(t))r=null;else if(e(t))for(i=0,u=t.length;i<u;i++)r[t[i]]=!0;else r[t]=!0;for(i=0,u=n.length;i<u;i++)(r&&void 0!==r[n[i]]||!r&&t.test(n[i]))&&(n.splice(i,1),u--,i--);return n}function v(n,t){var i,r,u;if(e(t)){for(i=0,r=t.length;i<r;i++)if(!v(n,t[i]))return!1;return!0}for(u=c(t),i=0,r=n.length;i<r;i++)if("RegExp"===u){if("string"==typeof n[i]&&n[i].match(t))return!0}else if(n[i]===t)return!0;return!1}function k(n,t){if(!e(n)||!e(t)||n.length!==t.length)return!1;n.sort();t.sort();for(var i=0,r=n.length;i<r;i++)if(n[i]!==t[i])return!1;return!0}function p(n){return n.replace(/^\/+|\/+$/g,"")}function nt(n){return escape(n)}function w(n){return encodeURIComponent(n).replace(/[!'()*]/g,nt).replace(/\*/g,"%2A")}function l(n){return function(t,i){return void 0===t?this._parts[n]||"":(this._parts[n]=t||null,this.build(!i),this)}}function d(n,t){return function(i,r){return void 0===i?this._parts[n]||"":(null!==i&&(i+="",i.charAt(0)===t&&(i=i.substring(1))),this._parts[n]=i,this.build(!r),this)}}var tt=r&&r.URI,f,o,s,a,y,g;u.version="1.18.4";f=u.prototype;o=Object.prototype.hasOwnProperty;u._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,duplicateQueryParameters:u.duplicateQueryParameters,escapeQuerySpace:u.escapeQuerySpace}};u.duplicateQueryParameters=!1;u.escapeQuerySpace=!0;u.protocol_expression=/^[a-z][a-z0-9.+-]*$/i;u.idn_expression=/[^a-z0-9\.-]/i;u.punycode_expression=/(xn--)/i;u.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;u.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;u.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/ig;u.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u201e\u2018\u2019]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g};u.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"};u.invalid_hostname_characters=/[^a-zA-Z0-9\.-]/;u.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"};u.getDomAttribute=function(n){if(n&&n.nodeName){var t=n.nodeName.toLowerCase();if("input"!==t||"image"===n.type)return u.domAttributes[t]}};u.encode=w;u.decode=decodeURIComponent;u.iso8859=function(){u.encode=escape;u.decode=unescape};u.unicode=function(){u.encode=w;u.decode=decodeURIComponent};u.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}};u.encodeQuery=function(n,t){var i=u.encode(n+"");return void 0===t&&(t=u.escapeQuerySpace),t?i.replace(/%20/g,"+"):i};u.decodeQuery=function(n,t){n+="";void 0===t&&(t=u.escapeQuerySpace);try{return u.decode(t?n.replace(/\+/g,"%20"):n)}catch(i){return n}};s={encode:"encode",decode:"decode"};y=function(n,t){return function(i){try{return u[t](i+"").replace(u.characters[n][t].expression,function(i){return u.characters[n][t].map[i]})}catch(r){return i}}};for(a in s)u[a+"PathSegment"]=y("pathname",s[a]),u[a+"UrnPathSegment"]=y("urnpath",s[a]);s=function(n,t,i){return function(r){var e,f,o;for(e=i?function(n){return u[t](u[i](n))}:u[t],r=(r+"").split(n),f=0,o=r.length;f<o;f++)r[f]=e(r[f]);return r.join(n)}};u.decodePath=s("/","decodePathSegment");u.decodeUrnPath=s(":","decodeUrnPathSegment");u.recodePath=s("/","encodePathSegment","decode");u.recodeUrnPath=s(":","encodeUrnPathSegment","decode");u.encodeReserved=y("reserved","encode");u.parse=function(n,t){var i;return t||(t={}),i=n.indexOf("#"),-1<i&&(t.fragment=n.substring(i+1)||null,n=n.substring(0,i)),i=n.indexOf("?"),-1<i&&(t.query=n.substring(i+1)||null,n=n.substring(0,i)),"//"===n.substring(0,2)?(t.protocol=null,n=n.substring(2),n=u.parseAuthority(n,t)):(i=n.indexOf(":"),-1<i&&(t.protocol=n.substring(0,i)||null,t.protocol&&!t.protocol.match(u.protocol_expression)?t.protocol=void 0:"//"===n.substring(i+1,i+3)?(n=n.substring(i+3),n=u.parseAuthority(n,t)):(n=n.substring(i+1),t.urn=!0))),t.path=n,t};u.parseHost=function(n,t){var i,r,u;return n=n.replace(/\\/g,"/"),i=n.indexOf("/"),-1===i&&(i=n.length),"["===n.charAt(0)?(r=n.indexOf("]"),t.hostname=n.substring(1,r)||null,t.port=n.substring(r+2,i)||null,"/"===t.port&&(t.port=null)):(u=n.indexOf(":"),r=n.indexOf("/"),u=n.indexOf(":",u+1),-1!==u&&(-1===r||u<r)?(t.hostname=n.substring(0,i)||null,t.port=null):(r=n.substring(0,i).split(":"),t.hostname=r[0]||null,t.port=r[1]||null)),t.hostname&&"/"!==n.substring(i).charAt(0)&&(i++,n="/"+n),n.substring(i)||"/"};u.parseAuthority=function(n,t){return n=u.parseUserinfo(n,t),u.parseHost(n,t)};u.parseUserinfo=function(n,t){var i=n.indexOf("/"),r=n.lastIndexOf("@",-1<i?i:n.length-1);return-1<r&&(-1===i||r<i)?(i=n.substring(0,r).split(":"),t.username=i[0]?u.decode(i[0]):null,i.shift(),t.password=i[0]?u.decode(i.join(":")):null,n=n.substring(r+1)):(t.username=null,t.password=null),n};u.parseQuery=function(n,t){if(!n)return{};if(n=n.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!n)return{};for(var i={},s=n.split("&"),h=s.length,f,r,e=0;e<h;e++)(f=s[e].split("="),r=u.decodeQuery(f.shift(),t),f=f.length?u.decodeQuery(f.join("="),t):null,o.call(i,r))?(("string"==typeof i[r]||null===i[r])&&(i[r]=[i[r]]),i[r].push(f)):i[r]=f;return i};u.build=function(n){var t="";return n.protocol&&(t+=n.protocol+":"),!n.urn&&(t||n.hostname)&&(t+="//"),t+=u.buildAuthority(n)||"","string"==typeof n.path&&("/"!==n.path.charAt(0)&&"string"==typeof n.hostname&&(t+="/"),t+=n.path),"string"==typeof n.query&&n.query&&(t+="?"+n.query),"string"==typeof n.fragment&&n.fragment&&(t+="#"+n.fragment),t};u.buildHost=function(n){var t="";if(n.hostname)t=u.ip6_expression.test(n.hostname)?t+("["+n.hostname+"]"):t+n.hostname;else return"";return n.port&&(t+=":"+n.port),t};u.buildAuthority=function(n){return u.buildUserinfo(n)+u.buildHost(n)};u.buildUserinfo=function(n){var t="";return n.username&&(t+=u.encode(n.username)),n.password&&(t+=":"+u.encode(n.password)),t&&(t+="@"),t};u.buildQuery=function(n,t,i){var s="",h,r,f,c;for(r in n)if(o.call(n,r)&&r)if(e(n[r]))for(h={},f=0,c=n[r].length;f<c;f++)void 0!==n[r][f]&&void 0===h[n[r][f]+""]&&(s+="&"+u.buildQueryParameter(r,n[r][f],i),!0!==t&&(h[n[r][f]+""]=!0));else void 0!==n[r]&&(s+="&"+u.buildQueryParameter(r,n[r],i));return s.substring(1)};u.buildQueryParameter=function(n,t,i){return u.encodeQuery(n,i)+(null!==t?"="+u.encodeQuery(t,i):"")};u.addQuery=function(n,t,i){if("object"==typeof t)for(var r in t)o.call(t,r)&&u.addQuery(n,r,t[r]);else if("string"==typeof t)void 0===n[t]?n[t]=i:("string"==typeof n[t]&&(n[t]=[n[t]]),e(i)||(i=[i]),n[t]=(n[t]||[]).concat(i));else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");};u.removeQuery=function(n,t,i){var r;if(e(t))for(i=0,r=t.length;i<r;i++)n[t[i]]=void 0;else if("RegExp"===c(t))for(r in n)t.test(r)&&(n[r]=void 0);else if("object"==typeof t)for(r in t)o.call(t,r)&&u.removeQuery(n,r,t[r]);else if("string"==typeof t)void 0!==i?"RegExp"===c(i)?n[t]=!e(n[t])&&i.test(n[t])?void 0:b(n[t],i):n[t]!==String(i)||e(i)&&1!==i.length?e(n[t])&&(n[t]=b(n[t],i)):n[t]=void 0:n[t]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter");};u.hasQuery=function(n,t,i,r){var f,s;switch(c(t)){case"String":break;case"RegExp":for(f in n)if(o.call(n,f)&&t.test(f)&&(void 0===i||u.hasQuery(n,f,i)))return!0;return!1;case"Object":for(s in t)if(o.call(t,s)&&!u.hasQuery(n,s,t[s]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter");}switch(c(i)){case"Undefined":return t in n;case"Boolean":return n=!(e(n[t])?!n[t].length:!n[t]),i===n;case"Function":return!!i(n[t],t,n);case"Array":return e(n[t])?(r?v:k)(n[t],i):!1;case"RegExp":return e(n[t])?r?v(n[t],i):!1:!(!n[t]||!n[t].match(i));case"Number":i=String(i);case"String":return e(n[t])?r?v(n[t],i):!1:n[t]===i;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter");}};u.joinPaths=function(){for(var n,i,r=[],t=[],e=0,f=0;f<arguments.length;f++)for(n=new u(arguments[f]),r.push(n),n=n.segment(),i=0;i<n.length;i++)"string"==typeof n[i]&&t.push(n[i]),n[i]&&e++;return!t.length||!e?new u(""):(t=new u("").segment(t),""!==r[0].path()&&"/"!==r[0].path().slice(0,1)||t.path("/"+t.path()),t.normalize())};u.commonPath=function(n,t){for(var r=Math.min(n.length,t.length),i=0;i<r;i++)if(n.charAt(i)!==t.charAt(i)){i--;break}return 1>i?n.charAt(0)===t.charAt(0)&&"/"===n.charAt(0)?"/":"":(("/"!==n.charAt(i)||"/"!==t.charAt(i))&&(i=n.substring(0,i).lastIndexOf("/")),n.substring(0,i+1))};u.withinString=function(n,t,i){var f,r,s;i||(i={});var o=i.start||u.findUri.start,c=i.end||u.findUri.end,h=i.trim||u.findUri.trim,l=i.parens||u.findUri.parens;for(o.lastIndex=0;;){if(f=o.exec(n),!f)break;if(f=f.index,!i.ignoreHtml||(r=n.slice(Math.max(f-3,0),f),!r||!/[a-z0-9-]=["']?$/i.test(r))){for(var e=f+n.slice(f).search(c),r=n.slice(f,e),e=-1;;){if(s=l.exec(r),!s)break;e=Math.max(e,s.index+s[0].length)}r=-1<e?r.slice(0,e)+r.slice(e+1).replace(h,""):r.replace(h,"");i.ignore&&i.ignore.test(r)||(e=f+r.length,r=t(r,f,e,n),void 0===r?o.lastIndex=e:(r=String(r),n=n.slice(0,f)+r+n.slice(e),o.lastIndex=f+r.length))}}return o.lastIndex=0,n};u.ensureValidHostname=function(t){if(t.match(u.invalid_hostname_characters)){if(!n)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-] and Punycode.js is not available');if(n.toASCII(t).match(u.invalid_hostname_characters))throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-]');}};u.noConflict=function(n){return n?(n={URI:this.noConflict()},r.URITemplate&&"function"==typeof r.URITemplate.noConflict&&(n.URITemplate=r.URITemplate.noConflict()),r.IPv6&&"function"==typeof r.IPv6.noConflict&&(n.IPv6=r.IPv6.noConflict()),r.SecondLevelDomains&&"function"==typeof r.SecondLevelDomains.noConflict&&(n.SecondLevelDomains=r.SecondLevelDomains.noConflict()),n):(r.URI===this&&(r.URI=tt),this)};f.build=function(n){return!0===n?this._deferred_build=!0:(void 0===n||this._deferred_build)&&(this._string=u.build(this._parts),this._deferred_build=!1),this};f.clone=function(){return new u(this)};f.valueOf=f.toString=function(){return this.build(!1)._string};f.protocol=l("protocol");f.username=l("username");f.password=l("password");f.hostname=l("hostname");f.port=l("port");f.query=d("query","?");f.fragment=d("fragment","#");f.search=function(n,t){var i=this.query(n,t);return"string"==typeof i&&i.length?"?"+i:i};f.hash=function(n,t){var i=this.fragment(n,t);return"string"==typeof i&&i.length?"#"+i:i};f.pathname=function(n,t){if(void 0===n||!0===n){var i=this._parts.path||(this._parts.hostname?"/":"");return n?(this._parts.urn?u.decodeUrnPath:u.decodePath)(i):i}return this._parts.path=this._parts.urn?n?u.recodeUrnPath(n):"":n?u.recodePath(n):"/",this.build(!t),this};f.path=f.pathname;f.href=function(n,t){var f,i,r;if(void 0===n)return this.toString();if(this._string="",this._parts=u._parts(),i=n instanceof u,r="object"==typeof n&&(n.hostname||n.path||n.pathname),n.nodeName&&(r=u.getDomAttribute(n),n=n[r]||"",r=!1),!i&&r&&void 0!==n.pathname&&(n=n.toString()),"string"==typeof n||n instanceof String)this._parts=u.parse(String(n),this._parts);else if(i||r)for(f in i=i?n._parts:n,i)o.call(this._parts,f)&&(this._parts[f]=i[f]);else throw new TypeError("invalid input");return this.build(!t),this};f.is=function(n){var r=!1,f=!1,e=!1,t=!1,s=!1,h=!1,c=!1,o=!this._parts.urn;this._parts.hostname&&(o=!1,f=u.ip4_expression.test(this._parts.hostname),e=u.ip6_expression.test(this._parts.hostname),r=f||e,s=(t=!r)&&i&&i.has(this._parts.hostname),h=t&&u.idn_expression.test(this._parts.hostname),c=t&&u.punycode_expression.test(this._parts.hostname));switch(n.toLowerCase()){case"relative":return o;case"absolute":return!o;case"domain":case"name":return t;case"sld":return s;case"ip":return r;case"ip4":case"ipv4":case"inet4":return f;case"ip6":case"ipv6":case"inet6":return e;case"idn":return h;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return c}return null};var it=f.protocol,rt=f.port,ut=f.hostname;return f.protocol=function(n,t){if(void 0!==n&&n&&(n=n.replace(/:(\/\/)?$/,""),!n.match(u.protocol_expression)))throw new TypeError('Protocol "'+n+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return it.call(this,n,t)},f.scheme=f.protocol,f.port=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0!==n&&(0===n&&(n=null),n&&(n+="",":"===n.charAt(0)&&(n=n.substring(1)),n.match(/[^0-9]/))))throw new TypeError('Port "'+n+'" contains characters other than [0-9]');return rt.call(this,n,t)},f.hostname=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0!==n){var i={};if("/"!==u.parseHost(n,i))throw new TypeError('Hostname "'+n+'" contains characters other than [A-Z0-9.-]');n=i.hostname}return ut.call(this,n,t)},f.origin=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0===n){var i=this.protocol();return this.authority()?(i?i+"://":"")+this.authority():""}return i=u(n),this.protocol(i.protocol()).authority(i.authority()).build(!t),this},f.host=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0===n)return this._parts.hostname?u.buildHost(this._parts):"";if("/"!==u.parseHost(n,this._parts))throw new TypeError('Hostname "'+n+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},f.authority=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0===n)return this._parts.hostname?u.buildAuthority(this._parts):"";if("/"!==u.parseAuthority(n,this._parts))throw new TypeError('Hostname "'+n+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},f.userinfo=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0===n){var i=u.buildUserinfo(this._parts);return i?i.substring(0,i.length-1):i}return"@"!==n[n.length-1]&&(n+="@"),u.parseUserinfo(n,this._parts),this.build(!t),this},f.resource=function(n,t){var i;return void 0===n?this.path()+this.search()+this.hash():(i=u.parse(n),this._parts.path=i.path,this._parts.query=i.query,this._parts.fragment=i.fragment,this.build(!t),this)},f.subdomain=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0===n){if(!this._parts.hostname||this.is("IP"))return"";var i=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,i)||""}return i=this._parts.hostname.length-this.domain().length,i=this._parts.hostname.substring(0,i),i=new RegExp("^"+h(i)),n&&"."!==n.charAt(n.length-1)&&(n+="."),n&&u.ensureValidHostname(n),this._parts.hostname=this._parts.hostname.replace(i,n),this.build(!t),this},f.domain=function(n,t){if(this._parts.urn)return void 0===n?"":this;if("boolean"==typeof n&&(t=n,n=void 0),void 0===n){if(!this._parts.hostname||this.is("IP"))return"";var i=this._parts.hostname.match(/\./g);return i&&2>i.length?this._parts.hostname:(i=this._parts.hostname.length-this.tld(t).length-1,i=this._parts.hostname.lastIndexOf(".",i-1)+1,this._parts.hostname.substring(i)||"")}if(!n)throw new TypeError("cannot set domain empty");return u.ensureValidHostname(n),!this._parts.hostname||this.is("IP")?this._parts.hostname=n:(i=new RegExp(h(this.domain())+"$"),this._parts.hostname=this._parts.hostname.replace(i,n)),this.build(!t),this},f.tld=function(n,t){if(this._parts.urn)return void 0===n?"":this;if("boolean"==typeof n&&(t=n,n=void 0),void 0===n){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.lastIndexOf("."),r=this._parts.hostname.substring(r+1);return!0!==t&&i&&i.list[r.toLowerCase()]?i.get(this._parts.hostname)||r:r}if(n)if(n.match(/[^a-zA-Z0-9-]/))if(i&&i.is(n))r=new RegExp(h(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(r,n);else throw new TypeError('TLD "'+n+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");r=new RegExp(h(this.tld())+"$");this._parts.hostname=this._parts.hostname.replace(r,n)}else throw new TypeError("cannot set TLD empty");return this.build(!t),this},f.directory=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0===n||!0===n){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var i=this._parts.path.length-this.filename().length-1,i=this._parts.path.substring(0,i)||(this._parts.hostname?"/":"");return n?u.decodePath(i):i}return i=this._parts.path.length-this.filename().length,i=this._parts.path.substring(0,i),i=new RegExp("^"+h(i)),this.is("relative")||(n||(n="/"),"/"!==n.charAt(0)&&(n="/"+n)),n&&"/"!==n.charAt(n.length-1)&&(n+="/"),n=u.recodePath(n),this._parts.path=this._parts.path.replace(i,n),this.build(!t),this},f.filename=function(n,t){var i,r;return this._parts.urn?void 0===n?"":this:void 0===n||!0===n?!this._parts.path||"/"===this._parts.path?"":(i=this._parts.path.lastIndexOf("/"),i=this._parts.path.substring(i+1),n?u.decodePathSegment(i):i):(i=!1,"/"===n.charAt(0)&&(n=n.substring(1)),n.match(/\.?\//)&&(i=!0),r=new RegExp(h(this.filename())+"$"),n=u.recodePath(n),this._parts.path=this._parts.path.replace(r,n),i?this.normalizePath(t):this.build(!t),this)},f.suffix=function(n,t){if(this._parts.urn)return void 0===n?"":this;if(void 0===n||!0===n){if(!this._parts.path||"/"===this._parts.path)return"";var i=this.filename(),r=i.lastIndexOf(".");return-1===r?"":(i=i.substring(r+1),i=/^[a-z0-9%]+$/i.test(i)?i:"",n?u.decodePathSegment(i):i)}if("."===n.charAt(0)&&(n=n.substring(1)),i=this.suffix())r=n?new RegExp(h(i)+"$"):new RegExp(h("."+i)+"$");else{if(!n)return this;this._parts.path+="."+u.recodePath(n)}return r&&(n=u.recodePath(n),this._parts.path=this._parts.path.replace(r,n)),this.build(!t),this},f.segment=function(n,t,i){var u=this._parts.urn?":":"/",r=this.path(),f="/"===r.substring(0,1),r=r.split(u),o;if(void 0!==n&&"number"!=typeof n&&(i=t,t=n,n=void 0),void 0!==n&&"number"!=typeof n)throw Error('Bad segment "'+n+'", must be 0-based integer');if(f&&r.shift(),0>n&&(n=Math.max(r.length+n,0)),void 0===t)return void 0===n?r:r[n];if(null===n||void 0===r[n])if(e(t))for(r=[],n=0,o=t.length;n<o;n++)(t[n].length||r.length&&r[r.length-1].length)&&(r.length&&!r[r.length-1].length&&r.pop(),r.push(p(t[n])));else(t||"string"==typeof t)&&(t=p(t),""===r[r.length-1]?r[r.length-1]=t:r.push(t));else t?r[n]=p(t):r.splice(n,1);return f&&r.unshift(""),this.path(r.join(u),i)},f.segmentCoded=function(n,t,i){var r,f;if("number"!=typeof n&&(i=t,t=n,n=void 0),void 0===t){if(n=this.segment(n,t,i),e(n))for(r=0,f=n.length;r<f;r++)n[r]=u.decode(n[r]);else n=void 0!==n?u.decode(n):void 0;return n}if(e(t))for(r=0,f=t.length;r<f;r++)t[r]=u.encode(t[r]);else t="string"==typeof t||t instanceof String?u.encode(t):t;return this.segment(n,t,i)},g=f.query,f.query=function(n,t){if(!0===n)return u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if("function"==typeof n){var i=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace),r=n.call(this,i);return this._parts.query=u.buildQuery(r||i,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!t),this}return void 0!==n&&"string"!=typeof n?(this._parts.query=u.buildQuery(n,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!t),this):g.call(this,n,t)},f.setQuery=function(n,t,i){var f=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace),r;if("string"==typeof n||n instanceof String)f[n]=void 0!==t?t:null;else if("object"==typeof n)for(r in n)o.call(n,r)&&(f[r]=n[r]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=u.buildQuery(f,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),"string"!=typeof n&&(i=t),this.build(!i),this},f.addQuery=function(n,t,i){var r=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return u.addQuery(r,n,void 0===t?null:t),this._parts.query=u.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),"string"!=typeof n&&(i=t),this.build(!i),this},f.removeQuery=function(n,t,i){var r=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return u.removeQuery(r,n,t),this._parts.query=u.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),"string"!=typeof n&&(i=t),this.build(!i),this},f.hasQuery=function(n,t,i){var r=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return u.hasQuery(r,n,t,i)},f.setSearch=f.setQuery,f.addSearch=f.addQuery,f.removeSearch=f.removeQuery,f.hasSearch=f.hasQuery,f.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},f.normalizeProtocol=function(n){return"string"==typeof this._parts.protocol&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!n)),this},f.normalizeHostname=function(i){return this._parts.hostname&&(this.is("IDN")&&n?this._parts.hostname=n.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!i)),this},f.normalizePort=function(n){return"string"==typeof this._parts.protocol&&this._parts.port===u.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!n)),this},f.normalizePath=function(n){var t=this._parts.path,e,r,i,f;if(!t)return this;if(this._parts.urn)return this._parts.path=u.recodeUrnPath(this._parts.path),this.build(!n),this;if("/"===this._parts.path)return this;for(t=u.recodePath(t),r="","/"!==t.charAt(0)&&(e=!0,t="/"+t),("/.."===t.slice(-3)||"/."===t.slice(-2))&&(t+="/"),t=t.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),e&&(r=t.substring(1).match(/^(\.\.\/)+/)||"")&&(r=r[0]);;){if(i=t.search(/\/\.\.(\/|$)/),-1===i)break;else if(0===i){t=t.substring(3);continue}f=t.substring(0,i).lastIndexOf("/");-1===f&&(f=i);t=t.substring(0,f)+t.substring(i+3)}return e&&this.is("relative")&&(t=r+t.substring(1)),this._parts.path=t,this.build(!n),this},f.normalizePathname=f.normalizePath,f.normalizeQuery=function(n){return"string"==typeof this._parts.query&&(this._parts.query.length?this.query(u.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!n)),this},f.normalizeFragment=function(n){return this._parts.fragment||(this._parts.fragment=null,this.build(!n)),this},f.normalizeSearch=f.normalizeQuery,f.normalizeHash=f.normalizeFragment,f.iso8859=function(){var n=u.encode,t=u.decode;u.encode=escape;u.decode=decodeURIComponent;try{this.normalize()}finally{u.encode=n;u.decode=t}return this},f.unicode=function(){var n=u.encode,t=u.decode;u.encode=w;u.decode=unescape;try{this.normalize()}finally{u.encode=n;u.decode=t}return this},f.readable=function(){var t=this.clone(),i,f,r;if(t.username("").password("").normalize(),i="",t._parts.protocol&&(i+=t._parts.protocol+"://"),t._parts.hostname&&(t.is("punycode")&&n?(i+=n.toUnicode(t._parts.hostname),t._parts.port&&(i+=":"+t._parts.port)):i+=t.host()),t._parts.hostname&&t._parts.path&&"/"!==t._parts.path.charAt(0)&&(i+="/"),i+=t.path(!0),t._parts.query){for(var r="",e=0,o=t._parts.query.split("&"),s=o.length;e<s;e++)f=(o[e]||"").split("="),r=r+("&"+u.decodeQuery(f[0],this._parts.escapeQuerySpace).replace(/&/g,"%26")),void 0!==f[1]&&(r+="="+u.decodeQuery(f[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"));i+="?"+r.substring(1)}return i+u.decodeQuery(t.hash(),!0)},f.absoluteTo=function(n){var t=this.clone(),i=["protocol","username","password","hostname","port"],r,f;if(this._parts.urn)throw Error("URNs do not have any generally defined hierarchical components");if(n instanceof u||(n=new u(n)),t._parts.protocol||(t._parts.protocol=n._parts.protocol),this._parts.hostname)return t;for(r=0;f=i[r];r++)t._parts[f]=n._parts[f];return t._parts.path?(".."===t._parts.path.substring(-2)&&(t._parts.path+="/"),"/"!==t.path().charAt(0)&&(i=(i=n.directory())?i:0===n.path().indexOf("/")?"/":"",t._parts.path=(i?i+"/":"")+t._parts.path,t.normalizePath())):(t._parts.path=n._parts.path,t._parts.query||(t._parts.query=n._parts.query)),t.build(),t},f.relativeTo=function(n){var f=this.clone().normalize(),t,i,r;if(f._parts.urn)throw Error("URNs do not have any generally defined hierarchical components");if(n=new u(n).normalize(),t=f._parts,i=n._parts,r=f.path(),n=n.path(),"/"!==r.charAt(0))throw Error("URI is already relative");if("/"!==n.charAt(0))throw Error("Cannot calculate a URI relative to another relative URI");if(t.protocol===i.protocol&&(t.protocol=null),t.username===i.username&&t.password===i.password&&null===t.protocol&&null===t.username&&null===t.password&&t.hostname===i.hostname&&t.port===i.port)t.hostname=null,t.port=null;else return f.build();return r===n?(t.path="",f.build()):(r=u.commonPath(r,n),!r)?f.build():(i=i.path.substring(r.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../"),t.path=i+t.path.substring(r.length)||"./",f.build())},f.equals=function(n){var t=this.clone(),f=new u(n),r,s,i;if(n={},t.normalize(),f.normalize(),t.toString()===f.toString())return!0;if(s=t.query(),r=f.query(),t.query(""),f.query(""),t.toString()!==f.toString()||s.length!==r.length)return!1;t=u.parseQuery(s,this._parts.escapeQuerySpace);r=u.parseQuery(r,this._parts.escapeQuerySpace);for(i in t)if(o.call(t,i)){if(e(t[i])){if(!k(t[i],r[i]))return!1}else if(t[i]!==r[i])return!1;n[i]=!0}for(i in r)if(o.call(r,i)&&!n[i])return!1;return!0},f.duplicateQueryParameters=function(n){return this._parts.duplicateQueryParameters=!!n,this},f.escapeQuerySpace=function(n){return this._parts.escapeQuerySpace=!!n,this},u}),function(n,t){"object"==typeof module&&module.exports?module.exports=t(require("./URI")):"function"==typeof define&&define.amd?define(["./URI"],t):n.URITemplate=t(n.URI,n)}(this,function(n,t){function i(n){return i._cache[n]?i._cache[n]:(this instanceof i)?(this.expression=n,i._cache[n]=this,this):new i(n)}function r(n){this.data=n;this.cache={}}var e=t&&t.URITemplate,o=Object.prototype.hasOwnProperty,u=i.prototype,f={"":{prefix:"",separator:",",named:!1,empty_name_separator:!1,encode:"encode"},"+":{prefix:"",separator:",",named:!1,empty_name_separator:!1,encode:"encodeReserved"},"#":{prefix:"#",separator:",",named:!1,empty_name_separator:!1,encode:"encodeReserved"},".":{prefix:".",separator:".",named:!1,empty_name_separator:!1,encode:"encode"},"/":{prefix:"/",separator:"/",named:!1,empty_name_separator:!1,encode:"encode"},";":{prefix:";",separator:";",named:!0,empty_name_separator:!1,encode:"encode"},"?":{prefix:"?",separator:"&",named:!0,empty_name_separator:!0,encode:"encode"},"&":{prefix:"&",separator:"&",named:!0,empty_name_separator:!0,encode:"encode"}};return i._cache={},i.EXPRESSION_PATTERN=/\{([^a-zA-Z0-9%_]?)([^\}]+)(\}|$)/g,i.VARIABLE_PATTERN=/^([^*:.](?:\.?[^*:.])*)((\*)|:(\d+))?$/,i.VARIABLE_NAME_PATTERN=/[^a-zA-Z0-9%_.]/,i.LITERAL_PATTERN=/[<>{}'"`^| \\]/,i.expand=function(n,t){for(var u=f[n.operator],h=u.named?"Named":"Unnamed",c=n.variables,o=[],e,r,s=0;r=c[s];s++)if(e=t.get(r.name),e.val.length){if(1<e.type&&r.maxlength)throw Error('Invalid expression: Prefix modifier not applicable to variable "'+r.name+'"');o.push(i["expand"+h](e,u,r.explode,r.explode&&u.separator||",",r.maxlength,r.name))}else e.type&&o.push("");return o.length?u.prefix+o.join(u.separator):""},i.expandNamed=function(t,i,r,u,f,e){var c="",o=i.encode,a,l,h,s,v;for(i=i.empty_name_separator,a=!t[o].length,l=2===t.type?"":n[o](e),s=0,v=t.val.length;s<v;s++)f?(h=n[o](t.val[s][1].substring(0,f)),2===t.type&&(l=n[o](t.val[s][0].substring(0,f)))):a?(h=n[o](t.val[s][1]),2===t.type?(l=n[o](t.val[s][0]),t[o].push([l,h])):t[o].push([void 0,h])):(h=t[o][s][1],2===t.type&&(l=t[o][s][0])),c&&(c+=u),r?c+=l+(i||h?"=":"")+h:(s||(c+=n[o](e)+(i||h?"=":"")),2===t.type&&(c+=l+","),c+=h);return c},i.expandUnnamed=function(t,i,r,u,f){var o="",s=i.encode,c,l,h,e,a;for(i=i.empty_name_separator,c=!t[s].length,e=0,a=t.val.length;e<a;e++)f?h=n[s](t.val[e][1].substring(0,f)):c?(h=n[s](t.val[e][1]),t[s].push([2===t.type?n[s](t.val[e][0]):void 0,h])):h=t[s][e][1],o&&(o+=u),2===t.type&&(l=f?n[s](t.val[e][0].substring(0,f)):t[s][e][0],o+=l,o=r?o+(i||h?"=":""):o+","),o+=h;return o},i.noConflict=function(){return t.URITemplate===i&&(t.URITemplate=e),i},u.expand=function(n){var u="",t,f;for(this.parts&&this.parts.length||this.parse(),n instanceof r||(n=new r(n)),t=0,f=this.parts.length;t<f;t++)u+="string"==typeof this.parts[t]?this.parts[t]:i.expand(this.parts[t],n);return u},u.parse=function(){var o=this.expression,c=i.EXPRESSION_PATTERN,a=i.VARIABLE_PATTERN,v=i.VARIABLE_NAME_PATTERN,y=i.LITERAL_PATTERN,u=[],s=0,r,n,t,h=function(n){if(n.match(y))throw Error('Invalid Literal "'+n+'"');return n},e,l;for(c.lastIndex=0;;){if(n=c.exec(o),null===n){u.push(h(o.substring(s)));break}else u.push(h(o.substring(s,n.index))),s=n.index+n[0].length;if(!f[n[1]])throw Error('Unknown Operator "'+n[1]+'" in "'+n[0]+'"');if(!n[3])throw Error('Unclosed Expression "'+n[0]+'"');for(r=n[2].split(","),e=0,l=r.length;e<l;e++){if(t=r[e].match(a),null===t)throw Error('Invalid Variable "'+r[e]+'" in "'+n[0]+'"');if(t[1].match(v))throw Error('Invalid Variable Name "'+t[1]+'" in "'+n[0]+'"');r[e]={name:t[1],explode:!!t[3],maxlength:t[4]&&parseInt(t[4],10)}}if(!r.length)throw Error('Expression Missing Variable(s) "'+n[0]+'"');u.push({expression:n[0],operator:n[1],variables:r})}return u.length||u.push(h(o)),this.parts=u,this},r.prototype.get=function(n){var t=this.data,r={type:0,val:[],encode:[],encodeReserved:[]},i;if(void 0!==this.cache[n])return this.cache[n];if(this.cache[n]=r,t="[object Function]"===String(Object.prototype.toString.call(t))?t(n):"[object Function]"===String(Object.prototype.toString.call(t[n]))?t[n](n):t[n],void 0!==t&&null!==t)if("[object Array]"===String(Object.prototype.toString.call(t))){for(i=0,n=t.length;i<n;i++)void 0!==t[i]&&null!==t[i]&&r.val.push([void 0,String(t[i])]);r.val.length&&(r.type=3)}else if("[object Object]"===String(Object.prototype.toString.call(t))){for(i in t)o.call(t,i)&&void 0!==t[i]&&null!==t[i]&&r.val.push([i,String(t[i])]);r.val.length&&(r.type=2)}else r.type=1,r.val.push([void 0,String(t)]);return r},n.expand=function(t,r){var u=new i(t).expand(r);return new n(u)},i}),function(){var c=this,tt=c._,r=Array.prototype,p=Object.prototype,it=Function.prototype,w=r.push,t=r.slice,l=r.concat,u=p.toString,b=p.hasOwnProperty,rt=Array.isArray,k=Object.keys,a=it.bind,n=function(t){if(t instanceof n)return t;if(!(this instanceof n))return new n(t);this._wrapped=t},i,v,e,f,o,s,nt,h;typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=n),exports._=n):c._=n;n.VERSION="1.7.0";i=function(n,t,i){if(t===void 0)return n;switch(i==null?3:i){case 1:return function(i){return n.call(t,i)};case 2:return function(i,r){return n.call(t,i,r)};case 3:return function(i,r,u){return n.call(t,i,r,u)};case 4:return function(i,r,u,f){return n.call(t,i,r,u,f)}}return function(){return n.apply(t,arguments)}};n.iteratee=function(t,r,u){return t==null?n.identity:n.isFunction(t)?i(t,r,u):n.isObject(t)?n.matches(t):n.property(t)};n.each=n.forEach=function(t,r,u){var f,e,o;if(t==null)return t;if(r=i(r,u),e=t.length,e===+e)for(f=0;f<e;f++)r(t[f],f,t);else for(o=n.keys(t),f=0,e=o.length;f<e;f++)r(t[o[f]],o[f],t);return t};n.map=n.collect=function(t,i,r){var u;if(t==null)return[];i=n.iteratee(i,r);var f=t.length!==+t.length&&n.keys(t),o=(f||t).length,s=Array(o),e;for(u=0;u<o;u++)e=f?f[u]:u,s[u]=i(t[e],e,t);return s};v="Reduce of empty array with no initial value";n.reduce=n.foldl=n.inject=function(t,r,u,f){t==null&&(t=[]);r=i(r,f,4);var o=t.length!==+t.length&&n.keys(t),h=(o||t).length,e=0,s;if(arguments.length<3){if(!h)throw new TypeError(v);u=t[o?o[e++]:e++]}for(;e<h;e++)s=o?o[e]:e,u=r(u,t[s],s,t);return u};n.reduceRight=n.foldr=function(t,r,u,f){t==null&&(t=[]);r=i(r,f,4);var o=t.length!==+t.length&&n.keys(t),e=(o||t).length,s;if(arguments.length<3){if(!e)throw new TypeError(v);u=t[o?o[--e]:--e]}while(e--)s=o?o[e]:e,u=r(u,t[s],s,t);return u};n.find=n.detect=function(t,i,r){var u;return i=n.iteratee(i,r),n.some(t,function(n,t,r){if(i(n,t,r))return u=n,!0}),u};n.filter=n.select=function(t,i,r){var u=[];return t==null?u:(i=n.iteratee(i,r),n.each(t,function(n,t,r){i(n,t,r)&&u.push(n)}),u)};n.reject=function(t,i,r){return n.filter(t,n.negate(n.iteratee(i)),r)};n.every=n.all=function(t,i,r){if(t==null)return!0;i=n.iteratee(i,r);for(var f=t.length!==+t.length&&n.keys(t),o=(f||t).length,e,u=0;u<o;u++)if(e=f?f[u]:u,!i(t[e],e,t))return!1;return!0};n.some=n.any=function(t,i,r){if(t==null)return!1;i=n.iteratee(i,r);for(var f=t.length!==+t.length&&n.keys(t),o=(f||t).length,e,u=0;u<o;u++)if(e=f?f[u]:u,i(t[e],e,t))return!0;return!1};n.contains=n.include=function(t,i){return t==null?!1:(t.length!==+t.length&&(t=n.values(t)),n.indexOf(t,i)>=0)};n.invoke=function(i,r){var u=t.call(arguments,2),f=n.isFunction(r);return n.map(i,function(n){return(f?r:n[r]).apply(n,u)})};n.pluck=function(t,i){return n.map(t,n.property(i))};n.where=function(t,i){return n.filter(t,n.matches(i))};n.findWhere=function(t,i){return n.find(t,n.matches(i))};n.max=function(t,i,r){var u=-Infinity,s=-Infinity,o,f,e,h;if(i==null&&t!=null)for(t=t.length===+t.length?t:n.values(t),e=0,h=t.length;e<h;e++)o=t[e],o>u&&(u=o);else i=n.iteratee(i,r),n.each(t,function(n,t,r){f=i(n,t,r);(f>s||f===-Infinity&&u===-Infinity)&&(u=n,s=f)});return u};n.min=function(t,i,r){var u=Infinity,s=Infinity,o,f,e,h;if(i==null&&t!=null)for(t=t.length===+t.length?t:n.values(t),e=0,h=t.length;e<h;e++)o=t[e],o<u&&(u=o);else i=n.iteratee(i,r),n.each(t,function(n,t,r){f=i(n,t,r);(f<s||f===Infinity&&u===Infinity)&&(u=n,s=f)});return u};n.shuffle=function(t){for(var f=t&&t.length===+t.length?t:n.values(t),e=f.length,r=Array(e),i=0,u;i<e;i++)u=n.random(0,i),u!==i&&(r[i]=r[u]),r[u]=f[i];return r};n.sample=function(t,i,r){return i==null||r?(t.length!==+t.length&&(t=n.values(t)),t[n.random(t.length-1)]):n.shuffle(t).slice(0,Math.max(0,i))};n.sortBy=function(t,i,r){return i=n.iteratee(i,r),n.pluck(n.map(t,function(n,t,r){return{value:n,index:t,criteria:i(n,t,r)}}).sort(function(n,t){var i=n.criteria,r=t.criteria;if(i!==r){if(i>r||i===void 0)return 1;if(i<r||r===void 0)return-1}return n.index-t.index}),"value")};e=function(t){return function(i,r,u){var f={};return r=n.iteratee(r,u),n.each(i,function(n,u){var e=r(n,u,i);t(f,n,e)}),f}};n.groupBy=e(function(t,i,r){n.has(t,r)?t[r].push(i):t[r]=[i]});n.indexBy=e(function(n,t,i){n[i]=t});n.countBy=e(function(t,i,r){n.has(t,r)?t[r]++:t[r]=1});n.sortedIndex=function(t,i,r,u){var e;r=n.iteratee(r,u,1);for(var s=r(i),f=0,o=t.length;f<o;)e=f+o>>>1,r(t[e])<s?f=e+1:o=e;return f};n.toArray=function(i){return i?n.isArray(i)?t.call(i):i.length===+i.length?n.map(i,n.identity):n.values(i):[]};n.size=function(t){return t==null?0:t.length===+t.length?t.length:n.keys(t).length};n.partition=function(t,i,r){i=n.iteratee(i,r);var u=[],f=[];return n.each(t,function(n,t,r){(i(n,t,r)?u:f).push(n)}),[u,f]};n.first=n.head=n.take=function(n,i,r){if(n!=null)return i==null||r?n[0]:i<0?[]:t.call(n,0,i)};n.initial=function(n,i,r){return t.call(n,0,Math.max(0,n.length-(i==null||r?1:i)))};n.last=function(n,i,r){if(n!=null)return i==null||r?n[n.length-1]:t.call(n,Math.max(n.length-i,0))};n.rest=n.tail=n.drop=function(n,i,r){return t.call(n,i==null||r?1:i)};n.compact=function(t){return n.filter(t,n.identity)};f=function(t,i,r,u){var o,s,e;if(i&&n.every(t,n.isArray))return l.apply(u,t);for(o=0,s=t.length;o<s;o++)e=t[o],n.isArray(e)||n.isArguments(e)?i?w.apply(u,e):f(e,i,r,u):r||u.push(e);return u};n.flatten=function(n,t){return f(n,t,!1,[])};n.without=function(i){return n.difference(i,t.call(arguments,1))};n.uniq=n.unique=function(t,i,r,u){var e,s,o,c,f,h;if(t==null)return[];for(n.isBoolean(i)||(u=r,r=i,i=!1),r!=null&&(r=n.iteratee(r,u)),e=[],s=[],o=0,c=t.length;o<c;o++)f=t[o],i?(o&&s===f||e.push(f),s=f):r?(h=r(f,o,t),n.indexOf(s,h)<0&&(s.push(h),e.push(f))):n.indexOf(e,f)<0&&e.push(f);return e};n.union=function(){return n.uniq(f(arguments,!0,!0,[]))};n.intersection=function(t){var r,e,u,o,f,i;if(t==null)return[];for(r=[],e=arguments.length,u=0,o=t.length;u<o;u++)if(f=t[u],!n.contains(r,f)){for(i=1;i<e;i++)if(!n.contains(arguments[i],f))break;i===e&&r.push(f)}return r};n.difference=function(i){var r=f(t.call(arguments,1),!0,!0,[]);return n.filter(i,function(t){return!n.contains(r,t)})};n.zip=function(t){var r,u,i;if(t==null)return[];for(r=n.max(arguments,"length").length,u=Array(r),i=0;i<r;i++)u[i]=n.pluck(arguments,i);return u};n.object=function(n,t){var r,i,u;if(n==null)return{};for(r={},i=0,u=n.length;i<u;i++)t?r[n[i]]=t[i]:r[n[i][0]]=n[i][1];return r};n.indexOf=function(t,i,r){if(t==null)return-1;var u=0,f=t.length;if(r)if(typeof r=="number")u=r<0?Math.max(0,f+r):r;else return u=n.sortedIndex(t,i),t[u]===i?u:-1;for(;u<f;u++)if(t[u]===i)return u;return-1};n.lastIndexOf=function(n,t,i){if(n==null)return-1;var r=n.length;for(typeof i=="number"&&(r=i<0?r+i+1:Math.min(r,i+1));--r>=0;)if(n[r]===t)return r;return-1};n.range=function(n,t,i){var u,f,r;for(arguments.length<=1&&(t=n||0,n=0),i=i||1,u=Math.max(Math.ceil((t-n)/i),0),f=Array(u),r=0;r<u;r++,n+=i)f[r]=n;return f};o=function(){};n.bind=function(i,r){var u,f;if(a&&i.bind===a)return a.apply(i,t.call(arguments,1));if(!n.isFunction(i))throw new TypeError("Bind must be called on a function");return u=t.call(arguments,2),f=function(){var e,s;return(this instanceof f)?(o.prototype=i.prototype,e=new o,o.prototype=null,s=i.apply(e,u.concat(t.call(arguments))),n.isObject(s))?s:e:i.apply(r,u.concat(t.call(arguments)))}};n.partial=function(i){var r=t.call(arguments,1);return function(){for(var f=0,t=r.slice(),u=0,e=t.length;u<e;u++)t[u]===n&&(t[u]=arguments[f++]);while(f<arguments.length)t.push(arguments[f++]);return i.apply(this,t)}};n.bindAll=function(t){var i,u=arguments.length,r;if(u<=1)throw new Error("bindAll must be passed function names");for(i=1;i<u;i++)r=arguments[i],t[r]=n.bind(t[r],t);return t};n.memoize=function(t,i){var r=function(u){var f=r.cache,e=i?i.apply(this,arguments):u;return n.has(f,e)||(f[e]=t.apply(this,arguments)),f[e]};return r.cache={},r};n.delay=function(n,i){var r=t.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},i)};n.defer=function(i){return n.delay.apply(n,[i,1].concat(t.call(arguments,1)))};n.throttle=function(t,i,r){var f,e,s,u=null,o=0,h;return r||(r={}),h=function(){o=r.leading===!1?0:n.now();u=null;s=t.apply(f,e);u||(f=e=null)},function(){var l=n.now(),c;return o||r.leading!==!1||(o=l),c=i-(l-o),f=this,e=arguments,c<=0||c>i?(clearTimeout(u),u=null,o=l,s=t.apply(f,e),u||(f=e=null)):u||r.trailing===!1||(u=setTimeout(h,c)),s}};n.debounce=function(t,i,r){var u,f,e,s,o,h=function(){var c=n.now()-s;c<i&&c>0?u=setTimeout(h,i-c):(u=null,r||(o=t.apply(e,f),u||(e=f=null)))};return function(){e=this;f=arguments;s=n.now();var c=r&&!u;return u||(u=setTimeout(h,i)),c&&(o=t.apply(e,f),e=f=null),o}};n.wrap=function(t,i){return n.partial(i,t)};n.negate=function(n){return function(){return!n.apply(this,arguments)}};n.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,i=n[t].apply(this,arguments);r--;)i=n[r].call(this,i);return i}};n.after=function(n,t){return function(){if(--n<1)return t.apply(this,arguments)}};n.before=function(n,t){var i;return function(){return--n>0?i=t.apply(this,arguments):t=null,i}};n.once=n.partial(n.before,2);n.keys=function(t){var i,r;if(!n.isObject(t))return[];if(k)return k(t);i=[];for(r in t)n.has(t,r)&&i.push(r);return i};n.values=function(t){for(var r=n.keys(t),u=r.length,f=Array(u),i=0;i<u;i++)f[i]=t[r[i]];return f};n.pairs=function(t){for(var r=n.keys(t),u=r.length,f=Array(u),i=0;i<u;i++)f[i]=[r[i],t[r[i]]];return f};n.invert=function(t){for(var u={},r=n.keys(t),i=0,f=r.length;i<f;i++)u[t[r[i]]]=r[i];return u};n.functions=n.methods=function(t){var i=[];for(var r in t)n.isFunction(t[r])&&i.push(r);return i.sort()};n.extend=function(t){var i,r,u,f;if(!n.isObject(t))return t;for(u=1,f=arguments.length;u<f;u++){i=arguments[u];for(r in i)b.call(i,r)&&(t[r]=i[r])}return t};n.pick=function(r,u,f){var o={},e,h,c,s,a;if(r==null)return o;if(n.isFunction(u)){u=i(u,f);for(e in r)h=r[e],u(h,e,r)&&(o[e]=h)}else for(c=l.apply([],t.call(arguments,1)),r=new Object(r),s=0,a=c.length;s<a;s++)e=c[s],e in r&&(o[e]=r[e]);return o};n.omit=function(i,r,u){if(n.isFunction(r))r=n.negate(r);else{var f=n.map(l.apply([],t.call(arguments,1)),String);r=function(t,i){return!n.contains(f,i)}}return n.pick(i,r,u)};n.defaults=function(t){var i,f,u,r;if(!n.isObject(t))return t;for(i=1,f=arguments.length;i<f;i++){u=arguments[i];for(r in u)t[r]===void 0&&(t[r]=u[r])}return t};n.clone=function(t){return n.isObject(t)?n.isArray(t)?t.slice():n.extend({},t):t};n.tap=function(n,t){return t(n),n};s=function(t,i,r,f){var l,a,h,c,e,o,y,v;if(t===i)return t!==0||1/t==1/i;if(t==null||i==null)return t===i;if(t instanceof n&&(t=t._wrapped),i instanceof n&&(i=i._wrapped),l=u.call(t),l!==u.call(i))return!1;switch(l){case"[object RegExp]":case"[object String]":return""+t==""+i;case"[object Number]":return+t!=+t?+i!=+i:+t==0?1/+t==1/i:+t==+i;case"[object Date]":case"[object Boolean]":return+t==+i}if(typeof t!="object"||typeof i!="object")return!1;for(a=r.length;a--;)if(r[a]===t)return f[a]===i;if(h=t.constructor,c=i.constructor,h!==c&&"constructor"in t&&"constructor"in i&&!(n.isFunction(h)&&h instanceof h&&n.isFunction(c)&&c instanceof c))return!1;if(r.push(t),f.push(i),l==="[object Array]"){if(e=t.length,o=e===i.length,o)while(e--)if(!(o=s(t[e],i[e],r,f)))break}else if(y=n.keys(t),e=y.length,o=n.keys(i).length===e,o)while(e--)if(v=y[e],!(o=n.has(i,v)&&s(t[v],i[v],r,f)))break;return r.pop(),f.pop(),o};n.isEqual=function(n,t){return s(n,t,[],[])};n.isEmpty=function(t){if(t==null)return!0;if(n.isArray(t)||n.isString(t)||n.isArguments(t))return t.length===0;for(var i in t)if(n.has(t,i))return!1;return!0};n.isElement=function(n){return!!(n&&n.nodeType===1)};n.isArray=rt||function(n){return u.call(n)==="[object Array]"};n.isObject=function(n){var t=typeof n;return t==="function"||t==="object"&&!!n};n.each(["Arguments","Function","String","Number","Date","RegExp"],function(t){n["is"+t]=function(n){return u.call(n)==="[object "+t+"]"}});n.isArguments(arguments)||(n.isArguments=function(t){return n.has(t,"callee")});typeof/./!="function"&&(n.isFunction=function(n){return typeof n=="function"||!1});n.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))};n.isNaN=function(t){return n.isNumber(t)&&t!==+t};n.isBoolean=function(n){return n===!0||n===!1||u.call(n)==="[object Boolean]"};n.isNull=function(n){return n===null};n.isUndefined=function(n){return n===void 0};n.has=function(n,t){return n!=null&&b.call(n,t)};n.noConflict=function(){return c._=tt,this};n.identity=function(n){return n};n.constant=function(n){return function(){return n}};n.noop=function(){};n.property=function(n){return function(t){return t[n]}};n.matches=function(t){var i=n.pairs(t),r=i.length;return function(n){var t,u,f;if(n==null)return!r;for(n=new Object(n),t=0;t<r;t++)if(u=i[t],f=u[0],u[1]!==n[f]||!(f in n))return!1;return!0}};n.times=function(n,t,r){var f=Array(Math.max(0,n)),u;for(t=i(t,r,1),u=0;u<n;u++)f[u]=t(u);return f};n.random=function(n,t){return t==null&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};n.now=Date.now||function(){return(new Date).getTime()};var d={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},ut=n.invert(d),g=function(t){var r=function(n){return t[n]},i="(?:"+n.keys(t).join("|")+")",u=RegExp(i),f=RegExp(i,"g");return function(n){return n=n==null?"":""+n,u.test(n)?n.replace(f,r):n}};n.escape=g(d);n.unescape=g(ut);n.result=function(t,i){if(t==null)return void 0;var r=t[i];return n.isFunction(r)?t[i]():r};nt=0;n.uniqueId=function(n){var t=++nt+"";return n?n+t:t};n.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var y=/(.)^/,ft={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},et=/\\|'|\r|\n|\u2028|\u2029/g,ot=function(n){return"\\"+ft[n]};n.template=function(t,i,r){var o,f,h;!i&&r&&(i=r);i=n.defaults({},i,n.templateSettings);var c=RegExp([(i.escape||y).source,(i.interpolate||y).source,(i.evaluate||y).source].join("|")+"|$","g"),e=0,u="__p+='";t.replace(c,function(n,i,r,f,o){return u+=t.slice(e,o).replace(et,ot),e=o+n.length,i?u+="'+\n((__t=("+i+"))==null?'':_.escape(__t))+\n'":r?u+="'+\n((__t=("+r+"))==null?'':__t)+\n'":f&&(u+="';\n"+f+"\n__p+='"),n});u+="';\n";i.variable||(u="with(obj||{}){\n"+u+"}\n");u="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+u+"return __p;\n";try{o=new Function(i.variable||"obj","_",u)}catch(s){s.source=u;throw s;}return f=function(t){return o.call(this,t,n)},h=i.variable||"obj",f.source="function("+h+"){\n"+u+"}",f};n.chain=function(t){var i=n(t);return i._chain=!0,i};h=function(t){return this._chain?n(t).chain():t};n.mixin=function(t){n.each(n.functions(t),function(i){var r=n[i]=t[i];n.prototype[i]=function(){var t=[this._wrapped];return w.apply(t,arguments),h.call(this,r.apply(n,t))}})};n.mixin(n);n.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var i=r[t];n.prototype[t]=function(){var n=this._wrapped;return i.apply(n,arguments),(t==="shift"||t==="splice")&&n.length===0&&delete n[0],h.call(this,n)}});n.each(["concat","join","slice"],function(t){var i=r[t];n.prototype[t]=function(){return h.call(this,i.apply(this._wrapped,arguments))}});n.prototype.value=function(){return this._wrapped};typeof define=="function"&&define.amd&&define("underscore",[],function(){return n})}.call(this);window.matchMedia||(window.matchMedia=function(){"use strict";var t=window.styleMedia||window.media;if(!t){var n=document.createElement("style"),i=document.getElementsByTagName("script")[0],r=null;n.type="text/css";n.id="matchmediajs-test";i.parentNode.insertBefore(n,i);r="getComputedStyle"in window&&window.getComputedStyle(n,null)||n.currentStyle;t={matchMedium:function(t){var i="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return n.styleSheet?n.styleSheet.cssText=i:n.textContent=i,r.width==="1px"}}}return function(n){return{matches:t.matchMedium(n||"all"),media:n||"all"}}}()),function(){var n=this;this.eWAY=function(){function n(){}return n.version=1,n.path="JSONP/v3/process",n.processing=!1,n.defaults={autoRedirect:!0,onComplete:null,on3DSecure:null,onRedirecting:function(){return!0},onError:null,onTimeout:null,timeout:9e4},n.isValidCvn=function(t){return t=n.trim(t),/^\d+$/.test(t)&&t.length>=3&&t.length<=4},n.isValidCardNumber=function(t){return t=(t+"").replace(/\s+|-/g,""),t.length>=10&&t.length<=19&&n.isValidLuhn(t)},n.process=function(t,i){var f,c="&",v=(new Date).getTime(),l=0,s,a,h,u,e,r,o;if(!n.processing){for(n.processing=!0,h=n.parseUri(t.action),u="eWAY"+(++v).toString(36),i=n.merge(n.defaults,i),window[u]=function(n){if(n.Is3DSecure&&i.on3DSecure!=null&&i.on3DSecure(),i.autoRedirect&&i.onRedirecting!=null&&i.onRedirecting(n.RedirectUrl)&&(window.location=n.RedirectUrl),i.onComplete!=null)i.onComplete(n);try{delete window[u]}catch(t){}window[u]=void 0},e=0;e<t.elements.length;e++)f=t.elements[e],/EWAY_.*/.test(f.name)&&(c+=n.encode(f.name)+"="+n.encode(n.trim(f.value))+"&");s=document.head||document.getElementsByTagName("head")[0]||document.documentElement;a=h.protocol+"://"+h.authority+"/"+n.path+"?ewayjsonp="+u+c;r=document.createElement("script");r.setAttribute("type","text/javascript");r.setAttribute("src",a);r.async=!0;r.onload=function(){o()};r.onerror=function(n){if(i.onError!=null)i.onError(n);o()};s.appendChild(r);l=setTimeout(function(){i.onTimeout!=null&&i.onTimeout();o()},i.timeout);o=function(){try{n.processing=!1;s.removeChild(r)}catch(t){}clearTimeout(l);u in window&&(window[u]=function(){})}}},n}(),function(){this.eWAY.merge=function(n,t){var r={};for(var i in n)r[i]=n[i];for(i in t)r[i]=t[i];return r};this.eWAY.encode=function(n){return encodeURIComponent(n)};this.eWAY.trim=function(n){return(n+"").replace(/^\s+|\s+$/g,"")};this.eWAY.parseUri=function(n){for(var u=["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"],r=new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(n),t={},i=0;i<10;i++)t[u[i]]=r[i]?r[i]:"";return t.directoryPath.length>0&&(t.directoryPath=t.directoryPath.replace(/\/?$/,"/")),t};this.eWAY.isValidLuhn=function(n){var t,i,r,u,n,f;for(r=!0,u=0,i=(n+"").split("").reverse(),n=0,f=i.length;n<f;n++)t=i[n],t=parseInt(t,10),(r=!r)&&(t*=2),t>9&&(t-=9),u+=t;return u%10==0}}()}();window.Swipe=function(n,t){if(!n)return null;var i=this;this.options=t||{};this.index=this.options.startSlide||0;this.speed=this.options.speed||300;this.callback=this.options.callback||function(){};this.delay=this.options.auto||0;this.container=n;this.element=this.container.children[0];this.container.style.overflow="hidden";this.element.style.listStyle="none";this.setup();this.begin();this.element.addEventListener&&(this.element.addEventListener("touchstart",this,!1),this.element.addEventListener("touchmove",this,!1),this.element.addEventListener("touchend",this,!1),this.element.addEventListener("webkitTransitionEnd",this,!1),this.element.addEventListener("msTransitionEnd",this,!1),this.element.addEventListener("oTransitionEnd",this,!1),this.element.addEventListener("transitionend",this,!1),window.addEventListener("resize",this,!1))};Swipe.prototype={setup:function(){var t,n;if((this.slides=this.element.children,this.length=this.slides.length,this.length<2)||(this.width=this.container.getBoundingClientRect().width,!this.width))return null;for(this.container.style.visibility="hidden",this.element.style.width=this.slides.length*this.width+"px",t=this.slides.length;t--;)n=this.slides[t],n.style.width=this.width+"px",n.style.display="table-cell",n.style.verticalAlign="top";this.slide(this.index,0);this.container.style.visibility="visible"},slide:function(n,t){if(this.element){var i=this.element.style;t==undefined&&(t=this.speed);i.webkitTransitionDuration=i.MozTransitionDuration=i.msTransitionDuration=i.OTransitionDuration=i.transitionDuration=t+"ms";this.width=Math.round(this.width);i.MozTransform=i.webkitTransform="translate3d("+-(n*this.width)+"px,0,0)";i.msTransform=i.OTransform="translateX("+-(n*this.width)+"px)";this.index=n}},getPos:function(){return this.index},prev:function(n){this.delay=n||0;clearTimeout(this.interval);this.index&&this.slide(this.index-1,this.speed)},next:function(n){this.delay=n||0;clearTimeout(this.interval);this.index<this.length-1&&this.slide(this.index+1,this.speed)},begin:function(){var n=this;this.interval=this.delay?setTimeout(function(){n.next(n.delay)},this.delay):0},stop:function(){this.delay=0;clearTimeout(this.interval)},resume:function(){this.delay=this.options.auto||0;this.begin()},handleEvent:function(n){switch(n.type){case"touchstart":this.onTouchStart(n);break;case"touchmove":this.onTouchMove(n);break;case"touchend":this.onTouchEnd(n);break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"transitionend":this.transitionEnd(n);break;case"resize":this.setup()}},transitionEnd:function(n){this.delay&&this.begin();this.callback(n,this.index,this.slides[this.index])},onTouchStart:function(n){this.start={pageX:n.touches[0].pageX,pageY:n.touches[0].pageY,time:Number(new Date)};this.isScrolling=undefined;this.deltaX=0;this.element.style.MozTransitionDuration=this.element.style.webkitTransitionDuration=0;this.previewDone=!0},onTouchMove:function(n){n.touches.length>1||n.scale&&n.scale!==1||(this.deltaX=n.touches[0].pageX-this.start.pageX,typeof this.isScrolling=="undefined"&&(this.isScrolling=!!(this.isScrolling||Math.abs(this.deltaX)<Math.abs(n.touches[0].pageY-this.start.pageY))),this.isScrolling||(n.preventDefault(),clearTimeout(this.interval),this.deltaX=this.deltaX/(!this.index&&this.deltaX>0||this.index==this.length-1&&this.deltaX<0?Math.abs(this.deltaX)/this.width+1:1),this.element.style.MozTransform=this.element.style.webkitTransform="translate3d("+(this.deltaX-this.index*this.width)+"px,0,0)"))},onTouchEnd:function(){var n=Number(new Date)-this.start.time<250&&Math.abs(this.deltaX)>20||Math.abs(this.deltaX)>this.width/2,t=!this.index&&this.deltaX>0||this.index==this.length-1&&this.deltaX<0;this.isScrolling||this.slide(this.index+(n&&!t?this.deltaX<0?1:-1:0),this.speed)}};categoriesHelper={addGiftIdeas:function(n){for(var t in n)n[t].subs&&n[t].subs.push({name:"Gift Ideas",id:n[t].id,route:n[t].route+"/gift-ideas/",fixed:"GiftIdea"});return n}},function(){"use strict";$("html").css("overflow-x","hidden");window.initMobileSwipe=function(){var t=document.getElementById("sliderMobile"),n=new Swipe(t,{callback:function(t,i){var r=$("#sliderMobile .carousel-indicators li"),u;(r.removeClass("active"),u=r[i],$(u).addClass("active"),n.previewDone)||(i<n.slides.length-1?setTimeout(function(){n.previewDone||n.next()},1e3):setTimeout(function(){n.previewDone||(n.slide(0,300),n.previewDone=!0)},1e3))}});setTimeout(function(){$(t).find("img").each(function(){$(this).show()});n.next()},1e3)}}(),function(){"use strict";function i(n){var t=$("#imgIndicators li");t.removeClass("active");$(t[n]).addClass("active")}var f=!1,n,t,r,u;$(window).ready(function(){});r=function(){var t=document.getElementById("sliderMobileGallery");$(".sm-swipe-wrap").on("click",function(){window.scrollTo(0)});n=new Swipe(t,{callback:function(n,t){i(t)}})};u=function(){var n=document.getElementById("sliderMobileGallery2");$(".sm-swipe-wrap").on("click",function(){window.scrollTo(0)});t=new Swipe(n,{callback:function(n,t){updateSlideHistory(t)}});f&&updateSlider(t)};window.WS=window.WS||{};window.WS.Products={mobileGallery:function(f,e,o,s,h){function k(t){var f,r,i,e,u;if(t.length){$(".owl-buttons",c).remove();$(".swipe",c).remove();t.length>1&&$('<div class="owl-buttons"><div class="owl-prev"><div><\/div><\/div><div class="owl-next"><div><\/div><\/div><\/div>').appendTo(c);f=$('<div id="slider" class="swipe"><\/div>');f.appendTo(c);r=$('<div class="swipe-wrap"><\/div>');r.appendTo(f);i=[];i.push($(t[n.index]));t.each(function(t,r){t!==n.index&&i.push($(r))});i.forEach(function(n,t){var u=$('<div id="zoom'+t+'" class="zoom-wrap"><\/div>'),i=n,f=i.clone();f.show();f.appendTo(u);i.context&&i.context.alt!=="Video"&&u.appendTo(r)});r.children().each(function(){var n=new RTP.PinchZoom($(this),{})});e=-1;u=new Swipe(document.getElementById("slider"),{speed:400,startSlide:0,callback:function(n,t){e===t&&t===i.length-1&&u.slide(0,300);e=t}});$("#zoom .owl-prev").off("click.ws").on("click.ws",function(n){n.stopPropagation();u.prev()});$("#zoom .owl-next").off("click.ws").on("click.ws",function(n){n.stopPropagation();u.next()})}}function l(){$(".vid").each(function(){$(this).get(0).pause()})}function d(){r();u()}var a=$(f),c=$(e),w=$(o),y=$(s),b=$(h),v,p;w.click(function(){y.show();c.hide()});v=a.find(".thumbnails").find("img");$("div.zoomer",a).click(function(){y.hide();c.show();b.show().delay(4e3).fadeOut(1e3);var n=a.find(".large").find("img");k(n)});v.first().addClass("active");v.each(function(t,r){var u=$(r);u.off("click.ws mouseenter.ws").on("click.ws mouseenter.ws",function(){l();i(t);n.slide(t,0)})});$(".owl-prev").off("click.ws").on("click.ws",function(t){t.stopPropagation();n.prev();l()});$(".owl-next").off("click.ws").on("click.ws",function(t){t.stopPropagation();n.next();l()});$(".owl-prev-2").off("click.ws").on("click.ws",function(n){n.stopPropagation();t.prev()});$(".owl-next-2").off("click.ws").on("click.ws",function(n){n.stopPropagation();t.next()});$(".owl-prev-3").off("click.ws").on("click.ws",function(n){n.stopPropagation();t.prev()});$(".owl-next-3").off("click.ws").on("click.ws",function(n){n.stopPropagation();t.next()});$(".owl-prev-desktop").off("click.ws").on("click.ws",function(n){n.stopPropagation()});$(".owl-next-desktop").off("click.ws").on("click.ws",function(n){n.stopPropagation()});$(".owl-prev-desktop-2").off("click.ws").on("click.ws",function(n){n.stopPropagation()});$(".owl-next-desktop-2").off("click.ws").on("click.ws",function(n){n.stopPropagation()});p=$("#imgIndicators li");p.each(function(t,r){var u=$(r);u.off("click.ws").on("click.ws",function(){l();i(t);n.slide(t,0)})});setTimeout(function(){d()},0)}}}(),function(){window.WS||(window.WS={});WS.Payment={beautifyNumber:function(n){return n=n.substring(0,16),n.replace(/(\d\d\d\d)/g,"$1 - ").replace(/(\d\d\d\d) - (\d\d\d\d) - (\d\d\d\d) - (\d\d\d\d).*/g,"$1 - $2 - $3 - $4")},formatCreditCard:function(n){$(n).payment("formatCardNumber")},ccvPopup:function(n,t){var i=function(n){var i,r,u;return t=$(t),i=WS.Utilities.randomString(),t.popover({animation:!0,html:!0,placement:n,trigger:"manual",title:'CVC / CVV number  <a href="#" class="close" data-id="'+i+'">&times;<\/a>',content:'Your Card ID (CVC or CVV) is the last 3 or 4 digits on the back of your credit card. <img id="popup-ccv-image" src="//media.exciteonlineservices.com.au/site-assets/shared/credit-card-ccv.png">'}),t.popover("show"),window.matchMedia("all and (max-width: 768px)").matches&&(r=$(window).height(),u=$(document).width(),$(".popover").css({position:"fixed",left:u/2-140,top:r/2-200})),t.attr("data-id",i)};return $(n).off("click.ws").on("click.ws",function(n){n.preventDefault();var t="left",r=/(iPad)/g.test(navigator.userAgent);return(r||$(window).width()<752)&&(t="bottom"),i(t)})},validateCreditCard:function(n,t){var r=function(){var t=$(n),r=t.val(),u=WS.Utilities.randomString(),f="left",e=/(iPad)/g.test(navigator.userAgent);return((e||$(window).width()<752)&&(f="bottom"),r.length===0)?i():$.payment.validateCardNumber(r)?i():(t.popover({animation:!0,html:!0,placement:f,trigger:"manual",title:'Invalid number <a href="#" class="close" data-id="'+u+'">&times;<\/a>',content:"Please check your credit card number again."}),t.popover("show"),t.attr("data-id",u))},i=function(){return $(n).popover("destroy")};$(n).off("blur.ws").on("blur.ws",function(){return r()});$(n).off("focus.ws").on("focus.ws",function(){return i()});return $(t).off("change.ws").on("change.ws",function(){if($(n).val().length>0)return r()})}}}(),function(){window.WS||(window.WS={});WS.Utilities={evenHeight:function(n){var t;return t=$.map($(n),function(n){return $(n).css("min-height",0),parseInt($(n).height())}),t.length===1?$(n).css("min-height","auto"):$(n).css("min-height",Math.max.apply(Math,t)+20)},loadingScreen:function(n,t){var i,r;if(n=n!=null?n:"show",n==="show"){if(i=$('<div class="loading-overlay"><span><\/span><\/div>'),r=function(){var n,r;return n=$(t),r=n.offset(),i.css({height:n.outerHeight(),left:r.left,position:"absolute",top:r.top,width:n.outerWidth()})},$("body").append(i),t!=null){r();$(window).on("resize",function(){return r()})}return i.fadeIn(50)}if(n==="hide")return $(".loading-overlay").fadeOut(50,function(){return $(this).remove()})},getTextSelection:function(n){var t,r,e,f,s,o,i,u;return t=$(n)[0],i=0,r=0,typeof t.selectionStart=="number"&&typeof t.selectionEnd=="number"?(i=t.selectionStart,r=t.selectionEnd):(o=document.selection.createRange(),o&&o.parentElement()===t&&(f=t.value.length,s=t.value.replace(/\r\n/g,"\n"),u=t.createTextRange(),u.moveToBookmark(o.getBookmark()),e=t.createTextRange(),e.collapse(!1),u.compareEndPoints("StartToEnd",e)>-1?i=r=f:(i=-u.moveStart("character",-f),i+=s.slice(0,i).split("\n").length-1,r=u.compareEndPoints("EndToEnd",e)>-1?f:-u.moveEnd("character",-f)+(s.slice(0,r).split("\n").length-1)))),{start:i,end:r}},randomString:function(n){var t,i,r,u;for(t="0123456789abcdefghiklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r="",n=n||10,i=0;i<n;)u=Math.floor(Math.random()*t.length),r+=t.substring(u,u+1),i++;return r}}}.call(this),function(){$(document).on("ready ajaxComplete",function(){WS.Utilities.evenHeight(".checkout #details, .checkout #payment");return $(document).on("click.ws",".popover .popover-title .close",function(n){var t;return n.preventDefault(),t=$(this).attr("data-id"),$("[data-id="+t+"]").popover("destroy")})});$(window).on("resize",function(){return WS.Utilities.evenHeight("#footer-content > .col:visible"),WS.Utilities.evenHeight(".checkout #details, .checkout #payment")})}.call(this);var toggleMobileMenu_scrollPos,toggleMobileMenu=function(n){var r=$("#mobile-menu"),f,e,t,c,i;if(r.is(":visible")||(r.css("left",768),r.show()),parseInt(r.css("left"),10)==0||n==="close")$(".body-overlay").hide(),$("#mobile-menu").css("left",768),$("#mobile-menu-btn").removeClass("active"),$("#mobile-menu-btn img:first-child").removeClass("hide"),$("#mobile-menu-btn img:last-child").addClass("hide"),$("#menuMobile").addClass("fixed"),$(".mobile-spacer").removeClass("hide"),$(".menu-wrapper").removeClass("scroll-limit"),f=$(".menu-wrapper").data("orig-height"),e=$(".menu-wrapper").data("orig-overflow"),$(".menu-wrapper").css("height",f),$(".menu-wrapper").css("overflow",e),toggleMobileMenu_scrollPos&&$(window).scrollTop(toggleMobileMenu_scrollPos);else{if(n==="close")return;toggleMobileMenu_scrollPos=$(window).scrollTop();$(".body-overlay").show();r.css("left",$(window).width());$("#mobile-menu").css("left",0);$("#mobile-menu-btn").addClass("active");$("#mobile-menu-btn img:first-child").addClass("hide");$("#mobile-menu-btn img:last-child").removeClass("hide");$("#menuMobile").removeClass("fixed");$(".mobile-spacer").addClass("hide");var o=$("#mobile-menu").outerHeight(!0),s=$("#menuMobile").outerHeight(!0),h=s+o,u=$(window).height();u<h?($(".body-overlay").height(o),t=$(".menu-wrapper").addClass("scroll-limit"),t.data("orig-height",$(t).css("height")),t.data("orig-overflow",$(t).css("overflow")),t.css({height:h,overflow:"hidden"})):(c=$("html").height()>$(window).height(),c&&++u,$(".body-overlay").height(u-s),i=$(".menu-wrapper").addClass("scroll-limit"),i.data("orig-height",$(i).css("height")),i.data("orig-overflow",$(i).css("overflow")),i.css({height:u,overflow:"hidden"}));$(window).scrollTop(0)}},mobileMenu=function(n){$(n).click(function(n){n.preventDefault();toggleMobileMenu()});$("#mobile-menu-inner a").click(function(){toggleMobileMenu()})},closeMobileMenu=function(){toggleMobileMenu("close")};$(document).ready(function(){"use strict";mobileMenu("#mobile-menu-btn");WS.Payment.formatCreditCard(".checkout #ccNumber");WS.Payment.validateCreditCard(".checkout #ccNumber",".checkout #ccType");WS.Payment.ccvPopup(".checkout #ccv span",".checkout #ccv input");WS.Products.mobileGallery("#mobileGallery","#zoom","#zoomClose","#global","#fade");window.initMobileSwipe();window.addEventListener("orientationchange",function(){closeMobileMenu()});$("#infoCarousel").carousel({interval:2e3});setTimeout(function(){var n=4e3;window.location.href&&window.location.href.indexOf("wholesale")!==-1&&(n=4e3);$("#slideshowDesktopCarousel").carousel({interval:n});$("#messageCarousel").carousel({interval:1100});$("#messageCarousel2").carousel({interval:1100})},0);window.initSizeChartPinchZoom&&window.initSizeChartPinchZoom(),function(){angular.module("exciteApp").config(function(n){n.debugEnabled(!0)}).run(function(n){if(n.log("angular started"),window.matchMedia("all and (max-width: 640px)").matches){$(".del-mobile").remove();var t=$(".cat-mobile .host-view");t.length&&($(".cat-mobile").parent().prepend(t),$(".cat-mobile").remove())}})}()});ibsa=function(){"use strict";function n(n){for(var i=this,r=n.split("."),t=0,u=r.length;t<u;t++)typeof i[r[t]]=="undefined"&&(i[r[t]]={}),i=i[r[t]];return i}return{namespace:n}}(),function(){"use strict";var n,t,i,r;n=function(n){function t(){}return n?(t.prototype=n,new t):{}};Object.create=Object.create||n;t=function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])};i=function(n,t){for(var i=n+"";i.length<t;)i="0"+i;return i};r=function(n,t){var i=typeof history.pushState!="undefined";t=t||"#nb";i?history.pushState(null,"",t):location.hash=t;n.onhashchange=function(){i?history.pushState(null,"",t):location.hash=t}};ibsa.extendObject=t;ibsa.pad=i;ibsa.noBack=r}(),function(){"use strict";var n=function(n){return n.replace(/^\s+|\s+$/g,"")},t=function(t,i){var r=t.unescape(t.document.cookie).split(/[;,]/);return r.filter(function(t){var r=t.split("="),u=r[0];return n(u)===i})[0]},i=function(i,r){var e=t(i,r),u,f;return e&&(u=e.split("="),u.length>1&&(f=u[1],f))?n(f):undefined},r=function(n,t){var r=i(n,t);return r&&n.parseInt(r)};ibsa.getCookieValueInt=r}();angular.module("exciteApp").filter("quantityRange",function(){"use strict";return function(n,t,i){if(t==0)return n.push(0),n;var r,u;for(t=parseInt(t,10),i=i&&parseInt(i,10),u=Math.min(t,10),i&&(u=Math.max(u,i)),r=1;r<=u;r++)n.push(r);return n}});angular.module("exciteApp").filter("quantityRangeWholesale",function(){"use strict";return function(n,t,i){n.push(0);var r,u,t=parseInt(t,10);for(i=i&&parseInt(i,10),u=t,i&&(u=Math.max(u,i)),r=1;r<=u;r++)n.push(r);return n}});angular.module("exciteApp").directive("ngBusyOverlay",["overlay",function(n){"use strict";return{restrict:"A",template:'<div class="busy-overlay" ng-if="overlay.show"><div class="overlay-text" ng-if="overlay.showSpinner"><img src="//m9.exciteonlineservices.com.au/site-assets/shared/ajax_loader_pink.gif"><\/img><\/div><\/div>',link:function(t){t.overlay=n}}}]);angular.module("exciteApp").directive("bsSuperheader",["$parse","$compile","$timeout","filters","apiQuery",function(n,t,i,r,u){"use strict";var f,e,s,o;return f=function(n,t,i){var r=['<div class="dropdown-menu arrow_box'+(i?" pull-right":"")+'" role="menu" aria-labelledby="drop1">',"<\/div>"],u=['<div class="sub-menus clearfix">',"<\/div>"],f=['<div class="footer">',"<\/div>"];return s(u,n,t),r.splice(1,0,u.join("")),f.splice(1,0,e(n,null,"View All ",t)),r.splice(r.length-1,0,f.join("")),r},e=function(n,t,i,r){var f=t||n,u=(i||"")+f.name;return r?n.name=="Brands"&&t?'<a ng-href="/'+f.route+"/"+t.id+'">'+u+"<\/a>":'<a ng-href="/'+f.route+'">'+u+"<\/a>":n.name==="Brands"&&t&&t.name?"<a ng-click=\"changeBrand($event,'"+t.name+"','"+t.id+"')\" >"+u+"<\/a>":n.name==="Brands"&&i==="View All "?'<a ng-click="changeBrand($event,null)" >'+u+"<\/a>":n.group?t&&t.route?'<a href="\\'+t.route+" \" ng-click=\"changeCategory('','','"+f.group+f.fixed+"', true)\" >"+u+"<\/a>":'<a href="\\'+n.route+" \" ng-click=\"changeCategory('','','"+f.group+f.fixed+"', true)\" >"+u+"<\/a>":t&&t.route?'<a href="\\'+t.route+' " ng-click="changeCategory(\''+(t&&t.id||"")+"','"+n.id+"','', true)\" >"+u+"<\/a>":'<a href="\\'+n.route+' " ng-click="changeCategory(\''+(t&&t.id||"")+"','"+n.id+"','', true)\" >"+u+"<\/a>"},s=function(n,t,i){var r=t.group?t.subs:t.subs.filter(function(n){return!n.fixed&&!n.isDefault}),f=Math.ceil(r.length/2),s=r.slice(0,f),e=r.slice(f),u=o(s,t,i);n.splice(1,0,u);e.length&&(u=o(e,t,i),n.splice(2,0,u))},o=function(n,t,i){var r=['<ul class="unstyled">',"<\/ul>"],u;return angular.forEach(n,function(n,f){var o=!1,s;window.location.pathname.length>0&&(s=window.location.pathname.substring(1),s==n.route&&(o=!0));u='<li class="'+(o?"active":"")+'" data-route="'+n.route+'">'+e(t,n,null,i)+"<\/li>";r.splice(f+1,0,u)}),r.join("")},{restrict:"A",scope:!0,link:function(i,e,o){var v=n(o.rootCategory),s=v(i),l=o.alignRight==="true",a=!r.isInitialized(),h,c;if(s)if(s.fixed==="Brand")u.getWholesaleBrands().success(function(n){angular.forEach(n.brands,function(n){var t=n.brandName.replace(/['`��"",\\&%:]|(&\s)|(\s&)/g,""),i;t=t.replace(/[_.\s-/]/g,"-");i={fixed:"Brand",group:n.brandName+"Group",id:n.id.substring(n.id.indexOf("/")+1),name:n.brandName,route:"brand/"+t};s.subs.push(i)});h=f(s,a,l);c=angular.element(h.join(""));c.insertAfter(e);t(e.next())(i)});else{if(!s||!s.subs||!s.subs.length)return;if(s.noSuperheader)return;h=f(s,a,l);c=angular.element(h.join(""));c.insertAfter(e);t(e.next())(i)}}}}]);angular.module("exciteApp").directive("field",["$http","$templateCache","$interpolate","$compile",function(n,t,i,r){"use strict";return{restrict:"A",priority:100,terminal:!0,compile:function(u){function f(n){var t=n.find("label");return t[0]&&t.html()}function e(n){var t={},r=n.find("span.validator");return angular.forEach(r,function(n){n=angular.element(n);t[n.attr("key")]=i(n.text())}),t}var o=e(u),s=f(u),h=u.find(".help-block");return u.html(""),function(i,u,f){function c(i){return n.get(i,{cache:t}).then(function(n){return angular.element(n.data)},function(){throw new Error("Template not found: "+i);})}function e(n){angular.forEach(f.$attr,function(t){if(t!=="field"&&t!=="data-ng-cloak"){var i=u.attr(t);n.attr(t,i)}})}var l=f.template||f.field+".html";c(l).then(function(n){var c=n.find(f.field),l,t,a;f.field==="input"?(l=angular.element(document.createElement("input")),angular.forEach(c[0].attributes,function(n){l.attr(n.name,n.value)}),e(l),c.replaceWith(l),c=l):e(c);t=i.$new();t.$validationMessages=angular.copy(o);t.$fieldId=f.ngModel.replace(".","_").toLowerCase()+"_"+t.$id;t.$watch("$field.$error",function(n){t.$fieldErrors=[];angular.forEach(n,function(n,i){n&&t.$fieldErrors.push(i)})},!0);c.attr("name",t.$fieldId);c.attr("id",t.$fieldId);c.after(h);a=n.find("label");a.attr("for",t.$fieldId);a.html(s);u.after(n);u.remove();r(n)(t);t.$field=c.controller("ngModel")})}}}}]);angular.module("exciteApp").directive("footerSpiel",["$sce","filters",function(n,t){"use strict";return{restrict:"A",scope:{},template:'<div class="footer-spiel hide-mobile" ng-if="show"><div class="container"><div class="left" ng-bind-html="leftColumn"><\/div><div class="right hide-mobile" ng-bind-html="rightColumn"><\/div><\/div><\/div>',link:function(n){function i(){n.leftColumn="";n.rightColumn=""}(n.show=t.isInitialized(),n.show)&&(n.filtersModel=t.model,i(t.model.rootCategoryFilter.selectedOption),n.$watch("filtersModel.rootCategoryFilter.selectedOption",function(n){i(n)}))}}}]);angular.module("exciteApp").directive("extraPostage",[function(){"use strict";return{restrict:"A",scope:{extraPostage:"="},template:'<div class="extra-postage" ng-show="extraPostage > 0">Please Note: Due to size &amp; weight of this product, an extra postage fee of <span ws-amount="extraPostage"><\/span> will apply to this product.<\/div>'}}]);angular.module("exciteApp").directive("requestVerificationToken",["$http",function(n){"use strict";return function(t,i,r){n.defaults.headers.common.RequestVerificationToken=r.requestVerificationToken}}]);angular.module("exciteApp").directive("optionsDisabled",["$parse",function(n){"use strict";var t=function(n,t,i,r,u){$("option[value!='']",i).each(function(i){var f={};f[t]=r[i];$(this).attr("disabled",u(n,f))})};return{priority:0,require:"ngModel",link:function(i,r,u){var f=u.optionsDisabled.match(/^\s*(.+)\s+for\s+(.+)\s+in\s+(.+)?\s*/),e=n(f[1]),o=f[2],s=f[3];i.$watch(s,function(n){n&&t(i,o,r,n,e)},!0)}}}]);angular.module("exciteApp").directive("interceptor",["$log","$window","$timeout","browserHistory",function(n,t,i,r){"use strict";return{restrict:"A",link:function(u,f,e){var o=e.interceptor.indexOf("saveScrollTop")>=0,s=e.interceptor.indexOf("backLink")>=0;f.click(function(){var u;o&&(u=$(t).scrollTop(),n.debug("saving scrollTop "+u),r.updateHistoryState({scrollTop:u}));s&&(document.location.href.indexOf("transfertoau")>0?document.location.href="/":document.referrer.indexOf(window.location.host)!==-1?i(function(){t.history.go(-1)}):document.location.href="/")})}}}]);angular.module("exciteApp").directive("dropdownMenu",["$log",function(){"use strict";return{restrict:"A",link:function(n,t){t.mouseenter(function(t){n.$apply(function(){var n=$(t.currentTarget);n.parent().children().removeClass("show-dropdown");n.addClass("show-dropdown")})});t.mouseleave(function(t){n.$apply(function(){var n=$(t.currentTarget);n.removeClass("show-dropdown")})});n.$on("productsUpdated",function(){$("#main-nav").children().removeClass("show-dropdown")})}}}]);angular.module("exciteApp").directive("currentTime",["$log","$timeout","apiQuery",function(n,t,i){"use strict";return{restrict:"A",scope:{},template:'<span ng-bind="currentTime"><\/span>',link:function(n){var r=function(){i.getCustomerServiceCurrentTime().success(function(t){n.currentTime=t.currentTime})["finally"](function(){t(function(){r()},6e4)})};r()}}}]);angular.module("exciteApp").directive("countrySelector",["$window","siteInfo",function(n,t){"use strict";var i=_.map(['<div ng-if="model.visible && model.desktop">','  <a ng-class="model.selectedCountry.flag">',"    {{model.selectedCountry.currency}}","  <\/a>",'  <div class="country-dropdown"','       ng-show="model.showDropdown">','    <div class="title">','      <span ng-class="model.selectedCountry.flag">',"        {{model.selectedCountry.country}}","      <\/span>","    <\/div>",'    <div class="change">',"      <div>Change currency:<\/div>",'      <select class="select"','              ng-model="model.selectedCountry"','              ng-options="option.country for option in model.countries"','              ng-change="changeCountry()">',"      <\/select>","      <div>Other country sites<\/div>",'      <ul class="unstyled">','        <li ng-repeat="country in model.countries">','          <a ng-class="country.flag"','             ng-href="{{country.link}}"','             ng-bind="country.country">',"          <\/a>","        <\/li>","      <\/ul>","    <\/div>","  <\/div>","<\/div>",'<div ng-if="model.visible && !model.desktop">','  <div class="title">Change currency<\/div>','  <select class="select"','          ng-model="model.selectedCountry"','          ng-options="option.currency for option in model.countries"','          ng-change="changeCountry()">',"  <\/select>",'  <div class="title">Other country sites<\/div>','  <select class="select"','          ng-model="model.selectedCountry"','          ng-options="option.country for option in model.countries"','          ng-change="changeCountry()">',"  <\/select>","<\/div>"],function(n){return n.trim()}).join("");return{restrict:"A",scope:{},template:i,link:function(i,r,u){var e=t.siteDomain.toLowerCase().replace(".com.au","").replace(".co.nz",""),o=t.siteId===56?!0:!1,s=t.siteId===3?!0:!1,f=i.model={visible:!t.isPremiumAffiliate&&!o&&!s,desktop:u.countrySelector==="desktop",showDropdown:!1,countries:[{currency:"$ AUD",flag:"au",country:"Australia",link:"//"+e+".com.au"+n.location.search},{currency:"$ NZD",flag:"nz",country:"New Zealand",link:"//"+e+".co.nz"+n.location.search}],selectedCountry:undefined};f.visible&&(r.addClass("country-selector"),f.selectedCountry=t.currencyCode==="AUD"?f.countries[0]:f.countries[1],$("body").click(function(n){$(n.target).closest(".country-selector").length===0&&i.$apply(function(){f.showDropdown=!1})}),$(r).click(function(n){i.$apply(function(){f.showDropdown?$(n.target).hasClass("select")||(f.showDropdown=!1):f.showDropdown=!0})}),i.changeCountry=function(){n.location=f.selectedCountry.link})}}}]);angular.module("exciteApp").directive("wsBanners",["apiQuery",function(){"use strict";var n=_.map(['<div class="banner" ng-repeat="banner in model.banners">','    <a ng-href="{{banner.relativeLink}}" target="{{banner.target}}">','        <img ng-src="{{banner.image}}" rel="{{banner.rel}}">',"    <\/a>","<\/div>"],function(n){return n.trim()}).join("");return{restrict:"A",scope:{},template:n,link:function(n,t){var r=n.model={banners:undefined},i;if($(".product-gallery").length>0){$(".hide-productpage").hide();return}i=$(t).data("banners").banners;_.each(i,function(n){n.target="";(n.relativeLink&&n.relativeLink.indexOf("http")==0||n.relativeLink.indexOf("https")==0)&&(n.target="_blank")});r.banners=_.shuffle(i)}}}]);angular.module("exciteApp").directive("wsCategoryBanner",["apiQuery","$window","$rootScope","$timeout",function(n,t,i,r){"use strict";var u=_.map(["<style ng-if=\"banner.requiresdisplay && !banner.doNotDisplay\">#main #CategoryBanner {background-size: 100%;margin-top: -3px;margin-bottom: -5px;z-index: 6000;}@media all and (min-width: 993px), all and (max-width: 992px) {#main #CategoryBanner { background-image: url('{{banner.desktopBanner}}');background-repeat: no-repeat;margin-left: -2px;background-size: contain;width: 100%;height: 0;padding-top: 15%;margin-top: 5px;}            } @media all and (min-width: 481px) and (max-width: 640px) {#main #CategoryBanner {   background-image: url('{{banner.tabletBanner}}');background-repeat: no-repeat;margin-left: -2px;background-size: contain;width: 100%;height: 0; padding-top: 15%; }} @media all and (min-width: 321px) and (max-width: 480px), all and (max-width: 320px) { #main #CategoryBanner { background-image: url('{{banner.mobileBanner}}');background-repeat: no-repeat;margin-left: -2px;background-size: contain;width: 100%;height: 0;padding-top: 56%;}}<\/style> <style ng-if=\"banner.doNotDisplay\">#main #CategoryBanner {display: none !important}<\/style>"],function(n){return n.trim()}).join("");return{restrict:"E",scope:!0,template:u,link:function(u){var f;$(t).on("pageshow",function(){console.log("page show banner check");f()});window.onpopstate=function(){console.log("pop state banner check");f()};f=function(t){r(function(){if(u.lastCheck){var i=Math.abs(new Date-u.lastCheck);if(i<1e3)return}u.lastCheck=new Date;n.getBanner(t).success(function(n){if(n.requiresdisplay=!1,n.doNotDisplay=!1,$("#CategoryBanner").length>0){var t=$("#CategoryBanner").data("desktop-banner"),i=$("#CategoryBanner").data("mobile-banner"),r=$("#CategoryBanner").data("tablet-banner");n.redirectUrl=n.Url&&n.Url.length>0?n.Url:"#";n.mobileBanner&&n.mobileBanner.length>0&&n.baseUrl&&n.baseUrl.length>0&&(n.mobileBanner=n.baseUrl+n.mobileBanner);n.desktopBanner&&n.desktopBanner.length>0&&n.baseUrl&&n.baseUrl.length>0&&(n.desktopBanner=n.baseUrl+n.desktopBanner);n.tabletBanner&&n.tabletBanner.length>0&&n.baseUrl&&n.baseUrl.length>0&&(n.tabletBanner=n.baseUrl+n.tabletBanner);n.requiresdisplay=!1;(t!=n.desktopBanner||i!=n.mobileBanner||r!=n.tabletBanner)&&(n.requiresdisplay=!0)}n.requiresdisplay;n.desktopBanner&&n.mobileBanner&&n.tabletBanner||(n.doNotDisplay=!0);u.banner=n;$("#CategoryBanner").css("visibility","visible")}).error(function(){})})};console.log("normal banner check");f();i.$on("productsFiltered",function(){console.log("filter changed banner check");f()});u.$watch("filtersModel.rootCategoryFilter.selectedOption",function(){console.log("filter changed selected option banner check");f()})}}}]);angular.module("exciteApp").directive("onFinishRender",["$timeout","$rootScope",function(n,t){return{restrict:"A",link:function(n,i,r){n.$last===!0&&n.$evalAsync(function(){t.$emit(r.onFinishRender)})}}}]),function(){"use strict";var i=9,r=5,t='<div class="pagination">\n  <a ng-if="!compact" class="left fast-click"\n     data-ng-show="canPageLeft()"\n     data-ng-click="pageLeft()">\n    <span><<\/span>\n  <\/a>\n  <a ng-if="compact" class="c-left fast-click"\n     data-ng-show="canPageLeft()"\n     data-ng-click="pageLeft()">\n    <span><<\/span>\n  <\/a>\n  <div class="pages">\n    <a data-ng-repeat="page in pagerData.startPages"\n       class="fast-click change-page"data-ng-class="{active: page == pagerData.currentPage}"\n       data-ng-click="changePage(page)">{{page}}<\/a>\n    <span ng-if="pagerData.startPages.length">...<\/span>\n    <a data-ng-repeat="page in pagerData.pages"\n      class="fast-click change-page" data-ng-class="{active: page == pagerData.currentPage}"\n       data-ng-click="changePage(page)">{{page}}<\/a>\n    <span ng-if="pagerData.endPages.length">...<\/span>\n    <a data-ng-repeat="page in pagerData.endPages"\n       class="fast-click change-page" data-ng-class="{active: page == pagerData.currentPage}"\n       data-ng-click="changePage(page)">{{page}}<\/a>\n  <\/div>\n  <a ng-if="!compact" class="right fast-click"\n     data-ng-show="canPageRight()"\n     data-ng-click="pageRight()">\n    <span>><\/span>\n  <\/a>\n  <a ng-if="compact" class="c-right fast-click"\n     data-ng-show="canPageRight()"\n     data-ng-click="pageRight()">\n    <span>><\/span>\n  <\/a>\n<\/div>',u='<div class="pagination" style="display: inline-block !important">\n  <a ng-if="!compact" class="left fast-click"\n     data-ng-show="canPageLeft()"\n     data-ng-click="pageLeft()">\n    <span><<\/span>\n  <\/a>\n  <div class="pages">\n    <a data-ng-repeat="page in pagerData.startPages"\n       data-ng-class="{active: page == pagerData.currentPage}"\n       data-ng-click="changePage(page)">{{page}}<\/a>\n    <span ng-if="pagerData.startPages.length">...<\/span>\n    <a data-ng-repeat="page in pagerData.pages"\n       data-ng-class="{active: page == pagerData.currentPage}"\n       data-ng-click="changePage(page)">{{page}}<\/a>\n    <span ng-if="pagerData.endPages.length">...<\/span>\n    <a data-ng-repeat="page in pagerData.endPages"\n       data-ng-class="{active: page == pagerData.currentPage}"\n       data-ng-click="changePage(page)">{{page}}<\/a>\n  <\/div>\n  <a class="right"\n     data-ng-show="canPageRight()"\n     data-ng-click="pageRight()">\n    <span>><\/span>\n  <\/a>\n<\/div>',n=function(n,t){return n<1?n=1:n>t&&(n=t),n};angular.module("exciteApp").controller("PagerController",["$scope","$rootScope",function(n){n.generatePages=function(t){var c=t?r:i,u=Math.max(n.pagerData.currentPage-Math.floor(c/2),1),l=Math.min(c,n.numPages-u+1),f=[],s=[],h=[],e,o;for(!t&&u<4?u=1:t&&u<2?u=1:t?s.push(1):s.push(1,2),o=u;o<u+l;o++)f.push(o);e=f[f.length-1];!t&&e<n.numPages-2?h.push(n.numPages-1,n.numPages):t&&e<n.numPages-1?h.push(n.numPages):e<n.numPages-1?f.push(n.numPages-1,n.numPages):e<n.numPages&&f.push(n.numPages);n.pagerData.pages=f;n.pagerData.startPages=s;n.pagerData.endPages=h};n.pageLeft=function(){n.changePage(n.pagerData.currentPage-1)};n.canPageLeft=function(){return n.pagerData.pages.length>0&&n.pagerData.currentPage>1};n.pageRight=function(){n.changePage(n.pagerData.currentPage+1)};n.canPageRight=function(){return n.pagerData.pages.length>0&&n.pagerData.currentPage<n.numPages}}]).directive("wsPager",["$log","productFetcher","$rootScope",function(i,r,u){return{restrict:"A",scope:{},controller:"PagerController",template:t,link:function(t,i,f){var e=f.compact;t.numPages=0;t.compact=!!e;t.pagerData={currentPage:1,pages:[],startPages:[],endPages:[]};t.changePage=function(i){console.time("Changing Page");i=n(i,t.numPages);r.fetchProducts(i-1,{excludeBrands:!0}).then(function(){u.$broadcast("preLoadPageShift",i);u.$broadcast("pagingOccured");console.timeEnd("Changing Page")})};r.totalPages>0&&(t.pagerData.currentPage=r.currentPage+1,t.numPages=r.totalPages);t.generatePages(t,e);t.$on("productsUpdated",function(){var n=r.currentPage;n>=0&&(t.pagerData.currentPage=n+1,t.numPages=r.totalPages,t.generatePages(t,e),setTimeout(function(){$(".desktop-pager-container-row-bottom").is(":visible")&&($(".desktop-pager-container-row-bottom").hide(),$(".desktop-pager-container-bottom").show())},10))})}}}]).directive("giftpager",[function(){return{restrict:"E",scope:{numPages:"=",onChangePage:"&",reset:"="},controller:"PagerController",template:t,link:function(t,i,r){var u=r.compact;t.compact=!!u;t.pagerData={currentPage:1,pages:[],startPages:[],endPages:[]};t.changePage=function(i){i=n(i,t.numPages);t.onChangePage({newPage:i})};t.generatePages(t,u);t.$watch("reset",function(n){n>=0&&(t.pagerData.currentPage=n+1,t.generatePages(t,u),t.reset=-1)})}}}]).directive("giftpagermobile",[function(){return{restrict:"E",scope:{numPages:"=",onChangePage:"&",reset:"="},controller:"PagerController",template:u,link:function(t,i,r){var u=r.compact;t.compact=!!u;t.pagerData={currentPage:1,pages:[],startPages:[],endPages:[]};t.changePage=function(i){i=n(i,t.numPages);t.onChangePage({newPage:i})};t.generatePages(t,u);t.$watch("reset",function(n){n>=0&&(t.pagerData.currentPage=n+1,t.generatePages(t,u),t.reset=-1)})}}}])}();angular.module("exciteApp").directive("wsDelayLink",["$compile","$timeout",function(n,t){"use strict";return{restrict:"A",terminal:!0,compile:function(i,r){var u=r.contentSelector,f=r.dummySelector,e=n(i.contents());return function(n,i){i.hide();t(function(){e(n);u||f?setTimeout(function(){i.show();$(u).css("display","block");$(f).css("display","none")},0):i.show()},0)}}}}]);angular.module("exciteApp").directive("wsRecentlyViewed",["$window","apiQuery","apiCommand",function(n,t,i){"use strict";return{restrict:"A",scope:!0,link:function(r){var u=r.model={products:[]},f;$(n).on("pageshow",function(n){(n.persisted||n.originalEvent&&n.originalEvent.persisted)&&f()});f=function(){$(".recently-viewed-title-inline").css("visibility","visible");window.isMobileBreakpoint()?$(".recently-viewed-loading").hide():t.getRecentlyViewed().success(function(n){u.products=n;u.products&&u.products.length>0&&($(".recently-viewed-title").attr("style",""),$(".recently-viewed-title-inline").css("visibility","visible"));$(".recently-viewed-loading").hide()}).error(function(){$(".recently-viewed-loading").hide()})};f();r.clearRecentlyViewed=function(){i.clearRecentlyViewed().success(function(){u.products=[]})}}}}]);angular.module("exciteApp").directive("wsMiniGallery",["$parse",function(n){"use strict";return{restrict:"A",template:'<div class="mini-gallery" ng-if="gallery.products.length > 0"><span class="clear-all" ng-click="gallery.clear()">clear all<\/span><div class="items"><div ng-repeat="product in gallery.products" on-finish-render="{{type}}"><a ng-href="{{product.url}}"><img ng-src="{{product.thumbImageUrl}}"><\/a><\/div><\/div><\/div>',scope:!0,link:function(t,i,r){var u=n(r.wsProducts),f,e;t.type=r.type;r.wsTitleModel?(f=n(r.wsTitleModel),t.gallery={title:f(t),products:u(t)},t.$watch(r.wsTitleModel,function(n){t.gallery.title=n})):t.gallery={title:r.wsTitle,products:u(t)};t.$watch(r.wsProducts,function(n){t.gallery.products=n});r.wsClear&&(e=n(r.wsClear),t.gallery.clear=function(){return e(t)})}}}]);angular.module("exciteApp").directive("ewMiniGallery",["$parse",function(n){"use strict";return{restrict:"A",template:'<div class="mini-gallery" ng-if="gallery.products.length > 0"><span ng-if="gallery.clear != null" ng-click="gallery.clear()">clear all<\/span><div class="items"><div ng-repeat="product in gallery.products" on-finish-render="{{type}}"><a ng-href="{{product.url}}"><img ng-src="{{product.thumbImageUrl}}" disable-right-click><\/a><\/div><\/div><\/div>',scope:!0,link:function(t,i,r){var u=n(r.wsProducts),f,e;t.type=r.type;r.wsTitleModel?(f=n(r.wsTitleModel),t.gallery={title:f(t),products:u(t)},t.$watch(r.wsTitleModel,function(n){t.gallery.title=n})):t.gallery={title:r.wsTitle,products:u(t)};t.$watch(r.wsProducts,function(n){t.gallery.products=n});r.wsClear&&(e=n(r.wsClear),t.gallery.clear=function(){return e(t)})}}}]);angular.module("exciteApp").directive("disableRightClick",function(){return{restict:"A",link:function(n,t){t.bind("contextmenu",function(n){n.preventDefault()})}}});angular.module("exciteApp").filter("reverse",function(){"use strict";return function(n){if(n)return n.slice().reverse()}}).factory("cartPreviewCmd",["$timeout",function(n){"use strict";return{showCartPreview:null,show:function(){this.showCartPreview&&n(this.showCartPreview,0)},install:function(n){this.showCartPreview=n}}}]).directive("cartPreview",["$compile","$timeout","cartPreviewCmd","cartSharedData","apiQuery","apiCommand","$rootScope",function(n,t,i,r,u,f,e){"use strict";var o=_.map(['<div class="cart-preview"',"     ng-class=\"{ 'has-items': model.totalCartItems > 0 }\" >",'  <a href="/cart">','    <i class="icon-shopping-cart"><\/i>',"    Cart (",'    <span class="item-count">','      <span ng-bind="model.totalCartItems">',"      <\/span>","      &nbsp;items","    <\/span>)","  <\/a>",'  <div class="cart-dropdown" ng-cloak="">',"  <\/div>","<\/div>"],function(n){return n.trim()}).join("");return{restrict:"A",terminal:!0,scope:{},compile:function(s){var c=s.contents().clone(),h;return s.html(o),s.find(".cart-dropdown").html(c),h=n(s.contents()),function(n,o){var c=(new Date).getTime();(e.lastGetCart==undefined||c-e.lastGetCart>500)&&(console.log("getcart() at: "+c),e.lastGetCart=c,u.getCart().success(function(n){r.update(n)}));var s,l=$(".cart-dropdown"),a=!1,v=function(){l.hide();a=!1},y=function(){l.show();a=!0};h(n);n.model=r;l.hide();n.removeLine=function(n){var t={productId:n.productId,variantId:n.skuId,freeProduct:n.freeGift,promoProduct:n.promoProduct};f.removeCartItem(t).success(function(n){r.update(n)})};n.hideCartPreview=function(){v()};/Android/.test(navigator.userAgent)&&$(o).click(function(n){a||n.preventDefault()});$(o.find(".cart-preview > a")).mouseenter(function(){r.totalCartItems!==0&&(t.cancel(s),y())});$(o.find(".cart-preview")).mouseleave(function(){o.is(":visible")&&v()});i.install(function(){y();s&&t.cancel(s);s=t(function(){v()},3e3)});n.$on("$destroy",function(){t.cancel(s)})}}}}]);jQuery.fn.htmlClean=function(){return this.contents().filter(function(){return this.nodeType!=3?($(this).htmlClean(),!1):(this.textContent=$.trim(this.textContent),!/\S/.test(this.nodeValue))}).remove(),this};angular.module("exciteApp").factory("browserHistory",["$log","$window","filters","categoryGroups","$timeout",function(n,t,i,r,u){"use strict";var f=!1,l,a,e,v,y,p,o,w,s,h,c;return l=function(){return!!t.history.state},a=function(n,i){var r=t.history.state;console.log("applyCurrentState called");console.log(r);i&&i();f=!0;e(r,n)},e=function(n,t){if(!n)throw new Error("no state to apply");console.log("applying filters from browser state");var r=n;n.selectedCategory!=undefined&&(r.selectedCategory={id:n.selectedCategory.id,fixed:n.selectedCategory.fixed});i.init(n.filterOptions,r,n.search,n.fixedGroup);t&&t(n)},v=function(n){function i(n,t){if(n){if(console.log("pop state: has state"),f){console.log("pop state: current state already applied");f=!1;e(n,t);return}e(n,t)}}$(t).on("pageshow",function(n){(n.persisted||n.originalEvent&&n.originalEvent.persisted)&&(f=!0)});$(window).on("popstate",function(t){console.log("inside pop state handler");i(t.originalEvent.state,n)})},w=function(){u(function(){var i=null,n,t;$(".p-razor").is(":visible")||(n=$("<div>"+$(".angular-products").html()+"<\/div>"),n.find("*").each(function(n,t){for(var i=$(t)[0].attributes,r=i.length;r--;)i[r].name!=="class"&&i[r].name!=="data-ng-click"&&i[r].name!=="data-product-unique-key"&&i[r].name!=="data-ng-controller"&&i[r].name!=="href"&&i[r].name!=="src"&&$(t)[0].removeAttributeNode(i[r])}),i=n.html(),t=JSON.parse(JSON.stringify(window.history.state)),t.currentProductsHtml=i,window.history.replaceState(t,""))})},h=function(n,t,i){var r=c(n,i),u=c(n,t);return r!=null&&u==null?t.includes("?")?"&"+n+"="+r:"?"+n+"="+r:""},c=function(n,t){var i=new RegExp("[?&]"+n+"=([^&#]*)").exec(t);return i==null?null:decodeURI(i[1])||0},s=function(n,i,u,f,e){function c(n){var t=n.replace(/['`‘’"",\\&%:]|(&\s)|(\s&)/g,"");return t.replace(/[_.\s-/]/g,"-")}function l(){return window.location.pathname.indexOf("/brand")==0}function a(){return window.location.href.indexOf("wholesale")!=-1}var s,h;return sessionStorage.getItem("lp")&&(n=n.replace(/\/$/,"")+"?lp="+sessionStorage.getItem("lp")),i&&i.length&&n&&n.indexOf("search")==0&&(n=n.replace(/\/$/,"")+"?search="+t.encodeURIComponent(i)),u&&u.length&&(s=o(u,r),s?s.route.indexOf("brand")>=0?n=s.route+(f.brandName||"")+(n=="search/"?"":"/"+n):(n=s.route,console.log("adjustUrlPathToMatchState - path: "+n)):console.log("Unable to find the GroupCategory.")),u&&(u.endsWith("GroupBestSellers")||u.endsWith("GroupNew")||u.endsWith("GroupOnSale"))||(!f.brandName||u&&u!="AllGroupBrand")&&(!l()||a()||f.selectedCategoryId)||(n=f.brandName!="All Brands..."&&f.brandName?"brand/"+c(f.brandName)+"/"+f.selectedBrandId:"brand/"),e?(console.log("Adjusting Url To match State - Is Page Reload"),!n.indexOf("?")==-1?(h=window.location.search,console.info("Returning path and query string. "),"/"+n+h):window.location.href.indexOf("/brand")===-1?(console.info("Returning path only - as not in view by brand"),"/"+n):(console.info("Returning not path - replace state only."),undefined)):(console.info("Was a page reload - returning path only /"+n),"/"+n)},y=function(n,t,r,u,f,e,o){function w(){return window.location.pathname.indexOf("/brand")===0}var l,y;console.time("Setting History State 444290");var c=i.model,b=c.search,k=c.fixedGroup,a=c.selectedCategory,p=c.selectedCategory?c.selectedCategory.id:undefined,d=a?a.route:"",v={selectedCategory:a,selectedCategoryId:a?a.id:"",filterOptions:t,selectedBrandId:p&&w()?undefined:c.brandFilter&&c.brandFilter.selectedOption&&c.brandFilter.selectedOption.id?c.brandFilter.selectedOption.id:!i.model.selectedBrandId&&window.history.state?window.history.state.selectedBrandId:undefined,brandName:p&&w()?undefined:c.brandName?c.brandName:window.history.state&&window.history.state.brandName?window.history.state.brandName:undefined,search:b,fixedGroup:k,fixed:a?a.fixed:"",page:n,sortId:c.sortFilter.selectedOption.id,priceId:c.priceFilter.selectedOption.id,sizeId:c.sizeFilter.selectedOption.id,paletteId:c.paletteFilter.selectedOption.id,recordsPerPageId:c.recordsPerPageFilter.selectedOption.id,scrollTop:r,recordCount:u,totalPages:f};c.brandName||!v.brandName||p||(c.brandName=v.brandName);l=s(d,b,k,v,e);y=window.location.href;typeof y!="undefined"&&typeof l!="undefined"&&(l+=h("gclid",l,y),l+=h("aid",l,y));e||o?window.history.replaceState(v,"",l):window.history.pushState(v,"",l)},p=function(n){var i;t.history.pushState&&(i=t.history.state,i)&&(n.scrollTop&&(i.scrollTop=n.scrollTop),n.viewMode&&(i.viewMode=n.viewMode),console.info("Replacing State - where: 1120459"),console.info(i.page),t.history.replaceState(i,""))},o=function(n,t){var i=t.filter(function(t){return t.group+t.fixed===n})[0];return i?i:(t.some(function(t){if(t.subs&&(i=o(n,t.subs),i))return!0}),i)},{install:v,hasState:l,applyCurrentState:a,setHistoryState:y,updateHistoryState:p,storeProductsHtmlCache:w,adjustUrlPathToMatchState:s}}]);history.navigationMode="compatible";window.onload=function(){};$(document).ready(function(){});angular.module("exciteApp").factory("productFetcher",["$log","$rootScope","$sce","$q","$window","apiQuery","filters","browserHistory","overlay","$timeout",function(n,t,i,r,u,f,e,o,s){"use strict";var h={loading:!1,totalRecords:0,totalRelevant:0,totalPages:0,recordsFetched:0,currentPage:0,currentRecord:0,showNext:!1,productRows:[],showPlaceholder:!0,pageDescription:null},l,a,v,p,w,c,b,y,k;return y=function(n){$.cookie("ViewMode",n)},k=function(){return $.cookie("ViewMode")},l=function(n,r,u){var o=JSON.parse(JSON.stringify(e.getFilterValues(n)));return o.page=n,o.excludeBrands=r,o.filterOptions={},o.selectedCategory={},o.currentProductsHtml=undefined,u||setTimeout(function(){t.$broadcast("onProdFilter",o)},0),f.getProductsByCriteria(o).then(function(n){var r=n.data;return h.pageDescription=i.trustAsHtml(n.data.pageDescription),u||t.$broadcast("productsFiltered",[n.data,o]),r})},t.$on("pagingOccured",function(){saveScrollPosition(!0)}),a=function(i,u){var c=function(n){return n===parseInt(n)},f=function(){return c(i)?i:null};return(u=$.extend({setHistoryState:!0,pageReloading:!1,doScroll:"always",scrollTop:0,excludeBrands:!1},u||{}),o.setHistoryState(f(),window.history.state.filterOptions,u.scrollTop,window.history.state.recordCount,window.history.state.totalPages,u.pageReloading,!u.setHistoryState),e.globalFilterChanged(window.history.state),u.productData)?(n.log("using preloaded products"),r(function(n){v(u.productData,u);setTimeout(function(){t.$broadcast("productsFiltered",[undefined,e.getFilterValues(i)])},0);n()})):(n.debug("productFetcher - fetching page "+i),h.loading=!0,s.showOverlay(),console.time("fetching products"),l(f(),u.excludeBrands).then(function(n){v(n,u);console.timeEnd("fetching products")})["finally"](function(){h.loading=!1;s.hide()}))},v=function(n,i){var o,u,r,f,s;if(console.time("post fetch products"),i.excludeBrands&&(n.filterOptions.brands=e.model.brandFilter.filterOptions.splice(1)),h.productRows=[],i.skipProductRendering)console.log("rendering products was skipped");else if(console.log("rendering products"),n.productRows&&n.productRows.length!=0){for(console.time("setting products"),o="",u="",r=0;r<n.productRows.length;r++)for(f=0;f<n.productRows[r].length;f++)o+=n.productRows[r][f].categoryViewProductHash;s=!1;$(".p-razor").is(":visible")?(s=!0,$(".p-razor .products .product-brief").each(function(n,t){u+=$(t).data("product-unique-key")})):$(".angular-products .product-brief").each(function(n,t){u+=$(t).data("product-unique-key")});o!==u?$(".p-razor").is(":visible")?(console.log("data returned did not match p-razor - so we render."),$(".p-razor").hide(),c(h.productRows,n),$(".angular-products").show()):(console.log("data returned did not match current angular products - so we render."),$(".p-razor").hide(),c(h.productRows,n),$(".angular-products").show()):(console.log("data returned p-razor, so just show p-razor"),s?($(".p-razor").show(),$(".angular-products").hide()):($(".p-razor").hide(),c(h.productRows,n),$(".angular-products").show()));console.timeEnd("setting products")}else console.log("Page was a full refresh - no products at all exist yet, use p-razor!"),$(".p-razor").show(),$(".angular-products").hide();console.time("All Filter Updates");console.time("updating page stats");p(n);console.timeEnd("updating page stats");console.log("updating filters:");console.log(n);console.time("updating filers");w(n,i.skipProductRendering);console.timeEnd("updating filers");console.time("setting view mode");y(n.viewMode);console.timeEnd("setting view mode");console.time("broadcasting products updated");t.$broadcast("productsUpdated");console.timeEnd("broadcasting products updated");console.time("All Filter Updates");console.timeEnd("post fetch products")},p=function(n){h.currentRecord=n.recordsPerPage*n.currentPage;h.recordsFetched=h.currentRecord+n.productCount;h.currentPage=n.currentPage;h.totalRecords=n.recordCount;h.totalRelevant=n.relevantResultsFound;h.totalPages=n.totalPages;h.showNext=n.currentPage+1<n.totalPages},w=function(n,t){e.model.currentPage=h.currentPage;e.model.viewMode=n.viewMode;e.updateFilterOptions(n.filterOptions,t)},c=function(n,t){return _.each(t.productRows,function(t){_.each(t,function(n){b(n)});n.push(t)}),n},b=function(n){n.video&&n.video.length&&n.video.forEach(function(n){n.url=i.trustAsResourceUrl(n.url)})},o.install(function(n){a(n.page,{setHistoryState:!1,doScroll:"scrollTop",scrollTop:n.scrollTop})}),h.fetchProducts=a,h.fetchPage=l,h.setViewMode=y,h.getViewMode=k,h}]);angular.module("exciteApp").factory("overlay",function(){"use strict";return{show:!1,showSpinner:!1,alwaysIgnoreOverlay:!1,showOverlay:function(){this.alwaysIgnoreOverlay||(this.show=!0)},hide:function(){this.show=!1;this.showSpinner=!1}}});angular.module("exciteApp").factory("apiClient",["$http",function(n){"use strict";return{get:function(t,i){return n.get(t,{params:i,headers:{"Cache-Control":"no-cache"}})},post:function(t,i){return n.post(t,i)}}}]);angular.module("exciteApp").factory("apiQuery",["apiRoutes","apiClient",function(n,t){"use strict";return{getWholesaleBrands:function(){return t.post(n.wholesaleBrands)},getAllBrands:function(){return t.post(n.allBrands)},getCustomerLoyalty:function(){return t.post(n.customerLoyalty)},getCustomerOrders:function(){return t.post(n.customerOrders)},getTopSellersByCategoryId:function(i,r,u){return t.get(n.topSellersByCategoryId,{categoryId:i,brandName:r,brandId:u})},getWishlist:function(){return t.post(n.wishlist)},getSizeGuide:function(){return t.get(n.sizeGuide)},getRelatedProducts:function(i){return t.get(n.relatedProducts,{productId:i})},getProduct:function(i){return t.get(n.product,{productId:i})},getRecentlyViewed:function(){return t.post(n.recentlyViewed)},getBanner:function(){return t.post(n.getBanner)},getInvoice:function(i){return t.get(n.invoice,{orderId:i})},sendUnidaysRecord:function(i){return t.post(n.sendUnidaysRecord,{orderId:i})},getFreeGifts:function(i,r,u){return t.post(n.freeGifts,{page:i,recordsPerPage:r,includeToys:u.includeToys,includeLingerie:u.includeLingerie,includeStraightDvds:u.includeStraightDvds,includeGayDvds:u.includeGayDvds})},getBrandPromoGifts:function(i,r,u,f){return t.post(n.brandPromoGifts,{promoProductParentId:i,brandId:r,page:u,recordsPerPage:f})},getDailyDeals:function(){return t.get(n.dailyDeals)},getProductAutoCompelteByCriteria:function(i){return t.get(n.productAutoCompelteByCriteria,i)},getCart:function(){return console.log("getCart called"),t.post(n.cart)},getProductsByCriteria:function(i){if(i.search){var r={search:i.search,recordsPerPage:i.recordsPerPageId,pageNumber:i.page,price:i.priceId,sort:i.sortId,selectedCategoryId:i.selectedCategoryId};return t.get(n.productsByKeyword,r)}return t.post(n.productsByCriteria,i)},getCountryStates:function(i){return t.get(n.countryStates,{countryExternalId:i})},getCountryStatesWholesaleSite:function(i){return t.get(n.countryStatesWholesaleSite,{countryExternalId:i})},updateToken:function(){return t.get(n.updateToken)},getCustomerServiceCurrentTime:function(){return t.post(n.customerServiceCurrentTime)},getCompetitionFeedback:function(i,r){return t.post(n.competitionFeedback,{PageSize:r,PageNumber:i})},getBanners:function(){return t.post(n.banners)}}}]);angular.module("exciteApp").factory("apiCommand",["apiRoutes","apiClient",function(n,t){"use strict";return{customerChangePassword:function(i){return t.post(n.customerChangePassword,i)},customerChangeEmail:function(i){return t.post(n.customerChangeEmail,{newEmail:i})},customerResetPassword:function(i){return t.post(n.customerResetPassword,{email:i})},customerSignUp:function(i){return t.post(n.customerSignUp,i)},customerLogout:function(){return t.post(n.customerLogout)},customerLogin:function(i){return t.post(n.customerLogin,i)},addWishlistItem:function(i){return t.post(n.addWishlistItem,{productID:i})},removeWishlistItem:function(i){return t.post(n.removeWishlistItem,{productID:i})},clearRecentlyViewed:function(){return t.post(n.clearRecentlyViewed)},subscribeToNewsletter:function(i){return t.post(n.subscribe,i)},updateFreeGifts:function(i){return t.post(n.updateFreeGifts,{freeGifts:i})},addBrandPromoGift:function(i,r){return t.post(n.addBrandPromoGift,{giftId:i,parentProductId:r})},leaveComment:function(i){return t.post(n.leaveComment,i)},registerForCompetition:function(i){return t.post(n.registerForCompetition,i)},addCartItem:function(i){return t.post(n.addCartItem,i)},addWholesaleCartItem:function(i){return t.post(n.addWholesaleCartItem,i)},updateCartItem:function(i){return t.post(n.updateCartItem,i)},removeCartItem:function(i){return t.post(n.removeCartItem,i)},removeRestrictedCartItems:function(){return t.post(n.removeRestrictedCartItems)},beginCheckout:function(i){return t.post(n.checkout,i)},getCreditAmounts:function(i,r){return t.post(n.getCreditAmounts,{username:i,password:r})},applyGiftCard:function(i){return t.post(n.applyGiftCard,{cardNumber:i})},applyPromoVoucher:function(i){return t.post(n.applyPromoVoucher,{code:i})},applyDiscounts:function(){return t.post(n.applyDiscounts)},applyCredits:function(){return t.post(n.applyCredits)},removeDiscounts:function(){return t.post(n.removeDiscounts)},removeCredits:function(){return t.post(n.removeCredits)},setShippingCountry:function(i){return t.post(n.setShippingCountry,{countryExternalId:i})},setPostageOption:function(i){return t.post(n.setPostageOption,{postageMethod:i})},signupForDeals:function(i,r){return t.post(n.signupForDeals,{email:i,origin:r})},ewayConfirm:function(i){return t.post(n.ewayConfirm,i)}}}]);angular.module("exciteApp").factory("cartSharedData",["$window",function(n){"use strict";var i=!1,t={lines:[],dvdPostageOptions:[],otherProductPostageOptions:[],hasSomeRestrictedItems:!1,hasAllRestrictedItems:!1,onInitialized:null},r=function(){var n,i,r;if(t.lines&&t.lines.length)for(r=t.lines,i=r.filter(function(n){return n.restricted}),t.lines=i.concat(r.filter(function(n){return!n.restricted})),i.length&&(i[0].lastDvd=!0),n=0;n<t.lines.length;n++)t.lines[n].updateQuantity=t.lines[n].quantity};return t.initTotalCartItems=function(){t.totalCartItems=ibsa.getCookieValueInt(n,"CCtr")||0},t.update=function(n){n&&(t=$.extend(t,n),t.userInfo=$.extend({},n.userInfo),t.address=$.extend({},n.address),r(),i||(i=!0,this.onInitialized&&this.onInitialized()))},t}]);angular.module("exciteApp").constant("apiRoutes",{customerLogin:"/Lounge/Login",customerLogout:"/Lounge/Logout",customerResetPassword:"/Lounge/ForgotPassword",customerOrders:"/Lounge/Orders",customerLoyalty:"/Lounge/Loyalty",customerChangeEmail:"/Lounge/ChangeEmail",customerChangePassword:"/Lounge/ChangePassword",topSellersByCategoryId:"/Category/TopSellers",wishlist:"/WishList/Get",wholesaleBrands:"/Category/GetWholesaleBrands",allBrands:"/Category/GetAllBrands",addWishlistItem:"/WishList/AddProduct",removeWishlistItem:"/WishList/RemoveProduct",sizeGuide:"/Info/GetSizeGuide",relatedProducts:"/Product/RelatedProducts",product:"/Product/GetProduct",recentlyViewed:"/Category/RecentlyViewed",getBanner:"/Category/GetBanner",clearRecentlyViewed:"/Category/ClearRecentlyViewed",subscribe:"/Newsletter/Subscribe",invoice:"/Invoice/GetInvoice",sendUnidaysRecord:"/Invoice/SendUnidaysRecord",freeGifts:"/Cart/GetFreeGifts",brandPromoGifts:"/Cart/GetBrandPromoGifts",updateFreeGifts:"/Cart/UpdateFreeGifts",addBrandPromoGift:"/Cart/AddBrandPromoGift",dailyDeals:"/Info/GetDailyDeals",leaveComment:"/Info/Contact",registerForCompetition:"/Info/Competitions",customerSignUp:"/Info/customer-sign-up",productAutoCompelteByCriteria:"/Search/AutoCompleteProducts",cart:"/Cart/Get",addCartItem:"/Cart/AddProduct",addWholesaleCartItem:"/Cart/AddWholesaleProduct",updateCartItem:"/Cart/UpdateLineQuantity",removeCartItem:"/Cart/RemoveLine",removeRestrictedCartItems:"/Cart/RemoveRestrictedItems",productsByCriteria:"/Category/GetProducts",productsByKeyword:"/Category/GetProductsByKeyword",countryStates:"/Shared/GetCountryStates",countryStatesWholesaleSite:"/Shared/GetCountryStatesWholesaleSite",checkout:"/Checkout/BeginCheckout",getCreditAmounts:"/Credit/GetCreditAmounts",applyGiftCard:"/Credit/ApplyGiftCard",applyPromoVoucher:"/Credit/ApplyPromoVoucher",applyDiscounts:"/Credit/ApplyDiscounts",applyCredits:"/Credit/ApplyCredits",removeDiscounts:"/Credit/RemoveDiscounts",removeCredits:"/Credit/RemoveCredits",setShippingCountry:"/Cart/SetShippingCountry",setPostageOption:"/Cart/SetPostageOption",updateToken:"/Credit/UpdateToken",customerServiceCurrentTime:"/Shared/CustomerServiceCurrentTime",competitionFeedback:"/Info/GetFeedback",signupForDeals:"/Info/SignupForDeals",banners:"/Shared/GetBanners",ewayConfirm:"/Checkout/EwayConfirm"}),function(){"use strict";var r,t,n,i;r=function(n){function t(){}t.prototype=n.prototype;this.prototype=new t;this.prototype.constructor=this};Function.prototype.inherit=Function.prototype.inherit||r;t=function(n,i,r){if(!(this instanceof t))return new t;this.preChangeFilter=(n.preChangeFilter||[]).slice(0);this.postChangeFilter=(n.postChangeFilter||[]).slice(0);this.filterOptions=i||[];r?(this.selectedOption=r,(typeof r=="string"||r instanceof String)&&(this.selectedOption=this.filterOptionById(r))):this._selectDefault()},function(n){n.defaultSelected=function(){return this.selectedOption===this.filterOptions[0]};n.getDefault=function(){return this.filterOptions&&this.filterOptions[0]};n._selectDefault=function(){this.selectedOption=this.getDefault()};n.selectDefault=function(){this.changeFilter(this.getDefault())};n.changeFilterById=function(n){this.changeFilter(this.filterOptionById(n))};n.changeFilter=function(n){this.preChangeFilter.forEach(function(t){t(n)});this.selectedOption=n;this.postChangeFilter.forEach(function(t){t(n)})};n.filterOptionById=function(n){var t=this.filterOptions.filter(function(t){return t.id===n})[0];return t?t:{id:n,name:n}};n.hasChanged=function(){return!!this.lastOption&&this.lastOption!==this.selectedOption}}(t.prototype);n=function(i,r,u,f){var o,e,s,h;if(!(this instanceof n))return new n;if(typeof u=="string"||u instanceof String)throw new Error("CategoryFilter selectedOption must be an object");h=this;o=function(){for(var t=h,n=t.dependant;!!n;)n.filterOptions=t.selectedOption&&t.selectedOption.subs||[],n._selectDefault(),t=n,n=n.dependant};e=(i.postChangeFilter||[]).slice(0);e.unshift(o);s={preChangeFilter:i.preChangeFilter,postChangeFilter:e};t.call(this,s,r,u);this.dependant=f};n.inherit(t),function(t){t.defaultSelected=function(){return!!this.selectedOption&&!!this.selectedOption.isDefault};t.getDefault=function(){return this.filterOptions.filter(function(n){return n.isDefault})[0]};t.changeFilterById=function(n,t){this.changeFilter(this.filterOptionById(n,t))};t.filterOptionById=function(t,i){var r=this.filterOptions.filter(function(r){return n.matchFilterOption(t,i,r)})[0];if(!r)throw new Error("invalid filter option");return r}}(n.prototype);n.matchFilterOption=function(n,t,i){return!i.isDefault&&i.id===n&&(!i.fixed&&!t||i.fixed===t)};i=function(t,r,u,f){if(!(this instanceof i))return new i;n.call(this,t,r,u,f)};i.inherit(n),function(n){n.getDefault=function(){return{id:null,name:"",isDefault:!0,route:"search/"}}}(i.prototype);angular.module("exciteApp").constant("filter",{Filter:t,CategoryFilter:n,RootCategoryFilter:i})}();angular.module("exciteApp").constant("categories",categoriesHelper.addGiftIdeas([{name:"Sex Toys",id:"1",route:"sex-toys",subs:[{name:"Anal Stimulators",id:"21",route:"sex-toys/anal-stimulators/"},{name:"Bucks Night Products",id:"22",route:"sex-toys/bucks-night-products/"},{name:"Cock Rings",id:"23",route:"sex-toys/cock-rings/"},{name:"Sex Dolls",id:"24",route:"sex-toys/sex-dolls/"},{name:"Male Pumps",id:"25",route:"sex-toys/male-pumps/"},{name:"Masturbators",id:"26",route:"sex-toys/masturbators/"},{name:"Remote Controlled",id:"27",route:"sex-toys/remote-controlled/"},{name:"Sleeves & Extensions",id:"28",route:"sex-toys/sleeves-extensions/"},{name:"New",id:"1",route:"sex-toys/new/",fixed:"New"},{name:"Best Sellers",id:"1",route:"sex-toys/best-sellers/",fixed:"BestSellers"},{name:"On Sale",id:"1",route:"sex-toys/on-sale/",fixed:"OnSale"},{name:"View all Sex Toys",id:"1",route:"sex-toys/",fixed:"ViewAll",addBreak:!0,isDefault:!0},{name:"Vibrators",id:"11",route:"sex-toys/vibrators/",subs:[{name:"View All",id:"11",fixed:"ViewAll",route:"sex-toys/vibrators/",isDefault:!0},{name:"Classic Vibrators",id:"111",route:"sex-toys/vibrators/classic-vibrators/"},{name:"Couples",id:"113",route:"sex-toys/vibrators/couples/"},{name:"Deluxe Vibrators",id:"114",route:"sex-toys/vibrators/deluxe-vibrators/"},{name:"Massagers",id:"116",route:"sex-toys/vibrators/massagers/"},{name:"Noduled Vibrators",id:"117",route:"sex-toys/vibrators/noduled-vibrators/"},{name:"Pocket Vibrators",id:"118",route:"sex-toys/vibrators/pocket-vibrators/"},{name:"Realistic Vibrators",id:"1110",route:"sex-toys/vibrators/realistic-vibrators/"},{name:"Remote Controlled",id:"1111",route:"sex-toys/vibrators/remote-controlled/"},{name:"Rechargeable",id:"1114",route:"sex-toys/vibrators/rechargeable/"},{name:"Waterproof Vibrators",id:"1113",route:"sex-toys/vibrators/waterproof-vibrators/"}]},{name:"Anal",id:"12",route:"sex-toys/anal/",subs:[{name:"View All",id:"12",fixed:"ViewAll",route:"sex-toys/anal/",isDefault:!0},{name:"Accessories",id:"121",route:"sex-toys/anal/accessories/"},{name:"Anal Balls & Beads",id:"122",route:"sex-toys/anal/anal-balls-beads/"},{name:"Anal Stimulators",id:"123",route:"sex-toys/anal/anal-stimulators/"},{name:"Anal Toys / Butt Plugs",id:"124",route:"sex-toys/anal/anal-toys-butt-plugs/"},{name:"Couples",id:"125",route:"sex-toys/anal/couples/"},{name:"Remote Controlled",id:"126",route:"sex-toys/anal/remote-controlled/"}]},{name:"Dongs, Dildos, & Strapons",id:"13",route:"sex-toys/dongs-dildos-strapons/",subs:[{name:"View All",id:"13",fixed:"ViewAll",route:"sex-toys/dongs-dildos-strapons/",isDefault:!0},{name:"Couples",id:"131",route:"sex-toys/dongs-dildos-strapons/couples/"},{name:"Dildos / Dongs",id:"132",route:"sex-toys/dongs-dildos-strapons/dildos-dongs/"},{name:"Glass",id:"133",route:"sex-toys/dongs-dildos-strapons/glass/"},{name:"Remote Controlled",id:"134",route:"sex-toys/dongs-dildos-strapons/remote-controlled/"},{name:"Strap Ons",id:"135",route:"sex-toys/dongs-dildos-strapons/strap-ons/"}]},{name:"Fetish & Bondage",id:"14",route:"sex-toys/fetish-bondage/",subs:[{name:"View All",id:"14",fixed:"ViewAll",route:"sex-toys/fetish-bondage/",isDefault:!0},{name:"Accessories",id:"141",route:"sex-toys/fetish-bondage/accessories/"},{name:"Blindfolds & Hoods",id:"142",route:"sex-toys/fetish-bondage/blindfolds-hoods/"},{name:"Couples",id:"143",route:"sex-toys/fetish-bondage/couples/"},{name:"Cuffs, Restraints & Gags",id:"144",route:"sex-toys/fetish-bondage/cuffs-restraints-gags/"},{name:"Fetish Wear",id:"145",route:"sex-toys/fetish-bondage/fetish-wear/"},{name:"Fifty Shades Of Grey Inspired",id:"146",route:"sex-toys/fetish-bondage/fifty-shades-of-grey-inspired/"},{name:"Nipple Stimulators",id:"147",route:"sex-toys/fetish-bondage/nipple-stimulators/"},{name:"Swings & Slings",id:"148",route:"sex-toys/fetish-bondage/swings-slings/"},{name:"Whips, Paddles & Ticklers",id:"149",route:"sex-toys/fetish-bondage/whips-paddles-ticklers/"}]},{name:"Bullets, Balls, Eggs",id:"15",route:"sex-toys/bullets-balls-eggs/",subs:[{name:"View All",id:"15",fixed:"ViewAll",route:"sex-toys/bullets-balls-eggs/",isDefault:!0},{name:"Beads & Balls",id:"151",route:"sex-toys/bullets-balls-eggs/beads-balls/"},{name:"Couples",id:"152",route:"sex-toys/bullets-balls-eggs/couples/"},{name:"Eggs & Bullets",id:"153",route:"sex-toys/bullets-balls-eggs/eggs-bullets/"},{name:"Remote Controlled",id:"154",route:"sex-toys/bullets-balls-eggs/remote-controlled/"}]},{name:"Accessories",id:"18",route:"sex-toys/accessories/",subs:[{name:"View All",id:"18",fixed:"ViewAll",route:"sex-toys/accessories/",isDefault:!0},{name:"Accessories",id:"181",route:"sex-toys/accessories/accessories/"},{name:"Batteries",id:"182",route:"sex-toys/accessories/batteries/"},{name:"Books",id:"183",route:"sex-toys/accessories/books/"},{name:"Candles",id:"184",route:"sex-toys/accessories/candles/"},{name:"Cleaning & Grooming",id:"185",route:"sex-toys/accessories/cleaning-grooming/"},{name:"Couples",id:"186",route:"sex-toys/accessories/couples/"},{name:"Naughty Novelties",id:"188",route:"sex-toys/accessories/naughty-novelties/"},{name:"Sex Furniture",id:"1810",route:"sex-toys/accessories/sex-furniture/"},{name:"Sex Toy Cleaners",id:"1811",route:"sex-toys/accessories/sex-toy-cleaners/"},{name:"Swings & Slings",id:"1812",route:"sex-toys/accessories/swings-slings/"}]},{name:"Urethral",id:"8016",route:"his-toys/urethral/"}]},{name:"Essentials",id:"8",route:"essentials",subs:[{name:"New",id:"8",route:"essentials/new/",fixed:"New"},{name:"Best Sellers",id:"8",route:"essentials/best-sellers/",fixed:"BestSellers"},{name:"On Sale",id:"8",route:"essentials/on-sale/",fixed:"OnSale"},{name:"View all Essentials",id:"8",route:"essentials/",fixed:"ViewAll",addBreak:!0,isDefault:!0},{name:"Arousal Gels",id:"81",route:"essentials/arousal-gels/"},{name:"Body Paint",id:"82",route:"essentials/body-paint/"},{name:"Candles",id:"83",route:"essentials/candles/"},{name:"Cleaning & Grooming",id:"84",route:"essentials/cleaning-grooming/"},{name:"Condoms",id:"85",route:"essentials/condoms/"},{name:"Couples",id:"86",route:"essentials/couples/"},{name:"Lubes - Anal",id:"87",route:"essentials/lubes-anal/"},{name:"Lubes - Cooling",id:"88",route:"essentials/lubes-cooling/"},{name:"Lubes - Flavoured",id:"89",route:"essentials/lubes-flavoured/"},{name:"Lubes - Silicone Based",id:"891",route:"essentials/lubes-silicone-based/"},{name:"Lubes - Warming",id:"892",route:"essentials/lubes-warming/"},{name:"Lubes - Water Based",id:"893",route:"essentials/lubes-water-based/"},{name:"Massage",id:"894",route:"essentials/massage/"},{name:"Sexual Aids - Male",id:"896",route:"essentials/sexual-aids-male/"},{name:"Sex Toy Cleaners",id:"898",route:"essentials/sex-toy-cleaners/"},{name:"Storage",id:"899",route:"essentials/storage/"},{name:"Batteries",id:"8991",route:"essentials/batteries/"}]},{name:"Sexy Wear",id:"48",route:"sexy-wear",subs:[{name:"New",id:"48",route:"sexy-wear/new/",fixed:"New"},{name:"Best Sellers",id:"48",route:"sexy-wear/best-sellers/",fixed:"BestSellers"},{name:"On Sale",id:"48",route:"sexy-wear/on-sale/",fixed:"OnSale"},{name:"View all Sexy Wear",id:"48",route:"sexy-wear/",fixed:"ViewAll",addBreak:!0,isDefault:!0},{name:"Boxers",id:"481",route:"sexy-wear/boxers/"},{name:"Briefs",id:"482",route:"sexy-wear/briefs/"},{name:"Costumes",id:"483",route:"sexy-wear/costumes/"},{name:"G-Strings & Thongs",id:"484",route:"sexy-wear/g-strings-thongs/"},{name:"Jockstraps",id:"485",route:"sexy-wear/jockstraps/"},{name:"Tops & Bottoms",id:"486",route:"sexy-wear/tops-bottoms/"},{name:"Mens Range",id:"487",route:"sexy-wear/mens-range/"}]},{name:"Costumes",id:"52",route:"costumes",subs:[{name:"New",id:"52",route:"costumes/new/",fixed:"New"},{name:"Best Sellers",id:"52",route:"costumes/best-sellers/",fixed:"BestSellers"},{name:"On Sale",id:"52",route:"costumes/on-sale/",fixed:"OnSale"},{name:"View all Costumes",id:"52",route:"costumes/",fixed:"ViewAll",addBreak:!0,isDefault:!0},{name:"Services",id:"523",route:"costumes/services/"},{name:"Fairytale",id:"522",route:"costumes/fairytale/"},{name:"Briefs",id:"521",route:"costumes/briefs/"},{name:"Others",id:"524",route:"costumes/others/"}]}]));angular.module("exciteApp").constant("categoryGroups",[{name:"New",route:"group/new/",group:"AllGroup",fixed:"New",subs:[{id:null,name:"Sex Toys",route:"sex-toys-group/new/",group:"ToysGroup",fixed:"New"},{id:null,name:"Sexy Wear",route:"sexy-wear-group/new/",group:"FGMOSexyWearGroup",fixed:"New"},{id:null,name:"Costumes",route:"costume-group/new/",group:"CostumeMenGroup",fixed:"New"}]},{name:"Best Sellers",route:"group/best-sellers/",group:"AllGroup",fixed:"BestSellers",subs:[{id:null,name:"Sex Toys",route:"sex-toys-group/best-seller/",group:"ToysGroup",fixed:"BestSellers"},{id:null,name:"Sexy Wear",route:"sexy-wear-group/best-seller/",group:"FGMOSexyWearGroup",fixed:"BestSellers"},{id:null,name:"Costumes",route:"costume-group/best-seller/",group:"CostumeMenGroup",fixed:"BestSellers"}]},{name:"Sale",route:"group/on-sale/",group:"AllGroup",fixed:"OnSale",subs:[{id:null,name:"Sex Toys",route:"sex-toys-group/on-sale/",group:"ToysGroup",fixed:"OnSale"},{id:null,name:"Sexy Wear",route:"sexy-wear-group/on-sale/",group:"FGMOSexyWearGroup",fixed:"OnSale"},{id:null,name:"Costumes",route:"costume-group/on-sale/",group:"CostumeMenGroup",fixed:"OnSale"}]}]);angular.module("exciteApp").constant("filterOptions",{prices:[{id:"0",name:"All Prices..."},{id:"50",name:"On Sale"},{id:"1",name:"Under $20"},{id:"2",name:"Under $40"},{id:"3",name:"Under $60"},{id:"4",name:"Over $60"}],recordsPerPage:[{id:"20",name:"20"},{id:"40",name:"40"}],sort:[{id:"0",name:"Sort By..."},{id:"1",name:"Low To High Price"},{id:"2",name:"High To Low Price"},{id:"3",name:"Best Sellers"},{id:"4",name:"New"}]});angular.module("exciteApp").constant("paymentTypes",[{id:"PayPal",description:"PayPal"},{id:"CreditCard",description:"Credit Card"},{id:"BPay",description:"BPay"},{id:"DirectDeposit",description:"Bank Transfer"},{id:"ChequeOrMoneyOrder",description:"Cheque or Money Order"},{id:"PhoneOrder",description:"Phone Order"},{id:"StoreCredit",description:"StoreCredit"}]),function(){"use strict";var t=function(n,t){var i=n.map(function(n){return{id:n.id,name:n.name}});return i.unshift({id:null,name:t}),i},i=function(n){return t(n,"All Brands...")},r=function(n){return t(n,"All Colours...")},u=function(n){return t(n,"All Sizes...")},n={model:{isInitialized:!1,rootCategoryFilter:null,firstCategoryFilter:null,secondCategoryFilter:null,priceFilter:null,recordsPerPageFilter:null,sortFilter:null,sizeFilter:null,paletteFilter:null,brandFilter:null,selectedCategory:null,categoryPath:null,search:null,fixedGroup:null,brandName:null,recordCount:null,totalPages:null,currentPage:-1}};n.getFilterValues=function(){var n=this.model,t=function(n){return n.selectedOption&&n.selectedOption.id};return JSON.parse(JSON.stringify(window.history.state))};n.globalFilterChanged=function(n){console.log(n);var t=JSON.parse(JSON.stringify(n));t.filterOptions={};t.selectedCategory={};t.currentProductsHtml=undefined;$.cookie("ClientFilterState",JSON.stringify(t),{path:"/"})};n.updateFilterOptions=function(n){var t=this.model,e=t.brandFilter,o=t.sizeFilter,s=t.paletteFilter,f=function(n,t){var r=n.selectedOption.id,i=n.filterOptions.filter(function(n){return n.id===r})[0];i?n.selectedOption=i:t||n.selectDefault()};e.filterOptions=i(n.brands);o.filterOptions=u(n.sizes);s.filterOptions=r(n.palette);f(e,!0);f(o);f(s)};n.hasSelectedCategory=function(){var n=this.model;return n.secondCategoryFilter.selectedOption||n.firstCategoryFilter.selectedOption||n.rootCategoryFilter.selectedOption&&!n.rootCategoryFilter.selectedOption.isDefault};n.skipKillBrand=undefined;n.clearSimpleFilters=function(){function u(){return window.location.pathname.indexOf("/brand")==0}var t=["brandFilter","priceFilter","sortFilter","sizeFilter","paletteFilter","search"],i=this.model,r=function(n,t){var i=n[0],r=[];if(_.isString(i))r=n.filter(function(n){return t.indexOf(n)>-1});else if(_.isObject(i)){if(!i.not)throw new Error("invalid specifier");r=_.difference(t,i.not)}return r};arguments.length>0&&(t=_.isArray(arguments[0])?arguments[0]:r(_.toArray(arguments),t));t.forEach(function(t){if(t==="search"||t==="fixedGroup")i[t]="";else{if(t=="brandFilter"&&u())return;if(t=="brandFilter"&&n.skipKillBrand)return;i[t]._selectDefault();t=="brandFilter"&&(i.selectedBrandId=undefined,window.history.state&&(window.history.state.brandName=undefined,window.history.state.selectedBrandId=undefined))}});n.skipKillBrand=undefined};n.clearCategoryFilters=function(n){var t=this.model;switch(n){case 0:t.rootCategoryFilter&&t.rootCategoryFilter.selectDefault();break;case 1:t.firstCategoryFilter&&t.firstCategoryFilter.selectDefault();break;case 2:t.secondCategoryFilter&&t.secondCategoryFilter.selectDefault();break;default:throw new Error("invalid level");}};n.clearFilters=function(n){this.clearCategoryFilters(n);this.clearSimpleFilters(_.toArray(arguments).slice(1))};n.isInitialized=function(){return this.model.isInitialized};angular.module("exciteApp").provider("filters",["filter","categories","categoryGroups","filterOptions",function(t,f,e,o){var y=t.Filter,s=t.CategoryFilter,p=t.RootCategoryFilter,l,a,h,c,v;return f=_.uniq(_.union(f,e),!1,function(n){return n.name}),l=function(t,f){var e=n.model,h={preChangeFilter:[c]},s=function(n,t){return new y(h,n,t)};e.brandFilter=s(i(t.brands),f.selectedBrandId);e.brandFilter=s(i(t.brands),f.selectedBrandId);e.paletteFilter=s(r(t.palette),f.paletteId);e.sizeFilter=s(u(t.sizes),f.sizeId);e.priceFilter=s(o.prices,f.priceId);e.recordsPerPageFilter=s(o.recordsPerPage,f.recordsPerPageId);e.sortFilter=s(o.sort,f.sortId)},a=function(t){var o;var r=n.model,i,u,e=undefined,l=undefined;n.model.fixedGroupPath.length>0?(u=_.find(f,function(t){return t.fixed==n.model.fixedGroupPath[0].fixed&&t.group==n.model.fixedGroupPath[0].group}),i=[u],n.model.fixedGroupPath.length>1&&u!=undefined&&(e=_.find(u.subs,function(t){return t.fixed==n.model.fixedGroupPath[1].fixed&&t.group==n.model.fixedGroupPath[1].group}),i.push(e))):(i=h(t&&t.id,t&&(t.fixed=="Brand"?"":t.fixed),f),u=i[0],e=i[1],l=i[2]);o={preChangeFilter:[c],postChangeFilter:[v,function(){}]};r.categoryPath=i;r.secondCategoryFilter=new s(o,e&&e.subs,l,null);r.firstCategoryFilter=new s(o,u&&u.subs,e,r.secondCategoryFilter);r.rootCategoryFilter=new p(o,f,u,r.firstCategoryFilter);r.selectedCategory=i&&i.length!=0?i[i.length-1]:r.rootCategoryFilter.selectedOption},h=function(n,t,i){var r=[],u=i.filter(function(i){return s.matchFilterOption(n,t,i)})[0];return u?[u]:(i.some(function(i){return i.subs&&(r=h(n,t,i.subs),r.length)?(r.unshift(i),!0):!1}),r)},c=function(){var t=function(){var t=n.model;return[t.recordsPerPageFilter,t.sortFilter,t.sizeFilter,t.paletteFilter,t.rootCategoryFilter,t.firstCategoryFilter,t.secondCategoryFilter,t.brandFilter,t.priceFilter]};t().forEach(function(n){n.lastOption=n.selectedOption})},v=function(t){if(t){var i=n.model,r=function(){var n=[],t=function(n,t){n.selectedOption&&!n.defaultSelected()&&t.push(n.selectedOption)};return t(i.rootCategoryFilter,n),t(i.firstCategoryFilter,n),t(i.secondCategoryFilter,n),n};i.selectedCategory=t;i.categoryPath=r();t.group&&t.fixed&&(i.fixedGroup=t.group+t.fixed)}},n.init=function(t,i,r,u){function o(){return window.location.pathname.indexOf("/brand")===0}this.model.search=r;this.setFixedGroup(u);l(t,i);a(i.selectedCategory);this.model.isInitialized=!0;n.model.filterOptions=i.filterOptionsData;n.selectedCategoryId=n.model.selectedCategory?n.model.selectedCategory.id:n.selectedCategoryId;n.model.selectedBrandId=n.selectedCategoryId&&o()?undefined:i.brandFilter&&i.brandFilter.selectedOption&&i.brandFilter.selectedOption.id?i.brandFilter.selectedOption.id:!n.model.selectedBrandId&&window.history.state?window.history.state.selectedBrandId:n.model.selectedBrandId;n.model.search=i.search;n.model.fixed=n.model.selectedCategory?n.model.selectedCategory.fixed:n.model.fixed;n.model.brandName=n.selectedCategoryId&&o()?undefined:i.brandName;n.model.page=i.page<0?0:i.page;n.model.sortId=i.sortFilter?i.sortFilter.selectedOption.id:undefined;n.model.priceId=i.priceFilter?i.priceFilter.selectedOption.id:undefined;n.model.sizeId=i.sizeFilter?i.sizeFilter.selectedOption.id:undefined;n.model.paletteId=i.paletteFilter?i.paletteFilter.selectedOption.id:undefined;n.model.recordsPerPageId=i.recordsPerPageFilter?i.recordsPerPageFilter.selectedOption.id:undefined;n.model.scrollTop=i.scrollTop;n.model.currentProductsHtml=i.currentProductsHtml;n.model.recordCount=i.recordCount;n.model.totalPages=i.totalPages;var f=n.model,e=f.selectedCategory,c=e?e.route:"",s=f.selectedCategory?f.selectedCategory.id:undefined,h={selectedCategory:e,filterOptions:t,selectedBrandId:s&&o()?undefined:f.brandFilter&&f.brandFilter.selectedOption&&f.brandFilter.selectedOption.id?f.brandFilter.selectedOption.id:!n.model.selectedBrandId&&window.history.state?window.history.state.selectedBrandId:n.model.selectedBrandId,brandName:s&&o()?undefined:f.brandName,search:r,fixedGroup:u,fixed:e?e.fixed:"",selectedCategoryId:e?e.id:"",page:f.page<0?0:f.page,sortId:f.sortFilter.selectedOption.id,priceId:f.priceFilter.selectedOption.id,sizeId:f.sizeFilter.selectedOption.id,paletteId:f.paletteFilter.selectedOption.id,recordsPerPageId:f.recordsPerPageFilter.selectedOption.id,scrollTop:i.scrollTop,currentProductsHtml:n.model.currentProductsHtml,recordCount:f.recordCount,totalPages:f.totalPages};console.info("Replacing State - where: 11996");console.info(h.page);window.history.replaceState(h,"")},n.isBrandRoute=function(){return window.location.pathname.indexOf("/brand")===0},n.setBrand=function(t,i){n.model.brandName=t;n.model.fixedGroup=i||n.isBrandRoute()?"AllGroupBrand":undefined;n.model.selectedBrandId=i;n.model.brandFilter&&i&&n.model.brandFilter.changeFilterById(i);n.model.brandFilter&&!i&&n.model.brandFilter._selectDefault();window.history.state&&(window.history.state.brandName=t,window.history.state.selectedBrandId=i)},n.setFixedGroup=function(t){var u=function(n,t,i){var r=[],f=i.filter(function(i){return i.group===n&&i.fixed===t})[0];return n=="Brand"?[model.brandName]:f?[f]:(i.some(function(i){return i.subs&&(r=u(n,t,i.subs),r.length)?(r.unshift(i),!0):!1}),r)},i,r;(n.model.fixedGroup=t,n.model.fixedGroupPath=[],t)&&(i=n.model.fixedGroup.match(/^(.*Group).*$/),r=n.model.fixedGroup.match(/^.*Group(.*)$/),i&&i.length>1&&r&&r.length>1&&(n.model.fixedGroupPath=u(i[1],r[1],e)))},{init:function(t,i,r,u,f){n.init(t,i,r,u,f)},$get:function(){return n}}}])}();angular.module("exciteApp").provider("productCategory",function(){"use strict";var n={rootCategoryId:undefined};return{init:function(t){n.rootCategoryId=t},$get:function(){return n}}});angular.module("exciteApp").provider("otherSitesInfo",function(){"use strict";var n={otherSites:undefined};return{init:function(t){n.otherSites=t},$get:function(){return n}}});angular.module("exciteApp").controller("CartCounterController",["$window","$scope","cartSharedData","$timeout",function(n,t,i,r){"use strict";function u(){r(function(){if($(".product-details").length>0){var n=$(".product-details").data("product-id");$.ajax({type:"POST",url:"/Cart/Get"}).success(function(t){var i=_.some(t.lines,function(t){return t.productId===n});i?$(".item-in-cart").removeClass("hidealert"):$(".item-in-cart").addClass("hidealert")})}})}$(n).on("pageshow",function(n){(n.persisted||n.originalEvent&&n.originalEvent.persisted)&&t.$apply(function(){console.log("showHideItemAddedToCart() - 1");i.initTotalCartItems();u()})});console.log("showHideItemAddedToCart() - 2");i.initTotalCartItems();u();this.model=i}]);angular.module("exciteApp").controller("CategorySearchController",["$window","apiQuery","categories","filters","productFetcher","siteInfo","overlay",function(n,t,i,r,u,f,e){"use strict";var s=this,o=s.model={filtersModel:r.model,searchMode:"all"},l=300,c,h;c=function(){var t,i;o.filtersModel.search||(t=n.location.search,t&&(i=t.match(/search=([^&]*)/),!i||(o.filtersModel.search=decodeURIComponent(i[1]))))};s.isCategorySelected=function(){return r.hasSelectedCategory()};s.submit=function(t){document.activeElement.blur();var i="/Search",f;if(closeMobileMenu(),r.model.search.toLowerCase()==="we-vibe"){n.location.href="/wevibe";return}(i!==n.location.pathname||t.$dirty)&&(r.isInitialized()?(o.searchMode==="all"?(f=r.model.search,r.setBrand(),r.clearFilters(0),r.clearFilters(1),r.clearSimpleFilters(),r.setFixedGroup(),r.model.search=f,o.filtersModel.search&&(document.title="Search Results - "+o.filtersModel.search,o.filtersModel.searchTerm=o.filtersModel.search)):r.clearSimpleFilters({not:["search"]}),$(".mobile-next-button").css("visibility","hidden"),$(".mb .pagination").css("visibility","hidden"),e.showSpinner=!0,e.showOverlay(),u.fetchProducts(0).then(function(){$(".mobile-next-button").css("visibility","visible");$(".mb .pagination").css("visibility","visible");e.showSpinner=!1;e.hide();$("html,body").animate({scrollTop:0},1)})):o.filtersModel.search?(console.log("*****-**-*--*-"),n.location.href=i+"?search="+encodeURIComponent(o.filtersModel.search)):n.location.href=i)};s.typeahead=function(i,u){var f=o.searchMode==="all"?null:r.model.selectedCategory&&r.model.selectedCategory.id;h&&n.clearTimeout(h);h=n.setTimeout(function(){t.getProductAutoCompelteByCriteria({q:i,categoryId:f}).success(function(n){u(n&&n.suggestions)})},l)};c()}]);angular.module("exciteApp").controller("MenuController",["$log","$scope","filters","productFetcher","categories","categoryGroups","productCategory","overlay","siteInfo","$rootScope","$timeout",function(n,t,i,r,u,f,e,o,s,h,c){"use strict";function k(){l.model.activeCategoryGroups=_.filter(f,function(n){return l.isActiveCategoryGroup(n.name.replace(" ",""))})}function y(){var n,t;window.location.pathname.length>0&&(n=window.location.pathname.substring(1),$(".new-section li").removeClass("active"),t=!1,$(".new-section li").each(function(i,r){$(r).data("route")==n&&($(r).addClass("active"),t=!0)}),setTimeout(function(){$(".new-section li.active").length>0?$(".sub-category-mixin .footer a").removeClass("active"):$(".sub-category-mixin .footer a").addClass("active")},0));h.$evalAsync(function(){k()})}function tt(n){return n.substr(0,1).toUpperCase()+n.substr(1)}function d(n){return n.split(" ").map(function(n){return tt(n)}).join(" ")}function g(n,t,i){c(function(){var u="",f,r,e,o;i&&i.length>0?(f="",document.title.lastIndexOf("-")>-1&&(f=document.title.substring(document.title.lastIndexOf("-"),document.title.length)),r=window.location.pathname,r[r.length-1]==="/"&&(r=r.substring(0,r.length-1)),e=r.substring(r.lastIndexOf("/")+1),r=r.substring(0,r.lastIndexOf("/")),o=r.substring(r.lastIndexOf("/")+1),e=e.split("-").join(" "),o=o.split("-").join(" "),u=d(e)+" "+d(o)+(f.length>0?" "+f:"")):(n&&n.selectedOption&&n.selectedOption.name&&n.selectedOption.name.indexOf("View all")==-1&&(u+=n.selectedOption.name+" "),t&&t.selectedOption&&(u+=t.selectedOption.name),u=u+" - "+s.siteName);document.title=nt(u);y()})}function nt(n){var t=n,i="Australia";window.location.href.includes(".co.nz")&&(i="New Zealand");switch(n.trim()){case"Her Sex Toys - WildSecrets":t="Sex Toys - "+i+"'s No.1 Sex Toys Online Store";break;case"Vibrators Her Sex Toys - WildSecrets":t="Vibrators - "+i+"'s No.1 Vibrator Online Store";break;case"Lingerie - FantasyLingerie":t="Lingerie "+i+", Plus Size Lingerie - Fantasy Lingerie";break;case"Hosiery - FantasyLingerie":t="Stockings - Fantasy Lingerie";break;case"Male Pumps His Toys - WildSecrets":t="Penis Pumps - WildSecrets";break;case"Dildos Dongs Dongs Dildos Strapons Her Sex Toys - WildSecrets":t="Dildos - WildSecrets";break;case"Dongs, Dildos, & Strapons Her Sex Toys - WildSecrets":t="Dildos - "+i+"'s No.1 Dildo Online Store";break;case"Dongs Dildos Strapons Her Sex Toys - WildSecrets":t="Dildos - "+i+"'s No.1 Dildo Online Store"}return t.replace("Group","").trim()}var l=this,it=l.model={categories:u,categoryGroups:f,siteid:s.siteId},a,v,w,b,p;u[0].menuMap&&(p=_.map(u[0].menuMap,function(n){return n.id}));l.isCategoryGroupPath=function(){return window.location.pathname.indexOf("on-sale")!==-1||window.location.pathname.indexOf("best-sellers")!==-1||window.location.pathname.indexOf("new")!==-1};l.isActiveCategoryGroup=function(n){return n==="FootwearSizeAllGroup"||n==="FootwearColourAllGroup"||n==="AllExternalGroup"?!1:i.model.fixedGroup&&i.model.fixedGroup.search(n+"$")>0};l.isActiveCategoryGroupNewSection=function(n){if(window.location.pathname.length>0){var t=window.location.pathname.substring(1);if(n.route==t)return!0}return!1};l.isBrandPage=function(){return i.model.fixedGroup==="AllGroupBrand"};l.isBrandName=function(){return i.model.brandName};k();y();a=function(n,t){var i,r;if(!/Android/.test(navigator.userAgent)){t&&t();return}i=$(n);r=i.data("clicked-twice");$("li.dropdown a").data("clicked-twice",!1);r?t&&t():(i.data("clicked-twice",!0),event.preventDefault())};h.$on("productsFiltered",function(){y()});v=function(n,t,u,f){event.preventDefault();i.model.fixedGroup="";h.$evalAsync(function(){y()});f&&i.setBrand();i.model.fixedGroup="";i.clearSimpleFilters();h.$broadcast("pagingOccured");var e=i.model.rootCategoryFilter,o=i.model.firstCategoryFilter,s=function(){return e.selectedOption&&e.selectedOption.id};if(!t&&u.match(/Group/)){e&&e.selectDefault();w(u);i.setFixedGroup(u);$(".mobile-next-button").css("visibility","hidden");r.fetchProducts(0).then(function(){$(".mobile-next-button").css("visibility","visible");b(u);g(o,e,u)});return}t===s()&&n||e.changeFilterById(t);n&&o.changeFilterById(n);$(".mobile-next-button").css("visibility","hidden");r.fetchProducts(0).then(function(){$(".mobile-next-button").css("visibility","visible");g(o,e,u)})};t.changeBrand=l.changeBrand=function(n,t,u){var o,e,f;n.preventDefault();i.setBrand(t,u);i.clearFilters(0);i.clearFilters(1);i.model.fixedGroup="AllGroupBrand";o={fixed:"Brand",group:"AllGroup",name:"Brands",route:"brand/",subs:[]};i.model.fixedGroupPath=[];i.model.fixedGroupPath.push(o);i.model.categoryPath=[];r.fetchProducts(0);e=document.title.substring(document.title.indexOf("-"),document.title.length);f="";document.title.indexOf("-")>-1&&(f=t+" Brand "+e);t||(f="Brand "+e);document.title=nt(f)};w=function(n){var t=i.model.rootCategoryFilter;(n.match(/FootwearColour/)||n.match(/FootwearSize/))&&t.changeFilterById("6")};b=function(n){var f=i.model.sizeFilter,e=i.model.paletteFilter,t,r,u;r=/FootwearSize(\d+)GroupFootwearSizeGroup/.exec(n);u=/FootwearColour(.+)GroupFootwearColourGroup/.exec(n);r&&(t=_.find(f.filterOptions,function(n){return n.name===r[1]}),t&&f.changeFilterById(t.id));u&&(t=_.find(e.filterOptions,function(n){return n&&n.name&&n.name.replace(/[ -]/g,"")===u[1]}),t&&e.changeFilterById(t.id))};l.changeCategoryMobile=function(n,t){o.showSpinner=!0;i.model.fixedGroup="";v(n,t);i.setBrand();h.$broadcast("pagingOccured")};t.changeCategory=l.changeCategory=v;l.hrefClick=function(n){a(n.currentTarget)};l.changeRootCategory=function(n,t,r,u){var f;return r==="AllExternalGroupExternal"?a(n.currentTarget):(h.$broadcast("pagingOccured"),i.setBrand(),i.clearSimpleFilters(),i.model.fixedGroup="",r)?(f=a(n.currentTarget),console.log(u),u!=="DVDS"&&(v(null,t,r),n.preventDefault()),f):a(n.currentTarget,function(){v(null,t,r)})};l.isActive=function(n){var t,r,u;return e.rootCategoryId?e.rootCategoryId===n:p&&i.isInitialized()&&i.model.selectedCategory&&(r=i.model.selectedCategory,u=_.find(p,function(n){return n===r.id}),u)?r.id===n?!0:!1:(t=i.model.rootCategoryFilter,i.isInitialized()&&t.selectedOption&&t.selectedOption.id===n)};l.productsVisible=function(){return i.isInitialized()};l.findRootCategory=function(n){return _.find(u,function(t){return t.id===n})}}]);String.prototype.toProperCase=function(){return this.replace(/\w\S*/g,function(n){return n.charAt(0).toUpperCase()+n.substr(1).toLowerCase()})};angular.module("exciteApp").controller("SidebarController",["filters","productFetcher","apiQuery","categoryGroups","$rootScope","siteInfo","overlay",function(n,t,i,r,u,f,e){"use strict";function c(){i.getWholesaleBrands().success(function(n){o.wholesaleBrands=n.brands})}function l(n){var t=n,i="Australia";window.location.href.includes(".co.nz")&&(i="New Zealand");switch(n.trim()){case"Her Sex Toys - WildSecrets":t="Sex Toys - "+i+"'s No.1 Sex Toys Online Store";break;case"Vibrators Her Sex Toys - WildSecrets":t="Vibrators - "+i+"'s No.1 Vibrator Online Store";break;case"Lingerie - FantasyLingerie":t="Lingerie "+i+", Plus Size Lingerie - Fantasy Lingerie";break;case"Hosiery - FantasyLingerie":t="Stockings - Fantasy Lingerie";break;case"Male Pumps His Toys - Wild Secrets":t="Penis Pumps - Wild Secrets";break;case"Dildos Dongs Dongs Dildos Strapons Her Sex Toys  - WildSecrets":t="Dildos - Wild Secrets";break;case"Male Pumps His Toys - WildSecrets":t="Penis Pumps - Wild Secrets";break;case"Dongs, Dildos, & Strapons Her Sex Toys - WildSecrets":t="Dildos - "+i+"'s No.1 Dildo Online Store";break;case"Dongs Dildos Strapons Her Sex Toys - WildSecrets":t="Dildos - "+i+"'s No.1 Dildo Online Store"}return t.replace("Group","").trim()}var o=this,h=!0,s=!0;o.filtersModel=n.model;o.selectedBrand={};f.siteId==60&&c();o.brandCategories=function(){return r[2].subs};o.filtersModel.brandBreadCrumb=function(){var n=(o.filtersModel.brandName||"").replace(/-/g," ").replace(/AMPM/g,"AM:PM").replace(/Swim Beachwear/g,"Swim & Beachwear");return n.toProperCase()};o.filtersModel.brandBreadCrumbRoute=function(n){return o.filtersModel.brandName?"brand/"+o.filtersModel.brandName+"/"+n:n};o.isBrandPage=function(){return n.model.fixedGroup==="AllGroupBrand"};o.filtersModel.getRoute=function(n){var t=n.replace(/['`��"",\\&%:]|(&\s)|(\s&)/g,"");return t.replace(/[_.\s-/]/g,"-")};o.rootCategoryName=function(){return n.model.rootCategoryFilter.selectedOption.name};o.changeBrand=function(i,r){var u,f;i.preventDefault();o.selectedBrand=r;n.setBrand(r.brandName,r.id.substring(r.id.indexOf("/")+1));n.clearFilters(0);n.clearFilters(1);n.model.categoryPath=[];t.fetchProducts(0);u="";document.title.indexOf("-")>-1&&(f=document.title.substring(document.title.indexOf("-"),document.title.length),u=r.brandName+" Brand "+f);document.title=u};o.currentBrandId=function(){return window.history.state.selectedBrandId};o.viewAllBrands=function(){o.selectedBrand=undefined;n.model.brandName=undefined;event.preventDefault();n.clearFilters(0);n.clearFilters(1);n.clearFilters(2);n.model.brandFilter._selectDefault();t.fetchProducts(0).then(function(){$(".mobile-next-button").css("visibility","visible");$(".mb .pagination").css("visibility","visible");e.hide();$(window).scrollTop(0)})};o.resetToDefaultBrandOnlyFilter=function(i){i.preventDefault();n.clearFilters(0);n.clearFilters(1);n.clearFilters(2);$(".mobile-next-button").css("visibility","hidden");$(".mb .pagination").css("visibility","hidden");e.showOverlay();t.fetchProducts(0).then(function(){$(".mobile-next-button").css("visibility","visible");$(".mb .pagination").css("visibility","visible");e.hide();$(window).scrollTop(0)})};o.isActiveRootBrand=function(){return o.isBrandPage()&&n.model.rootCategoryFilter&&n.model.rootCategoryFilter.selectedOption&&(!n.model.firstCategoryFilter||n.model.firstCategoryFilter&&!n.model.firstCategoryFilter.selectedOption)&&(!n.model.secondCategoryFilter||n.model.secondCategoryFilter&&!n.model.secondCategoryFilter.selectedOption)};o.changeFilter=function(i,r){var a,c,e,o;if(event.preventDefault(),r.fixed==="ViewAll"){n.model.rootCategoryFilter.changeFilterById(r.id);t.fetchProducts(0);return}for(a=n.model,s=a.firstCategoryFilter.selectedOption===r?!s:!0,h=a.rootCategoryFilter.selectedOption===r?!h:!0,n.setBrand(),n.skipKillBrand=!0,n.clearSimpleFilters(),i.changeFilter(r),t.fetchProducts(0),c=r.route.split("/").reverse().join("-").split("-"),e="",o=0;o<=c.length-1;o++)e=e+c[o].charAt(0).toUpperCase()+c[o].slice(1)+" ";n.model.brandName&&(e=e+n.model.brandName+" ");e=e.trim()+" - "+f.siteName;document.title=l(e);u.$broadcast("pagingOccured")};o.getFilters=function(){var n=o.filtersModel.firstCategoryFilter.filterOptions;return _.reject(n,function(n){return n.route.indexOf("gift-ideas")>-1})};o.showGiftIdeas=function(){var n=o.filtersModel.firstCategoryFilter.filterOptions,t=_.filter(n,function(n){return n.route.indexOf("gift-ideas")>-1}),i=_.first(t);o.changeFilter(o.filtersModel.firstCategoryFilter,i)};o.isSelected=function(t){var i=n.model;return t===i.firstCategoryFilter.selectedOption||t===i.secondCategoryFilter.selectedOption};o.getGiftIdeasUrl=function(){var n=o.filtersModel.firstCategoryFilter.filterOptions,t=_.filter(n,function(n){return n.route.indexOf("gift-ideas")>-1}),i=_.first(t);return i.route};o.getSelectedClass=function(n){return o.isSelected(n)?"active":""};o.isBrandSelected=function(n){var t=n.id.substring(n.id.indexOf("/")+1),i=window.location.pathname.split("/")[3];return t==i};o.showThrobber=function(i){return t.loading&&i===n.model.selectedCategory};o.selectedBrandFilterName=function(){if(n.model.brandFilter&&n.model.brandFilter.selectedOption&&n.model.brandFilter.selectedOption.id)return n.model.brandFilter.selectedOption.name};o.showCategories=function(){return n.model.brandName?!1:n.model.fixedGroup&&n.model.fixedGroup!=="BestSellers"&&n.model.fixedGroup!=="OnSale"&&n.model.fixedGroup!=="New"&&n.model.fixedGroup!=="GiftIdea"&&n.model.fixedGroup!=="ViewAll"?!1:n.isInitialized()&&!n.model.rootCategoryFilter.defaultSelected()};o.showAllCategoriesHeader=function(){return n.model.brandName?!1:n.model.fixedGroup&&n.model.fixedGroup!=="BestSellers"&&n.model.fixedGroup!=="OnSale"&&n.model.fixedGroup!=="New"&&n.model.fixedGroup!=="GiftIdea"&&n.model.fixedGroup!=="ViewAll"?!1:n.isInitialized()&&!n.model.rootCategoryFilter.defaultSelected()};o.showAllCategories=function(){return n.model.brandName?!1:n.isInitialized()&&!n.model.rootCategoryFilter.defaultSelected()};o.showRootMenu=function(){return h};o.showSubMenu=function(t){var i=n.model;return s&&o.isSelected(t)&&i.secondCategoryFilter.filterOptions.length>1}}]);angular.module("exciteApp").controller("StudentDiscountController",["categoryGroups","categories","$scope",function(n,t){"use strict";function r(){i.categories=t;i.categories.length&&(i.category=i.categories[0],u(i.category));console.log(i.category)}function u(n){angular.forEach(n.subs,function(n){n.fixed?n.fixed!=="GiftIdea"?i.fixedSubcategories.push(n):i.giftIdeasCategory=n:i.subcategories.push(n)});console.log("finished processing",i.subcategories,i.fixedSubcategories,i.giftIdeasCategory)}var i=this;i.categories=[];i.category=null;i.fixedSubcategories=[];i.subcategories=[];i.giftIdeasCategory={};r()}]);angular.module("exciteApp").controller("CompetitionsController",["$scope","$window","apiQuery","apiCommand","makeBroadcastStatus",function(n,t,i,r,u){"use strict";var o=this,f=o.model={feedback:[],totalItems:0,winner:"",competition:{firstName:"",lastName:"",state:"",email:"",comment:"",how:"",age:undefined,gender:undefined,live:""}},e=u("competition_status"),s=n.validation={show:!1};n.pageNumber=1;n.pageSize=20;n.prevPage=function(){console.log("prev");n.pageNumber-=1;n.loadData()};n.nextPage=function(){console.log("next");n.pageNumber+=1;n.loadData()};n.loadData=function(){i.getCompetitionFeedback(n.pageNumber,n.pageSize).success(function(n){f.feedback=n.entries;f.totalItems=n.totalItems;f.winner=_.find(n.entries,function(n){return n.winner})});$(window).scrollTop(0)};n.loadData();o.submit=function(){if(n.competitionsForm.$dirty&&n.competitionsForm.$valid){if(!e.start())return;r.registerForCompetition({competition:f.competition}).success(function(){e.setSuccess();f.competition.firstName="";f.competition.lastName="";f.competition.state="";f.competition.email="";f.competition.comment="";f.competition.how="";f.competition.age=undefined;f.competition.gender=undefined;f.competition.live="";s.show=!1;$(t).scrollTop(0)}).error(function(){e.setError();$(t).scrollTop(0)})}else s.show=!0}}]);angular.module("exciteApp").controller("DealsController",["$scope","$window","apiCommand","makeStatus",function(n,t,i,r){"use strict";var f=this,e=f.model={email:""},u=f.status=r(),o=n.validation={show:!1},s=!1;f.init=function(n){s=n};f.submit=function(){if(u.clear(),n.dealsForm.$dirty&&n.dealsForm.$valid){if(!u.start())return;i.signupForDeals(e.email,"SpecialDeals").success(function(n){n&&n.error?u.setError(n.error):(u.setSuccess(["Thank you for Signing up to our Free Gifts and amazing up to 70% off deals."]),e.email="",o.show=!1)}).error(function(){u.setError()})}else s?o.show=!0:t.location="/info/special-deals"}}]);angular.module("exciteApp").controller("OtherSitesController",["otherSitesInfo",function(n){"use strict";var t=this,i=t.model={otherSites:n.otherSites}}]);angular.module("exciteApp").controller("SiteInfoController",["siteInfo",function(n){"use strict";var t=this,i=t.model=n}]);angular.module("exciteApp").controller("CategoryLinksController",["categories","siteInfo",function(n,t){"use strict";var i=this,r=i.model={categoryTags:[]},u=function(n,t){var i=_.find(t,function(t){return t.id===n});return i?i:(t.some(function(t){return t.subs&&(i=u(n,t.subs),i)?!0:!1}),i)};i.init=function(i){_.each(i,function(t){var i=u(t.id,n);i&&r.categoryTags.push(i)});_.each(r.categoryTags,function(n){var i=n.route;t.siteId===3?i==="dvds"?i="straight-dvds":(i.replace(/^dvds\/straight\//,"straight-dvds/"),i.replace(/^dvds\/gay\//,"gay-dvds/")):i.replace(/^lingerie\/lingerie\//,"lingerie/");n.route=i})}}]);angular.module("exciteApp").factory("giftOfferCoordinator",function(){"use strict";var n={updateCartText:"",freeGiftTotals:null,brandId:null,brandName:null,parentProductId:null,isPreview:!1,error:!1},r="",t=[],i=[];return n.configureFreeOffer=function(n){r="free";this.updateCartText=n},n.configurePromoOffer=function(n){r="promo";this.updateCartText=n},n.showPromoOffer=function(n){this.brandId=n.brandId;this.brandName=n.brandName;this.parentProductId=n.parentProductId;this.isPreview=!!n.isPreview;t.forEach(function(n){n()})},n.showFreeOffer=function(n,i){this.freeGiftTotals=n;this.isPreview=!!i;t.forEach(function(n){n()})},n.hideOffer=function(){i.forEach(function(n){n()})},n.offerType=function(){return r},n.on=function(n,r){switch(n){case"show":t.push(r);break;case"hide":i.push(r)}},n.off=function(n,r){switch(n){case"show":t=_.without(t,r);break;case"hide":i=_.without(i,r)}},n}).directive("giftOffer",["$compile","giftOfferCoordinator",function(n,t){"use strict";var i='<div ng-show="!showOffer"\n     class="host-container">\n<\/div>\n<div ng-show="showOffer"\n     class="gift-offer-container"\n     data-ng-cloak>\n<\/div>',r=function(n,t){n==="promo"&&($("#desktopHeaderContainer").data("affix-is-disabled",!0),$("#header").show(),$("#floatingHeader").hide(),$("#desktopHeaderContainer").removeClass("affix affix-top affix-bottom"),$("#desktopHeaderContainer").addClass("affix"),$("#giftOffer").css("margin-top","0"),$("#giftHeader").css("position","inherit"));t.showOffer=!0},u=function(n){$("#desktopHeaderContainer").data("affix-is-disabled",!1);$("#header").show();$("#floatingHeader").hide();$("#desktopHeaderContainerPad").hide();$("#desktopHeaderContainer").removeClass("affix affix-top affix-bottom");$("#desktopHeaderContainer").addClass("affix-top");n.showOffer=!1};return{restrict:"A",scope:{},terminal:!0,compile:function(f){var e=f.contents(),o=e.closest(".host-view").clone(),s=e.closest(".gift-offer-view").clone(),h,c,l;return f.html(i),h=n(f.children()),o.appendTo(f.find(".host-container")),s.appendTo(f.find(".gift-offer-container")),c=n(o),l=n(s),function(n,i,f){try{var e=f.giftOffer,o=f.returnText,s=function(){r(e,n)},a=function(){u(n)};n.showOffer=!1;c(n.$parent);l(n.$parent);h(n);e==="free"?t.configureFreeOffer(o):t.configurePromoOffer(o);t.on("show",s);t.on("hide",a);n.$on("$destroy",function(){t.off("show",s);t.off("hide",a)})}catch(v){console.log("Failed to load gift view: "+v)}}}}}]).directive("freeGiftPreview",["giftOfferCoordinator",function(n){"use strict";var t='<div class="free-gift-preview">\n  <div ng-transclude><\/div>\n<\/div>';return{restrict:"A",scope:{},transclude:!0,template:t,link:function(){n.configureFreeOffer("");n.showFreeOffer(null,!0)}}}]).controller("GiftOfferController",["$log","$scope","$window","apiQuery","apiCommand","giftOfferCoordinator","overlay","cartSharedData",function(n,t,i,r,u,f,e,o){"use strict";var b=4,h=this,s=h.model={title:"",brandName:"",maxGifts:"",products:[],selectedProducts:[],invalidSelections:[],currentPage:0,totalProducts:0,viewedProducts:0,productsFetched:0,totalPages:0,pagerReset:-1,freeGiftTotals:0,updateCartText:"",offerType:undefined,isPreview:!1,initialized:!1,fetching:!1,showNext:!0,categoryCriteria:{includeAll:!0,includeToys:!0,includeLingerie:!0,includeStraightDvds:!0,includeGayDvds:!0,includeToys2:!1,includeLingerie2:!1,includeStraightDvds2:!1,includeGayDvds2:!1},categoryCriteriaOptions:[{name:"View All FREE GIFTS",value:0},{name:"Toys, Novelties & Lubes",value:1},{name:"Lingerie & Hosiery",value:2}],dvdCategoryCriteriaOptions:[{name:"View All FREE GIFTS",value:0},{name:"Straight DVD",value:1},{name:"Gay DVD",value:2}],selectedCategoryCriteriaOption:undefined,selectedDvdCategoryCriteriaOption:undefined,recordsPerPageOptions:[{name:20,value:20},{name:40,value:40}],selectedRecordsPerPage:undefined},l={setTitle:function(n){s.title=s.offerType==="free"?"Yippee! You qualify for "+n+" FREE GIFT(S)":f.brandName+" Special FREE GIFT Limited Time Offer"},getGifts:function(n,t,i){return s.selectedCategoryCriteriaOption=i.includeAll?s.categoryCriteriaOptions[0]:i.includeToys?s.categoryCriteriaOptions[1]:s.categoryCriteriaOptions[2],s.selectedDvdCategoryCriteriaOption=i.includeAll?s.dvdCategoryCriteriaOptions[0]:i.includeStraightDvds?s.dvdCategoryCriteriaOptions[1]:s.dvdCategoryCriteriaOptions[2],s.offerType==="free"?r.getFreeGifts(n,t,i):r.getBrandPromoGifts(f.parentProductId,f.brandId,n,t)},updateGifts:function(n){return s.offerType==="free"?u.updateFreeGifts(n):u.addBrandPromoGift(n&&n[0],f.parentProductId)}},y,k,a,v,c,p,d,g,nt,w;y=function(n){s.selectedProducts.length==s.maxGifts&&s.selectedProducts.pop();s.selectedProducts.push(n)};k=function(n){n.selectedVariation?y(n):n.variations.length===1?(n.selectedVariation=n.variations[0],y(n)):s.invalidSelections.push(n)};a=function(n,t){return n&&n.filter(function(n){return n.id===t})[0]};v=function(n){var t=a(s.selectedProducts,n.id);return t?s.selectedProducts.indexOf(t):-1};p=function(n){return n.length>0?(n.length-1)*b+n[n.length-1].length:0};d=function(n,t){var i=p(n);return t.forEach(function(t,r){var u=Math.floor((r+i)/b);u<n.length?n[u].push(t):n.push([t])}),n};g=function(n){var u=function(n,t){return n&&n.filter(function(n){return n.sku===t})[0]},i,r,t;if(n.selectedFreeGiftIds)for(i=0;i<n.selectedFreeGiftIds.length;i++)r=n.selectedFreeGiftIds[i],t=a(n.selectedFreeGifts,r.productId),t&&(t.selectedVariation=u(t.variations,r.skuId),s.selectedProducts.push(t))};nt=function(n,t,i){s.products=d(i?s.products:[],n.freeGifts);s.maxGifts=n.maxGifts;s.productsFetched=p(s.products);s.totalProducts=n.totalProducts;s.totalPages=n.totalPages;s.pagerReset=t;s.showNext=s.currentPage<s.totalPages-1;s.viewedProducts=(s.currentPage+1)*s.selectedRecordsPerPage.name;s.viewedProducts>s.totalProducts&&(s.viewedProducts=s.totalProducts);s.initialized||g(n)};c=function(n,t){s.currentPage=n;var r=s.selectedRecordsPerPage.value;return s.fetching=!0,e.showOverlay("Loading"),l.getGifts(n,r,s.categoryCriteria).success(function(r){t||i.scroll(0,0);nt(r,n,t);setTimeout(function(){$(".gift-row li img").height(10);$(".gift-row li img").height("auto")},500)})["finally"](function(){s.fetching=!1;e.hide()})};w=function(){s.initialized=!1;s.products=[];s.selectedProducts=[];s.invalidSelections=[];s.freeGiftTotals=f.freeGiftTotals;s.updateCartText=f.updateCartText;s.offerType=f.offerType();s.brandName=f.brandName;s.isPreview=f.isPreview;f.error=null;l.setTitle();s.selectedRecordsPerPage=s.recordsPerPageOptions[0];s.selectedCategoryCriteriaOption=s.categoryCriteriaOptions[0];s.selectedDvdCategoryCriteriaOption=s.dvdCategoryCriteriaOptions[0];c(0).then(function(){l.setTitle(s.maxGifts);s.initialized=!0});typeof i.history.pushState!="undefined"?i.history.pushState(null,"","#gift-offer"):i.location.hash="gift-offer";i.onhashchange=function(){i.location.hash||t.$apply(f.hideOffer())}};h.closeVariations=function(n){console.log("closing");n.closeVariations=!0;h.preselectedProduct=null};h.preselect=function(n){if(n.closeVariations){n.closeVariations=!1;return}if(!h.isOos(n)){if(!n.variations.length||n.variations.length===1||v(n)>-1){h.select(n);return}h.preselectedProduct=n;var t=$("#selectGiftVariationModalLink").data("target");t&&$(t).modal("show")}};h.completeSelection=function(n,t){t.quantity!==0&&(h.addingGift=!0,n.selectedVariation=t,h.select(n))};h.select=function(n){var t,i;if(!s.isPreview){if(t=v(n),s.invalidSelections=[],t>-1){s.selectedProducts.splice(t,1);return}return k(n),i=s.selectedProducts.map(function(n){return{productId:n.id,skuId:n.selectedVariation.sku}}),e.showSpinner=!0,e.showOverlay(),$(".return-to-cart").css("visibility","hidden"),l.updateGifts(i).success(function(n){o.update(n);h.preselectedProduct=null;var t=$("#selectGiftVariationModalLink").data("target");t&&$(t).modal("hide");h.addingGift=!1}).error(function(){f.error="There was an error adding your free gifts, please try again later.";h.preselectedProduct=null;var n=$("#selectGiftVariationModalLink").data("target");n&&$(n).modal("hide");h.addingGift=!1})["finally"](function(){e.hide();$(".return-to-cart").css("visibility","visible");closeOffer()})}};h.unselect=function(n){s.selectedProducts.length>n&&s.selectedProducts.splice(n,1)};h.isSelected=function(n){return!s.isPreview&&v(n)>-1};h.isOos=function(n){var t=n.variations.length===1&&n.variations[0].quantity===0;return!s.isPreview&&t};h.changeOosVariantDescription=function(n){var t=n.description,i=t.indexOf("-"),r="";return r=i===-1?t:t.substring(0,i),r+" (SOLD OUT)"};h.getSelectedVariantDescription=function(n){var t=a(s.selectedProducts,n.id);return t.selectedVariation&&t.selectedVariation.description?t.selectedVariation.description:null};h.isInvalidSelection=function(n){return s.invalidSelections.indexOf(n)>-1};h.VariationSelected=function(n){if(window.isMobile()){var t=s.invalidSelections.pop();s.invalidSelections.push(t);h.select(n)}};h.updateCart=function(){var n=function(){f.hideOffer();i.history.go(-1)},t;if(s.isPreview){n();return}return t=s.selectedProducts.map(function(n){return{productId:n.id,skuId:n.selectedVariation.sku}}),e.showOverlay(),l.updateGifts(t).success(function(n){o.update(n)}).error(function(){f.error="There was an error adding your free gifts, please try again later."})["finally"](function(){e.hide();n()})};h.goBack=function(){i.history.go(-1);s.isPreview&&s.offerType!=="promo"&&i.history.go(-1)};h.scrollToTop=function(){i.scrollTo(0,0)};h.changePageHandler=function(n){n-=1;c(n)};h.changeCategoryCriteria=function(){switch(s.selectedCategoryCriteriaOption.value){case 0:s.categoryCriteria.includeAll=!0;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!0;break;case 1:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!1;break;case 2:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeLingerie=!0;s.categoryCriteria.includeToys=!1}c(0)};h.changeDvdCategoryCriteria=function(){switch(s.selectedDvdCategoryCriteriaOption.value){case 0:s.categoryCriteria.includeAll=!0;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!0;break;case 1:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!1;break;case 2:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!1;s.categoryCriteria.includeGayDvds=!0}c(0)};h.includeAllChanged=function(){s.categoryCriteria.includeAll=!0;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!0;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!0;s.categoryCriteria.includeToys2=!1;s.categoryCriteria.includeLingerie2=!1;s.categoryCriteria.includeStraightDvds2=!1;s.categoryCriteria.includeGayDvds2=!1;c(0)};h.includeToysChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!1;s.categoryCriteria.includeToys2=!0;s.categoryCriteria.includeLingerie2=!1;c(0)};h.includeLingerieChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeToys=!1;s.categoryCriteria.includeLingerie=!0;s.categoryCriteria.includeToys2=!1;s.categoryCriteria.includeLingerie2=!0;c(0)};h.includeStraightDvdsChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!1;s.categoryCriteria.includeStraightDvds2=!0;s.categoryCriteria.includeGayDvds2=!1;c(0)};h.includeGayDvdsChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!1;s.categoryCriteria.includeGayDvds=!0;s.categoryCriteria.includeStraightDvds2=!1;s.categoryCriteria.includeGayDvds2=!0;c(0)};h.changeRecordsPerPage=function(){c(0)};h.updateRecordsPerPage=function(n){s.selectedRecordsPerPage=n;c(0)};h.fetchNextPage=function(){c(s.currentPage+1,!1)};f.on("show",w);t.$on("$destroy",function(){f.off("show",w)})}]);angular.module("exciteApp").controller("TabController",["$scope",function(n){"use strict";var t=n.model={tabPage:undefined};this.switchTo=function(n){t.tabPage=n};this.isVisible=function(n){return t.tabPage===n}}]).directive("tabView",function(){"use strict";return{restrict:"A",controller:"TabController",link:function(n,t,i){t.addClass("tab-view");n.model.tabPage=i.initialPage}}}).directive("tabSwitchto",["$log",function(){"use strict";return{restrict:"A",require:"^tabView",link:function(n,t,i,r){var u=i.tabSwitchto;t.on("click",function(){n.$apply(r.switchTo(u))})}}}]).directive("tabPage",function(){"use strict";return{restrict:"A",scope:{},transclude:!0,require:"^tabView",template:'<div ng-show="showPage()">  <div ng-transclude><\/div><\/div>',link:function(n,t,i,r){var u=i.tabPage;n.showPage=function(){return r.isVisible(u)}}}}),function(){"use strict";var n={start:function(n){return this.progressing?!1:(this.setProgress(n),!0)},stop:function(){this.progressing=!1},setProgress:function(n){this.clear();this.progressing=!0;this.progressMessage=n==null?this.defaultProgressMessage:n},setSuccess:function(n){this.clear();this.success=!0;this.successMessage=n==null?this.defaultSuccessMessage:n},setError:function(n){this.clear();this.error=!0;this.errorMessage=n==null?this.defaultErrorMessage:n},setInfo:function(n){this.clear();this.info=!0;this.infoMessage=n},clear:function(){this.progressing=!1;this.error=!1;this.success=!1;this.info=!1;this.progressMessage=null;this.errorMessage=null;this.successMessage=null;this.infoMessage=null}};angular.module("exciteApp").constant("makeStatus",function(){var t=Object.create(n);return _.extend(t,{progressing:!1,success:!1,error:!1,info:!1,progressMessage:null,successMessage:null,errorMessage:null,infoMessage:null,defaultProgressMessage:"Please wait ...",defaultSuccessMessage:"Success",defaultErrorMessage:"Oops something went wrong, please try again later."}),t}).factory("makeBroadcastStatus",["makeStatus",function(n){var t=[];return function(i){var r=_.find(t,function(n){return n.id===i});return r||(r=n(),r.id=i,t.push(r)),r}}]).directive("wsBroadcastStatusAlert",["makeBroadcastStatus",function(n){return{restrict:"A",scope:{statusId:"@",progressMessage:"=",successMessage:"=",errorMessage:"=",infoMessage:"=",titles:"=",hideSuccess:"="},template:'<div ws-status-alert\n     status-id="statusId"\n     show-error="model.error"\n     error-message="errorMessage || model.errorMessage"\n     show-success="model.success && !hideSuccess"\n     success-message="successMessage || model.successMessage"\n     show-info="model.info"\n     info-message="infoMessage || model.infoMessage"\n     show-progress="model.progressing"\n     progress-message="progressMessage || model.progressMessage"\n     titles="titles">\n<\/div>',link:function(t,i){if(t.statusId===undefined)throw new Error("status-id not specified");i.addClass("ws-status-alert");t.model=n(t.statusId)}}}]).directive("wsSubmitOrder",["makeBroadcastStatus",function(n){return{restrict:"A",scope:{statusId:"@",progressMessage:"=",successMessage:"=",errorMessage:"=",infoMessage:"=",titles:"="},template:'<div ws-submit-order-alert\n     status-id="statusId"\n     show-progress="model.progressing"\n     progress-message="progressMessage || model.progressMessage"\n     titles="titles">\n<\/div>',link:function(t,i){if(t.statusId===undefined)throw new Error("status-id not specified");i.addClass("ws-status-alert");t.model=n(t.statusId)}}}]).directive("wsSubmitOrderAlert",[function(){return{restrict:"A",scope:{showProgress:"=",progressMessage:"=",showError:"=",errorMessage:"=",showSuccess:"=",successMessage:"=",showInfo:"=",infoMessage:"=",titles:"="},template:'<div >\n  <div \n       ng-show="showProgress" ng-cloak>\n   <span>Processing...<\/span>\n  <img src="//media.exciteonlineservices.com.au/site-assets/shared/ajax-loader2.gif" style="height:15px">\n  <\/div>\n  <div \n       ng-show="!showProgress" ng-cloak>\n   <span>Submit Order<\/span>\n  <\/div>\n<\/div>',link:function(n,t){t.addClass("ws-status-alert");n.multiLineSuccessMessage=function(){return _.isArray(n.successMessage)}}}}]).directive("wsStatusAlert",[function(){return{restrict:"A",scope:{showProgress:"=",progressMessage:"=",showError:"=",errorMessage:"=",showSuccess:"=",successMessage:"=",showInfo:"=",infoMessage:"=",titles:"="},template:'<div class="status-alert">\n  <div class="alert alert-info"\n       ng-show="showProgress" ng-cloak>\n    <strong ng-if="titles">Please wait... <\/strong>\n    <span>{{progressMessage}}<\/span>\n  <\/div>\n  <div class="alert alert-error"\n       ng-show="showError" ng-cloak>\n    <strong ng-if="titles">Error ! <\/strong>\n    <span>{{errorMessage}}<\/span>\n  <\/div>\n  <div class="alert alert-success"\n       ng-show="showSuccess" ng-cloak>\n    <span ng-if="!multiLineSuccessMessage()">{{successMessage}}<\/span>\n    <span ng-if="multiLineSuccessMessage()">\n      <span ng-repeat="line in successMessage">{{line}}<\/span>\n    <\/span>\n  <\/div>\n  <div class="alert alert-info"\n       ng-show="showInfo" ng-cloak>\n    <span>{{infoMessage}}<\/span>\n  <\/div>\n<\/div>',link:function(n,t){t.addClass("ws-status-alert");n.multiLineSuccessMessage=function(){return _.isArray(n.successMessage)}}}}])}();angular.module("exciteApp").provider("siteInfo",function(){"use strict";var n={currencyCode:"AUD",rateAud:1};return{init:function(t){angular.extend(n,t)},$get:function(){return n}}}).filter("money",function(){"use strict";return function(n,t){n=""+n;switch(t){case"cents":if(n.length>2)return n.substring(n.length-2,n.length);break;case"dollars":if(n.length>3)return n.substring(1,n.length-3)}return""}}).directive("showGst",["siteInfo",function(n){"use strict";return{restrict:"A",scope:{},transclude:!0,template:'<span ng-show="showGst"><span ng-transclude><\/span><\/span>',link:function(t){t.showGst=n.currencyCode==="AUD"}}}]).directive("wsShowAudAmount",["siteInfo",function(n){"use strict";return{restrict:"A",scope:{},transclude:!0,template:'<span class="aud-amount" ng-show="showAudAmount"><span ng-transclude><\/span><\/span>',link:function(t){t.showAudAmount=n.currencyCode!=="AUD"}}}]).directive("wsAmount",["siteInfo",function(n){"use strict";var t=_.map(["<span>",'  <span ng-class="{ price: !noStyle }">','    <span class="cur-sym">$<\/span>','    <span class="dollars"',"          ng-bind=\"getAmount() | currency:'$' | money:'dollars'\">","    <\/span>",'    <span ng-if="!hideCents">.<\/span>','    <span class="cents"','          ng-if="!hideCents"',"          ng-bind=\"getAmount() | currency:'$' | money:'cents'\">","    <\/span>",'    <span class="currency"','          ng-if="!hideCurrency"','          ng-bind="currencyCode"><\/span>',"  <\/span>","<\/span>"],function(n){return n.trim()}).join("");return{restrict:"A",scope:{amount:"=wsAmount",hideCurrency:"=",hideCents:"=",noStyle:"=",noConversion:"="},template:t,link:function(t){t.currencyCode=t.noConversion?"AUD":n.currencyCode;t.getAmount=function(){return!t.noConversion&&n&&n.rateAud>0?t.amount/n.rateAud:t.amount}}}}])