// JavaScript Document// JavaScript Document
/*
Objeto carritoJsonSendParams definido en Carrito.js

****************** PARAMETROS o OBJETO "carritoJsonSendParams"
	
	idGrupProducte = {un ID}
	idsAtributs = {un array de IDS}
	quantitat = default [0] numérico entero
	unitat = default [0] -> numérico entero
	carretTipus = default ['resum'] -> 'llista' | 'resum' | 'buit' 
	retornaHTML = default ['true'] -> true | false

****************** 	METODOS DEL CARRITO

	afegirProducte(idGrupProducte,idsAtributs,quantitat,unitat,carretTipus,retornaHTML | [carritoJsonSendParams] )
	modificarProducte(idGrupProducte,idsAtributs,quantitat,unitat,carretTipus,retornaHTML | [carritoJsonSendParams] )
	eliminarProducte (idGrupProducte,carretTipus,retornaHTML | [carritoJsonSendParams] )
	recalcularCarret(carretTipus,retornaHTML | [carritoJsonSendParams] )
	refrescaCarret(carretTipus,retornaHTML | [carritoJsonSendParams] )
	
****************** OBJETO RESPUESTA DEL CARRITO
	this.resultat = null;
	this.idError = null;
	this.descripcionError = null;	

****************** FUNCIONES PARA ESTE VISOR
	function controlCarga()
	function comprarProducto(id)
	function modificarProducto(id)
	function borrarProducLista(id,idAttr)
	function recalcularCarro()

	function compruebaValor(obj(this),incremento,minValor)
	sumar(id,incremento,minValor)
	restar(id,incremento,minValor)

****************** FUNCIONES PRIVADAS 
	 _showLoading(id[string]) -> Muestra dentro de el elemento con este id una imagen de cargado
	 _removeLoading(id[string]) -> Oculta dentro de el elemento con este id una imagen de cargado
	 _printResult(id[string]) -> Inserta dentro de el elemento con este id lo que devuelven los METODOS DEL CARRITO
	 _getParamsCompra(id[string]) -> Devuelve un OBJETO "carritoJsonSendParams" con los datos del producte.
	 miraObligatoris(mensajeError[string]) -> Comprueba si hay attributos obligatorios. Devuelve True o False
*/
$(function(){ 
	controlCarga() 
})
function controlCarga(){
	_showLoading('carritoListado');
	var sendObjetc = new carritoJsonSendParams()
	sendObjetc.carretTipus = "llista"
	var rObj = refrescaCarret(sendObjetc);
	
	_printResult('carritoListado',rObj);
	_removeLoading('carritoListado');
	var v = $('#total').text();
	if( v != "0" || v == "0" ) $('#finalizaCompra').show();
}

function comprarProducto(id){
	if ( miraObligatoris(_globalTags["attrObligJS"]) ){
		var sendObjetc = _getParamsCompra(id)
		sendObjetc.carretTipus = "llista"
		_showLoading('carritoListado');
		var rObj = afegirProducte(sendObjetc);
		//for(f=0;f<5000000;f++) g=f
		_printResult('carritoListado',rObj);
		_removeLoading('carritoListado');
		
		
	}
	var v = $('#total').text();
	if( v != "0" || v == "0" ) $('#finalizaCompra').show();
}
function modificarProducto(id){
	if (miraObligatoris(_globalTags["attrObligJS"]) ){
		var sendObjetc = _getParamsCompra(id)
		sendObjetc.carretTipus = "llista"
		_showLoading('carritoListado');
		var rObj = modificarProducte(sendObjetc);
		_printResult('carritoListado',rObj);
		_removeLoading('carritoListado');
		
		sendObjetc.carretTipus = "resum"
		_showLoading('carritoResum');	
		rObj = refrescaCarret(sendObjetc);
		_printResult('carritoResum',rObj);	
		_removeLoading('carritoResum');	
	}
}

function CambiarFecha(id,idAttr){
	opts = {
		modal: 1,
		width: 300,
		height: 350,
		type: "iframe",
		layout: "quicklook",
		effect: 'switch',
		title:'Data per l\'espectacle.',
		shaded: 1,
		overlayClose: 0
	}
	var params = "id="+id+"&data=" + idAttr;
	TopUp.display('aspimagina/cataleg/mod/visor/modificarFecha.asp?' + params, opts);
return false;
}

function borrarProducLista(id,idAttr){
	var sendObjetc = new carritoJsonSendParams()
	sendObjetc.idGrupProducte = id;
	sendObjetc.idsAtributs = idAttr;
	sendObjetc.carretTipus = "llista";
	_showLoading('carritoListado');
	var rObj = eliminarProducte(sendObjetc);
	_printResult('carritoListado',rObj);
	_removeLoading('carritoListado');
	
	sendObjetc.carretTipus = "resum"
	_showLoading('carritoResum');	
	rObj = refrescaCarret(sendObjetc);
	_printResult('carritoResum',rObj);
	_removeLoading('carritoResum');
}

function recalcularCarro(){
	var sendObjetc = new carritoJsonSendParams()
	sendObjetc.carretTipus = "llista"
	var rObj = recalcularCarret(sendObjetc);
}// JavaScript Document
