Type.createNamespace('PCCookieCheckerComponent');

////////////////////////////////////////////////////////////////////////////////
// PCCookieCheckerComponent.PCCookieCheckerComponent

PCCookieCheckerComponent.PCCookieCheckerComponent = function PCCookieCheckerComponent_PCCookieCheckerComponent() {
    PCCookieCheckerComponent.PCCookieCheckerComponent.constructBase(this);
}
PCCookieCheckerComponent.PCCookieCheckerComponent.prototype = {
    _navigationService$2: null,
    
    setNavigationService: function PCCookieCheckerComponent_PCCookieCheckerComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    onPageFilterChanged: function PCCookieCheckerComponent_PCCookieCheckerComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
    },
    
    init: function PCCookieCheckerComponent_PCCookieCheckerComponent$init(environment, componentInstanceName, domElementId, parameters) {
        PCCookieCheckerComponent.PCCookieCheckerComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters = new Framework.CommonComponentParameters(parameters);
    },
    
    preTransformation: function PCCookieCheckerComponent_PCCookieCheckerComponent$preTransformation(eventArgs) {
        this._setPageAction$2();
    },
    
    getXsltParameters: function PCCookieCheckerComponent_PCCookieCheckerComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        return xsltParameters;
    },
    
    get_isComponentVisible: function PCCookieCheckerComponent_PCCookieCheckerComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    _setPageAction$2: function PCCookieCheckerComponent_PCCookieCheckerComponent$_setPageAction$2() {
        if (!String.isNullOrEmpty(Framework.CookieUtil.getCookie('action@area'))) {
            var storedAction = Framework.CookieUtil.getCookie('action@area');
            this._navigationService$2.setAction(storedAction);
            Framework.CookieUtil.clearCookie('action@area');
        }
    }
}


PCCookieCheckerComponent.PCCookieCheckerComponent.createClass('PCCookieCheckerComponent.PCCookieCheckerComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener);

// ---- 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('PCLoginComponent');

////////////////////////////////////////////////////////////////////////////////
// PCLoginComponent.PCLoginComponentMessageTokenNames

PCLoginComponent.PCLoginComponentMessageTokenNames = function PCLoginComponent_PCLoginComponentMessageTokenNames() {
}


////////////////////////////////////////////////////////////////////////////////
// PCLoginComponent.PCLoginComponent

PCLoginComponent.PCLoginComponent = function PCLoginComponent_PCLoginComponent() {
    PCLoginComponent.PCLoginComponent.constructBase(this);
}
PCLoginComponent.PCLoginComponent.prototype = {
    _validationManager: null,
    _checkDetailsArea$3: 'accounting',
    _checkDetailsAction$3: 'check-details',
    _navigateTo$3: null,
    _translateTokens$3: null,
    
    init: function PCLoginComponent_PCLoginComponent$init(environment, componentInstanceName, domElementId, parameters) {
        if (parameters['support-cryptogram-login']) {
            this._supportCryptogramLogin = Boolean.parse(parameters['support-cryptogram-login']);
        }
        if (parameters['enable-remember-me']) {
            this._enableRememberMe = Boolean.parse(parameters['enable-remember-me']);
        }
        if (parameters['navigate-to'] && !String.isNullOrEmpty(parameters['navigate-to'])) {
            this._navigateTo$3 = parameters['navigate-to'];
        }
        this._checkDetailsArea$3 = parameters['check-details-area'];
        this._checkDetailsAction$3 = parameters['check-details-action'];
        this._validationManager = new Framework.Validation.ValidationManager(this._environment);
        this.registerValidators();
    },
    
    renderComplete: function PCLoginComponent_PCLoginComponent$renderComplete(eventArgs) {
        PCLoginComponent.PCLoginComponent.callBase(this, 'renderComplete', [ eventArgs ]);
        var objData = Framework.JsonUtil.deserialize(this.getPrivateDomElement('translate-tokens').innerHTML);
        this._translateTokens$3 = objData;
    },
    
    onLoginClicked: function PCLoginComponent_PCLoginComponent$onLoginClicked() {
        if (!this.get_usernameTextbox()) {
            return;
        }
        if (!this.get_passwordTextbox()) {
            return;
        }
        var CheckUsernameBlank = this.get_usernameTextbox().value.trim();
        var CheckPassswordBlank = this.get_passwordTextbox().value.trim();
        if (!CheckUsernameBlank.length || !CheckPassswordBlank.length) {
            alert(this._translateTokens$3[PCLoginComponent.PCLoginComponentMessageTokenNames.enteR_CREDENTIALS]);
            window.event.returnValue = false;
            return;
        }
        this.disable();
        if (!this._validationManager.validateAll()) {
            alert(this.getPrivateDomElement('errorRUT').innerHTML);
            this.enable();
            window.event.returnValue = false;
            return;
        }
        if (this.get_rememberMeCheckbox()) {
            if (this.get_rememberMeCheckbox().checked) {
                Framework.CookieUtil.setCookie('username', CheckUsernameBlank);
            }
            else {
                Framework.CookieUtil.clearCookie('username');
            }
        }
        var tempusername = CheckUsernameBlank;
        var Kcheck = CheckUsernameBlank.charAt(CheckUsernameBlank.length - 1);
        tempusername = CheckUsernameBlank.substring(0, CheckUsernameBlank.length - 1);
        tempusername = tempusername.replace((new RegExp('[^0-9]', 'gi')), '') + Kcheck.toString();
        this._userService.login(Delegate.create(this, function(result) {
            this.enable();
        }), Delegate.create(this, function(exception) {
            this.enable();
            var message = Framework.ExceptionUtil.getExceptionDetails(exception).get_message();
            if (message.trim() === 'ResetPasswordRequired') {
                this.get_usernameTextbox().value = '';
                this.get_passwordTextbox().value = '';
                this._navigationService.goTo(this._checkDetailsArea$3, { action: this._checkDetailsAction$3 });
            }
            else {
                alert(Framework.ExceptionUtil.getExceptionDetails(exception).get_message());
            }
        }), tempusername, CheckPassswordBlank);
        window.event.returnValue = false;
    },
    
    registerValidators: function PCLoginComponent_PCLoginComponent$registerValidators() {
        this._validationManager.registerValidateRUT(this._domElementId + '.username', null, null);
        this._validationManager.registerMandatoryValidator(this._domElementId + '.password', null, null);
    },
    
    onUserChanged: function PCLoginComponent_PCLoginComponent$onUserChanged(eventSource) {
        PCLoginComponent.PCLoginComponent.callBase(this, 'onUserChanged', [ eventSource ]);
        if (!this._userService.isLoggedIn() && !isNullOrUndefined(this._navigateTo$3)) {
            window.navigate(this._navigateTo$3);
        }
    },
    
    correctRUTEventHandler: function PCLoginComponent_PCLoginComponent$correctRUTEventHandler(sender, eventArgs) {
        var oInput = eventArgs.domElement;
        var entry = oInput.value.trim();
        if (String.isNullOrEmpty(entry)) {
            return;
        }
        while (entry.substr(0, 1) === '0' && entry.length > 0) {
            entry = entry.substr(1, entry.length);
        }
        oInput.value = entry;
    },
    
    onUsernameDivClickEventHandler: function PCLoginComponent_PCLoginComponent$onUsernameDivClickEventHandler(sender, eventArgs) {
        this.onUsernameDivClick(eventArgs.domElement);
    },
    
    onPasswordDivClickEventHandler: function PCLoginComponent_PCLoginComponent$onPasswordDivClickEventHandler(sender, eventArgs) {
        this.onPasswordDivClick(eventArgs.domElement);
    },
    
    onUsernameDivClick: function PCLoginComponent_PCLoginComponent$onUsernameDivClick(element) {
        if (!this.get_usernameTextbox()) {
            return;
        }
        this._environment.safelySetCssClassOnElement(element, 'invisible');
        this.get_usernameTextbox().focus();
    },
    
    onPasswordDivClick: function PCLoginComponent_PCLoginComponent$onPasswordDivClick(element) {
        if (!this.get_passwordTextbox()) {
            return;
        }
        this._environment.safelySetCssClassOnElement(element, 'invisible');
        this.get_passwordTextbox().focus();
    },
    
    onUsernameBlur: function PCLoginComponent_PCLoginComponent$onUsernameBlur(element) {
        if (!this.get_usernameTextbox()) {
            return;
        }
        if (this.get_usernameTextbox().value === '') {
            this._environment.safelyRemoveCssClassOnElement(document.getElementById('userlayer'), 'invisible');
        }
    },
    
    onPasswordBlur: function PCLoginComponent_PCLoginComponent$onPasswordBlur(element) {
        if (!this.get_passwordTextbox()) {
            return;
        }
        if (this.get_passwordTextbox().value === '') {
            this._environment.safelyRemoveCssClassOnElement(document.getElementById('passlayer'), 'invisible');
        }
    },
    
    onUsernameFocus: function PCLoginComponent_PCLoginComponent$onUsernameFocus(element) {
        this._environment.safelySetCssClassOnElement(document.getElementById('userlayer'), 'invisible');
    },
    
    onPasswordFocus: function PCLoginComponent_PCLoginComponent$onPasswordFocus(element) {
        this._environment.safelySetCssClassOnElement(document.getElementById('passlayer'), 'invisible');
    }
}


PCLoginComponent.PCLoginComponentMessageTokenNames.createClass('PCLoginComponent.PCLoginComponentMessageTokenNames');
PCLoginComponent.PCLoginComponent.createClass('PCLoginComponent.PCLoginComponent', AbstractMMCoreComponents.AbstractLoginComponent);
PCLoginComponent.PCLoginComponentMessageTokenNames.enteR_CREDENTIALS = 'Please enter your credentials';

// ---- 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,
    _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._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);
        }
    },
    
    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();
            xsltParameters['cash-balance'] = this._accountService$2.get_creditAccountDetails().WithdrawalBalance.format('N', true);
            xsltParameters['credit-limit'] = ((this._accountService$2.get_creditAccountDetails().TradingBalance - this._accountService$2.get_creditAccountDetails().WithdrawalBalance)).format('N', true);
            xsltParameters['free-balance'] = this._accountService$2.get_freeAccountDetails().WithdrawalBalance.format('N', true);
            xsltParameters['available-funds'] = ((this._accountService$2.get_creditAccountDetails().TradingBalance + this._accountService$2.get_freeAccountDetails().TradingBalance)).format('N', true);
            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.changeActionOnLogout();
        this.disable();
        this._userService$2.logout(Delegate.create(this, function(result) {
            this.enable();
        }), 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);
        }
    },
    
    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('ChannelNavigationComponent');

////////////////////////////////////////////////////////////////////////////////
// ChannelNavigationComponent.ChannelNavigationComponent

ChannelNavigationComponent.ChannelNavigationComponent = function ChannelNavigationComponent_ChannelNavigationComponent() {
    this._navigationSection$1 = String.Empty;
    this._currentChannel$1 = String.Empty;
    ChannelNavigationComponent.ChannelNavigationComponent.constructBase(this);
}
ChannelNavigationComponent.ChannelNavigationComponent.prototype = {
    _parameters$1: null,
    _repaintOnUserChanged$1: false,
    _repaintOnPageFilterChanged$1: false,
    _protocol$1: null,
    _activeElement$1: null,
    _ignoreCurrentActionAsSelectedChannel$1: true,
    _navigationService$1: null,
    
    setNavigationService: function ChannelNavigationComponent_ChannelNavigationComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$1 = navigationService;
    },
    
    onPageFilterChanged: function ChannelNavigationComponent_ChannelNavigationComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (this._repaintOnPageFilterChanged$1) {
            this.repaint();
        }
        else {
            this._setActiveElement$1();
        }
    },
    
    _userService$1: null,
    
    setUserService: function ChannelNavigationComponent_ChannelNavigationComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$1 = userService;
    },
    
    onUserChanged: function ChannelNavigationComponent_ChannelNavigationComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        if (this._repaintOnUserChanged$1) {
            this.repaint();
        }
    },
    
    init: function ChannelNavigationComponent_ChannelNavigationComponent$init(environment, componentInstanceName, domElementId, parameters) {
        ChannelNavigationComponent.ChannelNavigationComponent.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._navigationSection$1 = parameters['navigation-section'];
        this._currentChannel$1 = parameters['current-channel'];
        this._ignoreCurrentActionAsSelectedChannel$1 = Boolean.parse(parameters['ignore-current-action-as-selected-channel'].toString());
    },
    
    start: function ChannelNavigationComponent_ChannelNavigationComponent$start() {
        this.repaint();
    },
    
    repaint: function ChannelNavigationComponent_ChannelNavigationComponent$repaint() {
        this._log.debug('Repaint');
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['navigation-section'] = (String.isNullOrEmpty(this._navigationSection$1)) ? 'channels' : this._navigationSection$1;
        xsltParameters['current-channel'] = this._currentChannel$1;
        this.show();
        this._environment.transformAndUpdate(this._domElementId, this._parameters$1.get_contentUrl(), this._parameters$1.get_xsltUrl(), xsltParameters, Delegate.create(this, function() {
            Framework.Behavior.Binding.BehaviorBinder.autoBind(this._environment.getDomElement(this._domElementId), (this));
            this._setActiveElement$1();
        }));
    },
    
    setPageFilterEventHandler: function ChannelNavigationComponent_ChannelNavigationComponent$setPageFilterEventHandler(sender, eventArgs) {
        var liElement = eventArgs.domElement.parentNode;
        var area = eventArgs.parameters.getAsString('area');
        if (liElement.tagName !== 'LI') {
            throw new Error('Expected an LI element');
        }
        this._deactivateElement$1();
        this._activateElement$1(liElement);
        var pageFilter = {};
        pageFilter['action'] = liElement.attributes.getNamedItem('action').value;
        this._log.debug('SetPageFilter');
        this._navigationService$1.goTo(area, pageFilter);
        window.event.returnValue = false;
    },
    
    setPageFilterWithRegionEventHandler: function ChannelNavigationComponent_ChannelNavigationComponent$setPageFilterWithRegionEventHandler(sender, eventArgs) {
        var liElement = eventArgs.domElement.parentNode;
        var area = eventArgs.parameters.getAsString('area');
        var region = eventArgs.parameters.getAsString('region');
        if (liElement.tagName !== 'LI') {
            throw new Error('Expected an LI element');
        }
        if (liElement.className.indexOf(' cur') === -1 && liElement.className.indexOf('cur') === -1) {
            this._deactivateElement$1();
            this._activateElement$1(liElement);
        }
        var pageFilter = {};
        pageFilter['action'] = liElement.attributes.getNamedItem('action').value;
        this._log.debug('SetPageFilter, region=' + region);
        this._environment.changeRegion(region, area, pageFilter);
        window.event.returnValue = false;
    },
    
    togglePart: function ChannelNavigationComponent_ChannelNavigationComponent$togglePart(parId, componentId) {
        var el = document.getElementById(componentId);
        if (el.style.display === 'block') {
            el.style.display = 'none';
            (parId).innerText = (parId).innerText.replace('Close', 'Open');
        }
        else {
            el.style.display = 'block';
            (parId).innerText = (parId).innerText.replace('Open', 'Close');
        }
    },
    
    _setActiveElement$1: function ChannelNavigationComponent_ChannelNavigationComponent$_setActiveElement$1() {
        var actionToChoose;
        if (this._ignoreCurrentActionAsSelectedChannel$1) {
            actionToChoose = this._currentChannel$1;
        }
        else {
            actionToChoose = this._navigationService$1.getAction();
            if (String.isNullOrEmpty(actionToChoose)) {
                actionToChoose = null;
            }
            if (!isNullOrUndefined(this._currentChannel$1) && this._currentChannel$1.length) {
                actionToChoose = this._currentChannel$1;
            }
        }
        var liElements = this._environment.getDomElement(this._domElementId).getElementsByTagName('LI');
        this._deactivateElement$1();
        for (var i = 0; i < liElements.length; i++) {
            var liElement = liElements[i];
            if (liElement.attributes.getNamedItem('action') && liElement.attributes.getNamedItem('action').value === actionToChoose) {
                this._activateElement$1(liElement);
                break;
            }
        }
    },
    
    _activateElement$1: function ChannelNavigationComponent_ChannelNavigationComponent$_activateElement$1(liElement) {
        this._activeElement$1 = liElement;
        this._environment.safelySetCssClassOnElement(this._activeElement$1, 'cur');
    },
    
    _deactivateElement$1: function ChannelNavigationComponent_ChannelNavigationComponent$_deactivateElement$1() {
        if (this._activeElement$1) {
            this._environment.safelyRemoveCssClassOnElement(this._activeElement$1, 'cur');
            this._activeElement$1 = null;
        }
    }
}


