//FUNCIO per treure els espais en blanc de l'esquerra en un camp de texte.	
function LeftTrim(s){
        // Torna una cadena sense els espais del principi
        var i=0;
        var j=0;
                
        // Busca el primer caracter <> de un espacio
        for(i=0; i<=s.length-1; i++)
        {
                if(s.substring(i,i+1) != ' '){
                        j=i;
                        break;
                }
        }
        
		
		
		if(s.substring(j, s.length)==' '){
			return '';
        }
        else{
			return s.substring(j, s.length);
        };
		
}

//FUNCIO per treure els espais en blanc de la dreta en un camp de texte.
function RightTrim(s){
        // treu els espais en blanc del final de la cadena
        
        var j=0;
		var i;        
        // Busca el último caracter <> de un espacio
        for(i=s.length-1; i>-1; i--)
                if(s.substring(i,i+1) != ' '){
                        j=i;
                        break;
                }
        
        
        
        if(s.substring(0, j+1)==' '){
			return '';
        }
        else{
			return s.substring(0, j+1);
        };
}


//FUNCIO per treure tots els espais en blanc del principi i final en un camp de texte.
function Trim(s){
        // Treu els espais del principi y del final
        return LeftTrim(RightTrim(s));
}


function recerca()
{	
	window.document.buscador['ruta'].value = '';
	//if (window.document.buscador['busca'].value==''){
	//	lanzadera('/inici/OpcionsRecerca/Recerca/RecercaParaules');
	//}
	//else{
		window.document.buscador['busca'].value = Trim(window.document.buscador['busca'].value);	
		//window.document.buscador['localitat'].value = ''; //SSA
		lanzadera('/inici/OpcionsRecerca/Recerca/RecercaParaulesResultats');
	//};
}
function recercaavancada()
{
	//window.document.buscador['ruta'].value = '/Channels/Autors/Inici/OpcionsRecerca/RecercaAvancada/RecercaAvancada';
	if (window.document.buscador['busca'].value==''){
		lanzadera('/inici/OpcionsRecerca/RecercaAvancada/RecercaAvancada');
	}
	else{
		lanzadera('/inici/OpcionsRecerca/RecercaAvancada/RecercaAvancadaResultats');
	};
}

function notascii(character)
{
	for (n=30;n<=79;n++){
		if (n!=40 && n!=60){
			if (unescape('%'+n)==character){
				return true;
			}
		};
	};
	if (character=='z' || character=='Z' || character=='j' || character=='J' || character=='k' ||
	character=='K' || character=='l' || character=='L' || character=='m' || character=='M' ||
	character=='n' || character=='N' || character=='ñ' || character=='Ñ' || character=='o' ||
	character=='O'){
			return true;
	}
return false;
}

function validaTISVC(strcadena){	
	var x;
		x = strcadena.length;
	var temp;
			
	if (x != 14){	
		return false;	
	}
	for(i = 0; i < x; i++){
		temp = strcadena.charAt(i);
		if (i < 4) {
			if (isNaN(temp) == false){
				return false;
			}
		}
		else {
			if (isNaN(temp)){
				return false;
			}
		};
	};
	return true;
}

function lanzadera(destino)
{
	document.forms['id_buscador'].valor.value=document.forms['id_buscador'].busca.value;
	document.forms['id_buscador'].action=destino;
	document.forms['id_buscador'].submit();
}

function validar()
{
	var txt
	var id_idioma
	var i
		
	txt=document.forms['buscador_simple'].valor.value
	id_idioma=document.forms['buscador_simple'].p_idioma.value
	if (txt=="" || txt.length<1)
	{
		switch(id_idioma)
		{
			case 0:
				alert('Falta el valor de búsqueda')
				break;
			case 1:
				alert('Falta el valor de recerca')
				break;
			case 2:
				alert('You must intro the request value')
				break;
			case 3:
				alert('Falta el valor de cèrca')
				break;
		}
		
	}
	else
	{
		document.forms[2].submit()
	}
}

