var listTable = new Object;

listTable.filter = new Object;


/**
 * 创建一个可编辑区
 */
listTable.edit = function(obj, act, id)
{
  var tag = obj.firstChild.tagName;

  if (typeof(tag) != "undefined" && tag.toLowerCase() == "input")
  {
    return;
  }

  /* 保存原始的内容 */
  var org = obj.innerHTML;
  var val = Browser.isIE ? obj.innerText : obj.textContent;

  /* 创建一个输入框 */
  var txt = document.createElement("INPUT");
  txt.value = (val == 'N/A') ? '' : val;
  txt.style.width = (obj.offsetWidth + 12) + "px" ;

  /* 隐藏对象中的内容，并将输入框加入到对象中 */
  obj.innerHTML = "";
  obj.appendChild(txt);
  txt.focus();

  /* 编辑区输入事件处理函数 */
  txt.onkeypress = function(e)
  {
    var evt = Utils.fixEvent(e);
    var obj = Utils.srcElement(e);

    if (evt.keyCode == 13)
    {
      obj.blur();
      return false;
    }

    if (evt.keyCode == 27)
    {
      obj.parentNode.innerHTML = org;
    }
  }

  /* 编辑区失去焦点的处理函数 */
  txt.onblur = function(e)
  {
    if (Utils.trim(txt.value).length > 0)
    {
      //alert(act+"('"+Utils.trim(txt.value)+"',"+id+",'"+obj.id+"')");
      eval(act+"('"+Utils.trim(txt.value)+"',"+id+",'"+obj.id+"')");
      listTable.loadList();
    }
    else
    {
      obj.innerHTML = org;
    }
  }
}

/**
 * 切换状态
 */
listTable.toggle = function(obj, act, id)
{
  var val = (obj.src.match(/yes.gif/i)) ? 0 : 1;
  eval(act+"("+val+","+id+",'"+obj.id+"')");
}


/**
 * 切换排序方式
 */
listTable.sort = function(sort_by)
{
  this.filter.sort_by = sort_by; 
  if (this.filter.sort_by == sort_by)
  {
    this.filter.sort_order = this.filter.sort_order == "DESC" ? 'ASC' : 'DESC';
  }
  this.loadList(); 
}

/**
 * 翻页
 */
listTable.gotoPage = function(page)
{ 
  if (page != null) this.filter['page'] = page;
  if (this.filter['page'] > this.pageCount) this.filter['page'] = 1;
  this.filter['page_size'] = this.getPageSize();
  this.loadList(); 
}



/**
 * 删除列表中的一个记录
 */
listTable.remove = function(id, cfm)
{
  if (confirm(cfm))
  {
   eval("xajax_removeOneRecord("+id+")");
   listTable.loadList();
  }
}

listTable.gotoPageFirst = function()
{
  if (this.filter.page > 1)
  {
    listTable.gotoPage(1);
  }
}

listTable.gotoPagePrev = function()
{
  if (this.filter.page > 1)
  {
    listTable.gotoPage(this.filter.page - 1);
  }
}

listTable.gotoPageNext = function()
{
  if (this.filter.page < listTable.pageCount)
  {
    listTable.gotoPage(parseInt(this.filter['page']) + 1);
  }
}

listTable.gotoPageLast = function()
{
  if (this.filter.page < listTable.pageCount)
  {
    listTable.gotoPage(listTable.pageCount);
  }
}

listTable.changePageSize = function(e)
{
    var evt = Utils.fixEvent(e);
    if (evt.keyCode == 13)
    {   
        listTable.pageCount = Math.ceil(listTable.recordCount/listTable.getPageSize());
        this.filter.page_size = listTable.getPageSize();
        listTable.gotoPage(this.filter.page);
        return false;
    };
}

listTable.selectAll = function(obj, chk)
{
  if (chk == null)
  {
    chk = 'checkboxes';
  }

  var elems = obj.form.getElementsByTagName("INPUT");

  for (var i=0; i < elems.length; i++)
  {
    if (elems[i].name == chk || elems[i].name == chk + "[]")
    {
      elems[i].checked = obj.checked;
    }
  }
}


listTable.getPageSize = function()
{
  var ps = 15;
  var pageSize ;
  pageSize = window.document.getElementById("pageSize");
  if (pageSize)
  {
    ps = Utils.isInt(pageSize.value) ? pageSize.value : 15;
    document.cookie = "boleme[page_size]=" + ps + ";";
  }
  return ps;
}

