var shopApp,count,SHOP,app,Dell,s_dell,_ooyalascript;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.position","ui.bootstrap.datepicker","ui.bootstrap.dropdownToggle","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/popup.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/singlePager.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/rating/rating.html","template/tabs/tab.html","template/tabs/tabset-titles.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){var t=function(n,t,i){t.removeClass("collapse");t.css({height:i});var r=t[0].offsetWidth;t.addClass("collapse")};return{link:function(i,r,u){var e,o=!0;i.$watch(function(){return r[0].scrollHeight},function(){r[0].scrollHeight!==0&&(e||(o?t(i,r,r[0].scrollHeight+"px"):t(i,r,"auto")))});i.$watch(u.collapse,function(n){n?c():h()});var f,s=function(t){return f&&f.cancel(),f=n(r,t),f.then(function(){f=undefined},function(){f=undefined}),f},h=function(){o?(o=!1,e||t(i,r,"auto")):s({height:r[0].scrollHeight+"px"}).then(function(){e||t(i,r,"auto")});e=!1},c=function(){e=!0;o?(o=!1,t(i,r,0)):(t(i,r,r[0].scrollHeight+"px"),s({height:"0"}))}}}}]);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(this.groups.indexOf(n),1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",["$parse","$transition","$timeout",function(n){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@"},controller:["$scope",function(){this.setHeading=function(n){this.heading=n}}],link:function(t,i,r,u){var f,e;u.addGroup(t);t.isOpen=!1;r.isOpen&&(f=n(r.isOpen),e=f.assign,t.$watch(function(){return f(t.$parent)},function(n){t.isOpen=n}),t.isOpen=f?f(t.$parent):!1);t.$watch("isOpen",function(n){n&&u.closeOthers(t);e&&e(t.$parent,n)})}}}]).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",compile:function(n,t,i){return function(n,t,r,u){u.setHeading(i(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",[]).directive("alert",function(){return{restrict:"EA",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"=",close:"&"},link:function(n,t,i){n.closeable="close"in i}}});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"}).directive("btnRadio",["buttonConfig",function(n){var t=n.activeClass||"active",i=n.toggleEvent||"click";return{require:"ngModel",link:function(n,r,u,f){f.$render=function(){r.toggleClass(t,angular.equals(f.$modelValue,n.$eval(u.btnRadio)))};r.bind(i,function(){r.hasClass(t)||n.$apply(function(){f.$setViewValue(n.$eval(u.btnRadio));f.$render()})})}}}]).directive("btnCheckbox",["buttonConfig",function(n){var t=n.activeClass||"active",i=n.toggleEvent||"click";return{require:"ngModel",link:function(n,r,u,f){function e(){var t=n.$eval(u.btnCheckboxTrue);return angular.isDefined(t)?t:!0}function o(){var t=n.$eval(u.btnCheckboxFalse);return angular.isDefined(t)?t:!1}f.$render=function(){r.toggleClass(t,angular.equals(f.$modelValue,e()))};r.bind(i,function(){n.$apply(function(){f.$setViewValue(r.hasClass(t)?o():e());f.$render()})})}}}]);angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition","$q",function(n,t,i){function s(){function r(){o?(n.next(),s()):n.pause()}e&&t.cancel(e);var i=+n.interval;!isNaN(i)&&i>=0&&(e=t(r,i))}var r=this,u=r.slides=[],f=-1,e,o;r.currentSlide=null;r.select=function(e,o){function l(){if(r.currentSlide&&angular.isString(o)&&!n.noTransition&&e.$element){e.$element.addClass(o);var t=e.$element[0].offsetWidth;angular.forEach(u,function(n){angular.extend(n,{direction:"",entering:!1,leaving:!1,active:!1})});angular.extend(e,{direction:o,active:!0,entering:!0});angular.extend(r.currentSlide||{},{direction:o,leaving:!0});n.$currentTransition=i(e.$element,{}),function(t,i){n.$currentTransition.then(function(){h(t,i)},function(){h(t,i)})}(e,r.currentSlide)}else h(e,r.currentSlide);r.currentSlide=e;f=c;s()}function h(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 c=u.indexOf(e);o===undefined&&(o=c>f?"next":"prev");e&&e!==r.currentSlide&&(n.$currentTransition?(n.$currentTransition.cancel(),t(l)):l())};r.indexOfSlide=function(n){return u.indexOf(n)};n.next=function(){var t=(f+1)%u.length;if(!n.$currentTransition)return r.select(u[t],"next")};n.prev=function(){var t=f-1<0?u.length-1:f-1;if(!n.$currentTransition)return r.select(u[t],"prev")};n.select=function(n){r.select(n)};n.isActive=function(n){return r.currentSlide===n};n.slides=function(){return u};n.$watch("interval",s);n.play=function(){o||(o=!0,s())};n.pause=function(){n.noPause||(o=!1,e&&t.cancel(e))};r.addSlide=function(t,i){t.$element=i;u.push(t);u.length===1||t.active?(r.select(u[u.length-1]),u.length==1&&n.play()):t.active=!1};r.removeSlide=function(n){var t=u.indexOf(n);u.splice(t,1);u.length>0&&n.active?t>=u.length?r.select(u[t-1]):r.select(u[t]):f>t&&f--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",["$parse",function(n){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{},link:function(t,i,r,u){if(r.active){var f=n(r.active),o=f.assign,e=t.active=f(t.$parent);t.$watch(function(){var n=f(t.$parent);return n!==t.active&&(n!==e?e=t.active=n:o(t.$parent,n=e=t.active)),n})}u.addSlide(t,i);t.$on("$destroy",function(){u.removeSlide(t)});t.$watch("active",function(n){n&&u.select(t)})}}}]);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 f=this.offset(t),r={top:0,left:0},i=u(t[0]);return i!=n[0]&&(r=this.offset(angular.element(i)),r.top+=i.clientTop-i.scrollTop,r.left+=i.clientLeft-i.scrollLeft),{width:t.prop("offsetWidth"),height:t.prop("offsetHeight"),top:f.top-r.top,left:f.left-r.left}},offset:function(i){var r=i[0].getBoundingClientRect();return{width:i.prop("offsetWidth"),height:i.prop("offsetHeight"),top:r.top+(t.pageYOffset||n[0].body.scrollTop||n[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||n[0].body.scrollLeft||n[0].documentElement.scrollLeft)}}}}]);angular.module("ui.bootstrap.datepicker",["ui.bootstrap.position"]).constant("datepickerConfig",{dayFormat:"dd",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEE",dayTitleFormat:"MMMM yyyy",monthTitleFormat:"yyyy",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","dateFilter","datepickerConfig",function(n,t,i,r){function u(t,i){return angular.isDefined(t)?n.$parent.$eval(t):i}function h(n,t){return new Date(n,t,0).getDate()}function c(n,t){for(var r=new Array(t),i=n,u=0;u<t;)r[u++]=new Date(i),i.setDate(i.getDate()+1);return r}function o(n,t,r,u){return{date:n,label:i(n,t),selected:!!r,secondary:!!u}}var f={day:u(t.dayFormat,r.dayFormat),month:u(t.monthFormat,r.monthFormat),year:u(t.yearFormat,r.yearFormat),dayHeader:u(t.dayHeaderFormat,r.dayHeaderFormat),dayTitle:u(t.dayTitleFormat,r.dayTitleFormat),monthTitle:u(t.monthTitleFormat,r.monthTitleFormat)},s=u(t.startingDay,r.startingDay),e=u(t.yearRange,r.yearRange);this.minDate=r.minDate?new Date(r.minDate):null;this.maxDate=r.maxDate?new Date(r.maxDate):null;this.modes=[{name:"day",getVisibleDates:function(n,t){var b=n.getFullYear(),v=n.getMonth(),k=new Date(b,v,1),y=s-k.getDay(),p=y>0?7-y:-y,d=new Date(k),r=0,e,w,l,u,a;for(p>0&&(d.setDate(-p+1),r+=p),r+=h(b,v+1),r+=(7-r%7)%7,e=c(d,r),w=new Array(7),l=0;l<r;l++)u=new Date(e[l]),e[l]=o(u,f.day,t&&t.getDate()===u.getDate()&&t.getMonth()===u.getMonth()&&t.getFullYear()===u.getFullYear(),u.getMonth()!==v);for(a=0;a<7;a++)w[a]=i(e[a].date,f.dayHeader);return{objects:e,title:i(n,f.dayTitle),labels:w}},compare:function(n,t){return new Date(n.getFullYear(),n.getMonth(),n.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},split:7,step:{months:1}},{name:"month",getVisibleDates:function(n,t){for(var u=new Array(12),e=n.getFullYear(),s,r=0;r<12;r++)s=new Date(e,r,1),u[r]=o(s,f.month,t&&t.getMonth()===r&&t.getFullYear()===e);return{objects:u,title:i(n,f.monthTitle)}},compare:function(n,t){return new Date(n.getFullYear(),n.getMonth())-new Date(t.getFullYear(),t.getMonth())},split:3,step:{years:1}},{name:"year",getVisibleDates:function(n,t){for(var r=new Array(e),s=n.getFullYear(),h=parseInt((s-1)/e,10)*e+1,u,i=0;i<e;i++)u=new Date(h+i,0,1),r[i]=o(u,f.year,t&&t.getFullYear()===u.getFullYear());return{objects:r,title:[r[0].label,r[e-1].label].join(" - ")}},compare:function(n,t){return n.getFullYear()-t.getFullYear()},split:5,step:{years:e}}];this.isDisabled=function(t,i){var r=this.modes[i||0];return this.minDate&&r.compare(t,this.minDate)<0||this.maxDate&&r.compare(t,this.maxDate)>0||n.dateDisabled&&n.dateDisabled({date:t,mode:r.name})}}]).directive("datepicker",["dateFilter","$parse","datepickerConfig","$log",function(n,t,i,r){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(n,u,f,e){function a(){n.showWeekNumbers=o===0&&v}function p(n,t){for(var i=[];n.length>0;)i.push(n.splice(0,t));return i}function l(t){var i=null,e=!0,f,u;s.$modelValue&&(i=new Date(s.$modelValue),isNaN(i)?(e=!1,r.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.')):t&&(c=i));s.$setValidity("date",e);f=h.modes[o];u=f.getVisibleDates(c,i);angular.forEach(u.objects,function(n){n.disabled=h.isDisabled(n.date,o)});s.$setValidity("date-disabled",!i||!h.isDisabled(i));n.rows=p(u.objects,f.split);n.labels=u.labels||[];n.title=u.title}function y(n){o=n;a();l()}function w(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}var h=e[0],s=e[1];if(s){var o=0,c=new Date,v=i.showWeeks;f.showWeeks?n.$parent.$watch(t(f.showWeeks),function(n){v=!!n;a()}):a();f.min&&n.$parent.$watch(t(f.min),function(n){h.minDate=n?new Date(n):null;l()});f.max&&n.$parent.$watch(t(f.max),function(n){h.maxDate=n?new Date(n):null;l()});s.$render=function(){l(!0)};n.select=function(n){if(o===0){var t=new Date(s.$modelValue);t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate());s.$setViewValue(t);l(!0)}else c=n,y(o-1)};n.move=function(n){var t=h.modes[o].step;c.setMonth(c.getMonth()+n*(t.months||0));c.setFullYear(c.getFullYear()+n*(t.years||0));l()};n.toggleMode=function(){y((o+1)%h.modes.length)};n.getWeekNumber=function(t){return o===0&&n.showWeekNumbers&&t.length===7?w(t[0].date):null}}}}}]).constant("datepickerPopupConfig",{dateFormat:"yyyy-MM-dd",closeOnDateSelection:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","datepickerPopupConfig",function(n,t,i,r,u,f){return{restrict:"EA",require:"ngModel",link:function(e,o,s,h){function y(n){a?a(e,!!n):c.isOpen=!!n}function ft(n){if(n){if(angular.isDate(n))return h.$setValidity("date",!0),n;if(angular.isString(n)){var t=new Date(n);return isNaN(t)?(h.$setValidity("date",!1),undefined):(h.$setValidity("date",!0),t)}return h.$setValidity("date",!1),undefined}return h.$setValidity("date",!0),null}function tt(){c.date=h.$modelValue;it()}function w(n,i,r){n&&(e.$watch(t(n),function(n){c[i]=n}),v.attr(r||i,i))}function it(){c.position=r.position(o);c.position.top=c.position.top+o.prop("offsetHeight")}var rt=angular.isDefined(s.closeOnDateSelection)?c.$eval(s.closeOnDateSelection):f.closeOnDateSelection,ut=s.datepickerPopup||f.dateFormat,c=e.$new(),l,a,v,b,k,d;e.$on("$destroy",function(){c.$destroy()});s.isOpen&&(l=t(s.isOpen),a=l.assign,e.$watch(l,function(n){c.isOpen=!!n}));c.isOpen=l?l(e):!1;var g=function(n){c.isOpen&&n.target!==o[0]&&c.$apply(function(){y(!1)})},nt=function(){c.$apply(function(){y(!0)})},p=angular.element("<datepicker-popup-wrap><datepicker><\/datepicker><\/datepicker-popup-wrap>");p.attr({"ng-model":"date","ng-change":"dateSelection()"});v=p.find("datepicker");s.datepickerOptions&&v.attr(angular.extend({},e.$eval(s.datepickerOptions)));h.$parsers.unshift(ft);c.dateSelection=function(){h.$setViewValue(c.date);h.$render();rt&&y(!1)};o.bind("input change keyup",function(){c.$apply(function(){tt()})});h.$render=function(){var n=h.$viewValue?u(h.$viewValue,ut):"";o.val(n);tt()};w(s.min,"min");w(s.max,"max");s.showWeeks?w(s.showWeeks,"showWeeks","show-weeks"):(c.showWeeks=!0,v.attr("show-weeks","showWeeks"));s.dateDisabled&&v.attr("date-disabled",s.dateDisabled);b=!1;k=!1;c.$watch("isOpen",function(n){n?(it(),i.bind("click",g),k&&o.unbind("focus",nt),o[0].focus(),b=!0):(b&&i.unbind("click",g),o.bind("focus",nt),k=!0);a&&a(e,n)});d=t(s.ngModel).assign;c.today=function(){d(e,new Date)};c.clear=function(){d(e,null)};o.after(n(p)(c))}}}]).directive("datepickerPopupWrap",[function(){return{restrict:"E",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.dropdownToggle",[]).directive("dropdownToggle",["$document","$location",function(n){var i=null,t=angular.noop;return{restrict:"CA",link:function(r,u){r.$watch("$location.path",function(){t()});u.parent().bind("click",function(){t()});u.bind("click",function(r){var f=u===i;r.preventDefault();r.stopPropagation();!i||t();f||(u.parent().addClass("open"),i=u,t=function(r){r&&(r.preventDefault(),r.stopPropagation());n.unbind("click",t);u.parent().removeClass("open");t=angular.noop;i=null},n.bind("click",t))})}}}]);angular.module("ui.bootstrap.modal",[]).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",["$modalStack","$timeout",function(n,t){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(i){t(function(){i.animate=!0});i.close=function(t){var i=n.getTop();i&&i.value.backdrop&&i.value.backdrop!="static"&&(t.preventDefault(),t.stopPropagation(),n.dismiss(i.key,"backdrop click"))}}}}]).directive("modalWindow",["$timeout",function(n){return{restrict:"EA",scope:{index:"@"},replace:!0,transclude:!0,templateUrl:"template/modal/window.html",link:function(t,i,r){t.windowClass=r.windowClass||"";n(function(){t.animate=!0})}}}]).factory("$modalStack",["$document","$compile","$rootScope","$$stackedMap",function(n,t,i,r){function o(){for(var t=-1,i=u.keys(),n=0;n<i.length;n++)u.get(i[n]).value.backdrop&&(t=n);return t}function l(n){var t=u.get(n).value;u.remove(n);t.modalDomEl.remove();o()==-1&&(e.remove(),e=undefined);t.modalScope.$destroy()}var s,e,h=i.$new(!0),c=n.find("body").eq(0),u=r.createNew(),f={};return i.$watch(o,function(n){h.index=n}),n.bind("keydown",function(n){var t;n.which===27&&(t=u.top(),t&&t.value.keyboard&&i.$apply(function(){f.dismiss(t.key)}))}),f.open=function(n,i){var r,f;u.add(n,{deferred:i.deferred,modalScope:i.scope,backdrop:i.backdrop,keyboard:i.keyboard});r=angular.element("<div modal-window><\/div>");r.attr("window-class",i.windowClass);r.attr("index",u.length()-1);r.html(i.content);f=t(r)(i.scope);u.top().value.modalDomEl=f;c.append(f);o()>=0&&!e&&(s=angular.element("<div modal-backdrop><\/div>"),e=t(s)(h),c.append(e))},f.close=function(n,t){var i=u.get(n);i&&(i.value.deferred.resolve(t),l(n))},f.dismiss=function(n,t){var i=u.get(n).value;i&&(i.deferred.reject(t),l(n))},f.getTop=function(){return u.top()},f}]).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(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 s=(t.scope||i).$new(),c,r,h;s.$close=u.close;s.$dismiss=u.dismiss;r={};h=1;t.controller&&(r.$scope=s,r.$modalInstance=u,angular.forEach(t.resolve,function(t,i){r[i]=n[h++]}),c=e(t.controller,r));o.open(u,{scope:s,deferred:f,content:n[0],backdrop:t.backdrop,keyboard:t.keyboard,windowClass:t.windowClass})},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","$interpolate",function(n,t,i,r){var u=this;this.init=function(r){t.itemsPerPage?n.$parent.$watch(i(t.itemsPerPage),function(t){u.itemsPerPage=parseInt(t,10);n.totalPages=u.calculateTotalPages()}):this.itemsPerPage=r};this.noPrevious=function(){return this.page===1};this.noNext=function(){return this.page===n.totalPages};this.isActive=function(n){return this.page===n};this.calculateTotalPages=function(){return this.itemsPerPage<1?1:Math.ceil(n.totalItems/this.itemsPerPage)};this.getAttributeValue=function(t,i,u){return angular.isDefined(t)?u?r(t)(n.$parent):n.$parent.$eval(t):i};this.render=function(){this.page=parseInt(n.page,10)||1;n.pages=this.getPages(this.page,n.totalPages)};n.selectPage=function(t){if(!u.isActive(t)&&t>0&&t<=n.totalPages){n.page=t;n.onSelectPage({page:t})}};n.$watch("totalItems",function(){n.totalPages=u.calculateTotalPages()});n.$watch("totalPages",function(i){t.numPages&&(n.numPages=i);u.page>i?n.selectPage(i):u.render()});n.$watch("page",function(){u.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:{page:"&",totalItems:"=",onSelectPage:"&",numPages:"="},controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(i,r,u,f){function o(n,t,i,r){return{number:n,text:t,active:i,disabled:r}}var e,h=f.getAttributeValue(u.boundaryLinks,t.boundaryLinks),c=f.getAttributeValue(u.directionLinks,t.directionLinks),l=f.getAttributeValue(u.firstText,t.firstText,!0),a=f.getAttributeValue(u.previousText,t.previousText,!0),v=f.getAttributeValue(u.nextText,t.nextText,!0),y=f.getAttributeValue(u.lastText,t.lastText,!0),s=f.getAttributeValue(u.rotate,t.rotate);f.init(t.itemsPerPage);u.maxSize&&i.$parent.$watch(n(u.maxSize),function(n){e=parseInt(n,10);f.render()});f.getPages=function(n,t){var i=[],r=1,u=t,w=angular.isDefined(e)&&e<t,p,b,k,d,g,nt,tt,it;for(w&&(s?(r=Math.max(n-Math.floor(e/2),1),u=r+e-1,u>t&&(u=t,r=u-e+1)):(r=(Math.ceil(n/e)-1)*e+1,u=Math.min(r+e-1,t))),p=r;p<=u;p++)b=o(p,p,f.isActive(p),!1),i.push(b);return w&&!s&&(r>1&&(k=o(r-1,"...",!1,!1),i.unshift(k)),u<t&&(d=o(u+1,"...",!1,!1),i.push(d))),c&&(g=o(n-1,a,!1,f.noPrevious()),i.unshift(g),nt=o(n+1,v,!1,f.noNext()),i.push(nt)),h&&(tt=o(1,l,!1,f.noPrevious()),i.unshift(tt),it=o(t,y,!1,f.noNext()),i.push(it)),i}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"� Previous",nextText:"Next �",align:!0,pagerText:"Of",disablePrevious:!1,showPageCount:!1}).directive("pager",["pagerConfig",function(n){return{restrict:"EA",scope:{page:"&",totalItems:"=",onSelectPage:" &",numPages:"="},controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,i,r,u){function f(n,t,i,r,u){return{number:n,text:t,disabled:i,previous:s&&r,next:s&&u}}var o=u.getAttributeValue(r.previousText,n.previousText,!0),e=u.getAttributeValue(r.nextText,n.nextText,!0),s=u.getAttributeValue(r.align,n.align),h=u.getAttributeValue(r.pagerText,n.pagerText,!0),c=u.getAttributeValue(r.disablePrevious,n.disablePrevious,!0);showPageCount=u.getAttributeValue(r.showPageCount,n.showPageCount,!0);u.init(n.itemsPerPage);u.getPages=function(n){return c?[f(n+1,e,u.noNext(),!1,!0)]:showPageCount?[f(n-1,o,u.noPrevious(),!0,!1),f(n,n+" "+h+" "+u.calculateTotalPages(),!1,!1,!1),f(n+1,e,u.noNext(),!1,!0)]:[f(n-1,o,u.noPrevious(),!0,!1),f(n+1,e,u.noNext(),!1,!0)]}}}}]).constant("singlePagerConfig",{itemsPerPage:10,previousText:"� Previous",nextText:"Next �",align:!0,pagerText:"Of",disablePrevious:!1,showPageCount:!1}).directive("singlePager",["singlePagerConfig",function(n){return{restrict:"EA",scope:{page:"&",totalItems:"=",onSelectPage:" &",numPages:"="},controller:"PaginationController",templateUrl:"template/pagination/singlePager.html",replace:!0,link:function(t,i,r,u){function o(n,t,i,r,u){return{number:n,text:t,disabled:i,previous:f&&r,next:f&&u}}var s=u.getAttributeValue(r.previousText,n.previousText,!0),e=u.getAttributeValue(r.nextText,n.nextText,!0),f=u.getAttributeValue(r.align,n.align),h=u.getAttributeValue(r.pagerText,n.pagerText,!0),c=u.getAttributeValue(r.disablePrevious,n.disablePrevious,!0);showPageCount=u.getAttributeValue(r.showPageCount,n.showPageCount,!0);u.init(n.itemsPerPage);u.getPages=function(n){return[o(n+1,e,u.noNext(),!1,!0)]}}}}]);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","$parse","$document","$position","$interpolate",function(u,f,e,o,s,h,c){return function(u,l,a){function w(t){var i=t||v.trigger||a,r=n[i]||i;return{show:i,hide:r}}var v=angular.extend({},i,t),b=r(u),y=c.startSymbol(),p=c.endSymbol(),k="<"+b+'-popup title="'+y+"tt_title"+p+'" content="'+y+"tt_content"+p+'" placement="'+y+"tt_placement"+p+'" animation="tt_animation()" is-open="tt_isOpen"><\/'+b+"-popup>";return{restrict:"EA",scope:!0,link:function(n,t,i){function rt(){n.tt_isOpen?d():b()}function b(){n.tt_popupDelay?nt=e(it,n.tt_popupDelay):n.$apply(it)}function d(){n.$apply(function(){g()})}function it(){var i,f,o,u;if(n.tt_content){y&&e.cancel(y);r.css({top:0,left:0,display:"block"});a?(p=p||s.find("body"),p.append(r)):t.after(r);i=a?h.offset(t):h.position(t);f=r.prop("offsetWidth");o=r.prop("offsetHeight");switch(n.tt_placement){case"right":u={top:i.top+i.height/2-o/2,left:i.left+i.width};break;case"bottom":u={top:i.top+i.height,left:i.left+i.width/2-f/2};break;case"left":u={top:i.top+i.height/2-o/2,left:i.left-f};break;default:u={top:i.top-o,left:i.left+i.width/2-f/2}}u.top+="px";u.left+="px";r.css(u);n.tt_isOpen=!0}}function g(){n.tt_isOpen=!1;e.cancel(nt);angular.isDefined(n.tt_animation)&&n.tt_animation()?y=e(function(){r.remove()},500):r.remove()}var r=f(k)(n),y,nt,p,a=angular.isDefined(v.appendToBody)?v.appendToBody:!1,c=w(undefined),tt=!1;n.tt_isOpen=!1;i.$observe(u,function(t){n.tt_content=t});i.$observe(l+"Title",function(t){n.tt_title=t});i.$observe(l+"Placement",function(t){n.tt_placement=angular.isDefined(t)?t:v.placement});i.$observe(l+"Animation",function(t){n.tt_animation=angular.isDefined(t)?o(t):function(){return v.animation}});i.$observe(l+"PopupDelay",function(t){var i=parseInt(t,10);n.tt_popupDelay=isNaN(i)?v.popupDelay:i});i.$observe(l+"Trigger",function(n){tt&&(t.unbind(c.show,b),t.unbind(c.hide,d));c=w(n);c.show===c.hide?t.bind(c.show,rt):(t.bind(c.show,b),t.bind(c.hide,d));tt=!0});i.$observe(l+"AppendToBody",function(t){a=angular.isDefined(t)?o(t)(n):a});a&&n.$on("$locationChangeSuccess",function(){n.tt_isOpen&&g()});n.$on("$destroy",function(){n.tt_isOpen?g():r.remove()})}}}}]}).directive("tooltipPopup",function(){return{restrict:"E",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:"E",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",["$compile","$timeout","$parse","$window","$tooltip",function(n,t,i,r,u){return u("popover","popover","click")}]);angular.module("ui.bootstrap.progressbar",["ui.bootstrap.transition"]).constant("progressConfig",{animate:!0,autoType:!1,stackedTypes:["success","info","warning","danger"]}).controller("ProgressBarController",["$scope","$attrs","progressConfig",function(n,t,i){function e(n){return f[n]}var r=angular.isDefined(t.animate)?n.$eval(t.animate):i.animate,u=angular.isDefined(t.autoType)?n.$eval(t.autoType):i.autoType,f=angular.isDefined(t.stackedTypes)?n.$eval("["+t.stackedTypes+"]"):i.stackedTypes;this.makeBar=function(n,t,i){var f=angular.isObject(n)?n.value:n||0,o=angular.isObject(t)?t.value:t||0,s=angular.isObject(n)&&angular.isDefined(n.type)?n.type:u?e(i||0):null;return{from:o,to:f,type:s,animate:r}};this.addBar=function(t){n.bars.push(t);n.totalPercent+=t.to};this.clearBars=function(){n.bars=[];n.totalPercent=0};this.clearBars()}]).directive("progress",function(){return{restrict:"EA",replace:!0,controller:"ProgressBarController",scope:{value:"=percent",onFull:"&",onEmpty:"&"},templateUrl:"template/progressbar/progress.html",link:function(n,t,i,r){n.$watch("value",function(n,t){if(r.clearBars(),angular.isArray(n))for(var i=0,u=n.length;i<u;i++)r.addBar(r.makeBar(n[i],t[i],i));else r.addBar(r.makeBar(n,t))},!0);n.$watch("totalPercent",function(t){t>=100?n.onFull():t<=0&&n.onEmpty()},!0)}}}).directive("progressbar",["$transition",function(n){return{restrict:"EA",replace:!0,scope:{width:"=",old:"=",type:"=",animate:"="},templateUrl:"template/progressbar/bar.html",link:function(t,i){t.$watch("width",function(r){t.animate?(i.css("width",t.old+"%"),n(i,{width:r+"%"})):i.css("width",r+"%")})}}}]);angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","$parse","ratingConfig",function(n,t,i,r){this.maxRange=angular.isDefined(t.max)?n.$parent.$eval(t.max):r.max;this.stateOn=angular.isDefined(t.stateOn)?n.$parent.$eval(t.stateOn):r.stateOn;this.stateOff=angular.isDefined(t.stateOff)?n.$parent.$eval(t.stateOff):r.stateOff;this.createDefaultRange=function(n){for(var r={stateOn:this.stateOn,stateOff:this.stateOff},i=new Array(n),t=0;t<n;t++)i[t]=r;return i};this.normalizeRange=function(n){for(var t=0,i=n.length;t<i;t++)n[t].stateOn=n[t].stateOn||this.stateOn,n[t].stateOff=n[t].stateOff||this.stateOff;return n};n.range=angular.isDefined(t.ratingStates)?this.normalizeRange(angular.copy(n.$parent.$eval(t.ratingStates))):this.createDefaultRange(this.maxRange);n.rate=function(t){n.readonly||n.value===t||(n.value=t)};n.enter=function(t){n.readonly||(n.val=t);n.onHover({value:t})};n.reset=function(){n.val=angular.copy(n.value);n.onLeave()};n.$watch("value",function(t){n.val=t});n.readonly=!1;t.readonly&&n.$parent.$watch(i(t.readonly),function(t){n.readonly=!!t})}]).directive("rating",function(){return{restrict:"EA",scope:{value:"=",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0}});angular.module("ui.bootstrap.tabs",[]).directive("tabs",function(){return function(){throw new Error("The `tabs` directive is deprecated, please migrate to `tabset`. Instructions can be found at http://github.com/angular-ui/bootstrap/tree/master/CHANGELOG.md");}}).controller("TabsetController",["$scope","$element",function(n){var i=this,t=i.tabs=n.tabs=[];i.select=function(n){angular.forEach(t,function(n){n.active=!1});n.active=!0};i.addTab=function(n){t.push(n);(t.length===1||n.active)&&i.select(n)};i.removeTab=function(n){var r=t.indexOf(n),u;n.active&&t.length>1&&(u=r==t.length-1?r-1:r+1,i.select(t[u]));t.splice(r,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,require:"^tabset",scope:{},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",compile:function(n,t,i){return function(n,t,r,u){n.vertical=angular.isDefined(r.vertical)?n.$parent.$eval(r.vertical):!1;n.type=angular.isDefined(r.type)?n.$parent.$eval(r.type):"tabs";n.direction=angular.isDefined(r.direction)?n.$parent.$eval(r.direction):"top";n.tabsAbove=n.direction!="below";u.$scope=n;u.$transcludeFn=i}}}}).directive("tab",["$parse","$http","$templateCache","$compile",function(n){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(t,i,r){return function(t,i,u,f){var e,o;u.active?(e=n(u.active),o=e.assign,t.$parent.$watch(e,function(n){t.active=!!n}),t.active=e(t.$parent)):o=e=angular.noop;t.$watch("active",function(n){o(t.$parent,n);n?(f.select(t),t.onSelect()):t.onDeselect()});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.active&&o(t.$parent,!0);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",["$compile","$parse",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)})})}}}]).directive("tabsetTitles",["$http",function(){return{restrict:"A",require:"^tabset",templateUrl:"template/tabs/tabset-titles.html",replace:!0,link:function(n,t,i,r){n.$eval(i.tabsetTitles)?r.$transcludeFn(r.$scope.$parent,function(n){t.append(n)}):t.remove()}}}]);angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:["AM","PM"],readonlyInput:!1,mousewheel:!0}).directive("timepicker",["$parse","$log","timepickerConfig",function(n,t,i){return{restrict:"EA",require:"?^ngModel",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(r,u,f,e){function b(){var n=parseInt(r.hours,10),t=r.showMeridian?n>0&&n<13:n>=0&&n<24;return t?(r.showMeridian&&(n===12&&(n=0),r.meridian===a[1]&&(n=n+12)),n):undefined}function k(){var n=parseInt(r.minutes,10);return n>=0&&n<60?n:undefined}function c(n){return angular.isDefined(n)&&n.toString().length<2?"0"+n:n}function l(n){tt();e.$setViewValue(new Date(o));w(n)}function tt(){e.$setValidity("time",!0);r.invalidHours=!1;r.invalidMinutes=!1}function w(n){var t=o.getHours(),i=o.getMinutes();r.showMeridian&&(t=t===0||t===12?12:t%12);r.hours=n==="h"?t:c(t);r.minutes=n==="m"?i:c(i);r.meridian=o.getHours()<12?a[0]:a[1]}function s(n){var t=new Date(o.getTime()+n*6e4);o.setHours(t.getHours(),t.getMinutes());l()}var h,y,p;if(e){var o=new Date,a=i.meridians,v=i.hourStep;f.hourStep&&r.$parent.$watch(n(f.hourStep),function(n){v=parseInt(n,10)});h=i.minuteStep;f.minuteStep&&r.$parent.$watch(n(f.minuteStep),function(n){h=parseInt(n,10)});r.showMeridian=i.showMeridian;f.showMeridian&&r.$parent.$watch(n(f.showMeridian),function(n){if(r.showMeridian=!!n,e.$error.time){var t=b(),i=k();angular.isDefined(t)&&angular.isDefined(i)&&(o.setHours(t),l())}else w()});var d=u.find("input"),g=d.eq(0),nt=d.eq(1),it=angular.isDefined(f.mousewheel)?r.$eval(f.mousewheel):i.mousewheel;it&&(y=function(n){n.originalEvent&&(n=n.originalEvent);var t=n.wheelDelta?n.wheelDelta:-n.deltaY;return n.detail||t>0},g.bind("mousewheel wheel",function(n){r.$apply(y(n)?r.incrementHours():r.decrementHours());n.preventDefault()}),nt.bind("mousewheel wheel",function(n){r.$apply(y(n)?r.incrementMinutes():r.decrementMinutes());n.preventDefault()}));r.readonlyInput=angular.isDefined(f.readonlyInput)?r.$eval(f.readonlyInput):i.readonlyInput;r.readonlyInput?(r.updateHours=angular.noop,r.updateMinutes=angular.noop):(p=function(n,t){e.$setViewValue(null);e.$setValidity("time",!1);angular.isDefined(n)&&(r.invalidHours=n);angular.isDefined(t)&&(r.invalidMinutes=t)},r.updateHours=function(){var n=b();angular.isDefined(n)?(o.setHours(n),l("h")):p(!0)},g.bind("blur",function(){!r.validHours&&r.hours<10&&r.$apply(function(){r.hours=c(r.hours)})}),r.updateMinutes=function(){var n=k();angular.isDefined(n)?(o.setMinutes(n),l("m")):p(undefined,!0)},nt.bind("blur",function(){!r.invalidMinutes&&r.minutes<10&&r.$apply(function(){r.minutes=c(r.minutes)})}));e.$render=function(){var n=e.$modelValue?new Date(e.$modelValue):null;isNaN(n)?(e.$setValidity("time",!1),t.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&&(o=n),tt(),w())};r.incrementHours=function(){s(v*60)};r.decrementHours=function(){s(-v*60)};r.incrementMinutes=function(){s(h)};r.decrementMinutes=function(){s(-h)};r.toggleMeridian=function(){s(720*(o.getHours()<12?1:-1))}}}}}]);angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(n){var t=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\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 tt=s.$eval(c.typeaheadMinLength)||1,g=s.$eval(c.typeaheadWaitMs)||0,it=s.$eval(c.typeaheadEditable)!==!1,p=t(c.typeaheadLoading).assign||angular.noop,rt=t(c.typeaheadOnSelect),nt=c.typeaheadInputFormatter?t(c.typeaheadInputFormatter):undefined,ut=t(c.ngModel).assign,v=e.parse(c.typeahead),w=angular.element("<typeahead-popup><\/typeahead-popup>"),a,y,b,k,d;w.attr({matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});angular.isDefined(c.typeaheadTemplateUrl)&&w.attr("template-url",c.typeaheadTemplateUrl);a=s.$new();s.$on("$destroy",function(){a.$destroy()});y=function(){a.matches=[];a.activeIdx=-1};b=function(n){var t={$viewValue:n};p(s,!0);i.when(v.source(a,t)).then(function(i){if(n===l.$viewValue){if(i.length>0){a.activeIdx=0;a.matches.length=0;for(var r=0;r<i.length;r++)t[v.itemName]=i[r],a.matches.push({label:v.viewMapper(a,t),model:i[r]});a.query=n;a.position=f.position(h);a.position.top=a.position.top+h.prop("offsetHeight")}else y();p(s,!1)}},function(){y();p(s,!1)})};y();a.query=undefined;l.$parsers.unshift(function(n){return y(),n&&n.length>=tt&&(g>0?(k&&r.cancel(k),k=r(function(){b(n)},g)):b(n)),it?n:(l.$setValidity("editable",!1),undefined)});l.$formatters.push(function(n){var i,r,t={};return nt?(t.$model=n,nt(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,r;t[v.itemName]=r=a.matches[n].model;i=v.modelMapper(s,t);ut(s,i);l.$setValidity("editable",!0);rt(s,{$item:r,$model:i,$label:v.viewMapper(s,t)});y();h[0].focus()};h.bind("keydown",function(n){a.matches.length!==0&&o.indexOf(n.which)!==-1&&(n.preventDefault(),n.which===40?(a.activeIdx=(a.activeIdx+1)%a.matches.length,a.$digest()):n.which===38?(a.activeIdx=(a.activeIdx?a.activeIdx:a.matches.length)-1,a.$digest()):n.which===13||n.which===9?a.$apply(function(){a.select(a.activeIdx)}):n.which===27&&(n.stopPropagation(),y(),a.$digest()))});d=function(n){h[0]!==n.target&&(y(),a.$digest())};u.bind("click",d);s.$on("$destroy",function(){u.unbind("click",d)});h.after(n(w)(a))}}}]).directive("typeaheadPopup",function(){return{restrict:"E",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};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",["$http","$templateCache","$compile","$parse",function(n,t,i,r){return{restrict:"E",scope:{index:"=",match:"=",query:"="},link:function(u,f,e){var o=r(e.templateUrl)(u.$parent)||"template/typeahead/typeahead-match.html";n.get(o,{cache:t}).success(function(n){f.replaceWith(i(n.trim())(u))})}}}]).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="accordion-group">\n  <div class="accordion-heading" ><a class="accordion-toggle" ng-click="isOpen = !isOpen" accordion-transclude="heading">{{heading}}<\/a><\/div>\n  <div class="accordion-body" collapse="!isOpen">\n    <div class="accordion-inner" ng-transclude><\/div>  <\/div>\n<\/div>')}]);angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion.html",'<div class="accordion" ng-transclude><\/div>')}]);angular.module("template/alert/alert.html",[]).run(["$templateCache",function(n){n.put("template/alert/alert.html","<div class='alert' ng-class='type && \"alert-\" + type'>\n    <button ng-show='closeable' type='button' class='close' ng-click='close()'>&times;<\/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">\n    <ol class="carousel-indicators" ng-show="slides().length > 1">\n        <li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)"><\/li>\n    <\/ol>\n    <div class="carousel-inner" ng-transclude><\/div>\n    <a ng-click="prev()" class="carousel-control left" ng-show="slides().length > 1">&lsaquo;<\/a>\n    <a ng-click="next()" class="carousel-control right" ng-show="slides().length > 1">&rsaquo;<\/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\" ng-transclude><\/div>\n")}]);angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/datepicker.html",'<table>\n  <thead>\n    <tr class="text-center">\n      <th><button type="button" class="btn pull-left" ng-click="move(-1)"><i class="icon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="{{rows[0].length - 2 + showWeekNumbers}}"><button type="button" class="btn btn-block" ng-click="toggleMode()"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn pull-right" ng-click="move(1)"><i class="icon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n    <tr class="text-center" ng-show="labels.length > 0">\n      <th ng-show="showWeekNumbers">#<\/th>\n      <th ng-repeat="label in labels">{{label}}<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows">\n      <td ng-show="showWeekNumbers" class="text-center"><em>{{ getWeekNumber(row) }}<\/em><\/td>\n      <td ng-repeat="dt in row" class="text-center">\n        <button type="button" style="width:100%;" class="btn" ng-class="{\'btn-info\': dt.selected}" ng-click="select(dt.date)" ng-disabled="dt.disabled"><span ng-class="{muted: dt.secondary}">{{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" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" class="dropdown-menu">\n\t<li ng-transclude><\/li>\n\t<li class="divider"><\/li>\n\t<li style="padding: 9px;">\n\t\t<span class="btn-group">\n\t\t\t<button class="btn btn-small btn-inverse" ng-click="today()">Today<\/button>\n\t\t\t<button class="btn btn-small btn-info" ng-click="showWeeks = ! showWeeks" ng-class="{active: showWeeks}">Weeks<\/button>\n\t\t\t<button class="btn btn-small btn-danger" ng-click="clear()">Clear<\/button>\n\t\t<\/span>\n\t\t<button class="btn btn-small btn-success pull-right" ng-click="isOpen = false">Close<\/button>\n\t<\/li>\n<\/ul>')}]);angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(n){n.put("template/modal/backdrop.html",'<div class="modal-backdrop fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1040 + index*10}" ng-click="close($event)"><\/div>')}]);angular.module("template/modal/window.html",[]).run(["$templateCache",function(n){n.put("template/modal/window.html",'<div class="modal fade {{ windowClass }}" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10}" ng-transclude><\/div>')}]);angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pager.html",'<div class="pager">\n  <ul>\n    <li ng-repeat="page in pages" ng-class="{disabled: page.disabled, previous: page.previous, next: page.next}"><a ng-click="selectPage(page.number)">{{page.text}}<\/a><\/li>\n  <\/ul>\n<\/div>\n')}]);angular.module("template/pagination/singlePager.html",[]).run(["$templateCache",function(n){n.put("template/pagination/singlePager.html",'<div class="pager" ng-click="selectPage(pages[0].number)" >\n{{pages[0].text}}\n<\/div>\n')}]);angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pagination.html",'<div class="pagination"><ul>\n  <li ng-repeat="page in pages" ng-class="{active: page.active, disabled: page.disabled}"><a ng-click="selectPage(page.number)">{{page.text}}<\/a><\/li>\n  <\/ul>\n<\/div>\n')}]);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" ng-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="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="bar" ng-class=\'type && "bar-" + type\'><\/div>')}]);angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progress.html",'<div class="progress"><progressbar ng-repeat="bar in bars" width="bar.to" old="bar.from" animate="bar.animate" type="bar.type"><\/progressbar><\/div>')}]);angular.module("template/rating/rating.html",[]).run(["$templateCache",function(n){n.put("template/rating/rating.html",'<span ng-mouseleave="reset()">\n\t<i ng-repeat="r in range" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" ng-class="$index < val && (r.stateOn || \'icon-star\') || (r.stateOff || \'icon-star-empty\')"><\/i>\n<\/span>')}]);angular.module("template/tabs/pane.html",[]).run(["$templateCache",function(n){n.put("template/tabs/pane.html",'<div class="tab-pane" ng-class="{active: selected}" ng-show="selected" ng-transclude><\/div>\n')}]);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 ng-click="select()" tab-heading-transclude>{{heading}}<\/a>\n<\/li>\n')}]);angular.module("template/tabs/tabs.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabs.html",'<div class="tabbable">\n  <ul class="nav nav-tabs">\n    <li ng-repeat="pane in panes" ng-class="{active:pane.selected}">\n      <a ng-click="select(pane)">{{pane.heading}}<\/a>\n    <\/li>\n  <\/ul>\n  <div class="tab-content" ng-transclude><\/div>\n<\/div>\n')}]);angular.module("template/tabs/tabset-titles.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset-titles.html","<ul class=\"nav {{type && 'nav-' + type}}\" ng-class=\"{'nav-stacked': vertical}\">\n<\/ul>\n")}]);angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset.html",'\n<div class="tabbable" ng-class="{\'tabs-right\': direction == \'right\', \'tabs-left\': direction == \'left\', \'tabs-below\': direction == \'below\'}">\n  <div tabset-titles="tabsAbove"><\/div>\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 tabset-titles="!tabsAbove"><\/div>\n<\/div>\n')}]);angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(n){n.put("template/timepicker/timepicker.html",'<table class="form-inline">\n\t<tr class="text-center">\n\t\t<td><a ng-click="incrementHours()" class="btn btn-link"><i class="icon-chevron-up"><\/i><\/a><\/td>\n\t\t<td>&nbsp;<\/td>\n\t\t<td><a ng-click="incrementMinutes()" class="btn btn-link"><i class="icon-chevron-up"><\/i><\/a><\/td>\n\t\t<td ng-show="showMeridian"><\/td>\n\t<\/tr>\n\t<tr>\n\t\t<td class="control-group" ng-class="{\'error\': invalidHours}"><input type="text" ng-model="hours" ng-change="updateHours()" class="span1 text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2" /><\/td>\n\t\t<td>:<\/td>\n\t\t<td class="control-group" ng-class="{\'error\': invalidMinutes}"><input type="text" ng-model="minutes" ng-change="updateMinutes()" class="span1 text-center" ng-readonly="readonlyInput" maxlength="2"><\/td>\n\t\t<td ng-show="showMeridian"><button type="button" ng-click="toggleMeridian()" class="btn text-center">{{meridian}}<\/button><\/td>\n\t<\/tr>\n\t<tr class="text-center">\n\t\t<td><a ng-click="decrementHours()" class="btn btn-link"><i class="icon-chevron-down"><\/i><\/a><\/td>\n\t\t<td>&nbsp;<\/td>\n\t\t<td><a ng-click="decrementMinutes()" class="btn btn-link"><i class="icon-chevron-down"><\/i><\/a><\/td>\n\t\t<td ng-show="showMeridian"><\/td>\n\t<\/tr>\n<\/table>')}]);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="typeahead dropdown-menu" ng-style="{display: isOpen()&&\'block\' || \'none\', top: position.top+\'px\', left: position.left+\'px\'}">\n    <li ng-repeat="match in matches" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)">\n        <typeahead-match index="$index" match="match" query="query" template-url="templateUrl"><\/typeahead-match>\n    <\/li>\n<\/ul>')}]);angular.module("template/typeahead/typeahead.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead.html",'<ul class="typeahead dropdown-menu" ng-style="{display: isOpen()&&\'block\' || \'none\', top: position.top+\'px\', left: position.left+\'px\'}">\n    <li ng-repeat="match in matches" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)">\n        <a tabindex="-1" ng-click="selectMatch($index)" ng-bind-html-unsafe="match.label | typeaheadHighlight:query"><\/a>\n    <\/li>\n<\/ul>')}]);angular.module("shopAngularUI",[]);angular.module("shopAngularUI").directive("ratings",function(){return{scope:{value:"="},restrict:"EA",replace:!0,template:'<ul data-testid="resultRating" class="stars unstyled" data-test-rating={{data_test_rating}}>      <li data-ng-if="!isWin7Phone" data-ng-repeat="star in stars" class="{{star.starCss}}"><\/li>      <img data-ng-if="isWin7Phone" title="{{roundedValue}} stars" alt="{{roundedValue}} stars" class="img-responsive" height="18" width="100"           data-ng-src="http://dell.origin.bazaarvoice.com/2341_mg/{{value}}/5/rating.gif">  <\/ul>  ',link:function(n){var r,t,i;if(n.data_test_rating=0,n.stars=[],n.isWin7Phone=!1,$("body").hasClass("ie-mobile-7")){n.isWin7Phone=!0;return}r={10:"icon-small-favorite-10",20:"icon-small-favorite-20",30:"icon-small-favorite-30",40:"icon-small-favorite-40",50:"icon-small-favorite-50",60:"icon-small-favorite-60",70:"icon-small-favorite-70",80:"icon-small-favorite-80",90:"icon-small-favorite-90"};n.rate=function(t){n.value=t};var e=Math.round(n.value*10)/10%1,u=Math.round(e*10)*10,f=!1;for(t=1;t<=5;t++)i={key:t,starCss:"star icon-small-favorite text-gray"},n.value>=t?(i.starCss="star text-yellow icon-small-favorite",n.data_test_rating=n.data_test_rating+100):u in r&&!f&&(i.starCss=" star text-yellow icon-small-favorite "+r[u],n.data_test_rating=n.data_test_rating+u,f=!0),n.stars.push(i);n.data_test_rating=n.data_test_rating/5}}});angular.module("shopAngularUI").directive("ratingbar",function(){return{scope:{value:"="},restrict:"EA",replace:!0,template:'<div class="graph-container well-small gray-light">  \t\t<ul class="graph unstyled">  \t\t    <li data-ng-repeat="data in bars" class="bar blue"><\/li>  \t\t<\/ul>  <\/div>',link:function(n){n.bars=[];for(var t=1;t<n.value;t++)n.bars.push(t)}}});angular.module("shopAngularUI").directive("technote",function(){return{scope:{key:"="},restrict:"EA",replace:!0,template:'<a class="technote microcontent" rel="technotes:{{key}}">     <sup><small>i<\/small><\/sup>  <\/a>'}});angular.module("shopAngularUI").constant("textMoreConfig",{moreText:"More",lessText:"less",displayTertiaryLink:!1}).directive("textmore",["textMoreConfig",function(n){return{scope:{input:"=",chars:"=",breakOnWord:"=",tertiarylinkurl:"=",tertiarylinkcaption:"="},restrict:"EA",replace:!0,template:'<div class="expand-collapse-text bottom-offset-0" data-scroll-spy-refresh="text">      <p data-ng-bind-html="text" class="display-inline bottom-offset-0"><\/p>      <p data-ng-show="showTertiaryLink" class="bottom-offset-0">          <a target="_blank" href="{{tertiarylinkurl}}">{{tertiarylinkcaption}} <i class="icon-ui-arrowright"><\/i><\/a>      <\/p>      <a data-ng-show="showExpandLink" data-remove-height="" data-ng-click="isExpanded = !isExpanded" href="javascript:void(0)">{{linkCaption}}<\/a>  <\/div>',link:function(t,i,r){function o(n,i,r){if(isNaN(i))return n;if(i<=0)return"";if(n&&n.length>=i){if(n=n.substring(0,i),r)while(n.charAt(n.length-1)==" ")n=n.substr(0,n.length-1);else{var u=n.lastIndexOf(" ");u!==-1&&(n=n.substr(0,u))}return t.showExpandLink=!0,n+"..."}return t.showExpandLink=!1,n}var f=angular.isDefined(r.moreText)?r.moreText:n.moreText,e=angular.isDefined(r.lessText)?r.lessText:n.lessText,u=angular.isDefined(r.displayTertiaryLink)?r.displayTertiaryLink==="true":n.displayTertiaryLink;t.isExpanded=!1;t.$watch("isExpanded",function(n){n?(t.text=t.input,t.linkCaption=e,t.showTertiaryLink=u&&!0):(t.text=o(t.input,t.chars,t.breakOnWord),t.linkCaption=f,t.showTertiaryLink=u&&!1)});t.$watch("input",function(n){n&&n.length<=t.chars&&(t.showTertiaryLink=!1)})}}}]);angular.module("shopAngularUI").directive("scrollSpy",function(n,t){return{restrict:"AC",link:function(n,i,r){var u=parseInt(r.scrollOffset,10);u||(u=10);i.scrollspy({target:"#navbar ul.nav-tabs li",offset:10});i.affix({offset:{top:i.offset().top}});n.$watch(r.scrollSpy,function(){t(function(){angular.element(document).find("body").scrollspy("refresh")},1)},!0)}}});angular.module("shopAngularUI").directive("scrollSpyRefresh",["$timeout",function(n){return function(t,i,r){t.$watch(r.scrollSpyRefresh,function(){n(function(){angular.element(document).find("body").scrollspy("refresh")},1)},!0)}}]);angular.module("shopAngularUI").directive("scrollTo",["$window","$location","$stateParams",function(n){return{restrict:"AC",compile:function(){function t(t){t||n.scrollTo(0,0);var r=document.getElementById(t),i="#"+t;$("html, body").animate({scrollTop:$(i).offset().top+0},0)}return function(n,i,r){i.on("click",function(n){n.preventDefault();t(r.scrollTo)})}}}}]);angular.module("shopAngularUI").directive("scrollToElementBottom",["$window","$location","$stateParams",function(n){return{restrict:"AC",compile:function(){function t(t){t||n.scrollTo(0,0);var r=document.getElementById(t),i="#"+t;$("html, body").animate({scrollTop:$(i).offset().top+$(i).height()},0)}return function(n,i,r){i.on("click",function(n){n.preventDefault();t(r.scrollToElementBottom)})}}}}]);angular.module("shopAngularUI").directive("preventDefault",function(){return function(n,t){jQuery(t).click(function(n){n.preventDefault()})}});angular.module("shopAngularUI").directive("removeStyle",function(){return function(n,t,i){n.$watch(i.removeStyle,function(n){n&&t.removeAttr("style")})}});angular.module("shopAngularUI").directive("addCssClass",function(){return function(n,t,i){n.$watch(i.addCssClass,function(n){n?t.addClass(i.css):t.removeClass(i.css)})}});angular.module("shopAngularUI").directive("whenScrolled",function(){return{restrict:"EA",link:function(n,t,i){var r=t[0],u=function(){r.scrollTop+r.offsetHeight>=r.scrollHeight&&n.$apply(i.whenScrolled)};angular.element(window).bind("scroll",u)}}});angular.module("shopAngularUI").directive("ngAddClass",function(){return{restrict:"A",link:function(n,t){$(t).on("click",function(n){n.preventDefault();$($(t).data("open")).addClass("in")})}}});angular.module("shopAngularUI").directive("affixContainer",function(){return{restrict:"EA",link:function(n,t,i){var r=function(){var r=t.height(),u=$(i.topContainer).offset().top,f=$(i.bottomContainer).offset().top+50,n=$(document).scrollTop()+70;n<=u?n=u:n+r+1>=f&&(n=f-r);t.offset({top:n})};angular.element(window).bind("scroll",r)}}});angular.module("shopAngularUI").directive("toggleClass",function(){return{restrict:"EA",link:function(n,t,i){t.on("click",function(n){n.preventDefault();i.targetEle&&$(i.targetEle).toggleClass(i.targetEleClass);i.srcEleClass&&t.toggleClass(i.srcEleClass)})}}});angular.module("shopAngularUI").directive("toggleText",function(){return{restrict:"EA",link:function(n,t,i){t.on("click",function(n){n.preventDefault();var r=t.text();r==i.toggleText?t.text(i.originalText):t.text(i.toggleText)})}}});angular.module("shopAngularUI").directive("refreshScrollSpyOnAccordionToggle",["$timeout",function(n){return{restrict:"EA",link:function(t,i,r){t.$watch(r.refreshScrollSpyOnAccordionToggle,function(){n(function(){i.on("hidden.bs.collapse shown.bs.collapse",function(){angular.element(document).find("body").scrollspy("refresh")})},1)},!0)}}}]);angular.module("shopAngularUI").directive("removeClass",function(){return{restrict:"EA",link:function(n,t,i){t.on("click",function(n){n.preventDefault();$(i.targetEle).removeClass(i.removeClass)})}}});angular.module("shopAngularUI").directive("compile",["$compile",function(n){return function(t,i,r){t.$watch(function(n){return n.$eval(r.compile)},function(r){i.html(r);n(i.contents())(t)})}}]);angular.module("shopAngularUI").directive("carouselControl",function(){return{transclude:!0,restrict:"EA",replace:!0,template:'<div class="carousel-container top-padding-10 carousel">      <div class="scroll-control text-right col-sm-12 col-md-12 bottom-offset-mini">          {{item.ViewingLabel.Value}} <span class="first-visible-item"><\/span> - <span class="last-visible-item"><\/span> {{item.OfLabel.Value}} <span class="total-items"><\/span>          <button class="btn btn-tertiary carousel-prev" data-ng-click="prev($event)">{{item.PreviousLabel.Value}}<\/button>          <button class="btn btn-tertiary carousel-next" data-ng-click="next($event)">{{item.NextLabel.Value}}<\/button>      <\/div>      <div class="horizontal-scroll-container">          <div class="horizontal-scroll item" ng-transclude data-ng-swipe-left="swipeLeft($event)" data-ng-swipe-right="swipeRight($event)">            <\/div>      <\/div>  <\/div>',link:function(n){function c(){new Date-h<s?setTimeout(c,s):(o=!1,n.initCarousel())}function t(n){var t=new jQuery.Deferred;n.find(".slide").each(function(){var i=$(this),r=i.position(),e=i.width(),u=n.position(),f=n.width();return r.left<0||r.left>f+u.left||e+r.left>f+u.left?i.addClass("overflowed-ele"):i.removeClass("overflowed-ele"),t.resolve("hurray"),t.promise()})}function r(n){n.attr("disabled","disabled")}function u(n){n.removeAttr("disabled")}function l(n){return n.width()*2+n.scrollLeft()>=n[0].scrollWidth}function a(n){return n.scrollLeft()-n.width()<=0}function f(n){return n.length>0?n[0].scrollWidth-n.scrollLeft()<=n.outerWidth():!1}function e(n){return n.scrollLeft()==0}function i(n,t){var i=n.find(".slide").not(".overflowed-ele"),r=i.first().data("item-index"),u=i.last().data("item-index");t.siblings(".first-visible-item").text(r);t.siblings(".last-visible-item").text(u);t.siblings(".total-items").text(n.find(".slide").length)}n.module&&(n.item=n.$parent.DataModel);n.next=function(t){var i=angular.element(t.currentTarget);n.scrollToNextItems(i)};n.prev=function(t){var i=angular.element(t.currentTarget);n.scrollToPreviousItems(i)};n.swipeLeft=function(t){var i=angular.element(t.currentTarget).closest(".horizontal-scroll-container").siblings(".scroll-control"),r=i.find(".carousel-next");n.scrollToNextItems(r)};n.swipeRight=function(t){var i=angular.element(t.currentTarget).closest(".horizontal-scroll-container").siblings(".scroll-control"),r=i.find(".carousel-prev");n.scrollToPreviousItems(r)};n.scrollToNextItems=function(n){var f=n.closest(".scroll-control").siblings(".horizontal-scroll-container").find(".horizontal-scroll");f.animate({scrollLeft:f.scrollLeft()+f.width()},500,function(){$.when(t(f)).then(function(){i(f,n);u(n.siblings(".carousel-prev"));l(f)&&r(n)})})};n.scrollToPreviousItems=function(n){var f=n.closest(".scroll-control").siblings(".horizontal-scroll-container").find(".horizontal-scroll");f.animate({scrollLeft:f.scrollLeft()-f.width()},500,function(){$.when(t(f)).then(function(){i(f,n);u(n.siblings(".carousel-next"));a(f)&&r(n)})})};n.initCarousel=function(){var n=$(".carousel-container .horizontal-scroll");n.each(function(){var n=$(this),o=n.closest(".horizontal-scroll-container").siblings(".scroll-control");e(n)&&f(n)?$.when(t(n)).then(function(){var t=o.find(".carousel-prev");i(n,t);o.hide()}):e(n)&&!f(n)?$.when(t(n)).then(function(){var t=o.find(".carousel-prev");i(n,t);r(t);o.show()}):!e(n)&&f(n)?$.when(t(n)).then(function(){var t=o.find(".carousel-next");i(n,t);r(t);o.show()}):e(n)||f(n)||$.when(t(n)).then(function(){var t=o.find(".carousel-next"),r=o.find(".carousel-prev");i(n,t);u(t);u(r);o.show()})})};angular.element(window).on("load",function(){n.initCarousel()});angular.element(document).on("hidden.bs.collapse shown.bs.collapse",".carousel-container-accordion",function(){n.initCarousel()});var h=new Date(1,1,2e3,12,00,00),o=!1,s=200;angular.element(window).resize(function(){h=new Date;o===!1&&(o=!0,setTimeout(c,s))})}}}),function(n,t,i){"use strict";function c(n,t){return u(new(u(function(){},{prototype:n})),t)}function y(n){return f(arguments,function(t){t!==n&&f(t,function(t,i){n.hasOwnProperty(i)||(n[i]=t)})}),n}function it(n,t){var r=[],i;for(i in n.path)if(n.path[i]!==""){if(!t.path[i])break;r.push(n.path[i])}return r}function p(n,t,i,r){var o=it(i,r),f,h={},c=[],s,e;for(s in o)if(o[s].params&&o[s].params.length){f=o[s].params;for(e in f)c.indexOf(f[e])>=0||(c.push(f[e]),h[f[e]]=n[f[e]])}return u({},h,t)}function w(n,t){var s=1,c=2,o={},l=[],a=o,v=u(n.when(o),{$$promises:o,$$values:o});this.study=function(o){function k(n,i){if(b[i]!==c){if(w.push(i),b[i]===s){w.splice(0,w.indexOf(i));throw new Error("Cyclic dependency: "+w.join(" -> "));}if(b[i]=s,e(n))p.push(i,[function(){return t.get(i)}],l);else{var r=t.annotate(n);f(r,function(n){n!==i&&o.hasOwnProperty(n)&&k(o[n],n)});p.push(i,n,r)}w.pop();b[i]=c}}function d(n){return h(n)&&n.then&&n.$$promises}if(!h(o))throw new Error("'invocables' must be an object");var p=[],w=[],b={};return f(o,k),o=w=b=null,function(f,e,o){function b(){--it||(nt||y(c,e.$$values),s.$$values=c,s.$$promises=!0,k.resolve(c))}function g(n){s.$$failure=n;k.reject(n)}function rt(i,u,e){function a(n){h.reject(n);g(n)}function v(){if(!r(s.$$failure))try{h.resolve(t.invoke(u,o,c));h.promise.then(function(n){c[i]=n;b()},a)}catch(n){a(n)}}var h=n.defer(),l=0;e.forEach(function(n){w.hasOwnProperty(n)&&!f.hasOwnProperty(n)&&(l++,w[n].then(function(t){c[n]=t;--l||v()},a))});l||v();w[i]=h.promise}var l,tt;if(d(f)&&o===i&&(o=e,e=f,f=null),f){if(!h(f))throw new Error("'locals' must be an object");}else f=a;if(e){if(!d(e))throw new Error("'parent' must be a promise returned by $resolve.resolve()");}else e=v;var k=n.defer(),s=k.promise,w=s.$$promises={},c=u({},f),it=1+p.length/3,nt=!1;if(r(e.$$failure))return g(e.$$failure),s;for(e.$$values?(nt=y(c,e.$$values),b()):(u(w,e.$$promises),e.then(b,g)),l=0,tt=p.length;l<tt;l+=3)f.hasOwnProperty(p[l])?b():rt(p[l],p[l+1],p[l+2]);return s}};this.resolve=function(n,t,i,r){return this.study(n)(t,i,r)}}function b(n,t,i){this.fromConfig=function(n,t,i){return r(n.template)?this.fromString(n.template,t):r(n.templateUrl)?this.fromUrl(n.templateUrl,t):r(n.templateProvider)?this.fromProvider(n.templateProvider,t,i):null};this.fromString=function(n,t){return o(n)?n(t):n};this.fromUrl=function(i,r){return o(i)&&(i=i(r)),i==null?null:n.get(i,{cache:t}).then(function(n){return n.data})};this.fromProvider=function(n,t,r){return i.invoke(n,null,r||{params:t})}}function s(n){function c(t){if(!/^\w+(-+\w+)*$/.test(t))throw new Error("Invalid parameter name '"+t+"' in pattern '"+n+"'");if(h[t])throw new Error("Duplicate parameter name '"+t+"' in pattern '"+n+"'");h[t]=!0;p.push(t)}function l(n){return n.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&")}var s=/([:*])(\w+)|\{(\w+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,h={},e="^",u=0,i,o=this.segments=[],p=this.params=[],a,v,t,r,y;for(this.source=n;i=s.exec(n);){if(a=i[2]||i[3],v=i[4]||(i[1]=="*"?".*":"[^/]*"),t=n.substring(u,i.index),t.indexOf("?")>=0)break;e+=l(t)+"("+v+")";c(a);o.push(t);u=s.lastIndex}t=n.substring(u);r=t.indexOf("?");r>=0?(y=this.sourceSearch=t.substring(r),t=t.substring(0,r),this.sourcePath=n.substring(0,u+r),f(y.substring(1).split(/[&?]/),c)):(this.sourcePath=n,this.sourceSearch="");e+=l(t)+"$";o.push(t);this.regexp=new RegExp(e);this.prefix=o[0]}function rt(){this.compile=function(n){return new s(n)};this.isMatcher=function(n){return h(n)&&o(n.exec)&&o(n.format)&&o(n.concat)};this.$get=function(){return this}}function k(n){function s(n){var t=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(n.source);return t!=null?t[1].replace(/\\(.)/g,"$1"):""}function h(n,t){return n.replace(/\$(\$|\d{1,2})/,function(n,i){return t[i==="$"?0:Number(i)]})}function f(n,t,i){if(!i)return!1;var u=n.invoke(t,t,{$match:i});return r(u)?u:!0}var t=[],i=null;this.rule=function(n){if(!o(n))throw new Error("'rule' must be a function");return t.push(n),this};this.otherwise=function(n){if(e(n)){var t=n;n=function(){return t}}else if(!o(n))throw new Error("'rule' must be a function");return i=n,this};this.when=function(t,i){var r,c=e(i),y,l,v;if(e(t)&&(t=n.compile(t)),!c&&!o(i)&&!a(i))throw new Error("invalid 'handler' in when()");y={matcher:function(t,i){return c&&(r=n.compile(i),i=["$match",function(n){return r.format(n)}]),u(function(n,r){return f(n,i,t.exec(r.path(),r.search()))},{prefix:e(t.prefix)?t.prefix:""})},regex:function(n,t){if(n.global||n.sticky)throw new Error("when() RegExp must not be global or sticky");return c&&(r=t,t=["$match",function(n){return h(r,n)}]),u(function(i,r){return f(i,t,n.exec(r.path()))},{prefix:s(n)})}};l={matcher:n.isMatcher(t),regex:t instanceof RegExp};for(v in l)if(l[v])return this.rule(y[v](t,i));throw new Error("invalid 'what' in when()");};this.$get=["$location","$rootScope","$injector",function(n,r,u){function f(){function f(t){var i=t(u,n);return i?(e(i)&&n.replace().url(i),!0):!1}for(var o=t.length,r=0;r<o;r++)if(f(t[r]))return;i&&f(i)}return r.$on("$locationChangeSuccess",f),{}}]}function d(n,o,s){function w(n,t){var h=e(n),r=h?n:n.name,c=r.indexOf(".")===0||r.indexOf("^")===0,s;if(c){if(!t)throw new Error("No reference point given for path '"+r+"'");for(var u=r.split("."),f=0,l=u.length,o=t;f<l;f++){if(u[f]===""&&f===0){o=t;continue}if(u[f]==="^"){if(!o.parent)throw new Error("Path '"+r+"' not valid for state '"+t.name+"'");o=o.parent;continue}break}u=u.slice(f).join(".");r=o.name+(o.name&&u?".":"")+u}return(s=b[r],s&&(h||!h&&(s===n||s.self===n)))?s:i}function d(t){var i,r;if(t=c(t,{self:t,resolve:t.resolve||{},toString:function(){return this.name}}),i=t.name,!e(i)||i.indexOf("@")>=0)throw new Error("State must have a valid name");if(b[i])throw new Error("State '"+i+"'' is already defined");for(r in k)t[r]=k[r](t);return b[i]=t,!t.abstract&&t.url&&n.when(t.url,["$match","$stateParams",function(n,i){l.$current.navigable==t&&tt(n,i)||l.transitionTo(t,n,!1)}]),t}function it(n,t){return h(n)?t=n:t.name=n,d(t),this}function g(n,t,e,o,h,a,b){function g(n,i,r,u,o){var l=r?i:rt(n.params,i),c={$stateParams:l},s;return o.resolve=h.resolve(n.resolve,c,o.resolve,n),s=[o.resolve.then(function(n){o.globals=n})],u&&s.push(u),f(n.views,function(t,i){var r=t.resolve&&t.resolve!==n.resolve?t.resolve:{};r.$template=[function(){return e.load(i,{view:t,locals:c,params:l,notify:!1})||""}];s.push(h.resolve(r,c,o.resolve,n).then(function(r){r.$$controller=t.controller;r.$$state=n;o[i]=r}))}),t.all(s).then(function(){return o})}var k=t.reject(new Error("transition superseded")),d=t.reject(new Error("transition prevented"));return y.locals={resolve:null,globals:{$stateParams:{}}},l={params:{},current:y.self,$current:y,transition:null},l.go=function(n,t,i){return this.transitionTo(n,t,u({inherit:!0,relative:l.$current},i))},l.transitionTo=function(i,f,e){var it,at,st,et,lt;if(r(e)||(e=e===!0||e===!1?{location:e}:{}),f=f||{},e=u({location:!0,inherit:!1,relative:null},e),it=w(i,e.relative),!r(it))throw new Error("No such state "+it);if(it.abstract)throw new Error("Cannot transition to abstract state '"+i+"'");e.inherit&&(f=p(a,f||{},l.$current,it));i=it;for(var rt=i.path,ut=l.$current,ot=l.params,ht=ut.path,ft=y.locals,ct=[],s=0,h=rt[s];h&&h===ht[s]&&tt(f,ot,h.ownParams);s++,h=rt[s])ft=ct[s]=h.locals;if(i===ut&&ft===ut.locals)return l.transition=null,t.when(l.current);if(f=nt(i.params,f||{}),at=n.$broadcast("$stateChangeStart",i.self,f,ut.self,ot),at.defaultPrevented)return d;for(st=t.when(ft),et=s;et<rt.length;et++,h=rt[et])ft=ct[et]=c(ft),st=g(h,f,h===i,st,ft);return lt=l.transition=st.then(function(){var t,r,u,h;if(l.transition!==lt)return k;for(t=ht.length-1;t>=s;t--)u=ht[t],u.self.onExit&&o.invoke(u.self.onExit,u.self,u.locals.globals),u.locals=null;for(t=s;t<rt.length;t++)r=rt[t],r.locals=ct[t],r.self.onEnter&&o.invoke(r.self.onEnter,r.self,r.locals.globals);return l.$current=i,l.current=i.self,l.params=f,v(l.params,a),l.transition=null,h=i.navigable,e.location&&h&&b.url(h.url.format(h.locals.globals.$stateParams)),n.$broadcast("$stateChangeSuccess",i.self,f,ut.self,ot),l.current},function(r){return l.transition!==lt?k:(l.transition=null,n.$broadcast("$stateChangeError",i.self,f,ut.self,ot,r),t.reject(r))})},l.is=function(n){var t=w(n);return r(t)?l.$current===t:i},l.includes=function(n){var t=w(n);return r(t)?r(l.$current.includes[t.name]):i},l.href=function(n,t,i){var f,e,o;return(i=u({lossy:!0,inherit:!1,relative:l.$current},i||{}),f=w(n,i.relative),!r(f))?null:(t=p(a,t||{},l.$current,f),e=f&&i.lossy?f.navigable:f,o=e&&e.url?e.url.format(nt(f.params,t||{})):null,!s.html5Mode()&&o?"#"+o:o)},l.get=function(n){var t=w(n);return t&&t.self?t.self:null},l}function nt(n,t){var i={};return f(n,function(n){var r=t[n];i[n]=r!=null?String(r):null}),i}function tt(n,t,i){var f,r,u;if(!i){i=[];for(f in n)i.push(f)}for(r=0;r<i.length;r++)if(u=i[r],n[u]!=t[u])return!1;return!0}function rt(n,t){var i={};return f(n,function(n){i[n]=t[n]}),i}var y,b={},l,k={parent:function(n){if(r(n.parent)&&n.parent)return w(n.parent);var t=/^(.+)\.[^.]+$/.exec(n.name);return t?w(t[1]):y},data:function(n){return n.parent&&n.parent.data&&(n.data=n.self.data=t.extend({},n.parent.data,n.data)),n.data},url:function(n){var t=n.url;if(e(t))return t.charAt(0)=="^"?o.compile(t.substring(1)):(n.parent.navigable||y).url.concat(t);if(o.isMatcher(t)||t==null)return t;throw new Error("Invalid url '"+t+"' in state '"+n+"'");},navigable:function(n){return n.url?n:n.parent?n.parent.navigable:null},params:function(n){if(!n.params)return n.url?n.url.parameters():n.parent.params;if(!a(n.params))throw new Error("Invalid params in state '"+n+"'");if(n.url)throw new Error("Both params and url specicified in state '"+n+"'");return n.params},views:function(n){var t={};return f(r(n.views)?n.views:{"":n},function(i,r){r.indexOf("@")<0&&(r+="@"+n.parent.name);t[r]=i}),t},ownParams:function(n){var t,i;return n.parent?(t={},f(n.params,function(n){t[n]=!0}),f(n.parent.params,function(i){if(!t[i])throw new Error("Missing required parameter '"+i+"' in state '"+n.name+"'");t[i]=!1}),i=[],f(t,function(n,t){n&&i.push(t)}),i):n.params},path:function(n){return n.parent?n.parent.path.concat(n):[]},includes:function(n){var t=n.parent?u({},n.parent.includes):{};return t[n.name]=!0,t}};y=d({name:"",url:"^",views:null,abstract:!0});y.navigable=null;this.state=it;this.$get=g;g.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$location","$urlRouter"]}function g(){function n(n,t){return{load:function(i,r){var f;return r=u({template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}},r),r.view&&(f=t.fromConfig(r.view,r.params,r.locals)),f&&r.notify&&n.$broadcast("$viewContentLoading",r),f}}}this.$get=n;n.$inject=["$rootScope","$templateFactory"]}function l(n,i,u,f,e){var s,o,h;try{s=f.get("$animator")}catch(c){}return o=!1,h={restrict:"ECA",terminal:!0,transclude:!0,compile:function(f,c,l){return function(f,c,a){function nt(t){var r=n.$current&&n.$current.locals[y],o,s,h;if(r!==b){if(o=tt(p&&t),o.remove(c),v&&(v.$destroy(),v=null),!r)return b=null,w.state=null,o.restore(l(f),c);b=r;w.state=r.$$state;s=i(o.populate(r.$template,c));v=f.$new();r.$$controller&&(r.$scope=v,h=u(r.$$controller,r),c.children().data("$ngControllerController",h));s(v);v.$emit("$viewContentLoaded");g&&v.$eval(g);e()}}var v,b,y=a[h.name]||a.name||"",g=a.onload||"",p=r(s)&&s(f,a),tt=function(n){return{"true":{remove:function(n){p.leave(n.contents(),n)},restore:function(n,t){p.enter(n,t)},populate:function(n,i){var r=t.element("<div><\/div>").html(n).contents();return p.enter(r,i),r}},"false":{remove:function(n){n.html("")},restore:function(n,t){t.append(n)},populate:function(n,t){return t.html(n),t.contents()}}}[n.toString()]},k,w,d;c.append(l(f));k=c.parent().inheritedData("$uiView");y.indexOf("@")<0&&(y=y+"@"+(k?k.state.name:""));w={name:y,state:null};c.data("$uiView",w);d=function(){if(!o){o=!0;try{nt(!0)}catch(n){o=!1;throw n;}o=!1}};f.$on("$stateChangeSuccess",d);f.$on("$viewContentLoading",d);nt(!1)}}},h}function ut(n){var t=n.match(/^([^(]+?)\s*(\((.*)\))?$/);if(!t||t.length!==4)throw new Error("Invalid state ref '"+n+"'");return{state:t[1],paramExpr:t[3]||null}}function nt(n){return{restrict:"A",link:function(t,i,r){var u=ut(r.uiSref),f=null,o=n.$current,h=i[0].nodeName==="FORM",l=h?"action":"href",c=!0,e=i.parent().inheritedData("$uiView"),s;(e&&e.state&&e.state.name&&(o=e.state),s=function(t){if(t&&(f=t),c){var r=n.href(u.state,f,{relative:o});if(!r)return c=!1,!1;i[0][l]=r}},u.paramExpr&&(t.$watch(u.paramExpr,function(n,t){n!==t&&s(n)},!0),f=t.$eval(u.paramExpr)),s(),h)||i.bind("click",function(i){i.which!=1||i.ctrlKey||i.metaKey||i.shiftKey||(n.go(u.state,f,{relative:o}),t.$apply(),i.preventDefault())})}}}function tt(n,t){function u(n){this.locals=n.locals.globals;this.params=this.locals.$stateParams}function s(){this.locals=null;this.params=null}function h(i,f){if(f.redirectTo!=null){var h=f.redirectTo,l;if(e(h))l=h;else if(o(h))l=function(n,t){return h(n,t.path(),t.search())};else throw new Error("Invalid 'redirectTo' in when()");t.when(i,l)}else n.state(c(f,{parent:null,name:"route:"+encodeURIComponent(i),url:i,onEnter:u,onExit:s}));return r.push(f),this}function f(n,t,u){function f(n){return n.name!==""?n:i}var e={routes:r,params:u,current:i};return t.$on("$stateChangeStart",function(n,i,r,u){t.$broadcast("$routeChangeStart",f(i),f(u))}),t.$on("$stateChangeSuccess",function(n,i,r,u){e.current=f(i);t.$broadcast("$routeChangeSuccess",f(i),f(u));v(r,e.params)}),t.$on("$stateChangeError",function(n,i,r,u,e,o){t.$broadcast("$routeChangeError",f(i),f(u),o)}),e}var r=[];u.$inject=["$$state"];this.when=h;this.$get=f;f.$inject=["$state","$rootScope","$routeParams"]}var r=t.isDefined,o=t.isFunction,e=t.isString,h=t.isObject,a=t.isArray,f=t.forEach,u=t.extend,v=t.copy;t.module("ui.router.util",["ng"]);t.module("ui.router.router",["ui.router.util"]);t.module("ui.router.state",["ui.router.router","ui.router.util"]);t.module("ui.router",["ui.router.state"]);t.module("ui.router.compat",["ui.router"]);w.$inject=["$q","$injector"];t.module("ui.router.util").service("$resolve",w);b.$inject=["$http","$templateCache","$injector"];t.module("ui.router.util").service("$templateFactory",b);s.prototype.concat=function(n){return new s(this.sourcePath+n+this.sourceSearch)};s.prototype.toString=function(){return this.source};s.prototype.exec=function(n,t){var u=this.regexp.exec(n);if(!u)return null;var r=this.params,o=r.length,e=this.segments.length-1,f={},i;if(e!==u.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");for(i=0;i<e;i++)f[r[i]]=u[i+1];for(;i<o;i++)f[r[i]]=t[r[i]];return f};s.prototype.parameters=function(){return this.params};s.prototype.format=function(n){var r=this.segments,u=this.params;if(!n)return r.join("");for(var o=r.length-1,s=u.length,f=r[0],e,i,t=0;t<o;t++)i=n[u[t]],i!=null&&(f+=encodeURIComponent(i)),f+=r[t+1];for(;t<s;t++)i=n[u[t]],i!=null&&(f+=(e?"&":"?")+u[t]+"="+encodeURIComponent(i),e=!0);return f};t.module("ui.router.util").provider("$urlMatcherFactory",rt);k.$inject=["$urlMatcherFactoryProvider"];t.module("ui.router.router").provider("$urlRouter",k);d.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider","$locationProvider"];t.module("ui.router.state").value("$stateParams",{}).provider("$state",d);g.$inject=[];t.module("ui.router.state").provider("$view",g);l.$inject=["$state","$compile","$controller","$injector","$anchorScroll"];t.module("ui.router.state").directive("uiView",l);nt.$inject=["$state"];t.module("ui.router.state").directive("uiSref",nt);tt.$inject=["$stateProvider","$urlRouterProvider"];t.module("ui.router.compat").provider("$route",tt).directive("ngView",l)}(window,window.angular),function(){"use strict";var i,t,n,r,u,f,e;angular.module("angular-inview",[]).directive("inView",function(){return{restrict:"A",link:function(i,r,u){var f;if(u.inView)return f={element:r,wasInView:!1,offset:0,callback:function(n,t){return t&&(t="'"+t+"'"),i.$apply("$inview="+n+";$inviewpart="+t+";"+u.inView)}},u.inViewOffset!=null&&u.$observe("inViewOffset",function(n){return f.offset=n,t()}),n.push(f),t(),i.$on("$destroy",function(){return e(f)})}}});r=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop};u=function(){var n,t,i;return(n=window.innerHeight,n)?n:(t=document.compatMode,!t&&(typeof $!="undefined"&&$!==null?(i=$.support)!=null?i.boxModel:void 0:void 0)||(n=t==="CSS1Compat"?document.documentElement.clientHeight:document.body.clientHeight),n)};f=function(n){for(var t=0;n;)t+=n.offsetTop,n=n.offsetParent;return t};n=[];e=function(t){return n=n.filter(function(n){return n!==t})};i=function(){var s,p,i,a,w,c,v,y,t,h,e,l,b,o;for(e=r(),h=e+u(),o=[],l=0,b=n.length;l<b;l++)t=n[l],i=f(t.element[0]),p=t.element[0].offsetHeight,s=i+p,a=i>e&&s<h,v=s+t.offset>e&&i<e,y=i-t.offset<h&&s>h,w=a||v||y||i<e&&s>h,w?(c=y&&"top"||v&&"bottom"||"both",t.wasInView&&t.wasInView===c?o.push(void 0):(t.wasInView=c,o.push(t.callback(!0,c)))):!a&&t.wasInView?(t.wasInView=!1,o.push(t.callback(!1))):o.push(void 0);return o};t=function(){var n;return n=null,function(){return n!=null&&clearTimeout(n),n=setTimeout(i,100)}}();angular.element(window).bind("checkInView click ready scroll resize",t)}.call(this),function(n,t){"use strict";function i(n,i,r,u,f){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(e,o,s,h,c){function y(){l&&(l.$destroy(),l=null);a&&(f.leave(a),a=null)}function p(){var s=n.current&&n.current.locals,b=s&&s.$template,k,h,p;b?(k=e.$new(),h=c(k,t.noop),h.html(b),f.enter(h,null,a||o,function(){t.isDefined(v)&&(!v||e.$eval(v))&&i()}),y(),b=r(h.contents()),p=n.current,l=p.scope=k,a=h,p.controller&&(s.$scope=l,s=u(p.controller,s),p.controllerAs&&(l[p.controllerAs]=s),h.data("$ngControllerController",s),h.children().data("$ngControllerController",s)),b(l),l.$emit("$viewContentLoaded"),l.$eval(w)):y()}var l,a,v=s.autoscroll,w=s.onload||"";e.$on("$routeChangeSuccess",p);p()}}}n=t.module("ngRoute",["ng"]).provider("$route",function(){function i(n,i){return t.extend(new(t.extend(function(){},{prototype:n})),i)}function r(n,t){var r=t.caseInsensitiveMatch,i={originalPath:n,regexp:n},u=i.keys=[];return n=n.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?|\*])?/g,function(n,t,i,r){return n="?"===r?r:null,r="*"===r?r:null,u.push({name:i,optional:!!n}),t=t||"",""+(n?"":t)+"(?:"+(n?t:"")+(r&&"(.+?)"||"([^/]+)")+(n||"")+")"+(n||"")}).replace(/([\/$\*])/g,"\\$1"),i.regexp=RegExp("^"+n+"$",r?"i":""),i}var n={};this.when=function(i,u){if(n[i]=t.extend({reloadOnSearch:!0},u,i&&r(i,u)),i){var f="/"==i[i.length-1]?i.substr(0,i.length-1):i+"/";n[f]=t.extend({redirectTo:i},r(f,u))}return this};this.otherwise=function(n){return this.when(null,n),this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(r,u,f,e,o,s,h,c){function v(){var n=y(),i=l.current;n&&i&&n.$$route===i.$$route&&t.equals(n.pathParams,i.pathParams)&&!n.reloadOnSearch&&!a?(i.params=n.params,t.copy(i.params,f),r.$broadcast("$routeUpdate",i)):(n||i)&&(a=!1,r.$broadcast("$routeChangeStart",n,i),(l.current=n)&&n.redirectTo&&(t.isString(n.redirectTo)?u.path(p(n.redirectTo,n.params)).search(n.params).replace():u.url(n.redirectTo(n.pathParams,u.path(),u.search())).replace()),e.when(n).then(function(){if(n){var u=t.extend({},n.resolve),r,i;return t.forEach(u,function(n,i){u[i]=t.isString(n)?o.get(n):o.invoke(n)}),t.isDefined(r=n.template)?t.isFunction(r)&&(r=r(n.params)):t.isDefined(i=n.templateUrl)&&(t.isFunction(i)&&(i=i(n.params)),i=c.getTrustedResourceUrl(i),t.isDefined(i)&&(n.loadedTemplateUrl=i,r=s.get(i,{cache:h}).then(function(n){return n.data}))),t.isDefined(r)&&(u.$template=r),e.all(u)}}).then(function(u){n==l.current&&(n&&(n.locals=u,t.copy(n.params,f)),r.$broadcast("$routeChangeSuccess",n,i))},function(t){n==l.current&&r.$broadcast("$routeChangeError",n,i,t)}))}function y(){var f,r;return t.forEach(n,function(n){var e,o,h,s,a,c,l;if(e=!r){if(o=u.path(),e=n.keys,h={},n.regexp)if(o=n.regexp.exec(o)){for(s=1,a=o.length;s<a;++s)c=e[s-1],l="string"==typeof o[s]?decodeURIComponent(o[s]):o[s],c&&l&&(h[c.name]=l);e=h}else e=null;else e=null;e=f=e}e&&(r=i(n,{params:t.extend({},u.search(),f),pathParams:f}),r.$$route=n)}),r||n[null]&&i(n[null],{params:{},pathParams:{}})}function p(n,i){var r=[];return t.forEach((n||"").split(":"),function(n,t){if(0===t)r.push(n);else{var u=n.match(/(\w+)(.*)/),f=u[1];r.push(i[f]);r.push(u[2]||"");delete i[f]}}),r.join("")}var a=!1,l={routes:n,reload:function(){a=!0;r.$evalAsync(v)}};return r.$on("$locationChangeSuccess",v),l}]});n.provider("$routeParams",function(){this.$get=function(){return{}}});n.directive("ngView",i);i.$inject=["$route","$anchorScroll","$compile","$controller","$animate"]}(window,window.angular);shopApp=angular.module("shop",["once","ngTouch","ngRoute","ui.router","ui.bootstrap","shopAngularUI","ngResource","ngSanitize","angular-inview","ngCookies"]);shopApp.service("createDataModelService",function(){this.InitScope=function(n,t,i){n.DataModel=i.data}});shopApp.factory("httpGetService",["$http",function(n){return{getData:function(t){return n({url:t,method:"GET"})}}}]);shopApp.run(["$route","$rootScope","$location",function(n,t,i){var r=i.path;i.path=function(u,f){if(f===undefined&&(f=!0),f===!1)var e=n.current,o=t.$on("$locationChangeSuccess",function(){n.current=e;o()});return r.apply(i,[u])}}]),function(n){n.flexslider=function(t,i){var r=n(t);r.vars=n.extend({},n.flexslider.defaults,i);var f=r.vars.namespace,v=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,y=("ontouchstart"in window||v||window.DocumentTouch&&document instanceof DocumentTouch)&&r.vars.touch,a="click touchend MSPointerUp",s="",p,h=r.vars.direction==="vertical",o=r.vars.reverse,e=r.vars.itemWidth>0,c=r.vars.animation==="fade",l=r.vars.asNavFor!=="",u={},w=!0;n.data(t,"flexslider",r);u={init:function(){r.animating=!1;r.currentSlide=parseInt(r.vars.startAt?r.vars.startAt:0);isNaN(r.currentSlide)&&(r.currentSlide=0);r.animatingTo=r.currentSlide;r.atEnd=r.currentSlide===0||r.currentSlide===r.last;r.containerSelector=r.vars.selector.substr(0,r.vars.selector.search(" "));r.slides=n(r.vars.selector,r);r.container=n(r.containerSelector,r);r.count=r.slides.length;r.syncExists=n(r.vars.sync).length>0;r.vars.animation==="slide"&&(r.vars.animation="swing");r.prop=h?"top":"marginLeft";r.args={};r.manualPause=!1;r.stopped=!1;r.started=!1;r.startTimeout=null;r.transitions=!r.vars.video&&!c&&r.vars.useCSS&&function(){var i=document.createElement("div"),n=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"],t;for(t in n)if(i.style[n[t]]!==undefined)return r.pfx=n[t].replace("Perspective","").toLowerCase(),r.prop="-"+r.pfx+"-transform",!0;return!1}();r.vars.controlsContainer!==""&&(r.controlsContainer=n(r.vars.controlsContainer).length>0&&n(r.vars.controlsContainer));r.vars.manualControls!==""&&(r.manualControls=n(r.vars.manualControls).length>0&&n(r.vars.manualControls));r.vars.randomize&&(r.slides.sort(function(){return Math.round(Math.random())-.5}),r.container.empty().append(r.slides));r.doMath();r.setup("init");r.vars.controlNav&&u.controlNav.setup();r.vars.directionNav&&u.directionNav.setup();r.vars.keyboard&&(n(r.containerSelector).length===1||r.vars.multipleKeyboard)&&n(document).bind("keyup",function(n){var t=n.keyCode,i;r.animating||t!==39&&t!==37||(i=t===39?r.getTarget("next"):t===37?r.getTarget("prev"):!1,r.flexAnimate(i,r.vars.pauseOnAction))});r.vars.mousewheel&&r.bind("mousewheel",function(n,t){n.preventDefault();var i=t<0?r.getTarget("next"):r.getTarget("prev");r.flexAnimate(i,r.vars.pauseOnAction)});r.vars.pausePlay&&u.pausePlay.setup();r.vars.slideshow&&r.vars.pauseInvisible&&u.pauseInvisible.init();r.vars.slideshow&&(r.vars.pauseOnHover&&r.hover(function(){r.manualPlay||r.manualPause||r.pause()},function(){r.manualPause||r.manualPlay||r.stopped||r.play()}),r.vars.pauseInvisible&&u.pauseInvisible.isHidden()||(r.vars.initDelay>0?r.startTimeout=setTimeout(r.play,r.vars.initDelay):r.play()));l&&u.asNav.setup();y&&r.vars.touch&&u.touch();(!c||c&&r.vars.smoothHeight)&&n(window).bind("resize orientationchange focus",u.resize);r.find("img").attr("draggable","false");setTimeout(function(){r.vars.start(r)},200)},asNav:{setup:function(){r.asNav=!0;r.animatingTo=Math.floor(r.currentSlide/r.move);r.currentItem=r.currentSlide;r.slides.removeClass(f+"active-slide").eq(r.currentItem).addClass(f+"active-slide");v?(t._slider=r,r.slides.each(function(){var t=this;t._gesture=new MSGesture;t._gesture.target=t;t.addEventListener("MSPointerDown",function(n){n.preventDefault();n.currentTarget._gesture&&n.currentTarget._gesture.addPointer(n.pointerId)},!1);t.addEventListener("MSGestureTap",function(t){t.preventDefault();var i=n(this),u=i.index();n(r.vars.asNavFor).data("flexslider").animating||i.hasClass("active")||(r.direction=r.currentItem<u?"next":"prev",r.flexAnimate(u,r.vars.pauseOnAction,!1,!0,!0))})})):r.slides.click(function(t){t.preventDefault();var i=n(this),u=i.index(),e=i.offset().left-n(r).scrollLeft();e<=0&&i.hasClass(f+"active-slide")?r.flexAnimate(r.getTarget("prev"),!0):n(r.vars.asNavFor).data("flexslider").animating||i.hasClass(f+"active-slide")||(r.direction=r.currentItem<u?"next":"prev",r.flexAnimate(u,r.vars.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){r.manualControls?u.controlNav.setupManual():u.controlNav.setupPaging()},setupPaging:function(){var c=r.vars.controlNav==="thumbnails"?"control-thumbs":"control-paging",h=1,e,o,t,i;if(r.controlNavScaffold=n('<ol class="'+f+"control-nav "+f+c+'"><\/ol>'),r.pagingCount>1)for(t=0;t<r.pagingCount;t++)o=r.slides.eq(t),e=r.vars.controlNav==="thumbnails"?'<img src="'+o.attr("data-thumb")+'"/>':"<a>"+h+"<\/a>","thumbnails"===r.vars.controlNav&&!0===r.vars.thumbCaptions&&(i=o.attr("data-thumbcaption"),""!=i&&undefined!=i&&(e+='<span class="'+f+'caption">'+i+"<\/span>")),r.controlNavScaffold.append("<li>"+e+"<\/li>"),h++;r.controlsContainer?n(r.controlsContainer).append(r.controlNavScaffold):r.append(r.controlNavScaffold);u.controlNav.set();u.controlNav.active();r.controlNavScaffold.delegate("a, img",a,function(t){if(t.preventDefault(),s===""||s===t.type){var i=n(this),e=r.controlNav.index(i);i.hasClass(f+"active")||(r.direction=e>r.currentSlide?"next":"prev",r.flexAnimate(e,r.vars.pauseOnAction))}s===""&&(s=t.type);u.setToClearWatchedEvent()})},setupManual:function(){r.controlNav=r.manualControls;u.controlNav.active();r.controlNav.bind(a,function(t){if(t.preventDefault(),s===""||s===t.type){var i=n(this),e=r.controlNav.index(i);i.hasClass(f+"active")||(r.direction=e>r.currentSlide?"next":"prev",r.flexAnimate(e,r.vars.pauseOnAction))}s===""&&(s=t.type);u.setToClearWatchedEvent()})},set:function(){var t=r.vars.controlNav==="thumbnails"?"img":"a";r.controlNav=n("."+f+"control-nav li "+t,r.controlsContainer?r.controlsContainer:r)},active:function(){r.controlNav.removeClass(f+"active").eq(r.animatingTo).addClass(f+"active")},update:function(t,i){r.pagingCount>1&&t==="add"?r.controlNavScaffold.append(n("<li><a>"+r.count+"<\/a><\/li>")):r.pagingCount===1?r.controlNavScaffold.find("li").remove():r.controlNav.eq(i).closest("li").remove();u.controlNav.set();r.pagingCount>1&&r.pagingCount!==r.controlNav.length?r.update(i,t):u.controlNav.active()}},directionNav:{setup:function(){var t=n('<ul class="'+f+'direction-nav"><li><a class="'+f+'prev" href="#">'+r.vars.prevText+'<\/a><\/li><li><a class="'+f+'next" href="#">'+r.vars.nextText+"<\/a><\/li><\/ul>");r.controlsContainer?(n(r.controlsContainer).append(t),r.directionNav=n("."+f+"direction-nav li a",r.controlsContainer)):(r.append(t),r.directionNav=n("."+f+"direction-nav li a",r));u.directionNav.update();r.directionNav.bind(a,function(t){t.preventDefault();var i;(s===""||s===t.type)&&(i=n(this).hasClass(f+"next")?r.getTarget("next"):r.getTarget("prev"),n(this).hasClass(f+"disabled")||r.flexAnimate(i,r.vars.pauseOnAction));s===""&&(s=t.type);u.setToClearWatchedEvent()})},update:function(){var n=f+"disabled";r.pagingCount===1?r.directionNav.addClass(n).attr("tabindex","-1"):r.vars.animationLoop?r.directionNav.removeClass(n).removeAttr("tabindex"):r.animatingTo===0?r.directionNav.removeClass(n).filter("."+f+"prev").addClass(n).attr("tabindex","-1"):r.animatingTo===r.last?r.directionNav.removeClass(n).filter("."+f+"next").addClass(n).attr("tabindex","-1"):r.directionNav.removeClass(n).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=n('<div class="'+f+'pauseplay"><a><\/a><\/div>');r.controlsContainer?(r.controlsContainer.append(t),r.pausePlay=n("."+f+"pauseplay a",r.controlsContainer)):(r.append(t),r.pausePlay=n("."+f+"pauseplay a",r));u.pausePlay.update(r.vars.slideshow?f+"pause":f+"play");r.pausePlay.bind(a,function(t){t.preventDefault();(s===""||s===t.type)&&(n(this).hasClass(f+"pause")?(r.manualPause=!0,r.manualPlay=!1,r.pause()):(r.manualPause=!1,r.manualPlay=!0,r.play()));s===""&&(s=t.type);u.setToClearWatchedEvent()})},update:function(n){n==="play"?r.pausePlay.removeClass(f+"pause").addClass(f+"play").html(r.vars.playText):r.pausePlay.removeClass(f+"play").addClass(f+"pause").html(r.vars.pauseText)}},touch:function(){var p,w,f,u,n,s,l=!1,a=0,y=0,i=0;if(v){t.style.msTouchAction="none";t._gesture=new MSGesture;t._gesture.target=t;t.addEventListener("MSPointerDown",g,!1);t._slider=r;t.addEventListener("MSGestureChange",nt,!1);t.addEventListener("MSGestureEnd",tt,!1);function g(n){n.stopPropagation();r.animating?n.preventDefault():(r.pause(),t._gesture.addPointer(n.pointerId),i=0,u=h?r.h:r.w,s=Number(new Date),f=e&&o&&r.animatingTo===r.last?0:e&&o?r.limit-(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo:e&&r.currentSlide===r.last?r.limit:e?(r.itemW+r.vars.itemMargin)*r.move*r.currentSlide:o?(r.last-r.currentSlide+r.cloneOffset)*u:(r.currentSlide+r.cloneOffset)*u)}function nt(r){var e,o,a;if(r.stopPropagation(),e=r.target._slider,e){if(o=-r.translationX,a=-r.translationY,i=i+(h?a:o),n=i,l=h?Math.abs(i)<Math.abs(-o):Math.abs(i)<Math.abs(-a),r.detail===r.MSGESTURE_FLAG_INERTIA){setImmediate(function(){t._gesture.stop()});return}(!l||Number(new Date)-s>500)&&(r.preventDefault(),!c&&e.transitions&&(e.vars.animationLoop||(n=i/(e.currentSlide===0&&i<0||e.currentSlide===e.last&&i>0?Math.abs(i)/u+2:1)),e.setProps(f+n,"setTouch")))}}function tt(t){var r,e,h;(t.stopPropagation(),r=t.target._slider,r)&&(r.animatingTo!==r.currentSlide||l||n===null||(e=o?-n:n,h=e>0?r.getTarget("next"):r.getTarget("prev"),r.canAdvance(h)&&(Number(new Date)-s<550&&Math.abs(e)>50||Math.abs(e)>u/2)?r.flexAnimate(h,r.vars.pauseOnAction):c||r.flexAnimate(r.currentSlide,r.vars.pauseOnAction,!0)),p=null,w=null,n=null,f=null,i=0)}}else{t.addEventListener("touchstart",d,!1);function d(n){r.animating?n.preventDefault():(window.navigator.msPointerEnabled||n.touches.length===1)&&(r.pause(),u=h?r.h:r.w,s=Number(new Date),a=n.touches[0].pageX,y=n.touches[0].pageY,f=e&&o&&r.animatingTo===r.last?0:e&&o?r.limit-(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo:e&&r.currentSlide===r.last?r.limit:e?(r.itemW+r.vars.itemMargin)*r.move*r.currentSlide:o?(r.last-r.currentSlide+r.cloneOffset)*u:(r.currentSlide+r.cloneOffset)*u,p=h?y:a,w=h?a:y,t.addEventListener("touchmove",b,!1),t.addEventListener("touchend",k,!1))}function b(i){a=i.touches[0].pageX;y=i.touches[0].pageY;n=h?p-y:p-a;l=h?Math.abs(n)<Math.abs(a-w):Math.abs(n)<Math.abs(y-w);!l||Number(new Date)-s>500?(i.preventDefault(),!c&&r.transitions&&(r.vars.animationLoop||(n=n/(r.currentSlide===0&&n<0||r.currentSlide===r.last&&n>0?Math.abs(n)/u+2:1)),r.setProps(f+n,"setTouch"))):t.removeEventListener("touchmove",b,!1)}function k(){if(t.removeEventListener("touchmove",b,!1),r.animatingTo===r.currentSlide&&!l&&!(n===null)){var i=o?-n:n,e=i>0?r.getTarget("next"):r.getTarget("prev");r.canAdvance(e)&&(Number(new Date)-s<550&&Math.abs(i)>50||Math.abs(i)>u/2)?r.flexAnimate(e,r.vars.pauseOnAction):c||r.flexAnimate(r.currentSlide,r.vars.pauseOnAction,!0)}t.removeEventListener("touchend",k,!1);p=null;w=null;n=null;f=null}}},resize:function(){!r.animating&&r.is(":visible")&&(e||r.doMath(),c?u.smoothHeight():e?(r.slides.width(r.computedW),r.update(r.pagingCount),r.setProps()):h?(r.viewport.height(r.h),r.setProps(r.h,"setTotal")):(r.vars.smoothHeight&&u.smoothHeight(),r.newSlides.width(r.computedW),r.setProps(r.computedW,"setTotal")))},smoothHeight:function(n){if(!h||c){var t=c?r:r.viewport;n?t.animate({height:r.slides.eq(r.animatingTo).height()},n):t.height(r.slides.eq(r.animatingTo).height())}},sync:function(t){var i=n(r.vars.sync).data("flexslider"),u=r.animatingTo;switch(t){case"animate":i.flexAnimate(u,r.vars.pauseOnAction,!1,!0);break;case"play":i.playing||i.asNav||i.play();break;case"pause":i.pause()}},pauseInvisible:{visProp:null,init:function(){var t=["webkit","moz","ms","o"],n,i;if("hidden"in document)return"hidden";for(n=0;n<t.length;n++)t[n]+"Hidden"in document&&(u.pauseInvisible.visProp=t[n]+"Hidden");u.pauseInvisible.visProp&&(i=u.pauseInvisible.visProp.replace(/[H|h]idden/,"")+"visibilitychange",document.addEventListener(i,function(){u.pauseInvisible.isHidden()?r.startTimeout?clearTimeout(r.startTimeout):r.pause():r.started?r.play():r.vars.initDelay>0?setTimeout(r.play,r.vars.initDelay):r.play()}))},isHidden:function(){return document[u.pauseInvisible.visProp]||!1}},setToClearWatchedEvent:function(){clearTimeout(p);p=setTimeout(function(){s=""},3e3)}};r.flexAnimate=function(t,i,s,a,v){var w,p,d,b,k;if(r.vars.animationLoop||t===r.currentSlide||(r.direction=t>r.currentSlide?"next":"prev"),l&&r.pagingCount===1&&(r.direction=r.currentItem<t?"next":"prev"),!r.animating&&(r.canAdvance(t,v)||s)&&r.is(":visible")){if(l&&a)if(w=n(r.vars.asNavFor).data("flexslider"),r.atEnd=t===0||t===r.count-1,w.flexAnimate(t,!0,!1,!0,v),r.direction=r.currentItem<t?"next":"prev",w.direction=r.direction,Math.ceil((t+1)/r.visible)-1!==r.currentSlide&&t!==0)r.currentItem=t,r.slides.removeClass(f+"active-slide").eq(t).addClass(f+"active-slide"),t=Math.floor(t/r.visible);else return r.currentItem=t,r.slides.removeClass(f+"active-slide").eq(t).addClass(f+"active-slide"),!1;r.animating=!0;r.animatingTo=t;i&&r.pause();r.vars.before(r);r.syncExists&&!v&&u.sync("animate");r.vars.controlNav&&u.controlNav.active();e||r.slides.removeClass(f+"active-slide").eq(t).addClass(f+"active-slide");r.atEnd=t===0||t===r.last;r.vars.directionNav&&u.directionNav.update();t===r.last&&(r.vars.end(r),r.vars.animationLoop||r.pause());c?y?(r.slides.eq(r.currentSlide).css({opacity:0,zIndex:1}),r.slides.eq(t).css({opacity:1,zIndex:2}),r.wrapup(p)):(r.slides.eq(r.currentSlide).css({zIndex:1}).animate({opacity:0},r.vars.animationSpeed,r.vars.easing),r.slides.eq(t).css({zIndex:2}).animate({opacity:1},r.vars.animationSpeed,r.vars.easing,r.wrapup)):(p=h?r.slides.filter(":first").height():r.computedW,e?(d=r.vars.itemMargin,k=(r.itemW+d)*r.move*r.animatingTo,b=k>r.limit&&r.visible!==1?r.limit:k):b=r.currentSlide===0&&t===r.count-1&&r.vars.animationLoop&&r.direction!=="next"?o?(r.count+r.cloneOffset)*p:0:r.currentSlide===r.last&&t===0&&r.vars.animationLoop&&r.direction!=="prev"?o?0:(r.count+1)*p:o?(r.count-1-t+r.cloneOffset)*p:(t+r.cloneOffset)*p,r.setProps(b,"",r.vars.animationSpeed),r.transitions?(r.vars.animationLoop&&r.atEnd||(r.animating=!1,r.currentSlide=r.animatingTo),r.container.unbind("webkitTransitionEnd transitionend"),r.container.bind("webkitTransitionEnd transitionend",function(){r.wrapup(p)})):r.container.animate(r.args,r.vars.animationSpeed,r.vars.easing,function(){r.wrapup(p)}));r.vars.smoothHeight&&u.smoothHeight(r.vars.animationSpeed)}};r.wrapup=function(n){c||e||(r.currentSlide===0&&r.animatingTo===r.last&&r.vars.animationLoop?r.setProps(n,"jumpEnd"):r.currentSlide===r.last&&r.animatingTo===0&&r.vars.animationLoop&&r.setProps(n,"jumpStart"));r.animating=!1;r.currentSlide=r.animatingTo;r.vars.after(r)};r.animateSlides=function(){!r.animating&&w&&r.flexAnimate(r.getTarget("next"))};r.pause=function(){clearInterval(r.animatedSlides);r.animatedSlides=null;r.playing=!1;r.vars.pausePlay&&u.pausePlay.update("play");r.syncExists&&u.sync("pause")};r.play=function(){r.playing&&clearInterval(r.animatedSlides);r.animatedSlides=r.animatedSlides||setInterval(r.animateSlides,r.vars.slideshowSpeed);r.started=r.playing=!0;r.vars.pausePlay&&u.pausePlay.update("pause");r.syncExists&&u.sync("play")};r.stop=function(){r.pause();r.stopped=!0};r.canAdvance=function(n,t){var i=l?r.pagingCount-1:r.last;return t?!0:l&&r.currentItem===r.count-1&&n===0&&r.direction==="prev"?!0:l&&r.currentItem===0&&n===r.pagingCount-1&&r.direction!=="next"?!1:n===r.currentSlide&&!l?!1:r.vars.animationLoop?!0:r.atEnd&&r.currentSlide===0&&n===i&&r.direction!=="next"?!1:r.atEnd&&r.currentSlide===i&&n===0&&r.direction==="next"?!1:!0};r.getTarget=function(n){return r.direction=n,n==="next"?r.currentSlide===r.last?0:r.currentSlide+1:r.currentSlide===0?r.last:r.currentSlide-1};r.setProps=function(n,t,i){var u=function(){var i=n?n:(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo,u=function(){if(e)return t==="setTouch"?n:o&&r.animatingTo===r.last?0:o?r.limit-(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo:r.animatingTo===r.last?r.limit:i;switch(t){case"setTotal":return o?(r.count-1-r.currentSlide+r.cloneOffset)*n:(r.currentSlide+r.cloneOffset)*n;case"setTouch":return o?n:n;case"jumpEnd":return o?n:r.count*n;case"jumpStart":return o?r.count*n:n;default:return n}}();return u*-1+"px"}();r.transitions&&(u=h?"translate3d(0,"+u+",0)":"translate3d("+u+",0,0)",i=i!==undefined?i/1e3+"s":"0s",r.container.css("-"+r.pfx+"-transition-duration",i));r.args[r.prop]=u;(r.transitions||i===undefined)&&r.container.css(r.args)};r.setup=function(t){if(c)r.slides.css({width:"100%",float:"left",marginRight:"-100%",position:"relative"}),t==="init"&&(y?r.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+r.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(r.currentSlide).css({opacity:1,zIndex:2}):r.slides.css({opacity:0,display:"block",zIndex:1}).eq(r.currentSlide).css({zIndex:2}).animate({opacity:1},r.vars.animationSpeed,r.vars.easing)),r.vars.smoothHeight&&u.smoothHeight();else{var i,s;t==="init"&&(r.viewport=n('<div class="'+f+'viewport"><\/div>').css({overflow:"hidden",position:"relative"}).appendTo(r).append(r.container),r.cloneCount=0,r.cloneOffset=0,o&&(s=n.makeArray(r.slides).reverse(),r.slides=n(s),r.container.empty().append(r.slides)));r.vars.animationLoop&&!e&&(r.cloneCount=2,r.cloneOffset=1,t!=="init"&&r.container.find(".clone").remove(),r.container.append(r.slides.first().clone().addClass("clone").attr("aria-hidden","true")).prepend(r.slides.last().clone().addClass("clone").attr("aria-hidden","true")));r.newSlides=n(r.vars.selector,r);i=o?r.count-1-r.currentSlide+r.cloneOffset:r.currentSlide+r.cloneOffset;h&&!e?(r.container.height((r.count+r.cloneCount)*200+"%").css("position","absolute").width("100%"),setTimeout(function(){r.newSlides.css({display:"block"});r.doMath();r.viewport.height(r.h);r.setProps(i*r.h,"init")},t==="init"?100:0)):(r.container.width((r.count+r.cloneCount)*200+"%"),r.setProps(i*r.computedW,"init"),setTimeout(function(){r.doMath();r.newSlides.css({width:r.computedW,float:"left",display:"block"});r.vars.smoothHeight&&u.smoothHeight()},t==="init"?100:0))}e||r.slides.removeClass(f+"active-slide").eq(r.currentSlide).addClass(f+"active-slide")};r.doMath=function(){var u=r.slides.first(),n=r.vars.itemMargin,t=r.vars.minItems,i=r.vars.maxItems;r.w=r.viewport===undefined?r.width():r.viewport.width();r.h=u.height();r.boxPadding=u.outerWidth()-u.width();e?(r.itemT=r.vars.itemWidth+n,r.minW=t?t*r.itemT:r.w,r.maxW=i?i*r.itemT-n:r.w,r.itemW=r.minW>r.w?(r.w-n*(t-1))/t:r.maxW<r.w?(r.w-n*(i-1))/i:r.vars.itemWidth>r.w?r.w:r.vars.itemWidth,r.visible=Math.floor(r.w/r.itemW),r.move=r.vars.move>0&&r.vars.move<r.visible?r.vars.move:r.visible,r.pagingCount=Math.ceil((r.count-r.visible)/r.move+1),r.last=r.pagingCount-1,r.limit=r.pagingCount===1?0:r.vars.itemWidth>r.w?r.itemW*(r.count-1)+n*(r.count-1):(r.itemW+n)*r.count-r.w-n):(r.itemW=r.w,r.pagingCount=r.count,r.last=r.count-1);r.computedW=r.itemW-r.boxPadding};r.update=function(n,t){r.doMath();e||(n<r.currentSlide?r.currentSlide+=1:n<=r.currentSlide&&n!==0&&(r.currentSlide-=1),r.animatingTo=r.currentSlide);r.vars.controlNav&&!r.manualControls&&(t==="add"&&!e||r.pagingCount>r.controlNav.length?u.controlNav.update("add"):(t==="remove"&&!e||r.pagingCount<r.controlNav.length)&&(e&&r.currentSlide>r.last&&(r.currentSlide-=1,r.animatingTo-=1),u.controlNav.update("remove",r.last)));r.vars.directionNav&&u.directionNav.update()};r.addSlide=function(t,i){var u=n(t);r.count+=1;r.last=r.count-1;h&&o?i!==undefined?r.slides.eq(r.count-i).after(u):r.container.prepend(u):i!==undefined?r.slides.eq(i).before(u):r.container.append(u);r.update(i,"add");r.slides=n(r.vars.selector+":not(.clone)",r);r.setup();r.vars.added(r)};r.removeSlide=function(t){var i=isNaN(t)?r.slides.index(n(t)):t;r.count-=1;r.last=r.count-1;isNaN(t)?n(t,r.slides).remove():h&&o?r.slides.eq(r.last).remove():r.slides.eq(t).remove();r.doMath();r.update(i,"remove");r.slides=n(r.vars.selector+":not(.clone)",r);r.setup();r.vars.removed(r)};u.init()};n(window).blur(function(){focused=!1}).focus(function(){focused=!0});n.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){}};n.fn.flexslider=function(t){if(t===undefined&&(t={}),typeof t=="object")return this.each(function(){var i=n(this),u=t.selector?t.selector:".slides > li",r=i.find(u);r.length===1&&t.allowOneSlide===!0||r.length===0?(r.fadeIn(400),t.start&&t.start(i)):i.data("flexslider")===undefined&&new n.flexslider(this,t)});var i=n(this).data("flexslider");switch(t){case"play":i.play();break;case"pause":i.pause();break;case"stop":i.stop();break;case"next":i.flexAnimate(i.getTarget("next"),!0);break;case"prev":case"previous":i.flexAnimate(i.getTarget("prev"),!0);break;default:typeof t=="number"&&i.flexAnimate(t,!0)}}}(jQuery);SHOP=window.SHOP||{};SHOP.Transactional=SHOP.Transactional||{};SHOP.Transactional.Utils=SHOP.Transactional.Utils||{},function(n){(function(){var t=this;this.Context={$BODY:null};this.Initialize=function(t){var i=function(n){var t;for(t in n)n.hasOwnProperty(t)&&typeof n[t]=="function"&&n[t]()};n(document).ready(function(){i(t)})};String.prototype.format=String.prototype.f=function(){for(var n=this,t=arguments.length;t--;)n=n.replace(new RegExp("\\{"+t+"\\}","gm"),arguments[t]);return n};n.fn.setAllToMaxHeight=function(){return this.height(Math.max.apply(this,n.map(this,function(t){return n(t).height()})))};this.getQueryStringParamVal=function(n){for(var u=window.location.search.substring(1),r=u.split("&"),i,t=0;t<r.length;t++)return i=r[t].split("="),i[0]==n?i[1]:""};this.onload={initialize:function(){t.Context.$BODY=n("body")}};SHOP.Transactional.Utils.Initialize(this.onload)}).call(SHOP.Transactional.Utils)}(jQuery),function(n){function i(n){return typeof n=="object"?n:{top:n,left:n}}var t=n.scrollTo=function(t,i,r){n(window).scrollTo(t,i,r)};t.defaults={axis:"xy",duration:parseFloat(n.fn.jquery)>=1.3?0:1,limit:!0};t.window=function(){return n(window)._scrollable()};n.fn._scrollable=function(){return this.map(function(){var t=this,r=!t.nodeName||n.inArray(t.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1,i;return r?(i=(t.contentWindow||t).document||t.ownerDocument||t,/webkit/i.test(navigator.userAgent)||i.compatMode=="BackCompat"?i.body:i.documentElement):t})};n.fn.scrollTo=function(r,u,f){return typeof u=="object"&&(f=u,u=0),typeof f=="function"&&(f={onAfter:f}),r=="max"&&(r=9e9),f=n.extend({},t.defaults,f),u=u||f.duration,f.queue=f.queue&&f.axis.length>1,f.queue&&(u/=2),f.offset=i(f.offset),f.over=i(f.over),this._scrollable().each(function(){function l(n){h.animate(o,u,f.easing,n&&function(){n.call(this,r,f)})}if(r!=null){var s=this,h=n(s),e=r,c,o={},a=h.is("html,body");switch(typeof e){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(e)){e=i(e);break}if(e=n(e,this),!e.length)return;case"object":(e.is||e.style)&&(c=(e=n(e)).offset())}n.each(f.axis.split(""),function(n,i){var y=i=="x"?"Left":"Top",u=y.toLowerCase(),r="scroll"+y,p=s[r],w=t.max(s,i),v;c?(o[r]=c[u]+(a?0:p-h.offset()[u]),f.margin&&(o[r]-=parseInt(e.css("margin"+y))||0,o[r]-=parseInt(e.css("border"+y+"Width"))||0),o[r]+=f.offset[u]||0,f.over[u]&&(o[r]+=e[i=="x"?"width":"height"]()*f.over[u])):(v=e[u],o[r]=v.slice&&v.slice(-1)=="%"?parseFloat(v)/100*w:v);f.limit&&/^\d+$/.test(o[r])&&(o[r]=o[r]<=0?0:Math.min(o[r],w));!n&&f.queue&&(p!=o[r]&&l(f.onAfterFirst),delete o[r])});l(f.onAfter)}}).end()};t.max=function(t,i){var r=i=="x"?"Width":"Height",u="scroll"+r;if(!n(t).is("html,body"))return t[u]-n(t)[r.toLowerCase()]();var f="client"+r,e=t.ownerDocument.documentElement,o=t.ownerDocument.body;return Math.max(e[u],o[u])-Math.min(e[f],o[f])}}(jQuery);shopApp.config(["$httpProvider",function(n){n.defaults.withCredentials=!0;n.defaults.useXDomain=!0}]);shopApp.factory("addToCartService",["$http","$q","ConfiguratorService",function(n,t,i){return{addConfigItem:function(n,t,r,u,f,e,o){var l=this,s=r!=""?l.createModOverridesList(r):[],h,a,c;return f!=""&&(h=$.isArray(f)?f:l.createModOverridesList(f),h.length>0&&(a={ModuleId:o,OptionOverride:e,SubSelectionOverrides:h},s.push(a))),angular.forEach(i.compositeConfigs,function(n){angular.forEach(s,function(t){if(n.ModuleId===t.ModuleId){var i=s.indexOf(t);s[i]=n}})}),c={ConfigProductSpecs:[{OrderCode:n,ModuleOverrides:s,ItemId:u}]},i.HasConfigSelectionSate()&&s.length===0&&(c={ConfigProductSpecs:[{OrderCode:n,ModuleOverrides:s,ItemId:u,SelectionCode:i.getConfigSelectionSateParameter()}]}),s_dell!=null&&(s_dell.products=";"+n),(u==undefined||u==null||u.length==0)&&(amplify.store("recommendedProduct",{}),amplify.store("recommendedProduct:size",0)),this.addCartItem(c,t)},addSkuItems:function(n,t){var i=[],r;return angular.forEach(n.split(","),function(n){this.push({SnpProductId:n})},i),r={SnpItemDataList:i},s_dell!=null&&(s_dell.products=";"+n),this.addCartItem(r,t)},addCartItem:function(i,r){var f=this,u=t.defer(),e=$(r).text();return $(r).hasClass("btn-ssb")||$(r).hasClass("no-reset")||r.button("loading"),Dell.Metrics.PageMetadata.getOrCreate("waview")!=null&&Dell.Metrics.PageMetadata.getOrCreate("waview").Content.toLowerCase()!="recommendations"&&s_dell!=null&&s_dell.apl!=null&&(s_dell.events=s_dell.apl(s_dell.events,"scAdd",",",2),typeof s_dell.warrantyAndServicesHasChanged!="undefined"&&s_dell.warrantyAndServicesHasChanged.isDirty&&s_dell.warrantyAndServicesHasChanged.defaults!==$(".chooseWarrantyCoverage :radio:checked").val()&&(s_dell.prop65="Service: "+$(".chooseWarrantyCoverage :radio:checked").parent().find("span").text()),$(".chooseWarrantyCoverage").length||$("#warrantyModal input:checked").each(function(){s_dell.prop65+="Service: "+$(this).parent().find("span").text()+"|"}),s_dell.tl(this,"o","Add to Cart")),n.post(serverUrls.apiServiceUrl+"cart/item",i).success(function(n){$(r).hasClass("btn-ssb")||$(r).hasClass("no-reset")||r.button("reset");amplify.store("cartItems",n);f.setUDORevenue(n.CartSubTotal);u.resolve({status:!0})}).error(function(n){var t,i;$('[data-ng-controller="RecommendedMainController"]').size()>0?u.resolve({status:!1,message:"Error has occured"}):(r.button("reset"),t=n.Message,n!=undefined&&n.Message||(t="An error occurred while adding item to cart."),i='<section class="errorPage alert alert-error" style="padding:10px 23px 10px 54px;"><div><p class="alert-message">'+t+'<\/p><p>You can <a onclick="location.reload(true); return false;" style="cursor:pointer;">try reloading<\/a> the page, or start over above.<\/p><\/div><\/section>',$("body").hasClass("modal-open")&&($("body").removeClass("modal-open"),$(".modal-backdrop").remove()),$(".warranty").length>0&&$(".warranty").modal("hide"),$(".canvas-content").html(i),$("header.mh:visible").size()||$('button[data-off-canvas="back"]').click(),u.reject({status:!1,message:i}))}),u.promise},getCartItem:function(){var e=this,r=amplify.store("cartItems"),i=t.defer(),u,f;return r!=undefined&&r.CartItems!=undefined&&r.CartItems.length>0?(u={cartId:Dell.Transactional.getCookie("TxCartId"),cartItemId:r.CartItems[0].ItemId},f=new Date,n.get(serverUrls.apiServiceUrl+"OrderCodeRecommendations?cartItemId="+u.cartItemId+"&nocache="+f.getTime()).success(function(n,t){var r,u;for(e.setUDORevenue(n.CartSubtotalPrice),r=0;r<n.CartItems[0].ModuleOverride.length;r++)u=n.CartItems[0].ModuleOverride[r].OptionOverride,n.CartItems[0].ModuleOverride[r].OptionOverride=u;i.resolve(n,t)}).error(function(){i.reject()}),i.promise):(i.reject(),i.promise)},createModOverridesList:function(n){var u=[],i,t,r;if(n!=undefined&&n.length>0&&(i=n.split(";"),i.length>0))for(t=0;t<i.length;t++)i[t].length>0&&(r=i[t].split("~"),u[t]={ModuleId:r[0],OptionOverride:r[1]});return u},setUDORevenue:function(n){typeof MasterTmsUdo!="undefined"&&(MasterTmsUdo.CJ.REVENUE=n)}}}]);shopApp.config(["$httpProvider",function(n){n.defaults.withCredentials=!0;n.defaults.useXDomain=!0}]);count=0;shopApp.factory("warrantyService",["$http","$q",function(n,t){return{getItems:function(i,r){var u=t.defer();return n.get(this.getSearchApiUrl(i,r)).success(function(n){u.resolve(n)}).error(function(){u.reject("An error occurred while fetching items.")}),u.promise},getCompositeConfigs:function(i,r,u,f){var e=t.defer();return n.get(this.getCompositeConfigUrl(i,r,u,f)).success(function(n){e.resolve(n)}).error(function(){e.reject("An error occurred while fetching items.")}),e.promise},getSearchApiUrl:function(n,t){var i=serverUrls.apiServiceUrl;return i+="warrantyandservices/"+n,t!=undefined&&(i+="/"+t),count===0&&s_dell!=null&&s_dell!=null&&s_dell.apl!=null&&(s_dell.events=s_dell.apl(s_dell.events,"event58",",",2),s_dell.products=";"+n,s_dell.pageName=s_dell.pageName+"|modal-warrantyandservices",s_dell.prop13=s_dell.pageName,s_dell.linkTrackEvents=s_dell.apl(s_dell.linkTrackEvents,"event58",",",2),s_dell.tl(this,"o","Warranty and Services"),count++),i},getCompositeConfigUrl:function(n,t,i,r){var u=serverUrls.apiServiceUrl;return u+="warrantyandservices/"+n,t!=undefined&&(u+="/"+t),i!=undefined&&(u+="/"+i),r!=undefined&&(u+="/"+r),count===0&&s_dell!=null&&s_dell!=null&&s_dell.apl!=null&&(s_dell.events=s_dell.apl(s_dell.events,"event58",",",2),s_dell.products=";"+n,s_dell.pageName=s_dell.pageName+"|modal-warrantyandservices",s_dell.prop13=s_dell.pageName,s_dell.linkTrackEvents=s_dell.apl(s_dell.linkTrackEvents,"event58",",",2),s_dell.tl(this,"o","Warranty and Services"),count++),u}}}]);SHOP=window.SHOP||{};SHOP.Transactional=SHOP.Transactional||{};SHOP.Transactional.Compare=SHOP.Transactional.Compare||{},function(n){(function(){var t=this,f=Dell.Metrics.PageMetadata.getOrCreate("wacontroller").Content!=null?Dell.Metrics.PageMetadata.getOrCreate("wacontroller").Content.toLowerCase():"",u=Dell.Metrics.PageMetadata.getOrCreate("contType").Content!=null?Dell.Metrics.PageMetadata.getOrCreate("contType").Content.toLowerCase():"",r="",i="";isSNP=!1;u.indexOf("shop")>=0?(r="productOC",i="productOC:size",typeCollection="productOC:type"):(r="productSKU",i="productSKU:size",typeCollection="productSKU:type",isSNP=!0);n(document).click(function(){n(".compare-config .popover").addClass("hidden")});n(document).on("click",".compare-config input",function(n){t.addToCompareCheckbox(n)});this.addToCompareCheckbox=function(r){var e=n(r.currentTarget),u=e.prop("name"),f=e.attr("stacktype"),s=e.closest(".compare-config"),o;this.setCollectionType(f);isSNP&&(o=window.location.href,amplify.store("CurrentProductSKUPage",o));switch(amplify.store(i)){case undefined:case 0:n(".compare-config input").each(function(){var t=n(this);t.prop("name")==u&&(t.addClass("checked"),t.prop("checked",!0),t.parent(t.closest(".compare-config")).addClass("comparing"))});t.persistProduct(u,f,f);break;case 1:e.prop("checked")?(n(".compare-config input").each(function(){var t=n(this);t.prop("name")==u&&(t.addClass("checked"),t.prop("checked",!0),t.parent(t.closest(".compare-config")).addClass("comparing"))}),n(".compare-config.comparing").each(function(){var t=n(this);t.find("input").attr("stacktype")==f&&(t.find("a").removeClass("hidden"),t.find("label").addClass("hidden"))}),t.persistProduct(u,f,f)):(n(".compare-config input").each(function(){var t=n(this);t.prop("name")==u&&(t.prop("checked",!1),t.removeClass("checked"),n("label",t.closest(".compare-config")).removeClass("hidden"),n("a",t.closest(".compare-config")).addClass("hidden"),t.parent(t.closest(".compare-config")).removeClass("comparing"))}),t.removeProduct(u,f));break;case 2:e.prop("checked")?(n(".compare-config input").each(function(){var t=n(this);t.prop("name")==u&&(t.addClass("checked"),t.prop("checked",!0),t.parent(t.closest(".compare-config")).addClass("comparing"),n("label",t.closest(".compare-config")).addClass("hidden"),n("a",t.closest(".compare-config")).removeClass("hidden"))}),t.persistProduct(u,f,f)):(n(".compare-config input").each(function(){var t=n(this);t.prop("name")==u&&(t.prop("checked",!1),t.removeClass("checked"),n("label",t.closest(".compare-config")).removeClass("hidden"),n("a",t.closest(".compare-config")).addClass("hidden"),t.parent(t.closest(".compare-config")).removeClass("comparing"))}),n(".compare-config.comparing").each(function(){var t=n(this);t.find("input").attr("stacktype")==f&&(t.find("a").addClass("hidden"),t.find("label").removeClass("hidden"))}),t.removeProduct(u,f));break;case 3:e.prop("checked")?(e.prop("checked",!1),n(".popover",s).removeClass("hidden"),e.next("div").find("a").removeClass("hidden"),r.stopPropagation()):(n(".compare-config input").each(function(){var t=n(this);t.prop("name")==u&&(t.prop("checked",!1),t.removeClass("checked"),n("label",t.closest(".compare-config")).removeClass("hidden"),n("a",t.closest(".compare-config")).addClass("hidden"),t.parent(t.closest(".compare-config")).removeClass("comparing"))}),t.removeProduct(u,f))}};this.persistProduct=function(n,u,f){var e,o,s;t.setCollectionType(f);e=amplify.store(r);o=amplify.store(i);isSNP||(s=amplify.store(typeCollection),s=s?s:{});e=e?e:{};o=o?o:0;e[n]||(e[n]=n,o+=1,amplify.store(r,e),amplify.store(i,o),isSNP||(s[n]=u,amplify.store(typeCollection,s)))};this.removeProduct=function(n,u){var f,e,o,s,h;if(t.setCollectionType(u),f=amplify.store(r),e=amplify.store(i),isSNP&&u!=="ups"||(o=amplify.store(typeCollection)),f&&f[n]){s={};for(item in f)item!==n&&(s[item]=item);if(!isSNP||u==="ups"){h={};for(item in o)item!==n&&(h[item]=o[item]);amplify.store(typeCollection,h)}e-=1;amplify.store(r,s);amplify.store(i,e)}};this.setCollectionType=function(n){u.indexOf("shop")>=0||n=="ups"||n=="0"?(r="productOC",i="productOC:size",typeCollection="productOC:type"):(r="productSKU",i="productSKU:size",typeCollection="productSKU:type",isSNP=!0)}}).call(SHOP.Transactional.Compare)}(jQuery);shopApp.service("addToCompareService",function(){var n=this;n.alreadyExistsInStore=function(n){var t=amplify.store();angular.forEach(n,function(n){var r=Dell.Metrics.PageMetadata.getOrCreate("contType").Content!=null?Dell.Metrics.PageMetadata.getOrCreate("contType").Content.toLowerCase():"",i=n.StackType!=undefined?n.StackType==1:isSNP;r=="snpcategory"&&(i=!0);amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined?(n.isInCompareStore=i?t.productSKU!=null?n.ProductCode in t.productSKU:!1:t.productOC!=null?n.Stack?n.Stack.OrderCode.Value.toLowerCase()in t.productOC:n.OrderCode.toLowerCase()in t.productOC:!1,i&&(n.isMinimumMet=amplify.store("productSKU:size")>1?!0:!1)):i?n.CompareCtaAddToLabel="":n.ProductStack.CompareCtaAddToLabel=""})};n.universalAlreadyExistsInStore=function(n){var t=amplify.store();angular.forEach(n,function(n){var i,r;(amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined)&&t.productOC!=null&&(i=n.Stack.Type===2?n.Stack.Sku.Value:n.Stack.ItemIdentifier,i in t.productOC&&(r=$(".checkbox-"+i),typeof r!="undefined"&&r.length>0&&(r[0].checked=!0),amplify.store("productOC:size")>1&&($("span.add-to-compare-"+i).addClass("hidden"),$("a.addToCompare-"+i).removeClass("hidden"))))})};n.initializePageAfterRepeatFinished=function(){$(".compare-config").each(function(){var n=$(this),t=n.find("input").attr("stacktype")!=undefined?n.find("input").attr("stacktype")==1:isSNP;t?n.hasClass("comparing")&&amplify.store("productSKU:size")!==1&&(n.find("input").addClass("checked"),n.find("a").removeClass("hidden"),n.find("label").addClass("hidden")):n.hasClass("comparing")&&amplify.store("productOC:size")!==1&&(n.find("input").addClass("checked"),n.find("a").removeClass("hidden"),n.find("label").addClass("hidden"))})};n.removeUPSFromCompare=function(n){SHOP.Transactional.Compare.removeProduct(n,"ups")}});shopApp.directive("initializeCompareOnRepeatFinish",["$timeout","addToCompareService",function(n,t){return{restrict:"A",link:function(i){i.$last===!0&&n(function(){t.initializePageAfterRepeatFinished()})}}}]);Dell=window.Dell||{};s_dell=window.s_dell||{};Dell.Transactional=Dell.Transactional||{};Dell.Transactional.Shop=Dell.Transactional.Shop||{};Dell.Transactional.Shop.Metrics=Dell.Transactional.Shop.Metrics||{};Dell.Metrics=Dell.Metrics||{};Dell.Metrics.sc=Dell.Metrics.sc||{},function(n){(function(){this.anavOptionMetrics=function(n,t){var i=n.text().trim().toLowerCase();s_dell.eVar31=t+": product categories";s_dell.eVar30=i.indexOf(" (")>-1?i.substring(i.indexOf(" ("),0):i;s_dell.tl(this,"o","ANAV");s_dell.eVar31="";s_dell.eVar30=""};this.initOM=function(){var i,t,r,u;n(".pigletResults").on("click",".starRating",function(){s_dell!=null&&s_dell.apl!=null&&(s_dell.events=s_dell.apl(s_dell.events,"event3",",",2),s_dell.eVar38="viewed customer ratings",s_dell.tl(this,"o","Ratings and Reviews"),s_dell.events="")});n(".ratings-block").on("click",function(){s_dell!=null&&s_dell.apl!=null&&(s_dell.events=s_dell.apl(s_dell.events,"event3",",",2),s_dell.eVar38="viewed customer ratings",s_dell.tl(this,"o","Ratings and Reviews"),s_dell.events="")});n('a[href$="#ratings"]').on("click",function(){s_dell!=null&&s_dell.apl!=null&&(s_dell.events=s_dell.apl(s_dell.events,"event3",",",2),s_dell.eVar38="viewed customer ratings",s_dell.tl(this,"o","Customer Reviews"),s_dell.events="",s_dell.eVar38="")});i=Dell.Metrics.PageMetadata.getOrCreate("categoryid");Dell.Metrics.PageMetadata.getOrCreate("waapplicationname")!=null&&Dell.Metrics.PageMetadata.getOrCreate("waapplicationname").Content.toLowerCase()=="snp"&&i!=null&&i.Content!=null&&Dell.Metrics.PageMetadata.getOrCreate("snpcategorynum",i.Content,null);n("#myAcctLink").on("click",function(){s_dell!=null&&s_dell.apl!=null&&(s_dell.events=s_dell.apl(s_dell.events,"event23",",",2),Dell.Metrics.sc.segmentvisit="true",s_dell.prop13=s_dell.pageName+"|flyout|myaccount",s_dell.tl(this,"o","My Account Modal"),s_dell.events="")});Dell.Metrics.PageMetadata.getOrCreate("wacontroller")!=null&&Dell.Metrics.PageMetadata.getOrCreate("wacontroller").Content.toLowerCase()=="productconfiguration"&&Dell.Metrics.PageMetadata.getOrCreate("waview")!=null&&Dell.Metrics.PageMetadata.getOrCreate("waview").Content.toLowerCase()!="recommendations"&&Dell.Transactional.Hash!=null&&Dell.Transactional.Hash.getHashValue("ocs")&&(Dell.Metrics.sc.compare="true",t=Dell.Transactional.Hash.getHashValue("ocs"),t=";"+t.join(",;"),Dell.Metrics.PageMetadata.addOrUpdate("products",t));Dell.Metrics.PageMetadata.getOrCreate("wacontroller")!=null&&Dell.Metrics.PageMetadata.getOrCreate("wacontroller").Content.toLowerCase()=="accessories"&&Dell.Metrics.PageMetadata.getOrCreate("waview")!=null&&Dell.Metrics.PageMetadata.getOrCreate("waview").Content.toLowerCase()=="compare"&&Dell.Transactional.Hash!=null&&Dell.Transactional.Hash.getHashValue("skuids")&&(Dell.Metrics.sc.compare="true",t=Dell.Transactional.Hash.getHashValue("ocs"),t=";"+t.join(",;"),Dell.Metrics.PageMetadata.addOrUpdate("products",t));Dell.Metrics.PageMetadata.getOrCreate("waview")!=null&&Dell.Metrics.PageMetadata.getOrCreate("waview").Content.toLowerCase()=="recommendations"&&(Dell.Metrics.sc.candyaisle="true",r="",jsonData!=null&&jsonData.OrderCode!=null&&jsonData.OrderCode!=""&&(r=jsonData.OrderCode),products=r,Dell.Metrics.PageMetadata.getOrCreate("products",products));Dell.Metrics.PageMetadata.getOrCreate("wacontroller")!=null&&Dell.Metrics.PageMetadata.getOrCreate("wacontroller").Content.toLowerCase()=="warrantyandservices"&&(Dell.Metrics.sc.ssb="true");n("#affix-scroll-nav ul.nav li").on("click",function(){if(s_dell!=null&&s_dell.prop13!=null){var t=s_dell.prop13.indexOf("[");s_dell.prop13=t==-1?s_dell.prop13+"[tab='"+n(this).attr("class")+"']":s_dell.prop13.slice(0,t)+"[tab='"+n.trim(n(this).attr("class"))+"']";n("#affix-scroll-nav ul.nav").find("li").removeClass("dellmetrics-pl-tab");n(this).addClass(" dellmetrics-pl-tab")}});u=SHOP.Transactional.Utils.getQueryStringParamVal("ref");u!==""&&(Dell.Metrics.sc.ref=u)}}).call(Dell.Transactional.Shop.Metrics);n(document).ready(function(){Dell.Transactional.Shop.Metrics.initOM()})}(jQuery),function(n,t){"use strict";function r(n,t,r){i.directive(n,["$parse","$swipe",function(i,u){var f=75,e=.3,o=30;return function(s,h,c){function v(n){if(!l)return!1;var i=Math.abs(n.y-l.y);return n=(n.x-l.x)*t,a&&i<f&&0<n&&n>o&&i/n<e}var y=i(c[n]),l,a;u.bind(h,{start:function(n){l=n;a=!0},cancel:function(){a=!1},end:function(n,t){v(n)&&s.$apply(function(){h.triggerHandler(r);y(s,{$event:t})})}})}}])}var i=t.module("ngTouch",[]);i.factory("$swipe",[function(){function n(n){var t=n.touches&&n.touches.length?n.touches:[n];return n=n.changedTouches&&n.changedTouches[0]||n.originalEvent&&n.originalEvent.changedTouches&&n.originalEvent.changedTouches[0]||t[0].originalEvent||t[0],{x:n.clientX,y:n.clientY}}return{bind:function(t,i){var u,f,e,o,r=!1;t.on("touchstart mousedown",function(t){e=n(t);r=!0;f=u=0;o=e;i.start&&i.start(e,t)});t.on("touchcancel",function(n){r=!1;i.cancel&&i.cancel(n)});t.on("touchmove mousemove",function(t){if(r&&e){var s=n(t);u+=Math.abs(s.x-o.x);f+=Math.abs(s.y-o.y);o=s;10>u&&10>f||(f>u?(r=!1,i.cancel&&i.cancel(t)):(t.preventDefault(),i.move&&i.move(s,t)))}});t.on("touchend mouseup",function(t){r&&(r=!1,i.end&&i.end(n(t),t))})}}}]);i.config(["$provide",function(n){n.decorator("ngClickDirective",["$delegate",function(n){return n.shift(),n}])}]);i.directive("ngClick",["$parse","$timeout","$rootElement",function(n,i,r){function e(n,t,i){for(var r=0;r<n.length;r+=2)if(Math.abs(n[r]-t)<s&&Math.abs(n[r+1]-i)<s)return n.splice(r,r+2),!0;return!1}function c(n){if(!(Date.now()-h>o)){var t=n.touches&&n.touches.length?n.touches:[n],i=t[0].clientX,t=t[0].clientY;1>i&&1>t||e(u,i,t)||(n.stopPropagation(),n.preventDefault(),n.target&&n.target.blur())}}function l(n){n=n.touches&&n.touches.length?n.touches:[n];var t=n[0].clientX,r=n[0].clientY;u.push(t,r);i(function(){for(var n=0;n<u.length;n+=2)if(u[n]==t&&u[n+1]==r){u.splice(n,n+2);break}},o,!1)}var o=2500,s=25,f="ng-click-active",h,u;return function(i,o,s){function v(){y=!1;o.removeClass(f)}var k=n(s.ngClick),y=!1,a,p,w,b;o.on("touchstart",function(n){y=!0;a=n.target?n.target:n.srcElement;3==a.nodeType&&(a=a.parentNode);o.addClass(f);p=Date.now();n=n.touches&&n.touches.length?n.touches:[n];n=n[0].originalEvent||n[0];w=n.clientX;b=n.clientY});o.on("touchmove",function(){v()});o.on("touchcancel",function(){v()});o.on("touchend",function(n){var k=Date.now()-p,i=n.changedTouches&&n.changedTouches.length?n.changedTouches:n.touches&&n.touches.length?n.touches:[n],f=i[0].originalEvent||i[0],i=f.clientX,f=f.clientY,d=Math.sqrt(Math.pow(i-w,2)+Math.pow(f-b,2));y&&750>k&&12>d&&(u||(r[0].addEventListener("click",c,!0),r[0].addEventListener("touchstart",l,!0),u=[]),h=Date.now(),e(u,i,f),a&&a.blur(),t.isDefined(s.disabled)&&!1!==s.disabled||o.triggerHandler("click",[n]));v()});o.onclick=function(){};o.on("click",function(n,t){i.$apply(function(){k(i,{$event:t||n})})});o.on("mousedown",function(){o.addClass(f)});o.on("mousemove mouseup",function(){o.removeClass(f)})}}]);r("ngSwipeLeft",-1,"swipeleft");r("ngSwipeRight",1,"swiperight")}(window,window.angular);shopApp.service("ProductStackService",["$location","$rootScope",function(){var n=this;n.getNumberOfRows=function(n){return $("#featuredItems").length>0||typeof n=="undefined"||$(".recommendations-container").length>0&&!($(window).width()<768)?1:$(".device-xs").is(":visible")||$(window).width()<768?n.length:$(".device-sm").is(":visible")?parseInt(Math.ceil(n.length/3)):parseInt(Math.ceil(n.length/4))};n.getParentCollection=function(t){return n.getNumberOfRows(t)};n.getItemsPerRow=function(){return $(".device-xs").is(":visible")||$(window).width()<768?1:$(".device-sm").is(":visible")?3:4};n.goToCompare=function(){for(var t=Dell.Transactional.getCodes("ocs"),i="",n=0;n<t.length;n++)i+=n===0?"?ocs="+t[n]:","+t[n];return i}}]);shopApp.service("CandyAisleApiService",["$location","recommendationsService",function(n,t){var i=this;i.candyAisleApiUrl=function(n,i){var u=t.getApiUrl(),f=t.getSnpGetUrl(),r=t.getSnpAddToCartInfo(n,i),e=t.getCartItemId();return"{0}{1}&selectionId={2}&isSelected={3}".format(u,f,r.SelectionId,!r.IsSelected)}}]);shopApp.service("recommendationsService",["$location","ConfiguratorService",function(n,t){var i=this;i.setDataModel=function(n){i.DataModel=n;i.cartUrl=n.AddToCartRelativeUrl;i.setCartItem(n.AddToCartItemJson);typeof n.Stack!="undefined"&&(i.itemId=n.Stack.Stack.ItemIdentifier,i.snpGetUrl=n.ApiUrl,i.cartItemId=n.CartItemId)};i.setStackLocation=function(){i.stackLocation="rec"};i.setApiUrl=function(n){i.apiUrl=n};i.getItemId=function(){return i.itemId};i.getCartUrl=function(){return i.cartUrl};i.getCartItem=function(){return i.cartItem};i.getApiUrl=function(){return i.apiUrl};i.getStackLocation=function(){return i.stackLocation};i.getSnpGetUrl=function(){return i.snpGetUrl};i.getSnpAddToCartInfo=function(n,t){return i.DataModel.ModuleGroups[n].ItemStates[t]};i.getDataModel=function(){return i.DataModel};i.getCartItemId=function(){return i.cartItemId};i.setCartItem=function(n){i.cartItem=n;t.setAddToCartItemJson(n)}}]);shopApp.controller("psController",["$scope","$rootScope","addToCompareService","ProductStackService","cfcService",function(n,t,i,r,u){this.getParentCollection=function(){return n.rows=r.getNumberOfRows(n.modelStacks),n.rows};this.getCollectionStart=function(t){return n.ipr*(t+1)};this.getCollectionEnd=function(t){return t+1===n.rows?n.modelStacks.length-n.ipr*t:n.ipr};n.hasWindow10Home=function(){return $(window)[0].Dell.Metrics.sc.country==="us"&&$(window)[0].Dell.Metrics.sc.segment==="bsd"?n.modelStacks&&n.modelStacks.map(function(n){return n.Specs.TechSpecs.filter(function(n){return n.Label.toLocaleUpperCase()==="OPERATING SYSTEM"&&n.Values[0].toLocaleUpperCase().includes("WINDOWS 10 HOME")})}).reduce(function(n,t){return n.concat(t)}).length>0:!1};n.$on("newResultsReceived",function(){n.modelStacks=n.$parent.DataModel.Stacks;n.waitForFinalEvent(function(){i.universalAlreadyExistsInStore(n.modelStacks);n.$apply(t.comparecount="("+amplify.store("productOC:size")+"/3)")},300,n.fullDateString.getTime())});n.$on("newCandyAisleResultsReceived",function(){n.$parent.moduleIndex===n.moduleIndex&&(n.modelStacks=n.$parent.apiModuleProductStacks,n.determineLayout())});n.$on("updateCFCShipping",function(){var t=typeof n.DataModel.AnavFilterModel!="undefined"&&n.DataModel.AnavFilterModel.Results.Stacks.length>0?n.DataModel.AnavFilterModel.Results.Stacks:n.DataModel.Stacks;angular.forEach(t,function(n){if(n.Stack.ItemIdentifier===u.orderCode){n.Stack.Shipping.ShippingTitle.Value="";u.newShippingMessage!==""&&(n.Stack.Shipping.ShippingDate.Value=u.newShippingMessage,n.Stack.Shipping.EstimatedDeliveryModel.PrimaryCtaCaption=u.linkWithZipCode);return}})});n.$on("ngRepeatFinished",function(){$.each($(".merchandizingTile"),function(){var n=$(this).closest(".product-stack-inner-row").height();$(this).height(n)})});n.init=function(i,r){n.ipr=i;n.rows=r;n.$parent.DataModel&&n.$parent.DataModel.ModuleGroups&&(n.moduleIndex=n.$parent.getProductStackIndex(),n.DataModel.Stacks=n.$parent.DataModel.ModuleGroups[n.moduleIndex].Items);n.DataModel&&(n.modelStacks=angular.copy(n.DataModel.Stacks));n.determineLayout();t.IsAnalyticsConfigurator&&(t.metricsClass="dellmetrics-browseconfig")};n.determineLayout=function(){n.setViewPort();n.ipr=r.getItemsPerRow();($("#featuredItems").length>0||$(".recommendations-container").length>0&&!($(window).width()<768))&&(n.ipr=n.modelStacks.length);n.rows=r.getNumberOfRows(n.modelStacks)};n.setViewPort=function(){n.isMobile=$(".device-xs").is(":visible");n.isTablet=$(".device-sm").is(":visible");n.isDesktop=$(".device-md").is(":visible")||$(".device-lg").is(":visible")};n.toggleMoreHide=function(n){$(".more-"+n).toggle();$(".hide-"+n).toggle();$(".hide-ps-details-"+n).slideToggle()};n.waitForFinalEvent=function(){var n={};return function(t,i,r){n[r]&&clearTimeout(n[r]);n[r]=setTimeout(t,i)}}();n.goToCompare=function(){var t=r.goToCompare();window.location.href=n.$parent.DataModel.Stacks[0].Stack.Links.CompareLink.Url+t};n.expandRow=function(n){var t=$(n.target).closest(".tech-spec-row-group");$(t).find(".tech-spec-value").each(function(){$(this).find("#show-hide-tech-specs").collapse("toggle");$(this).find("a").toggleClass("collapsed")})};n.fullDateString=new Date;$(window).resize(function(){n.isDesktop&&($(".device-sm").is(":visible")||$(".device-xs").is(":visible"))&&$("#ProductStackContainer").hide();n.isTablet&&$(".device-xs").is(":visible")&&$("#ProductStackContainer").hide();n.waitForFinalEvent(function(){n.determineLayout();$(".popover-"+t.popoverId).popover("hide");n.$apply();$("#ProductStackContainer").show();$(".productstack-box #ProductStackContainer").show();i.universalAlreadyExistsInStore(n.modelStacks)},200,n.fullDateString.getTime())});$(window).on("load",function(){n.waitForFinalEvent(function(){i.universalAlreadyExistsInStore(n.modelStacks);n.$apply(t.comparecount="("+amplify.store("productOC:size")+"/3)")},300,n.fullDateString.getTime())});$("body").click(function(i){$(i.target).is(".popover, .popover-title, .popover-content")||$(".popover-"+t.popoverId).popover("destroy");$(i.target).attr("data-ng-click")==="goToCompare()"&&n.goToCompare()})}]);shopApp.directive("onFinishRender",["$timeout",function(n){return{restrict:"A",link:function(t){t.$last===!0&&n(function(){t.$emit("ngRepeatFinished")},7e3)}}}]);shopApp.directive("psMerchandizing",["$window",function(n){return{scope:{backgroundcolor:"=",bannerbackgroundcolor:"=",bannerforegroundcolor:"=",image:"=",link:"=",title:"="},restrict:"EA",template:'<a data-ng-href="{{link.Url}}" target="_self">      <div class="{{backgroundcolor}} merch-container">          <div class="merch-text {{bannerbackgroundcolor}}">              <h3 class="text-{{bannerforegroundcolor}}" data-ng-bind-html="title"><\/h3>              <div class="text-{{bannerforegroundcolor}}" data-ng-bind-html="link.Caption"><\/div>          <\/div>          <div class="merch-image">              <img data-ng-src="{{image.ImageUri}}" alt="{{image.AltText}}" />          <\/div>      <\/div>  <\/a>',link:function(){angular.element(n).bind("resize",function(){$.each($(".merchandizingTile"),function(){var n=$(this).closest(".product-stack-inner-row").height();$(this).height(n)})});angular.element(n).bind("orientationchange",function(){$.each($(".merchandizingTile"),function(){var n=$(this).closest(".product-stack-inner-row").height();$(this).height(n)})})}}}]);shopApp.directive("psPromotion",function(){return{scope:{text:"="},restrict:"EA",template:'<div class="bug_text col-xs-12" style="padding-left:5px;">      <span data-ng-bind-html="text"><\/span>      <span class="bug_pointer">&nbsp;<\/span>  <\/div>    '}});shopApp.directive("psImage",function(){return{scope:{imageurl:"=",linkurl:"=",doctype:"=",position:"=",variant:"="},restrict:"EA",template:'<a data-ng-href="{{linkurl}}" target="_self" class="{{$parent.$parent.item.Options.Settings.Location === 10 ? \'dellmetrics-iclickthru\' : \'\'}}" data-metrics="{&quot;clickthru&quot; : &quot;products&quot;, &quot;doctype&quot; : &quot;{{doctype}}&quot;, &quot;position&quot; : &quot;{{position}}&quot;, &quot;variant&quot; : &quot;{{variant}}&quot; }">      <img class="image-centered img-responsive" data-ng-src="{{imageurl}}" />  <\/a>'}});shopApp.directive("psTitle",function(){return{scope:{text:"=",linkurl:"=",activelink:"=",doctype:"=",position:"=",variant:"="},restrict:"EA",template:'<h4>      <a data-ng-if="activateLink" data-testid="SnPDealsItem" data-ng-href="{{linkurl}}" target="_self" class="{{$parent.$parent.item.Options.Settings.Location === 10 ? \'dellmetrics-tclickthru\' : \'\'}}" data-metrics="{&quot;clickthru&quot; : &quot;products&quot;, &quot;doctype&quot; : &quot;{{doctype}}&quot;, &quot;position&quot; : &quot;{{position}}&quot;, &quot;variant&quot; : &quot;{{variant}}&quot; }">          <span class="text-blue" data-testid="configItemProduct"><\/span>          <span class=" text-blue" data-testid="configItemProductTitle">{{text}}<\/span>      <\/a>      <span data-ng-if="!activateLink" data-testid="configItemProductTitle">{{text}}<\/span>  <\/h4>',link:function(n){n.activateLink=typeof n.$parent.$parent.item!="undefined"&&n.$parent.$parent.item.Options.Settings.Location===3?!0:n.activelink}}});shopApp.directive("psManufacturer",function(){return{scope:{manufacturer:"="},restrict:"EA",template:'<div class="gray-bottom-border">      <small>          <span class="manufacturer" data-testid="manufacturerName">{{manufacturer}}<\/span>      <\/small>  <\/div>'}});shopApp.directive("psMarketingblurb",function(){return{scope:{marketingblurb:"=",morelabel:"=",showmorelink:"="},restrict:"EA",template:'<div class="bottom-offset-small">      <span class="marketing-blurb" data-testid="marketingblurb" data-ng-bind-html="marketingblurb"><\/span>      <span ng-if="showmorelink">          ... &nbsp;<a href="#polaris-pd" alt="{{morelabel}}" target="_self">{{morelabel}}<\/a>      <\/span>  <\/div>'}});shopApp.directive("psRating",function(){return{scope:{ratingvalue:"=",reviewscount:"=",reviewslabel:"=",viewdetailsurl:"=",doctype:"=",position:"=",variant:"="},restrict:"EA",template:'<a data-ng-href="{{viewdetailsurl}}?view=ratings" target="_self" class="{{$parent.$parent.item.Options.Settings.Location === 10 ? \'dellmetrics-rclickthru\' : \'\'}}" data-metrics="{&quot;clickthru&quot; : &quot;products&quot;, &quot;doctype&quot; : &quot;{{doctype}}&quot;, &quot;position&quot; : &quot;{{position}}&quot;, &quot;variant&quot; : &quot;{{variant}}&quot; }">      <div class="starRating top-padding-1 pull-left">          <ratings value="ratingvalue"><\/ratings>      <\/div>      <p>          <span>{{reviewscount}}&nbsp;<span once-text="reviewslabel"><\/span><\/span>      <\/p>  <\/a>'}});shopApp.directive("psSimplePrice",function(){return{scope:{dellprice:"=",marketprice:"=",savingsprice:"="},restrict:"EA",template:'<h4>      <span data-ng-if="savingsprice != 0" class="strikethrough normal-font-size" data-testid="psStrikeThroughDellPrice">{{marketprice}}&nbsp;<\/span>      <span><strong class="force-strong" data-testid="psDellPrice">{{dellprice}}<\/strong><\/span>  <\/h4>  '}});shopApp.directive("psFeature",function(){return{scope:{text:"="},restrict:"EA",template:'<p class="show-top-border top-padding-8 bottom-offset-4px">      <i aria-hidden="true" class="icon-large-touch text-blue touch-enabled-offset large-font"><\/i><span class="text-gray-dark"><strong>{{text}}<\/strong><\/span>  <\/p>  '}});shopApp.directive("psDescription",function(){return{scope:{text:"="},restrict:"EA",template:'<p data-ng-bind-html="text" class="show-top-border top-padding-10"><\/p>'}});shopApp.directive("psProductDetail",function(){return{scope:{productdetail:"="},restrict:"EA",template:'<ul class="unstyled bottom-offset-5">      <li data-ng-repeat="detail in productdetail" data-ng-bind-html="detail"><\/li>  <\/ul>  '}});shopApp.directive("psIconographySpecs",function(){return{scope:{specs:"=",mda:"="},restrict:"EA",template:'<ul class="unstyled att-bars">      <li data-ng-repeat-start="spec in specs">          <span class="row">              <small>{{spec.Label}}<\/small>          <\/span>          <div class="row" ng-if="spec.Label.toLocaleUpperCase().includes(\'WINDOWS 10 HOME\') && showMda">              <small>{{\'(\' + $parent.mda.MdaCaption + \')\'}}<\/small>          <\/div>      <\/li>      <li data-ng-repeat-end class="top-offset-negative-4 hidden-xs">          <ul class="graph unstyled">              <li data-ng-repeat="i in repeatNumberOfTimes() track by $index" data-ng-class="{\'bar\': true, \'blue\': $index < spec.Value, \'gray-light\': $index >= spec.Value}"><\/li>          <\/ul>      <\/li>  <\/ul>',link:function(n){n.repeatNumberOfTimes=function(){return new Array(5)};n.showMda=$(window)[0].Dell.Metrics.sc.country==="us"&&$(window)[0].Dell.Metrics.sc.segment==="bsd"}}});shopApp.directive("psSpecialOffers",function(){return{scope:{label:"=",specialoffersdetails:"=",expandspecialoffers:"="},restrict:"EA",template:'<div data-ng-if="!expandspecialoffers">      <div data-ng-class="{\'text-blue left-padding-small pricing-cell-top\': true, \'mobile-special-offers\': specialoffersdetails.Visible && label, \'show-bottom-border\': !(specialoffersdetails.Visible && label)}">          <div data-ng-if="specialoffersdetails.Visible && label" class="special-offers-content">              <a class="cursor-pointer" data-toggle="modal" data-target="#special-offers-modal-{{id}}" data-metrics="{&quot; btnname&quot; &quot; specialoffermodal&quot; }">                  <h5 class="top-padding-7 bottom-offset-5 text-blue">                      <span style="font-weight: bold;">{{label}}<\/span>                  <\/h5>              <\/a>          <\/div>      <\/div>        <!-- Special Offers Modal -->      <div class="modal special-offers-modal hide-element fade" id="special-offers-modal-{{id}}" tabindex="-1" role="dialog" aria-labelledby="specialOffersModal" aria-hidden="true">          <div class="modal-header">              <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><\/button>              <h3 data-ng-bind-html="specialoffersdetails.Title"><\/h3>          <\/div>          <div class="modal-body">              <ul data-ng-if="specialoffersdetails.Details.length == 1" class="unstyled">                  <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="specialoffersdetails.Details[0].Description"><\/li>                  <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="specialoffersdetails.Details[0].ExpirationText"><\/li>                  <li class="left-offset-7 modal-last-li"><small data-ng-bind-html="specialoffersdetails.Details[0].LegalText"><\/small><\/li>              <\/ul>              <div data-ng-if="specialoffersdetails.Details.length > 1">                  <div data-ng-repeat="offer in specialoffersdetails.Details">                      <p data-ng-if="offer.ExpirationText || offer.LegalText" class="bottom-padding-small">                          <a class="cursor-pointer special-offers-modal-jump" id="specialofferdetails-{{offer.Index}}" data-ng-bind-html="offer.Description"><sup data-ng-bind-html="offer.Index"><\/sup><\/a>                      <\/p>                      <p data-ng-if="!offer.ExpirationText && !offer.LegalText" class="bottom-padding-small">{{offer.Description}}<\/p>                  <\/div>                  <div data-ng-repeat="offer in specialoffersdetails.Details">                      <div data-ng-if="offer.ExpirationText || offer.LegalText" class="show-top-border" id="specialofferdetails-{{offer.Index}}-{{id}}">                          <ul class="unstyled top-offset-small">                              <li class="modal-text-indent bottom-offset-mini">{{offer.Index}}. {{offer.Description}}<\/li>                              <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="offer.ExpirationText"><\/li>                              <li class="left-offset-7 modal-last-li"><small data-ng-bind-html="offer.LegalText"><\/small><\/li>                          <\/ul>                      <\/div>                  <\/div>              <\/div>          <\/div>          <div class="modal-footer">              <button class="btn btn-tertiary pull-left" data-dismiss="modal" aria-hidden="true" type="button">{{specialoffersdetails.ModalCloseLabel}}<\/button>          <\/div>      <\/div>  <\/div>  <div data-ng-if="expandspecialoffers">      <div data-ng-class="{\'text-blue left-padding-small pricing-cell-top\': true, \'mobile-special-offers\': specialoffersdetails.Visible && label, \'show-bottom-border\': !(specialoffersdetails.Visible && label), \'no-left-padding\' : specialoffersdetails.Details.length > 0}">          <div data-ng-if="specialoffersdetails.Visible && specialoffersdetails.Details.length > 0" class="special-offers-content">              <ul data-ng-class="{\'list-unstyled no-left-padding\': specialoffersdetails.Details.length > 0}" class="left-padding-15 margin-bottom-5 margin-top-5 word-wrap-break">                  <li data-ng-repeat="detail in specialoffersdetails.Details">                      <a class="cursor-pointer" data-toggle="modal" data-target="#special-offers-modal-{{id}}{{detail.Index}}" data-metrics="{&quot; btnname&quot; &quot; discountdet&quot; }">                          <span class="top-padding-7 bottom-offset-5 text-blue">                              {{detail.Description}}                          <\/span>                      <\/a>                      <!-- Special Offers Modal -->                      <div class="modal special-offers-modal hide-element fade text-default" id="special-offers-modal-{{id}}{{detail.Index}}" tabindex="-1" role="dialog" aria-labelledby="specialOffersModal" aria-hidden="true">                          <div class="modal-header">                              <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><\/button>                              <h3 data-ng-bind-html="specialoffersdetails.Title"><\/h3>                          <\/div>                          <div class="modal-body">                              <ul class="unstyled">                                  <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="detail.Description"><\/li>                                  <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="detail.ExpirationText"><\/li>                                  <li class="left-offset-7 modal-last-li"><small data-ng-bind-html="detail.LegalText"><\/small><\/li>                              <\/ul>                          <\/div>                          <div class="modal-footer">                              <button class="btn btn-tertiary pull-left" data-dismiss="modal" aria-hidden="true" type="button">{{specialoffersdetails.ModalCloseLabel}}<\/button>                          <\/div>                      <\/div>                  <\/li>              <\/ul>          <\/div>      <\/div>  <\/div>              ',link:function(n){n.styling=n.label?n.mobile?"mobile-special-offers":"berry-stroke":n.mobile?"mobile-discount-details":"berry-stroke";n.id=n.$id;$(document).on("click",".special-offers-modal-jump",function(n){var i,t,r;n.preventDefault();i=n.target.id;i!==undefined&&(t=$(this).closest(".modal").attr("id"),r="",$(this).closest(".modal").attr("aria-labelledby")=="specialOffersModal"&&(r=t.split("special-offers-modal-"),t=r[1],$("#special-offers-modal-"+t+" .modal-body").animate({scrollTop:$("#"+i+"-"+t).offset().top-($("#special-offers-modal-"+t).offset().top+50)},10)))});$(document).on("show.bs.modal",".special-offers-modal",function(n){$(n.currentTarget).detach()})}}});shopApp.directive("psPricing",function(){return{scope:{pricing:"=",itemid:"=",addtocartcta:"="},restrict:"EA",template:'<div data-ng-if="pricing.DellPrice.Value" class="alienware-override dell-pricing-section">      <div data-ng-if="pricing.ShowMarketPrice || pricing.ShowSavings" class="dell-pricing-total-savings-section">          <p data-ng-if="pricing.ShowMarketPrice" class="top-padding-5 bottom-offset-0">                            <a data-toggle="tooltip"                 data-placement="auto left"                 title="{{legalText}}"                 onmouseenter="if ($(window)[0].Dell.Metrics.sc.country === \'us\' && $(window)[0].Dell.Metrics.sc.segment !== \'bsd\') { $(this).tooltip(\'show\') }">                  <small>{{pricing.MarketValue.Label}}<\/small>                  <span data-ng-if="pricing.MarketPriceTechNote.TechNoteKey" technote key="pricing.MarketPriceTechNote.TechNoteKey"><\/span>              <\/a>              <span data-ng-if="!pricing.ShowClickToSeePrice" class="pull-right strikethrough"><small>{{pricing.MarketValue.Value}}<\/small><\/span>              <span data-ng-if="pricing.ShowClickToSeePrice" class="pull-right"><small>{{pricing.MarketValue.Value}}<\/small><\/span>          <\/p>          <p data-ng-if="pricing.ShowSavings" class="bottom-offset-2">              <a class="text-blue cursor-pointer" manage-modal-position data-toggle="modal" data-target="#total-savings-modal-{{id}}"><span><small>{{pricing.TotalSavings.Label}}<\/small><\/span><\/a>              <span class="pull-right"><small>{{pricing.TotalSavings.Value}}<\/small><\/span>          <\/p>      <\/div>      <div data-ng-if="pricing.ShowFreeShipping" data-ng-class="{\'bottom-offset-2\': true, \'top-offset-5\': !pricing.ShowMarketPrice && !pricing.ShowSavings}">          <strong>              <small>                  <span>{{pricing.ShippingCost.Label}}<\/span>                  <span class="pull-right">{{pricing.ShippingCost.Value}}<\/span>              <\/small>          <\/strong>      <\/div>      <div data-ng-if="pricing.ShowDellPrice" class="bottom-offset-2 dellPricing {{dellPricingCss}}">          <h5 class="text-gray-dark bottom-offset-0">              <strong>{{pricing.DellPrice.Label}}<span class="pull-right" data-testid="sharedPSPDellPrice">{{pricing.DellPrice.Value}}<\/span><\/strong>          <\/h5>      <\/div>      <div data-ng-if="pricing.ShowClickToSeePrice" data-ng-class="{\'bottom-offset-2 dellPricing\' : true, \'top-offset-negative-10\': pricing.ShowDellPrice }" class="{{dellPricingCss}}" id="clickForPrice">          <a data-ng-click="AddItemToCart($event)" class="text-blue cursor-pointer">              <span><small>{{pricing.ClickToSeePriceLabel.Value}}<\/small><\/span>          <\/a>      <\/div>      <div class="pricing-legal top-offset-5">          <div data-ng-if="pricing.ShowPricingLegalText" class="bottom-offset-2">              <small data-ng-bind-html="pricing.PricingLegalText.Value"><\/small>          <\/div>          <div data-ng-if="pricing.ShowShipMethodText" class="bottom-offset-2">              <small>                  <a data-ng-href="pricing.ShipMethodLearnLink.Url" target="_blank">{{pricing.ShipMethodText.Value}}<\/a>                  <a class="top-offset-3" data-ng-if="pricing.ShowHolidayShippingText" data-ng-href="pricing.HolidayShippingLearnLink.Url" target="_blank">{{pricing.HolidayShippingText.Value}}<\/a>              <\/small>          <\/div>      <\/div>      <div data-ng-if="pricing.ShowPromoMessage" class="bottom-offset-2 top-offset-20">          <strong>              <span data-ng-bind-html="pricing.PromotionalMessage.Value"><\/span>          <\/strong>      <\/div>  <\/div>    <!-- Total Savings Modal -->  <div class="modal hide-element fade total-savings-modal" id="total-savings-modal-{{id}}" tabindex="-1" role="dialog" aria-labelledby="totalSavingsModal" aria-hidden="true">      <div class="modal-header">          <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><\/button>          <h3>{{pricing.SavingsDetails.Title}}<\/h3>      <\/div>      <div class="modal-body">          <ul data-ng-if="pricing.SavingsDetails.Details.length == 1" class="unstyled top-offset-small">              <li class="left-offset-7 bottom-offset-mini">{{pricing.SavingsDetails.Details[0].Description}}<\/li>              <li class="left-offset-7 bottom-offset-mini">{{pricing.SavingsDetails.Details[0].ExpirationText}}<\/li>              <li class="left-offset-7 modal-last-li"><small>{{pricing.SavingsDetails.Details[0].LegalText}}<\/small><\/li>          <\/ul>          <div data-ng-if="pricing.SavingsDetails.Details.length > 1">              <div data-ng-repeat="savings in pricing.SavingsDetails.Details">                  <p data-ng-if="savings.ExpirationText || savings.LegalText" class="bottom-padding-small">                      <a class="cursor-pointer total-savings-modal-jump" id="savingsdetails-{{savings.Index}}">{{savings.Description}}<sup>{{savings.Index}}<\/sup><\/a>                  <\/p>                  <p data-ng-if="!savings.ExpirationText && !savings.LegalText" class="bottom-padding-small">{{savings.Description}}<\/p>              <\/div>              <div data-ng-repeat="savings in pricing.SavingsDetails.Details">                  <div data-ng-if="savings.ExpirationText || savings.LegalText" class="show-top-border" id="savingsdetails-{{savings.Index}}-{{id}}">                      <ul class="unstyled top-offset-small">                          <li class="modal-text-indent bottom-offset-mini">{{savings.Index}}. {{savings.Description}}<\/li>                          <li class="left-offset-7 bottom-offset-mini">{{savings.ExpirationText}}<\/li>                          <li class="left-offset-7 modal-last-li"><small>{{savings.LegalText}}<\/small><\/li>                      <\/ul>                  <\/div>              <\/div>          <\/div>      <\/div>      <div class="modal-footer">          <button class="btn btn-tertiary pull-left" data-dismiss="modal" aria-hidden="true" type="button">{{pricing.SavingsDetails.ModalCloseLabel}}<\/button>      <\/div>  <\/div>  ',link:function(n){n.id=n.$id;typeof n.pricing!="undefined"&&(n.dellPricingCss=!n.pricing.TotalSavings.Value||n.pricing.TotalSavings.InnerValue=="0"||!n.pricing.SavingsDetails.Visible?"top-padding-5":"");n.AddItemToCart=function(t){var i=$(t.currentTarget).html(),r=angular.element(t.currentTarget);window.location.href=n.addtocartcta.Url;$(t.currentTarget).html(i)};$(document).on("click",".total-savings-modal-jump",function(n){var i,t,r;n.preventDefault();i=n.target.id;i!==undefined&&(t=$(this).closest(".modal").attr("id"),r="",$(this).closest(".modal").attr("aria-labelledby")=="totalSavingsModal"&&(r=t.split("total-savings-modal-"),t=r[1],$("#total-savings-modal-"+t+" .modal-body").animate({scrollTop:$("#"+i+"-"+t).offset().top-($("#total-savings-modal-"+t).offset().top+50)},200)))});$(document).on("show.bs.modal",".total-savings-modal",function(n){$(n.currentTarget).detach()});typeof n.pricing!="undefined"&&(n.legalText=$(window)[0].Dell.Metrics.sc.country==="us"&&$(window)[0].Dell.Metrics.sc.segment!=="bsd"&&typeof n.pricing.MarketValueLegalText!="undefined"?n.pricing.MarketValueLegalText.Value:"")}}});shopApp.directive("psFinance",function(){return{scope:{dellprice:"=",financemarketing:"=",comostate:"="},restrict:"EA",link:function(n){n.url=n.financemarketing.ApplyLink.Url.replace("returnurl%3d","returnurl%3d"+encodeURIComponent(window.location.href))},template:'<div data-ng-if="financemarketing.IsVisible" class="gray-top-border top-offset-4 price-stack-finance-section" data-ng-controller="financeStackController">      <div class="top-offset-10">          <h5 class="pull-left bottom-offset-0 col-xs-5 left-padding-zero right-padding-zero">{{financemarketing.MarketingLabel}}<\/h5>          <small class="text-align-right col-xs-7 left-padding-zero right-padding-zero">              <a href="#dfs-modal" data-testid="shared_dpa_AsLowAsAnchor" data-ng-add-class data-open="#collapseTwo" data-close="#collapseOne" data-ng-click=\'loadDFSContent(dellprice)\' data-toggle="modal">{{financemarketing.AsLowAsLabel}} {{financemarketing.Amount}}{{financemarketing.PerPeriodText}}<\/a>          <\/small>      <\/div>      <div class="clear-both bottom-offset-7">          <small>              <!--Hot DPA-->              <!--Warm DPA-->              <!--Cold State / Hot DA-->              <a data-ng-if="comostate == \'WarmDpaNoDa\' || comostate == \'WarmDaDpa\'" data-ng-href="https://www.dell.com/identity/global/loginorregister?connectionId=98254675-AC6F-47D9-A7E4-4537724F135D&wreply=https%3a%2f%2fwww.dell.com%2fen-us%2fmyaccount%3fview%3djoindelladvantage%26return%3dhttp%25253a%25252f%25252fecomm.dell.com%25252fdellstore%25252fbasket.aspx&c=us&l=en&r=us&s=eep&cs=2236" target="{{financemarketing.ApplyLink.Target}}">Sign In<\/a>              <a data-ng-if="comostate == \'Cold\' || comostate == \'HotDaNoDpa\' || comostate == \'HotNoDaNoDpa\' || comostate == \'WarmDaNoDpa\'                 || comostate == \'WarmNoDaNoDpa\'" data-ng-href="{{url}}" target="_self" data-metrics="{&quot; btnname&quot; &quot; dfsfinapply&quot; }">{{financemarketing.ApplyText}}<\/a>          <\/small>      <\/div>  <\/div>  '}});shopApp.directive("psRewards",function(){return{scope:{productrewards:"=",ismember:"=",hasprofile:"=",comorewardsmessage:"="},restrict:"EA",template:'<div class="gray-top-border price-stack-finance-section dell-advantage-message">      <div class="top-offset-10">          <span class="text-blue glyphicon glyphicon-star pull-left"><\/span>          <h5 class="pull-left left-padding-mini">{{productrewards.DellAdvantageMessagingTooltipPrefix}}<\/h5>          <a class="pull-right text-blue cursor-pointer rewards-popover {{$id}}" tabindex="0" role="button">              <small>                  <span class="top-offset-0">{{productrewards.DellAdvantageMessagingTooltipSuffix}}<\/span>              <\/small>          <\/a>      <\/div>  <\/div>  ',link:function(n){$(".rewards-popover").popover({content:n.comorewardsmessage!=null&&n.comorewardsmessage!==""?n.comorewardsmessage:n.ismember?n.productrewards.DellAdvantageMessagingAuthenticatedMember:n.hasprofile?n.productrewards.DellAdvantageMessagingAuthenticated:n.productrewards.DellAdvantageMessagingUnauthenticated,title:n.productrewards.DellAdvantageMessagingTitle+"<a href='#' type='button' class='close "+n.$id+"' id='"+n.$id+"' data-dismiss='popover' aria-hidden='true'> <span class='glyphicon glyphicon-remove' aria-hidden='true'><\/span><\/a>",container:"body",html:!0,placement:"auto right"}).on("hidden.bs.popover",function(){$("#"+n.$id).closest(".popover").remove()}).on("show.bs.popover",function(){var n=$(".popover").find("a.close").attr("id");$("a.rewards-popover."+n).popover("toggle")});$(document).on("click","#"+n.$id,function(t){t.preventDefault();$("a.rewards-popover."+n.$id).popover("hide")})}}});shopApp.directive("psShipping",["cfcService",function(n){return{scope:{shipping:"=",ordercode:"=",stacktype:"="},restrict:"EA",template:'<div class="bottom-offset-5 show-top-border top-padding-3">      <div data-ng-if="!cfcEnabled">          <div data-ng-if="shipping.ShowShippingMessaging">              <img class="pull-left top-padding-micro right-padding-mini top-offset-5 img-responsive" data-ng-src="{{shipping.ShippingImage.ImageUri}}" alt="{{shipping.ShippingImage.AltText}}"/>              <div class="nofloat left-padding-mini display-table">                  <small>                      <a tabindex="0" class="text-orange cursor-pointer" role="button" custom-popover-html popover-html="{{shipping.ShippingMessage.Value}}" popover-title="{{shipping.ShippingTitle.Value}}" popover-placement="auto top">{{shipping.ShippingTitle.Value}}&nbsp;<\/a>                      <span data-ng-bind-html="shipping.ShippingSubTitle.Value"><\/span>                  <\/small>                  <br/>                  <div class="top-offset-negative-2">                      <small><span data-ng-bind-html="shipping.ShippingDate.Value"><\/span><\/small>                  <\/div>              <\/div>          <\/div>          <span data-ng-if="!shipping.ShowShippingMessaging">              <small><span data-ng-bind-html="shipping.ShippingDate.Value"><\/span><\/small>          <\/span>      <\/div>      <div data-ng-if="cfcEnabled">          <div class="cfc-shipping">              <div>                  <div>                      <img data-ng-if="shipping.ShowShippingMessaging" class="pull-left top-padding-micro right-padding-mini top-offset-5 img-responsive" data-ng-src="{{shipping.ShippingImage.ImageUri}}" alt="{{shipping.ShippingImage.AltText}}" />                  <\/div>                  <div class="nofloat left-padding-mini display-table">                      <small data-ng-if="shipping.ShippingTitle.Value !== \'\'">                          <a tabindex="0" class="text-orange cursor-pointer" role="button" custom-popover-html popover-html="{{shipping.ShippingMessage.Value}}" popover-title="{{shipping.ShippingTitle.Value}}" popover-placement="auto top">{{shipping.ShippingTitle.Value}}&nbsp;<\/a>                          <span data-ng-bind-html="shipping.ShippingSubTitle.Value"><\/span>                      <\/small>                      <div class="top-offset-negative-2" data-ng-if="shipping.ShippingTitle.Value === \'\'">                          <small><span data-ng-bind-html="shipping.ShippingDate.Value"><\/span><\/small>                      <\/div>                      <div>                          <a href="" data-metrics="{&quot;btnname&quot;:&quot;linkviewdeliverydate&quot;}" data-target="#cfc-modal" class="small-font" data-ng-click=\'passOrderCode()\' data-toggle="modal">{{shipping.EstimatedDeliveryModel.PrimaryCtaCaption}}<\/a>                      <\/div>                  <\/div>              <\/div>          <\/div>      <\/div>  <\/div>  ',link:function(t){t.cfcEnabled=t.stacktype===0&&t.shipping.EstimatedDeliveryModel.CfcEnabled;t.passOrderCode=function(){n.loadModal(t.ordercode,t.shipping)}}}}]);shopApp.directive("psEvaluecode",function(){return{scope:{evaluelabel:"=",evaluecode:"="},restrict:"EA",template:'<div class="bottom-offset-mini show-top-border">      <div class="text-gray top-offset-5 text-small">          {{evaluelabel}} {{evaluecode}}      <\/div>  <\/div>'}});shopApp.directive("psStockstatus",function(){return{scope:{stockstatus:"=",shipdate:"=",preorderlabel:"=",location:"=",addonlabel:"=",addoncompanionlabel:"=",comingsoonlabel:"=",availablelabel:"=",notifylink:"=",notavailablelabel:"=",instoreslabel:"=",findretailerlink:"=",availablecountlabel:"=",addtocartlink:"=",outofstocklabel:"=",preordertodaylabel:"="},restrict:"EA",template:'<div data-ng-if="stockstatus !== 0" class="show-top-border">      <!-- None -->      <div data-ng-if="stockstatus === 0"><\/div>        <!-- AddOnItem -->      <div data-ng-if="stockstatus === 1" class="top-offset-10">          <p class="bottom-offset-0" data-ng-bind-html="addonlabel"><\/p>          <p data-ng-if="location === 14" class="small-font"><\/p><!--<a>Dell UltraSharp Monitor - U2417H<\/a>-->      <\/div>        <!-- ComingSoon -->      <div data-ng-if="stockstatus === 2" class="top-offset-10">          <div class="pull-left padding-zero" ng-class="notifylink.Url ? \'col-xs-7\' : \'\'">              <p class="col-xs-12 bottom-offset-0" data-ng-bind-html="comingsoonlabel"><\/p>              <p data-ng-if="location === 14 && shipdate" class="col-xs-12 bottom-offset-0" data-ng-bind-html="shipdate"><\/p>          <\/div>          <div data-ng-if="location === 14 && notifylink.Url" class="pull-left">              <a data-ng-href="{{notifylink.Url}}" class="btn btn-primary left-offset-small" target="_self" title="notifylink.Caption" data-ng-bind-html="notifylink.Caption"><\/a>          <\/div>      <\/div>        <!-- EOL -->      <div data-ng-if="stockstatus === 3" class="top-offset-10">          <p data-ng-bind-html="notavailablelabel"><\/p>      <\/div>        <!-- InStoreOnly -->      <div data-ng-if="stockstatus === 4" class="top-offset-10">          <div data-ng-if="location === 14">              <p class="pull-left top-padding-10 padding-zero" ng-class="FindRetailerLink.Url ? \'col-xs-7\' : \'\'" data-ng-bind-html="instoreslabel"><\/p>              <a data-ng-if="FindRetailerLink.Url" data-ng-href="{{FindRetailerLink.Url}}" class="btn btn-primary top-offset-5 pull-left" target="_self" title="findretailerlink.Caption" data-ng-bind-html="findretailerlink.Caption"><\/a>          <\/div>          <div data-ng-if="location !== 14">              <p class="pull-left top-padding-5" data-ng-bind-html="instoreslabel"><\/p>          <\/div>      <\/div>        <!-- LimitedStock -->      <div data-ng-if="stockstatus === 5" class="top-offset-10">          <div class="pull-left">              <p class="pull-left top-padding-5" data-ng-bind-html="availablecountlabel"><\/p>              <a data-ng-if="location === 14" data-ng-href="{{addtocartlink.Url}}" class="btn btn-success text-white whitespace-normal left-offset-small" data-loading-text="Please wait..." data-ng-click="AddItemToCart()" target="_self" title="addtocartlink.Caption" data-ng-bind-html="addtocartlink.Caption"><\/a>          <\/div>      <\/div>        <!-- OutOfStock -->      <div data-ng-if="stockstatus === 6" class="top-offset-10">          <p class="pull-left top-padding-5" data-ng-bind-html="outofstocklabel"><\/p>          <a data-ng-if="location === 14 && notifylink.Url" data-ng-href="{{notifylink.Url}}" class="btn btn-primary left-offset-small" target="_self" title="notifylink.Caption" data-ng-bind-html="notifylink.Caption"><\/a>      <\/div>        <!-- PreOrder -->      <div data-ng-if="stockstatus === 7" class="top-offset-10">          <div data-ng-if="location === 14">              <p data-ng-if="shipdate" data-ng-bind-html="shipdate" class="pull-left top-padding-5 right-offset-small"><\/p>              <a data-ng-href="{{addtocartlink.Url}}" class="btn btn-primary" target="_self" title="preorderlabel" data-ng-bind-html="preorderlabel" data-loading-text="Please wait..." data-ng-click="AddItemToCart()"><\/a>          <\/div>          <div data-ng-if="location !== 14">              <p class="pull-left top-padding-5" data-ng-bind-html="preordertodaylabel"><\/p>          <\/div>      <\/div>  <\/div>'}});shopApp.directive("psAnalyticsAddtocart",function(){return{scope:{AnalyticsConfigurator:"="},restrict:"EA",link:function(n,t){var u;if(n.$root.AnalyticsConfigurator!=null){var r=decodeURI(n.$root.AnalyticsConfigurator),f=r.substr(r.indexOf("__")+2),i=f.split(";").join(":");i=i.split("~").join("|");u={browsemod:i};angular.element(t).data("metrics",u)}}}});shopApp.directive("psLinks",["addToCartService","CandyAisleApiService","ConfiguratorService","$cookieStore","$http","$rootScope","ProductStackService","httpGetService","recommendationsService",function(n,t,i,r,u,f,e,o,s){return{scope:{links:"=",productid:"=",producttype:"=",disableaddtocart:"=",showaddtocartcta:"=",showviewdetailscta:"=",isMobile:"=",stacklocation:"=",skiplinklabel:"@",hasrecommendations:"=",doctype:"=",position:"=",variant:"="},restrict:"EA",template:'<!--add to cart -->  <a target="_self" ng-class="metricsClass" class="btn btn-success text-white col-xs-12 bottom-offset-10 whitespace-normal {{$parent.$parent.item.Options.Settings.Location === 10 ? \'dellmetrics-addtocart\' : \'\'}}" ps-analytics-addtocart data-testid="addToCartButton" data-ng-if="showaddtocartcta" data-loading-text="Please wait..." data-ng-click="AddItemToCart()"     once-text="links.AddToCartLink.Caption" data-ng-disabled="disableaddtocart" data-metrics="{&quot;clickthru&quot; : &quot;products&quot;, &quot;doctype&quot; : &quot;{{doctype}}&quot;, &quot;position&quot; : &quot;{{position}}&quot;, &quot;variant&quot; : &quot;{{variant}}&quot;, &quot;productid&quot; : &quot;{{productid}}&quot;}"><\/a>  <!--view details-->  <a data-ng-if="showviewdetailscta" target="_self" class="btn btn-primary chat-btn text-white col-xs-12 bottom-offset-10 whitespace-normal {{$parent.$parent.item.Options.Settings.Location === 10 ? \'dellmetrics-dclickthru\' : \'\'}}" data-testid="viewdetails" data-ng-href="{{links.ViewDetailsLink.Url}}" once-text="links.ViewDetailsLink.Caption" data-metrics="{&quot;clickthru&quot; : &quot;products&quot;, &quot;doctype&quot; : &quot;{{doctype}}&quot;, &quot;position&quot; : &quot;{{position}}&quot;, &quot;variant&quot; : &quot;{{variant}}&quot; }"><\/a>  ',link:function(n){n.moduleIndex=0;n.metricsClass=n.$root.metricsClass;n.getPopoverContainer=$(".device-xs").is(":visible")?"#ctaRow":".row";n.AddItemToCart=function(){var r,e;if(f.$broadcast("addingToCart"),i.HasValidationErrors()){f.$broadcast("validationError");return}if(s.getStackLocation()==="rec"&&n.productid===s.getItemId())n.$parent.showSpinner=!0,u.post(s.getApiUrl()+s.getCartUrl(),s.getCartItem()).success(function(){n.$parent.showSpinner=!1;window.location.href=n.links.AddToCartLink.Url}).error(function(){n.$parent.showSpinner=!1;window.location.href=n.links.AddToCartLink.Url});else{if(s.getStackLocation()==="rec"&&n.productid!==s.getItemId()){n.$parent.isQuikViewModal?(n.$parent.$parent.showSpinner=!0,r=n.getItemIndex(n.productid),e=n.moduleIndex):(n.$parent.$parent.$parent.$parent.showSpinner=!0,r=$(window).width()<768?n.$parent.$parent.$index:n.$parent.$index,e=n.$parent.$parent.$parent.moduleIndex);o.getData(t.candyAisleApiUrl(e,r)).success(function(t){n.$parent.isQuikViewModal?(n.$parent.$parent.showSpinner=!1,$("#quikview-modal").modal("hide")):n.$parent.$parent.$parent.$parent.showSpinner=!1;i.setSelectionState(t.SelectionCode,t.CartItemId);i.setConfiguratorState(t.Stack.ConfiguratorState);f.AnalyticsConfigurator=t.SelectionCode;s.setDataModel(t);f.$broadcast("candyAddedToCart")}).error(function(){n.$parent.isQuikViewModal?(n.$parent.$parent.showSpinner=!1,$("#quikview-modal").modal("hide")):n.$parent.$parent.$parent.$parent.showSpinner=!1});return}n.stacklocation==="svc"?n.hasrecommendations?window.location.href=n.links.AddToCartLink.Url:u.post(s.getApiUrl()+s.getCartUrl(),i.getAddToCartItemJson()).success(function(){window.location.href=n.links.AddToCartLink.Url}).error(function(){window.location.href=n.links.AddToCartLink.Url}):window.location.href=n.links.AddToCartLink.Url}};n.getItemIndex=function(t){var i=0;return angular.forEach(n.$parent.$parent.DataModel.ModuleGroups,function(r,u){angular.forEach(r.Items,function(r,f){if(r.Stack.ItemIdentifier===t){i=f;n.moduleIndex=u;return}})}),i}}}}]);shopApp.directive("psCompare",["$rootScope","ProductStackService",function(n,t){return{scope:{links:"=",productid:"=",producttype:"=",showcomparecta:"=",comparelimitmessagelabel:"=",comparelimitlinklabel:"=",compareaddtolabel:"=",isMobile:"="},restrict:"EA",template:'<!--add to compare-->  <div data-ng-if="showcomparecta" class="col-xs-12 compare-cta">      <div class="compare-checkbox width-100-percent">          <!--<div class="checkbox-compare checkbox-{{productid}}" data-testid="addToCompareCheckBox" data-ng-click="toggleCheckMark($event)">              <i aria-hidden="true" class="icon-small-checkmark text-gray-medium-light" data-testid="psCompareCheckBox"><\/i>          <\/div>-->          <input type="checkbox" value="1" id="addToCompareCheckBox" name="" data-testid="addToCompareCheckBox" class="checkbox-{{productid}}" data-ng-click="toggleCheckMark($event)" /><span class="left-padding-mini add-to-compare-{{productid}}">{{compareaddtolabel}}<\/span>          <a target="_self" class="btn btn-primary text-white addToCompare-{{productid}} hidden top-offset-negative-4 width-80-percent" data-testid="psCompareButton" data-ng-click="goToCompare()">{{links.CompareLink.Caption}} {{$parent.$root.comparecount}}<\/a>          <a class="popover-{{productid}} cursor-pointer left-offset-negative-70" tabindex="0" data-trigger="manual" data-container="body" data-placement="auto bottom" data-html="true" data-content="{{comparelimitmessagelabel}}<br /><a target=\'_self\' data-ng-click=\'goToCompare()\'>{{comparelimitlinklabel}}<\/a>">&nbsp;<\/a>      <\/div>  <\/div>',link:function(i){n.comparecount="";i.toggleCheckMark=function(t){var r=angular.element(t.currentTarget);amplify.store("productOC:size")===3?(n.popoverId&&($(".popover-"+n.popoverId).popover("destroy"),$("div.popover.fade.bottom").remove()),r[0].checked?(t.stopPropagation(),r[0].checked=!1,$(".popover-"+i.productid).popover("show"),n.popoverId=i.productid):(SHOP.Transactional.Compare.removeProduct(i.productid,"ups"),$("a.addToCompare-"+i.productid).addClass("hidden"),$("span.add-to-compare-"+i.productid).removeClass("hidden"))):r[0].checked?(SHOP.Transactional.Compare.persistProduct(i.productid,i.producttype,"ups"),amplify.store("productOC:size")>1&&angular.forEach(amplify.store("productOC"),function(n){$("span.add-to-compare-"+n).addClass("hidden");$("a.addToCompare-"+n).removeClass("hidden")})):(SHOP.Transactional.Compare.removeProduct(i.productid,"ups"),$("a.addToCompare-"+i.productid).addClass("hidden"),$("span.add-to-compare-"+i.productid).removeClass("hidden"),amplify.store("productOC:size")<2&&angular.forEach(amplify.store("productOC"),function(n){$("a.addToCompare-"+n).addClass("hidden");$("span.add-to-compare-"+n).removeClass("hidden")}));n.comparecount="("+amplify.store("productOC:size")+"/3)"};i.goToCompare=function(){var n=t.goToCompare();window.location.href=i.links.CompareLink.Url+n}}}}]);shopApp.directive("customPopoverHtml",function(){return{restrict:"A",link:function(n,t,i){$(t).popover({trigger:"focus",html:!0,content:i.popoverHtml,placement:"left auto",title:i.popoverTitle,container:"body"}).on("shown.bs.popover",function(){var n=$(".popover.fade.in");typeof n[0]!="undefined"&&n[0].offsetLeft<0&&n.css("left","0")}).on("hidden.bs.popover",function(){$(".popover").remove()})}}});shopApp.directive("productStackBug",function(){return{scope:{message:"=",offset:"=",mobile:"="},restrict:"EA",template:'<h4 class="bug-container-title {{bugCSS}} {{smallFont}}" once-text="message"><\/h4>  ',link:function(n){n.bugCSS=n.offset?"top-offset-medium":"";n.smallFont=n.mobile?"p-small":""}}});shopApp.directive("polarisProductStackBug",function(){return{scope:{bugtext:"="},restrict:"EA",template:'<div class="bug_text col-xs-12" style="padding-left:5px;">      <span>{{bugtext}}<\/span>      <span class="bug_pointer">&nbsp;<\/span>  <\/div>    '}});shopApp.directive("productStackAsset",function(){return{scope:{url:"=",link:"=",linkurl:"="},restrict:"EA",template:'<a data-ng-if="link" data-ng-href="{{linkurl}}" target="_self">      <img class="image-centered img-responsive" data-ng-src="{{url}}"/>  <\/a>  <div data-ng-if="!link">      <img class="image-centered img-responsive" data-ng-src="{{url}}"/>  <\/div>'}});shopApp.directive("productStackTitle",function(){return{scope:{text:"=",price:"=",link:"=",linkurl:"=",bluetext:"="},restrict:"EA",template:'<h4 class="regular-font bottom-offset-0 {{textColor}}">      <a data-testid="SnPDealsItem" data-ng-if="link" data-ng-href="{{linkurl}}" target="_self">          <span class="text-blue"><strong class="force-strong" data-testid="configItemProductTitle">{{text}}<\/strong><\/span><br />          <span class="top-offset-small bottom-offset-0"><strong class="force-strong" data-testid="SnPItemPrice">{{price}}<\/strong><\/span>      <\/a>      <span data-ng-if="!link"><strong class="force-strong">{{text}}<\/strong><br /><\/span>      <span data-ng-if="!link" class="top-offset-small bottom-offset-0"><strong class="force-strong">{{price}}<\/strong><\/span>  <\/h4>  ',link:function(n){n.textColor=n.link||n.bluetext?"text-blue":"text-gray-dark"}}});shopApp.directive("productStackRating",function(){return{scope:{scroll:"=",value:"=",count:"=",label:"=",side:"=",mobile:"=",disablelink:"=",linkurl:"="},restrict:"EA",template:'<a data-ng-if="scroll" data-scroll-to="ratings" style="cursor:pointer;" class="scroll-to-ratings" target="_self">      <div class="starRating top-padding-1 {{offset}}">          <ratings value="value"><\/ratings>      <\/div>      <p class="{{mobileStyling}}">          <span>{{count}}&nbsp;<span once-text="label"><\/span><\/span>      <\/p>  <\/a>    <a data-ng-if="!scroll && !disablelink" data-ng-href="{{linkurl}}?view=ratings" target="_self">      <div class="starRating top-padding-1 pull-left {{offset}}">          <ratings value="value"><\/ratings>      <\/div>      <p class="{{mobileStyling}}">          <span>{{count}}&nbsp;<span once-text="label"><\/span><\/span>      <\/p>  <\/a>    <a id="angularRatings" data-ng-if="!scroll && disablelink" id="configRatings" style="cursor: pointer;" class="override-opacity" target="_self">      <div class="starRating top-padding-1 pull-left right-padding-mini {{offset}}">          <ratings value="value"><\/ratings>      <\/div>      <p class="{{mobileStyling}} top-padding-2">          <span ng-if="count > 0"> {{count}}&nbsp;<span once-text="label"><\/span><\/span>          <span ng-if="count == 0"> ({{count}})<span once-text=""><\/span><\/span>      <\/p>  <\/a>    ',link:function(n){n.showOnSide=n.side?"customRatings":"top-offset-negative-5 bottom-offset-mini";n.offset=n.mobile?n.scroll?"bottom-offset-0":"":n.scroll&&!n.side?"bottom-offset-negative-7":"bottom-offset-0";n.mobileStyling=n.mobile?"":n.showOnSide}}});shopApp.directive("productStackSpecs",function(){return{scope:{pss:"=",tablet:"="},restrict:"EA",templateUrl:"/content/templates/systems/productStack/specs.html"}});shopApp.directive("productStackFeature",function(){return{scope:{flag:"=",family:"=",featuretext:"="},restrict:"EA",template:'<div data-ng-if="flag" class="show-top-border">      <p class="top-offset-10 bottom-offset-mini">          <i aria-hidden="true" class="icon-large-touch text-blue touch-enabled-offset"><\/i><span class="text-gray-dark">{{featuretext}}<\/span>      <\/p>  <\/div>    <p data-ng-if="family" class="top-offset-10 bottom-offset-mini">      <i aria-hidden="true" class="icon-large-touch text-blue touch-enabled-offset"><\/i><span class="text-gray-dark">{{featuretext}}<\/span>  <\/p>  '}});shopApp.directive("productStackIconography",function(){return{scope:{specs:"="},restrict:"EA",template:'<ul class="unstyled att-bars">      <li data-ng-repeat-start="spec in specs"><small>{{spec.Label}}<\/small><\/li>      <li data-ng-repeat-end class="top-offset-negative-4 hidden-xs">          <ul class="graph unstyled">              <li data-ng-repeat="i in repeatNumberOfTimes() track by $index" data-ng-class="{\'bar\': true, \'blue\': $index < spec.Value, \'gray-light\': $index >= spec.Value}"><\/li>          <\/ul>      <\/li>  <\/ul>',link:function(n){n.repeatNumberOfTimes=function(){return new Array(5)}}}});shopApp.directive("productStackBlurb",function(){return{scope:{blurb:"=",border:"=",mobile:"="},restrict:"EA",template:'<div data-ng-if="border" class="show-top-border productBlurbStack">      <p class="top-offset-small bottom-offset-mini" data-ng-bind-html="blurb"><\/p>  <\/div>    <p data-ng-if="!border" class="top-offset-10 bottom-offset-mini {{mobileStyling}}" data-ng-bind-html="blurb"><\/p>    ',link:function(n){n.mobileStyling=n.mobile?"mobile-product-stack-padding":""}}});shopApp.directive("productStackSnpBlurb",function(){return{scope:{shiplabel:"=",shiptext:"=",showshiplabel:"=",showshiptext:"=",manufacturelabel:"=",manufacturetext:"=",dellpartlabel:"=",dellparttext:"="},restrict:"EA",template:'<ul class="unstyled">      <li>          <span data-ng-if="showshiplabel">{{shiplabel}}<\/span><span data-ng-if="showshiplabel">&nbsp;<\/span><span data-ng-if="showshiptext">{{shiptext}}<\/span>      <\/li>      <li data-ng-if="manufacturetext">          <span>{{manufacturelabel}}<\/span><span>{{manufacturetext}}<\/span>      <\/li>      <li data-ng-if="dellparttext">          <span>{{dellpartlabel}}<\/span><span>{{dellparttext}}<\/span>      <\/li>  <\/ul>  '}});shopApp.directive("manageModalPosition",["$timeout",function(n){return{restrict:"A",link:function(t,i){i=angular.element(i);!i.data("modalHasBeenSet")&&$("body").hasClass("fixModals")&&(i.data("modalHasBeenSet",!0),n(function(){var n=i.data("target"),t=$(""+n+"").clone(!0);$(""+n+"").remove();$("body").prepend(t)},0))}}}]);shopApp.directive("productStackSpecialOffers",function(){return{scope:{label:"=",specialoffersdetails:"="},restrict:"EA",template:'<div data-ng-if="specialoffersdetails.Visible && label" class="mobile-special-offers text-blue left-padding-small pricing-cell-top">      <a class="cursor-pointer" data-toggle="modal" data-target="#special-offers-modal-{{id}}">          <h5 class="top-padding-smaller text-blue">              <span style="font-weight: bold;">{{label}}<\/span>          <\/h5>      <\/a>  <\/div>    <!-- Special Offers Modal -->  <div class="modal special-offers-modal hide-element fade" id="special-offers-modal-{{id}}" tabindex="-1" role="dialog" aria-labelledby="specialOffersModal" aria-hidden="true">      <div class="modal-header">          <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><\/button>          <h3 data-ng-bind-html="specialoffersdetails.Title"><\/h3>      <\/div>      <div class="modal-body">          <ul data-ng-if="specialoffersdetails.Details.length == 1" class="unstyled">              <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="specialoffersdetails.Details[0].Description"><\/li>              <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="specialoffersdetails.Details[0].ExpirationText"><\/li>              <li class="left-offset-7 modal-last-li"><small data-ng-bind-html="specialoffersdetails.Details[0].LegalText"><\/small><\/li>          <\/ul>          <div data-ng-if="specialoffersdetails.Details.length > 1">              <div data-ng-repeat="offer in specialoffersdetails.Details">                  <p data-ng-if="offer.ExpirationText || offer.LegalText" class="bottom-padding-small">                      <a class="cursor-pointer special-offers-modal-jump" id="specialofferdetails-{{offer.Index}}" data-ng-bind-html="offer.Description"><sup data-ng-bind-html="offer.Index"><\/sup><\/a>                  <\/p>                  <p data-ng-if="!offer.ExpirationText && !offer.LegalText" class="bottom-padding-small">{{offer.Description}}<\/p>              <\/div>              <div data-ng-repeat="offer in specialoffersdetails.Details">                  <div data-ng-if="offer.ExpirationText || offer.LegalText" class="show-top-border" id="specialofferdetails-{{offer.Index}}-{{id}}">                      <ul class="unstyled top-offset-small">                          <li class="modal-text-indent bottom-offset-mini">{{offer.Index}}. {{offer.Description}}<\/li>                          <li class="left-offset-7 bottom-offset-mini" data-ng-bind-html="offer.ExpirationText"><\/li>                          <li class="left-offset-7 modal-last-li"><small data-ng-bind-html="offer.LegalText"><\/small><\/li>                      <\/ul>                  <\/div>              <\/div>          <\/div>      <\/div>      <div class="modal-footer">          <button class="btn btn-tertiary pull-left" data-dismiss="modal" aria-hidden="true" type="button">{{specialoffersdetails.ModalCloseLabel}}<\/button>      <\/div>  <\/div>            ',link:function(n){n.styling=n.label?n.mobile?"mobile-special-offers":"berry-stroke":n.mobile?"mobile-discount-details":"berry-stroke";n.id=n.$id;$(document).on("click",".special-offers-modal-jump",function(n){var i,t,r;n.preventDefault();i=n.target.id;i!==undefined&&(t=$(this).closest(".modal").attr("id"),r="",$(this).closest(".modal").attr("aria-labelledby")=="specialOffersModal"&&(r=t.split("special-offers-modal-"),t=r[1],$("#special-offers-modal-"+t+" .modal-body").animate({scrollTop:$("#"+i+"-"+t).offset().top-($("#special-offers-modal-"+t).offset().top+50)},10)))})}}});shopApp.directive("productStackPricing",function(){return{scope:{psp:"=",mobile:"=",justgray:"=",pricing:"="},restrict:"EA",template:'<div data-ng-if="psp.PricingDellPricingValue" class="padding-15-offset alienware-override dell-pricing-section">      <div data-ng-if="psp.ShowMarketPrice || psp.ShowSavings || psp.ShowMarketValue || psp.ShowTotalSavings" class="dell-pricing-total-savings-section">          <p data-ng-if="psp.ShowMarketPrice || psp.ShowMarketValue" class="top-padding-5 bottom-offset-0">              <span>                  <small>{{psp.PricingMarketPricingLabel}}<\/small>                  <span data-ng-if="psp.PricingMarketPricingTechNote.TechNoteKey" technote key="psp.PricingMarketPricingTechNote.TechNoteKey"><\/span>              <\/span>              <span class="pull-right strikethrough"><small>{{psp.PricingMarketPricingValue}}<\/small><\/span>          <\/p>          <p data-ng-if="psp.ShowSavings || psp.ShowTotalSavings" class="bottom-offset-2">              <a class="text-blue cursor-pointer" manage-modal-position data-toggle="modal" data-target="#total-savings-modal-{{id}}"><span><small>{{psp.PricingTotalSavingsLabel}}<\/small><\/span><\/a>              <span class="pull-right"><small>{{psp.PricingTotalSavingsValue}}<\/small><\/span>          <\/p>      <\/div>      <div data-ng-if="psp.ShowFreeShipping" data-ng-class="{\'top-offset-5\': !psp.ShowMarketPrice && !psp.ShowSavings, \'bottom-offset-5 top-offset-negative-2\': psp.ShowMarketPrice || psp.ShowSavings}">          <span><strong>{{psp.ShippingCost.Label}}<\/strong><\/span>          <span class="pull-right"><strong>{{psp.ShippingCost.Value}}<\/strong><\/span>      <\/div>      <div data-ng-if="psp.ShowDellPrice" class="bottom-offset-2 dellPricing {{dellPricingCss}}">          <h5 class="text-gray-dark">              <strong>{{psp.PricingDellPricingLabel}}<span class="pull-right" data-testid="sharedPSPDellPrice">{{psp.PricingDellPricingValue}}<\/span><\/strong>          <\/h5>      <\/div>  <\/div>    <!-- Total Savings Modal -->  <div class="modal hide-element fade" id="total-savings-modal-{{id}}" tabindex="-1" role="dialog" aria-labelledby="totalSavingsModal" aria-hidden="true">      <div class="modal-header">          <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><\/button>          <h3>{{psp.SavingsDetails.Title}}<\/h3>      <\/div>      <div class="modal-body">          <ul data-ng-if="psp.SavingsDetails.Details.length == 1" class="unstyled top-offset-small">              <li class="left-offset-7 bottom-offset-mini">{{psp.SavingsDetails.Details[0].Description}}<\/li>              <li class="left-offset-7 bottom-offset-mini">{{psp.SavingsDetails.Details[0].ExpirationText}}<\/li>              <li class="left-offset-7 modal-last-li"><small>{{psp.SavingsDetails.Details[0].LegalText}}<\/small><\/li>          <\/ul>          <div data-ng-if="psp.SavingsDetails.Details.length > 1">              <div data-ng-repeat="savings in psp.SavingsDetails.Details">                  <p data-ng-if="savings.ExpirationText || savings.LegalText" class="bottom-padding-small">                      <a class="cursor-pointer total-savings-modal-jump" id="savingsdetails-{{savings.Index}}">{{savings.Description}}<sup>{{savings.Index}}<\/sup><\/a>                  <\/p>                  <p data-ng-if="!savings.ExpirationText && !savings.LegalText" class="bottom-padding-small">{{savings.Description}}<\/p>              <\/div>              <div data-ng-repeat="savings in psp.SavingsDetails.Details">                  <div data-ng-if="savings.ExpirationText || savings.LegalText" class="show-top-border" id="savingsdetails-{{savings.Index}}-{{id}}">                      <ul class="unstyled top-offset-small">                          <li class="modal-text-indent bottom-offset-mini">{{savings.Index}}. {{savings.Description}}<\/li>                          <li class="left-offset-7 bottom-offset-mini">{{savings.ExpirationText}}<\/li>                          <li class="left-offset-7 modal-last-li"><small>{{savings.LegalText}}<\/small><\/li>                      <\/ul>                  <\/div>              <\/div>          <\/div>      <\/div>      <div class="modal-footer">          <button class="btn btn-tertiary pull-left" data-dismiss="modal" aria-hidden="true" type="button">{{psp.SavingsDetails.ModalCloseLabel}}<\/button>      <\/div>  <\/div>  ',link:function(n){n.pricing!=undefined?(n.psp.PricingDellPricingValue=n.pricing.DellPrice.Value,n.psp.PricingDellPricingLabel=n.pricing.DellPrice.Label,n.psp.PricingMarketPricingLabel=n.pricing.MarketValue.Label,n.psp.PricingMarketPricingValue=n.pricing.MarketValue.Value,n.psp.PricingTotalSavingsLabel=n.pricing.TotalSavings.Label,n.psp.PricingTotalSavingsValue=n.pricing.TotalSavings.Value,n.psp.SavingsDetails=n.pricing.SavingsDetails):n.psp.DellPrice&&(n.psp.PricingDellPricingValue=n.psp.DellPrice,n.psp.PricingDellPricingLabel=n.psp.DellPriceLabel,n.psp.PricingTotalSavingsValue=n.psp.TotalSavings,n.psp.PricingTotalSavingsLabel=n.psp.TotalSavingsLabel,n.psp.PricingMarketPricingValue=n.psp.MarketPrice,n.psp.PricingMarketPricingLabel=n.psp.MarketPriceLabel);n.grayBoxCss=n.psp.SpecialOffersDetails!=undefined&&!n.psp.SpecialOffersDetails.Visible||!n.psp.ViewOffersLabel?"gray-bottom-border left-padding-mini right-padding-mini showTopBorder pricingStack2":"gray-bottom-border left-padding-mini right-padding-mini";n.dellPricingCss=!n.psp.PricingTotalSavingsValue||n.psp.PricingTotalSavingsValue=="$0.00"||!n.psp.SavingsDetails.Visible?"top-padding-small":"";n.justgray&&(n.grayBoxCss="mobile-product-stack-padding mobile-pricing-details-with-top");n.id=n.$id;$(document).on("click",".total-savings-modal-jump",function(n){var i,t,r;n.preventDefault();i=n.target.id;i!==undefined&&(t=$(this).closest(".modal").attr("id"),r="",$(this).closest(".modal").attr("aria-labelledby")=="totalSavingsModal"&&(r=t.split("total-savings-modal-"),t=r[1],$("#total-savings-modal-"+t+" .modal-body").animate({scrollTop:$("#"+i+"-"+t).offset().top-($("#total-savings-modal-"+t).offset().top+50)},200)))})}}});shopApp.directive("productStackSnpPricing",["addToCartService","warrantyService",function(n){return{scope:{psp:"=",mobile:"=",iscompare:"="},restrict:"EA",template:'<div data-ng-if="psp.PricingDellPricingValue" class="padding-15-offset alienware-override dell-pricing-section">      <div data-ng-if="psp.ShowMarketPrice || psp.ShowSavings || psp.ShowMarketValue || psp.ShowTotalSavings" class=" dell-pricing-total-savings-section">          <p data-ng-if="psp.ShowMarketPrice || psp.ShowMarketValue" class="top-padding-5 bottom-offset-0">              <span>                  <small>{{psp.PricingMarketPricingLabel}}<\/small>                  <span data-ng-if="!iscompare" technote key="psp.PricingMarketPricingTechNote.TechNoteKey"><\/span>              <\/span>              <span data-ng-if="!psp.ShowClickToSeePrice" class="pull-right strikethrough"><small>{{psp.PricingMarketPricingValue}}<\/small><\/span>              <span data-ng-if="psp.ShowClickToSeePrice" class="pull-right"><small>{{psp.PricingMarketPricingValue}}<\/small><\/span>          <\/p>          <p data-ng-if="psp.ShowSavings || psp.ShowTotalSavings" class="bottom-offset-2">              <a class="text-blue cursor-pointer" data-toggle="modal" data-target="#total-savings-modal-{{id}}"><span><small>{{psp.PricingTotalSavingsLabel}}<\/small><\/span><\/a>              <span class="pull-right"><small>{{psp.PricingTotalSavingsValue}}<\/small><\/span>          <\/p>      <\/div>      <div data-ng-if="psp.ShowFreeShipping" data-ng-class="{\'top-offset-5\': !psp.ShowMarketPrice && !psp.ShowSavings, \'bottom-offset-5 top-offset-negative-2\': psp.ShowMarketPrice || psp.ShowSavings}">          <span><small>{{psp.ShippingCost.Label}}<\/small><\/span>          <span class="pull-right"><small><strong>{{psp.ShippingCost.Value}}<\/strong><\/small><\/span>      <\/div>      <div data-ng-if="psp.ShowDellPrice" data-ng-class="{\'bottom-offset-2 dellPricing\' : !iscompare }" class="{{dellPricingCss}}">          <h5 class="text-gray-dark">              <strong>{{psp.PricingDellPricingLabel}}<span class="pull-right">{{psp.PricingDellPricingValue}}<\/span><\/strong>          <\/h5>      <\/div>      <div data-ng-if="psp.ShowClickToSeePrice" data-ng-class="{\'bottom-offset-2 dellPricing\' : !iscompare, \'top-offset-negative-10\': psp.ShowDellPrice }" class="{{dellPricingCss}}" id="clickForPrice">          <a data-ng-click="AddItemToCart($event)" class="text-blue cursor-pointer">              <span><small>{{psp.ClickToSeePrice}}<\/small><\/span>          <\/a>      <\/div>  <\/div>    <!-- Total Savings Modal -->  <div class="modal hide-element fade" id="total-savings-modal-{{id}}" tabindex="-1" role="dialog" aria-labelledby="totalSavingsModal" aria-hidden="true">      <div class="modal-header">          <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><\/button>          <h3>{{psp.SavingsDetails.Title}}<\/h3>      <\/div>      <div class="modal-body">          <ul data-ng-if="psp.SavingsDetails.Details.length == 1" class="unstyled top-offset-small">              <li class="left-offset-7 bottom-offset-mini">{{psp.SavingsDetails.Details[0].Description}}<\/li>              <li class="left-offset-7 bottom-offset-mini">{{psp.SavingsDetails.Details[0].ExpirationText}}<\/li>              <li class="left-offset-7 modal-last-li"><small>{{psp.SavingsDetails.Details[0].LegalText}}<\/small><\/li>          <\/ul>          <div data-ng-if="psp.SavingsDetails.Details.length > 1">              <div data-ng-repeat="savings in psp.SavingsDetails.Details">                  <p data-ng-if="savings.ExpirationText || savings.LegalText" class="bottom-padding-small">                      <a class="cursor-pointer snp-total-savings-modal-jump" id="savingsdetails-{{savings.Index}}">{{savings.Description}}<sup>{{savings.Index}}<\/sup><\/a>                  <\/p>                  <p data-ng-if="!savings.ExpirationText && !savings.LegalText" class="bottom-padding-small">{{savings.Description}}<\/p>              <\/div>              <div data-ng-repeat="savings in psp.SavingsDetails.Details">                  <div data-ng-if="savings.ExpirationText || savings.LegalText" class="show-top-border" id="savingsdetails-{{savings.Index}}-{{id}}">                      <ul class="unstyled top-offset-small">                          <li class="modal-text-indent bottom-offset-mini">{{savings.Index}}. {{savings.Description}}<\/li>                          <li class="left-offset-7 bottom-offset-mini">{{savings.ExpirationText}}<\/li>                          <li class="left-offset-7 modal-last-li"><small>{{savings.LegalText}}<\/small><\/li>                      <\/ul>                  <\/div>              <\/div>          <\/div>      <\/div>      <div class="modal-footer">          <button class="btn btn-tertiary pull-left" data-dismiss="modal" aria-hidden="true" type="button">{{psp.SavingsDetails.ModalCloseLabel}}<\/button>      <\/div>  <\/div>    ',link:function(t){t.psp.DellPrice&&(t.psp.PricingDellPricingValue=t.psp.DellPrice,t.psp.PricingDellPricingLabel=t.psp.DellPriceLabel,t.psp.PricingTotalSavingsValue=t.psp.TotalSavings,t.psp.PricingTotalSavingsLabel=t.psp.TotalSavingsLabel,t.psp.PricingMarketPricingValue=t.psp.MarketPrice,t.psp.PricingMarketPricingLabel=t.psp.MarketPriceLabel);t.dellPricingCss=!t.psp.PricingTotalSavingsValue||t.psp.PricingTotalSavingsValue=="$0.00"&&!t.iscompare||!t.psp.SavingsDetails.Visible&&!t.iscompare?"top-padding-small":"";t.id=t.$id;t.AddItemToCart=function(i){var r=$(i.currentTarget).html(),u=angular.element(i.currentTarget),f=t.psp.ProductId?t.psp.ProductId:t.psp.ProductCode;n.addSkuItems(f,u).then(function(){window.location.href=t.psp.AddToCartCta?t.psp.AddToCartCta:t.psp.PrimaryRedirectionCta});$(i.currentTarget).html(r)};$(document).on("click",".snp-total-savings-modal-jump",function(n){var i,t,r;n.preventDefault();i=n.target.id;i!==undefined&&(t=$(this).closest(".modal").attr("id"),r="",$(this).closest(".modal").attr("aria-labelledby")=="totalSavingsModal"&&(r=t.split("total-savings-modal-"),t=r[1],$("#total-savings-modal-"+t+" .modal-body").animate({scrollTop:$("#"+i+"-"+t).offset().top-($("#total-savings-modal-"+t).offset().top+50)},200)))})}}}]);shopApp.directive("productStackDpa",function(){return{scope:{dellprice:"=",financemarketing:"="},restrict:"EA",template:'<div data-ng-if="financemarketing.IsVisible" class="gray-top-border top-padding-10 margin-offset-15 top-offset-4 price-stack-finance-section">      <small data-ng-controller="financeStackController">          <div class="bottom-offset-negative-5">{{financemarketing.MarketingLabel}}<\/div>          <a href="#dfs-modal" data-testid="shared_dpa_AsLowAsAnchor" data-ng-add-class data-open="#collapseTwo" data-close="#collapseOne" data-ng-click=\'loadDFSContent(dellprice)\' data-toggle="modal">{{financemarketing.AsLowAsLabel}} {{financemarketing.Amount}}{{financemarketing.PerPeriodText}}<\/a>          <span class="hidden-xs"> | <a data-ng-href="{{financemarketing.ApplyLink.Url}}">{{financemarketing.ApplyText}}<\/a><\/span>      <\/small>  <\/div>  '}});shopApp.directive("productStackDellAdvantage",function(){return{scope:{tooltiptitle:"=",tooltip1:"=",tooltip2:"=",tooltipcontent:"="},restrict:"EA",template:'<div class="gray-top-border top-padding-10 margin-offset-15 top-offset-4 price-stack-finance-section dell-advantage-message">      <small>          <a class="text-blue cursor-pointer" tabindex="0" role="button" data-toggle="popover">              <span class="glyphicon glyphicon-star"><\/span>              {{tooltip1}}          <\/a><span class="top-offset-0" once-text="tooltip2"><\/span>      <\/small>  <\/div>',link:function(n){$('[data-toggle="popover"]').popover({content:n.tooltipcontent,title:n.tooltiptitle,container:"body",html:!0,placement:"auto right",trigger:"focus"})}}});shopApp.directive("productStackLegal",function(){return{scope:{legal:"=",mobile:"="},restrict:"EA",template:'<p data-ng-if="!mobile" class="text-blue bottom-offset-mini"><small>{{legal}}<\/small><\/p>    <p data-ng-if="mobile" class="bottom-offset-six mobile-product-stack-padding"><small>{{legal}}<\/small><\/p>  '}});shopApp.directive("productStackShipping",function(){return{scope:{value:"=",feature:"=",sflag:"=",fflag:"=",featuretext:"=",showshippingmessage:"=",shippingmessage:"=",shippingtitle:"=",shippingsubtitle:"=",shippingimageurl:"="},restrict:"EA",template:'<div data-ng-if="!feature" class="bottom-offset-mini">      <span data-ng-if="showshippingmessage">          <img class="pull-left top-padding-micro right-padding-mini top-offset-mini img-responsive" data-ng-src="{{shippingimageurl}}" alt="{{shippingtitle}}" />          <div class="nofloat left-padding-mini">              <small>                  <a tabindex="0" class="text-orange cursor-pointer" role="button" custom-popover-html popover-html="{{shippingmessage}}" popover-title=\'{{shippingtitle}}\' popover-placement="auto top">{{shippingtitle}}<\/a>                  <span data-ng-bind-html="shippingsubtitle"><\/span>                  <br /><span class="top-offset-0" once-text="value"><\/span>              <\/small>          <\/div>      <\/span>      <span data-ng-if="!showshippingmessage">          <small><span once-text="value"><\/span><\/small>      <\/span>  <\/div>    <ul data-ng-if="feature" class="unstyled">      <!-- removed class "top-offset-negative-5" to fix defect #481639-->      <li data-ng-if="sflag && showshippingmessage" class="pull-left col-xs-7 col-sm-12 left-padding-zero right-padding-zero">          <img class="top-offset-4 right-padding-zero img-responsive col-xs-3 col-sm-1 left-padding-zero" data-ng-src="{{shippingimageurl}}" alt="{{shippingtitle}}" />          <div class="left-padding-mini right-padding-zero col-xs-9 col-sm-10">              <small>                  <a tabindex="0" class="text-orange cursor-pointer" role="button" custom-popover-html popover-html="{{shippingmessage}}" popover-title=\'{{shippingtitle}}\' popover-placement="auto top">{{shippingtitle}}&nbsp;<\/a>                  <span data-ng-bind-html="shippingsubtitle"><\/span>                  <br /><span class="top-offset-0" once-text="value"><\/span>              <\/small>          <\/div>      <\/li>      <li data-ng-if="sflag && !showshippingmessage" class="pull-left"><small><span once-text="value"><\/span><\/small><\/li>      <li data-ng-if="fflag" data-ng-class="{\'pull-right bottom-offset-5 visible-xs\':true, \'top-offset-small-medium\':sflag && showshippingmessage}">          <i aria-hidden="true" class="icon-large-touch text-blue touch-enabled-offset"><\/i><span once-text="featuretext"><\/span>      <\/li>  <\/ul>  '}});shopApp.directive("productStackEvaluecode",function(){return{scope:{evaluecode:"=",evaluelabel:"="},restrict:"EA",template:'<div class="bottom-offset-mini show-top-border">      <div class="text-gray-dark top-offset-5 text-small">          {{evaluelabel}} {{evaluecode}}      <\/div>  <\/div>'}});shopApp.directive("productStackCta",["addToCartService","warrantyService",function(n){return{scope:{warranty:"=",primary:"=",chat:"=",secondary:"=",ptext:"=",stext:"=",pcode:"=",ocode:"=",chaturl:"=",primaryurl:"=",warrantyurl:"=",secondaryurl:"=",secondarybuttoncolor:"=",sameline:"=",producttype:"=",disablecta:"="},restrict:"EA",template:'<a target="_self" class="btn btn-success text-white bottom-offset-0" data-testid="addToCartButton" data-ng-if="warranty" data-ng-href="{{warrantyurl ? warrantyurl : primaryurl}}" once-text="ptext" data-ng-disabled="disablecta"><\/a>    <a data-ng-if="primary" data-loading-text="Please wait..." id="addToCartButton" data-testid="addToCartButton" data-ng-click="AddItemToCart($event)"     class="btn btn-success text-white bottom-offset-0" once-text="ptext" data-ng-disabled="disablecta"><\/a>    <a data-ng-if="chat" data-ng-href="{{chaturl}}" data-testid="chatwithdellbutton" class="btn text-blue chat-btn bottom-offset-0" once-text="stext"><\/a>    <br data-ng-if="!sameline" /><a data-ng-if="secondary" data-testid="viewDetails" target="_self" data-ng-href="{{secondaryurl}}" data-ng-class="{\'btn bottom-offset-0 top-offset-10 text-blue\': secondarybuttoncolor != \'blue\', \'btn btn-primary bottom-offset-0 top-offset-10\': secondarybuttoncolor == \'blue\'}" once-text="stext"><\/a>',link:function(t,i){var r=t.warranty&&t.chat||t.primary&&t.chat?"width-half":"width-full";i.addClass(r);t.AddItemToCart=function(i){var r=angular.element(i.currentTarget);t.producttype===1?n.addSkuItems(t.ocode,r).then(function(){window.location.href=t.primaryurl}):n.addConfigItem(t.ocode,r).then(function(){window.location.href=t.primaryurl})}}}}]);$(document).on("show",".modal",function(){$("html, body").addClass("modal-open")}).on("hidden",function(){$("html, body").removeClass("modal-open")});shopApp.directive("productStackWarranty",["addToCartService","warrantyService",function(n,t){return{scope:{ptext:"=",ocode:"=",warranty:"=",disablecta:"="},restrict:"EA",template:'<button type="button" data-loading-text="Please wait..."          data-testid="comparePageAddToCartButton" data-ng-click="loadWarrantyAndServicesModal($event)" class="btn btn-success bottom-offset-0 text-white addToCartButton" once-text="ptext" data-ng-disabled="disablecta"><\/button>      \t<!-- chooseWarrantyCoverage is used for analytics/tracking which warranty item the use selected. chooseWarrantyCoverage does not have any css attached to it. This class is only used for javascript purposes. -->  <div ng-if="isready" class="warranty modal fade chooseWarrantyCoverage" id="warrantyModal" tabindex="-1" aria-hidden="true">      <div id="warranty-modal" class="modal-header">          <div class="row">              <h1 class="text-center col-xs-12">                  {{formatTitle(Model.Title, Model.ProductTitle)}}              <\/h1>          <\/div>      <\/div>  \t         <div class="modal-body text-centered row" data-ng-show="HasErrors">          <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">              <span class="text-red">{{ErrorMessage}}<\/span>          <\/div>      <\/div>                <div class="mobile-header row" mobileheader><\/div>        <div class="modal-body" data-ng-hide="HasErrors" style="-webkit-overflow-scrolling:touch;">          <!-- Modal Category(ies) BEGIN -->          <div data-ng-repeat="configMod in Model.ConfigModules">              <div data-ng-repeat="optionGroup in configMod.OptionGroups" class="modal-category bottom-offset-small">                  <div class="row warranty-title-group">                      <h3 class="col-xs-12">                          {{optionGroup.GroupTitle}}                      <\/h3>                  <\/div>                  <div class="category-title row">                      <hr class="top-separator text-gray col-lg-12 col-md-12 col-sm-12 col-xs-12" />                  <\/div>                  <ul class="unstyled col-lg-12 col-md-12 col-sm-12 col-xs-12">                      <li data-ng-repeat="option in optionGroup.Options" class="row">                          <div data-ng-class="{ \'gray-light recommended\': option.IsUpsell }" class="box">                              <label class="radio warranty-radio-padding">                                  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">                                      <div class="row">                                          <input data-ng-click="UpdateModel( configMod.Id, option.Id )"                                                 data-ng-checked="option.IsSelected"                                                 data-ng-disabled="disableRadioButtons"                                                 type="radio" name="{{configMod.Id}}" value="{{option.Id}}" class="">                                          <div data-ng-hide="!option.IsUpsell" class="recommended-caption">                                              <strong class="text-red">{{Model.RecommendedCaption}}<\/strong>                                          <\/div>                                          <span class="">{{option.Description}}<\/span>                                      <\/div>                                      <div class="row">                                            <!-- If option is not selected, show price -->                                          <span data-ng-show="!option.IsSelected" class="col-xs-12">                                                <!-- If option has discount, show both prices -->                                              <span data-ng-show="option.RetailPrice > option.SalePrice" class="col-xs-12">                                                  <strong class="text-gray-medium optionDiscount">{{option.DeltaSalePrice}}<\/strong>                                                  <strong>{{option.SalePrice | currency}}<\/strong>                                              <\/span>                                                <!-- If option does not have discount, show full price -->                                              <strong data-ng-show="(option.RetailPrice == option.SalePrice)" class="col-xs-12">{{option.DeltaSalePrice}}<\/strong>                                            <\/span>                                            <!-- If option is selected, show text only -->                                          <strong data-ng-show="option.IsSelected" class="col-xs-12">{{Model.SelectedCaption}}<\/strong>                                        <\/div>                                  <\/div>                              <\/label>                          <\/div>                          <div class="row xs-bleed">                              <hr class="middle-separator gray" />                          <\/div>                      <\/li>                  <\/ul>              <\/div>          <\/div>          <!-- Modal Category(ies) END -->      <\/div>      <div class="modal-footer row" id="mainModalFooter" data-ng-hide="HasErrors">          <h5 class="left-text bottom-offset-small col-lg-12 col-md-12 col-sm-12 col-xs-12">{{formatSummary(Model.PurchaseSummary, Model.ProductTitle)}}<\/h5>      <\/div>  <\/div>',link:function(i){i.Model="";i.isready=!1;i.warrantyModelElem=null;i.loadWarrantyAndServicesModal=function(r){i.warranty?(i.warrantyModelElem=angular.element(r.currentTarget),t.getItems(i.ocode,undefined).then(function(n){i.Model=n;i.warrantyModelElem.button("loading");var t=i.getSelectedOption();t!=null&&(i.DefaultWarrantyOptionId=t.Id)},function(n){i.ErrorMessage=n;i.ContentLoaded=!1;i.HasErrors=!0;i.warrantyModelElem.button("reset")})):(n.addConfigItem(i.ocode),i.warrantyModelElem.button("loading"))};i.closeWarrantyAndServicesModal=function(){i.ContentLoaded=!1;$(".warranty").last().off("scroll")};i.$watch("ContentLoaded",function(n){var t=i.warrantyModelElem;t!=null&&(n?t.next("#warrantyModal").modal("show"):!n&&t.next("#warrantyModal:visible")&&t.next("#warrantyModal").modal("hide"))});i.$watch("Model",function(n){if(n!=""&&(i.Model=n,i.userContext="/"+i.Model.UserContext.Language+"-"+i.Model.UserContext.Country,i.isready=!0,i.ContentLoaded&&i.warrantyModelElem!=null&&i.warrantyModelElem.next("#warrantyModal").modal("show"),i.ContentLoaded=!0,i.disableRadioButtons=!1,i.OrderCode=i.Model.OrderCodeId,i.HasRecommendations=i.Model.HasRecommendations,i.RecommendationsUrl=i.Model.RecommendationsUrl,i.HasErrors=!1,i.ErrorMessage="",s_dell!=null)){var t=i.getSelectedOption();s_dell.warrantyAndServicesHasChanged=t!=null&&i.DefaultWarrantyOptionId!=t.Id?{isDirty:!0,defaults:i.DefaultWarrantyOptionId}:{isDirty:!1}}});i.UpdateModel=function(n,r){var u=null;n!=undefined&&r!=undefined&&(u=n+"~"+r,i.Model.Overrides=u);t.getItems(i.OrderCode,u).then(function(n){var t,e,u,o,f,s;if(n!=undefined&&n.ConfigModules!=null)for(t=0;t<n.ConfigModules.length;t++)if(e=n.ConfigModules[t],e.OptionGroups!=null)for(u=0;u<e.OptionGroups.length;u++)if(o=e.OptionGroups[u],o.Options!=null)for(f=0;f<o.Options.length;f++)s=o.Options[f],n.ConfigModules[t].OptionGroups[u].Options[f].IsSelected=s.Id==r;i.Model=n;i.ContentLoaded=!0;i.HasErrors=!1},function(n){i.ErrorMessage=n;i.ContentLoaded=!1;i.HasErrors=!0})};i.ProceedToCart=function(t){i.disableRadioButtons=!0;var r=angular.element(t.currentTarget);n.addConfigItem(i.OrderCode,r,i.Model.Overrides).then(function(){window.location.href=i.HasRecommendations&&i.RecommendationsUrl!=""&&(amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined)?i.RecommendationsUrl:i.userContext+"/cart"},function(){window.location.href=i.userContext+"/cart"})};i.getSelectedOption=function(){var n,t,r,u,f,e;if(i.Model.ConfigModules!=null)for(n=0;n<i.Model.ConfigModules.length;n++)if(t=i.Model.ConfigModules[n],t.OptionGroups!=null)for(r=0;r<t.OptionGroups.length;r++)if(u=t.OptionGroups[r],u.Options!=null)for(f=0;f<u.Options.length;f++)if(e=u.Options[f],e.IsSelected)return e;return{Description:""}};i.formatSummary=function(n,t){var r=i.getSelectedOption().Description;return n.replace("{0}",t).replace("{1}",r)};i.formatTitle=function(n,t){return n.replace("{0}",t)}}}}]);shopApp.directive("mobileHeader",[function(){return{restrict:"CA",replace:!1,transclude:!1,template:'<div id="affix-scroll-nav-mobile" class="col-xs-12 padding-left-15" data-spy="affix-mobile"> <!-- Add class affix when the scroll position is in the right place. -->      <div class="row">          <h3 class="col-xs-6 text-left">{{Model.SubtotalCaption}}<\/h3>          <h3 class="col-xs-6 text-right">{{Model.TotalPrice}}<\/h3>          <span class="col-xs-12 cta">              <button type="button" class="btn btn-success btn-ssb" aria-hidden="true" id="btnCheckout" data-loading-text="Please wait..." data-testid="proceedToCartButton" data-ng-click="ProceedToCart($event)">                  {{Model.CalltoActionCaption}}              <\/button>          <\/span>      <\/div>  <\/div>',link:function(n,t){var i=t;$(".warranty").last().on("scroll",function(){$(".warranty").last().scrollTop()<$("#warranty-modal").outerHeight()?i.removeClass("affix"):$(".warranty").last().scrollTop()>$(".modal-header.row").last().outerHeight()&&i.addClass("affix").removeAttr("style")})}}}]);shopApp.directive("customPopoverHtml",function(){return{restrict:"A",link:function(n,t,i){$(t).popover({trigger:"focus",html:!0,content:i.popoverHtml,placement:"left auto",title:i.popoverTitle,container:"body"}).on("shown.bs.popover",function(){var n=$(".popover.fade.in");typeof n[0]!="undefined"&&n[0].offsetLeft<0&&n.css("left","0")}).on("hidden.bs.popover",function(){$(".popover").remove()})}}});SHOP=window.SHOP||{};SHOP.Transactional=SHOP.Transactional||{};SHOP.Transactional.ShopHome=SHOP.Transactional.ShopHome||{},function(n){(function(){var t=this;this.init=function(){t.preventAccordionToggleDefault();t.openCategoryOverlay();t.closeCategoryOverlay()};this.preventAccordionToggleDefault=function(){n(".accordion-toggle").click(function(n){n.preventDefault()})};this.openCategoryOverlay=function(){n(".view-all-category").on("click",function(t){t.preventDefault();n(".category-overlay").hide(200);var r=n(t.currentTarget).parent().parent().parent(),i=n(r).find(".category-overlay"),u=n(t.currentTarget).position().top-i.outerHeight(!0)/2;i.css("top",u).show();t.stopPropagation()})};this.closeCategoryOverlay=function(){n("body").on("click",function(t){n(t.target).closest(".category-overlay").length===0&&n(".category-overlay:visible").length>0&&n(".category-overlay").hide(200)})};this.onload={initialize:function(){t.init()}};SHOP.Transactional.Utils.Initialize(this.onload);n(window).load(function(){Dell.Transactional.responsiveEqualheight(".merchandizing-container .well-large");n(".home.product-hero-gallery").length>0?(n(".product-hero-gallery").flexslider({animation:"slide",animationLoop:!1,nextText:" ",prevText:" ",after:function(n){n.pause()}}),n(".flexslider").flexslider("pause"),n(".flex-direction-nav a.flex-prev").addClass("icon-ui-arrowleft text-gray hidden-xs"),n(".flex-direction-nav a.flex-next").addClass("icon-ui-arrowright text-gray hidden-xs")):n(".home").flexslider({animation:"slide",start:function(t){n.each(t.find("noscript"),function(){n(this).attr("data-slimmage",!0)});window.slimmage.checkResponsiveImages();SHOP.Transactional.Breakpoint.isPhone()&&n("ul.slides").find(".banner-content-box").setAllToMaxHeight()}});n(window).on("inTabletBreakpoint inDesktopBreakpoint",function(){n("ul.slides").find(".banner-content-box").removeAttr("style")});n(window).on("inPhoneBreakpoint",function(){n("ul.slides").find(".banner-content-box").setAllToMaxHeight()});n(window).resize(function(){Dell.Transactional.responsiveEqualheight(".merchandizing-container .well-large")})})}).call(SHOP.Transactional.ShopHome)}(jQuery);SHOP=window.SHOP||{};SHOP.Transactional=SHOP.Transactional||{};SHOP.Transactional.FinancialValProp=SHOP.Transactional.FinancialValProp||{},function(n){(function(){var t=this;this.init=function(){var i=n("meta[name=dfsauthstate]").attr("content");i&&(i.match("^hot:yes-dpa")||i.match("^warm:yes-dpa"))&&t.GetDPAFinancialValProp()};this.GetDPAFinancialValProp=function(){var t=n("*[dpa-financial-val-prop]");t&&n.get(serverUrls.apiServiceUrl+"AccountInquiry/GetFinancialValueProp",function(n){n!=null&&t.html(n)})};this.onload={initialize:function(){t.init()}};SHOP.Transactional.Utils.Initialize(this.onload)}).call(SHOP.Transactional.FinancialValProp)}(jQuery);shopApp.config(["$routeProvider","$locationProvider",function(n){n.when("/deals/:categoryId/:selectedSubDealId/:page",{categoryType:"deals",controller:"CategoryCtrl"});n.when("/deals/:categoryId/:selectedSubDealId",{categoryType:"deals",controller:"CategoryCtrl"});n.when("/deals/:categoryId",{categoryType:"deals",controller:"CategoryCtrl"});n.when("/deals",{categoryType:"deals",controller:"CategoryCtrl"});n.when("/family/:categoryId",{categoryType:"family",controller:"CategoryCtrl"});n.when("/family",{categoryType:"family",controller:"CategoryCtrl"})}]).config(["$httpProvider",function(n){delete n.defaults.headers.common["X-Requested-With"]}]).controller("CategoryCtrl",["$scope","$route","$routeParams","$http","$rootScope","$location","resultData","familyService","dealsService",function(n,t,i,r,u,f,e,o,s){n.initialLoad=!0;u.$broadcast("categoryIdUpdated",{categoryId:i.categoryId});n.CategoryTitle=null;n.ready=!1;n.$on("updatePigletColor",function(t,i){n.pigletColor=i.color;n.pigletStrokeColor=i.color+"-stroke"});n.loadingIndicatorUrl="/content/images/shop/loading_animation_square.gif";var c=function(){n.categoryViewModel=rawViewModel}(),h=function(){function r(t){return t===null||t===""||t==="null"?(n.isLoadingView=!1,n.isError=!0,!1):(t.ProductFamilies.length>0?(o.data=t,n.families=o.data):n.isNoResults=!0,n.isLoadingView=!1,n.ready=!0,!0)}function u(t){if(t===null||t===""||t==="null")return n.isLoadingView=!1,n.isError=!0,!1;if(t.SelectedSubDeal.ProductStacks.length<=0)return n.isLoadingView=!1,n.isNoResults=!0,!1;if(s.resetPage(),s.data.isResultsOnly)i.page?(s.mapSubDealResultItems(t),s.setPage(t.Page)):(s.mapSubDealResult(t),s.mapSubDealResultItems(t));else{s.mapSubDeals(t);s.mapSubDealResult(t);s.mapSubDealResultItems(t);var r=amplify.store();angular.forEach(t.SelectedSubDeal.ProductStacks,function(n){var t,u,i;if(amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined){t=[];n.isInCompareStore=!1;for(u in r.productOC)t.push(u);for(i=0;i<t.length;i++)n.OrderCode===t[i]&&(n.isInCompareStore=!0)}else n.CompareCtaAddToLabel=""})}return n.deals=s,n.isLoadingView=!1,n.isLoadingSubDealResult=!1,n.isLoadingSubDealResultItems=!1,s.data.isResultsOnly=!0,n.ready=!0,!0}n.results={};n.families={};n.request={parentCategoryId:SHOP_PARENT_CATEGORY_ID,categoryId:i.categoryId?i.categoryId:SHOP_SUB_CATEGORY_ID,categoryType:t.current.categoryType?t.current.categoryType:null,selectedSubDealId:i.selectedSubDealId?i.selectedSubDealId:null,page:i.page?i.page:null,pageSize:s.data.pageSize};n.displayCategory=function(t,i,r,u){return r!==!0&&u!==!0&&i!==!0&&t===n.request.categoryType?!0:!1};n.request.categoryType!=="deals"&&(s.data.isResultsOnly=!1,n.isLoadingView=!0);n.request.categoryType==="deals"&&(s.data.isResultsOnly===!0?(i.page?n.isLoadingSubDealResultItems=!0:(n.isLoadingSubDealResult=!0,n.isLoadingSubDealResultItems=!1),n.isLoadingView=!1):(n.isLoadingView=!0,n.isLoadingSubDealResult=!1,n.isLoadingSubDealResultItems=!1));n.isError=!1;n.isNoResults=!1;n.results=e.getResults(n.request);n.results.then(function(t){switch(n.request.categoryType){case"family":r(t);Dell.Transactional.Shop.Metrics.Data=t;Dell.Transactional.Shop.Metrics.pigletsData();break;case"deals":u(t);Dell.Transactional.Shop.Metrics.Data=t;Dell.Transactional.Shop.Metrics.pigletsData()}setTimeout(function(){n.scrollUpToResults()},100)},function(){n.isError=!0;n.isLoadingView=!1;n.isLoadingSubDealResult=!1;n.isLoadingSubDealResultItems=!1});n.showMoreDealsClicked=function(){s.data.page=parseInt(s.data.page)+1;var n={categoryId:s.data.categoryId,categoryType:"deals",selectedSubDealId:s.data.selectedSubDeal.id,page:s.data.page,pageSize:s.data.pageSize},t=e.getResults(n);t.then(function(n){for(var i=n.SelectedSubDeal.ProductStacks,u,t=0,r=i.length;t<r;t++)s.data.selectedSubDeal.results.push(i[t]);u=amplify.store();angular.forEach(i,function(n){var t,r,i;if(amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined){t=[];n.isInCompareStore=!1;for(r in u.productOC)t.push(r);for(i=0;i<t.length;i++)n.OrderCode===t[i]&&(n.isInCompareStore=!0)}else n.CompareCtaAddToLabel=""})},function(){})};n.dealsSubNavClicked=function(){s.resetPage()};n.showPagination=function(n){return n!=undefined&&n.totalProducts>s.data.pageSize?!0:!1};n.scrollToTop=function(){$("html,body").animate({scrollTop:angular.element("html").offset().top},500,"linear")};n.scrollUpToResults=function(){$("html,body").animate({scrollTop:$("#piglets").offset().top+$("#piglets").height()},500,"linear")}};n.$on("$routeChangeSuccess",function(){if(!SHOP.Transactional.Breakpoint.isDesktop()&&!SHOP.Transactional.Breakpoint.isTablet()&&n.initialLoad===!0&&!SHOP_SUB_CATEGORY_ID&&!i.categoryId)return n.initialLoad=!1,!1;h()});n.$on("ngRepeatFinished",function(){$(".compare-config").each(function(){var n=$(this);n.hasClass("comparing")&&amplify.store("productOC:size")!==1&&(n.find("input").addClass("checked"),n.find("a").removeClass("hidden"),n.find("label").addClass("hidden"))})})}]).controller("PigletsCtrl",["$scope","$http","$routeParams","$location","$log","$route","pigletsService",function(n,t,i,r,u,f){var e,o,s;n.init=function(t){var i,f,e;n.results=t;var u=null,r=[];for(i=0,f=t.FeaturedCategories.length;i<f;i++)e=t.FeaturedCategories[i],t.FeaturedCategories[i].IsSelected&&(n.$emit("updatePigletColor",{color:t.FeaturedCategories[i].PigletColorClass}),SHOP.Transactional.Breakpoint.isDesktop()||SHOP.Transactional.Breakpoint.isTablet()||(u=t.FeaturedCategories[i])),SHOP.Transactional.Breakpoint.isDesktop()||SHOP.Transactional.Breakpoint.isTablet()||t.FeaturedCategories[i].IsSelected||r.push(t.FeaturedCategories[i]);SHOP.Transactional.Breakpoint.isDesktop()||SHOP.Transactional.Breakpoint.isTablet()||(r.unshift(u),t.FeaturedCategories=r);n.piglets=t.FeaturedCategories};e=function(){n.request||(n.request={parentCategoryId:SHOP_PARENT_CATEGORY_ID,categoryId:i.categoryId?i.categoryId:SHOP_SUB_CATEGORY_ID});n.swipeRight=function(){o()};n.swipeLeft=function(){var t=n.pigletConfig.activePigletIndex;$("#piglets > li").length-1!=t&&s()};n.pigletConfig={pigletWidth:0,containerWidth:null,viewFinderWidth:null,containerElement:null,viewFinderElement:null,activePigletIndex:null,pigletsElement:null,length:null,color:null};n.showMobilePigletSubNav=!1;n.navigating=!1;n.hidePiglets=function(){return n.isLoading?{visibility:"hidden"}:{}};n.mobilePigletClicked=function(t,i,u,e){if(t.preventDefault(),n.borderColor=e+"-stroke",i.IsSnpDeal)return location.href=i.LinkUrl,!1;if(n.$emit("updatePigletColor",{color:e}),r.path()===angular.element(t.currentTarget).attr("href").replace("#",""))f.reload();else{var o=angular.element(t.currentTarget).attr("href").replace("#","");r.path(o)}return!1};n.clickedPiglet=function(t,i){t.preventDefault();n.movePiglets(i)};n.clickedPrevBtn=function(n){return n.preventDefault(),o(),!0};n.clickedNextBtn=function(n){return n.preventDefault(),s(),!0};n.showPrevBtn=function(){return parseInt(n.pigletConfig.activePigletIndex)-1<0?!1:!0};n.showNextBtn=function(){return parseInt(n.pigletConfig.activePigletIndex)+1>=n.pigletConfig.length?!1:!0};n.scrollToResults=function(){$("html,body").animate({scrollTop:angular.element("#pigletResults").offset().top},500,"linear")};n.movePiglets=function(t){function c(){var r=n.piglets,t=r[n.pigletConfig.activePigletIndex].PigletColorClass;n.$emit("updatePigletColor",{color:t});setTimeout(function(){e.addClass(t+"-stroke").css({transition:"all "+i*3+"ms","transition-timing-function":"ease"});s.addClass(t+"-stroke").css({transition:"all "+i*4+"ms","transition-timing-function":"ease"})},i*2);setTimeout(function(){var n=u.attr("ng-issnpdeal");location.href=n=="true"?u.attr("ng-linkurl"):u.attr("href")},i)}var r=n.pigletConfig.pigletsElement,h=n.pigletConfig.activePigletIndex-t,f=r.css("left")!==""?r.css("left").replace("px",""):0,o=null,i=300,e=n.pigletConfig.viewFinderElement,s=e.find("span"),u=r.children().eq(t).find("a").eq(0),l=u.css("background-color");f=parseInt(f);o=h*n.pigletConfig.pigletWidth+f;e.addClass("gray-very-light-stroke").css({transition:"all "+i+"ms","transition-timing-function":"ease"});s.addClass("gray-very-light-stroke").css({transition:"all "+i+"ms","transition-timing-function":"ease"});r.css({left:o+"px",transition:"all "+i+"ms","transition-timing-function":"ease"});n.pigletConfig.activePigletIndex=t;n.navigating&&clearTimeout(n.navigating);n.navigating=setTimeout(function(){c()},1e3)};n.setupPiglets=function(t){var i=window.location.href.indexOf("#")!==-1,s;if(!i&&SHOP_SUB_CATEGORY_ID){var u=(n.pigletConfig.containerWidth-n.pigletConfig.viewFinderWidth)/2,f=n.pigletConfig.viewFinderElement,c=f.find("span"),e=n.pigletConfig.pigletsElement,o=e.children().eq(n.pigletConfig.activePigletIndex).find("a").eq(0),l=o.css("background-color"),h=u-2-n.pigletConfig.pigletWidth*n.pigletConfig.activePigletIndex;f.css({left:u+"px"});e.css({left:h+"px"});t||setTimeout(function(){n.$apply(function(){r.path(o.attr("href").replace("#/","")).replace()})},300)}else i&&(s=r.path(),r.path(s))}};n.$on("$routeChangeSuccess",function(t){n.pigletCtrlLoaded===0&&(n.request=t.currentScope.$parent.request,e(),n.pigletCtrlLoaded++)});n.pigletCtrlLoaded=0;r.path()===""&&(n.pigletCtrlLoaded++,e());o=function(){var i=n.pigletConfig.activePigletIndex-1,t=n.pigletConfig.activePigletIndex-1;if(t<0)return!1;n.movePiglets(t)};s=function(){var i=n.pigletConfig.activePigletIndex+1,t=n.pigletConfig.activePigletIndex+1;if(t<0)return!1;n.movePiglets(t)}}]).factory("pigletsService",["$http","$q",function(n,t){return{getResults:function(i){var r=t.defer();return n({method:"GET",url:serverUrls.webServiceUrl+"/shop/productcategory/pigletsjson",params:{id:i.parentCategoryId,subCategoryId:i.categoryId}}).success(function(n){r.resolve(n.Data)}).error(function(n,t){r.reject(t)}),r.promise}}}]).factory("familyService",function(){return{data:{families:[]}}}).factory("dealsService",function(){return{data:{categoryId:"",isResultsOnly:!1,page:1,pageSize:10,selectedSubDeal:{desc:"",id:0,results:[],title:""},subDeals:[],totalProducts:0},getNextPage:function(){return parseInt(this.data.page)+1},getPrevPage:function(){return parseInt(this.data.page)-1},getTotalPages:function(){var n=1;return this.data.totalProducts&&this.data.pageSize&&(n=Math.ceil(this.data.totalProducts/this.data.pageSize)),n},isFirstPage:function(){return parseInt(this.data.page)-1<=0?!0:!1},isMoreResults:function(){!this.isLastPage()},isLastPage:function(){return parseInt(this.data.page)+1>this.getTotalPages()?!0:!1},addMoreResults:function(){this.data.page=this.data.page+1},mapSubDeals:function(n){this.data.subDeals=n.SubDeals},mapSubDealResult:function(n){this.data.categoryId=n.CategoryId;this.data.selectedSubDeal.desc=n.SelectedSubDeal.SubDealDesc;this.data.selectedSubDeal.id=n.SelectedSubDeal.SubDealId;this.data.selectedSubDeal.title=n.SelectedSubDeal.SubDealTitle;this.data.totalProducts=n.TotalProducts},mapSubDealResultItems:function(n){this.data.categoryId=n.CategoryId;this.data.selectedSubDeal.id=n.SelectedSubDeal.SubDealId;this.data.selectedSubDeal.results=n.SelectedSubDeal.ProductStacks;this.data.totalProducts=n.TotalProducts},resetPage:function(){this.data.page=1},setPage:function(n){this.data.page=parseInt(n)}}}).factory("resultData",["$http","$q",function(n,t){return{getResults:function(i){var r=t.defer(),u=function(){var n="";return i.categoryType=="family"&&(n=serverUrls.apiServiceUrl+"productfamilies"),i.categoryType=="deals"&&(n=serverUrls.apiServiceUrl+"productdeals"),n};return n({method:"GET",url:u(),params:{categoryId:i.categoryId,selectedSubDealId:i.selectedSubDealId,page:i.page,pageSize:i.pageSize}}).success(function(n){r.resolve(n);i.categoryType=="deals"?angular.forEach(n.SubDeals,function(t){n.SelectedSubDealId==t.SubDealId&&Dell.Metrics.PageMetadata.addOrUpdate("categorypath",t.SubDealPath)}):Dell.Metrics.PageMetadata.addOrUpdate("categorypath",n.categoryPath)}).error(function(n,t){r.reject(t)}),r.promise}}}]).directive("pigletDirective",[function(){return{restrict:"CA",replace:!1,transclude:!1,scope:{index:"=index",item:"=item",piglets:"=piglets"},template:'<a ng-href="#/{{categoryType}}/{{item.CategoryId}}" ng-issnpdeal="{{item.IsSnpDeal}}" ng-linkurl="{{item.LinkUrl}}" class="piglet {{item.PigletColorClass}}" ng-click="$parent.clickedPiglet($event, {{index}})"><\/a>    <a ng-href="#/{{categoryType}}/{{item.CategoryId}}" once-class=\'{"mobilePiglet":true, "pigletDeal": item.IsDealFlag}\' ng-click="$parent.mobilePigletClicked($event, item, item.SubDeals, \'{{item.PigletColorClass}}\')" ng-issnpdeal="{{item.IsSnpDeal}}" ng-linkurl="{{item.LinkUrl}}">      <!-- mobile version -->      <div class="mobilePigletBackgroundFix {{item.PigletColorClass}}-stroke-left">          <div class="row xs-pad-offset-15">              <section class="col-xs-4 top-offset-small bottom-offset-small" style="padding-right: 8px">                  <img once-src="item.ProductImage.ImageUri" class="img-responsive">              <\/section>              <section class="col-xs-8 top-offset-small bottom-offset-small">                  <h3 class="text-blue top-offset-mini" once-text="item.TitleLabel"><\/h3>                  <div data-ng-if="item.MerchandizingBlurb.length > 1" once-text="item.MerchandizingBlurb"><\/div>                  <div data-ng-if="item.SubDeals.length > 1" ng-class="{\'pull-right text-blue dealsPigletToggle\':true, \'icon-ui-plus\': !item.showMobilePigletSubNav, \'icon-ui-minus\': item.showMobilePigletSubNav}" ng-show="item.IsDealFlag"><\/div>                  <p class="text-gray-dark p-small" once-text="item.StartingPriceLabel"><\/p>              <\/section>          <\/div>      <\/div>  <\/a>  <ul class="deals-sub-nav" ng-show="item.showMobilePigletSubNav">      <li data-ng-repeat="subdeal in item.SubDeals">          <div data-ng-if="subdeal.IsSnpDeal">              <a once-href="subDeal.LinkUrl" target="_blank" class="top-offset-small bottom-offset-mini" once-text="subdeal.SubDealTitle"><\/a>          <\/div>          <div data-ng-if="!subdeal.IsSnpDeal">              <a data-ng-href="#/deals/{{item.CategoryId}}/{{subdeal.SubDealId}}" class="top-offset-small bottom-offset-mini " ng-click="scrollToResults()" once-text="subdeal.SubDealTitle"><\/a>          <\/div>      <\/li>  <\/ul>  ',link:function(n,t){n.item.showMobilePigletSubNav=!1;n.index==0&&n.$parent&&n.$parent.pigletConfig&&(n.$parent.pigletConfig.pigletWidth=angular.element(t)[0].offsetWidth,n.$parent.pigletConfig.containerElement=angular.element(t).parent().parent(),n.$parent.pigletConfig.containerWidth=n.$parent.pigletConfig.containerElement[0].offsetWidth,n.$parent.pigletConfig.pigletsElement=angular.element(t).parent(),n.$parent.pigletConfig.viewFinderElement=angular.element(t).parent().parent().find("div").eq(0),n.$parent.pigletConfig.viewFinderWidth=n.$parent.pigletConfig.viewFinderElement[0].offsetWidth);n.$parent&&n.$parent.pigletConfig&&n.item.IsSelected===!0&&(n.$parent.pigletConfig.activePigletIndex=n.index,n.$emit("updatePigletColor",{color:n.item.PigletColorClass}));n.categoryType=n.item.IsDealFlag===!0?"deals":"family";typeof n.$parent.setupPiglets=="function"&&n.index===n.piglets.length-1&&n.$parent.setupPiglets();n.$parent.pigletConfig&&(n.$parent.pigletConfig.length=n.$parent.pigletConfig.pigletsElement.find("li").length)}}}]);angular.module("shopAngularUI").directive("productFamily",function(){return{scope:{family:"="},template:'<div id="mobileProductFamily" data-ng-cloak class="row">      <!--Mobile Version-->      <div class="product-family-top-panel">          <a data-ng-href="{{family.CtaPrimaryLinkUrl}}?view=ratings" class="clearfix col-xs-12 row">              <div class="col-xs-8 col-xs-offset-4 top-offset-small pull-right right-padding-zero">                  <!-- Ratings -->                  <div data-ng-if="family.RatingValue && family.RatingReviewCountValue > 2" class="top-padding-smaller mobile-ratings">                      <div class="mobileStarRating left-offset-negative-2  top-padding-1">                          <ratings value="family.RatingValue"><\/ratings>                      <\/div>                      <p class="left-padding-mini xxs-padding-left-0">                          <span data-ng-if="family.RatingReviewCountValue != 0">                              <span once-text="family.RatingReviewCountValue"><\/span>&nbsp;<span once-text="family.RatingReviewCountLabel"><\/span>                          <\/span>                      <\/p>                  <\/div>              <\/div>          <\/a>          <a once-href="family.CtaPrimaryLinkUrl" class="col-xs-12 row">              <div class="col-xs-12">                  <div class="col-xs-4 left-padding-zero right-padding-zero">                      <div class="centered" data-ng-show="family.ProductImageUrl">                          <!-- Asset image -->                          <img once-alt="family.ProductTitle" class="img-responsive img-sizing" once-src="family.ProductImageUrl" />                      <\/div>                  <\/div>                  <div class="col-xs-8">                      <!-- Title -->                      <div>                          <h3 class="regular-font text-blue bottom-offset-0">                              <strong once-text="family.ProductTitle"><\/strong>                          <\/h3>                      <\/div>                      <!-- Description -->                      <div class="text-gray-dark">                          <p class="bottom-offset-0">                              <span once-text="family.StartingAtPriceLabel"><\/span>&nbsp;<span once-text="family.StartingAtPriceValue"><\/span>                          <\/p>                          <p class="bottom-offset-0 right-offset-small top-offset-10">                              <span data-ng-bind-html="family.ProductDescription"><\/span>                          <\/p>                      <\/div>                      <div data-ng-if="family.DisplayFeaturedSpecFlag">                          <div product-stack-feature family="true" featuretext="family.FeaturedSpecText"><\/div>                      <\/div>                      <!-- Button -->                      <div class="top-offset-small">                          <span class="btn btn-success text-white" once-text="family.CtaPrimaryText"><\/span>                      <\/div>                  <\/div>              <\/div>          <\/a>      <\/div>  <\/div>',link:function(n){n.color=n.$parent.pigletColor+"-stroke";n.color=="gray-medium-stroke"&&(n.color="gray-stroke")}}}).directive("mobileProductStack",function(){return{scope:{ps:"="},restrict:"EA",replace:!0,template:'<div id="ProductStack-Mobile" once-class="{\'left-padding-zero right-padding-zero\': true, \'single-mobile-show-bug\': ps.DisplayOptions.DisplayProductBugFlag}" data-ng-cloak>      <div class="row">          <div class="col-xs-11">              <!--Bug-->              <div id="productStackBug" data-ng-if="ps.DisplayOptions.DisplayProductBugFlag" data-ng-show="ps.BugTextMessage">                  <div product-stack-bug message="ps.BugTextMessage" mobile="true" class="well-red"><\/div>              <\/div>          <\/div>      <\/div>      <div class="row">          <div class="col-xs-4">              <!--Asset-->              <div data-ng-if="ps.DisplayOptions.DisplayAssetSubstackFlag" data-ng-show="ps.AssetImageUrl">                  <div product-stack-asset url="ps.AssetImageUrl" link="true" linkurl="ps.CtaSecondaryLinkUrl"><\/div>              <\/div>          <\/div>          <div class="col-xs-8 mobile-ps-title-offset">              <!--Ratings-->              <div data-ng-if="ps.DisplayOptions.DisplayRatingSubstackFlag && ps.RatingReviewCountValue > 2" data-ng-class="{\'top-padding-smaller bottom-offset-negative-20 \': true, \'dealsTitleOffset\':!ps.DisplayOptions.DisplayProductBugFlag}">                  <div product-stack-rating mobile="true" value="ps.RatingValue" count="ps.RatingReviewCountValue" label="ps.RatingReviewCountLabel" linkurl="ps.CtaSecondaryLinkUrl"><\/div>              <\/div>              <!--Title-->              <div data-ng-if="ps.DisplayOptions.DisplayProductTitleFlag" class="{{mobileTitleBorder}} clear-both">                  <div product-stack-title link="true" text="ps.ProductStackTitle" price="ps.FinalPriceText" linkurl="ps.CtaSecondaryLinkUrl"><\/div>              <\/div>          <\/div>      <\/div>      <div class="row">          <div class="bottom-offset-negative-15 col-xs-12">              <!-- Add to Compare -->              <div ng-if="ps.CompareCtaAddToLabel != \'\'" data-ng-class="{\'comparing\' : ps.isInCompareStore}" class="compare-config pull-left top-offset-zero bottom-offset-mini col-xs-12">                  <input ng-checked="ps.isInCompareStore" type="checkbox" name="{{ps.OrderCode}}" value="" class="pull-left" />                  <div class="popover fade bottom in hidden" style="top: 20px; left: -27px; display: block;">                      <div class="arrow" style="left: 16.666666666666668%;"><\/div>                      <div class="popover-content">{{ps.CompareLimitMessageLabel}} <br /> <a ng-href="{{ps.ProductConfigurationCompareUrl}}">{{ps.CompareLimitLinkText}}<\/a><\/div>                  <\/div>                  <label for="{{ps.OrderCode}}" class="pull-left">{{ps.CompareCtaAddToLabel}}<\/label>                  <a class="btn btn-primary text-white compare-button hidden" ng-href="{{ps.ProductConfigurationCompareUrl}}">{{ps.CompareCtaLabel}}<\/a>              <\/div>              <!--Shipping & Feature Spec-->              <div class="mobile-product-stack-padding top-offset-small bottom-offset-15">                  <div product-stack-shipping label="ps.ShippingDateLabel"                       value="ps.ShippingDateValue"                       feature="true"                       sflag="ps.DisplayOptions.DisplayShippingSubstackFlag"                       fflag="ps.DisplayFeaturedSpecFlag"                       featuretext="ps.FeaturedSpecText"                       smartselectionflag="ps.IsSmartSelection"                       smartselectionmessage="ps.SmartSelectionMessage"                       smartselectiontitle="ps.SmartSelectionTitle"                       smartselectionurl="ps.SmartSelectionImageUrl"><\/div>              <\/div>          <\/div>      <\/div>      <div class="row left-offset-zero right-offset-zero">          <!--Product Blurb-->          <div data-ng-if="ps.DisplayOptions.DisplayProductBlurbFlag && ps.StackType == 0" data-ng-show="ps.OrderCodeBlurbText" class="productBlurbStack show-top-border hide-ps-details">              <div product-stack-blurb blurb="ps.OrderCodeBlurbText" mobile="true"><\/div>          <\/div>          <!--Pricing Stack-->          <div data-ng-if="ps.DisplayOptions.DisplayPricingSubstackFlag" class="{{mobilePricingCss}}">              <!--Special Offers-->              <div product-stack-special-offers label="ps.ViewOffersLabel" specialoffersdetails="ps.SpecialOffersDetails"><\/div>              <!--Pricing Stack-->              <div product-stack-pricing psp="ps" mobile="true"><\/div>              <!--DPA-->              <div product-stack-dpa dellprice="ps.PricingDellPricingValue" financemarketing="ps.FinanceMarketing"><\/div>          <\/div>          <!--Legal-->          <div class="row">              <div data-ng-if="ps.DisplayOptions.DisplayPricingLegalFlag && ps.PricingLegalText" class="hide-ps-details">                  <div product-stack-legal legal="ps.PricingLegalText" mobile="true"><\/div>              <\/div>          <\/div>                 <!--CTA-->          <div data-ng-if="ps.DisplayOptions.DisplayCtaSubstackFlag" data-ng-show="ps.CtaPrimaryText" class="mobile-product-stack-padding bottom-offset-mini hide-ps-details">              <p class="mobile-cta-sizing">                  <span product-stack-cta                          warranty="ps.WarrantyUpsellEnabled"                          primary="!ps.WarrantyUpsellEnabled"                          primaryurl="ps.CtaPrimaryLinkUrl"                          chat="ps.ChatWithDellText"                          chaturl="ps.ChatWithDellLinkUrl"                          sameline="true"                          ocode="ps.OrderCode"                          ptext="ps.CtaPrimaryText"                          stext="ps.ChatWithDellText"><\/span>              <\/p>          <\/div>             <\/div>      <!--Show/Hide Info-->      <div id="mobilePSMoreInfo" class="gray-light bottom-offset-small">          <button class="btn btn-override col-xs-12 more"><strong>More Info<i aria-hidden="true" class="icon-ui-plus pull-right plus-icon-size-override windows7-alignment-plus"><\/i><\/strong><\/button>          <button class="btn btn-override col-xs-12 hideInfo" style="display:none;"><strong>Hide Info<i aria-hidden="true" class="icon-ui-minus pull-right minus-icon-size-override windows7-alignment-minus"><\/i><\/strong><\/button>      <\/div>  <\/div>',link:function(n){n.mobileTitleBorder=n.ps.DisplayOptions.DisplayRatingSubstackFlag&&n.ps.RatingReviewCountValue>2?"top-offset-negative-10":"top-offset-small";n.mobilePricingCss=n.ps.DefaultDiscountDetailsMode==0?"bottom-offset-mini hide-ps-details":"bottom-offset-mini pricingDetailsStack hide-ps-details"}}}).controller("popoverCtrl",["$scope",function(n){n.tt_content="";n.init=function(t){for(var i=0;i<t.length;i++)n.tt_content=n.tt_content+"•"+String.fromCharCode(32)+t[i]+"\n"}}]);$(document).on("click","#mobilePSMoreInfo .more",function(n){n.preventDefault();var t=$(this);$(t).parent().siblings(".row").children(".hide-ps-details").slideDown("slow",function(){$(t).hide();$(t).next().show()})});$(document).on("click","#mobilePSMoreInfo .hideInfo",function(n){n.preventDefault();var t=$(this);$(t).parent().siblings(".row").children(".hide-ps-details").slideUp("slow",function(){$(t).hide();$(t).prev().show()})});(function(n){n("[id=viewDiscountDetailsPopover]").popover({trigger:"hover",placement:"bottom",content:n("#discountPopoverContent").html(),delay:{show:0,hide:200},html:!0,template:'<div class="popover"><div class="arrow hover-arrow"><\/div><div class="popover-inner"><div class="popover-content" style="color:black;"><p><\/p><\/div><\/div><\/div>'})})(jQuery);SHOP=window.SHOP||{};SHOP.Transactional=SHOP.Transactional||{};SHOP.Transactional.OffCanvas=SHOP.Transactional.OffCanvas||{},function(n){(function(){var t=this,u="transition-nav",r=n(".container > .wrapper"),i=n(".canvas-content"),f=n("#display-off-canvas"),e="off-canvas-state in-canvas-state";this.slideTarget="";this.slideSource="";this.init=function(){n("#scroll-content").length>0&&SHOP.Transactional.Breakpoint.isPhone()&&t.setupTransition()};this.setupTransition=function(){if(t.transitionReady(),t.transitionNext(),t.transitionBack(),t.secondLevelTransitionNext(),t.secondLevelTransitionBack(),f.length>0){var i=f.attr("data-slide-target"),r=f.data("slide-source"),n=f.attr("data-show-offcanvas");n!=""&&n.toLowerCase()==="true"&&t.goToOffCanvasSlide(r,i)}};this.transitionReady=function(){r.addClass("transition-ready");n('[data-off-canvas="content"]').each(function(i){var r=n(this);r.hasClass("canvas-content")&&(r.removeClass("canvas-content transition"),n(r.data("target")).removeClass("in-canvas-state"),n("#root-canvas").addClass("canvas-content"));t.appendToMainContent(n(this),i);n(t.slideTarget).hasClass("in-canvas-state")?r.css({overflow:"hidden",position:"fixed"}):r.css({overflow:"hidden",position:"fixed",display:"none"})})};this.appendToMainContent=function(n,t){n.attr("data-slide-pane",t);n.insertAfter(i)};this.goToOffCanvasSlide=function(r,u){var f=n(r);t.slideSource=r;t.slideTarget=u;t.initTransition(i);t.resetSlideTargetStyles(u);t.affixBackButton(u);t.addOffCanvasNavCss();t.hideMastHeadAndFooter();t.hideOtherOffscreenPanels(u);t.scrollToPanelTop();t.slideTargetToInCanvas(u);t.removeAnimationCss(u)};this.backToMainSlide=function(r,u){var f=n(u),e=n(r);t.removeBackButtonAffixCss(f);t.addAnimationCss(f);t.removeCanvasContentStyles(i);t.showMastHeadAndFooter();t.removeOffCanvasNavCss();t.slideTargetToOffCanvas(f);t.scrollToPanelSourceTop(e);t.hideOffCanvasSiblings(i)};this.transitionBack=function(){n('[data-off-canvas="back"]').each(function(){n(this).addClass("opacity-zero");n(this).on("click",function(r){r.preventDefault();var u=n(n(this).attr("data-slide-target")),f=n(n(this).data("slide-source"));if(t.removeBackButtonAffixCss(u),t.addAnimationCss(u),t.removeCanvasContentStyles(i),t.showMastHeadAndFooter(),t.removeOffCanvasNavCss(),t.slideTargetToOffCanvas(u),t.scrollToPanelSourceTop(f),n("body").hasClass("ie-mobile-7"))t.hideOffCanvasSiblings(i);else i.on("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){t.hideOffCanvasSiblings(i);i.off("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend");t.clearTransition(i)})})})};this.transitionNext=function(){n('[data-off-canvas="next"]').each(function(){n(this).on("click.offcanvas",function(r){r.preventDefault();var u=n(this).data("slide-target"),f=n(n(this).data("slide-source"));if(t.slideSource=n(this).data("slide-source"),t.slideTarget=u,t.initTransition(i),t.resetSlideTargetStyles(u),t.affixBackButton(u),t.addOffCanvasNavCss(),t.hideMastHeadAndFooter(),n("body").hasClass("ie-mobile-7"))t.hideOtherOffscreenPanels(u),t.scrollToPanelTop(),t.slideTargetToInCanvas(u);else i.on("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){t.hideOtherOffscreenPanels(u);t.scrollToPanelTop();t.slideTargetToInCanvas(u);t.removeAnimationCss(u);i.off("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend")})})})};this.secondLevelTransitionNext=function(){n('[data-off-canvas="multi-nav-next"]').each(function(){n(this).on("click",function(i){var r,f,u;i.preventDefault();r=n(this).data("slide-target");f=n(n(this).data("slide-source"));t.slideSource=n(this).data("slide-source");t.slideTarget=r;u=n(n(this).data("canvas-container"));n.when(t.setupSecondNavigation(u,r)).then(function(){if(t.initTransition(u),t.resetSlideTargetStyles(r),t.affixBackButton(r),t.addOffCanvasNavCss(),t.hideMastHeadAndFooter(),n("body").hasClass("ie-mobile-7"))t.hideOtherOffscreenPanels(r),t.scrollToPanelTop(),t.slideTargetToInCanvas(r);else u.on("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){t.hideOtherOffscreenPanels(r);t.scrollToPanelTop();t.slideTargetToInCanvas(r);u.off("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend")})})})})};this.secondLevelTransitionBack=function(){n('[data-off-canvas="multi-nav-back"]').each(function(){n(this).addClass("opacity-zero");n(this).on("click",function(i){i.preventDefault();var u=n(n(this).data("slide-target")),f=n(n(this).data("slide-source")),r=n(n(this).data("canvas-container")),e=n(n(this).data("canvas-root"));n.when(t.setupSecondBackNavigation(u,r,f)).then(function(){r.removeClass("canvas-content");t.slideTargetToOffCanvas(u);e.addClass("canvas-content transition");t.hideOffCanvasSiblings(r);t.scrollToPanelSourceTop(f);r.on("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){r.off("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend");t.clearTransition(r)})})})})};this.setupSecondNavigation=function(n,i){var r=new jQuery.Deferred;return setTimeout(function(){t.setupNextTransition(n,i);r.resolve("hurray")},1),r.promise()};this.setupSecondBackNavigation=function(n,i,r){var u=new jQuery.Deferred;return setTimeout(function(){t.initBackTransition(n,i,r);u.resolve("hurray")},1),u.promise()};this.setupNextTransition=function(n){r.removeClass(u);r.find(".canvas-content").removeClass("canvas-content transition");n.addClass("canvas-content transition")};this.initBackTransition=function(n,i){t.removeBackButtonAffixCss(n);t.removeCanvasContentStyles(i)};this.initTransition=function(n){n.addClass("transition")};this.clearTransition=function(n){n.removeClass("transition")};this.addOffCanvasNavCss=function(){r.addClass(u)};this.hideMastHeadAndFooter=function(){n(".mh, footer.mhf, #navbar").hide()};this.resetSlideTargetStyles=function(t){n(t).parent().removeAttr("style").removeClass("hidden-xs");n(t).removeAttr("style")};this.affixBackButton=function(t){n(t).prev().addClass("affix-back-btn")};this.hideOtherOffscreenPanels=function(t){n(".off-screen").find(t).parent().siblings().css({overflow:"hidden",position:"absolute",height:"0"})};this.scrollToPanelTop=function(){n("html, body").animate({scrollTop:0},0)};this.slideTargetToInCanvas=function(t){n(t).addClass("in-canvas-state")};this.removeBackButtonAffixCss=function(n){n.prev().removeClass("affix-back-btn")};this.removeCanvasContentStyles=function(n){n.removeAttr("style")};this.showMastHeadAndFooter=function(){n(".mh, footer.mhf, #navbar").show()};this.removeOffCanvasNavCss=function(){r.removeClass(u)};this.removeAnimationCss=function(t){n(t).removeClass(e)};this.addAnimationCss=function(n){n.addClass(e)};this.hideOffCanvasSiblings=function(n){n.siblings().css({overflow:"hidden",position:"absolute",height:"0"})};this.slideTargetToOffCanvas=function(n){n.removeClass("in-canvas-state").css({overflow:"hidden",position:"fixed"})};this.scrollToPanelSourceTop=function(t){t.length>0?n("html, body").animate({scrollTop:t.offset().top},0):n("html, body").animate({scrollTop:0},0)};this.resetTransition=function(){r.removeClass("transition-ready").removeClass("transition-nav");t.addAnimationCss(n(t.slideTarget));n(t.slideTarget).hasClass("in-canvas-state")&&(i.removeAttr("style"),n(t.slideTarget).siblings(".affix-back-btn").removeClass("affix-back-btn"),r.removeClass(u),n(".mh, footer.mhf").show(),n(t.slideTarget).removeClass("in-canvas-state").css({overflow:"hidden",position:"fixed",display:"none"}),i.siblings().css({overflow:"hidden",position:"absolute",height:"0"}),n("body").scrollTo(t.slideSource,0,{axis:"y"}))};this.unBindOffCanvasNextClicks=function(){n('[data-off-canvas="next"]').each(function(){n(this).off(".offcanvas")})};this.resetOffCanvas=function(){n('[data-off-canvas-content="reset"]').each(function(i){t.revertToOriginalPosition(n(this),i)})};this.revertToOriginalPosition=function(t){var i=n(t.attr("data-orign")),r=t.attr("data-target");i.find(t).length===0&&(t.removeData("slide-pane").removeAttr("style").find(r).removeAttr("style"),i.append(t),i.find(t).removeData("slide-pane").find(r).removeAttr("style"))};this.onload={initialize:function(){t.init()}};SHOP.Transactional.Utils.Initialize(this.onload);n(window).on("inPhoneBreakpoint",function(){r.hasClass("transition-nav")||t.setupTransition()});n(window).on("inDesktopBreakpoint",function(){t.resetTransition()});n(window).on("inTabletBreakpoint",function(){t.resetTransition()});n(window).on("inDesktopBreakpoint inTabletBreakpoint",function(){t.resetOffCanvas();t.unBindOffCanvasNextClicks()})}).call(SHOP.Transactional.OffCanvas)}(jQuery);SHOP=window.SHOP||{};SHOP.Transactional=SHOP.Transactional||{};SHOP.Transactional.ZombieAnchorNav=SHOP.Transactional.ZombieAnchorNav||{},function(n){(function(){var t=this,o=n("#anchor-nav"),s=o.data("single-config"),h=s!=null?s.toLowerCase():!1,u=n("#anchor-nav ul.nav-stacked"),l=n(".back-to-top-container"),r=n("#affix-scroll-nav"),a=n("#reviews"),v=n("#reviews-container"),f=!1,i=n("#scroll-content"),c=i.children().last(),y=c.find("h3.scroll-section-title"),e=!1;this.init=function(){if(n("#polaris-pd").length>0){n("#anchor-nav .dropdown-toggle").dropdown();(SHOP.Transactional.Breakpoint.isDesktop()||SHOP.Transactional.Breakpoint.isTablet())&&r.width(i.width());n("#anchor-nav ul.nav-tabs li").on("activate.bs.scrollspy",t.switchSectionTitle);t.affixScrollNav();n(".back-to-top-container, #anchor-nav ul.dropdown-menu li:last-child").click(function(){n("html, body").animate({scrollTop:0},1e3)});n("#anchor-nav a.dropdown-toggle, #anchor-nav ul.dropdown-menu li a").on("touchstart",function(n){n.stopPropagation()});(SHOP.Transactional.Breakpoint.isDesktop()||SHOP.Transactional.Breakpoint.isTablet())&&t.resetReviews();f||t.removeDesktopScrollSpy();n(document).on("click",".scroll-to-ratings",function(){t.scrollToRatings()});t.anchorToSection()}};this.switchSectionTitle=function(){var t=n(this).find(".dropdown-menu li.active a h3").last().text();n("#section-title").html(t)};this.scrollToRatings=function(){n("#configurations-content .back-btn").click()};this.scrollIntoContentView=function(t,i){t.preventDefault();n("body").scrollTo(i,1e3,{axis:"y"},"ease-in")};this.backToTop=function(t){t.preventDefault();n("html, body").animate({scrollTop:0},500);n("body").clearQueue()};this.anchorToSection=function(){var r=SHOP.Transactional.Utils.getQueryStringParamVal("view"),i;r!=""&&(i="#"+r,SHOP.Transactional.Breakpoint.isPhone()?SHOP.Transactional.OffCanvas.goToOffCanvasSlide("#anchor-nav",i):n("html, body").animate({scrollTop:n(i).offset().top},0),t.scrollSpyRefresh())};this.scrollSpyRefresh=function(){n("body").scrollspy("refresh")};this.resetReviews=function(){n("#reviews-container").find("#reviews").length===0&&(n(".off-screen #reviews").removeData("slide-pane").removeAttr("style").find("#more-reviews").removeAttr("style"),n("#reviews-container").append(n(".off-screen #reviews")),n("#reviews-container").find("#reviews").removeData("slide-pane").find("#more-reviews").removeAttr("style"))};this.removeDesktopScrollSpy=function(){u.data("desktop-scroll",u.html());u.find("li").remove();f=!0};this.resetDesktopScrollSpy=function(){u.html(u.data("desktop-scroll"));f=!1};this.onload={initialize:function(){t.init();t.initMobileExpander();t.initFullTechSpecs()}};this.initMobileExpander=function(){n(".hide-mts-details").slideUp("slow",function(){n("#mobileTSMoreInfo #hide").hide();n("#mobileTSMoreInfo #more").show()})};this.initFullTechSpecs=function(){n(".hide-full-techSpecs").slideUp("slow",function(){n("#TSMoreInfo #hide").hide();n("#TSMoreInfo #more").show()})};this.affixScrollNav=function(){var n=function(){return i.offset().top};r.affix({offset:{top:n}})};SHOP.Transactional.Utils.Initialize(this.onload);n(window).on("inPhoneBreakpoint",function(){f||t.removeDesktopScrollSpy();h&&!e&&(o.appendTo(".products-container"),e=!0);r.removeAttr("style")});n(window).on("inDesktopBreakpoint",function(){t.resetDesktopScrollSpy();t.resetReviews()});n(window).on("inDesktopBreakpoint inTabletBreakpoint",function(){h&&e&&(o.prependTo(".products-container"),e=!1)});n(window).on("scroll",function(){n("#scroll-content").length>0&&(SHOP.Transactional.Breakpoint.isDesktop()||SHOP.Transactional.Breakpoint.isTablet())&&(t.affixScrollNav(),n(window).scrollTop()>i.offset().top?(r.addClass("affix").removeClass("affix-bottom").removeAttr("style").width(i.width()),SHOP.Transactional.TabsCarousel.initCarousel()):n(window).scrollTop()<i.offset().top&&r.addClass("affix-top").removeClass("affix"))}).on("resize",function(){(SHOP.Transactional.Breakpoint.isDesktop()||SHOP.Transactional.Breakpoint.isTablet())&&r.width(i.width());t.scrollSpyRefresh()});n(window).load(function(){n("body").scrollspy({target:"#anchor-nav",offset:i.length>0?i.offset().top:0});setTimeout(function(){t.scrollSpyRefresh()},1e3)})}).call(SHOP.Transactional.ZombieAnchorNav)}(jQuery);shopApp.service("loadStateService",function(){var n={allowConfiguration:!1,allowEol:!1,allowFeatures:!1,allowRatings:!1,allowSupport:!1};return{deepLinkingState:function(){return n}}});shopApp.run(["$rootScope","$location","$anchorScroll","$routeParams","loadStateService",function(n){n.$on("$locationChangeSuccess",function(){var n=SHOP.Transactional.Utils.getQueryStringParamVal("view"),t;n!=""&&(t="#"+n,$("html, body").animate({scrollTop:$(t).offset().top},0))})}]);shopApp.value("$anchorScroll",angular.noop);shopApp.factory("shopService",["$http",function(n){return{getData:function(t){return n({url:t,method:"GET"})}}}]);shopApp.controller("reviewsParentController",["$scope",function(n){n.loadMoreReviews=function(){var n=document.getElementById("reviews"),t=angular.element(n).scope();t.loadMoreReviews()}}]);shopApp.controller("reviewsController",["$scope","shopService","$window",function(n,t,i){var f="{0}RatingDetails?ProductCode={1}&page={2}&pageSize={3}",r=[],u;typeof ratingsModelData!="undefined"&&ratingsModelData!=null&&ratingsModelData.Details!=null&&ratingsModelData.Details.Reviews&&(u=ratingsModelData.Details.Reviews);n.currentPage=1;n.maxSize=1;n.itemsPerPage=10;n.isReviewsLoaded=!1;n.init=function(t,r,f){if(n.apiUrl=t,n.productCode=r,n.numPages=Math.ceil(f/n.itemsPerPage),n.totalItems=parseInt(f),n.totalPages=n.numPages,typeof u!="undefined"){var e=angular.element(i);e.on("inTabletBreakpoint inDesktopBreakpoint",function(){if(!n.isReviewsLoaded){var t=document.getElementById("reviews"),i=angular.element(t).scope();i.$apply(function(){n.getFirstPageReviews()})}})}};n.getReviews=function(){t.getData(f.format(n.apiUrl,n.productCode,n.currentPage,n.itemsPerPage)).success(function(t){angular.forEach(t.Reviews,function(n){r.push(n)});n.reviews=r;n.isReviewsLoaded=!0})};n.getFirstPageReviews=function(){angular.forEach(u,function(n){r.push(n)});n.reviews=r;n.isReviewsLoaded=!0};n.loadMoreReviews=function(){n.isReviewsLoaded||n.getFirstPageReviews()};n.pageChanged=function(t){n.currentPage=t;n.hideReviews=t==n.totalPages;n.getReviews()}}]);shopApp.config(["$httpProvider",function(n){delete n.defaults.headers.common["X-Requested-With"]}]);shopApp.value("$anchorScroll",angular.noop);shopApp.factory("shopService",["$http",function(n){return{getData:function(t){return n({url:t,method:"GET"})}}}]);shopApp.service("configVarService",function(){var n={apiUrl:"",productCode:"",OrderCode:"",totalItems:"",allowRatings:"",displayRatings:"",ratingAvgValue:"",ratingReviewCount:"",ratingReviewLabel:"",viewAllLabel:""};return{getConfigVal:function(){return n}}});shopApp.service("listService",function(){var n={},t=[];return n.items=t,n.addItem=function(n){t.push(n)},n});shopApp.controller("configsParentController",["$scope","configVarService",function(n,t){n.init=function(n,i,r,u,f,e,o,s,h,c){t.getConfigVal().apiUrl=n;t.getConfigVal().productCode=i;t.getConfigVal().OrderCode=r;t.getConfigVal().totalItems=parseInt(u);t.getConfigVal().allowRatings=f;t.getConfigVal().displayRatings=e;t.getConfigVal().ratingAvgValue=o;t.getConfigVal().ratingReviewCount=s;t.getConfigVal().ratingReviewLabel=h;t.getConfigVal().viewAllLabel=c};n.getAllConfigs=function(){var n=document.getElementById("offCanvasProductStack"),t=angular.element(n).scope();t.getAllConfigs()}}]);shopApp.controller("configurationCtrl",["$scope","$state","$stateParams","$rootScope","$location","$route","shopService","listService","$window","configVarService",function(n,t,i,r,u,f,e,o,s,h){var l="{0}ProductConfiguration?ProductCode={1}&OrderCode={2}&page={3}&pageSize={4}",c=[];n.isContentLoaded=!1;n.currentPage=1;n.itemsPerPage=3;n.showPageCount=!0;n.apiUrl=h.getConfigVal().apiUrl;n.productCode=h.getConfigVal().productCode;n.OrderCode=h.getConfigVal().OrderCode;n.numPages=Math.ceil(h.getConfigVal().totalItems/n.itemsPerPage);n.totalItems=h.getConfigVal().totalItems;n.totalPages=n.numPages;n.allowRatings=h.getConfigVal().allowRatings;n.displayRatings=h.getConfigVal().displayRatings;n.ratingAvgValue=h.getConfigVal().ratingAvgValue;n.ratingReviewCount=h.getConfigVal().ratingReviewCount;n.ratingReviewLabel=h.getConfigVal().ratingReviewLabel;n.viewAllLabel=h.getConfigVal().viewAllLabel;n.init=function(){n.totalItems==1&&n.getConfigs()};n.getAllConfigs=function(){var t=u.absUrl();amplify.store("CurrentConfigPage",t);n.isContentLoaded||e.getData(l.format(n.apiUrl,n.productCode,n.OrderCode,n.currentPage,n.itemsPerPage)).success(function(t){n.configurations=t;var i=amplify.store();angular.forEach(t.OrderCodeDetails,function(n){var t,u,r;if(amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined){t=[];n.isInCompareStore=!1;for(u in i.productOC)t.push(u);for(r=0;r<t.length;r++)n.OrderCodeId===t[r]&&(n.isInCompareStore=!0)}else n.ProductStack.CompareCtaAddToLabel="";c.push(n)});n.configurations.OrderCodeDetails=c;n.isContentLoaded=!0})};n.pageChanged=function(t){n.currentPage=parseInt(t,10);e.getData(l.format(n.apiUrl,n.productCode,n.OrderCode,n.currentPage,n.itemsPerPage)).success(function(t){n.configurations=t;var i=amplify.store();angular.forEach(t.OrderCodeDetails,function(n){var r=[],u,t;n.isInCompareStore=!1;for(u in i.productOC)r.push(u);for(t=0;t<r.length;t++)n.OrderCodeId===r[t]&&(n.isInCompareStore=!0);c.push(n)});n.configurations.OrderCodeDetails=c;n.isContentLoaded=!0})};n.$on("ngRepeatFinished",function(){$(".compare-config").each(function(){var n=$(this);n.hasClass("comparing")&&amplify.store("productOC:size")!==1&&(n.find("input").addClass("checked"),n.find("a").removeClass("hidden"),n.find("label").addClass("hidden"))})})}]);shopApp.config(["$httpProvider",function(n){delete n.defaults.headers.common["X-Requested-With"]}]);shopApp.controller("singleOrderCodeCtrl",["$scope","$http","$sce",function(n){var i=function(){n.model=rawViewModel}(),t;for(n.techSpecArray=[],t=0;t<n.model.TechSpecs.length;t++)n.model.TechSpecs[t].Value&&n.techSpecArray.push(n.model.TechSpecs[t])}]);shopApp.directive("mobileProductConfiguration",function(){return{scope:{},restrict:"EA",link:function(n){n.mobileBugOffset=n.pc.DisplayProductBugFlag?"top-offset-medium":"top-offset-small";n.techSpecArray=[];for(var t=0;t<n.pc.TechSpecs.length;t++)n.pc.TechSpecs[t].Value&&n.techSpecArray.push(n.pc.TechSpecs[t])}}});shopApp.directive("onFinishRenderFilters",["$timeout",function(n){return{restrict:"A",link:function(t){t.$last===!0&&n(function(){t.$emit("ngRepeatFinished")})}}}]);$(document).on("click","#angularRatings",function(){$("button#transition-back-btn").click()});shopApp.controller("popoverCtrl",["$scope",function(n){n.tt_content="";n.locationCssClassAdjust="mobile_reposition_popup";n.init=function(t){for(var i=0;i<t.length;i++)n.tt_content=n.tt_content+"•"+String.fromCharCode(32)+t[i]+"\n"}}]),function(n){"use strict";var r,i,t;n.slimmage=n.slimmage||{};n.slimmage.verbose===undefined&&(n.slimmage.verbose=!0);r=["/ics/","/sicdncs/"];i=function(){n.slimmage.verbose&&n.console&&n.console.log&&Object.hasOwnProperty("log",n.console)&&n.console.log.apply(n.console,arguments)};n.slimmage.beginWebPTest=function(){if(n.slimmage.tryWebP&&!n.slimmage._testingWebP){n.slimmage._testingWebP=!0;var t=new Image;t.onload=t.onerror=function(){n.slimmage.webp=t.height==2};t.src="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA"}};n.slimmage.getCssValue=function(n,t){var i=typeof window.getComputedStyle!="undefined"&&window.getComputedStyle(n,null).getPropertyValue(t);return!i&&n.currentStyle&&(i=n.currentStyle[t.replace(/([a-z])\-([a-z])/,function(n,t,i){return t+i.toUpperCase()})]||n.currentStyle[t]),i};n.slimmage.getCssPixels=function(t,i){var u=n.slimmage.getCssValue(t,i),r,f;return u.slice(-2)=="px"?parseFloat(u.slice(0,-2)):(r=document.createElement("div"),r.style.overflow="hidden",r.style.visibility="hidden",t.parentNode.appendChild(r),Object.hasOwnProperty("width",r.style)&&(r.style.width=u),f=r.offsetWidth,t.parentNode.removeChild(r),f)};n.slimmage.nodesToArray=function(n){for(var i=[],t=n.length>>>0;t--;)i[t]=n[t];return i};n.slimmage.adjustImageSrcWithWidth=function(t,r,u){var f,h,e,c;r=r.toLowerCase();var o=window.devicePixelRatio||1,l=u*o,s=o>1.49?90:80;n.slimmage.webp&&(s=o>1.49?65:78);f=Math.min(2048,l);f=f-f%160+160;h=t.getAttribute("data-pixel-width")|0;f>h&&(r.indexOf(".dell.com")!=-1||r.indexOf("stormsitimage2")!=-1)&&(e=r.replace(/width=\d+/i,"width="+f).replace(/quality=[0-9]+/i,"quality="+s),c=n.slimmage.getTemplate(e,f),e=n.slimmage.templatize(e,c),n.slimmage.webp&&(e=e.replace(/format=[a-z]+/i,"format=webp")),t.src=e,t.setAttribute("data-pixel-width",f),i("Slimming: updating "+e))};n.slimmage.getTemplate=function(t,i){return n.slimmage.isXinet(t)?n.slimmage.getTemplateXinet(i):n.slimmage.isSnp(t)?n.slimmage.getTemplateSnp(i):n.slimmage.getTemplateDefault(i)};n.slimmage.isXinet=function(n){return n.indexOf("/xa.ashx/")!=-1};n.slimmage.isSnp=function(n){return n.indexOf("snpi.dell.com")!=-1||n.indexOf("snp.cdn.dell.com")!=-1||n.indexOf("snpsslcdncs")!=-1||n.indexOf("snpics")!=-1};n.slimmage.getTemplateXinet=function(n){var t="";switch(!0){case n<90:t="ThumbnailPNG";break;case n<250:t="SmallPNG";break;case n<400:t="MediumPNG";break;case n<600:t="LargePNG";break;case n<1600:t="MaxPNG";break;case n>1600:t="MaxPNG"}return t};n.slimmage.getTemplateSnp=function(n){var t="";switch(!0){case n<400:t="358";break;case n<800:t="500";break;case n<1200:t="925";break;case n<1600:t="925";break;case n<2e3:t="925"}return t};n.slimmage.getTemplateDefault=function(n){var t="";switch(!0){case n<=200:t="200w";break;case n<=400:t="400w";break;case n<=600:t="600w";break;case n<=800:t="800w";break;case n<=1e3:t="1000w";break;case n<=1200:t="1200w";break;case n<=1400:t="1400w";break;case n<=1600:t="1600w";break;case n<=1800:t="1800w";break;case n<=2e3:t="2000w";break;case n<=2200:t="2000w"}return t};n.slimmage.templatize=function(t,i){var o=document.createElement("a"),e,u,f;return o.href=t,e=o.hostname,u="",n.slimmage.isXinet(t)?(f=/\/(\w+)\?/g,u=t.replace(f,"/"+i+"?"),f=/[a-z0-9]{8}(?:-[a-z0-9]{4}){3}-[a-z0-9]{12}/i,u=u.replace(f,"00000000-0000-0000-0000-000000000000")):n.slimmage.isSnp(t)?t.indexOf("images2")!=-1&&(u=t.replace("images2","images2/"+i)):($.each(r,function(r,f){if(t.indexOf(f)!=-1)return u=t.replace(f,f+"das/dih.ashx/"+i+"/"),u=n.slimmage.removeMultipleResizeTransformation(u,i),!1}),u==""&&(u=t.replace(e,e+"/das/dih.ashx/"+i),u=n.slimmage.removeMultipleResizeTransformation(u,i))),u};n.slimmage.removeMultipleResizeTransformation=function(n,t){var r=n.split(/das\/dih.ashx\/\w+\//),i="";return $.each(r,function(n,r){return i=i+r,n==0&&(i=i+"das/dih.ashx/"+t+"/"),!0}),i};n.slimmage.adjustImageSrc=function(t,i){n.slimmage.adjustImageSrcWithWidth(t,i,n.slimmage.getCssPixels(t,"max-width"))};n.slimmage.checkResponsiveImages=function(t){var u,h,c,v,l,e,y,a,k,f,p,o,r,s,d;if(n.slimmage.timeoutid>0&&n.clearTimeout(n.slimmage.timeoutid),n.slimmage.timeoutid=0,t&&t>0){n.slimmage.timeoutid=n.setTimeout(n.slimmage.checkResponsiveImages,t);return}var g=(new Date).getTime(),w=0,b=n.slimmage.nodesToArray(n.document.getElementsByTagName("noscript"));for(r=0,s=b.length;r<s;r++)if(u=b[r],u.getAttribute("data-slimmage")!==null){if(h=n.document.createElement("div"),c=u.textContent||u.innerHTML,c&&c.replace(/[\s\t\r\n]+/,"").length!=0)h.innerHTML=c.replace(/\s+src\s*=\s*(['"])/i," data-src=$1").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");else{for(v=new Image,l=0;l<u.attributes.length;l++)e=u.attributes[l],e&&e.specified&&e.name.indexOf("data-img-")==0&&v.setAttribute(e.name.slice(9-e.name.length),e.value);h.appendChild(v)}for(y=h.getElementsByTagName("img"),a=0,k=y.length;a<k;a++)f=y[a],f.src!==null&&f.src.length>0&&(f.setAttribute("data-src",f.src),f.src=""),f.setAttribute("data-slimmage",!0),u.parentNode.insertBefore(f,u),w++;u.parentNode.removeChild(u)}for(p=0,o=n.slimmage.nodesToArray(n.document.getElementsByTagName("img")),r=0,s=o.length;r<s;r++)o[r].getAttribute("data-slimmage")!==null&&(d=o[r].getAttribute("data-src")||o[r].src,n.slimmage.adjustImageSrc(o[r],d),p++);i("Slimmage: restored "+w+" images from noscript tags; sizing "+p+" images. "+((new Date).getTime()-g)+"ms")};t=n.slimmage.checkResponsiveImages;n.addEventListener?(n.addEventListener("resize",function(){t(500)},!1),n.addEventListener("DOMContentLoaded",function(){t();n.removeEventListener("load",t,!1)},!1),n.addEventListener("load",t,!1)):n.attachEvent&&n.attachEvent("onload",t);n.slimmage.beginWebPTest();window.slimmage=n.slimmage}(this);!function(n,t){if("function"==typeof define&&define.amd)define(["jquery"],t);else if("object"==typeof module&&module.exports){var i;try{i=require("jquery")}catch(r){i=null}module.exports=t(i)}else n.Slider=t(n.jQuery)}(this,function(n){var t;return function(n){"use strict";function t(){}function i(n){function u(t){t.prototype.option||(t.prototype.option=function(t){n.isPlainObject(t)&&(this.options=n.extend(!0,this.options,t))})}function f(t,u){n.fn[t]=function(f){var c,e,s,o;if("string"==typeof f){for(var l=r.call(arguments,1),h=0,a=this.length;a>h;h++)if(c=this[h],e=n.data(c,t),e)if(n.isFunction(e[f])&&"_"!==f.charAt(0)){if(s=e[f].apply(e,l),void 0!==s&&s!==e)return s}else i("no such method '"+f+"' for "+t+" instance");else i("cannot call methods on "+t+" prior to initialization; attempted to call '"+f+"'");return this}return o=this.map(function(){var i=n.data(this,t);return i?(i.option(f),i._init()):(i=new u(this,f),n.data(this,t,i)),n(this)}),!o||o.length>1?o:o[0]}}if(n){var i="undefined"==typeof console?t:function(n){console.error(n)};return n.bridget=function(n,t){u(t);f(n,t)},n.bridget}}var r=Array.prototype.slice;i(n)}(n),function(n){function i(t,i){function rt(n,t){var r="data-slider-"+t.replace(/_/g,"-"),i=n.getAttribute(r);try{return JSON.parse(i)}catch(u){return i}}var g,r,h,s,o,w,b,d,l,a,v,tt,it;for(this._state={value:null,enabled:null,offset:null,size:null,percentage:null,inDrag:!1,over:!1},"string"==typeof t?this.element=document.querySelector(t):t instanceof HTMLElement&&(this.element=t),i=i?i:{},g=Object.keys(this.defaultOptions),r=0;r<g.length;r++)h=g[r],s=i[h],s="undefined"!=typeof s?s:rt(this.element,h),s=null!==s?s:this.defaultOptions[h],this.options||(this.options={}),this.options[h]=s;"vertical"!==this.options.orientation||"top"!==this.options.tooltip_position&&"bottom"!==this.options.tooltip_position?"horizontal"!==this.options.orientation||"left"!==this.options.tooltip_position&&"right"!==this.options.tooltip_position||(this.options.tooltip_position="top"):this.options.tooltip_position="right";var c,y,p,f,e,ut=this.element.style.width,nt=!1,ft=this.element.parentNode;if(this.sliderElem)nt=!0;else{if(this.sliderElem=document.createElement("div"),this.sliderElem.className="slider",o=document.createElement("div"),o.className="slider-track",y=document.createElement("div"),y.className="slider-track-low",c=document.createElement("div"),c.className="slider-selection",p=document.createElement("div"),p.className="slider-track-high",f=document.createElement("div"),f.className="slider-handle min-slider-handle",f.setAttribute("role","slider"),f.setAttribute("aria-valuemin",this.options.min),f.setAttribute("aria-valuemax",this.options.max),e=document.createElement("div"),e.className="slider-handle max-slider-handle",e.setAttribute("role","slider"),e.setAttribute("aria-valuemin",this.options.min),e.setAttribute("aria-valuemax",this.options.max),o.appendChild(y),o.appendChild(c),o.appendChild(p),w=Array.isArray(this.options.labelledby),w&&this.options.labelledby[0]&&f.setAttribute("aria-labelledby",this.options.labelledby[0]),w&&this.options.labelledby[1]&&e.setAttribute("aria-labelledby",this.options.labelledby[1]),!w&&this.options.labelledby&&(f.setAttribute("aria-labelledby",this.options.labelledby),e.setAttribute("aria-labelledby",this.options.labelledby)),this.ticks=[],Array.isArray(this.options.ticks)&&this.options.ticks.length>0){for(r=0;r<this.options.ticks.length;r++)b=document.createElement("div"),b.className="slider-tick",this.ticks.push(b),o.appendChild(b);c.className+=" tick-slider-selection"}if(o.appendChild(f),o.appendChild(e),this.tickLabels=[],Array.isArray(this.options.ticks_labels)&&this.options.ticks_labels.length>0)for(this.tickLabelContainer=document.createElement("div"),this.tickLabelContainer.className="slider-tick-label-container",r=0;r<this.options.ticks_labels.length;r++){var k=document.createElement("div"),et=0===this.options.ticks_positions.length,ot=this.options.reversed&&et?this.options.ticks_labels.length-(r+1):r;k.className="slider-tick-label";k.innerHTML=this.options.ticks_labels[ot];this.tickLabels.push(k);this.tickLabelContainer.appendChild(k)}d=function(n){var i=document.createElement("div"),t;i.className="tooltip-arrow";t=document.createElement("div");t.className="tooltip-inner";n.appendChild(i);n.appendChild(t)};l=document.createElement("div");l.className="tooltip tooltip-main";l.setAttribute("role","presentation");d(l);a=document.createElement("div");a.className="tooltip tooltip-min";a.setAttribute("role","presentation");d(a);v=document.createElement("div");v.className="tooltip tooltip-max";v.setAttribute("role","presentation");d(v);this.sliderElem.appendChild(o);this.sliderElem.appendChild(l);this.sliderElem.appendChild(a);this.sliderElem.appendChild(v);this.tickLabelContainer&&this.sliderElem.appendChild(this.tickLabelContainer);ft.insertBefore(this.sliderElem,this.element);this.element.style.display="none"}if(n&&(this.$element=n(this.element),this.$sliderElem=n(this.sliderElem)),this.eventToCallbackMap={},this.sliderElem.id=this.options.id,this.touchCapable="ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,this.tooltip=this.sliderElem.querySelector(".tooltip-main"),this.tooltipInner=this.tooltip.querySelector(".tooltip-inner"),this.tooltip_min=this.sliderElem.querySelector(".tooltip-min"),this.tooltipInner_min=this.tooltip_min.querySelector(".tooltip-inner"),this.tooltip_max=this.sliderElem.querySelector(".tooltip-max"),this.tooltipInner_max=this.tooltip_max.querySelector(".tooltip-inner"),u[this.options.scale]&&(this.options.scale=u[this.options.scale]),nt===!0&&(this._removeClass(this.sliderElem,"slider-horizontal"),this._removeClass(this.sliderElem,"slider-vertical"),this._removeClass(this.tooltip,"hide"),this._removeClass(this.tooltip_min,"hide"),this._removeClass(this.tooltip_max,"hide"),["left","top","width","height"].forEach(function(n){this._removeProperty(this.trackLow,n);this._removeProperty(this.trackSelection,n);this._removeProperty(this.trackHigh,n)},this),[this.handle1,this.handle2].forEach(function(n){this._removeProperty(n,"left");this._removeProperty(n,"top")},this),[this.tooltip,this.tooltip_min,this.tooltip_max].forEach(function(n){this._removeProperty(n,"left");this._removeProperty(n,"top");this._removeProperty(n,"margin-left");this._removeProperty(n,"margin-top");this._removeClass(n,"right");this._removeClass(n,"top")},this)),"vertical"===this.options.orientation?(this._addClass(this.sliderElem,"slider-vertical"),this.stylePos="top",this.mousePos="pageY",this.sizePos="offsetHeight"):(this._addClass(this.sliderElem,"slider-horizontal"),this.sliderElem.style.width=ut,this.options.orientation="horizontal",this.stylePos="left",this.mousePos="pageX",this.sizePos="offsetWidth"),this._setTooltipPosition(),Array.isArray(this.options.ticks)&&this.options.ticks.length>0&&(this.options.max=Math.max.apply(Math,this.options.ticks),this.options.min=Math.min.apply(Math,this.options.ticks)),Array.isArray(this.options.value)?(this.options.range=!0,this._state.value=this.options.value):this._state.value=this.options.range?[this.options.value,this.options.max]:this.options.value,this.trackLow=y||this.trackLow,this.trackSelection=c||this.trackSelection,this.trackHigh=p||this.trackHigh,"none"===this.options.selection&&(this._addClass(this.trackLow,"hide"),this._addClass(this.trackSelection,"hide"),this._addClass(this.trackHigh,"hide")),this.handle1=f||this.handle1,this.handle2=e||this.handle2,nt===!0)for(this._removeClass(this.handle1,"round triangle"),this._removeClass(this.handle2,"round triangle hide"),r=0;r<this.ticks.length;r++)this._removeClass(this.ticks[r],"round triangle hide");if(tt=["round","triangle","custom"],it=-1!==tt.indexOf(this.options.handle),it)for(this._addClass(this.handle1,this.options.handle),this._addClass(this.handle2,this.options.handle),r=0;r<this.ticks.length;r++)this._addClass(this.ticks[r],this.options.handle);this._state.offset=this._offset(this.sliderElem);this._state.size=this.sliderElem[this.sizePos];this.setValue(this._state.value);this.handle1Keydown=this._keydown.bind(this,0);this.handle1.addEventListener("keydown",this.handle1Keydown,!1);this.handle2Keydown=this._keydown.bind(this,1);this.handle2.addEventListener("keydown",this.handle2Keydown,!1);this.mousedown=this._mousedown.bind(this);this.touchCapable&&this.sliderElem.addEventListener("touchstart",this.mousedown,!1);this.sliderElem.addEventListener("mousedown",this.mousedown,!1);"hide"===this.options.tooltip?(this._addClass(this.tooltip,"hide"),this._addClass(this.tooltip_min,"hide"),this._addClass(this.tooltip_max,"hide")):"always"===this.options.tooltip?(this._showTooltip(),this._alwaysShowTooltip=!0):(this.showTooltip=this._showTooltip.bind(this),this.hideTooltip=this._hideTooltip.bind(this),this.sliderElem.addEventListener("mouseenter",this.showTooltip,!1),this.sliderElem.addEventListener("mouseleave",this.hideTooltip,!1),this.handle1.addEventListener("focus",this.showTooltip,!1),this.handle1.addEventListener("blur",this.hideTooltip,!1),this.handle2.addEventListener("focus",this.showTooltip,!1),this.handle2.addEventListener("blur",this.hideTooltip,!1));this.options.enabled?this.enable():this.disable()}var r={formatInvalidInputErrorMsg:function(n){return"Invalid input value '"+n+"' passed in"},callingContextNotSliderInstance:"Calling context element does not have instance of Slider bound to it. Check your code to make sure the JQuery object returned from the call to the slider() initializer is calling the method"},u={linear:{toValue:function(n){var e=n/100*(this.options.max-this.options.min),r,o,u,f,t,s,i;if(this.options.ticks_positions.length>0){for(f=0,t=0;t<this.options.ticks_positions.length;t++)if(n<=this.options.ticks_positions[t]){r=t>0?this.options.ticks[t-1]:0;u=t>0?this.options.ticks_positions[t-1]:0;o=this.options.ticks[t];f=this.options.ticks_positions[t];break}t>0&&(s=(n-u)/(f-u),e=r+s*(o-r))}return i=this.options.min+Math.round(e/this.options.step)*this.options.step,i<this.options.min?this.options.min:i>this.options.max?this.options.max:i},toPercentage:function(n){var i,f,r,u,t,e;if(this.options.max===this.options.min)return 0;if(this.options.ticks_positions.length>0){for(u=0,t=0;t<this.options.ticks.length;t++)if(n<=this.options.ticks[t]){i=t>0?this.options.ticks[t-1]:0;r=t>0?this.options.ticks_positions[t-1]:0;f=this.options.ticks[t];u=this.options.ticks_positions[t];break}if(t>0)return e=(n-i)/(f-i),r+e*(u-r)}return 100*(n-this.options.min)/(this.options.max-this.options.min)}},logarithmic:{toValue:function(n){var i=0===this.options.min?0:Math.log(this.options.min),r=Math.log(this.options.max),t=Math.exp(i+(r-i)*n/100);return t=this.options.min+Math.round((t-this.options.min)/this.options.step)*this.options.step,t<this.options.min?this.options.min:t>this.options.max?this.options.max:t},toPercentage:function(n){if(this.options.max===this.options.min)return 0;var i=Math.log(this.options.max),t=0===this.options.min?0:Math.log(this.options.min),r=0===n?0:Math.log(n);return 100*(r-t)/(i-t)}}},f;(t=function(n,t){return i.call(this,n,t),this},t.prototype={_init:function(){},constructor:t,defaultOptions:{id:"",min:0,max:10,step:1,precision:0,orientation:"horizontal",value:5,range:!1,selection:"before",tooltip:"show",tooltip_split:!1,handle:"round",reversed:!1,enabled:!0,formatter:function(n){return Array.isArray(n)?n[0]+" : "+n[1]:n},natural_arrow_keys:!1,ticks:[],ticks_positions:[],ticks_labels:[],ticks_snap_bounds:0,scale:"linear",focus:!1,tooltip_position:null,labelledby:null},getElement:function(){return this.sliderElem},getValue:function(){return this.options.range?this._state.value:this._state.value[0]},setValue:function(n,t,i){var f,u,r;return n||(n=0),f=this.getValue(),this._state.value=this._validateInputValue(n),u=this._applyPrecision.bind(this),this.options.range?(this._state.value[0]=u(this._state.value[0]),this._state.value[1]=u(this._state.value[1]),this._state.value[0]=Math.max(this.options.min,Math.min(this.options.max,this._state.value[0])),this._state.value[1]=Math.max(this.options.min,Math.min(this.options.max,this._state.value[1]))):(this._state.value=u(this._state.value),this._state.value=[Math.max(this.options.min,Math.min(this.options.max,this._state.value))],this._addClass(this.handle2,"hide"),this._state.value[1]="after"===this.options.selection?this.options.max:this.options.min),this._state.percentage=this.options.max>this.options.min?[this._toPercentage(this._state.value[0]),this._toPercentage(this._state.value[1]),100*this.options.step/(this.options.max-this.options.min)]:[0,0,100],this._layout(),r=this.options.range?this._state.value:this._state.value[0],t===!0&&this._trigger("slide",r),f!==r&&i===!0&&this._trigger("change",{oldValue:f,newValue:r}),this._setDataVal(r),this},destroy:function(){this._removeSliderEventHandlers();this.sliderElem.parentNode.removeChild(this.sliderElem);this.element.style.display="";this._cleanUpEventCallbacksMap();this.element.removeAttribute("data");n&&(this._unbindJQueryEventHandlers(),this.$element.removeData("slider"))},disable:function(){return this._state.enabled=!1,this.handle1.removeAttribute("tabindex"),this.handle2.removeAttribute("tabindex"),this._addClass(this.sliderElem,"slider-disabled"),this._trigger("slideDisabled"),this},enable:function(){return this._state.enabled=!0,this.handle1.setAttribute("tabindex",0),this.handle2.setAttribute("tabindex",0),this._removeClass(this.sliderElem,"slider-disabled"),this._trigger("slideEnabled"),this},toggle:function(){return this._state.enabled?this.disable():this.enable(),this},isEnabled:function(){return this._state.enabled},on:function(n,t){return this._bindNonQueryEventHandler(n,t),this},off:function(t,i){n?(this.$element.off(t,i),this.$sliderElem.off(t,i)):this._unbindNonQueryEventHandler(t,i)},getAttribute:function(n){return n?this.options[n]:this.options},setAttribute:function(n,t){return this.options[n]=t,this},refresh:function(){return this._removeSliderEventHandlers(),i.call(this,this.element,this.options),n&&n.data(this.element,"slider",this),this},relayout:function(){return this._layout(),this},_removeSliderEventHandlers:function(){this.handle1.removeEventListener("keydown",this.handle1Keydown,!1);this.handle2.removeEventListener("keydown",this.handle2Keydown,!1);this.showTooltip&&(this.handle1.removeEventListener("focus",this.showTooltip,!1),this.handle2.removeEventListener("focus",this.showTooltip,!1));this.hideTooltip&&(this.handle1.removeEventListener("blur",this.hideTooltip,!1),this.handle2.removeEventListener("blur",this.hideTooltip,!1));this.showTooltip&&this.sliderElem.removeEventListener("mouseenter",this.showTooltip,!1);this.hideTooltip&&this.sliderElem.removeEventListener("mouseleave",this.hideTooltip,!1);this.sliderElem.removeEventListener("touchstart",this.mousedown,!1);this.sliderElem.removeEventListener("mousedown",this.mousedown,!1)},_bindNonQueryEventHandler:function(n,t){void 0===this.eventToCallbackMap[n]&&(this.eventToCallbackMap[n]=[]);this.eventToCallbackMap[n].push(t)},_unbindNonQueryEventHandler:function(n,t){var r=this.eventToCallbackMap[n],i;if(void 0!==r)for(i=0;i<r.length;i++)if(r[i]===t){r.splice(i,1);break}},_cleanUpEventCallbacksMap:function(){for(var i,t=Object.keys(this.eventToCallbackMap),n=0;n<t.length;n++)i=t[n],this.eventToCallbackMap[i]=null},_showTooltip:function(){this.options.tooltip_split===!1?(this._addClass(this.tooltip,"in"),this.tooltip_min.style.display="none",this.tooltip_max.style.display="none"):(this._addClass(this.tooltip_min,"in"),this._addClass(this.tooltip_max,"in"),this.tooltip.style.display="none");this._state.over=!0},_hideTooltip:function(){this._state.inDrag===!1&&this.alwaysShowTooltip!==!0&&(this._removeClass(this.tooltip,"in"),this._removeClass(this.tooltip_min,"in"),this._removeClass(this.tooltip_max,"in"));this._state.over=!1},_layout:function(){var n,r,t,i,u,o,s,h,c;if(n=this.options.reversed?[100-this._state.percentage[0],this.options.range?100-this._state.percentage[1]:this._state.percentage[1]]:[this._state.percentage[0],this._state.percentage[1]],this.handle1.style[this.stylePos]=n[0]+"%",this.handle1.setAttribute("aria-valuenow",this._state.value[0]),this.handle2.style[this.stylePos]=n[1]+"%",this.handle2.setAttribute("aria-valuenow",this._state.value[1]),Array.isArray(this.options.ticks)&&this.options.ticks.length>0){var l="vertical"===this.options.orientation?"height":"width",e="vertical"===this.options.orientation?"marginTop":"marginLeft",f=this._state.size/(this.options.ticks.length-1);if(this.tickLabelContainer){if(r=0,0===this.options.ticks_positions.length)"vertical"!==this.options.orientation&&(this.tickLabelContainer.style[e]=-f/2+"px"),r=this.tickLabelContainer.offsetHeight;else for(t=0;t<this.tickLabelContainer.childNodes.length;t++)this.tickLabelContainer.childNodes[t].offsetHeight>r&&(r=this.tickLabelContainer.childNodes[t].offsetHeight);"horizontal"===this.options.orientation&&(this.sliderElem.style.marginBottom=r+"px")}for(t=0;t<this.options.ticks.length;t++)i=this.options.ticks_positions[t]||this._toPercentage(this.options.ticks[t]),this.options.reversed&&(i=100-i),this.ticks[t].style[this.stylePos]=i+"%",this._removeClass(this.ticks[t],"in-selection"),this.options.range?i>=n[0]&&i<=n[1]&&this._addClass(this.ticks[t],"in-selection"):"after"===this.options.selection&&i>=n[0]?this._addClass(this.ticks[t],"in-selection"):"before"===this.options.selection&&i<=n[0]&&this._addClass(this.ticks[t],"in-selection"),this.tickLabels[t]&&(this.tickLabels[t].style[l]=f+"px","vertical"!==this.options.orientation&&void 0!==this.options.ticks_positions[t]?(this.tickLabels[t].style.position="absolute",this.tickLabels[t].style[this.stylePos]=i+"%",this.tickLabels[t].style[e]=-f/2+"px"):"vertical"===this.options.orientation&&(this.tickLabels[t].style.marginLeft=this.sliderElem.offsetWidth+"px",this.tickLabelContainer.style.marginTop=this.sliderElem.offsetWidth/-2+"px"))}this.options.range?(u=this.options.formatter(this._state.value),this._setText(this.tooltipInner,u),this.tooltip.style[this.stylePos]=(n[1]+n[0])/2+"%","vertical"===this.options.orientation?this._css(this.tooltip,"margin-top",-this.tooltip.offsetHeight/2+"px"):this._css(this.tooltip,"margin-left",-this.tooltip.offsetWidth/2+"px"),"vertical"===this.options.orientation?this._css(this.tooltip,"margin-top",-this.tooltip.offsetHeight/2+"px"):this._css(this.tooltip,"margin-left",-this.tooltip.offsetWidth/2+"px"),o=this.options.formatter(this._state.value[0]),this._setText(this.tooltipInner_min,o),s=this.options.formatter(this._state.value[1]),this._setText(this.tooltipInner_max,s),this.tooltip_min.style[this.stylePos]=n[0]+"%","vertical"===this.options.orientation?this._css(this.tooltip_min,"margin-top",-this.tooltip_min.offsetHeight/2+"px"):this._css(this.tooltip_min,"margin-left",-this.tooltip_min.offsetWidth/2+"px"),this.tooltip_max.style[this.stylePos]=n[1]+"%","vertical"===this.options.orientation?this._css(this.tooltip_max,"margin-top",-this.tooltip_max.offsetHeight/2+"px"):this._css(this.tooltip_max,"margin-left",-this.tooltip_max.offsetWidth/2+"px")):(u=this.options.formatter(this._state.value[0]),this._setText(this.tooltipInner,u),this.tooltip.style[this.stylePos]=n[0]+"%","vertical"===this.options.orientation?this._css(this.tooltip,"margin-top",-this.tooltip.offsetHeight/2+"px"):this._css(this.tooltip,"margin-left",-this.tooltip.offsetWidth/2+"px"));"vertical"===this.options.orientation?(this.trackLow.style.top="0",this.trackLow.style.height=Math.min(n[0],n[1])+"%",this.trackSelection.style.top=Math.min(n[0],n[1])+"%",this.trackSelection.style.height=Math.abs(n[0]-n[1])+"%",this.trackHigh.style.bottom="0",this.trackHigh.style.height=100-Math.min(n[0],n[1])-Math.abs(n[0]-n[1])+"%"):(this.trackLow.style.left="0",this.trackLow.style.width=Math.min(n[0],n[1])+"%",this.trackSelection.style.left=Math.min(n[0],n[1])+"%",this.trackSelection.style.width=Math.abs(n[0]-n[1])+"%",this.trackHigh.style.right="0",this.trackHigh.style.width=100-Math.min(n[0],n[1])-Math.abs(n[0]-n[1])+"%",h=this.tooltip_min.getBoundingClientRect(),c=this.tooltip_max.getBoundingClientRect(),h.right>c.left?(this._removeClass(this.tooltip_max,"top"),this._addClass(this.tooltip_max,"bottom"),this.tooltip_max.style.top="18px"):(this._removeClass(this.tooltip_max,"bottom"),this._addClass(this.tooltip_max,"top"),this.tooltip_max.style.top=this.tooltip_min.style.top))},_removeProperty:function(n,t){n.style.removeProperty?n.style.removeProperty(t):n.style.removeAttribute(t)},_mousedown:function(n){var t,r,u,i;return this._state.enabled?(this._state.offset=this._offset(this.sliderElem),this._state.size=this.sliderElem[this.sizePos],t=this._getPercentage(n),this.options.range?(r=Math.abs(this._state.percentage[0]-t),u=Math.abs(this._state.percentage[1]-t),this._state.dragged=u>r?0:1):this._state.dragged=0,this._state.percentage[this._state.dragged]=t,this._layout(),this.touchCapable&&(document.removeEventListener("touchmove",this.mousemove,!1),document.removeEventListener("touchend",this.mouseup,!1)),this.mousemove&&document.removeEventListener("mousemove",this.mousemove,!1),this.mouseup&&document.removeEventListener("mouseup",this.mouseup,!1),this.mousemove=this._mousemove.bind(this),this.mouseup=this._mouseup.bind(this),this.touchCapable&&(document.addEventListener("touchmove",this.mousemove,!1),document.addEventListener("touchend",this.mouseup,!1)),document.addEventListener("mousemove",this.mousemove,!1),document.addEventListener("mouseup",this.mouseup,!1),this._state.inDrag=!0,i=this._calculateValue(),this._trigger("slideStart",i),this._setDataVal(i),this.setValue(i,!1,!0),this._pauseEvent(n),this.options.focus&&this._triggerFocusOnHandle(this._state.dragged),!0):!1},_triggerFocusOnHandle:function(n){0===n&&this.handle1.focus();1===n&&this.handle2.focus()},_keydown:function(n,t){var r,u,f,i;if(!this._state.enabled)return!1;switch(t.keyCode){case 37:case 40:r=-1;break;case 39:case 38:r=1}if(r)return this.options.natural_arrow_keys&&(u="vertical"===this.options.orientation&&!this.options.reversed,f="horizontal"===this.options.orientation&&this.options.reversed,(u||f)&&(r=-r)),i=this._state.value[n]+r*this.options.step,this.options.range&&(i=[n?this._state.value[0]:i,n?i:this._state.value[1]]),this._trigger("slideStart",i),this._setDataVal(i),this.setValue(i,!0,!0),this._setDataVal(i),this._trigger("slideStop",i),this._layout(),this._pauseEvent(t),!1},_pauseEvent:function(n){n.stopPropagation&&n.stopPropagation();n.preventDefault&&n.preventDefault();n.cancelBubble=!0;n.returnValue=!1},_mousemove:function(n){var t,i;return this._state.enabled?(t=this._getPercentage(n),this._adjustPercentageForRangeSliders(t),this._state.percentage[this._state.dragged]=t,this._layout(),i=this._calculateValue(!0),this.setValue(i,!0,!0),!1):!1},_adjustPercentageForRangeSliders:function(n){var t,i;this.options.range&&(t=this._getNumDigitsAfterDecimalPlace(n),t=t?t-1:0,i=this._applyToFixedAndParseFloat(n,t),0===this._state.dragged&&this._applyToFixedAndParseFloat(this._state.percentage[1],t)<i?(this._state.percentage[0]=this._state.percentage[1],this._state.dragged=1):1===this._state.dragged&&this._applyToFixedAndParseFloat(this._state.percentage[0],t)>i&&(this._state.percentage[1]=this._state.percentage[0],this._state.dragged=0))},_mouseup:function(){if(!this._state.enabled)return!1;this.touchCapable&&(document.removeEventListener("touchmove",this.mousemove,!1),document.removeEventListener("touchend",this.mouseup,!1));document.removeEventListener("mousemove",this.mousemove,!1);document.removeEventListener("mouseup",this.mouseup,!1);this._state.inDrag=!1;this._state.over===!1&&this._hideTooltip();var n=this._calculateValue(!0);return this._layout(),this._setDataVal(n),this._trigger("slideStop",n),!1},_calculateValue:function(n){var t,i,r,u;if(this.options.range?(t=[this.options.min,this.options.max],0!==this._state.percentage[0]&&(t[0]=this._toValue(this._state.percentage[0]),t[0]=this._applyPrecision(t[0])),100!==this._state.percentage[1]&&(t[1]=this._toValue(this._state.percentage[1]),t[1]=this._applyPrecision(t[1]))):(t=this._toValue(this._state.percentage[0]),t=parseFloat(t),t=this._applyPrecision(t)),n){for(i=[t,1/0],r=0;r<this.options.ticks.length;r++)u=Math.abs(this.options.ticks[r]-t),u<=i[1]&&(i=[this.options.ticks[r],u]);if(i[1]<=this.options.ticks_snap_bounds)return i[0]}return t},_applyPrecision:function(n){var t=this.options.precision||this._getNumDigitsAfterDecimalPlace(this.options.step);return this._applyToFixedAndParseFloat(n,t)},_getNumDigitsAfterDecimalPlace:function(n){var t=(""+n).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},_applyToFixedAndParseFloat:function(n,t){var i=n.toFixed(t);return parseFloat(i)},_getPercentage:function(n){this.touchCapable&&("touchstart"===n.type||"touchmove"===n.type)&&(n=n.touches[0]);var i=n[this.mousePos],r=this._state.offset[this.stylePos],u=i-r,t=u/this._state.size*100;return t=Math.round(t/this._state.percentage[2])*this._state.percentage[2],this.options.reversed&&(t=100-t),Math.max(0,Math.min(100,t))},_validateInputValue:function(n){if("number"==typeof n)return n;if(Array.isArray(n))return this._validateArray(n),n;throw new Error(r.formatInvalidInputErrorMsg(n));},_validateArray:function(n){for(var i,t=0;t<n.length;t++)if(i=n[t],"number"!=typeof i)throw new Error(r.formatInvalidInputErrorMsg(i));},_setDataVal:function(n){this.element.setAttribute("data-value",n);this.element.setAttribute("value",n);this.element.value=n},_trigger:function(t,i){var r,u,f;if(i=i||0===i?i:void 0,r=this.eventToCallbackMap[t],r&&r.length)for(u=0;u<r.length;u++)f=r[u],f(i);n&&this._triggerJQueryEvent(t,i)},_triggerJQueryEvent:function(n,t){var i={type:n,value:t};this.$element.trigger(i);this.$sliderElem.trigger(i)},_unbindJQueryEventHandlers:function(){this.$element.off();this.$sliderElem.off()},_setText:function(n,t){"undefined"!=typeof n.innerText?n.innerText=t:"undefined"!=typeof n.textContent&&(n.textContent=t)},_removeClass:function(n,t){for(var f,e,u=t.split(" "),i=n.className,r=0;r<u.length;r++)f=u[r],e=new RegExp("(?:\\s|^)"+f+"(?:\\s|$)"),i=i.replace(e," ");n.className=i.trim()},_addClass:function(n,t){for(var u=t.split(" "),i=n.className,r=0;r<u.length;r++){var f=u[r],e=new RegExp("(?:\\s|^)"+f+"(?:\\s|$)"),o=e.test(i);o||(i+=" "+f)}n.className=i.trim()},_offsetLeft:function(n){return n.getBoundingClientRect().left},_offsetTop:function(n){for(var t=n.offsetTop;(n=n.offsetParent)&&!isNaN(n.offsetTop);)t+=n.offsetTop;return t},_offset:function(n){return{left:this._offsetLeft(n),top:this._offsetTop(n)}},_css:function(t,i,r){if(n)n.style(t,i,r);else{var u=i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(n,t){return t.toUpperCase()});t.style[u]=r}},_toValue:function(n){return this.options.scale.toValue.apply(this,[n])},_toPercentage:function(n){return this.options.scale.toPercentage.apply(this,[n])},_setTooltipPosition:function(){var n=[this.tooltip,this.tooltip_min,this.tooltip_max],t,i;"vertical"===this.options.orientation?(t=this.options.tooltip_position||"right",i="left"===t?"right":"left",n.forEach(function(n){this._addClass(n,t);n.style[i]="100%"}.bind(this))):"bottom"===this.options.tooltip_position?n.forEach(function(n){this._addClass(n,"bottom");n.style.top="22px"}.bind(this)):n.forEach(function(n){this._addClass(n,"top");n.style.top=-this.tooltip.outerHeight-14+"px"}.bind(this))}},n)&&(f=n.fn.slider?"bootstrapSlider":"slider",n.bridget(f,t))}(n),t});typeof cartApp!="undefined"?app=cartApp:typeof shopApp!="undefined"&&(app=shopApp);app.service("cfcService",["httpGetService","$rootScope",function(n,t){var i=this;i.cfcApiUrl=function(){return"{0}EstimatedDelivery/GetEstimatedDeliveryDates?postalCode={1}&orderCode={2}".format(i.apiUrl,i.zipCode,i.orderCode)};i.zipCode="";i.orderCode="";i.apiUrl="";i.cfcModel={};i.shippingModel={};i.showLoading=!0;i.hasZipCode=!1;i.clearForm=!1;i.loadForm=!0;i.loadModal=function(n,t){i.showLoading=!0;i.hasZipCode=!1;i.orderCode=n;i.shippingModel=t;i.existsInCookie()?i.loadCookieZipCode():i.clearModal()};i.existsInCookie=function(){return amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined?typeof amplify.store().cfcZipCode!="undefined":!1};i.loadCookieZipCode=function(){$("#inputZipcode").val(i.getCFCZipCode()).addClass("ng-dirty").removeClass("ng-pristine");i.loadForm=!i.loadForm};i.clearModal=function(){i.zipCode="";$("#inputZipcode").val("");i.clearForm=!i.clearForm};i.getShippingInfo=function(t){typeof t!="undefined"&&t!==""&&(i.hasZipCode=!0,i.showLoading=!0,i.zipCode=t,i.setCFCZipCode(t),n.getData(i.cfcApiUrl()).success(function(n){i.cfcModel=n;i.showLoading=!1;i.updateProductStack(n.ProductStackDeliveryMessage,n.PrimaryCtaCaption)}))};i.setCFCZipCode=function(n){amplify.store("cfcZipCode",n,{expires:864e5});$.cookie("cfcZipCode",n,{expires:1,path:"/"})};i.getCFCZipCode=function(){return(amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined)&&typeof amplify.store().cfcZipCode!="undefined"?amplify.store("cfcZipCode"):-1};i.updateProductStack=function(n,r){i.linkWithZipCode=r+" - "+i.zipCode;i.newShippingMessage=n;t.$broadcast("updateCFCShipping")}}]);typeof cartApp!="undefined"?app=cartApp:typeof shopApp!="undefined"&&(app=shopApp);app.controller("cfcController",["$scope","cfcService",function(n,t){n.init=function(i){n.hasZipCode=!1;n.showLoading=!0;n.userZipCode="";n.modalCtaLabel="";t.apiUrl=i;n.$watch(function(){return t.cfcModel},function(t){n.Model=t});n.$watch(function(){return t.shippingModel},function(t){n.shippingModel=t;n.modalCtaLabel===""&&typeof n.shippingModel.EstimatedDeliveryModel!="undefined"&&(n.modalCtaLabel=n.shippingModel.EstimatedDeliveryModel.PrimaryCtaCaption)});n.$watch(function(){return t.showLoading},function(t){n.showLoading=t});n.$watch(function(){return t.hasZipCode},function(t){n.hasZipCode=t});n.$watch(function(){return t.clearForm},function(){n.zipform.userZipCode.$error.pattern=!0});n.$watch(function(){return t.loadForm},function(){n.zipform.userZipCode.$error.required=!1})};n.zipRegex=/^[0-9]{5}(?:-[0-9]{4})?$/;n.submit=function(){n.userZipCode===""&&(n.userZipCode=t.getCFCZipCode());t.getShippingInfo(n.userZipCode)}}]);typeof cartApp!="undefined"?app=cartApp:typeof shopApp!="undefined"&&(app=shopApp);app.service("financeCalculatorService",["$location",function(){var n=this;n.dfsModel={};n.isDFSContentLoaded="";n.isDFSError="";n.ErrorMessage="";n.setHeight=function(){var n=$(window).innerHeight()*.8;$("#dfs-modal").css("max-height",n)}}]);typeof cartApp!="undefined"?app=cartApp:typeof shopApp!="undefined"&&(app=shopApp);app.controller("financeCalculatorController",["$scope","financeCalculatorService",function(n,t){var r="24.99",u="50.0",i="0.0";n.init=function(){n.showLoading=!0;n.$watch(function(){return t.dfsModel},function(i){typeof i!="undefined"&&(n.dfsModel=t.dfsModel,$(window).innerWidth()>767&&t.setHeight(),typeof n.dfsModel.Content!="undefined"&&(n.calculateFieldValues(),n.showLoading=!1,n.waitForFinalEvent(function(){angular.element("#shopCalculator").slider("refresh")},10,n.fullDateString.getTime())))})};n.calculateFieldValues=function(){n.getAdditionalDD();n.getSubTotal();n.getMinimumValues();n.getAdditionalValues()};n.getRedirectUrl=function(){window.location.href=n.dfsModel.Content.ApplyLinkUrl.replace("returnurl%3d","returnurl%3d"+encodeURIComponent(window.location.href))};n.getAdditionalDD=function(){n.dropDownOptions=[];typeof n.dfsModel.Content!="undefined"&&(angular.forEach(n.dfsModel.Content.AdditionalPaymentOptions,function(t){var i={};i.Label=t.DisplayText;i.Key=t.Value;n.dropDownOptions.push(i)}),n.selectedTitle=n.dropDownOptions[2])};n.getSubTotal=function(){if(typeof n.dfsModel.FinancedAmountDisplay!="undefined"){var t=n.dfsModel.FinancedAmountDisplay.split("$");n.dfsModel.subTotalString=t[1]}};n.getMinimumValues=function(){n.getMinimumPaymentValues(r)};n.getAdditionalValues=function(){n.getAdditionalPaymentValues(u,r)};n.updateAdditionalPayments=function(t){var i=n.selectedTitle.Key.toString()+".0";n.getAdditionalPaymentValues(i,t)};n.updatePayments=function(t){typeof t=="undefined"&&(t=angular.element("#shopCalculator")[0].value);n.getMinimumPaymentValues(t);n.updateAdditionalPayments(t)};n.getMinimumPaymentValues=function(t){if(typeof n.dfsModel.Schedule!="undefined"){var r=n.dfsModel.Content.ChartRewardsFormat;n.dfsModel.minimumMonthlyPayment=n.dfsModel.Schedule[i][t].FormattedMinimumPayment;n.dfsModel.minimumPayoffTerm=n.dfsModel.Schedule[i][t].PayoffTerm;n.dfsModel.minimumTotalInterest=n.dfsModel.Schedule[i][t].FormattedFinalAmount;n.dfsModel.minimumRewards=r.format(n.dfsModel.Schedule[i][t].Rewards)}};n.getAdditionalPaymentValues=function(t,i){if(typeof n.dfsModel.Schedule!="undefined"){var r=n.dfsModel.Content.ChartRewardsFormat;n.dfsModel.additionalMonthlyPayment=n.dfsModel.Schedule[t][i].FormattedMinimumPayment;n.dfsModel.additionalPayoffTerm=n.dfsModel.Schedule[t][i].PayoffTerm;n.dfsModel.additionalTotalInterest=n.dfsModel.Schedule[t][i].FormattedFinalAmount;n.dfsModel.additionalRewards=r.format(n.dfsModel.Schedule[t][i].Rewards)}};n.waitForFinalEvent=function(){var n={};return function(t,i,r){n[r]&&clearTimeout(n[r]);n[r]=setTimeout(t,i)}}();n.fullDateString=new Date;angular.element("#shopCalculator").slider({formatter:function(n){return n+"%"},tooltip:"always",precision:2});angular.element(document).on("click","#dfs-modal button.close",function(){n.showLoading=!0})}]);typeof cartApp!="undefined"?app=cartApp:typeof shopApp!="undefined"&&(app=shopApp);app.factory("httpGetService",["$http",function(n){return{getData:function(t){return n({url:t,method:"GET"})}}}]);app.controller("financeStackController",["$scope","httpGetService","$rootScope","financeCalculatorService",function(n,t,i,r){var u="{0}financeschedule/getCalculator?financedPrice={1}";n.init=function(t){n.apiUrl=t};n.loadDFSContent=function(i){var f,e;$(".dfs-input-value").length>0&&(f=$(".dfs-input-value").get(0));n.apiUrl=typeof serverUrls!="undefined"?serverUrls.apiServiceUrl:n.apiUrl;e=typeof f=="undefined"?i:$(f).data("dfs-input");t.getData(u.format(n.apiUrl,e)).success(function(n){r.dfsModel=n;r.dfsModel.isDFSContentLoaded=!0;r.dfsModel.isDFSError=!1}).error(function(n){r.dfsModel.isDFSContentLoaded=!1;r.dfsModel.isDFSError=!0;r.dfsModel.ErrorMessage=n.Message})};n.buildRedirectUrl=function(n){var t=n.split("returnurl%3d")[0]+"returnurl%3d"+encodeURIComponent(window.location.href);window.location.href=t}}]);shopApp.controller("warrantyServicesController",["$scope","shopService","$window","warrantyService","addToCartService",function(n,t,i,r,u){n.init=function(){n.getDefaultConfigModules()};n.getDefaultConfigModules=function(){var t,i;typeof configurationModulesData!="undefined"&&configurationModulesData!=null&&(n.Model=configurationModulesData,n.Model.ConfigModules.length>0&&(t=n.getSelectedOption(n.Model.ConfigModules),t!=null&&typeof t.Id!="undefined"&&typeof t.ModId!="undefined"&&(n.DefaultWarrantyOptionId=t.Id,n.Model.Overrides=t.ModId+"~"+t.Id,t.IsSelected=!0)),n.Model.CompositeConfigModules.length>0&&(i=n.getSelectedOption(n.Model.CompositeConfigModules),i!=null&&typeof i.Id!="undefined"&&typeof i.ModId!="undefined"&&(n.DefaultCompositeConfigId=i.Id,n.Model.CompositeOverrides=i.ModId+"~"+i.Id)))};n.$watch("Model",function(t){if(t!=""&&(n.Model=t,n.userContext="/"+n.Model.UserContext.Language+"-"+n.Model.UserContext.Country,n.isready=!0,n.ContentLoaded=!0,n.disableRadioButtons=!1,n.OrderCode=n.Model.OrderCodeId,n.CompositeOrderCode=n.Model.CompositeOrderCodeId,n.HasRecommendations=n.Model.HasRecommendations,n.RecommendationsUrl=n.Model.RecommendationsUrl,n.HasErrors=!1,n.ErrorMessage="",s_dell!=null)){var i=n.getSelectedOption(n.Model.ConfigModules);s_dell.warrantyAndServicesHasChanged=i!=null&&n.DefaultWarrantyOptionId!=i.Id?{isDirty:!0,defaults:n.DefaultWarrantyOptionId}:{isDirty:!1}}});n.UpdateConfigModel=function(t,i){var u=null;t!=undefined&&i!=undefined&&(u=t+"~"+i,n.Model.Overrides=u);n.showSpinner=!0;n.disableRadioButtons=!0;r.getCompositeConfigs(n.OrderCode,n.Model.Overrides,n.CompositeOrderCode,n.Model.CompositeOverrides).then(function(t){t!=undefined&&(t.ConfigModules!=null&&n.updateSelectedOption(t.ConfigModules,i),n.Model.ConfigModules=t.ConfigModules,n.Model.TotalPrice=t.TotalPrice,n.ContentLoaded=!0,n.HasErrors=!1,n.showSpinner=!1,n.disableRadioButtons=!1)},function(t){n.ErrorMessage=t;n.ContentLoaded=!1;n.HasErrors=!0;n.showSpinner=!1;n.disableRadioButtons=!1})};n.UpdateCompositeConfigModel=function(t,i){var u=null;t!=undefined&&i!=undefined&&(u=t+"~"+i,n.Model.CompositeOverrides=u);n.showSpinner=!0;n.disableRadioButtons=!0;r.getCompositeConfigs(n.OrderCode,n.Model.Overrides,n.CompositeOrderCode,n.Model.CompositeOverrides).then(function(t){t!=undefined&&(t.CompositeConfigModules!=null&&n.updateSelectedOption(t.CompositeConfigModules,i),n.Model.CompositeConfigModules=t.CompositeConfigModules,n.Model.TotalPrice=t.TotalPrice,n.ContentLoaded=!0,n.HasErrors=!1,n.showSpinner=!1,n.disableRadioButtons=!1)},function(t){n.ErrorMessage=t;n.ContentLoaded=!1;n.HasErrors=!0;n.showSpinner=!1;n.disableRadioButtons=!1})};n.ProceedToCart=function(t){n.disableRadioButtons=!0;var i=angular.element(t.currentTarget),r=n.Model.Overrides,f=n.Model.CompositeOverrides,e=n.Model.CompositeOptionId!=null?n.Model.CompositeOptionId:"",o=n.Model.CompositeModuleId!=0?n.Model.CompositeModuleId:"";u.addConfigItem(n.OrderCode,i,r,null,f,e,o).then(function(){Dell.Transactional.removePreviousPageFromHistory();window.location.href=n.HasRecommendations&&n.RecommendationsUrl!=""&&(amplify.store.localStorage!==undefined||amplify.store.sessionStorage!==undefined)?n.RecommendationsUrl:n.userContext+"/cart"},function(){Dell.Transactional.removePreviousPageFromHistory();window.location.href=n.userContext+"/cart"})};n.getSelectedOption=function(n){var t,i,r,u,f,e;if(n!=null)for(t=0;t<n.length;t++)if(i=n[t],i.OptionGroups!=null)for(r=0;r<i.OptionGroups.length;r++)if(u=i.OptionGroups[r],u.Options!=null)for(f=0;f<u.Options.length;f++)if(e=u.Options[f],e.IsSelected)return e;return{Description:""}};n.updateSelectedOption=function(n,t){for(var f,r,e,u,o,i=0;i<n.length;i++)if(f=n[i],f.OptionGroups!=null)for(r=0;r<f.OptionGroups.length;r++)if(e=f.OptionGroups[r],e.Options!=null)for(u=0;u<e.Options.length;u++)o=e.Options[u],n[i].OptionGroups[r].Options[u].IsSelected=o.Id==t};n.formatSummary=function(t,i){var r=n.getSelectedOption().Description;return t.replace("{0}",i).replace("{1}",r)};n.formatTitle=function(n,t){return n.replace("{0}",t)}}]);shopApp.directive("warrantyServicesOptions",[function(){return{restrict:"EA",replace:!1,templateUrl:"/content/templates/systems/warrantyandservices/warranty-services-options.html",scope:{modules:"=",title:"=",recommendedcaption:"=",selectedcaption:"=",radiobtnstate:"=",accordionid:"@",radiobtnname:"@",cssclass:"@",selectoption:"&"},link:function(n){n.updateoption=function(t,i){n.selectoption()(t,i)}}}}]);shopApp.config(["$locationProvider",function(n){n.html5Mode({enable:!0})}]);shopApp.controller("productDetailsController",["$scope","$rootScope","$location","initService","createDataModelService","httpGetService","ConfiguratorService",function(n,t,i,r,u,f,e){"use strict";var o=function(i){u.InitScope(n,t,i)};n.init=function(i,r){n.apiUrl=i;n.offCanvasTarget="";(e.HasConfigSelectionSate()||typeof n.DataModel.Stacks[0]!="undefined"&&typeof n.DataModel.Stacks[0].ConfigurableItem!="undefined"&&n.DataModel.Stacks[0].ConfigurableItem.Sections.length>0&&$(window).width()<768)&&(n.showOffCanvas=!0,n.offCanvasTarget="#configurations");t.productCode=r},function(){(function(n){o(n)})({data:r.Get()})}()}]);shopApp.config(["$locationProvider",function(n){n.html5Mode({enable:!0})}]);shopApp.controller("servicesSelectionController",["$scope","$rootScope","$location","$cookieStore","initService","createDataModelService","recommendationsService","ConfiguratorService",function(n,t,i,r,u,f,e,o){"use strict";var s=function(i){f.InitScope(n,t,i)};n.init=function(t){n.apiUrl=t;e.setApiUrl(t);e.setDataModel(n.DataModel);n.DataModel.Stacks.length>0&&n.DataModel.Stacks[0].ConfiguratorState.SelectionCode!==""?(r.put("defaultSelectionState",n.getSelectionCode()),r.put("cartId",n.getCartId())):(n.DataModel.Stacks[0].Stack.Type!=0&&(o.skuDefaultAddToCartItemJson=n.DataModel.Stacks[0].ConfiguratorState.AddToCartItemJson),r.put("defaultSelectionState",undefined),r.put("cartId",undefined))};n.getSelectionCode=function(){return n.DataModel.Stacks[0].ConfiguratorState.SelectionCode};n.getCartId=function(){return n.DataModel.Stacks[0].ConfiguratorState.CartItemId},function(){(function(n){s(n)})({data:u.Get()})}()}]);shopApp.controller("multipleConfigsController",["$scope","shopService","$rootScope","$window","$timeout","addToCompareService",function(n,t,i,r,u,f){function e(n){return $(".device-"+n).is(":visible")}var o="{0}ProductConfiguration?ProductCode={1}&OrderCode={2}&page={3}&pageSize={4}";n.mobileConfigs=[];n.currentPage=1;n.loadingScreen=$('<div id="loaderDivImage" style="position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;background-color:gray;background-color:rgba(70,70,70,0.2);"><span aria-hidden="true" style="position:absolute;top:50%;left:50%;"  class="icon-ui-loading" ><\/span> <\/div>').appendTo($("body")).hide();n.init=function(t,i){n.isContentLoaded=!0;n.apiUrl=t;n.totalItems=i;n.getItemsPerPage();n.Stacks=angular.copy(n.DataModel.Stacks);angular.forEach(n.Stacks,function(t){n.mobileConfigs.push(t)});f.universalAlreadyExistsInStore(n.Stacks);n.setButtonState();n.totalPages=n.numPages=Math.ceil(n.totalItems/n.itemsPerPage);n.itemsPerPage!==n.Stacks.length&&n.pageChanged(1)};n.pageChanged=function(r){n.loadingScreen.show();n.currentPage=parseInt(r,10);n.getItemsPerPage();t.getData(o.format(n.apiUrl,i.productCode,"",n.currentPage,n.itemsPerPage)).success(function(t){n.Stacks=n.$parent.DataModel.Stacks=t.PrimaryStacks;i.$broadcast("newResultsReceived");n.pagingInfo=t.PagingInfo;angular.forEach(n.Stacks,function(t){n.alreadyExists(t)});n.isContentLoaded=!0;e("xs")&&n.setMobileConfigs();setTimeout(function(){f.universalAlreadyExistsInStore(n.Stacks);n.setButtonState();$(".row-1").hide()},200);n.loadingScreen.hide()}).error(function(){n.loadingScreen.hide()})};n.setMobileConfigs=function(){n.Stacks=n.DataModel.Stacks=n.mobileConfigs;i.$broadcast("newResultsReceived")};n.getItemsPerPage=function(){n.itemsPerPage=e("sm")?parseInt(3,10):parseInt(4,10)};n.alreadyExists=function(t){var i=!1;angular.forEach(n.mobileConfigs,function(n){n.Stack.ItemIdentifier===t.Stack.ItemIdentifier&&(i=!0)});i||n.mobileConfigs.push(t)};n.setButtonState=function(){n.Stacks!==null&&((e("sm")&&n.totalItems===3||(e("md")||e("lg"))&&n.totalItemss===4)&&(n.disablePreviousButton(),n.disableNextButton()),n.pagingInfo!==undefined?(n.pagingInfo.HasPrevious?$(".pager li:first-child").removeClass("disabled"):$(".pager li:first-child").hasClass("disabled")||$(".pager li:first-child").addClass("disabled"),n.pagingInfo.HasNext?$(".pager li:last-child").removeClass("disabled"):$(".pager li:last-child").hasClass("disabled")||$(".pager li:last-child").addClass("disabled"),$("#current-item-range").html(n.pagingInfo.CurrentItemRange),$(".item-range-label").html(n.pagingInfo.ItemRangeLabel)):$(".pager li:last-child").removeClass("disabled"))};n.disablePreviousButton=function(){$(".pager li:first-child").hasClass("disabled")||$(".pager li:first-child").addClass("disabled")};n.disableNextButton=function(){$(".pager li:last-child").hasClass("disabled")||$(".pager li:last-child").addClass("disabled")};n.waitForFinalEvent=function(){var n={};return function(t,i,r){n[r]&&clearTimeout(n[r]);n[r]=setTimeout(t,i)}}();n.fullDateString=new Date;$(window).resize(function(){n.waitForFinalEvent(function(){var t=n.itemsPerPage;n.getItemsPerPage();e("xs")?(n.setMobileConfigs(),n.isMobile=!0,n.$apply()):n.itemsPerPage!==t?(n.pageChanged(n.currentPage),n.isMobile=!1):n.isMobile=!1},300,n.fullDateString.getTime())})}]);shopApp.service("ConfiguratorService",["$location","cfcService",function(n,t){var i=this;i.requestParams={orderCodeId:"",selectionState:"",selectionId:"",skuId:"",cartItemId:"",isSelected:!1};i.skuDefaultAddToCartItemJson="";i.configuratorDataModel={stacks:{}};i.compositeConfigs=[];i.getSelectionState=function(){return i.requestParams.selectionState};i.updateConfigs=function(n){angular.forEach(i.configuratorDataModel.stacks,function(t){t.ConfigurableItem.Sections=n.UpdatedModel.Sections;t.ConfigurableItem.EmbeddedConfigs=n.UpdatedModel.EmbeddedConfigs;t.Stack=i.setDeltaModelCfc(n)})};i.HasStack=function(){return angular.isDefined(i.configuratorDataModel.stacks)&&i.configuratorDataModel.stacks.length>0};i.HasConfigItem=function(){return i.HasStack()&&angular.isDefined(i.configuratorDataModel.stacks[0].ConfigurableItem)};i.setSelectionState=function(t,r){t!=""||r!=""?(i.requestParams.selectionState=t!=""?t:"",i.requestParams.cartItemId=r!=""?r:"",n.search("selectionState",t).replace()):i.requestParams.selectionState=""};i.HasValidationErrors=function(){return i.isValidationMessagesDefined()&&i.getConfigurableItem().ValidationMessages.length>0};i.getConfigurableItem=function(){return i.HasConfigItem()?i.configuratorDataModel.stacks[0].ConfigurableItem:{}};i.isValidationMessagesDefined=function(){return angular.isDefined(i.getConfigurableItem().ValidationMessages)};i.HasConfigSelectionSate=function(){var t=n.search().selectionState;return angular.isDefined(t)&&t!=""};i.getConfigSelectionSateParameter=function(){var t=n.search().selectionState;return angular.isDefined(t)&&t!=""?t:""};i.getCartIdParameter=function(){var t=n.search().cartItemId;return angular.isDefined(t)&&t!=""?t:""};i.setPageLevelValidationMessages=function(n){i.isValidationMessagesDefined()&&(i.getConfigurableItem().ValidationMessages=angular.copy(n),i.getConfigurableItem().HasValidationErrors=i.HasValidationErrors())};i.setAddToCartItemJson=function(n){i.AddToCartItemJson=n};i.getAddToCartItemJson=function(){return i.AddToCartItemJson};i.setConfiguratorState=function(n){i.configuratorState=n};i.getConfiguratorState=function(){return i.configuratorState};i.getPostalCode=function(){return t.getCFCZipCode()===-1?"":t.getCFCZipCode()};i.setDeltaModelCfc=function(n){var i=t.getCFCZipCode();return n.EstimatedDeliveryModel.CfcEnabled&&(n.ProductStack.Shipping.EstimatedDeliveryModel.CfcEnabled=!0,i!==-1&&(n.ProductStack.Shipping.EstimatedDeliveryModel=n.EstimatedDeliveryModel,n.ProductStack.Shipping.ShippingDate.Value=n.EstimatedDeliveryModel.ProductStackDeliveryMessage,n.ProductStack.Shipping.EstimatedDeliveryModel.PrimaryCtaCaption+=" - "+i)),n.ProductStack}}]);shopApp.service("ConfiguratorApiService",["$location","ConfiguratorService",function(n,t){var i=this;i.configureApiUrl=function(n){return"{0}configure?orderCodeId={1}&selectionState={2}&selectionId={3}&isSelected={4}&pagecxt={5}&skuId={6}&cartItemId={7}&postalCode={8}".format(n,t.requestParams.orderCodeId,t.requestParams.selectionState,t.requestParams.selectionId,t.requestParams.isSelected,t.getConfigurableItem().PageContext,t.requestParams.skuId,t.requestParams.cartItemId,t.getPostalCode())}}]);shopApp.directive("anchorTo",["$window",function(n){return{restrict:"AC",compile:function(){function i(i,u,f){u||n.scrollTo(0,0);var h=document.getElementById(u),e="#"+u,o=angular.element(e).closest(".accordion-body"),s=o.parent().prev().find(".accordion-toggle");s.hasClass("collapsed")?$.when(r(s,o)).done(function(){t(e,f)}):t(e,f)}function r(n,t){var i=new jQuery.Deferred;return n.hasClass("collapsed")&&(t.collapse("show"),n.removeClass("collapsed"),i.resolve("hurray")),i.promise()}function t(n,t){var i=SHOP.Transactional.Breakpoint.isPhone()?angular.element(".nested-back-btn-container.btn.back-btn").outerHeight(!0):angular.element(".nav.tabs-carousel-items").outerHeight(!0);t.offset().top<$(n).offset().top?angular.element("html, body").animate({scrollTop:$(n).offset().top-i-30},500):angular.element("html, body").animate({scrollTop:$(n).offset().top-i},500)}return function(n,t,r){t.on("click",function(u){u.preventDefault();i(n,r.anchorTo,t,r)})}}}}]);shopApp.directive("validationErrorHandler",function(){return{restrict:"EA",link:function(n){n.$on("validationError",function(){$("html, body").animate({scrollTop:0},500);var t=angular.element(".productstack-box"),n=angular.element(".review-btn"),i=n.data("original-text"),r=n.data("src-ele-class");t.hasClass("open-productstack-box")&&(t.removeClass("open-productstack-box"),n.addClass(r).text(i))})}}});shopApp.directive("keepScrollPosition",["$window","$timeout","$q",function(n,t,i){return{restrict:"EA",link:function(r,u){function o(){var r=i.defer();return t(function(){var t=u.height(),i=t-e;u.css("min-height",t);f=angular.element(".configurator-wrapper").data("scrollPos");n.scrollTo(0,f+i);r.resolve()},0),r.promise}var f=0,e;r.$on("beforeConfigDataRebind",function(){e=u.outerHeight(!0);f=angular.element(window).scrollTop();u.css("min-height",e)});r.$on("configDataRebind",function(){angular.element(".configurator-wrapper").data("scrollPos",f);o().then(function(){t(function(){u.removeAttr("style")},100)})})}}}]);shopApp.directive("resetReviewBtnState",function(){return{restrict:"EA",link:function(n,t){t.on("click",function(){var t=angular.element(".productstack-box"),n=angular.element(".review-btn"),i=n.data("original-text"),r=n.data("src-ele-class");t.hasClass("open-productstack-box")&&(t.removeClass("open-productstack-box"),n.addClass(r).text(i))})}}});shopApp.directive("removeHeight",function(){return{restrict:"EA",link:function(n,t){t.on("click",function(){angular.element(".product-configurator").removeAttr("style")})}}});shopApp.filter("replaceTildeWithDash",function(){return function(n){return n?n.replace(/~/g,"-"):""}});shopApp.controller("configuratorController",["$scope","$rootScope","$location","$cookieStore","$window","$timeout","httpGetService","ConfiguratorApiService","ConfiguratorService",function(n,t,i,r,u,f,e,o,s){"use strict";n.init=function(){s.configuratorDataModel.stacks=angular.copy(n.DataModel.Stacks);s.setSelectionState(s.getConfigSelectionSateParameter(),s.getCartIdParameter());var i=r.get("defaultSelectionState");typeof i=="undefined"&&(r.put("defaultSelectionState",s.getConfigSelectionSateParameter()),r.put("cartId",s.getCartIdParameter()));t.IsAnalyticsConfigurator=!0};n.hasWindow10Home=function(n){return $(window)[0].Dell.Metrics.sc.country==="us"&&$(window)[0].Dell.Metrics.sc.segment==="bsd"?n.OptionGroups.map(function(n){return n.Options}).reduce(function(n,t){return n.concat(t)}).filter(function(n){return n.Title.Value.toLocaleUpperCase().includes("WINDOWS 10 HOME")}).length>0:!1};n.configure=function(i){s.requestParams.orderCodeId=n.DataModel.Stacks[0].ConfigurableItem.ItemIdentifier;s.requestParams.skuId=n.DataModel.Stacks[0].Stack.Sku.Value;s.requestParams.selectionId=i.Id;s.requestParams.isSelected=!i.IsSelected;s.requestParams.cartItemId=n.DataModel.Stacks[0].ConfiguratorState.CartItemId;n.toggleDisplayStates(!0);t.$broadcast("beforeConfigDataRebind");e.getData(o.configureApiUrl(n.apiUrl)).success(function(i){s.updateConfigs(i);s.setSelectionState(i.SelectionState,i.ConfiguratorState.CartItemId);s.setPageLevelValidationMessages(i.UpdatedModel.ValidationMessages);s.setAddToCartItemJson(i.AddToCartItemJson);s.setConfiguratorState(i.ConfiguratorState);t.AnalyticsConfigurator=i.SelectionState;Dell.Metrics.sc.configupsell=JSON.parse(i.ConfiguratorState.AnalyticsJson);f(function(){n.DataModel.Stacks=s.configuratorDataModel.stacks;t.$broadcast("configDataRebind")},0);n.toggleDisplayStates(!1)}).error(function(){n.toggleDisplayStates(!1)})};n.toggleDisplayStates=function(t){n.disableRadioButtons=t;n.showSpinner=t};n.optionSelectionState=function(n){return!n.IsSelected||n.DisplayAsSpec||n.IsMultiSelect?n.IsSelected&&!n.DisplayAsSpec&&n.IsMultiSelect?"gray-light is-option-selected has-multi-select":n.DisplayAsSpec?"gray-light display-as-spec":"":"gray-light is-option-selected"};n.$on("addingToCart",function(){if(s.HasValidationErrors()){n.disableRadioButtons=!1;return}n.disableRadioButtons=!0});n.$on("itemAddedToCart",function(){r.put("defaultSelectionState",undefined);r.put("cartId",undefined);n.disableRadioButtons=!1})}]);Dell=window.Dell||{};s_dell=window.s_dell||{};Dell.Transactional=Dell.Transactional||{};Dell.Transactional.VideoPlayer=Dell.Transactional.VideoPlayer||{};Dell.Transactional.VideoPlayer.api=function(){var n=function(n){var r,u,f;if(n){var e=n.id,o=n.code,t=window[n.namespace],i=new Dell.Transactional.VideoPlayer.Player;if(i.initialize(n),r=n.element,r&&r.data("player",i),u="en_us",f="",n.locale&&(u=n.locale.language+"_"+n.locale.country,f="c="+n.locale.country+"&l="+n.locale.language+"&s="+n.locale.segment),Dell.Transactional.VideoPlayer.PlayerStore.addPlayer(e,i,t,n.autoplay),!t){console.log("video namespace instance not found");return}t.ready(function(){var r={wmode:"transparent",autoplay:n.autoplay,enableChannels:!0,initialTime:0,locale:u,loop:n.loopvideo,flashParams:{"thruParam_omniture-dell-other[prop49]":f},prebuffering:!1,useFirstVideoPlaylist:!1,onCreate:i.createPlayer};t.Player.create(e,o,r)})}};return{initialize:n}}();Dell.Transactional.VideoPlayer.PlayerStore=function(){var n={},t=function(t){var i=n[t];return i.namespaceInstance},i=function(t){var i=n[t];return i.player.getMessageBus()},r=function(t){var i,r;for(i in n)i&&i!==t&&n.hasOwnProperty(i)&&(r=n[i],r&&!r.autoplay&&r.player.getMessageBus().publish(r.namespaceInstance.EVENTS.PAUSE))},u=function(t,i,r,u){n[t]={player:i,namespaceInstance:r,autoplay:u}};return{addPlayer:u,getPlayerNSInstance:t,getPlayerMessageBus:i,pauseAllExceptThis:r}}();Dell.Transactional.VideoPlayer.Player=function(){var t={},r={},n,i,u,e,o,s,f,h=!1,c=!1,l=!1,a=!1,y=function(t){var r=t.id;f=t.code;u=window[t.namespace];n=r;i=t.namespace;e="en-us";t.locale&&t.locale.country&&t.locale.language&&(e=t.locale.language+"-"+t.locale.country);o="";s=!1;a=t.disableaudio},p=function(){Dell.Transactional.VideoPlayer.CaptionsUI.resizeCaptionsContainer(n)},w=function(n,t){s=t},b=function(n,t){e=t},k=function(t){if(s){var i=Dell.Transactional.VideoPlayer.CaptionsStore.getCurrentCaptionText(n,e,t);i!==o&&(Dell.Transactional.VideoPlayer.CaptionsUI.setCaptionText(n,i),Dell.Transactional.VideoPlayer.CaptionsUI.resizeCaptionsContainer(n),o=i)}},d=function(n,t,i){k(t);var r=t/i;!h&&f&&t>0&&(h=!0,Dell.Transactional.VideoPlayer.Omniture.trackVideoStart(f));!c&&f&&r>.8&&(c=!0,Dell.Transactional.VideoPlayer.Omniture.trackVideoEighty(f))},g=function(t,i){Dell.Transactional.VideoPlayer.CaptionsStore.loadCaptions(i,n)},nt=function(){r.getState()!=="paused"&&r.pause()},tt=function(){r.getState()!=="playing"&&r.play()},v=function(){r.setVolume(0)},it=function(){$("#"+n).find(".oo_start_button")[0].style.display="block";Dell.Transactional.VideoPlayer.CaptionsUI.buildCaptionsUI(n)},rt=function(i,r){var f=$("#"+n).find("video"),u;r&&r.closed_captions&&r.closed_captions.length!==0&&f.length!==0?(u=r.closed_captions[0].url,t.publish("loadClosedCaptions",u)):($("#"+n).find(".oo_start_button")[0].style.display="block",console.log("unable to fetch ccUrl"))},ut=function(){Dell.Transactional.VideoPlayer.PlayerStore.pauseAllExceptThis(n)},ft=function(){!l&&f&&(l=!0,Dell.Transactional.VideoPlayer.Omniture.trackVideoComplete(f))},et=function(){a&&v();Dell.Transactional.VideoPlayer.ViewportPlay&&Dell.Transactional.VideoPlayer.ViewportPlay.playPauseVideoByVideoId(n);$("img.rollup-image[data-id='"+n+"'][data-autoplay='True']").hide()},ot=function(){r.getState()!=="playing"?$("img.rollup-image[data-id='"+n+"'][data-autoplay='True']").show():$("img.rollup-image[data-id='"+n+"'][data-autoplay='True']").hide()},st=function(n){r=n;t=n.mb;t.subscribe(u.EVENTS.CONTENT_TREE_FETCHED,i,rt);t.subscribe("loadClosedCaptions",i,g);t.subscribe("closedCaptionsLoaded",i,it);t.subscribe("captionLocaleChanged",i,b);t.subscribe(u.EVENTS.PLAYHEAD_TIME_CHANGED,i,d);t.subscribe("captionDisplayChanged",i,w);t.subscribe(u.EVENTS.SIZE_CHANGED,i,p);t.subscribe(u.EVENTS.PLAY,i,ut);t.subscribe(u.EVENTS.PLAYED,i,ft);t.subscribe(u.EVENTS.PLAYBACK_READY,i,et);t.subscribe(u.EVENTS.ERROR,i,ot)},ht=function(){return t},ct=function(){return r.getState()};return{initialize:y,createPlayer:st,getMessageBus:ht,pauseThis:nt,playThis:tt,currentPlayStatus:ct,muteThis:v}};Dell.Transactional.VideoPlayer.Omniture=function(){var n=function(n){s_dell&&s_dell.apl&&(s_dell.linkTrackVars="prop2,prop13,prop49,eVar24",s_dell.linkTrackEvents="event16",s_dell.events=s_dell.apl(s_dell.events,"event16",",",2),s_dell.eVar24=n,s_dell.tl(!0,"o",n))},t=function(n){s_dell&&s_dell.apl&&(s_dell.linkTrackVars="prop2,prop13,prop49,eVar24",s_dell.linkTrackEvents="event33",s_dell.events=s_dell.apl(s_dell.events,"event33",",",2),s_dell.eVar24=n,s_dell.tl(!0,"o",n))},i=function(n){s_dell&&s_dell.apl&&(s_dell.linkTrackVars="prop2,prop13,prop49,eVar24",s_dell.linkTrackEvents="event34",s_dell.events=s_dell.apl(s_dell.events,"event34",",",2),s_dell.eVar24=n,s_dell.tl(!0,"o",n))};return{trackVideoStart:n,trackVideoEighty:t,trackVideoComplete:i}}();Dell.Transactional.VideoPlayer.CaptionsStore=function(){var n={},i=function(t){for(var r=n[t],u=[],i=0;i<r.length;i++)u.push(r[i].language);return u},t=function(n){n=n.split(":");var t=parseInt(n[0],10),i=parseInt(n[1],10),r=parseInt(n[2],10);return t*3600+i*60+r},r=function(n){for(var a=n.length,c=[],l="xx",o="",s,i,h,e,u,r,f=0;f<a;f++)if(s=$(n[f]),i=s.attr("xml:lang"),i&&i.length!==0){if(h=Dell.Transactional.VideoPlayer.LanguageList.getLanguageName(i),!h||h.length===0)continue;for(e=[],u=s.find("p"),r=0;r<u.length;r++)o=i,o!==l&&e.push({begin:t($(u[r]).attr("begin")),end:t($(u[r]).attr("end")),text:$(u[r]).text()});l=o;e.length!==0&&c.push({language:i,captions:e})}return c},u=function(t,i){var u=r(t.find("div")),f;u&&u.length>0&&(n[i]=u,f=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerMessageBus(i),f.publish("closedCaptionsLoaded",i))},f=function(t,i,r){var e=n[t],s,h,c,u,f,l,o;if(!i||!r)return"";for(c=i.split("-",2)[0],u=0;u<e.length;u++){if(e[u].language.toLowerCase()===i.toLowerCase()){h=e[u];break}e[u].language.toLowerCase()===c.toLowerCase()&&(s=e[u])}if(f=h||s,f&&f.captions&&f.captions.length>0)for(u=0;u<f.captions.length;u++)if(o=f.captions[u],r>o.begin&&r<=o.end){l=o.text;break}return l||""},e=function(t,i){t&&i&&t.length!==0&&i.length!==0&&(n.hasOwnProperty(i)||$.ajax({url:t,type:"GET",dataType:"xml"}).done(function(n){if(n){var t=$(n);u(t,i)}}).fail(function(){console.log("No closed captions available from Ooyala. ccUrl:["+t+"]")}))};return{loadCaptions:e,getCurrentCaptionText:f,getAvailableLanguages:i}}();Dell.Transactional.VideoPlayer.LanguageList=function(){var n={},t;return n.ar="العربية",n.cs="Čeština",n.da="Dansk",n["da-da"]="Dansk",n.de="Deutsch",n["de-de"]="Deutsch",n.el="Ελληνικά",n.en="English",n["en-us"]="English (US)",n["en-uk"]="English (UK)",n.es="Español",n["es-la"]="Español",n.fi="Suomi",n.fr="Français",n["fr-ca"]="Français (Canada)",n.he="עברית",n.hi="हिन्दी",n.hu="Magyar",n.it="Italiano",n.ja="日本語",n.ko="한국어",n.nl="Nederlands",n.no="Norsk",n.pl="Polski",n.pt="Português",n["pt-pt"]="Português",n["pt-br"]="Português (Brasil)",n.ro="Română",n.ru="Русский",n.sv="Svenska",n.tr="Türkçe",n["zh-hans"]="简体中文",n["zh-cn"]="简体中文",n["zh-hant"]="繁體中文",n["zh-tw"]="繁體中文",n["zh-hk"]="繁體中文",t=function(t){return n[t]},{getLanguageName:t}}();Dell.Transactional.VideoPlayer.CaptionsUI=function(){var t=function(n){$("#"+n).find(".captionsContainer").css("opacity","1");var t=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerMessageBus(n);t.publish("captionDisplayChanged",!0)},i=function(n){$("#"+n).find(".captionsContainer").css("opacity","0");var t=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerMessageBus(n);t.publish("captionDisplayChanged",!1)},r=function(n){var t=$("#"+n),i=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerMessageBus(n),r=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerNSInstance(n);t.find("#cc_icon").attr("data-state","show");t.find("#videoLanguagePopup").show();i.publish(r.EVENTS.PAUSE)},n=function(n){var t=$("#"+n),i=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerMessageBus(n),r=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerNSInstance(n);t.find("#cc_icon").attr("data-state","hide");t.find("#videoLanguagePopup").hide();i.publish(r.EVENTS.PLAY)},u=function(){var i=$.trim($(this).attr("data-playerid")),n=$("#"+i);n.find("#on-caption").hasClass("disabled")&&(n.find("#on-caption").removeClass("disabled"),n.find("#off-caption").addClass("disabled"),t(i),n.find("#listLanguages").show(),n.find(".ccLanguage").removeClass("ccLanguage-disabled"))},f=function(){var r=$.trim($(this).attr("data-playerid")),t=$("#"+r);t.find("#off-caption").hasClass("disabled")&&(t.find("#off-caption").removeClass("disabled"),t.find("#on-caption").addClass("disabled"),i(r),t.find("#listLanguages").hide(),t.find(".ccLanguage").addClass("ccLanguage-disabled"),n(r))},e=function(){var t=$.trim($(this).attr("data-playerid")),i=$.trim($(this).attr("data-state"));i==="hide"?r(t):n(t)},o=function(){var t=$.trim($(this).attr("data-playerid")),i=$.trim($(this).attr("data")),r=Dell.Transactional.VideoPlayer.PlayerStore.getPlayerMessageBus(t);r.publish("captionLocaleChanged",i);n(t)},s=function(n){var r=Dell.Transactional.VideoPlayer.CaptionsStore.getAvailableLanguages(n),c,a,s,h,i,l,v;if(r&&r.length>0){for(c="",a=!1,s=0;s<r.length;s++)h=Dell.Transactional.VideoPlayer.LanguageList.getLanguageName(r[s]),h&&h.length>0&&(c=c.concat('<li class="ccLanguage" data-playerid="'+n+'" data="'+r[s]+'" title="'+h+'" >'+h+"<\/li>"),a=!0);if(!a){console.log("No languages present for captions");return}i=$("#"+n);i.find(".oo_controls").prepend('<div class="captionsContainer"><div class="caption"><\/div><\/div>');i.find(".oo_controls").attr("cc","cc");l=i.find(".captionsContainer");v=l.find(".caption");$(l).css("top",-v.height()-100+"px");$(l).css("opacity","0");i.find(".vod").append('<div id="cc_icon" data-playerid="'+n+'" class="oo_button oo_toolbar_item oo_cc" data-state="hide"><\/div>');i.find(".vod").append('<div id="videoLanguagePopup" data-playerid="'+n+'" class="videoLanguagePopup"><\/div>');i.find("#videoLanguagePopup").append('                                <div id="ccLanguageModal" data-playerid="'+n+'">                                    <p style="margin-bottom:10px;color:white">Captions :                                         <a id="on-caption" data-playerid="'+n+'" href="javascript:void(0);" class="ooyala-caption">On<\/a>                                        <a id="off-caption" data-playerid="'+n+'" href="javascript:void(0);" class="disabled ooyala-caption">Off<\/a>                                    <\/p>                                    <ul id="listLanguages" data-playerid="'+n+'">                                '+c+"<\/ul><\/div>");i.find(".ccLanguage").on("click",o);i.find("#on-caption").on("click",u);i.find("#off-caption").on("click",f);i.find("#cc_icon").on("click",e);i.find("#videoLanguagePopup").hide();t(n)}},h=function(n,t){$("#"+n).find(".caption").html(t)},c=function(n){var t=$("#"+n).find(".captionsContainer"),i=t.find(".caption").height();t.css("height",i+"px");t.css("top",-i-10+"px")};return{buildCaptionsUI:s,setCaptionText:h,resizeCaptionsContainer:c}}();setupVideo=function(){$(".video-data-container").length>0&&$(".video-data-container").each(function(){Dell.Transactional.VideoPlayer.api.initialize({id:$.trim($(this).data("id")),code:$.trim($(this).data("code")),namespace:$.trim($(this).data("namespace")),locale:{country:$.trim($(this).data("country")),language:$.trim($(this).data("language")),segment:$.trim($(this).data("segment"))},autoplay:$.trim($(this).data("autoplay")).toLowerCase()==="true",loopvideo:$.trim($(this).data("loopvideo")).toLowerCase()==="true",disableaudio:$.trim($(this).data("disableaudio")).toLowerCase()==="true",element:$(this)})})};_ooyalascript=window._ooyalascript||!1;_ooyalascript||(typeof _ooyalaPlayerId!="undefined"?(_ooyalanamespace=window._ooyalanamespace||"dellvideoplayer",$.getScript("//player.ooyala.com/v3/"+_ooyalaPlayerId+"?platform=html5-priority&namespace="+_ooyalanamespace,setupVideo),_ooyalascript=!0):$(document).ready(function(){setupVideo()}));$(document).ready(function(){var n={Init:function(){this.BindEvents()},BindEvents:function(){$(document).keypress(n.Events.EnableShortCuts)},Events:{EnableShortCuts:function(n){var i=n.keyCode||n.which,t;n.ctrlKey&&n.shiftKey&&(i===69||i===5)&&(t=$("meta[name='cmsurl']").attr("content"),t!=null&&t.length>0&&confirm("Edit page?")&&window.open(t,"cmsEditWin"))}}};n.Init()});shopApp.factory("httpService",["$http",function(n){var t={};return t.getData=function(t){return n({url:t,method:"GET"})},t.postData=function(t){return n({url:t,method:"POST"})},t}]);shopApp.controller("comoMessagingStackController",["$scope","$rootScope","httpService","$sce","$timeout",function(n,t,i,r){"use strict";n.ComoMessagingData={IsVisible:!1};$(".comoMessagingBar").on("click",".stp_special_financing",function(t){t.preventDefault();n.showFinancingModal()});n.init=function(){var i=$.cookie("ShowComoMessagingStackBar"),t;typeof i!="undefined"&&i==="false"||$(".warranty-services-selections-container").length>0||$(".recommendations-container").length>0||(t=$("meta[name=dfsauthstate]").attr("content"),t&&(t.match("^hot:yes-dpa")||t.match("^warm:yes-dpa")||t.match("^cold"))?(n.getLemonBarMessagingStack(),n.trust=r.trustAsHtml):n.ComoMessagingData={IsVisible:!1})};n.getLemonBarMessagingStack=function(){i.getData(serverUrls.apiServiceUrl+"ComoMessagingStack/GetComoMessagingModel").success(function(t){t.IsVisible&&setTimeout(function(){n.$apply(function(){n.ComoMessagingData=t});$("#comoMessageBar").html($("#comoMessageController").html());$("#comoMessageController").html("");$("#message-bar").hide();$(document).on("click","#comoMessageBar .glyphicon-remove",function(n){n.preventDefault();$.cookie("ShowComoMessagingStackBar",!1,{path:"/"});$("#comoMessageBar").hide();$("#message-bar").show()});$(document).on("click","#comoMessageBar .stp_special_financing",function(n){n.preventDefault();$("#comoLemonBarModal").modal(!0)});$(document).on("click","#comoMessageBar #comoLemonBarModal .comoMessagingModalApply",function(n){n.preventDefault();window.location.href=$(this).attr("href").replace("returnurl%3d","returnurl%3d"+encodeURIComponent(window.location.href))})},3e3)}).error(function(){})};n.hideComoMessagingStack=function(){n.ComoMessagingData.IsVisible=!1;$.cookie("ShowComoMessagingStackBar",!1)};n.showFinancingModal=function(){$("#comoLemonBarModal").modal(!0)}}]);shopApp.controller("variancesController",["$scope","$rootScope","httpGetService","addToCompareService","ProductStackService","VarianceService",function(n,t,i,r,u,f){function o(n){var i=n,r=i.data("variant-id"),u=i.data("mapping").split(","),t=$('.product-variances div:not([data-variant-id="'+r+'"])');t.find("a").addClass("incompatible");$.each(u,function(n,i){t.find('[data-combination-key="'+i+'"]').removeClass("incompatible");n==0&&(t.find('[data-combination-key="'+i+'"]').addClass("current"),optionID=t.find('[data-combination-key="'+i+'"]').attr("data-option-id"),categoryLabel=t.find('[data-combination-key="'+i+'"]').text(),t.find("h5 b").attr("data-option-id",optionId),t.find("h5 b").text(categoryLabel))});h()}function s(){var t="",n=[],i;return $(".product-variances a").each(function(){t+=$(this).attr("data-sku")}),i=t.split(","),$.each(i,function(t,i){$.inArray(i,n)===-1&&i!=""&&n.push(i)}),n}function h(){var u=$(".product-variances").attr("data-variant-count").replace(/,/g,""),t="",i=[],n="",r;$(".product-variances a.current").each(function(){t+=$(this).attr("data-sku")});r=t.split(",");u==1?n=t.replace(/,/g,""):$.each(r,function(t,r){$.inArray(r,i)===-1?i.push(r):n==r});n==""&&(n=t.replace(/,/g,""));c(n)}function c(i){var r=[],u=$(".product-variances").attr("data-variant-hero-route"),f=$(".product-variances").attr("data-variant-overview-route");$.each(e,function(n,t){t.ItemIdentifier==i&&r.push(t)});typeof r[0]!="undefined"?(t.productCode=r[0].ItemIdentifier,$("#page-title h1").text(r[0].Title.TitleText),n.$parent.DataModel.Stacks[0]=r[0].Stack,$.ajax({type:"POST",data:JSON.stringify(r[0].HeroContainer),url:u,contentType:"application/json"}).done(function(n){$("#product-detail-hero-media").html(n);$(".home.product-hero-gallery").length>0&&($(".product-hero-gallery").flexslider({animation:"slide",animationLoop:!1,nextText:" ",prevText:" ",after:function(n){n.pause()}}),$(".flexslider").flexslider("pause"),$(".flex-direction-nav a.flex-prev").addClass("icon-ui-arrowleft text-gray hidden-xs"),$(".flex-direction-nav a.flex-next").addClass("icon-ui-arrowright text-gray hidden-xs"))}),$.ajax({type:"POST",data:JSON.stringify(r[0].Overview),url:f,contentType:"application/json"}).done(function(n){$("#overview").html(n)}),n.$parent.DataModel.Stacks[0].Specs=r[0].Specs,$("body").scrollspy("refresh")):console.log("WARNING: The SKU:"+i+", did not return any data. Please check that it is valid and exists for the current LWP.")}function l(){$(".product-variances a.current").each(function(){var n=$(".product-variances a.current").text(),t=$(".product-variances a.current").attr("data-option-id");$(this).parent().find("h5 b").text(n);$(this).parent().find("h5 b").attr("data-option-id",t)})}function a(){$(".product-variances a:not(.oos, .incompatible)").mouseover(function(){$(this).siblings(".current").addClass("toggle-current")}).mouseout(function(){$(this).siblings(".current").removeClass("toggle-current")})}n.init=function(t){f.apiUrl=t+"productdata/getdetails?";f.userContext=userContext;f.setSkus(s());n.itemIdentifiersData=[];n.getData()};var e=[];n.getData=function(){i.getData(f.varianceApiUrl()).success(function(n){e=n.slice()}).error(function(){})};$(document).ready(function(){$(".product-variances a").on("click",function(n){var t=$(n.currentTarget);optionId=$(this).attr("data-option-id");categoryLabel=$(this).text();$("a").removeClass("current incompatible toggle-current");t.addClass("current");$(this).parent().find("h5 b").attr("data-option-id",optionId);$(this).parent().find("h5 b").text(categoryLabel);o(t)});l();a()})}]);shopApp.service("VarianceService",["httpGetService","$rootScope",function(){var n=this;n.userContext={};n.apiUrl="";n.varianceApiUrl=function(){return"{0}{1}{2}".format(n.apiUrl,n.getUserContext(),n.getSkus())};n.setSkus=function(t){n.skus=[];for(var i=0;i<t.length;i++)n.skus[i]="&itemIdentifiers="+t[i];n.skus=n.skus.join("")};n.getSkus=function(){return n.skus};n.getUserContext=function(){return'userContext={"Country":"{0}","Region":"{0}","Language":"{1}","Segment":"{3}","CustomerSet":"{2}"}'.format(n.userContext.Country,n.userContext.Language,n.userContext.CustomerSet,n.userContext.Segment)}}])