function isEmpty(s)
{
    return ((s == null) || (s.length == 0))
}
function isDigit (c)
{
    return ((c >= "0") && (c <= "9"))
}
function isNumber (s){
    var i;
    var dotAppeared;
    dotAppeared = false;
    if (isEmpty(s))
        if (isNumber.arguments.length == 1)
            return defaultEmptyOK;
        else
            return (isNumber.arguments[1] == true);
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if( i != 0 ){
            if ( c == "." ){
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            }else
            if (!isDigit(c)) return false;
        }else{
            if ( c == "." ){
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            }else
            if (!isDigit(c) && (c != "-") || (c == "+"))
                return false;
        }
    }
    return true;
}

function isRut(s)
{
    var suma=0;
    var mul=2;
    var i=0;
    if (isEmpty(s))
        if (isRut.arguments.length == 1) return false;
        else return (isRut.arguments[1] == true);
    rut = s.substring(0,s.length-1);
    dv = s.substring(s.length-1, s.length).toUpperCase();
    if (rut=="" || !isNumber(rut) || parseInt(rut,10)==0) return false;
    else
    if (!isNumber(dv) &&(dv.toUpperCase() != "K") || (dv == "")) return false;
    else{
        for (i=rut.length-1;i>=0;i--){
            suma = suma + rut.charAt(i) * mul;
            mul = mul==7 ? 2 : mul + 1;
        }
        var dvr = '' + (11 - suma % 11);
        if (dvr=='10') dvr = 'K';
        else if (dvr=='11') dvr = '0';
        if (dvr!=dv) return false;
        else return true;
    }
}
function valideRb(rb)
{
    var i;
    var res;
    res=-1;
    for(i=0;rb(i);i++)
    {
        rb(i).style.backgroundColor="";
    }
    for(i=0;rb(i);i++)
    {
        if (rb(i).checked)
            res=rb(i).value;
    }
    if (res==-1)
    {
        for(i=0;rb(i);i++)
        {
            rb(i).style.backgroundColor="yellow";
        }
    }
    return res==-1;
}
function isRutEx(strRutIn)
{
    var strRutOut="";
    var strRut= new String("");
    var i;  var charRut;
    strRut=strRutIn;
    for (i=0;i<strRut.length;i++){
        charRut=strRut.substr(i,1);
        if (charRut != "-" && charRut != "."){
            strRutOut=strRutOut + charRut;
        }
    }
    if (isRut(strRutOut)){
        return strRutOut;
    }
    else{
        return "";
    }
}
function getFechaHora(){
    var d = new Date();
    return formatDate(d,"yyyyMMdd hh:mm:ss")
}
function addZero(vNumber){ 
    return ((vNumber < 10) ? "0" : "") + vNumber
} 
function formatDate(vDate, vFormat){ 
    var vDay              = addZero(vDate.getDate());
    var vMonth            = addZero(vDate.getMonth()+1);
    var vYearLong         = addZero(vDate.getFullYear());
    var vYearShort        = addZero(vDate.getFullYear().toString().substring(3,4));
    var vYear             = (vFormat.indexOf("yyyy")>-1?vYearLong:vYearShort);
    var vHour             = addZero(vDate.getHours());
    var vMinute           = addZero(vDate.getMinutes());
    var vSecond           = addZero(vDate.getSeconds());
    var vDateStringx       = vFormat.replace(/dd/g, vDay).replace(/MM/g, vMonth).replace(/y{1,4}/g, vYear);
    var vDateString       = vDateString.replace(/hh/g, vHour).replace(/mm/g, vMinute).replace(/ss/g, vSecond);
    return vDateString;
}
function valideInput(frm_input)
{
	if (frm_input.value==""){
		frm_input.style.backgroundColor="yellow";
		estado=false;
    }else{
		frm_input.style.backgroundColor="white";
                estado=true;
	}
return estado;

}
function valideChk(chk, nmin, nmax)
{
    var i;
    var res;
    res=0;
	
    for(i=0;chk(i);i++){
        chk(i).style.backgroundColor="";
    }
	
    for(i=0;chk(i);i++){
        if (chk(i).checked)
            res=res+1;
    }
    if (res<nmin || res>nmax){
        for(i=0;chk(i);i++)
            chk(i).style.backgroundColor="yellow";
    }
    //alert ("Entre con nmin=" + nmin + " nmax=" + nmax + " cont�:" + res );
    return (res<nmin || res>nmax);
}

function enableChk(chk)
{
    var i;
    for(i=0;chk(i);i++){
        chk(i).disabled=false;
    }

    return true;
}

function enableRb(rb)
{
    var i;
    for(i=0;rb(i);i++){
        rb(i).disabled=false;
    }

    return true;
}

