/* Javascript document */
//var presentationToOpen = null;

function init(){
Presentation = PresentationList.Current();
Presentation.Open();
//CreatePresentationList("hoverDivContents");


}
function ajaxSearch(param){
	
	agent.call('_ajax.php','search','CreateSearchResults',param);
}
function DisplayCompatibilityResults(){
	var testResult = '<p>Tunnistettu selain: '+ SystemEnvironment.getProperty('browsername')+'</p>'+
	  '<p>Selaimen versio:'+SystemEnvironment.getProperty('browserversion')+'</p>'+
	 '<p>'+ ((SystemEnvironment.getProperty('activeXSupport')) ? "Selain tukee activeX&auml;&auml;." :"Selain ei tue activeX&auml;&auml;") +'.</p>'+
	 '<p>Windows Media Playerin versio :'+SystemEnvironment.getProperty('wmpversion')+' tai uudempi</p>';
if(!SystemEnvironment.getProperty('browsername').toLowerCase().match('explorer'))	 
	testResult += '<p>Media Player Plugin - tuki havaittu:'+SystemEnvironment.getProperty('wmppluginexists')+'</p>';
	 if(SystemEnvironment.getProperty('browsername').toLowerCase().match('firefox')) 
	 	testResult += '<p>Firefoxin Media Player Plugin asennettu: '+ ((SystemEnvironment.getProperty('firefoxWMPPluginSupport'))? "Kyll&auml;" :"Ei")+'</p>';
	$("#resultText").append(testResult);
	//alert(testResult);
	var comment = '';
	$("#compatibilityResult").fadeIn();
	$("#compatibilityResult").css("background-position","right");
	$("#compatibilityResult").css("background-repeat","no-repeat");
	$("#compatibilityResult").css("text-align","left");
	if(SystemEnvironment.getProperty('isCompatible')==true){
		 comment += "<p><b>J&auml;rjestelm&auml;si on suositustemme mukainen.</p><p>Voit jatkaa esitysten katselua.</p>";
		setTimeout("hideResults()",10000);
		}
	else {
		comment +="<p><b>Havaittiin mahdollisia yhteensopivuusongelmia:</b></p>";
		if(SystemEnvironment.getProperty('browsername').toLowerCase().match('firefox'))
		 	comment +="<p>Suosittelemme Firefox-selaimen MediaPlayer Plugin - laajennuksen asentamista parhaan yhteensopivuuden varmistamiseksi! Klikkaa <a target=\"_blank\" href=\"http://magcast.magneetto.net/support/\">t&auml;st&auml;</a> avataksesi lataussivun.</p>";
		else  comment +="<p>Suosittelemme Microsoft Windows - k&auml;ytt&ouml;j&auml;rjestelm&auml;&auml; ja Internet Explorer, Netscape (versio 7 tai uudempi), tai Mozilla Firefox (Media Player Plugin versiolla 11) -selainta parhaan katselukokemuksen takaamiseksi.</p>";
		}
	comment +="<p>Jos sinulla on ongelmia esitysten katselussa, voit ottaa tukiasioissa yhteytt&auml; osoitteeseen <a href=\"mailto:support@magneetto.com\">support@magneetto.com</a>.</p>";
	$("#resultText").append(comment);
	$("#resultText").append('<p><a href="javascript:" onclick="$(\'#compatibilityResult:visible\').fadeOut(); return(false);">Sulje ilmoitus</a></p>');
	return(false);
	}
	function hideResults(){
		$("#compatibilityResult").fadeOut();
		}
function getWebcastList(){
agent.call('_ajax.php','loadwebcastlist','setwebcastlist',categoryid,userid);
}
	function setwebcastlist(resultval){
		var Event = null;
		var b = 0;
		Events.loaded = true;
		//alert('list loaded:'+resultval);
		if(resultval && resultval != 'false'){
			for(b=0; b<resultval.length;b++){
				Event = Events.Insert();
				Event.ajaxSetProperties(resultval[b]);
				//alert(b +'<'+resultval.length);
				}
			Events.First();
			//alert(Events.Count());
		return(true);
			}//if
	}

function getCurrentWebcast(){
	var webcastid = null;
	var showid = null;
	if(arguments[0]!= null && arguments[0] != 'undefined') webcastid= arguments[0];
	if(arguments[1]!= null && arguments[1] != 'undefined') presentationToOpen = arguments[1]
if(webcastid != null){
	agent.call('_ajax.php','loadwebcast','setcurrentwebcast',webcastid,categoryid,userid);
	}
else {
	ChannelsView.Display();
CreateEventList('hoverDivContents'); 
PresentationListView.Display();
	}
//setInterval('getUserCount()',30000);
if(!SystemEnvironment.getProperty('isCompatible')==true) 
	setTimeout('DisplayCompatibilityResults()',3000);
}
	function setcurrentwebcast(resultval){
	if(resultval && resultval != 'false'){
		Webcast.ajaxSetProperties(resultval);
		//alert(Webcast.getProperty('id'));
	statusmessages.Add('Webcast information loaded for event '+Webcast.getProperty('name')+'.');
	
		getPresentations('latest');
		if(menuLoaded!=true) getPresentationsDisplayList();
		}
		else{
			statusmessages.Add('could not load webcast information');
			}
		}
