// JavaScript Document



// UI Main Objects
var mediaID = null;
var mediaPlaying = false;
var currentSpeaker = null;
var trackInterval = null;
var relPos = 0;
var innerPos = 0;
var Utf8 = {

    // public method for url encoding
    encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // public method for url decoding
    decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}
function ajaxLog(message){
	//alert('logging to server');
	if((message) && (message !="undefined"))
	agent.call('_ajax.php','alog',null,message);
	else return(true);
	}
function Presentations(){
	this.Open = function(){
		if(this.Count()>=arguments[0] && arguments[0]>0){
			this.GetItem(arguments[0]);
			this.Current().Open();
			
			}
			else return(false);
		}
	this.UserOpen = function(){
		if((PresentationList.Current().getProperty('status')==4 )|| (Webcast.getProperty('status')>2)){
			this.Open(arguments[0]);
			}
		else return(false);
		}
	this.OpenNext = function(){
		if(this.getPointer()<(this.Count()-1)){
			this.Next();
			//alert('setting presentation to next?');
			this.Current().Open();
			}
		else return(false);
		}
	this.OpenPrevious = function(){
			if(this.getPointer()>0){
				this.Previous();
				this.Current().Open();
			}
		else return(false);

		}
	}
Presentations.prototype = new ObjectList();
var PresentationList = new Presentations();
var Events = new ObjectList();
var Webcast = new Item();
	/*Webcast.setProperty('width',320);
	Webcast.setProperty('height',240);
*/
function UI(){
	this.init = initUI;

	function initUI(){
		this.setProperty('currentspeakerinfofield','speakertitleField');
		/*this.setProperty('',null);
		this.setProperty('',null);
		this.setProperty('',null);
		this.setProperty('',null);
		*/
		}
}
UI.prototype = new Item();

var UI = new UI();
	UI.init();

function ErrorHandler(){
	this.listLength = null;
	this.autoprint = false;
	this.ajaxlogger = function(message){
	if((message) && (message !="undefined"))
	agent.call('_ajax.php','alog',null,message);
	else return(true);
	}
	this.Add = function(){
		var newItem = this.Insert();
		newItem.setProperty('message',arguments[0]);
		if(this.autoprint) this.Print();
	
		if(arguments[1] && arguments[1]>3 ) this.ajaxlogger(arguments[0] + ' - Error severity:'+arguments[1]);
		}
	this.Print = function(){
		if(this.target && this.Count())
		addTD(this.target,this.Current().getProperty('message'),'BEGINNING');
		if(this.listLength != null)
		this.Trim(this.listLength);
		}
	this.PrintAll = function(){
		this.First();
		if(!this.isEmpty())
			do{
				this.Print();
				}while(this.Next());
		}
	this.Trim = function(){
		trimTable(this.target,arguments[0]);
		}
	}
ErrorHandler.prototype = new ObjectList();
statusmessages = new ErrorHandler();
statusmessages.target = 'statusmessagetable';
statusmessages.listLength = 10;
statusmessages.autoprint = true;
	
var errors = new ErrorHandler();
errors.target = 'errortable';
errors.autoprint = true;

