/*********************************  Galerie Inhalte START ***************************************/

// Diese Variable verhindert, dass die slideContent Funktion beim ersten Aufruf ausgeführt wird
var first = true;
/**
*
* Diese Funktion ist dafür zuständig die Inhaltskontainer hereinzufahren
*
*/
function slideContent(contentId, noAnimation){
   	if(!first){
   		//Alle Inhaltskontainer aus dem Sichtfeld schieben
		$$(".imageDetailContainer").each(function(elem){
			elem.setStyle({ 
				top: "400px",
				left: "15px",
				zIndex: "2"
			});
		});
		
		
		
		//Die Box mit der übergebenen ID nach oben schieben
		var boxName = "detailBox_" + contentId
		var box = $(boxName);
		box.setStyle({ 
				zIndex: "100"
		});
		
		if(noAnimation === true){
			box.setStyle({ 
				top: "28px",
				left: "15px"
			});
		}
		else{
			new Effect.Move(box, { x: 15, y: 28, mode: 'absolute'});
		}
		
	}
	first = false;
}

/**
*
* Diese Funktion ist dafür zuständig die Inhaltskontainer hinauszuschieben
*
*/
document.observe("dom:loaded", function(){	
	$$(".closeButton").each(function(elem) {
		elem.observe('click',function(){
			new Effect.Move(this.up(), { 
				x: 15, 
				y: 400, 
				mode: 'absolute'
			});
		});
	});
});

/*********************************  Galerie Inhalte ENDE ***************************************/


/**
*
* Hier wird entschieden, ob ein scrollen von nöten ist. Ist dies der Fall, werden die Scroller eingeblendet
*
*/
document.observe("dom:loaded", checkContentHeight);

function checkContentHeight(){

    var contentRange = $('contentRange');
    if(contentRange != null){
    	var contentRangeInt = contentRange.getHeight();
    }
    else{
    	var contentRangeInt = 999999;
    }
	
	var content = $('content')
	if(content != null){
    	var hoehe = content.getHeight();
    }
    else{
    	var hoeahe = 0;
    }
    
	if(contentRangeInt < hoehe){
		setScroller();
	}
}

/**
*
* Funktion zum setzen der "Scroll-Pfeilchen"
*
*/
function setScroller(){
	var scrollUp = new Element('div', {'id' : 'scrollUp'}).update(
		new Element('a', {'href':'javascript:;'}).update(
			new Element('img' , {'src' : '/layout/images/arrowDown.gif'})
		)
	);
	var scrollDown = new Element('div', {'id' : 'scrollDown'}).update(
		new Element('a', {'href':'javascript:;'}).update(
			new Element('img' , {'src' : '/layout/images/arrowUp.gif'})
		)
	);
	
	var contentRange = $('contentRange').getHeight();
	
	scrollUp.setStyle({
		'position' 	: 	'absolute',
		'top'		: 	(contentRange-20) + 'px',
		'right'		:	'0px',
		'zIndex'	:	'102'
	});
	
	scrollDown.setStyle({
		'position' 	: 	'absolute',
		'top' 		: 	'0px',
		'right'		:	'0px',
		'zIndex'	:	'102'
	});
	
	
	scrollUp.observe('click',function(){
			scrollContent('up');
	});
	
	scrollDown.observe('click',function(){
			scrollContent('down');
	});
	
	$('contentWrap').insert({
		top: scrollUp,
		bottom: scrollDown
	});	
}


/**
*
* Funktion zum Scrollen des Contentbereichs
*
*	@param: string direction gibt die Richtung an, in welche gescrollt werden soll 
*
*/
function scrollContent(direction){
    var contentRange = $('contentRange').getHeight();
    var hoehe = $('content').getHeight();
	
	var contentPos = $('content').getStyle('top');
	var contentPosInt = parseInt(contentPos.substring(0, contentPos.length - 2));
    var scrollRangeUp 	= -300;
    var scrollRangeUpMax  = -(hoehe-contentRange);

	// Scrollgrenze beim nach oben Scrollen wird hier gesetzt
    if(contentPosInt + scrollRangeUp <= scrollRangeUpMax){
    	scrollRangeUp =  scrollRangeUpMax - contentPosInt;
    }
                                                
    var scrollRangeDown = 300;
    
    // Scrollgrenze beim nach unten Scrollen wird hier gesetzt
    if(contentPosInt + scrollRangeDown >= 0){
    	scrollRangeDown = -contentPosInt;
    }
    
	switch(direction){
		case 'up':
			new Effect.Move('content',{
				x			:	0, 
				y			:	scrollRangeUp,
				mode		: 	'relative',
				transition	:	Effect.Transitions.sinoidal
			});
		break;
		
		case 'down':
			new Effect.Move('content',{
				x			:	0, 
				y			:	scrollRangeDown,
				mode		: 	'relative',
				transition	:	Effect.Transitions.sinoidal
			});
		break;
	}
}

