
function entradaDuplicada(formulario,valueListaOrigen,listaDestino)
{
	/* CUIDADO!! EL contador no puede ser i o bien debe ser declarada local!!*/
	//alert(valueListaOrigen);
	var j; 	
	for (j=0; j < document.forms[formulario][listaDestino].length; j++)
	{		
		valueListaDestino = document.forms[formulario][listaDestino][j].value;
		//alert(j);				
		if (valueListaOrigen == valueListaDestino) return true;			
	}
	return false;
}

function traspasaElemento(formulario,listaOrigen,listaDestino,eliminaOrigen)
{
	//alert(document.forms[0][listaOrigen].selectedIndex);
	//alert(document.forms[0][listaOrigen][document.forms[0][listaOrigen].selectedIndex].value);
	//alert(document.forms[0][listaOrigen][document.forms[0][listaOrigen].selectedIndex].text);
	var i;	
	if (document.forms[formulario][listaOrigen].multiple)
	{
		for (i=0; i < document.forms[formulario][listaOrigen].length; i++)
		{
			if (document.forms[formulario][listaOrigen][i].selected) 
			{
				valueListaOrigen = document.forms[formulario][listaOrigen][i].value;
				textListaOrigen = document.forms[formulario][listaOrigen][i].text;	
				// afegir a listaDestino
				//alert(valueListaOrigen);
				if ( !entradaDuplicada(formulario,valueListaOrigen,listaDestino) )
					document.forms[formulario][listaDestino].options[document.forms[formulario][listaDestino].length] = new Option(textListaOrigen,valueListaOrigen);
				// eliminar de listaOrigen
				if(eliminaOrigen) document.forms[formulario][listaOrigen].options[i] = null;							
			}
		}	
	}
	else
	{
		if (document.forms[formulario][listaOrigen].selectedIndex >= 0) // -1 si no hay seleccionados	
		{			
			valueListaOrigen = document.forms[formulario][listaOrigen][document.forms[formulario][listaOrigen].selectedIndex].value;
			textListaOrigen = document.forms[formulario][listaOrigen][document.forms[formulario][listaOrigen].selectedIndex].text;	
			// afegir a listaDestino
			if (!entradaDuplicada(formulario,valueListaOrigen,listaDestino))			
				document.forms[formulario][listaDestino].options[document.forms[formulario][listaDestino].length] = new Option(textListaOrigen,valueListaOrigen);
			// eliminar de listaOrigen			
			if(eliminaOrigen) document.forms[formulario][listaOrigen].options[document.forms[formulario][listaOrigen].selectedIndex] = null;		
		}
	}
}

function eliminaElemento(formulario,lista)
{
	//alert(document.forms[0][lista].selectedIndex);
	//alert(document.forms[0][lista][document.forms[0][lista].selectedIndex].value);
	//alert(document.forms[0][lista][document.forms[0][lista].selectedIndex].text);
	var i;
	if (document.forms[formulario][lista].multiple)
	{
		for (i = document.forms[formulario][lista].length-1; i >= 0; i--)
		{
			if (document.forms[formulario][lista][i].selected) 
			{
				document.forms[formulario][lista].options[i] = null;				
			}
		}			
	}
	else
	{				
		if (document.forms[formulario][lista].selectedIndex >= 0) // -1 si no hay seleccionados
		{
			document.forms[formulario][lista].options[document.forms[formulario][lista].selectedIndex] = null;
		}
	}	
}

function seleccionaElementos(formulario,lista)
{
	//alert(document.forms[0][lista].length);
	var i;
	if (document.forms[formulario][lista])
	{
		for (i = 0; i < document.forms[formulario][lista].length; i++)	
		{
			document.forms[formulario][lista][i].selected = true;
			//alert(document.forms[0][lista][i].selected);
		}
	}	
}

function imgover(imgname){
    imgname.src = "imagenes/arrow.gif";
}

function imgout(imgname){
    imgname.src = "imagenes/blank.gif";
}

