//////////////////////////////////////////////////////   
// Gestiona el disseny Dinàmic de la Web UPCMaps. 
//
// Autor: Raül Aparicio Calvo
// Co: PFC - FIB (UPC)
// 20/Abril/2009
//////////////////////////////////////////////////////

//Variables Globals
///////////////////
var idCampus_Global = 10;
var height_Global = 0;
var estat_mapsside = 'mostrar';
var actualPag;
var actualNumPags;

//Dimensionar Mapa
//////////////////
function resizeMap(tipus)
{
	var windowHeight = $(window).height();
	var sobreHeight  = ($('#mapsresultats .sobre').height() == 41)? 0 : -15;
	if($('#mapsresultats .sobre').height() > 61) sobreHeight = -30;	
	if($('#mapsresultats .sobre').height() == 21) sobreHeight = 50;
	var pagingHeight = 0;
	
	if(actualNumPags > 7) 
	{
		if(actualPag > 1 && actualPag < actualNumPags) 	pagingHeight = -18;
	}
	if(actualNumPags > 10) 
	{
		pagingHeight = -18; //-18
		if(actualPag > 1 && actualPag < actualNumPags) 	pagingHeight = -33; //-33
	}
	
//Detect IE5.5+
	var version=0
	if (navigator.appVersion.indexOf("MSIE")!=-1)
	{
		temp=navigator.appVersion.split("MSIE")
		version=parseFloat(temp[1])
	}
// Navegador IExplorer
	if(version == 6)
	{
		if (windowHeight >= 0)
		{
			$('#cos').height(windowHeight-202);
			$('#mapsresultats').height(windowHeight-192); //176
			$('#mapsresultats div.resultats').height(windowHeight-240+sobreHeight+pagingHeight); //270
			$('#arrowhs').height(windowHeight-176);
		}
	}
	//if (version<8.0 && version>4)
	else if (version > 6)
	{
		if (windowHeight >= 0)
		{
			$('#cos').height(windowHeight-185); //202
			$('#mapsresultats').height(windowHeight-179); //194
			$('#mapsresultats div.resultats').height(windowHeight-255+sobreHeight+pagingHeight);
			$('#arrowhs').height(windowHeight-176);
		}
	}
//Altres navegadors...
	else
	{
		if (windowHeight >= 0)
		{
			$('#cos').height(windowHeight-185);
			$('#mapsresultats').height(windowHeight-178);
			$('#mapsresultats div.resultats').height(windowHeight-255+sobreHeight+pagingHeight);
			$('#arrowhs').height(windowHeight-178);
		}
	}
	height_Global = windowHeight;

	if(tipus == 'resize')
	{
		if(windowHeight > 525)
		{
			map.removeControl(mapLargeControl);
			mapLargeControl = new GLargeMapControl3D();
			if(estat_mapsside == 'mostrar') 
				map.addControl(mapLargeControl, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(235,7)));			
			else
			{
				map.removeControl(mapScaleControl);
				map.addControl(mapLargeControl);
				map.addControl(mapScaleControl);
			}
		}
		else
		{
			map.removeControl(mapLargeControl);
			mapLargeControl = new GSmallZoomControl3D();
			if(estat_mapsside == 'mostrar') 
				map.addControl(mapLargeControl, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(240,7)));			
			else
			{
				map.removeControl(mapScaleControl);
				map.addControl(mapLargeControl);
				map.addControl(mapScaleControl);
			}
		}
	}
}

// =========================================================================== //
// Open/Close the sidebar code
// Mostrar/Amagar MapsResultats
function veure_mapsside() 
{
	($('#mapsside').attr('offsetLeft') < 0 ) ? mostrar_mapsside() : amagar_mapsside();
	return false;
}

function amagar_mapsside() 
{
	estat_mapsside = 'amagar';

	map.removeControl(mapLargeControl);
	map.removeControl(mapScaleControl);
	map.addControl(mapLargeControl);
	map.addControl(mapScaleControl);

	$("#mapsside").animate({left: "-220px"}, 200, "linear");
	$('#arrowhs').css('background-image', 'url(img/page/goR.gif)');
	$('#poweredby').show().animate({left: "15px"}, 200, "linear");
	$('#complements').css('margin-left','0px');
	if(lang == 'ca') $('#slideLink').attr('title','Mostra els resultas');
	else if(lang == 'es') $('#slideLink').attr('title','Muestra los resultados');
	else if(lang == 'en') $('#slideLink').attr('title','Show results');
}

