YAHOO.namespace("example.calendar");
var activiteiten = [];
var ids = [];
var datums = [];
var titels = [];
var datumIndex = 0;

var callbacks_activiteiten = {
    success : function (o) {                                
        try{
            activiteiten = YAHOO.lang.JSON.parse(o.responseText);
            
            for (var i = 0; i < activiteiten.length; ++i) {
                var a = activiteiten[i];
                var datum = a.datum;
                var d = datum.split("/");
                datum = d[1] + "/" + d[0] + "/" + d[2];
                datums[datums.length] = datum;
                titels[titels.length] = a.titel;
                ids[ids.length] = a.id;
                
                YAHOO.example.calendar.cal1.addRenderer(datum, YAHOO.example.calendar.cal1.renderCellStyleHighlight2);
            }
            
            YAHOO.example.calendar.cal1.renderEvent.subscribe(addListeners); 
            
            YAHOO.example.calendar.cal1.render();

        }
        catch (e) {
            //alert(e);
            YAHOO.example.calendar.cal1.render();
        }
    },

    failure : function (o) {
        if (!YAHOO.util.Connect.isCallInProgress(o)) {
            //alert("Async call failed!");
        }
    },

    timeout : 3000

}

var callbacks_tezien = {
    success : function (o) {                                
        try{
            activiteiten = YAHOO.lang.JSON.parse(o.responseText);
            
            for (var i = 0; i < activiteiten.length; ++i) {
                var a = activiteiten[i];
                var datum = a.datum;
                var d = datum.split("/");
                datum = d[1] + "/" + d[0] + "/" + d[2];
                datums[datums.length] = datum;
                titels[titels.length] = a.titel;
                ids[ids.length] = a.id;
                
                YAHOO.example.calendar.cal1.addRenderer(datum, YAHOO.example.calendar.cal1.renderCellStyleHighlight2);
            }
            
            YAHOO.example.calendar.cal1.renderEvent.subscribe(addListeners); 
            
            YAHOO.example.calendar.cal1.render();

        }
        catch (e) {
            //alert(e);
            /*YAHOO.example.calendar.init
            YAHOO.example.calendar.cal1.render();
            */
            YAHOO.util.Connect.asyncRequest('GET',"php/haal_tezien_op.php", callbacks_tezien);
        }
    },

    failure : function (o) {
        if (!YAHOO.util.Connect.isCallInProgress(o)) {
            //alert("Async call failed!");
            //YAHOO.example.calendar.cal1.render();
            YAHOO.example.calendar.cal1.render();
            YAHOO.util.Connect.asyncRequest('GET',"php/haal_tezien_op.php", callbacks_tezien);
        }
    },

    timeout : 3000

}

function addListeners() {
    var Dom = YAHOO.util.Dom
    var tds = Dom.getElementsByClassName('calcell', 'td', YAHOO.example.calendar.cal1.table);
    var tipTds = [];
    /*
    if (myTooltip) {
        myTooltip.destroy();
    }
    */
    
    Array.prototype.contains = function(obj) {
        var j = this.length;
        while (j--) {
            if (this[j] === obj) {
                datumIndex = j;
                return true;
            }
        }
        return false;
    }

    var teller = 0
    for (var i = 0; i < tds.length; i++) {
        var maand = YAHOO.example.calendar.cal1.cellDates[i][1];
        var dag = YAHOO.example.calendar.cal1.cellDates[i][2];
        var jaar = YAHOO.example.calendar.cal1.cellDates[i][0]
        
        maand = maand + '';
        dag = dag + '';
        if(maand.length == 1){
            maand = "0" + maand;
        }
        if(dag.length == 1){
            dag = "0" + dag;
        }
        var tmpDate = maand + "/" + dag + "/" + jaar;
        
        if (datums.contains(tmpDate)) {
            tds[i].title = titels[datumIndex];
            tipTds[tipTds.length] = tds[i].id;
        }
    }
    
    var myTooltip = new YAHOO.widget.Tooltip('cal_tooltip', { 
            context: tipTds, 
            showDelay:200 } );
}

//YAHOO.util.Connect.asyncRequest('GET',"php/haal_activiteiten_op.php", callbacks_activiteiten); 

YAHOO.example.calendar.init = function() {
	YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("cal1","kalender_klein", {START_WEEKDAY: 1, MULTI_SELECT: false, selected: datums});
    
    YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]);
	YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_LONG",    ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"]);
	YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["Z", "M", "D", "W", "D", "V", "Z"]);
	YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_SHORT", ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"]);
	YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["SZon", "Maa", "Din", "Woe", "Don", "Vri", "Zat"]);
	YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_LONG",  ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"]);
                            
    YAHOO.example.calendar.cal1.selectEvent.subscribe(mySelectHandler, YAHOO.example.calendar.cal1, true);
}

YAHOO.util.Connect.asyncRequest('GET',"php/haal_tezien_op.php", callbacks_tezien);

function dateToLocaleString(dt, cal) {
    var wStr = cal.cfg.getProperty("WEEKDAYS_LONG")[dt.getDay()];
    var dag = dt.getDate();
    var maand = dt.getMonth() + 1;
    var jaar = dt.getFullYear();
    
    maand = maand + '';
    dag = dag + '';
    if(maand.length == 1){
        maand = "0" + maand;
    }
    if(dag.length == 1){
        dag = "0" + dag;
    }
    return (maand + "/" + dag + "/" + jaar);
}

function mySelectHandler(type,args,obj) {
    var selected = args[0];
    var selDate = this.toDate(selected[0]);

    var datum = dateToLocaleString(selDate, this);
    
    if(datums.contains(datum)){
        var data = datum.split("/");
        var dag = data[1];
        var maand = data[0];
        var jaar = data[2];
        
        window.location = "deze_maand.php#" + dag + "/" + maand;
    }
};

function updateClock (){
    var utcTime = new Date ( );
    
    var currentHours = utcTime.getUTCHours ( );
    var currentMinutes = utcTime.getUTCMinutes ( );
    var currentSeconds = utcTime.getUTCSeconds ( );
    
    // Pad the minutes and seconds with leading zeros, if required
    currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
    currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;
    
    // Choose either "AM" or "PM" as appropriate
    var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";
    
    // Convert the hours component to 12-hour format if needed
    currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;
    
    // Convert an hours component of "0" to "12"
    currentHours = ( currentHours == 0 ) ? 12 : currentHours;
    
    // Compose the string for display
    var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay;
    
    // Update the time display
    document.getElementById("utcclock").firstChild.nodeValue = "Universal Time: " + currentTimeString;
}


