//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// CODI PER EL TRACTAMENT DEL CONTINGUT HTML DE LA DIV QUE CONTÉ EL 	//
// TEXT PRINCIPAL D'UNA PLANA, PER TAL DE SEGMENTAR-LO EN DIFERENTS	//
// PLANES, SEGONS TROBEM ELS "SALTS DE PLANA" INSERITS PER L´EDITOR	//
// ASPEDIT, MITJANÇANT UN BOTÓ ESPECÍFIC, EN EL CODI HTML pag_contenido	//
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////
// Variables globals que guarden l'estat del paginador
////////////////////////////////////////////////////////////////////////////

//String per ubicar els salts de plana seleccionats amb l'editor de continguts
var cgs_saltDePlanaContingut= '#### SALTO DE PÁGINA ####';
var cgs_iniciDeDocRelacionada= '#### INICIO DOCUMENTACIÓN ####';

//Possibles estats del botó "Avançar plana"
var cgs_boto_avancar = '<a href="javascript:canviarDePagina(+1)" onblur="MM_swapImgRestore()" onmouseout="MM_swapImgRestore()" onfocus="MM_swapImage(\'AvancarText\',\'\',\'img/Paginacio/avancar_ov.gif\',1)" onmouseover="MM_swapImage(\'AvancarText\',\'\',\'img/Paginacio/avancar_ov.gif\',1)" title=' + gvs_traduccion5060 + '><img src="img/Paginacio/avancar.gif" name="AvancarText" id="AvancarText" border="0" alt=' + gvs_traduccion5060 + '></a>'
var cgs_boto_avancar_na = '<img src="img/Paginacio/avancar_na.gif" border="0" alt=' + gvs_traduccion5062 + ' title=' + gvs_traduccion5062 + '>'

//Possibles estats del botó "Retrocedir plana"
var cgs_boto_retrocedir = '<a href="javascript:canviarDePagina(-1)" onblur="MM_swapImgRestore()" onmouseout="MM_swapImgRestore()" onfocus="MM_swapImage(\'RetrocedirText\',\'\',\'img/Paginacio/retrocedir_ov.gif\',1)" onmouseover="MM_swapImage(\'RetrocedirText\',\'\',\'img/Paginacio/retrocedir_ov.gif\',1)" title=' + gvs_traduccion5061 +'><img src="img/Paginacio/retrocedir.gif" name="RetrocedirText" id="RetrocedirText" border="0" alt=' + gvs_traduccion5061 + '></a>'
var cgs_boto_retrocedir_na = '<img src="img/Paginacio/retrocedir_na.gif" border="0" alt=' + gvs_traduccion5063 + ' title=' + gvs_traduccion5063 + '>'


//Array que guarda les diferents planes en les que es dividirà el text
var gvas_pagines = new Array();

//Guarda el nº de planes totals en els que s´ha segmentat el text
var gvi_paginaUltima=0;

//Guarda la plana que s'està mostrant en aquets moment
var gvi_paginaActual=0;



////////////////////////////////////////////////////////////////////////////
// Funcions per inicialitzar el paginador
////////////////////////////////////////////////////////////////////////////

