function setFragID(url) {
	url = url || "";
	if(url==="#") {
		return false;
	}
	//alert(url);
	if(url.indexOf('?')===0) {
		url = url.substring(1);
		setFragID.addQ = true;
	} else {
		delete setFragID.addQ;
	}
	if(url.lastIndexOf('/')!==-1) {
		url = url.substring(url.lastIndexOf('/')+1);
	}
	//url = url.substring(0,url.indexOf('.html')) // assumes link like "page.html"
	window.location.hash = url;
}

function getFragID() {
	//return window.location.hash.replace(/^#/,"");
	var hash = window.location.hash.split('#')[1];
	if(setFragID.addQ) {
		hash = '?'+hash;
	}
	return hash;
}

function startWatchingHash() {
	(function() {
		if(window.location.hash!==arguments.callee.hash) {
			$(document).trigger('hashChange');
		}
		arguments.callee.hash = window.location.hash;
		window.setTimeout(arguments.callee,200);
	})();
}

/* AJAZ page transitions */
var ajaz_transition = function(href) {
	var $imgwrap = $('#imgwrap');
	$imgwrap.stop(); // cancel any previously-loading transition
	var loadOneTime;
	$imgwrap.find('div, h3').fadeTo("default", 0.01, function() {
		if(!loadOneTime) {
			loadOneTime = true;
			$('<span id="loading">Loading...</span>').css({
				position: "absolute",
				left: "0",
				top: "0",
				visibility: 'visible'
			}).prependTo($imgwrap);
			$imgwrap.stripload(href+" #maincontent", function() {
				$('#loading').remove();
				$imgwrap.find('div, h3').css('opacity', 0.01);
				if($imgwrap.css('visibility')==="hidden") {
					$imgwrap.css('visibility','visible');
				}
				$imgwrap.find('.onlyjs')
					.show()
					.end()
					.find('.right img')
					.show()
					.end()
					.find('div, h3')
					.fadeTo("default", 1);
			});
		}
	});
};

// bind navigation to frag ID changes
$(document).ready(function() {
	$(document).bind('hashChange', function() {
		var hash = getFragID();
		var url;
		if(hash) {
			//url = hash+".html"; // assumes link like "page.html"
			url = hash;
			ajaz_transition(url);
		}
	});
	startWatchingHash();
});
