// Esse javascript renderiza um calendário.

// Vetor com os dias que serão considerados fim de semana, no 0 = dom

//----------------- Variaveis para customizacao do calendario.
// 1 = seg, 2 = ter, 3 = qua, 4 = qui, 5 = sex e 6 = sab.
var weekend = [0];
// Cor do dia atual
var nowDayColor = "#FFAE31";

// cor das células da tabela de calendário, exceto as células dos finais de semana
var corCelula = "#FFFFFF";

//  cor do texto que contém link
var corLink = "#0079A9";

// cor do texto
var corFonte = "#000000";

// cor do cabeçalho
var corCabecalho = "#336699";

// Cor da célula dos finais de semana(definido no vetor weekend).
var weekendColor = "#E5E5E5";

// Nome da fonte para o texto do calendário.
var fontface = "Verdana";
// Tamanho da fonte padrão.
var fontSize = "2";
// Nome do título.
var vTitulo = "Calendário";

// Caminho da imagem que indica o ano anterior
var iconPreviousYear = "../static/images/Icon_previous_N.gif";
// Caminho da imagem que indica o mes anterior
var iconPreviousMonth = "../static/images/Icon_previous_N.gif";
// Caminho da imagem que indica o proximo ano
var iconNextYear = "../static/images/Icon_next_N.gif";
// Caminho da imagem que indica o proximo mes
var iconNextMonth = "../static/images/Icon_next_N.gif";

// Define o formato da data a ser inserido no campo. (Verificar o método Calendar.prototype.format_data)
var formatoData = "DD\/MM\/YYYY";

// Define o nome dos dias da semana:
var dom = "Dom";
var seg = "Seg";
var ter = "Ter";
var qua = "Qua";
var qui = "Qui";
var sex = "Sex";
var sab = "Sab";

// Define os nomes dos meses existentes no calendário
Calendar.Months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho",
"Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];

// Define variáveis auxiliares das TAGs

var p_toppos = "200";
var p_leftpos = "750";
var aux = "";
semana = [dom,seg,ter,qua,qui,sex,sab];


// FIM ----------------- Variaveis para customizacao do calendario.

//Define o navegador utilizado
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

var gNow = new Date();
var ggWinCal;

// Dias dos meses do ano não bissexto
Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// Dias dos meses do ano bissexto
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 que retorna o nome do mês, dado o número do mês.
function Calendar_get_month(monthNo) {
        return Calendar.Months[monthNo];
}

