/*
Author   :  adamlee - ajunlee(at)gmail.com
Blog     :  http://blog.blueshop.com.tw/ajun
Date     :  2006/9/14
Version  :  0.3
--
update   :  (2006/9/14)
comment  :  新增class "ShowLenLimit" 設定,限制輸入字數的長度
--
update   :  (2006/9/21)
comment  :  修正用滑鼠貼上無法計算的問題,加上onchange時的判斷
--
*/
function addEvent( obj, type, fn )
{
  if (obj.addEventListener)
    obj.addEventListener( type, fn, false );
  else if (obj.attachEvent)
  {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
    obj.attachEvent( "on"+type, obj[type+fn] );
  }
}

function CountChar(){
  var intChars =  parseInt(this.value.length);
  var intMax = this.getAttribute('maxlength');
  var objMsg = document.getElementById("div" + this.id);
  objMsg.innerHTML = "目前字數 : " + intChars + " , 剩餘字數 : " + (intMax - intChars);
}

function LimitChar(){
  var intChars =  parseInt(this.value.length);
  var intMax = this.getAttribute('maxlength');
  var objMsg = document.getElementById("div" + this.id);
  if (intChars > intMax)
  {
    this.value = this.value.substring(0,intMax);
    objMsg.innerHTML = "<font color='red'>目前字數 : " + intMax + " , 剩餘字數 : 0</font>";
  }else{
    objMsg.innerHTML = "目前字數 : " + intChars + " , 剩餘字數 : " + (intMax - intChars);
  }
}

function TbxLenInit(){
  if (document.getElementById && document.createElement && document.appendChild) {
    var tbxs = document.getElementsByTagName('textarea');
    var tbx;
    for (var i = 0; i < tbxs.length; i++) {
      tbx = tbxs[i];
      if (/\bShowLen\b/.test(tbx.className)) {
        var newDiv = document.createElement("div");
        var intChars =  parseInt(tbx.value.length);
        newDiv.setAttribute("id", "div" + tbx.id);
        var intMax = eval( tbx.getAttribute('maxlength') );
        newDiv.innerHTML = "目前字數 : " + intChars + ", 剩餘字數 : " + (intMax - intChars);
        //newDiv.innerHTML = "目前字數 : 0, 剩餘字數 : " + tbx.getAttribute('maxlength');
        var tbxParent = tbx.parentNode;
        tbxParent.insertBefore(newDiv, tbx);
        tbx.onkeyup = CountChar;
        tbx.onchange = LimitChar;
      }else if(/\bShowLenLimit\b/.test(tbx.className)){
        var newDiv = document.createElement("div");
        var intChars =  parseInt(tbx.value.length);
        newDiv.setAttribute("id", "div" + tbx.id);
        var intMax = eval(tbx.getAttribute('maxlength') );
        newDiv.innerHTML = "目前字數 : " + intChars + ", 剩餘字數 : " + (intMax - intChars);
        //newDiv.innerHTML = "目前字數 : 0, 剩餘字數 : " + tbx.getAttribute('maxlength');
        var tbxParent = tbx.parentNode;
        tbxParent.insertBefore(newDiv, tbx);
        tbx.onkeyup = LimitChar;
        tbx.onchange = LimitChar;
      }
    }
  }
}
addEvent(window, 'load', TbxLenInit);
