var scroll = 0;
var openedLayer = 0;
var speed = 300;

function showLayer(index) {
 
 	if(scroll==1 || index==openedLayer)
 		return;
 	
 	if(openedLayer>0) {
 		hideLayer(openedLayer);
 	}
 	
 	scroll=1;
 
 	$j("#Layer"+index+" .middle").animate({
 		height: "15px"
 	},speed);
 	
 	$j("#Layer"+index).animate({
 		marginTop: "0px"
 	},speed);
 	
 	$j("#Layer"+index+" .text").animate({
 		height: "131px",
 		marginBottom: "4px"
 	},speed,"linear",function() {
 		scroll=0;
 		openedLayer=index;
 		
 		$j("#Layer"+index+" .text div").fadeIn(speed);
 	});
}
 
function hideLayer(index) {
 
 	$j("#Layer"+index+" .text div").fadeOut(speed);
 
 	$j("#Layer"+index+" .middle").animate({
 		height: "0px"
 	},speed);
 	
 	$j("#Layer"+index).animate({
 		marginTop: "120px"
 	},speed);
 	
 	$j("#Layer"+index+" .text").animate({
 		height: "0px",
 		marginBottom: "0px"
 	},speed,"linear",function() {
 		openedLayer=0;
 	});
}
 
$j(document).ready(function () {
 	$j("#Layer1").unbind("mouseover");
 	$j("#Layer1").bind("mouseover", function(e) {showLayer(1);});
 	
 	$j("#Layer2").unbind("mouseover");
 	$j("#Layer2").bind("mouseover", function(e) {showLayer(2);});
 	
 	$j("#Layer3").unbind("mouseover");
 	$j("#Layer3").bind("mouseover", function(e) {showLayer(3);});
 	
 	$j("#Layer4").unbind("mouseover");
 	$j("#Layer4").bind("mouseover", function(e) {showLayer(4);});
});
 
 
 
var scrollerstepwidth = 1;
var steps = 1;
jQuery.easing.def = 'easeOutCirc';


// extract coockies

a = document.cookie;
var lines = a.split("; ");

var cookies = new Array();
var parts = new Array();
var mouse_wheel_buffer = 0;

var jump_steps = 1;


for (var i = 0; i <lines.length;i++)
{
	if (lines[i] == "")
		continue;

	parts = lines[i].split("=");
	//cookies[i] = new Array();
	cookies[parts[0]] = parts[1];
}

$(document).ready(function(){
	var divs = $(unescape('%3Cdiv class="scroller" style=""%3E %3C/div%3E'));

	$('#ScrollTrack').append(divs);
	steps = $('#ScrollContainer .scrollContent').length;

	if (steps > 1)
	{
		var width = $('#ScrollTrack')[0].offsetWidth-4;

		$("#ScrollContent").css('width',steps*$('#ScrollContainer .scrollContent')[0].offsetWidth+"px");


		steps_per_page = Math.floor($('#ScrollContainer')[0].offsetWidth/$('#ScrollContainer .scrollContent')[0].offsetWidth);
		steps -= steps_per_page-1;

		scrollerstepwidth = width/steps;
		/* console.log(steps_per_page);
		console.log("scrollpane width:"+width);
		console.log('scroller stepwith: '+scrollerstepwidth);
		console.log ('steps: '+steps);
		console.log ('steps per page: '+steps_per_page); */

		scrollerwidth = width/steps;

		scrollerwidth2 = width/Math.round($('#ScrollContent')[0].offsetWidth/$('#ScrollContainer')[0].offsetWidth);
		//console.log(scrollerwidth2);
		//console.log($('#ScrollContent')[0].offsetWidth);

		//if (scrollerwidth < 20)
		//	scrollerwidth = 20;
		
		if (steps>1)
		{
			$('#ScrollTrack .scroller').css('width',scrollerstepwidth+"px");
			$('#ScrollTrack .scroller').css('cursor',"pointer");
			$('#ScrollTrack').css('cursor',"pointer");
	
			$('#ScrollContainer').mousewheel(function(objEvent, intDelta) {
				if (intDelta > 0)
				{
					//up 
					//scrollLeft();
					mouse_wheel_buffer--;
				}
				else
				{
					//scrollRight();
					mouse_wheel_buffer++;
				}
			});
			
			$('#ScrollTrack .scroller').draggable({
				containment: $('#ScrollTrack'), 
				axis: 'x',
				/* grid: [stepwidth,20], */
				drag: onScrollerDragging2,
				stop: onScrollerDragging
			});
	
			$("#ScrollTrack").bind('click',scrollBarClicked);
			
			$('#ScrollTrack .scroller').append('<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td class="dragLeft">&nbsp;</td><td class="dragCenter">&nbsp;</td><td class="dragRight">&nbsp;</td></tr></table>');
			
			$('#ScrollTrackContainer').append('<a href="javascript: scrollLeft();" class="arrow_left"></a>');
			$('#ScrollTrackContainer').append('<a href="javascript: scrollRight();" class="arrow_right"></a>');
		}
	}

	if (cookies["scroller_pos_"+page_id] && steps>1)
	{
		cur_scroller_pos = parseInt(cookies["scroller_pos_"+page_id]);
		restore_saved_scroller_pos();
	}
	// scroll Buttons
	/* $('#ScrollContainer').bind('mousemove',function(e)
	{
		console.log(e);
	});  */
});

