// site.js
// Cube
var navi_id_old;
var s_time_navi = 0;
var navi_aktiv;
var cube_pos = 0;

var id_pos = new Array();
id_pos[0] = 40;
id_pos[1] = 105;
id_pos[2] = 170;
id_pos[3] = 222;
id_pos[4] = 290;
id_pos[5] = 384;
id_pos[6] = 453;
id_pos[7] = 497;
id_pos[8] = 543;

function init(link)
    {
    // Cube-Link
    document.getElementById('cube').style.left = id_pos[link]+'px';
    
    cube_pos = id_pos[link];

    var navi = document.getElementsByTagName("a");
    var b = 0;
    var c = 0;
    for (var i=0; navi.length>i; i++)
        {
        if(navi[i].className == 'navi')
            {
            if (b==link)
                {
                navi[i].className = 'navi_here';
                navi_id_old = b;
                //navi[i].href = 'javascript:void(0);';
                }
              
            navi[i].id = 'navi_'+b;
            navi[i].onmouseover = function() { switch_cube(this, false); };
            navi[i].onmouseout = function() { switch_cube(document.getElementById('navi_'+link), true); };
           
            
            b++;
            }
        // F�cher   
        if(navi[i].className == 'link_faecher')
            {
            if (c==0)
                {
                navi[i].className = 'link_faecher_here';
                }
            navi[i].onclick = function() { change_faecher(this); };
            c++;
            }
            
        navi[i].onfocus = function() { this.blur(); };
        
        if (navi[i].onclick!=undefined)
            {
            addEvent(navi[i], 'click', function() { soundManager.play('web_klick'); }); 
            }
        else
            navi[i].onclick = function() { soundManager.play('web_klick'); };
        }
    }
    
function addEvent(obj, type, fn) { 
    if (obj.addEventListener) 
      obj.addEventListener(type, fn, false); 
    else if (obj.attachEvent) 
      obj.attachEvent('on' + type, function() { return fn.apply(obj, [window.event]);}); 
    } 
    
function switch_cube(obj, back)
    {
    clearTimeout(navi_aktiv);
    s_time_navi = 0;
    
    var id = obj.id.replace('navi_', '');
    
    if(cube_pos != id_pos[id])
      navi_move(cube_pos, id)
    }
  
function navi_move(sta, end) 
    {                   
    start_pos = sta;
        
    end_pos = id_pos[end];
    
    if (s_time_navi == 0)
        {
        s_time_navi = new Date();
        s_time_navi = s_time_navi.getTime();
        }
    
    var j_time = new Date();
      j_time = j_time.getTime(); 

    var dtime = j_time - s_time_navi;
    var faktor = (Math.abs(end_pos-start_pos)/id_pos[8])*2000;
  
    cube_pos = start_pos + (dtime/faktor) * (end_pos-start_pos);
  
    if (dtime/faktor >= 1)
        cube_pos = end_pos;
        
    if (Number(cube_pos))
        {
        document.getElementById('cube').style.left = cube_pos+'px';
        }

    // ###
    if (cube_pos != end_pos)
        {
        navi_aktiv = setTimeout ("navi_move("+sta+","+end+");", 16);
        }
    else
        {
        navi_id_old = end;
        s_time_navi = 0;
        }
    }
    
// ### INTRO ###
var s_time_intro = 0;
var s_time_intro2 = 0;
var aktuell_pic = 1;

function init_intro(step) 
    {
    switch (step)
        {
        case 0:
            setTimeout("soundManager.play('web_klick')", 1000);
            setTimeout('intro_fade_in(new Array("intro_1", "intro_3"),'+3000+','+step+');', 2000);
            setTimeout("soundManager.play('web_klick')", 5000);
            break;
        case 1:
            setTimeout('intro_fade_out(new Array("intro_1", "intro_3"),'+3000+','+step+');', 1500);
            setTimeout('intro_move(new Array("intro_1", "intro_3"), 3000, 320, new Array(1, -1), new Array(0, 640), '+step+', false);', 1500);
            break;
        case 2:
            setTimeout('intro_move("intro_2", 2500, 320, -1, 320, '+step+', true);', 700);
            break;
        case 3:
            intro_fade_out('bg', 1500, step);
            break;
        case 4:
            document.getElementById('bg').style.zIndex = -5;
            document.getElementById('intro_1').style.zIndex = -6;
            document.getElementById('intro_2').style.zIndex = -6;
            document.getElementById('intro_3').style.zIndex = -6;
            break;
        }
    }
    
