Type.createNamespace('HTMLHeadConfigurationComponent');

////////////////////////////////////////////////////////////////////////////////
// HTMLHeadConfigurationComponent.HTMLHeadConfigurationComponent

HTMLHeadConfigurationComponent.HTMLHeadConfigurationComponent = function HTMLHeadConfigurationComponent_HTMLHeadConfigurationComponent() {
    this._titleText = String.Empty;
    this._metaKeywords = String.Empty;
    this._metaDescription = String.Empty;
    HTMLHeadConfigurationComponent.HTMLHeadConfigurationComponent.constructBase(this);
}
HTMLHeadConfigurationComponent.HTMLHeadConfigurationComponent.prototype = {
    _parameters$1: null,
    
    init: function HTMLHeadConfigurationComponent_HTMLHeadConfigurationComponent$init(environment, componentInstanceName, domElementId, parameters) {
        HTMLHeadConfigurationComponent.HTMLHeadConfigurationComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._titleText = parameters['title-text'];
        this._metaDescription = parameters['meta-description'];
        this._metaKeywords = parameters['meta-keywords'];
        if (this._titleText !== String.Empty) {
            document.title = this._titleText;
        }
        var metaTags = document.getElementsByTagName('meta');
        for (var i = 0; i < metaTags.length; i++) {
            if (metaTags[i].getAttribute('name').toString() === 'keywords') {
                metaTags[i].setAttribute('content', this._metaKeywords);
            }
            if (metaTags[i].getAttribute('name').toString() === 'description') {
                metaTags[i].setAttribute('content', this._metaDescription);
            }
        }
    }
}


