if ($.browser.mozilla && typeof window.loadFirebugConsole !== "undefined")
 {
    window.loadFirebugConsole();
}

var Application = {
    authenticityToken: function() {
        return $('#authenticity-token').html();

    },

    authenticityTokenParameter: function() {
        return 'authenticity_token=' + encodeURIComponent(Application.authenticityToken());
    }
}

// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
$(document).ready(function() {
    var original_width = 466.0;
    var original_height = 528.0;

    $("a.addToCartSubmit").live("click",function() {
      $(this).closest("form").submit();
      return false;
    });
    $('#flash').fadeOut(5000);
    $('div#mainPhoto a').bind("click",
    function() {
        return false;
    });

    $.each($('.packshot'), function(index, packshot) {

      var img = $('img.visual', packshot);
      var img_hover_url = $(packshot).attr("data-hover");
      if((img_hover_url.length > 0)){
        var img_original_url = $(img).attr("src")
        preload_call = 'preload("'+img_hover_url+'");';
        setTimeout(preload_call, (index*100) );
        $(img).hover(function() {
          img.attr("src", img_hover_url);
        }, function() {
          img.attr("src", img_original_url);
        });
      }
    });

    $('img.moozoom').draggable({
        containment: $('#container'),
        scroll: false
    });

    $('a#zoomin').click(function() {
     zoom(900) ;
     return false;
    });
    $('a#zoomout').click(function() {
     zoom(original_width) ;
     return false;
    });

    $('#productPhotos span a').click(function() {
      
      $('a.cloud-zoom').attr("href", $(this).attr("href"));
      $('a.cloud-zoom img').attr("src", $(this).attr("href"));
      $('.cloud-zoom').CloudZoom();
      return false;
    });


    function zoom(width) {
        original_width = $('#productPhoto').width();
        original_height = $('#productPhoto').height();
        if (width==original_width) {
          height = original_height;
        }else{
          height = (width / original_width) * original_height;
        };
        img_left= -(width-original_width)/2;
        img_top= -(height-original_height)/2;
        
        

        var right_margin = -(width - original_width);
        var width_container = (2 * width - original_width)

        var height_margin = -(height - original_height);
        var height_container = (2 * height - original_height)


        $('#container').css({
            'width': +width_container + 'px',
            'height': +height_container + 'px',
            'margin-left': right_margin + 'px',
            'margin-top': height_margin + 'px'
        });

        $('img.moozoom').animate({
            'width': width + "px",
            'height': height + "px",
            'left': img_left + 'px',
            'top': img_top + 'px'
        },1500,"swing");

    }

    $('div.push').hover(function() {
      $('.description', this).animate(
        {
          color:"#000"
        }
      ,300,"swing");

      $('img', this).css("border", "1px solid #aaa");

    },function() {
      $('.description', this).animate(
        {
          color:"#aaa"
        }
      ,300,"swing");

      $('img', this).css("border", "1px solid #fff");

    });

    /* Geston du tooltip */


    var auto_hide_tooltip = true;

    $('img.tooltip').bind("click",
    function() {
        if (auto_hide_tooltip) {
            $('#area1tooltip').hide();
        }
    });

    $('#area1tooltip').bind("click",
    function() {
        auto_hide_tooltip = true;
    });

    $('div#area1tooltip').bind("click",
    function() {
        auto_hide_tooltip = false;
        //$(element).hover(function() { //Mouseover }, function(){ //Mouseout})
        $('#area1tooltip').hide();

    });

    $("#close").bind("click",
    function() {
        $('#area1tooltip').hide();
        return false;
    });

    // $('area').bind("mouseenter",function() {
    //
    //       var coords = $(this).attr('coords').split(',');
    //       var tooltip2 = $('#area1tooltip2');
    //        tooltip2.css("left",(parseFloat(coords[0])-2)+"px")
    //        tooltip2.css("top",(parseFloat(coords[1])-2)+"px")
    //
    //       tooltip2.show();
    //
    //     }
    //     );

    $('img.tooltip').bind("click",
    function() {


      //  var coords = $(this).attr('coords').split(',');
        var tooltip = $('#area1tooltip');
        // tooltip.css("left",(10+parseFloat(coords[0]))+"px")
        // tooltip.css("top",(10+parseFloat(coords[1]))+"px")
        var material_id = $(this).attr("alt")
        $('#area1tooltip').html("<div class='notAvailable'>Chargement...</div>");




        $.ajax({
            type: "POST",
            data: Application.authenticityTokenParameter(),
            url: "/json/material/" + material_id,
            success: function(data, textStatus) {
                tooltip.html(data);

            }
            ,
            error: function(data, textStatus) {


                },
            dataType: "html"
        });


        $('#area1tooltip').show();
        return false;

    });


    /* Geston des menus*/

    var auto_hide_submenu = true;

    function hide_all_menus() {
        if (auto_hide_submenu) {
            // $('#clothSubMenu').addClass("hide");
            // $('#accessorySubMenu').addClass("hide");
            // $('#collectionSubMenu').addClass("hide");
            // $('#objectSubMenu').addClass("hide");
            $('#clothSubMenu').hide();
            $('#accessorySubMenu').hide();
            $('#collectionSubMenu').hide();
            $('#objectSubMenu').hide();
        }
    }
    //
    function show_menu(menu) {
        hide_all_menus();
        menu.show();
//        menu.removeClass("hide");
    }



    $('a#collectionMenu').bind("mouseenter",
    function() {
        show_menu($('#collectionSubMenu'));
    });
    $('a#clothMenu').bind("mouseenter",
    function() {
        show_menu($('#clothSubMenu'));
    });
    $('a#accessoryMenu').bind("mouseenter",
    function() {
        show_menu($('#accessorySubMenu'));
    });
    $('a#objectMenu').bind("mouseenter",
    function() {
        show_menu($('#objectSubMenu'));
    });
    $('#subMenu').bind("mouseleave",
    function() {
        hide_all_menus();
    });
    $('.hideSubmenu').bind("mouseenter",
    function() {
        hide_all_menus()
    });



    $('span.passwordLost a').bind("click",
    function() {
      var span=this.parentNode;
      var form=span.parentNode.parentNode.parentNode;
      var tag=$('#passwordLostTag');
      tag.val("true");

      var input=$('input#name');
      if(input.val()=="")
      {
        input.val("Saisissez votre email.");
        input.highlight();
        return false;
      }



      var params = {};
      for (var i = form.elements.length - 1; i >= 0; i--)
      {
        params[form.elements[i].name] = form.elements[i].value;
      }
      params["ajax"] = "true"
      $.ajax({
        type: "POST",
        url:form.action,
        data: params,
        success: function(data, textStatus){
          $(span).html("Votre nouveau password vous a été envoyé par mail !");
        },
        error: function(data, textStatus){
          throw Error("Erreur ajax");
        },
        dataType: "json"
      });


    });


    /* Getion de la page produit*/

    function enable_quantity (quantity, available_stock) {
      if(quantity > available_stock){
        return "disabled";
      }else{
        return false;
      }
    }

    $("select#line_item_material_id").change(function() {
      id = $(":selected", this).val();
      window.location = "/material/product/" + id;
    });

    $("select#line_item_size_id").change(function() {
      size_id = $(":selected", this).val();
      available_stock = stocks[size_id];


        $("select#line_item_quantity option[value='1']").attr("disabled",enable_quantity(1, available_stock));
        $("select#line_item_quantity option[value='2']").attr("disabled",enable_quantity(2, available_stock));
        $("select#line_item_quantity option[value='3']").attr("disabled",enable_quantity(3, available_stock));




      selected_attribute = $("select#line_item_quantity option:selected");
      if (selected_attribute.attr("disabled")){
        $("select#line_item_quantity option:enabled").attr("selected","selected");
      }
    });

    $("select#line_item_size_id").change();

    if ($("#collections a.current")) {
        $("#collections a.material_link").hide();
        var selector = "#collections a.material_link.page1";

        $(selector).show();
    }

    $("#collections .material").hover(function() {
        $(this).css("background-color", "#a09c9d");
        $(this).css("border-color", "#fff");
        $(this).css("color", "#000");
        $(".price", this).css("color", "#fff");
    },
    function() {
        $(this).animate({
          backgroundColor :"#fff"
        },300,"swing");
        $(this).css("border-color", "#cbcbcb");
        $(this).css("color", "#726c76");
        $(".price", this).css("color", "#000");
    });

    $('span.refresh a').bind("click",function() {
      $('form.edit_cart').submit();
      return false;
    });
    $('span.empty a').bind("click",function() {
      $('input#hidden_action').val("empty");
      $('form.edit_cart').submit();
      return false;
    });
    $('td.continue a').bind("click",function() {
      $('input#hidden_action').val("continue");
      $('form.edit_cart').submit();
      return false;
    });
    $('td.purchase a').bind("click",function() {
      $('input#hidden_action').val("purchase");
      $('form.edit_cart').submit();
      return false;
    });





    $("#collections .container .material").click(function() {

    this.parentNode.click();
      return false;
    }
  );

    $("#collections .number a").click(function() {

        $("#collections .number a").removeClass("current");
        $(this).addClass("current");
        $("#collections a.material_link").hide();
        var selector = "#collections a.material_link.page" + $(this).html();


        $(selector).show();

        return false;
    });

    // Changement de la page pricnicpale



    /* Gestop, du formulaire de commande de la page produit   */

    var focusColor = "#999";
    var initialColor = "#eee";
    var changeColor = "#bc2c2f";




    if (document.getElementById("materials"))
    {
        $("a.increment_button").click(function() {
          $(this).css("background-color","fff");
          change_stock(this,"increment");
          return false;
        });
        $("a.decrement_button").click(function() {
          change_stock(this,"decrement");
          return false;
        });
        $("input.public_button").click(function() {
          change_stock(this,"public");
        });


    }


    if (document.getElementById("carts"))
    {
        $("select#cart_cart_state_id_filter").change(function() {
            id = $(":selected", this).val();
            var vid = ":" + id + ":";
            if (vid == "::") {
                $("tr.cart").show();
                return false;
            }


            $("#carts tr.cart").hide();
            $("#carts tr.cart.cs" + id).show();

        });


    }

    var welcome_image_number=11;

    $('a#previousImage').bind("click",
    function() {
        number = $('#imageWelcome .showing').attr("id");
        number = parseInt(number.substring(5));
        if (number > 1) {
            number2 = number - 1
        } else {
            number2 = welcome_image_number
        }
        $("#imageNumber").html(number2);
        $("#image" + number).removeClass("showing").fadeOut();
        $("#image" + number2).fadeIn().addClass("showing");
        return false;
    });

    $('a#nextImage').bind("click",
    function() {

        number = $('#imageWelcome .showing').attr("id");
        number = parseInt(number.substring(5));
        if (number < welcome_image_number) {
            number2 = number + 1
        } else {
            number2 = 1
        }

        $("#imageNumber").html(number2);
        $("#image" + number).removeClass("showing").fadeOut();
        $("#image" + number2).addClass("showing").fadeIn();
        return false;

    });


    if (document.getElementById("nextImage")){
      var randomnumber=Math.floor(Math.random()*welcome_image_number)
      //Choix sans aléatoire de la première image affichée (7= 8 eme image)
      // randomnumber=7;

      number = $('#imageWelcome .showing').attr("id");
      number = parseInt(number.substring(5));
      number2=randomnumber+1;
      if(number2!=1){

        $("#imageNumber").html(number2);
        $("#image" + number).removeClass("showing").fadeOut();
        $("#image" + number2).addClass("showing").fadeIn();
      }
      else{

      }
      white(200);

    }


});


