//global
var isAudioOnly = false;
var showMediaSelection = false;
var tabPanelMargin = null;

var selectedMediaPlayer = null;
var selectedMediaUrl = null;
var selectedStream = 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 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 = null;
var rpcInterval = 5;

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()
{
    //hook
	if(typeof(onPlayerInit) != "undefined")
	{
	    onPlayerInit();
	}
	
    //get user data
	userData = getUserData();
	
	if(requireRegistration)
	{
		if(!userData.isRegistered)
		{
			if(isPresentation())
			{
				//has saved presentation url
				Cookies.setCookie("targetUrl", window.location, 365);
			}
			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)
			        {
				        Cookies.setCookie("targetUrl", window.location);
				        redirect(selectPlayerUrl);
			        }
			    }
			    if(hasMultipleLanguages)
			    {
			        var pq = new PageQuery();
			        selectedLanguage = selectedLanguage?selectedLanguage:pq.getValue('lang');
			        if(selectedLanguage == null)
			        {
				        Cookies.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)
			    {
				    Cookies.setCookie("targetUrl", window.location, 365);
				    redirect(selectPlayerUrl);
			    }
			}
			if(hasMultipleLanguages)
			{
			    var pq = new PageQuery();
			    selectedLanguage = selectedLanguage?selectedLanguage:pq.getValue('lang');
			    if(selectedLanguage == null)
			    {
				    Cookies.setCookie("targetUrl", window.location, 365);
				    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.href = url+"?test="+test;
		}
		else
		{
		    window.location.href = 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
		{
			Cookies.setCookie("targetUrl", window.location, 365);
			redirect(selectPlayerUrl);
		}
	}
	else
	{
		if(userData.targetUrl != null)
		{
			redirect(userData.targetUrl);
		}
		else
		{
			//oops go to default presentation
			redirect(presentations[0]);
		}
	}
}

function webcast_load()
{
    isLoaded = true;
	
	//fix for browser that can't dynamically add script tag in header
	if(isLive)
	{
	    updateLiveData();
	}
	
	//select player page
	if(window.location.href.indexOf("select-player.htm") > -1)
	{
		Event.observe('selectplayer-btn', 'click', selectplayer_click, false);
	}	
	
	if(isPresentation())
	{
		initPresentation();
	}
}

function webcast_beforeunload()
{
	if(isPresentation())
    {
        if(mp != null)
        {
            mp.stop();
        }
        //hook
        if(typeof(onPlayerUnload) != "undefined")
        {
            onPlayerUnload();
        }
    }
}

function initPresentation()
{
    isPresentationStarted = true;
	//presentation
	videoPanel = $('video');
	playerPanel = $('wrapper');
	audioImage = $('audioonly');
	mediaPanel = $('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 = $('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 = $("testtext");
	    if(o != null)
	    {
	        o.style.display = "block";
	    }
	}
	
	if(showPlayControls)
	{
		//show play control buttons
		var playControls = $('play-controls');
		if(playControls != null)
		{
			playControls.style.display = "block";
			
			playBtn = $('play-btn');
			if(playBtn != null)
			{
				Event.observe('play-btn', 'click', playBtnClick = function(){if(mp!=null)mp.play();}, false);
				playBtn.style.display = "block";
			}
			
			if(!isLive)
			{
				var prevSlideBtn = $('slide-previous');
				if(prevSlideBtn != null)
				{
					Event.observe('slide-previous', 'click', prevSlideBtnClick = function(){if(controller!=null)controller.previous();}, false);
					prevSlideBtn.style.display = "block";
				}
				
				var nextSlideBtn = $('slide-next');
				if(nextSlideBtn != null)
				{
					Event.observe('slide-next', 'click', nextSlideBtnClick = function(){if(controller!=null)controller.next();}, false);
					nextSlideBtn.style.display = "block";
				}
			}
			
			var positionBarDiv = $('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 = $('line');
			if(lineDiv != null)
			{
				lineDiv.style.display = "block";
			}
			
			if(showViewControl)
			{
				var viewBtn = $('view-btn');
				if(viewBtn != null)
				{
					Event.observe('view-btn', 'click', view_click, false);
					viewBtn.style.display = "block";
				}
			}
			
			if(showSoundControl)
			{
				var soundBtn = $('sound-btn');
				if(soundBtn != null)
				{
				    Event.observe('sound-btn', 'click', sound_click, false);
					soundBtn.style.display = "block";
				}
			}
			
			var accessibilityBtn = $('accessibility-btn');
			if(showAccessibilityControl)
			{
				if(accessibilityBtn != null)
				{
					accessibilityBtn.style.display = "block";
					Event.observe('accessibility-btn', 'click', accessibility_click, false);
				}
			}
			else
			{
				if(accessibilityBtn != null)
				{
					accessibilityBtn.style.display = "none";
				}
			}
			
			//search
			var searchBtn = $('search-btn');
		    if(searchBtn != null)
		    {
			    if(!isLive && showSearch)
		        {
			        searchBtn.show();
			        Event.observe('search-btn', 'click', searchBtn_click, false);
			    }
			    else
			    {
			        searchBtn.hide();
			    }
		    }
		    var searchBox = $('search-box');
		    if(searchBox != null)
		    {
		        if(!isLive && showSearch)
		        {
			        searchBox.show();
			    }
			    else
			    {
			        searchBox.hide();
			    }
		    }	
				
			var jsDisabledDiv = $('js-disabled');
			if(jsDisabledDiv != null)
			{
				jsDisabledDiv.style.display = "none";
			}	
		}
	}
	else
	{
		var playControls = $('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);
			};
			slides.slidesLoading = function()
			{
			    /*
			    if(window.mp != null && window.mp.playState == 2)
			    {
			        window.mp.pause();
			    }
			    */
			};
			slides.slidesLoaded = function()
			{
			    /*
			    if(window.mp != null && window.mp.playState != 3)
			    {
			        window.mp.play();
			    }
			    */
			};
		}
		else
		{
			//html slides
			//slides = new AXFlashSlides("fslides", null, "FFFFFF");
		}
		
		//mp to play slide changing chime
		var videoph2 = $("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 = $("mp2");
		}
		else if(videoph2 != null)
		{
		    videoph2.style.display = "none";
		}
	}
	
	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 && useSlideChangeSignal)
		{
			try
			{
			    mp2.Play();
			}
			catch(ex)
			{
			}
		}
		
		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;
	}
	else
	{
	    if(controller.topics.length > 0 && controller.topics[0].slideId > 0)
	    {
	        slides.setSlide(controller.topics[0].slideId);
	    }
	}
	
	//media
	var streams;
	streamId = (streamId != null)?streamId:pq.getValue('sid');
	if(streamId != null)
	{
	    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("rm", 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);
        
        //subs
        if(selectedStream.subtitleUrl != null)
	    {
		    subtitles = new AXSubtitleClass("subtitles", selectedStream.subtitleUrl);
		    var subtitlesBtn = $('subtitles-btn');
			if(subtitlesBtn != null)
			{
			    Event.observe('subtitles-btn', 'click', subtitles_click, false);
				subtitlesBtn.style.display = "block";
			}
	    }
	    else if($('subtitles') != null)
	    {
	        $('subtitles').hide();
	    }
	}
	
	if(isAudioOnly)
	{
	    var o = $("view-btn");
	    o.innerHTML = "Slide View";
		o.className = "view-slides";
	}
	
	//maximise screen for slides
	if(useDynamicResizing && slidesUrl != null)
	{
	    playerLoaded();
		setFullScreen();
		resize();
		setTimeout("resize()", 5000);/* fix for IE*/
		setView("presentation");
	}
	else
	{
	    playerLoaded();
	    setView("presentation");
	}
	
	//log hit
	if(reportUrl != null && reportUrl != "")
	{
		setTimeout("log_webcast()", 5000); 
	}
	
	//hook
	if(typeof(onPlayerLoaded) != "undefined")
	{
	    onPlayerLoaded();
	}
}

