﻿var GEO=GEO||{};
var $j = jQuery.noConflict(); //Para solventar el error de jquery con otras librerias!!
var hash = new Array()
hash["#aixecaments_topografics"]="info1";
hash["#control_obra_civil"]="info2";
hash["#laser_escaner"]="info3";
hash["#cadastre"]="info4";
hash["#aixecament_interiors_facanes"]="info5";
hash["#informes_planeitat"]="info6";
hash["#fotogrametria"]="info7";
hash["#auscultacions_control_deformacions"]="info8";
hash["#sistemes_informacio_geografica"]="info9";
hash["#aixecaments_especials"]="info10";
//hash["#topografia_subterrania"]="info11";
//hash["#batimetria"]="info12";


//Creador del crumb
GEO.geo = new function(){};

GEO.geo.init = function(len)
{
	var jash = window.location.hash; 
	// comprobamos si existe un hash valido 
	if(jash.length > 1){
		var val = hash[jash].split("o",2);
		GEO.geo.lanzar(hash[jash], val[1]);
	} 

	var that = this;
	
	//Cargamos los datos generales
	$j.ajax({
		type: 'GET',
		url: 'general.xml',
		cache: false,
		dataType: ($j.browser.msie) ? 'text' : 'xml', //Reconocemos el browser.
		success: function(data){
			var xml;
			if(typeof data == 'string'){
				xml = new ActiveXObject('Microsoft.XMLDOM');
				xml.async = false;
				xml.loadXML(data);
			} else {
				xml = data;
			}
			that.setXmlGen(xml, len);
		}
	});
	
//	GEO.geo.getDate();
	
	$j("#home").click(function(e){
		window.location = $j(this).find("a").attr("href");
		return false;
	});

	$j("#quien").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#quien"), 0);
		that.encontrar();
		e.stopPropagation();
	});

	$j("#donde").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#donde"), 0);		
		that.ubicar();
		e.stopPropagation();
	});

	$j("#contact").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#contact"), 0);
		that.contactar();
		e.stopPropagation();
	});
	
	$j("#client").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#client"), 0);
		that.clientes();
		e.stopPropagation();
	});

	$j("#blog1").click(function(e){
		window.open($j(this).find("a").attr("href"));
		return false;
	});

	$j("#acces").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#acces"), 0);
		that.acceder();
		e.stopPropagation();
	});
	
	$j("#info1").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info1"), 1);
		that.cargarDatos(0);
		e.stopPropagation();
	});

	$j("#info2").click(function(e){
		$j('#content').empty();
		that.cambiarClase();
		that.seleccionar($j("#info2"), 1);
		that.cargarDatos(1);
		e.stopPropagation();
	});

	$j("#info3").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info3"), 1);
		that.cargarDatos(2);
		e.stopPropagation();
	});

	$j("#info4").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info4"), 1);
		that.cargarDatos(3);
		e.stopPropagation();
	});

	$j("#info5").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info5"), 1);
		that.cargarDatos(4);
		e.stopPropagation();
	});
	
	$j("#info6").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info6"), 1);
		that.cargarDatos(5);
		e.stopPropagation();
	});
	
	$j("#info7").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info7"), 1);
		that.cargarDatos(6);
		e.stopPropagation();
	});
	
	$j("#info8").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info8"), 1);
		that.cargarDatos(7);
		e.stopPropagation();
	});
	
	$j("#info9").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info9"), 1);
		that.cargarDatos(8);
		e.stopPropagation();
	});

	$j("#info10").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#info10"), 1);
		that.cargarDatos(9);
		e.stopPropagation();
	});

	$j("#info11").click(function(e){
		$j('#content').empty();
		that.seleccionar($j("#contact"), 0);
		that.contactar();
		e.stopPropagation();
	});
	
}

GEO.geo.lanzar = function(menu, valor)
{
	$j('#content').empty();
	valor--;
	this.seleccionar($j(menu), 1);
	this.cargarDatos(valor);
}

GEO.geo.cambiarClase = function(clase)
{
	$j("#content").removeClass();
	$j("#content").addClass(clase);
}

GEO.geo.seleccionar = function(elem, val)
{
	if(this.selected != null)
		this.selected.removeClass();
	this.selected = elem;

	if (val == 0) {//cabecera
		elem.addClass("selectedBlue");
		//Cambiamos el tamaño de la capa de contenido
		this.cambiarClase("contenido");
	}
	else {
		elem.addClass("selectedNar");
		//Cambiamos el tamaño de la capa de contenido
		this.cambiarClase("proyectos");
	}
}

