AjaxShoppingcart = Class.create();

AjaxShoppingcart.prototype = {
	initialize:function() {
	},
	
	runAjaxProduct:function(obj, redirecturl) {
		if (redirecturl != '') {
			document.location = redirecturl;
		}
		else {
			try {
				displayCGOverlayContainer(obj);
			}catch(err) {}
			
			if (document.forms['shoppingCartForm'].elements['skuId'].value != '') {
				AjaxShoppingcart.onLoadingHandler(); //show onloading graphic
				ajaxSetTimeOut("AjaxShoppingcart.onFailureHandler()");
				currentTime = new Date();
				var goAjax = new Ajax.Request(
					'/global/ajax/ajaxResponse/shoppingcartAjaxResponse.jsp', 
					{
						method: 'post',
						parameters: 'currentTime='+currentTime.getTime(),
						postBody: parseParamsforAjax('shoppingCartForm'),
						//onLoading: this.onLoadingHandler,
						onFailure: this.onFailureHandler,
						onComplete: this.onCompleteHandler
					});
			}
			else {
				AjaxShoppingcart.emptySelectionHandler();
			}
		} 
	},
	flashRunAjax:function(stringSKUList){
		MembersClass.addToProdList(stringSKUList);
		AjaxShoppingcart.runAjaxProduct('', '');		
	},
	runAjax:function(obj) {
		parseSkusforAjax('shoppingCartForm');
		AjaxShoppingcart.runAjaxProduct(obj, '');			
	},
				
	onLoadingHandler:function() {
		$('cgOverlayBody').innerHTML = '';
		$('cgOverlayBody').innerHTML = '<img src="/global/images/cg_loader_animation.gif" width="35" height="35">';
	},
	
	onFailureHandler:function() {
		clearTimeout(ajaxTimer);
		if(getLanguage() == '_sp') {
			$('cgOverlayBody').innerHTML = "Error de conexión. Por favor, inténtelo de nuevo más tarde.";
		}else{
			$('cgOverlayBody').innerHTML = 'Connection error. Please try again later.'
		}
	},
	onCompleteHandler:function(responseBack) {
		var oMessage = eval("(" + responseBack.responseText.strip() + ")");		
		var errMsg = oMessage.ajaxResponse.ErrMessage;
		$('cgOverlayBody').innerHTML = '';
		clearTimeout(ajaxTimer);
		if (errMsg.length == 0) { //no error
			if(getLanguage() == '_sp') {
				$('cgOverlayBody').innerHTML = "Adicionado a la canasta"; // + responseBack.responseText
				$('cgOverlayBody').innerHTML += '<br /><a href="/mycovergirl/myshoppinglist/">Ir a la canasta</a>'; // + responseBack.responseText
			}else{
				$('cgOverlayBody').innerHTML = "Successfully added to: Shopping Cart"; // + responseBack.responseText
				$('cgOverlayBody').innerHTML += '<br /><a href="/mycovergirl/myshoppinglist/">go to Shopping Cart</a>'; // + responseBack.responseText
			}
			manageShoppingCartCookie('shoppingCartForm', 'addSkus');
			AjaxCart.runAjax();
			trackShoppingCart(getQueryVariable('productId'), $('skuId').value);			
		}else {
			if(getLanguage() == '_sp') {
				$('cgOverlayBody').innerHTML = "Error, por favor inténtelo de nuevo más tarde.";
			}else{
				$('cgOverlayBody').innerHTML = "Error, please try again later.";
			}
			
		} 
		
		/* ajaxResponse.jsp should not contain any line breaks. Line breaks will prevent the javascript from transforming it into a javascript object(JSON) */
		try {$('dumpBox').innerHTML = responseBack.responseText.strip().escapeHTML();} catch(err){}
		setHideTimer();
	},	
	emptySelectionHandler:function() {
		if(getLanguage() == '_sp') {
			$('cgOverlayBody').innerHTML = "Por favor, seleccione al menos un producto";
		}else{
			$('cgOverlayBody').innerHTML = "Please select at least one product.";
		}
		setHideTimer();
	}
	
}

var AjaxShoppingcart = new AjaxShoppingcart;

var language = "";

function getProductId() {
	//productId on page if productId not passed in url
	try {
		return productId;
	}catch(err) {
	}		
	if(getQueryVariable('productId')) {
		return getQueryVariable('productId');
	}
	return null;
}

function getLanguage() {
	try {
		if(getProductId()) {
			return language = productId.substring(productId.length - 3, productId.length);
		}else{
			return null;
		}
	}catch(err) {
	}	
	return null;
}