var id = 0;

// onKeyPressed event handler
function pressTag(evt, target, hiddentarget)
{
  evt = (evt) ? evt : event;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
  if (charCode == 13 || charCode == 3)
  {
    addTag(target,hiddentarget);
    return false;
  }
  return true;
}

// Add the tag from the textbox separated by ","
function addTag(target, hiddentarget)
{
	var targetObj = document.getElementById(target);
	if (targetObj.value.length > 0)
	{
		setTag(target, targetObj.value, hiddentarget);
	}
}

// Add the tags separated by ","
function setTag(target, tagValue, hiddentarget)
{
	// textbox or hidden field
	var targetObj       = document.getElementById(target);
	// tags list in the hidden field
	var hiddentargetObj = document.getElementById(hiddentarget);
	
	var tags = tagValue.split(",");
	for (var i = 0; i < tags.length; i++)
	{
		var t        = tags[i].replace(/^\s*|\s*$/g, "");
		var tlen     = t.length;
		var p        = "<span class=tag id=sp" + id + " >&nbsp;";
		var pl       = p.length;
		var tid      = "s" + id;
		var x1       = "&nbsp;<img src='/img/tag_remove.gif' align='absmiddle' style='cursor:pointer' onclick=remove('" + target + "',";
		var x2       = ",";
		var x3       = ")></span>";
		var sts      = x1 + x2 + x3;
		var sid      = id.toString();

		// set the tag to the hidden field
		var hiddenBeginPos = hiddentargetObj.value.length;
		if (hiddentargetObj.value.length > 0)
		{
			hiddentargetObj.value += "\r\n";
	   }
		hiddentargetObj.value += t;
		var hiddenEndPos   = hiddentargetObj.value.length;
	
		var sstr = p + t + x1 + "'" + hiddentarget + "'" + x2 + hiddenBeginPos + x2 + hiddenEndPos + x3;
	
		// set the tag for the browser view
		var targetHolder = document.getElementById(target + "_holder");
		targetHolder.innerHTML = targetHolder.innerHTML + sstr;
		
		id = id + 1;
	}
	
	if (targetObj.type == "text")
	{
		targetObj.value = "";
		targetObj.focus();
	}
}

function remove(target, hiddentarget, hiddenBeginPos, hiddenEndPos)
{
	// clear the browser view
	var targetHolder = document.getElementById(target + "_holder");
	targetHolder.innerHTML = "";

	// get the tags from the hidden field 
	var hiddentargetObj = document.getElementById(hiddentarget);
	
	// remove the tag
	var tags = hiddentargetObj.value.substring(0, hiddenBeginPos) + 
		hiddentargetObj.value.substring(hiddenEndPos, hiddentargetObj.value.length);
	
	// clear the tags at the hidden field 
	hiddentargetObj.value = "";

	// set the tags to the array
	var tagsArray = tags.split("\r\n");
	
	// remove the first empty tag 
	if (tagsArray[0] == "")
	{
		tagsArray.shift();
	}
	
	// create new tags from the array
	for (var i = 0; i < tagsArray.length; i++)
	{
		setTag(target, tagsArray[i], hiddentarget);
	}
}