if (!Function.prototype.bindAsEventListener) {
	Function.prototype.bindAsEventListener = function() {
		var __method=this,args=arguments,object=args[0];
		return function(event) {var a = args;a[0]=(event || window.event);return __method.apply(object,a);}
	}
}
if (!Math.customRound) {
	Math.customRound = function (number, digits) {
		if (arguments.length == 1) var digits = 2;
		var d = Math.pow(10, digits);
		return parseInt(number * d) / d;
	}
}
if (typeof(IDTVVWP) == "undefined") {
	IDTVVWP = function () {this.initialize.apply(this, arguments);};
	IDTVVWP.prototype = {
		frame: null,
		initialize: function (ds) {

			this.ds = ds;
			this.element = document.getElementById('IDTVP_' + this.ds.id);
			if (!this.element && document.getElementsByClassName)
				try {
					this.element = document.getElementsByClassName ('idtv_247bfc7591')[0];
				} catch(e) {}
			if (!this.element) { alert ('The iDesktop.tv video wall is not not embedded properly!'); return;}
			this.element.innerHTML = '<div class="idtv_' + this.ds.id + '"><div class="idtv_inres"></div><div class="idtv_bb">' +
				'<div class="idtv_btn_prev"></div><div class="idtv_btn_next"></div><div class="idtv_bb_pages"></div></div></div>';
			var divs = this.element.getElementsByTagName('div');
			this.elementout = divs[0];
			this.elementin = divs[1];
			this.btn_prev = divs[3];
			this.btn_next = divs[4];
			this.pagers_area = divs[5];
			if (this.ds.data.error) {
				this.elementin.innerHTML = '<div style="text-align:center">' + this.ds.data.error + '</div>';
			} else {
				this.btn_prev.onclick = this.prevP.bindAsEventListener(this);
				this.btn_next.onclick = this.nextP.bindAsEventListener(this);
				if (this.ds.only_public) { // go trough ds.data.results and remove all private videos
					var newdata = new Array();
					for (var i = 0; i < this.ds.data.results.length; i ++)
						if (!this.ds.data.results[i].isprivate)
							newdata.push(this.ds.data.results[i]);
					this.ds.data.results = newdata;
				}
				this.results = new Array();
				var jsonArr = this.ds.data.results;
				this.page = 0; this.resc = jsonArr.length;
				this.maxpage = Math.ceil(this.resc/this.ds.pp) ;
				for (var i = 0, n = this.resc; i < n; i ++) {
					if (this.ds.only_public && jsonArr[i].isprivate) continue;
					var nr = document.createElement('div');
					nr.className = 'idtv_res';
					if ((i % this.ds.cols + Math.floor(i / this.ds.cols)) % 2) nr.className += ' alt';
					jsonArr[i].title_esc = jsonArr[i].title.replace(/"/g, "&quot;");// ";
					var title = jsonArr[i].title_esc + (this.ds.thumb_show_length?' (' + jsonArr[i].length_seconds + ')':'');
					var t = '<img src="' + jsonArr[i].thumbnail_url + '" alt="' + jsonArr[i].title_esc + '" title="' + title + '" />';
					if (this.ds.thumb_show_title || this.ds.thumb_show_author || this.ds.thumb_show_length || this.ds.thumb_show_rating || this.ds.thumb_show_description) {
						var at = '';
						if (this.ds.thumb_show_title)
							//at = '<a href="http://www.idesktop.tv/?watch=' + jsonArr[i].id + '" title="' + jsonArr[i].title + '" target="_blank">' + jsonArr[i].title + "</a>";
							at = '<span class="t">' + jsonArr[i].title + "</span>";
						if (this.ds.thumb_show_author) {
							at += '<span class="ah">' + (this.ds.thumb_show_labels?'<span class="lb">Author: </span>':'') + jsonArr[i].author + '</span>';
						}
						if (this.ds.thumb_show_length || this.ds.thumb_show_views) {
							at += '<span class="lv">';
							if (this.ds.thumb_show_length) at += (this.ds.thumb_show_labels?'<span class="lb">Length: </span>':'') +jsonArr[i].length_seconds;
							if (this.ds.thumb_show_length && this.ds.thumb_show_views) at += ' | ';
							if (this.ds.thumb_show_views) at += (this.ds.thumb_show_labels?'<span class="lb">Views: </span>':'') + this.formatCommasInt(jsonArr[i].view_count);
							at += '</span>';
						}
						if (this.ds.thumb_show_rating)
							at += '<span class="r">' + (this.ds.thumb_show_labels?'<span class="lb">Rating: </span>':'') + Math.customRound(jsonArr[i].rating_avg, 1) + "</span>";
						if (this.ds.thumb_show_description) {
							at += '<span class="d">' + jsonArr[i].description + "</span>";
						}
						t = t + '<div class="out" title="' + title + '"><div class="in">' + at + '</div></div>';
					}
					if (this.ds.mark_private && jsonArr[i].isprivate)
						nr.innerHTML += '<div class="private_mark">PRIVATE</div>';
					nr.innerHTML += t;
					this.elementin.appendChild(nr);
					nr.style.display = 'none';
					this.results.push(nr);
					nr.onclick = this.onresclick.bindAsEventListener(this, i);
				}
				this.showRes();
			}
			var f = document.createElement('iframe');
			f.src = "http://www.idesktop.tv/embed/247bfc7591/utr.html?r=" + document.location;
			f.style.cssText = 'width:0;height:0;border:none;';
			f.frameborder = f.frameBorder = f.border = "0";
			this.element.appendChild(f);
		},
		onresclick: function (event,i) {
			var elem = event.target || event.srcElement;
			if (elem.tagName == 'A') return;
			if (this.ds.plpl == "newwin") {
				var loaded = false;
				if (this.frw) {
					try {
						this.frw.Player.playlist.selectItem(i);
						this.frw.Player.playlist.playSelected();
						loaded = true;
					} catch(e) {
						loaded = false;
					}
				}
				if (!loaded) {
					this.frw = window.open ('http://'+this.ds.chost+'/embed/'+this.ds.id+'/play.html?vid='+this.ds.data.results[i].id, 'idtvwin', 'width=' + this.ds.plw + ',height=' + this.ds.plh);
				}
				return;
			}
			if (!this.frame) {
				this.plclbtn = document.createElement('img');
				this.plclbtn.src = this.ds.clbtnsrc;
				this.plclbtn.onclick = this.closeplr.bindAsEventListener(this);
				this.plclbtn.className = 'idtvp_clbtn';
				this.frameholder = document.createElement('div');
				this.frameholder.id = 'idtvpfh' + this.ds.id;
				this.frame = document.createElement('iframe');
				this.frame.id = 'idtvpf' + this.ds.id;
				this.frame.frameborder = this.frame.frameBorder = this.frame.border = "0";
				try {
					document.body.appendChild(this.frameholder);
					this.ba = true;
				} catch (e) {
					this.elementout.appendChild(this.frameholder);
					this.ba = false;
				}
				this.frameholder.appendChild(this.plclbtn);

			}
			/*this.frameholder.style.top = this.results[i].offsetTop + "px";
			this.frameholder.style.left = this.results[i].offsetLeft + this.results[i].offsetWidth + "px";*/
			var scrlX = (window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft);
		    var scrlY = (window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop);
		    var viewportW = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth ;
		    var viewportH = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
		    var element = this.elementout;
			var elFixedX = 0, elFixedY = 0;
		    do {
		    	elFixedY += element.offsetTop  || 0; elFixedX += element.offsetLeft || 0; element = element.offsetParent || element.parentNode;
		    } while (element);
		    var nx = 0, ny =0;
			switch (this.ds.plpl) {
				case "center":
					nx = scrlX + ((viewportW - this.ds.plw) / 2) - elFixedX;
					ny = scrlY + ((viewportH - this.ds.plh) / 2) - elFixedY;
					break;
				case "left":
					nx = this.results[i].offsetLeft - this.ds.plw;
					ny = this.results[i].offsetTop - this.ds.pldelta;
					break;
				case "right":
					nx = this.results[i].offsetLeft + this.results[i].offsetWidth;
					ny = this.results[i].offsetTop - this.ds.pldelta;
					break;
				case "top":
					nx = this.results[i].offsetLeft - this.ds.pldelta;
					ny = this.results[i].offsetTop - this.ds.plh;
					break;
				case "bottom":
					nx = this.results[i].offsetLeft - this.ds.pldelta;
					ny = this.results[i].offsetTop + this.results[i].offsetHeight;
					break;
				default: return;
			}
			if (this.ba) {
				nx += elFixedX; ny += elFixedY;
				if (nx < 0) nx = 0;
				if (ny < 0) ny = 0;
			} else {
				if (this.ds.plpl != "center") { // some checks if top/left it is out of the viewport
					var rx = nx + elFixedX, ry = ny + elFixedY;
					if (rx < 0) nx -= rx;
					if (ry < 0) ny -= ry;
				}
			}
			this.frameholder.style.left = nx + "px";
			this.frameholder.style.top = ny + "px";

			this.frameholder.style.display = 'block';
			var loaded = false;
			try {
				if (this.frame.contentWindow && this.frame.contentWindow.Player) { // detect if script access is allowed
					this.frame.contentWindow.Player.playlist.selectItem(i);
					this.frame.contentWindow.Player.playlist.playSelected();
					loaded = true;
				}
			} catch (e) {};
			if (!loaded) {
				if (this.frame.parentNode == this.frameholder) this.frameholder.removeChild(this.frame);
				this.frame.src = 'http://'+this.ds.chost+'/embed/'+this.ds.id+'/play.html?vid='+this.ds.data.results[i].id;
				this.frameholder.appendChild(this.frame);
			}
		},
		closeplr: function (event) { this.frameholder.style.display='none'; this.frameholder.removeChild(this.frame); },
		showRes: function () {
			if (this.results.length == 0)
				this.pagers_area.innerHTML = 'no results';
			else {
				var s = this.page * this.ds.pp, e = Math.min (s + this.ds.pp, this.results.length) - 1;
				for (var i = 0, n = this.results.length; i < n; i ++)
					this.results[i].style.display =  (i < s || i > e ? 'none' : 'block');
				this.pagers_area.innerHTML = (s+1) + ' - ' + (e+1) + ' (' + this.results.length + ')';
			}
		},
		nextP: function () { if (this.page < this.maxpage - 1) { this.page ++; this.showRes(); } },
		prevP: function () { if (this.page > 0) { this.page --; this.showRes(); } },
		formatCommasInt: function (val) {
			var s = new String(val);
			var rgx = /(\d+)(\d{3})/;
			while (rgx.test(s)) s = s.replace(rgx, '$1' + ',' + '$2');
			return s;
		}
	}
}

var IDTVLBDataSource247bfc7591 = {
	id: '247bfc7591', chost:'www.idesktop.tv',clbtnsrc:'http://www.idesktop.tv/images/player_icons/close.gif',
	width: 607, height: 530, pp: 5,
	rows: 5, cols: 1,
	plw: 600, plh: 500,
	createP: function () {this.p = new IDTVVWP(this); },
	plpl: 'center',
	only_public:true,mark_private:true,
	thumb_show_title : false, thumb_show_author : false,
	thumb_show_rating : false, thumb_show_views: false,
	thumb_show_length : false, thumb_show_description : true,
	thumb_show_labels : true,
	thumbnail_text: 'R',
	pldelta: 0,
		data: {results: [{id:'JHwDBrB-LJk',title:'www.procompelectronics.com Motorsport Big Block Chev Engine Run in and Dyno Comparision',author:'PROCOMPMOTORSPORT',real_length:'220',length_seconds:'03:40',rating_avg:'',rating_count:'',view_count:'302',description:'www.procompelectronics.com Procomp Electronics / MotorsportBig Block Chev Engine Run in and Dyno Comparing Procomp 850 Outlaw Carby (671 HP) with Holley 750 HP and Holley 850 HP Carbys.',tags:'Procomp, Electronics, Motorsport, Big, Block, Chev, Engine, Run, in, and, Dyno, Comparing, 850, Outlaw, Carby, with, Holley, 750, HP, Carbys.',thumbnail_url:'http://i.ytimg.com/vi/JHwDBrB-LJk/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/JHwDBrB-LJk/responses',ord:''},{id:'6uFfeysMhiE',title:'DAVID CHAPMAN\'S 383 CHEV RUN IN PROCOMP ELECTRONICS / MOTORSPORT',author:'PROCOMPMOTORSPORT',real_length:'56',length_seconds:'00:56',rating_avg:'',rating_count:'',view_count:'29',description:'DAVID CHAPMAN\'S 383 CHEV RUN IN PROCOMP ELECTRONICS / MOTORSPORT',tags:'david, chapman, 383, chev, pro, procomp, elec, electronics, motor, sport, motorsport',thumbnail_url:'http://i.ytimg.com/vi/6uFfeysMhiE/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/6uFfeysMhiE/responses',ord:'1'},{id:'TYKGBTqUqJs',title:'John\'s 383 Solid Cam',author:'PROCOMPMOTORSPORT',real_length:'55',length_seconds:'00:55',rating_avg:'5.0',rating_count:'1',view_count:'38',description:'John\'s 383 Solid Cam',tags:'john\'s, john, 383, Solid, Cam',thumbnail_url:'http://i.ytimg.com/vi/TYKGBTqUqJs/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/TYKGBTqUqJs/responses',ord:'2'},{id:'UXEcjZC693Q',title:'FORD 420ci STROKER WINDSOR - PROCOMP ELECTRONICS / MOTORSPORT',author:'PROCOMPMOTORSPORT',real_length:'145',length_seconds:'02:25',rating_avg:'',rating_count:'',view_count:'301',description:'www.procompelectronics.com Procomp Electronics / MotorsportFORD 420ci STROKER WINDSOR CRATE MOTOR',tags:'Procomp, Electronics, Motorsport',thumbnail_url:'http://i.ytimg.com/vi/UXEcjZC693Q/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/UXEcjZC693Q/related',ord:'3'},{id:'fL1JIM5APBk',title:'Holden Gilmer Kit w/Power Steering & Air Conditioning Procomp Electronics / Motorsport',author:'PROCOMPMOTORSPORT',real_length:'76',length_seconds:'01:16',rating_avg:'',rating_count:'',view_count:'2451',description:'www.procompelectronics.com Procomp Electronics / MotorsportHolden Gilmer Kit w/Power Steering & Air Conditioning',tags:'Procomp, Electronics, Motorsport, Holden, Gilmer, Kit, w/Power, Steering, Air, Conditioning',thumbnail_url:'http://i.ytimg.com/vi/fL1JIM5APBk/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/fL1JIM5APBk/related',ord:'4'},{id:'_TCaaza1KOc',title:'Holden 355 Street General Giveaway www.procompelectronics.com Procomp Electronics / Motorsport',author:'PROCOMPMOTORSPORT',real_length:'37',length_seconds:'00:37',rating_avg:'',rating_count:'',view_count:'536',description:'www.procompelectronics.com Procomp Electronics / Motorsport Holden 355 Street General Giveaway',tags:'Procomp, Electronics, Motorsport, Holden, Street, General, Giveaway',thumbnail_url:'http://i.ytimg.com/vi/_TCaaza1KOc/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/_TCaaza1KOc/related',ord:'5'},{id:'xibFLx2t7iY',title:'FORD 302 347 Windsor Stroker Motor Procomp Electronics / Motorsport',author:'PROCOMPMOTORSPORT',real_length:'162',length_seconds:'02:42',rating_avg:'',rating_count:'',view_count:'977',description:'www.procompelectronics.com Procomp Electronics / MotorsportProcomp Motorsport\'s 302 347 Windsor stroker engine. Quick run-down on the content and a throttle response test. Enjoy!',tags:'Procomp, Electronics, Motorsport, windsor, stroker, sydney, speed, ford, drag, racing, street, machine, performance, hot, rod, muscle, car',thumbnail_url:'http://i.ytimg.com/vi/xibFLx2t7iY/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/xibFLx2t7iY/related',ord:'6'},{id:'wkPCTfEgd4A',title:'CHEV 350 TO 383 ATR CRATE MOTOR RUN IN Procomp Electronics / Motorsport',author:'PROCOMPMOTORSPORT',real_length:'70',length_seconds:'01:10',rating_avg:'',rating_count:'',view_count:'3777',description:'www.procompelectronics.com Procomp Electronics / MotorsportCHEV 350 TO 383 ATR CRATE MOTOR RUN IN',tags:'Procomp, Electronics, Motorsport, CHEV, 350, TO, 383, ATR, CRATE, MOTOR, RUN, IN',thumbnail_url:'http://i.ytimg.com/vi/wkPCTfEgd4A/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/wkPCTfEgd4A/related',ord:'7'},{id:'bRMg-6ktmps',title:'Chev 350 to 383 Crate Motor Procomp Electronics / Motorsport Customer AT Racing World',author:'PROCOMPMOTORSPORT',real_length:'123',length_seconds:'02:03',rating_avg:'',rating_count:'',view_count:'359',description:'www.procompelectronics.com Procomp Electronics / MotorsportChevy 383 Crate Motor Run In - Procomp Electronics / Motorsport Customer Engine Run in: AT Racing World',tags:'Procomp, Electronics, Motorsport, Chevy, 383, Crate, Motor, Run, In, Customer, Engine, in:, AT, Racing, World',thumbnail_url:'http://i.ytimg.com/vi/bRMg-6ktmps/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/bRMg-6ktmps/related',ord:'8'},{id:'q3N3ixcQhpI',title:'Big Block 454 to 502 Crate Motor Procomp Electronics / Motorsport',author:'PROCOMPMOTORSPORT',real_length:'33',length_seconds:'00:33',rating_avg:'',rating_count:'',view_count:'949',description:'www.procompelectronics.com Procomp Electronics / MotorsportBig Block 454 to 502 Crate Motor',tags:'Procomp, Electronics, Motorsport, Big, Block, 454, to, 502, Crate, Motor',thumbnail_url:'http://i.ytimg.com/vi/q3N3ixcQhpI/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/q3N3ixcQhpI/related',ord:'9'},{id:'rQfWxAvqVpY',title:'Sydney Speed Supplies spin a Procomp Motorsport / Electronics 434 Windsor Crate Motor.',author:'PROCOMPMOTORSPORT',real_length:'60',length_seconds:'01:00',rating_avg:'',rating_count:'',view_count:'755',description:'Sydney Speed Supplies spin a Procomp Motorsport / Electronics 434 Windsor Crate Motor.',tags:'Sydney, Speed, Supplies, spin, Procomp, Motorsport, Electronics, 434, Windsor, Crate, Motor.',thumbnail_url:'http://i.ytimg.com/vi/rQfWxAvqVpY/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/rQfWxAvqVpY/related',ord:'10'},{id:'Ebf3-6CF6ss',title:'RORY\'S 383 CHEV PROCOMP SYDNEY SPEED SUPPLIES CRATE ENGINE RUN IN',author:'PROCOMPMOTORSPORT',real_length:'108',length_seconds:'01:48',rating_avg:'1.0',rating_count:'1',view_count:'3307',description:'Video of Rory\'s 383 chev crate engine, receiving fine tuning before delivery. Fully equipped with Procomp stroker kit, CNC ported alloy heads, water pump, gilmer kit, valve covers, manifold, roller rockers, procomp race 750 carby, hv sump, 7000 series distributor, starter motor, radiator etc, etc.',tags:'Sydney, Speed, Supplies, Procomp, SSS, 383, Chev, Stroker',thumbnail_url:'http://i.ytimg.com/vi/Ebf3-6CF6ss/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/Ebf3-6CF6ss/related',ord:'11'},{id:'Twm-PFTFmy4',title:'Sydney Speed Supplies run in a Procomp Motorsport / Electronics 383 Chevy Blown Motor',author:'PROCOMPMOTORSPORT',real_length:'138',length_seconds:'02:18',rating_avg:'',rating_count:'',view_count:'8588',description:'Sydney Speed Supplies run in a Procomp Motorsport / Electronics 383 Chevy Blown Motor',tags:'Sydney, Speed, Supplies, run, in, Procomp, Motorsport, Electronics, 383, Chevy, Blown, Motor',thumbnail_url:'http://i.ytimg.com/vi/Twm-PFTFmy4/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/Twm-PFTFmy4/related',ord:'12'},{id:'8MOazgwM7vU',title:'Sydney Speed Supplies run in a Procomp Motorsport / Electronics 383 Blown Small Block Chev Motor.',author:'PROCOMPMOTORSPORT',real_length:'55',length_seconds:'00:55',rating_avg:'',rating_count:'',view_count:'1634',description:'Sydney Speed Supplies run in a Procomp Motorsport / Electronics 383 Blown Small Block Chev Motor.',tags:'Sydney, Speed, Supplies, run, in, Procomp, Motorsport, Electronics, 383, Blown, Small, Block, Chev, Motor',thumbnail_url:'http://i.ytimg.com/vi/8MOazgwM7vU/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/8MOazgwM7vU/related',ord:'13'},{id:'F1yFqc5087Q',title:'Sydney Speed Supplies spin a Procomp Motorsport / Electronics 355 Holden Crate Motor.',author:'PROCOMPMOTORSPORT',real_length:'38',length_seconds:'00:38',rating_avg:'',rating_count:'',view_count:'14624',description:'Sydney Speed Supplies spin a Procomp Motorsport / Electronics 355 Holden Crate Motor.',tags:'Sydney, Speed, Supplies, spin, Procomp, Motorsport, Electronics, 355, Holden, Crate, Motor.',thumbnail_url:'http://i.ytimg.com/vi/F1yFqc5087Q/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/F1yFqc5087Q/related',ord:'14'},{id:'jgh3KOOZ8UE',title:'FORD 383ci STROKER CLEVELAND - PROCOMP ELECTRONICS / MOTORSPORT',author:'PROCOMPMOTORSPORT',real_length:'137',length_seconds:'02:17',rating_avg:'',rating_count:'',view_count:'1',description:'www.procompelectronics.com Procomp Electronics / MotorsportFORD 383ci STROKER CLEVELAND CRATE MOTOR',tags:'www.procompelectronics.com, Procomp, Electronics, Motorsport, FORD, 383ci, STROKER, CLEVELAND, CRATE, MOTOR',thumbnail_url:'http://i.ytimg.com/vi/jgh3KOOZ8UE/2.jpg',upload_time:'0',comment_count:'0',url:'http://gdata.youtube.com/feeds/api/videos/jgh3KOOZ8UE/responses',ord:'15'}]},
		initialize: function () {this.createP()}

};
var IDTVLBDataSource247bfc7591IF = function () {IDTVLBDataSource247bfc7591.initialize.apply(IDTVLBDataSource247bfc7591, []);};
if (document.getElementById('IDTVP_247bfc7591'))
	IDTVLBDataSource247bfc7591IF ();
else if (window.addEventListener)
	window.addEventListener("load", IDTVLBDataSource247bfc7591IF, true);
else
	window.attachEvent("onload", IDTVLBDataSource247bfc7591IF);