$(document).ready(function(){
  var itemCount = function(){
    return $(".item").not(".empty").size();
  }
  $(".item a.remove").click(function(e){
    var that = this;
    $.post(this.href, {}, function(data, status){
      if(status==="success"){
        $(that).parents(".item").remove();
        if(itemCount()===0){
          $(".cart").addClass('empty');
        }
      }
    });
    return false;
  });
  
  $(".order-form :input").focus(function(){
    $(".span-1").removeClass("focus");
    $(this).parents(".span-1").addClass("focus");
  });
  
  $("#section-parcels form a.add-to-cart").click(function(e){
    $("input[name=item]").val($(this).attr("rel"));
    $("form").submit();
    return false;
  });
  
  var formatCurrency = function(s){
    var chunk = function(s, arr){
      if(s.length<3){
        if(s) arr.unshift(s)
        return arr;
      }
      arr.unshift(s.substring(s.length-3))
      return chunk(s.substring(0, s.length-3), arr);
    }
    return chunk(String(s), []).join('.');
  }
  
  var updateCart = function(){
    $.ajax({
      url: URLMAP.order_totals,
      dataType: 'json',
      type: 'POST',
      data: $("#f_from_date, #f_to_date, input[name=weekdays], input[name=deliver]").serialize(),
      success: function(data){
        $("#_day_count").html(data['day_count']);
        $("#_weekly_total").html(formatCurrency(data['weekly_total']));
        $("#_total").html(formatCurrency(data['total']));
      }
    });
  }

  $(".weekdays .day a").click(function(){
    var that = this;
    $.post(this.href, {}, function(data, status){
      if(status==="success"){
        var action = Boolean(Number(data)) && 'add' || 'remove';
        $(that).parent('li')[action+'Class']("deliver");
        updateCart();
      }
    });
    return false;
  });
  
  $(".item .quantity input").keyup(function(e){
    var that = this;
    if(Number(this.value)){
      $.post($(this).parents(".quantity").attr('ref'), {quantity:this.value}, function(data, status){
        if(status==="success"){
          updateCart();
        }
      });
    }
    return false;
  });
  
  var typeTimer;
  $(".order-form .dates input").keyup(function(e){
    clearTimeout(typeTimer);
    typeTime = setTimeout(function(){
      updateCart();
    }, 500);
  });
  $(".order-form .choicegroup input").change(function(e){
    updateCart();
  })
  
  $("#deliver").change(function(){
    var deliver = $(this).attr("checked");
    var that = this;
    $.post($(this).attr('ref'), {'deliver': deliver}, function(data, status){
      if(status==="success"){
        updateCart();
      }
    });
  });
  
  setTimeout(function(){
    $(".user-messages").fadeOut("slow");
  }, 2500);
  
  $(".dates input").datepicker({dateFormat: 'yy-mm-dd', minDate: 1, onSelect: updateCart});
  $("#tabs").tabs({fx: { opacity: 'toggle', duration: "fast" }});
  if ($("#netgreidslur").size()) {
    $("#netgreidslur").trigger("submit");
  };
  
});
