function fadeOutAll()
{
    $('a.akt').removeClass('active');
    $('li.active').removeClass('active');
    $('ul.titel').fadeOut('fast');
    $('ul.untertitel').fadeOut('fast');
    $('ul.systeme').fadeOut('fast');
    $('ul.symbolgruppen').fadeOut('fast');
    $('ul.eigenschaften').fadeOut('fast');
    $('ul.attribute').fadeOut('fast');
    $('ul.gruppierungen').fadeOut('fast');
    $('ul.bausteine').fadeOut('fast');
}

/**
 *	toggle Gewerk - alle titel eines gewerks anzeigen
 */
function toggleTitel()
{
    debug('toggleTitel');

    $("ul.gewerke li.gewerk").die();
    $("ul.gewerke li.gewerk").live('click', function()
    {
        debug('toggleTitel - klick');

        var id_string = $(this).attr('id');
        var obj_ids = IdStringToJson(id_string);
        var param = decodeURIComponent($.param(obj_ids));

        $('ul.gewerke li.gewerk').removeClass('active');
        fadeOutAll();
        $(this).addClass('active');
        var list = $(this).find('ul.titel');

        if (list.length != 0)
        {
            toggleList(list);
        }
        else
        {
            var html = getAjax('get_navigation_titel', 'text', param);
            $('#' + id_string).append(html);
            toggleUntertitel();
        }
        return false;
    });
}

/**
 *	toggle toggleUntertitel - alle Untertitel eines gewerks anzeigen
 */
function toggleUntertitel()
{
    debug('toggleUntertitel');

    if ($('ul.titel').length != 0)
    {
        $("ul.titel li.titel").die();
        $("ul.titel li.titel").live('click', function()
        {
            debug('toggleUntertitel - klick');
            
            var id_string = $(this).attr('id');
            var obj_ids = IdStringToJson(id_string);
            var param = decodeURIComponent($.param(obj_ids));
            
            $('ul.titel li.titel').removeClass('active');
            $('ul.untertitel').fadeOut();
            $(this).addClass('active');

            var list = $(this).find('ul.untertitel');
            if (list.length > 0)
            {
                toggleList(list);
            }
            else
            {
                var html = getAjax('get_navigation_untertitel', 'text', param);
                $('#' + id_string).append(html);
                toggleSysteme();
            }

            return false;
        });


    }
}

/**
 *	toggle Systeme / Symbolgruppe
 **/
function toggleSysteme()
{
    debug('toggleSysteme');
    if ($('ul.untertitel').length > 0)
    {
        $("ul.untertitel li.untertitel").die();
        $("ul.untertitel li.untertitel").live('click', function()
        {
            debug('toggleSysteme - klick');

            var id_string = $(this).attr('id');
            var obj_ids = IdStringToJson(id_string);
            var param = decodeURIComponent($.param(obj_ids));


            $('ul.untertitel li.untertitel').removeClass('active');
            $('ul.systeme').fadeOut();
            $('ul.symbolgruppen').fadeOut();
            $(this).addClass('active');
			
            // Symbolgruppe im Baum suchen
            var symbolgruppen = $(this).find('ul.symbolgruppen');
            if ($(symbolgruppen).length > 0)
            {
                debug('toggleSysteme - Symbolgruppe im Baum suchen');

                toggleList(symbolgruppen);
                return false;

                debug('raus aus toggleSysteme');
            }
            var list = $(this).find('ul.systeme');
            //list.fadeIn('fast');

            debug('toggleSysteme - symbolgruppen');
    	
            if (list.length > 0)
            {
                debug('length test');
                debug($(list).parent('.symbolgruppen').length);
                /*
 	    	if ($(list).parent().hasClass('attribut'))
 	    	{
 	    		debug($(list).parent());
 	    	}
 	    	*/
 	    	
                toggleList(list);
            }
            else
            {
                debug('toggleSysteme - get_navigation_systeme');

                var html = getAjax('get_navigation_systeme', 'text', param);
                $('#' + id_string).append(html);
                toggleBausteine();
                toggleEigenschaften();
            //toggleSymbolgruppenSysteme();
            }
            return false;
        });
    }
}

