/* [nodename, id, name, navigationtext, href, isnavigation, childs[], templatename] */

function jdecode(s) {
    s = s.replace(/\+/g, "%20")
    return unescape(s);
}

var POS_NODENAME=0;
var POS_ID=1;
var POS_NAME=2;
var POS_NAVIGATIONTEXT=3;
var POS_HREF=4;
var POS_ISNAVIGATION=5;
var POS_CHILDS=6;
var POS_TEMPLATENAME=7;
var theSitetree=[ 
	['PAGE','10104',jdecode('Home'),jdecode(''),'/10104/index.html','true',[ 
		['PAGE','10187',jdecode('Home+%28follow+up+page%29'),jdecode(''),'/10104/10187.html','false',[],'']
	],''],
	['PAGE','33920',jdecode('History+of+Fern+Recording+on+Skye'),jdecode(''),'/33920.html','true',[],''],
	['PAGE','42391',jdecode('Vegetation'),jdecode(''),'/42391.html','true',[],''],
	['PAGE','42491',jdecode('National+Vegetation+Classification'),jdecode(''),'/42491.html','true',[],''],
	['PAGE','9510',jdecode('Check+List+of+Pteridophytes'),jdecode(''),'/9510.html','true',[],''],
	['PAGE','26042',jdecode('Asplenium+adiantum-nigrum'),jdecode(''),'/26042.html','true',[],''],
	['PAGE','26520',jdecode('Asplenium+ceterach'),jdecode(''),'/26520.html','true',[],''],
	['PAGE','26547',jdecode('Asplenium+marinum'),jdecode(''),'/26547.html','true',[],''],
	['PAGE','26574',jdecode('Asplenium+ruta-muraria'),jdecode(''),'/26574.html','true',[],''],
	['PAGE','26601',jdecode('Asplenium+scolopendrium'),jdecode(''),'/26601.html','true',[],''],
	['PAGE','26628',jdecode('Asplenium+trichomanes'),jdecode(''),'/26628.html','true',[],''],
	['PAGE','26655',jdecode('Asplenium+viride'),jdecode(''),'/26655.html','true',[],''],
	['PAGE','26682',jdecode('Athyrium+filix-femina'),jdecode(''),'/26682.html','true',[],''],
	['PAGE','26709',jdecode('Blechnum+spicant'),jdecode(''),'/26709.html','true',[],''],
	['PAGE','26736',jdecode('Botrychium+lunaria'),jdecode(''),'/26736.html','true',[],''],
	['PAGE','23420',jdecode('Crytogramma+crispa'),jdecode(''),'/23420.html','true',[],''],
	['PAGE','23447',jdecode('Cystopteris+fragilis'),jdecode(''),'/23447.html','true',[],''],
	['PAGE','23474',jdecode('Cystopteris+montana'),jdecode(''),'/23474.html','true',[],''],
	['PAGE','23501',jdecode('Dryopteris+aemula'),jdecode(''),'/23501.html','true',[],''],
	['PAGE','23528',jdecode('Dryopteris+affinis+agg'),jdecode(''),'/23528.html','true',[],''],
	['PAGE','35720',jdecode('Dryopteris+affinis'),jdecode(''),'/35720.html','true',[],''],
	['PAGE','48891',jdecode('Dryopteris+borreri'),jdecode(''),'/48891.html','true',[],''],
	['PAGE','48922',jdecode('Dryopteris+cambrensis'),jdecode(''),'/48922.html','true',[],''],
	['PAGE','23555',jdecode('Dyopteris+carthusiana'),jdecode(''),'/23555.html','true',[],''],
	['PAGE','23582',jdecode('Dryopteris+dilatata'),jdecode(''),'/23582.html','true',[],''],
	['PAGE','23609',jdecode('Dryopteris+expansa'),jdecode(''),'/23609.html','true',[],''],
	['PAGE','23636',jdecode('Dryopteris+filix-mas'),jdecode(''),'/23636.html','true',[],''],
	['PAGE','23663',jdecode('Dryopteris+oreades'),jdecode(''),'/23663.html','true',[],''],
	['PAGE','42191',jdecode('Dryopteris+x+complexa'),jdecode(''),'/42191.html','true',[],''],
	['PAGE','48984',jdecode('Dryopteris+x+convoluta'),jdecode(''),'/48984.html','true',[],''],
	['PAGE','48953',jdecode('Dryopteris+x+critica'),jdecode(''),'/48953.html','true',[],''],
	['PAGE','23690',jdecode('Gymnocarpium+dryopteris'),jdecode(''),'/23690.html','true',[],''],
	['PAGE','23717',jdecode('Hymenophyllum+tunbrigense'),jdecode(''),'/23717.html','true',[],''],
	['PAGE','23744',jdecode('Hymenophyllum+wilsonii'),jdecode(''),'/23744.html','true',[],''],
	['PAGE','23771',jdecode('Ophioglossum+vulgatum'),jdecode(''),'/23771.html','true',[],''],
	['PAGE','23798',jdecode('Oreopteris+limbosperma'),jdecode(''),'/23798.html','true',[],''],
	['PAGE','23825',jdecode('Osmunda+regalis'),jdecode(''),'/23825.html','true',[],''],
	['PAGE','24220',jdecode('Phegopteris+connectilis'),jdecode(''),'/24220.html','true',[],''],
	['PAGE','24247',jdecode('Pilularia+globulifera'),jdecode(''),'/24247.html','true',[],''],
	['PAGE','24274',jdecode('Polypodium+interjectum'),jdecode(''),'/24274.html','true',[],''],
	['PAGE','24301',jdecode('Polypodium+vulgare'),jdecode(''),'/24301.html','true',[],''],
	['PAGE','24328',jdecode('Polypodium+x+mantoniae'),jdecode(''),'/24328.html','true',[],''],
	['PAGE','24355',jdecode('Polystichum+aculeatum'),jdecode(''),'/24355.html','true',[],''],
	['PAGE','24382',jdecode('Polystichum+lonchitis'),jdecode(''),'/24382.html','true',[],''],
	['PAGE','40691',jdecode('Polystichum+setiferum'),jdecode(''),'/40691.html','true',[],''],
	['PAGE','24409',jdecode('Polystichum+x+bicknellii'),jdecode(''),'/24409.html','true',[],''],
	['PAGE','24436',jdecode('Pteridium+aquilinum'),jdecode(''),'/24436.html','true',[],''],
	['PAGE','24463',jdecode('Trichomanes+speciosum+gam.'),jdecode(''),'/24463.html','true',[],''],
	['PAGE','24490',jdecode('Woodsia+alpina'),jdecode(''),'/24490.html','true',[],''],
	['PAGE','47391',jdecode('Huperzia+selago'),jdecode(''),'/47391.html','true',[],''],
	['PAGE','47422',jdecode('Lycopodiella+inundata'),jdecode(''),'/47422.html','true',[],''],
	['PAGE','47453',jdecode('Lycopodium+clavatum'),jdecode(''),'/47453.html','true',[],''],
	['PAGE','47484',jdecode('Lycopodium+annotinum'),jdecode(''),'/47484.html','true',[],''],
	['PAGE','47515',jdecode('Diphasiastrum+alpinum'),jdecode(''),'/47515.html','true',[],''],
	['PAGE','47546',jdecode('Selaginella+selaginoides'),jdecode(''),'/47546.html','true',[],''],
	['PAGE','47577',jdecode('Isoetes+lacustris'),jdecode(''),'/47577.html','true',[],''],
	['PAGE','47608',jdecode('Isoetes+echinospora'),jdecode(''),'/47608.html','true',[],''],
	['PAGE','47825',jdecode('Equisetum+arvense'),jdecode(''),'/47825.html','true',[],''],
	['PAGE','47732',jdecode('Equisetum+fluviatile'),jdecode(''),'/47732.html','true',[],''],
	['PAGE','47639',jdecode('Equisetum+hyemale'),jdecode(''),'/47639.html','true',[],''],
	['PAGE','47949',jdecode('Equisetum+palustre'),jdecode(''),'/47949.html','true',[],''],
	['PAGE','47887',jdecode('Equisetum+pratense'),jdecode(''),'/47887.html','true',[],''],
	['PAGE','47918',jdecode('Equisetum+sylvaticum'),jdecode(''),'/47918.html','true',[],''],
	['PAGE','48011',jdecode('Equisetum+telmateia'),jdecode(''),'/48011.html','true',[],''],
	['PAGE','47701',jdecode('Equisetum+variegatum'),jdecode(''),'/47701.html','true',[],''],
	['PAGE','47763',jdecode('Equisetum+x+dycei'),jdecode(''),'/47763.html','true',[],''],
	['PAGE','47980',jdecode('Equisetum+x+font-queri'),jdecode(''),'/47980.html','true',[],''],
	['PAGE','47794',jdecode('Equisetum+x+litorale'),jdecode(''),'/47794.html','true',[],''],
	['PAGE','47670',jdecode('Equisetum+x+trachyodon'),jdecode(''),'/47670.html','true',[],''],
	['PAGE','47856',jdecode('Equisetum+x+rothmaleri'),jdecode(''),'/47856.html','true',[],''],
	['PAGE','39492',jdecode('Bibliography'),jdecode(''),'/39492.html','true',[],'']];
