//webcast data
var subtitleUrl = "";
var slidesUrl = "";

//default player settings
var useDynamicResizing = true;
var useSlideReplacement = true;
var useSlideChangeSignal = true;
var showPlayControls = true;
var showMediaPlayerControls = false;
var showViewControl = true;
var showAccessibilityControl = true;
var showSoundControl = true;
var promptForFeedback = false;
var hideFeedbackAfterSubmit = true;
var showTestText = false;
var automaticPlayerSelection = false;
var showSearch = false;
//menu
var useAutomaticMenuPositioning = true;
var automaticMenuPositioningOffsetTop = 0;
var menuOffsetHeight = 5;
						
//global
var mediaPlayerWidth = 320;
var mediaPlayerHeight = 240;
var isAudioOnly = false;
var showMediaSelection = false;
var tabPanelMargin = null;
var playerHeightOffset = 50;
var positionBarOffset = 300;

var selectedMediaPlayer = null;
var selectedMediaUrl = null;
var hasMultipleLanguages = false;
var selectedLanguage = "en-gb";
var streamId = null;
var externalPlayer = false;
var topicIndex = -1;
var startPosition = -1;
var autoStart = true;

var mp = null;
var mp2 = null;
var slides = null;
var subtitles = null;
var controller = null;
var positionBar = null;
var playBtn = null;
var tabPanel1 = null;
var onBeforeUnloadTriggered = false;

//user data
var cid = "";
var requireRegistration = true;
var reportUrl = "";
var mediaUrl = null;
var mediaType = null;
var usePlayerPopup = false;
var trackTopics = false;

//rpc for live data
var rpcScript = null;
var rpcUrl = "./data/livedata.js";
var rpcTimer = null;
var rpcTimeStamp = "";


var isPresentationStarted = false;
var liveData = null;
var userData = null;
var isLoaded = false; //window.onload

document.write('<script id="liveData" language="javascript" type="text/javascript" src="./data/livedata.js?i=' + new Date().getTime() +  Math.random()*1000 + '"></script>');

function initPlayer()
{
    //get user data
	userData = getUserData();
	
	if(requireRegistration)
	{
		if(!userData.isRegistered)
		{
			if(isPresentation())
			{
				//has saved presentation url
				setCookie("targetUrl", window.location);
			}
			redirect(registrationUrl);
			return;
		}
	}
	
	//get live data
	if(liveData != null)
	{
		//is user at correct url?
		if(window.location.href.indexOf(liveData.targetUrl) < 0)
		{
		    if(isPresentation() && liveData.targetUrl.indexOf("index.htm") > -1)
		    {
		        if(!automaticPlayerSelection)
			    {
			        var pq = new PageQuery();
			        streamId = (streamId != null)?streamId:pq.getValue('sid');
			        if(streamId == null)
			        {
				        setCookie("targetUrl", window.location);
				        redirect(selectPlayerUrl);
			        }
			    }
			    if(hasMultipleLanguages)
			    {
			        var pq = new PageQuery();
			        selectedLanguage = selectedLanguage?selectedLanguage:pq.getValue('lang');
			        if(selectedLanguage == null)
			        {
				        setCookie("targetUrl", window.location);
				        redirect(selectPlayerUrl);
			        }
			    }
		    }
		    else
		    {
		        //move user to current url if not select-player
			    if(window.location.href.indexOf(selectPlayerUrl) < 0)
			    {
				    redirect(liveData.targetUrl);
			    }
		    }	
		}
		else if(isPresentation())
		{
			//presentaion will be started in onload
			//has saved presentation url
			if(!automaticPlayerSelection)
			{
			    var pq = new PageQuery();
			    streamId = (streamId != null)?streamId:pq.getValue('sid');
			    if(streamId == null)
			    {
				    setCookie("targetUrl", window.location);
				    redirect(selectPlayerUrl);
			    }
			}
			if(hasMultipleLanguages)
			{
			    var pq = new PageQuery();
			    selectedLanguage = selectedLanguage?selectedLanguage:pq.getValue('lang');
			    if(selectedLanguage == null)
			    {
				    setCookie("targetUrl", window.location);
				    redirect(selectPlayerUrl);
			    }
			}
		}	
	}
	else
	{
		alert("To view this webcast, you must enable javascript and cookies in your browser.");
	}
}


function redirect(url)
{
	if(window.location.href.indexOf(url) < 0)
	{
		if(isTest)
		{
		    window.location = url+"?test="+test;
		}
		else
		{
		    window.location = url;
		}
	}
}

function isPresentation()
{
    if(window.location.href.indexOf("register") < 0 && window.location.href.indexOf("select-player.htm") < 0)
	{
		return true;
	}
	return false;
}

