OneClipVideoListRenderer = {
	'OverrideOneClipImageUrl' : null,
	'OverrideOneClipImagePriority' : 0,
	'DefaultPath' : 'Feature',
	'arrOneClipVideoList' : new Array(),
	'OverrideOneClipImage' : function(strUrl,intPriority) {
		boolOverrideImage = true;
		if (OneClipVideoListRenderer.OverrideOneClipImagePriority != null && OneClipVideoListRenderer.OverrideOneClipImagePriority > intPriority) {
			boolOverrideImage = false;
		}
		if (boolOverrideImage) {
			OneClipVideoListRenderer.OverrideOneClipImageUrl = strUrl;
			OneClipVideoListRenderer.OverrideOneClipImagePriority = intPriority;
		}
	},
	'SetDefaultPath' : function(strPath) {
	    OneClipVideoListRenderer.DefaultPath = strPath;
	},
	'AddClip' : function(objDetails) {
	    OneClipVideoListRenderer.arrOneClipVideoList[OneClipVideoListRenderer.arrOneClipVideoList.length] = objDetails;
	},
	'ClearClips' : function() {
	    if (window["Playlist"]) {
            Playlist.FeaturedVideos = new Array();
	    }
	    OneClipVideoListRenderer.arrOneClipVideoList = new Array();
	},
    'StandardLookRenderer' : function(objTarget,arrDetails) {
		var objContainingLi, objContainingDl, objContainingDt, objAnchor1, objAnchor2, objAnchor3, objDd1, objDd2, objImg;
		var objContainingDiv 	= document.createElement('div');
        var objContainingUl     = document.createElement('ul');
		var intPopupId = null;
		for(intDetail = 0; intDetail < arrDetails.length; intDetail++) {
			objDetails = arrDetails[intDetail];

			intPopupId = objDetails['clipid'];
			strImageHref = objDetails['image'];
			strTitle = objDetails['title'];
			strDescription = objDetails['description'];

	        // Create DOM elements
	        objContainingLi     = document.createElement('li');
	        objContainingDl     = document.createElement('dl');
	        objContainingDt     = document.createElement('dt');
	        objAnchor1          = document.createElement('a');
	        objDd1              = document.createElement('dd');
	        objDd2              = document.createElement('dd');
	        objAnchor2          = document.createElement('a');
	        objImg              = document.createElement('img');

	        // Create text nodes
			objTitleText 	= document.createTextNode(strTitle);
			objDescText 	= document.createTextNode(strDescription);

	        // Configure elements
	        objAnchor1.setAttribute('href','javascript:void(0)');
	        objAnchor1.setAttribute('title','Play now');
	        objAnchor2.setAttribute('href','javascript:void(0)');
	        objAnchor2.setAttribute('title','Play now');

			objDd1.className ='Description';
			objDd2.className = 'Thumbnail';
			
			objImg.setAttribute('src',strImageHref + "/80/60/image.ashx");
			objImg.setAttribute('alt',strTitle);
			objImg.setAttribute('width','87');
			objImg.setAttribute('height','60');

			// Set the anchor actions
			objAnchor1.onclick = OneClipVideoListRenderer.Bind(OneClipVideoListRenderer.PlayVideo,objDetails); 
			objAnchor2.onclick = OneClipVideoListRenderer.Bind(OneClipVideoListRenderer.PlayVideo,objDetails); 
			
			// Assemble the pieces
			objContainingUl.appendChild(objContainingLi);
			objContainingLi.appendChild(objContainingDl);
			objContainingDl.appendChild(objContainingDt);
			objContainingDt.appendChild(objAnchor1);
			objAnchor1.appendChild(objTitleText);
			objContainingDl.appendChild(objDd1)
			objDd1.appendChild(objDescText);
			objContainingDl.appendChild(objDd2);
			objDd2.appendChild(objAnchor2);
			objAnchor2.appendChild(objImg);
		}
    	objPopupInvite 	= document.createTextNode("Watch more in our video player!");
		objAnchor3 = document.createElement('a');
		objAnchor3.setAttribute('href','javascript:void(0)');
		objAnchor3.setAttribute('title','Open full player');
		objAnchor3.className = 'OpenPlayer';
		objAnchor3.onclick = OneClipVideoListRenderer.Bind(OneClipVideoListRenderer.LaunchPopupPlayer,{'SectionName':OneClipVideoListRenderer.DefaultPath}); // This should be the function to do something
		objAnchor3.appendChild(objPopupInvite);

		objTarget.appendChild(objContainingUl);
		objTarget.appendChild(objAnchor3);
    },
	'RenderList' : function(fnRenderer) {
		if (OneClipVideoListRenderer.arrOneClipVideoList && OneClipVideoListRenderer.arrOneClipVideoList.length) {
			objTarget = document.getElementById('Playlist');
			fnRenderer(objTarget, OneClipVideoListRenderer.arrOneClipVideoList);
		}
	},
	'Bind' : function(fn,args) {
		return function() { fn(args) };
	},
	'LaunchPopupPlayer' : function(objDetails) {
	    Player.GetInstance().Wait();
		window.open('http://watch.tsn.ca/' + OneClipVideoListRenderer.DefaultPath, 'TSNBroadband','width=1010,height=850,toolbar=0,status=0,scrollbars=1,resizable=1');
		return false;
	},
	'LoadOneClipPlayer' : function() {
        if (document.getElementById("OneClipViewer") && window["Interface"] && OneClipVideoListRenderer.arrOneClipVideoList && OneClipVideoListRenderer.arrOneClipVideoList.length) {
			if (OneClipVideoListRenderer.OverrideOneClipImageUrl) {
				strTopImage = OneClipVideoListRenderer.OverrideOneClipImageUrl;
			}
			else {
				strTopImage = OneClipVideoListRenderer.arrOneClipVideoList[0].image + "/320/240/image.ashx";
			}

			try {
				Interface.DisplayPlayerControllerError( "We're sorry", "There was an error loading your selection. Please try again or load the full player by clicking on the link below." );
			} catch(e){}
			
	        // Instantiate the player and create the playlist
	        Interface.GetInstance().PlayerViewer = document.getElementById("OneClipViewer");
            new Framework( Format.FlashVideo, 3, "chumtvtsn", "One Clip Player", "video.tsn","http://watch.tsn.ca/themes/TSN/player/onecliptheme.aspx", strTopImage);

	        // Loop through the videos in the list and push them into the player's playlist.
	        if (OneClipVideoListRenderer && OneClipVideoListRenderer.arrOneClipVideoList && OneClipVideoListRenderer.arrOneClipVideoList.length) {
	            Playlist.FeaturedVideos = new Array();
	            for (intOneClipVideo = 0; intOneClipVideo < OneClipVideoListRenderer.arrOneClipVideoList.length; intOneClipVideo++) {
		            objOneClipVideo = OneClipVideoListRenderer.arrOneClipVideoList[intOneClipVideo];
					if (objOneClipVideo['clipid']) {
			            strTitle = objOneClipVideo['title'];
						intClipId = objOneClipVideo['clipid'];
    		            vidClip = new Video( {ClipId:intClipId, Title: strTitle, Format:'FLV'} );
    		            Playlist.FeaturedVideos.push( vidClip );
					}
		            else if (objOneClipVideo['episodeclips']) {
						for (intEpisodeClip = 0; intEpisodeClip < objOneClipVideo['episodeclips'].length; intEpisodeClip++) {
							objEpisodeClip = objOneClipVideo['episodeclips'][intEpisodeClip];
							strTitle = objEpisodeClip['title'];
							intClipId = objEpisodeClip['clipid'];
	    		            vidClip = new Video( {ClipId:intClipId, Title: strTitle, Format:'FLV'});
							Playlist.FeaturedVideos.push(vidClip);
						}
		            }
	            }
	        }
        }
        return false;	
	},
	'PlayVideo' : function(objDetails) {
		if (objDetails["episodeclips"]) {
            Playlist.FeaturedVideos = new Array();
			for (intEpisodeClip = 0; intEpisodeClip < objDetails['episodeclips'].length; intEpisodeClip++) {
				objEpisodeClip = objDetails['episodeclips'][intEpisodeClip];
				strTitle = objEpisodeClip['title'];
				intClipId = objEpisodeClip['clipid'];
	            vidClip = new Video( {ClipId:intClipId, Title: strTitle, Format:'FLV'});
				Playlist.GetInstance().FeaturedVideosIndex = 0;
				Playlist.FeaturedVideos.push(vidClip);
			}
			Playlist.GetInstance().Start();
		}
		else if (objDetails["clipid"]) {
		    Playlist.GetInstance().Play( new Video( { ClipId:objDetails.clipid , Format:'FLV' , Title:objDetails.title } ) );
		}
		return false;
	}
};