function openVentana1()
{
	sub1=window.open("/inici/OpcionsRecerca/III2_AjudaAvancada1_CAT",null,"width=330,height=190,scrollbars=no,resizable=no");
}
function openVentana2()
{
	sub1=window.open("/inici/OpcionsRecerca/III2_AjudaAvancada2_CAT",null,"width=330,height=190,scrollbars=no,resizable=no");
}
function openVentana3()
{
	sub1=window.open("/inici/OpcionsRecerca/III2_AjudaAvancada3_CAT",null,"width=330,height=190,scrollbars=no,resizable=no");
}
function anara(ruta)
{
	document.forms['ira'].action = ruta
	document.forms['ira'].submit();
}

//js que utiliza la página para validar el formato del cif,nie, dni
//Función que elimina los espacios en blanco
function ignoreSpaces(string) 
{
	var temp = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
		temp += splitstring[i];
		return temp;
	}

function V01_ValidaDniEmp(oDNI, oTipus){ 

	var OK = true;
	var campDNI;
	var Tipus;
	
	oDNI=Trim(oDNI);
	
	campDNI = oDNI;
	Tipus = oTipus;
	
// Segons el tipus de document, farem una validació o 
// una altra: DNI, NIF o CIF
		switch (Tipus){
		//	case "0":
		//		OK = ValidaTAOC(oDNI);
		//		break;
			case 10:
				OK = ValidaDNIEmp(oDNI);
				
				break;
		//	case "20":
		//		OK = ValidaPassaport(oDNI);
		//		break;	
			case 30:
				OK = ValidaNIEEmp(oDNI);
				
				if (OK != true)
				{
					OK = ValidaCIFEmp(oDNI);
				}				
				
				break;	
			case 40:
				OK = ValidaCIFEmp(oDNI);
					
				break;
		//	case "50":
		//		OK = ValidaPRes(oDNI);
		//		break;
			case 60:
				OK = ValidaNIFEmp(oDNI);
				break;
		//	case "70":
		//		OK = ValidaResCom(oDNI);
		//		break;
			default:
		//		break;
		}
	
		return(OK);
}

// En cas del DNI, només es comprova que el string
// sigui numèric. Tindrà fins a nou caracters numèrics
// Si té menys, s'ajusten a la dreta completant amb zeros
// per davant

function ValidaDNIEmp(oDNI)
{
	oDNI=Trim(oDNI);
	var campDNI = oDNI;
	
// Omplim zeros per davant per adaptar el format
	var newDNI = "";
	var qzeros = 9 - campDNI.length;
	for (i=1; i<=qzeros; i++)
	{
		newDNI += '0';
	}
	newDNI += campDNI;
	campDNI = newDNI;
	//oDNI.value = newDNI;

// Longitud màxima: 9 caracters:
	var vlong = campDNI.length;
	if (vlong > '9')
	{
		return(false);
	}

// Validem que els caracters són numèrics:
	var digit;
	for (i=0; i<=8; i++)
	{
		digit = campDNI.substr(i,1);
		if (digit < '0' || digit > '9')
		{
			return(false);
		}
	}
	return(true);
}

//Primer comprovem el primer dígit per saber de quin tipus de persona es tracta:
// * Persona física amb NIF: 9 numèrics + dígit control (zeros per davant)
// * Menors 14 anys sense NIF: K + 7 númèrics + dígit control
// * Espanyols no residents sense NIF: L + 7 numèrics + dígit control
// * Estrangers: X + 7 numèrics + dígit control

function ValidaNIFEmp(oDNI)
{
	OK=true;
	oDNI=Trim(oDNI);
	var campDNI = oDNI;
	campDNI = campDNI.toUpperCase();
	//oDNI.value = campDNI;
	
	var TipusPersona = ["Física", "Menor", "NoResident"];
	var primerDigit = campDNI.substr(0,1);
	var i;
	
	switch (primerDigit)
	{
		case 'K':
			i = 1;
			break;
		case 'L':
			i = 2;
			break;
		default:
			i = 3;
	}

	if (primerDigit >= '0' && primerDigit <= '9')
		i = 0;

	if (i > '2')
	{
		return(false);
	}

	var Persona = TipusPersona[i];
	var error;
	
// Tipus de persona Física amb DNI:

	if (Persona == "Física")
	{
// Omplim zeros per davant per adaptar el format
		var newDNI = "";
		var qzeros = 10 - campDNI.length;
		for (i=1; i<=qzeros; i++)
		{
			newDNI += '0';
		}
		newDNI += campDNI;
		campDNI = newDNI;
		//oDNI.value = newDNI;
		
		error = pFisicaEmp(campDNI);
		if (error != "")
		{
			return(false);
		}
	}
	
// Tipus de persona Menor sense DNI:

	if (Persona == "Menor")
	{
		error = pMenorEmp(campDNI);
		if (error != "")
		{
			return(false);
		}
	}
	
// Tipus de persona espanyola no Resident sense DNI:

	if (Persona == "NoResident")
	{
		error = pNoResidentEmp(campDNI);
		if (error != "")
		{
			return(false);
		}
	}
	
	return(true);

}

