Type.createNamespace('ClockComponent');

////////////////////////////////////////////////////////////////////////////////
// ClockComponent.ClockComponent

ClockComponent.ClockComponent = function ClockComponent_ClockComponent() {
    ClockComponent.ClockComponent.constructBase(this);
}
ClockComponent.ClockComponent.prototype = {
    _parameters$1: null,
    _clockDomElement$1: null,
    _useCustomDigits$1: false,
    _timeDateFormat$1: null,
    _clockSpan$1: null,
    _businessUnitService$1: null,
    
    setBusinessUnitService: function ClockComponent_ClockComponent$setBusinessUnitService(businessUnitService) {
        this._log.debug('SetBusinessUnitService');
        this._businessUnitService$1 = businessUnitService;
    },
    
    init: function ClockComponent_ClockComponent$init(environment, componentInstanceName, domElementId, parameters) {
        ClockComponent.ClockComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._timeDateFormat$1 = parameters['time-date-format'];
        this._useCustomDigits$1 = Boolean.parse(parameters['use-custom-digits']);
        this._clockDomElement$1 = document.createElement('p');
        this._clockDomElement$1.className = 'lb_clock';
        this._clockDomElement$1.id = this._domElementId + '-lb_clock';
        this._environment.getDomElement(this._domElementId).appendChild(this._clockDomElement$1);
        this._clockSpan$1 = '';
        if (parameters['clock-label'] !== '') {
            this._clockSpan$1 = parameters['clock-label'];
            if (this._useCustomDigits$1) {
                var tempClockSpan = '';
                var curChar = '';
                for (var i = 0; i < this._clockSpan$1.length; i++) {
                    curChar = this._clockSpan$1.charAt(i).toString();
                    tempClockSpan += String.format('<span class=\"digit digit{0}\">{1}</span>', curChar, this._clockSpan$1.charAt(i));
                }
                this._clockSpan$1 = tempClockSpan;
            }
            this._clockSpan$1 = ' <span class=\"clocklabel\" >' + this._clockSpan$1 + '</span> ';
        }
    },
    
    start: function ClockComponent_ClockComponent$start() {
        this.repaint();
    },
    
    repaint: function ClockComponent_ClockComponent$repaint() {
        this._log.debug('Repaint');
        window.setInterval(Delegate.create(this, function() {
            var currentTime = new Date((Date.get_now().getTime() + this._businessUnitService$1.getDateTimeOffset())).format(this._timeDateFormat$1, true);
            if (this._useCustomDigits$1) {
                var customCurrentTime = '';
                var curChar = '';
                for (var i = 0; i < currentTime.length; i++) {
                    curChar = currentTime.charAt(i).toString();
                    switch (curChar) {
                        case ':':
                            curChar = 'Colon';
                            break;
                        case '.':
                            curChar = 'Dot';
                            break;
                        case '-':
                            curChar = 'Dash';
                            break;
                    }
                    customCurrentTime += String.format('<span class=\"digit digit{0}\">{1}</span>', curChar, currentTime.charAt(i));
                }
                currentTime = customCurrentTime;
            }
            this._environment.updateDomElementDirect(this._clockDomElement$1, currentTime + this._clockSpan$1);
        }), 1000);
    }
}


ClockComponent.ClockComponent.createClass('ClockComponent.ClockComponent', Framework.Component.AbstractComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
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('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,
    _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'];
    },
    
    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['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');
        }
        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 action = this._navigationService$1.getAction();
        if (String.isNullOrEmpty(action)) {
            action = null;
        }
        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 === this._currentChannel$1) {
                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('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;
    }
}


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('TreeNavigationComponent');

////////////////////////////////////////////////////////////////////////////////
// TreeNavigationComponent.TreeNavigationComponent