function startPresentation()
{
	if(isPresentation())
	{
		//has saved presentation url
		var pq = new PageQuery();
		streamId = (streamId != null)?streamId:pq.getValue('sid');
		if(streamId != null)
		{
			if(isLoaded)
			{
				initPresentation();
			}
		}
		else
		{
			setCookie("targetUrl", window.location);
			redirect(selectPlayerUrl);
		}
	}
	else
	{
		if(userData.targetUrl != null)
		{
			redirect(userData.targetUrl);
		}
		else
		{
			//oops go to default presentation
			redirect(presentations[0]);
		}
	}
}

function webcast_onload()
{
	isLoaded = true;
	
	//fix for browser that can't dynamically add script tag in header
	if(isLive && rpcTimer == null)
	{
		updateLiveData();
	}
	
	//select player page
	if(window.location.href.indexOf("select-player.htm") > -1)
	{
		EventManager.Add('selectplayer-btn', 'click', selectplayer_click);
	}	
	
	if(isPresentation())
	{
		initPresentation();
	}
}

window.onbeforeunload = function()
{
	try
	{
		if(promptForFeedback && !userData.sentFeedback && !onBeforeUnloadTriggered && tabPanel1 != null)
		{
			onBeforeUnloadTriggered = true;
			tabPanel1.selectTab("Feedback");
			event.returnValue = "Please press cancel and take a moment to give us your feedback";
		}
	}
	catch(ex)
	{
	
	}
}

function playStream(sid, width, height)
{
	streamId = sid;
	mediaPlayerWidth = width;
	mediaPlayerHeight = height;
	
	var videoDiv = document.getElementById('video');
	videoDiv.style.width = mediaPlayerWidth;
	
	init();
	
	showMediaPanel(true);
}
			
function showMediaPanel(show)
{
	var selectPlayerDiv = document.getElementById('select-player');
	var mediaDiv = document.getElementById('mediapanel');
	if(show)
	{
		selectPlayerDiv.style.display = "none";
		mediaDiv.style.display = "block";
	}
	else
	{
		selectPlayerDiv.style.display = "block";
		mediaDiv.style.display = "none";
	}
}