HTMLHeadConfigurationComponent.HTMLHeadConfigurationComponent.createClass('HTMLHeadConfigurationComponent.HTMLHeadConfigurationComponent', Framework.Component.AbstractComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('BodyClassOverrideComponent');

////////////////////////////////////////////////////////////////////////////////
// BodyClassOverrideComponent.BodyClassOverrideComponent

BodyClassOverrideComponent.BodyClassOverrideComponent = function BodyClassOverrideComponent_BodyClassOverrideComponent() {
    this._bodycssclass = String.Empty;
    BodyClassOverrideComponent.BodyClassOverrideComponent.constructBase(this);
}
BodyClassOverrideComponent.BodyClassOverrideComponent.prototype = {
    _parameters$1: null,
    
    init: function BodyClassOverrideComponent_BodyClassOverrideComponent$init(environment, componentInstanceName, domElementId, parameters) {
        BodyClassOverrideComponent.BodyClassOverrideComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._bodycssclass = parameters['body-css-class'];
        if (this._bodycssclass !== String.Empty) {
            document.body.className += ' ' + this._bodycssclass;
        }
    }
}


BodyClassOverrideComponent.BodyClassOverrideComponent.createClass('BodyClassOverrideComponent.BodyClassOverrideComponent', Framework.Component.AbstractComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('NavigationComponent');

////////////////////////////////////////////////////////////////////////////////
// NavigationComponent.NavigationComponent

NavigationComponent.NavigationComponent = function NavigationComponent_NavigationComponent() {
    NavigationComponent.NavigationComponent.constructBase(this);
}


NavigationComponent.NavigationComponent.createClass('NavigationComponent.NavigationComponent', AbstractWarpComponents.AbstractNavigationComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('BoyleSportsHeaderComponent');

////////////////////////////////////////////////////////////////////////////////
// BoyleSportsHeaderComponent.BoyleSportsHeaderComponent

BoyleSportsHeaderComponent.BoyleSportsHeaderComponent = function BoyleSportsHeaderComponent_BoyleSportsHeaderComponent() {
    BoyleSportsHeaderComponent.BoyleSportsHeaderComponent.constructBase(this);
}


BoyleSportsHeaderComponent.BoyleSportsHeaderComponent.createClass('BoyleSportsHeaderComponent.BoyleSportsHeaderComponent', BoyleSportsAbstractComponents.BoyleSportsHeaderComponent.BoyleSportsAbstractHeaderComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('AccountsDetailsComponent');

////////////////////////////////////////////////////////////////////////////////
// AccountsDetailsComponent.AccountsDetailsComponent

AccountsDetailsComponent.AccountsDetailsComponent = function AccountsDetailsComponent_AccountsDetailsComponent() {
    AccountsDetailsComponent.AccountsDetailsComponent.constructBase(this);
}
AccountsDetailsComponent.AccountsDetailsComponent.prototype = {
    _changeActionOnLogout$2: null,
    _changePageAreaOnLogout$2: null,
    _changePageFilterOnLogout$2: null,
    _webSection$2: 'SPORTSBOOK',
    
    refreshBalanceOnClickEventHandler: function AccountsDetailsComponent_AccountsDetailsComponent$refreshBalanceOnClickEventHandler(sender, eventArgs) {
        this.refreshBalance();
        window.event.returnValue = false;
    },
    
    goToEventHandler: function AccountsDetailsComponent_AccountsDetailsComponent$goToEventHandler(sender, eventArgs) {
        new NavigationService.GoToBehavior(eventArgs.domElement, null, this._navigationService$2);
    },
    
    logoutOnClickEventHandler: function AccountsDetailsComponent_AccountsDetailsComponent$logoutOnClickEventHandler(sender, eventArgs) {
        this.logout();
    },
    
    logOutAndGotoPageEventHandler: function AccountsDetailsComponent_AccountsDetailsComponent$logOutAndGotoPageEventHandler(sender, eventArgs) {
        this.logout();
        this.removeBSselections();
        this.goToPageArea(eventArgs.parameters.getAsString('pagename'));
    },
    
    logoutAndRemoveSelectionsEventHandler: function AccountsDetailsComponent_AccountsDetailsComponent$logoutAndRemoveSelectionsEventHandler(sender, eventArgs) {
        this.logout();
        this.removeBSselections();
    },
    
    _accountService$2: null,
    
    setAccountService: function AccountsDetailsComponent_AccountsDetailsComponent$setAccountService(accountService) {
        this._log.debug('SetAccountService');
        this._accountService$2 = accountService;
    },
    
    onBalanceChanged: function AccountsDetailsComponent_AccountsDetailsComponent$onBalanceChanged(eventSource) {
        this._log.debug('OnBalanceChanged');
        this.update();
    },
    
    onAccountPreferencesChanged: function AccountsDetailsComponent_AccountsDetailsComponent$onAccountPreferencesChanged(eventSource) {
        this._log.debug('OnAccountPreferencesChanged');
        this.update();
    },
    
    _navigationService$2: null,
    
    setNavigationService: function AccountsDetailsComponent_AccountsDetailsComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
    },
    
    onPageFilterChanged: function AccountsDetailsComponent_AccountsDetailsComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    _userService$2: null,
    
    setUserService: function AccountsDetailsComponent_AccountsDetailsComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    _betSlipService$2: null,
    
    setBetSlipService: function AccountsDetailsComponent_AccountsDetailsComponent$setBetSlipService(betSlipService) {
        this._log.debug('SetBetSlipService');
        this._betSlipService$2 = betSlipService;
    },
    
    init: function AccountsDetailsComponent_AccountsDetailsComponent$init(environment, componentInstanceName, domElementId, parameters) {
        this._changeActionOnLogout$2 = parameters['change-action-on-logout'];
        this._changePageAreaOnLogout$2 = parameters['change-page-area-on-logout'];
        this._changePageFilterOnLogout$2 = parameters['page-filter-on-logout'];
        this._webSection$2 = parameters['web-section'];
    },
    
    preTransformation: function AccountsDetailsComponent_AccountsDetailsComponent$preTransformation(eventArgs) {
        if (!this._accountService$2.get_accountsDetails() && this._userService$2.isLoggedIn()) {
            this._accountService$2.onUserChanged(null);
        }
    },
    
    renderComplete: function AccountsDetailsComponent_AccountsDetailsComponent$renderComplete(eventArgs) {
        this.refreshBalance();
    },
    
    get_isComponentVisible: function AccountsDetailsComponent_AccountsDetailsComponent$get_isComponentVisible() {
        return (this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction()) && this._userService$2.isLoggedIn());
    },
    
    getXsltParameters: function AccountsDetailsComponent_AccountsDetailsComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['web-section'] = this._webSection$2;
        if (this._userService$2.get_personalDetails()) {
            xsltParameters['name'] = this._userService$2.get_personalDetails().FullName;
        }
        if (this._accountService$2.get_accountsDetails()) {
            xsltParameters['trading-cache-balance'] = this._accountService$2.get_creditAccountDetails().TradingBalance.format('N', true);
            xsltParameters['account-number'] = this._accountService$2.get_creditAccountDetails().AccountNumber;
            xsltParameters['currency-symbol'] = this._accountService$2.getCurrencySimbol();
            var cashBalance = this._accountService$2.get_creditAccountDetails().WithdrawalBalance;
            xsltParameters['cash-balance'] = ((cashBalance < 0) ? '-' : '') + cashBalance.format('N2', true);
            var creditLimit = this._accountService$2.get_creditAccountDetails().TradingBalance - this._accountService$2.get_creditAccountDetails().WithdrawalBalance;
            xsltParameters['credit-limit'] = ((creditLimit < 0) ? '-' : '') + creditLimit.format('N2', true);
            var freeBalance = this._accountService$2.get_freeAccountDetails().WithdrawalBalance;
            xsltParameters['free-balance'] = ((freeBalance < 0) ? '-' : '') + freeBalance.format('N2', true);
            var availableFunds = this._accountService$2.get_creditAccountDetails().TradingBalance + this._accountService$2.get_freeAccountDetails().TradingBalance;
            xsltParameters['available-funds'] = ((availableFunds < 0) ? '-' : '') + availableFunds.format('N2', true);
            if (this._accountService$2.get_preferences()) {
                xsltParameters['is-account-balance-constantly-displayed'] = this._accountService$2.get_preferences().IsAccountBalanceConstantlyDisplayed;
                xsltParameters['is-call-centre-account-number-constantly-displayed'] = this._accountService$2.get_preferences().IsCallCentreAccountNumberConstantlyDisplayed;
            }
        }
        return xsltParameters;
    },
    
    refreshBalance: function AccountsDetailsComponent_AccountsDetailsComponent$refreshBalance() {
        this._log.debug('RefreshBalance');
        this._accountService$2.fetchAccountsDetails();
    },
    
    logout: function AccountsDetailsComponent_AccountsDetailsComponent$logout() {
        this._log.debug('Logout');
        this.disable();
        this._userService$2.logout(Delegate.create(this, function(result) {
            this.enable();
            this.changeActionOnLogout();
            this.changePageAreaOnLogout();
        }), Delegate.create(this, function(exception) {
            this.enable();
        }));
    },
    
    changeActionOnLogout: function AccountsDetailsComponent_AccountsDetailsComponent$changeActionOnLogout() {
        if (!String.isNullOrEmpty(this._changeActionOnLogout$2)) {
            var pageFilter = this._navigationService$2.getPageFilter();
            pageFilter['action'] = this._changeActionOnLogout$2;
            this._navigationService$2.setPageFilter(pageFilter);
        }
    },
    
    changePageAreaOnLogout: function AccountsDetailsComponent_AccountsDetailsComponent$changePageAreaOnLogout() {
        if (!String.isNullOrEmpty(this._changePageAreaOnLogout$2)) {
            if (!String.isNullOrEmpty(this._changePageFilterOnLogout$2)) {
                var pageFilter = {};
                var key = String.Empty;
                var value = String.Empty;
                var pageFilterConfig = this._changePageFilterOnLogout$2.split('|');
                for (var i = 0; i < pageFilterConfig.length; i++) {
                    if (i % 2 === 1) {
                        value = pageFilterConfig[i].toString();
                    }
                    else {
                        key = pageFilterConfig[i].toString();
                    }
                    pageFilter[key] = value;
                }
                this.goTo(this._changePageAreaOnLogout$2, pageFilter);
            }
            else {
                this.goTo(this._changePageAreaOnLogout$2, {});
            }
        }
    },
    
    goTo: function AccountsDetailsComponent_AccountsDetailsComponent$goTo(pageArea, pageFilter) {
        this._navigationService$2.goTo(pageArea, pageFilter);
        return false;
    },
    
    goToPageArea: function AccountsDetailsComponent_AccountsDetailsComponent$goToPageArea(pageArea) {
        var pageFilter = this._navigationService$2.getPageFilter();
        return this.goTo(pageArea, pageFilter);
    },
    
    removeBSselections: function AccountsDetailsComponent_AccountsDetailsComponent$removeBSselections() {
        this._betSlipService$2.removeAllSelections();
    }
}


AccountsDetailsComponent.AccountsDetailsComponent.createClass('AccountsDetailsComponent.AccountsDetailsComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener, AccountService.IBalanceChangedListener, AccountService.IAccountPreferencesChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('BoyleSportsLoginComponent');

////////////////////////////////////////////////////////////////////////////////
// BoyleSportsLoginComponent.BoyleSportsLoginComponent

BoyleSportsLoginComponent.BoyleSportsLoginComponent = function BoyleSportsLoginComponent_BoyleSportsLoginComponent() {
    BoyleSportsLoginComponent.BoyleSportsLoginComponent.constructBase(this);
}


BoyleSportsLoginComponent.BoyleSportsLoginComponent.createClass('BoyleSportsLoginComponent.BoyleSportsLoginComponent', BoyleSportsAbstractComponents.BoyleSportsLoginComponent.BoyleSportsAbstractLoginComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('GamesHostLoginComponent');

////////////////////////////////////////////////////////////////////////////////
// GamesHostLoginComponent.GamesHostLoginComponent

GamesHostLoginComponent.GamesHostLoginComponent = function GamesHostLoginComponent_GamesHostLoginComponent() {
    GamesHostLoginComponent.GamesHostLoginComponent.constructBase(this);
}
GamesHostLoginComponent.GamesHostLoginComponent.prototype = {
    _gamesHostService$1: null,
    _autoLogin$1: null,
    _autoLogout$1: null,
    
    setGamesHostService: function GamesHostLoginComponent_GamesHostLoginComponent$setGamesHostService(gamesHostService) {
        this._log.debug('SetGamesHostService');
        this._gamesHostService$1 = gamesHostService;
    },
    
    _userService$1: null,
    
    setUserService: function GamesHostLoginComponent_GamesHostLoginComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$1 = userService;
    },
    
    onUserChanged: function GamesHostLoginComponent_GamesHostLoginComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (this._gamesHostService$1 && this._gamesHostService$1.isLoggedIn() && this._autoLogout$1 === 'true') {
            this._gamesHostService$1.logout(Delegate.create(this, this._logoutSuccess$1), Delegate.create(this, this._logoutFailure$1));
        }
        this.repaint();
        this._refreshOpener$1();
    },
    
    init: function GamesHostLoginComponent_GamesHostLoginComponent$init(environment, componentInstanceName, domElementId, parameters) {
        GamesHostLoginComponent.GamesHostLoginComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._autoLogin$1 = (parameters['auto-login']).toLowerCase();
        this._autoLogout$1 = (parameters['auto-logout']).toLowerCase();
    },
    
    start: function GamesHostLoginComponent_GamesHostLoginComponent$start() {
        this.repaint();
    },
    
    repaint: function GamesHostLoginComponent_GamesHostLoginComponent$repaint() {
        this._log.debug('Repaint');
        if (this._userService$1 && this._gamesHostService$1) {
            if (this._userService$1.isLoggedIn()) {
                if (!this._gamesHostService$1.isLoggedIn() && this._autoLogin$1 === 'true') {
                    this._gamesHostService$1.login(Delegate.create(this, this._loginSuccess$1), Delegate.create(this, this._loginFailure$1));
                }
            }
            else {
                if (this._gamesHostService$1.isLoggedIn() && this._autoLogout$1 === 'true') {
                    this._gamesHostService$1.logout(Delegate.create(this, this._logoutSuccess$1), Delegate.create(this, this._logoutFailure$1));
                }
            }
        }
    },
    
    _refreshOpener$1: function GamesHostLoginComponent_GamesHostLoginComponent$_refreshOpener$1() {
        var opener = window.self;
        while (opener.opener) {
            opener = opener.opener;
            ((opener.location)).reload();
            if (opener) {
                if (opener.parent) {
                    ((opener.parent.location)).reload();
                }
            }
        }
    },
    
    _logoutSuccess$1: function GamesHostLoginComponent_GamesHostLoginComponent$_logoutSuccess$1(result) {
        this._log.debug('logoutSuccess');
    },
    
    _logoutFailure$1: function GamesHostLoginComponent_GamesHostLoginComponent$_logoutFailure$1(e) {
        this._log.debug('logoutFailure: ' + e.message);
    },
    
    _loginSuccess$1: function GamesHostLoginComponent_GamesHostLoginComponent$_loginSuccess$1(result) {
        this._log.debug('loginSuccess');
    },
    
    _loginFailure$1: function GamesHostLoginComponent_GamesHostLoginComponent$_loginFailure$1(e) {
        this._log.debug('loginFailure: ' + e.message);
    },
    
    repaintForAdmin: function GamesHostLoginComponent_GamesHostLoginComponent$repaintForAdmin() {
        GamesHostLoginComponent.GamesHostLoginComponent.callBase(this, 'disableForAdmin');
    }
}


GamesHostLoginComponent.GamesHostLoginComponent.createClass('GamesHostLoginComponent.GamesHostLoginComponent', Framework.Component.AbstractComponent, UserService.IUserChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('BannerContainerComponent');

////////////////////////////////////////////////////////////////////////////////
// BannerContainerComponent.BannerContainerComponent

BannerContainerComponent.BannerContainerComponent = function BannerContainerComponent_BannerContainerComponent() {
    this._nagivationSection$2 = String.Empty;
    this._bannerImagesBaseURL$2 = String.Empty;
    this._bannerCategory$2 = String.Empty;
    this._absoluteImagePrefix$2 = String.Empty;
    this._currentTimeout$2 = -1;
    BannerContainerComponent.BannerContainerComponent.constructBase(this);
}
BannerContainerComponent.BannerContainerComponent.prototype = {
    _repaintOnUserChanged$2: false,
    _repaintOnPageFilterChanged$2: false,
    _isBannerRolling$2: false,
    _IsInRunningState$2: true,
    _bannerItemCount$2: 0,
    _autoRefreshPeriod$2: null,
    _currentFrame$2: null,
    _hasRendered$2: false,
    
    setPageFilterEventHandler: function BannerContainerComponent_BannerContainerComponent$setPageFilterEventHandler(sender, eventArgs) {
        this.setPageFilter(eventArgs.parameters.getAsString('parameters').split(','));
        window.event.returnValue = false;
    },
    
    setMarketEventHandler: function BannerContainerComponent_BannerContainerComponent$setMarketEventHandler(sender, eventArgs) {
        this.setMarket(eventArgs.parameters.getAsString('idfomarket'));
        window.event.returnValue = false;
    },
    
    setBONavigationEventHandler: function BannerContainerComponent_BannerContainerComponent$setBONavigationEventHandler(sender, eventArgs) {
        this.setBONavigation(eventArgs.parameters.getAsString('idfwbonavigation'));
        window.event.returnValue = false;
    },
    
    setMarketGroupEventHandler: function BannerContainerComponent_BannerContainerComponent$setMarketGroupEventHandler(sender, eventArgs) {
        this.setMarketGroup(eventArgs.parameters.getAsString('idfwmarketgroup'));
        window.event.returnValue = false;
    },
    
    setRollingBannerParametersEventHandler: function BannerContainerComponent_BannerContainerComponent$setRollingBannerParametersEventHandler(sender, eventArgs) {
        this.setRollingBannerParameters(eventArgs.parameters.getAsNumber('banneritemcount'), eventArgs.parameters.getAsNumber('rollinginterval'));
        window.event.returnValue = false;
    },
    
    executeScriptEventHandler: function BannerContainerComponent_BannerContainerComponent$executeScriptEventHandler(sender, eventArgs) {
        try {
            eval(eventArgs.parameters.getAsString('script'));
        }
        catch (e) {
        }
        window.event.returnValue = false;
    },
    
    _userService$2: null,
    _navigationService$2: null,
    _bettingNavigationService$2: null,
    
    setNavigationService: function BannerContainerComponent_BannerContainerComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.navigationTypes);
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
    },
    
    onPageFilterChanged: function BannerContainerComponent_BannerContainerComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (this._repaintOnPageFilterChanged$2) {
            this.updateOnlyIfFirstRender();
        }
    },
    
    setUserService: function BannerContainerComponent_BannerContainerComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserChanged: function BannerContainerComponent_BannerContainerComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        this.update();
    },
    
    setBettingNavigationService: function BannerContainerComponent_BannerContainerComponent$setBettingNavigationService(bettingNavigationService) {
        this._log.debug('SetBettingNavigationService');
        this._bettingNavigationService$2 = bettingNavigationService;
    },
    
    init: function BannerContainerComponent_BannerContainerComponent$init(environment, componentInstanceName, domElementId, parameters) {
        this._repaintOnUserChanged$2 = Boolean.parse(parameters['repaint-onuserchanged']);
        this._repaintOnPageFilterChanged$2 = Boolean.parse(parameters['repaint-onpagefilterchanged']);
        this._bannerImagesBaseURL$2 = parameters['banner-images-base-url'];
        this._bannerCategory$2 = parameters['category'];
        this._absoluteImagePrefix$2 = parameters['absolute-image-prefix'];
        this._currentFrame$2 = -1;
    },
    
    renderComplete: function BannerContainerComponent_BannerContainerComponent$renderComplete(eventArgs) {
        if (this.get_isComponentVisible()) {
            if (this._isBannerRolling$2 && this._bannerItemCount$2 > 0) {
                this.runSlideShow(this._bannerItemCount$2, '');
            }
        }
        this._hasRendered$2 = true;
    },
    
    getXsltParameters: function BannerContainerComponent_BannerContainerComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['banner-images-base-url'] = this._bannerImagesBaseURL$2;
        xsltParameters['category'] = this._bannerCategory$2;
        xsltParameters['absolute-image-prefix'] = this._absoluteImagePrefix$2;
        xsltParameters['is-user-logged'] = this._userService$2.isLoggedIn();
        return xsltParameters;
    },
    
    get_isComponentVisible: function BannerContainerComponent_BannerContainerComponent$get_isComponentVisible() {
        var navtypes = null;
        if (this._bettingNavigationService$2.getNavigationTypes()) {
            navtypes = this._bettingNavigationService$2.getNavigationTypes().split(',');
        }
        return ((this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction())) && this.isNavigationTypesInAValidCombination(navtypes));
    },
    
    setPageFilter: function BannerContainerComponent_BannerContainerComponent$setPageFilter(internalParams) {
        if (internalParams.length > 1) {
            var action = internalParams[0].toString();
            var area = internalParams[1].toString();
            var pageFilter = {};
            pageFilter['action'] = action;
            this._log.debug('SetPageFilter');
            this._navigationService$2.goTo(area, pageFilter);
            return false;
        }
        return false;
    },
    
    setMarket: function BannerContainerComponent_BannerContainerComponent$setMarket(IDFOMarket) {
        this._log.debug(String.format('SetMarketEntry=[{0}]', IDFOMarket));
        this._bettingNavigationService$2.setMarketFromEvent(IDFOMarket);
    },
    
    setBONavigation: function BannerContainerComponent_BannerContainerComponent$setBONavigation(IDFWBONavigation) {
        this._log.debug(String.format('SetBONavigation=[{0}]', IDFWBONavigation));
        this._bettingNavigationService$2.setBONavigation(0, IDFWBONavigation);
    },
    
    setMarketGroup: function BannerContainerComponent_BannerContainerComponent$setMarketGroup(IDFWMarketGroup) {
        this._log.debug(String.format('SetMarketGroup IDFWMarketGroup=[{0}]', IDFWMarketGroup));
        this._bettingNavigationService$2.setMarketGroup(0, IDFWMarketGroup);
    },
    
    setRollingBannerParameters: function BannerContainerComponent_BannerContainerComponent$setRollingBannerParameters(banneritemcount, rollinginterval) {
        this._isBannerRolling$2 = true;
        this._bannerItemCount$2 = banneritemcount;
        this._autoRefreshPeriod$2 = rollinginterval * 1000;
    },
    
    runSlideShow: function BannerContainerComponent_BannerContainerComponent$runSlideShow(banners, action) {
        if (this.get_isComponentVisible()) {
            this._clearTimeout$2();
            this._calculateNextFrame$2(banners);
            this._renderUI$2(banners, this._currentFrame$2);
            if (this._IsInRunningState$2) {
                this._currentTimeout$2 = window.setTimeout(Delegate.create(this, function() {
                    this.runSlideShow(banners, '');
                }), this._autoRefreshPeriod$2);
            }
        }
    },
    
    _calculateNextFrame$2: function BannerContainerComponent_BannerContainerComponent$_calculateNextFrame$2(banners) {
        this._currentFrame$2++;
        if (this._currentFrame$2 >= banners) {
            this._currentFrame$2 = 0;
        }
    },
    
    _clearTimeout$2: function BannerContainerComponent_BannerContainerComponent$_clearTimeout$2() {
        if (this._currentTimeout$2 !== -1) {
            window.clearTimeout(this._currentTimeout$2);
        }
    },
    
    _renderUI$2: function BannerContainerComponent_BannerContainerComponent$_renderUI$2(banners, active) {
        for (var i = 0; i < banners; i++) {
            this.getPrivateDomElement(i.toString()).style.display = ((i === active) ? 'block' : 'none');
        }
    },
    
    updateOnlyIfFirstRender: function BannerContainerComponent_BannerContainerComponent$updateOnlyIfFirstRender() {
        if (!this._hasRendered$2) {
            this.update();
        }
        else {
            if (this.get_isComponentVisible()) {
                this.show();
            }
            else {
                this.hide();
            }
        }
    }
}


