﻿// Event Calendar
// copyright Stephen Chapman, 10th June 2006, 30th October 2006

var tb = 't'; // top or bottom (t or b)
var headbg = '#cccccc';  // table heading background colour
var todaybg = '#BFBFBF'; // current selected date background colour
var textclr = '#000000'; // text colour
var linkclr = '#FFFFFF'; // link text colour
var noMessage =  ''; // message to display when no entry in array

var dA = new Array(); var x = 0;
// first 8 characters in ccyymmdd format for single date events
// first 8 characters in 0000mmdd format for every year events
//dA[x++] = "00000101 New Year";
//dA[x++] = "20090214 Valentine's day";
//dA[x++] = "00000709 Steve's Birthday";
//dA[x++] = "00000919 Site Anniversary";
//dA[x++] = "00001206 St Nicholas' Day";

// permission is granted to use this javascript provided that the below code is not altered
var pageLoaded = 0; window.onload = function() {pageLoaded = 1;}

function loaded(i,f,yy,mm,arEvents) {
    dA = new Array();
    x = 0;
    var events=new String(arEvents).split('/');
    for (var z=0;z<events.length;z++)
    {
        if (events[z]!="")
        {
            dA[x++]=events[z];
        }
    }
    if (document.getElementById && document.getElementById(i) != null) 
        f(yy,mm); 
    else if (!pageLoaded) 
        setTimeout('loaded(\''+i+'\','+f+','+yy+','+mm+',\''+arEvents+'\')',100);
}

function monthlength(month,year) {
    var dd = new Date(year, month, 0);
    return dd.getDate();
}

var moy = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var today = new Date();
var selDate = today.getFullYear()+getmmdd(today.getMonth()+1,today.getDate());

function dispCal(yy,mm) {
    if (mm < 0 || mm > 12) 
    {
        alert('month must be between 1 and 12'); 
        return false;
    } 
    if (yy != 0 && (yy < 1901 || yy > 2100)) 
    {
        alert('year must be after 1900 and before 2101'); 
        return false;
    } 
    
    var dow = ['S','M','T','W','T','F','S'];     
    var calendar = new Date();      
    var today = calendar.getDate(); 
        
    calendar.setDate(1); 
    
    if (yy > 1900) calendar.setFullYear(yy); 
    
    if (mm > 0) calendar.setMonth(mm - 1); 
    
    var yy = year = calendar.getFullYear(); 
    var month = calendar.getMonth(); 
    calendar.setDate(today); 
    var weekday = calendar.getDay(); 
    var daysInMonth = monthlength(month+1,year); 
    var hilite_start = '<td class="today" align="center">';
    var link_start = '<td class="event" align="center"><strong>';
    var link_startDBS = '<td class="eventRed" align="center"><strong>';
    var td_start = '<td align="center">';
    var td_empty = '<td align="center" class="none">'; 
    var td_start_hd = '<th align="center">'; 
    var cal='';
    
    for(dex=0; dex < 7; dex++) 
    {
        cal += td_start_hd + dow[dex] + '</th>';
    } 
    cal += '<\/tr><tr>'; 
    var day2 = today; 
    for (dex = today; dex > 6; dex -=7) 
        day2 = dex; 
    
    weekday -= day2 - 1;
    while (weekday < 0) weekday += 7;

    for (dex = 0; dex < weekday; dex++) cal += td_empty + ' <\/td>'; 
    
    for(dex=1; dex <= daysInMonth; dex++) 
    {
        if(weekday == 7) 
        {
            cal += '</tr><tr>'; weekday = 0;
        } 
        
        //alert(clickDate(dex,month,year).indexOf("pointer",0));
        if(selDate==year+getmmdd(month+1,dex) && clickDate(dex,month,year).indexOf("pointer",0) == -1) cal += hilite_start +'<span'+clickDate(dex,month,year) + '>'+ dex + '<\/span><\/td>';
        if (clickDate(dex, month, year).indexOf("pointer", 0) > -1 && clickDate(dex, month, year).indexOf("GOFFS", 0) > -1) cal += link_start + '<span' + clickDate(dex, month, year) + '>' + dex + '<\/span><\/strong><\/td>';
        if (clickDate(dex, month, year).indexOf("pointer", 0) > -1 && clickDate(dex, month, year).indexOf("DBS", 0) > -1) cal += link_startDBS + '<span' + clickDate(dex, month, year) + '>' + dex + '<\/span><\/strong><\/td>';
        if(selDate!=year+getmmdd(month+1,dex) && clickDate(dex,month,year).indexOf("pointer",0) == -1) cal += td_start + '<span '+clickDate(dex,month,year) + '>' + dex + '<\/span><\/td>'; 
        
        weekday += 1;
    } 
    
    for(dex=weekday; dex < 7; dex++) cal += td_start + ' <\/td>';

    //cal += '<\/tr><\/table>';
    cal += '<\/tr>';
    
    if (document.getElementById) 
    {
        var mmb = month;  
        mm = month + 1; 
        var yya = yyb = yy; 
        if (mmb <1) 
        {
            mmb += 12; yyb--;
        } 
        
        var mma = month + 2; 
        if (mma > 12) {mma -= 12; yya++;} 
        
        var yb = yy -1; 
        var ya = yy +1;

        var cal2 = '<tr ><th colspan="7" class="month"><a href="#" class="previousMonth"  onclick="if (cala = dispCal(' + yyb + ',' + mmb + ')) {document.getElementById(\'calendarEvents\').innerHTML = cala; return false;}">Previous</a><a href = "#" class="nextMonth" onclick="if (cala = dispCal(' + yya + ',' + mma + ')) {document.getElementById(\'calendarEvents\').innerHTML = cala; return false;}">Next</a>' + moy[month] + ' ' + year + '<\/th><\/tr>'; 
     //cal += '<table border="0" cellspacing="0" cellpadding="2" width="210"><tr><td><a href="#" onclick="if (cala = dispCal('+yb+','+mm+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><<</a></td><td><a href="#" onclick="if (cala = dispCal('+yyb+','+mmb+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><</a></td><td align="right"><a href="#" onclick="if (cala = dispCal('+yya+','+mma+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">></a></td><td align="right"><a href="#" onclick="if (cala = dispCal('+ya+','+mm+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">>></a></td></tr></table>';
    } 
    else {cal += '';} 
    cal='<table border="0" cellspacing="0" cellpadding="0">'+cal+cal2+'<\/table>'; 
    cal += ''; 
    return cal;
}

