$(function()
{
	$(".tweet").tweet({
        username: "engborg",
        join_text: "auto",
        avatar_size: 32,
        count: 1,
        auto_join_text_default: "", 
        auto_join_text_ed: "",
        auto_join_text_ing: "",
        auto_join_text_reply: "",
        auto_join_text_url: "",
        loading_text: "loading tweets..."
    });

	$('#music ul').lastFM(
	{
		username: 'engborg',
		apikey: 'c30d17da2e9fa4facbb687e130132ddb',
		number: 11,
		artSize: 'medium',
		noart: '/img/nocover.png',
		onComplete: function()
		{
            //Done
		}
	});
	
	LingeringNav.init();
	
	$('.label a, nav#main a').click(function()
	{
		var target = $(this).attr('href');
		
		$.scrollTo(target,350);
		return false;
	});
	
	var $work_links = $('#work div.viewport ul li a');
	
	$work_links.each(function()
	{	
		var $this = $(this);
		var href = $this.attr('href');
		
		$(this).attr('href',href + '&iframe=yes');
		
	});
	
	$work_links.fancybox(
	{
		'width':894,
		'height':430,
		'scrolling':'no',
		'padding':0,
		'margin':0
	});
	
	//$('#music').scrollTo();
	
	ColorSchemer.init();
	
	Slideshow.init();
	
	Works.init();
	
	NewWindow.init();
})

var NewWindow =
{
	init:function()
	{
		var $links = $('a[href^="http://"], a[href^="https://"]');
		
		$links.click(function()
		{	
			var $this = $(this);
			var href = $this.attr('href');
			
			if (href.indexOf('viktor.engb.org') == -1)
			{
				window.open(href);
				return false;
			}
		});
	}
};

var Works =
{
	init:function()
	{
		var $content = $('#work div.viewport div');
		
		var $nav = $('#work ul.nav');
		
		var $down 	= $nav.find('li.down a');
		var $up 	= $nav.find('li.up a');
		
		var level = 1;
		
		var viewport_height = $content.parent('div').height();
		var content_height = $content.height();
		
		var num_levels = content_height / viewport_height;
		
		$up.addClass('dimmed');
		
		$down.click(function()
		{
			if (level == num_levels || $("#work div.viewport div:animated").size())
			{
				return false;
			}
			
			$content.animate(
			{
			    top: '-=366'
			},
			500,'swing',function()
			{
				level++;
				
				$down.removeClass('dimmed');
				$up.removeClass('dimmed');
				
				if (level == num_levels)
				{
					$down.addClass('dimmed');
				}
			});
			
			return false;
		});
		
		$up.click(function()
		{
			if (level == 1 || $("#work div.viewport div:animated").size())
			{
				return false;
			}
			
			$content.animate(
			{
			    top: '+=366'
			},
			500,'swing',function()
			{
				level--;
				
				$down.removeClass('dimmed');
				$up.removeClass('dimmed');
				
				if (level == 1)
				{
					$up.addClass('dimmed');
				}
			});
			
			return false;
		});
	}
};

var Slideshow =
{
	init:function()
	{
		$('#work-details div.slides').cycle(
		{ 
		    fx:     'fade', 
		    next:   'ul.nav #next', 
		    prev:   'ul.nav #prev',
			timeout: 0,
			after: 	Slideshow.onAfter
		});
	},
	
	// Toggles nav btns if current slide is first or last
	onAfter:function(curr, next, opts)
	{
	    var index = opts.currSlide;
	    $('ul.nav #prev')[index == 0 ? 'hide' : 'show']();
	    $('ul.nav #next')[index == opts.slideCount - 1 ? 'hide' : 'show']();
	}
}

var ColorSchemer =
{
	init:function()
	{
		var $links = $("nav#colors a");
		
		$links.click(function()
		{
			var $this = $(this);
			
			$links.removeClass('sel');
			
			$this.addClass('sel');
			
			var color = $this.parent('li').attr('class');
			
			$('body').removeAttr('class').addClass(color);
			
			return false;
		});
	}
};

var LingeringNav =
{
	items:'',
	
	init:function()
	{
		this.$items = $('section .label');
		
		var $items = this.$items;

		var item_size = parseInt(25);

		var org_trigger_heights = new Array();

		$items.each(function(i)
		{		
			var extra_offset = (i * item_size) + (i * 5);

			org_trigger_heights.push($items.eq(i).offset().top - extra_offset);
		});
		
		window.onscroll = function()
		{
			// Thanks to Johan SundstrÃ¶m (http://ecmanaut.blogspot.com/) and David Lantner (http://lantner.net/david) 
			// for their help getting Safari working as documented at http://www.derekallard.com/blog/post/conditionally-sticky-sidebar
			
			var $items = LingeringNav.$items;
			
			if( window.XMLHttpRequest ) // IE 6 doesn't implement position fixed nicely...
			{ 
				
				$items.each(function(i)
				{
					var $item = $items.eq(i);
					
					var dynamic_trigger_height = $item.offset().top;
					
					//console.log(dynamic_trigger_height)
					
					if ($item.size())
					{
						if (document.documentElement.scrollTop > org_trigger_heights[i] || self.pageYOffset > org_trigger_heights[i])
						{
							var top = i * 30;

							$item.css({'position':'fixed','top':top,'z-index':100});
						}
						else if (document.documentElement.scrollTop < org_trigger_heights[i] || self.pageYOffset < org_trigger_heights[i])
						{
							$item.removeAttr('style');
						}
					}
				});			
			}
		}
	}
};


