/////////////////////////////////////////////////////////////////////////////
// Function : NavNode (constructor)
// Comments :
/////////////////////////////////////////////////////////////////////////////
function NavNode(id, label, href, parent)
{
	this.m_parent = null;
	this.m_level = 0;

	if (parent)
	{
		this.m_parent = parent;
		this.m_level = parent.m_level+1;
	}

	this.m_id = id;

	// assume that m_label will most often be used directly as HTML
	this.m_rawlabel = label;

	label = label.replace(/&/g, '&amp;');
	label = label.replace(/</g, '&lt;');
	label = label.replace(/>/g, '&gt;');
	label = label.replace(/"/g, '&quot;');

	this.m_label = label;

	this.m_href = href;
	this.m_subNodes = new Array();

	var argValues = NavNode.arguments;
	var argCount = NavNode.arguments.length;

	for (i = 4 ; i < argCount ; i++)
	{
		var attrName = argValues[i].split("==")[0];
		var attrValue = argValues[i].split("==")[1];

		eval("this.cp_" + attrName + " = '" + attrValue + "';");
	}

	NavNode.prototype.addNode = addNode;
	NavNode.prototype.isSelected = isSelected;
}

/////////////////////////////////////////////////////////////////////////////
// Function : addNode
// Comments :
/////////////////////////////////////////////////////////////////////////////
function addNode(id, label, href)
{
	var newIndex = this.m_subNodes.length;
	var newNode = new NavNode(id, label, href, this);

	var argValues = addNode.arguments;
	var argCount = addNode.arguments.length;

	for (i = 3 ; i < argCount ; i++)
	{
		var attrName = argValues[i].split("==")[0];
		var attrValue = argValues[i].split("==")[1];

		eval("newNode.cp_" + attrName + " = '" + attrValue + "';");
	}

	this.m_subNodes[newIndex] = newNode;
	return newNode;
}

/////////////////////////////////////////////////////////////////////////////
// Function : isSelected
// Comments :
/////////////////////////////////////////////////////////////////////////////
function isSelected()
{
    var pos = window.location.href.lastIndexOf("/");
    var docname = window.location.href.substring(pos+1, window.location.href.length);

    pos = this.m_href.lastIndexOf("/");
    var myname = this.m_href.substring(pos+1, this.m_href.length);

    if (docname == myname)
		return true;
	else
		return false;
}

/////////////////////////////////////////////////////////////////////////////
// Function : customSectionPropertyExists
// Comments :
/////////////////////////////////////////////////////////////////////////////
function customSectionPropertyExists(csp)
{
	return (typeof csp != _U && csp != null);
}

/////////////////////////////////////////////////////////////////////////////
// Function : getCustomSectionProperty
// Comments :
/////////////////////////////////////////////////////////////////////////////
function getCustomSectionProperty(csp)
{
	if (customSectionPropertyExists(csp))
	{
		return csp;
	}
	else
	{
		return "";
	}
}

/////////////////////////////////////////////////////////////////////////////

var g_navNode_Root = new NavNode('160','Home',ssUrlPrefix + 'index.htm',null,'secondaryUrlVariableField==region2');
g_navNode_0=g_navNode_Root.addNode('218','Marinas and Harbour',ssUrlPrefix + 'MarinasandRecreationalPorts/index.htm');
g_navNode_0_0=g_navNode_0.addNode('240','Douro River',ssUrlPrefix + 'MarinasandRecreationalPorts/DouroRiver/index.htm');
g_navNode_0_0_0=g_navNode_0_0.addNode('72','Marina Angra do Douro',ssUrlPrefix + 'MarinasandRecreationalPorts/DouroRiver/MarinaAngradoDouro/index.htm');
g_navNode_0_0_1=g_navNode_0_0.addNode('90','P\xf3lo Fluvial do Freixo',ssUrlPrefix + 'MarinasandRecreationalPorts/DouroRiver/PoloFluvialdoFreixo/index.htm');
g_navNode_0_1=g_navNode_0.addNode('241','North',ssUrlPrefix + 'MarinasandRecreationalPorts/North/index.htm');
g_navNode_0_1_0=g_navNode_0_1.addNode('70','Marina da P\xf3voa',ssUrlPrefix + 'MarinasandRecreationalPorts/North/MarinadaPovoa/index.htm');
g_navNode_0_1_1=g_navNode_0_1.addNode('71','Marina Porto Atl\xe2ntico',ssUrlPrefix + 'MarinasandRecreationalPorts/North/MarinaPortoAtlantico/index.htm');
g_navNode_0_1_2=g_navNode_0_1.addNode('69','Viana Marina',ssUrlPrefix + 'MarinasandRecreationalPorts/North/VianaMarina/index.htm');
g_navNode_0_2=g_navNode_0.addNode('242','Center',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/index.htm');
g_navNode_0_2_0=g_navNode_0_2.addNode('84','Doca de Recreio das Fonta\xednhas',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/DocadeRecreiodasFontainhas/index.htm');
g_navNode_0_2_1=g_navNode_0_2.addNode('82','Doca de Recreio de Alc\xe2ntara',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/DocadeRecreiodeAlcantara/index.htm');
g_navNode_0_2_2=g_navNode_0_2.addNode('80','Doca de Recreio de Bel\xe9m',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/DocadeRecreiodeBelem/index.htm');
g_navNode_0_2_3=g_navNode_0_2.addNode('81','Doca de Recreio de Santo Amaro',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/DocadeRecreiodeSantoAmaro/index.htm');
g_navNode_0_2_4=g_navNode_0_2.addNode('79','Doca de Recreio do Bom Sucesso',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/DocadeRecreiodoBomSucesso/index.htm');
g_navNode_0_2_5=g_navNode_0_2.addNode('76','Marina da Ribeira',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/MarinadaRibeira/index.htm');
g_navNode_0_2_6=g_navNode_0_2.addNode('73','Marina da Torreira',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/MarinadaTorreira/index.htm');
g_navNode_0_2_7=g_navNode_0_2.addNode('251','Marina de Cascais',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/MarinadeCascais/index.htm');
g_navNode_0_2_8=g_navNode_0_2.addNode('91','Marina de Tr\xf3ia',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/MarinadeTroia/index.htm');
g_navNode_0_2_9=g_navNode_0_2.addNode('210','Marina Parque das Na\xe7\xf5es',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/MarinaParquedasNacoes/index.htm');
g_navNode_0_2_10=g_navNode_0_2.addNode('75','N\xfacleo de Recreio do Porto da Nazar\xe9',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/NucleodeRecreiodoPortodaNazare/index.htm');
g_navNode_0_2_11=g_navNode_0_2.addNode('74','Porto de Recreio da Figueira da Foz',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/PortodeRecreiodaFigueiradaFoz/index.htm');
g_navNode_0_2_12=g_navNode_0_2.addNode('78','Porto de Recreio de Oeiras',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/PortodeRecreiodeOeiras/index.htm');
g_navNode_0_2_13=g_navNode_0_2.addNode('83','Porto de Recreio de Sesimbra',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/PortodeRecreiodeSesimbra/index.htm');
g_navNode_0_2_14=g_navNode_0_2.addNode('269','Porto de Recreio do Carregal',ssUrlPrefix + 'MarinasandRecreationalPorts/Center/PortodeRecreiodoCarregal/index.htm');
g_navNode_0_3=g_navNode_0.addNode('243','South',ssUrlPrefix + 'MarinasandRecreationalPorts/South/index.htm');
g_navNode_0_3_0=g_navNode_0_3.addNode('92','Amieira Marina',ssUrlPrefix + 'MarinasandRecreationalPorts/South/AmieiraMarina/index.htm');
g_navNode_0_3_1=g_navNode_0_3.addNode('88','Doca de Recreio de Faro',ssUrlPrefix + 'MarinasandRecreationalPorts/South/DocadeRecreiodeFaro/index.htm');
g_navNode_0_3_2=g_navNode_0_3.addNode('86','Marina de Albufeira',ssUrlPrefix + 'MarinasandRecreationalPorts/South/MarinadeAlbufeira/index.htm');
g_navNode_0_3_3=g_navNode_0_3.addNode('93','Marina de Lagos',ssUrlPrefix + 'MarinasandRecreationalPorts/South/MarinadeLagos/index.htm');
g_navNode_0_3_4=g_navNode_0_3.addNode('254','Marina de Portim\xe3o',ssUrlPrefix + 'MarinasandRecreationalPorts/South/MarinadePortimao/index.htm');
g_navNode_0_3_5=g_navNode_0_3.addNode('87','Marina de Vilamoura',ssUrlPrefix + 'MarinasandRecreationalPorts/South/MarinadeVilamoura/index.htm');
g_navNode_0_3_6=g_navNode_0_3.addNode('250','Porto de Recreio Boca do Rio',ssUrlPrefix + 'MarinasandRecreationalPorts/South/PortodeRecreioBocadoRio/index.htm');
g_navNode_0_3_7=g_navNode_0_3.addNode('252','Porto de Recreio de Olh\xe3o',ssUrlPrefix + 'MarinasandRecreationalPorts/South/PortodeRecreiodeOlhao/index.htm');
g_navNode_0_3_8=g_navNode_0_3.addNode('85','Porto de Recreio de Sines',ssUrlPrefix + 'MarinasandRecreationalPorts/South/PortodeRecreiodeSines/index.htm');
g_navNode_0_3_9=g_navNode_0_3.addNode('249','Porto de Recreio de Tavira',ssUrlPrefix + 'MarinasandRecreationalPorts/South/PortodeRecreiodeTavira/index.htm');
g_navNode_0_3_10=g_navNode_0_3.addNode('89','Porto de Recreio do Guadiana',ssUrlPrefix + 'MarinasandRecreationalPorts/South/PortodeRecreiodoGuadiana/index.htm');
g_navNode_0_4=g_navNode_0.addNode('244','Madeira',ssUrlPrefix + 'MarinasandRecreationalPorts/Madeira/index.htm');
g_navNode_0_4_0=g_navNode_0_4.addNode('63','Marina de Porto Santo',ssUrlPrefix + 'MarinasandRecreationalPorts/Madeira/MarinadePortoSanto/index.htm');
g_navNode_0_4_1=g_navNode_0_4.addNode('61','Marina do Funchal',ssUrlPrefix + 'MarinasandRecreationalPorts/Madeira/MarinadoFunchal/index.htm');
g_navNode_0_4_2=g_navNode_0_4.addNode('62','Marina Quinta do Lorde',ssUrlPrefix + 'MarinasandRecreationalPorts/Madeira/MarinaQuintadoLorde/index.htm');
g_navNode_0_5=g_navNode_0.addNode('245','Azores',ssUrlPrefix + 'MarinasandRecreationalPorts/Azores/index.htm');
g_navNode_0_5_0=g_navNode_0_5.addNode('68','Horta Marina',ssUrlPrefix + 'MarinasandRecreationalPorts/Azores/HortaMarina/index.htm');
g_navNode_0_5_1=g_navNode_0_5.addNode('66','Marina D\'Angra',ssUrlPrefix + 'MarinasandRecreationalPorts/Azores/MarinaDAngra/index.htm');
g_navNode_0_5_2=g_navNode_0_5.addNode('65','Marina da Vila',ssUrlPrefix + 'MarinasandRecreationalPorts/Azores/MarinadaVila/index.htm');
g_navNode_0_5_3=g_navNode_0_5.addNode('64','Marina P\xearo de Teive',ssUrlPrefix + 'MarinasandRecreationalPorts/Azores/MarinaPerodeTeive/index.htm');
g_navNode_0_5_4=g_navNode_0_5.addNode('67','Marina Praia da Vit\xf3ria',ssUrlPrefix + 'MarinasandRecreationalPorts/Azores/MarinaPraiadaVitoria/index.htm');
g_navNode_1=g_navNode_Root.addNode('219','Vessels',ssUrlPrefix + 'Vessels/index.htm');
g_navNode_2=g_navNode_Root.addNode('220','Nautical Charts',ssUrlPrefix + 'NauticalCharts/index.htm');
g_navNode_3=g_navNode_Root.addNode('221','Nautical Sports',ssUrlPrefix + 'NauticalSports/index.htm');
g_navNode_4=g_navNode_Root.addNode('222','Directory of Entities',ssUrlPrefix + 'DirectoryofEntities/index.htm');
g_navNode_5=g_navNode_Root.addNode('223','Safety of Navigation',ssUrlPrefix + 'SafetyofNavigation/index.htm');
g_navNode_6=g_navNode_Root.addNode('224','Information',ssUrlPrefix + 'Information/index.htm');
g_navNode_7=g_navNode_Root.addNode('225','Statistics',ssUrlPrefix + 'Statistics/index.htm');
if (SSContributor)
{
g_navNode_17=g_navNode_Root.addNode('21','ADMIN APP',ssUrlPrefix + 'ADMINAPP/index.htm','contributorOnly==TRUE');
}