var siteelementCount=72;
theSitetree.topTemplateName='Galerie';
					                                                                    
theSitetree.getById = function(id, ar) {												
							if (typeof(ar) == 'undefined')                              
								ar = this;                                              
							for (var i=0; i < ar.length; i++) {                         
								if (ar[i][POS_ID] == id)                                
									return ar[i];                                       
								if (ar[i][POS_CHILDS].length > 0) {                     
									var result=this.getById(id, ar[i][POS_CHILDS]);     
									if (result != null)                                 
										return result;                                  
								}									                    
							}                                                           
							return null;                                                
					  };                                                                
					                                                                    
theSitetree.getParentById = function(id, ar) {											
						if (typeof(ar) == 'undefined')                              	
							ar = this;                                             		
						for (var i=0; i < ar.length; i++) {                        		
							for (var j = 0; j < ar[i][POS_CHILDS].length; j++) {   		
								if (ar[i][POS_CHILDS][j][POS_ID] == id) {          		
									// child found                                 		
									return ar[i];                                  		
								}                                                  		
								var result=this.getParentById(id, ar[i][POS_CHILDS]);   
								if (result != null)                                 	
									return result;                                  	
							}                                                       	
						}                                                           	
						return null;                                                	
					 }								                                    
					                                                                    
theSitetree.getName = function(id) {                                                    
						var elem = this.getById(id);                                    
						if (elem != null)                                               
							return elem[POS_NAME];                                      
						return null;	                                                
					  };			                                                    
