function isDate(pStr)
{
  var reDate = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
  if (reDate.test(pStr)) 
  {
	return true;
  } 
  else if (pStr != null && pStr != "") 
  {
	return false;
  }
}

function isTime(pStr)
{
	var reTime = /^([0-2][0-4]|[0-1][0-9]|[1-24]):([0-5][0-9])$/;
	if (reTime.test(pStr)) 
	{
		return true;
	} 
	else if (pStr != null && pStr != "") 
	{
		return false;
	}
}

function isEmail(obj)
{
	if (obj.length == 0)
	{
		return false;
	}
	if (obj.indexOf ('@',0) == -1 || obj.indexOf ('.',0) == -1)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function FormataHora(field, e)
{
	var tecla;
	var iBrw = new BrowserInfo();
	var IExp = ((iBrw.name == 'Netscape') ? 0 : 1)
	if(IExp)
		tecla = e.keyCode;
	else
		tecla = e.which;
	
	if (field.value.length == 2)
	{ 
		field.value += ":";
	}
}

function FormataPlaca(field, e)
{
	var tecla;
	var iBrw = new BrowserInfo();
	var IExp = ((iBrw.name == 'Netscape') ? 0 : 1)
	if(IExp)
		tecla = e.keyCode;
	else
		tecla = e.which;
	
	if (field.value.length < 3)
	{ 
		if ( (tecla > 64 && tecla < 91) || (tecla > 96 && tecla < 123) ) /* Valida apenas letras */
		{
			if(tecla > 96 && tecla < 123)
			{
				if(IExp)
					e.keyCode = parseInt(tecla) - 32;
				else
					e.which = parseInt(tecla) - 32;
			}
			e.returnValue = true;
		}
		else
		{
			e.returnValue = false;	 
		}
	}
	else if (tecla > 47 && tecla < 58) 		/* Valida apenas números */
	{
		e.returnValue = true;
	}
	else 
	{
		e.returnValue = false;
	}
}

function F_Placa(campo, op)
{
	var new_campo;
	var p1, p2;
	
	/* onBlur */
	if(op)
	{
		if(campo.length > 3)
		{
			new_campo = campo.replace("-","");
			if(new_campo.length == 7)
			{
				p1 = new_campo.substr(0,3);	
				p2 = new_campo.substr(3,4);	
				return p1 + "-" + p2;
			}
			else
			{
				return campo;
			}
		}
		else
			return campo;
	}
	else 	/* onFocus */
	{
		return campo.replace("-","");
	}
}

function BrowserInfo()
{
  this.name = navigator.appName;
  this.codename = navigator.appCodeName;
  this.version = navigator.appVersion.substring(0,4);
  this.platform = navigator.platform;
  this.javaEnabled = navigator.javaEnabled();
  this.screenWidth = screen.width;
  this.screenHeight = screen.height;
}

function RetiraAspas(e)
{
	var iBrw = new BrowserInfo();
	var IExp = ((iBrw.name == 'Netscape') ? 0 : 1)
	if(IExp)
	{
		if(e.keyCode == 34 || e.keyCode == 39)
		{
			e.returnValue = false;
		}
	}
	else
	{
		if(e.which == 34 || e.which == 39)
		{
			e.returnValue = false;
		}
	}
}

function LimitaCampo(fld,e,tam)
{
	if(fld.value.length > tam)
	{
		e.returnValue = false;
	}
}

function FormatarData(campo,e) 
{
	var cod="";
	if(document.all) 
	{
		cod = event.keyCode;
	}
	else 
	{
		cod = e.which;
	}
	if(cod == 08) return;
	if (cod < 48 || cod > 57)
	{
		cod = 0;
		return false;
	}
	tam=campo.value.length; 
	if(tam > 9) 
		return false;
	var caract = String.fromCharCode(cod);
	if(tam == 2 || tam == 5) 
	{
		campo.value += "/" + caract; 
		return false;
	} 
	campo.value += caract; 
	return false; 
}

function F_Data(campo)
{
	if(!isDate(campo))
	{
		return campo;
	}
	else
	{
		var p = campo.split("/");
		if(p[2].length == 2)
		{
			if( parseInt(p[2]) < 10 ) // Se for digitado 00, 01, 02, ..., 09
			{
				p[2] = 2000 + parseInt(p[2]);
			}
			else
			{
				p[2] = 1900 + parseInt(p[2]);
			}
		}
		return (p[0] + "/" + p[1] + "/" + p[2]);
	}
}

var isNS4 = (navigator.appName=="Netscape")?1:0;

function ApenasNumeros(e)
{
	var isNS4 = ((navigator.appName=="Netscape") ? 1 : 0 );
	if(!isNS4)
	{
		if(e.keyCode < 48 || e.keyCode > 57)
		{
			e.returnValue = false;
		}
	}
	else
	{
		if(e.which < 48 || e.which > 57)
		{
			e.returnValue = false;
		}
	}
}

function ExibeGaleria(CD_Glr)
{
	if(!isNaN(CD_Glr))
	{
		location.href = 'galeria_fotos.php?CD_Glr=' + CD_Glr;
	}
	else
	{
		alert('Código da Galeria inválido!');
	}
}

// Somente numeros
String.prototype.onlynumber = function()
{
	return this.replace(/[^0-9]/g, "");
}
// Mascara de valor
String.prototype.mascara = function()
{
	tam = this.length
	vr = this
	if ( tam <= 2 ){ return this }
	if ( (tam > 2) && (tam <= 5) ){
		return  vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	if ( (tam >= 6) && (tam <= 8) ){
		return  vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	if ( (tam >= 9) && (tam <= 11) ){
		return  vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	if ( (tam >= 12) && (tam <= 14) ){
		return  vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	if ( (tam >= 15) && (tam <= 17) ){
		return  vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
}
// Tirar espaço do mascarado
String.prototype.ltrim_masked = function()
{
	size = this.length
	masked = this
	if (size == 1){masked = '0,0'+ masked}
	if (size == 2){masked = '0,'+ masked}
	if (size == 3){masked = masked.replace('00,','0,')}
	if (masked == '00' || masked == '0,0' || masked =='0,00' || masked == '00,00' || masked == '000,00' || masked == '0.000,00' || masked == '00.000,00' || masked == '000.000,00'){masked = ''}
	if (size == 5 && masked.substr(0,1)== '0' ){masked = masked.replace('0','')}
	if (size == 6 && masked.substr(0,1)== '0' ){masked = masked.replace('0','')}
	if (size == 6 && masked.substr(0,2)== '00' ){masked = masked.replace('00','')}
	if (size == 8 && masked.substr(0,2)== '0.' ){masked = masked.replace('0.','')}
	if (size == 9 && masked.substr(0,3)== '00.' ){masked = masked.replace('00.','')}
	return masked
}
// Formatar valor
function FormataValor(campo) 
{
	vlr = form[campo].value
	vlr = vlr.onlynumber()
	vlr = vlr.mascara()
	vlr = vlr.ltrim_masked()
	form[campo].value = vlr
}

function AtualizaTam(id, Tmax)
{
	var tam = document.form.elements[id].value.length;
	if(tam == 0)
	{
		document.getElementById(id).innerHTML = "&nbsp;";
	}
	else
	{
		document.getElementById(id).innerHTML = tam + "/" + Tmax;
	}
}

<!-- Original:  Leogenilhu (leogenilhu@bol.com.br) -->
<!-- Web Site:  http://www.leogenilhu.hpg.com.br -->

var weekend = [0,6];
var weekendColor = "#e0e0e0";
var fontface = "Tahoma";
var fontsize = 1;


//var img_esq = "/workflow/images/seta_esq.gif";
var img_esq = "../../imagens/calendario_seta_esquerda.jpg";
//var img_dir = "/workflow/images/seta_dir.gif";
var img_dir = "../../imagens/calendario_seta_direita.jpg";

var gNow = new Date();
var ggWinCal;
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

Calendar.Months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];

//dias finais de cada mes
Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// anos bissestos
Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function Calendar(p_item, p_WinCal, p_month, p_year, p_format) {
  if ((p_month == null) && (p_year == null))  return;

  if (p_WinCal == null)
    this.gWinCal = ggWinCal;
  else
    this.gWinCal = p_WinCal;

  if (p_month == null) {
    this.gMonthName = null;
    this.gMonth = null;
    this.gYearly = true;
  } else {
    this.gMonthName = Calendar.get_month(p_month);
    this.gMonth = new Number(p_month);
    this.gYearly = false;
  }

  this.gYear = p_year;
  this.gFormat = p_format;
  this.gBGColor = "white";
  this.gFGColor = "black";
  this.gTextColor = "black";
  this.gHeaderColor = "black";
  this.gReturnItem = p_item;
}

Calendar.get_month = Calendar_get_month;
Calendar.get_daysofmonth = Calendar_get_daysofmonth;
Calendar.calc_month_year = Calendar_calc_month_year;
Calendar.print = Calendar_print;

function Calendar_get_month(monthNo) {
  return Calendar.Months[monthNo];
}

function Calendar_get_daysofmonth(monthNo, p_year) {
  if ((p_year % 4) == 0) {
    if ((p_year % 100) == 0 && (p_year % 400) != 0)
      return Calendar.DOMonth[monthNo];

    return Calendar.lDOMonth[monthNo];
  } else
    return Calendar.DOMonth[monthNo];
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {
  var ret_arr = new Array();

  if (incr == -1) {
    // B A C K W A R D
    if (p_Month == 0) {
      ret_arr[0] = 11;
      ret_arr[1] = parseInt(p_Year) - 1;
    }
    else {
      ret_arr[0] = parseInt(p_Month) - 1;
      ret_arr[1] = parseInt(p_Year);
    }
  } else if (incr == 1) {
    // F O R W A R D
    if (p_Month == 11) {
      ret_arr[0] = 0;
      ret_arr[1] = parseInt(p_Year) + 1;
    }
    else {
      ret_arr[0] = parseInt(p_Month) + 1;
      ret_arr[1] = parseInt(p_Year);
    }
  }

  return ret_arr;
}

function Calendar_print() {
  ggWinCal.print();
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {
  var ret_arr = new Array();

  if (incr == -1) {
    // B A C K W A R D
    if (p_Month == 0) {
      ret_arr[0] = 11;
      ret_arr[1] = parseInt(p_Year) - 1;
    }
    else {
      ret_arr[0] = parseInt(p_Month) - 1;
      ret_arr[1] = parseInt(p_Year);
    }
  } else if (incr == 1) {
    // F O R W A R D
    if (p_Month == 11) {
      ret_arr[0] = 0;
      ret_arr[1] = parseInt(p_Year) + 1;
    }
    else {
      ret_arr[0] = parseInt(p_Month) + 1;
      ret_arr[1] = parseInt(p_Year);
    }
  }

  return ret_arr;
}

new Calendar();

Calendar.prototype.getMonthlyCalendarCode = function() {
  var vCode = "";
  var vHeader_Code = "";
  var vData_Code = "";

  // Begin Table Drawing code here..
  vCode = vCode + "<TABLE width='100%' align=center BORDER=0 BGCOLOR='" + this.gBGColor + "' style='font-face: " + fontface + "; size: 11pt;'>";

  vHeader_Code = this.cal_header();
  vData_Code = this.cal_data();
  vCode = vCode + vHeader_Code + vData_Code;

  vCode = vCode + "</TABLE>";

  return vCode;
}

Calendar.prototype.show = function() {
  var vCode = "";

  this.gWinCal.document.open();

  this.wwrite("<html>");
  this.wwrite("<head><title>Calendário</title>");
  this.wwrite("</head>");

  this.wwrite("<body marginwidth=0 marginheight=0 topmargin=0 leftmargin=0 " +  "link=\"" + this.gLinkColor + "\" " + "vlink=\"" + this.gLinkColor + "\" " + "alink=\"" + this.gLinkColor + "\" " +    "text=\"" + this.gTextColor + "\">");

  // Show navigation buttons
  var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
  var prevMM = prevMMYYYY[0];
  var prevYYYY = prevMMYYYY[1];

  var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
  var nextMM = nextMMYYYY[0];
  var nextYYYY = nextMMYYYY[1];

  this.wwrite("<TABLE WIDTH='100%' BORDER=0 CELLSPACING=2 CELLPADDING=0 ><TR><TD ALIGN=center>");

  this.wwrite("<A HREF=\"" + "javascript:window.opener.Build(" + "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" + this.gFormat + "'" +    ");" +    "\"><img src='" + img_esq + "' border=0><\/A> ");
  this.wwrite("<FONT FACE='" + fontface + "' size=1><B>" + this.gYear);
  this.wwrite("<A HREF=\"" + "javascript:window.opener.Build(" + "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" + this.gFormat + "'" +    ");" +    "\"><img src='" + img_dir + "' border=0><\/A></TD></TR><tr><td align=center>");

  this.wwrite("<A HREF=\"" +    "javascript:window.opener.Build(" +    "'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +    ");" +    "\"><img src='" + img_esq + "' border=0><\/A>");
  this.wwrite("<FONT FACE='" + fontface + "' size=1><B>" +this.gMonthName);
  this.wwrite("<A HREF=\"" +    "javascript:window.opener.Build(" +    "'" + this.gReturnItem + "', '" + nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +    ");" +    "\"><img src='" + img_dir + "' border=0><\/A></TD></tr><table>");

  // Get the complete calendar code for the month..
  vCode = this.getMonthlyCalendarCode();
  this.wwrite(vCode);

  this.wwrite("</font></body></html>");
  this.gWinCal.document.close();
}

Calendar.prototype.showY = function() {
  var vCode = "";
  var i;
  var vr, vc, vx, vy;    // Row, Column, X-coord, Y-coord
  var vxf = 285;      // X-Factor
  var vyf = 200;      // Y-Factor
  var vxm = 10;      // X-margin
  var vym;        // Y-margin
  if (isIE)  vym = 75;
  else if (isNav)  vym = 25;

  this.gWinCal.document.open();

  this.wwrite("<html>");
  this.wwrite("<head><title>Calendário</title>");
  this.wwrite("<style type='text/css'>\n<!--");
  for (i=0; i<12; i++) {
    vc = i % 3;
    if (i>=0 && i<= 2)  vr = 0;
    if (i>=3 && i<= 5)  vr = 1;
    if (i>=6 && i<= 8)  vr = 2;
    if (i>=9 && i<= 11)  vr = 3;

    vx = parseInt(vxf * vc) + vxm;
    vy = parseInt(vyf * vr) + vym;

    this.wwrite(".lclass" + i + " {position:absolute;top:" + vy + ";left:" + vx + ";}");
  }
  this.wwrite("-->\n</style>");
  this.wwrite("</head>");

  this.wwrite("<body " +
    "link=\"" + this.gLinkColor + "\" " +
    "vlink=\"" + this.gLinkColor + "\" " +
    "alink=\"" + this.gLinkColor + "\" " +
    "text=\"" + this.gTextColor + "\">");
  this.wwrite("<FONT FACE='" + fontface + "' SIZE=2><B>");
  this.wwrite("Year : " + this.gYear);
  this.wwrite("</B><BR>");

  // Show navigation buttons
  var prevYYYY = parseInt(this.gYear) - 1;
  var nextYYYY = parseInt(this.gYear) + 1;

  this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0' align=center><TR><TD ALIGN=center>");
  this.wwrite("[<A HREF=\"" + "javascript:window.opener.Build(" + "'" + this.gReturnItem + "', null, '" + prevYYYY + "', '" + this.gFormat + "'" +  ");" + "\" alt='Prev Year'><<<\/A>]</TD><TD ALIGN=center>");
  this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");
  this.wwrite("[<A HREF=\"" + "javascript:window.opener.Build(" + "'" + this.gReturnItem + "', null, '" + nextYYYY + "', '" + this.gFormat + "'" + ");" +  "\">>><\/A>]</TD></TR></TABLE><BR>");

  // Get the complete calendar code for each month..
  var j;
  for (i=11; i>=0; i--) {
    if (isIE)
      this.wwrite("<DIV ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
    else if (isNav)
      this.wwrite("<LAYER ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");

    this.gMonth = i;
    this.gMonthName = Calendar.get_month(this.gMonth);
    vCode = this.getMonthlyCalendarCode();
    this.wwrite(this.gMonthName + "/" + this.gYear + "<BR>");
    this.wwrite(vCode);

    if (isIE)
      this.wwrite("</DIV>");
    else if (isNav)
      this.wwrite("</LAYER>");
  }

  this.wwrite("</body></html>");
  this.gWinCal.document.close();
}

Calendar.prototype.wwrite = function(wtext) {
  this.gWinCal.document.writeln(wtext);
}

Calendar.prototype.wwriteA = function(wtext) {
  this.gWinCal.document.write(wtext);
}

Calendar.prototype.cal_header = function() {
  var vCode = "";

  vCode = vCode + "<TR>";
  vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='1' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>D</B></FONT></TD>";
  vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='1' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>S</B></FONT></TD>";
  vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='1' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>T</B></FONT></TD>";
  vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='1' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Q</B></FONT></TD>";
  vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='1' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Q</B></FONT></TD>";
  vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='1' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>S</B></FONT></TD>";
  vCode = vCode + "<TD WIDTH='16%'><FONT SIZE='1' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>S</B></FONT></TD>";
  vCode = vCode + "</TR>";

  return vCode;
}

Calendar.prototype.cal_data = function() {
  var vDate = new Date();
  vDate.setDate(1);
  vDate.setMonth(this.gMonth);
  vDate.setFullYear(this.gYear);

  var vFirstDay=vDate.getDay();
  var vDay=1;
  var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
  var vOnLastDay=0;
  var vCode = "";

  /*
  Get day for the 1st of the requested month/year..
  Place as many blank cells before the 1st day of the month as necessary.
  */

  vCode = vCode + "<TR>";
  for (i=0; i<vFirstDay; i++) {
    vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(i) + "><FONT SIZE='1' FACE='" + fontface + "'> </FONT></TD>";
  }

  // Write rest of the 1st week
  for (j=vFirstDay; j<7; j++) {
    vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='1' FACE='" + fontface + "'>" +
      "<A HREF='#' " +
        "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
        this.format_data(vDay) +
        "';window.close();\">" +
        this.format_day(vDay) +
      "</A>" +
      "</FONT></TD>";
    vDay=vDay + 1;
  }
  vCode = vCode + "</TR>";

  // Write the rest of the weeks
  for (k=2; k<7; k++) {
    vCode = vCode + "<TR>";

    for (j=0; j<7; j++) {
      vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='1' FACE='" + fontface + "'>" +
        "<A HREF='#' " +
          "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
          this.format_data(vDay) +
          "';window.close();\">" +
        this.format_day(vDay) +
        "</A>" +
        "</FONT></TD>";
      vDay=vDay + 1;

      if (vDay > vLastDay) {
        vOnLastDay = 1;
        break;
      }
    }

    if (j == 6)
      vCode = vCode + "</TR>";
    if (vOnLastDay == 1)
      break;
  }

  // Fill up the rest of last week with proper blanks, so that we get proper square blocks
  for (m=1; m<(7-j); m++) {
    if (this.gYearly)
      vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
      "><FONT SIZE='1' FACE='" + fontface + "' COLOR='gray'> </FONT></TD>";
    else
      vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
      "><FONT SIZE='1' FACE='" + fontface + "' COLOR='gray'>" + m + "</FONT></TD>";
  }

  return vCode;
}

Calendar.prototype.format_day = function(vday) {
  var vNowDay = gNow.getDate();
  var vNowMonth = gNow.getMonth();
  var vNowYear = gNow.getFullYear();

  if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)
    return ("<FONT COLOR=\"RED\"><B>" + vday + "</B></FONT>");
  else
    return (vday);
}

Calendar.prototype.write_weekend_string = function(vday) {
  var i;

  // Return special formatting for the weekend day.
  for (i=0; i<weekend.length; i++) {
    if (vday == weekend[i])
      return (" BGCOLOR=\"" + weekendColor + "\"");
  }

  return "";
}

Calendar.prototype.format_data = function(p_day) {
  var vData;
  var vMonth = 1 + this.gMonth;
  vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;
  var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();
  var vFMon = Calendar.get_month(this.gMonth).toUpperCase();
  var vY4 = new String(this.gYear);
  var vY2 = new String(this.gYear.substr(2,2));
  var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;

  switch (this.gFormat) {
    case "MM\/DD\/YYYY" :
      vData = vMonth + "\/" + vDD + "\/" + vY4;
      break;
    case "MM\/DD\/YY" :
      vData = vMonth + "\/" + vDD + "\/" + vY2;
      break;
    case "MM-DD-YYYY" :
      vData = vMonth + "-" + vDD + "-" + vY4;
      break;
    case "MM-DD-YY" :
      vData = vMonth + "-" + vDD + "-" + vY2;
      break;

    case "DD\/MON\/YYYY" :
      vData = vDD + "\/" + vMon + "\/" + vY4;
      break;
    case "DD\/MON\/YY" :
      vData = vDD + "\/" + vMon + "\/" + vY2;
      break;
    case "DD-MON-YYYY" :
      vData = vDD + "-" + vMon + "-" + vY4;
      break;
    case "DD-MON-YY" :
      vData = vDD + "-" + vMon + "-" + vY2;
      break;

    case "DD\/MONTH\/YYYY" :
      vData = vDD + "\/" + vFMon + "\/" + vY4;
      break;
    case "DD\/MONTH\/YY" :
      vData = vDD + "\/" + vFMon + "\/" + vY2;
      break;
    case "DD-MONTH-YYYY" :
      vData = vDD + "-" + vFMon + "-" + vY4;
      break;
    case "DD-MONTH-YY" :
      vData = vDD + "-" + vFMon + "-" + vY2;
      break;

    case "DD\/MM\/YYYY" :
      vData = vDD + "\/" + vMonth + "\/" + vY4;
      break;
    case "DD\/MM\/YY" :
      vData = vDD + "\/" + vMonth + "\/" + vY2;
      break;
    case "DD-MM-YYYY" :
      vData = vDD + "-" + vMonth + "-" + vY4;
      break;
    case "YYYY-MM-DD" :
      vData = vY4 + "-" + vMonth + "-" + vDD;
      break;
    case "DD-MM-YY" :
      vData = vDD + "-" + vMonth + "-" + vY2;
      break;

    default :
      vData = vMonth + "\/" + vDD + "\/" + vY4;
  }

  return vData;
}

function Build(p_item, p_month, p_year, p_format) {
  var p_WinCal = ggWinCal;
  gCal = new Calendar(p_item, p_WinCal, p_month, p_year, p_format);

  // Customize your Calendar here..
  gCal.gBGColor="white";
  gCal.gLinkColor="black";
  gCal.gTextColor="black";
  gCal.gHeaderColor="darkgreen";

  // Choose appropriate show function
  if (gCal.gYearly)  gCal.showY();
  else  gCal.show();
}

function show_calendar() {
  /*
    p_month : 0-11 for Jan-Dec; 12 for All Months.
    p_year  : 4-digit year
    p_format: Date format (mm/dd/yyyy, dd/mm/yy, ...)
    p_item  : Return Item.
  */

  p_item = arguments[0];
  if (arguments[1] == null)
    p_month = new String(gNow.getMonth());
  else
    p_month = arguments[1];
  if (arguments[2] == "" || arguments[2] == null)
    p_year = new String(gNow.getFullYear().toString());
  else
    p_year = arguments[2];
  if (arguments[3] == null)
    p_format = "DD/MM/YYYY";
  else
    p_format = arguments[3];

  var VL_left = parseInt((screen.width - 130)/2);
  var VL_top  = parseInt((screen.height - 160)/2);
  vWinCal = window.open("", "Calendar", "width=130,height=160,status=no,resizable=no,top=" + VL_top + ",left=" + VL_left);
  vWinCal.opener = self;
  ggWinCal = vWinCal;

  Build(p_item, p_month, p_year, p_format);
}
/*
Yearly Calendar Code Starts here
*/
function show_yearly_calendar(p_item, p_year, p_format) {
  // Load the defaults..
  if (p_year == null || p_year == "")
    p_year = new String(gNow.getFullYear().toString());
  if (p_format == null || p_format == "")
    p_format = "DD/MM/YYYY";

  var vWinCal = window.open("", "Calendar", "scrollbars=yes");
  vWinCal.opener = self;
  ggWinCal = vWinCal;

  Build(p_item, null, p_year, p_format);
}

function FormataCEP(cep)
{
	if(cep.length == 8)
	{
		var cep_num = cep.onlynumber();
		var parte1 = cep_num.substr(0, 5);
		var parte2 = cep_num.substr(5, 3);
		return parte1 + "-" + parte2;
	}
	else
	{
		return cep;
	}
}
