$(function () {
	
	function StickyScroller(obj, options)
	{        
	    //Store function scope
	    var $this = this;
	    
	    //Store initial top and left/right values
	    var top = $(obj).css('top');
	    var position = $(obj).css('position');
		var offset = $(obj).offset();
	    var scroll = 0;
	    var tempScroll = 0;
	    
	    $(window).resize(function() {
	    	var curPosition = $(obj).css('position');
	    	$(obj).css({'position':'absolute', 'left':0});
  			offset = $(obj).offset();
  			$(obj).css({'position':curPosition});
  			if(curPosition == 'fixed'){
  				$(obj).css({'left':offset.left});
  			}
		});
	    
	    //------------------------------------------------------------
	    // Set default property values
	    //------------------------------------------------------------
	    var defaults = {
	    	start: 0,
	    	end: 400,
	    	interval: 400,
	    	margin: parseInt(top, 10),
	    	range: 400
	    },	settings = jQuery.extend(defaults,options);
	    obj = $(obj);
	    var Callback = {};
	    
	    Callback.scroll = function(){};    //On window scroll
	
	    $(window).scroll(function()
	    {
	        scroll = $(window).scrollTop();
			stop_point = $('body').height() - $(obj).height() - settings.end;
			if(scroll > settings.start && scroll < stop_point) {
				$(obj).css({
	          		position : 'fixed',
	          		top: 23,
					left: offset.left
				});
			} else if (scroll > settings.start && scroll >= stop_point) {
				$(obj).css({
					position : position,
					top: stop_point ,
					left: "0px"
				});
			} else {
				$(obj).css({
					position : position,
					top: settings.margin,
					left: "0px"
				});
			}
	
	        //Do the scroll callback regardless of what happens
	        Callback.scroll(settings.index);
	    });
	}
	
	if($('#side-panel-container').length > 0){
		// Position side panel absolutle
		$('#side-panel-container').css({
			position:'absolute',
			top: $("#header").outerHeight(true) + $("#sub-header-generic").outerHeight(true)
		});
		
		var scroller = new StickyScroller("#side-panel-container",
		{
			start: $("#header").outerHeight(true) + $("#sub-header-generic").outerHeight(),
			end:$('#footer').outerHeight(true)
		});
		
		// Add events
		$('.sec-nav li').click(function(){
			$('.sec-nav li.selected').removeClass('selected');
			$(this).addClass('selected');
		});
		
	}
});