BannerContainerComponent.BannerContainerComponent.createClass('BannerContainerComponent.BannerContainerComponent', Framework.Component.AbstractXsltBasedComponent, UserService.IUserChangedListener, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('BoyleSportsRegistrationComponent');

////////////////////////////////////////////////////////////////////////////////
// BoyleSportsRegistrationComponent.BoyleSportsRegistrationComponent

BoyleSportsRegistrationComponent.BoyleSportsRegistrationComponent = function BoyleSportsRegistrationComponent_BoyleSportsRegistrationComponent() {
    BoyleSportsRegistrationComponent.BoyleSportsRegistrationComponent.constructBase(this);
}
BoyleSportsRegistrationComponent.BoyleSportsRegistrationComponent.prototype = {
    
    setPaymentTransactionComponentsParams: function BoyleSportsRegistrationComponent_BoyleSportsRegistrationComponent$setPaymentTransactionComponentsParams(paymentTransactionComponentID, registerCardComponentID, registerBankTransferComponentID) {
        (this.getDynamicChildByInstanceName(paymentTransactionComponentID)).setRegistrationComponentsID(registerCardComponentID, registerBankTransferComponentID);
    },
    
    registerPayment: function BoyleSportsRegistrationComponent_BoyleSportsRegistrationComponent$registerPayment() {
        var selectedValue = (this._environment.getDomElement(this._paymentTransactionComponentID + '-paymentmethod')).value.toLowerCase();
        if (selectedValue === 'creditcard') {
            if ((this.getDynamicChildByInstanceName(this._registerCardComponentID))._validationManager.validateAll()) {
                (this.getDynamicChildByInstanceName(this._registerCardComponentID)).registerCardEventHandler(null, null);
            }
        }
        else if (selectedValue === 'banktransfer') {
            if ((this.getDynamicChildByInstanceName(this._registerBankTransferComponentID))._validationManager.validateAll()) {
                (this.getDynamicChildByInstanceName(this._registerBankTransferComponentID)).registerBankTransferEventHandler(null, null);
            }
        }
        else if (selectedValue === 'moneybookers') {
            (this.getDynamicChildByInstanceName(this._paymentTransactionComponentID)).registerRedirectBasedWallet('Moneybookers', this._DepositAfterRegistration);
        }
        else if (this._navigateAfterRegistration) {
            var filter = {};
            filter['action'] = this._navigateAfterRegistrationAction;
            this._navigationService.forwardTo(this._navigateAfterRegistrationPageArea, filter);
            window.event.returnValue = false;
        }
    },
    
    createPaymentTransactionDynamicComponent: function BoyleSportsRegistrationComponent_BoyleSportsRegistrationComponent$createPaymentTransactionDynamicComponent(domElement, parameters) {
        var componentID = this.createDynamicComponent(BoyleSportsPaymentTransactionComponent.BoyleSportsPaymentTransactionComponent, domElement, true);
        var component = (this.getDynamicChildByInstanceName(componentID));
        component.setMessageElementID(this._domElementId + '-help');
        return componentID;
    },
    
    createRegisterBankTransferDynamicComponent: function BoyleSportsRegistrationComponent_BoyleSportsRegistrationComponent$createRegisterBankTransferDynamicComponent(domElement, parameters) {
        var componentID = this.createDynamicComponent(RegisterBankTransferComponent.RegisterBankTransferComponent, domElement, true);
        var component = (this.getDynamicChildByInstanceName(componentID));
        component.setMessageElementID(this._domElementId + '-help');
        component.registerValidatorsEx();
        return componentID;
    },
    
    createRegisterCardDynamicComponent: function BoyleSportsRegistrationComponent_BoyleSportsRegistrationComponent$createRegisterCardDynamicComponent(domElement, parameters) {
        var componentID = this.createDynamicComponent(RegisterCardComponent.RegisterCardComponent, domElement, true);
        var component = (this.getDynamicChildByInstanceName(componentID));
        component.setMessageElementID(this._domElementId + '-help');
        component.registerCardDataValidators();
        return componentID;
    }
}


BoyleSportsRegistrationComponent.BoyleSportsRegistrationComponent.createClass('BoyleSportsRegistrationComponent.BoyleSportsRegistrationComponent', BoyleSportsAbstractComponents.BoyleSportsRegistrationComponent.BoyleSportsAbstractRegistrationComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('UpgradeCallCentreCustomerComponent');

////////////////////////////////////////////////////////////////////////////////
// UpgradeCallCentreCustomerComponent.UpgradeCallCentreCustomerComponent

UpgradeCallCentreCustomerComponent.UpgradeCallCentreCustomerComponent = function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent() {
    UpgradeCallCentreCustomerComponent.UpgradeCallCentreCustomerComponent.constructBase(this);
}
UpgradeCallCentreCustomerComponent.UpgradeCallCentreCustomerComponent.prototype = {
    _navigationService$2: null,
    _userService$2: null,
    
    setNavigationService: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
    },
    
    onPageFilterChanged: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    setUserService: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserChanged: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (!this._userService$2.isLoggedIn()) {
            this._environment.updateDomElement(this._domElementId, '');
        }
    },
    
    init: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$init(environment, componentInstanceName, domElementId, parameters) {
        this._area = [ 'start', 'successfull', 'failed' ];
    },
    
    get_isComponentVisible: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    upgradeCallCentreCustomerEventHandler: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$upgradeCallCentreCustomerEventHandler(sender, eventArgs) {
        var upgradeCallCentreCustomerDetails = new UserService.UpgradeCallCentreCustomerDetails(Framework.FormUtil.getFormAsDictionary(this._domElementId + '-form', this._domElementId + '-'));
        this._log.debug(String.format('UpgradeCallCentreCustomerComponent.UpgradeCallCentreCustomer upgradeCallCentreCustomerDetails=[{0}]', upgradeCallCentreCustomerDetails.toString()));
        this.disable();
        document.getElementById(this._domElementId).style.cursor = 'wait';
        upgradeCallCentreCustomerDetails.IsNoCorrespondence = !upgradeCallCentreCustomerDetails.IsNoCorrespondence;
        upgradeCallCentreCustomerDetails.DateOfBirth = String.format('{0}-{1}-{2} 0-0-0', (this.getPrivateDomElement('DateOfBirthDay')).value, (this.getPrivateDomElement('DateOfBirthMonth')).value, (this.getPrivateDomElement('DateOfBirthYear')).value);
        this._userService$2.upgradeCallCentreCustomer(Delegate.create(this, function(result) {
            this.activateArea(1, Framework.Component.AbstractComponent.noMessages);
            this.enable();
            this._userService$2.login(null, Delegate.create(this, this._failed$2), upgradeCallCentreCustomerDetails.UserName, upgradeCallCentreCustomerDetails.Password);
        }), Delegate.create(this, this._failed$2), upgradeCallCentreCustomerDetails);
    },
    
    cancelEventHandler: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$cancelEventHandler(sender, eventArgs) {
        this._navigationService$2.goBack();
    },
    
    navigateToStatementEventHandler: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$navigateToStatementEventHandler(sender, eventArgs) {
        var pageFilter = this._navigationService$2.getPageFilter();
        pageFilter['action'] = 'statement';
        this._navigationService$2.goTo(this._navigationService$2.getPageArea(), pageFilter);
        this.update();
    },
    
    navigateToDepositFundsEventHandler: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$navigateToDepositFundsEventHandler(sender, eventArgs) {
        var pageFilter = this._navigationService$2.getPageFilter();
        pageFilter['action'] = 'payment-transaction';
        pageFilter['is-deposit'] = 'true';
        this._navigationService$2.goTo(this._navigationService$2.getPageArea(), pageFilter);
    },
    
    navigateToContinueBettingEventHandler: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$navigateToContinueBettingEventHandler(sender, eventArgs) {
        var pageFilter = this._navigationService$2.getPageFilter();
        pageFilter['action'] = '';
        this._navigationService$2.goTo(this._navigationService$2.getPageArea(), pageFilter);
    },
    
    _failed$2: function UpgradeCallCentreCustomerComponent_UpgradeCallCentreCustomerComponent$_failed$2(exception) {
        var errorMessage = Framework.ExceptionUtil.getExceptionDetails(exception).get_message();
        if (!errorMessage) {
            errorMessage = 'Internal error, please contact customer support';
        }
        this.updatePrivateDomElement('message', errorMessage);
        this.enable();
        this._environment.getDomElement(this._domElementId).style.cursor = 'default';
        this.activateArea(2, Framework.Component.AbstractComponent.noMessages);
    }
}


UpgradeCallCentreCustomerComponent.UpgradeCallCentreCustomerComponent.createClass('UpgradeCallCentreCustomerComponent.UpgradeCallCentreCustomerComponent', Framework.Component.AbstractXsltBasedComponent, UserService.IUserChangedListener, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PopupContainerComponent');

////////////////////////////////////////////////////////////////////////////////
// PopupContainerComponent.PopupContainerComponent

PopupContainerComponent.PopupContainerComponent = function PopupContainerComponent_PopupContainerComponent() {
    PopupContainerComponent.PopupContainerComponent.constructBase(this);
}
PopupContainerComponent.PopupContainerComponent.prototype = {
    _navigationService: null,
    _parameters: null,
    _params: null,
    
    init: function PopupContainerComponent_PopupContainerComponent$init(environment, componentInstanceName, domElementId, parameters) {
        PopupContainerComponent.PopupContainerComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters = parameters;
        this._parameters['component-dom-element-id'] = domElementId;
        this._params = new Framework.CommonComponentParameters(this._parameters);
    },
    
    get_isTransparentLayerCreated: function PopupContainerComponent_PopupContainerComponent$get_isTransparentLayerCreated() {
        var element = this._environment.getDomElement(this.get_domElementId() + '-shadow');
        return (element);
    },
    
    start: function PopupContainerComponent_PopupContainerComponent$start() {
        if (this.isVisible(this._params.get_visibleOn(), this._params.get_notVisibleOn(), this._navigationService.getAction())) {
            this.show();
            var html = String.format('<div id =\"{0}\" class=\"popupcontent\"></div>', this.get_domElementId() + '-popupcontent');
            this._environment.updateDomElement(this._domElementId, html);
            this.startAllChildren();
        }
        else {
            this.hide();
        }
    },
    
    startAllChildren: function PopupContainerComponent_PopupContainerComponent$startAllChildren() {
        if (!this.get_children() || this.get_children().length < 1) {
            return;
        }
        var domElementId;
        for (var index = 0; index < this.get_children().length; index++) {
            domElementId = this.get_children()[index].get_domElementId();
            this.repaintChild(this.get_children()[index], this.get_children()[index].get_domElementId());
        }
    },
    
    repaintChild: function PopupContainerComponent_PopupContainerComponent$repaintChild(child, _domElementId) {
        this._log.debug('RepaintChild');
        var element = document.createElement('DIV');
        element.id = _domElementId;
        element = this._environment.getDomElement(this.get_domElementId() + '-popupcontent').appendChild(element);
        child.set_domElementId(_domElementId);
        if (!String.isNullOrEmpty(child.get_cssClass())) {
            element.className = child.get_cssClass();
        }
        var manager = child.get_componentLifeCycleManager();
        manager.start();
    },
    
    show: function PopupContainerComponent_PopupContainerComponent$show() {
        if (!this.get_isTransparentLayerCreated()) {
            var shadow = document.createElement('DIV');
            shadow.className = 'shadow';
            shadow.id = this.get_domElementId() + '-shadow';
            document.body.appendChild(shadow);
        }
        else {
            var element = this._environment.getDomElement(this.get_domElementId() + '-shadow');
            element.className = 'shadow';
        }
        PopupContainerComponent.PopupContainerComponent.callBase(this, 'show');
    },
    
    hide: function PopupContainerComponent_PopupContainerComponent$hide() {
        if (this.get_isTransparentLayerCreated()) {
            var element = this._environment.getDomElement(this.get_domElementId() + '-shadow');
            element.className = '';
        }
        PopupContainerComponent.PopupContainerComponent.callBase(this, 'hide');
    },
    
    onPageFilterChanged: function PopupContainerComponent_PopupContainerComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.start();
    },
    
    setNavigationService: function PopupContainerComponent_PopupContainerComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService = navigationService;
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
    },
    
    _userService: null,
    
    setUserService: function PopupContainerComponent_PopupContainerComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService = userService;
    },
    
    onUserChanged: function PopupContainerComponent_PopupContainerComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        this.hide();
    },
    
    childComponentUpdateComplete: function PopupContainerComponent_PopupContainerComponent$childComponentUpdateComplete(eventArgs) {
        PopupContainerComponent.PopupContainerComponent.callBase(this, 'childComponentUpdateComplete', [ eventArgs ]);
    }
}


