function rGetXmlHttpObject() {
	var xmlHttp = null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


function processSignUpRequest() {
	// alert('in');
	var xmlHttp = rGetXmlHttpObject();
	if (xmlHttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	// CHECK THE TYPE OF REQUEST
	var signup_type = document.getElementById("signup_type").value;
	if (signup_type == "confirm") { // IF CONFIRM, NO QUESTIONS NEEDED.
		return;
	}
	// ---------------------------------------
	// ELSE THE TYPE IS INVITED OR REQUEST,
	// BOTH NEED TO ANSWER QUESTIONS.
	// --------------------------------------
	
	
	
	// CHECK IF THERE'S UNFILLED FIELDS
	var errorMessage = checkRequestFields();
	if (errorMessage != "") {
		alert(errorMessage);
		return;		
	}
	
	
	
	
	var email = document.getElementById("signup_email").value;
	var num_computers = document.getElementById("num_computers").value;
	var age_range = document.getElementById("age_range").value;
	var career = document.getElementById("career").value;
	var primary_usage = document.getElementById("primary_usage").value;
	var computer_literacy = document.getElementById("computer_literacy").value;
	var message = document.getElementById("signup_message").value;

	// CONSTRUCT JSON-ENCODED STRING FOR WEBSERVICES
	var beta_services_0 = document.getElementById("beta_services_0").value;
	var beta_services_1 = document.getElementById("beta_services_1").value;
	var beta_services_2 = document.getElementById("beta_services_2").value;
	var beta_services_3 = document.getElementById("beta_services_3").value;
	var beta_services_4 = document.getElementById("beta_services_4").value;
	var beta_services_5 = document.getElementById("beta_services_5").value;
	var beta_services_6 = document.getElementById("beta_services_6").value;
	var beta_services_7 = document.getElementById("beta_services_7").value;
	var beta_services_8 = document.getElementById("beta_services_8").value;
	var beta_services_9 = document.getElementById("beta_services_9").value;
	var beta_services_10 = document.getElementById("beta_services_10").value;
	var beta_services_11 = document.getElementById("beta_services_11").value;
	var beta_services_12 = document.getElementById("beta_services_12").value;
	var beta_services_13 = document.getElementById("beta_services_13").value;
	var beta_services_14 = document.getElementById("beta_services_14").value;
	var beta_services_15 = document.getElementById("beta_services_15").value;		
	
	var web_services_obj = { // VARIABLE TREATED AS STRINGS. ANY SOLUTION?
		beta_services_0 : document.getElementById("beta_services_0").checked,
		beta_services_1 : document.getElementById("beta_services_1").checked,
		beta_services_2 : document.getElementById("beta_services_2").checked,
		beta_services_3 : document.getElementById("beta_services_3").checked,
		beta_services_4 : document.getElementById("beta_services_4").checked,
		beta_services_5 : document.getElementById("beta_services_5").checked,
		beta_services_6 : document.getElementById("beta_services_6").checked,
		beta_services_7 : document.getElementById("beta_services_7").checked,
		beta_services_8 : document.getElementById("beta_services_8").checked,
		beta_services_9 : document.getElementById("beta_services_9").checked,
		beta_services_10 : document.getElementById("beta_services_10").checked,
		beta_services_11 : document.getElementById("beta_services_11").checked,
		beta_services_12 : document.getElementById("beta_services_12").checked,
		beta_services_13 : document.getElementById("beta_services_13").checked,
		beta_services_14 : document.getElementById("beta_services_14").checked,
		beta_services_15 : document.getElementById("beta_services_15").checked
	};

	var web_services_str = JSON.stringify(web_services_obj);

	var url = "./start/request.php";
	
	
	var params = "signup_type=" + signup_type +
				"&email=" + email +
				"&num_computers=" + num_computers +
				"&age_range=" + age_range +
				"&career=" + career +
				"&primary_usage=" + primary_usage +
				"&computer_literacy=" + computer_literacy +
				"&web_services=" + web_services_str +
				"&message=" + message;
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");

	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4) {
			termSignUpResponse(xmlHttp.responseText);
		}
	}

	xmlHttp.send(params);

}