function white ( number) {
  $('a#nextImage').animate({
    color:"#ccc"
  },1000);
  $('a#previousImage').animate({
    color:"#ccc"
  },1000);

  number=number-1
  if (number>0){
    $('a#nextImage').queue(black(number));
  }


};

function black(number){

  $('a#nextImage').animate({
    color:"#000"
  },1000);
  $('a#previousImage').animate({
    color:"#000"

  },1000);

  if(number>0){
    $('a#nextImage').queue(white(number));

  }

};



function change_stock (link,abs) {
  var quantity_required;
  if (abs == "increment"){
    quantity_required = prompt("Veuillez donner la quantité à incrémenter");
  } else if(abs == "decrement") { 
    quantity_required = prompt("Veuillez donner la quantité à décrementer");
  } else {
    quantity_required = 0;
  }
  var form = link.parentNode.parentNode.parentNode;
  var li_quantity = $('li.quantity', form);

  var params = {};
  for (var i = form.elements.length - 1; i >= 0; i--){
    params[form.elements[i].name] = form.elements[i].value;
  }
  params["abs"] = abs;
  params["quantity"] = quantity_required;
  if($('input.public_button',form).attr("checked")){
    params['stock[public]'] = 1;
  }else{
    params['stock[public]'] = 0;
  }

  $.ajax({
      type: "POST",
      url: form.action,
      data: params,
      success: function(data, textStatus) {
        if (data.reload == true) {
          location.reload();
        } else {
          li_quantity.html(data.quantity);
          li_quantity.highlight();
        }
      },
      error: function(data, textStatus) {
          throw Error("Erreur ajax");
      },
      dataType: "json"
  });
};



function preload(image_path) {
  imageObj = new Image();    
  imageObj.src = image_path;
}

function remove_fields(link) {
  $(link).prev("input[type=hidden]").val("1");
  $(link).closest(".fields").hide();
}

function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g")
  $(link).parent().before(content.replace(regexp, new_id));
}
