window.addEvent('domready', domready);

function domready() {
    windowdomready = true;
    myObjects = new Object();
    myImages = new Object();
     if($('sujets')){initSujet();}
    initNav();
}

window.addEvent('load', function(){
   
});

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); };
} 

function initNav() {
    if($('nav'))
    {
        $$('#nav li ul').each(function(item){
        if(item.parentNode.parentNode.id == 'nav') {
                new initNavItemMenu(item);
        }
        });    
    }
    if($('navcurrent'))
    {
        $$('#navcurrent li ul').each(function(item){
            new initNavItemMenu(item);
        });
    }
    
}


function initSujet() {
    var sujets = $$('#sujets a');
    var sujet = $('sujet');
    if (sujet){
        sujet.src = sujets[Math.floor(Math.random()*sujets.length)];
    }
}  
    
function initNavItemMenu(navItemMenu) {
    var navItemMenuChildren, navItem, navItemSlideFx, navItemSlideObj, navItemCoords , navItemA, e, fxDuration;
    if (navItemMenu){
        navItemMenuChildren = navItemMenu.getChildren();
        fxDuration = navItemMenuChildren.length * 90;
        navItemSlideFx = new Fx.Slide(navItemMenu, {duration:fxDuration});
        navItemSlideFx.hide();
        navItemSlideObj = navItemMenu.getParent();
        navItem = navItemSlideObj.getParent();
        navItemA = $(navItem.getChildren()[0]);
        navItem.addEvent('mouseenter', function(event){
            e = new Event(event);
            navItemA.addClass('hover');
            navItemSlideFx.stop();
            navItemCoords = navItemMenu.getCoordinates();
            navItemSlideObj.style.width = navItemCoords.width + 'px';
            navItemSlideFx.slideIn();
            e.stop();

        if(getImage(this))
        {
            getImage(this).onmouseout = function() {};
            if(getImage(this).src.indexOf('2.gif') == -1)
            {
                getImage(this).src = getImage(this).src.replace('attr_captionactiveimage', 'attr_captionimage').replace('2.gif', '.gif');
            }
        }
        });
        navItem.addEvent('mouseleave', function(event){
            e = new Event(event);
            e.stop();
            navItemA.removeClass('hover');
            navItemSlideFx.stop();
        navItemSlideFx.slideOut();

        if(getImage(this))
        {
            if(getImage(this).src.indexOf('2.gif') > -1 && getImage(this).onmouseover != undefined)
            {
                getImage(this).src = getImage(this).src.replace('attr_captionactiveimage', 'attr_captionimage').replace('2.gif', '.gif');
            }
        }
        });
    }
}

function getImage(obj)
{
    return obj.getElementsByTagName('img')[0];
}


// 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('label');
    for (i = 0; i < fields.length; i++) {
        var span = fields[i].getElementsByTagName('span')[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;
}

function showFormErrors (errors) {
    error_message = '';
    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;
}    
function judf_link_gifchange(obj,over){
    
    if (obj){
        obj_img = obj.getElementsByTagName('IMG')[0];
        file = obj_img.src;
        tmp_img= new Image();
        if (over){
            tmp_img.src = file.replace(/2*\.gif/,'2.gif');
        }else{
            tmp_img.src = file.replace(/2*\.gif/,'.gif');
        }
        obj_img.src = tmp_img.src;
    }
} 
function CheckSearch(form){
    if(form.saddr.value == "")
    {
        alert("Startadresse fehlt!");
        form.saddr.focus();
        return false;
    }
    else
    {            
        popup('http://maps.google.de/maps?f=d&amp;hl=de', 'TYP1', 'CENTER', 800, 600);
    }
}     
function activateServiceOfferings(element) {
    oldClass = element.className;
    element.className = oldClass+' active';
    if (!element.onmouseout) {
        element.onmouseout = function (event) { element.className=oldClass; };
    }
}             


  

function hideSelectBoxes(){
    selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "hidden";}

    if(!window.ie)
        document.getElementById('content').style.overflow='hidden';
}

function showSelectBoxes(){
    selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "visible";}

    if(!window.ie)
        document.getElementById('content').style.overflow='auto';
}


var popupOldOnResize = window.onresize;
var popupOldOnLoad = window.onload;

function showPopup(id, width, height) {
    hideSelectBoxes();
    if(document.getElementById('popup_background')) {
        objTemp = document.getElementById('popup_background');
    }
    else {
        objTemp = document.createElement("div");
        objTemp.id = 'popup_background';
        objTemp.style.visibility='hidden';
    }

    objTemp.style.display='block';

    popupBackground = document.body.appendChild(objTemp);
    $(popupBackground).effects({
        duration:400,onComplete:function(){
            $(popupBackground).effects({}).set({'opacity':[0.5]}); showPopupContent(id, width, height);
        }
    }).start({'opacity':[0,0.5]});
}





function showPopupContent(id, width, height) {
    if (document.getElementById('popup_content')) {
        objTemp = document.getElementById('popup_content');
    } else {
        objTemp = document.createElement("div");
        objTemp.id = 'popup_content';
    }

    splitContent = document.getElementById(id).innerHTML.split('getAdr("');
    for(i=1;i<splitContent.length;i++) {
        emailSplit = splitContent[i].split('", "');
        document.getElementById(id).innerHTML = document.getElementById(id).innerHTML.split('<script type="text/javascript">').join('<a href="mailto:'+emailSplit[0] + '@' + emailSplit[1] + '">' + emailSplit[0] + '@' + emailSplit[1] + '</a><span style="display: none">');

        document.getElementById(id).innerHTML = document.getElementById(id).innerHTML.split('</script>').join('</span>');
    }

    objTemp.innerHTML= '<div id="popup_close"><a href="javascript:popupClose()"><span>X</span></a></div><div id="popup_text">' + document.getElementById(id).innerHTML + '</div>';

    if (width > 0 && height > 0) {
        objTemp.style.width=width+'px';
        objTemp.style.height=height+'px';
        objTemp.style.marginLeft='-' + Math.floor(width/2) +'px';
        objTemp.style.marginTop='-' + Math.floor(height/2) +'px';
    }

    objTemp.style.display='block';

    popupContent =  document.body.appendChild(objTemp);
}

function popupClose() {
    popupContent = document.getElementById('popup_content');
    popupContent.style.display='none';
    popupBackground = document.getElementById('popup_background');

    $(popupBackground).effects({
        duration:400,onComplete:function(){
            popupBackground.style.display='none'; showSelectBoxes();
        }
    }).start({'opacity':[0.5,0]});
}




