// -----------------------------------------------------------------------------------
//
//  Desenvolvido por:
//  Rodrigo Fante
//	Fazedor de Site - http://www.fazedordesite.com
//	FS Preloader - Versão 1.2.0
//
// -----------------------------------------------------------------------------------

// COLOCAR AQUI O CAMINHO PARA IMAGEM QUE VAI ACIMAR DO TEXTO DE CARREGANDO 
// por enquanto aconselho imagens de no maximo 55px. de altura
// ou editar o codigo abaixo na mao para encaixa-la corretamente
var logo = "images/loading.gif";
// Link no logo para alguma pagina, bom em caso de publicidade.
// caso nao queira o link, basta deixar a variavel vazia assim: var linkLogo = "";
var linkLogo = "";

// Caso queira ao inves de uma imagem um arquivo flash(.swf) use a variavel abaixo
// caso contrario deixe vazia com "";
var arquivoFlash = "";
var larguraFlash = 0; // inserir a largura do seu flash, sem aspas sem nada, apenas o numero
var alturaFlash = 0;// inserir a altura do seu flash, sem aspas sem nada, apenas o numero

// Aqui é o texto que aparece no centro da tela, aconselho "carregando..."
var texto = "Carregando"; 
// Cor do texto de "carregando"
var corTexto = "#3175A6";
// Cor de fundo que cobre o site, aceita que escreva red, green, blue como CSS normal
var corFundo = "#FFFFFF"; 
// Tempo em segundos que a tela deve ficar depois de carregado o site
// Deixar 0 caso queira que suma de imediato
var tempo = 0;
// Texto que vai dentro do link para sumir a tela de carregando, ou saltar publicidade
var textoFechar = "";


//=====================================
function pegaMedidas(rolagem){
	// Pega altura e largura do conteudo da pagina
	var larguraPag, alturaPag;
	if (self.innerHeight) {	// Todos exceto IE entram aqui
		larguraPag = self.innerWidth;
		alturaPag = self.innerHeight;
	} else if(document.documentElement && document.documentElement.clientHeight) { // IE 6, IE 7 entraram aqui
		larguraPag = document.documentElement.clientWidth;
		alturaPag = document.documentElement.clientHeight;
	} else if (document.body) { // Nenhum testado entrou aqui, deixo por garantia
		larguraPag = document.body.clientWidth;
		alturaPag = document.body.clientHeight;
	}
	if(rolagem){ // se foi pedidos os valores incluindo barra de rolagem
		var rolagemH, rolagemV;
		
		if (window.innerHeight && window.scrollMaxY) {	// Nenhum testado entrou aqui, mas deixo por garantia
			rolagemH = document.body.scrollWidth;
			rolagemV = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ 
			// Opera9, Mac 3 para windows entram aqui
			rolagemH = document.body.scrollWidth;
			rolagemV = document.body.scrollHeight;
		} else if(document.body.offsetWidth) { //IE6, IE7, FF, Netscape entram aqui.
			rolagemH = document.body.offsetWidth;
			rolagemV = document.body.offsetHeight;
		}
		// Verifica se deve usar a altura do quadro do navegador ou da rolagem se existir
		if(rolagemV > alturaPag) {
			alturaPag = rolagemV;
			if(/Internet Explorer/.test(navigator.appName)) alturaPag+=30; // corrigir bug IE
		}
		// Verifica se deve usar a largura do quadro do navegador ou da rolagem se existir
		if(rolagemH > larguraPag) larguraPag = rolagemH;
	}
	valores = new Array(larguraPag,alturaPag); 
	return valores;
}

medidas = pegaMedidas(true); 
larguraPag = medidas[0];
alturaPag = medidas[1];

// INICIO CRIACAO DO ELEMENTOS
// pega o body
var objBody = document.getElementsByTagName("body").item(0);

// zera as margins e paddings do body, aconselhado mas nao necessario
objBody.style.margin="0px";
objBody.style.padding="0px";
// some com a barra de rolagem enquanto nao carregar tudo Firefox e Safari somente por enquanto
objBody.style.overflowX="hidden";
objBody.style.overflowY="hidden";

// cria a div que cobre todo o fundo
var objFundo = document.createElement("div");
objFundo.setAttribute('id','carrega_fundo'); // define o id
// CSS do objeto
objFundo.style.position="fixed"; 
objFundo.style.top="0px";
objFundo.style.left="0px";
objFundo.style.margin="0px";
objFundo.style.padding="0px";
objFundo.style.width=larguraPag+"px";
objFundo.style.height=alturaPag+"px";
objFundo.style.background=corFundo;
objFundo.style.zIndex=999;
objFundo.style.filter="Alpha(Opacity=90)"; // transparencia  IE

// Adiciona o objeto no Body do html
objBody.appendChild(objFundo);

