/*****************************************************************************/
/**		LAS VARIABLES URLSERVIDOR Y SCRIPT ESTÁN INICIALIZADAS EN EL		**/ 	
/**JS: percan. En este js tabmbién están definidos los métodos comunes: **/
/**peticionJSON, eliminarObjetosAnteriores, respuesta, refrescarListad,		**/ 
/**insertarImagenEnCapaProcesando, eliminarImagenEnCapaProcesando, 			**/
/**comprobarSeleccionFicherosAModificar										**/
/*****************************************************************************/

/*****************************************************************************/
/****			MÉTODOS PROPIOS DE LAS PROMOCIONES						  ****/
/*****************************************************************************/
/*
 * Método q se encarga de crea la url para obtener los bjetos JSON de los estados promoción
 */
function combosPromocion(urlServer){

	//Inicializo el valor de la variable global
	urlServidor = urlServer;

	//Llamamos a la función encargada de realizar la petición JSON
	//peticionJSON(urlServer+"?funcion=listadoEstadosPromocion&where=&orderBy=nombre%20asc&callback=cargarDesplegableEstadoPromocion"); 
	//peticionJSON(urlServer+"?funcion=listadoTiposPromocion&where=&orderBy=nombre%20asc&callback=cargarDesplegableTipoPromocion"); 
	peticionJSON(urlServer+"?funcion=listadoProvinciasPromocion&where=&orderBy=nombre%20asc&callback=cargarDesplegableProvinciaPromocion"); 
	if(document.promotora.idPromocion.value!=''){
		peticionJSON(urlServer+"?funcion=getRestoInfoPromocion&idPromocion="+document.promotora.idPromocion.value+"&callback=getRestoInfoPromocion"); 
	}
}

/**
 * Este método inicializa el combo de los estados de las promociones
 */
function cargarDesplegableEstadoPromocion(jsonData){

	for(x=0; x<document.promotora.comboEstadoPromocion.length; x++){
		document.promotora.comboEstadoPromocion.options[0] = null;
	}
	
	var myArray = eval(jsonData);
	//Recorro el array de objetos json
	document.promotora.comboEstadoPromocion.options[0] = 
		new Option('Seleccione un estado',-1);
	for(x=1; x<=myArray.length; x++){
		document.promotora.comboEstadoPromocion.options[x] = 
			new Option(unescape(myArray[x-1]['nombre']).replace(/[+]/g,' '),myArray[x-1]['id']);
	}
}

/**
 * Este método inicializa el combo de los tipos de las promociones
 */
function cargarDesplegableTipoPromocion(jsonData){

	for(x=0; x<document.promotora.comboTipoPromocion.length; x++){
		document.promotora.comboTipoPromocion.options[0] = null;
	}
	
	var myArray = eval(jsonData);
	//Recorro el array de objetos json
	document.promotora.comboTipoPromocion.options[0] = 
		new Option('Seleccione un tipo',-1);
	for(x=1; x<=myArray.length; x++){
		document.promotora.comboTipoPromocion.options[x] = 
			new Option(unescape(myArray[x-1]['nombre']).replace(/[+]/g,' '),myArray[x-1]['id']);
	}
}

/**
 * Este método inicializa el combo de las provincias de las promociones
 */
function cargarDesplegableProvinciaPromocion(jsonData){

	for(x=0; x<document.promotora.comboProvinciaPromocion.length; x++){
		document.promotora.comboProvinciaPromocion.options[0] = null;
	}
	
	var myArray = eval(jsonData);
	//Recorro el array de objetos json
	for(x=0; x<myArray.length; x++){
		document.promotora.comboProvinciaPromocion.options[x] = 
			new Option(unescape(myArray[x]['nombre']).replace(/[+]/g,' '),myArray[x]['id']);
	}
	peticionJSON(urlServidor+"?funcion=listadoPoblacionesPromocion&orderBy=nombre%20asc&callback=cargarDesplegablePoblacionPromocion"); 
}

function buscarPromocionPorEstadoPoblacion(idEstadoPromocion,idioma,urlServer){

	//Inicializo el valor de la variable global
	urlServidor = urlServer;

	var idPoblacion = document.promotora.comboPoblacion.options[document.promotora.comboPoblacion.selectedIndex].value;
	peticionJSON(urlServidor+"?funcion=buscarPromocionPorEstadoPoblacion&idioma="+idioma+"&idEstadoPromocion="+idEstadoPromocion+"&idPoblacion="+idPoblacion+"&callback=cargarDesplegablePromociones"); 
}

