function isEmailTrue(email) {
    var regexpEmail = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
    return regexpEmail.test(email);
}

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}

/**
 * 计算字符串的长度，一个汉字两个字符
 */
String.prototype.realLength = function()
{
    return this.replace(/[`~!@#\$%\^\&\*\(\)_\+\-=\{\}\[\]\|\\:;\'\",.<>\/\?\x20\s]/g, 'a').replace(/[^x00-xff]/g, "**").length;
}
function realLength(s)
{
    return s.replace(/[`~!@#\$%\^\&\*\(\)_\+\-=\{\}\[\]\|\\:;\'\",.<>\/\?\x20\s]/g, 'a').replace(/[^x00-xff]/g, "**").length;
}


/*function isNameTrue(name) {
    if(name==null || name.length==0 || name=='null') {
        return false;
    }
    if(/([a-zA-Z\u4E00-\u9FA5\s])\1{2,}/.test(name)) {
        return false;
    }

    var regexChineseName = /[\u4E00-\u9FA5\\s]{2,5}$/;//全中文,长度在2到5之间.
    if(regexChineseName.test(name)) {
        return true;
    }
    var regexEnglishName = /[a-zA-Z]{3,}$/;//全英文字母,长度在3个以上.
    if(regexEnglishName.test(name)) {
        var vowelCount = getVowelCount(name);
        if(vowelCount>0) //含元音字母aeioy或y.
            return true;
        else
            return false;
    }
    var regexOtherAllowed1 = /[a-zA-Z]{1,15}[.][a-zA-Z]{1,15}/; //to match name like Ring.xie
    if(regexOtherAllowed1.test(name)) {
        var s = myListString.split(/[.]/);
        if(getVowelCount(s[0]) > 0 && getVowelCount(s[1]) > 0) {
            return true;
        }else {
            return false;
        }
    }
    var regexOtherAllowed2 = /[\u4E00-\u9FA5]{1,15}[(][a-zA-Z]{1,15}[)]/; //to match name like 龚志荣(peter)
    if(regexOtherAllowed2.test(name)) {
        var s = name.split(/[(]|[)]/);
        if(getVowelCount(s[1]) > 0) {
            return true;
        }else {
            return false;
        }
    }
    var regexOtherAllowed3 = /[a-zA-Z]{1,15}\s[a-zA-Z]{1,15}/;//to match name like Jimmy Yu
    if(regexOtherAllowed3.test(name)) {
        var s = name.split(/\s/);
        if(getVowelCount(s[0]) > 0 && getVowelCount(s[1]) > 0) {
            return true;
        }else if(getVowelCount(s[0]) > 0 && Trim(s[1]).length==1){
            return true;
        }else {
            return false;
        }
    }
    return false;
}*/
function getVowelCount(name) {
    sum = 0;
    for (i = 0; i < name.length; i++) {
        switch(name.charAt(i)) {
            case 'a':case 'A':
            case 'e':case 'E':
            case 'i':case 'I':
            case 'o':case 'O':
            case 'u':case 'U':
            case 'v':case 'V':
            case 'y':case 'Y':
                sum++;
        }
    }
    return sum;
}
function checkSelect(slt) {
//    if(slt.options[slt.selectedIndex].value==-1) {
    if(slt.options[slt.selectedIndex].className=='colorgray') {
        alert('请选择小类');
        select(slt, 0);
    }
}
function select(slt, n) {
    for(i=0;i<slt.options.length;i++) {
        if(i==n) slt.options[i].selected = true;
        else slt.options[i].selected = false;
    }
}

function wlkselectcheck(chkName, chkValue){
    var chk = document.getElementsByName(chkName);
    for (i=0;i<chk.length;i++){
        chk[i].checked = chkValue;
    }
}
/*

       功能：通用javascript脚本函数库
       包括：
                     1.Trim(str)－－去除字符串两边的空格
                     2.XMLEncode(str)－－对字符串进行XML编码
                     3.ShowLabel(str,str)－－鼠标提示功能（显示字符，提示字符）
                     4.IsEmpty(obj)－－验证输入框是否为空
                     5.IsInt(objStr,sign,zero)－－验证是否为整数
                     6.IsFloat(objStr,sign,zero)－－验证是否为浮点数
                     7.IsEnLetter(objStr,size)－－验证是否为26个字母

  */

/*
==================================================================
字符串操作
Trim(string):去除字符串两边的空格
==================================================================
*/

/*
==================================================================
LTrim(string):去除左边的空格
==================================================================
*/
function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
}

/*
==================================================================
RTrim(string):去除右边的空格
==================================================================
*/
function RTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}

/*
==================================================================
Trim(string):去除前后空格
==================================================================
*/
function Trim(str)
{
    return RTrim(LTrim(str));
}