ChannelNavigationComponent.ChannelNavigationComponent.createClass('ChannelNavigationComponent.ChannelNavigationComponent', 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('LastDrawResultComponent');

////////////////////////////////////////////////////////////////////////////////
// LastDrawResultComponent.LastDrawResultComponent

LastDrawResultComponent.LastDrawResultComponent = function LastDrawResultComponent_LastDrawResultComponent() {
    this._visibleOnView$2 = [];
    this._notVisibleOnView$2 = [];
    LastDrawResultComponent.LastDrawResultComponent.constructBase(this);
}
LastDrawResultComponent.LastDrawResultComponent.prototype = {
    _parameters$2: null,
    _customheader$2: '',
    _initiallyOpened$2: true,
    _doShowTable$2: true,
    _doShowResults$2: true,
    _urlResultsArea$2: null,
    _urlResultsAction$2: null,
    _urlPlayArea$2: null,
    _urlPlayAction$2: null,
    _navigationService$2: null,
    
    setNavigationService: function LastDrawResultComponent_LastDrawResultComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, 'view');
    },
    
    onPageFilterChanged: function LastDrawResultComponent_LastDrawResultComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    get_isComponentVisible: function LastDrawResultComponent_LastDrawResultComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters$2.get_visibleOn(), this._parameters$2.get_notVisibleOn(), this._navigationService$2.getAction()) && this.isVisible(this._visibleOnView$2, this._notVisibleOnView$2, this._navigationService$2.getPageFilter()['view']);
    },
    
    init: function LastDrawResultComponent_LastDrawResultComponent$init(environment, componentInstanceName, domElementId, parameters) {
        parameters['content-url'] = (parameters['content-url']).replace('${language}', environment.getLanguage());
        if (Object.keyExists(parameters, 'custom-header')) {
            this._customheader$2 = parameters['custom-header'];
        }
        if (Object.keyExists(parameters, 'initially-opened')) {
            this._initiallyOpened$2 = Boolean.parse(parameters['initially-opened']);
        }
        if (Object.keyExists(parameters, 'url-results-area') && (parameters['url-results-area']).length > 0) {
            this._urlResultsArea$2 = parameters['url-results-area'];
        }
        if (Object.keyExists(parameters, 'url-results-action') && (parameters['url-results-action']).length > 0) {
            this._urlResultsAction$2 = parameters['url-results-action'];
        }
        if (Object.keyExists(parameters, 'url-play-area') && (parameters['url-play-area']).length > 0) {
            this._urlPlayArea$2 = parameters['url-play-area'];
        }
        if (Object.keyExists(parameters, 'url-play-action') && (parameters['url-play-action']).length > 0) {
            this._urlPlayAction$2 = parameters['url-play-action'];
        }
        this._doShowTable$2 = Boolean.parse(parameters['do-show-table']);
        this._doShowResults$2 = Boolean.parse(parameters['do-show-results']);
        LastDrawResultComponent.LastDrawResultComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$2 = new Framework.CommonComponentParameters(parameters);
        this._getVisibleOnView$2(parameters);
    },
    
    _getVisibleOnView$2: function LastDrawResultComponent_LastDrawResultComponent$_getVisibleOnView$2(parameters) {
        if (!String.isNullOrEmpty(parameters['visible-on-view'])) {
            this._visibleOnView$2 = (parameters['visible-on-view']).split(',');
        }
        if (!String.isNullOrEmpty(parameters['not-visible-on-view'])) {
            this._notVisibleOnView$2 = (parameters['not-visible-on-view']).split(',');
        }
        var $enum1 = this._visibleOnView$2.getEnumerator();
        while ($enum1.moveNext()) {
            var i = $enum1.get_current();
            var $enum2 = this._notVisibleOnView$2.getEnumerator();
            while ($enum2.moveNext()) {
                var j = $enum2.get_current();
                if (i === j) {
                    throw new Error(String.format('visible-on-view and not-visible-on-view cannot contain the same action(s) [{0}]', i));
                }
            }
        }
    },
    
    getXsltParameters: function LastDrawResultComponent_LastDrawResultComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['custom-header'] = this._customheader$2;
        xsltParameters['initially-opened'] = this._initiallyOpened$2;
        xsltParameters['do-show-table'] = this._doShowTable$2;
        xsltParameters['do-show-results'] = this._doShowResults$2;
        xsltParameters['culture-name'] = CultureInfo.Current.name;
        if (!isNullOrUndefined(this._urlResultsArea$2) && !isNullOrUndefined(this._urlResultsAction$2)) {
            xsltParameters['url-results-link'] = this._urlResultsArea$2;
            xsltParameters['url-results-action'] = this._urlResultsAction$2;
        }
        if (!isNullOrUndefined(this._urlPlayArea$2) && !isNullOrUndefined(this._urlPlayAction$2)) {
            xsltParameters['url-play-area'] = this._urlPlayArea$2;
            xsltParameters['url-play-action'] = this._urlPlayAction$2;
        }
        return xsltParameters;
    },
    
    toggleContent: function LastDrawResultComponent_LastDrawResultComponent$toggleContent(idSuffix) {
        var oElement = document.getElementById(this._domElementId + idSuffix);
        var displayState = oElement.style.display.toString();
        oElement.style.display = (displayState === 'none') ? 'block' : 'none';
    },
    
    goToResults: function LastDrawResultComponent_LastDrawResultComponent$goToResults() {
        if (isNullOrUndefined(this._urlResultsArea$2) || isNullOrUndefined(this._urlResultsAction$2)) {
            return;
        }
        this._navigationService$2.goTo(this._urlResultsArea$2, { action: this._urlResultsAction$2 });
        window.event.returnValue = false;
    },
    
    goToPlay: function LastDrawResultComponent_LastDrawResultComponent$goToPlay() {
        if (isNullOrUndefined(this._urlPlayArea$2) || isNullOrUndefined(this._urlPlayAction$2)) {
            return;
        }
        this._navigationService$2.goTo(this._urlPlayArea$2, { action: this._urlPlayAction$2 });
        window.event.returnValue = false;
    },
    
    goToPlayEventHandler: function LastDrawResultComponent_LastDrawResultComponent$goToPlayEventHandler(eventArgs) {
        if (isNullOrUndefined(this._urlPlayArea$2) || isNullOrUndefined(this._urlPlayAction$2)) {
            return;
        }
        this._navigationService$2.goTo(this._urlPlayArea$2, { action: this._urlPlayAction$2 });
        window.event.returnValue = false;
    }
}


