var $ = function (_id)
{
  return document.getElementById(_id);
};

var setInnerHTML = function (_obj, _strers)
{
  var tobj = _obj;
  var tstrers = _strers;
  if (tobj)
  {
    tobj.innerHTML = '';
    var tagt = cls.tagt();
    if (tagt.indexOf('msie') >= 0 && tagt.indexOf('opera') < 0)
    {
      tstrers = '<div class="hidden">for IE</div>' + tstrers;
      tstrers = tstrers.replace(/<script([^>]*)>/gi, '<script$1 defer>');
      tobj.innerHTML = tstrers;
      tobj.removeChild(tobj.firstChild);
    }
    else
    {
      var tobj_next = tobj.nextSibling;
      var tobj_parent = tobj.parentNode;
      tobj_parent.removeChild(tobj);
      tobj.innerHTML = tstrers;
      if (tobj_next) tobj_parent.insertBefore(tobj, tobj_next);
      else tobj_parent.appendChild(tobj);
    };
  };
};

cls = {
  tagt: function()
  {
    return navigator.userAgent.toLowerCase();
  },
  tisie: function()
  {
    return (cls.tagt.indexOf('msie')!= -1 && document.all);
  },
  txmlhttp: function()
  {
    var txmlObj = null;
    if(window.XMLHttpRequest)
    {
      txmlObj = new XMLHttpRequest();
    }
    else
    {
      if(window.ActiveXObject)
      {
        txmlObj = new ActiveXObject('Microsoft.XMLHTTP');
      };
    };
    return txmlObj;
  },
  tigets: function (_strers, _callback, _arg1)
  {
    var tstrers = _strers;
    var tcallback = _callback;
    var targ1 = _arg1;
    var txmlhttp = new cls.txmlhttp();
    txmlhttp.onreadystatechange = function()
    {
      if (txmlhttp.readyState == 4)
      {
        if (txmlhttp.status == 200 || txmlhttp.status == 304)
        {
          if (targ1) tcallback(txmlhttp.responseText, targ1);
          else tcallback(txmlhttp.responseText);
        }
        else tcallback('$error$');
      };
    };
    txmlhttp.open('get', tstrers, true);
    txmlhttp.send(null);
  },
  tiposts: function (_strers, _strform, _callback, _arg1)
  {
    var tstrers = _strers;
    var tstrform = _strform;
    var tcallback = _callback;
    var targ1 = _arg1;
    var txmlhttp = new cls.txmlhttp();
    txmlhttp.onreadystatechange = function()
    {
      if (txmlhttp.readyState == 4)
      {
        if (txmlhttp.status == 200 || txmlhttp.status == 304)
        {
          if (targ1) tcallback(txmlhttp.responseText, targ1);
          else tcallback(txmlhttp.responseText);
        }
        else tcallback('$error$');
      };
    };
    txmlhttp.open('post', tstrers, true);
    txmlhttp.setRequestHeader('Content-Length', tstrers.length);
    txmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    txmlhttp.send(tstrform);
  },
  treparameter: function(_para, _strers, _value)
  {
    var tpara = _para;
    var tstrers = _strers;
    var tvalue = _value;
    var tmpstr = '';
    if (!tpara) tmpstr = '?' + tstrers + '=' + tvalue;
    else
    {
      var tmypara = '&' + tpara.substr(1);
      if (tmypara.indexOf('&' + tstrers + '=') == -1) tmpstr = tpara + '&' + tstrers + '=' + tvalue;
      else
      {
        var tAry1 = tmypara.split('&' + tstrers + '=');
        var tmpvalue = tAry1[1];
        if (tmpvalue.indexOf('&') != -1)
        {
          var tAry2 = tmpvalue.split('&');
          tmpvalue = tAry2[0];
        };
        tmpstr = tmypara.replace('&' + tstrers + '=' + tmpvalue, '&' + tstrers + '=' + tvalue);
        tmpstr = '?' + tmpstr.substr(1);
      };
    };
    return tmpstr;
  },
  tgetMBcString: function(_strers, _length)
  {
    var tstrers = _strers;
    var tlength = _length;
    var tstring = '';
    var tstrings = '0123456789abcdefghijklmnopqrstuvwxyz~!@#$%^&*()';
    var tmpstring = '';
    var tMBLength = 0;
    if (tstrers)
    {
      for (ti = 0; ti < tstrers.length; ti ++)
      {
        tMBLength += 1;
        tstring = tstrers.substr(ti, 1).toLowerCase();
        if (tstrings.indexOf(tstring) == -1) tMBLength += 1;
        if (tMBLength <= tlength) tmpstring += tstring;
      };
    };
    if (tMBLength > tlength) tmpstring += '..';
    return tmpstring;
  },
  tgetNum: function(_strers, _default)
  {
    var tstrers = _strers;
    var tdefault = _default;
    var tnum = tdefault;
    try
    {
      var tnum1 = parseInt(tstrers);
      if (!isNaN(tnum1)) tnum = tnum1;
    } catch(e){};
    return tnum;
  },
  tgetParameter: function(_strers, _strkey)
  {
    var tmpvalue = '';
    var tstrers = _strers;
    var tstrkey = _strkey;
    if (tstrers && tstrkey)
    {
      var tiname, tivalue, ticount;
      var tinum = tstrers.indexOf('?');
      tstrers = tstrers.substr(tinum + 1);
      var tarrtmp = tstrers.split('&');
      for(ticount = 0; ticount < tarrtmp.length; ticount ++)
      {
        tinum = tarrtmp[ticount].indexOf('=');
        if(tinum > 0)
        {
          tiname = tarrtmp[ticount].substring(0, tinum);
          tivalue = tarrtmp[ticount].substr(tinum + 1);
          if (tiname == tstrkey) tmpvalue = tivalue;
        };
      };
    };
    return tmpvalue;
  },
  tgetCheckboxsValue: function(_strname)
  {
    var tname = _strname;
    var tmpvalue = '';
    var tobjs = document.getElementsByName(tname);
    if (tobjs)
    {
      for (ti = 0; ti < tobjs.length; ti ++)
      {
        if (tobjs[ti].checked) tmpvalue += ',' + tobjs[ti].value;
      };
    };
    if (tmpvalue != '') tmpvalue = tmpvalue.substr(1);
    return tmpvalue;
  },
  thtmlEncode: function(_strers)
  {
    var tstrers = _strers;
    tstrers = tstrers.replace(/(\&)/g, '&amp;');
    tstrers = tstrers.replace(/(\>)/g, '&gt;');
    tstrers = tstrers.replace(/(\<)/g, '&lt;');
    tstrers = tstrers.replace(/(\")/g, '&quot;');
    return tstrers;
  },
  tquotEncode: function(_strers)
  {
    var tstrers = _strers;
    tstrers = tstrers.replace(/(\")/g, '&quot;');
    return tstrers;
  },
  tselCheckboxs: function(_obj, _strname)
  {
    var tobj = _obj;
    var tname = _strname;
    var tobjs = document.getElementsByName(tname);
    if (tobj && tobjs)
    {
      for (ti = 0; ti < tobjs.length; ti ++) tobjs[ti].checked = tobj.checked;
    };
  },
  tauthor: 'jetiben',
  temail: 'jetiben@hotmail.com',
  tsysinfo: 'JTBC[.NET]',
  twebsite: 'http://www.jetiben.com/',
  tversion: '1.0.0.0'
};

cls.doc = {
  tscrollTop: function()
  {
    return document.documentElement.scrollTop;
  },
  tscrollLeft: function()
  {
    return document.documentElement.scrollLeft;
  },
  tscrollWidth: function()
  {
    return document.documentElement.scrollWidth;
  },
  tscrollHeight: function()
  {
    return document.documentElement.scrollHeight;
  },
  tclientWidth: function()
  {
    return document.documentElement.clientWidth;
  },
  tclientHeight: function()
  {
    return document.documentElement.clientHeight;
  }
};

cls.mask = {
  tWidth: 0,
  tHeight: 0,
  tclientWidth: null,
  tclientHeight: null,
  tSetDivStyle: function()
  {
    var tobj1 = $('jMask');
    var tobj2 = $('jMaskDIV');
    if (tobj1 && tobj2)
    {
      tobj2.style.marginTop = (cls.doc.tscrollTop() - Math.floor(cls.mask.tHeight / 2)) + 'px';
      if (cls.mask.tclientWidth != cls.doc.tclientWidth())
      {
        cls.mask.tclientWidth = cls.doc.tclientWidth();
        tobj1.style.width = cls.doc.tclientWidth() + 'px';
        if (cls.doc.tscrollWidth() > cls.doc.tclientWidth()) tobj1.style.width = cls.doc.tscrollWidth() + 'px';
      };
      if (cls.mask.tclientHeight != cls.doc.tclientHeight())
      {
        cls.mask.tclientHeight = cls.doc.tclientHeight();
        tobj1.style.height = cls.doc.tclientHeight() + 'px';
        if (cls.doc.tscrollHeight() > cls.doc.tclientHeight()) tobj1.style.height = cls.doc.tscrollHeight() + 'px';
      };
      setTimeout('cls.mask.tSetDivStyle()', 60);
    };
  },
  tCreateDiv: function()
  {
    var tDiv = document.createElement('div');
    tDiv.setAttribute('id', 'jMask');
    tDiv.style.position = 'absolute';
    tDiv.style.top = '0';
    tDiv.style.left = '0';
    tDiv.style.background = '#000000';
    tDiv.style.filter = 'Alpha(Opacity=30)';
    tDiv.style.opacity = '0.3';
    tDiv.style.width = cls.doc.tscrollWidth() + 'px';
    tDiv.style.height = cls.doc.tscrollHeight() + 'px';
    tDiv.style.zIndex = '999999998';
    document.body.appendChild(tDiv);
    tDiv = document.createElement('div');
    tDiv.setAttribute('id', 'jMaskDIV');
    tDiv.style.position = 'absolute';
    tDiv.style.top = '50%';
    tDiv.style.left = '50%';
    tDiv.style.zIndex = '999999999';
    document.body.appendChild(tDiv);
    cls.mask.tclientWidth = cls.doc.tclientWidth();
    cls.mask.tclientHeight = cls.doc.tclientHeight();
    setTimeout('cls.mask.tSetDivStyle()', 60);
  },
  tShow: function(_strHTML)
  {
    var tstrHTML = _strHTML;
    if (tstrHTML)
    {
      var tobj = $('jMaskDIV');
      if (!tobj)
      {
        cls.mask.tCreateDiv();
        tobj = $('jMaskDIV');
      };
      if (tobj)
      {
        tobj.style.display = 'none';
        setInnerHTML(tobj, tstrHTML);
      };
    };
  },
  tSetStyle: function()
  {
    var tobj = $('jMaskDIV');
    if (tobj)
    {
      tobj.style.display = 'block';
      cls.mask.tWidth = tobj.offsetWidth;
      cls.mask.tHeight = tobj.offsetHeight;
      tobj.style.marginLeft = (0 - Math.floor(cls.mask.tWidth / 2)) + 'px';
      tobj.style.marginTop = (cls.doc.tscrollTop() - Math.floor(cls.mask.tHeight / 2)) + 'px';
    };
  },
  tClose: function()
  {
    var tobj1 = $('jMask');
    var tobj2 = $('jMaskDIV');
    if (tobj1 && tobj2)
    {
      document.body.removeChild(tobj1);
      document.body.removeChild(tobj2);
    };
  }
};