  $(document).ready(function() {
    $('.category_pic_fancybox').fancybox({
      'titlePosition'     : 'inside'
    });
  });

  // enable catalog basket
  $(document).ready(function() {    
    updateCount();
  });

function updateCount(){
  var catalog_count = getTotalNumberOfItems();
  //alert('count: ' + catalog_count);
  $('#basket_count').text(catalog_count);
}

function clearBasket(){
  updateBasketCookie(newBasket());
  getBasket();
}

function getBasket(){
  //updateBasketCookie(newBasket());
  var basket;
  try{
    var basket_c = $.cookie("basket");
    //alert('basket cookie load: ' + basket_c);
    if(basket_c==null || basket_c===null || basket_c=='undefined' || basket_c=='null'){
      //alert('is empty');
      var basket_obj = newBasket();
      updateBasketCookie(basket_obj);
      basket = basket_obj;
      //basket_c = $.cookie("basket");
      //alert('string: ' + JSON.stringify(basket_obj));
      //alert('asdf: ' + JSON.stringify(basket_obj).asdf);
    }else{
      basket = jQuery.parseJSON(basket_c);
      //alert('cookie ' + basket_c);
    }
    return basket;
  }catch(ex){
    //alert('not basket');
    var basket_obj = newBasket();
    updateBasketCookie(basket_obj);
    return basket_obj;
  }
}

function newBasket(){
  return jQuery.parseJSON('{"items":[]}');
}

function updateBasketCookie(obj){
  //alert('update ' + JSON.stringify(obj));
  $.cookie("basket", JSON.stringify(obj), {expires: 0, path: '/'});
  updateCount();
}

function addBasketItem(itemId, tquantity) {
  var obj = getBasket();
//    alert('{"tmpId":'+obj.items.length+',"itemId":'+itemId+',"tquantity":"'+tquantity+'","quantity":1}');
  if(isInBasket(itemId)) {
    for(var i=0; i<obj.items.length; i++) {
      var tmp = jQuery.parseJSON(obj.items[i]);
      if(tmp.itemId == itemId) {
        tmp.quantity = tmp.quantity + 1;
        obj.items[i] = JSON.stringify(tmp);
      }
    }
  }else {    
   // var dec = description.replace("\"","&quot;").replace(String.fromCharCode(10),"").replace(String.fromCharCode(13),"");
   // alert('{"tmpId":'+obj.items.length+',"itemId":'+itemId+',"name":"'+name+'","description":"'+description+'","picture":"'+picture+'","quantity":1}');
   // alert('add: ' + '{"tmpId":'+obj.items.length+',"itemId":'+itemId+',"tquantity":"'+tquantity+'","mmlength":0,"quantity":1}');
    obj.items.push('{"tmpId":'+obj.items.length+',"itemId":'+itemId+',"tquantity":"'+tquantity+'","mmlength":0,"quantity":1}');

  }
  updateBasketCookie(obj);
};

function addOneBasketItem(tmpId, itemId) {
  //alert('addOneBasketItem, tmpId: ' + tmpId + ', itemId: ' + itemId);
  var obj = getBasket();
  for(var i=0; i<obj.items.length; i++) {
    var tmp = jQuery.parseJSON(obj.items[i]);
    // tmp.tmpId == tmpId && 
    if(tmp.itemId == itemId){
    //  alert('i found: ' + tmp.name);
      tmp.quantity = tmp.quantity + 1;
      obj.items[i] = JSON.stringify(tmp);
      $('#item_quantity_'+itemId).text(tmp.quantity);
    }
  }
  updateBasketCookie(obj);
};
  
function getTotalNumberOfItems(){
  var obj = getBasket();
  var sum = 0;
    //alert('obj ' + obj);
   // alert('items ' + obj.items);
  //alert('length ' + obj.items.length);
  for(var i=0; i<obj.items.length; i++) {
    var tmp = jQuery.parseJSON(obj.items[i]);
   // alert(tmp.quantity);
    sum = sum + tmp.quantity;
  }
  return sum;
};
  
function removeBasketItem(tmpId, itemId) {
  var obj = getBasket();
  //alert("remove: " + itemId);
  for(var i=0; i<obj.items.length; i++) {
    var tmp = jQuery.parseJSON(obj.items[i]);
    // tmp.tmpId == tmpId && 
    if(tmp.itemId == itemId){
      if(tmp.quantity > 1){
        tmp.quantity = tmp.quantity - 1;
        obj.items[i] = JSON.stringify(tmp);
        $('#item_quantity_'+itemId).text(tmp.quantity);
      }else{
        obj.items.splice(i,1); 
        $('#basket_item_'+itemId).hide();
      }      
    }
  }
  updateBasketCookie(obj);
  if(getTotalNumberOfItems() == 0){
    showBasket();
    $("#basket_menu").hide();
  }
};

function deleteBasketItem(tmpId, itemId) {
  var obj = getBasket();
  for(var i=0; i<obj.items.length; i++) {
    var tmp = jQuery.parseJSON(obj.items[i]);
    if(tmp.itemId == itemId){
      obj.items.splice(i,1); 
      $('#basket_item_'+itemId).hide();
    }
  }
  updateBasketCookie(obj);
  if(getTotalNumberOfItems() == 0){
    showBasket();
    $("#basket_menu").hide();
  }
};

