//          ((( Daniele Marchesini - Intelligence Software S.r.l. Italy)))
//              email: d.marchesini@intelligencesoftware.it
//              İ2003 All Rights reserved
//ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ

var pageData = localizePage();

/*
var r = '';
for(j in pageData){
	r += '[ '+ j +' ] : [ '+ pageData[j] +' ]\n';
}

alert(r);
*/

var localURL = pageData['localURL'];
var toRoot = pageData['toRoot'];
var langName = pageData['langName'];
var sectionName = pageData['sectionName'];
var subSectionName = pageData['subSectionName'];
var pageName = pageData['pageName'];
var pageExtension = pageData['pageExtension'];

var report = '';
var deep = 0;

// ------------------------------------------------------------------------------------------------------

/* rende visibili i layer relativi alla sezione corrente e alla eventuale sezione che la contiene */
function menuManager(){
// Copyright 2003 intelligence software S.r.l. All rights reserved.
	var areaLayerCurrentBaseName = defaultPagesFolderName+'/';
	var mainAreaLayerCurrentName = '';
	var subAreaLayerCurrentName = '';
	var objLink;

	if(langName){
		areaLayerCurrentBaseName += langName;
	}

	if(sectionName){
		mainAreaLayerCurrentName = areaLayerCurrentBaseName+'/'+sectionName;

		if(document.getElementById(mainAreaLayerCurrentName)){
			document.getElementById(mainAreaLayerCurrentName).style.display = 'block';
		}

		if(document.getElementById('_'+mainAreaLayerCurrentName)){
			objLink = document.getElementById('_'+mainAreaLayerCurrentName);
			if(objLink.className.match(defaultCurrentStyleId)){
				var tempCN = objLink.className;
				objLink.className = tempCN.substring(0,((tempCN.length) - back));
			}else{
				objLink.className += defaultCurrentStyleId;
			}
		}
	}

	if(subSectionName){
		subAreaLayerCurrentName += areaLayerCurrentBaseName+'/'+sectionName+'/'+subSectionName;

		if(document.getElementById(subAreaLayerCurrentName)){
			document.getElementById(subAreaLayerCurrentName).style.display = 'block';
		}

		if(document.getElementById('_'+subAreaLayerCurrentName)){
			objLink = document.getElementById('_'+subAreaLayerCurrentName);
			if(objLink.className.match(defaultCurrentStyleId)){
				var tempCN = objLink.className;
				objLink.className = tempCN.substring(0,((tempCN.length) - back));
			}else{
				objLink.className += defaultCurrentStyleId;
			}
		}
	}
}

// ------------------------------------------------------------------------------------------------------

/* aggiorna l'aspetto del link di tipo 'opener' cliccato e gestisce la visibilità del layer ad esso associato */
function layerUpdater(objLink,objLayerName){
// Copyright 2003 intelligence software S.r.l. All rights reserved.
	var back = defaultCurrentStyleId.length;
	if(document.getElementById(objLayerName)){
		var obj = document.getElementById(objLayerName);
		if(obj.style.display == 'block'){
			obj.style.display = 'none';
			if(objLink.className.match(defaultCurrentStyleId)){
				var tempCN = objLink.className;
				objLink.className = tempCN.substring(0,((tempCN.length) - back));
			}
		}else{
			obj.style.display = 'block';
			objLink.className += defaultCurrentStyleId;
		}
	}
}


// ------------------------------------------------------------------------------------------------------

/* calcola gli attributi per gli elementi del menù in base alla loro natura e alla profondità */
function attributesGenerator(d,curPath){
// Copyright 2003 intelligence software S.r.l. All rights reserved.
	// curPath = curPath.substring(toRoot.length,(curPath.length-1));

	// alert('attributesGenerator('+d+','+curPath+')');

	var att = new Array();
	switch(parseInt(d)){
		case 0:
			att['layerClass'] = '';
			att['layerIdPrefix'] = defaultMenuLayerName;
			att['directLinkClass'] = 'mainAreaDirect';
			att['directLinkIdPrefix'] = '';
			att['openerLinkClass'] = 'mainAreaOpener';
			att['openerLinkIdPrefix'] = '_'+curPath;
		break;
		case 1:
			att['layerClass'] = 'mainAreaLayer';
			att['layerIdPrefix'] = curPath;
			att['directLinkClass'] = 'subAreaDirect';
			att['directLinkIdPrefix'] = '';
			att['openerLinkClass'] = 'subAreaOpener';
			att['openerLinkIdPrefix'] = '_'+curPath;
		break;
		case 2:
			att['layerClass'] = 'subAreaLayer';
			att['layerIdPrefix'] = curPath;
			att['directLinkClass'] = 'subAreaTerminal';
			att['directLinkIdPrefix'] = '';
			att['openerLinkClass'] = 'terminal';
			att['openerLinkIdPrefix'] = '_'+curPath;
		break;
		default:
			att['layerClass'] = '';
			att['layerIdPrefix'] = '';
			att['directLinkClass'] = '';
			att['directLinkIdPrefix'] = '';
			att['openerLinkClass'] = '';
			att['openerLinkIdPrefix'] = '';
	}

	return att;
}

// ------------------------------------------------------------------------------------------------------

