function AumentarFonte(elemento) {
    switch (elemento.style.fontSize) {
        case '11px': {
            elemento.style.fontSize = '12px';
            break;
            }
        case '12px': {
            elemento.style.fontSize = '13px';
            break;
            }
        case '13px': {
            elemento.style.fontSize = '14px';
            break;
            }
        case '14px': {
            elemento.style.fontSize = '15px';
            break;
            }
        default: {
            if (elemento.style.fontSize != '15px') {
				elemento.style.fontSize = '12px';
			}
            break;
            }
    }
}

function DiminuirFonte(elemento) {
    switch (elemento.style.fontSize) {
        case '15px': {
            elemento.style.fontSize = '14px';
            break;
            }
        case '14px': {
            elemento.style.fontSize = '13px';
            break;
            }
        case '13px': {
            elemento.style.fontSize = '12px';
            break;
            }
        case '12px': {
            elemento.style.fontSize = '11px';
            break;
            }
        default: {
            elemento.style.fontSize = '11px';
            break;
            }
    }
}

/**
* Função para carregar conteúdo via AJAX
*/

try{
	xmlhttp = new XMLHttpRequest();
}catch(ee){
	try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");	
	}catch(e){
		try{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");		
		}catch(E){
			xmlhttp = false;		
		}	
	}
}

// cria a fila
fila=[];
ifila=0;

// funcao que carrega uma pagina dentro de um objeto qualquer
function carrega(url, destino){
    // coloca o texto "carregando" no objeto de carregamento
    document.getElementById(destino).innerHTML="<center><img src='img/loading_video.gif'></center>";

    // adiciona o item na fila
    fila[fila.length]=[url,destino];
    
    // se a fila estiver vazia, inicia a execução
    if((ifila+1)==fila.length)ajaxRun();
}

function espacoouvinte(){
	carrega('./espacoouvinte.html', 'conteudoMeio');
}

function ajaxrlimpar (destino)
{
	    document.getElementById(destino).innerHTML="<a href='javascript:espacoouvinte();'><strong>mande o seu recado</strong></a>";
}


//Executa a próxima conexão da fila
function ajaxRun(){
    // carrega os dados da pagina da fila
    url        = fila[ifila][0];
    destino    = fila[ifila][1];
        
    // carrega a pagina
    xmlhttp.open("GET", url, true);
    
    // headers
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	xmlhttp.setRequestHeader("Pragma", "no-cache");
	
    // ao completar o carregamento
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4){
            // coloca o valor no objeto requisitado
			texto=unescape(xmlhttp.responseText.replace(/\+/g," "));
            document.getElementById(destino).innerHTML=texto;

            // executa a proxima requisição da lista (se existir)
            ifila++;
            if(ifila<fila.length)setTimeout("ajaxRun()",20);
        }
    }
    // executa
    xmlhttp.send(url);
}

// função que le todos os campos de um form e envia!
function enviaForm(frmNome, url, destino){
    // Captura o form
    f = document.getElementById(frmNome);
    // inicializa nova URL
    var query=url;
    //Percorre elementos do formulario
    for (i=0;i<f.elements.length;i++){
        // se for a primeira variavel adiciona o "?" senao adiciona "&"
        query += i==0 ? '?' : '&';
        // concatena a variavel na query
        query += f.elements[i].name + '=' + f.elements[i].value;
    }
    // envia o formulario
    carrega(query, destino);
}

function setfocus(){
	document.login.usuario.focus();
}

function focacodigo(){
	document.form.codigo.focus();
}

// conta valores escrito no campo descricao e mostra numero no campo caracteres
function conta(){
	document.forms[0].caracteres.value=document.forms[0].descricao.value.length
}

function focamotivo(){
	document.form.motivo.focus();
}

// FUNCAO DE MENU DE SALTO
function mudapagina3(combo)
{
	var x = combo.selectedIndex;
	var endereco = combo.options[x].value;
	if (endereco != "#")
	{
		self.location = endereco;
	}
}

