<!--
//
// @VERSAO 1.2 2009-05-09
//

// initialiZe variables... 
var ppcIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)));
var ppcNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5));
var ppcNN=((navigator.appName == "Netscape")&&(document.layers));
var ppcX = 4;
var ppcY = 4;

var names = new makeArray0('Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez');
var days  = new makeArray0(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var dow   = new makeArray0(
	'<SPAN title=Domingo>D</SPAN>',
	'<SPAN title=Segunda-feira>S</SPAN>',
	'<SPAN title=Terça-feira>T</SPAN>',
	'<SPAN title=Quarta-feira>Q</SPAN>',
	'<SPAN title=Quinta-feira>Q</SPAN>',
	'<SPAN title=Sexta-feira>S</SPAN>',
	'<SPAN title=Sábado>S</SPAN>');
var hLabel= new makeArray0('Apagar','Mês anterior','Mês seguinte','Fechar');

var imgPath = "calendario/";

var calfrmName;
var IsCalendarVisible = false;
var todayDate = new Date; 
var curDate = new Date; 
var curDateBox;
var minDate = new Date;
var maxDate = new Date;
var marcDate = new Date;
var hideDropDowns;
var FuncsToRun;

var minYearList = todayDate.getFullYear() - 1; 
var maxYearList = todayDate.getFullYear() + 10;
var IsUsingMinMax;

//----------------------------------------

document.write('<DIV id=calendario></DIV>');
loadjscssfile("calendario/calendario.css", "css");

//----------------------------------------


function loadjscssfile(filename, filetype) {
    if (filetype=="js") {
        var fileref = document.createElement("script");
        fileref.setAttribute("type", "text/javascript");
        fileref.setAttribute("src", filename);
    } else if (filetype=="css") {
        var fileref = document.createElement("link");
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", filename);
    }
    if (typeof fileref!="undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref);
}

function getOffsetLeft(el) {
    var ol = el.offsetLeft;
    while ((el = el.offsetParent) != null)
        ol += el.offsetLeft;
    return ol;
}

function getOffsetTop(el) {
    var ot = el.offsetTop;

    while((el = el.offsetParent) != null)
        ot += el.offsetTop;
    return ot + 2;
}

function showCalendar(frmName, dteBox, btnImg, hideDrops, MnDt, MnMo, MnYr, MxDt, MxMo, MxYr, runFuncs) {
    hideDropDowns = hideDrops;
    FuncsToRun = runFuncs;
    calfrmName = frmName;

    //if (IsCalendarVisible) {
    //    hideCalendar();
    //    return;
    //}

    if (hideDropDowns) {
        toggleDropDowns('hidden');
    }
    IsUsingMinMax = false;
    if ((MnDt != null) && (MnMo != null) && (MnYr != null) && (MxDt != null) && (MxMo != null) && (MxYr != null)) {
        IsUsingMinMax = true;
        minDate.setDate(MnDt);
        minDate.setMonth(MnMo - 1);
        minDate.setFullYear(MnYr);
        maxDate.setDate(MxDt);
        maxDate.setMonth(MxMo - 1);
        maxDate.setFullYear(MxYr);

	minYearList = MnYr; 
	maxYearList = MxYr + 1;
    }
        
    curDateBox = dteBox;

    if (document.layers) marcDate = document.layers['' + dteBox + ''].value;
    else if (document.all) marcDate = document.all['' + dteBox + ''].value;
    else if (document.getElementById) marcDate = document.getElementById('' + dteBox + '').value;  

    if (marcDate != '') {
	if (marcDate.indexOf("-")<0) marcDate = marcDate + "-01-32";
	if (marcDate.indexOf("-")>0) marcDate = marcDate + "-32";
	mDate = marcDate.split("-");
	if (!(mDate[0]>0 && mDate[1]>0 && mDate[2]>0)) {
            marcDate="";
            eval('document.' + calfrmName + '.' + curDateBox + '.value = \'\'');
        }
    }

    if (ppcIE) {
        ppcX = getOffsetLeft(document.images[btnImg]);    
        ppcY = getOffsetTop(document.images[btnImg]) + document.images[btnImg].height; //-2
    }
    else if (ppcNN) {
        ppcX = document.images[btnImg].x; 
        ppcY = document.images[btnImg].y + document.images[btnImg].height; // -2
    }

    if (marcDate == '') {
        domlay('calendario', 1, ppcX, ppcY, Calendar(todayDate.getMonth(), todayDate.getFullYear()));
    } else {       
	domlay('calendario', 1, ppcX, ppcY, Calendar(mDate[1] - 1, mDate[0]));
    }
    //domlay('calendario', 1, ppcX, ppcY, Calendar(curDate.getMonth(), curDate.getFullYear()));

    IsCalendarVisible = true;

    //document.onmouseup = hideCalendar;
    // if (document.layers) document.layers['Cal'].onmouseup=alert(1)
    // else if (document.all) document.all['Cal'].onmouseover=alert(12)
    // else if (document.getElementById) document.getElementById('Cal').onmouseup=alert(123);
}

function toggleDropDowns(showHow) {
    var i; var j;

    for (i = 0; i < document.forms.length; i++) {
        for (j=0; j<document.forms[i].elements.length; j++) {
            if (document.forms[i].elements[j].tagName == "SELECT") {
                if (document.forms[i].name != "Cal")
                    document.forms[i].elements[j].style.visibility = showHow;
            }
        }
    }
}

function hideCalendar() {
    domlay('calendario', 0, ppcX, ppcY);
    IsCalendarVisible = false;
    toggleDropDowns('visible');
}

function domlay(id, trigger, lax, lay, content) {
    /*
     * Cross browser Layer visibility / Placement Routine
     * Done by Chris Heilmann (mail@ichwill.net)
     * Feel free to use with these lines included!
     * Created with help from Scott Andrews.
     * The marked part of the content change routine is taken
     * from a script by Reyn posted in the DHTML
     * Forum at Website Attraction and changed to work with
     * any layername. Cheers to that!
     * Welcome DOM-1, about time you got included... :)
     */

    // Layer visible
    if (trigger == "1") {
        if (document.layers) document.layers[''+id+''].visibility = "show"
        else if (document.all) document.all[''+id+''].style.visibility = "visible"
        else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "visible"                
    }
    // Layer hidden
    else if (trigger == "0") {
        if (document.layers) document.layers[''+id+''].visibility = "hide"
        else if (document.all) document.all[''+id+''].style.visibility = "hidden"
        else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "hidden"             
    }
    // Set horizontal position  
    if (lax) {
        if (document.layers){document.layers[''+id+''].left = lax}
        else if (document.all){document.all[''+id+''].style.left=lax}
        else if (document.getElementById){document.getElementById(''+id+'').style.left=lax+"px"}
    }
    // Set vertical position
    if (lay) {
        if (document.layers){document.layers[''+id+''].top = lay}
        else if (document.all){document.all[''+id+''].style.top=lay}
        else if (document.getElementById){document.getElementById(''+id+'').style.top=lay+"px"}
    }
    // change content
    if (content) {
        if (document.layers) {
            sprite=document.layers[''+id+''].document;
            // add father layers if needed! document.layers[''+father+'']...
            sprite.open();
            sprite.write(content);
            sprite.close();
        } else if (document.all) document.all[''+id+''].innerHTML = content;  
    else if (document.getElementById) {
        rng = document.createRange();
        el = document.getElementById(''+id+'');
        rng.setStartBefore(el);
        htmlFrag = rng.createContextualFragment(content)
        while(el.hasChildNodes()) el.removeChild(el.lastChild);
        el.appendChild(htmlFrag);
        }
    }
}

function Calendar(whatMonth, whatYear) {
    var output = '';
    var datecolwe;
    var startMonth = whatMonth;
    var startYear = whatYear;

    curDate.setFullYear(whatYear);
    curDate.setMonth(whatMonth);
    curDate.setDate(todayDate.getDate());
    output += '<form name="Cal" id="Cal">';

    output += '<table class="cal-Table" cellspacing="0" cellpadding="0"><tr>';
    output += '<td class="cal-HeadCell">';

    output += '<a href="javascript:clearDay();" class="sprite apagar" title="'+hLabel[0]+'"><\/a>';
    output += '<a href="javascript:scrollMonth(-1);" class="sprite tras" title="'+hLabel[1]+'"><\/a>';
    
    //year
    output += '<SELECT class="cal-TextBox" name="cboYear" onChange="changeYear();">';
    for (year=minYearList; year<maxYearList; year++) {
        if (year == whatYear) output += '<OPTION VALUE="' + year + '" SELECTED>' + year + '<\/OPTION>';
        else output += '<OPTION VALUE="' + year + '">' + year + '<\/OPTION>';
    }
    output += '<\/SELECT>';

    //month
    output += '<SELECT class="cal-TextBox" name="cboMonth" onChange="changeMonth();">';
    for (month=0; month<12; month++) {
        if (month == whatMonth) output += '<OPTION VALUE="' + month + '" SELECTED>' + names[month] + '<\/OPTION>';
        else output += '<OPTION VALUE="' + month + '">' + names[month] + '<\/OPTION>';
    }
    output += '<\/SELECT>';

    output += '<a href="javascript:scrollMonth(1);" class="sprite frente" title="'+hLabel[2]+'"><\/a>';
    output += '<a href="javascript:hideCalendar();" class="sprite fechar" title="'+hLabel[3]+'"><\/a>';
    output += '<\/td><\/tr>';

    output += '<tr><td>';

    firstDay = new Date(whatYear, whatMonth, 1);
    startDay = firstDay.getDay();

    if (((whatYear % 4 == 0) && (whatYear % 100 != 0)) || (whatYear % 400 == 0)) {
         days[1] = 29;
    } else {
         days[1] = 28;
    }

    output += '<table width="180" class="cal-Table2" cellspacing="0" cellpadding="0"><tr>';

    for (i=0; i<7; i++) {
	datecolwe = 'border:none;';
	// weekend
        if (i==0 || i==6) {
            datecolwe = 'border:none;color:#999;';
        }
        output += '<td class="cal-HeadCell" style="'+ datecolwe +'" width="14%">'+ dow[i] +'<\/td>';
    }
    
    output += '<\/tr><tr>';

    var column = 0;
    var lastMonth = whatMonth - 1;
    var lastYear = whatYear;
    if (lastMonth == -1) {lastMonth = 11; lastYear = lastYear-1;}

    for (i=0; i<startDay; i++, column++) {
        output += getDayLink((days[lastMonth]-startDay+i+1), true, lastMonth, lastYear, column);
    }

    for (i=1; i<=days[whatMonth]; i++, column++) {
        output += getDayLink(i, false, whatMonth, whatYear, column);
        if (column == 6) {
            output += '<\/tr><tr>';
            column = -1;
        }
    }
    
    var nextMonth = whatMonth+1;
    var nextYear = whatYear;
    if (nextMonth==12) {nextMonth = 0; nextYear = nextYear+1;}
    
    if (column > 0) {
        for (i=1; column<7; i++, column++) {
            output += getDayLink(i, true, nextMonth, nextYear, column);
        }
        output += '<\/tr><\/table><\/td><\/tr>';
    } else {
        output = output.substr(0, output.length-4); // remove the <tr> from the end if there's no last row
        output += '<\/table><\/td><\/tr>';
    }
    output += '<\/table>';
    output += '<\/form>';

    curDate.setDate(1);
    curDate.setMonth(startMonth);
    curDate.setFullYear(startYear);
    return output;
}

function getDayLink(linkDay, isGreyDate, linkMonth, linkYear, weekday) {
    var templink;
    var cl = '"cal-DayCell"';

    if (IsUsingMinMax) {
        if (isDayValid(linkDay, linkMonth, linkYear)) {
            if (isGreyDate){
                templink = '<td class="cal-GreyDate">' + linkDay + '<\/td>';
            } else {
                //marca o dia do input
		mDate = marcDate.split("-");
if (weekday==0 || weekday==6) { cl = '"cal-WECell"';}
		if (mDate[0] == linkYear && mDate[1]-1 == linkMonth && mDate[2] == linkDay) {
		    cl = '"cal-DayCellMarc"';			
		}
                if (isDayToday(linkDay)) {
                    //marca dia de hoje
                    templink = '<td class=' + cl + '>' + '<a class="cal-TodayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' + '<\/td>';
                } else {
                    templink = '<td class=' + cl + '>' + '<a class="cal-DayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' + '<\/td>';
                }
            }
        } else {
            templink = '<td class="cal-GreyInvalidDate">' + linkDay + '<\/td>';
        }
    } else {
        if (isGreyDate) {
            templink = '<td class="cal-GreyDate">' + linkDay + '<\/td>';
        } else {
if (weekday==0 || weekday==6) { cl = '"cal-WECell"';}
            if (isDayToday(linkDay)) {
                templink = '<td class=' + cl + '>' + '<a class="cal-TodayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' + '<\/td>';
            } else {
                templink = '<td class=' + cl + '>' + '<a class="cal-DayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' + '<\/td>';
            }
        }
    }
    return templink;
}

function isDayToday(isDay) {
    if ((curDate.getFullYear() == todayDate.getFullYear()) && (curDate.getMonth() == todayDate.getMonth()) && (isDay == todayDate.getDate())) {
        return true;
    } else {
        return false;
    }
}

function isDayValid(validDay, validMonth, validYear) {
    curDate.setFullYear(validYear);
    curDate.setMonth(validMonth);
    curDate.setDate(validDay);

    //futuro - if (curDate > todayDate)
    
    if ((curDate >= minDate) && (curDate <= maxDate)) {
        return true;
    } else {
        return false;
    }
}

function padout(number) { 
    return (number < 10) ? '0' + number : number; 
}

function clearDay() {
    eval('document.' + calfrmName + '.' + curDateBox + '.value = \'\'');
    hideCalendar();
    if (FuncsToRun!=null) eval(FuncsToRun); 
}

function changeDay(whatDay) {
    curDate.setDate(whatDay);
    eval('document.' + calfrmName + '.' + curDateBox + '.value = "'+ curDate.getFullYear() + '-' + padout([curDate.getMonth()+1]) + '-' + padout(curDate.getDate()) +'"');
    hideCalendar();
    if (FuncsToRun!=null) eval(FuncsToRun); 
}

function scrollMonth(amount) {
    var monthCheck;
    var yearCheck;
    
    if (ppcIE) {
        monthCheck = document.forms["Cal"].cboMonth.selectedIndex + amount;
    } else if (ppcNN) {
        monthCheck = document.calendario.document.forms["Cal"].cboMonth.selectedIndex + amount;    
    }
    if (monthCheck < 0) {
        yearCheck = curDate.getFullYear() - 1;
        if ( yearCheck < minYearList ) {
            yearCheck = minYearList;
            monthCheck = 0;
        } else {
            monthCheck = 11;
        }
        curDate.setFullYear(yearCheck);
    }
    else if (monthCheck >11) {
        yearCheck = curDate.getFullYear() + 1;
        if ( yearCheck > maxYearList-1 ) {
            yearCheck = maxYearList-1;
            monthCheck = 11;
        } else {
            monthCheck = 0;
        }      
        curDate.setFullYear(yearCheck);
    }
    
    if (ppcIE) {
        curDate.setMonth(document.forms["Cal"].cboMonth.options[monthCheck].value);
    } else if (ppcNN) {
        curDate.setMonth(document.calendario.document.forms["Cal"].cboMonth.options[monthCheck].value );
    }
    domlay('calendario', 1, ppcX, ppcY, Calendar(curDate.getMonth(), curDate.getFullYear()));
}

function changeMonth() {
    if (ppcIE) {        
        curDate.setMonth(document.forms["Cal"].cboMonth.options[document.forms["Cal"].cboMonth.selectedIndex].value);
        domlay('calendario', 1, ppcX, ppcY, Calendar(curDate.getMonth(), curDate.getFullYear()));
    } else if (ppcNN) {
        curDate.setMonth(document.calendario.document.forms["Cal"].cboMonth.options[document.calendario.document.forms["Cal"].cboMonth.selectedIndex].value);
        domlay('calendario', 1, ppcX, ppcY, Calendar(curDate.getMonth(), curDate.getFullYear()));
    }
}

function changeYear() {
    if (ppcIE) {
        curDate.setFullYear(document.forms["Cal"].cboYear.options[document.forms["Cal"].cboYear.selectedIndex].value);
        domlay('calendario', 1, ppcX, ppcY, Calendar(curDate.getMonth(), curDate.getFullYear()));
    } else if (ppcNN) {
        curDate.setFullYear(document.calendario.document.forms["Cal"].cboYear.options[document.calendario.document.forms["Cal"].cboYear.selectedIndex].value);
        domlay('calendario', 1, ppcX, ppcY, Calendar(curDate.getMonth(), curDate.getFullYear()));
    }
}

function makeArray0() {
    for (i = 0; i<makeArray0.arguments.length; i++)
        this[i] = makeArray0.arguments[i];
}

-->