/*
   M‚todo que permite abrir una ventana centrada tanto de forma horizontal como verticalmente.
   Par metros:
     + ancho - define la anchura de la ventana.
     + alto  - define la altura  de la ventana.
       -  Si ancho/alto es mayor que 0 se entiende que se debe ser centrada.
       -  Si no debe ir centrada se envia 0 y se especifica el ancho como propiedad dentro de la cadena.
     + propiedades - cadena en la que se especifican todos los par metros que se desean ( menu, scrollbars, resizable, ...)
*/
function centrarVentana(url, titulo, ancho, alto, propiedades, cogeFoco){
       if ( alto > window.screen.height)
          alto = window.screen.height;
//         vertical = window.screen.height /2;

       var horizontal = ( window.screen.width  - parseInt(ancho) ) / 2 ;
       var vertical   = ( window.screen.height - parseInt(alto ) ) / 2 ;
	
	url = url.replace(/"/g, '\\"');
       cadena = "window.open( \"" + url + "\", \"" + titulo + "\", \"";

       if ( parseInt( ancho ) > 0 )
          cadena += "width=" + ancho + ",screenX=" + horizontal + ",left=" + horizontal;

       if ( parseInt( alto  ) > 0 )
          cadena += ",height=" + alto + ",screenY=" + vertical + ",top=" + vertical;

       if ( propiedades != "" )
          cadena += "," + propiedades;

       cadena +=  "\" )";

       var nuevaVentana = eval ( cadena );
       if ( cogeFoco )
          nuevaVentana.focus();

        return nuevaVentana;
}

function abreVentanaGrande(fichero,nombre){
        if (nombre==null) nombre='ventana';
        var carac="left=0,top=0,width=" + (screen.availWidth-15) + ",height="+ (screen.availHeight-35) + ",resizable=yes, scrollbars=yes";
        //alert(carac)
        var ventana=window.open(fichero,nombre,carac);
        ventana.focus();
}

function abreCalen(campo){
        //var ven=centrarVentana('','calen',170,170,'scrollbars=no',1);
        // Con menos de 500 en remoto falla (en local funciona incluso con 100)!!!
        var ven=window.open('','calen','width=170,height=170,left=600,top=100,scrollbars=no',1);
        ven.document.write('<HTML><HEAD><TITLE>Calendario</TITLE><LINK TYPE=\"text/css\" HREF=\"estilo.css\" REL=\"stylesheet\"><script type=\"text/javascript\" src=\"calendario.js\"><\/script></HEAD><BODY><br><div id=\"cal\"></div><script>setTimeout(\"ponCal(\''+ campo +'\')\",500);</scr'+'ipt></BODY></HTML>');
        ven.focus();
}

function nombreValido(id){
        var nombre=document.forms[0][id].value;
        var pos=nombre.lastIndexOf("\\");
        nombre=nombre.substring(pos+1);
        //alert(nombre);
        var codigoInicial = nombre.charCodeAt(0);
        //alert (codigoInicial);
        for (i=0; i<nombre.length; i++){
                var codigo = nombre.charCodeAt(i);
                if (!( (codigo>=48 && codigo<=57) || (codigo>=65 && codigo<=90)
                  || (codigo>=97 && codigo<=122) || codigo==45 || codigo==46 || codigo==95 || codigo==32)){  // - . _ espacio
                  alert("El caracter '"+ nombre.charAt(i) +"' no es un caracter válido.\n Los caracteres válidos son 0..9, a..z, A..Z y los caracteres - _ y espacio");
                  document.forms[0][id].focus();
                  return false;
                }
        }
        return true;
}

function loginValido(formulario,id){
        login=document.forms[formulario][id].value;
        var codigoInicial = login.charCodeAt(0);
        //alert (codigoInicial);
        if (!( (codigoInicial>=65 && codigoInicial<=90) || (codigoInicial>=97 && codigoInicial<=122) )){
            alert("El LOGIN debe empezar por un caracter comprendido entre a..z o A..Z y no puede contener espacios en blanco.");
            document.forms[formulario][id].focus();
            return false;
        }
        for (i=0; i<login.length; i++){
                var codigo = login.charCodeAt(i);
                if (!( (codigo>=48 && codigo<=57) || (codigo>=65 && codigo<=90)
                  || (codigo>=97 && codigo<=122) || codigo==45 || codigo==46 || codigo==95)){  // - . Y _
                  alert("El caracter '"+ login.charAt(i) +"' no es un caracter válido.\n Los caracteres válidos son 0..9, a..z, A..Z y los caracteres . - y _");
                  document.forms[formulario][id].focus();
                  return false;
                }
        }
        return true;
}

function referenciaValida(formulario,id){
        referencia = document.forms[formulario][id].value;
        for (i = 0; i < referencia.length; i++){
                var codigo = referencia.charCodeAt(i);
                if (!( (codigo>=48 && codigo<=57) || (codigo>=65 && codigo<=90) || (codigo>=97 && codigo<=122)
		      || codigo==45 || codigo==46 || codigo==95)){  // - . Y _
                  alert("El caracter '" + referencia.charAt(i) + "' no es un caracter válido.\n Los caracteres válidos son 0..9, a..z, A..Z y los caracteres - y _");
                  document.forms[formulario][id].focus();
                  return false;
                }
        }
        return true;
}
/*
function loginValido1(id){
  var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚÀÈÒ" + "abcdefghijklmnñopqrstuvwxyzáéíóúàèò";
  var checkFirst = document.forms[0][id].value.charAt(0);
  var valid=false;
  for (j = 0; j < checkOK.length; j++)
    if (checkFirst == checkOK.charAt(j)){
        valid=true;
        break;
    }
  if (!valid) {
        alert("El LOGIN debe empezar por un caracter comprendido entre a..z o A..Z y no puede contener espacios en blanco.");
        document.forms[0][id].focus();
        return (false);
  }


  var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚÀÈÒ" + "abcdefghijklmnñopqrstuvwxyzáéíóúàèò"+
        "0123456789"+"-"+"_";
  var allValid = true;
  var checkStr = document.forms[0][id].value;

  for (i = 0; i < checkStr.length; i++) {
    ch = checkStr.charAt(i);
    for (j = 0; j < checkOK.length; j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length) {
        alert('invalido');
      allValid = false;
      break;
    }
  }

  if (!(allValid)){
        alert("El caracter '"+ checkStr.charAt(i) +"' no es un caracter válido.\n Los caracteres válidos son 0..9, a..z, A..Z y los caracteres - y _");
        document.forms[0][id].focus();
        return (false);
  }
  return (true);
}
*/
	
function cookies(){
        if (navigator.cookieEnabled) return true;
}

function openMenu(event, id) {
  var el, x, y;

  el = document.getElementById(id);
  if (window.event) {
    x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
  }else {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }
  x -= 8; y -= 8;
  el.style.left = x + "px";
  el.style.top  = y + "px";
  el.style.visibility = "visible";
}


function closeMenu(event) {
  var current, related;

  if (window.event) {
    current = this;
    related = window.event.toElement;
  }else{
    current = event.currentTarget;
    related = event.relatedTarget;
  }

  //alert(current != related); siempre es cierto al cambiar de elemento de menu
  if (current != related && !contains(current, related)){
    current.style.visibility = "hidden";
  }
}


function contains(a, b) {
  // Return true if node a contains node b.

  if(b==null) return false;
  while (b.parentNode)
    if ((b = b.parentNode) == a){
      return true;
    }
  return false;
}


// CRONO: usada en onload de fra_sup
function actReloj()
{
var hhmmss=new Date()
var horas=hhmmss.getHours()
var minutos=hhmmss.getMinutes()
var segundos=hhmmss.getSeconds()

//Convertimos los números a dos dígitos, o sea, 6 -> 06
horas = (horas<=9)?("0"+horas):horas;
minutos = (minutos<=9)?("0"+minutos):minutos;
segundos=(segundos<=9)? ("0"+segundos):segundos;

/* Aquí construimos la cadena de texto HTML con la hora, y el tipo de letra que se escribe
en la capa del reloj. */

var hora=horas+":"+minutos+":" +segundos;
if ((document.all) || (document.getElementById))
{
        document.getElementById('reloj').innerHTML=hora;
}
else if (document.layers)
{
        document.layers.reloj.document.write(hora);
        document.layers.reloj.document.close();
}
//ejecuta la función cada segundo (1000 miliseg)
setTimeout("actReloj()",1000);
}


// usada en mensajero, asistencia
function quitaMarca(campo,nombre){
        var pos=document.form1[campo].value.indexOf(nombre);
        if (pos!=-1){ // existe
                var alumnos=document.form1[campo].value;
                principio=alumnos.substring(0,pos);
                fi=nombre.length;
                fin=alumnos.substring(pos+fi+1);
                alumnos= principio + fin;
                //alert(alumnos);
                document.form1[campo].value=alumnos;
        }
        //alert(document.form1["alumnos"].value);
}

/* PEQUEÑA CONTRADICCION:  ponMarca Y ponMarcas DEBERIAN USAR LAS DOS O NINGUNA EL CAMPO MARCAS */
// usada en mensajero, asistencia
function ponMarca(campo,nombre){
        //alert(campo);
        //alert(nombre);
        var pos=document.form1[campo].value.indexOf(nombre);
        if (pos==-1){ // no existe
                document.form1[campo].value = document.form1[campo].value + nombre + ",";
        }
        //alert(document.form1["alumnos"].value);
}

// usada en mensajero, asistencia
function ponMarcas(obj,id){
 var marca="";
 var pos=0;
 var marcas;

 if (id!=null) comienzo=id;
 else comienzo='';
 if (obj.checked){
   // PONER
   for(i=0; i< document.forms[0].elements.length; i++){
        if (document.forms[0].elements[i].type=="checkbox" && document.forms[0].elements[i].name.substring(0,comienzo.length)==comienzo){
                document.forms[0].elements[i].checked=true;
                marca=document.forms[0].elements[i].value;
                pos=document.forms[0]["marcas"].value.indexOf(marca);
                if (pos==-1){ // no existe
                        document.forms[0]["marcas"].value = document.forms[0]["marcas"].value + marca + ",";
                }
                //alert(document.form1["alumnos"].value);
        }
   }
 }else{
   // QUITAR
   for(i=0; i<document.forms[0].elements.length; i++){
     if (document.forms[0].elements[i].type=="checkbox" && document.forms[0].elements[i].name.substring(0,comienzo.length)==comienzo){
        document.forms[0].elements[i].checked=false;
        marca=document.forms[0].elements[i].value;
        //alert(alum);
        pos=document.forms[0]["marcas"].value.indexOf(marca);
        //alert(pos);
        if (pos!=-1){ // existe
            marcas=document.forms[0]["marcas"].value;
            principio=marcas.substring(0,pos);
            fi=marca.length;
            fin=marcas.substring(pos+fi+1);
            marcas= principio + fin;
            //alert(alumnos);
            document.forms[0]["marcas"].value=marcas;
                //alert(document.form1["alumnos"].value);
        }
      }
   }
 }
 //alert(document.form1["alumnos"].value);
}



/* ROLLOVER */

function cambiaImagen(obj,imgOn,imgOff,sino){
        if (sino){
                obj.src=imgOn;
        }else{
                obj.src=imgOff;
        }
}


/* FORMULARIOS */
function cambiaBoton(obj,sino){
        if (sino){
                obj.style.borderColor= 'white';
                obj.style.backgroundColor= '#6A2F5B';
                obj.style.color= 'white';
        }else{
                obj.style.borderColor= '#6A2F5B';
                obj.style.backgroundColor= '';
                obj.style.color= '';
        }
}


// en formularios con COMBO O LISTA, comprueba que haya algun elemento elegido
function opcion_elegida(formulario) {
	    //alert(formulario);
    for (i=1; i<arguments.length; i++){	
        if (document.forms[formulario][arguments[i]].type=="select-one"){ //combo		
                if (document.forms[formulario][arguments[i]].selectedIndex==0){
			if (document.forms[formulario][arguments[i]].length == 1) continue;			
                        alert("Debe seleccionar una opción");
                        document.forms[formulario][arguments[i]].focus();
                        return false;
                }
        }else if (document.forms[formulario][arguments[i]].type=="select-multiple"){ //lista de instructores
                for(i=0; i<document.forms[formulario][arguments[i]].length;i++){
                  if (document.forms[formulario][arguments[i]][i].selected==true){
                        return;
                  }
                }
                alert("Debe elegir una opción");
                document.forms[formulario][arguments[i]].focus();
                return false;
        }
    }
    return (true);    
}

//PONE FOCO EN FORMULARIOS
function ponFoco(formulario,id){
        // si sólo pongo select el orden de tabulacion no funciona
        document.forms[formulario][id].focus();
        if (document.forms[formulario][id].type=="text") document.forms[formulario][id].select();
}


// CONFIRMA LA ELIMINACIÓN DE UN REGISTRO
function confirmar(id){
        var resp=confirm("¿Está seguro que desea eliminar el registro '" + id + "' ?");
        if (resp==false) return false;
        else return true;
}

// VERIFICA QUE HAYA DATOS
function verificaCampo(formulario){
        //alert(arguments[0]);alert(arguments[1]);
        var hay_pass=false;
	// i=1 para salvar nombre formulario
        for (i=1; i<arguments.length; i++){
		//alert(arguments[i]);
                if (document.forms[formulario][arguments[i]].value==""){
                        alert("Este dato es obligatorio");
                        document.forms[formulario][arguments[i]].focus();
                        return false;
                }
                if (arguments[i]=="password") hay_pass=true;
        }
        if (hay_pass) return validaPassword(formulario);
        else return (true);
}

/*
function verificaCombo(formulario){
        for (i=0; i<arguments.length; i++){
                if (document.forms[formulario][arguments[i]].value==""){
                        alert("Este dato es obligatorio");
                        document[formulario][arguments[i]].focus();
                        return false;
                }
        }
        return true;
        //return (document.forms[0]['provincia'].selectedIndex>=1) && (document.forms[0]['fn_dia'].selectedIndex>=0) && (document.forms[0]['fn_mes'].selectedIndex>=0)
}
*/
	
function verificaFichero(formulario,fich,login){
        fichero=document.forms[formulario][fich].value.toLowerCase();
        if (fichero=='') return true;

        //if (fichero.indexOf(login)!=-1) return true;
        pos_barra=fichero.lastIndexOf('\\');
        if (pos_barra==-1) pos_barra=fichero.lastIndexOf('/');
        pos_punto=fichero.lastIndexOf('.');
        nombre=fichero.substring(pos_barra+1,pos_punto);
        if (nombre==login) return true;
        else{
                alert("El nombre del fichero debe ser igual a " + login);
                document.forms[formulario][fich].focus();
                return false;
        }
}

//VERIFICA PASSWORDS
function validaPassword(formulario){
        if (document.forms[formulario]['password'].value!=document.forms[formulario]['password2'].value){
                alert("Las claves no coinciden");
                document.forms[formulario]['password'].focus();
                return false;
        }
        return (true);
}

//VERIFICA CORREO
function verificaCorreo(formulario,mail){
        var correcto=false;
        var correo;
        if (mail==null)
                correo=document.forms[formulario]['correo'].value;
        else
                correo=document.forms[formulario][mail].value;
        if (correo=="") return (true);
        var arroba=correo.indexOf('@');
        if (arroba!=-1){
                var punto=correo.indexOf('.',arroba+1);
                if (punto!=-1){
                        correcto=true;
                }
        }
        if (!correcto){
                alert('Dirección de correo incorrecta');
                if (mail==null)
                        document.forms[formulario]['correo'].focus();
                else
                        document.forms[formulario][mail].focus();
                return false;
        }else{
                return true;
        }
}

// se usa en realizar_exam para no dejar que ponga más preguntas por pàgina que el total
function verificaLongitud(formulario,id,max){
        if (document.forms[formulario][id].value>max){
                alert('Máximo ' + max + ' preguntas');
                document.forms[formulario][id].focus();
                return false;
        }else if (document.forms[formulario][id].value<=0){
                alert('Número de preguntas incorrecto');
                document.forms[formulario][id].focus();
                return false;
        }
        return (true);
}

// le paso this, que el objeto fila que quiero iluminar
function ponColorFila(fila,onoff){
        // anteriores: rgb(132,158,181), rgb(204,153,153), #FF9900
        if (onoff=="on") 
                fila.style.backgroundColor = "#cccccc";
        else
                fila.style.backgroundColor = "";
}

// le paso this, que es el objeto que quiero iluminar
// SI SE PONE EN ONCLICK solo funciona con botón izquierdo , en ONMOUSEDOWN funciona con los dos (GRAELLA)
// USADO EN textbox de formularios
function ponColorObjeto(obj,color){
        // rgb(132,158,181); azul turquesa
	// #FFCC66; amarillo
        //alert(obj.style.backgroundColor);
        if (obj.style.backgroundColor=="") {
                if (color==void 0)
                        obj.style.backgroundColor = "#dddddd";
                else
                        obj.style.backgroundColor = color;
        }else{
                obj.style.backgroundColor="";
        }
}


// controla que sólo entre numéricos positivos
// si uso final peta en Netscape pq es palabra reservada??
function pulsada(e,inicial,fin,validos) {
          if(document.all)
          {
              codigoTecla = event.keyCode //e.keycode també
          }
          else if(document.layers)
          {
              codigoTecla = e.which
          }
          else if(document.getElementById)
          {
              codigoTecla = (window.Event) ? e.which : e.keyCode;
          }


          //alert(codigoTecla);
          // 8 = backspace, 0 = cursores; esto es para Netscape sólo 
          if (codigoTecla==8 || codigoTecla==0) return;

          if (validos!=null){
                var v_validos =validos.split(' ');
                for(var j=0; j<v_validos.length; j++){
                        if (v_validos[j]==String.fromCharCode(codigoTecla)) return;
                }        
          }

          codigoInicial = inicial.charCodeAt(0);
          if (fin==null) // if (!fin) tambien vale
                codigoFinal = 57;
          else                                          
                codigoFinal = fin.charCodeAt(0);


          if (codigoTecla<codigoInicial || codigoTecla>codigoFinal) 
          {
              if(document.all)
                  event.returnValue = false;
              else
                  return false;
          }
}

// se usa en mant_exam.php 
function alClicarHabilitaText(obj){
        if (obj.value==1) {
                document.getElementById('peso').style.visibility='visible';
                document.forms[0]['peso'].disabled= false;
                document.forms[0]['peso'].focus();
                document.forms[0]['peso'].select();
        }else{
                document.forms[0]['peso'].disabled= true;                
                document.getElementById('peso').style.visibility='hidden';
        }
        /* cuando era un checkbox
        if (!obj.checked){
                document.forms[0]['peso'].disabled= true;
        }else{
                document.forms[0]['peso'].disabled= false;
                document.forms[0]['peso'].focus();
                document.forms[0]['peso'].select();
        }
        */
}

// se usa en mant_exam.php 
function alClicarHabilitaFila(obj){
        if (obj.value==0) {
                document.getElementById('manual').style.display='';
                document.getElementById('automatica').style.display='none';
        }else{
                document.getElementById('manual').style.display='none';
                document.getElementById('automatica').style.display='';
        }
}


// se usa en mant_exam.php 
function alClicarHabilitaTipoAuto(obj){
        if (obj.value==0) {
                document.getElementById('inicio').style.display='inline';
                document.getElementById('periodo').style.display='none';
                document.getElementById('tituloauto').innerHTML='Inicio de activación:';
        }else if (obj.value==1) {
                document.getElementById('inicio').style.display='inline';
                document.getElementById('periodo').style.display='inline';
                document.getElementById('tituloauto').innerHTML='Periodo de activación:';
        }else if (obj.value==2 || obj.value=='null'){
                document.getElementById('inicio').style.display='none';
                document.getElementById('periodo').style.display='none';
                document.getElementById('tituloauto').innerHTML='';
        }
}


// se usa en resultados_in.php para FILTRAR aprobados y suspendidos
function escondeFilas(){
        var indice=document.forms[0]['esconde'].selectedIndex;
        /* al ser BARRA un TR no se puede hacer
        if (obj[i].className.indexOf('aprobado')==-1){
                obj[i].style.display="none";
        */

        obj=document.getElementsByTagName("TR");
        for (var i=0; i<obj.length; i++){
                // si pongo block, en Netscpae NO funciona!! (pinta mal las filas)
                obj[i].style.display="";
        }

        if (indice==0){
                return;
        }else if (indice==1){ //aprobados
                obj=document.getElementsByTagName("TR");
                for (var i=0; i<obj.length; i++){
                        if (obj[i].className.indexOf('suspendido')!=-1){
                                obj[i].style.display="none";
                        }
                }
        }else if (indice==2){ //susp
                obj=document.getElementsByTagName("TR");
                for (var i=0; i<obj.length; i++){
                        if (obj[i].className.indexOf('aprobado')!=-1){
                                obj[i].style.display="none";
                        }
                }
        }
}

// se usa en resultados.php para FILTRAR correctas e incorrectas
function filtra(){
        var obj;
        var contador=0;
        var indice=document.form1.combo.selectedIndex;

        // DEBERÉ CAMBIARLO POR DIV cuando haga salto de linea (DIV:after {content: "\A";})
        obj=document.getElementsByTagName("P");
        for (var i=0; i<obj.length;i++){
                obj[i].style.display="block";
        }
        if (indice==0){ //todas
                contador=obj.length;

        }else if (indice==1){ //correctas
                obj=document.getElementsByTagName("P");
                for (var i=0; i<obj.length; i++){
                        // es espacio es fundamental: ' correcta'
                        if ( obj[i].className.indexOf(' correcta')!=-1 )
                                contador++;                        
                        else
                                obj[i].style.display="none";
                }

        }else if (indice==2){  //incorrectas
                obj=document.getElementsByTagName("P");
                for (var i=0; i<obj.length; i++){
                        if ( obj[i].className.indexOf('incorrecta')!=-1 )
                                contador++;                        
                        else 
                                obj[i].style.display="none";
                }

        }else{ // no contestadas
                obj=document.getElementsByTagName("P");
                for (var i=0; i<obj.length; i++){
                        if ( obj[i].className.indexOf('nocontestada')!=-1 )
                                contador++;                        
                        else 
                                obj[i].style.display="none";
                }
        
        }
        document.getElementById('contador').innerHTML=contador;
}

// se usa en resultados.php para ORDENAR segun orden realización o según real
function ordena(criterio){
        var si_esta_alumno=false;
        for(i=0; i< document.form1.elements.length; i++)
                if (document.form1.elements[i].name=="alumno"){
                        si_esta_alumno=true;
                        break;
                }

        if (si_esta_alumno)
          document.form1.action="resultados.php?accion=1&examen=" + document.form1.examen.value
          + "&curso="+document.form1.curso.value + "&clase="+document.form1.clase.value
          + "&id_intento="+document.form1['id_intento'].value+"&alumno="+document.form1['alumno'].value;
        else
          document.form1.action="resultados.php?accion=1&examen="+document.form1.examen.value
          + "&curso="+document.form1.curso.value + "&clase="+document.form1.clase.value
          +"&id_intento="+document.form1['id_intento'].value;

        var si_esta_exped=false;
        for(i=0; i< document.form1.elements.length; i++)
                if (document.form1.elements[i].name=="expediente"){
                        si_esta_exped=true;
                        break;
                }
        if (si_esta_exped) document.form1.action+="&expediente=1";

        var si_esta_estad=false;
        for(i=0; i< document.form1.elements.length; i++)
                if (document.form1.elements[i].name=="estadisticas"){
                        si_esta_estad=true;
                        break;
                }
        if (si_esta_estad) document.form1.action+="&estadisticas=1";

        if (criterio!=null) document.form1.action+=criterio;
        document.form1.submit();
}

// PONE LA FECHA ACTUAL A UN CAMPO A PARTIR DE SU NAME
function ponFecha(id){
        var fecha=new Date();
        //var f = fecha.getFullYear() +"-"+ fecha.getMonth() +"-" +fecha.getDate();
        var dia=String(fecha.getDate());
        var mes=String(fecha.getMonth()+1);
        if (dia.length==1) dia="0" + dia;
        if (mes.length==1) mes="0".concat(mes);
        var f=dia + "/" + mes + "/" + fecha.getFullYear();
        document.form1[id].value=f;
}

// PONE LA HORA ACTUAL A UN CAMPO A PARTIR DE SU NAME
function ponHora(id){
        var fecha=new Date();
        var hora=String(fecha.getHours());
        var min=String(fecha.getMinutes());
        var seg=String(fecha.getSeconds());
        if (hora.length==1) hora="0" + hora;
        if (min.length==1) min="0".concat(min);
        if (seg.length==1) seg="0".concat(seg);
        var h=hora + ":" + min + ":" + seg;
        document.form1[id].value=h;
}

function validaHora(obj){
        var hora=obj.value;
        var valida=true;

        if (hora=="" || hora=="00:00:00") return;

        if (hora.length>5){ // sino es que es format hh:mm només
          fin=5;
          if (hora.substr(2,1) != ':' || hora.substr(5,1) != ':'){
                valida=false;
          }
        }else{
          fin=3;
          if (hora.substr(2,1) != ':'){
                valida=false;
          }
        }

        // per si es deixa entrar lletres,etc...
        // mira si hora es correcta
        horanum = hora.substr(0,2);
        horanum += hora.substr(3,2);
        horanum += hora.substr(6,2);

        var digit;
        for (i=0; i<=fin; i++)
        {
                digit = horanum.substr(i,1);
                if (digit < '0' || digit > '9')
                {
                        valida=false;
                }
        }

        // mira si hora es correcta
        hora_num = hora.substr(0,2);
        min_num  = hora.substr(3,2);
        if (fin==5) seg_num  = hora.substr(6,2);
        
        //alert(hora_num);
        if (hora_num > '24'){
                valida=false;
        }        
        if (min_num > '59'){
                valida=false;
        }
        if (fin==5) 
         if (seg_num > '59'){
                valida=false;
         }

        if (!valida) {
                alert("Hora incorrecta\nFormato: hh:mm:ss");
                obj.focus();
                return false;
        }
        return true;
}

function validaFecha(obj)
{
        /* "00/00/0000" ya que si no se pusiera fecha, al modificar cursos (hay dos fechas seguidas) entraria en un bucle                 infinito */
        if (obj.value=="" || obj.value=="00/00/0000") return;
        if (obj.value.substr(2,1) != '/'){
                if (obj.value.substr(1,1) == '/'){
                     obj.value="0"+obj.value;
                }
        }
        //alert(obj.value);
        if (obj.value.substr(5,1) != '/'){
                if (obj.value.substr(4,1) == '/'){
                     obj.value=obj.value.substr(0,3)+"0"+obj.value.substr(3);
                }
        }
        //alert(obj.value);

        if (!( (formatData(obj.value)) && (validaData(obj.value)) )) {
                alert("Fecha incorrecta\nFormato: dd/mm/aaaa" );
                obj.focus();
                return false;
        }
        return true;
}

//El format de les dates ha da ser dd/mm/aaaa
function formatData(fData)
{
        if (fData.substr(2,1) != '/' || fData.substr(5,1) != '/'){
                return (false)
        }

        var data_num;
        data_num = fData.substr(0,2);
        data_num += fData.substr(3,2);
        data_num += fData.substr(6,4);

        // per si es deixa entrar lletres,etc...
        var digit;
        for (i=0; i<=7; i++)
        {
                digit = data_num.substr(i,1);
                if (digit < '0' || digit > '9')
                {
                        return(false);
                }
        }
        return(true);
}

//La data informada, ha de ser una data vàlida
function validaData(vData)
{
        var vDia = vData.substr(0,2);
        var vslash1 = vData.substr(2,1);
        var vMes = vData.substr(3,2);
        var vslash2 = vData.substr(5,1);
        var vAny = vData.substr(6,4);
        
        var DiaMes = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 

        //Actualitzem el mes de Febrer pels anys de traspàs ("bisiesto")
        if (((vAny % 4 == 0) && (vAny % 100 != 0)) || (vAny % 400 == 0))
                DiaMes[1] = 29;
                
        if (vMes < '01' || vMes > '12')
                return (false);
                
        if (vDia < '01' || vDia > DiaMes[vMes-1])
                return (false);
                
        return(true)
}

//Canvia el format de la data a aaaammdd per poder comparar (i enviar a PHP)
function canviFormat(cData,separador)
{
        var sep='';
        if (separador==null) sep="-";
        else sep=separador;

        var cDia = cData.substr(0,2);
        var cMes = cData.substr(3,2);
        var cAny = cData.substr(6,4);
        var cDataNova = cAny + sep + cMes + sep + cDia;
        return (cDataNova)
}


//Canvia el format de la data desde aaaammdd a dd/mm/aaaa per presentacions
function canviFormatAEspanyol(cData)
{
        var cAny = cData.substr(0,4);
        var cMes = cData.substr(5,2);
        var cDia = cData.substr(8,2);
        var cDataNova = cDia + "/" + cMes + "/" + cAny;
        return (cDataNova)
}


//NO SIRVE PQ EL NAVEGADOR ORDENA SEGÚN TIENE LOS ELEMENTOS EN LA PÁGINA Y NO 
// SEGÚN LOS VAYA PONIENDO VISIBLES (DESPUÉS DE OCULTARLOS) => PAGINA .PHP
/*
function ordena(){
        var obj;
        var vectorPreg=new Array();
        var indice=document.form1.combo2.selectedIndex;
        obj=document.getElementsByTagName("P");
        if (indice==0){
                for (var i=0; i<obj.length;i++){        
                        vectorPreg[vectorPreg.length]=obj[i].getAttribute('alum');
                }
        }else{
                for (var i=0; i<obj.length;i++){        
                        vectorPreg[vectorPreg.length]=obj[i].getAttribute('id');
                }
        }
        // oculta todas
        for (var i=0; i<obj.length;i++){
                obj[i].style.display="none";
        }
        //vectorPreg.sort(cmp);
        alert(vectorPreg);
        for (var i=0; i<vectorPreg.length;i++){
                obj[vectorPreg[i]-1].style.display="block";
                alert(vectorPreg[i]-1);
        }
}
*/

// NO LA USO: IDA DE OLLA
/*
function convertirAlinks(){
        var pregLinks="";
        var vector=document.getElementById('preguntas').innerHTML.split(" ");
        for(var i=0; i< vector.length; i++) {
                pregLinks=pregLinks+ "<A HREF=resultados.php?id=" + vector[i] +">" +vector[i]+"</a>" +" ";
        }
        document.getElementById('preguntas').innerHTML=pregLinks;
}
*/

function cmp(a,b) { 
        return (a-b);
}


    /** 
    * definimos las variables globales necesarias
    * var n >> marcapasos del bucle
    * var contenido >> string que va a almacenar en cada momento la variante del mensaje a pintar en la capa
    * var mensaje >> mensaje a mostrar en la capa
    */
    var n=-1;
    var contenido="";
    var mensaje="EXAMENES ONLINE";

    /**
    * funcion principal
    */
    function escribe()
    {
        /**
         * para Internet Explorer
         */
         if(document.all)
         {
             /**
             * si el marcapasos es menor que la longitud del mensaje >> continuamos el bucle, aumentando 1 unidad n
             * si el marcapasos iguala la longitud del mensaje >> lo inicializamos
             */
             if(n<mensaje.length)
                 n+=1;
             else
                n=-1;
            
            /**
            * iniciamos el bucle
            * asignamos a la letra de igual posicion que el marcapasos en la cadena del mensaje el color verde
            * y a las otras el color rojo, y almacenamos todo como un string en la variable contenido
            */
            for(m=0;m<=mensaje.length;m++)
            {
                if(m!=n)
                {
                    contenido+=('<span class="texto">'+mensaje.charAt(m)+'</span>');
                }
                else
                {
                     contenido+=('<span class="letra">'+mensaje.charAt(n)+'</span>');
                }
            }
            
            /**
            * una vez creada la cadena completa de este ciclo del bucle, la escribimos en la capa, usando la sintaxis 
            * propia de I. Explorer
            * luego inializamos de nuevo la variable contenido, para empezar desde cero el siguiente bucle
            */
            document.all['contenedor'].innerHTML=contenido;
            contenido="";
        }
        
        
        /**
        * para Nestcape Navigator 6x
        * este si permite escribir directamente en la capa, al igual que I. Explorer.
        * para acceder a la capa usamos el objeto getElementById('nombre capa')
        */
        else if(document.getElementById)
         {
             if(n<mensaje.length)
                 n+=1;
             else
                n=-1;
            for(m=0;m<=mensaje.length;m++)
            {
                if(m!=n)
                {
                    contenido+=('<span class="texto">'+mensaje.charAt(m)+'</span>');        
                }
                else
                {
                     contenido+=('<span class="letra">'+mensaje.charAt(n)+'</span>');
                }
            }
            document.getElementById('contenedor').innerHTML=contenido;
            contenido="";                          
        }

        /**
        * para Nestcape Navigator 4x
        */
        else  if(document.layers)
        {
            if(n<=mensaje.length)
                n+=1;
            else
                n=-1;
            
            /**
            * este navegador no permite escribir directamente en una capa, pues considera cada capa como 
            * un documento propio. Hay que abrir el documento de la capa, escribir en el y cerralo luego
            */
            document.layers['contenedor'].document.open();
            
            for (m=0;m<mensaje.length;m++)
            {
                if(m!=n)
                {
                    document.layers['contenedor'].document.write('<span class="texto">'+mensaje.charAt(m)+'</span>');
                }
                else
                {
                     document.layers['contenedor'].document.write('<span class="letra">'+mensaje.charAt(n)+'</span>');
                }            
            }
            document.layers['contenedor'].document.close();
        }
        
        /**
        * llamamos de nuevo a la funcion cada 300 milisegundos
        */
        setTimeout("escribe()",600);
}

// para IE 5.0
function creaCriterio2(){
        var index;
        var criterio='';
        var criteriotexto='';

        // nombre like '%l'abat%' => fallo SQL => no debo poner ' sino \'
        for (j=1; j<6; j++){
          //alert(document.forms[0]['criterio'+j].disabled);
          if (document.forms[0]['criterio'+j].disabled==false){
                document.forms[0]['criterio'+j].value = document.forms[0]['criterio'+j].value.replace(/'/g, "\\'");

                if (document.getElementById('tipo'+j).value=='date') 
                document.forms[0]['criterio'+j].value=canviFormat(document.forms[0]['criterio'+j].value);
                else if(document.getElementById('tipo'+j).value=='timestamp') 
                document.forms[0]['criterio'+j].value=canviFormat(document.forms[0]['criterio'+j].value,'');

                if (document.forms[0]['operador'+j].value=="like")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value+ " '%"+                                         document.forms[0]['criterio'+j].value + "%'";
                else if(document.forms[0]['operador'+j].value=="not like")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value+ " '%25"+ crit + "%25'";
                else if(document.forms[0]['operador'+j].value=="is null")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value; 
                else if(document.forms[0]['operador'+j].value=="is not null")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value; 
                else
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value+ " '"+                                         document.forms[0]['criterio'+j].value + "'";
                
                index=document.forms[0]['operador'+j].selectedIndex;
                criteriotexto+=" "+document.forms[0]['campo'+j].value+ " " 
                        + document.forms[0]['operador'+j][index].text+" '"+document.forms[0]['criterio'+j].value+"'";
                if (document.forms[0]['andor'+(j)].value!=''){
                        criterio+=document.forms[0]['andor'+(j)].value;
                        index=document.forms[0]['andor'+(j)].selectedIndex;
                        criteriotexto+=" "+document.forms[0]['andor'+(j)][index].text+" ";
                }
          }
        }
        // debo sustituir & por %26 sino no llega el campo entero a PHP!!!
        // linea = linea.replace(/palabra/g, "frase");
        criterio = criterio.replace(/&/g, "%26");
        criteriotexto = criteriotexto.replace(/&/g, "%26");
        //alert(criterio);
        document.forms[0].criterio.value="("+criterio+")";
        document.forms[0].criteriotexto.value=criteriotexto;
        //alert(document.forms[0].criterio.value);
        //alert(document.forms[0].criteriotexto.value);
        setTimeout("delay()",100);
}

function ponClase(combo){
        j=combo.name.substr(5);
        var index=combo.selectedIndex;
        document.forms[0]['tipo'+j].value=combo.options[index].className;
}

function creaCriterio(){
        var index;
        var criterio='';
        var criteriotexto='';

        // 1) nombre like '%l'abat%' => fallo SQL => no debo poner ' sino \'

        /* COMO SE ENVIA EL CRITERIO EN LA URL(construido por código) y no a través de campos de formulario (caso en
        el que el navegador hace codificaión URL) yo debo hacer la codificacion: LO IDEAL SERIA UNA FUNCION EN
        JAVASCRIPT QUE HAGA LA CODIFICACIÓN URL del criterio */
        // 2) % (del like) es un caracter reservado en una URL (como &) => código hexa => %25 ya que sino al
        // buscar dai p.e al PHP llega %dai% y piensa que ha estado codificado por el navegador =>
        // sustituye %da por Ú !!
        // 3) replace(/%/g,"\\%") hace que al buscar % se sutituya por \% que es lo que necesita MYSQL
        // en 2) peta si busco contiene %aa p.e (PHP lo decodifica como ª) => crit=crit.replace(/%/g,"%25"); previo
        // 4)debo sustituir & por %26 sino no llega el campo entero a PHP!!!
        // linea = linea.replace(/palabra/g, "frase");

        for (j=1; j<6; j++){
          //alert(document.forms[0]['criterio'+j].disabled);
          if (document.forms[0]['criterio'+j].disabled==false){
                crit=document.forms[0]['criterio'+j].value;

                crit = crit.replace(/'/g, "\\'");
                crit = crit.replace(/%/g,"%25");
                crit = crit.replace(/%/g,"\\%");
                crit = crit.replace(/&/g, "%26");
                crit = crit.replace(/\+/g, "%2B");
                //crit=document.forms[0]['criterio'+j].value.replace(/\/g,"\\\");  peta

                // CON NETSCAPE PETA EN JAVASCRIPT Y FINALIZA FUNCION!!
                //if (document.getElementById('tipo'+j).value=='date') crit=canviFormat(crit);
                //else if(document.getElementById('tipo'+j).value=='timestamp') crit=canviFormat(crit,'');

                //alert(crit);
                if (document.forms[0]['tipo'+j].value=='date'){
                        if (validaFecha(document.forms[0]['criterio'+j])==false){
                                return false;
                        }else{
                                crit=canviFormat(crit);
                        }
                }else if(document.forms[0]['tipo'+j].value=='timestamp'){
                        if (validaFecha(document.forms[0]['criterio'+j])==false){
                                return false;
                        }else{
                                crit=canviFormat(crit,'');
                        }
                }else if(document.forms[0]['tipo'+j].value=='time'){
                        if (validaHora(document.forms[0]['criterio'+j])==false){
                                return false;
                        }
                }

                if (document.forms[0]['operador'+j].value=="like")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value+ " '%25"+ crit + "%25'";
                else if(document.forms[0]['operador'+j].value=="not like")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value+ " '%25"+ crit + "%25'";
                else if(document.forms[0]['operador'+j].value=="is null")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value; 
                else if(document.forms[0]['operador'+j].value=="is not null")
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value; 
                else
                criterio+=document.forms[0]['campo'+j].value+ " " + document.forms[0]['operador'+j].value+ " '"+ crit + "'";
                
                index=document.forms[0]['operador'+j].selectedIndex;
                criteriotexto+=" "+document.forms[0]['campo'+j].value+ " " 
                + document.forms[0]['operador'+j][index].text+" '"+crit+"'";

                if (document.forms[0]['andor'+(j)].value!=''){
                        criterio+=document.forms[0]['andor'+(j)].value;
                        index=document.forms[0]['andor'+(j)].selectedIndex;
                        criteriotexto+=" "+document.forms[0]['andor'+(j)][index].text+" ";
                }else{
                        break;
                }
          }
        }

        //criteriotexto = criteriotexto.replace(/%/g,"\\%");
        //alert(criterio);
        document.forms[0].criterio.value="("+ criterio +")";
        document.forms[0].criteriotexto.value=criteriotexto;
        //alert(document.forms[0].criteriotexto.value);
        setTimeout("delay()",100);
}

// sin delay se cierra y no envia datos al servidor!!! (PROBLEMA DEL NAVEGADOR)
function delay(){
        window.close();
}

function ponEnabled(j){
        //( ) son obligados, sino hace andor2-1 !!
        if (document.forms[0]['andor'+(j-1)].selectedIndex>0)
                document.forms[0]['criterio'+j].disabled=false;
        else{
                document.forms[0]['criterio'+j].value='';
                document.forms[0]['criterio'+j].disabled=true;
        }
}


mesk=new Array();
mesk[10]="A";mesk[11]="B";mesk[12]="C";mesk[13]="D";mesk[14]="E";mesk[15]="F";
A=10;B=11;C=12;D=13;E=14;F=15;
let="ABCDEF";

function mes(num){
if(let.indexOf(num) != -1){
        return eval(num)
}else{
 if(num < 10) return eval(num)
 else return mesk[num]
}
}

function color(begin,einde,stappen,stap){
hh1=(mes(begin.charAt(0))*16)+mes(begin.charAt(1));
hh2=(mes(begin.charAt(2))*16)+mes(begin.charAt(3));
hh3=(mes(begin.charAt(4))*16)+mes(begin.charAt(5));
pp1=(mes(einde.charAt(0))*16)+mes(einde.charAt(1));
pp2=(mes(einde.charAt(2))*16)+mes(einde.charAt(3));
pp3=(mes(einde.charAt(4))*16)+mes(einde.charAt(5));

if(hh1 < pp1){
 ff1=hh1+Math.floor((pp1-hh1)/stappen*stap);
 ff1=eval("\'"+mes(Math.floor(ff1/16))+"\'")+eval("\'"+mes(ff1-(Math.floor(ff1/16)*16))+"\'");
}else{
 ff1=hh1-Math.floor((hh1-pp1)/stappen*stap);
 ff1=eval("\'"+mes(Math.floor(ff1/16))+"\'")+eval("\'"+mes(ff1-(Math.floor(ff1/16)*16))+"\'");
}

if(hh2 < pp2){
 ff2=hh2+Math.floor((pp2-hh2)/stappen*stap);
 ff2=eval("\'"+mes(Math.floor(ff2/16))+"\'")+eval("\'"+mes(ff2-(Math.floor(ff2/16)*16))+"\'");
}else{
 ff2=hh2-Math.floor((hh2-pp2)/stappen*stap);
 ff2=eval("\'"+mes(Math.floor(ff2/16))+"\'")+eval("\'"+mes(ff2-(Math.floor(ff2/16)*16))+"\'");
}

if(hh3 < pp3){
 ff3=hh3+Math.floor((pp3-hh3)/stappen*stap);
 ff3=eval("\'"+mes(Math.floor(ff3/16))+"\'")+eval("\'"+mes(ff3-(Math.floor(ff3/16)*16))+"\'");
}else{
 ff3=hh3-Math.floor((hh3-pp3)/stappen*stap);
 ff3=eval("\'"+mes(Math.floor(ff3/16))+"\'")+eval("\'"+mes(ff3-(Math.floor(ff3/16)*16))+"\'");
}

return ff1+ff2+ff3
}

bum=0;bum2=0;
txt=new Array();
txt[0]="";

function lightf(){
 for(i=0;i != Math.floor(message.length/2);i++){txt[i]=color(lightcolor1,lightcolor2,Math.floor(message.length/2),i)};
  for(i=Math.floor(message.length/2);i !=    message.length;i++){txt[i]=color(lightcolor2,lightcolor1,Math.floor(message.length/2),(i-Math.floor(message.length/2)))};
  lightf1();
}

// llamada por lightf
function lightf1(){
 txt[message.length+1]="";
 bum2=message.length-bum;
 for(i=0;i != message.length;i++){
  if(i+bum < message.length){
        txt[message.length+1]=txt[message.length+1] + "<font color='#"+txt[(i+bum)]+"'>"+message.charAt(i)+"</font>"
  }else{
        txt[message.length+1]=txt[message.length+1] + "<font color='#"+txt[i-bum2]+"'>"+message.charAt(i)+"</font>"
  }
 };

 if(bum != message.length){bum++;}
 else{bum=0}

 document.getElementById('light').innerHTML=txt[message.length+1];
 //document.getElementById('light2').innerHTML=txt[message.length+1];
 setTimeout("lightf1()",50)
}


function parpadea(id){
        if (document.getElementById(id).style.backgroundColor=='') document.getElementById(id).style.backgroundColor='#bbbbbb';
        else document.getElementById(id).style.backgroundColor='';
        funcion="parpadea('"+id +"')";
        //alert(funcion);
        setTimeout(funcion,1000);
}

/* INICIO AJAX */
function nuevoAjax(){
	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 getMyHTML(serverPage, objID) {
	//alert('hola');
	//if((serverPage.indexOf("http://www.jferres.com/")!=0)) return;
	var obj = document.getElementById(objID);
	ajax = nuevoAjax();
	ajax.open("GET", serverPage + "&hash=" + Math.random(), true);
	ajax.onreadystatechange = function() {
	//alert("readyState: " + ajax.readyState);
	if (ajax.readyState == 4) {
	  if (ajax.status == 200){
		//alert(ajax.responseText);	
		obj.innerHTML = ajax.responseText;
	  }else{
		alert("status: " + ajax.status);	 	
	  }
	}
}
ajax.send(null); // IMPRESCINDIBLE
}
/* FIN AJAX */


/*
 * jQuery 1.2.6 - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
 * $Rev: 5685 $
 */
(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();

var Media=document.Media||{};
Media.PlaySound=
{
  MSIE:navigator.userAgent.indexOf("MSIE"),
  NETS:navigator.userAgent.indexOf("Netscape"),
  OPER:navigator.userAgent.indexOf("Opera"),
  Sound:"./sonidos/notify.wav",
  PlayNow:function(){
    var tooltip=$(".tooltip");
    if((Media.PlaySound.MSIE>-1)||(Media.PlaySoundOPER>-1)) {
      tooltip.append('<bgsound src="'+Media.PlaySound.Sound+'" loop="0">');
    } else {
      tooltip.append('<embed src="'+Media.PlaySound.Sound+'" hidden="true" volume="200" loop="0" type="audio/midi">');
    };
  }
};

function showTooltip(e){
  var ie6=$.browser.msie&&parseInt($.browser.version)==6&&!window['XMLHttpRequest'];
  if(!ie6){
	var tooltip=$(".tooltip");
	var z=0;
	if(navigator.appName.indexOf("Explorer")!=-1) {z=-5;}
	else{z=25;};
	var x=$(window).width()-tooltip.width()-27;
	var y=$(window).height()-tooltip.height()-z;
	tooltip.css("top",y);
	tooltip.css("left",x);
	tooltip.css("position","fixed");
	tooltip.show();
	Media.PlaySound.PlayNow();
	$(window).bind("resize.tooltip",
		      function(e){
			e.preventDefault();
			setTimeout(positionTooltip,100);
		      });
  }
};

function positionTooltip(){
  var tooltip=$(".tooltip");
  var z=0;
  if(navigator.appName.indexOf("Explorer")!=-1) {z=-5;}
  else{z=25;};
  var x=$(window).width()-tooltip.width()-27;
  var y=$(window).height()-tooltip.height()-z;
  tooltip.css("top",y);tooltip.css("left",x);
  tooltip.css("position","fixed");
};

function hideTooltip() {
  var tooltip=$(".tooltip");
  $(window).unbind('resize.tooltip');
  tooltip.hide();
};


