////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// aplicacion.js / Librería de funcinones para el sistema Argos.
// Construida por Unnica Desarrollo Digital y Diseño S.L.
//	Todos los derechos reservados.
//
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
var no_hay_respuesta = "No hay respuesta del servidor. Verifique la conexion.";
function redondear(cantidad, decimales) {
//lo redondea a 2 decimales
	var cantidad = parseFloat(cantidad);
	var decimales = parseFloat(decimales);
	decimales = (!decimales ? 2 : decimales);
	return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
}
function insertar(pars, funcion_salida, mensaje_salida, padre){
	//si padre ==1 se entiende que la funcion de salida es realizada por el padre
	pars = cadena_variables(pars);
	//alert(pars);
	var myAjax = new Ajax.Request(
	'control.php', 
	{
		method: 'post', 	
		parameters: pars, 
		onComplete: function(originalRequest){
			switch(originalRequest.responseText){
				case '1':	
				 alert(mensaje_salida);
				 if(padre){
					 window.opener.procesar(funcion_salida,pars,'');
				 }
				 else{
					 procesar(funcion_salida,pars,'');
				 }
				break;
				case '0':
					alert("Se ha producido un error durante el almacenamiento.");
				break;
				default:
					alert(originalRequest.responseText);
				break;
			}
		}
	});
	
}
function eliminar(pars, funcion_salida, mensaje_pregunta, mensaje_salida, padre){
	
	if(confirm(mensaje_pregunta)){
		var myAjax = new Ajax.Request(
		'control.php', 
		{
			method: 'post', 
			parameters: pars, 
			onComplete: function(originalRequest){
				switch(originalRequest.responseText){
					case '1':	
						alert(mensaje_salida);
						if(padre){
							window.opener.procesar(funcion_salida,pars,'');
						}
						else{
							procesar(funcion_salida,pars,'');
						}
						
					break;
					case '0':
						alert("Se ha producido un error durante la eliminación.");
					break;
					default:
						alert(originalRequest.responseText);
					break;
				}
			}
		});
	}//if
	
}
function ejecutar(archivo_procesamiento, pars, funcion_salida, mensaje_salida, padre){
			var myAjax = new Ajax.Request(
				archivo_procesamiento, 
				{
					method: 'post', 
					parameters: pars, 
					onComplete: function(originalRequest){
						switch(originalRequest.responseText){
							case '1':
								if(mensaje_salida!=""){
									alert(mensaje_salida);
								}
								if(padre){
									window.opener.procesar(funcion_salida,pars,'');
								}
								else{
									procesar(funcion_salida,pars,'');
								}
								
							break;
							case '0':
								alert("Se ha producido un error durante la eliminación.");
							break;
							default:
								alert(originalRequest.responseText);
							break;
						}
					}
				});
	
			
		}
