/****************************************************FUNÇÕES PARA TRATAR DATAS - INÍCIO**************************************************/
function makeArray() {
  this[0] = makeArray.arguments.length;
  for (i = 0; i<makeArray.arguments.length; i++)
    this[i+1] = makeArray.arguments[i];
}

var daysofmonthLY = new makeArray(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var daysofmonth = new makeArray(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
function keyPressData(obj, ev)
{
	pos1 = obj.value.indexOf("-");
	aux = obj.value.substring(pos1+1);
	pos2 = aux.indexOf("-");
	
	//if (pos2 == -1)
	//	key = 45;
	//else
		key = null;

	if ((ev.keyCode == key) || (ev.keyCode >= 48) && (ev.keyCode <= 57))
	{
		flag = 0;
		TamAux = obj.value.length;
		
		if ((pos1 == -1) && (pos2 == -1) && (flag == 0))
		{
			if ((TamAux > 2) && (TamAux < 4))
			{
				aux = obj.value.substring(0,2) + "-" + obj.value.substring(2,4);
				flag = 1;
			}
			else if (TamAux >= 4)
			{
				aux = obj.value.substring(0,2) + "-" + obj.value.substring(2,4) + "-" + obj.value.substring(4,8);
				flag = 1;
			}
			
			obj.value = aux;
			ev.returnValue = false;
		}
		else if ((pos1 > 2) && (flag == 0))
		{
			aux = obj.value.substring(0,2) + "-" + obj.value.substring(2,6);
			flag = 1;
		
			obj.value = aux;
			ev.returnValue = false;
		}
		else if ((TamAux > 4) && (pos2 == -1) && (flag == 0))
		{
			//aux = obj.value.substring(0,4) + "-" + obj.value.substring(5,7) + "-" + obj.value.substring(7,9);
			aux = obj.value.substring(0,2) + "-" + obj.value.substring(3,5) + "-" + obj.value.substring(5,9);
			flag = 1;
			
			obj.value = aux;
			ev.returnValue = false;
		}
		
		if ((TamAux == 2) && (pos1 == -1) && (flag==0))
		{
			if (key != 45)
				obj.value = obj.value + "-";
			ev.returnValue = true;
			flag = 1;
		}
		else if ((TamAux == 7) && (pos2 == -1) && (flag==0))
		{
			if (key != 45)
				obj.value = obj.value + "-";
			ev.returnValue = true;
			flag = 1;
		}
		else
			ev.returnValue = true;
	}
	else
		ev.returnValue = false;
}

function vData (campo) {
	data = trim(campo.value);
	if (data.length > 0){
		if (data.length == 10){
			datum = campo.value.split("-");
			dia = datum[0];
			mes = datum[1];
			ano = datum[2];
    		if (datum.length>1){
				if (ano.length!=4)
					return false;
				if ((isNaN(ano)) || (isNaN(mes)) || (isNaN(dia)) || (dia.length!=2))
					return false;
				if (mes.length!=2)
					return false;
				if ((mes>12)||(mes<1))
					return false;
				else{
					if (!ValidDate(dia-0,mes-0,ano))
						return false;
				}
			}else return false;
		}else return false;
	}
	return true;
}

function ValidDate(day,month,year) {
  if ((bissexto(year) && (day>daysofmonthLY[month])) || (!bissexto(year) && (day>daysofmonth[month]))) {
    return false;
  }
  else{
    return true;
  }
}

function bissexto(year) {
  if ((year/4)   != Math.floor(year/4))
    return false;
  if ((year/100) != Math.floor(year/100))
    return true;
  if ((year/400) != Math.floor(year/400))
    return false;
  return true;
}

function padLeft(str, pad, count) {
	while(str.length<count)
		str=pad+str;
	return str;
}

/*****************************************************FUNÇÕES PARA TRATAR DATAS - FIM****************************************************/