//matrix.js for channel 19497 / widget 341470 / 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_341470= new Array();	// channelvideo's
var curvid_341470=0;			// first video
var cpvideo_341470=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 matrix341470_curpg=1;
var matrix341470_npages=1;
var matrix341470_itemspp=9;

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

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

function vp_createwg() {
	var html='<div id="widget_flash_341470" 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_341470.push({vid:81618, thumb: 'http://i.ytimg.com/vi/iZoTXhPK2GI/0.jpg', title: 'Retribution Gospel Choir - Breaker', desc: 'A sideproject of Low\'s Alan Sparhawk along with sometime member, Red House Painters\' Mark Kozelek, Retribution Gospel Choir perform the song \"Breaker\" at the Detroit Bar, Costa Mesa, CA, September 8th, 2005. Breaker will be on Low\'s forthcoming record, Drums And Guns, slated for release March 20th, 2007 on Sub Pop records.'});
	cvids_341470.push({vid:81619, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/193/044/19304465_640.jpg', title: 'Retribution Gospel Choir', desc: 'Enjoy Retribution Gospel Choir as they perform live at Pizza Luce in Duluth, Minnesota.'});
	cvids_341470.push({vid:81620, thumb: 'http://i.ytimg.com/vi/SuqJiWeIyPM/0.jpg', title: 'SXSW 2008: Retribution Gospel Choir - \"Poor Man\'s Daughter\"', desc: 'Retribution Gospel Choir performing \"Poor Man\'s Daughter\" at SXSW 2008 - March 13, 2008 @ Central Presbyterian Church in Austin, Texas.'});
	cvids_341470.push({vid:81621, thumb: 'http://i.ytimg.com/vi/hF1yq2Ba1DM/0.jpg', title: 'RETRIBUTION GOSPEL CHOIR - LIVE TANNED TIN 2008', desc: 'Extracto del concierto de Retribution Gospel Choir en el pasado festival Tanned Tin 2008. Para conocer m\u00e1s sobre este artista puede visitar su web: www.retributiongospelchoir.com Filmado y editado por: Adam Brenes, Diego Climent y Daniel Alonso Extract of Retribution Gospel Choir\'s concert at Tanned Tin 2008. You can Know more about this artist visiting his web: www.retributiongospelchoir.com Filmed and edited by: Adam Brenes, Diego Climent and Daniel Alonso'});
	cvids_341470.push({vid:81622, thumb: 'http://i.ytimg.com/vi/EPpyoqQSv2k/0.jpg', title: 'Retribution Gospel Choir - Ziggy Stardust - London 2008', desc: 'Retribution Gospel Choir covering David Bowie\'s Ziggy Stardust live at the Water Rats in London on April 21st 2008'});
	cvids_341470.push({vid:81623, thumb: 'http://i.ytimg.com/vi/0-dgzdjBQGc/0.jpg', title: 'Retribution Gospel Choir@The Hanbury Club,Brighton, vid 1', desc: 'Alan Sparhawk, Steve Garrington and Eric Pollard play a fantastic gig supporting Micah P.Hinson.'});
	cvids_341470.push({vid:81624, thumb: 'http://i.ytimg.com/vi/LolDEwcPs4M/0.jpg', title: 'Retribution Gospel Choir - Pizza Luce', desc: 'The Retribution Gospel Choir performing their song, \"For Her Blood\" during their self-titled CD release party at Pizza Luce in Duluth, MN Saturday, March 8th, 2008.'});
	cvids_341470.push({vid:81625, thumb: 'http://i.ytimg.com/vi/fWfzlftXaeY/0.jpg', title: 'Retribution Gospel Choir live @ ATP Butlins Minehead, UK, 9. May 2009 - They knew you well', desc: 'What a fine band! Alan Sparhawk, Eric Pollard, Matt Livingston, the mighty RETRIBUTION GOSPEL CHOIR delivering the rock @ ATP, Minehead, UK.'});
	cvids_341470.push({vid:98011, thumb: 'http://i.ytimg.com/vi/BSVQxIjXBhY/0.jpg', title: 'Sukilove @ Nononov', desc: 'Sukilove @ Nononov, the next big thing to cbgb\'s'});
	html+='<div id="cvideos341470">';
	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_341470.innerHTML=html;
	wgElm_341470.style.display = 'block';
	gotopage_341470(matrix341470_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_341470() {
	closevid_341470();
}

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


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



function closeVideoPlayer_341470() {
	// close screen
	closevid_341470();
	// call to flash object
	//getFlashObject("videostrip_341470").videoDeselect(0);
}


function closevid_341470() {
  el = document.getElementById('vidplayer_341470');
  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_341470(videoitem_id) {

	// close old one
	closevid_341470();

	// open new
	//var vidlist = document.getElementById(id);
	var video_div = document.createElement('div');
	var title='hello';
	video_div.id = "vidplayer_341470";
	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_341470');
	//	//var top = vp_offsetTop(wgElm_341470);
	//	//var left = vp_offsetLeft(wgElm_341470);
	//	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_341470[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_341470();" 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_341470() {
	//alert('cvids='+(cvids_341470.length).toString()+'itemspp='+matrix341470_itemspp);
	matrix341470_npages= Math.ceil(cvids_341470.length / matrix341470_itemspp);
}

function gotopage_341470(pg) {
		
	//if (!matrix341470_npages)
	initpage_341470();
	
	if (pg<1)
		pg=1;
	if (pg>matrix341470_npages)
		pg=matrix341470_npages;
		
	oldpg=matrix341470_curpg;
	matrix341470_curpg=pg;
	var mxs=document.getElementById('cvideos341470');
	var html='';
	for (var i=(matrix341470_curpg-1)*matrix341470_itemspp,cv=0;i<cvids_341470.length && cv<matrix341470_itemspp;i++) {
		html+=  vidthumbhtmlSmall_341470(i);
		cv++;
	}
	html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	
				html+=  '<div  class="v69resetstyle" style="margin:1px 0px">'+paginationhtml_341470(matrix341470_curpg, matrix341470_npages)+'</div>';
	
	mxs.innerHTML=html;
}

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

//-----------------------------------------------------------------------
// cp 1..npages
function paginationhtml_341470(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_341470('+(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_341470('+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_341470('+(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/19497" 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;
}




