//dummy variabele voor muis-volg-routines
//door een functie te declareren met de naam volgMuis2() zal de menu code automatisch deze aanroepen onmousemove...
var thisisthehomepage = false;
var volgMuis2 = null;
var menuIsOpen = false;
var curScrollTop = 0;

if (!window.opener && (window == window.top)) window.name = "Klokhuis";

//zorg dat dit window vooraan staat
if (window == top) window.focus();

//maak een browser object
function Browser() {

	this.name = navigator.appName;
	
	if (this.name == "Netscape") this.name = "nn";
	else if (this.name == "Microsoft Internet Explorer") this.name = "ie";
	this.version = parseFloat(navigator.appVersion);

	this.ie = (this.name == "ie");
	this.nn = (this.name == "nn");
	this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0);
	if (!this.ie4) {this.ie4 = (navigator.userAgent.indexOf('msie 4')>0);}
	this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0);
	if (!this.ie5) {this.ie5 = (navigator.userAgent.indexOf('msie 5')>0);}
	// 25/09/2003 -- MZ: Mozilla browser ?
	this.mozilla = (navigator.userAgent.indexOf('Mozilla')>-1);
	// 06/05/2005 -- RJ: Firefox browser ?
	this.firefox = (navigator.userAgent.indexOf('Firefox')>-1);
	

	
// 22/05/2001	
	this.ie6 = (navigator.userAgent.indexOf('MSIE 6')>0);		
	this.ie7 = (navigator.userAgent.indexOf('MSIE 7')>0);
	this.ie8 = (navigator.userAgent.indexOf('MSIE 8')>0);
	
	this.nn4 = ((this.name == "nn") && (this.version >= 4.08) && (this.version < 5));
	this.nn45 = ((this.name == "nn") && (this.version >= 4.5) && (this.version < 5));		
	this.nn6 = ((this.name == "nn") && (this.version >= 5));
	// 25/09/2003 -- MZ: Mozilla 5 or greater browser ?
	this.mozilla5plus = ((this.mozilla) && (this.version >= 5));

	this.mac = (navigator.appVersion.indexOf("Macintosh") > 0);
	this.win = (navigator.appVersion.indexOf("Win") > 0);
	this.ie5mac = (this.ie5 && this.mac);
	
	this.opera = (navigator.userAgent.indexOf('Opera')>0);
}

var browser = new Browser();

if (!browser.ie4 && 
    !browser.ie5 && 
	!browser.ie5mac && 
	!browser.ie6 && 
	!browser.ie7 && 
	!browser.ie8 && 
	!browser.opera && 	
	!browser.mozilla5plus	 &&
	!browser.nn45) top.document.location = pathToRoot + "browsercheck.html";

//schermhoogte
var pw = 800;
var ph = 600;
if (document.body) {
	if (browser.nn4 || browser.nn6) {
		var pw = window.innerWidth;
		var ph = window.innerHeight;
	} else {
		var pw = document.body.clientWidth;
		var ph = document.body.clientHeight;
	}
}

if (!pathToRoot && (pathToRoot != ""))
	var pathToRoot = "../../";

document.writeln('<link rel="stylesheet" type="text/css" href="' + pathToRoot + 'algemeen_' + browser.name + '.css" />');

function nsResizeBug() {
	if (innerWidth != document.orPageWidth || innerHeight != document.orPageHeight) location.reload();
}

if (browser.nn4) {
	document.orPageWidth = innerWidth;
	document.orPageHeight = innerHeight;
	onresize = nsResizeBug;
}

function hlimg(divid, id, highlight, layer) {
	if (!layer || !browser.nn4) var layer = window;
	if (browser.ie || browser.nn6) {
		var img = document.images[id];
	} else {
		if (divid) {
			var div = layer.document.layers[divid];
			if (!div) return;
			var img = div.document.images[id];
		} else var img = document.images[id];
	}
	if (!img) return;

	if (highlight) {
		var src = img.src;
		if (src.lastIndexOf("_o") != (src.length-6)) src = src.substring(0, src.length-4) + "_o" + src.substring(src.length-4, src.length);
	} else {
		var src = img.src;
		if (src.lastIndexOf("_o") == (src.length-6)) src = src.substring(0, src.length-6) + src.substring(src.length-4, src.length);
	}
	if (src != img.src) img.src = src;
}

function getimg(divid, id, layer) {
	if (!layer) var layer = window;
	if (browser.ie || browser.nn6) {
		var img = document.images[id];
	} else {
		if (divid) {
			var div = layer.document.layers[divid];
			if (!div) return null;
			var img = div.document.images[id];
		} else var img = layer.document.images[id];
	}
	return img;
}