GEO.geo.encontrar = function()
{
	var div = $j(this._createElement('div', 'encontrar', null));
	var somos = this.getInfo(this.xmlGenLen).find('somos');
	
	//Foto del equipo
	var div2 = $j(this._createElement('div', 'mapa', null));
	var img = $j(this._createElement('img', null, null,{src:somos.find('imagen').attr('url'),alt:somos.find('imagen').attr('comentario')}));
	div2.append(img);
	div.append(div2);

	//Personas
	var div4 = $j(this._createElement('div', 'personas', null));
	var span = $j(this._createElement('span', null, null)); 
	span.append("<A HREF='mailto:geomedi@geomedi.net'><b>Geomedi - Estudi Digital Topogràfic</b></A>");
	div4.append(span);
	div4.append("<br/><br/>");
	span = $j(this._createElement('span', null, null));
	span.append("<A HREF='mailto:rrivero@geomedi.net'><b><i>Raquel Rivero Fernández</b></i><br/>Enginyer Tècnic en Topografia</A>");
	div4.append(span);
	div4.append("<br/><br/>");
	span = $j(this._createElement('span', null, null));
	span.append("<A HREF='mailto:jtarrega@geomedi.net'><b><i>Jordi Tàrrega Torrent</b></i><br/>Eng. Tèc. en Topografia i Màster en GIS</A>");
	div4.append(span);
	div4.append("<br/><br/>");
	span = $j(this._createElement('span', null, null));
	span.append("<A HREF='mailto:fparron@geomedi.net'><b><i>Frank Parrón Lagunas</b></i><br/>Tècnic en Topografia</A>");
	div4.append(span);
	div.append(div4);
	
	//Texto
	var div4 = $j(this._createElement('div', 'explica', null));
	var span = $j(this._createElement('span', null, null)); 
	span.append(somos.text());
	div4.append(span);
	div.append(div4);

	$j('#content').append(div);
}

GEO.geo.ubicar = function(){
	var div = $j(this._createElement('div', 'encontrar', null));
	
	//mapa
	var div1 = $j(this._createElement('div', 'gmap', null));
	div1.append("<iframe width='655' height='560' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' src='http://maps.google.es/maps?f=q&amp;source=s_q&amp;hl=es&amp;geocode=&amp;q=geomedi&amp;sll=40.396764,-3.713379&amp;sspn=8.213335,19.753418&amp;ie=UTF8&amp;cid=4141229401177586828&amp;hq=geomedi&amp;hnear=&amp;ll=41.40527,2.193661&amp;spn=0.016094,0.050211&amp;z=14&amp;iwloc=A&amp;output=embed'></iframe><br/>");
	div.append(div1);
		
	$j('#content').append(div);
}

