var messageObj = new DHTML_modalMessage();

var kalquery = {
    file: "/wedbeheer/getkalender",
    targetID: "kaltablediv",
    
    getpost: function (form) {
        
        var ploegenreeksen = this.getcheckeditems(form);
        
        //Reset
        var error = false;
            document.getElementById("errormsg-ploegen").style.display = 'none';
            document.getElementById("errormsg-periode").style.display = 'none';
            document.getElementById("begin").style.color = '';
            document.getElementById("eind").style.color = '';        
  
        if(ploegenreeksen.length == 0){    //Geen ploeg geselecteerd.
            error = true;
            document.getElementById("errormsg-ploegen").style.display = 'block';
            expand('ploegbody',document.getElementById("ploegarrows"));
        }
        
        var begin = document.getElementById('begin').value;
        var eind = document.getElementById('eind').value;
        
        /***Controleer data**/
        var beginarr = begin.split("/");
        var eindarr = eind.split("/");
        
        var d1 = new Date(beginarr[2],beginarr[1],beginarr[0]);
        var d2 = new Date(eindarr[2],eindarr[1],eindarr[0]);
        


        if(d1.getTime() > d2.getTime()){    //Geen ploeg geselecteerd.
            error = true;
            document.getElementById("errormsg-periode").style.display = 'block';
            document.getElementById("errormsg-periode").innerHTML = "Einddatum komt voor begindatum.";
            expand('ploegbody',document.getElementById("periodearrows"));
        }        
        
        
        var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;   //DD/MM/YYYY
        
        if(!begin.match(re) || !eind.match(re)) {
            error = true;
            document.getElementById("errormsg-periode").style.display = 'block';
            document.getElementById("errormsg-periode").innerHTML = "Gelieve een datum in te vullen volgens het formaat DD/MM/YYYY.";
            expand('ploegbody',document.getElementById("periodearrows"));
        }
    
    

        
        /**********************/


        var post = "begin=" + begin +"&eind=" + eind + "&ploegenreeksen=" + ploegenreeksen;

        if(error) {
            return false;
        } else {
            return post;
        }
    },
    
    getcheckeditems: function(form) {

        var ploegenreeksen = "";

        for ( var index = 0; index < form.elements.length; index++ ) {
            var oElement = form.elements[ index ];

            if ( oElement.type == "checkbox" ){
                if ( oElement.checked ) {
                    if(ploegenreeksen.length > 0) {
                        ploegenreeksen = ploegenreeksen + ',' + oElement.name;
                    }else{
                        ploegenreeksen = oElement.name;
                    }
                }
            }
        }
        
        return ploegenreeksen;
    },

    clickedploeg: function (ploegbox) {
        
        if(reekscontainers.mouseover){
            return false;
        }
        
        var ploegId = ploegbox.id.split("-")[1];
        
        var containerId = "selectcontainer-" + ploegId;
        var container = document.getElementById(containerId);
        
        var ratio = this.controlploegstatus(ploegId);

        
        if(ratio == 0) {
            //Niets geselecteerd dus actieve aanduiden
           for ( var index = 0; index < container.children.length; index++ ) {
            var oElement = container.children[ index ];
            if ( oElement.type == "checkbox" ){
                if(oElement.value == "actief") {
                    oElement.checked = true;
                    this.checkboxchanged(oElement);
                } else {
                    oElement.checked = false;
                    this.checkboxchanged(oElement);                
                }
            }
            }
        } else if(ratio == 1){
            //Alles geselecteerd dus geen aanduiden
            for ( var index = 0; index < container.children.length; index++ ) {
            var oElement = container.children[ index ];
            if ( oElement.type == "checkbox" ){
                oElement.checked = false;
                this.checkboxchanged(oElement);
            }
            }            
        }else{
            //Gedeeltelijk geselecteerd dus alle aanduiden

           for ( var index = 0; index < container.children.length; index++ ) {
            var oElement = container.children[ index ];
            if ( oElement.type == "checkbox" ){
                oElement.checked = true;
                this.checkboxchanged(oElement);
            }

            }            
        }
        
        reekscontainers.mouseover = false;
        

    },

    submitKalQuery: function (form,targetID) {
        
        this.post = this.getpost(form);

        this.target = document.getElementById(this.targetID);

        this.target.innerHTML = "<img class=\"center\" src=\"/media/gif/loading.gif\" alt=\"Bezig met laden\">"; 

        if(this.post.length > 0) {
            document.getElementById("errormsg-ploegen").style.display = 'none';
            document.getElementById("errormsg-periode").style.display = 'none';
            document.getElementById("begin").style.color = '';
            document.getElementById("eind").style.color = '';
            processajax(this.file + "&option=ajax",this.targetID,"post",this.post);
            setTimeout('document.getElementById("printbutton").style.display = "block"',1000);
            setTimeout('document.getElementById("printbutton").disabled = ""',1000);
         } else {
            this.target.innerHTML = "";

        //collapse('ploegbody',document.getElementById("ploegarrows"));
        //collapse('periodebody',document.getElementById("periodearrows"));
        }
    },

    printKalQuery: function () {

        var url = this.file + "?" + this.post + "&option=print";

            window.open(url,'Printkalender')

    },
    
    checkboxchanged: function (check) {
        reekscontainers.mouseover = true;
        
        var ploegreeks = check.name;
        var indicatorid = "indicator-" + ploegreeks;

        var indicator = document.getElementById(indicatorid);
        
        //Wijzig indicator behorend tot ploegreeks
        if (check.checked) {
            indicator.innerHTML = "&#9632;";
            indicator.style.color = "#eebb22";
        } else {
            indicator.innerHTML = "&#9633;";
            indicator.style.color = "#333333";
        }
        
        var arr = ploegreeks.split("-");
        var ploeg = arr[0];
        
        //Laat controleren wat nog van een ploeg geselecteerd is. Voor aanpassing globale selectiestatus ploeg.
        this.controlploegstatus(ploeg);
        this.changed();
    },
    
    controlploegstatus: function (ploeg) {
        var containerId = "selectcontainer-" + ploeg;
        var container = document.getElementById(containerId);
        
        var boxId = "box-" + ploeg;
        var box = document.getElementById(boxId);
        
        var total = 0;
        var checked = 0;
        
        for ( var index = 0; index < container.children.length; index++ ) {
            var oElement = container.children[ index ];

            if ( oElement.type == "checkbox" ){
                total++;
                if ( oElement.checked ) {
                    checked++;
                }
            }
        }
        
        if(checked > 0) {
            //Mss te vervangen door functie setBox(checked) en gebruik maken van class-switch
            //box.firstChild.style.color = "red";
            box.className = "ploegboxselected" ;
        } else {
            //box.firstChild.style.color = "";
            box.className = "ploegbox" ;
        }
        
        return checked/total;
        //for ( var index = 0; index < ploeg.elements.; index++ ) {
    },
    
    controlalleploegstatus: function () {
        for ( var index = 0; index < alleploegen.length; index++ ) {
            this.controlploegstatus(alleploegen[ index ]);
        }
    },
    
    setperiode: function(begin, eind) {
        var beginfield = document.getElementById("begin");
        var eindfield = document.getElementById("eind");
        
        beginfield.value = begin;
        eindfield.value = eind;
        
        this.changed();
    },

    changed: function() {
        var printbutton = document.getElementById("printbutton");
        //printbutton.style.display = "none";
        printbutton.disabled = "disabled";
        this.target = document.getElementById(this.targetID);
        this.target.innerHTML = "Druk op toon om uw opvraging uit te voeren."
    },
    
    checkalle: function() {
        var tabel = document.getElementById("ploegtabel");
        
        var checkboxes = tabel.getElementsByTagName("input");

        for ( var index = 0; index < checkboxes.length; index++ ) {
            var oElement = checkboxes[ index ];

            oElement.checked = true;
            this.checkboxchanged(oElement);
        }
        reekscontainers.mouseover = false;
    },
    
    checkgeen: function() {
        var tabel = document.getElementById("ploegtabel");
        
        var checkboxes = tabel.getElementsByTagName("input");

        for ( var index = 0; index < checkboxes.length; index++ ) {
            var oElement = checkboxes[ index ];

            oElement.checked = false;
            this.checkboxchanged(oElement);
        }
        reekscontainers.mouseover = false;
    },
    
    checkactieve: function() {
        var tabel = document.getElementById("ploegtabel");
        
        var checkboxes = tabel.getElementsByTagName("input");

        for ( var index = 0; index < checkboxes.length; index++ ) {
            var oElement = checkboxes[ index ];
            
            if(oElement.value == "actief") {
                oElement.checked = true;
                this.checkboxchanged(oElement);
            } else {
                oElement.checked = false;
                this.checkboxchanged(oElement);                
            }
        }
        reekscontainers.mouseover = false; 
    }
   
}