/*
================================================================================
XMLEncode(string):对字符串进行XML编码
================================================================================
*/
function XMLEncode(str)
{
       str=Trim(str);
       str=str.replace("&","&amp;");
       str=str.replace("<","&lt;");
       str=str.replace(">","&gt;");
       str=str.replace("'","&apos;");
       str=str.replace("\"","&quot;");
       return str;
}

/*
================================================================================
验证类函数
================================================================================
*/

function IsEmpty(obj)
{
    obj=document.getElementsByName(obj).item(0);
    if(Trim(obj.value)=="")
    {
        alert("字段不能为空。");
        if(obj.disabled==false && obj.readOnly==false)
        {
            obj.focus();
        }
    }
}

/*
IsInt(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
功能：判断是否为整数、正整数、负整数、正整数+0、负整数+0
*/
function IsInt(objStr,sign,zero)
{
    var reg;
    var bolzero;

    if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }

    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }

    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }

    switch(sign)
    {
        case "+-":
            //整数
            reg=/(^-?|^\+?)\d+$/;
            break;
        case "+":
            if(!bolzero)
            {
                //正整数
                reg=/^\+?[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                //正整数+0
                //reg=/^\+?\d+$/;
                reg=/^\+?[0-9]*[0-9][0-9]*$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                //负整数
                reg=/^-[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                //负整数+0
                //reg=/^-\d+$/;
                reg=/^-[0-9]*[0-9][0-9]*$/;
            }
            break;
        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }

    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {
        return true;
    }
}

/*
IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
功能：判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
*/
function IsFloat(objStr,sign,zero)
{
    var reg;
    var bolzero;

    if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }

    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }

    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }

    switch(sign)
    {
        case "+-":
            //浮点数
            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            break;
        case "+":
            if(!bolzero)
            {
                //正浮点数
                reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //正浮点数+0
                reg=/^\+?\d+(\.\d+)?$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                //负浮点数
                reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //负浮点数+0
                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
            }
            break;
        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }

    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {
        return true;
    }
}


function isChineseName(name) {
    var regexChineseName = /[\u4E00-\u9FA5]{1,10}$/;//全中文,长度在1到10之间.
    if(regexChineseName.test(name)) {
        return true;
    }
    return false;
}

function isEnglishName(name) {
    var regexEnglishName = /[a-zA-Z]{2,}$/;//全英文字母,长度在2个以上.
    if(regexEnglishName.test(name)) {
        return true;
//        var vowelCount = getVowelCount(name);
//        if(vowelCount>0) //含元音字母aeioy或y.
//            return true;
//        else
//            return false;
    }
    return false;
}

function isGoodUrl(name) {
    var regexEnglishName = /^[a-zA-Z0-9]+$/;//全英文字母,长度在2个以上.
    if(regexEnglishName.test(name)) {
        return true;
//        var vowelCount = getVowelCount(name);
//        if(vowelCount>0) //含元音字母aeioy或y.
//            return true;
//        else
//            return false;
    }
    return false;
}

function isNormalName(givenName,familyName) {
    if ((isChineseName(givenName) || isEnglishName(givenName)) && (isChineseName(familyName) || isEnglishName(familyName))){
        return true;
    }

    return false;
}

function getDisplayName(givenName,familyName) {
    if (isChineseName(givenName)){
        return familyName+givenName;
    }if (isChineseName(givenName) && isChineseName(familyName)){
        return familyName + " " + givenName;
    }else{
        return givenName + " " + familyName;
    }
}

function isNameTrue(name) {
    if(name==null || name.length==0 || name=='null') {
        return false;
    }
    if(/([a-zA-Z\u4E00-\u9FA5\s])\1{2,}/.test(name)) {
        return false;
    }

    var names = name.split(/[\s]/);
    var len = names.length;

    if (len > 2){
        return false;
    }

    for (var i=0;i<len;i++){
        var splitName = names[i];
        if (!(isChineseName(splitName) || isEnglishName(splitName))){
            return false;
        }
    }
    return true;
}

function GetObjID(n,ObjName)
{var s=eval(document.forms[n].elements.length);
  for (var ObjID=0; ObjID <s; ObjID++)
    if ( document.forms[n].elements[ObjID].name == ObjName )
    {  return(ObjID);
       break;
    }
  return(-1);
}

