// smart-nav.js
/**
 * @author Bastian Haustein
 * @copyright (c)2009 by source-lounge Bastian Haustein
 * @package pop
 */

/*
var smartNavConfig = {
	aContentAreas:			['main-menu', 'sub-menu', 'main']
	,bDontStartAutomatic:	true
	,onAfterContendLoad:	popContact.init
}

var smartNav = {
	init: function() {
		// replace all a-tags in standard doc
		smartNav.replaceLinks('doc');
		$.historyInit(smartNav.historyNavTo);
	}
	,historyNavTo: function(hash) {
		smartNav.loadPage(hash);
	}
	,replaceLinks: function(sStartDomId) {
		// search all a tags and onClick-event
		$("#" + sStartDomId + " a").click(function(event) {
			if($(this).attr('href').substr(0,4)=='http' && $(this).attr('href').substr(0,13) != document.location.href.substr(0,13)) {
				return true;
			}	
			$.historyLoad(this.href)		
			event.preventDefault();
			return false;
		});
	}
	,showLoadingScreen: function() {
		// show screen
		$('#loader').fadeIn('fast');
	}
	,hideLoadingScreen: function() {
		// hide screen	
		$('#loader').fadeOut('normal');
	}
	,bLoading: false
	,loadPage: function(sUrl) {
		sUrl = sUrl.toString();	
		if(sUrl == '') {
			$('#loader').css('display','none');
			smartNav.showAllContent();
			return;
		}
		// suppress double clicking		
		if(this.bLoading == true) {
			return;
		}
		smartNav.showLoadingScreen();
		smartNav.bLoading = true;
		// get page and register recall on smartNav.insertPage
		$.get(sUrl, {}, smartNav.replaceAllContent);
		//document.location.href="#"+escape(sUrl);
	}
	,replaceAllContent: function(data) {
		document.title = data.substring(data.indexOf('<title>')+7,data.indexOf('</title>'));
		for(var i in smartNavConfig.aContentAreas) {
			smartNav.replaceContent(smartNavConfig.aContentAreas[i], data);
		}
		if(typeof smartNavConfig.onAfterContendLoad == 'function') {
			window.setTimeout(smartNavConfig.onAfterContendLoad,600);
		}
		smartNav.hideLoadingScreen();
	}
	,replaceContent: function(sId, data) {
		$('#'+sId).fadeOut('fast', function(){			
			$('#'+sId).css('display', 'none').html($('#'+sId+'>*', data));
			smartNav.replaceLinks(sId);
			$('#'+sId).fadeIn('slow', smartNav.cleanup);
		});
	}
	,showAllContent: function() {
		for(var i in smartNavConfig.aContentAreas) {
			smartNav.showContent(smartNavConfig.aContentAreas[i]);
		}
	}
	,showContent: function(sId) {
		$('#'+sId).fadeIn('slow', smartNav.cleanup);
	}
	,cleanup: function(o) {
		// swap id of loading div and document div
		smartNav.bLoading = false;
	}
}

// suppress flickering content
document.write('<style type="text/css">');
for(var i in smartNavConfig.aContentAreas) {
	document.write('#' + smartNavConfig.aContentAreas[i] + '{display:none;} ');
}
document.write('</style>');

$(document).ready(function(){
	if(smartNavConfig.bDontStartAutomatic!=true) {
		smartNav.init();
	}
 });
*/
