﻿$(document).ready(
  function()
  {

    // Warenkorb anzeigen
    $('#warenkorbDiv div.warenkorbTitle img').click(
      function(){
        //in die Session speichern
        var status = !($("div.warenkorb").is(':visible'));
        $.get("/php/modules/kua_shop/saveCartStatus.php", { cartStatus: status });
        $("#warenkorb").toggle('slow');
      });


    $("input.stueckzahl").change(
      function(){
        alterProductAmountInCart($(this));
      });

    $("select#shopLandAuswahl").change(
      function(){
        var countryCode = $("select option:selected").val();
        $.get("/php/modules/kua_shop/add_country_to_session.php", { countrycode: countryCode, source: "fromAjax" },
          function(data){
            if(data == 'true'){
              refreshSummaryTable();
            }
          });
      });

    $("a.removeProductFromCart").click(
      function(){
           removeProductFromSummary($(this));
      });

    //Metadata
    $.metadata.setType("class");

    //Bilder dragable machen
    $('img.isprodukt')
        .draggable({
            cursor: "pointer",
            scroll: true,
            scrollSensitivity: 150,
            helper: 'clone',
            opacity: 0.8,
            start: function(ev, ui) {
              //~ $(ev).draggableInstance().animate({widht:150}, "slow");
              var cartHeight = $("#warenkorb").height();
              //~ alert(cartHeight);
              if(cartHeight <= 150){
                cartHeight = 150;
              }
              //~ alert(cartHeight);
              $("#warenkorb").animate({height:cartHeight}, "slow");
            }
          }
        );

    //Warenkorb
    $("#warenkorb").droppable({
      accept: "img",
      activeClass: 'warenkorb-active',
      hoverClass: 'warenkorb-hover',
      tolerance: 'touch',
      //~ tolerance: 'touch',
      drop: function(ev, ui) {
        var produkt_url = $(ui.draggable.element).metadata().url;
        addProdukt2Session(produkt_url);
        $("#warenkorb").css('height','auto');
      }
    });

    // Klick auf Link
    $('a.warenkorb_link').click(
      function(){
        // zugehoeriges Image
        // console.log($(this).siblings('img').offset().left,$(this).siblings('img').offset().top);
          var cartHeight = $("#warenkorb").height();
          if(cartHeight < 150){
            cartHeight = 150;
          }
          $("#warenkorb").animate({height:cartHeight}, "slow");
          if($(this).siblings('img').length == 1){
          var thisTop         = $(this).siblings('img').offset().top;
          var thisLeft        = $(this).siblings('img').offset().left;
          var warenkorbLeft   = $('#warenkorb').offset().left;
          var warenkorbHeight = $('#warenkorb').height();
          var warenkorbTop    = ($('#warenkorb').offset().top) + (warenkorbHeight/2);

          if($(this).siblings('img').metadata().url){
            var produkt_url = $(this).siblings('img').metadata().url;
          }

          $(this).siblings('img')
                  .clone()
                  .appendTo('body')
                  .css('position','absolute')
                  .css('top',thisTop)
                  .css('left',thisLeft)
                  .animate({
             opacity: 'toggle',top:warenkorbTop,left:warenkorbLeft
           },
           { duration: "slow", complete: function(){
              $(this).remove();
              addProdukt2Session(produkt_url);
              $("#warenkorb").css('height','auto');
              }
            }

          );
        }
         return false;
      }
    );

    /*****
    *  Klick auf den Link direkt auf der Produktseite
    ****/
    $('#linkblock_produkt a.produkt_direkt').click(
      function(){
        // zugehoeriges Image
        // console.log($(this).siblings('img').offset().left,$(this).siblings('img').offset().top);
          var cartHeight = $("#warenkorb").height();
          if(cartHeight < 150){
            cartHeight = 150;
          }
          $("#warenkorb").animate({height:cartHeight}, "slow");

          if($('#produkt_img4produkt img').is('img')){
            var ProdImg = $('#produkt_img4produkt img');
            var thisWidth       = $(ProdImg).width();
            //~ console.log(thisWidth);
            var thisTop         = $(ProdImg).offset().top;
            var thisLeft        = $(ProdImg).offset().left;
            var warenkorbLeft   = $('#warenkorb').offset().left;
            var warenkorbHeight = $('#warenkorb').height();
            var warenkorbTop    = ($('#warenkorb').offset().top);

            if($(ProdImg).metadata().url){
              var produkt_url = $(ProdImg).metadata().url;
            }

            $(ProdImg)
                    .clone()
                    .appendTo('body')
                    .css('position','absolute')
                    .css('top',thisTop)
                    .css('left',thisLeft)
                    .animate({
               opacity: 'toggle',top:warenkorbTop,left:warenkorbLeft,width:100
             },
             { duration: "slow", complete: function(){
                $(this).remove();
                addProdukt2Session(produkt_url);
                }
              }

            );
          }
         return false;
      });

    function addProdukt2Session(produkt_url){
      $.get("/php/modules/kua_shop/add_to_session.php", { prodid: produkt_url, source: "fromAjax" },
        function(data){
        if(data == 'true'){
          refreshCart();
        }
      });
    }

    function refreshCart(){
      //~ warenkorb
      $("#warenkorb").load("/php/modules/kua_shop/warenkorb.inc.php #warenkorb ul");
    }

    function removeProductFromSummary(element) {

        var productUri = element.attr("producturi");
        var productId = element.attr("id");

        $.get("/php/modules/kua_shop/remove_from_session.php", {prodid: productUri, source: "fromAjax"},
          function(data){
            if(data == 'true'){
              refreshCart();
              refreshSummaryTable(productId, true);
            }
        });
    }

    function alterProductAmountInCart(element) {

        var productUri = element.attr('producturi');
        var requestedProductAmount = element.val();
        var productId = element.attr("id");

        if(requestedProductAmount == 0) {
          removeProductFromSummary(element);
        } else {
          $.get("/php/modules/kua_shop/alter_product_amount_in_session.php", {prodid: productUri,
                                                                              amount: requestedProductAmount,
                                                                              source: "fromAjax"},
            function(data){
              if(data == 'true'){
                refreshCart();
                refreshSummaryTable(productId, false);
              }
          });
        }
    }

    function refreshSummaryTable(productId, isRemoveal) {
        var productEntries = $("tbody#products").children();

        if(productEntries.length === 1 && isRemoveal === true) {

          var htmlSnippet = '<div class="shopInhaltZusammenfassung"><label for="shopWarenkorb">Keine Produkte im Warenkorb.';
              htmlSnippet+= '</label></div><br class="clear"/>';
          $("table.shopTable").replaceWith(htmlSnippet);
          $(":submit").remove();

        } else {

          $("tr#product_" + productId).remove();
          $("em#rechnungsTabelleParent").next().load("/php/modules/kua_shop/warenkorb_rechnungs_tabelle.php",'', function(){

            $("a.removeProductFromCart").click(
              function(){
                removeProductFromSummary($(this));
              });

            $("input.stueckzahl").change(
              function(){
                alterProductAmountInCart($(this));
              });

          });

        }
    }

  }// Ende document.ready
);
