var shortUrlPrefix = '[gumballstyle.rezpondr.com]';

function playerReady(obj) { player.playerReady(); };
function playerStateListener(state) { playlist.stateListener(state); };

var playlist = {
	items: new Array(),
	current: new Object(),
	currentIndex: 0,
	types:  {
		possible: new Array('12secondes', 'blip', 'phreadz', 'qik'),
		impossible: new Array('bambuser', 'howcast', 'revver', 'seesmic', 'viddler', 'vimeo', 'youtube')
	},
	init: function() {
		this.load();
		$('.autoplayTrigger').click(function() {
			playlist.pick(playlist.currentIndex);
		});
		$('#playlistService').change(function() {
			playlist.load();
		});
	},
	load: function() {
		$.ajax({
	        type:   	'post',
	        url:    	'/index/playlist',
			dataType: 	'json',
			data: 		'serviceType=' + $('#playlistService').val(),
	        success: 	function(response) {
				if (!checkServerResponse(response)) { return; }
				playlist.items = response.result.items;
				playlist.build(response.result.items);
			}
		});
	},
	build: function(items) {
		$('#playlist').empty();
		$.each(items, function(i, v) {
			var li = $('<li />').appendTo('#playlist');
			if (jQuery.inArray(v.type, playlist.types.impossible) != -1) {
				li.addClass('impossible');
			}
			var img = $('<img alt="" />').attr({
				src: v.pData,
				title: v.title
			}).click(function() {
				playlist.pick(i);
			}).appendTo(li);
		});
	},
	pick: function(index) {
		$('ul.playlist li').removeClass('active');
		$($('ul.playlist li')[index]).addClass('active');
		
		item = this.items[index];
		this.current = this.items[index];
		this.currentIndex = index;
		this.playItem(item);
	},
	playItem: function(item) {
		if (!item.mData) {
			item.mData = item.mData ? item.mData : item.pData;
		}
		if (jQuery.inArray(item.type, playlist.types.impossible) != -1) {
			if (item.type == 'howcast') {
				player.playHowcast(item.mData);
			} else if (item.type == 'bambuser') {
				player.playBambuser(item.guid);
			} else if (item.type == 'revver') {
				player.playRevver(item.mData);
			} else if (item.type == 'seesmic') {
				var tmp = item.link.split('/video/');
				player.playSeesmic(tmp[1]);
			} else if (item.type == 'viddler') {
				player.playViddler(item.mData);
			} else if (item.type == 'youtube') {
				player.play(item.link);
			} else if (item.type == 'vimeo') {
				player.playVimeo(item.mData);	
			} 
		} else {
			if (item.type == 'twitpic') {
				item.mData = 'http://twitpic.com/show/full/' + item.guid;
			} else if (item.type == 'flickr') {
				item.mData = item.pData.substring(0, item.pData.length - 6) + item.pData.substring(item.pData.length - 4);
			}
			player.play(item.mData);
		}
	},
	stateListener: function(state) {
		// play next one
		if (state.newstate == 'COMPLETED') {
			if ($('#playlistRandom')[0].checked) {
				index = Math.floor(Math.random() * this.items.length);
				this.pick(index);
			} else {
				if (this.items[this.currentIndex + 1]) {
					this.currentIndex++;
					this.pick(this.currentIndex);
				} else {
					alert('Seems you have played all items in playlist');
					return;
				}
			}
		}
	},
}
var player = {
	playerWrapperId: 	 'video',
	playerPlaceholderId: 'videoPlaceholder',
	playerId: 			 'rezpondaPlayer',
	height: 			  276,
	width: 				  320,
	instance:   		  new Object(),
	init: function() {
		if (livestream && livestream != 'default') {
			this.remove();
	        var attributes = {
	            id: 				this.playerId,
	            name: 				this.playerId
	        };
	        swfobject.embedSWF(livestream.url, this.playerPlaceholderId, this.width, this.height, '9.0.115', false, livestream.flashvars, livestream.params, attributes);
		} else {
			this.play('');
		}
	},
	playerReady: function() {
		this.instance = document.getElementById(player.playerId);
		this.instance.addModelListener('STATE', 'playerStateListener');
		
		if (directMedia.items) {
			directMedia.items[0].type = directMedia.type;
			playlist.playItem(directMedia.items[0]);
			directMedia.items = false;
		}
			
	},
	// Common format
	play: function(theFile) {
		this.remove();
		
		var flashvars = {
        	file: 				theFile,
            autostart: 			'true',
			backcolor:			'0x555555',
			frontcolor:			'0xDFF8FB',
			lightcolor:			'0x87c3ce',
			screencolor:		'0x222222',
			stretching: 		'exactfit'
        };
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always'
        };
        var attributes = {
            id: 				this.playerId,
            name: 				this.playerId
        };
        swfobject.embedSWF('/mediaplayer-4.1.60/player.swf', this.playerPlaceholderId, this.width, this.height, '9.0.115', false, flashvars, params, attributes);
	},
	// Vimeo
	playVimeo: function(theFile) {
		this.remove();
		
		var flashvars = {
        	file: 				theFile,
            autostart: 			'true',
        };
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always'
        };
        var attributes = {
            id: 				this.playerId,
            name: 				this.playerId
        };
		swfobject.embedSWF(theFile, this.playerPlaceholderId, this.width, this.height -1, '9.0.115', false, flashvars, params, attributes);

	},
	// Seesmic
	playSeesmic: function(videoId) {
		this.remove();
		
		var flashvars = {
        	video: 				videoId,
            version: 			'threadedplayer',
        };
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always',
			bgcolor:  			'#000000',
			movie: 				'http://seesmic.com/embeds/wrapper.swf'
        };
        var attributes = {
            id: 				this.playerId,
            name: 				this.playerId
        };
		swfobject.embedSWF('http://seesmic.com/embeds/wrapper.swf', this.playerPlaceholderId, this.width, this.height - 1, '9.0.115', false, flashvars, params, attributes);
	},
	//Viddler
	playViddler: function(playerUrl) {
		this.remove();

		var flashvars = {};
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always',
			movie: 				playerUrl
        };
        var attributes = {
            id: 				this.playerId,
            name: 				this.playerId
        };
		swfobject.embedSWF(playerUrl, this.playerPlaceholderId, this.width, this.height - 1, '9.0.115', false, flashvars, params, attributes);
	},
	// Revver
	playRevver: function(theFile) {
		this.remove();
		
		var flashvars = {
        	file: 				theFile,
            autostart: 			'true',
        };
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always'
        };
        var attributes = {
            id: 				this.playerId,
            name: 				this.playerId
        };
		swfobject.embedSWF(theFile, this.playerPlaceholderId, this.width, this.height -1, '9.0.115', false, flashvars, params, attributes);
	},
	// Howcast
	playHowcast: function(playerUrl) {
		this.remove();

		var flashvars = {};
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always',
			movie: 				playerUrl
        };
        var attributes = {
            id: 				this.playerId,
            name: 				this.playerId
        };
		swfobject.embedSWF(playerUrl, this.playerPlaceholderId, this.width, this.height - 1, '9.0.115', false, flashvars, params, attributes);
	},
	// Bambuser
	playBambuser: function(id) {
		this.remove();

		var flashvars = {
			vid: 				id,
			autostart:  		'yes'
		};
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always',
			movie: 				'http://bambuser.com/r/player.swf'
        };
        var attributes = {
            id: 				this.playerId,
            name: 				this.playerId
        };
		swfobject.embedSWF('http://bambuser.com/r/player.swf', this.playerPlaceholderId, this.width, this.height - 1, '9.0.115', false, flashvars, params, attributes);
	},
	remove: function() {
		swfobject.removeSWF(this.playerId);
        var tmp = document.getElementById(this.playerWrapperId);
        if (tmp) { tmp.innerHTML = '<div id=' + this.playerPlaceholderId + '></div>'; }
		scroll(0, 0);
	},
};