TreeNavigationComponent.TreeNavigationComponent = function TreeNavigationComponent_TreeNavigationComponent() {
    TreeNavigationComponent.TreeNavigationComponent.constructBase(this);
}
TreeNavigationComponent.TreeNavigationComponent.prototype = {
    _headerText$1: '',
    _parameters$1: null,
    _bettingNavigationService$1: null,
    
    setBettingNavigationService: function TreeNavigationComponent_TreeNavigationComponent$setBettingNavigationService(bettingNavigationService) {
        this._log.debug('SetBettingNavigationService');
        this._bettingNavigationService$1 = bettingNavigationService;
    },
    
    _navigationService$1: null,
    
    setNavigationService: function TreeNavigationComponent_TreeNavigationComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$1 = navigationService;
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.boNavigation);
    },
    
    onPageFilterChanged: function TreeNavigationComponent_TreeNavigationComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
    },
    
    init: function TreeNavigationComponent_TreeNavigationComponent$init(environment, componentInstanceName, domElementId, parameters) {
        TreeNavigationComponent.TreeNavigationComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._headerText$1 = parameters['header'];
    },
    
    start: function TreeNavigationComponent_TreeNavigationComponent$start() {
        this.repaint();
    },
    
    _bindBehaviors$1: function TreeNavigationComponent_TreeNavigationComponent$_bindBehaviors$1(domID) {
        Framework.Behavior.Binding.BehaviorBinder.autoBind(this._environment.getDomElement(domID), (this));
    },
    
    _getXsltParameters$1: function TreeNavigationComponent_TreeNavigationComponent$_getXsltParameters$1(BONavigationContext) {
        var result = {};
        result['component-instance-name'] = this._componentInstanceName;
        result['component-dom-element-id'] = this._domElementId;
        result['level'] = BONavigationContext.length;
        var context = '[';
        for (var i = 0; i < BONavigationContext.length; i++) {
            context += String.format('\'{0}\'{1}', BONavigationContext[i], (i < BONavigationContext.length - 1) ? ', ' : '');
        }
        context += ']';
        result['bo-navigation-context'] = context;
        result['header'] = this._headerText$1;
        result['current-day'] = Date.get_today().format('yyyy-MM-dd');
        return result;
    },
    
    _repaintLevel$1: function TreeNavigationComponent_TreeNavigationComponent$_repaintLevel$1(currentBONavigation, IDFWMarketGroup, level) {
        if (level >= Math.min(2, currentBONavigation.length)) {
            this._adjust$1(currentBONavigation, IDFWMarketGroup, this._environment.getDomElement(this._domElementId), 0);
            return;
        }
        var domElement = this.getPrivateDomElement('link-' + currentBONavigation[level]);
        if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._expanded$1) >= 0) {
            this._repaintLevel$1(currentBONavigation, IDFWMarketGroup, level + 1);
        }
        else if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._collapsed$1) >= 0) {
            domElement.className = domElement.className.replace(TreeNavigationComponent.TreeNavigationComponent._collapsed$1, TreeNavigationComponent.TreeNavigationComponent._expanded$1);
            this._repaintLevel$1(currentBONavigation, IDFWMarketGroup, level + 1);
        }
        else {
            var contentId = this._parameters$1.get_contentUrl().replace('${idfwbonavigation}', currentBONavigation[level]);
            var BONavigationContext = currentBONavigation.extract(0, level + 1);
            domElement.className += ' ' + TreeNavigationComponent.TreeNavigationComponent._expanded$1;
            var domID = this._domElementId + '-child-' + currentBONavigation[level];
            this._environment.transformAndUpdate(domID, contentId, this._parameters$1.get_xsltUrl(), this._getXsltParameters$1(BONavigationContext), Delegate.create(this, function() {
                this._bindBehaviors$1(domID);
                this._repaintLevel$1(currentBONavigation, IDFWMarketGroup, level + 1);
            }));
        }
    },
    
    _adjust$1: function TreeNavigationComponent_TreeNavigationComponent$_adjust$1(BONavigationContext, IDFWMarketGroup, domElement, depth) {
        if (!String.isNullOrEmpty(domElement.id)) {
            if (domElement.id.indexOf('-link-') >= 0) {
                if (depth === 2) {
                    if (BONavigationContext.length === depth + 1 && domElement.id.endsWith('-' + BONavigationContext[2])) {
                        domElement.className += (domElement.className.indexOf('active') < 0) ? ' active' : '';
                    }
                    else {
                        domElement.className = domElement.className.replace('active', '');
                    }
                }
                else {
                    if (depth >= BONavigationContext.length || !domElement.id.endsWith('-' + BONavigationContext[depth])) {
                        if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._expanded$1) >= 0) {
                            domElement.className = domElement.className.replace(TreeNavigationComponent.TreeNavigationComponent._expanded$1, TreeNavigationComponent.TreeNavigationComponent._collapsed$1);
                        }
                    }
                    else if (depth < BONavigationContext.length && domElement.id.endsWith('-' + BONavigationContext[depth])) {
                        if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._collapsed$1) >= 0) {
                            domElement.className = domElement.className.replace(TreeNavigationComponent.TreeNavigationComponent._collapsed$1, TreeNavigationComponent.TreeNavigationComponent._expanded$1);
                        }
                        else if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._expanded$1) < 0) {
                            domElement.className += ' ' + TreeNavigationComponent.TreeNavigationComponent._expanded$1;
                        }
                    }
                }
                depth++;
            }
            else if (domElement.id.indexOf('-mg-') >= 0) {
                if (!String.isNullOrEmpty(IDFWMarketGroup) && domElement.id.endsWith('-' + IDFWMarketGroup)) {
                    domElement.className += (domElement.className.indexOf('active') < 0) ? ' active' : '';
                }
                else {
                    domElement.className = domElement.className.replace('active', '');
                }
            }
        }
        for (var i = 0; i < domElement.childNodes.length; i++) {
            this._adjust$1(BONavigationContext, IDFWMarketGroup, domElement.childNodes[i], depth);
        }
    },
    
    _collapse$1: function TreeNavigationComponent_TreeNavigationComponent$_collapse$1(BONavigationContext, IDFWMarketGroup, domElement, depth) {
        if (!String.isNullOrEmpty(domElement.id)) {
            if (domElement.id.indexOf('-link-') >= 0) {
                if (depth === 2) {
                    if (BONavigationContext.length === depth + 1 && domElement.id.endsWith('-' + BONavigationContext[2])) {
                        domElement.className += (domElement.className.indexOf('active') < 0) ? ' active' : '';
                    }
                    else {
                        domElement.className = domElement.className.replace('active', '');
                    }
                }
                else {
                    if (depth >= BONavigationContext.length || !domElement.id.endsWith('-' + BONavigationContext[depth])) {
                        if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._expanded$1) >= 0) {
                            domElement.className = domElement.className.replace('', TreeNavigationComponent.TreeNavigationComponent._collapsed$1);
                        }
                    }
                    else if (depth < BONavigationContext.length && domElement.id.endsWith('-' + BONavigationContext[depth])) {
                        if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._collapsed$1) >= 0) {
                            domElement.className = domElement.className.replace(TreeNavigationComponent.TreeNavigationComponent._collapsed$1, TreeNavigationComponent.TreeNavigationComponent._expanded$1);
                        }
                        else if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._expanded$1) < 0) {
                            domElement.className += ' ' + TreeNavigationComponent.TreeNavigationComponent._expanded$1;
                        }
                    }
                }
                depth++;
            }
            else if (domElement.id.indexOf('-mg-') >= 0) {
                if (!String.isNullOrEmpty(IDFWMarketGroup) && domElement.id.endsWith(IDFWMarketGroup)) {
                    domElement.className += (domElement.className.indexOf('active') < 0) ? ' active' : '';
                }
                else {
                    domElement.className = domElement.className.replace('active', '');
                }
            }
            else if (domElement.id.indexOf('-showall') >= 0) {
                domElement.className = domElement.className.replace(TreeNavigationComponent.TreeNavigationComponent._collapsed$1, TreeNavigationComponent.TreeNavigationComponent._expanded$1);
            }
        }
        for (var i = 0; i < domElement.childNodes.length; i++) {
            this._collapse$1(BONavigationContext, IDFWMarketGroup, domElement.childNodes[i], depth);
        }
    },
    
    repaint: function TreeNavigationComponent_TreeNavigationComponent$repaint() {
        this._log.debug('Repaint');
        var currentBONavigation = this._bettingNavigationService$1.getBONavigation();
        var IDFWMarketGroup = this._bettingNavigationService$1.getMarketGroup();
        var contentUrl = this._parameters$1.get_contentUrl().replace('${idfwbonavigation}', 'top');
        if (!this._environment.getDomElement(this._domElementId).childNodes.length) {
            this._environment.transformAndUpdate(this._domElementId, contentUrl, this._parameters$1.get_xsltUrl(), this._getXsltParameters$1([]), Delegate.create(this, function() {
                this._bindBehaviors$1(this._domElementId);
                this._repaintLevel$1(currentBONavigation, IDFWMarketGroup, 0);
            }));
        }
        else {
            this._repaintLevel$1(currentBONavigation, IDFWMarketGroup, 0);
        }
    },
    
    showAll: function TreeNavigationComponent_TreeNavigationComponent$showAll() {
        this.repaint();
    },
    
    filter: function TreeNavigationComponent_TreeNavigationComponent$filter(BONavigationContext, IDFWBONavigation) {
        this._log.debug(String.format('Filter BONavigationContext=[{0}] IDFWBONavigation=[{1}]', BONavigationContext, IDFWBONavigation));
        if (BONavigationContext.length === 2) {
            var newBONavigation = [];
            newBONavigation.addRange(BONavigationContext);
            newBONavigation.add(IDFWBONavigation);
            this._bettingNavigationService$1.setBONavigationLevels(newBONavigation);
        }
        else {
            var domElement = this.getPrivateDomElement('link-' + IDFWBONavigation);
            var expandedBONavigation = [];
            expandedBONavigation.addRange(BONavigationContext);
            if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._expanded$1) < 0) {
                expandedBONavigation.add(IDFWBONavigation);
                if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._collapsed$1) < 0) {
                    var contentUrl = this._parameters$1.get_contentUrl().replace('${idfwbonavigation}', IDFWBONavigation);
                    var domID = String.format('{0}-child-{1}', this._domElementId, IDFWBONavigation);
                    this._environment.transformAndUpdate(domID, contentUrl, this._parameters$1.get_xsltUrl(), this._getXsltParameters$1(expandedBONavigation), Delegate.create(this, function() {
                        this._bindBehaviors$1(domID);
                    }));
                }
            }
            var IDFWMarketGroup = this._bettingNavigationService$1.getMarketGroup();
            this._collapse$1(expandedBONavigation, IDFWMarketGroup, this._environment.getDomElement(this._domElementId), 0);
        }
    },
    
    toggleEventHandler: function TreeNavigationComponent_TreeNavigationComponent$toggleEventHandler(sender, eventArgs) {
        var BONavigationContext = eventArgs.parameters.getAsStringArray('navcontext');
        var IDFWBONavigation = eventArgs.parameters.getAsString('idfwbonavigation');
        this._log.debug(String.format('Toggle BONavigationContext=[{0}] IDFWBONavigation=[{1}]', BONavigationContext, IDFWBONavigation));
        if (BONavigationContext.length === 2) {
            var newBONavigation = [];
            newBONavigation.addRange(BONavigationContext);
            newBONavigation.add(IDFWBONavigation);
            this._bettingNavigationService$1.setBONavigationLevels(newBONavigation);
        }
        else {
            var domElement = this.getPrivateDomElement('link-' + IDFWBONavigation);
            var expandedBONavigation = [];
            expandedBONavigation.addRange(BONavigationContext);
            if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._expanded$1) < 0) {
                expandedBONavigation.add(IDFWBONavigation);
                if (domElement.className.indexOf(TreeNavigationComponent.TreeNavigationComponent._collapsed$1) < 0) {
                    var contentUrl = this._parameters$1.get_contentUrl().replace('${idfwbonavigation}', IDFWBONavigation);
                    var domID = String.format('{0}-child-{1}', this._domElementId, IDFWBONavigation);
                    this._environment.transformAndUpdate(domID, contentUrl, this._parameters$1.get_xsltUrl(), this._getXsltParameters$1(expandedBONavigation), Delegate.create(this, function() {
                        this._bindBehaviors$1(domID);
                    }));
                }
            }
            var IDFWMarketGroup = this._bettingNavigationService$1.getMarketGroup();
            this._adjust$1(expandedBONavigation, IDFWMarketGroup, this._environment.getDomElement(this._domElementId), 0);
        }
        window.event.returnValue = false;
    },
    
    setMarketGroupEventHandler: function TreeNavigationComponent_TreeNavigationComponent$setMarketGroupEventHandler(sender, eventArgs) {
        var BONavigationContext = eventArgs.parameters.getAsStringArray('navcontext');
        var IDFWMarketGroup = eventArgs.parameters.getAsString('idfwmarketgroup');
        this._log.debug(String.format('SetMarketGroup BONavigationContext=[{0}] IDFWMarketGroup=[{1}]', BONavigationContext, IDFWMarketGroup));
        this._bettingNavigationService$1.setNavigation(BONavigationContext, IDFWMarketGroup, null, null, null, null);
        window.scrollTo(0, 0);
        window.event.returnValue = false;
    }
}


TreeNavigationComponent.TreeNavigationComponent.createClass('TreeNavigationComponent.TreeNavigationComponent', Framework.Component.AbstractComponent, NavigationService.IPageFilterChangedListener);
TreeNavigationComponent.TreeNavigationComponent._expanded$1 = 'expanded';
TreeNavigationComponent.TreeNavigationComponent._collapsed$1 = 'collapsed';

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('FastSearchBoxComponent');

////////////////////////////////////////////////////////////////////////////////
// FastSearchBoxComponent.FastSearchBoxComponent