function getTopicLog()
{
    var o = [];
    if(Cookies.accept)
	{
		var s = Cookies.getCookie(window.location.pathname);
		if(s != null && s.length > 0)
		{
		    o = $A(s.split(','));
		}
	} 
	return o;
}

function addTopicToLog(index)
{
    if(Cookies.accept)
	{
	    var o = getTopicLog();
	    if(o.length < 1)
	    {
	        for(var i=0; i<controller.topics.length; i++)
	        {
	            o[i] = 0;
	        }
	    }
		o[index] = 1;
		Cookies.setCookie(window.location.pathname, o.toString(), 365);
	} 
}

function getMediaStreams(mediaformat, language, count, className)
{
    var streams = [];
    var s = null;
	
    if($("medialinks") != null)
    {
         s = $("medialinks").getElementsByTagName("A");
    }
    
    if(s != null && 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;
                        stream.sid = s[i].className;
                        if(s[i].lang != null)
                        {
                            stream.lang = s[i].lang;
                        }
                        if(s[i].hreflang != null && s[i].hreflang != "")
                        {
                            stream.subtitleUrl = s[i].hreflang;
                        }
                        
                        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;
                            stream.sid = s[i].className;
                            if(s[i].lang != null)
                            {
                                stream.lang = s[i].lang;
                            }
                            if(s[i].hreflang != null && s[i].hreflang != "")
                            {
                                stream.subtitleUrl = s[i].hreflang;
                            }
                        }
                    }
                    else
                    {
                        stream = {};
                        stream.url = s[i].href;
                        stream.sid = s[i].className;
                        if(s[i].lang != null)
                        {
                            stream.lang = s[i].lang;
                        }
                        if(s[i].hreflang != null && s[i].hreflang != "")
                        {
                            stream.subtitleUrl = s[i].hreflang;
                        }
                    }
                }
                
                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 = $('loader');
	if(l != null)
	{
		l.style.display = "none";
	}
	
	var p = $('wrapper');
	if(p != null)
	{
		p.style.visibility = "visible";
	}
	
	var pc = $('play-controls');
	if(pc != null)
	{
		pc.style.visibility = "visible";
    }

    if (useDynamicResizing && slidesUrl != null) {
        setTimeout("resize()", 5000); /* fix for IE*/
        setTimeout("resize()", 10000); /* fix for IE*/
    }
}

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 = playerWidth+"px";
			    if(positionBar != null && positionBarOffset != null)
			    {
			        positionBar.setSize($('play-controls').offsetWidth+positionBarOffset, null); 
                }
			}
			else if(positionBarWidth != null)
			{
			    positionBar.setSize(positionBarWidth, null); 
			}
		}
		catch(ex)
		{}
		
		if(subtitles != null)
		{
		    $('subtitles').style.width = mp.width+"px";
		}
		
		var mediaPanel = $('mediapanel');
		if(mediaPanel != null)
		{
			mediaPanel.style.visibility = 'visible';
		}
		
		var videoPanel = $('video');
		if(videoPanel != null)
		{
			videoPanel.style.visibility = 'visible';
		}
		
		var menuPanel = $('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 = $("audioonly-image");
		if(audioonlyImage != null)
		{
			audioonlyImage.style.visibility = "visible";
		}
		
		var centerPad = $('centerpad');
		if(centerPad != null && mp != null)
		{
		    if(mediaPanelAlignment == "left")
			{
				centerPad.style.marginLeft = mp.width+10+"px";
			}
			else if(mediaPanelAlignment == "right")
			{
				centerPad.style.marginRight = mp.width+10+"px";
			}
		}
		
		var menuPanel = $('menu');
		if(menuPanel != null && mp != null)
		{
		    menuPanel.style.width = mp.width+"px";
		}
		
		if($('tabpanelpad') != null)
		{
		    var separator = $('tabpanelpad');
		    separator.className = "separator";
		}
		
		resize();
	}
	else if(name == "presentation-slides")
	{
		//hide video
		if(mp != null)
		{
			mp.setZoom(10);
		}
		
	    if(positionBarWidth != null)
	    {
	        positionBar.setSize(positionBarWidth, null); 
        }
		
		//hide mediapanel
		var mediaPanel = $('mediapanel');
		if(mediaPanel != null)
		{
			mediaPanel.style.visibility = "hidden";
		}
		
		var videoPanel = $('video');
		if(videoPanel != null)
		{
			videoPanel.style.visibility = 'hidden';
		}
		
		var menuPanel = $('menu');
		if(menuPanel != null)
		{
			if(isLive)
			{
				//menuPanel.style.display = 'none';
				menuPanel.style.visibility = 'hidden';
			}
			else
			{
				menuPanel.style.visibility = 'hidden';
			}
		}
		
		var audioonlyImage = $("audioonly-image");
		if(audioonlyImage != null)
		{
			audioonlyImage.style.visibility = "hidden";
		}
		
		//show tabpanel
		var centerPad = $('centerpad');
		if(centerPad != null)
		{
		    if(mediaPanelAlignment == "left")
		    {
			    centerPad.style.marginLeft = "10px";
		    }
		    else if(mediaPanelAlignment == "right")
		    {
			    centerPad.style.marginRight = "10px";
		    }
		}

		var separator = $('tabpanelpad');
		separator.className = "noseparator";
		
		resize();
	}
	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 = playerWidth+"px";
			    if(positionBar != null && positionBarOffset != null)
			    {
			        positionBar.setSize($('play-controls').offsetWidth+positionBarOffset, null); 
                }
			}
			else if(positionBarWidth != null)
			{
			    positionBar.setSize(positionBarWidth, null); 
			}
		}
		
		if(subtitles != null)
		{
		    $('subtitles').style.width = mp.width+"px";
		}
		
		var centerPad = $('centerpad');
		if(centerPad != null)
		{
		    if(mediaPanelAlignment == "left")
			{
				centerPad.style.marginLeft = mp.width+10+"px";
			}
			else if(mediaPanelAlignment == "right")
			{
				centerPad.style.marginRight = mp.width+10+"px";
			}
		}
		
		var menuPanel = $('menu');
		if(menuPanel != null)
		{
		    menuPanel.style.width = mp.width+"px";
		}
		
		var separator = $('tabpanelpad');
		if(separator != null)
		{
		    separator.className = "separator";
		}
		resize();
	}
}

