//
// Função de data Genérica
//
function mask_data(data){
	var mydata = '';
	mydata = mydata + data.value;
	if (mydata.length == 2){
		mydata = mydata + '/';
		data.value = mydata
	}
	if (mydata.length == 5){
		mydata = mydata + '/';
		data.value = mydata
	}
	if (mydata.length == 10){
		viewer_data(data);
	}
}

function viewer_data(data){
	dia = (data.value.substring(0,2));
	mes = (data.value.substring(3,5));
	ano = (data.value.substring(6,10));

	dt_invalid = false;
	// verifica o dia valido para cada mes
	if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {
		dt_invalid = true;
	}

	// verifica se o mes e valido
	if (mes < 01 || mes > 12 ) {
		dt_invalid = true;
	}

	// verifica se e ano bissexto
	if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {
		dt_invalid = true;
	}

	if (data.value == "") {
		dt_invalid = true;
	}

	if (ano.length < 4) {
		dt_invalid = true;
	}

	if (dt_invalid) {
      return false;
	}
	return true;
}

// Hora

function mask_hora(hora){
	var myhora = '';
	myhora = myhora + hora.value;
	if (myhora.length == 2){
	  myhora = myhora + ':';
	  hora.value = myhora;
	}
	if (myhora.length == 5){
	  viewer_hora(hora);
	}
}

function viewer_hora(hora, maxhr){
    if(!eval(maxhr))
       maxhr = 23;
	hrs = (hora.value.substring(0,2));
	min = (hora.value.substring(3,5));

	situacao = "";
	// verifica data e hora
	if ((hrs < 00 ) || (hrs > maxhr) || ( min < 00) ||( min > 59)){
	  situacao = "falsa";
	}

	if (hora.value == "") {
	  situacao = "falsa";
	}

	if (situacao == "falsa") {
	  alert("Hora inválida!");
	  hora.value = '';
	  hora.focus();
	}
}

function MaskData(this_data)
{
	if (this_data.value == '')
	{
		return false;
	}

	var data = null;
	data = this_data.value;
	data = replace (data,'/','');
	data = replace (data,'-','');

	if (data.length == 6 || data.length == 8)
	{
		if (data.length == 6)
		{
			data = data.substr(0,4) + '20' + data.substr(4,2);
		}
		this_data.value = data.substr(0,2) + '/' + data.substr(2,2) + '/' + data.substr(4,4);

      if (!viewer_data(this_data))
      {
   		alert('Data inválida!');
   		this_data.value = '';
   		return false;
      }
	}
	else
	{
		alert('Data inválida!');
		this_data.value = '';
		return false;
	}
}


function MaskHora(this_data, maxhr)
{
    if(!eval(maxhr))
       maxhr = 23;

	if (this_data.value == '')
	{
		return false;
	}

	var data = null;
	data = this_data.value;
	data = replace (data,':','');

   var v_hora = data.substr(0,2);
   var v_mim = data.substr(2,2);

	this_data.value = data.substr(0,2) + ':' + data.substr(2,2);

	viewer_hora(this_data, maxhr);
}
