﻿var HT = HT || {}

HT.Signup = (function($) {
    var leagueControl, regionControl, teamNameControl, languageId;
    return {
        useTeamNameSuggestion: function(suggestion) {
            teamNameControl.val(suggestion);
        },
        OnSucceeded: function(result, userContext, methodName) {
            switch (methodName) {
                case ('CheckTeamname'):
                    if (result !== '') {
                        toggleShowHide('errorTeamname', 1);
                        $get('errorTeamname').innerHTML = result;
                    }
                    break;
                case ('CheckLoginname'):
                    if (result !== '') {
                        toggleShowHide('errorLoginname', 1);
                        $get('errorLoginname').innerHTML = result;
                    }
                    break;
                case ('GetTeamNameSuggestions'):
                    if (result) {
                        var i, tr = $('#TeamNameSuggestionsTableRow'), ul = tr.find('ul');
                        ul.empty();
                        for (i = 0; i < result.length; i += 1) {
                            ul.append('<li style="padding-bottom: 0;"><a href="javascript:void(0);" onclick="HT.Signup.useTeamNameSuggestion(\'' + result[i] + '\');">' + result[i] + '</a></li>');
                        }
                        tr.show();
                    }
                    break;
                case ('GetTeamNameSuggestion'):
                    if (result) {
                        HT.Signup.useTeamNameSuggestion(result);
                    }
                    break;
            }
        },
        OnFailed: function(error) {
            // do nothing
        },
        checkTeamname: function(controlId) {
            toggleShowHide('errorTeamname', 0);
            var teamname = $get(controlId).value;
            PageMethods.CheckTeamname(teamname, HT.Signup.OnSucceeded, HT.Signup.OnFailed);
        },
        checkLoginname: function checkLoginname(controlId) {
            toggleShowHide('errorLoginname', 0);
            var loginname = $get(controlId).value;
            PageMethods.CheckLoginname(loginname, HT.Signup.OnSucceeded, HT.Signup.OnFailed);
        },
        getTeamNameSuggestions: function() {
            var regionName, leagueId, countryName;
            regionName = regionControl.find("option:selected").text();
            leagueId = leagueControl.val();
            countryName = leagueControl.find("option:selected").text();

            PageMethods.GetTeamNameSuggestions(regionName, leagueId, countryName, languageId, HT.Signup.OnSucceeded, HT.Signup.OnFailed);
        },
      
        prefillTeamName: function() {
            var regionName, leagueId, countryName;
            regionName = regionControl.find("option:selected").text();
            leagueId = leagueControl.val();
            countryName = leagueControl.find("option:selected").text();
            PageMethods.GetTeamNameSuggestion(regionName, leagueId, countryName, languageId, HT.Signup.OnSucceeded, HT.Signup.OnFailed);
        },
        init: function(leagueControlId, regionControlId, teamNameControlId, langId, mode) {
            leagueControl = $(leagueControlId);
            regionControl = $(regionControlId);
            teamNameControl = $(teamNameControlId);
            languageId = langId;

            if (mode === "prefilled") {
                regionControl.change(HT.Signup.prefillTeamName);
                HT.Signup.prefillTeamName();
            } else {
                regionControl.change(HT.Signup.getTeamNameSuggestions);
                HT.Signup.getTeamNameSuggestions();
            }

        }

    }
})(jQuery)
