function pic_uploading(){
	loading();
	dialog("Uploading...");
	document.getElementById("pic_upload_form").style.visibility = "hidden";
}

function upload_complete(id){
	loaded();
	close_dialog();
	if(id == "ext"){
		var text = "Unknown file extension.<br /><br />Only 'jpg' images allowed.";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
	} else if(id == "err"){
		var text = "An error has occured.<br /><br />Please try again.";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
	} else {
		//generate random code to avoid image caching
		var tmp = new Date(); 
		tmp = "?"+tmp.getTime()
		document.getElementById("pic_preview").src = "/backend/pics/" + id + ".jpg" + tmp;
		document.getElementById("pic_upload_form").src = "/internal/pic_upload_form.php";
		document.getElementById("pic_upload_form").style.visibility = "visible";
	}
}


function remove_pic(){
	loading();
	var ajax = new HttpRequest();
	ajax.successCallback = picture_removed;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/save_settings.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("action=remove");
}

function picture_removed(ajax){
	loaded();
	var id = ajax.responseText;
	document.getElementById("pic_preview").src = "/backend/pics/" + id + ".jpg";
}

function view_profile(id){
	loading();
	var ajax = new HttpRequest();
	ajax.successCallback = profile_response;
	ajax.failureCallback = error_handling;
	ajax.url = "../internal/view_profile.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("id=" + id);
	//"<div id=\"viewer_clickable\" onclick=\"viewer_close()\"></div><div class=\"profile\"></div>";
}

function preview_profile(ajax){
	var id=ajax.responseText;
	view_profile(id);
}

function profile_response(ajax){
	loaded();
	document.getElementById("viewer_content").innerHTML = ajax.responseText;
	document.getElementById("viewer_background").style.opacity = 0.7;
	document.getElementById("viewer_background").style.MozOpacity = 0.7;
	document.getElementById("viewer_background").style.filter = "alpha(opacity=70)";
	document.getElementById("viewer").style.display = "block";
}

function mark_as_read(type, id){
	var ajax = new HttpRequest();
	ajax.successCallback = null;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/mark_as_read.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("type=" + type + "&id=" + id);
}

function edit_profile(){
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../internal/edit_profile.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post();
}

function save_settings(target){
	var email = encodeURI(document.getElementById("email").value);
	var location = encodeURI(document.getElementById("location").value);
	var occupation = encodeURI(document.getElementById("occupation").value);
	var company = encodeURI(document.getElementById("company").value);
	var interests = encodeURI(document.getElementById("interests").value);
	var websites = encodeURI(document.getElementById("websites").value);
	var b_month = document.getElementById("b_month").value;
	var b_day = document.getElementById("b_day").value;
	var b_year = document.getElementById("b_year").value;
	var birthday = encodeURI(b_month + "-" + b_day + "-19" + b_year);
	var e_friend = document.getElementById("e_friend").checked;
	var e_post = document.getElementById("e_post").checked;
	var e_comment = document.getElementById("e_comment").checked;
	var ajax = new HttpRequest();
	if(target=="home"){
		ajax.successCallback = home;
	} else {
		ajax.successCallback = preview_profile;
	}
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/save_settings.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("email=" + email + "&location=" + location + "&occupation=" + occupation + "&company=" + company + "&interests=" + interests + "&websites=" + websites + "&birthday=" + birthday + "&e_friend=" + e_friend + "&e_post=" + e_post + "&e_comment=" + e_comment);
}

function load_call(action){
	if(action == "home"){
		home();
	}
	default_focus();
}

function default_focus(){
	if(document.getElementById("sign_in_form")){
		if(document.getElementById("email").value == ""){
			document.getElementById("email").focus();
		} else {
			document.getElementById("password").focus();
		}
	}
	if(document.getElementById("register_form")){
		document.getElementById("email").focus();
	}
}

