var contexto;
var finalizado;

var ua=navigator.userAgent || "";
var ie = (document.recalc)?true:false;
var ie8 = false;
var ie7 = false;
var ie6 = false;
var ie5 = false;

if(ie){var s=document.documentElement.currentStyle;if(s.outlineStyle){ie8=true;}else if(s.maxWidth){ie7=true;}else if(s.textOverflow){ie6=true;}else if(s.writingMode){ie5=true;}}
var firefox = (ua.match("Firefox"))?true:false;
var chrome = (ua.match("Chrome"))?true:false;
var safari = (ua.match("Safari"))?true:false;

function jsp_esVentanaModal(){
  return (window.parent.dialogArguments!=undefined);
}

function jsp_showModalDialog(url,arg,params){
  var ret = window.showModalDialog(url,arg,params.toLowerCase()+";center:yes");
  return ret;
}

function jsp_resizeModal(ancho,alto){
  if(alto>screen.availHeight){
    alto = screen.availHeight-95;
  }
  if(window.parent.dialogWidth){
    window.dialogWidth=ancho+"px";
    window.dialogHeight=alto+"px";
  }else if(chrome||safari){
    window.parent.resizeTo(ancho+15,alto+50);
  }else{
    window.parent.innerWidth=ancho;
    window.parent.innerHeight=alto;
  }
  try{
    document.getElementById("contenido").style.height = alto;
  }catch(error){}
  window.parent.moveTo((screen.availWidth/2)-(ancho/2),(screen.availHeight/2)-(alto/2));
}

function jsp_dialogWidth(){
  if(window.parent.dialogWidth){
    return window.parent.dialogWidth;
  }else{
    return window.parent.innerWidth;
  }
}

function jsp_dialogHeight(){
  if(window.parent.dialogHeight){
    return window.parent.dialogHeight;
  }else{
    return window.parent.innerHeight;
  }
}

function jsp_dialogArguments(){
  return window.parent.dialogArguments;
}

function devolverModal(retorno){
  window.parent.returnValue = retorno;
}

function cerrarModal(retorno){
  if(retorno!=undefined){
    window.parent.returnValue = retorno;
  }
  window.parent.close();
}
try{
  if(jsp_esVentanaModal()){
    window.parent.moveTo((screen.availWidth/2)-(window.parent.innerWidth/2),(screen.availHeight/2)-(window.parent.innerHeight/2));
  }
}catch(error){}




function capturarMenu()
{
  jsp_alerta("A","Copyright SIAL ADMÓNDIGITAL S.L.L.","");
  return false;
}

function deshabilitarGeneral(campos,deshabilitar,auxiliar){
  var i = 0;
  for(i=0;i<campos.length;i++){
    deshabilitarCampo(deshabilitar,campos[i],auxiliar);
  }
}

function deshabilitarCampo(deshabilitar, campo, auxiliar, obligatorio)
{
  //alert('deshabilitar campo');
  var boton = false;
  if(auxiliar)
  {
    var tipoCampo = eval("document.forms[0]." + campo + ".type");
    if((tipoCampo == undefined) || tipoCampo == 'button')
    {
      boton = true;
    }
    //alert('disabled: ' + deshabilitar + ' : ' + campo);
    eval("document.forms[0]." + campo + ".disabled=" + deshabilitar);
  }
  else
  {
    //alert('readonly: ' + deshabilitar + ' : ' + campo);
    eval("document.forms[0]." + campo + ".readonly=" + deshabilitar);
  }
  var clase = eval("document.forms[0]." + campo + ".className");
  if(boton)
  {
    var habilitadoBoton = clase.lastIndexOf(" HabilitadoBoton");//si se habilito
    var deshabilitadoBoton = clase.lastIndexOf(" DeshabilitadoBoton");//si se deshabilito
    if(deshabilitar)
    {
      if(habilitadoBoton == -1)//no se habilito
      {
        if(deshabilitadoBoton == -1)//tampoco se deshabilito
        {
          eval("document.forms[0]." + campo + ".className+=' DeshabilitadoBoton'");
        }
      }
      else
      {
        clase = clase.substring(0,habilitadoBoton) + ' DeshabilitadoBoton';
        eval("document.forms[0]." + campo + ".className='" + clase + "'");
      }
    }
    else
    {
      if(deshabilitadoBoton == -1)
      {
        if(habilitadoBoton == -1)
        {
          eval("document.forms[0]." + campo + ".className+=' HabilitadoBoton'");
        }
      }
      else
      {
        clase =  clase.substring(0,deshabilitadoBoton) + ' HabilitadoBoton';
        eval("document.forms[0]." + campo + ".className='" + clase + "'");
      }
    }
  }
  else
  {
    var habilitadoCampo;
    var habilitadoClase;
    var deshabilitadoCampo = clase.lastIndexOf(" DeshabilitadoCampo");
    if(obligatorio)
    {
      habilitadoClase = ' HabilitadoCampoObligatorio';
      habilitadoCampo = clase.lastIndexOf(" HabilitadoCampoObligatorio");//si se habilito
    }
    else
    {
      habilitadoClase = ' HabilitadoCampo';
      habilitadoCampo = clase.lastIndexOf(" HabilitadoCampo");//si se habilito
    }
    if(deshabilitar)
    {
      if(habilitadoCampo == -1)//no se habilito
      {
        if(deshabilitadoCampo == -1)//tampoco se deshabilito
        {
          eval("document.forms[0]." + campo + ".className+=' DeshabilitadoCampo'");
        }
      }
      else
      {
        clase = clase.substring(0,habilitadoCampo) + ' DeshabilitadoCampo';
        eval("document.forms[0]." + campo + ".className='" + clase + "'");
      }
    }
    else
    {
      if(deshabilitadoCampo == -1)
      {
        if(habilitadoCampo == -1)
        {
          eval("document.forms[0]." + campo + ".className+='" + habilitadoClase + "'");
        }
      }
      else
      {
        clase =  clase.substring(0,deshabilitadoCampo) + habilitadoClase;
        eval("document.forms[0]." + campo + ".className='" + clase + "'");
      }
    }
  }
  //alert('salgo de deshabilitar campo');
}

