//solo.js for channel 233 / widget 473752 / WxH: 520x451 / skin: clean / vid: 0 / autoplay: N / matrix: Y 
// Widget standard js for yubby
// NOT based on prototype or jquery - cause it must be lightweight and cant interfere with host

/**
 *	htmlspecialchars - like its php counterpart
 *	@author rvw
 *	@since 08-03-2010 12:19
 */
function htmlspecialchars(string) {
	string = string.toString();
	string = string.replace(/&/g, '&amp;');    
	string = string.replace(/</g, '&lt;').replace(/>/g, '&gt;');
	string = string.replace(/"/g, '&quot;');
	// single quote.. string = string.replace(/'/g, '&#039;');
	return string;
}

//------------ tween.js ----------------------
function Delegate() {}
Delegate.create = function (o, f) {
	var a = new Array() ;
	var l = arguments.length ;
	for(var i = 2 ; i < l ; i++) a[i - 2] = arguments[i] ;
	return function() {
		var aP = [].concat(arguments, a) ;
		f.apply(o, aP);
	}
}

Tween = function(obj, prop, func, begin, finish, duration, suffixe){
	this.init(obj, prop, func, begin, finish, duration, suffixe)
}
var t = Tween.prototype;

t.obj = new Object();
t.prop='';
t.func = function (t, b, c, d) { return c*t/d + b; };
t.begin = 0;
t.change = 0;
t.prevTime = 0;
t.prevPos = 0;
t.looping = false;
t._duration = 0;
t._time = 0;
t._pos = 0;
t._position = 0;
t._startTime = 0;
t._finish = 0;
t.name = '';
t.suffixe = '';
t._listeners = new Array();	
t.setTime = function(t){
	this.prevTime = this._time;
	if (t > this.getDuration()) {
		if (this.looping) {
			this.rewind (t - this._duration);
			this.update();
			this.broadcastMessage('onMotionLooped',{target:this,type:'onMotionLooped'});
		} else {
			this._time = this._duration;
			this.update();
			this.stop();
			this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});
		}
	} else if (t < 0) {
		this.rewind();
		this.update();
	} else {
		this._time = t;
		this.update();
	}
}
t.getTime = function(){
	return this._time;
}
t.setDuration = function(d){
	this._duration = (d == null || d <= 0) ? 100000 : d;
}
t.getDuration = function(){
	return this._duration;
}
t.setPosition = function(p){
	this.prevPos = this._pos;
	var a = this.suffixe != '' ? this.suffixe : '';
	this.obj[this.prop] = Math.round(p) + a;
	this._pos = p;
	this.broadcastMessage('onMotionChanged',{target:this,type:'onMotionChanged'});
}
t.getPosition = function(t){
	if (t == undefined) t = this._time;
	return this.func(t, this.begin, this.change, this._duration);
};
t.setFinish = function(f){
	this.change = f - this.begin;
};
t.geFinish = function(){
	return this.begin + this.change;
};
t.init = function(obj, prop, func, begin, finish, duration, suffixe){
	if (!arguments.length) return;
	this._listeners = new Array();
	this.addListener(this);
	if(suffixe) this.suffixe = suffixe;
	this.obj = obj;
	this.prop = prop;
	this.begin = begin;
	this._pos = begin;
	this.setDuration(duration);
	if (func!=null && func!='') {
		this.func = func;
	}
	this.setFinish(finish);
}
t.start = function(){
	this.rewind();
	this.startEnterFrame();
	this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});
	//alert('in');
}
t.rewind = function(t){
	this.stop();
	this._time = (t == undefined) ? 0 : t;
	this.fixTime();
	this.update();
}
t.fforward = function(){
	this._time = this._duration;
	this.fixTime();
	this.update();
}
t.update = function(){
	this.setPosition(this.getPosition(this._time));
	}
t.startEnterFrame = function(){
	this.stopEnterFrame();
	this.isPlaying = true;
	this.onEnterFrame();
}
t.onEnterFrame = function(){
	if(this.isPlaying) {
		this.nextFrame();
		setTimeout(Delegate.create(this, this.onEnterFrame), 0);
	}
}
t.nextFrame = function(){
	this.setTime((this.getTimer() - this._startTime) / 1000);
	}
t.stop = function(){
	this.stopEnterFrame();
	this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});
}
t.stopEnterFrame = function(){
	this.isPlaying = false;
}

t.continueTo = function(finish, duration){
	this.begin = this._pos;
	this.setFinish(finish);
	if (this._duration != undefined)
		this.setDuration(duration);
	this.start();
}
t.resume = function(){
	this.fixTime();
	this.startEnterFrame();
	this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionResumed'});
}
t.yoyo = function (){
	this.continueTo(this.begin,this._time);
}

