// Funcions del forum
var car;
function obri() {
  car = window.open("cares.php", "Cares", "scrollbars=yes,width=300,height=320");
}

function alCarregar()
{
	LinksExterns();
}

function LinksExterns() { 
	if (!document.getElementsByTagName) 
		return; 
	
	var anchors = document.getElementsByTagName("a"); 
	for (var i=0; i<anchors.length; i++) 
	{
		var anchor = anchors[i]; 
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "extern") 
			anchor.target = "_blank"; 
	} 
}

// Funcio del menu

function canvia(num,dins)
{
	if(dins)
	{
		
			document.getElementById("m"+num).className="menu1";
	}
	else
	{
		if(document.getElementById("m"+num)!=null)
			document.getElementById("m"+num).className="menu2";
	}
}4
function dataactual()
{
	if(document.getElementById('autodata').checked==true)
	{
		a=new Date();
		b=a.getDate()+"/"+(a.getMonth()+1)+"/"+a.getFullYear();
		document.getElementById('data').value=b;
		delete a;
		delete b;
		validaData('data',false);
	}
}

function validaCambra()
{
	tratarFecha(document.getElementById(a),document.getElementById(a).value,true);
	if(b==true)
	{
		if(document.getElementById(a).value.length>0)
		{
			if(tratarFecha(document.getElementById(a),document.getElementById(a).value,false))
				ok=true;
			else
				return false;
		}
		if(document.getElementById('ftitol').value.length<=0)
		{
			alert("ERROR: El camp del titol està buit");
			return false;
		}
		if(document.getElementById('ffitxer').value.length<=0)
		{
			alert("ERROR: El camp del fitxer està buit");
			return false;
		}

		return true;

	}
}


// COMPROVACIO DE CAMPS DE TEXT - SELECT
function comprova(valor)
{
	retorn=true;

	camp=document.getElementById(valor);
	if((camp.value==-1) || (camp.value == ""))
	{
		retorn=false;
		alert("Has de seleccionar algun valor de "+valor);
		camp.focus();
	}
	return retorn;
}

function validaFormatData(a)
{
	tratarFecha(document.getElementById(a),document.getElementById(a).value,true);	
}

// VALIDACIO DE DATES
function validaData(a,b)
{
	tratarFecha(document.getElementById(a),document.getElementById(a).value,true);
	if(b==true)
	{
		if(document.getElementById(a).value.length<=0)
		{
			alert("ERROR: El camp de la data està buït");
			return false;
		}
		else
		{
			if(tratarFecha(document.getElementById(a),document.getElementById(a).value,false))
				ok=true;
			else
				return false;
		}
		
		if(document.getElementById('ftitol').value.length<=0)
		{
			alert("ERROR: El camp del titol està buit");
			return false;
		}

		if(document.getElementById('ftext').value.length<=0)
		{
			alert("ERROR: El camp del text està buit");
			return false;
		}
	
		return true;

	}
}

// FUNCIONS VARIADES DE DATES

// Comprueba si un año es bisiesto, se le pasa el año
function bisiesto(anyo)
{ if ((anyo%400 == 0) || (anyo%4 == 0) || (anyo%100 == 0)) return true;
  else return false;
}

function validarFecha(valor,validaFecha)
{   var dia, mes, anyo;
    var d,m,a;
    var error=0;
    formt = "'dd-mm-aaaa, dd/mm/aaaa'";
    var reg = /(^\d{2})(-|\/)(\d{2})(-|\/)(\d{4}$)/;
    if (valor=="")
    { if (validaFecha==false) { return valor}
      else if (validaFecha==true)
           	{ alert ('La data introduïda no es vàlida'+'\n'+'El format correcte es '+formt);
              return false;
            }
    }
    else {  farr = reg.exec(valor);    // mira si coincide con el patron de fecha
            if (!farr)
            {
			 if (validaFecha==false) return valor;
              else if (validaFecha==true)
                    { alert ('La data introduïda no es vàlida'+'\n'+'El format correcte es '+formt);
                      return false;
                    }
            }
            else // el formato coincide, falta ver rangos
            {
			  dia = farr[1];
               mes = farr[3];
               anyo = farr[5];
		    }
            if (validaFecha==false)
            { if ((dia!="")&&(mes!="")&&(anyo!="")) return dia+"-"+mes+"-"+anyo
              else return valor;
            }
            else
			{  fecha = new String(valor);
                	if (anyo <= 1900)
                	{	alert ('La data és incorrecta'+'\n'+'L\' any té que ser superior a 1900');
               	 		return false;
                	}
                	if ( !caracter(dia,"es_numero") || !caracter(mes,"es_numero") || !caracter(anyo,"es_numero"))
                	{ alert ('La data introduïda no es vàlida'+'\n'+'El format correcte es '+formt);
                			return false;
                	}
                	if ((dia < 1) || (dia > 31) || (mes < 1) || (mes > 12) || (anyo < 0))
                	{	alert ('La data és incorrecta');
                			return false;
                	}
                	if ( mes == 2 )
                	{	if ( dia > 29 )
                			{ alert ('La data és incorrecta');
                					return false;
                			}
                			if ( (dia ==29 ) && !(bisiesto(anyo)) )
                			{	alert ('La data és incorrecta, l\'any '+anyo+ ' no es bixest');
                					return false;
                			}
                	}
                	else if (( dia == 31 ) && (( mes == 4 ) || ( mes == 6 ) || ( mes == 9 ) || ( mes == 11 )))
                	{	alert ('La data és incorrecta, el mes especificat no té 31 dies.'+'\n'+'El format correcte és '+formt);
                		 return false;
                	}

                	return true;
            }
        }
}

