// JavaScript Document
// General site navigation and initialization
// Version 2008-12-29
// ©2008 Christian Reichmuth
// www.ihr-hirn-mit-cafesucht.ch


var menuLabels;
var subLabels;
var menuLinks;
var subLinks;
var currMenu;
var currSub;
var isIE = false;
var winHeight;
var winWidth;

//***********site dependend variables *************************
var MOSTRIGHT_BUTTON = 8;
var MOSTRIGHT_SUB_BUTTON = 3;
var PAGE_LANGUAGE = "en";
var COOKIE_LIFETIME = 31536000000;
//*************************************************************


function InitPage () {
	CheckBrowserFamily();
	GetWindowSize();
	SetPageLanguage();
	SetMenuLabels();
	SetSubMenuLabels();
	
	currMenu=0;currSub=null;
	
	BuildMenu(currMenu);
	BuildSubMenu(currMenu,currSub);
	BuildFooter();
	SetDocTitle(currMenu);
	SiteChangePage(0,null);
}

function LoadMenus (menuId,subId) {
	currMenu = menuId;currSub = subId;
	
	CheckBrowserFamily();
	GetWindowSize();
	SetPageLanguage();
	SetMenuLabels();
	SetSubMenuLabels();
	BuildMenu(menuId);
	BuildSubMenu(menuId,subId);
	BuildFooter();
	SetDocTitle(menuId);
}

function CheckBrowserFamily() {
		//Detect IE6+
		version=10;
		isIE = false;
		if (navigator.appVersion.indexOf("MSIE")!=-1){
			isIE = true;
			temp=navigator.appVersion.split("MSIE");
			version=parseFloat(temp[1]);
		}
}

function GetWindowSize () {

	if (window.innerHeight && isIE == false) {
		winHeight = window.innerHeight;
		winWidth = window.innerWidth;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		winHeight = document.documentElement.clientHeight;
		winWidth = document.documentElement.clientWidth;
	} else if (document.body) {
		winHeight = document.body.clientHeight;
		winWidth = document.body.clientWidth;
	} else {
		window.alert(unescape("Fenstergr%F6sse konnte nicht bestimmt werden! Darstellungsfehler sind m%F6glich.\n\nCould not calculate window size! Minor errors are possible."));
		winHeight = 768;
		winWidth = 1024;
	};
}


function SetPageLanguage (lang) {
	if ((readCookie("lang")!=null) && (readCookie("lang")!="") && (readCookie("lang")!="undefined")) {
		  PAGE_LANGUAGE = readCookie("lang");
	  }else{
		if (typeof navigator.language != "undefined") {
			language = navigator.language.substring(0,2);
		} else if (typeof navigator.browserLanguage != "undefined") {
			language = navigator.browserLanguage.substring(0,2);
		}
		
		switch (language) {
			case "de":
			case "it":
			case "en": PAGE_LANGUAGE = language;
		}
		writeCookie("lang",PAGE_LANGUAGE);
	  }
}

function pausecomp(millis) {
	var date = new Date();
	var curDate = null;
	
	do { curDate = new Date(); }
	while(curDate-date < millis);
}


function ChangeLanguage(lang) {
	writeCookie("lang",lang);
	if (location.href.lastIndexOf("content_de")!=-1) {
		window.location.href = location.href.replace("content_de","content_"+lang);
	} else if (location.href.lastIndexOf("content_en")!=-1) {
		window.location.href = location.href.replace("content_en","content_"+lang);
	} else if (location.href.lastIndexOf("content_it")!=-1) {
		window.location.href = location.href.replace("content_it","content_"+lang);
	} else {
		window.location.reload();
	}
}

function SetDocTitle(id) {
	path = location.href
	if ((path.substring(path.lastIndexOf("/")+1,path.length)=="index.html") || (path.lastIndexOf("/")==path.length)) {
		document.title = "marco santilli";
	} else {
		document.title = "marco santilli - "+menuLabels[id];
	}
}