function initPresentation()
{
    isPresentationStarted = true;
	//presentation
	videoPanel = document.getElementById('video');
	playerPanel = document.getElementById('wrapper');
	audioImage = document.getElementById('audioonly');
	mediaPanel = document.getElementById('mediapanel');
	tabPanel1 = new AXTabPanel('tabpanel');
	
	//input params
	var pq = new PageQuery();
	if(pq.getValue('tid') != null)
	{
		topicIndex = parseInt(pq.getValue('tid'));
	}
	if(pq.getValue('mu') != null)
	{
		mediaUrl = pq.getValue('mu');
	}
	
	//autostart
	if(pq.getValue('autostart') != null)
	{
		autoStart = false;
	}
	
	//external player setting
	if(pq.getValue('ep') != null)
	{
		externalPlayer = true;
	}
	var playInExternalPlayer = document.getElementById('externalplayer-btn');
	if(isMac || isOp || isSa || externalPlayer)
	{
	}
	else
	{
		if(playInExternalPlayer != null)
		{
			playInExternalPlayer.checked = false;
		}
	}
	if(playInExternalPlayer != null && playInExternalPlayer.checked)
	{
		externalPlayer = true;
	}
	
	if(showTestText)
	{
	    var o = document.getElementById("testtext");
	    if(o != null)
	    {
	        o.style.display = "block";
	    }
	}
	
	if(showPlayControls)
	{
		//show play control buttons
		var playControls = document.getElementById('play-controls');
		if(playControls != null)
		{
			playControls.style.display = "block";
			
			playBtn = document.getElementById('play-btn');
			if(playBtn != null)
			{
				EventManager.Add('play-btn','click', playBtnClick = function(){if(mp!=null)mp.play();});
				playBtn.style.display = "block";
			}
			
			if(!isLive)
			{
				var prevSlideBtn = document.getElementById('slide-previous');
				if(prevSlideBtn != null)
				{
					EventManager.Add('slide-previous', 'click', prevSlideBtnClick = function(){if(controller!=null)controller.previous();});
					prevSlideBtn.style.display = "block";
				}
				
				var nextSlideBtn = document.getElementById('slide-next');
				if(nextSlideBtn != null)
				{
					EventManager.Add('slide-next', 'click', nextSlideBtnClick = function(){if(controller!=null)controller.next();});
					nextSlideBtn.style.display = "block";
				}
			}
			
			var positionBarDiv = document.getElementById('axp-playbackcontrol1');
			if(positionBarDiv != null)
			{
				positionBarDiv.style.display = "block";
				if(AXPositionBar != null)
				{
					positionBar = new AXPositionBar('axp-playbackcontrol1');
					positionBar.positionChange = function positionBar_positionChange(s)
					{
					    // alert('playbackControl positionChange '+s);
						if(mp != null) 
						{
							mp.setPosition(s);
						}
					};
					positionBar.volumeChange = function(volume)
					{
					    if(mp != null)
					    {
					        mp.setVolume(volume);
					    }
					};
				}
			}
			
			var lineDiv = document.getElementById('line');
			if(lineDiv != null)
			{
				lineDiv.style.display = "block";
			}
			
			if(showViewControl)
			{
				var viewBtn = document.getElementById('view-btn');
				if(viewBtn != null)
				{
					EventManager.Add('view-btn','click', view_click);
					viewBtn.style.display = "block";
				}
			}
			
			if(showSoundControl)
			{
				var soundBtn = document.getElementById('sound-btn');
				if(soundBtn != null)
				{
					EventManager.Add('sound-btn','click', sound_click);
					soundBtn.style.display = "block";
				}
			}
			
			if(subtitleUrl != "" && subtitleUrl != null)
			{
				var subtitlesBtn = document.getElementById('subtitles-btn');
				if(subtitlesBtn != null)
				{
					EventManager.Add('subtitles-btn','click', subtitles_click);
					subtitlesBtn.style.display = "block";
				}
			}
			
			var accessibilityBtn = document.getElementById('accessibility-btn');
			if(showAccessibilityControl)
			{
				if(accessibilityBtn != null)
				{
					accessibilityBtn.style.display = "block";
					EventManager.Add('accessibility-btn','click', accessibility_click);
				}
			}
			else
			{
				if(accessibilityBtn != null)
				{
					accessibilityBtn.style.display = "none";
				}
			}
			
			//search
			var searchBtn = $('search-btn');
		    if(searchBtn != null)
		    {
			    if(!isLive && showSearch)
		        {
			        searchBtn.show();
			        EventManager.Add(searchBtn,'click', searchBtn_click);
			    }
			    else
			    {
			        searchBtn.hide();
			    }
		    }
		    var searchBox = $('search-box');
		    if(searchBox != null)
		    {
		        if(!isLive && showSearch)
		        {
			        searchBox.show();
			    }
			    else
			    {
			        searchBox.hide();
			    }
		    }	
				
			var jsDisabledDiv = document.getElementById('js-disabled');
			if(jsDisabledDiv != null)
			{
				jsDisabledDiv.style.display = "none";
			}	
		}
	}
	else
	{
		var playControls = document.getElementById('play-controls');
		if(playControls != null)
		{
			playControls.style.display = "none";
		}
		if(playerPanel != null)
		{
			playerPanel.style.marginTop = "10px";
		}
	}
	
	//Slides
	if(slidesUrl != "" && slidesUrl != null)
	{
		if(useSlideReplacement)
		{
			slides = new AXFlashSlides();
			slides.url = slidesUrl;
			slides.write("slides");
			slides.slideChange = function(id)
			{
			    //alert("slideChange");
			    if(controller != null) controller.setSlide(id);
			};
		}
		else
		{
			//html slides
			//slides = new AXFlashSlides("fslides", null, "FFFFFF");
		}
		
		//mp to play slide changing chime
		var videoph2 = document.getElementById("videoph2");
		if(useSlideChangeSignal && slides != null && videoph2 != null)
		{
		    videoph2.style.display = "block";
			var fo = new FlashObject("swf/attente.swf", "mp2", "1", "1", 6, "CCCCCC");
			fo.write("videoph2");
			mp2 = findObj("mp2");
		}
		else if(videoph2 != null)
		{
		    videoph2.style.display = "none";
		}
	}
	
	if(subtitleUrl != "")
	{
		subtitles = new AXSubtitleClass("subtitles", subtitleUrl);
	}
	
	controller = new AXController();
	controller.topicChange = function(topic, selected)
	{
	    //alert("topicchange "+topic.beginTime);
	    selected = (selected != null) ? selected : true;
	    if(mp != null && selected) 
		{
			if(Math.abs(mp.currentPosition-topic.beginTime) > 2.0)
			{
				mp.setPosition(topic.beginTime);
			}
		}
		if(mp != null && topic.imageUrl != null)
		{
			mp.setImage(topic.imageUrl, topic.imageAlt);
		}
		if(mp2 != null && !selected)
		{
			mp2.Play();
		}
		
		if(slides != null) 
		{
		    if(topic.slideUrl != slides.url)
		    {
		        slides.setUrl(topic.slideUrl, topic.slideId);
		    }
		    else
		    {
		        slides.setSlide(topic.slideId);
		    }
		}
	    if(trackTopics)
	    {
	        addTopicToLog(topic.id);
	    }
	};
	
	if(topicIndex > -1)
	{
		startPosition = controller.topics[topicIndex].beginTime;
	}
	
	//media
	var streams;
    var selectedStream;
    
	streamId = (streamId != null)?streamId:pq.getValue('sid');
	if(streamId != null)
	{
	    streams = streams = getMediaStreams(null, selectedLanguage, 1, streamId);
        if(streams != null && streams.length > 0)
        {
            selectedStream = streams[0];
        }
	}
	else
	{
	    selectedLanguage = selectedLanguage?selectedLanguage:pq.getValue('lang');
		if(automaticPlayerSelection)
        {
	        if(isWin && isIE)
	        {
	            streams = getMediaStreams("wm", selectedLanguage, 1);
	            if(streams != null && streams.length > 0)
	            {
	                selectedStream = streams[0];
	            }
	        }
	        else
	        {
	            streams = getMediaStreams("fl", selectedLanguage, 1);
	            if(streams != null && streams.length > 0)
	            {
	                selectedStream = streams[0];
	            }
	        }
        }
        else
        {
            streams = getMediaStreams(null, null, 1);
            if(streams != null && streams.length > 0)
            {
                selectedStream = streams[0];
            }
        }
	}
	
	if(selectedStream != null)
    {
        setMedia(selectedStream.url, selectedStream.mediatype, selectedStream.player);
	}
	
	if(isAudioOnly)
	{
	    var o = document.getElementById("view-btn");
	    o.innerHTML = "Slide View";
		o.className = "view-slides";
	}
	
	//maximise screen for slides
	if(useDynamicResizing && slidesUrl != "")
	{
	    playerLoaded();
		setFullScreen();
		if(isIE)
		{
		    setTimeout("setFullScreen();", 250);/* fix for IE*/
		}
		window.onresize();
		setView("presentation");
	}
	else
	{
	    playerLoaded();
	    setView("presentation");
	}
	
	//log hit
	if(reportUrl != null && reportUrl != "")
	{
		setTimeout("log_webcast()", 5000); 
	}
}