LastDrawResultComponent.LastDrawResultComponent.createClass('LastDrawResultComponent.LastDrawResultComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('ResultsSelectorComponent');

////////////////////////////////////////////////////////////////////////////////
// ResultsSelectorComponent.ResultsSelectorComponent

ResultsSelectorComponent.ResultsSelectorComponent = function ResultsSelectorComponent_ResultsSelectorComponent() {
    this._parseGameSetsAsNumber$2 = [ 'Loto', 'Toto3', 'Polla4', 'LotoEspecial' ];
    this._xmlHttpRequestDecorator$2 = new Framework.XMLHttpRequestDecorator();
    ResultsSelectorComponent.ResultsSelectorComponent.constructBase(this);
}
ResultsSelectorComponent.ResultsSelectorComponent.prototype = {
    _parseAsNumber$2: false,
    _historyUrlCsv$2: null,
    _historyUrlXls$2: null,
    _displayHistoryXlsLink$2: false,
    _useViewFilter$2: false,
    _gameExternalId$2: '',
    _extractGameParameters$2: true,
    parametersFetched: false,
    renderIsDone: false,
    _resultsDetailsContainer$2: '',
    _resultsDetailsXsltUrl$2: '',
    _resultsDetailsNoWinnerXsltUrl$2: '',
    _resultsDetailsNoWinnerByDrawDateContentUrl$2: '',
    _resultsDetailsNoWinnerByDrawNumberContentUrl$2: '',
    _hideDetailsContainerOnActions$2: '',
    _useExternalIdForImageNames$2: false,
    _resultsDetailsAlreadyTransformed$2: false,
    _activeFilter$2: '',
    _dateTimeFormat$2: '',
    _shortDateFormat$2: '',
    _numberSize$2: null,
    _numberSizeAdd$2: null,
    _validateNumberSize$2: false,
    _showResultsIfNoWinner$2: false,
    _checkAddSet$2: false,
    _previouslyEnteredValues$2: null,
    _navigationService$2: null,
    
    setNavigationService: function ResultsSelectorComponent_ResultsSelectorComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    onPageFilterChanged: function ResultsSelectorComponent_ResultsSelectorComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        var filters = this._parameters.get_visibleOn();
        this._removeResultsDetails$2();
        var filterValue = this._getFilterViewValue$2();
        if (filterValue === filters[0]) {
            this.update();
            return;
        }
        for (var i = 1; i < filters.length; i++) {
            if (filterValue === filters[i]) {
                return;
            }
        }
        this.update();
    },
    
    _userService$2: null,
    
    setUserService: function ResultsSelectorComponent_ResultsSelectorComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserChanged: function ResultsSelectorComponent_ResultsSelectorComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
    },
    
    _dgeService$2: null,
    
    setDGEService: function ResultsSelectorComponent_ResultsSelectorComponent$setDGEService(dgeService) {
        this._log.debug('SetDGEService');
        this._dgeService$2 = dgeService;
    },
    
    init: function ResultsSelectorComponent_ResultsSelectorComponent$init(environment, componentInstanceName, domElementId, parameters) {
        ResultsSelectorComponent.ResultsSelectorComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._gameExternalId$2 = parameters['game-externalid'];
        this._historyUrlCsv$2 = parameters['history-url-csv'];
        this._historyUrlCsv$2 = this._historyUrlCsv$2.replace('${language}', this._environment.getLanguage());
        this._historyUrlCsv$2 = String.format(this._historyUrlCsv$2, this._gameExternalId$2);
        this._historyUrlXls$2 = parameters['history-url-xls'];
        this._historyUrlXls$2 = this._historyUrlXls$2.replace('${language}', this._environment.getLanguage());
        this._historyUrlXls$2 = String.format(this._historyUrlXls$2, this._gameExternalId$2);
        this._displayHistoryXlsLink$2 = (parameters['display-history-xls-link']) ? Boolean.parse(parameters['display-history-xls-link'].toString()) : false;
        this._extractGameParameters$2 = (parameters['extract-game-parameters']) ? Boolean.parse(parameters['extract-game-parameters'].toString()) : true;
        this._loadGameConfigurationParameters$2();
        this._resultsDetailsContainer$2 = parameters['results-details-container'];
        this._resultsDetailsXsltUrl$2 = parameters['results-details-xslt-url'];
        this._resultsDetailsNoWinnerXsltUrl$2 = parameters['results-details-nowinner-xslt-url'];
        this._resultsDetailsNoWinnerByDrawDateContentUrl$2 = parameters['results-details-nowinner-by-drawdate-content-url'];
        this._resultsDetailsNoWinnerByDrawNumberContentUrl$2 = parameters['results-details-nowinner-by-drawnumber-content-url'];
        this._resultsDetailsAlreadyTransformed$2 = false;
        this._dateTimeFormat$2 = parameters['date-time-format'];
        this._shortDateFormat$2 = parameters['short-date-format'];
        this._hideDetailsContainerOnActions$2 = ',' + parameters['hide-details-container-on-viewfilters'].toString() + ',';
        this._useViewFilter$2 = (parameters['use-view-filter']) ? Boolean.parse(parameters['use-view-filter'].toString()) : true;
        this._numberSize$2 = (isNullOrUndefined(parameters['number-size'].toString())) ? 2 : parseInt(parameters['number-size'].toString(), 10);
        this._numberSizeAdd$2 = (isNullOrUndefined(parameters['number-size-add'].toString())) ? 2 : parseInt(parameters['number-size-add'].toString(), 10);
        this._validateNumberSize$2 = (parameters['validate-number-size']) ? Boolean.parse(parameters['validate-number-size'].toString()) : true;
        this._showResultsIfNoWinner$2 = (parameters['show-result-if-nowinner']) ? Boolean.parse(parameters['show-result-if-nowinner'].toString()) : false;
        this._parseAsNumber$2 = this._parseGameSetsAsNumber$2.contains(this._gameExternalId$2);
        if (Object.keyExists(parameters, 'use-external-id-for-image-names')) {
            this._useExternalIdForImageNames$2 = Boolean.parse(parameters['use-external-id-for-image-names']);
        }
        this._parameters = new Framework.CommonComponentParameters(parameters);
    },
    
    renderComplete: function ResultsSelectorComponent_ResultsSelectorComponent$renderComplete(eventArgs) {
        this._removeResultsDetails$2();
        this._loadDatepicker$2();
        if (this._resultsDetailsAlreadyTransformed$2) {
            this._resultsDetailsAlreadyTransformed$2 = false;
        }
        else {
            this._setupResultsDetails$2();
        }
    },
    
    get_isComponentVisible: function ResultsSelectorComponent_ResultsSelectorComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    getXsltParameters: function ResultsSelectorComponent_ResultsSelectorComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['game-id'] = this._gameExternalId$2;
        xsltParameters['history-url-csv'] = this._historyUrlCsv$2;
        xsltParameters['history-url-xls'] = this._historyUrlXls$2;
        xsltParameters['display-history-xls-link'] = this._displayHistoryXlsLink$2;
        xsltParameters['number-size'] = this._numberSize$2;
        this.renderIsDone = true;
        if (this._extractGameParameters$2 && this.parametersFetched) {
            xsltParameters['hasAddSet'] = (this._getSetCount$2() > 1) ? 'true' : 'false';
            xsltParameters['count'] = this._getGameParam$2(1, 'count');
            xsltParameters['lowSymbol'] = this._getGameParam$2(1, 'lowSymbol');
            xsltParameters['highSymbol'] = this._getGameParam$2(1, 'highSymbol');
            if (this._getSetCount$2() > 1) {
                xsltParameters['count-add'] = this._getGameParam$2(2, 'count');
                xsltParameters['number-size-add'] = this._numberSizeAdd$2;
                xsltParameters['lowSymbol-add'] = this._getGameParam$2(2, 'lowSymbol');
                xsltParameters['highSymbol-add'] = this._getGameParam$2(2, 'highSymbol');
            }
        }
        return xsltParameters;
    },
    
    getDrawByNumberEventHandler: function ResultsSelectorComponent_ResultsSelectorComponent$getDrawByNumberEventHandler(sender, eventArgs) {
        this._clearErrorDivs$2();
        var componentFilter = document.getElementById(this._domElementId + '-drawnumber-filters');
        var inputElement = document.getElementById(this._domElementId + '-drawnumber');
        if (!this._checkDrawNumber$2(inputElement)) {
            this._handleDisplayState$2('-error-number-drawnumber', 'block');
            return;
        }
        this._dgeService$2.setResultsSearchFilters(this._getGameInfo$2('externalId'), this._getGameInfo$2('name'), new Date(), '', Number.parse(inputElement.value), 'draw');
        this._setFilterViewValue$2(componentFilter.attributes.getNamedItem('action').value);
    },
    
    getDrawByDateEventHandler: function ResultsSelectorComponent_ResultsSelectorComponent$getDrawByDateEventHandler(sender, eventArgs) {
        this._clearErrorDivs$2();
        var componentFilter = document.getElementById(this._domElementId + '-drawdate-filters');
        var dateContainer = document.getElementById(this._domElementId + '-drawdate');
        if (!this.checkDrawDate(dateContainer)) {
            this._handleDisplayState$2('-error-drawdate', 'block');
            return;
        }
        var dateParts = dateContainer.value.split('/');
        var year = Number.parse(dateParts[2]);
        var month = Number.parse(dateParts[1]) - 1;
        var day = Number.parse(dateParts[0]);
        var currDateTime = new Date();
        var offset1 = currDateTime.getTimezoneOffset();
        var demandedDateTime = new Date(year, month, day);
        var offset2 = demandedDateTime.getTimezoneOffset();
        var diff = offset2 - offset1;
        if (diff < 0) {
            diff = 0;
        }
        var dateTime = new Date(year, month, day, diff / 60);
        this._dgeService$2.setResultsSearchFilters(this._getGameInfo$2('externalId'), this._getGameInfo$2('name'), dateTime, '', 0, 'date');
        this._setFilterViewValue$2(componentFilter.attributes.getNamedItem('action').value);
    },
    
    _getFilterViewValue$2: function ResultsSelectorComponent_ResultsSelectorComponent$_getFilterViewValue$2() {
        var pageFilter = this._navigationService$2.getPageFilter();
        var viewFilter = (this._useViewFilter$2) ? pageFilter['view'] : pageFilter['action'];
        return (!viewFilter) ? null : viewFilter.toString();
    },
    
    _setFilterViewValue$2: function ResultsSelectorComponent_ResultsSelectorComponent$_setFilterViewValue$2(value) {
        var pageFilter = this._navigationService$2.getPageFilter();
        if (this._useViewFilter$2) {
            pageFilter['view'] = value;
        }
        else {
            pageFilter['action'] = value;
        }
        this._navigationService$2.setPageFilter(pageFilter);
    },
    
    getJackpotEventHandler: function ResultsSelectorComponent_ResultsSelectorComponent$getJackpotEventHandler(sender, eventArgs) {
        this._clearErrorDivs$2();
        var componentFilter = document.getElementById(this._domElementId + '-jackpot-filters');
        this._activeFilter$2 = 'jackpot';
        if (!this._areNumbersAllowed$2()) {
            return;
        }
        this._setFilterViewValue$2(componentFilter.attributes.getNamedItem('action').value);
        this._setupResultsDetails$2();
    },
    
    getNumbersEventHandler: function ResultsSelectorComponent_ResultsSelectorComponent$getNumbersEventHandler(sender, eventArgs) {
        if (!this._areNumbersAllowed$2()) {
            return;
        }
        var componentFilter = document.getElementById(this._domElementId + '-numbers-filters');
        this._navigationService$2.setAction(componentFilter.attributes.getNamedItem('action').value);
        this._resultsDetailsAlreadyTransformed$2 = false;
        this._setupResultsDetails$2();
    },
    
    checkIsAllowedNumberEventHandler: function ResultsSelectorComponent_ResultsSelectorComponent$checkIsAllowedNumberEventHandler(sender, eventArgs) {
        this._areNumbersAllowed$2();
    },
    
    _loadDatepicker$2: function ResultsSelectorComponent_ResultsSelectorComponent$_loadDatepicker$2() {
        var scriptToRun = new StringBuilder('window.jQuery(function(){window.jQuery(\'#');
        scriptToRun.append(this._domElementId);
        scriptToRun.append('-drawdate\').datepicker(window.jQuery.extend({ changeYear: true, changeMonth: true }, window.jQuery.datepicker.regional[\'es\']));});');
        eval(scriptToRun.toString());
    },
    
    _gameParameterXML$2: null,
    
    _loadGameConfigurationParameters$2: function ResultsSelectorComponent_ResultsSelectorComponent$_loadGameConfigurationParameters$2() {
        this._xmlHttpRequestDecorator$2.onreadystatechange = Delegate.create(this, function() {
            if (this._xmlHttpRequestDecorator$2.readyState === 4) {
                if (this._xmlHttpRequestDecorator$2.status === 200 || this._xmlHttpRequestDecorator$2.status === 304) {
                    this._gameParameterXML$2 = this._xmlHttpRequestDecorator$2.responseXML;
                    this.parametersFetched = true;
                    if (this.renderIsDone) {
                        this.update();
                    }
                }
            }
        });
        var configPath = String.format('/cache/dgGameParams/{0}/{1}.xml', this._environment.getLanguage(), this._gameExternalId$2);
        this._xmlHttpRequestDecorator$2.open('GET', configPath, true);
        this._xmlHttpRequestDecorator$2.send(null);
    },
    
    _getSetCount$2: function ResultsSelectorComponent_ResultsSelectorComponent$_getSetCount$2() {
        var sets = this._gameParameterXML$2.selectNodes(ResultsSelectorComponent.ResultsSelectorComponent._gamE_INFO_PATH$2 + 'params/parameters/sets/set');
        return sets.length;
    },
    
    _getGameParam$2: function ResultsSelectorComponent_ResultsSelectorComponent$_getGameParam$2(setId, paramName) {
        var setNode = this._gameParameterXML$2.selectSingleNode(String.format(ResultsSelectorComponent.ResultsSelectorComponent._gamE_INFO_PATH$2 + 'params/parameters/sets/set[@id={0}]', setId));
        if (isNullOrUndefined(setNode)) {
            return null;
        }
        var attribs = setNode.attributes;
        var attr = attribs.getNamedItem(paramName);
        return (!isNullOrUndefined(attr)) ? attr.text : null;
    },
    
    _getGameInfo$2: function ResultsSelectorComponent_ResultsSelectorComponent$_getGameInfo$2(parameter) {
        var oParameterNode = this._gameParameterXML$2.selectSingleNode(ResultsSelectorComponent.ResultsSelectorComponent._gamE_INFO_PATH$2 + parameter);
        if (isNullOrUndefined(oParameterNode)) {
            return null;
        }
        return oParameterNode.text;
    },
    
    _clearErrorDivs$2: function ResultsSelectorComponent_ResultsSelectorComponent$_clearErrorDivs$2() {
        this._handleDisplayState$2('-error-number-drawnumber', 'none');
        this._handleDisplayState$2('-error-drawdate', 'none');
        this._handleDisplayState$2('-error-number', 'none');
        this._handleDisplayState$2('-error-number-length', 'none');
    },
    
    _checkDrawNumber$2: function ResultsSelectorComponent_ResultsSelectorComponent$_checkDrawNumber$2(oInputElement) {
        var drawNumber = oInputElement.value.trim();
        if (String.isNullOrEmpty(drawNumber)) {
            return false;
        }
        if (drawNumber !== drawNumber.replace(new RegExp('\\D'), '')) {
            return false;
        }
        var dn = Number.parse(drawNumber);
        if (dn.toString() === 'NaN') {
            return false;
        }
        return true;
    },
    
    checkDrawDate: function ResultsSelectorComponent_ResultsSelectorComponent$checkDrawDate(oInputElement) {
        var drawNumber = oInputElement.value.trim();
        if (String.isNullOrEmpty(drawNumber)) {
            return false;
        }
        return true;
    },
    
    _handleDisplayState$2: function ResultsSelectorComponent_ResultsSelectorComponent$_handleDisplayState$2(key, state) {
        var errorElem = document.getElementById(this._domElementId + key);
        if (!isNullOrUndefined(errorElem)) {
            errorElem.style.display = state;
        }
    },
    
    _isResultsForKansasProcessing$2: function ResultsSelectorComponent_ResultsSelectorComponent$_isResultsForKansasProcessing$2() {
        return (this._activeFilter$2 && this._activeFilter$2 === 'draw');
    },
    
    _getNumbersSelected$2: function ResultsSelectorComponent_ResultsSelectorComponent$_getNumbersSelected$2() {
        if (!this._extractGameParameters$2 || !this.parametersFetched) {
            return null;
        }
        var setCnt = this._getSetCount$2();
        var dictionary = {};
        for (var i = 0; i < setCnt; i++) {
            var count = parseInt(this._getGameParam$2(i + 1, 'count'), 10);
            var numbers = new Array(count);
            for (var j = 0; j < count; j++) {
                var elemNumber = this.getPrivateDomElement(String.format('{0}-set-{1}-number-{2}', this._activeFilter$2, i + 1, j + 1));
                if (isNullOrUndefined(elemNumber)) {
                    return null;
                }
                if (this._parseAsNumber$2) {
                    numbers[j] = parseInt((elemNumber).value, 10).toString();
                }
                else {
                    numbers[j] = (elemNumber).value;
                }
            }
            var key = (i + 1).toString();
            dictionary[key] = numbers;
        }
        return dictionary;
    },
    
    _areNumbersAllowed$2: function ResultsSelectorComponent_ResultsSelectorComponent$_areNumbersAllowed$2() {
        var isOptional = false;
        var dictionary = this._getNumbersSelected$2();
        var $dict1 = dictionary;
        for (var $key2 in $dict1) {
            var entry = { key: $key2, value: $dict1[$key2] };
            var set = parseInt(entry.key, 10);
            if (!this._checkAddSet$2 && set > 1) {
                isOptional = true;
            }
            var numbers = entry.value;
            var $enum3 = numbers.getEnumerator();
            while ($enum3.moveNext()) {
                var number = $enum3.get_current();
                if (!this._isNumberAllowed$2(set, number, isOptional)) {
                    return false;
                }
            }
        }
        return true;
    },
    
    _isNumberAllowed$2: function ResultsSelectorComponent_ResultsSelectorComponent$_isNumberAllowed$2(set, stringValue, isOptional) {
        if (isOptional && String.isNullOrEmpty(stringValue)) {
            return true;
        }
        this._handleDisplayState$2('-error-number', 'none');
        this._handleDisplayState$2('-error-number-length', 'none');
        this._handleDisplayState$2('-error-number-length-add', 'none');
        this._handleDisplayState$2('-error-range', 'none');
        this._handleDisplayState$2('-error-range-add', 'none');
        var value = parseInt(stringValue, 10);
        if (this._validateNumberSize$2) {
            if (!this._validateNumSize$2(stringValue, set)) {
                return false;
            }
        }
        if (isNaN(value)) {
            this._handleDisplayState$2('-error-number', 'block');
            return false;
        }
        if (this._extractGameParameters$2) {
            return this._validateNumberRange$2(set, value);
        }
        return true;
    },
    
    _validateNumberRange$2: function ResultsSelectorComponent_ResultsSelectorComponent$_validateNumberRange$2(set, value) {
        var minNumber = Number.parse(this._getGameParam$2(set, 'lowSymbol'));
        var maxNumber = Number.parse(this._getGameParam$2(set, 'highSymbol'));
        if (minNumber > value || value > maxNumber) {
            var errorelemId = (set < 2) ? '-error-range' : '-error-range-add';
            this._handleDisplayState$2(errorelemId, 'block');
            return false;
        }
        return this._checkRepetition$2(set);
    },
    
    _validateNumSize$2: function ResultsSelectorComponent_ResultsSelectorComponent$_validateNumSize$2(stringValue, set) {
        var numSize = (set < 2) ? this._numberSize$2 : this._numberSizeAdd$2;
        var errorElemId = (set < 2) ? '-error-number-length' : '-error-number-length-add';
        if (isNullOrUndefined(stringValue) || stringValue.length !== numSize) {
            this._handleDisplayState$2(errorElemId, 'block');
            return false;
        }
        return true;
    },
    
    _checkRepetition$2: function ResultsSelectorComponent_ResultsSelectorComponent$_checkRepetition$2(set) {
        var isAllowed = Boolean.parse(this._getGameParam$2(set, 'repetitionAllowed'));
        this._handleDisplayState$2('-error-repetition', 'none');
        if (isAllowed) {
            return true;
        }
        var containerElement = this.getPrivateDomElement(this._activeFilter$2);
        var inputElements = containerElement.getElementsByTagName('input');
        var dictionary = {};
        for (var i = 0; i < inputElements.length; i++) {
            var inputElement = inputElements[i];
            var idPart = String.format('{0}-jackpot-set-{1}', this._domElementId, set);
            var notContain = String.format('{0}-numbers-drawnumber', this._domElementId);
            if (inputElement.type === 'text' && !(inputElement.id === notContain) && (inputElement.id.startsWith(idPart))) {
                if (!String.isNullOrEmpty(inputElement.value)) {
                    if (!Object.keyExists(dictionary, inputElement.value)) {
                        dictionary[inputElement.value] = inputElement.value;
                    }
                    else {
                        this._handleDisplayState$2('-error-repetition', 'block');
                        return false;
                    }
                }
            }
        }
        return true;
    },
    
    _viewFilterIsInListOfShouldBeHidden$2: function ResultsSelectorComponent_ResultsSelectorComponent$_viewFilterIsInListOfShouldBeHidden$2() {
        if (String.isNullOrEmpty(this._hideDetailsContainerOnActions$2)) {
            return false;
        }
        if (!Object.keyExists(this._navigationService$2.getPageFilter(), 'view')) {
            return false;
        }
        var viewFilter = this._navigationService$2.getPageFilter()['view'].toString();
        return this._hideDetailsContainerOnActions$2.indexOf(',' + viewFilter + ',') !== -1;
    },
    
    _setupResultsDetails$2: function ResultsSelectorComponent_ResultsSelectorComponent$_setupResultsDetails$2() {
        if (this._viewFilterIsInListOfShouldBeHidden$2()) {
            this._getOrCreateContentHolder$2().style.display = 'none';
            return;
        }
        if (this._isResultsForKansasProcessing$2()) {
            return;
        }
        var selNumbers = this._getNumbersSelected$2();
        if (isNullOrUndefined(selNumbers)) {
            return;
        }
        var numbers = selNumbers['1'];
        if (isNullOrUndefined(selNumbers) || Object.getKeyCount(selNumbers) < 1) {
            return;
        }
        var selectedNumbersString = this._sortNumbersIfNotOrdered$2(selNumbers);
        var contentHolder = this._getOrCreateContentHolder$2();
        if (!contentHolder) {
            return;
        }
        var isCheckNumbers = this._activeFilter$2 === 'numbers';
        var drawNumber = (isCheckNumbers) ? this._extractDrawNumberIfSearchParam$2() : null;
        var drawDate = (isCheckNumbers) ? this._extractDrawDateIfSearchParam$2() : null;
        this._dgeService$2.getHypotheticalWinnings(Delegate.create(this, function(response) {
            var winningInfos = response;
            if ((!winningInfos || winningInfos.length <= 0) && this._showResultsIfNoWinner$2 && isCheckNumbers) {
                this._executeResultInfoProcessing$2(contentHolder, isCheckNumbers, numbers, drawNumber, drawDate);
            }
            else {
                this._executeWinningInfoProcessing$2(winningInfos, contentHolder, isCheckNumbers, numbers, drawNumber, drawDate);
            }
        }), Delegate.create(this, function(exception) {
            alert(exception.message);
            this._executeWinningInfoProcessing$2(null, contentHolder, isCheckNumbers, numbers, drawNumber, drawDate);
        }), this._gameExternalId$2, selectedNumbersString, drawNumber, drawDate, null);
    },
    
    _extractDrawNumberIfSearchParam$2: function ResultsSelectorComponent_ResultsSelectorComponent$_extractDrawNumberIfSearchParam$2() {
        var drawOption = document.getElementById(this._domElementId + '-numbers-drawoption');
        if (drawOption.checked) {
            var drawNumberHolder = document.getElementById(this._domElementId + '-numbers-drawnumber');
            if (!this._checkDrawNumber$2(drawNumberHolder)) {
                this._handleDisplayState$2('-error-number', 'block');
                return null;
            }
            return (drawNumberHolder).value;
        }
        return null;
    },
    
    _extractDrawDateIfSearchParam$2: function ResultsSelectorComponent_ResultsSelectorComponent$_extractDrawDateIfSearchParam$2() {
        var dateOption = document.getElementById(this._domElementId + '-numbers-dateoption');
        if (dateOption.checked) {
            var ScriptToRun = String.format('var oNumbersDate = window.jQuery(\'#{0}-numbers-datepicker\').datepicker(\'getDate\'); ' + 'document' + '.getElementById(\'{0}-numbers-selecteddate\')' + '.innerHTML = oNumbersDate.getDate() + \'/\' + (oNumbersDate.getMonth()+1) + \'/\' +(oNumbersDate.getFullYear());', this._domElementId);
            eval(ScriptToRun);
            var dateContainer = document.getElementById(this._domElementId + '-numbers-selecteddate');
            var dateParts = dateContainer.innerHTML.split('/');
            var dateTime = new Date(Number.parse(dateParts[2]), Number.parse(dateParts[1]) - 1, Number.parse(dateParts[0]));
            return Framework.JSONFormat.formatDateTime(dateTime);
        }
        return null;
    },
    
    _getOrCreateContentHolder$2: function ResultsSelectorComponent_ResultsSelectorComponent$_getOrCreateContentHolder$2() {
        var contentHolder = document.getElementById(this._domElementId + '-contentHolder');
        if (!contentHolder) {
            contentHolder = document.createElement('div');
            contentHolder.id = this._domElementId + '-contentHolder';
            contentHolder.className = 'resultDetailsContentHolder';
            var contentContainer = document.getElementById(this._resultsDetailsContainer$2);
            if (!contentContainer) {
                return null;
            }
            contentContainer.appendChild(contentHolder);
        }
        return contentHolder;
    },
    
    _sortNumbersIfNotOrdered$2: function ResultsSelectorComponent_ResultsSelectorComponent$_sortNumbersIfNotOrdered$2(selNumbers) {
        var sb = new StringBuilder();
        var first = true;
        var $dict1 = selNumbers;
        for (var $key2 in $dict1) {
            var entry = { key: $key2, value: $dict1[$key2] };
            if (first) {
                first = false;
            }
            else {
                sb.append(':');
            }
            var set = parseInt(entry.key, 10);
            var numbers = entry.value;
            var isOrdered = this._getGameParam$2(set, 'ordered');
            if (isNullOrUndefined(isOrdered) || (isOrdered.toLowerCase() !== 'true')) {
                this._sortNumbers$2(numbers);
            }
            sb.append(numbers.join(','));
        }
        return sb.toString();
    },
    
    _sortNumbers$2: function ResultsSelectorComponent_ResultsSelectorComponent$_sortNumbers$2(numbers) {
        for (var i = 0; i < numbers.length - 1; i++) {
            for (var j = i + 1; j < numbers.length; j++) {
                if (Number.parse(numbers[i]) > Number.parse(numbers[j])) {
                    var tmp = numbers[i];
                    numbers[i] = numbers[j];
                    numbers[j] = tmp;
                }
            }
        }
    },
    
    _removeResultsDetails$2: function ResultsSelectorComponent_ResultsSelectorComponent$_removeResultsDetails$2() {
        var contentContainer = document.getElementById(this._resultsDetailsContainer$2);
        if (!contentContainer) {
            return;
        }
        var contentHolder = document.getElementById(this._domElementId + '-contentHolder');
        if (contentHolder) {
            contentContainer.removeChild(contentHolder);
        }
    },
    
    _executeWinningInfoProcessing$2: function ResultsSelectorComponent_ResultsSelectorComponent$_executeWinningInfoProcessing$2(winningInfos, contentHolder, isCheckNumbers, numbers, drawNumber, drawDate) {
        var builder = new StringBuilder('<?xml version=\"1.0\" encoding=\"utf-8\"?>');
        builder.append('<winning-infos xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">');
        builder.append('<search-numbers>');
        var $enum1 = numbers.getEnumerator();
        while ($enum1.moveNext()) {
            var number = $enum1.get_current();
            builder.append(String.format('<search-number>{0}</search-number>', number));
        }
        builder.append('</search-numbers>');
        builder.append('<winning-infos>');
        var parameters = this.getXsltParameters(null);
        parameters['external-id'] = this._gameExternalId$2;
        parameters['is-check-numbers'] = (isCheckNumbers) ? 'true' : 'false';
        parameters['draw-number'] = drawNumber;
        parameters['requested-numbers'] = (!isNullOrUndefined(numbers) && numbers.length > 0) ? numbers.join(',') : '';
        parameters['culture-name'] = CultureInfo.Current.name;
        if (drawDate) {
            var dateTime = Framework.JSONFormat.parseDateTime(drawDate);
            parameters['draw-date'] = dateTime.format(this._dateTimeFormat$2);
        }
        parameters['use-external-id-for-image-names'] = (this._useExternalIdForImageNames$2) ? 'true' : 'false';
        if (winningInfos && winningInfos.length > 0) {
            var $enum2 = winningInfos.getEnumerator();
            while ($enum2.moveNext()) {
                var info = $enum2.get_current();
                builder.append('<winning-info>');
                builder.append(String.format('<draw-number>{0}</draw-number>', info.EventInfo.DrawNumber));
                var drawDateAsDateTime = Framework.JSONFormat.parseDateTime(info.EventInfo.DrawDate);
                var closeTimeAsDateTime = Framework.JSONFormat.parseDateTime(info.EventInfo.DrawCloseTime);
                var drawDateXsltFriendly = drawDateAsDateTime.format(this._dateTimeFormat$2);
                var closeTimeXsltFriendly = closeTimeAsDateTime.format(this._dateTimeFormat$2);
                builder.append(String.format('<draw-date>{0}</draw-date>', drawDateXsltFriendly));
                builder.append(String.format('<draw-close-time>{0}</draw-close-time>', closeTimeXsltFriendly));
                builder.append(String.format('<draw-name>{0}</draw-name>', info.DrawName));
                var resultValues = info.ResultValues;
                resultValues = resultValues.replace('[', '');
                resultValues = resultValues.replace(']', '');
                builder.append(String.format('<draw-results>{0}</draw-results>', resultValues));
                var resultBonusValues = info.ResultBonusValues;
                resultBonusValues = resultBonusValues.replace('[', '');
                resultBonusValues = resultBonusValues.replace(']', '');
                builder.append(String.format('<draw-bonus-results>{0}</draw-bonus-results>', resultBonusValues));
                builder.append(String.format('<division-level>{0}</division-level>', info.DivisionLevel));
                builder.append(String.format('<division-name>{0}</division-name>', info.DivisionName));
                builder.append(String.format('<division-shares>{0}</division-shares>', info.Shares));
                builder.append(String.format('<division-prize>{0}</division-prize>', info.Prize));
                builder.append('</winning-info>');
            }
            parameters['found'] = 'true';
        }
        builder.append('</winning-infos>');
        builder.append('</winning-infos>');
        this._resultsDetailsAlreadyTransformed$2 = true;
        this._environment.transformAndUpdate(this._resultsDetailsContainer$2, null, this._resultsDetailsXsltUrl$2, parameters, Delegate.create(this, function() {
        }), contentHolder, Delegate.create(this, function(domElement) {
        }), builder.toString());
    },
    
    _executeResultInfoProcessing$2: function ResultsSelectorComponent_ResultsSelectorComponent$_executeResultInfoProcessing$2(contentHolder, isCheckNumbers, numbers, drawNumber, drawDate) {
        var contentUrl = '';
        var parameters = this.getXsltParameters(null);
        parameters['is-check-numbers'] = (isCheckNumbers) ? 'true' : 'false';
        parameters['draw-number'] = drawNumber;
        parameters['culture-name'] = CultureInfo.Current.name;
        parameters['search-numbers'] = numbers.join(',');
        if (drawDate) {
            var dateTime = Framework.JSONFormat.parseDateTime(drawDate);
            parameters['draw-date'] = dateTime.format(this._dateTimeFormat$2);
            contentUrl = this._resultsDetailsNoWinnerByDrawDateContentUrl$2;
            contentUrl = contentUrl.replace('${language}', this._environment.getLanguage());
            contentUrl = contentUrl.replace('${externalid}', this._gameExternalId$2);
            contentUrl = contentUrl.replace('${drawdate}', dateTime.format(this._shortDateFormat$2));
        }
        else {
            contentUrl = this._resultsDetailsNoWinnerByDrawNumberContentUrl$2;
            contentUrl = contentUrl.replace('${language}', this._environment.getLanguage());
            contentUrl = contentUrl.replace('${externalid}', this._gameExternalId$2);
            contentUrl = contentUrl.replace('${drawnumber}', drawNumber);
        }
        this._resultsDetailsAlreadyTransformed$2 = true;
        this._environment.transformAndUpdate(contentHolder.id, contentUrl, this._resultsDetailsNoWinnerXsltUrl$2, parameters, Delegate.create(this, function() {
        }));
    }
}


