var dialogue_title;
var script_depth;
var wide;
var high;
var cloned;
var loggedin;
var url = "about:blank";
var controls = new Array();
var toExecute = new Array;

function SetVars(title, depth) {
    dialogue_title = title;
    script_depth = depth + "_ui/js/";
}

/* Fade Toggler */
jQuery.fn.fadeToggle = function(speed, easing, callback) {
    return this.animate({ opacity: 'toggle' }, speed, easing, callback);
};

var Site = {
    Common: {

        init: function(e) {
            $j('body').removeClass('nojs').addClass('js');

            pgInitialized = true;
        }
    }
};



var dr = $j(document).ready(function() {

    Site.Common.init();

    $j("#reg").click(function() {

    });

    $j("#dialog-login").attr('title', dialogue_title);


    // login specific items.
    var emailaddr = $j("#emailaddr"),
		password = $j("#password"),
		req_emailaddr = $j("#req_emailaddr"),
		req_password = $j("#req_password"),
		msgLogin = $j("#msgLogin"),
		msgLoginError = $j("#msgLoginError"),
		msgThankYou = $j("#msgThankYou"),
		form_login = $j('#form_login'),
		lo_req_message = $j("#lo_req_message"),
		lo_processing_login = $j("#lo_processing_login"),
		lo_processing_add = $j("#lo_processing_add"),
		lo_errorMessage = $j("#lo_errorMessage"),
		form_forgotpassword = $j("#form_forgotpassword"),
		lo_msg_forgotpassword = $j("#lo_msg_forgotpassword"),
		fp_emailaddr = $j("#fp_emailaddr"),
		req_fp_emailaddr = $j("#req_fp_emailaddr"),
		lo_processing_forgot_password = $j("#lo_processing_forgot_password"),
		lo_fp_success = $j("#lo_fp_success"),
		lo_fp_errorMessage = $j("#lo_fp_errorMessage"),
		lo_login_links = $j("#lo_login_links"),
		lo_fp_links = $j("#lo_fp_links"),
		form_continue = $j("#form_continue"),
    input_container_container = $j("#input_container_container");

    // login item collections.
    var allloginDialogItems = $j([]).add(emailaddr).add(password).add(msgLogin).add(msgLoginError).add(msgThankYou).add(form_login),
	    allloginHideThankYou = $j([]).add(msgLogin).add(msgLoginError).add(form_login),
	    lo_reqFields = $j([]).add(req_emailaddr).add(req_password).add(lo_req_message),
	    lo_login_form_items = $j([]).add(form_login).add(msgLogin),
	    lo_fp_form_items = $j([]).add(form_forgotpassword).add(lo_msg_forgotpassword),
	    allThankYouItems = $j([]).add(msgThankYou);

    function BindControl(element) {
        $j(element).keypress(function(e) {
            if (e.which == 13) {
                return false;
            }

        })
    }

    function updateTips(t) {
        //$j(tips.text(t)).effect("highlight",{},1500);
    }



    function checkLength(o, n, asterisk, min, max) {

        if (o.val().length > max || o.val().length < min) {
            asterisk.show();
            //o.addClass('ui-state-error');
            //updateTips("Length of " + n + " must be between "+min+" and "+max+".");
            ////alert("Length of " + n + " must be between "+min+" and "+max+".");
            return false;
        } else {
            return true;
        }

    }


    function checkRegexp(o, asterisk, regexp, n) {

        if (!(regexp.test(o.val()))) {
            asterisk.show();
            valid_email_message.show();
            return false;
        } else {
            return true;
        }

    }



    // When the login is opened, we must handle some of the options
    $j('#dialog-login').bind('dialogopen', function(event, ui) {
        msgLogin.hide();
        lo_fp_form_items.hide();
        lo_errorMessage.hide();
        lo_reqFields.hide();
        lo_fp_success.hide();
        lo_login_links.hide();
        lo_fp_links.hide();
        lo_processing_forgot_password.hide();
        form_continue.hide();


        // If the user is logged in, then simply add the item to the login
        if (currentConsumerId.length > 0) {
        }
        else {
            cloned = false;
            // Show the login form, hide other messages.
            setUpLoginForm();

        }
    });

    $j("#dialog-login").dialog({
        bgiframe: true,
        autoOpen: false,
        autoResize: true,
        modal: true,
        resizable: false,
        closeText: 'x',
        height: 245,
        width: 260
    });




    function setUpLoginForm() {
        msgThankYou.hide();
        msgLoginError.hide();
        lo_login_links.show();
        lo_fp_links.hide();
        form_login.show();
        $j("#dialog-login").parent().css({ 'background-color': 'white' });

        $j('#dialog-login').dialog('option', 'buttons',
                    {
                        'Login': function() {
                            msgLoginError.hide();
                            lo_reqFields.hide();
                            var bValid = true;
                            bValid = checkLength(emailaddr, "Email Address", req_emailaddr, 1, 80) && bValid;
                            bValid = checkLength(password, "Password", req_password, 1, 80) && bValid;

                            if (bValid) {
                                msgLogin.hide();
                                form_login.hide();
                                lo_processing_login.show();
                                lo_login_links.hide();
                                var webMethod = script_depth + 'FJLogin.asp';
                                ////alert(emailaddr.val() + " " + password.val());
                                $j.ajax({
                                    type: "POST",
                                    url: webMethod,
                                    data: { "emailaddr": "'" + emailaddr.val() + "'", "password": "'" + password.val() + "'" },
                                    contentType: "application/x-www-form-urlencoded",
                                    //dataType: "xml",
                                    success: function(xml) {
                                        lo_processing_login.hide();
                                        $j(xml).find("Consumer").each(function() {
                                            var consumer = $j(this);
                                            // Was it valid?
                                            if ($j("loginvalid", consumer).text() == "true") {
                                                // Set the local variables with session info.
                                                currentConsumerId = $j("id", consumer).text();
                                                loggedin = true;
                                                // Show the proper messaging and set appropriate variables.

                                                if (toExecute.length > 0) {
                                                    for (var i = 0; i < toExecute.length; i++) {
                                                        eval(toExecute[i]);
                                                    }
                                                }

                                            } else {
                                                // Show the "login failed" message.
                                                //alert("f");
                                                msgLogin.show();
                                                form_login.show();
                                                msgLoginError.show();
                                                lo_login_links.show();
                                            }
                                        });

                                        /* jQuery("/Consumer/", xml).each(function(){
                                        //alert($j("id", this).text());
                                        });*/
                                    },
                                    error: function(e) {
                                        lo_processing_login.hide();
                                        lo_errorMessage.show();
                                        lo_login_links.show();
                                        //alert("Error");
                                    }
                                });
                            }
                            else {
                                //alert("P");
                                lo_req_message.show();
                            }

                        }, Cancel: function() {
                            emailaddr.val('');
                            password.val('');
                            $j(this).dialog('close');
                        }
                    });
    }





    $j('#lo_login_link').click(function() {
        lo_fp_form_items.hide();
        lo_errorMessage.hide();
        lo_reqFields.hide();
        form_login.hide();
        lo_fp_success.hide();
        lo_login_links.hide();
        lo_fp_links.hide();
        setUpLoginForm();
        return false;
    });

    $j('#lo_forgot_password_link').click(function() {
        lo_login_form_items.hide();
        lo_msg_forgotpassword.show();
        form_forgotpassword.show();
        lo_login_links.hide();
        msgLoginError.hide();
        $j('#dialog-login').dialog('option', 'buttons',
                    {
                        'Email My Password': function() {
                            lo_reqFields.hide();
                            var bValid = true;
                            bValid = checkLength(fp_emailaddr, "Email Address", req_fp_emailaddr, 1, 80) && bValid;

                            if (bValid) {
                                lo_msg_forgotpassword.hide();
                                form_forgotpassword.hide();
                                lo_processing_forgot_password.show();
                                var webMethod = script_depth + 'FJPass.asp';
                                $j.ajax({
                                    type: "POST",
                                    url: webMethod,
                                    data: { "emailaddr": "'" + fp_emailaddr.val() + "'" },
                                    contentType: "application/x-www-form-urlencoded",
                                    //dataType: "xml",
                                    success: function(xml) {
                                        lo_processing_forgot_password.hide();
                                        $j(xml).find("ForgotPassword").each(function() {
                                        var fp = $j(this);
                                            
                                            var fp_success = $j("success", fp).text();
                                            var fp_message = $j("message", fp).text();
                                            lo_fp_success.text(fp_message);
                                            lo_fp_success.show();
                                            if (fp_success = "true") {
                                                // If success is true, the password has been mailed...show close button and link to login form
                                                if (fp_message != "The username you entered is not valid or your account has been deactivated. Please try again.") {
                                                lo_fp_links.show();
                                                    lo_login_links.show();
                                                    $j('#lo_login_link').click();
                                                }
                                                else {
                                                    form_forgotpassword.show();
                                                }
                                            } else {
                                                // If false, the password has not been mailed...show close button and link to FP form
                                                lo_login_links.show();
                                            }
                                            $j('#dialog-login').dialog('dialogopen'); //'option', 'buttons',
                                            //  { 'Close': function() { $j(this).dialog('close'); } });
                                            lo_fp_success.text(fp_message);
                                            lo_fp_success.show();
                                        });

                                    },
                                    error: function(e) {
                                        lo_fp_links.hide();
                                        lo_login_links.hide();
                                        lo_processing_forgot_password.hide();
                                        msgLoginError.show();
                                    }
                                });
                            }
                            else {
                                lo_req_message.show();
                            }

                        }, Cancel: function() {
                            $j(this).dialog('close');
                        }
                    });


        return false;

    });




    $j('#login').click(function() {
        $j('#dialog-login').dialog('open');
    })
	    .hover(
		    function() {
		        $j(this).addClass("ui-state-hover");
		    },
		    function() {
		        $j(this).removeClass("ui-state-hover");
		    }
	    ).mousedown(function() {
	        $j(this).addClass("ui-state-active");
	    })
	    .mouseup(function() {
	        $j(this).removeClass("ui-state-active");
	    });

});
