// Anexa função de inicialização ao evento de load do documento
if(window.attachEvent)
	window.attachEvent("onload", ampSetarExibirAmostraImagem);
else if(window.addEventListener)
	window.addEventListener("load", ampSetarExibirAmostraImagem, false);

// verificar quais imagens teram amostra grande
function ampSetarExibirAmostraImagem() {
	//setar exibir exemplo da imagem ampliada
	var imgs = document.getElementsByTagName("img");
	for(var i = 0;i < imgs.length; i++) {
		if(imgs[i].getAttribute("ampliar") == "sim") {
			imgs[i].onmouseover = function() {ampExibirImagemGrande(this, this.src)};
			imgs[i].onmouseout = function() {ampEscondeImagemGrande()};
		}
	}
}

// exibir imagem grande ao lado do thumbnail
var ampImageAguarde = {src:"util/aguarde24x24.gif", width:24, height:24};
var ampIframeSombraImagem = null;
var ampDivImagem = null;
var ampImageGrande = null;
var ampIdImageAmpliada = "ampImagemAmostraAmpliada";
var ampNavegadorIE7 = ampBrowserIE7();
function ampExibirImagemGrande(ref, arq) {
	ampImageGrande = {objref: ref, src: arq, timer: null};
	ampImageGrande.timer = setTimeout("ampMostraQuadroImagem()", 500);
}

function ampMostraQuadroImagem() {
	if(ampImageGrande == null) return;
	var ref = ampImageGrande.objref;
	var arq = ampImageGrande.src;
	var doc = ampDocumentBody();
	var divImgLarg = (ampImageAguarde.src != "" ? ampImageAguarde.width + 20 : 30);
				
	if(!ampNavegadorIE7 && document.all && !ampIframeSombraImagem) {
		ampIframeSombraImagem = document.createElement("IFRAME");
		ampIframeSombraImagem.src = "about:blank";
		ampIframeSombraImagem.frameBorder = "0";
		ampIframeSombraImagem.scrolling = "no";
		ampIframeSombraImagem.style.position = "absolute";
		ampIframeSombraImagem.style.visibility = "hidden";
		ampIframeSombraImagem.style.width = "1px";
		ampIframeSombraImagem.style.height = "1px";
		document.body.appendChild(ampIframeSombraImagem);
	}
	
	if(!ampDivImagem) {
		ampDivImagem = document.createElement("DIV");
		ampDivImagem.style.border = "1px solid #E0E0E0";
		ampDivImagem.style.backgroundColor = "#FFFFFF";
		ampDivImagem.style.filter = "progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#808080,strength=4);"
		ampDivImagem.style.position = "absolute";
		ampDivImagem.style.visibility = "hidden";
		ampDivImagem.style.padding = "3px";
		if(ampImageAguarde.src != "") {
			ampDivImagem.style.backgroundImage = "url(" + ampImageAguarde.src + ")";
			ampDivImagem.style.backgroundRepeat = "no-repeat";
			ampDivImagem.style.backgroundPosition = "center center";
			ampDivImagem.style.width = ampPixels(divImgLarg);
			ampDivImagem.style.height = ampPixels(ampImageAguarde.height + 10);
		}
		else {
			ampDivImagem.style.width = ampPixels(divImgLarg);
			ampDivImagem.style.height = ampPixels(divImgLarg);		
		}
	}
		
	if(ampDivImagem.style.visibility == "hidden") {
		var rect = ampGetClienteRect(ref);
		var metade = parseInt(doc.clientWidth / 2);
		ampDivImagem.setAttribute("srcLeft", rect.left);
		if(rect.left < metade) {
			ampDivImagem.style.left = ampPixels(rect.right + 10);
			ampDivImagem.style.top = ampPixels(rect.top - 10);
			ampDivImagem.setAttribute("alinhar", "dir");
		} else {
			var larg = (ampDivImagem.clientWidth == 0 ? divImgLarg : ampDivImagem.clientWidth);
			ampDivImagem.style.left = ampPixels(rect.left - larg - 10);
			ampDivImagem.style.top = ampPixels(rect.top - 10);
			ampDivImagem.setAttribute("alinhar", "esq");
		}

		ampDivImagem.style.visibility = "visible";
		ampExibirIframeAtrasDoampDivImagem();
	
		var img = document.createElement("IMG");
		img.style.visibility = "hidden";
		img.id = ampIdImageAmpliada;
		img.onload = ampCarregouImagemGrande;
		img.error = ampErrorCarregouImagemGrande;
		ampDivImagem.appendChild(img);
		document.body.appendChild(ampDivImagem);
		img.src = arq;
	}
}