function getTopicLog()
{
    var o = [];
    if(cookies["cookiesenabled"] == "true")
	{
		var s = getCookie(window.location.pathname);
		if(s != null && s.length > 0)
		{
		    o = $A(s.split(','));
		}
	} 
	return o;
}

function addTopicToLog(index)
{
    if(cookies["cookiesenabled"] == "true")
	{
	    var o = getTopicLog();
	    if(o.length < 1)
	    {
	        for(var i=0; i<controller.topics.length; i++)
	        {
	            o[i] = 0;
	        }
	    }
		o[index] = 1;
		setCookie(window.location.pathname, o.toString(), 365);
	} 
}

function getMediaStreams(mediaformat, language, count, className)
{
    var streams = [];
    var s = $("medialinks").getElementsByTagName("A");
	if(s.length > 0)
	{
        for(var i=0; i<s.length;i++)
        {
            if(s[i].className != "")
            {
                var stream = null;
                if(mediaformat != null)
                {
                    if(s[i].className.indexOf(mediaformat) > -1)
                    {
                        stream = {};
                        stream.url = s[i].href;
                        if(s[i].lang != null)
                        {
                            stream.lang = s[i].lang;
                        }
                        
                        if(language != null)
                        {
                            if(stream.lang.indexOf(language) < 0)
                            {
                                stream = null;
                            }
                        }      
                    }
                }
                else
                {
                    if(className != null)
                    {
                        if(s[i].className == className)
                        {
                            stream = {};
                            stream.url = s[i].href;
                            if(s[i].lang != null)
                            {
                                stream.lang = s[i].lang;
                            }
                        }
                    }
                    else
                    {
                        stream = {};
                        stream.url = s[i].href;
                        if(s[i].lang != null)
                        {
                            stream.lang = s[i].lang;
                        }
                    }
                }
                
                if(stream != null)
                {
                    if(s[i].className.indexOf("wm") > -1)
                    {
                        stream.player = "wmp";
                    }
                    else if(s[i].className.indexOf("rm") > -1)
                    {
                        stream.player = "rp";
                    }
                    else if(s[i].className.indexOf("fl") > -1)
                    {
                        stream.player = "fp";
                    }
                                
                    if(s[i].className.indexOf("wma") > -1 || s[i].className.indexOf("rma") > -1 || s[i].className.indexOf("fla") > -1)
                    {
                        stream.mediatype = "audioonly";
                    }
                    else
                    {
                        stream.mediatype = "audiovideo";
                    }
                    
                    streams.push(stream);
                }
            }
            
            if(count != null && streams.length >= count)
            {
                break;
            }
        }
	}
	return streams;
}

function playerLoaded()
{
	var l = document.getElementById('loader');
	if(l != null)
	{
		l.style.display = "none";
	}
	
	var p = document.getElementById('wrapper');
	if(p != null)
	{
		p.style.visibility = "visible";
	}
	
	var pc = document.getElementById('play-controls');
	if(pc != null)
	{
		pc.style.visibility = "visible";
	}
}