function jsp_alerta(tipo,mensaje,titulo) 
{
	//Modificación Juan: Se ha modificado para que funcione en varios navegadores
	var PantallaTop = (screen.height / 2)-65;
	var PantallaLeft = (screen.width / 2)-150;
	var respuesta;
	
	//if(document.all){			//Internet Explorer

		if(tipo=='VF'){
			respuesta = jsp_showModalDialog(contexto+'/jsp/alerta_gina.jsp?TipoMSG='+tipo+'&TituloMSG='+titulo+'&DescMSG='+mensaje,window,'center:yes;dialogHeight:160px;dialogwidth:400px;status:no;help:no;unadorned:yes;edge:raisen;scroll:no');	
		}
		else{
			respuesta = jsp_showModalDialog(contexto+'/jsp/alerta_gina.jsp?TipoMSG='+tipo+'&TituloMSG='+titulo+'&DescMSG='+mensaje,window,'center:yes;dialogHeight:160px;dialogwidth:400px;status:no;help:no;unadorned:yes;edge:raisen;scroll:no');
		}
		return respuesta;
			
	/*}else if(document.getElementById){ //Mozilla

		respuesta = window.open(contexto+"/jsp/alerta_gina.jsp?TipoMSG="+tipo+"&TituloMSG="+titulo+"&DescMSG="+mensaje,"","center=yes,height=130px,width=300px,status=no,help=no,unadorned=yes,alwaysRaised=yes,scrollbars=no,menubar=no,titlebar=no,toolbar=no,top="+PantallaTop + ",left="+PantallaLeft + ",modal=yes,dialog=yes");
		return respuesta;
	}*/
}


function pasaAMayusculas(ev)
{
	var node = null;
	if(ev)
	{
		node = ev.target;
		while(node.nodeType != node.ELEMENT_NODE)
		{
			node = node.parentNode;
		}
	}
	else
	{
		ev = window.event;
		node = ev.srcElement;
	}
	
	if(node.type != 'file')
	{
		ev.keyCode = String.fromCharCode(ev.keyCode).toUpperCase().charCodeAt(0);
	}
}

function soloDigitos(valor)
{
	var neg = valor.indexOf('-');
  if(neg==0)// es un numero negativo
  {
  	valor = valor.substring(1);
  }
  for(var i=0;i<valor.length;i++)
  {
    var caracter = valor.charAt(i);
    if(caracter < '0' || caracter > '9')//si no es numero
    {
      return 0;
    }
  }
  return 1;//es un numero
}

function titulo(e)
{
  e = (e==undefined)?window.event:e;
  var src = e.srcElement? e.srcElement : e.target;
  //alert(src);
  if(src!=null){
    var nombre = src.name;
    //alert(nombre);
    if(nombre != undefined && nombre != ''){
      var campo = eval('document.forms[0].' + nombre);
      //alert(campo.readonly);
      if(campo != undefined && !campo.disabled && campo.type != undefined &&
        campo.type.toLowerCase() == 'text'){
        campo.title = campo.value;
      }
    }
  }
}

