// ////////////////////////////////////////////////////////////////////////////////// //
//	UTILS QUE ES NECESSITEN
// ////////////////////////////////////////////////////////////////////////////////// //

var agt=navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();

var is_mac = (agt.indexOf("mac")!=-1);
var is_opera = (agt.indexOf("opera") != -1);
var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
var is_konq = (agt.indexOf('konqueror')!=-1);
var is_khtml  = (is_safari || is_konq);
var iePos  = appVer.indexOf('msie');
if ((iePos !=-1) && is_mac) iePos = agt.indexOf('msie');
var is_ie   = ((iePos!=-1) && (!is_opera) && (!is_khtml));

// La primera vegada que un usuari obre el navegador i entra al Portal o al Comerç, la finestra
// del navegador es maximitza.
// Aquesta funció s'encarrega de fer-ho.
function maximitzarFinestra()
{
		try{
				window.moveTo(0,0);
				// Els paràmetres per redimensionar van sortir d'un codi trobat
				// a la web.
				window.resizeTo(screen.availWidth+4,screen.availHeight+4);
		}catch(e){
				//alert('Error en maximitzar');
		}
}

// Retorna l'amplada útil de la finestra.
function retornarWidthUtilDeFinestra(){
	  var myWidth;
	  if( typeof( window.innerWidth ) == 'number' ) {
		//No Internet Explorer (Non-IE)
		myWidth = window.innerWidth;
	  } else if( document.documentElement &&
		  ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
	  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
	  }
	  return myWidth;
}

// Retorna l'alçada útil de la finestra.
function retornarHeightUtilDeFinestra(){
	var myHeight=0;
	if( typeof( window.innerWidth ) == 'number' ) {
	//No Internet Explorer (Non-IE)
		myHeight = window.innerHeight;
	} else if( document.documentElement &&
	  ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myHeight = document.body.clientHeight;
	}
	return myHeight;
}

// ////////////////////////////////////////////////////////////////////////////////// //
//	PER REDIMENSIÓNS EN PLANES PORTAL
// ////////////////////////////////////////////////////////////////////////////////// //

var border_bloc_inferior = 2;

function redimensionarAlcadesBlocs(){
	redimensionarBlocCentral();
	ocultaMenuN34siEsBuit();
	redimensionarMarcaAigues();
}

var jaRedimensionatAbans = 0;