function setView(name)
{
	if(name == "presentation" || name == "lobby")
	{
		//show video
		try
		{
			mp.setZoom(100);
			var wrapper = $("wrapper");
			if(!useDynamicResizing && wrapper != null && mp.width > 0)
			{
			    wrapper.style.width = mp.width+24+"px";
			    
			    var posbar = $("axp-playbackcontrol-position1");
			    if(posbar != null)
			    {
			        posbar.style.width = $('play-controls').offsetWidth-positionBarOffset+"px"; 
			        positionBar.updateSize();   
                }
			}
		}
		catch(ex)
		{}
		
		var mediaPanel = document.getElementById('mediapanel');
		if(mediaPanel != null)
		{
			mediaPanel.style.visibility = 'visible';
		}
		
		var videoPanel = document.getElementById('video');
		if(videoPanel != null)
		{
			videoPanel.style.visibility = 'visible';
		}
		
		var menuPanel = document.getElementById('menu');
		if(menuPanel != null)
		{
			if(isLive)
			{
				//menuPanel.style.display = 'none';
				menuPanel.style.visibility = 'hidden';
			}
			else
			{
				menuPanel.style.visibility = 'visible';
				menuPanel.style.display = 'block';
			}
		}
			
		var audioonlyImage = document.getElementById("audioonly-image");
		if(audioonlyImage != null)
		{
			audioonlyImage.style.visibility = "visible";
		}
		
		var centerPad = document.getElementById('centerpad');
		if(centerPad != null)
		{
		    if(mediaPanelAlignment == "left")
			{
				centerPad.style.marginLeft = mp.width+11+"px";
			}
			else if(mediaPanelAlignment == "right")
			{
				centerPad.style.marginRight = mp.width+11+"px";
			}
		}
		
		var menuPanel = document.getElementById('menu');
		if(menuPanel != null)
		{
		    menuPanel.style.width = mp.width+"px";
		}
		
		var separator = document.getElementById('tabpanelpad');
		separator.className = "separator";
		window.onresize();
	}
	else if(name == "presentation-slides")
	{
		//hide video
		if(mp != null)
		{
			mp.setZoom(10);
		}
		
		//hide mediapanel
		var mediaPanel = document.getElementById('mediapanel');
		if(mediaPanel != null)
		{
			mediaPanel.style.visibility = "hidden";
		}
		
		var videoPanel = document.getElementById('video');
		if(videoPanel != null)
		{
			videoPanel.style.visibility = 'hidden';
		}
		
		var menuPanel = document.getElementById('menu');
		if(menuPanel != null)
		{
			if(isLive)
			{
				//menuPanel.style.display = 'none';
				menuPanel.style.visibility = 'hidden';
			}
			else
			{
				menuPanel.style.visibility = 'hidden';
			}
		}
		
		var audioonlyImage = document.getElementById("audioonly-image");
		if(audioonlyImage != null)
		{
			audioonlyImage.style.visibility = "hidden";
		}
		
		//show tabpanel
		var centerPad = document.getElementById('centerpad');
		if(mediaPanelAlignment == "left")
		{
			centerPad.style.marginLeft = "10px";
		}
		else if(mediaPanelAlignment == "right")
		{
			centerPad.style.marginRight = "10px";
		}
		
		var separator = document.getElementById('tabpanelpad');
		separator.className = "noseparator";
		
		window.onresize();
	}
	else if(name == "big-video-slides")
	{
		//hide video
		if(mp != null)
		{
			mp.setZoom(150);
			var wrapper = $("wrapper");
			if(!useDynamicResizing && wrapper != null && mp.width > 0)
			{
			    wrapper.style.width = mp.width+24+"px";
			    
			    var posbar = $("axp-playbackcontrol-position1");
			    if(posbar != null)
			    {
			        posbar.style.width = $('play-controls').offsetWidth-positionBarOffset+"px"; 
			        positionBar.updateSize();   
                }
			}
		}
		
		//show tabpanel
		var centerPad = document.getElementById('centerpad');
		if(mediaPanelAlignment == "left")
		{
			centerPad.style.marginLeft = mp.width+11+"px";
		}
		else if(mediaPanelAlignment == "right")
		{
			centerPad.style.marginRight = mp.width+11+"px";
		}
		
		var menuPanel = document.getElementById('menu');
		if(menuPanel != null)
		{
		    menuPanel.style.width = mp.width+"px";
		}
		
		var separator = document.getElementById('tabpanelpad');
		separator.className = "separator";
		window.onresize();
	}
}