function getPresentations(){
	var view = null;
	var limit = 'NULL';
	if(arguments[0]){ 
		view = arguments[0];
		limit = 15;
	}
	if(Webcast.getProperty('id') && Webcast.getProperty('id') != -1){
		statusmessages.Add('loading presentations for the event..',1);
		agent.call('_ajax.php','loadpresentations','setpresentationlist',Webcast.getProperty('id'),view);
		}
	else alert('no Webcast selected');
	}
	function setpresentationlist(resultval){
	var current = null;
	if(presentationToOpen && presentationToOpen != null){
		Webcast.setProperty('currentspeaker',presentationToOpen);
	//	alert('opening presentation: '+presentationToOpen);
	}
	if(resultval && resultval != 'false'){
		var i = 0;
		var Slidelist = new Array();
		PresentationList.Clear();
		for(i=0; resultval[i];i++){
			Presentation = PresentationList.Insert();
			Presentation.ajaxSetProperties(resultval[i]);
		//	Presentation.printProperties();
			Presentation.addListProperty('mediasources');
			Presentation.addListProperty('slidechanges');
			Presentation.addListProperty('indexlist');
			Presentation.getSlideChanges = getSlideChanges;
			Presentation.getIndexes = getIndexes;
			Presentation.Open = openPresentation;
			 Slidelist[i] = Presentation.addListProperty('slides');
			Slidelist[i].parent = Presentation;
			Slidelist[i].getSlideList = getSlideList;
			Slidelist[i].setslidelist = setslidelist;
//			Presentation.getSlidelist();
//			Presentation.getMediaList();
			}//for
			PresentationList.First();
			var prestofind = Webcast.getProperty('currentspeaker');
			PresentationList.FindItem('id',prestofind);
		//	alert(PresentationList.getPointer()+' presentation id: '+Webcast.getProperty('currentspeaker')+' presentation:'+PresentationList.Current().getProperty('id'));
			statusmessages.Add('Presentation list loaded ('+PresentationList.Count()+' presentations).');

			setTimeout('init()',1000);			
		}//if
	else alert('unable to load presentation list for the selected webcast ' +Webcast.getProperty('name') );
	}
function getPresentationsDisplayList(){
		agent.call('_ajax.php','loadpresentationsdisplaylist','setpresentationsdisplaylist',Webcast.getProperty('category'),Webcast.getProperty('id'));
	}
	function setpresentationsdisplaylist(resultval){
	var current = null;
	//alert(resultval);
	if(resultval && resultval != 'false'){
		var i = 0;
		PresentationDisplayList.Clear();
		for(i=0; resultval[i];i++){
			if(resultval[i]){
				current = PresentationDisplayList.Insert();
				current.ajaxSetProperties(resultval[i]);
			}
			}//for
		PresentationDisplayList.First();
		CreateShortPresentationList();
		}//if
	else alert('unable to load presentation list for the selected webcast.' );
	}
