var slideFx = null;

var slideWidth = 548; 

function initWindowSlider() {
	var node = $('slideContent');
	if (node) {
	
		var slides = $$('#slideContent div.slide');
		
		var container = $$('#slideContent div.slideContainer');
		var slideRight = $$('#slideContent div.slideRight');
		var slideLeft = $$('#slideContent div.slideLeft');
		
		
		if (container.length == 1
				&& slideRight.length == 1
				&& slideLeft.length == 1) {
			container = container[0];
			slideRight = slideRight[0];
			slideLeft = slideLeft[0];
			
			container.setStyles({width: slides.length * slideWidth});

			slideComplete();
			
			// todo show children
						
			slideRight.addEvent('click', function() {
				var left = $$('#slideContent div.slideContainer')[0].getStyle('left').toInt();
				var newLeft = left - slideWidth
				if (newLeft < - $$('#slideContent div.slideContainer')[0].getStyle('width').toInt() + slideWidth) {
					return;
				}
				if (!slideFx) {
				
					if (Browser.Engine.gecko && hasScroller($$('#slideContent div.slideContainer')[0])) {
						$$('#slideContent div.slideContainer')[0].setStyles({left:newLeft});
						slideComplete();
						return;
					}
				
					slideFx = new Fx.Tween($$('#slideContent div.slideContainer')[0], {
						duration: 300, 
						transition: new Fx.Transition(Fx.Transitions.Expo).easeOut,
						onComplete: function(){
							slideComplete();
						}
					});
					var temp = function() {slideFx.start('left', newLeft + 'px');};
					temp.delay(10);
				}
			});

			slideLeft.addEvent('click', function() {
				var left = $$('#slideContent div.slideContainer')[0].getStyle('left').toInt();
				var newLeft = left + slideWidth
				if (newLeft > 0) {
					return;
				}
				if (!slideFx) {
					if (Browser.Engine.gecko && hasScroller($$('#slideContent div.slideContainer')[0])) {
						$$('#slideContent div.slideContainer')[0].setStyles({left:newLeft});
						slideComplete();
						return;
					}
					
					slideFx = new Fx.Tween($$('#slideContent div.slideContainer')[0], {
						duration: 300, 
						transition: new Fx.Transition(Fx.Transitions.Expo).easeOut,
						onComplete: function(){
							slideComplete();
						}
					});
					var temp = function() {slideFx.start('left', newLeft + 'px');};
					temp.delay(10);
				}
			});
		}
		
	}

}


function slideComplete() {
	slideFx = null;

	if (Browser.Engine.gecko && hasScroller($$('#slideContent div.slideContainer')[0])) {
		$$('#slideContent div.slideContainer')[0].setStyles({display:'none'});
		var temp = function() {
			$$('#slideContent div.slideContainer')[0].setStyles({display:'block'});
		}
		temp.delay(1);
	}
	if ($$('#slideContent div.slideContainer')[0].getStyle('width').toInt() - slideWidth == - $$('#slideContent div.slideContainer')[0].getStyle('left').toInt() ) {
		$$('#slideContent div.slideRight')[0].setStyles({display: 'none'});
	} else {
		$$('#slideContent div.slideRight')[0].setStyles({display: 'block'});
	}
	if (0 == $$('#slideContent div.slideContainer')[0].getStyle('left').toInt() ) {
		$$('#slideContent div.slideLeft')[0].setStyles({display: 'none'});
	} else {
		$$('#slideContent div.slideLeft')[0].setStyles({display: 'block'});
	}
}

function hasScroller(parent) {
	
	var isScroller = false;
	var childs = parent.getChildren();
	childs.each(function(item,index) {
		var temp = null;
		isScroller = isScroller || (item.getStyle('overflow-y') && (item.getStyle('overflow-y') == 'auto'));
		isScroller = isScroller || hasScroller(item);
	});
	return isScroller;
}


function showChildren(parent) {

	var childs = parent.getChildren();
	childs.each(function(item,index) {
		var temp = null;
		if (item.overflowTemp) {
			item.setStyles({'overflow':item.overflowTemp});
		}
		if (item.overflowXTemp) {
			item.setStyles({'overflow-x':item.overflowXTemp});
		}
		if (item.innerHTMLTemp) {
			item.innerHTML = item.innerHTMLTemp;
			item.setStyles({'overflow-y':'auto'});
			alert('hier');
		}
		if (item.overflowYTemp) {
			alert('hier');
			item.setStyles({'overflow-y':item.overflowYTemp});
		}
		showChildren(item);
	});
}

window.addEvent('domready', function() {
	initWindowSlider();
});