function setMedia(url, mt, player)
{	
    //alert("setMedia url:"+url+" mediatype:"+mt+" player:"+player);
	mediaUrl = url;
	mediaType = mt;
	
	var o = document.getElementById('externalplayer');
	
	if(externalPlayer || (o != null && o.checked))
	{
		externalPlayer = true;
		extPopup = window.open(url, '', 'toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=no, scrollbars=no, width=1, height=1');
	}
	else
	{
		mp = createMediaPlayer(player, "videoph1", "mp");
		if(mp != null)
		{
			mp.playStateChange = function(state)
			{
			    if(state != null)
				{
					switch(state)
					{
						case 1:
						{
							if(playBtn != null) 
								playBtn.className = "play";
							break;
						}
						case 2://pause
						{
							if(playBtn != null) 
								playBtn.className = "play";
							break;
						}
						case 3://playing
						{
							if(playBtn != null) 
								playBtn.className = "pause";
							break;
						}
						case 6://buffering
						{
							if(positionBar != null) positionBar.setBuffering(mp.bufferProgress);
							break;
						}
						case 10:
						{
							var d = mp.getDuration();
							if(positionBar != null) positionBar.setDuration(d);
							if(controller != null) controller.setDuration(d);
							break;
						}
					}
					if(positionBar != null) positionBar.setPlayState(state);
				}
			};
			
			mp.positionChange = function(s)
			{
				if(controller != null) controller.setPosition(s);
				if(subtitles != null) subtitles.setPosition(s);
				if(positionBar != null) 
				{
					if(positionBar.duration == 0) 
					{
						if(isLive)
						{
							positionBar.setDuration(-1);
						}
						else
						{
							var d = mp.getDuration();
							positionBar.setDuration(d);
							controller.duration = d;
						}
					}
					positionBar.setPosition(s);
				}
			};
			
			mp.downloadProgressChange = function(s)
			{
				if(positionBar != null) 
				{
					positionBar.setBuffering(s);
				}
			};
			
			mp.scriptChange = function(type, data)
			{
			    //alert("type="+type + " data=" + data);
				if(type == "slide")
				{
					if(slides != null)
					{
						slides.setUrl(data);
						//slides.setSlide(parseInt(data));
					}
				}
				else if(type == "image")
				{
					var img = document.getElementById("audioonly-image");
					var imageUrl = "data/" + data;
					if(img != null && img.src != imageUrl)
					{
						img.src = imageUrl;
					}
				}
				else if(type == "poll")
				{
					var pollFrame = document.getElementById('polling');
					if(pollFrame != null && data != null && data != "" && pollFrame.src != data)
					{
						pollFrame.src = data;
					}
				}
			};
		
			if(showMediaPlayerControls)
			{
				if(mediaType == "audioonly")
				{
					mp.setUIMode('audio');
				}
				else
				{
					mp.setUIMode('full');
				}
			}
			else
			{
				if(mediaType == "audioonly")
				{
					mp.setUIMode('invisible');
				}
				else
				{
					mp.setUIMode('none');
				}
			}
			
			if(startPosition > -1)
			{
				mp.setPosition(startPosition);
			}
			
			if(startPosition > -1)
			{
				mp.setPosition(startPosition);
			}
			
			mp.autoStart = autoStart;
			mp.setUrl(url);
			mp.write();
		}
	}
}

function createMediaPlayer(player, divId, mpId)
{
    var mediaPlayer = null;
	
	switch(player)
	{
		case "wmp":
		{
			mediaPlayer = new WindowsMediaPlayer(divId, mpId, mediaPlayerWidth, mediaPlayerHeight);
			break;
		}
		case "fp":
		{
			mediaPlayer = new FlashMediaPlayer({id:mpId, divId:divId, width:mediaPlayerWidth, height:mediaPlayerHeight});
			break;
		}
		case "rp":
		{
			mediaPlayer = new RealPlayer(divId, mpId, mediaPlayerWidth, mediaPlayerHeight);
			break;
		}
	}
	selectedMediaPlayer = player;

	return mediaPlayer;
}

function getMediaUrl(id)
{
	var url = "";
	var radios = selectPlayerPanel.getElementsByTagName('input');
	if(id != null)
	{
		if(radios[id].type == "radio" && radios[id].value != null)
		{
			url = radios[id].value;
		}
	}
	else
	{	
		for(var i=0; i<radios.length; i++)
		{
			if(radios[i].type == "radio" && radios[i].checked && radios[i].value != null)
			{
				url = radios[i].value;
				break;
			}
		}
	}
	return url;
}

//EVENTS
function player_event(command, arg1, arg2)
{
	//alert(command + " " + arg1);
	if(mp != null && mp[command] != null)
	{
		if(arg1 != null && arg2 == null)
		{
			mp[command](arg1);
		}
		else if(arg1 != null && arg2 != null)
		{
			mp[command](arg1, arg2);
		}
	}
}
function sound_click(e)
{
	var o = null;
	if (e.target){o = e.target;}
	else if (e.srcElement){o = e.srcElement;}
	
	this.isMute = !this.isMute;
	if(o != null && this.isMute)
	{
		if(mp != null) 
			mp.setVolume(1);
			o.innerHTML = "Sound off";
			o.className = "sound-off";
	}
	else{
		if(mp != null) 
			mp.setVolume(75);
			o.innerHTML = "Sound on";
			o.className = "sound-on";
	}
}
function subtitles_click(e)
{
	var o = null;
	if (e.target){o = e.target;}
	else if (e.srcElement){o = e.srcElement;}
	
	if(o.className == "subtitles-off")
	{
		o.innerHTML = "Subtitles on";
		o.className = "subtitles-on";
		if(subtitles != null) subtitles.setVisible(true);
	}
	else{
		o.innerHTML = "Subtitles off";
		o.className = "subtitles-off";
		if(subtitles != null) subtitles.setVisible(false);
	}
	window.onresize();
}