FastSearchBoxComponent.FastSearchBoxComponent = function FastSearchBoxComponent_FastSearchBoxComponent() {
    FastSearchBoxComponent.FastSearchBoxComponent.constructBase(this);
}
FastSearchBoxComponent.FastSearchBoxComponent.prototype = {
    _parameters$2: null,
    _AutoComplete$2: true,
    _kansasAdaptorUrl$2: '../template__/components/FastSearchBoxComponent/KansasAdapter.aspx',
    _minimumPrefixLength$2: 3,
    _searchResultsPageArea$2: 'Betting',
    _searchResultsPageAction$2: 'fast-search-results',
    
    showResultsEventHandler: function FastSearchBoxComponent_FastSearchBoxComponent$showResultsEventHandler(sender, eventArgs) {
        var value = (this._environment.getDomElement(eventArgs.parameters.getAsString('domelementid'))).value;
        this.showResults(value);
        window.event.returnValue = false;
    },
    
    hideAndFocusEventHandler: function FastSearchBoxComponent_FastSearchBoxComponent$hideAndFocusEventHandler(sender, eventArgs) {
        eventArgs.domElement.style.display = 'none';
        var oUsername = this._environment.getDomElement(eventArgs.parameters.getAsString('domelementid'));
        oUsername.focus();
    },
    
    setHiddenClassEventHandler: function FastSearchBoxComponent_FastSearchBoxComponent$setHiddenClassEventHandler(sender, eventArgs) {
        eventArgs.domElement.className = 'hidden';
    },
    
    hideSearchEventHandler: function FastSearchBoxComponent_FastSearchBoxComponent$hideSearchEventHandler(sender, eventArgs) {
        var oUserLayer = this._environment.getDomElement(eventArgs.parameters.getAsString('domelementid'));
        oUserLayer.style.display = 'none';
    },
    
    showSearchEventHandler: function FastSearchBoxComponent_FastSearchBoxComponent$showSearchEventHandler(sender, eventArgs) {
        if ((eventArgs.domElement).value === '') {
            var oUserLayer = this._environment.getDomElement(eventArgs.parameters.getAsString('domelementid'));
            oUserLayer.style.display = 'block';
        }
    },
    
    _bettingNavigationService$2: null,
    
    setBettingNavigationService: function FastSearchBoxComponent_FastSearchBoxComponent$setBettingNavigationService(bettingNavigationService) {
        this._log.debug('SetBettingNavigationService');
        this._bettingNavigationService$2 = bettingNavigationService;
    },
    
    _navigationService$2: null,
    
    setNavigationService: function FastSearchBoxComponent_FastSearchBoxComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    init: function FastSearchBoxComponent_FastSearchBoxComponent$init(environment, componentInstanceName, domElementId, parameters) {
        if (Object.keyExists(parameters, 'auto-complete')) {
            this._AutoComplete$2 = Boolean.parse(parameters['auto-complete']);
        }
        if (Object.keyExists(parameters, 'kansas-adaptor-url')) {
            this._kansasAdaptorUrl$2 = parameters['kansas-adaptor-url'];
        }
        if (Object.keyExists(parameters, 'minimum-prefix-length')) {
            this._minimumPrefixLength$2 = Number.parse((parameters['minimum-prefix-length']));
        }
        if (Object.keyExists(parameters, 'search-results-page-area')) {
            this._searchResultsPageArea$2 = parameters['search-results-page-area'];
        }
        if (Object.keyExists(parameters, 'search-results-page-action')) {
            this._searchResultsPageAction$2 = parameters['search-results-page-action'];
        }
    },
    
    renderComplete: function FastSearchBoxComponent_FastSearchBoxComponent$renderComplete(eventArgs) {
        if (this._AutoComplete$2) {
            var options = ScriptFX.UI.$create_AutoCompleteOptions(this._kansasAdaptorUrl$2);
            options.minimumPrefixLength = this._minimumPrefixLength$2;
            this._autoCompleteBehavior$2 = new ScriptFX.UI.AutoCompleteBehavior(this.getPrivateDomElement('query'), options);
            this._autoCompleteBehavior$2.add_itemDisplay(Delegate.create(this, this._onAutoCompleteItemDisplay$2));
            this._autoCompleteBehavior$2.add_itemSelected(Delegate.create(this, this._onAutoCompleteItemSelected$2));
        }
    },
    
    get_isComponentVisible: function FastSearchBoxComponent_FastSearchBoxComponent$get_isComponentVisible() {
        return true;
    },
    
    getXsltParameters: function FastSearchBoxComponent_FastSearchBoxComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        return xsltParameters;
    },
    
    showResults: function FastSearchBoxComponent_FastSearchBoxComponent$showResults(query) {
        this._log.debug(String.format('ShowResults query=[{0}]', query));
        this._bettingNavigationService$2.setSearchPhrase(query, this._searchResultsPageArea$2, this._searchResultsPageAction$2);
    },
    
    _autoCompleteBehavior$2: null,
    
    _onAutoCompleteItemDisplay$2: function FastSearchBoxComponent_FastSearchBoxComponent$_onAutoCompleteItemDisplay$2(sender, e) {
        var query = e.get_item();
        e.set_text('<table><tr><td align=\'right\'>' + query + '</td></tr></table>');
    },
    
    _onAutoCompleteItemSelected$2: function FastSearchBoxComponent_FastSearchBoxComponent$_onAutoCompleteItemSelected$2(sender, e) {
        e.set_text(e.get_item());
        (document.getElementById(this._domElementId + '-query')).value = e.get_text();
        this.showResults(e.get_text());
    }
}


FastSearchBoxComponent.FastSearchBoxComponent.createClass('FastSearchBoxComponent.FastSearchBoxComponent', Framework.Component.AbstractXsltBasedComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PCHeadlineComponent');

////////////////////////////////////////////////////////////////////////////////
// PCHeadlineComponent.PCHeadlineComponent

PCHeadlineComponent.PCHeadlineComponent = function PCHeadlineComponent_PCHeadlineComponent() {
    PCHeadlineComponent.PCHeadlineComponent.constructBase(this);
}
PCHeadlineComponent.PCHeadlineComponent.prototype = {
    _headlineImagesBaseUrl$2: null,
    _limit$2: null,
    _category$2: null,
    _numberOfSelections$2: 0,
    _cssclassHeight$2: null,
    _flashPlayerXsltUrl$2: null,
    _marketXsltUrl$2: null,
    _toggleHeadline$2: false,
    
    init: function PCHeadlineComponent_PCHeadlineComponent$init(environment, componentInstanceName, domElementId, parameters) {
        PCHeadlineComponent.PCHeadlineComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._headlineImagesBaseUrl$2 = parameters['headline-images-base-url'];
        this._limit$2 = parameters['limit'];
        this._category$2 = parameters['category'];
        this._numberOfSelections$2 = parameters['number-of-selections'];
        this._cssclassHeight$2 = parameters['cssclass-height'];
        this._flashPlayerXsltUrl$2 = parameters['flash-player-xslt-url'];
        this._marketXsltUrl$2 = parameters['market-xslt-url'];
        this._toggleHeadline$2 = parameters['toggle-headline'];
    },
    
    repaint: function PCHeadlineComponent_PCHeadlineComponent$repaint() {
        this._log.debug('Repaint');
        this._environment.clearPeriodicalTransformAndUpdate(this._domElementId);
        if (this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService.getAction())) {
            this.show();
            var contentUrl = this._parameters.get_contentUrl().replace('${limit}', this._limit$2).replace('${category}', this._category$2).replace('${cssclass-height}', this._cssclassHeight$2);
            var xsltParameters = this.getXsltParameters(false);
            xsltParameters['headline-images-base-url'] = this._headlineImagesBaseUrl$2;
            xsltParameters['category'] = this._category$2;
            xsltParameters['cssclass-height'] = this._cssclassHeight$2;
            this._environment.transformAndUpdate(this._domElementId, contentUrl, this._parameters.get_xsltUrl(), xsltParameters, Delegate.create(this, function() {
                this.bindBehaviors(this._domElementId);
                this.updateCheckboxes();
            }));
        }
        else {
            this.hide();
        }
    },
    
    getXsltParameters: function PCHeadlineComponent_PCHeadlineComponent$getXsltParameters(displayShowAll) {
        var result = PCHeadlineComponent.PCHeadlineComponent.callBase(this, 'getXsltParameters', [ displayShowAll ]);
        result['number-of-selections'] = this._numberOfSelections$2;
        result['toggle-headline'] = this._toggleHeadline$2;
        return result;
    },
    
    repaintMarket: function PCHeadlineComponent_PCHeadlineComponent$repaintMarket(IDFOMarket, displayShowAll) {
        this._log.debug(String.format('RepaintMarket IDFOMarket=[{0}] displayShowAll=[{1}]', IDFOMarket, displayShowAll));
        this.setActiveRacePoolTab(Number.parse(IDFOMarket));
        if (this.getMarketElement(IDFOMarket)) {
            this.getMarketElement(IDFOMarket).style.display = 'block';
            var contentUrl = this._marketContentUrl.replace('${idfomarket}', IDFOMarket);
            var domID = this._domElementId + '-' + IDFOMarket;
            this._environment.periodicalTransformAndUpdate(domID, contentUrl, this._marketXsltUrl$2, this.getXsltParameters(displayShowAll), Delegate.create(this, function() {
                this.transformAndUpdateCallback(domID);
            }), this._domElementId, this._autoRefreshPeriod);
        }
        else {
            this._log.debug(String.format('No element with id {0}-{1}, skipping market repaint', this._domElementId, IDFOMarket));
        }
    },
    
    loadFlashEventHandler: function PCHeadlineComponent_PCHeadlineComponent$loadFlashEventHandler(sender, eventArgs) {
        var fileUrl = eventArgs.parameters.getAsString('fileurl');
        var domElementSuffix = eventArgs.parameters.getAsString('domelementsuffix');
        var temp = fileUrl.split(':');
        if (temp.length === 4) {
            var flashFile = temp[0];
            var flashWidth = temp[1];
            var flashHeight = temp[2];
            var flashVars = temp[3];
            var xsltParameters = {};
            xsltParameters['component-instance-name'] = this._componentInstanceName;
            xsltParameters['component-dom-element-id'] = this._domElementId + '-' + domElementSuffix;
            xsltParameters['xslt-url'] = this._flashPlayerXsltUrl$2;
            xsltParameters['flash-url'] = flashFile;
            xsltParameters['flash-vars'] = flashVars;
            xsltParameters['width'] = flashWidth;
            xsltParameters['height'] = flashHeight;
            var domID = this._domElementId + '-' + domElementSuffix;
            if (flashFile !== '') {
                this._environment.transformAndUpdate(domID, null, this._flashPlayerXsltUrl$2, xsltParameters, Delegate.create(this, function() {
                    this.bindBehaviors(domID);
                }));
            }
        }
    },
    
    toggleNewsEventHandler: function PCHeadlineComponent_PCHeadlineComponent$toggleNewsEventHandler(sender, eventArgs) {
        var newsid = eventArgs.parameters.getAsString('newsid');
        var oDOMElement = document.getElementById(newsid);
        if (!oDOMElement) {
            return;
        }
        var DisplayState = oDOMElement.style.display;
        oDOMElement.style.display = (DisplayState === 'none') ? 'block' : 'none';
        var oThisDOMElement = eventArgs.domElement;
        oThisDOMElement.style.display = 'none';
        var controlID = eventArgs.parameters.getAsString('showcontrol');
        var oControlDOMElement = document.getElementById(controlID);
        oControlDOMElement.style.display = 'block';
    }
}