function tratarFecha(campo, valorCampo,dateCheck)
{   if (valorCampo=="") return campo.value="";
    else if (dateCheck==true) { campo.value=darFormatoFecha(valorCampo,"/"); }
         else if (dateCheck==false) { return validarFecha(valorCampo,true); }
              else campo.value=valorCampo;
}

function darFormatoFecha(valor,separadorSalida)
{   var fecha;
    var str=separadorSalida;
    fecha = new String(valor);
    var d,m,a,dd,mm,aa;
    fecha=sustituyeCaracter(valor,"-","/");
    if (fecha.length==0) {formatoFecha=1;}
        else if (fecha.split('/').length==3) {formatoFecha=2;} //d/m/aaaa
                else if (fecha.length==8) {formatoFecha=3;} //ddmmaaaa
                     else if (fecha.length==9) {formatoFecha=3;} //dd/mmaaaa , ddmm/aaaa
                          else {formatoFecha=4;}
    if (formatoFecha==1) return ""; //fecha vacia
    else if (formatoFecha==2) //formato 'd-m-aaaa'
            {   arrayFecha=fecha.split('/');
                d=arrayFecha[0];
                dd=rellenaCeros(d,2);
                m=arrayFecha[1];
                mm=rellenaCeros(m,2);
                a=arrayFecha[2];
				if(a.length<4){  // Si el anyo no esta en 4 digitos le sumamos 1900 o 2000
					var a_number = parseInt(a);
					if(a_number < 30) a = a_number + 2000;
					else a = a_number + 1900;
				}				
                fechaFormateada=dd+str+mm+str+a;
                return fechaFormateada;
            }
    else if (formatoFecha==3) //formato 'ddmmaaaa'
            {   fecha=sustituyeCaracter(fecha,"/","");
                if (!caracter(fecha,"es_numero")) { return valor; }
                else {  dd=fecha.substring(0,2);
                        mm=fecha.substring(2,4);
                        a=fecha.substring(4,8);						
						if(a.length<4){  // Si el anyo no esta en 4 digitos le sumamos 1900 o 2000
							var a_number = parseInt(a);
							if(a_number < 30) a = a_number + 2000;
							else a = a_number + 1900;
						}
                        fechaFormateada=dd+str+mm+str+a;
                        return fechaFormateada;
                     }
            }
    else if (formatoFecha==4) { return valor; }
    return "";
}

// --------------------------------------------------
// Funciones de Caracteres
// * caracter devuelve una variable boolean indicando si la
//   cadena pasada es del tipo que queremos comprobar.
// * rellenaCeros
//
// --------------------------------------------------

function caracter(cadena,tipo)
{ var c=0;
  letras="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  numero="0123456789";
  caracter_control="§#!|ºª\"\\·$%&/()=?¿¡{}+*'[]_,;:<>";
  letras_especiales="ñÑàèìòùáéíóúüçÁÉÍÓÚÜÇ ";
  signos_puntuacion=".,;:";
    if (tipo == "es_numero")
    { for (c=0;c<cadena.length;c++)
        if (numero.indexOf(cadena.charAt(c)) == -1) return false;
    }
    if (tipo == "no_numero")
    { for (c=0;c<cadena.length;c++)
        if ((numero.indexOf(cadena.charAt(c)) != -1) ||(caracter_control.indexOf(cadena.charAt(c)) == 1))
          return false;
    }
    if (tipo == "es_letra")
    { for (c=0;c<cadena.length;c++)
        if (letras.indexOf(cadena.charAt(c)) == -1) return false;
    }
    if (tipo == "numero_letra")
    { for (c=0;c<cadena.length;c++)
        if ((letras.indexOf(cadena.charAt(c)) == -1) && (letras.indexOf(cadena.charAt(c)) == -1) && (letras_especiales.indexOf(cadena.charAt(c)) != -1))
          return false;
    }
    if (tipo == "caracter_control")
    { for (c=0;c<cadena.length;c++)
        if (caracter_control.indexOf(cadena.charAt(c)) != -1) return false;
    }
    if (tipo == "no_especial")
    { for (c=0;c<cadena.length;c++)
        { if ((numero.indexOf(cadena.charAt(c)) == -1) && (letras.indexOf(cadena.charAt(c)) == -1) && (signos_puntuacion.indexOf(cadena.charAt(c)) == -1) )
          return false;
        }
    }
	return true;
}

/*
	Rellena una cadena con ceros a la izq o a la derecha hasta una longitud dada.
*/
function rellenaCeros(aux, longMax, posicion)
{	var aux1 = "";
	var i = aux.length;
	var j = 0;
	if (i < longMax)
	{   j = longMax - i;
		for(var contador=0;contador<j;contador++) { aux1 += "0"; }
	}
	if (posicion=="IZQ") { return aux1+aux; }
	else if (posicion=="DER") { return aux+aux1; }
	     else { return aux1+aux; }
}

/* Funcion de sustitución de caracteres.
*/
function sustituyeCaracter(argvalue,entrada,salida)
{   var longitud = argvalue.length;
    var cadenaFinal = "";
    for (i=0; i<longitud; i++)
    {   if (argvalue.charAt(i) == entrada) { cadenaFinal += salida; }
        else { cadenaFinal += argvalue.charAt(i); }
    }
    return cadenaFinal;
}


function codiOK()
{
	a=document.getElementById('codiValidacio').value;
	if(a!='2006')
	{	
		alert ('El valor del filtre de seguretat no es correcte');
		return false;
	}
	else
		return true;
}

window.onload = alCarregar;