/*
 * Libreria Javascript con funciones para crear, mostrar y
 * manipular un carro de compras
 *
 * Por Rodrigo Guevara Riquelme - Programador
 * Dpto. Informatica - La Polar
 * Junio, 2007
 *
 * Si desea usar o distribuir este codigo, *DEBE* mantener esta declaracion de propiedad
 * intelectual.
 * e-contactos del autor: rguevara@lapolar.cl; rodri.guevara@gmail.com; rodrigo.guevara@hotmail.com
 *
 * OBS IMPORTANTE: Requiere MooTools
 *
 */

var precio_tablaProducto = '<div id="precioplu-plu_producto" style="display:none;">';
var enc_tablaProducto = '</div><table width="100%" cellpadding="0" cellspacing="0">'+
	  '<tr>'+
		'<td width="40" rowspan="2" valign="middle">';
var txt_tablaProducto = '</td>'+
		'<td valign="top"><span class="letraNormal">';
var prec_tablaProducto = '</span></td>'+
		'<td width="23" rowspan="2" valign="top"><img id="iconoquitar-indice_de_posicion" style="cursor:pointer" '+
		'onclick="quitarProducto(plu_producto, indice_de_posicion)" src="/img/html/body/btn_cerrar.gif" width="11" height="11"></td>'+
	  '</tr>'+
	  '<tr>'+
		'<td height="21" valign="top"><span id="preciovisible-plu_producto" class="LetraPrecioCarrito">';
var end_tablaProducto = '</span></td>'+
	  '</tr>'+
	  '</table>';

var interiorInnerTotal = '<table width="100%" height="91px" cellpadding="0" cellspacing="0">'+
		'<tr height="46px">'+
			'<td width="48%"><div id="innerCarro1"></div></td>'+
			'<td width="48%"><div id="innerCarro2"></div></td>'+
		'</tr>'+
		'<tr height="46px">'+
			'<td width="48%"><div id="innerCarro3"></div></td>'+
			'<td width="48%"><div id="innerCarro4"></div></td>'+
		'</tr>'+
	'</table>';


var divCarro = null;        // Objeto Carrito Compra
var divCarroEfecto = null;  // Efecto de cierre
var existeCarro = false;
var carroMinimizado = false;

var topCarro = null;
var bottomCarro = null;
var anchoCarro = 779;
var altoCarro = 124;
var altoTitulo = 28;

var anchoFijo  = getViewportWidth();
var alturaFija = getViewportHeight();
var carroEnRam = new Array();

var nombreCarroCompras = 'carrito_web';
var espacioTotal = 'innerTotal';  
var espacioProducto = 'innerCarro';   // A este string se le agrega el numero de posicion (1-6)
var carroContainer = 'minicontainer'; // A este string tambien se le agrega el nº de posicion (1-6)

var posicionCarro = 1;
var totalCarros = 1;
var carroActual = 1;
var productosPorCarro = 4;
var numeroItems = 0;
var sumaTotal = 0;
var maximoDeItems = 120;

var retardoCierre = 6;  // En segundos
var segundos = 0;
var periodo = 250;      // En milisegundos, 1000 = 1 seg
var unSeg = 1000;
var cronometro = false;
var cronoId = null;

var mensajeExisteProd = 'Este producto ya esta en tu carro.  Al pagar, podras agregar mas unidades';
var mensajeErrorCarro = 'Ha ocurrido un error en la carga del Carro de Compras.  Recargue el Sitio (F5) e intente de nuevo.';
var msjSinStock = 'Lo sentimos, no hay stock de este producto';

var debug = false;

var host_destino = '';

function recupera_carro_guardado() {
	var envoltura = 'http://';
	var host = $('host_conocido').value;
	var uribase = '/'+$('uribase').value+'/';
	var variable = obtiene_aleat();
	var uri_carro = 'catalogo/recupera_carro/' + variable;
	var ruta = envoltura+host+uribase+uri_carro;
	var objAx = new Ajax(ruta, {method: 'get', 
				    onComplete: function(resultado)  {
				    		if(resultado == '')
							return;
						if(resultado != 'vacio') {
							procesar_carro_recuperado(resultado);
						}
				   }
	}).request();
}