// MENU PASSA-MOUSE
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
	if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
		document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
		else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
		if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
	if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
	obj.visibility=v; }
}
// limpa campos
function clearText(thefield){if(thefield.defaultValue==thefield.value)
thefield.value=""}

// Popup
function AbreUrl(width,height,url,scroll,nJanela)
{
	if(scroll==""){scroll=0}
	var top = ((screen.height - height)/2);
	var left = ((screen.width - width)/2);
	var configuracao = "height=" + height + ",width=" + width + ",top=" + top + ",left=" + left + ",status=0,toolbar=0,menubar=0,location=0,resizable=0,scrollbars=" + scroll + ",titlebar=0"
	window.open(url,nJanela,configuracao)
}

// serviços de ping e nmap
function comentario(url)
{
	AbreUrl(420,480,url,1,'Comentario')
}

// call center
function callcenter(url)
{
	AbreUrl(480,480,url,0,'TipoChamada')
}

// serviços de ping e nmap
function AbreRel(url)
{
	AbreUrl(800,600,url,1,'Relatorios')
}
// pega dados do formulário para compor relatório
function relatorio() {
	var strParam = "";
	var idUs = document.form.idUs.value;
	var Data = document.form.Data.value;
	var elementos = new Array();
	var y =0;

	for (x =0; x < document.form.elements.length; x++) {
		if (document.form.elements[x].type == "text") {
			elementos[y] = document.form.elements[x];
			y++;
		}
	}
	for (i=0;i<elementos.length; i++) {
		strParam += elementos[i].name+"=";
		if (i == (elementos.length - 1 )) {
			strParam += elementos[i].value;
		}else {
			strParam += elementos[i].value+"&";
		}
	}
	AbreRel("./?site=relatorio&modelo=temperatura"+strParam);
}


// DATA
function MakeArray(n) {
	this.length = n
	return this
}
monthNames = new MakeArray(12)
monthNames[1] = "Jan"
monthNames[2] = "Fev"
monthNames[3] = "Mar"
monthNames[4] = "Abr"
monthNames[5] = "Mai"
monthNames[6] = "Jun"
monthNames[7] = "Jul"
monthNames[8] = "Ago"
monthNames[9] = "Set"
monthNames[10] = "Out"
monthNames[11] = "Nov"
monthNames[12] = "Dez"
dayNames = new MakeArray(7)
dayNames[1] = "Domingo"
dayNames[2] = "Segunda"
dayNames[3] = "Terça"
dayNames[4] = "Quarta"
dayNames[5] = "Quinta"
dayNames[6] = "Sexta"
dayNames[7] = "Sábado"

// MOSTRA DATA
function customDateString() {
	currentDate = new Date()
	var theDay = dayNames[currentDate.getDay() + 1]
	var theMonth = monthNames[currentDate.getMonth() + 1]
	msie4 = ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ));
	if (msie4) {
		var theYear = currentDate.getYear()
	}
	else {
		var theYear = currentDate.getYear() +1900
	}
	return theDay + ", " + currentDate.getDate() + " " + theMonth + " " + theYear
}

// ABRE JANELA
function promocao(URL) {
	aWindow=window.open(URL,"Large","toolbar=no,width=350,height=320,status=no,scrollbars=no,resize=no,menubars=no");
}

function comprar(URL) {
	aWindow=window.open(URL,"Large","toolbar=no,width=370,height=298,status=no,scrollbars=no,resize=no,menubars=no");
}

function legenda(URL) {
	aWindow=window.open(URL,"Large","toolbar=no,width=370,height=152,status=no,scrollbars=no,resize=no,menubars=no");
}

function comentarios(URL) {
	aWindow=window.open(URL,"Large","toolbar=no,width=385,height=500,status=no,scrollbars=yes,resize=no,menubars=no");
}