function setMedia(url, mt, player)
{	
    //alert("setMedia url:"+url+" mediatype:"+mt+" player:"+player);
	mediaUrl = url;
	mediaType = mt;
	
	var o = $('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;
						} //hook
						case 5://endofstream
						{
						    if(typeof(onPresentationEnd) != "undefined")
				            {
    			    	        onPresentationEnd();
				            }
						    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.setDownloadProgress(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 = $("audioonly-image");
					var imageUrl = "data/" + data;
					if(img != null && img.src != imageUrl)
					{
						img.src = imageUrl;
					}
				}
				else if(type == "poll")
				{
					var pollFrame = $('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":
		{
			/*var mpInfo = detectWMP();
			if(!mpInfo.scriptable)
			{
			    var rpInfo = detectRealPlayer();
			    if(rpInfo.scriptable)
			    {
			        player = "rp";
			        mediaPlayer = new RealPlayer(divId, mpId, mediaPlayerWidth, mediaPlayerHeight);
			    }
			    else
			    {
			        mediaPlayer = new WindowsMediaPlayer(divId, mpId, mediaPlayerWidth, mediaPlayerHeight);
			    }  
			}
			else
			{
			   
			}
			*/
			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;
}

//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-on")
	{
		o.innerHTML = "Subtitles Off";
		o.className = "subtitles-off";
		if(subtitles != null) subtitles.setVisible(true);
	}
	else{
		o.innerHTML = "Subtitles On";
		o.className = "subtitles-on";
		if(subtitles != null) subtitles.setVisible(false);
	}
	resize();
}

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 = "Zoom x2";
		    o.className = "view-video";
		    setView('presentation');
	    }
	    else
	    {
	        o.innerHTML = "Zoom x1";
		    o.className = "view-all";
		    setView('big-video-slides');
	    }
	}
}