function obtiene_aleat() {
	var rand = Math.random();
	var resultado = Math.round(rand * 99999);
	if(resultado < 10)
		resultado = '00'+resultado;
	else {
		if(resultado < 100)
			resultado = '0'+resultado;
	}
	return resultado;
}

var seActivaCombo = null;
function almacenaCombosServidor(plu, combo) {
	//alert('plu:'+plu+' combo:'+combo);
        var envoltura = 'http://';
        var host = $('host_conocido').value;
        var uri_combo = 'compra/carrocompra/activar_combo';
        var ruta = envoltura+host+'/'+uri_combo+'/'+plu+'/'+combo+'?'+obtiene_aleat();
	seActivaCombo = false;
        var objAx = new Ajax(ruta, {method: 'get',
                                    onComplete: function(resultado)
                                        {
						if(resultado != 'err') {
							seActivaCombo = true;
							if($('precioplu-'+plu)) {
								var precioAnterior = $('precioplu-'+plu).innerHTML;
								precioAnterior = parseInt(precioAnterior);
								sumaTotal -= precioAnterior;
								sumaTotal += parseInt(resultado);
								$('precioplu-'+plu).innerHTML = resultado;
								$('preciovisible-'+plu).innerHTML = formatearNumero(resultado)+'  (Combo)';
								resumenSoloSuma();
							}
						}
						/* 
						alert('Se activara producto agregado como combo'); 
						procesar_carro_recuperado(resultado);
						*/
                                                
                                        }
        }).request();
}


var cestaProductos = null;
var ajaxActivo = false;
function procesar_carro_recuperado(resultado) {
	var arrCarro =  resultado.split('|');
	var ruta = arrCarro[0];
	var hashes = arrCarro[1];
	productos = new Array();
	var i; var j = 0;
	for(i = 2; i < arrCarro.length; i++) {
		listaProd = arrCarro[i].split(';');
		productos[j] = listaProd;
		j++;
	}
	cestaProductos = productos;
	carga_carro_recuperado(ruta, arma_carro_denuevo);
	hash = hashes.split(';');
	$('hash_multi').value = hash[0];
	$('idkey_multi').value = hash[1];
}

function arma_carro_denuevo() {
	for(var i = 0; i < cestaProductos.length; i++) {
		var item = new Array();
		item['IMG'] = cestaProductos[i][0];
		item['TEXTO'] = cestaProductos[i][1];
		item['PRECIO'] = cestaProductos[i][2];
		item['PRECIONUM'] = cestaProductos[i][3];
		item['PLU'] = cestaProductos[i][4];
		item['ART'] = cestaProductos[i][5];
		item['combo'] = cestaProductos[i][6];
		agregarProducto_catalogo(item);
	}
}

function comprar_este_producto(prod, art, hash, idkey, cb) {
	$('hash_multi').value = hash;
	$('idkey_multi').value = idkey;
	if($(prod))
		prod = $(prod).value;
	else
		prod = $('prid_imagen').value;
	if(numeroItems < maximoDeItems) {
		var prod = recogeObjProducto(prod, art);
		var regalo = obtieneRegalo();
		var ruta = '/compra/carrocompra/agregar/'+prod['PLU']+'/'+prod['ART']+
					'/'+prod['PRECIONUM']+'/'+regalo+'/'+cb+'?'+obtiene_aleat();
		cargar_carro(ruta, prod);
		return true;
	} else {
		alert('Su carro de compras esta lleno.');
		return false;
	}
}

function comprar_ahora_mismo(prod, art, host, hash, idkey, cb) {
	host_destino = host;
	$('hash_multi').value = hash;
	$('idkey_multi').value = idkey;
	if($(prod))
		prod = $(prod).value;
	else
		prod= $('prid_imagen').innerHTML;
	if(numeroItems < maximoDeItems) {
		var prod = recogeObjProducto(prod, art);
		var regalo = obtieneRegalo();
		var ruta = '/compra/carrocompra/agregar/'+prod['PLU']+'/'+prod['ART']+
					'/'+prod['PRECIONUM']+'/'+regalo+'/'+cb+'?'+obtiene_aleat();
		cargar_carro_solo_comprar(ruta, prod);
		return true;
	} else {
		alert('Su carro de compras esta lleno.');
		return false;
	}
}

