//Valida los distintos formatos de Matrícula
function ValidaMatricula(strRegNr) {
	
	//Declaración de variables
	var blnMatch;
	
	//Matrículas nuevas (NNNN-XXX)
	blnMatch=/^\d{4}[B-D,F-H,J-N,P,R-t,V-Z]{3}$/.test(strRegNr);
	
	//Matrículas ordinarias (XX-NNNN-XX)
	if (!blnMatch){
		blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GI|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OU|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{4}[A-N,O-P,R-Z]{1,2}$/.test(strRegNr);
	}
	
	//Matrículas antiguas (XX-NNNNNN y XX-NNNNN)
	if (!blnMatch){
		blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GE|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OR|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{5,6}$/.test(strRegNr);
	}
	
	//Vehículos eléctricos (C-NNNN-XXX)
	if (!blnMatch){
		blnMatch=/^C\d{4}[B-D,F-H,J-N,P,R-T,V-Z]{3}$/.test(strRegNr);
	}
	
	//Todo bien
	return (blnMatch);

}

//Valida los distintos formatos de Matrícula
function ValidaMatriculaPT(strRegNr) {
	
	var strAux = '';
	
	//retiramos os - para validar;
	strAux = Replace(strRegNr,"-","");
	strAux = Replace(strAux,"-","");
	
	//Declaración de variables
	var blnMatch;
	
	//Matrículas tipo XX-XX-AA
	blnMatch=/^\d{4}[A-Z]{2}$/.test(strAux);
	if (!blnMatch)
	{	//Matrículas tipo XX-AA-XX
		blnMatch=/^\d{2}[A-Z]{2}\d{2}$/.test(strAux);
		if (!blnMatch)
		{	//Matrículas tipo AA-XX-XX
			blnMatch=/^[A-Z]{2}\d{4}$/.test(strAux);
		}
	}
	
	return (blnMatch);

}


//Valida los distintos formatos de Matrícula para camiones
//20070507 - Javier Matellanes - Se cambia las validaciones de los vehiculos no industriales, son igual que los turismos
function ValidaMatriculaCamion(strRegNr, tipo) {
	
	//Declaración de variables
	var blnMatch;
	
	if (tipo=='500') {
		//Vehiculo industrial. Matrículas nuevas (E-NNNN-XXX)
		var blnMatch =/^E\d{4}[B-D,F-H,J-N,P,R-t,V-Z]{3}$/.test(strRegNr);
		
		//Matriculas antiguas (XX-NNNNNN-VE)
		if (!blnMatch) {
			blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GI|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OU|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{6}VE$/.test(strRegNr);
		}
	
	} else {
		
		//Resto de vehículos (Furgón, Camión, Cabeza Tractora)
		
		//Matrículas nuevas
		blnMatch=/^\d{4}[B-D,F-H,J-N,P,R-t,V-Z]{3}$/.test(strRegNr);
		
		//Matrículas ordinarias (XX-NNNN-XX)
		if (!blnMatch){
			blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GI|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OU|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{4}[A-N,O-P,R-Z]{1,2}$/.test(strRegNr);
		}
		
		//Matrículas antiguas (XX-NNNNNN y XX-NNNNN)
		if (!blnMatch){
			blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GE|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OR|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{5,6}$/.test(strRegNr);
		}
	}
	

	//Todo bien
	return (blnMatch);

}

//Valida los distintos formatos de Matrícula para camiones
//El parámetro de la matrícula tiene que venir en mayúscula
function ValidaMatriculaRemolque(strRegNr) {
	
	//Declaración de variables
	var blnMatch;
	
	//Matrículas nuevas (R-NNNN-XXX)
	blnMatch=/^R\d{4}[B-D,F-H,J-N,P,R-t,V-Z]{3}$/.test(strRegNr);
	
	//Matriculas antiguas (XX-NNNNNN-R)
	if (!blnMatch) {
		blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GI|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OU|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{6}R$/.test(strRegNr);
	}
	
	
	//Todo bien
	return (blnMatch);

}

//Valida los distintos formatos de Matrícula para turismos
//El parámetro de la matrícula tiene que venir en mayúscula
function ValidaMatriculaRemolqueTurismoPT(strRegNr) {
	
	//Declaración de variables
	var blnMatch;
	
	//Matrículas nuevas (P-NNNNNN)
	blnMatch=/^\D\w{1,2}\d{1,6}$/.test(strRegNr);
	
	
	//Todo bien
	return (blnMatch);

}

//Valida los distintos formatos de Matrícula para motos
//El parámetro de la matrícula deberá ir en Mayúsculas.
function ValidaMatriculaMoto(strRegNr, tipo){
	
	//Declaración de variables
	var blnMatch;
	
	if (tipo == '240') {	//Si es una MOTOCICLETA
	
		//Matrículas nuevas (NNNN-XXX)
		blnMatch=/^\d{4}[B-D,F-H,J-N,P,R-t,V-Z]{3}$/.test(strRegNr);
		
		//Matrículas ordinarias (XX-NNNN-XX)
		if (!blnMatch){
			blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GI|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OU|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{4}[A-N,O-P,R-Z]{1,2}$/.test(strRegNr);
		}	
	
	} else if (tipo == '280') {	//Si es un CICLOMOTOR
		
		//Matrículas nuevas (C-NNNN-XXX)
		blnMatch=/^C\d{4}[B-D,F-H,J-N,P,R-t,V-Z]{3}$/.test(strRegNr);
		
	}

	//Todo bien
	return (blnMatch);

}


//Valida los distintos formatos de Matrícula para vehículos Agrícolas (Válido para Tractor, Cosechadora, Motocultor)
//El parámetro de la matrícula deberá ir en Mayúsculas
function ValidaMatriculaAgricola (strRegNr) {
	
	//Declaración de variables
	var blnMatch;
	
	
	//Matrículas nuevas (E-NNNN-XXX). Donde E es un valor fijo.
	blnMatch=/^E\d{4}[B-D,F-H,J-N,P,R-t,V-Z]{3}$/.test(strRegNr);
	
	//Matrículas ordinarias (XX-NNNNNN-VE). Donde VE es un valor fijo
	if (!blnMatch) {
		blnMatch=/^(A|AB|AL|AV|B|BA|BI|BU|C|CA|CC|CE|CO|CR|CS|CU|GC|GI|GR|GU|H|HU|IB|J|L|LE|LO|LR|LU|M|MA|ML|MU|NA|O|OU|P|PM|PO|S|SA|SE|SG|SO|SS|T|TE|TF|TO|V|VA|VI|Z|ZA)\d{6}VE$/.test(strRegNr);
	}
	
	//Devolvemos el resultado
	return (blnMatch);

}