GEO.geo.contactar = function()
{
	var that = this;

	var div = $j(this._createElement('div', 'contactar', null));
	var span = $j(this._createElement('span', null, null)); 
	var contact = this.getInfo(this.xmlGenLen).find('contact');
	var frases = contact.find('info').text().split('.');
	var campos = contact.find('campos').text().split(',');
	
	span.append(frases[0]+".");
	//div.append(span);
	span = $j(this._createElement('span', null, null));
	span.append(frases[1]+".");
	//div.append("<br/><br/>");
	//div.append(span);
	
	var response = $j(this._createElement('div', 'response', null));
	$j("#content").append(response);
	
	var form = $j(this._createElement('form', 'customForm', null, {method:'POST', action:''}));
	form.submit(function(){
		//comprobación en el servidor y envio
		var sendersNom = $j("#nom").val();
		var sendersTelf = $j("#telf").val();
		var sendersDire = $j("#direccion").val();
		var sendersEmail = $j("#mail").val();
		var sendersMot = $j("select").find(':selected').text();
		var sendersMessage = $j("#consulta").val();
		$j("#response").load("sendmail.php",{nom: sendersNom, email : sendersEmail , message : sendersMessage, telf : sendersTelf, mot : sendersMot, dire : sendersDire}, function(){
			$j("#error").toggle();
		});
		return false;
	});

	//Nombre
	var nombre = $j(this._createElement('DIV', null, null));
	var label = $j(this._createElement('label', null, null));
	label.append(campos[0]);
	nombre.append(label);

	var input = $j(this._createElement('input', 'nom', 'inputData', {type:'text', name:'nom'}));
	input.keypress(function(e){
		if(e.which == 13)
			return false;
	});

	nombre.append(input);
	form.append(nombre);
	
	//Telf
	var telf = $j(this._createElement('DIV', null, null));
	label = $j(this._createElement('label', null, null));
	label.append(campos[1]);
	telf.append(label);

	var input = $j(this._createElement('input', 'telf', 'inputData', {type:'text', name:'telefono'}));
	input.keypress(function(e){
		if(e.which == 13)
			return false;
	});

	telf.append(input);
	form.append(telf);

	//dire
	var dire = $j(this._createElement('DIV', null, null));
	label = $j(this._createElement('label', null, null));
	label.append(campos[2]);
	dire.append(label);

	var input = $j(this._createElement('input', 'direccion', 'inputData', {type:'text', name:'direccion'}));
	input.keypress(function(e){
		if(e.which == 13)
			return false;
	});

	dire.append(input);
	form.append(dire);

	//e-mail
	var mail = $j(this._createElement('DIV', null, null));	
	label = $j(this._createElement('label', null, null));
	label.append(campos[3]);
	mail.append(label);

	var input = $j(this._createElement('input', 'mail', 'inputData', {type:'text', name:'mail'}));
	input.keypress(function(e){
		if(e.which == 13)
			return false;
	});

	mail.append(input);
	form.append(mail);
	
	//Opciones
	var opcion = $j(this._createElement('DIV', null, null));	
	label = $j(this._createElement('label', null, null));
	label.append(campos[4]);
	opcion.append(label);

	var cat = $j(this._createElement('select', null, 'inputData', {name:'motivo'}));
	cat.change(function() {
		//alert($j(this).find(':selected').text());
		return false;
	});
	
	op = $j(this._createElement('option', null, null));
	op.append(campos[5]);
	cat.append(op);
	
	op = $j(this._createElement('option', null, null));
	op.append(campos[6]);
	cat.append(op);
	
	op = $j(this._createElement('option', null, null));
	op.append(campos[7]);
	cat.append(op);

	opcion.append(cat);
	form.append(opcion);

	//Datos
	var datos = $j(this._createElement('DIV', null, null));	
	label = $j(this._createElement('label', null, null));
	label.append(campos[8]);
	datos.append(label);
	var d = $j(this._createElement('textarea', 'consulta', null, {cols:'73', rows:'10'}));
	datos.append(d);
	form.append(datos);
	
	//Botones
	datos = $j(this._createElement('DIV', null, 'button_div'));
	var bot = $j(this._createElement('input', 'send', null, {type:'submit', value:campos[9]}));
	datos.append(bot);
	var bot2 = $j(this._createElement('input', 'refresh', null, {type:'reset', value:campos[10]}));
	datos.append(bot2);
	form.append(datos);

	div.append(form);

	/*span = $j(this._createElement('span', null, null));
	span.append(frases[2] +	"<A HREF='mailto:geomedi@geomedi.net'>geomedi@geomedi.net</A>");
	div.append(span);*/
	
	$j('#content').append(div);
}


/*
Clientela
*/
GEO.geo.clientes = function()
{
	var div = $j(this._createElement('div', 'clientes', null));
	var logos = this.getInfo(this.xmlGenLen).find('logos');
	
	//Foto del equipo
	var div1 = $j(this._createElement('div', 'mapa', null));
	var img = $j(this._createElement('img', null, null,{src:logos.find('imagen').attr('url'),alt:logos.find('imagen').attr('comentario')}));
	div1.append(img);
	div.append(div1);

	$j('#content').append(div);
}



GEO.geo.acceder = function()
{
	var that = this;
	var div = $j(this._createElement('div', 'acceder', null));
	var accesos = this.getInfo(this.xmlGenLen).find('acces').text().split(',');
	
	var response = $j(this._createElement('div', 'connectionError', null));
	$j("#content").append(response);
	
	var form = $j(this._createElement('form', 'customForm', null, {method:'POST', action:''}));
	form.submit(function(){
		//comprobación en el servidor y acceso 
		var sendersUser = $j("#user").val();
		var sendersPass = $j("#pass").val();
		$j.ajax({
			type: "POST",
			url: "acceder.php",
			data: ({user: $j("#user").val(), pass : $j("#pass").val()}),
			dataType : "text",
			success: function(data){
						var array = data.split(',')
						if(array[0] == 'ok'){
							//alert("ftp://"+sendersUser+":"+sendersPass+"@"+array[1]);
							window.location.replace("ftp://"+sendersUser+":"+sendersPass+"@"+array[1]);
						}
						else{
							var error = $j(that._createElement('DIV', 'errorC', null));
							var ul = $j(that._createElement('ul', null, null));
							var li = $j(that._createElement('li', null, null));
							li.append("<strong>"+data+"</strong>");
							ul.append(li);
							error.append(ul);

							$j("#content").empty();

							var response = $j(that._createElement('div', 'connectionError', null));
							$j("#content").append(response);
							
							$j("#connectionError").append(error);
							$j("#connectionError").toggle();
							$j("#error").toggle();
							that.acceder();
						}
					}
		});
		return false;
	});
	
	//User
	var user = $j(this._createElement('DIV', null, null));
	var label = $j(this._createElement('label', null, null));
	label.append(accesos[0]);
	user.append(label);

	var input = $j(this._createElement('input', 'user', 'inputData', {type:'text', name:'user'}));
	input.keypress(function(e){
		if(e.which == 13)
			return false;
	});

	user.append(input);
	form.append(user);

	//Pass
	var pass = $j(this._createElement('DIV', null, null));
	var label = $j(this._createElement('label', null, null));
	label.append(accesos[1]);
	pass.append(label);

	var input = $j(this._createElement('input', 'pass', 'inputData', {type:'password', name:'pass'}));
	input.keypress(function(e){
		if(e.which == 13)
			return false;
	});

	pass.append(input);
	form.append(pass);

	//Boton
	datos = $j(this._createElement('DIV', null, 'button_div'));
	var bot = $j(this._createElement('input', 'send', null, {type:'submit', value:accesos[2]}));
	datos.append(bot);
	form.append(datos);
	  
	div.append(form);
	$j('#content').append(div);
}