//Funcio que segmenta el text de la div "divZonaFtext" en planes separades
function paginarTextPpal() {
var lvs_textATractar;
var lvi_pagina;
var pos;
    lvi_pagina=0;

    //Capturem la zona paginable del codi HTML rebut
    lvs_textATractar = document.getElementById('divZonaFtext').innerHTML;
    do{
        lvi_pagina++;
        //cerquem el separador de planes
    	pos=lvs_textATractar.toUpperCase().indexOf(cgs_saltDePlanaContingut);
    	if (pos>=0) {
    		//Si en trobem, separem la plana de la resta a tractar
    		gvas_pagines[lvi_pagina]=eliminarBRsInicialsIFinals(lvs_textATractar.substring(0,pos));
		lvs_textATractar=lvs_textATractar.substring(pos+cgs_saltDePlanaContingut.length,lvs_textATractar.length);
	} else {
		//Si ja no en trobem, el que queda pertany a l'última plana
    		gvas_pagines[lvi_pagina]=eliminarBRsInicialsIFinals(lvs_textATractar);
    		lvs_textATractar = "";
	}
	//alert(gvas_pagines[lvi_pagina]);
    } while (pos>0)

    //Ara bé, de l'ultima plana, extreiem la part de "Documentació relacionada", si n´hi ha:
    lvs_textATractar = gvas_pagines[lvi_pagina]
    pos=lvs_textATractar.toUpperCase().indexOf(cgs_iniciDeDocRelacionada);
    if (pos>=0) {
        //Si en trobem, extreiem aquesta àrt de l'última plana
 	gvas_pagines[lvi_pagina]=eliminarBRsInicialsIFinals(lvs_textATractar.substring(0,pos));
 	lvs_textATractar = lvs_textATractar.substring(pos+cgs_iniciDeDocRelacionada.length,lvs_textATractar.length);
 	document.getElementById('divZonaHdocumentacio').innerHTML=eliminarBRsInicialsIFinals(lvs_textATractar);
    } else {
	//FInalment, no la amaguem, per respectar tamanys i paddings
    	//canviarVisibilitat("divZonaHdocumentacio",0);
    } 
    
    //Anotem quantes planes hi han 
    gvi_paginaUltima = lvi_pagina;
	
    //Mostrem la 1a plana
    canviarDePagina(1);

    if (gvi_paginaUltima == 1) {
	document.getElementById('divZonaGpaginacio').innerHTML = '';
    }

    //Excepcio per paginados en MIG (Per planes col·lecció de fotos):
    var tableContenidoraZonaDJ=document.getElementById('tableContenidoraZonaDJperAseparadorAmbPaginadorEntreNavegadorIContingut');
    if (tableContenidoraZonaDJ) {
    	//Si existeix aquest ID, és un layout que porta el paginador 
    	//en mig, entre la zona esquerra de navegació i la dreta de continguts.
    	//Exemple: Evolució del Parc en fotos
    	//Al provar, no vàrem posar més de 9 fotos, i el paginador hi cabia.
    	//Al posar-n'hi més de 9 fotos, el paginador va forçar pixels d'amplada.
    	//Per eliminar-los, podem canviar el margin-right d'aqwuesta div
    	tableContenidoraZonaDJ.style.marginRight=-12;

    	//A més, les fotos en la plana m_p_f.asp no hi caben en Mozilla,
    	//i amb Opera, tot i que sí que hi caben, es dealinien amb el títol.
    	//Per això aprofitem aquí per fer això:
	if( typeof( window.innerWidth ) == 'number' ) {
	  //No Internet Explorer (Non-IE)
	  document.getElementById('divZonaFtext').className='divZonaFtextPerLineasFotosPerDretaNoiExplorer';
	}
    }

}

////////////////////////////////////////////////////////////////////////////
// Funcions per inicialitzar el paginador automàtic en Notes de Premsa
////////////////////////////////////////////////////////////////////////////

//Funcio que insereix els salts de pàgina div "divZonaFtext" de forma automàtica
//per a Notes de Premsa, i després crida a paginarTextPpal per segmentar-ho.
//Ho fa segons alçada disponible 328px

function paginarTextPpalAreaPremsaSegonsHeightDisponible() {
var lvs_notesDePremsa;
var lvxa_numero_divs, lvi_heightAcumulat;
var lvs_entreTables, lvs_SaltPaginaEntreTables, lvs_NoSaltPaginaEntreTables;

    //Definicions prèvies
    lvs_entreTables = "</TABLE>"+String.fromCharCode(13,10)+"<TABLE";
    lvs_SaltPaginaEntreTables = "</TABLE>" + cgs_saltDePlanaContingut +"<TABLE";
    lvs_NoSaltPaginaEntreTables = "</TABLE> <TABLE";

    //Capturem la zona paginable del codi HTML rebut
    lvs_notesDePremsa = document.getElementById('divZonaFtext').innerHTML;

    //Primer uniformiotzem MINUSCULES a MAJUSCULES  (Cada browser ho fica diferent)
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<br>"    ,"<BR>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<br/>"    ,"<BR/>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<br />"    ,"<BR />");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</table>","</TABLE>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<table"  ,"<TABLE");

    //Segon eliminem BRs entre tables
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</TABLE><BR />","</TABLE>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</TABLE><BR/>","</TABLE>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</TABLE><BR>","</TABLE>");

    //Tercer: executem ja la paginació:
    lvi_heightAcumulat=0;
    lvxa_numero_divs=document.getElementsByTagName("table");

    for(var i=0;i<lvxa_numero_divs.length;i++){
    	if( (lvxa_numero_divs[i].className == 'templateImatgeAreaPremsa') 
    	  ||(lvxa_numero_divs[i].className == 'templateNotaPremsa')
    	  ) {
	    //Primer, calculem l'alçada que portwem acumulada en el bloc de TABLES actual
	    lvi_heightAcumulat+=lvxa_numero_divs[i].scrollHeight;
	    //Si encara n'hi ha un altre TABLE darrera de la i, mirem que hi càpiga
            if (i+1<lvxa_numero_divs.length) {
		//Si no hi cap la següent de la i, cal salt de plana rera la actual i
		if ((lvi_heightAcumulat+lvxa_numero_divs[i+1].scrollHeight)>=324) {
		   lvs_notesDePremsa = lvs_notesDePremsa.replace(lvs_entreTables,lvs_SaltPaginaEntreTables);
		   lvi_heightAcumulat=0;
		} else {
		   lvs_notesDePremsa = lvs_notesDePremsa.replace(lvs_entreTables,lvs_NoSaltPaginaEntreTables);
		}
            }
    	}	
    }

    document.getElementById('divZonaFtext').innerHTML = lvs_notesDePremsa;
    paginarTextPpal();
    
}