function intro_fade_in(obj, dur, step) {
    if (s_time_intro == 0)
        {
        s_time_intro = new Date();
        s_time_intro = s_time_intro.getTime();
        }
  
    var j_time = new Date();
    j_time = j_time.getTime(); 
  
    var obj_tra = ((j_time - s_time_intro)/dur) * 100;

    var obj2 = '';
    if (typeof(obj)=='object')
        {
        for(var i=0; i<obj.length; i++)
            {
            document.getElementById(obj[i]).style.opacity = (obj_tra/100);
            document.getElementById(obj[i]).style.filter = "alpha(opacity="+obj_tra+")";   
            obj2 += '"'+obj[i]+'",';
            }
        obj2 = obj2.substring(0,obj2.length-1);
        obj2 = 'new Array('+obj2+')';
        }
    else
        {
        document.getElementById(obj).style.opacity = (obj_tra/100);
        document.getElementById(obj).style.filter = "alpha(opacity="+obj_tra+")"; 
        obj2 = obj;  
        }  
  
    if (obj_tra < 100)
        {
        setTimeout('intro_fade_in('+obj2+','+dur+','+step+');', 16);
        }
    else
        {
        s_time_intro = 0;
        if(step!=undefined)
            init_intro(step+1);
            
        if(galerie_close==true)
            {
            galerie_close = false;
            init_scroll();
            }
        }
    }
    
function intro_fade_out(obj, dur, step) {
    if (s_time_intro == 0)
        {
        s_time_intro = new Date();
        s_time_intro = s_time_intro.getTime();
        }
  
    var j_time = new Date();
    j_time = j_time.getTime(); 
  
    var obj_tra = 100 - ((j_time - s_time_intro)/dur) * 100;

    var obj2 = '';
    if (typeof(obj)=='object')
        {
        for(var i=0; i<obj.length; i++)
            {
            document.getElementById(obj[i]).style.opacity = (obj_tra/100);
            document.getElementById(obj[i]).style.filter = "alpha(opacity="+obj_tra+")";   
            obj2 += '"'+obj[i]+'",';
            }
        obj2 = obj2.substring(0,obj2.length-1);
        obj2 = 'new Array('+obj2+')';
        }
    else
        {
        document.getElementById(obj).style.opacity = (obj_tra/100);
        document.getElementById(obj).style.filter = "alpha(opacity="+obj_tra+")"; 
        obj2 = '"'+obj+'"';  
        }  
  
    if (obj_tra > 0)
        {
        setTimeout('intro_fade_out('+obj2+','+dur+','+step+');', 16);
        }
    else
        {
        s_time_intro = 0;

        if(step!=undefined)
            init_intro(step+1);                         
        }
    }
    
function intro_move(obj, dur, pos, dir, sta, step, nextstep) {
    if (s_time_intro2 == 0)
        {
        s_time_intro2 = new Date();
        s_time_intro2 = s_time_intro2.getTime();
        }
  
    var j_time = new Date();
    j_time = j_time.getTime(); 
  
    var marg_chan = ((j_time - s_time_intro2)/dur) * pos;
    
    if(marg_chan > pos)
        marg_chan = pos;

    var obj2 = '';
    var dir2 = '';
    var sta2 = '';
    
    if (typeof(obj)=='object')
        {
        for(var i=0; i<obj.length; i++)
            {
            document.getElementById(obj[i]).style.marginLeft = (sta[i] + (marg_chan * dir[i]))+"px";  
            obj2 += '"'+obj[i]+'",';
            dir2 += ''+dir[i]+',';
            sta2 += ''+sta[i]+',';
            }
        obj2 = obj2.substring(0,obj2.length-1);
        obj2 = 'new Array('+obj2+')';
        dir2 = dir2.substring(0,dir2.length-1);
        dir2 = 'new Array('+dir2+')';
        sta2 = sta2.substring(0,sta2.length-1);
        sta2 = 'new Array('+sta2+')';
        }
    else                                                              
        {
        document.getElementById(obj).style.marginLeft = (sta + (marg_chan * dir))+"px";   
        obj2 = '"'+obj+'"';  
        dir2 = dir;
        sta2 = sta;
        }  
  
    if (marg_chan != pos)
        {
        setTimeout('intro_move('+obj2+', '+dur+', '+pos+', '+dir2+', '+sta2+', '+step+', '+nextstep+');', 16);
        }
    else
        {
        s_time_intro2 = 0;
        
        if(step!=undefined && nextstep == true)
            init_intro(step+1);
            
        soundManager.play('web_klick')
        }
    }
    
