var CDBTTimeoutSaveObject;
function onSubmitBtn(obj) {
    obj.disabled=true; 
    obj.form.submit(); 
    
    CDBTTimeoutSaveObject=obj;
    
    setTimeout('CDBTTimeoutSaveObject.disabled=false;',15000);
    
    return(true);        
}
function isArray(obj) {
    return obj.constructor == Array;
}

/* CDBColumnRef*/
  function buildSelect(selObj,dataArray) {
        // alert(selObj.options[1]);
        for (i=0;i<dataArray.length;i++) {
                    selObj.options[i]=new Option(dataArray[i][1], dataArray[i][0], false, dataArray[i][2]);
        }
        selObj.options.length=dataArray.length;
  }
  function filterFunc(obj,sStr,allData,unfilteredValue,allShowSrcValue) {
      var newData=new Array();
      sStr=sStr.toLowerCase();
      // alert(sStr);
      for (i=0;i<allData.length;i++) {
          if ( 
                (allData[i][3].toLowerCase()==sStr) || 
                (allData[i][3].toLowerCase()==unfilteredValue) ||
                (sStr==allShowSrcValue)
             ) {
               if (newData.length==0) {allData[i][2]=true;}
               newData[newData.length]=allData[i];
          } else {
             allData[i][2]=false;
          }
      }
      buildSelect(obj,newData);
  }
  function searchFunc(obj,sStr,allData) {
      var newData=new Array();
      sStr=sStr.toLowerCase();
      for (i=0;i<allData.length;i++) {
          if (allData[i][1].toLowerCase().indexOf(sStr)>=0) {
               if (newData.length==0) {allData[i][2]=true;}
               newData[newData.length]=allData[i];
          } else {
             allData[i][2]=false;
          }
      }
      buildSelect(obj,newData);
      if (obj.onchange) {
            obj.onchange();
      }
  }



  
  
  
  
/* custom functions */
function morgFilterFunc(obj,sStr,allData,unfilteredValue,allShowSrcValue) {
  var newData=new Array();
  // sStr=sStr.toLowerCase();
  if (typeof sStr == "string") {
    var nStr=new Array();
    nStr[0]=sStr;
  } else {
    nStr=sStr;
  }
  
  // alert(nStr);
  
  for (i=0;i<allData.length;i++) {
      cv=allData[i][3];
      findok=false;
      for (j=0;j<cv.length;j++) {
          for (k=0;k<nStr.length;k++) {
              sStr=nStr[k].toLowerCase();  
              if ( 
                    (cv[j]==sStr) || 
                    (cv[j]==unfilteredValue)  ||
                    (sStr==allShowSrcValue) 
                  ) {
                    findok=true;
                    break;
               }
          }
      }
      if (findok) {
        // if (newData.length==0) {allData[i][2]=true;}
        newData[newData.length]=allData[i];
      } else {
        allData[i][2]=false;
      }
  }
  buildSelect(obj,newData);
}

