function getAdr(prefix, postfix, text) {
        document.write('<a href="mailto:' + prefix + '@' + postfix + '">' + (text ? text.replace(/&quot;/g, '"').replace(/%EMAIL%/, prefix + '@' + postfix) : prefix + '@' + postfix) + '</a>');
}

function swapImage(element, newimage) {
    var oldsrc = element.src
    element.src = newimage
    if (!element.onmouseout)
        element.onmouseout = function (event) { swapImage(this, oldsrc); };
}

// deletes leading and trailing spaces in a string - adds the function directly to the String Object, so that all strings inherit this method
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, '');
}

//checkEmail - needed for forms
function checkEmail(val) {
    if (val) {
        var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
        var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
        var regex = "^"+usr+"\@"+domain+"$";
        var myrxp = new RegExp(regex);
        var check = (myrxp.test(val));
        if (check!=true) {
            return false;
        }
        else {
            return true;
        }
    }
}

/*
validates formfields if they have a value or not
to check for other options do the following
specialfields = new Object();
specialfields.fieldname = new Object();
specialfields.fieldname.check1 = 'function_to_call,error_message';
specialfields.fieldname.check2 = 'second_function_to_call,second_error_message';
specialfields.another_fieldname = new Object();
specialfields.another_fieldname.check1 = 'function_to_call,error_message';
*/
function validateForm(form,specialfields) {
    var errors = new Array();
    var fields = form.getElementsByTagName('span');
    for (i = 0; i < fields.length; i++) {
        var span = fields[i].getElementsByTagName('label')[0];
        if (span && span.firstChild) {
            var label = span.firstChild.data;
            label = label.trim();
            // if there is a '*' in the label - this indicates the inputfield has to be filled
            if (label.charAt(label.length - 1) == '*') {
                label = label.substring(0, label.length - 1).trim();
                // get the inputfield
                var obj_input = fields[i].getElementsByTagName('input');
                if (!obj_input[0])
                    obj_input = fields[i].getElementsByTagName('select');
                if (!obj_input[0])
                    obj_input = fields[i].getElementsByTagName('textarea');

                // if there is an inputfield
                if (obj_input && obj_input[0]) {
                    input = obj_input[0];
                    error = false;
                    
                    // check if the inputfield has a value
                    if (!input.value || input.value.trim().length==0) {
                        error = true;
                        errors.push(label + ' nicht eingegeben');
                    }
                    
                    // check the inputfield for special things (email, ...)
                    if (!error && specialfields[input.name]){
                        specialfield = specialfields[input.name];
                        for (check in specialfield){
                            check_function = specialfield[check].split(',')[0];
                            check_message = specialfield[check].split(',')[1];
                            if (!eval(check_function)(input.value)){
                                error = true;
                                errors.push(label + ' ' + check_message);
                            }
                        }
                    }

                    // on error give the label the className 'error' otherwise delete the className 'error' (if exists)
                    if (error) {
                        className = fields[i].className;
                        if (className.length>0){
                            className = className + ' ';
                        }
                        fields[i].className = className + 'error';
                    } else {
                            className = fields[i].className;
                        if (className.indexOf('error')>-1){
                                className = className.replace(' error', '');
                                className = className.replace('error', '');
                                fields[i].className = className;
                        }
                    }
                }
            }
        }
    }

    return errors;
}

myObjects = new Object();

function showFormErrors (errors, form) {
    error_message = '';
        if (form){
            error_message = '<strong>ACHTUNG: Sie haben vergessen folgende Daten anzugeben:</strong><ul>';
            for (i=0;i<errors.length;i++){
                    error_message += '<li>' + errors[i] + '</li>';
            }
            error_message += '</ul>';
            if (!myObjects.errorDiv){
                myObjects.errorDiv = new Element('div', {'id':'formErrors'});
                myObjects.errorDiv.injectTop(form);
            }
            myObjects.errorDiv.innerHTML = error_message;
            location.href='#formErrors';
        }else{
            for (i=0;i<errors.length;i++){
                    error_message += errors[i] + '\n';
            }
            alert(error_message);
        }
}

function popup(url, typ, para1, width, height) {
    attrib = "";
    Y = (screen.height - width) / 2;
    X = (screen.width - height) / 2;
    X = Math.round(X);
    Y = Math.round(Y);
    if (para1 == 'CENTER') attrib += 'height=' + height + ',width=' + width + ',top=' + Y + ',left=' + X;
    if (typ == 'TYP1') attrib += ",scrollbars=no";
    if (typ == 'TYP2') attrib += ",scrollbars=yes";
    if (typ == 'TYP3') attrib += ",scrollbars=yes,menubar=yes";
    fenster = window.open(url, 'win', attrib);
    return false;
}

