/* ./js/annoyances.js */
function getExpandedAnns(){
	var ids = new Array();
	for(var i = 0; true; i++){
		try{
			me = document.getElementById("list_" + i);
			if(me.style.display != 'none'){
				ids.push(i); 
			}
		}catch(e){
			break;
		}
	}
	return ids;
}
function getAnnFormInfo(){
	var info = new Array();
	info['edit_id'] = document.getElementsByName("edit_id")[0].getAttribute("value");
	info['delete_ann_id'] = document.getElementsByName("delete_ann_id")[0].getAttribute("value");
	info['content'] = document.getElementsByName("ann_content")[0].value;
	info['user_id'] = document.getElementsByName("current_user_id")[0].getAttribute("value");
	try{
		var select = document.getElementsByName("mus_id")[0];
		for(var i = 0; i < select.options.length; i++){
			if(select.options[i].selected){
				info['mus_id'] = select.options[i].getAttribute("value");
				break;
			}
		}
	}catch(e){
		info['mus_id'] = 0;
	}
	return info;
}
function setTempAnnHeader(string){
	setAnnHeader(string);
	window.setTimeout(function(){
			setAnnHeader("New Annoyance");
		}, 
		5000
	);
}
function setAnnHeader(string){
	document.getElementById("edit_musing_header").innerHTML = string;
}
function annIndicator(){
	document.getElementById("edit_musing_header").innerHTML = "Loading...";
}
function loadAnnoyance(){
	document.getElementById("reset_button").style.display = "inline";
	document.getElementById("delete_button").style.display = "inline";
	var xml = request.xml;
	annoyance = xml.getElementsByTagName("annoyance")[0];
	var mus_id;
	var ann_id = annoyance.getElementsByTagName("ann_id")[0].firstChild.nodeValue;
	var content = annoyance.getElementsByTagName("ann_content")[0].firstChild.nodeValue;
	setAnnHeader("Edit Annoyance");
	document.getElementsByName("edit_id")[0].setAttribute("value", ann_id);
	document.getElementsByName("delete_ann_id")[0].setAttribute("value", ann_id);
	document.getElementsByName("ann_content")[0].value = content;	
	if(annoyance.getElementsByTagName("mus_id")[0].firstChild.nodeValue != "none"){
		mus_id = annoyance.getElementsByTagName("mus_id")[0].firstChild.nodeValue;
		options = document.getElementsByTagName("option");
		for(i = 0; i < options.length; i++){
			if(options[i].getAttribute("value") == mus_id){
				options[i].selected = true;
				break;
			}
		}
	}else{
		options = document.getElementsByTagName("option");
		for(i = 0; i < options.length; i++){
			if(options[i].selected){
				options[i].selected = false;
				break;
			}
		}
	}
}
function getAnnoyance(id){
	annIndicator();
	request("./interfaces/loadAnnoyance.php?aid=" + id, loadAnnoyance, "");
}
function resetAnnoyance(){
	setAnnHeader("New Annoyance");
	document.getElementById("reset_button").style.display = "none";
	document.getElementById("delete_button").style.display = "none";
	document.getElementsByName("edit_id")[0].setAttribute("value", "")
	document.getElementsByName("ann_content")[0].value = "";
	options = document.getElementsByTagName("option");
	for(i = 0; i < options.length; i++){
		if(options[i].selected){
			options[i].selected = false;
			break;
		}
	}
}
function saveAnnoyance(){
	var info = getAnnFormInfo();
	if(!info['content'].length > 0){
		setAnnHeader("You didn't give an annoyance...");
		return;
	}
	if(info['edit_id']){
		editAnnoyance(info);
		return;
	}
	var expanded = getExpandedAnns().join("|");
	var postString = "user_id=" + info['user_id']
				+ "&mus_id=" + info['mus_id']
				+ "&content=" + fixPlus(info['content'])
				+ "&expanded=" + expanded;
	setAnnHeader("Saving...");
	request(
		"./interfaces/saveAnnoyance.php",
		function (){
			resetAnnoyance();
			setTempAnnHeader("Your Annoyance Has Been Saved");
			document.getElementById("edit_divs_left_content").innerHTML = request.text;
		},
		postString
	);
}
function editAnnoyance(info){
	setAnnHeader("Saving Changes...");
	var expanded = getExpandedAnns().join("|");
	var postString = "user_id=" + info['user_id']
					+ "&ann_id=" + info['edit_id']
					+ "&content=" + fixPlus(info['content'])
					+ "&mus_id=" + info['mus_id']
					+ "&expanded=" + expanded;
	request(
		"./interfaces/editAnnoyance.php",
		function (){
			resetAnnoyance();
			setTempAnnHeader("Your Annoyances Have Been Updated");
			document.getElementById("edit_divs_left_content").innerHTML = request.text;			
		},
		postString
	);
}
function deleteAnnoyance(){
	var info = getAnnFormInfo();
	var expanded = getExpandedAnns().join("|");
	var postString = "user_id=" + info['user_id']
					+ "&ann_id=" + info['delete_ann_id']
					+ "&expanded=" + expanded;
	setAnnHeader("Deleting...");
	request(
		"./interfaces/deleteAnnoyance.php",
		function (){
			resetAnnoyance();
			setTempAnnHeader("Your Annoyances Have Been Updated");
			document.getElementById("edit_divs_left_content").innerHTML = request.text;			
		},
		postString
	);
}