PCHeadlineComponent.PCHeadlineComponent.createClass('PCHeadlineComponent.PCHeadlineComponent', AbstractWarpComponents.AbstractMarketGroupListComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('QuickNavigationComponent');

////////////////////////////////////////////////////////////////////////////////
// QuickNavigationComponent.QuickNavigation

QuickNavigationComponent.QuickNavigation = function QuickNavigationComponent_QuickNavigation() {
}
QuickNavigationComponent.QuickNavigation.prototype = {
    id: null,
    contentUrl: null,
    
    compareTo: function QuickNavigationComponent_QuickNavigation$compareTo(obj) {
        var quickNavigation = obj;
        var result = this.contentUrl.compareTo(quickNavigation.contentUrl);
        if (result) {
            return result;
        }
        else if (String.isNullOrEmpty(this.id) && String.isNullOrEmpty(quickNavigation.id)) {
            return 0;
        }
        else if (String.isNullOrEmpty(this.id)) {
            return -1;
        }
        else if (String.isNullOrEmpty(quickNavigation.id)) {
            return 1;
        }
        else {
            return this.id.compareTo(quickNavigation.id);
        }
    }
}


////////////////////////////////////////////////////////////////////////////////
// QuickNavigationComponent.QuickNavigationComponent

QuickNavigationComponent.QuickNavigationComponent = function QuickNavigationComponent_QuickNavigationComponent() {
    this._previousLevels$1 = [];
    QuickNavigationComponent.QuickNavigationComponent.constructBase(this);
}
QuickNavigationComponent.QuickNavigationComponent.prototype = {
    _parameters$1: null,
    _repaintLast$1: false,
    _boNavigationContentUrl$1: null,
    _marketGroupContentUrl$1: null,
    _eventContentUrl$1: null,
    _autoRefreshPeriod: 10000,
    _marketGroupType$1: null,
    
    get__showMarketGroupDropdown$1: function QuickNavigationComponent_QuickNavigationComponent$get__showMarketGroupDropdown$1() {
        if (String.isNullOrEmpty(this._marketGroupType$1)) {
            return true;
        }
        return (String.isNullOrEmpty(this._bettingNavigationService$1.getEvent()) || ((this._marketGroupType$1 === 'SIMPLECOUPON') || (this._marketGroupType$1 === 'USCOUPON')));
    },
    
    _bettingNavigationService$1: null,
    
    setBettingNavigationService: function QuickNavigationComponent_QuickNavigationComponent$setBettingNavigationService(bettingNavigationService) {
        this._log.debug('SetBettingNavigationService');
        this._bettingNavigationService$1 = bettingNavigationService;
    },
    
    _navigationService$1: null,
    
    setNavigationService: function QuickNavigationComponent_QuickNavigationComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$1 = navigationService;
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.boNavigation);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.marketGroup);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.marketFromMarketGroup);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.event);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.marketFromEvent);
    },
    
    onPageFilterChanged: function QuickNavigationComponent_QuickNavigationComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.repaint();
    },
    
    init: function QuickNavigationComponent_QuickNavigationComponent$init(environment, componentInstanceName, domElementId, parameters) {
        QuickNavigationComponent.QuickNavigationComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        this._repaintLast$1 = Boolean.parse(parameters['repaint-last']);
        this._boNavigationContentUrl$1 = parameters['bo-navigation-content-url'];
        this._marketGroupContentUrl$1 = parameters['market-group-content-url'];
        this._eventContentUrl$1 = parameters['event-content-url'];
        this._autoRefreshPeriod = Number.parse(parameters['auto-refresh-period']);
    },
    
    start: function QuickNavigationComponent_QuickNavigationComponent$start() {
        this.repaint();
    },
    
    repaint: function QuickNavigationComponent_QuickNavigationComponent$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 levels = this._getLevels$1();
            var differenceLevel = this._findDifferenceLevel$1(this._previousLevels$1, levels);
            if (differenceLevel >= 0) {
                for (var i = differenceLevel; i < levels.length; i++) {
                    var level = levels[i];
                    this._repaintItem$1(level.contentUrl, i + 1, level.id);
                }
                for (var i = levels.length; i < this._previousLevels$1.length; i++) {
                    this._environment.updateDomElementDirect(this._getContainingElement$1(i + 1), String.Empty);
                }
            }
            this._previousLevels$1 = levels;
        }
        else {
            this.hide();
        }
    },
    
    setBONavigationEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setBONavigationEventHandler(sender, eventArgs) {
        this._setBONavigation$1(eventArgs.parameters.getAsNumber('level'), eventArgs.parameters.getAsString('idfwbonavigation'));
    },
    
    setBONavigationOnLoadEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setBONavigationOnLoadEventHandler(sender, eventArgs) {
        this._setBONavigation$1(eventArgs.parameters.getAsNumber('level'), eventArgs.parameters.getAsString('idfwbonavigation'));
    },
    
    setMarketGroupEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setMarketGroupEventHandler(sender, eventArgs) {
        this._setMarketGroup$1(eventArgs.parameters.getAsNumber('level'), eventArgs.parameters.getAsString('idfwmarketgroup'));
    },
    
    setMarketGroupOnLoadEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setMarketGroupOnLoadEventHandler(sender, eventArgs) {
        this._setMarketGroup$1(eventArgs.parameters.getAsNumber('level'), eventArgs.parameters.getAsString('idfwmarketgroup'));
    },
    
    setMarketFromMarketGroupEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setMarketFromMarketGroupEventHandler(sender, eventArgs) {
        this._setMarketFromMarketGroup$1(eventArgs.parameters.getAsNumber('level'), eventArgs.parameters.getAsString('idfomarket'));
    },
    
    setMarketFromMarketGroupOnChangeEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setMarketFromMarketGroupOnChangeEventHandler(sender, eventArgs) {
        this._setMarketFromMarketGroup$1(eventArgs.parameters.getAsNumber('level'), (eventArgs.domElement).value.split('|')[0]);
    },
    
    setMarketGroupTypeOnLoadEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setMarketGroupTypeOnLoadEventHandler(sender, eventArgs) {
        this._marketGroupType$1 = eventArgs.parameters.getAsString('idfwmarketgrouptype');
    },
    
    setFromEventEventHandler: function QuickNavigationComponent_QuickNavigationComponent$setFromEventEventHandler(sender, eventArgs) {
        var attributes = (eventArgs.domElement).value.split('|');
        var level = eventArgs.parameters.getAsNumber('level');
        if (attributes[0] === 'idfomarket') {
            this._log.debug(String.format('SetMarketFromEvent level=[{0}] IDFOMarket=[{1}]', level, attributes[1]));
            this._updatePersistedSelection$1(level, attributes[1]);
            this._bettingNavigationService$1.setMarketFromEvent(attributes[1]);
        }
        else {
            this._log.debug(String.format('SetEventScorecastFromEvent level=[{0}] IDFOEventScorecast=[{1}]', level, attributes[1]));
            this._updatePersistedSelection$1(level, attributes[1]);
            this._bettingNavigationService$1.setEventScorecastFromEvent(attributes[1]);
        }
    },
    
    changeDropdownEventHandler: function QuickNavigationComponent_QuickNavigationComponent$changeDropdownEventHandler(sender, eventArgs) {
        this._changeDropdown$1(eventArgs.domElement, eventArgs.parameters.getAsNumber('level'));
    },
    
    _setBONavigation$1: function QuickNavigationComponent_QuickNavigationComponent$_setBONavigation$1(level, IDFWBONavigation) {
        this._log.debug(String.format('SetBONavigation level=[{0}] IDFWBONavigation=[{1}]', level, IDFWBONavigation));
        this._updatePersistedSelection$1(level, IDFWBONavigation);
        this._bettingNavigationService$1.setBONavigation(level, IDFWBONavigation);
    },
    
    _setMarketGroup$1: function QuickNavigationComponent_QuickNavigationComponent$_setMarketGroup$1(level, IDFWMarketGroup) {
        this._log.debug(String.format('SetMarketGroup level=[{0}] IDFWMarketGroup=[{1}]', level, IDFWMarketGroup));
        this._updatePersistedSelection$1(level, IDFWMarketGroup);
        this._bettingNavigationService$1.setMarketGroup(level, IDFWMarketGroup);
    },
    
    _setMarketFromMarketGroup$1: function QuickNavigationComponent_QuickNavigationComponent$_setMarketFromMarketGroup$1(level, IDFOMarket) {
        this._log.debug(String.format('SetMarketFromMarketGroup level=[{0}] IDFOMarket=[{1}]', level, IDFOMarket));
        this._updatePersistedSelection$1(level, IDFOMarket);
        this._bettingNavigationService$1.setMarketFromMarketGroup(IDFOMarket);
    },
    
    _changeDropdown$1: function QuickNavigationComponent_QuickNavigationComponent$_changeDropdown$1(sele, level) {
        var type = sele.value.split('|')[0];
        var id = sele.value.split('|')[1];
        if (type === 'idfwbonavigation') {
            this._setBONavigation$1(level, id);
        }
        else {
            this._setMarketGroup$1(level, id);
        }
    },
    
    _updatePersistedSelection$1: function QuickNavigationComponent_QuickNavigationComponent$_updatePersistedSelection$1(level, id) {
        (this._previousLevels$1[level - 1]).id = id;
    },
    
    _getContainingElement$1: function QuickNavigationComponent_QuickNavigationComponent$_getContainingElement$1(level) {
        return this._environment.getDomElement(this._getContainingElementId$1(level));
    },
    
    _getContainingElementId$1: function QuickNavigationComponent_QuickNavigationComponent$_getContainingElementId$1(level) {
        return this._domElementId + '-' + level;
    },
    
    _createContainingElement$1: function QuickNavigationComponent_QuickNavigationComponent$_createContainingElement$1(level) {
        var result = document.createElement('SPAN');
        result.id = this._getContainingElementId$1(level);
        this._environment.getDomElement(this._domElementId).appendChild(result);
        return result;
    },
    
    _getSelect$1: function QuickNavigationComponent_QuickNavigationComponent$_getSelect$1(level) {
        var containingElement = this._getContainingElement$1(level);
        if (containingElement && containingElement.children.length > 0 && !String.compare(containingElement.children[0].tagName, 'SELECT', true)) {
            return containingElement.children[0];
        }
        return null;
    },
    
    _findDifferenceLevel$1: function QuickNavigationComponent_QuickNavigationComponent$_findDifferenceLevel$1(oldLevels, newLevels) {
        for (var i = 0; i < newLevels.length; i++) {
            if (oldLevels.length - 1 < i || (newLevels[i]).compareTo(oldLevels[i])) {
                return i - ((this._repaintLast$1 && i > 0) ? 1 : 0);
            }
        }
        if (oldLevels.length > newLevels.length) {
            return newLevels.length;
        }
        return -1;
    },
    
    _getLevels$1: function QuickNavigationComponent_QuickNavigationComponent$_getLevels$1() {
        var result = [];
        var boNavigation = this._bettingNavigationService$1.getBONavigation();
        for (var i = 0; i < boNavigation.length; i++) {
            var level = new QuickNavigationComponent.QuickNavigation();
            level.id = (i === boNavigation.length - 1) ? this._bettingNavigationService$1.getMarketGroup() : boNavigation[i + 1];
            level.contentUrl = this._boNavigationContentUrl$1.replace('${idfwbonavigation}', boNavigation[i]);
            result.add(level);
        }
        if (this.get__showMarketGroupDropdown$1()) {
            var IDFOMarketGroup = this._bettingNavigationService$1.getMarketGroup();
            if (!String.isNullOrEmpty(IDFOMarketGroup)) {
                var level = new QuickNavigationComponent.QuickNavigation();
                level.contentUrl = this._marketGroupContentUrl$1.replace('${idfwmarketgroup}', IDFOMarketGroup);
                level.id = this._bettingNavigationService$1.getMarketFromMarketGroup();
                result.add(level);
            }
        }
        var IDFOEvent = this._bettingNavigationService$1.getEvent();
        if (!String.isNullOrEmpty(IDFOEvent)) {
            var level = new QuickNavigationComponent.QuickNavigation();
            level.contentUrl = this._eventContentUrl$1.replace('${idfoevent}', IDFOEvent);
            level.id = this._bettingNavigationService$1.getMarketFromEvent() || this._bettingNavigationService$1.getEventScorecastFromEvent();
            result.add(level);
        }
        return result;
    },
    
    _repaintItem$1: function QuickNavigationComponent_QuickNavigationComponent$_repaintItem$1(contentUrl, level, selectedId) {
        this._log.debug(String.format('RepaintItem ContentUrl=[{0}] level=[{1}] selectedId=[{2}]', contentUrl, level, selectedId));
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['level'] = level;
        xsltParameters['currently-selected-identifier-value'] = selectedId;
        xsltParameters['current-day'] = Date.get_today().format('yyyy-MM-dd');
        var containingElement = this._getContainingElement$1(level);
        if (!containingElement) {
            containingElement = this._createContainingElement$1(level);
        }
        else {
            this._environment.updateDomElementDirect(containingElement, String.Empty);
        }
        if (!this._autoRefreshPeriod) {
            this._environment.transformAndUpdate(containingElement.id, contentUrl, this._parameters$1.get_xsltUrl(), xsltParameters, Delegate.create(this, function() {
                this._bindBehaviors$1(containingElement.id);
            }));
        }
        else {
            this._environment.clearPeriodicalTransformAndUpdate(containingElement.id);
            this._environment.periodicalTransformAndUpdate(containingElement.id, contentUrl, this._parameters$1.get_xsltUrl(), xsltParameters, Delegate.create(this, function() {
                this._bindBehaviors$1(containingElement.id);
                var element = this._environment.getDomElement(containingElement.id);
                if (element && element.childNodes.length > 0) {
                    var sele = element.childNodes[0];
                    if (sele) {
                        var type = sele.value.split('|')[0];
                        var marketGroup = this._bettingNavigationService$1.getMarketGroup();
                        var id;
                        if (type === 'idfwbonavigation') {
                            id = this._bettingNavigationService$1.getBONavigation()[level];
                        }
                        else {
                            id = this._bettingNavigationService$1.getMarketGroup();
                        }
                        var seleValue = String.format('{0}|{1}', type, id);
                        if (sele.value !== seleValue) {
                            sele.value = String.format('{0}|{1}', type, id);
                        }
                        if (sele.value !== seleValue) {
                            this._changeDropdown$1(sele, level);
                        }
                    }
                }
            }), containingElement.id, this._autoRefreshPeriod);
        }
    },
    
    _bindBehaviors$1: function QuickNavigationComponent_QuickNavigationComponent$_bindBehaviors$1(domID) {
        Framework.Behavior.Binding.BehaviorBinder.autoBind(this._environment.getDomElement(domID), (this));
    }
}


