var vshState, vshEvents, vshEventNames;
var vshPollTimer;
function vshInit() {
	if (vshEventNames)
		return;
	if (window.attachEvent) window.attachEvent("onbeforeunload", function(){window.onerror=function(){return true;}});
	vshState = {};
	vshEventNames = {timeChange:1, cueChange:1};
	vshEvents = {}
}
function vshChkLd(divid) {
	var o, d;
	var ok = false;
	try {
		if ((o = vshGet(divid)) && (d = (o.getDuration ? o.getDuration() : vshCallN(o, "getDuration")))
			// && (o.getPercentLoaded ? o.getPercentLoaded() : vshCallN(o, "getPercentLoaded")) * d / 100 >= 
			//	vshState[divid].startt
			) {
			if (vshState[divid].startt) {
				vshSeek(divid, vshState[divid].startt);
				vshState[divid].startt = 0;
			}
			ok = true;
		}
	} catch (e) {}
	if (!ok)
		setTimeout('vshChkLd("' + divid + '")', 100);
}
function initPlayerDiv(divid, w, h, filename, startt, playing, duration, startImageTime) {
	vshInit();
	var ispopup = !window.k21;
	var usefvplay = window.vshUseFVPlay;
	var so = new SWFObject(
		usefvplay ? "/9000000/g/fvplay.swf" :
		!ispopup ? "/9000000/g/flowplayerlp.swf" : "/9000000/g/flowplayer116.swf", divid + "swf",
		ispopup ? "100%" : w, ispopup ? "100%" : (h + (window.vshControlH || 0)), "7", "#ffffff");
	//alert(deconcept.SWFObject.doPrepUnload);
	//deconcept.SWFObject.doPrepUnload = false;
	so.addParam("allowScriptAccess", "always");
	//iswin = false;
	if (!ispopup)
		so.addParam("wmode", "opaque");
	so.addParam("allowFullScreen", "true");
	var config = {videoFile:filename, loop:false,
		//useNativeFullScreen:true,
		//filePrefix:"/cgi-bin/as.cgi/9216517/c/play/f=",
		showFullScreenButton:true,
		showLoopButton:false,
		showMenu:false,
		//fullScreen:true;
		//fullScreenScriptURL:"/9000000/v/flowplayerfs.js",
		startingBufferLength:1,
		//autoPlay:false,
		//autoBuffering:false,
		//controlsAreaBorderColor:"#ffffff",
		menuItems:[true, true, true, false, false, false]};
	if (window.vshUseFlashSrv) {
		config.streamingServerURL = "rtmp:/stream";
		config.autoPlay = playing;
	}

	var s;
	if (!(s = vshState[divid]))
		s = vshState[divid] = {};
	s.filename = filename
	s.width = w;
	s.height = h;
	if (!s.cueBarExt)
		s.cueBarExt = "";
	var cues;
	if (!startt && (cues = vshState[divid].cues) && cues.length && cues[0][0])
		startt = cues[0][0];
	if (!ispopup) {
		//config.videoHeight = h;
		
		//config.autoPlay = false;
		//config.autoBuffering = false;
		//var l = location.href;
		//var i = l.indexOf("/", l.indexOf("//") + 2);
		//config.splashImageFile = l.substr(0, i) + getThumbUrl(s, startt, w, h).replace(/[&?]/g, "/").replace(/\/\//g, "/"); // + ".jpg";
		//config.splashImageFile = "/arne/bla.bla.bla_bla_bla_bla_100x100_bla.jpg";
		//config.playList = [{url:"/arne/bla.bla.bla_bla_bla_bla_100x100_bla.jpg"}, {url:config.videoFile}];
		//config.baseURL = "";
		//config.playList = [{url:"/9000000/g/leeg.jpg"}, {url:config.videoFile}];
		//delete config.videoFile;
		config.initialScale = "fit";
	} else {
		config.initialScale = "fit";
	}
	if (usefvplay) {
		config = {videoFile:config.videoFile,duration:duration||0,videoWidth:w,videoHeight:h,
			autoPlay:playing,startTime:startt,startImageTime:(startImageTime || 0),
			eventFunction:"vshEvent",eventData:divid,showHelp:!!window.vshHelpUrl};
		if (config.videoFile.indexOf("/1/") == -1)
			config.filePrefix = "/cgi-bin/as.cgi/9216517/c/play/f=";
		startt = 0;
	}
	var configs = rpcmarshall(config).replace(/'/g, "\\'").replace(/"/g, "'");
	//if(window.vshDebug)alert(rpcmarshall(configs));
	//if(window.k21=="vhqlg3qs6ine" || usefvplay)alert(configs);
	so.addVariable("config", escape(configs));
	//so.useExpressInstall("/9000000/g/expressinstall.swf");
	so.write(divid);
	//setTimeout(function() {so.write(divid);}, 10);
	if (usefvplay) {
		//alert(so.getVariablePairs());
		//alert(document.getElementById(divid).innerHTML);
		//alert(so.getAttribute("height"));
	}

	if (startt) {
		s.startt = startt;
		vshChkLd(divid);
	}
}