var rez = {
	loggedIn: false,
	data: new Object(),
	resizing: false,
	init: function() {
		this.setupRowsLimit();
		/*$(window).resize(function() {
			rez.setupRowsLimitLivetime();
		});*/
		
		rez.timer();
		rez.initControlTabs();
		$.each($('select[service]'), function(i, s) {
			$(this).change(function() {
				rez.loadService($(this).attr('service'), { type: 'customService', service: $(this).val() });
			});
		});
		playlist.init();
		
		$('a#togglecontact').click(function() {
	  		$('#footerz').toggle(400);
	  		return false;
		});
		
		var flashvars = {
			dataFile: 		"http://me.dm/flash/mono/charity.xml",
			kenBurnsMode: 	"random",
			showVersionInfo: "false",
			showLogo: 		"false",
			showControls: 	"false",
			showImageInfo: 	"never"
		};
        var params = {
            allowfullscreen: 	'true',
            allowscriptaccess: 	'always',
			movie: 				'http://me.dm/flash/mono/dm.swf'
        };
        var attributes = {
            id: 				"slideshow",
            name: 				"slideshow"
        };
		swfobject.embedSWF('http://me.dm/flash/mono/dm.swf', "slideshow", "358", "201", '9.0.115', false, flashvars, params, attributes);
		
	},
	setupRowsLimitLivetime: function() {
		if (this.resizing == true) { return; }
		this.resizing == true;
		setTimeout(function() {
			rez.setupRowsLimit();
			rez.resizing = false;
		}, 500);
	},
	setupRowsLimit: function() {
		this.resizing = true;
		/*var rows = Math.floor((parseInt($(window).width()) - 200) / 70)
		for (var type in rez.services) {
			if (type != 'twitter') {
				rez.services[type].rows = rows;
			}
		}*/
		rez.checkState(true);
	},
	timer: function() {
		setTimeout(function() {
			rez.checkState(false);
			rez.timer();
		}, 30000);
	},
	initControlTabs: function() {
		$('.tabControls a').click(function() {
			$('.rightTabs > div').hide();
			$($(this).attr('href')).fadeIn();
			return false;
		});
	},
	checkState: function(force) {
		var force = force == true ? 'force=true' : '';
		var params = '';
		//alert(rez.services['flickr'].rows);
		for (var type in rez.services) {
			
			params += '&params[' + type + '][limit]=' + rez.services[type].rows;
			params += '&params[' + type + '][page]=' + rez.services[type].page;
			params += '&params[' + type + '][service]=' + rez.services[type].service;
		}
		
		$.ajax({
	        type:   	'get',
	        url:    	'/services/state?' + force,
			dataType: 	'json',
			data: 		params,
	        success: 	function(response) {
				if (!checkServerResponse(response)) { return; }
				for (var type in response.result.services) {
					if (response.result.services[type].items) {
						rez.customRowBuild(type, { type: 'init' }, response.result.services[type]);
						rez.data[type] = response.result.services[type].items;
					}
				}
				
				if (response.result.streamPlayer) {
					livestream = response.result.streamPlayer;
					player.init();
				}
			}
		});
	},
	loadService: function(type, argObj) {
		if (argObj.type == 'forward') {
			rez.services[type].page++;
		} else if (argObj.type == 'backward') {
			if (rez.services[type].page != 0) rez.services[type].page--;
			else return;
		} else if (argObj.rows == 'more') {
			rez.services[type].rows += 9;
		} else if (argObj.rows == 'less') {
			if (rez.services[type].rows != 9) rez.services[type].rows -= 9;
			else return;
		} else if (argObj.type == 'customService') {
			rez.services[type].page = 0;
			rez.services[type].service = argObj.service;
		} else return;

		var params = '&params[' + type + '][limit]=' + rez.services[type].rows;
		params += '&params[' + type + '][page]=' + rez.services[type].page;
		params += '&params[' + type + '][service]=' + rez.services[type].service;
		
		$.ajax({
	        type:   	'get',
	        url:    	'/services/load-items/type/' + type,
			dataType: 	'json',
			data:   	params,
	        success: 	function(response) {
				if (!checkServerResponse(response)) { return; }
				if (response.result[type] && response.result[type].items) {
					rez.customRowBuild(type, argObj, response.result[type]);
					rez.data[type] = response.result[type].items;
				}
			}
		});
	},
	customRowBuild: function(type, argObj, data) {
		if (!rez.services[type]) return;
		
		if (argObj.type == 'init')
			params = { opacity: 0 };
		else if (argObj.type == 'forward')
			params = { opacity: 0, left: "+=900px" };
		else if (argObj.type == 'backward')
			params = { opacity: 0, left: "-=900px" };
			
		var cId = '#' + type + 'Res';
		$(cId).animate(params, 500, null, function() {
			$(cId).empty();
			
			// Building selector
			$('select[service="' + type + '"]').empty();
			
			if (data.options.length != 1) {
				$('select[service="' + type + '"]').show();
				$('<option />').val('').html('Feed options').appendTo('select[service="' + type + '"]');
				$.each(data.options, function(i, o) {
					var opt = $('<option />').val(o.id).html(o.alias).appendTo('select[service="' + type + '"]');
					if (o.id == rez.services[type].service) opt.attr('selected', 'selected');
				});
			} else {
				$('select[service="' + type + '"]').hide();
			}
			
			// Building servive row
			rez.services[type].build(data.items);
			
			params.opacity = 1;
			if (argObj.type == 'forward') {
				$(cId).css('left', '-900px');
			} else if (argObj.type == 'backward') {
				$(cId).css('left', '900px');
			}
				
			$(cId).animate(params, 500, null, function() {});
			lightbox.initTt();
			picturePreview.init();
		});
	},
	rowBuildVideo: function(type, data, playCallback) {
		var div = $('<li />').appendTo('#' + type + 'Res');
		if (data.isHidden == 1) div.addClass('hidden'); 
		//var time = $('<div class="time" />').appendTo(div).html(data.pubDate.replace('ago', ''));

		/*  <li><a href="#"><img src="/themes/gumballstyle/images/slide_thumbnail.jpg" alt="" /></a></li>
		
		
		var a = $('<a href="javascript:;" class="tt"/>').appendTo(div).attr({
			s: data.serviceId,
			i: data.id,
			t: type
		});
		var img = $('<img class="plus" src="/themes/medm/images/plus.gif" alt="" />').appendTo(a);
		var a = $('<div class="box-content" />').appendTo(div);
		*/
		var a = $('<a href="#" />').appendTo(div);
		var img = $('<img alt="thumbnail" class="rowThumbnail"/>').appendTo(a).attr({
			src: data.pData,
			title: data.title
		}).click(playCallback);
	},
	rowBuildPhoto: function(type, data) {
		//<li><a href="#"><img src="/themes/gumballstyle/images/slide_thumbnail.jpg" alt="" /></a></li>
		var div = $('<li />').appendTo('#' + type + 'Res');
		if (data.isHidden == 1) div.addClass('hidden');
		//var time = $('<div class="time" />').appendTo(div).html(data.pubDate.replace('ago', ''));

		/*
		var a = $('<a href="javascript:;" class="tt"/>').appendTo(div).attr({
			s: data.serviceId,
			i: data.id,
			t: type
		});
		var img = $('<img class="plus" src="/themes/medm/images/plus.gif" alt="" />').appendTo(a);
		

		var content = $('<div class="box-content" />').appendTo(div);
		*/
		var a = $('<a class="picturePreview" />').appendTo(div).attr({
			href: data.pData,
			rel: data.pData,
			title: data.title
		});
		var img = $('<img alt="thumbnail" class="rowThumbnail"/>').appendTo(a).attr({
			src: data.pData,
			title: data.title
		});
	},
	showFav: function(item) {
		var serviceName = item.type;
		var mData = item.url;
		var link = item.link;
		var serviceId = item.serviceId;
		var id = item.id;
		
		
		switch(serviceName)
		{
			case 'flickr':
				player.play(item.url);
				break;
			default:
			if (jQuery.inArray(serviceName, playlist.types.impossible) != -1) {
				if (serviceName == 'howcast') {
					player.playHowcast(mData);
				} else if (serviceName == 'bambuser') {
					player.playBambuser(item.guid);
				} else if (serviceName == 'revver') {
					player.playRevver(mData);
				} else if (serviceName == 'seesmic') {
					var tmp = link.split('/video/');
					player.playSeesmic(tmp[1]);
				} else if (serviceName == 'viddler') {
					player.playViddler(mData);
				} else if (serviceName == 'youtube') {
					player.playYoutube(mData);
				} else if (serviceName == 'vimeo') {
					player.playVimeo(mData);	
				} 
			} else {
				player.play(mData);
			}
			break;
		}
	}
};
rez.services = {};

