//solo.js for channel 9520 / widget 366125 / 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;
}
// 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.yubby.com/',	// 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_366125= new Array();	// channelvideo's
var curvid_366125=0;			// first video
var cpvideo_366125=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.yubby.com//img/widget/solo/iconnext24ov.png";
imgNext_ou.src="http://www.yubby.com//img/widget/solo/iconnext24.png";
imgNext_d.src ="http://www.yubby.com//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.yubby.com//img/widget/solo/iconprev24ov.png";
imgPrev_ou.src="http://www.yubby.com//img/widget/solo/iconprev24.png";
imgPrev_d.src ="http://www.yubby.com//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.yubby.com//img/widget/solo/iconplay24ov.png";
imgPlay_ou.src="http://www.yubby.com//img/widget/solo/iconplay24.png";
imgPlay_d.src ="http://www.yubby.com//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.yubby.com//img/widget/solo/iconstop24ov.png";
imgStop_ou.src="http://www.yubby.com//img/widget/solo/iconstop24.png";
imgStop_d.src ="http://www.yubby.com//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.yubby.com//img/widget/solo/iconmatrix24ov.png";
imgMatrix_ou.src="http://www.yubby.com//img/widget/solo/iconmatrix24.png";
imgMatrix_d.src ="http://www.yubby.com//img/widget/solo/iconmatrix24d.png";

var wgElm_366125 = document.getElementById('viidoo_solo_366125');
if (wgElm_366125) {
	vp_createwg();
}