PopupContainerComponent.PopupContainerComponent.createClass('PopupContainerComponent.PopupContainerComponent', Framework.Component.AbstractComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('IncludeComponent');

////////////////////////////////////////////////////////////////////////////////
// IncludeComponent.IncludeComponent

IncludeComponent.IncludeComponent = function IncludeComponent_IncludeComponent() {
    IncludeComponent.IncludeComponent.constructBase(this);
}
IncludeComponent.IncludeComponent.prototype = {
    _parameters$1: null,
    _repaintOnFilterChanged$1: true,
    _navigationService$1: null,
    
    setNavigationService: function IncludeComponent_IncludeComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$1 = navigationService;
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.page);
    },
    
    onPageFilterChanged: function IncludeComponent_IncludeComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (this._repaintOnFilterChanged$1) {
            this.repaint();
        }
    },
    
    init: function IncludeComponent_IncludeComponent$init(environment, componentInstanceName, domElementId, parameters) {
        IncludeComponent.IncludeComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        if (Object.keyExists(parameters, 'repaint-on-filter-changed')) {
            this._repaintOnFilterChanged$1 = Boolean.parse(parameters['repaint-on-filter-changed']);
        }
    },
    
    start: function IncludeComponent_IncludeComponent$start() {
        this.repaint();
    },
    
    repaint: function IncludeComponent_IncludeComponent$repaint() {
        this._log.debug('Repaint');
        if (this.isVisible(this._parameters$1.get_visibleOn(), this._parameters$1.get_notVisibleOn(), this._navigationService$1.getAction())) {
            this.show();
            var contentUrl = this._parameters$1.get_contentUrl().replace('${region}', this._environment.getRegion()).replace('${language}', this._environment.getLanguage());
            var page = this._navigationService$1.getPageFilter()[NavigationService.NavigationService.page];
            if (!String.isNullOrEmpty(page)) {
                contentUrl = contentUrl.replace('${page}', page);
            }
            var ajaxUpdater = new Framework.AjaxUpdater(this._domElementId, contentUrl, null, null);
            ajaxUpdater.update();
        }
        else {
            this.hide();
        }
    }
}


IncludeComponent.IncludeComponent.createClass('IncludeComponent.IncludeComponent', Framework.Component.AbstractComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('BoyleSportsBettingAccessComponent');

////////////////////////////////////////////////////////////////////////////////
// BoyleSportsBettingAccessComponent.BoyleSportsBettingAccessComponent

BoyleSportsBettingAccessComponent.BoyleSportsBettingAccessComponent = function BoyleSportsBettingAccessComponent_BoyleSportsBettingAccessComponent() {
    BoyleSportsBettingAccessComponent.BoyleSportsBettingAccessComponent.constructBase(this);
}
BoyleSportsBettingAccessComponent.BoyleSportsBettingAccessComponent.prototype = {
    _parameters$1: null,
    _repaintOnUserChanged$1: false,
    _displayDependingUserLoggedin$1: '',
    _xslt_url$1: null,
    _result_xslt_url$1: null,
    _xml_url$1: null,
    _proxy_url$1: null,
	
    _userService$1: null,

    setUserService: function BoyleSportsBettingAccessComponent_BoyleSportsBettingAccessComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$1 = userService;
    },

    onUserChanged: function BoyleSportsBettingAccessComponent_BoyleSportsBettingAccessComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (this._repaintOnUserChanged$1) {
            this.repaint();
        }
    },

    init: function BoyleSportsBettingAccessComponent_BoyleSportsBettingAccessComponent$init(environment, componentInstanceName, domElementId, parameters) {
        BoyleSportsBettingAccessComponent.BoyleSportsBettingAccessComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._repaintOnUserChanged$1 = Boolean.parse(parameters['repaint-onuserchanged']);
        this._displayDependingUserLoggedin$1 = parameters['display-depending-user-loggedin'];

		this._xslt_url$1 = parameters['xslt-url'];
		this._result_xslt_url$1 = parameters['result-xslt-url'];
        this._xml_url$1 = parameters['xml-url'];
		this._proxy_url$1 = parameters['proxy-url'];
    },

    repaint: function BoyleSportsBettingAccessComponent_BoyleSportsBettingAccessComponent$repaint() {
		this._log.debug('Repaint');
		var _toShow = true;
		_toShow = _toShow && (this.isVisible(this._parameters$1.get_visibleOn(), this._parameters$1.get_notVisibleOn()));
		if (this._displayDependingUserLoggedin$1 === 'loggedin') {
			_toShow = _toShow && (this._userService$1.isLoggedIn());
		}
		if (this._displayDependingUserLoggedin$1 === 'notloggedin') {
			_toShow = _toShow && (!this._userService$1.isLoggedIn());
		}
		if (_toShow) {
			this.show();
			var that = this;

			var xsltParams = {};
			xsltParams['component-instance-name'] = this._componentInstanceName;
			xsltParams['compElementId'] = this._domElementId;
			this._environment.transformAndUpdate(this._domElementId, this._xml_url$1, this._xslt_url$1, xsltParams, Delegate.create(this, function() {
				this.loadCaptcha();

				var formElement = this.getPrivateDomElement('form');
				formElement.onsubmit = function() {
					that.submitForm();
					return false;
				}

				var submitElement = this.getPrivateDomElement('submit');
				submitElement.onclick = function() {
					that.submitForm();
					return false;
				}

				var backElement = this.getPrivateDomElement('back-button');
				backElement.onclick = function() {
					that.getPrivateDomElement('message').style.display = 'none';
					this.style.display = 'none';
					return false;
				}
			}));
		}
		else {
			this.hide();
		}
    },

	loadCaptcha: function BoyleSportsBettingAccessComponent_BoyleSportsBettingAccessComponent$loadCaptcha() {
		var xsltParamsCaptcha = {};
		xsltParamsCaptcha['component-instance-name'] = this._componentInstanceName;
		xsltParamsCaptcha['compElementId'] = this._domElementId;
		this._environment.transformAndUpdate(this.getPrivateDomElement('captcha-placeholder').getAttribute('id'), '/captcha/captcha.aspx?action=reserve_code', 'components/BoyleSportsBettingAccessComponent/captcha.xslt', xsltParamsCaptcha, Delegate.create(this, function() {
			this.getPrivateDomElement('field-captcha').value = '';
			this.getPrivateDomElement('captcha-placeholder').style.display = '';
			this.getPrivateDomElement('captcha-loading').style.display = 'none';
		}));
	},

	submitForm: function BoyleSportsBettingAccessComponent_BoyleSportsBettingAccessComponent$submitForm() {

		var captchaIdentifier = this.getPrivateDomElement('captcha-identifier').value;
		var captcha = this.getPrivateDomElement('field-captcha').value;
		var codeElement = this.getPrivateDomElement('field-country');
		var code = codeElement.options[codeElement.options.selectedIndex].value;
		var number = this.getPrivateDomElement('field-number').value;
		if (number.substr(0, 1) == '0') {
			number = number.substr(1);
		}
		//var remoteUrl = 'http://downloadd.mfuse.com/register/web/bsb/'; //447875362440';
		//remoteUrl += code;
		//remoteUrl += number;

		this.getPrivateDomElement('message').style.display = '';
		this.getPrivateDomElement('message').className = 'result-message message-loading';
		this.getPrivateDomElement('back-button').style.display = '';

		var xsltParams = {};
		xsltParams['component-instance-name'] = this._componentInstanceName;
		xsltParams['compElementId'] = this._domElementId;

		this._environment.transformAndUpdate(
			this.getPrivateDomElement('message').getAttribute('id'),
			'components/BoyleSportsBettingAccessComponent/bettingaccess.aspx'
				+ '?captchaid=' + escape(captchaIdentifier)
				+ '&captcha=' + escape(captcha)
				+ '&code=' + escape(code)
				+ '&number=' + escape(number)
			,
			this._result_xslt_url$1, xsltParams,
			Delegate.create(this, function(){
				this.getPrivateDomElement('message').className = 'result-message';

				this.loadCaptcha();
			})
		);
	}
}


BoyleSportsBettingAccessComponent.BoyleSportsBettingAccessComponent.createClass('BoyleSportsBettingAccessComponent.BoyleSportsBettingAccessComponent', Framework.AbstractComponent, UserService.IUserChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('LoginSensitiveIncludeComponent');

////////////////////////////////////////////////////////////////////////////////
// LoginSensitiveIncludeComponent.LoginSensitiveIncludeComponent

LoginSensitiveIncludeComponent.LoginSensitiveIncludeComponent = function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent() {
    LoginSensitiveIncludeComponent.LoginSensitiveIncludeComponent.constructBase(this);
}
LoginSensitiveIncludeComponent.LoginSensitiveIncludeComponent.prototype = {
    _parameters$1: null,
    _repaintOnUserChanged$1: false,
    _repaintOnPageFilterChanged$1: false,
    _protocol$1: 'http://',
    _displayDependingUserLoggedin$1: '',
    _contentUrl$1: '../../.html/template_${region}_${language}/${page}.html',
    _navigationService$1: null,
    
    setNavigationService: function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$1 = navigationService;
    },
    
    onPageFilterChanged: function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (this._repaintOnPageFilterChanged$1) {
            this.repaint();
        }
    },
    
    _userService$1: null,
    
    setUserService: function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$1 = userService;
    },
    
    onUserChanged: function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (this._repaintOnUserChanged$1) {
            this.repaint();
        }
    },
    
    init: function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent$init(environment, componentInstanceName, domElementId, parameters) {
        LoginSensitiveIncludeComponent.LoginSensitiveIncludeComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._repaintOnUserChanged$1 = Boolean.parse(parameters['repaint-onuserchanged']);
        this._repaintOnPageFilterChanged$1 = Boolean.parse(parameters['repaint-onpagefilterchanged']);
        this._protocol$1 = parameters['protocol'];
        this._displayDependingUserLoggedin$1 = parameters['display-depending-user-loggedin'];
        this._contentUrl$1 = parameters['content-url'];
    },
    
    start: function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent$start() {
        this.repaint();
    },
    
    repaint: function LoginSensitiveIncludeComponent_LoginSensitiveIncludeComponent$repaint() {
        this._log.debug('Repaint');
        var _toShow = true;
        _toShow = _toShow && (this.isVisible(this._parameters$1.get_visibleOn(), this._parameters$1.get_notVisibleOn(), this._navigationService$1.getAction()));
        if (this._displayDependingUserLoggedin$1 === 'loggedin') {
            _toShow = _toShow && (this._userService$1.isLoggedIn());
        }
        if (this._displayDependingUserLoggedin$1 === 'notloggedin') {
            _toShow = _toShow && (!this._userService$1.isLoggedIn());
        }
        if (_toShow) {
            this.show();
            var contentUrl = this._parameters$1.get_contentUrl().replace('${region}', this._environment.getRegion()).replace('${language}', this._environment.getLanguage());
            var page = this._navigationService$1.getPageFilter()[NavigationService.NavigationService.page];
            if (!String.isNullOrEmpty(page)) {
                contentUrl = contentUrl.replace('${page}', page);
            }
            var ajaxUpdater = new Framework.AjaxUpdater(this._domElementId, contentUrl, null, null);
            ajaxUpdater.update();
        }
        else {
            this.hide();
        }
    }
}