/****************************************************************/

var reekscontainers = {
    mouseover: false,
    
    toonreeksen: function(ploegbox){
        var ploegId = ploegbox.id.split("-")[1];
        
        var containerId = "selectcontainer-" + ploegId;
        var container = document.getElementById(containerId);
        
        //alert(ploegbox.offsetParent);
        /* Needed when positioning required against window itself
        var pos = findPos(ploegbox);
        var left = pos[0];
        var top = pos[1];
        var w = ploegbox.offsetWidth;
        var h = 0;
        */
        /*
        var left = ploegbox.offsetLeft;
        var top = ploegbox.offsetTop;
        var w = ploegbox.offsetWidth*0.90;
        var h = ploegbox.offsetHeight*0.90;
        
        
        container.style.left=left + w + "px";
        container.style.top=top + h + "px";
*/
        var left = ploegbox.offsetLeft;
        var w = ploegbox.getElementsByTagName("ul")[0].offsetLeft;
        var top = ploegbox.offsetTop;
        var h = ploegbox.offsetHeight*0.90;
        
        container.style.left=left + w + "px";
        container.style.top=top + h + "px";
        
        container.style.visibility = "visible";
        

    },
    
    verbergreeksen: function(ploegbox){
        var ploegId = ploegbox.id.split("-")[1];
        
        var containerId = "selectcontainer-" + ploegId;
        var container = document.getElementById(containerId);
        
        pausecomp(100);

            this.mouseover = false;
            container.style.visibility = "hidden";
    },
    
    active: function(){
        this.mouseover = true;
    }
}

