/* Desarrollado por PA, modificado por Multiplica el 12 de diciembre de 2011 */
var cerrarMensajeExito = null; 
var cerrarMensajeError = null;

//$(document).ready(function(){
function cargarMensajes(){
	if($("#great").length < 1){ 
		$('#main').prepend('<div id="great"><a class="btn-cerrar" href="#"><img src="/dys/img/icn/icn_delete.png"></a><img src="/dys/img/icn/icn_great.png" ><div id="successDiv"></div><div id="anchorDivFirstFood"><strong>El despacho de supermercado es sólo para la Región Metropolitana, revisa nuestras zonas de cobertura&nbsp;<a style="color:red" href="/dys/home.jsp"><strong></strong></a><strong><a href="/dys/content/content.jsp?pageName=ZonasCoberturaSupermercado">  aquí </a></strong></strong></div></div>');
	
		$("#great .btn-cerrar").click(function(){
			$(this).parent().fadeOut();
			return false;
		});
	}
	
	if($("#warning").length < 1){
		 $('#main').prepend('<div id="warning"><a class="btn-cerrar" href="#"><img src="/dys/img/icn/icn_delete.png"></a><img src="/dys/img/icn/icn_advice.png"><div id="errorDiv"></div></div>');
	
		$("#warning .btn-cerrar").click(function(){
			$(this).parent().fadeOut();
			return false;
		});
	}
	
	cerrarMensajeExitoAutomaticamente();
	//cerrarMensajeErrorAutomaticamente();
//});
};

window.onload = cargarMensajes;

