$(document).ready(function() {

	$.ajaxSetup( {
		data : {
			format : 'json'
		},
		success : App.parseResponse
	});

	$(".ratable li").hover(function() {
		$(this).prevAll('li').addClass('rate');
		$(this).addClass('rate');
		$(this).nextAll('li').addClass('unrate');
	}, function() {
		$(this).prevAll('li').removeClass('rate');
		$(this).removeClass('rate');
		$(this).nextAll('li').removeClass('unrate');
	}).click(function() {
		$(this).parents().removeClass('ratable');
		$(this).unbind().siblings().unbind();
		var videoId = $(this).parents().attr('id').split('-').pop();
		var rate = $(this).prevAll('li').size() + 1;
		$.ajax( {
			url : '/ajax/rate',
			data : {
				v : videoId,
				r : rate
			}
		});
	});

	$(".favorite").click(function() {
		var videoId = $(this).attr('id').split('-').pop();
		if ($(this).hasClass('yes')) {
			$(this).removeClass('yes');
			$.ajax( {
				url : '/ajax/favorite',
				data : {
					v : videoId
				}
			});
		} else {
			$(this).addClass('yes');
			$.ajax( {
				url : '/ajax/favorite',
				data : {
					v : videoId,
					a : 1
				}
			});
		}
	});

	$(".flag").click(function() {
		$("#flag").slideToggle();
		$("#report").focus();
	});

	$("#flag_cancel").click(function() {
		$(this).parent('div').slideUp();
	});

	$("#form_report_submit").submit(function() {
		var videoId = $(".flag").attr('id').split('-').pop();
		var report = $(this).serialize();
		$.ajax( {
			url : '/ajax/report',
			data : {
				v : videoId,
				f : report
			}
		});
		return false;
	});

	var q;
	if (q = /\/search\/([^\/]+)/.exec(document.location.href)) {
		q = q[1].replace(/\+/g, ' ');
		q = unescape(q);
		$('#q').val(q);
	}

	App.reloadDom();
});

App = {};

App.thumbrollActive = [];
App.originalThumb = [];

App.thumbrollStart = function(element, thumbroll) {
	var totalThumbs = thumbroll.length;
	if (!totalThumbs)
		return;
	var i = 0;
	var $thumbroll = $('#' + element.id + ' img');
	App.originalThumb[element.id] = $thumbroll.attr('src');
	App.thumbrollActive[element.id] = setInterval(function() {
		if (App.thumbrollActive[element.id]) {
			$thumbroll.attr('src', thumbroll[i]);
			i++;
			if (i >= totalThumbs)
				i = 0;
			var imagePreloader = new Image();
			imagePreloader.src = thumbroll[i];
		}
	}, 600);

};

App.thumbrollStop = function(element) {
	$('#' + element.id + ' img').attr('src', App.originalThumb[element.id]);
	clearInterval(App.thumbrollActive[element.id]);
};

App.parseResponse = function(r) {
	if (r.msg) {
		for ( var i in r.msg) {
			$.jGrowl(r.msg[i], {
				life : 3000
			});
		}
	}
	if (r.tpl) {
		for ( var i in r.tpl) {
			$("#" + i).html(r.tpl[i]);
		}
	}

	if (r.script) {
		eval(r.script);
	}
	App.reloadDom();
};

App.showComments = function(videoId, page) {
	$.ajax( {
		url : '/ajax/comments',
		data : {
			v : videoId,
			p : page
		}
	});
	return false;
};

App.reloadDom = function() {
	
};

App.setCookie = function(c_name, value, expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + "=" + escape(value)
			+ ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString()) + ";path=/";
};

App.getCookie = function(c_name) {
	if (document.cookie.length > 0) {
		c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1) {
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1)
				c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return "";
};

