$(document).ready(function(){

var Main = {

	init: function(){
		Main.enableMenu();	
		Main.enableStaticMenu();
		Main.loadIntroductions();	
		Main.enableTopMenu();
		Main.loadFirstPage();
		window.pageCount=0;
	},
	loadFirstPage: function(){
		Main.loadContent($('#main-menu ul:first li:first ul li:first a').attr('href'))
		$('#main-menu ul:first li:first ul').show('slow');	
		$('#main-menu ul:first li:first').addClass('open');	
		$('#main-menu ul:first li:first ul li:first').addClass('open');	
		$('#main-menu ul:first li:first ul li:first a').addClass('current');	
	},
	enableMenu: function(){
		$('#main-menu ul li ul').hide();
		$('#main-menu ul li ul li ul').hide();

		$('#main-menu ul.level-1 li a:not(.level-2 li a)').click(function(){
			Main.openLevel($(this),1)
			return false;
		})

		$('#main-menu ul li ul.level-2 li a:not(.level-3 li a)').click(function(){
			Main.openLevel($(this),2)
			return false;
		})
		
		$('#main-menu ul li ul.level-2 li ul li a').click(function(){
			Main.openLevel($(this),3)
			return false;
		})
	},
	openLevel: function(levelId, level){
		if(level==1){ $('#main-menu .open ul').hide('slow');	}
		if(level==2){ $('#main-menu .open ul li.open ul').hide('slow');  }

		$('.open').removeClass('open')
		levelId.closest('ul').parent().addClass('open')
		levelId.closest('ul').parent().closest('ul').parent().addClass('open')
		
		levelId.parent().children().show('slow')
		levelId.parent().addClass('open');
		Main.loadContent(levelId.attr('href'))
		Main.addClassCurrent(levelId);
		window.pageCount=0;
	},
	addClassCurrent: function(levelId){
		$('#main-menu a').removeClass('current')
		levelId.addClass('current')
	},
	loadContent: function(targetHref,origin){
		tsTimeStamp = new Date();
		if(targetHref){
			if(targetHref!='#'){
				$.ajax({ url: targetHref+'?ts='+tsTimeStamp.getTime(), 
					success: function(data){ 
						$('#body').html(data)
		            },
					complete: function(){
						if(origin=="topmenu"){ // disable chapter index on top-menu
							$('#nav').html('');
							$('#page-navigation-top').html('');
							$('#page-navigation-bottom').html('');
							$('#last-update').html('')
							Main.clickSitemap();
						}else{ 
							Main.addChapterIndex(targetHref) 
							Main.addNextPrevButtons(targetHref)
							// last updated
//							$.ajax({ url: 'php/get-file-date.php?target-href='+targetHref+'&ts='+tsTimeStamp.getTime(), 
//							success: function(data){ 
//								$('#last-update').html(data)
//							}
//						})
						}			
						Main.enableLinksInContent();
						Main.setHeight();
						Main.setPageTitle();
					}
				});
			}
		}
	},
	loadIntroductions: function(){
		$('.level-1 li a').click(function(){
			Main.loadContent($(this).parent().find('ul:first li:first a').attr('href'))
			$(this).parent().find('ul:first li:first').addClass('open');
		})
	},
	setPageTitle: function(){
		document.title = $('#logo h1').text()+' - '+$('#body h1').text();
	},
	enableStaticMenu: function(){
		$('#static-menu a').click(function(){
			targetId = $(this).attr('id')
			Main.openLevel($('#main-'+targetId.split('static-')[1]))
			Main.loadContent($('#main-'+targetId.split('static-')[1]).parent().find('ul:first li:first a').attr('href'))
			$('#main-menu ul li ul').hide();
			$('#main-menu ul li ul li ul').hide();
			$('.open').removeClass('open')
			$('#main-'+targetId.split('static-')[1]).parent().find('ul:first li:first').addClass('open');
			$('#main-'+targetId.split('static-')[1]).parent().find('ul:first').parent().addClass('open');
		})
	},
	enableTopMenu: function(){
		$('#top-menu a').click(function(){
			targetId = $(this).attr('href')
			Main.loadContent(targetId,'topmenu')
			return false;
		})
	},
	clickSitemap: function(){
		$('#sitemap a').click(function(){
			targetId = $(this).attr('href')
			Main.loadContent(targetId)
			return false;			
		})
	},
	enableLinksInContent: function(){
		$('#body a.extlink').click(function(){
			targetIds = $(this).attr('href')
			targetIds = $(this)[0].href;
			splitTarget = targetIds.split('/');
			totalSplit = targetIds.split('/').length;
			targetId = 'content/'+targetIds.split('/')[totalSplit-1];

			Main.loadContent(targetId)
			Main.addClassCurrent($("#main-menu a[href='"+targetId+"']"));
			// reset menu
			$('#main-menu ul li ul').hide();
			$('#main-menu ul li ul li ul').hide();
			$('.open').removeClass('open')
			$("#main-menu a[href='"+targetId+"']").parent().addClass('open').show()
			$("#main-menu a[href='"+targetId+"']").parent().closest('ul').show()
			$("#main-menu a[href='"+targetId+"']").parent().closest('ul').parent().addClass('open').show()
			$("#main-menu a[href='"+targetId+"']").parent().closest('ul').parent().closest('ul').show()
			$("#main-menu a[href='"+targetId+"']").parent().closest('ul').parent().closest('ul').parent().addClass('open').show()
			return false;			
		})
	},
	setHeight: function(){	
		set = function(){
			viewportHeight = $(window).height();
			contentHeight = $('#body').height()+$('#nav').height();	
			finalHeight = (viewportHeight < contentHeight) ? contentHeight+47 : viewportHeight-125;
			$('#main-menu').height(finalHeight)
		}
		setTimeout("set()", 500);
	},
	addChapterIndex: function(targetHref){
		// show only on 'introduction'-page
		if($("#main-menu a[href='"+targetHref+"']").parent().parent().children().eq(0).find('a').attr('href') == $("#main-menu a[href='"+targetHref+"']").attr('href')){		
			var lstLinks = "<h4>Onderwerpen</h4><ul>";
			var $navLinks = $("#main-menu a[href='"+targetHref+"']").parent().parent().children();
			for (i=0; i<$navLinks.length; i++) {
				addId='';
				if($navLinks.eq(i).attr('id')) addId = 'id="nav-'+$navLinks.eq(i).attr('id')+'"';
				lstLinks += '<li '+addId+'>'+$navLinks.eq(i).html()+'</li>';
			}    
			lstLinks += "</ul>";   
			$('#nav').html(lstLinks);
			
			$('#nav a').click(function(){		
				targetIds = $(this).attr('href')
				targetIds = $(this)[0].href;
				splitTarget = targetIds.split('/');
				totalSplit = targetIds.split('/').length;
				targetId = 'content/'+targetIds.split('/')[totalSplit-1];
				
				if(targetIds.split('/')[totalSplit-1] == "#"){
					navId = $(this).parent().attr('id').split('nav-')[1];
					Main.loadContent($('#'+navId).find('ul:first li:first a').attr('href'))
					//$('#'+navId).find('ul:first li:first').addClass('open');

					// reset menu
					$('#main-menu ul li ul').hide();
					$('#main-menu ul li ul li ul').hide();
					$('.open').removeClass('open')
					$('#'+navId).addClass('open').show()
					$('#'+navId).closest('ul').show()
					$('#'+navId).closest('ul').parent().addClass('open').show()
					$('#'+navId).closest('ul').parent().closest('ul').show()
					$('#'+navId).closest('ul').parent().closest('ul').parent().addClass('open').show()	
					$('#'+navId).find('ul').show()	
				}else{
					Main.loadContent(targetId)
				}
				Main.addClassCurrent($("#main-menu a[href='"+targetId+"']"));
				
				// reset menu
				$("#main-menu a[href='"+targetId+"']").parent().closest('ul').find('.open').removeClass('open')
				$("#main-menu a[href='"+targetId+"']").parent().addClass('open')
				return false;			
			})
		}else{
			$('#nav').html('');
		}
	},
	addNextPrevButtons: function(targetHref){
		$('#main-menu a').each(function(index){
			if($(this).hasClass("current")){
				currentIndex = index;
			}
		});
		if(currentIndex+window.pageCount > 1){
			prvLink = "<a href='#' class='previous-page'>< vorige pagina</a>&nbsp;"; 
		}else{
			prvLink = "";
		}
		if(currentIndex+window.pageCount < $('#main-menu a').size()-2){
			nxtLink = "<a href='#' class='next-page'>volgende pagina ></a>";
		}else{
			nxtLink = "";
		}
				
		$('#page-navigation-top').html(prvLink+nxtLink);
		$('#page-navigation-bottom').html(prvLink+nxtLink);
		
		$('#page-navigation-top .previous-page').click(function(){ Main.setMenu('prev') })
		$('#page-navigation-top .next-page').click(function(){ Main.setMenu('next') })
		$('#page-navigation-bottom .previous-page').click(function(){ Main.setMenu('prev') })
		$('#page-navigation-bottom .next-page').click(function(){ Main.setMenu('next') })		
	},
	setMenu: function(direction){
		$('#main-menu a').each(function(index){
			if($(this).hasClass("current")){
				direction=='next' ? window.pageCount++ : window.pageCount--;					
				if($('#main-menu li a').eq(index+window.pageCount).attr('href')=='#' && direction=="next") window.pageCount++;
				if($('#main-menu li a').eq(index+window.pageCount).attr('href')=='#' && direction=="prev") window.pageCount--;
				
				// load page
				Main.loadContent($('#main-menu li a').eq(index+window.pageCount).attr('href'));

				// reset menu
				$('#main-menu ul li ul').hide();
				$('#main-menu ul li ul li ul').hide();
				$('.open').removeClass('open')
				$('#main-menu li a').eq(index+window.pageCount).parent().addClass('open').show()
				$('#main-menu li a').eq(index+window.pageCount).parent().closest('ul').show()
				$('#main-menu li a').eq(index+window.pageCount).parent().closest('ul').parent().addClass('open').show()
				$('#main-menu li a').eq(index+window.pageCount).parent().closest('ul').parent().closest('ul').show()
				$('#main-menu li a').eq(index+window.pageCount).parent().closest('ul').parent().closest('ul').parent().addClass('open').show()

			}
		})			
	}
}

Main.init();

});