﻿var lastAddedVerId = -1;

var jsc_text_shopping_cart = 'carro de compra';
var jsc_text_discount = 'descuento: ';
var jsc_text_total = 'total: ';
var jsc_text_shipping = 'gastos de env&iacute;o: ';
var jsc_text_go = 'proceder a la compra!';
var jsc_text_confirm_delete = 'Se va a eliminar el producto del carrito. ¿Estás seguro?';
var jsc_text_tax = '+ IVA';
var jsc_text_tax_label = 'IVA: ';

function loadShoppingCart() {
	var oAjax = new WBE_AjaxClass();
	xmlObj = oAjax.throwEventXML('com_get_shopping_cart_xml');
	
	if (xmlObj) {
		printShoppingCart(xmlObj);
	} else {
		cleanShoppingCart(xmlObj);
	}
}

function cleanShoppingCart(xmlObj) {
	var oElem = document.getElementById('carrito'); 
	cleanDiv(oElem);
	oElem.style.display = 'none';
}

function printShoppingCart(xmlObj) {

	var oElem = document.getElementById('carrito'); 
	cleanDiv(oElem);
	
	if (xmlObj.childNodes[0].childNodes.length <= 0) // Carrito vacio
	{
		oElem.style.display = 'none';
	}
	else
	{
		oElem.style.display = 'block';
	}
	
	if (xmlObj.childNodes[0].childNodes.length > 0) {

		var oTemp = document.createElement('h3');
		oTemp.innerHTML = jsc_text_shopping_cart;
		oElem.appendChild(oTemp);
		
		//var oWrapDiv = document.createElement('div');
		//oWrapDiv.id = 'carrito_wrap';

			var oTable = document.createElement('table');
			//oTableLines.cellPadding = '0';
			//oTableLines.cellSpacing = '0';

			//var oTableLines = document.createElement('tbody');

			append_order_lines(oTable);

			//oTable.appendChild(oTableLines);

			var oTableFooter = oTable.createTFoot();

			append_order_resume(oTableFooter, xmlObj);

			oTable.appendChild(oTableFooter);
				
			oElem.appendChild(oTable);

			
		//oElem.appendChild(oWrapDiv);

		var oActPed = document.createElement('div');
		oActPed.id = 'actualizarPedido';
		oActPed.className = 'floatright';

		append_btn_comprar(oActPed);
		
		oElem.appendChild(oActPed);

		highlightItem();
	}
//	alert(oElem.innerHTML);
}

function append_order_lines(oTableLines)
{
	var oAjax = new WBE_AjaxClass();
	for (var i = 0; i < xmlObj.childNodes[0].childNodes.length; i++) {
		var oNode = xmlObj.childNodes[0].childNodes[i];
		var verId = oAjax.getXMLNodeValue(oNode, 'ver_id');
		var prodName = oAjax.getXMLNodeValue(oNode, 'name');
		var price = oAjax.getXMLNodeValue(oNode, 'price');
		var qty = oAjax.getXMLNodeValue(oNode, 'qty');
		var cntId = oAjax.getXMLNodeValue(oNode, 'cnt_id');
		var lineNum = oAjax.getXMLNodeValue(oNode, 'number');

		var oRow = oTableLines.insertRow(i);
		oRow.id = 'line_' + verId;

			append_td_delete(oRow, lineNum);
			append_td_price(oRow, price);
			append_td_title(oRow, cntId, prodName);
			append_td_Qty(oRow, lineNum, qty);
	}
}

function append_td_Qty(oRow, lineNum, qty){
	var oColQty = oRow.insertCell(0);
	oColQty.className = 'cantidad';
	
		var oQtyInput = document.createElement('input');
		oQtyInput.id = 'input_qty_' + lineNum;
		oQtyInput.type = 'text';
		oQtyInput.value = qty;
		addEvent(oQtyInput, 'change', clickQty);

	oColQty.appendChild(oQtyInput);
}
function append_td_title(oRow, cntId, prodName){
	var oColTitle = oRow.insertCell(0);
	oColTitle.className = 'nombre';
	
		var oTitleA = document.createElement('a');
		if (cntId) {
			oTitleA.href = 'producto_' + cntId + '.html';
			//oTitleA.alt = prodName;
			//oTitleA.title = prodName;
		}
		oTitleA.innerHTML = prodName;

	oColTitle.appendChild(oTitleA);
}
function append_td_price(oRow, price){
	var oColPrice = oRow.insertCell(0);
	oColPrice.className = 'precio';
	
	/*
		var oPriceStrong = document.createElement('strong');
		oPriceStrong.innerHTML = price + '&#8364;';

	oColPrice.appendChild(oPriceStrong);
	*/
	oColPrice.innerHTML = price + '&#160;&#8364;';
}
function append_td_delete(oRow, lineNum){
	var oColDel = oRow.insertCell(0);
	oColDel.className = 'eliminar';
	
		var oDelA = document.createElement('a');
		oDelA.href = '#sc';
		oDelA.id = 'a_del_' + lineNum;
		oDelA.innerHTML = '<img src="/config/skin/00_xpress_common/images/ico_borrar.gif" alt="Papelera"/>';
		addEvent(oDelA, 'click', clickDel);

	oColDel.appendChild(oDelA);
}

