function newsletterSubscribe(n){var t,i;if(n.preventDefault(),$(n.target).closest(".toast").find(".alert").hide(),t=$(n.target).closest(".toast").find('input[name="email"]').val(),t==""){$(n.target).closest(".toast").find(".alert .error-message").text("Please enter your work email address");$(n.target).closest(".toast").find(".alert").fadeIn();return}if(i=/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/,!i.test(t)){$(n.target).closest(".toast").find(".alert .error-message").text("Please enter a valid email address");$(n.target).closest(".toast").find(".alert").fadeIn();return}$(n.target).closest(".toast").find(".toast-close-button").click();window.location.href="/user/subscribe/?email="+encodeURIComponent(t)+"&return="+encodeURIComponent(window.location.pathname)+encodeURIComponent(window.location.search)}function newsletterRemindLater(n){$(n.target).closest(".toast").fadeOut()}function cookiesOk(n){localStorage.setItem("ngStorage-cookieMessageClosed",JSON.stringify((new Date).toISOString()));$(n.target).closest(".toast").fadeOut()}String.prototype.format||(String.prototype.format=function(){var n=arguments;return this.replace(/{(\d+)}/g,function(t,i){return typeof n[i]!="undefined"?n[i]:t})});String.prototype.hashCode||(String.prototype.hashCode=function(){var n=0;if(this.length==0)return n;for(i=0;i<this.length;i++)char=this.charCodeAt(i),n=(n<<5)-n+char,n=n&n;return n}),function(){"use strict";angular.module("app",["app.core","app.error","app.layout","app.elements","app.content","app.page","app.search","app.user"])}();String.prototype.startsWith||(String.prototype.startsWith=function(n,t){return t=t||0,this.indexOf(n,t)===t}),function(){"use strict";angular.module("blocks.auth",["angularModalService","ngStorage","ui.bootstrap.showErrors"])}(),function(){"use strict";function n(n,t,i,r,u,f){function a(){f.identifyInit();f.storage.profile==null&&e()}function v(){f.storage.session==null&&u.path("/user/login/").search({"return":u.search().return||window.location.pathname+window.location.search})}function y(n,t,i){f.storage.session=n;f.storage.profile={};f.storage.forms=[];h(t);t==null?f.identifyByToken(i):f.identifyByEmail(t)}function o(){delete f.storage.session;f.storage.forms=[];delete f.storage.pollsVoted;delete f.storage.attr;f.storage.overlayDismiss={};e();f.identifyReset()}function p(){f.storage.session==null&&u.path("/user/register/").search({"return":u.search().return||window.location.pathname+window.location.search})}function c(r){t.postLogout(f.storage.session).then(function(){f.eventTrack("Sign Out","User");o();n.$broadcast("user:logout");i.successAlert("You're now signed out");r||u.path("/user/login/").search({"return":window.location.pathname+window.location.search})},function(t){f.eventTrack("Sign Out","User");o();n.$broadcast("user:logout");i.error("Error when trying to log out",t);i.successAlert("You're now signed out");r||u.path("/user/login/").search({"return":window.location.pathname+window.location.search})})}function w(){c(!0)}function b(){return s()?!0:(u.path("/user/login/").search({"return":u.search().return||window.location.pathname+window.location.search}),!1)}function s(){return f.storage.session!=null}function k(){return f.storage.session!=null?(u.url(u.search().return||"/"),!0):!1}function d(n){r.showModal({templateUrl:"/app/blocks/auth/barrierModal.html?v="+_ttvVersion,controller:"BarrierModal",inputs:{reason:n}}).then(function(n){n.element.modal()})}function e(){f.storage.profile={}}function h(n){s()&&typeof f.storage.profile.email!="undefined"&&f.storage.profile.email!==null&&f.storage.profile.email!==n&&o();f.storage.profile==null&&e();f.storage.profile.email=n;f.storage.profile.firstName==null&&(f.storage.profile.salutation=n)}function g(n){(f.storage.profile==null&&e(),typeof n!="undefined"&&n!==null)&&(typeof n.email!="undefined"&&n.email!==null&&h(n.email),typeof n.firstName!="undefined"&&n.firstName!==null&&(f.storage.profile.firstName=n.firstName,f.storage.profile.salutation=n.firstName),typeof n.lastName!="undefined"&&n.lastName!=null&&(f.storage.profile.lastName=n.lastName),typeof n.company!="undefined"&&n.company!=null&&(f.storage.profile.company=n.company),typeof n.companyType!="undefined"&&n.companyType!=null&&(f.storage.profile.companyType=n.companyType),typeof n.jobTitle!="undefined"&&n.jobTitle!=null&&(f.storage.profile.jobTitle=n.jobTitle),typeof n.country!="undefined"&&n.country!=null&&(f.storage.profile.country=n.country))}function nt(n){return s()&&n===f.storage.profile.email}var l={login:v,startSession:y,endSession:o,register:p,logout:c,logoutNoRedirect:w,authorise:b,authorised:s,bounce:k,barrier:d,clearProfile:e,updateProfileEmail:h,updateProfileFields:g,authorisedAsEmail:nt};return a(),l}angular.module("blocks.auth").factory("auth",n);n.$inject=["$rootScope","UserData","logger","ModalService","$location","common"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){n.reason=e;n.auth=u;switch(e){case"filters":n.message="";break;case"export":n.message="To export Analysis charts to Excel please register"}o.eventTrack("Barrier","User",e);n.cancel=function(){t.modal("hide");i(null,500)};n.login=function(){t.modal("hide");u.login()};n.register=function(){t.modal("hide");u.register()}}angular.module("blocks.auth").controller("BarrierModal",n);n.$inject=["$scope","$element","close","UserData","auth","logger","reason","common"]}(),function(){"use strict";angular.module("blocks.exception",["blocks.logger"])}(),function(){"use strict";function i(){this.config={};this.$get=function(){return{config:this.config}}}function n(n){n.decorator("$exceptionHandler",t)}function t(n,t,i){var r=t.config.appErrorPrefix||"";return function(t,u){n(t,u);var f={exception:t,cause:u},e=r+t.message;i.error(e,f)}}angular.module("blocks.exception").provider("exceptionConfig",i).config(n);n.$inject=["$provide"];t.$inject=["$delegate","exceptionConfig","logger"]}(),function(){"use strict";function n(n){function t(t){return function(i){n.error(t,i)}}return{catcher:t}}angular.module("blocks.exception").factory("exception",n);n.$inject=["logger"]}(),function(){"use strict";angular.module("blocks.forms",[])}(),function(){"use strict";function n(n,t,i,r){function o(){}function u(n){return r(function(r){if(i.storage.session==null)return r(!1);if(i.storage.forms!=null&&Array.isArray(i.storage.forms)||(i.storage.forms=[]),i.storage.forms.includes(n))return r(!0);t.postFormSubmissionExists(n,i.storage.session).then(function(t){if(t)return i.storage.forms.push(n),r(!0)},function(){return r(!1)})})}function f(n){return i.storage.session==null?!1:(i.storage.forms!=null&&Array.isArray(i.storage.forms)||(i.storage.forms=[]),i.storage.forms.includes(n)?!0:void 0)}function s(n){var t=f(n);return t||u(n),t}function h(n){i.storage.forms!=null&&Array.isArray(i.storage.forms)||(i.storage.forms=[]);i.storage.forms.includes(n)||i.storage.forms.push(n)}var e={checkAlreadySubmitted:u,checkAlreadySubmittedFromLocalStorage:f,checkAlreadySubmittedFromLocalStorageThenSilentRequest:s,setAsSubmitted:h};return o(),e}angular.module("blocks.forms").factory("forms",n);n.$inject=["$rootScope","FormData","common","$q"]}(),function(){"use strict";angular.module("blocks.logger",[])}(),function(){"use strict";function n(n,t){function r(i,r,u,f,e){e&&t.error(i+'<br />Please try again or <a href="/pages/help/" target="_blank">contact us<\/a> if the problem persists.',u,{faClass:f||"fal fa-times-octagon"});i="[Error] "+i;r?n.error(i,r):n.error(i)}function e(n,t,i,u){r(n,t,i,u,!0)}function i(i,r,u,f,e,o,s){e&&(o?t.info(i,u,{timeOut:0,extendedTimeOut:0,faClass:f||"fal fa-info-circle",onHidden:s}):t.info(i,u,{faClass:f||"fal fa-info-circle",onHidden:s}));i="[Info] "+i;r?n.info(i,r):n.info(i)}function o(n,t,r,u){i(n,t,r,u,!0)}function s(n,t,r,u){i(n,t,r,u,!0,!0)}function u(i,r,u,f,e){e&&t.success(i,u,{faClass:f||"fal fa-check"});i="[Success] "+i;r?n.info(i,r):n.info(i)}function h(n,t,i,r){u(n,t,i,r,!0)}function f(i,r,u,f,e){e&&t.warning(i,u,{faClass:f||"fal fa-exclamation-triangle"});i="[Warning] "+i;r?n.warn(i,r):n.warn(i)}function c(n,t,i,r){f(n,t,i,r,!0)}function l(t,i){n.debug("[Debug] "+t,i)}function a(t,i){i?n.log(t,i):n.log(t)}return{showToasts:!0,error:r,errorAlert:e,info:i,infoAlert:o,infoAlertSticky:s,success:u,successAlert:h,warning:f,warningAlert:c,debug:l,log:a}}angular.module("blocks.logger").factory("logger",n);n.$inject=["$log","toastr"]}(),function(){"use strict";angular.module("blocks.router",["ngRoute","blocks.logger"])}(),function(){"use strict";function t(){this.config={};this.$get=function(){return{config:this.config}}}function n(n,t,i,r,u,f,e,o){function v(n){c.caseInsensitiveMatch=!0;n.forEach(function(n){n.config.resolve=angular.extend(n.config.resolve||{},u.config.resolveAlways);c.when(n.url,n.config)});c.otherwise({templateUrl:"/app/error/error.html?v="+_ttvVersion,title:"Error"})}function y(){t.$on("$routeChangeError",function(t,i,u,f){if(!s){h.errors++;s=!0;var e=i&&(i.title||i.name||i.loadedTemplateUrl)||"unknown target",o="Error routing to "+e+". "+(f.msg||"");r.error(o,[i]);n.path("/")}})}function p(){y();b();k()}function w(){var n,t,r;for(n in i.routes)i.routes.hasOwnProperty(n)&&(t=i.routes[n],r=!!t.title,r&&l.push(t));return l}function b(){t.$on("$routeChangeSuccess",function(){h.changes++;s=!1})}function k(){t.$on("$viewContentLoaded",function(){o(function(){window.scrollTo(0,0)})})}function d(n){t.title=g(n)}function g(n){return n?n+" | "+u.config.docTitle:u.config.docTitle}var s=!1,h={errors:0,changes:0},l=[],c=u.config.$routeProvider,a={configureRoutes:v,getRoutes:w,routeCounts:h,setDocTitle:d};return p(),a}angular.module("blocks.router").provider("routehelperConfig",t).factory("routehelper",n);n.$inject=["$location","$rootScope","$route","logger","routehelperConfig","$http","$q","$timeout"]}(),function(){"use strict";angular.module("blocks.time",[])}(),function(){"use strict";function n(n){function r(){}function u(i){if(t!==null)return t;if(i!==i){t=new Date(i);var r=t.getTime()-Date.now();moment.now=function(){return r+Date.now()};return}return n.getUtc().then(function(n){t=new Date(n);var i=t.getTime()-Date.now();return moment.now=function(){return i+Date.now()},n},function(){})}var i={syncUtc:u},t=null;return r(),i}angular.module("blocks.time").factory("time",n);n.$inject=["AppData"]}(),function(){"use strict";angular.module("app.content",[])}(),function(){"use strict";function n(n){n.configureRoutes(t())}function t(){return[{url:"/",config:{templateUrl:"/app/content/index.html?v="+_ttvVersion,title:"Home"}},{url:"/content/:tag/",config:{templateUrl:"/app/content/index.html?v="+_ttvVersion,title:"Content",reloadOnSearch:!1}},{url:"/content/:tag/layout-:layout/",config:{templateUrl:"/app/content/index.html?v="+_ttvVersion,title:"Content",reloadOnSearch:!1}},{url:"/content/:tag/:alias/",config:{templateUrl:"/app/content/detail.html?v="+_ttvVersion,title:"Content",reloadOnSearch:!1}}]}angular.module("app.content").run(n);n.$inject=["routehelper"]}(),function(){"use strict";function n(n,t){function i(n){function r(){i.authors=Enumerable.From(i.content.tags).Where(function(n){return n.type==="author"}).ToArray();i.content.stub?(i.url=i.content.stubUrl,i.urlIsExternal=i.url.startsWith("http://")||i.url.startsWith("https://"),i.fullurl=i.url.startsWith("http://")||i.url.startsWith("https://")?i.url:window.location.origin+i.url):(i.url="/content/{0}/{1}/".format(i.overridealias!=null?i.overridealias:i.content.primaryTag.alias,i.content.alias),i.fullurl=window.location.origin+i.url);i.loaded=!0}function u(){i.share=!i.share}var i={};n.vm=i;i.content=n.content;i.overridealias=n.overridealias;i.options=n.options;i.share=!1;i.toggleShare=u;i.urlIsExternal=!1;i.common=t;i.loaded=!1;r()}return{restrict:"E",scope:{content:"=content",overridealias:"=overridealias",options:"=options"},templateUrl:"/app/content/appContentCard.html?v="+_ttvVersion,link:{pre:i}}}angular.module("app.content").directive("appContentCard",n);n.$inject=["$timeout","common"]}(),function(){"use strict";function n(n){function t(t){function r(){i.authors=Enumerable.From(i.content.tags).Where(function(n){return n.type==="author"}).ToArray();i.video=Enumerable.From(i.content.chapters).Any(function(n){return n.type==="video"});i.video&&(i.videoDurationSeconds=Enumerable.From(i.content.chapters).FirstOrDefault(function(n){return n.type==="video"}).video.durationSeconds);i.content.stub?(i.url=i.content.stubUrl,i.urlIsExternal=i.url.startsWith("http://")||i.url.startsWith("https://")):i.url="/content/{0}/{1}/".format(i.overridealias!=null?i.overridealias:i.content.primaryTag.alias,i.content.alias);i.loaded=!0}var i={};t.vm=i;i.content=t.content;i.overridealias=t.overridealias;i.options=t.options;i.urlIsExternal=!1;i.common=n;i.loaded=!1;r()}return{restrict:"E",scope:{content:"=content",overridealias:"=overridealias",options:"=options"},templateUrl:"/app/content/appContentCardCompact.html?v="+_ttvVersion,link:{pre:t}}}angular.module("app.content").directive("appContentCardCompact",n);n.$inject=["common"]}(),function(){"use strict";function n(n){function t(t){function r(){i.authors=Enumerable.From(i.content.tags).Where(function(n){return n.type==="author"}).ToArray();i.video=Enumerable.From(i.content.chapters).Any(function(n){return n.type==="video"});i.video&&(i.videoDurationSeconds=Enumerable.From(i.content.chapters).FirstOrDefault(function(n){return n.type==="video"}).video.durationSeconds);i.content.stub?(i.url=i.content.stubUrl,i.urlIsExternal=i.url.startsWith("http://")||i.url.startsWith("https://")):i.url="/content/{0}/{1}/".format(i.overridealias!=null?i.overridealias:i.content.primaryTag.alias,i.content.alias);i.loaded=!0}var i={};t.vm=i;i.content=t.content;i.overridealias=t.overridealias;i.options=t.options;i.urlIsExternal=!1;i.common=n;i.loaded=!1;r()}return{restrict:"E",scope:{content:"=content",overridealias:"=overridealias",options:"=options"},templateUrl:"/app/content/appContentCardExtended.html?v="+_ttvVersion,link:{pre:t}}}angular.module("app.content").directive("appContentCardExtended",n);n.$inject=["common"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function c(i){function a(){e.authors=Enumerable.From(e.content.tags).Where(function(n){return n.type==="author"}).ToArray();e.tags=Enumerable.From(e.content.tags).Where(function(n){return n.type!="author"}).ToArray();e.tracker=Enumerable.From(e.content.tags).Any(function(n){return n.alias==="tracker"});l();p();i.$on("$destroy",function(){e.trackTimer&&s.cancel(e.trackTimer);e.trackBrowserActiveTimer&&s.cancel(e.trackBrowserActiveTimer)});e.loaded=!0}function l(){e.trackTimer&&s.cancel(e.trackTimer);e.trackBrowserActiveTimer&&s.cancel(e.trackBrowserActiveTimer);e.trackDurationBrowserActiveListener!==null&&e.trackDurationBrowserActiveListener();var t={type:"content",content:e.content.alias,tag:h.current.data.tag,title:e.content.title,content_tag:e.content.primaryTag.alias,content_tags:Enumerable.From(e.content.tags).Select(function(n){return n.alias}).ToArray(),is_in_news:Enumerable.From(e.content.tags).Any(function(n){return n.alias==="news"}),is_in_analysis:Enumerable.From(e.content.tags).Any(function(n){return n.alias==="analysis"}),is_in_video:Enumerable.From(e.content.tags).Any(function(n){return n.alias==="video"}),is_in_tracker:Enumerable.From(e.content.tags).Any(function(n){return n.alias==="tracker"})};if(h.current.meta.section&&(t.section=h.current.meta.section),n.storage.session==null)e.firstChapter=Enumerable.From(e.content.chapters).Where(function(n){return n.showGuest}).Take(1).Where(function(n){return n.type==="video"||n.type==="image"}).FirstOrDefault(),e.otherChapters=Enumerable.From(e.content.chapters).Where(function(n){return n!==e.firstChapter&&n.showGuest}).ToArray(),t.gated=e.content.formAlias!==null,t.form=e.content.formAlias,t.loggedin=!1,c(t);else if(e.content.formAlias==null)e.firstChapter=Enumerable.From(e.content.chapters).Where(function(n){return n.showFormNotSubmitted||n.showFormSubmitted}).Take(1).Where(function(n){return n.type==="video"||n.type==="image"}).FirstOrDefault(),e.otherChapters=Enumerable.From(e.content.chapters).Where(function(n){return n!==e.firstChapter&&(n.showFormNotSubmitted||n.showFormSubmitted)}).ToArray(),t.gated=!1,t.loggedin=!0,c(t);else return e.firstChapter=Enumerable.From(e.content.chapters).Where(function(n){return n.showFormNotSubmitted}).Take(1).Where(function(n){return n.type==="video"||n.type==="image"}).FirstOrDefault(),e.otherChapters=Enumerable.From(e.content.chapters).Where(function(n){return n!==e.firstChapter&&n.showFormNotSubmitted}).ToArray(),t.gated=!0,t.form=e.content.formAlias,t.loggedin=!0,o.checkAlreadySubmitted(e.content.formAlias).then(function(n){n?(e.firstChapter=Enumerable.From(e.content.chapters).Where(function(n){return n.showFormSubmitted}).Take(1).Where(function(n){return n.type==="video"||n.type==="image"}).FirstOrDefault(),e.otherChapters=Enumerable.From(e.content.chapters).Where(function(n){return n!==e.firstChapter&&n.showFormSubmitted}).ToArray(),t.registered=!0,c(t)):(e.firstChapter=Enumerable.From(e.content.chapters).Where(function(n){return n.showFormNotSubmitted}).Take(1).Where(function(n){return n.type==="video"||n.type==="image"}).FirstOrDefault(),e.otherChapters=Enumerable.From(e.content.chapters).Where(function(n){return n!==e.firstChapter&&n.showFormNotSubmitted}).ToArray(),t.registered=!1,c(t))},function(){e.firstChapter=Enumerable.From(e.content.chapters).Where(function(n){return n.showFormNotSubmitted}).Take(1).Where(function(n){return n.type==="video"||n.type==="image"}).FirstOrDefault();e.otherChapters=Enumerable.From(e.content.chapters).Where(function(n){return n!==e.firstChapter&&n.showFormNotSubmitted}).ToArray();n.logger.error("Error checking if form already submitted");t.registered=!1;c(t)})}function c(r){e.content.trackViews&&e.auth.authorised()&&(t.postContentUserView({alias:e.content.alias,sessionId:n.storage.session}).then(function(n){return e.trackReference=n,e.content.trackDuration&&(e.trackDuration=!0,e.trackDurationInterval=e.content.trackDurationInterval||60,e.trackBrowserActiveSeconds=0,e.trackDurationCount=0,e.trackDurationBrowserActiveListener=i.$on("document:visibilitychange",function(n,t){e.browserHidden=t}),e.trackBrowserActiveTimer=s(function(){v()},1e3),e.trackTimer=s(function(){y()},e.trackDurationInterval*1e3)),n}),n.eventTrack("Tracked Content View","Content",f.url()));n.pageTrack(r)}function v(){e.browserHidden||e.trackBrowserActiveSeconds++}function y(){e.trackDurationCount>=360||(t.postContentUserViewDuration({alias:e.content.alias,sessionId:n.storage.session,referenceId:e.trackReference,activeSeconds:e.trackBrowserActiveSeconds}),e.trackDurationCount++)}function p(){i.$on("user:logout",function(){l()});i.$on("user:login",function(){l()});i.$on("form:submitted",function(){l()})}var e={};i.vm=e;e.loaded=!1;e.content=i.content;e.trustAsHtml=r.trustAsHtml;e.trackDurationBrowserActiveListener=null;e.common=n;e.auth=u;e.currentDateTime=moment.utc();e.moment=moment;e.trackTimer=null;e.trackBrowserActiveTimer=null;a()}return{restrict:"E",scope:{content:"=content"},templateUrl:"/app/content/appContentDetail.html?v="+_ttvVersion,link:{pre:c}}}angular.module("app.content").directive("appContentDetail",n);n.$inject=["common","ContentData","$timeout","$sce","auth","$location","$rootScope","forms","$interval","$route"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function o(f){function l(){window.scrollTo(0,0);o.query={primaryTagAlias:o.tag,pageSize:o.pageSize};s(!0);v();e.onscroll=n.debounce(a,500);f.$on("$destroy",function(){e.onscroll=null})}function a(){var n=$(window).scrollTop()-60;$(".scroll-track").children("app-content-card").each(function(t){if($(this).offset().top>n)return o.scrollTrackId=t!=0||o.moreAbove?$(this).data("scroll-track-id"):null,!1});f.$apply(function(){r.search("i",o.scrollTrackId);r.replace()})}function c(i){var r=angular.copy(o.query);return i!=null&&(r.sortOrderLessThan=i),t.getContentIndexRequest(r).then(function(n){return(o.busy=!1,o.loaded=!0,o.moreBelow=n.content.length==o.pageSize,n.content.length==0)?n:(o.pages++,angular.forEach(n.content,function(n){n.rowId=o.pages+"_"+n.alias}),o.content=o.content.concat(Enumerable.From(n.content).Where(function(n){return n.alias!=o.excludeitem}).ToArray()),o.bottomSortOrder=n.content[n.content.length-1].sortOrder,n)},function(t){o.busy=!1;n.logger.error("Couldn't retrieve content list",t)})}function v(){f.$on("$routeUpdate",function(){s()})}function s(n){var t,f,e;r.path()!=h||o.busy||(t=r.search(),!n&&o.loaded&&angular.equals(t.t,o.search.t)&&angular.equals(t.from,o.search.from)&&angular.equals(t.to,o.search.to))||(!o.loaded&&t.i?(o.query.startAtAlias=t.i,o.moreAbove=!0):(o.moreAbove=!1,delete o.query.startAtAlias),o.query.tags=t.t&&t.t.length>0?angular.isArray(t.t)?t.t:[t.t]:[],t.from?(f=moment.utc(t.from,"YYYYMM").startOf("month"),o.query.from=f.format("YYYY-MM-DD")):(f=moment.utc("2015-06-01").startOf("month"),o.query.from=f.format("YYYY-MM-DD")),t.to?(e=moment.utc(t.to,"YYYYMM").endOf("month"),o.query.to=e.format("YYYY-MM-DD")):(e=moment.utc().endOf("month"),o.query.to=e.format("YYYY-MM-DD")),o.search=angular.copy(t),i.current.data.query=o.query,u.$broadcast("content.search"),o.content=[],o.busy=!0,o.pages=0,c())}function y(){r.search("i",null);s(!0)}function p(){!o.busy&&o.loaded&&o.moreBelow&&o.content.length!=0&&(o.busy=!0,c(o.bottomSortOrder))}var o={},h;f.vm=o;o.tag=f.tag;o.overridealias=f.overridealias;o.excludeitem=f.excludeitem;o.loaded=!1;o.busy=!1;o.query={};o.content=[];o.search={};o.moreAbove=!1;o.moreBelow=!1;o.pages=0;o.pageSize=25;o.backToTop=y;o.loadMoreItems=p;h=r.path();l()}return{restrict:"E",scope:{tag:"=tag",overridealias:"=overridealias",excludeitem:"=excludeitem"},templateUrl:"/app/content/appContentIndex.html?v="+_ttvVersion,link:{pre:o}}}angular.module("app.content").directive("appContentIndex",n);n.$inject=["common","ContentData","$route","$location","$rootScope","$document","$window"]}(),function(){"use strict";function n(){function n(n){function i(){t.url=t.content.stub?t.content.stubUrl:"/content/{0}/{1}/".format(t.overridealias!=null?t.overridealias:t.content.primaryTag.alias,t.content.alias);t.loaded=!0}var t={};n.vm=t;t.content=n.content;t.overridealias=n.overridealias;t.options=n.options;t.loaded=!1;i()}return{restrict:"E",scope:{content:"=content",overridealias:"=overridealias",options:"=options"},templateUrl:"/app/content/appContentInlineCompact.html?v="+_ttvVersion,link:{pre:n}}}angular.module("app.content").directive("appContentInlineCompact",n);n.$inject=[]}(),function(){"use strict";function n(n,t,i,r,u){function f(r){function s(){(f.options===undefined||f.options===null)&&(f.options={});f.mode=="list"?(f.query==null?f.query={alias:f.alias,pageSize:f.excludeitem!=null?f.pageSize+1:f.pageSize}:f.query.pageSize=f.excludeitem!=null?f.query.pageSize+1:f.query.pageSize||10,h()):f.mode=="content"&&(f.query==null?f.query={tags:[f.alias],pageSize:f.excludeitem!=null?f.pageSize+1:f.pageSize}:f.query.pageSize=f.excludeitem!=null?f.query.pageSize+1:f.query.pageSize||10,f.busy=!0,f.skip=f.query.skip,l(),e())}function h(){return i.getListIndexRequest(f.query).then(function(n){return f.content=n,f.loaded=!0,n},function(t){n.logger.error("Couldn't retrieve list",t)})}function e(i){var r=angular.copy(f.query);return i!=null?(r.sortOrderLessThan=i,delete r.skip):(f.pages=0,r.skip=f.skip,delete r.sortOrderLessThan),f.tagFilterValues!==undefined&&f.tagFilterValues!==null&&f.tagFilterValues.length>0&&(r.tagFilters=angular.copy(f.tagFilterValues),f.pages===0&&n.eventTrack("Filter","Content List")),f.pages>0&&n.eventTrack("Next Page","Content List",f.pages+1),t.getContentIndexRequest(r).then(function(n){f.moreBelow=n.content.length==f.query.pageSize;var t=f.excludeitem!=null?f.query.pageSize-1:f.query.pageSize;return(f.content=i!=null?f.content.concat(Enumerable.From(n.content).Where(function(n){return n.alias!=f.excludeitem}).Take(t).ToArray()):f.content=Enumerable.From(n.content).Where(function(n){return n.alias!=f.excludeitem}).Take(t).ToArray(),f.busy=!1,f.loaded=!0,n.content.length==0)?n:(f.pages++,f.bottomSortOrder=n.content[n.content.length-1].sortOrder,n)},function(t){n.logger.error("Couldn't retrieve content list",t)})}function c(){!f.busy&&f.loaded&&f.moreBelow&&f.content.length!=0&&(f.busy=!0,e(f.bottomSortOrder))}function l(){f.tagFilters!==undefined&&f.tagFilters!==null&&Array.isArray(f.tagFilters)&&(f.tagFilters.sort(),o(),r.$on("$routeUpdate",function(){o()&&e()}))}function o(){var t=[],n;for(let i=0;i<f.tagFilters.length;i++)(n=u.search()[f.tagFilters[i]],n!==undefined)&&(Array.isArray(n)||(n=[n]),t.push({name:f.tagFilters[i],tags:[...new Set(n)]}));return JSON.stringify(f.tagFilterValues)===JSON.stringify(t)?!1:(f.tagFilterValues=t,!0)}var f={};r.vm=f;f.mode=r.mode;f.layout=r.layout;f.options=r.options;f.alias=r.alias;f.query=r.query;f.pagination=r.pagination;f.pageSize=r.pageSize||10;f.overridealias=r.overridealias;f.excludeitem=r.excludeitem;f.tagFilters=r.tagFilters;f.tagFiltersValues=[];f.busy=!1;f.loaded=!1;f.content=[];f.moreBelow=!1;f.pages=0;f.bottomSortOrder=null;f.loadMoreItems=c;s()}return{restrict:"E",scope:{mode:"@mode",layout:"@layout",options:"=options",query:"=query",alias:"=alias",pageSize:"@pageSize",pagination:"@pagination",overridealias:"=overridealias",excludeitem:"=excludeitem",tagFilters:"=tagFilters"},templateUrl:"/app/content/appContentList.html?v="+_ttvVersion,link:{pre:f}}}angular.module("app.content").directive("appContentList",n);n.$inject=["common","ContentData","ListData","$route","$location","$rootScope"]}(),function(){"use strict";function n(n,t,i,r,u){function f(f){function o(){}function s(){if((e.questionSent=!1,f.$broadcast("show-errors-check-validity"),f.questionForm.$valid)&&e.question.name&&e.question.body&&e.question.body.length<=1e3){var o={alias:f.alias,tagAlias:f.tag,name:e.question.name,body:e.question.body,url:r.url(),path:r.path()};return i.authorised()?o.sessionId=n.storage.session:o.email=e.question.email,n.eventTrack("Submit Question","Question",f.alias),t.postQuestion(o).then(function(t){return e.questionSent=!0,e.question.body="",f.$broadcast("show-errors-reset"),i.authorised()||t.sessionId===null||(i.startSession(t.sessionId,e.question.email),n.storage.session!==null&&(u.$broadcast("user:login"),n.eventTrack("Sign In","User","via Question Module",r.url()))),t},function(){n.logger.error("Sorry, there was a problem posting your question. Please try again.")})}}function h(){e.questionSent=!1}var e={};f.vm=e;e.questionSent=!1;e.question={};e.postQuestion=s;e.questionReset=h;e.common=n;e.auth=i;o()}return{restrict:"E",scope:{alias:"=alias",tag:"=tag"},templateUrl:"/app/content/appContentQuestion.html?v="+_ttvVersion,link:{pre:f}}}angular.module("app.content").directive("appContentQuestion",n);n.$inject=["common","QuestionData","auth","$location","$rootScope"]}(),function(){"use strict";function n(){function n(n){function i(){r()}function r(){n.$watch("data",function(n){t.data=n})}var t={};n.vm=t;t.layout=n.layout;t.options=n.options;t.data=n.data;t.overridealias=n.overridealias;i()}return{restrict:"E",scope:{layout:"=layout",options:"=options",data:"=data",overridealias:"=overridealias"},templateUrl:"/app/content/appContentRepeater.html?v="+_ttvVersion,link:{pre:n}}}angular.module("app.content").directive("appContentRepeater",n);n.$inject=["common","ContentData","ListData","$route","$location","$rootScope"]}(),function(){"use strict";function n(n,t,i,r,u){function f(i){function h(){function n(){u.$on("filter:panel.open",function(n,t){t!==f.alias&&s()})}c();n()}function c(){return t.getFilter(f.alias).then(function(n){return f.loaded=!0,f.filter=n,f.filter.config!==null&&(f.filter.config=JSON.parse(f.filter.config)),l(),n},function(t){n.logger.error("Couldn't retrieve filter",t)})}function l(){e();i.$on("$routeUpdate",function(){e()})}function e(){var n=r.search()[f.filter.urlVariable];if(n===undefined){f.selected=[];return}Array.isArray(n)||(n=[n]);f.selected=[...new Set(n)].sort()}function o(){r.search(f.filter.urlVariable,f.selected)}function a(n){var t=f.selected.indexOf(n);t!==-1?f.selected.splice(t,1):f.selected.push(n);f.selected=[...new Set(f.selected)].sort();o()}function v(){f.selected=[];o()}function y(){f.open=!f.open;f.open&&u.$broadcast("filter:panel.open",f.alias)}function s(){f.open=!1}var f={};i.vm=f;f.alias=i.alias;f.loaded=!1;f.filter=null;f.selected=[];f.open=!1;f.toggleFilter=a;f.clear=v;f.togglePanel=y;f.closePanel=s;h()}return{restrict:"E",scope:{alias:"@alias"},templateUrl:"/app/content/appTagFilter.html?v="+_ttvVersion,link:{pre:f}}}angular.module("app.content").directive("appTagFilter",n);n.$inject=["common","FilterData","$route","$location","$rootScope"]}(),function(){"use strict";function n(n,t){function i(i){function u(){f()}function f(){return t.getList().then(function(n){return r.tags=n,r.loaded=!0,n},function(t){n.logger.error("Couldn't retrieve tag list",t)})}var r={};i.vm=r;r.loaded=!1;r.tags=null;u()}return{restrict:"E",scope:{},templateUrl:"/app/content/appTagList.html?v="+_ttvVersion,link:{pre:i}}}angular.module("app.content").directive("appTagList",n);n.$inject=["common","TagData"]}(),function(){"use strict";function n(){function n(n){function i(){t.tags=Enumerable.From(t.data).Where(function(n){return n.type==t.sectionType}).OrderBy(function(n){return n.shortTitle.toLowerCase()}).ToArray();t.loaded=!0}var t={};n.vm=t;t.data=n.data;t.sectionType=n.sectionType;t.sectionTitle=n.sectionTitle;t.loaded=!1;i()}return{restrict:"E",scope:{data:"=data",sectionType:"@sectionType",sectionTitle:"@sectionTitle"},templateUrl:"/app/content/appTagListSection.html?v="+_ttvVersion,link:{pre:n}}}angular.module("app.content").directive("appTagListSection",n);n.$inject=["common","TagData"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){h()}function h(){return e.getTagExists(i.tag).then(function(t){return n.current.data={tag:i.tag},o.include="/layout/tag/"+i.tag+"/detail/",o.loaded=!0,t},function(){u.logger.error("Tag not found")})}var o=this;o.include=null;o.loaded=!1;s()}angular.module("app.content").controller("ContentDetail",n);n.$inject=["$route","$location","$routeParams","$sce","common","config","TagData"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function l(){a()}function a(){return e.getContent(c.tagAlias,c.alias,c.preview).then(function(t){if(t.content.stub){if(t.content.sourceUrl!=null){h.location.href=t.content.sourceUrl;return}h.location.href="/";return}if(t.tag.redirectDetailUrl!=null){h.location.href=t.tag.redirectDetailUrl+c.alias+"/";return}return c.tag=t.tag,c.content=t.content,n.current.data={tag:i.tag,alias:i.alias},n.current.meta={title:c.content.title},n.current.meta.canonical=c.content.metaCanonical!==null?c.content.metaCanonical:_ttvUrl+"/content/"+c.content.primaryTag.alias+"/"+c.content.alias+"/",c.tag.attributes=JSON.parse(c.tag.attributes),c.tag.attributes!=null&&c.tag.attributes.bg!=null&&(n.current.meta.bg=c.tag.attributes.bg),c.tag.attributes!=null&&c.tag.attributes.section!=null&&(n.current.meta.section=c.tag.attributes.section),o.$broadcast("route.meta.changed"),s.setDocTitle(c.content.title),c.loaded=!0,t},function(n){u.logger.error("Couldn't retrieve content item",n)})}var c=this;c.loaded=!1;c.tag=null;c.content=null;c.tagAlias=i.tag;c.alias=i.alias;c.preview=t.search().preview;l()}angular.module("app.content").controller("ContentDetailLayout",n);n.$inject=["$route","$location","$routeParams","$sce","common","config","ContentData","$rootScope","routehelper","$window"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){h()}function h(){return e.getTagExists(o.tag).then(function(t){return n.current.data={tag:o.tag},o.include=o.layout!=null?"/layout/"+o.layout+"/":"/layout/tag/"+o.tag+"/index/",o.loaded=!0,t},function(){u.logger.error("Tag not found:",o.tag)})}var o=this;o.include=null;o.loaded=!1;o.tag=i.tag||"home";o.layout=i.layout;s()}angular.module("app.content").controller("ContentIndex",n);n.$inject=["$route","$location","$routeParams","$sce","common","config","TagData"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function l(){a()}function a(){return e.getTag(c.alias).then(function(t){if(t.redirectIndexUrl!=null){h.location.href=t.redirectIndexUrl;return}c.tag=t;n.current.data={tag:c.alias};n.current.meta={title:c.tag.title};n.current.meta.canonical=c.alias=="home"?_ttvUrl+"/":_ttvUrl+"/content/"+c.alias+"/";var i={type:"tag",tag:c.alias,title:c.tag.title};return c.tag.attributes=JSON.parse(c.tag.attributes),c.tag.attributes!=null&&c.tag.attributes.bg!=null&&(n.current.meta.bg=c.tag.attributes.bg),c.tag.attributes!=null&&c.tag.attributes.section!=null&&(n.current.meta.section=c.tag.attributes.section,i.section=c.tag.attributes.section),s.$broadcast("route.meta.changed"),o.setDocTitle(c.tag.title),u.pageTrack(i),c.loaded=!0,t},function(){t.path("/error/404/").replace()})}var c=this;c.loaded=!1;c.tag={};c.alias=i.tag||"home";c.tagAlias=c.alias;c.view=n.current.view||"default";l()}angular.module("app.content").controller("ContentIndexLayout",n);n.$inject=["$route","$location","$routeParams","$sce","common","config","TagData","routehelper","$rootScope","$window"]}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngRoute","ngResource","ngSanitize","blocks.auth","blocks.exception","blocks.forms","blocks.logger","blocks.router","blocks.time","angular-loading-bar","angularDfp","angulartics","angulartics.customerio","angulartics.google.analytics","angulartics.google.tagmanager","bc.Flickity","chart.js","infinite-scroll","validation.match"])}(),function(){"use strict";function n(n){function r(n,r){var u=i[n];return u?(new Date).getTime()-u>r?(delete t[n],delete i[n],null):t[n]:null}function u(n,r,u){t[n]=u;i[n]=(new Date).getTime();return}var t=n("app"),i={},t={};return{get:r,put:u}}angular.module("app.core").factory("cache",n);n.$inject=["$cacheFactory"]}(),function(){"use strict";function n(n){var t={};return{request:function(i){var r;return i.timeToLive&&(i.cache=!0,r=i.timeToLive,delete i.timeToLive,(new Date).getTime()-(t[i.url]||0)>r&&(n.get("$http").remove(i.url),t[i.url]=(new Date).getTime())),i}}}angular.module("app.core").factory("cacheInterceptor",n);n.$inject=["$cacheFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){function p(){$.get("/app/splash.txt?v="+_ttvVersion,function(n){var t=n.replace("yyyy",(new Date).getFullYear())+"\n";t+="\nVersion:     "+_ttvVersion;t+="\nTimestamp:   "+new Date;t+="\nUser Agent:  "+navigator.userAgent;u.log(t)});document.addEventListener("visibilitychange",function(){i.$broadcast("document:visibilitychange",document.hidden,document.visibilityState)});ot()}function w(){r(function(){return i.$broadcast.apply(i,arguments)},200)}function b(n,t,i,u,f){f=+f||300;i||(i="filtered"+t[0].toUpperCase()+t.substr(1).toLowerCase(),u=t+"Filter");var e=function(){n[i]=n[t].filter(function(t){return n[u](t)})};return function(){var n;return function(t){n&&(r.cancel(n),n=null);t||!f?e():n=r(e,f)}}()}function k(n,t,i,u){i=i||1e3;v[n]&&(r.cancel(v[n]),v[n]=undefined);u?t():v[n]=r(t,i)}function d(n){return/^[-]?\d+$/.test(n)}function g(n,t){return n&&-1!==n.toLowerCase().indexOf(t.toLowerCase())}function nt(n){return window.btoa(unescape(encodeURIComponent(n)))}function tt(t){e.pageTrack(n.url(),t)}function it(n,t,i,r){e.eventTrack(n,{category:t,label:i,value:r})}function rt(){if(l.storage.identify==null){if(l.storage.profile==null){e.setUsername(null);return}if(l.storage.profile.email!=null){y(l.storage.profile.email);return}return}if(l.storage.identify.token!=null){e.setUsername(l.storage.identify.token,!1);return}if(l.storage.identify.email!=null){e.setUsername(l.storage.identify.email,!0);return}}function ut(n){l.storage.identify={token:n,email:null}}function y(n){l.storage.identify={token:null,email:n};e.setUsername(n,!0)}function ft(){l.storage.identify={token:null,email:null};e.setUsername(null)}function et(n,t,i){var r;return function(){var u=this,f=arguments,e=function(){r=null;i||n.apply(u,f)},o=i&&!r;clearTimeout(r);r=setTimeout(e,t);o&&n.apply(u,f)}}function ot(){i.$on("$routeChangeSuccess",function(){l.storage.attr===undefined?(l.storage.attr={totalPages:1,sessions:1,sessionPages:1},l.storage.attr.first=a(),l.storage.attr.session=a()):(l.storage.attr.totalPages++,l.storage.attr.session===undefined||l.storage.attr.latest===undefined||l.storage.attr.latest.time===undefined||moment.utc(l.storage.attr.latest.time)<moment.utc().subtract(1,"m")?(l.storage.attr.session=a(),l.storage.attr.sessions++,l.storage.attr.sessionPages=1):l.storage.attr.sessionPages++);Object.keys(n.search()).length>0&&(l.storage.attr.query=a());n.search().ref!==undefined&&(l.storage.attr.ref=a());(n.search().utm_source!==undefined||n.search().utm_medium!==undefined||n.search().utm_campaign!==undefined)&&(l.storage.attr.utm=a());(n.search().ref!==undefined||n.search().utm_source!==undefined||n.search().utm_medium!==undefined||n.search().utm_campaign!==undefined)&&(l.storage.attr.tracking=a());l.storage.attr.latest!==undefined&&(l.storage.attr.prev=l.storage.attr.latest);l.storage.attr.latest=a()})}function a(){return{url:n.url(),referrer:document.referrer,time:moment.utc().format("YYYY-MM-DD[T]HH:mm:ss[Z]"),totalPages:l.storage.attr.totalPages,session:l.storage.attr.sessions,sessionPages:l.storage.attr.sessionPages}}var v={},l={$broadcast:w,$q:t,$timeout:r,createSearchThrottle:b,debouncedThrottle:k,isNumber:d,logger:u,storage:f,textContains:g,toBase64:nt,pageTrack:tt,eventTrack:it,identifyInit:rt,identifyByToken:ut,identifyByEmail:y,identifyReset:ft,$analytics:e,session:h,cache:c,debounce:et,config:{assetsUrl:_ttvAssetsUrl}};return p(),l}angular.module("app.core").factory("common",n);n.$inject=["$location","$q","$rootScope","$timeout","logger","$localStorage","$analytics","$interval","$window","$sessionStorage","cache"]}(),function(){"use strict";function i(n,i,r,u,f,e,o,s,h,c){function l(){e.options.timeOut=1e4;e.options.extendedTimeOut=1e4;e.options.positionClass="toast-bottom-center";e.options.closeButton=!0;e.options.showMethod="slideDown";e.options.hideMethod="fadeOut";e.options.preventDuplicates=!0;e.options.tapToDismiss=!1;e.options.hideDuration=500}function a(){n.debugEnabled&&n.debugEnabled(!0)}function v(){u.config.appErrorPrefix=t.appErrorPrefix}function y(){var n=f;n.config.$routeProvider=i;n.config.docTitle="TelecomTV ";r.html5Mode(!0)}function p(){o.interceptors.push("cacheInterceptor")}function w(){s.latencyThreshold=500}function b(){h.firstPageview(!1);h.withAutoBase(!0);h.virtualPageviews(!1)}function k(){angular.module("infinite-scroll").value("THROTTLE_MILLISECONDS",250)}function d(){c.setOptions({colours:["#1B587C"],responsive:!0,maintainAspectRatio:!1,tooltips:{bodyFontFamily:"'Open Sans', 'Helvetica Neue', Arial, sans-serif",titleFontFamily:"'Open Sans', 'Helvetica Neue', Arial, sans-serif"}});c.setOptions("Bar",{barShowStroke:!1,barValueSpacing:2,barPercentage:1});c.setOptions("Line",{datasetFill:!1,datasetStrokeWidth:3,pointDotRadius:5,pointDotStrokeWidth:2});c.setOptions("Doughnut",{animationSteps:60,animationEasing:"easeOutQuart",percentageInnerCutout:45,maintainAspectRatio:!0,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %> (<%= Math.round(circumference / 6.283 * 100) %>%)",segmentShowStroke:!0,segmentStrokeWidth:3})}l();a();v();y();p();w();b();k();d()}var n=angular.module("app.core"),t={appErrorPrefix:"[TTV Error] ",events:{controllerActivateSuccess:"controller.activateSuccess"},imageSettings:{imageBasePath:"/assets/"},keyCodes:{backspace:8,tab:9,enter:13,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,del:46},version:_ttvVersion};n.constant("config",t);n.config(i);i.$inject=["$logProvider","$routeProvider","$locationProvider","exceptionConfigProvider","routehelperConfigProvider","toastr","$httpProvider","cfpLoadingBarProvider","$analyticsProvider","ChartJsProvider"]}(),function(){"use strict";angular.module("app.core").constant("moment",moment).constant("toastr",toastr).constant("Constant",{timeToLive:12e4,timeToLiveOneMinute:6e4,timeToLiveTenSeconds:1e4})}(),function(){"use strict";function n(n,t,i,r){function f(){return n.get(u+"/app/utc").then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var u=_ttvApiUrl;return{getUtc:f}}angular.module("app.core").factory("AppData",n);n.$inject=["$http","exception","$location","$q","Constant"]}(),function(){"use strict";function n(n,t,i){function u(u){return n.get(r+"/content?query="+JSON.stringify(u),{cache:!0,timeToLive:i.timeToLive}).then(function(n){return n.data}).catch(function(n){return t.reject(n)})}function f(u,f,e){var o=r+"/content/"+u+"/"+f;return e&&(o=o+"?preview="+e),n.get(o,{cache:!0,timeToLive:i.timeToLive}).then(function(n){return n.data}).catch(function(n){return t.reject(n)})}function e(i){return n.post(r+"/content/view",i).then(function(n){return n.data}).catch(function(n){return t.reject(n)})}function o(i){return n.post(r+"/content/duration",i).then(function(n){return n.data}).catch(function(n){return t.reject(n)})}var r=_ttvApiUrl;return{getContentIndexRequest:u,getContent:f,postContentUserView:e,postContentUserViewDuration:o}}angular.module("app.core").factory("ContentData",n);n.$inject=["$http","$q","Constant"]}(),function(){"use strict";function n(n,t,i){function u(u){return n.get(r+"/filter/"+u,{cache:!0,timeToLive:i.timeToLive}).then(function(n){return n.data}).catch(function(n){return t.reject(n)})}var r=_ttvApiUrl;return{getFilter:u}}angular.module("app.core").factory("FilterData",n);n.$inject=["$http","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r){function f(t){return n.get(u+"/form/"+t,{cache:!0,timeToLive:r.timeToLive}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function e(t,r){return n.post(u+"/form/"+t+"/exists",{sessionId:r}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function o(t,r){return n.post(u+"/form/"+t+"/existsemail",r).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function s(t,r){return n.post(u+"/form/"+t,r).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}var u=_ttvApiUrl;return{getForm:f,postFormSubmissionExists:e,postFormSubmissionExistsByEmail:o,postFormSubmission:s}}angular.module("app.core").factory("FormData",n);n.$inject=["$http","exception","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r){function f(t){return n.get(u+"/group/"+t,{cache:!0,timeToLive:r.timeToLive}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}var u=_ttvApiUrl;return{getGroup:f}}angular.module("app.core").factory("GroupData",n);n.$inject=["$http","exception","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(t){return n.get(e+"/list?query="+JSON.stringify(t),{cache:!0,timeToLive:f.timeToLive}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var e=_ttvApiUrl;return{getListIndexRequest:o}}angular.module("app.core").factory("ListData",n);n.$inject=["$http","exception","$location","$q","common","Constant"]}(),function(){"use strict";function n(n,t,i,r,u){function e(t){return t=t!==null?"/"+t:"",n.get(f+"/notification"+t,{cache:!0,timeToLive:u.timeToLiveOneMinute}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var f=_ttvApiUrl;return{getNotification:e}}angular.module("app.core").factory("NotificationData",n);n.$inject=["$http","exception","$location","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r,u){function e(t){return n.get(f+"/page/"+t,{cache:!0,timeToLive:u.timeToLive}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var f=_ttvApiUrl;return{getPage:e}}angular.module("app.core").factory("PageData",n);n.$inject=["$http","exception","$location","$q","Constant"]}(),function(){"use strict";function n(n,t,i){function u(u){return n.get(r+"/poll/"+u,{cache:!0,timeToLive:i.timeToLiveTenSeconds}).then(function(n){return n.data}).catch(function(n){return t.reject(n)})}function f(i){return n.post(r+"/poll",i).then(function(n){return n.data}).catch(function(n){return t.reject(n)})}var r=_ttvApiUrl;return{getPoll:u,postPollVote:f}}angular.module("app.core").factory("PollData",n);n.$inject=["$http","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r){function f(t){return n.post(u+"/questions",t).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var u=_ttvApiUrl;return{postQuestion:f}}angular.module("app.core").factory("QuestionData",n);n.$inject=["$http","exception","$location","$q"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(t){var i="/reports/summary|"+JSON.stringify(t).hashCode(),o=f.cache.get(i,u.timeToLive);return o!=null?r(function(n){n(o)}):n.post(e+"/reports/summary",t).then(function(n){return f.cache.put(i,u.timeToLive,n.data),n.data}).catch(function(n){return r.reject(n)})}function s(t){var i="/reports/analyse|"+JSON.stringify(t).hashCode(),o=f.cache.get(i,u.timeToLive);return o!=null?r(function(n){n(o)}):n.post(e+"/reports/analyse",t).then(function(n){return f.cache.put(i,u.timeToLive,n.data),n.data}).catch(function(n){return r.reject(n)})}function h(t){var i="/reports/analyse/excel|"+JSON.stringify(t).hashCode(),o=f.cache.get(i,u.timeToLive);return o!=null?r(function(n){n(o)}):n.post(e+"/reports/analyse/excel",t).then(function(n){return f.cache.put(i,u.timeToLive,n.data),n.data}).catch(function(n){return r.reject(n)})}var e=_ttvApiUrl;return{postReportSummary:o,postReportAnalyse:s,postReportAnalyseExcel:h}}angular.module("app.core").factory("ReportData",n);n.$inject=["$http","exception","$location","$q","Constant","common"]}(),function(){"use strict";function n(n,t,i,r,u){function e(t,i,e){var o="/search?query={0}".format(t);return i!==null&&(o=o+"&order={0}".format(i)),e!==null&&(o=o+"&page={0}".format(e)),n.get(f+o,{cache:!0,timeToLive:u.timeToLive}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var f=_ttvApiUrl;return{getSearch:e}}angular.module("app.core").factory("SearchData",n);n.$inject=["$http","exception","$location","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r,u){function e(t){return n.get(f+"/tag/"+t,{cache:!0,timeToLive:u.timeToLive}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}function o(t){return n.get(f+"/tag/"+t+"/exists",{cache:!0,timeToLive:u.timeToLive}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}function s(){return n.get(f+"/tag/list",{cache:!0,timeToLive:u.timeToLive}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var f=_ttvApiUrl;return{getTag:e,getTagExists:o,getList:s}}angular.module("app.core").factory("TagData",n);n.$inject=["$http","exception","$location","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r){function f(){return n.get(u+"/user/countries",{cache:!0,timeToLive:r.timeToLive}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function e(){return n.get(u+"/user/country",{cache:!0,timeToLive:r.timeToLive}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function o(){return n.get(u+"/user/companytypes",{cache:!0,timeToLive:r.timeToLive}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function s(t,r){return n.post(u+"/user/login",{email:t,url:r}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function h(t,r){return n.put(u+"/user/tokenlogin",{token:t,url:r}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function c(t){return n.post(u+"/user/logout",{sessionId:t}).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function l(t){return n.post(u+"/user",t).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function a(t){return n.post(u+"/user/subscribe",t).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}function v(t){return n.post(u+"/user/preferences",t).then(function(n){return n.data}).catch(function(n){return i.reject(n)})}var u=_ttvApiUrl;return{getCountries:f,getCountry:e,getCompanyTypes:o,postLogin:s,putTokenLogin:h,postLogout:c,postRegister:l,postSubscribe:a,postPreferences:v}}angular.module("app.core").factory("UserData",n);n.$inject=["$http","exception","$q","Constant"]}(),function(){"use strict";function n(n,t,i,r,u){function e(t){return n.get(f+"/video/"+t,{cache:!0,timeToLive:u.timeToLiveTenSeconds}).then(function(n){return n.data}).catch(function(n){return r.reject(n)})}var f=_ttvApiUrl;return{getVideo:e}}angular.module("app.core").factory("VideoData",n);n.$inject=["$http","exception","$location","$q","Constant"]}(),function(){"use strict";function n(n){return{restrict:"A",terminal:!1,transclude:!1,link:function(t,i,r){n(t.$eval(r.afterRender),0)}}}angular.module("app.core").directive("afterRender",["$timeout",n])}(),function(){"use strict";function n(n,t,i){return{restrict:"A",link:function(r,u,f){i(function(){function e(n){var c,h,a,l,e,v;if(!angular.element(u).hasClass("ng-hide")&&n&&n.target){for(h=n.target;h;h=h.parentNode){if(h===u[0])return;if(l=h.id,e=h.className,v=o.length,e&&e.baseVal!==undefined&&(e=e.baseVal),e||l)for(c=0;c<v;c++)if(a=new RegExp("\\b"+o[c]+"\\b"),l!==undefined&&a.test(l)||e&&a.test(e))return}i(function(){s=t(f.clickOutside);s(r,{event:n})})}}function h(){return"ontouchstart"in window||navigator.maxTouchPoints}var o=f.outsideIfNot!==undefined?f.outsideIfNot.split(/[ ,]+/):[],s;if(h())n.on("touchstart",function(){setTimeout(e)});n.on("click",e);r.$on("$destroy",function(){h()&&n.off("touchstart",e);n.off("click",e)})})}}}angular.module("app.core").directive("clickOutside",["$document","$parse","$timeout",n])}(),function(){"use strict";angular.module("app.elements",[])}(),function(){"use strict";function n(n){function t(t){function r(){(i.tag==""||i.tag==null)&&(i.tag="null");_ttvConsent.ads&&n()}var i={};t.vm=i;i.layout=t.layout;i.adUnit=t.adUnit;i.tag=t.tag;r()}return{restrict:"E",scope:{layout:"@layout",adUnit:"@adUnit",tag:"=tag"},templateUrl:"/app/elements/appAd.html?v="+_ttvVersion,link:{pre:t}}}angular.module("app.elements").directive("appAd",n);n.$inject=["dfp","common","$timeout","$rootScope"]}(),function(){"use strict";function n(){function n(n){var t={};n.vm=t;t.alias=n.alias}return{restrict:"E",scope:{alias:"@alias"},templateUrl:"/app/elements/appAddToCalendar.html?v="+_ttvVersion,link:{pre:n}}}angular.module("app.elements").directive("appAddToCalendar",n);n.$inject=[]}(),function(){"use strict";function n(n){function t(t){function r(){ga("send","event","Banner Impression",i.bannerReference,i.bannerPosition+" | "+i.imgSrc,{nonInteraction:!0})}function u(){n.eventTrack(i.bannerReference,"Banner Click",i.bannerPosition+" | "+i.linkHref)}var i={};t.vm=i;i.linkHref=t.linkHref;i.linkTarget=t.linkTarget;i.imgSrc=t.imgSrc;i.imgClass=t.imgClass;i.bannerPosition=t.bannerPosition;i.bannerReference=t.bannerReference;i.click=u;r()}return{restrict:"E",scope:{linkHref:"@linkHref",linkTarget:"@linkTarget",imgSrc:"@imgSrc",imgClass:"@imgClass",bannerPosition:"@bannerPosition",bannerReference:"@bannerReference"},templateUrl:"/app/elements/appBanner.html?v="+_ttvVersion,link:{pre:t}}}angular.module("app.elements").directive("appBanner",n);n.$inject=["common"]}(),function(){"use strict";function n(n,t,i,r,u){function f(f,e,o){function c(){(s.config===undefined||s.config===null)&&(s.config={});l()}function l(){return u.getGroup(s.alias).then(function(t){var r,u;for(s.data=t,s.include=s.data.layout!=null?"/layout/"+s.data.layout+"/":"/app/elements/appCarouselDefault.html?v="+_ttvVersion,s.data.config=s.data.config!==null?JSON.parse(s.data.config):{},angular.extend(s.data.config,s.data.config,s.config),s.flickityOptions={cellSelector:".carousel-cell",wrapAround:!0,autoPlay:s.data.config.autoPlayEnabled==null||s.data.config.autoPlayEnabled?7e3:!1},s.data.config.flickityOptions!==null&&angular.extend(s.flickityOptions,s.flickityOptions,s.data.config.flickityOptions),s.flickityOptions.on={select:function(){i(h,50)}},r=0;r<s.data.items.length;r++){if(s.data.items[r].index=r,s.data.items[r].id=s.carouselId+"_item"+r,s.data.items[r].config=s.data.items[r].config!==null?JSON.parse(s.data.items[r].config):{},s.data.items[r].configOverride!==null?(s.data.items[r].configOverride=JSON.parse(s.data.items[r].configOverride),angular.extend(s.data.items[r].config,s.data.items[r].config,s.data.items[r].configOverride)):s.data.items[r].configOverride={},s.data.config.itemLayoutOverride!==undefined&&s.config!==null)s.data.items[r].layout="/layout/"+s.data.config.itemLayoutOverride+"/";else if(s.data.items[r].layout!==null)s.data.items[r].layout="/layout/"+s.data.items[r].layout+"/";else if(s.data.config.itemLayout!==undefined&&s.config!==null)s.data.items[r].layout="/layout/"+s.data.config.itemLayout+"/";else{s.data.items.splice(r,1);r--;continue}s.data.items[r].css===null&&(s.data.items[r].css="");s.data.items[r].css=n.trustAsHtml(s.data.items[r].css.replaceAll("#item","#"+s.data.items[r].id));u="";s.data.items[r].config.urlSuffix!=null?u=s.data.items[r].config.urlSuffix:s.data.config.urlSuffix!=null&&(u=s.data.config.urlSuffix);s.data.items[r].url!==null&&s.data.items[r].url.indexOf("?")===-1&&(s.data.items[r].url=s.data.items[r].url+u);s.data.items[r].contentAlias!==null&&(s.data.items[r].contentUrl="/content/"+s.data.items[r].contentTagAlias+"/"+s.data.items[r].contentAlias+u);s.data.items[r].title=n.trustAsHtml(s.data.items[r].title);s.data.items[r].subTitle=n.trustAsHtml(s.data.items[r].subTitle);s.data.items[r].body=n.trustAsHtml(s.data.items[r].body);s.data.items[r].teaser=n.trustAsHtml(s.data.items[r].teaser);s.data.items[r].callToAction=n.trustAsHtml(s.data.items[r].callToAction)}return s.loaded=!0,t},function(n){t.logger.error("Couldn't retrieve group data",n)})}function h(){var n=$("#"+s.carouselId).first(".flickity-viewport").height();$("#"+s.carouselId).find(".carousel-match-viewport-height").each(function(){$(this).height(n)})}function a(){s.itemsRendered++;s.itemsRendered==s.data.items.length&&(i(function(){$("#"+s.carouselId).flickity(s.flickityOptions).removeClass("is-hidden")},100),i(h,2e3),r(h,15e3))}var s={};f.vm=s;s.carouselId=f.carouselId||"carousel"+Math.floor(Math.random()*99999999);s.alias=f.alias;s.data=f.data;s.config=f.config;s.layout=f.layout;s.attrs=o;s.loaded=!1;s.flickityOptions={};s.itemsRendered=0;s.common=t;s.itemRendered=a;c()}return{restrict:"E",scope:{carouselId:"@carouselId",alias:"@alias",config:"=config",layout:"@layout"},templateUrl:function(n,t){return t.layout||"/app/elements/appCarousel.html?v="+_ttvVersion},link:{pre:f}}}angular.module("app.elements").directive("appCarousel",n);n.$inject=["$sce","common","$timeout","$interval","GroupData"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function o(o){function p(){g();w();c()}function w(){return t.getForm(s.alias).then(function(n){return s.form=n,s.form.fields!==null&&(s.form.fields=JSON.parse(s.form.fields).fields),s.form.config!==null&&(s.form.config=JSON.parse(s.form.config)),s.form.config.header!==undefined&&(s.header=s.form.config.header),s.headerHtml!==undefined&&s.headerHtml&&(s.header=s.headerHtml),s.form.config.headerConfirmation!==undefined&&(s.headerConfirmation=s.form.config.headerConfirmation),s.form.config.footer!==undefined&&(s.footer=s.form.config.footer),s.form.config.submitted!==undefined&&(s.submittedText=s.form.config.submitted),s.form.config.alreadySubmitted!==undefined&&(s.alreadySubmittedText=s.form.config.alreadySubmitted),s.submitButtonText=s.form.config.submitButtonText||"Register",l(),s.loaded=!0,n},function(){s.notFound=!0})}function c(){u.$broadcast("app-form-reset-validation-errors");o.$broadcast("show-errors-reset");s.signInView=!1;s.submitted=!1;s.alreadySubmitted=!1;l();v()}function l(){s.email=s.common.storage.profile.email;angular.forEach(s.form.fields,function(n){n.value=n.name==="firstName"?s.common.storage.profile.firstName:n.name==="lastName"?s.common.storage.profile.lastName:n.name==="company"?s.common.storage.profile.company:n.name==="companyType"?s.common.storage.profile.companyType:n.name==="jobTitle"?s.common.storage.profile.jobTitle:n.name==="country"?s.common.storage.profile.country:null;(typeof n.value=="undefined"||n.value==null)&&(n.value=n.type==="checkbox"?!1:"")})}function b(){i.logoutNoRedirect()}function k(){u.$broadcast("app-form-reset-validation-errors");o.$broadcast("show-errors-reset");s.signInView=!0}function a(){u.$broadcast("app-form-reset-validation-errors");o.$broadcast("show-errors-reset");s.signInView=!1}function v(){return e.checkAlreadySubmitted(s.alias).then(function(n){s.alreadySubmitted=n})}function y(){if(!s.submitted&&!s.busy){if(s.busy=!0,s.error=null,o.$broadcast("show-errors-check-validity"),!s.formSubmission.$valid){s.busy=!1;s.error="validation";return}var f={email:s.email,url:r.url()};return t.postFormSubmissionExistsByEmail(s.alias,f).then(function(t){return a(),t.sessionId!==null&&(i.startSession(t.sessionId,s.email),n.storage.session!==null&&(u.$broadcast("user:login"),t.alreadySubmitted?n.logger.successAlert(s.form.config.alertSignedInAlreadySubmitted||"Thanks - you're signed in and registered"):n.logger.successAlert(s.form.config.alertSignedInNotSubmitted||"Thanks - we've signed you in but you're not yet registered. Please complete the registration form"),n.eventTrack("Sign In","User","via Form Login",r.url()),s.success=!0)),s.alreadySubmitted=t.alreadySubmitted,s.alreadySubmitted&&!s.form.config.allowMultipleSubmissions&&(e.setAsSubmitted(s.alias),n.eventTrack("Already Submitted by Email","Form",s.alias,r.url())),s.busy=!1,h(),t},function(){n.logger.errorAlert("Sorry, there was a problem submitting your information. Please try again.");s.busy=!1;h()})}}function d(){var f,c;if(s.signInView)return y();if(!s.submitted&&!s.busy){if(s.busy=!0,s.error=null,u.$broadcast("app-form-show-validation-errors"),o.$broadcast("show-errors-check-validity"),s.valid=!0,f={},angular.forEach(s.form.fields,function(n){if(n.type==="checkbox"||n.type==="text"||n.type==="textarea"||n.type==="select"||n.type==="country"||n.type==="companyType"){n.valid||(s.valid=!1);var t={};t[n.name]=n.value;angular.extend(f,t)}}),!s.formSubmission.$valid||!s.valid){s.busy=!1;s.error="validation";return}return s.common.storage.session===null||i.authorisedAsEmail(s.email)||(i.endSession(),i.updateProfileEmail(s.email)),c={email:s.email,formData:f,url:r.url()},c.attribution=_ttvConsent.tracking&&n.storage.attr!==undefined&&n.storage.attr!==null?n.storage.attr:{},i.authorised()&&(c.sessionId=n.storage.session),t.postFormSubmission(s.alias,c).then(function(t){return t.sessionId!==null?(i.startSession(t.sessionId,s.email),e.setAsSubmitted(s.alias),i.updateProfileFields(f),n.storage.session!==null&&n.eventTrack("Sign In","User","via Form Submission",r.url()),n.logger.successAlert(s.form.config.alertSubmittedAndLoggedIn||"Thanks - you're now registered and signed in")):(n.logger.successAlert(s.form.config.alertSubmitted||"Thanks - you're now registered"),e.setAsSubmitted(s.alias),i.updateProfileFields(f)),s.submitted=!0,s.busy=!1,n.eventTrack("Submitted","Form",s.alias,r.url()),u.$broadcast("form:submitted"),s.success=!0,h(),t},function(){n.logger.errorAlert("Sorry, there was a problem submitting your information. Please try again.");s.busy=!1;h()})}}function g(){o.$on("user:logout",function(){c()});o.$on("user:login",function(){c()})}function h(){var t=$(document).scrollTop(),i=$("app-form"),n;typeof i!="undefined"&&((n=Math.max(0,$("app-form").offset().top-200),t<n)||$("html, body").animate({scrollTop:n},800))}var s={};o.vm=s;s.loaded=!1;s.busy=!1;s.notFound=!1;s.submitted=!1;s.alreadySubmitted=!1;s.signInView=!1;s.valid=!0;s.error=null;s.alias=o.alias;s.header="";s.headerConfirmation="";s.footer='<p><a href="/pages/privacy/" class="underline" target="_blank">Privacy policy<\/a><\/p>';s.submittedText="<p>Thank you for registering!<\/p>";s.alreadySubmittedText="<p>Thank you - you're already registered!<\/p>";s.form={};s.confirmationLayout=o.confirmationLayout;s.headerHtml=o.headerHtml;s.checkAlreadySubmitted=v;s.checkAlreadySubmittedByEmail=y;s.submit=d;s.trustAsHtml=f.trustAsHtml;s.logoutAndClearData=b;s.startSignIn=k;s.endSignIn=a;s.common=n;s.auth=i;p()}return{restrict:"E",scope:{alias:"@alias",layout:"@layout",confirmationLayout:"@confirmationLayout",headerHtml:"@headerHtml"},templateUrl:function(n,t){return t.layout||"/app/elements/appForm.html?v="+_ttvVersion},link:{pre:o}}}angular.module("app.elements").directive("appForm",n);n.$inject=["common","FormData","auth","$location","$rootScope","$sce","forms"]}(),function(){"use strict";function n(n,t){function i(i){function f(){i.$on("app-form-show-validation-errors",function(){u()});i.$on("app-form-reset-validation-errors",function(){e()});r.field.type==="checkbox"?r.field.valid=!0:r.field.type==="text"||r.field.type==="textarea"||r.field.type==="select"?r.field.valid=r.field.required?null:!0:r.field.type==="country"?(o(),r.field.valid=r.field.required?null:!0):r.field.type==="companyType"&&(h(),r.field.valid=r.field.required?null:!0)}function u(){(r.field.type==="text"||r.field.type==="textarea"||r.field.type==="select"||r.field.type==="country"||r.field.type==="companyType")&&r.field.required&&(r.field.valid=r.field.value!==undefined&&r.field.value!==null&&r.field.value.trim().length>0?!0:!1);r.field.type==="checkbox"&&r.field.required&&r.field.value!==undefined&&r.field.value!==null&&(r.field.valid=r.field.value)}function e(){r.field.valid=!0}function o(){t.getCountries().then(function(n){(r.countries=n,r.field.disableCountryDetection)||s()})}function s(){t.getCountry().then(function(n){(r.userCountry=Enumerable.From(r.countries).Where(function(t){return t.shortCode===n}).SingleOrDefault(),r.userCountry!==null)&&(r.countries.unshift({shortCode:" ",name:r.field.countryDivider||"------------------------------"}),r.countries.unshift(r.userCountry),r.countries.unshift({shortCode:" ",name:r.field.countryDivider||"------------------------------"}))})}function h(){t.getCompanyTypes().then(function(n){r.companyTypes=n})}var r={};i.vm=r;r.field=i.field;r.trustAsHtml=n.trustAsHtml;r.validate=u;r.countries=null;r.companyTypes=null;f()}return{restrict:"E",scope:{field:"=field"},templateUrl:"/app/elements/appFormField.html?v="+_ttvVersion,link:{pre:i}}}angular.module("app.elements").directive("appFormField",n);n.$inject=["$sce","UserData"]}(),function(){"use strict";function n(n,t,i,r,u){function f(i,r,f){function o(){(e.config===undefined||e.config===null)&&(e.config={});s()}function s(){return u.getGroup(e.alias).then(function(t){var i,r;for(e.data=t,e.include=e.data.layout!=null?"/layout/"+e.data.layout+"/":"/app/elements/appGroupDefault.html?v="+_ttvVersion,e.data.config=e.data.config!==null?JSON.parse(e.data.config):{},angular.extend(e.data.config,e.data.config,e.config),i=0;i<e.data.items.length;i++){if(e.data.items[i].index=i,e.data.items[i].id=e.groupId+"_item"+i,e.data.items[i].config=e.data.items[i].config!==null?JSON.parse(e.data.items[i].config):{},e.data.items[i].configOverride!==null?(e.data.items[i].configOverride=JSON.parse(e.data.items[i].configOverride),angular.extend(e.data.items[i].config,e.data.items[i].config,e.data.items[i].configOverride)):e.data.items[i].configOverride={},e.data.config.itemLayoutOverride!==undefined&&e.config!==null)e.data.items[i].layout="/layout/"+e.data.config.itemLayoutOverride+"/";else if(e.data.items[i].layout!==null)e.data.items[i].layout="/layout/"+e.data.items[i].layout+"/";else if(e.data.config.itemLayout!==undefined&&e.config!==null)e.data.items[i].layout="/layout/"+e.data.config.itemLayout+"/";else{e.data.items.splice(i,1);i--;continue}e.data.items[i].css===null&&(e.data.items[i].css="");e.data.items[i].css=n.trustAsHtml(e.data.items[i].css.replaceAll("#item","#"+e.data.items[i].id));r="";e.data.items[i].config.urlSuffix!=null?r=e.data.items[i].config.urlSuffix:e.data.config.urlSuffix!=null&&(r=e.data.config.urlSuffix);e.data.items[i].url!==null&&e.data.items[i].url.indexOf("?")===-1&&(e.data.items[i].url=e.data.items[i].url+r);e.data.items[i].contentAlias!==null&&(e.data.items[i].contentUrl="/content/"+e.data.items[i].contentTagAlias+"/"+e.data.items[i].contentAlias+r);e.data.items[i].title=n.trustAsHtml(e.data.items[i].title);e.data.items[i].subTitle=n.trustAsHtml(e.data.items[i].subTitle);e.data.items[i].body=n.trustAsHtml(e.data.items[i].body);e.data.items[i].teaser=n.trustAsHtml(e.data.items[i].teaser);e.data.items[i].callToAction=n.trustAsHtml(e.data.items[i].callToAction)}return e.loaded=!0,t},function(n){t.logger.error("Couldn't retrieve group data",n)})}var e={};i.vm=e;e.groupId=i.groupId||"group"+Math.floor(Math.random()*99999999);e.alias=i.alias;e.data=i.data;e.config=i.config;e.layout=i.layout;e.attrs=f;e.loaded=!1;e.common=t;o()}return{restrict:"E",scope:{groupId:"@groupId",alias:"@alias",config:"=config",layout:"@layout"},templateUrl:function(n,t){return t.layout||"/app/elements/appGroup.html?v="+_ttvVersion},link:{pre:f}}}angular.module("app.elements").directive("appGroup",n);n.$inject=["$sce","common","$timeout","$interval","GroupData"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function o(o,s,h){function l(){(c.data===undefined||c.data===null)&&(c.data={});(c.options===undefined||c.options===null)&&(c.options={})}function a(){return e.checkAlreadySubmitted(c.alias).then(function(n){c.alreadySubmitted=n})}var c={};o.vm=c;c.value=o.value;c.data=o.data;c.options=o.options;c.layout=o.layout;c.route=n;c.routehelper=t;c.location=i;c.sce=r;c.common=u;c.auth=f;c.forms=e;c.element=s;c.attrs=h;c.checkFromAlreadySubmitted=a;l()}return{restrict:"E",scope:{value:"@value",data:"=data",options:"=options",layout:"@layout"},templateUrl:function(n,t){return t.layout},link:{pre:o}}}angular.module("app.elements").directive("appLayout",n);n.$inject=["$route","routehelper","$location","$sce","common","auth","forms"]}(),function(){"use strict";function n(){function n(n){function i(){(t.options===undefined||t.options===null)&&(t.options={})}var t={};n.vm=t;t.activeItem=n.activeItem;t.options=n.options;t.layout=n.layout;i()}return{restrict:"E",scope:{activeItem:"@activeItem",options:"=options",layout:"@layout"},templateUrl:function(n,t){return t.layout},link:{pre:n}}}angular.module("app.elements").directive("appNav",n);n.$inject=[]}(),function(){"use strict";function n(n,t,i,r,u){function f(f){function c(){e.voted=e.common.storage.pollsVoted!==null&&Array.isArray(e.common.storage.pollsVoted)&&e.common.storage.pollsVoted.includes(e.pollId);h();f.$on("$destroy",function(){o&&r.cancel(o)})}function h(){return t.getPoll(e.pollId).then(function(n){s++;e.poll=n;try{e.poll.config=JSON.parse(e.poll.config)}catch(t){e.poll.config={}}return e.poll.config===null&&(e.poll.config={}),e.canVote=!e.voted&&e.poll.votingActive,e.loaded=!0,o&&r.cancel(o),s<(e.poll.config.refreshLimit||120)&&(o=r(function(){h()},e.poll.config.refreshInterval||9e4)),n},function(){e.notFound=!0})}function l(n){(e.options==null||angular.isArray(!e.options))&&(e.options=[]);var t=e.options.indexOf(n);t!==-1?(e.options.splice(t,1),e.options.length===0&&(e.options=null)):(e.options.push(n),e.options.sort())}function a(r){var f,o;if(!e.voted&&!e.busy){if(e.busy=!0,r==null){if(e.options==null)return;f=angular.isArray(e.options)?e.options:[e.options]}else f=[r];return o={pollId:e.pollId,pollOptions:f},i.authorised()&&(o.sessionId=n.storage.session),t.postPollVote(o).then(function(t){e.poll=t;try{e.poll.config=JSON.parse(e.poll.config)}catch(i){e.poll.config={}}return e.common.storage.pollsVoted!==null&&Array.isArray(e.common.storage.pollsVoted)?e.common.storage.pollsVoted.includes(e.pollId)||e.common.storage.pollsVoted.push(e.pollId):e.common.storage.pollsVoted=[e.pollId],e.canVote=!1,e.voted=!0,e.busy=!1,n.eventTrack("Vote","Poll",e.poll.name,u.url()),t},function(t){if(t.status===409){n.logger.infoAlert("Sorry, this poll is now closed!");e.busy=!1;h();return}n.logger.errorAlert("Sorry, there was a problem submitting your vote. Please try again.");e.busy=!1})}}var e={},o,s;f.vm=e;e.notFound=!1;e.loaded=!1;e.pollId=f.pollId;e.poll={};e.options=null;e.voted=!1;e.canVote=!0;e.busy=!1;e.toggleOption=l;e.postVote=a;e.common=n;e.auth=i;o=null;s=0;c()}return{restrict:"E",scope:{pollId:"=pollId"},templateUrl:"/app/elements/appPoll.html?v="+_ttvVersion,link:{pre:f}}}angular.module("app.elements").directive("appPoll",n);n.$inject=["common","PollData","auth","$timeout","$location"]}(),function(){"use strict";function n(n,t){function i(i){function u(){}var r={};i.vm=r;r.buttonClass=i.buttonClass||"btn btn-lg btn-primary";r.buttonText=i.buttonText||"Register Now";r.registeredClass=i.registeredClass||"lead";r.registeredText=i.registeredText||"Thanks, you're registered";r.auth=n;r.common=t;u()}return{restrict:"E",scope:{buttonClass:"@buttonClass",buttonText:"@buttonText",registeredClass:"@registeredClass",registeredText:"@registeredText"},templateUrl:"/app/elements/appRegister.html?v="+_ttvVersion,link:{pre:i}}}angular.module("app.elements").directive("appRegister",n);n.$inject=["auth","common","$route","$location"]}(),function(){"use strict";function n(n,t){function i(i){function e(){f();o()}function o(){i.$on("route.meta.changed",function(){f()})}function f(){(r.url===undefined||r.url===null||r.url==="")&&(r.url=n.absUrl());(r.title===undefined||r.title===null||r.title==="")&&(r.title=document.title.replace(" | TelecomTV",""));r.urlTwitter="http://twitter.com/share?text="+encodeURIComponent(r.title+" - via @TelecomTV")+"&url="+encodeURIComponent(r.url);r.urlLinkedIn="https://www.linkedin.com/sharing/share-offsite/?url="+encodeURIComponent(r.url);r.urlEmail="mailto:?subject="+encodeURIComponent("Shared from TelecomTV: "+r.title)+"&body=From TelecomTV:%0D%0A%0D%0A"+encodeURIComponent(r.url)}function s(){try{var n={title:"TelecomTV",text:r.title,url:r.url};navigator.share(n);u("Native")}catch(i){navigator.clipboard.writeText(window.location.href);t.logger.successAlert("Page link copied to clipboard");u("Clipboard")}}function u(n){t.eventTrack(n,"Share Icon",r.title,r.url)}var r={};i.vm=r;r.class=i.containerClass;r.style=i.containerStyle;r.url=i.shareUrl;r.title=i.shareTitle;r.shareOther=s;r.shared=u;e()}return{restrict:"E",scope:{containerClass:"@containerClass",containerStyle:"@containerStyle",shareUrl:"@shareUrl",shareTitle:"@shareTitle"},templateUrl:"/app/elements/appShareIcons.html?v="+_ttvVersion,link:{pre:i}}}angular.module("app.elements").directive("appShareIcons",n);n.$inject=["$location","common"]}(),function(){"use strict";function n(n,t,i,r,u){function f(f){function o(){}function s(){if(f.$broadcast("show-errors-check-validity"),f.subscribeForm.$valid){var o={email:e.email,source:e.subscribeSource,url:r.url()};t.postSubscribe(o).then(function(t){u.authorised()&&n.storage.profile.email!==e.email&&u.endSession();(u.authorised()&&n.storage.profile.email!==e.email||!u.authorised())&&(u.startSession(t,e.email),n.storage.session!==null&&(n.storage.newsletterMessageClosed=new Date,i.$broadcast("user:login")));n.eventTrack("Subscribe","User","via Subscribe Module"+(e.subscribeSource!==null?" ("+e.subscribeSource+")":""),r.url());e.subscribeRedirect&&(e.subscribeRedirect=e.subscribeRedirect.replaceAll("{path}",r.path()),e.subscribeRedirect=e.subscribeRedirect.replaceAll("{url}",r.url()),e.subscribeRedirect=e.subscribeRedirect.replaceAll("{ref}",e.subscribeSource.replaceAll(" ","-").toLowerCase()),r.url(e.subscribeRedirect));e.success=!0},function(t){e.success=!1;n.logger.errorAlert("Sorry there was an error when trying to save your details.",t)})}else e.success=!1,e.error="validation"}var e={};f.vm=e;e.subscribeSource=f.subscribeSource||null;e.subscribeRedirect=f.subscribeRedirect||null;e.options=f.options;e.common=n;e.auth=u;e.subscribe=s;e.success=null;o()}return{restrict:"E",scope:{layout:"@layout",subscribeSource:"@subscribeSource",subscribeRedirect:"@subscribeRedirect",options:"=options"},templateUrl:function(n,t){return t.layout||"/app/elements/appSubscribe.html?v="+_ttvVersion},link:{pre:f}}}angular.module("app.elements").directive("appSubscribe",n);n.$inject=["common","UserData","$rootScope","$location","auth"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function o(i){function l(){r.video.config!==null&&(r.video.config=JSON.parse(r.video.config));i.$on("$destroy",function(){u&&e.cancel(u);o&&f.cancel(o)});h();r.loaded=!0}function h(){c();a()}function a(){r.video.config!==null&&r.video.config.refresh===!0?s<(r.video.config.refreshLimit||120)&&(o=f(function(){v()},r.video.config.refreshInterval||9e4)):o&&f.cancel(o)}function c(){if(r.video.availableFrom==null||moment.utc()>moment(r.video.availableFrom))r.countdownActive=!1,u!==null&&(e.cancel(u),u=null);else{r.countdownActive=!0;var n=moment.utc(r.video.availableFrom)-moment.utc();r.countdownTimeDisplay=n>864e5?moment.utc(r.video.availableFrom).format("MMM D, YYYY"):n>36e5?moment.utc(n).format("[in] H:mm:ss"):moment.utc(n).format("[in] mm:ss");u==null&&(u=e(function(){c()},1e3))}}function v(){return t.getVideo(r.video.id).then(function(n){return s++,r.video=n,r.video.config!==null&&(r.video.config=JSON.parse(r.video.config)),h(),n},function(){})}var r={};i.vm=r;r.common=n;r.loaded=!1;r.busy=!1;r.video=JSON.parse(i.video);r.countdownActive=!1;r.countdownTimeDisplay="";var s=0,o=null,u=null;l()}return{restrict:"E",scope:{video:"@video"},templateUrl:function(n,t){return t.layout||"/app/elements/appVideo.html?v="+_ttvVersion},link:{pre:o}}}angular.module("app.elements").directive("appVideo",n);n.$inject=["common","VideoData","$location","$rootScope","$sce","$timeout","$interval"]}(),function(){"use strict";angular.module("app.error",[])}(),function(){"use strict";function n(n){n.configureRoutes(t())}function t(){return[{url:"/error/:code/",config:{templateUrl:"/app/error/error.html?v="+_ttvVersion,title:"Error"}}]}angular.module("app.error").run(n);n.$inject=["routehelper"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(){f.current.meta={title:"Error"};u.$broadcast("route.meta.changed")}var e=this;e.code=t.code;o()}angular.module("app.error").controller("Error",n);n.$inject=["$location","$routeParams","common","config","$rootScope","$route"]}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(n){return!n?"":n.charAt(0).toUpperCase()+n.substr(1).toLowerCase()}})}(),function(){"use strict";angular.module("app.core").filter("dateRelative",function(){return function(n){return moment.utc(n).fromNow()}});angular.module("app.core").filter("dateTime",function(){return function(n){return moment.utc(n).format("LLL")}});angular.module("app.core").filter("timeFromSeconds",function(){return function(n){return n>=3600?moment.utc(n*1e3).format("h:mm:ss"):moment.utc(n*1e3).format("m:ss")}})}(),function(){"use strict";function n(n){return function(t){return t===undefined||t===null?"":(t=t.replaceAll("\r\n","<br />"),n.trustAsHtml(t))}}angular.module("app.core").filter("transcript",n);n.$inject=["$sce"]}(),function(){"use strict";function n(n){return function(t){return n.trustAsResourceUrl(t)}}angular.module("app.core").filter("trustedUrl",n);n.$inject=["$sce"]}(),function(){"use strict";function n(n,t){return function(i){var r="";if(t.search().start&&(r=r+"&start="+parseInt(t.search().start)),t.search().end&&(r=r+"&end="+parseInt(t.search().end)),_ttvConsent.functionality){if(i.player==="youTube")return n.trustAsResourceUrl("https://www.youtube.com/embed/"+i.externalId+"?modestbranding=1&rel=0"+r);if(i.player==="vimeo")return n.trustAsResourceUrl("https://player.vimeo.com/video/"+i.externalId+"?byline=false&title=false&portrait=false&color=2d76bb");if(i.player==="vimeoLiveEvent")return n.trustAsResourceUrl("https://vimeo.com/event/"+i.externalId+"/embed?byline=false&title=false&portrait=false&color=2d76bb")}else{if(i.player==="youTube")return n.trustAsResourceUrl("https://www.youtube-nocookie.com/embed/"+i.externalId+"?modestbranding=1&rel=0"+r);if(i.player==="vimeo")return n.trustAsResourceUrl("https://player.vimeo.com/video/"+i.externalId+"?byline=false&title=false&portrait=false&color=2d76bb&dnt=1");if(i.player==="vimeoLiveEvent")return n.trustAsResourceUrl("https://vimeo.com/event/"+i.externalId+"/embed?byline=false&title=false&portrait=false&color=2d76bb&dnt=1")}return""}}angular.module("app.core").filter("videoEmbedUrl",n);n.$inject=["$sce","$location"]}(),function(){"use strict";function n(n){return function(t){return _ttvConsent.functionality?n.trustAsResourceUrl("https://player.vimeo.com/video/"+t+"?byline=false&title=false&portrait=false&color=2d76bb"):n.trustAsResourceUrl("https://player.vimeo.com/video/"+t+"?byline=false&title=false&portrait=false&color=2d76bb&dnt=1")}}angular.module("app.core").filter("vimeoEmbedUrl",n);n.$inject=["$sce"]}(),function(){"use strict";function n(n){return function(t){return _ttvConsent.functionality?n.trustAsResourceUrl("https://vimeo.com/event/"+t+"/embed?byline=false&title=false&portrait=false&color=2d76bb"):n.trustAsResourceUrl("https://vimeo.com/event/"+t+"/embed?byline=false&title=false&portrait=false&color=2d76bb&dnt=1")}}angular.module("app.core").filter("vimeoLiveEmbedUrl",n);n.$inject=["$sce"]}(),function(){"use strict";function n(n,t){return function(i){var r="";return t.search().start&&(r=r+"&start="+parseInt(t.search().start)),t.search().end&&(r=r+"&end="+parseInt(t.search().end)),_ttvConsent.functionality?n.trustAsResourceUrl("https://www.youtube.com/embed/"+i+"?modestbranding=1&rel=0"+r):n.trustAsResourceUrl("https://www.youtube-nocookie.com/embed/"+i+"?modestbranding=1&rel=0"+r)}}angular.module("app.core").filter("youTubeEmbedUrl",n);n.$inject=["$sce","$location"]}(),function(){"use strict";angular.module("app.layout",[])}(),function(){"use strict";function n(n){function i(){}var t=this;t.common=n;t.year=(new Date).getFullYear();i()}angular.module("app.layout").controller("Footer",n);n.$inject=["common"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){return e.checkAlreadySubmitted(o.alias).then(function(n){o.alreadySubmitted=n})}var o=this;o.route=n;o.routehelper=t;o.location=i;o.sce=r;o.common=u;o.auth=f;o.forms=e;o.checkFromAlreadySubmitted=s}angular.module("app.layout").controller("Generic",n);n.$inject=["$route","routehelper","$location","$sce","common","auth","forms"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function ut(){var n,t;d();ft();n=$("#navbar-top-menu");n.on("click","a[href]",null,function(){n.collapse("hide");w(null)});t=$(".nav-panel");t.on("click","a",null,function(){w(null)});st()}function d(){w(null);t.current==null||t.current.$$route==null?a.meta={title:"Error"}:(a.meta=t.current.meta,t.current.meta==null&&(a.meta={title:t.current.$$route.title}));o.bg=a.meta.bg?"url('{0}')".format(a.meta.bg.img):null;$('link[rel="canonical"]').attr("href",a.meta.canonical);$('meta[property="og:title"]').attr("content",a.meta.title);$('meta[property="og:url"]').attr("content",window.location.href);u.setDocTitle(a.meta.title)}function ft(){e.$on("route.meta.changed",function(){d()})}function et(){n.path("/search/").search({q:a.searchInput});a.navPanel=null;a.searchInput="";$("#navbar-top-menu").collapse("hide")}function w(n){a.navPanel=n;n==="search"&&document.getElementById("searchInputPanel").focus()}function ot(n){if(a.navPanel===n){a.navPanel=null;return}w(n)}function st(){n.search()!==null&&n.search().notification&&(k=n.search().notification);g();e.$on("$locationChangeSuccess",function(){v&&c.cancel(v);nt()});e.$on("$destroy",function(){b&&c.cancel(b);v&&c.cancel(v)})}function g(){return h.getNotification(k).then(function(n){if(a.notifications=n,nt(),y++,y<=5)p=9e4;else if(y<=10)p=18e4;else if(y<=30)p=3e5;else if(y<=40)p=6e5;else return n;return b=c(function(){g()},p),n},function(){})}function nt(){for(var n,u,f,t=!1,i=0;i<a.notifications.length;i++){if(t)break;if(n=a.notifications[i],n!==null&&n.config!==null&&typeof n.config=="string")try{n.config=JSON.parse(n.config)}catch(e){n.config={}}if(u=n!==null&&n.showNav&&it(n.config.nav),f=n!==null&&n.showOverlay&&it(n.config.overlay),!u&&!f){if(n.exclusive){t=!0;tt();break}continue}a.notification=n;a.notificationNavHidden=!u;a.notificationOverlayHidden=!f;ht();a.notificationOverlayBodyFixed!==a.notification.overlayBody&&(a.notificationOverlayBodyFixed=a.notification.overlayBody);a.notificationOverlayBodyClosedFixed!==a.notification.overlayBodyClosed&&(a.notificationOverlayBodyClosedFixed=a.notification.overlayBodyClosed);a.overlayDismissHours=a.notification!=null&&a.notification.config!=null&&a.notification.config.overlay!=null&&a.notification.config.overlay.dismissHours!=null?a.notification.config.overlay.dismissHours:1;a.overlayDismissParameter=a.notification!=null&&a.notification.config!=null&&a.notification.config.overlay!=null&&a.notification.config.overlay.dismissType!=null?a.notification.config.overlay.dismissType:a.notification.id;$("body").toggleClass("notification-nav-active",a.notification!==null&&a.notification.showNav);r.storage.overlayDismiss===undefined&&(r.storage.overlayDismiss={});moment(a.storage.overlayDismiss[a.overlayDismissParameter])<moment().subtract(a.overlayDismissHours,"hours")&&delete a.storage.overlayDismiss[a.overlayDismissParameter];t=!0;break}t||tt()}function tt(){a.notification=null;a.notificationNavHidden=!0;a.notificationOverlayHidden=!0;$("body").removeClass("notification-nav-active")}function it(t){var u=!0,f=!1,i;if(t&&t.hideIf!==undefined)for(i=0;i<t.hideIf.length;i++)if(n.path()===t.hideIf[i])return!1;if(t&&t.hideIfContains!==undefined)for(i=0;i<t.hideIfContains.length;i++)if(n.path().indexOf(t.hideIfContains[i])>=0)return!1;if(t&&t.showIf!==undefined)for(u=!1,i=0;i<t.showIf.length;i++)n.path()===t.showIf[i]&&(f=!0);if(t&&t.showIfContains!==undefined)for(u=!1,i=0;i<t.showIfContains.length;i++)n.path().indexOf(t.showIfContains[i])>=0&&(f=!0);return!f&&!u?!1:t&&t.showIfFormSubmitted!==undefined?l.checkAlreadySubmittedFromLocalStorageThenSilentRequest(t.showIfFormSubmitted):t&&t.hideIfFormSubmitted!==undefined?!l.checkAlreadySubmittedFromLocalStorageThenSilentRequest(t.hideIfFormSubmitted):t&&t.hideIfRegisteredUser?!r.storage.session:t&&t.showIfRegisteredUser?Boolean(r.storage.session):!0}function ht(){a.notification!==null&&a.notification.showOverlay&&a.notification.config&&a.notification.config.overlay&&a.notification.config.overlay.delay!==undefined&&!a.notificationOverlayHidden&&v===null&&(a.notificationOverlayHidden=!0,v=c(function(){a.notificationOverlayHidden=!1},a.notification.config.overlay.delay*1e3))}function rt(){r.storage.overlayDismiss===undefined&&(r.storage.overlayDismiss={});r.storage.overlayDismiss[a.overlayDismissParameter]===undefined&&(r.storage.overlayDismiss[a.overlayDismissParameter]=moment())}function ct(){a.notification!==null&&a.notification.showOverlay&&a.notification.config&&a.notification.config.overlay&&a.notification.config.overlay.dismissOnClick===!0&&rt()}function lt(){r.storage.overlayDismiss===undefined&&(r.storage.overlayDismiss={});delete r.storage.overlayDismiss[a.overlayDismissParameter]}var a=this;a.version=_ttvVersion;a.auth=f;a.storage=r.storage;a.location=n;a.trustAsHtml=s.trustAsHtml;a.routes=u.getRoutes();a.route=t;a.navPanel=null;a.meta=null;a.notification=null;a.notificationNavHidden=!1;a.notificationOverlayHidden=!1;var y=0,p=9e4,b=null,k=null,v=null;a.search=et;a.toggleNavPanel=ot;a.setNavPanel=w;a.notificationOverlayClose=rt;a.notificationOverlayCloseOnClick=ct;a.notificationOverlayOpen=lt;ut()}angular.module("app.layout").controller("Nav",n);n.$inject=["$location","$route","config","common","routehelper","auth","$scope","$rootScope","$sce","NotificationData","$timeout","forms","time"]}(),function(){"use strict";function n(n,t){function r(){$("html, body").animate({scrollTop:0},1e3)}var i=this;i.version=_ttvVersion;i.routes=t.getRoutes();i.route=n;i.backToTop=r}angular.module("app.layout").controller("Shell",n);n.$inject=["$route","routehelper"]}(),function(){"use strict";angular.module("app.page",[])}(),function(){"use strict";function n(n){n.configureRoutes(t())}function t(){return[{url:"/pages/:alias/",config:{templateUrl:"/app/page/page.html?v="+_ttvVersion,title:"Page"}}]}angular.module("app.page").run(n);n.$inject=["routehelper"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function c(){l()}function l(){return e.getPage(i.alias).then(function(t){return t.body=r.trustAsHtml(t.body),h.page=t,h.loaded=!0,n.current.meta={title:h.page.title},n.current.meta.canonical=_ttvUrl+"/pages/"+i.alias+"/",s.$broadcast("route.meta.changed"),o.setDocTitle(h.page.title),u.pageTrack({type:"page",page:i.alias,title:h.page.title}),t},function(){t.path("/error/404/").replace()})}var h=this;h.loaded=!1;h.page={};c()}angular.module("app.page").controller("Page",n);n.$inject=["$route","$location","$routeParams","$sce","common","config","PageData","routehelper","$rootScope"]}(),function(){"use strict";angular.module("app.search",[])}(),function(){"use strict";function n(n){n.configureRoutes(t())}function t(){return[{url:"/search/",config:{templateUrl:"/app/search/search.html?v="+_ttvVersion,title:"Search"}}]}angular.module("app.search").run(n);n.$inject=["routehelper"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function l(){n.current.meta={title:"Search"};n.current.meta.canonical=_ttvUrl+"/search/";s.$broadcast("route.meta.changed");o.setDocTitle("Search");u.pageTrack({type:"search",title:"Search"});c()}function a(){t.search({q:h.input,o:h.order==="relevance"?null:"relevance"})}function c(){if(h.query)return u.eventTrack("Query","Search",h.query),e.getSearch(h.query,h.order==null?null:"relevance",h.nextPage).then(function(n){for(var t=0;t<n.results.length;t++)n.results[t].htmlTitle=r.trustAsHtml(n.results[t].title.replace(new RegExp(h.query,"gi"),"<b>$&<\/b>"));return h.results=h.results.concat(n.results),h.moreAvailable=n.results.length===h.itemsPerPage,h.nextPage=n.next,h.noResults=h.page===1&&n.results.length===0,h.page++,n},function(n){u.logger.error("Failed to get search results",n)})}function v(){t.search({q:h.input})}function y(){h.page>=h.maxPages||c()}var h=this;h.results=[];h.page=0;h.query=t.search().q;h.input=h.query;h.moreAvailable=!1;h.loadMore=y;h.newSearch=v;h.order=t.search().o;h.nextPage=null;h.maxPages=10;h.itemsPerPage=24;h.changeSort=a;l()}angular.module("app.search").controller("Search",n);n.$inject=["$route","$location","$routeParams","$sce","common","config","SearchData","routehelper","$rootScope"]}(),function(){"use strict";angular.module("app.user",[])}(),function(){"use strict";function n(n){n.configureRoutes(t())}function t(){return[{url:"/user/login/",config:{templateUrl:"/app/user/login.html?v="+_ttvVersion,title:"Sign In"}},{url:"/user/token/",config:{templateUrl:"/app/user/token.html?v="+_ttvVersion,title:"Sign In",reloadOnSearch:!1}},{url:"/user/register/",config:{templateUrl:"/app/user/register.html?v="+_ttvVersion,title:"Register"}},{url:"/user/subscribe/",config:{templateUrl:"/app/user/subscribe.html?v="+_ttvVersion,title:"Subscribe",reloadOnSearch:!1}},{url:"/user/logout/",config:{templateUrl:"/app/user/logout.html?v="+_ttvVersion,title:"Sign Out"}},{url:"/user/preferences/",config:{templateUrl:"/app/user/preferences.html?v="+_ttvVersion,title:"Email Preferences",reloadOnSearch:!1}}]}angular.module("app.user").run(n);n.$inject=["routehelper"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function h(){f.bounce()||(e.current.meta={title:"Sign In"},e.current.meta.canonical=_ttvUrl+"/user/login/",t.$broadcast("route.meta.changed"),r.pageTrack({type:"login",title:"Sign In"}))}var o=this,s=i.search().return||"/";s=s.replace(_ttvUrl,"");s.startsWith("/")||(s="/");o.storage=r.storage;o.register=f.register;o.email=null;o.password=null;o.error=null;h();o.login=function(){f.bounce()||(o.error=null,n.$broadcast("show-errors-check-validity"),f.authorised()&&r.storage.profile.email!==o.email&&f.endSession(),f.updateProfileEmail(o.email),n.loginForm.$valid&&u.postLogin(o.email,s).then(function(n){f.startSession(n,o.email);r.storage.session!=null&&(t.$broadcast("user:login"),r.eventTrack("Sign In","User",s),r.logger.successAlert("Welcome, "+r.storage.profile.salutation+" - you're now signed in to TelecomTV"));i.url(s)},function(n){n.status==400?o.error="login-failed":r.logger.errorAlert("Sorry there was an error when trying to log you in.",n)}))}}angular.module("app.user").controller("UserLogin",n);n.$inject=["$scope","$rootScope","$location","common","UserData","auth","$route"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function l(){e.current.meta={title:"Sign Out"};e.current.meta.canonical=_ttvUrl+"/user/logout/";f.$broadcast("route.meta.changed");a()}function a(){if(r.storage.session==null)return r.logger.successAlert("You're now signed out"),h();u.postLogout(r.storage.session).then(function(){return o.endSession(),f.$broadcast("user:logout"),r.eventTrack("Sign Out","User"),r.logger.successAlert("You're now signed out"),h()},function(n){return o.endSession(),f.$broadcast("user:logout"),r.eventTrack("Sign Out","User"),r.logger.error("Error when trying to log out",n),r.logger.successAlert("You're now signed out"),h()})}function h(){i.url(c.returnUrl)}var c=this,s=i.search().return||"/";s=s.replace(_ttvUrl,"");s.startsWith("/")||(s="/");c.returnUrl=s;l()}angular.module("app.user").controller("UserLogout",n);n.$inject=["$scope","$routeParams","$location","common","UserData","$rootScope","$route","auth"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function c(){o.token=i.search().token;o.token==null&&(o.error="To update your preferences please email our team at <a href='mailto:help@telecomtv.com?Subject=Update%20email%20preferences' target='_blank'>help@telecomtv.com<\/a>.");o.unsubscribe=i.search().action!=="subscribe";o.type=i.search().type||null;o.title=i.search().title;s();e.current.meta={title:"Email Preferences"};e.current.meta.canonical=_ttvUrl+"/user/preferences/";t.$broadcast("route.meta.changed")}function s(){o.heading=o.unsubscribe?"Unsubscribe":"Subscribe";o.global=o.title?!1:!0;o.title=o.title||"all newsletters and marketing emails";o.action=o.unsubscribe?"unsubscribe":"subscribe";o.preposition=o.unsubscribe?"from ":"to";o.thanksText="You're now "+o.action+"d "+o.preposition+" "+o.title+".";o.thanksHeading=o.unsubscribe?"Sorry to see you go":"Thanks for subscribing";o.globalText=o.unsubscribe?"unsubscribe from all emails newsletters":"subscribe to all newsletters and marketing emails"}function h(n){o.error=null;u.postPreferences(n).then(function(){o.success=!0;o.complete=!0;i.search({})},function(){o.complete=!0;o.error="Sorry, there was a problem trying to update your preferences. Please email our team at <a href='mailto:help@telecomtv.com?Subject=Update%20email%20preferences' target='_blank'>help@telecomtv.com<\/a> and we'll update your email preferences for you."})}var o=this;o.storage=r.storage;o.error=null;c();o.confirm=function(){o.submitted=!0;o.complete=!1;o.type=i.search().type;o.title=i.search().title;s();var n={token:o.token,type:o.type,unsubscribe:o.unsubscribe,title:o.title,source:i.search().source};h(n)};o.global=function(){o.complete=!1;o.submitted=!0;o.type=null;o.title=null;s();var n={token:o.token,unsubscribe:o.unsubscribe,source:i.search().source};h(n)};o.cancel=function(){o.complete=!0;o.submitted=!0;i.search({});o.unsubscribe=!1;o.thanksHeading="Thank you";o.thanksText="Your request has been cancelled. No changes have been made to your email preferences."}}angular.module("app.user").controller("UserPreferences",n);n.$inject=["$scope","$rootScope","$location","common","UserData","auth","$route"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){r.bounce()||(h(),c(),u.pageTrack({type:"register",title:"Register"}),e.current.meta={title:"Register"},e.current.meta.canonical=_ttvUrl+"/user/register/",t.$broadcast("route.meta.changed"))}function h(){return i.getCountries().then(function(n){return o.countries=n,n})}function c(){return i.getCompanyTypes().then(function(n){return o.companyTypes=n,n})}var o=this;o.email=null;o.password=null;o.passwordConfirm=null;o.firstName=null;o.lastName=null;o.company=null;o.companyType=null;o.newsletter=!1;o.terms=!1;o.error=null;o.init={};o.auth=r;o.search=f.search();s();o.register=function(){if(!r.bounce())if(n.$broadcast("show-errors-check-validity"),n.registrationForm.$valid){var e={email:o.email,firstName:o.firstName,lastName:o.lastName,company:o.company,companyType:o.companyType,jobTitle:o.jobTitle,country:o.country,url:f.url()};i.postRegister(e).then(function(n){r.startSession(n,o.email);u.storage.session!=null&&(r.updateProfileFields(e),t.$broadcast("user:login"),u.eventTrack("Register","User"),u.logger.successAlert("Welcome, "+u.storage.profile.salutation+" - you're now subscribed and signed in to TelecomTV"),f.url(f.search().return||"/"))},function(n){u.logger.errorAlert("Sorry there was an error when trying to register you.",n);$("html, body").animate({scrollTop:0},800)})}else o.error="validation",$("html, body").animate({scrollTop:0},800)}}angular.module("app.user").controller("UserRegister",n);n.$inject=["$scope","$rootScope","UserData","auth","common","$location","$route"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){o.email=f.search().email;f.search("email",null);o.email!==null&&typeof o.email!="undefined"&&(o.initialSubmit=!0,o.subscribe());e.current.meta={title:"Subscribe"};e.current.meta.canonical=_ttvUrl+"/user/subscribe/";t.$broadcast("route.meta.changed")}function h(){if(typeof n.subscribeForm!="undefined"&&(n.$broadcast("show-errors-check-validity"),!n.subscribeForm.$valid)){o.error="validation";$("html, body").animate({scrollTop:0},800);f.url(f.search().return||"/");o.initialSubmit=!1;return}var e={email:o.email,url:f.url()};i.postSubscribe(e).then(function(n){r.authorised()?(u.logger.successAlert("Thanks, "+u.storage.profile.salutation+" - you're now subscribed to TelecomTV"),f.url(f.search().return||"/"),o.initialSubmit=!1):(r.startSession(n,o.email),u.storage.session!=null&&(u.storage.newsletterMessageClosed=new Date,t.$broadcast("user:login"),u.eventTrack("Subscribe","User","via Popup",f.search().return||"/"),u.logger.successAlert("Welcome, "+u.storage.profile.salutation+" - you're now subscribed to TelecomTV"),f.url(f.search().return||"/"),o.initialSubmit=!1))},function(n){o.initialSubmit=!1;u.logger.errorAlert("Sorry there was an error when trying to subscribe you",n);$("html, body").animate({scrollTop:0},800)})}var o=this;o.initialSubmit=null;o.email=null;o.error=null;o.auth=r;o.search=f.search();o.subscribe=h;s()}angular.module("app.user").controller("UserSubscribe",n);n.$inject=["$scope","$rootScope","UserData","auth","common","$location","$route"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function l(){e.current.meta={title:"Sign In"};e.current.meta.canonical=_ttvUrl+"/user/token/";f.$broadcast("route.meta.changed");a()}function a(){if(r.storage.session!=null)return c();if(typeof s.token=="undefined"||s.token===null||s.token==="")return r.logger.error("Sorry, we couldn't sign in you to TelecomTV as the link wasn't valid"),c();u.putTokenLogin(s.token,h).then(function(n){return o.startSession(n,null,s.token),r.storage.session!=null?(f.$broadcast("user:login"),r.eventTrack("Token Sign In","User",h),r.logger.successAlert("Welcome back - you're now signed in to TelecomTV"),c()):void 0},function(){return r.logger.error("Sorry, we couldn't sign in you to TelecomTV - the link may have expired"),c()})}function c(){i.url(s.returnUrl)}var s=this,h=i.search().return||"/";h=h.replace(_ttvUrl,"");h.startsWith("/")||(h="/");s.returnUrl=h;s.token=i.search().token;i.search("token",null);l()}angular.module("app.user").controller("UserToken",n);n.$inject=["$scope","$routeParams","$location","common","UserData","$rootScope","$route","auth"]}()