var _pvpPlaylist = [{'index': 0, 'episode': 'Lost Cave Temples of the Himalaya', 'description': 'In a remote corner of the Himalaya,mysterious caves, perched high on cliff faces and carved by humans thousands of years ago, have lain just beyond reach - until recently. This film follows a team of climbers and scientists who climbed inside the long-hidden chambers.', 'link_title': 'Go to PBS.org', 'title': 'Lost Cave Temples of the Himalaya', 'url': 'http://www.pbs.org/media/nights/091118-lcat000000_320.mov', 'link_url': 'http://www.pbs.org', 'nola': 'LCAT', 'program': 'PBS Presents', 'program_logo': 'http://www.pbs.org/images/programlogos/be-more.gif', 'duration': 30, 'clip_image': 'http://www.pbs.org/images/features/oneoffs/lostcavetemples.jpg'}, {'index': 1, 'episode': 'Mustang - Journey of Transformation', 'description': 'Lost in time, the Himalayan Kingdom of Mustang is one of the last sanctuaries of authentic Tibetan Buddhist culture. Long isolated by geography and politics, the people struggle to survive; the center of their culture, the 15th-century monasteries and the art within, are dangerously close to collapse.', 'link_title': 'Go to PBS.org', 'title': 'Mustang - Journey of Transformation', 'url': 'http://www.pbs.org/media/nights/091118-mujt000000_320.mov', 'link_url': 'http://www.pbs.org', 'nola': 'MUJT', 'program': 'PBS Presents', 'program_logo': 'http://www.pbs.org/images/programlogos/be-more.gif', 'duration': 30, 'clip_image': 'http://www.pbs.org/images/features/oneoffs/mustang-transformation.jpg'}, {'index': 2, 'episode': 'Pearl Jam', 'description': 'Alternative rockers Pearl Jam perform tunes from their latest album and catalogue favorites. ', 'link_title': 'Go to Austin City Limits site', 'title': 'Pearl Jam', 'url': 'http://www.pbs.org/media/nights/091121-aucl003508_320.mov', 'link_url': 'http://video.pbs.org/program/1273976454/', 'nola': 'AUCL', 'program': 'Austin City Limits', 'program_logo': 'http://www.pbs.org/images/programlogos/be-more.gif', 'duration': 30, 'clip_image': 'http://www.pbs.org/images/features/austin/austincitylimits-pearljam.jpg'}, {'index': 3, 'episode': 'Collision', 'description': 'The story of a major road accident and the 10 seemingly unconnected people involved. Beyond the chaotic landscape of corpses and crumpled cars, a series of invisible dramas unfolds - from government cover-ups to torn relationships and murder.', 'link_title': 'Go to Masterpiece site', 'title': 'Collision', 'url': 'http://www.pbs.org/media/nights/091122-mast003935_320.mov', 'link_url': 'http://www.pbs.org/masterpiece', 'nola': 'MAST', 'program': 'Masterpiece Contemporary', 'program_logo': 'http://www.pbs.org/images/programlogos/masterpiececontemporary_98.jpg', 'duration': 30, 'clip_image': 'http://www.pbs.org/images/features/masterpiece/masterpiece-contemporary-collision.jpg'}];
var _pvpCurrent = 0;
var _pvpStation;

