define(["polyfills","angular","jquery","angularElement"],(function(e,n,i){function d(e,n){var i=e.getBoundingClientRect().top,d=e.getBoundingClientRect().bottom,t=e.getBoundingClientRect().height,r=window.innerHeight-(n||0),o=Math.round(.45*r),a=Math.round(.55*r),c=t>Math.round(.45*r);return t>0&&(i>=0&&d<=r||c&&(d>=a&&d<=r||i>=0&&i<=o||i<=0&&d>=r))}var t,r=n.module("ngAdView",[]);window.requirejs&&window.require&&require.defined&&require.defined("myWallet")&&(r=require("myWallet").register),r.directive("ngAdContainer",(function(){return{restrict:"A",scope:{},link:function(e,n,i){e.AdViews={},t=e.AdViews,e.$on("$destroy",(function(){t=!1}))}}})),r.factory("$adviewscroller",(function(){var e,n={get:function(){return e},set:function(n){e=i(n)},reset:function(){e=i(window)}};return n.reset(),n})),r.directive("ngAdView",["$parse","$timeout","$adviewscroller",function(n,r,o){return{restrict:"A",scope:{viewid:"=?ngAdViewId",enabled:"<ngAdEnabled",aid:"<ngAdId",onViewed:"&ngAdOnViewed",onDistinctViewed:"&ngAdOnViewedById",onViewedOnce:"&ngAdOnViewedOnce",onInit:"&ngAdOnInit",childview:"=?ngAdViewChild"},link:function(r,a,c){var l,u,w,s=e.uniqid();t&&void 0!==r.aid&&(t[r.aid]?(s=t[r.aid].id,l=!t[r.aid].viewed):(t[r.aid]={id:s,viewed:!1},l=!0)),r.viewid=s;var f,g=o.get(),v=!g.data("hasScrollEnd")&&e.Object.isFunction(g.scrollEnd)?g.scrollEnd():null,A=g.data("hasScrollEnd")?"scrollend":"scrollstop",h=n(r.onViewed),V=n(r.onViewedOnce),$=n(r.onDistinctViewed),y=n(r.onInit),b=function(){if(!r.enabled&&null!=r.enabled)return!0;var n=r.$eval(c.ngAdView)||{},i=d(a[0],n.viewportoffset);if(!i&&r.childview)try{var t=r.childview.split(";");e.Array.forEach(t,(function(t){var r=e.String.trim(t),o=a.cssSelect(r);if(i)return!1;e.forEach(o,(function(t,r){return!e.Number.isNumber(e.Number.toNumber(r))||!(i=d(t,n.viewportoffset))&&void 0}))}))}catch(e){console.error(e)}i!=w&&(w=i,r.$applyAsync((function(){i?m():p()})))},E=function(){g.off(A,b),i(window).off("resizeEnd",b),t&&t[r.aid]&&delete t[r.aid],v&&v.destroy()},m=function(){h({$adId:s}),u||(u=!0,V({$adId:s})),l&&($({$adId:s}),l=!1,t&&void 0!==r.aid&&t[r.aid]&&(t[r.aid].viewed=!0))},p=function(){};if(a.one("$destroy",E),r.$on("$destroy",E),y({$adId:s}),a.attr("ngAdEnabled")||c.ngAdEnabled)var I=r.$watch("enabled",(function(e){setTimeout((function(){(null==e||e)&&(f||(g.on(A,b),i(window).on("resizeEnd",b),f=!0),b(),I())}))}));else g.on(A,b),i(window).on("resizeEnd",b),b()}}}])}));