﻿var account = {
    init: function() {
        PAGE.init();

        $('accountsBackground').style.height = PAGE.HEIGHT + 'px';

        //margin left
        try {
            var mw = $('mainWrapper');
            var mwWidth = 850;
            var posLeft = (PAGE.WIDTH - mwWidth) / 2;
            if (posLeft < 0) posLeft = 0;
            mw.style.marginLeft = posLeft + 'px';

            //margin top
            var mwHeight = 493 + 104; //panel + ad
            var posTop = (PAGE.HEIGHT - mwHeight) / 3;
            if (posTop < 0) posTop = 0;
            mw.style.marginTop = posTop + 'px';

            //ad position
            var aw = $('sponsorAdWrapper');
            aw.style.left = posLeft + 'px';
            aw.style.top = posTop + 493 + 4 + 'px';
        }
        catch (exc) { }

        account.setLanguageVersion($('languageVersionInput').value);

        document.body.style.visibility = "visible";

        window.onresize = account.init;

        try {
            this.showLoginForm();
        }
        catch (exc) { }

        //if user has registration code show registration form
        if (showRegistrationForm == true) {
            this.showRegistrationForm();
        }

        try {
            $('recaptcha_instructions_image').innerHTML = '&nbsp;<b>Wpisz dwa słowa</b>';
        } catch (exc) { }

        try {
            this.checkBrowserCompatibility();
        } catch (exc) { }

        //Load user nick
        if ($('loginTextBox').value == '') {
            var savedNick = helper.readCookie('pc_nick');
            if (savedNick != null && savedNick != '') {
                $('loginTextBox').value = savedNick;
                $('rememberMeCheckBox').checked = true;
                $('passwordTextBox').focus();
            }
            else {
                $('loginTextBox').focus();
            }
        }

        account.runPreloaders();
        //account.runTooltipsSlide();
        //setTimeout('account.adsBanerBlinkOn()',10000);

        //setTimeout('account.getOnlinePeopleNumber()', 30000);
    },

    adsBanerBlinkOn: function() {
        $('sponsorAdWrapper').className = 'blink';
        setTimeout('account.adsBanerBlinkOff()', 300);
    },

    adsBanerBlinkOff: function() {
        $('sponsorAdWrapper').className = '';
    },

    runPreloaders: function() {
        imagesPreloader.init(account.checkStatus);
    },

    runTooltipsSlide: function() {
        //show tooltips
        var userImages = $('randomUsersList').getElementsByTagName('IMG');
        for (var i = 0; i < userImages.length; i++) {
            var command = 'account.showTooltip($(\'' + userImages[i].id + '\'),$(\'' + userImages[i].id + '\').getAttribute(\'userNick\'))';
            setTimeout(command, (i + 1) * 1000);
        }

        setTimeout('account.hideTooltip()', 7000);
    },

    showLoginForm: function() {
        $('mainFormsWrapper').style.paddingTop = '100px';

        $('loginFormLink').className = 'active';
        $('registrationFormLink').className = '';
        $('passwordReminderFormLink').className = '';

        $('registrationFormTopWrapper').style.display = 'none';
        $('passwordReminderFormTopWrapper').style.display = 'none';
        $('loginFormTopWrapper').style.display = 'block';

        try {
            $('loginTextBox').focus();
        }
        catch (exc) { }

        var browser = BrowserDetect.browser;
        if (browser == 'Chrome' || browser == 'Safari') {
            if ($('facebookLinkWrapper').style.display != 'none') {
                $('locationText').style.display = 'block';
            }
        }
    },

    showRegistrationForm: function() {
        $('mainFormsWrapper').style.paddingTop = '45px';

        $('registrationFormLink').className = 'active';
        $('loginFormLink').className = '';
        $('passwordReminderFormLink').className = '';

        $('loginFormTopWrapper').style.display = 'none';
        $('passwordReminderFormTopWrapper').style.display = 'none';
        $('registrationFormTopWrapper').style.display = 'block';

        try {
            $('newUserNameTextBox').focus();
        }
        catch (exc) { }

        var browser = BrowserDetect.browser;
        if (browser == 'Chrome' || browser == 'Safari') {
            $('locationText').style.display = 'none';
        }
    },

    showPasswordReminderForm: function() {
        $('mainFormsWrapper').style.paddingTop = '100px';

        $('passwordReminderFormLink').className = 'active';
        $('loginFormLink').className = '';
        $('registrationFormLink').className = '';

        $('loginFormTopWrapper').style.display = 'none';
        $('registrationFormTopWrapper').style.display = 'none';
        $('passwordReminderFormTopWrapper').style.display = 'block';

        try {
            $('passwordReminderLoginTextBox').focus();
        }
        catch (exc) { }

        var browser = BrowserDetect.browser;
        if (browser == 'Chrome' || browser == 'Safari') {
            if ($('facebookLinkWrapper').style.display != 'none') {
                $('locationText').style.display = 'block';
            }
        }
    },

    goToMainPage: function() {
        $('statusTextBox').value = 'None';

        document.location = '/home.aspx';
    },

    checkStatus: function() {
        var status = $('statusTextBox').value;

        if (status.indexOf('LoginSuccessful') >= 0) {
            var args = status.split(':');

            if (args.length == 2) {
                var userNick = args[1];
                helper.createCookie('pc_nick', userNick, 7);
            }
            else {
                helper.eraseCookie('pc_nick');
            }

            //if (imagesPreloader.finished == true) {
            $('registrationFormLink').disabled = true;
            $('passwordReminderFormLink').disabled = true;

            account.goToMainPage();
            //}
        }
    },

    getUserImagesPreloadingList: function() {
        var userFriends = $('userFriendsTextBox').value;

        if (userFriends != 'None') {
            var userFriendsTab = userFriends.split(',');

            for (var i = 0; i < userFriendsTab.length; i++) {
                userSettingsPreloader.preloadedImages.push('/users/' + i + '/avatar30.jpg');
                userSettingsPreloader.preloadedImages.push('/users/' + i + '/avatar40.jpg');
            }

            userSettingsPreloader.startPreloading();
        }
        else {
            userSettingsPreloader.progressNode.style.width = userSettingsPreloader.progressWidth + 'px';
            $('loadingProgressSpan').innerHTML = '100';

            account.goToMainPage();
        }
    },

    setLanguageVersion: function(version) {
        switch (version) {
            case 'us':
                //main menu and login form
                $('languageVersionInput').value = 'us';

                $('flagImg').src = '/images/flags/us.png';

                $('languageVersionLabel').innerHTML = 'Language';

                $('loginFormLink').innerHTML = 'Sign In';
                $('registrationFormLink').innerHTML = 'Sign Up';
                $('passwordReminderFormLink').innerHTML = 'Remind Password';

                try {
                    $('loginLabel').innerHTML = 'Login';
                    $('passwordLabel').innerHTML = 'Password';
                    $('loginTextBox').style.width = '130px';
                    $('passwordTextBox').style.width = '130px';
                } catch (exc) { }

                $('loadingComponentsLabel').innerHTML = 'Loading Components';

                //registration form
                $('registrationForm_Login').innerHTML = 'Login';
                $('registrationForm_Password').innerHTML = 'Password';
                $('registrationForm_PasswordConfirmation').innerHTML = 'Confirm Password';
                $('registrationForm_Email').innerHTML = 'E-mail';
                $('registrationForm_EmailConfirmation').innerHTML = 'Confirm E-mail';
                $('registrationForm_Sex').innerHTML = 'Sex';

                $('registerButton').value = 'Sign Up';

                //password reminder form
                $('passwordRemingerForm_LoginOrEmail').innerHTML = 'Your login or e-mail';
                $('passwordRemindButton').value = 'Send password';

                break;

            case 'pl':
                //main menu and login form
                $('languageVersionInput').value = 'pl';
                $('flagImg').src = '/images/flags/pl.png';
                $('languageVersionLabel').innerHTML = 'Język';

                try {
                    //$('loginFormLink').innerText = 'Logowanie';
                    //$('registrationFormLink').innerHTML = 'Rejestracja';
                    //$('passwordReminderFormLink').innerHTML = 'Przypomnij hasło';
                } catch (exc) { }

                try {
                    $('loginLabel').innerHTML = 'Login';
                    $('passwordLabel').innerHTML = 'Hasło';
                    $('loginTextBox').style.width = '145px';
                    $('passwordTextBox').style.width = '145px';
                } catch (exc) { }

                //$('loadingComponentsLabel').innerHTML = 'Wczytywanie komponentów';

                //registration form
                try {
                    $('registrationForm_Login').innerHTML = 'Login';
                    $('registrationForm_Password').innerHTML = 'Hasło';
                    $('registrationForm_PasswordConfirmation').innerHTML = 'Powtórz hasło';
                    $('registrationForm_Email').innerHTML = 'E-mail';
                    $('registrationForm_EmailConfirmation').innerHTML = 'Powtórz e-mail';
                    $('registrationForm_Sex').innerHTML = 'Płeć';
                    $('registerButton').value = 'Rejestruj';
                } catch (exc) { }

                //password reminder form
                try {
                    $('passwordRemingerForm_LoginOrEmail').innerHTML = 'Twoj login lub email';
                    $('passwordRemindButton').value = 'Wyślij hasło';
                } catch (exc) { }

                break;

            default:
                break;
        }
    },

    openSupportForm: function() {
        window.open('supportRequest.aspx', "support_request", "menubar=0,location=0,status=0,scrollbars=0,resizable=0,width=480,height=320");
    },

    openAboutUs: function() {
        window.open('about_us.aspx', "about_us", "menubar=0,location=0,status=0,scrollbars=0,resizable=0,width=480,height=320");
    },

    openTermsAndConditions: function() {
        window.open('/help/terms.html', "terms_and_conditions", "menubar=0,location=0,status=0,scrollbars=1,resizable=0,width=640,height=480");
    },

    openFAQ: function() {
        window.open('/public/faq/itemsList.aspx', "faq");
    },

    openYoutubeChannel: function() {
        window.open('http://www.youtube.com/polishcorner', "Official_YouTube_Channel");
    },

    openFacebook: function() {
        window.open('http://www.facebook.com/pages/wwwpolishcornerus/242199281738', "Facebook_Page");
    },

    checkBrowserCompatibility: function() {
        var browser = BrowserDetect.browser;
        var version = BrowserDetect.version;

        document.getElementById('browserInfoText').innerHTML = browser + ' ' + version;

        if (browser == 'Explorer' && version < 7) {
            document.getElementById('browserCompatibilityInfo').style.display = 'block';
        }
    },

    loginPasswordOnKeyUp: function(e) {
        var keyCode = window.event ? e.keyCode : e.which;

        if (keyCode == 13) {
            account.loginButtonClick();
        }
    },

    loginButtonClick: function() {
        document.getElementById('loginButton').click();
    },

    hashPassword: function() {
        var plainPassword = document.getElementById('passwordTextBox').value;
        //#TODO add encryption here
        //var passwordHash = sha1Hash(plainPassword);
        //document.getElementById('passwordTextBox').value = plainPassword;
    },

    showTooltip: function(element, text) {
        $('tooltipText').innerHTML = text;

        var tooltip = $('tooltip');
        var tooltipWidth = Element.getWidth(tooltip);

        var offsetLeft = (tooltipWidth - 64) / 2;
        var imgLeftPos = (element.offsetLeft + $('randomUsersList').offsetLeft) - offsetLeft;

        tooltip.style.left = imgLeftPos + 'px';
        tooltip.style.display = 'block';
    },

    hideTooltip: function() {
        $('tooltip').style.display = 'none';
    },

    addAdvertisementClickResponse: function(response) {
        //do nothing
    },

    addAdvertisementClickResponseError: function(error) {
        //do nothing
    },

    showCaptcha: function() {
        $('locationText').style.display = 'none';
        $('supportDiv').style.display = 'none';
        $('captchaWrapper').style.display = 'block';

        Recaptcha.reload();
    },

    getOnlinePeopleNumber: function() {
        LoginPageService.getOnlinePeopleNumber(account.processGetOnlinePeopleNumberResponse, account.processGetOnlinePeopleNumberResponseError);
        setTimeout('account.getOnlinePeopleNumber()', 30000);
    },

    processGetOnlinePeopleNumberResponse: function(response) {
        $('onlineUsersInfo').innerHTML = 'Online: ' + response;
    },

    processGetOnlinePeopleNumberResponseError: function(error) {
        //do nothing
    },

    showUserAvatar: function(element) {
        var userID = element.getAttribute('userID');
        $('userAvatarTooltipImg').src = '/users/' + userID + '/avatar100.jpg';

        var tooltipWidth = $('userAvatarTooltip').getWidth();
        var horizontalOffset = (tooltipWidth - Element.getWidth(element)) / 2;

        var elementPos = Element.cumulativeOffset(element);
        var left = elementPos[0] - horizontalOffset - 2;
        var top = elementPos[1] - 16;

        if (left < 2) {
            left = 2;
        }

        $('userAvatarTooltip').style.left = left + 'px';
        $('userAvatarTooltip').style.top = top + 'px';


        $('userAvatarTooltip').style.display = 'block';
    },

    hideUserAvatar: function() {
        $('userAvatarTooltip').style.display = 'none';
    }
}

/* ad manager - same code as in public.js */
var adManager = {
    openAd: function(adID, adUrl) {
        LoginPageService.addAdvertisementClick(adID, adManager.addAdvertisementClickResponse, adManager.addAdvertisementClickResponseError);
        window.open(adUrl);
    },

    addAdvertisementClickResponse: function(response) {
        //do nothing
    },

    addAdvertisementClickResponseError: function(error) {
        //do nothing
    }
}