function getDimensions( ) {
	var x, y;

	if ( self.innerHeight ) {
		x = self.innerWidth;
		y = self.innerHeight;
	} else if ( document.documentElement && document.documentElement.clientHeight ) {
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	} else if ( document.body ) {
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}

	return [ x, y ];
}


var sLanguage = "en";
function setLanguage( sNewLanguage ) {
	sLanguage = sNewLanguage;

	document.getElementById( "language_menu" ).selectedIndex = ( sLanguage == "en" );

	var oContentLayer  = document.getElementById( 'content' );
	if ( oContentLayer.style.display  == "block" ) {
		var sContentSource = document.getElementById( 'content' ).src;

		var aURL = sContentSource.split( "/" );
		var sBasePath = "";
		for ( var i=0; i<aURL.length-1; i++ ) sBasePath += aURL[ i ] + "/";

		var sFile = aURL[ aURL.length - 1 ];
		var aFile = sFile.split( "." );
		var sFileName = aFile[ 0 ];
		var sFileExtension = "";
		for ( var i=1; i<aFile.length; i++ ) sFileExtension += "." + aFile[ i ];

		if ( sFileName != "index" ) {
			var sFileName = sFileName.substr( 0, sFileName.length - 3 );

			oContentLayer.src = sBasePath + sFileName + "_" + sLanguage + sFileExtension;
		}
	}

	switch( sLanguage ) {
		case "nl":
			document.getElementById( "chapters_menu_nl" ).style.display = "block";
			document.getElementById( "chapters_menu_en" ).style.display = "none";	
			
			document.getElementById( "chapters_menu_nl" ).selectedIndex = 
				document.getElementById( "chapters_menu_en" ).selectedIndex;

			for ( var i=0; i<aChapters.length; i++ ) {
				document.getElementById( aChapters[ i ] + "_menu_nl" ).style.display = "block";
				document.getElementById( aChapters[ i ] + "_menu_en" ).style.display = "none";	

				document.getElementById( aChapters[ i ] + "_menu_nl" ).selectedIndex = 
					document.getElementById( aChapters[ i ] + "_menu_en" ).selectedIndex;
			}

			for ( var i=0; i<aSubs.length; i++ ) {
				document.getElementById( aSubs[ i ] + "_menu_nl" ).style.display = "block";
				document.getElementById( aSubs[ i ] + "_menu_en" ).style.display = "none";

				document.getElementById( aSubs[ i ] + "_menu_nl" ).selectedIndex = 
					document.getElementById( aSubs[ i ] + "_menu_en" ).selectedIndex;
			}

			break;

		case "en":
			document.getElementById( "chapters_menu_nl" ).style.display = "none";
			document.getElementById( "chapters_menu_en" ).style.display = "block";
			
			document.getElementById( "chapters_menu_en" ).selectedIndex = 
				document.getElementById( "chapters_menu_nl" ).selectedIndex;

			for ( var i=0; i<aChapters.length; i++ ) {
				document.getElementById( aChapters[ i ] + "_menu_nl" ).style.display = "none";
				document.getElementById( aChapters[ i ] + "_menu_en" ).style.display = "block"

				document.getElementById( aChapters[ i ] + "_menu_en" ).selectedIndex = 
					document.getElementById( aChapters[ i ] + "_menu_nl" ).selectedIndex;
			}

			for ( var i=0; i<aSubs.length; i++ ) {
				document.getElementById( aSubs[ i ] + "_menu_nl" ).style.display = "none"
				document.getElementById( aSubs[ i ] + "_menu_en" ).style.display = "block"

				document.getElementById( aSubs[ i ] + "_menu_en" ).selectedIndex = 
					document.getElementById( aSubs[ i ] + "_menu_nl" ).selectedIndex;
			}

			break;
	}
}

function getLanguage( ) {
	return sLanguage;
}


