	function StrCode(str)
	{
		if(encodeURIComponent) return encodeURIComponent(str);
		if(escape) return escape(str);
	}

	function UnStrCode(str)
	{
		if(decodeURIComponent ) return decodeURIComponent (str);
		if(unescape) return unescape(str);
	}
	
	function Trim(s)
	{
		var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
		return (m == null) ? "" : m[1];
	}
	
	function HtmlEncode(text)
	{
		var re = {'<':'&lt;','>':'&gt;','&':'&amp;','"':'&quot;'};
		for (i in re)
		{
			text = text.replace(new RegExp(i,'g'), re[i]);
		}
		return text;
	}

	function HtmlDecode(text)
	{
		var re = {'&lt;':'<','&gt;':'>','&amp;':'&','&quot;':'"'};
		for (i in re)
		{
			text = text.replace(new RegExp(i,'g'), re[i]);
		}
		return text;
	}
	
	function gid(id)
	{
		return document.getElementById?document.getElementById(id):null;
	}

	function gname(name)
	{
		return document.getElementsByTagName?document.getElementsByTagName(name):new Array()
	}

	var get_e_src = function(e)
	{
		if(e)
		{
			return e.target;
		}
		if(window.event)
		{
			return window.event.srcElement;
		}
		return null;
	};


	function addEvent( obj, evType, fn, useCapture )
	{
		if ( obj.addEventListener )
		{
			obj.addEventListener( evType, fn, useCapture );
			return true;
		}
		if ( obj.attachEvent )
		{
			return obj.attachEvent( "on" + evType, fn );
		}
		alert( "Unable to add event listener for " + evType + " to " + obj.tagName );
	}