//matrix.js for channel 22681 / widget 515189 / cols 3 / rows 3 / skin clean 
//cache: {{{cacheinfo}}} 
// 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.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_515189= new Array();	// channelvideo's
var curvid_515189=0;			// first video
var cpvideo_515189=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 matrix515189_curpg=1;
var matrix515189_npages=1;
var matrix515189_itemspp=9;

var wgElm_515189 = document.getElementById('viidoo_matrix_515189');
if (wgElm_515189) {
	// we exist!
	// hide 
	//wgElm_515189.innerHTML = 'x';
	//wgElm.style.display = 'none';
	//....
	vp_createwg();
}

pgstats.addcollect('chid','22681');
pgstats.addcollect('hit','embed');
pgstats.addcollect('widget','matrix');
pgstats.xPageHit();

function vp_createwg() {
	var html='<div id="widget_flash_515189" class="widget_flash" style="width: 516px;height:330px;overflow:hidden; border: 0px solid #DDDDDD;font-family:Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Tahoma,Geneva,Arial,helvetica,sans-serif">';
	//html+='<link rel="stylesheet" href="http://www.yubby.com/css/main.css" type="text/css" media="screen" title="x" charset="utf-8" />';
	// silly IE needs a br before style element
	html+='<br style="display:none;"/><style type="text/css">	\
		.stdthumb {width:160px;max-height:122px;background:#f6f6f6;margin:0 auto 6px auto;overflow:hidden;position:relative;}	\
		.stdthumbbrd {width:156px;height:86px;background:#cccccc;border:2px solid #dedede;overflow:hidden;position:relative;}	\
		.stdthumbbrd .stbdimg {position:absolute;width:160px;height:119px;top:-20px;left:0;}	\
		.stdthumbbrd .smallroundaction	{position: absolute; width:24px;height:24px;z-index:200;cursor:pointer;cursor:hand;}	\
		.stdthumbbrd .bigplay	{position: absolute; width:24px;height:24px;top:28px;left:68px;z-index:200;cursor:pointer;cursor:hand;background:url(http://incdn.s3.amazonaws.com/yubbyp_v1/img/media_play24.png) no-repeat;} \
		.stdthumbbrd .inlinetitle 	{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;} \
		.stdthumbbrd .thumbavatar	{position: absolute; top: 2px; left:2px;z-index:300;} 	\
		.pages {padding:2px 0 2px 8px; margin:0; height:clear:both;font-size:12px;	line-height:14px; -moz-user-select: none;-khtml-user-select: none; user-select: none;} \
			.pages div.pageblock {float:left;border: 1px solid #888; color:#000; height: 14px; padding: 3px 6px 3px 6px; margin: 0px 4px 0px 0px;cursor: pointer;cursor:hand;}\
			.pages div.pageblock:hover {color:#D10101;text-decoration:underline;}	\
			.pages div.pageblock_disabled {float:left;border: 1px solid #888; color: #aaa; height: 14px; padding: 3px 6px 3px 6px;margin: 0px 4px 0px 0px;}\
			.pages div.pageblock_dots {float:left; border: 0px solid #888; color: #000; height: 14px; padding: 3px 6px 3px 6px;margin: 0px 4px 0px 0px;}\
			.pages div.pageblock_curpage {float:left; border: 1px solid #888; color: #aaa; height: 14px; padding: 3px 6px 3px 6px;margin: 0px 4px 0px 0px;}\
		</style>';
		cvids_515189.push({vid:89456, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/338/432/33843220_640.jpg', title: 'Shrinebuilder', desc: 'Shrinebuilder w/Rwake and Liturgy @ Le Poisson Rouge NYC\n11.15.2009\n\n\n\"On Sunday at Le Poisson Rouge, Shrinebuilder played an overwhelming show \u2014 almost meditatively focused, one whose afterimage is likely to stay with those who saw it. It\u2019s a band of willful musicians in their 40s from around the country who have given their adult lives to slow-and-heavy music: Scott Kelly of Neurosis, Scott Weinrich of the Obsessed and Saint Vitus, Al Cisneros of Om and Dale Crover of the Melvins.\"\nNY Times\n\nwww.myspace.com/shrinebuildergroup'});
	cvids_515189.push({vid:89457, thumb: 'http://i.ytimg.com/vi/ZWkAPuJljUw/0.jpg', title: 'Shrinebuilder - \"Science of Anger\" Live', desc: 'Shrinebuilder performs \"Science of Anger\" live at the Viper Room in Hollywood on Nov. 12th, 2009.'});
	cvids_515189.push({vid:89458, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/337/710/33771018_640.jpg', title: 'Shrinebuilder', desc: 'Shrinebuilder w/Rwake and Liturgy @ Le Poisson Rouge NYC\n11.15.2009 \n\n\n\"On Sunday at Le Poisson Rouge, Shrinebuilder played an overwhelming show \u2014 almost meditatively focused, one whose afterimage is likely to stay with those who saw it. It\u2019s a band of willful musicians in their 40s from around the country who have given their adult lives to slow-and-heavy music: Scott Kelly of Neurosis, Scott Weinrich of the Obsessed and Saint Vitus, Al Cisneros of Om and Dale Crover of the Melvins.\" \nNY Times\n\nhttp://www.myspace.com/shrinebuildergroup'});
	cvids_515189.push({vid:89459, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/335/148/33514854_640.jpg', title: 'Shrinebuilder - Hell @ Poisson Rouge.  Nov 15th, 2009', desc: 'Shrinebuilder opened with this one at the show with Rwake and Liturgy at Le Poisson Rouge in NYC.  November 15th, 2009.  Dale Crover of the Melvins on drums/Vox, Wino of The Obsessed/St.Vitus/Hidden Hand/Wino/Spirit Caravan on Guitar/Vox, Al Cisneros of Sleep/OM/AsbestosDeath on Bass/Vox, Scott Michael Kelly of Neurosis on Guitar/Vox.\n\nShot by Jack Crank for www.nogodsnovegetables.com on a Canon G10'});
	cvids_515189.push({vid:89460, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/334/708/33470827_640.jpg', title: 'Shrinebuilder - Pyramid of the Moon @ Poisson Rouge. Nov 15th, 2009', desc: 'Shrinebuilder\'s closing song at the show with Rwake and Liturgy.  Fan-fucking-tastic live.  Dale Crover of the Melvins on drums/Vox, Wino of The Obsessed/St.Vitus/Hidden Hand/Wino/Spirit Caravan on Guitar/Vox, Al Cisneros of Sleep/OM/AsbestosDeath on Bass/Vox, Scott Michael Kelly of Neurosis on Guitar/Vox.  \n\nShot by Jack Crank on a G10'});
	cvids_515189.push({vid:89461, thumb: 'http://i.ytimg.com/vi/OMhdJNBRvyE/0.jpg', title: 'Shrinebuilder covers Joy Division', desc: 'Shrinebuilder performs \"24 Hours\" by Joy Division at The Viper Room on Nov. 11th, 2009.'});
	cvids_515189.push({vid:89462, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/334/898/33489874_640.jpg', title: 'Shrinebuilder - Blind For All To See @ Poisson Rouge.  Nov. 15th 2009', desc: 'Shrinebuilder playing \"Blind for All To See\" with a nice long intro.  With Rwake and Liturgy at Le Poisson Rouge in NYC.  November 15th, 2009.  Dale Crover of the Melvins on drums/Vox, Wino of The Obsessed/St.Vitus/Hidden Hand/Wino/Spirit Caravan on Guitar/Vox, Al Cisneros of Sleep/OM/AsbestosDeath on Bass/Vox, Scott Michael Kelly of Neurosis on Guitar/Vox.\n\nShot by Jack Crank for www.nogodsnovegetables.com on a Canon G10'});
	cvids_515189.push({vid:89463, thumb: 'http://i.ytimg.com/vi/cM2OCLQs6vA/0.jpg', title: 'Shrinebuilder FIRST EVER LIVE SHOW @ Viper Room Hollywood 11/11/2009', desc: 'Doom supergroup legends do what appears to be a Joy Division cover. Hmm...'});
	cvids_515189.push({vid:89464, thumb: 'http://i.ytimg.com/vi/6EqQslJdtVw/0.jpg', title: 'Shrinebuilder- The Architect @ Le Poisson Rouge, NYC, Nov 15, 2009', desc: '\"The Architect\" turns into \"Blind for All to See\" (check out the video response for second part)'});
	html+='<div id="cvideos515189">';
	html+='</div>';	// widget_flash
	html+='<iframe src="http://www.yubby.com/util/ustat" width="0" height="0" border="no" frameborder="0"  style="border:0; visibility: hidden;"></iframe>';
	wgElm_515189.innerHTML=html;
	wgElm_515189.style.display = 'block';
	gotopage_515189(matrix515189_curpg);	// 1
}


// 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;
}

// flash jscalls

// stop video
function stopVideo_515189() {
	closevid_515189();
}

// show hoverevent
function showVideoInfo(videoitem_id) {
	// alert('Show some information for ' + videoitem_id + '.');
}


function hideVideoInfo() {
	// alert('hide');
}



function closeVideoPlayer_515189() {
	// close screen
	closevid_515189();
	// call to flash object
	//getFlashObject("videostrip_515189").videoDeselect(0);
}


function closevid_515189() {
  el = document.getElementById('vidplayer_515189');
  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 playVideo_515189(videoitem_id) {

	// close old one
	closevid_515189();

	// open new
	//var vidlist = document.getElementById(id);
	var video_div = document.createElement('div');
	var title='hello';
	video_div.id = "vidplayer_515189";
	video_div.style.position = 'absolute';
	video_div.style.border = 'none';
	var base_width=400;
	var base_height=300;
	var calc_width	= (base_width+2*17+10);
	var calc_height	= (base_height+16+2*22);
	
	video_div.style.width = calc_width+'px';
	video_div.style.height = calc_height+'px';
	video_div.style.zIndex = '10000';
	//video_div.style.border = "5px solid #cccccc";
	
	//
	//	var wgFlashDiv=document.getElementById('widget_flash_515189');
	//	//var top = vp_offsetTop(wgElm_515189);
	//	//var left = vp_offsetLeft(wgElm_515189);
	//	var top = vp_offsetTop(wgFlashDiv);
	//	var left = vp_offsetLeft(wgFlashDiv);
	//
	//	// left or right
	//	if (left < document.body.clientWidth/2) {
	//		if (3==1) {
	//			video_left = left + 172;	// one column play right from strip
	//			top = top - 3;
	//		}
	//		else {
	//			video_left = left + 40; // multicolum play inside strip
	//			top=top+40;
	//		}
	//	} else {
	//		// widget is at the right
	//		video_left = left + 3*172 - 40 - 402 - 2*17 ; // 402 plus borders 2x17 
	//	}

	//alert('video_left='+video_left+' top='+top);
	//video_div.style.top = top + 'px';
	//video_div.style.left = video_left + 'px';
	// CENTER SCREEN
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	var video_top = arrayPageScroll[1] + ((arrayPageSize[3] -calc_height) / 2);
	var video_left = arrayPageScroll[0] +((arrayPageSize[0] - calc_width) / 2);
	if (video_top<0)
		video_top=0;
	if (video_left<0)
		video_left=0;
	video_div.style.position = 'absolute';
	video_div.style.top = video_top + 'px';
	video_div.style.left = video_left + 'px';

	 
	var vid_html = '<div style="padding:0px 5px 0px 5px;position:relative;">\
					<table cellspacing=0 cellpadding=0 border=0 style="margin:0px auto; background:transparant;width:100%;table-layout:fixed;position:relative;z-index:0">\
					<tr><td style="background:url(http://www.yubby.com/img/rbox/rbox5_01.png) no-repeat left top;padding:0;margin:0;width: 17px;height:22px;"></td>\
						<td style="background:url(http://www.yubby.com/img/rbox/rbox5_02.png) repeat-x top;height:22px;padding:0;margin:0;"></td>\
						<td style="background:url(http://www.yubby.com/img/rbox/rbox5_03.png) no-repeat left top;width: 17px;height:22px;padding:0;margin:0;"></td></tr>\
					<tr><td style="background:url(http://www.yubby.com/img/rbox/rbox5_04.png) no-repeat left top;width: 17px;background-color:#FFF;max-height:54px;padding:0;margin:0;" height=54 >\
					</td>\
					<td style="background:url(http://www.yubby.com/img/rbox/rbox5_05.png) repeat-x top;background-color:#fff; overflow:hidden;padding:0;margin:0;">\
					<div style="color:#DDDDDD;position:relative;border:1px solid transparent;overflow:hidden;height:325px;width:400px;background-color:transparent;padding:0;margin:0;">';
	vid_html +='<iframe name="playerframe" class="playerframe"	src="http://www.yubby.com/widget/playvideo/'+cvids_515189[videoitem_id].vid+'/402/318/S/W" width="100%" height="100%" frameborder=0 scrolling="no" allowtransparency="true"></iframe>';
	vid_html +=		'<div style="clear:both;"></div></div>\
					</td><td style="background:url(http://www.yubby.com/img/rbox/rbox5_06.png) no-repeat left top; 	width: 17px;  	background-color:#FFF;padding:0;margin:0;"></td></tr>\
					<tr><td style="background:url(http://www.yubby.com/img/rbox/rbox5_07.png) no-repeat left top;width: 17px;height:22px;padding:0;margin:0;"></td>\
						<td style="background:url(http://www.yubby.com/img/rbox/rbox5_08.png) repeat-x top; height:22px;padding:0;margin:0;"></td>\
						<td style="background:url(http://www.yubby.com/img/rbox/rbox5_09.png) no-repeat left top;width:17px;height:22px;padding:0;margin:0;"></td></tr>\
					</table>\
					<div onclick="closeVideoPlayer_515189();" style="position:absolute;top:13px;right:11px;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>\
					</div>';
					
	video_div.innerHTML=vid_html;
	document.body.appendChild(video_div);
}

//----------------------------------------- pagination -------------------------------------

function initpage_515189() {
	//alert('cvids='+(cvids_515189.length).toString()+'itemspp='+matrix515189_itemspp);
	matrix515189_npages= Math.ceil(cvids_515189.length / matrix515189_itemspp);
}

function gotopage_515189(pg) {
		
	//if (!matrix515189_npages)
	initpage_515189();
	
	if (pg<1)
		pg=1;
	if (pg>matrix515189_npages)
		pg=matrix515189_npages;
		
	oldpg=matrix515189_curpg;
	matrix515189_curpg=pg;
	var mxs=document.getElementById('cvideos515189');
	var html='';
	for (var i=(matrix515189_curpg-1)*matrix515189_itemspp,cv=0;i<cvids_515189.length && cv<matrix515189_itemspp;i++) {
		html+=  vidthumbhtmlSmall_515189(i);
		cv++;
	}
	html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	
				html+=  '<div  class="v69resetstyle" style="margin:1px 0px">'+paginationhtml_515189(matrix515189_curpg, matrix515189_npages)+'</div>';
	
	mxs.innerHTML=html;
}

function vidthumbhtmlSmall_515189(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="playVideo_515189('+vnr+')" title="'+htmlspecialchars(cvids_515189[vnr].desc)+'" src="'+cvids_515189[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/yubbyp_v1/img/media_play24.png) no-repeat;" onclick="playVideo_515189('+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_515189('+vnr+')" >'+htmlspecialchars(cvids_515189[vnr].title)+'</div>';
			html+='</div>';
		html+='</div>';
	html+='</div>';
	return html;
}

//-----------------------------------------------------------------------
// cp 1..npages
function paginationhtml_515189(cp,npages) {
	//if (npages<=1)
	//	return '';	// empty if no pagination..
	var html='';
	html+='<div class="pages v69resetstyle" style="position:relative">';
	if (cp>1) {
		// we CAN prev! beter ltlt ipv &#171; 
		html+= '<div class="pageblock" onclick="gotopage_515189('+(cp-1)+');">&lt;&lt; Previous</div>';
	}
	else {
		html+= '<div class="pageblock_disabled">&lt;&lt; Previous</div>';
	}
			// 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<=1 || (lpage>=cp-2 && lpage<=cp+2) || lpage>=npages) {
				dotted = false;	// we need to dot afterwards
				if (lpage == cp )
					html+='<div class="pageblock_curpage"><b>'+lpage+'</b></div>';
				else
					html+='<div class="pageblock" onclick="gotopage_515189('+lpage+');">'+lpage+'</div>';
			}
			else {
				// no printing.. buttt maybe we need to dot
				if ( !dotted ) {
					html+='<div class="pageblock_dots">...</div>';
					dotted = true;
				}
			}
		}
		
	// Next page - Link
	// beter gtgt ipv &#187;
	if ( cp<npages )
		html+='<div class="pageblock" onclick="gotopage_515189('+(cp+1)+');">Next &gt;&gt;</div>';
	else
		html+='<div class="pageblock_disabled">Next &gt;&gt;</div>';
	
	html+='<div style="position:absolute;right:5px;top:0px;">';
	html+='<a href="http://www.yubby.com//channel/videos/22681" target=_blank><img src="http://incdn.s3.amazonaws.com/yubbyp_v1/img/project/yubby/logo.png" style="border:none;height:22px;display:inline;"></a>';
	html+='</div>';
	
	html+='</div>';
	return html;
}




