﻿$(document).ready(function() {
    $("#signin-switch, #signup-switch").hover(function() {
        if ($(this).hasClass("active") == true) {
            return;
        } else {
            $(this).addClass("hover");
        }
    })
        .mouseout(function() { $(this).removeClass("hover"); })
    ;
    var speed = 200;

    $("#signin-switch").click(function() {
        $("#signup-form").fadeOut(speed);
        setTimeout("$('#login-form').fadeIn('+ speed +')", speed + 10);
        $("#signup-switch").removeClass("active");
        $('#signin-switch').removeClass("hover");
        $('#signin-switch').addClass('active');
    });
    $("#signup-switch").click(function() {
        $("#login-form").fadeOut(speed);
        setTimeout("$('#signup-form').fadeIn(' + speed + ')", speed + 10);
        $("#signin-switch").removeClass("active");
        $('#signup-switch').removeClass("hover");
        $('#signup-switch').addClass('active');
        $("#signup-submit").hover(function() {
            $(this).addClass("hover");
        })
            .mouseout(function() {
                $(this).removeClass("hover");
            })
        ;
    });
    $("#login-submit, #signup-submit").hover(function() {
        $(this).addClass("hover");
    })
        .mouseout(function() {
            $(this).removeClass("hover");
        })
    ;


});

var LoginForm = function() {
    
    var firstNameText;
    var lastNameText;
    var homePhoneText;
    var emailText;
    
    return {

        init: function() {

            usernameText = new Ext.form.TextField({
                allowBlank: false,
                emptyText: 'Email Address',
                renderTo: 'login-username'
            });
            passwordFake = new Ext.form.TextField({
                allowBlank: true,
                emptyText: 'Password',
                renderTo: 'login-fake-password'
            });
            passwordText = new Ext.form.TextField({
                allowBlank: false,
                inputType: 'password',
                renderTo: 'login-password'
            });

            firstNameText = new Ext.form.TextField({
                allowBlank: false,
                emptyText: 'First Name',
                renderTo: 'signup-first-name'
            });
            lastNameText = new Ext.form.TextField({
                allowBlank: false,
                emptyText: 'Last Name',
                renderTo: 'signup-last-name'
            });
            homePhoneText = new Ext.form.TextField({
                allowBlank: false,
                emptyText: 'Phone Number',
                renderTo: 'signup-phone-number'
            });
            emailText = new Ext.form.TextField({
                allowBlank: false,
                emptyText: 'Email Address',
                renderTo: 'signup-email'
            });

            $("#login-fake-password input").focus(function() {
                $("#login-fake-password").hide();
                $("#login-password").show();
                $("#login-password input").focus();
            });
            $("#login-password input").blur(function() {
                if ($(this).attr("value") == "") {
                    $("#login-password").hide();
                    $("#login-fake-password").show();
                    $("#login-fake-password input").addClass("x-form-invalid");

                }
            });

            /* Login submit button Enter and Click events */
            /*
            var nav = new Ext.KeyNav("login-form-fields", {
                "enter": function(e) {
                    LoginForm.submit();
                },
                scope: this
            });
            submitButton = Ext.get("login-submit");
            submitButton.on('click', LoginForm.submit);
            */
            /* Sign up submit button Enter and Click events */
            /*
            var nav = new Ext.KeyNav("signup-form-fields", {
                "enter": function(e) {
                    LoginForm.signUp();
                },
                scope: this
            });
            submitButton = Ext.get("signup-submit");
            submitButton.on('click', LoginForm.signUp);
            */
            
            /* Login submit button Enter event */
            var loginKey = new Ext.KeyNav("login-form-fields", {
                "enter": function(e) {
                    LoginForm.submit();
                },
                scope: this
            });
            

        },

        /* Login function */
        submit: function(myButton, e) {

            function loginSuccess(result) {
                var data = Ext.decode(result.responseText);
                if (data.success) {
                    window.location = location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/member/Default.aspx";
                }
                else {
                    alert(data.message);
                }
            }

            Ext.Ajax.request({
                url: 'MainData.aspx',
                success: loginSuccess,
                params: { method: 'Login', username: usernameText.getValue(), password: passwordText.getValue() }
            });

        },
        
        /* Sign Up submit function */
        signUp: function(myButton, e) {
            
            if(firstNameText.getValue() == "" || lastNameText.getValue() == "" || homePhoneText.getValue() == "" || emailText.getValue() == ""){
                alert("All fields are required.");
                return;
            }
            Ext.Ajax.request({
                url: 'MainData.aspx',
                success: function(result) {
                    var data = Ext.decode(result.responseText);
                    if (data.success) {
                        window.location = location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/o/co/1/Trial.aspx";
                    }
                    else {
                        alert(data.message);
                    }
                },
                params: { method: 'SignUp', firstName: firstNameText.getValue(), lastName: lastNameText.getValue(), phone: homePhoneText.getValue(), email: emailText.getValue() }
            });
        
        }

    }
} ();
Ext.onReady(LoginForm.init);