﻿var popLayout = '<h1>%tit</h1><div class="dados">%pg<\/div><div class=\"fechar\"><a href=\"javascript:closePopup()\" title=\"Fecha a popup\">Fechar<\/a>';

function getXMLHttp(){
	try{
		xmlhttp = new XMLHttpRequest();
		//xmlhttp.overrideMimeType('text/html');
	}catch(ee){
		try{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(E){
				xmlhttp = false;
			}
		}
	}
	
	return xmlhttp;
}

function carregaAjax(container,url,msg,onfinish,method){
	//
	// Erros:
	// 1 - Browser não suporta AJAX
	// 2 - Erro no retorno da requisão
	//
	if (msg == null) msg = "<p class=\"carregando\">Carregando...</p>";
	if (container != null) container.innerHTML = msg;
	if (method == null) method = "GET";
	
	hreq = getXMLHttp();
	if (!hreq){
		if (onfinish != null) onfinish(false, 1);
		else alert("Seu browser não suporta esta opção!");
		return;
	}
	hreq.open(method, url, true);
	
	hreq.onreadystatechange = function() {
		if (hreq.readyState == 4) {
			if (hreq.status == 200) {
				result = hreq.responseText;
				if (container != null) container.innerHTML = result;
				onfinish(true, result);
			} else {
				onfinish(false, 2);
			}
		}
	}
	hreq.send(null);
	
	return hreq;
	
}
//*/

function fixaPopup(){
    document.escuropopup.style.height = getHeight(document.body);
    if (document.popupcomp){
        var aux = document.documentElement.clientWidth * 98 / 100;
        document.divpopup.style.width = aux + "px";
        document.divpopup.style.left = "50%";
        document.divpopup.style.marginLeft = ((aux/2) * -1) + "px";
        aux = document.documentElement.clientHeight * 98 / 100;
        document.divpopup.style.height = aux + "px";
        document.divpopup.style.top = "50%";
        document.divpopup.style.marginTop = ((aux/2) * -1) + "px";
    }
    document.divpopup.style.top = document.documentElement.scrollTop + (document.documentElement.clientHeight/2) + "px";
    document.divpopup.style.left = document.documentElement.scrollLeft + (document.documentElement.clientWidth/2) + "px";
}

removeEscuro = function(){document.body.removeChild(document.escuropopup);document.escuropopup = null;}

function closePopup(){
    document.body.removeChild(document.divpopup);
    document.divpopup = null;
    fadeIn(document.escuropopup, 0, 10, .2, removeEscuro);
    setTimeout("if (document.escuropopup != null) document.body.removeChild(document.escuropopup)", 1000);
    if (document.fixapopupint != null) clearInterval(document.fixapopupint);
    if(document.popupreq != null) document.popupreq.abort();
    document.body.className = document.body.className.replace(" exibindopopup", "");
    document.body.className = document.body.className.replace("exibindopopup", "");
    
    var tgs = Array("object","embed");
	for (var j = 0; j < tgs.length; j++){
		var objs = document.getElementsByTagName(tgs[j]);
		for (var i = 0; i < objs.length; i++){
			if (objs[i]._popupHidden){
				objs[i].style.visibility = "visible";
				objs[i]._popupHidden = false;
			}
		}
	}
}

