/**
 * @author 
 * Todo: 
 * 
 * home
 * bio
 * player
 * upcoming
 * 
 * erledigt 17.11.10 resize
 * erledigt 16.11.10 Fade in/out 
 * erledigt 16.11.10 Player: Show Playlist
 */
var busy = 0;
var skip = 0;

function start()
{
//	setTimeout("fade('intro_text',1500,1)",0);
//	setTimeout("fade('intro_pic',1500,1)",1500);
//	setTimeout("fade('intro_text',1500,0)",1500);
//	setTimeout("fade('intro_pic',1500,0)",5000);
	
//	setTimeout("fade('music',750,1)",3500);
//	setTimeout("fade('plus',750,1)",3700);
//	setTimeout("fade('lyrics_',750,1)",4100);
//	setTimeout("fade('equals',750,1)",4300);
//	setTimeout("fade('notes',750,1)",4500);

//	setTimeout("fade('music',750,0)",4250);
//	setTimeout("fade('plus',750,0)",4450);
//	setTimeout("fade('lyrics_',750,0)",4850);
//	setTimeout("fade('equals',750,0)",5050);
//	setTimeout("fade('notes',1000,0)",5500);

	setTimeout("fade('intro',1000,0)",0);

	setTimeout("fade('bg_active',2000,1)",1000);
	
	//home();
	//setTimeout(function(){if(skip == 0)ready();},2000);
	//setTimeout("fb()",10000);
	setTimeout("ready()",2000);

	return;
}
function ready()
{
	
	
	var element1 = document.getElementById("biotext");
	element1.style.display = "block";
	var element2 = document.getElementById("musicplayer");
	element2.style.display = "block";
	var element3 = document.getElementById("gallery");
	element3.style.display = "block";
	var element4 = document.getElementById("live");
	element4.style.display = "block";
	var element5 = document.getElementById("credits");
	element5.style.display = "block";
	var element5 = document.getElementById("facebook");
	element5.style.display = "block";
	
	none("intro");
	setTimeout("fb()",0);

	return;
}
function skipintro()
{
	skip = 1;
	fade('bg_active',0,1)

	ready();
	return;
}

function unbusy()
{
	busy = 0;
	return;
}

function home()
{
	if (busy == 0) {
		busy = 1;
		
		move("biotext", 400,0,1000);
		move("musicplayer", 500,0,1000);
		move("gallery", 500,0,1000);
		move("live", 500,0,1000);
		move("credits", 500,0,1000);
		move("facebook", 400,0,1000);
		
		setTimeout("unbusy()",1000);
	}
	return;	
}

function bio()
{
	if (busy == 0) {
		busy = 1;
		
		setTimeout("move('biotext',800,0,1500)",500);
		
		move("musicplayer", 500,0,500);
		move("gallery", 500,0,500);
		move("live", 500,0,500);
		move("credits", 500,0,500);
		move("facebook", 400,0,500);
		setTimeout("unbusy()",2000);
	}
	return;
}
function musicplayer()
{
	if (busy == 0) {
		busy = 1;
	
		setTimeout("move('musicplayer',800,0,1500)",500);
		
		move("biotext", 400,0,500);
		move("gallery", 500,0,500);
		move("live", 500,0,500);
		move("credits", 500,0,500);
		move("facebook", 400,0,500);
		
		setTimeout("unbusy()",2000);
	}
	return;
}
function change_st(titel)
{
	obj = document.getElementById("playing");
  	var neu = titel;
	obj.childNodes[0].nodeValue=neu;
	return;
}
function gallery()
{
if (busy == 0) {
		busy = 1;
	
		setTimeout("move('gallery',800,0,1500)",500);
		
		move("biotext", 400,0,500);
		move("musicplayer", 500,0,500);
		move("live", 500,0,500);
		move("credits", 500,0,500);
		move("facebook", 400,0,500);
		
		setTimeout("unbusy()",2000);
	}
	return;	
}


