// /////////////////////--SCROLL NOTICIAS --///////////////////////////
// Extension developed by David G. Miles 
// Original Scrollable Area code developed by Thomas Brattli 
function verifyCompatibleBrowser(){ 
    this.ver=navigator.appVersion 
    this.dom=document.getElementById?1:0 
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
    this.ie4=(document.all && !this.dom)?1:0; 
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
 
    this.ns4=(document.layers && !this.dom)?1:0; 
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5) 
    return this 
} 
bw=new verifyCompatibleBrowser() 
 
 
var speed=40 
 
var loop, timer 
 
function ConstructObject(obj,nest){ 
    nest=(!nest) ? '':'document.'+nest+'.' 
    this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; 
    this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; 
    this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight 
    this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight 
    this.up=MoveAreaUp;this.down=MoveAreaDown; 
    this.MoveArea=MoveArea; this.x; this.y; 
    this.obj = obj + "Object" 
    eval(this.obj + "=this") 
    return this 
} 
function MoveArea(x,y){ 
    this.x=x;this.y=y 
    this.css.left=this.x 
    this.css.top=this.y 
} 
 
function MoveAreaDown(move){ 
	if(this.y>-this.scrollHeight+objContainer.clipHeight){ 
    this.MoveArea(0,this.y-move) 
    if(loop) setTimeout(this.obj+".down("+move+")",speed) 
	} 
} 
function MoveAreaUp(move){ 
	if(this.y<0){ 
    this.MoveArea(0,this.y-move) 
    if(loop) setTimeout(this.obj+".up("+move+")",speed) 
	} 
} 
 
function PerformScroll(speed){ 
	if(initialised){ 
		loop=true; 
		if(speed>0) objScroller.down(speed) 
		else objScroller.up(speed) 
	} 
} 
 
function CeaseScroll(){ 
    loop=false 
    if(timer) clearTimeout(timer) 
} 
var initialised; 
function InitialiseScrollableArea(){ 
    objContainer=new ConstructObject('divContainer') 
    objScroller=new ConstructObject('divContent','divContainer') 
    objScroller.MoveArea(0,0) 
    objContainer.css.visibility='visible' 
    initialised=true; 
} 
// FIN SCROLL NOTICIAS

//Funcioncita que abre una ventana
function AbrirVentanaNoticia(varId){
	visor=window.open('noticias_ficha.asp?idnoticia=' + varId ,'visor','height=500,width=364,toolbar=no,scrollbars=yes');
	visor.focus();
}


//------------------------- Lo puso Diego -------------------------------------------
function popUp2(URL,tamX,tamY,nombre) {
	window.name = "miPrincipal";
	eval( nombre + " = window.open(URL, '" + nombre + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=" + tamX + ",height=" + tamY + ",left=0,top=0');");
	eval(nombre+".focus()");
}

function popUp3(URL,tamX,tamY,nombre) {
	window.name = "miPrincipal";
	eval( nombre + " = window.open(URL, '" + nombre + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=" + tamX + ",height=" + tamY + ",left=0,top=0');");
	eval(nombre+".focus()");
}

function VentanaComponente(URL){
	incidencia=window.open(URL ,'VentanaConver','toolbar=0,scrollbars=yes,location=0,statusbar=0,menubar=0,resizable=yes,width=400,height=220,left =365,top = 0');
	incidencia.focus();
}


function VentanaVerComponente(URL){
	incidencia=window.open(URL ,'VentanaConver','toolbar=0,scrollbars=yes,location=0,statusbar=0,menubar=0,resizable=yes,width=400,height=250,left =365,top = 0');
	incidencia.focus();
}

function esBisiesto(anyo)
    {
        /**
        * si el año introducido es de dos cifras lo pasamos al periodo de 1900. Ejemplo: 25 > 1925
        */
        if (anyo < 100)
            var fin = anyo + 1900;
        else
            var fin = anyo ;

        /*
        * primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
        * es decir, obtenemos año modulo 4, teniendo que cumplirse anyo mod(4)=0 para bisiesto
        */
        if (fin % 4 != 0)
            return false;
        else
        {
            if (fin % 100 == 0)
            {
                /**
                * si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
                */
                if (fin % 400 == 0)
                {
                    return true;
                }
                /**
                * si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
                */
                else
                {
                    return false;
                }
            }
            /**
            * si es divisible por 4 y no es divisible por 100 > el año es bisiesto
            */
            else
            {
                return true;
            }
        }
    }

function validarFecha(Cadena){

	var Fecha= new String(Cadena)	// Crea un string
	var RealFecha= new Date()	// Para sacar la fecha de hoy
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length))
	var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")))
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")))
	
	if (isNaN(Ano) || Ano.length>4 || Ano<1900){
        	
		return false
	}
	//comprobamos q el año no sea inferior a 1900 y tenga 4 dígitos ya q sino da problemas de formato.
	
	//fin comprobar año
	
		
	if (isNaN(Mes) || Mes.length>2 || Mes.length<1 || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		
		return false
	}
	if (isNaN(Dia) || Dia.length<1 || Dia.length>2 || parseFloat(Dia)<1 || parseFloat(Dia)>31){
		
		return false
	}
	var bisiesto=esBisiesto(Ano)
	if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
		if ( ((Mes==2) && (Dia > 28) && !(bisiesto) ) || (Dia>30) || ((bisiesto) && (Mes==2) && (Dia>29))) 																																	{    			
			return false
		}
	}
 	return true	
}



/* Esta función valida si f1 es una fecha menor que f2. En este caso 
 * devolvemos true. En caso contrario devolvemos false. 
 */
