var availDS = null;

var SEM_ORDEM = 0;          //
var ORDEM_CRESCENTE = 1;    // Tipos de ordenacao    
var ORDEM_DECRESCENTE = 2;  //

function formatTime(time)
{
    var hour = Math.floor(time);
    var minutes = Math.floor((time-hour)*60).toString();
    return ''+hour+':'+((minutes.length == 2)?minutes:"0"+minutes);
}

// Executa os filtros
var ThreadSettings = new Object();
ThreadSettings.queue = new Array();
ThreadSettings.delay = 1000;
ThreadSettings.launch = 10;

ThreadSettings.addThread = function(thread)
{
    var index = ThreadSettings.queue.length;
    ThreadSettings.queue[index] = thread;
    return index;
};

ThreadSettings.run = function()
{
    if(ThreadSettings.queue.length < 500)
    {
        // executa os processos
        for(var i=0; i < ThreadSettings.queue.length; i++)
        {
            // verifica se a thread não foi removida ou esta dormindo
            // alert(i+" >> "+ThreadSettings.queue[i].sleepTime);
            if(ThreadSettings.queue[i] != null)
            {
                if(ThreadSettings.queue[i].sleepTime <= 0)
                {
                    setTimeout("ThreadSettings.queue["+i+"].background()",ThreadSettings.launch);
                }
                else
                {
                    // alert(ThreadSettings.queue[i].sleepTime);
                    ThreadSettings.queue[i].sleepTime -= ThreadSettings.delay;
                }
            }
        }
    }
    else
    {
        // executa garbade collector
        var clearQueue = new Array();
        for(var i=0; i < ThreadSettings.queue.length; i++)
        {
            if(ThreadSettings.queue[i] != null)
            {
                clearQueue[i] = ThreadSettings.queue[i];
            }
        }
        ThreadSettings.queue[i] = clearQueue;
    }
    setTimeout("ThreadSettings.run()",ThreadSettings.delay);
};

ThreadSettings.remove = function(index)
{
    // remove a Thread
    ThreadSettings.queue[index] = null;
};

ThreadSettings.sleep = function(index,time)
{
    // sleep 
    ThreadSettings.queue[index].sleepTime = time;
};

ThreadSettings.run();

retValue = false;

Thread = function()
{
    this.runnning = false;
    this.retValue = false;
    
    this.index = 0;
    this.sleepTime = 0;
    this.start = function() 
    {
        this.index = ThreadSettings.addThread(this);
    };
    this.background = function()
    {
        if (this.runnning == false)
        {
            this.runnning = true;
            
            retValue = this.run();
        }
        
        if (retValue == true)
        {
            this.end();
        }
        else
        {
            this.start();
        }
    } ;
    this.run = function() {};
    this.end = function() 
    {
        this.destructor();ThreadSettings.remove(this.index);
    };
    this.destructor = function() {};
    this.sleep = function(time) 
    {
        ThreadSettings.sleep(this.index,time);
    };
};

function ExibeAguardeComThread(runFunction)
{
    //Exibe aguarde
    //AguardeOnResize();
    $('divLoadingInicio').className = 'showLoad';
    if(document.selection)
        document.selection.clear();  

    var thread = new Thread();
    thread.run = runFunction;
    thread.destructor = function(){ $('divLoadingInicio').className = 'hideLoad';  };
    thread.start();
}
// Loading for Controls
function ShowLoadingThread(runFunction)
{
    //Exibe aguarde
    $('divLoadingControl').show() ;

    if(document.selection)
        document.selection.clear();  

    var thread = new Thread();
    thread.run = runFunction;
    thread.destructor = function(){ $('divLoadingControl').hide() ; };
    thread.start();
}
function ShowFloading()
{
    $('divLoadingControl').show() ;
};

function HiddenFloading()
{
    $('divLoadingControl').hide() ;
};

//**********************

function ExibeAguarde()
{
    $('divConteudo').hide() ;
    $('divLoadingInicio').show() ;
};