function login(){
	loading();
	var email = encodeURI(document.getElementById("email").value);
	var password = encodeURI(document.getElementById("password").value);
	var remember = document.getElementById("remember").value;
	var ajax = new HttpRequest();
	ajax.successCallback = login_result;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/login.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("email=" + email + "&pwd=" + password + "&remember=" + remember);
}

function login_result(ajax){
	loaded();
	var data = ajax.responseText;
	if(data == "success"){
		reload_home(); //login
	} else if(data == "unactivated") {
		var text= document.getElementById("dialog_text").innerHTML + " failed.<br /><br />This account has not yet been activated.";
		buttons = new Array('Activate');
		actions = new Array("window.parent.location='activate.php'");
		dialog(text, buttons, actions);
	} else {
		var text= document.getElementById("dialog_text").innerHTML + " failed.<br /><br />Incorrect email or password.<br />Please try again.";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
	}
}

function create_account(){
	loading();
	dialog("Registering...");
	var str = '';
	var elem = document.getElementById("register_form").elements;
	for(var i = 0; i < elem.length; i++)
	{
		if(i != 0){
			str += "&";
		}
		str += elem[i].name + "=";
		str += encodeURI(elem[i].value);
	} 
	var ajax = new HttpRequest();
	ajax.successCallback = create_account_response;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/create_account.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post(str);
}

function create_account_response(ajax){
	loaded();
	var data = ajax.responseText;
	if(data.match("success")){
		window.parent.location = "activate.php";
	} else {
		var text = document.getElementById("dialog_text").innerHTML + " failed.<br /><br />Please try again.";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
	}
}

var viewing_page = null;
var viewing_post_id = null;
var viewing_id = null;

var ajax_online;
function home(){
	viewing_page = null;
	viewing_post_id = null;
	viewing_id = null;
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../internal/welcome.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post();
	if(ajax_online){
		clearInterval(ajax_online);
	}
	ajax_online = setInterval("online()", 10000);
	online();
}

function online(){
	var ajax = new HttpRequest();
	ajax.successCallback = refresh_online;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/online.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post();
}

function refresh_online(ajax){
	var data = ajax.responseText;
	var status = data.split(",");
	var friend_links = document.getElementById("friends_list").getElementsByTagName("a");
	var new_icons = document.getElementById("friends_list").getElementsByTagName("img");
	for(i=0;i<friend_links.length;i++){
		if(status[i*2] == 1){
			friend_links[i].style.color = "#2d8ec3";
		} else {
			friend_links[i].style.color = "#666666";
		}
		if(status[i*2+1] == 1){
			new_icons[i].style.display = "inline";
		} else {
			new_icons[i].style.display = "none";
		}
	}
}

function view(id, page, post_id){
	viewing_id = id;
	document.getElementById("find_field").value = "";
	form_blur("find_field"); //remove search filter
	if(post_id == null){
		post_id = viewing_post_id;
	}
	mark_as_read('post', post_id);
	loading();

	edit_hover = 0;
	if(page == null){
		viewing_page = null;
		page = null;
	}
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../internal/view.php?id="+id+"&post_id="+post_id+"&page="+page;
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post();
}

function invite(){
	document.getElementById("find_field").value = "";
	form_blur("find_field"); //remove search filter
	loading();
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../internal/invite.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post();
}

function send_invites(){
	loading();
	var emails = encodeURI(document.getElementById("email_list").value);
	var message = encodeURI(document.getElementById("message").value);
	dialog("Sending...");
	var ajax = new HttpRequest();
	ajax.successCallback = invites_sent;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/send_invites.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("emails=" + emails + "&message=" + message);
}

function show_invite_message(){
	document.getElementById("message_link").style.display = "none";
	document.getElementById("message").style.display = "block";
	document.getElementById("message").focus();
}