ResultsSelectorComponent.ResultsSelectorComponent.createClass('ResultsSelectorComponent.ResultsSelectorComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener, UserService.IUserChangedListener);
ResultsSelectorComponent.ResultsSelectorComponent._gamE_INFO_PATH$2 = 'game/';

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PCNavigationButtonComponent');

////////////////////////////////////////////////////////////////////////////////
// PCNavigationButtonComponent.PCNavigationButtonComponent

PCNavigationButtonComponent.PCNavigationButtonComponent = function PCNavigationButtonComponent_PCNavigationButtonComponent() {
    PCNavigationButtonComponent.PCNavigationButtonComponent.constructBase(this);
}
PCNavigationButtonComponent.PCNavigationButtonComponent.prototype = {
    _navigationArea$2: null,
    _navigationAction$2: null,
    _navigationService$2: null,
    
    setNavigationService: function PCNavigationButtonComponent_PCNavigationButtonComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    onPageFilterChanged: function PCNavigationButtonComponent_PCNavigationButtonComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    init: function PCNavigationButtonComponent_PCNavigationButtonComponent$init(environment, componentInstanceName, domElementId, parameters) {
        PCNavigationButtonComponent.PCNavigationButtonComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters = new Framework.CommonComponentParameters(parameters);
        this._navigationArea$2 = parameters['navigation-area'].toString();
        this._navigationAction$2 = parameters['navigation-action'].toString();
    },
    
    getXsltParameters: function PCNavigationButtonComponent_PCNavigationButtonComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        return xsltParameters;
    },
    
    get_isComponentVisible: function PCNavigationButtonComponent_PCNavigationButtonComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    navigationClickEventHandler: function PCNavigationButtonComponent_PCNavigationButtonComponent$navigationClickEventHandler(sender, eventArgs) {
        var currentArea = this._navigationService$2.getPageArea();
        if (!String.equals(currentArea, this._navigationArea$2, true)) {
            var pageFilter = {};
            pageFilter['action'] = this._navigationAction$2;
            this._navigationService$2.goTo(this._navigationArea$2, pageFilter);
        }
        else {
            var pageFilter = {};
            pageFilter['action'] = this._navigationAction$2;
            this._navigationService$2.setPageFilter(pageFilter);
        }
    }
}


PCNavigationButtonComponent.PCNavigationButtonComponent.createClass('PCNavigationButtonComponent.PCNavigationButtonComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PollaGolComponent');

////////////////////////////////////////////////////////////////////////////////
// PollaGolComponent.PollaGolComponent

