var ajax_sent = false;
var common_validator;
var current_form;

$(document).ready(function()
{
    dialog_form =
    { 
        width: 500,
        height: 180,
        resizable: false,
        draggable: false,
        position: "center",
        modal: true, 
        buttons: { "Ok": function() { $(this).dialog("close"); } }
    }

    common_options = { 
            clearForm : false,
            //type: 'POST',     
            dataType : 'json',                 
            success: function (data, status)
            {
                var value = eval(data);
                submitBtnEnabled(true);
                //alert(value.msg);
                if (value.result) 
                {
                    if (value.url != '')
                    {
                        window.location = value.url;
                    } else
                    {
                        show_message(value.result, value.msg);
                        if (current_form.attr("is_deleted")) current_form.remove();
                        if (current_form.attr("is_deleted_parent")) current_form.parent().remove();
                        if (current_form.attr("is_deleted_parent_parent")) {
                                current_form.parent().parent().remove();
                                $('#span_approved_by').html($('#cur_name').val());
                        }
                        if (is_opened_dialog) opened_dialog.dialog('close');
                        is_opened_dialog = false;
                    }
                } else 
                {
                    show_message(value.result, value.msg);
                }
                $('#next').removeClass('ui-state-disabled');
                $('#next').removeAttr('disabled');
                $('#back').removeClass('ui-state-disabled');
                $('#back').removeAttr('disabled');
                current_form = null;
            },
            notsuccess: errorAjax
    }

    common_validator = {
        submitHandler: function(form) 
        {
            if (!ajax_sent)
            {
                submitBtnEnabled(false);
                current_form = $(form);
                if ($(form).attr("not_ajax_form") == 'true')
                    $('#'+$(form).attr('id'))[0].submit();
                else
                    $(form).ajaxSubmit(common_options);
            }
        },
        focusInvalid: false,
        focusCleanup: true,
        errorPlacement: function(error, element) {},
        highlight: function(element, errorClass)
        {
            var div_id = "#" + element.name + "_er";
            $(div_id).removeClass("noerror");
            $(div_id).addClass("myerror");
            $(element).addClass("input_myerror");
        },
        unhighlight: function(element, errorClass)
        {
            var div_id = "#" + element.name + "_er";
            $(div_id).removeClass("myerror");
            $(div_id).addClass("noerror");
            $(element).removeClass("input_myerror");
        }
    }

    comment_dialog_form = new cloneObject(dialog_form);
    comment_dialog_form.closeOnEscape = false;
    comment_dialog_form.open = function(event, ui) { $(this).parent().children().children('.ui-dialog-titlebar-close').hide(); }
    $('#btnCancel').click(function(){
        $('#commentForm').dialog("close");
    });

    comment_dialog_form.buttons =
    { 
        "Ok": function() { 
                    $(this).dialog("close");
                    if (hideForm)
                    {
                        $('#commentForm').dialog('close');
                        $("#comment_text").attr('value', '');
                        if (!$("#comment_email").hasClass('readonly_back'))
                        {
                            $("#comment_email").attr('value', '');
                            $("#comment_name").attr('value', '');
                        }
                    }
              }
    };

    var comment_options = new cloneObject(common_options);
    comment_options.success = function (data, status)
    {
        submitBtnEnabled(true);
        var value = eval(data);
        if (value.result)
            hideForm = true;
        else
            hideForm = false;
        $("#comment_output").html(value.msg);
        $("#comment_output").dialog(comment_dialog_form);
        $("#comment_output").dialog("open");
    };

    var comment_validator = new cloneObject(common_validator);
    comment_validator.submitHandler = function(form) 
    {
        if (!ajax_sent)
        {
            submitBtnEnabled(false);
            
            $(form).ajaxSubmit(comment_options);
        }
    };
    comment_validator.rules =
    {
        comment_name:
        {
            //required: true,
            minlength: 1,
            maxlength: 50
        },
        comment_email:
        {
                required: true,
                minlength: 5,
                maxlength: 100,
                email: true
        },
        message_body:
        {
            required: true,
            maxlength: 2000
        }
    };

    $("#commentForm").validate(comment_validator);

    $(".mycheckbox").click(function()
    {
        if ($('#my_'+$(this).attr('id')).attr('value') == 't')
            $('#my_'+$(this).attr('id')).attr('value','f');
        else
            $('#my_'+$(this).attr('id')).attr('value','t');
    });
});

function submitBtnEnabled(enabled)
{
    ajax_sent = !enabled;
    if (enabled) {
        $(".submitbtn").each(function(){
            $(this).css("background-color", $(this).attr('bck'));
            $(this).attr("disabled", $(this).hasClass('disabled_i'));
        });
    } else {
        $(".submitbtn").each(function(){
            $(this).attr('bck', $(this).css('background-color'));
            $(this).css("background-color", "#C0C0C0");
            $(".submitbtn").attr("disabled", true);
        });
    }
}

function errorAjax(status,msg)
{
    submitBtnEnabled(true);
    if (status=="parsererror")
    {
        show_message(false, $("#err_data").html());
    }
    if (status=="error")
    {
        show_message(false, $("#err_server").html());
    }
    $('#next').removeClass('ui-state-disabled');
    $('#next').removeAttr('disabled');
    $('#back').removeClass('ui-state-disabled');
    $('#back').removeAttr('disabled');
    if (cur_step_form != null) {
        cur_step_form.find('.img_loading').hide();
        cur_step_form.find('.button_save').show();
    }
    current_form = null;
}

function cloneObject(obj)
{
    if(obj == null || typeof(obj) != 'object')
        return obj;

    var temp = obj.constructor(); // changed

    for(var key in obj)
        temp[key] = cloneObject(obj[key]);
    return temp;
}

function show_message(result, msg)
{
    if (result)
    {
        $('#message_board').removeClass('error');
        $('#message_board').addClass('notice');
    } else
    {
        $('#message_board').removeClass('notice');
        $('#message_board').addClass('error');
    }
    $('#message_board').html(msg);
    $('#message_board').addClass('fixed_message');
    //$('#message_board').show();
    $('#message_board').fadeIn(2000);
    window.setTimeout("$('#message_board').fadeOut(2000, function(){$('#message_board').removeClass('fixed_message')}); $('#message_board').addClass('fixed_message');", 10000);
}