function convertToWeb( sText ) {
	return sText.split( ";" )[ 0 ].split( " " ).join( "_" ).toLowerCase( );
}

function convertNumber( iNumber, iLength ) {
	var sPrefix = "";
	var sNumber = String( iNumber );

	for ( var i=sNumber.length; i<iLength; i++ ) {
		sPrefix = "0" + sPrefix;
	}

	return sPrefix + sNumber;
}


function checkApplication( ) {
	var oContentlayer = document.getElementById( 'content' );
	if ( oContentlayer != undefined ) {
		return( oContentlayer.src.indexOf( "_application_form_" ) != -1 );
//		oContentlayer.style.top = String( oTitleLayer.offsetHeight + 48 ) + "px";
//		oContentlayer.style.height = String( iHeight - oNavigationLayer.offsetHeight - oTitleLayer.offsetHeight - 96 ) + "px";
	}
}

aChapters = new Array( );
function addChapter( sChapterName ) {
	aChapters.push( sChapterName );
}

function selectChapter( sChapterName, iIndex ) {
	//alert( sChapterName );
	var aChapterName = sChapterName.split ( ";" );
	sChapterName = aChapterName[ 0 ];
	var bOverrideMenuShowContent = aChapterName[ 1 ] == "true";

	if ( sChapterName != "" && checkApplication( ) ) {
		if ( !confirm( "You have attempted to leave this page. If you have made any changes to the fields without submitting, your changes will be lost. Are you sure you want to exit this page?" ) ) {

			var oJumpMenu = document.getElementById( "application_form_menu_" + sLanguage )
			var iSelectedIndex = oJumpMenu.selectedIndex;

			selectSub( "Application form", 3, true );

			oJumpMenu.selectedIndex = iSelectedIndex;

			return true;
		}
	}

	var sChapterName = convertToWeb( sChapterName );
	if ( sChapterName.indexOf( "link:" ) != -1 ) {
		window.open( sChapterName.split( "link:" )[ 1 ], "_blank" );

		resetChapters( );
	} else if ( sChapterName.indexOf( "mail:" ) != -1 ) {
		window.open( "mailto:" + sChapterName.split( "mail:" )[ 1 ], "_self" );

		resetChapters( );
	} else {
		for ( var i=0; i<aChapters.length; i++ ) {
			var sCurrentName = aChapters[ i ];

			if ( sCurrentName == sChapterName && !bOverrideMenuShowContent )	{
				document.getElementById( sCurrentName ).style.display = "block";
			} else {
				document.getElementById( sCurrentName ).style.display = "none";

				// ## HIDE SUBSUBS ## //
				for ( var n=0; n<aSubs.length; n++ ) 
					document.getElementById( aSubs[ n ] ).style.display = "none";
			}

			if ( sCurrentName == sChapterName ) {			
				var oMainMenu = document.getElementById( "chapters_menu_" + sLanguage );
				oMainMenu.selectedIndex = i;
			}
		}

		if ( sChapterName == "" ) {
			getTagLine( undefined, 0 );
		} else {
			getTagLine( );
		}

		if ( bOverrideMenuShowContent || ( sChapterName != "" && aChapters.indexOf( sChapterName ) == -1 ) ) {
			setContent( "pages/" + convertNumber( iIndex, 2 ) + "_" + sChapterName + "_" + sLanguage + ".html" );
			showContent( );
		} else {
			resetSubs( );		
			hideContent( );
		}
	}

	if ( !bOverrideMenuShowContent && ( sChapterName == "" || aChapters.indexOf( sChapterName ) != -1 ) ) hideContent( );
}

function resetChapters( ) {
	var oSelect = document.getElementById( "chapters_menu_" + sLanguage );
	oSelect.selectedIndex = -1;

	selectChapter( "", 0 );

	setContent( "pages/00_welcome_" + sLanguage + ".php" );
	showContent( );
}


aSubs = new Array( );
function addSub( sSubName ) {
	aSubs.push( sSubName );
}