function AddItem(n,ObjName, DesName, CatName)
{
  ObjID    = GetObjID(n,ObjName);
  DesObjID = GetObjID(n,DesName);
  k=0;
  i = document.forms[n].elements[ObjID].options.length;
  if (i==0)
    return;
  maxselected=0
  for (h=0; h<i; h++)
     if (document.forms[n].elements[ObjID].options[h].selected ) {
         k=k+1;
         maxselected=h+1;
         }
  if (maxselected>=i)
     maxselected=0;

  if (CatName != "")
    CatObjID = GetObjID(n,CatName);
  else
    CatObjID = 0;
  if ( ObjID != -1 && DesObjID != -1 && CatObjID != -1 )
  { jj = document.forms[n].elements[CatObjID].selectedIndex;
    if ( CatName != "")
    { CatValue = document.forms[n].elements[CatObjID].options[jj].text;
      CatCode  = document.forms[n].elements[CatObjID].options[jj].value;
    }
    else
      CatValue = "";
    i = document.forms[n].elements[ObjID].options.length;
    j = document.forms[n].elements[DesObjID].options.length;
    for (h=0; h<i; h++)
    { if (document.forms[n].elements[ObjID].options[h].selected )
      {  Code = document.forms[n].elements[ObjID].options[h].value;
         Text = document.forms[n].elements[ObjID].options[h].text;
         j = document.forms[n].elements[DesObjID].options.length;
         HasSelected = false;
         for (k=0; k<j; k++ ) {
//           if (document.forms[n].elements[DesObjID].options[k].text == Text)
           if (document.forms[n].elements[DesObjID].options[k].text == CatValue+"/"+Text)
           {  HasSelected = true;
              break;
           }
         }
         if ( HasSelected == false)
         { if (CatValue !="")
           { /*Location = GetLocation(n,DesObjID, CatValue);
             if ( Location == -1 )
             { document.forms[n].elements[DesObjID].options[j] =  new Option("---"+CatValue+"---",CatCode);
               document.forms[n].elements[DesObjID].options[j+1] = new Option(Text, Code);
             }
             else
             { InsertItem(n,DesObjID, Location+1);
               document.forms[n].elements[DesObjID].options[Location+1] = new Option(Text, Code);
             }*/
             document.forms[n].elements[DesObjID].options[j] = new Option(CatValue+"/"+Text, Code);
           }
           else
             document.forms[n].elements[DesObjID].options[j] = new Option(Text, Code);
         }
         document.forms[n].elements[ObjID].options[h].selected =false;
       }
    }
    document.forms[n].elements[ObjID].options[maxselected].selected =true;
  }
}

function InsertItem(n,ObjID, Location)
{ len=document.forms[n].elements[ObjID].length;
  for (counter=len; counter>Location; counter--)
  {   Value = document.forms[n].elements[ObjID].options[counter-1].value;
      Text2Insert  = document.forms[n].elements[ObjID].options[counter-1].text;
      document.forms[n].elements[ObjID].options[counter] = new Option(Text2Insert, Value);
  }
}

function GetLocation(n,ObjID, Value)
{ total=document.forms[n].elements[ObjID].length;
  for (pp=0; pp<total; pp++)
      if (document.forms[n].elements[ObjID].options[pp].text == "---"+Value+"---")
      {  return (pp);
         break;
      }
  return (-1);
}


function DeleteItem(n,ObjName)
{
  ObjID = GetObjID(n,ObjName);
  minselected=0;
  if ( ObjID != -1 )
  {
    for (i=document.forms[n].elements[ObjID].length-1; i>=0; i--)
    {  if (document.forms[n].elements[ObjID].options[i].selected)
       {
          if (minselected==0 || i<minselected)
            minselected=i;
          document.forms[n].elements[ObjID].options[i] = null;
       }
    }
    i=document.forms[n].elements[ObjID].length;

    if (i>0)  {
        if (minselected>=i)
           minselected=i-1;
        document.forms[n].elements[ObjID].options[minselected].selected=true;
    }
  }

    /*ObjID = GetObjID(n,ObjName);
      if ( ObjID != -1 )
      {  var  check_index = new Array();
         for (i=document.forms[n].elements[ObjID].length-1; i>=0; i--)
         {   if (document.forms[n].elements[ObjID].options[i].selected)
             {  check_index[i] = true;
                document.forms[n].elements[ObjID].options[i].selected = false;
             }
             else
                check_index[i] = false;
         }
         for (i=document.forms[n].elements[ObjID].length-1; i>=0; i--)
         {   if (check_index[i])
             {  info = document.forms[n].elements[ObjID].options[i].value;
                if (!(info.substring(2)=="00")) document.forms[n].elements[ObjID].options[i] = null
             }
         }
         var b=0
         var indexarr = new Array()
         for (i=0;i<document.forms[n].elements[ObjID].length;i++)
         {   value1 = document.forms[n].elements[ObjID].options[i].value
             if (value1.substring(2)=="00"){
               if (document.forms[n].elements[ObjID].length==i+1)
                  document.forms[n].elements[ObjID].options[i]=null
               else
               {  value2 = document.forms[n].elements[ObjID].options[i+1].value
                  if (value2.substring(2)=="00"){
                  indexarr[b]=i
                  b++
               }
         }
            }
        }
        for (var c=0;c<b;c++){
                 document.forms[n].elements[ObjID].options[indexarr[c]-c]=null
             }
      }*/

}

