function encode (str) { 

  var dest = ""; 
  var len = str.length; 
  var index = 0; 
  var code = null; 

  for (var i = 0; i < len; i++) { 
    var ch = str.charAt(i); 

    if (ch == " ") code = "%20"; 
    else if (ch == "%") code = "%25"; 
    else if (ch == ",") code = "%2C"; 
    else if (ch == ";") code = "%3B"; 
    else if (ch == "\b") code = "%08"; 
    else if (ch == "\t") code = "%09"; 
    else if (ch == "\n") code = "%0A"; 
    else if (ch == "\f") code = "%0C"; 
    else if (ch == "\r") code = "%0D"; 

    if (code != null) { 
      dest += str.substring(index,i) + code; 
      index = i + 1; 
      code = null; 
    } 

  } 

  if (index < len) 
    dest += str.substring(index, len); 

  return dest; 

} 
  
function decode (str) { 

  var dest = ""; 
  var len = str.length; 
  var index = 0; 
  var code = null; 
  var i = 0; 

  while (i < len) { 
    i = str.indexOf ("%", i); 

    if (i == -1) 
      break; 
    if (index < i) 
      dest += str.substring(index, i); 

    code = str.substring (i+1,i+3); 

    i += 3; 
    index = i; 

    if (code == "20") dest += " "; 
    else if (code == "25") dest += "%"; 
    else if (code == "2C") dest += ","; 
    else if (code == "3B") dest += ";"; 
    else if (code == "08") dest += "\b"; 
    else if (code == "09") dest += "\t"; 
    else if (code == "0A") dest += "\n"; 
    else if (code == "0C") dest += "\f"; 
    else if (code == "0D") dest += "\r"; 
    else { 
      i -= 2; 
      index -= 3; 
    } 

  } 

  if (index < len) 
    dest += str.substring(index, len); 

  return dest; 

} 
  

function getCookieVal (offset) { 

  var endstr = document.cookie.indexOf (";", offset); 

  if (endstr == -1) 
    endstr = document.cookie.length; 

  return decode(document.cookie.substring(offset, endstr)); 

} 
  

function GetCookie (name) { 

  var arg = name + "="; 
  var alen = arg.length; 
  var clen = document.cookie.length; 
  var i = 0; 

  while (i < clen) { 
    var j = i + alen; 

    if (document.cookie.substring(i, j) == arg) 
      return getCookieVal (j); 

    i = document.cookie.indexOf(" ", i) + 1; 

    if (i == 0) break; 

  } 

  return null; 

} 
  

function SetCookie (name, value, expires) { 
  document.cookie = name + "=" + encode(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())); 
} 
  

function DeleteCookie (name) { 
  var exp = new Date(); 
  var cval = GetCookie (name); 
  
  document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); 
} 
  

function arrayOfDaysInMonths(isLeapYear) { 

   this[0] = 31; 
   this[1] = 28; 

   if (isLeapYear) 

   this[1] = 29; 
   this[2] = 31; 
   this[3] = 30; 
   this[4] = 31; 
   this[5] = 30; 
   this[6] = 31; 
   this[7] = 31; 
   this[8] = 30; 
   this[9] = 31; 
   this[10] = 30; 
   this[11] = 31; 

} 

function daysInMonth(month, year) { 

   var isLeapYear = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)); 
   var monthDays  = new arrayOfDaysInMonths(isLeapYear); 
   return monthDays[month]; 
} 

function calendar() { 

   var monthNames = "JanFevMarAbrMaiJunJulAgoSetOutNovDez"; 
   var today      = new Date(); 
   var day        = today.getDate(); 
   var month      = today.getMonth(); 
   var year       = today.getYear(); 
   var numDays    = daysInMonth(month, year+1); 
   var firstDay   = today; 

   firstDay.setDate(2); 

   var startDay = firstDay.getDay(); 
   var column = 0; 

   document.write("<CENTER>"); 
   document.write("<TABLE BORDER=0  width=220 bgcolor=#f8f8f8>"); 
   document.write("<TR><TH COLSPAN=7><Font face=verdana size=1>"); 
   document.write(monthNames.substring(3*month, 3*(month + 1)) + " " + year); 
   document.write("<TR><TH><Font face=verdana size=1>Dom<TH><Font face=verdana size=1>Seg<TH><Font face=verdana size=1>Ter<TH><Font   face=verdana size=1>Qua<TH><Font face=verdana size=1>Qui<TH><Font face=verdana size=1>Sex<TH><Font face=verdana size=1>Sab"); 
   document.write("<TR>"); 

   for (i=1; i < startDay; i++) { 
      document.write("<TD><Font face=verdana size=1>"); 
      column++; 
   } 

   for (i=1; i <= numDays; i++) 
   { 
      var s = "" + i; 

      if ((GetCookie("d"+i) != null)) 
        s = s.fontcolor("#FF0000"); 
//        s = s.link("javascript:dayClick(" + i + ")") 
        document.write("<TD>" + s); 
        if (++column == 7) 

      { 
      document.write("<TR>"); 

      column = 0; 
   } 

   } 

   document.write("</TABLE>"); 
   document.writeln("</CENTER>"); 
} 
  