//Funcio que insereix els salts de pàgina div "divZonaFtext" de forma automàtica
//per a Notes de Premsa, i després crida a paginarTextPpal per segmentar-ho.
//Ho fa cada X tables
//NO S´ESTÀ UTILITZANT AQUESTA, SINÓ L´ANTERIOR!!!!!!!!!!!

function paginarTextPpalAreaPremsaCadaXtables() {
var lvs_notesDePremsa;
var lvi_heightAcumulat;
var lvs_entreTables, lvs_SaltPaginaEntreTables, lvs_NoSaltPaginaEntreTables;

    //Definicions prèvies
    lvs_entreTables = "</TABLE>"+String.fromCharCode(13,10)+"<TABLE";
    lvs_SaltPaginaEntreTables = "</TABLE>" + cgs_saltDePlanaContingut +"<TABLE";
    lvs_NoSaltPaginaEntreTables = "</TABLE> <TABLE";

    //Capturem la zona paginable del codi HTML rebut
    lvs_notesDePremsa = document.getElementById('divZonaFtext').innerHTML;

    //Primer uniformiotzem MINUSCULES a MAJUSCULES  (Cada browser ho fica diferent)
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<br>"    ,"<BR>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<br/>"    ,"<BR/>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<br />"    ,"<BR />");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</table>","</TABLE>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"<table"  ,"<TABLE");

    //Segon eliminem BRs entre tables
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</TABLE><BR>","</TABLE>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</TABLE><BR/>","</TABLE>");
    lvs_notesDePremsa = substituirTotes(lvs_notesDePremsa,"</TABLE><BR />","</TABLE>");

    //Tercer: executem ja la paginació
    lvs_notesDePremsa = substituirCadaXocurrencies(lvs_notesDePremsa,lvs_entreTables,lvs_SaltPaginaEntreTables,4,lvs_NoSaltPaginaEntreTables);

    document.getElementById('divZonaFtext').innerHTML = lvs_notesDePremsa;
    paginarTextPpal();
}

function substituirTotes(pvs_str,pvs_Acercar,pvs_QueSubstitueix){
var lvs_resultat;
    lvs_resultat = pvs_str;
    while(lvs_resultat.indexOf(pvs_Acercar)>=0) {
	lvs_resultat = lvs_resultat.replace(pvs_Acercar,pvs_QueSubstitueix);
    }
    //if (lvs_resultat!= pvs_str) alert('Modificat');
    return lvs_resultat;
}

function substituirCadaXocurrencies(pvs_str,pvs_Acercar,pvs_QueSubstitueix,pvi_cadaXvegades,pvs_QueSubstitueixQuanNoX){
var lvs_resultat, lvi_cont;
    lvs_resultat = pvs_str;
    lvi_cont=0;
    while(lvs_resultat.indexOf(pvs_Acercar)>=0) {
	lvi_cont++;
	if ((lvi_cont % pvi_cadaXvegades) == 0)
		lvs_resultat = lvs_resultat.replace(pvs_Acercar,pvs_QueSubstitueix);
	else
		lvs_resultat = lvs_resultat.replace(pvs_Acercar,pvs_QueSubstitueixQuanNoX);
    }
    //if (lvs_resultat!= pvs_str) alert('Modificat');
    return lvs_resultat;
}


