function mesExtenso(mes){

	if(mes == 1)
	   return "Janeiro";
	else if(mes == 2)
	   return "Fevereiro";
	else if(mes == 3)
	   return "Março";
	else if(mes == 4)
	   return "Abril";
	else if(mes == 5)
	   return "Maio";
	else if(mes == 6)
	   return "Junho";
	else if(mes == 7)
	   return "Julho";
	else if(mes == 8)
	   return "Agosto";
	else if(mes == 9)
	   return "Setembro";
	else if(mes == 10)
	   return "Outubro";
	else if(mes == 11)
	   return "Novembro";
	else if(mes == 12)
	   return "Dezembro";
	else
	   return "";
}


function isDate(dia,mes,ano,msg){


    if ( (isNaN(parseInt(dia)) || isNaN(parseInt(mes)) || isNaN(parseInt(ano))) || (ano < 1900 || ano > 9999) ||

        (mes < 1 || mes > 12) ||

        (dia < 1 || dia > 31) ||

        (mes == 2 && dia > 28 && (ano % 4 != 0)) ||

        (mes == 2 && dia > 29 && (ano % 4 == 0)) ||

        (dia > 30 && (mes == 4 || mes == 6 || mes == 9 || mes == 11))) {

	alert(msg);
	return false;

    }else 

	   return true;

}


function isVazio(field,msg){

   var thisChar;
   var counter = 0;
   var str;

    str = field.value

    if ( str == "" ) {
       if (typeof(msg) != "undefined"){ 
		   alert(msg)
		   field.focus()
		}   
		return true;
    }

    for (var i=0; i<str.length; i++){
       thisChar = str.substring(i, i+1);
       if (thisChar == " ")
           counter++;
   }
  
   if (counter == str.length){
       if (typeof(msg) != "undefined"){
	    alert(msg);
          field.focus();		
	 }   
      return true;
   }

    return false;	
}





function isEmail(str) {

  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }

  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);

  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");

  return (!r1.test(str) && r2.test(str));

}


function digitoValido(evt,valoresPermitidos){

	//keycode, respectivamente: backspace, seta esq,cima,baixo dir
	var caracteresEspeciais = new Array();
	caracteresEspeciais.push(8);    //backspace	
	caracteresEspeciais.push(37);   //seta esquerda	
	caracteresEspeciais.push(38);   //seta cima
	caracteresEspeciais.push(39);   //seta direita
	caracteresEspeciais.push(40);   //seta baixo
	caracteresEspeciais.push(46);   //delete
	caracteresEspeciais.push(35);   //end
	caracteresEspeciais.push(36);   //home

	var tecla=(evt.keyCode)?evt.keyCode:evt.which;

	var caracter = String.fromCharCode(tecla);

	return ( 
 	            (valoresPermitidos.indexOf(caracter) != -1) 
                 || (caracteresEspeciais.join(",").indexOf(tecla) != -1) 
	       );
}


function inteiroPositivo(evt){
	
	return digitoValido(evt,"0123456789");
}

function telefone(evt){
	
	return digitoValido(evt,"0123456789-() ");
}


function compara_data(tx_dia_ini,tx_mes_ini,tx_ano_ini,tx_dia_fim,tx_mes_fim,tx_ano_fim, msg){

  var dia, mes, ano


  if (isDate(tx_dia_ini,tx_mes_ini,tx_ano_ini,"Data de entrada inválida."))
	var dtinicial = new Date(tx_ano_ini + "/" + tx_mes_ini + "/" + tx_dia_ini);
  else
     return false;		 	 


  if (isDate(tx_dia_fim,tx_mes_fim,tx_ano_fim,"Data saída inválida."))
	var dtfinal = new Date(tx_ano_fim + "/" + tx_mes_fim + "/" + tx_dia_fim);
  else
     return false;


   if (dtinicial > dtfinal){

      if (typeof(msg) != "undefined")

        alert(msg);

      else 	 

        alert("Data final deve ser maior que Data Inicial.");

    return false;

  }
  
  return true;

}
