// JavaScript Document


function setImgSrc(id, url) {
	o = document.getElementById(id);
	if(o) {
		o.src = url;
	}
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


/* TREEMENU */

//SuckerTree Horizontal Menu (Sept 14th, 06)
//By Dynamic Drive: http://www.dynamicdrive.com/style/

var menuids=["treemenu1"] //Enter id(s) of SuckerTree UL menus, separated by commas

function treemenu_init(){
for (var i=0; i<menuids.length; i++){
  var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
    for (var t=0; t<ultags.length; t++){
		if (ultags[t].parentNode.parentNode.id==menuids[i]){ //if this is a first level submenu
			ultags[t].style.top=ultags[t].parentNode.offsetHeight+"px" //dynamically position first level submenus to be height of main menu item
			ultags[t].parentNode.getElementsByTagName("a")[0].className="mainfoldericon"
		}
		else{ //else if this is a sub level menu (ul)
		  ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px" //position menu to the right of menu item that activated it
    	ultags[t].parentNode.getElementsByTagName("a")[0].className="subfoldericon"
		}
    ultags[t].parentNode.onmouseover=function(){
    this.getElementsByTagName("ul")[0].style.visibility="visible"
    }
    ultags[t].parentNode.onmouseout=function(){
    this.getElementsByTagName("ul")[0].style.visibility="hidden"
    }
    }
  }
}

var whatsnewCurrent = -1;
var whatsnewMax;
var whatsnewTimer;
var whatsnewId;
var whatsnewPreview;

function whatsnewStart(id, preview) {
	if(whatsnewTimer) {
		clearTimeout(whatsnewTimer);
	}

	whatsnewId = new Array();
	whatsnewPreview = new Array();
	for(i = 0 ; i < id.length ; i++) {
		whatsnewId[i] = id[i];
		whatsnewPreview[i] = preview[i];
	}
	whatsnewMax = id.length;
	whatsnewAction();
	whatsnewTimer = setTimeout('whatsnewAction()', 3500);
}

function whatsnewAction() {
	if(whatsnewTimer) {
		clearTimeout(whatsnewTimer);
	}

	whatsnewCurrent++;
	if(whatsnewCurrent >= whatsnewMax) {
		whatsnewCurrent = 0;
	}
//alert(whatsnewCurrent + " van de " + whatsnewMax);
	o = document.getElementById("whatsnew_a");
	if(o) {
		o.href = 'whatsnew.php?whatsnew='+whatsnewId[whatsnewCurrent];
	}
	o = document.getElementById("whatsnew");
	if(o) {
		o.src = whatsnewPreview[whatsnewCurrent];
	}
	whatsnewTimer = setTimeout('whatsnewAction()', 3500);
}


var mapMap;
var mapDirections;
var mapGeocoder = null;
var mapAddressMarker;

function mapInitialize() {
	if (GBrowserIsCompatible()) {
		mapMap = new GMap2(document.getElementById("map_map"),{ size: new GSize(503,448) } );
		mapMap.removeMapType(G_HYBRID_MAP);
		mapMap.addControl(new GLargeMapControl());
		var mapControl = new GMapTypeControl();
		mapMap.addControl(mapControl);
		mapDirections = new GDirections(mapMap, document.getElementById("map_directions"));
		
		GEvent.addListener(mapDirections, "load", onGDirectionsLoad);
		GEvent.addListener(mapDirections, "error", mapHandleErrors);
	}
}

function mapSetDirections(fromAddress, toAddress, locale) {
	id = document.getElementById("map_directions");
	id.style.display='block';
	id.innerHTML = '';
	mapDirections.load("from: "+fromAddress+" to: "+toAddress, { "locale": locale });
}

function mapHandleErrors(){

	switch(mapDirections.getStatus().code) {
		case G_GEO_UNKNOWN_ADDRESS:
			msg = "Address not found.<br/>Please try again.";
			break;
		case G_GEO_SERVER_ERROR:
			msg = "Server error.<br/>Please try again.";
			break;
		case G_GEO_MISSING_QUERY:
			msg = "Error: missing query.<br/>Please try again.";
			break;
		case G_UNAVAILABLE_ADDRESS:
			msg = "This address is not available for directions.<br/>Please try again.";
			break;
		case G_GEO_BAD_KEY:
			msg = "Error: bad key.<br/>Please try again.";
			break;
		case G_GEO_BAD_REQUEST:
			msg = "Error: bad request.<br/>Please try again.";
			break;
		default:
			msg = 'unknown error';
	}
	
	id = document.getElementById("map_directions");
	id.style.display='block';
	id.innerHTML = msg;
}

function onGDirectionsLoad(){ 
  // Use this function to access information about the latest load()
  // results.

  // e.g.
  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
  // and yada yada yada...

}


// rechter muisklik uitzetten

var disableMouseButtonMessage = "The right mouse click has been disabled.";
function disableMouseButtonIE4() {
	if(event.button == 2) {
		alert(disableMouseButtonMessage);
		return false;
	}
}

function disableMouseButtonNS4(e){
	if(document.layers || document.getElementById && !document.all) {
		if(e.which == 2 || e.which == 3) {
			alert(disableMouseButtonMessage);
			return false;
		}
	}
}

function disableMouseButton() {
	if(document.layers) {
		document.captureEvents(Event.MOUSEDOWN);
		document.onmousedown = disableMouseButtonNS4;
	} else if(document.all && !document.getElementById) {
		document.onmousedown = disableMouseButtonIE4;
	}
	document.oncontextmenu = new Function("alert(disableMouseButtonMessage); return false;");
}

function onloadHandler() {
//	disableMouseButton();
}

function tab(id) {

	var ids = Array('info', 'zoom', 'docs', '3d', 'video');

	if(id == 'autodetect') {
		id = 'zoom';		// default
		var url = location.href;
		for(i = 0 ; i < ids.length ; i++) {
			if(url.search("tab="+ids[i]) > -1) {
				id = ids[i];
			}
		}	
	}
	
	for(i = 0 ; i < ids.length ; i++) {
		var button = document.getElementById('tab-'+ids[i]+'-button');
		var content = document.getElementById('tab-'+ids[i]+'-content');
		if(button) {
			if(ids[i] == id) {
				button.className = "tab tab-"+ids[i]+" current";
			} else {
				button.className = "tab tab-"+ids[i];
			}
		}
		if(content) {
			if(ids[i] == id) {
				content.style.display = 'block';
			} else {
				content.style.display = 'none';
			}
		}
	}
	return false;
}