// Validem el DNI en cas de ser una persona Física
// consta de fins a 9 caracters numèrics. Si hi ha menys
// s'ajusta a la dreta completant amb 0 per l'esquerra.
// El desè caracter serà el dígit de control

function pFisicaEmp(fDNI)
{
fDNI=Trim(fDNI);
// Longitud màxima: 10 caracters:
	var vlong = fDNI.length;
	if (vlong > '10')
		return("ERROR");

// Validem que els 9 primers són numèrics:
	var digit;
	for (i=0; i<=8; i++)
	{
		digit = fDNI.substr(i,1);
		if (digit < '0' || digit > '9')
			return ("ERROR");
	}

// L'últim dígit ha de ser una lletra
	var	lletraDNI = fDNI.substr(9,1);
	lletraDNI = lletraDNI.toUpperCase();
	if (lletraDNI < 'A' || lletraDNI > 'Z')
		return ("ERROR");
		
// Comprovem que el dígit de control sigui el correcte:

	var numDNI = fDNI.substr(0,9);	
	var lletraOK = digitControlEmp(numDNI);
	if (lletraOK != lletraDNI)
		return ("ERROR");

// Si tot és correcte:
	return ("");

}	
	
// Validem el DNI en cas de ser una persona Menor
// consta d'una lletra inicial (K), més 7 caracters numèrica
// i la novena posició serà el dígit de control

function pMenorEmp(mDNI)
{
mDNI=Trim(mDNI);
// Longitud màxima: 9 caracters:
	var vlong = mDNI.length;
	if (vlong > '9')
		return ("ERROR");
	
// Ja hem validat que el primer caracter fós una 'K',
// ara, validem que els següents 7 caracters són numèrics:
	var digit;
	for (i=1; i<=7; i++)
	{
		digit = mDNI.substr(i,1);
		if (digit < '0' || digit > '9')
			return ("ERROR");
	}

// L'últim dígit ha de ser una lletra
	var	lletraDNI = mDNI.substr(8,1);
	lletraDNI = lletraDNI.toUpperCase();
	if (lletraDNI < 'A' || lletraDNI > 'Z')
		return ("ERROR");

// Comprovem que el dígit de control sigui el correcte:

	var numDNI = mDNI.substr(1,7);	
	var lletraOK = digitControlEmp(numDNI);
	if (lletraOK != lletraDNI)
		return ("ERROR");

// Si tot és correcte:
	return ("");

}		
	
// Validem el DNI en cas de ser una persona española no resident
// consta d'una lletra inicial (L), més 7 caracters numèrica
// i la novena posició serà el dígit de control

function pNoResidentEmp(rDNI)
{
rDNI=Trim(rDNI);
// Longitud màxima: 9 caracters:
	var vlong = rDNI.length;
	if (vlong > '9')
		return ("ERROR");
	
// Ja hem validat que el primer caracter fós una 'L',
// ara, validem que els següents 7 caracters són numèrics:
	var digit;
	for (i=1; i<=7; i++)
	{
		digit = rDNI.substr(i,1);
		if (digit < '0' || digit > '9')
			return ("ERROR");
	}

// L'últim dígit ha de ser una lletra
	var	lletraDNI = rDNI.substr(8,1);
	lletraDNI = lletraDNI.toUpperCase();
	if (lletraDNI < 'A' || lletraDNI > 'Z')
		return ("ERROR");

// Comprovem que el dígit de control sigui el correcte:

	var numDNI = rDNI.substr(1,7);	
	var lletraOK = digitControlEmp(numDNI);
	if (lletraOK != lletraDNI)
		return ("ERROR");

// Si tot és correcte:
	return ("");

}	

	
// Validem el DNI en cas de ser una persona estrangera
// consta d'una lletra inicial (X), més 7 caracters numèrica
// i la novena posició serà el dígit de control