function mostrar_mapsside() 
{
	estat_mapsside = 'mostrar';

	map.removeControl(mapLargeControl);
	map.removeControl(mapScaleControl);

	$("#mapsside").show().animate({left: "10px"}, 200, "linear", function () {
		var set_rightPos;
		if(height_Global > 550) set_rightPos = 235; else set_rightPos = 240;
		map.addControl(mapLargeControl, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(set_rightPos,7)));
		map.addControl(mapScaleControl, new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(310,5)));} );

	$('#arrowhs').css('background-image', 'url(img/page/goL.gif)');
	$('#poweredby').show().animate({left: "245px"}, 200, "linear");
	$('#complements').css('margin-left','230px');
	if(lang == 'ca') $('#slideLink').attr('title','Amaga els resultas');
	else if(lang == 'es') $('#slideLink').attr('title','Oculta los resultados');
	else if(lang == 'en') $('#slideLink').attr('title','Hidden results');
}
// =========================================================================== //
// =========================================================================== //
// Show/Hide Listing Pages Results
// Mostrar/Amagar Llistat de paginació de Resultats
function veure_pagResultats(pag) 
{
	var classPags;
	var numPags = Math.ceil(markersSearch.length/NUM_ResultatsPag);
	actualNumPags = numPags;
	var indexResultats = new Array();
	var numResultats = markersSearch.length;
	var indexIni = ((pag-1)*NUM_ResultatsPag)-1;
	var indexFin = (pag*NUM_ResultatsPag);
	(numResultats < indexFin)? indexFin=numResultats : indexFin;
	
	var text_anterior = markersSearch[0].getAttribute("nameAnterior");
	var text_seguent = markersSearch[0].getAttribute("nameSeguent");

// Actualitzar estat del <div id=mapsresultats>
	//$('#mapsresultats .sota').css('display','block');
	$('#page'+actualPag).removeClass('actual');
	$('#page'+actualPag).addClass('noactual');
	actualPag = pag;
	resizeMap('');	
	$('#page'+pag).removeClass('noactual');
	$('#page'+pag).addClass('actual');
	
	if (numPags>6 && pag!=1 && pag!=numPags)
	{	
		$('#prev').removeClass('previous'); 
		$('#prev').addClass('previousL');
		$('#next').removeClass('next'); 
		$('#next').addClass('nextL'); 
		classPags = 'L';
	}
	else
	{
		$('#prev').removeClass('previousL'); 
		$('#prev').addClass('previous');
		$('#next').removeClass('nextL'); 
		$('#next').addClass('next'); 
		classPags = '';		
	}
	
	if (pag != 1) 
	{
		$('#listingPags a.previous'+classPags).attr({ href: "javascript:veure_pagResultats("+(pag-1)+");"});
		$('#listingPags a.previous'+classPags).html(text_anterior);	
	}
	else $('#listingPags a.previous'+classPags).html('');
	if (pag != numPags)
	{
		$('#listingPags a.next'+classPags).attr({ href: "javascript:veure_pagResultats("+(pag+1)+");"});
		$('#listingPags a.next'+classPags).html(text_seguent);
	}
	else $('#listingPags a.next'+classPags).html('');
	
	for(var j=0; j<markersSearch.length; j++)
		(j>indexIni && j<indexFin)? indexResultats[j] = markersSearch[j] : true ;
	
	// Tancar Bafarada
	map.closeInfoWindow();
	// Mostrar Resultats
	showSearchResultsRENEW(indexResultats, indexResultats.length, '');
	// Mapejar Resultats
	mapejarResultatsCerca(pag);
}
//
// Paginar els Resultats
function paginarResultats(arrayResultats, textCerca, contextCerca) 
//arrayResultats és una Var.Global:markersSearch, no cal pasar-la//
{
	var indexResultats = new Array();
	var numResultats = arrayResultats.length;
	var numPags = Math.ceil(arrayResultats.length/NUM_ResultatsPag);
	actualNumPags = numPags;
	var infoPags = '';
	var listingPags = '';
	var numResultatsPag1 = NUM_ResultatsPag;
	var numResultatsPag0 = 0;
	actualPag = 1;
	(numResultats < NUM_ResultatsPag)? numResultatsPag1 = numResultats : numResultatsPag1;
	
	//Traduccions
	var text_resultats = arrayResultats[0].getAttribute("nameResultats");
	var text_noResultats = arrayResultats[0].getAttribute("nameNoResultats");
	var text_de = arrayResultats[0].getAttribute("nameResultats_de");
	var text_per_a = arrayResultats[0].getAttribute("nameResultats_per_a");
	var text_a = arrayResultats[0].getAttribute("nameResultats_a");
	var text_anterior = arrayResultats[0].getAttribute("nameAnterior");
	var text_seguent = arrayResultats[0].getAttribute("nameSeguent");
	var text_header_resultatsCerca = arrayResultats[0].getAttribute("headerResultatsCerca");
	var text_header_mesResultats = arrayResultats[0].getAttribute("headerMesResultats");
	
	if(text_noResultats)
	{
		numResultatsPag0 = 0;
		numResultatsPag1 = 0;
		numResultats = 0;
	}
	else numResultatsPag0++;
	
	// Resetejar <div id=cerca_resultats>
	$('#cerca_resultats').html('');
	
	// Tractar info de Resultats
	infoPags += '<p class="rt">'+text_resultats+'<span> <strong>'+numResultatsPag0+' - '+numResultatsPag1+'</strong> '+text_de+' <strong>'+numResultats+'</strong></span></p>';
	infoPags += '<p>	'+text_per_a+' <strong>'+textCerca+'</strong><br/><span>'+text_a+' <strong>'+arrayCampus_IdNom[contextCerca][langBD]+'</strong></span></p>';
	// Omplir <div id=mapsresultats><div class=sobre> amb el contingut
	$('#mapsresultats div.sobre').html(infoPags);
	$('#mapsside > h2').remove();
	$('#mapsresultats').before('<h2 class="goout">'+text_header_resultatsCerca+'</h2>');
	
	if (numResultats == 0) listingPags = ''; // 0 pàgina.
	else if (numPags > 1) // De 2 a 6 pàgines.
	{
		listingPags += '<a tabindex="73" id="prev" class="previous" href="javascript:;"></a>';
		listingPags += '<a tabindex="75" id="next" class="next" href="javascript:veure_pagResultats(2);">'+text_seguent+'</a>';
		listingPags += '<a tabindex="74" id="page1" class="actual" href="javascript:veure_pagResultats(1);">1</a> ';
		for(var i=2; i<numPags+1; i++)
			listingPags += ' <a tabindex="74" id="page'+i+'" class="noactual" href="javascript:veure_pagResultats('+i+');">'+i+'</a> ';
	}
	else listingPags = '<a tabindex="73" id="page1" class="actual" href="#">1</a>'; // 1 pàgina.
	
	// Omplir el <div id=listingPags> amb el contingut
	$('#mapsresultats div.sota > h3').remove();
	$('#listingPags').html(listingPags);
	
	// Actualitzar resize dels resultats
	resizeMap('');	
	// Omplir el <div id=cerca_resultats> amb els resultats
	if(numResultats > 0)
	{
		$('#listingPags').before('<h3 class="goout">'+text_header_mesResultats+'</h3>');
		arrayResultats.reverse();
		for(var j=0; j<numResultatsPag1; j++)
			indexResultats[j] = arrayResultats[j];
	}
	else indexResultats = arrayResultats;
	// Mostrar Resultats
	showSearchResultsRENEW(indexResultats, numResultats, text_noResultats);
	// Mapejar Resultats
	mapejarResultatsCerca(actualPag);
	
	// Hi ha Resultats de la Cerca??
	if(numResultats == 0) mapaVerCampus(idCampus_Global, 'onlyCampus', langBD);
}
// =========================================================================== //
// =========================================================================== //
/////////////////////////////////////////////////////////////////////////////
// GESTIONAR CERCADOR GENERAL (GSA)
////////////////////////////////////////////////////////////////////////////
	function prepararCercadorGeneral()
	{
	// Detectar el CLICK/BLUR al CAMP de TEXT del CERCADOR
		$('#cerca_input').click( function()
			{ if($(this).val() == valueCerca) $(this).val(''); }
		);		
		$('#cerca_input').blur( function()
			{ if($(this).val() == '') $(this).val(valueCerca); }
		);
	// Capturar tecla PETJADA en el CERCADOR
		$('#cerca_input').keypress( function(e)
			{	
				var key = (e.keyCode? e.keyCode:e.which);
				//CodiASCII ENTER: 13
				if(key == 13) startSearchGSA($(this).val());
			}
		);
		
	// Detectar el CLICK al Botó de CERCADOR
		$('#cerca_button').click( function()
			{ startSearchGSA($('#cerca_input').val()); }
		);	
	}