function setimg(divid, id, src, layer) {
	if (!layer) var layer = window;
	if (browser.ie || browser.nn6) {
		var img = document.images[id];
	} else {
		if (divid) {
			var div = layer.document.layers[divid];
			if (!div) return;
			var img = div.document.images[id];
		} else var img = layer.document.images[id];
	}
	if (!img) return;

	if (img.src != src) img.src = src;
}

function showdiv(id, show) {
	var div = document.getElementById(id);
	if (div) div.style.visibility = show ? "visible" : "hidden";
}

function hldiv(id, highlight) {
	if (highlight) {
		var lowID = id;
		var highID = id + "-o";
	} else {
		var lowID = id + "-o";
		var highID = id;
	}
	var hdiv = document.getElementById(highID);
	var ldiv = document.getElementById(lowID);
	if (hdiv) hdiv.style.visibility = "visible";
	if (ldiv) ldiv.style.visibility = "hidden";
}

var start_zi = new Array();
var id_zi = 0;
function zetInterval(functionName, ms) {
	var id = id_zi++;
	var d = new Date();
	start_zi[id] = d.getTime();
	var kode = "var d_zi=new Date(); d_zi=d_zi.getTime(); var FACTOR_ZI=(d_zi-start_zi[" + id + "])/" + ms + "; start_zi[" + id + "]=d_zi;";
	kode += " " + functionName + "(FACTOR_ZI);";
	return setInterval(kode, ms);
}

var start_zt = new Array();
var id_zt = 0;
function zetTimeout(functionName, ms) {
	var id = id_zt++;
	var d = new Date();
	start_zt[id] = d.getTime();
	var kode = "var d_zt=new Date(); d_zt=d_zt.getTime(); var FACTOR_ZT=(d_zt-start_zt[" + id + "])/" + ms + ";";
	kode += " " + functionName + "(FACTOR_ZT);";
	setTimeout(kode, ms);
}

function popupwindow(el, type) {
//testing
//el.href="/algemeen/aanmelden/bevestiging_aanmelding.html";
	var breedte = 516;
	var hoogte = 500;
	if (browser.nn4 && !browser.mac) breedte = 500;
	else if (browser.nn4 && browser.mac) breedte = 515;
	else if (browser.nn6) breedte = 516;
	else if (browser.mac && browser.ie) breedte = 483;

	switch (type) {
		case 'empty' : 
			breedte += 200 ;
			break;
		case 'video' :
			breedte -= 80 ;
			break;
	}
//	//gebrek aan scrollbar-correctie op NN4
//	if (browser.nn4 && (type=="reactie"))
//		if (browser.mac) breedte -= 15;
//		else breedte -= 16;

	if (screen && screen.width && screen.height) {
		var wt = (screen.height - 500)/2;
		var wl = (screen.width - breedte)/2;
	} else {
		var wt = 100;
		var wl = 120;
	}
	var w = window.open(el.href, "popup", "top=" + wt + ",left=" + wl + ",scrollbars=yes,width=" + breedte + ",height=" + hoogte);
	w.focus();
	return false;
}

function getElementById(id, layer) {
	if (!layer) var layer = window;
	if (browser.nn4) {
		var el = null;
		if (layer.document.layers[id]) el = layer.document.layers[id];
		else if (layer.document.images[id]) el = layer.document.images[id];
		else if (layer.document.forms[id]) el = layer.document.forms[id];
		else return null;
		el.style = el;
		return el;
	} if (browser.ie4) {
		var el = document.all[id];
		if (el && el.length) el = el[0];
		if (el) el.childNodes = el.children;
		return el;
	}
	return null;
}
if (browser.nn4 || browser.ie4) document.getElementById = getElementById;

function setclass(id, newclass) {
	if (browser.ie || browser.nn6) {
		var el = document.getElementById(id);
		if (el) el.className = newclass;
	}
}

function getObjectTop(o) {
	if (!o) return -1;

	if (browser.nn) return o.y;
	else if (browser.ie) {
		var t = o.offsetTop;
		if (browser.mac && browser.ie4) var p = o.parentElement;
		else var p = o.offsetParent;
		while (p) {
			t += p.offsetTop;
			if (browser.mac && browser.ie4) p = p.parentElement;
			else p = p.offsetParent;
		}
		return t;
	}
}
function getObjectLeft(o) {
	if (!o) return -1;

	if (browser.nn) return o.x;
	else if (browser.ie) {
		var l = o.offsetLeft;
		if (browser.mac && browser.ie4) var p = o.parentElement;
		else var p = o.offsetParent;
		while (p) {
			l += p.offsetLeft;
			if (browser.mac && browser.ie4) p = p.parentElement;
			else p = p.offsetParent;
		}
		return l;
	}
}