var effects = new Array();
window.addEvent('domready', function() {
    var images = $$('#quick img');
    $$('#quick div').each(function(el, i) {
        images[i].number = i;
/*
        images[i].addEvent('mouseover', function() {
            $('quick').getElementsByTagName('a')[this.number].style.background = "#f0f0f0 url(../common/images/quick_bg.gif) repeat-x bottom left";
            $('quick').getElementsByTagName('a')[this.number].style.borderBottom = "7px solid #396cbf";
        });
*/
        el.number = i;
        effects[i] = new Fx.Styles(el, {duration: 500, wait: false});
        effects[i].options.transition = Fx.Transitions['Quad']['easeInOut'];
        el.addEvent('mouseenter', function() {
            this.getElementsByTagName('a')[0].style.background = "#f0f0f0 url(../common/images/quick_bg.gif) repeat-x bottom left";
            this.getElementsByTagName('a')[0].style.borderBottom = "7px solid #396cbf";

            effects[this.number].start({
                'height': 95
            });
        });

        el.addEvent('mouseleave', function() {
            this.getElementsByTagName('a')[0].style.background = "none";
            this.getElementsByTagName('a')[0].style.borderBottom = "7px solid white";

            effects[this.number].start({
                'height': 20
            });
        });

        el.style.height = "20px";
        el.style.overflow = "hidden";
        el.style.visibility = "visible";
    });


});

/*-- alternatives x-menu --*/
function initNavItemMenu(navItemMenu) {
    var navItem;
    if (navItemMenu) {
        navItem = navItemMenu.getParent();
        navItem.addEvent('mouseenter', function() {
            hideFrames();
            navItem.addClass('hover');
            this.firstChild.firstChild.onmouseout = function() { };
        });
        navItem.addEvent('mouseleave', function() {
            navItem.removeClass('hover');
            showFrames();
            if(this.className.indexOf('active') == -1)
                this.firstChild.firstChild.src = this.firstChild.firstChild.src.split('_h').join('_n');
        });
    }
}

function hideFrames() {
//     myObjects.frames.each(function(item){
//         item.style.display = 'none';
//     });
}

function showFrames() {
//     myObjects.frames.each(function(item){
//         item.style.display = 'block';
//     });
}

window.addEvent('domready', function() {
        var menus = new Array('nav', 'mandantennav');
        menus.each(function(menu, menucount) {
            myObjects = new Object();
            if (0) { //window.ie6 || window.ie7) {
                    myObjects.frames = $$('iframe');
                    myObjects.nav = $(menu);
                    myObjects.nav.items = $$('#' + menu + ' li ul');
                    myObjects.nav.items.each(function(item){
                            new initNavItemMenu(item);
                    });
            }
            else
            {
                    var uls = $(menu).getElementsByTagName('li');
                    for(i=0; i<uls.length; i++) {
                            $(uls[i]).addEvent('mouseenter', function() {
                                if(this.getElementsByTagName('img')[0])
                                    this.getElementsByTagName('img')[0].onmouseout = function() { };
                            });
                            if(uls[i].className.indexOf('active') == -1) {
                                 $(uls[i]).addEvent('mouseleave', function() {
                                         if(this.getElementsByTagName('img')[0])
                                                 this.getElementsByTagName('img')[0].src = this.getElementsByTagName('img')[0].src.replace('attr_captionactiveimage','attr_captionimage').replace('_h','_n');
                                 });
                            }
                    }
            }
    });
});


/* this is sujet now!

#sujettitle | .sujetblack & sujetwhite
#sujetsubtitle  | .sujetblack & sujetwhite
#sujettext

*/


