var _state = function(_page) {
	var page = _page;
	var state = new Object();

	function homePage() {
		fetchContent();
	}

	function fetchContent(fast) {
		if(!fast)
			$('#content').fadeOut('fast');

	    $.ajax({
			type: 'GET',
			url: 'content/'+page+'.html',
			dataType: "text",
			success: fast ? showContent : fadeContent
		});
	}
	
	function fadeContent(htmlContent) {
		$('#content').hide();
		$('#content').html(htmlContent);
		setEmail();
		$('#content').fadeIn('fast', fadeBg);
	}

	function fadeBg(htmlContent) {
		$('#background').css('background-image', $('body').css('background-image'));
		$('#background').show();
		setTimeout(function(){ 
		$('body').css('background-image', 'url(img/background_'+page+'.jpg)');
		setTimeout(function(){ $('#background').fadeOut('slow',function() { $('#background').hide();} ); }, 2000);
		},200);
		
	}

	function setEmail() {
		var trg ='_berg' + '@';
		trg += 'planet';
		trg = 'peter_' + trg + '.' + 'nl';
		var trgi = $('#trg');
		if(trgi.length>0) {
			trgi.attr("href",'mai'+'lt'+'o:'+trg);
			trgi.html(trg);
		}
	}

	function showContent(htmlContent) {
		$('#content').html(htmlContent);
		setEmail();
		$('#content').show();
		$('body').css('background-image', 'url(img/background_'+page+'.jpg)');
	}
	
	function state2hash(s) {
		var o = '';
		var first = true;
		for(i in s) {
			if(first) first = false;
				else o+='&';
			o+=i+'='+encodeURIComponent(s[i]);
		}
		return o;
	}
	
	function storeState() {
		state.p=page;
		$.historyLoad(state2hash(state));
	}
	
	var _public = {
	
		init: function(hash) {
		
			shash = hash.split("&");
			for(var i=0; i < shash.length; i++) {
				if(shash[i].length) {
					var keyval = shash[i].split('=');
					state[keyval[0]] = decodeURIComponent(keyval[1]);
				}
			}
		
			if(state.p)
				page = state.p;
				
		},
		draw: function(_page) {
			if(page!=_page)
				fetchContent(true);
			else
				setEmail();
		},
		toPage: function(_page) {
			page = _page;
			storeState();
			fetchContent();
		}
	};
	return _public;
};

