//solo.js for channel 11977 / widget 727703 / WxH: 350x304 / skin: emerce / vid: 0 / autoplay: N / matrix: Y 
// Widget standard js for yubby
// NOT based on prototype or jquery - cause it must be lightweight and cant interfere with host

/**
 *	htmlspecialchars - like its php counterpart
 *	@author rvw
 *	@since 08-03-2010 12:19
 */
function htmlspecialchars(string) {
	string = string.toString();
	string = string.replace(/&/g, '&amp;');    
	string = string.replace(/</g, '&lt;').replace(/>/g, '&gt;');
	string = string.replace(/"/g, '&quot;');
	// single quote.. string = string.replace(/'/g, '&#039;');
	return string;
}

//------------ tween.js ----------------------
function Delegate() {}
Delegate.create = function (o, f) {
	var a = new Array() ;
	var l = arguments.length ;
	for(var i = 2 ; i < l ; i++) a[i - 2] = arguments[i] ;
	return function() {
		var aP = [].concat(arguments, a) ;
		f.apply(o, aP);
	}
}

Tween = function(obj, prop, func, begin, finish, duration, suffixe){
	this.init(obj, prop, func, begin, finish, duration, suffixe)
}
var t = Tween.prototype;

t.obj = new Object();
t.prop='';
t.func = function (t, b, c, d) { return c*t/d + b; };
t.begin = 0;
t.change = 0;
t.prevTime = 0;
t.prevPos = 0;
t.looping = false;
t._duration = 0;
t._time = 0;
t._pos = 0;
t._position = 0;
t._startTime = 0;
t._finish = 0;
t.name = '';
t.suffixe = '';
t._listeners = new Array();	
t.setTime = function(t){
	this.prevTime = this._time;
	if (t > this.getDuration()) {
		if (this.looping) {
			this.rewind (t - this._duration);
			this.update();
			this.broadcastMessage('onMotionLooped',{target:this,type:'onMotionLooped'});
		} else {
			this._time = this._duration;
			this.update();
			this.stop();
			this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});
		}
	} else if (t < 0) {
		this.rewind();
		this.update();
	} else {
		this._time = t;
		this.update();
	}
}
t.getTime = function(){
	return this._time;
}
t.setDuration = function(d){
	this._duration = (d == null || d <= 0) ? 100000 : d;
}
t.getDuration = function(){
	return this._duration;
}
t.setPosition = function(p){
	this.prevPos = this._pos;
	var a = this.suffixe != '' ? this.suffixe : '';
	this.obj[this.prop] = Math.round(p) + a;
	this._pos = p;
	this.broadcastMessage('onMotionChanged',{target:this,type:'onMotionChanged'});
}
t.getPosition = function(t){
	if (t == undefined) t = this._time;
	return this.func(t, this.begin, this.change, this._duration);
};
t.setFinish = function(f){
	this.change = f - this.begin;
};
t.geFinish = function(){
	return this.begin + this.change;
};
t.init = function(obj, prop, func, begin, finish, duration, suffixe){
	if (!arguments.length) return;
	this._listeners = new Array();
	this.addListener(this);
	if(suffixe) this.suffixe = suffixe;
	this.obj = obj;
	this.prop = prop;
	this.begin = begin;
	this._pos = begin;
	this.setDuration(duration);
	if (func!=null && func!='') {
		this.func = func;
	}
	this.setFinish(finish);
}
t.start = function(){
	this.rewind();
	this.startEnterFrame();
	this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});
	//alert('in');
}
t.rewind = function(t){
	this.stop();
	this._time = (t == undefined) ? 0 : t;
	this.fixTime();
	this.update();
}
t.fforward = function(){
	this._time = this._duration;
	this.fixTime();
	this.update();
}
t.update = function(){
	this.setPosition(this.getPosition(this._time));
	}
t.startEnterFrame = function(){
	this.stopEnterFrame();
	this.isPlaying = true;
	this.onEnterFrame();
}
t.onEnterFrame = function(){
	if(this.isPlaying) {
		this.nextFrame();
		setTimeout(Delegate.create(this, this.onEnterFrame), 0);
	}
}
t.nextFrame = function(){
	this.setTime((this.getTimer() - this._startTime) / 1000);
	}
t.stop = function(){
	this.stopEnterFrame();
	this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});
}
t.stopEnterFrame = function(){
	this.isPlaying = false;
}

