var currentFlyout = 0;

function toggleElement(elementId, linkId, state)
{
    /// {{{

    var obj     = document.getElementById(elementId);
    var state   = (typeof state == 'undefined') ? obj.style.display : state;

    if (state == 'block')
    {
        obj.style.display = 'none';
        className         = 'open';
    }
    else
    {
        obj.style.display = 'block';
        className         = 'open close';
    }

    if (typeof linkId != 'undefined' && document.getElementById(linkId))
    {
        document.getElementById(linkId).className = className;
        document.getElementById(linkId).blur();
    }


    return;

    /// }}}
}


function toggleLayer(id)
{
    /// {{{

    var elementId = 'layer' + id;
    var linkId    = 'link' + id;

    /**
     * Save current state
     */
    var display = document.getElementById(elementId).style.display;


    /**
     * Reset forms
     */
    var elements = document.getElementsByTagName('div');

    for (i = 0; i < elements.length; i++)
    {
        if (elements[i].className.match(/toggle/))
        {
            elements[i].style.display = 'none';
        }
    }


    /**
     * Reset links
     */
    var elements = document.getElementsByTagName('a');

    for (i = 0; i < elements.length; i++)
    {
        if (elements[i].className.match(/close/))
        {
            elements[i].className = 'open';
        }
    }


    /**
     * Toggle form and link
     */
    toggleElement(elementId, linkId, display);


    return;

    /// }}}
}


function toggleForm(id)
{
    /// {{{

    var elementId = 'form' + id;
    var linkId    = 'link' + id;

    /**
     * Save current state
     */
    var display = document.getElementById(elementId).style.display;


    /**
     * Reset forms
     */
    var elements = document.getElementsByTagName('table');

    for (i = 0; i < elements.length; i++)
    {
        if (elements[i].className.match(/form/))
        {
            elements[i].style.display = 'none';
        }
    }


    /**
     * Reset links
     */
    var elements = document.getElementsByTagName('a');

    for (i = 0; i < elements.length; i++)
    {
        if (elements[i].className.match(/close/))
        {
            elements[i].className = 'open';
        }
    }


    /**
     * Toggle form and link
     */
    toggleElement(elementId, linkId, display);


    return;

    /// }}}
}


function toggleNewsletter()
{
    /// {{{

    toggleElement('newsletterForm', 'newsletterLink');
    sendTag('newsletter');


    return;

    /// }}}
}

function toggleLegal()
{
    /// {{{

    toggleElement('legalContainer', 'legalLink');


    return;

    /// }}}
}

function toggleMap(id)
{
    /// {{{

    toggleElement('mapForm' + id , 'mapLink' + id);
    loadMap(id);
    sendTag('anfahrt');


    return;

    /// }}}
}


function toggleText(id)
{
    /// {{{

    var elementId = 'more' + id;

    /**
     * Save current state
     */
    var display = document.getElementById(elementId).style.display;

    if (display == '')
    {
        display = 'block';
    }


    /**
     * Toggle more and less
     */
    toggleElement(elementId, null, display);
    toggleElement('less' + id);

    /// }}}
}


function popup(url)
{
    /// {{{

    var newWindow = window.open(url);

    newWindow.focus();


    return false;

    /// }}}
}


function showFlyout(id)
{
    /// {{{

    var newFlyout = document.getElementById('flyout' + id);
    var oldFlyout = document.getElementById('flyout' + currentFlyout);

    if (oldFlyout)
    {
        oldFlyout.style.display = 'none';
    }

    if (newFlyout)
    {
        newFlyout.style.display = 'block';
        currentFlyout = id;
    }

    /// }}}
}

