/**
 * Contains JQuery based JS for home page (/protected/views/site/index.php). 
 * 
 * @author Tom Brown <tombrown86@googlemail.com>
 */

$(document).ready(function(){
	$(".gp_sign_up").click(function(){
		show_signup_form("Gp");
	});
	$(".surgery_sign_up").click(function(){
		show_signup_form("Surgery");
	});

	$("#drop_down_box").click(function(){
		$(".mini_popup").css("display", "none");
		moveX = findPosX(document.getElementById("drop_down_box")) - 192;
		moveY = findPosY(document.getElementById("drop_down_box")) + 23;
		$("#select_skill_popup").css({'top' : moveY, 'left' : moveX, 'display': 'block'});
	});
	
	$("#search_gp_btn").click(function(){
		$(".mini_popup").css("display", "none");
		moveX = findPosX(document.getElementById("drop_down_box")) - 112;
		moveY = findPosY(document.getElementById("drop_down_box")) + 23;
		$("#search_gp_results_div").html($("#search_gp_waiting").html());
		$("#search_gp_results_div .ajax_waiting").css({"display": "block"});
		$("#search_gp_results").css({'top' : moveY, 'left' : moveX, 'display': 'block'});
		var listOfSkills = '';
		$("input[@type=checkbox][checked].skill").each(
		  function() {
		   	listOfSkills += ((listOfSkills.length > 0) ? ",":"") + $(this).val();
		  }
		);
		$("input#required_skills").val(listOfSkills);
		$("#continue_gp_search").ajaxSubmit(function(xml)
		{
			switch(xml.getElementsByTagName("status")[0].firstChild.data)
			{
				case "invalid":
					alert(xml.getElementsByTagName("error")[0].firstChild.data);
					$("#search_gp_results").css({'display':'none'});
					break;					
				case "success":
					// Get GP elems
					gpElems = xml.getElementsByTagName("gp");
	
					// Replace captcha text with results div
					$("#search_gp_results_div").html($("#search_gp_results_content").html());
	
					// Set number of GP's
					var numberOfGps = xml.getElementsByTagName("numberOfGPs")[0].firstChild.data;
					$("#search_gp_results_div span.number_of_gps").html(numberOfGps);
					if(numberOfGps > 10)
					{
						$("#search_gp_results_div span#showing_1_to_10").html("Below are the 10 closest.");
					}
	
					var resultsTbl = '';
					// Get results table HTML
					if(numberOfGps > 0)
					{
						resultsTbl = '<table class="results"><tr><th>Skill Match:</th><th>Distance:</th><th>Contact GP</th></tr>';
						for(i=0;i<gpElems.length;i++)
						{
							resultsTbl += '<tr><td>'+gpElems[i].getElementsByTagName("skillMatch")[0].firstChild.data+'</td><td>'+gpElems[i].getElementsByTagName("distance")[0].firstChild.data+'</td><td><a href="javascript: alert(\'To contact a GP you must first login or create an account.\');">contact now</a></td></tr>';
						}
						resultsTbl += '</table>';
					}
					// Display results table
					$("#search_gp_results_div .ajax_results").html(resultsTbl);
					break;
			}
		});
	});

	
	$("#select_skill_popup .close_popup").click(function(){
		$("#select_skill_popup").css("display", "none");
	});
	
	$("#search_gp_results .close_popup").click(function(){
		$("#search_gp_results").css("display", "none");
	});
	
	$("select#select_skill_categories").change(function() {
		$("div.skill_set").css("display", "none");
		$("div#skills_in_category" + this.value).css("display", "block");
	});

});

function show_signup_form(userType)
{
	grayOutAndDisplayLayer("signup_"+userType+"_layer", "/.?r=site/ajax" + userType + "SignUpForm", true,
		// This is the function called when the layer is loaded
		function () {
			$("#signup_"+userType+"_layer .waiting_message").css({"display":"none"});
			$("#signup_"+userType+"_layer .popup_content").css({"display":"block"});
			
			// Attach ajax waiting animation to submit
			$("#signup_"+userType+"_layer #signup_"+userType+"_form").submit(function()
			{
				$("#signup_"+userType+"_layer #signup_"+userType+"_form .ajax_waiting").css({"display":"inline"});
			});
			// Now attach ajaxForm functionality,
			$("#signup_"+userType+"_layer #signup_"+userType+"_form").ajaxForm(function(xml)
			{
				// Remove 'please wait' animation
				$("#signup_"+userType+"_layer #signup_"+userType+"_form .ajax_waiting").css({"display": "none"});
				
				// Handle response from signup form
				switch(xml.getElementsByTagName("status")[0].firstChild.data)
				{
						case "success":
							// Display thankyou message
							//  If GP, redirect to GP home
							//  If Surgery, show thankyou message
							if(userType == 'Gp')
							{
								$("#signup_"+userType+"_layer .popup_content").html('<p><h2 align="center">Thanks for registering! Please wait a moment...</h2></p>');
								document.location = xml.getElementsByTagName("redirect")[0].firstChild.data;
							}
							else if(userType == 'Surgery')
							{
								$("#signup_"+userType+"_layer .popup_content").html(xml.getElementsByTagName("message")[0].firstChild.data);
							}
							break;
						// Display error summary HTML
						case "invalid": 
							$("#signup_"+userType+"_layer .popup_content .error_summary").html(xml.getElementsByTagName("errorSummary")[0].firstChild.data);
							break;
				}
			});
		});
}