function SetMenuLabels () {
	  switch (PAGE_LANGUAGE) {
		  case "de": menuLabels = new Array("news","projekte","konzerte","musik","bilder & filme","biografie","repertoire","links & dateien","kontakt");break;
		  case "en": menuLabels = new Array("news","projects","concerts","music","pictures & clips","biography","repertoire","links & files","contact");break;
		  //case "fr": menuLabels = new Array("projets","concerts","demos","images","biographie","repertoire","links","contact");break;
		  case "it": menuLabels = new Array("news","progetti","concerti","musica","foto e film","biografia","repertorio","links e documenti","contatto");break;
		  default: menuLabels = new Array("news","projects","concerts","music","pictures & clips","biography","repertoire","links & files","contact");break;
	  }
	  
	  menuLinks = new Array("./content/news.html","./content_"+PAGE_LANGUAGE+"/projects.html","./content/concerts.html","./content/demos.html","./content/foto.html","./content_"+PAGE_LANGUAGE+"/biography.html","./content/rep_classic.html","./content/links.html","./content/guestbook.html");
	  //"./content/gallery.html"
}

function SetSubMenuLabels () {
	switch (PAGE_LANGUAGE) {
		case "de": subLabels = new Array("allgemeine biografie","chronologische biografie","klassisches repertoire","jazz repertoire","g&auml;stebuch","mail","newsletter","kontakt  webmaster","bilder","filme","links","dateien");break;
		case "en": subLabels = new Array("general biography","chronological biography","classical repertoire","jazz repertoire","guestbook","mail","newsletter","contact webmaster","pictures","clips","links","files");break;
		//case "fr": subLabels = new Array("projets","concerts","demos","images","biographie","repertoire","links","contact");break;
		case "it": subLabels = new Array("biografia generale","biografia cronologica","repertorio classico","repertorio jazz","guestbook","mail","newsletter","contatto webmaster","foto","film","links","documenti");break;
		default: subLabels = new Array("general biography","chronological biography","classical repertoire","jazz repertoire","guestbook","mail","newsletter","contact webmaster","pictures","clips","links","files");break;
	}
	
	subLinks = new Array("./content_"+PAGE_LANGUAGE+"/biography.html","./content_"+PAGE_LANGUAGE+"/biography_chron.html","./content/rep_classic.html","./content_"+PAGE_LANGUAGE+"/rep_jazz.html","./guestbook/index.php","./content/contact.html","./content/mailinglist.html","./content/webmistress_contact.html","./content/foto.html","./content/clips.html","./content/links.html","./content/files.html");
}

function BuildMenu (activeButton) {
	code = "";
	
	for (i=0;i<menuLabels.length;i++) {
		if (i == activeButton) {
			buttonClass = 'menu_button_active';
		} else {
			buttonClass = 'menu_button';
		}
		
		if (i == MOSTRIGHT_BUTTON) {
			buttonClass += "_right";	
		}
		
		code += '<div onclick="javascript:SiteChangePage('+i+')" class="' + buttonClass + '"><div class="menu_button_text">' + menuLabels[i] + '</div></div>';
	}
	
	document.getElementById("menu_top").innerHTML = code;
}

function SiteChangePage(index) {
	path = location.href;
	target = menuLinks[index];
	if ((target.lastIndexOf("http://")!=-1) || (target.lastIndexOf("https://")!=-1)) {
		location.href=target;
	} else {
		if ((path.lastIndexOf("content")!=-1) || (path.lastIndexOf("content_de")!=-1) || (path.lastIndexOf("content_en")!=-1) || (path.lastIndexOf("content_fr")!=-1)) {
			location.href="."+target;
		} else {
			location.href=target;
		}
	}
	LoadMenus(index,null);
}

function ChangeSubPage(pageId,subId) {
	path = location.href;
	target = subLinks[pageId,subId];
	if ((target.lastIndexOf("http://")!=-1) || (target.lastIndexOf("https://")!=-1)) {
		location.href=target;
	} else {
		if ((path.lastIndexOf("content")!=-1) || (path.lastIndexOf("content_de")!=-1) || (path.lastIndexOf("content_en")!=-1) || (path.lastIndexOf("content_fr")!=-1)) {
			location.href="."+target;
		} else {
			location.href=target;
		}
	}
	LoadMenus(pageId,subId);
}