function append_order_resume(oTableFooter, xmlObj)
{
	//var oTotalCompr = document.createElement('div');
	//oTotalCompr.id = 'totalCompra';
	
	var oRow = oTableFooter.insertRow(0);
	oRow.id = 'totalCompra';

	var oCol = oRow.insertCell(0);
	oCol.className = 'txtright';
	oCol.colSpan = '4';
		
		var ooTotalCompr1 = document.createElement('small');
		ooTotalCompr1.innerHTML = jsc_text_total;
	
		var ooTotalCompr2 = document.createElement('strong');
		ooTotalCompr2.className = 'colored';
		//ooTotalCompr2.innerHTML = ' ' + xmlObj.childNodes[1].firstChild.data + ' &#8364;' + ' ';
		ooTotalCompr2.innerHTML = ' ' + xmlObj.childNodes[3].firstChild.data + ' &#8364;' + ' ';
	
		var ooTotalCompr3 = document.createElement('small');
		ooTotalCompr3.innerHTML = jsc_text_tax;
		
		oCol.appendChild(ooTotalCompr1);
		oCol.appendChild(ooTotalCompr2);
		oCol.appendChild(ooTotalCompr3);


	//price total 3

	//tax 4
	var tax = xmlObj.childNodes[4].firstChild.data;
	if (tax && tax != '0') 
	{
		oRow = oTableFooter.insertRow(0);
		oRow.id = 'totalCompra2';

		var oCol0 = oRow.insertCell(0);
		oCol0.className = 'txtright';
		oCol0.colSpan = '4';

		var ooTotalComprDisc1 = document.createElement('small');
		ooTotalComprDisc1.innerHTML = jsc_text_tax_label;

		var ooTotalComprDisc2 = document.createElement('strong');
		ooTotalComprDisc2.className = 'colored';
		ooTotalComprDisc2.innerHTML = tax + ' &#8364;';
		
		var oBR = document.createElement('br');

		oCol0.appendChild(ooTotalComprDisc1);
		oCol0.appendChild(ooTotalComprDisc2);
		oCol0.appendChild(oBR);
	}
	
	//shipping 5
	var shipping = xmlObj.childNodes[5].firstChild.data;
	if (shipping && shipping != '0') 
	{
		oRow = oTableFooter.insertRow(0);
		oRow.id = 'totalCompra2';

		var oCol0 = oRow.insertCell(0);
		oCol0.className = 'txtright';
		oCol0.colSpan = '4';

		var ooTotalComprDisc1 = document.createElement('small');
		ooTotalComprDisc1.innerHTML = jsc_text_shipping;

		var ooTotalComprDisc2 = document.createElement('strong');
		ooTotalComprDisc2.className = 'colored';
		ooTotalComprDisc2.innerHTML = shipping + ' &#8364;';
		
		var oBR = document.createElement('br');

		oCol0.appendChild(ooTotalComprDisc1);
		oCol0.appendChild(ooTotalComprDisc2);
		oCol0.appendChild(oBR);
	}
	
	//	discount
	var discount = xmlObj.childNodes[2].firstChild.data;
	if (discount && discount != '0') 
	{
		oRow = oTableFooter.insertRow(0);
		oRow.id = 'totalCompra2';

		var oCol0 = oRow.insertCell(0);
		oCol0.className = 'txtright';
		oCol0.colSpan = '4';

		var ooTotalComprDisc1 = document.createElement('small');
		ooTotalComprDisc1.innerHTML = jsc_text_discount;

		var ooTotalComprDisc2 = document.createElement('strong');
		ooTotalComprDisc2.className = 'colored';
		ooTotalComprDisc2.innerHTML = '-' + discount + ' &#8364;';
		
		var oBR = document.createElement('br');

		oCol0.appendChild(ooTotalComprDisc1);
		oCol0.appendChild(ooTotalComprDisc2);
		oCol0.appendChild(oBR);
	}
	
}

function append_btn_comprar(oActPed) {
	var oProcBtn = document.createElement('div');
	oProcBtn.className = 'btn';
	
		var aProc = document.createElement('a');
		aProc.href = 'proceso_compra_1.html';
		aProc.innerHTML = jsc_text_go;

		oProcBtn.appendChild(aProc);

	oActPed.appendChild(oProcBtn);
	
	var oProcBr = document.createElement('br');
	oProcBr.clear = 'all';
	
	oActPed.appendChild(oProcBr);
}