function checkRequestFields() {
	var errorMessage = "";
	
	var email = document.getElementById("signup_email").value;
	var num_computers = document.getElementById("num_computers").value;
	var age_range = document.getElementById("age_range").value;
	var career = document.getElementById("career").value;
	var primary_usage = document.getElementById("primary_usage").value;
	var computer_literacy = document.getElementById("computer_literacy").value;
	var message = document.getElementById("signup_message").value;
	
	if (email == "") {
		errorMessage += "Please enter a valid email address.\n";
	}
	if (num_computers == -1) {
		errorMessage += "Please select number of computers you are using.\n";
	}
	if (age_range == -1) {
		errorMessage += "Please select an age range.\n";
	}
	if (career == -1) {
		errorMessage += "Please select your career.\n";
	}
	if (primary_usage == -1) {
		errorMessage += "Please select your primary usage.\n";
	}
	if (computer_literacy == -1) {
		errorMessage += "Please select your level of computer literacy.";
	}

	return errorMessage;
}





//checks signup fields
function checkSignupFields() {
	var errorMessage = '';
	
	var signup_full_name = document.getElementById('signup_full_name').value;
	var username = document.getElementById('signup_username').value;
	var signup_password = document.getElementById('signup_password').value;
	var signup_confirm_password = document.getElementById('signup_confirm_password').value;
	
	if(signup_full_name == '') {
		errorMessage += 'Please enter your full name.' + "\n";
	}
	
	if(username == '') {
		errorMessage += 'Please enter a valid username.' + "\n";
	}
	
	if(signup_password == '') {
		errorMessage += 'Please enter your desired password.' + "\n";
	}
	
	if(signup_confirm_password == '') {
		errorMessage += 'Please confirm your password by typing it again.' + "\n";
	}
	
	return errorMessage;
	
}




function termSignUpResponse(responseText) {
	var responseObject = JSON.parse(responseText);
	alert(responseObject.status);
	
	//document.getElementById('signup_form').style.display = "none";
	
	if(responseObject.success == 1 || responseObject.success == '1') {
		$.fn.colorbox.close();
		return true;
	}
	return false;
	
//	if(xmlHttp.responseText) {
//		
//	} else {
//		displayErrorMessage("error_message", xmlHttp.responseText);
//	}
//	
//	var responseObject = JSON.parse(responseText);
//	alert(responseObject.status);
}

function displayErrorMessage(id, message) {
	document.getElementById(id).innerHTML = message;
	$("#" + id).slideDown("fast").delay(2000).fadeOut("fast");
}





