﻿var lastAddedVerId = -1;

function loadShoppingCart() {
	var oAjax = new WBE_AjaxClass();
	xmlObj = oAjax.throwEventXML('com_get_shopping_cart_xml');
	
	if (xmlObj) {
		printShoppingCart(xmlObj);
	}
}

function printShoppingCart(xmlObj) {

	var oElem = document.getElementById('carrito');
	oElem.style.display = '';
	cleanDiv(oElem);
	
	if (xmlObj.childNodes[0].childNodes.length > 0) {

		var oTemp = document.createElement('h1');
		oTemp.className = 'noborder';
		oTemp.innerHTML = 'carro de compra';
		oElem.appendChild(oTemp);
		
		var oWrapDiv = document.createElement('div');
		oWrapDiv.id = 'carrito_wrap';

			var oTableLines = document.createElement('table');
			oTableLines.cellPadding = '0';
			oTableLines.cellSpacing = '0';
		
			for (var i = 0; i < xmlObj.childNodes[0].childNodes.length; i++) {
				var oNode = '';
				var verId = '';
				var prodName = '';
				var price = '';
				var qty = '';
				var cntId = '';
				var lineNum = '';
				var qtyWithDiscounts = '';

				if (xmlObj.childNodes[0] && xmlObj.childNodes[0].childNodes.length > 0) {				
					oNode = xmlObj.childNodes[0].childNodes[i];
					if (oNode.childNodes[0].childNodes.length > 0) verId = oNode.childNodes[0].firstChild.data;
					if (oNode.childNodes[1].childNodes.length > 0) prodName = oNode.childNodes[1].firstChild.data;
					if (oNode.childNodes[2].childNodes.length > 0) price = oNode.childNodes[2].firstChild.data;
					if (oNode.childNodes[3].childNodes.length > 0) qty = oNode.childNodes[3].firstChild.data;
					if (oNode.childNodes[4].childNodes.length > 0) cntId = oNode.childNodes[4].firstChild.data;
					if (oNode.childNodes[5].childNodes.length > 0) lineNum = oNode.childNodes[5].firstChild.data;
					if (oNode.childNodes[7].childNodes.length > 0) qtyWithDiscounts = oNode.childNodes[7].firstChild.data;
				}
				
				var oRow = oTableLines.insertRow(i);
				oRow.id = 'line_' + verId;
				
					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);
				
					var oColTitle = oRow.insertCell(0);
					oColTitle.className = 'titulo';
					
						var oTitleA = document.createElement('a');
						oTitleA.href = 'libro_' + cntId + '.html';
						oTitleA.innerHTML = prodName;

					oColTitle.appendChild(oTitleA);
				
					var oColPrice = oRow.insertCell(0);
					oColPrice.className = 'precio';
					
						var oPriceStrong = document.createElement('strong');
						oPriceStrong.innerHTML = /*price*/ qtyWithDiscounts + '&#8364;';

					oColPrice.appendChild(oPriceStrong);
				
					var oColDel = oRow.insertCell(0);
					oColDel.className = 'precio';
					
						var oDelA = document.createElement('a');
						oDelA.href = '#sc';
						oDelA.id = 'a_del_' + lineNum;
						oDelA.innerHTML = '<img src="config/skin/wolters_kluwer_common/images/ico_papelera.gif" alt="Papelera" border="0" align="left"/>';
						addEvent(oDelA, 'click', clickDel);

					oColDel.appendChild(oDelA);
			}
			
			oWrapDiv.appendChild(oTableLines);
			
			var oTotalCompr = document.createElement('div');
			oTotalCompr.id = 'totalCompra';

				if (xmlObj.childNodes[2].firstChild.data != '0') {
					
					var oTotalDisc1 = document.createElement('small');
					oTotalDisc1.innerHTML = 'descuento: ';
				
					var oTotalDisc2 = document.createElement('strong');
					oTotalDisc2.innerHTML = xmlObj.childNodes[2].firstChild.data + ' &#8364;';
				
					var oTotalDisc3 = document.createElement('small');
					oTotalDisc3.innerHTML = '+ IVA';

					var oBR = document.createElement('br');
				
					oTotalCompr.appendChild(oTotalDisc1);
					oTotalCompr.appendChild(oTotalDisc2);
					oTotalCompr.appendChild(oTotalDisc3);
					oTotalCompr.appendChild(oBR);
				}

				var ooTotalCompr1 = document.createElement('small');
				ooTotalCompr1.innerHTML = 'total: ';
			
				var ooTotalCompr2 = document.createElement('strong');
				ooTotalCompr2.innerHTML = xmlObj.childNodes[1].firstChild.data + ' &#8364;';
			
				var ooTotalCompr3 = document.createElement('small');
				ooTotalCompr3.innerHTML = '+ IVA';
				
				oTotalCompr.appendChild(ooTotalCompr1);
				oTotalCompr.appendChild(ooTotalCompr2);
				oTotalCompr.appendChild(ooTotalCompr3);
			
			oWrapDiv.appendChild(oTotalCompr);

		oElem.appendChild(oWrapDiv);

		var oActPed = document.createElement('div');
		oActPed.id = 'actualizarPedido';

			var oProcBtn = document.createElement('div');
			oProcBtn.className = 'btn';
			
				var aProc = document.createElement('a');
				aProc.href = 'registro_compra.html?step=1';
				aProc.innerHTML = 'proceder a la compra';

				oProcBtn.appendChild(aProc);

			oActPed.appendChild(oProcBtn);
		
		oElem.appendChild(oActPed);

		//highlightItem();
		//alert("Se ha agregado el articulo al carrito de compra.");

	} else {
		oElem.style.display = 'none';
	}
}