theSitetree.getNavigationText = function(id) {                                          
						var elem = this.getById(id);                                    
						if (elem != null)                                               
							return elem[POS_NAVIGATIONTEXT];                            
						return null;	                                                
					  };			                                                    
					                                                                    
theSitetree.getHREF = function(id) {                                                    
						var elem = this.getById(id);                                    
						if (elem != null)                                               
							return elem[POS_HREF];                                      
						return null;	                                                
					  };			                                                    
					                                                                    
theSitetree.getIsNavigation = function(id) {                                            
						var elem = this.getById(id);                                    
						if (elem != null)                                               
							return elem[POS_ISNAVIGATION];                              
						return null;	                                                
					  };			                                                    
					                                                                    
theSitetree.getTemplateName = function(id, lastTemplateName, ar) {             		 
	                                                                                 
	if (typeof(lastTemplateName) == 'undefined')                                     
		lastTemplateName = this.topTemplateName;	                                 
	if (typeof(ar) == 'undefined')                                                   
		ar = this;                                                                   
		                                                                             
	for (var i=0; i < ar.length; i++) {                                              
		var actTemplateName = ar[i][POS_TEMPLATENAME];                               
		                                                                             
		if (actTemplateName == '')                                                   
			actTemplateName = lastTemplateName;		                                 
		                                                                             
		if (ar[i][POS_ID] == id) {                                			         
			return actTemplateName;                                                  
		}	                                                                         
		                                                                             
		if (ar[i][POS_CHILDS].length > 0) {                                          
			var result=this.getTemplateName(id, actTemplateName, ar[i][POS_CHILDS]); 
			if (result != null)                                                      
				return result;                                                       
		}									                                         
	}                                                                                
	return null;                                                                     
	};                                                                               
/* EOF */					                                                            
