// JavaScript Document
var time_users;
var time_msgs;

$(document).ready(function(){
	//$("#footer").show();
	var current_seminar_id = $("#current_seminar_id");
	var live_stream_id = $("#live_stream_id");
	var live_stream_session_doc = $("#live_stream_session_doc");
	
	//initializeChat(current_seminar_id.attr("value"));
	if(live_stream_id.val()){
		initializeChat(live_stream_id.attr("value"));
		
		
		/*if(live_stream_session_doc.val() == ""){
			var presentation_link = $("#presentation_link");
			presentation_link.hide();
		}*/
	}
	$("#chat_input").one("focus",function(){
		$(this).val("");
	});
});

/*function loadPresentation(doc_url){
	var chat_div = $("#chat_div");
	chat_div.hide();
	//chat_div.css("z-index","0");
	
	var presentation_div = $("#presentation_div");
	presentation_div.show();
	//presentation_div.css("z-index","1");
	
	var doc_frame = $("#doc_frame");
	//var session_doc_url = $("#session_doc_url");
	//alert(session_doc_url.val());
	doc_frame.attr("src",doc_url + "#toolbar=0");
	
	var presentation_link = $("#presentation_link");
	presentation_link.hide();
	
	var chat_link = $("#chat_link");
	chat_link.show();
}*/

function loadChatDiv(){
	var chat_div = $("#chat_div");
	chat_div.show();
	//chat_div.css("z-index","1");
	
	var presentation_div = $("#presentation_div");
	presentation_div.hide();
	//presentation_div.css("z-index","0");
	
	var doc_frame = $("#doc_frame");
	doc_frame.attr("src","");
	
	var presentation_link = $("#presentation_link");
	presentation_link.show();
	
	var chat_link = $("#chat_link");
	chat_link.hide();
}

function changeFileURL(doc_url){
	if(doc_url == "session_documents/"){
		var presentation_link = $("#presentation_link");
		presentation_link.hide();
	}else{
		var presentation_href = $("#presentation_href");
		presentation_href.click(function(){
			loadPresentation(doc_url);
		});
	}
}

function ignore(){
	//$("#ignore_btn").val("test");
	var ignore_btn = $("#ignore_btn");
	var ignore_flag = $("#ignore_flag");
	var chat_input = $("#chat_input");
	var chat_submit = $("#chat_submit");
	if(ignore_btn.val() == "Ignore"){
		chat_input.attr("disabled","disabled");
		chat_submit.attr("disabled","disabled");
		$("#msg_list").html("");
		ignore_btn.val("Show");
		ignore_flag.val("1");
	}else if(ignore_btn.val() == "Show"){
		chat_input.attr("disabled","");
		chat_submit.attr("disabled","");
		ignore_btn.val("Ignore");
		ignore_flag.val("0");
	}
}

function showInteractive(){
	var placemaker_div = $("#placemaker_div");
	placemaker_div.hide();
	
	var interactive_div = $("#interactive_div");
	interactive_div.show();
}

function initializeChat(seminar_id){
	
	
	var chat_div = $("#chat_div");
	chat_div.show();
	
	/*var presentation_div = $("#presentation_div");
	presentation_div.hide();*/
	
	/*var presentation_link = $("#presentation_link");
	presentation_link.show();*/
	
	/*var chat_link = $("#chat_link");
	chat_link.hide();*/
	
	$("#msg_list").html("");
	$("#current_seminar_id").attr("value",seminar_id);
	
	$("#latest_time").attr("value","0");
	$("#latest_chat_id").attr("value","0");
	
	loadUsers(seminar_id);
	loadChatMsg(seminar_id);
	enableInput(seminar_id);
	
	/*$.post("ajax_files/seminar_title.php",
	{seminar_id:seminar_id},
	function(data){
		$("#seminar_title_div").html("<div class='shadow' style='font-weight:bold; font-size:16px; padding-top:5px; padding-left:5px; padding-right:5px;'><span>" + data.generic_title + " : " + data.title + "</span></div>")
	},
	"json"
	);*/
}

