var allow = false;
var d = document;
d.gEBI = document.getElementById;

var csvnavi_getChilds_cache = new Array();
function csvnavi_getChilds(parent)
{
    if (csvnavi_getChilds_cache[parent])
        { return csvnavi_getChilds_cache[parent]; }

    var retval = new Array();
 // var maxlvl = navi[parent]['level'];
    for (var z1=0; z1< navi.length;z1++)
        {
            // if (navi[z1]['level']=='maxlvl') { break; } //wenn der naechste punkte der selben ebene kommt, habe ich schon alle unterpunkte durch
            if(navi[z1]['parent']!=='' && navi[z1]['parent']==parent) { retval[retval.length]=navi[z1];}
        }
    csvnavi_getChilds_cache[parent] = retval;

    return retval;
}


function csvnavi_getlink(id)
{
    for (var z1=id;z1<navi.length;z1++)
        {
            if (navi[z1]['pageid'])
                { return navi[z1]['pageid']; }
        }
    return '';
}

function drophref(o)
{
    var t0=getFirstChildByTagName(o,'A');
    t0.href="javascript:void(0)";
}

function showsub(o,parent,parentlvl)
{
    if (!allow) { return; }

    stat_backup();

    navi_clicked = true;

    var t0;
    var t1 = csvnavi_getChilds(parent);
    var fstlvl = parseInt(parentlvl)+1;


    //farbe aendern
        t0 = getFirstChildByTagName(o,'A');
        clr_high(t0,fstlvl,1)
        //



    //layer loeschen
    for (var z0 = fstlvl; z0<3; z0++)
        {
            t0 = d.gEBI('navi_col'+z0);
            t0 = getFirstChildByTagName(t0,'TBODY');
            if ( t0 )
                { while(t0.childNodes.length>0) { t0.removeChild(t0.lastChild); } }
        }
    //

    //neuen layerinhalt
    var t2 = d.gEBI('navi_col'+fstlvl);
    t2 = getFirstChildByTagName(t2,'TBODY');

    //abstand von oben
    t0 = d.gEBI('tmplts_navi_spacer').cloneNode(true);
    t0.style.height="11px";
    t2.appendChild(t0);
    //

    var t3;
    var link;
    for( var i=0;i<t1.length;i++)
        {
            t0 = d.gEBI('tmplts_navi_navp').cloneNode(true);
            
            link = getFirstChildByTagName(t0,'A');
            //link.childNodes[0].nodeValue = i+":"+t1.length+":"+t1[i]['name'];
            link.childNodes[0].nodeValue = t1[i]['name'];

            img = getFirstChildByTagName(t0,'IMG');

            t3 = csvnavi_getChilds(t1[i]['id']);

            // href = "javascript:alert("+csvnavi_getlink(t1[i]['id'])+")";//
            //href = "index.php?pageid="+csvnavi_getlink(t1[i]['id']); //hier muss dann etwas rein wie href = csvnavi_getlink(t1[i]['id'])
            href = csvnavi_getlink(t1[i]['id']);



            link.href = href;

            if ( t3 && t3.length > 0 )
                {
                    t0.onclick = new Function("drophref(this);showsub(this,"+t1[i]['id']+","+t1[i]['level']+");return false");
                    img.src="/img/navigation/pfeil_trans.gif";
                }
            else
                {
                    t0.onclick = new Function("drophref(this);self.location.href='"+href+"';return false")
                    img.src="/img/page_misc/1pixel.gif";
                }


            if (t1[i]['visibility']=='2')
            	{
            		link.href="#";
            		link.className = "navi_link_gr";
            		t0.onclick = null;
            		t0.onmouseover = null;
            		t0.onmouseout = null;
            	}
           else
           	{
           		link.className = "navi_link";
           	}


            t2.appendChild( t0 );

            var doborder = true;
            if (i>=t1.length-1 )
            	{ doborder = false; }

            if (doborder)
            	{
            		t0 = d.gEBI('tmplts_navi_border_ws').cloneNode(true);
		            t2.appendChild( t0 );
		          }

        }

    //abstand nach unten
    t0 = d.gEBI('tmplts_navi_spacer1').cloneNode(true);
    t2.appendChild( t0 );
    //


    //



}

var colorrollback_cache = new Array(false,false,false);
function clr_high(o,lvl,stat)
{
    if (!allow) { return; }
    if (colorrollback_cache[lvl]!==false)
        {
            colorrollback_cache[lvl].navi_clicked = colorrollback_cache[lvl].navi_hovered = false;
            navi_setlinkcolor(colorrollback_cache[lvl]);
        }

    colorrollback_cache[lvl] = o;

    colorrollback_cache[lvl].navi_clicked = true;
    navi_setlinkcolor(o);
}

function linkmo(o,arg1)
{
    if (!allow) { return; }
    stat_backup();

    var t0 = getFirstChildByTagName(o,'A');
    t0.navi_hovered = arg1 ? true : false;

    navi_setlinkcolor(t0);

    if (t0.originalclassName=="navi_link_sw" && t0.navi_hovered )
    	{ aktnav0hovered = true; }
    else if (t0.navi_hovered)
    	{ aktnav0hovered = false; }


}

