﻿$(document).ready(function () {
    var buttonClicked = false;
    setInitialColumnSizes();

    $('#login').click(function () {
        slideSigningForm();
        return false;
    });

    $('#register').click(function () {
        slideRegisterForm();
        return false;
    });

    $('[id$=tboxUsernameSignIn]').keypress(function (event) {
        if (event.which == '13') {
            $('#tboxPasswordSignIn').focus();
            return false;
        }
    });

    $('#cphCentral_tboxUsernameRegister').keypress(function (event) {
        if (event.which == '13') {
            $("#cphCentral_tboxEmailAddressRegister").focus();
            return false;
        }
    });

    $('#cphCentral_tboxEmailAddressRegister').keypress(function (event) {
        if (event.which == '13') {
            $("#cphCentral_tboxPasswordRegister").focus();
            return false;
        }
    });

    $('#cphCentral_tboxPasswordRegister').keypress(function (event) {
        if (event.which == '13') {
            $("#tboxConfirmPassRegister").focus();
            return false;
        }
    });

    $('#tboxPasswordSignIn').keypress(function (event) {
        if (event.which == '13') {
            $('a[id$=lnkSignInCheckout]').click();
            return false;
        }
    });

    $('#tboxConfirmPassRegister').keypress(function (event) {
        if (event.which == '13') {
            $('a[id$=lnkRegisterCheckout]').click();
            return false;
        }
    });

    function setInitialColumnSizes() {
        var carouselHeight = 0;

        var initRightHeight = $('.user-column-right').height();

        // get the height of left column when register form is expanded
        var $leftColumnRegisterCopy = $('.user-column-left').clone();
        $('.user-column-left').parent().append($leftColumnRegisterCopy);
        $leftColumnRegisterCopy.show();

        // include carousel height if exists in the left column
        var $carouselWrapper = $leftColumnRegisterCopy.find('.carousel-wrapper');
        if ($carouselWrapper != null) {
            carouselHeight = $carouselWrapper.height();
            $carouselWrapper.hide();
        }

        if ($leftColumnRegisterCopy.find('div[id$=divSignInOrRegisterToComment]').is(':visible')) {
            $leftColumnRegisterCopy.find('div[id$=pnlSignInBlockCheckout]').hide();
            $leftColumnRegisterCopy.find('#registerBlockCheckout').show();
        } else {
            $leftColumnRegisterCopy.find('div[id$=pnlAddCommentBlock]').show();
        }

        var leftRegisterExpandedHeight = $leftColumnRegisterCopy.height() + carouselHeight;
        $leftColumnRegisterCopy.hide();
        $leftColumnRegisterCopy.remove();

        if (leftRegisterExpandedHeight > initRightHeight) {
            $('.user-column-right').height(leftRegisterExpandedHeight + 70);
        } else {
            $('.user-column-left').height(initRightHeight);
        }
    }

    function slideSigningForm() {
        var $signinForm = $('div[id$=pnlSignInBlockCheckout]');
        var $registerForm = $('#registerBlockCheckout');

        if ($registerForm.is(':visible')) {
            $registerForm.slideToggle('fast', function () {
                $signinForm.slideToggle('fast');
            });
        } else {
            $signinForm.slideToggle('fast');
        }
    }

    function slideRegisterForm() {
        var $signinForm = $('div[id$=pnlSignInBlockCheckout]');
        var $registerForm = $('#registerBlockCheckout');

        if ($signinForm.is(':visible')) {
            $signinForm.slideToggle('fast', function () {
                $registerForm.slideToggle('fast');
            });
        } else {
            $registerForm.slideToggle('fast');
        }
    }

    $('a[id$=lnkSignInCheckout]').click(function () {
        var retVal = true;
        $btnLogin = $(this);

        $('#errorMessageSignIn').hide();

        $username = $('input[id$=tboxUsernameSignIn]');
        $password = $('input[id$=tboxPasswordSignIn]');

        // validate input fields
        if (validateRequiredTextField($username.val())) {
            $username.removeClass('error').end().removeClass('error');
        } else {
            retVal = false;
            $username.addClass('error').end().addClass('error');
        }

        if (validateRequiredTextField($password.val())) {
            $password.removeClass('error').end().removeClass('error');
        } else {
            retVal = false;
            $password.addClass('error').end().addClass('error');
        }

        if (retVal) {
            var lnkText = $(this).html();
            if (!$btnLogin.hasClass('loader')) {
                $btnLogin.addClass('loader');
                $btnLogin.text('');
            }

            Xeed.Foam.Web.Services.FoamService.Login($username.val(), $password.val(),
                function (res) {
                    if (res != null) {
                        $('li[id$=litemSignIn]').css('display', 'none');
                        $('a[id$=lnkRegisterdUser]').text(res);
                        $('ul[id$=listLogedUser]').css('display', 'block');
                        $('li[id$=litemSignOut]').css('display', 'block');
                        $btnLogin.removeClass('loader');
                        $btnLogin.hide();
                        //window.location.href = "/shop?shopUrl=http%3a%2f%2fshop.foam.production.xeed.nl%2fEN%2fcheckout";
                        window.location.href = $('[id$=hdnFieldUrl]').val();
                        retVal = true;
                    } else {
                        $('#errorMessageSignIn').show();
                        $btnLogin.removeClass('loader');
                        $btnLogin.html(lnkText);
                        retVal = false;
                        return retVal;
                    }
                }
            );
        }

        return retVal;
    });

    $('a[id$=lnkRegisterCheckout]').click(function () {
        var retVal = true;
        $btnRegister = $(this);

        $('#errorMessageRegister').hide();

        $email = $('input[id$=tboxEmailAddressRegister]');
        $username = $('input[id$=tboxUsernameRegister]');
        $password = $('input[id$=tboxPasswordRegister]');
        $confirmPass = $('input[id$=tboxConfirmPassRegister]');

        if (validateEmail($email.val())) {
            $email.removeClass('error').end().removeClass('error');
        } else {
            retVal = false;
            $email.addClass('error').end().addClass('error');
        }

        if (validateRequiredTextField($username.val())) {
            $username.removeClass('error').end().removeClass('error');
        } else {
            retVal = false;
            $username.addClass('error').end().addClass('error');
        }

        if (validateRequiredTextField($password.val())) {
            $password.removeClass('error').end().removeClass('error');
        } else {
            retVal = false;
            $password.addClass('error').end().addClass('error');
        }

        if (validateRequiredTextField($confirmPass.val())) {
            if ($confirmPass.val() == $password.val()) {
                $confirmPass.removeClass('error').end().removeClass('error');
            }
            else {
                retVal = false;
                $confirmPass.addClass('error').end().addClass('error');
                $password.addClass('error').end().addClass('error');
            }
        } else {
            retVal = false;
            $confirmPass.addClass('error').end().addClass('error');
        }

        if (retVal) {
            var lnkText = $(this).html();
            if (!$btnRegister.hasClass('loader')) {
                $btnRegister.addClass('loader');
                $btnRegister.text('');
            }

            Xeed.Foam.Web.Services.FoamService.Register($email.val(), $username.val(), $password.val(),
                function (res) {
                    if (res == '') {
                        $('li[id$=litemSignIn]').css('display', 'none');
                        $('a[id$=lnkRegisterdUser]').text($username.val());
                        $('ul[id$=listLogedUser]').css('display', 'block');
                        $('li[id$=litemSignOut]').css('display', 'block');
                        $btnRegister.removeClass('loader');
                        $btnRegister.hide();
                        window.location.href = $('[id$=hdnFieldUrl]').val();
                        retVal = true;
                    } else {
                        $btnRegister.removeClass('loader');
                        $btnRegister.html(lnkText);
                        $('#errorMessageRegister').html(res);
                        $('#errorMessageRegister').show();
                    }
                }
            );
        }

        return retVal;
    });
});