function vshCallVN(o,m,n) {
	o.CallFunction('<invoke name="' + m + '" returntype=""><arguments><number>' + n + '<\/number><\/arguments><\/invoke>');
}
function vshCallV(o,m,n) {
	o.CallFunction('<invoke name="' + m + '" returntype=""><arguments><\/arguments><\/invoke>');
}
function vshCallB(o,m,n) {
	try { return o.CallFunction('<invoke name="' + m + '" returntype="javascript"><arguments><\/arguments><\/invoke>') == "true"; } catch (e) {}
}
function vshCallN(o,m,n) {
	try { return o.CallFunction('<invoke name="' + m + '" returntype="javascript"><arguments><\/arguments><\/invoke>') * 1; } catch (e) {}
	/*
	var i = ret.indexOf('>') + 1;
	var j = ret.indexOf('<', i);
	return ret.substring(i, j) * 1;
	*/
}
function vshERun(funs, arg) {
	if (funs)
		for (var i = 0; i < funs.length; i++)
			funs[i](arg);
}
function vshFmtTimeDec(n, dec){
	var h=Math.floor(n/3600),m=Math.floor(n/60)%60;s=n%60;
	return [h||"",h?":":"",m<10?"0":"",m,":",s<10?"0":"",s.toFixed(dec)].join("");
}
function vshPollTime(divid, isSeek) {
	var o = vshGet(divid);
	if (!o || o.PercentLoaded()<100)
		return;
	var t = o.getTime ? o.getTime() : vshCallN(o, "getTime"), d = o.getDuration ? o.getDuration() : vshCallN(o, "getDuration");
	if (!d)
		return;
	var s = vshState[divid];
	if (s.t == t)
		return;
	/*
	if (!s.fstpoll) {
		instul();
		s.fstpoll = 1;
	}
	*/
	s.t = t;
	var cs = s.cues;
	var c;
	if (cs && cs.length) {
		var c = s.c || 0;
		if (c >= cs.length)
			c = cs.length - 1;
		if (c == -1)
			c = 0;
		while (c >= 0 && t < cs[c][0])
			c--;
		if (c >= 0) {
			while (c < cs.length && t >= cs[c][1])
				c++;
			if (c == s.c + 1 && s.c >= 0 && !isSeek) {
				if (cs[s.c][3]) {
					vshPause(divid);
					if (cs[s.c][6])
						vshShowText(divid, cs[s.c][6]);
				} else if (c < cs.length) {
					if (cs[c][4]) {
						var nc = c;
						while (nc < cs.length && cs[nc][4])
							nc++;
						if (nc == cs.length)
							vshPause(divid);
						else {
							vshSeek(divid, cs[nc][0]);
							return;
						}
					} else if (t < cs[c][0]) {
						vshSeek(divid, cs[c][0]);
					}
				}
			}
			//document.getElementById("status").innerHTML = t + " " + c + " " + (c >= 0 ? cs[c][0] + " " + cs[c][1] : "");
		}
	}
	var evts = vshEvents[divid];
	if (c != s.c) {
		s.c = c >= cs.length ? -1 : c;
		vshERun(evts.cueChange, s.c, isSeek);
	}
	vshERun(evts.timeChange, t, isSeek);
}
function vshPause(divid) {
	if (!vshIsPlaying(divid))
		return;
	var o = vshGet(divid);
	if (o.Pause)o.Pause();else vshCallV(o,"Pause");
}
function vshStop(divid) {
	var o = vshGet(divid);
	if (o.DoStop)o.DoStop();else vshCallV(o,"DoStop");
}
function vshIsPaused(divid) {
	var o = vshGet(divid);
	return o.IsPaused?o.IsPaused():vshCallB(o,"IsPaused");
}
function vshIsPlaying(divid) {
	var o = vshGet(divid);
	return o.getIsPlaying?o.getIsPlaying():vshCallB(o,"getIsPlaying");
}
function vshPlay(divid) {
	var o = vshGet(divid);
	if (o.DoPlay)o.DoPlay();else vshCallV(o,"DoPlay");
}
function vshSeek(divid,s) {
	var v=vshState[divid];
	if (v.win)
		return v.win.vshSeek("vsh1", s);
	vshHideText(divid)
	var o = vshGet(divid);
	if (o.Seek)o.Seek(s);else vshCallVN(o,"Seek",s);
	
	vshPollTime(divid, true);
}
function vshGetTime(divid) {
	var o = vshGet(divid);
	return o.getTime ? o.getTime() : vshCallN(o, "getTime")
}
function vshSeekInc(divid,s) {
		vshSeek(divid, vshGetTime(divid) + s);
}
function vshGet(divid) {
	return document.getElementById(divid + "swf");
}
function vshPoll() {
	for (var divid in vshEvents) {
		vshPollTime(divid);
	}
}
function setupPoll() {
	if (!vshPollTimer)
		vshPollTimer = setInterval(vshPoll, 250);
}
function vshAttach(divid, name, f) {
	vshInit();
	if (!vshEventNames[name])
		throw new Error("Unknown event " + name);
	setupPoll();
	var evts, funs;
	if (!(evts = vshEvents[divid]))
		vshEvents[divid] = evts = {};
	if (!(funs = evts[name]))
		evts[name] = funs = [];
	for (var i = 0; i < funs.length; i++)
		if (funs[i] == f)
			return;
	if (!vshState[divid])
		vshState[divid] = {};
	funs.push(f);
}
function vshDetach(divid, name, f) {
	if (!vshEventNames[name])
		throw new Error("Unknown event " + name);
	var evts, funs;
	if (!(evts = vshEvents[divid]))
		return;
	if (!(funs = evts[name]))
		return;
	for (var i = 0; i < funs.length; i++)
		if (funs[i] == f) {
			funs.splice(i, 1);
			break;
		}
}
function vshIdxCode(cueidx) {
	return (cueidx >= 26 ? String.fromCharCode(97 + (cueidx / 26) - 1, 97 + (cueidx % 26)) : String.fromCharCode(97 + cueidx));
}
var vshCueLast = {};
function vshCueMove(divid, cuen) {
	var s = vshState[divid];
	var cuediv = document.getElementById(divid + "cue" + s.cueBarExt);
	var cues = s.cues;
	if (cuen < 0 || cuen >= cues.length)
		cuen = -1;
	document.getElementById(divid + "cuebar" + s.cueBarExt).style.borderLeft = "none";
	var last = vshCueLast[divid];
	var cuect = document.getElementById(divid + "cuec" + s.cueBarExt).firstChild;
	function cueborder(cuen) { return cuect.getElementsByTagName("table")[cuen]; }
	//function cueborder(cuen) { return cuediv.getElementsByTagName("img")[cuen * 2]; }
	function cuetime(cuen) { return cuediv.getElementsByTagName("span")[cuen]; }
	if (last) {
		cueborder(last - 1).style.borderColor = "transparent";
		cuetime(last - 1).style.backgroundColor = "#808080";
	}
	var ofse = null;
	if (cuen > 1) {
		ofse = cueborder(cuen - 1);
		while (ofse.tagName != "DIV")
			ofse = ofse.parentNode;
	}
	if (cuen >= 0) {
		if (s.cueBarExt)
			cuediv.scrollTop = ofse ? ofse.parentNode.offsetTop : 0;
		else
			cuediv.scrollLeft = ofse ? ofse.parentNode.offsetLeft : 0;
		cueborder(cuen).style.borderColor = "#2b99d9";
		cuetime(cuen).style.backgroundColor = "#80b8d9";
	}
	vshCueLast[divid] = cuen + 1;
}
function vshCueBar(divid, c, n, t) {
	var s = vshState[divid];
	//var cuediv = document.getElementById(divid + "cue" + s.cueBarExt);
	var cuect = document.getElementById(divid + "cuec" + s.cueBarExt).firstChild;
	function cueborder(cuen) { return cuect.getElementsByTagName("table")[cuen]; }
	//function cueborder(cuen) { return cuediv.getElementsByTagName("img")[cuen * 2]; }
	function cuetime(cuen) { return cuediv.getElementsByTagName("span")[cuen]; }

	//var cd = vshCues[divid];
	var img = cueborder(c);
	var bar = document.getElementById(divid + "cuebar" + s.cueBarExt);
	bar.style.marginLeft = img.parentNode.parentNode.offsetLeft + "px";
	bar.style.marginTop = img.parentNode.parentNode.offsetTop + "px";
	if (n < 0)
		n = 0;
	else if (n > 1)
		n = 1;
	//document.getElementById("status").innerHTML  = n + " " + t + cd[2][c];
	bar.style.borderLeft = Math.round((s.cueimgw + 5) * n) + "px solid #80b8d9";
	//document.forms[0].elements[0].value = bar.style.left + " " + bar.style.top + " " + bar.style.borderLeft;
}
function vshRepDo(divid) {
	var v = vshState[divid];
	if (v.repwait) {
		v.repwait--;
		return;
	}
	vshSeek(divid, v.t + v.rep);
}
function vshRep(divid, inc){
	var v = vshState[divid];
	if (inc == v.rep)
		return;
	v.rep = inc;
	v.repwait = 3;
	if (inc && !v.rept)
		v.rept = setInterval('vshRepDo("' + divid + '")', 100);
	else if (!inc && v.rept) {
		clearInterval(v.rept);
		v.rept = 0;
	}
}
function setLoading(state) {
	var div = document.getElementById("loading");
	if (!div) {
		div = document.createElement("div");
		div.id = "loading";
		div.style.position = "absolute";
		div.style.top = "0px";
		div.style.visibility = "hidden";
		document.body.appendChild(div);
		div.style.backgroundColor = "red";
		div.style.color = "white";
		div.style.fontWeight = "bold";
		div.style.zIndex = 32767;
		div.style.padding = "2px";
		div.innerHTML = "<blink>Bezig...</blink>";
	}
	div.style.top = document.body.scrollTop + "px";
	div.style.left = (document.body.clientWidth - div.offsetWidth) + "px";
	div.style.visibility = state ? "visible" : "hidden";
}
var vshCmdQueue = [];
function vshCmdNext() {
	rpc("/0310000/c/flvshow.cmd", vshCmdQueue[0], function(x) {
		vshCmdQueue.shift();
		if (vshCmdQueue.length) vshCmdNext(); else setLoading(false);
	});
}
var vshCmdQueue = [];
function vshSendCmd(divid, args) {
	vshCmdQueue[vshCmdQueue.length] = [vshState[divid].filename, args];
	if (vshCmdQueue.length == 1) {
		setLoading(true);
		vshCmdNext();
	}
}
function vshCTEStop(divid, commit) {
	var cte = document.getElementById(divid + "cte");
	var ct = document.getElementById(divid + "cuet");
	var s = vshState[divid];
	if (commit) {
		var text = htmlize(cte.firstChild.value);
		ct.innerHTML = vshIdxCode(s.cteci) + ". " + text;
		var cuecv = document.getElementById(divid + "cuecv");
		if (cuecv)
			cuecv.getElementsByTagName("table")[0].rows[s.cteci].cells[1].innerHTML = text;
	}
	cte.style.display = "none";
	ct.style.display = "";
	if (commit) {
		s.cues[s.cteci][2] = cte.firstChild.value;
		vshSendCmd(divid, ["set", s.cues[s.cteci][0], "n0d", cte.firstChild.value]);
	}
}
function vshCTEp(e, event) {
}
function vshCTEd(e, event) {
	if (event.keyCode == 13 || event.keyCode == 27) {
		vshCTEStop(e.parentNode.id.slice(0, -3), event.keyCode == 13);
		return false;
	}
}
function vshCueTextEdit(divid) {
	var ci = vshCueEditCur(divid);
	if (ci == -1) {
		vshCueEditNoAct();
		return;
	}

	var cte = document.getElementById(divid + "cte");
	var ct = document.getElementById(divid + "cuet");
	if (!cte) {
		var cte = ct.parentNode.insertBefore(document.createElement("div"), ct);
		cte.id = divid + "cte";
		cte.innerHTML = '<input type="text" style="width:100%;border:1px solid black;font-size:100%" onkeydown="return vshCTEd(this, event)" onkeypress="return vshCTEp(this, event)" onblur="vshCTEStop(this.parentNode.id.slice(0,-3))">';
	}

	var s = vshState[divid];
	s.cteci = ci;
	cte.firstChild.value = s.cues[ci][2];
	cte.style.display = "";
	ct.style.display = "none";
	cte.firstChild.select();
	cte.firstChild.focus();
}
function attrquote(s) {
	return s.replace(/[<>&"]/g, function(c) { return '&#' + c.charCodeAt(0) + ';'; });
}
function htmlize(s) {
	return s.replace(/[<>&"]/g, function(c) { return '&#' + c.charCodeAt(0) + ';'; });
}
function jsquote(s) {
	return s.replace(/[\\\']/g, "\\$0");
}
function getThumbUrl(v, t, w, h) {
	//return "/cgi-bin/as.cgi/0000000/c/flvscu.thumb/f=" + new File(v.filename).getPath().substitute("/../", "%2f..%2f") + "/w=" + v.cueimgw + "/h=" + v.cueimgh +
	//		"/t=" + t + "/f.jpg";
	if (v.filename.indexOf("/1/") != -1)
		return v.filename + "?i=2&w=" + (w || v.cueimgw) + "&h=" + (h || v.cueimgh) + "&t=" + t + "&/f.jpg";
	return "/cgi-bin/as.cgi/0000000/c/flvscu.thumb?f=" + escape(v.filename) +
			"&w=" + (w || v.cueimgw) + "&h=" + (h || v.cueimgh) +
			"&t=" + t + "&/f.jpg";
}
function vshStSet(divid, vs) {
	vshInit();
	var s;
	if (!(s = vshState[divid]))
		vshState[divid] = s = {};
	for (var i = 0; i < vs.length; i++)
		s[vs[i][0]] = vs[i][1];
}
/*
function vshMkCue(divid, ci) {
	var v = vshState[divid];
	var c = v.cues[ci];
	var t = c[0];
	var tthumb = c[5] || t;
	var desc = c[2];
	var imgw = v.cueimgw;
	var imgh = v.cueimgh;
	var src = getThumbUrl(v, tthumb);
	var cueidx = ci;
	var timeDisp = vshFmtTimeDec(t,0) + "(" + vshIdxCode(cueidx) + ")";
	if (c[4]) // r.get("l5i") * 1)
		timeDisp = "(" + timeDisp + ")";
	if (c[3]) // r.get("l5h") * 1)
		timeDisp = timeDisp + "|";
	var a = [];
	//a.push('<div style="float:left">'
	a.push('<table style="position:absolute" width="', imgw + 2, '" height="', imgh + 2,
		'" cellpadding="0" cellspacing="0"><tr>\n<td class="tdrightbottom" align="right" valign="bottom" width="100%" height="100%" style="cursor:hand" onclick="vshSeek(\'',
		divid, '\',', t,
		')" xonmouseover="',
		attrquote('showNote(\'' + jsquote("" + t) + '\',\'' + jsquote(vshFmtTimeDec(t,0)) + '\',\'' +
			jsquote(desc) + '\')'),
		'" xonmouseout="autoHideNote(1)"><span style="background-color:#808080">', 
		timeDisp,
		'</span></td>\n</tr></table>');
	a.push('<a href="#" onclick="vshSeek(\'' + divid + '\',' + t + ');return false">');
	a.push('<img src="' + attrquote(src) + '" style="border:2px solid transparent" width="' + imgw + '" height="' + imgh + '">');
	a.push('</a><img src="/9000000/g/aanleg.gif" width="5" height="5">');
	return a.join('');
}
*/
function vshMkCue(divid, ci) {
	var v = vshState[divid];
	var c = v.cues[ci];
	var t = c[0];
	var tthumb = c[5] || t;
	var desc = c[2];
	var imgw = v.cueimgw;
	var imgh = v.cueimgh;
	var src = getThumbUrl(v, tthumb);
	var cueidx = ci;
	var timeDisp = vshFmtTimeDec(t,0) + "(" + vshIdxCode(cueidx) + ")";
	if (c[4])
		timeDisp = "(" + timeDisp + ")";
	if (c[3])
		timeDisp = timeDisp + "|";
	var a = [];

	a.push('<td width="', imgw + 4, '"><div style="width:', imgw + 4,  'px">',
		'<table style="border:2px solid transparent;cursor:pointer" cellpadding="0" cellspacing="0"><tr><td background="',
		attrquote(src), '" class="tdrightbottom" width="', imgw, '" height="', imgh, '"',
		' onclick="vshSeek(\'', divid, '\',', t, ')">',
		'<span style="background-color:#808080">', timeDisp, '</span>',
		'</td></tr></table></div></td>');

	return a.join('');
}
	

function vshCueUpdate(divid) {
	var a = [];
	var s = vshState[divid];
	var cues = s.cues;
	var cuec = document.getElementById(divid + 'cuec' + s.cueBarExt);
	var vertical = s.cueBarExt == "v" || cuec.parentNode.className == "cuebarv";
	a.push('<table cellpadding="0" cellspacing="0"><tr>');
	for (var i = 0; i < cues.length; i++) {
		if (i && vertical)
			a.push('</tr><tr>');
		a.push(vshMkCue(divid, i));
		if (vertical)
			a.push('<td valign="top" style="padding-left:5px">', htmlize(s.cues[i][2]), '</td>');
	}
	a.push('</tr></table>');
	cuec.innerHTML = a.join("");
	delete vshCueLast[divid];
	cuec.parentNode.style.display = "";

	if (!cues.length)
		vshCueMove(divid, -1);

	delete s.c;
	delete s.t;
	vshPollTime(divid);
}
function vshCueReload(divid) {
	var v = vshState[divid]
	rpc("/0310000/c/flvshow.cueload", [v.filename], function(cues) {
		vshState[divid].cues = cues;
		vshCueUpdate(divid);
	});
}
function vshCueEditCur(divid) {
	vshPause(divid);
	vshPollTime(divid);
	var c = vshState[divid].c;
	if (c || c == 0)
		return c;
	return -1;
}
function vshCueDel(divid, ci) {
	var cues = vshState[divid].cues;
	var ost = cues[ci][0];
	if (ci > 0 && cues[ci - 1][1] == cues[ci][0])
		cues[ci - 1][1] = cues[ci][1];
	// work around strange ie bug (array fixed or temporary locked?)
	try { cues.splice(ci, 1); } catch (e) { var ncues = []; for (var i = 0; i < cues.length; i++) if (i != ci) ncues.push(cues[i]); vshState[divid].cues = ncues; }
	vshCueUpdate(divid);
	vshSendCmd(divid, ["del", ost]);
}
function vshCueAdd(divid, ci, t) {
	var cues = vshState[divid].cues;
	var et;
	if (ci > 0 && cues[ci - 1][1] > t) {
		et = cues[ci - 1][1];
		cues[ci - 1][1] = t;
	} else if (ci + 1 < cues.length)
		et = cues[ci + 1][0];
	else
		et = vshState[divid].duration;
	if (ci <= 0 && cues.length && t > cues[cues.length - 1][1])
		ci = cues.length;
	var ncue = [t, et, "", 0, 0];
	try { cues.splice(ci, 0, ncue); } catch (e) { var ncues = []; for (var i = 0; i < cues.length; i++) ncues.push(cues[i]); cues = ncues; cues.splice(ci, 0, ncue); }
	//alert(rpcmarshall(cues));
	vshCueUpdate(divid);
	vshSendCmd(divid, ["add", t]);
}
function vshCueSet(divid, ci, t) {
	var cues = vshState[divid].cues;
	var et;
	var ost = cues[ci][0];
	if (t < ost || t > cues[ci][1])
		return false;
	if (ci > 0 && cues[ci - 1][1] == ost || cues[ci - 1][1] > t)
		cues[ci - 1][1] = t;
	cues[ci][0] = t;
	vshCueUpdate(divid);
	vshSendCmd(divid, ["set", ost, "e0n", t]);
	return true;
}
function vshCueEditNoAct() {
	alert("Deze bewerking kan niet uitgevoerd worden: er is geen actief fragment.");
}
function vshCueEditDel(divid) {
	var ci = vshCueEditCur(divid);
	if (ci == -1) {
		vshCueEditNoAct();
		return;
	}
	var cues = vshState[divid].cues;
	if (!confirm("Weet u zeker dat u fragment\n" + vshFmtTimeDec(cues[ci][0], 0) + " " + cues[ci][2] + "\nwilt wissen?"))
		return;
	vshCueDel(divid, ci);
}
function vshCueEditSet(divid) {
	var ci = vshCueEditCur(divid);
	if (ci == -1) {
		vshCueEditNoAct();
		return;
	}
	vshPollTime(divid);
	var t = vshState[divid].t;
	if (!vshCueSet(divid, ci, t))
		alert("Ongeldige tijd");
}
function vshCueEditAdd(divid) {
	var ci = vshCueEditCur(divid);
	//if (ci == -1)
	//	return;
	vshPollTime(divid);
	vshCueAdd(divid, ci + 1, vshState[divid].t);
}
function vshPopup(divid) {
	var e = document.getElementById(divid);
	var v = vshState[divid];
	vshHideText(divid);
	var playing = vshIsPlaying(divid);
	vshPause(divid);
	vshPollTime(divid);
	var t = v.t;
	var popupvurl = "/cgi-bin/as.cgi/0310000/c/flvshow.popupb?fn=" + escape(v.filename) +
		"&divid=" + escape(divid) + "&t=" + escape(t) + "&omg=" + escape(omg);
	if (playing)
		popupvurl += '&playing=1';
	//var win = window.open(popupvurl, "popup" + divid, "resizable=yes,left=0,top=100,width=" + (v.width + 32) + ",height=" + (v.height + (v.cueimgh || 0) + 16 + 16 + 16 + 48));
	vshStop(divid);
	var win = window.open(popupvurl, "popup" + divid, "resizable=yes,left=0,top=0,width=" + (screen.availWidth - 16) + ",height=" + (screen.availHeight - 64));

	/*
	delete vshEvents[divid];
	e.innerHTML = '';
	if ((e = document.getElementById(divid + "all")))
		e.innerHTML = '<div><a href="#" onclick="vshState.' + divid + '.win.focus();return false">Naar popup</a></div>';
	vshState[divid] = {win:win};
	*/
	/*
	if (win) {
		var was = vshIsPlaying(divid);
		vshPause(divid);
		alert(divid + " was:" + was + " now:" + vshIsPlaying(divid));
	}
	*/
		//vshShowText(divid, "");
}
function vshShowText(divid, text) {
	var e = document.getElementById(divid);
	var ne = document.getElementById(divid + "vtext");
	var nenew = false;
	if (!ne) {
		ne = document.createElement("div");
		ne.id = divid + "vtext";
		nenew = true;
	}
	ne.style.position="absolute";
	var p = clientPos4(e);
	ne.style.left = p[0] + "px";
	ne.style.top = p[1] + "px";
	ne.style.width = e.offsetWidth + "px";
	ne.style.height = e.offsetHeight + "px";
	ne.style.className = "opaq";
	ne.style.opacity = "0.95";
	ne.style.filter = "alpha(opacity=95)";
	ne.style.backgroundColor = "#555";
	ne.style.color = "white";
	ne.style.zIndex = 999;
	ne.style.fontWeight = "bold";
	//ne.style.padding = "2em";
	ne.style.fontSize = "125%";
	ne.innerHTML = '<table cellpadding="0" cellspacing="0" height="100%" width="100%"><tr><td height="100%" width="100%" style="padding:2em;color:white;font-size:110%">' + text + '</td></tr><tr><td><a href="#" onclick="vshHideText(\'' + divid + '\');return false" style="color:white">sluiten</a></td></tr></table>';
	ne.style.display = "";
	if (nenew)
		document.body.appendChild(ne);
	vshState[divid].hasText = 1;
}
function vshHideText(divid) {
	if (vshState[divid].hasText) {
		var ne = document.getElementById(divid + "vtext");
		if (ne)
			ne.style.display = "none";
		vshState[divid].hasText = 0;
	}
}
function vshSetCuePos(divid, p) {
	/*
	var ct = document.getElementById(divid + 'cuetable');
	var cueh = document.getElementById(divid + 'cue');
	var cuev = document.getElementById(divid + 'cuev');
	alert("pre " + p + " h=" + cueh.style.display + " v=" + cuev.style.display + " ct=" + ct.style.display);
	*/

	for (var i = 0; i < 3; i++) {
		var img = document.getElementById(divid + "cpi" + i);
		img.src = img.src.slice(0, -5) + (i && i == p ? 1 : 0) + '.png';
	}
	var ct = document.getElementById(divid + 'cuetable');
	var cten = false;
	if (ct) {
		cten = p == 2 && ct.style.display; 
		ct.style.display = p == 2 ? "" : "none";
	}
	var v = vshState[divid];
	var cueh = document.getElementById(divid + 'cue');
	var cuev = document.getElementById(divid + 'cuev');
	if (p) {
		var newExt = p == 1 ? "" : "v";
		if (newExt != v.cueBarExt) {
			v.cueBarExt = newExt;
			var ea = p == 1 ? cueh : cuev;
			//var cuehtml = '<div id="' + divid + 'cuebar' + v.cueBarExt + '" style="position:absolute;width:' + v.cueimgw + 'px;font-size:75%;line-height:100%;z-index:65535;background-color:red;top:0;left:0">qqq</div>';
			var cuehtml = '<div id="' + divid + 'cuebar' + v.cueBarExt + '" style="position:absolute;width:' + v.cueimgw + 'px;font-size:75%;line-height:100%"></div>';
			ea.innerHTML = cuehtml + '<div id="' + divid + 'cuec' + v.cueBarExt + '"></div>';
			vshCueUpdate(divid);
			//alert("fill " + ea.id);
		}
	}
	cueh.style.display = p == 1 ? '' : 'none';
	cuev.style.display = p == 2 ? '' : 'none';
	//alert(p + " h=" + cueh.style.display + " v=" + cuev.style.display + " ct=" + ct.style.display);
	
	if (cten) {
		var ec = document.getElementById(divid + 'center');
		if (ec) {
			ec.style.display = "none";
			if(window.vshOnResize)window.vshOnResize()
			ec.style.display = "";
		}
	}
	if(window.vshOnResize)window.vshOnResize()
}
function vshEvent(divid, evtype) {
	switch (evtype) {
		case "help":
			popup(vshHelpUrl);
			break;
	}
}
function vshCueToFile(divid) {
	var ci = vshCueEditCur(divid);
	if (ci == -1) {
		vshCueEditNoAct();
		return;
	}
	var v = vshState[divid];
	var cue = v.cues[ci];
	var q;
	if (v.filename.indexOf("/1/") != -1)
		q = "mi=" + v.filename.substr(v.filename.lastIndexOf("/") + 1);
	else
		q = "f=" + escape(v.filename);
	q += "&fs=" + Math.round(cue[0], 2) + "&fe=" + Math.round(cue[1], 2);
	q += "&convert=1&noshow=1";
	popup("/9310000/1/j9vvg9ld4rqb4pr/vhqkic1sudwn?" + q, 800, 600);
}