function dayClick(day) { 

        var expdate = new Date (); 
        expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000)); 
        var prefix                = "d"; 
        var theCookieName         = prefix + day; 
        var theDayclickedReminder = GetCookie(theCookieName); 
 
    if (theDayclickedReminder != null) { 

// seu alerta aqui 

        alert("O lembrete para o dia " + day + " é:"  + theDayclickedReminder); 

    } 

// você coloca sua mensagem aqui 

        if (confirm("Você deseja colocar um lembrete para o dia " + day + " deste mês?")) 
        { 
                x = prompt("Coloque seu lembrete para o dia "+ day + " deste mês", theDayclickedReminder); 

        SetCookie (theCookieName, x, expdate); 

    } 

} 

function IsDate(pData){
if(pData.length<10 || pData.length>10){
	alert('Data inválida\nInforme a data no formato (dd/mm/aaaa)');
	return false;
}
var ano = '' + pData.substring(6,10);
var mes = '' + pData.substring(3,5);
var dia = '' + pData.substring(0,2);

if(dia>'31'){
	alert('Data inválida');
	return false;
}
if(mes>'12'){
	alert('Data inválida');
	return false;
}
if(mes=='02'){
	if(ano%4!=0 && dia>'28'){
		alert('Data Inválida');
		return false;
	} else{
		if(dia>'29'){
			alert('Data Inválida');
			return false;
		}
	}
}
if(mes<='07'){
	if(mes%2==0 && dia>'30'){
		alert('Data inválida');
		return false;
	}
	} else{
		if(mes>'09'){
			if(mes%2!=0 && dia>'30'){
				alert('Data inválida');
				return false;
			}
		}
	}
	return true
}

function validaEmail(nform) {
	if (nform.email.value == "") {
		alert("Informe seu e-mail.");
		nform.email.focus();
		nform.email.select();
		return false;
	} else {
		prim = nform.email.value.indexOf("@")
		if(prim < 2) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("@",prim + 1) != -1) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf(".") < 1) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf(" ") != -1) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("zipmeil.com") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("hotmeil.com") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf(".@") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("@.") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf(".com.br.") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("/") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("[") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("]") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("(") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf(")") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
		if(nform.email.value.indexOf("..") > 0) {
			alert("O e-mail informado parece não estar correto.");
			nform.email.focus();
			nform.email.select();
			return false;
		}
	}
		return true;
}


function validFloat(formField){
var num = parseFloat(formField.value);
with(document.form1){
	if (isNaN(num)){
		alert('Por favor, preencha o campo "' + formField.name +'" com um número válido.');
		formField.focus();
		return false;
	} else
    return(formataDecimal(num));
	}
}
function formataDecimal(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+'.'+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + 'R$' + num + ',' + cents);
}

function isNum( caractere ) 
{ 
var strValidos = "0123456789" 
if( strValidos.indexOf( caractere ) == -1 ) 
	return false; 
return true; 
} 


function localizaChar(str){
    r = false;
    for(i = 0; i < str.length; i++){
      if(str.charAt(i) == '.')
      {
        r = true;
      }
    }
  return r;
}
  
function validaTecla(campo, event) 
{ 
var BACKSPACE= 8; 
var PONTO=46;
var key; 
var tecla; 
var result;
  
CheckTAB=true; 
  
if(navigator.appName.indexOf("Netscape")!= -1) 
	tecla= event.which; 
else 
	tecla= event.keyCode; 
  
key = String.fromCharCode( tecla); 

if ( tecla == 13 ) 
	return false; 
if ( tecla == BACKSPACE ) 
	return true; 
if ( tecla == PONTO ) {
//	return localizaChar(campo);
   result = localizaChar(campo.value); 				
   
   if(result == false){
 	 		return true;
 	 	} else {
 	 		return false;
 	 	}	

}	
return ( isNum(key)); 
  
} 

function validaNumeros(campo, event) 
{ 
var BACKSPACE= 8; 
var PONTO=46;
var key; 
var tecla; 
var result;
  
CheckTAB=true; 
  
if(navigator.appName.indexOf("Netscape")!= -1) 
	tecla= event.which; 
else 
	tecla= event.keyCode; 
  
key = String.fromCharCode( tecla); 

if ( tecla == 13 ) 
	return false; 
if ( tecla == BACKSPACE ) 
	return true; 

return ( isNum(key)); 
  
} 