var navi_setlinkcolor_cache = new Array()
function navi_setlinkcolor(o,status)
{
    if (!allow) { return; }

    o.navi_blocked = true;

    if ( undefined == o.originalclassName)
        {
            o.originalclassName = o.className;
        }

    if (o.originalclassName == "navi_link_sw")
    	{ return; }

    var img =  getFirstChildByTagName(o.parentNode.parentNode,'IMG');

    if (img !== false)
    	{
    		var newsrc = false;
    		if (img.src.indexOf('pfeil') > -1)
		    	{
		    		if  ( o.navi_hovered===true )
		    			{ newsrc = "/img/navigation/pfeil_bl.gif"; }
				    else if (o.navi_clicked===true)
				    	{ newsrc = "/img/navigation/pfeil_sw.gif"; }
		        else
				    	{ newsrc = "/img/navigation/pfeil_trans.gif"; }
		      }
		     else
		     	{
		    		if  ( o.navi_hovered===true )
		    			{ newsrc = "/img/navigation/doc_bl.gif"; }
		        else
				    	{ newsrc = "/img/page_misc/1pixel.gif"; }
					}

		    if (newsrc !== false && newsrc != img.src)
		    	{ img.src = newsrc; }

		  }

    if (o.navi_hovered===true) { o.className = "navi_link_hover";  }
    else if (o.navi_clicked===true) { o.className = "navi_link_rt";}
    else {o.className = o.originalclassName;}

}

function dim(arg1)
{
    if (arg1==0 && wasin!==true)
        {
            stat_restore();
            dimn1n2 (np_opacity_max, np_opacity_min )
        }

        if (arg1==1)
        {
            dimn1n2 (np_opacity_max, false);

        }

}
var dimn1n2_tmr = false;
function dimn1n2(opacStart,opacEnd)
{
    window.clearTimeout(dimn1n2_tmr);

    changeOpac(opacStart,'navi_col1');
    changeOpac(opacStart,'navi_col2');

        if (opacEnd===false) { return; }

        if (opacStart>opacEnd)
            { opacStart--; }

        if (opacStart<opacEnd)
            { opacStart++; }

        if (opacStart==opacEnd)
                { return; }

        dimn1n2_tmr = window.setTimeout('dimn1n2('+opacStart+','+opacEnd+')',50);
}

stat_saved = false;
function stat_backup()
{
    if ( stat_saved ) { return; }

    var t0;
    var t1;
    var t2;
    var t3;
    for (var z0=0; z0<3; z0++)
        {
            t0 = d.gEBI('navi_col'+z0);
            t1 = d.gEBI('backup_navi_col'+z0);
            for (var z1=0; z1<t0.childNodes.length; z1++)
                {
                    t2 = t0.childNodes[z1].cloneNode(true);

                    t1.appendChild( t2 );
                }
//  				t1.style.display = t0.style.display;
        }
    stat_saved = true;
}

var stat_restore_tmr = false;
function stat_restore()
{
    if ( ! stat_saved ) { return; }

    var t0;
    var t1;
    var t2;
    var t3;
    for (var z0=0; z0<3; z0++)
        {
            t0 = d.gEBI('navi_col'+z0);

            while(t0.childNodes.length>0)
                    { t0.removeChild(t0.lastChild); }

            t1 = d.gEBI('backup_navi_col'+z0);
            for (var z1=0; z1<t1.childNodes.length; z1++)
                {
                    t0.appendChild( t1.childNodes[z1].cloneNode(true) );
                }

        }
}

var leave_navi_tmr;
function leave_navi(arg1)
{
    clearTimeout(leave_navi_tmr);
    leave_navi_tmr = false;

    if (arg1==0)
        {
        	may_hide_n12 = false;
        	leave_navi_n0(false);
        	leave_navi_tmr = setTimeout("dim(0)",3000); return
        }

    if (arg1==1)
        {
        	may_hide_n12 = true;
        	dim(1);
        }
}

var aktnav0hovered = false;
var navi_clicked = false;
function leave_navi_n0()
{
	//return; //entkommentieren, um auschalten von n1+n2 zu deaktivieren
	//window.status = wasin+":"+wasinn0+":"+	aktnav0hovered

	var vis = "visible";

	if (wasin && wasinn0 && ! aktnav0hovered && ! navi_clicked)
		{
			vis = "hidden";
		}

	d.gEBI('navi_col1').style.visibility = 	d.gEBI('navi_col2').style.visibility = vis;
}

var mcheck = false;
var dimout_once_tmr;
var promotionStart = false;

function init()
{
    allow = true;
    
    if (!home)  // not Home
    {
        if (document.getElementById("main_content").offsetHeight <
            document.getElementById("content_boxes").offsetHeight)
           {
                document.getElementById("main_content").style.height = (document.getElementById("content_boxes").offsetHeight - 40)+"px";
           }
    } 
    
    if (promotionStart)   // Poupupīs und FadeIn Promotions
    {
        setTimeout(promotionStart,1000); 
    }
    
        
    /*
     // DIV erst einblenden, nach dyn. Breiteneinstellung
        document.getElementById("page_content").style.visibility = "visible";
        document.getElementById("page_content").style.backgroundImage= "url(/img/page_content/page_content_verlauf.gif)";
    */
    
    if (ma_portal) // Mitarbeiterportal
    {
        // true
    } else {
        mcheck = window.setInterval("checkhover()",50);
        leave_navi(0);
    }

}