LoginSensitiveIncludeComponent.LoginSensitiveIncludeComponent.createClass('LoginSensitiveIncludeComponent.LoginSensitiveIncludeComponent', Framework.Component.AbstractComponent, UserService.IUserChangedListener, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
// BoyleSportsTabbedHeadlineComponent.js
//


Type.createNamespace('BoyleSportsTabbedHeadlineComponent');

////////////////////////////////////////////////////////////////////////////////
// BoyleSportsTabbedHeadlineComponent.BoyleSportsTabbedHeadlineComponent

BoyleSportsTabbedHeadlineComponent.BoyleSportsTabbedHeadlineComponent = function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent() {
    BoyleSportsTabbedHeadlineComponent.BoyleSportsTabbedHeadlineComponent.constructBase(this);
}
BoyleSportsTabbedHeadlineComponent.BoyleSportsTabbedHeadlineComponent.prototype = {
    _parameters$1: null,
    _repaintOnUserChanged$1: false,
    _displayDependingUserLoggedin$1: '',
    _xslt_url$1: null,
    _xml_url$1: null,
    _header_text$1: null,
    _category$1: null,
    _headline_limit$1: null,
    _headline_word_limit$1: 0,
    _headline_images_base_url$1: null,
    _child_titles$1: null,
    _headlines_first$1: 0,
    _userService$1: null,
    
    setUserService: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$1 = userService;
    },
    
    onUserChanged: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (this._repaintOnUserChanged$1) {
            this.repaint();
        }
    },
    
    init: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$init(environment, componentInstanceName, domElementId, parameters) {
        BoyleSportsTabbedHeadlineComponent.BoyleSportsTabbedHeadlineComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._repaintOnUserChanged$1 = Boolean.parse(parameters['repaint-onuserchanged']);
        this._displayDependingUserLoggedin$1 = parameters['display-depending-user-loggedin'];
        this._xslt_url$1 = parameters['xslt-url'];
        this._xml_url$1 = parameters['xml-url'];
        this._header_text$1 = parameters['header-text'];
        this._category$1 = parameters['category'];
        this._headline_limit$1 = parameters['headline-limit'];
        this._headline_word_limit$1 = parameters['headline-word-limit'];
        this._headline_images_base_url$1 = parameters['headline-images-base-url'];
        this._child_titles$1 = (parameters['child-titles']).split(',');
        this._headlines_first$1 = parameters['headlines-first'];
    },
    
    repaint: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$repaint() {
        this._log.debug('Repaint');
        var showComponent = true;
        if (this._displayDependingUserLoggedin$1 === 'loggedin') {
            showComponent = showComponent && (this._userService$1.isLoggedIn());
        }
        else if (this._displayDependingUserLoggedin$1 === 'notloggedin') {
            showComponent = showComponent && (!this._userService$1.isLoggedIn());
        }
        if (!showComponent) {
            this.hide();
            return;
        }
        else {
            this.show();
        }
        var xsltParams = {};
        xsltParams['component-instance-name'] = this._componentInstanceName;
        xsltParams['compElementId'] = this._domElementId;
        xsltParams['header-text'] = this._header_text$1;
        xsltParams['headline-limit'] = this._headline_limit$1;
        xsltParams['headline-images-base-url'] = this._headline_images_base_url$1;
        xsltParams['child-titles'] = this._child_titles$1.join(',');
        xsltParams['child-titles-count'] = ((xsltParams['child-titles'] !== '') ? this._child_titles$1.length : 0);
        xsltParams['headlines-first'] = this._headlines_first$1;
        var xml_url = this._xml_url$1.replace('${limit}', this._headline_limit$1).replace('${category}', this._category$1);
        xsltParams['xml-url'] = xml_url;
        this._environment.transformAndUpdate(this._domElementId, xml_url, this._xslt_url$1, xsltParams, Delegate.create(this, function() {
            var headerContainer = this.getPrivateDomElement('header');
            if (!isNullOrUndefined(headerContainer)) {
                headerContainer.attachEvent('onclick', Delegate.create(this, function() {
                    this._toggleContent$1();
                }));
            }
            var tabPosition = 1;
            var tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
            while (!isNullOrUndefined(tabHeaderElement)) {
                tabHeaderElement.attachEvent('onclick', Delegate.create(this, function() {
                    window.event.returnValue = false;
                    var targetElement = window.event.srcElement;
                    while (!isNullOrUndefined(targetElement)) {
                        if (targetElement.tagName === 'LI') {
                            break;
                        }
                        targetElement = targetElement.parentNode;
                    }
                    if (isNullOrUndefined(targetElement)) {
                        return;
                    }
                    tabPosition = 1;
                    tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
                    while (!isNullOrUndefined(tabHeaderElement)) {
                        if (tabHeaderElement === targetElement) {
                            this._showTab$1(tabPosition);
                        }
                        else if (this._tabVisible$1(tabPosition)) {
                            this._hideTab$1(tabPosition);
                        }
                        tabPosition++;
                        tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
                    }
                }));
                if (!this._tabVisible$1(tabPosition)) {
                    this._hideTab$1(tabPosition);
                }
                else {
                    this._showTab$1(tabPosition);
                }
                var itemContent = this.getPrivateDomElement('tab' + tabPosition + '-content-body-content');
                if (!isNullOrUndefined(itemContent)) {
                    var content = itemContent.innerHTML;
                    content = this._trimTextUsingWords$1(content, this._headline_word_limit$1, '...');
                    itemContent.innerHTML = content;
                }
                tabPosition++;
                tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
            }
        }));
    },
    
    _toggleContent$1: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$_toggleContent$1() {
        var headerContainer = this.getPrivateDomElement('header');
        var contentContainer = this.getPrivateDomElement('content');
        var footerContainer = this.getPrivateDomElement('footer');
        if (contentContainer.style.display === 'none') {
            if (!isNullOrUndefined(headerContainer)) {
                this._environment.safelyRemoveCssClass(String.format('{0}-header', this._domElementId), 'tab-header-collapsed');
            }
            if (!isNullOrUndefined(contentContainer)) {
                contentContainer.style.display = '';
            }
            if (!isNullOrUndefined(footerContainer)) {
                footerContainer.style.display = '';
            }
        }
        else {
            if (!isNullOrUndefined(headerContainer)) {
                this._environment.safelySetCssClass(String.format('{0}-header', this._domElementId), 'tab-header-collapsed');
            }
            if (!isNullOrUndefined(contentContainer)) {
                contentContainer.style.display = 'none';
            }
            if (!isNullOrUndefined(footerContainer)) {
                footerContainer.style.display = 'none';
            }
        }
    },
    
    _trimTextUsingWords$1: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$_trimTextUsingWords$1(text, wordLimit, suffix) {
        var words = text.split(new RegExp('\\s+'));
        if (words.length > wordLimit) {
            return words.extract(0, wordLimit).join(' ') + suffix;
        }
        return text;
    },
    
    _showTab$1: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$_showTab$1(tabPosition) {
        var tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
        var tabiconsElement = this.getPrivateDomElement('tab' + tabPosition + '-tabicons');
        var contentElement = this.getPrivateDomElement('tab' + tabPosition + '-content');
        if (!isNullOrUndefined(tabHeaderElement)) {
            ScriptFX.UI.Element.addCSSClass(tabHeaderElement, 'current');
            if (ScriptFX.UI.Element.containsCSSClass(tabHeaderElement, 'tab-child')) {
                ScriptFX.UI.Element.addCSSClass(tabHeaderElement, 'tab-child-current');
            }
        }
        if (!isNullOrUndefined(tabiconsElement)) {
            tabiconsElement.style.display = '';
        }
        if (!isNullOrUndefined(contentElement)) {
            contentElement.style.display = '';
        }
        if (ScriptFX.UI.Element.containsCSSClass(tabHeaderElement, 'tab-child')) {
            this._loadTabChild$1(tabPosition);
        }
    },
    
    _hideTab$1: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$_hideTab$1(tabPosition) {
        var tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
        var tabiconsElement = this.getPrivateDomElement('tab' + tabPosition + '-tabicons');
        var contentElement = this.getPrivateDomElement('tab' + tabPosition + '-content');
        if (!isNullOrUndefined(tabHeaderElement)) {
            ScriptFX.UI.Element.removeCSSClass(tabHeaderElement, 'current');
            ScriptFX.UI.Element.removeCSSClass(tabHeaderElement, 'tab-child-current');
        }
        if (!isNullOrUndefined(tabiconsElement)) {
            tabiconsElement.style.display = 'none';
        }
        if (!isNullOrUndefined(contentElement)) {
            contentElement.style.display = 'none';
        }
    },
    
    _tabVisible$1: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$_tabVisible$1(tabPosition) {
        var tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
        if (!isNullOrUndefined(tabHeaderElement)) {
            if (ScriptFX.UI.Element.containsCSSClass(tabHeaderElement, 'current')) {
                return true;
            }
        }
        return false;
    },
    
    _loadTabChild$1: function BoyleSportsTabbedHeadlineComponent_BoyleSportsTabbedHeadlineComponent$_loadTabChild$1(tabPosition) {
        var tabHeaderElement = this.getPrivateDomElement('tab' + tabPosition);
        if (isNullOrUndefined(tabHeaderElement)) {
            return;
        }
        if (ScriptFX.UI.Element.containsCSSClass(tabHeaderElement, 'tab-child-loaded')) {
            return;
        }
        var childNumber = (tabHeaderElement.getAttribute('child-number')) - 1;
        var childComponent = this.get_children()[childNumber];
        var childElementId = childComponent.get_domElementId();
        var childElement = document.createElement('DIV');
        childElement.id = childElementId;
        childElement = this.getPrivateDomElement('tab' + tabPosition + '-content-child').appendChild(childElement);
        childComponent.set_domElementId(childElementId);
        if (!String.isNullOrEmpty(childComponent.get_cssClass())) {
            childElement.className = childComponent.get_cssClass();
        }
        childComponent.start();
        ScriptFX.UI.Element.addCSSClass(tabHeaderElement, 'tab-child-loaded');
    }
}


BoyleSportsTabbedHeadlineComponent.BoyleSportsTabbedHeadlineComponent.createClass('BoyleSportsTabbedHeadlineComponent.BoyleSportsTabbedHeadlineComponent', Framework.AbstractComponent, UserService.IUserChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('TrackingComponent');

////////////////////////////////////////////////////////////////////////////////
// TrackingComponent.TrackingComponent

TrackingComponent.TrackingComponent = function TrackingComponent_TrackingComponent() {
    this._trackingEvents$2 = {};
    TrackingComponent.TrackingComponent.constructBase(this);
}
TrackingComponent.TrackingComponent.prototype = {
    _trackingEventsXmlFile$2: 'regularTracking.xml',
    _matchingFimsid$2: null,
    _iDMMCustomer$2: 0,
    _replaceTokenWithFimsID$2: false,
    _navigationService$2: null,
    
    setNavigationService: function TrackingComponent_TrackingComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    onPageFilterChanged: function TrackingComponent_TrackingComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    _accountService$2: null,
    
    setAccountService: function TrackingComponent_TrackingComponent$setAccountService(accountService) {
        this._log.debug('SetAccountService');
        this._accountService$2 = accountService;
    },
    
    onDepositExecuted: function TrackingComponent_TrackingComponent$onDepositExecuted(eventSource) {
        this._log.debug('OnDepositExecuted');
        this._raiseTrackingEvent$2('accountService.deposit');
    },
    
    _userService$2: null,
    
    setUserService: function TrackingComponent_TrackingComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserRegistered: function TrackingComponent_TrackingComponent$onUserRegistered() {
        this._log.debug('OnUserRegistered');
        this._userService$2.getIDMMCustomer(Delegate.create(this, function(result) {
            this._iDMMCustomer$2 = result;
            this._raiseTrackingEvent$2('userService.registration');
        }), Delegate.create(this, function(ex) {
        }));
    },
    
    init: function TrackingComponent_TrackingComponent$init(environment, componentInstanceName, domElementId, parameters) {
        if (Object.keyExists(parameters, 'replace-token-with-FimsID')) {
            this._replaceTokenWithFimsID$2 = Boolean.parse(parameters['replace-token-with-FimsID']);
        }
        if (Object.keyExists(parameters, 'matching-fimsid')) {
            this._matchingFimsid$2 = parameters['matching-fimsid'];
        }
        if (Object.keyExists(parameters, 'tracking-events-xml-file')) {
            this._trackingEventsXmlFile$2 = parameters['tracking-events-xml-file'];
        }
    },
    
    preTransformation: function TrackingComponent_TrackingComponent$preTransformation(eventArgs) {
        eventArgs.get_contextObject().contentUrl = String.format('/areas/{0}/template_{1}_{2}/components/TrackingComponent/{3}', this._environment.getPageArea(), this._environment.getRegion(), this._environment.getLanguage(), this._trackingEventsXmlFile$2);
    },
    
    xmlContentReceived: function TrackingComponent_TrackingComponent$xmlContentReceived(eventArgs) {
        if (eventArgs.get_contentXmlDocument().hasChildNodes()) {
            this._loadTrackingEventsFromXML$2(eventArgs.get_contentXmlDocument());
            this._raiseTrackingEvent$2('pagArea.' + this._navigationService$2.getPageArea() + '.repaint');
        }
    },
    
    get_isComponentVisible: function TrackingComponent_TrackingComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    show: function TrackingComponent_TrackingComponent$show() {
        TrackingComponent.TrackingComponent.callBase(this, 'hide');
    },
    
    _raiseTrackingEvent$2: function TrackingComponent_TrackingComponent$_raiseTrackingEvent$2(trackingEvent) {
        if (Object.keyExists(this._trackingEvents$2, trackingEvent)) {
            var trackingHTMLtoInsert = this._trackingEvents$2[trackingEvent];
            if (!String.isNullOrEmpty(this._matchingFimsid$2)) {
                if (Framework.CookieUtil.getCookie(this._userService$2.get_fimsIDCookieName()) !== this._matchingFimsid$2) {
                    return;
                }
            }
            if (this._replaceTokenWithFimsID$2) {
                trackingHTMLtoInsert = String.format(trackingHTMLtoInsert, Framework.CookieUtil.getCookie(this._userService$2.get_fimsIDCookieName()), Framework.CookieUtil.getCookie(this._userService$2.get_fimsAdvertIDCookieName()), this._iDMMCustomer$2);
            }
            this._environment.updateDomElement(this._domElementId, trackingHTMLtoInsert);
        }
    },
    
    _loadTrackingEventsFromXML$2: function TrackingComponent_TrackingComponent$_loadTrackingEventsFromXML$2(trackingXML) {
        var trackingEventNodes = trackingXML.getElementsByTagName('trackingEvent');
        for (var i = 0; i < trackingEventNodes.length; i++) {
            if (trackingEventNodes[i].firstChild) {
                this._trackingEvents$2[trackingEventNodes[i].attributes.getNamedItem('name').text] = trackingEventNodes[i].firstChild.xml;
            }
        }
    }
}


TrackingComponent.TrackingComponent.createClass('TrackingComponent.TrackingComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener, AccountService.IDepositExecutedListener, UserService.IUserIsRegisteredListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('SimpleHTMLComponent');

////////////////////////////////////////////////////////////////////////////////
// SimpleHTMLComponent.SimpleHTMLComponent

SimpleHTMLComponent.SimpleHTMLComponent = function SimpleHTMLComponent_SimpleHTMLComponent() {
    SimpleHTMLComponent.SimpleHTMLComponent.constructBase(this);
}
SimpleHTMLComponent.SimpleHTMLComponent.prototype = {
    _parameters$1: null,
    _repaintOnUserChanged$1: false,
    _repaintOnPageFilterChanged$1: false,
    _content$1: null,
    _navigationService$1: null,
    
    setNavigationService: function SimpleHTMLComponent_SimpleHTMLComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$1 = navigationService;
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.page);
    },
    
    onPageFilterChanged: function SimpleHTMLComponent_SimpleHTMLComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (this._repaintOnPageFilterChanged$1) {
            this.repaint();
        }
    },
    
    _userService$1: null,
    
    setUserService: function SimpleHTMLComponent_SimpleHTMLComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$1 = userService;
    },
    
    onUserChanged: function SimpleHTMLComponent_SimpleHTMLComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (this._repaintOnUserChanged$1) {
            this.repaint();
        }
    },
    
    init: function SimpleHTMLComponent_SimpleHTMLComponent$init(environment, componentInstanceName, domElementId, parameters) {
        SimpleHTMLComponent.SimpleHTMLComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._repaintOnUserChanged$1 = Boolean.parse(parameters['repaint-onuserchanged']);
        this._repaintOnPageFilterChanged$1 = Boolean.parse(parameters['repaint-onpagefilterchanged']);
        this._content$1 = parameters['content'];
    },
    
    start: function SimpleHTMLComponent_SimpleHTMLComponent$start() {
        this.repaint();
    },
    
    repaint: function SimpleHTMLComponent_SimpleHTMLComponent$repaint() {
        this._log.debug('Repaint');
        var _componentDOMElement = this._environment.getDomElement(this._domElementId);
        _componentDOMElement.className = _componentDOMElement.className + ' escapedHtml';
        if (this.isVisible(this._parameters$1.get_visibleOn(), this._parameters$1.get_notVisibleOn(), this._navigationService$1.getAction())) {
            this.show();
            this._environment.updateDomElementDirect(_componentDOMElement, this._content$1);
        }
        else {
            this.hide();
        }
    }
}


