$(function() {
    $("li.child div.menu2").each(function() {
        $(this).prepend('<div class="shadow-top"><span></span></div><div class="shadow-middle"><span></span></div>').append('<div class="shadow-bottom"><span></span></div>');
        $(this).find("div.shadow-top, div.shadow-middle, div.shadow-bottom").css({opacity: 0.3});
        $(this).find("ul li:last").addClass("last");
    });

    $("#logo").attr("alt", "");

    $(".menu li.item1").mouseenter(function() {
        var $li = $(this);
        $li.data("show", true);
        $("div.menu2").hide();
        $li.find("div.menu2").show();
        var height = $li.find("ul").height() + 1;
        $li.find("div.shadow-middle").css({height: height});
    }).mouseleave(function() {
        var $li = $(this);
        $li.data("show", false);
        window.setTimeout(function() {
            if ( ! $li.data("show")) {
                $li.find("div.menu2").hide();
            }
        }, 1000);
    });

    $(document.body).click(function() {
        $(".menu li.item1 div.menu2").hide();
    });


    $("form[name=auth]").submit(function() {
        var $form = $(this);
        $.ajax({
            url: $form.attr("action"),
            type: $form.attr("method"),
            data: $form.serialize(),
            success: function(data) {
                window.location.href = './?login';
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.responseText);
            }
        });
        return false;
    });
    $("a.logout").click(function() {
        var $a = $(this);
        $.ajax({
            url: $a.attr("href"),
            type: 'post',
            data: {},
            success: function(data) {
                window.location.href = './?logout';
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.responseText);
            }
        });
        return false;
    });
    $("a.logout_other").click(function() {
        var $a = $(this);
        $.ajax({
            url: $a.attr("href"),
            type: 'post',
            data: {},
            success: function(data) {
                $a.parent("p").slideUp();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.responseText);
            }
        });
        return false;
    });

    $("form.form").submit(function() {

    });
    $("form.form input[type=reset]").click(function() {
        window.location.href = ($("a.back").length > 0 ? $("a.back").attr("href") : "./");
        return false;
    });
    $("form.form input.delete").click(function() {
        if (confirm('Удалить запись?')) {
            $(this.form.elements['mode']).val("delete");
            $(this.form).submit();
        }
    });
    $("form.form input.undelete").click(function() {
        if (confirm('Восстановить удаленную запись?')) {
            $(this.form.elements['mode']).val("undelete");
            $(this.form).submit();
        }
    });
    $("form.form input:visible, form.form textarea").eq(0).focus();
    $("form.form a.category_list").click(function() {
        $(this).parent().next("div.category_list").slideToggle();
        return false;
    });
    $("img.set_pass").click(function() {
        $(this).prev("input").val($.password(8));
        return false;
    });
    $("a.show_form").click(function() {
        var is_visible = $(this).parent("p").next("form").is(":visible");
        $("form.iform").slideUp();
        if (! is_visible) {
            $(this).parent("p").next("form").slideDown(function() {
                $(this).find("input:visible").eq(0).focus();
            });
        }
        return false;
    });
    $("a.close_form").click(function() {
        $("form.iform").slideUp();
        return false;
    });
});

$.extend({
  password: function (length, special) {
    var iteration = 0;
    var password = "";
    var randomNumber;
    if(special == undefined){
        var special = false;
    }
    while(iteration < length){
        randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;
        if(!special){
            if ((randomNumber >=33) && (randomNumber <=47)) { continue; }
            if ((randomNumber >=58) && (randomNumber <=64)) { continue; }
            if ((randomNumber >=91) && (randomNumber <=96)) { continue; }
            if ((randomNumber >=123) && (randomNumber <=126)) { continue; }
        }
        iteration++;
        password += String.fromCharCode(randomNumber);
    }
    return password;
  }
});
