function TrimStr(str)
{
   return str.replace(/^[ \t\r\n]+|[ \t\r\n]+$/g, "");
}

function IsDigitStr(str, ignoreCharList)
{
   if(null != ignoreCharList)
      var re = new RegExp("[^0-9" + ignoreCharList + "]","g");
   else
      var re = /[^0-9]/g;
   
   if(str.search(re) == -1)
      return true;
   else
      return false;
}

function IsAlphaStr(str, ignoreCharList)
{
   if(null != ignoreCharList)
      var re = new RegExp("[^a-zA-Z" + ignoreCharList + "]","g");
   else
      var re = /[^a-zA-Z]/g;
   
   if(str.search(re) == -1)
      return true;
   else
      return false;
}

function IsAlNumStr(str, ignoreCharList)
{
   if(null != ignoreCharList)
      var re = new RegExp("[^0-9a-zA-Z" + ignoreCharList + "]","g");
   else
      var re = /[^a-zA-Z]/g;
   
   if(str.search(re) == -1)
      return true;
   else
      return false;
}

function IncludeLib(libSrc)
{
   var lib = document.createElement("SCRIPT");
   
   lib.src = libSrc;
   document.getElementsByTagName("HEAD")[0].appendChild(lib);
   return true;
}

function GenCookieList(cookieStr)
{
   /* init cookie parse */
   var rawList = null;
   var cookieList = new Array();
   var sepPos = -1;
   var fSave = false;
   
   if(null == cookieStr)
      rawList = document.cookie.split(";");
   else
      rawList = cookieStr.split(";");
    
   /* parse cookie with name-value pair */
   for(var i = 0; i < rawList.length; i++)
   {
      if((sepPos = rawList[i].indexOf("=")) < 1)
         continue;
      cookieList[TrimStr(rawList[i].substring(0, sepPos))] = rawList[i].substr(sepPos+1);
      fSave = true;
   }
   
   if(fSave)
      return cookieList;
   else
      return null;
}

/* when string is more than n byte use ... to replace  */
function CutString(n, str)
{  
   var i = 0;
   var j = 0;
   var code = 0;
   var tradoff = 0;
   var ret = "";
   for(i = 0; i < str.length; i++)
   {
      code = str.charCodeAt(i);
      if(code < 127)
      {
         if(code >= 65 && code <=90
            || code >= 35 && code <=38
            || code == 47 || code == 63 
            || code == 60 || code == 62
            || code == 92 || code == 94
            || code == 64)
            {
             j++; 
             tradoff++;
            }
         j++;
      }
      else
      {
         j=j+2;
      }
      if(tradoff == 2)
      {
         tradoff = 0;
         j--;
      }
      if(j > n)
         break;
      ret = ret + str.charAt(i);
   }
   if(i != str.length)
      ret = ret + "...";
   return ret;
}

/* encode "<", ">", "'", """, "\" */
function EntityHtmlEncode(str)
{
   str = str.replace(/</g, "&lt;");
   str = str.replace(/>/g, "&gt;");
   str = str.replace(/\'/g, "&#39;");
   str = str.replace(/\"/g, "&#34;");
   str = str.replace(/\\/g, "&#92;");   
   return str;
}


function UTF8EncodeLen (string) 
{
   string = string.replace(/\r\n/g,"\n");
   var utflen = 0;
   
   for (var n = 0; n < string.length; n++) 
   {
      var c = string.charCodeAt(n);
      if (c < 128) 
      {
         utflen += 1;
      }
      else if((c > 127) && (c < 2048)) 
      {
         utflen += 2;
      }
      else if((c > 2047) && (c < 65536)) 
      {
         utflen += 3;
      }
      else if((c > 65535) && (c < 2097152)) 
      {
         utflen += 4;
      }
      else
      {
         utflen += 5;
      }
   }
      return utflen;
}

function CheckLens(obj, maxLen)
{
   if(UTF8EncodeLen(obj.value) > maxLen)
   {
       alert(MSG_OUTFIELD_LENS);
       while(UTF8EncodeLen(obj.value) > maxLen)
       {
         obj.value = obj.value.substring(0, obj.value.length-1);
       }
   }
}

function UrlToPost(url)
{
   var postForm = document.createElement('form')
   urlPart = url.split("?");      
   postForm.action = urlPart[0];
   postForm.method = "post";
   paramPart = urlPart[1].split("&");
   for(i = 0; i < paramPart.length; i++)
   {
      paramPair = paramPart[i].split("=");    
      var input = document.createElement("input");
      input.type='hidden';
      paramPair[0] = paramPair[0].replace(/\+/g, " ");
      paramPair[1] = paramPair[1].replace(/\+/g, " ");
      input.name = decodeURIComponent(paramPair[0]);
      input.value = decodeURIComponent(paramPair[1]);
      postForm.appendChild(input);
    }  
   
   document.getElementsByTagName("BODY")[0].appendChild(postForm);
   postForm.submit();
}