function getSlideList(){
	if(this.parent.getProperty('id')){
		agent.call('_ajax.php','loadslides','PresentationList.Current().getProperty("slides").setslidelist',this.parent.getProperty('id'));
	}
}
	function setslidelist(resultval){
		var currentSlide = null;
		if(resultval && resultval!= 'false'){
			for(slide in resultval){
				if(resultval[slide]['id']){
					currentSlide = this.Insert();
					currentSlide.ajaxSetProperties(resultval[slide]);
					}
				}
			if(getElement('slideControlsTable')) getElement('slideControlsTable').style.display='block';
			SlideControl.init();
			this.parent.getSlideChanges();	
			}
		else{
			errors.Add('current presentations has no slide material.');
			if(getElement('slideControlsTable')) getElement('slideControlsTable').style.display='none';
			}
	//if(beta != true)	
	//if(getElement('statusmessageContainer'))getElement('statusmessageContainer').style.display='none';
	$("#statusmessageContainer:visible").hide();
		}//end function

	function openSlideList(){
	if((Presentation.getProperty('status')==4 )|| (Webcast.getProperty('status')>2))
		displayslidelist();
	}
	function setListContents(resultval){
		$('#slideContent').html(resultval);
		}
		
	function displayFeecbackForm(){
		$.getScript("formattedContent/feedback.js");			
	$('#hoverDivContents').empty().append().load("formattedContent/feedback.php",{showid:PresentationList.Current().getProperty('id')},function(){
		setFeedbackFormHandler.apply();
		});	
	$('#hoverDiv').show();
			$('#hoverDiv').corner({
          tl: { radius: 5 },
          tr: { radius: 5 },
          bl: { radius: 5 },
          br: { radius: 5 }
		  });
			statusmessages.Add('Show feedback form loaded.');
		}
	function displayCommentForm(){
		$.getScript("formattedContent/comment.js");			
	$('#hoverDivContents').empty().append().load("formattedContent/comment.php",{id:PresentationList.Current().getProperty('id')},function(){
		setCommentFormHandler.apply();
		});	
	$('#hoverDiv').show();
			$('#hoverDiv').corner({
          tl: { radius: 5 },
          tr: { radius: 5 },
          bl: { radius: 5 },
          br: { radius: 5 }
		  });
			statusmessages.Add('Show commenting form loaded.');
		}
	function displayslidelist(resultval){

			$("#hoverDivContents").empty().append().load('formattedContent/slidelist.php',{id:PresentationList.Current().getProperty('id')});
			$('#hoverDiv').show();
			$('#hoverDiv').corner({
          tl: { radius: 5 },
          tr: { radius: 5 },
          bl: { radius: 5 },
          br: { radius: 5 }
		  });
			statusmessages.Add('Slide thumbnail list loaded.');
		}
	
function getSlideChanges(){
			if(this.getProperty('id')){
				statusmessages.Add('loading slide changes for presentation ' +this.getProperty('id'));
			agent.call('_ajax.php','loadslidechanges','slidesetchanges',this.getProperty('id'));
			}
			
		}
	function slidesetchanges(resultval){
		var currentSlide = null;
		if(resultval && resultval!= 'false'){
			
			for(slide in resultval){
				if(resultval[slide]['time']){
					//statusmessages.Add(resultval[slide]['time']);
					currentSlide = PresentationList.Current().getProperty('slidechanges').Insert();
					currentSlide.ajaxSetProperties(resultval[slide]);
					}//endif
				}//endfor
				errors.Add('slide change information loaded, '+PresentationList.Current().getProperty('slidechanges').Count()+' changes defined ');
			}//endif
			else statusmessages.Add('no slide changes defined for this presentation')
		}//end function
		
function getMediasources(){
	if(PresentationList.Current().getProperty('id') != -1){
		if(PresentationList.Current().getProperty('mediasources').IsEmpty()){
			var sourceType = 'live';
			if((PresentationList.Current().getProperty('status')==4 )|| (Webcast.getProperty('status')>2)){
				sourceType = 'ondemand';
				statusmessages.Add('The event is available for on-demand viewing.');
				}
			else statusmessages.Add('Opening live feed.');
			agent.call('_ajax.php','loadmediasources','setmediasourcelist',Webcast.getProperty('id'),PresentationList.Current().getProperty('id'),sourceType,mediatype);
			} 
		}
	}
	function setmediasourcelist(resultval){
		if(resultval && resultval != 'false'){
		//alert(resultval);
		statusmessages.Add('Mediasourcelist loaded for current presentation');
			var i = 0;
			var MediaSourceList = PresentationList.Current().getProperty('mediasources');
			MediaSourceList.Clear();
			for(i=0; resultval[i];i++){
		//	alert('inserting media source');
				MediaSource = MediaSourceList.Insert();
				MediaSource.ajaxSetProperties(resultval[i]);
				MediaSource.parent = PresentationList.Current();
				}
			MediaSourceList.First();
			PresentationList.Current().Open();
			}//if
		else statusmessages.Add('Could not load media sources for presentation '+PresentationList.Current().getProperty('showtitle'),4);
		}
		

function getIndexes(){
	if(!this.getProperty('indexlist').Count()){
				statusmessages.Add('loading index list for presentation ' +this.getProperty('id'));
			agent.call('_ajax.php','loadindexlist','setindexes',this.getProperty('id'));
			}
	else displayIndexSelect();
}
	function setindexes(resultval){
		//alert(resultval);
		PresentationList.Current().getProperty('indexlist').Clear();
		if(resultval && resultval!= 'false'){
			for(index in resultval){
				currentIndex =  PresentationList.Current().getProperty('indexlist').Insert();
				currentIndex.ajaxSetProperties(resultval[index]);
				}
		DisplayIndexSelect();
		}
	else $('#indexSelect').html('');
	}

