//-------------------------------------------------
//		youtube playlist jquery plugin
//		Created by dan@geckonm.com
//		www.geckonewmedia.com
//
//		v1.1 - updated to allow fullscreen 
//			 - thanks Ashraf for the request
//-------------------------------------------------

jQuery.fn.ytplaylist = function(options) {
 
  // default settings
  var options = jQuery.extend( {
    holderId: 'ytvideo',
	playerHeight: '211',
	playerWidth: '330',
	addThumbs: false,
	thumbSize: 'small',
	showInline: false,
	autoPlay: true,
	showRelated: true,
	allowFullScreen: false
  },options);

	var selector = $(this);
	var autoPlay = "";
	var showRelated = "&rel=0";
	var fullScreen = "";
	if(options.autoPlay) autoPlay = "&autoplay=1"; 
	if(options.showRelated) showRelated = "&rel=1"; 
	if(options.allowFullScreen) fullScreen = "&fs=1";
	
	//throw a youtube player in
	function play(id)
	{
	   var html  = '';

	   html += '<object height="'+options.playerHeight+'" width="'+options.playerWidth+'">';
	   html += '<param name="movie" value="http://www.youtube.com/v/'+id+autoPlay+showRelated+fullScreen+'"> </param>';
	   html += '<param name="wmode" value="transparent"> </param>';
	   if(options.allowFullScreen) { 
	   		html += '<param name="allowfullscreen" value="true"> </param>'; 
	   }
	   html += '<embed src="http://www.youtube.com/v/'+id+autoPlay+showRelated+fullScreen+'"';
	   if(options.allowFullScreen) { 
	   		html += ' allowfullscreen="true" '; 
	   	}
	   html += 'type="application/x-shockwave-flash" wmode="transparent"  height="'+options.playerHeight+'" width="'+options.playerWidth+'"></embed>';
	   html += '</object>';
		
	   return html;
	   
	};
	
	//grab a youtube id from a (clean, no querystring) url (thanks to http://jquery-howto.blogspot.com/2009/05/jyoutube-jquery-youtube-thumbnail.html)
	function youtubeid(url) {
		var ytid = url.match("[\\?&]v=([^&#]*)");
		ytid = ytid[1];
		return ytid;
	};


	//load inital video
	var firstVid = $(selector).filter(function(index){ return index == 0; }).addClass("currentvideo").attr("href");
	$("#"+options.holderId+"").html(play(youtubeid(firstVid)));

	//load video on request
	selector.click(function() {
		if(options.showInline) {
			$("a.currentvideo").removeClass("currentvideo");
			$(this).addClass("currentvideo").html(play(youtubeid($(this).attr("href"))));
		}
		else {
			$("#"+options.holderId+"").html(play(youtubeid($(this).attr("href"))));
			$(selector).filter(".currentvideo").removeClass("currentvideo");
			$(this).addClass("currentvideo");
		}

		return false;
	});

	//do we want thumns with that?
	if(options.addThumbs) {

		selector.each(function(i){

			var replacedText = $(this).text();

			if(options.thumbSize == 'small') {
				var thumbUrl = "http://img.youtube.com/vi/"+youtubeid($(this).attr("href"))+"/2.jpg";
			}
			else {
				var thumbUrl = "http://img.youtube.com/vi/"+youtubeid($(this).attr("href"))+"/0.jpg";
			}


			$(this).empty().html("<img src='"+thumbUrl+"' alt='"+replacedText+"' />"+replacedText).attr("title", replacedText);

		});	
  }
 
};