function hideAll(fieldset){
    document.getElementById('texto').style.display = 'none';
}


function sendAccion(frm,a){
    document.forms[frm].frm_accion.value=a;
    document.forms[frm].submit();
}

function JS_Botonera_Edicion(formulario,elemento,id,cmd){
    var chk;
    chk = document.getElementById(elemento+id);
    chk.checked=true;
    sendAccion(formulario,cmd);
}

function JS_Popup (pagina,titulo){
    window.open (pagina,titulo,"location=1,status=1,scrollbars=1,width=100,height=100");
}

function procesaGrilla(elEvento) {
    var evento = window.event || elEvento;
    if (evento.keyCode>40 || evento.keyCode <37 || !evento.ctrlKey) return;
    objeto_name=evento.target.id;
    var str=objeto_name.split("_");
    var f=+str[1];
    var c=+str[2];
    switch(evento.keyCode){
        case 37:c--;break;
        case 38:f--;break;
        case 39:c++;break;
        case 40:f++;break;
    }
    objeto = document.getElementById("celda_"+f+"_"+c);
    objeto.focus();
}

//
////setTimeout("Oscurecer()", 10)
//var seleccionados=0;
//for(var sel=0;sel<document.formulario.tipuser.length;sel++ )
//{
////alert(document.formulario.tipuser[sel].value);
//if(document.formulario.tipuser[sel].checked==true)
//{
//seleccionados=seleccionados+1;
//}
//}



function coockieWrite(llave,valor,segundos){
    var expires = "";
    if (typeof(segundos) != 'undefined') {
            var date = new Date();
            date.setTime(date.getTime() + (segundos*1000));
            var expires = "; expires=" + date.toGMTString();
    }
    document.cookie = llave+"="+valor+expires+"; path=/";

}

function coockieRead(llave){
    llave = llave + "=";
    var carray = document.cookie.split(';');

    for(var i=0;i < carray.length;i++) {
            var c = carray[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(llave) == 0) return c.substring(llave.length,c.length);
    }

    return null;
}

function coockieDelete(nombre){
    coockieWrite(nombre, "", 0);
}


function menuLateral_click(elEvento){
// Esconde los items de un menu hecho como div-ul-p-li ...li-/p /ul /div
// usando el atributo de estilo display
var evento = window.event || elEvento;
grupo=evento.target;
//alert("CLICK:"+grupo.parentNode.innerHTML);
var items=grupo.parentNode.getElementsByTagName("li");
var i;
for (i=0;i<items.length;i++){
    if (items[i].style.display == 'block')
            items[i].style.display = 'none';
    else
            items[i].style.display = 'block';
    }
menuLateral_Save();
}

function menuLateral_Save(){
// Esconde los items de un menu hecho como div-ul-p-li ...li-/p /ul /div
grupo=document.getElementById("MENU_LATERAL");
//alert("SAVE:"+grupo.innerHTML);var i;
//var m;
var str="";
var menu=grupo.getElementsByTagName("ul");
for (m=0;m<menu.length;m++){
    items=menu[m].getElementsByTagName("li");
    str=str+menu[m].id+"|"+items[items.length-1].style.display+"|";
}
coockieWrite("menuLateral",str);
}

function menuLateral_load(){
// Esconde los items de un menu hecho como div-ul-p-li ...li-/p /ul /div
var str=coockieRead("menuLateral");
if (str==null) return;
var idmenu=str.split("|");
var items;
var m;
var i=0;
grupo=document.getElementById("MENU_LATERAL");
//alert("LOAD:"+grupo.innerHTML);
var menu=grupo.getElementsByTagName("ul");
for (m=0;m<menu.length;m++){
    items=menu[m].getElementsByTagName("li");
    for (i=0;i<items.length;i++)
        items[i].style.display=idmenu[m*2+1];
    }
}

function menuLateral_reset(){
// Esconde los items de un menu hecho como div-ul-p-li ...li-/p /ul /div
grupo=document.getElementById("MENU_LATERAL");
var items=grupo.getElementsByTagName("li");
var i;
var str="";
for (i=0;i<items.length;i++){
    items[i].style.display='none';
}
coockieDelete("menuLateral");
}

//Para browsers que soportan DOM Storage
//sessionStorage.username = "Si veo esto funciona";
//alert(sessionStorage.username);
//grupo.innerHTML=sessionStorage.username;
//sessionStorage[ 'name' ] = "John";
//alert( sessionStorage[ 'name' ] );




//var items=grupo.parentNode.parentNode.getElementsByTagName("li");
//var i;
//for (i=0;i<items.length;i++){
//    if (items[i].style.display == 'block')
//            items[i].style.display = 'none';
//    else
//            items[i].style.display = 'none';
//    }




//function $(id){
//    document.getElementById(id);

