$(document).ready(function(){
    $.fn.inArray = function(what, where) {
        for (var i = 0; i < where.length; i++) {
            if (what == where[i]) {
                return true;
            }
        }
        return false;
    }

    /**
     * Multiple actions functioonality
     */
    $("input#selectAll").click( function() {
        if ($(this).attr("checked")) {
            $("form[name='" + $(this).attr('rel') + "'] input[type='checkbox']").attr('checked', true);
            $("form[name='" + $(this).attr('rel') + "'] input[type='checkbox']").parent().parent().find("td").addClass("colorSelected");
        } else {
            $("form[name='" + $(this).attr('rel') + "'] input[type='checkbox']").each(function(){
                $(this).attr('checked', false);
                var className = $(this).parent().parent().attr("class");
                $(this).parent().parent().find("td").removeClass();
                $(this).parent().parent().find("td").addClass(className);
            });
        }
    });
    $("a#selectAllLink").click( function() {
        $("form[name='" + $(this).attr('rel') + "'] input[type='checkbox']").attr('checked', true);
        return false;
    });
    $("a#deselectAllLink").click( function() {
        $("form[name='" + $(this).attr('rel') + "'] input[type='checkbox']").attr('checked', false);
        return false;
    });

    $("#activateSelectedAccountsDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 150,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                $(this).dialog('close');
            },
            'Yes': function() {
                $("form[name='escortsForm']").submit();
            }
        }
    });
    $("a[href='#activateSelectedAccounts']").click( function() {
        $("input[name='action']").val("activateSelectedAccounts");
        $("#activateSelectedAccountsDialog").dialog('open');
        return false;
    });
    
    $("#deactivateSelectedAccountsDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 150,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                $(this).dialog('close');
            },
            'Yes': function() {
                $("form[name='escortsForm']").submit();
            }
        }
    });
    $("a[href='#deactivateSelectedAccounts']").click( function() {
        $("input[name='action']").val("deactivateSelectedAccounts");
        $("#deactivateSelectedAccountsDialog").dialog('open');
        return false;
    });

    $("#setGalarySelectedAccountsDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 150,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                $(this).dialog('close');
            },
            'Yes': function() {
                $("form[name='escortsForm']").submit();
            }
        }
    });
    $("a[href='#setGalarySelectedAccounts']").click( function() {
        $("input[name='action']").val("setGalarySelectedAccounts");
        $("#setGalarySelectedAccountsDialog").dialog('open');
        return false;
    });

    $("#unsetGalarySelectedAccountsDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 150,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                $(this).dialog('close');
            },
            'Yes': function() {
                $("form[name='escortsForm']").submit();
            }
        }
    });
    $("a[href='#unsetGalarySelectedAccounts']").click( function() {
        $("input[name='action']").val("unsetGalarySelectedAccounts");
        $("#unsetGalarySelectedAccountsDialog").dialog('open');
        return false;
    });

    $("#setPremierSelectedAccountsDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 150,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                $(this).dialog('close');
            },
            'Yes': function() {
                $("form[name='escortsForm']").submit();
            }
        }
    });
    $("a[href='#setPremierSelectedAccounts']").click( function() {
        $("input[name='action']").val("setPremierSelectedAccounts");
        $("#setPremierSelectedAccountsDialog").dialog('open');
        return false;
    });

    $("#unsetPremierSelectedAccountsDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 150,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                $(this).dialog('close');
            },
            'Yes': function() {
                $("form[name='escortsForm']").submit();
            }
        }
    });
    $("a[href='#unsetPremierSelectedAccounts']").click( function() {
        $("input[name='action']").val("unsetPremierSelectedAccounts");
        $("#unsetPremierSelectedAccountsDialog").dialog('open');
        return false;
    });
    
    $("#deleteSelectedAccountsDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 150,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                $(this).dialog('close');
            },
            'Yes': function() {
                $("form[name='escortsForm']").submit();
            }
        }
    });
    $("a[href='#deleteSelectedAccounts']").click( function() {
        $("input[name='action']").val("deleteSelectedAccounts");
        $("#deleteSelectedAccountsDialog").dialog('open');
        return false;
    });

    $("form.groupSelectiveForm table tbody tr").hover(
        function() {
            $(this).find("td").removeClass();
            $(this).find("td").addClass("colorActive")
        }, function() {
            if ($(this).find("td input[type='checkbox']").attr('checked')) {
                $(this).find("td").removeClass();
                $(this).find("td").addClass("colorSelected");
            } else {
                var className = $(this).attr("class");
                $(this).find("td").removeClass();
                $(this).find("td").addClass(className);
            }
        }
    );
    $("form.groupSelectiveForm table tbody tr td input[type='checkbox']").change(function() {
        if ($(this).attr('checked')) {
            $(this).parent().parent().find("td").removeClass();
            $(this).parent().parent().find("td").addClass("colorSelected");
        } else {
            var className = $(this).parent().parent().attr("class");
            $(this).parent().parent().find("td").removeClass();
            $(this).parent().parent().find("td").addClass(className)
        }
    });

    /**
     * After field checkbox
     */
    $("input[class='afterFieldCheckBox']").change(function(){
        if ($(this).attr("checked")) {
            $(this).prev().removeAttr("disabled");
            $(this).prev().css('background-color', "#FFFFFF");
        } else {
            $(this).prev().val("");
            $(this).prev().attr("disabled", true);
            $(this).prev().css('background-color', "#FFCCCC");
        }
    });
    $("input[class='afterFieldCheckBox']").change();

    $("a#forgotLoginDetails").click(function() {
        $("div#loginFormTitle").html("Login details recovering");
        $("div#loginContainer > div:eq(0)").html("E-mail:");
        $("div#passwordContainer").remove();
        $("div#forgotLoginLinkContainer").remove();

        //$("div#accountFormContainer").remove();
        $("div#accountFormContainer> div:eq(0)").html("Account form:");

        $("input#loginSubmitBtn").attr('value', "Send new password");
        $("input[name='login']").attr('name', "email");
        $("form[name='loginForm']").attr('action', "passwordRecover");
        return false;
    });

    /**
     * J-functionality
     */
    $.fn.tagName = function() {
        return this.get(0).tagName;
    }


    $.fn.parentForm = function() {
        var object = this;
        while (object.tagName().toLowerCase() != "form") {
            object = object.parent();
        }

        return object;
    }

    var jForm = null;

    $("div.jDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 300,
        height: 160,
        modal: true,
        draggable: false,
        resizable: false,
        buttons: {
            'No': function() {
                var actionElement = jForm.find("input[name='action']");
                var oldAction = actionElement.attr("alt");
                if (oldAction) {
                    actionElement.val(oldAction);
                }
                $(this).dialog('close');
            },
            'Yes': function() {
                jForm.submit();
            }
        }
    });
    $(".jAction").click(function() {
        jForm = $(this).parentForm();
        jForm.find("input[name='action']").val($(this).attr("href"));
        jForm.find("input[id='jId']").val($(this).attr("rel"));
        jForm.submit();

        return false;
    });
    $("a.jDialogAction").click(function() {
        jForm = $(this).parentForm();
        jForm.find("input[name='action']").val($(this).attr("href"));
        
        var jIdField = jForm.find("input[id='jId']");
        if (jIdField.attr('id') != "jId") {
            jIdField = jForm.find("input.jId");
        }
        
        jIdField.val($(this).attr("rel"));
        $("#" + $(this).attr("href") + "Dialog").dialog('open');

        return false;
    });
    $("div.jPagenation form a").click(function() {
        form = $(this).getForm();
        page = $(this).attr("href");
        form.find("input[name=page]").val(page);
        form.submit();
        return false;
    });
    $(".jActionMod").click(function() {
        jForm = $(this).parentForm();
        jForm.find("input[name='action']").val($(this).attr("href"));
        jForm.find("input.jId").val($(this).attr("rel"));
        jForm.submit();

        return false;
    });
    
    $("input.dateField").datepicker({
        dateFormat: 'yy-mm-dd'
    });
});

function onSearchSelectChange() {
    this.parentNode.getElementsByTagName('LABEL')[0].innerHTML = this.options[this.selectedIndex].innerHTML;
}
