//version:1.0
//author: BrianChao
//locale : taiwan

function TableBeanTool(obj){
  this.oBj = obj;
  this.oTR = obj.parentNode.parentNode;
  this.oTable = obj.parentNode.parentNode.parentNode;
  this.arrTD = this.oTR.childNodes;
  this.findObjByName =  oleFindObjByName;
  this.findLinkObjByName =  oleFindLinkObjByName;
  this.setValueByName =  oleSetValueByName;
  this.setLinkValueByName = oleSetLinkValueByName;
  this.findElementByID = oleFindElementByID;
  this.getObjKey = oleGetObjKey;
  this.isRepeat = oleIsRepeat;
  this.sumOfKey = oleSumOfKey;
}

function oleFindElementByID(attName){
  try{
    return document.getElementById(attName);
  }
  catch(e){
    return null;
  }
}

function oleFindObjByNameA(oTRS,attName){
  var arInput = oTRS.getElementsByTagName("input");
  for(i=0;i<arInput.length;i++){
            var temp = arInput[i].getAttribute("id");
            if(temp.indexOf(attName)>-1){
                    return arInput[i];
            }
  }
  return null;
}

function oleSumOfKey(key){
  var sum = 0;
  var arrNodes = this.oTable.childNodes;
  for(j=0;j<arrNodes.length;j++){
    var oInput = oleFindObjByNameA(arrNodes[j],key);
    if(oInput){
        if(oInput.value!="")
          sum = sum + eval(oInput.value);
    }
  }

  return sum;
}

function oleIsRepeat(key,value){
  var checkId = 0;
  var arrNodes = this.oTable.childNodes;
  for(j=0;j<arrNodes.length;j++){
    var oInput = oleFindObjByNameA(arrNodes[j],key);
    if(oInput){
        if(value==oInput.value)
         checkId++;
    }
  }
//  alert("checkId="+checkId)
  if(checkId>0)
    return true;
  else
    return false;
}

function oleGetObjKey(){
    var arrKey = this.oBj.id.split("_");
    var sbKey = new StringBuffer();
    for(i=0;i<arrKey.length-2;i++){
        sbKey.append("_"+arrKey[i]);
    }
    var key = sbKey.toString().substring(1,sbKey.toString().length);
    return key;
}

function oleFindObjByName(attName){
  for(i=0;i<this.arrTD.length;i++){
        if(this.arrTD[i].childNodes[0].getAttribute("id")){
            var temp = this.arrTD[i].childNodes[0].getAttribute("id");
            if(temp.indexOf(attName)>-1){
                    return this.arrTD[i].childNodes[0];
            }
        }
  }
  var arInput = this.oTR.getElementsByTagName("input");
  for(i=0;i<arInput.length;i++){
            var temp = arInput[i].getAttribute("id");
            if(temp.indexOf(attName)>-1){
                    return arInput[i];
            }
  }
  return null;
}

function oleFindLinkObjByName(attName){
  var tObj = this.findObjByName(attName);
//  alert(tObj)
  if(tObj){
    var lObj = tObj.parentNode.childNodes[1];
    return lObj;
  }
  else
    return null;
}

function oleSetValueByName(attName,attValue){
    var tObj = this.findObjByName(attName);
    tObj.value = attValue;
}

function oleSetLinkValueByName(attName,attValue,attHref){
    var tObj = this.findLinkObjByName(attName);
    tObj.innerText = attValue;
    tObj.href = attHref;
}

function form_submit_handlerA(objA)
{
	for(var itr=0;itr < objA.elements.length;itr++)
	{
		if(objA.elements[itr].validationset &&
	   !objA.elements[itr].validationset.validate())
		{
		  return false;
		}
	}
	if(objA.addnlvalidation)
	{
	  str =" var ret = "+objA.addnlvalidation+"()";
	  eval(str);
    if(!ret) return ret;
	}
	return true;
}

function oleLinkTarget(obj){
	var tbTool = new TableBeanTool(obj);
    var key = tbTool.getObjKey();
    var oLink = null;
    if(key!="")
      oLink = tbTool.findLinkObjByName(key);
    else
      oLink = document.getElementById(obj.id+"_link");
    oLink.target = "new_"+new Date().getTime();
}
