//
function addItemToCartCb(productId,catalogRefIds) {
	if (catalogRefIds == null || catalogRefIds.blank()) {
		// hack but should work since this can only happen for gift cards
		alert("You must select a denomination for the selected gift card.");
		return;
	}
	var url = '/store/common/catnav/shoppingCartWidget.jsp';
	new Ajax.Updater('shoppingCart',url, {
		method: 'get',
		parameters: {'dcs_action': 'addItemToCart', 'productId': productId, 'catalogRefIds':catalogRefIds, 'quantit':1},
		asynchronous: true,
		onComplete: sifrLoad});
	//lightBoxLogin("/store/cart/shoppingCartLB.jsp?productId=" + productId + "&skuId=" + catalogRefIds, "Item Added");
	openLightbox3('lbCheck1', "/store/cart/shoppingCartLB.jsp?productId=" + productId + "&skuId=" + catalogRefIds, "Item Added");
	setTimeout(function(){closeLightbox3('lbCheck1')}, 4000);
}


//
function removeItemFromCartCb(commerceItemId) {
	var url = '/store/cart/inc/shopping_cart_item_list.jsp';
	new Ajax.Updater('div_commerceItems',url, {
		method: 'get',
		parameters: {'dcs_action': 'removeItemFromCart', 'dcs_order_to_xml':'getOrderXml' , 'response_type': 'xml_to_request_attr', 'remove_commerce_item_id': commerceItemId},
		asynchronous: true,
		evalScripts: true,
		onComplete: updatePrices});
}
//
function updateShippingAddressCb(state) {

	var url = '/store/cart/inc/shopping_cart_item_list.jsp';
	var mytime= new Date().getTime();
	new Ajax.Request(url, {
		method: 'get',
		parameters: {'dcs_action': 'updateCart', 'dcs_order_to_xml':'getOrderXml' , 'response_type': 'xml_to_response_stream', 'shipping_address_state': state.value, 'ms': mytime},
		asynchronous: true,
		evalScripts: true,
		onComplete: updateXMLPrices});
	return true;
}
//
function updateShippingAddress(state) {
	var url = '/store/checkout/inc/shippingDetails.jsp';
	new Ajax.Request(url, {
		method: 'get',
		parameters: {'dcs_action': 'updateCart', 'dcs_order_to_xml':'getOrderXml' , 'response_type': 'xml_to_response_stream', 'shipping_address_state': state.value},
		asynchronous: true,
		evalScripts: true,
		onComplete :updateXMLPricesAtShp});
	return true;
}

