// Ventanator
// Clase Javascript para crear alertas, popups, y cualquier otra cosa a abrir en una capa flotante

//Si no existe creamos un objeto al que le asignaremos el prototype con los m�todos
var MaxID='';
var zIndex = 1;

var con_actual1 = '';
var con_actual2 = '';



if (!app) 
{ 
	var app = new Object(); 
}

//Declaramos la clase ventanator

app.ventanator = function () {};
app.ventanator.prototype = 
{
	//Propiedades 
	
	title: 'Titulo',  			//T�tulo de la ventana
	msg: '<p>En el <span style="color: rgb(178, 0, 0);">Departamento de Dise�o</span> se llevar� a cabo el dise�o, c�lculo, medici�n, informaci�n urban�stica de todo lo relacionado con la promoci�n de suelo y edificaci�n residencial, comercial y de servicios.<br><br>Nuestros objetivos ser�n que usted disponga de toda la informaci�n necesaria para elegir la mejor ubicaci�n para su vivienda unifamiliar o local de negocio, desde la calificaci�n urban�stica del suelo hasta la distribuci�n de su vivienda, impuestos que ser�n de aplicaci�n seg�n el ayuntamiento elegido, y previsiones del desarrollo a medio plazo dependientes del entorno elegido.<br><br></p>', 			//Mensaje del contenido
	tipo: 'info',
	width: 500,
	height: 340,
	result: false,
	
	
	//Opciones de ventana
	
	// - Scroll de Texto
	// - Drag & Drop
	
	scroll: 'off',
	drag: 'on',
	
	//M�todos
	/*
		M�todo: getDrag
		�mbito: Privado
		Desc: Devuelve el html necesario para hacer drag
		
		Returns:
			- html
			
	*/
	
	getDrag: function()
	{
		var html = '';
		
		return html += 'onmousedown="clickCapa(event, this.parentNode)"   onmouseup="liberaCapa()"';
		
	},
	
	/*
		M�todo: getScroll
		�mbito: Privado
		Desc: Devuelve Las capas para hacer un scroll divididas en dos partes
		
		Params
			- posicion (open/close)
		Returns:
			- Int: Las capas para hacer un scroll divididas en dos partes
			
	*/
	
	getScroll: function(pos)
	{
		var html = '';
		
		if (pos == 'open')
		{
			html += '<div id="scroll" align="left">';
        	html += '<div id="scrollable" >';
        	html += '<div id="contents" style="margin-top:0px">';	
		}
		else
		{
			
			html += '</div></div>';
			html += '<div id="controles">';
			html += '<a href="javascript:void(0)" onMouseOver="sube()" onMouseOut="para()"><img src="img/16/farriba.jpg" width="8" height="8" border="0" /></a>';
			html += '<br /><br />';
			html += '<a href="javascript:void(0)" onMouseOver="baja()" onMouseOut="para()"><img src="img/16/fabajo.jpg" width="8" height="8" border="0" /></a>';
			html += '</div>';
		}
		return html;
	},
	
	/*
		M�todo: getImage
		�mbito: Privado
		Desc: Devuelve la imagen segun el tipo de ventana

		Returns:
			- Int: 		el titulo formateado
			
	*/	
	getImage: function()
	{
		switch (this.tipo)
		{
			case 'info':
			
			return 'img/32/info.png';
			break;
		}
	},
	/*
		M�todo: getTitle
		�mbito: Privado
		Desc: Devuelve el titulo formateado

		Returns:
			- Int: 		el titulo formateado
			
	*/
	
	getTitle: function()
	{
		var html = '';
		var drag = ''
		if (this.drag == 'on')
			drag = this.getDrag();
		html = '<h3 style="cursor:pointer;float:left" '+drag+'>'+this.title+'</h3>';
		return html;
	},
	
	/*
		M�todo: alto 
		�mbito: Privado
		Desc: Calcula el alto de la ventana seg�n la resolucion
				Luego lo utilizaremos para crear la capa contenedora
		Returns:
			- Int: 		La alto de la pantalla
			- False:	En caso de Error 
	*/	
	
	
	alto: function() 
	{
		if (window.scrollHeight) 
		{
			return window.scrollHeight;
		} 
		else if (document.documentElement && document.documentElement.scrollHeight != 0) 
		{
			return document.documentElement.scrollHeight;
		} 
		else if (document.body) 
		{
			return document.body.scrollHeight;	
		}
		
		return false;
	},
	
	/*
		M�todo: ancho 
		�mbito: Privado
		Desc: Calcula el alto de la ventana seg�n la resolucion
			  Luego lo utilizaremos para crear la capa contenedora
		Returns:
			- Int: 		La ancho de la pantalla
			- False:	En caso de Error 
	*/	
	
	
	ancho: function() 
	{
		if (window.scrollWidth) 
		{
			return window.scrollWidth;
		} 
		else if (document.documentElement && document.documentElement.scrollWidth != 0) 
		{
			return document.documentElement.scrollWidth;
		} 
		else if (document.body) 
		{
			return document.body.scrollWidth;	
		}
		return false;
	},
	
	/*
		M�todo: Contenedor
		�mbito: Privado
		Desc: Creamos la capa contenedora de 100% que deshabilitara el fondo
			  Sobre ella centraremos la ventana de alerta.
			  Si existe esta capa le asignamos un alto,un zindex y la devolvemos
			
		Returns:
			- Objeto: 	La capa contenedora de la ventana
			
	*/
	contenedor: function(id)
	{
		MaxID++;
		
		var body = document.getElementsByTagName("body")[0];

		//Creamos las dos capas contenedoras
		
		var contenedor = document.createElement("div");
		contenedor.id = "vn_contenedor"+MaxID;
		contenedor.onmouseup="liberaCapa()";
		
		var contenedor2 = document.createElement("div");
		contenedor2.id = "vn_carr"+MaxID;
		contenedor2.onmouseup="liberaCapa()";
		
		//Insertamos las capas
		
		body.appendChild(contenedor);
		body.appendChild(contenedor2);
		
		//Establecemos sus propiedades
		
		contenedor.style.display = "";
		contenedor.style.position = 'absolute';
		contenedor.style.top = '0';
		
		var h = 0;
		
		if (window.screen.height > 800)
		{
			h = document.getElementsByTagName("html")[0].scrollHeight;
		}
		else
		{
			h = document.getElementsByTagName("html")[0].scrollHeight;
		}
		
		contenedor.style.height =h+'px';
		contenedor.style.width  = '100%';
		contenedor.style.backgroundColor   = '#000';
		contenedor.style.zIndex = zIndex; zIndex++;
		contenedor.className = 'transparente';
		
		contenedor.style.opacity = 0.7;
		
		contenedor.style.filter = 'alpha(opacity=70)';
		contenedor2.style.position = 'absolute';
		contenedor2.style.top = '0';
		contenedor2.style.height =h+'px';
		contenedor2.style.width  = '100%';
		contenedor2.style.zIndex = zIndex;
		zIndex++;
		
		return contenedor2;
	},
	
	caja: function()
	{
		var h = document.getElementsByTagName("html")[0].clientHeight;
		// Definimos el ancho sw la caja
		
		var cajaWidth  = this.width;
		var cajaHeight  = this.height;
		
		//Posicionamos la ventana de alerta en el centro de la p�gina
		
		var top  = (h/2)-(cajaHeight/2)-100 + document.getElementsByTagName("html")[0].scrollTop;
		var left = (this.ancho()/2)- cajaWidth/2;
		
		//Definimos la ventana de alerta
		
		var html='';
				
		//Si el drag&Drop est� activados recibimos el javascript necesario
		
		var drag = ''
		if (this.drag == 'on')
			drag = 'onmouseup="liberaCapa();"';

		html += '<div '+drag+' class="box" id="box'+MaxID+'" style="width:600px;min-height:'+this.height+';min-width:'+this.width+';zindex:10;position:absolute;top:'+top+'px;left:'+left+'px;">';
		html +=  '<a class="close" href="#" onclick="app.ventanator.prototype.cerrar('+MaxID+')">X</a>';
		html += this.getTitle(); 		//Recojo Titulo
		html+= '<div class="panel" id="panel'+MaxID+'">';
		//Si esta ventana tiene scroll le a�ado las capas necesarias
		if (this.scroll == 'on')
		{
			this.msg = this.getScroll('open')+this.msg+ this.getScroll('close');
		}
		
		html += this.msg;				//Recojo contenido
		html += '</div>';
		
		//html += '<center style="clear:both;"><p><a href="" class="abutton"><img border="0" src="img/16/tick.png" alt="Aceptar" align="absmiddle" />&#160;Aceptar</a></p></center>';
		html += '</div>';
		return html;
	},
	
	removeElement: function(id)
	{
		var Node = document.getElementById(id);
		if (Node != null)
   			Node.parentNode.removeChild(Node);
	},
	
	cerrar: function(id)
	{
		this.removeElement('box'+MaxID);
		this.removeElement('vn_contenedor'+MaxID);
		this.removeElement('vn_carr'+MaxID);
		MaxID = MaxID-1;
		this.result = true;
		return this.result;
		
	},
	mostrar: function()
	{
		var contenedor = this.contenedor();
		contenedor.innerHTML += this.caja();
	}
}
