//solo.js for channel 8087 / widget 92 / WxH: 568x493 / skin: clean / vid: 61273 / 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_92= new Array();	// channelvideo's
var curvid_92=0;			// first video
var cpvideo_92=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_92 = document.getElementById('viidoo_solo_92');
if (wgElm_92) {
	vp_createwg();
}

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

	cvids_92.push({vid:68595, thumb: 'http://a.images.blip.tv/Vincente-InterviewScottMontyFordAtBlogworldExpo2009605-94.jpg', title: 'Interview Scott Monty (Ford) at Blogworld Expo 2009', desc: 'In this interview Scott Monty the head of social media at Ford talks about how Ford works with the blogging community and social media and reveals what Guy Kawasaki\'s next car will be...'});
	cvids_92.push({vid:68581, thumb: 'http://a.images.blip.tv/MacVoicesTV-MacVoicesTV960MacVoicesTVAtBlogWorldVincentEvertsIntrodu864-472.jpg', title: 'MacVoicesTV #960: MacVoicesTV at BlogWorld - Vincent Everts Introduces the Video Collection Service, Yubby', desc: 'On the how floor at BlogWorld in Las Vegas, Vincent Everts of yubby.com discusses his new service that allow you to aggregate videos from over 30 video sharing sites. Yubby\'s capability of collecting videos based on a specific subject or keyword into your own channel and display them on your web site or blog leads to uses both obvious and not-so-obvious. Vincent explains how easy it is and why you\'ll want to start our own Yubby collections whether you are a video content creator, or are simply interested in gathering vidoes about a particular topic.'});
	cvids_92.push({vid:61273, thumb: 'http://a.images.blip.tv/Vincente-JohnChowInterviewAtBlogworld2009836-36-768.jpg', title: 'John Chow interview at Blogworld 2009', desc: '\nA quick interview with John Chow at Blogworld 2009 about what he will talk about in his session and how he makes money with his blog.\n'});
	cvids_92.push({vid:61274, thumb: 'http://i.ytimg.com/vi/uTThWypLq7s/0.jpg', title: 'Nicole Simon info on BlogworldExpo 09', desc: 'A quick introduction for my talk at BWE09 so that the display on the frontpage actually has something to show ... ... bwe09 '});
	cvids_92.push({vid:61275, thumb: 'http://a.images.blip.tv/Vincente-DarrenRowseInterviewAtBlogworld880-156-207.jpg', title: 'Darren Rowse interview at Blogworld', desc: '\nDarren Rowse from ProBlogger talks at Blogworld 2009 about...blogging!\n'});
	cvids_92.push({vid:61289, thumb: 'http://i.ytimg.com/vi/P9O4P2om0IQ/0.jpg', title: '@blogworld Rick is proudly standing before #blogworld show sign. An update', desc: 'The day before #blogworld Rick is relaxed. What is happening at blogworld this year? 400 speakers? 4000 visitors. ... #bwe09 #blogworld @blogworld Rick '});
	cvids_92.push({vid:61276, thumb: 'http://bitcast.vimeo.com/vimeo/thumbnails/defaults/default.75x100.jpg', title: 'Internet Marketing for Smart People', desc: 'http://www.johnchow.com Internet Marketing for Smart People from #bwe09 #3tribe'});
	cvids_92.push({vid:61278, thumb: 'http://a.images.blip.tv/Vincente-JimMuelleInterviewAtBlogworld756-80-707.jpg', title: 'Jim Muelle interview at Blogworld', desc: '\nAn interview with Jim Muelle from Propadoo a Web 2.0 service that soft launched at Blogworld\n'});
	cvids_92.push({vid:61277, thumb: 'http://i.ytimg.com/vi/DpgxM_tT4iw/0.jpg', title: 'KevinMD On The Future Of The Medical Blogosphere', desc: 'Interview with Kevin Pho from the popular physician blog KevinMD about why he blogs, what results he has seen and the future of the medical blogosphere. Recorded with Rohit Bhargava at Blogworld Expo 2009 in Las Vegas. ... medicine doctor docblog medblog medibloggng socialmedia healthcare health physician blogworld bwe bwe09 blogworldexpo '});
	cvids_92.push({vid:61279, thumb: 'http://i.ytimg.com/vi/hsDPTlfGwr8/0.jpg', title: 'Leavin\' on a Jet Plane!', desc: 'Wow. I\'m clearly excited. I\'m sure the excessive hand motions in this video give me away. Leavin\' for Blog World Expo, and I\'m still not packed. ... \"Blog World Expo\" BWE09 \"Erika Lehmann\" \"Chic Shopper Chick. vlog\" '});
	cvids_92.push({vid:61280, thumb: 'http://a.images.blip.tv/Vincente-SethCombsInterviewBlogworld865-127-250.jpg', title: 'Seth Combs interview Blogworld', desc: '\nInterview with Seth Combs at Blogworld about what MyContent.com does for Blogworld and on the web. \n'});
	cvids_92.push({vid:61287, thumb: 'http://i.ytimg.com/vi/5ayPeU0tfCo/0.jpg', title: '@emergiblog Kim is the medblogger track leader #blogworld', desc: '1 year ago kim ranted that there was no healthcare 2.0 place to go to. Now there are 75 people coming to discuss web2.0 in the healthcare industry. Kim started it all. ... #bwe09 #blogworld @emergiblog '});
	cvids_92.push({vid:61288, thumb: 'http://i.ytimg.com/vi/yfNtSIdQfHA/0.jpg', title: '@johnchow  arrives #blogworld. He will be at the Hilton tweetup. How to make money?', desc: 'JohnChow is now making k/month and spends 2 hours/day on his blog. How does he do it? He will explain at #blogworld ... #bwe09 #blogworld @johnchow monitizing blog '});
	cvids_92.push({vid:61282, thumb: 'http://a.images.blip.tv/Useeblu-BlubrryBlogWorldNewMediaExpoInfo665-680-482.jpg', title: 'Blubrry BlogWorld \& New Media Expo Info', desc: '\nJoin the RawVoice team in Vegas for the 2009 BlogWorld and New Media Expo. Info on our Party the sessions RawVoice team members will be participating in.\n'});
	cvids_92.push({vid:61299, thumb: 'http://i.ytimg.com/vi/UA6A0dwfRzg/0.jpg', title: '@blogworld Rick talks about the www.blogworldexpo.com sit...', desc: 'Verstuurd vanaf mijn 3G iphone Share your adventures realtime with your friends moby.to'});
	cvids_92.push({vid:61283, thumb: 'http://i.ytimg.com/vi/XoUQZMsT7DU/0.jpg', title: 'On the scene', desc: 'Like a blogging... ... bwe09 '});
	cvids_92.push({vid:61284, thumb: 'http://i.ytimg.com/vi/sdDq_4Dh-pk/0.jpg', title: '@vegasgeek John hawkins is trackleader wordcamp at #blogworld', desc: 'What is going to happen at wordcamp at blogworld? A big stage with 200 seats on the expofloor. Vegasgeek explaines what is going to happen. ... #bwe09 #blogworld @vegasgeek john hawkins '});
	cvids_92.push({vid:61285, thumb: 'http://i.ytimg.com/vi/VVicBupBQog/0.jpg', title: '#blogworld track leaders with Rick', desc: 'Who are the people behind the 300+ speakers at blogworld? Meet them quickly ... #blogworld @bwe09 Trackleaders '});
	cvids_92.push({vid:61272, thumb: 'http://i.ytimg.com/vi/IF9LkEK-Rrs/0.jpg', title: 'Mari Smith at #BWE09 - BlogWorld \& New Media Expo 2009', desc: 'twitter.com \u261a See my tweetstream this week for uber tweeting from the BlogWorld \& New Media Expo in Las Vegas!! October 15-17, 2009. Hashtag for this event is #bwe09 -- you can view the full hashtag search at search.twitter.com And if you\'re not exactly sure what hashtags are, be sure to watch my video here on YouTube all about hashtags! www.youtube.com If you\'re at BlogWorld - do come join my session on Thursday, October 15 at 4:00pm PST in Room #221 -- I\'ll be sharing all the secrets of ...'});
	cvids_92.push({vid:61286, thumb: 'http://i.ytimg.com/vi/N7n0gIC8sNE/0.jpg', title: 'Hello From Las Vegas - Blogworld 09', desc: 'www.davidrisley.com - Dave checks in from his hotel room at the Hilton in Las Vegas, home of Blogworld Expo. ... blogworld bwe09 vegas \"las vegas\" hilton risley \"david risley\" blogger problogger '});
	cvids_92.push({vid:61281, thumb: 'http://i.ytimg.com/vi/cmsAnLNL7i4/0.jpg', title: 'Arriving at Blog World 2009 with Bill and Hall Lublin', desc: 'Just got to Blog World, and I dare my thoughts as a returning attendee. Bill and Hal Lublin share their expectations as first-time attendees. ... Bill Lublin Hal Bwe09 Rebw09 Realestatezebra Daniel Rothamel Blog Social Media '});
	cvids_92.push({vid:61290, thumb: 'http://i.ytimg.com/vi/Z5yFIiYqGe4/0.jpg', title: 'Ben Huh at BlogWorld 2009', desc: 'Ben Huh, CEO of I Can Has Cheezburger, shares why failure has been so important to growing his network of humorous Web sites - including Fail Blog.'});
	cvids_92.push({vid:61291, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/293/596/29359671_640.jpg', title: 'Blogworld Expo - Day 1', desc: 'http://www.johnchow.com Video from the first day of Blogworld expo in Las Vegas.'});
	cvids_92.push({vid:61292, thumb: 'http://i.ytimg.com/vi/h4MfVTNyL5s/0.jpg', title: 'Blogworld 2009 day 1 in the morning', desc: 'Quick thoughts from blogworld so far after the first two sessions'});
	cvids_92.push({vid:61293, thumb: 'http://ll-images.veoh.com/image.out?imageId=media-v16051871y4JEXWQq1222356228Med.jpg', title: 'Interview with FRENCH MAID TV Creator Tim Street at Blogworld Expo 2008', desc: 'Vanessa Zamora interviews French Maid TV creator Tim Street about online video, including creating a viral video, on any budget, and more.'});
	cvids_92.push({vid:61294, thumb: 'http://ll-images.veoh.com/image.out?imageId=media-v16094051Js9jWxBw1222711205Med.jpg', title: 'Interview with Blogworld Expo CEO and Co-founder Rick Calvert', desc: 'Blogworld Expo CEO and Co-founder Rick Calvert talks to Brett Tabke about the origin of the conference and the progress of the 2nd annual event.'});
	cvids_92.push({vid:61295, thumb: 'http://i.ytimg.com/vi/0Ai6yT-DUK4/0.jpg', title: 'Jim Marks at Blogworld 2009', desc: 'tsauce.wordpress.com Jim Marks from VirtualResults.net discusses the relationship between offline and online. http'});
	cvids_92.push({vid:61296, thumb: 'http://s3.mcstatic.com/thumb/2265694/9357802/4/catalog_item5/0/1/jim_turner_on_how_to_become_a_professional_blogger.jpg', title: 'Jim Turner on How to Become a Professional Blogger', desc: 'Are you a blogger but want to become a pro (AKA get paid for what you do)? According to Jim Turner, companies looking to hire a blogger want to see someone who is (1) active in a community and (2) uses social media tools to enhance his/her message.'});
	cvids_92.push({vid:61297, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/292/110/29211071_640.jpg', title: 'Zemanta in 60 Seconds', desc: 'Short-attention-span version of our demo. Premiering at BlogWorld Expo 2009 with our theme:\n\"Zemanta Links Me All Over\"'});
	cvids_92.push({vid:61298, thumb: 'http://a.images.blip.tv/Jimkukral-AndyWibbelsAtBlogworldExpo480-130-18.jpg', title: 'Andy Wibbels at Blogworld Expo', desc: '\n\nJim Kukral interviews Andy Wibbels at Blogworld Expo.   \n\n'});
curvid_92=2;
html+='<div class="v69resetstyle" id="thumb_92" style="width:568px;height:467px;background-color:#FFFFFF;position:relative;">';
html+=vidthumbhtml_92(curvid_92);
html+='</div>';
	html +='<div class="v69resetstyle" style="height:26px;width:568px;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_92();"><span style="color:#888;">You are watching channel</span><br/>Blogworld09 video\'s</div>';
	html +='<img style="position:absolute;left:424px;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_92();">';
		html +='<img onclick="showmatrix_92(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_92" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);"/>';
		html +='<img onclick="playprev_92();" style="position:absolute;left:492px;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_92" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstop_92();" style="position:absolute;left:492px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconstop24.png" title="stop"  													id="pgstop_92"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstart_92();" style="position:absolute;left:516px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconplay24.png" title="play"  									id="pgplay_92"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	// start is now a toggle
	html +='<img onclick="playstartstop_92();" style="position:absolute;left:516px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/iconplay24.png" title="play"  									id="pgplay_92"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='<img onclick="playnext_92();" style="position:absolute;left:540px;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_92"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='</div>';
	html+='</div>';
	wgElm_92.innerHTML=html;
	wgElm_92.style.display = 'block';
		updAllButState(); 
}

function playnext_92() {
	if (curvid_92 < cvids_92.length -1 ) {
		curvid_92++;
		if (cpvideo_92)
			playstart_92();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_92');
			thumbdiv.innerHTML=vidthumbhtml_92(curvid_92);
		}
	}
	updAllButState();
}
function playprev_92() {
	if (curvid_92 >0 ) {
		curvid_92--;
		if (cpvideo_92)
			playstart_92();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_92');
			thumbdiv.innerHTML=vidthumbhtml_92(curvid_92);
		}
	}
	updAllButState();
}

function playstart_92(vnr) {
	closepopup_92();	// close popup (if open)
	if (vnr==null)
		vnr=curvid_92;
	else
		curvid_92=vnr;	// set the current
	var thumbdiv=document.getElementById('thumb_92');
	thumbdiv.style.background='#FFF url(http://www.yubby.com/img/spinner32.gif) no-repeat 254px 203.5px';
	thumbdiv.innerHTML='<iframe name="playerframe" class="playerframe" src="http://www.yubby.com/widget/playvideo/'+cvids_92[vnr].vid+'/568/467/L/W" width="568" height="467" frameborder="0" scrolling="no" allowtransparency="true"></iframe>';
	cpvideo_92=true;
	updAllButState();
}

function playstop_92() {
	cpvideo_92=false;
	var thumbdiv=document.getElementById('thumb_92');
	thumbdiv.style.background='#FFF';
	thumbdiv.innerHTML=vidthumbhtml_92(curvid_92);
	updAllButState();
}

function playstartstop_92() {
	if (cpvideo_92) 
		playstop_92();
	else
		playstart_92();
}

function vidthumbhtml_92(vnr) {
	var html='';
	html+='<div class="v69resetstyle" style="width:558px;height:349px; overflow:hidden; position:absolute;left:5px;top:5px;">';
html+='<img src="'+cvids_92[vnr].thumb+'" style="width:558px;height:419px;top:-35px;position:relative;">';
html+='</div>';
html+='<div class="v69resetstyle" style="width:548px;height:103px;position:absolute;left:5px;top:354px;background-color:#AAA;padding:5px;"><div class="v69resetstyle" style="overflow:hidden;height:99px;width:548px;"><div class="v69resetstyle" style="margin: 2px 3px; white-space: nowrap; font-size:15px;line-height:15px;color:#555555;">'+htmlspecialchars(cvids_92[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_92[vnr].desc)+'">'+htmlspecialchars(cvids_92[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_92.length)+'</div></div></div>';
html+='<div class="v69resetstyle" style="position: absolute; width:72px;height:72px;top:197.5px;left:248px;z-index:200;cursor:pointer;cursor:hand;background:url(http://www.yubby.com/img/media_play72.png) no-repeat;" onClick="playstart_92();"></div>';
	return html;
}

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

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

function vidplayurl_92(vnr) {
	if (vnr==null)
		vnr=curvid_92;
	return 'http://www.yubby.com/channel/player/8087/'+cvids_92[vnr].vid;
}

//------------------------------------ button handlers --------------------------------------
function stButImg(oBut) {
	if (oBut.id == 'pgnext_92') { 
		if (curvid_92 >= cvids_92.length -1 ) 
			oBut.src = imgNext_d.src;
		else
			oBut.src= butnext_mousein ? imgNext_ov.src : imgNext_ou.src;
	}
	if (oBut.id == 'pgprev_92') { 
		if (curvid_92==0 ) 
			oBut.src = imgPrev_d.src;
		else
			oBut.src= butprev_mousein ? imgPrev_ov.src : imgPrev_ou.src;
	}
	if (oBut.id == 'pgplay_92') { 
		if (cpvideo_92) 	// 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_92') { 
	// 	if (!cpvideo_92 ) 	// currently NOT playing
	// 		oBut.src = imgStop_ov.src;
	// 	else
	// 		oBut.src= butstop_mousein ? imgStop_ov.src : imgStop_ou.src;
	// }
	if (oBut.id == 'pgmatrix_92') { 
		oBut.src= butmatrix_mousein ? imgMatrix_ov.src : imgMatrix_ou.src;
	}
}

function oMouEv(oBut,mouseIn) {
	
	if (oBut.id == 'pgnext_92') 
		butnext_mousein=mouseIn;
	if (oBut.id == 'pgprev_92') 
		butprev_mousein=mouseIn;
	if (oBut.id == 'pgplay_92') 
		butplay_mousein=mouseIn;
	// if (oBut.id == 'pgstop_92') 
	// 	butstop_mousein=mouseIn;
	if (oBut.id == 'pgmatrix_92') 
		butmatrix_mousein=mouseIn;
	stButImg(oBut);
}

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

	el = document.getElementById('pgprev_92');
	if (el) 
		stButImg(el); // update prevbutton state
		
	el = document.getElementById('pgplay_92');
	if (el) 
		stButImg(el); // update prevbutton state
		
	// el = document.getElementById('pgstop_92');
	// if (el) 
	// 	stButImg(el); // update prevbutton state

	el = document.getElementById('pgmatrix_92');
	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_92() {
  el = document.getElementById('ipopup_92');
  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_92(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_92');
	var html='';
	for (var i=(matrix_curpg-1)*16,cv=0;i<cvids_92.length && cv<16;i++) {
		html+=  vidthumbhtmlSmall_92(i);
		cv++;
	}
	html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	if (matrix_npages>1) {
		html+=  '<div  class="v69resetstyle" style="margin:10px 0px">'+paginationhtml_92(matrix_curpg, matrix_npages)+'</div>';
	}

	mxs.innerHTML=html;
}

function showmatrix_92() {
	// close old one
	closepopup_92();

	matrix_npages= Math.ceil(cvids_92.length / 16);
	
	// open new
	var popup_div = document.createElement('div');
	var title='matrix';
	popup_div.id = "ipopup_92";
	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_92();" 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;">Blogworld09 video\'s</div>';
	vid_html+=	'<div class="v69resetstyle" style="margin:30px 10px 10px 10px;" id="mxs_92">';
	// for (var i=0,cv=0;i<cvids_92.length && cv<16;i++) { 
	// 		vid_html+=  vidthumbhtmlSmall_92(i);
	// 		cv++;
	// 	}
	// 	vid_html+=  '<div style="clear:both;"></div>';
	// 
	// 	if (matrix_npages>1) {
	// 		vid_html+=  '<div style="margin:10px 0px">'+paginationhtml_92(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_92(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 + '"';
}



