﻿/**
*"空字符"的定义
*/
var whitespace = " \t\n\r";

/**
*手机格式的定义
*/
var mobilephonestand = /^[_0-9]{0,11}$/;

/**
*电话格式的定义
*/
var phonestand = /^[-0-9]{0,40}$/;

/**
*数字和字符的定义
*/
var charstand = /^[1-9a-zA-Z]{0,20}$/;

/**
*货币的定义
*/
var moneystand = /^[0-9]{0,5}[\.]{0,1}[0-9]{0,2}$/;

/**
* 检查是否为空
*/
function IsEmpty(s)
{ 
  return ((s == null) || (s.length == 0));
}

function IsWhitespace(s)
{
  var i;
  if (IsEmpty(s)) return true;
  for (i = 0; i < s.length; i++)
  {
    var c = s.charAt(i);
    if (whitespace.indexOf(c) == -1) return false;
  }
  return true;
}

/*
* 如果输入的字符长度大于第二个参数，弹出提示信息
* @param val		输入的字符
* @param vallength  字符长度
* @param msg		提示信息
*/
function ForceLength(val,vallength,msg)
{
  var strInput = new String(val.value);
  if (strInput.length>vallength)
  {
    alert(msg);
    return false;
  }
  else
    return true;
}

/*
*强制输入,如果输入为"空字符",提示
* @param val 控件
* @param str 提示信息
*/
function CheckEntry(val)
{var strInput = new String(val.value);
  if ( IsWhitespace(strInput) )
  {
    return false;
  }
  else{
    return true;
  }
}

/*
*强制输入,如果输入为"空字符",提示
* @param val 控件
* @param str 提示信息
*/
function ForceEntry(val, msg)
{
  var strInput = new String(val.value);
  if (IsWhitespace(strInput))
  {
	alert(msg);
    return false;
  }
  else
    return true;
}
/**
*判断是否为数字
*/
function IsDigit(fData)
{
    return ((fData>="0") && (fData<="9"))
}

/**
*判断是否为数字串
*/
function isNumber(str)
{
  var ch,temp;
  var strSource = "0123456789";
  for(var i = 0;i < str.length;i++)
  {
    ch = str.charAt(i);
    temp = strSource.indexOf(ch);
    if (temp==-1) 
    {
     return false;
    }
  }
  if (strSource.indexOf(ch) == -1)
  {
    return false;
  }
  else
  {
    return true;
  } 
}
/**
*是否为整数
*/
function IsInteger(fData)
{
    //如果为空，返回true
    if (IsEmpty(fData))
        return true
    if ((isNaN(fData)) || (fData.indexOf(".")!=-1) || (fData.indexOf("-")!=-1))
        return false    
    
    return true    
}
/**
*正数
*/
function IsPlusNumeric(fData)
{
    if (IsEmpty(fData))
        return true
    if ((isNaN(fData)) || (fData.indexOf("-")!=-1))
        return false
    return true
}

function DataLength(fData)
{
    var intLength=0
    for (var i=0;i<fData.length;i++)
    {
        if ((fData.charCodeAt(i) < 0) || (fData.charCodeAt(i) > 255))
            intLength=intLength+2
        else
            intLength=intLength+1    
    }
    return intLength
}


function IsIntegerInRange(fInput,fLower,fHigh)
{
    if (fLower==null)
        return (fInput<=fHigh)
    else if (fHigh==null)
        return (fInput>=fLower) 
    else         
        return ((fInput>=fLower) && (fInput<=fHigh))
}

function DaysInFebruary(fYear)
{
  return ((((fYear % 4==0) && ( !(fYear % 100 ==0))) ||(fYear % 400 ==0)) ? 29 : 28);
}

function IsYear(fYear)
{
    if (!(IsInteger(fYear))) 
        return false
    if (DataLength(fYear)!=4 )
        return false
    if (IsIntegerInRange(fYear,1900,3000)==false)
        return false
		
    return true        
}

function IsMonth(fMonth)
{
    if (!(IsInteger(fMonth)))
        return false
    if (IsIntegerInRange(fMonth,1,12)==false)
        return false
    return true
}

function IsDay(fDay)
{
    if (!(IsInteger(fDay)))
        return false
    if (!(IsIntegerInRange(fDay,1,31)))
        return false
    return true
}


function IsDate(fDate)
{
    var arrDaysInMonth=new Array(12);
    arrDaysInMonth[1]=31;
    arrDaysInMonth[2]=29;
    arrDaysInMonth[3]=31;
    arrDaysInMonth[4]=30;
    arrDaysInMonth[5]=31;
    arrDaysInMonth[6]=30;
    arrDaysInMonth[7]=31;
    arrDaysInMonth[8]=31;
    arrDaysInMonth[9]=30;
    arrDaysInMonth[10]=31;
    arrDaysInMonth[11]=30;
    arrDaysInMonth[12]=31;
    
    if (IsEmpty(fDate))
        return true
        
    var NameList=fDate.split("-");
    if (NameList.length!=3)
        return false
    
    if (!(IsYear(NameList[0]) && IsMonth(NameList[1]) && IsDay(NameList[2])))
        return false
    
    if ( NameList[1]>arrDaysInMonth[NameList[1]] )
        return false
        
    if ((NameList[1]==2) && (NameList[2]>DaysInFebruary(NameList[0])))
        return false
    return true
}

function isEmail(strEmail){
  if(strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
    return true;
  else
    return false;
}

function isPhone(strPhone){
  if(strPhone.search(phonestand) != -1)
    return true;
  else
    return false;
}

function htmlDecode(html) {
	if( null != html){
		return html.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
	} else {
		return null;
	}
}

function htmlEncode(html) {
	if (null != html) {
		return html.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
	} else {
		return null;
	}
}