function promoClose( which )
{
    document.getElementById( which ).style.display="none";
}

//


///var allow = false;

//var prodlist_np_opacity_max = np_opacity_max + 6;
var prodlist_np_opacity_max = np_opacity_max + 15;

function prodlist_show( arg1 )
{
    //window.status = arg1;
    var opnr = d.gEBI('prodlist_opener');
    var lst = d.gEBI('prodlist_list');

    //click
    if (arg1==2)
        {
            //auschlaten bei klick und geoeffnetem layer
            if (lst.style.display=="block") { lst.style.display = "none"; return; }
        }
    //

    //mouseout
    if (arg1==0)
        {
            prodlist_dim(prodlist_np_opacity_max, 1);
            return;
        }
    //

    //click zum oeffnen, oder mouseover
    /*
    var l = sumOffset(opnr,'left');
    if (_IE)
    	{ l = l-252; }

    lst.style.left = l+"px";

    var y = sumOffset(opnr) + (_IE ? -11 : parseInt(opnr.offsetHeight) );
    lst.style.top = y+"px";
    */
    
    lst.style.display = 'block';
    //

    prodlist_dim(prodlist_np_opacity_max, false);
}


var prodlist_dim_tmr = false;
function prodlist_dim(opacStart,opacEnd)
{
    window.clearTimeout(prodlist_dim_tmr);
    //window.status = opacStart;
    changeOpac(opacStart,'prodlist_list');

        if (opacEnd===false) { return; }

        if (opacStart>opacEnd)
            { opacStart--; }

        if (opacStart<opacEnd)
            { opacStart++; }

        if (opacStart==opacEnd)
                { d.gEBI('prodlist_list').style.display='none'; return; }

        prodlist_dim_tmr = window.setTimeout('prodlist_dim('+opacStart+','+opacEnd+')',50);
}





var activeDiv = false;
function divShow ( divname )
{
    var div   = document.getElementById(divname);

    if (activeDiv && activeDiv != divname) {
        document.getElementById(activeDiv).style.display = "none";
    }

    /* Kontaktbereich */
    document.getElementById(divname.replace(/_infos/,"")+"_link").style.display = "none";
    if (activeDiv && divname.indexOf("kontaktbereich") > -1) {
        var reiterDiv = activeDiv.replace(/_infos/,"");
        activeDiv = false;
        classChange ( reiterDiv, 'reiter_kontaktbereich');

        document.getElementById(reiterDiv.replace(/_infos/,"")+"_link").style.display = "block";
    }
    /* /Kontaktbereich */


    if (div.style.display == "block") {
        div.style.display = "none";
    } else {
        div.style.display = "block";
        activeDiv = divname;
    }
}





function classChange ( divname, className )
{
    var div = document.getElementById(divname);

    if (activeDiv)
        div.className = className+"_active";
    else
        div.className = className;
}








/* Bouncing Promo-Window */

var down = true;
var up = false;
var iter = 0;
var setId = false;

var bouncingDiv;
var winH = false;
var prevfn = false;
var nextfn = false;

function bounce_init(div_name, div_height, win_height, leftpos, prevFunction, nextFunction)
{
    winH = win_height;
    prevfn = prevFunction;
    nextfn = nextFunction;
    
    bouncingDiv = document.getElementById(div_name).style;
    bouncingDiv.top = (0 - (div_height+10))+"px";  /// verstecke
    bouncingDiv.left = leftpos+"px";
    bouncingDiv.display = "block";
    iter = 0;
    
    if (prevfn) {eval(prevfn);}
    
    if (setId != 0) clearInterval(setId);
    setId = setInterval("generateGravity()", 20);
    return true;
}


function generateGravity() 
{
    
    if ((parseInt(bouncingDiv.top)+iter < winH) && down) 
    {
        bouncingDiv.top = (parseInt(bouncingDiv.top) + iter)+"px";
        iter++;
        return;
    }
    else 
    {
        // document.getElementById('status').innerHTML = "TOP: "+bouncingDiv.top+" | iter: "+iter;
        
        // Korrigieren auf win-height
        if ((parseInt(bouncingDiv.top) < winH) && down) 
        {
            bouncingDiv.top = parseInt(winH + 5)+"px";
            return;
        }
        down = false;
        up = true;
        
        if (iter < 0 && parseInt(bouncingDiv.top) > winH) 
        {
            clearInterval(setId);
            setId = 0;
            if (nextfn) {eval(nextfn);}
        }
        
        if (parseInt(bouncingDiv.top) > winH - 100 && up && iter >= 0) 
        {
            bouncingDiv.top = (parseInt(bouncingDiv.top) - iter)+"px";
            iter-=5;
            if (iter%3 <= 0) iter-=5;
            return;
        }
        down = true;
        up = false;
   }
}