ampCarregouImagemGrande = function() {
	var img = document.getElementById(ampIdImageAmpliada);
	if(img) {
		var doc = ampDocumentBody();
		var maxWidth = parseInt(doc.clientWidth * 0.4);
		var maxHeight = parseInt(doc.clientHeight * 0.4);
	
		if(img.width > maxWidth || img.height > maxHeight) {
			var widthOrig = img.width;
			var heightOrig = img.height;
			var fx = widthOrig / maxWidth;
			var fy = heightOrig / maxHeight;
			var fator = Math.max(fx, fy)
			if(fator < 1) fator = 1;
			img.width = parseInt(widthOrig / fator);
			img.height = parseInt(heightOrig / fator);
		}
	
		ampDivImagem.style.width = ampPixels(img.width);
		ampDivImagem.style.height = ampPixels(img.height);
		var rect = ampGetClienteRect(ampDivImagem);
		var alinhar = ampDivImagem.getAttribute("alinhar");
		if(alinhar == "esq") {
			var left = parseInt(ampDivImagem.getAttribute("srcLeft")) - 10;
			ampDivImagem.style.left = ampPixels(left - 10 - img.width);
		}
		var bdaltu = doc.scrollTop + doc.clientHeight;
		if (rect.bottom > bdaltu) {
			ampDivImagem.style.top = ampPixels(rect.top - (rect.bottom - bdaltu));
		}
	
		ampExibirIframeAtrasDoampDivImagem();
		img.style.visibility = "visible";
	}
}

// Erro ao carregar imagem - Esconder
ampErrorCarregouImagemGrande = function() {
	ampEscondeImagemGrande();
}

// Esconder visualizador
function ampEscondeImagemGrande() {
	if(ampImageGrande != null && ampImageGrande.timer != null)
		clearTimeout(ampImageGrande.timer);
	ampImageGrande = null;
	if(ampDivImagem && ampDivImagem.style.visibility == "visible") {
		ampDivImagem.style.visibility = "hidden";
		ampExibirIframeAtrasDoampDivImagem();
		var img = document.getElementById(ampIdImageAmpliada);;
		if(img) ampDivImagem.removeChild(img);
	}
}

function ampExibirIframeAtrasDoampDivImagem() {
	if(ampIframeSombraImagem && ampDivImagem) {
		ampIframeSombraImagem.style.visibility = ampDivImagem.style.visibility;
		if(ampDivImagem.style.visibility == "visible") {
			var rect = ampGetClienteRect(ampDivImagem);
			ampIframeSombraImagem.style.left = ampPixels(rect.left);
			ampIframeSombraImagem.style.top = ampPixels(rect.top);
			ampIframeSombraImagem.style.width = ampPixels(rect.width + 3);
			if(rect.height > 10)
				ampIframeSombraImagem.style.height = ampPixels(rect.height - 10);
		}
	}
}

function ampGetClienteRect(elem) {
	if(elem) {
		var pai = elem.offsetParent;
		var px = elem.offsetLeft;
		var py = elem.offsetTop;
		while(pai) {
			px += pai.offsetLeft;
			py += pai.offsetTop;
			pai = pai.offsetParent;
		}
		return {left:px, top:py, right:px + elem.offsetWidth, bottom:py + elem.offsetHeight, width:elem.clientWidth, height:elem.clientHeight};
	} else {
		return null;
	}
}

function ampPixels(vlr) {
	if(vlr.toString().indexOf("px") > 0)
		return vlr;
	else
		return vlr.toString() + "px";
}

function ampDocumentBody() {
	if(document.doctype) {
		var tipo = document.doctype.publicId.toLowerCase();
		return (tipo.indexOf("xhtml") > 0 ? document.documentElement : document.body);
	}
	else {
		return (document.documentElement.clientHeight != 0 ? document.documentElement : document.body);
	}
}

function ampBrowserIE7() {
	var ampIE7 = false;
	/*@cc_on
	ampIE7 = @_jscript_version == '5.7';
	@*/
	return ampIE7;
}

