var dayOneDate = new Date(thisYear, thisMonth , 1);
var dayOneDay = dayOneDate.getDay();


function setDate(dmy){
    //opener.document.<?php print"{$_GET['id']}"; ?>.value = dmy;
    //self.close();
}

function maxDays(month,year){
    md = dayMax[month];
    if((month == 1) && (year%4 == 0)){  // handle leap year
        md++;
    }
    return md;
}

function changeContent(newYear,newMonth){
    var d1Date = new Date(newYear, newMonth, 1);
    var newThisDay = d1Date.getDate();
    var d1 = d1Date.getDay();

    var cellHref = "";

    var day = 1; // start of month
    var goFlag = 0; // max 6 rows
    for(r=0;r<=5;r++){ // max
        for(c=0;c<=6;c++){ //max columns (7 days)
            if(c == d1){
                goFlag = 1;
            }
            if(goFlag && (day <= maxDays(newMonth,newYear))){ // check if display day is within month max days
                mth = newMonth;
                mth++;
                if(mth < 10){ // month leading zeros
                    mth = "0"+mth;
                }
                d = day;
                if(d < 10){ // day leading zeros
                    d = "0"+day ;
                }

                var cellHref = day;                 // assume no event link
                var eventDate = d+"-"+mth+"-"+thisYear; // constrct date string: dd-mm-yyyy
                var eventCode = d+mth+thisYear;         // construct event code: ddmmyyyy

                var eventCount = 0;
                var suffix = '';
                for(var i = 0; i < eventList.length; i++){ //check if the display date has an entry in the event list
                    if(eventList[i] == eventDate){
                        eventCount++;
                        if(eventCount > 1){suffix = 's';}
                        cellHref = '<a target="_self" title="' + eventCount + ' event' + suffix +'" href="bull.php?mod=7&d=' + eventCode + '"> ' + day + ' </a>';  // entry found, create event link
                     }
                }

                // check if display date is today
                //if(day == thisDay){
                if((day == todayDay) && (newMonth == todayMonth) && (newYear == todayYear)){
                    // is today
                    document.getElementById('table03').rows[r].cells[c].innerHTML="<font color='#000088'><b>" + cellHref + "</b></font>";
                }else{
                    // is NOT today
                    document.getElementById('table03').rows[r].cells[c].innerHTML=cellHref;
                }
                day++;
            }else{
                   // day is greater than max days for the new month
                   document.getElementById('table03').rows[r].cells[c].innerHTML="&nbsp;";
            }
        }
    }
}

function displayYear(){
    document.write("<select size='1' name='selYear' style='font-family: Verdana; font-size: 8pt' onChange='javascript:setYear()'>");
    for(idx=thisYear-1; idx<=thisYear+2; idx++){
        if(idx==thisYear){
            document.write("<option value='"+idx+"' selected>"+idx+"</option>");
        }else{
            document.write("<option value='"+idx+"'>"+idx+"</option>");
        }
    }
    document.write("</select>");
}

function displayMonth(){
    document.write("<select size='1' name='selMonth' style='font-family: Verdana; font-size: 8pt' onChange='javascript:setMonth()'>");
    for(idx=0; idx<=11; idx++){
        if(idx==thisMonth){
            document.write("<option value='"+idx+"' selected>"+monthName[idx]+"</option>");
        }else{
            document.write("<option value='"+idx+"'>"+monthName[idx]+"</option>");
        }
    }
    document.write("</select>");
}

function displayCal(){
    day = 1;
    goFlag = 0;
    for(row=1; row<=6; row++){ // max 6 rows
        document.write("<tr>");
        for(col=0; col<=6; col++){ // max 7 columns (7 days)
            if(col == dayOneDay){
                goFlag = 1;
            }
            if(goFlag && (day <= maxDays(thisMonth,thisYear))){ // check if display day is within month max days
                   m = thisMonth;
                   m++;
                if(m < 10){ // month leading zeros
                    m = "0"+m;
                }
                   d = ""+day;
                if(d < 10){ // day leading zeros
                    d = "0"+day;
                }

                var cellHref = day;                // assume no event link
                var eventDate = d+"-"+m+"-"+thisYear;  // constrct date string: dd-mm-yyyy
                eventCode = d+m+thisYear;          // construct event code: ddmmyyyy

                var eventCount = 0;
                var suffix = '';
                for(var i = 0; i < eventList.length; i++){ //check if the display date has an entry in the event list
                    if(eventList[i] == eventDate){

                        eventCount++;
                        if(eventCount > 1){suffix = 's';}
                        cellHref = '<a target="_self" title="' + eventCount + ' event' + suffix +'" href="bull.php?mod=7&d=' + eventCode + '"> ' + day + ' </a>';  // entry found, create event link
                     }
                }

                // check if display date is today
                //if(day == thisDay){
                if((day == todayDay) && (thisMonth == todayMonth) && (thisYear == todayYear)){
                    document.write("<td id='t"+row+col+"'><font color='#000088'><b>" + cellHref + "</b></font></td>");
                }else{
                    document.write("<td id='t"+row+col+"'>" + cellHref + "</td>");
                }
                day++;
            }else{
                   // day is greater than max days for the new month
                   document.write("<td  id='t"+row+col+"'>&nbsp;</a></td>");
            }
        }
        document.write("</tr>");
    }
}

function prevYear(){
    if((document.calendar.selYear.options.selectedIndex) > 0){
        document.calendar.selYear.options.selectedIndex--;
    }
    thisYear = document.calendar.selYear.value;
    changeContent(thisYear, thisMonth);
}

function nextYear(){
    idxMax = document.calendar.selYear.length - 1;
    if((document.calendar.selYear.options.selectedIndex) < idxMax ){
        document.calendar.selYear.options.selectedIndex++;
    }
    thisYear = document.calendar.selYear.value;
    changeContent(thisYear, thisMonth);
}

function setYear(){
    thisYear = document.calendar.selYear.value;
        changeContent(thisYear, thisMonth);
}

function prevMonth(){
    thisMonth = document.calendar.selMonth.options.selectedIndex;
    if(thisMonth > 0){
        thisMonth--;
        document.calendar.selMonth.options.selectedIndex=thisMonth;
        changeContent(thisYear, thisMonth);
    }
}

function nextMonth(){
    thisMonth = document.calendar.selMonth.options.selectedIndex;
    if(thisMonth < 11){
        thisMonth++;
        document.calendar.selMonth.options.selectedIndex=thisMonth;
        changeContent(thisYear, thisMonth);
    }
}

function setMonth(){
    index = document.calendar.selMonth.options.selectedIndex;
    thisMonth = document.calendar.selMonth.options[index].value;
    changeContent(thisYear, thisMonth);
}

function goToday(){
    today = new Date();
    thisYear = today.getFullYear();
    thisMonth = today.getMonth();
    document.calendar.selMonth.options.selectedIndex=thisMonth;
    document.calendar.selYear.options.selectedIndex=1;
    changeContent(thisYear, thisMonth);
}


