define(["require","stApp","angular","pitLS","ccModel","cookie-helper","angularAdView"],function(e,r,o,a,t,c){function n(e){this.Jc=null,t.call(this,e)}e(["css!cards-compare-css"]),(n.prototype=Object.create(t.prototype)).getBtFeeCompare=function(){return function(e){return e||"None"}(this.Jc)},r.register.factory("$comparedFactory",function(){var e=[],r={},a=[],t=function(e){o.forEach(a,function(r,o){if(r.getId()==e.getId())return a.splice(o,1),!1})},c={switchItem:function(o,c,i){var d,s=new n(o),l=o.getId(),p=e.indexOf(l);if(e.length<5){if(p>-1&&(!i||"remove"==i)){if(e.splice(p,1),t(s),r.removed&&(!c||c.removed||void 0==c.removed))for(d in r.removed)r.removed[d](s,e)}else if((!i||"add"==i)&&p<0&&(e.push(l),a.push(s),r.added&&(!c||c.added||void 0==c.added)))for(d in r.added)r.added[d](s,e);if(r.change)for(d in r.change)r.change[d](e)}else if(p>0&&(e.splice(p,1),t(s),r.removed&&(!c||c.removed||void 0==c.removed)))for(d in r.removed)r.removed[d](s,e)},getStack:function(){return e},getCards:function(){return a},setStack:function(r){e=r},when:function(e,o){r[e]||(r[e]=[]),r[e].indexOf(o)<0&&r[e].push(o)},clearStack:function(){for(;e.length>0;)c.popLast();if(r.reset)for(var o in r.reset)r.reset[o]()},popLast:function(){var o=a.pop();if(e.pop(),o){if(r.removed)for(var t in r.removed)r.removed[t](o,e);if(r.change)for(var c in r.change)r.change[c](e)}}};return c}),r.register.controller("cardCompareController",["$scope","$comparedFactory","$http","$rootScope","$animate","$timeout",function(e,r,t,n,i,d){e.cards=r.getCards(),e.ace=a.get("ace"),void 0===e.ace&&c.read("mw_signon")&&t.get("/ajax.php?action=Search.CheckEligibility").then(function(r){"ace"in r.data&&r.data.ace?e.ace=!0:e.ace=!1}),e.tableType=function(){switch(e.cards.length){case 3:return"three";case 4:return"four";case 5:return"five";default:return""}}(),e.back=function(){0===top.location.pathname.indexOf("/credit-cards/")?n.cardCompare=!1:!function(){try{return window.self!==window.top}catch(e){return!0}}()?location.href="/credit-cards/":n.cardCompare=!1},e.addreferer=function(e){e.target&&e.target.href&&(e.target.href+="&ref="+encodeURIComponent(top.location.pathname))},i.on("enter",o.element().cssSelect("#cards-compare-view"),function(r,a){"start"==a&&(r.on("scroll",function(){var o=r.prop("scrollTop");e.$applyAsync(function(){e.viewScrolled=o>=70})}),o.element().cssSelect("body").addClass("no-scroll"))}),i.on("leave",o.element().cssSelect("#cards-compare-view"),function(e,r){"close"==r&&o.element().cssSelect("body").removeClass("no-scroll")}),e.showGeneral=!0,e.showPurc=!0,e.showTransf=!0,e.showRew=!0,e.showPen=!0,e.showCas=!0,e.showOther=!0,e.showControl=function(r,o){e[o]=!e[o]},o.element("#cards-compare-view").on("scroll",function(){o.element("#cards-compare-view table.comparison thead").prop("scrollLeft",o.element(this).prop("scrollLeft")),o.element("#cards-compare-view table.comparison thead").css({width:o.element("#cards-compare-view .compare-content").getStyle("width",!0),left:o.element("#cards-compare-view .compare-content .container").offset().left})});var s=function(){o.element("#cards-compare-view").triggerHandler("scroll")};o.element(window).on("resize",s),e.$on("$destroy",function(){o.element("#cards-compare-view").off("scroll"),o.element(window).off("resize",s)}),d(function(){n.compareViewReady=!0}),e.gotToDisclosure=function(){e.disclosureScroll=!0,e.disclosureScrollFlash=!0,d(function(){e.disclosureScroll=!1},100),d(function(){e.disclosureScrollFlash=!1},2e3)}}]),r.register.controller("cardCompareBarController",["$scope","$comparedFactory","$rootScope","$timeout",function(e,r,o,t){function c(e,r){a.group("src-cc"),a.set(e,r),a.group(n)}var n=a.group();a.group("src-cc"),e.cards=r.getCards(),e.cardCompareBarOpened=void 0===a.get("bar_opened")||a.get("bar_opened"),a.getExpiration("bar_opened")||a.expireKey("bar_opened",1296e6),a.group(n),r.when("change",function(){e.cards=r.getCards()}),e.closeBar=function(){e.cardCompareBarOpened=!1,c("bar_opened",!1),o.adviewed=!1,o.adClicked=!1},e.openBar=function(){o.compareReady=!1,e.cardCompareBarOpened=!0,c("bar_opened",!0),t(function(){o.compareReady=!0},1e3)},e.bar_ready=!0,e.hasCardCompare=!0,e.$watchCollection("cards",function(r){e.hasCardCompare=r.length>0})}]),r.pageInjector.invoke(["$rootScope","$comparedFactory","$http","$timeout",function(r,o,a,t){var c=e("polyfills");r.openCompare=function(){r.cardCompare=!r.cardCompareDisabled&&!r.cardCompare,r.adviewed||r.AdViewed(c.uniqid()),r.adClicked||t(function(){a({url:"/pixel.png",method:"GET",params:{adview_id:r.viewId,adview_click:r.clickId,adview_pid:8e5,adview_page:top.location.pathname}}),r.adClicked=!0})},r.resetCompare=function(){o.clearStack()},r.removeLast=function(){o.popLast()},r.cardCompareDisabled=o.getStack().length<2,r.compareReady=!1,t(function(){r.compareReady=!0},1e3),r.AdViewed=function(e){r.adviewed||(r.adviewed=!0,r.adClicked=!1,r.viewId=e||c.uniqid(),r.clickId=c.uniqid(),a({url:"/pixel.png",method:"GET",params:{adview_id:r.viewId,adview_pid:8e5,adview_section:"compare-bar-button",adview_page:top.location.pathname}}))},o.when("change",function(){var e=o.getStack();r.$applyAsync(function(){r.cardCompareDisabled=e.length<2,r.cardCompareBar=e.length>0,r.cardCompareDisabled&&(r.adviewed=!1),e.length<1?r.compareTip="In order to compare cards side-by-side, select at least two cards":r.compareTip="In order to compare cards side-by-side, select at least one more card"})}),r.compareTip="In order to compare cards side-by-side, select at least two cards"}]),r.pageInjector.get("$stService").setControllerReady("cardCompareController"),r.pageInjector.get("$stService").setControllerReady("cardCompareBarController")});