PollaGolComponent.PollaGolComponent = function PollaGolComponent_PollaGolComponent() {
    PollaGolComponent.PollaGolComponent.constructBase(this);
}
PollaGolComponent.PollaGolComponent._setVisible$2 = function PollaGolComponent_PollaGolComponent$_setVisible$2(element, visible) {
    if (isNullOrUndefined(element)) {
        return;
    }
    element.style.display = (visible) ? 'block' : 'none';
}
PollaGolComponent.PollaGolComponent.prototype = {
    _parameters$2: null,
    _instanceID$2: null,
    _sportsController$2: null,
    
    init: function PollaGolComponent_PollaGolComponent$init(environment, componentInstanceName, domElementId, parameters) {
        parameters['content-url'] = (parameters['content-url']).replace('${language}', environment.getLanguage());
        PollaGolComponent.PollaGolComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$2 = new Framework.CommonComponentParameters(parameters);
        this._instanceID$2 = componentInstanceName;
    },
    
    preRender: function PollaGolComponent_PollaGolComponent$preRender(eventArgs) {
        PollaGolComponent.PollaGolComponent.callBase(this, 'preRender', [ eventArgs ]);
        this._createModel$2(eventArgs.get_inMemoryContent().ownerDocument);
    },
    
    renderComplete: function PollaGolComponent_PollaGolComponent$renderComplete(eventArgs) {
        PollaGolComponent.PollaGolComponent.callBase(this, 'renderComplete', [ eventArgs ]);
        this._startService$2();
    },
    
    _createModel$2: function PollaGolComponent_PollaGolComponent$_createModel$2(owner) {
        var dataElement = owner.getElementById(this._domElementId + '-data');
        var objData;
        try {
            objData = Framework.JsonUtil.deserialize(dataElement.innerHTML);
        }
        catch (e) {
            throw new Error('Error deserializing JSON data: ' + e.message);
        }
        var initData = objData;
        initData.instanceID = this._instanceID$2;
        var messagesElement = owner.getElementById(this._domElementId + '-messages');
        var objMess;
        try {
            objMess = Framework.JsonUtil.deserialize(messagesElement.innerHTML);
        }
        catch (e) {
            throw new Error('Error deserializing JSON messages: ' + e.message);
        }
        var messages = objMess;
        var factory = new LotteryBoardService.SportsControllerFactory(this._lotteryBoardService$2, initData, messages);
        this._sportsController$2 = factory.create();
    },
    
    _startService$2: function PollaGolComponent_PollaGolComponent$_startService$2() {
        this._sportsController$2.registerBoardContentChangedListener(this);
        for (var i = 0; i < this._getBoard$2().get_size(); i++) {
            this._updatePickSystem$2(i);
        }
        this._updatePlacementEnabled$2();
        this._updatePrice$2();
        this._updateWagerResultReference$2();
        this._updateBoard$2();
        this._updateViewState$2();
        this._sportsController$2.start();
    },
    
    get_isComponentVisible: function PollaGolComponent_PollaGolComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters$2.get_visibleOn(), this._parameters$2.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    getXsltParameters: function PollaGolComponent_PollaGolComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['currency-symbol'] = this._accountService$2.getCurrencySimbol();
        return xsltParameters;
    },
    
    _navigationService$2: null,
    
    setNavigationService: function PollaGolComponent_PollaGolComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    onPageFilterChanged: function PollaGolComponent_PollaGolComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    _accountService$2: null,
    
    setAccountService: function PollaGolComponent_PollaGolComponent$setAccountService(accountService) {
        this._log.debug('AccountBoardService');
        this._accountService$2 = accountService;
    },
    
    onBalanceChanged: function PollaGolComponent_PollaGolComponent$onBalanceChanged(eventSource) {
        this._log.debug('OnBalanceChanged');
        var currencySymbol = this._accountService$2.getCurrencySimbol() || '';
        this.updatePrivateDomElement('currencySymbol', currencySymbol);
        this.updatePrivateDomElement('input-currencySymbol', currencySymbol);
        this.updatePrivateDomElement('confirm-currencySymbol', currencySymbol);
        this.updatePrivateDomElement('result-currencySymbol', currencySymbol);
    },
    
    _lotteryBoardService$2: null,
    
    setLotteryBoardService: function PollaGolComponent_PollaGolComponent$setLotteryBoardService(lotteryBoardService) {
        this._log.debug('LotteryBoardService');
        this._lotteryBoardService$2 = lotteryBoardService;
    },
    
    onSportsBoardContentChanged: function PollaGolComponent_PollaGolComponent$onSportsBoardContentChanged(eventObject) {
        this._log.debug('OnBoardContentChanged');
        this._updatePlacementEnabled$2();
        if (!isNull(eventObject.sportsPickSystem)) {
            this._updatePickSystem$2(eventObject.rowIndex);
        }
        if (!isNull(eventObject.price)) {
            this._updatePrice$2();
        }
        if (!isNull(eventObject.wagerResultReference)) {
            this._updateWagerResultReference$2();
        }
        if (!isNull(eventObject.sportsBoardChanged)) {
            if (isNull(eventObject.rowIndex)) {
                this._updateBoard$2();
            }
            else if (isNull(eventObject.setIndex)) {
                this._updateRow$2(eventObject.rowIndex);
            }
            else if (isNull(eventObject.selectionIndex)) {
                this._updateSet$2(eventObject.rowIndex, eventObject.setIndex);
            }
            else {
                this._updateSelectionField$2(eventObject.rowIndex, eventObject.setIndex, eventObject.selectionIndex);
            }
        }
    },
    
    onSportsBoardStateChanged: function PollaGolComponent_PollaGolComponent$onSportsBoardStateChanged(eventObject) {
        this._log.debug('OnBoardStateChanged');
        this._updateViewState$2();
    },
    
    onSportsBoardMessage: function PollaGolComponent_PollaGolComponent$onSportsBoardMessage(eventObject) {
        if (eventObject.confirmationRequired) {
            var confirmed = this._confirm$2(eventObject.message.messageText);
            if (confirmed) {
                eventObject.confirmCallback.invoke(null);
            }
            else {
                eventObject.rejectCallback.invoke(null);
            }
        }
        else {
            if (eventObject.isAlert) {
                this._alert$2(eventObject.message.messageText);
            }
            else if (!isNullOrUndefined(this._getBoard$2().infoMessage)) {
                this._displayMessage$2(this._getBoard$2().infoMessage);
            }
            else {
                this._clearMessage$2();
            }
        }
    },
    
    _displayMessage$2: function PollaGolComponent_PollaGolComponent$_displayMessage$2(message) {
        var infoBar = this.getPrivateDomElement('infobar');
        ScriptFX.UI.Element.removeCSSClass(infoBar, 'message-accepted');
        ScriptFX.UI.Element.removeCSSClass(infoBar, 'message-info');
        ScriptFX.UI.Element.removeCSSClass(infoBar, 'message-warning');
        ScriptFX.UI.Element.removeCSSClass(infoBar, 'message-error');
        this._environment.safelySetCssClassOnElement(infoBar, 'sports-info');
        if (message.messageType === LotteryBoardService.SportsMessageType.ACCEPTED) {
            ScriptFX.UI.Element.addCSSClass(infoBar, 'message-accepted');
        }
        else if (message.messageType === LotteryBoardService.SportsMessageType.INFO) {
            ScriptFX.UI.Element.addCSSClass(infoBar, 'message-info');
        }
        else if (message.messageType === LotteryBoardService.SportsMessageType.WARNING) {
            ScriptFX.UI.Element.addCSSClass(infoBar, 'message-warning');
        }
        else if (message.messageType === LotteryBoardService.SportsMessageType.ERROR) {
            ScriptFX.UI.Element.addCSSClass(infoBar, 'message-error');
        }
        var infoTitle = this.getPrivateDomElement('infotitle');
        infoTitle.innerHTML = message.messageTitle;
        var infoMessage = this.getPrivateDomElement('infomessage');
        infoMessage.innerHTML = message.messageText;
    },
    
    _clearMessage$2: function PollaGolComponent_PollaGolComponent$_clearMessage$2() {
        var infoTitle = this.getPrivateDomElement('infotitle');
        infoTitle.innerHTML = ' ';
        var infoText = this.getPrivateDomElement('infomessage');
        infoText.innerHTML = ' ';
    },
    
    get_instanceID: function PollaGolComponent_PollaGolComponent$get_instanceID() {
        return this._instanceID$2;
    },
    
    playWagerEventHandler: function PollaGolComponent_PollaGolComponent$playWagerEventHandler(sender, eventArgs) {
        this.placeWager();
    },
    
    clearBoardRowEventHandler: function PollaGolComponent_PollaGolComponent$clearBoardRowEventHandler(sender, eventArgs) {
        var index = eventArgs.parameters.getAsNumber('boardrowindex');
        this.clearLine(index);
    },
    
    quickPickEventHandler: function PollaGolComponent_PollaGolComponent$quickPickEventHandler(sender, eventArgs) {
        var index = eventArgs.parameters.getAsNumber('boardrowindex');
        this.quickPick(index);
    },
    
    confirmWagerEventHandler: function PollaGolComponent_PollaGolComponent$confirmWagerEventHandler(sender, eventArgs) {
        this.confirmWager();
    },
    
    cancelWagerEventHandler: function PollaGolComponent_PollaGolComponent$cancelWagerEventHandler(sender, eventArgs) {
        this.cancelWager();
    },
    
    replayWagerEventHandler: function PollaGolComponent_PollaGolComponent$replayWagerEventHandler(sender, eventArgs) {
        this.replayWager();
    },
    
    pickSystemChangedEventHandler: function PollaGolComponent_PollaGolComponent$pickSystemChangedEventHandler(sender, eventArgs) {
        var index = eventArgs.parameters.getAsNumber('boardrowindex');
        this.pickSystemChanged(index);
    },
    
    choiceChangeEventHandler: function PollaGolComponent_PollaGolComponent$choiceChangeEventHandler(sender, eventArgs) {
        var boardrowind = eventArgs.parameters.getAsNumber('boardrowind');
        var setind = eventArgs.parameters.getAsNumber('setind');
        var matchind = eventArgs.parameters.getAsNumber('matchindex');
        var choiceid = eventArgs.parameters.getAsNumber('choice-id');
        var choicename = eventArgs.parameters.getAsString('choice-name');
        this.choiceChange(boardrowind, setind, matchind, choiceid, choicename);
    },
    
    pickSystemChanged: function PollaGolComponent_PollaGolComponent$pickSystemChanged(rowIndex) {
        var pickSystemSelect = this.getPrivateDomElement('pickSystem-' + rowIndex);
        this._sportsController$2.setPickSystem(rowIndex - 1, pickSystemSelect.value);
    },
    
    choiceChange: function PollaGolComponent_PollaGolComponent$choiceChange(rowInd, setInd, selecInd, choiceid, choicename) {
        var symbols = this._getBoard$2().getRow(rowInd - 1).getSet(setInd - 1).symbols.split(' ');
        var curval = this._getBoard$2().getRow(rowInd - 1).getSet(setInd - 1).getSelectionContext(selecInd - 1).get_value();
        var newval = String.Empty;
        if (curval.indexOf(choicename) >= 0) {
            curval = curval.replace(choicename, '');
        }
        else {
            curval = curval + choicename;
        }
        for (var i = 0; i < symbols.length; i++) {
            if (curval.indexOf(symbols[i]) >= 0) {
                newval = newval + symbols[i];
            }
        }
        var injected = this._sportsController$2.injectSelection(newval, rowInd - 1, setInd - 1, selecInd - 1, Delegate.create(this, function(response) {
        }));
    },
    
    quickPick: function PollaGolComponent_PollaGolComponent$quickPick(rowIndex) {
        this._sportsController$2.quickPick(rowIndex - 1);
    },
    
    clearLine: function PollaGolComponent_PollaGolComponent$clearLine(rowIndex) {
        this._sportsController$2.clearRow(rowIndex - 1);
    },
    
    placeWager: function PollaGolComponent_PollaGolComponent$placeWager() {
        this._sportsController$2.placeBoard();
    },
    
    cancelWager: function PollaGolComponent_PollaGolComponent$cancelWager() {
        this._sportsController$2.cancelBoard();
    },
    
    confirmWager: function PollaGolComponent_PollaGolComponent$confirmWager() {
        var confirmButton = this.getPrivateDomElement('confirmButton');
        confirmButton.disabled = true;
        this._sportsController$2.confirmBoard(Delegate.create(this, function(result) {
            var resultBean = result;
            confirmButton.disabled = false;
            this._showWagerResult$2(resultBean);
        }), Delegate.create(this, function(ex) {
            confirmButton.disabled = false;
            var message = new LotteryBoardService.SportsMessage();
            message.messageType = LotteryBoardService.SportsMessageType.ERROR;
            message.messageID = LotteryBoardService.SportsMessages.serveR_UNAVAILABLE;
            if (ex && ex.message) {
                message.messageText = String.format('{0} ({1})', this._sportsController$2.getMessage(LotteryBoardService.SportsMessages.serveR_UNAVAILABLE), ex.message);
            }
            else {
                message.messageText = this._sportsController$2.getMessage(LotteryBoardService.SportsMessages.serveR_UNAVAILABLE);
            }
            this._displayMessage$2(message);
        }));
    },
    
    _showWagerResult$2: function PollaGolComponent_PollaGolComponent$_showWagerResult$2(wagerResult) {
        this.updatePrivateDomElement('wagerid', wagerResult.WagerReference);
        this.updatePrivateDomElement('receiptNumber', this._getReceiptNumber$2(wagerResult));
        this._showWagerResultDetailsInElement$2('eventInfo', wagerResult);
    },
    
    _showWagerResultDetailsInElement$2: function PollaGolComponent_PollaGolComponent$_showWagerResultDetailsInElement$2(elementName, wagerResult) {
        var builder = new StringBuilder();
        if (wagerResult && wagerResult.BoardStacks) {
            var $enum1 = wagerResult.BoardStacks.getEnumerator();
            while ($enum1.moveNext()) {
                var stackInfo = $enum1.get_current();
                var first = true;
                var $enum2 = stackInfo.Events.getEnumerator();
                while ($enum2.moveNext()) {
                    var eventInfo = $enum2.get_current();
                    var drawNumber = eventInfo.DrawNumber;
                    if (first) {
                        first = false;
                    }
                    else {
                        builder.append('<br />');
                    }
                    var gameEvent = this._sportsController$2.get_board().getEvent(drawNumber);
                    if (gameEvent) {
                        builder.append(drawNumber);
                        builder.append(' - ');
                        builder.append(gameEvent.name);
                        builder.append(', ');
                        builder.append(gameEvent.date);
                        builder.append(' ');
                    }
                    var builderDrawNames = new StringBuilder();
                    var countOfDrawNamesWritten = 0;
                    builderDrawNames.append(' (');
                    var first2 = true;
                    var $enum3 = stackInfo.Boards.getEnumerator();
                    while ($enum3.moveNext()) {
                        var boardInfo = $enum3.get_current();
                        if (!boardInfo.Rows) {
                            continue;
                        }
                        if (first2) {
                            first2 = false;
                        }
                        else {
                            builderDrawNames.append(', ');
                        }
                        var first3 = true;
                        var $enum4 = boardInfo.Rows.getEnumerator();
                        while ($enum4.moveNext()) {
                            var rowInfo = $enum4.get_current();
                            var drawId = rowInfo.DrawId;
                            if (first3) {
                                first3 = false;
                            }
                            else {
                                builderDrawNames.append(', ');
                            }
                            var drawName = '?';
                            if (this._sportsController$2.get_board().getDraw(drawId)) {
                                drawName = this._sportsController$2.get_board().getDraw(drawId).name;
                            }
                            builderDrawNames.append(drawName);
                            countOfDrawNamesWritten++;
                        }
                    }
                    builderDrawNames.append(')');
                    if (countOfDrawNamesWritten > 1) {
                        builder.append(builderDrawNames.toString());
                    }
                }
            }
        }
        this.updatePrivateDomElement(elementName, builder.toString());
    },
    
    _getReceiptNumber$2: function PollaGolComponent_PollaGolComponent$_getReceiptNumber$2(wagerResult) {
        if (!wagerResult.BoardStacks) {
            return '';
        }
        var $enum1 = wagerResult.BoardStacks.getEnumerator();
        while ($enum1.moveNext()) {
            var boardStackInfo = $enum1.get_current();
            if (boardStackInfo.AddOnIndex) {
                continue;
            }
            return boardStackInfo.PickValues;
        }
        return '';
    },
    
    replayWager: function PollaGolComponent_PollaGolComponent$replayWager() {
        this._sportsController$2.replayBoard();
    },
    
    _updateViewState$2: function PollaGolComponent_PollaGolComponent$_updateViewState$2() {
        var placeElement = this.getPrivateDomElement('input');
        var confirmationElement = this.getPrivateDomElement('confirm');
        var acceptedElement = this.getPrivateDomElement('result');
        PollaGolComponent.PollaGolComponent._setVisible$2(placeElement, this._getBoard$2().get_vievState() === LotteryBoardService.SportsViewState.INPUT);
        PollaGolComponent.PollaGolComponent._setVisible$2(confirmationElement, this._getBoard$2().get_vievState() === LotteryBoardService.SportsViewState.CONFIRMATION);
        PollaGolComponent.PollaGolComponent._setVisible$2(acceptedElement, this._getBoard$2().get_vievState() === LotteryBoardService.SportsViewState.RESULT);
        this._updateInfoBar$2(this._getBoard$2().get_vievState());
    },
    
    _updateInfoBar$2: function PollaGolComponent_PollaGolComponent$_updateInfoBar$2(viewState) {
        var infoBarElem = this.getPrivateDomElement('infobar');
        if (!isNullOrUndefined(infoBarElem)) {
            if (viewState === LotteryBoardService.SportsViewState.CONFIRMATION || viewState === LotteryBoardService.SportsViewState.RESULT) {
                infoBarElem.style.display = 'block';
            }
            else {
                infoBarElem.style.display = 'none';
            }
        }
    },
    
    _updatePlacementEnabled$2: function PollaGolComponent_PollaGolComponent$_updatePlacementEnabled$2() {
        var enabled = this._sportsController$2.get_board().isValidForPlacement();
        var playButton = this.getPrivateDomElement('placeButton');
        if (!isNullOrUndefined(playButton)) {
            playButton.disabled = !enabled;
        }
    },
    
    _updatePickSystem$2: function PollaGolComponent_PollaGolComponent$_updatePickSystem$2(rowIndex) {
        var pickSystemSelect = this.getPrivateDomElement('pickSystem-' + (rowIndex + 1));
        if (!isNullOrUndefined(pickSystemSelect)) {
            pickSystemSelect.value = this._getBoard$2().getRow(rowIndex).get_pickSystem().id;
        }
    },
    
    _updatePrice$2: function PollaGolComponent_PollaGolComponent$_updatePrice$2() {
        var price = this._getBoard$2().get_price();
        var priceToShow = '0';
        if (!isNullOrUndefined(price)) {
            priceToShow = price.format('N', true);
        }
        this.updatePrivateDomElement('price', priceToShow);
        this.updatePrivateDomElement('input-price', priceToShow);
        this.updatePrivateDomElement('confirm-price', priceToShow);
        this.updatePrivateDomElement('result-price', priceToShow);
    },
    
    _updateWagerResultReference$2: function PollaGolComponent_PollaGolComponent$_updateWagerResultReference$2() {
        var wagerResult = new DGEService.WagerResult();
        wagerResult.WagerReference = (!this._getBoard$2().get_wagerResult()) ? '' : this._getBoard$2().get_wagerResult().WagerReference;
        this._showWagerResult$2(wagerResult);
    },
    
    _updateBoard$2: function PollaGolComponent_PollaGolComponent$_updateBoard$2() {
        for (var i = 0; i < this._getBoard$2().get_size(); i++) {
            this._updateRow$2(i);
        }
    },
    
    _updateRow$2: function PollaGolComponent_PollaGolComponent$_updateRow$2(rowIndex) {
        var row = this._getBoard$2().getRow(rowIndex);
        for (var i = 0; i < row.get_size(); i++) {
            this._updateSet$2(rowIndex, i);
        }
    },
    
    _updateSet$2: function PollaGolComponent_PollaGolComponent$_updateSet$2(rowIndex, setIndex) {
        var set = this._getBoard$2().getRow(rowIndex).getSet(setIndex);
        for (var i = 0; i < set.get_size(); i++) {
            this._updateSelectionField$2(rowIndex, setIndex, i);
        }
    },
    
    _updateSelectionField$2: function PollaGolComponent_PollaGolComponent$_updateSelectionField$2(rowIndex, setIndex, selectionIndex) {
        var symbols = this._getBoard$2().getRow(rowIndex).getSet(setIndex).symbols.split(' ');
        var value = this._getBoard$2().getRow(rowIndex).getSet(setIndex).getSelectionContext(selectionIndex).get_value();
        var chk1 = this.getPrivateDomElement(String.format('Choice-{0}-{1}-{2}-{3}', rowIndex + 1, setIndex + 1, selectionIndex + 1, 1));
        var chk2 = this.getPrivateDomElement(String.format('Choice-{0}-{1}-{2}-{3}', rowIndex + 1, setIndex + 1, selectionIndex + 1, 2));
        var chk3 = this.getPrivateDomElement(String.format('Choice-{0}-{1}-{2}-{3}', rowIndex + 1, setIndex + 1, selectionIndex + 1, 3));
        if (isNullOrUndefined(chk1) || isNullOrUndefined(chk2) || isNullOrUndefined(chk3)) {
            return;
        }
        ScriptFX.UI.Element.removeCSSClass(chk1, 'selected');
        ScriptFX.UI.Element.removeCSSClass(chk2, 'selected');
        ScriptFX.UI.Element.removeCSSClass(chk3, 'selected');
        var selCnt = (isNullOrUndefined(value)) ? 0 : value.length;
        if (value.indexOf(symbols[0]) >= 0) {
            ScriptFX.UI.Element.addCSSClass(chk1, 'selected');
        }
        if (value.indexOf(symbols[1]) >= 0) {
            ScriptFX.UI.Element.addCSSClass(chk2, 'selected');
        }
        if (value.indexOf(symbols[2]) >= 0) {
            ScriptFX.UI.Element.addCSSClass(chk3, 'selected');
        }
        var chkDbl = this.getPrivateDomElement(String.format('DoubleChoice-{0}-{1}-{2}', rowIndex + 1, setIndex + 1, selectionIndex + 1));
        var chkTri = this.getPrivateDomElement(String.format('TripleChoice-{0}-{1}-{2}', rowIndex + 1, setIndex + 1, selectionIndex + 1));
        if (!isNullOrUndefined(chkDbl) && !isNullOrUndefined(chkTri)) {
            ScriptFX.UI.Element.removeCSSClass(chkDbl, 'selected');
            ScriptFX.UI.Element.removeCSSClass(chkTri, 'selected');
            if (selCnt > 2) {
                ScriptFX.UI.Element.addCSSClass(chkTri, 'selected');
            }
            else if (selCnt > 1) {
                ScriptFX.UI.Element.addCSSClass(chkDbl, 'selected');
            }
        }
        var selElement = this.getPrivateDomElement(String.format('SelectionsConfirm-{0}-{1}-{2}', rowIndex + 1, setIndex + 1, selectionIndex + 1));
        selElement.innerHTML = this._getBoard$2().getRow(rowIndex).getSet(setIndex).getSelectionContext(selectionIndex).get_value();
        var selElementRes = this.getPrivateDomElement(String.format('SelectionsResult-{0}-{1}-{2}', rowIndex + 1, setIndex + 1, selectionIndex + 1));
        selElementRes.innerHTML = this._getBoard$2().getRow(rowIndex).getSet(setIndex).getSelectionContext(selectionIndex).get_value();
    },
    
    _getBoard$2: function PollaGolComponent_PollaGolComponent$_getBoard$2() {
        return this._sportsController$2.get_board();
    },
    
    _alert$2: function PollaGolComponent_PollaGolComponent$_alert$2(o) {
        alert(o.toString());
    },
    
    _confirm$2: function PollaGolComponent_PollaGolComponent$_confirm$2(o) {
        return confirm(o.toString());
    }
}


