// JavaScript Document
oCuenta = new function(){

	//C
	this.cambiarModulo = function(modulo,e,forzar){
		if(e)StopEvent(e);
		if(!listo){ return false; }
		if(moduloActual != modulo || forzar){
			
			if(!forzar)pagina = 1;
			
			if(solapaAnterior)solapaAnterior.parentNode.className = '';
			else $(moduloActual + 'Sol').parentNode.className = '';
			
			if(moduloActual == 'datos'){
				$('contFormDatos').appendChild($('contModulos').firstChild);
			}
			
			solapaAnterior = $(modulo + 'Sol');
			if(solapaAnterior)solapaAnterior.parentNode.className = 'on';
			moduloActual = modulo;
			
			if(modulo != 'datos' || (modulo == 'datos' && $('contFormDatos').innerHTML == '')){
				listo = false;
				reqType = 'cambiarModulo';
				mostrarLoader(true);		
				var v = 'modulo' + SEP_IGUAL + modulo + SEP_AND;
				v += 'pagina' + SEP_IGUAL + pagina + SEP_AND;				
				req.pedir(DIR_ROOT + 'requests/CuentaMetodos.php?metodo=' + reqType, v);
			}
			else{
				$('contModulos').innerHTML = '';
				$('contModulos').appendChild($('contFormDatos').firstChild);
			}
		}
	}
	this.cambiarPagina = function(page,e){
		if(e)StopEvent(e);
		pagina = page;
		this.cambiarModulo(moduloActual,false,true);
	}
	this.confirmarCancelarReserva = function(idBooking,e){
		if(e)StopEvent(e);
		if(!listo)return false;
		idBookingActual = idBooking;
		Confirm.onCancel = function(){
			Blocker.hide();		
		}
		Confirm.onAccept = function(){
			cancelarReserva(idBooking);
			Confirm.hide();
		}
		
		Confirm.message = LANG['msjConfirmarCancelarReserva'];
		Confirm.show();
		Blocker.show();
	}
	this.confirmarPagoFinal = function(token,idPay,e){
		if(e)StopEvent(e);
		if(!listo){ return false; }

		listo = false;
		reqType = 'pagoFinal';
		Blocker.show();
		Loader.show();		
		var v = 'token' + SEP_IGUAL + token + SEP_AND;
		v += 'PayerID' + SEP_IGUAL + idPay + SEP_AND;
		req.pedir(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + reqType, v);
	}
	var cancelarReserva = function(idBooking){
		Loader.show();
		reqType = 'cambiarEstado';
		var v = 'idBooking' + SEP_IGUAL + idBooking + SEP_AND;
		v += 'estado' + SEP_IGUAL + 'cancelado' + SEP_AND;
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + reqType, v);		
		
	}

	//E
	var enviar = function(archivo,v){
		if(!req)req = new Request(listener);
		req.pedir(archivo,v);
	}	
	var eliminarPedido = function(idPedido){
		listo = false;
		reqType = 'eliminarPedido';
		mostrarLoader(true);
		req.pedir(DIR_ROOT + 'requests/CuentaMetodos.php?metodo=' + reqType, 'idPedido' + SEP_IGUAL + idPedido + SEP_AND);		

	}
	
	//I
	this.imprimirCalendario = function(idBooking,e){
		$('formPdf').action = URL_ROOT + 'requests/BookingMetodos.php?metodo=imprimirCalendario';
		var v = 'idBooking' + SEP_IGUAL + idBooking + SEP_AND;
		v += 'sinDatosEnPost' + SEP_IGUAL + 1 + SEP_AND;
		$('datosPdf').value = v;
		
		$('formPdf').submit();
		if(e)StopEvent(e);
	}
	
	
			
	//L
	this.logout = function(){
		reqType = 'logout';
		var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
		Loader.show();
		Blocker.show();
		enviar(DIR_ROOT + 'requests/login.php?accion=' + reqType, v);
			
	}
	var listener = function(){
		var d = req.respuestaXML;
		listo = true;
		if(!d){ 
		
			metodo = 'notificarError';
			Error.onAccept = Error.onCancel = function(){
				Error.hide();
				Blocker.hide();
			}
			Error.show(LANG['errorNotificarAdmin']);

			req.pedir(DIR_ROOT + 'requests/BookingMetodos.php?metodo=notificarErrorPublico', 'error' + SEP_IGUAL + req.respuestaHTML + SEP_AND);
			
				


			Loader.hide();
			
			return false;
		
		}
		else if(reqType == 'cambiarModulo'){
			$('contModulos').innerHTML = d.firstChild.firstChild.data;
			if(moduloActual == 'datos')iniciarFormDatos();
		}
		else if(reqType == 'verResumenDeuda'){		
			$('htmlPopResumenDeuda').style.height = 'auto';		
			$('htmlPopResumenDeuda').innerHTML = d.firstChild.firstChild.data;
			if((HScreen() - 30) < $('htmlPopResumenDeuda').offsetHeight){
				$('htmlPopResumenDeuda').style.height = (HScreen() - 30) + 'px';
			}
			
			MostrarContenido($('popUpResumenDeuda'));
			Loader.hide();
			
		}
		else if(reqType == 'cambiarEstado'){
			Exito.onAccept = function(){
				Blocker.hide();
			};
			Loader.hide();
			$('contEstadoReserva' + idBookingActual).innerHTML = LANG['estadoCancelado'];
			$('btnCancelarReserva' + idBookingActual).style.display = 'none';
			Exito.show(LANG['msjReservaCancelada']);
			Blocker.show();			
			
		}
		else if(reqType == 'pagarReserva'){
			if(d.getAttribute('exito') != 'si'){
				

				LayError.onAccept = LayError.onCancel = function(){
					LayError.hide();
					Blocker.hide();
				}
				
				var k,campo;
				var errores = d.firstChild;
				var descErrores = '';
				if(errores){
					for(k=0;k<errores.childNodes.length;k++){
						campo = errores.childNodes[k].getAttribute('campo');
						descErrores += errores.childNodes[k].firstChild.firstChild.data + '<br/>';
					}
					LayError.show(descErrores);				
				}
				else{
					Blocker.hide();
				}
				Loader.hide();
				reqType = 'notificarErrorPublico';
				req.pedir(DIR_ROOT + 'requests/BookingMetodos.php?metodo=notificarErrorPublico', 'error' + SEP_IGUAL + req.respuestaHTML + SEP_AND);				
			}
			else{
				document.location = d.firstChild.data;
				Blocker.show();
			}
		}		
		else if(reqType == 'pagoFinal'){
			$('contModulo').innerHTML = d.firstChild.data;
			Blocker.hide();
			Loader.hide();
		}
		else if(reqType == 'logout'){
			location.reload();
		}
		else if(reqType == 'datosPopCielo'){
			if(!$('cerrarPopCielo').seteado){
				AddEvent($('cerrarPopCielo'),'click',function(){
					OcultarContenido($('popUpCielo'));
					Blocker.hide();
				})	
				$('cerrarPopCielo').seteado = true;
			}
			
			
			$('htmlPopCielo').style.height = 'auto';		
			$('htmlPopCielo').innerHTML = d.firstChild.firstChild.data;
			
			MostrarContenido($('popUpCielo'));
			Loader.hide();
			
		}
							
		
	}.closure(this);
	
	//P
	this.pagarReserva = function(idBooking,e,metodo){
		if(e){ StopEvent(e); }
		if(!listo){ return false; }
		
		if(!metodo){
			reqType = 'pagarReserva';
		}
		else{
			reqType = 'datosPopCielo';
		}
		listo = false;
		Blocker.show();
		Loader.show();
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + reqType, 'idBooking' + SEP_IGUAL + idBooking + SEP_AND);				
	}

	this.pagarCielo = function(idBooking){
		if(!listo){ return false; }
		
		reqType = 'pagarReserva';
		var formaPago = $('contFormaPagamento').getElementsByTagName('input');
		var i;
		var v = 'idBooking' + SEP_IGUAL + idBooking + SEP_AND;
		v += 'tarjeta' + SEP_IGUAL + $('codigoBandeira').value + SEP_AND;
		for(i=0;i<formaPago.length;i++){
			if(formaPago[i].checked){
				v += 'formaPago' + SEP_IGUAL + formaPago[i].value + SEP_AND;
				break;
			}
		}
		
		v += 'metodoPago' + SEP_IGUAL + 'cielo' + SEP_AND;
		OcultarContenido($('popUpCielo'));
		listo = false;
		Blocker.show();
		Loader.show();

		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + reqType, v);
		
	}


	//S
	this.setModulo = function(modulo){
		moduloActual = modulo;	
	}

	//V
	this.verDeudaReserva = function(idBooking,e){
		if(e){ StopEvent(e); }
		if(!listo){ return false; }
		listo = false;
		Blocker.show();
		Loader.show();
		
		if(!$('cerrarPopResumenDeuda').seteado){
			AddEvent($('cerrarPopResumenDeuda'),'click',function(){
				OcultarContenido($('popUpResumenDeuda'));
				Blocker.hide();
			})	
			$('cerrarPopResumenDeuda').seteado = true;
		}
		
		reqType = 'verResumenDeuda';
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + reqType, 'idBooking' + SEP_IGUAL + idBooking + SEP_AND);		
		
	}
	this.verReciboReserva = function(idBooking,e){
		$('idBookingRecibo').value = idBooking;
		$('formPdfRecibo').submit();
	}

	var idBookingActual = 0;
	var pagina = 1;
	var listo = true, reqType;
	var req = new Request(listener);
}

