(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)

var current_loc,
	current_lang;

$(function(){
	current_loc = window.location.hash;
	
	$('#navigation').hide();
	
	if(window.location.hash){
		set_tree(null, window.location.hash);
	} else {
		window.location.hash = '#!/nl/home';
		set_tree(null, window.location.hash);
	}
	
	var t = setTimeout('check_location()', 20);
	
	$('#navigation a').click(function(){
		set_tree($(this), null);
	})
	
	if(current_lang == 'nl'){
		$.preLoadImages("./css/img/tree/nl/agenderen.png", "./css/img/tree/nl/archiveren.png", "./css/img/tree/nl/distribueren.png", "./css/img/tree/nl/functioneren.png", "./css/img/tree/nl/home.png", "./css/img/tree/nl/notuleren.png", "./css/img/tree/nl/over-mathla.png", "./css/img/tree/nl/publiceren.png");
	} else if(current_lang == 'en') {
		$.preLoadImages("./css/img/tree/en/about_mathla.png", "./css/img/tree/en/distribute.png", "./css/img/tree/en/filing.png", "./css/img/tree/en/home.png", "./css/img/tree/en/performance.png", "./css/img/tree/en/publish.png", "./css/img/tree/en/take_minutes.png", "./css/img/tree/en/the_meeting_agenda.png");
	}
	
	$('#search form').submit(function(){
		if($('#factsheet_overlay')){
			$('#factsheet_overlay').remove();
		}
		if($('#factsheet_container')){
			$('#factsheet_container').remove();
		}
		var q = escape($('#search #search_input').val());
		open_factsheet('#!/'+current_lang+'/search/'+q, current_loc, current_lang);
		return false;
	})
	
	$('#logo a').click(function(){
		if($('#factsheet_overlay').length){
			kill_factsheet();
		}
	});
	
	$('.language a').click(function(){
		if($('#factsheet_overlay').length){
			kill_factsheet();
		}
	});
	
	$('#navigation a').click(function(){
		if($('#factsheet_overlay').length){
			kill_factsheet();
		}
	});
})

function set_tree_size(){
	var window_h = $(window).height();
	var new_window_h = ((window_h-778)/2);
		
	console.log(new_window_h);
	
	$('#tree').css('top', new_window_h);
}

function set_tree(el, url){
	//get url
	if(url){
		var spurl = url.split('/');
	} else{
		url = el.attr('href');
		var spurl = url.split('/');
	}
	//get lang
	if(spurl[1] != current_lang){
		current_lang = spurl[1];
		$('#navigation ul').load('pages/navigation/'+current_lang+'.html');
	} else {
		current_lang = spurl[1];
	}
	var lang = current_lang;
	
	if(spurl[2] != 'contact'){
		$('#tree').attr('class', '');
		$('#tree').addClass(spurl[2]);
		$('#tree').load('pages/'+ lang + '/tree/'+spurl[2]+'.html');
		$('#navigation a').removeClass('active');
		$('#navigation .'+spurl[2]).addClass('active');
		if(spurl[2] != 'home'){
			$('#navigation').show();
		} else {
			$('#navigation').hide();
		}
	} else {
		open_factsheet('#!/'+lang+'contact', current_loc, lang);
		$('#navigation a').removeClass('active');
		$('#navigation .contact').addClass('active');
	}
	
	if(spurl[3]){
		open_factsheet(url, null, current_lang);
	}
	current_loc = url;
	
	change_language();
}

function check_location(){
	if(window.location.hash != current_loc){
		set_tree(null, window.location.hash);
	}
	var t = setTimeout('check_location()', 20);
}

function change_language(){
	$('body').attr('class', '');
	$('body').addClass(current_lang);
	
	$('#language_social .language a').removeClass('active');
	$('#language_social .language a.'+current_lang).addClass('active');
	
	var logo_h = $('#logo a').attr('href');
	var logo_hs = logo_h.split('!');
	if(logo_hs[1].substr(0, 3) == '/nl' || logo_hs[1].substr(0, 3) == '/en' || logo_hs[1].substr(0, 3) == '/fr'){
		var lurl = logo_hs[1].substr(3);
	} else {
		var lurl = logo_hs[1];
	}
	$('#logo a').attr('href', '#!/'+current_lang+lurl);
	
	if($('#navigation a').length){
		//$('#navigation a').each(function(){
			var href = $(this).attr('href');
			if(href != null){
				var shref = href.split('!');
				if(shref[1].substr(0, 3) == '/nl' || shref[1].substr(0, 3) == '/en' || shref[1].substr(0, 3) == '/fr'){
					var url = shref[1].substr(3);
				} else {
					var url = shref[1];
				}
				var new_link = '#!/'+current_lang+url;
				$(this).attr('href', new_link);
			}
		}
	//}
}
