// JavaScript Document
control=0;
e=null;



function ajax(Dastos,intento)
{
	pagina_requerida =false;
	if ($('cargando')) $('cargando').style.display="block";  
	if (window.XMLHttpRequest) {// Si es Mozilla Safari etc
		pagina_requerida = new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{ // pero si es IE
		try {
				pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
			} 
		catch (e){ // en caso que sea una version antigua
					try{
						pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
						}
					catch (e){}
				}
	}
	else return false
	pagina_requerida.onreadystatechange=function()
	{ // funcion de respuesta
		cargarpagina(pagina_requerida,Dastos,intento);
	}
	pagina_requerida.open('POST', Dastos.url, true) // asignamos los metodos open y send
	pagina_requerida.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	pagina_requerida.send(Dastos.parametros)
} // Fin llamarasincrono

// todo es correcto y ha llegado el momento de poner la informacion requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida,Objeto,intento){
	try{
		if ((pagina_requerida.readyState == 4) && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
		{
			if (pagina_requerida.responseXML && pagina_requerida.responseXML!=null && pagina_requerida.responseXML.documentElement)
			{
				Objeto.funccorrecto(pagina_requerida.responseXML.documentElement.childNodes,Objeto);
				
			}
			else
			{
				Objeto.funccorrecto(pagina_requerida.responseText,Objeto);
			}
			Objeto=null;
			if ($('cargando')) $('cargando').style.display="none";  
		}
	}
	catch (e)
	{
		//Porque hay veces que da errores y no es posible controlardo de esta manera si da error vuelve ha intentarlo.
			if (intento<3)
			{
				intento++;
				ajax(Objeto,intento);
				
			}
			else
			{
				//error final
				if ($('cargando')) $('cargando').style.display="none";  
			}
	}

}
function getdatosajax(Dato,Objeto)
{
	if (Objeto.objcontenedor)
		Objeto.objcontenedor.innerHTML=Dato;
	desactivarcargando();
}
function obtenerxml(Datos)
{
	var nodos= new Array;
	for(var i=0; i<Datos.length; i++) 
	{
		if ((Datos[i].childNodes.length>0) && (!(Datos[i].childNodes.length==1 && Datos[i].childNodes[0].nodeName=='#text')))
		{
			if (!nodos[Datos[i].nodeName]) nodos[Datos[i].nodeName]= new Array;
			nodos[Datos[i].nodeName].push(obtenerxml(Datos[i].childNodes));
		}
		else
		{
			if (Datos[i].nodeName!="#text")
			{
				if(Datos[i].text)
					nodos[Datos[i].nodeName]=Datos[i].text;
				else
					nodos[Datos[i].nodeName]=Datos[i].textContent;
			}
		}
	}
	return nodos;
}
	/*
	Nos da el objeto, por el id, evento o argumentos.
	Parametros que se pueden enviar
	El nombre del id del objeto-->devuelve el objeto,
	Los nombres separdos por , de los objetos-->devuelve un array con los objetos.
	El evento del objeto-->Devuelve el ojeto.
	*/
	function $(element) 
	{
	  if (arguments.length > 1) {
		for (var i = 0, elements = [], length = arguments.length; i < length; i++)
		  elements.push($(arguments[i]));
		return elements;
	  }
	  else
	  {
		  if (typeof element == 'string') //Si es el id del elemento.
			element = document.getElementById(element);
		  else  //Si es el idevento del elemento.
			element = (element.target) ? element.target : ((element.srcElement) ? element.srcElement : null);	
		  return element;
	  }
	}
	//limpia un objeto dejandolo vacio
	function limpiarObj(objeto) {
		while (objeto.hasChildNodes())
		objeto.removeChild(objeto.firstChild);
	}
	//Borra un objeto
	function borrarObj(objeto) {
		if (objeto.parentNode)
		objeto.parentNode.removeChild(objeto);
	}
	//Crea un elemento del tipo tab, con el contenido, el conjunto de propiedades y eventos.
	//function(tab,'texto o objeto que contenga,propiedades entre parentesis propiedad y valor{'class':'Nombreclass'},eventos que tendra entre corchetes evento y funcion {'click':funcion)
	function elemento(tab,contenidos,propiedades,eventos)
	{
		var nodo=document.createElement(tab);
		for (var property in propiedades)
		{
			nodo.setAttribute(property,propiedades[property]);
		}
		for (var property in eventos)
		{
			Event.observe(nodo, property, eventos[property], false);
		}
		//Insertamos si hay contenido, numerico o 
		if (typeof contenidos == 'object' && contenidos.id==null)
		{
			for (var contenido in contenidos)
			{
				if (contenidos[contenido] && contenidos[contenido]!=null && contenidos[contenido]!="")
					if (typeof contenidos[contenido] == 'string')
						nodo.appendChild(document.createTextNode(contenidos[contenido]));
					else
						nodo.appendChild(contenidos[contenido]);
			}
		}
		else
		{
			if (contenidos && contenidos!=null)
			{
					if (typeof contenidos == 'string')
						nodo.appendChild(document.createTextNode(contenidos));
					else
						nodo.appendChild(contenidos);
			}
		}
		return nodo;
	}
	//Funcion que nos pone a un obejto  un  evento.
	/*	event - sera el evento que queramos esperar para dicho elemento.
		elem - Es el elemento al que se le asignara el evento.
		func - Es la funcion que queremos lanzar al recibir el evento en nuestro elemento. 
	*/
var Event={
	observe: function(elem, event, func) 
	{
	   if ((typeof elem == 'object') || (elem = $(elem)))
		{
			if (elem.addEventListener)  // W3C DOM
					elem.addEventListener(event,func, true);
			else if (elem.attachEvent) { // IE DOM
				if (event.indexOf('on')==0)				
				 	var r = elem.attachEvent(event, func);
				else
					var r = elem.attachEvent("on"+event, func);
			return r;
			}
			else throw 'No es posible insertar el evento';
		}
	},
	//Funcion que nos elimina de un obejto  un  evento.
		/*	event - sera el evento que queramos esperar para dicho elemento.
			elem - Es el elemento al que se le asignara el evento.
			func - Es la funcion que queremos quitar al recibir el evento en nuestro elemento. 
		*/
	stopObserving: function(elem, event, func) {
		 if (typeof elem == 'string') elem = $(elem);
		if (elem.removeEventListener)  // W3C DOM
			elem.removeEventListener(event,func,false);
		else if (elem.detachEvent) { // IE DOM
			 var r = elem.detachEvent("on"+event, func);
		return r;
		}
		else throw 'No es posible eliminar evento';
	},
	// Funcion que evita que se ejecuten eventos adicionales
	anularEventos: function(event)
	{
		if(window.event)
		{
			window.event.cancelBubble=true;
			window.event.returnValue=false;
		} else event.preventDefault();
	},
	objetoEvento: function(event)
	{
		var event = (event) ? event : window.event ;
		return (event.target) ? event.target : ((event.srcElement) ? event.srcElement: event);
	}
}
//Control de la ventana emergente
function activarPopup()
{
		if ($("full_popup"))
		{
		$('full_popup').removeAttribute('style');
		}
		else
		{
			
			
			element=elemento('div',{'h1':elemento('h1'),'div':elemento('div'),'h2':elemento('h2')},{'class':'sup'});
			element.appendChild(elemento('a','',{'class':'cerrar_btn'},{'click':desactivarPopup}));
			element.appendChild(elemento('span','Ficha',{'id':'titulobox','class':'title'}));
			element=elemento('div',element,{'id':'box','style':'margin-top:8%; width:800px'},{'click':desactivarPopup});
			element.appendChild(elemento('div','',{'id':'centro','class':'clearfix'}));
			element.appendChild(elemento('div',{'h1':elemento('h1'),'div':elemento('div'),'h2':elemento('h2')},{'class':'inf'}));
			element=elemento('div',element,{'id':'popup','class':'clearfix'});
			element=elemento('div',element,{'id':'full_popup'});
			element.appendChild(elemento('div','',{'id':'dark'}));
			document.body.appendChild(element);
		}
}
function isPopup()
{
		popup=$('full_popup');
		return (!(popup.style.visibility && popup.style.visibility=='hidden'));
}
function desactivarPopup()
{
	$('full_popupjs'+popupjs.Npopup).style.visibility='hidden';
}
//Control del icono de cargando.
function activarcargando()
{
	if ($('cargando'))
		$('cargando').removeAttribute('style');
	else
	{
		element=elemento('div',elemento('img','',{'src':'/images/admin/cargando.gif','alt':'Cargando','longdesc':'Cargando'}),{'id':'cargando','class':'cargando'});
		document.body.appendChild(element);
	}
}
function desactivarcargando()
{
	if ($('cargando'))
		$('cargando').setAttribute('style','display:none');
}
function iscargando()
{
	cargando=$('cargando');
		return (!(cargando.style.visibility && cargando.style.display=='none'));
}
function Mostrar(ID)
{	
		if(document.getElementById)
		{
			if (document.getElementById("submenu"+ID)) document.getElementById("submenu"+ID).style.display="block";
			//getElementById("submenu"+ID).style.left=vary =(lugar.offsetLeft-Descuento)+'px';
		}
		else if(document.all)
			if (document.all["submenu"+ID]) document.all["submenu"+ID].style.display="block";
		else if (document.layers)
			if (document.layers["submenu"+ID]) document.layers["submenu"+ID].display="block";
}
function DeMostrar(ID)
{
		if (document.getElementById)
			if (document.getElementById("submenu"+ID)) document.getElementById("submenu"+ID).style.display = 'none';
		else if (document.all)
			if (document.all["submenu"+ID]) document.all["submenu"+ID].style.display = 'none';
		else if (document.layers)
			if (document.layers["submenu"+ID]) document.layers["submenu"+ID].display = 'none';
}
function inicio()
{
	if (typeof (admin) != "undefined")
		admin.inicio();
	if (typeof (menu) != "undefined")
		menu.inicio();
}
window.onload=inicio;