Function.prototype.bind = function(context){
	var closure = this;
	var tmp_fnc = function(){
		return closure.apply(context, arguments);
	}
	return tmp_fnc;
}
Object.prototype.merge = function(object){
	for(attr in object){
		this[attr] = object[attr];
	}
}
document.navigators = {
	settings: {
		interval: 100,
		helper: true,
		iframe_src: "/subs/control.htm"
	},
	initialize: function(){
		this.is_ie = (navigator.userAgent.toLowerCase().indexOf("msie") > -1) ? true : false;
		if(this.is_ie){
			this.settings.iframe_src = this.settings.iframe_src.replace(/(\?|#).*$/, "");
			window.attachEvent("onload", (function(){
				this.iframe = document.createElement("iframe");
				this.iframe.setAttribute("src", this.settings.iframe_src);
				this.iframe.style.display = "none";
				document.getElementsByTagName("body")[0].appendChild(this.iframe);
			}).bind(this));
		} else {this.running = true;}
	},
	helper: function(data, force){
		var navs = document.navigators; var data = "[" + this.id + "]" + data;
		if(force){navs.data_buffer = "";}
		if(navs.is_ie){navs.iframe.src = navs.settings.iframe_src + "?id=" + data;}
		else{window.location.hash = "#" + data;}
	},
	called: false,
	history: [],
	data_buffer: ""
};
function onnavigate(id, callback){
	var navs = document.navigators; navs[id] = {};
	if(!navs.running){navs.initialize();}
	setInterval(function(){if(navs.running){
		var url = window.location.href;
		var hash = window.location.hash.replace(/#/, "");
		var theid = "#[" + id + "]";
		if(url.indexOf(theid) > -1){
			var data = url.split(theid)[1] || "";
			var new_data = theid + data;
			if(navs.data_buffer != new_data){
				callback(data);
				navs.called = true;
				navs.history.push(new_data);
				navs.data_buffer = new_data;
			}
		} else if (!hash && navs.called){
			navs.running = false;
			window.location = ((url.indexOf("#") > -1) ? url.split("#")[0] : url) + "#";
			window.location.reload();
		}
	}}, navs.settings.interval);
	navs[id].merge({callback: callback});
	if(navs.settings.helper){
		navs[id].helper = navs.helper.bind({id: id}); return navs[id].helper;
	}
}
request_source = onnavigate("request_source", function(data){
	if(data == "subs/inicial.php"){
		document.getElementById('topo_menu').style.visibility = 'hidden';
		document.getElementById('topo_img').style.visibility = 'visible';
	}else{
		document.getElementById('topo_img').style.visibility = 'hidden';
		document.getElementById('topo_menu').style.visibility = 'visible';
	}

	var source = $('conteudo')
	source.innerHTML = "<table width='100%' height='150' border='0' align='center' cellpadding='0' cellspacing='0'><tr><td align='center' valign='middle'><br><br><img src='/images/logo_load.png'></td></tr><tr><td height='62' align='center' valign='middle'><img src='/images/load.gif'></td></tr><tr><td align='center' valign='top'><font style='font-family:Tahoma; font-size:12; color:#394EA1; font-weight:bold;'>Carregando...</font></td></tr></table>"
	source.load(data);
        BarraTopo();
});

function BarraTopo() {
 window.scroll(0,0);
}