function obtieneRegalo() {
	var valor = 1;
	if($('comboRegalo')) {
		if($('comboRegaloInp').checked) {
			regalo = 'r' + $('comboRegalo').value;
			valor = regalo;
		}
	} 
	
	return valor;
}


var presenciaAutoLiquidable = false;
var rutaAutoLiquidable = '';
function validarCombo(plu) {
	if($('listaAutoL'))
	  if($('listaAutoL').value != '0') {
		var arLista = $('listaAutoL').value.split(',');
		for(i=0;i < arLista.length; i++) {
			var codAutoL = arLista[i];
			if($('autoL'+codAutoL).checked) {
				var pluAL = $('pluAutoLiquidable'+codAutoL).value;
				var artAL = $('artAutoLiquidable'+codAutoL).value;
				var precioAL = $('precioAutoLiquidable'+codAutoL).value;
				var cbAL = $('cbAutoLiquidable'+codAutoL).value;
				rutaAutoLiquidable = '/compra/carrocompra/agregar/'+pluAL+'/'+artAL+'/'+precioAL+'/1/'+cbAL+'?'+obtiene_aleat();
				presenciaAutoLiquidable = true;
				break;
			}
		}
	  }  

	if(!$('cantidadCombos'))
		return false;
	var totalCombos = $('cantidadCombos').value;
	var respuesta = false;
	// Lee combos desde ficha combos y sale si es combo
	if($('tipoFicha').value == "combo"){
		for(i=1; i<=totalCombos;i++) {
			var select_combos = 'itemCombo'+i;
			if($(select_combos)){
				almacenaCombosServidor(plu, $('codigo_combo').value);
				respuesta = true;
				break;
			}
		//console.log('i: '+i);
		}
		return respuesta;
	}
	// Leemos todos los combos
	for(i=0; i<=totalCombos;i++) {
		// Generamos etiquetas de texto para acceder a cada uno de los combos
		var label_combos = 'id_combo'+i;
		var label_input = 'itemCombo'+i;
		// Preguntamos si existe el id de combo en primer lugar
		if($(label_combos)) {
			// Preguntamos si existe y si esta marcado el checkbox del combo
			if($(label_input)) {
				if($(label_input).checked) {
					// Esta marcado, asi que procedemos a cargar el combo
					almacenaCombosServidor(plu, $(label_combos).value);
					respuesta = true;
					break;
				}
			}
		}
	}
	if(!respuesta)
	{
		if($('comboExpolar').value != 0)
		{
			almacenaCombosServidor(plu, $('comboExpolar').value);
			respuesta = true;	
		}
	}

	if(!respuesta)
	{
		if(!$('chk_pre_ex_lapolar'))
			respuesta = false;
		else
		{
			if($('chk_pre_ex_lapolar').checked && parseInt($('chk_pre_ex_lapolar').value) > 0)
			{
				almacenaCombosServidor(plu, $('chk_pre_ex_lapolar').value);
				respuesta = true;
			}	
		}
			
	}
	return respuesta;
}

var intentosTotalesProbarCheckout = 20;
var intentosPCheck = 0;
function probarCheckout() {
	if(seActivaCombo)
		vamosACheckout();
	else {
		if(intentosPCheck > intentosTotalesProbarCheckout) {
			alert('Lo sentimos, la operacion (leer combo) se estaba tardando demasiado y ha sido cancelada. '+
			      'Si lo desea, puede recargar el Sitio (F5) y probar nuevamente');
		} else {
			intentosPCheck++;
			self.setTimeout('probarCheckout()', 500);
		}
	}
}

