function validaData(obj, msg, obrigatorio){
	if (obj.value == "" && !obrigatorio)
		return (true);

	var objData = obj.value+" ";
	var dia = objData.substring(0,2);
	var mes = objData.substring(3,5);
	var ano = objData.substring(6,11);
	var barra1 = objData.substring(2,3);
	var barra2 = objData.substring(5,6);	

	if (barra1 != "/" || barra2 != "/") {
		alert("A data "+ msg + " está incorreta. Utilize '/' para separar o dia do mes e o mes do ano!");
		obj.focus();
		//obj.select();
		return false;
	}

	if (dia > 31 || dia == "00") {
		alert("A data "+ msg + " está incorreta. Dia Inválido!");
		obj.focus();
		//obj.select();
		return false;
	}
	if (mes > 12 || mes == "00"){
		alert("A data "+ msg + " está incorreta. Mês Inválido!");
		obj.focus();	
		//obj.select();	
		return false;
	}
	
	if (ano.length < 4){
		alert("A data "+ msg + " está incorreta. Digite o ano com 4 dígitos. Ex:'2000'!");
		obj.focus();	
		//obj.select();	
		return(false);
	}
	
	if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
		if (dia > 30){
			alert("A data "+ msg + " está incorreta. Dia Inválido!");
			obj.focus();
			//obj.select();
			return false;
		}
	}else{
		if (anoBiscesto(ano)){
			if (mes == "02"){
				if (dia > 29){
					alert("A data "+ msg + " está incorreta. Dia Inválido!");
					obj.focus();
					//obj.select();
					return false;
				}
			}
		}else{
			if (mes == "02"){
				if (dia > 28){
					alert("A data "+ msg + " está incorreta. Dia Inválido!");
					obj.focus();	
					//obj.select();				 
					return false;
				}
			}
		}
	}
	return true;

}

function anoBiscesto(ano){
	if(ano % 4 > 0){
		return false;
	}else{
		return true;
	}
}

function validaHora(obj,msg,obrigatorio){
	if (obj.value == "" && !obrigatorio)
		return (true);

	var objHora = obj.value+" ";
	var hora = "";
	var minuto = "";
	var entrou = false;

	for (i=0;i<objHora.length;i++){
		caracter = objHora.substr(i,1)
		if (caracter != ":" && !entrou){
			hora += caracter
		}else{
			entrou = true
		}
		if (entrou){
			if (caracter != ":"){
				minuto += caracter
			}
		}
	}
	var msg2;
	
	if (obj.value == ""){
		alert("Digite a hora "+ msg + "!");
		obj.focus();
		//obj.select();
		return false;
	}
	
	if (hora>23){
		alert("A hora "+ msg + " está incorreta. Hora Inválida! (de 00:00 à 23:59)");
		obj.focus();
		//obj.select();
		return false;
	}
	
	if (minuto>59){
		alert("A hora "+ msg + " está incorreta. Minuto Inválido! (de 00:00 à 23:59)");
		obj.focus();
		//obj.select();
		return false;
	}
	
	if (obj.value.indexOf(":") <0){
		alert("A hora "+ msg + " está incorreta. Utilize o formato '99:99'!");
		obj.focus();
		//obj.select();
		return false;
	}
	return true;
}

function verificaRangeData(data, obrigatorio){
	if (data.value == "" && !obrigatorio)
		return (true);

	var objDataI = new Date();
	var objDataF = data.value;
	var diaf;
	var mesf;
	
	//variáveis para guardar as datas do sistema
	var diai = parseInt(objDataI.getDate());
	var mesi = parseInt(objDataI.getMonth()) + 1;
	var anoi = parseInt(objDataI.getYear());

	//variáveis para guardar as datas especificadas pelo usuário
	var anof = parseInt(objDataF.substring(6,10));	
	
	//condição para setar as variáveis de dia que o usuário informou
	if (objDataF.substring(0,1) == "0")
		diaf = parseInt(objDataF.substring(1,2));
	else
		diaf = parseInt(objDataF.substring(0,2));
	 
	//condição para setar as variáveis de mes que o usuário informou
	if (objDataF.substring(3,4) == "0")
		mesf = parseInt(objDataF.substring(4,5));
	else
		mesf = parseInt(objDataF.substring(3,5));
		
	//condições para informar ao usuário o erro nas informações dadas		
	if (anof < anoi){
			alert("O ano especificado não pode ser menor que o ano corrente!");
			data.focus();
			return false;		
	}else if (mesf < mesi){
			if (anof <= anoi){
				alert("O mês especificado não pode ser menor que o mês corrente!");
				data.focus();
				return false;
			}
	}else  if (diaf < diai){
			if ((mesf <= mesi) && (anof <= anoi)){			
				alert("O dia especificado não pode ser menor que o dia de hoje!");
				data.focus();
				return false;
			}
	}
	return true;
}

function verificaRange2Datas(obj_data1, obj_data2){
	if (obj_data1.value == "" && obj_data2.value == "")
		return (true);

	var objDataI = obj_data1.value;
	var objDataF = obj_data2.value;
	var diaf;
	var mesf;
	
	//variáveis para guardar as datas especificadas pelo usuário
	var anoi = parseInt(objDataI.substring(6,10));	
	
	//condição para setar as variáveis de dia que o usuário informou
	if (objDataI.substring(0,1) == "0")
		diai = parseInt(objDataI.substring(1,2));
	else
		diai = parseInt(objDataI.substring(0,2));
	 
	//condição para setar as variáveis de mes que o usuário informou
	if (objDataI.substring(3,4) == "0")
		mesi = parseInt(objDataI.substring(4,5));
	else
		mesi = parseInt(objDataI.substring(3,5));
	
	
	//variáveis para guardar as datas especificadas pelo usuário
	var anof = parseInt(objDataF.substring(6,10));	
	
	//condição para setar as variáveis de dia que o usuário informou
	if (objDataF.substring(0,1) == "0")
		diaf = parseInt(objDataF.substring(1,2));
	else
		diaf = parseInt(objDataF.substring(0,2));
	 
	//condição para setar as variáveis de mes que o usuário informou
	if (objDataF.substring(3,4) == "0")
		mesf = parseInt(objDataF.substring(4,5));
	else
		mesf = parseInt(objDataF.substring(3,5));
		
	//condições para informar ao usuário o erro nas informações dadas		
	if (anof < anoi){
			alert("O ano inicial não pode ser maior que o ano final!");
			obj_data1.focus();
			return false;		
	}else if (mesf < mesi){
			if (anof <= anoi){
				alert("O mês inicial não pode ser maior que o mês final!");
				obj_data1.focus();
				return false;
			}
	}else  if (diaf < diai){
			if ((mesf <= mesi) && (anof <= anoi)){			
				alert("O dia inicial não pode ser maior que o dia final!");
				obj_data1.focus();
				return false;
			}
	}
	return true;
}