function invites_sent(ajax){
	loaded();
	var response = ajax.responseText;
	if(response.match("success")){
		var text = document.getElementById("dialog_text").innerHTML + " success.<br /><br />Thanks for spreading the word!";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
		home();
	} else {
		var text = document.getElementById("dialog_text").innerHTML + " failed.<br /><br />Please try again.";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
		home();
	}
}

function send_feedback(){
	loading();
	var feedback = encodeURI(document.getElementById("feedback").value);
	dialog("Sending...");
	var ajax = new HttpRequest();
	ajax.successCallback = feedback_sent;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/submit_feedback.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("feedback=" + feedback);
}

function feedback_sent(ajax){
	loaded();
	var response = ajax.responseText;
	if(response.match("success")){
		var text = document.getElementById("dialog_text").innerHTML + " success.<br /><br />Thanks for your input!";
		buttons = new Array('Okay');
		actions = new Array('reload_home()');
		dialog(text, buttons, actions);
	} else {
		var text = document.getElementById("dialog_text").innerHTML + " failed.<br /><br />Please try again.";
		buttons = new Array('Okay');
		actions = new Array('reload_home()');
		dialog(text, buttons, actions);
	}
}

var last_viewed = '0';
function toggle_post(post_id){
	if(document.getElementById("post_" + post_id + "_comments").style.display == "block"){
		document.getElementById("tri_" + post_id).src = "/images/tri_r_o.jpg";
		document.getElementById("post_" + post_id + "_comments").style.display = "none";
	} else {
		document.getElementById("tri_" + post_id).src = "/images/tri_d_o.jpg";
		document.getElementById("post_" + post_id + "_comments").style.display = "block";
	}
	if(last_viewed !== post_id && document.getElementById("post_" + last_viewed + "_comments")){
		document.getElementById("tri_" + last_viewed).src = "/images/tri_r_g.jpg";
		document.getElementById("post_" + last_viewed + "_comments").style.display = "none";
	}
	last_viewed = post_id;

	if(document.getElementById("new_p_" + post_id)){
		mark_as_read('post', post_id);
	}
}

function edit_post(id){
	//reset "edit" icon when navigating away
	edit_hover = 0;
	document.getElementById("edit_post_" + id).style.opacity = 0.5;
	document.getElementById("edit_post_" + id).style.MozOpacity = 0.5;
	document.getElementById("edit_post_" + id).style.filter = "alpha(opacity=50)";

	editing_post_id = id; //post_id
	new_post(id); //id of dilogg being viewed
}

function print_post(id){
	print_hover = 0;
	var url = "/internal/print.php?p=" + id;
	print_window = open(url,"printWindow","resizeable=yes, scrollbars=yes, toolbar=no, location=no, directories=no, status=no, menubar=no, copyhistory=no");
}

var tour_page=0;

function tour(page){
	diagram_opacity = 1; //to avoid fading errors
	fading = 3;
	tour_page = page;
	//unhighlight previous links
	document.getElementById("link_"+0).className = "tour";
	document.getElementById("link_"+1).className = "tour";
	document.getElementById("link_"+2).className = "tour";
	//highlight current link
	document.getElementById("link_"+tour_page).className = "tour_highlight";
	
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/tour_page.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("page="+tour_page);
}

/*function tour(direction){
	diagram_opacity = 1; //to avoid fading errors
	fading = 3;
	if(direction=="next"){
		tour_page++;
	//unhighlight last link
	document.getElementById("link_"+(tour_page - 1)).className = "sidebar";
	//highlight current link
	document.getElementById("link_"+tour_page).className = "sidebar_highlight";
	}
	if(direction=="prev"){
		tour_page--;
	//unhighlight last link
	document.getElementById("link_"+(tour_page + 1)).className = "sidebar";
	//highlight current link
	document.getElementById("link_"+tour_page).className = "sidebar_highlight";
	}
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/tour_page.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("page="+tour_page);
}*/

function new_post(id){
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../internal/post_creator.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("id=" + id + "&update=" + editing_post_id);
}