QuickNavigationComponent.QuickNavigation.createClass('QuickNavigationComponent.QuickNavigation');
QuickNavigationComponent.QuickNavigationComponent.createClass('QuickNavigationComponent.QuickNavigationComponent', Framework.Component.AbstractComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('MarketGroupListComponent');

////////////////////////////////////////////////////////////////////////////////
// MarketGroupListComponent.MarketGroupListComponent

MarketGroupListComponent.MarketGroupListComponent = function MarketGroupListComponent_MarketGroupListComponent() {
    MarketGroupListComponent.MarketGroupListComponent.constructBase(this);
}
MarketGroupListComponent.MarketGroupListComponent.prototype = {
    
    start: function MarketGroupListComponent_MarketGroupListComponent$start() {
        MarketGroupListComponent.MarketGroupListComponent.callBase(this, 'start');
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.boNavigation);
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.marketGroup);
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.marketFromMarketGroup);
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.event);
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.marketFromEvent);
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.eventScorecastFromEvent);
    },
    
    repaint: function MarketGroupListComponent_MarketGroupListComponent$repaint() {
        this._log.debug('Repaint');
        this.clearPeriodicalTransformAndUpdateTasks();
        if (this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService.getAction())) {
            this.show();
            var xsltUrl = this._marketGroupXsltUrl;
            var contentUrl = null;
            var displayShowAll = true;
            var autoRefresh = true;
            var IDFOMarketFromEvent = this._bettingNavigationService.getMarketFromEvent();
            if (!String.isNullOrEmpty(IDFOMarketFromEvent)) {
                contentUrl = this._marketContentUrl.replace('${idfomarket}', IDFOMarketFromEvent);
            }
            else {
                var IDFOEventScorecast = this._bettingNavigationService.getEventScorecastFromEvent();
                if (!String.isNullOrEmpty(IDFOEventScorecast)) {
                    contentUrl = this._eventScorecastContentUrl.replace('${idfoeventscorecast}', IDFOEventScorecast).replace('${idfoselectedgoalscorer}', '0');
                }
                else {
                    var IDFOEvent = this._bettingNavigationService.getEvent();
                    if (!String.isNullOrEmpty(IDFOEvent)) {
                        displayShowAll = false;
                        autoRefresh = false;
                        contentUrl = this._eventContentUrl.replace('${idfoevent}', IDFOEvent);
                    }
                    else {
                        var IDFOMarketFromMarketGroup = this._bettingNavigationService.getMarketFromMarketGroup();
                        if (!String.isNullOrEmpty(IDFOMarketFromMarketGroup)) {
                            contentUrl = this._marketContentUrl.replace('${idfomarket}', IDFOMarketFromMarketGroup);
                        }
                        else {
                            var IDFWMarketGroup = this._bettingNavigationService.getMarketGroup();
                            if (!String.isNullOrEmpty(IDFWMarketGroup)) {
                                contentUrl = this._marketGroupContentUrl.replace('${idfwmarketgroup}', IDFWMarketGroup);
                            }
                            else {
                                var IDFWBONavigation = this._bettingNavigationService.getBONavigation();
                                if (IDFWBONavigation && IDFWBONavigation.length > 0) {
                                    xsltUrl = this._parameters.get_xsltUrl();
                                    autoRefresh = false;
                                    contentUrl = this._parameters.get_contentUrl().replace('${idfwbonavigation}', IDFWBONavigation[IDFWBONavigation.length - 1]);
                                }
                            }
                        }
                    }
                }
            }
            if (!String.isNullOrEmpty(contentUrl)) {
                if (autoRefresh) {
                    this._environment.periodicalTransformAndUpdate(this._domElementId, contentUrl, xsltUrl, this.getXsltParameters(displayShowAll), Delegate.create(this, function() {
                        this.transformAndUpdateCallback(this._domElementId);
                    }), this._domElementId, this._autoRefreshPeriod);
                }
                else {
                    this._environment.transformAndUpdate(this._domElementId, contentUrl, xsltUrl, this.getXsltParameters(displayShowAll), Delegate.create(this, function() {
                        this.transformAndUpdateCallback(this._domElementId);
                    }));
                }
            }
            else {
                this._environment.updateDomElement(this._domElementId, '');
            }
        }
        else {
            this.hide();
        }
    },
    
    hideRightSide: function MarketGroupListComponent_MarketGroupListComponent$hideRightSide() {
        var right = document.getElementById('right');
        if (right) {
            right.style.display = 'none';
        }
    }
}