/**
 * Este método inicializa el combo de de las promociones
 */
function cargarDesplegablePromociones(jsonData){

	num = document.promotora.comboPromocion.length;
	for(x=0; x<num; x++){
		document.promotora.comboPromocion.options[0] = null;
	}
	

	var myArray = eval(jsonData);
	if(myArray!=null && myArray.length>0){
		document.promotora.comboPromocion.options[0] = 
			new Option(tradSeleccionePromocion,-1);

		//Recorro el array de objetos json
		for(x=1; x<=myArray.length; x++){
			document.promotora.comboPromocion.options[x] = 
				new Option(unescape(myArray[x-1]['nombrePromocion']).replace(/[+]/g,' '),myArray[x-1]['id']);
		}
	}else{
		document.promotora.comboPromocion.options[0] = 
			new Option(tradNoExistePromocion,-1);
	}
}

function mostrarPromocion(idioma){
	document.promotora.action = tradScriptPromocion+"?idPromocion="+
		document.promotora.comboPromocion.options[document.promotora.comboPromocion.selectedIndex].value;
	document.promotora.submit();
}

/**
 * Este método inicializa el combo de las poblaciones de las promociones
 */
function cargarDesplegablePoblacionPromocion(jsonData){

	for(x=0; x<document.promotora.comboPoblacionPromocion.length; x++){
		document.promotora.comboPoblacionPromocion.options[0] = null;
	}
	
	var myArray = eval(jsonData);
	//Recorro el array de objetos json
	document.promotora.comboPoblacionPromocion.options[0] = 
		new Option(tradSeleccionePoblacion,-1);
	for(x=1; x<=myArray.length; x++){
		document.promotora.comboPoblacionPromocion.options[x] = 
			new Option(unescape(myArray[x-1]['nombre']).replace(/[+]/g,' '),myArray[x-1]['id']);
	}
	//Si estamos obteniendo la info de una promocion existente, preseleccionamos
	//todos sus valores de los combos
	if(document.promotora.idPromocion.value!=''){
		preSeleccionarValoresCombos();
	}
}

function preSeleccionarValoresCombos(){
	peticionJSON(urlServidor+"?funcion=getClavesAjenasPromocionElegida&idPromocion="+document.promotora.idPromocion.value+"&callback=preseleccionarDesplegables"); 
}

/**
 * Este método inicializa el combo de las poblaciones de las promociones
 */
function preseleccionarDesplegables(jsonData){

	var myArray = eval(jsonData);

	for(x=0; x<document.promotora.comboEstadoPromocion.length; x++){
		
		if(document.promotora.comboEstadoPromocion.options[x].value == myArray["idEstadoPromocion"]){
			document.promotora.comboEstadoPromocion.options[x].selected = true;
		}
	}
	for(x=0; x<document.promotora.comboTipoPromocion.length; x++){
		
		if(document.promotora.comboTipoPromocion.options[x].value == myArray["idTipoPromocion"]){
			document.promotora.comboTipoPromocion.options[x].selected = true;
		}
	}

	for(x=0; x<document.promotora.comboProvinciaPromocion.length; x++){
		if(document.promotora.comboProvinciaPromocion.options[x].value == myArray["idProvinciaPromocion"]){
			document.promotora.comboProvinciaPromocion.options[x].selected = true;
		}
	}

	for(x=0; x<document.promotora.comboPoblacionPromocion.length; x++){
		if(document.promotora.comboPoblacionPromocion.options[x].value == myArray["idPoblacionPromocion"]){
			document.promotora.comboPoblacionPromocion.options[x].selected = true;
		}
	}

//	peticionJSON(urlServidor+"?funcion=listadoPoblacionesPromocion&where="+escape("idProvincia="+myArray["idProvinciaPromocion"])+"&orderBy=nombre%20asc&callback=cargarDesplegablePoblacionPromocion"); 
	

/*	for(x=0; x<document.promotora.comboPoblacionPromocion.length; x++){
		if(document.promotora.comboPoblacionPromocion.options[x].value == myArray["idPoblacionPromocion"]){
			document.promotora.comboPoblacionPromocion.options[x].selected = true;
		}
	}*/
}

/**
 * Al cambiar de provincia, debemos mostrar las poblaciones pertenecientes a esa provincia
 */
function onchangeComboProvinciaPromocion(){
	var idProvincia = document.promotora.comboProvinciaPromocion.options[document.promotora.comboProvinciaPromocion.selectedIndex].value;
	peticionJSON(urlServidor+"?funcion=listadoPoblacionesPromocion&where="+escape("idProvincia="+idProvincia)+"&orderBy=nombre%20asc&callback=cargarDesplegablePoblacionPromocion"); 
}

