function flash(block_id) {
  $(block_id).stop(true, true);
  setTimeout("$('" + block_id + "').slideUp(function() {" +
    "$(this).remove();" +
  "})", 5000);
  $(block_id).click(function() {
    $(this).hide();
  })
};

function bigpicture() {
  $(".wrapper_product .image a, .wrapper_for_two_column .image a, .wrapper_for_three_column .image a").bigPicture({
    'prevLabel': 'пред.',
    'nextLabel': 'след.',
    'hideLabel': 'закрыть'
  });
};

function manager_toggle_contacts() {
  $(".order .user .contact_info_toggler a").click(function(event) {
    event.preventDefault();
    $(".order .contact_info").slideToggle("fast");
  });
};

function add_to_card() {
  $(".new_cart_item").live("submit", function(event) {
    event.preventDefault();
    var form = $(this);
    $("input[type=submit]", form).attr("disabled", "disabled");
    $.ajax({
      url: form.attr("action"),
      type: "POST",
      data: form.serialize(),
      success: function(data) {
        $("<div id='ajax_temporary'></div>").appendTo("body").hide().html(data);
        $("#ajax_temporary #flash").prependTo("body");
        flash("#flash");
        $("#base_wrapper #my_cart").html($("#ajax_temporary #my_cart").html());
        $(form).closest(".offer-wrapper").html($("#ajax_temporary .offer-wrapper").html());
        $("#ajax_temporary").remove();
      }
    });
  });
};

function update_note(){
  var form = $('.user_note_form');
  var url = form.attr('action');

  form.submit(function() {
    var data = form.serialize();
    $.post(url, data);
    return false;
  });
}

function favorites_link() {
  $('.favorite_link').live("click", function() {
    if ($(this).attr("disable") == "disable") return false;
    var link = $(this);
    var parent = link.parent(".favorite_wrapper");
    link.attr("disabled", "disabled");
    $.ajax({
      type: "POST",
      url: $(link).attr("href"),
      success: function(data) {
        $("body #flash").remove();
        $("<div id='ajax_temporary'></div>").appendTo("body").html(data);
        $("body").prepend($("#ajax_temporary #flash"));
        flash("#flash");
        $(link).closest(".favorite_wrapper").html($("#ajax_temporary .favorite_wrapper").html());
        $("#ajax_temporary").remove();
      }
    });
    return false;
  });
};

function edit_product_tags() {
  $(".tag_cloud .my_tags_link").live("click", function(event) {
    event.preventDefault();
    var link = $(this);
    $.ajax({
      url: $(link).attr("href"),
      success: function(data) {
        $("<div id='product-tags-modal-dialog'></div>").appendTo("body").hide().html(data);
        $("#product-tags-modal-dialog").dialog({
          title: "Мои метки",
          width: 500,
          modal: true,
          resizable: false,
          close: function() {
            $(this).remove();
          }
        });
      }
    });
  });
  $("#product-tags-modal-dialog form").live("submit", function(event) {
    event.preventDefault();
    var form = $(this);
    $.ajax({
      type: "POST",
      url: $(form).attr("action"),
      data: $(form).serialize(),
      success: function(data) {
        $("<div id='ajax_temporary'></div>").appendTo("body").hide().html(data);
        $("#main .tag_cloud").html($("#ajax_temporary .tag_cloud").html());
        $("#product-tags-modal-dialog").dialog("destroy").remove();
        $("#ajax_temporary").remove();
      }
    });
  });
};

function select_sort_filter(){
  $(".price_sort_link, .author_sort_link, .edition_sort_link").click(function(){
    var arrow = $(this).children(".arrow");
    var prefix = $(this).attr("class").replace("_sort_link", "");
    if (arrow.hasClass("up"))
    {
      arrow.html("&darr;").removeClass("up");
      $(this).closest("li .hidden_inputs input").val("");
      $(this).closest("li .hidden_inputs #" + prefix +"_sort_asc").val("true");

    } else {
      arrow.html("&uarr;").addClass("up");
      $(this).closest("li .hidden_inputs input").val("");
      $(this).closest("li .hidden_inputs #" + prefix +"_sort_desc").val("true");
    };
    return false;
  });
};

$(function() {
  $(".top_line").prependTo("body");
  $.ajaxIndicator();
  $(".focus_first").focus();
  flash("#flash");
  bigpicture();
  manager_toggle_contacts();
  add_to_card();
  update_note();
  favorites_link();
  edit_product_tags();
  select_sort_filter();
});