function SlideControl(){
	this.enlargeSlide = enlargeSlide;
	this.preloadImage = new Image();
	this.slides 	= new ObjectList();
	this.init 		= initSlideControl;
	this.setSlide 	= setSlide;
	this.getSlide 	= getSlide;
	this.checkForChange = checkForChange;
	this.Change 	= change;
	this.Hide 		= hide;
	this.Show 		= show;
	this.SetOpacity = setOpacity;	
	this.Next 		= getNextSlide;
	this.Previous 	= getPreviousSlide;
	this.NextSlide  = openNextSlide;
	this.PreviousSlide = openPreviousSlide;
	this.Open 			= openSlideSet;
	this.OpenCurrent	= OpenCurrentSlide;
	this.setHTMLContent = setHTMLSlide;
	//this.displayHTMLSlide = openHTMLSlide;
	//this.displayImageSlide = openImage;
	function enlargeSlide(){
		window.open(baseURL+'viewpicture.php?pid='+PresentationList.Current().getProperty('slides').Current().getProperty('id'), 'Enlargement','status=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=no');
		}
	function checkForChange(n){
		var found=-1;
		var newtime = parseInt(n);
		newtime = parseInt(newtime*10);
		var sc = PresentationList.Current().getProperty('slidechanges');
		if(!sc.IsEmpty()){
			sc.First();
			do	{
				if(newtime >=parseInt(sc.Current().getProperty('time'))) found = sc.Current().getProperty('number');
				//statusmessages.Add('comparing '+sc.Current().getProperty('time')+' to '+newtime+'('+n+')');
				}while(sc.Next());
			}
			else statusmessages.Add('No slide changes set for current presentation');
		if(found >0)  this.setSlide(found);
		}	
	function change(){
		jobqueue.addJob('SlideControl.Hide()',true,20,50);
		jobqueue.addJob('SlideControl.OpenCurrent()',true,1);
		jobqueue.addJob('SlideControl.Show()',true,20,50);	
		}
	function openNextSlide(){
		if(this.Next())
		this.Change();
		}
	function setSlide(slide){
		if(this.getSlide(slide))
			this.Change();
	//	else statusmessages.Add('getSlide returned false for slide ' + slide + ' - slide already set');
		}
	function openPreviousSlide(){
		if(this.Previous())
			this.Change();
		}	

	function initSlideControl(){
		this.setProperty('visibility','hidden');
		this.setProperty('opacity',100);
		this.setProperty('stepping',10);
		this.setProperty('imageobjectID','imageField');
		this.setProperty('slideHTMLcontainerID','slideHTMLcontainer');
		this.setProperty('objectID',this.getProperty('imageobjectID'));
		this.setProperty('slidetextContainer','slidetextcontainer');
		this.setProperty('slidenumberContainer','slidenumbercontainer');
		if(!PresentationList.IsEmpty())	{
			if(Webcast.getProperty('currentslide')<PresentationList.Current().getProperty('slides').Count())
				this.setSlide(Webcast.getProperty('currentslide'));
			else this.OpenCurrent();
			this.setSlide(Webcast.getProperty('currentslide'));
			//statusmessages.Add('setting slide '+Webcast.getProperty('currentslide'));
			}
		//else statusmessages.Add('no presentations found',4);
		if(Webcast.getProperty('status')<4){
			//hide slide controls
			if(getElement('slideControlsNext')) getElement('slideControlsNext').style.display='none';
			if(getElement('slideControlsPrevious')) getElement('slideControlsPrevious').style.display='none';
			}
		}
	function getSlide(snumber){
		var currentSlideSet = PresentationList.Current().getProperty('slides');
		if(!currentSlideSet.IsEmpty()){
			if(PresentationList.getPointer() != this.getProperty('currentPresentation')){
				statusmessages.Add('Slidecontrol notice - Presentation has changed');
				this.setProperty('currentPresentation',PresentationList.getPointer());
				return(currentSlideSet.GetItem(snumber));
				}
			if(snumber == parseInt(currentSlideSet.getPointer())+1){
				return(false);
				}
			else return(currentSlideSet.GetItem(snumber));
			}
		else{
			currentSlideSet.getSlideList();
			return(false);		
			}
		}
		
	function getNextSlide(){	
		var currentSlideSet = PresentationList.Current().getProperty('slides');
		if(!currentSlideSet.IsEmpty()){
			if(currentSlideSet.getPointer() < currentSlideSet.Count()-1){
				return(currentSlideSet.Next());
			}
			else return(false);
		}
		else return(false);
		}
	
	function getPreviousSlide(){
		var currentSlideSet = PresentationList.Current().getProperty('slides');
		if(!currentSlideSet.IsEmpty()){
			if(currentSlideSet.getPointer() > 0){
				return(currentSlideSet.Previous());	
			}
			else return(false);
		}
		else return(false);
		}
	
	function OpenCurrentSlide(){
		var slideList = PresentationList.Current().getProperty('slides');
		statusmessages.Add('Opening slide '+ parseInt(slideList.getPointer()+1)+' / '+slideList.Count());
		if(PresentationList.Current().getProperty('slidechanges').IsEmpty()) PresentationList.Current().getSlideChanges();
		if(slideList.Count()>0){

			/*Change Slide*/
			var Slide = slideList.Current();
			var slideImageElement 	= this.getProperty('imageobjectID'); 
			var slideHTMLElement 	= this.getProperty('slideHTMLcontainerID');
		//	alert(Slide.getProperty('type'));
			if(Slide.getProperty('type') == 'image'){
				this.setProperty('objectID',this.getProperty('imageobjectID'));
				//Hide HTML if necessary, display image field.
				if(slideHTMLElement != -1)getElement(slideHTMLElement).style.display='none';
				if(slideImageElement ==-1 ){ //generate error
					return(false);
					}
				else {
					getElement(slideImageElement).style.display = 'block';
					getElement(slideImageElement).width = Webcast.getProperty('slidewidth');
					//alert('displaying image '+Slide.getProperty('url')+', field display is set to: '+getElement(slideImageElement).style.display);
					getElement(slideImageElement).src = Slide.getProperty('url');	
					}//no errors
				}//End image slide
			else if(Slide.getProperty('type') == 'html'){
				this.setProperty('objectID',this.getProperty('slideHTMLcontainerID'));
				//Display HTML slide
				if(slideImageElement != -1)getElement(slideImageElement).style.display='none';
				if(slideHTMLElement ==-1 ){ //generate error
					return(false);
					}
				else {
					getElement(slideHTMLElement).style.display='block';
					getElement(slideHTMLElement).width=Webcast.getProperty('slidewidth');
					//alert('displaying HTML '+Slide.getProperty('id')+', field display is set to: '+getElement(slideHTMLElement).style.display);
					getHTMLSlide();
					}
				}//end html slide
			else statusmessages.Add('undefined slide type:'+ Slide.getProperty('type'));
			if(slideList.Next()){
				/*Pre-load next slide*/
				if(Slide.getProperty('type') == 'image')
					this.preloadImage.src = Slide.getProperty('url');
				slideList.Previous();
				}
			if(this.getProperty('slidetextContainer')!=null && this.getProperty('slidetextContainer')!=-1 ){
				//Display slide infotext if any + container available.
				if(getElement(this.getProperty('slidetextContainer'))){
				   getElement(this.getProperty('slidetextContainer')).innerHTML = Slide.getProperty('text')!=-1 ? Slide.getProperty('text') : '';
				   }
				  else errors.Add('no container found for slide text');
				}
			if(this.getProperty('slidenumberContainer')!=null && this.getProperty('slidenumberContainer')!=-1 ){
				//Display slide number if container available
				if(getElement(this.getProperty('slidenumberContainer'))){
				   getElement(this.getProperty('slidenumberContainer')).innerHTML = (parseInt(slideList.getPointer()+1)) + ' / ' + slideList.Count();
				   }						  
				  else errors.Add('no container found for slide number');
				}
			}//if there are slides
		else return(false);
		}
	function setHTMLSlide(content){
	getElement(this.getProperty('slideHTMLcontainerID')).innerHTML = content;
	}
	function hide(){
		// Hide current slide 
		if(this.getProperty('opacity')>0){
			//alert(this.getProperty('opacity'));
			this.setProperty('opacity',(this.getProperty('opacity')-this.getProperty('stepping')));
			this.SetOpacity(this.getProperty('objectID'),this.getProperty('opacity'));
			return(false);
		}
		else return(true);
	}
	function show(){
		//Show current slide
		if(this.getProperty('opacity')<100){
			this.setProperty('opacity',(this.getProperty('opacity')+this.getProperty('stepping')));
			this.SetOpacity(this.getProperty('objectID'),this.getProperty('opacity'));
			return(false);
		}
		else return(true);
		}

	function setOpacity(obj, opacity) {
		//Set object opacity
		if(obj==-1) return(false);
	 obj = getElement(obj);
	  opacity = (opacity == 100)?99.999:opacity;
	  
	  // IE/Win
	  obj.style.filter = "alpha(opacity:"+opacity+")";
	  
	  // Safari<1.2, Konqueror
	  obj.style.KHTMLOpacity = opacity/100;
	  
	  // Older Mozilla and Firefox
	  obj.style.MozOpacity = opacity/100;
	  
	  // Safari 1.2, newer Firefox and Mozilla, CSS3
	  obj.style.opacity = opacity/100;
	}
}
SlideControl.prototype = new Item();

var SlideControl = new SlideControl();
	SlideControl.init();
	
var ChatControl = new Item();

var PollControl = new Item();

