
  //
  // YouTube JavaScript Player With Playlist
  // http://911-need-code-help.blogspot.com/2009/10/youtube-javascript-player-with-playlist.html
  // Revision 1 [2009-10-12]
  //
  // Prerequisites
  // 1) Create following elements in your HTML:
  // -- a) ytplayer: a named anchor
  // -- b) ytplayer_div1: placeholder div for YouTube JavaScript Player
  // -- c) ytplayer_div2: container div for playlist
  // 2) Include SWFObject library from http://code.google.com/p/swfobject/
  //
  // Variables
  // -- ytplayer_playlist: an array containing YouTube Video IDs
  // -- ytplayer_playitem: index of the video to be played at any given time
  //

  var ytplayer_playlist = [ ];
  var ytplayer_playitem = 0;
 var featurevid_id = 0;
  
  //swfobject.addLoadEvent( ytplayer_render_player );
  //swfobject.addLoadEvent( ytplayer_render_playlist );
  

  
  
  
  function ytplayer_render_player( )
  {
	if (ytplayer_playlist.length==0) {
		show_noresults();
  	}else{
		if (isiPad) {
			ytplayer_playitem = 0;
			ytplayer_playlazy( 1000 );
		}else{
			swfobject.embedSWF
			(
			  'http://www.youtube.com/v/' + ytplayer_playlist[ ytplayer_playitem ][0] + '&enablejsapi=1&rel=0&fs=1',
			  'ytplayer_div1',
			  '490',
			  '290',
			  '8',
			  null,
			  null,
			  {
				allowScriptAccess: 'always',
				allowFullScreen: 'true'
			  },
			  {
				id: 'ytplayer_object'
			  }
			);
		}
  	}
	
  }
  
  function ytplayer_render_playlist( )
  {
	
    for ( var i = 0; i < ytplayer_playlist.length; i++ )
    {
      var img = document.createElement( "img" );
	  if (isEpisodes) {
	  	//img.src = "http://www.toop.tv/playlist_thumbnail.asp?playlistid=" + ytplayer_playlist[ i ][3];//"images/play.gif"
	  	img.src = "images/loaderblack.gif";
		img.setAttribute("id","img"+ytplayer_playlist[ i ][3]);
	  	img.setAttribute("class","vid_wait");
	  	img.setAttribute("className","vid_wait");
	  } else {
      	img.src = "http://img.youtube.com/vi/" + ytplayer_playlist[ i ][0] + "/default.jpg";//"images/play.gif"
		img.setAttribute("class","vid_img");
	  	img.setAttribute("className","vid_img");
	  }
	  
	  
	  var img_play = document.createElement( "img" );
	  img_play.src = "images/play2.png";
	  img_play.setAttribute("class","play_img");
	  img_play.setAttribute("className","play_img");
	  var img_play_cont = document.createElement( "div" );
	  img_play_cont.setAttribute("class","img_play_cont");
	  img_play_cont.setAttribute("className","img_play_cont");
	  img_play_cont.appendChild(img_play);

	  
	  var title = document.createElement( "div" );
	  title.innerHTML = ytplayer_playlist[ i ][1];
	  title.setAttribute("class","vid_title");
	  title.setAttribute("className","vid_title");
	  title.zIndex = 999;
	  var time = document.createElement( "div" );
	  time.innerHTML = ytplayer_playlist[ i ][2];
	  time.setAttribute("class","vid_time");
	  time.setAttribute("className","vid_time");
      var a = document.createElement( "a" );
	  a.setAttribute("class","vid_link");
	  a.setAttribute("className","vid_link");
      if (isEpisodes) {
	  a.href = "?p=" + ytplayer_playlist[ i ][3] + "&d=" + ytplayer_playlist[ i ][2];
	  //a.setAttribute("style","background-image:url(http://www.toop.tv/playlist_thumbnail.asp?playlistid=" + ytplayer_playlist[ i ][3] + ");");
	  //a.style.backgroundImage='url("http://www.toop.tv/playlist_thumbnail.asp?playlistid="' + ytplayer_playlist[ i ][3] + ')';
		} else {
	  a.href = "#" //+ ytplayer_playlist[ i ][1];
	  //a.style.backgroundImage='url("http://img.youtube.com/vi/"' + ytplayer_playlist[ i ][0] + '"/default.jpg")';
		}
      //
      // Thanks to some nice people who answered this question:
      // http://stackoverflow.com/questions/1552941/variables-in-anonymous-functions-can-someone-explain-the-following
      //
      a.onclick = (
        function( j )
        {
          return function( )
          {
			//alert(a.getElementsByTagName("div")[0].style.zIndex);
            ytplayer_playitem = j;
            ytplayer_playlazy( 1000 );
          };
        }
      )( i );
      a.appendChild( img );
	  a.appendChild( img_play_cont );
	  a.appendChild( title );
	  a.appendChild( time );
      document.getElementById( "ytplayer_div2" ).appendChild( a );
    }
  }
  
  function ytplayer_render_playlist_min( )
  {
	
    for ( var i = 0; i < ytplayer_playlist.length; i++ )
    {
      //var img = document.createElement( "img" );

	  	  
	  var img_play = document.createElement( "img" );
	  img_play.src = "images/play2.png";
	  img_play.setAttribute("class","play_img");
	  img_play.setAttribute("className","play_img");
	  var img_play_cont = document.createElement( "div" );
	  img_play_cont.setAttribute("class","img_play_cont");
	  img_play_cont.setAttribute("className","img_play_cont");
	  img_play_cont.appendChild(img_play);

	  
	  var title = document.createElement( "div" );
	  title.innerHTML = ytplayer_playlist[ i ][1];
	  title.setAttribute("class","vid_title");
	  title.setAttribute("className","vid_title");
	  title.zIndex = 999;
	  var time = document.createElement( "div" );
	  time.innerHTML = ytplayer_playlist[ i ][2];
	  time.setAttribute("class","vid_time");
	  time.setAttribute("className","vid_time");
      var a = document.createElement( "div" );
	  a.setAttribute("class","vid_entry");
	  a.setAttribute("className","vid_entry");
      
      a.onclick = (
        function( j )
        {
          return function( )
          {
			//alert(a.getElementsByTagName("div")[0].style.zIndex);
            ytplayer_playitem = j;
            ytplayer_playlazy( 1000 );
          };
        }
      )( i );
      //a.appendChild( img );
	  //a.appendChild( img_play_cont );
	  a.appendChild( title );
	  a.appendChild( time );
      document.getElementById( "ytplayer_div2" ).appendChild( a );
    }
  }
  
  function ytplayer_playlazy( delay )
  {
    //

    //
    if ( typeof ytplayer_playlazy.timeoutid != 'undefined' )
    {
      window.clearTimeout( ytplayer_playlazy.timeoutid );
    }
    ytplayer_playlazy.timeoutid = window.setTimeout( ytplayer_play, delay );
  }
  function ytplayer_play( )
  {
	document.getElementById( 'videotitle' ).innerHTML = ytplayer_playlist[ ytplayer_playitem ][1];
	
	if (isiPad) {
		document.getElementById( 'ytplayer_div1' ).innerHTML = '<object id="ytplayer_object" width="490" height="280"><param name="movie" value="http://www.youtube.com/v/'+ytplayer_playlist[ ytplayer_playitem ][0]+'&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="never"></param><embed src="http://www.youtube.com/v/'+ytplayer_playlist[ ytplayer_playitem ][0]+'&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="never" width="490" height="280"></embed></object>';
	}else{
		var o = document.getElementById( 'ytplayer_object' );
		if ( o )
		{
		  o.loadVideoById( ytplayer_playlist[ ytplayer_playitem ][0] );
		}
	}
  }
  
  //
  // Ready Handler (this function is called automatically by YouTube JavaScript Player when it is ready)
  // * Sets up handler for other events
  //
  function onYouTubePlayerReady( playerid )
  {
    var o = document.getElementById( 'ytplayer_object' );
    if ( o )
    {
      o.addEventListener( "onStateChange", "ytplayer_statechange" );
      o.addEventListener( "onError", "ytplayer_error" );
    }
  }
  //
  // State Change Handler
  // * Sets up the video index variable
  // * Calls the lazy play function
  //
  function ytplayer_statechange( state )
  {
    if ( state == 0 )
    {
      ytplayer_playitem += 1;
      ytplayer_playitem %= ytplayer_playlist.length;
      ytplayer_playlazy( 5000 );
    }
  }
  //
  // Error Handler
  // * Sets up the video index variable
  // * Calls the lazy play function
  //
  function ytplayer_error( error )
  {
    if ( error )
    {
      ytplayer_playitem += 1;
      ytplayer_playitem %= ytplayer_playlist.length;
      ytplayer_playlazy( 5000 );
    }
  }
  //
  // Add items to the playlist one-by-one
  //http://gdata.youtube.com/feeds/api/videos/-/investor/?author=adelaiderealestate
  
  function do_search() {
	  try {
	var pageTracker2 = _gat._getTracker("UA-2240189-17");
	pageTracker2._trackPageview('/search/' + document.getElementById( 'searchterm' ).value);
	} catch(err) {}
  	return true;
  }
  
  function show_noresults () {
	  document.getElementById('ytplayer_div2').innerHTML = '<div class="vid_title"><br><br><br>Sorry, no videos found.</div>';
		var callback = {
			success: function(o) {
					document.getElementById('ytplayer_div1').innerHTML = o.responseText;
					},
			failure: function(o) {document.getElementById('ytplayer_div1').innerHTML = 'Error has occured. Please refresh page.';}
		}
		var sUrl = "no_results.asp";
		var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
  }
  
  function initialize_keywords() {
  		var ddate = new Date();
		var sUrl = "http://gdata.youtube.com/feeds/api/videos/-/" + new String(skeywords).toLowerCase().replace(/,|\s|;/,"/") + "/?author=adelaiderealestate";

		var feed = new google.feeds.Feed(sUrl); 
		feed.setNumEntries(99); 
		feed.load(function(result) {
			if (!result.error) {          
				if(document.getElementById('EpisodeTitle')){
					document.getElementById('EpisodeTitle').innerHTML='Search for: <i>' + skeywords + '</i>';
				}
				if(document.getElementById('comingup')){
					document.getElementById('comingup').innerHTML=result.feed['description'].replace(/\n/,'<br />');
					
				} else {alert('description could not be displayed');}
				if(document.getElementById('ScreenNav')) {
					document.getElementById('ScreenNav').innerHTML='<form id="frmsearch" action="/" method="get" enctype="application/x-www-form-urlencoded" name = "frmsearch" onSubmit="return do_search();" ><img height="22px" width="1px" src="/images/spacer.gif" /><a id="btnback" href="/">Back</a><input id="searchterm" name="k" type="text"><a id="btnsearch" onclick="document.getElementById(\'frmsearch\').submit();" href="#">Search</a></form>';
					}       
				var re = /([^\?]*?\?v=)([^&]*?)(&.*)/ ;
				var re2 = /Episode\s\d{1,2}\s-\s(.*)/ ;
				var re3 = /^Episode\s\d{1,2}\s(.*)/ ;
				for (var i = 0; i < result.feed.entries.length; i++) {            
					var entry = result.feed.entries[i];      
					var vid_id = entry.link.replace(re, '$2');
					var vid_title = (i+1) + '. ' + entry.title.replace(re2,'$1').replace(re3,'$1');
					var vid_date1 = new Date(entry.publishedDate);
					var vid_date = '';//vid_date1.getDate() + '-' + (vid_date1.getMonth()+1) + '-' + vid_date1.getFullYear()
					//if (ytplayer_playlist){alert(ytplayer_playlist.length);}
					ytplayer_playlist.push( [vid_id,vid_title,'',''] );
				} 
				if (document.getElementById('aired')) document.getElementById('aired').innerHTML = vid_date;
				ytplayer_render_player();
				if (document.getElementById('ishelpdesk')) {
					ytplayer_render_playlist_min();
				} else {
					ytplayer_render_playlist(); }
 				
			} 
			else 
			{alert(result.error.message+":"+sUrl);}
			
		});   
  }
  
  
  function initialize_episode() {  
  		var ddate = new Date();
		var sUrl = "http://gdata.youtube.com/feeds/api/playlists/" + playlist_id + "?v=2"
		var feed = new google.feeds.Feed(sUrl); 
		feed.setNumEntries(99); 
		feed.load(function(result) {
			if (!result.error) {          
				if(document.getElementById('EpisodeTitle')){
					document.getElementById('EpisodeTitle').innerHTML=result.feed.title.replace('Toop','<strong>Toop</strong>');
				}
				if(document.getElementById('comingup')){
					document.getElementById('comingup').innerHTML=result.feed['description'].replace(/\n/,'<br />');
					
				} else {alert('description could not be displayed');}
				if(document.getElementById('ScreenNav')) {
					document.getElementById('ScreenNav').innerHTML='<form id="frmsearch" action="/" method="get" enctype="application/x-www-form-urlencoded" name = "frmsearch" onSubmit="return do_search();" ><img height="22px" width="1px" src="/images/spacer.gif" /><a id="btnback" href="/">Back</a><input id="searchterm" name="k" type="text"><a id="btnsearch" onclick="document.getElementById(\'frmsearch\').submit();" href="#">Search</a></form>';
					}        
				var re = /([^\?]*?\?v=)([^&]*?)(&.*)/ ;
				var re2 = /Episode\s\d{1,2}\s-\s(.*)/ ;
				var re3 = /^Episode\s\d{1,2}\s(.*)/ ;
				for (var i = 0; i < result.feed.entries.length; i++) {            
					var entry = result.feed.entries[i];      
					var vid_id = entry.link.replace(re, '$2');
					var vid_title = (i+1) + '. ' + entry.title.replace(re2,'$1').replace(re3,'$1');
					var vid_date1 = new Date(entry.publishedDate);
					var vid_date = '';//vid_date1.getDate() + '-' + (vid_date1.getMonth()+1) + '-' + vid_date1.getFullYear()
					//if (ytplayer_playlist){alert(ytplayer_playlist.length);}
					ytplayer_playlist.push( [vid_id,vid_title,'',''] );
				} 
				if (document.getElementById('aired')) document.getElementById('aired').innerHTML = vid_date;
				ytplayer_render_player();
				if (document.getElementById('ishelpdesk')) {
					ytplayer_render_playlist_min();
				} else {
					ytplayer_render_playlist(); }
 				
			} 
			else 
			{alert(result.error.message+":"+sUrl);}
			
		});    
	}
	