//Redim bloc_central, si cal, per desplaçar bloc_inferior a sota de la finestra
function redimensionarBlocCentral()
{

	if (jaRedimensionatAbans){
		resetAlcadesBlocs();
	} else {
		jaRedimensionatAbans = 1;
	};

	//alert('redimensionarBlocCentral INI');
	var myHeight = retornarHeightUtilDeFinestra();
	var divbloc_central=document.getElementById('bloc_central');
	var divbloc_inferior=document.getElementById('bloc_inferior');

	//Calculem si cal o no desplaçar bloc_inferior a sota:
	var propostaNovaAlcadaBlocCentral;
	var diferencia = myHeight - (ubicarYdunObjecte(divbloc_inferior) + divbloc_inferior.scrollHeight);

	if (is_opera)
		diferencia = diferencia - border_bloc_inferior;

	//Si cal, ho fem:
	if (diferencia > 0){
		//Els 16 del final és el padding top de bloc_central, que no el conte
		propostaNovaAlcadaBlocCentral = myHeight - ubicarYdunObjecte(divbloc_central) - divbloc_inferior.scrollHeight - 16;

		//Excepcions només per Opera:
		if (is_opera) {
		   if(document.getElementById('elementsNavegacio') == null) {
			//SI ÉS HOME: El 2 del final és un padding de bloc_inferior que no conte
			propostaNovaAlcadaBlocCentral = propostaNovaAlcadaBlocCentral - border_bloc_inferior - 2;
		   } else {
			//SI ÉS AGENDA o CERCAGRAL: El 12 del final és el paddings entre bloc_central i bloc_inferior
			propostaNovaAlcadaBlocCentral = propostaNovaAlcadaBlocCentral - border_bloc_inferior - 12;
		   };
		};
		
		//Excepcions només per iExplorer:
		if (is_ie) {
			propostaNovaAlcadaBlocCentral = propostaNovaAlcadaBlocCentral - border_bloc_inferior;
		};
		
		divbloc_central.style.height=propostaNovaAlcadaBlocCentral+'px';  
	}


	//A més a més, I NOMÉS per la HOME, cal donar alçada als separadors dashed entre cols
	//Fem try´s per si no estem enla HOME o no trobem aquests layouts
	//NOTA: De moment no ho fem, ja que ara no hi han els separadors (els he donat color blanc en el CSS en lloc d'eliminar-los per si tornen :-! )
	//try { 
	//    document.getElementById('dh2colseparadorc1c2').style.height = (Math.max(document.getElementById('dh2col1').scrollHeight, document.getElementById('dh2col2').scrollHeight) -16) +'px'; 
	//} catch(errorinfo) {}
	//try { 
	//    document.getElementById('dh3colseparadorc1c2').style.height = (Math.max(document.getElementById('dh3col1').scrollHeight, document.getElementById('dh3col2').scrollHeight) -16) +'px'; 
	//    document.getElementById('dh3colseparadorc2c3').style.height = (Math.max(document.getElementById('dh3col2').scrollHeight, document.getElementById('dh3col3').scrollHeight) -16) +'px'; 
	//} catch(errorinfo) {}



	//Pel cas AGENDA i CERCA GRAL, al col.lapasar arbres, el iExplorer 
	//fa pujar el bloc_inferior massa i tapa els destacatsInteriors 
	//de l'esquerra. Per això...
	var divelementsNavegacio=document.getElementById('elementsNavegacio');
	var divdestacatsInteriors=document.getElementById('destacatsInteriors');
	//Si existeix div amb destacats Interiors(només Cerca i Agenda)
	//i el tamany assignat al bloc_central < tamany dels destacatsInteriors,
	//els quals són dins el 1er!!!   cal, com a mínim, donar al bloc_central
	//la alçada dels destacats interiors
	if ((divdestacatsInteriors != null) && (divelementsNavegacio.scrollHeight > divbloc_central.scrollHeight)) {
	    divbloc_central.style.height = divelementsNavegacio.scrollHeight+'px';
	}

	//També passa per AGENDAPPAL, però en aquest cas la div "destacatsAgendaPpal" no està dins divelementsNavegacio:
	var divdestacatsAgendaPpal=document.getElementById('destacatsAgendaPpal');
	if ((divdestacatsAgendaPpal != null) && (divdestacatsAgendaPpal.scrollHeight > divbloc_central.scrollHeight)) {
	    divbloc_central.style.height = divdestacatsAgendaPpal.scrollHeight+'px';
	}

	//Finalment, si hi ha un iframe amb id=mainFrame (que està sempre en el contingutEditable)	
	//llavors cal redimensionar-lo per que s'adjusti a l'alçada.
	var iframeMainFrame=document.getElementById('mainFrame');
	if (iframeMainFrame != null) {
		var alcadaquefaltaenIframe = ubicarYdunObjecte(divbloc_inferior) - (ubicarYdunObjecte(iframeMainFrame)+iframeMainFrame.scrollHeight);
		if (alcadaquefaltaenIframe>0) {
		    var novaAlcalaIframe = iframeMainFrame.scrollHeight+alcadaquefaltaenIframe;
		    iframeMainFrame.style.height = novaAlcalaIframe+'px';
		}
	}
}

//Potser no hi ha cap item en menu nivells 3 i 4. Cal ocultar-lo pq no mostri mai cap pixel del seu background
function ocultaMenuN34siEsBuit() {
	var divsubmenuNivells34=document.getElementById('submenuNivells34');
	if (divsubmenuNivells34!=null)
		if (divsubmenuNivells34.innerHTML=='')
			divsubmenuNivells34.className='ocult';
}

