//solo.js for channel 161 / widget 269047 / WxH: 425x369 / 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_269047= new Array();	// channelvideo's
var curvid_269047=0;			// first video
var cpvideo_269047=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_269047 = document.getElementById('viidoo_solo_269047');
if (wgElm_269047) {
	vp_createwg();
}

pgstats.addcollect('chid','161');
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_269047" class="widget_flash v69resetstyle" style="width: 425px;height:369px;overflow:hidden; border: 1px solid #DDDDDD;font-family:Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Tahoma,Geneva,Arial,helvetica,sans-serif">';

	cvids_269047.push({vid:7420, thumb: 'http://a.images.blip.tv/Vincente-DeBlackBerryStormInDeKassaColomnMetVincentEverts801-455.jpg', title: 'De BlackBerry Storm in de Kassa colomn met Vincent Everts', desc: '\n\n Zoals elke week in Kassa, de Verlenging de laatste ontwikkelingen op het gebied van gadgets. Al deze gadgets worden ge\u00efntroduceerd of besproken door trendwatcher Vincent Everts. Deze week de Blackberry Storm.\n\n'});
	cvids_269047.push({vid:5923, thumb: 'http://a.images.blip.tv/Vincente-BlackberryStormNieuwInNederland632-686.jpg', title: 'Blackberry Storm Nieuw In Nederland', desc: '\n\n'});
	cvids_269047.push({vid:5924, thumb: 'http://a.images.blip.tv/Vincente-BlackberryStormCoproductieVincentEnJoran579-445.jpg', title: 'Blackberry Storm Coproductie Vincent en Joran', desc: '\n\nMontage J\u00f6ran Maaswinkel - John Bake Postproductions\n\n'});
	cvids_269047.push({vid:7422, thumb: 'http://images.vimeo.com/19/66/44/196644173/196644173_200.jpg', title: 'Blackberry Storm Review (VloMo08 Day 22)', desc: 'I just bought a brand new Blackberry Storm at Verizon yesterday, so I\'m just giving a short review/demo it. '});
	cvids_269047.push({vid:2671, thumb: 'http://i.ytimg.com/vi/stzqLqBUECc/1.jpg', title: 'BlackBerry Storm Ad from Vodafone', desc: 'Official Ad from Vodafone regarding BlackBerry Storm, new Touchscreen RIM Device'});
	cvids_269047.push({vid:7421, thumb: 'http://a.images.blip.tv/Crunchgear-BlackBerryStormReview160-473-625.jpg', title: 'BlackBerry Storm review', desc: '\n\n'});
	cvids_269047.push({vid:2704, thumb: 'http://images.vimeo.com/15/71/63/157163085/157163085_200.jpg', title: 'Blackberry Storm vs iPhone', desc: ''});
	cvids_269047.push({vid:2709, thumb: 'http://i.ytimg.com/vi/_OlDy0WKrYA/1.jpg', title: 'Lewis Hamilton on the BlackBerry Storm', desc: 'Lewis Hamilton takes on the BlackBerry Storm'});
	cvids_269047.push({vid:2707, thumb: 'http://i.ytimg.com/vi/XvMITVn4ILA/1.jpg', title: 'BlackBerry Storm: First Look', desc: 'Senior Technology Correspondent Gary Krakow gets a look at the first BlackBerry touchscreen smartphone -- called the Storm -- coming from Verizon. It\'s loaded with features, works all over the world and offers a new level of responsiveness to your touch.'});
	cvids_269047.push({vid:2708, thumb: 'http://i.ytimg.com/vi/CdNbzZkn2MI/1.jpg', title: 'The BlackBerry Storm Has Arrived', desc: 'BlackBerry Storm'});
	cvids_269047.push({vid:2673, thumb: 'http://i.ytimg.com/vi/f4YCoVYz-Qk/1.jpg', title: 'BlackBerry Storm from Vodafone', desc: 'Frank H. Rovekamp - Chief Marketing Officer, Vodafone Group - introduces the BlackBerry Storm'});
	cvids_269047.push({vid:2670, thumb: 'http://images.vimeo.com/13/53/53/135353074/135353074_200.jpg', title: 'Blackberry Storm', desc: ''});
	cvids_269047.push({vid:3200, thumb: 'http://a.images.blip.tv/Bwana-TheEverchangingMobilePhoneMarket992-256-513.jpg', title: 'The Ever-changing Mobile Phone Market', desc: '\n\nIn this video, I give a giant ramble on my opinions with the current mobile phone market in the United States.  In the past, it seems like companies like Nokia/Symbian and RIM (Blackberry) focused on hardware capability and bells and whistles.  Since Apple has entered the market (a little over a year), the iPhone has forced Nokia, Google (Android), and RIM to focus on the software interface and user experience.  A big example of this shift is that all of Apple\'s competitors are planning on introducing some sort of \"Application marketplace\" aimed to compete with Apple\'s iTunes App store.  In the end, this shift towards user experience will benefit us more than anyone.  Truly an exciting time to be a mobile phone user!  Enjoy!\n\n'});
	cvids_269047.push({vid:2705, thumb: 'http://i.ytimg.com/vi/BFQLNb32myg/1.jpg', title: 'Blackberry Storm Megawhat Tech Week in View : 10.10.08', desc: 'Another big week in the world of technology and gadgets. Katie Scott provides her opinions on some of the weeks top tech stories. Including some insight into the new Blackberry Storm. Is this the new ultimate all in one package... at that price in the UK just maybe!'});
	cvids_269047.push({vid:2679, thumb: 'http://i.ytimg.com/vi/JLrFamu3qUk/1.jpg', title: 'Verizon Wireless  BlackBerry Storm First Reactions', desc: 'Verizon Wireless took to the streets to give people the chance to experience the worlds first touch screen Black Berry. These are their real reactions to the new BlackBerry Storm.'});
	cvids_269047.push({vid:2672, thumb: 'http://i.ytimg.com/vi/IcjjgpXhmKc/1.jpg', title: 'Blackberry Storm 9530: Minute with Mike from Verizon Wireless', desc: 'Here is the whole minute with mike from Verizon Wireless where they are talking about the new Blackberry Storm. The video was taken with my Dare, so sorry for the quality.'});
	cvids_269047.push({vid:5926, thumb: 'http://1.gvt0.com/ThumbnailServer2?app=vss\&contentid=45c6fb21d755a571\&offsetms=50000\&itag=w160\&hl=nl\&sigh=grH45B2KsCj953XrT4ZhSP0GD-0', title: 'Scratch Proof Your Blackberry Storm', desc: 'http://www.ZAGG.com - Protect your new touch screen Blackberry Storm from scratches with the invisibleSHIELD.'});
	cvids_269047.push({vid:3181, thumb: 'http://a.images.blip.tv/Vincente-DavidHeitDirectorOfSoftwareDevelopmentRimBlackberry901-653.jpg', title: 'David Heit director of Software development Rim Blackberry', desc: '\nAfter dealing with Email desktop phone integration is  according to David Heit the next big thing inside corperates. Just having one phone number and all the features of a modern PBX is essential and will be become populair in the next years. Also the move to consumers which need media integration, gpx service, social media like Facebook clients have become big.Since he arrived at Rim at 2000 when they had 180.000 users it took Rim 5 years to have 1 million users. Last quarter they added 2.3 million users and installed base is now 19 million. In the USA they have a marketshare of 10% In europe it is 2% \n'});
	cvids_269047.push({vid:3182, thumb: 'http://a.images.blip.tv/Vincente-JefMcDowellRimAlliancesAboutAppstoreBlackberry558-420.jpg', title: 'Jef McDowell Rim alliances about Appstore blackberry', desc: ''});
	cvids_269047.push({vid:3183, thumb: 'http://a.images.blip.tv/Vincente-MikeMcAndrewsVPProductMarketingAboutTheBlackberryPortfol410-95.jpg', title: 'Mike McAndrews VP product marketing about the Blackberry portfollio', desc: ''});
	cvids_269047.push({vid:3197, thumb: 'http://a.images.blip.tv/Vincente-MichaelBrownSecurityRimHowSafeIsBlackberry955-510.jpg', title: 'Michael Brown Security Rim , how safe is blackberry?', desc: '\nBlackberry is supposed to be safe. How hard is it to keep that reputation nows that consumers are using the device? Michael brown commends.\n'});
	cvids_269047.push({vid:2706, thumb: 'http://i.ytimg.com/vi/tEqL3d79uz0/1.jpg', title: 'Vodafone Blackberry Storm - Consumer director Ian', desc: 'Vodafone consumer director Ian introduces the new Blackbery Storm exclusively to Vodafone.'});
	cvids_269047.push({vid:3246, thumb: 'http://a.images.blip.tv/Vincente-RodgerEnrightVodafoneGroupManagerStrormIntroduction718-39.jpg', title: 'Rodger Enright Vodafone group manager strorm introduction', desc: '\nVodafone is going all out to introduce the Storm in all there markets. Huge TV add campaign and everybody will know that gadget is the lastest greatest since the iPhone. Why is vodafone so passionate about it? We ask the manager of Storm some questions.\n'});