function live()
{
if (busy == 0) {
		busy = 1;
	
		setTimeout("move('live',800,0,1500)",500);
		
		move("biotext", 400,0,500);
		move("musicplayer", 500,0,500);
		move("gallery", 500,0,500);
		move("credits", 500,0,500);
		move("facebook", 400,0,500);
		
		setTimeout("unbusy()",2000);
	}
	return;	
}
function credits()
{
if (busy == 0) {
		busy = 1;
	
		setTimeout("move('credits',800,0,1500)",500);
		
		move("biotext", 400,0,500);
		move("musicplayer", 500,0,500);
		move("gallery", 500,0,500);
		move("live", 500,0,500);
		move("facebook", 400,0,500);
		
		
		setTimeout("unbusy()",2000);
	}
	return;	
}
function fb()
{
if (busy == 0) {
		busy = 1;
	
		setTimeout("move('facebook',800,0,1500)",500);
		
		move("biotext", 400,0,500);
		move("musicplayer", 500,0,500);
		move("gallery", 500,0,500);
		move("live", 500,0,500);
		move("credits", 500,0,500);
		
		
		setTimeout("unbusy()",2000);
	}
	return;	
}
function showNifty()
{
	move("npl",679,6,1000);
	return;
}
function hideNifty()
{
	move("npl",679,-60,500);
	return;
}
function biogerman()
{
	var element1 = document.getElementById("biogerman");
	element1.style.display = "block";
	var element2 = document.getElementById("bioenglish");
	element2.style.display = "none";
	return;
}
function bioenglish()
{
	var element1 = document.getElementById("biogerman");
	element1.style.display = "none";
	var element1 = document.getElementById("bioenglish");
	element1.style.display = "block";
	return;
}

function show(eid)
{
	hideall();
	var element1 = document.getElementById("bgpic");
	element1.style.display = "block";
	var element2 = document.getElementById(eid);
	setTimeout(function(){element2.style.display = "block";},50);

	fade("bgpic",1000,1);
	setTimeout(function(){fade(eid, 500, 1);},50);
	return;

}
function showElement(eid)
{
		var element = document.getElementById(eid);
		element.style.display = "block";
		fade(eid,400,1);
		return;

}
function hideElement(eid)
{
		var element = document.getElementById(eid);
		fade(eid,300,0);

		setTimeout(function(){element.style.display = "none";},500);
		return;

}
function hideall()
{
	for(i=0;i<4;i++)
	{
		fade("bigpic"+i, 0, 0);
		none("bigpic"+i);
	}
	
	return;
}
function hidecomplete()
{
	for(i=0;i<4;i++)
	{
		fade("bigpic"+i, 500, 0);
	}
	fade("bgpic",500,0);
	setTimeout(function(){none("bgpic");},500);
	return;
}
function show_l(eid)
{
	hideall_l();
	var element1 = document.getElementById("lyrics");
	element1.style.display = "block";
	var element2 = document.getElementById(eid);
	setTimeout(function(){element2.style.display = "block";},50);

	fade("lyrics",1000,1);
	setTimeout(function(){fade(eid, 500, 1);},50);
	return;

}
function hideall_l()
{
	for(i=0;i<4;i++)
	{
		fade("lyric"+i, 0, 0);
		none("lyric"+i);
	}
	
	return;
}
function hidecomplete_l()
{
	for(i=0;i<4;i++)
	{
		fade("lyric"+i, 500, 0);
	}
	fade("lyrics",500,0);
	setTimeout(function(){none("lyrics");},500);
	return;
}
function none(eid)
{
	var element = document.getElementById(eid);
	element.style.display = "none";
	return;
}

//************************** TOOLS *************************************

function loadImgs(list,x,y)
{

	newImgs = new Array();

  	for (i=0; i < list.length; i++) 
	{
		newImgs[i] = document.createElement("img");
		document.body.appendChild(newImgs[i]);
		newImgs[i].style.position = "absolute";
		newImgs[i].style.left = x + "px";
		newImgs[i].style.top = y + "px";
		newImgs[i].style.width = "0";
		newImgs[i].style.height = "0";

		newImgs[i].style.opacity = 0;
		newImgs[i].style.filter = 'alpha(opacity = ' + ('0') + ')';
    	newImgs[i].src = list[i];
		newImgs[i].id = "element" + i;
		
  	}
	unbusy();
	return;
}




