doTagSearch = function(tag) { 
	exactMatch = false;
	tagI = document.getElementById("tagInfo");
	tagR = document.getElementById("tagResults");
	ar = new Ajax.Request(CCM_REL + "/tools/search_tags.php", {parameters: 'tagSearch=' + tag, onSuccess: function(xm) {
		xmr = xm.responseXML;
		if (xmr.getElementsByTagName("tag-match").length > 0) {
			tagR.style.display = "none";
			exactMatch = true;
			dNode = xmr.getElementsByTagName("tag")[0];
			tagI.innerHTML = "<strong>Exact Match</strong><br/>";
			tagI.innerHTML += 'Used ' + dNode.getAttribute("num") + ' times.<br/>';
			if (dNode.firstChild) {
				tagI.innerHTML += dNode.firstChild.nodeValue;
			}
			tagI.innerHTML += '<br/><br/><input type="button" onclick="location.href=\'' + CCM_REL + '/index.php?cID=' + CCM_CID + '&task=relate-tag&tagID=' + dNode.getAttribute("id") + '\'" value="Choose ' + dNode.getAttribute("tagName") + ' &gt;" />';
			//tagI.innerHTML += '';		
			
		} else if (xmr.getElementsByTagName("tag-list").length > 0) {
			tagR.style.display = "block";
			tagR.innerHTML = "<strong>Partial Match<"+"/strong> (Click on any of the tag results below to use that tag.)<br>";
			for (i = 0; i < xmr.getElementsByTagName("tag").length; i++) {
				tn = xmr.getElementsByTagName("tag")[i];
				tagR.innerHTML += '<a href="' + CCM_REL + '/index.php?cID=' + CCM_CID + '&task=relate-tag&tagID=' + tn.getAttribute("id") + '">' + tn.firstChild.nodeValue + '<'+'/a>';
				if (xmr.getElementsByTagName("tag")[i+1]) {
					tagR.innerHTML += ", ";
				}
			}
		} else {
			tagR.style.display = "none";
		}
		if (!exactMatch) { 
			tagI.innerHTML = "Want to use <b>" + tag + "<"+"/b> as the tag? Enter some information about it below.<br/><br/>";
			tagI.innerHTML += "<strong>Description<"+"/strong> (What does " + tag + " mean to you?)<br/>";
			tagI.innerHTML += "<textarea name=\"tagDescription\" style=\"width: 550px; height: 40px\"><"+"/textarea><br/>";
			tagI.innerHTML += '<input type="hidden" name="tagName" value="' + tag + '" />';
			tagI.innerHTML += '<input type="hidden" name="task" value="relate-new-tag" /><input type="submit" class="button" value="choose tag &gt;" />'; 
		}
	}});
}

var doSearch = false;
updateTagDetails = function() {
	if (doSearch) {
		clearTimeout(doSearch);
		doSearch = false;
	}
	
	tagA = document.getElementById("tagAutoComplete");
	tagI = document.getElementById("tagInfo");
	tagD = document.getElementById("tagDetail");
	tagR = document.getElementById("tagResults");
	if (tagA.value.length < 2) {
		tagR.style.display = "none";
		tagI.innerHTML = '<strong>Start typing your tag in the box above. Words that are similar to the letters typed will appear below the box.<'+'/strong>';
		return false;
	}
	tagI.innerHTML = "<strong>Tag:<"+"/strong> " + tagA.value + "<br/>";
	doSearch = setTimeout(function() {
		doTagSearch(tagA.value);
	}, 600);
}


/* following should really only be used in tag search panes */

var tagPaneVerified = true;
var tagPaneSearchStarted = false;
var doPaneSearch = false;

doTagPaneSearchSubmit = function() {
	if (tagPaneVerified) {
		location.href=CCM_REL + "/browse?tagName=" + document.getElementById("tagPaneName").value;
	}
	return false;
}

tagPaneSearchFocus = function() {
	if (!tagPaneSearchStarted) {
		document.getElementById("tagPaneName").value = "";
		tagPaneSearchStarted = true;
	}
}

updateTagPaneDetails = function(ev) {
	//if (doPaneSearch) {
	//	clearTimeout(doPaneSearch);
	//	doPaneSearch = false;
	//}
	ev = ccmFixEvent(ev);
	tagPaneVerified = false; 
	tagA = document.getElementById("tagPaneName");
	tagR = document.getElementById("tagPaneResults");

	// return key code
	if (tagA.value.length < 2 || ev.keyCode == 13 || ev.keyCode == 8 || ev.keyCode == 46) {
						// don't autocomplete if we're deleting. that's annoying

		return false;
	}
	//doPaneSearch = setTimeout(function() {
		doTagPaneSearch(tagA.value, ev);
	//}, 600);
}

doTagPaneSearch = function(tag, ev) { 
	exactMatch = false;
	tagR = document.getElementById("tagPaneResults");
	ar = new Ajax.Request(CCM_REL + "/tools/search_tags.php", {parameters: 'tagSearch=' + tag + '&searchDescription=1', onSuccess: function(xm) {
		xmr = xm.responseXML;
		if (xmr.getElementsByTagName("tag-match").length > 0) {
			tagPaneVerified = true;
			tagR.innerHTML = "";
		} else if (xmr.getElementsByTagName("tag-list").length > 0) {
			if  (xmr.getElementsByTagName("tag").length == 1) {
				tn = xmr.getElementsByTagName("tag")[0];
				tagA.value = tn.firstChild.nodeValue;
				tagPaneVerified = true;
				tagR.innerHTML = "";
			} else {
				tagR.innerHTML = "<strong>Tags<"+"/strong>: &nbsp;";
				for (i = 0; i < xmr.getElementsByTagName("tag").length; i++) {
					tn = xmr.getElementsByTagName("tag")[i];
					tagR.innerHTML += '<a href="' + CCM_REL + '/browse?tagID=' + tn.getAttribute("id") + '">' + tn.firstChild.nodeValue + '</a>';
					if (xmr.getElementsByTagName("tag")[i+1]) {
						tagR.innerHTML += ", &nbsp;";
					}
				}
				tagPaneVerified = false;
			}
		} else {
			tagR.innerHTML = "Tag not found.";
			tagPaneVerified = false;
		}
	}});
}