// //processes signup on the invited page
// function processSignUpInvited() {
// 	// alert('in');
// 	var xmlHttp = rGetXmlHttpObject();
// 	if (xmlHttp == null) {
// 		alert ("Your browser does not support AJAX!");
// 		return;
// 	}
// 	
// 	// ---------------------------------------
// 	// ELSE THE TYPE IS INVITED OR REQUEST,
// 	// BOTH NEED TO ANSWER QUESTIONS.
// 	// --------------------------------------
// 	
// 	
// 	
// 	// CHECK IF THERE'S UNFILLED FIELDS
// 	var errorMessageSignup = checkSignupFields();
// 	var errorMessageInfo += checkRequestFields();
// 	if (errorMessageSignup != "" || errorMessageInfo != "") {
// 		var errorMessage = errorMessageSignup + "\n" . errorMessageInfo;
// 		alert(errorMessage);
// 		return;
// 	}
// 	
// 	
// 	
// 	var signup_full_name = document.getElementById('signup_full_name').value;
// 	var username = document.getElementById('signup_username').value;
// 	var signup_password = document.getElementById('signup_password').value;
// 	var signup_confirm_password = document.getElementById('signup_confirm_password').value;
// 	
// 	var email = document.getElementById("signup_email").value;
// 	var num_computers = document.getElementById("num_computers").value;
// 	var age_range = document.getElementById("age_range").value;
// 	var career = document.getElementById("career").value;
// 	var primary_usage = document.getElementById("primary_usage").value;
// 	var computer_literacy = document.getElementById("computer_literacy").value;
// 	var message = document.getElementById("signup_message").value;
// 	
// 	
// 	//get the sender id
// 	var sender_id = document.getElementById('sender_id').value
// 	
// 
// 	// CONSTRUCT JSON-ENCODED STRING FOR WEBSERVICES
// 	var beta_services_0 = document.getElementById("beta_services_0").value;
// 	var beta_services_1 = document.getElementById("beta_services_1").value;
// 	var beta_services_2 = document.getElementById("beta_services_2").value;
// 	var beta_services_3 = document.getElementById("beta_services_3").value;
// 	var beta_services_4 = document.getElementById("beta_services_4").value;
// 	var beta_services_5 = document.getElementById("beta_services_5").value;
// 	var beta_services_6 = document.getElementById("beta_services_6").value;
// 	var beta_services_7 = document.getElementById("beta_services_7").value;
// 	var beta_services_8 = document.getElementById("beta_services_8").value;
// 	var beta_services_9 = document.getElementById("beta_services_9").value;
// 	var beta_services_10 = document.getElementById("beta_services_10").value;
// 	var beta_services_11 = document.getElementById("beta_services_11").value;
// 	var beta_services_12 = document.getElementById("beta_services_12").value;
// 	var beta_services_13 = document.getElementById("beta_services_13").value;
// 	var beta_services_14 = document.getElementById("beta_services_14").value;
// 	var beta_services_15 = document.getElementById("beta_services_15").value;		
// 	
// 	var web_services_obj = { // VARIABLE TREATED AS STRINGS. ANY SOLUTION?
// 		beta_services_0 : document.getElementById("beta_services_0").checked,
// 		beta_services_1 : document.getElementById("beta_services_1").checked,
// 		beta_services_2 : document.getElementById("beta_services_2").checked,
// 		beta_services_3 : document.getElementById("beta_services_3").checked,
// 		beta_services_4 : document.getElementById("beta_services_4").checked,
// 		beta_services_5 : document.getElementById("beta_services_5").checked,
// 		beta_services_6 : document.getElementById("beta_services_6").checked,
// 		beta_services_7 : document.getElementById("beta_services_7").checked,
// 		beta_services_8 : document.getElementById("beta_services_8").checked,
// 		beta_services_9 : document.getElementById("beta_services_9").checked,
// 		beta_services_10 : document.getElementById("beta_services_10").checked,
// 		beta_services_11 : document.getElementById("beta_services_11").checked,
// 		beta_services_12 : document.getElementById("beta_services_12").checked,
// 		beta_services_13 : document.getElementById("beta_services_13").checked,
// 		beta_services_14 : document.getElementById("beta_services_14").checked,
// 		beta_services_15 : document.getElementById("beta_services_15").checked
// 	};
// 
// 	var web_services_str = JSON.stringify(web_services_obj);
// 
// 	var url = "./start/start_process.php";
// 	
// 	
// 	var params = "ajax=1&signup_invited=1" +
// 				"&signup_full_name=" + signup_full_name +
// 				"&username=" + username +
// 				"&signup_password=" + signup_password +
// 				"&email=" + email +
// 				"&num_computers=" + num_computers +
// 				"&age_range=" + age_range +
// 				"&career=" + career +
// 				"&primary_usage=" + primary_usage +
// 				"&computer_literacy=" + computer_literacy +
// 				"&web_services=" + web_services_str +
// 				"&message=" + message +
// 				"&sender_id=" + sender_id;
// 	xmlHttp.open("POST", url, true);
// 	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// 	xmlHttp.setRequestHeader("Content-length", params.length);
// 	xmlHttp.setRequestHeader("Connection", "close");
// 
// 	xmlHttp.onreadystatechange = function() {
// 		if(xmlHttp.readyState == 4) {
// 			var result = termSignUpResponse(xmlHttp.responseText);
// 			if(result) {
// 				window.location = 'os_index/k_os/index.php';
// 			}
// 		}
// 	}
// 
// 	xmlHttp.send(params);
// 
// }






























// FUNCTIONS ADDED ON