function ad_alb(URL) {
	aWindow=window.open(URL,"Large","toolbar=no,width=370,height=130,status=no,scrollbars=no,resize=no,menubars=no");
}


// ABRE JANELA - PADRAO A PARTIR DAQUI
function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

function writeCookie(name, data, noDays){
	var cookieStr = name + "="+ data
	if (writeCookie.arguments.length > 2){
		cookieStr += "; expires=" + getCookieExpireDate(noDays)
	}
	document.cookie = cookieStr
}

function readCookie(cookieName){
	var searchName = cookieName + "="
	var cookies = document.cookie
	var start = cookies.indexOf(cookieName)
	if (start == -1){ // cookie not found
		return ""
	}
	start += searchName.length //start of the cookie data
	var end = cookies.indexOf(";", start)
	if (end == -1){
		end = cookies.length
	}
	return cookies.substring(start, end)
}

function blocking(nr, cookie, vis_state)
{
	if (document.layers)
	{
		current = (document.layers[nr].display == 'none') ? vis_state : 'none';
		if (cookie != '')
		writeCookie(nr, current);
		document.layers[nr].display = current;
	}
	else if (document.all)
	{
		current = (document.all[nr].style.display == 'none') ? vis_state : 'none';
		if (cookie != '')
		writeCookie(nr, current);
		document.all[nr].style.display = current;
	}
	else if (document.getElementById)
	{
		display = (document.getElementById(nr).style.display == 'none') ? vis_state : 'none';
		if (cookie != '')
		writeCookie(nr, display);
		document.getElementById(nr).style.display = display;
	}
}


function adjust_popup()
{
	var w, h, fixedW, fixedH, diffW, diffH;

	if (document.all) {
		fixedW = document.body.clientWidth;
		fixedH = document.body.clientHeight;
		window.resizeTo(fixedW, fixedH);
		diffW = fixedW - document.body.clientWidth;
		diffH = fixedH - document.body.clientHeight;
	} else {
		fixedW = window.innerWidth;
		fixedH = window.innerHeight;
		window.resizeTo(fixedW, fixedH);
		diffW = fixedW - window.innerWidth;
		diffH = fixedH - window.innerHeight;
	}
	w = fixedW + diffW;
	h = fixedH + diffH;
	if (h >= screen.availHeight) w += 16;
	if (w >= screen.availWidth)  h += 16;
	w = Math.min(w,screen.availWidth);
	h = Math.min(h,screen.availHeight);
	window.resizeTo(w,h);
	window.moveTo((screen.availWidth-w)/2, (screen.availHeight-h)/2);
}
// Função de aviso qdo iniciado a automação
function IniciarAuto()
{
	var agree=confirm("Será iniciado o processo de automação das fotos.\nEste poderá demorar um pouco.\n\nClique em OK e aguarde...");
	if (agree)
	return true ;
	else
	return false ;
}

function OnLoad()
{
	if (document . getElementById) // IE5 NN6
	document . getElementById("loading") . style . visibility = "hidden";
	else if (document . layers) // NN4
	document . loading . visibility = "hidden";
	else if (document . all) // IE4
	document . all . loading . style . visibility = "hidden";
}

function prn()
{
	document.getElementById('printtools').style.visibility="hidden";
	window.print();

}

function Ver(width,height,url,scroll,nJanela)
{
	if(scroll==""){scroll=0}
	var top = ((screen.height - height)/2);
	var left = ((screen.width - width)/2);
	var configuracao = "height=" + height + ",width=" + width + ",top=" + top + ",left=" + left + ",status=0,toolbar=0,menubar=0,location=0,resizable=0,scrollbars=" + scroll + ",titlebar=0"
	window.open(url,nJanela,configuracao)
}

