var gettingPHPdata = 0;
var dragging = false;
var letzteZeile = 0;
var aktZeile = 0;
var content_offset = 0;

onloadHooks.push(function(){ _tx_iggalerie_pi1_load(); });

function _tx_iggalerie_pi1_load(){
	if(getRows() > 2){
		var myDrag = new Drag('slider_slider', {
			limit:{x:[0,0],y:[0,205]},
			onDrag: function(el){
				checkPosition($('slider_slider').getStyle('top').toInt(), 0);
			},
			onStart: function(el){
				letzteZeile = aktZeile;
				dragging = 1;
			},
	    onComplete: function(el){
	    	checkPosition($('slider_slider').getStyle('top').toInt(), 1);
	    	dragging = 0;
	    	setScrollBarPos('');
	    }
		});
		myDrag.attach();
	}
}

function checkPosition(scpos, snap){
	var zeilen = getRows();
	var addme = 0;
	var range = 205; //(286-81);
	var stepsize = Math.floor(205/(zeilen-1));
	//console.log(zeilen);
	var leftover = Math.floor(205%(zeilen-1));
	
	var jetzigePos = Math.floor(scpos/stepsize);
	//console.log('jetzige Pos: '+jetzigePos+', aktuelle Zeile: '+aktZeile+', letzte Zeile: '+letzteZeile);
	if(jetzigePos < aktZeile){
		letzteZeile = aktZeile;
		scroll_UP();
	}else if(jetzigePos > aktZeile){
		letzteZeile = aktZeile;
		scroll_DOWN();
	}
}

function openpic(bildid){
	$('overlay').setStyle('display', 'block');
	$('overlay_content').setStyle('display', 'block');
	$('closebtn').setStyle('display', 'block');
	
	if(!gettingPHPdata){
		gettingPHPdata = 1;
		
		var myHTMLRequest = new Request.HTML({
			url					: currentURL+'?getdetails='+bildid,
			onSuccess 	: function(responseTree, responseElements, responseHTML, responseJavaScript){
				gettingPHPdata = 0;
				
				$('overlay_content').getChildren()[0].set('html', responseHTML);
				MorphIn = new Fx.Morph($('overlay_content').getChildren()[0], {duration:200, transition:'sine:in', fps:50});
				MorphIn.addEvent('complete', function(){
					$('overlay_content').setStyle('background', 'none');
				});
				MorphIn.start({
					'opacity': [0, 1]
				});
			},
			onFailure: function() {
				gettingPHPdata = 0;
			}
		});
		var tempelem = new Element('div', {id: 'newcontent'});
		tempelem.inject($('overlay_content'));
		$('overlay_content').getChildren()[0].setStyle('opacity', 0);
		myHTMLRequest.send();
		
	}
}

function closeDetails(){
	$('overlay').setStyle('display', 'none');
	$('overlay_content').setStyle('display', 'none');
	$('closebtn').setStyle('display', 'none');
	for(var i = 0; i < $('overlay_content').getChildren().length; i++){
		$('overlay_content').getChildren()[i].destroy();
	}
	$('overlay_content').setStyle('background', 'url('+currentDOMAIN+'/typo3conf/ext/ig_galerie/pi1/res/img/25-1.gif) no-repeat center center');
}


function getRows(){
	var bilderzahl = $$('#gal_items_inner .gal_item').length;
	var zeilenzahl = Math.ceil(bilderzahl/4);
	return zeilenzahl;
}

function setScrollBarPos(richtung){
	var zeilen = getRows();
	var addme = 0;
	var range = 205; //(286-81);
	var stepsize = Math.floor(205/(zeilen-2));
	var leftover = Math.floor(205%(zeilen-2));
	if((zeilen-aktZeile) < leftover){
		addme = leftover-(zeilen-aktZeile);
	}
	var neuepos = aktZeile*stepsize+addme;
	var start = (richtung == 'down' ? (neuepos-stepsize) : $('slider_slider').getStyle('top'));
	if(richtung == 'up'){
		start = neuepos+stepsize;
	}
	MorphIn = new Fx.Morph($('slider_slider'), {duration:250, transition:'linear', fps:50});
	MorphIn.addEvent('complete', function(){
		
	});
	MorphIn.start({
		'top': [start, neuepos]
	});
}

function scroll_UP(){
	if(scrolling || dragging){
		var zeilen = getRows();
		if(aktZeile > 0){
			aktZeile--;
			var neuepos = aktZeile*(-1)*183;
			
			MorphIn = new Fx.Morph($('gal_items_inner'), {duration:250, transition:'linear', fps:50});
			MorphIn.addEvent('complete', function(){
				if(scrolling){
					scroll_UP();
				}
			});
			MorphIn.start({
				'top': [(neuepos-183), neuepos]
			});
			if(!dragging){
				setScrollBarPos('up');
			}
		}
	}
}

function scroll_DOWN(){
	if(scrolling || dragging){
		var zeilen = getRows();
		if(aktZeile < (zeilen-2)){
			aktZeile++;
			var neuepos = aktZeile*(-1)*183;
			
			MorphIn = new Fx.Morph($('gal_items_inner'), {duration:250, transition:'linear', fps:50});
			MorphIn.addEvent('complete', function(){
				if(scrolling){
					scroll_DOWN();
				}
			});
			MorphIn.start({
				'top': [(neuepos+183), neuepos]
			});
			if(!dragging){
				setScrollBarPos('down');
			}
		}
	}
}