////////////////////////////////////////////////////////////////////////////
// Funcions per moure el paginador
////////////////////////////////////////////////////////////////////////////

//Funcio que mostra la segúent plana, ja sigui en la direcció avançar o retrocedir
function canviarDePagina(direccio) {
var lvs_boto_avancar, lvs_boto_retrocedir;
var lvs_espaiblanc;

	//Primer calculem la plana que hem de mostrar
	if (direccio>=0) {
		if (gvi_paginaActual < gvi_paginaUltima) gvi_paginaActual++;
	} else {
		if (gvi_paginaActual > 1) gvi_paginaActual--;
	}

	//Mostrem el seu contingut en el layer
	document.getElementById('divZonaFtext').innerHTML = gvas_pagines[gvi_paginaActual];

	//Calculem l'estat dels botons de paginació
	if (gvi_paginaActual > 1) lvs_boto_retrocedir = cgs_boto_retrocedir;
	else			  lvs_boto_retrocedir = cgs_boto_retrocedir_na;

	if (gvi_paginaActual < gvi_paginaUltima) lvs_boto_avancar = cgs_boto_avancar;
	else					 lvs_boto_avancar = cgs_boto_avancar_na;

	lvs_espaiblanc = '';
	if ((gvi_paginaUltima>=10)&&(gvi_paginaActual<10)) {
		lvs_espaiblanc ='<font color="#ffffff">0</font>'
	}
	document.getElementById('divZonaGpaginacio').innerHTML = lvs_espaiblanc + gvi_paginaActual + '/' + gvi_paginaUltima + '&nbsp;' +
		lvs_boto_retrocedir + '&nbsp;' + lvs_boto_avancar;

	//Això ho fem pq algunes planes poden ser més grans del que hi cap,
	//i la caixa només es centraria per la 1a. Ara re-centra a cada salt
	//Exemple: mapa web
	redimensionarFinestra();

}


////////////////////////////////////////////////////////////////////////////
// Funcions auxiliars
////////////////////////////////////////////////////////////////////////////

//Funcio auxiliar, que elimina els BRs només de l'inici i del finald'un string d´entrada
function eliminarBRsInicialsIFinals(pvs_textin) {
var posLeft1, posLeft2, posRight1, posRight2;
var lvs_resultat, lvb_algunTrobat;
var lvs_br1='<BR>';
var lvs_br2='<BR/>';
var lvs_br3='<BR />';

    lvs_resultat = pvs_textin;


    //SUBSTITUCIONS AL PRINCIPI
    do{
    	pos=lvs_resultat.toUpperCase().indexOf(lvs_br1);
    	if (pos==0) lvs_resultat = lvs_resultat.substring(lvs_br1.length,lvs_resultat.length);
    	else pos=-1;
    } while (pos>=0);
    do{
    	pos=lvs_resultat.toUpperCase().indexOf(lvs_br2);
    	if (pos==0) lvs_resultat = lvs_resultat.substring(lvs_br2.length,lvs_resultat.length);
    	else pos=-1;
    } while (pos>=0);
    do{
    	pos=lvs_resultat.toUpperCase().indexOf(lvs_br3);
    	if (pos==0) lvs_resultat = lvs_resultat.substring(lvs_br3.length,lvs_resultat.length);
    	else pos=-1;
    } while (pos>=0);


    //SUBSTITUCIONS AL FINAL
    do{
    	pos=lvs_resultat.toUpperCase().lastIndexOf(lvs_br1);
    	if (pos==lvs_resultat.length-lvs_br1.length) lvs_resultat = lvs_resultat.substring(0,lvs_resultat.length-lvs_br1.length);
    	else pos=-1;
    } while (pos>=0);
    do{
    	pos=lvs_resultat.toUpperCase().lastIndexOf(lvs_br2);
    	if (pos==lvs_resultat.length-lvs_br2.length) lvs_resultat = lvs_resultat.substring(0,lvs_resultat.length-lvs_br2.length);
    	else pos=-1;
    } while (pos>=0);
    do{
    	pos=lvs_resultat.toUpperCase().lastIndexOf(lvs_br3);
    	if (pos==lvs_resultat.length-lvs_br3.length) lvs_resultat = lvs_resultat.substring(0,lvs_resultat.length-lvs_br3.length);
    	else pos=-1;
    } while (pos>=0);


    return lvs_resultat;
}