/**
 * Método q se encarga de dar de alta la promoción
 */
function altaPromocion(){

	var desc = document.promotora.descripcion.value;
	var nom = document.promotora.nombre.value;
	if(desc!="" && nom !=""){
		var idEstadoPromocion = document.promotora.comboEstadoPromocion.options[document.promotora.comboEstadoPromocion.selectedIndex].value;
		var idTipoPromocion = document.promotora.comboTipoPromocion.options[document.promotora.comboTipoPromocion.selectedIndex].value;
		var idPoblacion = document.promotora.comboPoblacionPromocion.options[document.promotora.comboPoblacionPromocion.selectedIndex].value;
		if(idEstadoPromocion!=-1 && idTipoPromocion!=-1 && idPoblacion!=-1){
			//peticionJSON(urlServidor+"?funcion=altaPromocion&idEstadoPromocion="+idEstadoPromocion+"&idTipoPromocion="+idTipoPromocion+"&idPoblacion="+idPoblacion+"&nombre="+escape(nom)+"&descripcion="+escape(desc)+"&callback=mostrarRestoSeccionesPromocion"); 
			insertarImagenEnCapaProcesando();
			document.promotora.action = "altaPromocion.php?accion=alta";
			document.promotora.submit();
		}else{
			alert("ERROR!!!. Tiene que seleccionar un estado, tipo y población de la promoción");
		}
	}else{
		alert("ERROR!!!. El nombre y la descripción no pueden estar vacías");
	}
}

function modPromocion(){
	var desc = document.promotora.descripcion.value;
	var nom = document.promotora.nombre.value;
	if(desc!="" && nom !=""){
		var idEstadoPromocion = document.promotora.comboEstadoPromocion.options[document.promotora.comboEstadoPromocion.selectedIndex].value;
		var idTipoPromocion = document.promotora.comboTipoPromocion.options[document.promotora.comboTipoPromocion.selectedIndex].value;
		var idPoblacion = document.promotora.comboPoblacionPromocion.options[document.promotora.comboPoblacionPromocion.selectedIndex].value;
		if(idEstadoPromocion!=-1 && idTipoPromocion!=-1 && idPoblacion!=-1){
//			peticionJSON(urlServidor+"?funcion=modPromocion&idPromocion="+document.promotora.idPromocion.value+"&idEstadoPromocion="+idEstadoPromocion+"&idTipoPromocion="+idTipoPromocion+"&idPoblacion="+idPoblacion+"&nombre="+escape(nom)+"&descripcion="+escape(desc)+"&callback=respuesta"); 
			insertarImagenEnCapaProcesando();
			//document.promotora.action = "adminPromocion.php?accion=mod&idPromocion="+document.promotora.idPromocion.value+"&idEstadoPromocion="+idEstadoPromocion+"&idTipoPromocion="+idTipoPromocion+"&idPoblacion="+idPoblacion+"&nombre="+escape(nom)+"&descripcion="+escape(desc);
			document.promotora.action = "adminPromocion.php?accion=mod&idPromocion="+document.promotora.idPromocion.value+"&nombrePromocion="+escape(nom);
			document.promotora.submit();
		}else{
			alert("ERROR!!!. Tiene que seleccionar un estado, tipo y población de la promoción");
		}
	}else{
		alert("ERROR!!!. El nombre y la descripción no pueden estar vacías");
	}
}

function buscarPromocion(){
	//Antes de nada inserto la imagen del reloj
	insertarImagenEnCapaProcesando();

	var idEstadoPromocion = document.promotora.comboEstadoPromocion.options[document.promotora.comboEstadoPromocion.selectedIndex].value;
	var idTipoPromocion = document.promotora.comboTipoPromocion.options[document.promotora.comboTipoPromocion.selectedIndex].value;
	var idPoblacion = document.promotora.comboPoblacionPromocion.options[document.promotora.comboPoblacionPromocion.selectedIndex].value;
	peticionJSON(urlServidor+"?funcion=buscarPromocion&idEstadoPromocion="+idEstadoPromocion+"&idTipoPromocion="+idTipoPromocion+"&idPoblacion="+idPoblacion+"&callback=listadoPromociones"); 
}


