function class_kategorie_controller(){
    this.zaehler=1;
    this.stopper=5;
    this.parentbox=null;
    var kategorie=null;
    

    var display_state=false;
    
    //transaprenz der imagebox
    var opacity=100;
    //public variable
    // intervall-variable
    this.css_interval=null;

    this.check_status=function(obj){

        kategorie='KAT'+obj.value;

        if(obj.checked){
            //kategorie wird gewaehlt


            //es sind schon elemente vorhanden
            for(var i=0;i<window.map_objects.childNodes.length;i++){
                var kat_obj=window.map_objects.childNodes[i];
                if(kat_obj.getAttribute('kategorie')==kategorie){
                    kat_obj.style.display="block";
                }
            }
            //es sind noch elemente in db die noch nicht auf der karte sind vorhanden
            create_obj_on_layer(obj.value);
        }
        else{
            for(var i=0;i<window.map_objects.childNodes.length;i++){
                var kat_obj=window.map_objects.childNodes[i];
                if(kat_obj.getAttribute('kategorie')==kategorie){
                    kat_obj.style.display="none";
                }
            }
        }
    }
    function create_obj_on_layer(my_value){
        //hole elemente die zu weg gehoeren
        var my_request_obj=new class_http_request();
        my_request_obj.set_query('?mode=kat&idx='+my_value+'&zoom='+window.zoomstufe);
        my_request_obj.start_request(window.my_kat_controller);
    }

    this.calling=function(my_value){

         var objekt_array = eval("(" + my_value + ")");

         for(var i=0;i<objekt_array.length;i++){
            var my_obj=objekt_array[i];

            if(document.getElementById("OBJ"+objekt_array[i].ID)){
                
                document.getElementById("OBJ"+objekt_array[i].ID).style.display='block';
            }
            else{
                var obj=window.my_object_create.make_single_object(objekt_array[i]);
                window.map_objects.appendChild(obj);
            }

         }
    }
    this.disable_all=function(){
        if(document.getElementsByName('checkbox_kategorie[]').length>0){
            for(var i=0;i<document.getElementsByName('checkbox_kategorie[]').length;i++){
                document.getElementsByName('checkbox_kategorie[]')[i].checked=false;
            }
        }
    }

    this.check_all=function(){
        if(document.getElementsByName('checkbox_kategorie[]').length>0){
            for(var i=0;i<document.getElementsByName('checkbox_kategorie[]').length;i++){
                if(document.getElementsByName('checkbox_kategorie[]')[i].checked){
                    this.check_status(document.getElementsByName('checkbox_kategorie[]')[i]);
                };
            }
        }
    }
    

    this.blinker=function(idx){
        css_interval = setInterval("my_kat_controller.change_css("+idx+")", 25);
    }
    
    this.change_css=function(idx){
        opacity=opacity-5;
        if (document.all) { // IE
            var func="document.getElementById('OBJ"+idx+"').style.filter='alpha(opacity="+opacity+")'";
        }
        else {
            var func="document.getElementById('OBJ"+idx+"').style.opacity='"+(opacity/100)+"'";
        }
        eval(func);
        if(opacity<=0){
            clearInterval(css_interval);
            css_interval = setInterval("my_kat_controller.change_css1("+idx+")", 25);
        }
    }
    this.change_css1=function(idx){
        opacity=opacity+5;
        if (document.all) { // IE
            var func="document.getElementById('OBJ"+idx+"').style.filter='alpha(opacity="+opacity+")'";
        }
        else {
            var func="document.getElementById('OBJ"+idx+"').style.opacity='"+(opacity/100)+"'";
        }
        eval(func);
        if(opacity>=100){
            if(this.zaehler<this.stopper){
                clearInterval(css_interval);
                this.zaehler++;
                css_interval = setInterval("my_kat_controller.change_css("+idx+")", 25);
            }
            else{                       
                clearInterval(css_interval);
                this.zaehler=1;            
            }
        }
    }
    

}