var currently_editing = false;
var currently_editing_div;
var currently_editing_input;

function edit_rank(div) {
	if (currently_editing) {
		return;
	}

	currently_editing = true;
	currently_editing_div = div;
	
	var curr_rank = div.innerHTML;
	div.old_value = curr_rank;
	if (curr_rank) {
		curr_rank = curr_rank.replace(/'/, "&quot;");
	}

	div.currently_editing = true;
	div.className = 'editing_rank';
	div.innerHTML = "<input id='editable_rank_input' type='text' value='"+curr_rank+"' onkeypress='rank_key_press(event);' />";
	currently_editing_input = document.getElementById('editable_rank_input');
	currently_editing_input.focus();
}

function _cei_value() {
	var f = currently_editing_input.value;
	return f
		.replace(/'/, "&quot;")
		.replace(/</, "&lt;")
		.replace(/>/, "&gt;");
}

function rank_key_press(e) {
	if (! currently_editing || currently_editing_input.disabled) {
		return;
	}

	if (e.keyCode == 27) {
		// 27 == Escape
		_editing_rank_cancel();
	} else if (e.keyCode == 13) {
		// 13 == Enter
		currently_editing_input.disabled = true;
		currently_editing_input.style.backgroundColor = 'lightgrey';

		AjaxRequest.get({
			'url':'editable_rank_ajax.php?new_rank='+escape(_cei_value()),
			'onSuccess':function(req) { eval(req.responseText); },
			'onTimeout':function(req) { _editing_rank_cancel(); }
		});

	} else {
		return true;
	}
}

function _editing_rank_cancel() {
	if (! currently_editing) {
		return;
	}

	currently_editing_div.innerHTML = currently_editing_div.old_value;
	currently_editing_div = null;
	currently_editing_input = null;
	currently_editing = false;
}

function edit_rank_error(msg) {
	_editing_rank_cancel();
	raid_menu_error(null, msg);
}

function getElementsByName_iefix(tag, name) {
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
} 

function edit_rank_saved() {
	var new_val = _cei_value();
	//currently_editing_div.innerHTML = currently_editing_input.value;
	currently_editing_div = null;
	currently_editing_input = null;
	currently_editing = false;

	var alldivs = document.getElementsByName("editable_rank");
	if ("HTMLCollection" != typeof alldivs) {
		alldivs = getElementsByName_iefix('div', 'editable_rank');
	}

	for (var i = 0; i < alldivs.length; i++ ) {
		alldivs[i].innerHTML = new_val;
	}
}	

/* ------------------------------------------------------------------ */

function raid_menu_action(action, raidid) {
	AjaxRequest.get({
		'url':'raid_signup_ajax.php?action='+action+'&oid='+raidid,
		'onSuccess':function(req) { eval(req.responseText); }
	});

	var elem = document.getElementById("raid_menu_text_"+raidid);
	elem.backupTitle = elem.title;
	elem.backupBackgroundColor = elem.style.backgroundColor;
	elem.backup = true;
	elem.style.backgroundColor = 'white';
	elem.title = 'In progress...';
}

function raid_menu_set(raidid, title, bgcolor) {
	var elem = document.getElementById("raid_menu_text_"+raidid);
	elem.title = title;
	elem.style.backgroundColor = bgcolor;
	elem.backup = false;

	var is_unsigned_elem = document.getElementById("raid_menu_unsigned_"+raidid);
	if (is_unsigned_elem.getAttribute("val") == 1) {
		is_unsigned_elem.setAttribute("val", 0);
		elem = document.getElementById("n_unsigned");
		elem_val = elem.getAttribute("val");
		if (elem_val > 0) {
			elem.setAttribute("val", --elem_val);
			var t = document.getElementById("n_unsigned_text");
			if (elem_val > 0) {
				t.innerHTML = "<a href='/phpBB2/raid_signup.php' class='mainmenu' style='color: orange; font-weight: bold'><img src='templates/subSilver/images/icon_mini_groups.gif' width='12' height='13' border='0' hspace='3' />" + elem_val + " new raid" + (elem_val > 1 ? "s" : "") + "</a>";
			} else {
				t.innerHTML = "<a href='/phpBB2/raid_signup.php' class='mainmenu'><img src='templates/subSilver/images/icon_mini_groups.gif' width='12' height='13' border='0' hspace='3' />Adjust signups</a>";
			}
		}
	}
}

function raid_menu_error(raidid, errmsg) {
	var elem;

	if (raidid) {
		elem = document.getElementById("raid_menu_text_"+raidid);
		if (elem.backup) {
			elem.backup = false;
			elem.title = elem.backupTitle;
			elem.style.backgroundColor = elem.backupBackgroundColor;
		}
	}

	elem = document.getElementById("raid_menu_error");
	if (elem.style.display != "block") {
		elem.innerHTML = errmsg;
		elem.style.display = "block";
	} else {
		elem.innerHTML += "<br>" + errmsg;
	}

}

function raid_menu_error_clear() {
	var elem;
	elem = document.getElementById("raid_menu_error");
	elem.style.display = "none";
}