function cancelarPromocion(){
	if(window.confirm("ATENCION!!!, si elimina la promoción, también se eliminarán las fotos, planos, etc??!!!")){
		peticionJSON(urlServidor+"?funcion=cancelarPromocion&idPromocion="+document.promotora.idPromocion.value+"&callback=respuesta"); 
		eliminarPiePromocion();
	}
}

/**
 * Este método se encarga de mostrar o no los enlaces del resto de secciones
 * de las promociones, dependiendo del resultado del alta.
 */
function mostrarRestoSeccionesPromocion(jsonData){

	var resultado = eval(jsonData);

	obj1 = document.getElementById("restoSeccionesPromocion");

	alert(resultado["descripcion"]);
	
	//Si el alta ha sido correcta, paso a mostrar los links al resto de secciones
	if(resultado["resultado"]=="OK"){
	
		//Array con los diferentes scripts q completarán la info de la promoción
		links = new Array("planos.php","fotosPromocion.php","calidadesPromocion.php", "fotos3DPromocion.php", "fotosSituacionPromocion.php", "fotosEstadoObra.php")
		//Texto descriptivo de los enlaces
		nombres = new Array("Planos Promocion","Fotos Promocion","Calidades Promocion", "Vista 3D Promocion", "Fotos Situacion", "Fotos de la obra")
		//Creo una lista desordenada
		eUL = document.createElement("ul");
	
		for(x=0; x<links.length; x++) {
			
			//Creo una LI
			eLI = document.createElement("li");
			//Creo un href
			enlace = document.createElement("a");
			enlace.href = links[x]+"?idPromocion="+resultado["idPromocion"]+
				"&nombrePromocion="+unescape(resultado['nombrePromocion']).replace(/[+]/g,' ');
			enlace.appendChild(document.createTextNode(nombres[x]));
			//Añado el href al li
			eLI.appendChild(enlace);
			//Añado el li al ul
			eUL.appendChild(eLI);
		}
		//Añado la lista a la capa
		obj1.appendChild(eUL);
	}else{
		objUl = obj1.getElementsByTagName("ul");
		if(objUl.length>0){
			obj1.removeChild(objUl[0]);
		}
	}
}

function getRestoInfoPromocion(jsonData){
	var myArray = eval(jsonData);

	//Compruebo q exista esa promocion
	if(myArray != null && myArray.length>0){

		obj1 = document.getElementById("imagenes");

		document.promotora.nombre.value = unescape(myArray[0]['nombrePromocion']).replace(/[+]/g,' ');
		document.promotora.descripcion.value = unescape(myArray[0]['descripcion']).replace(/[+]/g,' ');
		
		var etiq = document.getElementById("etiq");
		eliminarObjetosAnteriores(etiq, null);
		etiq.appendChild(document.createTextNode("Fichero pdf calidades ("+
			unescape(myArray[0]['ficheroPdfCalidades']).replace(/[+]/g,' ')+") "));
		
		//Creo un href
		enlace = document.createElement("a");
		enlace.href = "/pdf/calidadesPromocion/"+
			unescape(myArray[0]['ficheroPdfCalidades']).replace(/[+]/g,' ');
		enlace.target="_blank";
		enlace.appendChild(etiq);

		obj1.appendChild(enlace);
	  var br = document.createElement("br");
	  obj1.appendChild(br);
		
		arrayFotos = myArray[0]["fotosPromocion"];

		if(arrayFotos!=null && arrayFotos.length>0){
			obj1 = addImagenesEnLaCapa(obj1, 
				"/img/fotosPromocion/"+arrayFotos[0]["imgPeq"],
				"/img/fotosPromocion/"+arrayFotos[0]["imgGrande"]);
		}

		arrayFotos = myArray[0]["fotosSituacion"];
		if(arrayFotos!=null && arrayFotos.length>0){
			obj1 = addImagenesEnLaCapa(obj1, 
				"/img/fotosSituacionPromocion/"+arrayFotos[0]["imgPeq"],
				"/img/fotosSituacionPromocion/"+arrayFotos[0]["imgGrande"]);
		}

		arrayFotos = myArray[0]["fotosObra"];

		if(arrayFotos!=null && arrayFotos.length>0){
			obj1 = addImagenesEnLaCapa(obj1, 
				"/img/fotosEstadoObra/"+arrayFotos[0]["imgPeq"],
				"/img/fotosEstadoObra/"+arrayFotos[0]["imgGrande"]);
		}

		arrayFotos = myArray[0]["fotos3d"];

		if(arrayFotos!=null && arrayFotos.length>0){
			obj1 = addImagenesEnLaCapa(obj1, 
				"/img/3d/"+arrayFotos[0]["imgPeq"],
				"/img/3d/"+arrayFotos[0]["imgGrande"]);
		}
	}
	//Si no existe, borro la capa
	else{
		eliminarPiePromocion()
	}	
}