///////////////////////////////////////////////////////////
// Començar Cerca GSA
	function startSearchGSA(text)
	{
		(idCampus_Global == $('#cerca_select').val()) ? null : idCampus_Global = $('#cerca_select').val();
		recuperaTipusCompls_Campus(idCampus_Global);
		mapaVerBusquedaGSA(text, '', langBD, idCampus_Global);
	}	
//////////////////////////////////////////////////////////////////////////
// Mostrar els RESULTATS de la CERCA
	function showSearchResultsRENEW(results, numResults, text_noResults)
	{
		var name, idResult, indexReverse;
		var content = '';
		var tip = '';
		var tipus = '';
		var path_icon = '';
		var k = 0;
		(markersSearch.length>10)? 
			indexReverse=markersSearch.length-((actualPag-1)*NUM_ResultatsPag) 
			: indexReverse=results.length;
		
		if(numResults > 0)
		{ 	
			for (var i in results)
	  		{
				indexReverse--;
				name = results[i].getAttribute('name');
				idResult = results[i].getAttribute('idB');
				if(idResult != null) tipus = 'Edfs';
				else tipus = 'Units';
			//Muntar el conjunt dels resultats
				k++;
				if(k < 10) k = '0'+k;
				// src="img/icones/q_'+k+'.png"
				if(tipus=='Edfs') path_icon = '<img class="q'+k+'" src="img/strips/transparent.gif" alt="'+k+'">';
				// src="img/icones/c_'+k+'.png"
				else path_icon='<img class="c'+k+'" src="img/strips/transparent.gif" alt="'+k+'">';
				
				content += '<li><a tabindex="72" onclick="javascript:myclick('+indexReverse+',\'Search\');" href="javascript:;">';
				content += '<span class="icona">'+path_icon+'</span> '+name+'</a></li>';
			}
		}
		else content = '<br/>&nbsp;&nbsp;<strong>'+text_noResults+'</strong><br/><br/>';
		//Inserció dels resultats al <div>
		document.getElementById('cerca_resultats').innerHTML = content;
	}	
