function array_unique(a)
{
  var v = new Object();
  for(i=0; i < a.length; i++)
   v[a[i]] = "";
  a = new Array();
  for(i in v)
    a[a.length] = i;
  return a;
}

// s = search, r = replace
function strReplace(s, r, w){
     return w.split(s).join(r);
}

function getTextSelection( textarea )
{
	// Attempt to create a text range (IE) to get the selection
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
	{
		var caretPos = textarea.caretPos;
		return caretPos.text;
	}
	// Mozilla text range select.
	else if (typeof(textarea.selectionStart) != "undefined")
	{
		var xs = textarea.selectionStart;
		var xe = textarea.selectionEnd;

		var res = textarea.value.substr(xs, xe-xs);
		
		var scrollPos = textarea.scrollTop;


		if (textarea.setSelectionRange)
		{
			textarea.focus();
			textarea.setSelectionRange(xs, xe);
		}
		textarea.scrollTop = scrollPos;
		
		return res;
	}
	// Just don't return anything
	else
	{
		return "";
	}
}