function cargar_carro_solo_comprar(ruta, producto) {
	if(numeroItems < maximoDeItems) {
		ruta += "?"+obtiene_aleat();
		var o = new Ajax(ruta, {
						method: 'get',
						onComplete: function(e) {
							if(e == 'ERR') {
								alert(msjSinStock);
								return;
							}
							numeroItems++;
							if(validarCombo(producto['PLU'])) {
								probarCheckout();
							} else
								vamosACheckout();
						}
		}).request();
	} else
		alert('Su carro de compras esta lleno.');
    return false;
}

function vamosACheckout() {
	if($('tipoFicha').value == "combo"){
	        var idCombo = $('codigo_combo').value;
	        var plu = $('plu_actual').value;
	        var host_conocido = $('host_conocido').value;
	        tsa = Math.floor(Math.random()*1000000);
	        	ruta = 'http://'+host_conocido+'/compra/carrocompra/activar_combo/'+plu+'/'+idCombo+'?tsa='+tsa;
	        var Ax = new Ajax(ruta, {method:'get',
	                                 onComplete: function(resp) {
        	                                if(resp != 'err') {
		                                                 disparaEvento = false;
	                                      		         //location.href = "/compra/checkout/paso1";
								 ir_a_checkout(host_destino);

	                                        }
        	                        }
	        }).request();
	}else{
		if(presenciaAutoLiquidable) {
			var Ax = new Ajax(rutaAutoLiquidable, {method: 'get', onComplete: function() {
									ir_a_checkout(host_destino);
									}
			}).request();
		} else
			ir_a_checkout(host_destino);
	}
}




function cargar_carro(ruta, producto) {
	ruta += "?"+obtiene_aleat();
	var o = new Ajax(ruta, {
    				method: 'get',
    				onComplete: function(e) {
						if(e == 'ERR') {
							alert(msjSinStock);
							return false;
						}
						if(e == '') {
							alert(mensajeErrorCarro);
							return false;
						}
						if(e == 'ya esta') {
							soloMostrarCarro();
							alert(mensajeExisteProd);
							programarCierre();
						} else {
							if(producto['PLU'] == $('plu_actual').value)
								validarCombo(producto['PLU']);
							activar_carro(e, producto)
						}
    				}
	}).request();
    return false;
}

function activar_carro(content, producto) {
	verificaCarro(content);
	soloMostrarCarro();
	calcularResumen(producto);
	agregarProducto(producto);  // agregar efecto de aparicion
	programarCierre();
}

function verificaCarro(content) {
        if(!existeCarro) {
                crearCarro();
                divCarro = $(nombreCarroCompras);
        }
        if(carroActual != totalCarros)
                cambiaUltimoCarro();
        numeroItems++;
        if(numeroItems > (totalCarros * productosPorCarro))
                cambiaCarroSiguiente(true);
        if(!existeCarro)
                divCarro.innerHTML = content;
        existeCarro = true;
	encenderBotonComprar();
}

function encenderBotonComprar() {
	if(numeroItems > 0) {
                if($('boton_comprar'))
                        $('boton_comprar').setStyle('display', 'block');
        }
}

function carga_carro_recuperado(ruta, func) {
	if(ruta.slice(0, 1) == '-') {
		solo_activar_carro('-');
		func();
		// El parametro ruta en '-' nos muestra que es un combo
		// Asi que enviamos la segnal para que el PLU sea un combo
		ruta = ruta.replace('-', '');
		plu = ruta;
		ruta = 'http://';
		ruta += $('host_conocido').value+'/';
		ruta += 'compra/carrocompra/';
		ruta += 'activar_combo/'+plu;
		var objAx = new Ajax(ruta, {
					method: 'get'
		}).request();
		
	} else {
		var objAx = new Ajax(ruta, {
					method: 'get', 
					onComplete: function(e) {
							solo_activar_carro(e);
							func();
					}
		}).request();
	}
}

function solo_activar_carro(content) {
	if(!existeCarro) {
		crearCarro();
		divCarro = $(nombreCarroCompras);
	}
	if(!existeCarro && content != '-')
		divCarro.innerHTML = content;
	existeCarro = true;
	if(numeroItems == 0) {
		if($('boton_comprar'))
			$('boton_comprar').setStyle('display', 'none');
	}
	soloMostrarCarro();
	cierreCarro();
}