t.addListener = function(o){
	this.removeListener (o);
	return this._listeners.push(o);
}
t.removeListener = function(o){
	var a = this._listeners;	
	var i = a.length;
	while (i--) {
		if (a[i] == o) {
			a.splice (i, 1);
			return true;
		}
	}
	return false;
}
t.broadcastMessage = function(){
	var arr = new Array();
	for(var i = 0; i < arguments.length; i++){
		arr.push(arguments[i])
	}
	var e = arr.shift();
	var a = this._listeners;
	var l = a.length;
	for (var i=0; i<l; i++){
		if(a[i][e])
		a[i][e].apply(a[i], arr);
	}
}
t.fixTime = function(){
	this._startTime = this.getTimer() - this._time * 1000;
}
t.getTimer = function(){
	return new Date().getTime() - this._time;
}
Tween.backEaseIn = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158;
	return c*(t/=d)*t*((s+1)*t - s) + b;
}
Tween.backEaseOut = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158;
	return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
}
Tween.backEaseInOut = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158; 
	if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
	return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
}
Tween.elasticEaseIn = function(t,b,c,d,a,p){
		if (t==0) return b;  
		if ((t/=d)==1) return b+c;  
		if (!p) p=d*.3;
		if (!a || a < Math.abs(c)) {
			a=c; var s=p/4;
		}
		else 
			var s = p/(2*Math.PI) * Math.asin (c/a);
		
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	
}
Tween.elasticEaseOut = function (t,b,c,d,a,p){
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
	}
Tween.elasticEaseInOut = function (t,b,c,d,a,p){
	if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) var p=d*(.3*1.5);
	if (!a || a < Math.abs(c)) {var a=c; var s=p/4; }
	else var s = p/(2*Math.PI) * Math.asin (c/a);
	if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
}

Tween.bounceEaseOut = function(t,b,c,d){
	if ((t/=d) < (1/2.75)) {
		return c*(7.5625*t*t) + b;
	} else if (t < (2/2.75)) {
		return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
	} else if (t < (2.5/2.75)) {
		return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
	} else {
		return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
	}
}
Tween.bounceEaseIn = function(t,b,c,d){
	return c - Tween.bounceEaseOut (d-t, 0, c, d) + b;
	}
Tween.bounceEaseInOut = function(t,b,c,d){
	if (t < d/2) return Tween.bounceEaseIn (t*2, 0, c, d) * .5 + b;
	else return Tween.bounceEaseOut (t*2-d, 0, c, d) * .5 + c*.5 + b;
	}

Tween.strongEaseInOut = function(t,b,c,d){
	return c*(t/=d)*t*t*t*t + b;
	}

Tween.regularEaseIn = function(t,b,c,d){
	return c*(t/=d)*t + b;
	}
Tween.regularEaseOut = function(t,b,c,d){
	return -c *(t/=d)*(t-2) + b;
	}

Tween.regularEaseInOut = function(t,b,c,d){
	if ((t/=d/2) < 1) return c/2*t*t + b;
	return -c/2 * ((--t)*(t-2) - 1) + b;
	}
Tween.strongEaseIn = function(t,b,c,d){
	return c*(t/=d)*t*t*t*t + b;
	}
Tween.strongEaseOut = function(t,b,c,d){
	return c*((t=t/d-1)*t*t*t*t + 1) + b;
	}

Tween.strongEaseInOut = function(t,b,c,d){
	if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
	return c/2*((t-=2)*t*t*t*t + 2) + b;
	}

//======= end tween.js
// pgstats - poor mans page statistics.. 
// NOT based on prototype or jquery - cause it must be lightweight

// // get our script src, to know our baseurl so we can call home
// var pgstatsScriptSource = (function(scripts) {
//     var scripts = document.getElementsByTagName('script'),
//         script = scripts[scripts.length - 1];	// at ths very moment, we are the last script guaranteed
// 
//     if (script.getAttribute.length !== undefined) {
//         return script.src
//     }
// 
//     return script.getAttribute('src', -1)
// }());