GEO.geo.cargarDatos = function(val)
{
	var that = this;

	if(this.xml == null){
		$j.ajax({
			type: 'GET',
			url: $j('#xmlInfo').val(),
			cache: false,
			dataType: ($j.browser.msie) ? 'text' : 'xml', //Reconocemos el browser.
			success: function(data){
				var xml;
				if(typeof data == 'string'){
					xml = new ActiveXObject('Microsoft.XMLDOM');
					xml.async = false;
					xml.loadXML(data);
				} else {
					xml = data;
				}
				that.setXml(xml);
				that.pintar(val);
			}
		});	
	}
	else
		this.pintar(val);
}	

GEO.geo.pintar = function(val)
{
	var that = this; 
	if(this.xml != null)
	{
		var trat = $j(this.xml).find("tratamiento[ num = '" + val + "' ]"); 
		trat.each( function(){
			var div = $j(that._createElement('div', 'datos', null));
			
			var niveles = $j(this).find('niveles').text(); 
//			if( niveles != 0 )
//			{
				for(var i=1; i<=niveles; i++)
				{
					var dupla = $j(that._createElement('div', 'dupla', null));
					var nivel = $j(this).find("nivel[id = '" + i + "' ]");
					var div2 = $j(that._createElement('div', 'imagen', 'masinfo'));
					var a = $j(that._createElement('a', null, null, {href:nivel.find('imagen').attr('urlNormal'), rel:"lightbox",title:nivel.find('imagen').attr('comentario')}));
					var img = $j(that._createElement('img', null, 'imgMenu',{src:nivel.find('imagen').attr('urlThumb'),alt:nivel.attr('nom')}));
					a.append(img);
					div2.append(a);
//					div2.click(function(e){
//						$j('#content').empty();
//						that.secondLevel(trat);
//						e.stopPropagation();
//					});
					dupla.append(div2);

					div2 = $j(that._createElement('div', nivel.attr('nom'), 'textMenu'));
					var span = $j(that._createElement('span', null, null));
					var texto = nivel.find('info').text();
					if(texto.length > 250)
						texto = texto.substr(0, 248)+"...";
					span.append(texto);
					div2.append(span);
					dupla.append(div2);

					dupla.css({'float':'left'});
					div.append(dupla);
				}
				$j("#content").append(div);
//			}
//			else{
//				that.secondLevel(trat);
//			}
		});
	}
}

GEO.geo.secondLevel = function(n)
{
	var imagen = n.find("imagen[ id = 'general' ]");
	var texto = n.find("info[ id = 'general' ]");
	
	var div = $j(this._createElement('div', null, 'datos'));
	var div2 = $j(this._createElement('div', 'imagen', null));
	var img = $j(this._createElement('img', null, null,{src:imagen.attr('url'),alt:imagen.attr('comentario')}));
	div2.append(img);
	div2.css({'float':'left'});
	div.append(div2);

	div2 = $j(this._createElement('div', 'texto', null));
	var span = $j(this._createElement('span', null, null));
	span.append(texto.text()+'<br/>')
	div2.append(span);
	div.append(div2);
	
	$j("#content").append(div);
}


GEO.geo._createElement = function(elemType, id, class_name, options){
	var elem = document.createElement(elemType);

	if (id) elem.id = id;
	if (class_name) elem.className = class_name;
	options = options || {};
	for(i in options)
	{
		if(options.hasOwnProperty(i)){
			elem.setAttribute(i,options[i]);    
		}
	}
	return elem;
};

GEO.geo.setXml = function(xml)
{
	this.xml = xml; 
};

GEO.geo.setXmlGen = function(xml, lenguaje)
{
	this.xmlGen = xml;
	this.xmlGenLen = lenguaje;
};

GEO.geo.getInfo = function(len)
{
	switch(len){
	case 0:
		return $j(this.xmlGen).find("general[idioma='Cat']");
	case 1:
		return $j(this.xmlGen).find("general[idioma='Esp']");
	case 2:
		return $j(this.xmlGen).find("general[idioma='Eng']");
	}
}

