/********Rutinas generales para los casos Javascript***********/

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_openBrWindow(theURL,winName,features) { //v2.0
  ventana = window.open(theURL,winName,features);
  if (ventana.opener == null) ventana.opener = self;
	ventana.focus();
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { 
        obj=obj.style;v=(v=='show')?'visible':(v=='hide')?'hidden':v;
    }
    obj.visibility=v; 
  }
}

function expandir(id) {
	var obj = objHtml(id)
	
	for (I=2; I<=9 ; I++)
	{
		cerrar("capa_"+I);
	}

	cerrar("login");

	if (miNavegador.standard) {
		if (obj.style.display == "none")
		   obj.style.display = 'block'
		else
		   obj.style.display = 'none'
	}else{
		if (obj.display == "none")
		   obj.display = 'block'
		else
		   obj.display = 'none'
	} 
}

function expandir2(id) {
	var obj = objHtml(id)
	
	if (miNavegador.standard) {
		if (obj.style.display == "none")
		   obj.style.display = 'block'
		else
		   obj.style.display = 'none'
	}else{
		if (obj.display == "none")
		   obj.display = 'block'
		else
		   obj.display = 'none'
	} 
}

function cerrar(id) {
	var obj = objHtml(id)
	if (miNavegador.standard) {
		obj.style.display = 'none'
	}else{
		obj.display = 'none'
	}	  
}

/***Objetos globales definidos aquí**********/
function oNavegador(  ) {
	this.nombre = navigator.appName;
	this.iniciar = iniciar;
	this.IE = this.nombre.toUpperCase().indexOf('MICROSOFT') >=0;
	this.NS = this.nombre.toUpperCase().indexOf('NETSCAPE') >=0;
	this.OP = this.nombre.toUpperCase().indexOf('OPERA') >= 0;
	this.XX = !this.IE && !this.NS && !this.OP;
	this.version = this.iniciar();
	this.Verent = parseInt(this.version);
	this.standard = (this.IE && this.Verent >=5) || (this.NS && this.Verent >=6)

/* ======================================================================
	FUNCION:	iniciar( ), miembro de oNavegador
	ARGS: 		none.
	DEVUELVE:	nada
	DESCRIP:	Inicializa los valores del objeto
====================================================================== */
  function iniciar() {
  var ver = navigator.appVersion;
  if(ver+"" != "NaN")
	if (this.IE)
		{
		ver.match(/(MSIE)(\s*)([0-9].[0-9]+)/ig);
  		ver = RegExp.$3;
		}
  return ver;
  } //Termina la funcion iniciar el objeto
}

window.miNavegador = new oNavegador()
window.miNavegador.iniciar();
/*=========================================================================
FUNCION:	objHtml(n, d), 
ARGS:		n: un atributo ID del elemento que se desea encontrar
			d: documento en el que se busca
RETURN:		Referencia javascript al elemento HTML cuyo ID es el atributo n
DESCRIP:	Esta función busca un elemento HTML (un nodo) cuyo atributo ID sea igual al 
			que se pasa como primer argumento ( n ). La b´suqueda se realiza en el árbol
			que se le indique como segundo argumento, si éste no existe la busqueda se 
			realiza en document de la ventana actual. La función es recursiva.
================================================================================*/			
function objHtml(n, d) { 
  var p,i,x;  
  if(!d) d=document; 
  if (miNavegador.standard)
	  x = d.getElementById(n)	
  if(!(x=d[n]) && miNavegador.IE) 
      x=d.all[n]; 
  for (i=0; !x && i<d.forms.length; i++) 
      x=d.forms[i][n];
  for(i=0; !x && d.layers &&i< d.layers.length; i++) 
      x=objHtml(n,d.layers[i].document); 
  return x;
}

/*=========================================================================
FUNCION:	mostrarBlq(bl, sn), 
ARGS:		bl: un elemento HTML 
			sn: lógico, true para hacer visible, false ocultar. Si no existe sólo lee
			el estado actual
RETURN:		Estado actual de visibilidad
DESCRIP:	Si el segundo parámetro existe muestra u oculta un bloque DIV. Además 
			devuelve el	estado actual. Si el segundo parámetro no existe sólo devuelve
			el estado actual. Comprueba el explorador usado.
================================================================================*/