function processInvited() {
	var xmlHttp = rGetXmlHttpObject();
	if (xmlHttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	
	// CHECK IF THERE'S UNFILLED FIELDS
	var errorMessage = checkInvitedFields();
//	alert("in");
	if (errorMessage != "") {
		alert(errorMessage);
		return;		
	}
	
//	alert("in1");
	var signup_full_name = document.getElementById("signup_full_name").value;
	var username = document.getElementById("signup_username").value;
	var password = document.getElementById("signup_password").value;
	var confirm_password = document.getElementById("signup_confirm_password").value;	
	var email = document.getElementById("signup_email").value;
//	alert("in2");
	var num_computers = document.getElementById("num_computers").value;
	var age_range = document.getElementById("age_range").value;
	var career = document.getElementById("career").value;
	var primary_usage = document.getElementById("primary_usage").value;
	var computer_literacy = document.getElementById("computer_literacy").value;
	var message = document.getElementById("signup_message").value;
	var ih = document.getElementById("ih").value;
	var sender_id = document.getElementById("sender_id").value;

	// CONSTRUCT JSON-ENCODED STRING FOR WEBSERVICES
	var beta_services_0 = document.getElementById("beta_services_0").value;
	var beta_services_1 = document.getElementById("beta_services_1").value;
	var beta_services_2 = document.getElementById("beta_services_2").value;
	var beta_services_3 = document.getElementById("beta_services_3").value;
	var beta_services_4 = document.getElementById("beta_services_4").value;
	var beta_services_5 = document.getElementById("beta_services_5").value;
	var beta_services_6 = document.getElementById("beta_services_6").value;
	var beta_services_7 = document.getElementById("beta_services_7").value;
	var beta_services_8 = document.getElementById("beta_services_8").value;
	var beta_services_9 = document.getElementById("beta_services_9").value;
	var beta_services_10 = document.getElementById("beta_services_10").value;
	var beta_services_11 = document.getElementById("beta_services_11").value;
	var beta_services_12 = document.getElementById("beta_services_12").value;
	var beta_services_13 = document.getElementById("beta_services_13").value;
	var beta_services_14 = document.getElementById("beta_services_14").value;
	var beta_services_15 = document.getElementById("beta_services_15").value;		
	
	var web_services_obj = { // VARIABLE TREATED AS STRINGS. ANY SOLUTION?
		beta_services_0 : document.getElementById("beta_services_0").checked,
		beta_services_1 : document.getElementById("beta_services_1").checked,
		beta_services_2 : document.getElementById("beta_services_2").checked,
		beta_services_3 : document.getElementById("beta_services_3").checked,
		beta_services_4 : document.getElementById("beta_services_4").checked,
		beta_services_5 : document.getElementById("beta_services_5").checked,
		beta_services_6 : document.getElementById("beta_services_6").checked,
		beta_services_7 : document.getElementById("beta_services_7").checked,
		beta_services_8 : document.getElementById("beta_services_8").checked,
		beta_services_9 : document.getElementById("beta_services_9").checked,
		beta_services_10 : document.getElementById("beta_services_10").checked,
		beta_services_11 : document.getElementById("beta_services_11").checked,
		beta_services_12 : document.getElementById("beta_services_12").checked,
		beta_services_13 : document.getElementById("beta_services_13").checked,
		beta_services_14 : document.getElementById("beta_services_14").checked,
		beta_services_15 : document.getElementById("beta_services_15").checked
	};

	var web_services_str = JSON.stringify(web_services_obj);
	var url = "start/start_process.php";
	
	var params = "process_invited=1" +
				"&full_name=" + signup_full_name +
				"&username=" + username +
				"&password=" + password +
				"&email=" + email +
				"&num_computers=" + num_computers +
				"&age_range=" + age_range +
				"&career=" + career +
				"&primary_usage=" + primary_usage +
				"&computer_literacy=" + computer_literacy +
				"&web_services=" + web_services_str +
				"&message=" + message +
				"&ih=" + ih +
				"&sender_id=" + sender_id +
				"&ajax=1";
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");

	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4) {
			termInvitedResponse(xmlHttp.responseText);
		}
	}

	xmlHttp.send(params);

}


