/*
 * Drag & drop Objekte 
 */
window.addEvent('domready', function(){
    	var win = $$('#content .win');
    	win.each(function(element) {
    		var contentType = element.getNext().getNext();
        	var parent = element.getParent('div');
        	var box = parent.getParent('dd');        	
    		if(contentType.getProperty('class') == 'mp3_player') {
    			var handleToDrag = element;
    			//Wenn Play gedrückt, dann irgendwas machen damit man sieht es läuft
    			contentType.addEvent('click', function(win){
    			    var relativeX = win.pageX - box.offsetLeft;
    			    var relativeY = win.pageY - box.offsetTop;
    			    if(relativeX > 25 && relativeX < 75 &&
    			       relativeY > 180 && relativeY < 235){
    		        	var parent = this.getParent('div');
    		        	var thisBox = parent.getParent('dd'); 
    			    	$$('#content dd').each(function(allBoxes){
    			    		if(thisBox != allBoxes){
    			    		var fx = new Fx.Styles(allBoxes, {duration: GetRandom( 500, 1000 ), transition: Fx.Transitions.Bounce.easeOut});
		    					fx.start({
		    						'top': 547 - allBoxes.offsetHeight
		    					});
    			    		var fx = new Fx.Styles(thisBox, {duration: 500, transition: Fx.Transitions.Quart.easeInOut});
	    					fx.start({
	    						'top': 30,
	    						'left': 30
	    					});
    			    		}
    			    	});
    			    }
    	    	});
    		} else {
    			var handleToDrag = box;
    		}
        	var dragContainerOptions = {
        			handle: handleToDrag
        	};
        	handleToDrag.style.cursor = 'move';
        	box.makeDraggable(dragContainerOptions);
    });
});
/*
 * Vordergrund für die Boxen
 */
window.addEvent('domready', function(){
    $$('#content dd').each(function(box){
    	box.addEvent('mouseup', function(){
    		box.setStyle('z-index', getNextHighestZIndex());

    	});
    	box.addEvent('mousedown', function(){
    		box.setStyle('z-index', getNextHighestZIndex());
    	});
    });
});

/*
 * win close hover
 */
window.addEvent('domready', function(){
var close = $$('#content .close');
close.each(function(element) {
	//MouseOver Klassennamen ändern
	var fx = new Fx.Styles(element, {duration:200, wait:false});
	element.addEvent('mouseenter', function(){
		element.setProperty('class', 'close_hover');
		fx.start({
			'color': '#000'
		});
	});
	//MouseOut Klassennamen ändern
	element.addEvent('mouseleave', function(){
		element.setProperty('class', 'close');
		fx.start({
			'color': '#fff'
		});
	});
	//OnClick box zumachen
	element.addEvent('click', function(){
	var parent = element.getParent('div');
	var box = parent.getParent('dd');
	var fx = box.effects({duration: 500, onComplete: function() {box.remove();}, transition: Fx.Transitions.Quart.easeOut});
	fx.start({'opacity': 0});
	});
});
});
/*
 * navi Hovers
 */
window.addEvent('domready', function(){
	//*******************//
	$('nav_sound').addEvent('mouseenter', function(){
		$('nav_sound').setProperty('class', 'nav_sound_hov');
	});
	$('nav_sound').addEvent('mouseleave', function(){
		$('nav_sound').setProperty('class', 'nav_sound');
	});
	$('nav_sound').addEvent('click', function(){
		location.href = 'index.php?view=sound';
	});
	//*******************//
	$('nav_art').addEvent('mouseenter', function(){
		$('nav_art').setProperty('class', 'nav_art_hov');
	});
	$('nav_art').addEvent('mouseleave', function(){
		$('nav_art').setProperty('class', 'nav_art');
	});
	$('nav_art').addEvent('click', function(){
		location.href = 'index.php?view=art';
	});
	//*******************//
	$('nav_mixes').addEvent('mouseenter', function(){
		$('nav_mixes').setProperty('class', 'nav_mixes_hov');
	});
	$('nav_mixes').addEvent('mouseleave', function(){
		$('nav_mixes').setProperty('class', 'nav_mixes');
	});
	$('nav_mixes').addEvent('click', function(){
		location.href = 'index.php?view=mixes';
	});
	//*******************//
	$('nav_about').addEvent('mouseenter', function(){
		$('nav_about').setProperty('class', 'nav_about_hov');
	});
	$('nav_about').addEvent('mouseleave', function(){
		$('nav_about').setProperty('class', 'nav_about');
	});
	$('nav_about').addEvent('click', function(){
		location.href = 'index.php?view=about';
	});
});

/*
 * ZufallsZahlen für reinschmeissen Effekt
 */
function GetRandom( min, max ) {
	if( min > max ) {
	        return( -1 );
	}
	if( min == max ) {
	        return( min );
	}
	return( min + parseInt( Math.random() * ( max-min+1 ) ) );
}
/*
 * Gibt höchsten z-index zurück
 */
function getNextHighestZIndex() {
   	var max = 0;
   	$$('#content dd').each( function(element){         
	   if (element.getStyle('z-index').toInt() > max){
	   max = element.getStyle('z-index').toInt()
	   }
   });
   return max+1;
} 
/*
 * boxen reinschmeissen
 */
function shuffleBoxes(){
    $$('#content dd').each(function(box){   
		// Neuer Effekt
		var fx = new Fx.Styles(box, {duration: GetRandom( 500, 1000 ), transition: Fx.Transitions.Quart.easeInOut});
		// Effekt starten - Mit "Zielwerten" für Top und Left
		fx.start({
			'top': GetRandom( 30, 300 ),
			'left': GetRandom( 3, 800 )
		});
    });
}
/*
 * boxen sortieren
 */
function sortBoxes(){ 
	var head = $$('#content .win');
	groups = new Array();
	head.each(function(element) {
		//array mit head Bereichen füllen
		groups.push(element.innerHTML);
	});
	// jede gruppe einmal vorhanden deleteMultipleEntries
	groups = dme(groups);
	
	//Für jede Gruppe
	j = 30;
	groups.each(function(group) {
		i = 30;
		k = 0;
		//Für jede Box
		head.each(function(element) {
			
			if (element.innerHTML == group){
				var parent = element.getParent('div');
				var box = parent.getParent('dd');
				var fx = new Fx.Styles(box, {duration: GetRandom( 500, 1000 ), transition: Fx.Transitions.Quart.easeInOut});
				// Effekt starten - Mit "Zielwerten" für Top und Left
				fx.start({
					'top': i,
					'left': j + k
				});
				i = i + 40;
				k = k + 20;
				box.setStyle('z-index', 0);
			}
		});
		j = j + 300;
	});
}
function dme(a1) // delete multiple entries (array)
{
 var a2 = new Array();
 var a3 = new Array();
 for(var i = 0; i < a1.length; i++)
  {
   if(typeof(a2[a1[i]]) == "undefined")
    {
     a2[a1[i]] = true;
     a3[a3.length] = a1[i];
    }
  }
 var a4 = new Array();
 for(var i = 0; i < a3.length; i++){a4[a4.length] = a3[i]}
 return a4;
}