function loadUsers(seminar_id){
	stopUserInterval();
	var user_list = $("#user_list");
	var postStr = "seminar_id=" + seminar_id;
	$.ajax({
		type: "POST",
		url: "ajax_files/users.php",
		data: postStr,
		success: function(returnVal){
			user_list.html(returnVal);
			startUserInterval(seminar_id);
		}
	});
}

function loadChatMsg(seminar_id){
	var ignore_flag = $("#ignore_flag");
	
	if(ignore_flag.val() != "1"){
		var msg_loading = $("#msg_loading");
		//stop time counter before send any request to server to avoid collapse
		stopMsgInterval();
		var check_time = $("#latest_time").attr("value");
		var latest_chat_id = $("#latest_chat_id").attr("value");
	
		var now = new Date();
		var unix_now = now.getTime()/1000;
		unix_now = parseInt(unix_now);

		var msg_list = $("#msg_list");
		$.post("ajax_files/chat_msgs.php",
		{check_time:check_time,seminar_id:seminar_id,latest_chat_id:latest_chat_id},
		function(data){
			//--------In this case, refresh all chat history------------\
			//$("#latest_time").attr("value",data.latest_time);
			$("#latest_time").attr("value","0");
			//----------------------------------------------------------/
			//start time counter after get response from server
			startMsgInterval(seminar_id);
		
			if(data.latest_chat_id != null){
				$("#latest_chat_id").attr("value",data.latest_chat_id);
			}

			if(data.title != ""){
				$("#msg_list").append(data.title);
			}
		
			if (data.html != "") {
				//alert("aaaaa");
				if(msg_loading.css("display") != "none"){
					msg_loading.fadeOut("slow");
				}
				//--------In this case, not append but totally replace-----------\
				//$("#msg_list").append(data.html);
				if (data.empty != "true"){
					$("#msg_list").html(data.html);
				}else{
					$("#msg_list").html("");
				}
				//---------------------------------------------------------------/
				if (data.empty != "true"){
					sc();
				}
			}
		},"json");
	}
}
function sc() { 
	var e = document.getElementById("msg_list") 
	e.scrollTop = e.scrollHeight; 
} 
function enableInput(seminar_id){
	var input = $("#chat_input");
	input.removeAttr("disabled");
	
	var input = $("#chat_submit");
	input.removeAttr("disabled");
	
	$("#chat_input").keypress(function(e){
		if (e.which == 13){
			sendMsg();
		}
	});
}

function sendMsg(){
	var msg_loading = $("#msg_loading");
	stopMsgInterval();
	var seminar_id = $("#current_seminar_id").attr("value");
	var content = $("#chat_input").val();
	var now = new Date();
	var unix_now = now.getTime()/1000;
	unix_now = parseInt(unix_now);
	$("#chat_input").val("");
	$("#chat_input").focus();
	if (content != "") {
		msg_loading.fadeIn("slow");
		$.post("ajax_files/send_msg.php", {
			seminar_id: seminar_id,
			content: content,
			time:unix_now
		}, function(data){
			if(data.success == 1){
				loadChatMsg(seminar_id);
			}else{
				alert("You message hasn't been sent to server, please try again.");
			}
			
		}, "json");
	}
}

function startMsgInterval(seminar_id){
	if(time_msgs == ""){
		time_msgs = setInterval("loadChatMsg(" + seminar_id +")",2000);
	}else{
		stopMsgInterval();
	}
}

function stopMsgInterval(){
	if (time_msgs != "") {
		clearInterval(time_msgs);
		time_msgs = "";
	}
}

function startUserInterval(seminar_id){
	if(time_users == ""){
		time_users = setInterval("loadUsers(" + seminar_id +")",5000);
	}else{
		stopUserInterval();
	}
}

function quitChat(){
	$.post("ajax_files/quit_chat.php", {}, function(data){});
}

function stopUserInterval(){
	if (time_users != "") {
		clearInterval(time_users);
		time_users = "";
	}
}

//very useful for debug
function debug(id){
	var debug_div = $("#debug_div");
	debug_div.css("height","150px");
	debug_div.css("overflow","scroll");
	
	var e = document.getElementById("debug_div");
	e.scrollTop = e.scrollHeight;
	
	debug_div.append($("#"+id).val() + "<br>");
}


