//********************************************************
//*           ddgeneral.JS: FUNCIONES JAVASCRIPT         *
//*           DESARROLLADAS POR Jesús Quílez Bielsa      *
//*           jquilez@roble.pntic.mec.es                 *
//*           Y EL GRUPO PALLADIUM                       *
//********************************************************

var nOk=1
var navegador=0

   _editor_url = "/htmlarea/";
   _editor_lang = "es";

    if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0;
    // Otros
    else navegador=1;

//Botones
function pasaboton(boton){
document.images["ima_"+boton].src="images/bt_"+boton+"1.gif"
}

function saleboton(boton){
document.images["ima_"+boton].src="images/bt_"+boton+"0.gif"
}

function busposy(id){
var npos=0
nscroll = document.body.scrollTop
objeto = document.getElementById(id)
opar = objeto.offsetParent
ctag = opar.tagName
while (ctag.toUpperCase() != "BODY") {
      npos = npos + opar.offsetTop
      opar = opar.offsetParent
      ctag = opar.tagName
}
return (npos)
}

function estaen(cad,ter) {
pos=cad.indexOf(ter)
return (pos);
}

function enVentana(loc,anc,lar) {
if (anc==0) {anc=750}
if (lar==0) {lar=500}
opc="scrollbars=yes,width="+anc+",height="+lar+",top=20,left=20"
nuevo=window.open(loc,'',opc)
}

function daPosX(element){
    var actNode = element;
    var nX   = 0;

    do {
        nX += actNode.offsetLeft;
        actNode = actNode.offsetParent;

    } while(actNode.tagName.toLowerCase() != 'body');
    return nX;
}

function daPosY(element){
    var actNode = element;
    var nY   = 0;

    do {
        nY += actNode.offsetTop;
        actNode = actNode.offsetParent;

    } while(actNode.tagName.toLowerCase() != 'body');

    return nY;
}

function recortaCadena(cadena,longitud){
  nPausa=-1
  cPausa=" ,;.:/)]"
  nLon=cadena.length
  nAct=longitud+1
  while (nPausa==-1 && nAct>0){
        nAct--
        cCaracter=cadena.substring(nAct,nAct+1)
        nPausa=cPausa.indexOf(cCaracter)
  }
  cNueva=cadena.substring(0,nAct)
  if (nAct<longitud){
     cNueva=cNueva+"..."
  }
  return cNueva
}

function trim(cadena){
    if (cadena){
	return rtrim(ltrim(cadena))
    }
    else{
    	return ""    
    }
	 
}

function ltrim (cadena){
	return cadena.replace( /^\s*/, "" );
}

function rtrim (cadena){
	return cadena.replace( /\s*$/, "" );
}

function pad(numero, longitud){
   var cadena = "" + numero
   while(cadena.length<longitud){
      cadena = "0"+cadena
   }
   return cadena
}

function rellena(longitud, caracter){
   var cadena = "" 
   for (nLon=0;nLon<longitud;nLon++){
       cadena += caracter
   }
   return cadena
}


function enviaAjax(url,valores,funcion){
  ajax=objetoAjax();  //uso del medotod POST
  ajax.open("POST", url, true);
  ajax.onreadystatechange = function(){
       if (ajax.readyState==1) {
          verMensaje("Grabando....",false,true,"Grabación de datos");
       }
       else if (ajax.readyState==4){
                 if(ajax.status==200){
                      verMensaje(ajax.responseText,false,true,"Datos grabados")
                      eval(funcion)
                 }
                 else if(ajax.status==404){
                      verMensaje("La direccion no existe",false,true,"Error")
                      }
                      else{
                           verMensaje("Error: "+ajax.status,false,true,"Error")
                      }
              }
      }
  ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  ajax.send(valores);
  return;
}

function enviaAjaxSpan(url,valores,funcion){
  ajax=objetoAjax();  //uso del medotod POST
  ajax.open("POST", url, true);
  ajax.onreadystatechange = function(){
       if (ajax.readyState==1) {
          document.getElementById("menSpan").innerHTML="Comprobando....";
       }
       else if (ajax.readyState==4){
                 if(ajax.status==200){
                      document.getElementById("menSpan").innerHTML=ajax.responseText
                      eval(funcion)
                 }
                 else if(ajax.status==404){
                      verMensaje("La direccion no existe",false,true,"Error")
                      }
                      else{
                           verMensaje("Error: "+ajax.status,false,true,"Error")
                      }
              }
      }
  ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  ajax.send(valores);
  return;
}


