var Galerias = Class.create();
Galerias.prototype = {
    strRequestURL: '',
    strRequestVariaveis: null,
    strLoading : '<br><img src="_img/loading.gif">',
    strNomeObjeto: '',
    strNomeDiv: '',
    strPath: '',
    strLabel: '',
    strNenhumRegistro: '',
    intPaginaAtual: 1,
    intTotalPorPagina: 10,
    intTotalRegistros: 0,
    intPaginasMostrar: 2,
    intTotalPaginas: 0,
    intGaleriaFotosPagina: 1,
    objJson: null,
    initialize: function() {},
    reiniciapaginacao: function()
    {
        this.intPaginaAtual = 1;
    },
    definevalores: function(strNomeObjeto, strNomeDiv, strLabel, strNenhumRegistro, strRequestURL, strRequestVariaveis)
    {
        this.strNomeObjeto = strNomeObjeto;
        this.strNomeDiv = strNomeDiv;
        this.strLabel = strLabel;
        this.strNenhumRegistro = strNenhumRegistro;
        this.strRequestURL = strRequestURL;
        this.strRequestVariaveis = strRequestVariaveis;
    },
    processa: function()
    {
	  this.intTotalRegistros = this.objJson.length;
        this.intTotalPaginas = ((this.intTotalRegistros - 1) / this.intTotalPorPagina > parseInt((this.intTotalRegistros - 1) / this.intTotalPorPagina)) ? parseInt((this.intTotalRegistros - 1) / this.intTotalPorPagina) + 1: parseInt((this.intTotalRegistros - 1) / this.intTotalPorPagina);
        var strConteudo = '';
        var intInicio = (this.intPaginaAtual * this.intTotalPorPagina) - this.intTotalPorPagina;
        var intFinal = ((intInicio + this.intTotalPorPagina) > this.intTotalRegistros) ? this.intTotalRegistros: (intInicio + this.intTotalPorPagina);
	  if (this.intTotalRegistros > 1)
        {
            strConteudo += '<div class="menuPaginacaoTitulo">' + this.strLabel + '</div>';
		for (i = intInicio; i < intFinal; i++)
			strConteudo += (this.objJson[i].html != undefined) ? this.objJson[i].html: '';
            if(this.intTotalPaginas > 1)
			this.paginacao();
        }
        else
        {
            strConteudo = '<div class="subItemMenuNotLista"><span class="tx03">' + this.strNenhumRegistro + '</span></div>';
            $('divPaginacao' + this.strNomeDiv).update('');
        }
        $('divPaginacao' + this.strNomeDiv + 'Conteudo').update(strConteudo);
    },
    paginacao: function()
    {
        var strConteudo = '';
        var intInicio = ((this.intPaginaAtual - (this.intPaginasMostrar + 1)) < 0) ? 0: (this.intPaginaAtual - (this.intPaginasMostrar + 1));
        var intPaginaCentro = (this.intPaginaAtual < (this.intPaginasMostrar + 1)) ? (this.intPaginasMostrar + 1) : this.intPaginaAtual;
        var intFinal = ((intPaginaCentro + this.intPaginasMostrar) > this.intTotalPaginas) ? this.intTotalPaginas: (intPaginaCentro + this.intPaginasMostrar);
        if (parseInt(intFinal) != 0)
        {
            strConteudo += (this.intPaginaAtual > 1) ? '<span onclick="' + this.strNomeObjeto + '.mudarpagina(' + (this.intPaginaAtual - 1) + ')" class="paginacaoSetas"> &nbsp;«&nbsp; </span>': '';
            for (i = intInicio; i < intFinal; i++)
            {
                j = i + 1;
                if (parseInt(this.intPaginaAtual) == j)
                strConteudo += '<span class="paginacaoPaginaAtual"> &nbsp;' + j + '&nbsp; </span>';
                else
                strConteudo += '<span onclick="' + this.strNomeObjeto + '.mudarpagina(' + j + ')" class="paginacaoPagina"> &nbsp;' + j + '&nbsp; </span>';
            }
            strConteudo += ((this.intPaginaAtual) < this.intTotalPaginas) ? '<span onclick="' + this.strNomeObjeto + '.mudarpagina(' + (this.intPaginaAtual + 1) + ')" class="paginacaoSetas"> &nbsp;»&nbsp; </span>': '';
        }
        else
        {
            strConteudo += '<span class="b m1"> &nbsp;1&nbsp; </span>';
        }
        $('divPaginacao' + this.strNomeDiv).update(strConteudo);
    },
    mudarpagina: function(intNovaPagina)
    {
        this.intPaginaAtual = intNovaPagina;
        this.processa();
    },
    request: function()
    {
	  this.reiniciapaginacao();
        var objPaginacao = this;
	  $('divPaginacao' + this.strNomeDiv + 'Conteudo').update(this.strLoading);
        new Ajax.Request(
		galeria.strPath + objPaginacao.strRequestURL,
        {
            method: 'post',
            parameters: objPaginacao.strRequestVariaveis,
            onComplete: function(transport)
            {
			objPaginacao.objJson = eval(transport.responseText);
               	objPaginacao.processa();
            }
        });
    },
    /* galerias de imagens */
	abrir_galeria: function(idgaleria,strgaleria,idioma)
	{
	  $('divGaleriaFotos').update(this.strLoading);
	  $('divGaleriaFoto').update('');
	  $('divGaleriaFotosDireito').update('');
	  $('divGaleriaFotosEsquerdo').update('');
	  $('divGaleriaTitulo').update(strgaleria);
        this.intGaleriaFotosPagina = 1;
	  new Ajax.Request(
        galeria.strPath + 'imagensGalerias.php',
        {
            method: 'post',
            parameters: 'idgaleria=' + idgaleria + '&idioma=' + idioma,
            onComplete: function(transport)
            {
			$('divGaleriaFotos').update(transport.responseText);
			setTimeout('galeria.paginas_galeria()',1000);
            }
        });
	},
	imagem_galeria: function(idgaleriaimagem, idioma, div)
	{
	  $('divGaleriaFoto').update(this.strLoading);
	  new Ajax.Request(
        galeria.strPath + 'imagemGalerias.php',
        {
            method: 'post',
            parameters: 'idgaleriaimagem='+idgaleriaimagem + '&idioma=' + idioma,
            onComplete: function(transport)
            {
			$('divGaleriaFoto').update(transport.responseText);
            }
        });
		var fotos = document.getElementsByClassName('divFotoDestaque');
		for(i=0;i<fotos.length;i++)
			fotos[i].removeClassName('divFotoDestaque');		
		$(div.id).addClassName('divFotoDestaque');	  
	},
	paginas_galeria: function()
	{
		var paginas = document.getElementsByClassName('divGaleriaPagina');
		for(i=0;i<paginas.length - 1;i++)
			paginas[i].hide();
		var strQuadradinhos = '';
		for(i=0;i<paginas.length - 1;i++)
			if(i==(this.intGaleriaFotosPagina-1))
				strQuadradinhos += '<img src="' + galeria.strPath + '_img/quadrado_preenchido.gif">  ';
			else
				strQuadradinhos += '<img src="' + galeria.strPath + '_img/quadrado.gif" onclick="galeria.intGaleriaFotosPagina=' + (i + 1) + ';galeria.paginas_galeria();">  ';
		$('divGalareiaQuadradinhos').update(strQuadradinhos);
		paginas[this.intGaleriaFotosPagina-1].show();
		if(this.intGaleriaFotosPagina > 1)
			$('divGaleriaFotosEsquerdo').update('<img style="cursor:pointer;" onclick="galeria.intGaleriaFotosPagina--;galeria.paginas_galeria()" src="' + galeria.strPath + '_img/galeria_seta_esq_on.gif" width="39" height="75">')
		else
			$('divGaleriaFotosEsquerdo').update('<img src="' + galeria.strPath + '_img/galeria_seta_esq_off.gif" width="39" height="75">')
		if(this.intGaleriaFotosPagina < paginas.length - 1)
			$('divGaleriaFotosDireito').update('<img style="cursor:pointer;" onclick="galeria.intGaleriaFotosPagina++;galeria.paginas_galeria()" src="' + galeria.strPath + '_img/galeria_seta_dir_on.gif" width="39" height="75">')
		else
			$('divGaleriaFotosDireito').update('<img src="' + galeria.strPath + '_img/galeria_seta_dir_off.gif" width="39" height="75">')
	}
}