
function init() {
glosary('glosarydefinition');
	buttonHovers();
	sfHover();
	linkPreview();
	//tamingselect();
//initCalendar(); //popcalendar.js
	//drop();
focos();
outLinks();
testRegister();
widthfix();
currentDay();
}

function currentDay() {
	var currentDayElement = document.getElementById('day' + new Date().getDate());
	if (currentDayElement != null) {
		currentDayElement.id = 'currentDay';
	}
}

function glosary(eltohide){
var imgre = document.getElementsByTagName('div');
	for(var i=0; i<imgre.length;i++){
		if(imgre[i].className == eltohide){
		imgre[i].style.display="none";
		}
	}
}
function widthfix(){
if(window.innerWidth < 1005)document.getElementById("ildefe").style.backgroundImage="none";
window.onresize = function () {
	if(window.innerWidth < 1005){document.getElementById("ildefe").style.backgroundImage="none";}
	};
}

function zoomMas() {
	var mapa = document.getElementById("mapa");
	mapa.SetVariable("/SMapa/FHTML:HTML_ZoomMas",true);
}
function zoomMenos() {
	var mapa = document.getElementById("mapa");
	mapa.SetVariable("/SMapa/FHTML:HTML_ZoomMenos",true);
}
function moveMap(x,y){
        var mapa = document.getElementById("mapa");
	mapa.SetVariable("/SMapa/FHTML:HTML_MoveMap",x+","+y);
}
function center (x,y) {
	var mapa = document.getElementById("mapa");
	mapa.SetVariable("/SMapa/FHTML:HTML_Center",x+","+y);
}



function outLinks(){
if(document.getElementById('publicacion_enlaces'))
{
	var GKO = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1);
	outLinks = document.getElementById('publicacion_enlaces').getElementsByTagName('a');
	for (var i= 0; i<outLinks.length;i++){
		if (GKO) outLinks[i].setAttribute('onclick', 'window.open(this.href);return false;');
		else outLinks[i]['onclick']=new Function('window.open(this.href);return false;');
	}
}	
}
Object.registerClass = function(tag,_class,args){
	// Holds references to reapply the class mapping on document.createElement
	if(!this._tags)this._tags = new Array();
	// Fetch of the selected objects
	var tags;
	if(typeof tag == "string"){
		// No basic DOM, can't do anything with strings
		if(!document.getElementsByTagName || !document.getElementById){
			return false;
		}
		if(tag.charAt(0)!="#")this._tags[tag] = {_class:_class,args:args};
		if(!args)args = [];
		tags = (tag.charAt(0)=="#") ? [document.getElementById(tag.substr(1))] : document.getElementsByTagName(tag);
	}
	else{
		tags = [tag];
	}
	// Extending objects
	var obj;
	for(var i=0;i<tags.length;i++){
		obj = tags[i];
		// copy from prototype to the object
		for(var p in _class.prototype){
			obj[p] = _class.prototype[p];
		}
		// Reinstanciation
		if(_class.apply){
			_class.apply(obj,args);
		}
		else{
			// Old Browser- no apply, pollute
			obj.__RCinit = _class;
			obj.__RCinit(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8],args[9]);
		}
	}
	return true;
}
// a createElement wrapper that reapplies the class to the new elements
// Maybe is better to create a custom method createClassElement?
document._createElement = document.createElement;
document.createElement = function(tag){
	var obj = this._createElement(tag);
	if(typeof(Object._tags) != 'undefined' && Object._tags[tag]){
		Object.registerClass(obj,Object._tags[tag]._class,Object._tags[tag].args);
	}
	return obj;
}





function testRegister(){
	Object.registerClass("input",FieldDecorator,["#f7f7f7","#fff"]);
}

function FieldDecorator(colorF,colorB){
	this.focusColor = colorF;
	this.blurColor = colorB;
	this.init();
}
FieldDecorator.prototype.init = function(){
	this.onfocus = this.activate;
	this.onblur = this.deactivate;
	this.deactivate();
}
FieldDecorator.prototype.activate = function(){

	if(this.style){
		this.style.backgroundColor = this.focusColor;
	}
}
FieldDecorator.prototype.deactivate = function(){
	if(this.style){
		this.style.backgroundColor = this.blurColor;
	}
}



var defaultEmptyOK = false
var digits = "0123456789";
var whitespace = " \t\n\r";

//validaciones
function validar_campos(formulario){
var misp = formulario.getElementsByTagName("p");
	for (var i = 0; i < misp.length; i++){
		misp[i].className = "pErrorShown";
	}
	var errors = false;
	var campos = formulario.getElementsByTagName('input');
	for (var i = campos.length-1; i >= 0; i--){
		errors = !validField(formulario,campos[i].name,campos[i],999,campos[i].className) || errors;		
	}
	return !errors;
}

