function addClass(obj, cName) {
	obj.className += " "+cName;
	return false;
}

function removeClass(obj, cName) {
	if (obj.className == obj.className.replace(" ","-")) {
		obj.className=obj.className.replace(cName, "");				
	} else {
		obj.className=obj.className.replace(" "+cName, "");
	}
	return false;
}
function addRemoveClass(obj, cName) {
	if (!hasClass(obj, cName)) {
		addClass(obj,cName);
	} else {
		removeClass(obj,cName);
	}
	return false;
}
function hasClass(obj, cName) {
	if (obj.className == obj.className.replace(cName,"")) {
		return false;
	}
	return true;
}

function highlight(tag) {
	var includes = document.getElementsByTagName(tag);
	for (var i=0;i<includes.length;i++) {
		if (includes[i].type == "text" || includes[i].type == "password" || includes[i].type == "textarea" || includes[i].type == "select-one" && includes[i].className != "text readonly") {
			includes[i].onfocus = function() {
				this.className+=" editing";
			}
			includes[i].onblur = function() {
				if (this.className == this.className.replace(" ","-")) {
					this.className=this.className.replace("editing", "");				
				} else {
					this.className=this.className.replace(" editing", "");
				}
			}
		}
	}
}

function hideDL() {
	var ddTags = document.getElementsByTagName("dd");
	var dlTags = document.getElementsByTagName("dl");
	if (dlTags.length == 0) { 
		return false; 
	}
	ajaxDL();
	$("showhideall").innerHTML = "<a href=\"#\" onclick=\"showDL()\" title=\"Show detail for all sections\">(Show details of all sections)</a>";
	for (var i=0;i<dlTags.length;i++) {
		addClass(dlTags[i],"hidden");
		removeClass(dlTags[i].parentNode.childNodes[0],"minus");
		removeClass(dlTags[i].parentNode.childNodes[0],"plus");
		addClass(dlTags[i].parentNode.childNodes[0],"plus");
		dlTags[i].parentNode.childNodes[0].onclick = function() {
			this.blur();
			addRemoveClass(this.parentNode.childNodes[2],"hidden");
			addRemoveClass(this,"minus");
		} 
	}
	return false;
}

function showDL() {
	var dlTags = document.getElementsByTagName("dl");
	if (dlTags.length == 0) { 
		return false; 
	}
	$("showhideall").innerHTML = "<a href=\"#\" onclick=\"hideDL()\">(Hide details of all sections)</a>";
	for (var i=0;i<dlTags.length;i++) {
		removeClass(dlTags[i],"hidden");
		removeClass(dlTags[i].parentNode.childNodes[0],"minus");
		removeClass(dlTags[i].parentNode.childNodes[0],"plus");
		addClass(dlTags[i].parentNode.childNodes[0],"minus");
	}	
	return false;
}

function ajaxDL() {
	var dlTags = document.getElementsByTagName("dl");
	for (var i=0;i<dlTags.length;i++) {
		dlTags[i].parentNode.id = "li_"+i;
		dlTags[i].parentNode.childNodes[0].href = "#";
//		if (document.all) {
//			dlTags[i].parentNode.childNodes[0].href = "#li_"+i;
//		}
	}
}