function leeAyuda(TOPICO,DESTINO){
	divResultado = document.getElementById(DESTINO);
        divResultado.innerHTML="<table width='100%' height='100%'><tr><td valign=middle><p align=center><IMG class=icoacc src='images/indicator_medium.gif'></p></td></tr></table>"
        datos="topico="+TOPICO
        ajax=objetoAjax();
	ajax.open("GET", "esddleay.php?topico="+TOPICO);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divResultado.innerHTML = ajax.responseText
		}
	}
	ajax.send(null)
}

function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function verAyuda(topico,ocultar,modal){
    if (topico=="progreso"){
      topico="<IMG class=icoacc src='images/indicator_medium.gif'>"
    }
    if (modal){
       cambiaMascara()
       document.getElementById("mascara").style.visibility="visible"
    }
    mensaje="<table width='400px' height='200px' border=1><tr><td width='100%' height='100%' valign=middle><p align=center>"+topico+"</p></td></tr></table>"
    mensaje="<A href='javascript:ocultaAyuda()'>"+mensaje+"</A>"
    document.getElementById("ayuda").innerHTML=mensaje
    document.getElementById("ayuda").style.visibility="visible"
    if (ocultar){
       setTimeout("ocultaAyuda()",12000)
    }
}

function ocultaAyuda(){
    document.getElementById("ayuda").style.visibility="hidden"
    document.getElementById("mascara").style.visibility="hidden"
}

function verMensaje(topico,ocultar,modal,encabezado){
    mesgbox=document.getElementById("mensadiv")
    if (topico=="progreso"){
      topico="<IMG class=icoacc src='images/indicator_medium.gif'>"
    }
    if (modal){
       cambiaMascara()
       document.getElementById("mascara").style.visibility="visible"
       mensaje="<p align=center><b>"+topico+"</b></p>"

    }
    else {
         mensaje="<p align=center><A href='javascript:ocultaMensaje()'>"+topico+"</A></p>"
    }
    mensaje="<p align=center><A href='javascript:ocultaMensaje()'>"+topico+"</A></p>"
    document.getElementById("mensatex").innerHTML=mensaje
    document.getElementById("mensaayuda").innerHTML=encabezado
    if (navegador==1){
      var x = (window.innerWidth / 2) - (mesgbox.offsetWidth / 2);
      var y = (window.offsetHeight / 2) - (mesgbox.offsetHeight / 2);
    }
    else{
      var x = 400 - (mesgbox.offsetWidth / 2);
      var y = 300 - (mesgbox.offsetHeight / 2);
    }
    mesgbox.style.top = y;
    mesgbox.style.left = x;
    mesgbox.style.visibility="visible"
    if (ocultar){
       setTimeout("ocultaMensaje()",12000)
    }
}

function verOpcion(cbotones,cfunciones,cmensaje){
    msgbox=document.getElementById("opciondiv")

    botones = cbotones.split("|")
    funciones = cfunciones.split("|")
    document.getElementById("mensaopcion").innerHTML=cmensaje

    for (n=0;n<3;n++){
        if (funciones[n]){
          funcionOpcion=document.getElementById("funOpc"+n)
          botonOpcion=document.getElementById("botOpc"+n)
          funcionOpcion.href="javascript:"+funciones[n]
          //funcionOpcion.onclick=funciones[n]
          funcionOpcion.onmouseover="javascript:pasaboton('"+botones[n]+"')"
          funcionOpcion.onmouseout="javascript:saleboton('"+botones[n]+"')"
          botonOpcion.name="ima_"+botones[n]
          botonOpcion.src="images/bt_"+botones[n]+"0.gif"
        }
    }

    if (window.innerWidth){
       var x = (window.innerWidth / 2) - (msgbox.offsetWidth / 2);
       var y = (window.offsetHeight / 2) - (msgbox.offsetHeight / 2);
    }
    else {
       var x = 400 - (msgbox.offsetWidth / 2);
       var y = 300 - (msgbox.offsetHeight / 2);
    }
    msgbox.style.top = y;
    msgbox.style.left = x;
    cambiaMascara()
    document.getElementById("mascara").style.visibility="visible"
    msgbox.style.visibility="visible"

}

