// JavaScript Document

(function(jQuery) {
	jQuery.fn.figsubpages = function(settings) {
		
		var settings = jQuery.extend({
			mainheader:			'header-container',
			container:			'secondary-page-container',
			content:			'secondary-page-content',
			loader:				'secondary-loading',
			collapse:			'collapse-page'
		}, settings);
		
		var nav = this;
		var headerH = parseFloat(jQuery('#'+settings.mainheader).css("height"))+1;
		var loaderH = parseFloat(jQuery('#'+settings.loader).css("height"));
		
		var currentPage = -1;
		
		function _initialize(){
			jQuery('li a', nav).each(function(e){
				jQuery(this).click(function(){
					if(e!=currentPage){
						currentPage = e;
						_dropLoader(this);
					} else {
						currentPage = -1;
						_collapseAll();
					}
					return false;
				});
			});
			jQuery('#'+settings.collapse).click(function(e){
				currentPage = -1;
				_collapseAll();				
				return false;										 
			});
		}
		
		function _collapseAll(){
			jQuery('#'+settings.content).fadeOut("fast");
			jQuery('#'+settings.collapse).fadeOut("fast", function(){
				jQuery('#'+settings.mainheader).animate({"height":headerH},300);
				jQuery('#'+settings.container).animate({"height":0},300);
				jQuery('#'+settings.loader).animate({"top":-1*loaderH},300);
				jQuery(document).scrollTo(0,500);
			});
			jQuery('li a', nav).removeClass('on');
		}
		
		function _dropLoader(btn){
			jQuery('li a', nav).each(function(e){
				if(e==currentPage){
					jQuery(this).addClass('on');	
				} else {
					jQuery(this).removeClass('on');	
				}
			});
			jQuery('#'+settings.content).fadeOut("fast");
			jQuery('#'+settings.collapse).fadeOut("fast", function(){
				jQuery('#'+settings.mainheader).animate({"height":headerH},300).animate({"height":headerH+loaderH},300);
				jQuery('#'+settings.container).animate({"height":0},300).animate({"height":loaderH},300);
				jQuery('#'+settings.loader).animate({"top":-1*loaderH},300).animate({"top":0},300, function(e){
					_ajaxCall(btn);
				});
			});
		}
		
		function _ajaxCall(btn){
			jQuery('#'+settings.content).html('');
			var href = jQuery(btn).attr("href");
			jQuery.ajax({
				type:		"GET",
				url: 		href,
				data:		'fig-subpage=1',
				success:	function(content){
								_fillContent(content);
							},
				error:		function(){
								_fillContent('page not found.');
								jQuery('li a', nav).each(function(e){
									jQuery(this).removeClass('on');	
								});
							}
			});
		}
		
		function _fillContent(content){
			jQuery('#'+settings.content).html(content);
			var contentH = parseFloat(jQuery('#'+settings.content).outerHeight());
			jQuery('#'+settings.mainheader).animate({"height":headerH+contentH},300);
			jQuery('#'+settings.container).animate({"height":contentH},300);
			jQuery('#'+settings.loader).animate({"top":-1*loaderH},300, function(){
				jQuery('#'+settings.collapse).fadeIn("fast");
				jQuery('#'+settings.content).fadeIn("fast");
			});
		}
		
		_initialize();

	};
})(jQuery);