//cbc
if(typeof CBC=="undefined"||!CBC){var CBC={};}CBC.namespace=function(){var a=arguments,o,i,j,d;for(i=0;i<a.length;i=i+1){d=(""+a[i]).split(".");o=CBC;for(j=(d[0]=="CBC")?1:0;j<d.length;j++){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}return o;};

var o = CBC.namespace('APP');
o.AudioPlaylist = function(){
	var $U = CBC.UTIL;
	var $D = YAHOO.util.Dom;
	var $EL = YAHOO.util.Element;
	var $EV = YAHOO.util.Event;

	var me;
	var _player;
	var audioPlaylist = CBC.APP.AudioPlaylist;
	audioPlaylist.playlistCounter++;

	return {
		init: function( params ){
			var playlist = this.createPlaylist( params );
			me = this;
			
			
			
		/*
		 * Extend the current getCategoryDetailResponse function to add to set _audioVideo to 'audio'
		 */
			var _getCategoryDetailResponse_1 = playlist.getCategoryDetailResponse;
			playlist.getCategoryDetailResponse = function ( data ){
				_getCategoryDetailResponse_1.apply(playlist, arguments);
				playlist.setAudioVideo('audio');
			};
			
			var _getReleasesQuery = playlist.getReleasesQuery;
			playlist.getReleasesQuery = function ( isDynamicPlaylist ){
				var qs = playlist.$getReleasesQuery.apply( this, arguments );
				if( isDynamicPlaylist == "false" ) {
					var q = "byCustomValue={:audioVideo}{Audio}";
					var i = qs.search( /byCustomValue=/i );
					if( i > -1 ) 
					{
						qs = qs.substr( 0, i ) + q + "," + qs.substr( i );
					}
					else
					{
						qs += q;
					}
				}
				return qs;
			};
			
			playlist.playVideo = function(clipId) 
			{
				YUI().use( "event-custom", function(Y)
				{
					new Y.CustomEvent( "cbc.video.embed.swfvideoplayer:#" + _player + ":setClipId", {broadcast:2}).fire( clipId );
				});
			};
		},

		createPlaylist: function( params ){
			var o = CBC.namespace('APP');
			params.instance = 'playlist' + audioPlaylist.playlistCounter;
			params.createPlayAction = this.$createPlayFunction( params.createPlayAction );
			_player = params.hasOwnProperty( "playerId" ) ? params.playerId : "";
			var playlist = o[params.instance] = new ThePlatformPlaylist();
			playlist.init(params);
			return playlist;
		},
		
		$createPlayFunction: function ( func )
		{
			if( typeof( func ) == "function" )
			{
				return function () {
					func.apply( this, arguments );
				}
			}
			else
			{
				return this.onPlay;
			}
		},
		
		onPlay: function (clip) {
			clip.uberHref = "#";
		}
	};
};
o.AudioPlaylist.playlistCounter = 0;