rez.services.flickr = {
	page: 0,
	rows: 12,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			if (!m.pData) return;
			m.pData = m.pData.substring(0, m.pData.length - 6) + m.pData.substring(m.pData.length - 4);
			rez.rowBuildPhoto('flickr', m);
		});
	},
	play: function(index) {
		var item = rez.data.flickr[index];
		var url = item.mData;
		var part2 = url.substring(url.length - 4);
		var part1 = url.substring(0, url.length - 6);

		var url = part1 + part2;

		$('#lightboxTrigger').attr({
			href: url,
			title: item.title
		});
		$('#lightboxTrigger').click();
	}
};
rez.services.seesmic = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('seesmic', m, function() {
				rez.services.seesmic.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.seesmic[index];
		player.playSeesmic(item.videoId);
	}
};
rez.services.twitter = {
	page: 0,
	rows: 24,
	service: 0,
	build: function(data) {
		$.each(data, function(i, t) {
		/*	if (i == 0) {
				if (rez.services.twitter.isLivetweetAccount(t)) {
					$('.fixed-text').fadeOut(function(){
						$(this).html(t.title);
						$(this).fadeIn();
					});
				}
			}
		*/	
			var div = $('<div />').addClass('white-box').appendTo('#twitterRes');
			var p = $('<p />').appendTo(div);
			
			if (t.pData != '') 
				var img = $('<img alt="" />').appendTo(p).attr('src', t.pData);
			else 
				var img = $('<img src="/themes/lifecast/images/guy.jpg" alt="" />').appendTo(p);
			
			var text = $('<div />').addClass('text').appendTo('#twitterRes');
			var a = $('<a target="blank" />').appendTo(text).attr({
				href: 'http://twitter.com/' + t.author,
				title: 'Open twitter account page in new window'
			}).html(t.author);	
			$('<br />').appendTo(text);
			
			$('<span />').appendTo(text).html(t.title).attr('title', t.pubDate);
			$('<div class="clearer"></div>').appendTo('#twitterRes');
		});
	},
	isLivetweetAccount: function(t) {
		var trigger = false;
		$.each(livetweetAccounts, function(i, a) {
			if (a.username == t.author) {
				trigger = true;
			}
		});
		return trigger;
	}
};
rez.services.qik = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('qik', m, function() {
				rez.services.qik.play(i);
			});
			/*
			var li = $('<li />').appendTo('#qikRes');
			var a = $('<a href="#" />').appendTo(li);
			var img = $('<img alt="thumbnail" class="img rowThumbnail"/>').appendTo(a).attr({
				src: m.pData,
				title: 'qik.com/' + m.author
			}).click(function() {
				rez.services.qik.play(i);
			});
			
			$('<br />').appendTo(li);
			
			// Fav button
			var a = $('<a class="tt" href="javascript:;" />').appendTo(li).attr({
				s: m.serviceId,
				i: m.id
			});
			var img = $('<img class="add" src="/themes/lifecast/images/add.png" alt="" />').appendTo(a);
			var span = $('<span />').appendTo(li).html(m.pubDate);*/
		});	
	},
	play: function(index) {
		var item = rez.data.qik[index];
		player.play(item.mData);
	}
};
rez.services.blip = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('blip', m, function() {
				rez.services.blip.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.blip[index];
		player.play(item.mData);
	}
};
rez.services.youtube = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('youtube', m, function() {
				rez.services.youtube.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.youtube[index];
        player.play(escape(item.link));
	}
};
rez.services.vimeo = { 
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('vimeo', m, function() {
				rez.services.vimeo.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.vimeo[index];
		player.playVimeo(item.mData);
	}
};
rez.services.twelveSecondes = { 
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data,function(i, m) {
			rez.rowBuildVideo('twelveSecondes', m, function() {
				rez.services.twelveSecondes.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.twelveSecondes[index];
		player.play(item.mData);
	}
};

rez.services.viddler = { 
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('viddler', m, function() {
				rez.services.viddler.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.viddler[index];
		player.playViddler(item.mData);
	}
};

rez.services.reuters = { 
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data,function(i, m) {
			rez.rowBuildVideo('reuters', m, function() {
				rez.services.reuters.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.reuters[index];
		player.play(item.mData);
	}
};

rez.services.twitpic = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			m.pData = 'http://twitpic.com/show/full/' + m.guid;
			rez.rowBuildPhoto('twitpic', m);
		});
	},
	play: function(index) {}
};

rez.services.phreadz = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('phreadz', m, function() {
				rez.services.phreadz.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.phreadz[index];
		player.play(item.mData);
	}
};

rez.services.blinkx = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildPhoto('blinkx', m);
		});
	},
	play: function(index) {}
};

rez.services.revver = { 
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('revver', m, function() {
				rez.services.revver.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.revver[index];
		player.playRevver(item.mData);
	}
};

rez.services.howcast = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('howcast', m, function() {
				rez.services.howcast.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.howcast[index];
		player.playHowcast(item.mData);
	}
};

rez.services.bambuser = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('bambuser', m, function() {
				rez.services.bambuser.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.bambuser[index];
		player.playBambuser(item.guid);
	}
};

rez.services.viralvideochart = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
			rez.rowBuildVideo('viralvideochart', m, function() {
				rez.services.viralvideochart.play(i);
			});
		});
	},
	play: function(index) {
		var item = rez.data.viralvideochart[index];
        player.play(escape(item.link));
	}
};
rez.services.ted = {
	page: 0,
	rows: 4,
	service: 0,
	build: function(data) {
		$.each(data, function(i, m) {
				rez.rowBuildVideo('ted', m, function() {
					rez.services.ted.play(i);
				});
		});
	},
	play: function(index) {
		var item = rez.data.ted[index];
        player.play(escape(item.link));
	}
};
