// Function Name: trim
// Function Description: 去除字符串的首尾的空格
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.trim=function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
// Function Name: ltrim
// Function Description: 去除字符串的左侧的空格
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.ltrim=function()
{
    return this.replace(/(^\s*)/g, "");
}
// Function Name: rtrim
// Function Description: 去除字符串的右侧的空格
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.rtrim=function()
{
    return this.replace(/(\s*$)/g, "");
}
// Function Name: len
// Function Description: 返回字符串的实际长度, 一个汉字算2个长度
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.getByteLength=function()
{
    var str=this;
    return str.replace(/[^\x00-\xff]/g, "**").length
}
// Function Name: isValidDate
// Function Description: 判断输入是否是有效的短日期格式 - "YYYY-MM-DD"
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidDate=function()
{
    var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    if(result==null) return false;
    var d=new Date(result[1], result[3]-1, result[4]);
    return (d.getFullYear()==result[1]&&d.getMonth()+1==result[3]&&d.getDate()==result[4]);
}
// Function Name: isValidTime
// Function Description: 判断输入是否是有效的时间格式 - "HH:MM:SS"
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidTime=function()
{
    var result=this.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
    if (result==null) return false;
    if (result[1]>24 || result[3]>=60 || result[4]>=60) return false;
    else return true;
}
// Function Name: isValidEmail
// Function Description: 判断输入是否是有效的电子邮件
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidEmail=function()
{
	 // var result=this.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
	 var result = this.match(/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidDatetime
// Function Description: 判断输入是否是有效的长日期格式 - "YYYY-MM-DD HH:MM:SS"
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidDatetime=function()
{
    var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
    if(result==null) return false;
    var d= new Date(result[1], result[3]-1, result[4], result[5], result[6], result[7]);
    return (d.getFullYear()==result[1]&&(d.getMonth()+1)==result[3]&&d.getDate()==result[4]&&d.getHours()==result[5]&&d.getMinutes()==result[6]&&d.getSeconds()==result[7]);
}
// Function Name: isValidInteger
// Function Description: 判断输入是否是一个整数
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidInteger=function()
{
    var result=this.match(/^(-|\+)?\d+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidPositiveInteger
// Function Description: 判断输入是否是一个正整数
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidPositiveInteger=function()
{
    var result=this.match(/^\d+$/);
    if(result==null) return false;
    if(parseInt(this)>0) return true;
    else return false;
}
// Function Name: isValidNegativeInteger
// Function Description: 判断输入是否是一个负整数
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidNegativeInteger=function()
{
    var result=this.match(/^-\d+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidNumber
// Function Description: 判断输入是否是一个数字
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidNumber=function()
{
    return !isNaN(this);
}
// Function Name: isValidLetters
// Function Description: 判断输入是否是一个由 A-Z / a-z 组成的字符串
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidLetters=function()
{
    var result=this.match(/^[a-zA-Z]+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidDigits
// Function Description: 判断输入是否是一个由 0-9 组成的数字
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidDigits=function()
{
    var result=this.match(/^[1-9][0-9]+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidAlphanumeric
// Function Description: 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidAlphanumeric=function()
{
    var result=this.match(/^[a-zA-Z0-9]+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidString
// Function Description: 判断输入是否是一个由 0-9 / A-Z / a-z / . / _ 组成的字符串
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidString=function()
{
    var result=this.match(/^[a-zA-Z0-9\s.\-_]+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidStrings
// Function Description: 判断输入是否是一个由 0-9 / A-Z / a-z  / _ 组成的字符串
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidStrings=function()
{
    var result=this.match(/^[a-zA-Z0-9\_]+$/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidPostalcode
// Function Description: 判断输入是否是一个有效的邮政编码
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidPostalcode=function()
{
    var result=this.match(/(^[0-9]{6}$)/);
    if(result==null) return false;
   else  return true;
}
// Function Name: isValidPhoneNo
// Function Description: 判断输入是否是一个有效的电话号码
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidPhoneNo=function()
{
    var result=this.match(/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)/);
    if(result==null) return false;
    else return true;
}
// Function Name: isValidMobileNo
// Function Description: 判断输入是否是一个有效的手机号码
// Creation Date: 2008-5-23 9:53
// Last Modify By: Fred
// Last Modify Date: 2008-05-23
String.prototype.isValidMobileNo=function()
{
    var result=this.match(/(^0{0,1}13[0-9]{9}$)/);
    if(result==null) return false;
    else return true;
}

function HTMLEncode(text){
	text = text.replace(/&/g, "&amp;") ;
	text = text.replace(/"/g, "&quot;") ;
	text = text.replace(/</g, "&lt;") ;
	text = text.replace(/>/g, "&gt;") ;
	text = text.replace(/'/g, "&#146;") ;
	text = text.replace(/\ /g,"&nbsp;");
	text = text.replace(/\n/g,"<br>");
	text = text.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");
	return text;
}

//var Browser = new Object();

//Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');
//Browser.isIE = window.ActiveXObject ? true : false;
//Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1);
//Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1);
//Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != - 1);

var Utils = new Object();


Utils.htmlEncode = function(text)
{
  return text.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

Utils.trim = function( text )
{
  if (typeof(text) == "string")
  {
    return text.replace(/^\s*|\s*$/g, "");
  }
  else
  {
    return text;
  }
}

Utils.isEmpty = function( val )
{
  switch (typeof(val))
  {
    case 'string':
      return Utils.trim(val).length == 0 ? true : false;
      break;
    case 'number':
      return val == 0;
      break;
    case 'object':
      return val == null;
      break;
    case 'array':
      return val.length == 0;
      break;
    default:
      return true;
  }
}

Utils.isNumber = function(val)
{
  var reg = /^[\d|\.|,]+$/;
  return reg.test(val);
}

Utils.isInt = function(val)
{
  if (val == "")
  {
    return false;
  }
  var reg = /\D+/;
  return !reg.test(val);
}

Utils.isEmail = function( email )
{
  var reg1 = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;

  return reg1.test( email );
}

Utils.isTel = function ( tel )
{
  var reg = /^[\d|\-|\s|\_]+$/; //只允许使用数字-空格等

  return reg.test( tel );
}

Utils.fixEvent = function(e)
{
  var evt = (typeof e == "undefined") ? window.event : e;
  return evt;
}

Utils.srcElement = function(e)
{
  if (typeof e == "undefined") e = window.event;
  var src = document.all ? e.srcElement : e.target;

  return src;
}

Utils.isTime = function(val)
{
  var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/;

  return reg.test(val);
}

Utils.x = function(e)
{ //当前鼠标X坐标
    return Browser.isIE?event.x + document.documentElement.scrollLeft - 2:e.pageX;
}

Utils.y = function(e)
{ //当前鼠标Y坐标
    return Browser.isIE?event.y + document.documentElement.scrollTop - 2:e.pageY;
}

Utils.request = function(url, item)
{
	var sValue=url.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"));
	return sValue?sValue[1]:sValue;
}

Utils.$ = function(name)
{
    return document.getElementById(name);
}

function rowindex(tr)
{
  if (Browser.isIE)
  {
    return tr.rowIndex;
  }
  else
  {
    table = tr.parentNode.parentNode;
    for (i = 0; i < table.rows.length; i ++ )
    {
      if (table.rows[i] == tr)
      {
        return i;
      }
    }
  }
}

document.getCookie = function(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0])
      return decodeURIComponent(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

document.setCookie = function(sName, sValue, sExpires)
{
  var sCookie = sName + "=" + encodeURIComponent(sValue);
  if (sExpires != null)
  {
    sCookie += "; expires=" + sExpires;
  }

  document.cookie = sCookie;
}

document.removeCookie = function(sName,sValue)
{
  document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
}

function getPosition(o)
{
    var t = o.offsetTop;
    var l = o.offsetLeft;
    while(o = o.offsetParent)
    {
        t += o.offsetTop;
        l += o.offsetLeft;
    }
    var pos = {top:t,left:l};
    return pos;
}

function cleanWhitespace(element)
{
  var element = element;
  for (var i = 0; i < element.childNodes.length; i++) {
   var node = element.childNodes[i];
   if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
     element.removeChild(node);
   }
}

  /* *
  * 检查用户是否输入了内容
  *
  * @param :  controlId   表单元素的ID
  * @param :  msg         错误提示信息
  */
 function required(controlId,msg)
  {
    var obj = Utils.$(controlId);
    if (typeof(obj) == "undefined" || Utils.trim(obj.value) == "")
    {
      return false
    }
    return true;
  }
 
  function SetInnerHtml(object,content) 
  {
    Utils.$(object).innerHTML=content;
  }