/* legge ricorsivamente structureArray [definito in siteStructure.js] e genera la struttura HTML dei menù a pacchetto */
function menuBuilderLayer(structureArray,deep,currentPath){
// Copyright 2003 intelligence software S.r.l. All rights reserved.

	// curPath indica in che posizione all'interno di structureArray stiamo applicando la funzione in quanto essa è
	// ricorsiva.
	// in pratica contiene l'indirizzo della cartella o della pagina per la quale la funzione sta scrivendo il
	// layer o il link

	var curPath = (currentPath)?currentPath:defaultPagesFolderName+'/';

	var curFolderName = structureArray['folderName'];

	var rientro = '';
	for(r=1; r<=deep; r++){
		rientro += '\t';
	}

	curPath += curFolderName;

	var att = attributesGenerator(deep,curPath);

	curPath += '/';

	var layerClass = att['layerClass'];
	var layerIdPrefix = att['layerIdPrefix'];

	var directLinkClass = att['directLinkClass'];
	var directLinkIdPrefix = att['directLinkIdPrefix']

	var openerLinkClass = att['openerLinkClass'];
	var openerLinkIdPrefix = att['openerLinkIdPrefix'];

	var actualURL = localURL; // contiene la posizione della pagina attuale ricavata dal suo URL.

	// alert('actualURL: '+actualURL);

	var tempReport = '\n\t\t'+ rientro +'<div id="'+layerIdPrefix+'" class="'+layerClass+'">';

	var curDirect;
	var curOpener;
	var CurURL;

	for(i in structureArray){
		if(i != 'folderName'){
			/* length è pari a zero se l'elemento dell'array è un vettore, se è una stringa, ne restituisce la lunghezza. */
			if(structureArray[i].length != 0){ // scrivo un link ad un file
				if(actualURL == (curPath+i)){ // stiamo generando il link alla pagina corrente
					curDirect = defaultCurrentStyleId;
					curURL = 'JavaScript:void(0)';
				}else{ // stiamo generando il link ad altre pagine diverse dalla pagina corrente
					curDirect = '';
					curURL = structureArray[i];
				}
				tempReport += '\n\t\t\t'+rientro+'<a href="'+curURL+'" onfocus="this.blur()" id="'+directLinkIdPrefix+'" class="'+directLinkClass+curDirect+'">'+i+'</a>';
			}else{// scrivo un link ad una cartella
				tempReport += '\n\t\t\t'+rientro+'<a href="JavaScript:void(0)" onfocus="this.blur()" onclick="layerUpdater(this,\''+openerLinkIdPrefix.substring(1,openerLinkIdPrefix.length) + '/' + structureArray[i]['folderName']+'\');" id="'+openerLinkIdPrefix + '/' + structureArray[i]['folderName']+'" class="'+openerLinkClass+'">'+i+'</a>';
				tempReport += menuBuilderLayer(structureArray[i],deep+1,curPath);
			}
		}
	}
	tempReport += '\n\t\t'+rientro+'</div>';
	return tempReport;
}

// ------------------------------------------------------------------------------------------------------

/* esegue menuBuilderLayer() e ne pubblica i risultati in una finestra esterna */
function generateMenu(){
// Copyright 2003 intelligence software S.r.l. All rights reserved.
	// alert('toRoot in generateMenu: '+toRoot);
	var report = menuBuilderLayer(menuVoices,deep);

	var winRep = top.open('about:blank','wr','top=0, left=0, width=150, height=720, scrollbars=yes, resizable=yes, status=yes');

	with(winRep.document){
		open();
		write('<html>\n\t<head>');
		write('\n\t\t<title>struttura</title>');
		write('\n\t\t<link rel="stylesheet" href="/menu/css/gisGroup/menuStructure.css">');
		write('\n\t\t<link rel="stylesheet" href="/css/gisgroup/pageStructure.css">');
		write('\n\t</head>\n\t<body>');
		write(report);
		write('\n\t</body>\n</html>');
		close();
	}
}


//	generateMenu();



// ------------------------------------------------------------------------------------------------------


/* legge structureArray [definito in siteStructure.js] e ne calcola una rappresentazione tabellare */
function menuBuilderTabellare(structureArray){
// Copyright 2003 intelligence software S.r.l. All rights reserved.
	var tempReport = '\n\t\t<table>';
	for(i in structureArray){
		if(structureArray[i].length != 0){
			tempReport += '\n\t\t\t<tr>';
			tempReport += '\n\t\t\t\t<td>'+ i + '</td>';
			tempReport += '\n\t\t\t\t<td><a href="JavaScript:void(0)">' + structureArray[i] + '</a></td>';
			tempReport += '\n\t\t\t</tr>';
		}else{
			tempReport += '\n\t\t\t<tr>';
			tempReport += '\n\t\t\t\t<td><b>' + i + '</b></td>';
			tempReport += '\n\t\t\t\t<td>';
			tempReport += menuBuilderTabellare(structureArray[i]);
			tempReport += '\n\t\t\t\t</td>';
			tempReport += '\n\t\t\t</tr>';
		}
	}
	tempReport += '\n\t\t</table>';
	return tempReport;
}

// ------------------------------------------------------------------------------------------------------


/* fa in modo che in Explorer i link del menù a tendina siano sensibili al passaggio del cursore del mouse per tutta la loro larghezza */
/* viene chiamata nell'include contenente il generatore del menù a tendina, dopo la generazione dello stesso */
function fixMenuLinksWidthForExplorer(){
// Copyright 2003 intelligence software S.r.l. All rights reserved.
	if(navigator.appName == 'Microsoft Internet Explorer'){
		var allMenuLinks = document.getElementById('menuLayer').getElementsByTagName('a');
		var totLinks = allMenuLinks.length
		for(i=0; i<totLinks; i++){
			allMenuLinks[i].style.width = '100%'
		}
	}
}