function verInput(cbotones,cfunciones,cmensaje){
    msgbox=document.getElementById("inputdiv")

    botones = cbotones.split("|")
    funciones = cfunciones.split("|")
    document.getElementById("mensainput").innerHTML=cmensaje

    for (n=0;n<3;n++){
        if (funciones[n]){
          funcionOpcion=document.getElementById("funInp"+n)
          botonOpcion=document.getElementById("botInp"+n)
          funcionOpcion.href="javascript:"+funciones[n]
          //funcionOpcion.onclick=funciones[n]
          funcionOpcion.onmouseover="javascript:pasaboton('"+botones[n]+"')"
          funcionOpcion.onmouseout="javascript:saleboton('"+botones[n]+"')"
          botonOpcion.name="ima_"+botones[n]
          botonOpcion.src="images/bt_"+botones[n]+"0.gif"
        }
    }

    if (window.innerWidth){
       var x = (window.innerWidth / 2) - (msgbox.offsetWidth / 2);
       var y = (window.offsetHeight / 2) - (msgbox.offsetHeight / 2);
    }
    else {
       var x = 400 - (msgbox.offsetWidth / 2);
       var y = 300 - (msgbox.offsetHeight / 2);
    }
    msgbox.style.top = y;
    msgbox.style.left = x;
    cambiaMascara()
    document.getElementById("mascara").style.visibility="visible"
    msgbox.style.visibility="visible"

}                                            


function ocultaMensaje(){
    document.getElementById("mensadiv").style.visibility="hidden"
    document.getElementById("mascara").style.visibility="hidden"
}

function ocultaOpcion(){
    document.getElementById("opciondiv").style.visibility="hidden"
    document.getElementById("mascara").style.visibility="hidden"
}

function ocultaInput(){
    document.getElementById("inputdiv").style.visibility="hidden"
    document.getElementById("mascara").style.visibility="hidden"
}


function ordenAzar(){
    return (Math.round(Math.random())-0.5);
}

// Victor Hugo Saavedra
//function replaceAll( text, busca, reemplaza ){
//while (text.toString().indexOf(busca) != -1){
//      text = text.toString().replace(busca,reemplaza);
//}
//return text;
//}

function replaceAll( texto, busca, reemplaza ){
         return texto.split(busca).join(reemplaza)
}

//String.prototype.replaceAll=function(s1, s2) {return this.split(s1).join(s2)}

function getRangeObject(selectionObject) {
	if (selectionObject.getRangeAt)
		return selectionObject.getRangeAt(0);
	else { // Safari!
		var range = document.createRange();
		range.setStart(selectionObject.anchorNode,selectionObject.anchorOffset);
		range.setEnd(selectionObject.focusNode,selectionObject.focusOffset);
		return range;
	}
}

function quitaDiacriticos(cadena){
   var cDia="áéíóúïüàèìòùâêîôûÿ"
   var cNor="aeiouiuaeiouaeiouy"
   var nLon=cadena.length
   var cNva=""
   cDia=cDia+cDia.toUpperCase()
   cNor=cNor+cNor.toUpperCase()
   for (nD=0;nD<nLon;nD++){
       cCar=cadena.substring(nD,nD+1)
       nPos=cDia.indexOf(cCar)
       if (nPos>-1){
          cNva=cNva+cNor.substring(nPos,nPos+1)
       }
       else {
          cNva=cNva+cCar
       }
   }
   return (cNva)
}

function quitaPuntuacion(cadena){
   //var cPta=" .,;:¿?¡!-()/'=%$\ª&ordm;1234567890|@"+String.fromCharCode(34);
   var cPta=" .,;:¿?¡!-()/'=%\ª&ordm;1234567890@"
   var nLon=cadena.length
   var cNva=""
   for (nP=0;nP<nLon;nP++){
       cCar=cadena.substring(nP,nP+1)
       nPos=cPta.indexOf(cCar)
       if (nPos==-1){
          cNva=cNva+cCar
       }
   }
   return (cNva)
}