function ValidaNIEEmp(oDNI)
{
	OK=true;
	oDNI=Trim(oDNI);
	var campNIE = oDNI;
	
	campNIE = campNIE.toUpperCase();
	//oDNI.value = campNIE;




// Longitud màxima: 9 caracters:
	var vlong = oDNI.length;
	var c;
	
	if (vlong == 9) c = 0;
	if (vlong == 10) c = 1;

	if (vlong > '10')
	{
		return(false);
	}
	
// Validem que el primer dígit sigui una 'X':	
	var primerDigit = campNIE.substr(0,1);
	if (primerDigit != 'X')
	{
		return(false);
	}
		
// Ja hem validat que el primer caracter fós una 'X',
// ara, validem que els següents 7 caracters són numèrics:
	var digit;
	for (i=1; i<=(7+c); i++)
	{
		digit = campNIE.substr(i,1);
		if (digit < '0' || digit > '9')
		{
			return(false);
		}	
	}

// L'últim dígit ha de ser una lletra
	var	lletraDNI = campNIE.substr((8+c),1);
	lletraDNI = lletraDNI.toUpperCase();
	if (lletraDNI < 'A' || lletraDNI > 'Z')
	{
		
		return(false);
	}
// Comprovem que el dígit de control sigui el correcte:

	var numDNI = campNIE.substr(1,(7+c));	
	var lletraOK = digitControlEmp(numDNI);
	if (lletraOK != lletraDNI)
	{
		return(false);
	}	
	
	return(true);
}	



		
// Comprovem la lletra que li correspondria al número informat
// La funció rep la part numèrica del DNI i retorna el codi de control

function digitControlEmp(numDNI)
{
	var d =(numDNI/23);
	d = Math.floor(d);
	var e=d*23;
	var res=numDNI-e;
	var lletra;

	switch (res) 
		{
		case 0:
			lletra = "T";
			break;
		case 1:
			lletra = "R";
			break;
		case 2:
			lletra = "W";
			break;
		case 3:
			lletra = "A";
			break;
		case 4:
			lletra = "G";
			break;
		case 5:
			lletra = "M";
			break;
		case 6:
			lletra = "Y";
			break;
		case 7:
			lletra = "F";
			break;
		case 8:
			lletra = "P";
			break;
		case 9:
			lletra = "D";
			break;
		case 10:
			lletra = "X";
			break;
		case 11:
			lletra = "B";
			break;
		case 12:
			lletra = "N";
			break;
		case 13:
			lletra = "J";
			break;
		case 14:
			lletra = "Z";
			break;
		case 15:
			lletra = "S";
			break;
		case 16:
			lletra = "Q";
			break;
		case 17:
			lletra = "V";
			break;
		case 18:
			lletra = "H";
			break;	
		case 19:
			lletra = "L";
			break;
		case 20:
			lletra = "C";
			break;
		case 21:
			lletra = "K";
			break;
		case 22:
			lletra = "E";
			break;
		}
	
	return (lletra);
} 