/** Function que verifica quantos dias o mês vai ter respeitando o ano bissexto.
* monthNo: número do mês
* p_year: ano
*/
function Calendar_get_daysofmonth(monthNo, p_year) {
        /*
        Check for leap year ..
        1.Years evenly divisible by four are normally leap years, except for...
        2.Years also evenly divisible by 100 are not leap years, except for...
        3.Years also evenly divisible by 400 are leap years.
        */
        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 que calcula qual o mês e ano pesquisado
function Calendar_calc_month_year(p_Month, p_Year, incr) {
        /*
        Apos ser aplicado o incremento(incr) normalmente 1 ou -1 para a navegacao no menu dos meses e anos
        a function retornarah um array de 1 dimensao com o primeiro elemento com o mes calculado
        e o segundo elemento o ano.
        */
        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();
}

// Calendário protótipo.
new Calendar();

Calendar.prototype.getMonthlyCalendarCode = function() {
        var vCode = "";
        var vHeader_Code = "";
        var vData_Code = "";

        // Inicio da escrita da tabela
        vCode = vCode + "<CENTER><TABLE BORDER=1 BGCOLOR=\"" + this.gBGColor + "\">";

        vHeader_Code = this.cal_header();
        vData_Code = this.cal_data();
        vCode = vCode + vHeader_Code + vData_Code;

        vCode = vCode + "</TABLE></CENTER> ";

        return vCode;
}

// function que chama as demais functions para renderizacao do calendario.
Calendar.prototype.show = function() {
        var vCode = "";

        this.gWinCal.document.open();

        // Setup the page...
        this.wwrite("<html>");
        this.wwrite("<head><title>" + vTitulo + "</title>");
        this.wwrite("</head>");

        this.wwrite("<body " +
                "link=\"" + this.gLinkColor + "\" " +
                "vlink=\"" + this.gLinkColor + "\" " +
                "alink=\"" + this.gLinkColor + "\" " +
                "text=\"" + this.gTextColor + "\">");

        // Mostra os botoes de navegacao
        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 BORDER='0' WIDTH='100%' BGCOLOR='white' CELLPADDING='0'");

        //ano anterior
        this.wwrite("<TR WIDTH ='100%'>");
        this.wwrite("<TD ALIGN ='right' WIDTH='33%'>");
        this.wwrite("<A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" + this.gFormat + "'" +
                ");" +
                "\"> <img src='" + iconPreviousYear +
                "' width='16' height='16' BORDER='0'><\/A></TD>");

        // Apresenta o ano em negrito entre as setas
        this.wwrite("<TD ALIGN='center'> <FONT SIZE='" + fontSize + "' FACE='" + fontface + "'><B>" + this.gYear + "</B><BR></TD>");

        // proximo ano
        this.wwrite("<TD ALIGN='left' WIDTH='33%'>");
        this.wwrite("<A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" + this.gFormat + "'" +
                ");" +
                "\"> <img src='" + iconNextYear +
                "' width='16' height='16' border='0'><\/A></TD>");
        this.wwrite("</TR>");

        // mes anterior
        this.wwrite("<TR WIDTH ='100%'>");
        this.wwrite("<TD ALIGN ='right' WIDTH='33%'>");
        this.wwrite("<A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +
                ");" +
                "\"> <img src='" + iconPreviousMonth +
                "' width='16' height='16' border='0'><\/A></TD>");

        // Apresenta o mes em negrito entre as setas
        this.wwrite("<TD ALIGN='center'> <FONT SIZE='" + fontSize + "' FACE='" + fontface + "'><B>" + this.gMonthName + "</B><BR></TD>");


        // proximo mes
        this.wwrite("<TD ALIGN ='left' WIDTH='33%'>");
        this.wwrite("<A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +
                ");" +
                "\"> <img src='" + iconNextMonth +
                "' width='16' height='16' border='0'><\/A></TD>");
        this.wwrite("</TR></TABLE>");

        // Pega o codigo do calendario do proximo mes completo.
        vCode = this.getMonthlyCalendarCode();
        this.wwrite(vCode);

        this.wwrite("</font></body></html>");
        this.gWinCal.document.close();
}

/**
Usado para formatacao a qual o ano vem primeiro
Tem que ser formatado e atualizado conforme a function show()
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> " + vTitulo + "</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();
}
*/

// Function que escreve na tela usando writeln
Calendar.prototype.wwrite = function(wtext) {
        this.gWinCal.document.writeln(wtext);
}

// Function que escreve na tela usando write
Calendar.prototype.wwriteA = function(wtext) {
        this.gWinCal.document.write(wtext);
}
// Function que escreve o cabecalho da tabela do calendario, os dias da semana.
Calendar.prototype.cal_header = function() {
        var vCode = "";

        vCode = vCode + "<TR>";
        vCode = vCode + "<TD ALIGN='center' WIDTH='14%'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>" + dom + "</B></FONT></TD>";
        vCode = vCode + "<TD ALIGN='center' WIDTH='14%'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>" + seg + "</B></FONT></TD>";
        vCode = vCode + "<TD ALIGN='center' WIDTH='14%'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>" + ter + "</B></FONT></TD>";
        vCode = vCode + "<TD ALIGN='center' WIDTH='14%'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>" + qua + "</B></FONT></TD>";
        vCode = vCode + "<TD ALIGN='center' WIDTH='14%'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>" + qui + "</B></FONT></TD>";
        vCode = vCode + "<TD ALIGN='center' WIDTH='14%'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>" + sex + "</B></FONT></TD>";
        vCode = vCode + "<TD ALIGN='center' WIDTH='16%'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>" + sab + "</B></FONT></TD>";
        vCode = vCode + "</TR>";

        return vCode;
}


// Function que escreve o código html pro calendário.
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.
        */

        // Preenche as primeiras celulas com valores invalidos para construir corretamente a tabela e
        // deixa a cor do texto igual a cor da celula.

        vCode = vCode + "<TR>";
        for (i=0; i<vFirstDay; i++) {
        vCode = vCode + "<TD WIDTH='14%' ALIGN='center'><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + corCelula + "'>" + i + "</FONT></TD>";
        }

        // Escreve o resto da primeira semana
        for (j=vFirstDay; j<7; j++) {
                vCode = vCode + "<TD WIDTH='14%' ALIGN='center' &nbsp; xxxx " + this.write_weekend_string(j) + "><FONT SIZE='" + fontSize + "' FACE='" + fontface + "'>" +
                        "<A HREF='#' " +
                                "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
                                this.format_data(vDay) +
                                "';window.close();\" style='text-decoration:none'>" +
                                this.format_day(vDay) +
                        "</A>" +
                        "</FONT></TD>";
                vDay=vDay + 1;
        }
        vCode = vCode + "</TR>";

        // Escreve o resto das semanas.
        for (k=2; k<7; k++) {
                vCode = vCode + "<TR>";

                for (j=0; j<7; j++) {
                        vCode = vCode + "<TD WIDTH='14%' ALIGN='center' &nbsp; " + this.write_weekend_string(j) + "><FONT SIZE='" + fontSize + "' FACE='" + fontface + "'>" +
                                "<A HREF='#' " +
                                        "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
                                        this.format_data(vDay) +
                                        "';window.close();\" style='text-decoration:none'>" +
                                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;
        }

        // Preenche as ultimas celulas com valores invalidos para construir corretamente a tabela e
        // deixa a cor do texto igual a cor da celula.
        for (m=1; m<(7-j); m++) {
                if (this.gYearly)
                        vCode = vCode + "<TD WIDTH='14%' ALIGN='center' &nbsp; " + this.write_weekend_string(j+m) +
                        "><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + corCelula + "'> </FONT></TD>";
                else
                        vCode = vCode + "<TD WIDTH='14%' ALIGN='center' &nbsp; " + this.write_weekend_string(j+m) +
                        "><FONT SIZE='" + fontSize + "' FACE='" + fontface + "' COLOR='" + corCelula + "'>" + m + "</FONT></TD>";
        }

        return vCode;
}

// Function que formata o dia atual
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='" + nowDayColor + "'\"><B>" + vday + "</B></FONT>");
        else
                return (vday);
}