MarketGroupListComponent.MarketGroupListComponent.createClass('MarketGroupListComponent.MarketGroupListComponent', AbstractWarpComponents.AbstractMarketGroupListComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PCBetPlacementComponent');

////////////////////////////////////////////////////////////////////////////////
// PCBetPlacementComponent.PCBetPlacementComponent

PCBetPlacementComponent.PCBetPlacementComponent = function PCBetPlacementComponent_PCBetPlacementComponent() {
    PCBetPlacementComponent.PCBetPlacementComponent.constructBase(this);
}
PCBetPlacementComponent.PCBetPlacementComponent.prototype = {
    
    tableDataFront: function PCBetPlacementComponent_PCBetPlacementComponent$tableDataFront() {
        return '\r\n\t\t\t<div class=\'betholder\'>\r\n\t\t\t\t<h4>{3}{4} {0}{1} {2}</h4>\r\n\t\t\t\t<table class=\'betinfo\'>\r\n\t\t\t\t\t<col class=\'colbpmk\' />\r\n\t\t\t\t\t<col class=\'colbpsel\' />\r\n\t\t\t\t\t<col class=\'colbpprc\' />\r\n\t\t\t\t\t<col class=\'colbphcp\' />\r\n\t\t\t\t\t\t<thead>\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<th>Mercado</th>\r\n\t\t\t\t\t\t\t<th>Seleccion</th>\r\n\t\t\t\t\t\t\t<th>Precio</th>\r\n\t\t\t\t\t\t\t<th>Hcp</th>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</thead>';
    },
    
    tableDataBottom: function PCBetPlacementComponent_PCBetPlacementComponent$tableDataBottom() {
        return '\r\n\t\t\t\t</table>\r\n\t\t\t\t<table class=\'money\'>\r\n\t\t\t\t\t<col class=\'coltotal\'/>\r\n\t\t\t\t\t<col class=\'coltotalnum\'/>\r\n\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th>Monto Total</th>\r\n\t\t\t\t\t\t\t\t<td>{2} {0}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th>Retorno estimado</th>\r\n\t\t\t\t\t\t\t\t<td>{2} {1}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</tbody>\r\n\t\t\t\t</table>\r\n\t\t\t</div>';
    },
    
    tableDataFinal: function PCBetPlacementComponent_PCBetPlacementComponent$tableDataFinal() {
        return '\r\n\t\t\t\t<table class=\'money fullmoney\'>\r\n\t\t\t\t\t<col class=\'coltotal\'/>\r\n\t\t\t\t\t<col class=\'coltotalnum\'/>\r\n\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th>Monto Total</th>\r\n\t\t\t\t\t\t\t\t<td>{2} {0}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th>Retorno estimado total</th>\r\n\t\t\t\t\t\t\t\t<td>{2} {1}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</tbody>\r\n\t\t\t\t</table>\r\n\t\t\t</div>';
    },
    
    createSpanBetRef: function PCBetPlacementComponent_PCBetPlacementComponent$createSpanBetRef(placementState, outboundExternalRef, outboundIndividualBetExternalRef) {
        return (placementState === FixedOddsBettingService.BetPlacementState.placed) ? String.format('<span class=\'bpbetref\'>Numero de referencia: {0}/{1}</span>', outboundExternalRef, outboundIndividualBetExternalRef) : '';
    },
    
    createFreeSpanBetRef: function PCBetPlacementComponent_PCBetPlacementComponent$createFreeSpanBetRef(isInboundSlipFree) {
        return (isInboundSlipFree) ? '<span class=\'bpfreebet\'>LIBRE! </span>' : '';
    },
    
    formatChanged: function PCBetPlacementComponent_PCBetPlacementComponent$formatChanged(newValue, oldValue) {
        return String.format('<span style=\'color: black\'>{0}</span> (<del>{1}</del>)', newValue, oldValue);
    },
    
    resetActionEventHandler: function PCBetPlacementComponent_PCBetPlacementComponent$resetActionEventHandler(sender, eventArgs) {
        this._navigationService.setAction('Xperto');
    }
}


PCBetPlacementComponent.PCBetPlacementComponent.createClass('PCBetPlacementComponent.PCBetPlacementComponent', AbstractMMCoreComponents.AbstractBetPlacementComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('FastSearchResultsComponent');

////////////////////////////////////////////////////////////////////////////////
// FastSearchResultsComponent.FastSearchResultsComponent

FastSearchResultsComponent.FastSearchResultsComponent = function FastSearchResultsComponent_FastSearchResultsComponent() {
    FastSearchResultsComponent.FastSearchResultsComponent.constructBase(this);
}
FastSearchResultsComponent.FastSearchResultsComponent.prototype = {
    _fastSearchUrl$2: null,
    
    init: function FastSearchResultsComponent_FastSearchResultsComponent$init(environment, componentInstanceName, domElementId, parameters) {
        FastSearchResultsComponent.FastSearchResultsComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._fastSearchUrl$2 = parameters['fast-search-content-url'];
    },
    
    start: function FastSearchResultsComponent_FastSearchResultsComponent$start() {
        FastSearchResultsComponent.FastSearchResultsComponent.callBase(this, 'start');
        this._navigationService.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.phrase);
    },
    
    repaint: function FastSearchResultsComponent_FastSearchResultsComponent$repaint() {
        this._log.debug('Repaint');
        if (this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService.getAction())) {
            this.show();
            var xsltParameters = {};
            xsltParameters['component-instance-name'] = this._componentInstanceName;
            xsltParameters['component-dom-element-id'] = this._domElementId;
            var phrase = this._bettingNavigationService.getSearchPhrase();
            var contentUrl = this._fastSearchUrl$2.replace('${phrase}', eval('escape(escape(\'' + phrase + '\'))').toString());
            this._environment.transformAndUpdate(this._domElementId, contentUrl, this._parameters.get_xsltUrl(), xsltParameters, Delegate.create(this, function() {
                this.bindBehaviors(this._domElementId);
            }));
        }
        else {
            this.hide();
        }
    }
}


FastSearchResultsComponent.FastSearchResultsComponent.createClass('FastSearchResultsComponent.FastSearchResultsComponent', AbstractWarpComponents.AbstractMarketGroupListComponent);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PCResultsForSettledEventsComponent');

////////////////////////////////////////////////////////////////////////////////
// PCResultsForSettledEventsComponent.PCResultsForSettledEventsComponent

PCResultsForSettledEventsComponent.PCResultsForSettledEventsComponent = function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent() {
    this.milliSecondsInADay = 24 * 60 * 60 * 1000;
    this._oExternalXsltParameters$2 = {};
    PCResultsForSettledEventsComponent.PCResultsForSettledEventsComponent.constructBase(this);
}
PCResultsForSettledEventsComponent.PCResultsForSettledEventsComponent.prototype = {
    _navigationService$2: null,
    
    setNavigationService: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
    },
    
    onPageFilterChanged: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
    },
    
    init: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$init(environment, componentInstanceName, domElementId, parameters) {
        PCResultsForSettledEventsComponent.PCResultsForSettledEventsComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters = new Framework.CommonComponentParameters(parameters);
    },
    
    renderComplete: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$renderComplete(eventArgs) {
        if (!String.isNullOrEmpty(this._oExternalXsltParameters$2['event-name'])) {
            var oNameRadio = document.getElementById(this._domElementId + '-name');
            oNameRadio.checked = true;
            this._showFilterForm$2();
        }
        if (!String.isNullOrEmpty(this._oExternalXsltParameters$2['event-date'])) {
            var oDateRadio = document.getElementById(this._domElementId + '-date');
            oDateRadio.checked = true;
            this._showFilterForm$2();
        }
        if (!String.isNullOrEmpty(this._oExternalXsltParameters$2['event-period'])) {
            var oPeriodRadio = document.getElementById(this._domElementId + '-period');
            oPeriodRadio.checked = true;
            this._showFilterForm$2();
        }
        this._attachDatePickers$2(this._domElementId + '-dateinput');
        this._attachDatePickers$2(this._domElementId + '-daterange1');
        this._attachDatePickers$2(this._domElementId + '-daterange2');
    },
    
    getXsltParameters: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$getXsltParameters(contextObject) {
        var xsltParameters = {};
        xsltParameters['component-instance-name'] = this._componentInstanceName;
        xsltParameters['component-dom-element-id'] = this._domElementId;
        this._oExternalXsltParameters$2 = xsltParameters;
        return xsltParameters;
    },
    
    get_isComponentVisible: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    showFilterFormEventHandler: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$showFilterFormEventHandler(sender, eventArgs) {
        this._showFilterForm$2();
    },
    
    showEventsByNameEventHandler: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$showEventsByNameEventHandler(sender, eventArgs) {
        var oElement = document.getElementById(this._domElementId);
        var oInputElement = document.getElementById(this._domElementId + '-nameinput');
        var oName = oInputElement.value.trim();
        if (String.isNullOrEmpty(oName)) {
            return;
        }
        var contentURL = String.format('/cache/settledeventsresults/{0}/{1}--.xml', this._environment.getLanguage(), oName);
        this._oExternalXsltParameters$2['event-name'] = oName;
        this._oExternalXsltParameters$2['event-date'] = '';
        this._oExternalXsltParameters$2['event-period'] = '';
        this.update(oElement, contentURL, this._parameters.get_xsltUrl(), this._oExternalXsltParameters$2);
    },
    
    showEventsByDateEventHandler: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$showEventsByDateEventHandler(sender, eventArgs) {
        var oInputElement = document.getElementById(this._domElementId + '-dateinput');
        var SelectedDate = oInputElement.value.trim();
        if (!SelectedDate.length) {
            return;
        }
        var selectedDate = this._getDateTimeAsObject$2(SelectedDate);
        var date1 = selectedDate.toDateString();
        var generatedDate = new Date(selectedDate.getTime() + this.milliSecondsInADay);
        var date2 = generatedDate.toDateString();
        var oElement = document.getElementById(this._domElementId);
        var contentURL = String.format('/cache/settledeventsresults/{0}/-{1}-{2}.xml', this._environment.getLanguage(), date1, date2);
        this._oExternalXsltParameters$2['event-name'] = '';
        this._oExternalXsltParameters$2['event-date'] = SelectedDate;
        this._oExternalXsltParameters$2['event-period'] = '';
        this.update(oElement, contentURL, this._parameters.get_xsltUrl(), this._oExternalXsltParameters$2);
    },
    
    showEventsByPeriodEventHandler: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$showEventsByPeriodEventHandler(sender, eventArgs) {
        var oInputElement1 = document.getElementById(this._domElementId + '-daterange1');
        var oInputElement2 = document.getElementById(this._domElementId + '-daterange2');
        var daterange1 = oInputElement1.value.trim();
        var daterange2 = oInputElement2.value.trim();
        if (!daterange1.length || !daterange2.length) {
            return;
        }
        var oDateTime1 = this._getDateTimeAsObject$2(daterange1);
        var oDateTime2 = this._getDateTimeAsObject$2(daterange2);
        var oElement = document.getElementById(this._domElementId);
        var contentURL = String.format('/cache/settledeventsresults/{0}/-{1}-{2}.xml', this._environment.getLanguage(), oDateTime1.toDateString(), oDateTime2.toDateString());
        this._oExternalXsltParameters$2['event-name'] = '';
        this._oExternalXsltParameters$2['event-date'] = '';
        this._oExternalXsltParameters$2['event-period'] = daterange1 + ' - ' + daterange2;
        this.update(oElement, contentURL, this._parameters.get_xsltUrl(), this._oExternalXsltParameters$2);
    },
    
    _attachDatePickers$2: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$_attachDatePickers$2(InputElementID) {
        var scriptToRun = new StringBuilder('window.jQuery(function(){window.jQuery(\'#');
        scriptToRun.append(InputElementID);
        scriptToRun.append('\').datepicker(window.jQuery.extend({ changeYear: true, changeMonth: true }, window.jQuery.datepicker.regional[\'es\']));});');
        eval(scriptToRun.toString());
    },
    
    _getDateTimeAsObject$2: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$_getDateTimeAsObject$2(DateTimeIn) {
        var DateTimeParts = DateTimeIn.split('/');
        if (!DateTimeParts[0].indexOf('0')) {
            DateTimeParts[0] = DateTimeParts[0].replace('0', '');
        }
        if (!DateTimeParts[1].indexOf('0')) {
            DateTimeParts[1] = DateTimeParts[1].replace('0', '');
        }
        var oDateTime = new Date(Number.parse(DateTimeParts[2]), Number.parse(DateTimeParts[1]) - 1, Number.parse(DateTimeParts[0]));
        return oDateTime;
    },
    
    _showFilterForm$2: function PCResultsForSettledEventsComponent_PCResultsForSettledEventsComponent$_showFilterForm$2() {
        var oNameRadio = document.getElementById(this._domElementId + '-name');
        var oDateRadio = document.getElementById(this._domElementId + '-date');
        var oRangeRadio = document.getElementById(this._domElementId + '-period');
        var oFormName = document.getElementById(this._domElementId + '-nameform');
        var oFormDate = document.getElementById(this._domElementId + '-dateform');
        var oFormRange = document.getElementById(this._domElementId + '-periodform');
        oFormName.style.display = 'none';
        oFormDate.style.display = 'none';
        oFormRange.style.display = 'none';
        if (oNameRadio.checked) {
            oFormName.style.display = 'block';
        }
        if (oDateRadio.checked) {
            oFormDate.style.display = 'block';
        }
        if (oRangeRadio.checked) {
            oFormRange.style.display = 'block';
        }
    }
}