function setFeatures(playlist_id) {
	  // for use when listing the episodes
	  // sets the icon, and episode
	  var feed3 = new google.feeds.Feed("http://gdata.youtube.com/feeds/api/playlists/"+ playlist_id +"?v=2");
	  feed3.setNumEntries(1); 
	  feed3.load(function(result) {
		if (!result.error) { 
			var video_id = result.feed.entries[0].link.replace(/([^\?]*?\?v=)([^&]*?)(&.*)/,'$2');
		    if (document.getElementById("img"+playlist_id)) {
				document.getElementById("img"+playlist_id).src = "http://i2.ytimg.com/vi/" + video_id + "/default.jpg";
				
				document.getElementById("img"+playlist_id).width = 120;
				document.getElementById("img"+playlist_id).height = 90;
				document.getElementById("img"+playlist_id).setAttribute("class","vid_img");
	  			document.getElementById("img"+playlist_id).setAttribute("className","vid_img");
			}
		}
	  });
  }
	






function init_playlists(root) {
// list all the episodes
			var feed = root.feed;
	        var entries = feed.entry || [];
			var re = /([^\?]*?\?p=)([^&]*?)/ ;
			var re2 = /Toop\.TV\sEpisode\s\d{1,2}/ ;
			var re3 = /Toop\.TV\sSpecial\s.*/ ;
			var re4 = /.*?playlist\:(.*)/ ;
			for (var i = 0; i < entries.length; i++) {
				var entry = entries[i];
					// only add if toop.TV episode
				if (entry.title.$t.match(re2) || entry.title.$t.match(re3)) {      
					//var playlistid = entry.link.replace(re, '$2');
					var playlistid = entry.id.$t.replace(re4,'$1');
					var playlisttitle = entry.title.$t + "&nbsp;<span class=\"ttv_webding\">4</span>";
					var playlistdate = '';
					var vid_id = featurevid_id;
					ytplayer_playlist.unshift( [vid_id,playlisttitle,playlistdate,playlistid] );   
				}
				swfobject.addLoadEvent(function(){setFeatures(playlistid);});
			} 
			swfobject.addLoadEvent(function(){
							ytplayer_render_player();
							ytplayer_render_playlist();
							});
	 }
	
	
	
	
	