function quitaParse(cadena){
   var cPta="{$}"
   var nLon=cadena.length
   var cNva=""
   for (nP=0;nP<nLon;nP++){
       cCar=cadena.substring(nP,nP+1)
       nPos=cPta.indexOf(cCar)
       if (nPos==-1){
          cNva=cNva+cCar
       }
   }
   return (cNva)
}



function quitaPuntuacion2(cadena){
   //var cPta=" .,;:¿?¡!-()/'=%$\ª&ordm;1234567890|@"+String.fromCharCode(34);
   var cPta=" .,;:¿?¡!-()/'=%\ªº1234567890@"
   var nLon=cadena.length
   var cNva=""
   for (nP=0;nP<nLon;nP++){
       cCar=cadena.substring(nP,nP+1)
       nPos=cPta.indexOf(cCar)
       if (nPos==-1){
          cNva=cNva+cCar
       }
       else {
            if ((nP+1)<nLon){
               if (cadena.substring(nP+1,nP+2) != " "){
                  cNva=cNva+" "
               }
            }
       }
   }
   return (cNva)
}


function paraCrucigrama(cadena){
   var cNueva=cadena.toUpperCase()
   cNueva=quitaPuntuacion(quitaDiacriticos(cNueva))
   return (cNueva.toUpperCase())
}

function limpia_datos(){
         window.location.reload()
}

function redondear(cantidad, decimales) {
var cantidad = parseFloat(cantidad);
var decimales = parseFloat(decimales);
decimales = (!decimales ? 2 : decimales);
return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
} 

function buscaEnArray(array,cadena){
nPos=-1
nLon=array.length
for (nI=0;nI<nLon;nI++){
    if (array[nI]==cadena){
       nPos=nI
       break
    }
}
return (nPos)
}

function buscaEnArrayI(array,cadena){
nPos=-1
nLon=array.length
for (nI=0;nI<nLon;nI++){
    if (array[nI]){
        if (array[nI].toLowerCase()==cadena.toLowerCase()){
           nPos=nI
           break
        }
    }    
}
return (nPos)
}

function verLicencia(){
datos="<img style='border-width:0' src='images/dd_logo01.gif'><br>"
datos+="<span xmlns:dc='http://purl.org/dc/elements/1.1/' property='dc:title'>"
datos+="didacTerion</span> by <a xmlns:cc='http://creativecommons.org/ns#' href='http://www.didacterion.com' "
datos+="property='cc:attributionName' rel='cc:attributionURL'>http://www.didacterion.com</a> "
datos+="is licensed under a <a rel='license' href='http://creativecommons.org/licenses/by-nc-sa/3.0/es/'>"
datos+="Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 Espa&#241;a License "
datos+="</a>.<br />Based on a work at <a xmlns:dc='http://purl.org/dc/elements/1.1/' "
datos+="href='http://www.didacterion.com' rel='dc:source'>www.didacterion.com</a>."

verMensaje(datos,false,true,"Sobre el uso de los materiales")
}

function seleccionaTodo(elemento){
    elemento.focus();
    elemento.select();
}

function XenY(nX,nY){
    estaeny=false;
    nPst=1;
    nRst=nY;
    if (nY==0){estaeny = true}
    while (nRst > 0) {
        nMdl = nRst%2
        nRst = Math.floor(nRst / 2)
        if (nMdl > 0){
           if (nX == nPst) {
                estaeny = true;
           }
        }
        nPst = nPst * 2;
    }
    return estaeny;
}

function verUsuarios(){
         //enVentana('usuarios/usu_ges.php',750,200)
         enVentana('usu_gst.php',750,500)
}
function verSQL(){
         enVentana('esddsq.php',550,200)
}

function manSQL(){
         enVentana('esddmt.php',550,200)
}

function cambiaMascara(){
  var nAlto =  document.documentElement.scrollHeight
  var nAncho =  document.documentElement.scrollWidth
  document.getElementById("mascara0").style.height=nAlto + 'px';
  document.getElementById("mascara").style.height=nAlto + 'px';
  document.getElementById("mascara0").style.width=nAncho + 'px';
  document.getElementById("mascara").style.width=nAncho + 'px';
}