popAnc = function(par){
	var div = document.getElementById("exibepopup");
	var execfade = false;
	if (!div){
	    div = document.createElement("div");
	    div.id = "exibepopup";
	    execfade = true;
	}
	var url, tit;
	
	document.divpopup = div;
	if (par.width && par.height){
	    div.style.width = par.width;
	    div.style.height = par.height;
	    div.style.top = "50%";
	    div.style.marginTop = "-" + (parseInt(parseInt(par.height) / 2)) + "px";
	    div.style.left = "50%";
	    div.style.marginLeft = "-" + (parseInt(parseInt(par.width) / 2)) + "px";
	}
	div.className = "popup" + (par.tamanho ? " tm_" + par.tamanho: "");
	
	if (par.ajax){
		div.className += " carregando";
		fim = function(ret,erroId){
		    document.popupreq = null;
			if (!ret)
				location.href = par.ajax;
			else{
				div.className = "popup tm_" + par.tamanho;
				//ativaPopups(document.divpopup);
			}
		}
		
		document.popupreq = carregaAjax(null, par.ajax, null, fim);
	}else if (par.ajaxload){
		div.className += " carregando";
		div.innerHTML = "<a href=\"javascript:closePopup()\" class=\"fechar\">[Cancelar]</a><div class=\"msgcarregando\">Carregando...<\/div>";
		fim = function(ret,content){
		    document.popupreq = null;
			if (!ret){
				location.href = par.ajaxload;
			}else{
				div.className = "popup tm_" + par.tamanho;
				div.innerHTML = popLayout.replace("%tit", unescape(div.tit).replace(/\+/g," "));
				div.innerHTML = div.innerHTML.replace("%pg", content);
				//ativaPopups(document.divpopup);
			}
		}
		
		url = par.ajaxload.split("popupload.aspx?")[1];
		url = url.split("pg=")[1];
		div.tit = url.split("t=")[1];
		
		if (url.indexOf("&") >= 0){url=url.split("&"); url = url[0] + ".aspx?" + url[1];}
		else url += ".aspx";
		
		document.popupreq = carregaAjax(null, url, null, fim);
	}else
		div.innerHTML = par.content;
	if (execfade){
	    var escuro = document.createElement("div");
	    document.escuropopup = escuro;
	    escuro.className = "esconde";
	    setOpacity(escuro, 0);
	    fadeOut(escuro, .8, 10, .2);
	    document.body.appendChild(escuro);
	    setTimeout(function(){document.body.appendChild(div);}, 100);
	    escuro.onclick = function(){
	        closePopup()
        }
	}
	
	document.fixapopupint = null;
	if (navigator.userAgent.indexOf("MSIE") >= 0){
	    if (parseInt(navigator.userAgent.substr(navigator.userAgent.indexOf("MSIE") + 5)) <= 6){
	        if (par.tamanho == "completo") document.popupcomp = true;
	        else document.popupcomp = false;
	        document.fixapopupint = setInterval("fixaPopup()", 100);
	    }
	}
	
	if (!document.body.className) document.body.className = "exibindopopup";
	else document.body.className += " exibindopopup";
	
		var tgs = Array("object","embed");
	for (var j = 0; j < tgs.length; j++){
		var objs = document.getElementsByTagName(tgs[j]);
		for (var i = 0; i < objs.length; i++){
			if (objs[i].style.visibility != "hidden"){
				objs[i].style.visibility = "hidden";
				objs[i]._popupHidden = true;
			}
		}
	}
}

function fixaTamanho(){
    /*if (document.divpopup == null){
        clearInterval(document.tmfixa);
        return;
    }*/
    try{
        var img = getElementsByClass("img",document.divpopup,"div")[0];
        document.divpopup.style.height = (parseInt(img.getElementsByTagName("img")[0].height) + 50) + "px";
        document.divpopup.style.width = img.getElementsByTagName("img")[0].width + "px";
        document.divpopup.style.marginTop = "-" + ((parseInt(img.getElementsByTagName("img")[0].height) + 50)/2) + "px";
        document.divpopup.style.marginLeft = "-" + (parseInt(img.getElementsByTagName("img")[0].width)/2) + "px";
    }catch(e){}
}

function tamanhoLupa(lupa, atual, mul){
    lupa.style.width = (z.getElementsByTagName("img")[0].width - 3) + "px";
}

