// JavaScript Document

// factorium

// SACODE - Simple Ajax Content Delivery
// v. 1.2

// PROMOVE ACESSIBILIDADE MAIOR AO SITE GERANDO UMA URL UNICA PARA LOCALIZAÇAO DA SEÇAO

sacode = new Object();
//sacodeDynVar = new Object();

sacode.origemPadrao = "conteudo";
sacode.destinoPadrao = "conteudo";

sacode.ativo = false;

// FUNCAO DE INICIALIZACAO DO SACODE.
// É OPCIONAL E DEVE SER USADO PARA INDICAR QUAL A PRIMEIRA PAGINA DO SITE.
// CASO A URL INDIQUE UMA PAGINA, A PAGINA INICIAL É IGNORADA
sacode.inicio = function(fcPaginaInicial) {
	var local;
	var localArray;
	var extra;
		
	extra = "";
	local = location.hash.substring(1);
	//localArray = local.split("#");
	
	if (local == "" || local == null) {
		extra = fcPaginaInicial
	} else {
		extra = local;
	}
	
	sacode.abrir(extra);
}

sacode.abrir = function(fcEndereco_abrir) {
	
	sacode.autoLoad(fcEndereco_abrir , sacode.origemPadrao, sacode.destinoPadrao);
	
	location.hash = "#" + fcEndereco_abrir;
}

// funcoes privadas
sacode.criarSacodeContent = function() {
	if (sacode.ativo == false) {
		sacode_init_div = document.createElement("div");
		sacode_init_div.setAttribute("id", "sacodeContent_div");
		sacode_init_div.style.display = "none";
		
		document.getElementsByTagName("body")[0].appendChild(sacode_init_div);
		
		sacode.ativo = true;
	}
}
sacode.randomId = function() {
	var sacodeRandomId;
	sacodeRandomId = "sacodeId_" + Math.round(Math.random()*1000000);
	return sacodeRandomId;
}
// ==========

// sacode.criar(novo_iframe_id)
sacode.criar = function(sacode_iniciar_id) {
	sacode.criarSacodeContent();
	//document.getElementById("sacodeContent_div").innerHTML = "<iframe name=\"" + sacode_iniciar_id + "\" id=\"" + sacode_iniciar_id + "\" src=\"\"></iframe>";
	
	sacode_init_iFrame = document.createElement("iframe");
	sacode_init_iFrame.setAttribute("name", sacode_iniciar_id);
	sacode_init_iFrame.setAttribute("id", sacode_iniciar_id);
	sacode_init_iFrame.setAttribute("src", "");
	
	document.getElementById("sacodeContent_div").appendChild(sacode_init_iFrame);
	
	sacode_init_iFrame = null;
}

// sacode.aplicar(id_origem, id_destino)
sacode.aplicar = function(sacode_aplicar_origem, sacode_aplicar_destino) {
	var sacode_conteudo;
	sacode_conteudo = document.getElementById(sacode_aplicar_origem).innerHTML;
	parent.document.getElementById(sacode_aplicar_destino).innerHTML = sacode_conteudo;
	// limpando conteudo
	document.getElementById(sacode_aplicar_origem).innerHTML = "&nbsp;";
}

// sacode.carregar(iframe_id, url)
sacode.carregar = function(sacode_janela, sacode_endereco) {
	document.getElementById(sacode_janela).src = sacode_endereco;
}