function detectaNavegador(){
var lNav=false
var cNvg="¿?"
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
 var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number
 if (ffversion>=3){lNav=true;cNvg="FF 3.x o superior"}
 else if (ffversion>=2){cNvg="";cNvg="FF 2.x"}
 else if (ffversion>=1){cNvg="";cNvg="FF 1.x"}
}
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
 var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
 if (ieversion>=8){lNav=true;cNvg="IE8"}
 else if (ieversion>=7){lNav=true;cNvg="IE7.x"}
 else if (ieversion>=6){cNvg="IE6.x"}
 else if (ieversion>=5){cNvg="IE5.x"}
}
if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Opera/x.x or Opera x.x (ignoring remaining decimal places);
 var oprversion=new Number(RegExp.$1) // capture x.x portion and store as a number
 if (oprversion>=10){lNav=true;cNvg="Opera 10.x"}
 else if (oprversion>=9){lNav=true;cNvg="Opera 9.x"}
 else if (oprversion>=8){cNvg="Opera 8.x"}
 else if (oprversion>=7){cNvg="Opera 7.x"}
}
if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Chrome/x.x 
 var cversion=new Number(RegExp.$1); // capture x.x portion and store as a number
 if (cversion>=3){lNav=true;cNvg="Chrome 3.x o superior"}
 else if (cversion>=2){lNav=true;cNvg="Chrome 2.x"}
 else if (cversion>=1){cNvg="Chrome 1.x"}
}
document.getElementById("nombreNavegador").innerHTML=cNvg
return (lNav)
}

function testNavegador(){
  if (!detectaNavegador()){
        verMensaje("El navegador no es compatible con esta web. Debe actualizarse a una versión más moderna.",false,true,"Navegador no compatible")
  }
}

function fechaDiaMesAno(string) {
var date = new Date()
mes = parseInt(string.substring(3, 5));
mes--
date.setMonth(mes); //en javascript los meses van de 0 a 11
date.setDate(string.substring(0, 2));
date.setYear(string.substring(6, 10));
return date;
}              

function fechaAnoMesDia(string) {
var date = new Date()
mes = parseInt(string.substring(5, 7));
mes--
date.setMonth(mes); //en javascript los meses van de 0 a 11
date.setDate(string.substring(8, 10));
date.setHours(string.substring(11, 13),string.substring(14, 16),string.substring(17, 19),0);
date.setYear(string.substring(0, 4));
return date;
}

function pad(number, length) {
   
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
   
    return str;

}

function cambiatabla(tabla){
  nAlto=tabla.scrollHeight
  //tabla.parentElement.parentElement.style.height=nAlto+"px"
  tabla.parentNode.parentNode.style.height=nAlto+"px"
}

function resizepregunta(nombre){
  tabla=document.getElementById(nombre)
  nAlto=tabla.scrollHeight
  tabla.parentNode.parentNode.style.height=nAlto+"px"
  cambiaMascara()
}

function daExtension(nombre){
  return (/[.]/.exec(nombre)) ? /[^.]+$/.exec(nombre) : undefined;
}

function esVideoCompatible(archivo){
  lCompatible=false
  cExtension=daExtension(archivo)
  cFormatos=";mpeg;mpg;flv;swf;"
  if (cFormatos.indexOf(cExtension[0])>0){lCompatible=true}
  return lCompatible 
}

function busposx(imagen){
var npos=0
nscroll = document.body.scrollLeft
opar = document.images[imagen].offsetParent
ctag = opar.tagName
while (ctag.toUpperCase() != "BODY") {
      npos = npos + opar.offsetLeft
      opar = opar.offsetParent
      ctag = opar.tagName
}
return (npos)
}

function busposy(imagen){
var npos=0
nscroll = document.body.scrollTop
opar = document.images[imagen].offsetParent
ctag = opar.tagName
while (ctag.toUpperCase() != "BODY") {
      npos = npos + opar.offsetTop
      opar = opar.offsetParent
      ctag = opar.tagName
}
return (npos)
}


