﻿var letras="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var numeros="0123456789";
var nuevasletras="BCDFGHJKLPRSTVWXYZ";


function ValidaPatente(objeto)
{	var guion = -1
	var patente = objeto.value.toUpperCase()
 	while (patente.charAt(0) == ' ') 			{	patente = patente.substr(1, patente.length - 1)}
	while (patente.charAt(patente.length - 1) == ' ') 	{	patente = patente.substr(0, patente.length - 1)}
		
	if (patente=="") {	return true}
		
	for (i = 0; i <= patente.length - 1; i++) 
	{	if (patente.charAt(i) == "-")
		{	if ((i!=2) && (i!=4))
			{	alert("Patente: "+ patente  +" no valida."); objeto.value =""; objeto.focus(); return false}

			if (guion != -1)
			{	alert("El formato de la patente: " + patente  +" no es valido, solo un guión es permitido"); objeto.value =""; objeto.focus(); return false}
			guion = i
		}
	}
	
	if (guion == -1)
	{	if (patente.length != 6) 
		{	alert("Patente: " + patente  + " no es valida, largo no corresponde"); objeto.value =""; objeto.focus(); return false}
	}
	else
	{	if (patente.length != 7) 
		{	alert("Patente: " + patente  + " no es valida, largo no corresponde"); objeto.value =""; objeto.focus(); return false}
		patente = patente.substring(0,guion) + patente.substring(guion+1, patente.length)		
	}

	if  (isAlphabetic(patente.substring(0, 4)))
	{	if  (!isNumeric(patente.substring(4, 6))) 	
		{	alert("La parte numérica de la Patente: " + patente  + " no es valida"); objeto.value =""; objeto.focus(); return false}
		else
		{	if  (!isNuevasLetras(patente.substring(0, 4))) 	
			{	alert("La parte alfabetica de la patente: " + patente  + " no es valida, letras no permitidas"); objeto.value =""; objeto.focus(); return false}
			else
			{	if  (patente.substring(4, 6)=="00")
				{	alert("La parte númerica de la patente: " + patente  + " no es valida, debe ser distinto de ceros"); objeto.value =""; objeto.focus(); return false}
				objeto.value = patente.substring(0,4) + "-" + patente.substring(4,6)
			}	
		}
	}
	else
	{	if (isAlphabetic(patente.substr(0, 2)))
		{	if  (!isNumeric(patente.substr(2, 6)))
			{	alert("La parte numérica de la Patente: " + patente  + " no es valida"); objeto.value =""; objeto.focus(); return false}
			else
			{	if  ((patente.substring(2, 6)=="0000") && (patente.substr(0, 2) != "ET"))
				{	alert("La parte númerica de la patente: " + patente  + " no es valida, debe ser distinto de ceros"); objeto.value =""; objeto.focus(); return false}

				objeto.value = patente.substring(0,2) + "-" + patente.substring(2,6)
			}
		}
		else
		{	alert("La parte alfabetica de la Patente: " + patente  + " no es valida"); objeto.value =""; objeto.focus(); return false}	
	}     
	return true
}
function ValidaPatente2(objeto)
{	var guion = -1
	var patente = objeto.value.toUpperCase()
 	while (patente.charAt(0) == ' ') 			{	patente = patente.substr(1, patente.length - 1)}
	while (patente.charAt(patente.length - 1) == ' ') 	{	patente = patente.substr(0, patente.length - 1)}
		
	if (patente=="") {	return true}
		
	for (i = 0; i <= patente.length - 1; i++) 
	{	if (patente.charAt(i) == "-")
		{	if ((i!=2) && (i!=4))
			{	alert("Patente: "+ patente  +" no valida."); objeto.value =""; return false}

			if (guion != -1)
			{	alert("El formato de la patente: " + patente  +" no es valido, solo un guión es permitido"); objeto.value =""; return false}
			guion = i
		}
	}
	
	if (guion == -1)
	{	if (patente.length != 6) 
		{	alert("Patente: " + patente  + " no es valida, largo no corresponde"); objeto.value =""; return false}
	}
	else
	{	if (patente.length != 7) 
		{	alert("Patente: " + patente  + " no es valida, largo no corresponde"); objeto.value =""; return false}
		patente = patente.substring(0,guion) + patente.substring(guion+1, patente.length)		
	}

	if  (isAlphabetic(patente.substring(0, 4)))
	{	if  (!isNumeric(patente.substring(4, 6))) 	
		{	alert("La parte numérica de la Patente: " + patente  + " no es valida"); objeto.value =""; return false}
		else
		{	if  (!isNuevasLetras(patente.substring(0, 4))) 	
			{	alert("La parte alfabetica de la patente: " + patente  + " no es valida, letras no permitidas"); objeto.value =""; return false}
			else
			{	if  (patente.substring(4, 6)=="00")
				{	alert("La parte númerica de la patente: " + patente  + " no es valida, debe ser distinto de ceros"); objeto.value =""; return false}
				objeto.value = patente.substring(0,4) + "-" + patente.substring(4,6)
			}	
		}
	}
	else
	{	if (isAlphabetic(patente.substr(0, 2)))
		{	if  (!isNumeric(patente.substr(2, 6)))
			{	alert("La parte numérica de la Patente: " + patente  + " no es valida"); objeto.value =""; return false}
			else
			{	if  (patente.substring(2, 6)=="0000")
				{	alert("La parte númerica de la patente: " + patente  + " no es valida, debe ser distinto de ceros"); objeto.value =""; return false}

				objeto.value = patente.substring(0,2) + "-" + patente.substring(2,6)
			}
		}
		else
		{	alert("La parte alfabetica de la Patente: " + patente  + " no es valida"); objeto.value =""; return false}	
	}     

	return true
}



function esletra(car)
{ return letras.indexOf(car)>=0;}

function esnuevaletra(car)
{ return nuevasletras.indexOf(car)>=0;}

function esnumero(car)
{ return numeros.indexOf(car)>=0;}


function isAlphabetic (s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   if (!esletra(s.charAt(i)))
        return false;
    }
    return true;
}

function isNumeric(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   if (!esnumero(s.charAt(i)))
        return false;
    }
    return true;
}

function isNuevasLetras (s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   if (!esnuevaletra(s.charAt(i)))
        return false;
    }
    return true;
}