function startshow(slide1 , slide2 , slide3 , slide4 , slide5) //Endlose Diashow aus 5 <div>s
{
	slides = new Array(slide1,slide2,slide3,slide4,slide5);
	element = new Array();
	for (i = 0; i < slides.length; i++) {
		element[i] = document.getElementById(slides[i]);
		element[i].TimeToFade = 1500; //Fadezeit
		element[i].style.opacity = '0';
		element[i].style.filter = 'alpha(opacity = ' + ('0') + ')';
	}
	fade(slide1);
	setTimeout(function(){slideshow(slide1 , slide2 , slide3 , slide4 , slide5, 5000);}, 5000); //Standzeit
	return;
}

function slideshow(slide1 , slide2 , slide3 , slide4 , slide5, duration) 
{	
		setTimeout(function(){fade(slide1);}, duration*0);
		setTimeout(function(){fade(slide2);}, duration*0);
		
		setTimeout(function(){fade(slide2);}, duration*1);
		setTimeout(function(){fade(slide3);}, duration*1);
		
		setTimeout(function(){fade(slide3);}, duration*2);
		setTimeout(function(){fade(slide4);}, duration*2);
		
		setTimeout(function(){fade(slide4);}, duration*3);
		setTimeout(function(){fade(slide5);}, duration*3);
		
		setTimeout(function(){fade(slide5);}, duration*4);
		setTimeout(function(){fade(slide1);}, duration*4);
		
		setTimeout(function(){slideshow(slide1 , slide2 , slide3 , slide4 , slide5);},duration*5);

		return;
}

function fade(eid,fadeTime,io)
{

	var element = document.getElementById(eid);
	if(element == null)
	    return;
	
	if(fadeTime != null)
	{
		element.TimeToFade = fadeTime;
	}
	else
	{
		if(element.TimeToFade == null)
		{
			element.TimeToFade = 2000; //default Fade Time
		}
	}


	if(element.FadeState == null)
  	{
    	if(element.style.opacity == null
        	|| element.style.opacity == ''
        	|| element.style.opacity == '1')
    	{
      		element.FadeState = 2;
    	}
    	else
    	{
      		element.FadeState = -2;
    	}
  	}
	
   	if(io == 1 && element.FadeState == 2)return;
    if(io == 0 && element.FadeState == -2)return;
  	
	if(element.FadeState == 1 || element.FadeState == -1)
  	{
    	if(io == 1 && element.FadeState == 1)return;
    	if(io == 0 && element.FadeState == 0)return;

		element.FadeState = element.FadeState == 1 ? -1 : 1;
    	element.FadeTimeLeft = element.TimeToFade - element.FadeTimeLeft;
  	}
  	else
  	{
    	element.FadeState = element.FadeState == 2 ? -1 : 1;
    	element.FadeTimeLeft = element.TimeToFade;
    	setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  	}  
}

function fade1000(eid,io)
{

	var element = document.getElementById(eid);
	if(element == null)
	    return;
	
	if(element.TimeToFade == null)
	{
		element.TimeToFade = 1000; //default Fade Time
	}
	
	if (io != null) 
	{
		if (io == 1 && element.style.opacity == '1') 
			return;
		if (io == 0 && element.style.opacity == '0') 
			return;
	}
	
	if(element.FadeState == null)
  	{
    	if(element.style.opacity == null
        	|| element.style.opacity == ''
        	|| element.style.opacity == '1')
    	{
      		element.FadeState = 2;
    	}
    	else
    	{
      	element.FadeState = -2;
    	}
  	}
   
  	if(io == 1 && element.FadeState == 2)return;
    if(io == 0 && element.FadeState == -2)return;
  	
	if(element.FadeState == 1 || element.FadeState == -1)
  	{
    	if(io == 1 && element.FadeState == 1)return;
    	if(io == 0 && element.FadeState == 0)return;

		element.FadeState = element.FadeState == 1 ? -1 : 1;
    	element.FadeTimeLeft = element.TimeToFade - element.FadeTimeLeft;
  	}
  	else
  	{
    	element.FadeState = element.FadeState == 2 ? -1 : 1;
    	element.FadeTimeLeft = element.TimeToFade;
    	setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  	}  
}

