var urlServidor, script;

/**
 * Este método se encarga de realizar la petición de objetos JSON a la parte servidora
 * @param url. Url servidora con todos los parámetros necesarios
 */
function peticionJSON(url){
	// Creamos la peticón json. Le ponemos el parámetro callback
	//para que en el retorno se llame su función correspondiente
	bObj = new JSONscriptRequest(url); 
	//Construimos el objeto json
	bObj.buildScriptTag(); 	
	//Realizamos la petición a la parte servidora
	bObj.addScriptTag();	
}

/*
 * Este método se encarga de vaciar la capa para poder meter nuevos elementos
 * @param objetoPadre. Objeto DOM (capa en este caso)
 * @param arrayObj	 . Array con los hijos buscados del objetoPadre
 */
function eliminarObjetosAnteriores(objetoPadre, arrayObj){
	//Bucle q recorre el array hasta q esté vacío
	/*while(arrayObj.length>0){
		//Siempre borro la primera instancia del array
		objetoPadre.removeChild(arrayObj[0]);
	}*/
	//Borro la última etiqueta
	while(objetoPadre.hasChildNodes()){
		objetoPadre.removeChild(objetoPadre.lastChild);
	}
}

/**
 * Este método se encarga de recibir la información de respuesta.
 * Llegamos aquí pq en el parámetro callback de la petición indicamos este nombre
 * @param jsonData. Objeto JSON con toda la información
 */
function respuesta(jsonData){
	
	var resultado = eval(jsonData);
	if(resultado!=null){
		alert(resultado["descripcion"]);
		refrescarListado();
	}
}

/**
 * Este método se encarga de refrescar el listado de los items una vez se haya
 * procesado el alta, modificación o cancelación de los objetos.
 */
function refrescarListado(){
	if(script=="estadosPromocion"){
		//Vuelvo a listar todos los estados, ya que ahora hay más items
		estadosPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="tiposPromocion"){
		//Vuelvo a listar todos los tipos, ya que ahora hay más items
		tiposPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="provinciasPromocion"){
		//Vuelvo a listar todas las provincias, ya que ahora hay más items
		provinciasPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="tiposViviendaPromocion"){
		//Vuelvo a listar todas las viviendas, ya que ahora hay más items
		tiposViviendaPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="calidadesPromocion"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		calidadesPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="calidadesPromocionElegida"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		calidadesPromocionElegida(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="poblacionesPromocion"){
		//Vuelvo a listar todas las poblaciones, ya que ahora hay más items
		onchangeProvinciaPoblacion()
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="cancelarFotosPromocion"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotosPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="cancelarFotosEstadoObra"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotosEstadoObra(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="cancelarFotos3DPromocion"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotos3DPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="cancelarFotosSituacionPromocion"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotosSituacionPromocion(urlServidor);
		//Borramos la imagen del reloj
		eliminarImagenEnCapaProcesando();
	}else if(script=="fotosPromocion"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotosPromocion(urlServidor);
	}else if(script=="fotos3DPromocion"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotos3DPromocion(urlServidor);
	}else if(script=="fotosSituacionPromocion"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotosSituacionPromocion(urlServidor);
	}else if(script=="fotosEstadoObra"){
		//Vuelvo a listar todas las calidades, ya que ahora hay más items
		fotosEstadoObra(urlServidor);
	}
}

/**
 * Este método se encarga de mostrar el reloj de procesando mientras
 * se ejecuta por completa la petición
 */
function insertarImagenEnCapaProcesando(){
	var capaProc = document.getElementById("procesando");

	//Creo la imagen q contendrá el gif animado
	var img = document.createElement("img");
	img.src = "/img/reloj.gif";
	img.border=0;
	//Creo la etiqueta
  var etiq = document.createElement("label");
	etiq.appendChild(document.createTextNode("Procesando..."));
	capaProc.appendChild(etiq);
	capaProc.appendChild(img);
}

/**
 * Este método se encarga de borrar la imagen del reloj una vez se ha acabado
 * de procesar la petición
 */
function eliminarImagenEnCapaProcesando(){

	var capaProc = document.getElementById("procesando");
	objTr = capaProc.getElementsByTagName("tr");
	//Antes de listar elimino todos los posibles tr	
	eliminarObjetosAnteriores(capaProc, objTr);
}

function comprobarSeleccionFicherosAModificar(){
	var obj1 = document.getElementById('listadoItems');
	//Me quedo con todos los inputs
	objs = obj1.getElementsByTagName("input");
	var chequeado = false;
	for(x=0; x<objs.length; x++){
		//Si este objeto está chequeado, vuelvo a recorrer el bucle para encontrar
		//los input text q se correspondan con su id
		if(objs[x].type=="checkbox" && objs[x].checked){
			chequeado = true;
			break;
		}
	}
	return chequeado;
}