var cur_scroller_pos = 0;

setInterval("move_wheel_scrolled();",500);

function move_wheel_scrolled()
{
	//console.log(mouse_wheel_buffer);
	
	
	cur_scroller_pos += mouse_wheel_buffer;
	
	if (cur_scroller_pos > (steps-1))
		cur_scroller_pos = steps-1;
	
	if (cur_scroller_pos <= 0)
		cur_scroller_pos = 0;

	
	if (mouse_wheel_buffer)
	{
		onScrollDragged();
		moveScroller();
	}
	
	mouse_wheel_buffer = 0;
}

function restore_saved_scroller_pos()
{
	var scrollband_left = $('#ScrollContainer .scrollContent')[0].offsetWidth*cur_scroller_pos*(-1);
	
	//alert(scrollband_left);
	$('#ScrollContent').css({marginLeft:scrollband_left+"px"});
	
	var margin_left = scrollerstepwidth*cur_scroller_pos;
	$('#ScrollTrack .scroller').css({left:margin_left+"px"});
}

function onScrollerDragging2(event, ui)
{
	var new_pos = ui.position.left/scrollerstepwidth;
	var margin_left = $('#ScrollContent .scrollContent')[0].offsetWidth*new_pos*(-1);
	
	$('#ScrollContent').css({marginLeft:margin_left+"px"});
}

function onScrollerDragging(event, ui)
{
	new_pos = Math.round(ui.position.left/scrollerstepwidth);
	
	if (cur_scroller_pos != new_pos)
	{
		cur_scroller_pos = new_pos;
		onScrollDragged();
		//moveScroller();
	}

}

function scrollBarClicked(e)
{
	
	var scroll_container_pos = getAbsolutePosition($('#ScrollTrack')[0]);
	var click_pos = getPos(e,'X')-scroll_container_pos.x;
	//e.clientX
	var scroller_pos = parseInt($('#ScrollTrack .scroller').css('left').replace('px',''));
	var scroller_with = parseInt($('#ScrollTrack .scroller').css('width').replace('px',''));
	
	
	if (isNaN(scroller_pos))
		scroller_pos = 0;
	
	if (click_pos > (scroller_pos + scroller_with))
	{
		scrollRight();
	}
	else if (click_pos < (scroller_pos))
	{
		scrollLeft();
	} 
	
}

function onScrollDragged()
{
	document.cookie="scroller_pos_"+page_id+"="+cur_scroller_pos;
	
	var margin_left = $('#ScrollContainer .scrollContent')[0].offsetWidth*cur_scroller_pos*(-1);
	$('#ScrollContent').animate({ 
		marginLeft:margin_left+"px"
	},"slow","swing");
}

function moveScroller()
{
	document.cookie="scroller_pos_"+page_id+"="+cur_scroller_pos;
	
	var margin_left = scrollerstepwidth*cur_scroller_pos;
	$('#ScrollTrack .scroller').animate({ 
		left:margin_left+"px"
	},"slow","swing");
}

function scrollRight()
{	
	cur_scroller_pos+=jump_steps;
	
	if ((cur_scroller_pos > (steps-1))) {
		while((cur_scroller_pos-jump_steps+1) == (steps-1)) {
			cur_scroller_pos--;
		}
	}	
	
	if (cur_scroller_pos > (steps-1))
		cur_scroller_pos = 0;

	onScrollDragged();
	moveScroller();
}

function scrollLeft()
{
	cur_scroller_pos-=jump_steps;
	
	if ((cur_scroller_pos < 0)) {
		while((cur_scroller_pos+jump_steps-1) == 0) {
			cur_scroller_pos++;
		}
	}	
	
	if (cur_scroller_pos < 0)
		cur_scroller_pos = (steps-1);
	
	onScrollDragged();
	moveScroller();
}


function getPos (event, c) {
	var p = c == 'X' ? 'Left' : 'Top';
	return event['page' + c] || (event['client' + c] + (document.documentElement['scroll' + p] || document.body['scroll' + p])) || 0;
};

function getAbsolutePosition(element) {
    var r = { x: element.offsetLeft, y: element.offsetTop };
    if (element.offsetParent) {
      var tmp = getAbsolutePosition(element.offsetParent);
      r.x += tmp.x;
      r.y += tmp.y;
    }
    return r;
};