/****
 * Cart functions for Buyz
 ****/
 var QTY_AVAILABLE_REACHED = 'qtyavailablereached';
 var ERROR_ADDING = 'erroradding';
 var ITEM_NOT_ADDED = 'itemnotadded';
 var NO_QTY_AVAILABLE = 'noqtyavailable';
 var IN_MEMBERS_CART = 'inmemberscart';
 var NONEXISTENT_SKU = 'nonexistentsku';

 
function addToNewCart(idOfSelect, hiddenStoreItemId, prodId, storeItemId, url)
{

	//get the 2 possible ID's that could contain the SKU value
	var selObj = $(idOfSelect);
	var hiddenObj = $(hiddenStoreItemId);
	
	var valueOfSelectedStoreItemVariant = "";
	
	var originalSize ="";	//original size of the ring
	var ringSize = "";		//chosen size of the ring
	
	try {
	   //alert("Selected Index:" + selindex);
	   //alert ("Size Value:" + valueOfSelect.value);
	  var valueOfSelectedSkuAndSize = selObj.val();
	   
	  //alert("valueOfSelectedSkuAndSize :" + valueOfSelectedSkuAndSize);
	   var nvp = valueOfSelectedSkuAndSize.split(':');
	   valueOfSelectedStoreItemVariant = nvp[0];
	   ringSize = nvp[1];	   
	   originalSize = nvp[2];
	   
	   //alert("sku - " + valueOfSelectedStoreItemVariant + ",  size - " + ringSize + ", originalSize - " + originalSize);
	   
	}
	catch(err) {
		try {
			valueOfSelectedStoreItemVariant = hiddenObj.val();	
		}
		catch (err2) {
			alert ("Unable to add item to cart. Please contact customer service.");
			return;
		} //catch 2nd error, no hidden form element found
	} //catch first error, no size drop-down found

	var urlToSend = url + "&sivId=" +valueOfSelectedStoreItemVariant + "&size=" + originalSize + "&resize=" + ringSize + "&storeItemId="+storeItemId + "&productId="+prodId;
	
	//alert("addToCart - send url: " + urlToSend);
	location.href=urlToSend;
}

function addToCart(idOfSelect, idOfHiddenSku, url) {

	//get the 2 possible ID's that could contain the SKU value
	var selObj = $(idOfSelect);
	var hiddenObj = $(idOfHiddenSku);
	
	var valueOfSelectedSku = "";
	
	var ringSize = "";
	
	try {
	   //alert("Selected Index:" + selindex);
	   //alert ("Size Value:" + valueOfSelect.value);
	  var valueOfSelectedSkuAndSize = selObj.val();
	   
	  //alert("valueOfSelectedSkuAndSize :" + valueOfSelectedSkuAndSize);
	   var nvp = valueOfSelectedSkuAndSize.split(':');
	   valueOfSelectedSku = nvp[0];
	   ringSize = nvp[1];	   
	   
	   //alert("sku - " + valueOfSelectedSku + ",  size - " + ringSize);
	   
	}
	catch(err) {
		try {
			valueOfSelectedSku = hiddenObj.val();	
		}
		catch (err2) {
			alert ("Unable to add item to cart. Please contact customer service.");
			return;
		} //catch 2nd error, no hidden form element found
	} //catch first error, no size drop-down found

	var urlToSend = url + valueOfSelectedSku + "&size=" + ringSize;
	
	//alert("addToCart - send url: " + urlToSend);
	location.href=urlToSend;
} //END: addToCart

function showMsg(msg) {

	var msgToHTML = '';	
	var genericError = ' An error occured while adding this item to your shopping cart. Please try again. ';
	var outOfStockError = ' This Item is not currently in stock. Please select another item. ';
	var inMembCartError = ' This item is in another member\'s bag... please come back in a few minutes.';
	
	logToWindow("Error message found: " + msg);
	
	if (msg == NO_QTY_AVAILABLE)
		msgToHTML = outOfStockError;
	
	if (msg == IN_MEMBERS_CART)
		msgToHTML = inMembCartError;
	
	if (msg == QTY_AVAILABLE_REACHED)
		msgToHTML = outOfStockError;
	
	if (msg == ERROR_ADDING)
		msgToHTML = genericError ;
	
	if (msg == ITEM_NOT_ADDED)
		msgToHTML = genericError;
	
	if (msg == NONEXISTENT_SKU)	
		msgToHTML = genericError;
		
	//if (msg == NO_QTY_AVAILABLE || msg == QTY_AVAILABLE_REACHED || msg == ERROR_ADDING || msg == ITEM_NOT_ADDED || msg == NONEXISTENT_SKU)
	if (msgToHTML !='')	
		showCartError(msgToHTML);
 } //END: showMsg
 
 /***
  * Pop up an Div to show the cart error that has been returned
  * @param {String} msg
  */
 function showCartError(msg) {
 	$('#msgErrorText').html(msg);
	toggleBox('errorDiv', 1);
 } //END:showCartError