function PlayerControl(){
	this.setMediaSource = function(){
		this.setProperty('mediasource',PresentationList.Current().getProperty('mediasources').Current());
		this.setProperty('currentsourcetype',this.getProperty('mediasource').getProperty('sourcetype'));
		}
	this.toggleFullScreen = function(){
			var t;
		if(getElement('MediaPlayer').player && getElement('MediaPlayer').player != 'undefined'){ 
			t = getElement('MediaPlayer').player;  
			}
		else t = getElement('MediaPlayer');
			if(t.fullScreen) 
				t.fullScreen = false;
			else { 
			alert("Return from Full Screen Mode by pressing ESC");
			statusmessages.Add('Opening full screen mode');
			t.fullScreen = true;
			}
			
		}
	this.getState = function(){
		return($("#MediaPlayer").playState);
	}
	this.setMaxBitrate = function(newBitRate){
	//	if(this.getState()==3) this.Stop();
		var player = getElement('MediaPlayer');
		if(player.network) player.network.maxBandwidth=parseInt(newBitRate);
		else player.maxBandwidth=parseInt(newBitRate);
//		$("#MediaPlayer").network.maxBandwidth=newBitRate;
//		this.Start();
		}
	this.Play = playMedia;
	this.Start = function(){ 
		if(getElement('MediaPlayer')){
		var player = getElement('MediaPlayer');
		if(player.controls) player.controls.play();
		else player.play();
		statusmessages.Add('Playing media');
		}
	};
	this.Stop = function(){ 
	if(getElement('MediaPlayer')){var player = getElement('MediaPlayer');
	if(player.controls) player.controls.stop();
		else player.stop();
		}
	statusmessages.Add('Player stopped.');
	};
	this.Pause = function(){ 
		if(PresentationList.Current().getProperty('status')==1){
			this.Stop();
			}
		else{
			if(getElement('MediaPlayer')){
				var player = getElement('MediaPlayer');
				if(player.controls) player.controls.pause();
				else player.pause();
				}
			statusmessages.Add('Player paused.');
			}
		};
	this.Open = openMedia;
	this.setPosition = setPosition;
	this.SetPosition = setPosition;
	this.SetPositionRelative = setPositionRelative;
	this.SetVolume = function(newVol){
		if(getElement('MediaPlayer')){
			var player = getElement('MediaPlayer');
			if(player.settings) player.settings.volume = parseInt(newVol);
			else {
				player.volume = 50;
				//if(player.volume) player.volume = parseInt(newVol);
			}
		}
		statusmessages.Add('Volume set to '+newVol+'%');
		}
	this.trackState = function(){
		switch(arguments[0]){
			case 3:
			var	trackInterval = setInterval("PlayerControl.Poll()",1000);
				break;
			case 8:
			if(PresentationList.Count()>PresentationList.getPointer()+1)
				PresentationList.Open(PresentationList.getPointer()+2);
				break;
			case 1:
				break;
			default:
			
				clearInterval(trackInterval);
				break;
			}
		}
	
	this.GetDuration = function(){
		var p = getElement('MediaPlayer');
		var val = 0;
		if(p.currentMedia) val = p.currentMedia.duration;
		else if(p.duration) val = p.duration;
		if(arguments[0]==true)return(val);
		else if(val){
		 	if((!PresentationList.Current().getProperty('videolength')) || (PresentationList.Current().getProperty('videolength')==-1)){
					ajaxSetProperty('webcast_show',PresentationList.Current().getProperty('id'),'videolength',this._timeformat(val));
					PresentationList.Current().setProperty('videolength',this._timeformat(val));
				}
			return(this._timeformat(val));
		}
		return(val);
		}
	this.GetPosition = function(){
		var p = getElement('MediaPlayer');
		var val = 0;
		if(p.controls) val = p.controls.currentPosition;
		else if(p.currentPosition) val = p.currentPosition;
		if(arguments[0]==true)return(val);
		else if(val) return(this._timeformat(val));
		return(val);
		}
	this.Poll = function(){
		//alert('ping');
		if(PresentationList.Current().getProperty('status')>2 || (Webcast.getProperty('status')>2))$("#currentVideoLength").html("/ "+this.GetDuration());
		else {
			$("#currentVideoLength").empty();
		}
//		alert(this.GetDuration());
		$("#currentVideoPosition").html(this.GetPosition());
		if(positionSlider && this.GetDuration()){
			innerPos = parseInt(this.GetPosition(true)/this.GetDuration(true)*100);
			//$("#temp").html(innerPos+ '%');
			if(innerPos != relPos)
				positionSlider.setValue(relPos);
			relPos = innerPos;
			}
		}
	this._timeformat = function(){
		var lengthH = Math.floor(arguments[0]/3600);
		var lengthM = Math.floor((arguments[0] - lengthH*3600)/60);
		if(lengthM < 10) lengthM = '0'+lengthM;
		var lengthS = Math.floor(arguments[0] - 60*(Math.floor(arguments[0]/60)));
			if(lengthS < 10) lengthS = '0'+lengthS;
		return(((lengthH)? lengthH +':' : '') +lengthM+':'+lengthS);
		}
	this.DisplayDuration = function (){
			 playerElement = getElement('MediaPlayer');
				if(playerElement.duration){
					var lengthH = Math.floor(playerElement.duration/3600);
					var lengthM = Math.floor((playerElement.duration - lengthH*3600)/60);
					var lengthS = Math.floor(playerElement.duration - 60*(Math.floor(playerElement.duration/60)));
					if(getElement('currentVideoLength')) {
						
						getElement('currentVideoLength').innerHTML = 'Current video length: '+lengthH+':'+lengthM+':'+lengthS;
					}
					}
			}
	function playMedia(){
			/* Write media player component for selected media source */
			var playerHTML = '';
			var ODFile = '';
			this.setMediaSource();
			if(this.getProperty('width')==-1)
				this.setProperty('width',Webcast.getProperty('videowidth'));
			if(this.getProperty('height')==-1)
				this.setProperty('height',Webcast.getProperty('videoheight'));
			var mSource = this.getProperty('mediasource');
		/* CUSTOM VIDEO CONTROLS
		this.setProperty('displaycontrols',(PresentationList.Current().getProperty('videocontrols')==1 ? true : false));
		*/
		this.setProperty('displaycontrols',false);
		statusmessages.Add('opening media player: '+this.getProperty('width')+' x '+this.getProperty('height') + 'px, format: '+mSource.getProperty('mediaformat')+'.');
		$("#playerField").css('height',this.getProperty('height')+'px');
		
	//	$("#playerField").css('width',this.getProperty('width')+'px');
		if(mediaPlaying == false || (PresentationList.Current().getProperty('status')==4 )|| (Webcast.getProperty('status')>2)){
			switch(mSource.getProperty('mediaformat')){
				case "wm":
					var WMPlayerHeight = parseInt(this.getProperty('height'));
					if(mSource.getProperty('sourcetype')=='ondemand'){ 
						if((PresentationList.Current().getProperty('ondemandfile')!=-1) && (PresentationList.Current().getProperty('ondemandfile'))){
							ODFile = PresentationList.Current().getProperty('ondemandfile');
							if(mSource.getProperty('mediatype')=='audio'){
								ODFile = ODFile.replace('.wmv','.wma');
							}
						}
						else if(mSource.getProperty('filename')!=-1){ 
							ODFile = mSource.getProperty('filename');
							if(mSource.getProperty('mediatype')=='audio'){
								ODFile = ODFile.replace('.wmv','.wma');
								}
							}
						else{
							ODFile = (parseInt(PresentationList.getPointer())+1) + '.'+ (mSource.getProperty('mediatype')=='audio' ? "wma" :"wmv");
							}
					}
					if((mSource.getProperty('sourcetype')=='ondemand') && (this.getProperty('displaycontrols') == true)) WMPlayerHeight += 71;

					playerHTML ='';
					if(mSource.getProperty('mediatype')=='audio'){ 
						//Player invisible for audio.
						WMPlayerHeight = 0;
						//Display image or something instead
						if(PresentationList.Current().getProperty('audioimagename')!=-1){
							playerHTML += '<img vspace="0" hspace="0" src="'+PresentationList.Current().getProperty('audioimagename')+'" border="0"><br>';
						}
						else {
								playerHTML +='<img src="/images/layout/audiocast.gif" vspace="0" hspace="0" border="0" alt="Audio"><br>';
							}
						}
					if(SystemEnvironment.getProperty('browsername').toLowerCase().match('firefox')){
						var oSrc = mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? ODFile :'');
					//	alert(oSrc);
					
					playerHTML += '<object type="application/x-ms-wmp" data="'+oSrc+'" width="'+this.getProperty('width')+'" border="0" height="'+WMPlayerHeight+'" hspace="0" vspace="0" standby="Loading Microsoft® Windows® Media Player components..." id="MediaPlayer">'+
					'  <param name="URL" value="'+mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? ODFile :'')+'">';
						}
					else { // Create player for IE
					playerHTML += '<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" type="application/x-oleobject" width="'+this.getProperty('width')+'" border="0" height="'+WMPlayerHeight+'" hspace="0" vspace="0" standby="Loading Microsoft® Windows® Media Player components..." id="MediaPlayer">'+
					/* WMP 6.4 codebase disabled  :: We should allow use of 6.4 but display normal controls. 
					playerHTML = '<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" type="application/x-oleobject" width="'+this.getProperty('width')+'" border="0" height="'+WMPlayerHeight+'" hspace="0" vspace="0" standby="Loading Microsoft® Windows® Media Player components..." id="MediaPlayer">'+
					*/
						'        <param name="FileName" value="'+mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? ODFile :'')+'">';
					}
					playerHTML += '        <param name="AutoStart" value="true">'+
					'        <param name="AutoRewind" value="true">'+
					'        <param name="Loop" value="false">'+
					'        <param name="TransparentAtStart" value="true">'+
					'        <param name="AnimationatStart" value="false">';
					if((mSource.getProperty('sourcetype')=='ondemand') && (this.getProperty('displaycontrols') == true)) 
						playerHTML+='        <param name="ShowControls" value="true">'+
						'        <param name="ShowAudioControls" value="true">'+
						'        <param name="ShowStatusBar" value="true">'+
								'        <param name="uiMode" value="mini">'+
						'        <param name="ShowTracker" value="true">';
					else playerHTML+='        <param name="ShowControls" value="false">'+
					'        <param name="ShowAudioControls" value="false">'+
					'        <param name="ShowStatusBar" value="false">'+
										'        <param name="uiMode" value="none">'+
					'        <param name="ShowTracker" value="false">';
					playerHTML+='        <param name="autoSize" value="false">'+
					'        <param name="ShowGotoBar" value="false">'+
					'        <param name="ShowDisplay" value="false">'+
					'        <param name="stretchToFit" value="true">'+
					'        <param name="displaySize" value="0">'+
					
					'        <param name="ShowPositionControls" value="false">';
					if((!SystemEnvironment.getProperty('activeXSupport'))&&(SystemEnvironment.getProperty('firefoxWMPPluginSupport')==false)){
						$('#playercontrols').hide();
						WMPlayerHeight += 71;
					playerHTML += '        <embed type="application/x-mplayer2" id="MediaPlayerEmbed"'+
					'	 pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/"'+
					'	 src="'+mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? ODFile :'')+'"'+
					'	 height='+WMPlayerHeight+
					'	 width='+this.getProperty('width')+
					'	 hspace=0'+
					'	 vspace=0'+
					'	 border=0'+
					'	 autostart=1'+
					'	 transparentatstart=0'+
					'	 animationstart=1';
					//if((mSource.getProperty('sourcetype')=='ondemand') && (this.getProperty('displaycontrols') == true))  
					   playerHTML+='	 showcontrols=1'+
						'	 showstatusbar=1'+
						'	 showtracker=1'+
						'	 uimode=mini'+
						'	 showaudiocontrols=1';
/*					else playerHTML+='	 showcontrols=0'+
						'	 showstatusbar=0'+
						'	 showtracker=0'+
						'	 uimode=none'+
						'	 showaudiocontrols=0';*/
					playerHTML+='	 showdisplay=0'+
					'	 showpositioncontrols=0'+
					' autosize=0'+
					'	 displaysize=0> </embed>';
					} 
				playerHTML +=	'      </object>';
				//	statusmessages.Add(mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? (mSource.getProperty('filename')!=-1 ? mSource.getProperty('filename')  : (parseInt(PresentationList.getPointer())+1)) + '.'+ (mSource.getProperty('mediatype')=='audio' ? "wma" :"wmv") :''));
						if(this.getProperty('objectID')!=-1){
							if(getElement(this.getProperty('objectID'))){
								var playerElement = getElement(this.getProperty('objectID'));
								//Write player to UI
								playerElement.innerHTML = playerHTML;
								playerElement.height = WMPlayerHeight;
								playerElement.width = this.getProperty('width');
								if(getElement('slideTD') && getElement('playerContentTD')){
									if(parseInt(getElement('playerContentTD').style.padding)){
									getElement('slideTD').height = parseInt(WMPlayerHeight)+(parseInt(getElement('playerContentTD').style.padding)*2);
//									getElement('slideTD').width = this.getProperty('width');
									statusmessages.Add('slide window height set to'+parseInt(WMPlayerHeight)+'px');
									}
									}
								else statusmessages.Add('unable to fit slide window');
							//	alert(playerHTML);
								//getElement(this.getProperty('objectID')).style.backgroundColor='#cccccc';
								if(getElement('MediaPlayer')){
									getElement('MediaPlayer').InvokeURLs=0;
									getElement('MediaPlayer').URL = mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? ODFile :'');
									if(!navigator.userAgent.indexOf("IE") == -1) getElement('MediaPlayer').Open(mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? ODFile :''));
									 }
								//jobqueue.addJob('PlayerControl.DisplayDuration()',false,1,2000);
								}
							
						else errors.Add('could not render media player component, container missing: '+this.getProperty('objectID'));
						}
					break;
				case "real":
					playerHTML+='<table cellpadding="0" cellspacing="0" border="0"><tr><td><OBJECT CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width='+this.getProperty('width')+' height='+this.getProperty('height')+' hspace="0" vspace="0">'+
					'   <param name="controls" VALUE="imagewindow">'+
					'   <param name="console" VALUE="video">'+
					'	<param name="loop" value="false">'+
					'	<param name="autostart" value="true">'+
					'	<param name="autogotourl" value="false">'+
					'   <param name="src" value="'+mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? (mSource.getProperty('filename')!=-1 ? mSource.getProperty('filename')  : (parseInt(PresentationList.getPointer())+1)) + '.'+ (mSource.getProperty('mediatype')=='audio' ? "rma" :"rm") :'')+'">'+
					'  <embed scriptcallbacks="onGoToUrl" SRC="'+mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? (mSource.getProperty('filename')!=-1 ? mSource.getProperty('filename')  : (parseInt(PresentationList.getPointer())+1)) + '.'+ (mSource.getProperty('mediatype')=='audio' ? "rma" :"rm") :'')+'" width='+this.getProperty('width')+'  height='+this.getProperty('height')+' hspace="0" vspace="0" autostart="true" loop="false" type="audio/x-pn-realaudio-plugin" controls="imagewindow" console="video" autogotourl="false" name="rvcontrol"></embed></object></td></tr>';
					if((mSource.getProperty('sourcetype')=='ondemand') && (this.getProperty('displaycontrols') == true)) 
					playerHTML+='<tr><td><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="'+this.getProperty('width')+'" height="70" hspace="0" vspace="0" id="rvcontrol"><param name="controls" VALUE="ControlPanel,StatusField,PositionField">'+
					'   <param name="console" VALUE="video">'+
					'	<param name="loop" value="true">'+
					'	<param name="autostart" value="true">'+
					'	<param name="autogotourl" value="false">'+
					'   <param name="src" VALUE="'+mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? (mSource.getProperty('filename')!=-1 ? mSource.getProperty('filename')  : (parseInt(PresentationList.getPointer())+1)) + '.'+ (mSource.getProperty('mediatype')=='audio' ? "rma" :"rm") :'')+'">'+
					'   <embed scriptcallbacks="onGoToUrl" src="'+mSource.getProperty('url')+(mSource.getProperty('sourcetype')=='ondemand' ? (mSource.getProperty('filename')!=-1 ? mSource.getProperty('filename')  : (parseInt(PresentationList.getPointer())+1)) + '.'+ (mSource.getProperty('mediatype')=='audio' ? "rma" :"rm") :'')+'" width="'+this.getProperty('width')+'" height="69" hspace="0" vspace="0" autostart="true" loop="true" type="audio/x-pn-realaudio-plugin" console="video" autogotourl="false">'+
					'	</embed></object></td></tr>';
					playerHTML+='</table>';
					if((mSource.getProperty('sourcetype')=='ondemand') ||(currentShow.presentationStatus=='ondemand') || (this.getProperty('currentsourcetype') == 'ondemand')){
						if(this.getProperty('objectID')!=-1){
							//Write player to UI
							var playerElement = getElement(this.getProperty('objectID'));
							var ob = this.getProperty('objectID');
							$("#"+ob).empty();
							playerElement.innerHTML = playerHTML;
							playerElement.width = this.getProperty('width')+'px';
							var elHeight = parseInt(this.getProperty('height'));
							if((mSource.getProperty('sourcetype')=='ondemand') && (this.getProperty('displaycontrols') == true)) elHeight += 69;
							playerElement.height = elHeight+'px';
							playerElement.valign = 'top';
						//jobQueue.Add
						}
						else errors.Add('could not render media player component, container missing: '+this.getProperty('objectID'));
					}
					break;
				case "flash":
					break;
				case "qt":
					break;
				default:
					alert('Error: Unknown media format('+mSource.getProperty('mediaformat')+'). Could not open the player element.');
					break;
				}
				mediaPlaying = true;
				positionSlider.setValue(0);
			}
				
			}
		function stopMedia(){
			}
		function openMedia(){
			this.setMediaSource();
			this.Play();
			}
		function setPositionRelative(ipercent){
		if(relPos == ipercent) return(false);
		relPos = ipercent;
		//alert('position:'+ipercent+'%');
		ipercent = parseInt(ipercent);
			if(ipercent >100) ipercent = 100;
			if(ipercent < 0) ipercent = 0;
		if(getElement('MediaPlayer')){
			var playerElement = getElement('MediaPlayer');
			time = parseInt((ipercent / 100)*this.GetDuration(true));
		//	alert(time);
			if(playerElement.controls) playerElement.controls.currentPosition = time;
			else playerElement.currentPosition=time;
			SlideControl.checkForChange(time);
		}
			
		}
		function setPosition(itime){
			vals = itime.split(":");
			if(vals[0]&&vals[0]>0){
			 time = (parseInt(vals[0])*60+parseInt(vals[1]));
			}
			else time=parseInt(vals[0]);
			var playerElement = getElement('MediaPlayer');
			//alert(playerElement);
			//alert(playerElement.duration);
		if(playerElement.duration > time){
				if(playerElement.controls) playerElement.controls.currentPosition = time;
				else playerElement.currentPosition=time;
				SlideControl.checkForChange();
				}
			else alert('Selected Index ('+itime+','+time+' seconds) is beyond the duration of this video('+playerElement.duration+' seconds)');
		}
}
PlayerControl.prototype = new Item();