/////////////////////////////////////////////////////////////////////////////////////////////
//Detectar un nuevo Campus Seleccionado
	function detectaNuevoSelectId(idCampus)
	{
		if(idCampus != idCampus_Ant)
		{
			idCampus_Ant = idCampus;
			idCampus_Global = idCampus;
			
			// Resetejar <div id=cerca_resultats>
			$('#cerca_resultats').html('');
			$('#cerca_resultats2').html('');
			$('#mapsside > h2').remove();
			$('#mapsresultats div.sota > h3').remove();
			$('#mapsresultats div.sobre').html('<p class="rt"><strong>'+arrayCampus_IdNom[idCampus][langBD]+'</strong></p>');
			$('#listingPags').html('<a id="page1" class="actual" href="#">1</a>');
			recuperaTipusCompls_Campus(idCampus_Global);
			($('#cerca_input').val() != valueCerca) ? mapaVerBusquedaGSA($('#cerca_input').val(), '', langBD, idCampus) : mapaVerCampus(idCampus, 'onlyCampus', lang);
			return true;
		}
		else 
			return false;
	}
	
///////////////////////////////////////////////////////////////////////////////////////////////////
//LOADING ...
function startLoad () 
{
	if(loadingUp === 0) 
	{
		if (typeof document.body.style.maxHeight === "undefined") 
		{//if IE 6
		//	$("body","html").css({height: "100%", width: "100%"});
		//	$("html").css("overflow","hidden");
		//	if ($("#BU_HideSelect").length < 1) //iframe to hide select elements in ie6
		//	$("body").append("<iframe id='BU_HideSelect'></iframe>");
		}
		if(document.getElementById("capaLoading") === null)
		{
		// Añadimos el <div> de Loading...
			$("body").append("<div id='capaLoading'></div><div id='iconLoading'><img src='img/utilitats/loading_"+lang+".gif' /></div>");
		// Mostramos <div> de Loading...	
			$('#iconLoading').show();
		}
		loadingUp++;
		return 500;
	}
	loadingUp++;
	return 0;
}

function endLoad () 
{
	loadingUp--;
	loadingUp = Math.max(loadingUp, 0);
	if (loadingUp == 0) 
	{
		$("#capaLoading").remove();
	//	$("#BU_HideSelect").remove();
		$("#iconLoading").remove();
		
		if (typeof document.body.style.maxHeight == "undefined") 
		{//if IE 6
		//	$("body","html").css({height: "auto", width: "auto"});
		//	$("html").css("overflow","");
		}
	}
}


