// frszoom v1.0
// criado por furious
/* PRE-DEFININDO VARIAVEIS */
var iDfrs = "frszoom";
var iDfrsi = "frsimg";
var iDfrsie = "setaesq";
var iDfrsid = "setadir";
var iDfrstit = "frstitle";
var srCfrsfi = "imagens/frszoom-fechar.gif";
var srCloader = "imagens/loader.gif";
var galeria_foto;
var imgtemp = new Image();
var preMinis = new Array();
var miniLoaded = new Array();

/* FUNÇOES BASICAS */
function obj(i) { return document.getElementById(i); }
function objtag(tag) { return document.getElementsByTagName(tag); }
function hid(i) { i.style.visibility = "hidden"; }
function shw(i) { i.style.visibility = "visible"; }
function cria(tag) { return document.createElement(tag);  }
function rem(i) { document.removeChild(obj(i)); }
function barraY() {
	if(typeof(window.pageYOffset) == 'number') return window.pageYOffset;
	else if(document.body && (document.body.scrollTop))return document.body.scrollTop;
	else if(document.documentElement && (document.documentElement.scrollTop)) return document.documentElement.scrollTop;
	else return window.scrollY ? window.scrollY : 0;	
}
function isfrsZoom(i) { 
	if(i.rel.indexOf("frszoom[") != -1) return true;
	else return false; 
}
function getGname(i) { 
	g = i.rel.replace("frszoom[", "").replace("]", "").split(",");
	return g[0]; 
}
function getGmini(i) { 
	g = i.rel.replace("frszoom[", "").replace("]", "").split(",");
	mini = g[1] ? g[1].split(":") : false; 
	if(mini) return mini[1] ? mini[1] : 20;
	else return false;
}
function getGsub(i) { 
	g = i.rel.replace("frszoom[", "").replace("]", "").split(",");
	return g[2] ? true : false; 
}
function addEv(i,e,f){
	if(i.addEventListener) i.addEventListener(e, f, true);
	if(i.attachEvent) i.attachEvent("on"+e, f);
}
function remEv(i,e,f){
	if(i.detachEvent) i.detachEvent("on"+e, f);
	else i.removeEventListener(e, f, false);
}

/* FUNÇOES AVANÇADAS */
function InstalarFRSZoom(){
	var imgloader = new Image();
	imgloader.src = srCloader;
	frsz = cria("div");
	frsi = cria("div");
	frsie = cria("div");
	frsid = cria("div");
	frstit = cria("div");
	frsfec = cria("div");
	frsfeci = cria("img");
	frsz.id = iDfrs;
	frsi.id = iDfrsi;
	frsie.id = iDfrsie;
	frsid.id = iDfrsid;
	frstit.id = iDfrstit;
	frsfec.id = "frsfecha";
	frsfeci.src = srCfrsfi;
	frsfeci.title = "Fechar";
	addEv(frsfeci, "click", function() { hid(frsz); });
	addEv(frsid, "click", function() { SetasGaleria("proxima"); });
	addEv(frsie, "click", function() { SetasGaleria("anterior"); });
	hid(frsz);
	document.body.appendChild(frsz);
	frsz.appendChild(frsfec);
	frsfec.appendChild(frsfeci);
	frsz.appendChild(frsi);
	frsi.appendChild(frsie);
	frsi.appendChild(frsid);
	frsz.appendChild(frstit);
	CriarGalerias();
}

function SetasGaleria(metodo){
	var ancs = objtag("a");
	if(metodo == "proxima"){
	 for(var x=galeria_foto; x<ancs.length; x++){
		x++;
		if(isfrsZoom(ancs[x])){
		 if(getGname(ancs[x]) == getGname(ancs[galeria_foto])){
			AbrirImagem(ancs[x]);
			galeria_foto = x;
			break;
		 }
		}
	 }
	} else {
	 for(var x=galeria_foto; x>0; x--){
		x--;
		if(isfrsZoom(ancs[x])){
		 if(getGname(ancs[x]) == getGname(ancs[galeria_foto])){
			AbrirImagem(ancs[x]);
			galeria_foto = x;
			break;
		 }
		}
	 }
	}
}

