/*
Functies voor de agenda
*/

//--> Hulpvariable
var datum       = new Date();
var maand       = datum.getMonth();
var jaar        = datum.getFullYear();
var totaaldagen = 0;
var alpha       = 100;
var vagen;

//--> Bijhorende velden daarvoor
var dataveld    = new Array();

//--> Maanden, Aantal dagen en Week namen
var ma_namen    = new Array("Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December");
var ma_adagen   = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var dag_namen   = new Array("Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za");

//--> Stel de bijhorende velden in
function ka_instellen(dag, maand, jaar)
{
    //--> Instellen
    dataveld[0]     = dag;
    dataveld[1]     = maand;
    dataveld[2]     = jaar;

    //--> Eerst tabel weergeven op goede positie
    document.getElementById('ka_totaal').style.visibility       = "visible";
    document.getElementById('ka_totaal').style.filter           = "alpha(opacity=100)";
    document.getElementById('ka_totaal').style.left             = event.clientX-5;
    document.getElementById('ka_totaal').style.top              = event.clientY-5;

    //--> Geef kalender weer
    ka_maand('niets');
}


//--> Selecteer datum
function ka_select(op_dag, op_maand, op_jaar)
{
    //--> Dag instellen
    dataveld[0].selectedIndex    = op_dag-1;

    //--> Maand instellen
    dataveld[1].selectedIndex    = op_maand;

    //--> Jaar instellen
    for(var i = 0; i < dataveld[2].length; i++)
    {
        //--> Als jaar gevonden is
        if(dataveld[2].options[i].value == op_jaar)
        {
           //--> Jaar instellen
           dataveld[2].selectedIndex    = i;
        }
    }

    //--> Verberg kalender
    document.getElementById('ka_totaal').style.visibility       = "hidden";
}


//--> Venster sluiten als hij buiten de kalender komt
function ka_sluiten(type)
{
    //--> Als hij gesloten moet worden
    if(type == "start")
    {
        //--> Venster zelf
        var venster = document.getElementById('ka_totaal');

        //--> Rand posities
        var afmBoven    = venster.offsetTop + 2;
        var afmOnder    = afmBoven + venster.offsetHeight - 2;
        var afmLinks    = venster.offsetLeft + 2;
        var afmRechts   = afmLinks + venster.offsetWidth - 2;
        
        //--> Muis positie
        var muisBoven   = event.clientY;
        var muisLinks   = event.clientX;
        
        //--> Als de muis buiten de afmetingen valt
        if(muisBoven < afmBoven || muisBoven > afmOnder || muisLinks < afmLinks || muisLinks > afmRechts)
        {
            alpha = 100;
            vagen = setTimeout("ka_vagen()", 10);
        }else
        {
            alpha   = 100;
            document.getElementById('ka_totaal').style.filter       = "alpha(opacity=" + alpha + ")";
            clearTimeout(vagen);
        }
    }
    
    //--> Als het sluiten gestopt moet worden
    if(type == "stop")
    {
        //--> Alpha weer op 100 zetten
        alpha   = 100;
        
        //--> Kalender weer 100% weergeven
        document.getElementById('ka_totaal').style.filter       = "alpha(opacity=" + alpha + ")";
        
        //--> Timeout stopen
        clearTimeout(vagen);
    }
}

//--> Uitvagen
function ka_vagen()
{
    //--> Als Alpha 0 is
    if(alpha == 0)
    {
        //--> Vagen stoppen
        document.getElementById('ka_totaal').style.filter       = "alpha(opacity=0)";
        document.getElementById('ka_totaal').style.visibility   = "hidden";
        clearTimeout(vagen);
    }else
    {
        //--> Aftellen
        document.getElementById('ka_totaal').style.filter       = "alpha(opacity=" + alpha + ")";
        
        //--> Alpha aftellen
        alpha   = alpha - 1;
        vagen   = setTimeout("ka_vagen()", 10);
    }
}


//--> Maand wijzigen
function ka_maand(type)
{   
    //--> Als hij omhoog gewijzigd moet worden
    if(type == "omhoog")
    {
        //--> Maand ophogen
        maand   += 1;
        
        //--> Als maand boven de 12 komt
        if(maand > 11)
        {
            //--> Maand op 1 zetten
            maand   = 0;
            
            //--> Jaar ophogen
            jaar    += 1;
        }
    }
    
    //--> Als hij omlaag gewijzigd moet worden
    if(type == "omlaag")
    {
        //--> Maand ophogen
        maand   -= 1;
        
        //--> Als maand onder de 1 komt
        if(maand < 0)
        {
            //--> Maand op 12 zetten
            maand   = 11;
            
            //--> Jaar verlagen
            jaar    -= 1;
        }
    }
    
    //--> Als het jaar een schrikkeljaar is
    var schrikjaar  = jaar % 4;
    if(schrikjaar == 0)
    {
        ma_adagen[1] = 29;
    }else{
        ma_adagen[1] = 28;
    }
    
    //--> Totaal aantal dagen aanpassen
    for(var i = 0; i < maand; i++)
    {
        totaaldagen += ma_adagen[i];
    }
    
    //--> Maand en Jaar weergeven
    document.getElementById('ka_maja').innerHTML    = ma_namen[maand] + " (" + jaar + ")";
    
    //--> Agenda opstellen
    ka_opstellen()
}