//Potser cal donar-li alçada a la marcaAigues per JUNTAR-LO AMB BLOC_INFERIOR
function redimensionarMarcaAigues() {
	var propostaNovaAlcadaMarcaAigues;
	var divmarcaAigues=document.getElementById('marcaAigues');

	//Si existeix submenu N3N4
	if (divmarcaAigues!=null) {
		//Calculem si cal o no:
		diferencia = ubicarYdunObjecte(document.getElementById('bloc_inferior')) - (ubicarYdunObjecte(divmarcaAigues) + divmarcaAigues.scrollHeight) - border_bloc_inferior;
		if (is_opera)
			diferencia = diferencia - border_bloc_inferior;

		//Si cal, ho fem:
		if (diferencia > 0){
			propostaNovaAlcadaMarcaAigues = ubicarYdunObjecte(document.getElementById('bloc_inferior')) - ubicarYdunObjecte(divmarcaAigues) - 8;
			if (is_opera) {
				//Border top de div marcaAigues
				propostaNovaAlcadaMarcaAigues = propostaNovaAlcadaMarcaAigues -7;
			}
			if (is_ie) {
				document.getElementById('bloc_central').style.height = '1px';
				propostaNovaAlcadaMarcaAigues = propostaNovaAlcadaMarcaAigues - 13;
			}
			divmarcaAigues.style.height=propostaNovaAlcadaMarcaAigues+'px';
		} else {
			divmarcaAigues.style.height='1px';
		}

	}
}


function resetAlcadesBlocs() {
	//Refem a minims, per tornar a redimensionar, ja que també es crida al expandir/col·lapsar arbre menu N3i4
	//alert('resetAlcadesBlocs 1');
	try { 
		document.getElementById('bloc_central').style.height='';
		//alert('resetAlcadesBlocs 2');
		document.getElementById('marcaAigues').style.height='';
		//alert('resetAlcadesBlocs 3');
	} catch(errorinfo) {}
}




// ////////////////////////////////////////////////////////////////////////////////// //
//	PER REDIMENSIÓNS EN POPUPS. PUFOTO, etc.
// ////////////////////////////////////////////////////////////////////////////////// //

//Redimensiona PUfoto i PUselectdate per adequar-se al tamany de la foto/table
function PUredimensionarSegonsAmpleObjecte(objid)
{
	//La primera, potser els peus de foto fan incrementar la zona ñutil, per això 2 vegades:
	PUredimensionarSegonsAmpleObjecte1vegada(objid)
	PUredimensionarSegonsAmpleObjecte1vegada(objid)
}


function PUredimensionarSegonsAmpleObjecte1vegada(objid)
{
	//AMPLE segons obj
 	var objwidth = 400; //Per si no el trobem, fiquem això.
	var obj = document.getElementById(objid);
	if (obj != null){
	 	//70 de logo i marge esquerra; 20 de marge dret
	 	switch(obj.id){
	 		case 'imatgeAmpliada':
	 			objwidth = obj.width;
	 			break;
	 		case 'taulaCalendari':
	 			objwidth = obj.scrollWidth;
	 			break;
	 	}
	}
	window.resizeBy((70+20+objwidth)-retornarWidthUtilDeFinestra(),0);

	//ALT segons estigui ja ocupant el contingut (tot ell dins div PUmarc)
	var divPUmarc=document.getElementById('PUmarc');
	//-18 de banda superior -2 banda inferior
	document.getElementById("PUbandaesquerraamblogo").style.height= (divPUmarc.scrollHeight - 18 - 2) + 'px';
	window.resizeBy(0,divPUmarc.scrollHeight-retornarHeightUtilDeFinestra());
}


//Maximitza la banda esquerra al tope de la finestra, 
//i ubica la banda inferior a sota de tot de la finestra
function PUredimensionarPUagendasubscripcio()
{
	//-18 de banda superior -2 banda inferior
	document.getElementById("PUbandaesquerraamblogo").style.height= (retornarHeightUtilDeFinestra() - 18 - 2) + 'px';
}