PollaGolComponent.PollaGolComponent.createClass('PollaGolComponent.PollaGolComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener, LotteryBoardService.ISportsBoardContentChangedListener, AccountService.IBalanceChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('ResultsDrawComponent');

////////////////////////////////////////////////////////////////////////////////
// ResultsDrawComponent.ResultsDrawComponentState

ResultsDrawComponent.ResultsDrawComponentState = function() { };
ResultsDrawComponent.ResultsDrawComponentState.prototype = {
    WINNERS: 1, 
    DETAILS: 2
}
ResultsDrawComponent.ResultsDrawComponentState.createEnum('ResultsDrawComponent.ResultsDrawComponentState', false);


////////////////////////////////////////////////////////////////////////////////
// ResultsDrawComponent.ResultsDrawInitData

ResultsDrawComponent.ResultsDrawInitData = function ResultsDrawComponent_ResultsDrawInitData() {
}
ResultsDrawComponent.ResultsDrawInitData.prototype = {
    gameDraws: null
}


////////////////////////////////////////////////////////////////////////////////
// ResultsDrawComponent.GameDraw

ResultsDrawComponent.GameDraw = function ResultsDrawComponent_GameDraw() {
}
ResultsDrawComponent.GameDraw.prototype = {
    iddggamedraw: null,
    resultdivisions: null
}


////////////////////////////////////////////////////////////////////////////////
// ResultsDrawComponent.ResultDivision

ResultsDrawComponent.ResultDivision = function ResultsDrawComponent_ResultDivision() {
}
ResultsDrawComponent.ResultDivision.prototype = {
    levelid: null,
    name: null,
    shares: null,
    prizeamount: null
}


////////////////////////////////////////////////////////////////////////////////
// ResultsDrawComponent.ResultsDrawComponent

ResultsDrawComponent.ResultsDrawComponent = function ResultsDrawComponent_ResultsDrawComponent() {
    ResultsDrawComponent.ResultsDrawComponent.constructBase(this);
}
ResultsDrawComponent.ResultsDrawComponent._setVisible$2 = function ResultsDrawComponent_ResultsDrawComponent$_setVisible$2(element, visible) {
    if (isNullOrUndefined(element)) {
        return;
    }
    element.style.display = (visible) ? 'block' : 'none';
}
ResultsDrawComponent.ResultsDrawComponent.getChildByID = function ResultsDrawComponent_ResultsDrawComponent$getChildByID(element, id) {
    return ResultsDrawComponent.ResultsDrawComponent._getChildByID$2(id, element, true);
}
ResultsDrawComponent.ResultsDrawComponent._getChildByID$2 = function ResultsDrawComponent_ResultsDrawComponent$_getChildByID$2(id, element, checkContent) {
    if (checkContent) {
        if (element.id === id) {
            return element;
        }
    }
    for (var i = 0; i < element.childNodes.length; i++) {
        var e = ResultsDrawComponent.ResultsDrawComponent._getChildByID$2(id, element.childNodes[i], true);
        if (!isNull(e)) {
            return e;
        }
    }
    return null;
}
ResultsDrawComponent.ResultsDrawComponent.prototype = {
    _gameID$2: null,
    _gameName$2: null,
    _searchDate$2: null,
    _searchDraw$2: null,
    _typeOfSearch$2: null,
    _dateTimeFormat$2: null,
    _resultsUrlCsv$2: null,
    _resultsUrlXsl$2: null,
    _hideDetailsContainerOnActions$2: null,
    _hideDetailsContainerOnEmptyView$2: false,
    _useExternalIdForImageNames$2: false,
    _initData$2: null,
    _state$2: 0,
    _navigationService$2: null,
    
    setNavigationService: function ResultsDrawComponent_ResultsDrawComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    onPageFilterChanged: function ResultsDrawComponent_ResultsDrawComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    _dgeService$2: null,
    
    setDGEService: function ResultsDrawComponent_ResultsDrawComponent$setDGEService(dgeService) {
        this._log.debug('SetDGEService');
        this._dgeService$2 = dgeService;
    },
    
    onResultsFiltersChanged: function ResultsDrawComponent_ResultsDrawComponent$onResultsFiltersChanged(dgeService) {
        this._log.debug('OnResulsFiltersChanged');
        this._getSearchFilter$2();
        var oXsltParameters = {};
        oXsltParameters['component-instance-name'] = this._componentInstanceName;
        oXsltParameters['component-dom-element-id'] = this._domElementId;
        oXsltParameters['game-name'] = this._gameName$2;
        oXsltParameters['search-type'] = this._typeOfSearch$2;
        oXsltParameters['search-date'] = this._formatDate$2(this._searchDate$2, this._dateTimeFormat$2);
        oXsltParameters['search-number'] = this._searchDraw$2;
        oXsltParameters['culture-name'] = CultureInfo.Current.name;
        oXsltParameters['results-url-csv'] = String.format(this._resultsUrlCsv$2, this._gameID$2);
        oXsltParameters['results-url-xls'] = String.format(this._resultsUrlXsl$2, this._gameID$2);
        oXsltParameters['use-external-id-for-image-names'] = (this._useExternalIdForImageNames$2) ? 'true' : 'false';
        var oElement = document.getElementById(this._domElementId);
        var contenturl = '';
        if (this._typeOfSearch$2 === 'date') {
            contenturl = String.format('/cache/dgEventsWithDrawResultsForDrawDateAndGame/{0}/{1}-{2}.xml', this._environment.getLanguage(), this._gameID$2, this._searchDate$2.toDateString());
            if (this._gameID$2 === 'Boleto') {
                contenturl = String.format('/cache/dgEventWithFilteredResultsForDrawDate/{0}/{1}-{2}.xml', this._environment.getLanguage(), this._gameID$2, this._searchDate$2.toDateString());
            }
        }
        else if (this._typeOfSearch$2 === 'draw') {
            contenturl = String.format('/cache/dgEventWithDrawResultsForDrawNumberAndGame/{0}/{1}-{2}.xml', this._environment.getLanguage(), this._gameID$2, this._searchDraw$2);
            if (this._gameID$2 === 'Boleto') {
                contenturl = String.format('/cache/dgEventWithFilteredResultsForDrawNumber/{0}/{1}-{2}.xml', this._environment.getLanguage(), this._gameID$2, this._searchDraw$2);
            }
        }
        else {
            contenturl = '';
        }
        this.update(oElement, contenturl, this._parameters.get_xsltUrl(), oXsltParameters);
    },
    
    init: function ResultsDrawComponent_ResultsDrawComponent$init(environment, componentInstanceName, domElementId, parameters) {
        ResultsDrawComponent.ResultsDrawComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters = new Framework.CommonComponentParameters(parameters);
        this._dateTimeFormat$2 = parameters['date-time-format'].toString();
        this._resultsUrlCsv$2 = parameters['results-url-csv'].toString();
        this._resultsUrlCsv$2 = this._resultsUrlCsv$2.replace('${language}', this._environment.getLanguage());
        this._resultsUrlXsl$2 = parameters['results-url-xls'].toString();
        this._resultsUrlXsl$2 = this._resultsUrlXsl$2.replace('${language}', this._environment.getLanguage());
        this._hideDetailsContainerOnActions$2 = ',' + parameters['hide-details-container-on-viewfilters'].toString() + ',';
        this._hideDetailsContainerOnEmptyView$2 = Boolean.parse(parameters['hide-details-container-on-emptyview'].toString());
        if (Object.keyExists(parameters, 'use-external-id-for-image-names')) {
            this._useExternalIdForImageNames$2 = Boolean.parse(parameters['use-external-id-for-image-names']);
        }
    },
    
    renderComplete: function ResultsDrawComponent_ResultsDrawComponent$renderComplete(eventArgs) {
        var dataElement = this.getPrivateDomElement('data');
        if (!isNullOrUndefined(dataElement)) {
            var objData = Framework.JsonUtil.deserialize(dataElement.innerHTML);
            this._initData$2 = objData;
        }
        this._setState$2(ResultsDrawComponent.ResultsDrawComponentState.WINNERS);
        this._replaceMessageContent$2();
    },
    
    get_isComponentVisible: function ResultsDrawComponent_ResultsDrawComponent$get_isComponentVisible() {
        return ((!this._viewFilterIsInListOfShouldBeHidden$2()) && !isNullOrUndefined(this._typeOfSearch$2)) && this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    _viewFilterIsInListOfShouldBeHidden$2: function ResultsDrawComponent_ResultsDrawComponent$_viewFilterIsInListOfShouldBeHidden$2() {
        if (String.isNullOrEmpty(this._hideDetailsContainerOnActions$2)) {
            return false;
        }
        if (!Object.keyExists(this._navigationService$2.getPageFilter(), 'view')) {
            return this._hideDetailsContainerOnEmptyView$2;
        }
        var viewFilter = this._navigationService$2.getPageFilter()['view'].toString();
        return this._hideDetailsContainerOnActions$2.indexOf(',' + viewFilter + ',') !== -1;
    },
    
    getXsltParameters: function ResultsDrawComponent_ResultsDrawComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['use-external-id-for-image-names'] = (this._useExternalIdForImageNames$2) ? 'true' : 'false';
        return xsltParameters;
    },
    
    showDetailsEventHandler: function ResultsDrawComponent_ResultsDrawComponent$showDetailsEventHandler(sender, eventArgs) {
        var gameDrawId = eventArgs.parameters.getAsNumber('gamedrawid');
        this._showDetailsForGameDrawWithId$2(gameDrawId);
    },
    
    showWinnersEventHandler: function ResultsDrawComponent_ResultsDrawComponent$showWinnersEventHandler(sender, eventArgs) {
        this._setState$2(ResultsDrawComponent.ResultsDrawComponentState.WINNERS);
    },
    
    _getSearchFilter$2: function ResultsDrawComponent_ResultsDrawComponent$_getSearchFilter$2() {
        var oResultsFilters = new DGEService.ResultsFilters();
        this._gameID$2 = oResultsFilters.get_gameFilter();
        this._gameName$2 = oResultsFilters.get_gameName();
        this._searchDate$2 = oResultsFilters.get_resultsSearchDate();
        this._searchDraw$2 = oResultsFilters.get_resultsSearchDraw();
        this._typeOfSearch$2 = oResultsFilters.get_resultsSearchType();
    },
    
    _formatDate$2: function ResultsDrawComponent_ResultsDrawComponent$_formatDate$2(oDate, format) {
        return oDate.format(format, true);
    },
    
    _updateState$2: function ResultsDrawComponent_ResultsDrawComponent$_updateState$2() {
        var winnersElement = this.getPrivateDomElement('winners-state');
        var detailsElement = this.getPrivateDomElement('details-state');
        ResultsDrawComponent.ResultsDrawComponent._setVisible$2(winnersElement, this._state$2 === ResultsDrawComponent.ResultsDrawComponentState.WINNERS);
        ResultsDrawComponent.ResultsDrawComponent._setVisible$2(detailsElement, this._state$2 === ResultsDrawComponent.ResultsDrawComponentState.DETAILS);
    },
    
    _showDetailsForGameDrawWithId$2: function ResultsDrawComponent_ResultsDrawComponent$_showDetailsForGameDrawWithId$2(gameDrawId) {
        if (isNullOrUndefined(this._initData$2)) {
            return;
        }
        var $enum1 = this._initData$2.gameDraws.getEnumerator();
        while ($enum1.moveNext()) {
            var gameDraw = $enum1.get_current();
            if (gameDraw.iddggamedraw === gameDrawId) {
                this._generateContentForGameDraw$2(gameDraw);
                return;
            }
        }
    },
    
    _generateContentForGameDraw$2: function ResultsDrawComponent_ResultsDrawComponent$_generateContentForGameDraw$2(draw) {
        var idSeed = 0;
        var drawTableDiv = this.getPrivateDomElement('details-drawTableDiv');
        var rowTableTemplateElement = this.getPrivateDomElement('boardRowTable');
        var rowCellTemplateElement = this.getPrivateDomElement('boardRowCell');
        var newTableElement = rowTableTemplateElement.cloneNode(true);
        newTableElement.id = newTableElement.id + (idSeed.toString());
        idSeed++;
        var $enum1 = draw.resultdivisions.getEnumerator();
        while ($enum1.moveNext()) {
            var resultDivision = $enum1.get_current();
            var newRowElement = ResultsDrawComponent.ResultsDrawComponent.getChildByID(newTableElement, this._domElementId + '-boardRowRow').cloneNode(true);
            newRowElement.id = newRowElement.id + (idSeed.toString());
            var newCellElement = rowCellTemplateElement.cloneNode(true);
            newCellElement.id = newCellElement.id + (idSeed.toString());
            idSeed++;
            newCellElement.innerText = resultDivision.name;
            this._environment.safelySetCssClassOnElement(newCellElement, 'boardrow-system');
            newRowElement.appendChild(newCellElement);
            newCellElement = rowCellTemplateElement.cloneNode(true);
            newCellElement.id = newCellElement.id + (idSeed.toString());
            idSeed++;
            newCellElement.innerText = resultDivision.prizeamount.format('N', true);
            newRowElement.appendChild(newCellElement);
            newCellElement = rowCellTemplateElement.cloneNode(true);
            newCellElement.id = newCellElement.id + (idSeed.toString());
            idSeed++;
            newCellElement.innerText = resultDivision.shares.toString();
            newRowElement.appendChild(newCellElement);
            newTableElement.appendChild(newRowElement);
        }
        drawTableDiv.innerHTML = '';
        drawTableDiv.appendChild(newTableElement);
        this._setState$2(ResultsDrawComponent.ResultsDrawComponentState.DETAILS);
    },
    
    _setState$2: function ResultsDrawComponent_ResultsDrawComponent$_setState$2(newState) {
        this._state$2 = newState;
        this._updateState$2();
    },
    
    _replaceMessageContent$2: function ResultsDrawComponent_ResultsDrawComponent$_replaceMessageContent$2() {
        var oElement = document.getElementById(this._domElementId + '-download-label');
        var oElementS1 = document.getElementById(this._domElementId + '-download-labels1');
        var oElementS2 = document.getElementById(this._domElementId + '-download-labels2');
        var oElementS3 = document.getElementById(this._domElementId + '-download-labels3');
        if (oElement && oElementS1 && oElementS2 && oElementS3) {
            var msgValue = oElement.innerHTML;
            var indexOfFirstParam = msgValue.indexOf('{0}');
            var indexOfSecondParam = msgValue.indexOf('{1}');
            if (indexOfFirstParam < 0 || indexOfSecondParam < 0 || indexOfSecondParam < indexOfFirstParam) {
                return;
            }
            oElementS1.innerHTML = msgValue.substr(0, indexOfFirstParam);
            oElementS2.innerHTML = msgValue.substr(indexOfFirstParam + 3, indexOfSecondParam - indexOfFirstParam - 3);
            oElementS3.innerHTML = msgValue.substr(indexOfSecondParam + 3);
        }
    }
}


ResultsDrawComponent.ResultsDrawInitData.createClass('ResultsDrawComponent.ResultsDrawInitData');
ResultsDrawComponent.GameDraw.createClass('ResultsDrawComponent.GameDraw');
ResultsDrawComponent.ResultDivision.createClass('ResultsDrawComponent.ResultDivision');
ResultsDrawComponent.ResultsDrawComponent.createClass('ResultsDrawComponent.ResultsDrawComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener, DGEService.IResultsFiltersChangedListener);

// ---- 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,
    _useIframe$1: false,
    _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']);
        }
        if (Object.keyExists(parameters, 'use-iframe')) {
            this._useIframe$1 = Boolean.parse(parameters['use-iframe']);
        }
    },
    
    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);
            }
            if (this._useIframe$1) {
                var target = document.getElementById(this._domElementId);
                target.innerHTML = String.format('<iframe class=\'embeddedIFrame\' src=\'{0}\'></iframe>', contentUrl);
            }
            else {
                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('PCBnrComponent');

////////////////////////////////////////////////////////////////////////////////
// PCBnrComponent.RecordedMacroField

PCBnrComponent.RecordedMacroField = function PCBnrComponent_RecordedMacroField() {
}
PCBnrComponent.RecordedMacroField.prototype = {
    id: null,
    text: null,
    externalid: null,
    sourcetype: null,
    spanclass: null
}


////////////////////////////////////////////////////////////////////////////////
// PCBnrComponent.ParsedFields

PCBnrComponent.ParsedFields = function PCBnrComponent_ParsedFields(externalGameId) {
    this._externalGameId = externalGameId;
}
PCBnrComponent.ParsedFields.prototype = {
    _externalGameId: null,
    totalPrizeAmount: 0,
    jackpotAmounts: null,
    drawDateList: null,
    drawCloseTimeList: null,
    drawNumberList: null,
    resultNumbers: null,
    
    getExternalGameId: function PCBnrComponent_ParsedFields$getExternalGameId() {
        return this._externalGameId;
    }
}


////////////////////////////////////////////////////////////////////////////////
// PCBnrComponent.SourceType

PCBnrComponent.SourceType = function PCBnrComponent_SourceType(sourceType) {
    this._sourceType = sourceType;
}
PCBnrComponent.SourceType.createFromString = function PCBnrComponent_SourceType$createFromString(sourceType) {
    if (PCBnrComponent.SourceType.CURRENT.getSourceType() === sourceType) {
        return PCBnrComponent.SourceType.CURRENT;
    }
    if (PCBnrComponent.SourceType.LAST.getSourceType() === sourceType) {
        return PCBnrComponent.SourceType.LAST;
    }
    if (PCBnrComponent.SourceType.lasT_2_FOR_TOTO3.getSourceType() === sourceType) {
        return PCBnrComponent.SourceType.lasT_2_FOR_TOTO3;
    }
    if (PCBnrComponent.SourceType.lasT_FOR_BOLETO.getSourceType() === sourceType) {
        return PCBnrComponent.SourceType.lasT_FOR_BOLETO;
    }
    return PCBnrComponent.SourceType.CURRENT;
}
PCBnrComponent.SourceType.prototype = {
    _sourceType: null,
    
    getSourceType: function PCBnrComponent_SourceType$getSourceType() {
        return this._sourceType;
    }
}


////////////////////////////////////////////////////////////////////////////////
// PCBnrComponent.PCBnrComponent

PCBnrComponent.PCBnrComponent = function PCBnrComponent_PCBnrComponent() {
    this._currentTimer$2 = -1;
    this._recordedMacroTargets$2 = {};
    PCBnrComponent.PCBnrComponent.constructBase(this);
}
PCBnrComponent.PCBnrComponent.prototype = {
    _activeSheet$2: 1,
    _urlForCurrentEvent$2: null,
    _urlForLastEvent$2: null,
    _urlForLastTwoEventsForToto3$2: null,
    _urlForLastEventForBoleto$2: null,
    _bannerId$2: null,
    _imagesLocation$2: null,
    _timeoutValue$2: null,
    _navigationService$2: null,
    
    setNavigationService: function PCBnrComponent_PCBnrComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    _userService$2: null,
    
    setUserService: function PCBnrComponent_PCBnrComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserChanged: function PCBnrComponent_PCBnrComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        this.update();
    },
    
    init: function PCBnrComponent_PCBnrComponent$init(environment, componentInstanceName, domElementId, parameters) {
        PCBnrComponent.PCBnrComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters = new Framework.CommonComponentParameters(parameters);
        this._imagesLocation$2 = parameters['images-location'].toString();
        this._bannerId$2 = parameters['banner-id'].toString();
        this._urlForCurrentEvent$2 = parameters['url-for-current-event'].toString();
        this._urlForLastEvent$2 = parameters['url-for-last-event'].toString();
        this._urlForLastTwoEventsForToto3$2 = parameters['url-for-last-two-events-for-toto3'].toString();
        this._urlForLastEventForBoleto$2 = parameters['url-for-last-event-for-boleto'].toString();
    },
    
    xmlContentReceived: function PCBnrComponent_PCBnrComponent$xmlContentReceived(eventArgs) {
        PCBnrComponent.PCBnrComponent.callBase(this, 'xmlContentReceived', [ eventArgs ]);
        window.setTimeout(Delegate.create(this, function() {
            this._nonBlockingXmlContentReceived$2(eventArgs);
        }), 0);
    },
    
    _nonBlockingXmlContentReceived$2: function PCBnrComponent_PCBnrComponent$_nonBlockingXmlContentReceived$2(eventArgs) {
        var document = eventArgs.get_contentXmlDocument();
        var singleBanner = document.selectSingleNode(String.format('/dgebanners/dgebanner[id=\'{0}\']', this._bannerId$2));
        this._parseThroughSingleBanner$2(singleBanner);
        var multiBanner = document.selectSingleNode(String.format('/dgebanners/dgemultibanner[id=\'{0}\']', this._bannerId$2));
        if (!isNullOrUndefined(multiBanner)) {
            var bannerList = multiBanner.selectNodes('dgebanner');
            for (var i = 0; i < bannerList.length; i++) {
                var banner = bannerList[i];
                this._parseThroughSingleBanner$2(banner);
            }
        }
    },
    
    _parseThroughSingleBanner$2: function PCBnrComponent_PCBnrComponent$_parseThroughSingleBanner$2(bannerDefinition) {
        if (isNullOrUndefined(bannerDefinition)) {
            return;
        }
        var timeoutNode = bannerDefinition.selectSingleNode('container/timeout');
        if (timeoutNode) {
            this._timeoutValue$2 = Number.parse(timeoutNode.text);
            this._setContainerSheetTimeout$2();
        }
        var gameexternalid = bannerDefinition.selectSingleNode('gameexternalid');
        if (isNullOrUndefined(gameexternalid)) {
            return;
        }
        var sourcetype = bannerDefinition.selectSingleNode('sourcetype');
        var sourcetypeAsString = ((!sourcetype) ? null : sourcetype.text);
        var sourceType = PCBnrComponent.SourceType.createFromString(sourcetypeAsString);
        var infoElements = bannerDefinition.selectNodes('infofields/info');
        for (var i = 0; i < infoElements.length; i++) {
            var infoElement = infoElements[i];
            var idObject = infoElement.selectSingleNode('@id');
            var spanClassObject = infoElement.selectSingleNode('@span-class');
            if (isNullOrUndefined(idObject)) {
                continue;
            }
            var id = idObject.text;
            var spanClass = null;
            if (!isNullOrUndefined(spanClassObject)) {
                spanClass = spanClassObject.text;
            }
            var recordedMacroTarget = new PCBnrComponent.RecordedMacroField();
            recordedMacroTarget.id = id;
            recordedMacroTarget.externalid = gameexternalid.text;
            recordedMacroTarget.sourcetype = sourceType;
            recordedMacroTarget.text = infoElement.text;
            recordedMacroTarget.spanclass = spanClass;
            this._recordedMacroTargets$2[id] = recordedMacroTarget;
        }
        this._doDownloadGameSourceDescriptor$2(gameexternalid.text, sourceType);
    },
    
    getXsltParameters: function PCBnrComponent_PCBnrComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        xsltParameters['bannerid'] = this._bannerId$2;
        xsltParameters['images-location'] = this._imagesLocation$2;
        xsltParameters['view-value'] = this._getViewValue$2();
        xsltParameters['logged-in'] = (this._userService$2.isLoggedIn()) ? 'true' : 'false';
        return xsltParameters;
    },
    
    _getViewValue$2: function PCBnrComponent_PCBnrComponent$_getViewValue$2() {
        var pageFilter = this._navigationService$2.getPageFilter();
        var viewValue = pageFilter['view'];
        if (isNullOrUndefined(viewValue)) {
            return null;
        }
        return viewValue.toString();
    },
    
    get_isComponentVisible: function PCBnrComponent_PCBnrComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    onPageFilterChanged: function PCBnrComponent_PCBnrComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    bannerNavigationEventHandler: function PCBnrComponent_PCBnrComponent$bannerNavigationEventHandler(sender, eventArgs) {
        var index = eventArgs.parameters.getAsNumber('index');
        if (this._currentTimer$2 !== -1) {
            window.clearInterval(this._currentTimer$2);
            this._currentTimer$2 = -1;
            this._setContainerSheetTimeout$2();
        }
        this._activateSheet$2(index);
    },
    
    goToPageEventHandler: function PCBnrComponent_PCBnrComponent$goToPageEventHandler(sender, eventArgs) {
        var area = eventArgs.parameters.getAsString('pagearea');
        var action = eventArgs.parameters.getAsString('action');
        if (!String.isNullOrEmpty(area) && !String.isNullOrEmpty(action)) {
            this._navigationService$2.goTo(area, { action: action });
            return;
        }
        var javascript = eventArgs.parameters.getAsString('javascript');
        if (!String.isNullOrEmpty(javascript) && !String.isNullOrEmpty(javascript)) {
            eval(javascript);
            return;
        }
        var externallink = eventArgs.parameters.getAsString('externallink');
        if (!String.isNullOrEmpty(externallink)) {
            window.open(externallink, '_blank');
            return;
        }
    },
    
    _activateSheet$2: function PCBnrComponent_PCBnrComponent$_activateSheet$2(index) {
        this._activeSheet$2 = index;
        this._environment.safelyRemoveCssClassOnElement(this.getPrivateDomElement('button-1'), 'selected');
        this._environment.safelyRemoveCssClassOnElement(this.getPrivateDomElement('button-2'), 'selected');
        this._environment.safelyRemoveCssClassOnElement(this.getPrivateDomElement('button-3'), 'selected');
        this._environment.safelySetCssClassOnElement(this.getPrivateDomElement('button-' + index), 'selected');
        var banner1 = this.getPrivateDomElement(this._bannerId$2 + '-1');
        if (!isNullOrUndefined(banner1)) {
            banner1.style.display = 'none';
        }
        var banner2 = this.getPrivateDomElement(this._bannerId$2 + '-2');
        if (!isNullOrUndefined(banner2)) {
            banner2.style.display = 'none';
        }
        var banner3 = this.getPrivateDomElement(this._bannerId$2 + '-3');
        if (!isNullOrUndefined(banner3)) {
            banner3.style.display = 'none';
        }
        var bannerX = this.getPrivateDomElement(this._bannerId$2 + '-' + index);
        if (!isNullOrUndefined(bannerX)) {
            bannerX.style.display = 'block';
        }
    },
    
    _doDownloadGameSourceDescriptor$2: function PCBnrComponent_PCBnrComponent$_doDownloadGameSourceDescriptor$2(externalGameId, sourceType) {
        var contentRequest = new Framework.XMLHttpRequestDecorator();
        contentRequest.onreadystatechange = Delegate.create(this, function() {
            if (contentRequest.status === 200 || contentRequest.status === 304) {
                var parsedFields = new PCBnrComponent.ParsedFields(externalGameId);
                parsedFields.jackpotAmounts = this._extractJackpotAmountsFromGameDescriptor$2(contentRequest.responseXML, sourceType);
                parsedFields.totalPrizeAmount = this._extractTotalPrizeAmountFromGameDescriptor$2(parsedFields.jackpotAmounts);
                parsedFields.drawDateList = this._extractDrawDatesFromGameDescriptor$2(contentRequest.responseXML, sourceType);
                parsedFields.drawCloseTimeList = this._extractDrawCloseTimesFromGameDescriptor$2(contentRequest.responseXML, sourceType);
                parsedFields.drawNumberList = this._extractDrawNumbersFromGameDescriptor$2(contentRequest.responseXML, sourceType);
                parsedFields.resultNumbers = this._extractResultNumbersFromGameDescriptor$2(contentRequest.responseXML, sourceType, externalGameId);
                this._expandMacroExpressions$2(externalGameId, sourceType, parsedFields);
            }
        });
        var url;
        if (sourceType === PCBnrComponent.SourceType.CURRENT) {
            url = this._prepareUrlForLanguageAndGame$2(this._urlForCurrentEvent$2, externalGameId);
        }
        else if (sourceType === PCBnrComponent.SourceType.LAST) {
            url = this._prepareUrlForLanguageAndGame$2(this._urlForLastEvent$2, externalGameId);
        }
        else if (sourceType === PCBnrComponent.SourceType.lasT_2_FOR_TOTO3) {
            url = this._prepareUrlForLanguageAndGame$2(this._urlForLastTwoEventsForToto3$2, externalGameId);
        }
        else {
            url = this._prepareUrlForLanguageAndGame$2(this._urlForLastEventForBoleto$2, externalGameId);
        }
        contentRequest.open('GET', url, true);
        contentRequest.send(null);
    },
    
    _prepareUrlForLanguageAndGame$2: function PCBnrComponent_PCBnrComponent$_prepareUrlForLanguageAndGame$2(urlTemplate, gameExternalId) {
        var temp = urlTemplate.replace('${language}', this._environment.getLanguage());
        temp = temp.replace('${gameexternalid}', gameExternalId);
        return temp;
    },
    
    _extractDrawDatesFromGameDescriptor$2: function PCBnrComponent_PCBnrComponent$_extractDrawDatesFromGameDescriptor$2(responseXml, sourceType) {
        var nodeLocation = ((sourceType === PCBnrComponent.SourceType.lasT_2_FOR_TOTO3) ? '/gameevents/gameevents/gameevent/drawdate' : '/gameevent/drawdate');
        var dateNodes = responseXml.selectNodes(nodeLocation);
        var dateNodeList = [];
        if (isNullOrUndefined(dateNodes)) {
            return dateNodeList;
        }
        for (var i = 0; i < dateNodes.length; i++) {
            var dateNode = dateNodes[i];
            var dateAndTime = dateNode.text.split('T');
            var date = dateAndTime[0];
            var dateParts = date.split('-');
            var dateTime = new Date();
            dateTime.setYear(Number.parse(dateParts[0]));
            dateTime.setMonth(Number.parse(dateParts[1]) - 1);
            dateTime.setDate(Number.parse(dateParts[2]));
            dateNodeList.add(dateTime);
        }
        return dateNodeList;
    },
    
    _extractDrawCloseTimesFromGameDescriptor$2: function PCBnrComponent_PCBnrComponent$_extractDrawCloseTimesFromGameDescriptor$2(responseXml, sourceType) {
        var nodeLocation = ((sourceType === PCBnrComponent.SourceType.lasT_2_FOR_TOTO3) ? '/gameevents/gameevents/gameevent/drawclosetime' : '/gameevent/drawclosetime');
        var dateNodes = responseXml.selectNodes(nodeLocation);
        var dateNodeList = [];
        if (isNullOrUndefined(dateNodes)) {
            return dateNodeList;
        }
        for (var i = 0; i < dateNodes.length; i++) {
            var dateNode = dateNodes[i];
            var dateAndTime = dateNode.text.split('T');
            var date = dateAndTime[0];
            var dateParts = date.split('-');
            var dateTime = new Date();
            dateTime.setYear(Number.parse(dateParts[0]));
            dateTime.setMonth(Number.parse(dateParts[1]) - 1);
            dateTime.setDate(Number.parse(dateParts[2]));
            var time = dateAndTime[1];
            var timeParts = time.split(':');
            dateTime.setHours(Number.parse(timeParts[0]));
            dateTime.setMinutes(Number.parse(timeParts[1]));
            dateTime.setSeconds(Number.parse(timeParts[2]));
            dateNodeList.add(dateTime);
        }
        return dateNodeList;
    },
    
    _extractDrawNumbersFromGameDescriptor$2: function PCBnrComponent_PCBnrComponent$_extractDrawNumbersFromGameDescriptor$2(responseXml, sourceType) {
        var nodeLocation = ((sourceType === PCBnrComponent.SourceType.lasT_2_FOR_TOTO3) ? '/gameevents/gameevents/gameevent/drawnumber' : '/gameevent/drawnumber');
        var drawNumberNodes = responseXml.selectNodes(nodeLocation);
        var drawNumberList = [];
        if (isNullOrUndefined(drawNumberNodes)) {
            return drawNumberList;
        }
        for (var i = 0; i < drawNumberNodes.length; i++) {
            var drawNumberNode = drawNumberNodes[i];
            drawNumberList.add(drawNumberNode.text);
        }
        return drawNumberList;
    },
    
    _extractJackpotAmountsFromGameDescriptor$2: function PCBnrComponent_PCBnrComponent$_extractJackpotAmountsFromGameDescriptor$2(responseXml, sourceType) {
        var eventNodeLocation = ((sourceType === PCBnrComponent.SourceType.lasT_2_FOR_TOTO3) ? '/gameevents/gameevents/gameevent' : '/gameevent');
        var eventNode = responseXml.selectSingleNode(eventNodeLocation);
        var drawNodes = eventNode.selectNodes('gamedraws/gamedraw');
        var resultJackpots = [];
        for (var i = 0; i < drawNodes.length; i++) {
            var drawNode = drawNodes[i];
            resultJackpots.add(this._extractJackpotAmountForGameDrawNode$2(drawNode));
        }
        return resultJackpots;
    },
    
    _extractJackpotAmountForGameDrawNode$2: function PCBnrComponent_PCBnrComponent$_extractJackpotAmountForGameDrawNode$2(drawNode) {
        var valueNode = drawNode.selectSingleNode('guaranteedjackpot');
        if (isNullOrUndefined(valueNode) || String.isNullOrEmpty(valueNode.text)) {
            valueNode = drawNode.selectSingleNode('estimatedjackpot');
        }
        if (isNullOrUndefined(valueNode) || String.isNullOrEmpty(valueNode.text)) {
            return 0;
        }
        return Number.parse(valueNode.text);
    },
    
    _extractTotalPrizeAmountFromGameDescriptor$2: function PCBnrComponent_PCBnrComponent$_extractTotalPrizeAmountFromGameDescriptor$2(jackpots) {
        var totalAmount = 0;
        for (var i = 0; i < jackpots.length; i++) {
            var jackpot = jackpots[i];
            totalAmount = totalAmount + jackpot;
        }
        return totalAmount;
    },
    
    _extractResultNumbersFromGameDescriptor$2: function PCBnrComponent_PCBnrComponent$_extractResultNumbersFromGameDescriptor$2(responseXml, sourceType, externalId) {
        var url;
        if (sourceType === PCBnrComponent.SourceType.LAST || sourceType === PCBnrComponent.SourceType.lasT_FOR_BOLETO) {
            url = '/gameevent/gamedraws/gamedraw';
        }
        else if (sourceType === PCBnrComponent.SourceType.lasT_2_FOR_TOTO3) {
            url = '/gameevents/gameevents/gameevent/gamedraws/gamedraw';
        }
        else {
            return {};
        }
        var drawNodes = responseXml.selectNodes(url);
        if (isNullOrUndefined(drawNodes)) {
            return null;
        }
        var resultNumbers = {};
        for (var i = 0; i < drawNodes.length; i++) {
            var drawNode = drawNodes[i];
            var mainValues = drawNode.selectSingleNode('resultsets/resultset/mainvalues');
            var bonusValues = drawNode.selectSingleNode('resultsets/resultset/bonusvalues');
            if (!isNullOrUndefined(mainValues)) {
                var numbers = mainValues.text.split(',');
                var builder = new StringBuilder();
                for (var j = 0; j < numbers.length; j++) {
                    builder.append(String.format('<span class=\'set-{0}\'>{1}</span>', i + 1, numbers[j]));
                }
                resultNumbers[String.format('%NUMBERS_DRAW_{0}%', i + 1)] = builder.toString();
            }
            if (!isNullOrUndefined(bonusValues)) {
                var numbers = bonusValues.text.split(',');
                var builder = new StringBuilder();
                for (var j = 0; j < numbers.length; j++) {
                    builder.append(String.format('<span class=\'set-{0}-bonus\'>{1}</span>', i + 1, numbers[j]));
                }
                resultNumbers[String.format('%NUMBERS_DRAW_{0}_BONUS%', i + 1)] = builder.toString();
            }
        }
        if (externalId === 'Boleto') {
            this._resultNumbersPostProcessingForBoleto$2(resultNumbers, responseXml);
        }
        return resultNumbers;
    },
    
    _resultNumbersPostProcessingForBoleto$2: function PCBnrComponent_PCBnrComponent$_resultNumbersPostProcessingForBoleto$2(resultNumbers, responseXml) {
        var mainValues = responseXml.selectSingleNode('/gameevent/maindraw/resultsets/resultset/mainvalues');
        if (isNullOrUndefined(mainValues)) {
            return;
        }
        resultNumbers['%NUMBERS_DRAW_1%'] = mainValues.text;
        if (isNullOrUndefined(mainValues)) {
            return;
        }
        var firstTermination = mainValues.text.substring(4, 5);
        var secondTermination = '';
        var thirdTermination = '';
        var allDivisionNames = responseXml.selectNodes('/gameevent/gamedraws/gamedraw/resultdivisions/resultdivision/name');
        for (var i = 0; i < allDivisionNames.length; i++) {
            var divisionName = allDivisionNames[i];
            if (divisionName.text.indexOf('2ra') !== -1) {
                secondTermination = divisionName.selectSingleNode('../../../resultsets/resultset/mainvalues').text.substring(4, 5);
            }
            else if (divisionName.text.indexOf('3ra') !== -1) {
                thirdTermination = divisionName.selectSingleNode('../../../resultsets/resultset/mainvalues').text.substring(4, 5);
            }
        }
        resultNumbers['%NUMBERS_DRAW_BOLETO_TERMINATIONS%'] = String.format('{0} {1} {2}', firstTermination, secondTermination, thirdTermination);
    },
    
    _expandMacroExpressions$2: function PCBnrComponent_PCBnrComponent$_expandMacroExpressions$2(externalGameId, sourceType, parsedFields) {
        var $dict1 = this._recordedMacroTargets$2;
        for (var $key2 in $dict1) {
            var recordedElement = { key: $key2, value: $dict1[$key2] };
            var macroField = recordedElement.value;
            if (macroField.externalid !== externalGameId || macroField.sourcetype !== sourceType) {
                continue;
            }
            macroField.text = this._expandSingleMacroExpansion$2(externalGameId, parsedFields, macroField.text);
            this._recordedMacroTargets$2[recordedElement.key] = macroField;
            if (!String.isNullOrEmpty(macroField.text) && macroField.text.indexOf('%') === -1) {
                this._fillUpRetry$2(recordedElement.key, macroField, 1);
            }
        }
    },
    
    _fillUpRetry$2: function PCBnrComponent_PCBnrComponent$_fillUpRetry$2(infoId, macroField, retryCount) {
        var value = macroField.text;
        var spanClass = macroField.spanclass;
        var target = this.getPrivateDomElement(this._bannerId$2 + '-' + infoId);
        if (isNullOrUndefined(target) && retryCount < 50) {
            window.setTimeout(Delegate.create(this, function() {
                this._fillUpRetry$2(infoId, macroField, retryCount + 1);
            }), 100 * retryCount);
            return;
        }
        if (isNullOrUndefined(target)) {
            return;
        }
        if (isNullOrUndefined(spanClass)) {
            target.innerHTML = value;
        }
        else {
            var asTemplate = new StringBuilder();
            for (var i = 0; i < value.length; i++) {
                var digit = value.charAt(i);
                asTemplate.append(String.format('<span class=\'{0}{1}\'></span>', spanClass, digit));
            }
            target.innerHTML = asTemplate.toString();
        }
    },
    
    _expandSingleMacroExpansion$2: function PCBnrComponent_PCBnrComponent$_expandSingleMacroExpansion$2(externalGameId, parsedFields, initialValue) {
        var workingTemplate = initialValue.replace('%TOTAL_PRIZE_AMOUNT_IN_MILLIONS%', (Math.truncate(parsedFields.totalPrizeAmount / 1000000)).toString());
        workingTemplate = workingTemplate.replace('%TOTAL_PRIZE_AMOUNT%', parsedFields.totalPrizeAmount.toLocaleString());
        if (!isNullOrUndefined(parsedFields.jackpotAmounts)) {
            for (var i = 0; i < parsedFields.jackpotAmounts.length; i++) {
                var jackpotAmount = parsedFields.jackpotAmounts[i];
                workingTemplate = workingTemplate.replace(String.format('%JACKPOT_AMOUNT_{0}%', i + 1), jackpotAmount.toLocaleString());
                workingTemplate = workingTemplate.replace(String.format('%JACKPOT_AMOUNT_{0}_IN_MILLIONS%', i + 1), (Math.truncate(jackpotAmount / 1000000)).toString());
            }
        }
        if (!isNullOrUndefined(parsedFields.drawNumberList[0])) {
            var firstDrawDate = parsedFields.drawDateList[0];
            workingTemplate = workingTemplate.replace('%DRAW_DATE_LONG%', firstDrawDate.format('dddd, MMMM d, yyyy', true));
            workingTemplate = workingTemplate.replace('%DRAW_DATE%', firstDrawDate.format('dd/MM/yyyy', true));
            var firstDrawCloseTime = parsedFields.drawCloseTimeList[0];
            workingTemplate = workingTemplate.replace('%DRAW_CLOSE_TIME%', firstDrawCloseTime.format('HH:mm', true));
            if ('Toto3' === externalGameId) {
                if (!isNullOrUndefined(parsedFields.drawNumberList[1])) {
                    var secondDrawDate = parsedFields.drawDateList[1];
                    workingTemplate = workingTemplate.replace('%DRAW_DATE_1%', secondDrawDate.format('dd/MM/yyyy', true));
                    var secondDrawCloseTime = parsedFields.drawCloseTimeList[1];
                    workingTemplate = workingTemplate.replace('%DRAW_CLOSE_TIME_1%', secondDrawCloseTime.format('HH:mm', true));
                }
            }
        }
        if (!isNullOrUndefined(parsedFields.drawNumberList[0])) {
            workingTemplate = workingTemplate.replace('%DRAW_NUMBER%', parsedFields.drawNumberList[0].toString());
            if (!isNullOrUndefined(parsedFields.drawNumberList[1])) {
                workingTemplate = workingTemplate.replace('%DRAW_NUMBER_1%', parsedFields.drawNumberList[1].toString());
            }
        }
        var $dict1 = parsedFields.resultNumbers;
        for (var $key2 in $dict1) {
            var resultNumbers = { key: $key2, value: $dict1[$key2] };
            workingTemplate = workingTemplate.replace(resultNumbers.key, resultNumbers.value.toString());
        }
        return workingTemplate;
    },
    
    _setContainerSheetTimeout$2: function PCBnrComponent_PCBnrComponent$_setContainerSheetTimeout$2() {
        this._currentTimer$2 = window.setInterval(Delegate.create(this, this._toggleNextSheet$2), this._timeoutValue$2);
    },
    
    _toggleNextSheet$2: function PCBnrComponent_PCBnrComponent$_toggleNextSheet$2() {
        this._activateSheet$2(this._activeSheet$2 % 3 + 1);
    }
}