function resize()
{
	try
	{
	    var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
	    var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
		
		var wrapper = $('wrapper');
		var tabPanel = $('tabpanel');
		var menuPanel = $('menu-content');
		var videoPanel = $('video');
		var footerPanel = $('footer');
		var tabContentPanel = $('tabcontent');
		var subtitlesPanel = $('subtitles');
		var slidePanel = $('slides');
		var testtext = $('testtext');
		var banner = $('banner');
		var playControls = $('play-controls');
		var maxContentHeight = h;
		
		if(useDynamicResizing)
		{
	        if(tabPanel != null && tabPanel.style.display != "none")
			{
				//alert("resize w="+w+" h="+h); 
				//set min height for screen resolutions <= 800x600
				if(h<400)
				{
					h = 400;
				}
		
				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%";
				}
			}
		}
		else
		{
		    if(playerWidth != null)
		    {
		        wrapper.style.width = playerWidth+"px";
		    }
		    
		    if(tabContentHeight != null && tabContentPanel.style.display != "none" && tabContentPanel.style.visibility != "hidden")
		    {
		        tabContentPanel.style.height = tabContentHeight+"px";
		    }
		    
		    if(menuHeight != null && menuPanel.style.display != "none" && menuPanel.style.visibility != "hidden")
		    {
		        menuPanel.style.height = menuHeight+"px";
		    } 
		}
	}
	catch(ex)
	{
	
	}
}