function accessibility_click(e)
{
    if(window.mp != null)
    {
        window.mp.pause();
    }
}

function searchBtn_click(e)
{
    var o = null;
	if (e.target){o = e.target;}
	else if (e.srcElement){o = e.srcElement;}
	
	var searchTxt = $F('search-box');
	if(slides != null)
	{
	    slides.search(searchTxt);
	}
}

function view_click(e)
{
	var o = null;
	if (e.target){o = e.target;}
	else if (e.srcElement){o = e.srcElement;}
	
	if(isAudioOnly)
	{
	   if(o.className == "view-all")
	    {
		    o.innerHTML = "Slide View";
		    o.className = "view-slides";
		    setView('presentation');	    
	    }
	    else
	    {
		    o.innerHTML = "View All";
		    o.className = "view-all";
		    setView('presentation-slides');
	    }
	}
	else
	{
	    if(o.className == "view-all")
	    {
		    o.innerHTML = "Large Video";
		    o.className = "view-video";
		    setView('presentation');
	    }
	    else
	    {
	        o.innerHTML = "Default View";
		    o.className = "view-all";
		    setView('big-video-slides');
	    }
	}
}

function resize()
{
	try
	{
		if(useDynamicResizing)
		{
		    
			var tabPanel = document.getElementById('tabpanel');
			if(tabPanel != null && tabPanel.style.display != "none")
			{
				var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
				var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
			
			    //alert("resize w="+w+" h="+h);
			    
				//set min height for screen resolutions <= 800x600
				if(h<400)
				{
					h = 400;
				}
		
				var menuPanel = document.getElementById('menu-content');
				var videoPanel = document.getElementById('video');
				var footerPanel = document.getElementById('footer');
				var tabContentPanel = document.getElementById('tabcontent');
				var subtitlesPanel = document.getElementById('subtitles');
				var slidePanel = document.getElementById('slides');
				var testtext = document.getElementById('testtext');
				var banner = document.getElementById('banner');
				var playControls = document.getElementById('play-controls');
				var maxContentHeight = h;
				
				if(playControls != null && playControls.style.display != "none")
				{
				    maxContentHeight -= playControls.offsetHeight;
				}
				if(banner != null && banner.style.display != "none")
				{
				    maxContentHeight -= banner.offsetHeight;
				}
				if(testtext != null)
				{
				    maxContentHeight -= testtext.offsetHeight;
				}
				if(tabPanel != null)
				{
				    maxContentHeight -= tabPanel.offsetTop;
				}
				if(footerPanel != null)
				{
				    maxContentHeight -= footerPanel.offsetHeight;
				}

				if(isIE)
				{
					tabContentHeight = maxContentHeight+playerHeightOffsetIE;
				}
				else
				{
					tabContentHeight = maxContentHeight+playerHeightOffsetOther;
				}
				
				if(subtitlesPanel && subtitlesPanel.style.display == "block")
				{
					tabContentPanel.style.height = (tabContentHeight-subtitlesPanel.offsetHeight) + "px";
					var h = (tabContentHeight-videoPanel.offsetHeight);
					if(h<0) 
					{
						h = 0;
					}
					menuPanel.style.height = h + "px";
				}
				else
				{
					var x = 0;
					var y = 0;
					
					if(tabContentHeight > 300)
					{
                        x = tabContentHeight;
					    y = x-videoPanel.offsetHeight+menuOffsetHeight;				
					}
					else
					{
					    x = 300;
					    y = x-videoPanel.offsetHeight+menuOffsetHeight;
					}

					tabContentPanel.style.height = x+"px";
					menuPanel.style.height = y+"px";
				}
				
				if(slidePanel != null)
				{
					slidePanel.style.width = "100%";
					slidePanel.style.height = "100%";
				}
			}
		}
	}
	catch(ex)
	{
	
	}
}

window.onresize = function()
{
	resize();
}

function log_webcast()
{
	//send log
	var img = new Image();
	img.src = reportUrl + "t=p&cid=" + userData.id + "&i=" + new Date().getTime();
	//alert(img.src);
}

function getUserData()
{
	var o = new Object();
	if(cookies["cookiesenabled"] == "true")
	{
		o = new Object();
		o.id = getCookie("cid");
		if(o.id == null)
		{
			o.id = new Date().getTime()+Math.random(10000);
			setCookie("cid", o.id, 365);
		}
		o.isRegistered = (getCookie("isRegistered") == "true")?true:false;
		o.sentFeedback = getCookie("sentFeedback");
		o.targetUrl = getCookie("targetUrl");
	}
	return o;
}