function crearCarro() {
	inicializarValoresPantalla();
	var theBody = document.getElementsByTagName('body')[0];
	var objCarro = crearTag(nombreCarroCompras);
	//finalmente conectamos el div nuevo al body
	theBody.appendChild(objCarro);
	//Creamos el espacio en RAM para el primer carro
	carroEnRam[0] = '';
}

function recogeObjProducto(plu, articulo) {
	var producto = new Array();
	var ruta_imagen = $('imagen['+plu+']').src;
	producto['IMG'] = '<img id="miniatura['+plu+']" src="' + ruta_imagen +
						'" height="40" width="40" />';
	producto['TEXTO'] = $('descrip['+plu+']');
	producto['PRECIO'] = $('precio['+plu+']');
	producto['PRECIONUM'] = producto['PRECIO'].innerHTML.replace('$', '');
	producto['PRECIONUM'] = reemplazar(producto['PRECIONUM'], '.', '');
	producto['PLU'] = plu;
	producto['ART'] = articulo;
	return producto;
}

function agregarProducto(producto) {
	if(producto) {
		var tempTexto = prec_tablaProducto.replace('indice_de_posicion', posicionCarro);
		var tempTexto = tempTexto.replace('indice_de_posicion', posicionCarro);
		var tempPrecio = precio_tablaProducto.replace('plu_producto', producto['PLU']);
		var tempTexto = tempTexto.replace('plu_producto', producto['PLU']);
		var tempTexto = tempTexto.replace('plu_producto', producto['PLU']);
		var htmlContent = 	tempPrecio+producto['PRECIONUM']+
							enc_tablaProducto+producto['IMG']+
							txt_tablaProducto+producto['TEXTO'].innerHTML+
							tempTexto+producto['PRECIO'].innerHTML+
							end_tablaProducto+'<div style="display:none;" id="prodplu-'+
									posicionCarro+'">'+producto['PLU']+'</div>';
		var div_introducido = new Element('div');
		div_introducido.id = carroContainer+posicionCarro;
		div_introducido.setStyle('width', '100%');
		div_introducido.setStyle('opacity', 0);
		div_introducido.innerHTML = htmlContent;
		div_introducido.addEvent('click', function(event) {
						var ruta = $('ruta_producto').value;
						clickEnProducto(ruta);
		});
		var carrito = $(espacioProducto+posicionCarro);
		posicionCarro++;
		carrito.appendChild(div_introducido);
		var objEffect = div_introducido.effect('opacity', {duration: 600});
		objEffect.start(1);
	}
}

function clickEnProducto(ruta) {
	if(confirm('Ver la ficha del producto?'))
		location.href=ruta;
	
}

function agregarProducto_catalogo(producto) {
	numeroItems++;
	if(numeroItems > (totalCarros * productosPorCarro))
		cambiaCarroSiguiente(true);
	calcularResumen(producto);
	if(producto) {
		var tempTexto = prec_tablaProducto.replace('indice_de_posicion', posicionCarro);
		var tempTexto = tempTexto.replace('indice_de_posicion', posicionCarro);
		//var tempTexto = tempTexto.replace('quitarProducto', 'fquitarProducto');
		var tempPrecio = precio_tablaProducto.replace('plu_producto', producto['PLU']);
		var tempTexto = tempTexto.replace('plu_producto', producto['PLU']);
		var tempTexto = tempTexto.replace('plu_producto', producto['PLU']);
		if(producto['combo'] != '0') {
			producto['PRECIO'] += '  (combo)';
		}
		var url = 'http://'+$('host_conocido').value+'/internet/catalogo/detalles/busqueda/'+producto['PLU'];
		var htmlContent = 	tempPrecio+producto['PRECIONUM']+
							enc_tablaProducto+'<a href="'+url+'">'+
							'<img id="miniatura['+producto['PLU']+']" src="'+
							producto['IMG']+'" height="40" width="40" border="0"/></a>'+
							txt_tablaProducto+producto['TEXTO']+
							tempTexto+producto['PRECIO']+
							end_tablaProducto+'<div style="display:none;" id="prodplu-'+
									posicionCarro+'">'+producto['PLU']+'</div>';
		var div_introducido = new Element('div');
		div_introducido.id = carroContainer+posicionCarro;
		div_introducido.setStyle('width', '100%');
		div_introducido.innerHTML = htmlContent;
		var carrito = $(espacioProducto+posicionCarro);
		posicionCarro++;
		carrito.appendChild(div_introducido);
	}
	if(numeroItems > 0) {
		if($('boton_comprar'))
			$('boton_comprar').setStyle('display', 'block');
	}
}


