
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 checkAll( n, fldName ) {
	if (!fldName) {
	 fldName = 'cb';
	}
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}


function checkItem( id, task ) {
    var f = document.adminForm;
    cb = eval( 'f.' + id );
    if (cb) {
        for (i = 0; true; i++) {
            cbx = eval('f.cb'+i);
            if (!cbx) break;
            cbx.checked = false;
        } // for
        cb.checked = true;
        f.boxchecked.value = 1;
        submitbutton(task);
    }
    return false;
}

function isChecked(isitchecked){
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}

function mostrarOcultarObjeto(objeto){
	if(objeto.style.display!='block'){
		objeto.style.display = 'block';
	}else{
		objeto.style.display = 'none';
	}	
	
}







//var valor="";                                    //los números que vayamos ingresando en la caja

/********
    MANEJADORES PARA EL CASO DE ERROR
********/

function mostrarError(errnum,str) {        //mostrar
    var cont;
    switch(errnum) {
        case 0: cont=str; break;
        case 1: cont="Caracter no permitido en esa posicion. Formato <b>HH:MM</b> 24h. Ejemplo: 16:48."; break;
        case 2: cont=laCaja.value+" no es una hora completa, termine de rellenarla por favor."; break;
        default: cont="Error de formato HH:MM"; break;
    }
    capaError.innerHTML=cont;
    capaError.style.visibility="visible";
    errorMostrandose=true;
    return false;
}
function ocultarError() {                //ocultar
    capaError.style.visibility="hidden";
    errorMostrandose=false;
    return true;
}




/********
    VALIDACIÓN DE LA HORA: Devuelve true en caso de que el caracter sea válido en la posición pos para el formato HH:MM 24h
********/
function esValidoHHMM(c,pos) {
//	alert("c:"+c+" pos:"+pos);
    if( pos==1 )                // primer caracter de las horas (entre 0 y 2)
        return /^[0-2]$/.test(c);
    else if( pos==2 )            // segundo caracter de las horas (depende del primero)
        return /^([0-1][0-9])|(2[0-3])$/.test(valor+c);
    else if( pos==3 || pos==4 )    // primer caracter de los minutos (entre 0 y 5)
        return /^[0-5]$/.test(c);
    else if( pos==5 )             // segundo caracter de los minutos (entre 0 y 9)
        return /^[0-9]$/.test(c);
    else                        // cualquier otro caso
        return false;
}

/********
    COLOCACIÓN DEL CURSOR: Da el foco a la caja colocando el cursor de inserción en la posición pos
********/
function ponCursorEnPos(event,input, pos){  
	event = null;
	input.onfocus=null;                            //quito      
    if(typeof document.selection != 'undefined' && document.selection){        //método IE
        var tex=input.value;
        input.value=''; 
		input.focus();
        var str = document.selection.createRange(); 
        input.value=tex;
        str.move("character", pos); 
        str.moveEnd("character", 0); 
        str.select();
    }else if(typeof input.selectionStart != 'undefined'){                    //método estándar
        input.setSelectionRange(pos,pos); 
		input.focus();
    }
} 

/********
    ONKEYPRESS: controlará cada caracter, si es especial haremos su función, si es válido lo escribirá, y si es inválido muestra error
********/
	
/********
    SUSTITUYE HH:MM DEL CAMPO POR LO QUE VAYAMOS ESCRIBIENDO
********/
function ponMascara(event, input, valor, mascaraTotal) {
//	alert(valor);
	laCaja=input;	
	e = event;
	var mascara=mascaraTotal.substring( valor.length,  mascaraTotal.length);
	laCaja.value=valor+mascara;
/*
    var code;
//    if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;            // detectamos el codigo de la tecla
    else if (e.which) code = e.which;
    var caracter = String.fromCharCode(code);    // extraemos su caracter
	alert(" masc:"+mascara+" caracter:"+caracter+" valor.length:"+(valor.length)+" code:"+code);
	if(valor.length>0 && valor.length<5){
		if (code==8) {        // caracter BACKSPACE para borrar números de la caja		
			// borramos un caracter de valor, y si hay un ":" borramos dos
			if(valor.length==3){                    //hay colocado HH:
				valor=valor.substring(0,1);             //dejamos H
			}else if(valor.length>0){                //si hay algo que borrar, borramos un caracter
				valor=valor.substring(0,valor.length-1);                   //actualizamos el contenido
			}
			ponMascara(event, input, valor, mascaraTotal); 
			if(errorMostrandose) ocultarError();        //ocultamos el error si hubiera
		}else if(valor.length>4) {        // si es un número válido en el contexto, lo añadiremos
			if(valor.length==2){
				valor+=":";
			}
			if(valor.length<mascaraTotal.length){
				valor+=caracter;
			}
			ponMascara(event, input, valor, mascaraTotal);                //actualizamos el contenido
			if(errorMostrandose) ocultarError();    //ocultamos el error si hubiera
		}
	}
//	ponCursorEnPos(event,input, valor.length);
	return false;        //nunca aceptaremos que el evento continúe, controlaremos el value siempre nosotros
	*/
}

/********
    MANEJADOR PARA EL FOCO: Función para el evento onfocus
********/
function focus_handler(input, valor) {
 //   ponCursorEnPos(input, valor.length);
}
//laCaja.onfocus=focus_handler;

/********
    MANEJADOR PARA EL FOCO: hace el focus sin hacer saltar el evento onfocus, es decir, sin hacer saltar focus_handler
********/
function forzar_focus(input) {
    input.onfocus=null;                            //quito
    input.focus();                                    //hago
//    setTimeout("input.onfocus=focus_handler(input,valor)",1);    //pongo (retrasado para IE...)
}

/********
    ONBLUR: Comprueba si la hora está a medias para escribir el error
********/
/*laCaja.onblur=function() {
    if(valor.length>0 && valor.length<5)        //hora incompleta
        mostrarError(2);
    else if(errorMostrandose) ocultarError();    //ocultamos el error si hubiera
}*/