t.continueTo = function(finish, duration){
	this.begin = this._pos;
	this.setFinish(finish);
	if (this._duration != undefined)
		this.setDuration(duration);
	this.start();
}
t.resume = function(){
	this.fixTime();
	this.startEnterFrame();
	this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionResumed'});
}
t.yoyo = function (){
	this.continueTo(this.begin,this._time);
}

t.addListener = function(o){
	this.removeListener (o);
	return this._listeners.push(o);
}
t.removeListener = function(o){
	var a = this._listeners;	
	var i = a.length;
	while (i--) {
		if (a[i] == o) {
			a.splice (i, 1);
			return true;
		}
	}
	return false;
}
t.broadcastMessage = function(){
	var arr = new Array();
	for(var i = 0; i < arguments.length; i++){
		arr.push(arguments[i])
	}
	var e = arr.shift();
	var a = this._listeners;
	var l = a.length;
	for (var i=0; i<l; i++){
		if(a[i][e])
		a[i][e].apply(a[i], arr);
	}
}
t.fixTime = function(){
	this._startTime = this.getTimer() - this._time * 1000;
}
t.getTimer = function(){
	return new Date().getTime() - this._time;
}
Tween.backEaseIn = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158;
	return c*(t/=d)*t*((s+1)*t - s) + b;
}
Tween.backEaseOut = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158;
	return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
}
Tween.backEaseInOut = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158; 
	if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
	return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
}
Tween.elasticEaseIn = function(t,b,c,d,a,p){
		if (t==0) return b;  
		if ((t/=d)==1) return b+c;  
		if (!p) p=d*.3;
		if (!a || a < Math.abs(c)) {
			a=c; var s=p/4;
		}
		else 
			var s = p/(2*Math.PI) * Math.asin (c/a);
		
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	
}
Tween.elasticEaseOut = function (t,b,c,d,a,p){
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
	}
Tween.elasticEaseInOut = function (t,b,c,d,a,p){
	if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) var p=d*(.3*1.5);
	if (!a || a < Math.abs(c)) {var a=c; var s=p/4; }
	else var s = p/(2*Math.PI) * Math.asin (c/a);
	if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
}

Tween.bounceEaseOut = function(t,b,c,d){
	if ((t/=d) < (1/2.75)) {
		return c*(7.5625*t*t) + b;
	} else if (t < (2/2.75)) {
		return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
	} else if (t < (2.5/2.75)) {
		return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
	} else {
		return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
	}
}
Tween.bounceEaseIn = function(t,b,c,d){
	return c - Tween.bounceEaseOut (d-t, 0, c, d) + b;
	}
Tween.bounceEaseInOut = function(t,b,c,d){
	if (t < d/2) return Tween.bounceEaseIn (t*2, 0, c, d) * .5 + b;
	else return Tween.bounceEaseOut (t*2-d, 0, c, d) * .5 + c*.5 + b;
	}

Tween.strongEaseInOut = function(t,b,c,d){
	return c*(t/=d)*t*t*t*t + b;
	}

Tween.regularEaseIn = function(t,b,c,d){
	return c*(t/=d)*t + b;
	}
Tween.regularEaseOut = function(t,b,c,d){
	return -c *(t/=d)*(t-2) + b;
	}

Tween.regularEaseInOut = function(t,b,c,d){
	if ((t/=d/2) < 1) return c/2*t*t + b;
	return -c/2 * ((--t)*(t-2) - 1) + b;
	}
Tween.strongEaseIn = function(t,b,c,d){
	return c*(t/=d)*t*t*t*t + b;
	}
Tween.strongEaseOut = function(t,b,c,d){
	return c*((t=t/d-1)*t*t*t*t + 1) + b;
	}

Tween.strongEaseInOut = function(t,b,c,d){
	if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
	return c/2*((t-=2)*t*t*t*t + 2) + b;
	}

//======= end tween.js
// pgstats - poor mans page statistics.. 
// NOT based on prototype or jquery - cause it must be lightweight

// // get our script src, to know our baseurl so we can call home
// var pgstatsScriptSource = (function(scripts) {
//     var scripts = document.getElementsByTagName('script'),
//         script = scripts[scripts.length - 1];	// at ths very moment, we are the last script guaranteed
// 
//     if (script.getAttribute.length !== undefined) {
//         return script.src
//     }
// 
//     return script.getAttribute('src', -1)
// }());

