(function ($) {

function load_videos () {
	var me = $(this);
	var container = $('#on-demand-content');
	var inner = container.find('div.inner').eq(0);
	container.height(container.height());
	container.addClass('loading');
	inner.hide();
	inner.load(me.attr('href'), {}, function () { container.height(''); container.removeClass('loading'); inner.fadeIn(400); });
	$('ul.on-demand a').removeClass('current');
	me.addClass('current');
	return false;
};

function scroll_to_comments () {
	var comms = $('div#comments');
	$('#videos-and-channels').hide();
	comms.fadeIn();
	$('html,body').animate({scrollTop: comms.offset().top});
	return false;	
};

/*
function get_ratings(target) {
	var ratings_star = '<a class="ratings-star" href="%u?rating=%d">★</a>';
	var ratings = '<span class="ratings-stars clearfix" style="display: none">';
	for (var i=1; i<6; i++) {
		ratings += ratings_star.replace(/%d/g, i);
	}
	ratings += '</span>';
	ratings = ratings.replace(/%u/g, target);
	return ratings;	
};

*/

function submit_rating () {
	var me = $(this);
	me.parent().attr('disabled', "true");
	var target = me.attr('href');
	$('div.ratings-stars span').html('<em>Saving...</em>');
	$.get(target, {}, function (html) {
	    show_tasks();
	    if (html == 'login-required') {
		    $('#login-pane-placeholder').hide();
		    $('#login-pane').slideDown();
		}
	    else {
	        $('div.ratings-stars').html(html);
	    }
	});
	return false;
};


function show_rating_panel () {
	var me = $('a.rate-link');
	var target = me.attr('href');
	if (target.match('login')) {
		$('#login-pane-placeholder').hide();
		$('#login-pane').slideDown();
		return false;
    }
    else {
        var tasks = me.parents('ul.tasks');
        var container = $('#tasks-container');
	    $('div.ratings-stars a.ratings-star').click(submit_rating);
	    $('div.ratings-stars a.close').click(show_tasks);
        tasks.hide();
	    container.find('div.ratings-stars').fadeIn();
        return false;
    }
};
function show_tasks() {
    $('div.ratings-stars').hide();
    $('div.embed-textbox').hide();
    $('div.share-textbox').hide();
    $('ul.tasks').fadeIn();
    return false;
};

function initialise_embed_codes() {
    // hide textboxes if more than one (links used to show). otherwise just show textbox
    if ($('#tasks-container div.embed-textbox .embed-code').length == 1) {
        $('#tasks-container div.embed-textbox .embed-size-link').hide();
        $('#tasks-container div.embed-textbox .embed-code').show();
    }
    else {
        $('#tasks-container div.embed-textbox .embed-size-link').show();
        $('#tasks-container div.embed-textbox .embed-code').hide();    
    }
};


$(function () {

	$('ul.on-demand a').click(load_videos);
	

	$('#tasks-container a.embed-link').click(function() {
        $('#tasks-container ul.tasks').hide();
	    $('#tasks-container div.embed-textbox').fadeIn();
	});
	initialise_embed_codes();

    $('#tasks-container a.close').click(show_tasks).click(initialise_embed_codes);

    $('#tasks-container div.embed-textbox .embed-size-link').click(function() {
        $('#tasks-container div.embed-textbox .embed-size-link').hide();
        
        // get last class - this is the "label" for the embed size
        var label = this.className.match(/[^\s]+$/)[0];
        
        $('#tasks-container div.embed-textbox .embed-code.' + label).show().focus().select();

    });

	
	$('#tasks-container a.share-link').click(function() {
        $('#tasks-container ul.tasks').hide();
	    $('#tasks-container div.share-textbox').fadeIn();
	    $('#tasks-container div.share-textbox input').focus().select();
	});
	
	
	$('#tasks-container a.rate-link').click(show_rating_panel);
    
	$('a[href=#comments]').click(scroll_to_comments);
	$('a.close-comments-link').click(function () {
		$('#comments').hide();
		$('#videos-and-channels').fadeIn();
		return false;
	});
	$('#id_comment').attr('maxlength', '3000');
	
	$('div.latest-comment').click(scroll_to_comments).addClass('clickable');
});

})(jQuery);