PCResultsForSettledEventsComponent.PCResultsForSettledEventsComponent.createClass('PCResultsForSettledEventsComponent.PCResultsForSettledEventsComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PCBetSlipComponent');

////////////////////////////////////////////////////////////////////////////////
// PCBetSlipComponent.PCBetSlipComponent

PCBetSlipComponent.PCBetSlipComponent = function PCBetSlipComponent_PCBetSlipComponent() {
    PCBetSlipComponent.PCBetSlipComponent.constructBase(this);
}
PCBetSlipComponent.PCBetSlipComponent.prototype = {
    _minimumAllowedStake$3: 0,
    _maximumAllowedStake$3: 1000000,
    
    onSelectionsAdded: function PCBetSlipComponent_PCBetSlipComponent$onSelectionsAdded(eventSource, selection) {
        this._log.debug('OnSelectionsAdded');
        if (this.get_isComponentVisible()) {
            this.update();
        }
        if (this._expandWhenFirstSelectionAdded && this._betSlipService.getSelectionsCount() === 1) {
            this.expand();
        }
        if (this._isBetSlipOpened$3()) {
            this.adjustHeight();
        }
    },
    
    onSelectionsRemoved: function PCBetSlipComponent_PCBetSlipComponent$onSelectionsRemoved(eventSource, selection) {
        this._log.debug('OnSelectionsRemoved');
        if (this.get_isComponentVisible()) {
            this.update();
        }
        if (this._expandWhenFirstSelectionAdded && !this._betSlipService.getSelectionsCount()) {
            this.collapse();
        }
        if (this._isBetSlipOpened$3()) {
            this.adjustHeight();
        }
    },
    
    onAllowedBetTypesChanged: function PCBetSlipComponent_PCBetSlipComponent$onAllowedBetTypesChanged(eventSource) {
        this._log.debug('OnAllowedBetTypesChanged');
        if (this.get_isComponentVisible()) {
            this.update();
        }
        if (this._isBetSlipOpened$3()) {
            this.adjustHeight();
        }
    },
    
    onPageFilterChanged: function PCBetSlipComponent_PCBetSlipComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        this.update();
        if (this._isBetSlipOpened$3()) {
            this.adjustHeight();
        }
    },
    
    onUserChanged: function PCBetSlipComponent_PCBetSlipComponent$onUserChanged(eventSource) {
        this._log.debug('OnUserChanged');
        this._setBetSlipPosition$3();
    },
    
    init: function PCBetSlipComponent_PCBetSlipComponent$init(environment, componentInstanceName, domElementId, parameters) {
        this._showCheckBetslip = Boolean.parse(parameters['show-check-betslip']);
        this._enableSlipToggling = Boolean.parse(parameters['enable-slip-toggling']);
        this._heightThreshold = parameters['height-threshold'];
        this._expandWhenFirstSelectionAdded = Boolean.parse(parameters['expand-when-first-selection-added']);
        this._autoAdjustHeight = Boolean.parse(parameters['auto-adjust-height']);
        if (!String.isNullOrEmpty(parameters['update-stake-textbox-on-state-change'])) {
            this._updateStakeTextboxOnStateChange = Boolean.parse(parameters['update-stake-textbox-on-state-change']);
        }
        if (!String.isNullOrEmpty(parameters['do-validation'])) {
            this._doValidation = Boolean.parse(parameters['do-validation']);
        }
        this._minimumAllowedStake$3 = Number.parse(parameters['min-total-stake']);
        this._maximumAllowedStake$3 = Number.parse(parameters['max-total-stake']);
        this._validationManager = new Framework.Validation.ValidationManager(this._environment);
        window.attachEvent('onscroll', Delegate.create(this, this._setBetSlipPosition$3));
    },
    
    getXsltParameters: function PCBetSlipComponent_PCBetSlipComponent$getXsltParameters(contextObject) {
        var xsltParameters = PCBetSlipComponent.PCBetSlipComponent.callBase(this, 'getXsltParameters', [ contextObject ]);
        if (this._showCheckBetslip) {
            xsltParameters['show-check-betslip'] = true;
        }
        if (this._enableSlipToggling) {
            xsltParameters['enable-slip-toggling'] = true;
        }
        xsltParameters['height-threshold'] = this._heightThreshold;
        xsltParameters['retain-after-placement'] = this._betSlipService.getRetainSelectionsAfterPlacement();
        xsltParameters['is-free-bet'] = this._betSlipService.getIsFree();
        xsltParameters['currency-symbol'] = this._accountService.getCurrencySimbol();
        xsltParameters['min-total-stake'] = this._minimumAllowedStake$3;
        xsltParameters['max-total-stake'] = this._maximumAllowedStake$3;
        var freeAccount = this._accountService.get_freeAccountDetails();
        xsltParameters['show-free-bet'] = (freeAccount && freeAccount.TradingBalance > 0) ? true : false;
        if (this._betSlipService.getIsFree() && (!freeAccount || freeAccount.TradingBalance <= 0)) {
            this._betSlipService.setIsFree(false);
        }
        return xsltParameters;
    },
    
    startPlaceBetInnerEventHandler: function PCBetSlipComponent_PCBetSlipComponent$startPlaceBetInnerEventHandler(sender, eventArgs) {
        this.startPlaceBetInner();
    },
    
    startPlaceBetInner: function PCBetSlipComponent_PCBetSlipComponent$startPlaceBetInner() {
        if (this._userService.isLoggedIn()) {
            var betSlipCalculation = this._betSlipService.getBetSlipCalculation();
            var oGetStakePerBetType = this._betSlipService.getStakePerBetType();
            var StakeMinIssue = false;
            var StakeMaxIssue = false;
            var oTotal = 0;
            var $dict1 = oGetStakePerBetType;
            for (var $key2 in $dict1) {
                var oBetType = { key: $key2, value: $dict1[$key2] };
                var betTypeCalculation = (Object.keyExists(betSlipCalculation.PerBetType, oBetType.key)) ? betSlipCalculation.PerBetType[oBetType.key] : null;
                if (!StakeMinIssue) {
                    if (this._minimumAllowedStake$3 > betTypeCalculation.TotalStake) {
                        StakeMinIssue = true;
                    }
                }
                if (!StakeMaxIssue) {
                    if (this._maximumAllowedStake$3 < betTypeCalculation.TotalStake) {
                        StakeMaxIssue = true;
                    }
                }
                oTotal = oTotal + betTypeCalculation.TotalStake;
            }
            if (!this._betSlipService.getIsFree()) {
                var oCreditAccountDetails = this._accountService.get_creditAccountDetails();
                if (oCreditAccountDetails.CurrentBalance <= 0) {
                    alert(this._getMoneyIssueMessage$3(0));
                    this._navigationService.goTo('accounting', { action: 'deposit' });
                    return;
                }
                if (oCreditAccountDetails.CurrentBalance < oTotal) {
                    alert(this._getMoneyIssueMessage$3(1));
                    return;
                }
            }
            if (StakeMinIssue) {
                alert(this._getMoneyIssueMessage$3(2));
                return;
            }
            if (StakeMaxIssue) {
                alert(this._getMoneyIssueMessage$3(3));
                return;
            }
        }
        this.placeBet();
    },
    
    _getMoneyIssueMessage$3: function PCBetSlipComponent_PCBetSlipComponent$_getMoneyIssueMessage$3(typeOfIssue) {
        var messageOut = '';
        if (!typeOfIssue) {
            var oElement0 = document.getElementById(this._domElementId + '-nomoneyissue');
            messageOut = oElement0.innerText;
        }
        if (typeOfIssue === 1) {
            var oElement1 = document.getElementById(this._domElementId + '-moneyissue');
            messageOut = oElement1.innerText;
        }
        if (typeOfIssue === 2) {
            var oElement1 = document.getElementById(this._domElementId + '-minimum-stake');
            messageOut = oElement1.innerText;
        }
        if (typeOfIssue === 3) {
            var oElement1 = document.getElementById(this._domElementId + '-maximum-stake');
            messageOut = oElement1.innerText;
        }
        return messageOut;
    },
    
    _isBetSlipOpened$3: function PCBetSlipComponent_PCBetSlipComponent$_isBetSlipOpened$3() {
        var betslip = this._environment.getDomElement(this._domElementId);
        if (betslip.className.indexOf('bson') > -1) {
            return true;
        }
        return false;
    },
    
    _setBetSlipPosition$3: function PCBetSlipComponent_PCBetSlipComponent$_setBetSlipPosition$3() {
        var oElement = document.getElementById(this._domElementId);
        var userMenu = 0;
        if (this._userService.isLoggedIn()) {
            userMenu = 25;
        }
        if (oElement) {
            var scrollTop = document.documentElement.scrollTop;
            if ((159 - scrollTop) >= 0) {
                if (ScriptFX.Application.current.get_host().get_name() === ScriptFX.HostName.IE && ScriptFX.Application.current.get_host().get_majorVersion() < 7) {
                    oElement.style.top = String.format('{0}px', 0);
                }
                else {
                    oElement.style.top = String.format('{0}px', 159 + userMenu - scrollTop);
                }
            }
            else {
                if (ScriptFX.Application.current.get_host().get_name() === ScriptFX.HostName.IE && ScriptFX.Application.current.get_host().get_majorVersion() < 7) {
                    oElement.style.top = String.format('{0}px', scrollTop - 169 + userMenu);
                }
                else {
                    oElement.style.top = '0px';
                }
            }
        }
        this.adjustHeight();
    }
}