SimpleHTMLComponent.SimpleHTMLComponent.createClass('SimpleHTMLComponent.SimpleHTMLComponent', Framework.Component.AbstractComponent, UserService.IUserChangedListener, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('BoyleSportsPaymentTransactionComponent');

////////////////////////////////////////////////////////////////////////////////
// BoyleSportsPaymentTransactionComponent.BoyleSportsPaymentTransactionComponent

BoyleSportsPaymentTransactionComponent.BoyleSportsPaymentTransactionComponent = function BoyleSportsPaymentTransactionComponent_BoyleSportsPaymentTransactionComponent() {
    BoyleSportsPaymentTransactionComponent.BoyleSportsPaymentTransactionComponent.constructBase(this);
}


BoyleSportsPaymentTransactionComponent.BoyleSportsPaymentTransactionComponent.createClass('BoyleSportsPaymentTransactionComponent.BoyleSportsPaymentTransactionComponent', BoyleSportsAbstractComponents.BoyleSportsPaymentTransactionComponent.BoyleSportsAbstractPaymentTransactionComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('RegisterCardComponent');

////////////////////////////////////////////////////////////////////////////////
// RegisterCardComponent.RegisterCardComponent

RegisterCardComponent.RegisterCardComponent = function RegisterCardComponent_RegisterCardComponent() {
    this._billingAddressDetails$2 = new Array(6);
    RegisterCardComponent.RegisterCardComponent.constructBase(this);
}
RegisterCardComponent.RegisterCardComponent.prototype = {
    _validationManager: null,
    _defaultCounry$2: '',
    _hideBillingAddressForActions$2: '',
    _integrationSection$2: null,
    _messageElementID$2: null,
    _nonMandatoryFields$2: '',
    
    setMessageElementID: function RegisterCardComponent_RegisterCardComponent$setMessageElementID(messageElementID) {
        this._messageElementID$2 = messageElementID;
    },
    
    _accountService$2: null,
    
    setAccountService: function RegisterCardComponent_RegisterCardComponent$setAccountService(accountService) {
        this._log.debug('SetAccountService');
        this._accountService$2 = accountService;
    },
    
    _navigationService$2: null,
    
    setNavigationService: function RegisterCardComponent_RegisterCardComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
    },
    
    onPageFilterChanged: function RegisterCardComponent_RegisterCardComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    _userService$2: null,
    
    setUserService: function RegisterCardComponent_RegisterCardComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserChanged: function RegisterCardComponent_RegisterCardComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        this.update();
    },
    
    onCreatedEventHandler: function RegisterCardComponent_RegisterCardComponent$onCreatedEventHandler(sender, e) {
        this._environment.getDomElement(this._componentInstanceName).style.display = 'none';
    },
    
    registerCardEventHandler: function RegisterCardComponent_RegisterCardComponent$registerCardEventHandler(sender, eventArgs) {
        if (this._validationManager.validateAll()) {
            this._registerCard$2(Framework.FormUtil.getFormAsDictionary(this._domElementId + '-form', this._domElementId + '-'));
        }
    },
    
    navigateToPageAreaEventHandler: function RegisterCardComponent_RegisterCardComponent$navigateToPageAreaEventHandler(sender, eventArgs) {
        this._navigateToPageArea$2(eventArgs.parameters.getAsString('pagearea'), eventArgs.parameters.getAsString('action'));
    },
    
    validateNumberAndLengthEventHandler: function RegisterCardComponent_RegisterCardComponent$validateNumberAndLengthEventHandler(sender, eventArgs) {
        this._validateNumberAndLength$2(eventArgs.domElement, eventArgs.parameters.getAsString('labelid'), eventArgs.parameters.getAsNumber('length'));
    },
    
    closeRegisterCardEventHandler: function RegisterCardComponent_RegisterCardComponent$closeRegisterCardEventHandler(sender, eventArgs) {
        if (eventArgs.parameters.containsKey('windowlocation')) {
            eval('javascript:window.location=\'' + eventArgs.parameters.getAsString('windowlocation') + '\';');
        }
        else {
            var action = eventArgs.parameters.getAsString('action');
            this._navigationService$2.setAction(action);
        }
    },
    
    billingAddressChooserEventHandler: function RegisterCardComponent_RegisterCardComponent$billingAddressChooserEventHandler(sender, eventArgs) {
        if (eventArgs.parameters.getAsBoolean('isregistered')) {
            var newChkBox = this.getPrivateDomElement('billingNewAddress');
            if (newChkBox) {
                (newChkBox).checked = false;
            }
            var registeredChkBox = this.getPrivateDomElement('billingRegisteredAddress');
            if (registeredChkBox) {
                (registeredChkBox).checked = true;
            }
        }
        else {
            var registeredChkBox = this.getPrivateDomElement('billingRegisteredAddress');
            if (registeredChkBox) {
                (registeredChkBox).checked = false;
            }
            var newChkBox = this.getPrivateDomElement('billingNewAddress');
            if (newChkBox) {
                (newChkBox).checked = true;
            }
        }
        this._billingAddressChooser$2();
    },
    
    validateBeforeRegisterCardEventHandler: function RegisterCardComponent_RegisterCardComponent$validateBeforeRegisterCardEventHandler(sender, eventArgs) {
        if (this._billingAddressValidator$2()) {
            this._registerCard$2(Framework.FormUtil.getFormAsDictionary(this._domElementId + '-form', this._domElementId + '-'));
        }
    },
    
    init: function RegisterCardComponent_RegisterCardComponent$init(environment, componentInstanceName, domElementId, parameters) {
        this._integrationSection$2 = parameters['integration-section'];
        this._hideBillingAddressForActions$2 = (parameters['hide-billing-address-for-actions']).toLowerCase();
        if (Object.keyExists(parameters, 'non-mandatory-fields')) {
            this._nonMandatoryFields$2 = (parameters['non-mandatory-fields']).toLowerCase();
            if (this._nonMandatoryFields$2.length > 0) {
                this._nonMandatoryFields$2 = ',' + this._nonMandatoryFields$2 + ',';
            }
        }
        this._validationManager = new Framework.Validation.ValidationManager(this._environment);
        this.registerValidators();
    },
    
    renderComplete: function RegisterCardComponent_RegisterCardComponent$renderComplete(eventArgs) {
        var progress = this._navigationService$2.getPageFilter()['progress'];
        if (progress === '3') {
            var regCardHeader = document.getElementById('regcard-header');
            var registerCardButton = document.getElementById('register-card-button');
            var completeRegistrationButton = document.getElementById('complete-registration-button');
            var stage3Header = document.getElementById('stage-3-header');
            if (regCardHeader) {
                regCardHeader.style.display = 'none';
            }
            if (stage3Header) {
                stage3Header.style.display = 'block';
            }
            if (registerCardButton) {
                registerCardButton.style.display = 'none';
            }
            if (completeRegistrationButton) {
                completeRegistrationButton.style.display = 'block';
            }
        }
    },
    
    get_isComponentVisible: function RegisterCardComponent_RegisterCardComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction()) && this._userService$2.isLoggedIn();
    },
    
    getXsltParameters: function RegisterCardComponent_RegisterCardComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['integration-section'] = this._integrationSection$2;
        var currentAction = this._navigationService$2.getAction().toLowerCase();
        xsltParameters['hide_billing_address'] = (this._hideBillingAddressForActions$2.indexOf(currentAction) > -1) ? true : false;
        if (this._userService$2.get_personalDetails()) {
            this._billingAddressDetails$2[0] = this._userService$2.get_personalDetails().HomePhone;
            xsltParameters['phone-number'] = this._billingAddressDetails$2[0];
            this._billingAddressDetails$2[1] = this._userService$2.get_personalDetails().StreetAddress;
            xsltParameters['address'] = this._billingAddressDetails$2[1];
            this._billingAddressDetails$2[2] = this._userService$2.get_personalDetails().City;
            xsltParameters['city'] = this._billingAddressDetails$2[2];
            this._billingAddressDetails$2[3] = this._userService$2.get_personalDetails().PostCode;
            xsltParameters['post-code'] = this._billingAddressDetails$2[3];
            this._billingAddressDetails$2[4] = this._userService$2.get_personalDetails().CountyOrStateOrProvince;
            xsltParameters['county'] = this._billingAddressDetails$2[4];
            this._billingAddressDetails$2[5] = this._userService$2.get_personalDetails().IDMMCountry;
            xsltParameters['idmmcountry'] = this._billingAddressDetails$2[5];
        }
        return xsltParameters;
    },
    
    _verifyCard$2: function RegisterCardComponent_RegisterCardComponent$_verifyCard$2(IDMMSIInstruction) {
        this._log.debug('VerifyCard');
        if (!IDMMSIInstruction) {
            return;
        }
        this._accountService$2.getPaymentInstrument(Delegate.create(this, function(result) {
            var paymentInstrument = result;
            this._log.debug(String.format('paymentInstrument.verificationStatus = [{0}]', paymentInstrument.VerificationStatus));
            if (paymentInstrument.VerificationStatus === -1) {
                if (Object.keyExists(this._navigationService$2.getPageFilter(), 'progress')) {
                    this._navigationService$2.goTo('accounting', { action: 'deposit' });
                }
                else {
                    this._navigationService$2.goTo(this._navigationService$2.getPageArea(), { action: 'deposit' });
                }
                this._environment.getDomElement(this._domElementId).style.cursor = 'default';
            }
            else if (!paymentInstrument.VerificationStatus) {
                this._environment.updateDomElement(this._domElementId + '-status', '<p class=\'error\'>Card verification failed</p>');
                this._environment.getDomElement(this._domElementId).style.cursor = 'default';
                this.enable();
            }
            else if (paymentInstrument.VerificationStatus === -2) {
                this._environment.updateDomElement(this._domElementId + '-status', '<p class=\'msg\'>Verifying card</p>');
                window.setTimeout(Delegate.create(this, function() {
                    this._verifyCard$2(IDMMSIInstruction);
                }), 3000);
            }
        }), Delegate.create(this, function(exception) {
            var errorMessage = Framework.ExceptionUtil.getExceptionDetails(exception).get_message();
            this._log.debug(String.format('Card verification failed, error message = [{0}]', errorMessage));
            this.update();
        }), IDMMSIInstruction);
    },
    
    _registerCard$2: function RegisterCardComponent_RegisterCardComponent$_registerCard$2(card) {
        this._log.debug('RegisterCard');
        if (!String.isNullOrEmpty(card['CardNumber'].toString())) {
            this.disable();
            document.getElementById(this._domElementId).style.cursor = 'wait';
            this._accountService$2.registerCard(Delegate.create(this, function(result) {
                var IDMMSIInstruction = result;
                this._log.debug(String.format('Card registered successfully, IDMMSIInstruction = [{0}]', IDMMSIInstruction));
                this._verifyCard$2(IDMMSIInstruction);
            }), Delegate.create(this, function(exception) {
                this.enable();
                document.getElementById(this._domElementId).style.cursor = 'default';
                this._environment.updateDomElement(this._domElementId + '-status', String.format('<p class=\'error\'>{0}</p>', Framework.ExceptionUtil.getExceptionDetails(exception).get_message()));
            }), card);
        }
        else {
            this._environment.updateDomElement(this._domElementId + '-status', '<p class=\'error\'>Card number is required.</p>');
        }
    },
    
    _navigateToPageArea$2: function RegisterCardComponent_RegisterCardComponent$_navigateToPageArea$2(area, action) {
        var pageFilter = {};
        if (String.isNullOrEmpty(action)) {
            pageFilter['action'] = 'upgrade-call-centre-customer';
        }
        else {
            pageFilter['action'] = action;
        }
        this._navigationService$2.forwardTo(area, pageFilter);
    },
    
    _validateNumberAndLength$2: function RegisterCardComponent_RegisterCardComponent$_validateNumberAndLength$2(oInput, labelID, Length) {
        var oValue = oInput.value;
        if (this._isNumberAndLength$2(oValue, labelID, Length)) {
            this._environment.updateDomElement(this._domElementId + '-status', '');
            document.getElementById(labelID).className = 'okLabel';
        }
    },
    
    _isNumberAndLength$2: function RegisterCardComponent_RegisterCardComponent$_isNumberAndLength$2(oValue, labelID, Length) {
        var testTheNext = Number.parse(oValue);
        if (isNaN(testTheNext)) {
            this._environment.updateDomElement(this._domElementId + '-status', '<p class=\'error\'>Number value is required.</p>');
            document.getElementById(labelID).className = 'errorLabel';
            return false;
        }
        else {
            if (Length > 0) {
                if (oValue.length === Length) {
                    return true;
                }
                else {
                    this._environment.updateDomElement(this._domElementId + '-status', '<p class=\'error\'>Value length needs to be ' + Length + '.</p>');
                    document.getElementById(labelID).className = 'errorLabel';
                    return false;
                }
            }
            else {
                return true;
            }
        }
    },
    
    _billingAddressChooser$2: function RegisterCardComponent_RegisterCardComponent$_billingAddressChooser$2() {
        var oElements = [];
        var i = 0;
        oElements[0] = this.getPrivateDomElement('PhoneNumber');
        oElements[1] = this.getPrivateDomElement('Address');
        oElements[2] = this.getPrivateDomElement('City');
        oElements[3] = this.getPrivateDomElement('Postcode');
        oElements[4] = this.getPrivateDomElement('State');
        oElements[5] = this.getPrivateDomElement('IDMMCountry');
        var oIsSameAsMainAddress = this.getPrivateDomElement('isSameAsMainAddress');
        var oCurrentSelect = this.getPrivateDomElement('billingRegisteredAddress');
        if (oCurrentSelect.checked) {
            for (i = 0; i < 6; i++) {
                oElements[i].value = this._billingAddressDetails$2[i];
                oElements[i].disabled = true;
                oIsSameAsMainAddress.value = 'true';
            }
            this._billingAddressValidator$2();
        }
        else {
            for (i = 0; i < 6; i++) {
                oElements[i].value = '';
                oElements[i].disabled = false;
                oIsSameAsMainAddress.value = 'false';
            }
        }
    },
    
    _billingAddressValidator$2: function RegisterCardComponent_RegisterCardComponent$_billingAddressValidator$2() {
        var isValid = false;
        isValid = this._validationManager.validateAll();
        return isValid;
    },
    
    registerValidators: function RegisterCardComponent_RegisterCardComponent$registerValidators() {
        if (this._nonMandatoryFields$2.indexOf(',cardnumber,') === -1) {
            this._registerDefaultElementMandatoryValidator$2('CardNumber');
        }
        if (this._nonMandatoryFields$2.indexOf(',nameasoncard,') === -1) {
            this._registerDefaultElementMandatoryValidator$2('NameAsOnCard');
        }
        if (this._nonMandatoryFields$2.indexOf(',address,') === -1) {
            this._registerDefaultElementMandatoryValidator$2('Address');
        }
        if (this._nonMandatoryFields$2.indexOf(',city,') === -1) {
            this._registerDefaultElementMandatoryValidator$2('City');
        }
        if (this._nonMandatoryFields$2.indexOf(',postcode,') === -1) {
            this._registerDefaultElementMandatoryValidator$2('Postcode');
        }
        if (this._nonMandatoryFields$2.indexOf(',phonenumber,') === -1) {
            var _phoneVal = new Framework.Validation.RegexValidator('^[0-9\\s\\+]+$');
            _phoneVal.errorElementId = 'errorPhoneNumber';
            _phoneVal.inputElementId = this._domElementId + '-phoneNumber';
            _phoneVal.labelElementId = 'lblPhoneNumber';
            this._validationManager.registerInputForValidation(_phoneVal);
        }
    },
    
    _registerDefaultElementMandatoryValidator$2: function RegisterCardComponent_RegisterCardComponent$_registerDefaultElementMandatoryValidator$2(ElementName) {
        ElementName = ElementName.trim();
        this._validationManager.registerMandatoryValidator(this._domElementId + '-' + ElementName, this._domElementId + '-errorBaitLabel', 'error' + ElementName);
    },
    
    _registerDefaultElementMandatoryValidatorEx$2: function RegisterCardComponent_RegisterCardComponent$_registerDefaultElementMandatoryValidatorEx$2(manager, ElementName, failtureCallBack, successCallBack) {
        ElementName = ElementName.trim();
        var validator = new Framework.Validation.MandatoryValidator();
        validator.inputElementId = this._domElementId + '-' + ElementName;
        validator.errorElementId = 'div' + ElementName;
        validator.set_errorLabelClass('invalidrow');
        validator.add_onFailureEvent(failtureCallBack);
        validator.add_onSuccessEvent(successCallBack);
        validator.set_applyInputParentElementErrorClassOnError(false);
        manager.registerInputForValidation(validator);
    },
    
    cardNumber_OnFailureEvent: function RegisterCardComponent_RegisterCardComponent$cardNumber_OnFailureEvent(Exception) {
        this._validatorFailed$2('iconCardNumber', 'errorCardNumber');
    },
    
    cardNumber_OnSuccessEvent: function RegisterCardComponent_RegisterCardComponent$cardNumber_OnSuccessEvent() {
        this._validatorSuccess$2('iconCardNumber', 'errorCardNumber');
    },
    
    endOfValidityDateFailtureEventHandler: function RegisterCardComponent_RegisterCardComponent$endOfValidityDateFailtureEventHandler(Exception) {
        this._validatorFailed$2('iconEndOfValidityDate', 'errorEndOfValidityDate');
    },
    
    endOfValidityDateSuccessEventHandler: function RegisterCardComponent_RegisterCardComponent$endOfValidityDateSuccessEventHandler() {
        this._validatorSuccess$2('iconEndOfValidityDate', 'errorEndOfValidityDate');
    },
    
    startOfValidityDateFailtureEventHandler: function RegisterCardComponent_RegisterCardComponent$startOfValidityDateFailtureEventHandler(Exception) {
        this._validatorFailed$2('iconStartOfValidityDate', 'errorStartOfValidityDate');
    },
    
    startOfValidityDateSuccessEventHandler: function RegisterCardComponent_RegisterCardComponent$startOfValidityDateSuccessEventHandler() {
        this._validatorSuccess$2('iconStartOfValidityDate', 'errorStartOfValidityDate');
    },
    
    nameAsOnCardFailtureEventHandler: function RegisterCardComponent_RegisterCardComponent$nameAsOnCardFailtureEventHandler(Exception) {
        this._validatorFailed$2('iconNameAsOnCard', 'errorNameAsOnCard');
    },
    
    nameAsOnCardSuccessEventHandler: function RegisterCardComponent_RegisterCardComponent$nameAsOnCardSuccessEventHandler() {
        this._validatorSuccess$2('iconNameAsOnCard', 'errorNameAsOnCard');
    },
    
    onInputBlurBehaviorEventHandler: function RegisterCardComponent_RegisterCardComponent$onInputBlurBehaviorEventHandler(sender, e) {
        this._validationManager.validateSingleInput(e.domElement);
    },
    
    onInputChangedBehaviorEventHandler: function RegisterCardComponent_RegisterCardComponent$onInputChangedBehaviorEventHandler(sender, e) {
        this._validationManager.validateSingleInput(e.domElement);
    },
    
    onInputFocusBehaviorEventHandler: function RegisterCardComponent_RegisterCardComponent$onInputFocusBehaviorEventHandler(sender, e) {
        var ajaxUpdater = new Framework.AjaxUpdater(this._messageElementID$2, e.parameters.getAsString('helpurl'), null, null);
        ajaxUpdater.update();
    },
    
    registerCardDataValidators: function RegisterCardComponent_RegisterCardComponent$registerCardDataValidators() {
        this._validationManager.clearValidators();
        var _cardNumberVal = new Framework.Validation.RegexValidator('^[0-9\\s\\+]+$');
        _cardNumberVal.errorElementId = 'divCardNumber';
        _cardNumberVal.set_errorLabelClass('invalidrow');
        _cardNumberVal.inputElementId = this._domElementId + '-CardNumber';
        _cardNumberVal.add_onFailureEvent(Delegate.create(this, this.cardNumber_OnFailureEvent));
        _cardNumberVal.add_onSuccessEvent(Delegate.create(this, this.cardNumber_OnSuccessEvent));
        this._validationManager.registerInputForValidation(_cardNumberVal);
        this._registerDefaultElementMandatoryValidatorEx$2(this._validationManager, 'NameAsOnCard', Delegate.create(this, this.nameAsOnCardFailtureEventHandler), Delegate.create(this, this.nameAsOnCardSuccessEventHandler));
        this._registerDefaultElementMandatoryValidatorEx$2(this._validationManager, 'EndOfValidityMonth', Delegate.create(this, this.endOfValidityDateFailtureEventHandler), Delegate.create(this, this.endOfValidityDateSuccessEventHandler));
        this._registerDefaultElementMandatoryValidatorEx$2(this._validationManager, 'EndOfValidityYear', Delegate.create(this, this.endOfValidityDateFailtureEventHandler), Delegate.create(this, this.endOfValidityDateSuccessEventHandler));
    },
    
    _validatorSuccess$2: function RegisterCardComponent_RegisterCardComponent$_validatorSuccess$2(iconElement, messageElement) {
        this._hideBalloons$2();
        this._environment.safelySetAndUnsetCssClass(iconElement, 'valid', 'invalid');
        this._environment.safelySetAndUnsetCssClass(messageElement, 'invisible', 'visible');
    },
    
    _validatorFailed$2: function RegisterCardComponent_RegisterCardComponent$_validatorFailed$2(iconElement, messageElement) {
        this._hideBalloons$2();
        this._environment.safelySetAndUnsetCssClass(iconElement, 'invalid', 'valid');
        this._environment.safelySetAndUnsetCssClass(messageElement, 'visible', 'invisible');
    },
    
    _hideBalloons$2: function RegisterCardComponent_RegisterCardComponent$_hideBalloons$2() {
        this._environment.safelySetAndUnsetCssClass('errorCardNumber', 'invisible', 'visible');
        this._environment.safelySetAndUnsetCssClass('errorEndOfValidityDate', 'invisible', 'visible');
        this._environment.safelySetAndUnsetCssClass('errorNameAsOnCard', 'invisible', 'visible');
    }
}


