var totalCompra = 0;
var lastAddedVerId = -1;	

function loadShoppingCart() {
	var oAjax = new WBE_AjaxClass();
	xmlObj = oAjax.throwEventXML('com_get_shopping_cart_xml');

	if (xmlObj) {
		printShoppingCart(xmlObj);
	} else {
		refresh();
	}
	
}

function refresh() {	
	// Muestra/oculta objetos
	document.getElementById('cuerpo_cesta_vacio').style.display = (totalCompra == 0 ? "" : "none");
	document.getElementById('cuerpo_cesta').style.display = (totalCompra != 0 ? "" : "none");
}

function printShoppingCart(xmlObj) {

	var oElem = document.getElementById('cuerpo_cesta');
	cleanDiv(oElem);	
	totalCompra = 0;
	
	if (xmlObj.childNodes[0].childNodes.length > 0) {
		var oWrapDiv = document.createElement('div');
		oWrapDiv.id = 'carrito';
		totalCompra = xmlObj.childNodes[1].firstChild.data;
		totalArticulos = 0;
		for(var i=0; i< xmlObj.childNodes[0].childNodes.length; i++)
		{
			var oChild = xmlObj.childNodes[0].childNodes[i];
			totalArticulos += parseInt(oChild.getElementsByTagName('qty')[0].firstChild.nodeValue);
		}
		
		var oProductLines = document.createElement('p');
		oProductLines.innerHTML = totalArticulos + ' artículos<span>' + totalCompra + ' &#8364;</span>';
		oWrapDiv.appendChild(oProductLines);
		
		var oActPed = document.createElement('div');
		oActPed.id = 'btn_small';
		//oActPed.className = 'small';
		oActPed.style.marginLeft = '16px';
			var aProc = document.createElement('a');
			aProc.href = 'proceso_compra_1.html';
			aProc.title = 'Pagar';
			aProc.innerHTML = 'Pagar';
		oActPed.appendChild(aProc);		
		oWrapDiv.appendChild(oActPed);
		
		var aProc2 = document.createElement('a');
		aProc2.href = 'proceso_compra_1.html';
		aProc2.title = 'Ver mi cesta';
		aProc2.style.marginLeft = '32px';
		aProc2.innerHTML = 'Ver mi cesta';	
		aProc2.className = 'black';
		oWrapDiv.appendChild(aProc2);
		
		oElem.appendChild(oWrapDiv);
	}
	// Redibuja objetos del carrito
	refresh();
}

function DelToCart(sLineId) {
	if(confirm('Va a eliminar el articulo de la cesta, ¿está seguro?')) {
		var objShoppingCart = new JSObj_shopping_cart();
		objShoppingCart.savePost = savePostDelExt;
		objShoppingCart.RemoveFromShoppingCart(sLineId);
		objShoppingCart = null;
	}
}

function ModifQty(sLineId) {
	var sNum = document.getElementById('input_qty_'+sLineId).value;
	if(sNum=='0') {
		confirm('¡La cantidad no puede ser negativa!');
		document.getElementById('input_qty_'+sLineId).value = '1';
	}
	else if (CheckQty(sNum)) {
		var objShoppingCart = new JSObj_shopping_cart();
		objShoppingCart.savePost = savePostQtyExt;
		objShoppingCart.UpdateQuantityOnShoppingCartLine(sLineId, sNum);
		objShoppingCart = null;
	}
}

function ModifAddQty(sLineId) {
	var oQty = document.getElementById('input_qty_'+sLineId);
	var iNum = parseInt(oQty.value) + 1;
	oQty.value = iNum;
	ModifQty(sLineId);
}

function ModifRemoveQty(sLineId) {
	var oQty = document.getElementById('input_qty_'+sLineId);
	var iNum = parseInt(oQty.value) - 1;
	if (IsNumeric(iNum)) {
		oQty.value = iNum;
		ModifQty(sLineId);
	}
}

function IsNumeric(PossibleNumber)
{
	var PNum = new String(PossibleNumber);
	var regex = /[^0-9]/;
	return !regex.test(PNum);
}


function CheckQty(iNumQty){
	var eReg = "^([1-9])[0-9]*$";
	if (iNumQty.match(eReg)) return true;
	else {
		alert('La cantidad introducida no es correcta.');
		return false;
	}
}

function AddCartAndBuy(sVerId) {
	AddToCart(sVerId);
	window.location.href = 'proceso_compra_1.html';
}
function AddToCart(sVerId)
{
	var objShoppingCart = new JSObj_shopping_cart();
	objShoppingCart.savePost = savePostAddExt;
	objShoppingCart.AddToShoppingCart(sVerId);
	objShoppingCart = null;
}

function savePostAddExt(xmlObj) {
	loadShoppingCart();
};

function savePostDelExt(xmlObj) {
	window.location.reload();
};

function savePostQtyExt(xmlObj) {
	window.location.reload();
};

function cleanDiv(oDiv) {
	if (oDiv) {
		while (oDiv.childNodes.length > 0) {
			var oTmp = oDiv.childNodes[0];
			cleanDiv(oTmp)
			oDiv.removeChild(oTmp);
		}
	}
}