function updateLength(itemId, mmLength){
  var obj = getBasket();
  for(var i=0; i<obj.items.length; i++) {
    var tmp = jQuery.parseJSON(obj.items[i]);
    // tmp.tmpId == tmpId && 
    if(tmp.itemId == itemId){
    //  alert('i found: ' + tmp.name);
      tmp.mmlength = $('#lgd_' + itemId).val();
      obj.items[i] = JSON.stringify(tmp);
    }
  }
  updateBasketCookie(obj);
};
  
function isInBasket(itemId) {
  var obj = getBasket();
  for(var i=0; i<obj.items.length; i++) {
    var tmp = jQuery.parseJSON(obj.items[i]);
	//alert('rax: ' + obj.items[i]);
	//alert('parsed: ' + tmp);
    if(tmp.itemId == itemId)
      return true;
  }
  return false;
};

function getItemInfoAsync(itemIds){
$.ajax({
	type: "POST",
	url: "/umbraco/webservices/ContentWebServiceExtension.asmx/getbasketnodefromid",
	data: "{nodeids:'"+itemIds+"'}",
	contentType: "application/json; charset=utf-8",
	dataType: "json",
	success: function(data) {
		// alert('succes: ' + JSON.stringify(data));
		// alert('size: ' + jQuery.parseJSON(data.d).infos.length);
		doShowBasket(jQuery.parseJSON(data.d).infos);
	  }
	});
}

function showBasket(){
  var content = "";
  var obj = getBasket();
  if(obj.items.length > 0){
    var ids = "";
    for (var i = 0; i < obj.items.length; i++) {
      var tmp = jQuery.parseJSON(obj.items[i]);
      ids = ids + tmp.itemId;
      if(i < obj.items.length-1){
        ids = ids + ",";
      }
    }
    getItemInfoAsync(ids);
    content = "<img src=\"/media/18701/ajax-loader%20(1).gif\" style=\"margin-left:325px;margin-top:100px;margin-bottom:50px\"/>";
  }else{
    content = "<p><b>Kurven er tom.</b></p><p>Klik på menuen til venstre for at se udvalget af produkter!</p><p>Med venlig hilsen<br/>A/S Köpke Porte</p>"
    $('#basket_menu').hide();
  }
  $('#basket_content').html(content);
}

function doShowBasket(iteminfos){
    var obj = getBasket();
    var content = "<p><b>Følgende varer er i din indkøbskurv.</b></p>";
    content = content + "<p>Du kan ændre antallet ved at klikke på knapperne <img src=\"/media/1373/basket_gray_add.png\" height=\"12\" border=\"0\" style=\"margin-bottom:-3px\" /> / <img src=\"/media/1378/basket_gray_remove.png\" height=\"12\" border=\"0\" style=\"margin-bottom:-3px\" /> , og fjerne et produkt helt ved at klikke på papirkurven <img src=\"/media/4042/basket_gray_delete.png\" height=\"12\" border=\"0\" style=\"margin-bottom:-3px\" />.</p>";
    for (var i = 0; i < obj.items.length; i++) {
      var tmp = jQuery.parseJSON(obj.items[i]);
      var tmpInfo = iteminfos[i];
	if(tmp.itemId != tmpInfo.itemId){
	   // an error happend, reload page
	   window.location.reload()
	}
      content = content + '<div id="basket_item_' + tmp.itemId + '" class="catalog_item">';
      content = content + '<a href="' + tmpInfo.picture + '" id="category_pic_' + tmp.itemId + '" title="' + tmp.name + ': ' + tmpInfo.description + '" class="category_pic_fancybox">';
      content = content + '<img src="' + tmpInfo.picture + '" width="100" height="100" class="category_pic" />';
      content = content + '<img src="/media/223/item_box_big.png" width="15" height="15" border="0" class="category_pic_plus" />';
      content = content + '</a>';
      content = content + '<h1 id="item_name_' + tmp.itemId + '">' + tmpInfo.name + '</h1>';
      content = content + '<h2 id="item_description_' + tmp.itemId + '">' + tmpInfo.description + '</h2>';
      content = content + '<p>';
      content = content + tmp.tquantity;
      content = content + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
      content = content + 'antal: <span id="item_quantity_' + tmp.itemId + '">' + tmp.quantity + '</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
      if(tmp.tquantity == 'PR. METER'){
        content = content + 'á lgd: <input id="lgd_' + tmp.itemId + '" onchange="updateLength(\'' + tmp.itemId + '\');"  type="text" size="2" value="' + tmp.mmlength + '" />mm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
      }else{
        content = content + '<spanid="lgd_' + tmp.itemId + '" width="0"/>';
      }
      content = content + '</p>';
      content = content + '<a onclick="addOneBasketItem(\'' + tmp.tmpId + '\',\'' + tmp.itemId + '\');"><img src="/media/1373/basket_gray_add.png" width="29" height="24" border="0" alt="Tilføj en mere" class="addimgbasket" /></a>';
      content = content + '<a onclick="deleteBasketItem(\'' + tmp.tmpId + '\',\'' + tmp.itemId + '\');"><img src="/media/4042/basket_gray_delete.png" width="29" height="24" border="0" alt="Fjern helt" class="addimgbasket" /></a>';
      content = content + '<a onclick="removeBasketItem(\'' + tmp.tmpId + '\',\'' + tmp.itemId + '\');"><img src="/media/1378/basket_gray_remove.png" width="29" height="24" border="0" alt="Fjern en" class="addimgbasket" /></a>';
      content = content + '</div>';
    }
    $('#basket_menu').show();
    $('#basket_content').html(content);
}
