﻿//(function($) {

jQuery(document).ready(function($) {
	$('a[rel*=facebox]').facebox()
})

var samespeak = function() {
	var target = $(this);
	target.cancelRequest = function() {
		$.getJSON("/webservices/SamespeakWebservice.svc/CancelRequest", { random: Math.random() },
			function(result) {
				window.location.reload(false);
			}
		);
	}

	target.setAvailability = function(available) {
		$.getJSON("/webservices/SamespeakWebservice.svc/SetAvailability", { available: available, random: Math.random() },
			function(result) {
				$('#available a').removeClass('off');
				$('#available #' + (available ? 'yes' : 'no')).addClass('off');
				target.pollForAction();
			}
		);
	}

	target.startLesson = function(start) {
		$.getJSON("/webservices/SamespeakWebservice.svc/StartLesson", { Start: start, random: Math.random() },
			function(result) {
				$('#lesson a').removeClass('off');
				$('#lesson #' + (!start ? 'start' : 'stop')).addClass('off');
				if (start) {
					target.pollForAction();
				} else {
					window.location.reload(false);
				}
			}
		);
	}

	target.displayFaceBoxWithParams = function(id, params) {
		if (!$(id).is('*'))
			return;

		for (var key in params)
			if ($(id + ' .' + key.toLowerCase()).is('*'))
			$(id + ' .' + key.toLowerCase()).html(params[key]);
		if (params.ImageUrl && $(id + ' img.profile-thumb').is('*'))
			$(id + ' img.profile-thumb').attr('src', params.ImageUrl);
		if (params.ConversationUrl && $(id + ' a.conversationlink').is('*'))
			$(id + ' a.conversationlink').attr('href', params.ConversationUrl);
		$.facebox({ div: id });
	}

	target.selectTimeBlock = function(availableTimeIds) {
		var result = [];
		for (var i = 0; i < availableTimeIds.length; i++)
			result.push(scheduleData[availableTimeIds[i]].time + " " + scheduleData[availableTimeIds[i]].coach);
		alert(result.join(','));
	}

	var clientEvents = {
		"Alert": function(params) {
			$.facebox(params.Message);
		},
		"Status": function(params) {
			$('#reminder .text').html(params.Message);
			if (!$('#reminder .photo img').is('.static')) {
				$('#reminder .photo').attr("style", params.Image ? "" : "display:none");
				$('#reminder .photo img').attr("src", params.Image);
				$('#reminder .photo img').attr("alt", params.DisplayName);
				$('#reminder .photo a').attr("src", params.ImageUrl);
			}
			$('#reminder').fadeIn('slow');
		}
	};

	target.pollForAction = function() {
		$.getJSON("/webservices/SamespeakWebservice.svc/PollForAction", { random: Math.random() },
			function(result) {
				if (!result || !result.d)
					return;
				for (var i = 0; i < result.d.length; i++)
				{
					if (clientEvents[result.d[i].TypeName])
						clientEvents[result.d[i].TypeName](result.d[i].Params);
					else
						target.displayFaceBoxWithParams('#ClientEvent' + result.d[i].TypeName, result.d[i].Params);
				}
			}
		);
	}

	//Ask for an update every 30 seconds or so
	window.setInterval(target.pollForAction, 10000);
	return target;
} ();

$(function() {
	$("form input").keypress(function(e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			if ($(this).attr('defaultButton')) {
				var buttonId = '#' + $(this).attr('defaultButton');
				$(buttonId).click();
				return false;
			}
		}
		return true;
	});
});