function selectSub( sSubName, iIndex, bIgnorePageLoad ) {

	var aSubName = sSubName.split ( ";" );
	sSubName = aSubName[ 0 ];
	var bOverrideIgnoreLoad = aSubName[ 1 ] == "true";

	if ( sSubName != "" && checkApplication( ) && !bIgnorePageLoad ) {
		if ( !confirm( "You have attempted to leave this page. If you have made any changes to the fields without submitting, your changes will be lost. Are you sure you want to exit this page?" ) ) {

			var oJumpMenu = document.getElementById( "application_form_menu_" + sLanguage )
			var iSelectedIndex = oJumpMenu.selectedIndex;

			selectSub( "Application form", iIndex, true );

			oJumpMenu.selectedIndex = iSelectedIndex;

			return true;
		}
	} else if ( bOverrideIgnoreLoad ) {
	}

	var sSubName = convertToWeb( sSubName );

	if ( sSubName.indexOf( "link:" ) != -1 ) {
		window.open( sSubName.split( "link:" )[ 1 ], "_blank" );

		resetSubs( );
		hideContent( );
	}  else if ( sSubName.indexOf( "mail:" ) != -1 ) {
		window.open( "mailto:" + sSubName.split( "mail:" )[ 1 ], "_self" );

		resetSubs( );
		hideContent( );
	} else {
		var oMainMenu = document.getElementById( "chapters_menu_" + sLanguage );
		var oSelectedSubLayer = undefined;

		for ( var i=0; i<aChapters.length; i++ ) {
			var oSubLayer = document.getElementById( aChapters[ i ] );
			var oSubMenu  = document.getElementById( aChapters[ i ] + "_menu_" + sLanguage );

			for ( var n=0; n<oSubMenu.options.length; n++ ) {
				if ( convertToWeb( oSubMenu.options[ n ].value ) == sSubName ) {
					oSelectedSubLayer = oSubLayer;

					oSubMenu.selectedIndex = n;
					oMainMenu.selectedIndex = iIndex - 1;
				}

				oSubLayer.style.display = "none";
			}
		}

		if ( oSelectedSubLayer != undefined ) {
			oSelectedSubLayer.style.display = "block";
		} else {
			if ( oMainMenu.selectedIndex != -1 ) {
				var oSelectedSubLayer = document.getElementById( convertToWeb( oMainMenu.options[ oMainMenu.selectedIndex ].value ) );
				oSelectedSubLayer.style.display = "block";
			}
		}

		var bIgnoreContent = false;
		for ( var i=0; i<aSubs.length; i++ ) {
			var sCurrentName = aSubs[ i ];

			if ( sCurrentName == sSubName )	{
				document.getElementById( sCurrentName ).style.display = "block";
				if ( sSubName != "application_form" ) bIgnoreContent = true;
			} else {
				document.getElementById( sCurrentName ).style.display = "none";
			}
		} 

		if ( sSubName != "" && ( bOverrideIgnoreLoad || ( !bIgnoreContent && bIgnorePageLoad != true ) ) ) {
			setContent( "pages/" + convertNumber( iIndex, 2 ) + "_" + sSubName + "_" + sLanguage + ".html" ); 
			
			getTagLine( );
		}

		resetSubSubs( );
		showContent( );
	}
}

function resetSubs( ) {
	for ( var i=0; i<aChapters.length; i++ ) {
		var oSelect = document.getElementById( aChapters[ i ] + "_menu_" + sLanguage );
		oSelect.selectedIndex = -1;
	}

	selectSub( "", 0 );
}