PCBetSlipComponent.PCBetSlipComponent.createClass('PCBetSlipComponent.PCBetSlipComponent', AbstractMMCoreComponents.AbstractBetSlipComponent, UserService.IUserChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('PlainMarketGroupListComponent');

////////////////////////////////////////////////////////////////////////////////
// PlainMarketGroupListComponent.PlainMarketGroupListComponent

PlainMarketGroupListComponent.PlainMarketGroupListComponent = function PlainMarketGroupListComponent_PlainMarketGroupListComponent() {
    PlainMarketGroupListComponent.PlainMarketGroupListComponent.constructBase(this);
}
PlainMarketGroupListComponent.PlainMarketGroupListComponent.prototype = {
    _boNavigationContentUrl$2: null,
    _plainMarketGroupContentUrl$2: null,
    _marketGroupType$2: null,
    _forceTopBONavigation$2: null,
    _autoRefreshAreas$2: null,
    
    get_isComponentVisible: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$get_isComponentVisible() {
        return this.isVisible(this._parameters.get_visibleOn(), this._parameters.get_notVisibleOn(), this._navigationService$2.getAction());
    },
    
    continueLoadingEventHandler: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$continueLoadingEventHandler(sender, eventArgs) {
        this.continueLoading(eventArgs.parameters.getAsString('idfwbonavigation'), eventArgs.domElement);
    },
    
    completeLoadingEventHandler: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$completeLoadingEventHandler(sender, eventArgs) {
        this.completeLoading(eventArgs.parameters.getAsString('idfwmarketgroup'), eventArgs.domElement);
    },
    
    onShowEventEventHandler: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$onShowEventEventHandler(sender, eventArgs) {
        this.showEvent(eventArgs.parameters.getAsString('idfoevent'));
    },
    
    _bettingNavigationService$2: null,
    
    setBettingNavigationService: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$setBettingNavigationService(bettingNavigationService) {
        this._log.debug('SetBettingNavigationService');
        this._bettingNavigationService$2 = bettingNavigationService;
    },
    
    _navigationService$2: null,
    
    setNavigationService: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$2 = navigationService;
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
        this._navigationService$2.registerTopicalizedPageFilterChangedListener(this, BettingNavigationService.BettingNavigationService.boNavigation);
    },
    
    onPageFilterChanged: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (!Boolean.parse(this._forceTopBONavigation$2)) {
            this.update();
        }
    },
    
    init: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$init(environment, componentInstanceName, domElementId, parameters) {
        this._boNavigationContentUrl$2 = parameters['bo-navigation-content-url'];
        this._plainMarketGroupContentUrl$2 = parameters['plain-market-group-content-url'];
        this._marketGroupType$2 = parameters['market-group-type'];
        this._forceTopBONavigation$2 = parameters['force-top-bonavigation'];
        this._autoRefreshAreas$2 = parameters['auto-refresh-areas'];
    },
    
    preTransformation: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$preTransformation(eventArgs) {
        if (!this.get_isComponentVisible()) {
            eventArgs.set_cancelUpdate(true);
            return;
        }
        if (!eventArgs.get_customEventArgs()) {
            this.removeAllScheduledUpdates();
            if (this.get_isComponentVisible()) {
                this._showRightSide$2();
                this.show();
                var boNavigation = this._bettingNavigationService$2.getBONavigation();
                var IDFWBONavigation = (!boNavigation.length || Boolean.parse(this._forceTopBONavigation$2)) ? 'top' : boNavigation[0];
                var contentUrl = this._boNavigationContentUrl$2.replace('${idfwbonavigation}', IDFWBONavigation);
                eventArgs.get_contextObject().contentUrl = contentUrl;
                if (this._autoRefreshAreas$2.toLowerCase().indexOf(this._environment.getPageArea().toLowerCase()) !== -1) {
                    var _autoRefreshPeriod = 60000;
                    this.periodicalUpdate(this._domElementId, contentUrl, this._parameters.get_xsltUrl(), this.getXsltParameters(1), this._domElementId, _autoRefreshPeriod, new Framework.Component.LifeCycleManagement.EventArgs.CustomEventArgs());
                }
            }
            else {
                this.hide();
            }
        }
    },
    
    getXsltParameters: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$getXsltParameters(contextObject) {
        var depth = (!contextObject) ? 1 : contextObject;
        var result = {};
        result['component-instance-name'] = this._componentInstanceName;
        result['component-dom-element-id'] = this._domElementId;
        result['depth'] = depth;
        result['market-group-type'] = this._marketGroupType$2;
        result['force-top-bonavigation'] = this._forceTopBONavigation$2;
        result['auto-refresh-areas'] = this._autoRefreshAreas$2;
        return result;
    },
    
    _showRightSide$2: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$_showRightSide$2() {
        var right = document.getElementById('right');
        if (right) {
            right.style.display = 'block';
        }
    },
    
    continueLoading: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$continueLoading(IDFWBONavigation, domElement) {
        this._log.debug(String.format('ContinueLoading IDFWBONavigation=[{0}]', IDFWBONavigation));
        var contentUrl = this._boNavigationContentUrl$2.replace('${idfwbonavigation}', IDFWBONavigation);
        this.update(domElement, contentUrl, this._parameters.get_xsltUrl(), this.getXsltParameters(2), new Framework.Component.LifeCycleManagement.EventArgs.CustomEventArgs());
    },
    
    completeLoading: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$completeLoading(IDFWMarketGroup, domElement) {
        this._log.debug(String.format('CompleteLoading IDFWMarketGroup=[{0}]', IDFWMarketGroup));
        var contentUrl = this._plainMarketGroupContentUrl$2.replace('${idfwmarketgroup}', IDFWMarketGroup);
        this.update(domElement, contentUrl, this._parameters.get_xsltUrl(), this.getXsltParameters(3), new Framework.Component.LifeCycleManagement.EventArgs.CustomEventArgs());
    },
    
    showEvent: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$showEvent(IDFOEvent) {
        this._log.debug(String.format('ShowEvent IDFOEvent=[{0}]', IDFOEvent));
        this._bettingNavigationService$2.setEvent(IDFOEvent, null, null);
        return false;
    },
    
    showMarketGroup: function PlainMarketGroupListComponent_PlainMarketGroupListComponent$showMarketGroup(IDFOMarketGroup) {
        this._log.debug(String.format('ShowMarketGroup IDFOMarketGroup=[{0}]', IDFOMarketGroup));
        this._bettingNavigationService$2.setMarketGroup(0, IDFOMarketGroup);
        return false;
    }
}


PlainMarketGroupListComponent.PlainMarketGroupListComponent.createClass('PlainMarketGroupListComponent.PlainMarketGroupListComponent', Framework.Component.AbstractXsltBasedComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
Type.createNamespace('IncludeComponent');

////////////////////////////////////////////////////////////////////////////////
// IncludeComponent.IncludeComponent

IncludeComponent.IncludeComponent = function IncludeComponent_IncludeComponent() {
    IncludeComponent.IncludeComponent.constructBase(this);
}
IncludeComponent.IncludeComponent.prototype = {
    _parameters$1: null,
    _repaintOnFilterChanged$1: true,
    _navigationService$1: null,
    
    setNavigationService: function IncludeComponent_IncludeComponent$setNavigationService(navigationService) {
        this._log.debug('SetNavigationService');
        this._navigationService$1 = navigationService;
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.action);
        this._navigationService$1.registerTopicalizedPageFilterChangedListener(this, NavigationService.NavigationService.page);
    },
    
    onPageFilterChanged: function IncludeComponent_IncludeComponent$onPageFilterChanged(eventSource) {
        this._log.debug('OnPageFilterChanged');
        if (this._repaintOnFilterChanged$1) {
            this.repaint();
        }
    },
    
    init: function IncludeComponent_IncludeComponent$init(environment, componentInstanceName, domElementId, parameters) {
        IncludeComponent.IncludeComponent.callBase(this, 'init', [ environment, componentInstanceName, domElementId, parameters ]);
        this._parameters$1 = new Framework.CommonComponentParameters(parameters);
        if (Object.keyExists(parameters, 'repaint-on-filter-changed')) {
            this._repaintOnFilterChanged$1 = Boolean.parse(parameters['repaint-on-filter-changed']);
        }
    },
    
    start: function IncludeComponent_IncludeComponent$start() {
        this.repaint();
    },
    
    repaint: function IncludeComponent_IncludeComponent$repaint() {
        this._log.debug('Repaint');
        if (this.isVisible(this._parameters$1.get_visibleOn(), this._parameters$1.get_notVisibleOn(), this._navigationService$1.getAction())) {
            this.show();
            var contentUrl = this._parameters$1.get_contentUrl().replace('${region}', this._environment.getRegion()).replace('${language}', this._environment.getLanguage());
            var page = this._navigationService$1.getPageFilter()[NavigationService.NavigationService.page];
            if (!String.isNullOrEmpty(page)) {
                contentUrl = contentUrl.replace('${page}', page);
            }
            var ajaxUpdater = new Framework.AjaxUpdater(this._domElementId, contentUrl, null, null);
            ajaxUpdater.update();
        }
        else {
            this.hide();
        }
    }
}


IncludeComponent.IncludeComponent.createClass('IncludeComponent.IncludeComponent', Framework.Component.AbstractComponent, NavigationService.IPageFilterChangedListener);

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