function cargarquitar_carro(ruta) {
	ruta += "?" + obtiene_aleat();
	new Ajax(ruta, {method: 'get'}).request();
	return false;
}

function fquitarProducto(plu, posicionEliminada) {
	alert('No se puede quitar este elemento');
}

function quitarProducto(plu, posicionEliminada) {
	var ruta = '/compra/carrocompra/quitar/'+plu;
	cargarquitar_carro(ruta);
	var precioplu = $('precioplu-'+plu).innerHTML;
	var objEliminar = $(carroContainer+posicionEliminada);
	var posicionObj = objEliminar.parentNode;
	objEliminar = posicionObj.removeChild(objEliminar);
	posicionCarro--;
	numeroItems--;
	if(numeroItems == 0) {
		resetearCarro();
		return;
	}
	var producto = new Array();
	producto['PRECIONUM'] = -1 * precioplu;
	calcularResumen(producto);
	if(posicionEliminada < posicionCarro) {
		reacomodar_productos(posicionEliminada);
	}
}

function reacomodar_productos(posicionEliminada) {
	var i = posicionEliminada;
	while(i < posicionCarro) {
			intercambia(i+1, i);
			i++;
	}
}

function intercambia(desde, hasta) {
		var objTemp = $(carroContainer+desde);
		var padre = objTemp.parentNode;
		var plu = $('prodplu-'+desde);
		var imgtag = $('iconoquitar-'+desde);
		imgtag.onclick = function (event) {
					quitarProducto(plu.innerHTML, hasta)
		};
		imgtag.id = 'iconoquitar-'+hasta;
		plu.id = 'prodplu-'+hasta;
		objTemp = padre.removeChild(objTemp);
		padre = $(espacioProducto+hasta);
		padre.appendChild(objTemp);
		objTemp.id = carroContainer+hasta;
}

function resumenSoloSuma() {
	var objResumen = $('resumen');
	if(isNaN(sumaTotal)) {
                objResumen.innerHTML = '|';
                sumaTotal = 0;
        } else {
                if(sumaTotal == 0)
                        objResumen.innerHTML = '|';
                else {
                        objResumen.innerHTML = '|&nbsp;&nbsp;Llevas '+
                                                '<span style="color:#FF0000; font-weight:bold;">'+
                                                 numeroItems+'</span> articulos por un total de <strong>$';
                        objResumen.innerHTML = objResumen.innerHTML+sumaTotal+'</strong>&nbsp;&nbsp;|';
                }
        }
}

function calcularResumen(producto) {
	var objResumen = $('resumen');
	if(producto) {
		if(parseInt(producto['PRECIONUM'], 10) != 0) {
			var precio = parseInt(producto['PRECIONUM'], 10);
			sumaTotal = sumaTotal + precio;
		}
	}
	if(isNaN(sumaTotal)) {
		objResumen.innerHTML = '|';
		sumaTotal = 0;
	} else {
		if(sumaTotal == 0)
			objResumen.innerHTML = '|';
		else {
			objResumen.innerHTML = '|&nbsp;&nbsp;Llevas '+
						'<span style="color:#FF0000; font-weight:bold;">'+
						 numeroItems+'</span> articulos por un total de <strong>$';
			objResumen.innerHTML = objResumen.innerHTML+sumaTotal+'</strong>&nbsp;&nbsp;|';
		}
	}
	var objPaginarCarro = $('paginarCarro');
	if(totalCarros > 1)
		objPaginarCarro.innerHTML = '&nbsp;&nbsp;pagina '+
					carroActual+'&nbsp;/&nbsp;'+totalCarros+'&nbsp;&nbsp;|';
	else
		objPaginarCarro.innerHTML = '';

}

