// ----------------------------------------------------------------------------------- // // Desenvolvido por: // Rodrigo Fante // Fazedor de Site - http://www.fazedordesite.com // FS Galeria de Imagens - Versão 2.4.1 // // Navegadores testados: // Internet Explorer 6, Internet Explorer 7, Firefox 2 // Opera 9, Netscape 8, Safari para Windows 3 // // Em caso de erros, sugestoes, peço que reportem para: // fazedordesite@gmail.com ou pelo site: http://www.fazedordesite.com // // Mantenha os créditos pelo menos - Totalmente gratis :D // // ----------------------------------------------------------------------------------- // || Tudo começa na ultima linha || // \/ \/ // // VARIAVEL GLOBAL COM TODAS IMAGENS var todasImagens = new Array; var Atual = ""; var proxLink = ""; var antLink = ""; var slide=false; var tempo=3000; // tempo de troca das imagens no slideshow var skin="http://www.fbl.kit.net/oficinadoouro/js/azul"; // se usar wordpress coloque o caminho do tema do wordpress aqui, caso contrario // deixe em branco. Exemplo: "wp-content/themes/temausado/" var wordpress = ""; //============================== // Mesma funçao utilizada em diversos frameworks facilita a construçao do codigo // um exemplo de seu utilizo, possui outros, eh ao usar o document.getElementById(id) usar apenas $(id) // isso permite uma grande reduçao de codigo e facilita a visualizaçao do mesmo function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } 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; } } //============================== function preCarrega(img,atual){ if(img!=""){ nova_img = new Image(); nova_img.onload=function(){ total = img.length; var porc = Math.ceil((atual*100)/total); $("preload_label").style.height=porc+"px"; proxima = atual+1; if(proxima document.body.offsetHeight){ // Opera9, Mac 3 para windows entram aqui rolagemH = document.body.scrollWidth; rolagemV = document.body.scrollHeight; } else { //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; } function cria_PL(){ var objBody = document.getElementsByTagName("body").item(0); // divs preload img var objQuadroPL = document.createElement("div"); objQuadroPL.setAttribute('id','preload_quadro'); objQuadroPL.style.position="absolute"; objQuadroPL.style.border="solid 1px #CCC"; objQuadroPL.style.background="#FFF"; objQuadroPL.style.bottom="10px"; objQuadroPL.style.right="10px"; objQuadroPL.style.display="none"; objQuadroPL.style.height="108px"; objQuadroPL.style.width="18px"; objQuadroPL.style.zIndex=999; objBody.appendChild(objQuadroPL); var objlabelPL = document.createElement("div"); objlabelPL.setAttribute('id','preload_label'); objlabelPL.style.position="absolute"; objlabelPL.style.border="solid 1px #CCC"; objlabelPL.style.background="#9EDF8E"; objlabelPL.style.left="3px"; objlabelPL.style.top="2px"; objlabelPL.style.height="0px"; objlabelPL.style.width="10px"; objlabelPL.style.zIndex=999; objQuadroPL.appendChild(objlabelPL); fadeIn("preload_quadro"); } function criaObjetos(){ // pega medidas da pagina medidas = pegaMedidas(true); larguraPag = medidas[0]; alturaPag = medidas[1]; // criamos os elementos necessarios para exibir a imagem maior var objBody = document.getElementsByTagName("body").item(0); // cria a div transparente que cobre todo o fundo var objFundo = document.createElement("div"); objFundo.setAttribute('id','fundo_img'); // define o id // CSS do objeto objFundo.style.position="absolute"; objFundo.style.top="0px"; objFundo.style.left="0px"; objFundo.style.width=larguraPag+"px"; objFundo.style.height=alturaPag+"px"; objFundo.style.background="#000"; objFundo.style.zIndex=998; objFundo.style.MozOpacity=.7; // transparencia FF objFundo.style.opacity=.7; // transparencia FF, Opera, Safari, Netscape objFundo.style.filter="Alpha(Opacity=70)"; // transparencia IE // Adiciona o objeto no Body do html objBody.appendChild(objFundo); // cria a div onde sera inserida a imagem var objQuadroext = document.createElement("div"); objQuadroext.setAttribute('id','quadro'); objQuadroext.style.position="absolute"; objQuadroext.style.border="solid 2px #CCC"; objQuadroext.style.top="50%"; objQuadroext.style.left="50%"; objQuadroext.style.width="50px"; objQuadroext.style.height="50px"; objQuadroext.style.background="#FFF"; objQuadroext.style.padding="5px"; objQuadroext.style.zIndex=999; objBody.appendChild(objQuadroext); // cria a div do cabeçalho var objTopo = document.createElement("div"); objTopo.setAttribute('id','topo_quadro'); objTopo.style.display='none'; objTopo.style.width="100%"; objTopo.style.height="25px"; objTopo.style.position='relative'; objQuadroext.appendChild(objTopo); // cria o link de fechar a janela var objFechar = document.createElement("a"); objFechar.setAttribute('id','Fechar'); objFechar.setAttribute('href','javascript:void(0)'); objFechar.style.position='absolute'; objFechar.style.right='5px'; objFechar.onclick = function() { $("quadro").style.display="none"; slide=false; $("fundo_img").style.display="none"; slideShow(); return false; } objTopo.appendChild(objFechar); // cria um span para o titulo var objTitulo = document.createElement("span"); objTitulo.setAttribute('id','titulo_quadro'); objTitulo.style.fontWeight='bold'; objTitulo.style.position='absolute'; objTitulo.style.left='5px'; objTopo.appendChild(objTitulo); // cria a imagem de fechar dentro do link fechar var objimgFechar = document.createElement("img"); objimgFechar.setAttribute('id','imgFechar'); objimgFechar.src=skin+'/fechar.jpg'; objimgFechar.alt='Fechar'; objimgFechar.style.border='0'; objFechar.appendChild(objimgFechar); // cria a imagem loading var objImagemLoad = document.createElement("img"); objImagemLoad.setAttribute('id','img_loading'); objImagemLoad.src=skin+'/loading.gif'; objImagemLoad.style.position='absolute'; objImagemLoad.style.left='50%'; objImagemLoad.style.top='50%'; objImagemLoad.style.margin='-17px 0 0 -17px'; objQuadroext.appendChild(objImagemLoad); // cria a imagem vazia var objImagem = document.createElement("img"); objImagem.setAttribute('id','img_maior'); objImagem.style.display='none'; objQuadroext.appendChild(objImagem); // cria a div do rodape var objRodape = document.createElement("div"); objRodape.setAttribute('id','rodape_quadro'); objRodape.style.display='none'; objRodape.style.width="100%"; objRodape.style.height="25px"; objRodape.style.position='relative'; objQuadroext.appendChild(objRodape); // cria o link de ir a imagem anterior var objAnterior = document.createElement("a"); objAnterior.setAttribute('id','link_anterior'); objAnterior.setAttribute('href','javascript:void(0)'); objAnterior.style.position='absolute'; objAnterior.style.left='5px'; objAnterior.style.bottom='0'; objAnterior.onclick = function() { preparaImg(todasImagens[antLink][1], todasImagens[antLink][2]); return false; } objRodape.appendChild(objAnterior); // cria o icone de ir a imagem anterior var objimgAnterior = document.createElement("img"); objimgAnterior.setAttribute('id','imgAnterior'); objimgAnterior.src=skin+'/anterior.jpg'; objimgAnterior.style.border='0'; objAnterior.appendChild(objimgAnterior); // cria o link de ir a imagem posterior var objPosterior = document.createElement("a"); objPosterior.setAttribute('id','link_posterior'); objPosterior.setAttribute('href','javascript:void(0)'); objPosterior.style.position='absolute'; objPosterior.style.right='5px'; objPosterior.style.bottom='0'; objPosterior.onclick = function() { preparaImg(todasImagens[proxLink][1], todasImagens[proxLink][2]); return false; } objRodape.appendChild(objPosterior); // cria o icone de ir a imagem posterior var objimgPosterior = document.createElement("img"); objimgPosterior.setAttribute('id','imgPosterior'); objimgPosterior.src=skin+'/posterior.jpg'; objimgPosterior.style.border='0'; objPosterior.appendChild(objimgPosterior); // cria slide var objSlide = document.createElement("a"); objSlide.setAttribute('id','slide'); objSlide.setAttribute('href','javascript:void(0)'); objSlide.setAttribute('title','Clique para ativar o Slideshow'); objSlide.style.position='absolute'; objSlide.style.left='50%'; objSlide.style.bottom='2px'; objSlide.style.marginLeft='-70px'; objSlide.onclick = function() { if(slide==false) slide = true; else slide=false; slideShow(); return false; } objSlide.innerHTML = "Modo Slideshow desativado"; objRodape.appendChild(objSlide); } function fadeIn(id, valor){ var obj = $(id); if(!valor || valor == undefined) valor=0; if(valor < 100){ valor+=5; alpha = valor/100; obj.style.MozOpacity=alpha; obj.style.filter="alpha(opacity="+valor+")"; obj.style.opacity = alpha; if(obj.style.display == "none") obj.style.display = ""; setTimeout("fadeIn('"+id+"',"+valor+")",1); } } function fadeOut(id, valor){ var obj = $(id); if(valor == undefined) valor=100; if(valor > 0){ valor-=5; alpha = valor/100; obj.style.MozOpacity=alpha; obj.style.filter="alpha(opacity="+valor+")"; obj.style.opacity = alpha; if(obj.style.display == "none") obj.style.display = ""; setTimeout("fadeOut('"+id+"',"+valor+")",1); } } function slideShow(){ if(slide==true){ $("link_anterior").style.display="none"; $("link_posterior").style.display="none"; totalImgs = todasImagens.length; if(proxLink>=totalImgs) { proxLink = 0; antLink=-1; } document.getElementById("slide").innerHTML = "Modo Slideshow ativado"; setTimeout("preparaImg(todasImagens[proxLink][1], todasImagens[proxLink][2], 'slideshow')",tempo); setTimeout("slideShow()",tempo); } else { var Ultima = todasImagens.length-1; document.getElementById("slide").innerHTML = "Modo Slideshow desativado"; if(Atual==Ultima) { proxLink = 0; antLink=Ultima-1; } if(Atual==0) { $("link_anterior").style.display="none"; $("link_posterior").style.display=""; }else if(Atual==Ultima){ $("link_posterior").style.display="none"; $("link_anterior").style.display=""; } else { $("link_anterior").style.display=""; $("link_posterior").style.display=""; } } } function preparaImg(img, titulo, tipo){ if(tipo==undefined) tipo = "ok"; if(tipo=="ok" || (tipo=="slideshow"&&slide==true)){ totalImgs = todasImagens.length; var Ultima = totalImgs-1; for(var i=0;i400?largura_quadro:400; //alert(largura_quadro); $("quadro").style.textAlign='center'; $("quadro").style.width=largura_quadro+"px"; $("quadro").style.height=altura_quadro+"px"; $("topo_quadro").style.display=""; $("rodape_quadro").style.display=""; $("titulo_quadro").innerHTML=titulo; // titulo do quadro // Controla se a imagem atual é a primeira ou a ultima imagem // Esconde os icones de anterior ou posterior se for o caso // atribui o link para proximas imagens if(tipo=="slideshow"){ $("link_anterior").style.display="none"; $("link_posterior").style.display="none"; } else { if(Atual==0) { if(totalImgs>1){ $("link_anterior").style.display="none"; $("link_posterior").style.display=""; } else { $("slide").style.display="none"; $("link_anterior").style.display="none"; $("link_posterior").style.display="none"; } }else if(Atual==Ultima){ if(totalImgs>1){ $("link_posterior").style.display="none"; $("link_anterior").style.display=""; } else { $("slide").style.display="none"; $("link_anterior").style.display="none"; $("link_posterior").style.display="none"; } } else { if(totalImgs>1){ $("link_anterior").style.display=""; $("link_posterior").style.display=""; } else { $("slide").style.display="none"; $("link_anterior").style.display="none"; $("link_posterior").style.display="none"; } } } } //tratamento de erros $("img_maior").onerror=function(){ alert("Erro: Impossivel carregar a imagem"); $("quadro").style.display="none"; $("fundo_img").style.display="none"; $("img_loading").style.display="none"; $("img_maior").src='loading.gif'; // sem essa linha ocorre um erro que somem os botoes anterior/posterior } // altera o src da imagem, antes ele ficava em cima do onload, joguei para baixo // por garantia, para nao correr o risco de carregar a imagem antes de ler toda funçao // o que causaria erro $("img_maior").src=img; } } function ajustaQuadro(){ if($("quadro")){ centralizaObj($("quadro").offsetWidth,$("quadro").offsetHeight); medidas = pegaMedidas(true); larguraPag = medidas[0]; alturaPag = medidas[1]; $("fundo_img").style.height = alturaPag+"px"; $("fundo_img").style.width = larguraPag+"px"; } } function checaLinks(){ preCarregarImgs(); var todosLinks = document.getElementsByTagName("a"); // pega todos os links for (var i=0; i