/** 
* @license ng-slider - v2.2.0
* (c) 2013 Julien VALERY https://github.com/darul75/ng-slider
* License: MIT 
**/
!function(a){"use strict";a.module("ngSlider",[]).directive("slider",["$compile","$templateCache","$timeout","$window","slider",function(b,c,d,e,f){return{restrict:"AE",require:"?ngModel",scope:{options:"=",ngDisabled:"="},priority:1,link:function(g,h,i,j){function k(){a.element(e).bind("resize",function(){g.slider.onresize()})}if(j){if(!g.options)throw new Error('You must provide a value for "options" attribute.');a.isString(g.options)&&(g.options=a.toJson(g.options)),g.mainSliderClass="jslider",g.mainSliderClass+=" jslider_round",g.mainSliderClass+=g.options.vertical?" vertical ":"",g.mainSliderClass+=g.options.css?" sliderCSS":"",h.after(b(c.get("ng-slider/slider-bar.tmpl.html"))(g,function(a,b){b.tmplElt=a}));var l=!1,m=function(){g.from=""+g.options.from,g.to=""+g.options.to,g.options.calculate&&"function"==typeof g.options.calculate&&(g.from=g.options.calculate(g.from),g.to=g.options.calculate(g.to));var b={from:g.options.from,to:g.options.to,step:g.options.step,smooth:g.options.smooth,limits:!0,round:g.options.round||!1,value:j.$viewValue,dimension:"",scale:g.options.scale,vertical:g.options.vertical,css:g.options.css,realtime:g.options.realtime,cb:n,threshold:g.options.threshold};b.calculate=g.options.calculate||void 0,b.onstatechange=g.options.onstatechange||void 0,g.slider=g.slider?g.slider.init(h,g.tmplElt,b):p(h,g.tmplElt,b),l||k();var c=g.tmplElt.find("div")[7];a.element(c).html(g.slider.generateScale()),g.slider.drawScale(c),g.ngDisabled&&o(g.ngDisabled),l=!0};j.$render=function(){(j.$viewValue||0===j.$viewValue)&&("number"==typeof j.$viewValue&&(j.$viewValue=""+j.$viewValue),j.$viewValue.split(";")[1]||(g.mainSliderClass+=" jslider-single"),g.slider&&(g.slider.getPointers()[0].set(j.$viewValue.split(";")[0],!0),j.$viewValue.split(";")[1]&&g.slider.getPointers()[1].set(j.$viewValue.split(";")[1],!0)))};var n=function(a){g.disabled||(g.$apply(function(){j.$setViewValue(a)}),g.options.callback&&g.options.callback(a))};g.$watch("options",function(){d(function(){m()})},!0);var o=function(a){g.disabled=a,g.slider&&(g.tmplElt.toggleClass("disabled"),g.slider.disable(a))};g.$watch("ngDisabled",function(a){o(a)});var p=function(a,b,c){return new f(a,b,c)}}}}}]).config(function(){}).run(function(){})}(angular),function(a){"use strict";a.module("ngSlider").constant("sliderConstants",{SLIDER:{settings:{from:1,to:40,step:1,smooth:!0,limits:!1,round:!1,value:"3",dimension:"",vertical:!1,calculate:!1,onstatechange:!1,callback:!1,realtime:!1},className:"jslider",selector:".jslider-",css:{visible:{visibility:"visible"},hidden:{visibility:"hidden"}}},EVENTS:{}})}(angular),function(a){"use strict";a.module("ngSlider").factory("sliderUtils",["$window",function(a){return{offset:function(a){var b=a[0],c=0,d=0,e=document.documentElement||document.body,f=window.pageXOffset||e.scrollLeft,g=window.pageYOffset||e.scrollTop;return c=b.getBoundingClientRect().left+f,d=b.getBoundingClientRect().top+g,{left:c,top:d}},browser:function(){var b=a.navigator.userAgent,c={mozilla:/mozilla/i,chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer/i};for(var d in c)if(c[d].test(b))return d;return"unknown"}}}])}(angular),function(a){"use strict";a.module("ngSlider").factory("sliderDraggable",["sliderUtils",function(b){function c(){this._init.apply(this,arguments)}return c.prototype.oninit=function(){},c.prototype.events=function(){},c.prototype.onmousedown=function(){this.ptr.css({position:"absolute"})},c.prototype.onmousemove=function(a,b,c){this.ptr.css({left:b,top:c})},c.prototype.onmouseup=function(){},c.prototype.isDefault={drag:!1,clicked:!1,toclick:!0,mouseup:!1},c.prototype._init=function(){if(arguments.length>0){if(this.ptr=arguments[0],this.parent=arguments[2],!this.ptr)return;this.is={},a.extend(this.is,this.isDefault);var c=b.offset(this.ptr);this.d={left:c.left,top:c.top,width:this.ptr[0].clientWidth,height:this.ptr[0].clientHeight},this.oninit.apply(this,arguments),this._events()}},c.prototype._getPageCoords=function(a){return a.targetTouches&&a.targetTouches[0]?{x:a.targetTouches[0].pageX,y:a.targetTouches[0].pageY}:{x:a.pageX,y:a.pageY}},c.prototype._bindEvent=function(a,b,c){this.supportTouches_?a[0].addEventListener(this.events_[b],c,!1):a.bind(this.events_[b],c)},c.prototype._events=function(){var b=this;this.supportTouches_="ontouchend"in document,this.events_={click:this.supportTouches_?"touchstart":"click",down:this.supportTouches_?"touchstart":"mousedown",move:this.supportTouches_?"touchmove":"mousemove",up:this.supportTouches_?"touchend":"mouseup",mousedown:(this.supportTouches_,"mousedown")};var c=a.element(window.document);this._bindEvent(c,"move",function(a){b.is.drag&&(a.stopPropagation(),a.preventDefault(),b.parent.disabled||b._mousemove(a))}),this._bindEvent(c,"down",function(a){b.is.drag&&(a.stopPropagation(),a.preventDefault())}),this._bindEvent(c,"up",function(a){b._mouseup(a)}),this._bindEvent(this.ptr,"down",function(a){return b._mousedown(a),!1}),this._bindEvent(this.ptr,"up",function(a){b._mouseup(a)}),this.events()},c.prototype._mousedown=function(b){this.is.drag=!0,this.is.clicked=!1,this.is.mouseup=!1;var c=this._getPageCoords(b);this.cx=c.x-this.ptr[0].offsetLeft,this.cy=c.y-this.ptr[0].offsetTop,a.extend(this.d,{left:c.x,top:c.y,width:this.ptr[0].clientWidth,height:this.ptr[0].clientHeight}),this.outer&&this.outer.get(0)&&this.outer.css({height:Math.max(this.outer.height(),$(document.body).height()),overflow:"hidden"}),this.onmousedown(b)},c.prototype._mousemove=function(a){this.is.toclick=!1;var b=this._getPageCoords(a);this.onmousemove(a,b.x-this.cx,b.y-this.cy)},c.prototype._mouseup=function(a){if(this.is.drag){this.is.drag=!1;var c=b.browser();this.outer&&this.outer.get(0)&&(this.outer.css("mozilla"===c?{overflow:"hidden"}:{overflow:"visible"}),this.outer.css({height:"auto"})),this.onmouseup(a)}},c}])}(angular),function(a){"use strict";a.module("ngSlider").factory("sliderPointer",["sliderDraggable","sliderUtils",function(b,c){function d(){b.apply(this,arguments)}return d.prototype=new b,d.prototype.oninit=function(b,c,d,e){this.uid=c,this.parent=e,this.value={},this.vertical=d,this.settings=a.copy(e.settings),this.normalOrder=this.parent.settings.from<this.parent.settings.to,this.threshold=this.parent.settings.threshold},d.prototype.onmousedown=function(){var a=c.offset(this.parent.domNode),b={left:a.left,top:a.top,width:this.parent.domNode[0].clientWidth,height:this.parent.domNode[0].clientHeight};this._parent={offset:b,width:b.width,height:b.height},this.ptr.addClass("jslider-pointer-hover")},d.prototype.onmousemove=function(b){var c=this._getPageCoords(b);this._set(this.calc(this.vertical?c.y:c.x)),this.settings.realtime&&this.settings.cb&&a.isFunction(this.settings.cb)&&this.allowed&&this.settings.cb.call(this.parent,this.parent.getValue())},d.prototype.onmouseup=function(){this.settings.cb&&a.isFunction(this.settings.cb)&&this.allowed&&this.settings.cb.call(this.parent,this.parent.getValue()),this.is.drag||this.ptr.removeClass("jslider-pointer-hover")},d.prototype.limits=function(a){return this.parent.limits(a,this)},d.prototype.calc=function(a){return this.limits(this.vertical?100*(a-this._parent.offset.top)/this._parent.height:100*(a-this._parent.offset.left)/this._parent.width)},d.prototype.set=function(a,b){this.value.origin=this.parent.round(a),this._set(this.parent.valueToPrc(a,this),b)},d.prototype._set=function(a){if(this.allowed=!0,this.value.origin=this.parent.prcToValue(a),this.threshold&&this.parent.o.pointers[1]){var b=this.parent.o.pointers[0].value.origin,c=this.parent.o.pointers[1].value.origin;this.allowed=(this.normalOrder?c-b:b-c)>=this.threshold}if(!this.allowed){var d=this.parent.o.pointers[0===this.uid?1:0];return void(this.value.origin=0===this.uid?this.normalOrder?d.value.origin-this.threshold:d.value.origin+this.threshold:this.normalOrder?d.value.origin+this.threshold:d.value.origin-this.threshold)}this.value.prc=a,this.ptr.css(this.vertical?{top:a+"%",marginTop:-5}:{left:a+"%"}),this.parent.redraw(this)},d}])}(angular),function(a){"use strict";a.module("ngSlider").factory("slider",["sliderPointer","sliderConstants","sliderUtils",function(b,c,d){function e(){return this.init.apply(this,arguments)}return e.prototype.init=function(b,d,e){return this.settings=e,this.inputNode=b,this.inputNode.addClass("ng-hide"),this.settings.interval=this.settings.to-this.settings.from,this.settings.calculate&&a.isFunction(this.settings.calculate)&&(this.nice=this.settings.calculate),this.settings.onstatechange&&a.isFunction(this.settings.onstatechange)&&(this.onstatechange=this.settings.onstatechange),this.css=c.SLIDER.css,this.is={init:!1},this.o={},this.initValue={},this.create(d),this},e.prototype.create=function(c){var e=this;this.domNode=c;var f=this.domNode.find("div"),g=this.domNode.find("i"),h=a.element(f[1]),i=a.element(f[2]),j=a.element(f[5]),k=a.element(f[6]),l=a.element(g[0]),m=a.element(g[2]),n=a.element(g[3]),o=a.element(g[4]),p=a.element(g[5]),q=d.offset(this.domNode),r={left:q.left,top:q.top,width:this.domNode[0].clientWidth,height:this.domNode[0].clientHeight};this.sizes={domWidth:this.domNode[0].clientWidth,domHeight:this.domNode[0].clientHeight,domOffset:r},a.extend(this.o,{pointers:{},labels:{0:{o:j},1:{o:k}},limits:{0:a.element(f[3]),1:a.element(f[4])},indicators:{0:n,1:o,2:p}}),a.extend(this.o.labels[0],{value:this.o.labels[0].o.find("span")}),a.extend(this.o.labels[1],{value:this.o.labels[1].o.find("span")}),e.settings.value.split(";")[1]||(this.settings.single=!0);var s=[h,i],t=e.settings.from<e.settings.to?!0:!1,u=e.settings.value.split(";");a.forEach(s,function(c,f){e.settings=a.copy(e.settings);var g=u[f];if(g){e.o.pointers[f]=new b(c,f,e.settings.vertical,e);var h=u[f-1],i=h?parseInt(h,10):void 0;g=e.settings.round?parseFloat(g):parseInt(g,10),(h&&t?i>g:g>i)&&(g=h);var j=t?g<e.settings.from:g>e.settings.from,k=j?e.settings.from:g;j=t?g>e.settings.to:g<e.settings.to,k=j?e.settings.to:g,e.o.pointers[f].set(k,!0);var l=d.offset(e.o.pointers[f].ptr);e.o.pointers[f].d={left:l.left,top:l.top,width:e.o.pointers[f].ptr.clientWidth,height:e.o.pointers[f].ptr.clientHeight}}}),e.domNode.bind("mousedown",e.clickHandler.apply(e)),this.o.value=a.element(this.domNode.find("i")[2]),this.is.init=!0,this.settings.css&&(l.css(this.settings.css.background?this.settings.css.background:{}),this.o.pointers[1]||(n.css(this.settings.css.before?this.settings.css.before:{}),o.css(this.settings.css["default"]?this.settings.css["default"]:{}),p.css(this.settings.css.after?this.settings.css.after:{})),m.css(this.settings.css.range?this.settings.css.range:{}),h.css(this.settings.css.pointer?this.settings.css.pointer:{}),i.css(this.settings.css.pointer?this.settings.css.pointer:{})),a.forEach(this.o.pointers,function(a){e.redraw(a)})},e.prototype.clickHandler=function(){var b=this,c=this.settings.vertical;return function(e){if(!b.disabled){var f=b.settings.from<b.settings.to,g=0,h=d.offset(b.domNode),i=b.o.pointers[0],j=b.o.pointers[1]?b.o.pointers[1]:null;if(!f&&j){var k=j;j=i,i=k}var l=e.originalEvent?e.originalEvent:e,m=c?l.pageY:l.pageX,n={left:h.left,top:h.top,width:b.domNode[0].clientWidth,height:b.domNode[0].clientHeight},o=b.o.pointers[g],p=c?"top":"left";if(j){var q=(j.d[p]-i.d[p])/2,r=i.d[p],s=m-r,t=s>q;t&&(o=f?j:i)}o._parent={offset:n,width:n.width,height:n.height};var u=i._getPageCoords(e);return o.cx=u.x-o.d.left,o.cy=u.y-o.d.top,o.onmousemove(e,u.x,u.y),o.onmouseup(),a.extend(o.d,{left:u.x,top:u.y}),b.redraw(o),!1}}},e.prototype.disable=function(a){this.disabled=a},e.prototype.nice=function(a){return a},e.prototype.onstatechange=function(){},e.prototype.limits=function(a,b){if(!this.settings.smooth){var c=100*this.settings.step/this.settings.interval;a=Math.round(a/c)*c}var d=this.o.pointers[1-b.uid];return d&&b.uid&&a<d.value.prc&&(a=d.value.prc),d&&!b.uid&&a>d.value.prc&&(a=d.value.prc),0>a&&(a=0),a>100&&(a=100),Math.round(10*a)/10},e.prototype.getPointers=function(){return this.o.pointers},e.prototype.generateScale=function(){if(this.settings.scale&&this.settings.scale.length>0){for(var a="",b=this.settings.scale,c=(100/(b.length-1)).toFixed(2),d=this.settings.vertical?"top":"left",e=0;e<b.length;e++)a+='<span style="'+d+": "+e*c+'%">'+("|"!=b[e]?"<ins>"+b[e]+"</ins>":"")+"</span>";return a}return""},e.prototype.onresize=function(){var b=this;this.sizes={domWidth:this.domNode[0].clientWidth,domHeight:this.domNode[0].clientHeight,domOffset:{left:this.domNode[0].offsetLeft,top:this.domNode[0].offsetTop,width:this.domNode[0].clientWidth,height:this.domNode[0].clientHeight}},a.forEach(this.o.pointers,function(a){b.redraw(a)})},e.prototype.update=function(){this.onresize(),this.drawScale()},e.prototype.drawScale=function(b){a.forEach(a.element(b).find("ins"),function(a){a.style.marginLeft=-a.clientWidth/2})},e.prototype.redraw=function(a){if(!this.is.init)return this.o.pointers[0]&&!this.o.pointers[1]&&(this.originValue=this.o.pointers[0].value.prc,this.o.indicators[0].css(this.settings.vertical?{top:0,height:this.o.pointers[0].value.prc+"%"}:{left:0,width:this.o.pointers[0].value.prc+"%"}),this.o.indicators[1].css(this.settings.vertical?{top:this.o.pointers[0].value.prc+"%"}:{left:this.o.pointers[0].value.prc+"%"}),this.o.indicators[2].css(this.settings.vertical?{top:this.o.pointers[0].value.prc+"%"}:{left:this.o.pointers[0].value.prc+"%"})),!1;if(this.setValue(),this.o.pointers[0]&&this.o.pointers[1]){var b=this.settings.vertical?{top:this.o.pointers[0].value.prc+"%",height:this.o.pointers[1].value.prc-this.o.pointers[0].value.prc+"%"}:{left:this.o.pointers[0].value.prc+"%",width:this.o.pointers[1].value.prc-this.o.pointers[0].value.prc+"%"};this.o.value.css(b)}if(this.o.pointers[0]&&!this.o.pointers[1]){var c=this.o.pointers[0].value.prc-this.originValue;this.o.indicators[2].css(c>=0?this.settings.vertical?{height:c+"%"}:{width:c+"%"}:this.settings.vertical?{height:0}:{width:0}),this.o.indicators[0].css(this.o.pointers[0].value.prc<this.originValue?this.settings.vertical?{height:this.o.pointers[0].value.prc+"%"}:{width:this.o.pointers[0].value.prc+"%"}:this.settings.vertical?{height:this.originValue+"%"}:{width:this.originValue+"%"})}this.o.labels[a.uid].value.html(this.nice(a.value.origin)),this.redrawLabels(a)},e.prototype.redrawLabels=function(a){function b(a,b,d){b.margin=-b.label/2;var e=c.settings.vertical?c.sizes.domHeight:c.sizes.domWidth;if(c.sizes.domWidth){var f=b.border+b.margin;0>f&&(b.margin-=f),c.sizes.domWidth>0&&b.border+b.label/2>e?(b.margin=0,b.right=!0):b.right=!1}return a.o.css(c.settings.vertical?{top:d+"%",marginLeft:"20px",marginTop:b.margin,bottom:"auto"}:{left:d+"%",marginLeft:b.margin+"px",right:"auto"}),b.right&&c.sizes.domWidth>0&&a.o.css(c.settings.vertical?{top:"auto",bottom:0}:{left:"auto",right:0}),b}var c=this,d=this.o.labels[a.uid],e=a.value.prc;this.sizes.domWidth=this.domNode[0].clientWidth,this.sizes.domHeight=this.domNode[0].clientHeight;var f,g,h=0===d.o[0].offsetWidth?7*d.o[0].textContent.length:d.o[0].offsetWidth,i={label:c.settings.vertical?d.o[0].offsetHeight:h,right:!1,border:e*(c.settings.vertical?this.sizes.domHeight:this.sizes.domWidth)/100},j=0===a.uid?1:0;if(!this.settings.single&&!this.settings.vertical){f=this.o.labels[j],g=this.o.pointers[j];var k=this.o.labels[0],l=this.o.labels[1],m=this.o.pointers[0],n=this.o.pointers[1];k.o.css(this.css.visible),l.o.css(this.css.visible);var o=n.ptr[0].offsetLeft-m.ptr[0].offsetLeft;o+10<k.o[0].offsetWidth+l.o[0].offsetWidth?(f.o.css(this.css.hidden),f.value.html(this.nice(g.value.origin)),e=(g.value.prc-e)/2+e,g.value.prc!=a.value.prc&&(d.value.html(this.nice(this.o.pointers[0].value.origin)+"&nbsp;&ndash;&nbsp;"+this.nice(this.o.pointers[1].value.origin)),i.label=d.o[0].offsetWidth,i.border=e*p/100)):(f.value.html(this.nice(g.value.origin)),f.o.css(this.css.visible))}i=b(d,i,e);var p=c.settings.vertical?c.sizes.domHeight:c.sizes.domWidth;if(f){var q=0===d.o[0].offsetWidth?d.o[0].textContent.length/2*7:d.o[0].offsetWidth,r={label:c.settings.vertical?f.o[0].offsetHeight:q,right:!1,border:g.value.prc*this.sizes.domWidth/100};i=b(f,r,g.value.prc)}this.redrawLimits()},e.prototype.redrawLimits=function(){if(this.settings.limits){var b=[!0,!0];for(var c in this.o.pointers)if(!this.settings.single||0===c){var d=this.o.pointers[c],e=this.o.labels[d.uid],f=e.o[0].offsetLeft-this.sizes.domOffset.left,g=this.o.limits[0];f<g[0].clientWidth&&(b[0]=!1),g=this.o.limits[1],f+e.o[0].clientWidth>this.sizes.domWidth-g[0].clientWidth&&(b[1]=!1)}for(var h=0;h<b.length;h++)a.element(this.o.limits[h]).addClass(b[h]?"animate-show":"animate-hidde")}},e.prototype.setValue=function(){var a=this.getValue();this.inputNode.attr("value",a),this.onstatechange.call(this,a,this.inputNode)},e.prototype.getValue=function(){if(!this.is.init)return!1;var b=this,c="";return a.forEach(this.o.pointers,function(a,d){void 0===a.value.prc||isNaN(a.value.prc)||(c+=(d>0?";":"")+b.prcToValue(a.value.prc))}),c},e.prototype.getPrcValue=function(){if(!this.is.init)return!1;var a="";return a},e.prototype.prcToValue=function(a){var b;if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0)for(var c=this.settings.heterogeneity,d=0,e=this.settings.from,f=0;f<=c.length;f++){var g;g=c[f]?c[f].split("/"):[100,this.settings.to],a>=d&&a<=g[0]&&(b=e+(a-d)*(g[1]-e)/(g[0]-d)),d=g[0],e=g[1]}else b=this.settings.from+a*this.settings.interval/100;return this.round(b)},e.prototype.valueToPrc=function(a,b){var c;if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0)for(var d=this.settings.heterogeneity,e=0,f=this.settings.from,g=0;g<=d.length;g++){var h;h=d[g]?d[g].split("/"):[100,this.settings.to],a>=f&&a<=h[1]&&(c=b.limits(e+(a-f)*(h[0]-e)/(h[1]-f))),e=h[0],f=h[1]}else c=b.limits(100*(a-this.settings.from)/this.settings.interval);return c},e.prototype.round=function(a){return a=Math.round(a/this.settings.step)*this.settings.step,a=this.settings.round?Math.round(a*Math.pow(10,this.settings.round))/Math.pow(10,this.settings.round):Math.round(a)},e}])}(angular),function(a){"use strict";a.module("ngSlider").run(["$templateCache",function(a){a.put("ng-slider/slider-bar.tmpl.html",'<span ng-class="mainSliderClass" id="{{sliderTmplId}}"><table><tr><td><div class="jslider-bg"><i class="l"></i><i class="r"></i><i class="v"></i><i class="p"></i><i class="s"></i><i class="f"></i></div><div class="jslider-pointer"></div><div class="jslider-pointer jslider-pointer-to"></div><div class="jslider-label"><span>{{from}}</span>{{options.dimension}}</div><div class="jslider-label jslider-label-to"><span>{{to}}</span>{{options.dimension}}</div><div class="jslider-value"><span></span>{{options.dimension}}</div><div class="jslider-value jslider-value-to"><span></span>{{options.dimension}}</div><div class="jslider-scale" id="{{sliderScaleDivTmplId}}"></div></td></tr></table></span>')}])}(window.angular);