function disableRightClick(e)
{
	var message = "TV Urbana\nInterativa como você! \n[ www.tvurbana.net ]";

	if(!document.rightClickDisabled) // initialize
	{
		if(document.layers)
		{
			document.captureEvents(Event.MOUSEDOWN);
			document.onmousedown = disableRightClick;
		}
		else document.oncontextmenu = disableRightClick;
		return document.rightClickDisabled = true;
	}
	if(document.layers || (document.getElementById && !document.all))
	{
		if (e.which==2||e.which==3)
		{
			alert(message);
			return false;
		}
	}
	else
	{
		alert(message);
		return false;
	}
}
//disableRightClick();



<!-- CALENDARIO | Inicio -->

var weekend = [0,6];
var weekendColor = "#e0e0e0";
var fontface = "Verdana";
var fontsize = 1;


var img_esq = "/workflow/images/seta_esq.gif";
var img_dir = "/workflow/images/seta_dir.gif";

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 BORDER=0 BGCOLOR=\"" + this.gBGColor + "\">";

	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>Calendar</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 + "\">");
	this.wwriteA("<FONT FACE='" + fontface + "' size=1><B>");
	//this.wwriteA(this.gMonthName + " " + this.gYear);
	this.wwriteA("</B>");

	// 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 + "'" +
	");" +
	"\"> &lt;&lt; <\/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 + "'" +
	");" +
	"\"> &gt;&gt; <\/A></TD></TR><tr><td align=center>");

	this.wwrite("<A HREF=\"" +
	"javascript:window.opener.Build(" +
	"'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +
	");" +
	"\"> &lt;&lt; <\/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 + "'" +
	");" +
	"\"> &gt;&gt; <\/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>Calendar</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'><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("</font><BR></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 "MM-YYYY" :
		vData = 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];

	vWinCal = window.open("", "Calendar",
	"width=130,height=150,status=no,resizable=no,top=200,left=200");
	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);
}

<!-- CALENDARIO | Fim -->

function Limpar(valor, validos) {
	// retira caracteres invalidos da string
	var result = "";
	var aux;
	for (var i=0; i < valor.length; i++) {
		aux = validos.indexOf(valor.substring(i, i+1));
		if (aux>=0) {
			result += aux;
		}
	}
	return result;
}

/* ***********************************
*   FUNÇÕES DE VALIDAÇÃO DE CAMPOS
************************************ */

//Formata número tipo moeda usando o evento onKeyDown
function Formata(campo,tammax,teclapres,decimal) {
	// detecta tecla pressionada
	if(document.all) var tecla = teclapres.keyCode; // Internet Explorer
	else var tecla = teclapres.which; // Outros

	vr = Limpar(campo.value, "0123456789");
	tam = vr.length;
	dec=decimal

	if ((tecla != 13 && tecla != 16 && tecla != 46 && tecla != 35 && tecla != 36 && tecla != 8)
	&& (tecla < 48 || tecla > 57)){
		alert('['+ tecla +'] Digite apenas números.\nO sistema se encarrega de formatar.');
		campo.focus();
		return false;
	}else{

		if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

		if (tecla == 8 )
		{ tam = tam - 1 ; }

		if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
		{

			if ( tam <= dec )
			{ campo.value = vr ; }

			if ( (tam > dec) && (tam <= 5) ){
				campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ) ; }
				if ( (tam >= 6) && (tam <= 8) ){
					campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ;
				}
				if ( (tam >= 9) && (tam <= 11) ){
					campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
					if ( (tam >= 12) && (tam <= 14) ){
						campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
						if ( (tam >= 15) && (tam <= 17) ){
							campo.value = 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 ) ;}
		}
	}
}

// Funções de Validação de Campos

//adiciona mascara de cnpj
function MascaraCNPJ(cnpj){
	if(mascaraInteiro(cnpj)==false){
		event.returnValue = false;
	}
	return formataCampo(cnpj, '00.000.000/0000-00', event);
}

//adiciona mascara de cep
function MascaraCep(cep){
	if(mascaraInteiro(cep)==false){
		event.returnValue = false;
	}
	return formataCampo(cep, '00000-000', event);
}