//
function updateCartCb() {

	var url = '/store/cart/inc/shopping_cart_item_list.jsp';
	new Ajax.Updater('div_commerceItems',url, {
		method: 'post',
		parameters: $('cart').serialize(true),
		asynchronous: true,
		evalScripts: true,
		onComplete: updatePrices});
}
//
function moveToPurchaseCb() {
	$('cart').action = "/store/checkout/shipping.jsp";
    $('cart').submit();
}
//
function updatePrices(){
    var orderSubtotal = $('orderSubtotal');
    var orderDiscount = $('orderDiscount');
    var gcActivation = $('gcActivation');
    var orderGSTTax   = $('orderGSTTax');
    var orderPSTTax   = $('orderPSTTax');
    //var orderTax      = $('orderTax');
    var orderShipping = $('orderShipping');
    var orderTotal    	= $('orderTotal');
    var scenePointTotal    	= $('scenePointTotal');
    var wrapSave    	= $('wrapSave');
    var continueShopping = $('continueShopping');

	var ajaxSubtotal = $('ajax_subtotal');
	var ajaxShipping = $('ajax_shipping');
	//var ajaxTax      = $('ajax_tax');
	var ajaxGST      = $('ajax_gst');
	var ajaxPST      = $('ajax_pst');
	var ajaxTotal    = $('ajax_total');
	var ajaxScenePointTotal = $('ajax_scenepointtotal');
	var ajaxDiscount = $('ajax_discount');
	var ajaxGCActivation = $('ajax_gc_activation');
	var ajaxShippingDiscount = $('ajax_shipping_discount');
		
	orderSubtotal.innerHTML = formatCurrency(ajaxSubtotal.value);
	if (orderDiscount != null) {
		orderDiscount.innerHTML = formatCurrency(ajaxDiscount.value);
	}
	if (gcActivation != null) {
		gcActivation.innerHTML = formatCurrency(ajaxGCActivation.value);
	}	
	
	orderShipping.innerHTML = formatCurrency(ajaxShipping.value);
	if (ajaxShippingDiscount.value == "true") {
		orderShipping.className="discountMsg";
	} else {
		orderShipping.className="";
	}
	//orderTax.innerHTML      = formatCurrency(ajaxTax.value);
	orderGSTTax.innerHTML   = formatCurrency(ajaxGST.value);
    orderPSTTax.innerHTML   = formatCurrency(ajaxPST.value);
	orderTotal.innerHTML    = formatCADCurrency(ajaxTotal.value);
	scenePointTotal.innerHTML = ins1000Sep(ajaxScenePointTotal.value) + " points";
	
	if(ajaxTotal.value==0.0){
		//$(continueShopping).hide();
		continueShopping.innerHTML = " ";
	}

	if (ajaxDiscount.value < 0) {
	  toggleDiscount('show');
	} else {
	  toggleDiscount('hide');
    }
	
	if (ajaxGCActivation.value > 0) {
	  toggleGCActivation('show');
	} else {
	  toggleGCActivation('hide');
    }
	
	if(ajaxScenePointTotal.value < 1000) {    	
    	wrapSave.hide();
    } else {    	
    	wrapSave.show();
    }

	return true;
}
//
function updateXMLPrices(r) {


    var doc = r.responseXML;

    //var orderTax    = $('orderTax');
    var orderGSTTax   = $('orderGSTTax');
    var orderPSTTax   = $('orderPSTTax');
    var orderShipping = $('orderShipping');
    //var orderDiscount = $('orderDiscount');
    var orderTotal    = $('orderTotal');
    var scenePointTotal    	= $('scenePointTotal');
    var wrapSave    	= $('wrapSave');

    var subtotal = doc.getElementsByTagName("productsSubtotal")[0].firstChild.nodeValue;
    var discount = doc.getElementsByTagName("discount")[0].firstChild.nodeValue;
    var gst      = doc.getElementsByTagName("gst")[0].firstChild.nodeValue;
    var pst      = doc.getElementsByTagName("pst")[0].firstChild.nodeValue;
    var tax      = doc.getElementsByTagName("tax")[0].firstChild.nodeValue;
    var shipping = doc.getElementsByTagName("shipping")[0].firstChild.nodeValue;
    var total    = doc.getElementsByTagName("total")[0].firstChild.nodeValue;
    var ajaxScenePointTotal = doc.getElementsByTagName("scenepointtotal")[0].firstChild.nodeValue; 
        
    //orderTax.innerHTML      = formatCurrency(tax);
    orderGSTTax.innerHTML   = formatCurrency(gst);
    orderPSTTax.innerHTML   = formatCurrency(pst);
    orderShipping.innerHTML = formatCurrency(shipping);
    //orderDiscount.innerHTML = formatCurrency(discount);
    orderTotal.innerHTML    = formatCADCurrency(total);
    scenePointTotal.innerHTML = ins1000Sep(ajaxScenePointTotal) + " points";
    
    if(ajaxScenePointTotal < 1000) {    	
    	wrapSave.hide();
    } else {    	
    	wrapSave.show();
    }

    return true;
}
//
function updateXMLPricesAtShp(r) {

    var doc = r.responseXML;

    //var orderTax    = $('orderTax');
    var orderGSTTax   = $('orderGSTTax');
    var orderPSTTax   = $('orderPSTTax');
    var orderShipping = $('orderShipping');
    //var orderDiscount = $('orderDiscount');
    var orderTotal    = $('orderTotal');

    var subtotal = doc.getElementsByTagName("productsSubtotal")[0].firstChild.nodeValue;
    var discount = doc.getElementsByTagName("discount")[0].firstChild.nodeValue;
    var tax      = doc.getElementsByTagName("tax")[0].firstChild.nodeValue;
    var gst      = doc.getElementsByTagName("gst")[0].firstChild.nodeValue;
    var pst      = doc.getElementsByTagName("pst")[0].firstChild.nodeValue;
    var shipping = doc.getElementsByTagName("shipping")[0].firstChild.nodeValue;
    var total    = doc.getElementsByTagName("total")[0].firstChild.nodeValue;

    //orderTax.innerHTML    = '$'+ins1000Sep(formatNum(tax));
    orderGSTTax.innerHTML   = formatCurrency(gst);
    orderPSTTax.innerHTML   = formatCurrency(pst);
    orderShipping.innerHTML = formatCurrency(shipping);
    orderTotal.innerHTML    = formatCADCurrency(total);
    //orderShipping.innerHTML = ins1000Sep(formatPrice(shipping));
    //orderDiscount.innerHTML = ins1000Sep(formatPrice(discount));
    //orderTotal.innerHTML    = ins1000Sep(formatPrice(total));

    return true;
}

function ins1000Sep(val){
  val = val.split(".");
  val[0] = val[0].split("").reverse().join("");
  val[0] = val[0].replace(/(\d{3})/g,"$1,");
  val[0] = val[0].split("").reverse().join("");
  val[0] = val[0].indexOf(",")==0?val[0].substring(1):val[0];
  return val.join(".");
}
function rem1000Sep(val){
  return val.replace(/,/g,"");
}
function formatNum(val){
  val = Math.round(val*100)/100;
  val = (""+val).indexOf(".")>-1 ? val + "00" : val + ".00";
  var dec = val.indexOf(".");
  return dec == val.length-3 || dec == 0 ? val : val.substring(0,dec+3);

}

function formatPrice(val){
   var price = '$' + formatNum(val);
   return price;
}


function formatCurrency(val) {
	num = val.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	var price = (((sign)?'':'-') + '$' + num + '.' + cents);
	return price;
	}

function formatCADCurrency(val) {
	num = val.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	var price2 = (((sign)?'':'-') + '$' + num + '.' + cents+" CAD");

	var price ="<a>"+price2+"</a>"
	return price;
	}