function cambiar_clase_periodico(elemento,clase1,clase2,intercambio){
	//alert(elemento+", "+clase1+", "+clase3+", "+intercambio);
	id_interval = setInterval("establecer_clase('"+elemento+"','"+clase1+"','"+clase2+"')", intercambio);
}
function establecer_clase(elemento,clase1,clase2){
	if($(elemento).className==clase1){
		$(elemento).className=clase2;
	}
	else{
		$(elemento).className=clase1;	
	}
}
function procesar(accion,pars,target){
	if(target==''){
		target = 'festival';	
	}
	switch(accion){
		case 'alternar_color_zona_carrito':
			//alert("Ueeee....");
			//cambiar_clase_periodico('espacio_carrito','espacio_carrito_gris','espacio_carrito_rojo',500)
			$('espacio_carrito').className  = "espacio_carrito_rojo";
		break;
		case 'anadir_producto':
			//cargando('espacio_carrito');
			pars = pars + "&ac=anadir_producto";
			mensaje = "El producto se ha agregado a su cesta.\nEliga las unidades que desee examinando la compra.";
			
			if($('id_color')!=null){
				if($('id_color').value==0){
					alert("Por favor, seleccione un color y una talla para el producto.");
				}
				else{
					//pasamos a comprobar el id de la talla
					if($('id_talla')!=null){
						if($('id_talla').value>0){
							pars = pars+"&id_talla="+$('id_talla').value;	
							mensaje = "El producto con la talla seleccionada se ha agregado a su cesta.\nEliga las unidades que desee examinando la compra.";
							procesar('alternar_color_zona_carrito','','');
							ejecutar('control.php', pars, 'refrescar_previo_carrito', mensaje, 0);	
						}
						else{
							alert("Seleccione la talla del producto.");
						}
					}//if id_talla!=null
				}
			}
			else{
				procesar('alternar_color_zona_carrito','','');
				ejecutar('control.php', pars, 'refrescar_previo_carrito', mensaje, 0);	
			}
			
		break;
		case 'refrescar_previo_carrito':
			/*ver_pagina('previo_carrito.php',pars,'espacio_carrito');
			ver_pagina('previo_carrito.php',pars,'espacio_carrito_2');
			$('espacio_carrito').className  = "espacio_carrito_gris";*/
			var myAjax = new Ajax.Updater(
			'espacio_carrito', 
			'previo_carrito.php', 
			{
				method: 'post', 
				parameters: pars,
				onComplete: function(originalRequest){
					$('espacio_carrito_2').innerHTML = $('espacio_carrito').innerHTML;
					$('espacio_carrito').className  = "espacio_carrito_gris";
					window.location = "compra/examinar.html";
				}
			});	
		break;
		case 'almacenar_fabricante':
			pars = "ac=insertar&clase=fabricante&nombre="+$('nombre_fabricante').value;
			cargando('capa_nuevo_fabricante');
			ejecutar('control.php', pars, 'ocultar_nuevo_fabricante', 'Fabricante almacenado correctamente.\nPuede seleccionarlo del listado de fabricantes.', 0)
			//$('capa_nuevo_fabricante').innerHTML = pars;
		break;
		case 'anadir_unidades':
			pars = pars + "&ac=anadir_unidades";
			ejecutar('control.php', pars, 'refrescar_examinar_carrito', '', 0);
		break;
		case 'quitar_unidades':
			pars = pars + "&ac=quitar_unidades";
			ejecutar('control.php', pars, 'refrescar_examinar_carrito', '', 0);
		break;
		case 'refrescar_examinar_carrito':
			window.location = window.location;
		break;
		case 'quitar_compra':
			pars = pars + "&ac=quitar_compra";
			ejecutar('control.php', pars, 'refrescar_examinar_carrito', 'El producto ha sido eliminado de su compra.', 0);
		break;
		case 'nuevo_cliente':
			ver_pagina('nuevo_cliente.php',pars,'entrada_cliente');
		break;
		case 'comprobar_datos_usuario':
			pars = cadena_variables(pars);
			//alert(pars);
			ejecutar('comprobar_datos.php',pars,'insertar_usuario','',0);
		break;
		case 'insertar_usuario':
			alert("El formato de los datos es correcto.\Procedemos a su registro.");
		break;
		case 'form_direccion_envio':
			pars = cadena_variables(pars);
			ejecutar('',pars,'','',0);
		break;
		case 'comprobar_datos_envio':
			//alert(cadena_variables('form_direccion_envio'));
			if($('des_direccionok').value==1 && $('des_poblacionok').value==1 && $('des_provinciaok').value==1 && $('des_cpok').value==1){
				if($('id_transportista')!=null){
						//hay transportista
					if($('id_transportista').value!="" && $('id_tipo_transporte')!=null && $('id_tipo_transporte').value!=""){
					//alert($('id_transportista').value+" - "+$('id_tipo_transporte').value);
						if($('gastos_envio')==null){
							alert("Por favor, espere a que se muestren los gastos de envio.");	
							return false;
						}
						else{
							return true;	
						}
					}
					else{
						alert("Seleccione un modo de transporte para calcular los gastos de envio.");	
						return false;
					}
				}
				else{
					//no hay transportista que seleccionar
					return true;
				}
				
			}
			else{
				alert("Hay errores en el formulario.\nCorrija los datos antes de continuar.");	
				return false;
			}
		break;
		case 'comprobar_texto':
			campo = pars;
			pars = "ac=comprobar_texto&texto="+pars.value;
			var myAjax = new Ajax.Request(
				'comprobar_formato.php', 
				{
					method: 'post', 
					parameters: pars, 
					onComplete: function(originalRequest){
						switch(originalRequest.responseText){
							case '1':
								$(target+'ok').value = 1;	
								$(target).innerHTML = "<img src=\"valid.jpg\" width=\"20\" height=\"20\"align=\"absmiddle\">";
							break;
							default:
								$(target+'ok').value = 0;	
								alert(originalRequest.responseText);
							break;
						}
					}
				});		
		break;
		case 'comprobar_alfanumerico':
			campo = pars;
			pars = "ac=comprobar_alfanumerico&texto="+pars.value;
			var myAjax = new Ajax.Request(
				'comprobar_formato.php', 
				{
					method: 'post', 
					parameters: pars, 
					onComplete: function(originalRequest){
						switch(originalRequest.responseText){
							case '1':
							$(target+'ok').value = 1;	
							$(target).innerHTML = "<img src=\"valid.jpg\" width=\"20\" height=\"20\"align=\"absmiddle\">";
							break;
							default:
								$(target+'ok').value = 0;	
								$(target).innerHTML = "<br>"+originalRequest.responseText;
							break;
						}
					}
				});		
		break;
		case 'comprobar_cp':
			pars = "ac=comprobar_cp&texto="+pars.value;
			var myAjax = new Ajax.Request(
				'comprobar_formato.php', 
				{
					method: 'post', 
					parameters: pars, 
					onComplete: function(originalRequest){
						switch(originalRequest.responseText){
							case '1':
							$(target+'ok').value = 1;	
							$(target).innerHTML = "<img src=\"valid.jpg\" width=\"20\" height=\"20\"align=\"absmiddle\">";
							break;
							default:
								$(target+'ok').value = 0;	
								$(target).innerHTML = "<br>"+originalRequest.responseText;
							break;
						}
					}
				});		
		break;
		case 'refrescar_pedido':
			//alert($('contrareembolso').checked);
			if($('no_seleccionado')!=null){
				 $('no_seleccionado').value="false"
			}
			pars = "forma_pago_cambiada=1";
			if($('contrareembolso').checked==true){
				pars += "&reembolso=true";
			}
			ver_pagina("precio_compra_final.php",pars,"precio_final");
		break;
		case 'finalizar_compra':
			//Deshabilitamos el botón para que no se pueda pulsar más de una vez
			$('boton_envio').disabled = true;
			error = false;
			//tenemos que comprobar que ha seleccionado todas las tallas de los regalos si los hubiera
			if($('n_regalos')!=null){
				regalos = parseInt($('n_regalos').value);
				$('boton_envio').disabled = false;
			//	alert("Va a ser que hay que procesar las tallas de los "+regalos+" productos de regalo.");
				for(i=0;i<regalos;i++){
					if($('id_talla_'+i)==null || $('id_talla_'+i).value=='0'){
						error = true;	
					}
				}
			}
			if(error==true){
				alert("Por favor, seleccione el color y la talla para los productos de regalo.");
			}
			else{
				if($('n_regalos')!=null){
					pars = "&n_regalos="+$('n_regalos').value;
					for(i=0;i<regalos;i++){
						pars = 	pars + "&id_producto_regalo_"+i+"="+$('id_producto_regalo_'+i).value+"&id_talla_"+i+"="+$('id_talla_'+i).value;
					}
				}
				
				pars = pars + "&observaciones_envio="+$('observaciones_envio').value;	
				//alert(pars);
				window.scrollTo(0,0);
				ver_pagina('procesar_pedido.php',pars,'proceso_de_pedido');
			}
			
			//alert(pars);
			
		break;
		case 'cambio_transportista':
			if($('id_transportista').value!=""){
				if(pars!=""){
					pars += "&";
				}
				pars += "id="+$('id_transportista').value;
				ver_pagina('modos_transporte.php',pars,'modo_transporte');	
			}
			else{
				$('modo_transporte').style.display = "none";
			}
			//alert($('id_transportista').value);
		break;
		case 'calculo_gastos_envio':
			if($('id_tipo_transporte').value!=""){
				if(pars!=""){
					pars += "&";
				}
				pars += "id="+$('id_tipo_transporte').value;
				ver_pagina('calculo_gastos_envio.php',pars,'muestra_gastos_envio');	
			}
			else{
				$('muestra_gastos_envio').style.display = "none";
			}
		break;
		case 'actualizar_datos_cliente':
			pars = cadena_variables(pars);			
			//alert(pars);
			ejecutar('actualizar_datos_cliente.php',pars,'','',0);
		break;
		case 'actualizar_pass':
			pars = cadena_variables(pars);
			ejecutar('actualizar_pass.php',pars,'','',0);
		break;
		case 'ver_imagen_producto':
			$('viendo').value = pars;
			$('imagen_producto').innerHTML ="<img src='/images/imagen.php?ac=escalar&sub=productos&w=170&h=170&imagen="+pars+"'>";
		break;
		case 'ampliar_foto_producto':
			pars = "&id="+$('idpr').value+"&producto="+$('viendo').value;
			popUp('ampliar_foto.php?'+pars,500,500);
		break;
		case 'condiciones_legales':
			popUp('/condiciones_legales.php?'+pars,500,500);
		break;
		case 'ordenar':
			pars = "orderby="+pars;
			//alert(pars);
			ejecutar('/establecer_orden.php', pars, 'refrescar', '', 0)
		break;
		case 'refrescar':
			this.location = this.location;
		break;
		case 'comprobar_forma_pago_seleccionada':
			if($('no_seleccionado')!=null && $('no_seleccionado').value=="true"){
				alert("Seleccione una forma de pago.");
				return false;
			}
			else{
				return true;	
			}
		break;
		case 'mostrar_tallas':
			valor = $('id_color').value;
			if(valor!=0){
				d = valor.split("-");
				if(d[1]!=""){
					procesar('ver_imagen_producto',d[1],'');
				}
				//alert("Se van a mostrar las tallas para el color "+d[0]+", con imagen "+d[1]);
				pars = "id_color="+d[0];
				ver_pagina('tallas_color.php',pars,'espacio_tallas');		
			}
			else{
				$('espacio_tallas').innerHTML = "";
			}
		break;
		case 'mostrar_tallas_regalos':
			vt = pars;
			pars = "indice_regalo="+pars;
		//	alert("Seleccionamos el color para el regalo numero "+pars);
			if($('n_regalos')!=null){
				//alert(pars);
				//alert($('id_color_'+pars).value);
				color=$('id_color_'+vt).value;
				if(color!='0'){
					d = color.split("-");
					if(d[1]!=""){
					//	procesar('ver_imagen_producto',d[1],'');
					}
					pars = pars + "&id_color="+color;
					ver_pagina('tallas_color_regalo.php',pars,target);	
				}
				
			}	
		break;
		case 'mensaje_seleccion_talla':
			alert("Por favor, seleccione el color y la talla del producto");
			window.location = pars;
		break;
	} //switch
}
function recuperar_pass(){
	if($('user_ob').value==''){
		alert("Por favor, introduzca el correo electronico que utilizo para darse de alta y donde se le enviaran los datos de acceso.");
	}
	else{
		//comprobamos que el usuario existe y cambiamos su contraseña
		pars = "email="+$('user_ob').value;
		var myAjax = new Ajax.Updater(
			'', 
			'cambiar_password.php', 
			{
				method: 'post', 
				parameters: pars,
				onComplete: function(originalRequest){
					alert(originalRequest.responseText);
				}
			});	
	}
}
function showResponse(originalRequest){
	//put returned XML in the textarea
		$('marco_principal').innerHTML = originalRequest.responseText;
}
function cargando(target){
	$(target).innerHTML = "<img src='loading.gif' width='32' height='32' />";	
}
function ver_pagina(pagina,pars,target){
	//ponemos el icono de cargando
	$(target).style.display = "";
	$(target).innerHTML = "<img src='loading.gif' width='32' height='32' />";
	var myAjax = new Ajax.Updater(
			target, 
			pagina, 
			{
				method: 'post', 
				parameters: pars
			});
	
}
function ver_portada(){
	//alert("portada");
	var url = 'ver_portada.php';
	var pars = '';
		
		var myAjax = new Ajax.Updater(
			'informacion', 
			url, 
			{
				method: 'get', 
				parameters: pars
			});
	
}
function ver_noticias(){
	//alert("portada");
	var url = 'noticias.php';
	var pars = '';
		
		var myAjax = new Ajax.Updater(
			'noticias', 
			url, 
			{
				method: 'get', 
				parameters: pars
			});
	
}
function ver_video(){
	var url = 'ver_video.php';
	var pars = 'video='+$('video').value;
	//alert(pars);
		var myAjax = new Ajax.Updater(
			'fotos', 
			url, 
			{
				method: 'get', 
				parameters: pars
				
			});
}
function popUp(URL, ancho, alto){
	//alert(URL);
		ancho += 20;
		alto += 40;
		w = screen.availWidth;
		h = screen.availHeight;
	//alert(h);
	//alert(w);
		leftd = (w/2)-(ancho/2);
		topd = (h/2)-(alto/2);
		parametros = 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=' + ancho + ',height=' + alto + ',left = '+leftd+',top = '+topd+'';
		//ventana =  window.open(URL, 'Imagen', parametros);
		ventana =  window.open(URL, '', parametros);
		if (!ventana){
			alert("La ventana de descargas no se mostró debido a un bloqueador de PopUp.\nDesactívelo para poder descargar el archivo.");
		}
	}
	