// sacode.autoLoad(url[, sacode_idOrigem, sacode_idDestino])
// ESTA FUNCAO AUTOMATICAMENTE CRIA SEU PROPRIO IFRAME
// PERMITINDO MULTIPLOS CARREGAMENTOS SIMULTANEOS
// POREM NAO FUNCIONA ATRAVÉS DE URLS DIRETAS.
// IDEAL PARA SISTEMAS
sacode.autoLoad = function(sacode_endereco, sacode_idOrigem, sacode_idDestino) {
	
	var sacodeRandomIframe;
	
	sacode.criarSacodeContent();
	sacodeRandomIframe = sacode.randomId();
		
	sacode_init_iFrame = document.createElement("iframe");
	sacode_init_iFrame.setAttribute("name", sacodeRandomIframe);
	sacode_init_iFrame.setAttribute("id", sacodeRandomIframe);
	sacode_init_iFrame.setAttribute("src", sacode_endereco);
	
	if (sacode_idOrigem == undefined || sacode_idDestino == undefined) {
		if (sacode.browser() == "IE") {
			sacode_init_iFrame.attachEvent("onload", function() { sacode.autoUnloadTimer(sacodeRandomIframe);});
		} else {
			sacode_init_iFrame.setAttribute("onLoad", "sacode.autoUnloadTimer('" + sacodeRandomIframe + "');");
		}
	} else {
		if (sacode.browser() == "IE") {
			sacode_init_iFrame.attachEvent("onload", function() {sacode.autoUnloadTimer(sacodeRandomIframe, sacode_idOrigem, sacode_idDestino);});
		} else {
			sacode_init_iFrame.setAttribute("onLoad", "sacode.autoUnloadTimer('" + sacodeRandomIframe + "', '"+sacode_idOrigem+"', '"+sacode_idDestino+"');");	
		}
		
	}
	
	document.getElementById("sacodeContent_div").appendChild(sacode_init_iFrame);

	sacode_init_iFrame = null;
}
sacode.autoUnloadTimer = function(sacode_iframeIdUnloadTimer, sacode_unloadIdOrigem, sacode_unloadIdDestino) {
	if (sacode_unloadIdOrigem != undefined || sacode_unloadIdDestino != undefined) {
		setTimeout("sacode.autoUnload('"+sacode_iframeIdUnloadTimer+"', '"+sacode_unloadIdOrigem+"', '"+sacode_unloadIdDestino+"');", 500);
	} else {
		setTimeout("sacode.autoUnload('"+sacode_iframeIdUnloadTimer+"');", 500);
	}
}
sacode.autoUnload = function(sacode_iframeIdUnload, sacode_unloadTimerIdOrigem, sacode_unloadTimerIdDestino) {
	var sacode_iframeToRemove_parent;
	var sacode_iframeToRemove_old;
	var sacode_iframeDocument
	
	sacode_iframeToRemove_parent = document.getElementById("sacodeContent_div");
	sacode_iframeToRemove_old = document.getElementById(sacode_iframeIdUnload);
	
	
	if (sacode_unloadTimerIdOrigem != undefined || sacode_unloadTimerIdDestino != undefined) {
		
		sacode_iframeDocument = sacode_iframeToRemove_old.contentWindow || sacode_iframeToRemove_old.contentDocument;
		
		if (sacode_iframeDocument.document) {
			sacode_iframeDocument = sacode_iframeDocument.document;
		}
		
		if (document.getElementById(sacode_unloadTimerIdDestino)) {
			// VERIFICA SE O ESPACO DE DESTINO AINDA EXISTE
			document.getElementById(sacode_unloadTimerIdDestino).innerHTML = sacode_iframeDocument.getElementById(sacode_unloadTimerIdOrigem).innerHTML;
		}
	}
	
	sacode_iframeToRemove_parent.removeChild(sacode_iframeToRemove_old);
	
	//
	
	sacode.autoLoadComplete();
}

sacode.browser = function() {
	var bTipo = "";
	
	//Detect IE5.5+
	version = 0
	if (navigator.appVersion.indexOf("MSIE") != -1) {
		temp = navigator.appVersion.split("MSIE");
		version = parseFloat(temp[1]);
		bTipo = "IE";
	}
	return bTipo;
}

sacode.autoLoadComplete = function() {
	if (parent.redimIframeActive==true) {
		parent.redimIframe('cicloneContent');
	}
}