var contEstado=0;
var G_carNV=""; //la global que tiene el caracterer no válido
var G_mtxCarNV=new Array(); //2010 matriz con los caracteres no válidos encontrados

function enLinea() //establece la cookie con valores nuevos cada N segundos para validar que sigue abierto el sistema
{
    contEstado++;
    ponerCookie('estadoSys','est'+contEstado);
    window.setTimeout('enLinea()',1500);
    if (contEstado>60)
        contEstado=0;
}

function verifEstadoSys()
{
    var valor='';
    valor=obtValorCookie('estadoSys');
    if (ultEstadoSys=='')
    {
        ultEstadoSys=valor;
    }else{
        if (ultEstadoSys==valor)
        {
            try
            {
                window.close();
            }
            catch(anye)
            {
                //ok falló, pero que hago?
            }
        }else{
            ultEstadoSys=valor;
        }
    }
    window.setTimeout('verifEstadoSys()',2500);
}

//function writeSessionCookie (cookieName, cookieValue) {
var ultEstadoSys=''; //ultimo estado del sistema registrado por la ventana madre.

function ponerCookie (cookieName, cookieValue) {
  if (testSessionCookie()) {
    document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";
    return true;
  }
  else return false;
}

//function getCookieValue (cookieName) {
function obtValorCookie (cookieName) {
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return false;
}

function testSessionCookie ()
{
  document.cookie ="testSessionCookie=Enabled";
//  if (getCookieValue ("testSessionCookie")=="Enabled")
  if (obtValorCookie ("testSessionCookie")=="Enabled")
    return true
  else
    return false;
}

function verifEmail(email)
{
	var str = new String(email);
	var ok=true;

	if(str.indexOf("@")==-1)
	{
		ok=false;
	}

	if(str.lenght<=6)
	{
		ok=false;
	}

	if(str.indexOf(".")==-1)
	{
		ok=false;
	}

	if (!ok)
	{
		try
		{
			ponermsgT(5,'Su direcci&oacute;n de email no es v&aacute;lida !','mensaje','alert');
		}
		catch(anye)
		{
			window.alert("Su direccion de email no es valida !");
		}
	}

	return ok;
}

function idObjOrig(e)
{
    if (esIE())
    {
        return event.srcElement.id;
    }else{
        return e.currentTarget.id;
    }
}

function obtValDesdeE(e)
{ //obtiene el valor del objeto que origino el evento
   if (esIE())
    {
        return event.srcElement.value;
    }else{
        return e.currentTarget.value;
    }
}

function obtObjDesdeE(e)
{ //regresa una referencia al objeto que originó el evento
   if (esIE())
    {
        return event.srcElement;
    }else{
        return e.currentTarget;
    }
}

function queMesEs(num_mes)
{
    var mes='';
    var nm=0;
    nm=parseInt(num_mes);
	switch (nm)
    {
		case 1:
			mes='Enero';
			break;

		case 2:
			mes='Febrero';
			break;

		case 3:
			mes='Marzo';
			break;

		case 4:
			mes='Abril';
			break;

		case 5:
			mes='Mayo';
			break;

		case 6:
			mes='Junio';
			break;

		case 7:
			mes='Julio';
			break;

		case 8:
			mes='Agosto';
			break;

		case 9:
			mes='Septiembre';
			break;

		case 10:
			mes='Octubre';
			break;

		case 11:
			mes='Noviembre';
			break;

		case 12:
			mes='Diciembre';
			break;

		default:
        	mes='mesNN';
			break;
    }
	return mes;
}

function carNV(texto,excep)
{ //esta funcion verifica que el obj pasado no tenga un caracter no válido !
	if (excep == undefined || excep == null){
		excep="";
	}
	
	var texto = new String(texto);
	var cl=0;
	var mtxCarNVs = new Array("/","\\","|","[","]","{","}","=","(",")","-","+","*","'","\"",":","~","`","!","@","#","$","^","&",">","<");
	var resul = false;
	var carsExcep=new String(excep); //la variable con los caracteres exceptuados
	
	G_mtxCarNV = new Array(); //2010 matriz con los caracteres no válidos encontrados
	
	for (cl in mtxCarNVs){
		if (texto.indexOf(mtxCarNVs[cl])!=-1){
			if (carsExcep.indexOf(mtxCarNVs[cl])==-1){ //pregunto si el caracter no valido se encuentra dentro del grupo de los exceptuados
				G_mtxCarNV[G_mtxCarNV.length]=mtxCarNVs[cl];
				G_carNV=mtxCarNVs[cl];
				resul=true;
			}
		}
	}

    return resul;
}