var pgstats= {
	browser: navigator.userAgent,
	uid: '',
	scr: screen.width.toString()+'x'+screen.height.toString(),
	url: document.URL,
	referrer: document.referrer,
	ecollect: {},
	baseurl: 'http://www.dik.nl/',	// pgstatsScriptSource.substr(0,pgstatsScriptSource.lastIndexOf('/pgstats/')),
	init: function() {
		if (!(this.uid=this.readCookie('pgstats'))) {
			this.uid= Math.round(Math.random() * 2147483647).toString();
			this.uid+= Math.round(Math.random() * 2147483647).toString();
			this.createCookie('pgstats',this.uid,365*2);
		}
	}, 
	xPageHit: function () {
		var xhReq=this.createXMLHttpRequest();
		if (!xhReq)
			return 'ERR:xhReq';	// forget it..
		if (!this.baseurl)
			return 'ERR:baseurl';	// forget it..
		xhReq.open('get',this.baseurl+'pgstats/tick?'+this.collectInfo(),true);
		// xhReq.onreadystatechange = function() {
		//     if (xhReq.readyState != 4)  { return; }
		//     var serverResponse = xhReq.responseText;
		//     alert(serverResponse);
		// };
		xhReq.send();
		return 'OK';
	},
	collectInfo: function() {
		var rv;
		rv='ts=' + new Date().getTime();
		//rv+='&br='+this.encURI(this.browser);
		rv+='&uid='+this.uid;
		rv+='&url='+this.encURI(this.url);
		rv+='&refer='+this.encURI(this.referrer);
		//rv+='&ssrc='+this.encURI(this.baseurl);
		rv+='&scr='+this.scr;
		for (i in this.ecollect) {
			rv+='&'+i+'='+this.encURI(this.ecollect[i]);
		}

		return rv;
	},
	addcollect: function(key,val) {
		this.ecollect[key]=val;
	},
	//------- helper functions ----------
	createCookie: function (name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	readCookie: function(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;
	},
	eraseCookie: function(name) {
		createCookie(name,"",-1);
	},
	encURI: function(url) {
		//return encodeURIComponent(url);	// forgets to encode a lot of chars. Useless
		var s = escape(url);	// this is the most complete one, however forgets to encode star, slash, @ and +
		s = s.replace(/\*/g,"%2A");
		s = s.replace(/\//g,"%2F");
		s = s.replace(/\@/g,"%40");
		s = s.replace(/\+/g,"%2B");
		return s;
	},
	createXMLHttpRequest: function() {
  		try { return new XMLHttpRequest(); } catch(e) {}
		try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
		try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) {}
		return null;
	}
}
pgstats.init();
//pgstats.addcollect('vid','234234');
//pgstats.xPageHit();
var isIE = /MSIE ((5\.5)|[6])/.test(navigator.userAgent) && navigator.platform == "Win32";

var cvids_473752= new Array();	// channelvideo's
var curvid_473752=0;			// first video
var cpvideo_473752=false;		// false=thumb, true=video

// in IE, you need to declare these before the vp_createwg is called, otherwise they do not exist in the onclick context
var matrix_curpg=1;
var matrix_npages=1;


var butnext_mousein=false;
var butprev_mousein=false;
var butplay_mousein=false;
var butstop_mousein=false;
var butmatrix_mousein=false;

var imgNext_ov = new Image;
var imgNext_ou = new Image;
var imgNext_d  = new Image;
imgNext_ov.src="http://www.dik.nl//img/widget/solo/iconnext24ov.png";
imgNext_ou.src="http://www.dik.nl//img/widget/solo/iconnext24.png";
imgNext_d.src ="http://www.dik.nl//img/widget/solo/iconnext24d.png";

var imgPrev_ov = new Image;
var imgPrev_ou = new Image;
var imgPrev_d  = new Image;
imgPrev_ov.src="http://www.dik.nl//img/widget/solo/iconprev24ov.png";
imgPrev_ou.src="http://www.dik.nl//img/widget/solo/iconprev24.png";
imgPrev_d.src ="http://www.dik.nl//img/widget/solo/iconprev24d.png";

var imgPlay_ov = new Image;
var imgPlay_ou = new Image;
var imgPlay_d  = new Image;
imgPlay_ov.src="http://www.dik.nl//img/widget/solo/iconplay24ov.png";
imgPlay_ou.src="http://www.dik.nl//img/widget/solo/iconplay24.png";
imgPlay_d.src ="http://www.dik.nl//img/widget/solo/iconplay24d.png";

var imgStop_ov = new Image;
var imgStop_ou = new Image;
var imgStop_d  = new Image;
imgStop_ov.src="http://www.dik.nl//img/widget/solo/iconstop24ov.png";
imgStop_ou.src="http://www.dik.nl//img/widget/solo/iconstop24.png";
imgStop_d.src ="http://www.dik.nl//img/widget/solo/iconstop24d.png";

var imgMatrix_ov = new Image;
var imgMatrix_ou = new Image;
var imgMatrix_d  = new Image;
imgMatrix_ov.src="http://www.dik.nl//img/widget/solo/iconmatrix24ov.png";
imgMatrix_ou.src="http://www.dik.nl//img/widget/solo/iconmatrix24.png";
imgMatrix_d.src ="http://www.dik.nl//img/widget/solo/iconmatrix24d.png";

var wgElm_473752 = document.getElementById('viidoo_solo_473752');
if (wgElm_473752) {
	vp_createwg();
}

pgstats.addcollect('chid','233');
pgstats.addcollect('hit','embed');
pgstats.addcollect('widget','solo');
pgstats.xPageHit();

function vp_createwg() {
	// silly IE needs BR
	var html='<br style="display:none;"/><style type="text/css">	\
				.v69resetstyle	{ -moz-box-sizing: content-box !important; } \
				</style>';
	html+='<div id="widget_flash_473752" class="widget_flash v69resetstyle" style="width: 520px;height:451px;overflow:hidden; border: 1px solid #DDDDDD;font-family:Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Tahoma,Geneva,Arial,helvetica,sans-serif">';

	cvids_473752.push({vid:51248, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/209/723/20972318_200.jpg', title: 'Dik.nl solo widget', desc: 'De Dik.nl solo widget is een makkelijke manier om een video van Dik.nl op je website te plaatsen zonder dat je alle andere leuke video\'s uit het kanaal hoeft te missen!'});
	cvids_473752.push({vid:45529, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/180/855/18085537_200.jpg', title: 'Introductie van de Dik.nl matrix widget', desc: 'Met Dik.nl kan je heel gemakkelijk video toevoegen aan je website. '});
	cvids_473752.push({vid:25719, thumb: 'http://a.images.blip.tv/Sabinejaarsma-VindenVanVideoOpDiknl707-898-38.jpg', title: 'Vinden van video op Dik.nl', desc: '\n\n'});
	cvids_473752.push({vid:25720, thumb: 'http://a.images.blip.tv/Sabinejaarsma-VerzamelenVanVideoOpDiknl778-608-718.jpg', title: 'Verzamelen van video op Dik.nl', desc: '\n\n'});
	cvids_473752.push({vid:25721, thumb: 'http://a.images.blip.tv/Sabinejaarsma-VerspreidenVanVideoOpDiknl404-748-658.jpg', title: 'Verspreiden van video op Dik.nl', desc: '\n\n'});
	cvids_473752.push({vid:49800, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/202/426/20242671_200.jpg', title: 'Hoe werken Dik Tweets?', desc: 'Een korte uitleg hoe je Dik Tweets kan gebruiken om je Twitter vrienden op de hoogte te houden over welke videos je toevoegd aan je kanalen op Dik.nl!'});
	cvids_473752.push({vid:5351, thumb: 'http://images.vimeo.com/18/79/47/187947899/187947899_200.jpg', title: 'Wat kan je met Dik?', desc: 'Een korte demo waarin de vind, verzamel en verspreid functies van Dik aan bod komen.'});
	cvids_473752.push({vid:4331, thumb: 'http://images.vimeo.com/17/98/15/179815863/179815863_200.jpg', title: 'Demo van Dik.nl: hoe kan je Dik gebruiken?', desc: 'Wat kan je doen met Dik.nl? Wat bedoelen ze met Vind, Verzamel, Verspreid? En waar moet ik klikken. Kijk deze 4 minuten durende Dik.nl demo en ontdek het zelf!'});
	cvids_473752.push({vid:36281, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/128/605/12860572_200.jpg', title: 'Publiceer je Dik kanaal op Wordpress', desc: 'Je kon al heel makkelijk een Dik kanaal op een Wordpress blog zetten maar soms zag het er niet altijd even mooi uit. Dit hebben we verbeterd. Nu komt er op Wordpress een thumbnail te staan met daarop een play knop. Ook de titel en de beschrijving van het filmpje is direct verwerkt. Je kan ook nog een eigen tekst toevoegen.\n\nHeb je een hosted (.com) of een Wordpress blog op je eigen server (.org)? Het werkt voor beide varianten! Het enige wat je hoeft te doen is je gegevens \u00e9\u00e9nmaal in te geven op je profiel en je kan bij ieder filmpje op \u2018post\u2019 drukken om het direct op je Wordpress blog te plaatsen.\n\nWil je zien hoe het precies werkt? Dat kan je zien in dit filmpje'});
	cvids_473752.push({vid:20786, thumb: 'http://a.images.blip.tv/Sabinejaarsma-TwitterJeDikOpDiknl598-599-469.jpg', title: 'Twitter je Dik op Dik.nl', desc: '\n\nJe kan heel makkelijk je Twitter account koppelen aan Dik.nl. Zo kan je iedere video die je bekijkt direct delen met je Twitter vrienden.\n\n'});
	cvids_473752.push({vid:15789, thumb: 'http://a.images.blip.tv/Sabinejaarsma-DeNieuweZoektechniekVanDiknl321-938.jpg', title: 'De nieuwe zoektechniek van Dik.nl', desc: '\n\nDit weekend hebben we een nieuwe zoektechniek op Dik.nl geintroduceerd. Met deze techniek is het nog makkelijker om video\'s te vinden uit meer dan 30 videobronnen en ze te verzamelen in je kanalen.\n\n'});
	cvids_473752.push({vid:14424, thumb: 'http://a.images.blip.tv/Sabinejaarsma-DiknlUitlegOverHyvesIntegratie830.jpg', title: 'Dik.nl uitleg over Hyves integratie', desc: '\nHoe kan je een Dik kanaal op je Hyves profiel plaatsen? Dit uitlegfilmpje laat precies zien hoe dat in zijn werk gaat.\n'});
	cvids_473752.push({vid:14828, thumb: 'http://a.images.blip.tv/Sabinejaarsma-HoeMaakIkEenBannerOpDiknl843-606.jpg', title: 'Hoe maak ik een banner op Dik.nl?', desc: '\n\nUitleg video over hoe je gemakkelijk een banner kan uploaden, bewerken en beheren op de video website Dik.nl.\n\n'});
	cvids_473752.push({vid:37162, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/946/175/9461750_200.jpg', title: 'Dik.nl presentation @ thenextweb2009', desc: 'Share your passion in video. Dik.nl / Yubby.com allows you to find, collect and share your video. Collect from over 30 video sites like youtube, dailymotion etc and manage those videos in a channel. This channel can be published on your blog, updated on twitter etc. '});
	cvids_473752.push({vid:16204, thumb: 'http://a.images.blip.tv/Vincente-InterviewMetVincentEvertsOpBNRNieuwsRadioOverDiknl400-775.jpg', title: 'Interview met Vincent Everts op BNR Nieuws Radio over Dik.nl', desc: '\n\nInterview met Vincent Everts op BNR Nieuws Radio over Dik.nl (helaas geen video)\n\n'});
	cvids_473752.push({vid:7333, thumb: 'http://images.vimeo.com/20/43/37/204337732/204337732_200.jpg', title: 'Vincent Everts over Dik', desc: 'Vincent Everts over Dik'});
	cvids_473752.push({vid:4586, thumb: 'http://images.vimeo.com/47/10/68/47106847/47106847_200x150.jpg', title: 'Everyone needs a little Dik!', desc: 'Dik is a hot new online video service which will go into beta testing soon. Get on the bandwagon early and don\'t miss the fun. Sign-up to join the private beta release now!\n\nDo you like the video? Don\'t forget to give us a Digg: http://digg.com/odd_stuff/Everyone_is_talking_Dik_hillarious_video\n'});
html+='<div class="v69resetstyle" id="thumb_473752" style="width:520px;height:425px;background-color:#FFFFFF;position:relative;">';
html+=vidthumbhtml_473752(curvid_473752);
html+='</div>';
	html +='<div class="v69resetstyle" style="height:26px;width:520px;position:relative;background-color:#FFFFFF;">';
	html +='<div class="v69resetstyle" style="position:absolute;left:35px;top:3px;color:#444;font-size:11px;line-height:10px;cursor:pointer;width:185px;height:20px;overflow:hidden;" onclick="location.href=vidplayurl_473752();"><span style="color:#888;">Je kijkt naar het kanaal</span><br/>Dik Demo Kanaal</div>';
	html +='<img style="position:absolute;left:386px;top:0px;height:25px;z-index:5;cursor:pointer;margin:0;padding:0;" src="http://incdn.s3.amazonaws.com/dikp_v1/img/project/dik/logo.png" onclick="location.href=vidplayurl_473752();">';
		html +='<img onclick="showmatrix_473752(0);" style="position:absolute;left:5px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconmatrix24.png" title="overzicht van alle videos"  	id="pgmatrix_473752" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);"/>';
		html +='<img onclick="playprev_473752();" style="position:absolute;left:444px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconprev24.png" title="ga naar de vorige video in het kanaal"  		id="pgprev_473752" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstop_473752();" style="position:absolute;left:444px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconstop24.png" title="stop"  													id="pgstop_473752"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstart_473752();" style="position:absolute;left:468px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconplay24.png" title="afspelen"  									id="pgplay_473752"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	// start is now a toggle
	html +='<img onclick="playstartstop_473752();" style="position:absolute;left:468px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconplay24.png" title="afspelen"  									id="pgplay_473752"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='<img onclick="playnext_473752();" style="position:absolute;left:492px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconnext24.png" title="ga naar de volgende video in het kanaal"  	id="pgnext_473752"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='</div>';
	html+='</div>';
	html+='<iframe src="http://www.dik.nl/util/ustat" width="0" height="0" border="no" frameborder="0"  style="border:0; visibility: hidden;"></iframe>';
	wgElm_473752.innerHTML=html;
	wgElm_473752.style.display = 'block';
		updAllButState(); 
}

function playnext_473752() {
	if (curvid_473752 < cvids_473752.length -1 ) {
		curvid_473752++;
		if (cpvideo_473752)
			playstart_473752();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_473752');
			thumbdiv.innerHTML=vidthumbhtml_473752(curvid_473752);
		}
	}
	updAllButState();
}
function playprev_473752() {
	if (curvid_473752 >0 ) {
		curvid_473752--;
		if (cpvideo_473752)
			playstart_473752();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_473752');
			thumbdiv.innerHTML=vidthumbhtml_473752(curvid_473752);
		}
	}
	updAllButState();
}

function playstart_473752(vnr) {
	closepopup_473752();	// close popup (if open)
	if (vnr==null)
		vnr=curvid_473752;
	else
		curvid_473752=vnr;	// set the current
	var thumbdiv=document.getElementById('thumb_473752');
	thumbdiv.style.background='#FFF url(http://incdn.s3.amazonaws.com/dikp_v1/img/spinner32.gif) no-repeat 230px 182.5px';
	thumbdiv.innerHTML='<iframe name="playerframe" class="playerframe" src="http://www.dik.nl/widget/playvideo/'+cvids_473752[vnr].vid+'/520/425/L/W" width="520" height="425" frameborder="0" scrolling="no" allowtransparency="true"></iframe>';
	cpvideo_473752=true;
	updAllButState();
}

function playstop_473752() {
	cpvideo_473752=false;
	var thumbdiv=document.getElementById('thumb_473752');
	thumbdiv.style.background='#FFF';
	thumbdiv.innerHTML=vidthumbhtml_473752(curvid_473752);
	updAllButState();
}

function playstartstop_473752() {
	if (cpvideo_473752) 
		playstop_473752();
	else
		playstart_473752();
}

function vidthumbhtml_473752(vnr) {
	var html='';
	html+='<div class="v69resetstyle" style="width:510px;height:319px; overflow:hidden; position:absolute;left:5px;top:5px;">';
html+='<img src="'+cvids_473752[vnr].thumb+'" style="width:510px;height:383px;top:-32px;position:relative;">';
html+='</div>';
html+='<div class="v69resetstyle" style="width:500px;height:91px;position:absolute;left:5px;top:324px;background-color:#AAA;padding:5px;"><div class="v69resetstyle" style="overflow:hidden;height:86px;width:500px;"><div class="v69resetstyle" style="margin: 2px 3px; white-space: nowrap; font-size:15px;line-height:15px;color:#555555;">'+htmlspecialchars(cvids_473752[vnr].title)+'</div><div class="v69resetstyle" style="margin: 2px 5px; font-size:13px;line-height:13px;color:#ffffff;overflow:hidden;height:40px;"  title="'+htmlspecialchars(cvids_473752[vnr].desc)+'">'+htmlspecialchars(cvids_473752[vnr].desc)+'</div><div class="v69resetstyle" style="padding: 3px 5px; letter-spacing:1px; background-color: #aaa; color: white; position: absolute; right: 0px; top: -14px; font-size: 10px;">'+(vnr+1)+'/'+(cvids_473752.length)+'</div></div></div>';
html+='<div class="v69resetstyle" style="position: absolute; width:72px;height:72px;top:176.5px;left:224px;z-index:200;cursor:pointer;cursor:hand;background:url(http://www.dik.nl/img/media_play72.png) no-repeat;" onClick="playstart_473752();"></div>';
	return html;
}

function vidthumbhtmlSmall_473752(vnr) {
	var html='';
	html='';
	html+='<div class="v69resetstyle" style="margin: 5px; float: left; position: relative; width: 162px; height: 90px;">';
		html+='<div  class="v69resetstyle" style="width:160px;max-height:122px;background:#f6f6f6;margin:0 auto 6px auto;overflow:hidden;position:relative;">';
			html+='<div  class="v69resetstyle" style="width:156px;height:86px;background:#cccccc;border:2px solid #dedede;overflow:hidden;position:relative;">';
				html+='<img style="position:absolute;width:160px;height:119px;top:-20px;left:0;cursor: pointer;" onclick="playstart_473752('+vnr+')" title="'+htmlspecialchars(cvids_473752[vnr].desc)+'" src="'+cvids_473752[vnr].thumb+'" />';
				html+='<div class="v69resetstyle" style="position: absolute; width:24px;height:24px;top:28px;left:68px;z-index:200;cursor:pointer;cursor:hand;background:url(http://incdn.s3.amazonaws.com/dikp_v1/img/media_play24.png) no-repeat;" onclick="playstart_473752('+vnr+')"></div>';
				html+='<div class="v69resetstyle" style="position: absolute; bottom: 0px; left: 0px;width:156px;height:15px;z-index:200;background-color:#dedede;color:#000000;font-size:11px;overflow:hidden;white-space: nowrap;padding:2px 5px 2px 3px;filter: alpha(opacity=80);filter: progid:DXImageTransform.Microsoft.Alpha(opacity=80);-moz-opacity: 0.80; opacity: 0.80;cursor: pointer;" onclick="playVideo_773417(15893)" >'+htmlspecialchars(cvids_473752[vnr].title)+'</div>';
			html+='</div>';
		html+='</div>';
	html+='</div>';
	return html;
}

// cp 1..npages
function paginationhtml_473752(cp,npages) {
	if (npages<=1)
		return '';	// empty if no pagination..
	var html='';
	html+='<div class="pages v69resetstyle">';
	if (cp>1) {
		// we CAN prev!
		html+= '<span class="pageblock" onclick="gotopage_473752('+(cp-1)+');">&#171; Previous</span>';
	}
	else {
		html+= '<span class="pageblock_disabled">&#171; Previous</span>';
	}
	// Available pages - Link
	var lpage = 1;
	var cpageSur = 2;
	var dotted = false;
	for (var lpage=1;lpage<=npages;lpage++) {
		// 1-2...8-9-[10]-11-12....58-59 
		if ( lpage<=2 || (lpage>=cp-4 && lpage<=cp+4) || lpage>=npages-1) {
			dotted = false;	// we need to dot afterwards
			if (lpage == cp )
				html+='<span class="pageblock_curpage"><b>'+lpage+'</b></span>';
			else
				html+='<span class="pageblock" onclick="gotopage_473752('+lpage+');">'+lpage+'</span>';
		}
		else {
			// no printing.. buttt maybe we need to dot
			if ( !dotted ) {
				html+='<span class="pageblock_dots">&nbsp;...&nbsp;</span>';
				dotted = true;
			}
		}
	}
		
	// Next page - Link
	if ( cp<npages )
		html+='<span class="pageblock" onclick="gotopage_473752('+(cp+1)+');">Next &#187;</span>';
	else
		html+='<span class="pageblock_disabled">Next &#187;</span>';
	html+='</div>';
	return html;
}

function vidplayurl_473752(vnr) {
	if (vnr==null)
		vnr=curvid_473752;
	return 'http://www.dik.nl/channel/player/233/'+cvids_473752[vnr].vid;
}

//------------------------------------ button handlers --------------------------------------
function stButImg(oBut) {
	if (oBut.id == 'pgnext_473752') { 
		if (curvid_473752 >= cvids_473752.length -1 ) 
			oBut.src = imgNext_d.src;
		else
			oBut.src= butnext_mousein ? imgNext_ov.src : imgNext_ou.src;
	}
	if (oBut.id == 'pgprev_473752') { 
		if (curvid_473752==0 ) 
			oBut.src = imgPrev_d.src;
		else
			oBut.src= butprev_mousein ? imgPrev_ov.src : imgPrev_ou.src;
	}
	if (oBut.id == 'pgplay_473752') { 
		if (cpvideo_473752) 	// we are currently playing
			oBut.src = butplay_mousein ? imgStop_ov.src : imgStop_ou.src;
		else
			oBut.src= butplay_mousein ? imgPlay_ov.src : imgPlay_ou.src;
	}
	// if (oBut.id == 'pgstop_473752') { 
	// 	if (!cpvideo_473752 ) 	// currently NOT playing
	// 		oBut.src = imgStop_ov.src;
	// 	else
	// 		oBut.src= butstop_mousein ? imgStop_ov.src : imgStop_ou.src;
	// }
	if (oBut.id == 'pgmatrix_473752') { 
		oBut.src= butmatrix_mousein ? imgMatrix_ov.src : imgMatrix_ou.src;
	}
}

function oMouEv(oBut,mouseIn) {
	
	if (oBut.id == 'pgnext_473752') 
		butnext_mousein=mouseIn;
	if (oBut.id == 'pgprev_473752') 
		butprev_mousein=mouseIn;
	if (oBut.id == 'pgplay_473752') 
		butplay_mousein=mouseIn;
	// if (oBut.id == 'pgstop_473752') 
	// 	butstop_mousein=mouseIn;
	if (oBut.id == 'pgmatrix_473752') 
		butmatrix_mousein=mouseIn;
	stButImg(oBut);
}

function updAllButState() {
	el = document.getElementById('pgnext_473752');
	if (el) 
		stButImg(el); // update nextbutton state

	el = document.getElementById('pgprev_473752');
	if (el) 
		stButImg(el); // update prevbutton state
		
	el = document.getElementById('pgplay_473752');
	if (el) 
		stButImg(el); // update prevbutton state
		
	// el = document.getElementById('pgstop_473752');
	// if (el) 
	// 	stButImg(el); // update prevbutton state

	el = document.getElementById('pgmatrix_473752');
	if (el) 
		stButImg(el); // update prevbutton state
}

//------------------------------------ other stuff -------------
// find absolute top loc of object

function vp_offsetTop(obj) {
    curtop = 0;
    if (obj.offsetParent) {
    curtop = obj.offsetTop
    while (obj = obj.offsetParent) {
      curtop += obj.offsetTop
    }
  }
  return curtop;
}

function vp_offsetLeft(obj) {
  curtop = 0;
  if (obj.offsetParent) {
    curtop = obj.offsetLeft;
    while (obj = obj.offsetParent) {
      curtop += obj.offsetLeft;
    }
  }
  return curtop;
}


function closepopup_473752() {
  el = document.getElementById('ipopup_473752');
  if (el) {
    el.parentNode.removeChild(el);
  } 
}

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}



//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function gotopage_473752(pg) {
	if (pg<1)
		pg=1;
	if (matrix_npages<1)
		matrix_npages=1;
	if (pg>matrix_npages) 
		pg=matrix_npages;
		
	matrix_curpg=pg;
	var mxs=document.getElementById('mxs_473752');
	var html='';
	for (var i=(matrix_curpg-1)*16,cv=0;i<cvids_473752.length && cv<16;i++) {
		html+=  vidthumbhtmlSmall_473752(i);
		cv++;
	}
	html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	if (matrix_npages>1) {
		html+=  '<div  class="v69resetstyle" style="margin:10px 0px">'+paginationhtml_473752(matrix_curpg, matrix_npages)+'</div>';
	}

	mxs.innerHTML=html;
}

function showmatrix_473752() {
	// close old one
	closepopup_473752();

	matrix_npages= Math.ceil(cvids_473752.length / 16);
	
	// open new
	var popup_div = document.createElement('div');
	var title='matrix';
	popup_div.id = "ipopup_473752";
	popup_div.style.position = 'absolute';
	popup_div.style.border = 'none';
	popup_div.className = "v69resetstyle";

	var base_width=172*4+25;

	var base_height=100*4+30+10+4;
	if (matrix_npages>1) 
		base_height+=30;
	popup_div.style.width = base_width+'px';
	popup_div.style.height = base_height+'px';
	popup_div.style.fontFamily='Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Tahoma,Geneva,Arial,helvetica,sans-serif';
	popup_div.style.zIndex = '10000';

	// CENTER SCREEN
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	var popup_top = arrayPageScroll[1] + ((arrayPageSize[3] -base_height) / 2);
	var popup_left = arrayPageScroll[0] +((arrayPageSize[0] - base_width) / 2);
	if (popup_top<0)
		popup_top=0;
	if (popup_left<0)
		popup_left=0;
	popup_div.style.position = 'absolute';
	popup_div.style.top = popup_top + 'px';
	popup_div.style.left = popup_left + 'px';


	
	var vid_html='';
	vid_html+='<div class="v69resetstyle" style="padding:0px;position:relative;border:2px #CCC solid;background-color:white;width:'+(base_width-4)+'px;height:'+(base_height-4)+'px;">';
	vid_html+='<br style="display:none;"/><style type="text/css">	\
		.pages {padding:2px 0 2px 8px; margin:0; clear:both;font-size:12px;} \
			.pages span.pageblock {border: 1px solid #888; color:#000; height: 12px; padding: 3px 6px;margin: 0px 4px 0px 0px;cursor: pointer;cursor:hand;}\
			.pages span.pageblock:hover {color:#D10101;text-decoration:underline;}	\
			.pages span.pageblock_disabled {border: 1px solid #888; color: #aaa; height: 12px; padding: 3px 6px;margin: 0px 4px 0px 0px;}\
			.pages span.pageblock_dots {border: 0px solid #888; color: #000; height: 12px; padding: 3px 6px;margin: 0px 4px 0px 0px;}\
			.pages span.pageblock_curpage {border: 1px solid #888; color: #aaa; height: 12px; padding: 3px 6px;margin: 0px 4px 0px 0px;}\
		</style>';
	vid_html+=	'<div class="v69resetstyle" onclick="closepopup_473752();" style="position:absolute;top:7px;right:8px;cursor:pointer;cursor:hand;background:url(http://www.dik.nl/img/icon_bw_close22.png) no-repeat;width:24px;height:24px;z-index:10000;"></div>';
	vid_html+=	'<div class="v69resetstyle" style="position:absolute;top:8px;left:15px;color:#888;font-size:15px;overflow:hidden;width:'+(base_width-50)+'px;">Dik Demo Kanaal</div>';
	vid_html+=	'<div class="v69resetstyle" style="margin:30px 10px 10px 10px;" id="mxs_473752">';
	// for (var i=0,cv=0;i<cvids_473752.length && cv<16;i++) { 
	// 		vid_html+=  vidthumbhtmlSmall_473752(i);
	// 		cv++;
	// 	}
	// 	vid_html+=  '<div style="clear:both;"></div>';
	// 
	// 	if (matrix_npages>1) {
	// 		vid_html+=  '<div style="margin:10px 0px">'+paginationhtml_473752(matrix_curpg, matrix_npages)+'</div>';
	// 	}
	vid_html+=	'</div>';
	vid_html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	vid_html+='</div>';
					
	popup_div.innerHTML=vid_html;
	document.body.appendChild(popup_div);
	gotopage_473752(matrix_curpg);
}

// utf8 to string conversions
var escapable = /[\\\"\x00-\x1f\x7f-\uffff]/g,
    meta = {    // table of character substitutions
        '\b': '\\b',
        '\t': '\\t',
        '\n': '\\n',
        '\f': '\\f',
        '\r': '\\r',
        '"' : '\\"',
        '\\': '\\\\'
    };

function utf8quote(string) {
	// If the string contains no control characters, no quote characters, and no
	// backslash characters, then we can safely slap some quotes around it.
	// Otherwise we must also replace the offending characters with safe escape
	// sequences.

    escapable.lastIndex = 0;
    return escapable.test(string) ?
        '"' + string.replace(escapable, function (a) {
            var c = meta[a];
            return typeof c === 'string' ? c :
                '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
        }) + '"' :
        '"' + string + '"';
}