function CriarGalerias(){
	var ancs = objtag("a");
	var i = 0;
	for(var x=0; x<ancs.length; x++){
		if(isfrsZoom(ancs[x])){
		 if(getGmini(ancs[x])){
			var index = new Number(x);
			preMinis[i] = new Image()
			preMinis[i].src = ancs[x].href;
			preMinis[i].id = x;
			miniLoaded[i] = true;
			ancs[x].innerHTML = "";
			ancs[x].id = x;
			i++;
			var divmini = cria("div");
			divmini.className = "frsgaleria";
			divmini.id = "mini["+x+"]";
			ancs[x].appendChild(divmini);
		 }
//		 addEv(ancs[x], "click", function() { AbrirImagem(this); galeria_foto = x; alert(x); return false; });
		 ancs[x].onclick = function() { AbrirImagem(this); return false; };
		}
	}
	checkMinis();
}

function AbrirImagem(anc){
	var frsimg = obj(iDfrsi);
	var frszoom = obj(iDfrs);
	var frstitle = obj(iDfrstit);
	imgtemp = new Image();
	imgtemp.src = anc.href;
	shw(frszoom);
	galeria_foto = anc.id;
	frstitle.innerHTML = anc.title ? anc.title : "";
	frsimg.style.backgroundImage = "url('"+srCloader+"')";
	checkLoad();
	return false;
}

function checkLoad(){
	if(imgtemp.complete){
		var frsimg = obj(iDfrsi);
		var frszoom = obj(iDfrs);
		var frsimgd = obj(iDfrsid);
		var frsimge = obj(iDfrsie);
		var x = screen.availWidth / 2; 
		x = x - imgtemp.width / 2;
		var y = screen.availHeight / 3;
		y = y - imgtemp.height / 2 + barraY();
		frszoom.style.top = y;
		frszoom.style.left = x;
		frsimg.style.width = imgtemp.width;
		frsimg.style.height = imgtemp.height;
		frsimgd.style.height = imgtemp.height;
		frsimge.style.height = imgtemp.height;
		frsimg.style.backgroundImage = "url('"+imgtemp.src+"')";
	} else {
		imgTimer = setTimeout("checkLoad()", 1000);
	}
}

function checkMinis(){
	var naoCompletas = false;
	var ancs = objtag("a");
	for(var x=0; x<preMinis.length; x++){
	 if(miniLoaded[x]){
	  if(preMinis[x].complete){
		preMinis[x].height = preMinis[x].height * getGmini(ancs[preMinis[x].id]) / 100;
		preMinis[x].width = preMinis[x].width * getGmini(ancs[preMinis[x].id]) / 100;
		obj("mini["+preMinis[x].id+"]").style.width = preMinis[x].width;
		obj("mini["+preMinis[x].id+"]").style.height = preMinis[x].height;
		var frstitletxt = ancs[preMinis[x].id].title ? ancs[preMinis[x].id].title : "sem título";
		obj("mini["+preMinis[x].id+"]").appendChild(preMinis[x]);
		if(getGsub(ancs[preMinis[x].id])) obj("mini["+preMinis[x].id+"]").innerHTML += "<br />" + frstitletxt;
		miniLoaded[x] = false;
	  } else {
		naoCompletas = true;
		obj("mini["+preMinis[x].id+"]").style.width = 129;
		obj("mini["+preMinis[x].id+"]").style.height = 86;
		obj("mini["+preMinis[x].id+"]").style.backgroundImage = "url("+srCloader+")";
		obj("mini["+preMinis[x].id+"]").style.backgroundPosition = "center center";
		obj("mini["+preMinis[x].id+"]").style.backgroundRepeat = "no-repeat";
	  }
	 }
	}
	if(naoCompletas){
		miniTimer = setTimeout("checkMinis()", 1000);
	}
}