if(!com){var com={};}
if(!com.scibuff){com.scibuff={};}
if(!com.scibuff.dev){com.scibuff.dev={};}
if(!com.scibuff.dev.ajax){com.scibuff.dev.ajax=function(){var tmp={};tmp.URL_CHECK_INTERVAL=100;tmp.HASH_VARS_SEPARATOR=';'
tmp.internalUrlChange=false;tmp.oldURL=window.location.href;tmp.checkURL=function(){if(tmp.oldURL!=window.location.href){tmp.oldURL=window.location.href;$(window.location).trigger(pub.URL_CHANGED,{url:window.location.href});}}
tmp.urlChangeHandler=function(event,data){if(!tmp.internalUrlChange){var data=tmp.getHashVars();if(data[pub.PAGE_VAR_NAME]!=""){tmp.loadPageContent(data[pub.PAGE_VAR_NAME],"#content");}}
tmp.internalUrlChange=false;}
tmp.getHashVars=function(){var url=window.location.href;if(url.match('#')){var hash=url.split('#')[1];var hashes=hash.split(tmp.HASH_VARS_SEPARATOR);var data={};for(var i in hashes){if(hashes[i]!=""){var tuple=hashes[i].split("=");data[tuple[0]]=unescape(tuple[1]);}}
return data;}
return{};}
tmp.setHashVars=function(vars){var url=window.location.href;if(url.match('#')){url=url.split('#')[0];}
var hash="";for(var key in vars){if(vars[key]){hash+=key+"="+escape(vars[key])+";";}}
tmp.internalUrlChange=true;window.location=url+"#"+hash;}
tmp.setAjaxLink=function(element,clickEvent){clickEvent.preventDefault();var url=element.attr("href");tmp.loadPageContent(url,"#content");};tmp.loadPageContent=function(url,destination){var data=tmp.getHashVars();data[pub.PAGE_VAR_NAME]=url;tmp.setHashVars(data);$(destination).load(url,{'ajax':'true'},function(){$(destination+' a.ajax-link').click(function(event){tmp.setAjaxLink($(this),event);});});}
var pub={};pub.PAGE_VAR_NAME="page";pub.URL_CHANGED="change";pub.init=function(){var data=tmp.getHashVars();if(data[pub.PAGE_VAR_NAME]!=""){tmp.loadPageContent(data[pub.PAGE_VAR_NAME],"#content");}
$(window.location).bind(pub.URL_CHANGED,tmp.urlChangeHandler);setInterval(tmp.checkURL,tmp.URL_CHECK_INTERVAL);$('a.ajax-link').click(function(event){tmp.setAjaxLink($(this),event);});}
pub.getHashVars=tmp.getHashVars;return pub;}();}
$(document).ready(function(){com.scibuff.dev.ajax.init();});