// ### F�CHER ###

function change_faecher(obj)
    {
    // Cube-Link
    var navi = document.getElementsByTagName("a");
    var b = 0;
    for (var i=0; navi.length>i; i++)
        {
        if(navi[i].className == 'link_faecher_here' || navi[i].className == 'link_faecher')
            {           
            if (b==(Number(obj.innerHTML)-1))
                {
                if(content_arr[(Number(obj.innerHTML)-1)]!="")
                    navi[i].className = 'link_faecher_here';                
                }
            else
                {
                navi[i].className = 'link_faecher';
                }
            b++;
            }
        }
    }
    
function change_content(i)
    {
    if(content_arr[i-1]!="")
        {
        document.getElementById('site_content').innerHTML = content_arr[i-1];
        document.getElementById('site_content').scrollTop = 0;
        scroll_n=0;
        init_scroll();
        
    //*****

    var navi = document.getElementById('site_content').getElementsByTagName("a");
    var b = 0;
    var c = 0;
    for (var i=0; navi.length>i; i++)
        {
        
        if (navi[i].onclick!=undefined)
            {
            addEvent(navi[i], 'click', function() { soundManager.play('web_klick'); }); 
            }
        else
            navi[i].onclick = function() { soundManager.play('web_klick'); };
        }
        
      // +++++
        }
    }
    
// ###GALERIE###

var galerie_id;
var aktiv_galerie;
var gal_time = 0;

var stop_but = new Image();
stop_but.src = 'img/galerie/stop.jpg';

var pics = new Array();
pics[0] = new Image();
pics[0].src = 'img/galerie/galerie1/1.jpg';
pics[1] = new Image();
pics[1].src = 'img/galerie/galerie1/2.jpg';
pics[2] = new Image();
pics[2].src = 'img/galerie/galerie1/3.jpg';

function init_galerie(id, step)
    {
    clearTimeout(aktiv_galerie);
    if(step==undefined)
        {
        setTimeout('loadpics_'+id+'();', 0);
        galerie_id = id;
        var step = 1;
        setTimeout("document.getElementById('gal_pic').src = galerie["+galerie_id+"][0].src;", 500);
        }
   
    switch (step)
        {
        case 1:
            galerie_fade_out(new Array("site_content","faecher","cube","line","navigation", "scroll_bg"), 1000, step);
            break;
        case 2:
            galerie_display(new Array("site_content","faecher","cube","line","navigation"), "none", step);
            break;
        case 3:
            galerie_display(new Array("gal_img","gal_nav"), "block", step);
            break;
        case 4:       
            intro_fade_in(new Array("gal_img","gal_nav"), 2000);
            break;
        }
    }
    
var galerie_close = false;    
    
function galerie_schliessen(step)
    {       
    galerie_close = true;
    clearTimeout(aktiv_galerie);
    if(step==undefined)
        {
        var step = 1;
        }

    switch (step)
        {       
        case 1:
            galerie_fade_out(new Array("gal_img","gal_nav"), "1000", step, true);
            break;
        case 2:
            galerie_display(new Array("gal_img","gal_nav"), "none", step, true);
            break;
        case 3:
            galerie_display(new Array("site_content","faecher","cube","line","navigation"), "block", step, true);
            break;
        case 4:
            if(gal_play == true)
                {
                diashow();  
                gal_play = false; 
                }
                
            document.getElementById('gal_pic').src = '';
            intro_fade_in(new Array("site_content","faecher","cube","line","navigation"), 1000);
            
            aktuell_pic = 1;
            break;
        }
    }
    