function toggleEigenschaften()
{
    debug('toggleEigenschaften');
    if ($('ul.symbolgruppen').length != 0)
    {
        $("ul.symbolgruppen li.symbolgruppe").die();
        $("ul.symbolgruppen li.symbolgruppe").live('click', function()
        {
            debug('toggleEigenschaften - klick');

            var id_string = $(this).attr('id');
            var obj_ids = IdStringToJson(id_string);
            var param = decodeURIComponent($.param(obj_ids));


            $('ul.symbolgruppen li.symbolgruppe').removeClass('active');
            $('ul.eigenschaften').fadeOut();
            $('ul.systeme').fadeOut();
            $(this).addClass('active');

            var list = $(this).find('ul.eigenschaften');
            //list.fadeIn('fast');

            var list_system = $(this).find('ul.systeme');
            //list_system.fadeIn('fast');

            if (list.length != 0 || list_system.length != 0)
            {
                toggleList(list);
                toggleList(list_system);
            }
            else
            {
                var html = getAjax('get_navigation_eigenschaften', 'text', param);
                $('#' + id_string).append(html);

                if ($('#' + id_string).find('.systeme').length != 0)
                {
                    setDraggable(); // wenn keine eigenschaften gefunden werden
                }
                else
                {
                    toggleAttribute();

                    $(this).find('ul.eigenschaften li').each(function(i)
                    {
                        $(this).trigger('click');
                    });
                }
            }
            return false;
        });
    }
}

function toggleAttribute()
{
    debug('toggleAttribute');
    if ($('ul.eigenschaften').length != 0)
    {
        $("ul.eigenschaften li.eigenschaft").die();
        $("ul.eigenschaften li.eigenschaft").live('click', function()
        {
            debug('toggleAttribute - klick');

            var id_string = $(this).attr('id');
            var obj_ids = IdStringToJson(id_string);
            var param = decodeURIComponent($.param(obj_ids));


            $('ul.eigenschaften li.eigenschaft').removeClass('active');
            //		 	$('ul.attribute').fadeOut();
            $(this).addClass('active');

            var list = $(this).find('ul.attribute');
            //list.fadeIn('fast');

            if (list.length != 0)
            {
                toggleList(list);
            }
            else
            {
                var html = getAjax('get_navigation_attribute', 'text', param);
                $('#' + id_string).append(html);
                //				toggleEigenschaften2();
                toggleSymbolgruppenSysteme();
            }
            return false;
        });
    }
}

/**
 *	toggle Untertitel - alle Systeme einen Untertitel anzeigen
 */
function toggleSymbolgruppenSysteme()
{
    debug('toggleSymbolgruppenSysteme');
    if ($('ul.attribute').length != 0)
    {
        $("ul.attribute li.attribut").die();
        $("ul.attribute li.attribut").live('click', function()
        {
            debug('toggleSymbolgruppenSysteme - klick');

            var id_string = $(this).attr('id');
            var obj_ids = IdStringToJson(id_string);
            var param = decodeURIComponent($.param(obj_ids));

            $('ul.attribute li.attribut').removeClass('active');
            $('ul.systeme').fadeOut();
            $(this).addClass('active');

            var list = $(this).find('ul.systeme');
            //list.fadeIn('fast');

            debug('toggleSymbolgruppenSysteme');
    	
            if (list.length != 0)
            {
                toggleList(list);
            }
            else
            {
                var html = getAjax('get_navigation_symbolgruppen_systeme', 'text', param);
                $('#' + id_string).append(html);
                //				toggleSymbolgruppenSysteme();
                setDraggable();
            }


            return false;
        });
    }
}

/**
 *	toggle Untertitel - alle Systeme einen Untertitel anzeigen
 */
function toggleBausteine()
{
    debug('toggleBausteine');
    if ($('ul.systeme').length != 0)
    {
        $("ul.systeme li.system").die();
        $("ul.systeme li.system").live('click', function()
        {
            debug('toggleBausteine - klick');

            var id_string = $(this).attr('id');
            var obj_ids = IdStringToJson(id_string);
            var param = decodeURIComponent($.param(obj_ids));

            $('ul.systeme li.system').removeClass('active');
            $('ul.bausteine').fadeOut();
            $('ul.gruppierungen').fadeOut();
            $(this).addClass('active');

            var list = $(this).find('ul.bausteine');
            var list_gruppierungen = $(this).find('ul.gruppierungen');

            // Wenn sich unterhalb einer Gruppierung befindet
            if (list_gruppierungen.length > 0)
            {
               setDraggable();
            }
            else if(list.length > 0)
            {
                // Wenn sich unterhalb einer Liste mit Bausteinen befindet.
               toggleList(list);
            }
            else
            {
                // Ajax
                var html = getAjax('get_navigation_systeme_bausteine', 'text', param);
                $('#' + id_string).append(html);
                toggleGruppierungenBausteine();
                setDraggable();
            }

            return false;
        });
    }
}

/**
 *	toggle Untertitel - alle Systeme einen Untertitel anzeigen
 */