function validarFechaMenor(f1,f2) {
	f1 = f1.split("/");
	f2 = f2.split("/");
	if (f2[2]>=f1[2])
		if(f2[2]>f1[2]) return true;
		else if (f2[1]>=f1[1]) 
				if (f2[1]>f1[1]) return true;
				else if (f2[0]>=f1[0]) return true;
						else return false;
}




function validarEmail(email) {
	caracNoValidos = " /:,;";
	if(email == "") return false; 							// debe rellenarse
	for(i = 0; i < caracNoValidos.length; i++) {			// ¿hay algún carácter no válido?
		caracMal = caracNoValidos.charAt(i);
		if(email.indexOf(caracMal,0) > -1) return false;
	}
	posArroba = email.indexOf("@",1); 						// debe haber una @
	if(posArroba == -1) return false;
	if(email.indexOf("@",posArroba+1) != -1) return false;	// y sólo una
	posPunto = email.indexOf(".",posArroba);
	if(posPunto == -1) return false;  						// y al menos un . después de la @
	if(posPunto+3 > email.length) return false; 			// debe haber al menos 2 caracteres tras el .
	return true;
}
//------------------------- FIN Lo puso Diego -------------------------------------------

//funcion q comprueba si el valor recibido es un numero y devuelve true i false
//tipo
	//"decimal"
	//"enteiro"
//signo
	//1 -> +
	//0 -> + e -
	//-1 -> -
//nulo -> si vale 1 quere decir non se permite o valor 0, se non se pasa pu pasaselle 0 quere decir q se permite o valor 0

//funcion q comprueba si el valor recibido es un numero y devuelve true i false
//tipo
	//"decimal"
	//"enteiro"
//signo
	//1 -> +
	//0 -> + e -
	//-1 -> -
//nulo -> si vale 1 quere decir non se permite o valor 0, se non se pasa pu pasaselle 0 quere decir q se permite o valor 0
function compruebaNumero(n,tipo,signo,nulo)
{
	var decimal=/^((\d+(\.\d*)?)|((\d*\.)?\d+)|(\d+(\,\d*)?)|((\d*\,)?\d+))$/

	if (n=="") return false;
	if (isNaN(n)) return false;
	if(tipo=="decimal")
	{
		if(!decimal.test(Math.abs(n))) return false;
	}
	else
	{
		if(tipo=="enteiro")
		{
			if (n!=parseInt(n)) return false;
		}
		else
		{
			return false;
		}
	}
	if (isNaN(signo)) return false;
	if(nulo) if (isNaN(nulo)) return false;
	if(!nulo) nulo=0; else if(nulo!=1) nulo=0;
	
	switch(signo)
	{
		case 1://positivo
			if(nulo==0){ if(n<0) return false; }else{  if(n<=0) return false;}
			break;
		case 0://positivo negativo
			
			if(nulo==1){ if(n==0) return false; }
			break;
		case -1://negativo
			if(nulo==0){ if(n>0) return false; }else{  if(n>=0) return false;}
			break;
	}
	return true;
}

// AJAX INI
function urlDecode(str){
  	str=str.replace(new RegExp('\\+','g'),' ');
    return unescape(str);
}
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;
}
// AJAX FIN


function validarHora(Cadena){

	var Hora    = new String(Cadena)	// Crea un string
	var horas   = new String(Hora.substring(0,Hora.indexOf(":")))
	var minutos = new String(Hora.substring(Hora.lastIndexOf(":")+1,Hora.length))
	
	if (isNaN(horas)   || horas.length>2   || horas<0   || horas>23)   return false;
	if (isNaN(minutos) || minutos.length>2 || minutos<0 || minutos>59) return false;

	return true	
}

function mayorHora(Cadena1,Cadena2){

	var Hora1    = new String(Cadena1)	// Crea un string
	var horas1   = new String(Hora1.substring(0,Hora1.indexOf(":")))
	var minutos1 = new String(Hora1.substring(Hora1.lastIndexOf(":")+1,Hora1.length))
	var Hora2    = new String(Cadena2)	// Crea un string
	var horas2   = new String(Hora2.substring(0,Hora2.indexOf(":")))
	var minutos2 = new String(Hora2.substring(Hora2.lastIndexOf(":")+1,Hora2.length))
	
	if ( !validarHora(Cadena1) || !validarHora(Cadena2) ) return false;
	if ((horas2==horas1) && (minutos2==minutos1)) return 0;
	if ((horas2==horas1) && (minutos2<minutos1))  return 1;
	if ((horas2==horas1) && (minutos2>minutos1))  return 2;
	if ((horas2<horas1) ) return 1;
	if ((horas2>horas1) ) return 2;
	return -1;
}
/*
function difHoras(Cadena1,Cadena2){

	var Hora1    = new String(Cadena1)	// Crea un string
	var horas1   = new String(Hora1.substring(0,Hora1.indexOf(":")))
	var minutos1 = new String(Hora1.substring(Hora1.lastIndexOf(":")+1,Hora1.length))
	var Hora2    = new String(Cadena2)	// Crea un string
	var horas2   = new String(Hora2.substring(0,Hora2.indexOf(":")))
	var minutos2 = new String(Hora2.substring(Hora2.lastIndexOf(":")+1,Hora2.length))
	
	if ( !validarHora(Cadena1) || !validarHora(Cadena2) || (mayorHora(Cadena1,Cadena2)!=2) )  return -1;
	if ((horas2==horas1) ) return minutos2-minutos1;
	return ( ((horas2-horas1+1)*60)+minutos2-minutos1 );
}

/**/