pgstats.addcollect('chid','9520');
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_366125" 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_366125.push({vid:65039, thumb: 'http://a.images.blip.tv/Vincente-LeoLaporteInterviewAtBlogworldExpo2009336-667.jpg', title: 'Leo Laporte interview at Blogworld Expo 2009', desc: '\nAn interview with Leo Laporte about Twit.tv and what it takes to become a succesful podcaster or vodcaster. Taken at the Blogworld Expo 2009\n'});
	cvids_366125.push({vid:64961, thumb: 'http://a.images.blip.tv/Vincente-MitchCanterInterviewAtBlogworldExpo2009716-641.jpg', title: 'Mitch Canter interview at Blogworld Expo 2009', desc: '\nAn interview with Mitch Canter from http://www.studionashvegas.com interview at Blogworld Expo 2009.\n'});
	cvids_366125.push({vid:65040, thumb: 'http://a.images.blip.tv/Vincente-LeoLaporteTalksAboutYubbycom486-890.jpg', title: 'Leo Laporte talks about Yubby.com', desc: '\nTwit.tv founder and presenter Leo Laporte explains why he loves Yubby.com and how he will start using it in the future. He is interviewed at Blogworld Expo 2009 in Las Vegas.\n'});
	cvids_366125.push({vid:65043, thumb: 'http://a.images.blip.tv/Ekai-InsideLeoLaportesWorld633-758.jpg', title: 'Inside Leo Laporte\'s Cottage', desc: '\nIn this episode, Irina found herself an embedded reporter in the manly brown leather and earthy wood enclave of serious tech guru Leo Laporte. In case you haven\'t listened to or watched one of Leo\'s 14 netcasts, feel free to Google his name. Not only is he famous on the Internet, he\'s also won an Emmy for his work on MSNBC. At Leo\'s cottage studio in Petaluma, Irina and producer Nick were surrounded by microphones and were LIVE on TWiT -- Leo\'s daily tech talk show -- as they recorded two episodes of GETV -- one you see here and one for a later surprise. Being live is not something Irina is used to, so some regular TWiT viewers gave her a talking to in the chatroom! But Leo\'s candid interview is a treat for his fans -- he tells us his first crush was a man (leo WAS wearing a pink shirt) and reminisces about the summer of 1970 when he wore a blazer and an ascot. His family moved from the east coast to Santa Cruz where young Leo was shocked to see a girl in a bikini! Leo is his incredibly charming self and he talks about always giving the audience what they want! Here at GETV, we BLEED for our audience and we certainly never worry about our ratings. So what do you want next? Tell us at media@geekentertainment.tv.\n'});
	cvids_366125.push({vid:64969, thumb: 'http://i.ytimg.com/vi/IsV-lgnAjps/0.jpg', title: 'Leo Laporte Blows up at Mike Arrington on the Gillmor Gang - June 6, 2009', desc: 'Leo Laporte calls out Mike Arrington of TechCrunch after Leo got mad at him for implying that his opinion of the Pre was effected by the fact he had a free review unit. Wow!!!!'});
	cvids_366125.push({vid:65041, thumb: 'http://a.images.blip.tv/Llewtubevideo-LeoLaporteCarPool869-382.jpg', title: 'Leo Laporte CarPool', desc: '\nTech wizard, uber geek, radio pro, new media guru Leo Laporte goes for a spin around his delightful home town of Petaluma California\n'});
	cvids_366125.push({vid:64970, thumb: 'http://i.ytimg.com/vi/S9A7ACL_n5Y/0.jpg', title: 'Leo Laporte pops his exercise ball live on camera - TWiT Live', desc: 'Leo sits on a \"fitness orb\" ball while he does live shows for his TWiT network at his office. We caught this live, as it happened. I think he hurt himself, but Leo, always the consummate professional, sure didn\'t show it!'});
	cvids_366125.push({vid:65033, thumb: 'http://i.ytimg.com/vi/cX74k1v2ZVU/0.jpg', title: 'Systm 4 - Inside TWiT Studios', desc: 'This is a clip from revision3\'s Systm episode 4 where Kevin Rose interviews Leopold Gordon Laporte to find out how This Week in Twit is produced.'});
	cvids_366125.push({vid:64971, thumb: 'http://s1.mcstatic.com/thumb/1808152/8293172/4/catalog_item5/0/1/tech_leo_laporte_interview_techtv_twit_and_more.jpg', title: 'Tech: Leo Laporte Interview - TechTV, TWiT and More!', desc: 'Leo Laporte talks about his time at TechTV, the TWiT podcast network, Kiera Knightley and how he\'d change the world!  Interviewed by Wil Harris at ChannelFlip.com.'});
	cvids_366125.push({vid:65047, thumb: 'http://i.ytimg.com/vi/7nf0jwi3qS8/0.jpg', title: 'Leo Laporte keynote part 1', desc: 'Chief TWiT, Leo Laporte, keynote at Blogworld 2009'});
	cvids_366125.push({vid:65046, thumb: 'http://i.ytimg.com/vi/awQ5erBLEvE/0.jpg', title: 'Leo Laporte keynote part 2', desc: ''});
	cvids_366125.push({vid:65045, thumb: 'http://i.ytimg.com/vi/GO4c23ZgRe8/0.jpg', title: 'Leo Laporte 2009 Blogworld keynote snippets', desc: 'Leo Laporte speaking at Blogworld 2009'});
	cvids_366125.push({vid:64960, thumb: 'http://a.images.blip.tv/Rokuvideo-RokuDVPvers1_1000x562973-804-808.jpg', title: 'Roku Digital Video Player', desc: '\nRoku digital video player (also known as the Netflix Player by Roku) instantly streams movies from Netflix and Amazon Video On Demand from the Internet directly to any TV.\n'});
	cvids_366125.push({vid:64959, thumb: 'http://i.ytimg.com/vi/DvuUfLxMaQo/0.jpg', title: 'Netflix Roku Player Review - Tekzilla', desc: 'Patrick Norton and Veronica Belmont do a review of the highly anticipated Netflix Roku Player.'});
	cvids_366125.push({vid:65042, thumb: 'http://a.images.blip.tv/Butterscotch-CatchingUpWithLeoLaporteAtBlogworld588-474.jpg', title: 'Catching up with Leo Laporte at Blogworld', desc: '\nSean Carruthers catches up Leo Laporte, tech guru and founding head of This Week in Tech (TWiT). Formerly of Call for Help and The Lab with Leo, he chats with Sean at Blogworld Expo Las Vegas, NV. A Internet video series by butterscotch.com.\n'});
	cvids_366125.push({vid:65049, thumb: 'http://cdn-thumbs.viddler.com/thumbnail_2_5db5b355_v6.jpg', title: 'TWiT Update 11-26', desc: 'Leo Laporte with his weekly TWiT Network update'});
	cvids_366125.push({vid:65044, thumb: 'http://i.ytimg.com/vi/nH5kt6kxBoE/0.jpg', title: 'Leo Laporte announces TWIT on TV!', desc: 'Now TWIT is on TV announcement from Blog World Expo 2009'});
	cvids_366125.push({vid:64977, thumb: 'http://a.images.blip.tv/Tomn-InsideTWITEpisode93GMT281-822.jpg', title: 'Inside TWIT Episode 93 GMT', desc: '\n\nThis is a video I recorded at the Gear Tech Media conference on March 30, 2007, in San Francisco at the Zeum theatre. This 12 minute video is Leo Laporte\'s warm-up before the actual recording.At the end of the conference Leo recorded a live TWIT (This Week In Tech) episode. Full TWIT video here and audio TWIT is here.Fogview PodcastTom \n\n'});
	cvids_366125.push({vid:64972, thumb: 'http://cdn-thumbs.viddler.com/thumbnail_2_efb66f1d.jpg', title: 'Geoff Smith on TwitLive!', desc: 'Geoff Smith singing \"I\'m a TWIT\" on TwitLive with Leo Laporte at the New Media Expo 2008. Video Taken by: Daynah http://thegeoffsmith.com'});
	cvids_366125.push({vid:65048, thumb: 'http://cdn-thumbs.viddler.com/thumbnail_2_519ee2c6.jpg', title: 'Leo on the Lab Set', desc: 'Another short viddler from the set of The Lab with Leo Laporte'});
	cvids_366125.push({vid:64963, thumb: 'http://a.images.blip.tv/Studionashvegas-PodCampNashvilleWordPressPodcasting521-402-907.jpg', title: 'PodCampNashville - WordPress \& Podcasting', desc: '\n\nMitch\'s presentation at PodCampNashville on Podcasting and WordPress.\n\n'});
	cvids_366125.push({vid:64964, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/399/900/3999006_640.jpg', title: 'PodCamp Nashville 2009 - studionashvegas', desc: 'studionashvegas and nashvogue at PodCamp Nashville 2009'});
	cvids_366125.push({vid:64966, thumb: 'http://a.images.blip.tv/Shermanhu-GetYourOoVooOn6PersonVideoChatWithJosephJaffe284-874.jpg', title: 'Get Your ooVoo On - 6-Person Video Chat with Joseph Jaffe', desc: '\nConnie Crosby (PodcampToronto.org), Eden Spodek (Bargainista.Blogspot.com), Mitch Canter (StudioNashVegas.com), Al Mostow, Joseph Jaffe (JaffeJuice.com) and I, Sherman Hu *(ShermanLive.com) had a short but sweet video chat on ooVoo. Joseph Jaffe shared about his \"Second Life\" life and the intersections between our physical, digital and virtual worlds. This short video sample of our chat will give you an idea of well this platform works. Effective platform for business owners to use ooVoo for video interviews and webinars. Fantastic platform for families and friends to connect across the globe, six at a time.\n'});
	cvids_366125.push({vid:64962, thumb: 'http://cdn-thumbs.viddler.com/thumbnail_2_5d80cad1.jpg', title: 'Live from the food line', desc: 'Talking with Mitch Canter and Nathan Ketsdever live at the lunch buffet line. They also share their morning session experience. Also check out Mitch at http://studionashvegas.com and Nathan at http://creativefusionmedia.wordpress.com/'});
	cvids_366125.push({vid:64965, thumb: 'http://cdn-thumbs.viddler.com/thumbnail_2_937dbeac.jpg', title: 'Mitchlog - Vol 1 (Thoughts On Social South)', desc: 'Mitch weighs in on Social South'});
html+='<div class="v69resetstyle" id="thumb_366125" style="width:425px;height:343px;background-color:#FFFFFF;position:relative;">';
html+=vidthumbhtml_366125(curvid_366125);
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_366125();"><span style="color:#888;">You are watching channel</span><br/>Blogworld interviews: Leo Laporte \&amp; Mitch Canter</div>';
	html +='<img style="position:absolute;left:281px;top:0px;height:25px;z-index:5;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com/img/project/yubby/logo.png" onclick="location.href=vidplayurl_366125();">';
		html +='<img onclick="showmatrix_366125(0);" style="position:absolute;left:5px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconmatrix24.png" title="popup an overview with all videos"  	id="pgmatrix_366125" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);"/>';
		html +='<img onclick="playprev_366125();" style="position:absolute;left:349px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconprev24.png" title="go to the previous video in the channel"  		id="pgprev_366125" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstop_366125();" style="position:absolute;left:349px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconstop24.png" title="stop"  													id="pgstop_366125"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstart_366125();" style="position:absolute;left:373px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconplay24.png" title="play"  									id="pgplay_366125"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	// start is now a toggle
	html +='<img onclick="playstartstop_366125();" style="position:absolute;left:373px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconplay24.png" title="play"  									id="pgplay_366125"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='<img onclick="playnext_366125();" style="position:absolute;left:397px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconnext24.png" title="go to the next video in the channel"  	id="pgnext_366125"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='</div>';
	html+='</div>';
	wgElm_366125.innerHTML=html;
	wgElm_366125.style.display = 'block';
		updAllButState(); 
}

function playnext_366125() {
	if (curvid_366125 < cvids_366125.length -1 ) {
		curvid_366125++;
		if (cpvideo_366125)
			playstart_366125();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_366125');
			thumbdiv.innerHTML=vidthumbhtml_366125(curvid_366125);
		}
	}
	updAllButState();
}
function playprev_366125() {
	if (curvid_366125 >0 ) {
		curvid_366125--;
		if (cpvideo_366125)
			playstart_366125();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_366125');
			thumbdiv.innerHTML=vidthumbhtml_366125(curvid_366125);
		}
	}
	updAllButState();
}