function SelectAllItems(n,ObjName)
{
  ObjID    = GetObjID(n,ObjName);
  len = document.forms[n].elements[ObjID].options.length;
  for(i=0;i<len;i++)
  	document.forms[n].elements[ObjID].options[i].selected =true;
}

function changeItem(n,ObjName, DesName){
  ObjID    = GetObjID(n,ObjName);
  DesObjID = GetObjID(n,DesName);

  k=0;
  i = document.forms[n].elements[ObjID].options.length;
  if (i==0)
    return;
  /*maxselected=0
  for (h=0; h<i; h++)
     if (document.forms[n].elements[ObjID].options[h].selected ) {
         k=k+1;
         maxselected=h+1;
         }
  if (maxselected>=i)
     maxselected=0;*/

  if ( ObjID != -1 && DesObjID != -1)
  {
    i = document.forms[n].elements[ObjID].options.length;
    j = document.forms[n].elements[DesObjID].options.length;
    for (h=0; h<i; h++)
    { if (document.forms[n].elements[ObjID].options[h].selected )
      {  Code = document.forms[n].elements[ObjID].options[h].value;
         Text = document.forms[n].elements[ObjID].options[h].text;
         j = document.forms[n].elements[DesObjID].options.length;

         document.forms[n].elements[DesObjID].options[j] = new Option(Text, Code);

         document.forms[n].elements[ObjID].options[h].selected =true;
       }
    }
//    document.forms[n].elements[ObjID].options[maxselected].selected =true;
  }

  DeleteItem(n,ObjName);
}
function checkScreenName(name){
    var regex = /^[a-zA-Z]{1}[a-zA-Z0-9]*$/;
    return regex.test(name);


}

function isAllDigit(str) {
  var ch, index;
  for(index = 0; index<str.length; index++) {
    ch = str.charAt(index);
    if (!(ch >= '0' && ch <= '9')) {
      return false;
    }
  }
  return true;
}


function DIVHref(divHref){
    window.location.href=divHref;
}

//show flash
function insertFlash(elm, url, w, h) {
 if (!document.getElementById(elm)) return;
 var str = '';
 str += '<object width="'+ w +'" height="'+ h +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">';
 str += '<param name="movie" value="'+ url +'">';
 str += '<param name="wmode" value="transparent">';
 str += '<param name="quality" value="high">';
 str += '<embed width="'+ w +'" height="'+ h +'" src="'+ url +'" quality="autohigh" wmode="opaque" type="application/x-shockwave-flash" plugspace="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>';
 str += '</object>';
 document.getElementById(elm).innerHTML = str;
}

function ismaxlength(obj){
    var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : "";
    if (obj.getAttribute && obj.value.length>mlength) {
        obj.value=obj.value.substring(0,mlength);
        alert("对不起，最大长度为"+mlength);
    }
}

//===============================cookie operation start===================================
function setCookie(name, value, expiry, path, domain, secure) {
    var nameString = name + "=" + value;
    var expiryString = (expiry == null) ? "" : " ;expires = " + expiry.toGMTString();
    var pathString = (path == null) ? "" : " ;path = " + path;
    var domainString = (path == null) ? "" : " ;domain = " + domain;
    var secureString = (secure) ? ";secure" : "";
    document.cookie = nameString + expiryString + pathString + domainString + secureString;
}

function getCookie(name) {
    var CookieFound = false;
    var start = 0;
    var end = 0;
    var CookieString = document.cookie;
    var i = 0;

    while (i <= CookieString.length) {
        start = i;
        end = start + name.length;
        if (CookieString.substring(start, end) == name) {
            CookieFound = true;
            break;
        }
        i++;
    }

    if (CookieFound) {
        start = end + 1;
        end = CookieString.indexOf(";", start);
        if (end < start)
            end = CookieString.length;
        return unescape(CookieString.substring(start, end));
    }
    return "";
}

//function deleteCookie(name) {
//    var expires = new Date();
//    expires.setTime(expires.getTime() - 1);
//
//    setCookie(name, "Delete Cookie", expires, null, null, false);
//}
function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
//===============================cookie operation end=====================================

//===============================preload images start==========================================
/*
    usage:
    imagePreload('001.gif', '002.gif', '003.gif', '004.gif', '005.gif');
*/
function imagePreload() {
  var imgPreload = new Image();
  for (i = 0; i < arguments.length; i++) {
    imgPreload.src = arguments[i];
  }
}
//===============================preload images end============================================