function selectplayer_click()
{
    var sid;
    var lang;
    var o;
    
    o = document.getElementsByName("sid");
    for(var i=0; i<o.length; i++)
    {
        if(o[i].checked)
        {
            sid = o[i].value;
            break;
        }
    }
    
    o = document.getElementsByName("lang");
    for(var i=0; i<o.length; i++)
    {
        if(o[i].checked)
        {
            lang = o[i].value;
            break;
        }
    }
    
    var autostart = (document.getElementById("autostart") && document.getElementById("autostart").checked) ? false : true;

    var url = url = presentations[0];
		
    var qs = [];
    if(sid != null)
    {
	    qs["sid"] = sid;
	}
    if(lang != null)
    {
        qs["lang"] = lang;
    }
    if(!autostart)
    {
        qs["autostart"] = false;
    }
    if(isTest)
    {
        qs["test"] = test;
    }
		
	qs = getQueryString(qs);
	
	if(usePlayerPopup)
	{
		if(qs.length > 0)
		{
			window.open(url+"?"+qs, "player");
		}
		else
		{
			window.open(url, "player");
		}
	}
	else
	{
	    if(qs.length > 0)
	    {
	        window.location = url+"?"+qs;
	    }
	    else
	    {
	        window.location = url;
	    }
	}
}

function sendFeedback(id, qs)
{
    var img = new Image();
	var url = reportUrl + "t=f&" + "cid=" + userData.id + "&" + getQueryString(qs);
	img.src = url + "&i="+new Date().getTime()+Math.random()*1000;
	//alert(img.src);
	//update cookies
	var s = "feedback-q"+id;
	userData[s] = true;
	setCookie(s, "true", 365);
}

//RPC -- move to axlib
function sendRPC(url) 
{
	if (rpcTimer) 
	{
		setTimeout("sendRPC('" + url + "')", 100);  // Try again in 71ms
		return;
	}
	
	if(isIE)
	{
		if(rpcScript == null)
		{
			rpcScript = document.getElementById("livedata");
		}	
	}
	else
	{
		rpcScript = document.createElement('script');
		rpcScript.type = "text/javascript";
		document.body.appendChild(rpcScript);	
	}
	
	if(rpcScript != null)
	{
		rpcScript.src = url;
	}
	else
	{
		//alert("no myScript");
	}
}

function updateLiveData() 
{
	//alert("get live data");
	var params = new Date().getTime() +  Math.random()*1000;
	if(rpcTimer == null)
	{
		sendRPC(rpcUrl+"?x="+params);
	}
}

// file: pagequery_api.js
// javascript query string parsing utils
// pass location.search to the constructor: var page = new PageQuery(location.search)
// get values like: var myValue = page.getValue("param1") etc.
// djohnson@ibsys.com {{djohnson}}
// you may use this file as you wish but please keep this header with it thanks

function PageQuery(q) {
	q = q ? q : location.search;
	if(q.length > 1) this.q = q.substring(1, q.length);
	else this.q = null;
	this.keyValuePairs = new Array();
	if(q) {
		for(var i=0; i < this.q.split("&").length; i++) {
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}
	this.getKeyValuePairs = function() { return this.keyValuePairs; }
	this.getValue = function(s) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0] == s)
				return this.keyValuePairs[j].split("=")[1];
		}
		return null;
	}
	this.getParameters = function() {
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++) {
			a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}
	this.getLength = function() { return this.keyValuePairs.length; }	
}

// LIB
/**
 * Sets a Cookie with the given name and value.
 *
 * name       Name of the cookie
 * value      Value of the cookie
 * [expires]  Expiration date of the cookie (default: end of current session)
 * [path]     Path where the cookie is valid (default: path of calling document)
 * [domain]   Domain where the cookie is valid
 *              (default: domain of calling document)
 * [secure]   Boolean value indicating if the cookie transmission requires a
 *              secure transmission
 */
function setCookie(name, value, days, path, domain, secure) {
    var expires;
    if(days != null)
    {
		expires = new Date();
		expires.setTime(expires.getTime()+(days*24*60*60*1000));
    }
	document.cookie = name + "=" + escape(value) + 
	((expires) ? "; expires=" + expires.toGMTString() : "") + 
	((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + 
	((secure) ? "; secure" : "");
}

/**
 * Gets the value of the specified cookie.
 *
 * name  Name of the desired cookie.
 *
 * Returns a string containing value of specified cookie,
 *   or null if cookie does not exist.
 */
function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

/**
 * Deletes the specified cookie.
 *
 * name      name of the cookie
 * [path]    path of the cookie (must be same as path used to create cookie)
 * [domain]  domain of the cookie (must be same as domain used to create cookie)
 */
function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

//register onload
EventManager.Add(window, 'load', webcast_onload);
//Event.onDOMReady(webcast_onload);
