
	//Função para ocultar a linha de retorno quando escolhido pelo usuario
	function displayRow(){
		var row = document.getElementById("volta");
		if (row.style.display == '')  row.style.display = 'none';
			else row.style.display = '';
	}


	//Função de validação dos campos
	function validar(){
		
		var origin = 	document.compraonline.txt_desde.value;
		var destiny = 	document.compraonline.txt_hasta.value;
		var delivery = 	document.compraonline.delivery.value;
		var arrival = 	document.compraonline.arrival.value;
		var cod = 		document.compraonline.cod.value;
		
		if ( document.compraonline.tripType[1].checked ){
			if ( delivery == "" )
			{
				alert( "Favor informar a data da viagem." );
				document.getElementById("delivery").focus();
			} else if ( !VerificaData (delivery) )
			{
				 alert( "Data de ida invalida!" );
				 document.getElementById("delivery").value = '';
				 document.getElementById("delivery").focus();
			} else if ( !maximoTresMeses( delivery ))
			{
				alert("Horarios disponiveis somente para 2 meses antes da viagem!");
				document.getElementById("delivery").value = '';
				document.getElementById("delivery").focus();
			} else 
			{
				var tmp = "http://www.rodoviariaonline.com.br/index.php?option=com_destinos&view=insidepre&Itemid=70&origin=" + origin + "&destiny=" + destiny + "&tripType=1" + "&delivery=" + delivery + "&a=" + cod;
				document.compraonline.action = tmp;
				document.compraonline.submit();	
			}
		} else if( document.compraonline.tripType[0].checked ) 
		{
			if (( document.compraonline.delivery.value == "" )&( document.compraonline.arrival.value == "" ))
			{
				alert( "Favor informar as datas de partida e de retorno." );
				document.getElementById("delivery").focus();
			} else if ( document.compraonline.delivery.value == "" )
			{
				alert( "Favor informar a data de partida." );
				document.getElementById("delivery").focus();
			} else if ( document.compraonline.arrival.value == "" )
			{
				alert( "Favor informar a data de retorno." );
				document.getElementById("arrival").focus();
			} else if ( !VerificaData (delivery) )
			{
				alert( "Data de ida invalida!" );
				document.getElementById("delivery").value = '';
				document.getElementById("delivery").focus();
			} else if ( !VerificaData (arrival) )
			{
				alert( "Data de retorno invalida!" );
				document.getElementById("arrival").value = '';
				document.getElementById("arrival").focus();
			} else if ( !comparaIdaVolta( delivery, arrival ) )
			{
				alert( "A data de IDA deve ser menor que a data de VOLTA!" );
				document.getElementById("delivery").value = '';
				document.getElementById("arrival").value = '';
				document.getElementById("delivery").focus();
			} else if ( !maximoTresMeses( delivery ))
			{
				alert("Horarios disponiveis somente para 2 meses antes da viagem! Altere a data de IDA.");
				document.getElementById("delivery").value = '';
				document.getElementById("delivery").focus();
			} else if ( !maximoTresMeses( arrival ))
			{
				alert("Horarios disponiveis somente para 2 meses antes da viagem! Altere a data de RETORNO.");
				document.getElementById("arrival").value = '';
				document.getElementById("arrival").focus();
			} else 
			{
				var tmp = "http://www.rodoviariaonline.com.br/index.php?option=com_destinos&view=insidepre&Itemid=70&origin=" + origin + "&destiny=" + destiny + "&tripType=2" + "&delivery=" + delivery + "&arrival=" + arrival + "&a=" + cod;
				document.compraonline.action = tmp;
				document.compraonline.submit();	
			}
		}
	}

	