var PlayerControl = new PlayerControl();
	PlayerControl.setProperty('objectID','playerField');
	PlayerControl.setProperty('currentsourcetype',null);
	PlayerControl.setProperty('width',null);
	PlayerControl.setProperty('height',null);
	PlayerControl.setProperty('displaycontrols',true);
	PlayerControl.setProperty('mediasource',null);
	
	


function openSlideSet(){
	//statusmessages.Add('opening slide 1 of presentation '+PresentationList.Current().getProperty('showtitle'));
	PresentationList.Current().getProperty('slides').First();
	this.setSlide(Webcast.getProperty('currentslide'));
//	this.setSlide();
	}

function openPresentation(index){
	
	//Opens selected presentation: player,slides,etc
		if((PresentationList.Current().getProperty('status')==4 )|| (Webcast.getProperty('status')>2) || (firstOpen != false)||  (parseInt(activePresentationStatus)>2 && Webcast.getProperty('status')<=2)){
			firstOpen = false;
			if(parseInt(activePresentationStatus)>2 && Webcast.getProperty('status')<=2) mediaPlaying = false;
			$('#'+PlayerControl.getProperty('objectID')).html('<img src="images/ajaxloading.gif" valign="absmiddle" align="center" alt="Ladataan" border="0">');
			var sourceToOpen = index ? this.getProperty('mediasources').GetItem(index) : this.getProperty('mediasources').Current();
		//debug	alert('opening presentation '+this.getProperty('showtitle'));
			if(this.getProperty('mediasources').IsEmpty())
				{
				firstOpen = true;
				getMediasources();
				return(false);
				}
			if(this.getProperty('mediasources').Count()>1){
				var mSources = this.getProperty('mediasources') ;
				//	alert('opening mediasource '+ (this.getProperty('mediasources').getPointer()+1) +' / ' + this.getProperty('mediasources').Count());
				if(mediatype==null && (!index) && (!mediaID)){
					//Media type selection ;if mediatype is selected, only sources of selected type were loaded (hopefully)
					/*Display all media sources, even if the format is same:
					var mediaTypes = new Array();
					do	{
						if(!in_array(mSources.Current().getProperty('mediaformat'),mediaTypes))
							mediaTypes.push(mSources.Current().getProperty('mediaformat'));
						}while(mSources.Next());
						
						mSources.First();
						//Create selection menu
						CreateMediatypeSelector(mediaTypes);
					*/
				//	CreateMediaSelector(mSources);
					//	sourceToOpen = false;
					}
				else if(mediaID != null){
					//Open selected media
					sourceToOpen = mSources.FindItem('id',mediaID);
					if(sourceToOpen == false){
						sourceToOpen = mSources.Current();
						//alert('source '+mediaID+' was not found.');
						}
					//else alert ('opened item ID:'+mediaID+', '+sourceToOpen.getProperty('sourcename'));
				}
				else if(sourceToOpen.getProperty('mediaformat') != mediatype){
					//try to open source of specified format
					mSources.First();
					var loop = true;
					do	{
						if(mSources.Current().getProperty('mediaformat') == mediatype){
							sourceToOpen = mSources.Current();
							loop = false;
						}
						}while(mSources.Next() && loop == true);
					
				}
	
				}
			//	return();
			if(sourceToOpen != false){
			if(sourceToOpen.getProperty('url')!=-1){
				PlayerControl.setProperty('src',sourceToOpen.getProperty('url'));
				PlayerControl.setProperty('width',sourceToOpen.getProperty('width'));
				PlayerControl.setProperty('height',sourceToOpen.getProperty('height'));
				PlayerControl.setMediaSource();
				PlayerControl.Play();
				}
			else errors.Add('No media source selected.');
			}
			else errors.Add('No source URLs defined for presentation');
	}
	SlideControl.Open();
	this.displayProperty('speaker','currentspeakertitlefield',30);
	this.displayProperty('showtitle','playerHeaderTD',50);
	
	if((PresentationList.Current().getProperty('status')==4 )|| (Webcast.getProperty('status')>2)){
	//	if(Webcast.getProperty('chat')<1){
			$("#chatLink:visible").hide();
			$("#askfromSpeaker:visible").hide();
			$("#feedbackLink:hidden").show();
		//	}
		$("#statusDiv").html("On-Demand:");	
		Chat.Stop();
	}
	else{ $("#statusDiv").html("Live:");
			$("#askfromSpeaker:hidden").show();
		$("#feedbackLink:visible").hide();
	//if(Webcast.getProperty('chat')>0)Chat.init();
	}
	Webcast.displayProperty('date','datefield');
	CreateShortPresentationList("presentationlistcontainer");
	
	$('#hoverDiv:visible').fadeOut();
	ajaxSendShowOpened(Webcast.getProperty('id'),PresentationList.Current().getProperty('id'));
	ajaxUpdateShowViewCounter(PresentationList.Current().getProperty('id'));
	currentSpeaker = PresentationList.Current();
	if(audioSourceID != null){
		//Enable audio only - link
		$('#audiolink,#videolink').removeClass('playerControlDisabled');
		}
	else {
		$('#audiolink,#videolink').addClass('playerControlDisabled');
		}
	activePresentationStatus = Webcast.getProperty('status');
	}