function log_webcast()
{
    //send log
	var url = reportUrl + "t=p&cid=" + userData.id;
	if(window.location.href.indexOf("sid=") < 0 && selectedStream != null && selectedStream.sid != null && selectedStream.sid != "")
	{
	    url += "&sid="+selectedStream.sid;
	}
	var img = new Image();
	img.src = url + "&i=" + new Date().getTime();
}

function getUserData()
{
    var o = new Object();
	if(Cookies.accept)
	{
		o = new Object();
		o.id = Cookies.getCookie("cid");
		if(o.id == null)
		{
			o.id = new Date().getTime()+Math.random(10000);
			Cookies.setCookie("cid", o.id, 365);
		}
		o.isRegistered = (Cookies.getCookie("isRegistered") == "true")?true:false;
		o.sentFeedback = Cookies.getCookie("sentFeedback");
		o.targetUrl = Cookies.getCookie("targetUrl");
	}
	return o;
}

function selectplayer_click()
{
    var sid;
    var lang;
    var o;
    var autostart = ($("autostart") && $("autostart").checked) ? false : true;
    var url = url = presentations[0];	
    var qs = $H([]);
    
    if(!autostart)
    {
        qs["autostart"] = false;
    }
    if(isTest)
    {
        qs["test"] = test;
    }
    
    o = document.getElementsByName("sid");
    if(o != null)
    {
        for(var i=0; i<o.length; i++)
		{
			if(o[i].name == "sid" && o[i].checked)
			{
				qs["sid"] = o[i].value;
				break;
			}
		}
    }
    
    o = $("lang");
    if(o != null)
    {
        if(o.type == "select-one" && o.options != null)
        {
            qs["lang"] = o.options[o.selectedIndex].innerHTML.toLowerCase();
        }
    }
		
	if(usePlayerPopup)
	{
		if(qs.toQueryString().length > 0)
		{
			window.open(url+"?"+qs.toQueryString(), "player");
		}
		else
		{
			window.open(url, "player");
		}
	}
	else
	{
	    if(qs.toQueryString().length > 0)
	    {
	        window.location = url+"?"+qs.toQueryString();
	    }
	    else
	    {
	        window.location = url;
	    }
	}
}

function sendFeedback(id, qs)
{
    var img = new Image();
	var url = reportUrl + "t=f&" + "cid=" + userData.id + "&" + qs;
	img.src = url + "&i="+new Date().getTime()+Math.random()*1000;

	var s = "feedback-q"+id;
	userData[s] = true;
	Cookies.setCookie(s, "true", 365);
}

//RPC -- move to axlib
function sendRPC(url) 
{
    var timestamp = new Date().getTime();
    if(rpcTimeStamp != null && timestamp-rpcTimeStamp < (rpcInterval*1000))
    {
        return;
    }
    else
    {
        rpcTimeStamp = timestamp;
    }
    
    
	if(isIE)
	{
		if(rpcScript == null)
		{
			rpcScript = $("livedata");
		}	
	}
	else
	{
		try
		{
		    rpcScript = document.createElement('script');
		    rpcScript.type = "text/javascript";
		    document.body.appendChild(rpcScript);	
		}
		catch(ex)
		{
		
		}
	}
	
	if(rpcScript != null)
	{
		rpcScript.src = url;
	}
	else
	{
		//alert("no myScript");
	}
	
	//alert("update livedata: "+url);
}

function updateLiveData() 
{
	if(rpcTimer == null)
	{
	    try
	    {
	        rpcTimer = new PeriodicalExecuter(updateLiveData.bindAsEventListener(this), rpcInterval);
	        rpcTimer.start();
	    }
	    catch(e)
	    {
	    
	    }
	}
	
	if(window.location.href.indexOf("register.htm") < 0)
	{
	    var params = new Date().getTime() +  Math.random()*1000;
	    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; }	
}

//register onload
Event.onDOMReady(webcast_load);
Event.observe(window,'resize',resize,true);
Event.observe(window,'beforeunload',webcast_beforeunload,true); 
