var dayName = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')
var monName = new Array('January','February','March','April','May','June','July','August','September','October','November','December')
var oneDay = 86400000
var oneWeek = oneDay * 7


function setPic(linkNdx) {

    switch (linkNdx) {
        case 1: imgFile = "images/rscmain7.png"; break;
        case 2: imgFile = "images/rscmain6.png"; break;
        case 3: imgFile = "images/rscmain8.png"; break;
        case 4: imgFile = "images/rscmain5.png"; break;
        case 5: imgFile = "images/rscmain1.png"; break;
        case 6: imgFile = "images/rscmain9.png"; break;
        case 7: imgFile = "images/rscmain2.png"; break;
        default:imgFile = "images/rscmain4.png"; break;
    }
    var menuImg = new Image(); menuImg.src=imgFile
    document.logo.src = menuImg.src

}


function setLogo() {

    document.logo.src = "rsclogo.PNG"

}


function displayDate(dateIn, maskIn) {

    if (dateIn=='') {dateIn = new Date()}

    if (maskIn=='') {
        var thisDate = new Date()
        dispDate = Number(dateIn.slice(6,8));
        dispMon  = Number(dateIn.slice(4,6)) - 1;
        dispYear = Number(dateIn.slice(0,4));
        thisDate.setFullYear(dispYear,dispMon,dispDate);
        dispDayName = dayName[thisDate.getDay()];
        dispMonName = monName[dispMon];        
    } else {
        dispDayName = dayName[dateIn.getDay()];
        dispDate = dateIn.getDate();
        dispMon = dateIn.getMonth();
        dispMonName = monName[dateIn.getMonth()];
        dispYear = dateIn.getFullYear();
    }
    
    switch (maskIn) {
        case 'yyyymmdd': dateText = dispYear.toString() + addZero(dispMon+1) + addZero(dispDate); break;
        case 'ddd d mmm':   dateText = dispDayName.slice(0,3) + ' ' + dispDate + ' ' + dispMonName.slice(0,3); break;
        case 'arrayTag': Number(dateText = Right(dispYear, 1) + addZero(dispMon+1) + addZero(dispDate)); break;
        case 'dateTime': dateText = dispDayName + ', ' + dispDate + ' ' + dispMonName + ' ' + dispYear + ' at ' + dispTime; break;
        case 'dateOnly': dateText = dispDayName + ', ' + dispDate + ' ' + dispMonName + ' ' + dispYear; break;
        case 'shortMon': dateText = dispDayName.slice(0,3) + ' ' + dispDate + ' ' + dispMonName.slice(0,3) + ' ' + dispYear; break;
        default: dateText = dispDayName.slice(0,3) + ' ' + dispDate + ' ' + dispMonName.slice(0,3) + ' ' + dispYear; break;
    }
    return dateText;
}


function addZero(i) {

    if (i<10) {i = "0" + i;}
    return i;
}


