﻿
            function DoSignUp()
            {
                document.getElementById("signInDiv").style.display = "none";
                document.getElementById("signUpDiv").style.display = "block";
                document.getElementById("GrayBackgroundDiv").style.display = "block";
            }
            
            function DoSignIn()
            {
                
                if(isRecognized == 'true')
                {
                    document.getElementById('lblTitle').innerHTML = 'In order to protect your security, please enter your password once again';
                    document.getElementById('lblTitle').style.display = "block";
                }
                else
                {
                    document.getElementById('lblTitle').style.display = "none";
                    var user = document.getElementById(txtSignInUserName);
                    if(user)
                    {
                        user.value = '';
                    }
                }
                
                window.scrollTo(0,0);
                document.getElementById("signUpDiv").style.display = "none";
                document.getElementById("signInDiv").style.display = "block";
                document.getElementById("GrayBackgroundDiv").style.display = "block";
            }
            
            function SignUpSuccess() {
                // Show thank you screen
                document.getElementById("signUpComplete").style.display = "block";
                document.getElementById("signInDiv").style.display = "none";
                document.getElementById("signUpDiv").style.display = "none";
                
                // Sync all user parts
                UpdatePagePanels();
            }
            
            function SignUpFailed(errorMessage){
                //Failed get userGuid from service
                document.getElementById("SignUpFailed").style.display = "block";
                document.getElementById("signUpDiv").style.display = "none";
                
                document.getElementById("SignUpFailedErrorDesc").innerHTML = 'An Error on the registration process has occured : ' + errorMessage + ' Please try again later';
                
                // Sync all user parts
                UpdatePagePanels();
            }
            
            function SignInSuccess() {
                document.getElementById("signInDiv").style.display = "none";
                document.getElementById("GrayBackgroundDiv").style.display = "none";
                
                UpdatePagePanels();
            }

            function UpdatePagePanels() {
            
                if($find(MyZoneSidePanel)._userControlPath != null) // in my zone page we are not reload side my zone user control
                {
                  $find(MyZoneSidePanel).refresh();
                }
                if(typeof(SigninOutPanel) !== 'undefined')
                {
                    $find(SigninOutPanel).refresh();
                }
                if(typeof(NewsletterSubscribePanel) !== 'undefined')
                {
                    $find(NewsletterSubscribePanel).refresh();
                }
                if(typeof(MyZoneMainPanel) !== 'undefined')// if the user signed in from my zone page also reload MyZoneMainPanel
                {
                    $find(MyZoneMainPanel).refresh();
                }
                if(typeof(MediaInfoPanel) !== 'undefined')// if the user signed in from my zone page also reload MyZoneMainPanel
                {
                    $find(MediaInfoPanel).refresh();
                }
            }
            
            function UpdatePanelsOnSignOut() {
            
                if($find(MyZoneSidePanel)._userControlPath != null) // in my zone page we are not reload side my zone user control
                {
                  $find(MyZoneSidePanel).refresh();
                }

                $find(SigninOutPanel).refresh();
                $find(NewsletterSubscribePanel).refresh();
                
                if(typeof(MyZoneMainPanel) !== 'undefined')// if the user signed in from my zone page also reload MyZoneMainPanel
                {
                    $find(MyZoneMainPanel).refresh();
                }
                if(typeof(MediaInfoPanel) !== 'undefined')// if the user signed in from my zone page also reload MyZoneMainPanel
                {
                    $find(MediaInfoPanel).refresh();
                }
            }
            
            function SubmitSignOut()
            {
                ClearSigninError();
                SignService.SignOut(OnSignOutComplete);
            }

            function OnSignOutComplete(success)
            {
                if (success)
                    UpdatePanelsOnSignOut();
                else
                    document.location.reload();
            }
            
    

    function ValidateUserName() {
    
        var username = document.getElementById('txtUserName').value;
        userNameValid = false;
        //privent spaces
        username = document.getElementById('txtUserName').value = document.getElementById('txtUserName').value.split(' ').join('');
        
        if (username == "") {
            document.getElementById('lblUserName').className = "";
            document.getElementById('userEnter').style.display = "block";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "none";
            document.getElementById('userMinChars').style.display = "none";
            document.getElementById('userNotAllowedSign').style.display = "none";
        }
        else if(username.indexOf('&') > -1)
        {
            document.getElementById('lblUserName').className = "errorField";
            document.getElementById('userEnter').style.display = "none";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "none";
            document.getElementById('userMinChars').style.display = "none";
            document.getElementById('userNotAllowedSign').style.display = "block";
        }
        else if(username.length < 4 ){
            document.getElementById('lblUserName').className = "errorField";
            document.getElementById('userEnter').style.display = "none";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "none";
            document.getElementById('userMinChars').style.display = "block";
            document.getElementById('userNotAllowedSign').style.display = "none";               
        }
        else {
            document.getElementById('lblUserName').className = "";
            document.getElementById('userEnter').style.display = "none";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "none";
            document.getElementById('userCheckingDiv').style.display = "block";
            document.getElementById('userNotAllowedSign').style.display = "none";
            SignService.ValidateUserName(username, OnValidateUserNameComplete);
        }
        
        document.getElementById('useMustChoose').style.display = "none";        
    }
    
    function OnValidateUserNameComplete(valid) {
        document.getElementById('userEnter').style.display = "none";
        document.getElementById('userCheckingDiv').style.display = "none";
        
        if (valid) {
            document.getElementById('lblUserName').className = "";
            document.getElementById('userAvailDiv').style.display = "block";
            document.getElementById('userTakenDiv').style.display = "none";
        }
        else {
            document.getElementById('lblUserName').className = "errorField";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "block";
        }

        userNameValid = valid;
    }

    function OnUserNameGotFocus() {
        if (userNameValid)
            return;
        
        var username = document.getElementById('txtUserName').value;

        if (username == "") {
            document.getElementById('userEnter').style.display = "block";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "none";
            document.getElementById('userCheckingDiv').style.display = "none";
        }
    }

    function OnUserNameLostFocus() {
        var username = document.getElementById('txtUserName').value;

        if (username == "") {
            document.getElementById('lblUserName').className = "";
            document.getElementById('userEnter').style.display = "none";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "none";
            document.getElementById('userCheckingDiv').style.display = "none";
        }
        else if(username.length < 4 ){
            document.getElementById('lblUserName').className = "errorField";
            document.getElementById('userEnter').style.display = "none";
            document.getElementById('userAvailDiv').style.display = "none";
            document.getElementById('userTakenDiv').style.display = "none";
            document.getElementById('userMinChars').style.display = "block";                
        }
        else {
            if (userNameValid) {
                document.getElementById('lblUserName').className = "";
                document.getElementById('userEnter').style.display = "none";
                document.getElementById('userAvailDiv').style.display = "block";
                document.getElementById('userTakenDiv').style.display = "none";
                document.getElementById('userCheckingDiv').style.display = "none";
            }
            else {
                document.getElementById('lblUserName').className = "errorField";
                document.getElementById('userEnter').style.display = "none";
                document.getElementById('userAvailDiv').style.display = "none";
                document.getElementById('userTakenDiv').style.display = "block";
                document.getElementById('userCheckingDiv').style.display = "none";
            }
        }
    }

    function ValidateFirstName(lostFocus) {
        var fName = document.getElementById('txtFirstName').value;

        if (fName == "") {
            firstNameValid = false;
            document.getElementById('firstNameEnter').style.display = lostFocus ? "none" : "block";
            document.getElementById('firstNameValid').style.display = "none";
            document.getElementById('firstNameMinChar').style.display = "none";
            document.getElementById('firstNameOnlySpaces').style.display = "none";            
        }
        else if(fName.length < 2){
            firstNameValid = false;
            document.getElementById('firstNameEnter').style.display = "none";
            document.getElementById('firstNameValid').style.display = "none";
            document.getElementById('firstNameMinChar').style.display = "block";
            document.getElementById('firstNameOnlySpaces').style.display = "none";            
        }
        else if(fName.split(' ').length > fName.length - 1)
        {
            firstNameValid = false;
            document.getElementById('firstNameEnter').style.display = "none";
            document.getElementById('firstNameValid').style.display = "none";
            document.getElementById('firstNameMinChar').style.display = "none";
            document.getElementById('firstNameOnlySpaces').style.display = "block";
        }
        else {
            firstNameValid = true;
            document.getElementById('firstNameEnter').style.display = "none";
            document.getElementById('firstNameValid').style.display = "block";
            document.getElementById('firstNameMinChar').style.display = "none";
            document.getElementById('firstNameOnlySpaces').style.display = "none";            
        }
        document.getElementById('firstNameInvalid').style.display = "none";
    }

    function ValidateLastName(lostFocus) {
        var lName = document.getElementById('txtLastName').value;

        if (lName == "") {
            lastNameValid = false;
            document.getElementById('lastNameEnter').style.display = lostFocus ? "none" : "block";
            document.getElementById('lastNameValid').style.display = "none";
            document.getElementById('lastNameMinChar').style.display = "none";
            document.getElementById('lastNameOnlySpaces').style.display = "none";
        }
        else if(lName.length < 2){
            lastNameValid = false;
            document.getElementById('lastNameEnter').style.display = "none";
            document.getElementById('lastNameValid').style.display = "none";
            document.getElementById('lastNameMinChar').style.display = "block";
            document.getElementById('lastNameOnlySpaces').style.display = "none";
        }
         else if(lName.split(' ').length > lName.length - 1)
        {
            lastNameValid = false;
            document.getElementById('lastNameEnter').style.display = "none";
            document.getElementById('lastNameValid').style.display = "none";
            document.getElementById('lastNameMinChar').style.display = "none";
            document.getElementById('lastNameOnlySpaces').style.display = "block";
        }
        else {
            lastNameValid = true;
            document.getElementById('lastNameEnter').style.display = "none";
            document.getElementById('lastNameValid').style.display = "block";
            document.getElementById('lastNameMinChar').style.display = "none";
            document.getElementById('lastNameOnlySpaces').style.display = "none";
        }
        document.getElementById('lastNameInvalid').style.display = "none";
    }

    function ValidateEmail(lostFocus) {
        var email = document.getElementById('txtEmail').value;
        if (email == "") {
            emailValid = false;
            document.getElementById('emailEnter').style.display = lostFocus ? "none" : "block";
            document.getElementById('emailValid').style.display = "none";
            document.getElementById('emailInvalid').style.display = "none";
        }
        else {
            // Valid email format
            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
            if(reg.test(email) == true) {
                emailValid = true;
                document.getElementById('emailEnter').style.display = "none";
                document.getElementById('emailValid').style.display = "block";
                document.getElementById('emailInvalid').style.display = "none";
                
            }
            else {
                emailValid = false;
                document.getElementById('emailEnter').style.display = "none";
                document.getElementById('emailValid').style.display = "none";
                document.getElementById('emailInvalid').style.display = "block";
            }
        }
        document.getElementById('emailNotSupplied').style.display = "none";
    }

    function ValidatePassword(lostFocus) {
        var pass = document.getElementById('txtPassword').value;
        
        if (pass == "") {
            passValid = false;
            document.getElementById('lblPassword').className = "";
            document.getElementById('passEnter').style.display = lostFocus ? "none" : "block";
            document.getElementById('passValid').style.display = "none";
            document.getElementById('passInvalid').style.display = "none";
            document.getElementById('passSpacesInvalid').style.display = "none";
            document.getElementById('passwordNotAllowedSign').style.display = "none";
        }
        else {
            // Validate password;
            if(pass.indexOf(' ') > -1)
            {
                passValid = false;
                document.getElementById('lblPassword').className = "errorField";
                document.getElementById('passEnter').style.display = "none";
                document.getElementById('passValid').style.display = "none";
                document.getElementById('passInvalid').style.display = "none";
                document.getElementById('passSpacesInvalid').style.display = "block";
                document.getElementById('passwordNotAllowedSign').style.display = "none";
            }
            else if(pass.indexOf('&') > -1)
            {
                passValid = false;
                document.getElementById('lblUserName').className = "errorField";
                document.getElementById('userEnter').style.display = "none";
                document.getElementById('userAvailDiv').style.display = "none";
                document.getElementById('userTakenDiv').style.display = "none";
                document.getElementById('userMinChars').style.display = "none";
                document.getElementById('passwordNotAllowedSign').style.display = "block";
            }
            else if (pass.length < 6) {
                passValid = false;
                document.getElementById('lblPassword').className = "errorField";
                document.getElementById('passEnter').style.display = "none";
                document.getElementById('passValid').style.display = "none";
                document.getElementById('passInvalid').style.display = "block";
                document.getElementById('passSpacesInvalid').style.display = "none";
                document.getElementById('passwordNotAllowedSign').style.display = "none";
            }
            else {
                passValid = true;
                document.getElementById('lblPassword').className = "";
                document.getElementById('passEnter').style.display = "none";
                document.getElementById('passValid').style.display = "block";
                document.getElementById('passInvalid').style.display = "none";
                document.getElementById('passSpacesInvalid').style.display = "none";
                document.getElementById('passwordNotAllowedSign').style.display = "none";
            }
        }
        
        document.getElementById('passMustSupplied').style.display = "none";
    }

    function SubmitSignUp() {
        // Validate all inputs
        var valid = true;

        if (!firstNameValid) {
            var fName = document.getElementById('txtFirstName').value;
            
            if (fName.trim() == "") {
               document.getElementById('firstNameMinChar').style.display = "none";
                document.getElementById('firstNameInvalid').style.display = "block"; 
            }
            else
            {
                document.getElementById('firstNameMinChar').style.display = "block";
                document.getElementById('firstNameInvalid').style.display = "none";
            }
            
            document.getElementById('lblFirstName').className = "errorField";
            valid = false;
        }
        else
            document.getElementById('lblFirstName').className = "";
            
        if (!lastNameValid) {
            var lName = document.getElementById('txtLastName').value;
            
            if(lName.trim() == ""){
                document.getElementById('lastNameMinChar').style.display = "none";
                document.getElementById('lastNameInvalid').style.display = "block";
            }
            else
            {
                document.getElementById('lastNameMinChar').style.display = "block";
                document.getElementById('lastNameInvalid').style.display = "none";
            }
            
            document.getElementById('lblLastName').className = "errorField";
            valid = false;
        }
        else
            document.getElementById('lblLastName').className = "";
            
        if (!emailValid) {
            var email = document.getElementById('txtEmail').value;
            
            if(email == "")
            {
                document.getElementById('emailNotSupplied').style.display = "block";
            }
            document.getElementById('lblEmail').className = "errorField";
            valid = false;
        }
        else
            document.getElementById('lblEmail').className = "";
            
        if (!userNameValid) {
            var username = document.getElementById('txtUserName').value;
            if(username == "")
            {
                document.getElementById('useMustChoose').style.display = "block";
            }
            document.getElementById('lblUserName').className = "errorField";
            valid = false;
        }
        else
            document.getElementById('lblUserName').className = "";
            
        if (!passValid) {
            var pass = document.getElementById('txtPassword').value;
            if(pass == "")
            {
                document.getElementById('passMustSupplied').style.display = "block";
            }
            document.getElementById('lblPassword').className = "errorField";
            valid = false;
        }
        else
            document.getElementById('lblPassword').className = "";
            
        if (!valid) {
            return;
        }
        
        var fName = document.getElementById('txtFirstName').value;
        var lName = document.getElementById('txtLastName').value;
        var email = document.getElementById('txtEmail').value;
        var username = document.getElementById('txtUserName').value;
        var pass = document.getElementById('txtPassword').value;
        var gender = document.getElementById('rdbGenderMale').checked == true ? "Male" : "Female";
        var recieveUpdate = document.getElementById('chkRecieveUpdates').checked;
        
        SignService.SignUp(fName, lName, email, username, pass, recieveUpdate, gender, OnSignUpComplete);
        
        return;
    }

    function OnSignUpComplete(statusArg) {
        if (statusArg[0] == 'true') {
            SignUpSuccess();
        }
        else {
            SignUpFailed(statusArg[1]);    
        }
    }
    
    function UpdatePanelsSideMyZone() {
        if(typeof(MyZoneSidePanel) !== 'undefined')// update side my zone also
        {
            $find(MyZoneSidePanel).refresh(); 
        }
    }
    
    
    function SwitchBetweenDivs(divToNone, divToBlock)
    {
        if(divToNone != undefined && divToBlock != undefined)
        {
            document.getElementById(divToBlock).style.display = "block";
            document.getElementById(divToNone).style.display = "none";
        }
    }
    
    function UpdateForgotPassPanel()
    {
        $find(RenewPasswordPanel).refresh();
    }
    
    function ValidateRenewPassword(lostFocus, txtControl, lblControl) {
        var pass = document.getElementById(txtControl).value;
        
        if (pass == "") {
            passValid = false;
            document.getElementById(lblControl).className = "";
            document.getElementById('passEnter').style.display = lostFocus ? "none" : "block";
            document.getElementById('passValid').style.display = "none";
            document.getElementById('passInvalid').style.display = "none";
            document.getElementById('passSpacesInvalid').style.display = "none";
        }
        else {
         // Validate password;
            if(pass.indexOf(' ') > -1)
            {
                passValid = false;
                document.getElementById('lblPassword').className = "errorField";
                document.getElementById('passEnter').style.display = "none";
                document.getElementById('passValid').style.display = "none";
                document.getElementById('passInvalid').style.display = "none";
                document.getElementById('passSpacesInvalid').style.display = "block";
            }
            // Validate password
            else if (pass.length < 6) {
                passValid = false;
                document.getElementById(lblControl).className = "errorField";
                document.getElementById('passEnter').style.display = "none";
                document.getElementById('passValid').style.display = "none";
                document.getElementById('passInvalid').style.display = "block";
                document.getElementById('passSpacesInvalid').style.display = "none";
            }
            else {
                passValid = true;
                document.getElementById(lblControl).className = "";
                document.getElementById('passEnter').style.display = "none";
                document.getElementById('passValid').style.display = "block";
                document.getElementById('passInvalid').style.display = "none";
                document.getElementById('passSpacesInvalid').style.display = "none";
            }
        }
        
        document.getElementById('passMustSupplied').style.display = "none";
    }
    
     function CloseSignupPopup() {
        document.getElementById('signUpDiv').style.display = 'none';
        document.getElementById("GrayBackgroundDiv").style.display = "none";
        //reset all textboxs
        document.getElementById('txtFirstName').value = '';
        document.getElementById('txtLastName').value = '';
        document.getElementById('txtEmail').value = '';
        document.getElementById('txtUserName').value = '';
        document.getElementById('txtPassword').value = '';
        //reset first name messages
        document.getElementById("firstNameEnter").style.display = "none";
        document.getElementById("firstNameEnter").style.display = "none";
        document.getElementById("firstNameMinChar").style.display = "none";
        document.getElementById("firstNameValid").style.display = "none";
        document.getElementById("firstNameInvalid").style.display = "none";
        document.getElementById("firstNameOnlySpaces").style.display = "none";
        //reset last name messages
        document.getElementById("lastNameEnter").style.display = "none";
        document.getElementById("lastNameMinChar").style.display = "none";
        document.getElementById("lastNameValid").style.display = "none";
        document.getElementById("lastNameInvalid").style.display = "none";
        document.getElementById("lastNameOnlySpaces").style.display = "none";
        //reset emial messages
        document.getElementById("emailEnter").style.display = "none";
        document.getElementById("emailInvalid").style.display = "none";
        document.getElementById("emailValid").style.display = "none";
        document.getElementById("emailNotSupplied").style.display = "none";
        //reset user name messages
        document.getElementById("userEnter").style.display = "none";
        document.getElementById("userMinChars").style.display = "none";
        document.getElementById("userCheckingDiv").style.display = "none";
        document.getElementById("userAvailDiv").style.display = "none";
        document.getElementById("userTakenDiv").style.display = "none";
        document.getElementById("useMustChoose").style.display = "none";
        document.getElementById("userNotAllowedSign").style.display = "none";
        //reset password messages
        document.getElementById("passEnter").style.display = "none";
        document.getElementById("passValid").style.display = "none";
        document.getElementById("passInvalid").style.display = "none";
        document.getElementById("passSpacesInvalid").style.display = "none";
        document.getElementById("passMustSupplied").style.display = "none";
        document.getElementById("passwordNotAllowedSign").style.display = "none";
        //reset gender radio buttons to default
        document.getElementById("rdbGenderMale").checked = "checked";
        //reset all error labels
        document.getElementById('lblLastName').className = "";
        document.getElementById('lblFirstName').className = "";
        document.getElementById('lblEmail').className = "";
        document.getElementById('lblUserName').className = "";
        document.getElementById('lblPassword').className = "";
    }
    
    function ClearSigninError(){
        document.getElementById(lblErrorMsg).innerHTML = '';
    }
    
            