function initZoom(){
    var dz = getElementsByClass("zoom", document, "div");
    var j = 0, a, img, z;
    var lupa, lkamp, lkprox, lkant, pimg;
    for (var i = 0; i < dz.length; i++){
        z = dz[i].getElementsByTagName("ul")[0];
        
        lupa = document.createElement("div");
        lupa.className = "lupa";
        lupa.style.width = (z.getElementsByTagName("img")[0].width - 3) + "px";
        
        lkamp = document.createElement("a");
        lkamp.className = "amp";
        lkamp.title = "Ver foto ampliada";
        lkamp.setAttribute("href", "#");
        lkamp.appendChild(document.createTextNode("Ampliar"));
		lkamp.style.width = (z.getElementsByTagName("img")[0].width - 68) + "px";
		
        lkant = document.createElement("a");
        lkant.className = "ant";
        lkant.appendChild(document.createTextNode("Anterior"));
        lkant.setAttribute("href", "#");
        setOpacity(lkant, .3);
        
        lkprox = document.createElement("a");
        lkprox.className = "prox";
        lkprox.appendChild(document.createTextNode("Próximo"));
        lkprox.setAttribute("href", "#");
        
        lupa.appendChild(lkamp);
        lupa.appendChild(lkant);
        lupa.appendChild(lkprox);
        
        dz[i].appendChild(lupa);
        z.atual = 0;
        
        lkamp.onclick = function(){
            var mul = this.parentNode.parentNode.getElementsByTagName("ul")[0];
            popAnc(mul.getElementsByTagName("li")[mul.atual].par);
            return false;
        }
        
        lkant.onclick = function(){
            var pn = this.parentNode.parentNode.getElementsByTagName("ul")[0];
            var lis = pn.getElementsByTagName("li");
            if (pn.atual > 0){
                lis[pn.atual].style.display = "none";
                lis[pn.atual-1].style.display = "block";
                pn.atual -= 1;
                if (pn.atual <= 0) setOpacity(this, .3);
                else setOpacity(this, 1);
                
                this.parentNode.style.width = (pn.getElementsByTagName("li")[pn.atual].getElementsByTagName("img")[0].width - 3) + "px";
				var aamp = getElementsByClass("amp", this.parentNode, "a")[0];
				aamp.style.width = (pn.getElementsByTagName("li")[pn.atual].getElementsByTagName("img")[0].width - 68) + "px";
                
                var p = getElementsByClass("prox", this.parentNode, "a")[0];
                if (pn.atual >= lis.length - 1) setOpacity(p, .3);
                else setOpacity(p, 1);
            }
            return false;
        }
        
        lkprox.onclick = function(){
            var pn = this.parentNode.parentNode.getElementsByTagName("ul")[0];
            var lis = pn.getElementsByTagName("li");
            if (pn.atual < lis.length - 1){
                lis[pn.atual].style.display = "none";
                lis[pn.atual+1].style.display = "block";
                pn.atual += 1;
                if (pn.atual >= lis.length - 1) setOpacity(this, .3);
                else setOpacity(this, 1);
                
                this.parentNode.style.width = (pn.getElementsByTagName("li")[pn.atual].getElementsByTagName("img")[0].width - 3) + "px";
				var aamp = getElementsByClass("amp", this.parentNode, "a")[0];
				aamp.style.width = (pn.getElementsByTagName("li")[pn.atual].getElementsByTagName("img")[0].width - 68) + "px";
                
                var an = getElementsByClass("ant", this.parentNode, "a")[0];
                if (pn.atual <= 0) setOpacity(an, .3);
                else setOpacity(an, 1);
            }
            return false;
        }
        
        
        var zl = z.getElementsByTagName("li");
        for (j = 0; j < zl.length; j++){
            if (j >= 1) zl[j].style.display = "none";
            
            a = zl[j].getElementsByTagName("a")[0];
            img = zl[j].getElementsByTagName("img")[0];
            
            img.style.border = "0";
            
            zl[j].par = {
                tamanho: "grande",
                content: "<div class=\"img\"><img src=\"" + a.href + "\" alt=\"" + img.alt + "\" title=\"" + img.title + "\" onclick=\"closePopup()\" onload=\"fixaTamanho()\" onresize=\"fixaTamanho()\" /><p class=\"desc\">" + img.title + "</p></div><div class=\"fechar\"><a href=\"javascript:closePopup()\" title=\"Fecha a popup\">Fechar<\/a></div>"
            }
            a.onclick = function(){
                popAnc(this.parentNode.par);
                return false;
            }
        }
    }
    
    z = getElementsByClass("zoom", document, "a");
    
    for (var i = 0; i < z.length; i++){
        img = z[i].getElementsByTagName("img")[0];
        
        pimg = z[i].parentNode;
        lupa = document.createElement("div");
        lupa.className = "lupa";
        lkamp = document.createElement("a");
        lkamp.className = "amp";
        lkamp.title = "Ver foto ampliada";
        lkamp.setAttribute("href", z[i].href);
        lkamp.appendChild(document.createTextNode("Ampliar"));
        lupa.appendChild(lkamp);
        lupa.style.width = (img.width - 3) + "px";
        
        pimg.appendChild(lupa);
        
        z[i].parentNode.par = {
            tamanho: "grande",
            content: "<div class=\"img\"><img src=\"" + z[i].href + "\" alt=\"" + img.alt + "\" title=\"" + img.title + "\" onclick=\"closePopup()\" onload=\"fixaTamanho()\" onresize=\"fixaTamanho()\" /><p class=\"desc\">" + img.title + "</p></div><div class=\"fechar\"><a href=\"javascript:closePopup()\" title=\"Fecha a popup\">Fechar<\/a></div>"
        }
        z[i].onclick = function(){
            popAnc(this.parentNode.par);
            return false;
        }
        lkamp.onclick = function(){
            popAnc(this.parentNode.parentNode.par);
            return false;
        }
    }
}

function initPopups(){
    var link = getElementsByClass("poplink",document,"a");
    for (var i = 0; i < link.length; i++){
        link[i].onclick = function(){
            var par = {};
            par.ajaxload = this.href;
            if (contemClasse(this, "medio")) par.tamanho = "medio";
            if (contemClasse(this, "grande")) par.tamanho = "grande";
            if (contemClasse(this, "completo")) par.tamanho = "completo";
            if (contemClasse(this, "pqno")) par.tamanho = "pqno";
            popAnc(par);            
            return false;
        }
    }
}

function popupLinks(){
    initZoom();
    initPopups();
}

addEvent(window, "load", popupLinks);