html+='<div class="v69resetstyle" id="thumb_269047" style="width:425px;height:343px;background-color:#FFFFFF;position:relative;">';
html+=vidthumbhtml_269047(curvid_269047);
html+='</div>';
	html +='<div class="v69resetstyle" style="height:26px;width:425px;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_269047();"><span style="color:#888;">Je kijkt naar het kanaal</span><br/>Blackberry Storm iPhone alternatief?</div>';
	html +='<img style="position:absolute;left:291px;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_269047();">';
		html +='<img onclick="showmatrix_269047(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_269047" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);"/>';
		html +='<img onclick="playprev_269047();" style="position:absolute;left:349px;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_269047" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstop_269047();" style="position:absolute;left:349px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconstop24.png" title="stop"  													id="pgstop_269047"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstart_269047();" style="position:absolute;left:373px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconplay24.png" title="afspelen"  									id="pgplay_269047"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	// start is now a toggle
	html +='<img onclick="playstartstop_269047();" style="position:absolute;left:373px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.dik.nl//img/widget/solo/iconplay24.png" title="afspelen"  									id="pgplay_269047"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='<img onclick="playnext_269047();" style="position:absolute;left:397px;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_269047"	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_269047.innerHTML=html;
	wgElm_269047.style.display = 'block';
		updAllButState(); 
}