function getObjectWidth(o) {
	if (!o) return -1;

	if (browser.ie) return o.offsetWidth;
	else if (browser.nn) return o.clip.width;
	else return -1;
}

function getObjectHeight(o) {
	if (!o) return -1;

	if (browser.ie) return o.offsetHeight;
	else if (browser.nn) return o.clip.height;
	else return -1;
}

function getPageHeight() {
	if (browser.ie) return document.body.clientHeight;
	return window.innerHeight;
}

function getPageWidth() {
	if (browser.ie) return document.body.clientWidth;
	return window.innerWidth;
}

function getScrollOffsetLeft() {
	if (browser.ie) return document.body.scrollLeft;
	return window.pageXOffset;
}

// --------------------------- Drag routines --------------------------

var dragger = new Object();

function initDrag(draggables) {
	// first time
	if (!dragger.initialized) {
		dragger.draggables="";
		dragger.attachedDraggers = "";
		
		if (browser.nn) {
			document.captureEvents(Event.MOUSEDOWN);
			document.captureEvents(Event.MOUSEUP);
		} else {
			//document.onselectstart=checkDrag;
			document.ondragstart=checkDrag;
		}
		document.onmousedown = startDrag;
		document.onmouseup = endDrag;
		dragger.initialized=true;
	}
	
	dragger.el = null;
	dragger.draggables += draggables;
}

function attachDragger(elid, attachedelid) {
	dragger.attachedDraggers += "|" + elid + ">>" + attachedelid + "| ";
}

function checkDrag() {return false;}

function startDrag(e) {
	dragger.el=null;
	if (browser.ie) {
		dragger.el = event.srcElement;
		while ((dragger.draggables.indexOf("|"+dragger.el.id+"|")==-1)  && dragger.el.parentElement) {
			dragger.el = dragger.el.parentElement;
		}
		if (!dragger.el.parentElement) dragger.el=null;
	} else {
		var mouseX = e.pageX;
	       var mouseY = e.pageY;
		var tempLayer;
		var cnt=0;
		var els=new Array();
	       for (i=0; i<document.layers.length; i++) {
			tempLayer = document.layers[i];
			realLeft = tempLayer.left + tempLayer.clip.left;
			realRight = realLeft + tempLayer.clip.width;
			realTop = tempLayer.top + tempLayer.clip.top;
			realBottom = realTop + tempLayer.clip.height;
			if (mouseX>realLeft && mouseX<realRight && mouseY>realTop && mouseY<realBottom) {
				cnt++;
				els[cnt]=tempLayer;
				els[cnt].style=els[cnt];
		       	if (dragger.draggables.indexOf("|"+tempLayer.id+"|")==-1) {continue};
				dragger.el = tempLayer;

			}
        	}
//      		status = dragger.el + ":"+cnt + ":" + document.layers.length + ":"+e.pageX + ":" + e.pageY;
      		
        	if (cnt>1) {
        		// multiple layers possible. only do it if top layer is draggable.
        		var top=0;
//        		var s="";
        		
        		for (i=1; i<=cnt; i++) {
//        			s += i + " " + els[i].style.zIndex + ":"+els[i].id + ":"+els[i].visibility + ", ";
        			if (!els[i].style || els[i].style.zIndex>=top) {
        				if ((els[i].visiblity!="hide" && browser.nn) || (browser.ie && els[i].style.visiblity!="hidden")) {
	        				dragger.el=els[i];
	     	 				if (els[i].style) top=els[i].style.zIndex;
       	 			}
	     			}
        		}
        		if (dragger.el) {
        			if (dragger.draggables.indexOf("|"+dragger.el.id+"|")==-1) {
	        			dragger.el=null;
       	 		}
        		}
        	}
	}
	
	if (dragger.el) {
		// layer found!
		// calc pos & place on top
		if (browser.ie) {
			dragger.el.style.pixelLeft=dragger.el.offsetLeft;
			dragger.el.style.pixelTop=dragger.el.offsetTop;
			dragger.x=event.clientX+document.body.scrollLeft;
			dragger.y=event.clientY+document.body.scrollTop;
		} else {
			dragger.x=e.pageX;
			dragger.y=e.pageY;
		}
	} else {
		// no draggable layer found.
		return true;
	}
	
	return false;
}

function endDrag(e) {
	if (dragger.el) {
		dragger.el=null;
		return false;
	} else {
		return true;
	}
}

