// ********* ********* ********* ********* ********* ********* ********* ********* *********
// Special Event function
// This function allows you set events for every weekday or for holidays
//
// VARIABLE                DATA TYPE        DESCRIPTION
// y                        number                the 4-digit year (i.e. 2002)
// m                        number                the month (1=jan, 2=feb,... 12=dec)
// d                        number                the day
// dte                        date                the full date
// intWeekday                number                day of the week (0=sun; 1=mon; 2=tue, ..., 6=sat)
// intWeekOfYear                number                week number of the year
// intWeekOfMonth        number                week number of month (1st Sunday, 2nd Sunday, ...)
// blnLast                boolean                is this the Last Weekday of the month
// dteEaster                date                the full date of Easter Sunday for the year
// dteMardiGras                date                the full date of Mardi Gras Tuesday for the year
// dteAshWednesday        date                the full date of Ash Wednesday for the year
// dteGoodFriday                date                the full date of Good Friday for the year
// ********* ********* ********* ********* ********* ********* ********* ********* *********
function scSpecialEvent(dte) {
        var objEvent;
        var arrEvents = new Array();
        var dteCurrent = new Date();

        var m = dte.getMonth() + 1;
        var d = dte.getDate();
        var y = dte.getFullYear();
        var intWeekday = dte.getDay();
        var intWeekOfYear = dte.weekOfYear();
        var intWeekOfMonth = dte.weekOfMonth();
        var blnLast = ( (new Date(y, m-1, d+7).getMonth() ) == m );

        var dteEaster = fscEaster(y);
        var dtePfingsten = dteEaster.add("d", 49);
        var dteFasnachtB = dteEaster.add("d", -39);
        var dteGoodFriday = dteEaster.add("d", -2);
        var resfilnam =(y - 2000) * 10000 + m * 100 + d;
        if  ( y < 2010 ) resfilnam = "0" + resfilnam;
        // ********* ********* ********* ********* ********* ********* ********* *********
        // *** current date
        // ********* ********* ********* ********* ********* ********* ********* *********

        // *** current day event
        if ( dte.equalsTo(dteCurrent) ) {
                objEvent = new EventObj(m,d,y, "<center>HEUTE", null, "scToday");
                arrEvents[arrEvents.length] = objEvent;
        };
        //  *** falsche Daten leer stellen
        if (m==1 && d==02 && y==2012) {
                objEvent = new EventObj(m,d,y, "<center><br><br><br>", null, "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==1 && d==16 && y==2012) {
                objEvent = new EventObj(m,d,y, "<center><br><br><br>", null, "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        // ********* ********* ********* ********* ********* ********* ********* *********
        // *** holidays
        // ********* ********* ********* ********* ********* ********* ********* *********

        // New Years Day
        if (m==1 && d==1) {
                objEvent = new EventObj(m,d,y, "<center>Neujahr<br> <br> <br> ", null, "scEventPurple");
                arrEvents[arrEvents.length] = objEvent;
        };
        // Christmas
        if (m==12 && d==25) {
                objEvent = new EventObj(m,d,y, "<center>Weihnacht<br> <br> <br> ", null, "scEventPurple");
                arrEvents[arrEvents.length] = objEvent;
        };
        // 26.Dez
        if (m==12 && d==26) {
                objEvent = new EventObj(m,d,y, "<center>Weihnacht<br> <br> <br> ", null, "scEventPurple");
                arrEvents[arrEvents.length] = objEvent;
        };

        // ********* ********* ********* ********* ********* ********* ********* *********
        // *** Easter holidays
        // ********* ********* ********* ********* ********* ********* ********* *********

        // Easter Sunday
        if ( dte.equalsTo(dteEaster)) {
                objEvent = new EventObj(m,d,y, "<center>Ostern", null, "scEventPurple");
                arrEvents[arrEvents.length] = objEvent;
        };
        // Pfingsten
        if ( dte.equalsTo(dtePfingsten)) {
                objEvent = new EventObj(m,d,y, "<center>Pfingsten", null, "scEventPurple");
                arrEvents[arrEvents.length] = objEvent;

        };
        // Basler Fasnacht
        if ( dte.equalsTo(dteFasnachtB)) {
                objEvent = new EventObj(m,d,y, "<center>Fasnacht kein Turnier", null, "scEventPurple");
                arrEvents[arrEvents.length] = objEvent;
        };
        // Karfreitag
        if ( dte.equalsTo(dteGoodFriday)) {
                objEvent = new EventObj(m,d,y, "<center>Karfreitag<br> <br> <br> ", null, "scEventPurple");
                arrEvents[arrEvents.length] = objEvent;
        };

        // ********* ********* ********* ********* ********* ********* ********* *********
        // *** every weekday functions
        // ********* ********* ********* ********* ********* ********* ********* *********
        // Sonntage rosa
        if (intWeekday==0) {
                objEvent = new EventObj(m,d,y," ", null, "scEventRose");
                arrEvents[arrEvents.length] = objEvent;
        };
        // jeden 1.Montag CBC
//        if (intWeekday==1 && (intWeekOfMonth==1) ) {
//                objEvent = new EventObj(m,d,y, "<center>CBC<br> 19:00", null, "scEventGreen2");
//                arrEvents[arrEvents.length] = objEvent;
//        };
        // jeden 3.Donnerstag CBC
//        if (intWeekday==4 && (intWeekOfMonth==3) ) {
//                objEvent = new EventObj(m,d,y, "<center>CBC<br> 19:00", null, "scEventGreen2");
//                arrEvents[arrEvents.length] = objEvent;
//        };
        // jeden Mittwoch BBG
        if (intWeekday==3) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 19:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        // jeden 2. + 4. Montag BBG
        if (y<2011 || y==2011 && m<9)
        if (intWeekday==1 && (intWeekOfMonth==2 || intWeekOfMonth==4) ) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 19:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        // ab Sept 2011 jeden 1. + 3. Montag BBG
        if (y>2011 || y==2011 && m>8)
        if (intWeekday==1 && (intWeekOfMonth==1 || intWeekOfMonth==3) ) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 19:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        // jeden 2. + 4. Freitag BBG
        if (intWeekday==5 && (intWeekOfMonth==2 || intWeekOfMonth==4) ) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 14:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
             };
        // spezielle Ausnahmetage
        if (m==2 && d==4 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 14:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==2 && d==18 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 14:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==4 && d==29 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 14:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==3 && d==31 && y==2012) {
                objEvent = new EventObj(m,d,y, "<center>Basler-Turnier<br> ", "../resultate/"+(resfilnam)+".PDF", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==1 && d==07 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 14:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==1 && d==22 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>BBG Marathon<br> 15:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==6 && d==06 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 19:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==7 && d==18 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 19:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==1 && d==09 && y==2012) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 19:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==1 && d==23 && y==2012) {
                objEvent = new EventObj(m,d,y, "<center>BBG<br> 19:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
        };
        if (m==10 && d==01 && y==2011) {
                objEvent = new EventObj(m,d,y, "<center>CS-Trophy<br> 13:00", "../resultate/"+(resfilnam)+".htm", "scEventGreen");
                arrEvents[arrEvents.length] = objEvent;
         };

        return arrEvents;
         };
