$(function()
{	
	Map.init();
	
	if ($('#three-steps').size())
	{
		$('#three-steps a:first').fancybox({'overlayOpacity':0.7});
	}
	
	if ($('#category-filter').size())
	{
		CategoryFilter.init();
	}
	
	$('ul#nav > li > a').append('<span class="hover"></span>').each(function ()
	{
		var $span = $('> span.hover', this).css('opacity', 0);

		$(this).hover(function()
		{
			$span.stop().fadeTo(250, 1);
		},
		function()
		{
			$span.stop().fadeTo(250, 0);
		});
	});
	
	$('ul#nav div.nav-sub a').append('<span class="hover"></span>').each(function ()
	{
		var $span = $('> span.hover', this).text($(this).text()).css('opacity', 0);
		
		var $parent = $(this);
		
		$(this).hover(function()
		{
			$span.stop().fadeTo(250, 1);
		},
		function()
		{
			$span.stop().fadeTo(250, 0);
		});
	});
	
	$('ul#nav div.nav-sub').each(function()
	{
		var $drop_down = $(this);
		var $parent = $drop_down.siblings('a');
		
		$parent.toggle(function()
		{
			if ($.support.opacity)
			{
				$drop_down.fadeIn('fast');				
			}
			else
			{
				$drop_down.show();
			}
			
			return false;
		},
		function()
		{
			if ($.support.opacity)
			{
				$drop_down.fadeOut('fast');				
			}
			else
			{
				$drop_down.hide();
			}
			
			return false;
		});
	});
	
	var $login_box = $('#header #login');
	
	$('#nav li.log a').toggle(function()
	{
		$login_box.show().find('input#username').focus();
		
		return false;
	},
	function()
	{
		$login_box.hide();
		
		return false;
	});
	
	$('#foundations div.item').equalizeCols();
	
	// Add num classes to list to be able to apply a background for each step
	$('#method ul li').each(function(i)
	{
		$(this).addClass('s' + (i+1));
	})
	
});

var CategoryFilter =
{
	init:function()
	{
		this.init_toggle_single();
		
		var $container = $('#category-filter');
		
		var $toggle_categories_link = $container.find('ul.togglers li.categories a');
		
		var $toggle_list_mode_link = $container.find('ul.togglers li.mode a');
		
		var $category_list = $container.find('ul.categories');
		
		var $category_list_items = $category_list.find('li');
		
		$category_list_items.wrapInner('<a href="#"></a>').filter(':first').find('a').addClass('sel');
		
		var $category_list_links = $category_list_items.find('a');
		
		var $container = $('#coworkers');	
		
		var $coworkers = $('#coworkers div.item');	
		
		var $coworker_details = $coworkers.find('> *').not('h2');
		
		var $coworker_imgs = $coworkers.find('img');
		
		$toggle_list_mode_link.toggle(function()
		{
			$coworkers.addClass('compact');
			$toggle_list_mode_link.text(str_show_normal);
			return false;
		},
		function()
		{
			$coworkers.removeClass('compact');
			$toggle_list_mode_link.text(str_show_compact);
			return false;
		});
				
		$category_list_links.click(function()
		{
			var category = $(this).parent('li').attr('class');
			
			$category_list_links.removeClass('sel');
			$(this).addClass('sel');
			
			$('p.position .highlight').removeClass('highlight');
			
			$('p.position span.' + category).addClass('highlight');
			
			if (category == 'all')
			{
				$coworkers.show();
			}
			else
			{
				$coworkers.hide().filter('div.' + category).show();
			}			
			
			return false;
		});
	},
	
	init_toggle_single:function()
	{
		$('#coworkers h2').click(function()
		{
			var $item = $(this).parent('div.item');
			
			if ($item.hasClass('compact'))
			{
				$item.removeClass('compact');
			}
			else
			{
				$item.addClass('compact');
			}
			
		});
	}
};

var Map =
{
	init:function()
	{
		if ($('#contact-section #map').size())
		{
			Map.init_contact_page_map();
		}
		
		if ($('#ams-section #map').size())
		{
			Map.init_ams_page_map();
		}
	},
	
	init_contact_page_map:function()
	{
		if (GBrowserIsCompatible())
		{
			var map = new GMap2(document.getElementById("map"));
						
			var coordinates = new GLatLng(59.33407, 18.05731)
			
			map.setMapType(G_PHYSICAL_MAP);
			
			map.addControl(new GSmallZoomControl3D());
			
			map.setCenter(coordinates, 13);
			
			map.addOverlay(new GMarker(coordinates));
		}
	},
	
	init_ams_page_map:function()
	{
		if (GBrowserIsCompatible())
		{
			var map = new GMap2(document.getElementById("map"));
						
			var center = new GLatLng(59.45624336447568, 14.9853515625);
			
			map.setMapType(G_PHYSICAL_MAP);
			
			map.addControl(new GSmallZoomControl3D());
			
			map.setCenter(center, 6);
			
			GEvent.addListener(map, "moveend", function()
			{
			  console.log(map.getCenter())
			});
			
			var markers = new Array
			(
				new GLatLng(59.33711164635985, 18.05877685546875), 	// sthlm
				new GLatLng(59.199563685127615, 17.64129638671875),	// stälje
				new GLatLng(59.36231521541328, 18.00384521484375),	// solna
				new GLatLng(59.24172920396767, 17.97637939453125),	// huddinge
				new GLatLng(58.75908464178749, 17.0123291015625),	// nyköping
				new GLatLng(59.38022635604701, 16.5179443359375),	// Etuna
				new GLatLng(59.62554735365204, 16.5509033203125),	// Vrås
				new GLatLng(59.8746036213839, 17.6385498046875),	// Uppsala
				new GLatLng(58.60489988597544, 16.1663818359375), 	// Norrköping
				new GLatLng(58.4212779644173, 15.6060791015625),	// Linköping
				new GLatLng(59.14438884060232, 12.9254150390625),	// säffle
				new GLatLng(59.39141602791931, 13.4967041015625),	// karlstad
				new GLatLng(60.13986378237955, 13.00506591796875), 	// torsby
				new GLatLng(59.68105369349162, 12.5958251953125)	// arvika
			);
			
			for ( var i in markers )
			{
				map.addOverlay(new GMarker(markers[i]));
			}
		
		}
	}
};


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
	
	if( window.XMLHttpRequest ) // IE 6 doesn't implement position fixed nicely...
	{ 
		var $sub_menu = $('#sub .nav-sub');
		
		if ($sub_menu.size())
		{
			var trigger_height = 140;
			
			if (document.documentElement.scrollTop >  trigger_height || self.pageYOffset > trigger_height)
			{
				$sub_menu.css({'position':'fixed','top':'0'});
			}
			else if (document.documentElement.scrollTop < trigger_height || self.pageYOffset < trigger_height)
			{
				$sub_menu.css({'position':'static','top':'auto'});
			}
		}
	}
}
