/***********************************************/
/*                                             */
/* 公用函数类库                                */
/* 2007.01.16                                  */
/*                                             */
/***********************************************/

/**
 *
 *	Function: TryFunctions()
 *		依次执行一个函数列表中的函数，返回第一个成功执行的函数的返回值。
 *			
 *	Arguments:
 *		{Function, Array} - 需要尝试的函数列表。
 *	
 *	Returns:
 *		{Object} - 函数列表中第一个成功执行的函数的返回值。
 *			
 *	Example:
 *		(start code)
 *		var myInt = TryFunctions(
 *			function() { throw ('1'); },
 *			function() { throw ('2'); },
 *			function() { return 3; },
 *			function() { throw ('4'); }
 *		)
 *		// myInt is 3;
 *		(end)
 */
function TryFunctions()
{
	var ret;

    for (var i = 0; i < arguments.length; i++)
    {
		var func = arguments[i];
		try
		{
			ret = func();
			break;
		}
		catch (e)
		{
			//pass
		}
    }

	return ret;
}


/**
 *
 *	Function: $()
 *		document.getElementById()的快捷方式，并且可以一次性返回多个Html对象。
 *			
 *	Arguments:
 *		{String, Array} - 一个或多个对象的id名。
 *	
 *	Returns:
 *		{Object, Array} - 一个或多个Html对象。
 *			
 *	Example:
 *		(start code)
 *		<div id="head">
 *			<span id="logo"/>
 *		</div>
 *		<script type="text/javascript">
 *		var elements = $("head","logo");   // or $("logo")
 *		//now elementss[0] is <div>, elementss[1] is <span>
 *		</script>
 *		(end)
 */
function $()
{
	var elements = new Array();

	for (var i = 0; i < arguments.length; i++)
	{
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);

		if (arguments.length == 1)
			return element;

		elements.push(element);
	}

	return elements;
}

/**
 *
 *	Object: Class
 *		对象的扩展基对象。可用此对象的creat方法创建一个类。
 *			
 *	Example:
 *		(start code)
 *		var Color = Class.creat();
 *		Color.prototype = {
 *			constructor:function(value) {
 *				this._value = value;
 *			},
 *			GetValue: function() {
 *				return this._value;
 *			}
 *		}
 *	
 *		var Red = new Color('red');
 *		alert(Red.GetValue());
 *		(end)
 */
var Class = {
  create: function() {
    return function() { 
      this.constructor.apply(this, arguments);
    }
  }
}

function GetQueryString(name) 
{ 
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); 
var r = window.location.search.substr(1).match(reg); 
if (r!=null) return unescape(r[2]); return null; 
} 