var pgstats= {
	browser: navigator.userAgent,
	uid: '',
	scr: screen.width.toString()+'x'+screen.height.toString(),
	url: document.URL,
	referrer: document.referrer,
	ecollect: {},
	baseurl: 'http://www.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_727703= new Array();	// channelvideo's
var curvid_727703=0;			// first video
var cpvideo_727703=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/skins/emerce/iconnext24ov.png";
imgNext_ou.src="http://www.yubby.com//img/widget/solo/skins/emerce/iconnext24.png";
imgNext_d.src ="http://www.yubby.com//img/widget/solo/skins/emerce/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/skins/emerce/iconprev24ov.png";
imgPrev_ou.src="http://www.yubby.com//img/widget/solo/skins/emerce/iconprev24.png";
imgPrev_d.src ="http://www.yubby.com//img/widget/solo/skins/emerce/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/skins/emerce/iconplay24ov.png";
imgPlay_ou.src="http://www.yubby.com//img/widget/solo/skins/emerce/iconplay24.png";
imgPlay_d.src ="http://www.yubby.com//img/widget/solo/skins/emerce/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/skins/emerce/iconstop24ov.png";
imgStop_ou.src="http://www.yubby.com//img/widget/solo/skins/emerce/iconstop24.png";
imgStop_d.src ="http://www.yubby.com//img/widget/solo/skins/emerce/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/skins/emerce/iconmatrix24ov.png";
imgMatrix_ou.src="http://www.yubby.com//img/widget/solo/skins/emerce/iconmatrix24.png";
imgMatrix_d.src ="http://www.yubby.com//img/widget/solo/skins/emerce/iconmatrix24d.png";

var wgElm_727703 = document.getElementById('viidoo_solo_727703');
if (wgElm_727703) {
	vp_createwg();
}

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

	cvids_727703.push({vid:392121, thumb: 'http://b.vimeocdn.com/ts/223/119/223119903_640.jpg', title: '2012 Vancouver Scapes Photo Workshop with Chris Marquardt', desc: 'http://discoverthetopfloor.com Sep 7-9 2012 Photo Workshop in Vancouver with Chris Marquardt. Landscapes, Cityscapes, People, Nature.\n\nMusic: jewelbeat.com'});
	cvids_727703.push({vid:389036, thumb: 'http://b.vimeocdn.com/ts/188/020/188020147_640.jpg', title: 'San Francisco Fire \& Night - Photo Workshop with Chris Marquardt', desc: 'Apply now for the 2012 San Francisco Fire \& Night workshop. http://discoverthetopfloor.com'});
	cvids_727703.push({vid:385842, thumb: 'http://b.vimeocdn.com/ts/199/047/199047144_640.jpg', title: 'Toronto Urban Photography - Photo Workshop with Chris Marquardt', desc: 'http://discoverthetopfloor.com\n2011 Toronto Urban Exploration workshop. We did street, architecture and night cityscape photography and everyone had an enormous amount of fun.'});
	cvids_727703.push({vid:384634, thumb: 'http://b.vimeocdn.com/ts/212/947/212947740_640.jpg', title: 'Absolut Analog Workshop f\u00fcr Ein- und Umsteiger mit Chris und Moni', desc: 'Absolut Analog Workshop f\u00fcr Ein- und Umsteiger mit Chris und Moni'});
	cvids_727703.push({vid:384633, thumb: 'http://b.vimeocdn.com/ts/194/378/194378285_640.jpg', title: 'Washington D.C. 2011 - Photo Workshop with Chris Marquardt', desc: ''});
	cvids_727703.push({vid:286226, thumb: 'http://b.vimeocdn.com/ts/180/040/180040247_640.jpg', title: 'Klostergeister - Happy Shooting Workshop', desc: 'Workshops auf Deutsch: http://happyshooting.de/workshop\nWorkshops in English: http://www.discoverthetopfloor.com'});
	cvids_727703.push({vid:286224, thumb: 'http://b.vimeocdn.com/ts/179/701/179701124_640.jpg', title: 'Fotografie am Ende des Lichts - Workshop in Braunschweig', desc: 'Analogworkshops: http://www.absolutanalog.de - in Zusammenarbeit mit Sp\u00fcrsinn http://www.spuer-sinn.net'});
	cvids_727703.push({vid:272616, thumb: 'http://i.ytimg.com/vi/0VuoTPkg5j8/0.jpg', title: 'Spielzeugladen-Workshop Hannover, Juli 2011', desc: 'Happy-Shooting-Workshop Spielzeugladen 2011, Hannover happyshooting.de'});
	cvids_727703.push({vid:148131, thumb: 'http://b.vimeocdn.com/ts/112/780/112780712_640.jpg', title: 'Workshop Toronto 2010', desc: 'Workshops with Chris Marquardt http://www.discoverthetopfloor.com\n\nVideo shot at the 2010 workshop in Toronto, Canada. \n\nCamera: Release Pixie Ravsitar.\nMusic: Geoff Smith http://thegeoffsmith.com'});
	cvids_727703.push({vid:148130, thumb: 'http://b.vimeocdn.com/ts/789/142/78914226_640.jpg', title: 'San Francisco Street Safari 2010', desc: 'San Francisco street photography workshop 2010.\n\nMore information at http://chrismarquardt.com/workshops'});
	cvids_727703.push({vid:148129, thumb: 'http://b.vimeocdn.com/ts/718/806/71880650_640.jpg', title: 'Absolut Analog - Fotoworkshop 2010', desc: 'Weitere Workshops:\nAbsolut Analog: 8.-10. Oktober 2010\nAbsolut Analog Polaroid-Edition: 11.-12. September 2010\n\nWeitere Informationen: http://www.absolutanalog.de\n\n\nMehr Analogvideo hier: http://vimeo.com/8471448'});
	cvids_727703.push({vid:84513, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/387/587/38758759_640.jpg', title: 'Northeim Licht-Workshop 09', desc: 'Workshop Northeim 2009 - Thema: \"Licht\"\n\n\u00bb http://happyshooting.de/workshop\n\n- Vef\u00fcgbares Licht\n- Exkursion zur Burg Plesse\n- Strobist (mobiles Studio)\n- Produktstudio\n- Studio-Fotografie'});
	cvids_727703.push({vid:84510, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/386/503/38650301_640.jpg', title: 'Brooklyn Cookin\' - Be a Chef! Be a Food Photographer! And bring someone to share...', desc: 'http://tfttf.com/workshops - This workshop is for couples, or for friends who share different interests. One\'s a cook, one\'s a photographer. And finally they can share a great workshop experience together. Personal Chef Mark Tafoya (http://culinarymedianetwork.com) and photographer Chris Marquardt (http://chrismarquardt.com/) share their knowledge about their respective fields with the workshop participants to make them great Chefs and perfect Food Photographers. Extend your horizon and upgrade your knowledge.'});
	cvids_727703.push({vid:67693, thumb: 'http://i.ytimg.com/vi/ON9GjaKN-7I/0.jpg', title: 'tfttf309 - Portland Maine Studio Photography', desc: 'A look at the 2008 Portland, ME studio photography workshop. For more photography workshops go to www.discoverthetopfloor.com'});
	cvids_727703.push({vid:67684, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/767/877/7678777_640.jpg', title: 'Workshop Berlin 2009', desc: 'Video shot at the 2009 Berlin Happy Shooting photography workshop. More info about the workshops at http://www.chrismarquardt.com/workshops'});
	cvids_727703.push({vid:67685, thumb: 'http://70.media.vimeo.com/d1/5/36/76/63/thumbnail-36766377.jpg', title: 'Learning to See - 2008 Workshops', desc: 'www.discoverthetopfloor.com, new workshops in 2008 in the US and Germany. \n\n.. in the US:\n\u00bb Jul/31-Aug/3, San Francisco, CA - Street Photography \n\u00bb Aug 7-10, Nashville, TN - Event Photography \n\u00bb Aug 21-24, Ft. Collins, CO - Landscape Photography \n\u00bb Aug 28-31, Portland, ME - Studio and Portrait Photography\n\n.. and in Germany:\n\u00bb Mar 27-30, T\u00fcbingen, Germany \n\u00bb Jun 8-11, T\u00fcbingen, Germany \n\u00bb Jun 21-24, T\u00fcbingen, Germany \n\u00bb Oct 4-7, T\u00fcbingen, Germany'});
	cvids_727703.push({vid:67682, thumb: 'http://i.ytimg.com/vi/g1DTnTFp2Bo/0.jpg', title: 'Learning to See - Photography', desc: 'NEW 2008 workshops here: www.discoverthetopfloor.com These include workshops in the English and German language as well as workshops in Germany and in the USA.'});
	cvids_727703.push({vid:67683, thumb: 'http://i.ytimg.com/vi/Y6HKnegq0nQ/0.jpg', title: 'Chris Marquardt Photo Seminar Fort Collins, Colorado', desc: 'Video I shot on Day Two of the Chris Marquardt Photography Workshop Seminar being held at Fort Collins, Colorado.'});
	cvids_727703.push({vid:67686, thumb: 'http://images.vimeo.com/14/03/62/140362574/140362574_200.jpg', title: 'Ft. Collins Workshop 2008 (Alluvial Fans?)', desc: 'A day in Rocky Mountain National Park (near Estes Park) together with a crazy bunch of workshoppers. Obviously getting answers to questions also tends to raise new ones though. So what about those Alluvial Fans?!'});
	cvids_727703.push({vid:67689, thumb: 'http://images.vimeo.com/11/57/37/115737672/115737672_200x150.jpg', title: 'Chris and Geoff Smith live on stage!', desc: 'Chris and the Nashville workshop crew hang out at the Big Bang Bar with Geoff Smith. Watch Chris and Geoff rock out together on stage, and watch the workshop participants practice their low-light photography skills.\n\nhttp://www.tipsfromthetopfloor.com/'});
	cvids_727703.push({vid:67690, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/643/335/6433359_640.jpg', title: 'Alluvial Fans pt2 - Rocky Mountain Landscape Photography', desc: 'Remember the unanswered question from episode 310? Is it a bird? Is it altitude sickness? Finally the time has come to find out what Alluvial Fans are - in this video episode of Tips from the Top Floor. Also on today\&rsquo;s show: hear Chris talk about landscape photography from high vantage points.'});
	cvids_727703.push({vid:67691, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/221/288/22128846_640.jpg', title: 'HappyShooting Workshop T\u00fcbingen - Juli 2009 ', desc: 'Das Video erhebt keinen Anspruch auf Ernsthaftigkeit, es ist weder lehrreich noch interessant. Ihr seid gewarnt! \n\nBehind-the-Scenes-Video des HappyShooting-Workshops im Juli 2009 in T\u00fcbingen mit Boris Nienke und Chris Marquardt.'});
	cvids_727703.push({vid:67694, thumb: 'http://ts.vimeo.com.s3.amazonaws.com/171/594/17159402_640.jpg', title: 'Everest Trek 2009 Teaser (HD, 720p)', desc: 'A week in Kathmandu and two weeks of trekking to Mt. Everest Base Camp. Not only the world\u2019s highest photo workshop, but a truly life-changing event for all the participants. Get a first taste of what to expect over the next months.'});
	cvids_727703.push({vid:67704, thumb: 'http://i.ytimg.com/vi/L0mBTtPZ4Eo/0.jpg', title: 'I\'m a TWiT - \"Hi Leo!!!\" mix', desc: '\"I\'m a TWiT\" performed live by Geoff Smith at the Big Bang in Nashville. This version includes a special audience shoutout to Leo Laporte. Photos from the evening at flickr.com Links: www.thegeoffsmith.com www.tipsfromthetopfloor.com www.twit.tv ... chris chrismarquardt geoff geoffsmith laporte leo marquardt smith tfp tfttf twit '});
	cvids_727703.push({vid:67705, thumb: 'http://images.vimeo.com/14/67/11/146711449/146711449_200.jpg', title: 'hs101 - Photokina 2008 - Steven Sasson', desc: 'Chris speaks with Steven Sasson, inventor of the digital camera.'});
html+='<div class="v69resetstyle" id="thumb_727703" style="width:350px;height:278px;background-color:#FFFFFF;position:relative;">';
html+=vidthumbhtml_727703(curvid_727703);
html+='</div>';
	html +='<div class="v69resetstyle" style="height:26px;width:350px;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_727703();"><span style="color:#888;"></div>';
	html +='<img style="position:absolute;left:206px;top:0px;height:25px;z-index:5;cursor:pointer;margin:0;padding:0;" src="http://incdn.s3.amazonaws.com/yubbyp_v1/img/project/yubby/logo.png" onclick="location.href=vidplayurl_727703();">';
		html +='<img onclick="showmatrix_727703(0);" style="position:absolute;left:5px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/skins/emerce/iconmatrix24.png" title="Click here for related videos"  	id="pgmatrix_727703" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);"/>';
		html +='<img onclick="playprev_727703();" style="position:absolute;left:274px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/skins/emerce/iconprev24.png" title="go to the previous video in the channel"  		id="pgprev_727703" 	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstop_727703();" style="position:absolute;left:274px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/skins/emerce/iconstop24.png" title="stop"  													id="pgstop_727703"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	//html +='<img onclick="playstart_727703();" style="position:absolute;left:298px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/skins/emerce/iconplay24.png" title="play"  									id="pgplay_727703"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	// start is now a toggle
	html +='<img onclick="playstartstop_727703();" style="position:absolute;left:298px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/skins/emerce/iconplay24.png" title="play"  									id="pgplay_727703"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='<img onclick="playnext_727703();" style="position:absolute;left:322px;top:1px;cursor:pointer;margin:0;padding:0;" src="http://www.yubby.com//img/widget/solo/skins/emerce/iconnext24.png" title="go to the next video in the channel"  	id="pgnext_727703"	onmouseover="oMouEv(this,true);" onmouseout="oMouEv(this,false);" />';
	html +='</div>';
	html+='</div>';
	html+='<iframe src="http://www.yubby.com/util/ustat" width="0" height="0" border="no" frameborder="0"  style="border:0; visibility: hidden;"></iframe>';
	wgElm_727703.innerHTML=html;
	wgElm_727703.style.display = 'block';
		updAllButState(); 
}

function playnext_727703() {
	if (curvid_727703 < cvids_727703.length -1 ) {
		curvid_727703++;
		if (cpvideo_727703)
			playstart_727703();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_727703');
			thumbdiv.innerHTML=vidthumbhtml_727703(curvid_727703);
		}
	}
	updAllButState();
}
function playprev_727703() {
	if (curvid_727703 >0 ) {
		curvid_727703--;
		if (cpvideo_727703)
			playstart_727703();	// we are playing video
		else {
			var thumbdiv=document.getElementById('thumb_727703');
			thumbdiv.innerHTML=vidthumbhtml_727703(curvid_727703);
		}
	}
	updAllButState();
}

function playstart_727703(vnr) {
	closepopup_727703();	// close popup (if open)
	if (vnr==null)
		vnr=curvid_727703;
	else
		curvid_727703=vnr;	// set the current
	var thumbdiv=document.getElementById('thumb_727703');
	thumbdiv.style.background='#FFF url(http://incdn.s3.amazonaws.com/yubbyp_v1/img/spinner32.gif) no-repeat 145px 109px';
	thumbdiv.innerHTML='<iframe name="playerframe" class="playerframe" src="http://www.yubby.com/widget/playvideo/'+cvids_727703[vnr].vid+'/350/278/L/W" width="350" height="278" frameborder="0" scrolling="no" allowtransparency="true"></iframe>';
	cpvideo_727703=true;
	updAllButState();
}

function playstop_727703() {
	cpvideo_727703=false;
	var thumbdiv=document.getElementById('thumb_727703');
	thumbdiv.style.background='#FFF';
	thumbdiv.innerHTML=vidthumbhtml_727703(curvid_727703);
	updAllButState();
}

function playstartstop_727703() {
	if (cpvideo_727703) 
		playstop_727703();
	else
		playstart_727703();
}

function vidthumbhtml_727703(vnr) {
	var html='';
	html+='<div class="v69resetstyle" style="width:340px;height:213px; overflow:hidden; position:absolute;left:5px;top:5px;">';
html+='<img src="'+cvids_727703[vnr].thumb+'" style="width:340px;height:255px;top:-21px;position:relative;">';
html+='</div>';
html+='<div class="v69resetstyle" style="width:330px;height:50px;position:absolute;left:5px;top:218px;background-color:#AAA;padding:5px;"><div class="v69resetstyle" style="overflow:hidden;height:47px;width:330px;"><div class="v69resetstyle" style="margin: 2px 3px; white-space: nowrap; font-size:15px;line-height:15px;color:#555555;">'+htmlspecialchars(cvids_727703[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_727703[vnr].desc)+'">'+htmlspecialchars(cvids_727703[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_727703.length)+'</div></div></div>';
html+='<div class="v69resetstyle" style="position: absolute; width:72px;height:72px;top:103px;left:139px;z-index:200;cursor:pointer;cursor:hand;background:url(http://www.yubby.com/img/media_play72.png) no-repeat;" onClick="playstart_727703();"></div>';
	return html;
}

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

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

function vidplayurl_727703(vnr) {
	if (vnr==null)
		vnr=curvid_727703;
	return 'http://www.yubby.com/channel/player/11977/'+cvids_727703[vnr].vid;
}

//------------------------------------ button handlers --------------------------------------
function stButImg(oBut) {
	if (oBut.id == 'pgnext_727703') { 
		if (curvid_727703 >= cvids_727703.length -1 ) 
			oBut.src = imgNext_d.src;
		else
			oBut.src= butnext_mousein ? imgNext_ov.src : imgNext_ou.src;
	}
	if (oBut.id == 'pgprev_727703') { 
		if (curvid_727703==0 ) 
			oBut.src = imgPrev_d.src;
		else
			oBut.src= butprev_mousein ? imgPrev_ov.src : imgPrev_ou.src;
	}
	if (oBut.id == 'pgplay_727703') { 
		if (cpvideo_727703) 	// 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_727703') { 
	// 	if (!cpvideo_727703 ) 	// currently NOT playing
	// 		oBut.src = imgStop_ov.src;
	// 	else
	// 		oBut.src= butstop_mousein ? imgStop_ov.src : imgStop_ou.src;
	// }
	if (oBut.id == 'pgmatrix_727703') { 
		oBut.src= butmatrix_mousein ? imgMatrix_ov.src : imgMatrix_ou.src;
	}
}

function oMouEv(oBut,mouseIn) {
	
	if (oBut.id == 'pgnext_727703') 
		butnext_mousein=mouseIn;
	if (oBut.id == 'pgprev_727703') 
		butprev_mousein=mouseIn;
	if (oBut.id == 'pgplay_727703') 
		butplay_mousein=mouseIn;
	// if (oBut.id == 'pgstop_727703') 
	// 	butstop_mousein=mouseIn;
	if (oBut.id == 'pgmatrix_727703') 
		butmatrix_mousein=mouseIn;
	stButImg(oBut);
}

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

	el = document.getElementById('pgprev_727703');
	if (el) 
		stButImg(el); // update prevbutton state
		
	el = document.getElementById('pgplay_727703');
	if (el) 
		stButImg(el); // update prevbutton state
		
	// el = document.getElementById('pgstop_727703');
	// if (el) 
	// 	stButImg(el); // update prevbutton state

	el = document.getElementById('pgmatrix_727703');
	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_727703() {
  el = document.getElementById('ipopup_727703');
  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_727703(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_727703');
	var html='';
	for (var i=(matrix_curpg-1)*16,cv=0;i<cvids_727703.length && cv<16;i++) {
		html+=  vidthumbhtmlSmall_727703(i);
		cv++;
	}
	html+=  '<div class="v69resetstyle" style="clear:both;"></div>';
	if (matrix_npages>1) {
		html+=  '<div  class="v69resetstyle" style="margin:10px 0px">'+paginationhtml_727703(matrix_curpg, matrix_npages)+'</div>';
	}

	mxs.innerHTML=html;
}

function showmatrix_727703() {
	// close old one
	closepopup_727703();

	matrix_npages= Math.ceil(cvids_727703.length / 16);
	
	// open new
	var popup_div = document.createElement('div');
	var title='matrix';
	popup_div.id = "ipopup_727703";
	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_727703();" 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;">Workshops</div>';
	vid_html+=	'<div class="v69resetstyle" style="margin:30px 10px 10px 10px;" id="mxs_727703">';
	// for (var i=0,cv=0;i<cvids_727703.length && cv<16;i++) { 
	// 		vid_html+=  vidthumbhtmlSmall_727703(i);
	// 		cv++;
	// 	}
	// 	vid_html+=  '<div style="clear:both;"></div>';
	// 
	// 	if (matrix_npages>1) {
	// 		vid_html+=  '<div style="margin:10px 0px">'+paginationhtml_727703(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_727703(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 + '"';
}