var type;	
	function isNumberKey(evt) {
		var charCode = (evt.which) ? evt.which : event.keyCode
			if (charCode > 31 && (charCode < 48 || charCode > 57)) {
				return false;
			}
		return true;
	}
	
	function createRequestObject() {
		var req;
		if (window.XMLHttpRequest) {
			//For Firefox, Safari, Opera
			req = new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			//For IE 6+
			req = new ActiveXObject("Microsoft.XMLHTTP");
		} else{
			//Error for an old browser
			alert('Lo siento, tu navegador es demasiado antiguo, algunas funcionalidad podrían no estar disponibles');
		}
		return req;
	}

	//Make the XMLHttpRequest Object
	var http = createRequestObject();

	function addItemToOrder(pType,pIsSecureUrl,productId, skuId, itemProductType, itemType, contextPath, foodLevelOneCatId, searchQues, searchTrial, formObj, quantityIndex, originalQtyInOrder) {
		type = pType;
		var method = 'get';
		var quantity = 0;
		if (formObj != '' && quantityIndex == '') {
			quantity = formObj.skuModifier.value;
		} else {
			quantity = document.getElementById(quantityIndex).value;
		}
		// Start : added for QuickFood search results page cart overlay.
		var qsleftNav = false;
		var qsleftNavElement = document.getElementById("qsleftNav");		
		if(qsleftNavElement != null && qsleftNavElement != undefined){
			qsleftNav = qsleftNavElement.value;
		}
		// End : added for QuickFood search results page cart overlay.
		if(pIsSecureUrl =="false"){
			var url = contextPath+"/common/addStandardItemToCart.jsp";
		}else{
			var url = contextPath+"/common/addStandardItemToCartForSecuredPages.jsp";
		}
		url = url + "?skuId=" + skuId + "&productId=" + productId + "&quantity=" + quantity + "&itemType=" + itemType+ "&itemProductType=" + itemProductType + "&foodLevelOneCatId=" + foodLevelOneCatId + "&searchQues=" + searchQues + "&searchTrial=" + searchTrial + "&qsleftNav=" + qsleftNav
		ajaxRendererForAddingItems(method, url, qsleftNav, formObj, quantityIndex, originalQtyInOrder, quantity);
	}
	
	function addBundleItemToOrder(productId,pIsSecureUrl, skuId, itemProductType, itemType, contextPath, foodLevelOneCatId, searchQues, searchTrial, formObj, quantityIndex, originalQtyInOrder) {
		var method = 'get';
		var quantity = 0;
		if (formObj != '' && quantityIndex == '') {
			quantity = formObj.skuModifier.value;
		} else {
			quantity = document.getElementById(quantityIndex).value;
		}
		// Start : added for QuickFood search results page cart overlay.
		var qsleftNav = false;
		var qsleftNavElement = document.getElementById("qsleftNav");		
		if(qsleftNavElement != null && qsleftNavElement != undefined){
			qsleftNav = qsleftNavElement.value;
		}
		// End : added for QuickFood search results page cart overlay.
		if(pIsSecureUrl =="false"){
			var url = contextPath+"/common/addBundleToCart.jsp";
		}else{
			var url = contextPath+"/common/addBundleToCartForSecuredPages.jsp";
		}
		url = url + "?skuId=" + skuId + "&productId=" + productId + "&quantity=" + quantity + "&itemType=" + itemType+ "&itemProductType=" + itemProductType + "&foodLevelOneCatId=" + foodLevelOneCatId + "&searchQues=" + searchQues + "&searchTrial=" + searchTrial + "&qsleftNav=" + qsleftNav
		ajaxRendererForAddingItems(method, url, qsleftNav, formObj, quantityIndex, originalQtyInOrder, quantity);		
	}
	
	function addVirtualPackItemToOrder(virtualPackCatId, foodLevelOneCatId, packItemId, virtualPackProductId, contextPath, quantityIndex, formObj, originalQtyInOrder) {
		var method = 'get';
		var quantity = document.getElementById(quantityIndex).value;
		// Start : added for QuickFood search results page cart overlay.
		var qsleftNav = false;
		var qsleftNavElement = document.getElementById("qsleftNav");		
		if(qsleftNavElement != null && qsleftNavElement != undefined){
			qsleftNav = qsleftNavElement.value;
		}
		// End : added for QuickFood search results page cart overlay.
		var url = contextPath+"/common/addVirtualPackToCart.jsp";
		url = url + "?virtualPackCatId=" + virtualPackCatId + "&foodLevelOneCatId=" + foodLevelOneCatId + "&quantity=" + quantity + "&packItemId=" + packItemId+ "&virtualPackProductId=" + virtualPackProductId
		ajaxRendererForAddingItems(method, url, qsleftNav, formObj, quantityIndex, originalQtyInOrder, quantity);		
	}
	
	function cerrarMensajeExitoAutomaticamente(){
		agregarUrlaCarroRapido();
		clearTimeout('cerrarMensajeExito');
		cerrarMensajeExito = setTimeout(function(){_cerrarMensajeExito(); },6000);
	}
	
	function _cerrarMensajeExito(){
		$('#great').fadeOut();
	}
	
	function cerrarMensajeErrorAutomaticamente(){
		agregarUrlaCarroRapido();
		clearTimeout('cerrarMensajeError');
		cerrarMensajeExito = setTimeout(function(){_cerrarMensajeError(); },6000);
	}

	function _cerrarMensajeError(){
		$('#warning').fadeOut();
	}

	
	function ajaxRendererForAddingItems(method, url, qsleftNav, formObj, quantityIndex, originalQtyInOrder, pQuantity) {
		http.open(method,url);
		http.onreadystatechange = function() {
			if(http.readyState == 4 && http.status == 200) {
				var response = http.responseText;
				
				var errorIndexText = "error::";
				var errorIndexTextSize = errorIndexText.length;
				var errorIndex = response.indexOf(errorIndexText);
				var requestedURI = window.location.href;
				var locateErrorDivText = "#warning";				
				var locateSuccessDivText = "#great";
				var hashSymbol = "#";
				if (formObj != '' && quantityIndex == ''){
					formObj.skuModifier.value = 1;
				} else {
					document.getElementById(quantityIndex).value = originalQtyInOrder;
				}
				if(document.getElementById("simpleRequestError") != null && document.getElementById("simpleRequestError") != undefined){
					$("#simpleRequestError").hide();
				}
				if(document.getElementById("errorNews") != null && document.getElementById("errorNews") != undefined){
					$("#errorNews").hide();
				}
				if(errorIndex > -1){
					$("#errorDiv").html("<strong>" + response.substring(errorIndex + errorIndexTextSize) + "</strong>");
					$("#great, #anchorDivFirstFood").hide();
					$("#warning").show();
					cerrarMensajeErrorAutomaticamente();
					/*					
					if (requestedURI != null && requestedURI != '') {
						if (requestedURI.lastIndexOf(hashSymbol) > -1) {
							requestedURI = requestedURI.substring(0, requestedURI.lastIndexOf(hashSymbol));
						}
						//window.location.href = requestedURI+"#warning";
					}
					*/
				} else {					
					var quickViewContent = "";
					var quickViewCartStart = "quickViewCartStart::"
					var quickViewCartEnd = "quickViewCartEnd::"						
					var quickViewCartStartIndex = response.indexOf(quickViewCartStart);
					var quickViewCartEndIndex = response.indexOf(quickViewCartEnd);
					var firstFoodProductSuccessFullyAddedKeyIndex = response.indexOf("#firstFoodProductSuccessFullyAdded#");
					
					var successMessage = "";
					var successPrefixText = "successStart::";
					// Start : added for QuickFood search results page cart overlay.
					var successSuffixText = "successEnd::"
					var successPrefixTextIndex = response.indexOf(successPrefixText);
					// Start : added for QuickFood search results page cart overlay.
					var successSuffixTextIndex = response.indexOf(successSuffixText);
					
					var openParenthesisSymbol = "(";
					var ampersandSymbol = "&";
					var cartQuantity = 0;
					
					if (quickViewCartStartIndex > -1) {
						$("#ajaxCartQuantity").html("<a title='enlace' class='items'>" + response.substring(0, quickViewCartStartIndex) + "</a>");
						cartQuantity = response.substring(0, quickViewCartStartIndex);
					} else if (successPrefixTextIndex > -1) {
						$("#ajaxCartQuantity").html("<a title='enlace' class='items'>" + response.substring(0, successPrefixTextIndex) + "</a>");
						cartQuantity = response.substring(0, successPrefixTextIndex);
					} else {
						$("#ajaxCartQuantity").html("<a title='enlace' class='items'>" + response + "</a>");
						cartQuantity = response;
					}
					if (cartQuantity != null && cartQuantity != undefined) {
						cartQuantity = cartQuantity.substring(cartQuantity.indexOf(openParenthesisSymbol) + 1, cartQuantity.indexOf(ampersandSymbol));
					} else {
						cartQuantity = 0;
					}
					if (quickViewCartStartIndex > -1 && quickViewCartEndIndex > -1) {
						quickViewContent = response.substring(quickViewCartStartIndex + quickViewCartStart.length, quickViewCartEndIndex);
						if (cartQuantity == pQuantity) {
							$("#superCartContent").html(quickViewContent);
							toggleQuickCart();
						} else {
							$("#ajaxQuickCartContent").html(quickViewContent);
							toggleQuickCartContent();
						}
					}
					// Start : added for QuickFood search results page cart overlay.
					if(qsleftNav == 'true'){
						var qsViewContent = "";
						var qsLeftNavStart = "QSLeftNavStart"
						var qsLeftNavEnd = "QSLeftNavEnd"						
						var qsViewCartStartIndex = response.indexOf(qsLeftNavStart);
						var qsViewCartEndIndex = response.indexOf(qsLeftNavEnd);					
						if (qsViewCartStartIndex > -1 && qsViewCartEndIndex > -1) {
							qsViewContent = response.substring(qsViewCartStartIndex + qsLeftNavStart.length, qsViewCartEndIndex);
							$("#qsSearchContent").html(qsViewContent).show();
						}	
					}
					if(successPrefixTextIndex > -1 && type == "crossSellingProduct"){
						$("#successMsgForUpsellingProduct").show();
						//window.location.href = "#successMsgForUpsellingProduct";
					}
					// End : added for QuickFood search results page cart overlay.
					if (successPrefixTextIndex > -1 && successSuffixTextIndex > -1) {
						// Start : Modified for QuickFood search results page cart overlay.
						successMessage = response.substring(successPrefixTextIndex + successPrefixText.length, successSuffixTextIndex);
						document.getElementById("successDiv").innerHTML = "<strong>" + successMessage + "</strong>";
						document.getElementById("warning").style.display='none';
						document.getElementById("anchorDivFirstFood").style.display='none';
						document.getElementById("great").style.display='block';
						if (firstFoodProductSuccessFullyAddedKeyIndex > -1) {
							$("#anchorDivFirstFood").show();
						}
					}
					$("#ajaxPagar").show();
					$("#normalPagar, #removePagar").hide();
					cerrarMensajeExitoAutomaticamente();			
					/*
					if (requestedURI != null && requestedURI != '') {
						if (requestedURI.lastIndexOf(hashSymbol) > -1) {
							requestedURI = requestedURI.substring(0, requestedURI.lastIndexOf(hashSymbol));
						}
						//window.location.href = requestedURI+"#great";
					}
					*/
				}
			} 
		}
		http.send(null);
	}
	var isSecureUrl;
	function removeItemFromCart(pIsSecureUrl,selectedShippingRelId, parentItemId, contextPath, searchQues, searchTrials) {
		isSecureUrl =pIsSecureUrl;
		var method = 'get';
		var searchTrail  = searchTrials;
		var searchTrialId = document.getElementById("searchTrialId");
		if(searchTrialId != null && searchTrialId != undefined){
			searchTrial = searchTrialId.value;
		}
		var url = contextPath+"/common/removeItemFromNonSecureCart.jsp";
		// Start : added for QuickFood search results page cart overlay.
		var qsleftNav = false;
		var qsleftNavElement = document.getElementById("qsleftNav");		
		if(qsleftNavElement != null && qsleftNavElement != undefined){
			qsleftNav = qsleftNavElement.value;
		}
		// End : added for QuickFood search results page cart overlay.
		url = url + "?selectedShippingRelId=" + selectedShippingRelId + "&parentItemId=" + parentItemId + "&itemType=standard&searchQues=" + searchQues + "&searchTrial=" + searchTrial + "&qsleftNav=" + qsleftNav ;
		ajaxRendererForRemovingItems(method, url, qsleftNav);
	}
	function removeItemFromSecureCart(pIsSecureUrl,selectedShippingRelId, parentItemId, contextPath, searchQues, searchTrials) {
		isSecureUrl =pIsSecureUrl;
		var method = 'get';
		var searchTrail  = searchTrials;
		var searchTrialId = document.getElementById("searchTrialId");
		if(searchTrialId != null && searchTrialId != undefined){
			searchTrial = searchTrialId.value;
		}
		var url = contextPath+"/common/removeItemFromCart.jsp";
		// Start : added for QuickFood search results page cart overlay.
		var qsleftNav = false;
		var qsleftNavElement = document.getElementById("qsleftNav");		
		if(qsleftNavElement != null && qsleftNavElement != undefined){
			qsleftNav = qsleftNavElement.value;
		}
		// End : added for QuickFood search results page cart overlay.
		url = url + "?selectedShippingRelId=" + selectedShippingRelId + "&parentItemId=" + parentItemId + "&itemType=standard&searchQues=" + searchQues + "&searchTrial=" + searchTrial + "&qsleftNav=" + qsleftNav ;
			ajaxRendererForRemovingItems(method, url, qsleftNav);
	}
	


	function removePackOrBundleItemFromCart(commerceItemIds,selectedShippingRelId, contextPath, searchQues, searchTrials) {
		isSecureUrl ="false";
		var method = 'get';
		var searchTrail  = searchTrials;
		var searchTrialId = document.getElementById("searchTrialId");
		if (commerceItemIds == 'null') {
			commerceItemIds = '';
		}
		if(searchTrialId != null && searchTrialId != undefined){
			searchTrial = searchTrialId.value;
		}
		var url = contextPath+"/common/removeItemFromNonSecureCart.jsp";
		// Start : added for QuickFood search results page cart overlay.
		var qsleftNav = false;
		var qsleftNavElement = document.getElementById("qsleftNav");		
		if(qsleftNavElement != null && qsleftNavElement != undefined){
			qsleftNav = qsleftNavElement.value;
		}
		// End : added for QuickFood search results page cart overlay.
		url = url + "?selectedShippingRelId=" + selectedShippingRelId + "&itemType=bundle&commerceItemIds=" + commerceItemIds +"&searchQues=" + searchQues + "&searchTrial=" + searchTrial + "&qsleftNav=" + qsleftNav
		ajaxRendererForRemovingItems(method, url, qsleftNav);
	}
	
	

	
	function removePackOrBundleItemFromSecureCart(commerceItemIds,selectedShippingRelId, contextPath, searchQues, searchTrials) {
		isSecureUrl ="true";
		var method = 'get';
		var searchTrail  = searchTrials;
		var searchTrialId = document.getElementById("searchTrialId");
		if (commerceItemIds == 'null') {
			commerceItemIds = '';
		}
		if(searchTrialId != null && searchTrialId != undefined){
			searchTrial = searchTrialId.value;
		}
		var url = contextPath+"/common/removeItemFromCart.jsp";
		// Start : added for QuickFood search results page cart overlay.
		var qsleftNav = false;
		var qsleftNavElement = document.getElementById("qsleftNav");		
		if(qsleftNavElement != null && qsleftNavElement != undefined){
			qsleftNav = qsleftNavElement.value;
		}
		// End : added for QuickFood search results page cart overlay.
		url = url + "?selectedShippingRelId=" + selectedShippingRelId + "&itemType=bundle&commerceItemIds=" + commerceItemIds +"&searchQues=" + searchQues + "&searchTrial=" + searchTrial + "&qsleftNav=" + qsleftNav
		ajaxRendererForRemovingItems(method, url, qsleftNav);
	}
	
	function ajaxRendererForRemovingItems(method, url, qsleftNav) {
		http.open(method, url);
		http.onreadystatechange = function() {
			if(http.readyState == 4 && http.status == 200) {
				var response = http.responseText;
				var errorIndexText = "error::";
				var errorIndexTextSize = errorIndexText.length;
				var errorIndex = response.indexOf(errorIndexText);
				var requestedURI = window.location.href;
				var locateErrorDivText = "#warning";	
				if(document.getElementById("simpleRequestError") != null && document.getElementById("simpleRequestError") != undefined){
					$("#simpleRequestError").hide();
				}
				
				if(errorIndex > -1){
					$("#errorDiv").html("<strong>" + response.substring(errorIndex + errorIndexTextSize) + "</strong>");					
				} else {					
					var quickViewContent = "";
					var quickViewCartStart = "quickViewCartStart::"
					var quickViewCartEnd = "quickViewCartEnd::"						
					var quickViewCartStartIndex = response.indexOf(quickViewCartStart);
					var quickViewCartEndIndex = response.indexOf(quickViewCartEnd);
					var successMessage = "";
					var successPrefixText = "successStart::";
					// Start : added for QuickFood search results page cart overlay.
					var successSuffixText = "successEnd::"
					var successPrefixTextIndex = response.indexOf(successPrefixText);
					// Start : added for QuickFood search results page cart overlay.
					var successSuffixTextIndex = response.indexOf(successSuffixText);
					var responseStr = response.substring(0, quickViewCartStartIndex);
					
					var openParenthesisSymbol = "(";
					var ampersandSymbol = "&";
					var cartQuantity = 0;
					
					if (quickViewCartStartIndex > -1) {
						$("#ajaxCartQuantity").html("<a title='enlace' class='items'>" + response.substring(0, quickViewCartStartIndex) + "</a>");
						cartQuantity = response.substring(0, quickViewCartStartIndex);
					} else {
						$("#ajaxCartQuantity").html("<a title='enlace' class='items'>" + response + "</a>");
						cartQuantity = response;
					}
					if (cartQuantity != null && cartQuantity != undefined) {
						cartQuantity = cartQuantity.substring(cartQuantity.indexOf(openParenthesisSymbol) + 1, cartQuantity.indexOf(ampersandSymbol));
					} else {
						cartQuantity = 0;
					}
					if (quickViewCartStartIndex > -1 && quickViewCartEndIndex > -1) {						
						quickViewContent = response.substring(quickViewCartStartIndex + quickViewCartStart.length, quickViewCartEndIndex);
						if (cartQuantity == 0) {
							$("#superCartContent").html(quickViewContent);
							toggleQuickCart();
						} else {
							$("#ajaxQuickCartContent").html(quickViewContent);
							toggleQuickCartContent();
						}						
					}				
					// Start : added for QuickFood search results page cart overlay.
					if (qsleftNav == 'true') {
						var qsViewContent = "";
						var qsLeftNavStart = "QSLeftNavStart"
						var qsLeftNavEnd = "QSLeftNavEnd"						
						var qsViewCartStartIndex = response.indexOf(qsLeftNavStart);
						var qsViewCartEndIndex = response.indexOf(qsLeftNavEnd);					
						if (qsViewCartStartIndex > -1 && qsViewCartEndIndex > -1) {
							qsViewContent = response.substring(qsViewCartStartIndex + qsLeftNavStart.length, qsViewCartEndIndex);
							$("#qsSearchContent").html(qsViewContent).show();
						}	
					}
					// End : added for QuickFood search results page cart overlay.
					if (successPrefixTextIndex > -1 && successSuffixTextIndex > -1) {
						// Start : Modified for QuickFood search results page cart overlay.
						successMessage = response.substring(successPrefixTextIndex + successPrefixText.length, successSuffixTextIndex);
						$("#successDiv").html("<strong>" + successMessage + "</strong>");
						$("#warning, #anchorDivFirstFood").hide();
						
						$("#great").show();
						
						/*
						if (requestedURI != null && requestedURI != '') {							
							window.location.href = requestedURI+"#great";
						}*/
					}
					if (cartQuantity == 0) {
						$("#ajaxPagar, #normalPagar").hide();
						document.getElementById("removePagar").style.display='block';
					}
					cerrarMensajeExitoAutomaticamente();
				}	
				//added to display the next item in the quickCart page.
				ajaxCallForRemovingItemForQuickCart(isSecureUrl);
			} 
		}
		http.send(null);
	}
	
	function toggleQuickCart() {
		$("#supercart a.toggle").toggle(function(){
			$(this).parent().animate({'bottom':'0px'}, 300);
			$(this).css({'backgroundPosition':'center -16px'});
			return false;
		},function(){
			$(this).parent().animate({'bottom':'-114px'}, 300);
			$(this).css({'backgroundPosition':'center 0px'});
			return false;
		});
		
		$('#supercart .eliminar').click(function(){$(this).parent().remove(); $("#tultip").fadeOut();});
		
		$(".superscroll").scrollable({size:'6',clickable: false});
		
		$('#supercart .item input.eliminar').hide();
		$('#supercart .item').hover(function() {
				var eliminar = $(this).find("input.eliminar")
				var contenido = $(this).find("div.info").html();	
				var papa = $(this).parent().position();
				var hijo = $(this).position();
				var posicion = papa.left + hijo.left + 50;
			    var t = setTimeout(function() {
			    	$(eliminar).fadeIn();
					$("#sobretultip").fadeIn();
					$("#tultip").html(contenido).fadeIn();
					$("#sobretultip").css({"left":posicion});
			    }, 500);
			    $(this).data('timeout', t);
			}, function() {
				clearTimeout($(this).data('timeout'));
				$(this).find("input.eliminar").fadeOut();
				$("#tultip").fadeOut();
	    });
	}
	
	function toggleQuickCartContent() {
		$('#supercart .eliminar').click(function(){$(this).parent().remove(); $("#tultip").fadeOut();});
		
		$(".superscroll").scrollable({size:'6',clickable: false});
		
		$('#supercart .item input.eliminar').hide();
		$('#supercart .item').hover(function() {
				var eliminar = $(this).find("input.eliminar")
				var contenido = $(this).find("div.info").html();	
				var papa = $(this).parent().position();
				var hijo = $(this).position();
				var posicion = papa.left + hijo.left + 50;
			    var t = setTimeout(function() {
			    	$(eliminar).fadeIn();
					$("#sobretultip").fadeIn();
					$("#tultip").fadeIn();
					$("#tultip").html(contenido);
					$("#sobretultip").css({"left":posicion});
			    }, 500);
			    $(this).data('timeout', t);
			}, function() {
				clearTimeout($(this).data('timeout'));
				$(this).find("input.eliminar").fadeOut();
				$("#tultip").fadeOut();
	    });
	}