function selectSubSub( sSubName, iParent, iIndex ) {

	var sSubName = convertToWeb( sSubName );

	if ( sSubName.indexOf( "link:" ) != -1 ) {
		window.open( sSubName.split( "link:" )[ 1 ], "_blank" );

		resetSubSubs( );
	}  else if ( sSubName.indexOf( "mail:" ) != -1 ) {
		window.open( "mailto:" + sSubName.split( "mail:" )[ 1 ], "_self" );

		resetSubSubs( );
	} else {

		var oMainMenu = document.getElementById( "chapters_menu_" + sLanguage );
		oMainMenu.selectedIndex = iParent - 1;

		var oSelectedSubLayer = document.getElementById( aChapters[ iParent - 1 ] );
		var oSelectedSubMenu = document.getElementById( aChapters[ iParent - 1 ] + "_menu_" + sLanguage );
		oSelectedSubMenu.selectedIndex = iIndex - 1;

		var oSelectedSubSubLayer = undefined;

		for ( var i=0; i<aChapters.length; i++ ) {
			var oSubLayer = document.getElementById( aChapters[ i ] );
			if ( oSubLayer != undefined ) {
				oSubLayer.style.display = "none";

				var oSubMenu = document.getElementById( aChapters[ i ] + "_menu_" + sLanguage );
				for ( var n=0; n<oSubMenu.options.length; n++ ) {
					var oSubSubLayer = document.getElementById( convertToWeb( oSubMenu.options[ n ].value ) );
					if ( oSubSubLayer != undefined ) {
						var oSubSubLayer = document.getElementById( convertToWeb( oSubMenu.options[ n ].value ) );
						var oSubSubMenu = document.getElementById( convertToWeb( oSubMenu.options[ n ].value ) + "_menu_" + sLanguage );

						if ( convertToWeb( oSelectedSubMenu.options[ oSelectedSubMenu.selectedIndex ].value ) ==  convertToWeb( oSubMenu.options[ n ].value ) ) {
							oSubSubLayer.style.display = "block";

							for ( var q=0; q<oSubSubMenu.options.length; q++ ) {
								if ( convertToWeb( oSubSubMenu.options[ q ].value ) == sSubName )
									oSubSubMenu.selectedIndex = q;
							}
						} else {
							oSubSubLayer.style.display = "none";
						}
					}
				}
			}
		}

		if ( oSelectedSubLayer != undefined ) oSelectedSubLayer.style.display = "block";


		setContent( "pages/" + convertNumber( iParent, 2 ) + convertNumber( iIndex, 2 ) + "_" + sSubName + "_" + sLanguage +  ".html" ); 


		if ( iParent == 6 && iIndex == 1 ) {
			setTagLine( "the_artist_as_researcher" );
		} else {
			getTagLine( );
		}

		return true;
	}

	showContent( );
}

function resetSubSubs( ) {
	for ( var i=0; i<aSubs.length; i++ ) {
		var oSelect = document.getElementById( aSubs[ i ] + "_menu_" + sLanguage );
		oSelect.selectedIndex = -1;
	}
}

function jumpToSection( sSection ) {
	window.frames[ "content" ].location.href = window.frames[ "content" ].location.href.split( "#" )[ 0 ] + "#" + sSection;
}

function showAddress( sLocation ) {
	window.frames[ "content" ].selectLocation( sLocation );
}


function hideContent( ) {
	setContent( "pages/dummy.html" );

//	document.getElementById( "content" ).style.display = "none";
}
function showContent( ) {
	document.getElementById( "content" ).style.display = "block";
}
function setContent( sPageURL ) {
	document.getElementById( "content" ).src= sPageURL;
}


function resizeContent( ) {
	var iHeight = getDimensions( )[ 1 ];

	var oTitleLayer = document.getElementById( "title" );
	var oNavigationLayer =  document.getElementById( 'chapters' );

	var oContentlayer = document.getElementById( 'content' );
	if ( oContentlayer != undefined ) {
		oContentlayer.style.top = String( oTitleLayer.offsetHeight + 48 ) + "px";
		oContentlayer.style.height = String( iHeight - oNavigationLayer.offsetHeight - oTitleLayer.offsetHeight - 96 ) + "px";
	}
}
