
// --	INICIO --

// Carregar varias div's de uma so vez
//
// valores > array de valores
// valores[i][0] > id da div
// valores[i][1] > query string ou key=value do post
// valores[i][2] > bookmark para o browser chegar a pagina
// valores[i][3] > metodo, get ou post
function carregarVariasCamadas(valores) 
{
	for (i=0 ; ( (i<valores.length)&&(i<100) ) ; i++) {
		carregarCamada(valores[i][0], valores[i][1], valores[i][2], valores[i][3]);
	}
}

// Carregar html fazendo um pedido ao servidor
//
// id > id da div
// params > query string ou key=value do post
// bookmark > bookmark para o browser chegar a pagina
// metodo > metodo, get ou post
function carregarCamada(id, params, bookmark, metodo) 
{
	// verifica se é um link externo
	if(typeof(bookmark) === 'undefined') {
		bookmark = '';
	}
	if (bookmark.indexOf("http://") > -1) {
		window.open(bookmark);
	} else {	

		// Alteramos o endereco no browser para bookmark
		if (bookmark) {
			window.location.hash = "#/"+bookmark;
		}

		// Forward / back	- browser history
		historico=false;
		if (!(historic_links["/"+bookmark])) {
			historic_links["/"+bookmark]=id+"|"+params+"|"+bookmark+"|"+metodo;
		}

		// Mostramos a imagem do preloader
		if ( document.getElementById(id) ) {
			document.getElementById(id).innerHTML = "<img src='"+cli_url+"images/preloader.gif' style='position:relative; margin-left:50%; margin-top:20%;'>";
		}

		// Caso seja o metodo post
		if (metodo=="post") {
			$.post(cli_url+'index.php', params, function(data) {
				alterarCamada(id, data);
			});
		// Caso seja o metodo get
		}	else {
			$.get(cli_url+'index.php?'+params, function(data){
					alterarCamada(id, data);
			})
		}

	}
}

// Alterar o html da div
//
// id > id/nome da div
// data > html devolvido pela resposta da script
function alterarCamada(id, data) 
{
	// Fazemos um fade antes de trocar o html da div
	$('#'+id).fadeIn("slow");
	
	// Trocamos o html da div
	if ( document.getElementById(id) ) 
	{
		document.getElementById(id).innerHTML = data;
		// $("#"+id).html(data)
	}
	
	// Javascript especial para mudar o title via ajax	
	if (document.getElementById('java_script_title_tag')) {
		eval(document.getElementById('java_script_title_tag').innerHTML);
		if (!(title_tag.indexOf("TWITTER") > -1)) {
			document.title = title_tag;
		}
	}
	
	// Executamos o javascript quando recebemos a resposta do servidor
	// Melhor forma para executar javascript, ver funcao em baixo
	if (!(title_tag.indexOf("TWITTER") > -1)) {
		executeJavaScriptNaoSequencial();
		executeJavaScriptSequencial();
	}
	
	// -- INICIO -- executar javascript -- esta forma vai ser descontinuada
	// Definir numero de scripts a executar
	if ( document.getElementById('js_ajax_config') ) {
		eval(document.getElementById('js_ajax_config').innerHTML);
		document.getElementById('js_ajax_config').innerHTML='';
	} else {
		total_scripts=2;
	}
	
	// Executar o numero necessario de scripts
	for (i=1;i<total_scripts;i++) {
		if ( document.getElementById('js_ajax_'+i) ) {
			eval(document.getElementById('js_ajax_'+i).innerHTML);
		}
	}
	// -- FIM -- executar javascript -- esta forma vai ser descontinuada
}

// Executar javascript depois da resposta do servidor
//
// esta funcao executa javascript que estiver dentro de uma div com o nome 'java_script_tag_N'
// onde o N será o número dado à div, tipo N = 1 nome da div = 'java_script_tag_1'
// para executarmos várias div's com javascript temos que definir o número de div's que queremos executar
// para isso criamos uma div com o nome 'java_script_tag_counter' com o número de div's a executar 
// exemplo: <div id='java_script_tag_counter' style='position: absolute; top:-1000px; left:-1000px;'>2</div>
function executeJavaScriptSequencial()
{
	if (document.getElementById('java_script_tag_counter')) {
		
		// Defninir quantas div's com javascript sao para executar
		var contador_js_ajax=document.getElementById('java_script_tag_counter').innerHTML;
		if (!(contador_js_ajax)) contador_js_ajax=1;
		
		// Executamos o javascript dentro de cada uma das div's
		for (i=1;i<=contador_js_ajax;i++) {
			if (document.getElementById('java_script_tag_'+i)) {
				var d = document.getElementById('java_script_tag_'+i).getElementsByTagName("script")
				var t = d.length
				
				for (var x=0;x<t;x++){
					var newScript = document.createElement('script');
					newScript.type = "text/javascript";
					newScript.text = d[x].text;
					document.getElementById('java_script_tag_'+i).appendChild(newScript);
				}
			}
		}
	}
}
// Funcao para executar scripts especificamente por id
function executeJavaScriptNaoSequencial()
{
	
	if (document.getElementById('java_script_tag_counter2')) {
		
		// Defninir quantas div's com javascript sao para executar
		var str_ids=document.getElementById('java_script_tag_counter2').innerHTML;
		var array_ids_scripts=str_ids.split(",");
		
		contador_js_ajax=array_ids_scripts.length-1;
	
		// Executamos o javascript dentro de cada uma das div's
		for (i=0;i<=contador_js_ajax;i++) {
			if (document.getElementById('java_script_tag_'+array_ids_scripts[i])) {
				var d = document.getElementById('java_script_tag_'+array_ids_scripts[i]).getElementsByTagName("script")
				var t = d.length
				for (var x=0;x<t;x++){
					var newScript = document.createElement('script');
					newScript.type = "text/javascript";
					newScript.text = d[x].text;
					document.getElementById('java_script_tag_'+array_ids_scripts[i]).appendChild(newScript);
				}
			}
		}
	}
}
// -- FIM --