function validarFecha(valor)
{
  var sDia;
  var sMes;
  var sAnno;
  var iIniMes;
  var iFinMes;
  var iIniAnio;
  var iFinAnio;
  var iPos;
  var iCar;

  // Inicializar variables
  iIniMes = 3;       // El mes comenzará en carácter 3
  iFinMes = 5;       // El mes finaliza antes del carácter 5

  // Comprobar que todos los caracteres sean numéricos o "/"
  for (iPos = 0; iPos <= valor.length-1; iPos++){
    iCar = valor.charAt(iPos);
    if ((iCar < "0" || iCar > "9") && (iCar !="/")){
      return 0;
    }
  }

  // Obtener el día
  sDia = valor.substring (0,2);
  if(soloDigitos(sDia) == 0 || (sDia < "01" || sDia > "31")){
    return 0;
  }

  // Inicializar las posiciones de inicio y fin del año
  iIniAnio = iIniMes + 3;
  iFinAnio = iFinMes + 5;

  // Obtener el mes
  sMes = valor.substring (iIniMes,iFinMes);
  if(soloDigitos(sMes) == 0 || (sMes < "01" || sMes > "12")){
    return 0;
  }

  // Obtener el año
  sAnno = valor.substring(iIniAnio,iFinAnio);
  if(soloDigitos(sAnno) == 0){
    return 0;
  }

  // Validar si es un mes de 30 días
  if (((sMes == "04") || (sMes == "06") || (sMes == "09") || (sMes == "11")) && (sDia > "30"))
  {
    return 0;
  }
  else
  {
    // Si es febrero
    if ((sMes == "02"))
    {
      // El día no puede ser mayor que 29
      if (sDia > "29")
      {
        return 0;
      }
      else
      {
        // Si el día es 29
        if (sDia == "29")
        {
          // Debe ser un año bisiesto
          // Son bisiestos los divibles entre 4 pero no entre 100, pero sí entre 400
          resto = sAnno % 4;
          if (resto != 0)
          {
            return 0;
          }
          else
          {
            resto = sAnno % 100;
            if (resto == 0)
            {
              resto = sAnno % 400;
              if (resto != 0)
              {
                return 0;
              }
            }
          }
        }
      }
    }
  }

  // La fecha es correcta
  return 1;
}

function validarHora(valor)
{
  var puntos = valor.indexOf(':');
  var hora = valor.substring(0,puntos);
  var minuto = valor.substring(puntos+1);
  if(hora.length != 2 || soloDigitos(hora) == 0 || hora < 0 || hora > 23
      || minuto.length != 2 || soloDigitos(minuto) == 0 || minuto < 0 || minuto > 59)
  {
    return 0;
  }
  return 1;
}

function barraProgreso(texto,boton)
{
finalizado = false;
setTimeout("lanzaProgreso('" + texto +"','"+boton+"')", 5000);
}

function lanzaProgreso(texto,boton)
{
	 if (finalizado == false)
	 {
	 progreso(texto,boton);
	 }
}

function progreso(texto,boton)
{
	var source = "/Progreso.do?opcion=0&noCache=" + Math.random();
		var datos = window.showModalDialog(contexto + "/jsp/comun/ventanaCmarcos.jsp?source="+source,boton,
			'dialogWidth:307px;dialogHeight:180px;status:no;help:no;unadorned:yes;edge:raisen;scroll:no');
	if (datos == undefined )	
	{
	  var cancel = jsp_alerta("P",texto,'');
		if(cancel == 1) //Se ha intentado cancelar el proceso (si no ha finalizado)
		{
			ocultaReloj();
			if(document.forms[0] && document.forms[0].ctl_frm)
			{
			      posicionarCursor(false,false);	
			}
//			pulsarTab();
		}
		else
		{
			if (finalizado != true)
			{
			  progreso(texto,boton);
			}	
		}
	}
}

function controlProgreso(maximo, completados)
{
finalizado = maximo == completados;
}
function redondear(numero, decimales)
{
	var resultado = 0;
	resultado = Math.round(numero * Math.pow(10, decimales))/Math.pow(10, decimales);
	return resultado;
}
function quitarFormato(valor)
{
	var resultado = valor.replace(/\./g,"");//quito los separadores de miles
	return resultado.replace(/,/g,".");
}

function ponerFormato(valor)
{
	var res = valor.replace(/\./g,",");
	return res;
}