function sacarComillas(texto)
{  //
	try {
		var str = new String(texto);
		while(str.indexOf("\"")!=-1){
			str = str.replace(/\"/,"`");
		}

		while(str.indexOf("'")!=-1){
			str = str.replace(/\'/,"`");
		}
		return str.valueOf();
	}catch(anye){
		alertError("Error retirando caracteres no válidos",anye);
		return texto;
	}
}

function completarCon(valor,largo,carComp,lado)
{ //padding, completa, rellenar
	try {
		var str = new String(valor);
		largo = largo - str.length;
		for (i=1;i<=largo;i++){
			if (lado == "I"){
				valor=carComp+valor;
			}else{
				valor=valor+carComp;
			}
		}		
		return valor;
	}catch(anye){
		alertError("Error completando",anye);
		return valorl
	}
}

function getTextDeSelOp(oSel,valorBuscar)
{ /*recibe un obj. "select" y recorre sus "options" 
	hasta que encuentra el que tiene el mismo "value" que "valorBuscar" */
	try {
/*		para que IE no le gusta que le ciclen los options con un for in
		var cl = 0;
		for (cl in oSel.options){*/
		var i=0;
		for (i=0;i<oSel.length;i++){
			if (oSel.options[i].value==valorBuscar){
				return oSel.options[i].text;
			}
		}
		return "";
	}catch(anye){
		alertError("Error buscando valor en los options",anye);
		return "";
	}
}

function objExiste(idObj)
{
	try {
		var o = document.getElementById(idObj);
		if (o == undefined || o == null){
			return false;
		}else{
			if (!o.id){
				return false;
			}else{
				return true;
			}
		}
	}catch(anye){
		alertError("",anye);
		return false;
	}
}

/* #################################
   ##	funciones en desuso       ##
   #################################  */
function limpiarHTML(id)
{ //quita todos los hijos de un obj determinado
	try {
		var o = document.getElementById(id);
		o.innerHTML='&nbsp;';

		return true;
	}catch(anye){
		alertError("Error limpiando HTML",anye);
		return false;
	}
}

/*function abmu_limpiarMtx() //limpia las matrices usadas para los usuarios
{
    mtxUsusNombres = new Array();
    mtxUsusIds = new Array();
}

function abmu_ponerEnMtx(nombre,id) //coloca los valores en las matrices de usuarios y sube el contador.
{
    mtxUsusNombres[totMtx]=nombre;
    mtxUsusIds[totMtx]=id;
    totMtx++;
}

function armaTabla(mtxIds,mtxDatos,funcs,funcsCl,titulo)
{
    try {
        if (titulo==undefined||titulo==""){
            titulo="Listado de usuarios";
        }
    }catch(anye){
        titulo="Listado de usuarios";
    }
    var txt='';
    for (cl in mtxIds)
    {
//        txt=txt+"<tr ><td "+funcs+" onclick='"+funcsCl+"("+mtxIds[cl]+")' height='20px'><li height='20px' "+funcs+" onclick='"+funcsCl+"("+mtxIds[cl]+")'  id='TR"+mtxIds[cl]+"'>"+mtxDatos[cl]+"</li></td></tr>";
        txt=txt+"<li height='20px' "+funcs+" onclick='"+funcsCl+"("+mtxIds[cl]+")'  id='TR"+mtxIds[cl]+"'>"+mtxDatos[cl]+"</li>";
    }
    txt="<tr><td><ul>"+txt+"</ul></td></tr>";
    var tb='';
    tb="<table width='400px' class='bordeBlanco' align='center'><tr><td align='center' class='titulo2'>"+titulo+"</td></tr>";
    tb=tb+"<tr><td>&nbsp;</td></tr>"+txt+"<tr><td>&nbsp;</td></tr></table>";
    
    return tb;
}*/

