function retiraAcentosCidade(texto) {
    texto = texto.toUpperCase();
    texto = texto.replace(/[aáàâäãAÁÀÂÄÃ]/g,"a");
    texto = texto.replace(/[eéèêëEÉÈÊË]/g,"e");
    texto = texto.replace(/[iïîìíIÏÎÌÍ]/g,"i");
    texto = texto.replace(/[oóôöòõOÓÔÖÒ]/g,"o");
    texto = texto.replace(/[uûüùúUÛÜÙÚ]/g,"u");
    texto = texto.replace(/[cçCÇ]/g,"c");
    texto = texto.replace(/[-()]/g," ");
    texto = texto.replace(/[ ]/g,"");
    texto = texto.replace(/[nñNÑ]/g,"n");
    return texto;
}

function getDicAirDouble(){
    var aeroporto_cidade = {}
    aeroporto_cidade["CNF"] = "PLU";
    aeroporto_cidade["PLU"] = "CNF";
    aeroporto_cidade["CGH"] = "GRU";
    aeroporto_cidade["GRU"] = "CGH";
    aeroporto_cidade["GIG"] = "SDU";
    aeroporto_cidade["SDU"] = "GIG";
    return aeroporto_cidade;
}

function isAirDouble(airport){
	//verifica se a sigla do aeroporto e de uma cidade que possui mais de um aeroporto.
    airport = airport.toUpperCase().split(" E ");
    var aeroporto_cidade = getDicAirDouble()
    if(aeroporto_cidade[airport[0]] != undefined){
        return true;//tem dois aeroportos.
    }
    else{
        return false;//nao tem dois aeroportos.
    }
}

function existelocal(local, sigla) {
    local = local.toLowerCase()
    for(a=0;a<sigla.length;a++){
    if(sigla[a].toLowerCase() == local) {
     return 1
    }
    }
    return 0
}

function existecidade(local, cidade, sigla, interNM) {
    //pesquisa se a cidade existe no array de cidades. Se existir, adiciona o value correspondente no hidden responsavel pela pesquisa na posição do array de siglas.
    //Se nao existir, pesquisa no array de nome internacional, se esta identico, e adiciona o value do array da mesma forma que a logica acima.
    //Se cidade tem + de 1 aeroporto pesquisa nos dois.
    local = local.toLowerCase();
    for(a=0;a<cidade.length;a++){
        if(retiraAcentosCidade(unescape(interNM[a])).toLowerCase().indexOf(retiraAcentosCidade(local).toLowerCase()) != -1 && 
            (unescape(interNM[a]).toLowerCase().indexOf("(") == local.length || 
            (unescape(interNM[a]).toLowerCase().indexOf("(")) == local.length + 1)){
            //ve se o tamanho da string digitada corresponde ao tamanho de uma cidade cadastrada, toma por base o "(". Quando tem mais de um aeroporto, a referencia do "(" muda, dai a presenca da condicao deppois de ||
            if (!isAirDouble(sigla[a])){//Se nao tem dois aeroportos so pega a sigla
                return sigla[a];
            }
            else{
                if (unescape(interNM[a]).toLowerCase().indexOf("todos aeroportos") != -1){//Cidade tem mais de um aeroporto, deve receber como value a pesquisa pros dois.
                    return sigla[a];
                }            
            }
        }
        //condicao quando o valor e digitado exatamente igual o presente no select
        if(retiraAcentosCidade(unescape(interNM[a])).toLowerCase() == retiraAcentosCidade(local).toLowerCase()) {
            return sigla[a];
        }   
    }
    return 'sigla';
}

//Seta atributos para alterar data dinamico.
function setaDatas(vdata, dataida, datavolta){
    var months = {}
    months['01'] = 'jan';
    months['02'] = 'fev';
    months['03'] = 'mar';
    months['04'] = 'abr';
    months['05'] = 'mai';
    months['06'] = 'jun';
    months['07'] = 'jul';
    months['08'] = 'ago';
    months['09'] = 'set';
    months['10'] = 'out';
    months['11'] = 'nov';
    months['12'] = 'dez';
    var d1 = dataida.split("/");
    var d2 = datavolta.split("/");
    if (vdata){
        document.getElementById("dia_volta1").value = d2[0];
        document.getElementById("mes_volta1").value = months[d2[1]] + "/" + d2[2];
    }
    document.getElementById("dia_ida1").value = d1[0];
    document.getElementById("mes_ida1").value = months[d1[1]] + "/" + d1[2];
}

//Recebe uma string de data e ja retorna um objeto date
function criaObjetoData(data_string){
    var nova_data = data_string.split("/");
    var nova_data2 = new Date(nova_data[2], getMonthtratado(nova_data[1]), nova_data[0], 23, 59, 59);
    return nova_data2;
}

//Trata o mes uma vez que para inicializar um objeto date '0' é o mes de janeiro
function getMonthtratado(month)
{
    var mes = parseFloat(month);
    if (isNaN(mes)){
        mes = month[1];
    }
    if(mes-1 == 0)
    {
        return '00';
    }
    else
    {
        if((mes-1) < 10){
            return '0' + (mes-1).toString();
        }
        else{
            return (mes-1).toString();
        }
    }
    
}

//Validacao p novo componente de calendario
function formataData(data){
    if (data != '')
    {
        var ds = data.split("/");
        if (ds[0].length == 1)
        {
            ds[0] = '0' + ds[0];
        }
        if (ds[1].length == 1)
        {
            ds[1] = '0' + ds[1];
        }
        return (ds[0] + '/' + ds[1] + '/' + ds[2]);   
    }
    else
    {
        return('');
    }
}