function retrieve_content(ajax){
	loaded();
	var data = ajax.responseText;
	document.getElementById("main_content").innerHTML = data;
	if(document.getElementById("phoneticlong")){
		var dragsort = ToolMan.dragsort();
		dragsort.makeListSortable(document.getElementById("phoneticlong"), verticalOnly, saveOrder);
	}
}

function error_handling(ajax){
	setStatusText("Lookup failed, HTTP " + ajax.status + " " + ajax.statusText + ".");
}

var editing_post_id = null;
var editing_comment_id = null;
function edit_comment(comment_id, id, post_id, page){
	loading();
	editing_post_id = post_id;
	editing_comment_id = comment_id;
	document.getElementById("comment_" + comment_id).style.opacity = 0.5;
	document.getElementById("comment_" + comment_id).style.MozOpacity = 0.5;
	document.getElementById("comment_" + comment_id).style.filter = "alpha(opacity=50)";
	document.getElementById("comment_text_" + post_id).value = "Retrieving comment...";
	document.getElementById("comment_submit_button_" + post_id).value = "Update";
	var ajax = new HttpRequest();
	ajax.successCallback = got_comment;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/get_comment.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("comment_id=" + comment_id);
}

function got_comment(ajax){
	loaded();
	document.getElementById("comment_text_" + editing_post_id).value = ajax.responseText;
}

function comment_submit(id, post_id, page){
	viewing_page = page;
	viewing_post_id = post_id;
	viewing_id = id;
	
	var comment_body = escape(document.getElementById("comment_text_" + post_id).value);
	if(comment_body==""){
		var text = "Please fill all fields";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
		return;
	}
	loading();
	document.getElementById("comment_submit_" + post_id).reset();
	var ajax = new HttpRequest();
	ajax.successCallback = commenting_result;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/comment_post.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("text=" + comment_body + "&id=" + id + "&post_id=" + post_id + "&page=" + page + "&update=" + editing_comment_id);
	editing_post_id = null
	editing_comment_id = null;
}

function commenting_result(ajax){
	loaded();
	var data = ajax.responseText;
	view(viewing_id, viewing_page);
}

function submit_post(){
	var post_title = escape(document.getElementById("post_title").value);
	var post_body = escape(document.getElementById("post_body").value);
	if(post_title=="" || post_body=="" || post_title=="Title" || post_body=="Body"){
		var text = "Please fill all fields";
		buttons = new Array('Okay');
		actions = new Array('close_dialog()');
		dialog(text, buttons, actions);
		return;
	}
	loading();
	var ajax = new HttpRequest();
	ajax.successCallback = posting_result;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/submit_post.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("title=" + post_title + "&body=" + post_body + "&update=" + editing_post_id);
	editing_post_id = null;
}

function posting_result(ajax){
	loaded();
	var response = ajax.responseText;
	view(response ,1);
}

function find_people(){
	var q = encodeURI(document.getElementById("find_field").value);
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/find_people.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("q=" + q);
}

function search_faq(){
	var q = encodeURI(document.getElementById("search_field").value);
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/faq_search.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("q=" + q);
}

function add_friend(name, id){
	var text = "Would you like to add " + name + " as your friend?";
	var buttons = new Array();
	buttons[0] = "Send Invitation";
	buttons[1] = "Cancel";
	var actions = new Array();
	actions[0] = "send_friend_invite('" + id + "')";
	actions[1] = "close_dialog()";
	dialog(text, buttons, actions);
}

function edit_friends(){
	document.getElementById("find_field").value = ""; //clear search field when navigating away
	document.getElementById("friends_list_cover").style.opacity = 0.5;
	document.getElementById("friends_list_cover").style.MozOpacity = 0.5;
	document.getElementById("friends_list_cover").style.filter = "alpha(opacity=50)";
	document.getElementById("friends_list_cover").style.display = "block";
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../internal/friends_list.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post();
}