function addImagenesEnLaCapa(capa, imagenPeq, imagenGrande){
	var img = document.createElement("img");
	img.src= imagenPeq;
	img.border=0;

	//Creo un href
	var enlace = document.createElement("a");
	enlace.href = "ampliarImagen.php?imagen="+imagenGrande;
	enlace.target="_blank";
	enlace.appendChild(img);
	capa.appendChild(enlace);
	return capa;
}

/**
 * Este método se encarga de escribir en la capa pasada por parámetro toda la
 * información que viene en el objeto JSON
 * @param jsonData. Objeto JSON con toda la información
 * @param capa	  . El nombre de la capa con la que hay q trabajr
 * @param etiqueta. El texto de la etiqueta a mostrar
 * @param tipoItem. Nos dice qué tipo de listado estamos mostrando: estados, 
 * 					tipos, población, provincia, etc
 */
function listadoPromociones(jsonData){
	//Me quedo con la capa
	obj1 = document.getElementById("resultado");

	//Me quedo con todos los tr de esa capa
	objTr = obj1.getElementsByTagName("tr");
	//Antes de listar elimino todos los posibles tr	
	eliminarObjetosAnteriores(obj1, objTr);

	var myArray = eval(jsonData);
	//Recorro el array de objetos json
	if(myArray != null && myArray.length>0){
		for(x=0; x<myArray.length; x++){
	
			//Creo la etiqueta
	    var etiq = document.createElement("label");
			etiq.appendChild(document.createTextNode("Promocion: "+
			unescape(myArray[x]['nombrePromocion']).replace(/[+]/g,' ')));

			var enlace = document.createElement("a");
			enlace.href = "adminPromocion.php?idPromocion="+myArray[x]["id"]+
				"&nombrePromocion="+unescape(myArray[x]['nombrePromocion']).replace(/[+]/g,' ');
			enlace.appendChild(etiq);
	
			obj1.appendChild(enlace);
			
			//Creo la etiqueta
			var etiq1 = document.createElement("label");
			etiq1.appendChild(document.createTextNode("     Descripcion: "+
				unescape(myArray[x]['descripcion']).replace(/[+]/g,' ')));
			
			obj1.appendChild(etiq1);
			
			arrayFotos = myArray[x]["fotosPromocion"];
	
			if(arrayFotos!=null && arrayFotos.length>0){
				obj1 = addImagenesEnLaCapa(obj1, 
							"/img/fotosPromocion/"+arrayFotos[0]["imgPeq"],
							"/img/fotosPromocion/"+arrayFotos[0]["imgGrande"]);
			}
	
			arrayFotos = myArray[x]["fotosSituacion"];
			if(arrayFotos!=null && arrayFotos.length>0){
				obj1 = addImagenesEnLaCapa(obj1, 
					"/img/fotosSituacionPromocion/"+arrayFotos[0]["imgPeq"],
					"/img/fotosSituacionPromocion/"+arrayFotos[0]["imgGrande"]);
			}
	
			arrayFotos = myArray[x]["fotosObra"];
	
			if(arrayFotos!=null && arrayFotos.length>0){
				obj1 = addImagenesEnLaCapa(obj1, 
					"/img/fotosEstadoObra/"+arrayFotos[0]["imgPeq"],
					"/img/fotosEstadoObra/"+arrayFotos[0]["imgGrande"]);
			}
	
			arrayFotos = myArray[x]["fotos3d"];
	
			if(arrayFotos!=null && arrayFotos.length>0){
				obj1 = addImagenesEnLaCapa(obj1, 
					"/img/3d/"+arrayFotos[0]["imgPeq"],
					"/img/3d/"+arrayFotos[0]["imgGrande"]);
			}
			
		  var br = document.createElement("br");
		  obj1.appendChild(br);
			
		}
	}else{
		
		//Creo la etiqueta
    var etiq = document.createElement("label");
		etiq.appendChild(document.createTextNode("No se han encontrado promociones"));
		obj1.appendChild(etiq);
	}
	eliminarImagenEnCapaProcesando();
}

function eliminarPiePromocion(){
	var capaPrincipal = document.getElementById("cabecera");
	var piePromocion = document.getElementById("restoSeccionesPromocion");
	capaPrincipal.removeChild(piePromocion);
}