function clickDel(e) {
	var sNum = this.id.substring('a_del_'.length, this.id.length);
	if(confirm(jsc_text_confirm_delete)) {
		var objShoppingCart = new JSObj_shopping_cart();
		objShoppingCart.savePost = savePostExt;
		objShoppingCart.RemoveFromShoppingCart(sNum);
		objShoppingCart = null;
	}
}

function clickQty(e) {
	var sNum = this.id.substring('input_qty_'.length, this.id.length);
	var objShoppingCart = new JSObj_shopping_cart();
	objShoppingCart.savePost = savePostExt;
	objShoppingCart.UpdateQuantityOnShoppingCartLine(sNum, this.value);
	objShoppingCart = null;
}

function AddToCart(sVerId)
{
	lastAddedVerId = sVerId;
	
	var objShoppingCart = new JSObj_shopping_cart();
	objShoppingCart.savePost = savePostExt;
	objShoppingCart.AddToShoppingCart(sVerId);
	objShoppingCart = null;
}

function savePostExt(xmlObj) {
	var oAjax = new WBE_AjaxClass();
	//var oNode = xmlObj.childNodes[0];
	if (xmlObj){
		var sAlert = oAjax.getXMLNodeValue(xmlObj, 'alert');
		if (sAlert && sAlert != "" && sAlert != " ")
			alert(sAlert);
	}
	loadShoppingCart();
};

function highlightItem() {	
	return;
	if (lastAddedVerId != -1) {
		//para evitar conflictos con la prototype.js
		var $j = jQuery.noConflict();
		$j('#line_' + lastAddedVerId).colorBlend([
			{toColor:"#FFCC00", param:"background-color", duration:3000, cycles:1}]);
	}
	lastAddedVerId = -1;
}

function cleanDiv(oDiv) {
	if (oDiv) {
		while (oDiv.childNodes.length > 0) {
			var oTmp = oDiv.childNodes[0];
			cleanDiv(oTmp)
			oDiv.removeChild(oTmp);
		}
	}
}


function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}

function showSCStepHelp(i) {
	if (document.getElementById('pc_1')) {
		document.getElementById('pc_1').style.display = 'none';
		document.getElementById('pc_2').style.display = 'none';
		document.getElementById('pc_3').style.display = 'none';
		document.getElementById('pc_' + i).style.display = '';
	}
}

function toggleCat1(i) {
	var oElem = document.getElementById('ul_sl_' + i);
	if (oElem) {
		if (oElem.style.display == 'none') oElem.style.display = '';
		else oElem.style.display = 'none';
	}
}

function toggleCat2(i) {
	var oElem = document.getElementById('ul_tl_' + i);
	if (oElem) {
		if (oElem.style.display == 'none') oElem.style.display = '';
		else oElem.style.display = 'none';
	}
}

function openCatInTree(i) {
	var oElem = document.getElementById('a_cat_' + i);
	if (oElem) oElem.style.fontWeight = 'bold';
	oElem = document.getElementById('li_cat_' + i);
	while (oElem) {
		if (oElem.id) {
			if ((oElem.id.indexOf('ul_sl_') == 0) || (oElem.id.indexOf('ul_tl_') == 0)) oElem.style.display = '';
			if (oElem.id.indexOf('ul_sl_') == 0) break;
		}
		oElem = oElem.parentNode;
	}
	toggleCat1(i);
	toggleCat2(i);
}

function showCurrenciesLink(sCurr) {
	var oAjax = new WBE_AjaxClass();
	oAjax.addPostParameter('value', sCurr);
	xmlObj = oAjax.throwEventXML('currency_get_value_in_active_currencies');

	if (xmlObj && xmlObj.childNodes[0] && xmlObj.childNodes[0].childNodes.length > 0) {
		document.getElementById('a_currencies').style.display = '';

		var oTable = document.getElementById('t_currency_msg');
		for (var i = 0; i < xmlObj.childNodes.length; i++) {
			var oNode = xmlObj.childNodes[i];
		
			var oRow = oTable.insertRow(parseInt(i) + 1);
			oRow.id = 'curr_row_' + i;

			var oCell1 = oRow.insertCell(0);
			oCell1.innerHTML = oNode.childNodes[2].firstChild.data;

			var oStrong = document.createElement('strong');
			oStrong.className = 'colored';
			oStrong.innerHTML = oNode.childNodes[3].firstChild.data + ' ' + oNode.childNodes[1].firstChild.data;

			var oCell2 = oRow.insertCell(1);
			oCell2.appendChild(oStrong);
		}
	}
}

function showCurrencies() {
	document.getElementById('p_currency_msg').style.display = '';
	document.getElementById('t_currency_msg').style.display = '';
	document.getElementById('a_currencies').style.display = 'none';
	document.getElementById('p_price').style.display = 'none';
}
function reloadProductData(elem) {
	var sId = elem.options[elem.selectedIndex].value;
	if (sId != '') document.location.href = 'producto_' + sId + '.html';
}