function init_episode(root) {
  		var feed = root.feed;
	    var entries = feed.entry || [];
		var ddate = new Date();       
				if(document.getElementById('EpisodeTitle')){
					document.getElementById('EpisodeTitle').innerHTML=result.feed.title.replace('Toop','<strong>Toop</strong>');
				}
				if(document.getElementById('comingup')){
					document.getElementById('comingup').innerHTML=result.feed['description'].replace(/\n/,'<br />');
					
				} else {alert('description could not be displayed');}
				if(document.getElementById('ScreenNav')) {
					document.getElementById('ScreenNav').innerHTML='<div id="back"><a href="/">Back</a></div><img height="23px" src="/images/spacer.gif" /><div id="aired"><img height="17px" width="17px" src="/images/loading.gif" /></div><div style="clear:both;"></div>';
					}       
				var re4 = /.*?video\:(.*)/ ;
				var re2 = /Episode\s\d{1,2}\s-\s(.*)/ ;
				var re3 = /^Episode\s\d{1,2}\s(.*)/ ;
				for (var i = 0; i < entries.length; i++) {            
					var entry = entries[i];      
					var vid_id = entry.id.$t.replace(re, '$1');
					var vid_title = (i+1) + '. ' + entry.title.$t.replace(re2,'$1').replace(re3,'$1');
					var vid_date1 = new Date(entry.published.$t['video']);
					var vid_date = '';//vid_date1.getDate() + '-' + (vid_date1.getMonth()+1) + '-' + vid_date1.getFullYear()
					//if (ytplayer_playlist){alert(ytplayer_playlist.length);}
					ytplayer_playlist.push( [vid_id,vid_title,'',''] );
				} 
				if (document.getElementById('aired')) document.getElementById('aired').innerHTML = vid_date;
				ytplayer_render_player();
				if (document.getElementById('ishelpdesk')) {
					ytplayer_render_playlist_min();
				} else {
					ytplayer_render_playlist(); 
				}
  }
	
	
	
	
  function initialize_episodelist() { 
	// get feature video from special playlist
	var ddate = new Date();
	var feed2 = new google.feeds.Feed("http://gdata.youtube.com/feeds/api/playlists/AEDB6207DC9618DA?v=2&rnd=" + ddate.getDay());
	feed2.setNumEntries(1); 
	feed2.load(function(result) {
		if (!result.error) { 
			featurevid_id = result.feed.entries[0].link.replace(/([^\?]*?\?v=)([^&]*?)(&.*)/,'$2');
			var feed = new google.feeds.Feed("http://gdata.youtube.com/feeds/api/users/adelaiderealestate/playlists?v=2&max-results=50");
			feed.setNumEntries(99); 
			feed.load(function(result) {
				if (!result.error) {          
					//var container = document.getElementById("feed"); 
					//alert(result.feed.link);         
					//var re = new RegExp("([^\?]*?\?v=)([^&]*?)(&.*)", "g");       
					if(document.getElementById('EpisodeTitle')){
								document.getElementById('EpisodeTitle').innerHTML='<strong>Toop</strong>.TV Episode Archive';
					}
					if(document.getElementById('ScreenNav')) {
					document.getElementById('ScreenNav').innerHTML='<form id="frmsearch" action="/" method="get" enctype="application/x-www-form-urlencoded" name = "frmsearch" onSubmit="return do_search();" ><img height="22px" width="1px" src="/images/spacer.gif" /><input id="searchterm" name="k" type="text"><a id="btnsearch" onclick="document.getElementById(\'frmsearch\').submit();" href="#">Search</a></form>';
					}  
					var re = /([^\?]*?\?p=)([^&]*?)/ ;
					var re2 = /Toop\.TV\sEpisode\s\d{1,2}/ ;
					var re3 = /Toop\.TV\sSpecial\s.*/ ;
					for (var i = 0; i < result.feed.entries.length; i++) {
						var entry = result.feed.entries[i];
						// only add if toop.TV episode
						if (entry.title.match(re2) || entry.title.match(re3)) {      
							var playlistid = entry.link.replace(re, '$2');
							var playlisttitle = entry.title + "&nbsp;<span class=\"ttv_webding\">4</span>";
							var playlistdate = '';
							var vid_id = featurevid_id;
							//if (ytplayer_playlist){alert(ytplayer_playlist.length);}
							ytplayer_playlist.unshift( [vid_id,playlisttitle,playlistdate,playlistid] );   
						}
						setFeatures(playlistid);
					}  
					ytplayer_render_player();
					ytplayer_render_playlist();
				} else {	
					alert(result.error.message);
				}
				
			});
		}
	});
	

}


