// JavaScript Document
var Proyecto = new function(){
	
	var erEmail = RegExp('^[a-z0-9_\.\-]+@[a-z0-9_\-]+(\.[a-z0-9_\-]{2,5})*\.[a-z]{2,4}$');
	var erNumero = RegExp('^[0-9]+$');
	var errorClass = 'fieldsetError';
	var idGaleriaActual = 0;
	var enviando = false;
	var paginaGaleriaActual = 1;
	var paginaNoticiaActual = 1;	
	//
	var listener = function(){
		enviando = false;
		var d = req.respuestaXML;
		if(!d){
			//alert(req.respuestaHTML);
		}
		//
		else if(reqType == 'loadInfo'){
			$('cont'+reqInfo.id).innerHTML = d.firstChild.data;
			loadedInfo['loaded'+reqInfo.id] = true;
			
			if (reqInfo.id == 'Consultar') { inicializarConsulta(); }
			else if (reqInfo.id == 'Ubicacion') { eval(d.lastChild.data); }
		}
		//
		else if(reqType == 'provincias'){
			
			while(provincia.hasChildNodes()){ provincia.removeChild(provincia.firstChild); }
			
			for(var i = 0, t = d.childNodes.length; i < t; i++){
				var opt = document.createElement('option');
				opt.value = d.childNodes[i].getAttribute('value');
				opt.innerHTML = d.childNodes[i].firstChild.data;
				
				provincia.appendChild(opt);
			}
			provincia.disabled = false;
		}
		//
		else if(reqType == 'ciudades'){
			
			while(ciudad.hasChildNodes()){ ciudad.removeChild(ciudad.firstChild); }
			
			for(var i = 0, t = d.childNodes.length; i < t; i++){
				var opt = document.createElement('option');
				opt.value = d.childNodes[i].getAttribute('value');
				opt.innerHTML = d.childNodes[i].firstChild.data;
				
				ciudad.appendChild(opt);
			}
			ciudad.disabled = false;
		}
		//
		else if(reqType == 'barrios'){
			
			while(barrio.hasChildNodes()){ barrio.removeChild(barrio.firstChild); }
			
			for(var i = 0, t = d.childNodes.length; i < t; i++){
				var opt = document.createElement('option');
				opt.value = d.childNodes[i].getAttribute('value');
				opt.innerHTML = d.childNodes[i].firstChild.data;
				
				barrio.appendChild(opt);
			}
			barrio.disabled = false;
		}
		//
		else if(reqType == 'cargarPlanta'){
			$('plantasCont').innerHTML = d.firstChild.data;
		}
		//
		else if(reqType == 'cargarNota'){
			$('notasCont').innerHTML = d.firstChild.data;
		}
		//
		else if(reqType == 'cargarGaleria'){
			$('imagenesCont').innerHTML = d.firstChild.data;
		}
		//
		else if(reqType == 'enviarConsulta' || reqType == 'reConsultar'){
			//
			
			Exito.onAccept = function(){
				mensaje.value = '';
				Blocker.hide();
			};
			Exito.show('Su consulta ha sido enviada con exito');
			Loader.hide();		
			$('LoaderGeneral').childNodes[1].innerHTML = 'Cargando...';
			
			
			
			
			/*$('consultarCont').innerHTML = d.firstChild.data;
			if (!!$('nombreConsultar')) { inicializarConsulta(); }*/
		}
	}
	
	
	this.descargar = function(idContenido,idProyecto,e){
		var iframe = $('adjuntoIframe');
		if(Nav.esIE6)document.location = DIR_ROOT+'requests/descargaForzada.php'+'?idContenido='+idContenido+'&idProyecto='+idProyecto;
		else iframe.src = DIR_ROOT+'requests/descargaForzada.php'+'?idContenido='+idContenido+'&idProyecto='+idProyecto;
		if(e) StopEvent(e);
	}		

	
	//
	var solapaActiva = false;
	this.cambiarSolapas = function (id, evt){
		if(solapaActiva){
			solapaActiva.ele.parentNode.className = '';
			solapaActiva.cont.style.display = 'none';
		}
		
		solapaActiva = {id: id, ele: $('solapa'+id), cont: $('cont'+id)};
		solapaActiva.ele.parentNode.className = 'on';
		solapaActiva.cont.style.display = 'block';

		//StopEvent(evt);
		
		if(loadedInfo['loaded'+id] !== true) { loadInfo(id); }
	}
	
	
	//
	var textLoading = '<div style="text-align:center; padding:100px 0;">' +
	'<img src="' + DIR_ROOT + 'img/loader.gif" /><br />Cargando...</div>';
	var req, loadedInfo = {}, reqType = '', reqInfo = {};
	
	var loadInfo = function(id){
		//
		if(loadedInfo['loading'+id] !== true){
			$('cont'+id).innerHTML = textLoading;
			loadedInfo['loading'+id] = true;
		}
		
		var v = 'idProyecto' + SEP_IGUAL + ID_PROYECTO + SEP_AND;
		v += 'idIdioma' + SEP_IGUAL + ID_IDIOMA + SEP_AND;
		v += 'contenido' + SEP_IGUAL + id.toLowerCase() + SEP_AND;
		if (id == 'Consultar') { v += datosPersonales; }
		
		reqType = 'loadInfo';
		reqInfo = {'id': id};
		req = new Request(listener);
		req.pedir(DIR_ROOT + 'requests/proyectoInfo.php', v);
	}
	
	
	//
	var datosPersonales = (Cookie.get('datosPersonales') == '')? '' : Cookie.get('datosPersonales');
	var nombre, apellido, email, telefono, pais, paisNombre, provincia, provinciaNombre, 
	ciudad, ciudadNombre, barrio, barrioNombre, direccion, cp, mensaje, error;
	
	this.consultar = function(evt){
		var vale = true, t = '';
		
		if(evt){ StopEvent(evt); }
		
		nombre.onblur();
		if(nombre.parentNode.className == errorClass){ vale = false; }
		
		apellido.onblur();
		if(apellido.parentNode.className == errorClass){ vale = false; }
		
		email.onblur();
		if(email.parentNode.className == errorClass){ vale = false; }
		
		provincia.onblur();
		if(provincia.parentNode.className == errorClass){ vale = false; }
		
		ciudad.onblur();
		if(ciudad.parentNode.className == errorClass){ vale = false; }
		
		barrio.onblur();
		if(barrio.parentNode.className == errorClass){ vale = false; }
		
		if(!vale){
			error.innerHTML = 'Complete o corrija los campos resaltados';
			error.style.display = 'block';
			return false;
		}
		else{
			error.style.display = 'none';
		}
		
		reqType = 'enviarConsulta';
		
		var v = 'idProyecto' + SEP_IGUAL + ID_PROYECTO + SEP_AND;
		v += 'idIdioma' + SEP_IGUAL + ID_IDIOMA + SEP_AND;
		v += 'contenido' + SEP_IGUAL + reqType + SEP_AND;
		v += getDatosPersonales();
		v += 'mensaje' + SEP_IGUAL + trim(mensaje.value) + SEP_AND;
		
		//$('consultarCont').innerHTML = textLoading;
		
		$('LoaderGeneral').childNodes[1].innerHTML = 'Enviando...';
		Blocker.show();
		Loader.show();		
		req = new Request(listener);
		req.pedir(DIR_ROOT + 'requests/proyectoInfo.php', v);
	}
	
	var inicializarConsulta = function(){
		
		nombre = $('nombreConsultar');
		if(!nombre.onblur){
			nombre.onblur = function(){
				var v = trim(this.value);
				if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
				else{ this.parentNode.className = ''; }
			}.closure(nombre);
		}
		
		apellido = $('apellidoConsultar');
		if(!apellido.onblur){
			apellido.onblur = function(){
				var v = trim(this.value);
				if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
				else{ this.parentNode.className = ''; }
			}.closure(apellido);
		}
		
		email = $('emailConsultar');
		if(!email.onblur){
			email.onblur = function(){
				var v = trim(this.value);
				if(v == '' || !erEmail.test(v)){ this.parentNode.className = errorClass; }
				else{ this.parentNode.className = ''; }
			}.closure(email);
		}
		
		telefono = $('telefonoConsultar');
		
		pais = $('paisConsultar');
		if(!pais.onchange){
			pais.onchange = function(){
				provincia.disabled = ciudad.disabled =
				barrio.disabled = true;
				
				provinciaNombre.style.display = ciudadNombre.style.display = 
				barrioNombre.style.display = 'none';
				
				reqType = 'provincias';
				
				var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
				v += 'idPais' + SEP_IGUAL + pais.value + SEP_AND;
				
				req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
			};
		}
		
		provincia = $('provinciaConsultar');
		if(!provincia.onchange){
			provincia.onchange = function(){
				
				var v = trim(provincia.value);
				
				ciudad.disabled = barrio.disabled = true;
				provinciaNombre.style.display = (v == '0')? '' : 'none';
				ciudadNombre.style.display = barrioNombre.style.display = 'none';
				
				if(erNumero.test(v) && v != ''){
					
					reqType = 'ciudades';
					
					var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
					v += 'idProvincia' + SEP_IGUAL + provincia.value + SEP_AND;
					
					req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
				}
			};
		}
		if(!provincia.onblur){
			provincia.onblur = function(){
				var v = trim(this.value);
				if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
				else{ provinciaNombre.onblur(); }
			}.closure(provincia);
		}
		
		provinciaNombre = $('provinciaNombreConsultar');
		if(!provinciaNombre.onblur){
			provinciaNombre.onblur = function(){
				var v = trim(this.value);
				if(provincia.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
				else{ this.parentNode.className = ''; }
			}.closure(provinciaNombre);
		}
		
		ciudad = $('ciudadConsultar');
		if(!ciudad.onchange){
			ciudad.onchange = function(){
				
				var v = trim(ciudad.value);
				
				barrio.disabled = true;
				ciudadNombre.style.display = (v == '0')? '' : 'none';
				barrioNombre.style.display = 'none';
				
				if(erNumero.test(v) && v != ''){
					
					reqType = 'barrios';
					
					var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
					v += 'idCiudad' + SEP_IGUAL + ciudad.value + SEP_AND;
					
					req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
				}
			};
		}
		if(!ciudad.onblur){
			ciudad.onblur = function(){
				var v = trim(this.value);
				if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
				else{ ciudadNombre.onblur(); }
			}.closure(ciudad);
		}
		
		ciudadNombre = $('ciudadNombreConsultar');
		if(!ciudadNombre.onblur){
			ciudadNombre.onblur = function(){
				var v = trim(this.value);
				if(ciudad.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
				else{ this.parentNode.className = ''; }
			}.closure(ciudadNombre);
		}
		
		barrio = $('barrioConsultar');
		if(!barrio.onchange){
			barrio.onchange = function(){
				
				var v = trim(barrio.value);
				barrioNombre.style.display = (v == '0')? '' : 'none';
			};
		}
		if(!barrio.onblur){
			barrio.onblur = function(){
				var v = trim(this.value);
				if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
				else{ barrioNombre.onblur(); }
			}.closure(barrio);
		}
		
		barrioNombre = $('barrioNombreConsultar');
		if(!barrioNombre.onblur){
			barrioNombre.onblur = function(){
				var v = trim(this.value);
				if(barrio.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
				else{ this.parentNode.className = ''; }
			}.closure(barrioNombre);
		}
		
		direccion = $('direccionConsultar');
		
		cp = $('cpConsultar');
		
		mensaje = $('mensajeConsultar');
		
		error = $('errorConsultar');
	}
	
	var getDatosPersonales = function(){
		datosPersonales = '';
		datosPersonales += 'nombre' + SEP_IGUAL + trim(nombre.value) + SEP_AND;
		datosPersonales += 'apellido' + SEP_IGUAL + trim(apellido.value) + SEP_AND;
		datosPersonales += 'email' + SEP_IGUAL + trim(email.value) + SEP_AND;
		datosPersonales += 'telefono' + SEP_IGUAL + trim(telefono.value) + SEP_AND;
		datosPersonales += 'idPais' + SEP_IGUAL + trim(pais.value) + SEP_AND;
		datosPersonales += 'idProvincia' + SEP_IGUAL + trim(provincia.value) + SEP_AND;
		datosPersonales += 'nombreProvincia' + SEP_IGUAL + trim(provinciaNombre.value) + SEP_AND;
		datosPersonales += 'idCiudad' + SEP_IGUAL + trim(ciudad.value) + SEP_AND;
		datosPersonales += 'nombreCiudad' + SEP_IGUAL + trim(ciudadNombre.value) + SEP_AND;
		datosPersonales += 'idBarrio' + SEP_IGUAL + trim(barrio.value) + SEP_AND;
		datosPersonales += 'nombreBarrio' + SEP_IGUAL + trim(barrioNombre.value) + SEP_AND;
		datosPersonales += 'direccion' + SEP_IGUAL + trim(direccion.value) + SEP_AND;
		datosPersonales += 'cp' + SEP_IGUAL + trim(cp.value) + SEP_AND;
		
		Cookie.set('datosPersonales', datosPersonales);
		return datosPersonales;
	}
	
	this.reConsultar = function(evt){
		
		var v = 'idProyecto' + SEP_IGUAL + ID_PROYECTO + SEP_AND;
		v += 'idIdioma' + SEP_IGUAL + ID_IDIOMA + SEP_AND;
		v += 'contenido' + SEP_IGUAL + 'reConsultar' + SEP_AND;
		v += datosPersonales;
		
		$('consultarCont').innerHTML = textLoading;
		
		reqType = 'reConsultar';
		req = new Request(listener);
		req.pedir(DIR_ROOT + 'requests/proyectoInfo.php', v);
	}
	
	
	//
	this.cargarPlanta = function(id, evt){
		if(evt){ StopEvent(evt); }
		
		$('plantasCont').innerHTML = textLoading;
		
		var v = 'idProyecto' + SEP_IGUAL + ID_PROYECTO + SEP_AND;
		v += 'idIdioma' + SEP_IGUAL + ID_IDIOMA + SEP_AND;
		v += 'idPlanta' + SEP_IGUAL + id + SEP_AND;
		v += 'contenido' + SEP_IGUAL + 'planta' + SEP_AND;
		
		reqType = 'cargarPlanta';
		req = new Request(listener);
		req.pedir(DIR_ROOT + 'requests/proyectoInfo.php', v);
	}
	
	
	//
	this.cargarNota = function(id, evt){
		if(evt){ StopEvent(evt); }
		
		$('notasCont').innerHTML = textLoading;
		
		var v = 'idProyecto' + SEP_IGUAL + ID_PROYECTO + SEP_AND;
		v += 'idIdioma' + SEP_IGUAL + ID_IDIOMA + SEP_AND;
		v += 'idNota' + SEP_IGUAL + id + SEP_AND;
		v += 'contenido' + SEP_IGUAL + 'nota' + SEP_AND;
		
		reqType = 'cargarNota';
		req = new Request(listener);
		req.pedir(DIR_ROOT + 'requests/proyectoInfo.php', v);
	}
	
	
	//
	this.cargarGaleria = function(id, evt){
		if(evt){ StopEvent(evt); }

		if(!enviando){
			enviando = true;			
			idGaleriaActual = id;
			$('imagenesCont').innerHTML = textLoading;
			var v = 'idProyecto' + SEP_IGUAL + ID_PROYECTO + SEP_AND;
			v += 'idIdioma' + SEP_IGUAL + ID_IDIOMA + SEP_AND;
			v += 'idGaleria' + SEP_IGUAL + id + SEP_AND;
			v += 'contenido' + SEP_IGUAL + 'galeria' + SEP_AND;
			reqType = 'cargarGaleria';
			req = new Request(listener);
			req.pedir(DIR_ROOT + 'requests/proyectoInfo.php', v);

		}
	}
	
	
	//
	this.checkUrlChange = function(){
		var urlInfo = document.location.href.split('#');
		if (!urlInfo[1]) { urlInfo[1] = 'Info'; }
		if (!solapaActiva || solapaActiva.id != urlInfo[1]) { this.cambiarSolapas(urlInfo[1]); }
	}
	
	
	this.cambiarPaginaGaleria = function(a){
		var partA = a.innerHTML.split(' ');
		var pagTemp = paginaGaleriaActual;
		if(partA[1] == 'Ant'){
			if(paginaGaleriaActual > 1)pagTemp = (paginaGaleriaActual - 1);
		}
		else if(partA[0] == 'Sig'){
			if($('pagGal-' + (paginaGaleriaActual+1))){
				pagTemp++;
			}
		}
		else{
			pagTemp = parseInt(a.innerHTML);
		}
		
		$('contGaleria' + paginaGaleriaActual).style.display = 'none';
		$('pagGal-' + paginaGaleriaActual).className = '';		
		paginaGaleriaActual = pagTemp;
		$('contGaleria' + paginaGaleriaActual).style.display = 'block';		
		$('pagGal-' + paginaGaleriaActual).className = 'on';
	}
	this.cambiarPaginaNoticia = function(a){
		var partA = a.innerHTML.split(' ');
		var pagTemp = paginaNoticiaActual;
		if(partA[1] == 'Ant'){
			if(paginaNoticiaActual > 1)pagTemp = (paginaNoticiaActual - 1);
		}
		else if(partA[0] == 'Sig'){
			if($('pagNot-' + (paginaNoticiaActual+1))){
				pagTemp++;
			}
		}
		else{
			pagTemp = parseInt(a.innerHTML);
		}
		
		$('contNoticias' + paginaNoticiaActual).style.display = 'none';
		$('pagNot-' + paginaNoticiaActual).className = '';		
		paginaNoticiaActual = pagTemp;
		$('contNoticias' + paginaNoticiaActual).style.display = 'block';		
		$('pagNot-' + paginaNoticiaActual).className = 'on';
	}	
	
	
	//
}