PCBnrComponent.RecordedMacroField.createClass('PCBnrComponent.RecordedMacroField');
PCBnrComponent.ParsedFields.createClass('PCBnrComponent.ParsedFields');
PCBnrComponent.SourceType.createClass('PCBnrComponent.SourceType');
PCBnrComponent.PCBnrComponent.createClass('PCBnrComponent.PCBnrComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener, UserService.IUserChangedListener);
PCBnrComponent.SourceType.CURRENT = new PCBnrComponent.SourceType('CURRENT');
PCBnrComponent.SourceType.LAST = new PCBnrComponent.SourceType('LAST');
PCBnrComponent.SourceType.lasT_2_FOR_TOTO3 = new PCBnrComponent.SourceType('LAST_2_FOR_TOTO3');
PCBnrComponent.SourceType.lasT_FOR_BOLETO = new PCBnrComponent.SourceType('LAST_FOR_BOLETO');

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('DGENotifierComponent');

////////////////////////////////////////////////////////////////////////////////
// DGENotifierComponent.SimpleNotificationActivator

DGENotifierComponent.SimpleNotificationActivator = function DGENotifierComponent_SimpleNotificationActivator(node, owner) {
    this._owner = owner;
    this._eventName = (node.attributes.getNamedItem('event')).value;
    var nodeList = node.childNodes;
    for (var i = 0; i < nodeList.length; i++) {
        var notificationChildNode = nodeList[i];
        if (notificationChildNode.nodeName === 'message') {
            this._message = notificationChildNode.text;
        }
        else if (notificationChildNode.nodeName === 'forward-to-area') {
            this._forwardToArea = notificationChildNode.text;
        }
        else if (notificationChildNode.nodeName === 'forward-to-action') {
            this._forwardToAction = notificationChildNode.text;
        }
    }
}
DGENotifierComponent.SimpleNotificationActivator.prototype = {
    _eventName: null,
    _message: null,
    _forwardToArea: null,
    _forwardToAction: null,
    _owner: null,
    
    executeForNotification: function DGENotifierComponent_SimpleNotificationActivator$executeForNotification(notification) {
        if (notification.getNotificationEventName() === this._eventName) {
            this._execute();
        }
    },
    
    _execute: function DGENotifierComponent_SimpleNotificationActivator$_execute() {
        if (!isNullOrUndefined(this._message)) {
            alert(this._message);
        }
        if (!isNullOrUndefined(this._forwardToArea) && !isNullOrUndefined(this._forwardToAction)) {
            this._owner.getNavigationService().forwardTo(this._forwardToArea, { action: this._forwardToAction });
        }
    }
}


////////////////////////////////////////////////////////////////////////////////
// DGENotifierComponent.DGENotifierComponent

DGENotifierComponent.DGENotifierComponent = function DGENotifierComponent_DGENotifierComponent() {
    this._xhrDecorator$2 = new Framework.XMLHttpRequestDecorator();
    this._activators$2 = [];
    DGENotifierComponent.DGENotifierComponent.constructBase(this);
}
DGENotifierComponent.DGENotifierComponent.prototype = {
    _navigationService$2: null,
    
    setNavigationService: function DGENotifierComponent_DGENotifierComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    getNavigationService: function DGENotifierComponent_DGENotifierComponent$getNavigationService() {
        return this._navigationService$2;
    },
    
    onPageFilterChanged: function DGENotifierComponent_DGENotifierComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
    },
    
    _userService$2: null,
    
    setUserService: function DGENotifierComponent_DGENotifierComponent$setUserService(userService) {
        this._log.debug('SetUserService');
        this._userService$2 = userService;
    },
    
    onUserChanged: function DGENotifierComponent_DGENotifierComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        this.update();
    },
    
    _dgeService$2: null,
    
    setDGEService: function DGENotifierComponent_DGENotifierComponent$setDGEService(dgeService) {
        this._log.debug('SetDGEService');
        this._dgeService$2 = dgeService;
    },
    
    onDGENotification: function DGENotifierComponent_DGENotifierComponent$onDGENotification(notification) {
        var $enum1 = this._activators$2.getEnumerator();
        while ($enum1.moveNext()) {
            var activator = $enum1.get_current();
            activator.executeForNotification(notification);
        }
    },
    
    init: function DGENotifierComponent_DGENotifierComponent$init(environment, componentInstanceName, domElementId, parameters) {
        DGENotifierComponent.DGENotifierComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters = new Framework.CommonComponentParameters(parameters);
        this._loadNotifierParameters$2();
    },
    
    get_isComponentVisible: function DGENotifierComponent_DGENotifierComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    getXsltParameters: function DGENotifierComponent_DGENotifierComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        return xsltParameters;
    },
    
    _checkState$2: function DGENotifierComponent_DGENotifierComponent$_checkState$2() {
        if (this._xhrDecorator$2.readyState === 4) {
            if (this._xhrDecorator$2.status === 200 || this._xhrDecorator$2.status === 304) {
                var _document = this._xhrDecorator$2.responseXML;
                this._createListeners$2(_document);
            }
        }
    },
    
    _loadNotifierParameters$2: function DGENotifierComponent_DGENotifierComponent$_loadNotifierParameters$2() {
        this._xhrDecorator$2.onreadystatechange = Delegate.create(this, this._checkState$2);
        var xmlPath = this._parameters.get_contentUrl();
        this._xhrDecorator$2.open('GET', xmlPath, true);
        this._xhrDecorator$2.send(null);
    },
    
    _createListeners$2: function DGENotifierComponent_DGENotifierComponent$_createListeners$2(doc) {
        var nodeList = doc.getElementsByTagName('notification');
        for (var i = 0; i < nodeList.length; i++) {
            var node = nodeList[i];
            this._activators$2.add(new DGENotifierComponent.SimpleNotificationActivator(node, this));
        }
    }
}


