/*
 * Nome:        ValidaPlaca
 * Autor:       7COMm/Fábrica de softwares - Celso Kitamura
 * Data:        09/02/2004
 * Descrição:   Verifica se string é uma placa de automóvel válida
 * Entrada:     strPlaca - string que será verificada
 * Saída:
 *   TRUE  - se string é uma placa válida
 *   FALSE - se string é uma placa inválida
 *
 * Observação:
 *              1.) depende de numero.js e string.js
 *
 * Exemplo:     ValidaPlaca("ASDA234") ==> False
 *              ValidaPlaca("ASD1234") ==> True
 *              ValidaPlaca("asd1234") ==> True
 *              ValidaPlaca("AS01234") ==> False
 */
 function ValidaPlaca(strPlaca){
    //verifica se contém menos que 7 caracteres
    if(strPlaca.length < 7){
        return false;
    }
    //verifica se contém mais que 7 caracteres
    if(strPlaca.length > 7){
        return false;
    }
    //verifica se as 3 primeiras posicoes são caracteres
    if(!IsAlfa(strPlaca.substring(0,3))){
        return false;
    }
    //verifica se as 4 ultimas posicoes são números
    if(!IsNumber(strPlaca.substring(3))){
        return false;
    }
    return true;
}

/*****************************************************************************************************
' Nome........: VerificaChassis
' Descricao...: Identifica se Chassis é válido, se á da marca Citroën, identifica modelo do veículo 
'               e ano de fabricação
' Paramentros.: strChassis: Número do Chassis
' Retorno.....: 1 - Chassis inválido.
'               2 - Veículo não pertence a marca Citroën 
'               strRetorno - Retorno da função separados por pipe:
'                   1º param. - Família do veículo
'                   2º param. - Procedência (Nacional ou Estrangeiro)
'                   3º param. - Ano de Fabricação
' Funções Uti.: Trim(), sMid().  
' Autor.......: [00] Data: 09/02/2004   Autor: Anderson Agustinho - Fábrica de Softwares
******************************************************************************************************/
function VerificaChassis(strChassis){                            
var strDigito;   //Digitos para verificação          
var strRetorno;  //Concatena Retorno da função com Pipes("||")
    
    //Se Chassis não preenchido 
    if(Trim(strChassis) == ""){
        return 1;
    }
        
    //Se Chassis informado tiver menos que 17 posições    
    if(Trim(strChassis).length < 17){
        return 1;
    } 
    
    //Transforma Chassis em Maiúsculo
    strChassis = strChassis.toUpperCase();
           
    //Verifica se 3ª posição é igual a 7 ou 5 ou C, senão for, veículo não é Citroën
    strDigito = sMid(Trim(strChassis),3,1);
    if((strDigito != "7") && (strDigito != "5") && (strDigito != "C")){
        return 2;
    } 
    
    //Inicializa variáveis locais
    strRetorno = "";
    
    //Identifica a família do veículo
    //Com um dígito
    strDigito = sMid(Trim(strChassis),4,1);
    switch(strDigito){
        case "A":
            strRetorno = "Evasion||";
            break;
        case "S":
            strRetorno = "Saxo||";
            break;
        case "N":
            strRetorno = "Xsara||";
            break;
        case "C":
            strRetorno = "Xsara Picasso||";
            break;
        case "X":
            strRetorno = "Xantia||";
            break;
        case "M":
            strRetorno = "Berlingo||";
            break;
        case "D":
            strRetorno = "C5||";
            break;
        case "F":
            strRetorno = "C3||";
            break;
        case "Y":
            strRetorno = "XM||";
            break;                    
    }
    //Com dois dígitos
    strDigito = sMid(Trim(strChassis),4,2);
    switch(strDigito){
        case "N2":
            strRetorno = "ZX||";
            break;
        case "23":
            strRetorno = "Jumper||";
            break;
    }
    
    //Verifica procedência
    strDigito = sMid(Trim(strChassis),2,1);
    if(strDigito == "3"){
        strRetorno += "N||";    //Veículo nacional
    } else {
        strRetorno += "I||";    //Veículo importado
    }
    
    //Verifica ano de fabricação do veículo
    strDigito = sMid(Trim(strChassis),10,1);
    switch(strDigito){
        case "L":
            strRetorno += "1990";
            break;
        case "M":
            strRetorno += "1991";
            break;
        case "N":
            strRetorno += "1992";
            break;
        case "P":
            strRetorno += "1993";
            break;
        case "R":
            strRetorno += "1994";
            break;
        case "S":
            strRetorno += "1995";
            break;
        case "T":
            strRetorno += "1996";
            break;
        case "V":
            strRetorno += "1997";
            break;
        case "W":
            strRetorno += "1998";
            break;
        case "X":
            strRetorno += "1999";
            break;
        case "Y":
            strRetorno += "2000";
            break;
        case "1":
            strRetorno += "2001";
            break;
        case "2":
            strRetorno += "2002";
            break;            
        case "3":
            strRetorno += "2003";
            break;                
        case "4":
            strRetorno += "2004";
            break;         
        case "5":
            strRetorno += "2005";
            break;                               
        case "6":
            strRetorno += "2006";
            break;                                   
        case "7":
            strRetorno += "2007";
            break;
        case "8":
            strRetorno += "2008";
            break;            
        case "9":
            strRetorno += "2009";
            break;              
        case "A":
            strRetorno += "2010";
            break;                                                                                                 
    }
    
    return strRetorno;       
}

function sMid(sExpressao,iNumeros,iTamanho){
  var aux = new String()
  if ((sExpressao.length >= iNumeros) && (iNumeros >=0) && (iTamanho > 0)){
    iNumeros--
    aux = sExpressao.substring(iNumeros,iNumeros+iTamanho)
  }
    return aux
}

function Trim( strDado ){
    return strDado.replace (/^\s+/,'').replace (/\s+$/,'');
}