
		var js_fileStructureP = js_fileStructure.prototype;
		
		function js_fileStructure()
		{
			this.type = 'js_fileStructure';			
			this.name = '';
			g_fac.register(this);
			
			//Webroot
			this.webRoot = null;
			this.webRoot_hierarchy = null;
			
			//Body
			this.docBody = document.body;
			
			//Data
			this.data = null;
			this.mainDirections = null;
			this.topNodeItems = [];
			
			//Menupresenter
			this.menuPresenterId = this.id + '_menuPresenter';
			this.subMenuIsVisible = false;

			//Language
			this.lang = 'en';
						
			//Display
			this.ob_container = null;
			this.id_container = null;

			//Current branch in focus
			this.topLevelSortOrder = null;
			this.selectedPage = ['frontpage'];
			this.formerSelectedPage = ['frontpage'];
			this.selectedNode = null;
			this.formerSelectedNode = null;			
			
			//Lefthand sub menu
			this.leftHandSubMenuFile = null; //'about.txt';
			
			//Current template
			this.currentTemplate = null;
			
			//Pict player
			this.selectedPictSeriesHeader = null;
			this.selectedPictSeries = null;
			this.selectedPictSeriesFullSize = null;
			this.selectedPictSeriesCaptions = null;
			this.selectedPictSeriesCurrentIndex = null;	
			
			this.selectedPictSeriesBaseUrl = null;
			this.pictPlayerImgId = this.id + '_pictPlayerImg';
			this.pictPlayerImg = null;
			this.pictPlayerCaptionId = this.id + '_pictPlayerCaptionId';
			this.pictPlayerCaption = null;
			
		}
		
		js_fileStructureP.init = function()
		{
			this.ob_container = document.getElementById(this.id_container);
			this.selectedNode = this.localizeItem(['frontpage'],this.data);
	
		}
		
		
		/*##############################################################################
		#
		#	EXTRACTORS
		#	
		##############################################################################*/
		
		
				//MAIN EXTRACTOR
				js_fileStructureP.extract = function()
				{
					this.extractTopNodeItems();					
					this.webRoot = this.mainDirections.webroot;
					this.webRoot_hierarchy = this.mainDirections.webroothierarchy;
					//this.extractTopMenu();
					//this.extractLangMenu();
				}
				
				//EXTRACT TOP NODES FROM DATA
				js_fileStructureP.extractTopNodeItems = function()
				{
		
					var curr = null;
					
						for(var i in this.data)
						{
							curr = this.data[i];
		
							if(curr.Name != 'directions.txt' && eval(curr.IsMap) == true)
							{
							this.topNodeItems.push(curr);
							}	//Get main directions - ie directions.txt on top-level
							else if(curr.Name == 'directions.txt')
							{
							this.mainDirections = curr.Directions;
							this.topLevelSortOrder = this.mainDirections.topLevelSortOrder;
							}
						}
						
					this.reOrderTopLevel();
				}
				
				js_fileStructureP.reOrderTopLevel = function()
				{

					var newTopNodeOrder = [];
					var curr = null;
					for(var i in this.topLevelSortOrder)
					{
						
						curr = this.topLevelSortOrder[i];
						
						for(var b in this.topNodeItems)
						{
							if(curr == this.topNodeItems[b].Name)
							{
								newTopNodeOrder.push(this.topNodeItems[b])
								break;
							}
						}
						
					}
					
					this.topNodeItems = newTopNodeOrder;
					
				}

				//EXTRACTOR DIRECTION FILE
				js_fileStructureP.getDirectionFile = function(o)
				{
					var list = o.Files;
					
					if(g_main.isDefinedNOF(list))
					{
						
						var curr = null;
						for(var i in list)
						{
							curr = list[i];
							if(curr.Name == 'directions.txt')
							{
							return curr.Directions;
							}
						}
					}
					
					return null;
				}						

		/*##############################################################################
		#
		#	GENERATORS
		#	
		##############################################################################*/
		
				
				//GENERATE TOP MENU
				js_fileStructureP.generateTopMenu = function()
				{
					var sb = new js_stringBuffer();
					
						var idBase = 'topMenu_';
						var list = this.topNodeItems;
						var curr = null;
						for(var i in list)
						{
							curr = list[i];
							
							
							//Get top menu link with corresponding selected language
							var dirs = this.getDirectionFile(curr);
							if(dirs != null)
							{
								//if label doesn't exist - get english version
								var text = dirs.language[this.lang];
								if(!g_main.isDefinedNOF(text))
								{
								text = dirs.language['en'];
								}
								
							if(g_main.isDefinedNOF(dirs.getfirstitemonsinglemap) && curr.Files.length <= 2) //Get first map as default if there is only one submap
							{	
								var firstMapName = this.getFirstSubMapOnItem(curr);
								if(firstMapName != null)
								{
									sb.append(this.generateJLink(text.toUpperCase(), 'selectPage', curr.Name + '&' + firstMapName.Name, 'topMenuLink', idBase + i, null));
								}
								else
								{
									sb.append(this.generateJLink(text.toUpperCase(), 'selectPage', curr.Name, 'topMenuLink', idBase + i, null));	
								}
							}
							else
							{
								sb.append(this.generateJLink(text.toUpperCase(), 'selectPage', curr.Name, 'topMenuLink', idBase + i, null));	
							}
					//		var preCheckDescriptionFile = this.getDirectionFile(this.selectedNode);
					//if(g_main.isDefinedNOF(preCheckDescriptionFile.forcepageonload))
											
							}

						}
						
					return sb.toString();
				}
				
				js_fileStructureP.getFirstSubMapOnItem = function(node)
				{
					var curr = null;
					
						for(var i in node.Files)
						{
					
							curr = node.Files[i];
							if(eval(curr.IsMap) == true)
							{
								return curr;
							}
						}
					
					return null;
				}
				
				//GENERATE LANG MENU
				js_fileStructureP.generateLangMenu = function()
				{
					var sb = new js_stringBuffer();
					
						var idBase = 'langMenu_';
						var list = this.mainDirections.language;
						var curr = null;
						var className = 'langMenuLink';
						
						sb.append('<div onmouseover="g_fac.getObjectExecFunc(\'' + this.id + '\',\'mouseOverOnSideMenus\');">')
							for(var i in list)
							{
								curr = list;								

								if(this.lang == i)
								{
								className = 'langMenuLinkSelected';
								}
								else
								{
								className = 'langMenuLink';
								}
								
								sb.append(this.generateJLink(curr[i].toUpperCase(), 'selectLang', i, className, idBase+i, null));
								sb.append('<br /><br />');
							}
						sb.append('</div>');
						
					return sb.toString();
				}
				
				
				js_fileStructureP.generateLeftHandSubMenu = function()
				{
					var sb = new js_stringBuffer();
					
					
					var list = this.mainDirections.leftHandSubMenuDirections[this.selectedPage[0]];
					
					if(g_main.isDefinedNOF(list))
					{
					list = list[this.lang];
					
						var idBase = 'leftHandSubMenu_';
						//var list = this.mainDirections.language;
						var curr = null;
						var className = 'leftHandSubMenuLink';
						var paramValue = '';
						
						sb.append('<div onmouseover="g_fac.getObjectExecFunc(\'' + this.id + '\',\'mouseOverOnSideMenus\');">')
							for(var i in list)
							{

								curr = list;	
														
								paramValue = i + '.txt';
								
								if(this.leftHandSubMenuFile == paramValue)
								{
								className = 'leftHandSubMenuLinkSelected';
								}
								else
								{
								className = 'leftHandSubMenuLink';
								}
								
								sb.append(this.generateJLink(curr[i].toUpperCase(), 'selectFromLeftHandSubMenu', paramValue, className, idBase+i, null));
								sb.append('<br /><br />');
							}
						sb.append('</div>');
					}
					
					return sb.toString();
				}
				
				//GENERATE 
				js_fileStructureP.generateContents = function()
				{

					var sb = new js_stringBuffer();
					
						if(g_main.isDefinedNOF(this.selectedNode))
						{

								var dirs = this.getDirectionFile(this.selectedNode);
								if(dirs != null)
								{
																	
									if(this.leftHandSubMenuFile == null)
									{
										if(g_main.isDefinedNOF(dirs.defaultfile))
										{
										this.leftHandSubMenuFile = dirs.defaultfile;
										}
									}

									if(g_main.isDefinedNOF(dirs.template))
									{
									this.currentTemplate = dirs.template;
									}
									else
									{
									this.currentTemplate = null;
									}

								}

						}
						
						//BODY
						sb.append(this.generateTemplate());
						
						
					return sb.toString();
				}
				
				
				
				js_fileStructureP.getPageHeaderOnSelectedNode = function(plain)
				{
					var header = '';

					var dirs = this.getDirectionFile(this.selectedNode);
					
					if(dirs != null)
					{
						if(!g_main.isDefinedNOF(dirs.hideheader))
						{

							if(g_main.isDefinedNOF(dirs.language))
							{
							header = dirs.language[this.lang];
								
								if(!g_main.isDefinedNOF(header))
								{
								header = dirs.language['en'];
								}
							}
							else if(g_main.isDefinedNOF(dirs.name))
							{
							header = dirs.name;
							}	
						}
					}	
					
					if(header == '')
					{
						return '';
					}
					else
					{
						if(plain == true)
						{
							return header.toUpperCase();
						}
						else
						{
							return '<div class="mainHeader">' + header.toUpperCase() + '</div>';
						}
					}
				}
				
				js_fileStructureP.getLanguageSpecificTextFileFromSelectedNode = function(filename)
				{
					if(g_main.isDefinedNOF(this.selectedNode))
					{
						var urlHierarchy = [];
						for(var m in this.selectedPage)
						{
						urlHierarchy.push(this.selectedPage[m]);
						}
						var list = this.selectedNode.Files;
						var fileExists = false;
						if(list.length > 0)
						{
							var curr = null;
							for(var i in list)
							{	
								curr = list[i];
								if(curr.Name == 'texts')
								{
								urlHierarchy.push('texts');
								
									var langList = curr.Files;
									var currLangFile = null;
									for(var b in langList)
									{	
										currLangFile = langList[b];
										if(currLangFile.Name == this.lang)
										{
										urlHierarchy.push(currLangFile.Name);
										
											var selLangList = currLangFile.Files;
											var selCurrLangFile = null;
											for(var c in selLangList)
											{	
												selCurrLangFile = selLangList[c];
												if(selCurrLangFile.Name == filename)
												{
													fileExists = true;													
													return selCurrLangFile.Text;
												}
											}
										}
									}							
								}							
							}
						}	
						
						if(fileExists == false)
						{
						return 'fil finns inte';
						}
					}				
				}

				js_fileStructureP.getLanguageUnhandledSpecificTextFileFromSelectedNode = function(filename)
				{
					if(g_main.isDefinedNOF(this.selectedNode))
					{
						var urlHierarchy = [];
						for(var m in this.selectedPage)
						{
						urlHierarchy.push(this.selectedPage[m]);
						}
						var list = this.selectedNode.Files;
						var fileExists = false;
						if(list.length > 0)
						{
							var curr = null;
							for(var i in list)
							{	
								curr = list[i];
								if(curr.Name == 'texts')
								{
								urlHierarchy.push('texts');
								
									var langList = curr.Files;

									
									var currLangFile = null;
									for(var b in langList)
									{	
										currLangFile = langList[b];
										if(currLangFile.Name == filename)
										{
										urlHierarchy.push(currLangFile.Name);										
										return currLangFile.Text;
										}
									}					
								}							
							}
						}	
						
						if(fileExists == false)
						{
						return 'fil finns inte';
						}
					}				
				}

				js_fileStructureP.getLanguageSpecificTextFileFromForwardedNode = function(node, filename)
				{
					var list = node.Files;
					var curr = null;
					for(var i in list)
					{
						curr = list[i];
						if(curr.Name == this.lang)
						{
							var subList = curr.Files;
							var subCurr = null;
							for(var i in subList)
							{
								subCurr = subList[i];
								if(subCurr.Name == filename)
								{
									return subCurr.Text;
								}								
							}
						}
						
					}
					
					return '';
					
				}
				
				//GENERATE J LINK
				js_fileStructureP.generateJLink = function(label, func, param, className, domId, closeOnClick)
				{
					var sb = new js_stringBuffer();
					
						var onClickClose = '';
						if(closeOnClick != null)
						{
							//onClickClose = 'onclick="g_main.killDom(\'' + closeOnClick + '\');"'; 
						}
						
						sb.append('<a ' + onClickClose + 'id="' + domId + '" class="' + className + '" href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'' + func + '\',[\'' + param + '\',\'' + domId + '\']);">' + label + '</a>');
						
					return sb.toString();
				}
				
				
				js_fileStructureP.generate = function()
				{

					var sb = new js_stringBuffer();
					var topMenu = this.generateTopMenu();
					var langMenu = this.generateLangMenu();
					var contents = this.generateContents();
					var leftHandSubMenu = this.generateLeftHandSubMenu();										
					
						sb.append('<table cellpadding="0" cellspacing="0" style="width: 960px;" align="center">');
						sb.append('<tr style="height: 120px;">');
							sb.append('<td style="width: 110px;" valign="bottom">');
								
							sb.append('</td>');
							sb.append('<td style="width: 20px;">&nbsp;');						
							sb.append('</td>');							
							sb.append('<td class="menuArea" valign="bottom">');
							
								sb.append('<table cellpadding="0" cellspacing="0" style="width: 700px;">');
								sb.append('<tr>');
								sb.append('<td style="height: 80px; vertical-align: bottom;padding-bottom: 5px;">');
								sb.append(topMenu);
								sb.append('</td>');
								sb.append('<td style="height: 80px; vertical-align: bottom;" align="right">');
								sb.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'frontpage\');">');
								sb.append('<img src="' + this.webRoot + 'image/logo.gif" border="0" />');
								sb.append('</a>');
								sb.append('</td>');
								sb.append('</tr>');
								sb.append('</table>');
								
							sb.append('</td>');
							sb.append('<td style="width: 20px;">&nbsp;');						
							sb.append('</td>');														
							sb.append('<td style="width: 110px;" valign="bottom">');
								
							sb.append('</td>');												
						sb.append('</tr>');
						sb.append('<tr style="height: 500px;">');
							sb.append('<td style="width: 110px; padding-top: 20px; text-align: right;" valign="top">');
								sb.append(leftHandSubMenu);
								sb.append('&nbsp;');
							sb.append('</td>');						
							sb.append('<td style="width: 20px;">&nbsp;');						
							sb.append('</td>');														
							sb.append('<td class="contentArea" id="contentArea" valign="top">');
								sb.append(contents);
							sb.append('</td>');		
							sb.append('<td style="width: 20px;">&nbsp;');						
							sb.append('</td>');														
							sb.append('<td style="width: 110px; padding-top: 20px;" valign="top">');
								
								var langUnhandled = this.getDirectionFile(this.selectedNode).islangunhandled;
								
								if(langUnhandled != true)
								{
								sb.append(langMenu);
								}

							sb.append('</td>');							
						sb.append('</tr>');
						sb.append('<tr style="">');
							sb.append('<td style="width: 110px;">');
							
							sb.append('</td>');
							sb.append('<td style="width: 20px;">&nbsp;');						
							sb.append('</td>');														
							sb.append('<td class="footerArea" valign="top">');
								sb.append('SWEDISH PHOTOGRAPHY, KARL-MARX-ALLEE 62, 10243 BERLIN • &nbsp;+49 (0) 30 8147 3709 • INFO@SWEDISHPHOTOGRAPHY.ORG');
								sb.append('<br />');
								
									if(this.lang == 'de')
									{
									sb.append('ÖFFNUNGSZEITEN MI-SA 12-18 UHR • ');
									sb.append('© SWEDISH PHOTOGRAPHY ALL RIGHTS RESERVED • ');
									sb.append('<a class="impressumLink" href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'impressum\');">IMPRESSUM</a>');									
									}
									else
									{
									sb.append('OPENING HOURS WED-SAT 12-6 PM • ');
									sb.append('© SWEDISH PHOTOGRAPHY ALL RIGHTS RESERVED • ');
									sb.append('<a class="impressumLink" href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'impressum\');">IMPRINT</a>');									
									}
								
							sb.append('</td>');
							sb.append('<td style="width: 20px;">&nbsp;');						
							sb.append('</td>');														
							sb.append('<td style="width: 110px;">');								
							sb.append('</td>');												
						sb.append('</tr>');						
						sb.append('</table>');
					
					this.ob_container.innerHTML = sb.toString();
				}
		
		
		/*##############################################################################
		#
		#	ACTIONS
		#	
		##############################################################################*/		
		
			
				js_fileStructureP.selectLang = function(args)
				{
				
					var argList = args.split(",");
					this.lang = argList[0]; //param;
					
					this.selectPage('frontpage');
					/*if(g_main.domExists(this.menuPresenterId) && this.formerSelectedPage != null)
					{						
					this.selectPage(this.formerSelectedPage);	
					}
					else
					{
					this.generate();
					}*/
					
					g_main.killDom(this.menuPresenterId);
					
				}
		
				js_fileStructureP.mouseOverOnSideMenus = function()
				{

					if(g_main.domExists(this.menuPresenterId) && this.formerSelectedPage != null && this.formerSelectedNode != null)
					{
					this.selectedNode = this.formerSelectedNode;
					this.selectedPage = this.formerSelectedPage;	
					}
					
					g_main.killDom(this.menuPresenterId);
				}
				
				js_fileStructureP.selectFromLeftHandSubMenu = function(args)
				{
					
					
					var argList = args.split(",");
					this.leftHandSubMenuFile = argList[0]; //param;
					
					if(g_main.domExists(this.menuPresenterId) && this.formerSelectedPage != null)
					{
					this.selectPage(this.formerSelectedPage);	
					}
					else
					{
					this.generate();
					}
					
					g_main.killDom(this.menuPresenterId);
				}

				js_fileStructureP.selectPage = function(args)
				{
					

						var argList = args.split(",");
						var param = argList[0];
						var domId = argList[1];
						var hierarchy = param.split("&");
						var hierarchyOrig = param.split("&");
	
						if(typeof hierarchy  == 'string')
						{
						hierarchy = [hierarchy];
						}
	
					var oldNode = this.selectedNode;
		
					var selectedItem = this.localizeItem(hierarchy, this.data)
					this.selectedNode = selectedItem;

					if(g_main.domExists(this.menuPresenterId) && oldNode == this.selectedNode)
					{
					g_main.killDom(this.menuPresenterId);
					}
					else
					{
							
						g_main.killDom(this.menuPresenterId);
						
						var isDropDown = this.decideDropDownOrUrl(hierarchy, selectedItem);
						
						var preCheckDescriptionFile = this.getDirectionFile(this.selectedNode);
						if(g_main.isDefinedNOF(preCheckDescriptionFile.forcepageonload))
						{
						isDropDown = false;
						}
	
						if(isDropDown == true)
						{
						this.generateSubMenu(hierarchy, selectedItem, domId);
						}
						else
						{
						this.leftHandSubMenuFile = this.getDirectionFile(this.selectedNode).defaultfile;
						this.selectedPage = hierarchyOrig;
						this.formerSelectedPage = hierarchyOrig
						this.formerSelectedNode = this.selectedNode;
						this.generate();			
						}
					}

				}
				
				js_fileStructureP.localizeItem = function(paramArray, node)
				{


						var param = paramArray[0];
	
						var list = null;

						if(!g_main.isDefinedNOF(node.Depth))
						{
						list = node;
						}
						else
						{
						list = node.Files;
						}
						
						if(g_main.isDefinedNOF(list))
						{
							
							var curr = null;
							for(var i in list)
							{
								
								curr = list[i];							

								if(curr.Name == param && eval(curr.IsMap) == true && !(curr.Name == 'series' || curr.Name == 'texts'))
								{
								
									if(g_main.isDefinedNOF(curr.Files) && paramArray.length > 0)
									{
									return this.localizeItem(paramArray.splice(1,1), curr);
									}									
								}
								
							}
						}
						
						return node;
				}
				
				js_fileStructureP.localizePictSeriesTop = function(paramArray, node)
				{


						var param = paramArray[0];
						var list = null;

						if(!g_main.isDefinedNOF(node.Depth))
						{
						list = node;
						}
						else
						{
						list = node.Files;
						}
						
						if(g_main.isDefinedNOF(list))
						{
							
							var curr = null;
							for(var i in list)
							{
								
								curr = list[i];							
									
								if(curr.Name == param && eval(curr.IsMap) == true)
								{	

									if(g_main.isDefinedNOF(curr.Files) && paramArray.length > 0)
									{
									paramArray.splice(0,1);
									return this.localizePictSeriesTop(paramArray, curr);
									}								
								}								
							}
							
						}
						
						return node;
				}
				
				js_fileStructureP.decideDropDownOrUrl = function(hierarchy, node)
				{

					var curr = null;
					if(g_main.isDefinedNOF(node.Files))
					{
						for(var i in node.Files)
						{
							curr = node.Files[i];

							if(eval(curr.IsMap) == true && !(curr.Name == 'series' || curr.Name == 'texts'))
							{
							return true;
							}
						}						
					}
					
					return false;
				}
				
				js_fileStructureP.generateSubMenu = function(hierarchy, node, domReference)
				{

					var dim = g_main.domDimensions(domReference);
					var left = dim[0];
					var top = dim [1];
					
					var sb = new js_stringBuffer();
					var curr = null;
					var idBase = 'subMenu_';

					if(g_main.isDefinedNOF(node.Files))
					{
						var nodeFiles = this.namesort(node.Files, 'Name',0);
						for(var i in nodeFiles)
						{
							var text = '';
							curr = nodeFiles[i];
							
							if(eval(curr.IsMap) == true)
							{
								var newHierarchy = hierarchy +'&'+curr.Name;

								var dirs = this.getDirectionFile(curr);
								if(dirs != null)
								{
									//If lang diff exists
									if(g_main.isDefinedNOF(dirs.language))
									{
									text = dirs.language[this.lang];
										if(!g_main.isDefinedNOF(text))
										{
										text = dirs.language['en'];
										}
									}
									else if(g_main.isDefinedNOF(dirs.name))
									{
									text = dirs.name;
									}
									
								sb.append(this.generateJLink(text.toUpperCase(), 'selectPage', newHierarchy, 'subMenuLink', idBase + i, this.menuPresenterId) + '<br />');
								}
							}
						}						
					}
					
					var presenter = document.createElement("DIV");
					presenter.id = this.menuPresenterId;
					presenter.style.position = 'absolute';
					presenter.style.top = (top + 20) + 'px';
					presenter.style.left = left + 'px';
					presenter.style.backgroundColor = 'white';
					presenter.style.border = 'solid black 1px';
					presenter.style.padding = '5px';
					
					this.docBody.appendChild(presenter);
					presenter.innerHTML = sb.toString();					

				}
				
				js_fileStructureP.namesort = function(obj, param, direction)
				{

						m_sort_desc = function(a,b)
						{
						if(a[param] > b[param]) return 1
						if(a[param] < b[param])  return -1
						return 0
						}
						
						m_sort_asc = function(a,b)
						{
						if(a[param] < b[param]) return 1
						if(a[param] > b[param])  return -1
						return 0
						}	
						
						if(param == false)
						{
						return obj;
						}
						else if(direction == 0)
						{
						return obj.sort(m_sort_desc);
						}
						else
						{
						return obj.sort(m_sort_asc);
						}
			
					return obj;
				}
				
				js_fileStructureP.namesortStripFromExt = function(obj, param, direction)
				{
		
						m_sort_desc = function(a,b)
						{
						var _a = a[param].substr(0,a[param].indexOf("."));
						var _b = b[param].substr(0,b[param].indexOf("."));
							
							if(eval(_a) > eval(_b)) return 1
							if(eval(_a) < eval(_b))  return -1
							return 0
						}
						
						m_sort_asc = function(a,b)
						{
						var _a = a[param].substr(0,a[param].indexOf("."));
						var _b = b[param].substr(0,b[param].indexOf("."));						
							if(eval(_a) < eval(_b)) return 1
							if(eval(_a) > eval(_b))  return -1
						return 0
						}	
						
						if(param == false)
						{
						return obj;
						}
						else if(direction == 0)
						{
						return obj.sort(m_sort_desc);
						}
						else
						{
						return obj.sort(m_sort_asc);
						}
			
					return obj;
				}
				
				
				
				js_fileStructureP.createJsonFormattedUrl = function(urlHierarchy, fileName)
				{
					var sb = new js_stringBuffer();
					sb.append(this.webRoot_hierarchy);
					
						for(var i in urlHierarchy)
						{
						sb.append(urlHierarchy[i] + '/');
						}
						
					sb.append(fileName);
					return sb.toString();
				}
				
				js_fileStructureP.createNodeStructureString = function(urlHierarchy)
				{
					var sb = new js_stringBuffer();
	
						for(var i in urlHierarchy)
						{
							if(sb.toString() != '')
							{
							sb.append('&');
							}
							
						sb.append(urlHierarchy[i]);
						}

					return sb.toString();
				}
				
				
				js_fileStructureP.generateTemplate = function()
				{
					var sb = new js_stringBuffer();
				
					sb.append('<div ');
					
						if(this.currentTemplate != null)
						{
							if(this.currentTemplate == 'artist')
							{
								sb.append(' class="contentAreaArtistTemplate">');
								
								if(this.leftHandSubMenuFile == 'about.txt' || this.leftHandSubMenuFile == 'press.txt')
								{
								sb.append(this.generateArtistAboutTemplate());									
								}
								else if(this.leftHandSubMenuFile == 'cv.txt')
								{
								sb.append(this.generateArtistCvTemplate());									
								}							
								else if(this.leftHandSubMenuFile == 'portfolio.txt' || this.leftHandSubMenuFile == 'opening.txt')
								{
								sb.append(this.generateArtistPorfolioTemplate());									
								}								
							}
							else if(this.currentTemplate == 'exhibition')
							{
								sb.append(' class="contentAreaExhibitionTemplate">');
								sb.append(this.generateExhibitionTemplate());
							}
							else if(this.currentTemplate == 'frontpage')
							{
								sb.append(' class="contentAreaFrontPageTemplate">');
								sb.append(this.generateFrontPageTemplate());
							}	
							else if(this.currentTemplate == 'plain')
							{
								sb.append(' class="contentAreaPlainTemplate">');
								sb.append(this.generatePlainTemplate());
							}	
							else if(this.currentTemplate == 'plainonepic')
							{
								sb.append(' class="contentAreaPlainTemplate">');
								sb.append(this.generatePlainOnePicTemplate());
							}
							
						}
						
					sb.append('</div>');

					return sb.toString();
					
				}
				
				/* FRONT PAGE */
				js_fileStructureP.generateFrontPageTemplate = function()
				{
					var sb = new js_stringBuffer();
					sb.append('<table cellpadding="0" cellspacing="0" border="0">');
					sb.append('<tr>');
					sb.append('<td valign="top">');
	
						
						var files = this.getFileFromNodeOnName(this.selectedNode, 'pics');
						var piclinks = this.getDirectionFile(files).piclinks;
						var file = this.getFileFromNodeOnName(files, this.lang);
						
						if(g_main.isDefinedNOF(file))
						{
							var noOfFiles = file.Files.length;
							if(noOfFiles == 1)
							{
								sb.append(this.generateFrontPageTemplate_onepic(piclinks));
							}
							else if(noOfFiles == 2)
							{
								sb.append(this.generateFrontPageTemplate_twopics(piclinks));
							}
							else if(noOfFiles == 3)
							{
								sb.append(this.generateFrontPageTemplate_threepics(piclinks));
							}
							else
							{
								sb.append("Det finns inget innehÃ¥ll");
							}
						}
						
						//sb.append(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile));
						//sb.append('<div class="aboutTemplateTextArea">');			
						//sb.append(this.getTwoColSplittedVersion(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile)));		
						//sb.append('</div>');
					sb.append('</td>');
					//sb.append('<td valign="top">');
						//sb.append(this.generateSeries());	
					//sb.append('</td>');
					sb.append('</tr>');
					sb.append('</table>');
			
					return sb.toString();
				}
				
						/* ONE PIC */
						js_fileStructureP.generateFrontPageTemplate_onepic = function(piclinks)
						{
							
							var baseUrl = this.webRoot_hierarchy + this.selectedPage + '/pics/' + this.lang + '/';
							var sb = new js_stringBuffer();
							sb.append('<table cellpadding="0" cellspacing="0" border="0">');
							sb.append('<tr>');
							sb.append('<td valign="top">');	
							
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p1))
									{
										sb.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'' + piclinks.p1 + '\');">');
									}
								}
								
									sb.append('<img src="' + baseUrl + 'p1.jpg" style="width: 700px; height: 500px;" border="0" />');	
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p1))
									{
										sb.append('</a>');
									}
								}
															
							sb.append('</td>');				
							sb.append('</tr>');
							sb.append('</table>');
					
							return sb.toString();
						}
						
						/* TWO PICS */
						js_fileStructureP.generateFrontPageTemplate_twopics = function(piclinks)
						{
							var baseUrl = this.webRoot_hierarchy + this.selectedPage + '/pics/' + this.lang + '/';
							var sb = new js_stringBuffer();
							sb.append('<table cellpadding="0" cellspacing="0" border="0">');
							sb.append('<tr>');
							sb.append('<td valign="top" style="padding-bottom: 17px;">');

							
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p1))
									{
										sb.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'' + piclinks.p1 + '\');">');
									}
								}
								
									sb.append('<img src="' + baseUrl + 'p1.jpg"  style="width: 700px; height: 340px;" border="0" />');
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p1))
									{
										sb.append('</a>');
									}
								}
								
							sb.append('</td>');				
							sb.append('</tr>');
							sb.append('<tr>');
							sb.append('<td valign="top">');	
							
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p2))
									{
										sb.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'' + piclinks.p2 + '\');">');
									}
								}
								
									sb.append('<img src="' + baseUrl + 'p2.jpg" style="width: 700px; height: 140px;" border="0" />');
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p2))
									{
										sb.append('</a>');
									}
								}
							
							sb.append('</td>');				
							sb.append('</tr>');							
							sb.append('</table>');
					
							return sb.toString();
						}
						
						/* THREE PICS */
						js_fileStructureP.generateFrontPageTemplate_threepics = function(piclinks)
						{
						
							var baseUrl = this.webRoot_hierarchy + this.selectedPage + '/pics/' + this.lang + '/';
							var sb = new js_stringBuffer();
							sb.append('<table cellpadding="0" cellspacing="0" border="0">');
							sb.append('<tr>');
							sb.append('<td colspan="2" valign="top" style="padding-bottom: 17px;">');
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p1))
									{
										sb.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'' + piclinks.p1 + '\');">');
									}
								}
								
									sb.append('<img src="' + baseUrl + 'p1.jpg"  style="width: 700px; height: 340px;" border="0" /><br />');
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p1))
									{
										sb.append('</a>');
									}
								}
								
								
							sb.append('</td>');				
							sb.append('</tr>');
							sb.append('<tr>');
							sb.append('<td valign="top" style="padding-right: 20px;">');	
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p2))
									{
										sb.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'' + piclinks.p2 + '\');">');
									}
								}
							
									sb.append('<img src="' + baseUrl + 'p2.jpg" style="width: 340px; height: 140px;" border="0" /><br />');
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p2))
									{
										sb.append('</a>');
									}
								}
								
							sb.append('</td>');	
							sb.append('<td valign="top">');	
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p3))
									{
										sb.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'selectPage\',\'' + piclinks.p3 + '\');">');
									}
								}
							
									sb.append('<img src="' + baseUrl + 'p3.jpg"  style="width: 340px; height: 140px;" border="0" /><br />');
								
								if(g_main.isDefinedNOF(piclinks))
								{
									if(g_main.isDefinedNOF(piclinks.p3))
									{
										sb.append('</a>');
									}
								}
								
							sb.append('</td>');								
							sb.append('</tr>');	
							sb.append('</table>');
					
							return sb.toString();
						}
				
				/* PLAIN */
				js_fileStructureP.generatePlainTemplate = function()
				{
					var sb = new js_stringBuffer();
					sb.append(this.getPageHeaderOnSelectedNode(false));
					sb.append('<table cellpadding="0" cellspacing="0" border="0" style="width:100%">');
					sb.append('<tr>');
					sb.append('<td valign="top">');	
											
						var defaultFile = null;
						try
						{
						defaultFile = this.getDirectionFile(this.selectedNode).defaultfile;
						}
						catch(e)
						{							
						}
						
						/* not languagespecific contents */
						var langUnhandled = this.getDirectionFile(this.selectedNode).islangunhandled;
						
						if(langUnhandled == true)
						{
						sb.append(this.getLanguageUnhandledSpecificTextFileFromSelectedNode(defaultFile));												
						}
						else
						{
						sb.append(this.getLanguageSpecificTextFileFromSelectedNode(defaultFile));						
						}
						

						//sb.append(this.getTwoColSplittedVersion(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile)));		
						//sb.append('</div>');
					sb.append('</td>');				
					sb.append('</tr>');
					sb.append('</table>');
			
					return sb.toString();
				}
				
				/* PLAIN ONE PIC */				
				js_fileStructureP.generatePlainOnePicTemplate = function()
				{
					var sb = new js_stringBuffer();
					sb.append('<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">');
					sb.append('<tr>');
					sb.append('<td valign="top" style="padding-right: 20px;">');	
					sb.append(this.getPageHeaderOnSelectedNode(false));
					
						var defaultFile = null;
						try
						{
						defaultFile = this.getDirectionFile(this.selectedNode).defaultfile;
						}
						catch(e)
						{							
						}
						
						sb.append(this.getLanguageSpecificTextFileFromSelectedNode(defaultFile));
						//sb.append(this.getTwoColSplittedVersion(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile)));		
						//sb.append('</div>');
						
					sb.append('</td>');		
					sb.append('<td valign="top" style="width: 400px;">');
					
						//Get picture
						var image = this.getFileFromNodeOnName(this.selectedNode, '1.jpg');
						if(g_main.isDefinedNOF(image))
						{
						var url = this.createJsonFormattedUrl(this.selectedPage) + '1.jpg';
						sb.append('<div style="width: 400px;">');
						sb.append('<img style="" src="' + url + '" />');
						sb.append('</div>');
						}
						
					sb.append('</td>');					
					sb.append('</tr>');
					sb.append('</table>');
			
					return sb.toString();
				}				
				
				/* ABOUT */
				js_fileStructureP.generateArtistAboutTemplate = function()
				{
					var sb = new js_stringBuffer();
					
					sb.append('<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">');
					sb.append('<tr>');
					sb.append('<td valign="top" style="padding-right: 20px;">');
						sb.append(this.getPageHeaderOnSelectedNode(false));
						sb.append(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile));	
						//sb.append(this.getTwoColSplittedVersion(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile)));		
					sb.append('</td>');
					sb.append('<td valign="top" style="width: 400px;">');
						//Get picture
						var image = this.getFileFromNodeOnName(this.selectedNode, '1.jpg');
						if(g_main.isDefinedNOF(image))
						{
						var url = this.createJsonFormattedUrl(this.selectedPage) + '1.jpg';
						sb.append('<div style="width: 400px;">');
						sb.append('<img style="" src="' + url + '" />');
						sb.append('</div>');
						}	
					sb.append('</td>');
					sb.append('</tr>');
					sb.append('</table>');
			
					return sb.toString();
				}
				
				js_fileStructureP.getTwoColSplittedVersion = function(bulk)
				{
					try
					{
						var bulkLength = bulk.length;
						var mod = bulkLength % 2;
						var firstColNum = (bulkLength-mod)/2;
						
						var part1 = bulk.substr(0, firstColNum);
						var part2 = bulk.substr(firstColNum);
						
						var sb = new js_stringBuffer();
						sb.append('<table cellpadding="0" cellspacing="0" border="0">');
						sb.append('<tr>');
						sb.append('<td valign="top" style="padding-right: 10px;">');	
							sb.append(part1);
						sb.append('</td>');
						sb.append('<td valign="top">');
							sb.append(part2);
						sb.append('</td>');
						sb.append('</tr>');
						sb.append('</table>');
						
						return sb.toString();
					}
					catch(e)
					{
					return '';
					}
				
				}
				
				/* CV */
				js_fileStructureP.generateArtistCvTemplate = function()
				{
					var sb = new js_stringBuffer();
					sb.append(this.getPageHeaderOnSelectedNode(false));
					sb.append('<table cellpadding="0" cellspacing="0" border="0">');
					sb.append('<tr>');
					sb.append('<td valign="top" style="width: 700px;">');
						sb.append(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile));
						//sb.append(this.getTwoColSplittedVersion(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile)));		
					sb.append('</td>');
					/*sb.append('<td valign="top">');
						sb.append('<img src="' + this.webRoot + 'image/icon_pdf.png" />');	
					sb.append('</td>');*/
					sb.append('</tr>');
					sb.append('</table>');
					return sb.toString();
				}


				/* PORTFOLIO */
				js_fileStructureP.generateArtistPorfolioTemplate = function()
				{
					var sb = new js_stringBuffer();			
					
					sb.append('<table cellpadding="0" cellspacing="0" border="0">');
					sb.append('<tr>');
					sb.append('<td valign="top">');			
						//sb.append(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile));		
						sb.append(this.generateSeries());						
					sb.append('</td>');
					sb.append('</tr>');
					sb.append('</table>');
					return sb.toString();
				}	
				
				/* EXHIBITION TEMPLATE */
				js_fileStructureP.generateExhibitionTemplate = function()
				{
					var sb = new js_stringBuffer();		
					//sb.append(this.getPageHeaderOnSelectedNode(false));
					sb.append('<table cellpadding="0" cellspacing="0" border="0">');
					sb.append('<tr>');
					sb.append('<td valign="top">');	
						sb.append(this.generateSeries());
						//sb.append("exhibi");
						//sb.append('<div class="portfolioTemplatePictArea">');			
						//sb.append(this.getLanguageSpecificTextFileFromSelectedNode(this.leftHandSubMenuFile));		
						//sb.append(this.generateSeries());						
						//sb.append('</div>');
					sb.append('</td>');
					sb.append('</tr>');
					sb.append('</table>');
					return sb.toString();
				}	
				
				
				
				js_fileStructureP.generateSeries = function()
				{
				var sb = new js_stringBuffer();					
				var list = this.selectedNode.Files;
			
					var curr = null;
					for(var i in list)
					{
						curr = list[i];
						if(curr.Name == 'series')
						{
							sb.append(this.generateThumbsFromAllSeries(curr));
						}
						
					}
												
				return sb.toString();
				}
				
				js_fileStructureP.getFileFromNodeOnName = function(node, filename)
				{			
					var list = node.Files;
				
						var curr = null;
						for(var i in list)
						{
							curr = list[i];
							if(curr.Name == filename)
							{
								return curr;
							}
							
						}
													
					return null;
				}
				
				js_fileStructureP.generateThumbsFromAllSeries = function(node)
				{
				var sb = new js_stringBuffer();					
				var list = node.Files;
				this.namesort(node.Files, 'Name',0);
				var mapurl = '';
				var urlHierarchy = [];
				var numberOfSeries = this.getNumberOfSeries(node);
				var fullSizeHierarchy = [];
				
					for(var m in this.selectedPage)
					{
						urlHierarchy.push(this.selectedPage[m]);
					}

				urlHierarchy.push('series');

				/*
				if(numberOfSeries == 1)
				{
					
					sb.append('<div style="line-height:10px;margin-bottom: 10px;"><span class="mainHeader">' + this.getPageHeaderOnSelectedNode(true) + '</span></div>');
				}*/
				
					var sb_content = new js_stringBuffer();
					var sb_inner_content = new js_stringBuffer();
					
					var curr = null;
					for(var i in list)
					{

						sb_inner_content = new js_stringBuffer();
						curr = list[i];
						 
						if(eval(curr.IsMap) == true)
						{						
						urlHierarchy.push(curr.Name);

							
							/*if(numberOfSeries > 1)
							{*/	
							var subHeader = '';
							var subHeaderForw = ''; //till bildspelaren
								
								try
								{
								var dir = this.getDirectionFile(curr);
								subHeader = dir.language[this.lang];
								}
								catch(e)
								{
								
								}
								
								subHeaderForw = subHeader;
								
								if(subHeader != '')
								{
									subHeader = ' - ' + subHeader.toUpperCase()
								}
								
							sb_inner_content.append('<div style="line-height:10px;margin-bottom: 10px;"><span class="mainHeader">' + this.getPageHeaderOnSelectedNode(true) + '</span>' + subHeader + '</div>');
							//}
							
							
							var subList = curr.Files;
							var _curr = null;
							for(var b in subList)
							{

								_curr = subList[b];
																
								if(eval(_curr.IsMap) == true && _curr.Name == 'pics')
								{
								urlHierarchy.push(_curr.Name);
								fullSizeHierarchy = this.createFullSizeHierarchy(fullSizeHierarchy, urlHierarchy);
								

									var picList = _curr.Files;
									var pic = null;
									for(var r in picList)
									{
										pic = picList[r];

										if(eval(pic.IsMap) == true && pic.Name == 'thumbs')
										{
										urlHierarchy.push(pic.Name);
										
											var thumbList = pic.Files;
											this.namesortStripFromExt(pic.Files, 'Name',0);
											var thumb = null
											var indexCounter = 0;
											for(var v in thumbList)
											{
												thumb = thumbList[v];
												if(eval(thumb.IsMap) == false)
												{
													sb_inner_content.append('<a href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'displayPictPlayer\',[\'' + this.createNodeStructureString(fullSizeHierarchy) + '\',' + indexCounter + ',\'' + subHeaderForw + '\']);"><img class="portfolioThumb"  align="top" src="' + this.createJsonFormattedUrl(urlHierarchy,thumb.Name) + '" /></a>');
												}
												
											indexCounter++;	
											}
											
										urlHierarchy.splice(urlHierarchy.length-1,1);
										}
										else if(eval(pic.IsMap) == true && pic.Name == 'fullsize')
										{
											this.namesortStripFromExt(pic.Files, 'Name',0);
										}
											
									}	
									
								urlHierarchy.splice(urlHierarchy.length-1,1);
								}
								
							}
						
						if(sb_inner_content.toString() != '')
						{
						sb_content.append('<div>');
						sb_content.append(sb_inner_content.toString());
						sb_content.append('</div>');
						}
					
						urlHierarchy.splice(urlHierarchy.length-1,1);													
						}						
					}

					if(sb_content.toString() == '')
					{
						sb.append('--');
					}
					else
					{
						sb.append(sb_content.toString());
					}
					
				return sb.toString();
				}
				
				js_fileStructureP.createFullSizeHierarchy = function(fullSizeHierarchy, urlHierarchy)
				{
					fullSizeHierarchy = [];
					var curr = null;
					for(var i in urlHierarchy)
					{
						curr = urlHierarchy[i];
						fullSizeHierarchy.push(curr);
					}
					//fullSizeHierarchy.push('fullsize');
					
					return fullSizeHierarchy;
				}
				
				js_fileStructureP.getNumberOfSeries = function(node)
				{
					var numberOfSeries = 0;
					var curr = null;
					for(var i in node.Files)
					{
						curr = node.Files[i];
						if(eval(curr.IsMap) == true)
						{
						numberOfSeries++;
						}
					}
					return numberOfSeries;
				}
				
				
				/* PICT PLAYER */
											
				js_fileStructureP.displayPictPlayer = function(args)
				{
					
					var argList = args.split(",");
					var hierarchy = argList[0].split("&");
					var index = argList[1];
					var seriesheader = argList[2];

					this.selectedPictSeriesHeader = seriesheader;
					this.selectedPictSeriesBaseUrl = this.createJsonFormattedUrl(hierarchy,'');
					this.selectedPictSeries = this.localizePictSeriesTop(hierarchy,this.data);
					this.selectedPictSeriesFullSize = this.getSubMapOnNodeAndMapName(this.selectedPictSeries, 'fullsize')
					this.selectedPictSeriesCaptions = this.getSubMapOnNodeAndMapName(this.selectedPictSeries, 'texts')
					this.selectedPictSeriesCurrentIndex = index;
					this.presentPictPlayer();
				}
				
				js_fileStructureP.presentPictPlayer = function()
				{
			
					var contentDiv = g_main.domExists('contentArea')
					
					var sb = new js_stringBuffer();
					
					sb.append('<div class="contentAreaPictPlayerTemplate">');
				
						sb.append('<table cellpadding="0" cellspacing="0">');
						sb.append('<tr class="pictPlayerButtonBar">');
							sb.append('<td style="width: 110px; padding-right:10px; height: 26px; text-align: right; vertical-align: middle;">');					
							//sb.append('<a class="pictPlayerCloseLink"  href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'pictClose\');">Close</a>');							
							sb.append('<a class="pictPlayerLink" href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'pictBackw\');"><</a>');
							sb.append('<a class="pictPlayerLink"  href="javascript:g_fac.getObjectExecFunc(\'' + this.id + '\',\'pictForw\');">></a>');
						sb.append('</td>');
							sb.append('<td rowspan="2" style="width: 580px;" valign="top">');
								sb.append('<div style="width:580px;height:460px;overflow:hidden;">')
								sb.append('<img id="' + this.pictPlayerImgId + '" src="' + this.selectedPictSeriesBaseUrl + 'fullsize/' + this.selectedPictSeriesFullSize.Files[this.selectedPictSeriesCurrentIndex].Name + '" />');
								sb.append('</div>');							
							sb.append('</td>');							
						sb.append('</tr>');
						sb.append('<tr>');
						sb.append('<td style="width: 110px; padding-right:10px; vertical-align: top;">');
						
							var fileName = this.selectedPictSeriesFullSize.Files[this.selectedPictSeriesCurrentIndex].NameNoExt + '.txt'; 
							var newCap = this.getLanguageSpecificTextFileFromForwardedNode(this.getSubMapOnNodeAndMapName(this.selectedPictSeries,'texts'), fileName);

							sb.append('<div style="margin-top: 70px; width:110px;" id="' + this.pictPlayerCaptionId + '">')
							sb.append('<br /><b>' + this.getPageHeaderOnSelectedNode(true) + '</b><br /><br />');
							sb.append(newCap);
							sb.append(this.getFromSeriesNote());	
							sb.append('</div>');
							
							sb.append('</td>');												
											
						sb.append('</tr>');										
						sb.append('</table>');

					sb.append('</div>');
					
					contentDiv.innerHTML = sb.toString();
					this.pictPlayerImg = g_main.domExists(this.pictPlayerImgId);
					this.pictPlayerCaption = g_main.domExists(this.pictPlayerCaptionId);

				}
				
				js_fileStructureP.getFromSeriesNote = function()
				{				
				
					if(this.selectedPictSeriesHeader != '')
					{
						if(this.lang == 'de')
						{
						return "<br /><br />Aus der Serie:<br />" + this.selectedPictSeriesHeader;
						}
						else
						{
						return "<br /><br />From the series:<br />" + this.selectedPictSeriesHeader;
						}
					}
					else
					{
					return '';
					}
				}
				
				js_fileStructureP.pictBackw = function()
				{
				
					if(this.selectedPictSeriesCurrentIndex == 0)
					{
					this.selectedPictSeriesCurrentIndex = (this.selectedPictSeriesFullSize.Files.length-1);
					}
					else
					{
					this.selectedPictSeriesCurrentIndex--;
					}
					
					var newSrc = this.selectedPictSeriesBaseUrl + 'fullsize/' + this.selectedPictSeriesFullSize.Files[this.selectedPictSeriesCurrentIndex].Name;
					this.pictPlayerImg.src = newSrc;
					
					var fileName = this.selectedPictSeriesFullSize.Files[this.selectedPictSeriesCurrentIndex].NameNoExt + '.txt'; 
					

					var newCap = this.getLanguageSpecificTextFileFromForwardedNode(this.getSubMapOnNodeAndMapName(this.selectedPictSeries,'texts'), fileName);

					var sb = new js_stringBuffer();					
					sb.append('<br /><b>' + this.getPageHeaderOnSelectedNode(true) + '</b><br /><br />');
					sb.append(newCap);
					sb.append(this.getFromSeriesNote());					
					this.pictPlayerCaption.innerHTML = sb.toString();
				}
				
				js_fileStructureP.pictForw = function()
				{
					if(this.selectedPictSeriesCurrentIndex == (this.selectedPictSeriesFullSize.Files.length-1))
					{
					this.selectedPictSeriesCurrentIndex = 0;
					}
					else
					{
					this.selectedPictSeriesCurrentIndex++;
					}
					
					var newSrc = this.selectedPictSeriesBaseUrl + 'fullsize/' + this.selectedPictSeriesFullSize.Files[this.selectedPictSeriesCurrentIndex].Name;
					this.pictPlayerImg.src = newSrc;
					
					var fileName = this.selectedPictSeriesFullSize.Files[this.selectedPictSeriesCurrentIndex].NameNoExt + '.txt'; 
					var newCap = this.getLanguageSpecificTextFileFromForwardedNode(this.getSubMapOnNodeAndMapName(this.selectedPictSeries,'texts'), fileName);

					var sb = new js_stringBuffer();					
					sb.append('<br /><b>' + this.getPageHeaderOnSelectedNode(true) + '</b><br /><br />');
					sb.append(newCap);
					sb.append(this.getFromSeriesNote());
					
					this.pictPlayerCaption.innerHTML = sb.toString();
				}
				
				js_fileStructureP.pictClose = function()
				{
					this.selectedPictSeriesHeader = null;
					this.selectedPictSeries = null;
					this.selectedPictSeriesFullSize = null;
					this.selectedPictSeriesCaptions = null;
					this.selectedPictSeriesCurrentIndex
					this.selectedPictSeriesBaseUrl = null;	
					this.pictPlayerImg = null;				
					var newHierarchy = this.createNodeStructureString(this.selectedPage);
					this.selectPage(newHierarchy);					
				}
				
				js_fileStructureP.getSubMapOnNodeAndMapName = function(node, name)
				{
					var curr = null;
					for(var i in node.Files)
					{
						
						curr = node.Files[i];
						if(curr.Name == name)
						{
							return curr;
						}
					}
					
					return null;
				}
				
						