// Function que retorna uma formatacao especial para o final de semana (weekend)
Calendar.prototype.write_weekend_string = function(vday) {
        var i;
        for (i=0; i<weekend.length; i++) {
                if (vday == weekend[i])
                        return (" BGCOLOR=\"" + weekendColor + "\"");
        }
        return "";
}

// Function que define a formatacao da data a ser inserida no campo.
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;
                // PADRÃO USADO NO REVCHECK
                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 "DD-MM-YY" :
                        vData = vDD + "-" + vMonth + "-" + vY2;
                        break;
                default :
                        vData = vMonth + "\/" + vDD + "\/" + vY4;
        }

        return vData;
}

// Function para construir o calendario conforme as configuracoes.
// A maioria das configuracoes estao no topo dessa pagina.
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= corCelula; // cor das células da tabela de calendário, exceto as células dos finais de semana
        gCal.gLinkColor= corLink ; //  cor do texto que contém link
        gCal.gTextColor= corFonte ; // cor do texto
        gCal.gHeaderColor= corCabecalho; // cor do cabeçalho

        // Escolha da funcao apropriada (nesse script está sendo usada sempre gCal.show())
        if (gCal.gYearly)	gCal.showY();
        else	gCal.show();
}

// function que mostra o calendario padrao.
function show_calendar_cp() {
        /*
                p_month : 0-11 para Jan-Dez; 12 for todos meses.
                p_year	: 4-digito para ano
                p_format: formato de data (mm/dd/yyyy, dd/mm/yy, ...)
                p_item	: Retorna 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 = formatoData;
        else
                p_format = arguments[3];

        vWinCal = window.open("", vTitulo,
                "width=260,height=215,status=no,resizable=no,top=267,left=750,titlebar=no ");
        vWinCal.opener = self;
        ggWinCal = vWinCal;

        Build(p_item, p_month, p_year, p_format);
}


// function que mostra o calendario Internacionalizado para TAG LIB
function show_calendar_tag() {

	p_item = arguments[0];
	var i = 0;
	var ii = 0;

	// adquire as strings internacionalizadas de semana

	aux = arguments[5];
	
        for (i=1; i<8; i++) {

		 if (i == 7) {
			 semana[i] = aux;
		 } else 
		 {		
			semana[i] = aux.substring(aux.indexOf(" ")-3,(aux.indexOf(" ")));
			aux = aux.substring((aux.indexOf(" ")+1),aux.length);
		 }
        }

	dom = semana[1];
	seg = semana[2];
	ter = semana[3];
	qua = semana[4];
	qui = semana[5];
	sex = semana[6];
	sab = semana[7];

 
 	// adquire as string internacionalizadas de mes
 	aux = arguments[4];
 	
 	Calendar.Months = ["", "", "", "", "", "","", "", "", "", "", ""];
 	
	ii = 0;

	for (i=0; i<(aux.length); i++){
		if (aux.substring(i,i+1) != " "){
			Calendar.Months[ii] = Calendar.Months[ii] + aux.substring(i,i+1); 			
		} else {
			ii++;
		}
	}
        if (arguments[1] == null)
                p_format = formatoData;
        else
                p_format = arguments[1];

        if (arguments[2] == null)
                p_toppos = "267";
        else
                p_toppos = arguments[2];

        if (arguments[3] == null)
                p_leftpos = "750";
        else
                p_leftpos = arguments[3];

        p_month = new String(gNow.getMonth());
                
        p_year = new String(gNow.getFullYear().toString());

	aux = "width=260,height=215,status=no,resizable=no,top="+ p_toppos + ",left="+p_leftpos+",titlebar=no"

        vWinCal = window.open("", vTitulo, aux);
        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 = "MM/DD/YYYY";

        var vWinCal = window.open("", "Calendar", "scrollbars=yes");
        vWinCal.opener = self;
        ggWinCal = vWinCal;

        Build(p_item, null, p_year, p_format);
}
*/