function galerie_display(obj, dis, step, close)
    {
    if (typeof(obj)=='object')
        {
        for(var i=0; i<obj.length; i++)
            {
            document.getElementById(obj[i]).style.display = dis;  
            }
        }
    else                                                              
        {
        document.getElementById(obj).style.display = dis;   
        } 
     
    if (close!=undefined)
        galerie_schliessen(step+1)
    else    
        init_galerie(galerie_id, step+1)
    }
    
function galerie_fade_out(obj, dur, step, close) {
    if (s_time_intro == 0)
        {
        s_time_intro = new Date();
        s_time_intro = s_time_intro.getTime();
        }
        
    if (close == undefined)
      var close=false;
  
    var j_time = new Date();
    j_time = j_time.getTime(); 
  
    var obj_tra = 100 - ((j_time - s_time_intro)/dur) * 100;

    var obj2 = '';
    if (typeof(obj)=='object')
        {
        for(var i=0; i<obj.length; i++)
            {
            document.getElementById(obj[i]).style.opacity = (obj_tra/100);
            document.getElementById(obj[i]).style.filter = "alpha(opacity="+obj_tra+")";   
            obj2 += '"'+obj[i]+'",';
            }
        obj2 = obj2.substring(0,obj2.length-1);
        obj2 = 'new Array('+obj2+')';
        }
    else
        {
        document.getElementById(obj).style.opacity = (obj_tra/100);
        document.getElementById(obj).style.filter = "alpha(opacity="+obj_tra+")"; 
        obj2 = '"'+obj+'"';  
        }  
  
    if (obj_tra > 0)
        {
        aktiv_galerie = setTimeout('galerie_fade_out('+obj2+','+dur+','+step+', '+close+');', 16);
        }
    else
        {
        s_time_intro = 0;

        if(close!=false)
            galerie_schliessen(step+1); 
        else
            init_galerie(galerie_id,step+1);
        }
    }
    
function galerie_back()
    {
    if (gal_play==true)
      clearTimeout(gal_dia);
      
    clearTimeout(aktiv_galerie);
    
    if(aktuell_pic==1)
      aktuell_pic = galerie[galerie_id].length;
    else
      aktuell_pic -= 1;
    
    gal_time = 0;  
    galerie_pic_fade(galerie[galerie_id][aktuell_pic-1]);
    //document.getElementById('gal_num').innerHTML = aktuell_pic+'/'+pics.length  
    
    if (gal_play==true)
      gal_dia = setTimeout('galerie_next();', 5000);
    }
    
function galerie_next()
    {
    if (gal_play==true)
      clearTimeout(gal_dia);
    
    clearTimeout(aktiv_galerie);
    
    if(aktuell_pic==galerie[galerie_id].length)
      aktuell_pic = 1;
    else
      aktuell_pic += 1;
      
    gal_time = 0;
    galerie_pic_fade(galerie[galerie_id][aktuell_pic-1]);
    //document.getElementById('gal_num').innerHTML = aktuell_pic+'/'+pics.length 
    
    if (gal_play==true)
      gal_dia = setTimeout('galerie_next();', 6000); 
    }
    
function galerie_pic_fade(img) {
    if (gal_time == 0)
        {
        document.getElementById('gal_pic').style.opacity = (0/100);
        document.getElementById('gal_pic').style.filter = "alpha(opacity="+0+")"; 
        gal_time = new Date();
        gal_time = gal_time.getTime();
        document.getElementById('gal_pic').src = img.src;
        //document.getElementById('gal_num').style.width = img.width;
        }
  
    var j_time = new Date();
    j_time = j_time.getTime(); 
  
    var obj_tra = ((j_time - gal_time)/1500) * 100;

    document.getElementById('gal_pic').style.opacity = (obj_tra/100);
    document.getElementById('gal_pic').style.filter = "alpha(opacity="+obj_tra+")"; 

    if (obj_tra < 100)
        {                       
        aktiv_galerie = setTimeout('galerie_pic_fade();', 16);
        }
    else
        {
        gal_time = 0;
        }
    }
    