function GetSubMenuPoints(activeMenu) {
	switch(activeMenu) {
		case 4: return new Array(8,9);break;
		case 5: return new Array(0,1);break;
		case 6: return new Array(2,3);break;
		case 7: return new Array(10,11);break;
		case 8: return new Array(4,5,6,7);break;
	}
}

function BuildSubMenu (activeMenu, activeSub) {
	code = "";
	
	if (typeof array!="undefined")
		delete menuPoints;
	
	menuPoints = GetSubMenuPoints(activeMenu);
	
	if (typeof menuPoints!="undefined") {
		for (i=0;i<menuPoints.length;i++) {
			if (i == activeSub) {
				buttonClass = 'submenu_button_active';
			} else {
				buttonClass = 'submenu_button';
			}
			
			if (i == MOSTRIGHT_SUB_BUTTON) {
				buttonClass += "_right";	
			}
			
			code += '<div onclick="javascript:ChangeSubPage('+activeMenu+','+menuPoints[i]+')" class="' + buttonClass + '"><div class="submenu_button_text">' + subLabels[menuPoints[i]] + '</div></div>'
		}
	}
	
	document.getElementById("submenu_top").innerHTML = code;
}

function BuildFooter() {
	document.getElementById("footer").innerHTML = '<div class="footer_left"><a class="footer" href="http://www.ihr-hirn-mit-cafesucht.ch">&copy;2008 Ihr-Hirn-Mit-Cafesucht</a></div><div class="footer_center"><a class="footer" href="javascript:ChangeLanguage(\'en\')">english</a> | <a class="footer" href="javascript:ChangeLanguage(\'it\')">italiano</a> | <a class="footer" href="javascript:ChangeLanguage(\'de\')">deutsch</a></div><div class="footer_right"><a class="footer" href="javascript:ChangeSubPage(8,7)">Webmaster</a></div>';
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function writeCookie(name,value) {
	var a = new Date();
	a = new Date(a.getTime()+COOKIE_LIFETIME);
	document.cookie = name+'='+value+"; expires="+a.toGMTString()+";path=/;";
}

function eraseCookie(name) {
	writeCookie(name,"");
}

function loadPlayer(path,width,height,info) {
	switch(PAGE_LANGUAGE) {
		case "de": closeText = "schliessen";
		case "it": closeText = "chiudere";
		case "en":
		default: closeText = "close";
	}
	
	if (isIE==0) {
		l_code = '<div class="player_shadow" style="height: 100%; width: 100%;" onClick="javascript:unloadPlayer()"></div>';
	}
	else {
		l_code = '<div class="player_shadow_IE" style="height: 100%; width: 100%;" onClick="javascript:unloadPlayer()"></div>';
	}
	
	if (info) {
		info_code = '<div class="player_text">'+info+'</div>';
		info_height = 14;
	} else {
		info_code = '<div class="player_text"></div>';
		info_height = 14;
	}
	
	if (height && path) {
		document.getElementById('plugin').innerHTML = l_code + '<div class="player_layer" style="height: ' + (height+100-info_height) + 'px; width: ' + (width+100) + 'px; top: ' + playerTop(height) + 'px; left: ' + playerLeft(width) + 'px">' + info_code + 
			'<embed src="' + path + '" width="' + width + 'px" height="' + (height+16) + 'px" bgcolor="000000"></embed><p class="player_text"><a href="javascript:unloadPlayer()">' +
			closeText + '</a></p></div>';
		
	} else {
		document.getElementById('plugin').innerHTML = l_code + '<div class="player_layer" style="height: ' + (110-info_height) + 'px; width: 300px; top: ' + playerTop(110) + 
			'px; left: ' + playerLeft(300) + 'px">' + info_code + '<embed src="' + path + '" width="250px" height="16px" bgcolor="000000"></embed>' +
			'<p class="player_text"><a href="javascript:unloadPlayer()">' + closeText + '</a></p></div>';
	}
}

function playerLeft (width) {
	return (winWidth-width-100)/2;
}

function playerTop (height) {
	return (winHeight-height-100)/2;
}

function unloadPlayer() {
	document.getElementById('plugin').innerHTML = "";	
}