(function($){

	$.fn.overlay_load = function(){
	
		var $all = $(this);
		var max_count = $all.length-1;
		var $overlay = $('<div id="overlay"></div>');
		$overlay
			.css('opacity', 0.70)
			.slideUp(0);
		
		var $wrapper = $('<div id="overlay_content"><h2></h2><p></p><div id="media_container"></div><div id="media_controlls"></div><div id="go_prev"></div><div id="go_next"></div></div>');
		var $content = $wrapper.find('#media_container');
		var $menu = $wrapper.find('#media_controlls');
		var $title = $wrapper.find('h2');
		var $desc = $wrapper.find('p');
		var $control = $('<div class="media_controll"></div>');
		var $loader = $('<img id="loader" src="/resources/images/loader.gif"/>');
		var $next = $wrapper.find('#go_next');
		var $prev = $wrapper.find('#go_prev');
		$wrapper.hide();
		$loader.appendTo($wrapper);
		$overlay.prependTo('body');
		$wrapper.prependTo('body');
		var $x = $("#x");
		$x.click(function(){
			$overlay.triggerHandler('click');
		});
		$overlay.click(function(){
			$wrapper.slideUp(300, function(){
				$title.empty();
				$desc.empty();
				$content.empty();
				$menu.empty();
				$overlay.fadeOut();
				$x.hide();
			});
		});
		
		var first = true;
		
		function load_image(src){
			var $img = $('<img/>');
			var load_time = setTimeout(function(){
				$loader.show();
			}, 500);
			$img.load(function(){
				var height = this.height;
				var width = this.width;
				clearTimeout(load_time);
				$loader.hide();
				$(this).css({
					display: 'none',
					'margin-left': width/2*-1,
					'margin-top': height/2*-1
				});
				$(this).appendTo($content);
				$(this).delay(200).fadeIn(400);
			});
			$img.attr('src',src);
		}
		
		function load_movie(src){
			$loader.hide();
			$content.html('<div id="movie_container"><div id="the_jw_player"></div></div>');
			jwplayer("the_jw_player").setup({
				flashplayer: "/resources/jw/player.swf",
				file: src,
				height: 300,
				width: 480,
				autostart: true
			});
		}
		
		var counter = 0;
		
		return $(this).each(function(){
			
			var $obj = $(this);
			
			var my_count = counter;
			counter++;
			
			$obj.click(function(){
				var top = $(window).scrollTop();
				$wrapper.css({
					top: top + 60
				});
				$x.css({
					top: top + 60
				});
				$next.hide();
				$prev.hide();
				
				if(my_count > 1)
				{
					$prev.show();
					$prev.unbind('click').click(function(){
						$wrapper.slideUp(300, function(){
							$title.empty();
							$desc.empty();
							$content.empty();
							$menu.empty();
							$x.hide();
							$all.eq(my_count-1).click();
						});
					});
				}
				
				if(my_count < max_count)
				{
					$next.show();
					$next.unbind('click').click(function(){
						$wrapper.slideUp(300, function(){
							$title.empty();
							$desc.empty();
							$content.empty();
							$menu.empty();
							$x.hide();
							$all.eq(my_count+1).click();
						});
					});
				}
				
				$overlay.fadeIn({
					duration: 300,
					complete: function(){
						$loader.show();
						$x.show();
						$wrapper.delay(100).slideDown({
							duation: 700,
							easing: 'easeOutExpo',
							complete: function(){
							
								$.get($obj.attr('href').substr(1), function(data){
									$loader.hide();
									data = $.parseJSON(data);
									$title.html(data.title);
									$desc.html(data.desc);
									var items = data.slides;
									var first = true;
									for(var i in items){
										var $ctrl = $control.clone();
										$ctrl.data('type', items[i].type);
										$ctrl.data('src', items[i].src);
										$ctrl.click(function(){
											if($(this).hasClass('active'))
											{
												return;
											}
											$content.empty();
											$menu.find('div').removeClass('active');
											$(this).addClass('active');
											if($(this).data('type') == 'image')
											{
												load_image($(this).data('src'));
											}
											else
											{
												load_movie($(this).data('src'));
											}
										});
										$ctrl.appendTo($menu);
										if(first == true || $obj.hasClass('active'))
										{
											$ctrl.click();
											first = false;
										}
									}
								});
							}
						});
					}
				});
			});
						
		});
	}
	
})(jQuery);


(function($){

	$.fn.shuffle = function() {
		return $($.shuffle(this.get()));
	}
	
	$.shuffle = function(arr) {
		for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
		return arr;
	}

	jQuery.fn.reverse = [].reverse;

	$.fn.menu_item = function(){
	
		var $all = $(this);
		var $cursor = $("#act");
		
		$all.each(function(){
			
			var $obj = $(this);
			var cursor_top = ($obj.position().top + ($obj.height()/2)) - 13;
			
			$obj.click(function(){
				$all.unbind('click');
				$all.removeClass('active');
				$obj.addClass('active');
				$cursor.stop().animate({
					top: cursor_top
				}, {
					duration: 700,
					easing: 'easeOutExpo'
				});
			});
						
		});
		
		setTimeout(function(){
			var links = $("#left a.menu_item, #left nav a");
			if(links.filter('.active').length == 0)
			{
				links.first().click();
			}
			else
			{
				links.filter('.active').triggerHandler('click');
			}
		}, 300);
		
		return $all;
	}

	$.fn.thumb_image = function(){
	
		var $all = $(this);
		return $(this).each(function(){
			
			var $obj = $(this);
			$obj.attr('href', "#"+$obj.attr('href'));
			var $desc = $obj.find('em');
			
			$obj.hover(function(){
				$desc.stop().animate({
					bottom: -100
				}, {
					duration: 250,
					easing: 'easeInExpo'
				});
			}, function(){
				$desc.stop().animate({
					bottom: -40
				}, {
					duration: 400,
					easing: 'easeOutExpo'
				});
			});
						
		});

	}
	
})(jQuery);

function check_hash()
{
	var _hash = window.location.hash;
	
	//alert(_hash);
	
	//_hash = _hash.replace('#/', '');
	
	if(_hash == '')
	{
		return;
	}
	
	var link = $('a[href="'+_hash+'"]');
	
	//alert(link.length);
	if(link.length > 0)
	{
		link.last().click();
	}
}

$("document").ready(function(){

	var dummy_hash = window.location.hash;
	$('#dummy_case').attr('href', dummy_hash.replace('#/', '/'));

	$(".menu_item, #left nav a").menu_item();
	
	$("a.thumb").thumb_image().overlay_load();
	setTimeout(function(){
		$("#right").fadeIn(400);
	},450);	
	
	$("#select_cases").click(function(e){
		$("#cases_overview_list").slideToggle();
	});
	
	check_hash();
	
});