function checkInvitedFields() {

	var errorMessage = "";
	var signup_full_name = document.getElementById("signup_full_name").value;
	var email = document.getElementById("signup_email").value;
	var username = document.getElementById("signup_username").value;
	var password = document.getElementById("signup_password").value;
	var confirm_password = document.getElementById("signup_confirm_password").value;

	var num_computers = document.getElementById("num_computers").value;
	var age_range = document.getElementById("age_range").value;
	var career = document.getElementById("career").value;
	var primary_usage = document.getElementById("primary_usage").value;
	var computer_literacy = document.getElementById("computer_literacy").value;
	var message = document.getElementById("signup_message").value;
	
	var sender_id = document.getElementById("sender_id").value;
	
	if (signup_full_name == "") {
		errorMessage += "Please enter your full name.\n";
	}
	if (username == "") {
		errorMessage += "Please enter a username.\n";
	}
	if (username.length < 6) {
		errorMessage += "Please enter a username that's at least 6 characters long.\n";
	}
	if (password != confirm_password) {
		errorMessage += "Please confirm your password.\n";
	}
	if (email == "") {
		errorMessage += "Please enter a valid email address.\n";
	}
	if (num_computers == -1) {
		errorMessage += "Please select number of computers you are using.\n";
	}
	if (age_range == -1) {
		errorMessage += "Please select an age range.\n";
	}
	if (career == -1) {
		errorMessage += "Please select your career.\n";
	}
	if (primary_usage == -1) {
		errorMessage += "Please select your primary usage.\n";
	}
	if (computer_literacy == -1) {
		errorMessage += "Please select your level of computer literacy.";
	}
	
	return errorMessage;
}




function processConfirm() {
//	alert('in');
	var xmlHttp = rGetXmlHttpObject();
	if (xmlHttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	
	// CHECK IF THERE'S UNFILLED FIELDS
	var errorMessage = checkConfirmFields();
	if (errorMessage != "") {
		alert(errorMessage);
		return;		
	}
	
	var signup_full_name = document.getElementById("signup_full_name").value;
	var email = document.getElementById("signup_email").value;
	var username = document.getElementById("signup_username").value;
	var password = document.getElementById("signup_password").value;
	var confirm_password = document.getElementById("signup_confirm_password").value;
	var lh = document.getElementById("lh").value;
	var request_id = document.getElementById("request_id").value;
	
//	alert(lh);
	var url = "start/start_process.php";
	
	var params = "process_confirm=1" +
				"&full_name=" + signup_full_name +
				"&password=" + password +
				"&email=" + email +
				"&username=" + username +
				"&lh=" + lh +
				"&request_id=" + request_id +
				"&ajax=1";
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");

	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4) {
			termConfirmResponse(xmlHttp.responseText);
		}
	}

	xmlHttp.send(params);

}


function checkConfirmFields() {
//	alert("in2");
	var errorMessage = "";
	
	var signup_full_name = document.getElementById("signup_full_name").value;	
	var password = document.getElementById("signup_password").value;
	var confirm_password = document.getElementById("signup_confirm_password").value;
	var email = document.getElementById("signup_email").value;
	var username = document.getElementById("signup_username").value;
	var request_id = document.getElementById("request_id").value;
	var lh = document.getElementById("lh").value;
	
	if (lh == "") {
		errorMessage += "Invalid request code.\n";
	}
	if (signup_full_name == "") {
		errorMessage += "Please enter your name.\n";
	}
	if (password == "" || confirm_password == "") {
		errorMessage += "Please enter a password.\n";
	}
	if (password != confirm_password) {
		errorMessage += "Please confirm your password.\n";
	}
	if (email == "") {
		errorMessage += "Please enter a valid email address.\n";
	}
	if (username == "") {
		errorMessage += "Please enter a username.\n";
	}
	
	return errorMessage;
}














function termInvitedResponse(responseText) {
	if (responseText == "success") {
		alert("Wellcome to Kollaborator!");
		window.location = './os_index/k_os/index.php';
	} else {
		alert(responseText);
	}
}


function termConfirmResponse(responseText) {
	if (responseText == "success") {
		alert("Wellcome to Kollaborator!");
		window.location = './os_index/k_os/index.php';
	} else {
		alert(responseText);
	}
}
