function _pvpLoadVideo(obj) {
	_pvpCurrent = obj.index;
	_pvpSwapVideo(obj);
	document.getElementById("id_video_headline").innerHTML = obj.title;
	document.getElementById("id_duration").innerHTML = _pvpFormatDuration(obj.duration);
	document.getElementById("id_short_video_info").innerHTML = obj.description;
	document.getElementById("id_program_logo_link").href = _pvpLocalLink(obj.link_url);
	document.getElementById("id_program_logo_image").src = obj.program_logo;
	document.getElementById("id_program_logo_image").alt = obj.program;
	document.getElementById("id_episode_title").innerHTML = obj.episode;
	document.getElementById("id_link_title").href = _pvpLocalLink(obj.link_url);
	document.getElementById("id_link_title").innerHTML = obj.link_title;
	document.getElementById("id_episode_airdate").innerHTML = _pvpBroadcastLink(obj.nola);
	document.getElementById("id_program_logo").style.visibility = obj.program_logo ? "visible" : "hidden";

	for( var i=0; i<_pvpPlaylist.length; i++ ) {
		if( document.getElementById("id_navigation_"+i) ) {
			document.getElementById("id_navigation_"+i).className = (_pvpCurrent==i ? 'current' : 'notcurrent');
		}
	}
}
function _pvpSwapVideo(obj) {
    try {
        document.pvpMovieObj.SetURL(obj.url);
        document.pvpMovieObj.Play();
    } catch(e) {
	document.getElementById("video_player").innerHTML = _pvpGetVideoTag(obj);
    }
}
function _pvpGetVideoTag(obj) {
	return '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="320" height="256" id="pvpMovieObj"><param name="src" value="' + obj.url + '" /><embed width="320" height="256" src="' + obj.url + '" type="video/quicktime" pluginspage="www.apple.com/quicktime/download" name="pvpMovieObj" enablejavascript="true" /></object>';
}
function _pvpGetPrevIndex() {
	var prev = _pvpCurrent-1;
	if( prev < 0 )
		prev = _pvpPlaylist.length-1;
	return prev;
}
function _pvpLocalLink(url) {
	try {
		if( _pvpStation )
			return 'http://www.pbs.org/cgi-registry/golocal?station='+_pvpStation.toUpperCase()+'&site='+encodeURIComponent(url);
	} catch(e) {}
	return url;
}
function _pvpFormatDuration(duration) {
	var s = duration%60;
	var m = (duration-s)/60;
	if( m < 10 )
                m = '0' + m;
	if( s < 10 )
		s = '0' + s;
	return m + ':' + s;
}
function _pvpBroadcastLink(nola) {
	try {
        if( _pvpStation && nola ){
            var popup_str;
            if(nola.substr(0,4).toUpperCase() == 'ANRO'){
                popup_str = 'program_id=899704';
            }else if(nola.substr(0,4).toUpperCase() == 'MAST'){
                popup_str = 'program_id=9421';
            }else{
                popup_str = 'title_id=' + nola.substr(0,4);
            }
            return '<a href="' + _pvpLocalLink('http://www.pbs.org/modules/tvschedules/includes/programinfopopup.html?' + popup_str + '&station=' + _pvpStation) + '" onclick="window.open(this.href,\'ProgramInformation\',\'scrollbars=yes,resizable=yes,width=605,height=450\');return false;">Get broadcast time</a>';
         }
    } catch(e) {}
    return "";
}
function pvpWritePlayer(station) {
	_pvpStation = station;
	var output = '';
	output += 	'<div id="pbs_pvp_container">';
	output +=       '\n<!-- Container start -->';
	output +=       '\n	<div class="bsgutter10">';
	
	//Start navigation
	output +=       '\n	<div id="video_number_navigation">';
	output +=       '\n		<ul>';

	output +=       '\n			<li class="previous_navigation"><a href="javascript:_pvpLoadVideo(_pvpPlaylist[_pvpGetPrevIndex()])" id="id_previous_navigation">&lt; Previous video</a></li>';

	for( var i=0; i<_pvpPlaylist.length; i++ ) {
		output +=       '\n			<li><a href="javascript:_pvpLoadVideo(_pvpPlaylist[' + i + '])" id="id_navigation_' + i + '" class="' + (i==0?'current':'notcurrent') + '">' + (i+1) + '</a></li>';
	}

	output +=       '\n			<li class="next_navigation"><a href="javascript:_pvpLoadVideo(_pvpPlaylist[(_pvpCurrent+1)%_pvpPlaylist.length])" id="id_next_navigation">Next video &gt;</a></li>';
	output +=       '\n		</ul>';
	output +=       '\n	</div>';

	output +=       '\n	<div id="main_area">';
	output +=       '\n	<!-- Main area start -->';
	output += 	'\n		<div class="bsgutter5">';

        output +=       '\n             <div id="video_player_container">';

	output +=       '\n			<div class="video_player" id="video_player">';
	output +=	'\n				' +  _pvpGetVideoTag(_pvpPlaylist[_pvpCurrent]);

	output +=       '\n			</div>';

	output +=       '\n			<div id="video_info">';
	output +=       '\n				<h1 class="video_headline" id="id_video_headline">' + _pvpPlaylist[_pvpCurrent].title + '</h1>';
	output +=       '\n				<p class="duration" id="id_duration">' + _pvpFormatDuration(_pvpPlaylist[_pvpCurrent].duration) + '</p>';
	output +=       '\n				<p class="short_video_info" id="id_short_video_info">' + _pvpPlaylist[_pvpCurrent].description + '</p>';
	output +=       '\n			</div>';

	output +=       '\n  		  </div>'; //video_player_container

	output +=       '\n			<div id="episode_info">';
	output +=       '\n  	  		<div class="bsgutter7">';
	output +=       '\n					<div class="program_logo" id="id_program_logo" style="visibility:' + (_pvpPlaylist[_pvpCurrent].program_logo ? "visible" : "hidden") +  '">';
	output +=       '\n						<a href="' + _pvpLocalLink(_pvpPlaylist[_pvpCurrent].link_url) + '" id="id_program_logo_link"><img src="' + _pvpPlaylist[_pvpCurrent].program_logo + '" alt="' + _pvpPlaylist[_pvpCurrent].program + '" id="id_program_logo_image" /></a>';
	output +=       '\n					</div>';

	output += 	'\n						<div id="episode_text">';
	output += 	'\n							<div id="pbs_logo">';
	output +=       '\n							<a href="' + _pvpLocalLink('http://www.pbs.org/') + '"><img id="pbslogo_advanced" src="http://www.pbs.org/modules/pvp/css/pbslogo_advanced.gif" width="55" height="28" alt="PBS" /><img id="pbslogo_basic" src="http://www.pbs.org/modules/pvp/css/pbslogo_basic.gif" width="55" height="28" alt="PBS" /></a>';
	output +=       '\n						</div>';
	output +=       '\n						<div>';
	output +=       '\n							<span class="episode_info_header">Episode:</span>';
	output +=       '\n							<span class="episode_title" id="id_episode_title">' + _pvpPlaylist[_pvpCurrent].episode + '</span>';
	output +=       '\n						</div>';

	output +=       '\n						<div id="airdate_details">';
	output +=       '\n     	                		        <span class="episode_airdate" id="id_episode_airdate">' + _pvpBroadcastLink(_pvpPlaylist[_pvpCurrent].nola) + '</span>';
	output +=       '\n						</div>';

	output +=       '\n						<a href="' + _pvpLocalLink(_pvpPlaylist[_pvpCurrent].link_url) + '" id="id_link_title">' + _pvpPlaylist[_pvpCurrent].link_title + '</a>';
	output +=       '\n             	</div>';

	output +=       '\n					<div id="floathack"><!-- This is a hack to make the floated logo and episode info box depths work --></div>';
	output +=       '\n				</div>'; //end bsgutter7
	output +=       '\n			</div>';
	output +=       '\n		</div>'; //end bsgutter5

	output +=       '\n	<!-- Main area end -->';
	output +=       '\n	</div>';

	//More video links
	output +=       '\n	<div id="video_links">';
	output +=       '\n		<dl>';
	output +=       '\n			<dt class="morevideos_headline">More videos</dt>';

	for( var i=0; i < _pvpPlaylist.length; i++ ) {
		output +=       '\n				<dd class="promo150x80" id="id_promo150x80_' + i + '"><a href="javascript:_pvpLoadVideo(_pvpPlaylist[' + i + ']);"><img src="' + _pvpPlaylist[i].clip_image + '" width="150" height="80" alt="' + _pvpPlaylist[i].program + '" class="video_promo_art" /></a></dd>';
		output +=       '\n				<dd class="promoset" id="id_promoset_' + i + '">';
		output +=       '\n      			        <div class="bsgutter5">';
		output +=       '\n						<dl>';
		output +=       '\n							<dt class="promoset_link"><a href="javascript:_pvpLoadVideo(_pvpPlaylist[' + i + ']);">' + _pvpPlaylist[i].program + ': ' + _pvpPlaylist[i].title + '</a></dt>';
		output +=       '\n							<dd class="promoset_text">' + _pvpPlaylist[i].description + '</dd>';
		output +=       '\n						</dl>';
		output +=       '\n    		        	        </div>';  //end bsgutter5
		output +=       '\n				</dd>';
	}
	
	output +=       '\n		</dl>';
	output +=       '\n	</div>';

        output +=       '\n     <!-- Quicktime link start -->';
        output +=       '\n    	<div id="software_link">';
        output +=       '\n    		<p><a href="http://www.apple.com/quicktime/download/" target="_blank"><img src="http://www.pbs.org/modules/pvp/css/quicktimelogo.gif" width="42" height="42" alt="Get QuickTime" /></a>';
        output +=       '\n    		<a href="http://www.apple.com/quicktime/download/" target="_blank">Download free QuickTime plug-in</a></p>';
        output +=       '\n    	</div>';
        output +=       '\n    	<!-- Quicktime link end -->';

        output +=       '\n</div>'; //end bsgutter10

	output +=       '\n<!-- Container end -->';
	output +=       '\n</div>';
	document.write(output);
    cOnUnload = window.onunload;
    window.onunload = function() {
        var player = document.getElementById('pbs_pvp_container');
        player.parentNode.removeChild(player);
        if (cOnUnload != null && typeof(cOnUnload) == 'function') {
            cOnUnload();
        }
    }
}