function soloMostrarCarro() {
	if(existeCarro) {
		$(espacioTotal).setStyle('display', 'block');
		if(!window.gecko && !window.opera) {
			divCarro.setStyle('position', 'absolute');
			if(carroMinimizado)
				divCarroEfecto.start({'top': [topCarro+(altoCarro - altoTitulo), topCarro]});
			else
				divCarro.setStyle('top', topCarro+'px');
		} else {
			divCarro.setStyle('position', 'fixed');
			divCarro.setStyle('bottom', bottomCarro+'px');
			if(carroMinimizado)
				divCarroEfecto.start({'height': [altoTitulo, altoCarro]});
			else
				divCarro.setStyle('height', altoCarro+'px');
		}
		carroMinimizado = false;
		ubicarCarro();
		divCarro.setStyle('display', 'block');
		if($('innerComprar'))
			$('innerComprar').setStyle('display', 'block');
	}
	/*
		alert('Aun no has agregado nada al carro de compras');
	*/
}

function ubicarCarro() {
	if(!window.gecko && !window.opera) {
		if(existeCarro) {
			var scTop = getScrollTop();
			topCarro = scTop + (alturaFija - altoCarro);
			if(carroMinimizado) {
				divCarro.setStyle('top', (topCarro + (altoCarro - altoTitulo))+'px');
				divCarro.setStyle('height', altoTitulo-2+'px');
			} else
				divCarro.setStyle('top', topCarro+'px');
		}
	}
}

function inicializarValoresPantalla() {
	var scTop = getScrollTop();
	topCarro = scTop + (alturaFija - altoCarro);
	bottomCarro = 0;
}

function crearTag(nombreDiv) {
	var tempDiv = new Element('div', {'styles': {'display':'none'}});
	tempDiv.setAttribute('id', nombreDiv);
	tempDiv.setAttribute('name', nombreDiv);
	setearTamano(tempDiv);
	return tempDiv;
}

function setearTamano(objCarro) {
	var ancho = anchoFijo - anchoCarro;
	var izq = (ancho / 2);
	objCarro.setAttribute('width', '100%');
	objCarro.setAttribute('scrolling', 'auto');
	objCarro.setAttribute('frameborder', '0');
	objCarro.setStyle('left', izq+'px');
}

function programarCierre() {
	if(!carroMinimizado) {
		divCarroEfecto = new Fx.Styles(divCarro, {duration: periodo, transition: Fx.Transitions.linear});
		iniciaCierre();
	}
}

function iniciaCierre() {
	segundos = retardoCierre;
	detieneCierre();
	cronometro = true;
	cierreProgramado();
}

function detieneCierre() {
	if(cronometro)
		clearTimeout(cronoId);
	cronometro = false;
}

function cierreProgramado() {
	if(cronometro && !carroMinimizado) {
		if(segundos == 0) {
			detieneCierre();
			if($('innerComprar'))
				$('innerComprar').setStyle('display', 'none');
			if(window.gecko || window.opera) divCarroEfecto.start({'height': [altoCarro, altoTitulo]});
			else  			 divCarroEfecto.start({'top': [topCarro, topCarro+(altoCarro - altoTitulo)]});
			cronoId = self.setTimeout("ocultaCarro()", periodo);
			detieneCierre();
		} else {
			segundos--;
			cronoId = self.setTimeout("cierreProgramado()", unSeg);
		}
	}
}

function cierreCarro() {
	if(!carroMinimizado) {
		divCarroEfecto = new Fx.Styles(divCarro, {duration: periodo, transition: Fx.Transitions.linear});
		if($('innerComprar'))
			$('innerComprar').setStyle('display', 'none');
		if(window.gecko || window.opera)
			divCarroEfecto.start({'height': [altoCarro, altoTitulo]});
		else
			divCarroEfecto.start({'top': [topCarro, topCarro + (altoCarro - altoTitulo)]});
		self.setTimeout("ocultaCarro()", periodo);
		cronometro = false;
	}
}