function playstart_366125(vnr) {
	closepopup_366125();	// close popup (if open)
	if (vnr==null)
		vnr=curvid_366125;
	else
		curvid_366125=vnr;	// set the current
	var thumbdiv=document.getElementById('thumb_366125');
	thumbdiv.style.background='#FFF url(http://www.yubby.com/img/spinner32.gif) no-repeat 182.5px 141.5px';
	thumbdiv.innerHTML='<iframe name="playerframe" class="playerframe" src="http://www.yubby.com/widget/playvideo/'+cvids_366125[vnr].vid+'/425/343/L/W" width="425" height="343" frameborder="0" scrolling="no" allowtransparency="true"></iframe>';
	cpvideo_366125=true;
	updAllButState();
}

function playstop_366125() {
	cpvideo_366125=false;
	var thumbdiv=document.getElementById('thumb_366125');
	thumbdiv.style.background='#FFF';
	thumbdiv.innerHTML=vidthumbhtml_366125(curvid_366125);
	updAllButState();
}

function playstartstop_366125() {
	if (cpvideo_366125) 
		playstop_366125();
	else
		playstart_366125();
}

function vidthumbhtml_366125(vnr) {
	var html='';
	html+='<div class="v69resetstyle" style="width:415px;height:259px; overflow:hidden; position:absolute;left:5px;top:5px;">';
html+='<img src="'+cvids_366125[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_366125[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_366125[vnr].desc)+'">'+htmlspecialchars(cvids_366125[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_366125.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.yubby.com/img/media_play72.png) no-repeat;" onClick="playstart_366125();"></div>';
	return html;
}

function vidthumbhtmlSmall_366125(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_366125('+vnr+')" title="'+htmlspecialchars(cvids_366125[vnr].desc)+'" src="'+cvids_366125[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://www.yubby.com/img/media_play24.png) no-repeat;" onclick="playstart_366125('+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_366125[vnr].title)+'</div>';
			html+='</div>';
		html+='</div>';
	html+='</div>';
	return html;
}

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

function vidplayurl_366125(vnr) {
	if (vnr==null)
		vnr=curvid_366125;
	return 'http://www.yubby.com/channel/player/9520/'+cvids_366125[vnr].vid;
}

//------------------------------------ button handlers --------------------------------------
function stButImg(oBut) {
	if (oBut.id == 'pgnext_366125') { 
		if (curvid_366125 >= cvids_366125.length -1 ) 
			oBut.src = imgNext_d.src;
		else
			oBut.src= butnext_mousein ? imgNext_ov.src : imgNext_ou.src;
	}
	if (oBut.id == 'pgprev_366125') { 
		if (curvid_366125==0 ) 
			oBut.src = imgPrev_d.src;
		else
			oBut.src= butprev_mousein ? imgPrev_ov.src : imgPrev_ou.src;
	}
	if (oBut.id == 'pgplay_366125') { 
		if (cpvideo_366125) 	// 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_366125') { 
	// 	if (!cpvideo_366125 ) 	// currently NOT playing
	// 		oBut.src = imgStop_ov.src;
	// 	else
	// 		oBut.src= butstop_mousein ? imgStop_ov.src : imgStop_ou.src;
	// }
	if (oBut.id == 'pgmatrix_366125') { 
		oBut.src= butmatrix_mousein ? imgMatrix_ov.src : imgMatrix_ou.src;
	}
}

function oMouEv(oBut,mouseIn) {
	
	if (oBut.id == 'pgnext_366125') 
		butnext_mousein=mouseIn;
	if (oBut.id == 'pgprev_366125') 
		butprev_mousein=mouseIn;
	if (oBut.id == 'pgplay_366125') 
		butplay_mousein=mouseIn;
	// if (oBut.id == 'pgstop_366125') 
	// 	butstop_mousein=mouseIn;
	if (oBut.id == 'pgmatrix_366125') 
		butmatrix_mousein=mouseIn;
	stButImg(oBut);
}

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

	el = document.getElementById('pgprev_366125');
	if (el) 
		stButImg(el); // update prevbutton state
		
	el = document.getElementById('pgplay_366125');
	if (el) 
		stButImg(el); // update prevbutton state
		
	// el = document.getElementById('pgstop_366125');
	// if (el) 
	// 	stButImg(el); // update prevbutton state

	el = document.getElementById('pgmatrix_366125');
	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_366125() {
  el = document.getElementById('ipopup_366125');
  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_366125(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_366125');
	var html='';
	for (var i=(matrix_curpg-1)*16,cv=0;i<cvids_366125.length && cv<16;i++) {
		html+=  vidthumbhtmlSmall_366125(i);
		cv++;
	}
	html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	if (matrix_npages>1) {
		html+=  '<div  class="v69resetstyle" style="margin:10px 0px">'+paginationhtml_366125(matrix_curpg, matrix_npages)+'</div>';
	}

	mxs.innerHTML=html;
}

function showmatrix_366125() {
	// close old one
	closepopup_366125();

	matrix_npages= Math.ceil(cvids_366125.length / 16);
	
	// open new
	var popup_div = document.createElement('div');
	var title='matrix';
	popup_div.id = "ipopup_366125";
	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_366125();" style="position:absolute;top:7px;right:8px;cursor:pointer;cursor:hand;background:url(http://www.yubby.com/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;">Blogworld interviews: Leo Laporte \&amp; Mitch Canter</div>';
	vid_html+=	'<div class="v69resetstyle" style="margin:30px 10px 10px 10px;" id="mxs_366125">';
	// for (var i=0,cv=0;i<cvids_366125.length && cv<16;i++) { 
	// 		vid_html+=  vidthumbhtmlSmall_366125(i);
	// 		cv++;
	// 	}
	// 	vid_html+=  '<div style="clear:both;"></div>';
	// 
	// 	if (matrix_npages>1) {
	// 		vid_html+=  '<div style="margin:10px 0px">'+paginationhtml_366125(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_366125(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 + '"';
}