function start(yy,mm) 
{
    var x = ''; 
    var y = ''; 
    if (tb == 't') y = x + dispCal(yy,mm); 
    else y = dispCal(yy,mm) + x; 
    
    document.getElementById('calendarEvents').innerHTML = y; 
    ev();
}


function clickDate(day, month, year) 
{
    var ct = nextDate(year + getmmdd(month+1,day));
    if (ct == '') ct = nextDate('0000' + getmmdd(month+1,day));
    if (ct == '') return ' style="color:'+textclr+'"';
    else return ' style="cursor:pointer;color:'+linkclr+'" title="'+ ct.substr(ct.indexOf("#",0)+9)+'" onclick="selDate = '+year+ getmmdd(month+1,day)+'; isDate(' + day + ',' + month + ',' + year + ',' + ct.substr(0,ct.indexOf("#",0)) + ',\'' + ct.substr(ct.indexOf("#",0)+9) + '\');return false;"';
}

function isDate(dayVal,monthVal,yearVal,intevent,title) 
{
    var ct = nextDate(yearVal + getmmdd(monthVal+1,dayVal));
    if (ct == '') ct = nextDate('0000' + getmmdd(monthVal+1,dayVal));
    if (ct != '' && title.toString().indexOf("GOFFS") > 0) window.location = "http://www.goffs.com/calendar.aspx?sale=" + intevent;
    if (ct != '' && title.toString().indexOf("DBS") > 0) window.location = "http://www.dbsauctions.com/calendar.aspx?sale=" + intevent;
    //if (ct == '') ct = noMessage;document.getElementById('calDate').innerHTML = selDate + ':<br \/>' +ct; 
    return false;
}

function nextDate(yymmdd) 
{
    var x = dA.length;
    for (var i = 0; i < x; i++) 
    {
        //alert(dA[i].substr(0,8)+" ----------yymmdd: "+yymmdd);
        if (dA[i].substr(dA[i].indexOf("#",0)+1,8) == yymmdd) return dA[i];
    }
    return '';
}

function getmmdd(mm,dd) 
{
    return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);
}

function ev() 
{
    var ct = nextDate(selDate);
    var ct = nextDate(selDate);
    if (ct == '') ct = nextDate('0000' + selDate.substr(4));
    if (ct == '') ct = noMessage; 
    //document.getElementById('calDate').innerHTML = selDate + ':<br \/> ' +ct;
}