RegisterCardComponent.RegisterCardComponent.createClass('RegisterCardComponent.RegisterCardComponent', Framework.Component.AbstractXsltBasedComponent, UserService.IUserChangedListener, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('RegisterBankTransferComponent');

////////////////////////////////////////////////////////////////////////////////
// RegisterBankTransferComponent.RegisterBankTransferComponent

RegisterBankTransferComponent.RegisterBankTransferComponent = function RegisterBankTransferComponent_RegisterBankTransferComponent() {
    RegisterBankTransferComponent.RegisterBankTransferComponent.constructBase(this);
}
RegisterBankTransferComponent.RegisterBankTransferComponent.prototype = {
    _redirectToDeposit$2: false,
    _useDefaultValidation: false,
    _validationManager: null,
    _integrationSection$2: null,
    _messageElementID$2: null,
    
    setMessageElementID: function RegisterBankTransferComponent_RegisterBankTransferComponent$setMessageElementID(messageElementID) {
        this._messageElementID$2 = messageElementID;
    },
    
    _accountService$2: null,
    
    setAccountService: function RegisterBankTransferComponent_RegisterBankTransferComponent$setAccountService(accountService) {
        this._log.debug('SetAccountService');
        this._accountService$2 = accountService;
    },
    
    _navigationService$2: null,
    
    setNavigationService: function RegisterBankTransferComponent_RegisterBankTransferComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
    },
    
    onPageFilterChanged: function RegisterBankTransferComponent_RegisterBankTransferComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (this.get_isComponentVisible()) {
            this._startInternalUpdate$2();
        }
        else {
            this.update();
        }
    },
    
    _userService$2: null,
    
    setUserService: function RegisterBankTransferComponent_RegisterBankTransferComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserChanged: function RegisterBankTransferComponent_RegisterBankTransferComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (this.get_isComponentVisible()) {
            this._startInternalUpdate$2();
        }
        else {
            this.update();
        }
    },
    
    init: function RegisterBankTransferComponent_RegisterBankTransferComponent$init(environment, componentInstanceName, domElementId, parameters) {
        this._area = [ 'start', 'successfull', 'failed' ];
        this._integrationSection$2 = parameters['integration-section'];
        if (Object.keyExists(parameters, 'use-default-validation')) {
            this._useDefaultValidation = Boolean.parse(parameters['use-default-validation'].toString());
        }
        if (Object.keyExists(parameters, 'after-successful-registration-goto-deposit')) {
            if (!String.isNullOrEmpty(parameters['after-successful-registration-goto-deposit'].toString())) {
                this._redirectToDeposit$2 = Boolean.parse(parameters['after-successful-registration-goto-deposit'].toString());
            }
        }
        this._validationManager = new Framework.Validation.ValidationManager(this._environment);
        if (this._useDefaultValidation) {
            this.registerValidators();
        }
    },
    
    preTransformation: function RegisterBankTransferComponent_RegisterBankTransferComponent$preTransformation(eventArgs) {
        if (!eventArgs.get_customEventArgs()) {
            eventArgs.set_cancelUpdate(true);
            this._startInternalUpdate$2();
        }
    },
    
    renderComplete: function RegisterBankTransferComponent_RegisterBankTransferComponent$renderComplete(eventArgs) {
        this.activateArea(0, Framework.Component.AbstractComponent.noMessages);
        this._setSelectedBankName$2();
    },
    
    get_isComponentVisible: function RegisterBankTransferComponent_RegisterBankTransferComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction()) && this._userService$2.isLoggedIn();
    },
    
    registerBankTransferEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$registerBankTransferEventHandler(sender, eventArgs) {
        this.registerBankTransfer(Framework.FormUtil.getFormAsDictionary(this._domElementId + '-Form', this._domElementId + '-'));
    },
    
    goBackEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$goBackEventHandler(sender, eventArgs) {
        this._startInternalUpdate$2();
    },
    
    onCreatedEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$onCreatedEventHandler(sender, e) {
        this._environment.getDomElement(this._componentInstanceName).style.display = 'none';
    },
    
    closeRegisterBankTransferEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$closeRegisterBankTransferEventHandler(sender, eventArgs) {
        if (eventArgs.parameters.containsKey('windowlocation')) {
            eval('javascript:window.location=\'' + eventArgs.parameters.getAsString('windowlocation') + '\';');
        }
        else {
            var action = eventArgs.parameters.getAsString('action');
            this._navigationService$2.setAction(action);
        }
    },
    
    setSelectedBankNameEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$setSelectedBankNameEventHandler(sender, eventArgs) {
        this._setSelectedBankName$2();
    },
    
    registerValidators: function RegisterBankTransferComponent_RegisterBankTransferComponent$registerValidators() {
        this._validationManager.registerMandatoryValidator(this._domElementId + '-AccountNumber', 'lblAccountNumber', 'errorAccountNumber');
        this._validationManager.registerMandatoryValidator(this._domElementId + '-PinCode', 'lblPinCode', 'errorPinCode');
        this._validationManager.registerMandatoryValidator(this._domElementId + '-AccountOwner', 'lblName', 'errorName');
        this._validationManager.registerMandatoryValidator(this._domElementId + '-Postcode', 'lblPostcode', 'errorPostcode');
        this._validationManager.registerMandatoryValidator(this._domElementId + '-City', 'lblCity', 'errorCity');
        this._validationManager.registerMandatoryValidator(this._domElementId + '-Address', 'lblAddress', 'errorAddress');
    },
    
    registerBankTransfer: function RegisterBankTransferComponent_RegisterBankTransferComponent$registerBankTransfer(bankTransfer) {
        this._log.debug('RegisterBankTransfer');
        var _isValid;
        if (this._useDefaultValidation) {
            _isValid = this._validationManager.validateAll();
        }
        else {
            _isValid = true;
        }
        if (_isValid) {
            this._accountService$2.registerBankTransfer(Delegate.create(this, function(result) {
                var IDMMSIInstruction = result;
                this._log.debug(String.format('Bank Transfer registered successfully, IDMMSIInstruction = [{0}]', IDMMSIInstruction));
                this.activateArea(1, Framework.Component.AbstractComponent.noMessages);
                if (this._redirectToDeposit$2) {
                    var currentArea = this._environment.getPageArea();
                    this._navigationService$2.goTo(currentArea, { action: 'deposit' });
                }
            }), Delegate.create(this, function(exception) {
                var errorMessage = Framework.ExceptionUtil.getExceptionDetails(exception).get_message();
                this._log.debug(String.format('Bank Transfer registration failed errorMessage = [{0}]', errorMessage));
                this.activateArea(2, [ errorMessage ]);
            }), bankTransfer);
        }
    },
    
    onInputFocusBehaviorEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$onInputFocusBehaviorEventHandler(sender, e) {
        var ajaxUpdater = new Framework.AjaxUpdater(this._messageElementID$2, e.parameters.getAsString('helpurl'), null, null);
        ajaxUpdater.update();
    },
    
    onInputBlurBehaviorEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$onInputBlurBehaviorEventHandler(sender, e) {
        this._validationManager.validateSingleInput(e.domElement);
    },
    
    _startInternalUpdate$2: function RegisterBankTransferComponent_RegisterBankTransferComponent$_startInternalUpdate$2() {
        var IDMMSIType = (Object.keyExists(this._navigationService$2.getPageFilter(), 'idmmsitype')) ? this._navigationService$2.getPageFilter()['idmmsitype'] : '';
        if (this.get_isComponentVisible() && !String.isNullOrEmpty(IDMMSIType)) {
            this._accountService$2.getPaymentType(Delegate.create(this, function(result) {
                var paymentType = result;
                var eventArgs = new Framework.Component.LifeCycleManagement.EventArgs.CustomEventArgs();
                eventArgs.parametersDictionary = { notFirstTransformation: 'true' };
                this.update(this._environment.getDomElement(this._domElementId), this._parameters.get_contentUrl(), this._parameters.get_xsltUrl(), this._customGetXsltParameters$2(paymentType, IDMMSIType), eventArgs);
            }), Delegate.create(this, function(exception) {
                var errorMessage = Framework.ExceptionUtil.getExceptionDetails(exception).get_message();
                this._log.debug(String.format('RegisterBankTransfer.Repaint failed errorMessage = [{0}]', errorMessage));
                this.activateArea(2, [ exception.message ]);
            }), IDMMSIType);
        }
    },
    
    _customGetXsltParameters$2: function RegisterBankTransferComponent_RegisterBankTransferComponent$_customGetXsltParameters$2(paymentType, IDMMSIType) {
        var xsltParameters = {};
        xsltParameters['use-default-validation'] = this._useDefaultValidation;
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['idmmsitype'] = IDMMSIType;
        xsltParameters['bank-transfer-name'] = paymentType.Name;
        if (paymentType.AccountNumberLengthMax > 0) {
            xsltParameters['is-account-number-needed'] = true;
            xsltParameters['account-number-caption'] = paymentType.AccountNumberCaption;
        }
        xsltParameters['is-clearing-code-needed'] = paymentType.ClearingCodeLengthMax > 0;
        xsltParameters['is-swift-code-needed'] = paymentType.IsSwiftCodeNeeded;
        if (paymentType.IsPinNeeded) {
            xsltParameters['is-pin-needed'] = true;
            xsltParameters['pin-caption'] = paymentType.PinCaption;
        }
        xsltParameters['is-bank-name-needed'] = paymentType.IsBankNameNeeded;
        xsltParameters['integration-section'] = this._integrationSection$2;
        if (this._userService$2.get_personalDetails()) {
            xsltParameters['name'] = this._userService$2.get_personalDetails().FirstName + ' ' + this._userService$2.get_personalDetails().LastName;
            xsltParameters['address'] = this._userService$2.get_personalDetails().StreetAddress;
            xsltParameters['city'] = this._userService$2.get_personalDetails().City;
            xsltParameters['post-code'] = this._userService$2.get_personalDetails().PostCode;
            xsltParameters['county'] = this._userService$2.get_personalDetails().CountyOrStateOrProvince;
            xsltParameters['country'] = this._userService$2.get_personalDetails().IDMMCountry;
        }
        return xsltParameters;
    },
    
    registerValidatorsEx: function RegisterBankTransferComponent_RegisterBankTransferComponent$registerValidatorsEx() {
        this._registerDefaultElementMandatoryValidatorEx$2(this._validationManager, 'AccountNumber', Delegate.create(this, this.accountNumberFailtureEventHandler), Delegate.create(this, this.accountNumberSuccessEventHandler));
        this._registerDefaultElementMandatoryValidatorEx$2(this._validationManager, 'PinCode', Delegate.create(this, this.pinCodeFailtureEventHandler), Delegate.create(this, this.pinCodeSuccessEventHandler));
    },
    
    _registerDefaultElementMandatoryValidatorEx$2: function RegisterBankTransferComponent_RegisterBankTransferComponent$_registerDefaultElementMandatoryValidatorEx$2(manager, ElementName, failtureCallBack, successCallBack) {
        ElementName = ElementName.trim();
        var validator = new Framework.Validation.MandatoryValidator();
        validator.inputElementId = this._domElementId + '-' + ElementName;
        validator.errorElementId = 'div' + ElementName;
        validator.set_errorLabelClass('invalidrow');
        validator.add_onFailureEvent(failtureCallBack);
        validator.add_onSuccessEvent(successCallBack);
        validator.set_applyInputParentElementErrorClassOnError(false);
        manager.registerInputForValidation(validator);
    },
    
    accountNumberFailtureEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$accountNumberFailtureEventHandler(exception) {
        this._validatorFailed$2('iconAccountNumber', 'errorAccountNumber');
    },
    
    accountNumberSuccessEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$accountNumberSuccessEventHandler() {
        this._validatorSuccess$2('iconAccountNumber', 'errorAccountNumber');
    },
    
    pinCodeFailtureEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$pinCodeFailtureEventHandler(exception) {
        this._validatorFailed$2('iconPinCode', 'iconPinCode');
    },
    
    pinCodeSuccessEventHandler: function RegisterBankTransferComponent_RegisterBankTransferComponent$pinCodeSuccessEventHandler() {
        this._validatorSuccess$2('iconPinCode', 'iconPinCode');
    },
    
    _validatorSuccess$2: function RegisterBankTransferComponent_RegisterBankTransferComponent$_validatorSuccess$2(iconElement, messageElement) {
        this._hideBalloons$2();
        this._environment.safelySetAndUnsetCssClass(iconElement, 'valid', 'invalid');
        this._environment.safelySetAndUnsetCssClass(messageElement, 'invisible', 'visible');
    },
    
    _validatorFailed$2: function RegisterBankTransferComponent_RegisterBankTransferComponent$_validatorFailed$2(iconElement, messageElement) {
        this._hideBalloons$2();
        this._environment.safelySetAndUnsetCssClass(iconElement, 'invalid', 'valid');
        this._environment.safelySetAndUnsetCssClass(messageElement, 'visible', 'invisible');
    },
    
    _hideBalloons$2: function RegisterBankTransferComponent_RegisterBankTransferComponent$_hideBalloons$2() {
        this._environment.safelySetAndUnsetCssClass('errorPinCode', 'invisible', 'visible');
        this._environment.safelySetAndUnsetCssClass('errorAccountNumber', 'invisible', 'visible');
    },
    
    _setSelectedBankName$2: function RegisterBankTransferComponent_RegisterBankTransferComponent$_setSelectedBankName$2() {
        var oSelectElementBank = document.getElementById(this._domElementId + '-BankNationalClearingCode');
        if (!oSelectElementBank) {
            return;
        }
        var selectedID = oSelectElementBank.selectedIndex;
        var oOptionElementBank = oSelectElementBank.options[selectedID];
        var oInputElementBankName = document.getElementById(this._domElementId + '-BankName');
        if (!oInputElementBankName) {
            return;
        }
        oInputElementBankName.value = oOptionElementBank.text;
    }
}


RegisterBankTransferComponent.RegisterBankTransferComponent.createClass('RegisterBankTransferComponent.RegisterBankTransferComponent', Framework.Component.AbstractXsltBasedComponent, UserService.IUserChangedListener, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