function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = '
        + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/element.TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function move(eid, x, y, time)
{
	var element = document.getElementById(eid);
	if(element == null)
		return;
	
	if(time == null)
		time = 500; //default Move Time
	
	element.TimeToMove = time;
	element.MoveTimeLeft = time;
	
	element.startx = parseInt(element.style.left);
	element.starty = parseInt(element.style.top);

    setTimeout("animateMove(" + new Date().getTime() + ",'" + eid + "','" + x + "','" + y +"')", 33);
    
}

function animateMove(lastTick, eid, x , y)
{  
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	var element = document.getElementById(eid);
 
	if(element.MoveTimeLeft <= elapsedTicks)
		return;
  
	element.MoveTimeLeft -= elapsedTicks;
  
    var timeState = element.MoveTimeLeft/element.TimeToMove; // Anfang 1 -> Ende 0
    var timeState = 1 - timeState; //Anfang 0 -> Ende 1
    
    var xdist = x - element.startx;
    var ydist = y - element.starty;
       
    var newx = element.startx + (xdist * (Math.sin( ((Math.PI * timeState) + (Math.PI * 1.5)) )+ 1 )*0.5);
    var newy = element.starty + (ydist * (Math.sin( ((Math.PI * timeState) + (Math.PI * 1.5)) )+ 1 )*0.5);

    element.style.left = (newx + "px");
    element.style.top = (newy + "px");
    setTimeout("animateMove(" + curTick + ",'" + eid + "','" + x + "','" + y +"')", 33);
    return;
}

function simpleAnimateMove(eid, x , y)
{  
	alert(element.style.left);
	var element = document.getElementById(eid);
	if(element.style.left != x)
		element.style.left = (element.left + 1) + "px";
	if(element.style.top != y)
		element.style.top = (element.top + 1) + "px";
	if(element.style.left == x && element.top == y)
		return;
	else
	{
	    setTimeout("simpleAnimateMove('" + eid + "','" + x + "','" + y +"')", 33);
	}
}

function simpleMove(eid, x,y)
{
	  var element = document.getElementById(eid);
	  element.style.left = (x + "px");
	  element.style.top = (y + "px");
	  
	  return;
}

function playlist(x,y,eid1,eid2,eid3,eid4,eid5,io)
{
	eids = new Array(eid1,eid2,eid3,eid4,eid5);
	element = new Array();
	for (i = 0; i < eids.length; i++) 
	{
		element[i] = document.getElementById(eids[i]);
		move(eids[i],x,(y + (i * 30)),(i+1)*300);
		fade(eids[i],500*(i+1), io);
		//setTimeout(function(){simpleMove(eids[i], x, (y + (i * 20)));}, (i*500));
	}
	return;
}

function simpleResize(eid, w,h)
{
	  var element = document.getElementById(eid);
	  element.style.width = (w + "px");
	  element.style.height = (h + "px");
	  
	  return;
}


function resize(eid, w, h, time)
{
	var element = document.getElementById(eid);
	if(element == null)
		return;
	
	if(time == null)
		time = 500; //default Move Time
	
	element.TimeToResize = time;
	element.ResizeTimeLeft = time;
	element.startw = parseInt(element.style.width);
	element.starth = parseInt(element.style.height);

    setTimeout("animateResize(" + new Date().getTime() + ",'" + eid + "','" + w + "','" + h +"')", 33);
    
}

function animateResize(lastTick, eid, w , h)
{  
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	var element = document.getElementById(eid);
 
	if(element.ResizeTimeLeft <= elapsedTicks)
		return;
  
	element.ResizeTimeLeft -= elapsedTicks;
  
    var timeState = element.ResizeTimeLeft/element.TimeToResize; // Anfang 1 -> Ende 0
    var timeState = 1 - timeState; //Anfang 0 -> Ende 1
    
    var xdist = w - element.startw;
    var ydist = h - element.starth;
       
    var newx = element.startw + (xdist * (Math.sin( ((Math.PI * timeState) + (Math.PI * 1.5)) )+ 1 )*0.5);
    var newy = element.starth + (ydist * (Math.sin( ((Math.PI * timeState) + (Math.PI * 1.5)) )+ 1 )*0.5);

    element.style.width = (newx + "px");
    element.style.height = (newy + "px");
    setTimeout("animateResize(" + curTick + ",'" + eid + "','" + w + "','" + h +"')", 33);
    return;
}