function notifyCartAdd()
{
	//	
	close_lightbox_no_clean();
	
	var oDiv = document.getElementById('div_shop_add_msg');
	oDiv.style.display = '';				
	
	show_lightbox_from_element( oDiv, document.InmediaFrm );
	window.onscroll = '';
	
	document.location.href = '#msg_ok_carrito';
	//
}

function notifyCartAlert(txt)
{
	//	
	close_lightbox_no_clean();
	
	var oSpan = document.getElementById('span_add_alert');
	//if (oSpan)
		oSpan.innerHTML = txt;				

	var oDiv = document.getElementById('div_shop_add_alert');
	oDiv.style.display = '';				
	
	show_lightbox_from_element( oDiv, document.InmediaFrm );
	window.onscroll = '';
	//
}

function clickDel(e) {
	var sNum = this.id.substring('a_del_'.length, this.id.length);
	if(confirm('Va a eliminar el producto del carrito, ¿está seguro?')) {
		var objShoppingCart = new JSObj_shopping_cart();
		objShoppingCart.savePost = savePostExtNoAlert;
		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;
	
	//notifyCartAdd();
}

function savePostExt(xmlObj) {
	loadShoppingCart();
	
	if (xmlObj)
	{
		var oAjax = new WBE_AjaxClass();
		
		var alert_txt = oAjax.getXMLNodeValue(xmlObj, 'alert')
		if (alert_txt == null || alert_txt == "")
			notifyCartAdd();
		else
			//alert(alert_txt);
			notifyCartAlert('No se ha podido agregar al carro de la compra: <br> <br>' + alert_txt + '<br> <br>');
	}
	else
		notifyCartAdd();
		//notifyCartAlert('El producto no se ha podido agregar al carro de la compra');		
};

function savePostExtNoAlert(xmlObj){
	loadShoppingCart();
}

function highlightItem() {	
	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';
	}
	
	oElem = document.getElementById(i + '_arbol');
	if (oElem) oElem.innerHTML = (oElem.innerHTML == '(+)') ? '(-)' : '(+)';
}

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';
	}

	oElem = document.getElementById(i + '_arbol');
	if (oElem) oElem.innerHTML = (oElem.innerHTML == '(+)') ? '(-)' : '(+)';
}

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);
}






/*
	DEBERIAMOS PASAR ESTO COMO EN ABSLINE A UN SKIN.JS
*/
function showDisclaimerAlert(sDomain, sName) {
	var bIsUnderDemini = sDomain.indexOf('demini') > 0;
	if (bIsUnderDemini)
	{
		if (!(readCookie(sDomain + sName + '_wolterskluwer_disclaimer') == 'yes')) {
			alert('Se informa al visitante que la página web se trata de una prueba diseñada por Wolters Kluwer, siendo el mismo el único responsable de la información, contenido y diseño incluidos en el portal. La utilización del nombre de la empresa así como de cualquier elemento identificador de la misma es utilizado con la única finalidad de ofrecerle los servicios de diseño, alojamiento y mantenimiento de la URL.\n\nEl titular de la marca o nombre comercial que aparece en la página web queda exonerado de cualquier responsabilidad que pudiera ocasionarse por los contenidos, diseño y publicación de la misma.');
			createCookie(sDomain + sName + '_wolterskluwer_disclaimer', 'yes', 30)
		}
	}
}
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
