// JavaScript Document
YAHOO.namespace("tags.dom");

YAHOO.tags.dom.init = function() {
	var addTag = document.getElementById('addTag');
	YAHOO.util.Dom.setStyle(addTag, 'display', 'none');
	var tag = document.getElementById("add-tag"); 
	YAHOO.util.Event.addListener(tag, "click", toggleInv);
	var addBtn = document.getElementById("addTagForm"); 
	YAHOO.util.Event.addListener(addBtn, "submit", getNewTags);
	
	if (show_add_tag) {
		toggleInv()
	}
	function insertAfter(parent, node, referenceNode) {
  		parent.insertBefore(node, referenceNode.nextSibling);
	}
	function positionTag(status, jsonData)
	{
		if (status == 200)
		{
			//create list and append content from destination file
			var tagList = document.getElementById('tag_list');
			var tagValue = jsonData.result;
			for (i = 0; i < tagValue.length; i++) 
			{
				var elem = document.createElement('li');
				var elem_link = document.createElement('a');
				elem_link.href = '/company/tag_list?tag=' + url_encode(tagValue[i]);
				var elem_tn = document.createTextNode(tagValue[i]);
				var comma = ' ';
				var comma_tn = document.createTextNode(comma);
				elem_link.appendChild(elem_tn);
				elem.appendChild(elem_link);
				if ((i+1) != tagValue.length) {
					elem.appendChild(comma_tn);
				}
				tagList.appendChild(elem);
			}	
			document.addTagForm.reset();
			toggleInv();
			if ('message' in jsonData) {
				message_box(jsonData.message);
			}
			else{
				hide_error_box();
			}
		}
		else
		{
			error_box('We could not understand your list of tags. Please check the syntax and try again.');
		}
	}
	
	function getNewTags(e) {
		YAHOO.util.Event.stopEvent(e);
		var tagValue = document.getElementById('addtagbox').value;
		var compId = document.getElementById('comp_id').value;
		var url = "/company/tag_prof/" + compId + "?tags=" + url_encode(tagValue);
		run_ajax(url, positionTag);
	}

	var tag_list = document.getElementById("tag_list");
        YAHOO.util.Event.addListener("add-tag", "click", toggleRemove);
        YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName("remove", "a", tag_list), "click", removeTag);

	function toggleRemove(e) {
		var remove_tags = YAHOO.util.Dom.getElementsByClassName("remove", "a", tag_list);
		for ( var i = 0; i < remove_tags.length; i++)
		{
			if (YAHOO.util.Dom.hasClass(remove_tags[i], 'hidden')) {
				YAHOO.util.Dom.removeClass(remove_tags[i], 'hidden');
			} else {
				YAHOO.util.Dom.addClass(remove_tags[i], 'hidden');
			}
		}
	}

	if (show_add_tag) {
		toggleRemove()
	}

	function handleRemoveTag(status, data) {
		if ((status == 200) && (data.code == 1)) {
			var tag_element = document.getElementById("tag_" + data.tag_id);
			YAHOO.util.Dom.addClass(tag_element, 'hidden');
			message_box(data.tag + " removed successfully");
		} else {
			error_box("Failed to remove tag.");
		}
	}

	function removeTag(e) {
		YAHOO.util.Event.preventDefault(e);
		run_ajax(this.href, handleRemoveTag);
	}

function addTagList(e) {
	YAHOO.util.Event.stopEvent(e);
	var tagList = document.getElementById('tag');
	var tagValue = document.getElementById('addtagbox').value;
	var elem = document.createElement('li');
	var elem_link = document.createElement('a');
	elem_link.href = '/company/tag_list/<%tag_info.tag.tag%>';
	var elem_tn = document.createTextNode(tagValue);
	elem_link.appendChild(elem_tn);
	elem.appendChild(elem_link);
	tagList.appendChild(elem);
}

function toggleInv() {
	var thisObj = document.getElementById('addTag');
	if (thisObj.style.display == 'none')
	{
		thisObj.style.display = 'block';
		var tagBox = document.getElementById('addtagbox');
		tagBox.focus();
	}
	else
	{
		thisObj.style.display = 'none';
	}
}

}
YAHOO.util.Event.addListener(window, "load", YAHOO.tags.dom.init);

