function sessioncheck(id) {
	
	$.getJSON('/student/useronline/?id=' + id, function(data) {
		
		if (data.available == 1) {
			
			$('#session_available').css('display', 'none');
		
			if (data.online == 1) {
			
				$('#user_online').css('display', '');
				$('#user_offline').css('display', 'none');
				
			} else {
				
				$('#user_online').css('display', 'none');
				$('#user_offline').css('display', '');
				
			}

		} else {
			
			$('#session_available').css('display', '');
			$('#user_online').css('display', 'none');
			$('#user_offline').css('display', 'none');
			
		}

		setTimeout('sessioncheck(' + data.id + ');', 5000); 
												  
	});

}

function cancel_session() {
			
	$('#cancel_button').css('display', 'none');
	$('#cancel_form').css('display', '');
	
}

$(function(){
	
	$('#dabbleboard').dialog({
		autoOpen: false,
		width: 1000,
		height: 590,
		modal: true,
		resizable: false,
		draggable: false,
		buttons: {
			
			"End Session (--:--)": function() { 
		
				$(this).dialog("close"); 
					
			}
				
		},
		
		beforeclose: function(event, ui) {
		
			if (confirm("Are you sure you wish to end this session?") == true) {
				
				var id = $('#start_session_id').val();
				
				$.ajax({
					type: 'GET',
					url: '/dabbleboard/end/?id=' + id,
					dataType: 'json',
					success: function() {},
					data: {},
					async: false
				});

				window.location = '/student/feedback/?id=' + id;
				
				return true;

					
			} else {
				
				return false;
			
			}
			
		}
		
	});
	
	$('#start_session').click(function(){
									   
		var id = $('#start_session_id').val();
									   
		$('#dabbleboard').dialog('open');
		
		$('#dabbleboard').html('<div align="center"><br><br><br><br><br><br><br><br><strong>Loading Session - One Moment Please</strong><br><br><br><img src="/images/loading_big.gif" width="32" height="32"><br><br><br><span id="dabbleboard_status" style="color: #666666;">Authenticating User</span></div>');
		
		$.getJSON('/dabbleboard/user/?id=' + id + '&ts=' + (new Date()).getTime(), function(data) {
			
			$('#dabbleboard_status').html('Initializing Board');
			
			if (data.key == '') {
				
				$('#dabbleboard').html('<div align="center" style="color: red"><br><br><br><br><br><br><br><br>Error Authenticating User</div>');
				
			} else {
				
				var user_id = data.id;
				var user_key = data.key;
				
				$.getJSON('/dabbleboard/drawing/?id=' + id + '&ts=' + (new Date()).getTime(), function(data) {
					
					if (data.key == '') {
				
						$('#dabbleboard').html('<div align="center" style="color: red"><br><br><br><br><br><br><br><br>Error Initializing Board</div>');
				
					} else {
						
						var drawing_id = data.id;
						var drawing_key = data.key;

						$('#dabbleboard').html('<div align="center"><br><br><br><br><br><br><br><br><strong>Session Handshake</strong><br><br><br><img src="/images/loading_big.gif" width="32" height="32"><br><br><br><span id="dabbleboard_status" style="color: #666666;">Waiting For Other User</span></div>');
						
						start_handshake(id, user_id, user_key, drawing_id, drawing_key);
						
					}
														  
				});				
				
			}
														  
		});		
		
		return false;
		
	});
	
});

function online(id) {
	
	$.getJSON('/dabbleboard/online/?id=' + id, function(data) {
		
		setTimeout('online(' + id + ');', 5000); 
												  
	});

}

function start_handshake(id, user_id, user_key, drawing_id, drawing_key) {
	
	$.getJSON('/dabbleboard/handshake/?id=' + id + '&ts=' + (new Date()).getTime(), function(data) {
					
		if (data.start == 1) {
			
			online(id);
			
			start_dabbleboard(user_id, user_key, drawing_id, drawing_key);
			
			start_timer(0, user_id, user_key, drawing_id, drawing_key);
			
		} else {
			
			setTimeout('start_handshake(' + id + ', \'' + user_id + '\', \'' + user_key + '\', \'' + drawing_id + '\', \'' + drawing_key + '\');', 1000); 
			
		}
						
	});
	
}

function start_dabbleboard(user_id, user_key, drawing_id, drawing_key) {
	
	$('#dabbleboard').html('<iframe width="980" height="480" style="border: 0px; display: none" src="http://api.dabbleboard.com/api/iframe?dev_id=hometutoringonline&dev_key=a0cde5f8fe88818729219d865a4282b7aa1036e7&user_id=' + user_id + '&user_key=' + user_key + '&drawing_user_id=hometutoringonline&drawing_id=' + drawing_id + '&drawing_key=' + drawing_key + '&width=980&height=480&include_videochat=yes&hide_lib_pane=yes" frameborder="0"></iframe><div align="center"><br><br><br><br><br><br><br><br><strong>Session Handshake</strong><br><br><br><img src="/images/loading_big.gif" width="32" height="32"><br><br><br><span id="dabbleboard_status" style="color: #666666;">Session Cookie Reset</span></div>');
	
	setTimeout('start_dabbleboard2(\'' + user_id + '\',\'' + user_key + '\',\'' + drawing_id + '\',\'' + drawing_key + '\');', 2000);
	
}

function start_dabbleboard2(user_id, user_key, drawing_id, drawing_key) {
	
	$('#dabbleboard').html('<iframe width="980" height="480" style="border: 0px;" src="http://api.dabbleboard.com/api/iframe?dev_id=hometutoringonline&dev_key=a0cde5f8fe88818729219d865a4282b7aa1036e7&user_id=' + user_id + '&user_key=' + user_key + '&drawing_user_id=hometutoringonline&drawing_id=' + drawing_id + '&drawing_key=' + drawing_key + '&width=980&height=480&include_videochat=yes&hide_lib_pane=yes" frameborder="0"></iframe>');
		
}
function start_dabbleboard3(user_id, user_key, drawing_id, drawing_key) {
	
	$('#dabbleboard').html('Reloading');
	
	setTimeout('start_dabbleboard2(\'' + user_id + '\',\'' + user_key + '\',\'' + drawing_id + '\',\'' + drawing_key + '\');', 1000);
		
}

function start_timer(seconds, user_id, user_key, drawing_id, drawing_key) {
	
	var buttons = {};
	buttons["End (" + seconds_to_minutes(seconds) + ")"] = function() { $(this).dialog("close");}
	buttons["Reload"] = function() { start_dabbleboard2(user_id, user_key, drawing_id, drawing_key);}

	$('#dabbleboard').dialog('option', 'buttons', buttons);
	
		setTimeout('start_timer(' + (seconds + 1) + ',\'' + user_id + '\',\'' + user_key + '\',\'' + drawing_id + '\',\'' + drawing_key + '\');', 1000);
	
}

function zero_padding(number, count){
	
	var number_padded = number + '';
	
	while(number_padded.length < count) {
	
		number_padded = "0" + number_padded; 
	
	}

	return number_padded;
	
}

function seconds_to_minutes(seconds) {

	minutes = Math.floor(seconds/60);
	seconds = seconds % 60;

	return zero_padding(minutes, 2) + ":" + zero_padding(seconds, 2);

}