function mostrarBlq(obj, sino)
{
var estado;
if (arguments.length >1)
	{
	estado = sino?'visible':'hidden';
	if (miNavegador.standard)
		obj.style.visibility = estado;
	else 
		obj.visibility = estado;
	}		
else
	{
	if (miNavegador.standard)
		estado = obj.style.visibility;
	else 
		estado = obj.visibility;
	}	
return estado;		
}


/***********************************************
* Cool DHTML tooltip script II- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var offsetfromcursorX=12 //Customize x offset of tooltip
var offsetfromcursorY=10 //Customize y offset of tooltip

var offsetdivfrompointerX=10 //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY=14 //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

//document.write('<div id="dhtmltooltip"></div>') //write out tooltip DIV
//document.write('<img id="dhtmlpointer" src="images/arrow2.gif">') //write out pointer image

var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""

var pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : ""

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thewidth, thecolor){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}

function positiontip(e){
if (enabletip){
var nondefaultpos=false
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY

var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=curX-tipobj.offsetWidth+"px"
nondefaultpos=true
}
else if (curX<leftedge)
tipobj.style.left="5px"
else{
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
pointerobj.style.left=curX+offsetfromcursorX+"px"
}

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight){
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
nondefaultpos=true
}
else{
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
pointerobj.style.top=curY+offsetfromcursorY+"px"
}
tipobj.style.visibility="visible"
if (!nondefaultpos)
pointerobj.style.visibility="visible"
else
pointerobj.style.visibility="hidden"
}
}

function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
pointerobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}

//document.onmousemove=positiontip

function validar_todo(laforma,idioma){
	fallo = false;
	for(var i = 0; i < laforma.elements.length && !fallo; i++){
		if(laforma.elements[i].value == ""){
			fallo = true;
			if (idioma == "1") {
				alert("Ingrese todos los campos requeridos como obligatorios");
			}else{
				alert("Some errors have ocurred");
			}
			laforma.elements[i].focus();

		}
	}
	if(!fallo){
		return true;
	}else{
		return false;
	}
}

function validar_buscador_header(idioma){
	if (document.buscador.tipoPub.value == "") {
		if (idioma == "1") {
			alert ("Dede Seleccionar por lo menos un parámetro de búsqueda");
		}else{
			alert("Please, select a value");
		}
		document.buscador.tipoPub.focus();
		return false; 
	}else{
		return true;
	}
}

var empezar = true;
var anclas = new Array ("ancla1,ancla2,ancla3,ancla4,ancla5,ancla6,ancla7,")
var capas = new Array("indicador_1","indicador_2","indicador_3","indicador_4","indicador_5","indicador_6","indicador_7")
var retardo
var ocultar

function oculta_retarda(capa){
	if (empezar){
		ocultar =capa
		clearTimeout(retardo)
		retardo = setTimeout("oculta('" + ocultar + "')",100)
	}
}

function muestra_coloca(capa){
	if (empezar){
		for (i=0;i<capas.length;i++){
			if (capas[i] != capa) oculta(capas[i])
		}
		clearTimeout(retardo)
		muestra(capa)
	}
}

function muestra_retarda(ind){
	if (empezar){
		clearTimeout(retardo)
	}
}

function muestra(capa){
	menu = document.getElementById(capa);
	menu.style.visibility='visible';
	//xShow(capa);
}

function oculta(capa){
	menu = document.getElementById(capa);
	menu.style.visibility='hidden';
	//xHide(capa);
}

// Función para recolocar la capa
function recolocarCapa(campo1,campo2)
{
	// Capturamos el Objeto que es nuestra capa

	var laCapa = document.getElementById(campo1);
	var laCelda = document.getElementById(campo2);
	
	// Calculamos que proporciones tiene la ventana que tenemos abierta.
	var top = laCelda.offsetTop+18;
    var left = laCelda.offsetLeft-42;	
   // Posicionamos la capa
	// Las restas que se hacen, solo tienes que jugar con ellas hasta que inicialmente consigas posicionar la capa en el lugar adecuado. A partir de hay, lo tendrás para todo navegador y resolución

	// Asignamos a la capa las posiciones calculadas
	laCapa.style.left = left;
	laCapa.style.top = top;
}