function ocultaCarro() {
	detieneCierre();
	if($(espacioTotal))
		$(espacioTotal).setStyle('display', 'none');
	carroMinimizado = true;
}

function cierreCarroInmediato() {
	detieneCierre();
	divCarro.style.display = 'none';
	carroMinimizado = true;
}

function cambiaUltimoCarro() {
	carroEnRam[carroActual-1] = $(espacioTotal).innerHTML;
	// Asignamos el ultimo carro
	carroActual = totalCarros;
	$(espacioTotal).innerHTML = carroEnRam[carroActual-1];
	calcularResumen();
}

function cambiaCarroSiguiente(nuevo) {
	if((carroActual + 1) <= totalCarros) {
		carroEnRam[carroActual-1] = $(espacioTotal).innerHTML;
		carroActual++;
		$(espacioTotal).innerHTML = carroEnRam[carroActual-1];
	} else {
		if(nuevo) {
			carroEnRam[carroActual-1] = $(espacioTotal).innerHTML;
			resetearEspacioTotal();
			totalCarros++;
			carroActual++;
			carroEnRam[carroActual-1] = '';
			posicionCarro = 1;
		}
	}
	calcularResumen();
}

function cambiaCarroAnterior() {
	if(carroActual > 1) {
		carroEnRam[carroActual-1] = $(espacioTotal).innerHTML;
		carroActual--;
		$(espacioTotal).innerHTML = carroEnRam[carroActual-1];
	}
	calcularResumen();
}

function resetearEspacioTotal() {
	$(espacioTotal).innerHTML = interiorInnerTotal;
}

function cargaVacia() {
	var ruta = '/compra/carrocompra/quitar/todos?'+obtiene_aleat();
	var o = new Ajax(ruta, {
    				method: 'get'
    		}).request();
}

function resetearCarro() {
	if(numeroItems > 0) {
		if(numeroItems == 1) {
			frase = ' articulo';
			frase2 = 'eliminarlo';
		} else {
			frase = ' articulos';
			frase2 = 'eliminarlos';
		}
		if(confirm('Tienes '+numeroItems+frase+' en el carro. ¿Desea '+frase2+'?')) {
			cargaVacia();
			quitaTodosLosCarros();
			resetearEspacioTotal();
			totalCarros = 1;
			carroActual = totalCarros;
			posicionCarro = 1;
			numeroItems = 0;
			sumaTotal = 0;
			calcularResumen(false);
			if(numeroItems == 0) {
				if($('boton_comprar'))
					$('boton_comprar').setStyle('display', 'none');
			}
			var objDel = $(nombreCarroCompras);
			var padre = objDel.parentNode;
			padre.removeChild(objDel);
			existeCarro = false;
		}
	} else {
		quitaTodosLosCarros();
		resetearEspacioTotal();
		totalCarros = 1;
		carroActual = totalCarros;
		posicionCarro = 1;
		sumaTotal = 0;
		var objDel = $(nombreCarroCompras);
		var padre = objDel.parentNode;
		padre.removeChild(objDel);
		existeCarro = false;
	}
}

function quitaTodosLosCarros() {
	while(carroEnRam.length > 1)
		quitaUltimoCarro();
}

function quitaUltimoCarro() {
	carroEnRam.pop();
}

function inspector(el) {
	var str ='';
	var j = 5;
	for (var i in el) {
		if (i.indexOf('on') != 0) {
			str += i + '=> ' + el.getAttribute(i) + "; ";
			j--;
			if(j == 0) {
				str += "\n";
				j = 5;
			}
		}
	}
	alert(str);
}

function calendario_paso1(){
	myCal4 = new Calendar({ calendario: 'd/m/Y' }, { direction: 1, tweak: {x: 6, y: 0},days: ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado'],months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'], blocked: ['0 * 2009 0']});
}

// Si es Explorer u otro similar, activamos la actualizacion de pantalla
if(!window.gecko && !window.opera) {
	addEvent(window, "resize", ubicarCarro);
	addEvent(window, "scroll", ubicarCarro);
}

// EOF
