(function(a){a.fn.kwicks=function(b){var c={isVertical:false,sticky:false,defaultKwick:0,event:"mouseover",spacing:0,duration:500};var e=a.extend(c,b);var f=(e.isVertical?"height":"width");var d=(e.isVertical?"top":"left");return this.each(function(){container=a(this);var k=container.children("li");var h=k.eq(0).css(f).replace(/px/,"");if(!e.max){e.max=(h*k.size())-(e.min*(k.size()-1))}else{e.min=((h*k.size())-e.max)/(k.size()-1)}if(e.isVertical){container.css({width:k.eq(0).css("width"),height:(h*k.size())+(e.spacing*(k.size()-1))+"px"})}else{container.css({width:(h*k.size())+(e.spacing*(k.size()-1))+"px",height:k.eq(0).css("height")})}var g=[];for(i=0;i<k.size();i++){g[i]=[];for(j=1;j<k.size()-1;j++){if(i==j){g[i][j]=e.isVertical?j*e.min+(j*e.spacing):j*e.min+(j*e.spacing)}else{g[i][j]=(j<=i?(j*e.min):(j-1)*e.min+e.max)+(j*e.spacing)}}}k.each(function(l){var m=a(this);if(l===0){m.css(d,"0px")}else{if(l==k.size()-1){m.css(e.isVertical?"bottom":"right","0px")}else{if(e.sticky){m.css(d,g[e.defaultKwick][l])}else{m.css(d,(l*h)+(l*e.spacing))}}}if(e.sticky){if(e.defaultKwick==l){m.css(f,e.max+"px");m.addClass("active")}else{m.css(f,e.min+"px")}}m.css({margin:0,position:"absolute"});m.bind(e.event,function(){var p=[];var r=[];k.stop().removeClass("active");for(j=0;j<k.size();j++){p[j]=k.eq(j).css(f).replace(/px/,"");r[j]=k.eq(j).css(d).replace(/px/,"")}var o={};o[f]=e.max;var q=e.max-p[l];var n=p[l]/q;m.addClass("active").animate(o,{step:function(t){var s=q!=0?t/q-n:1;k.each(function(u){if(u!=l){k.eq(u).css(f,p[u]-((p[u]-e.min)*s)+"px")}if(u>0&&u<k.size()-1){k.eq(u).css(d,r[u]-((r[u]-g[l][u])*s)+"px")}})},duration:e.duration,easing:e.easing})})});if(!e.sticky){container.bind("mouseleave",function(){var m=[];var n=[];k.removeClass("active").stop();for(i=0;i<k.size();i++){m[i]=k.eq(i).css(f).replace(/px/,"");n[i]=k.eq(i).css(d).replace(/px/,"")}var l={};l[f]=h;var o=h-m[0];k.eq(0).animate(l,{step:function(q){var p=o!=0?(q-m[0])/o:1;for(i=1;i<k.size();i++){k.eq(i).css(f,m[i]-((m[i]-h)*p)+"px");if(i<k.size()-1){k.eq(i).css(d,n[i]-((n[i]-((i*h)+(i*e.spacing)))*p)+"px")}}},duration:e.duration,easing:e.easing})})}})}})(jQuery);
jQuery.fn.rdy = function(func){
	this.length && func.apply(this);
	return this;
};

$('#kwicks').rdy(function(){
	$(this).kwicks({
		max: 220,
		sticky:true,
		spacing:  5
	}).delegate('li', 'click', function(){
		window.location=$(this).find('a:first')[0].href;
	}).wrap('<div id="kwicksWrapper" />');
	scrollMagic('div#kwicksWrapper', 'ul');

});

$('#timeline').rdy(function(){
	var t=$(this);
	t.wrap('<div id="timelineWrapper"/>');
	var years = [];
	var etalon = t.find('li:first'),
			liWidth = etalon.width() + 5,
			liMarginLeft = parseInt(etalon.css('marginLeft'), 10) || 0,
			liMarginRight =  parseInt(etalon.css('marginRight'), 10) || 0,
			liMargin = liMarginLeft + liMarginRight;
	t.width( ((liWidth+liMargin) * t.find('li').length) );
	
	
	$('#timelineWrapper').find('.timeFrame').map(function(){
		var year = this.id.split('-')[1];
		$(this).append('<h1>'+year+'</h1>');
		years.push(year);
	});
	
	scrollMagic('div#timelineWrapper', 'div#timeline');
	
	$('#content').prepend('<ul id="timelineYears"/>');
	for(var i=0,len=years.length;i<len;i++){
		$('#timelineYears').append('<li><a href="#year-'+years[i]+'">'+years[i]+'</a></li>');
	}
	var timelineYears = $('#timelineYears li');
	timelineYears.width( $('#timelineYears').width() / timelineYears.length );
	
	var offsets = [],
			wrapperOffset =  $('#timelineWrapper').offset().left;
	
	$('div#timelineWrapper .timeFrame').map(function(){
		var temp = {
			"el":this.id,
			"pos":$(this).offset().left - wrapperOffset
		}
		offsets.push(temp);
	});

	timelineYears.delegate('a', 'click', function(){
		var parent = $(this).parent();
		parent.addClass('s').siblings().removeClass('s');
		var hash = this.hash.replace('#','');
		$.each(offsets, function(){
			if(this.el===hash){
				$('div#timelineWrapper').stop().animate({
					scrollLeft:this.pos
				});
			}
		});		
		return false;
	});
	timelineYears.first().addClass('s');

	
	checkPosition=0;
	$('div#timelineWrapper').bind('mouseenter mouseleave', function(e){
		window.clearInterval(checkPosition);

		if(e.type==='mouseenter'){
			checkPosition = window.setInterval(function(){
				var currentPos = $('div#timelineWrapper').scrollLeft();
				$.each(offsets, function(){
					if(currentPos>=this.pos-350){
						$('ul#timelineYears li.s').removeClass('s');
						$('ul#timelineYears a[href*="'+this.el+'"]').parent().addClass('s');
					}
				});
			}, 50);
		}
	});
	
		
	var pageHash = window.location.hash.replace('#', '');
	if(pageHash!==''){
		$('ul#timelineYears a[href*="'+pageHash+'"]').click();
	}
});



function scrollMagic(wrapper, element) {
	var div = $(wrapper),
	ul = div.find(element),
	up = holdon = false,
	scrollBy = 5000;

	function autscroll() {
		if(stillAnimated) {
			stillAnimated = false;
			div.stop().animate({
				scrollLeft: up ? "-="+scrollBy : "+="+scrollBy
			}, 30000, 'linear');
		}
	};//autscroll
	
	var divHeight = div.height();
	var lastLi = ul.find('li:last-child');
	var ulHeight = lastLi[0].offsetLeft + lastLi.outerHeight();
	
	div.bind('mouseenter mouseleave mousemove', function(e){
		var left = e.pageX - div.offset().left;
		if(e.type==='mousemove'){
			stillAnimated = true;
			if(left > 450){
				up = false;
			}else if(left < 100){
				up = true;
			}else {
				up = false;
				stillAnimated = false;
				div.stop();
			}
			if((left > 450  || left < 100) && !div.is(':animated')){
				div.stop();
				autscroll();
			}
		}
		if(e.type==='mouseleave'){
			div.stop(true);
		}
	});		
};//scrollMagic