function cadena_variables(formulario){
	
	var ob;
	var sql = "";
	var campos = $(formulario).elements.length;
	//alert("campos:"+campos);
	for(i=0;i<campos;i++){
		ob = $(formulario).elements[i];
		if(i==0){
			if($(ob).type=='select-one'){
				sql += $(ob).name+"="+$(ob).options[$(ob).selectedIndex].value;
			}
			else{
				if($(ob).type=='checkbox'){
					if($(ob).checked){
						sql += $(ob).name+"=1";
					}
					else{
						sql += $(ob).name+"=0";
					}
						
				}
				else{
					sql += $(ob).name+"="+$(ob).value;
				}
				
			}
			
		}
		else{
			if($(ob).type=='select-one'){
				sql += "&"+$(ob).name+"="+$(ob).options[$(ob).selectedIndex].value;
			}
			else{
				if($(ob).type=='checkbox'){
					if($(ob).checked){
						sql += "&"+$(ob).name+"=1";
					}
					else{
						sql += "&"+$(ob).name+"=0";
					}	
				}
				else{
					sql += "&"+$(ob).name+"="+$(ob).value;
				}
			}
		}
		
	}
	return sql;
}
function enviarFormulario(form){
	
	var ok = true;
	var ob;
	//var campos = document.forms[0].elements.length;
	var campos = form.elements.length;
	//alert("campos:"+campos);
	for(i=0;i<campos;i++){
		if(form.elements[i].id.indexOf('ob')!=-1){
			ob = form.elements[i];
			//alert(ob.type);
			switch (ob.type){
				case 'text':
					if (ob.value==""){
						if(ob.alt!=""){
							alert("EL campo "+ob.alt+" es obligatorio.");
							ok = false;						
						}
						else{
							alert("EL campo "+ob.name+" es obligatorio.");
							ok = false;						
						}

					}					
					break;
				case 'textarea':
					if (ob.innerHTML==""){
						alert("EL campo "+ob.name+" es obligatorio.");
						ok = false;
					}					
					break;
				case 'select-one':
					if(ob.options[ob.selectedIndex].value==0){
						alert("Por favor, selecione una opción del campo "+ob.name);
						ok= false;
					}
				break;
				case 'password':
					if (ob.value==""){
						if(ob.alt!=""){
							alert("EL campo "+ob.alt+" es obligatorio.");
							ok = false;						
						}
						else{
							alert("EL campo "+ob.name+" es obligatorio.");
							ok = false;						
						}
					}
				break;
				case 'checkbox':
					if(ob.checked==false){
						alert("Debe marcar la casilla "+ob.name);
						ok= false;	
					}
				break;
			
			}//switch
			//return false;
		}//if
	}
	
	return ok;
}