var gal_play = false;
var gal_dia;
    
function diashow()
    {
    switch (gal_play)
        {
        case false:
            gal_dia = setTimeout('galerie_next();', 6000);
            gal_play = true;
            document.getElementById('galerie_play').src = stop_but.src;
            break;
        case true:
            clearTimeout(gal_dia);            
            gal_play = false;
            document.getElementById('galerie_play').src = 'img/galerie/play.jpg';
            break;  
        }
    }
    
// ###SCROLLBALKEN###

var y, y_start, scrolling = false, scroll_n = 0;

function init_scroll() 
      {      
      var mydiv = document.getElementById('site_content');
      var nowgescrolled = mydiv.scrollTop; 
      mydiv.scrollTop = mydiv.scrollHeight; 
      scrollh = mydiv.scrollHeight;
      mydiv.scrollTop = nowgescrolled;
        
      if(scrollh > 420)
          {
          document.getElementById('scroll_fg').style.height = (420/scrollh)*420+'px';
          document.getElementById('scroll_bg').style.display = 'block';          
          intro_fade_in(new Array("scroll_bg"), 1000);
          document.getElementById('scroll_dc').style.display = 'block';
        
          document.getElementById('scroll_fg').style.top = scroll_n;
          document.getElementById('site_content').scrollTop = scroll_n*(scrollh/420);
          }
      else
          {
          document.getElementById('scroll_bg').style.display = 'none';
          document.getElementById('scroll_dc').style.display = 'none';
          }
      } 
       
function scroll_start ()
      {
      y_start = y;
      
      scrolling = true;
      
      document.body.style.KhtmlUserSelect='none';
      }    

document.onmouseup = scroll_stop;
document.onmousemove = scroll;
  
function scroll(e) 
    {
    if (!e)
      e = window.event;

    y = e.clientY;
      
    if (scrolling == true)
        {        
        var t = scroll_n - y_start + y;
        if (t<0)
            t=0;
            
        if(t>420-(420/scrollh)*420)
            t=420-(420/scrollh)*420;
        
        document.getElementById('scroll_fg').style.top = t;
        document.getElementById('site_content').scrollTop = t*(scrollh/420);
        }
    }     
      
function scroll_stop()
    {
    if(scrolling == true)
        {
        scrolling = false;
        scroll_n = scroll_n - y_start + y;
        }
        
    document.body.style.KhtmlUserSelect='';
    }  
   
function handle(delta) {

        if (delta < 0)
            {
        var t = scroll_n + 15;
        
        if (t<0)
            t=0;
            
        if(t>420-(420/scrollh)*420)
            t=420-(420/scrollh)*420;
        
        document.getElementById('scroll_fg').style.top = t;
        document.getElementById('site_content').scrollTop = t*(scrollh/420);
            }
        else
            {
        var t = scroll_n - 15;
        if (t<0)
            t=0;
            
        if(t>420-(420/scrollh)*420)
            t=420-(420/scrollh)*420;
        
        document.getElementById('scroll_fg').style.top = t;
        document.getElementById('site_content').scrollTop = t*(scrollh/420);
            }
        scroll_n = t;
}

/** Event handler for mouse wheel event.
 */
function wheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        if (delta)
                handle(delta);
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}

/** Initialization code. 
 * If you use your own event management code, change it as required.
 */
if (window.addEventListener)
        /** DOMMouseScroll is for mozilla. */
        window.addEventListener('DOMMouseScroll', wheel, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = wheel;

function playm(m, a){
	var obj = a;
	switch(obj.src){
		case 'http://dierk-berthel.de/test/img/mplay1.png':
			obj.src = 'img/mstop1.png';
			obj.onmouseover = function() { this.src='img/mstop1.png'; };
			obj.onmouseout = function() { this.src='img/mstop0.png'; };
			soundManager.play(m);
			break;						
		case 'http://dierk-berthel.de/test/img/mstop1.png':
			obj.src = 'img/mplay1.png';
			obj.onmouseover = function() { this.src='img/mplay1.png'; };
			obj.onmouseout = function() { this.src='img/mplay0.png'; };
			soundManager.stop(m);
			break;
	}
}