var zalen = {
    zalenarr: [],
    el: undefined,
    zaal: undefined,
    boxId: "zaalbox",
    box: undefined,
    
    showzaalbox: function(zaalargs,el){
        this.el = el;
        this.box = document.getElementById(this.boxId);
        this.showbox();
         var zalenarr = zaalargs.split("|");       
        var html = "Zaalnummer: " + zalenarr[0] + "<br>" + zalenarr[1] + "<br>" + zalenarr[2] + "<br>" + zalenarr[3] + " " + zalenarr[4] + "<br><br><a href=# onclick='messageObj.close();'>sluiten</a>";
        
        this.box.innerHTML = html;
    },

    showzaalinfo: function(znr,el){

        this.zaal = parseInt(znr);
        this.el = el;
        this.box = document.getElementById(this.boxId);
        this.showbox();
        
        this.box.innerHTML = "<img class=\"center\" src=\"/media/gif/loading.gif\" alt=\"Bezig met laden\">";
        //alert(typeof(this.zalenarr[this.zaal]));
        if(typeof(this.zalenarr[this.zaal]) == "undefined"){
            //this.box.innerHTML += "Zaal " + this.zaal + " bestaat niet..";
            this.getzaalinfo(this.zaal);           
        }else{

            //this.box.innerHTML += "Zaal " + this.zaal + " bestaat dus tonen..";
            this.setzaalinfo();
        }
        
    },

    setzaalinfo: function(){
        //alert(this.zaal);
        //alert(this.zalen[this.zaal][1]);

        var nr = this.zaal;
        var html = "Zaalnummer: " + this.zalenarr[nr][0] + "<br>" + this.zalenarr[nr][1] + "<br>" + this.zalenarr[nr][2] + "<br>" + this.zalenarr[nr][3] + " " + this.zalenarr[nr][4];
        this.box.innerHTML = html;
    },

    showbox: function(){
        var pos = findPos(this.el);
        var left = pos[0];
        var top = pos[1];
        var w = this.el.offsetWidth;
        var h = this.el.offsetHeight/3;

        this.box.style.left=left + w + 2 + "px";
        this.box.style.top=top + h + "px";
        this.box.style.display = "block";
    },

    getzaalinfo: function(znr) {
            var file = "/wedbeheer/getzaalinfo";
            var url = file + "?zaal=" + znr + "&option=ajax";
            ajaxCaller.getPlainText(url,this.parsezaal);
    },

    parsezaal: function (res) {

        var arr = res.split("|");

        var nr = parseInt(arr[0]);

        this.zalen.zalenarr[nr] = arr.slice();
        //Continue with script
        if(typeof(this.zalen.zaal) != "undefined"){
            this.zalen.showzaalinfo(this.zalen.zaal, this.zalen.el);
        }
    },

    showwindow: function (zaalargs) {
        var zalenarr = zaalargs.split("|");
               
        var html = "Zaalnummer: " + zalenarr[0] + "<br>" + zalenarr[1] + "<br>" + zalenarr[2] + "<br>" + zalenarr[3] + " " + zalenarr[4] + "<br><br><a href=# onclick='messageObj.close();'>sluiten</a>";
        //var windowdiv = document.getElementById("modalwindow1");
        //windowdiv.innerHTML = html;
messageObj.setSize(300,125);
messageObj.setHtmlContent(html);
messageObj.display();
    },


    hidezaalinfo: function (){
        this.el = undefined;
        this.znr = undefined;
        pausecomp(100);
        var obj = document.getElementById(this.boxId);
        obj.style.left=-1000 + "px";
        obj.style.display = "none";
    }
}

function select(aname) {
    var file = "/ajax.php?module=kalender&method=getzaalinfo";
    var url = file + "&zaal=" + znr;
    //alert(url);
    processajax(url,targetID,"get","");

}

function check(arr) {

    for(x in arr) {
        var id = "sel_" + arr[x];
        document.getElementById(id).checked=true;
    }
    kalquery.changed();

}

function uncheck(arr) {
    for(x in arr) {
        var id = "sel_" + arr[x];
        document.getElementById(id).checked=false;
    }
    kalquery.changed();

}