function authors() {
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++) {
		if (inputs[i].getAttribute("TYPE") == "submit") {
			if (inputs[i].getAttribute("VALUE") == "Edit") {
				inputs[i].style.display = "none";
			}
		} else if(inputs[i].getAttribute("TYPE") == "image") {
			if (inputs[i].getAttribute("NAME") == "delete") {
//				inputs[i].onclick = function() {
//					var msgbox = confirm("Are you sure you want to delete this Author?\n\nTHIS OPERATION CANNOT BE UNDONE");
//					if (msgbox == true) {
//						return true;
//					} else {
//						this.blur();
//						return false;
//					}
//				}
			} else {
				addClass(inputs[i].parentNode.childNodes[1],"hidden");
				inputs[i].onclick = function() {
					if (this.name == "addauthor") {
						removeClass(this.parentNode.childNodes[1],"hidden");
						this.src = "/directus/images/create_author.gif";
						this.name = "createauthor";
						addClass(this,"createbutton");
						cancelLink = document.createElement("a");
						cancelLink.innerHTML = "Cancel";
						cancelLink.href = "#";
						cancelLink.onclick = function() {
							this.parentNode.childNodes[2].src = "/directus/images/add_author.gif";
							this.parentNode.childNodes[2].name = "addauthor";
							removeClass(this.parentNode.childNodes[2],"createbutton");
							addClass(this.parentNode.childNodes[1],"hidden");
							num = this.parentNode.childNodes.length;
							this.parentNode.removeChild(this.parentNode.childNodes[num-2]);
							this.parentNode.removeChild(this.parentNode.childNodes[num-2]);
							return false;
						}
						text = document.createElement("span");
						text.innerHTML = "&nbsp;or&nbsp;";
						this.parentNode.appendChild(text);
						this.parentNode.appendChild(cancelLink);
						this.blur();			
						return false;
					} 
					else if(this.name == "createauthor") {
						this.blur();
						var username = this.parentNode.childNodes[1].childNodes[0].childNodes[this.parentNode.childNodes[1].childNodes[0].childNodes.length -1].value;
						var password = this.parentNode.childNodes[1].childNodes[2].childNodes[this.parentNode.childNodes[1].childNodes[2].childNodes.length -1].value;
						if (username.length > 0 && password.length > 5) {
							this.parentNode.submit();			
						}
						else {
							alert("Please enter a username and password\n(password must be 6 character or more)");			
							return false;
						}
					} else {	
						return false;
					}
				}
			}
		}
	}
}

function pages() {
	var headers = document.getElementsByTagName("h3");
	for (var i=0; i<headers.length; i++) {
		addClass(headers[i].nextSibling,"hidden");
		addClass(headers[i],"plus");
		headers[i].onmouseover = function() {
			if (hasClass(this.nextSibling,"hidden")) {
				removeClass(this,"minus");
				removeClass(this,"plus");
				addClass(this,"minus");
			} else {
				removeClass(this,"minus");
				removeClass(this,"plus");
				addClass(this,"plus");
			}
		}
		headers[i].onmouseout = function() {
			if (hasClass(this.nextSibling,"hidden")) {
				removeClass(this,"plus");
				removeClass(this,"minus");
				addClass(this,"plus");
			} else {
				removeClass(this,"minus");
				removeClass(this,"plus");
				addClass(this,"minus");
			}
		}
		headers[i].onclick = function() {
			addRemoveClass(this.nextSibling,"hidden");
			if (hasClass(this.nextSibling,"hidden")) {
				removeClass(this,"plus");
				removeClass(this,"minus");
				addClass(this,"minus");
			}
			else {
				removeClass(this,"minus");
				removeClass(this,"plus");
				addClass(this,"plus");
			}			
			return false;
		}
	}
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		if (hasClass(anchors[i], "enable") || hasClass(anchors[i],"disable")) {
			anchors[i].onclick = function() {
				var dbId = this.parentNode.parentNode.getAttribute("dbid");
				var dbUidName = this.parentNode.parentNode.parentNode.parentNode.getAttribute("dbuidname");
				var dbTable = this.parentNode.parentNode.parentNode.parentNode.getAttribute("dbtable");
				var dbField = this.getAttribute("dbfield");
				var imageYes = this.getAttribute("imageyes");
				var imageNo = this.getAttribute("imageno");
				var dbValue = this.getAttribute("dbvalue");
				var pars = 'id='+dbId+'&table='+dbTable+'&field='+dbField+'&uidname='+dbUidName+'&imageno='+imageNo+'&imageyes='+imageYes+'&dbvalue='+dbValue;				
				var url = './scripts/AJAX_switchBooleanInDB.php';
				this.innerHTML = " <img src=\"/directus/images/loading.gif />";
				this.id="ajaxcell";
				var myAJAX = new Ajax.Request(url,{method: 'get', parameters: pars, onComplete: enDisPage});
				this.blur();
				return false;
			}
		}
	}
}