window.addEvent('domready', function(){
/*    var accordion = new Accordion('.toggler', '.element', {
        opacity: false,
        onActive: function(toggler, element){ toggler.addClass('active'); },
        onBackground: function(toggler, element){toggler.removeClass('active'); }
    }, $('accordion'));*/

    if($('intronav')) {

        var intronav = $('intronav');
        var sujettitle = $('sujettitle');
        var sujetsubtitle = $('sujetsubtitle');
        var contentbox = $('contentbox');

        startsujets = $$('#startsujets .title');
        startsujetsub = $$('#startsujets .sutitle');
        startsujetsimgs = $$('#startsujets img');
        startsujetslink = $$('#startsujets a');

        var startsujetimg = document.createElement('img');
        startsujetimg.id = 'startsujet';
        startsujetimg.src = startsujetsimgs[0].src;
        $('startsujets').appendChild(startsujetimg);


        var sujettitle = document.createElement('a');
        sujettitle.id = 'sujettitle';
        sujettitle.innerHTML = startsujets[0].title;
                sujettitle.href = startsujetslink[0].href;
                sujettitle.title = startsujets[0].title;
        sujettitle.className = startsujetsub[0].innerHTML;
        $('startsujets').appendChild(sujettitle);


        var sujetsubtitle = document.createElement('div');
        sujetsubtitle.id = 'sujetsubtitle';
        sujetsubtitle.innerHTML = startsujetsub[0].title;
        sujetsubtitle.className = startsujetsub[0].innerHTML;
        $('startsujets').appendChild(sujetsubtitle);


        var sujettext = document.createElement('div');
        sujettext.id = 'sujettext';

        if(startsujetslink[0].innerHTML=="more") 
            var sujettextinnerhtml = startsujets[0].innerHTML+"<a href='"+startsujetslink[0].href+"'>mehr...</a>";
        else
            var sujettextinnerhtml = startsujets[0].innerHTML
     
        sujettext.innerHTML = sujettextinnerhtml;
        $('startsujets').appendChild(sujettext);

        intronav.innerHTML = "";

        for(i=0; i<startsujets.length; i++) {
            li = document.createElement('li');
            li.innerHTML = '<a href="#"></a>';
            li.firstChild.onmouseover = function() { changeActiveSujet(this); }
            li.firstChild.onmouseout = function() { }
            li.firstChild.count = i;
            intronav.appendChild(li);
        }

        $$('#intronav a')[0].addClass('hover');

        var choicepool = $$('#intronav a');
        var datenow = new Date();
        var chosen = Math.floor((datenow.getDate()+datenow.getYear()+datenow.getMonth()) % 5);
        changeActiveSujet(choicepool[chosen]);
    }
});

var activeSujet = 0;
var startsujets;
var hover = 0;

var sujetwaiter;

function changeActiveSujet(a) {
    if(a != undefined) {
        nextSujet = a.count;
        hover = 1;
        window.clearInterval(sujetwaiter);
    }
    else {
        nextSujet = activeSujet + 1;
    }

    if(nextSujet >= startsujets.length) {
        nextSujet = 0;
    }

    if(hover == 0 || (hover == 1 && a != undefined)) {

        $('startsujet').src = startsujetsimgs[nextSujet].src;
                      
        $('sujettitle').title = startsujets[nextSujet].title;

                $('sujettitle').href = startsujetslink[nextSujet].href;

                $('sujettitle').innerHTML = startsujets[nextSujet].title;

        $('sujettitle').className = startsujetsub[nextSujet].innerHTML;
        
                $('sujetsubtitle').innerHTML = startsujetsub[nextSujet].title;
        $('sujetsubtitle').className = startsujetsub[nextSujet].innerHTML;        


        if(startsujetslink[nextSujet].innerHTML=="more") 
            var sujettextinnerhtml = startsujets[nextSujet].innerHTML+"<a href='"+startsujetslink[nextSujet].href+"'>mehr...</a>";
        else
            var sujettextinnerhtml = startsujets[nextSujet].innerHTML

        $('sujettext').innerHTML = sujettextinnerhtml;

        $$('#intronav a')[activeSujet].removeClass('hover');
        $$('#intronav a')[nextSujet].addClass('hover');

        activeSujet = nextSujet;
    }
}

function continueSujets_x() {
    hover = 0;
    sujetwaiter = window.setInterval(function() {
        changeActiveSujet()
    }, 5000);
}

/* EO "this is sujet now!" peace out KSC */

function activateServiceOfferings(element) {
    oldClass = element.className;
    element.className = oldClass+' active';
    if (!element.onmouseout) {
        element.onmouseout = function (event) { element.className=oldClass; };
    }
}


function hidesidepic() {
    if(document.getElementById("newsticker")) {
            var theWidth, theHeight;
            // Window dimensions:
            if (window.innerHeight) { theHeight=window.innerHeight; }
            else if (document.documentElement && document.documentElement.clientHeight) { theHeight=document.documentElement.clientHeight; }
            else if (document.body) { theHeight=document.body.clientHeight; }

        $$('#newsticker .description').each(function(tick, i) {
            if(theHeight > 682) {
                tick.style.display = 'block';
            }
            else {
                tick.style.display = 'none';
            }
        });

        $('newsticker').style.display = 'block';
    }
    
    if(document.getElementById('sujettext')) {
        if(document.body.clientHeight<670) {
            document.getElementById('sujettext').style.visibility = 'hidden';
        }
        else document.getElementById('sujettext').style.visibility = 'visible';
    }
}

window.addEvent('domready', function() {
    hidesidepic();
});

window.addEvent('resize', function() {
    hidesidepic();
});