function toggleGruppierungenBausteine()
{
    debug('toggleGruppierungenBausteine');
    if ($('ul.gruppierungen').length > 0)
    {
        $("ul.gruppierungen li.gruppierung").die();
        $("ul.gruppierungen li.gruppierung").live('click', function()
        {
            debug('toggleGruppierungenBausteine - klick');

            var id_string = $(this).attr('id');
            var obj_ids = IdStringToJson(id_string);
            var param = decodeURIComponent($.param(obj_ids));

            $('ul.gruppierungen li.gruppierung').removeClass('active');
            $('ul.bausteine').fadeOut();
            $(this).addClass('active');

            var list = $(this).find('ul.bausteine');
            //list.fadeIn('fast');

            if (list.length != 0)
            {
                toggleList(list);
            }
            else
            {
                var html = getAjax('get_navigation_gruppierungen_bausteine', 'text', param);
                $('#' + id_string).append(html);
                //toggleBausteine();
                setDraggable();
            }

            return false;
        });
    }
}

function toggleTree(get)
{
    var param = 'parameter=' + get;
    var id_strings = getAjax('get_jump_ids', 'text', param);
    var json = $.parseJSON(id_strings);

    jQuery.each(json, function(index, id_string)
    {
        $('#' + id_string).trigger('click');
    });
}


/**
 * deselektiert alle Selektierten Elemente
 */
function deselectSelectable()
{
    $('li.ui-selected').each(function(i)
    {
        $(this).removeClass('ui-selected');
    });
}

function setActive()
{
    $('ul.bausteine li.baustein, ul.symbolgruppen ul.systeme li.system').die();
    $('ul.bausteine li.baustein, ul.symbolgruppen ul.systeme li.system').live('click', function()
    {
        $('ul.bausteine li.baustein, ul.symbolgruppen ul.systeme li.system').removeClass('active');
        $(this).addClass('active');
    });
}

function setInfoButtons()
{
    $("img.info_gif").die();
    $("img.info_gif").live('click', function()
    {
        window.open($(this).attr('alt'), '_blank','');
        return false;
    });
}

function setGesamtdownloadButtons()
{
    $("img.dl_gif").die();
    $("img.dl_gif").live('click', function()
    {
        var id_string = $(this).parent('li').attr('id');
        $.ajax(
        {
            type: "POST",
            url: getAjaxUrl('get_dialog'),
            data: 'type=get_dialog_export_all',
            success: function(data)
            {
                $('#dialog').html(data);

                $('#dialog').dialog(
                {
                    modal: true,
                    resizable: false,
                    buttons: {
                        'Download': function()
                        {
                            var export_method = $('#form_download .radio:checked').val();
                            //var export_method = 'gaeb';
                            var imgUrl = $('#loading_gif').attr('src');
                            $('#dialog').html('<img src="'+ imgUrl +'" alt="loading" />');
                            $.ajax(
                            {
                                type: "POST",
                                url: getAjaxUrl('get_gesamt_export_file'),
                                data: "export_method=" + export_method + '&id_string=' + id_string,
                                success: function(file)
                                {
                                    if (file.length > 0)
                                    {
                                        window.location.href = file;
                                        $('#dialog').dialog('close');
                                    }
                                    else
                                    {
                                        $('#dialog').html("Die Download Datei wurde nicht gefunden.");
                                    }
                                }
                            });
                        },
                        "Abbrechen": function() {
                            $(this).dialog('close');
                        }
                    }
                });

            }
        });

        return false;
    });
}

function setFormSearch()
{

    $('#suchfeld').keyup(function()
    {
        if (suche_aktiv == false)
        {
            suche_aktiv = true;
            interval_aktiv = window.setInterval("searchResults()", 1000);
        }

    });

    $("a.suche_schliessen").die();
    $("a.suche_schliessen").live('click', function()
    {
        $("#search_results").fadeOut();
        $("#search_results").remove();
    });
}

function searchResults(text)
{
    window.clearInterval(interval_aktiv);

    $.ajax(
    {
        type: "POST",
        url: getAjaxUrl('form_search'),
        async: true,
        data: 'text=' + $('#suchfeld').val(),
        success: function(data)
        {
            if ($('#search_results').length != 0)
            {
                $('#search_results').replaceWith(data);
            }
            else
            {
                $("form#suche").after(data);
            }
            setDraggable();
            $('#search_results').show();

            suche_aktiv = false;
        }
    });
}

function toggleList(list)
{
    debug('toggleList');

    if ($(list).is(":visible"))
    {
//        $(list).hide();

        $(list).css('display', 'none');
        $(list).parent().removeClass('active');
    }
    else
    {
        $(list).parent().addClass('active');
        $(list).css('display', 'block');
//        $(list).show();
    }

    return true;
}