function formatear(valor,decimales)
{
	var resultado = "";
	var absoluto = valor;
	var signo = "";
	if(valor.indexOf('-') == 0)
	{
		absoluto = valor.substring(1);//quito el signo
		signo = "-";
	}
	var aux = absoluto;//guardo el valor para procesarlo
	var coma = aux.indexOf('.');//calculo la posición decimal
	
	//primero proceso la parte entera
	if(coma > 0)//hay decimales
	{
		aux = aux.substring(0,coma);//me quedo con la parte en la que hay que poner los separadores de miles
	}
	if(coma==0)
	{
		aux='0';
	}
	while(aux != "")
	{
		if(aux.length > 3)
		{
			resultado = aux.substring(aux.length-3) + "." + resultado;//pongo los tres digitos q tocan
			aux = aux.substring(0,aux.length-3);//me quedo con los digitos por procesar
		}
		else
		{
			resultado = aux + "." +resultado;//pongo los digitos que quedan
			aux = "";//no queda nada q procesar
		}
	}
	if(resultado.length > 0)
	{
		resultado = resultado.substring(0,resultado.length-1);//quito el último .
	}
	
	//ahora proceso la parte decimal
	if(coma != -1)
	{	
		aux = absoluto.substring(coma+1);//cojo la parte decimal
	}
	if(valor != "")
	{
		while(decimales > aux.length)
		{
			aux += "0";//completo los 0 que hagan falta
		}
		if(aux.length > 0)
		{
			resultado += "," + aux;//si hay parte decimal al final la pongo
		}
	}
	
	return signo + resultado;
}

function getInternetExplorerVersion()
// Retorna la Version de Internet Explorer o a -1
{
  var rv = -1; // Retorna - 1 si no es Internet explorer
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

function ventanaModal(ancho,alto)
{
	var ventana = new Array();
	if(getInternetExplorerVersion() >= 7.0)
	{
		//ancho -= 5;
		alto  += 10;
		ventana[0] = ancho;
		ventana[1] = alto;
	} else {
		ventana[0] = ancho;
		ventana[1] = alto;	
	}
	return ventana;
}

function showModalWindow(ruta,ancho,alto)
{
	var PantallaTop = (screen.height / 2)-(alto/2);
	var PantallaLeft = (screen.width / 2)-(ancho/2);
	var respuesta;

	if(document.all){			//Internet Explorer
		if(getInternetExplorerVersion() >= 7.0)
		{
			ancho -= 5;
			alto  -= 30;
			respuesta = window.showModalDialog(ruta,window,'center:yes;dialogHeight:'+alto+'px;dialogwidth:'+ancho+'px;status:no;help:no;unadorned:yes;edge:raisen;scroll:no');
		} else {
			respuesta = window.showModalDialog(ruta,window,'center:yes;dialogHeight:'+alto+'px;dialogwidth:'+ancho+'px;status:no;help:no;unadorned:yes;edge:raisen;scroll:no');
		}
		return respuesta;
	}else if(document.getElementById){ //Mozilla
		respuesta = window.open(ruta,"","center=yes,height="+alto+"px,width="+ancho+"px,status=no,help=no,unadorned=yes,alwaysRaised=yes,scrollbars=no,menubar=no,titlebar=no,toolbar=no,top="+PantallaTop + ",left="+PantallaLeft + ",modal=yes,dialog=yes");
		return respuesta;
	}
}
function getUrlParam(cadena)       
{
	var aux = cadena.replace(/€/gi,'%80');
	return aux;
}

/*
 * Permite añadir una clase a un elemento HTML
 * 
 * @Param element: Cadena con el id del elemeto.
 * @Param newClass: Cadena con la clase que se va a añadir.
 */
function addClass(element, newClass) {
	var attrClass = document.getElementById(element).className;
	
	// Si la clase ya existe no se añade
	if(attrClass.indexOf(newClass) == -1) {
		document.getElementById(element).className = attrClass + ' ' + newClass;
	}
}

/*
 * Permite borrar una clase a un elemento HTML
 * 
 * @Param element: Cadena con el id del elemeto.
 * @Param nameClass: Cadena con el nombre la clase que se va a borrar.
 */
function removeClass(element, nameClass) {
	var attrClass = document.getElementById(element).className;
	var pos = attrClass.indexOf(nameClass);
	
	if(pos != -1) {
		attrClass = attrClass.substring(0, pos) + ' ' + attrClass.substring(pos+nameClass.length, attrClass.length);
		document.getElementById(element).className = attrClass;
	}	
}