function playnext_269047() {
	if (curvid_269047 < cvids_269047.length -1 ) {
		curvid_269047++;
		if (cpvideo_269047)
			playstart_269047();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_269047');
			thumbdiv.innerHTML=vidthumbhtml_269047(curvid_269047);
		}
	}
	updAllButState();
}
function playprev_269047() {
	if (curvid_269047 >0 ) {
		curvid_269047--;
		if (cpvideo_269047)
			playstart_269047();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_269047');
			thumbdiv.innerHTML=vidthumbhtml_269047(curvid_269047);
		}
	}
	updAllButState();
}

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

function playstop_269047() {
	cpvideo_269047=false;
	var thumbdiv=document.getElementById('thumb_269047');
	thumbdiv.style.background='#FFF';
	thumbdiv.innerHTML=vidthumbhtml_269047(curvid_269047);
	updAllButState();
}

function playstartstop_269047() {
	if (cpvideo_269047) 
		playstop_269047();
	else
		playstart_269047();
}

function vidthumbhtml_269047(vnr) {
	var html='';
	html+='<div class="v69resetstyle" style="width:415px;height:259px; overflow:hidden; position:absolute;left:5px;top:5px;">';
html+='<img src="'+cvids_269047[vnr].thumb+'" style="width:415px;height:311px;top:-26px;position:relative;">';
html+='</div>';
html+='<div class="v69resetstyle" style="width:405px;height:69px;position:absolute;left:5px;top:264px;background-color:#AAA;padding:5px;"><div class="v69resetstyle" style="overflow:hidden;height:73px;width:405px;"><div class="v69resetstyle" style="margin: 2px 3px; white-space: nowrap; font-size:15px;line-height:15px;color:#555555;">'+htmlspecialchars(cvids_269047[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_269047[vnr].desc)+'">'+htmlspecialchars(cvids_269047[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_269047.length)+'</div></div></div>';
html+='<div class="v69resetstyle" style="position: absolute; width:72px;height:72px;top:135.5px;left:176.5px;z-index:200;cursor:pointer;cursor:hand;background:url(http://www.dik.nl/img/media_play72.png) no-repeat;" onClick="playstart_269047();"></div>';
	return html;
}

function vidthumbhtmlSmall_269047(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_269047('+vnr+')" title="'+htmlspecialchars(cvids_269047[vnr].desc)+'" src="'+cvids_269047[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_269047('+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_269047[vnr].title)+'</div>';
			html+='</div>';
		html+='</div>';
	html+='</div>';
	return html;
}

// cp 1..npages
function paginationhtml_269047(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_269047('+(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_269047('+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_269047('+(cp+1)+');">Next &#187;</span>';
	else
		html+='<span class="pageblock_disabled">Next &#187;</span>';
	html+='</div>';
	return html;
}

function vidplayurl_269047(vnr) {
	if (vnr==null)
		vnr=curvid_269047;
	return 'http://www.dik.nl/channel/player/161/'+cvids_269047[vnr].vid;
}

//------------------------------------ button handlers --------------------------------------
function stButImg(oBut) {
	if (oBut.id == 'pgnext_269047') { 
		if (curvid_269047 >= cvids_269047.length -1 ) 
			oBut.src = imgNext_d.src;
		else
			oBut.src= butnext_mousein ? imgNext_ov.src : imgNext_ou.src;
	}
	if (oBut.id == 'pgprev_269047') { 
		if (curvid_269047==0 ) 
			oBut.src = imgPrev_d.src;
		else
			oBut.src= butprev_mousein ? imgPrev_ov.src : imgPrev_ou.src;
	}
	if (oBut.id == 'pgplay_269047') { 
		if (cpvideo_269047) 	// 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_269047') { 
	// 	if (!cpvideo_269047 ) 	// currently NOT playing
	// 		oBut.src = imgStop_ov.src;
	// 	else
	// 		oBut.src= butstop_mousein ? imgStop_ov.src : imgStop_ou.src;
	// }
	if (oBut.id == 'pgmatrix_269047') { 
		oBut.src= butmatrix_mousein ? imgMatrix_ov.src : imgMatrix_ou.src;
	}
}

function oMouEv(oBut,mouseIn) {
	
	if (oBut.id == 'pgnext_269047') 
		butnext_mousein=mouseIn;
	if (oBut.id == 'pgprev_269047') 
		butprev_mousein=mouseIn;
	if (oBut.id == 'pgplay_269047') 
		butplay_mousein=mouseIn;
	// if (oBut.id == 'pgstop_269047') 
	// 	butstop_mousein=mouseIn;
	if (oBut.id == 'pgmatrix_269047') 
		butmatrix_mousein=mouseIn;
	stButImg(oBut);
}

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

	el = document.getElementById('pgprev_269047');
	if (el) 
		stButImg(el); // update prevbutton state
		
	el = document.getElementById('pgplay_269047');
	if (el) 
		stButImg(el); // update prevbutton state
		
	// el = document.getElementById('pgstop_269047');
	// if (el) 
	// 	stButImg(el); // update prevbutton state

	el = document.getElementById('pgmatrix_269047');
	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_269047() {
  el = document.getElementById('ipopup_269047');
  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_269047(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_269047');
	var html='';
	for (var i=(matrix_curpg-1)*16,cv=0;i<cvids_269047.length && cv<16;i++) {
		html+=  vidthumbhtmlSmall_269047(i);
		cv++;
	}
	html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	if (matrix_npages>1) {
		html+=  '<div  class="v69resetstyle" style="margin:10px 0px">'+paginationhtml_269047(matrix_curpg, matrix_npages)+'</div>';
	}

	mxs.innerHTML=html;
}

function showmatrix_269047() {
	// close old one
	closepopup_269047();

	matrix_npages= Math.ceil(cvids_269047.length / 16);
	
	// open new
	var popup_div = document.createElement('div');
	var title='matrix';
	popup_div.id = "ipopup_269047";
	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_269047();" 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;">Blackberry Storm iPhone alternatief?</div>';
	vid_html+=	'<div class="v69resetstyle" style="margin:30px 10px 10px 10px;" id="mxs_269047">';
	// for (var i=0,cv=0;i<cvids_269047.length && cv<16;i++) { 
	// 		vid_html+=  vidthumbhtmlSmall_269047(i);
	// 		cv++;
	// 	}
	// 	vid_html+=  '<div style="clear:both;"></div>';
	// 
	// 	if (matrix_npages>1) {
	// 		vid_html+=  '<div style="margin:10px 0px">'+paginationhtml_269047(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_269047(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 + '"';
}