function selectMedia(media){
	mediaID = media;
	statusmessages.Add('mediaID set to '+ media);
	PresentationList.Current().Open();

}
function selectMediaType(newType){
	mediatype = newType;
	statusmessages.Add('mediatype set to '+ mediatype);
	PresentationList.Current().Open();
	
}
function CreateMediaSelector(sources){
var cType = null;
var cell = null;
var row = null;
var cellHTML = '';
var i = 0;
var currentcol = 0;
var cols = 3;
if(sources.Count()){
	if(sources.Count() < cols) cols = sources.Count();
	statusmessages.Add(sources.Count()+' sources available');
	if(getElement(PlayerControl.getProperty('objectID'))){
		var targetTable = document.createElement('table');
		getElement(PlayerControl.getProperty('objectID')).innerHTML ='';
		if(parseInt(PlayerControl.getProperty('height'))>0)getElement(PlayerControl.getProperty('objectID')).height = PlayerControl.getProperty('height');
		getElement(PlayerControl.getProperty('objectID')).appendChild(targetTable);
		row = targetTable.insertRow(-1);
		cell = row.insertCell('-1');
		cell.colSpan = cols;
		
		cell.innerHTML = 'The selected presentation is available in multiple ('+sources.Count()+') feeds.<br>Please select which feed You prefer:';
	
		row = targetTable.insertRow(-1);
		sources.First();
		do{
			cType = sources.Current();
			cellHTML ='';
			currentcol++;
			if(currentcol>cols){	
				row = targetTable.insertRow(-1);
				currentcol = 1;
			}
			cell = row.insertCell(-1);
			cell.style.padding = '10px';
			if((currentcol < cols) && (cType == sources.Count()-1)){
					cell.colSpan = ( cols +1  - currentcol);
			}
			cell.valign='middle';
			cell.align='center';
			switch(cType.getProperty('mediaformat')){
				case "wm":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_wmv.gif" border="0" vspace="4" hspace="4" alt ="Windows Media"><br><a href="#" onClick="selectMedia(\''+sources.getPointer()+'\'); return false;">'+sources.Current().getProperty('sourcename')+'<br>Windows Media</a>';
					break
				case "real":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_rm.gif" border="0" vspace="4" hspace="4" alt ="Real Media"><br><a href="#" onClick="selectMedia(\''+sources.getPointer()+'\'); return false;">'+sources.Current().getProperty('sourcename')+'<br>Real Media</a>';
					break
				case "qt":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_mov.gif" border="0" vspace="4" hspace="4" alt ="Quicktime"><br><a href="#" onClick="selectMedia(\''+sources.getPointer()+'\'); return false;">'+sources.Current().getProperty('sourcename')+'<br>Quicktime</a>';
					break
				case "flash":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_swf.gif" border="0" vspace="4" hspace="4" alt ="Flash"><br><a href="#" onClick="selectMedia(\''+sources.getPointer()+'\'); return false;">'+sources.Current().getProperty('sourcename')+'<br>Flash</a>';
					break
				default: alert('Unsupported feed type: '+cType.getProperty('mediaformat'));
					}
			cell.innerHTML = cellHTML;
			}while(sources.Next());
			
		}
		else return(false);
	}//end if mediatypes	
}//end function 
function CreateMediatypeSelector(mediaTypes){
var cType = null;
var cell = null;
var row = null;
var cellHTML = '';
var i = 0;
var currentcol = 0;
var cols = 3;
if(mediaTypes.length){
	if(mediaTypes.length < cols) cols = mediaTypes.length;
	statusmessages.Add(mediaTypes.length+' sources available');
	if(getElement(PlayerControl.getProperty('objectID'))){
		var targetTable = document.createElement('table');
		getElement(PlayerControl.getProperty('objectID')).innerHTML ='';
		if(parseInt(PlayerControl.getProperty('height'))>0)getElement(PlayerControl.getProperty('objectID')).height = PlayerControl.getProperty('height');
		getElement(PlayerControl.getProperty('objectID')).appendChild(targetTable);
		row = targetTable.insertRow(-1);
		cell = row.insertCell('-1');
		cell.colSpan = cols;
		
		cell.innerHTML = 'The selected presentation is available in multiple feeds.<br>Please select which feed You prefer:';
	
		row = targetTable.insertRow(-1);
		while(cType = mediaTypes.pop()){
			cellHTML ='';
			currentcol++;
			if(currentcol>cols){	
				row = targetTable.insertRow(-1);
				currentcol = 1;
			}
			cell = row.insertCell(-1);
			cell.style.padding = '10px';
			if((currentcol < cols) && (cType == mediaTypes.length-1)){
					cell.colSpan = ( cols +1  - currentcol);
			}
			cell.valign='middle';
			cell.align='center';
			switch(cType){
				case "wm":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_wmv.gif" border="0" vspace="4" hspace="4" alt ="Windows Media"><br><a href="#" onClick="selectMediaType(\'wm\'); return false;">Windows Media</a>';
					break
				case "real":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_rm.gif" border="0" vspace="4" hspace="4" alt ="Real Media"><br><a href="#" onClick="selectMediaType(\'real\'); return false;">Real Media</a>';
					break
				case "qt":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_mov.gif" border="0" vspace="4" hspace="4" alt ="Quicktime"><br><a href="#" onClick="selectMediaType(\'qt\'); return false;">Quicktime</a>';
					break
				case "flash":
					cellHTML+='<img border="1" style="border-bottom-color:#000000;" src="images/mime_swf.gif" border="0" vspace="4" hspace="4" alt ="Flash"><br><a href="#" onClick="selectMediaType(\'flash\'); return false;">Flash</a>';
					break
					}
			cell.innerHTML = cellHTML;
			cType = false;
			}
		}
		else return(false);
	}//end if mediatypes	
}//end function 

