function addClassPostfix(element, class_postfix, empty_classname)
{
    // wenn Klassenname schon angepasst
    if (element.className.length > class_postfix.length
            &&  element.className.substring(element.className.length - class_postfix.length, element.className.length) == class_postfix )
    {
        return;
    }
    
    // Klassenname anpassen
    if (element.className == '')
        element.className = empty_classname;
    else element.className = element.className + class_postfix;
    
    // Dummy-Änderung
    var tmp = element.style.color;
    element.style.color = '#ffffff';
    element.style.color = '#000000';
    element.style.color = tmp;
}

function removeClassPostfix(element, class_postfix, empty_classname)
{
    // wenn Klassenname schon angepasst
    if (element.className.length > 6
            &&  element.className.substring(element.className.length - class_postfix.length, element.className.length) != class_postfix )
    {
        return;
    }

    // Klassenname anpassen
    if (element.className == empty_classname)
        element.className = '';
    else element.className = element.className.substring(0, element.className.length - class_postfix.length);
    
    // Dummy-Änderung
    var tmp = element.style.color;
    element.style.color = '#ffffff';
    element.style.color = '#000000';
    element.style.color = tmp;
}



// Setzt die Focus-Verarbeitungsmethoden für die übergebenen Element
function setFocusHandler(elements, type)
{
    for (var i=0; i < elements.length; i++)
    {
        if (type == ''  ||  elements[i].type == type)
        {
            elements[i].onfocus = function() {
                addClassPostfix(this, '_focus', 'input_focus');
            }

            elements[i].onblur = function() {
                removeClassPostfix(this, '_focus', 'input_focus');
            }
        }
    }
}

// Setzt die Hover-Verarbeitungsmethoden für die übergebenen Element
function setHoverHandler(elements, type)
{
    for (var i=0; i < elements.length; i++)
    {
        if (type == ''  ||  elements[i].type == type)
        {
            elements[i].onmouseover = function() {
                addClassPostfix(this, '_hover', 'input_hover');
            }

            elements[i].onmouseout = function() {
                removeClassPostfix(this, '_hover', 'input_hover');
            }
        }
    }
}


window.onload = function()
{
    // Focus- und Hover-Verarbeitungsmethoden für Formularelemente setzen
    if ( navigator.appName.toLowerCase().indexOf('internet explorer') >= 0
            ||  navigator.userAgent.toLowerCase().indexOf('msie') >= 0 )
    {
        setFocusHandler(document.getElementsByTagName('input'), '');
        setFocusHandler(document.getElementsByTagName('textarea'), '');
        setHoverHandler(document.getElementsByTagName('input'), 'submit');
    }
    
    // Submit-Buttons bekommen extra Klasse
    var elements = document.getElementsByTagName('input');
    for (var i=0; i < elements.length; i++)
    {
        if (elements[i].type == 'submit'  &&  elements[i].className == '')
        {
            elements[i].className = 'input_submit';
        }
    }
}
