// JavaScript Document
control=0;
e=null;

function ajax(Dastos,intento)
{
	pagina_requerida =false;
	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.onerror=function()
	{
		mensajepopup("Error "+pagina_requerida.status +": "+pagina_requerida.statusText +".Pongase en contacto con el administrador. Gracias.");
	}
	if (Dastos.parametros!="")
	{
		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)
	}
	else
	{
		pagina_requerida.open('GET', 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,Objeto);
				
			}
			else
			{
				Objeto.funccorrecto(pagina_requerida.responseText,Objeto);
			}
			Objeto=null;
		}
	}
	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
			{
				mensajepopup("Error "+e.description +".Pongase en contacto con el administrador. Gracias.");
			}
	}

}
function mensajepopup(Datos) {
			abrirPopup();
			id_contenedorEditor=$("centro");
			if ($('titulobox')) $('titulobox').innerHTML="Mensaje";
			limpiarObj(id_contenedorEditor);
			id_contenedorEditor.appendChild(elemento('spam',Datos)); //Creamos el botón de editar
			element=(elemento('div','',{'id':'genericBtn'})); //Creamos el botón de aceptar
			element.appendChild(elemento('h1'));
			element.appendChild(elemento('a',dato,{'id':'Aceptar','class':'Aceptar','title':'Aceptar'},{'click':cerrarPopup}));
			element.appendChild(elemento('h2'));
			id_contenedorEditor.appendChild(element); 
}
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 && contenidos!="")
			{
					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;
	}
}
function cambiaridioma(Datos)
{
Datos=Datos.childNodes
for(var i=0; i<Datos.length; i++) {
	if (Datos[i].nodeName!="#text")
	{
		
		var contenido=document.getElementById(Datos[i].nodeName);
		if(Datos[i].text)
			contenido.innerHTML=Datos[i].text;
		else
			contenido.innerHTML=Datos[i].textContent;
	}
}
}
function cerrarPopup()
{
		$('popup').style.visibility='hidden';
		$('dark').style.visibility='hidden';
		if (typeof (admin) != "undefined") admin.cancelar();
}
function isPopup()
{
		return (!($('popup').style.visibility && $('popup').style.visibility=='hidden'));
}
function abrirPopup()
{
$('popup').removeAttribute('style');
$('dark').removeAttribute('style');
}
function desplegar(Pagina)
{
	if(objeto=$(Pagina))
	{
		objeto.className='activo';	
		if (objeto.parentNode.id=="menuEmerg")
		{
			objeto.parentNode.removeAttribute('style');
			if (menupadre=encontrarpadre(objeto))
				menupadre.className='activo';
			if (objeto.parentNode.previousSibling.previousSibling.id!="menu")
				objeto.parentNode.previousSibling.previousSibling.className='activo';
		}
		else
			if (menushijo=encontrardesplegarhijos(objeto))
			{
				menushijo.removeAttribute('style');
				if (menushijo.childNode)
				{
					menushijo.childNode.className='activo';
					menushijo.childNode.className='';
				}
			}
			
	}
}
function encontrarpadre(menu)
{
	for (i=0; i<menu.parentNode.childNodes.length; i++)
		{
			if ((menu.parentNode.childNodes[i]==menu))
			{
				if (menu.parentNode.childNodes[i-1].id=="menuEmerg") return menu.parentNode.childNodes[i-1];
				if (menu.parentNode.childNodes[i-2].id=="menuEmerg") return menu.parentNode.childNodes[i-2];
			}
		}
	return false;
}
function encontrardesplegarhijos(menu)
{
	for (i=0; i<menu.parentNode.childNodes.length; i++)
		{
			if ((menu.parentNode.childNodes[i]==menu))
			{
				if (menu.parentNode.childNodes[i+1].id=="menuEmerg") return menu.parentNode.childNodes[i+1];
				if (menu.parentNode.childNodes[i+2].id=="menuEmerg") return menu.parentNode.childNodes[i+2];
			}
		}
	return false;
}

function desactivarPopup()
{
	$('full_popupjs'+popupjs.Npopup).style.visibility='hidden';
}
function getdatosajax(Dato,Objeto)
{
	if (Objeto.objcontenedor)
		Objeto.objcontenedor.innerHTML=Dato;
	//desactivarcargando();
}

/*************************************************************************/

function incremento_vistafinal(Datos,Objeto)
{
	//Objeto.objcontenedor.innerHTML=Datos
}
function incremento_visitas(IDVideo)
{
	ajax({'url':'incremento_visitas.php', 'objcontenedor': $('incremento_visitas'), 'parametros':'visitas=false&IDVideo='+IDVideo,funccorrecto:incremento_vistafinal},0)
}

/*************************************************************************/

function inicio()
{
	/*Si el lenguaje es distinto al español cargamos los textos en el idioma elegido.
	if ((len) && (len!="es"))
	{
		pagina="/contrato/idioma/"+len+"/texto.xml";
		parametros="";
		ajax({'url':pagina, 'objcontenedor': document.body, 'parametros':parametros,funccorrecto:cambiaridioma},0)
	}*/
	if (typeof (admin) != "undefined")
		admin.inicio();
	/*if (pag!='') 
		desplegar(pag)*/
}
window.onload=inicio;