function moveDrag(e, newx, newy) {
	if (dragger.el) {
		var dx=newx-dragger.x;
		var dy=newy-dragger.y;
		dragger.x = newx;
		dragger.y = newy;

		if (browser.ie) {
			dragger.el.style.pixelLeft += dx;
			dragger.el.style.pixelTop += dy;
		} else {
			dragger.el.moveBy(dx,dy);
		}
		
		// check if there are layers which should move along
		var s="|"+dragger.el.id+">>";
		var place = dragger.attachedDraggers.indexOf(s);
		if (place>-1) {
			// yep.
			var id = dragger.attachedDraggers.substr(place+s.length);
			id = id.substr(0, id.indexOf("|"));
			var attachedel = document.getElementById(id);
			if (attachedel) {
				// move thisone to!
				if (browser.ie) {
					attachedel.style.pixelLeft += dx;
					attachedel.style.pixelTop += dy;
				} else {
					attachedel.moveBy(dx,dy);
				}
			}
			
		}
		return false;
	} else return true;
}

function getParameter(name, defaultValue) {
	////////////////////////////////////////////////
	// finds a parameter in the search-string of the location (...?.=..&.=..&.=..)
	// if not found this function returns the specified defaultValue
	// the defaultValue parameter is not required
	////////////////////////////////////////////////
	if (!defaultValue && (defaultValue != 0)) defaultValue = null;
	var result = defaultValue;
	
	var qa = unescape(document.location.search).substring(1, document.location.search.length).split("&");
	for (var i=0; i<qa.length; i++) {
		if (qa[i].indexOf(name + "=") == 0) {
			result = qa[i].substring(name.length+1, qa[i].length);
		}
	}

	return result;
}

// ************************ IMPLEMENTATION OF OMROEP.NL LOGO ************************
// Exclude all but IE users
// 28/02/2003 -- MZ: logo staat live d.d. 20/02/2003
//if (browser.ie) {

	// Find out if and where we're supposed to show the NPS logo
	showLogo = true;
	
	// exclude these (partly) urls
	excludefiles = new Array('/kijk/klokhuistvgids/index.cfm',
							 '/kijk/klokhuistvgids/content.cfm',
							 '/kijk/achterdeschermen/index.html',
							 '/threadmenu.cfm',
							 '/doe/reportageforum',
							 '/doe/zelfgemaaktereportages/novideo.cfm',
							 '/doe/zelfgemaaktereportages/video.cfm',
							 '/doe/zelfgemaaktereportages/archief/2001/video.cfm',
							 '/doe/faq/',
							 '/pakjecamera/',
							 '/kijk/demakers/',
							 '/kijk/achterdeschermen/',
							 '/praat/forum',
							 '/kijk/videopopup/beschrijving.html',
							 '/kijk/videopopup/video.html',
							 '/kijk/videopopup/beschrijving2.html',
							 '/kijk/videopopup/video2.html',
							 '/kijk/videopopup/beschrijving3.html',
							 '/kijk/videopopup/video3.html',
							 '/kijk/videopopup/beschrijving4.html',
							 '/kijk/videopopup/video4.html',
							 '/algemeen/zoeken/antwoord.cfm',
							 '/praat/chat/chat_links.html',
							 '/sketchstudio/index.cfm',
							 '/sketchstudio/sketchpodium.cfm',
							 '/sketchstudio/jouwsketches.cfm',
							 '/sketchstudio/colofon/index.html',
							 '/doe/gamestudioforum/');
							 // 02/04/2003 -- MZ:
							 // de videopopup gaf 3 keer het logo, deze
							 // worden nu gefilterd
							 
	// override the excluded urls by using these include urls
	includefiles = new Array('/gamestudioforum/titel.cfm',
							 '/forum/titel.cfm',
							 '/faq/lijst.cfm',
							 '/doe/pakjecamera/nav',
							 '/pakjecamera/intro.html',
							 '/doe/pakjecamera/repvoorwaarden',
							 '/kijk/demakers/persoon_index.cfm',
							 '/kijk/achterdeschermen/nav',
							 '/praat/forum/inloggen/',
							 '/praat/forum/reageer');
							 
	// Exclude	
	for (i=0;i<excludefiles.length;i++){
	  if (document.location.href.toUpperCase().indexOf(excludefiles[i].toUpperCase()) != -1){
	  	showLogo = false;
		break;
	  }
	}
	// Include
	for (i=0;i<includefiles.length;i++){
	  if (document.location.href.toUpperCase().indexOf(includefiles[i].toUpperCase()) != -1){
	  	showLogo = true;
		break;
	  }
	}
	
	if (showLogo) {
		
		var PoAlignment = 'PoRighttop';
		var PoLogoType = 1;
		var PoVSpace = 10;
		var PoHSpace = 10;
		document.writeln('<SCRIPT language="JavaScript" type="text/javascript" src="http://p.omroep.nl/menu/scripts/zapmenu.js"></SCRIPT>');
	}
	


// ********************** END OF IMPLEMENTATION OF OMROEP.NL LOGO **********************