function showTable() {

    tableText = "<TABLE>"
    tableText = tableText + "<TR><TH WIDTH=150>Opening Hours</TH><TH WIDTH=320>Event</TH><TH WIDTH=150>Time</TH></TR>"
        
    wkStart = new Date()
    startDate = document.getElementById("weeks").value
    wkStart.setFullYear(Number(startDate.slice(0,4)),Number(startDate.slice(4,6))-1,Number(startDate.slice(6,8)))

    for (i=0;i<7;i++) {
        thisDate = new Date(wkStart.getTime() + (i * oneDay))
        //alert(thisDate)
        thisDateTag = displayDate(thisDate, "yyyymmdd")
        eCount = 0; tText = ""
        for (j=1;j<=ahDayIndex.length;j++) {
            if ((ahDayIndex[j]==i+1&&(ahFromDate[j]<=thisDateTag&&ahUntilDate[j]>=thisDateTag))||(ahFromDate[j]==thisDateTag&&ahUntilDate[j]==thisDateTag)) {
                eCount++;
                if (eCount>1) {tText + "<TR>"}
                if (ahHighlight[j] == "Yes") {cText = " CLASS=avail"} else {cText = ""}
                tText = tText + "<TD" + cText +"><B>" + ahHeadText[j] + "</B><BR>" + ahDetlText[j] + "</TD>"
                tText = tText + "<TD" + cText +">" + ahStartTime[j] + " to " + ahEndTime[j] + "</TD></TR>"
            }
        }
        tableText = tableText + "<TR><TH ROWSPAN=" + eCount + ">" + displayDate(thisDate, "ddd d mmm") + "<BR>" + ahOpTimes[i] + "</TH>" + tText
    }
    tableText = tableText + "<TR><TH COLSPAN=3>Please call before attending to check availability.</TH></TR>"
    tableText = tableText + "</TABLE>"
    document.getElementById("ahEvents").innerHTML = tableText

    tvTableText = "<TABLE>"
    tvTableText = tvTableText + "<TR><TH WIDTH=150>Opening Hours</TH><TH WIDTH=320>Match</TH><TH WIDTH=150>Time</TH></TR>"
        
    wkStart = new Date()
    startDate = document.getElementById("weeks").value
    wkStart.setFullYear(Number(startDate.slice(0,4)),Number(startDate.slice(4,6))-1,Number(startDate.slice(6,8)))

    var tvToday = new Array()
    for (i=0;i<7;i++) {
        tvToday[i] = false
        thisDate = new Date(wkStart.getTime() + (i * oneDay))
        //alert(thisDate)
        thisDateTag = displayDate(thisDate, "yyyymmdd")
        eCount = 0; tText = ""
        for (j=1;j<=tvDayIndex.length;j++) {
            if ((tvDayIndex[j]==i+1&&(tvFromDate[j]<=thisDateTag&&ahUntilDate[j]>=thisDateTag))||(tvFromDate[j]==thisDateTag&&tvUntilDate[j]==thisDateTag)) {
                tvToday[i] = true
                eCount++
                if (eCount>1) {tText + "<TR>"}
                if (tvHighlight[j] == "Yes") {cText = " CLASS=avail"} else {cText = ""}
                tText = tText + "<TD" + cText +"><B>" + tvHeadText[j] + "</B><BR>" + tvDetlText[j] + "</TD>"
                tText = tText + "<TD" + cText +">" + tvStartTime[j] + " to " + tvEndTime[j] + "</TD></TR>"
            }
        }
        if (tvToday[i]==true) {
            tvTableText = tvTableText + "<TR><TH ROWSPAN=" + eCount + ">" + displayDate(thisDate, "ddd d mmm") + "<BR>" + ahOpTimes[i] + "</TH>" + tText
        }
    }
    tvTableText = tvTableText + "<TR><TH COLSPAN=3>Please call before attending to check availability.</TH></TR>"
    tvTableText = tvTableText + "</TABLE>"
    document.getElementById("tvEvents").innerHTML = tvTableText
}


function popWeeksList(yearIn) {

    var popuList = new Array()
    popuList[0] = document.getElementById('weeks');
    listCount = popuList.length; max = 52;      

    var thisWeekNdx = 0
    var thisWeek = new Date()
    adjustDays = thisWeek.getDay() 
    thisWeek = new Date(thisWeek - (adjustDays * oneDay)+oneDay)
    thisWeek = displayDate(thisWeek, 'yyyymmdd')

    var startDate = new Date(); var startDate2 = new Date()
    startDate.setFullYear(yearIn, 0, 1); startDate2 = startDate
    adjustDays = startDate.getDay()
    startDate = new Date(startDate - (adjustDays * oneDay))
    startDate.setUTCHours(12,0,0,0);

    for (l=0;l<listCount;l++) {clearList(popuList[l]);}
    for (i=0;i<=max;i++) {
         thisWC = new Date(startDate.getTime() + (i * oneWeek) + oneDay)
         if (thisWC.getYear()!=yearIn) {thisWC=startDate2}         
         weekTag = displayDate(thisWC, 'yyyymmdd')
         for (l=0;l<listCount;l++) {addToList(popuList[l], i, weekTag, "w/c " + displayDate(thisWC))}
         if (weekTag==thisWeek) {thisWeekNdx=i}
    }
    for (l=0;l<listCount;l++) {popuList[l].selectedIndex=thisWeekNdx}
}


function addToList(thisList, thisNdx, valNum, valTxt) {

    var no=new Option(); no.value=valNum; 
    no.text=valTxt; thisList[thisNdx]=no;
}


function clearList(thisList) {

    thisQty = thisList.length
    for (i=0;i<=thisQty;i++) {thisList.options[0]=null}
}


function changeWeek(wkAdjust) {

    document.getElementById('weeks').selectedIndex = document.getElementById('weeks').selectedIndex + wkAdjust
    showTable();
}


function startOfWeek(dateIn) {

    adjustDays = dateIn.getDay()
    return new Date(dateIn - (adjustDays * oneDay));
}