function ValidaCIFEmp(oDNI, oErrMsg)
{
	OK=true;
	oDNI=Trim(oDNI);
	var campCIF = oDNI;
	
	if (campCIF == ""){
		return(true);
	}
	
	campCIF = campCIF.toUpperCase();
	//oDNI.value = campCIF;
	
	if (campCIF.length != 9)
	{
		return(false);
	}
	
// El primer dígit ha de ser un dels permesos:
	var primerDigit = campCIF.substr(0,1);
	if (primerDigit != 'A' &&
		primerDigit != 'B' &&
		primerDigit != 'C' &&
		primerDigit != 'D' &&
		primerDigit != 'E' &&
		primerDigit != 'F' &&
		primerDigit != 'G' &&
		primerDigit != 'H' &&
		primerDigit != 'P' &&
		primerDigit != 'Q' &&
		primerDigit != 'S')
	{
		return(false);
	}
	
	
// Els set següents dígits han de ser numèrics:

	var digit;
	for (i=1; i<=7; i++)
	{
		digit = campCIF.substr(i,1);
		if (digit < '0' || digit > '9')
		{
			return(false);
		}
	}

// Calculem el codi de control de la novena posició:

	var D1 = campCIF.substr(1,1);
	var D2 = campCIF.substr(2,1);
	var D3 = campCIF.substr(3,1);
	var D4 = campCIF.substr(4,1);
	var D5 = campCIF.substr(5,1);
	var D6 = campCIF.substr(6,1);
	var D7 = campCIF.substr(7,1);
	
	D1 = parseInt(D1);
	D2 = parseInt(D2);
	D3 = parseInt(D3);
	D4 = parseInt(D4);
	D5 = parseInt(D5);
	D6 = parseInt(D6);
	D7 = parseInt(D7);
	
	var R1 = D2 + D4 + D6;
	var P1 = D1 * 2;
	var P2 = D3 * 2;
	var P3 = D5 * 2;
	var P4 = D7 * 2;
	
	
	
	if (P1 >= 10)
		P1 = unaXifraEmp(P1);
		
	if (P2 >= 10)
		P2 = unaXifraEmp(P2);
		
	if (P3 >= 10)
		P3 = unaXifraEmp(P3);
		
	if (P4 >= 10)
		P4 = unaXifraEmp(P4);
		
	var R2 = P1 + P2 + P3 + P4;
	var S = R1 + R2;
	
	var d =(S/10);
	d = Math.floor(d);
	var e=d*10;
	var Q = S - e;

	var digControl = 10 - Q;
	if (digControl == 10)
	  digControl = 0;
	  
// Si la novena posició és numèrica, aquesta haurà de
// coincidir amb el dígit de control calculat
// Si és una lletra, ha de coincidir la lletra corresponent
// Si no és ni número ni lletra, el codi serà erroni

	var ultim = campCIF.substr(8,1)
	var lletraControl = ['J', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
	
	if (ultim >= '0' && ultim <= '9')
	{
		if (ultim != digControl)
		{
			return(false);
		}
	}
	else
	{
		if (ultim >= 'A' && ultim <= 'Z')
		{
			if (ultim != lletraControl[digControl])
			{
				return(false);
			}
		}
		else
		{
			return(false);
		}
	}
	
	return(true);

	
}

// Funció que suma dos dígits entre sí fins que el resultat només és un dígit

function unaXifraEmp(valor)
{
	var vcond = valor.toString();

	while (valor >= '10')
	{
		var v1 = vcond.substr(0,1);
		var v2 = vcond.substr(1,1);
		v1 = parseInt(v1);
		v2 = parseInt(v2);
		valor = v1 + v2
		vcond = valor.toString();
	}
	return (valor);
}
 
 function TipusNifEmp(cadena){
     var PrimerCaracter;
     var UltimoCaracter;
     var primerNumerico;
     var ultimoNumerico; 
     var tipus;
     PrimerCaracter= cadena.substr(0,1);
     UltimoCaracter = cadena.substr(cadena.length-1,cadena.length);
      
	if (PrimerCaracter != 0 &&
		PrimerCaracter != 1 &&
		PrimerCaracter != 2 &&
		PrimerCaracter != 3 &&
		PrimerCaracter != 4 &&
		PrimerCaracter != 5 &&
		PrimerCaracter != 6 &&
		PrimerCaracter != 7 &&
		PrimerCaracter != 8 &&
		PrimerCaracter != 9 ){
		
		primerNumerico=false;
	}
	else{
		primerNumerico =true;
	}
	if (UltimoCaracter != 0 &&
		UltimoCaracter != 1 &&
		UltimoCaracter != 2 &&
		UltimoCaracter != 3 &&
		UltimoCaracter != 4 &&
		UltimoCaracter != 5 &&
		UltimoCaracter != 6 &&
		UltimoCaracter != 7 &&
		UltimoCaracter != 8 &&
		UltimoCaracter != 9 ){
		
		ultimoNumerico=false;
	}
	else{
		ultimoNumerico =true;
	}
		
	if (primerNumerico == false && ultimoNumerico == false){
		return 30; 
	}
	if (primerNumerico == false && ultimoNumerico == true){
		return 40;
	}
	if (primerNumerico == true && ultimoNumerico == false){
		return 60;
	}
	if (primerNumerico == true && ultimoNumerico == true){
		return 10;
	}
}