/*********/
/* ADMIN */
/*********/

function adminSearchUsers(email) {
	
	//var input = $('adminEmailSearch').getValue();
	var input = email;
	
	var emailRegex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if(!input.match(emailRegex))
		return false;
	
	var ajax = new Ajax.Request('/ajax/adminSearchUsers.php',
		{
			method: 'get',
			parameters: {
				email: input
			},
			onSuccess: function(transport) {
				var response = transport.responseText || "no response";
				
				if(response != '0') {
					var resp = eval('(' + response + ')');
				
					//update status
					$('lookupNotFound').hide();
					$('adminResetPassword').show();
					$('adminResetPasswordEmail').setValue(input);
				
					$('lookupInstruments').hide();
					$('lookupBilling').hide();
					$('lookupPersonal').hide();
					//display forms
					switch(resp.retvalType) {
						case 2: $('lookupInstruments').show();
						case 1: $('lookupBilling').show();
						case 0: $('lookupPersonal').show();
						$('lookupEditor').show();
						break;
					}
				
					//shitty hack... fill JSON code
					adminSearchFillAll(resp);
				} else
					adminSearchClearAll();
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);
	
}

function adminSearchManagers() {
	
	var input = $('adminEmailSearch').getValue();
	
	var emailRegex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if(!input.match(emailRegex))
		return false;
	
	var ajax = new Ajax.Request('/ajax/adminSearchUsers.php',
		{
			method: 'get',
			parameters: {
				email: input
			},
			onSuccess: function(transport) {
				var response = transport.responseText || "no response";
				
				if(response != '0') {
					var resp = eval('(' + response + ')');
				
					//update status
					$('lookupNotFound').hide();
					$('lookupManagerDiv').show();
					
					document.getElementById('lookupID').value = resp.ID;
					if(resp.accountType == 3) document.getElementById('lookupManagerCheck').checked = true;
					else document.getElementById('lookupManagerCheck').checked = false;
					
				} else {
					if($('adminEmailSearch').value != '')
						$('lookupNotFound').show();
					else
						$('lookupNotFound').hide();
					document.getElementById('lookupID').value = '';
					$('lookupManagerDiv').hide();
				}
					
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);
	
}

function adminSearchClearAll() {
	if($('adminEmailSearch').getValue())
		$('lookupNotFound').show();
	else
		$('lookupNotFound').hide();
	$('adminResetPassword').hide();
	$('lookupPersonal').hide();
	$('lookupBilling').hide();
	$('lookupInstruments').hide();
	$('lookupEditor').hide();
	document.getElementById('adminResetPasswordEmail').value = '';
	document.getElementById('lookupID').value = '';
	document.getElementById('lookupEmail').value = '';
	document.getElementById('lookupAccountType').value = '';
	document.getElementById('lookupFirst').value = '';
	document.getElementById('lookupLast').value = '';
	document.getElementById('lookupPhone').value = '';
	document.getElementById('lookupAffiliation').value = '';
	document.getElementById('lookupDepartment').value = '';
	document.getElementById('lookupAdvisor').value = '';
	document.getElementById('lookupCompOrg').value = '';
	document.getElementById('lookupBuffOne').value = '';
	document.getElementById('lookupJoined').value = '';
	document.getElementById('lookupComments').value = '';
	document.getElementById('lookupBillingFirst').value = '';
	document.getElementById('lookupBillingLast').value = '';
	document.getElementById('lookupBillingEmail').value = '';
	document.getElementById('lookupBillingAddress').value = '';
	document.getElementById('lookupBillingCity').value = '';
	document.getElementById('lookupBillingState').value = '';
	document.getElementById('lookupBillingZip').value = '';
	document.getElementById('lookupBillingSpeedtype').value = '';
	document.getElementById('lookupBillingPhone').value = '';
	document.getElementById('lookupLVSEM').checked = false;
	document.getElementById('lookupFESEM').checked = false;
	document.getElementById('lookupFIB').checked = false;
	document.getElementById('lookupAFM').checked = false;
	document.getElementById('lookupCLSM').checked = false;
	document.getElementById('lookupIndenters').checked = false;
	document.getElementById('lookupEditorCheck').checked = false;
	document.getElementById('lookupNewseditorCheck').checked = false;
}

function adminSearchFillAll(resp) {
	document.getElementById('lookupID').value = resp.ID;
	document.getElementById('lookupEmail').value = resp.email;
	if(resp.accountType == 0) { 
		document.getElementById('lookupAccountType').value = 'Community';
		document.getElementById('adminSavePromote').style.display = "block";
	}
	else if( resp.accountType == 2 ) document.getElementById('lookupAccountType').value = 'Editor';
	else if( resp.accountType == 3 ) document.getElementById('lookupAccountType').value = 'Manager';
	else document.getElementById('lookupAccountType').value = 'Facility';
	document.getElementById('lookupFirst').value = resp.first;
	document.getElementById('lookupLast').value = resp.last;
	document.getElementById('lookupPhone').value = resp.phone;
	document.getElementById('lookupAffiliation').value = resp.affiliation;
	document.getElementById('lookupDepartment').value = resp.department;
	document.getElementById('lookupAdvisor').value = resp.advisor;
	document.getElementById('lookupCompOrg').value = resp.comporg;
	document.getElementById('lookupBuffOne').value = resp.buffone;
	document.getElementById('lookupJoined').value = resp.joindate;
	document.getElementById('lookupComments').value = resp.comments;
	document.getElementById('lookupBillingFirst').value = resp.bfirst;
	document.getElementById('lookupBillingLast').value = resp.blast;
	document.getElementById('lookupBillingEmail').value = resp.bemail;
	document.getElementById('lookupBillingAddress').value = resp.baddr;
	document.getElementById('lookupBillingCity').value = resp.bcity;
	document.getElementById('lookupBillingState').value = resp.bstate;
	document.getElementById('lookupBillingZip').value = resp.bzip;
	document.getElementById('lookupBillingSpeedtype').value = resp.bspeedtype;
	document.getElementById('lookupBillingPhone').value = resp.bphone;
	if(resp.lvsem == 1) document.getElementById('lookupLVSEM').checked = true;
	else document.getElementById('lookupLVSEM').checked = false;
	if(resp.fesem == 1) document.getElementById('lookupFESEM').checked = true;
	else document.getElementById('lookupFESEM').checked = false;
	if(resp.fib == 1) document.getElementById('lookupFIB').checked = true;
	else document.getElementById('lookupFIB').checked = false;
	if(resp.afm == 1) document.getElementById('lookupAFM').checked = true;
	else document.getElementById('lookupAFM').checked = false;
	if(resp.clsm == 1) document.getElementById('lookupCLSM').checked = true;
	else document.getElementById('lookupCLSM').checked = false;
	if(resp.psem == 1) document.getElementById('lookupPSEM').checked = true;
	else document.getElementById('lookupPSEM').checked = false;
	if(resp.indenters == 1) document.getElementById('lookupIndenters').checked = true;
	else document.getElementById('lookupIndenters').checked = false;
	if(resp.accountType == 2) document.getElementById('lookupEditorCheck').checked = true;
	else document.getElementById('lookupEditorCheck').checked = false;
	if(resp.accountType == 4) document.getElementById('lookupNewseditorCheck').checked = true;
	else document.getElementById('lookupNewseditorCheck').checked = false;
	if(resp.accountType == 3) {
		document.getElementById('lookupEditorCheck').disabled = true;
		document.getElementById('lookupNewseditorCheck').disabled = true;
		document.getElementById('adminSaveEditor').disabled = true;
		document.getElementById('adminSaveEditor').value = 'disabled';
	}
	else {
		document.getElementById('lookupEditorCheck').disabled = false;
		document.getElementById('lookupNewseditorCheck').disabled = false;
		document.getElementById('adminSaveEditor').disabled = false;
	}
}

/************
Admin Save
************/

function adminSavePersonal() {
	var data = {
		"writeType": 'personal',
		"id": $('lookupID').getValue(),
		"email": $('lookupEmail').getValue(),
		"first": $('lookupFirst').getValue(),
		"last": $('lookupLast').getValue(),
		"phone": $('lookupPhone').getValue(),
		"affiliation": $('lookupAffiliation').getValue(),
		"department": $('lookupDepartment').getValue(),
		"advisor": $('lookupAdvisor').getValue(),
		"comporg": $('lookupCompOrg').getValue(),
		"buffone": $('lookupBuffOne').getValue(),
		"comments": $('lookupComments').getValue()
	};

	adminSaveSendJSON(data);
}

function adminSaveBilling() {
	var data = {
		"writeType": 'billing',
		"id": $('lookupID').getValue(),
		"first": $('lookupBillingFirst').getValue(),
		"last": $('lookupBillingLast').getValue(),
		"email": $('lookupBillingEmail').getValue(),
		"address": $('lookupBillingAddress').getValue(),
		"city": $('lookupBillingCity').getValue(),
		"state": $('lookupBillingState').getValue(),
		"zip": $('lookupBillingZip').getValue(),
		"speedtype": $('lookupBillingSpeedtype').getValue(),
		"phone": $('lookupBillingPhone').getValue()
	};

	adminSaveSendJSON(data);
}

function adminSaveInstruments() {
	var data = {
		"writeType": 'instruments',
		"id": $('lookupID').getValue(),
		"lvsem": document.getElementById('lookupLVSEM').checked,
		"fesem": document.getElementById('lookupFESEM').checked,
		"fib": document.getElementById('lookupFIB').checked,
		"afm": document.getElementById('lookupAFM').checked,
		"clsm": document.getElementById('lookupCLSM').checked,
		"psem": document.getElementById('lookupPSEM').checked,
		"indenters": document.getElementById('lookupIndenters').checked
	};

	adminSaveSendJSON(data);
}

function adminSaveEditor() {
	var data = {
		"writeType": 'editor',
		"id": $('lookupID').getValue(),
		"editor": document.getElementById('lookupEditorCheck').checked,
		"newseditor": document.getElementById('lookupNewseditorCheck').checked
	};

	adminSaveSendJSON(data);
}

function adminSaveManager() {
	var data = {
		"writeType": 'manager',
		"id": $('lookupID').getValue(),
		"manager": document.getElementById('lookupManagerCheck').checked
	};

	adminSaveSendJSON(data);
}

function adminSavePromote() {
	if( confirm("Are you sure you want to make this user a facility user?") ) {
		var data = {
			"writeType": 'promote',
			"id": $('lookupID').getValue()
		};
	
		adminSaveSendJSON(data);
	}
}

function adminSaveDemote() {
	if( confirm("Are you sure you want to make this user a community user?") ) {
		var data = {
			"writeType": 'demote',
			"id": $('lookupID').getValue()
		};
	
		adminSaveSendJSON(data);
	}
}

function adminSaveDelete() {
	if( confirm("Are you sure you want to delete this user?") ) {
		var data = {
			"writeType": 'delete',
			"id": $('lookupID').getValue()
		};
	
		adminSaveSendJSON(data);
	}
}

function adminSaveSendJSON(data) {
	var ajax = new Ajax.Request('/ajax/adminSearchWrite.php',
		{
			method: 'post',
			parameters: { data: JSON.stringify(data) },
			onSuccess: function(transport) {
				switch (transport.responseText) {
					case '0': alert('Sorry! Changes could not be made at this time.  Please try again later.'); break;
					case '1': alert('Save successful!'); break;
				}
			},
			onFailure: function() {
				alert("Sorry the server is temporarily down... Please try again later!");
			}
		}
	);
}

function adminApproveArticle(artid,img) {
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/adminApproveArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById(artid);
					d.style.color = "#009900";
					d.innerHTML = "Approved";
					
					img.src = "images/admin/unapprove.gif";
				}
				else {
					switch(response) {
						case '1': alert("ID must be supplied as param to approve article.");
						case '2': alert("The article being approved does not exist.");
						case '3': alert("The article is not published yet.");
						break;
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminUnapproveArticle(artid,img) {
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/adminUnapproveArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById(artid);
					d.style.color = "#FF0000";
					d.innerHTML = "Awaiting Approval";
					
					img.src = "images/admin/approve.gif";
				}
				else {
					switch(response) {
						case '1': alert("ID must be supplied as param to approve article.");
						case '2': alert("The article being unapproved does not exist.");
						case '3': alert("The article is not already approved.");
						break;
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminGetTTNews(limit,offset) {
	if( typeof(limit) == "undefined" ) limitnum = 5;
	else limitnum = limit;
	if( typeof(offset) == "undefined" ) offsetnum = 0;
	else offsetnum = offset;
	layer = "tinytechcontent";
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/adminGetTTNews.php',
		{
			method: 'get',
			parameters: {
				limit: limitnum,
				offset: offsetnum
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				div = document.getElementById(layer);
				div.innerHTML = response;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

/**************
	EDITOR
**************/

function editorPublishArticle(artid,img) {
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/editorPublishArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById("editor"+artid);
					d.style.color = "#FF0000";
					d.innerHTML = "Awaiting Approval";
					
					img.src = "images/admin/unpublish.gif";
				}
				else {
					switch(response) {
						case '1': alert("ID must be supplied as param to publish article.");
						case '2': alert("The article being published does not exist.");
						case '3': alert("The article is already published.");
						break;
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function editorUnpublishArticle(artid,img) {
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/editorUnpublishArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById("editor"+artid);
					d.style.color = "#FFCC00";
					d.innerHTML = "In Progress";
					
					img.src = "images/admin/publish.gif";
				}
				else {
					switch(response) {
						case '1': alert("ID must be supplied as param to publish article.");
						case '2': alert("The article being published does not exist.");
						case '3': alert("The article is not already published.");
						break;
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminDeleteArticle(artid,img,tr) {
	
	var con = confirm("Are you sure you want to delete this article?");
	if(!con) return;
	
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/adminDeleteArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById(artid);
					d.style.color = "#FF0000";
					d.innerHTML = "Deleted";
					
					img.src = "images/admin/delete.gif";
					img.onclick = "alert('Already Deleted!')";
				}
				else {
					switch(response) {
						case '1': alert("ID must be supplied as param to publish article.");
						case '2': alert("The article being published does not exist.");
						case '3': alert("The article could not be deleted.");
						break;
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function editorDeleteArticle(artid,img,tr) {
	
	var con = confirm("Are you sure you want to delete this article?");
	if(!con) return;
	
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/editorDeleteArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById("editor"+artid);
					d.style.color = "#FF0000";
					d.innerHTML = "Deleted";
					
					img.src = "images/admin/delete.gif";
					img.onclick = "alert('Already Deleted!')";
				}
				else {
					switch(response) {
						case '1': alert("ID must be supplied as param to publish article.");
						case '2': alert("The article being published does not exist.");
						case '3': alert("The article could not be deleted.");
						case '4': alert("This article is approved and can not be deleted.");
						case '5': alert("You are not the editor of this article.");
						break;
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function editorCreateArticle() {
	
	var ajax = new Ajax.Request('/ajax/editorCreateArticle.php',
		{
			method: 'get',
			parameters: {},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '1' ) {
					alert("ID must be supplied as param to publish article.");
				}
				else if( response == '2' ) {
					alert("The article being edited does not exist.");
				}
				else if( response == '3' ) {
					alert("The article is already approved.");
				}
				else {
					var pane = document.getElementById("editorPane");
					pane.innerHTML = response;
					pane.style.display = "block";
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function editorEditArticle(artid) {
	
	var img = document.getElementById("unpublishimg"+artid);
	
	if( img ) {
		editorUnpublishArticle(artid,img);
	}
	
	var ajax = new Ajax.Request('/ajax/editorEditArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '1' ) {
					alert("ID must be supplied as param to publish article.");
				}
				else if( response == '2' ) {
					alert("The article being edited does not exist.");
				}
				else if( response == '3' ) {
					alert("The article is already approved.");
				}
				else {
					var d = document.getElementById("editor"+artid);
					d.style.color = "#FFCC00";
					d.innerHTML = "In Progress";
					var pane = document.getElementById("editorPane");
					pane.innerHTML = response;
					pane.style.display = "block";
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function editorSaveArticle(img) {
	img.src = "images/admin/processing.gif";
	
	document.getElementById("articleForm").submit();
				
	img.src = "images/admin/saved.gif";
}

function shareArticle(form) {
	
	var artid;
	var toemail;
	var tomessagge;
	var msgflag = 0;
	with(form) {
		if( email.value == null || email.value == "" ) { alert("You must fill in the email."); return; }
		toemail = email.value;
		tomessage = message.value;
		artid = articleID.value;
	}
	
	if( tomessage != null && tomessage != "" ) { msgflag = 1; }
	
	var ajax = new Ajax.Request('/ajax/shareArticle.php',
		{
			method: 'get',
			parameters: {
				id: artid,
				email: toemail,
				message: tomessage,
				msgflag: msgflag
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '1' ) {
					alert("Sharing is not working right now.");
				}
				else {
					var div1 = document.getElementById("sharecontent"+artid);
					div1.innerHTML = '<div style="color:green;">Email sent! Share again?</div>' + div1.innerHTML;
					with(form) {
						email.value = "";
						message.value = "";
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminCreatePost(form) {
	
	var posttitle;
	var postcontent;
	var postcontentsmall;
	with(form) {
		if( title.value == null || title.value == "" ) { alert("You must fill in the title."); return; }
		if( content.value == null || content.value == "" ) { alert("You must fill in the content."); return; }
		posttitle = title.value;
		postcontent = content.value;
		postcontentsmall = contentsmall.value;
	}
	
	var ajax = new Ajax.Request('/ajax/adminCreatePost.php',
		{
			method: 'get',
			parameters: {
				title: posttitle,
				content: postcontent,
				contentsmall: postcontentsmall
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var div1 = document.getElementById("adminCreatePost");
					div1.innerHTML = '<div style="color:green;">Facility news has been posted!</div>';
					setTimeout("toggleDiv('adminCreatePost');",2000);
				}
				else {
					alert("You can not create a post.");
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminCreateTraining(form) {
	var ttitle;
	var month;
	var day;
	var year;
	var start;
	var end;
	var desc;
	var inst;
	var slots;
	var trainer;
	
	with(form) {
		if( trainTitle.value == null || trainTitle.value == "" ) { alert("You must fill in the title."); return; }
		if( trainId.value == null || trainId.value == "" ) { alert("You must select a trainer."); return; }
		ttitle = trainTitle.value;
		month = trainMonth.value;
		day = trainDay.value;
		year = trainYear.value;
		start = trainStart.value;
		end = trainEnd.value;
		desc = trainDesc.value;
		inst = trainInst.value;
		slots = trainSlots.value;
		trainer = trainId.value;
	}
	
	var ajax = new Ajax.Request('/ajax/adminCreateTraining.php',
		{
			method: 'get',
			parameters: {
				ttitle: ttitle,
				month: month,
				day: day,
				year: year,
				start: start,
				end: end,
				desc: desc,
				inst: inst,
				slots: slots,
				trainer: trainer
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var div1 = document.getElementById("adminCreateTraining");
					div1.innerHTML = '<div style="color:green;">A training session has been posted!</div>';
					setTimeout("toggleDiv('adminCreateTraining');",5000);
				}
				else {
					alert("You can not create a post." + response);
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}


function adminDeletePost(postid,img) {
	
	var con = confirm("Are you sure you want to delete this post?");
	if(!con) return;
	
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/adminDeletePost.php',
		{
			method: 'get',
			parameters: {
				id: postid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById("fac"+postid);
					d.style.color = "#FF0000";
					d.innerHTML = "Deleted";
					
					img.src = "images/admin/delete.gif";
				}
				else {
					alert("This post does not exist.");
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminDeleteNL(postid,img) {
	
	var con = confirm("Are you sure you want to delete this newsletter?");
	if(!con) return;
	
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/adminDeleteNL.php',
		{
			method: 'get',
			parameters: {
				id: postid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById("nl"+postid);
					d.style.color = "#FF0000";
					d.innerHTML = "Deleted";
					
					img.src = "images/admin/delete.gif";
				}
				else {
					alert("This newsletter does not exist.");
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function userUpdateProfile(form) {
	
	var postprofile;
	with(form) {
		postprofile = profile.value;
	}
	
	var ajax = new Ajax.Request('/ajax/userUpdateProfile.php',
		{
			method: 'get',
			parameters: {
				profile: postprofile
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var div1 = document.getElementById("userProfileDiv");
					div1.innerHTML = '<div style="color:green;">Your profile has been updated!</div>';
					showDiv('userProfileDiv');
				}
				else {
					alert("You can not update your profile.");
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function userDeleteComment(id) {
	
	var con = confirm("Are you sure you want to delete this comment?");
	if(!con) return;
	
	var ajax = new Ajax.Request('/ajax/userDeleteComment.php',
		{
			method: 'get',
			parameters: {
				id: id
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					var d = document.getElementById("comment"+id);
					d.style.color = "#FF0000";
					d.innerHTML = "Deleted";
				}
				else {
					if( response == '1' ) alert("Comment ID not set.");
					else if( response == '2' ) alert("You are not the poster of this comment.");
					else if( response == '3' ) alert("The comment could not be deleted.");
					else alert(response);
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminGetInstAccess(divid) {

	var div = document.getElementById(divid);
	div.style.color = "#FF0000";
	div.innerHTML = "Loading...";
	toggleDiv(divid);
	
	var ajax = new Ajax.Request('/ajax/adminGetInstAccess.php',
		{
			method: 'get',
			parameters: {},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				div.style.color = "";
				div.innerHTML = response;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminEmailUsers(form) {
	
	var eto;
	var esubject;
	var emessage;
	with(form) {
		if( subject.value == null || subject.value == "" || message.value == null || message.value == "" ) { 
			alert("You must fill in the subject and message."); return;
		}
		eto = to.value;
		esubject = subject.value;
		emessage = message.value;
	}
	
	var ajax = new Ajax.Request('/ajax/adminEmailUsers.php',
		{
			method: 'get',
			parameters: {
				to: eto,
				subject: esubject,
				message: emessage
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '1' ) {
					alert("Email users is not working right now.");
				}
				else {
					var div1 = document.getElementById("emailusersresp");
					div1.innerHTML = '<div style="color:green;">Emails sent!</div>';
					with(form) {
						subject.value = "";
						message.value = "";
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminMonthlyReport(email) {
	if( email ) {
		document.getElementById('monthlyreportuser').value = email;
	}
	
	document.getElementById('monthlyReportCheck').style.display = "inline";
	
	userMonthlyReport();
}

function userMonthlyReport() {
	
	var year = document.getElementById("monthlyreportyear").value;
	var month = document.getElementById("monthlyreportmonth").value;
	var instrument = document.getElementById("monthlyreportinstrument").value;
	var user = document.getElementById('monthlyreportuser').value;
	if(year == "-" || month == "-" || instrument == "-") return;
	
	document.getElementById("monthlyreportresp").innerHTML = '<div style="height: 150px;"><img src="images/ajaxLoading.gif" border="0" /></div>';;
	
	var ajax = new Ajax.Request('/ajax/userMonthlyReport.php',
		{
			method: 'get',
			parameters: {
				y: year,
				m: month,
				i: instrument,
				u: user
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '1' ) {
					alert("Monthly report is not working right now.");
				}
				else {
					var div1 = document.getElementById("monthlyreportresp");
					div1.innerHTML = response;
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminAddCommUser(form) {
	
	var gemail, gfirst, glast, gphone, gaffiliation, gdepartment, gadvisor, gcomporg, gbuffone;
	with(form) {
		if( email.value == null || email.value == "" ) { 
			alert("You must fill in the email."); return;
		}
		gemail = email.value;
		gfirst = first.value;
		glast = last.value;
		gphone = phone.value;
		gaffiliation = affiliation.value;
		gdepartment = department.value;
		gadvisor = advisor.value;
		gcomporg = comporg.value;
		gbuffone = buffone.value;
	}
	
	var ajax = new Ajax.Request('/ajax/adminAddCommUser.php',
		{
			method: 'get',
			parameters: {
				email: gemail,
				first: gfirst,
				last: glast,
				phone: gphone,
				affiliation: gaffiliation,
				department: gdepartment,
				advisor: gadvisor,
				comporg: gcomporg,
				buffone: gbuffone
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '1' ) {
					alert("Email users is not working right now.");
				}
				else if( response == '2' ) {
					alert("You entered an invalid email address.");
				}
				else if( response == '3' ) {
					alert("An account already exists with this email.");
				}
				else {
					var div1 = document.getElementById("addcommuserresp");
					div1.innerHTML = '<div style="color:green;">User added and email sent!</div>';
					with(form) {
						email.value = "";
						first.value = "";
						last.value = "";
						phone.value = "";
						affiliation.value = "";
						department.value = "";
						advisor.value = "";
						comporg.value = "";
						buffone.value = "";
					}
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function userRatePhoto(id,rating) {
	
	var ajax = new Ajax.Request('/ajax/userRatePhoto.php',
		{
			method: 'get',
			parameters: {
				photoid: id,
				vote: rating
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				overallRating = document.getElementById('overallRating'+id);
				userRating = document.getElementById('userRating'+id);
				
				overallRating.innerHTML = response;
				userRating.innerHTML = rating;
				
				fillOverallDivWithStars('overallStars'+id,response);
				fillUserDivWithStars('userStars'+id,rating,id);				
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function photoRandom6Month(layer) {
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/photoRandom6Month.php',
		{
			method: 'get',
			parameters: {},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				div = document.getElementById(layer);
				div.innerHTML = response;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function photoTop5Month(layer) {
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/photoTop5Month.php',
		{
			method: 'get',
			parameters: {},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				div = document.getElementById(layer);
				div.innerHTML = response;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function photoTop5MonthInst(layer,instrument) {
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/photoTop5Month.php',
		{
			method: 'get',
			parameters: {
				inst: instrument	
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				div = document.getElementById(layer);
				div.innerHTML = response;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function photoTop5Overall(layer) {
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/photoTop5Overall.php',
		{
			method: 'get',
			parameters: {},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				div = document.getElementById(layer);
				div.innerHTML = response;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function photoTop5OverallInst(layer,instrument) {
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/photoTop5Overall.php',
		{
			method: 'get',
			parameters: {
				inst: instrument
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				div = document.getElementById(layer);
				div.innerHTML = response;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

glayer = "";
gsrc = "";
function adminMonthlyReportChart(layer) {
	document.getElementById(layer).style.height = '600px';
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	view = document.getElementById('reportchartview').value;
	year = document.getElementById('reportchartyear').value;
	month = document.getElementById('reportchartmonth').value;
	inst = document.getElementById('reportchartinstrument').value;
	src = "ajax/adminMonthlyReportChart.php?view="+view+"&month="+month+"&year="+year+"&inst="+inst;
	
	glayer = layer;
	gsrc = src;
	
	chart = new Image(); 
	chart.onload = adminMonthlyReportChartLoaded;
	chart.src = src;
}

function adminMonthlyReportChartLoaded() {
	document.getElementById(glayer).innerHTML = '<img src="'+gsrc+'" border="0" />';	
}

var nameField;
var resLayer;
var selectedChild = null;
var searchNameAjax = null;
var searchNameAjaxProc = false;
function adminSearchUsersByName(field,layer,type,e) {
	
	nameField = field;
	resLayer = layer;
	
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else keycode = e.which;
	
	//alert(keycode);
	
	if( keycode == 40 ) {
		selectNextName(layer);		
	}
	else if( keycode == 38 ) {
		selectPrevName(layer);
	}
	else if( keycode == 13 || keycode == 39 ) {
		if( selectedChild == null ) return;
		else {
			document.getElementById(layer).childNodes.item(selectedChild).onclick();	
		}
	}
	else {
				
		if( searchNameAjaxProc ) searchNameAjax.abort();
		
		selectedChild = null;
		var name = document.getElementById(field).value;
		
		if( name == "" ) {
			clearSearchNameRes();
			return;
		}
		
		document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
		
		searchNameAjaxProc = true;
		searchNameAjax = new Ajax.Request('/ajax/adminSearchUsersByName.php',
			{
				method: 'get',
				parameters: {
					name: name,
					type: type
				},
				onSuccess: function(transport) {
					var response = transport.responseText;
					
					div = document.getElementById(layer);
					div.innerHTML = response;
					
					searchNameAjaxProc = false;
					
				},
				onFailure: function() {
					alert("Something went wrong...");
				}
			}
		);
	}
}

function adminSearchUsersByID(field) {
	var id = document.getElementById(field).value;
	
	if( id.length != 10 ) return;
	
	searchNameAjax = new Ajax.Request('/ajax/adminSearchUsersByID.php',
		{
			method: 'get',
			parameters: {
				id: id
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == "" ) {
					showDiv('adminSearchUsersByIDX');	
				} else {
					hideDiv('adminSearchUsersByIDX');
					adminSearchUsers(response);
				}
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);
}

function selectName(layer) {
	layer.className = 'searchNameOver';
	
}

function deselectName(layer) {
	layer.className = 'searchName';
}

function selectNextName(layer) {
	var itemnum;
	if( document.getElementById(layer).firstChild != null ) {
		if( selectedChild == null ) {
			itemnum = 0;
		} else {
			itemnum = selectedChild + 1;
		}
		
		if( itemnum == document.getElementById(layer).childNodes.length ) return;
		
		deselectName( document.getElementById(layer).childNodes.item(selectedChild) );
		selectedChild = itemnum;

		selectName( document.getElementById(layer).childNodes.item(selectedChild) );
	}
	else { return; }
}

function selectPrevName(layer) {
	var itemnum;
	if( document.getElementById(layer).firstChild != null ) {
		if( selectedChild == null ) {
			return;
		} else {
			itemnum = selectedChild - 1;
		}
		
		if( itemnum < 0 ) return;
		
		deselectName( document.getElementById(layer).childNodes.item(selectedChild) );
		selectedChild = itemnum;

		selectName( document.getElementById(layer).childNodes.item(selectedChild) );
	}
	else { return; }
}

function clearSearchNameRes() {
	document.getElementById(nameField).value = "";
	document.getElementById(resLayer).innerHTML = "";
	selectedChild = null;
}

function extendedTrainingAdd(layer,statusLayer,eventid,slots) {
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/extendedTrainingAdd.php',
		{
			method: 'get',
			parameters: { eventid: eventid },
			onSuccess: function(transport) {
				var response = transport.responseText;
				var message;
				if( response == "0" ) {
					message = "You have signed up for this extended training session.";
					var div = document.getElementById(statusLayer);
					var num = parseInt(div.innerHTML.substr(0,1));
					div.innerHTML = (num+1)+" of "+slots+" spots filled<br /><span style=\"color: red;\">You are signed up!</span>";
				}
				else if( response == "1" ) {
					message = "While you've been looking at this page someone else has filled the last spot.";
				}
				else if( response == "2" ) {
					message = "You have been logged out. Please log in again and try again.";
				}
				else {
					message = "An error has occurred.";
				}
				
				div = document.getElementById(layer);
				div.innerHTML = message;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function extendedTrainingRemove(layer,statusLayer,eventid,slots) {
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/extendedTrainingRemove.php',
		{
			method: 'get',
			parameters: { eventid: eventid },
			onSuccess: function(transport) {
				var response = transport.responseText;
				var message;
				if( response == "0" ) {
					message = "You have been removed from this extended training session.";
					var div = document.getElementById(statusLayer);
					var num = parseInt(div.innerHTML.substr(0,1));
					div.innerHTML = (num-1)+" of "+slots+" spots filled";
				}
				else if( response == "1" ) {
					message = "You have been logged out. Please log in again and try again.";
				}
				else {
					message = "An error has occurred.";
				}
				
				div = document.getElementById(layer);
				div.innerHTML = message;
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminExtendedTrainingRemove(eventid,userid,layer) {
	var ajax = new Ajax.Request('/ajax/extendedTrainingRemove.php',
		{
			method: 'get',
			parameters: { eventid: eventid, userid: userid },
			onSuccess: function(transport) {
				var response = transport.responseText;
				if( response == "0" ) {
					hideDiv(layer);	
				}				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminDeleteExtTraining(eventid,img) {
	
	var con = confirm("Are you sure you want to delete this training session?");
	if(!con) return;
	
	img.src = "images/admin/processing.gif";
	
	var ajax = new Ajax.Request('/ajax/adminDeleteExtTraining.php',
		{
			method: 'get',
			parameters: {
				eventid: eventid
			},
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == '0' ) {
					
					img.src = "images/admin/delete.gif";
					
					var d = document.getElementById("exttraining"+eventid);
					d.style.color = "#FF0000";
					d.innerHTML += "<br />Deleted";
				}
				else {
					alert("This session does not exist.");
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminBackupNCF(layer,button) {	
	
	if( ! confirm("This may take a few minutes. Do not close the page. Do you want to continue?") ) return;
	
	button.disabled = true;
	
	showDiv(layer);
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" /><br /><span style="color: red;">Backing up NCF! Please do not close this page!</span>';
	
	var ajax = new Ajax.Request('/ajax/adminBackupNCF.php',
		{
			method: 'get',
			parameters: { },
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				if( response == "-1" ) {
					document.getElementById(layer).innerHTML = '<span style="color: red;">Someone else is currently backing up NCF!</span>';
				}
				else {
					response = trim(response);
					var size = response.substring(response.length-6);
					document.getElementById(layer).innerHTML = '<img src="images/accept.png" /> <span style="color: green;">You have backed up '+size+' of data to the NCF Backup Server. You may now navigate away from this page.</span>';
				}
				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}

function adminCheckBackupSpace(layer) {	
		
	showDiv(layer);
	document.getElementById(layer).innerHTML = '<img src="images/ajaxLoading.gif" border="0" />';
	
	var ajax = new Ajax.Request('/ajax/adminCheckBackupSpace.php',
		{
			method: 'get',
			parameters: { },
			onSuccess: function(transport) {
				var response = transport.responseText;
				
				document.getElementById(layer).innerHTML = '<span style="color: green;">' + response + '</span>';				
			},
			onFailure: function() {
				alert("Something went wrong...");
			}
		}
	);	
}