var ctxPath;
var code;
function init(contextPath) {
ctxPath = contextPath;
BasketWrapper.isEmpty( 
function(empty) {
if(!empty) {
$("theBasket").style.display = "block";
$("emptyBasket").style.display = "none";
dwr.engine.beginBatch();
fillBasket();
dwr.engine.endBatch();
} else {
$("theBasket").style.display = "none";
$("emptyBasket").style.display = "block";
}
});

BasketWrapper.summaryMessage(function(msg) {
var summaryMsg = "Summary: empty, alas.";
if(msg && msg.length > 0) {
summaryMsg = msg;
}
dwr.util.setValue("id_summaryMessage", summaryMsg,  { escapeHtml:false });
});

}




function fillBasket() {
BasketWrapper.getItemsList(function(items) { 
dwr.util.removeAllRows("basketbody", { filter:function(tr) {
return (tr.id != "pattern");
}});
//alert("items desc "+ DWRUtil.toDescriptiveString(items, 2)); 
var item, id;
for (var i = 0; i < items.length; i++) {
item = items[i];   //alert("item "+ DWRUtil.toDescriptiveString(item, 2)); 
id = item.key;
dwr.util.cloneNode("pattern", { idSuffix:id });
if(item.meronCourt) { dwr.util.setValue("desc" + id, item.label); } else{ dwr.util.setValue("desc" + id, item.desc); }
dwr.util.setValue("price" + id, item.formatedPrice, { escapeHtml:false });
dwr.util.setValue("quantity" + id, item.quantity);
dwr.util.setValue("total" + id, item.formatedTotal, { escapeHtml:false });
var aStart = "<a href='" + ctxPath + "/hello-kitty-shop/" + item.location + "'>"; 
var aEnd = "</a>";
//alert("a " + aStart);
if(item.meronCourt)
var imageThumb = aStart + "<img src='" + item.thumb + "' width='50' height='50' />" + aEnd ;
else {
var imageThumb = aStart + "<img src='" + ctxPath +"/images/stock/" + item.thumb + "' width='50' height='50' />" + aEnd;;
}

dwr.util.setValue("imageThumb" + id, imageThumb, { escapeHtml:false });
$("pattern" + id).style.display = ""; //should be table-row but ie complains.
}
});

BasketWrapper.isEmpty( 
      function(empty) {
         //alert("empty " + empty);
         if(!empty) {
         BasketWrapper.getPostageType(function(data) {
         dwr.util.setValue("postageType",  data, { escapeHtml:false });
         });
        
         BasketWrapper.calculatePostage(function(data) {
         dwr.util.setValue("postage",  data, { escapeHtml:false });
         });
         BasketWrapper.calculateGrandTotal( function(data) {
         dwr.util.setValue("grandtotal",  data, { escapeHtml:false });
         });
         BasketWrapper.calculateTotal( function(data) {
         dwr.util.setValue("itemsTotal",  data, { escapeHtml:false });
         });
         $("theBasket").style.display = "block";
         $("emptyBasket").style.display = "none";
         
      } else {
         $("theBasket").style.display = "none";
         $("emptyBasket").style.display = "block";
      }
});



BasketWrapper.summaryMessage(function(msg) {
var summaryMsg = "Your basket is empty.<br/>Alas!";
if(msg && msg.length > 0) {
summaryMsg = msg;
}
dwr.util.setValue("id_summaryMessage", summaryMsg,  { escapeHtml:false });
});

}


function removeClicked(eleid) {
// we were an id of the form "delete{id}", eg "delete42". We lookup the "42"
   if (confirm("Are you sure you want to remove this from your basket?")) {
    dwr.engine.beginBatch();
    BasketWrapper.removeItem(eleid.substring(6));
    fillBasket();
    dwr.engine.endBatch();
    BasketWrapper.isEmpty( 
      function(empty) {
      //alert("empty " + empty);
         if(!empty) {
         $("theBasket").style.display = "block";
         $("emptyBasket").style.display = "none";
      } else {
         $("theBasket").style.display = "none";
         $("emptyBasket").style.display = "block";
      }
   });

    BasketWrapper.summaryMessage(function(msg) {
    var summaryMsg = "Your basket is empty.<br/>Alas!";
    if(msg && msg.length > 0) {
    summaryMsg = msg;
    }
    dwr.util.setValue("id_summaryMessage", summaryMsg,  { escapeHtml:false });
    });





   
   }
}


function setPostage(obj) {

BasketWrapper.setPostageType(obj.value);
BasketWrapper.calculatePostage(function(data) {
dwr.util.setValue("postage",  data, { escapeHtml:false });
});

BasketWrapper.calculateGrandTotal( function(data) {
dwr.util.setValue("grandtotal",  data, { escapeHtml:false });
});

BasketWrapper.calculateTotal( function(data) {
dwr.util.setValue("itemsTotal",  data, { escapeHtml:false });
});

}


function setCurrency(obj) {
code = obj.value;
BasketWrapper.setCurrencyCode(code, function(data) {
});
init(ctxPath);
}