DGENotifierComponent.SimpleNotificationActivator.createClass('DGENotifierComponent.SimpleNotificationActivator');
DGENotifierComponent.DGENotifierComponent.createClass('DGENotifierComponent.DGENotifierComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener, UserService.IUserChangedListener, DGEService.IDGENotificationListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
// ComponenteRSS.js
//


Type.createNamespace('ComponenteRSS');

////////////////////////////////////////////////////////////////////////////////
// ComponenteRSS.ComponenteRSS

ComponenteRSS.ComponenteRSS = function ComponenteRSS_ComponenteRSS() {
    ComponenteRSS.ComponenteRSS.constructBase(this);
}
ComponenteRSS.ComponenteRSS.prototype = {
    _navigationservice$2: null,
    
    setNavigationService: function ComponenteRSS_ComponenteRSS$setNavigationService(navservice) {
        this._navigationservice$2 = navservice;
        this._navigationservice$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
    },
    
    get_isComponentVisible: function ComponenteRSS_ComponenteRSS$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationservice$2.getAction());
    },
    
    onPageFilterChanged: function ComponenteRSS_ComponenteRSS$onPageFilterChanged(eventSource) {
        this.update();
    }
}


ComponenteRSS.ComponenteRSS.createClass('ComponenteRSS.ComponenteRSS', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------

