function faqToggle(DBID, elementType, keyword)
{
    var elementID                = elementType + DBID;
    var elementContentID         = elementID + 'Content';
    var elementDOMObject         = document.getElementById(elementID);
    var elementContentDOMObject  = document.getElementById(elementContentID);
    var elementPosition          = (elementDOMObject.className.indexOf('Bottom') > 0) ? 'Bottom' : '';

     //alert('toggle>\n' + '\nDBID: ' + DBID  + '\nelementType: ' + elementType + '\nelementID: ' + elementID + '\nelementContentID: ' + elementContentID + '\nelementDOMObject: ' + elementDOMObject + '\nelementContentDOMObject: ' + elementContentDOMObject + '\nelementPosition: ' + elementPosition);

    if(elementDOMObject.className.indexOf('Open') > 0)
    {
        closeFAQ(elementType, elementPosition, elementDOMObject, elementContentDOMObject);
    }
    else
    {
        openFAQ(DBID, elementType, elementID, elementContentID, elementDOMObject, elementContentDOMObject, elementPosition, keyword);
    }
}

function openFAQ(DBID, elementType, elementID, elementContentID, elementDOMObject, elementContentDOMObject, elementPosition, keyword)
{
    if(p())
    {
        elementDOMObject.className = elementType + 'Open' + elementPosition;  // Element als geoeffnet markieren
        elementContentDOMObject.style.display = 'block';    // Versteckten Content-Bereich anzeigen
        elementContentDOMObject.innerHTML = '';             // Alten Inhalt aus Content-Bereich entfernen

        var requestMode = 'requestMode=' + ((elementType == 'topic') ? 'question' : 'answer');
        var action      = 'action=' + (keyword ? 'keyword' : 'topic');
        var id          = elementType + 'ID=' + DBID;
        var keyword     = escape (keyword ? 'keyword=' + keyword : '');
        
         //alert('open>\n' + '\nDBID: ' + DBID  + '\nelementType: ' + elementType + '\nelementID: ' + elementID + '\nelementContentID: ' + elementContentID + '\nelementDOMObject: ' + elementDOMObject + '\nelementContentDOMObject: ' + elementContentDOMObject + '\nelementPosition: ' + elementPosition + '\n\nelementDOMObject.className: ' + elementDOMObject.className + '\nelementContentDOMObject.style.display: ' + elementContentDOMObject.style.display + '\n\nrequestMode: ' + requestMode + '\naction: ' + action + '\nid: ' + id + '\nkeyword: ' + keyword);

        // Request-Handler
        ajaxEngine.registerRequest('ajaxRequest', 'faq.ltml');

        // Response-Handler
        ajaxEngine.registerAjaxElement(elementContentID);
        
        // Senden
        ajaxEngine.sendRequest('ajaxRequest', requestMode, action, id, keyword);

        window.setTimeout('v()', '500') // CLInfo dies in die Antwort setzen funkt nicht
    }
    else
    {
        // alert('DEADLOCK');
    }
}

function closeFAQ(elementType, elementPosition, elementDOMObject, elementContentDOMObject)
{
    elementDOMObject.className = elementType + 'Close' + elementPosition; // Element als geschlossen markieren
    elementContentDOMObject.innerHTML = '';
    elementContentDOMObject.style.display = 'none';      // Content-Bereich verstecken
}

var MUTEX = 1;
function p()
{
    if(MUTEX)
    {
        MUTEX = 0;
        return 1;
    }
    else
    {
        return 0;
    }
}

function v()
{
    MUTEX = 1;
}