//adiciona mascara de data
function MascaraData(data){
	if(mascaraInteiro(data)==false){
		event.returnValue = false;
	}
	return formataCampo(data, '00/00/0000', event);
}

//adiciona mascara de data por extenso
function MascaraDataExtenso(data){
	if(mascaraInteiro(data)==false){
		event.returnValue = false;
	}
	return formataCampo(data, '00/00/0000 00:00:00', event);
}

//adiciona mascara ao telefone
function MascaraTelefone(tel){
	if(mascaraInteiro(tel)==false){
		event.returnValue = false;
	}
	return formataCampo(tel, '(00)0000-0000', event);
}

//adiciona mascara ao CPF
function MascaraCPF(cpf){
	if(mascaraInteiro(cpf)==false){
		event.returnValue = false;
	}
	return formataCampo(cpf, '000.000.000-00', event);
}

//valida telefone
function ValidaTelefone(tel){
	exp = /\(\d{2}\)\d{4}\-\d{4}/
	if(!exp.test(tel.value)){
		alert('Formato do Telefone inválido!');
	}
}

//valida CEP
function ValidaCep(cep){
	exp = /\d{5}\-\d{3}/
	if(!exp.test(cep.value)){
		alert('Formato do CEP inválido!');
	}
}

//valida data
function ValidaData(data, focar){
	exp = /\d{2}\/\d{2}\/\d{4}/
	if(!exp.test(data.value)){
		alert('Formato de data inválido!');
		if (focar==true) data.focus();
	}
}

//valida data
function ValidaDataExtenso(data, focar){
	exp = /\d{2}\/\d{2}\/\d{4}\ \d{2}\:\d{2}\:\d{2}/
	if(!exp.test(data.value)){
		alert('Formato de data inválido!');
		if (focar==true) data.focus();
	}
}

//valida o CPF digitado
function ValidarCPF(Objcpf){
	var cpf = Objcpf.value;
	exp = /\.|\-/g
	cpf = cpf.toString().replace( exp, "" );
	var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
	var soma1=0, soma2=0;
	var vlr =11;

	for(i=0;i<9;i++){
		soma1+=eval(cpf.charAt(i)*(vlr-1));
		soma2+=eval(cpf.charAt(i)*vlr);
		vlr--;
	}
	soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
	soma2=(((soma2+(2*soma1))*10)%11);

	var digitoGerado=(soma1*10)+soma2;
	if(digitoGerado!=digitoDigitado)
	alert('CPF Invalido!');
}

//valida numero inteiro com mascara
function mascaraInteiro(){
	if (event.keyCode < 48 || event.keyCode > 57){
		event.returnValue = false;
		return false;
	}
	return true;
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
	var cnpj = ObjCnpj.value;
	var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
	var dig1= new Number;
	var dig2= new Number;

	exp = /\.|\-|\//g
	cnpj = cnpj.toString().replace( exp, "" );
	var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));

	for(i = 0; i<valida.length; i++){
		dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);
		dig2 += cnpj.charAt(i)*valida[i];
	}
	dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
	dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));

	if(((dig1*10)+dig2) != digito)
	alert('CNPJ Invalido!');

}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
	var boleanoMascara;

	var Digitato = evento.keyCode;
	exp = /\-|\.|\:|\/|\(|\)| /g
	campoSoNumeros = campo.value.toString().replace( exp, "" );

	var posicaoCampo = 0;
	var NovoValorCampo="";
	var TamanhoMascara = campoSoNumeros.length;;

	if (Digitato != 8) { // backspace
		for(i=0; i<= TamanhoMascara; i++) {
			boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == ":") || (Mascara.charAt(i) == "/"))
			boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
			if (boleanoMascara) {
				NovoValorCampo += Mascara.charAt(i);
				TamanhoMascara++;
			}else {
				NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
				posicaoCampo++;
			}
		}
		campo.value = NovoValorCampo;
		return true;
	}else {
		return true;
	}
}