function initialize2() { 
	// get feature video from special playlist
	var ddate = new Date();
	var feed2 = new google.feeds.Feed("http://gdata.youtube.com/feeds/api/playlists/AEDB6207DC9618DA?v=2&rnd=" + ddate.getDay());
	feed2.setNumEntries(1); 
	feed2.load(function(result) {
		if (!result.error) { 
			featurevid_id = result.feed.entries[0].link.replace(/([^\?]*?\?v=)([^&]*?)(&.*)/,'$2');}
	});
	
}

function f_clientWidth() {
        return f_filterResults (
               window.innerWidth ? window.innerWidth : 0,
               document.documentElement ? document.documentElement.clientWidth : 0,
               document.body ? document.body.clientWidth : 0
        );
}
function f_clientHeight() {
        return f_filterResults (
               window.innerHeight ? window.innerHeight : 0,
               document.documentElement ? document.documentElement.clientHeight : 0,
               document.body ? document.body.clientHeight : 0
        );
}
function f_scrollLeft() {
        return f_filterResults (
               window.pageXOffset ? window.pageXOffset : 0,
               document.documentElement ? document.documentElement.scrollLeft : 0,
               document.body ? document.body.scrollLeft : 0
        );
}
function f_scrollTop() {
        return f_filterResults (
               window.pageYOffset ? window.pageYOffset : 0,
               document.documentElement ? document.documentElement.scrollTop : 0,
               document.body ? document.body.scrollTop : 0
        );
}
function f_filterResults(n_win, n_docel, n_body) {
        var n_result = n_win ? n_win : 0;
        if (n_docel && (!n_result || (n_result > n_docel)))
               n_result = n_docel;
        return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}


function set_footer() {
	document.getElementById('footer').style.visibility = "visible";
	document.getElementById('footer').style.top = f_clientHeight() + f_scrollTop() - 40 + "px";
	document.getElementById('footer').style.zIndex = 999;
	
}

google.load("feeds", "1");

google.setOnLoadCallback( function() {
								   window.setInterval(set_footer, 300);
								   }
						);


if (isEpisodes) {
		google.setOnLoadCallback(initialize_episodelist);
} else {
		if (isKeywords) {
			google.setOnLoadCallback(initialize_keywords);
		} else {
			google.setOnLoadCallback(initialize_episode);
		}
}