function save_friends(){
	var list = encodeURI(junkdrawer.inspectListOrder('phoneticlong'));
	var ajax = new HttpRequest();
	ajax.successCallback = reload_home;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/save_friends.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("list=" + list + "&remove=" + encodeURI(remove));
	remove="";
	rem=null;
}

var rem=null;
function remove_friend_confirm(item, name){
	rem = item;
	var text="Would you like to remove " + name + " from your friends list?";
	buttons = new Array("Remove", "Cancel");
	actions = new Array("remove_friend();close_dialog()", "close_dialog()");
	dialog(text, buttons, actions);
}

var remove="";
function remove_friend(){
	remove += rem.parentNode.getAttribute('itemid') + ",";
	rem.parentNode.style.display = "none";
}

function viewer_open(link, type){
	if(type == "photo"){
		document.getElementById("viewer_content").innerHTML = "<div id=\"viewer_clickable\" onclick=\"viewer_close()\"></div><img src='" + link + "' onclick='viewer_close()' />";
	}
	if(type == "video"){
		link = unescape(link);
		document.getElementById("viewer_content").innerHTML = "<div id=\"viewer_clickable\" onclick=\"viewer_close()\"></div>" + link;
	}
	document.getElementById("viewer_background").style.opacity = 0.7;
	document.getElementById("viewer_background").style.MozOpacity = 0.7;
	document.getElementById("viewer_background").style.filter = "alpha(opacity=70)";
	document.getElementById("viewer").style.display = "block";
}

function viewer_close(){
	document.getElementById("viewer_content").innerHTML = "<div id=\"viewer_clickable\" onclick=\"viewer_close()\"></div>";
	document.getElementById("viewer").style.display = "none";
}

function dialog(text, buttons, actions){
	var button_set = "";
	var i;
	if(buttons){
		for(i=0; i<buttons.length; i++){
			button_set += "<input id=\"" + i + "\" class=\"dialog_button\" type=\"button\" value=\"" + buttons[i] + "\" onclick=\"" + actions[i] + "\" />";
		}
	}
	document.getElementById("dialog_text").innerHTML = text;
	document.getElementById("dialog_buttons").innerHTML = button_set;
	document.getElementById("dialog_background").style.opacity = 0.7;
	document.getElementById("dialog_background").style.MozOpacity = 0.7;
	document.getElementById("dialog_background").style.filter = "alpha(opacity=70)";
	document.getElementById("dialog").style.display = "block";
	if(document.getElementById("dialog_input")){
		document.getElementById("dialog_input").focus(); //focus text field
	} else if(button_set != ""){
		document.getElementById("0").focus(); //focus default button
	}
}

function close_dialog(){
	document.getElementById("dialog").style.display = "none";
	default_focus(); //sets cursor back to login form
}

function send_friend_invite(id){
	var text = "An invition has been sent.";
	var buttons = new Array();
	buttons[0] = "Okay";
	var actions = new Array();
	actions[0] = "close_dialog()";
	var ajax = new HttpRequest();
	ajax.successCallback = dialog(text, buttons, actions);
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/notifications.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("action=add&type=friend_request&id=" + id);
}

function accept(id, from_id){
	var ajax = new HttpRequest();
	ajax.successCallback = reload_home;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/notifications.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("action=accept&type=friend_request&id=" + id + "&from_id=" + from_id);
}

function decline(id){
	var ajax = new HttpRequest();
	ajax.successCallback = retrieve_content;
	ajax.failureCallback = error_handling;
	ajax.url = "../backend/notifications.php";
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.post("action=decline&type=friend_request&id=" + id);
}

function reload_home(){
	if(location.search != ""){
		var search = location.search;
	} else {
		var search = "";
	}
	window.parent.location.href = "/home.php" + search;
}

function ajax_debug(ajax){
	var data = ajax.responseText;	
	new_window = open("","displayWindow","width=300,height=200,left=10,top=10");
	new_window.document.write(data);
}