//--> Agenda zelf opstellen
function ka_opstellen()
{   
    //--> Tabel aanmaken
    var tabel   = "<table width='225' border='1' cellpadding='0' cellspacing='0' bordercolor='#000000' style='border:0'>";
    tabel   += "<tr>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#B98F00'><strong>Wk</strong></td>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800'><strong>Ma</strong></td>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800'><strong>Di</strong></td>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800'><strong>Wo</strong></td>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800'><strong>Do</strong></td>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800'><strong>Vr</strong></td>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800'><strong>Za</strong></td>";
        tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800'><strong>Zo</strong></td>";
    tabel   += "</tr>";
    
    
    
    //--> Aantal regels berekenen
    var wgDagnr = 1;
    var wgRegel = 1;
    var wgDagen = new Array();
    wgDagen[wgRegel]    = new Array();
    for(wgDagnr; wgDagnr <= ma_adagen[maand]; wgDagnr++)
    {       
        //--> Datum pakken
        var wgDatum = new Date(jaar, maand, wgDagnr, 0, 0, 0, 0);
        var wgDag   = wgDatum.getDay();
        if(wgDag == 0){ wgDag = 7; }
                
        //--> Dag invoeren in array
        wgDagen[wgRegel][wgDag] = wgDagnr;
        
        //--> Weeknummer instellen
        if(wgDagen[wgRegel][0] == null)
        {
            if(wgDag < 7){ var dagje = wgDagnr + (7-wgDag); }
            var weeknr  = new Date(jaar, maand, wgDagnr, 0, 0, 0, 0);
            wgDagen[wgRegel][0] = weeknr.getWeek();
        }
        
        //--> Als het de laatste dag is wgRegel ophogen
        if(wgDag == 7 && wgDagnr < ma_adagen[maand])
        {                   
            //--> Regel ophogen
            wgRegel += 1;
            wgDagen[wgRegel]    = new Array();
        }
    }
    
    
    //--> Alle regels afgaan
    for(var regel = 1; regel <= wgRegel; regel++)
    {
        //--> Alle dagen weergeven
        for(var i = 0; i <= 7; i++)
        {
            //--> Regel openen
            if(i == 0)
            {
                tabel   += "<tr>";
                tabel   += "<td width='27' height='25' align='center' bgcolor='#B98F00' id='ka_w" + regel + "'>" + wgDagen[regel][0] + "</td>";
            }
            
            //--> Als het een veld is van 1 tm 7
            if(i > 0 && i <= 7)
            {
                //--> Start cel
                if(wgDagen[regel][i] == datum.getDate() && maand == datum.getMonth() && jaar == datum.getFullYear())
                {
                    tabel   += "<td width='27' height='25' align='center' bgcolor='#B98F00' id='ka_w" + regel + "d" + i + "'>";
                }else
                {
                    tabel   += "<td width='27' height='25' align='center' bgcolor='#D9A800' id='ka_w" + regel + "d" + i + "'>";
                }
                
                    //--> Invulling uitlezen
                    if(wgDagen[regel][i] != null)
                    {
                        //--> Als deze dag hetzelfde is als de huidige datum
                        if(wgDagen[regel][i] == datum.getDate() && maand == datum.getMonth() && jaar == datum.getFullYear())
                        {
                            tabel   += "<b>";
                             tabel   += "<a href=\"#\" onclick=\"javascript: ka_select('" + wgDagen[regel][i] + "', '" + maand + "', '" + jaar + "')\">";
                              tabel   += wgDagen[regel][i];
                             tabel   += "</a>"
                            tabel   += "</b>";
                        }else
                        {
                             tabel   += "<a href=\"#\" onclick=\"javascript: ka_select('" + wgDagen[regel][i] + "', '" + maand + "', '" + jaar + "')\">";
                              tabel   += wgDagen[regel][i];
                             tabel   += "</a>"
                        }
                    }else
                    {
                        tabel += "&nbsp;";
                    }
                
                //--> Sluit tabel
                tabel += "</td>"
            }
            
            
            //--> Regel openen
            if(i == 7)
            {
                tabel   += "</tr>";
            }
        }
    }
    
    //--> Tabel sluiten
    tabel   += "</table>"
    
    //--> Weergeven
    document.getElementById('ka_weda').innerHTML    = tabel;
}



//---------------------------------- > BEHEER FUNCTIE < ---------------------------------- \\
/*
//--> 'Anders..' weergeven of verwerwijderen
function ka_andersWV(veld)
{
	//--> Agenda type inladen
	var agType	= document.getElementById('ag_type');
	
	//--> Als beheerder kiest wel definitief door te voeren
	if(veld.checked)
	{
		//--> Als laatste item wel "anders" is
		if(agType.options[agType.length-1].value == "anders")
		{
			//--> Verwijder van item
			agType.remove(agType.length-1);
		}
	}
	
	//--> Als beheerder kiest niet definitief door te voeren
	if(!veld.checked)
	{
		//--> Als laatste item niet "anders" is
		if(agType.options[agType.length-1].value != "anders")
		{
			//--> Item aanmaken
			var itemAnders		= document.createElement('option');
			itemAnders.text		= "Anders ..";
			itemAnders.value	= "anders";
						
			//--> Toevoegen van item
			agType.add(itemAnders);
		}
	}
}
*/