function enDisPage(originalRequest) {
	newImg = originalRequest.responseText;
	$("ajaxcell").innerHTML = newImg;
	var value = $('ajaxcell').getAttribute("DBVALUE");
	if (value == "yes") {
		newval = "no";
		addClass($('ajaxcell').parentNode.parentNode,"disabled");
		var title = "enable page";
	} else {
		newval = "yes";
		removeClass($('ajaxcell').parentNode.parentNode,"disabled");
		var title = "disable page";
	}
	$("ajaxcell").setAttribute("title",title);
	$('ajaxcell').setAttribute("dbvalue",newval);
	$("ajaxcell").id = "";
	return false;
}

function comments() {
	var inputs = document.getElementsByTagName("input");
	switch($("collistlabel").innerHTML) {
		case "Ordered by date":
			$("collistlabel").innerHTML = "<strong>" + $("collistlabel").innerHTML + "</strong> | <a href=\"#\" onclick=\"repopulateColList('section'); return false;\">Order by section</a>";
		break;
		case "Ordered by section":
			$("collistlabel").innerHTML = "<a href=\"#\" onclick=\"repopulateColList('date'); return false;\">Order by date</a> | <strong>" + $("collistlabel").innerHTML + "</strong>";
		break;
	}
	for (var i=0; i<inputs.length; i++) {
		if (inputs[i].className == "showcomments") {
			inputs[i].onclick = function() {
				var pars = "c_id="+$F("columns");
				var url = './scripts/AJAX_returnComments.php';
				$("comments").innerHTML = "<img src=\"/directus/images/loading.gif />";
				var myAJAX = new Ajax.Request(url,{method: 'get', parameters: pars, onComplete: showComments});
				return false;
			}
		}
		else if (inputs[i].getAttribute("name") == "edit") {
			addClass(inputs[i],"hidden");
		}
		else if (inputs[i].getAttribute("name") == "delete") {
			inputs[i].onclick = function() {
				var msgbox = confirm("Are you sure you want to delete this comment?\nThis action cannot be undone");
				if (msgbox == true) {
					var comm_id = this.parentNode.childNodes[0].value;
					var pars = "comm_id="+comm_id;
					var url = './scripts/AJAX_deleteComment.php';
					$("comments").innerHTML = "<img src=\"/directus/images/loading.gif />";
					var myAJAX = new Ajax.Request(url,{method: 'get', parameters: pars, onComplete: showComments});
					return false;
				}
				return false;
			}
		}
	}
}
function showComments(originalRequest) {
	$("comments").innerHTML = originalRequest.responseText;
	switch($("collistlabel").innerHTML) {
		case "<strong>Ordered by date</strong> | <a href=\"#\" onclick=\"repopulateColList('section'); return false;\">Order by section</a>":
			repopulateColList('date');
		break;
		case "<a href=\"#\" onclick=\"repopulateColList('date'); return false;\">Order by date</a> | <strong>Ordered by section</strong>":
			repopulateColList('section');
		break;
	}
	return false;
}

function clearCommentArea() {
	$("comments").innerHTML = "";
	this.blur();
	return false;
}

function repopulateColList(type) {
	var pars = "type="+type;
	var url = './scripts/AJAX_returnColumnList.php';
	this.innerHTML += "<img src=\"/directus/images/loading.gif />";
	var myAJAX = new Ajax.Request(url,{method: 'get', parameters: pars, onComplete: showColList});
	return false;
}
function showColList(originalRequest) {
	$("columnlist").innerHTML = originalRequest.responseText;
	comments();
	ajaxEditableTR();
	return false;
}

function writeTable(originalRequest) {
	outputTable = originalRequest.responseText;
	$("AJAXheader").parentNode.innerHTML += outputTable;
}

function showHide(linkId, normalLinkContent, replaceLinkContent) {
	$(linkId).innerHTML = normalLinkContent;
	idToHide = linkId + "showhide";
	addRemoveClass($(idToHide),"hidden");
	$(linkId).onclick = function() {
		idToHide = this.id + "showhide";
		addRemoveClass($(idToHide),"hidden");
		if (replaceLinkContent != null && $(idToHide).className != "hidden") {
			this.innerHTML = replaceLinkContent;
		} else {
			this.innerHTML = normalLinkContent;
		}
		this.blur();
		return false;
	}
	$(linkId).onfocus = function() {
		this.blur();
	}
}

window.onload = function() {
		highlight("input");
		highlight("textarea");
		highlight("select");
	}
