var sharedModule,loginModule;!function(n,t,i,r){"use strict";function hi(n,t,i){return setTimeout(ci(n,i),t)}function rt(n,t,i){return Array.isArray(n)?(v(n,i[t],i),!0):!1}function v(n,t,i){var u;if(n)if(n.forEach)n.forEach(t,i);else if(n.length!==r)for(u=0;u<n.length;)t.call(i,n[u],u,n),u++;else for(u in n)n.hasOwnProperty(u)&&t.call(i,n[u],u,n)}function fr(t,i,r){var u="DEPRECATED METHOD: "+i+"\n"+r+" AT \n";return function(){var i=new Error("get-stack-trace"),f=i&&i.stack?i.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",r=n.console&&(n.console.warn||n.console.log);return r&&r.call(n.console,u,f),t.apply(this,arguments)}}function o(n,t,i){var r,u=t.prototype;r=n.prototype=Object.create(u);r.constructor=n;r._super=u;i&&w(r,i)}function ci(n,t){return function(){return n.apply(t,arguments)}}function li(n,t){return typeof n==cf?n.apply(t?t[0]||r:r,t):n}function er(n,t){return n===r?t:n}function pt(n,t,i){v(bt(t),function(t){n.addEventListener(t,i,!1)})}function wt(n,t,i){v(bt(t),function(t){n.removeEventListener(t,i,!1)})}function or(n,t){for(;n;){if(n==t)return!0;n=n.parentNode}return!1}function d(n,t){return n.indexOf(t)>-1}function bt(n){return n.trim().split(/\s+/g)}function ut(n,t,i){if(n.indexOf&&!i)return n.indexOf(t);for(var r=0;r<n.length;){if(i&&n[r][i]==t||!i&&n[r]===t)return r;r++}return-1}function kt(n){return Array.prototype.slice.call(n,0)}function sr(n,t,i){for(var f,u=[],e=[],r=0;r<n.length;)f=t?n[r][t]:n[r],ut(e,f)<0&&u.push(n[r]),e[r]=f,r++;return i&&(u=t?u.sort(function(n,i){return n[t]>i[t]}):u.sort()),u}function dt(n,t){for(var i,u,e=t[0].toUpperCase()+t.slice(1),f=0;f<dr.length;){if(i=dr[f],u=i?i+e:t,u in n)return u;f++}return r}function yu(){return af++}function hr(t){var i=t.ownerDocument||t;return i.defaultView||i.parentWindow||n}function s(n,t){var i=this;this.manager=n;this.callback=t;this.element=n.element;this.target=n.options.inputTarget;this.domHandler=function(t){li(n.options.enable,[n])&&i.handler(t)};this.init()}function pu(n){var i,t=n.options.inputClass;return new(i=t?t:vf?vi:yf?ti:nu?yi:ni)(n,wu)}function wu(n,t,i){var r=i.pointers.length,o=i.changedPointers.length,s=t&f&&r-o==0,h=t&(u|e)&&r-o==0;i.isFirst=!!s;i.isFinal=!!h;s&&(n.session={});i.eventType=t;bu(n,i);n.emit("hammer.input",i);n.recognize(i);n.session.prevInput=i}function bu(n,t){var i=n.session,f=t.pointers,o=f.length,r,e;i.firstInput||(i.firstInput=cr(t));o>1&&!i.firstMultiple?i.firstMultiple=cr(t):1===o&&(i.firstMultiple=!1);var s=i.firstInput,u=i.firstMultiple,h=u?u.center:s.center,c=t.center=lr(f);t.timeStamp=nr();t.deltaTime=t.timeStamp-s.timeStamp;t.angle=ai(h,c);t.distance=gt(h,c);ku(i,t);t.offsetDirection=vr(t.deltaX,t.deltaY);r=ar(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=r.x;t.overallVelocityY=r.y;t.overallVelocity=g(r.x)>g(r.y)?r.x:r.y;t.scale=u?nf(u.pointers,f):1;t.rotation=u?gu(u.pointers,f):0;t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length;du(i,t);e=n.element;or(t.srcEvent.target,e)&&(e=t.srcEvent.target);t.target=e}function ku(n,t){var i=t.center,r=n.offsetDelta||{},e=n.prevDelta||{},o=n.prevInput||{};t.eventType!==f&&o.eventType!==u||(e=n.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=n.offsetDelta={x:i.x,y:i.y});t.deltaX=e.x+(i.x-r.x);t.deltaY=e.y+(i.y-r.y)}function du(n,t){var f,o,s,h,i=n.lastInterval||t,c=t.timeStamp-i.timeStamp;if(t.eventType!=e&&(c>pf||i.velocity===r)){var l=t.deltaX-i.deltaX,a=t.deltaY-i.deltaY,u=ar(c,l,a);o=u.x;s=u.y;f=g(u.x)>g(u.y)?u.x:u.y;h=vr(l,a);n.lastInterval=t}else f=i.velocity,o=i.velocityX,s=i.velocityY,h=i.direction;t.velocity=f;t.velocityX=o;t.velocityY=s;t.direction=h}function cr(n){for(var i=[],t=0;t<n.pointers.length;)i[t]={clientX:ft(n.pointers[t].clientX),clientY:ft(n.pointers[t].clientY)},t++;return{timeStamp:nr(),pointers:i,center:lr(i),deltaX:n.deltaX,deltaY:n.deltaY}}function lr(n){var t=n.length;if(1===t)return{x:ft(n[0].clientX),y:ft(n[0].clientY)};for(var r=0,u=0,i=0;t>i;)r+=n[i].clientX,u+=n[i].clientY,i++;return{x:ft(r/t),y:ft(u/t)}}function ar(n,t,i){return{x:t/n||0,y:i/n||0}}function vr(n,t){return n===t?fi:g(n)>=g(t)?0>n?st:ht:0>t?ct:lt}function gt(n,t,i){i||(i=iu);var r=t[i[0]]-n[i[0]],u=t[i[1]]-n[i[1]];return Math.sqrt(r*r+u*u)}function ai(n,t,i){i||(i=iu);var r=t[i[0]]-n[i[0]],u=t[i[1]]-n[i[1]];return 180*Math.atan2(u,r)/Math.PI}function gu(n,t){return ai(t[1],t[0],ei)+ai(n[1],n[0],ei)}function nf(n,t){return gt(t[0],t[1],ei)/gt(n[0],n[1],ei)}function ni(){this.evEl=bf;this.evWin=kf;this.pressed=!1;s.apply(this,arguments)}function vi(){this.evEl=ru;this.evWin=uu;s.apply(this,arguments);this.store=this.manager.session.pointerEvents=[]}function yr(){this.evTarget=te;this.evWin=ie;this.started=!1;s.apply(this,arguments)}function tf(n,t){var i=kt(n.touches),r=kt(n.changedTouches);return t&(u|e)&&(i=sr(i.concat(r),"identifier",!0)),[i,r]}function ti(){this.evTarget=eu;this.targetIds={};s.apply(this,arguments)}function rf(n,t){var r=kt(n.touches),o=this.targetIds;if(t&(f|nt)&&1===r.length)return o[r[0].identifier]=!0,[r,r];var i,s,h=kt(n.changedTouches),c=[],l=this.target;if(s=r.filter(function(n){return or(n.target,l)}),t===f)for(i=0;i<s.length;)o[s[i].identifier]=!0,i++;for(i=0;i<h.length;)o[h[i].identifier]&&c.push(h[i]),t&(u|e)&&delete o[h[i].identifier],i++;if(c.length)return[sr(s.concat(c),"identifier",!0),c]}function yi(){s.apply(this,arguments);var n=ci(this.handler,this);this.touch=new ti(this.manager,n);this.mouse=new ni(this.manager,n);this.primaryTouch=null;this.lastTouches=[]}function uf(n,t){n&f?(this.primaryTouch=t.changedPointers[0].identifier,pr.call(this,t)):n&(u|e)&&pr.call(this,t)}function pr(n){var t=n.changedPointers[0],i,r,u;t.identifier===this.primaryTouch&&(i={x:t.clientX,y:t.clientY},this.lastTouches.push(i),r=this.lastTouches,u=function(){var n=r.indexOf(i);n>-1&&r.splice(n,1)},setTimeout(u,ou))}function ff(n){for(var r=n.srcEvent.clientX,u=n.srcEvent.clientY,t=0;t<this.lastTouches.length;t++){var i=this.lastTouches[t],f=Math.abs(r-i.x),e=Math.abs(u-i.y);if(ir>=f&&ir>=e)return!0}return!1}function pi(n,t){this.manager=n;this.set(t)}function ef(n){if(d(n,it))return it;var t=d(n,at),i=d(n,vt);return t&&i?it:t||i?t?at:vt:d(n,rr)?rr:lu}function of(){if(!hu)return!1;var t={},i=n.CSS&&n.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(r){t[r]=i?n.CSS.supports("touch-action",r):!0}),t}function y(n){this.options=w({},this.defaults,n||{});this.id=yu();this.manager=null;this.options.enable=er(this.options.enable,!0);this.state=si;this.simultaneous={};this.requireFail=[]}function wr(n){return n&yt?"cancel":n&k?"end":n&et?"move":n&h?"start":""}function br(n){return n==lt?"down":n==ct?"up":n==st?"left":n==ht?"right":""}function ii(n,t){var i=t.manager;return i?i.get(n):n}function c(){y.apply(this,arguments)}function ri(){c.apply(this,arguments);this.pX=null;this.pY=null}function wi(){c.apply(this,arguments)}function bi(){y.apply(this,arguments);this._timer=null;this._input=null}function ki(){c.apply(this,arguments)}function di(){c.apply(this,arguments)}function ui(){y.apply(this,arguments);this.pTime=!1;this.pCenter=!1;this._timer=null;this._input=null;this.count=0}function p(n,t){return t=t||{},t.recognizers=er(t.recognizers,p.defaults.preset),new gi(n,t)}function gi(n,t){this.options=w({},p.defaults,t||{});this.options.inputTarget=this.options.inputTarget||n;this.handlers={};this.session={};this.recognizers=[];this.oldCssProps={};this.element=n;this.input=pu(this);this.touchAction=new pi(this,this.options.touchAction);kr(this,!0);v(this.options.recognizers,function(n){var t=this.add(new n[0](n[1]));n[2]&&t.recognizeWith(n[2]);n[3]&&t.requireFailure(n[3])},this)}function kr(n,t){var r=n.element,i;r.style&&(v(n.options.cssProps,function(u,f){i=dt(r.style,f);t?(n.oldCssProps[i]=r.style[i],r.style[i]=u):r.style[i]=n.oldCssProps[i]||""}),t||(n.oldCssProps={}))}function sf(n,i){var r=t.createEvent("Event");r.initEvent(n,!0,!0);r.gesture=i;i.target.dispatchEvent(r)}var w,dr=["","webkit","Moz","MS","ms","o"],hf=t.createElement("div"),cf="function",ft=Math.round,g=Math.abs,nr=Date.now,fu,eu,ou,ir,au,ur,vu;w="function"!=typeof Object.assign?function(n){var f,i,t,u;if(n===r||null===n)throw new TypeError("Cannot convert undefined or null to object");for(f=Object(n),i=1;i<arguments.length;i++)if(t=arguments[i],t!==r&&null!==t)for(u in t)t.hasOwnProperty(u)&&(f[u]=t[u]);return f}:Object.assign;var gr=fr(function(n,t,i){for(var f=Object.keys(t),u=0;u<f.length;)(!i||i&&n[f[u]]===r)&&(n[f[u]]=t[f[u]]),u++;return n},"extend","Use `assign`."),lf=fr(function(n,t){return gr(n,t,!0)},"merge","Use `assign`."),af=1,nu="ontouchstart"in n,vf=dt(n,"PointerEvent")!==r,yf=nu&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),ot="touch",tr="mouse",pf=25,f=1,nt=2,u=4,e=8,fi=1,st=2,ht=4,ct=8,lt=16,l=st|ht,tt=ct|lt,tu=l|tt,iu=["x","y"],ei=["clientX","clientY"];s.prototype={handler:function(){},init:function(){this.evEl&&pt(this.element,this.evEl,this.domHandler);this.evTarget&&pt(this.target,this.evTarget,this.domHandler);this.evWin&&pt(hr(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&wt(this.element,this.evEl,this.domHandler);this.evTarget&&wt(this.target,this.evTarget,this.domHandler);this.evWin&&wt(hr(this.element),this.evWin,this.domHandler)}};var wf={mousedown:f,mousemove:nt,mouseup:u},bf="mousedown",kf="mousemove mouseup";o(ni,s,{handler:function(n){var t=wf[n.type];t&f&&0===n.button&&(this.pressed=!0);t&nt&&1!==n.which&&(t=u);this.pressed&&(t&u&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[n],changedPointers:[n],pointerType:tr,srcEvent:n}))}});var df={pointerdown:f,pointermove:nt,pointerup:u,pointercancel:e,pointerout:e},gf={2:ot,3:"pen",4:tr,5:"kinect"},ru="pointerdown",uu="pointermove pointerup pointercancel";n.MSPointerEvent&&!n.PointerEvent&&(ru="MSPointerDown",uu="MSPointerMove MSPointerUp MSPointerCancel");o(vi,s,{handler:function(n){var t=this.store,o=!1,h=n.type.toLowerCase().replace("ms",""),r=df[h],s=gf[n.pointerType]||n.pointerType,c=s==ot,i=ut(t,n.pointerId,"pointerId");r&f&&(0===n.button||c)?0>i&&(t.push(n),i=t.length-1):r&(u|e)&&(o=!0);0>i||(t[i]=n,this.callback(this.manager,r,{pointers:t,changedPointers:[n],pointerType:s,srcEvent:n}),o&&t.splice(i,1))}});var ne={touchstart:f,touchmove:nt,touchend:u,touchcancel:e},te="touchstart",ie="touchstart touchmove touchend touchcancel";o(yr,s,{handler:function(n){var i=ne[n.type],t;(i===f&&(this.started=!0),this.started)&&(t=tf.call(this,n,i),i&(u|e)&&t[0].length-t[1].length==0&&(this.started=!1),this.callback(this.manager,i,{pointers:t[0],changedPointers:t[1],pointerType:ot,srcEvent:n}))}});fu={touchstart:f,touchmove:nt,touchend:u,touchcancel:e};eu="touchstart touchmove touchend touchcancel";o(ti,s,{handler:function(n){var i=fu[n.type],t=rf.call(this,n,i);t&&this.callback(this.manager,i,{pointers:t[0],changedPointers:t[1],pointerType:ot,srcEvent:n})}});ou=2500;ir=25;o(yi,s,{handler:function(n,t,i){var u=i.pointerType==ot,r=i.pointerType==tr;if(!(r&&i.sourceCapabilities&&i.sourceCapabilities.firesTouchEvents)){if(u)uf.call(this,t,i);else if(r&&ff.call(this,i))return;this.callback(n,t,i)}},destroy:function(){this.touch.destroy();this.mouse.destroy()}});var su=dt(hf.style,"touchAction"),hu=su!==r,cu="compute",lu="auto",rr="manipulation",it="none",at="pan-x",vt="pan-y",oi=of();pi.prototype={set:function(n){n==cu&&(n=this.compute());hu&&this.manager.element.style&&oi[n]&&(this.manager.element.style[su]=n);this.actions=n.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var n=[];return v(this.manager.recognizers,function(t){li(t.options.enable,[t])&&(n=n.concat(t.getTouchAction()))}),ef(n.join(" "))},preventDefaults:function(n){var i=n.srcEvent,r=n.offsetDirection;if(this.manager.session.prevented)return void i.preventDefault();var t=this.actions,u=d(t,it)&&!oi[it],f=d(t,vt)&&!oi[vt],e=d(t,at)&&!oi[at];if(u){var o=1===n.pointers.length,s=n.distance<2,h=n.deltaTime<250;if(o&&s&&h)return}if(!e||!f)return u||f&&r&l||e&&r&tt?this.preventSrc(i):void 0},preventSrc:function(n){this.manager.session.prevented=!0;n.preventDefault()}};var si=1,h=2,et=4,k=8,b=k,yt=16,a=32;y.prototype={defaults:{},set:function(n){return w(this.options,n),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(n){if(rt(n,"recognizeWith",this))return this;var t=this.simultaneous;return n=ii(n,this),t[n.id]||(t[n.id]=n,n.recognizeWith(this)),this},dropRecognizeWith:function(n){return rt(n,"dropRecognizeWith",this)?this:(n=ii(n,this),delete this.simultaneous[n.id],this)},requireFailure:function(n){if(rt(n,"requireFailure",this))return this;var t=this.requireFail;return n=ii(n,this),-1===ut(t,n)&&(t.push(n),n.requireFailure(this)),this},dropRequireFailure:function(n){if(rt(n,"dropRequireFailure",this))return this;n=ii(n,this);var t=ut(this.requireFail,n);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(n){return!!this.simultaneous[n.id]},emit:function(n){function t(t){i.manager.emit(t,n)}var i=this,r=this.state;k>r&&t(i.options.event+wr(r));t(i.options.event);n.additionalEvent&&t(n.additionalEvent);r>=k&&t(i.options.event+wr(r))},tryEmit:function(n){return this.canEmit()?this.emit(n):void(this.state=a)},canEmit:function(){for(var n=0;n<this.requireFail.length;){if(!(this.requireFail[n].state&(a|si)))return!1;n++}return!0},recognize:function(n){var t=w({},n);return li(this.options.enable,[this,t])?(this.state&(b|yt|a)&&(this.state=si),this.state=this.process(t),void(this.state&(h|et|k|yt)&&this.tryEmit(t))):(this.reset(),void(this.state=a))},process:function(){},getTouchAction:function(){},reset:function(){}};o(c,y,{defaults:{pointers:1},attrTest:function(n){var t=this.options.pointers;return 0===t||n.pointers.length===t},process:function(n){var t=this.state,i=n.eventType,r=t&(h|et),f=this.attrTest(n);return r&&(i&e||!f)?t|yt:r||f?i&u?t|k:t&h?t|et:h:a}});o(ri,c,{defaults:{event:"pan",threshold:10,pointers:1,direction:tu},getTouchAction:function(){var t=this.options.direction,n=[];return t&l&&n.push(vt),t&tt&&n.push(at),n},directionTest:function(n){var i=this.options,r=!0,u=n.distance,t=n.direction,f=n.deltaX,e=n.deltaY;return t&i.direction||(i.direction&l?(t=0===f?fi:0>f?st:ht,r=f!=this.pX,u=Math.abs(n.deltaX)):(t=0===e?fi:0>e?ct:lt,r=e!=this.pY,u=Math.abs(n.deltaY))),n.direction=t,r&&u>i.threshold&&t&i.direction},attrTest:function(n){return c.prototype.attrTest.call(this,n)&&(this.state&h||!(this.state&h)&&this.directionTest(n))},emit:function(n){this.pX=n.deltaX;this.pY=n.deltaY;var t=br(n.direction);t&&(n.additionalEvent=this.options.event+t);this._super.emit.call(this,n)}});o(wi,c,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[it]},attrTest:function(n){return this._super.attrTest.call(this,n)&&(Math.abs(n.scale-1)>this.options.threshold||this.state&h)},emit:function(n){if(1!==n.scale){var t=n.scale<1?"in":"out";n.additionalEvent=this.options.event+t}this._super.emit.call(this,n)}});o(bi,y,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[lu]},process:function(n){var t=this.options,i=n.pointers.length===t.pointers,r=n.distance<t.threshold,o=n.deltaTime>t.time;if(this._input=n,!r||!i||n.eventType&(u|e)&&!o)this.reset();else if(n.eventType&f)this.reset(),this._timer=hi(function(){this.state=b;this.tryEmit()},t.time,this);else if(n.eventType&u)return b;return a},reset:function(){clearTimeout(this._timer)},emit:function(n){this.state===b&&(n&&n.eventType&u?this.manager.emit(this.options.event+"up",n):(this._input.timeStamp=nr(),this.manager.emit(this.options.event,this._input)))}});o(ki,c,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[it]},attrTest:function(n){return this._super.attrTest.call(this,n)&&(Math.abs(n.rotation)>this.options.threshold||this.state&h)}});o(di,c,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:l|tt,pointers:1},getTouchAction:function(){return ri.prototype.getTouchAction.call(this)},attrTest:function(n){var t,i=this.options.direction;return i&(l|tt)?t=n.overallVelocity:i&l?t=n.overallVelocityX:i&tt&&(t=n.overallVelocityY),this._super.attrTest.call(this,n)&&i&n.offsetDirection&&n.distance>this.options.threshold&&n.maxPointers==this.options.pointers&&g(t)>this.options.velocity&&n.eventType&u},emit:function(n){var t=br(n.offsetDirection);t&&this.manager.emit(this.options.event+t,n);this.manager.emit(this.options.event,n)}});o(ui,y,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[rr]},process:function(n){var t=this.options,o=n.pointers.length===t.pointers,s=n.distance<t.threshold,c=n.deltaTime<t.time,i,r,e;if(this.reset(),n.eventType&f&&0===this.count)return this.failTimeout();if(s&&c&&o){if(n.eventType!=u)return this.failTimeout();if(i=this.pTime?n.timeStamp-this.pTime<t.interval:!0,r=!this.pCenter||gt(this.pCenter,n.center)<t.posThreshold,this.pTime=n.timeStamp,this.pCenter=n.center,r&&i?this.count+=1:this.count=1,this._input=n,e=this.count%t.taps,0===e)return this.hasRequireFailures()?(this._timer=hi(function(){this.state=b;this.tryEmit()},t.interval,this),h):b}return a},failTimeout:function(){return this._timer=hi(function(){this.state=a},this.options.interval,this),a},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==b&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});p.VERSION="2.0.8";p.defaults={domEvents:!1,touchAction:cu,enable:!0,inputTarget:null,inputClass:null,preset:[[ki,{enable:!1}],[wi,{enable:!1},["rotate"]],[di,{direction:l}],[ri,{direction:l},["swipe"]],[ui],[ui,{event:"doubletap",taps:2},["tap"]],[bi]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};au=1;ur=2;gi.prototype={set:function(n){return w(this.options,n),n.touchAction&&this.touchAction.update(),n.inputTarget&&(this.input.destroy(),this.input.target=n.inputTarget,this.input.init()),this},stop:function(n){this.session.stopped=n?ur:au},recognize:function(n){var r=this.session,i,f,t,u;if(!r.stopped)for(this.touchAction.preventDefaults(n),f=this.recognizers,t=r.curRecognizer,(!t||t&&t.state&b)&&(t=r.curRecognizer=null),u=0;u<f.length;)i=f[u],r.stopped===ur||t&&i!=t&&!i.canRecognizeWith(t)?i.reset():i.recognize(n),!t&&i.state&(h|et|k)&&(t=r.curRecognizer=i),u++},get:function(n){if(n instanceof y)return n;for(var i=this.recognizers,t=0;t<i.length;t++)if(i[t].options.event==n)return i[t];return null},add:function(n){if(rt(n,"add",this))return this;var t=this.get(n.options.event);return t&&this.remove(t),this.recognizers.push(n),n.manager=this,this.touchAction.update(),n},remove:function(n){if(rt(n,"remove",this))return this;if(n=this.get(n)){var t=this.recognizers,i=ut(t,n);-1!==i&&(t.splice(i,1),this.touchAction.update())}return this},on:function(n,t){if(n!==r&&t!==r){var i=this.handlers;return v(bt(n),function(n){i[n]=i[n]||[];i[n].push(t)}),this}},off:function(n,t){if(n!==r){var i=this.handlers;return v(bt(n),function(n){t?i[n]&&i[n].splice(ut(i[n],t),1):delete i[n]}),this}},emit:function(n,t){var i,r;if(this.options.domEvents&&sf(n,t),i=this.handlers[n]&&this.handlers[n].slice(),i&&i.length)for(t.type=n,t.preventDefault=function(){t.srcEvent.preventDefault()},r=0;r<i.length;)i[r](t),r++},destroy:function(){this.element&&kr(this,!1);this.handlers={};this.session={};this.input.destroy();this.element=null}};w(p,{INPUT_START:f,INPUT_MOVE:nt,INPUT_END:u,INPUT_CANCEL:e,STATE_POSSIBLE:si,STATE_BEGAN:h,STATE_CHANGED:et,STATE_ENDED:k,STATE_RECOGNIZED:b,STATE_CANCELLED:yt,STATE_FAILED:a,DIRECTION_NONE:fi,DIRECTION_LEFT:st,DIRECTION_RIGHT:ht,DIRECTION_UP:ct,DIRECTION_DOWN:lt,DIRECTION_HORIZONTAL:l,DIRECTION_VERTICAL:tt,DIRECTION_ALL:tu,Manager:gi,Input:s,TouchAction:pi,TouchInput:ti,MouseInput:ni,PointerEventInput:vi,TouchMouseInput:yi,SingleTouchInput:yr,Recognizer:y,AttrRecognizer:c,Tap:ui,Pan:ri,Swipe:di,Pinch:wi,Rotate:ki,Press:bi,on:pt,off:wt,each:v,merge:lf,extend:gr,assign:w,inherit:o,bindFn:ci,prefixed:dt});vu="undefined"!=typeof n?n:"undefined"!=typeof self?self:{};vu.Hammer=p;"function"==typeof define&&define.amd?define(function(){return p}):"undefined"!=typeof module&&module.exports?module.exports=p:n[i]=p}(window,document,"Hammer");window.lazySizesConfig=window.lazySizesConfig||{};lazySizesConfig.loadMode=1;window.lazySizesConfig.init=!1;!function(n){var t=function(n,t,i){"use strict";var e,r;if(function(){var t,i={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};r=n.lazySizesConfig||n.lazysizesConfig||{};for(t in i)t in r||(r[t]=i[t])}(),!t||!t.getElementsByClassName)return{init:function(){},cfg:r,noSupport:!0};var s=t.documentElement,ot=n.HTMLPictureElement,h="addEventListener",u="getAttribute",o=n[h].bind(n),f=n.setTimeout,it=n.requestAnimationFrame||f,k=n.requestIdleCallback,rt=/^picture$/i,st=["load","error","lazyincluded","_lazyloaded"],p={},ht=Array.prototype.forEach,c=function(n,t){return p[t]||(p[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),p[t].test(n[u]("class")||"")&&p[t]},l=function(n,t){c(n,t)||n.setAttribute("class",(n[u]("class")||"").trim()+" "+t)},d=function(n,t){var i;(i=c(n,t))&&n.setAttribute("class",(n[u]("class")||"").replace(i," "))},g=function(n,t,i){var r=i?h:"removeEventListener";i&&g(n,t);st.forEach(function(i){n[r](i,t)})},a=function(n,i,r,u,f){var o=t.createEvent("Event");return r||(r={}),r.instance=e,o.initEvent(i,!u,!f),o.detail=r,n.dispatchEvent(o),o},nt=function(t,i){var f;!ot&&(f=n.picturefill||r.pf)?(i&&i.src&&!t[u]("srcset")&&t.setAttribute("srcset",i.src),f({reevaluate:!0,elements:[t]})):i&&i.src&&(t.src=i.src)},v=function(n,t){return(getComputedStyle(n,null)||{})[t]},ut=function(n,t,i){for(i=i||n.offsetWidth;i<r.minSize&&t&&!n._lazysizesWidth;)i=t.offsetWidth,t=t.parentNode;return i},y=function(){var n,i,r=[],s=[],u=r,e=function(){var t=u;for(u=r.length?s:r,n=!0,i=!1;t.length;)t.shift()();n=!1},o=function(r,o){n&&!o?r.apply(this,arguments):(u.push(r),i||(i=!0,(t.hidden?f:it)(e)))};return o._lsFlush=e,o}(),w=function(n,t){return t?function(){y(n)}:function(){var t=this,i=arguments;y(function(){n.apply(t,i)})}},ct=function(n){var u,e=0,h=r.throttleDelay,t=r.ricTimeout,o=function(){u=!1;e=i.now();n()},s=k&&t>49?function(){k(o,{timeout:t});t!==r.ricTimeout&&(t=r.ricTimeout)}:w(function(){f(o)},!0);return function(n){var r;((n=n===!0)&&(t=33),u)||(u=!0,r=h-(i.now()-e),r<0&&(r=0),n||r<9?s():f(s,r))}},ft=function(n){var t,u,r=99,e=function(){t=null;n()},o=function(){var n=i.now()-u;n<r?f(o,r-n):(k||e)(e)};return function(){u=i.now();t||(t=f(o,r))}},et=function(){var pt,ut,kt,et,dt,gt,ni,ot,st,lt,at,wt,oi=/^img$/i,si=/^iframe$/i,hi="onscroll"in n&&!/(gle|ing)bot/.test(navigator.userAgent),ci=0,vt=0,b=0,k=-1,ti=function(n){b--;(!n||b<0||!n.target)&&(b=0)},ii=function(n){return wt==null&&(wt=v(t.body,"visibility")=="hidden"),wt||!(v(n.parentNode,"visibility")=="hidden"&&v(n,"visibility")=="hidden")},li=function(n,i){var u,r=n,f=ii(n);for(ot-=i,at+=i,st-=i,lt+=i;f&&(r=r.offsetParent)&&r!=t.body&&r!=s;)f=(v(r,"opacity")||1)>0,f&&v(r,"overflow")!="visible"&&(u=r.getBoundingClientRect(),f=lt>u.left&&st<u.right&&at>u.top-1&&ot<u.bottom+1);return f},ri=function(){var w,n,o,c,a,f,v,l,d,h,y,p,i=e.elements;if((et=r.loadMode)&&b<8&&(w=i.length)){for(n=0,k++;n<w;n++)if(i[n]&&!i[n]._lazyRace){if(!hi||e.prematureUnveil&&e.prematureUnveil(i[n])){yt(i[n]);continue}if((l=i[n][u]("data-expand"))&&(f=l*1)||(f=vt),h||(h=!r.expand||r.expand<1?s.clientHeight>500&&s.clientWidth>500?500:370:r.expand,e._defEx=h,y=h*r.expFactor,p=r.hFac,wt=null,vt<y&&b<1&&k>2&&et>2&&!t.hidden?(vt=y,k=0):vt=et>1&&k>1&&b<6?h:ci),d!==f&&(gt=innerWidth+f*p,ni=innerHeight+f,v=f*-1,d=f),o=i[n].getBoundingClientRect(),(at=o.bottom)>=v&&(ot=o.top)<=ni&&(lt=o.right)>=v*p&&(st=o.left)<=gt&&(at||lt||st||ot)&&(r.loadHidden||ii(i[n]))&&(ut&&b<3&&!l&&(et<3||k<4)||li(i[n],f))){if(yt(i[n]),a=!0,b>9)break}else!a&&ut&&!c&&b<4&&k<4&&et>2&&(pt[0]||r.preloadAfterLoad)&&(pt[0]||!l&&(at||lt||st||ot||i[n][u](r.sizesAttr)!="auto"))&&(c=pt[0]||i[n])}c&&!a&&yt(c)}},p=ct(ri),ui=function(n){var t=n.target;if(t._lazyCache){delete t._lazyCache;return}ti(n);l(t,r.loadedClass);d(t,r.loadingClass);g(t,fi);a(t,"lazyloaded")},ai=w(ui),fi=function(n){ai({target:n.target})},vi=function(n,t){try{n.contentWindow.location.replace(t)}catch(i){n.src=t}},yi=function(n){var t,i=n[u](r.srcsetAttr);(t=r.customMedia[n[u]("data-media")||n[u]("media")])&&n.setAttribute("media",t);i&&n.setAttribute("srcset",i)},pi=w(function(n,t,i,e,o){var s,h,v,c,p,w;(p=a(n,"lazybeforeunveil",t)).defaultPrevented||(e&&(i?l(n,r.autosizesClass):n.setAttribute("sizes",e)),h=n[u](r.srcsetAttr),s=n[u](r.srcAttr),o&&(v=n.parentNode,c=v&&rt.test(v.nodeName||"")),w=t.firesLoad||"src"in n&&(h||s||c),p={target:n},l(n,r.loadingClass),w&&(clearTimeout(kt),kt=f(ti,2500),g(n,fi,!0)),c&&ht.call(v.getElementsByTagName("source"),yi),h?n.setAttribute("srcset",h):s&&!c&&(si.test(n.nodeName)?vi(n,s):n.src=s),o&&(h||c)&&nt(n,{src:s}));n._lazyRace&&delete n._lazyRace;d(n,r.lazyClass);y(function(){var t=n.complete&&n.naturalWidth>1;(!w||t)&&(t&&l(n,"ls-is-cached"),ui(p),n._lazyCache=!0,f(function(){"_lazyCache"in n&&delete n._lazyCache},9));n.loading=="lazy"&&b--},!0)}),yt=function(n){if(!n._lazyRace){var f,t=oi.test(n.nodeName),e=t&&(n[u](r.sizesAttr)||n[u]("sizes")),i=e=="auto";(i||!ut)&&t&&(n[u]("src")||n.srcset)&&!n.complete&&!c(n,r.errorClass)&&c(n,r.lazyClass)||(f=a(n,"lazyunveilread").detail,i&&tt.updateElem(n,!0,n.offsetWidth),n._lazyRace=!0,b++,pi(n,f,i,e,t))}},wi=ft(function(){r.loadMode=3;p()}),ei=function(){r.loadMode==3&&(r.loadMode=2);wi()},bt=function(){if(!ut){if(i.now()-dt<999){f(bt,999);return}ut=!0;r.loadMode=3;p();o("scroll",ei,!0)}};return{_:function(){dt=i.now();e.elements=t.getElementsByClassName(r.lazyClass);pt=t.getElementsByClassName(r.lazyClass+" "+r.preloadClass);o("scroll",p,!0);o("resize",p,!0);o("pageshow",function(n){if(n.persisted){var i=t.querySelectorAll("."+r.loadingClass);i.length&&i.forEach&&it(function(){i.forEach(function(n){n.complete&&yt(n)})})}});n.MutationObserver?new MutationObserver(p).observe(s,{childList:!0,subtree:!0,attributes:!0}):(s[h]("DOMNodeInserted",p,!0),s[h]("DOMAttrModified",p,!0),setInterval(p,999));o("hashchange",p,!0);["focus","mouseover","click","load","transitionend","animationend"].forEach(function(n){t[h](n,p,!0)});/d$|^c/.test(t.readyState)?bt():(o("load",bt),t[h]("DOMContentLoaded",p),f(bt,2e4));e.elements.length?(ri(),y._lsFlush()):p()},checkElems:p,unveil:yt,_aLSL:ei}}(),tt=function(){var n,f=w(function(n,t,i,r){var f,u,e;if(n._lazysizesWidth=r,r+="px",n.setAttribute("sizes",r),rt.test(t.nodeName||""))for(f=t.getElementsByTagName("source"),u=0,e=f.length;u<e;u++)f[u].setAttribute("sizes",r);i.detail.dataAttr||nt(n,i.detail)}),i=function(n,t,i){var r,u=n.parentNode;u&&(i=ut(n,u,i),r=a(n,"lazybeforesizes",{width:i,dataAttr:!!t}),r.defaultPrevented||(i=r.detail.width,i&&i!==n._lazysizesWidth&&f(n,u,r,i)))},e=function(){var t,r=n.length;if(r)for(t=0;t<r;t++)i(n[t])},u=ft(e);return{_:function(){n=t.getElementsByClassName(r.autosizesClass);o("resize",u)},checkElems:u,updateElem:i}}(),b=function(){!b.i&&t.getElementsByClassName&&(b.i=!0,tt._(),et._())};return f(function(){r.init&&b()}),e={cfg:r,autoSizer:tt,loader:et,init:b,uP:nt,aC:l,rC:d,hC:c,fire:a,gW:ut,rAF:y}}(n,n.document,Date);n.lazySizes=t;"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:{});var LOGOUT_USER="event:logout-user",NO_LOGGED_IN_USER="event:no-logged-user",LOGIN_USER="event:login-user",USER_ON_ROOT="event:auth-userOnRootScope",IS_AUTHORISED_URL="/api/system/isauthorised",IS_IMPERSONATING="event:is-impersonating",BUILD_NUMBER_CHANGED="event:build-number-changed",constantsModule=angular.module("appConstantsModule",[]);constantsModule.constant("AUTH_EVENTS",{loginSuccess:"auth-login-success",loginFailed:"auth-login-failed",logoutSuccess:"auth-logout-success",sessionTimeout:"auth-session-timeout",notAuthenticated:"auth-not-authenticated",notAuthorized:"auth-not-authorized",notFound:"not-found",serverError:"server-error"}).constant("GRID_CONSTANTS",{GRID_SEARCH_DEBOUNCE:750,DEFAULT_PAGE_SIZE:40,REFRESH_GRID_PREFIX:"refresh-grid-",EXPORT_GRID_PREFIX:"export-grid-",REFRESH_GRID_OPTIONS_PREFIX:"refresh-grid-options-",REFRESH_GRID_OPTIONS_AND_RELOAD_PREFIX:"refresh-grid-options-and-reload-",GET_SELECTED_ITEMS_GRID_PREFIX:"get-selected-items-grid-",SELECTED_ITEMS_GRID_PREFIX:"selected-items-grid-",ALL_SEARCHED_IDS_PREFIX:"all-searched-ids-",REBUILD_GRID:"rebuild-grid",IMPORT_DATA:"import-data-"}).constant("CLIENT_DATA",{api_http:"",client_key:"30dbb12e07974313",time_out:4e3}).constant("FREIGHT_CONSTANTS",{REGENERATE_PRICE:"event:regenerate-freight-price",REGENERATE_PRICE_DONE:"event:regenerated-freight-price-done",OVERRIDE_PRICE_DONE:"event:override-freight-price-done",UPDATE_FREIGHT_PRICE:"event:update-freight-price",FREIGHT_TOGGLE:"event:toggle-freight",FREIGHT_PRICE_TOGGLE:"event:toggle-freight-price",TEMP_UPDATE_FREIGHT_PRICE:"event:temp-update-freight-price"}).constant("CART_CONSTANTS",{CART_UPDATED:"event:cart-updated",UPDATE_CART:"event:update-cart",REMOVE_ITEM_FROM_CART:"event:remove-item-from-cart"}).constant("IMPORT_CONSTANTS",{FILE_IMPORTED:"event:file-imported-",FILE_IMPORTED_SAVED:"event:file-imported-saved"}).constant("ALLOWED_ANONYMOUS_ACCESS",["PPI","TEST","QODO","FILDES"]).constant("PPI_CONSTANTS",{ITEM_NAME_METALLIC_COLOUR:"Metallic Colour",ITEM_NAME_LIP_INDIVIDUAL:"Individual Names / Lip Print",ITEM_NAME_BACKSTAMP:"Backstamp",ITEM_INDIVIDUAL_SMALL_SIZE_QTY:50,ITEM_INDIVIDUAL_LARGE_SIZE_QTY:30,ITEM_QUANTITY_CHANGED:"event:quantity-changed",PRICING_MODAL_SUBMITTED:"event:pricing-modal-submitted"}).constant("FILTER_CONSTANTS",{STANDARD_DATE_FORMAT:"d MMM yyyy",STANDARD_DATE_TIME_FORMAT:"d MMM yyyy h:mm a",STANDARD_TIME_FORMAT:"h:mm a",FORMAL_DATE_FORMAT:"yyyy-MM-dd",FORMAL_DATE_TIME_FORMAT:"yyyy-MM-dd hh:mm",STANDARD_DATE_FORMAT_MOMENT:"D MMM YYYY",STANDARD_DATE_TIME_FORMAT_MOMENT:"D MMM YYYY h:mm a",STANDARD_TIME_FORMAT_MOMENT:"h:mm a",FORMAL_DATE_FORMAT_MOMENT:"YYYY-MM-DD",FORMAL_DATE_TIME_FORMAT_MOMENT:"YYYY-MM-DD HH:mm",STANDARD_DATE_WITH_DAY_NAME_FORMAT_MOMENT:"ddd D MMM YYYY",STANDARD_DATE_TIME_WITH_DAY_NAME_MOMENT:"ddd D MMM YYYY h:mm a"}).constant("TIMES",[{id:1,name:"8.00am"},{id:2,name:"8.30am"},{id:3,name:"9.00am"},{id:4,name:"9.30am"},{id:5,name:"10.00am"},{id:6,name:"10.30am"},{id:7,name:"11.00am"},{id:8,name:"11.30am"},{id:9,name:"12.00am"},{id:10,name:"12.30am"},{id:11,name:"1.00pm"},{id:12,name:"1.30pm"},{id:13,name:"2.00pm"},{id:14,name:"2.30pm"}]).constant("TITLES",["Mr","Mrs","Ms","Mr & Mrs","Dr","Prof","Sir","Dame"]).constant("STATES",[{id:null,name:"State"},{id:"ACT",name:"ACT",description:"Australian Capital Territory",lat:"-35.473469",long:"149.012375"},{id:"NSW",name:"NSW",description:"New South Wales",lat:"-33.283577",long:"149.101273"},{id:"NT",name:"NT",description:"Northern Territory",lat:"-19.491411",long:"132.550964"},{id:"QLD",name:"QLD",description:"Queensland",lat:"-16.925491",long:"145.754120"},{id:"SA",name:"SA",description:"South Australia",lat:"-34.906101",long:"138.593903"},{id:"TAS",name:"TAS",description:"Tasmania",lat:"-41.429825",long:"147.157135"},{id:"VIC",name:"VIC",description:"Victoria",lat:"-36.757786",long:"144.278702"},{id:"WA",name:"WA",description:"Western Australia",lat:"-31.953512",long:"115.857048"},{id:"Other",name:"Other"}]).constant("USER_TYPES",CLIENT_NAME=="TWC"?[{id:1,name:"System Admin"},{id:3,name:"Client"},{id:4,name:"Company"},{id:6,name:"Deliveries"},{id:7,name:"Work Order Scanning"}]:[{id:1,name:"System Admin"},{id:3,name:"Client"},{id:4,name:"Company"}]);window.isValidEmailAddress=function(n){var t=new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);return t.test(n)};window.resizeIframe=function(n){var t=n.contentWindow.document.body.scrollHeight+20;setTimeout(function(){var i=parseInt(n.style.height.replace("px",""));t>i&&(n.style.height=n.contentWindow.document.body.scrollHeight+20+"px")},100)};window.previewImage=function(n){n=typeof n=="undefined"?"":n;var t=new FileReader;t.readAsDataURL(document.getElementById("uploadImage"+n).files[0]);t.onload=function(t){document.getElementById("uploadPreview"+n).src=t.target.result}};window.randomString=function(){for(var t="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<5;n++)t+=i.charAt(Math.floor(Math.random()*i.length));return t};window.jsonToQueryString=function(n){var i=[],t;for(t in n)n[t]&&typeof n[t]!="undefined"&&i.push(encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return i.join("&")};Array.prototype.clean=function(n){for(var t=0;t<this.length;t++)this[t]==n&&(this.splice(t,1),t--);return this};Array.prototype.distinct=function(){for(var r=this,t=[],f=r.length,u,i,n=0;n<f;n++){for(u=undefined,i=0;i<t.length;i++)if(JSON.stringify(r[n])===JSON.stringify(t[i])){u=!0;break}u||t.push(r[n])}return t};Array.prototype.move=function(n,t){if(t>=this.length)for(var i=t-this.length;i--+1;)this.push(undefined);return this.splice(t,0,this.splice(n,1)[0]),this};String.prototype.replaceAll=function(n,t){var i=this;return i.replace(new RegExp(n,"g"),t)};typeof String.prototype.startsWith=="undefined"&&(String.prototype.startsWith=function(n,t){return t=t||0,this.indexOf(n,t)===t}),function(n){n(document).ready(function(){if(n(".fildes #backToTopButton").length){var i=100,t=function(){var t=n(window).scrollTop();t>i?n("#backToTopButton").addClass("show"):n("#backToTopButton").removeClass("show")};t();n(window).on("scroll",function(){t()});n("#backToTopButton").on("click",function(t){t.preventDefault();n("html,body").animate({scrollTop:0},700)})}})}(jQuery),function(){"use strict";var n=function(n,t){var i,r,u,f;if(n.length<=t)return n;if(i="",r=n.split("&"),r[0].length>t)return r[0].substring(0,t)+"&hellip;";for(i=i+r[0],u=1;u<r.length;u++)if(f=r[u].indexOf(";"),t+=f+1,i=i+"&"+r[u],i.length>=t)return i.substring(0,t)+"&hellip;";return i};angular.module("ngTextTruncate",[]).directive("ngTextTruncate",function(n,t,i,r,u){return{restrict:"A",scope:{text:"=ngTextTruncate",charsThreshould:"@ngTtCharsThreshold",wordsThreshould:"@ngTtWordsThreshold",htmlThreshould:"@ngTtHtmlThreshold",customMoreLabel:"@ngTtMoreLabel",customLessLabel:"@ngTtLessLabel"},controller:function(n,t,i){n.toggleShow=function(){n.open=!n.open};n.useToggling=i.ngTtNoToggling===undefined},link:function(n,f){n.open=!1;t.failIfWrongThreshouldConfig(n.charsThreshould,n.wordsThreshould,n.htmlThreshould);var e=parseInt(n.charsThreshould),s=parseInt(n.wordsThreshould),o=parseInt(n.htmlThreshould);n.$watch("text",function(){f.empty();e?n.text&&i.truncationApplies(n,e)?i.applyTruncation(e,n,f):f.append(n.text):o?n.text&&u.truncationApplies(n,o)?u.applyTruncation(o,n,f):f.append(n.text):n.text&&r.truncationApplies(n,s)?r.applyTruncation(s,n,f):f.append(n.text)})}}}).factory("ValidationServices",function(){return{failIfWrongThreshouldConfig:function(n,t,i){if(!n&&!t&&!i||n&&t&&i)throw"You must specify one, and only one, type of threshould (chars or words or html)";}}}).factory("CharBasedTruncation",function(n){return{truncationApplies:function(n,t){return n.text.length>t},applyTruncation:function(t,i,r){if(i.useToggling){var u=angular.element("<span>"+i.text.substr(0,t)+"<span ng-show='!open'>...<\/span><span class='btn-link ngTruncateToggleText' ng-click='toggleShow()'ng-show='!open'> "+(i.customMoreLabel?i.customMoreLabel:"More")+"<\/span><span ng-show='open'>"+i.text.substring(t)+"<span class='btn-link ngTruncateToggleText'ng-click='toggleShow()'> "+(i.customLessLabel?i.customLessLabel:"Less")+"<\/span><\/span><\/span>");n(u)(i);r.append(u)}else r.append(i.text.substr(0,t)+"...")}}}).factory("WordBasedTruncation",function(n){return{truncationApplies:function(n,t){return n.text.split(" ").length>t},applyTruncation:function(t,i,r){var u=i.text.split(" "),f;i.useToggling?(f=angular.element("<span>"+u.slice(0,t).join(" ")+" <span ng-show='!open'>...<\/span><span class='btn-link ngTruncateToggleText' ng-click='toggleShow()'ng-show='!open'> "+(i.customMoreLabel?i.customMoreLabel:"More")+"<\/span><span ng-show='open'>"+u.slice(t,u.length).join(" ")+"<span class='btn-link ngTruncateToggleText'ng-click='toggleShow()'> "+(i.customLessLabel?i.customLessLabel:"Less")+"<\/span><\/span><\/span>"),n(f)(i),r.append(f)):r.append(u.slice(0,t).join(" ")+"...")}}}).factory("HtmlBasedTruncation",function(t){return{truncationApplies:function(n,t){var i=angular.copy(n.text);return i=i.replace(/<[^>]+>/gm,""),i.length>t},applyTruncation:function(i,r,u){var o=angular.copy(r.text),f="",e,h,c,s;try{f=$(angular.copy(o))}catch(l){f=$("<div>"+angular.copy(o)+"<\/div>")}e=document.createElement("div");h=f.length>0?n(angular.element(f[0]).html(),i):angular.element(f[0]).html();e.innerHTML=h;r.useToggling?(c="<span ng-show='!open'><span>"+e.innerHTML+"<\/span><small class='btn-link ngTruncateToggleText' ng-click='toggleShow()'ng-show='!open'> "+(r.customMoreLabel?r.customMoreLabel:"More")+"<\/small><\/span><span ng-show='open'><span>"+o+"<\/span><small class='btn-link ngTruncateToggleText'ng-click='toggleShow()'> "+(r.customLessLabel?r.customLessLabel:"Less")+"<\/small><\/span>",s=angular.element(c),t(s)(r),u.append(s)):u.append(e.innerHTML)}}})}();angular.module("angular-carousel",[]).factory("Carousel",function(){var n={},t;return n.instances={},n.add=function(i,r,u,f){var o,e;return(r=r||!1,!r)?"Error: no carousel name specified":(i=i||0,o=n.instances[r]||!1,o)?"Error: carousel instance already exists":(e=new t(i,u,f),n.instances[r]=e,e)},n.get=function(t){var i=n.instances[t]||!1;return i?i:"Error: carousel with name '"+t+"' does not exist"},n.remove=function(t){delete n.instances[t]},t=function(n,t,i){i=i||{};typeof i.looping=="undefined"&&(i.looping=!0);var r=this;this.slidesCount=n;this.currentSlide=0;this.onSlideChangeCallbacks=[];this.toIndex=function(n,i){i=i||!1;this.currentSlide=n%this.slidesCount;angular.forEach(this.onSlideChangeCallbacks,function(n){typeof n=="function"&&n(r.currentSlide,i)});setTimeout(function(){t.$apply()},0)};this.next=function(){var n=this.currentSlide+1,t=!1;return n>this.slidesCount-1&&(i.looping?(n=0,t="right"):n=this.slidesCount-1),this.toIndex(n,t),n};this.previous=function(){var n=this.currentSlide-1,t=!1;return n<0&&(i.looping?(n=this.slidesCount-1,t="left"):n=0),this.toIndex(n,t),n};this.onSlideChange=function(n){return this.onSlideChangeCallbacks.push(n),this.onSlideChangeCallbacks.indexOf(n)};this.unbindOnSlideChangeCallback=function(n){typeof this.onSlideChangeCallbacks[n]!="undefined"&&this.onSlideChangeCallbacks.splice(n,1)}},n}).directive("ngCarousel",["Carousel","$compile","$document","$timeout",function(n,t,i,r){function u(){return"ontouchstart"in document.documentElement}var f=25;return{restrict:"AE",replace:!0,scope:{ngCarouselWatch:"="},link:function(t,e,o){function et(){w=angular.element(l[0].outerHTML);b=angular.element(l[l.length-1].outerHTML)}function ot(){w=angular.element('<slide class="empty"><\/slide>');b=angular.element('<slide class="empty"><\/slide>')}var p=!1,y=!1,nt=!1,a="",k=!1,l,s,w,b,h,d,ft;p=typeof o.ngCarouselTimer!="undefined"&&parseInt(o.ngCarouselTimer,10)>0?parseInt(o.ngCarouselTimer,10):!1;nt=typeof o.ngCarouselRandom!="undefined";k=!(o.ngCarouselLoop==="false");var tt=function(){var i,r,f,c,y,tt;if(e.addClass("ng-carousel"),e.addClass(u()?"carousel-touch":"carousel-no-touch"),h=e.find("[slidecontainer]"),i=!1,r=!1,a&&(i=n.get(a).currentSlide,r=n.get(a).onSlideChangeCallbacks,n.remove(a)),f=function(){var n=angular.element(e[0].querySelectorAll(".carousel-slide-copy"));n.length>0&&n.remove()},f(),l=e.find("[slide]"),l.length>0){a=o.ngCarouselName;s=n.add(l.length,o.ngCarouselName,t,{looping:k});angular.forEach(r,function(n){s.onSlideChange(n);s.unbindOnSlideChangeCallback(0)});c=function(){f();l=e.find("[slide]");k?et():ot();w.addClass("carousel-slide-copy");b.addClass("carousel-slide-copy");h.append(w);h.prepend(b);h.addClass("carousel-ignore-first-slide")};c();y=function(n,t){var i=n+1;t==="left"?i=0:t==="right"&&(i=l.length+1);v(i,!0,function(){t==="left"?v(l.length,!1):t==="right"&&v(1,!1)});g();c()};s.onSlideChange(y);i!==!1&&s.currentSlide!==i&&(y(s.currentSlide,!1),s.toIndex(i));nt&&(tt=Math.floor(Math.random()*s.slidesCount),s.toIndex(tt));p&&s.slidesCount>=2&&g()}else console.log("ng-carousel error: No slides found");if(h[0]){d=new Hammer.Manager(h[0]);d.add(new Hammer.Pan({direction:Hammer.DIRECTION_HORIZONTAL,threshold:0}));d.on("panleft panright",function(n){n.isFinal||st(n.deltaX)})}else console.log("ng-carousel error: No slidecontainer found")},g=function(){!p||s.slidesCount<2||(y&&r.cancel(y),y=r(function(){s.next()},p))},v=function(n,t,i){t?h.addClass("carousel-animate"):h.removeClass("carousel-animate");var r="translate(-"+100*n+"%, 0)";if(h.css({"-webkit-transform":r,"-moz-transform":r,"-ms-transform":r,"-o-transform":r,transform:r}),t)h.on("transitionend oTransitionEnd webkitTransitionEnd",function(){typeof i=="function"&&i();h.off("transitionend oTransitionEnd webkitTransitionEnd");v(s.currentSlide+1,!1)})},c=0,it=0,st=function(n){c=n/it;c=c>1?1:c<-1?-1:c;v(s.currentSlide+1-c,!1)},ht=function(){it=h[0].offsetWidth},ct=function(){Math.abs(c)>f/100?(c>0?s.previous():s.next(),c=0):(c>0||c<0)&&v(s.currentSlide+1,!0,function(){c=0})},rt=u()?"touchstart":"mousedown",ut=u()?"touchend":"mouseup";i.on(rt,ht);i.on(ut,ct);e.on("mouseover",function(){y&&r.cancel(y)});e.on("mouseout",g);ft=r(tt,0);typeof o.ngCarouselWatch!="undefined"&&t.$watch("ngCarouselWatch",function(){r(tt)},!0);t.$on("$destroy",function(){r.cancel(ft);e.off("mouseover mouseout");i.off(rt);i.off(ut);h.off("transitionend oTransitionEnd webkitTransitionEnd");s.onSlideChangeCallbacks=[];n.remove(a)})}}}]),function(){"use strict";function n(n,t,i){return{restrict:"A",link:function(r,u,f){i(function(){function e(n){var c,h,a,l,e,v;if(!angular.element(u).hasClass("ng-hide")&&n&&n.target){for(h=n.target;h;h=h.parentNode){if(h===u[0])return;if(l=h.id,e=h.className,v=o.length,e&&e.baseVal!==undefined&&(e=e.baseVal),e||l)for(c=0;c<v;c++)if(a=new RegExp("\\b"+o[c]+"\\b"),l!==undefined&&l===o[c]||e&&a.test(e))return}i(function(){s=t(f.clickOutside);s(r,{event:n})})}}function h(){return"ontouchstart"in window||navigator.maxTouchPoints}var o=f.outsideIfNot!==undefined?f.outsideIfNot.split(/[ ,]+/):[],s;if(h())n.on("touchstart",e);n.on("click",e);r.$on("$destroy",function(){h()&&n.off("touchstart",e);n.off("click",e)})})}}}angular.module("angular-click-outside",[]).directive("clickOutside",["$document","$parse","$timeout",n])}(),function(n){n(["jquery"],function(n){return function(){function a(n,t,r){return f({type:u.error,iconClass:i().iconClasses.error,message:n,optionsOverride:r,title:t})}function r(r,u){return(r||(r=i()),t=n("#"+r.containerId),t.length)?t:(u&&(t=g(r)),t)}function v(n,t,r){return f({type:u.info,iconClass:i().iconClasses.info,message:n,optionsOverride:r,title:t})}function y(n){e=n}function p(n,t,r){return f({type:u.success,iconClass:i().iconClasses.success,message:n,optionsOverride:r,title:t})}function w(n,t,r){return f({type:u.warning,iconClass:i().iconClasses.warning,message:n,optionsOverride:r,title:t})}function b(n){var u=i();t||r(u);c(n,u)||d(u)}function k(u){var f=i();if(t||r(f),u&&n(":focus",u).length===0){o(u);return}t.children().length&&t.remove()}function d(i){for(var u=t.children(),r=u.length-1;r>=0;r--)c(n(u[r]),i)}function c(t,i){return t&&n(":focus",t).length===0?(t[i.hideMethod]({duration:i.hideDuration,easing:i.hideEasing,complete:function(){o(t)}}),!0):!1}function g(i){return t=n("<div/>").attr("id",i.containerId).addClass(i.positionClass).attr("aria-live","polite").attr("role","alert"),t.appendTo(n(i.target)),t}function nt(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:undefined,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:undefined,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:"<button>&times;<\/button>",newestOnTop:!0}}function l(n){e&&e(n)}function f(u){function c(t){if(!n(":focus",e).length||t)return e[f.hideMethod]({duration:f.hideDuration,easing:f.hideEasing,complete:function(){o(e);f.onHidden&&h.state!=="hidden"&&f.onHidden();h.state="hidden";h.endTime=new Date;l(h)}})}function b(){(f.timeOut>0||f.extendedTimeOut>0)&&(y=setTimeout(c,f.extendedTimeOut))}function k(){clearTimeout(y);e.stop(!0,!0)[f.showMethod]({duration:f.showDuration,easing:f.showEasing})}var f=i(),v=u.iconClass||f.iconClass;typeof u.optionsOverride!="undefined"&&(f=n.extend(f,u.optionsOverride),v=u.optionsOverride.iconClass||v);s++;t=r(f,!0);var y=null,e=n("<div/>"),p=n("<div/>"),w=n("<div/>"),a=n(f.closeHtml),h={toastId:s,state:"visible",startTime:new Date,options:f,map:u};return u.iconClass&&e.addClass(f.toastClass).addClass(v),u.title&&(p.append(u.title).addClass(f.titleClass),e.append(p)),u.message&&(w.append(u.message).addClass(f.messageClass),e.append(w)),f.closeButton&&(a.addClass("toast-close-button").attr("role","button"),e.prepend(a)),e.hide(),f.newestOnTop?t.prepend(e):t.append(e),e[f.showMethod]({duration:f.showDuration,easing:f.showEasing,complete:f.onShown}),f.timeOut>0&&(y=setTimeout(c,f.timeOut)),e.hover(k,b),!f.onclick&&f.tapToDismiss&&e.click(c),f.closeButton&&a&&a.click(function(n){n.stopPropagation?n.stopPropagation():n.cancelBubble!==undefined&&n.cancelBubble!==!0&&(n.cancelBubble=!0);c(!0)}),f.onclick&&e.click(function(){f.onclick();c()}),l(h),f.debug&&console&&console.log(h),e}function i(){return n.extend({},nt(),h.options)}function o(n){(t||(t=r()),n.is(":visible"))||(n.remove(),n=null,t.children().length===0&&t.remove())}var t,e,s=0,u={error:"error",info:"info",success:"success",warning:"warning"},h={clear:b,remove:k,error:a,getContainer:r,info:v,options:{},subscribe:y,success:p,version:"2.0.3",warning:w};return h}()})}(typeof define=="function"&&define.amd?define:function(n,t){typeof module!="undefined"&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}),function(n,t){"use strict";var u=["ng","oc.lazyLoad"],r={},l=[],i=[],a=[],e=[],o=n.noop,s={},c=[],y=n.module("oc.lazyLoad",["ng"]),v,h,f;y.provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(v,y,p,w,b,k){function ft(t,i,r){var l,e,h,v,y,p;if(i){for(v=[],l=i.length-1;l>=0;l--)if(e=i[l],n.isString(e)||(e=ht(e)),e&&c.indexOf(e)===-1&&(!d[e]||a.indexOf(e)!==-1)){if(y=u.indexOf(e)===-1,h=f(e),y&&(u.push(e),ft(t,h.requires,r)),h._runBlocks.length>0)for(s[e]=[];h._runBlocks.length>0;)s[e].push(h._runBlocks.shift());n.isDefined(s[e])&&(y||r.rerun)&&(v=v.concat(s[e]));nt(t,h._invokeQueue,e,r.reconfig);nt(t,h._configBlocks,e,r.reconfig);o(y?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",e);i.pop();c.push(e)}p=t.getInstanceInjector();n.forEach(v,function(n){p.invoke(n)})}}function st(t,i){function s(t){return n.isArray(t)?tt(t.toString()):n.isObject(t)?tt(ut(t)):n.isDefined(t)&&t!==null?tt(t.toString()):t}var f=t[2][0],u=t[1],h=!1,e;if(n.isUndefined(r[i])&&(r[i]={}),n.isUndefined(r[i][u])&&(r[i][u]={}),e=function(n,t){r[i][u].hasOwnProperty(n)||(r[i][u][n]=[]);r[i][u][n].indexOf(t)===-1&&(h=!0,r[i][u][n].push(t),o("ocLazyLoad.componentLoaded",[i,u,n]))},n.isString(f))e(f,s(t[2][1]));else if(n.isObject(f))n.forEach(f,function(t,i){n.isString(t)?e(t,s(f[1])):e(i,s(t))});else return!1;return h}function nt(t,i,r,u){var s,c,f,e,a,h,o,v;if(i)for(s=0,c=i.length;s<c;s++)if(f=i[s],n.isArray(f)){if(t!==null)if(t.hasOwnProperty(f[0]))e=t[f[0]];else throw new Error("unsupported provider "+f[0]);if(a=st(f,r),f[1]!=="invoke")a&&n.isDefined(e)&&e[f[1]].apply(e,f[2]);else if(h=function(t){var i=l.indexOf(""+r+"-"+t);(i===-1||u)&&(i===-1&&l.push(""+r+"-"+t),n.isDefined(e)&&e[f[1]].apply(e,f[2]))},n.isFunction(f[2][0]))h(f[2][0]);else if(n.isArray(f[2][0]))for(o=0,v=f[2][0].length;o<v;o++)n.isFunction(f[2][0][o])&&h(f[2][0][o])}}function ht(t){var i=null;return n.isString(t)?i=t:n.isObject(t)&&t.hasOwnProperty("name")&&n.isString(t.name)&&(i=t.name),i}function ct(t){if(!n.isString(t))return!1;try{return f(t)}catch(i){if(/No module/.test(i)||i.message.indexOf("$injector:nomod")>-1)return!1}}var d={},et={$controllerProvider:v,$compileProvider:p,$filterProvider:w,$provide:y,$injector:b,$animateProvider:k},it=!1,ot=!1,g=[],rt={},ut,tt;g.push=function(n){this.indexOf(n)===-1&&Array.prototype.push.apply(this,arguments)};this.config=function(t){n.isDefined(t.modules)&&(n.isArray(t.modules)?n.forEach(t.modules,function(n){d[n.name]=n}):d[t.modules.name]=t.modules);n.isDefined(t.debug)&&(it=t.debug);n.isDefined(t.events)&&(ot=t.events)};this._init=function(r){var s;if(i.length===0){var h=[r],o=["ng:app","ng-app","x-ng-app","data-ng-app"],c=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,f=function(n){return n&&h.push(n)};n.forEach(o,function(t){o[t]=!0;f(document.getElementById(t));t=t.replace(":","\\:");typeof r[0]!="undefined"&&r[0].querySelectorAll&&(n.forEach(r[0].querySelectorAll("."+t),f),n.forEach(r[0].querySelectorAll("."+t+"\\:"),f),n.forEach(r[0].querySelectorAll("["+t+"]"),f))});n.forEach(h,function(t){if(i.length===0){var f=" "+r.className+" ",u=c.exec(f);u?i.push((u[2]||"").replace(/\s+/g,",")):n.forEach(t.attributes,function(n){i.length===0&&o[n.name]&&i.push(n.value)})}})}i.length!==0||(t.jasmine||t.mocha)&&n.isDefined(n.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad.");s=function s(t){if(u.indexOf(t)===-1){u.push(t);var i=n.module(t);nt(null,i._invokeQueue,t);nt(null,i._configBlocks,t);n.forEach(i.requires,s)}};n.forEach(i,function(n){s(n)});i=[];e.pop()};ut=function(t){var i=[];return JSON.stringify(t,function(t,r){if(n.isObject(r)&&r!==null){if(i.indexOf(r)!==-1)return;i.push(r)}return r})};tt=function(n){var t=0,i,r,u;if(n.length==0)return t;for(i=0,u=n.length;i<u;i++)r=n.charCodeAt(i),t=(t<<5)-t+r|0;return t};this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(t,r,s,l,a){function y(n){var i=a.defer();return t.error(n.message),i.reject(n),i.promise}var v,p=l("ocLazyLoad");return it||(t={},t.error=n.noop,t.warn=n.noop,t.info=n.noop),et.getInstanceInjector=function(){return v?v:v=r.data("$injector")||n.injector()},o=function(n,i){ot&&s.$broadcast(n,i);it&&t.info(n,i)},{_broadcast:o,_$log:t,_getFilesCache:function(){return p},toggleWatch:function(n){n?e.push(!0):e.pop()},getModuleConfig:function(t){if(!n.isString(t))throw new Error("You need to give the name of the module to get");return d[t]?n.copy(d[t]):null},setModuleConfig:function(t){if(!n.isObject(t))throw new Error("You need to give the module config object to set");return d[t.name]=t,t},getModules:function(){return u},isLoaded:function(t){var f=function(n){var t=u.indexOf(n)>-1;return t||(t=!!ct(n)),t},i,r;if(n.isString(t)&&(t=[t]),n.isArray(t)){for(i=0,r=t.length;i<r;i++)if(!f(t[i]))return!1;return!0}throw new Error("You need to define the module(s) name(s)");},_getModuleName:ht,_getModule:function(n){try{return f(n)}catch(t){(/No module/.test(t)||t.message.indexOf("$injector:nomod")>-1)&&(t.message='The module "'+ut(n)+'" that you are trying to load does not exist. '+t.message);throw t;}},moduleExists:ct,_loadDependencies:function(t,i){var e,o,u,f=[],r=this;if(t=r._getModuleName(t),t===null)return a.when();try{e=r._getModule(t)}catch(s){return y(s)}return o=r.getRequires(e),n.forEach(o,function(e){var s,o;if(n.isString(e)){if(s=r.getModuleConfig(e),s===null){g.push(e);return}e=s;s.name=undefined}if(r.moduleExists(e.name)){if(u=e.files.filter(function(n){return r.getModuleConfig(e.name).files.indexOf(n)<0}),u.length!==0&&r._$log.warn('Module "',t,'" attempted to redefine configuration for dependency. "',e.name,'"\n Additional Files Loaded:',u),n.isDefined(r.filesLoader))f.push(r.filesLoader(e,i).then(function(){return r._loadDependencies(e)}));else return y(new Error("Error: New dependencies need to be loaded from external files ("+e.files+"), but no loader has been defined."));return}if(n.isArray(e)?(o=[],n.forEach(e,function(n){var t=r.getModuleConfig(n);t===null?o.push(n):t.files&&(o=o.concat(t.files))}),o.length>0&&(e={files:o})):n.isObject(e)&&e.hasOwnProperty("name")&&e.name&&(r.setModuleConfig(e),g.push(e.name)),n.isDefined(e.files)&&e.files.length!==0)if(n.isDefined(r.filesLoader))f.push(r.filesLoader(e,i).then(function(){return r._loadDependencies(e)}));else return y(new Error('Error: the module "'+e.name+'" is defined in external files ('+e.files+"), but no loader has been defined."))}),a.all(f)},inject:function(t){var r=arguments[1]===undefined?{}:arguments[1],f=this,u=a.defer(),e,s,o;if(n.isDefined(t)&&t!==null){if(n.isArray(t))return e=[],n.forEach(t,function(n){e.push(f.inject(n))}),a.all(e);f._addToLoadList(f._getModuleName(t),!0)}if(i.length>0)s=i.slice(),o=function o(n){g.push(n);rt[n]=u.promise;f._loadDependencies(n,r).then(function(){try{c=[];ft(et,g,r)}catch(n){f._$log.error(n.message);u.reject(n);return}i.length>0?o(i.shift()):u.resolve(s)},function(n){u.reject(n)})},o(i.shift());else{if(r&&r.name&&rt[r.name])return rt[r.name];u.resolve()}return u.promise},getRequires:function(t){var i=[];return n.forEach(t.requires,function(n){u.indexOf(n)===-1&&i.push(n)}),i},_invokeQueue:nt,_registerInvokeList:st,_register:ft,_addToLoadList:h}}];this._init(n.element(t.document))}]);v=n.bootstrap;n.bootstrap=function(t,i,r){return n.forEach(i.slice(),function(n){h(n,!0,!0)}),v(t,i,r)};h=function(t,r,u){(e.length>0||r)&&n.isString(t)&&i.indexOf(t)===-1&&(i.push(t),u&&a.push(t))};f=n.module;n.module=function(n,t,i){return h(n,!1,!0),f(n,t,i)};typeof module!="undefined"&&typeof exports!="undefined"&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(n){"use strict";n.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse",function(t,i,r,u){return{restrict:"A",terminal:!0,priority:1e3,compile:function(f){var e=f[0].innerHTML;return f.html(""),function(o,s,h){var c=u(h.ocLazyLoad);o.$watch(function(){return c(o)||h.ocLazyLoad},function(u){n.isDefined(u)&&t.load(u).then(function(){r.enter(e,s);var t=f.contents();n.forEach(t,function(n){n.nodeType!==3&&i(n)(o)})})},!0)}}}}])}(angular),function(n){"use strict";n.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(t,i,r,u){var e=!1,f=!1,o=r.document.getElementsByTagName("head")[0]||r.document.getElementsByTagName("body")[0];return t.buildElement=function(s,h,c){var v=i.defer(),l,d,y=t._getFilesCache(),g=function(n){var t=(new Date).getTime();return n.indexOf("?")>=0?n.substring(0,n.length-1)==="&"?""+n+"_dc="+t:""+n+"&_dc="+t:""+n+"?_dc="+t},p,w,a,b,nt,tt,k,it,rt;n.isUndefined(y.get(h))&&y.put(h,v.promise);switch(s){case"css":l=r.document.createElement("link");l.type="text/css";l.rel="stylesheet";l.href=c.cache===!1?g(h):h;break;case"js":l=r.document.createElement("script");l.src=c.cache===!1?g(h):h;break;default:y.remove(h);v.reject(new Error('Requested type "'+s+'" is not known. Could not inject "'+h+'"'))}return l.onload=l.onreadystatechange=function(){l.readyState&&!/^c|loade/.test(l.readyState)||d||(l.onload=l.onreadystatechange=null,d=1,t._broadcast("ocLazyLoad.fileLoaded",h),v.resolve())},l.onerror=function(){y.remove(h);v.reject(new Error("Unable to load "+h))},l.async=c.serie?0:1,p=o.lastChild,c.insertBefore&&(w=n.element(n.isDefined(window.jQuery)?c.insertBefore:document.querySelector(c.insertBefore)),w&&w.length>0&&(p=w[0])),p.parentNode.insertBefore(l,p),s=="css"&&(e||(a=r.navigator.userAgent.toLowerCase(),/iP(hone|od|ad)/.test(r.navigator.platform)?(b=r.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),nt=parseFloat([parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3]||0,10)].join(".")),f=nt<6):a.indexOf("android")>-1?(tt=parseFloat(a.slice(a.indexOf("android")+8)),f=tt<4.4):a.indexOf("safari")>-1&&(k=a.match(/version\/([\.\d]+)/i),f=k&&k[1]&&parseFloat(k[1])<6)),f&&(it=1e3,rt=u(function(){try{l.sheet.cssRules;u.cancel(rt);l.onload()}catch(n){--it<=0&&l.onerror()}},20))),v.promise},t}])}])}(angular),function(n){"use strict";n.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,i){return t.filesLoader=function(r){var u=arguments[1]===undefined?{}:arguments[1],e=[],o=[],s=[],f=[],h=null,w=t._getFilesCache(),v,c,l,a,y,p;return t.toggleWatch(!0),n.extend(u,r),v=function(i){var r=null,c;if(n.isObject(i)&&(r=i.type,i=i.path),h=w.get(i),n.isUndefined(h)||u.cache===!1){if((c=/^(css|less|html|htm|js)?(?=!)/.exec(i))!==null&&(r=c[1],i=i.substr(c[1].length+1,i.length)),!r)if((c=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(i))!==null)r=c[1];else if(!t.jsLoader.hasOwnProperty("ocLazyLoadLoader")&&t.jsLoader.hasOwnProperty("load"))r="js";else{t._$log.error("File type could not be determined. "+i);return}(r==="css"||r==="less")&&e.indexOf(i)===-1?e.push(i):(r==="html"||r==="htm")&&o.indexOf(i)===-1?o.push(i):r==="js"||s.indexOf(i)===-1?s.push(i):t._$log.error("File type is not valid. "+i)}else h&&f.push(h)},u.serie?v(u.files.shift()):n.forEach(u.files,function(n){v(n)}),e.length>0&&(c=i.defer(),t.cssLoader(e,function(i){n.isDefined(i)&&t.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(i),c.reject(i)):c.resolve()},u),f.push(c.promise)),o.length>0&&(l=i.defer(),t.templatesLoader(o,function(i){n.isDefined(i)&&t.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(i),l.reject(i)):l.resolve()},u),f.push(l.promise)),s.length>0&&(a=i.defer(),t.jsLoader(s,function(i){n.isDefined(i)&&t.jsLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(i),a.reject(i)):a.resolve()},u),f.push(a.promise)),f.length===0?(y=i.defer(),p="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.",t._$log.error(p),y.reject(p),y.promise):u.serie&&u.files.length>0?i.all(f).then(function(){return t.filesLoader(r,u)}):i.all(f)["finally"](function(n){return t.toggleWatch(!1),n})},t.load=function(r){var v=arguments[1]===undefined?{}:arguments[1],o=this,u=null,c=[],e=i.defer(),h,f=n.copy(r),l=n.copy(v),a,s;return n.isArray(f)?(n.forEach(f,function(n){c.push(o.load(n,l))}),i.all(c).then(function(n){e.resolve(n)},function(n){e.reject(n)}),e.promise):(n.isString(f)?(u=o.getModuleConfig(f),u||(u={files:[f]})):n.isObject(f)&&(u=n.isDefined(f.path)&&n.isDefined(f.type)?{files:[f]}:o.setModuleConfig(f)),u===null)?(a=o._getModuleName(f),h='Module "'+(a||"unknown")+'" is not configured, cannot load.',t._$log.error(h),e.reject(new Error(h)),e.promise):(n.isDefined(u.template)&&(n.isUndefined(u.files)&&(u.files=[]),n.isString(u.template)?u.files.push(u.template):n.isArray(u.template)&&u.files.concat(u.template)),s=n.extend({},l,u),n.isUndefined(u.files)&&n.isDefined(u.name)&&t.moduleExists(u.name))?t.inject(u.name,s):(t.filesLoader(u,s).then(function(){t.inject(null,s).then(function(n){e.resolve(n)},function(n){e.reject(n)})},function(n){e.reject(n)}),e.promise)},t}])}])}(angular),function(n){"use strict";n.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,i){return t.cssLoader=function(r,u,f){var e=[];n.forEach(r,function(n){e.push(t.buildElement("css",n,f))});i.all(e).then(function(){u()},function(n){u(n)})},t.cssLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(n){"use strict";n.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,i){return t.jsLoader=function(r,u,f){var e=[];n.forEach(r,function(n){e.push(t.buildElement("js",n,f))});i.all(e).then(function(){u()},function(n){u(n)})},t.jsLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(n){"use strict";n.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(t,i,r,u){return t.templatesLoader=function(f,e,o){var s=[],h=t._getFilesCache();return n.forEach(f,function(t){var f=r.defer();s.push(f.promise);u.get(t,o).success(function(r){n.isString(r)&&r.length>0&&n.forEach(n.element(r),function(n){n.nodeName==="SCRIPT"&&n.type==="text/ng-template"&&i.put(n.id,n.innerHTML)});n.isUndefined(h.get(t))&&h.put(t,!0);f.resolve()}).error(function(n){f.reject(new Error('Unable to load template file "'+t+'": '+n))})}),r.all(s).then(function(){e()},function(n){e(n)})},t.templatesLoader.ocLazyLoadLoader=!0,t}])}])}(angular);Array.prototype.indexOf||(Array.prototype.indexOf=function(n,t){var r,f,u,i;if(this==null)throw new TypeError('"this" is null or not defined');if((f=Object(this),u=f.length>>>0,u===0)||(i=+t||0,Math.abs(i)===Infinity&&(i=0),i>=u))return-1;for(r=Math.max(i>=0?i:u-Math.abs(i),0);r<u;){if(r in f&&f[r]===n)return r;r++}return-1});sharedModule=angular.module("appSharedModule",[]);loginModule=angular.module("appLoginModule",[]),function(){"use strict";function n(n,t,i,r,u){function s(){if(n.clientName=="FILDES"||n.clientName=="QODO")return{then:function(n){var t=o.get();n(t?angular.fromJson(t.shoppingCart):[])}}}function h(){return{}}function c(){if(n.clientName=="FILDES"||n.clientName=="QODO")return{then:function(n){n([])}}}function f(t){var i=angular.toJson(t),u={userId:n.user?n.user.userId:null,shoppingCart:i};if(n.clientName==="FILDES"||n.clientName==="QODO")return o.set(u),n.$emit(r.CART_UPDATED,t),{then:function(n){n(t)}}}function l(n,t){var i=[];return angular.forEach(n,function(n){i.push(e(n))}),f(i,t)}function a(n,t){return t.push(e(n)),f(t)}function v(n,t){return i.removeItem(t,n),f(t)}function e(n){var i=[],t;return angular.forEach(n.config.linkedSets,function(n){i.push({setId:n.id,pricingOnLinkedItem:n.pricingOnLinkedItem,selectedItemId:typeof n.selectedLinkedItem=="undefined"?null:n.selectedLinkedItem.id})}),t={isConfigureItem:n.isConfigureItem,additionalItems:n.config.additionalItems,additionalItemsTotalPrice:n.config.additionalItemsTotalPrice,itemNumber:n.itemNumber,artworkApprovalFiles:n.artworkApprovalFiles,imageUrl:n.imageUrl,itemName:n.itemName,itemAlias:n.itemAlias,quantity:n.quantity,cartonQuantity:n.cartonQuantity,savedConfig:n.savedConfig,total:n.total,linkedSets:i,overriddenSetupTotal:typeof n.config.selectedPrintTypeConfig=="undefined"?0:n.config.selectedPrintTypeConfig.overriddenSetupTotal||0,overriddenTotal:typeof n.config.selectedPrintTypeConfig=="undefined"?0:n.config.selectedPrintTypeConfig.overriddenTotal||0,overridePricing:typeof n.config.selectedPrintTypeConfig=="undefined"?!1:n.config.selectedPrintTypeConfig.overridePricing||!1,overriddenUnitPrice:typeof n.config.selectedPrintTypeConfig=="undefined"?0:n.config.selectedPrintTypeConfig.overriddenUnitPrice||0,setupTotal:typeof n.config.selectedPrintTypeConfig=="undefined"?0:n.config.selectedPrintTypeConfig.setupTotal||0,unitPrice:typeof n.config.selectedPrintTypeConfig=="undefined"?0:n.config.selectedPrintTypeConfig.unitPrice||0,kits:n.kits,kitNumber:n.kitNumber},n.itemPrice!=null&&(t.unitPrice=n.itemPrice),t}var o={get:function(){var n=u.get("cart");return n||(n={userId:null,shoppingCart:"[]"},u.set("cart",n)),n},set:function(n){return u.set("cart",n)}};return{getShoppingCart:s,saveShoppingCart:f,addItemToCart:a,removeItemFromCart:v,createShoppingCartItem:e,getShoppingCartWithConfiguration:c,getShoppingCartWithConfigurationFromQuote:h,updateCart:l}}sharedModule.factory("shoppingCartFactory",n);n.$inject=["$rootScope","$q","listFactory","CART_CONSTANTS","localStorageService"]}(),function(){"use strict";angular.module("appSharedModule").factory("baseFactory",["$http","$location","$rootScope","$q","$timeout","CLIENT_DATA","ALLOWED_ANONYMOUS_ACCESS",function(n,t,i){function r(n){n&&n.data&&n.data.buildNumber&&n.data.buildNumber.length>0&&i.buildNumber!=n.data.buildNumber&&(i.buildNumber=n.data.buildNumber)}var f=4e3,u=function(n,t){var r=0,u=1,e=2,o=3,s=typeof t=="undefined"?!1:t,i=!1;return angular.forEach(n,function(n){switch(n.validationType){case r:toastr.success(n.errorMessage);break;case u:toastr.error(n.errorMessage,"",{timeOut:s?0:f});i=!0;break;case e:toastr.info(n.errorMessage);break;case o:toastr.warning(n.errorMessage);i=!0}}),i};return{fetch:function(t,i){return n({method:"GET",url:t,params:i}).then(function(n){return r(n),typeof n.data.errors!="undefined"&&(n.data.isErrored=typeof n.data.errors!="undefined"&&n.data.errors!=null),n.data})},call:function(t,i){return n.post(t,i).then(function(n){return r(n),typeof n.data.errors!="undefined"&&(n.data.isErrored=u(n.data.errors)),n.data})},post:function(t,i){var f=angular.copy(i),o=["date","orderDate","deliveryDate","start","end","upliftDate"],e;return Array.isArray(f)?angular.forEach(f,function(n){angular.forEach(o,function(t){typeof n[t]!="undefined"&&n[t]!==null&&(typeof n[t]!="string"?n[t]=moment(n[t]).format("YYYY-MM-DD"):moment(n[t]).isValid()&&(n[t]=moment(n[t]).format("YYYY-MM-DD")))})}):typeof f=="object"&&(e=function(n){for(var t in n)o.indexOf(t)>=0?n[t]=moment(n[t]).format("YYYY-MM-DD"):typeof n[t]=="object"&&e(n[t])},e(f)),n({method:"POST",headers:{ClientKey:1,IsMobile:!1},url:t,data:f}).then(function(n){r(n);try{n.data.isErrored=u(n.data.errors,n.data.isPersistError)}catch(t){}finally{return n.data}},function(n){return n.data})}}}])}(),function(){"use strict";var n=angular.module("app",["oc.lazyLoad","appConstantsModule","appSharedModule","appLoginModule","ui.bootstrap","angular-carousel","ngTextTruncate","angular-click-outside","LocalStorageModule"]);n.config(["$provide","localStorageServiceProvider","$ocLazyLoadProvider",function(n,t,i){n.decorator("$rootScope",["$delegate",function(n){return Object.defineProperty(n.constructor.prototype,"$onRootScope",{value:function(t,i){var r=n.$on(t,i);this.$on("$destroy",r)},enumerable:!1}),n}]);i.config({debug:!1,modules:[{name:"OcSubscribeCtrl",cache:!1,serie:!0,files:["/app/modules/subscribe/modals/subscribeModalController.js"]},{name:"OcViewSimpleMediaCtrl",cache:!0,serie:!0,files:["https://vjs.zencdn.net/7.6.0/video-js.css","https://vjs.zencdn.net/7.6.0/video.js","/app/modules/admin/items/editItemModal/editVideoGalleryModal/viewSimpleMediaModal.js"]},{name:"OcOrderReviewCtrl",cache:!0,serie:!0,files:["/app/modules/admin/itemReviews/modals/editItemReviewModalController.js"]},]});t.setPrefix("sage_").setDefaultToCookie(!0).setStorageCookie(30,"/",!0)}]).controller("LayoutCtrl",["$scope","$rootScope","$location","$modal","$timeout","shoppingCartFactory","baseFactory","CART_CONSTANTS",function(n,t,i,r,u,f,e,o){t.showBlanket=!1;n.isLoginOpen=!1;n.openLogin=function(){n.isLoginOpen=!0};n.closeLogin=function(){n.isLoginOpen=!1};n.login=function(){r.open({animation:n.animationsEnabled,templateUrl:"/app/modules/loginPopUp/loginPopUp.html",controller:"LoginPopUpCtrl",size:"md",resolve:{offlineMessage:["baseFactory",function(n){return n.fetch("/api/system/GetOfflineMessage",{}).then(function(n){return n==null?null:n.offlineMessage})}]}})};n.globalSearch=function(n){return n.length<2?[]:e.fetch("/api/item/globalsearch?q="+encodeURIComponent(n)).then(function(n){return n.object==null?[]:n.object})};n.globalSearchOnSelect=function(t,i){n.globalSearchKeyword="";window.location="/p/"+i.itemAlias};n.shoppingCart=[];t.clientName="";t.cdn="";n.currentCategoryId=null;n.loadSubCategories=function(t){n.currentCategoryId=t};t.isBaseLoading=!0;n.$watch("clientName",function(i){t.clientName=i;f.getShoppingCart().then(function(t){n.shoppingCart=t})});n.$watch("cdn",function(n){t.cdn=n});n.$watch("usr",function(n){t.isAthenticated=!1;n!==null&&(t.enums=angular.copy(n.enums),n.userId===0?(t.user=null,t.impersonate=null,t.isAthenticated=!1):(t.user=angular.copy(n),delete t.user.enums,t.isAthenticated=t.user.fullyPassedAuthentication,!t.impersonate&&t.user&&t.user.impersonateCustomerId&&(t.impersonate={name:t.user.impersonateCustomerName,customerId:t.user.impersonateCustomerId},t.$emit(IS_IMPERSONATING))),t.isBaseLoading=!1)});n.isCollapsed=!0;var s=!1;n.hideTopNavMenu=function(t){s=!0;n.isCollapsed=t;u(function(){s=!1},500)};n.topNavMenuClickOutside=function(){n.hideTopNavMenu(!0)};n.sageItemIsAdding=!1;t.$on("$sageItemAdding",function(t,i){n.sageItemIsAdding=!0;n.sageItemAdded=i;n.sageItemAdded.msg="Adding..."});t.$on("$sageItemAdded",function(t,i){n.sageItemAdded=i;n.sageItemAdded.msg="Added item to cart";u(function(){n.sageItemIsAdding=!1},3e3)});n.removeItem=function(t){f.removeItemFromCart(t,n.shoppingCart)};n.$onRootScope(o.CART_UPDATED,function(t,i){n.shoppingCart=angular.copy(i)});n.logout=function(){n.checkImpersonate=null;t.$emit(LOGOUT_USER)};n.$onRootScope(LOGOUT_USER,function(){t.showBlanket=!0;e.call("/api/security/logout",{}).then(function(){t.user=null;t.impersonate=null;t.isAthenticated=!1;t.showBlanket=!1;t.$emit(NO_LOGGED_IN_USER);window.location="/"})});n.openSubscribe=function(){var n=r.open({templateUrl:"/app/modules/subscribe/modals/subscribeModal.html",controller:"SubscribeModalCtrl",size:"md",backdrop:"static",resolve:{SubscribeModule:["$ocLazyLoad",function(n){return n.load("OcSubscribeCtrl")}]}});n.result.then(function(){},function(){})};n.submitTxtSubscribeForm="Send";n.disableSubmitButtonSubscribeForm=!1;n.subscribeFormData={name:null,email:null};n.submitSubscribeForm=function(t,i){if(t.$valid){n.submitTxtSubscribeForm="Sending...";n.disableSubmitButtonSubscribeForm=!0;var u=angular.copy(i);e.post("/api/subscriber/save",u).then(function(t){if(!t.isErrored){var i=r.open({templateUrl:"/app/modules/subscribe/modals/subscribeModal.html",controller:"SubscribeFormCtrl",size:"md",backdrop:"static",resolve:{SubscribeModule:["$ocLazyLoad",function(n){return n.load("OcSubscribeCtrl")}]}});i.result.then(function(){},function(){})}n.submitTxtSubscribeForm="Send";n.disableSubmitButtonSubscribeForm=!1})}}}]).controller("SearchCategoryCtrl",["$scope","$rootScope","$modal","baseFactory","pricingFactory","shoppingCartFactory",function(n,t,i,r,u,f){function s(){var t={searchText:n.search.advancedSearch,retrieveSize:20,categoryIds:n.collapsedCategoryArr.length>0?jQuery.unique(n.collapsedCategoryArr).join():""};t.startIndex=n.startIndex;t.includeMinimumQuantity=!0;t.sort="name";n.loading=!0;r.fetch(n.url,t).then(function(t){angular.forEach(t.object,function(t){n.totalRows=t.totalRows;e.indexOf(t.itemNumber)<0&&(e.push(t.itemNumber),n.items.push(t))});n.isLoading=!1})}function o(n,t){n.config&&(n.quantity=n.config.minQuantity,n.cartonQuantity=n.config.minCartonQuantity,n.config.readonly=!0,n.config.productPrintTypeConfigurations&&n.config.productPrintTypeConfigurations.length>0&&(n.config.selectedPrintTypeConfig=n.config.productPrintTypeConfigurations[0],angular.forEach(n.config.selectedPrintTypeConfig.layoutConfigurations,function(n){n.selectedPosition=n.positions[0]})),u.initConfigurations(n),u.calculateAllPricing(n),n.quantities=[],angular.forEach(n.config.unitPrices,function(t){n.quantities.push({quantity:t.minQuantity})}));typeof t!="undefined"&&t()}n.currentCategoryId=null;n.initialItemsCount=0;n.pageSize=20;n.url="/api/item/SearchItems";n.loadSubCategories=function(t){n.currentCategoryId=t};n.collapsedCategoryArr=[];n.expandCategoryFilter=function(t){var i=n.collapsedCategoryArr.indexOf(t);i>=0?n.collapsedCategoryArr.splice(i,1):n.collapsedCategoryArr.push(t)};n.gridView=!0;n.changeGridView=function(t){n.gridView=t};n.search={advancedSearch:window.location.search.replace("?q=","")};n.searchUpdate=function(){var t="/c";window.location=n.search.advancedSearch.length>0?t+"?q="+n.search.advancedSearch:t};n.clearSearch=function(){n.search.advancedSearch="";n.searchUpdate()};var e=[];n.items=[];n.loading=!1;n.showMore=function(){n.startIndex=n.initialItemsCount+n.items.length+1;s()};n.$watch("initialItemsCount",function(){n.totalRows=n.initialItemsCount});n.quickView=function(n){var t=i.open({templateUrl:"/app/modules/catalog/qodo/modals/quickView.html",controller:["$scope","$modalInstance","$controller","$timeout","$sce","item",function(n,t,i,r,u,f){function e(t){var r,i;for(n.item=t,n.images=[],n.documents=[],n.mediaList=[],n.primaryImage="",n.itemDescription=u.trustAsHtml(t.description),o(n.item),t.documents.length<1&&n.images.push({url:"/content/img/placeholder.png",thumbUrl:"/content/img/placeholder.png",photoUrl:"/content/img/placeholder.png",isActive:!0}),angular.forEach(t.documents,function(t){var i,r;t.isImage?(i={id:n.images.length+1,url:t.link,thumbUrl:t.link,photoUrl:t.link,isImage:!0,name:t.name,isActive:t.isPrimary},t.isPrimary?(n.primaryImage=t.link,n.item.imageUrl=t.link,n.images.unshift(i)):(n.images.push(i),i.name=t.name,n.documents.push(i))):t.isVideo?n.mediaList.push({url:t.link,thumbUrl:t.thumbnail,photoUrl:t.thumbnail,isImage:!1,isActive:!1,data:t}):(r={name:t.name,url:t.link},n.documents.push(r))}),r=n.images,i=0;i<n.mediaList.length;i++)r.push(n.mediaList[i]);n.slider=n.groupByCount(r,3)}angular.extend(this,i("CatalogItemCtrl",{$scope:n}));n.groupByCount=function(n,t){for(var u=0,f=1,r=[],e=[],i=0;i<n.length;i++)n[i].id=i,u>=t&&(e.push({id:f,items:r}),r=[],u=0,f++),r.push(n[i]),u++;return r.length>0&&e.push({id:f,items:r}),e};e(f);n.showImage=function(t){for(var i=0;i<n.images.length;i++)n.images[i].isActive=t.id===n.images[i].id};n.cancel=function(){t.dismiss("cancel")}}],size:"lg",resolve:{item:function(){return r.fetch("/api/item/GetItemDetails?itemAlias="+n).then(function(n){return n.object===null?{}:n.object})}}});t.result.then(function(){},function(){})};n.addToCart=function(n){r.fetch("/api/item/GetItemDetails?itemNumber="+n).then(function(n){var i=n.object;o(i,function(){angular.forEach(i.documents,function(n){n.isImage&&(n.isPrimary?i.imageUrl=n.link:newImage.name=n.name)});t.$broadcast("$sageItemAdding",i);f.getShoppingCart().then(function(n){f.addItemToCart(i,n);t.$broadcast("$sageItemAdded",i)})})})}}]).controller("ResourcesCtrl",["$scope","baseFactory",function(n,t){function i(){var i={startIndex:n.startIndex,retrieveSize:20,categoryId:n.categoryId};i.startIndex=n.startIndex;n.loading=!0;t.fetch("/api/documents/GetAllDocuments",i).then(function(t){n.totalRows=n.totalRows+t.totalItems;angular.forEach(t.object,function(t){n.items.push(t)});n.isLoading=!1})}n.isLoading=!1;n.initialItemsCount=0;n.startIndex=0;n.pageSize=20;n.totalRows=0;n.items=[];n.categoryId=null;n.showMore=function(){n.startIndex=n.initialItemsCount+n.items.length+1;i()};n.$watch("initialItemsCount",function(t){n.totalRows=t})}]).controller("CatalogItemCtrl",["$scope","$rootScope","$timeout","$http","$modal","Carousel","QodoCarouselFactory","shoppingCartFactory","baseFactory",function(n,t,i,r,u,f,e,o,s){n.Carousel=f;n.productCarousel="productCarousel"+window.randomString();n.itemTabIndex=0;n.setItemTab=function(t){n.itemTabIndex=t};n.activeImageId=null;n.showImage=function(t){n.activeImageId=t};i(function(){try{n.relatedItemCarousel=new e({carousel:".relatedItemCarousel",slide:".slide",oneByOne:!0})}catch(t){console.log(t)}},100);n.showErrorMessage=!1;n.item={quantity:1};n.addQuantity=function(t){t?n.item.quantity++:n.item.quantity>0&&n.item.quantity--};n.cartonQuantityUpdated=function(){};n.updateShoppingCart=function(i,r){r.quantity>0?(n.showErrorMessage=!1,t.$broadcast("$sageItemAdding",r),o.getShoppingCart().then(function(n){s.fetch("/api/item/getItemDetails?itemNumber="+r.itemNumber).then(function(i){var u=i.object,f;for(u.quantity=r.quantity,f=0;f<u.documents.length;f++)u.documents[f].isPrimary&&(u.imageUrl=u.documents[f].link);o.addItemToCart(u,n);t.$broadcast("$sageItemAdded",u)})})):n.showErrorMessage=!0};n.openVideo=function(n){var t=u.open({templateUrl:"/app/modules/admin/items/editItemModal/editVideoGalleryModal/viewSimpleMediaModal.html",controller:"ViewSimpleMediaModalCtrl",size:"lg",resolve:{SimpleMediaModule:["$ocLazyLoad",function(n){return n.load("OcViewSimpleMediaCtrl")}],doc:function(){return n}}});t.result.then(function(){},function(){})}}]).controller("HomeCtrl",["$scope","$timeout","Carousel","QodoCarouselFactory",function(n,t,i,r){n.Carousel=i;n.banner="banner"+window.randomString();n.hotDeals="hotDeals"+window.randomString();n.bestSeller="bestSeller"+window.randomString();n.testimonial="testimonials"+window.randomString();setTimeout(function(){var t=document.getElementById("specialCarousel"),i=document.getElementById("bestSellerCarousel");t&&(n.specialCarousel=new r({carousel:"#specialCarousel",slide:".slide",oneByOne:!0}));i&&(n.bestSellerCarousel=new r({carousel:"#bestSellerCarousel",slide:".slide",oneByOne:!0}))},500)}]).controller("PaymentConfirmedCtrl",["$scope","$timeout","shoppingCartFactory",function(n,t,i){t(function(){i.saveShoppingCart([])},100)}]).controller("OrderReviewCtrl",["$scope","$timeout","$ocLazyLoad",function(n,t,i){i.load("OcOrderReveiwCtrl")}]).controller("LoginPopUpCtrl",["$scope","$rootScope","$modalInstance","baseFactory","offlineMessage",function(n,t,i,r,u){n.login={};n.signInText="Login";n.signInDisabled=!1;n.offlineMessage=u;n.loginUser=function(){n.signInDisabled=!0;n.signInText="Checking your credentials";r.call("/api/security/login",{username:n.login.username,password:n.login.password}).then(function(t){!t.isErrored&&t.object&&t.object.authenticatedUser?(n.signInText="Redirecting...",window.location.replace("/")):(n.signInText="Login",n.signInDisabled=!1)})};n.close=function(){i.dismiss("cancel")};n.forgotPassword=function(){window.location.href="/forgotPassword"}}])}();lazySizes.init();angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(n,t,i){function u(n){for(var t in n)if(f.style[t]!==undefined)return n[t]}var r=function(u,f,e){e=e||{};var s=n.defer(),o=r[e.animation?"animationEndEventName":"transitionEndEventName"],h=function(){i.$apply(function(){u.unbind(o,h);s.resolve(u)})};return o&&u.bind(o,h),t(function(){angular.isString(f)?u.addClass(f):angular.isFunction(f)?f(u):angular.isObject(f)&&u.css(f);o||s.resolve(u)}),s.promise.cancel=function(){o&&u.unbind(o,h);s.reject("Transition cancelled")},s.promise},f=document.createElement("trans");return r.transitionEndEventName=u({WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}),r.animationEndEventName=u({WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"}),r}]);angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(n){return{link:function(t,i,r){function e(t){function f(){u===r&&(u=undefined)}var r=n(i,t);return u&&u.cancel(),u=r,r.then(f,f),r}function h(){f?(f=!1,o()):(i.removeClass("collapse").addClass("collapsing"),e({height:i[0].scrollHeight+"px"}).then(o))}function o(){i.removeClass("collapsing");i.addClass("collapse in");i.css({height:"auto"})}function c(){if(f)f=!1,s(),i.css({height:0});else{i.css({height:i[0].scrollHeight+"px"});var n=i[0].offsetWidth;i.removeClass("collapse in").addClass("collapsing");e({height:0}).then(s)}}function s(){i.removeClass("collapsing");i.addClass("collapse")}var f=!0,u;t.$watch(r.collapse,function(n){n?c():h()})}}}]);angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(n,t,i){this.groups=[];this.closeOthers=function(r){var u=angular.isDefined(t.closeOthers)?n.$eval(t.closeOthers):i.closeOthers;u&&angular.forEach(this.groups,function(n){n!==r&&(n.isOpen=!1)})};this.addGroup=function(n){var t=this;this.groups.push(n);n.$on("$destroy",function(){t.removeGroup(n)})};this.removeGroup=function(n){var t=this.groups.indexOf(n);t!==-1&&this.groups.splice(t,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(n){this.heading=n}},link:function(n,t,i,r){r.addGroup(n);n.$watch("isOpen",function(t){t&&r.closeOthers(n)});n.toggleOpen=function(){n.isDisabled||(n.isOpen=!n.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(n,t,i,r,u){r.setHeading(u(n,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(n,t,i,r){n.$watch(function(){return r[i.accordionTransclude]},function(n){n&&(t.html(""),t.append(n))})}}});angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(n,t){n.closeable="close"in t;this.close=n.close}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}).directive("dismissOnTimeout",["$timeout",function(n){return{require:"alert",link:function(t,i,r,u){n(function(){u.close()},parseInt(r.dismissOnTimeout,10))}}}]);angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(n,t,i){t.addClass("ng-binding").data("$binding",i.bindHtmlUnsafe);n.$watch(i.bindHtmlUnsafe,function(n){t.html(n||"")})}});angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(n){this.activeClass=n.activeClass||"active";this.toggleEvent=n.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,n.$eval(i.btnRadio)))};t.bind(f.toggleEvent,function(){var r=t.hasClass(f.activeClass);(!r||angular.isDefined(i.uncheckable))&&n.$apply(function(){u.$setViewValue(r?null:n.$eval(i.btnRadio));u.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){function e(){return o(i.btnCheckboxTrue,!0)}function s(){return o(i.btnCheckboxFalse,!1)}function o(t,i){var r=n.$eval(t);return angular.isDefined(r)?r:i}var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,e()))};t.bind(f.toggleEvent,function(){n.$apply(function(){u.$setViewValue(t.hasClass(f.activeClass)?s():e());u.$render()})})}}});angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$interval","$transition",function(n,t,i,r){function c(){l();var t=+n.interval;!isNaN(t)&&t>0&&(o=i(a,t))}function l(){o&&(i.cancel(o),o=null)}function a(){var t=+n.interval;s&&!isNaN(t)&&t>0?n.next():n.pause()}var u=this,f=u.slides=n.slides=[],e=-1,o,s,h;u.currentSlide=null;h=!1;u.select=n.select=function(i,o){function a(){if(!h){if(u.currentSlide&&angular.isString(o)&&!n.noTransition&&i.$element){i.$element.addClass(o);var t=i.$element[0].offsetWidth;angular.forEach(f,function(n){angular.extend(n,{direction:"",entering:!1,leaving:!1,active:!1})});angular.extend(i,{direction:o,active:!0,entering:!0});angular.extend(u.currentSlide||{},{direction:o,leaving:!0});n.$currentTransition=r(i.$element,{}),function(t,i){n.$currentTransition.then(function(){s(t,i)},function(){s(t,i)})}(i,u.currentSlide)}else s(i,u.currentSlide);u.currentSlide=i;e=l;c()}}function s(t,i){angular.extend(t,{direction:"",active:!0,leaving:!1,entering:!1});angular.extend(i||{},{direction:"",active:!1,leaving:!1,entering:!1});n.$currentTransition=null}var l=f.indexOf(i);o===undefined&&(o=l>e?"next":"prev");i&&i!==u.currentSlide&&(n.$currentTransition?(n.$currentTransition.cancel(),t(a)):a())};n.$on("$destroy",function(){h=!0});u.indexOfSlide=function(n){return f.indexOf(n)};n.next=function(){var t=(e+1)%f.length;if(!n.$currentTransition)return u.select(f[t],"next")};n.prev=function(){var t=e-1<0?f.length-1:e-1;if(!n.$currentTransition)return u.select(f[t],"prev")};n.isActive=function(n){return u.currentSlide===n};n.$watch("interval",c);n.$on("$destroy",l);n.play=function(){s||(s=!0,c())};n.pause=function(){n.noPause||(s=!1,l())};u.addSlide=function(t,i){t.$element=i;f.push(t);f.length===1||t.active?(u.select(f[f.length-1]),f.length==1&&n.play()):t.active=!1};u.removeSlide=function(n){var t=f.indexOf(n);f.splice(t,1);f.length>0&&n.active?t>=f.length?u.select(f[t-1]):u.select(f[t]):e>t&&e--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:function(n,t){return t.templateUrl||"template/carousel/carousel.html"},scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slidee",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(n,t,i,r){r.addSlide(n,t);n.$on("$destroy",function(){r.removeSlide(n)});n.$watch("active",function(t){t&&r.select(n)})}}});angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(n,t){function r(n){var u=[],r=n.split("");return angular.forEach(i,function(t,i){var f=n.indexOf(i),e,o;if(f>-1){for(n=n.split(""),r[f]="("+t.regex+")",n[f]="$",e=f+1,o=f+i.length;e<o;e++)r[e]="",n[e]="$";n=n.join("");u.push({index:f,apply:t.apply})}}),{regex:new RegExp("^"+r.join("")+"$"),map:t(u,"index")}}function u(n,t,i){return t===1&&i>28?i===29&&(n%4==0&&n%100!=0||n%400==0):t===3||t===5||t===8||t===10?i<31:!0}this.parsers={};var i={yyyy:{regex:"\\d{4}",apply:function(n){this.year=+n}},yy:{regex:"\\d{2}",apply:function(n){this.year=+n+2e3}},y:{regex:"\\d{1,4}",apply:function(n){this.year=+n}},MMMM:{regex:n.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:n.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(n){this.month=n-1}},M:{regex:"[1-9]|1[0-2]",apply:function(n){this.month=n-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},EEEE:{regex:n.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:n.DATETIME_FORMATS.SHORTDAY.join("|")}};this.parse=function(t,i){var f,c,e,l,s;if(!angular.isString(t)||!i)return t;i=n.DATETIME_FORMATS[i]||i;this.parsers[i]||(this.parsers[i]=r(i));var h=this.parsers[i],a=h.regex,v=h.map,o=t.match(a);if(o&&o.length){for(f={year:1900,month:0,date:1,hours:0},e=1,l=o.length;e<l;e++)s=v[e-1],s.apply&&s.apply.call(f,o[e]);return u(f.year,f.month,f.date)&&(c=new Date(f.year,f.month,f.date,f.hours)),c}}}]);angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(n,t){function i(n,i){return n.currentStyle?n.currentStyle[i]:t.getComputedStyle?t.getComputedStyle(n)[i]:n.style[i]}function r(n){return(i(n,"position")||"static")==="static"}var u=function(t){for(var u=n[0],i=t.offsetParent||u;i&&i!==u&&r(i);)i=i.offsetParent;return i||u};return{position:function(t){var e=this.offset(t),r={top:0,left:0},i=u(t[0]),f;return i!=n[0]&&(r=this.offset(angular.element(i)),r.top+=i.clientTop-i.scrollTop,r.left+=i.clientLeft-i.scrollLeft),f=t[0].getBoundingClientRect(),{width:f.width||t.prop("offsetWidth"),height:f.height||t.prop("offsetHeight"),top:e.top-r.top,left:e.left-r.left}},offset:function(i){var r=i[0].getBoundingClientRect();return{width:r.width||i.prop("offsetWidth"),height:r.height||i.prop("offsetHeight"),top:r.top+(t.pageYOffset||n[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||n[0].documentElement.scrollLeft)}},positionElements:function(n,t,i,r){var a=i.split("-"),h=a[0],e=a[1]||"center",u,c,l,f,o,s;u=r?this.offset(n):this.position(n);c=t.prop("offsetWidth");l=t.prop("offsetHeight");o={center:function(){return u.left+u.width/2-c/2},left:function(){return u.left},right:function(){return u.left+u.width}};s={center:function(){return u.top+u.height/2-l/2},top:function(){return u.top},bottom:function(){return u.top+u.height}};switch(h){case"right":f={top:s[e](),left:o[h]()};break;case"left":f={top:s[e](),left:u.left-c};break;case"bottom":f={top:s[h](),left:o[e]()};break;default:f={top:u.top-l,left:o[e]()}}return f}}}]);angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(n,t,i,r,u,f,e,o){var s=this,h={$setViewValue:angular.noop},c;this.modes=["day","month","year"];angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(i,u){s[i]=angular.isDefined(t[i])?u<8?r(t[i])(n.$parent):n.$parent.$eval(t[i]):o[i]});angular.forEach(["minDate","maxDate"],function(r){t[r]?n.$parent.$watch(i(t[r]),function(n){s[r]=n?new Date(n):null;s.refreshView()}):s[r]=o[r]?new Date(o[r]):null});n.datepickerMode=n.datepickerMode||o.datepickerMode;n.uniqueId="datepicker-"+n.$id+"-"+Math.floor(Math.random()*1e4);this.activeDate=angular.isDefined(t.initDate)?n.$parent.$eval(t.initDate):new Date;n.isActive=function(t){return s.compare(t.date,s.activeDate)===0?(n.activeDateId=t.uid,!0):!1};this.init=function(n){h=n;h.$render=function(){s.render()}};this.render=function(){if(h.$modelValue){var n=new Date(h.$modelValue),t=!isNaN(n);t?this.activeDate=n:f.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');h.$setValidity("date",t)}this.refreshView()};this.refreshView=function(){if(this.element){this._refreshView();var n=h.$modelValue?new Date(h.$modelValue):null;h.$setValidity("date-disabled",!n||this.element&&!this.isDisabled(n))}};this.createDateObject=function(n,t){var i=h.$modelValue?new Date(h.$modelValue):null;return{date:n,label:e(n,t),selected:i&&this.compare(n,i)===0,disabled:this.isDisabled(n),current:this.compare(n,new Date)===0}};this.isDisabled=function(i){return this.minDate&&this.compare(i,this.minDate)<0||this.maxDate&&this.compare(i,this.maxDate)>0||t.dateDisabled&&n.dateDisabled({date:i,mode:n.datepickerMode})};this.split=function(n,t){for(var i=[];n.length>0;)i.push(n.splice(0,t));return i};n.select=function(t){if(n.datepickerMode===s.minMode){var i=h.$modelValue?new Date(h.$modelValue):new Date(0,0,0,0,0,0,0);i.setFullYear(t.getFullYear(),t.getMonth(),t.getDate());h.$setViewValue(i);h.$render()}else s.activeDate=t,n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)-1]};n.move=function(n){var t=s.activeDate.getFullYear()+n*(s.step.years||0),i=s.activeDate.getMonth()+n*(s.step.months||0);s.activeDate.setFullYear(t,i,1);s.refreshView()};n.toggleMode=function(t){(t=t||1,(n.datepickerMode!==s.maxMode||t!==1)&&(n.datepickerMode!==s.minMode||t!==-1))&&(n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)+t])};n.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};c=function(){u(function(){s.element[0].focus()},0,!1)};n.$on("datepicker.focus",c);n.keydown=function(t){var i=n.keys[t.which];if(i&&!t.shiftKey&&!t.altKey)if(t.preventDefault(),t.stopPropagation(),i==="enter"||i==="space"){if(s.isDisabled(s.activeDate))return;n.select(s.activeDate);c()}else t.ctrlKey&&(i==="up"||i==="down")?(n.toggleMode(i==="up"?1:-1),c()):(s.handleKeyDown(i,t),s.refreshView())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}}).directive("daypicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(t,i,r,u){function f(n,t){return t===1&&n%4==0&&(n%100!=0||n%400==0)?29:e[t]}function o(n,t){var r=new Array(t),i=new Date(n),u=0;for(i.setHours(12);u<t;)r[u++]=new Date(i),i.setDate(i.getDate()+1);return r}function s(n){var t=new Date(n),i;return t.setDate(t.getDate()+4-(t.getDay()||7)),i=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((i-t)/864e5)/7)+1}t.showWeeks=u.showWeeks;u.step={months:1};u.element=i;var e=[31,28,31,30,31,30,31,31,30,31,30,31];u._refreshView=function(){var p=u.activeDate.getFullYear(),h=u.activeDate.getMonth(),c=new Date(p,h,1),e=u.startingDay-c.getDay(),l=e>0?7-e:-e,a=new Date(c),i,r,f,v,y;for(l>0&&a.setDate(-l+1),i=o(a,42),r=0;r<42;r++)i[r]=angular.extend(u.createDateObject(i[r],u.formatDay),{secondary:i[r].getMonth()!==h,uid:t.uniqueId+"-"+r});for(t.labels=new Array(7),f=0;f<7;f++)t.labels[f]={abbr:n(i[f].date,u.formatDayHeader),full:n(i[f].date,"EEEE")};if(t.title=n(u.activeDate,u.formatDayTitle),t.rows=u.split(i,7),t.showWeeks)for(t.weekNumbers=[],v=s(t.rows[0][0].date),y=t.rows.length;t.weekNumbers.push(v++)<y;);};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth(),n.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())};u.handleKeyDown=function(n){var t=u.activeDate.getDate(),i;n==="left"?t=t-1:n==="up"?t=t-7:n==="right"?t=t+1:n==="down"?t=t+7:n==="pageup"||n==="pagedown"?(i=u.activeDate.getMonth()+(n==="pageup"?-1:1),u.activeDate.setMonth(i,1),t=Math.min(f(u.activeDate.getFullYear(),u.activeDate.getMonth()),t)):n==="home"?t=1:n==="end"&&(t=f(u.activeDate.getFullYear(),u.activeDate.getMonth()));u.activeDate.setDate(t)};u.refreshView()}}}]).directive("monthpicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(t,i,r,u){u.step={years:1};u.element=i;u._refreshView=function(){for(var r=new Array(12),f=u.activeDate.getFullYear(),i=0;i<12;i++)r[i]=angular.extend(u.createDateObject(new Date(f,i,1),u.formatMonth),{uid:t.uniqueId+"-"+i});t.title=n(u.activeDate,u.formatMonthTitle);t.rows=u.split(r,3)};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth())-new Date(t.getFullYear(),t.getMonth())};u.handleKeyDown=function(n){var t=u.activeDate.getMonth(),i;n==="left"?t=t-1:n==="up"?t=t-3:n==="right"?t=t+1:n==="down"?t=t+3:n==="pageup"||n==="pagedown"?(i=u.activeDate.getFullYear()+(n==="pageup"?-1:1),u.activeDate.setFullYear(i)):n==="home"?t=0:n==="end"&&(t=11);u.activeDate.setMonth(t)};u.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(n,t,i,r){function f(n){return parseInt((n-1)/u,10)*u+1}var u=r.yearRange;r.step={years:u};r.element=t;r._refreshView=function(){for(var i=new Array(u),t=0,e=f(r.activeDate.getFullYear());t<u;t++)i[t]=angular.extend(r.createDateObject(new Date(e+t,0,1),r.formatYear),{uid:n.uniqueId+"-"+t});n.title=[i[0].label,i[u-1].label].join(" - ");n.rows=r.split(i,5)};r.compare=function(n,t){return n.getFullYear()-t.getFullYear()};r.handleKeyDown=function(n){var t=r.activeDate.getFullYear();n==="left"?t=t-1:n==="up"?t=t-5:n==="right"?t=t+1:n==="down"?t=t+5:n==="pageup"||n==="pagedown"?t+=(n==="pageup"?-1:1)*r.step.years:n==="home"?t=f(r.activeDate.getFullYear()):n==="end"&&(t=f(r.activeDate.getFullYear())+u-1);r.activeDate.setFullYear(t)};r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(n,t,i,r,u,f,e){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(o,s,h,c){function k(n){return n.replace(/([A-Z])/g,function(n){return"-"+n.toLowerCase()})}function d(n){if(n){if(angular.isDate(n)&&!isNaN(n))return c.$setValidity("date",!0),n;if(angular.isString(n)){var t=f.parse(n,p)||new Date(n);return isNaN(t)?(c.$setValidity("date",!1),undefined):(c.$setValidity("date",!0),t)}return c.$setValidity("date",!1),undefined}return c.$setValidity("date",!0),null}var p,g=angular.isDefined(h.closeOnDateSelection)?o.$parent.$eval(h.closeOnDateSelection):e.closeOnDateSelection,b=angular.isDefined(h.datepickerAppendToBody)?o.$parent.$eval(h.datepickerAppendToBody):e.appendToBody,l,a,v,w,y;o.showButtonBar=angular.isDefined(h.showButtonBar)?o.$parent.$eval(h.showButtonBar):e.showButtonBar;o.getText=function(n){return o[n+"Text"]||e[n+"Text"]};h.$observe("datepickerPopup",function(n){p=n||e.datepickerPopup;c.$render()});l=angular.element("<div datepicker-popup-wrap><div datepicker><\/div><\/div>");l.attr({"ng-model":"date","ng-change":"dateSelection()"});a=angular.element(l.children()[0]);h.datepickerOptions&&angular.forEach(o.$parent.$eval(h.datepickerOptions),function(n,t){a.attr(k(t),n)});o.watchData={};angular.forEach(["minDate","maxDate","datepickerMode"],function(n){var i,r;h[n]&&(i=t(h[n]),o.$parent.$watch(i,function(t){o.watchData[n]=t}),a.attr(k(n),"watchData."+n),n==="datepickerMode"&&(r=i.assign,o.$watch("watchData."+n,function(n,t){n!==t&&r(o.$parent,n)})))});h.dateDisabled&&a.attr("date-disabled","dateDisabled({ date: date, mode: mode })");c.$parsers.unshift(d);o.dateSelection=function(n){angular.isDefined(n)&&(o.date=n);c.$setViewValue(o.date);c.$render();g&&(o.isOpen=!1,s[0].focus())};s.bind("input change keyup",function(){o.$apply(function(){o.date=c.$modelValue})});c.$render=function(){var n=c.$viewValue?u(c.$viewValue,p):"";s.val(n);o.date=d(c.$modelValue)};v=function(n){o.isOpen&&n.target!==s[0]&&o.$apply(function(){o.isOpen=!1})};w=function(n){o.keydown(n)};s.bind("keydown",w);o.keydown=function(n){n.which===27?(n.preventDefault(),n.stopPropagation(),o.close()):n.which!==40||o.isOpen||(o.isOpen=!0)};o.$watch("isOpen",function(n){n?(o.$broadcast("datepicker.focus"),o.position=b?r.offset(s):r.position(s),o.position.top=o.position.top+s.prop("offsetHeight"),i.bind("click",v)):i.unbind("click",v)});o.select=function(n){if(n==="today"){var t=new Date;angular.isDate(c.$modelValue)?(n=new Date(c.$modelValue),n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):n=new Date(t.setHours(0,0,0,0))}o.dateSelection(n)};o.close=function(){o.isOpen=!1;s[0].focus()};y=n(l)(o);l.remove();b?i.find("body").append(y):s.after(y);o.$on("$destroy",function(){y.remove();s.unbind("keydown",w);i.unbind("click",v)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(n,t){t.bind("click",function(n){n.preventDefault();n.stopPropagation()})}}});angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(n){var t=null,i,r;this.open=function(u){t||(n.bind("click",i),n.bind("keydown",r));t&&t!==u&&(t.isOpen=!1);t=u};this.close=function(u){t===u&&(t=null,n.unbind("click",i),n.unbind("keydown",r))};i=function(n){var i,r;t&&(n&&t.getAutoClose()==="disabled"||n&&n.which===3||(i=t.getToggleElement(),n&&i&&i[0].contains(n.target))||(r=t.getDropdownElement(),n&&t.getAutoClose()==="outsideClick"&&r&&r[0].contains(n.target))||t.$apply(function(){t.isOpen=!1}))};r=function(n){n.which===27&&(t.focusToggleElement(),i())};this.keybindFilter=function(n){if(t){var r=t.getDropdownElement(),u=t.getToggleElement(),f=r&&r[0].contains(n.target),e=u&&u[0].contains(n.target);n.which===27?(n.stopPropagation(),t.focusToggleElement(),i()):t.isKeynavEnabled()&&[38,40].indexOf(n.which)!==-1&&t.isOpen&&(f||e)&&(n.preventDefault(),n.stopPropagation(),t.focusDropdownEntry(n.which))}}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(n,t,i,r,u,f){var o=this,e=n.$new(),c=r.openClass,s,h=angular.noop,l=t.onToggle?i(t.onToggle):angular.noop;this.init=function(r){o.$element=r;t.isOpen&&(s=i(t.isOpen),h=s.assign,n.$watch(s,function(n){e.isOpen=!!n}))};this.toggle=function(n){return e.isOpen=arguments.length?!!n:!e.isOpen};this.isOpen=function(){return e.isOpen};e.getToggleElement=function(){return o.toggleElement};e.getAutoClose=function(){return t.autoClose||"always"};e.focusToggleElement=function(){o.toggleElement&&o.toggleElement[0].focus()};e.getDropdownElement=function(){return o.dropdownMenu};e.$watch("isOpen",function(t,i){f[t?"addClass":"removeClass"](o.$element,c);t?(e.focusToggleElement(),u.open(e)):u.close(e);h(n,t);angular.isDefined(t)&&t!==i&&l(n,{open:!!t})});n.$on("$locationChangeSuccess",function(){e.isOpen=!1});n.$on("$destroy",function(){e.$destroy()})}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(n,t,i,r){r.init(t)}}}).directive("dropdownMenu",function(){return{restrict:"AC",require:"?^dropdown",link:function(n,t,i,r){if(r&&!angular.isDefined(i.dropdownNested)){t.addClass("dropdown-menu");var u=i.templateUrl;u&&(r.dropdownMenuTemplateUrl=u);r.dropdownMenu||(r.dropdownMenu=t)}}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(n,t,i,r){if(r){r.toggleElement=t;var u=function(u){u.preventDefault();t.hasClass("disabled")||i.disabled||n.$apply(function(){r.toggle()})};t.bind("click",u);t.attr({"aria-haspopup":!0,"aria-expanded":!1});n.$watch(r.isOpen,function(n){t.attr("aria-expanded",!!n)});n.$on("$destroy",function(){t.unbind("click",u)})}}}});angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var n=[];return{add:function(t,i){n.push({key:t,value:i})},get:function(t){for(var i=0;i<n.length;i++)if(t==n[i].key)return n[i]},keys:function(){for(var i=[],t=0;t<n.length;t++)i.push(n[t].key);return i},top:function(){return n[n.length-1]},remove:function(t){for(var r=-1,i=0;i<n.length;i++)if(t==n[i].key){r=i;break}return n.splice(r,1)[0]},removeTop:function(){return n.splice(n.length-1,1)[0]},length:function(){return n.length}}}}}).directive("modalBackdrop",["$timeout",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t,i,r){t.backdropClass=r.backdropClass||"";t.animate=!1;n(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(n,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(n,t){return t.templateUrl||"template/modal/window.html"},link:function(i,r,u){r.addClass(u.windowClass||"");i.size=u.size;t(function(){i.animate=!0;r[0].querySelectorAll("[autofocus]").length||r[0].focus()});i.close=function(t){var i=n.getTop();i&&i.value.backdrop&&i.value.backdrop!="static"&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),n.dismiss(i.key,"backdrop click"))}}}}]).directive("modalTransclude",function(){return{link:function(n,t,i,r,u){u(n.$parent,function(n){t.empty();t.append(n)})}}}).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(n,t,i,r,u,f){function c(){for(var t=-1,i=e.keys(),n=0;n<i.length;n++)e.get(i[n]).value.backdrop&&(t=n);return t}function a(n){var r=i.find("body").eq(0),t=e.get(n).value;e.remove(n);v(t.modalDomEl,t.modalScope,300,function(){t.modalScope.$destroy();r.toggleClass(l,e.length()>0);y()})}function y(){if(h&&c()==-1){var n=o;v(h,o,150,function(){n.$destroy();n=null});h=undefined;o=undefined}}function v(i,r,u,f){function e(){e.done||(e.done=!0,i.remove(),f&&f())}var o,s;r.animate=!1;o=n.transitionEndEventName;o?(s=t(e,u),i.bind(o,function(){t.cancel(s);e();r.$apply()})):t(e)}var l="modal-open",h,o,e=f.createNew(),s={};return u.$watch(c,function(n){o&&(o.index=n)}),i.bind("keydown",function(n){var t;n.which===27&&(t=e.top(),t&&t.value.keyboard&&(n.preventDefault(),u.$apply(function(){s.dismiss(t.key,"escape key press")})))}),s.open=function(n,t){var f,s,a,v,y;e.add(n,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});f=i.find("body").eq(0);s=c();s>=0&&!h&&(o=u.$new(!0),o.index=s,a=angular.element("<div modal-backdrop><\/div>"),a.attr("backdrop-class",t.backdropClass),h=r(a)(o),f.append(h));v=angular.element("<div modal-window><\/div>");v.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:e.length()-1,animate:"animate"}).html(t.content);y=r(v)(t.scope);e.top().value.modalDomEl=y;f.append(y);f.addClass(l)},s.close=function(n,t){var i=e.get(n);i&&(i.value.deferred.resolve(t),a(n))},s.dismiss=function(n,t){var i=e.get(n);i&&(i.value.deferred.reject(t),a(n))},s.dismissAll=function(n){for(var t=this.getTop();t;)this.dismiss(t.key,n),t=this.getTop()},s.getTop=function(){return e.top()},s}]).provider("$modal",function(){var n={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,i,r,u,f,e,o){function h(n){return n.template?r.when(n.template):u.get(angular.isFunction(n.templateUrl)?n.templateUrl():n.templateUrl,{cache:f}).then(function(n){return n.data})}function c(n){var i=[];return angular.forEach(n,function(n){(angular.isFunction(n)||angular.isArray(n))&&i.push(r.when(t.invoke(n)))}),i}var s={};return s.open=function(t){var f=r.defer(),s=r.defer(),u={result:f.promise,opened:s.promise,close:function(n){o.close(u,n)},dismiss:function(n){o.dismiss(u,n)}},l;if(t=angular.extend({},n.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");return l=r.all([h(t)].concat(c(t.resolve))),l.then(function(n){var r=(t.scope||i).$new(),h,s,c;r.$close=u.close;r.$dismiss=u.dismiss;s={};c=1;t.controller&&(s.$scope=r,s.$modalInstance=u,angular.forEach(t.resolve,function(t,i){s[i]=n[c++]}),h=e(t.controller,s),t.controllerAs&&(r[t.controllerAs]=h));o.open(u,{scope:r,deferred:f,content:n[0],backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(n){f.reject(n)}),l.then(function(){s.resolve(!0)},function(){s.reject(!1)}),u},s}]};return n});angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(n,t,i){var u=this,r={$setViewValue:angular.noop},f=t.numPages?i(t.numPages).assign:angular.noop;this.init=function(f,e){r=f;this.config=e;r.$render=function(){u.render()};t.itemsPerPage?n.$parent.$watch(i(t.itemsPerPage),function(t){u.itemsPerPage=parseInt(t,10);n.totalPages=u.calculateTotalPages()}):this.itemsPerPage=e.itemsPerPage};this.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(n.totalItems/this.itemsPerPage);return Math.max(t||0,1)};this.render=function(){n.page=parseInt(r.$viewValue,10)||1};n.selectPage=function(t){n.page!==t&&t>0&&t<=n.totalPages&&(r.$setViewValue(t),r.$render())};n.getText=function(t){return n[t+"Text"]||u.config[t+"Text"]};n.noPrevious=function(){return n.page===1};n.noNext=function(){return n.page===n.totalPages};n.$watch("totalItems",function(){n.totalPages=u.calculateTotalPages()});n.$watch("totalPages",function(t){f(n.$parent,t);n.page>t?n.selectPage(t):r.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(n,t){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(i,r,u,f){function h(n,t,i){return{number:n,text:t,active:i}}function a(n,t){var f=[],i=1,r=t,o=angular.isDefined(e)&&e<t,u,c,l,a;for(o&&(s?(i=Math.max(n-Math.floor(e/2),1),r=i+e-1,r>t&&(r=t,i=r-e+1)):(i=(Math.ceil(n/e)-1)*e+1,r=Math.min(i+e-1,t))),u=i;u<=r;u++)c=h(u,u,u===n),f.push(c);return o&&!s&&(i>1&&(l=h(i-1,"...",!1),f.unshift(l)),r<t&&(a=h(r+1,"...",!1),f.push(a))),f}var o=f[0],c=f[1],e,s,l;c&&(e=angular.isDefined(u.maxSize)?i.$parent.$eval(u.maxSize):t.maxSize,s=angular.isDefined(u.rotate)?i.$parent.$eval(u.rotate):t.rotate,i.boundaryLinks=angular.isDefined(u.boundaryLinks)?i.$parent.$eval(u.boundaryLinks):t.boundaryLinks,i.directionLinks=angular.isDefined(u.directionLinks)?i.$parent.$eval(u.directionLinks):t.directionLinks,o.init(c,t),u.maxSize&&i.$parent.$watch(n(u.maxSize),function(n){e=parseInt(n,10);o.render()}),l=o.render,o.render=function(){l();i.page>0&&i.page<=i.totalPages&&(i.pages=a(i.page,i.totalPages))})}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(n){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,i,r,u){var e=u[0],f=u[1];f&&(t.align=angular.isDefined(r.align)?t.$parent.$eval(r.align):n.align,e.init(f,n))}}}]);angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function r(n){var t="-";return n.replace(/[A-Z]/g,function(n,i){return(i?t:"")+n.toLowerCase()})}var i={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},t={};this.options=function(n){angular.extend(t,n)};this.setTriggers=function(t){angular.extend(n,t)};this.$get=["$window","$compile","$timeout","$document","$position","$interpolate",function(u,f,e,o,s,h){return function(u,c,l){function p(t){var i=t||a.trigger||l,r=n[i]||i;return{show:i,hide:r}}var a=angular.extend({},i,t),w=r(u),v=h.startSymbol(),y=h.endSymbol(),b="<div "+w+'-popup title="'+v+"title"+y+'" content="'+v+"content"+y+'" placement="'+v+"placement"+y+'" animation="animation" is-open="isOpen"><\/div>';return{restrict:"EA",compile:function(){var n=f(b);return function(t,i,r){function ot(){f.isOpen?g():d()}function d(){(!et||t.$eval(r[c+"Enable"]))&&(ht(),f.popupDelay?y||(y=e(ft,f.popupDelay,!1),y.then(function(n){n()})):ft()())}function g(){t.$apply(function(){nt()})}function ft(){return(y=null,v&&(e.cancel(v),v=null),!f.content)?angular.noop:(st(),h.css({top:0,left:0,display:"block"}),b?o.find("body").append(h):i.after(h),ut(),f.isOpen=!0,f.$digest(),ut)}function nt(){f.isOpen=!1;e.cancel(y);y=null;f.animation?v||(v=e(k,500)):k()}function st(){h&&k();w=f.$new();h=n(w,angular.noop)}function k(){v=null;h&&(h.remove(),h=null);w&&(w.$destroy(),w=null)}function ht(){ct();lt()}function ct(){var n=r[c+"Placement"];f.placement=angular.isDefined(n)?n:a.placement}function lt(){var t=r[c+"PopupDelay"],n=parseInt(t,10);f.popupDelay=isNaN(n)?a.popupDelay:n}function at(){var n=r[c+"Trigger"];tt();l=p(n);l.show===l.hide?i.bind(l.show,ot):(i.bind(l.show,d),i.bind(l.hide,g))}var h,w,v,y,b=angular.isDefined(a.appendToBody)?a.appendToBody:!1,l=p(undefined),et=angular.isDefined(r[c+"Enable"]),f=t.$new(!0),ut=function(){var n=s.positionElements(i,h,f.placement,b);n.top+="px";n.left+="px";h.css(n)},tt,it,rt;f.isOpen=!1;r.$observe(u,function(n){f.content=n;!n&&f.isOpen&&nt()});r.$observe(c+"Title",function(n){f.title=n});tt=function(){i.unbind(l.show,d);i.unbind(l.hide,g)};at();it=t.$eval(r[c+"Animation"]);f.animation=angular.isDefined(it)?!!it:a.animation;rt=t.$eval(r[c+"AppendToBody"]);b=angular.isDefined(rt)?rt:b;b&&t.$on("$locationChangeSuccess",function(){f.isOpen&&nt()});t.$on("$destroy",function(){e.cancel(v);e.cancel(y);tt();k();f=null})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(n){return n("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(n){return n("tooltipHtmlUnsafe","tooltip","mouseenter")}]);angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(n){return n("popover","popover","click")}]);angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(n,t,i){var r=this,u=angular.isDefined(t.animate)?n.$parent.$eval(t.animate):i.animate;this.bars=[];n.max=angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max;this.addBar=function(t,i){u||i.css({transition:"none"});this.bars.push(t);t.$watch("value",function(i){t.percent=+(100*i/n.max).toFixed(2)});t.$on("$destroy",function(){i=null;r.removeBar(t)})};this.removeBar=function(n){this.bars.splice(this.bars.indexOf(n),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(n,t,i,r){r.addBar(n,t)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(n,t,i,r){r.addBar(n,angular.element(t.children()[0]))}}});angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(n,t,i){var r={$setViewValue:angular.noop};this.init=function(u){r=u;r.$render=this.render;this.stateOn=angular.isDefined(t.stateOn)?n.$parent.$eval(t.stateOn):i.stateOn;this.stateOff=angular.isDefined(t.stateOff)?n.$parent.$eval(t.stateOff):i.stateOff;var f=angular.isDefined(t.ratingStates)?n.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max);n.range=this.buildTemplateObjects(f)};this.buildTemplateObjects=function(n){for(var t=0,i=n.length;t<i;t++)n[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff},n[t]);return n};n.rate=function(t){!n.readonly&&t>=0&&t<=n.range.length&&(r.$setViewValue(t),r.$render())};n.enter=function(t){n.readonly||(n.value=t);n.onHover({value:t})};n.reset=function(){n.value=r.$viewValue;n.onLeave()};n.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),n.rate(n.value+(t.which===38||t.which===39?1:-1)))};this.render=function(){n.value=r.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}});angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(n){var i=this,t=i.tabs=n.tabs=[],r;i.select=function(n){angular.forEach(t,function(t){t.active&&t!==n&&(t.active=!1,t.onDeselect())});n.active=!0;n.onSelect()};i.addTab=function(n){t.push(n);t.length===1?n.active=!0:n.active&&i.select(n)};i.removeTab=function(n){var u=t.indexOf(n),f;n.active&&t.length>1&&!r&&(f=u==t.length-1?u-1:u+1,i.select(t[f]));t.splice(u,1)};n.$on("$destroy",function(){r=!0})}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(n,t,i){n.vertical=angular.isDefined(i.vertical)?n.$parent.$eval(i.vertical):!1;n.justified=angular.isDefined(i.justified)?n.$parent.$eval(i.justified):!1}}}).directive("tab",["$parse",function(n){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(t,i,r){return function(t,i,u,f){t.$watch("active",function(n){n&&f.select(t)});t.disabled=!1;u.disabled&&t.$parent.$watch(n(u.disabled),function(n){t.disabled=!!n});t.select=function(){t.disabled||(t.active=!0)};f.addTab(t);t.$on("$destroy",function(){f.removeTab(t)});t.$transcludeFn=r}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(n,t){n.$watch("headingElement",function(n){n&&(t.html(""),t.append(n))})}}}]).directive("tabContentTransclude",function(){function n(n){return n.tagName&&(n.hasAttribute("tab-heading")||n.hasAttribute("data-tab-heading")||n.tagName.toLowerCase()==="tab-heading"||n.tagName.toLowerCase()==="data-tab-heading")}return{restrict:"A",require:"^tabset",link:function(t,i,r){var u=t.$eval(r.tabContentTransclude);u.$transcludeFn(u.$parent,function(t){angular.forEach(t,function(t){n(t)?u.headingElement=t:i.append(t)})})}}});angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(n,t,i,r,u,f){function p(){var t=parseInt(n.hours,10),i=n.showMeridian?t>0&&t<13:t>=0&&t<24;return i?(n.showMeridian&&(t===12&&(t=0),n.meridian===v[1]&&(t=t+12)),t):undefined}function w(){var t=parseInt(n.minutes,10);return t>=0&&t<60?t:undefined}function l(n){return angular.isDefined(n)&&n.toString().length<2?"0"+n:n}function a(n){b();o.$setViewValue(new Date(e));y(n)}function b(){o.$setValidity("time",!0);n.invalidHours=!1;n.invalidMinutes=!1}function y(t){var i=e.getHours(),r=e.getMinutes();n.showMeridian&&(i=i===0||i===12?12:i%12);n.hours=t==="h"?i:l(i);n.minutes=t==="m"?r:l(r);n.meridian=e.getHours()<12?v[0]:v[1]}function s(n){var t=new Date(e.getTime()+n*6e4);e.setHours(t.getHours(),t.getMinutes());a()}var e=new Date,o={$setViewValue:angular.noop},v=angular.isDefined(t.meridians)?n.$parent.$eval(t.meridians):f.meridians||u.DATETIME_FORMATS.AMPMS,h,c;this.init=function(i,r){o=i;o.$render=this.render;var u=r.eq(0),e=r.eq(1),s=angular.isDefined(t.mousewheel)?n.$parent.$eval(t.mousewheel):f.mousewheel;s&&this.setupMousewheelEvents(u,e);n.readonlyInput=angular.isDefined(t.readonlyInput)?n.$parent.$eval(t.readonlyInput):f.readonlyInput;this.setupInputEvents(u,e)};h=f.hourStep;t.hourStep&&n.$parent.$watch(i(t.hourStep),function(n){h=parseInt(n,10)});c=f.minuteStep;t.minuteStep&&n.$parent.$watch(i(t.minuteStep),function(n){c=parseInt(n,10)});n.showMeridian=f.showMeridian;t.showMeridian&&n.$parent.$watch(i(t.showMeridian),function(t){if(n.showMeridian=!!t,o.$error.time){var i=p(),r=w();angular.isDefined(i)&&angular.isDefined(r)&&(e.setHours(i),a())}else y()});this.setupMousewheelEvents=function(t,i){var r=function(n){n.originalEvent&&(n=n.originalEvent);var t=n.wheelDelta?n.wheelDelta:-n.deltaY;return n.detail||t>0};t.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementHours():n.decrementHours());t.preventDefault()});i.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementMinutes():n.decrementMinutes());t.preventDefault()})};this.setupInputEvents=function(t,i){if(n.readonlyInput){n.updateHours=angular.noop;n.updateMinutes=angular.noop;return}var r=function(t,i){o.$setViewValue(null);o.$setValidity("time",!1);angular.isDefined(t)&&(n.invalidHours=t);angular.isDefined(i)&&(n.invalidMinutes=i)};n.updateHours=function(){var n=p();angular.isDefined(n)?(e.setHours(n),a("h")):r(!0)};t.bind("blur",function(){!n.invalidHours&&n.hours<10&&n.$apply(function(){n.hours=l(n.hours)})});n.updateMinutes=function(){var n=w();angular.isDefined(n)?(e.setMinutes(n),a("m")):r(undefined,!0)};i.bind("blur",function(){!n.invalidMinutes&&n.minutes<10&&n.$apply(function(){n.minutes=l(n.minutes)})})};this.render=function(){var n=o.$modelValue?new Date(o.$modelValue):null;isNaN(n)?(o.$setValidity("time",!1),r.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(n&&(e=n),b(),y())};n.incrementHours=function(){s(h*60)};n.decrementHours=function(){s(-h*60)};n.incrementMinutes=function(){s(c)};n.decrementMinutes=function(){s(-c)};n.toggleMeridian=function(){s(720*(e.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u,t.find("input"))}}});angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(n){var t=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(i){var r=i.match(t);if(!r)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+i+'".');return{itemName:r[3],source:n(r[4]),viewMapper:n(r[2]||r[1]),modelMapper:n(r[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(n,t,i,r,u,f,e){var o=[9,13,27,38,40];return{require:"ngModel",link:function(s,h,c,l){var w,b,y,nt,tt,it,st,rt,ut,k;s.isDropdownTitle=typeof c.typeaheadTitle!="undefined";s.dropdownTitle=c.typeaheadTitle;var ht=s.$eval(c.typeaheadMinLength)||1,ft=s.$eval(c.typeaheadWaitMs)||0,ct=s.$eval(c.typeaheadEditable)!==!1,p=t(c.typeaheadLoading).assign||angular.noop,lt=t(c.typeaheadOnSelect),et=c.typeaheadInputFormatter?t(c.typeaheadInputFormatter):undefined,d=c.typeaheadAppendToBody?s.$eval(c.typeaheadAppendToBody):!1,at=s.$eval(c.typeaheadFocusFirst)!==!1,ot=t(c.ngModel).assign,v=e.parse(c.typeahead),g,a=s.$new();a.inputValue=ot;a.isLoading=!1;s.$on("$destroy",function(){a.$destroy()});w="typeahead-"+a.$id+"-"+Math.floor(Math.random()*1e4);h.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":w});b=angular.element("<div typeahead-popup><\/div>");b.attr({id:w,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});angular.isDefined(c.typeaheadTemplateUrl)&&b.attr("template-url",c.typeaheadTemplateUrl);y=function(){a.matches=[];a.activeIdx=-1;h.attr("aria-expanded",!1)};nt=function(n){return w+"-option-"+n};a.$watch("activeIdx",function(n){n<0?h.removeAttr("aria-activedescendant"):h.attr("aria-activedescendant",nt(n))});tt=function(n){a.queryTemp=n;var t={$viewValue:n};p(s,!0);a.isLoading=!0;i.when(v.source(s,t)).then(function(i){var u=n===l.$viewValue,r;if(u&&g)if(i.length>0){for(a.activeIdx=at?0:-1,a.matches.length=0,r=0;r<i.length;r++)t[v.itemName]=i[r],a.matches.push({id:nt(r),label:v.viewMapper(a,t),model:i[r]});a.query=n;a.position=d?f.offset(h):f.position(h);a.position.top=a.position.top+h.prop("offsetHeight");h.attr("aria-expanded",!0)}else y();u&&(p(s,!1),a.isLoading=!1)},function(){y();p(s,!1);a.isLoading=!1})};y();a.query=undefined;a.queryTemp=undefined;st=function(n){it=r(function(){tt(n)},ft)};rt=function(){it&&r.cancel(it)};l.$parsers.unshift(function(n){return g=!0,n&&n.length>=ht?ft>0?(rt(),st(n)):tt(n):(p(s,!1),a.isLoading=!1,rt(),y()),ct?n:n?(l.$setValidity("editable",!1),undefined):(l.$setValidity("editable",!0),n)});l.$formatters.push(function(n){var i,r,t={};return et?(t.$model=n,et(s,t)):(t[v.itemName]=n,i=v.viewMapper(s,t),t[v.itemName]=undefined,r=v.viewMapper(s,t),i!==r?i:n)});a.select=function(n){var t={},i,u;t[v.itemName]=u=a.matches[n].model;i=v.modelMapper(s,t);ot(s,i);l.$setValidity("editable",!0);a.queryTemp=undefined;lt(s,{$item:u,$model:i,$label:v.viewMapper(s,t)});y();r(function(){h[0].focus()},0,!1)};h.bind("keydown",function(n){a.matches.length!==0&&o.indexOf(n.which)!==-1&&(a.activeIdx!=-1||n.which!==13&&n.which!==9)&&(n.preventDefault(),n.which===40?(a.activeIdx=(a.activeIdx+1)%a.matches.length,a.$digest()):n.which===38?(a.activeIdx=(a.activeIdx>0?a.activeIdx:a.matches.length)-2,a.$digest()):n.which===13||n.which===9?a.$apply(function(){a.select(a.activeIdx)}):n.which===27&&(n.stopPropagation(),y(),a.$digest()))});h.bind("blur",function(){g=!1});ut=function(n){h[0]!==n.target&&(y(),a.$digest())};u.bind("click",ut);s.$on("$destroy",function(){u.unbind("click",ut);d&&k.remove()});k=n(b)(a);d?u.find("body").append(k):h.after(k)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(n,t,i){n.templateUrl=i.templateUrl;n.isOpen=function(){return n.matches.length>0||typeof n.$parent.queryTemp!="undefined"&&n.$parent.queryTemp.length>1};n.isNoMatch=function(){return n.matches.length==0&&!n.$parent.isLoading&&typeof n.$parent.queryTemp!="undefined"&&n.$parent.queryTemp.length>1};n.isActive=function(t){return n.active==t};n.selectActive=function(t){n.active=t};n.selectMatch=function(t){n.select({activeIdx:t})}}}}).directive("typeaheadMatch",["$templateRequest","$compile","$parse",function(n,t,i){return{scope:{index:"=",match:"=",query:"="},link:function(r,u,f){var e=i(f.templateUrl)(r.$parent)||"template/typeahead/typeahead-match.html";n(e).then(function(n){var i=angular.element(n.trim());u.replaceWith(i);t(i)(r)})}}}]).filter("typeaheadHighlight",function(){function n(n){return n.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,i){return i?(""+t).replace(new RegExp(n(i),"gi"),"<strong>$&<\/strong>"):t}});angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n  <div class="panel-heading">\n    <h4 class="panel-title">\n      <a href class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}<\/span><\/a>\n    <\/h4>\n  <\/div>\n  <div class="panel-collapse" collapse="!isOpen">\n\t  <div class="panel-body" ng-transclude><\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude><\/div>')}]);angular.module("template/alert/alert.html",[]).run(["$templateCache",function(n){n.put("template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissable\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close()">\n        <span aria-hidden="true">&times;<\/span>\n        <span class="sr-only">Close<\/span>\n    <\/button>\n    <div ng-transclude><\/div>\n<\/div>\n')}]);angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(n){n.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n    <ol class="carousel-indicators" ng-show="slides.length > 1">\n        <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"><\/li>\n    <\/ol>\n    <div class="carousel-inner" ng-transclude><\/div>\n    <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"><\/span><\/a>\n    <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"><\/span><\/a>\n<\/div>\n')}]);angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(n){n.put("template/carousel/slide.html","<div ng-class=\"{\n    'active': leaving || (active && !entering),\n    'prev': (next || active) && direction=='prev',\n    'next': (next || active) && direction=='next',\n    'right': direction=='prev',\n    'left': direction=='next'\n  }\" class=\"item text-center\" ng-transclude><\/div>\n")}]);angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <daypicker ng-switch-when="day" tabindex="0"><\/daypicker>\n  <monthpicker ng-switch-when="month" tabindex="0"><\/monthpicker>\n  <yearpicker ng-switch-when="year" tabindex="0"><\/yearpicker>\n<\/div>')}]);angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n    <tr>\n      <th ng-show="showWeeks" class="text-center"><\/th>\n      <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}<\/small><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}<\/em><\/td>\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/popup.html",'<ul class="dropdown-menu bootstrap-date-picker" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n\t<li ng-transclude><\/li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n\t\t<span class="btn-group pull-left">\n\t\t\t<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}<\/button>\n\t\t\t<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}<\/button>\n\t\t<\/span>\n\t\t<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}<\/button>\n\t<\/li>\n<\/ul>\n')}]);angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(n){n.put("template/modal/backdrop.html",'<div class="modal-backdrop fade {{ backdropClass }}"\n     ng-class="{in: animate}"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n><\/div>\n')}]);angular.module("template/modal/window.html",[]).run(["$templateCache",function(n){n.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n    <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\' , \'modal-huge\': size == \'huge\'}"><div class="modal-content" modal-transclude><\/div><\/div>\n<\/div>')}]);angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1)">{{getText(\'first\')}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number)">{{page.text}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n  <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages)">{{getText(\'last\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" bind-html-unsafe="content"><\/div>\n<\/div>\n')}]);angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" ng-bind="content"><\/div>\n<\/div>\n')}]);angular.module("template/popover/popover.html",[]).run(["$templateCache",function(n){n.put("template/popover/popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="arrow"><\/div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-show="title"><\/h3>\n      <div class="popover-content" ng-bind-html="content"><\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>')}]);angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progress.html",'<div class="progress" ng-transclude><\/div>')}]);angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>\n<\/div>')}]);angular.module("template/rating/rating.html",[]).run(["$templateCache",function(n){n.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n        <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})<\/span>\n    <\/i>\n<\/span>')}]);angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n  <a href ng-click="select()" tab-heading-transclude>{{heading}}<\/a>\n<\/li>\n')}]);angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude><\/ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         tab-content-transclude="tab">\n    <\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(n){n.put("template/timepicker/timepicker.html",'<table>\n\t<tbody>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n\t\t\t\t<input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td>:<\/td>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n\t\t\t\t<input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}<\/button><\/td>\n\t\t<\/tr>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n')}]);angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"><\/a>')}]);angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-show="isNoMatch()" class="dropdown-header">No Results Found<\/li>\n    <li ng-show="$parent.isDropdownTitle" class="dropdown-header">{{$parent.dropdownTitle}}<\/li>\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n        <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"><\/div>\n    <\/li>\n<\/ul>\n')}]),function(){"use strict";sharedModule.factory("listFactory",[function(){return{add:function(n,t){t&&n&&n.push(t)},remove:function(n,t){var r,i;if(t&&n){for(r=-1,i=0;i<n.length;i++)if(n[i]==t){r=i;break}r>=0&&n.splice(r,1)}},removeItem:function(n,t){var r,i;if(t&&n){for(r=-1,i=0;i<n.length;i++)if(n[i].itemNumber==t.itemNumber){r=i;break}r>=0&&n.splice(r,1)}},duplicate:function(n,t){var i=angular.copy(t);i.id=0;n.push(i)}}}])}();!function(n,t){var f=t.isDefined,r=t.isUndefined,e=t.isNumber,i=t.isObject,o=t.isArray,s=t.isString,h=t.extend,u=t.toJson;t.module("LocalStorageModule",[]).provider("localStorageService",function(){this.prefix="ls";this.storageType="localStorage";this.cookie={expiry:30,path:"/",secure:!1};this.defaultToCookie=!0;this.notify={setItem:!0,removeItem:!1};this.setPrefix=function(n){return this.prefix=n,this};this.setStorageType=function(n){return this.storageType=n,this};this.setDefaultToCookie=function(n){return this.defaultToCookie=!!n,this};this.setStorageCookie=function(n,t,i){return this.cookie.expiry=n,this.cookie.path=t,this.cookie.secure=i,this};this.setStorageCookieDomain=function(n){return this.cookie.domain=n,this};this.setNotify=function(n,t){return this.notify={setItem:n,removeItem:t},this};this.$get=["$rootScope","$window","$document","$parse","$timeout",function(n,t,c,l,a){function rt(i){if(i||(i=t.event),tt.setItem&&s(i.key)&&pt(i.key)){var r=st(i.key);a(function(){n.$broadcast("LocalStorageModule.notification.changed",{key:r,newvalue:i.newValue,storageType:v.storageType})})}}var b,v=this,y=v.prefix,nt=v.cookie,tt=v.notify,k=v.storageType,vt,yt;c?c[0]&&(c=c[0]):c=document;"."!==y.substr(-1)&&(y=y?y+".":"");var d=function(n){return y+n},st=function(n){return n.replace(new RegExp("^"+y,"g"),"")},pt=function(n){return 0===n.indexOf(y)},ht=function(){try{var i=k in t&&null!==t[k],r=d("__"+Math.round(1e7*Math.random()));return i&&(b=t[k],b.setItem(r,""),b.removeItem(r)),i}catch(t){return v.defaultToCookie&&(k="cookie"),n.$broadcast("LocalStorageModule.notification.error",t.message),!1}},p=ht(),ft=function(t,i,f){var e=g();try{if(w(f),i=r(i)?null:u(i),!p&&v.defaultToCookie||"cookie"===v.storageType)return p||n.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),tt.setItem&&n.$broadcast("LocalStorageModule.notification.setitem",{key:t,newvalue:i,storageType:"cookie"}),it(t,i);try{b&&b.setItem(d(t),i);tt.setItem&&n.$broadcast("LocalStorageModule.notification.setitem",{key:t,newvalue:i,storageType:v.storageType})}catch(r){return n.$broadcast("LocalStorageModule.notification.error",r.message),it(t,i)}return!0}finally{w(e)}},ct=function(t,i){var u=g(),r;try{if(w(i),!p&&v.defaultToCookie||"cookie"===v.storageType)return p||n.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),at(t);if(r=b?b.getItem(d(t)):null,!r||"null"===r)return null;try{return JSON.parse(r)}catch(n){return r}}finally{w(u)}},lt=function(){var u=g(),r,i,t;try{for(r=0,arguments.length>=1&&("localStorage"===arguments[arguments.length-1]||"sessionStorage"===arguments[arguments.length-1])&&(r=1,w(arguments[arguments.length-1])),i=0;i<arguments.length-r;i++)if(t=arguments[i],!p&&v.defaultToCookie||"cookie"===v.storageType)p||n.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),tt.removeItem&&n.$broadcast("LocalStorageModule.notification.removeitem",{key:t,storageType:"cookie"}),ut(t);else try{b.removeItem(d(t));tt.removeItem&&n.$broadcast("LocalStorageModule.notification.removeitem",{key:t,storageType:v.storageType})}catch(u){n.$broadcast("LocalStorageModule.notification.error",u.message);ut(t)}}finally{w(u)}},wt=function(t){var f=g(),i,r,u;try{if(w(t),!p)return n.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),[];i=y.length;r=[];for(u in b)if(u.substr(0,i)===y)try{r.push(u.substr(i))}catch(t){return n.$broadcast("LocalStorageModule.notification.error",t.Description),[]}return r}finally{w(f)}},bt=function(t,i){var o=g(),f,e,u,r;try{if(w(i),f=y?new RegExp("^"+y):new RegExp,e=t?new RegExp(t):new RegExp,!p&&v.defaultToCookie||"cookie"===v.storageType)return p||n.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),ot();if(!p&&!v.defaultToCookie)return!1;u=y.length;for(r in b)if(f.test(r)&&e.test(r.substr(u)))try{lt(r.substr(u))}catch(t){return n.$broadcast("LocalStorageModule.notification.error",t.message),ot()}return!0}finally{w(o)}},et=function(){try{return t.navigator.cookieEnabled||"cookie"in c&&(c.cookie.length>0||(c.cookie="test").indexOf.call(c.cookie,"test")>-1)}catch(t){return n.$broadcast("LocalStorageModule.notification.error",t.message),!1}}(),it=function(t,f,s,h){var y;if(r(f))return!1;if((o(f)||i(f))&&(f=u(f)),!et)return n.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;try{var a="",l=new Date,v="";(null===f?(l.setTime(l.getTime()+-864e5),a="; expires="+l.toGMTString(),f=""):e(s)&&0!==s?(l.setTime(l.getTime()+864e5*s),a="; expires="+l.toGMTString()):0!==nt.expiry&&(l.setTime(l.getTime()+864e5*nt.expiry),a="; expires="+l.toGMTString()),t)&&(y="; path="+nt.path,nt.domain&&(v="; domain="+nt.domain),"boolean"==typeof h?h===!0&&(v+="; secure"):nt.secure===!0&&(v+="; secure"),c.cookie=d(t)+"="+encodeURIComponent(f)+a+y+v)}catch(t){return n.$broadcast("LocalStorageModule.notification.error",t.message),!1}return!0},at=function(t){var f,r,i,u,e;if(!et)return n.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;for(f=c.cookie&&c.cookie.split(";")||[],r=0;r<f.length;r++){for(i=f[r];" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(d(t)+"=")){u=decodeURIComponent(i.substring(y.length+t.length+1,i.length));try{return e=JSON.parse(u),"number"==typeof e?u:e}catch(n){return u}}}return null},ut=function(n){it(n,null)},ot=function(){for(var r,n=null,u=y.length,i=c.cookie.split(";"),t=0;t<i.length;t++){for(n=i[t];" "===n.charAt(0);)n=n.substring(1,n.length);r=n.substring(u,n.indexOf("="));ut(r)}},g=function(){return k},w=function(n){return n&&k!==n&&(k=n,p=ht()),p},kt=function(n,t,r,u,e){u=u||t;var o=ct(u,e);return null===o&&f(r)?o=r:i(o)&&i(r)&&(o=h(o,r)),l(t).assign(n,o),n.$watch(t,function(n){ft(u,n,e)},i(n[t]))};return p&&(t.addEventListener?(t.addEventListener("storage",rt,!1),n.$on("$destroy",function(){t.removeEventListener("storage",rt)})):t.attachEvent&&(t.attachEvent("onstorage",rt),n.$on("$destroy",function(){t.detachEvent("onstorage",rt)}))),vt=function(n){var f=g();try{w(n);for(var r=0,u=t[k],i=0;i<u.length;i++)0===u.key(i).indexOf(y)&&r++;return r}finally{w(f)}},yt=function(n){y=n},{isSupported:p,getStorageType:g,setStorageType:w,setPrefix:yt,set:ft,add:ft,get:ct,keys:wt,remove:lt,clearAll:bt,bind:kt,deriveKey:d,underiveKey:st,length:vt,defaultToCookie:this.defaultToCookie,cookie:{isSupported:et,set:it,add:it,get:at,remove:ut,clearAll:ot}}}]})}(window,window.angular),function(){"use strict";function n(){return{restrict:"C",scope:!0,controller:["$scope","$timeout",function(n,t){var i=this;this.openMenu=function(n,i){var r=1,u;n.bind("click",function(){n.hasClass("drop-active")?n.removeClass("drop-active"):(angular.element("[sky-mega-menu-dropdown]").removeClass("drop-active"),t(function(){n.addClass("drop-active")},10))});typeof i.hoverEnabled!="undefined"&&(n.bind("mouseover",function(){clearTimeout(u);r=1;n.hasClass("drop-active")||(u=setTimeout(function(){n.addClass("drop-active")},10))}),n.bind("mouseout",function(){r=0;setTimeout(function(){r===0&&n.removeClass("drop-active")},300)}))};angular.element(document).bind("click",function(){angular.element("[sky-mega-menu-dropdown]").removeClass("drop-active")})}],link:function(){}}}function t(){return{restrict:"A",require:"?^skyMegaMenu",scope:!0,link:function(n,t,i,r){r.openMenu(t,i)}}}function i(n){return{restrict:"EAC",require:"?^skyMegaMenu",scope:!0,controller:[function(){}],link:function(t,i){n(function(){angular.forEach(i.find("a"),function(t){var r=[];angular.forEach(angular.element(t)[0].attributes,function(n){r.push(n.name)});r.indexOf("stop-event")<0&&angular.element(t).bind("click",function(){i.addClass("hidden");n(function(){i.removeClass("hidden")},100)})})},0)}}}sharedModule.directive("skyMegaMenu",n);sharedModule.directive("skyMegaMenuDropdown",t);sharedModule.directive("skyMegaMenuDropdownMenu",i);n.$inject=[];t.$inject=["$timeout"];i.$inject=["$timeout"]}(),function(){"use strict";sharedModule.controller("NewsSimpleCtrl",["$scope","$rootScope","$modal","$timeout","baseFactory",function(n,t,i,r,u){function e(){var t={startIndex:n.startIndex,retrieveSize:f,sort:"Date desc",b:!0,cb:!0};n.newsYear!==null&&(t.yr=n.newsYear);n.newsCategoryId!==null&&(t.cid=n.newsCategoryId);n.isLoading=!0;u.fetch(n.url,t).then(function(t){n.isShowMore=t.object.length===f;for(var i=0;i<t.object.length;i++)n.articles.push(t.object[i]);n.totalRows+=n.articles.length;n.isLoading=!1})}var f=20;n.articles=[];n.startIndex=n.totalRows+1;n.url="/api/articles/searchAll";n.dataToSend={};n.isLoading=!1;n.isShowMore=!1;r(function(){n.isShowMore=n.totalRows===f});n.showMore=function(){n.startIndex=n.totalRows+1;e()}}])}(),function(){"use strict";sharedModule.directive("checkUserImage",["$http",function(){return{restrict:"A",link:function(n,t,i){function r(){i.$set("src","https://qodo-cdn.azureedge.net/shared/noavatar.png")}typeof i.src=="undefined"&&r();t.bind("error",function(){r()})}}}]).directive("checkImage",["$http",function(){return{restrict:"A",link:function(n,t,i){function r(){i.$set("src","https://qodo-cdn.azureedge.net/shared/placeholder.png")}typeof i.src=="undefined"&&r();t.bind("error",function(){r()})}}}])}(),function(){"use strict";loginModule.directive("inlineLogin",["baseFactory",function(n){return{restrict:"EA",replace:!0,scope:{close:"&"},templateUrl:"/app/modules/login/directives/inlineLogin.html",controller:["$scope",function(t){t.login={};t.signInText="Sign In";t.signInDisabled=!1;t.loginUser=function(){t.signInDisabled=!0;t.signInText="Signing in...";n.call("/api/security/login",{username:t.login.username,password:t.login.password}).then(function(n){!n.isErrored&&n.object&&n.object.authenticatedUser?(t.signInText="Redirecting...",window.location.replace("/")):(t.signInText="Login",t.signInDisabled=!1)})};t.closeLogin=function(){t.close()}}]}}])}(),function(){"use strict";function t(){return{templateUrl:"/app/modules/shared/template/globalSearchAdvancedTemplate.html",restrict:"AE",transclude:!0,replace:!1,scope:{access:"=?accessFilter",onItemSelected:"&onSelected"},controller:n}}function i(){return{templateUrl:"/app/modules/shared/template/globalSearchSimpleTemplate.html",restrict:"AE",transclude:!0,replace:!0,scope:{access:"=?accessFilter",isField:"=?",onItemSelected:"&onSelected"},controller:n}}function r(n){return{restrict:"A",require:"?^globalSearch",link:function(t,i){n(function(){i.bind("keydown",function(n){t.$broadcast("globalSearchKeydown",{code:event.keyCode,parent:i.find("li"),event:n})})},0)}}}sharedModule.directive("globalSearch",t);t.$inject=[];sharedModule.directive("globalSearchSimple",i);i.$inject=[];sharedModule.directive("globalSearchKeyNav",r);r.$inject=["$timeout"];var n=["$rootScope","$scope","baseFactory","$state",function(n,t,i,r){var u=[{id:1,name:"Order",isActive:!0},{id:2,name:"Invoices",isActive:!0},{id:3,name:"Customers",isActive:!0}];t.access=typeof t.access=="undefined"?[]:t.access;t.filters=[];t.isLoading=!1;t.limitToNum=3;t.gsFilter=[1];t.searchFor="";t.globalSearchKeyword="";t.globalSearchCount=0;t.results=[];t.isDropOpen=!1;var o=function(){t.globalSearchCount=t.customersGlobalSearch.length+t.ordersGlobalSearch.length+t.invoicesGlobalSearch.length},f=function(n,i){for(var r=[],f,e,u=0,o=n.length;u<o;u++)(" "+n[u].className+" ").indexOf(" gs-result ")>=0&&r.push(u);for(i>=r.length?i=t.focusIndex=r.length-1:i<0&&(i=t.focusIndex=0),f=0;f<r.length;f++)e=r[f],f==i?angular.element(n[e]).addClass("gs-result-active"):angular.element(n[e]).removeClass("gs-result-active")},e=function(n){for(var i=-1,t=0,r=n.length;t<r;t++)if((" "+n[t].className+" ").indexOf(" gs-result-active ")>=0){i=t;break}i>=0&&angular.element(n[i]).find("a").triggerHandler("click")};t.globalSearchChange=function(r){var u,f;t.focusIndex=-1;r.length<2?t.results=[]:(u=[{id:0,name:"All",isActive:!0},{id:1,name:n.clientName=="TFT"?"Jobs":"Orders",url:"base.orders.view2",param:"id"},{id:2,name:"Invoices",url:"/Report/OrderInvoice?invoiceNumber=",param:"id"},{id:3,name:"Customers",url:"base.customers.manage",param:"customerId"},{id:4,name:"Items",url:"anonymous.shop.item",param:"id"},{id:5,name:"Contacts",url:"base.customers.manage",param:"customerId"}],t.isLoading=!0,t.results=[],f=t.access.join(",").toLowerCase(),i.fetch("/api/system/globalsearch",{q:r,access:f}).then(function(n){for(var o=null,r,f,e,i=0;i<n.object.length;i++)r=n.object,f=!1,u[r[i].type].name!=o&&(o=u[r[i].type].name,f=!0),e={url:u[r[i].type].url,param:{}},e.param[u[r[i].type].param]=r[i].id,t.results.push({filterId:u[r[i].type].id,filterName:u[r[i].type].name,id:r[i].id,contactId:r[i].contactId,title:f?u[r[i].type].name:null,name:r[i].name,photoThumbnailUrl:r[i].photoThumbnailUrl,description:r[i].description,state:e});t.isDropOpen=t.results.length>0;t.isLoading=!1}))};t.isFilterCheck=function(n){return t.gsFilter.indexOf(n)>=0};t.setFilterStr=function(){for(var i,n=0;n<u.length;n++)t.access.length==0?t.filters.push(u[n]):t.access.indexOf(u[n].name)>=0&&t.filters.push(u[n]);i=[];angular.forEach(t.filters,function(n){t.gsFilter.indexOf(n.id)>=0&&n.id>1&&i.push(n.name.toLowerCase())});t.searchFor=i.join(", ")};t.clickGlobalSearchFilter=function(n){if(n===1)t.gsFilter=[],t.gsFilter.push(1),t.limitToNum=3;else{var i=t.gsFilter.indexOf(n),r=i>=0;t.gsFilter.indexOf(1)>=0&&n>1&&(t.gsFilter=[]);r?t.gsFilter.length>1&&t.gsFilter.splice(i,1):t.gsFilter.push(n);t.limitToNum=Math.round(10/t.gsFilter.length)}t.setFilterStr()};t.focusIndex=-1;t.keys=[];t.keys.push({code:13,action:function(n){e(n)}});t.keys.push({code:38,action:function(n){t.focusIndex--;f(n,t.focusIndex)}});t.keys.push({code:40,action:function(n){console.log("down");t.focusIndex++;f(n,t.focusIndex)}});t.$on("globalSearchKeydown",function(n,i){var r=i.code;t.keys.forEach(function(n){n.code===r&&(n.action(i.parent),i.event.preventDefault(),t.$apply())})});t.toggleDropdown=function(n){n.preventDefault();n.stopPropagation();t.isDropOpen=!0};t.itemSelected=function(n){t.isDropOpen=!1;t.globalSearchKeyword=t.isField?n.name:null;t.onItemSelected({$item:n})};t.itemClicked=function(n){n.filterId==2?window.location.href=n.state.url+n.state.param.id:r.go(n.state.url,n.state.param,{reload:!0})};t.setFilterStr()}]}(),function(){"use strict";sharedModule.factory("QodoCarouselFactory",[function(){var n=function(n){try{this.carousel=document.querySelector(n.carousel);this.slides=this.carousel.querySelectorAll(n.slide);this.btnNext=this.carousel.querySelector(n.btnNext)||null;this.btnPrev=this.carousel.querySelector(n.btnPrev)||null;this.activeIndex=n.activeIndex||0;this.oneByOne=n.oneByOne||!1;this.speed=n.speed||400;this.delay=n.delay||0;this.effect=n.effect||"linear";this.infinite=n.infinite||!1;this.autoplay=n.autoplay||!1;this.autoplayDelay=n.autoplayDelay||400;this.autoplayDirection=n.autoplayDirection||"next";this.autoplayTimer=null;this.minPos=null;this.slidesToShow=null;this.maxIndex=null;this.isEnabled=null;this.build()}catch(t){}};return n.prototype.build=function(){function c(n,t){window.addEventListener?n.addEventListener("click",function(){t.goToSlide(parseInt(this.getAttribute("data-index")))}):window.attachEvent?n.attachEvent("onclick",function(){t.goToSlide(parseInt(this.getAttribute("data-index")))}):n.onclick=function(){t.goToSlide(parseInt(this.getAttribute("data-index")))}}function f(){(window.innerWidth!==s||window.innerHeight!==h)&&(clearTimeout(e),e=setTimeout(function(){n.destroy();n.build()},400))}var n=this,u,t,e,s=window.innerWidth,h=window.innerHeight,o,i,r;for(n.minPos=n.carousel.offsetWidth-n.slides.length*n.slides[0].offsetWidth,n.slidesToShow=Math.round(n.carousel.offsetWidth/n.slides[0].offsetWidth),n.maxIndex=0,n.isEnabled=1,n.carousel.className+=" purejscarousel",n.slidesContainer=document.createElement("div"),n.carousel.insertBefore(n.slidesContainer,n.slides[0]),n.slidesContainer.className+=" purejscarousel-slides-container",n.infinite===!0?(n.slidesContainer.style.marginLeft=-(n.slides[0].offsetWidth*n.slides.length)+"px",n.slidesContainer.style.width=n.slides[0].offsetWidth*n.slides.length*3+"px"):(n.slidesContainer.style.marginLeft="0px",o=window.innerWidth<420?n.slides[0].offsetWidth:window.innerWidth,n.slidesContainer.style.width=o*n.slides.length+"px"),("ontouchstart"in window||navigator.maxTouchPoints)&&(n.slidesContainer.addEventListener("touchstart",function(n){this.setAttribute("data-start-touch-x",n.targetTouches[0].pageX);this.setAttribute("data-start-margin",parseInt(this.style.marginLeft))}),n.slidesContainer.addEventListener("touchmove",function(n){this.setAttribute("data-active-touch-x",n.targetTouches[0].pageX);this.style.marginLeft=parseInt(this.getAttribute("data-start-margin"))+(parseInt(this.getAttribute("data-active-touch-x"))-parseInt(this.getAttribute("data-start-touch-x")))+"px"}),n.slidesContainer.addEventListener("touchend",function(){var t=parseInt(this.getAttribute("data-active-touch-x"))-parseInt(this.getAttribute("data-start-touch-x"))>0?"prev":"next",i=n.oneByOne===!0?n.slidesContainer[0].offsetWidth:n.carousel.offsetWidth;Math.abs(parseInt(this.getAttribute("data-active-touch-x"))-parseInt(this.getAttribute("data-start-touch-x")))>=i/2?n.infinite===!0?t==="next"?n.goToNextSlide():n.goToPrevSlide():t==="next"&&n.activeIndex<n.maxIndex||t==="prev"&&n.activeIndex>0?t==="next"?n.goToNextSlide():n.goToPrevSlide():(n.slidesContainer.style.transition!=="undefined"&&(n.slidesContainer.style.transition="margin-left "+n.speed+"ms "+n.effect+" "+n.delay+"ms"),n.slidesContainer.style.marginLeft=parseInt(this.getAttribute("data-start-margin"))+"px",n.slidesContainer.style.transition==="undefined"?n.slidesContainer.style.transition!=="undefined"&&(n.slidesContainer.style.transition=null):setTimeout(function(){n.slidesContainer.style.transition!=="undefined"&&(n.slidesContainer.style.transition=null)},n.speed+n.delay)):(n.slidesContainer.style.transition!=="undefined"&&(n.slidesContainer.style.transition="margin-left "+n.speed+"ms "+n.effect+" "+n.delay+"ms"),n.slidesContainer.style.marginLeft=parseInt(this.getAttribute("data-start-margin"))+"px",n.slidesContainer.style.transition==="undefined"?n.slidesContainer.style.transition!=="undefined"&&(n.slidesContainer.style.transition=null):setTimeout(function(){n.slidesContainer.style.transition!=="undefined"&&(n.slidesContainer.style.transition=null)},n.speed+n.delay))})),n.dotsContainer=document.createElement("div"),n.carousel.insertBefore(n.dotsContainer,n.slides[0]),n.dotsContainer.className+=" purejscarousel-dots-container",n.dots=[],u=n.oneByOne===!0?n.infinite===!0?n.slides.length:(n.slidesContainer.offsetWidth-n.carousel.offsetWidth)/n.slides[0].offsetWidth+1:n.infinite===!0?Math.ceil(n.slidesContainer.offsetWidth/n.carousel.offsetWidth/3):Math.ceil(n.slidesContainer.offsetWidth/n.carousel.offsetWidth),t=0;t<u;t++)i=document.createElement("button"),i.className="purejscarousel-dot"+(t===0?" active":""),i.setAttribute("data-index",t),i.setAttribute("type","button"),c(i,n),n.dots.push(i),n.dotsContainer.appendChild(i);for(n.maxIndex=u-1,u<1&&n.carousel.className.indexOf("no-purejscarousel-arrow")<0?n.carousel.className+=" no-purejscarousel-arrow ":u>=1&&n.carousel.className.indexOf("no-purejscarousel-arrow")>=0&&(n.carousel.className=n.carousel.className.replace(" no-purejscarousel-arrow","")),n.btnPrev?n.btnPrev.setAttribute("data-is-native",1):(n.btnPrev=document.createElement("button"),n.btnPrev.setAttribute("class",""),n.btnPrev.setAttribute("type","button"),n.btnPrev.setAttribute("data-is-native",0),n.carousel.insertBefore(n.btnPrev,n.slides[0])),n.btnPrev.className+=" purejscarousel-btn purejscarousel-btn-prev",window.addEventListener?n.btnPrev.addEventListener("click",function(){n.goToPrevSlide()}):window.attachEvent?n.btnPrev.attachEvent("onclick",function(){n.goToPrevSlide()}):n.btnPrev.onclick=function(){n.goToPrevSlide()},n.activeIndex===0&&(n.btnPrev.disabled=!0),n.btnNext?n.btnNext.setAttribute("data-is-native",1):(n.btnNext=document.createElement("button"),n.btnNext.setAttribute("class",""),n.btnNext.setAttribute("type","button"),n.btnNext.setAttribute("data-is-native",0),n.carousel.insertBefore(n.btnNext,n.slides[0])),n.btnNext.className+=" purejscarousel-btn purejscarousel-btn-next",window.addEventListener?n.btnNext.addEventListener("click",function(){n.goToNextSlide()}):window.attachEvent?n.btnNext.attachEvent("onclick",function(){n.goToNextSlide()}):n.btnNext.onclick=function(){n.goToNextSlide()},n.activeIndex===n.maxIndex&&(n.btnNext.disabled=!0),t=0;t<n.slides.length;t++)n.slides[t].className+=" purejscarousel-slide",n.slidesContainer.appendChild(n.slides[t]);if(n.infinite===!0){for(t=0;t<n.slides.length;t++)r=n.slides[t].cloneNode(!0),r.className+=" purejscarousel-slide-clone",n.slidesContainer.appendChild(r);for(t=0;t<n.slides.length;t++)r=n.slides[t].cloneNode(!0),r.className+=" purejscarousel-slide-clone",n.slidesContainer.insertBefore(r,n.slidesContainer.querySelectorAll(".purejscarousel-slide")[t])}window.addEventListener?window.addEventListener("resize",f):window.attachEvent?window.attachEvent("onresize",f):window.onresize=f;n.autoplayTimer=n.autoplay===!0?n.autoplayDirection==="next"?setTimeout(function(){n.goToNextSlide()},n.autoplayDelay):setTimeout(function(){n.goToPrevSlide()},n.autoplayDelay):null},n.prototype.enableControl=function(){var n;for(this.btnNext.disabled=!1,this.btnPrev.disabled=!1,n=0;n<this.dots.length;n++)this.dots[n].disabled=!1;this.dots[this.activeIndex].disabled=!0;this.infinite===!1&&(this.activeIndex===this.maxIndex&&(this.btnNext.disabled=!0),this.activeIndex===0&&(this.btnPrev.disabled=!0));("ontouchstart"in window||navigator.maxTouchPoints)&&(this.slidesContainer.disabled=!1)},n.prototype.disableControl=function(){var n;for(this.btnNext.disabled=!0,this.btnPrev.disabled=!0,n=0;n<this.dots.length;n++)this.dots[n].disabled=!0;("ontouchstart"in window||navigator.maxTouchPoints)&&(this.slidesContainer.disabled=!0)},n.prototype.goToNextSlide=function(){var n;this.btnNext.disabled===!1&&(n=this.infinite===!0?this.activeIndex+1>this.maxIndex?0:this.activeIndex+1:this.activeIndex+1,this.goToSlide(n,"next","dirBtn"))},n.prototype.goToPrevSlide=function(){var n;this.btnPrev.disabled===!1&&(n=this.infinite===!0?this.activeIndex-1<0?this.maxIndex:this.activeIndex-1:this.activeIndex-1,this.goToSlide(n,"prev","dirBtn"))},n.prototype.goToSlide=function(n,t,i){function s(){var t;if("transition"in document.body.style&&(r.slidesContainer.style.transition=null,r.slidesContainer.removeEventListener("transitionend",s)),r.dots[r.activeIndex].className=r.dots[r.activeIndex].className.replace(" active",""),r.activeIndex=n,r.dots[r.activeIndex].className+=" active",r.infinite===!0){for(t=0;t<c;t++)f==="next"?r.slidesContainer.appendChild(r.slidesContainer.children[0]):r.slidesContainer.insertBefore(r.slidesContainer.lastElementChild,r.slidesContainer.children[0]);r.slidesContainer.style.marginLeft=-r.slidesContainer.offsetWidth/3+"px"}r.enableControl();r.autoplayTimer=r.autoplay===!0?r.autoplayDirection==="next"?setTimeout(function(){r.goToNextSlide()},r.autoplayDelay):setTimeout(function(){r.goToPrevSlide()},r.autoplayDelay):null}var r=this,f=t?t:n>this.activeIndex?"next":"prev",h=this.slidesContainer.offsetWidth/(this.infinite===!0?3:1),e=this.oneByOne===!0?this.slides[0].offsetWidth:this.carousel.offsetWidth,o=this.infinite===!0?-h:Math.max(-e*this.activeIndex,this.minPos),u=i==="dirBtn"?e:Math.abs(e*(this.activeIndex-n)),c,l;this.oneByOne===!1&&(f==="next"&&n===this.maxIndex||f==="prev"&&this.activeIndex===this.maxIndex)&&(u=u+h-(this.maxIndex+1)*e);c=u/this.slides[0].offsetWidth;l=this.infinite===!0?f==="next"?o-u:o+u:f==="next"?Math.max(this.minPos,o-u):Math.min(0,o+u);this.disableControl();"transition"in document.body.style&&(this.slidesContainer.style.transition="margin-left "+this.speed+"ms "+this.effect+" "+this.delay+"ms");this.slidesContainer.style.marginLeft=l+"px";"transition"in document.body.style?this.slidesContainer.addEventListener("transitionend",s):s()},n.prototype.destroy=function(){var t,n;if(this.isEnabled===1){if(this.isEnabled=0,this.carousel.className=this.carousel.className.replace(" purejscarousel",""),this.carousel.removeChild(this.dotsContainer),this.btnNext.getAttribute("data-is-native").toString()==="1"?this.btnNext.className=this.btnNext.className.replace(" purejscarousel-btn purejscarousel-btn-next",""):(this.carousel.removeChild(this.btnNext),this.btnNext=null),this.btnPrev.getAttribute("data-is-native").toString()==="1"?this.btnPrev.className=this.btnPrev.className.replace(" purejscarousel-btn purejscarousel-btn-prev",""):(this.carousel.removeChild(this.btnPrev),this.btnPrev=null),this.infinite===!0)for(t=this.carousel.querySelectorAll(".purejscarousel-slide-clone"),n=0;n<t.length;n++)t[n].parentNode.removeChild(t[n]);for(n=0;n<this.slides.length;n++)this.slides[n].className=this.slides[n].className.replace(" pure-js-carousel-slide",""),this.carousel.insertBefore(this.slides[n],this.slidesContainer);this.carousel.removeChild(this.slidesContainer);this.minPos=null;this.slidesToShow=null;this.maxIndex=null;this.isEnabled=null;this.autoplay===!0&&(clearTimeout(this.autoplayTimer),this.autoplayTimer=null)}},n}])}(),function(){"use strict";function n(n){function a(n){return n.config.readonly?4:9999}function v(n,t,i){var u=y(i);angular.forEach(i.colours,function(n){u===n.noColours?(n.selected=!0,i.selectedColour=n):n.selected=!1});f(n);r(n,t)}function y(n){var t=[];return angular.forEach(n.positionNames,function(i){angular.forEach(i.coloursUsed,function(i){if(!n.productAdditionalPrint||n.productAdditionalPrint&&n.productAdditionalPrint.perColour)t.push(i);else{var r=!1;angular.forEach(t,function(n){n.name.toLowerCase()==i.name.toLowerCase()&&(r=!0)});r||t.push(i)}})}),t.length}function p(n,t,i,u){angular.forEach(i.positions,function(n){angular.forEach(n.colours,function(t){u==t.id?(t.selected=!0,n.selectedColour=t):t.selected=!1})});f(n);r(n,t)}function r(n,t){if(!t){angular.forEach(n.config.productPrintTypeConfigurations,function(t){e(t,n)});return}e(t,n)}function f(n){angular.forEach(n.config.productPrintTypeConfigurations,function(t){angular.forEach(t.layoutConfigurations,function(i){s(n,i,t)})})}function w(n){var t=0;return angular.forEach(n.positionNames,function(n){n.noMetallicPaints&&n.noMetallicPaints>0&&(t+=parseInt(n.noMetallicPaints))}),t}function s(n,t,r){angular.forEach(t.positions,function(f){angular.forEach(f.colours,function(e){var o,s;e.tablePrices=[];o=[];e.useColourPriceBreaks?angular.forEach(n.config.unitPrices,function(n){if(n.minQuantity<e.unitPrices[0].minQuantity&&n.maxQuantity>e.unitPrices[0].minQuantity&&n.maxQuantity<=e.unitPrices[0].maxQuantity){var t=angular.copy(n);t.minQuantity=e.unitPrices[0].minQuantity;o.push(t);return}n.minQuantity>=e.unitPrices[0].minQuantity&&o.push(n)}):o=n.config.unitPrices;s=e.useColourPriceBreaks?e.unitPrices:n.config.unitPrices;angular.forEach(s,function(i){i.minQuantity<r.minQuantity||e.tablePrices.push({calcPrice:u(n.config,r,t,f,i.minQuantity,e.noColours,e.id),minQuantity:i.minQuantity})});e.customCalcPrice=u(n.config,r,t,f,n.quantity,e.noColours,e.id);e.setupPrice=i(t.printTypeSetup,e.noColours);e.repeatPrice=i(t.printTypeRepeat,e.noColours)})})}function h(n){angular.forEach(n.config.productPrintTypeConfigurations,function(t){angular.forEach(t.layoutConfigurations,function(r){angular.forEach(r.positions,function(f){angular.forEach(f.colours,function(e){e.customCalcPrice=u(n.config,t,r,f,n.quantity,e.noColours,e.id);e.setupPrice=i(r.printTypeSetup,e.noColours);e.repeatPrice=i(r.printTypeRepeat,e.noColours)})})})})}function b(n){n.savedConfig&&(n.isRepeat=n.savedConfig.isRepeat);var t=o(n.config,n.quantity);n.cartonQuantity=t.cartonQuantity;n.quantity=t.quantity;angular.forEach(n.config.productPrintTypeConfigurations,function(t){n.savedConfig&&t.printTypeId==n.savedConfig.printTypeId&&(t.active=!0);k(n,t.layoutConfigurations)})}function k(n,t){var i=!0;angular.forEach(t,function(t){var r;n.savedConfig&&angular.forEach(n.savedConfig.layoutConfigs,function(n){t.name===n.name&&(r=n)});i&&(t.isFirstLayout=!0,i=!1);r&&(t.lipPrintOption=t.lipPrintOption==null&&r.lipPrintOption==null?null:angular.extend(t.lipPrintOption||{},r.lipPrintOption||{}),t.individualNamesOption=t.individualNamesOption==null&&r.individualNamesOption==null?null:angular.extend(t.individualNamesOption||{},r.individualNamesOption||{}));d(r,t);g(r,t)})}function d(n,t){t.positions.length>0&&(t.selectedPosition=t.positions[0]);angular.forEach(t.positions,function(i){i.colours=angular.copy(t.colours);n&&n.positionId===i.id&&(t.selectedPosition=i,t.selectedPosition.positionNames=n.positionNames);angular.forEach(i.colours,function(t){n&&t.noColours===n.noColours&&(!n.colourId||t.id===n.colourId)&&(t.selected=!0,i.selectedColour=t)});angular.forEach(i.positionNames,function(n){n.noMetallicPaints||(n.noMetallicPaints=0)})})}function g(t,i){i.availableOptions=[];angular.forEach(i.options,function(r){r.description.indexOf(n.ITEM_NAME_METALLIC_COLOUR)===-1&&r.description.indexOf(n.ITEM_NAME_LIP_INDIVIDUAL)===-1&&(t&&t.options&&t.options.length>0&&angular.forEach(t.options,function(n){n==r.id&&(r.selected=!0)}),i.availableOptions.push(r))})}function u(n,t,i,r,u,f,e){if(!u||u<=0||u<i.minimumColourQuantity)return 0;var s=it(n,u),h=rt(t,i,r,u,f,e),c=ut(i.colours,e,i.metallicPaintItemCost,r),l=ft(n,i,u),a=ot(u,t,i,r,f),o=h+c+l+a;return i.isFirstLayout&&(o+=s),o}function c(n,t){n.selectedPosition&&n.selectedPosition.selectedColour&&(n.total=n.selectedPosition.selectedColour.customCalcPrice*t.quantity,nt(n,t),n.total+=n.setupTotal)}function nt(n,t){n.setupTotal=t.isRepeat?n.selectedPosition.selectedColour.repeatPrice:n.selectedPosition.selectedColour.setupPrice;n.setupTotal+=tt(n,t)}function tt(t,r){var u=0,f;return t.lipPrintOption&&t.lipPrintOption.selected&&t.lipPrintOption.noColours&&!t.lipPrintOption.lipPrintOnly&&(u+=i(r.isRepeat?t.printTypeRepeat:t.printTypeSetup,t.lipPrintOption.noColours)),t.individualNamesOption&&t.individualNamesOption.selected&&(f=t.individualNamesOption.size=="Large"?n.ITEM_INDIVIDUAL_LARGE_SIZE_QTY:n.ITEM_INDIVIDUAL_SMALL_SIZE_QTY,u+=Math.ceil(r.quantity/f)*t.printTypeSetup.cost),angular.forEach(t.options,function(i){i.selected&&i.description.indexOf(n.ITEM_NAME_BACKSTAMP)>=0&&(u+=r.isRepeat?t.printTypeRepeat.cost:t.printTypeSetup.cost)}),u}function e(n,t){n.total=0;n.unitPrice=0;n.setupTotal=0;angular.forEach(n.layoutConfigurations,function(i){c(i,t);i.selectedPosition&&(n.unitPrice+=i.selectedPosition.selectedColour?i.selectedPosition.selectedColour.customCalcPrice:0,n.setupTotal+=i.setupTotal,n.total+=i.total)});t.config.discountAmount=t.config.discountPercentage?n.total*(t.config.discountPercentage/100):0;n.overridePricing||(n.overriddenUnitPrice=n.unitPrice,n.overriddenSetupTotal=n.setupTotal)}function t(n,t){var i=0;return angular.forEach(n,function(n){t>=n.minQuantity&&(!n.maxQuantity||t<=n.maxQuantity)&&(i=n.cost)}),i}function l(n,i,r,u){var f=0;return angular.forEach(i,function(i){n!=i.noColours||u&&u!==i.id||(f=t(i.unitPrices,r))}),f}function it(n,i){return t(n.unitPrices,i)}function rt(n,i,r,u,f,e){var o,s,c,h;if(f==0)return 0;if(o=!1,s=!1,angular.forEach(n.layoutConfigurations,function(n){if(!o){if(n.name==i.name){o=!0;return}n.selectedPosition.selectedColour&&n.selectedPosition.selectedColour.noColours>=1&&(s=!0)}}),s&&r.productAdditionalPrint&&r.productAdditionalPrint.unitPrices)return t(r.productAdditionalPrint.unitPrices,u)*f;if(c=r.noPositions>1&&r.productAdditionalPrint&&r.productAdditionalPrint.perColour,!c)return l(f,i.colours,u,e);if(!i.colours||(angular.forEach(i.colours,function(n){n.noColours==1&&n.displayName.toLowerCase()!=="mock etch"&&n.displayName.toLowerCase()!=="unprinted"&&(h=n)}),!h))return 0;var a=l(1,i.colours,u,h.id),v=r.productAdditionalPrint.usePricingBreaks?t(r.productAdditionalPrint.unitPrices,u):r.productAdditionalPrint.cost,y=v*(f-1);return a+y}function ut(n,t,i,r){var f=!1,u;return(angular.forEach(n,function(n){n.id==t&&(n.displayName.toLowerCase()==="mock etch"||n.displayName.toLowerCase()==="unprinted")&&(f=!0)}),f)?0:(u=w(r),!u||u<=0||i==0)?0:i*u*r.multiplier}function ft(n,i,r){var u=0;return(angular.forEach(i.options,function(n){if(n.selected){if(n.unitPrices&&n.unitPrices.length==1&&!n.unitPrices[0].quantity){u+=n.unitPrices[0].cost;return}u+=t(n.unitPrices,r)}}),!i.isFirstLayout)?u:(i.lipPrintOption&&i.lipPrintOption.selected&&!i.lipPrintOption.lipPrintOnly&&i.lipPrintOption.noColours>0&&(u+=i.lipPrintIndividualNameItemCost,i.lipPrintOption.noColours>1&&(u+=(i.lipPrintOption.noColours-1)*n.lipPrintAdditionalColourCost)),i.individualNamesOption&&i.individualNamesOption.selected&&(u+=i.lipPrintIndividualNameItemCost),u)}function et(n,t){t.quantity>=n.minQuantity||(t.quantity=n.minQuantity,h(t),r(t,n))}function ot(n,i,r,u,f){var e=st(i,r,u,f),o,s;return e==0?0:(o=u.multiplier>1?u.multiplier-1:u.multiplier,s=u.productAdditionalPrint.usePricingBreaks?t(u.productAdditionalPrint.unitPrices,n):u.productAdditionalPrint.cost,e*s*o)}function st(n,t,i,r){return i.multiplier<1||r<=0||(n.layoutConfigurations.length===1||t.isFirstLayout)&&!i.productAdditionalPrint.perPosition?0:i.noPositions<=1&&i.multiplier<=1||!i.productAdditionalPrint.perPosition?0:i.noPositions>1?i.noPositions-1:i.noPositions}function i(n,t){return!n||!n.cost||!n.multiplier||t<=0?0:n.cost*t*n.multiplier}function ht(n,t,i){if(!n||!n.cartonQuantity||!t)return{cartonQuantity:null,quantity:null};var u=i?i.minQuantity:n.minQuantity,r=n.cartonQuantity*t;return r<u?(r=u,o(n,r,i)):{cartonQuantity:t,quantity:r}}function o(n,t,i){var u,r;return!n||!n.cartonQuantity||!t?{cartonQuantity:null,quantity:null}:(u=i?i.minQuantity:n.minQuantity,t<u&&(t=u),r=t/n.cartonQuantity,r%1!=0&&(r=Math.ceil(r),t=n.cartonQuantity*r),{cartonQuantity:r,quantity:t})}function ct(n){var i=n.unitPrice,t;if(typeof n.config!="undefined"&&typeof n.config.unitPrices!="undefined"&&n.config.unitPrices!==null)for(t=0;t<n.config.unitPrices.length;t++)if(n.quantity>=n.config.unitPrices[t].minQuantity&&n.config.unitPrices[t].maxQuantity===null){i=n.config.unitPrices[t].cost;break}else if(n.quantity>=n.config.unitPrices[t].minQuantity&&n.quantity<=n.config.unitPrices[t].maxQuantity){i=n.config.unitPrices[t].cost;break}return i}return{getPrice:u,calculateLayoutTotalPrice:c,calculateTotalPrice:e,initConfigurations:b,calculateLayoutPricing:s,calculateAllPricing:f,calculateCustomQuantity:h,calculateUnitPrice:ct,calculateTotal:r,selectColour:p,selectColourFromNoColoursUsed:v,getMaxColoursToShow:a,printTypeSelected:et,getQuantityFromCarton:ht,getAndSetCartonQuantityFromQuantity:o}}angular.module("appSharedModule").factory("pricingFactory",n);n.$inject=["PPI_CONSTANTS"]}(),function(){"use strict";sharedModule.directive("zoom",[function(){function n(n,t,i){function h(t,i){var e=n.markWidth,o=n.markHeight,r=t-e/2,u=i-o/2,h=document.getElementById("origZoomImg"),c=h.clientWidth-e,l=h.clientHeight-e;r=r>=0?r:0;u=u>=0?u:0;r=r<=c?r:c;u=u<=l?u:l;f.css("left",r+"px").css("top",u+"px");n.$broadcast("mark:moved",[r,u,e,o,s[0].height,s[0].width])}function v(t,i,r,f,e,o){var s=n.zoomLvl;n.$apply(function(){var h=document.getElementById("origZoomImg"),c=h.clientWidth+50;u.css("height",s*f+"px").css("width",s*r+"px").css("left",c+"px");a.attr("src",n.src).css("height",s*e+"px").css("width",s*o+"px").css("left",-s*t+"px").css("top",-s*i+"px")})}function c(n){e=e||n.target.getBoundingClientRect();var t=n.clientX-e.left,i=n.clientY-e.top;return{X:t,Y:i}}var r=angular.element,o=r(t[0].querySelector(".orig-container")),l=r(t[0].querySelector(".original")),s=l.find("img"),u=r(t[0].querySelector(".zoomed")),a=u.find("img"),f=r('<div id="markZoom"><\/div>').addClass("mark hide").css("position","absolute").css("height",n.markHeight+"px").css("width",n.markWidth+"px"),e;r(o).append(f);o.on("mouseenter",function(n){f.removeClass("hide");u.addClass("in");var t=c(n);h(t.X,t.Y)}).on("mouseleave",function(){f.addClass("hide");u.removeClass("in")}).on("mousemove",function(n){var t=c(n);h(t.X,t.Y)});n.$on("mark:moved",function(n,t){v.apply(this,t)});i.$observe("ngSrc",function(){n.src=i.ngSrc},!0);i.$observe("zoomLvl",function(t){n.zoomLvl=t},!0)}return{restrict:"EA",scope:{markHeight:"@markHeight",markWidth:"@markWidth",src:"@zoomSrc",zoomLvl:"@zoomLvl",zoomAlt:"@zoomAlt"},template:'<div class="orig-container"><div class="original"><img id="origZoomImg" ng-src="{{src}}" alt="{{zoomAlt}}"/><\/div><div class="zoomed fadde"><img alt="{{zoomAlt}}"/><\/div><\/div>',link:n}}])}();angular.module("appSharedModule").directive("videojs",function(){var n=function(n,t,i){var u,r;i.type=i.type||"video/"+n.videoExtension;u={techOrder:["html5"],controls:!0,preload:"auto",autoplay:!1,fluid:!0};i.id="videojs"+window.randomString();t.attr("id",i.id);t.attr("poster",i.poster);r=videojs(i.id,u);r.src({src:n.videoUrl+"#."+n.videoExtension,type:i.type});n.$on("$destroy",function(){r.dispose()})};return{restrict:"A",link:n,scope:{videoUrl:"@",videoExtension:"@"}}}),function(){"use strict";sharedModule.factory("enumFactory",["$rootScope","baseFactory",function(n,t){return{getEnumsFromServer:function(){return t.fetch("api/system/getEnums",{}).then(function(t){return n.enums=t.object,!0},function(){return!1})},getEnum:function(t){if(n.enums){var i=null;return angular.forEach(n.enums,function(n){n.name.toLowerCase()==t.toLowerCase()&&(i=n.values)}),i}return null},getEnumId:function(n,t){if(typeof t=="undefined")return null;var i;return angular.forEach(n,function(n){t.toLowerCase()===n.value.toLowerCase()&&(i=n)}),i?i.id:null},getSelectedEnum:function(n,t){var r=this.getEnum(n),i;return angular.forEach(r,function(n){t===n.id&&(i=n)}),i}}}])}(),function(){"use strict";function n(n,t){function i(n,t){return n>=t?!0:!1}function r(i){if(!n.user||!n.user.rolePermissions)return!1;if(n.user.isSysAdmin)return!0;var u=t.getEnum("componentType"),f=t.getEnumId(u,i),r=!1;return angular.forEach(n.user.rolePermissions,function(n){n.componentType===f&&n.permissionType!==null&&n.permissionType!==0&&(r=!0)}),r}function u(t){return t.toLowerCase()===n.clientName.toLowerCase()?!0:!1}function f(r){var u=r.split("."),s=u[0],h=u[1],c=u[2],l=t.getEnum("componentType"),a=t.getEnum("subComponentType"),v=t.getEnum("permissionType");if(typeof n.user=="undefined"||n.user===null||typeof n.user.rolePermissions=="undefined"||n.user.rolePermissions===null)return!1;if(n.user.isSysAdmin)return!0;var e=t.getEnumId(l,s),y=t.getEnumId(a,h),o=t.getEnumId(v,c),f=!1;return angular.forEach(n.user.rolePermissions,function(n){n.componentType===e&&n.subComponentType==null&&i(n.permissionType,o)&&(f=!0);n.componentType===e&&n.subComponentType==y&&i(n.permissionType,o)&&(f=!0)}),f}return{hasPermission:function(n){if(n.length==0)return!0;var t=!1;return angular.forEach(n,function(n){f(n)&&(t=!0)}),t},hasAnyPermissionList:function(t){if(!n.user||!n.user.rolePermissions)return!1;if(n.user.isSysAdmin)return!0;if(!t)return!1;var u=t,i=!1;return angular.forEach(u,function(n){var t=r(n.trim());t&&(i=!0)}),i},hasAnyPermission:function(n){return r(n)},hasClient:function(t){if(!t)return!0;if(!n.clientName)return!1;var i=!1;return angular.forEach(t,function(n){u(n)&&(i=!0)}),i},hasRole:function(t){if(!t)return!0;if(!n.user||!n.user.roles)return!1;var i=!1;return angular.forEach(t,function(t){angular.forEach(n.user.roles,function(n){t.toLowerCase()===n.toLowerCase()&&(i=!0)})}),i},hasUserType:function(i){if(!i||i.length==0||!n.user)return!1;var u=t.getEnum("userType"),r=!1;return angular.forEach(i,function(n){var i=t.getEnumId(u,n);i==n&&(r=!0)}),r},isSysAdmin:function(){return n.user?n.user.isSysAdmin?n.user.isSysAdmin:!1:!1},isCompany:function(){return n.user?n.user.customerId===""&&n.user.customerName==="":!1},isClient:function(){return n.user?n.user.customerId!==""&&n.user.customerName!=="":!1}}}angular.module("appSharedModule").factory("permissionFactory",n);n.$inject=["$rootScope","enumFactory"]}(),function(){"use strict";function n(n,t){return{link:function(n,i,r){var o=r.components?r.components.split(","):null,s=r.invalidComponents?r.invalidComponents.split(","):null,h=r.permissions?r.permissions.split(","):null,c=r.invalidPermissions?r.invalidPermissions.split(","):null,l=r.clients?r.clients.split(","):null,a=r.invalidClients?r.invalidClients.split(","):null,v=r.userTypes?r.userTypes.split(","):null,y=r.invalidUserTypes?r.invalidUserTypes.split(","):null,e=r.roles?r.roles.split(","):null,p=r.invalidRoles?r.invalidRoles.split(","):null,w=typeof r.isSysAdmin!="undefined"?!0:null,b=typeof r.isSysNotAdmin!="undefined"?!0:null,k=typeof r.isCompany!="undefined"?!0:null,g=typeof r.isNotCompany!="undefined"?!0:null,nt=typeof r.isClient!="undefined"?!0:null,tt=!h||t.hasPermission(h),it=c&&t.hasPermission(c),rt=!o||t.hasAnyPermissionList(o),ut=s&&t.hasAnyPermissionList(s),ft=!l||t.hasClient(l),et=a&&t.hasClient(a),ot=!v||t.hasUserType(v),st=y&&t.hasUserType(y),d=!e||t.hasRole(e),ht=p&&t.hasRole(p),u=!w||t.isSysAdmin(),f=!k||t.isCompany(),ct=!nt||t.isClient();!u||b||e?b&&(u=!t.isSysAdmin()):d=!0;g&&(f=!t.isCompany());w&&k&&(u||f)&&(u=!0,f=!0);tt&&!it&&rt&&!ut&&ft&&!et&&ot&&!st&&u&&f&&ct&&d&&!ht?i.show():i.hide()}}}angular.module("appSharedModule").directive("permission",n);n.$inject=["$rootScope","permissionFactory"]}(),function(){"use strict";sharedModule.filter("trustAsHtml",["$sce",function(n){return n.trustAsHtml}]).filter("limitHtml",[function(){return function(n,t,i){var f=function(n){var t=[],i=function(n){return n.replace(/<[\/]?([^>]*)>/,"$1")};return angular.forEach(n,function(r,u){/<\//.test(r)&&(u===0?t.push(r):i(r)!==i(n[u-1])&&t.push(r))}),t.join("")},e=function(n,t){var r=!1,u=!1,e=!1,f=!1,o,i={textCounter:0,offsetCounter:0,setEllipsis:!1,overElementArray:[]};return angular.forEach(n,function(n){f=i.textCounter<t;n!=="<"||r||u?n!=="&"||r||u?r?(f||(o=o+n),n===">"&&(f||i.overElementArray.push(o),e=!0,r=!1)):n===";"&&u&&(u=!1,i.textCounter++,e=!0):u=!0:(f||(o="<"),r=!0);f?(r||u||e||i.textCounter++,i.offsetCounter++):i.setEllipsis=!0;e=!1}),i},r=e(n.toString(),t),u=n.replace(/(<([^>]+)>)/ig,"");return u.toString().substr(0,r.offsetCounter)+(u.length>r.offsetCounter?i:"")+f(r.overElementArray)}}])}()