function getFieldName(myform, strFldName){
	var realStrFldName=strFldName;
	try{
		var hFldName = "h_"+strFldName;
		var hFldValue=myform[hFldName].value;
		if(hFldValue!=null && hFldValue!='undefined'){
			realStrFldName=hFldValue;
		}
	} catch(err){
		//alert(err);
	}
	return realStrFldName;
}

function validField(myform, strFldName,frmField,intLength,strDtType)
{
	switch (strDtType){
		case 'texto':
					if (frmField.value != "")
						if(!BusqCaracteres(frmField.value))
							{
							showError(myform,"'" + getFieldName(myform, strFldName) + "' no es válido.",frmField );
							frmField.focus();
							return (false);				
							}
						if (frmField.value.length > intLength)
							{
							showError(myform,"'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							
							frmField.focus();
							return (false);
							}
		break;	
		case 'texto_obligatorio':
					if (!ValidBlanks(myform,frmField,strFldName)) return (false);
					if (frmField.value != "")
						if(!BusqCaracteres(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es válido.",frmField);
							frmField.focus();
							return (false);				
							}
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
						
							frmField.focus();
							return (false);
							}
		break;
		
		case 'email': 		
					if (frmField.value != "")
						if (!isEmail(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es una dirección de correo electrónico válida.",frmField);
							frmField.focus();
							return (false);
							}
							
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}							
				break;
		
		case 'email_obligatorio':
					if (!ValidBlanks(myform,frmField,strFldName)) return (false); 		
					if (frmField.value != "")
						if (!isEmail(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es una dirección de correo electrónico válida.",frmField);
							frmField.focus();
						
							return (false);
							}
							
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							
							return (false);
							}							
				break;
		case 'nif': 
					
					if (frmField.value != "")
						if (!isNif(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un NIF válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;		
		
				
		case 'nif_obligatorio': 
					if (!ValidBlanks(myform,frmField,strFldName)) return (false);
					
					if (frmField.value != "")
						if (!isNif(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un NIF válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;		
		
		case 'codPos_obligatorio': 
					if (!ValidBlanks(myform,frmField,strFldName)) return (false);
					
					if (frmField.value != "")
						if (!isCodPostal(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un código postal válido.",frmField);
							frmField.focus();
							return (false);
							}
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}							
				break;
		case 'codPos': 	
					if (frmField.value != "")
						if (!isCodPostal(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un código postal válido.",frmField);
							frmField.focus();
							return (false);
							}
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}							
				break;
		case 'nie': 
					
					if (frmField.value != "")
						if (!isNie(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un NIE válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;	
		case 'nie_obligatorio': 
					if (!ValidBlanks(myform,frmField,strFldName)) return (false);
					
					if (frmField.value != "")
						if (!isNie(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un NIE válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;				
		case 'cif': 
					if (frmField.value != "")
						if (!isCif(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un CIF válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;		
		case 'cif_obligatorio': 
					if (!ValidBlanks(myform,frmField,strFldName)) return (false);
					
					if (frmField.value != "")
						if (!isCif(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un CIF válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;		
		case 'telefono':
					intLength = 15;
					if (frmField.value != "")
						if (!isFono(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un número de teléfono válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;	
		case 'telefono_obligatorio':
					if (!ValidBlanks(myform,frmField,strFldName)) return (false);
					
					intLength = 15;
					if (frmField.value != "")
						if (!isFono(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es un número de teléfono válido.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}	
				break;	
		case 'date': 
					if (frmField.value != "")
						if (!isDate(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es una fecha válida.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}							
							
				break;		
		case 'date_obligatorio': 
					if (!ValidBlanks(myform,frmField,strFldName)) return (false);
					
					if (frmField.value != "")
						if (!isDate(frmField.value))
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no es una fecha válida.",frmField);
							frmField.focus();
							return (false);
							}	
						if (frmField.value.length > intLength)
							{
							showError(myform, "'" + getFieldName(myform, strFldName) + "' no puede tener más de " + intLength + " caracteres.",frmField);
							frmField.focus();
							return (false);
							}							
							
				break;	
		case 'list_obligatorio' : 
                    if (frmField.selectedIndex==0)
                    {
                            showError(myform, "'" + getFieldName(myform, strFldName) + "' debe seleccionar algún valor de la lista.",frmField);
                            if(foco==null) frmField.focus();
                            return (false);
                    }
				break;	
	}
return (true);
}
function showError(myform, stringError, errorWhere){

	 errorElement = document.createElement("p");
	
	 errorElement.className = "pError";
	 errorStringElement = document.createTextNode(stringError);
	 errorElement.appendChild(errorStringElement);
			
	 var etiquetas = myform.getElementsByTagName("label");
	 for(var i = 0 ; i < etiquetas.length ; i++){
	 
	 if (document.all){
	 	if (etiquetas[i].getAttribute("htmlFor") == errorWhere.getAttribute("name"))
	 	etiquetas[i].appendChild(errorElement);	
	 }
	 	if(etiquetas[i].getAttribute("for") == errorWhere.getAttribute("name"))
	 	etiquetas[i].appendChild(errorElement);	
	 }
}
function trim(cad)
{	
	var aux="";
	if ((cad!=null)&&(cad!="")){
		var i,lg = cad.length;
		for (;lg>0 && cad.charAt(lg-1)<=' ';lg--);
		for (i=0;i<lg && cad.charAt(i)<=' ';i++);

		for (;i<lg;i++)
			aux = aux + cad.charAt(i);
	}

	return aux;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}



function BusqCaracteres(texto)
{
	return true;
}
function ValidBlanks(myform, frmField,strFldName)
{
	if (frmField.value == "" || frmField.value == null)
	{
	        
	        showError(myform, "Debe insertar algún valor en el campo '" + getFieldName(myform, strFldName)+"'", frmField);
	   
	        frmField.focus();
	        return (false);
	} 
	return (true);
}

function isEmail (s) 
{

	if (isEmpty(s))
		return false;
	 
	var i = 1; var sLength = s.length; 
	while ((i < sLength) && (s.charAt(i) != "@")) 
	{ 
		i++;
	}

	if ((i >= sLength) || (s.charAt(i) != "@")) 
		return false; 
	else 
		i += 2;
	
	while ((i < sLength) && (s.charAt(i) != ".")) 
	{
		i++; 
	}
	if ((i >= sLength - 1) || (s.charAt(i) != ".")) 
	 	return false; 
	
	else return true; 
}


function isInteger (s)
{   var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if (!isDigit(c)) return false;
        } else { 
            if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}
function isDouble (s)
{   var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    if(isInteger(s)) return true;
    var withPoint=false;
    var decimalcount=0;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if (!isDigit(c) && c == '.' && withPoint) {
            	return false;
            } else if(c == '.') {
            	withPoint=true;
            } else if (!isDigit(c)) {
            	return false;
            }
        } else { 
            if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
        if(withPoint) {
        	decimalcount++;
        	if(decimalcount > 3) {
        		return false;
        	}
        }
    }
    return true;
}
function isPorcentaje (s)
{  
	s=s.replace(',','.')
	esPorcentaje=true;
	if(s.indexOf('.')!=-1)
	{
		s=s.split('.')
		if(s[0] >100 || s[1].length>2) esPorcentaje=false;
		if(s[0] ==100 && s[1]>0) esPorcentaje=false;
	}
	else
	{
		if((s>100) || (s<0) ) esPorcentaje=false
	}

return esPorcentaje

}
function isNumber (s)
{   
    var i;
    var dotAppeared;
    dotAppeared = false;
    if (isEmpty(s)) 
       if (isNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isNumber.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "," ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c) && c != ".") return false;
        } else { 
            if ( c == "," ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}


function isLower(ch) { 
	var lowers; 
	lowers = "abcdefghijklmnopqrstuvwxyz"; 
	return (lowers.indexOf(ch) != -1); 
} 

function isUpper(ch) { 
	var uppers; 
	uppers = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
	return (uppers.indexOf(ch) != -1); 
} 

function isLetter(ch) { 
	return (isUpper(ch) || isLower(ch)); 
}

function isAlphabetic (s)
{   var i;

    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is letter.
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }
    return true;
}


function isAlphanumeric (s)
{   var i;

    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}

function isName (s)
{
    if (isEmpty(s)) 
       if (isName.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);
    
    return( isAlphanumeric( stripCharsInBag( s, whitespace ) ) );
}

letras = new Array("t","r","w","a","g","m","y","f","p","d","x","b","n","j","z","s","q","v","h","l","c","k","e");

function isNif(nif,type)
{
  if(type==null) type=0;
  nif=nif.toLowerCase();

  nifcorrecto = true;
  if(type==1)
	  dni=nif.substring(1,nif.length);
  else 
	 dni=nif.substring(0,nif.length-1);
  dni=parseInt(dni);
  
  if(type==1)
	 letra= nif.charAt(0)
  else    
	letra=nif.charAt(nif.length-1);

  letraCorrecta = letras[ dni % 23];

  if (dni > 99999999)
    nifcorrecto = false;
  if(letra!=letraCorrecta)
    nifcorrecto = false;
   
   return nifcorrecto 

}
function isNif(nif)
		{
		if (nif.length == 0) return true;
  		nif=nif.toLowerCase();

  		nifcorrecto = true;

	 	dni=nif.substring(0,nif.length-1);
	 	letra=nif.charAt(nif.length-1);

  		dni=parseInt(dni);
 		letraCorrecta = letras[ dni % 23];

  		if (dni > 99999999)
    		nifcorrecto = false;
  		if(letra!=letraCorrecta)
    		nifcorrecto = false;

   		return nifcorrecto

		}

function isCif(cif){

	var letrascif=new String("ABCDEFGHPQSKLMX");
	cif=cif.toUpperCase();
// comprobamos la longitud	
	if (cif.length !=9) return false;
// comprobamos que la letra inicial sea una de las válidas	
	letra = cif.charAt(0);
	if (letrascif.indexOf(letra)==-1) return false;
// comprobamos la validez del digito de control.	
	digitocontrol=cif.charAt(8);
	aux=cif.substring(1,8);	
	var suma = (parseInt(aux.charAt(1),10) + parseInt(aux.charAt(3),10)+  parseInt(aux.charAt(5),10))
	for (var i=0;i<=6;i=i+2){
		var val = new String(2*parseInt(aux.charAt(i),10));
		if (val.length==1) suma+=parseInt(val.charAt(0),10);
		else suma+=parseInt(val.charAt(0),10) + parseInt(val.charAt(1),10);
	}
	
	var digito = 10 - new String(suma).charAt(1);

	if (letra!="X" && letra!="P"){
		if (digito==10) digito=0;
		if (digitocontrol!=digito) return false;
	} else {
// si es un cif extranjero se valida como un nif, previamente se sustituye la X por un cero
		if (letra=="X") return (isNif("0" + cif.substring(1,9)))
		var ascii = 64 + digito;
		if (digitocontrol.charCodeAt(0)!=ascii) return false;
	}
	
	return true;	
	
}


function isFono(telefono)
{
 esFono=true
	if(telefono.length>15 || telefono.length<9)
		esFono=false;
	else
		for(hh=0;hh<telefono.length;hh++)
			if(isNaN(telefono.charAt(hh)))
				if(telefono.charAt(hh)!='(' && telefono.charAt(hh)!=')' && telefono.charAt(hh)!='-' && telefono.charAt(hh)!='+')
					esFono=false;

	return esFono
			
}


function isHour(s)
{
	var Horacorrecta=true
	var horas,min
	horas=parseInt(s.substring(0,2),10)
	min=parseInt(s.substring(3,5),10)
	if (isNaN(horas))  Horacorrecta=false
	if (isNaN(min))  Horacorrecta=false
	if(s.length!=5) Horacorrecta=false
	if(s.indexOf(':')==-1) Horacorrecta=false
	if(horas>24|| horas<0) Horacorrecta=false
	if(min>60 || min<0) Horacorrecta=false
		
	return Horacorrecta

}
function isDate(s)
{
    var day,month,year,mod,chr

    if (s==null || s.length==0)
        return true
    if (s.length!=10)
        return false

    for (var i=0;i<10;i++)
    {
        chr=s.charAt(i)
        if (i!=2 && i!=5)
        {
            if (chr<"0"||chr>"9") return false
        }
        else
        {
            if (chr!="/") return false
        }
    }
    
    day=parseInt(s.substring(0,2),10)
    month=parseInt(s.substring(3,5),10)
    year=parseInt(s.substring(6,10),10)

    if (1>day || day>31)
        return false
    if (1>month || month>12)
        return false
    if (1>year)
        return false
    if ((month==4 || month==6 || month==9 || month==11) && day==31)
        return false
    if (month==2)
    {
        mod=year%4
    	if (mod==0)
    	{
            mod=year%100
	    if(mod==0)
	    {
                var mod2=year%400
                if(mod2==0 &&  day>29)
                    return false
                else if(mod2!=0 && day>28)
                    return false
            }
	    else if(day>29)
	        return false
        }
        else if (day>28)
            return false
    }
    return true 		
}
function isCodPostal(codigo)
{
var esCodPos=false;

	if(codigo.length!=5 && isNumber(codigo)){
		esCodPos=false;}
	else
	{
		codIni=parseInt(codigo.substring(0,2),10)
		if(codIni>0 && codIni<51)
			esCodPos=true
	}
	return esCodPos

}
//Si s1 < s2 devuelve 2 si s1>s2 devuelve 1
function compDates(s1, s2)
{
    var f1, f2	
    f1 = s1.substring(6,10) + "/";    
    f1 = f1 + s1.substring(3,5) + "/";
    f1 = f1 + s1.substring(0,2); 
    f2 = s2.substring(6,10) + "/";     
    f2 = f2 + s2.substring(3,5) + "/";
    f2 = f2 + s2.substring(0,2);
	if (f1 == f2) 
		return 0
	else	
    	return (f1 < f2) + 1
}


letras = new Array("t","r","w","a","g","m","y","f","p","d","x","b","n","j","z","s","q","v","h","l","c","k","e");
		
		function isNie(nie)
		{
		if (nie.length == 0) return true;
  		nie=nie.toLowerCase();

  		niecorrecto = true;

  		if (nie.charAt(0)!="x") return false;
  			
	  	dni=nie.substring(1,nie.length);
	   	letra=nie.charAt(nie.length-1);

  		dni=parseInt(dni);
 		letraCorrecta = letras[ dni % 23];

  		if (dni > 99999999)
    		niecorrecto = false;
  		if(letra!=letraCorrecta)
    		niecorrecto = false;

   		return niecorrecto

		}
		
		
		
		
		
		

//********************************************************************************************
//********************************************************************************************

function buttonHovers() {
	//todos los input de la p?gina
	var elements = document.getElementsByTagName('input');
	//array para los input.submit
	var buttons = new Array();
	var j = 0;
	//aplicar al array todos los input de la clase submit, del total de la pagina
	for (var k = 0; k < elements.length; k++) {
		if((elements[k].type=='submit' || elements[k].type=='button' || elements[k].type =='reset') && elements[k].className != 'boton') {
			buttons[j] = elements[k];
			++j;
		}
	}		
	for (var k = 0; k < buttons.length; k++) {
		buttons[k].onmouseover = function() {this.className += "_hover";}	
		buttons[k].onmouseout = function() {this.className = this.className.replace(/_hover/g, "");}
	}
}

function linkPreview(){
    var links = document.getElementsByTagName("a");

    for (i=0; i<links.length; i++){
        var currentLink = links[i];

    	if (currentLink.className == "documento"){  
    	
        var images = currentLink.getElementsByTagName("img");
        if (images.length == 0){
            var linkHref = currentLink.childNodes[0].nodeValue;
	       checkLinks(linkHref, currentLink)       
        }
        }
    }
}
function checkLinks(linkHref, currentLink){

    var linkHrefParts = linkHref.split(".");
    var extension = linkHrefParts[linkHrefParts.length - 1];
    extension = extension.replace("/","");
    if( extension in { doc:1, pdf:1, ppt:1, txt:1, xls:1, zip:1 } ){
        append(currentLink, extension );
    }
}
function append(currentLink, extension){
 
    var span = document.createElement('span');
    span.innerHTML = "&nbsp;";
    //currentLink.appendChild(span);
    currentLink.parentNode.insertBefore(span,currentLink);
    span.className = extension;
}

// DLG: Reescrita para informar al usuario de las preguntas que no ha contestado.
function validateTest(formulario){
	var count = 0;
	var fieldsets = document.getElementsByTagName("fieldset");
	for(var i=0;i<fieldsets.length;i++) {
		if(fieldsets[i].className == 'pregunta') {
			count++;
			var collection = fieldsets[i].getElementsByTagName("input");
			var noError = false;
			for(var j=0;j<collection.length;j++) {
				if(collection[j].type == 'radio') {
					noError = noError || collection[j].checked;
				}
			}
			if(!noError) {
				alert("La pregunta " + count + " no ha sido contestada. Debe rellenar todas las respuestas del cuestionario para obtener los resultados.");
				return false;
			}
		}
	}
	return true;
	/*
	var focusField = null;	
	for (var i=0;i<formulario.elements.length;i++) {
		if (formulario.elements[i].type == 'radio') {
			focusField = document.getElementsByName(formulario.elements[i].name);
			noErrors = false;
			for(var j=0;j<focusField.length;j++) {
				if (focusField[j].checked) {
					noErrors=true;
				}
			}
			if (!noErrors) {
				alert('Debe rellenar por completo el test para obtener su resultado');
				return false;
			}	
		}
	}
	return true;
  	*/
}

function focos(){
var inputs = document.getElementsByTagName('input');
	for(var i=0;i<inputs.length;i++){
		if(inputs[i].id == "searchText")
		inputs[i].focus();
		inputs[i].style.backgroundColor = "#f7f7f7";
	}
}


window.onload = init;