if(arquivoFlash==""){
	// link vinculado ao logo 
	if(linkLogo!=""){
		var objLinkLogo = document.createElement("a");
		objLinkLogo.setAttribute('id','link_logo'); // define o id
		objLinkLogo.setAttribute('href', linkLogo);
		objFundo.appendChild(objLinkLogo);
	}
	
	// logo do site ou imagem de carregando GIF, JPG, PNG
	var objImagemLoad = document.createElement("img");
	objImagemLoad.setAttribute('id','img_loading');
	objImagemLoad.src=logo;
	objImagemLoad.style.display="none";
	objImagemLoad.style.position='fixed';
	objImagemLoad.style.left='50%';
	objImagemLoad.style.top='50%';
	objImagemLoad.style.border='none';
	objImagemLoad.onload = function(){
		this.style.display="";
		var mT = this.offsetHeight+5;
		var mL = Math.ceil(this.offsetWidth/2);
		if(mT<10) mt=10;
		if(mL<10) mL=10;		
		this.style.marginLeft=-mL+"px";
		this.style.marginTop=-mT+"px";
	}
	if(linkLogo!=""){
		objLinkLogo.appendChild(objImagemLoad);
	} else {
		objFundo.appendChild(objImagemLoad);
	}
} else {
	var me = Math.ceil(larguraFlash/2);
	var mt = alturaFlash;
	document.getElementById("carrega_fundo").innerHTML="<object id='flash_carrega' style='position:absolute;top:50%;left:50%; margin-left:-"+me+"px; margin-top:-"+mt+"px' rel='escondido' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='"+larguraFlash+"' height='"+alturaFlash+"'><param name='movie' value='"+arquivoFlash+"'><param name='quality' value='best'><embed src='"+arquivoFlash+"' style='position:absolute;top:50%;left:50%; margin-left:-"+me+"px; margin-top:-"+mt+"px' quality='best' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='"+larguraFlash+"' height='"+alturaFlash+"'></embed></object>";
}
var objTexto = document.createElement("div");
objTexto.setAttribute('id','carrega_texto'); // define o id
// CSS do objeto
objTexto.style.position="absolute"; 
objTexto.style.left='50%';
objTexto.style.top='50%';
objTexto.style.marginTop='10px';
objTexto.style.color=corTexto;
objTexto.style.fontSize='14px';
objTexto.style.fontWeight='bold';
objTexto.innerHTML = texto;

// Adiciona no objeto 
objFundo.appendChild(objTexto);

// Centraliza texto horizontalmente
var larguraT = document.getElementById("carrega_texto").offsetWidth;
document.getElementById("carrega_texto").style.marginLeft=-(larguraT/2)+"px";


// link de fechar 
var objLink = document.createElement("a");
objLink.setAttribute('id','fechar_carregando'); // define o id
objLink.setAttribute('href','javascript:void(0)');
objLink.onclick=fecha;
// CSS do objeto
objLink.style.position="absolute"; 
objLink.style.left='50%';
objLink.style.top='50%';
objLink.style.color=corTexto;
objLink.style.fontSize='10px';
objLink.style.margin='95px 0';
objLink.innerHTML = textoFechar;

// Adiciona no objeto 
objFundo.appendChild(objLink);

// Centraliza link horizontalmente
var larguraL = document.getElementById("fechar_carregando").offsetWidth;
document.getElementById("fechar_carregando").style.marginLeft=-(larguraL/2)+"px";

// FIM CRIACAO DO ELEMENTOS

function carregando(){
	objBody.style.overflowX="hidden";
	objBody.style.overflowY="hidden";
	document.getElementById("carrega_fundo").style.display="";
}
function fecha(){
	tempo=0;
	some();
}
function some(){
	if(tempo==0){
		document.getElementById("carrega_fundo").style.display="none";	
		objBody.style.overflowX="";
		objBody.style.overflowY="";
		// Esta parte è para corrigir o bug do flash ficar por cima do carregando
		var todosFla = document.getElementsByTagName("object"); // pega todos os fla 
		var totalFla = todosFla.length;
		for (var i=0; i<totalFla; i++){ 
			var cada_Fla = todosFla[i]; // varre os fla um por um
			if(cada_Fla.getAttribute("rel")!="escondido"){ // verifica se o FLA tem a rel=escondido
				cada_Fla.style.display=""; // caso nao tenha, exibe flash
			}
		}
	} else {
		tempo = Math.ceil(tempo*1000);
		setTimeout("some()",tempo);
		tempo=0;
	}
}
function adicionarEvento(objeto, TipoEvento, funcao){
	if(objeto.addEventListener){ // todos navegadores menos IE
		objeto.addEventListener(TipoEvento, funcao, false);
		return true;
	} else if (objeto.attachEvent){ // IE
		var r = objeto.attachEvent('on'+TipoEvento, funcao);
		return r;
	} else {
		return false;
	}
}
adicionarEvento(window,"load", some);