var $j = jQuery.noConflict();
var imageSlider={
	actionDistance:150,
	defaultWidth:160,
	maxWidth:450,
	scrollOffset:0,
	scrolledUp:true
};
$j(document).ready(function(){
	var debug=$j('<div>DEBUG</div>').css({
			position:'absolute',
			top:'10px',
			left:'10px'			
	});
	if(location.hash=='#debug'){
		debug.appendTo('body');;
	}
	imageSlider.scaleFactor=(imageSlider.maxWidth-imageSlider.defaultWidth)/imageSlider.defaultWidth;
	//$j('.content_main').css('-moz-opacity', '.9999');
	imageSlider.upslider=$j('<div></div>').css({
		width:'180px',
		height:'20px',
		position:'absolute',
		cursor:'pointer',
		top:'0px',
		left:'0px',
		background:'url(/fileadmin/template/main/img/upslider.gif) center no-repeat',
		display:'none'
	}).mouseover(function(){
		$j('div.leftcol_imageslider').scrollTo(0,{
			duration:500,
			onAfter:function(){
				imageSlider.scrolledUp=true;
				imageSlider.scrolledDown=false;
				imageSlider.scrollOffset=0;
				imageSlider.downslider.show();
				imageSlider.upslider.hide();
			}});
	}).appendTo('#left_column');
	
	imageSlider.downslider=$j('<div></div>').css({
		width:'180px',
		height:'16px',
		position:'absolute',
		cursor:'pointer',
		top:'450px',
		left:'0px',
		background:'url(/fileadmin/template/main/img/downslider.gif) center no-repeat',
		display:'none'
	}).mouseover(function(){
		var scrollTarget=$j('div.leftcol_imageslider ul').height()-$j('div.leftcol_imageslider').height();
		$j('div.leftcol_imageslider').scrollTo(scrollTarget,{
			duration:500,
			onAfter:function(){
				imageSlider.scrolledUp=false;
				imageSlider.scrolledDown=true;
				imageSlider.scrollOffset=scrollTarget;
				imageSlider.upslider.show();
				imageSlider.downslider.hide();
			}});
	}).appendTo('#left_column');
	
	$j('#left_column').css('overflow', 'visible');
	if($j('div.leftcol_imageslider img').length > 3)imageSlider.downslider.show();
	$j('div.leftcol_imageslider').scrollTo(0);
	$j('div.leftcol_imageslider img').mouseover(function(){
		//$j('.leftcol_imageslider').css('width', '500px');
		//if(imageSlider.isSliding) return false;
		$j(this).stop();
		debug.html('');
		$j(this).animate({
			width:'450px'
			//height:'300px'
		},{
				duration:500,
				queue:true,
				complete:function(){
					var scrollTarget=imageSlider.scrollOffset;
					var spaceBottom=($j('div.leftcol_imageslider').height()+imageSlider.scrollOffset)-($(this).positionedOffset().top+$j(this).height());
					var spaceTop=$(this).positionedOffset().top-imageSlider.scrollOffset;
					if(spaceTop < 0 ){
						scrollTarget= imageSlider.scrollOffset+spaceTop;;
					}
					if(spaceBottom < 0){
							scrollTarget=-spaceBottom+imageSlider.scrollOffset;
					}
					//debug.html('imageSlider.scrollOffset: '+imageSlider.scrollOffset+'<br>scrollTarget: '+scrollTarget+"<br>spaceTop: "+spaceTop+"<br>spaceBottom: "+spaceBottom);
					$j('div.leftcol_imageslider').scrollTo(scrollTarget,{duration:200});
				},
				step:function(){
					var offsetTop=$j(this).position().top;
					var spaceBottom=($j('div.leftcol_imageslider').height())-(offsetTop+$j(this).height());
					if(spaceBottom < 0){
						//$j('div.leftcol_imageslider').scrollTo(-spaceBottom);
					}
					debug.append('<br/>'+spaceBottom+" | "+offsetTop+' -'+$j('div.leftcol_imageslider').scrollTop());
				}
		 });
	});
	$j('div.leftcol_imageslider img').mouseout(function(){
		imageSlider.isSliding=true;
		if(imageSlider.scrolledUp) $j('div.leftcol_imageslider').scrollTo(0,{duration:500});
		else{
			var maxScroll=$j('div.leftcol_imageslider ul').height()-$j('div.leftcol_imageslider').height();
			$j('div.leftcol_imageslider').scrollTo(maxScroll,{duration:500});
			//imageSlider.scrollOffset=maxScroll;
		}
		$j(this).stop();
		$j(this).animate({
			width:'160px'
			//height:'107px'
		},{
				duration:500,
				queue:false,
				complete:function(){
					imageSlider.isSliding=false;
				}
		 });
	});
	var zoomImg=new Image();
	$j(zoomImg).css({
		position:'absolute',
		top:'10px',
		left:'10px',
		display:'none'
	});
	var initZoom=function(event, img){
		if(!img) img=this;
		var relImg=$j(img).data('relatedImage');
		var offset=$(relImg).positionedOffset();
		var l=offset.left;
		var t=offset.top;
		var w=$j(relImg).width();
		var h=$j(relImg).height();
		var zoomWidth=img.width;
		var zoomHeight=img.height;
		var zoomLeft=l;
		var zoomTop=t;
		if($j(relImg).css('float')=='right'){
			zoomLeft-=(zoomWidth-w+5);
		}
		if((t+zoomHeight) > $j('.content_main').height()){
			zoomTop=$j('.content_main').height()-zoomHeight-20;
		}
		$j(img).css({
			position:'absolute',
			top:t+'px',
			left:l+'px',
			width:w+'px',
			height:h+'px',
			border:'solid #f4f4f4 0px'
		}).appendTo('.content_main').mouseover(function(){
				debug.html('');
				$j(this).css('zIndex', 100).animate({
					width:zoomWidth+'px',
					height:zoomHeight+'px',
					left:zoomLeft+'px',
					top:zoomTop+'px',
					borderWidth:'5px'
				},{
					duration:500,
					queue:false
				});
		}).mouseout(function(){
				$j(this).animate({
					width:w+'px',
					height:h+'px',
					left:l+'px',
					top:t+'px',
					borderWidth:'0px'
				},{
					duration:500,
					queue:false,
					complete:function(){
						$j(this).css('zIndex', 0);
					}
				});
		});
	}
	$j('.content_main img').each(function(){
		var zoomImg=new Image();
		zoomImg.src=this.src;
		$j(zoomImg).data('relatedImage', this);
		if(zoomImg.complete) initZoom('e', zoomImg);
		else zoomImg.onload=initZoom;
	});
});

function forceRendering(el){
	$j(el).focus();
}