function events_itemLoadCallback(carousel, state)
{
    for (var i = carousel.first; i <= carousel.last; i++) {
        if (carousel.has(i)) {
            continue;
        }

        if (i > Events.Count()) {
            break;
        }

        carousel.add(i, getEventHTML(i));
    }
	carousel.size(Events.Count());
};
function getEventHTML(pos){

if(Events.GetItem(pos))
return('<a class="EventsItem" href="javascript:" onClick=getCurrentWebcast('+ Events.GetItem(pos).getProperty('id') + ');setEvent('+pos+'); return(false);"><b>' + Events.GetItem(pos).getProperty('name')+'</b></a>');
else return('no event for position '+pos+' :(');
}

function eventsList_initCallback(carousel) {
   

    jQuery('#eventsNext').bind('click', function() {
        carousel.next();
        return false;
    });

    jQuery('#eventsPrev').bind('click', function() {
        carousel.prev();
        return false;
    });
};

function CreateEventList(t){
	$("#"+t).empty();
	$("#"+t).append('Updating the archive view..');
	if(Events.Count()<1){
		if(!Events.loaded){
			getWebcastList();
			setTimeout('CreateEventList(\''+t+'\')',1000);
			return(true);
			}
		else return(false);
		}
	else statusmessages.Add('Events found:'+Events.Count());
	Events.First();
	var eDiv = null;
	var dclass = null;
	var aclass = null;
	$("#"+t).empty();
	$("#"+t).append('<div><p style="font-size:14px; font-weight:bold; color:#cf0545">Webcast Archives</p><p>');
	var tempYear = null;
	if(lastYear >= firstYear) for(tempYear=lastYear; tempYear>=firstYear;tempYear--) $("#"+t).append('<a class="'+((tempYear == listYear)? 'EventsItemActive' : 'EventsItem' )+'" href="javascript:" onclick="listYear='+tempYear+'; $(\'#'+t+'\').html(\'Updating the archive view..\'); Events.Clear();Events.loaded = false; CreateEventList(\''+t+'\'); return(false);">'+tempYear+'</a> &nbsp; &nbsp;');
	$("#"+t).append('</p>');
//	$("#"+t).append('</p><p style="color:#0090a9;"><i>Esitysarkistoon kertyv&auml;t Sitran webcastit sit&auml; mukaa kun niit&auml; tehd&auml;&auml;n lis&auml;&auml;. <br>T&auml;ll&auml; hetkell&auml; vanhemmat tallenteet l&ouml;ytyv&auml;t klikkaamalla <a href="http://webcast.digital-one.fi/seminaarit/" target="_blank">t&auml;st&auml;</a>.</i></p></div>');
	if(!Events.IsEmpty())	do{
	//	if(Events.Current().getProperty('displayinmenu')!='false'){
			currentListItem = Events.Current();
			dclass = 'eventDiv';
			aclass = 'EventsItem';
			if(currentListItem.getProperty('id') ==  Webcast.getProperty('id')){ 
				dclass = 'eventDivActive';
				aclass = 'EventsItemActive';
				$('#eventIndex').empty().append(currentListItem.getProperty('index')+' / '+Events.Count());
			}
			var d = new Date(SQL_TO_JS_Date(Events.Current().getProperty('date')));
			
			eDiv ='<div class="'+dclass+'"><table width="100%" cellpadding="5" cellspacing="0" border="0">'+
			'<tr><td style="vertical-align:top; text-align:left" width="120" class="eventDate"><p>'+d.getDate()+'.'+parseInt(d.getMonth()+1)+'.'+d.getFullYear()+'</p></td><td valign="top" class="eventDescription"><p><a class="'+aclass+'" href="javascript:" onClick="getCurrentWebcast('+ Events.Current().getProperty('id') + '); setEvent('+Events.getPointer()+'); return(false);"><b>' + Events.Current().getProperty('name')+'</b></a></p>'+
			'<p>'+Events.Current().getProperty('description').substring(0,180)+'..</td></tr></table></div>';
			//'<br>'+((currentListItem.getProperty('description')!=-1) ? currentListItem.getProperty('description') : '')
			i++;
			$("#"+t).append(eDiv);
		//	}
		}while(Events.Next());
	
	
}

