(function($){
	$.fn.scFlyout = function(options){
		var defaults = {
			foobj2: "#sc-flyout", // tab container
			foobj3: "#sc-flyout-tab", // tab button
			flytopoffset: 95, // distance from top of overall container
			flybtnoffset: -37,
			fstay: true, // auto scroll true/false
			flyinside: true, // positioning of button inside(0) or outside(1) container
			flypos: 0
		};
		var settings = $.extend({},defaults,options);
			
		$(settings.foobj2).css("display","block");
		var bodywidth = $(this).width();
		var flywidth = $(settings.foobj2).width();
		var flytip = $(settings.foobj2+' .sc-flyout-tip');
		
		// initial positioning
		$(settings.foobj2).css("top","0px").css("left",(bodywidth));
		
		// toggle flyout open and close
		$(settings.foobj3).css("left", settings.flybtnoffset).toggle(
			function(){
				$(settings.foobj2).animate({left:(bodywidth - flywidth - 2)+"px"}); settings.flypos=1; flytip.fadeOut(500); $(this).addClass("sc-flyout-tab-on");}, 
			function(){
				$(settings.foobj2).animate({left:(bodywidth)+"px"}); settings.flypos=0; $(this).removeClass("sc-flyout-tab-on");}
		).hover(
			function(){if(settings.flypos==0){flytip.fadeIn(500)}},
			function(){flytip.fadeOut(500)
		});
		
		// tip appears when page loads
		//flytip.hover(flytip.css('display','block'));
		
		// outside button function
		$.fn.outsideFly = function(){
			$(this).after($(settings.foobj3));
			var offset = $(this).offset();
			var offsetcalc = (offset.left-1) + $(this).width();
			$(settings.foobj3).css("left", "971.5px").css("top","225px");
		}
		
		// scrolling function
		$.fn.flyScroll = function(){
			$(this).animate({top: ($(window).scrollTop()+225) + "px" },{queue: false, duration: 350});
		}

		$.fn.flyScrollsub = function(){
			$(this).animate({top: ($(window).scrollTop()) + "px" },{queue: false, duration: 350});
		}
		
		// if button is wanted on the outside of the shell
		if(!settings.flyinside){
			var mainobj = $(this);
			mainobj.outsideFly();
			$(window).resize(function(){mainobj.outsideFly()});
			if(!settings.fstay)$(window).scroll(function(){$(settings.foobj3).flyScroll()});
		}
		
		// scroll on window scroll animation if fstay = true
		if(!settings.fstay){
			$(window).scroll(
				function(){
					$(settings.foobj2).flyScrollsub();
			});
		}

		// add ID for seperate css control over layout
		//$(".sc-flyout-tab-info").each(function(i){$(this).attr("id",'sc-flyout-tab-info'+i)});
		
		$.fn.processFlyOutOn = function(){
			$(this).addClass("sc-flyout-tab-btn-on");
			$(this).siblings().show("fast");
		}
		$.fn.processFlyOutOff = function(){
			$(this).removeClass("sc-flyout-tab-btn-on");
			$(this).siblings().hide("fast");
		}
		// section toggle showing contents
		$(settings.foobj2 + " .sc-flyout-tab-btn").toggle(
			function(){
				$(this).processFlyOutOn();
			},
			function(){
				$(this).processFlyOutOff();
			}
		);
		
		// make first section visible
		$(settings.foobj2 + " .sc-flyout-tab-btn:first").click();
	}
})(jQuery);
