// JavaScript Document

//Create a bool to check for a valid IE instance
var xmlhttp = false;
var showExcuse = false;

//Check if we are using IE.
try {
	//If the javascript version is greater than 5.
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
	//If not, then use the older active x object.
	try {
		//If we are using IE.
		xmlhttp = new ActiveXObject("Microsoft.XMHTTP");
	} catch (E) {
		//Else we must be using a non-IE browser.
		xmlhttp = false;
	}
}

//If we are using a non-IE browser, create a Javascript instance of the object.
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
{
	xmlhttp = new XMLHttpRequest();
}

//set RSVP
function setRSVP(event_id, user_id)
{
	//The location we are loading the page into
	var objID = event_id;
		
	//Get values
	var response = document.getElementById("response"+objID).value;
	var excuse;
	if (showExcuse == true)
	{
		excuse = document.getElementById("excuse"+objID).value;
	}
	else
	{
		excuse = "No excuse provided.";
	}
	//The page we are loading
	var serverPage = "rsvp.php?eid="+event_id+"&response="+response+"&excuse="+excuse;
	
	var obj = document.getElementById(objID);
	xmlhttp.open("GET", serverPage);
	xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				obj.innerHTML = xmlhttp.responseText;
			}
	}
	xmlhttp.send(null);

} //setRSVP()

function showRSVPForm(event, event_id, user_id)
{
	event.preventDefault();
	
	var temp = "<div id=\""+event_id+"\" class=\"tinyform\"><p>";
  	temp += "<select name=\"response\" id=\"response"+event_id+"\" onChange=\"checkExcuse("+event_id+")\">";
    temp += "<option value=\"attending\">Attending</option>";
    temp += "<option value=\"arriving_late\">Arriving Late</option>";
    temp += "<option value=\"leaving_early\">Leaving Early</option>";
    temp += "<option value=\"not_attending\">Not Attending</option>";
 	temp += "</select>";
	temp += "&nbsp;";
   	temp += "<input type=\"submit\" name=\"button\" id=\"button\" value=\"Save\" onclick=\"setRSVP('"+event_id+"','"+user_id+"')\" />";
	temp += "</p><p><span id=\"excuseArea"+event_id+"\"></span><span class=\"tinylink\"><a onclick=\"hideRSVPForm(event, '"+event_id+"','"+user_id+"')\" href=\"#\">[ hide ]</a></span></p></div>";
	
	var objID = event_id;
	
	var obj = document.getElementById(objID);
	obj.innerHTML = temp;

}
function hideRSVPForm(event, event_id, user_id)
{
	event.preventDefault();
	
	var objID = event_id;
	
	var obj = document.getElementById(objID);
	
	var temp = "<span class=\"tinylink\"><a onclick=\"showRSVPForm(event, '"+event_id+"','"+user_id+"')\" href=\"#\">[ edit ]</a></span>";
		
	obj.innerHTML = temp;
}


function showExcuseField(event_id)
{
	var objID = event_id;
	
	var obj = document.getElementById("excuseArea"+objID);
		
	var temp = "<p>";
	temp += "<textarea name=\"excuse\" id=\"excuse"+event_id+"\" cols=\"20\" rows=\"5\">What's your excuse?</textarea>";
	temp += "</p>";
	
	obj.innerHTML = temp;
	showExcuse = true;
	
}
function hideExcuseField(event_id)
{
	var objID = event_id;
	
	var obj = document.getElementById("excuseArea"+objID);
		
	obj.innerHTML = "";
	showExcuse = false;
	
}


//checks to see if an excuse is needed
function checkExcuse(user_id)
{
	var objID = user_id;
	
	var obj = document.getElementById("response"+objID);

//if response requires excuse, prompt for it
	if ((obj.value == "arriving_late") || (obj.value == "leaving_early") || (obj.value == "not_attending"))
		showExcuseField(user_id);
	else
		hideExcuseField(user_id);
		
	
	
} //checkExcuse


//shows an attendance field applicable to the given member
function showAttendanceForm(event, event_id, user_id)
{
	event.preventDefault();
	var objID = user_id;
	
	var obj = document.getElementById(objID);
	
	var temp = "<select name=\"status\" id=\"status" + user_id + "\">";
    temp += "<option value=\"attended\" selected=\"selected\">Attended</option>";
    temp += "<option value=\"late_excused\">Late (Excused)</option>";
    temp += "<option value=\"late_unexcused\">Late (Unexcused)</option>";
    temp += "<option value=\"absent_excused\">Absent (Excused)</option>";
    temp += "<option value=\"absent_unexcused\">Absent (Unexcused)</option>";
	temp += "<option value=\"not_responsible\">Not responsible for this event</option>";
	temp += "</select>";
	temp += "<input name=\"points\" type=\"text\" id=\"points" + user_id + "\" size=\"3\" />";
	temp += "<input type=\"submit\" name=\"button\" id=\"button\" value=\"Save\" onclick=\"setAttendance('" + event_id + "','" + user_id + "')\" />";
	temp += "&nbsp;&nbsp;<span class=\"tinylink\"><a onclick=\"hideAttendanceForm(event, '"+event_id+"','"+user_id+"')\" href=\"#\">[ hide ]</a></span>";
		
	obj.innerHTML = temp;
}

function hideAttendanceForm(event, event_id, user_id)
{
	event.preventDefault();
	var objID = user_id;
	
	var obj = document.getElementById(objID);
	
	var temp = "<span class=\"tinylink\"><a onclick=\"showAttendanceForm(event, '"+event_id+"','"+user_id+"')\" href=\"#\">[ edit ]</a></span>";
		
	obj.innerHTML = temp;
}

function setAttendance(event_id, user_id)
{
	//The location we are loading the page into
	var objID = user_id;
		
	//Get values
	var status = document.getElementById("status"+objID).value;
	var points = document.getElementById("points"+objID).value;
	
	//The page we are loading
	var serverPage = "do_take_attendance.php?eid="+event_id+"&uid="+user_id+"&status="+status+"&points="+points;
	
	var obj = document.getElementById(objID);
	xmlhttp.open("GET", serverPage);
	xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				obj.innerHTML = xmlhttp.responseText;
			}
	}
	xmlhttp.send(null);

}