function CreatePresentationInfo(t){
	var c = PresentationList.Current();
	var a = '';
	$("#"+t).empty();
	$("#"+t).append().load("formattedContent/showdetails.en.html",setPresentationInfo);
	statusmessages.Add('Displaying presentation info.');
	
}
function CreateEventInfo(t){
	var c = PresentationList.Current();
	var a = '';
	$("#"+t).empty();
	$("#"+t).append().load("formattedContent/eventdetails.en.html",setEventInfo);
	statusmessages.Add('Displaying event info.');
}


function CreateSearchResults(){
	var n = null;
	var t = null;
	if(arguments[1]) t = arguments[1];
	else t = 'hoverDivContents';
	if(arguments[0]) n = arguments[0];
	var results = '<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding:10px; background-color:#d6d3d1; color:#cf0545; font-weight:bold;">Search results</td></tr><tr><td style=" vertical-align:top; text-align:left; padding-top:10px;">'+n+'</td></tr></table>';
	$("#"+t).empty().append(results);
	//$("#"+t).append().load("formattedContent/searchresults.en.html",function(){setSearchResults.apply(this,[n]);});
	$('#hoverDiv').fadeIn(); 
	statusmessages.Add('Displaying search results.');
}
	function setSearchResults(){
	}
function CreateEndQuery(t){
	var n = null;
	if(arguments[1]) n = arguments[1];
	$("#"+t).empty();
	$("#"+t).append().load("formattedContent/endquery.html",function(){setQuerySubmit.apply(this,[n]);});
	statusmessages.Add('End query loaded.');
	
}
function setQuerySubmit(next){
	if(next) $("#endQuery").ajaxForm(function(){
											 PresentationList.Open(next);
											 alert('Thank you for answering!');
											 $('#hoverDiv:visible').fadeOut();
											 });
	else $("#endQuery").ajaxForm(function(){alert('Thank you for answering!');$('#hoverDiv:visible').fadeOut(); });
	$('#hoverDiv:hidden').fadeIn();
	}
function setPresentationInfo(){
	var c = PresentationList.Current();
	var a = '';
	if(c.getProperty('speakerimage')>0)
					 a = '<img vspace="0" hspace="5" src="imagedata/'+c.getProperty('speakerimage')+'_'+presentationThumbnailWidth+'.jpg" width="'+presentationThumbnailWidth+'">';
		$("#detailsSpeakerImage").empty().append(a);
		$("#detailsShowtitle").empty().append((c.getProperty('showtitle')==-1) ? "" : c.getProperty('showtitle'));
		$("#detailsDescription").empty().append((c.getProperty('description')==-1) ? "" : c.getProperty('description'));
		$("#detailsKeywords").empty().append((c.getProperty('keywords')==-1) ? "" : c.getProperty('keywords'));
		
		$("#detailsSlidecount").empty().append(((c.getProperty('slides').Count()) ? "The presentation has  "+c.getProperty('slides').Count()+" slide":"") +((c.getProperty('slides').Count()>1)? "s" :""));

}
function setEventInfo(){
	var c = Webcast;
	var a = '';
		$("#detailsEventName").empty().append((c.getProperty('name')==-1) ? "" : c.getProperty('name'));
		$("#detailsDescription").empty().append((c.getProperty('description')==-1) ? "" : c.getProperty('description'));
		$("#detailsKeywords").empty().append((c.getProperty('keywords')==-1) ? "" : c.getProperty('keywords'));
		var speakers = '';
		var presentationPointer = PresentationList.getPointer();
		PresentationList.First();
		do{
			if(speakers != '' && PresentationList.Current().getProperty('speaker')!='') speakers +=', ';
			speakers +=PresentationList.Current().getProperty('speaker');
			}while(PresentationList.Next());
		PresentationList.setPointer(presentationPointer);
		$("#detailsSpeakers").empty().append(speakers);
		$("#detailsDate").empty().append(c.getProperty('date'));

}