function getHTMLSlide(sId){
var slideId = sId ? sId : PresentationList.Current().getProperty('slides').Current().getProperty('id');
	agent.call('_ajax.php','openhtmlslide','SlideControl.setHTMLContent',slideId);
	}
function chatSendLine(nametosend,linetosend){
		agent.call('_ajax.php','chatsendline','chatlinesent',nametosend,linetosend);
	}
function chatlinesent(resultstatus){
	if(resultstatus=='true' || resultstatus==1){
		//alert('line sent');
		if(getElement('chat_send_header')){
			getElement('chat_send_header').innerHTML = 'Viesti vastaanotettu.';
			jobqueue.addJob('getElement(\'chat_send_header\').innerHTML = \'L&auml;het&auml; viesti.\'',false,1,5000);
			
			}
		}
	else alert(resultstatus);
	}
function chatGetLines(){
	agent.call('_ajax.php','chatgetlines','Chat.AddLines');
	}

function getstatus(){
if(PresentationList.IsEmpty()) alert('Esityslista on tyhj&auml;.');
else {
	globalRowCount++;
	statusmessages.Add(globalRowCount+'. Presentationlist has '+PresentationList.Count() +' presentations. The current presentation is '+PresentationList.Current().getProperty('showtitle') + ' by ' + PresentationList.Current().getProperty('speaker') +'. It has ' + PresentationList.Current().getProperty('slides').Count() + ' slides.');
	statusmessages.Print();
	statusmessages.Trim(5);
//	alert(PresentationList.Current().getProperty('slides').Current().getProperty('number'));
	//alert(PresentationList.Current().printProperties());
	}
}
function geterrors(){
	errors.Print();
	}
function getUserCount(){
	
	agent.call('_ajax.php','getLoggedInUserCount','setusercount');
	}
	function setusercount(resultval){
	 $("#usercount").text(''+resultval);
	}
function openMaterialList(){
		$('#hoverDiv:visible').fadeOut();
	if(Webcast.getProperty('filecategory') == -1 || Webcast.getProperty('filecategory')== 0) {

		$("#"+MaterialListView.getProperty('objectID')).html('Ohjelmaan ei liity oheismateriaalia');
		$('#hoverDiv:hidden').fadeIn();
		}
	else agent.call('_ajax.php','loadFileArchiveHTML','setmateriallist',Webcast.getProperty('filecategory'));
}
	function setmateriallist(resultval){
	//	alert(resultval);
		if(resultval && resultval != 'false'){
			if(MaterialListView){
				$("#"+MaterialListView.getProperty('objectID')).html(resultval);
				$('#hoverDiv:hidden').fadeIn();
				statusmessages.Add('List of related materials loaded.');
				}
				statusmessages.Add('Loading related materials list returned an error.');
			}
	}
function openIndexList(){
	agent.call('_ajax.php','GetIndexListHTML','setindexlist',PresentationList.Current().getProperty('id'));
	}
	function setindexlist(resultval){
	//	alert(resultval);
		if(resultval && resultval != 'false'){
			if(IndexListView){
				if(getElement(IndexListView.getProperty('objectID'))){
					getElement(IndexListView.getProperty('objectID')).innerHTML = resultval;
				}
			}
		}
	}
function ajaxSendShowOpened(eventid,showid){
	agent.call('_ajax.php','updateviewstatistics',null,eventid,showid);
	}
	function ajaxUpdateShowViewCounter(showid){
		agent.call('_ajax.php','updateshowviewcounter',null,showid);
	}
function ajaxSetProperty(t,id,p,v){
	agent.call('_ajax.php','usersetvalue',null,t,id,p,v);
	return(false);
}
function ajaxSendFeedback(topic,sender,line){
		agent.call('_ajax.php','sendfeedback','feedbacksent',topic,sender,line);
		}
		function feedbacksent(resultstatus){
			alert('Your feedback has been received. Thank you.');
			statusmessages.Add('Feedback sent.');
			getElement('fb').reset();
			}

function ajaxAddComment(videoid,topic,comment,sender){
		//Add comment for presentation
	agent.call('_ajax.php','addcomment','resetfommentform',videoid,topic,comment,sender);
}
	function resetCommentForm(){
		//Reset comment form and inform of saved comment.
		}

function ajaxAddRating(videoid,rating){
	//Add rating for presentation
	agent.call('_ajax.php','addrating',null,videoid,rating);
}
			
function defaultHandler(){
	return(false);
	}
function ajaxLog(){
	if((arguments[0]) && (typeof(arguments[0])!='undefined')){
		if(this.targetlog != false)
				agent.call('_ajax.php','alog',null,arguments[0],this.targetlog);
		else 	agent.call('_ajax.php','alog',null,arguments[0]);
		}
	else return(true);
}
	