function CancelaAguarde()
{
    $('divLoadingInicio').hide() ;
    $('divConteudo').show() ;
};

function AguardeOnResize()
{
    var scrollXY = getScrollXY();
    if(document.documentElement.clientHeight){
        $('divTextoLoading').style.height = (document.documentElement.clientHeight + scrollXY[1]) + "px";
        //$('divTrancaTela').style.height = (document.documentElement.clientHeight + scrollXY[1])  + "px";
        $('divBoxLoading').style.marginTop = ((document.documentElement.clientHeight * 0.45 ) + scrollXY[1]) + "px"; 
    }else{
        $('divTextoLoading').style.heigth = (document.body.clientHeight + scrollXY[1]) + "px";
        //$('divTrancaTela').style.heigth = (document.body.clientHeight + scrollXY[1]) + "px";
        $('divBoxLoading').style.marginTop = ((document.body.clientHeight * 0.45 ) + scrollXY[1]) + "px";
    }
};

function getScrollXY()
{
  var scrOfX = 0;
  var scrOfY = 0;
  if (typeof(window.pageYOffset) == 'number') 
  {
    // Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } 
  else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) 
  {
    // DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } 
  else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) 
  {
    // IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [scrOfX, scrOfY];
}

//Monta os Titulos
function montaTituloAvail(template,numeroTrecho)
{
    var ds = availDS ? availDS : masterPricerDS;
    
    System.Data = {};
    System.Data.DataTable = DataTable;
    itTrechos = ds.tables["Trechos"].getIterator('codTrecho');
    itTrechos.findByKey(numeroTrecho);
    itTrechos.moveFirst();
    template.CidadeOrigem = itTrechos.row.cidadeOrigem;
    template.CidadeDestino = itTrechos.row.cidadeDestino;
    template.Data = new Date().toString('dddd dd/MM/yyyy').capitalize();
    return template.getHtml();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                              VARIAVEIS E METODOS DO AEREO COMUNS A DIVERSAS PAGINAS
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var htOrdenacaoAirAvail = new Hashtable();  // estrutura para controle de ordenacao da disponibilidade
// comeco ordenado pelo preco rt crescente
htOrdenacaoAirAvail.add('cias', SEM_ORDEM);
htOrdenacaoAirAvail.add('escalas', SEM_ORDEM);
htOrdenacaoAirAvail.add('precoOW', SEM_ORDEM);
htOrdenacaoAirAvail.add('precoRT', SEM_ORDEM);
//filtros para Panamericano a mais
htOrdenacaoAirAvail.add('preco', SEM_ORDEM);
htOrdenacaoAirAvail.add('duracao', SEM_ORDEM);
htOrdenacaoAirAvail.add('dataSaida', SEM_ORDEM);
htOrdenacaoAirAvail.add('dataChegada', SEM_ORDEM);
//=====================================================================

///
///
///
function tiraOrdenacaoAvailDS(numTrecho)
{
    availDS.tables[getDataTableTrecho(numTrecho)].sort('codOpcaoDeVoo');
}



function getDataTableTrecho(numTrecho)
{
    if (numTrecho==1){
        return "OpcoesDeVoo";
    }else{
        return "OpcoesDeVooVolta";
    }
}

///
///
///
function reordenaAvailDS()
{
    var numeroOrdenacoes;
    var colunaOrdenacao;

    if(htOrdenacaoAirAvail.getValue('cias') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'cias';
    }
    else if(htOrdenacaoAirAvail.getValue('cias') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'cias';
    }
    else if(htOrdenacaoAirAvail.getValue('escalas') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'escalas';
    }
    else if(htOrdenacaoAirAvail.getValue('escalas') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'escalas';
    }
    else if(htOrdenacaoAirAvail.getValue('precoOW') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'precoOW';
    }
    else if(htOrdenacaoAirAvail.getValue('precoOW') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'precoOW';
    }
    else if(htOrdenacaoAirAvail.getValue('precoRT') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'precoRT';
    }
    else if(htOrdenacaoAirAvail.getValue('precoRT') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'precoRT';    
    }else if(htOrdenacaoAirAvail.getValue('preco') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'preco';
    }
    else if(htOrdenacaoAirAvail.getValue('preco') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'preco';
    }else if(htOrdenacaoAirAvail.getValue('duracao') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'duracao';
    }
    else if(htOrdenacaoAirAvail.getValue('duracao') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'duracao';
    }else if(htOrdenacaoAirAvail.getValue('dataSaida') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'dataSaida';
    }
    else if(htOrdenacaoAirAvail.getValue('dataSaida') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'dataSaida';
    }else if(htOrdenacaoAirAvail.getValue('dataChegada') == ORDEM_CRESCENTE)
    {
        numeroOrdenacoes = 1;
        colunaOrdenacao = 'dataChegada';
    }
    else if(htOrdenacaoAirAvail.getValue('dataChegada') == ORDEM_DECRESCENTE)
    {
        numeroOrdenacoes = 2;
        colunaOrdenacao = 'dataChegada';
    }
     
    for(var i=0; i<numeroOrdenacoes; i++)
        availDS.tables['OpcoesDeVoo'].sort(colunaOrdenacao);
}


/***********************************************************/
/**           Ordenação                                   **/
/***********************************************************/


var htOrdenacaoMP = new Hashtable(); // estrutura para controle de ordenacao da disponibilidade
var SEM_ORDEM = 0;          //
var ORDEM_CRESCENTE = 1;    // Tipos de ordenacao    
var ORDEM_DECRESCENTE = 2;   //

// comeco ordenado pelo preco rt crescente
htOrdenacaoMP.add('cias', SEM_ORDEM);
htOrdenacaoMP.add('tarifaADT', SEM_ORDEM);
htOrdenacaoMP.add('duracaoIda', SEM_ORDEM);
htOrdenacaoMP.add('dataSaidaIda', SEM_ORDEM);
htOrdenacaoMP.add('dataChegadaVolta', SEM_ORDEM);

function reordenaMasterPricerDS()
{
    var tipoOrdenacao;
    var colunaOrdenacao;

    if(htOrdenacaoMP.getValue('cias') == ORDEM_CRESCENTE)
    {
        tipoOrdenacao = false;
        colunaOrdenacao = 'cias';
    }
    else if(htOrdenacaoMP.getValue('cias') == ORDEM_DECRESCENTE)
    {
        tipoOrdenacao = true;
        colunaOrdenacao = 'cias';
    }
    else if(htOrdenacaoMP.getValue('tarifaADT') == ORDEM_CRESCENTE)
    {
        tipoOrdenacao = false;
        colunaOrdenacao = 'tarifaADT';
    }
    else if(htOrdenacaoMP.getValue('tarifaADT') == ORDEM_DECRESCENTE)
    {
        tipoOrdenacao = true;
        colunaOrdenacao = 'tarifaADT';
    }
    else if(htOrdenacaoMP.getValue('duracaoIda') == ORDEM_CRESCENTE)
    {
        tipoOrdenacao = false;
        colunaOrdenacao = 'duracaoIda';
    }
    else if(htOrdenacaoMP.getValue('duracaoIda') == ORDEM_DECRESCENTE)
    {
        tipoOrdenacao = true;
        colunaOrdenacao = 'duracaoIda';
    }
    else if(htOrdenacaoMP.getValue('dataSaidaIda') == ORDEM_CRESCENTE)
    {
        tipoOrdenacao = false;
        colunaOrdenacao = 'dataSaidaIda';
    }
    else if(htOrdenacaoMP.getValue('dataSaidaIda') == ORDEM_DECRESCENTE)
    {
        tipoOrdenacao = true;
        colunaOrdenacao = 'dataSaidaIda';    
    }else if(htOrdenacaoMP.getValue('dataChegadaVolta') == ORDEM_CRESCENTE)
    {
        tipoOrdenacao = false;
        colunaOrdenacao = 'dataChegadaVolta';
    }
    else if(htOrdenacaoMP.getValue('dataChegadaVolta') == ORDEM_DECRESCENTE)
    {
        tipoOrdenacao = true;
        colunaOrdenacao = 'dataChegadaVolta';
    }else
    {
        tipoOrdenacao = true;
        colunaOrdenacao = 'codOpcaoMP';
    }
     
    //for(var i=0; i<tipoOrdenacao; i++)
    masterPricerDS.tables['OpcoesDeVoo'].sort(colunaOrdenacao, tipoOrdenacao);
}


///
///
///
function tiraOrdenacaoMasterPricerDS()
{
    masterPricerDS.tables["OpcoesMP"].sort('codOpcaoMP');
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                          TARIFADA
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// pegaDadosTarifada
///     ds - DataSet do resultado da disponibilidade / MasterPricer
///     isMP - indica se o DataSet eh MasterPricer ou nao        
///
/// * TIRAR QUALQUER ORDENACAO DO DATASET ANTES DE CHAMAR ESTA FUNCAO E REORDENAR NOVAMENTE EM SEGUIDA *
///
function pegaDadosTarifada(isMP)
{
    var newDS;
    if(isMP)
        newDS = copyFilteredMasterPricerDS();
    else
        newDS = copyFilteredAvailDS();
        
     return newDS;
    
}


///
/// Internal
///
function copyFilteredAvailDS()
{
    var itOpcaoVoos;
    var itOpcaoVoos_Tarifas;
    var itTarifas;
    var itVoos;
    var itClasses;
    
    var newDS = new DataSet();
    newDS = availDS.clone();

    for(var i=0; i<availDS.tables["Trechos"].rows.length; i++)
    {
        // trechos
        newDS.tables["Trechos"].addRow(availDS.tables["Trechos"].rows[i]);
        
        var codTrecho = availDS.tables["Trechos"].rows[i].codTrecho;
        tiraOrdenacaoAvailDS(codTrecho);
        
        itOpcaoVoos = availDS.tables[getDataTableTrecho(codTrecho)].getIterator("escolha");
        
        itOpcaoVoos_Tarifas = availDS.tables["OpcoesDeVoos_Tarifas"].getIterator("codOpcaoDeVoo");
        itTarifas = availDS.tables["Tarifas"].getIterator("codTarifa");
        
        itVoos = availDS.tables["Voos"].getIterator("codOpcaoDeVoo");
        itClasses = availDS.tables["ClassesDeReserva"].getIterator("codVoo");
        
        itOpcaoVoos.findByKey(true);
        for( itOpcaoVoos.moveFirst(); itOpcaoVoos.hasNext(); itOpcaoVoos.moveNext() )
        {
            // opções de vôos
            newDS.tables[getDataTableTrecho(codTrecho)].addRow(itOpcaoVoos.row);

            // tarifas
            itOpcaoVoos_Tarifas.findByKey( itOpcaoVoos.row.codOpcaoDeVoo );
            for( itOpcaoVoos_Tarifas.moveFirst(); itOpcaoVoos_Tarifas.hasNext(); itOpcaoVoos_Tarifas.moveNext() )
            {
                newDS.tables["OpcoesDeVoos_Tarifas"].addRow(itOpcaoVoos_Tarifas.row);    
                
                itTarifas.findByKey( itOpcaoVoos_Tarifas.row.codTarifa );
                for( itTarifas.moveFirst(); itTarifas.hasNext(); itTarifas.moveNext() )
                {
                    newDS.tables["Tarifas"].addRow(itTarifas.row);    
                }
            }
            
            // vôos
            itVoos.findByKey( itOpcaoVoos.row.codOpcaoDeVoo );
            for( itVoos.moveFirst(); itVoos.hasNext(); itVoos.moveNext() )
            {
                newDS.tables["Voos"].addRow(itVoos.row);
                
                // classes de vôos
                itClasses.findByKey( itVoos.row.codVoo );
                for( itClasses.moveFirst(); itClasses.hasNext(); itClasses.moveNext() )
                {
                    if(itClasses.row.escolha)
                    {
                        newDS.tables["ClassesDeReserva"].addRow(itClasses.row);
                        break;
                    }
                }
            }
        }
        itVoos.dispose();
        itClasses.dispose();
        itTarifas.dispose();
        itOpcaoVoos_Tarifas.dispose();
        itOpcaoVoos.dispose();

        reordenaAvailDS();
    }
    
    return newDS;
}


///
/// Internal
///
function copyFilteredMasterPricerDS()
{
    var itOpcaoVoos;
    var itOpcaoMP;
    var itOpcaoMPVoo;
    var itVoos;
    var itClasses;
    var newDS = new DataSet();
    newDS = masterPricerDS.clone();

    tiraOrdenacaoMasterPricerDS();

    itOpcaoMP = masterPricerDS.tables["OpcoesMP"].getIterator("escolha");
    itOpcaoMPVoo = masterPricerDS.tables["OpcoesMP_OpcoesDeVoo"].getIterator("codOpcaoMP");
    itOpcaoVoos = masterPricerDS.tables["OpcoesDeVoo"].getIterator("codOpcaoDeVoo");
    itVoos = masterPricerDS.tables["Voos"].getIterator("codOpcaoDeVoo");
    itClasses = masterPricerDS.tables["ClassesDeReserva"].getIterator("codVoo");
    
    // trechos
    for(var i=0; i<masterPricerDS.tables["Trechos"].rows.length; i++)
    {
        newDS.tables["Trechos"].addRow(masterPricerDS.tables["Trechos"].rows[i]);
    }
    
    itOpcaoMP.findByKey(true);
    for( itOpcaoMP.moveFirst(); itOpcaoMP.hasNext(); itOpcaoMP.moveNext() )
    {
        newDS.tables["OpcoesMP"].addRow(itOpcaoMP.row);
        
        itOpcaoMPVoo.findByKey(itOpcaoMP.row.codOpcaoMP);
        for( itOpcaoMPVoo.moveFirst(); itOpcaoMPVoo.hasNext(); itOpcaoMPVoo.moveNext() )
        {
            newDS.tables["OpcoesMP_OpcoesDeVoo"].addRow(itOpcaoMPVoo.row);
            
            itOpcaoVoos.findByKey(itOpcaoMPVoo.row.codOpcaoDeVoo);
            newDS.tables["OpcoesDeVoo"].addRow(itOpcaoVoos.row);
            
            itVoos.findByKey(itOpcaoVoos.row.codOpcaoDeVoo);
            for( itVoos.moveFirst(); itVoos.hasNext(); itVoos.moveNext() )
            {
                newDS.tables["Voos"].addRow(itVoos.row);

                itClasses.findByKey( itVoos.row.codVoo );

                newDS.tables["ClassesDeReserva"].addRow(itClasses.row);
            }
        }    
    }

    itClasses.dispose();
    itOpcaoMPVoo.dispose();    
    itVoos.dispose();
    itOpcaoVoos.dispose();
    itOpcaoMP.dispose();

    reordenaMasterPricerDS();

    return newDS;
};

//Implementacao de sort por duas ou mais coluas
System.Data.DataTable.prototype.sortByColunas = function()
{
    var colunas = arguments;
    var i, j, index, indexobj;
    if(this.__isSort && this.__ultColuna == colunas[0]) {
        for(c=colunas.length-1; c>=0;c--)
        {
            for (i = 1; i < this.rows.length; ++i) {
	            index = this.rows[i];
	            for (j = i; j > 0 && this.rows[j-1][colunas[c]] < index[colunas[c]]; j--)
		            this.rows[j] = this.rows[j-1];
	            this.rows[j] = index;
             }
         }
        this.__isSort=false;
    } else {
        for(c=colunas.length-1; c>=0;c--)
        {
            for (i = 1; i < this.rows.length; ++i) {
	            index = this.rows[i];
	            for (j = i; j > 0 && this.rows[j-1][colunas[c]] > index[colunas[c]]; j--)
		            this.rows[j] = this.rows[j-1];
	            this.rows[j] = index;
             }
         }
        this.__isSort=true;
    }  
    this.__ultColuna = colunas[0];
};

renderLogin = function(tipoCadastro)
{
    var tLogin = new Template('Login');
                     
    // Carrega o html com os campos para Logar ("Sou Cadastrado")
    if (tipoCadastro == 'soucadastrado')
    {
        tLogin.OpcoesLogin.FormLogin = tLogin.SouCadastrado.getHtml();
    // Carrega o html com os campos para Cadastrar ("Não Sou Cadastrado")     
    }
    else
    {
        tLogin.OpcoesLogin.FormLogin = tLogin.NaoSouCadastrado.getHtml();
    };
    // Carrega as opções de Login ("Sou Cadastrado" ou "Não Sou Cadastrado") 
    $('divLoginSite').innerHTML = tLogin.OpcoesLogin.getHtml();
 
    if (tipoCadastro == 'naosoucadastrado')
    {
        // Marca o radio de "NaoSouCadastrado"
        //$('logType_2').checked = true ;   
        document.getElementsByName('logType')[1].checked = true;
    }
    else
    {
        // Marca o radio de "SouCadastrado"
        //$('logType_1').checked = true ;   
        document.getElementsByName('logType')[0].checked = true;
    };
	switch ($('tipoProduto').value)
	{
	case 'Hotel':  
        $('AlterarProduto').innerHTML = '<img class="rlcb_btns" src="../image/n2008/rsv/rsv_btn_alt_voo.gif" alt="Alterar Vôo"/>';//'Alterar<br/>Hotel' ;
        $('ComprarProduto').innerHTML = '<img src="../image/n2008/rsv/rsv_btn_comprar_on.gif" class="rlcb_btns" alt="Comprar"></a>';
		break;
	case 'Pacote':
        $('AlterarProduto').innerHTML = '<img class="rlcb_btns" src="../image/n2008/rsv/rsv_btn_alt_voo.gif" alt="Alterar Vôo"/>';//'Alterar<br/>Pacote' ;
		$('ComprarProduto').innerHTML = '<img src="../image/n2008/rsv/rsv_btn_comprar_on.gif" class="rlcb_btns" alt="Comprar"></a>';
		break;
	default:
        $('AlterarProduto').innerHTML = '<img class="rlcb_btns" src="image/n2008/rsv/rsv_btn_alt_voo.gif" alt="Alterar Vôo"/>';//'Alterar<br/>Vôo' ;
        $('ComprarProduto').innerHTML = '<img src="image/n2008/rsv/rsv_btn_comprar_on.gif" class="rlcb_btns" alt="Comprar"></a>';
	};

    if ( $('LinkComprar') )
    {
        if ($('tipoProduto').value == 'Pacote')
        {
            $('LinkComprar').href = 'javascript: void(0);';
        };    
    };
};

function RetornaMoeda(moeda)
{
    switch(moeda)
    {
        case 'BRL':
            return 'R$';
            break;
        case 'USD':   
            return 'US$';
            break;
    }
};

function VerifNumeros(Campo,e)
{
	var tecla=new Number();
				
	if(window.event) 
	{
		tecla = e.keyCode; 
	}
	else if(e.which) 
	{
		tecla = e.which;
	}
	else 
	{
		return true;
	}
	if ((tecla == 8) || (tecla == 9) || (tecla == 46)||(tecla >= 96)) 
	{
		return true;
	}
	if((tecla < 48) || (tecla > 57))
	{
		return false;
	}
	return true;
};
function DisplayCodSecurity()
{
    $('idSecurityCard').style.display = "block";
};
function DisplayOffCodSecurity()
{
    $('idSecurityCard').style.display = "none";
};