function CreateShortPresentationList(t){

	if(PresentationList.IsEmpty()){
		$("#"+t).empty().append("<p>No presentations were found in the selected event..</p>");
		return(false);
	}
	var Pres = null;
	var start = 1;
	var even = false;
	var temp ='';
	var eDiv = '';
	var cDiv = null;
	var aclass = null;
	var companytemp = null;
	var dclass = null;
	$("#"+t).empty();
	var currentIndex = PresentationList.getPointer();	
	for(i = start; i<= PresentationList.Count(); i++){
		 Pres = PresentationList.GetItem(i);
		 if(Pres){
 			dclass = 'presentationlistDiv';
			aclass = 'PresentationsItem';
			 if(i == currentIndex+1){	
				dclass = 'presentationlistDivActive';
				aclass = 'PresentationsItemActive';
				$('#presentationIndex').empty().append(i+' / '+PresentationList.Count());
				}
			temp = Pres.getProperty('showtitle');
			var factor = 1;
				//if(Pres.getProperty('utf-8')!=-1) alert(Pres.getProperty('utf-8'));
				if(Pres.getProperty('utf-8')=='true') factor = 7;
			if(temp.length > (60*factor)){
				factor = factor * 60;
				temp = temp.substring(0,factor)+'..';
				}
			eDiv += '<div class="'+dclass+'">';
			if(Pres.getProperty('speakerimage')>0){
					eDiv += '<img vspace="3" hspace="3" src="'+Pres.getProperty('speakerimagename')+'" border="0" style="border-color:#252525;" align="left" width="'+presentationThumbnailWidth+'">';
					}
				//if(Pres.getProperty('company')!=-1) companytemp = '<br>'+Pres.getProperty('company');
				//else 
				companytemp='';
			eDiv +='<a class="'+aclass+'" href="javascript:" onClick="PresentationList.UserOpen(' + parseInt(i) + '); return false;"><b>' + temp+ '</b></a><br>' + Pres.getProperty('speaker') +''+companytemp;
			if((Pres.getProperty('videolength')!=-1) && ((Pres.getProperty('status')>2) || Webcast.getProperty('status')>2)) eDiv+='<br>Length:'+Pres.getProperty('videolength');
			eDiv +='</div>';
		if(even|| (PresentationList.Count()<=i)){
//			$("#"+t).append('<div id="wrapper'+i+'" class="presentationsWrapperDiv"></div>');
			$("#"+t).append('<li id="wrapper'+i+'" class="presentationsWrapperDiv"></li>');
			$("#wrapper"+i).append(eDiv);
//			$("#wrapper"+i).append(Pres.getProperty('showtitle'));
		//	alert($("#"+t).html());
			eDiv = '';
			even = false;
		}
		else even = true;
							
		
		}
	}
	$("#presentationlistcontainer").jcarousel({
	//	buttonNextHTML: null,
    //    buttonPrevHTML: null,
		visible:3,
		scroll:1
		 });
	PresentationList.setPointer(currentIndex);

}
function CreatePresentationList(t){
	
	if(PresentationList.IsEmpty()){
		$("#"+t).empty();
		$("#"+t).append("<p>The Presentation List is empty.</p>");
		return(false);
	}
	var currentIndex = PresentationList.getPointer();
	var cell = null;
	var row = null;
	var i =1;
	var j = null;
	
	
	var targetTable = document.createElement('table');
	
	
	targetTable.style.width='550px';
	do{
		currentListItem = PresentationList.Current();
		row = targetTable.insertRow(-1);
		
		//Create cell for presentation image
		cell = row.insertCell(-1);
		if(PresentationList.getPointer == currentIndex){
	//		cell.style.backgroundColor='#cccccc';
		}
		cell.style.width='80px';
		cell.style.height='40px';
		cell.style.verticalAlign='top';
		cell.rowSpan='2';
		cell.align='center';
			if(currentListItem.getProperty('speakerimage')>0){
					cell.innerHTML = '<img vspace="0" hspace="5" src="imagedata/'+currentListItem.getProperty('speakerimage')+'_'+presentationThumbnailWidth+'.jpg" border="1" style="border-color:#252525;" width="'+presentationThumbnailWidth+'">';
					}
			else {
					//	cell.innerHTML = '<img vspace="0" hspace="5" src="images/layout/default_thumbnail.gif" border="3" style="border-color:#252525;" width="40">';
			}
		//cell.innerHTML = 'kuva t&auml;h&auml;n';
		cell = row.insertCell(-1);
		cell.style.width='100px';
		cell.style.color='#acacac';
		cell.style.verticalAlign='top';
		cell.rowSpan='2';
		cell.innerHTML = currentListItem.getProperty('time');
		//Create cell for presentation info
		cell = row.insertCell(-1);
		cell.style.width='500px';
			cell.style.verticalAlign='top';
		if(PresentationList.getPointer == currentIndex){
			//cell.style.backgroundColor='#cccccc';
		}
		$(cell).append('<a class="presentationListItem" href="#" onClick="PresentationList.UserOpen(' + parseInt(PresentationList.getPointer()+1) + '); return false;"><b>' + currentListItem.getProperty('showtitle')+'-</b></a>');
		row = targetTable.insertRow(-1);
		cell = row.insertCell(-1);
			cell.style.verticalAlign='top';
		if(PresentationList.getPointer == currentIndex){
			//cell.style.backgroundColor='#cccccc';
		}
		var appendi = (currentListItem.getProperty('speaker') ? '<font color="#787878">'+ currentListItem.getProperty('speaker') + ((currentListItem.getProperty('speakertitle')) ? (',' +currentListItem.getProperty('speakertitle')) : '') +(currentListItem.getProperty('company')? ',' + currentListItem.getProperty('company') : '' +"</font>"): '');
		$(cell).append(appendi);
		i++;
		}while(PresentationList.Next());
	
	PresentationList.setPointer(currentIndex);
	//return(targetTable);
	$("#"+t).empty();
		$("#"+t).append(targetTable);
}
var PresentationListView = new Item();
	PresentationListView.setProperty('objectID','presentationlistcontainer');
var PresentationInfo = new Item();
PresentationInfo.setProperty('objectID','presentationlistcontainer');
var ChannelsView = new Item();
	ChannelsView.setProperty('objectID','channels');
var ChatInputView = new Item();
	ChatInputView.setProperty('objectID','chatInput');
var FeedbackView = new Item();
	FeedbackView.setProperty('objectID','feedbackcontainer');
var MaterialListView = new Item();
	MaterialListView.setProperty('objectID','hoverDivContents');
	if(getElement(MaterialListView.getProperty('objectID')))
	MaterialListView.setProperty('initialcontent',getElement(MaterialListView.getProperty('objectID')).innerHTML);
	MaterialListView.init = function(){
		 	openMaterialList();
	}
var IndexListView = new Item();
	IndexListView.setProperty('objectID','indexlistcontainer');
	if(getElement(IndexListView.getProperty('objectID')))
	IndexListView.setProperty('initialcontent',getElement(IndexListView.getProperty('objectID')).innerHTML);
	IndexListView.init = function(){
		if(getElement(IndexListView.getProperty('objectID'))){
			if((getElement(IndexListView.getProperty('objectID')).innerHTML == IndexListView.getProperty('initialcontent')) || IndexListView.getProperty('initialcontent')==-1)  
				openIndexList();
			}
		else 	openIndexList();
	}

function setHoverContents(header,content){
$("#hoverContents").empty().append(content);
$("#hoverHeader").empty().append(header);
$('#hoverDiv').fadeIn(); 
}

function openAudioSource(){
	if(audioSourceID!=null){
		selectMedia(audioSourceID);	
		}
	return(false);
	}
function openVideoSource(){
	if(videoSourceID!=null){
		selectMedia(videoSourceID);	
		}
	return(false);
	}