//#####################
//# VALIDAÇÃO DA DATA #
//#####################
function VerificaData(cData) 
{
        var data = cData; 
        var tam = data.length;
		var agora = new Date();
		
		//Verifica se é vazia
		if (data == "") return false;
		
		//Verifica se o tamanho da data é maior que 10 digitos
		if (tam != 10) return false;
		
		//Quebra a data passada em dia, mes e ano
        var dia = data.substr(0,2);
        var mes = data.substr (3,2);
        var ano = data.substr (6,4);
		
		//Quebra o dia de agora em dia, mes e ano
		var Hdia = agora.getDate();
        var Hmes = agora.getMonth() + 1;
        var Hano = agora.getFullYear();
		
		var bisexto = eval (ano%4);
		
        if (ano < Hano) return false;
		if ((ano == Hano) && (mes < Hmes)) return false;
		if ((mes == Hmes) && (dia < Hdia)) return false;

        switch (mes) 
		{
			case '01':
				if  (dia <= 31) 
				return (true);
				break;
			case '02':
				if (bisexto != 0)
				{
					if (dia <= 28) return (true);
				} else
				{
					if (dia <= 29) return (true);
				}
				break;
			case '03':
				if  (dia <= 31) 
				return (true);
				break;
			case '04':
				if  (dia <= 30) 
				return (true);
				break;
			case '05':
				if  (dia <= 31) 
				return (true);
				break;
			case '06':
				if  (dia <= 30) 
				return (true);
				break;
			case '07':
				if  (dia <= 31) 
				return (true);
				break;
			case '08':
				if  (dia <= 31) 
				return (true);
				break;
			case '09':
				if  (dia <= 30) 
				return (true);
				break;
			case '10':
				if  (dia <= 31) 
				return (true);
				break;
			case '11':
				if  (dia <= 30) 
				return (true);
				break;
			case '12':
				if  (dia <= 31) 
				return (true);
				break;
			default:
				return false;
        } 
        return false; 
}

//################################
//# COMPARA AS DATAS IDA E VOLTA #
//################################
function comparaIdaVolta( delivery, arrival )
{
	var ida =  	delivery;
	var volta = arrival;
	
	var iDia = ida.substr(0,2);
	var iMes = ida.substr(3,2);
	var iAno = ida.substr(6,4);
	var vDia = volta.substr(0,2);
	var vMes = volta.substr(3,2);
	var vAno = volta.substr(6,4);
	
	if (iAno > vAno) return (false);
	if ((iAno == vAno) && (iMes > vMes)) return (false);
	if ((iAno == vAno) && (iMes == vMes) && (iDia > vDia)) return (false);
	
	return (true);
	
}

//############################
//# VALIDA MAXIMO TRES MESES #
//############################
function maximoTresMeses( cData )
{
	var data = cData;
	var agora = new Date();
	
	//quebra a data em dia, mes e ano
	var dia = data.substr(0,2);
	var mes = data.substr(3,2);
	var ano = data.substr(6,4);

	//Quebra o dia de agora em dia, mes e ano
	var Hdia = agora.getDate();
    var Hmes = agora.getMonth() + 1;
    var Hano = agora.getFullYear();	
	
	if (Hano == ano) 
	{
		switch(mes - Hmes)
		{
			case 0:
				//alert("Mesmo mes!");
				return (true);
				break;
			case 1:
				//alert("Proximo mes!");
				return (true);
				break;
			case 2:
				//alert("Segundo mes!");
				if (dia < Hdia) return (true);
					else return (false);
				break;
			default:
				//alert("Mais que 2 meses!");
				return (false);
				break;
		}
	}
	return (false);
}

//####################################
//# VERIFICA O NUMERO DE DIAS DO MES #
//####################################
function diasDoMes(mes, ano)
{
	var iMes = mes;
	var numDias = 0;
	var resto = 0;
	
	if ((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) numDias = 31;
	if ((mes==4) || (mes==6) || (mes==9) || (mes==11)) numDias = 30;
	if (mes==2)
	{
			var resto = eval(ano%4);
			if (resto == 0) numDias = 29;
			else numDias = 28;
	}
	return numDias;	
}
