﻿// 发送ajax的GET请求获取指定资源记录的字段和控件值。
// 参数：
//      strResID：资源ID
//      strRecID：记录ID
//      strRtnColValue=1：返回字段值
//      strRtnCtrlValue=1：返回控件值，控件名称: TABxxx___yyy   xxx是资源ID，yyy是字段名称
//      strMainCondColName1：没有记录ID，但可以提供的关键字段名称
//      strMainCondColValue1：没有记录ID，但可以提供的关键字段名称的值
//      strCol1, strCol2, ... ：仅返回指定名称的字段值
function F3AjaxGetRecord(strResID, strRecID, strRtnColValue, strRtnCtrlValue, strMainCondColName1, strMainCondColValue1, strMainCondColName2, strMainCondColValue2, strMainCondColName3, strMainCondColValue3, strOrderBy, strCol1, strCol2, strCol3, strCol4, strCol5, strCol6, strCol7, strCol8, strCol9, strCol10){
  try{
    if (!strResID){
      alert("窗体事件Javascript的F3AjaxGetRecord()函数的参数定义出错，没有指定资源ID。");
      return null;
    }
    if (!strRecID && !strMainCondColName1){
      alert("窗体事件Javascript的F3AjaxGetRecord()函数的参数定义出错，没有提供记录ID和关键字段名称，无法获取记录信息。");
      return null;
    }
    if (strRtnColValue != 1 && strRtnCtrlValue != 1){
      alert("窗体事件Javascript的F3AjaxGetRecord()函数的参数定义出错，即不返回字段值也不返回控件值。");
      return null;
    }
    
    //发送Ajax请求
    var strUrl = "/cmsweb/cmsservice/F3ServiceGetRecord.aspx?mnuresid=" + strResID + "&mnurecid=" + strRecID;
    strUrl += "&strRtnColValue=" + strRtnColValue + "&strRtnCtrlValue=" + strRtnCtrlValue;
    strUrl += "&strMainCondColName1=" + escape(strMainCondColName1) + "&strMainCondColValue1=" + escape(strMainCondColValue1);
    strUrl += "&strMainCondColName2=" + escape(strMainCondColName2) + "&strMainCondColValue2=" + escape(strMainCondColValue2);
    strUrl += "&strMainCondColName3=" + escape(strMainCondColName3) + "&strMainCondColValue3=" + escape(strMainCondColValue3);
    strUrl += "&strOrderBy=" + escape(strOrderBy);
    strUrl += "&strCol1=" + escape(strCol1) + "&strCol2=" + escape(strCol2) + "&strCol3=" + escape(strCol3) + "&strCol4=" + escape(strCol4) + "&strCol5=" + escape(strCol5);
    strUrl += "&strCol6=" + escape(strCol6) + "&strCol7=" + escape(strCol7) + "&strCol8=" + escape(strCol8) + "&strCol9=" + escape(strCol9) + "&strCol10=" + escape(strCol10);
    var xmlReq = F3AjaxSendHttpRequest("GET", strUrl, false);
    var xmlDoc = xmlReq.responseXML;
    var xmlNod = xmlDoc.getElementsByTagName('F3AJAX_DATA');
    return xmlNod;
  }catch(ex){
    return null;
  }
}

// 发送ajax的POST请求获取SQL语句运行返回的值
// 参数：
//      strSql：SQL语句
function F3AjaxGetColValue(strSql){
  try{
    if (!strSql) return "";
    
    //发送Ajax请求
    var strUrl = "/cmsweb/cmsservice/F3ServiceGetSqlValue.aspx";
    var strPostBody = "f3svc_sql=" + escape(strSql);
    var xmlReq = F3AjaxSendHttpRequest("POST", strUrl, false, strPostBody);
    var xmlDoc = xmlReq.responseXML;
    var xmlNod = xmlDoc.getElementsByTagName('F3AJAX_DATA');

    //返回：受影响的记录数
    var intNodNum = F3ParseInt(xmlNod.item(0).childNodes.length);
    if (intNodNum <= 0) return ""; //没有返回信息
    return xmlNod.item(0).childNodes.item(0).text;
  }catch(ex){
    return "";
  }
}

// 发送ajax的POST请求获取指定资源记录的字段和控件值。
// 参数：
//      strValueColName：值的字段内部名称
//      strTextColName：显示内容的字段内部名称
//      strSql：SQL语句
function F3AjaxGetColValueBySql(strValueColName, strTextColName, strSql){
  try{
    if (!strValueColName || !strTextColName){
      alert("窗体事件Javascript的F3AjaxGetColValueBySql()函数必须指定值字段和显示字段");
      return null;
    }
    if (!strSql){
      alert("窗体事件Javascript的F3AjaxGetColValueBySql()函数必须指定SQL");
      return null;
    }
    
    //发送Ajax请求
    var strUrl = "/cmsweb/cmsservice/F3ServiceGetColValueBySql.aspx";
    var strPostBody = "f3svc_valcol=" + escape(strValueColName) + "&f3svc_textcol=" + escape(strTextColName) + "&f3svc_sql=" + escape(strSql);
    var xmlReq = F3AjaxSendHttpRequest("POST", strUrl, false, strPostBody);
    var xmlDoc = xmlReq.responseXML;
    var xmlNod = xmlDoc.getElementsByTagName('F3AJAX_DATA');
    return xmlNod;
  }catch(ex){
    return null;
  }
}

// 发送ajax的POST请求，设置1条记录的字段值
// 参数：
//      strTable：表格名称
//      strAllowInsert=1：允许新建记录
//      strSqlWhere：修改记录的查询条件
//      strColValues：多个字段和值对，格式： colname1=xxx&colvalue1=yyy&colname2=xxx&colvalue2=yyy&...   xxx和yyy必须用escape()函数进行编码转换
function F3AjaxSaveRecord(intAllowInsert, intAllowUpdate, strTable, strSqlWhere, strColValues){
  try{
    if (!strTable || !strSqlWhere || !strColValues){
      return false;
    }
    
    //发送Ajax请求
    var strUrl = "/cmsweb/cmsservice/F3ServiceSaveRecord.aspx";
    var strPostBody = strColValues + "&f3svc_table=" + escape(strTable) + "&f3svc_sqlwhere=" + escape(strSqlWhere) + "&f3svc_allowinsert=" + intAllowInsert + "&f3svc_allowupdate=" + intAllowUpdate;
    var xmlReq = F3AjaxSendHttpRequest("POST", strUrl, false, strPostBody);
    var xmlDoc = xmlReq.responseXML;
    var xmlNod = xmlDoc.getElementsByTagName('F3AJAX_DATA');

    //判断返回结果
    var intNodNum = F3ParseInt(xmlNod.item(0).childNodes.length);
    if (intNodNum <= 0) return false; //没有返回信息
    var strNodText = xmlNod.item(0).childNodes.item(0).text;
    if (strNodText == "1"){
      return true;
    }else{
      return false;
    }
  }catch(ex){
    return false;
  }
}

// 发送ajax的POST请求，运行指定SQL语句
// 参数：
//      strSqlWithoutEncode：未经页面编码的SQL语句。
// 返回：
//      受影响的记录数
function F3AjaxRunSql(strSqlWithoutEncode){
  try{
    if (!strSqlWithoutEncode){
      return false;
    }
    
    //发送Ajax请求
    var strUrl = "/cmsweb/cmsservice/F3ServiceRunSql.aspx";
    var strPostBody = "f3svc_sql=" + escape(strSqlWithoutEncode);
    var xmlReq = F3AjaxSendHttpRequest("POST", strUrl, false, strPostBody);
    var xmlDoc = xmlReq.responseXML;
    var xmlNod = xmlDoc.getElementsByTagName('F3AJAX_DATA');

    //返回：受影响的记录数
    var intNodNum = F3ParseInt(xmlNod.item(0).childNodes.length);
    if (intNodNum <= 0) return 0; //没有返回信息
    var strNodText = xmlNod.item(0).childNodes.item(0).text;
    return strNodText;
  }catch(ex){
    return 0;
  }
}

// 发送ajax的POST请求，返回成功(true)或失败(false)
// 参数：
//      strUrl：请求URL
//      strPostBody：多个字段和值对，格式： colname1=xxx&colvalue1=yyy&colname2=xxx&colvalue2=yyy&...   xxx和yyy必须用escape()函数进行编码转换
function F3AjaxPostUrlByReturnOK(strUrl, strPostBody){
  try{
    if (!strUrl || !strPostBody){
      return false;
    }
    
    //发送Ajax请求
    var xmlReq = F3AjaxSendHttpRequest("POST", strUrl, false, strPostBody);
    var xmlDoc = xmlReq.responseXML;
    var xmlNod = xmlDoc.getElementsByTagName('F3AJAX_DATA');

    //判断返回结果
    var intNodNum = F3ParseInt(xmlNod.item(0).childNodes.length);
    if (intNodNum <= 0) return false; //没有返回信息
    var strNodText = xmlNod.item(0).childNodes.item(0).text;
    if (strNodText == "1"){
      return true;
    }else{
      return false;
    }
  }catch(ex){
    return false;
  }
}

// 将ajax返回到字段值赋值到界面上
// 参数：
//      strSrcName1, strDestName1：将源控件strSrcName1的值赋值到界面控件strDestName1上
function F3SetUiColumnValues(xmlNod, strUseReplacedNameOnly, strSrcName1, strDestName1, strSrcName2, strDestName2, strSrcName3, strDestName3, strSrcName4, strDestName4, strSrcName5, strDestName5, strSrcName6, strDestName6, strSrcName7, strDestName7, strSrcName8, strDestName8, strSrcName9, strDestName9, strSrcName10, strDestName10){
  try{
    if (!xmlNod){ //没有xml对象
      return false;
    }
  
    var intNodNum = F3ParseInt(xmlNod.item(0).childNodes.length);
    if (intNodNum <= 0){ //没有返回信息
      return false;
    }
    
    //提取字段信息，写入页面
    for (var i=0; i<intNodNum; i++) {
      try{
        var strNodName = xmlNod.item(0).childNodes.item(i).nodeName;
        var strNodValue = xmlNod.item(0).childNodes.item(i).text;
        if (!strNodName) continue;
        
        var blnChanged = 0;
        if (strSrcName1){
          if (strSrcName1==strNodName){
            strNodName = strDestName1;
            blnChanged = 1;
          }else{
            if (strSrcName2){
              if (strSrcName2==strNodName){
                strNodName = strDestName2;
                blnChanged = 1;
              }else{
                if (strSrcName3){
                  if (strSrcName3==strNodName){
                    strNodName = strDestName3;
                    blnChanged = 1;
                  }else{
                    if (strSrcName4){
                      if (strSrcName4==strNodName){
                        strNodName = strDestName4;
                        blnChanged = 1;
                      }else{
                        if (strSrcName5){
                          if (strSrcName5==strNodName){
                            strNodName = strDestName5;
                            blnChanged = 1;
                          }else{
                            if (strSrcName6){
                              if (strSrcName6==strNodName){
                                strNodName = strDestName6;
                                blnChanged = 1;
                              }else{
                                if (strSrcName7){
                                  if (strSrcName7==strNodName){
                                    strNodName = strDestName7;
                                    blnChanged = 1;
                                  }else{
                                    if (strSrcName8){
                                      if (strSrcName8==strNodName){
                                        strNodName = strDestName8;
                                        blnChanged = 1;
                                      }else{
                                        if (strSrcName9){
                                          if (strSrcName9==strNodName){
                                            strNodName = strDestName9;
                                            blnChanged = 1;
                                          }else{
                                            if (strSrcName10){
                                              if (strSrcName10==strNodName){
                                                strNodName = strDestName10;
                                                blnChanged = 1;
                                              }else{
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
        
        if (strUseReplacedNameOnly=="1" && blnChanged==0){
          continue; //必须使用替换名，但是没有替换，则继续循环
        }
        
        var objField = document.getElementById(strNodName);
        if (objField){
          objField.value = strNodValue;
        }
      }catch(ex){}
    }
    return false;
  }catch(ex){
    return false;
  }
}

// 将ajax返回到字段值赋值到界面上
// 参数：
//      strSrcName1, strDestName1：将源控件strSrcName1的值赋值到界面控件strDestName1上
function F3InitUiDropdownlist(xmlNod, strDdl, strFirstEmpty, strDefaultValue){
  try{
    if (!xmlNod){ //没有xml对象
      return false;
    }
    if (!strDdl){
      alert("必须指定下拉框的名称");
      return false;
    }
    var ddlist = document.getElementById(strDdl);
    if (!ddlist){
      return false;
    }
  
    var intNodNum = F3ParseInt(xmlNod.item(0).childNodes.length);
    if (intNodNum <= 0){ //没有返回信息
      return false;
    }
    
    //提取字段信息，写入页面
    for (var i=intNodNum-1; i>=0; i--) {
      try{
        var strNodText = xmlNod.item(0).childNodes.item(i).text;
        var strNodValue = xmlNod.item(0).childNodes.item(i).getAttribute("VALUE");
        //var strNodValue = xmlNod.item(0).childNodes.item(i).nodeName;
        if (!strNodValue) continue;

        //插入属性到第一个元素
        var newOpt = document.createElement("option");
        newOpt.innerText = strNodText;
        newOpt.value = strNodValue;
        ddlist.insertBefore(newOpt, ddlist.options[0]); //倒过来插入option，因为add()方法无效。
      }catch(ex){}
    }
    
    //第一个选项为空值
    if (strFirstEmpty && strFirstEmpty == '1'){
      var newOpt = document.createElement("option");
      newOpt.innerText = "";
      newOpt.value = "";
      ddlist.insertBefore(newOpt, ddlist.options[0]);
    }
    
    //默认值
    try{
      if (strDefaultValue){
        document.getElementById(strDdl).value = strDefaultValue;
      }else{
        document.getElementById(strDdl).selectedIndex = 0; //默认选中第一个元素
      }
    }catch(ex){
    }
    
    return false;
  }catch(ex){
    return false;
  }
}

//提交页面前Enable所有输入元素
function F3EnableFormElementsBeforeSubmit(strSubmitForm){
  try{
    //Enable所有Checkbox和Select。因为：Disabled的控件无法上传值，也不能用Form的submitdisabledcontrols属性，因为CheckBox被aspx生成时外套了一个disabled的span。
    var i;
    var o = document.getElementById(strSubmitForm).tags("input");
    for (i=0;i<o.length;i++){
      //文本输入框，checkbox, radio
      if (o[i].type == "text" || o[i].type == "checkbox" || o[i].type == "radio"){ //是Checkbox 或 RadioBox
        o[i].disabled=false;
        try{
          o[i].parentElement.disabled = false; //因为CheckBox和RadioBox被aspx生成时外套了一个disabled的span
        }catch(ex){
        }
      }
    }
    
    //下拉框
    o = document.getElementById(strSubmitForm).tags("select");
    for (i=0;i<o.length;i++){
      o[i].disabled=false;
      //o[i].parentElement.disabled = false; //Option外面好像没有：被aspx生成时外套了一个disabled的span
    }

    return true;
  }catch(ex){
    //alert("提交页面异常识别，错误信息：" + ex.source);
    return true;
  }
}

//显示Loading图标
function F3ShowLoadingImage(strSubmitForm, intImageTop, intImageLeft, strContainerName1, strContainerName2, strContainerName3, strContainerName4, strContainerName5){
  try{
    var ctrlLoadingImg = document.getElementById("imgLoading");
    if (!ctrlLoadingImg){
      ctrlLoadingImg = document.createElement("<img id='imgLoading' src='/cmsweb/images/loading/loading1.gif' align='absbottom' border='0' style='position:absolute; left:" + intImageLeft + "px; top:" + intImageTop + "px; display:block;' />");
      document.getElementById(strSubmitForm).appendChild(ctrlLoadingImg);
    }
    ctrlLoadingImg.style.display = "block";
    
    if (strContainerName1 && document.getElementById(strContainerName1)) {
      document.getElementById(strContainerName1).style.filter="alpha(opacity=30)"; //设置窗体的透明度
    }
    if (strContainerName2 && document.getElementById(strContainerName2)) {
      document.getElementById(strContainerName2).style.filter="alpha(opacity=30)"; //设置窗体的透明度
    }
    if (strContainerName3 && document.getElementById(strContainerName3)) {
      document.getElementById(strContainerName3).style.filter="alpha(opacity=30)"; //设置窗体的透明度
    }
    if (strContainerName4 && document.getElementById(strContainerName4)) {
      document.getElementById(strContainerName4).style.filter="alpha(opacity=30)"; //设置窗体的透明度
    }
    if (strContainerName5 && document.getElementById(strContainerName5)) {
      document.getElementById(strContainerName5).style.filter="alpha(opacity=30)"; //设置窗体的透明度
    }
  }catch(ex){
  }
}

//客户端界面出错后取消Loading图标状态
function F3CancelLoadingImage(strContainerName1, strContainerName2, strContainerName3, strContainerName4, strContainerName5){
  try{
    //不显示Loading图标
    if (document.getElementById("imgLoading")){
      document.getElementById("imgLoading").style.display = "none";
    }
  }catch(ex){
  }

  try{    
    if (strContainerName1 && document.getElementById(strContainerName1)) {
      document.getElementById(strContainerName1).style.filter="alpha(opacity=100)";
    }
    if (strContainerName2 && document.getElementById(strContainerName2)) {
      document.getElementById(strContainerName2).style.filter="alpha(opacity=100)";
    }
    if (strContainerName3 && document.getElementById(strContainerName3)) {
      document.getElementById(strContainerName3).style.filter="alpha(opacity=100)";
    }
    if (strContainerName4 && document.getElementById(strContainerName4)) {
      document.getElementById(strContainerName4).style.filter="alpha(opacity=100)";
    }
    if (strContainerName5 && document.getElementById(strContainerName5)) {
      document.getElementById(strContainerName5).style.filter="alpha(opacity=100)";
    }
  }catch(ex){
  }
}

/*打开高级字典的记录选择窗体*/
function F3OpenAdvanceDictWindow(strMainResID, strMainColNameOfMainRes, strMainCtrlNameOfMainRes, strBiIndex, blnIsMultiTable, strUserName, strUserEnPass, strFilterMainCtrl1, strFilterDictCol1, strFilterMainCtrl2, strFilterDictCol2, strFilterMainCtrl3, strFilterDictCol3){
  var colValue = new String(document.getElementById(strMainCtrlNameOfMainRes).value);
  colValue = colValue.replace("+", "x__plus");
  //colValue = escape(colValue);
  //var colValue2 = encodeURI(colValue);
  
//  alert("strBiIndex=" + strBiIndex);
//  var strIndex = "";
//  if (strBiIndex=='' || strBiIndex='0'){
//    strIndex = "";
//  }else{
//    strIndex = "_" + strBiIndex;
//  }
  
  var strFilterValue1 = "";
//  strFilterMainCtrl1 = strFilterMainCtrl1 + strIndex;
  //alert("strFilterMainCtrl1 1=" + strFilterMainCtrl1);
  if (strFilterMainCtrl1 != "undefined" && strFilterMainCtrl1 != ""){
    try{
      //alert("strFilterMainCtrl1 2=" + strFilterMainCtrl1);
      //var ctlFilterCol = eval('self.document.Form1.' + strFilterMainCtrl1);
      strFilterValue1 = document.getElementById(strFilterMainCtrl1).value;
      //alert("strFilterValue1=" + strFilterValue1);
    }catch(ex){
      strFilterMainCtrl1 = "";
      strFilterValue1 = "";
    }
  }
  
//  strFilterMainCtrl2 = strFilterMainCtrl2 + strIndex;
  var strFilterValue2 = "";
  if (strFilterMainCtrl2 != "undefined" && strFilterMainCtrl2 != ""){
    try{
      //var ctlFilterCol = eval('self.document.Form1.' + strFilterMainCtrl2);
      strFilterValue2 = document.getElementById(strFilterMainCtrl2).value;
    }catch(ex){
      strFilterMainCtrl2 = "";
      strFilterValue2 = "";
    }
  }
  
//  strFilterMainCtrl3 = strFilterMainCtrl3 + strIndex;
  var strFilterValue3 = "";
  if (strFilterMainCtrl3 != "undefined" && strFilterMainCtrl3 != ""){
    try{
      //var ctlFilterCol = eval('self.document.Form1.' + strFilterMainCtrl3);
      strFilterValue3 = document.getElementById(strFilterMainCtrl3).value;
    }catch(ex){
      strFilterMainCtrl3 = "";
      strFilterValue3 = "";
    }
  }

  var strUrl = '/cmsweb/cmsfield/FieldGetAdvDictionary.aspx?dynlogin=1&mnuresid=' + strMainResID + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass) + "&filtercol1=" + escape(strFilterDictCol1) + "&filtercolval1=" + escape(strFilterValue1) + "&filtercol2=" + escape(strFilterDictCol2) + "&filtercolval2=" + escape(strFilterValue2) + "&filtercol3=" + escape(strFilterDictCol3) + "&filtercolval3=" + escape(strFilterValue3) + '&colname=' + escape(strMainColNameOfMainRes) + '&ctrlname=' + escape(strMainCtrlNameOfMainRes) + '&bi_index=' + strBiIndex + '&multitab=' + blnIsMultiTable + '&colval=' + escape(colValue);
  window.open(strUrl, 'advdict_' + strMainResID, 'left=120,top=20,height=640,width=720,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

/*打开定制编码的记录选择窗体*/
function F3OpenCustomizeCodeWindow(strUrl, strParam2, strResID, strColName, strCtrlName, blnIsMultiTable, left, top, width, height, strUserName, strUserEnPass){
  var colValue = new String(document.getElementById(strCtrlName).value);
  colValue = colValue.replace("+", "x__plus");
  //colValue = escape(colValue);
  if (strUrl.indexOf("?") > 0){
    strUrl += '&';
  }else{
    strUrl += '?';
  }
  strUrl += 'strParam2=' + strParam2 + '&dynlogin=1&mnuresid=' + strResID + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass) + '&colname=' + escape(strColName) + '&ctrlname=' + escape(strCtrlName) + '&multitab=' + blnIsMultiTable + '&colval=' + escape(colValue);
  window.open(strUrl, 'custcode_' + strResID, 'left=' + left + ',top=' + top + ',height=' + height + ',width=' + width + ',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

/*提取当前用户的部门名称*/
function F3ShowMyDepartment(strCtrlNameOfDepName, strCtrlNameOfDepID){
  try{
    if (strCtrlNameOfDepName){
      document.getElementById(strCtrlNameOfDepName).value = document.getElementById("FORMDATA_USERDEPNAME").value;
    }
  }catch(ex){}
  
  try{
    if (strCtrlNameOfDepID){
      document.getElementById(strCtrlNameOfDepID).value = document.getElementById("FORMDATA_USERDEPID").value;
    }
  }catch(ex){}
}

/*提取当前用户名称*/
function F3ShowMyName(strCtrlNameOfUserName, strCtrlNameOfUserID){
  try{
    if (strCtrlNameOfUserName){
      document.getElementById(strCtrlNameOfUserName).value = document.getElementById("FORMDATA_USERNAME").value;
    }
  }catch(ex){}
  
  try{
    if (strCtrlNameOfUserID){
      document.getElementById(strCtrlNameOfUserID).value = document.getElementById("FORMDATA_USERID").value;
    }
  }catch(ex){}
}

/*打开部门选择窗体*/
function F3OpenDepartmentSelectWindow(strResID, strColName, strCtrlName, strCtrlNameOfDepID, strUserName, strUserEnPass){
  strUrl = '/cmsweb/adminuser/F3DepartmentPromptSelect.aspx?dynlogin=1&mnuresid=' + strResID + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass) + '&colname=' + escape(strColName) + '&ctrlnameOfDepID=' + escape(strCtrlNameOfDepID) + '&ctrlname=' + escape(strCtrlName);
  window.open(strUrl, 'depsel_' + strResID, 'left=120,top=20,height=580,width=430,status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=yes');
  return false;
}

/*打开用户选择窗体*/
function F3OpenLoginUserSelectWindows(strResID, strCtrlNameOfUserName, strCtrlNameOfUserCode){
  strUrl = '/cmsweb/adminuser/F3UserPromptSelect.aspx?mnuresid=' + strResID + '&colname=' + escape(strCtrlNameOfUserName) + '&colnameOfUserCode=' + escape(strCtrlNameOfUserCode);
  window.open(strUrl, 'usersel_' + strResID, 'left=120,top=20,height=580,width=720,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

/*打开人事员工选择窗体*/
function F3OpenHrUserSelectWindows(strResID, strCtrlNameOfUserName, strCtrlNameOfUserCode){
  strUrl = '/cmsweb/cmsproduct/hr/HrUserPromptSelect.aspx?mnuresid=' + strResID + '&colname=' + escape(strCtrlNameOfUserName) + '&colnameOfUserCode=' + escape(strCtrlNameOfUserCode);
  window.open(strUrl, 'usersel_' + strResID, 'left=120,top=20,height=580,width=720,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

//在界面上的文档框（编辑状态下的Textbox）右边添加"查阅"按钮，点击后跳出窗体提取或打开文档
function F3OpenDocFileWindow(strResID, strRecID, strUserName, strUserEnPass){
  var strUrl = '/cmsweb/cmsdocument/DocOpen.aspx?dynlogin=1&mnuresid=' + strResID + '&docrecid=' + strRecID + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass);
  window.open(strUrl, 'docfile_' + strResID, 'status=no,toolbar=yes,menubar=yes,location=yes,resizable=yes,scrollbars=yes');
  return false;
}

//保存主资源记录
function F3SaveHostRecord(strResID){
  var rtn = F3ValidateValue(self.document.Form1);
  if (rtn == false){
    return false;
  }
  self.document.getElementById("btnSave").click();
  return false;
}

//添加子资源记录
function F3AddSubRecord(strHostResID, strHostRecID, strResID, strUserName, strUserEnPass){
  var strUrl = '/cmsweb/cmshost/F3Edit.aspx?mnuispopup=1&dynlogin=1&mnuhostresid=' + strHostResID + '&mnuhostrecid=' + strHostRecID + '&mnuresid=' + strResID + '&mnuinmode=3' + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass);
  window.open(strUrl, 'recadd_' + strResID, 'left=10,top=10,height=680,width=950,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

//修改子资源记录
function F3EditSubRecord(strHostResID, strHostRecID, strResID, strUserName, strUserEnPass, strMsg){
  var ctrlValue = document.getElementById("RECID3_" + strResID).value; //eval("self.document.Form1.RECID3_" + strResID);
  if (ctrlValue == ""){
    alert(strMsg);
    return false;
  }
  var strUrl = '/cmsweb/cmshost/F3Edit.aspx?mnuispopup=1&dynlogin=1&mnuhostresid=' + strHostResID + '&mnuhostrecid=' + strHostRecID + '&mnuresid=' + strResID + '&mnuinmode=5&mnurecid=' + escape(ctrlValue) + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass);
  window.open(strUrl, 'recedit_' + strResID, 'left=10,top=10,height=680,width=950,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

//查阅子资源记录
function F3ViewSubRecord(strHostResID, strHostRecID, strResID, strUserName, strUserEnPass, strMsg){
  //var ctlName = eval("self.document.Form1.RECID3_" + strResID);
  var ctrlValue = document.getElementById("RECID3_" + strResID).value
  if (ctrlValue == ""){
    alert(strMsg);
    return false;
  }
  var strUrl = '/cmsweb/cmshost/F3Edit.aspx?mnuispopup=1&mnupopup_closeonly=1&dynlogin=1&mnuhostresid=' + strHostResID + '&mnuhostrecid=' + strHostRecID + '&mnuresid=' + strResID + '&mnuinmode=13&mnurecid=' + escape(ctrlValue) + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass);
  window.open(strUrl, 'recview_' + strResID, 'left=10,top=10,height=680,width=950,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

//删除子资源记录
function F3DeleteSubRecord(strResID, strMsg){
  //var ctlName = eval("self.document.Form1.RECID3_" + strResID);
  var ctrlValue = document.getElementById("RECID3_" + strResID).value
  if (ctrlValue == ""){
    alert(strMsg);
    return false;
  }
  self.document.Form1.mnusubtabresid.value = strResID;
  //为了确保页面刷新为最新数据，这里必须设置为保存命令，等效为在页面上点击“保存”
  //var eventTarget = "btnSave";
  //self.document.Form1.__EVENTTARGET.value = eventTarget.split("$").join(":");
  //self.document.Form1.__EVENTARGUMENT.value = "";
  self.document.Form1.mnucmd.value = "delrelrec";
  self.document.Form1.submit();
  return false;
}

//资源定制Button的操作
function F3EditSubRecordForExtButton(strHostResID, strHostRecID, strResID, strUserName, strUserEnPass, mnusection, mnukey, frmWidth, frmHeight, strMsg){
  //var ctlName = eval("self.document.Form1.RECID3_" + strResID);
  var ctrlValue = document.getElementById("RECID3_" + strResID).value
  if (ctrlValue == ""){
    alert(strMsg);
    return false;
  }
  //开始删除窗体
  var strUrl = '/cmsweb/cmshost/F3EditPopupResult.aspx?cmd=SubtablecmdSet&mnusection=' + mnusection + '&mnukey=' + mnukey + '&dynlogin=1&mnuhostresid=' + strHostResID + '&mnuhostrecid=' + strHostRecID + '&mnuresid=' + strResID + '&mnuinmode=13&mnurecid=' + escape(ctrlValue) + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass);
  var rtnVal = window.showModalDialog(strUrl, "", "dialogHeight:" + frmHeight + "px; dialogWidth:" + frmWidth + "px; center:yes"); 
  if (rtnVal == "1"){
    //操作成功后保存当前记录，为了刷新界面数据
    return F3SaveHostRecord(strResID);
  }else{
    return false;
  }
}

//输入窗体的子资源表单的“添加”类按钮，指定按钮名称和窗体名称
function F3EditSubRecordForExtButtonByAddForm(strHostResID, strHostRecID, strResID, strFormName, strUserName, strUserEnPass, mnusection, mnukey, frmWidth, frmHeight){
  var strUrl = '/cmsweb/cmshost/F3Edit.aspx?mnuispopup=1&mnusection=' + mnusection + '&mnukey=' + mnukey + '&dynlogin=1&mnuhostresid=' + strHostResID + '&mnuhostrecid=' + strHostRecID + '&mnuresid=' + strResID + '&mnuinmode=3' + "&mnuformname=" + escape(strFormName) + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass);
  window.open(strUrl, 'recadd_' + strResID, 'left=10,top=10,height=' + frmWidth + ',width=' + frmWidth + ',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

//输入窗体的子资源表单的“修改”类按钮，指定按钮名称和窗体名称
function F3EditSubRecordForExtButtonByEditForm(strHostResID, strHostRecID, strResID, strFormName, strUserName, strUserEnPass, mnusection, mnukey, frmWidth, frmHeight, strMsg){
  //var ctlName = eval("self.document.Form1.RECID3_" + strResID);
  var ctrlValue = document.getElementById("RECID3_" + strResID).value
  if (ctrlValue == ""){
    alert(strMsg);
    return false;
  }
  var strUrl = '/cmsweb/cmshost/F3Edit.aspx?mnuispopup=1&mnusection=' + mnusection + '&mnukey=' + mnukey + '&dynlogin=1&mnuhostresid=' + strHostResID + '&mnuhostrecid=' + strHostRecID + '&mnuresid=' + strResID + '&mnuinmode=5&mnurecid=' + escape(ctrlValue) + "&mnuformname=" + escape(strFormName) + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass);
  window.open(strUrl, 'recedit_' + strResID, 'left=10,top=10,height=' + frmWidth + ',width=' + frmWidth + ',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

//关闭跳出的编辑窗体
function F3ClosePopupEditFormAndSaveOpener(){
  try{
    //为了确保页面刷新为最新数据，这里必须设置为保存命令，等效为在页面上点击“保存”
    //var eventTarget = "btnSave";
    //window.opener.document.Form1.__EVENTTARGET.value = eventTarget.split("$").join(":");
    //window.opener.document.Form1.__EVENTARGUMENT.value = "";
    //window.opener.document.Form1.mnucmd.value = "btnSave";
    //window.opener.document.Form1.submit();
    window.opener.document.getElementById("btnSave").click();
    window.close();
    return false;
  }catch(ex){
  }
}

//关闭跳出的编辑窗体
function F3ClosePopupEditFormWithoutRefresh(){
  window.close();
  return false;
}

//提取子资源文档
function F3SubRecordGetDoc(strResID, strUserName, strUserEnPass, strMsg, strMsg){
  //var ctlName = eval("self.document.Form1.RECID3_" + strResID);
  var ctrlValue = document.getElementById("RECID3_" + strResID).value
  if (ctrlValue == ""){
    alert(strMsg);
    return false;
  }
  var strUrl = '/cmsweb/cmsdocument/DocOpen.aspx?dynlogin=1&mnuresid=' + strResID + '&docrecid=' + ctrlValue + "&docopenstyle=1" + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass); //docopenstyle=1: 提取文档
  
  //window.open(strUrl, 'docget_' + strResID, 'left=10,top=10,height=200,width=300,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  formDownFile.action=strUrl; //不用open而用此特殊Form，下载文档时不会跳出无用的新窗体
  formDownFile.submit();  

  return false;
}

//在线浏览子记录文档
function F3SubRecordOnlineViewDoc(strResID, strUserName, strUserEnPass, strMsg){
  //var ctlName = eval("self.document.Form1.RECID3_" + strResID);
  var ctrlValue = document.getElementById("RECID3_" + strResID).value
  if (ctrlValue == ""){
    alert(strMsg);
    return false;
  }
  var strUrl = '/cmsweb/cmsdocument/DocOpen.aspx?dynlogin=1&mnuresid=' + strResID + '&docrecid=' + ctrlValue + "&docopenstyle=2" + "&user=" + escape(strUserName) + "&ucode=" + escape(strUserEnPass); //docopenstyle=2: 在线浏览文档
  window.open(strUrl, 'docview_' + strResID, 'left=10,top=10,height=680,width=950,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
  return false;
}

//输入窗体中子资源记录选中的事件响应
function F3RowLeftClickInSubResTable(src, strResID){
  if (ctrlKeyClicked == true){ //多选记录
    src.bgColor = "#C4D9F9";
    var ctlName = document.getElementById("RECID3_" + strResID); //eval("self.document.Form1.RECID3_" + strResID);
    var strRecID3 = F3StringTrim(ctlName.value, ",");
    if (strRecID3 == ""){
      ctlName.value = src.RECID3; //需要将用户选择的行号POST给服务器
    }else{
      ctlName.value = strRecID3 + "," + src.RECID3; //需要将用户选择的行号POST给服务器
    }
  }else{
    //单选记录
    var o=src.parentNode;
    for (var k=1;k<o.children.length;k++){
      if (o.children[k].bgColor_bak == null || o.children[k].bgColor_bak == ""){
        o.children[k].bgColor = "white";
      }else{
        o.children[k].bgColor = o.children[k].bgColor_bak;
      }
    }
    src.bgColor = "#C4D9F9";
    var ctlName = document.getElementById("RECID3_" + strResID); //eval("self.document.Form1.RECID3_" + strResID);
    ctlName.value = src.RECID3; //需要将用户选择的行号POST给服务器
  }
}

//登录时重定向URL
function F3RedirectLogin(strUrl, strHideBars){
  try{
    if (strHideBars == "1"){ //隐藏浏览器的Bars
      var intTop = 0; //window.dialogTop; //window.screenTop;
      var intLeft = 0; //window.dialogLeft; //window.screenLeft;
      var intWidth = window.screen.availWidth-12; //全屏
      var intHeight = window.screen.availHeight-50; //window.dialogHeight; //全屏： window.screen.availHeight-50
      var newWin = window.open(strUrl, '_blank', 'left=' + intLeft + ',top=' + intTop + ',height=' + intHeight + ',width=' + intWidth + ',directories=no,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no');
      if (newWin == null){
        //打开新窗体失败，仍然使用原窗体。1）将服务器地址加入信任网站就可以解决此问题。  或者2）在IE的“弹出窗体阻止程序”中加入允许网站：服务器地址。
        window.location.href = strUrl;
      }else{
        //打开新窗体成功
        window.opener = null;
        window.close();
      }
    }else{
      window.location.href = strUrl;
    }
  }catch(ex){
  }
}

//点击了一级功能的事件响应
function F3ClickModuleOne(strModuleID, strCmd, strUrl){
  try{
    var doc;
    if (window.top.frames["cmsbody"]){
      if (window.top.frames["cmsbody"].frames["content"]){ //左功能栏已经打开
        doc = window.top.frames["cmsbody"].frames["content"].document; //OK for ie and firefox
      }else{
        doc = window.top.frames["cmsbody"].document;
      }
    }else{
      return false;
    }

    var divHost = doc.getElementById("divModules");
    divHost.style.display = "none";
    
    //整理URL
    var strTargetUrl = "";
    if(strCmd == "MOD_MODTABLE"){
      strTargetUrl = "/cmsweb/cmshost/F3Body101.aspx";
    }else if(strCmd == "MOD_REPORT"){
      strTargetUrl = "/cmsweb/cmsreport/F3RptFrame.aspx";
    }else{
      strTargetUrl = strUrl;
    }
    if (strTargetUrl == ""){
      alert("模块配置出错，模块ID（" + strModuleID + "）上没有配置任何信息");
      return false;
    }
    if (strTargetUrl.indexOf("?") > 0){
      strTargetUrl = strTargetUrl + "&";
    }else{
      strTargetUrl = strTargetUrl + "?";
    }
    strTargetUrl = strTargetUrl + "moduleid=" + strModuleID;

    //发送请求
    window.top.frames["cmsbody"].document.location.href = strTargetUrl;
    return true;
  }catch(ex){
    alert("错误信息：" & ex.source);
    return false;
  }
}

//关闭主功能窗体
function F3CloseModule(){
  try{
    var doc;
    if (window.top.frames["cmsbody"]){
      if (window.top.frames["cmsbody"].frames["content"]){ //左功能栏已经打开
        doc = window.top.frames["cmsbody"].frames["content"].document; //OK for ie and firefox
      }else{
        doc = window.top.frames["cmsbody"].document;
      }
    }else{
      return false;
    }

    var divHost = doc.getElementById("divModules");
    divHost.style.display = "none";
    return true;
  }catch(ex){
    alert("错误信息：" & ex.source);
    return false;
  }
}

//提交页面，Enable所有输入元素且显示Loading图标
function F3ConfirmClicked(strSubmitForm, intImageTop, intImageLeft, strContainerName1, strContainerName2, strContainerName3, strContainerName4, strContainerName5){
  try{
    F3EnableFormElementsBeforeSubmit(strSubmitForm);
    
    F3ShowLoadingImage(strSubmitForm, intImageTop, intImageLeft, strContainerName1, strContainerName2, strContainerName3, strContainerName4, strContainerName5);
    return true;
  }catch(ex){
    alert("页面处理异常出错，错误信息：" + ex.source);
    return false;
  }
}

//设置Cookie
function F3SetCookie(name, value){
  document.cookie = name + "=" + value + ";";
}

//提取Cookie
function F3GetCookie(name){
  var cookies = document.cookie;
  var start = cookies.indexOf(name + "=");
  if (start == -1){
    return "";
  }
  start = cookies.indexOf("=", start) +1;
  var end = cookies.indexOf(";", start);
  if (end == -1){
    end = cookies.length;
  }

  var value = unescape(cookies.substring(start, end));
  if (value == null){
    return ""
  }else{
    return value;
  }
}

//Ajax发送请求
//参数：
//  strMethod: POST 或 GET
//  strUrl: url
//  isAsynchronize: true = 异步   false = 同步
//  strPostBody: POST请求时的参数，格式： param1=xxx&param2=yyy&param3=zzz
function F3AjaxSendHttpRequest(strMethod, strUrl, isAsynchronize, strPostBody){
  try{
    if(window.ActiveXObject){ 
      for( var i = 5; i; i-- ){ 
        try{ 
          if( i == 2 ){ 
            var xmlReq = new ActiveXObject("Microsoft.XMLHTTP"); 
            if (xmlReq){
              xmlReq.open(strMethod, strUrl, isAsynchronize);
              if (strMethod=="POST" && strPostBody){
                xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //POST请求必须使用此content type
                xmlReq.send(strPostBody);
              }else{
                xmlReq.send();
              }
              return xmlReq;
            }
          }else{
            var xmlReq = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
            if (xmlReq){
              if (strMethod=="POST" && strPostBody){
                xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //POST请求必须使用此content type
                xmlReq.setRequestHeader("Content-Type","UTF-8");
                xmlReq.open(strMethod, strUrl, isAsynchronize);
                xmlReq.send(strPostBody);
              }else{
                xmlReq.setRequestHeader("Content-Type","text/xml");
                xmlReq.setRequestHeader("Content-Type","UTF-8");
                xmlReq.open(strMethod, strUrl, isAsynchronize);
                xmlReq.send();
              }
              return xmlReq;
            }
          }
          break;
        }catch(e){
        }
       }
    }else if(window.XMLHttpRequest){
      var xmlReq = new XMLHttpRequest();
      if (xmlReq){
        if (xmlReq.overrideMimeType){
          xmlReq.overrideMimeType('text/xml'); 
          
          xmlReq.open(strMethod, strUrl, isAsynchronize);
          if (strMethod=="POST" && strPostBody){
            xmlReq.send(strPostBody);
          }else{
            xmlReq.send(null);
          }
          return xmlReq;
        }
      }
    }else{
      alert("当前浏览器不支持window.ActiveXObject和window.ActivXMLHttpRequest，无法使用Ajax技术");
    }
    return false;
  }catch(ex){
    return false;
  }
} 

//根据ID获取Value
//Note:不能用于Select
//lsh
function F3GetValueByID(id)
{
  var IDs = document.getElementById(""+id);
  if(!IDs) return "";
  var length = IDs.length;
  if(!length){
    return IDs.value;
  }else{
    return IDs(0).value;
  }
}

/*入口*/
function F3ValidateValue(frm){  
  var o;
  var i;
  //判断所有的text框
  o=frm.tags("input");
  for (i=0;i<o.length;i++){
    if (F3ValidateValueType(o[i])==false) return false;
  }
  //判断所有的textarea框
  o=frm.tags("textarea");
  for (i=0;i<o.length;i++)
  {
    if (F3ValidateValueType(o[i])==false) return false;
  }
  //判断所有的select框
  o=frm.tags("select");
  for (i=0;i<o.length;i++){
    if (F3ValidateOptionValueType(o[i])==false) return false;
  }
  return true;
} 

/********************************************/
function F3ValidateValueType(o){
  //检查是否为必输项;
  if (o.mInput=="true"){
    if (o.value.trim()=="")
    {
      alert(o.errmsg+'不能为空');
      o.focus();
      return false;
    }
  }
  //类型判断;
  switch (o.fType)
  {
    case "num":
      if (isNaN(o.value))
      {
        alert(o.errmsg+'必须为数字');
        o.focus();
        o.select();
        return false;
      }
      break;
    case "username":
      if(!Verifyname(o.value)){
        alert(o.errmsg+'只能是字母，数字，－＿');
        o.focus();
        o.select();
        return false;
      }
      break;
    case "email":
      if (o.value!="") {
        var s=o.value
        var re=/^\b[\w\.-]+@[\w-]+\.(([A-Z]{2,6})|([A-Z]{2,6}\.([A-Z]{2,6}))|([A-Z]{2}\.cn))\b$/i
        if(!re.exec(s)){
          alert(o.errmsg+'格式不正确');
          o.focus();
          o.select();
          return false;
        }  
       }
       break;
    case "date":
      if (o.value!="") {
        if (!isDate(o.value)){
          alert(o.errmsg+'必须为日期格式\n 如:2004-12-12 或者 2004/12/12');
          o.focus();
          o.select();
          return false;
        }
      }
      break;
    case "time":
      if (o.value!="") {
        if (!isTime(o.value)){
          alert(o.errmsg+'必须为时间格式\n 如:18:30:60 或者 8:25');
          o.focus();
          o.select();
          return false;
        }
      }
      break;
    case "datetime":
      if (o.value!="") {
        if (!isDateTime(o.value)){
          alert(o.errmsg+'必须为日期时间格式格式\n 如:2004-12-12 或者 2004-12-12 15:30 或者 2004/12/12 15:30:28');
          o.focus();
          o.select();
          return false;
        }
      }
      break;
      
    default:
      break;
    
    }
  return true;
}

/********************************************/
function F3ValidateOptionValueType(o){
  //选择项不能为空
  try{
    if (o.mInput=="true"){
      if (o.options(o.selectedIndex).text.trim()=="")
      {
        alert(o.errmsg+'不能为空');
        o.focus();
        return false;
      }
    }
    return true;
  }catch(ex){
    alert(o.errmsg+'不能为空');
    o.focus();
    return false;
  }
}

//删除头尾的指定字符
function F3StringTrim(src, chr){
    for (var i=0; i<50; i++){
        if (src.charAt(0) == chr){
            src = src.substring(1);
        }else{
            break;
        }
    }
    for (var i=0; i<50; i++){
        if (src.charAt(src.length-1) == chr){
            src = src.substring(0, src.length-1);
        }else{
            break;
        }
    }
    return src;
}


//获取URL中的参数值
function F3GetRequest(paramName){
  try{
    var hrefstr = window.location.href;
    var pos = hrefstr.indexOf("?")
    var parastr = hrefstr.substring(pos+1); //获取URL后的参数字符串

    var para = parastr.split("&");
    var tempstr="";
    for(i=0;i<para.length;i++){
      tempstr = para[i];
      pos = tempstr.indexOf("=");
      if(tempstr.substring(0,pos) == paramName){
        return tempstr.substring(pos+1);
      }
    }
    return "";
  }catch(ex){
    return "";
  }
}

//转换string或object为数字型，非数字的返回0
function F3ParseInt(strNum){
  try{
    if(!strNum) return 0;
    var str;
    if(typeof(strNum) == 'object'){
      str = strNum.value;
    }else{
      str = strNum;
    }
    if(isNaN(str)){
      return 0;
    }else{
      return parseInt(str);
    }
  }catch(ex){
    return 0;
  }
}

//转换string或object为数字型，非数字的返回0
function F3ParseFloat(strNum){
  try{
    if(!strNum) return 0;
    var str;
    if(typeof(strNum) == 'object'){
      str = strNum.value;
    }else{
      str = strNum;
    }
    if(isNaN(str)){
      return 0;
    }else{
      return parseFloat(str);
    }
  }catch(ex){
    return 0;
  }
}

/*输入的是不是字母*/
function IsAlpha(cCheck){
  return ((('a'<=cCheck) && (cCheck<='z')) || (('A'<=cCheck) && (cCheck<='Z')))
}

/*
是不是输入了正确的用户名
用户名的判断条件:只能是由 数字、字母、-、_组成的字符串。
对应fType:username
*/
function Verifyname(str){
  for (nIndex=0; nIndex<str.length; nIndex++){
    cCheck = str.charAt(nIndex);
    if (!(!isNaN(cCheck) || IsAlpha(cCheck) || cCheck=='-' || cCheck=='_' )){
      return false;
    }
  }
  return true;          
}

/*
日期判断
对应fType:date
*/
function isDate(strValue){
  try{
    strValue = strValue.trim();
    var pattern = /\d{4}-\d{1,2}-\d{1,2}|\d{4}\/\d{1,2}\/\d{1,2}/;  
    if( strValue.replace(pattern, "") != "" ) 
      return false;
    else {
      var parts = strValue.split(/-|\//);
      var y = parseFloat(parts[0]);
      var m = parseFloat(parts[1]);
      var d = parseFloat(parts[2]);
      
      switch(m) {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
          return ( 0<d && d < 32 );
        case 4: case 6: case 9: case 11:
          return ( 0<d && d < 31 );
        case 2:
          if( isLeapYear(y) ) return ( 0<d && d<30 );
          else return ( 0<d && d<29 );
        default:
          return false;
      }
    }
  }catch(ex){
    return false;
  }
  
  return true;
}

/*
时间判断
对应fType:date
*/
function isTime(strValue) {
  strValue = strValue.trim();
  try{
    var pattern1 = /\d{1,2}:\d{1,2}:\d{1,2}/;
    var pattern2 = /\d{1,2}:\d{1,2}/;
    var pattern3 = /\d{1,2}/;
    if( strValue.replace(pattern1, "") != "" && strValue.replace(pattern2, "") != "" && strValue.replace(pattern3, "") != ""){
      return false;
    }else{
      var parts = strValue.split(/:/);
      if (parts.length == 1){
        var h = parseInt(parts[0]);
        if (h<0 || h>23){
          return false;
        }
      }else if (parts.length == 2){
        var h = parseInt(parts[0]);
        var m = parseInt(parts[1]);
        if (h<0 || h>23 || m<0 || m>=60){
          return false;
        }
      }else if (parts.length == 3){
        var h = parseInt(parts[0]);
        var m = parseInt(parts[1]);
        var s = parseInt(parts[2]);
        if (h<0 || h>23 || m<0 || m>=60 || s<0 || s>=60){
          return false;
        }
      }
    }
  }catch(ex){
    return false;
  }
  
  return true;
}

/*
日期和时间判断
对应fType:datetime
*/
function isDateTime(strValue) {
  try{
    strValue = strValue.trim();
    var pos = 0;
    try{
      pos = strValue.indexOf(' '); //  /*\s*/
    }catch(ex){
      //return false;
    }
    
    if (pos == -1){
      if (!isDate(strValue)){
        return false;
      }
    }else{
      var strDate = strValue.substring(0, pos);
      var strTime = strValue.substring(pos);
      strDate = strDate.trim();
      strTime = strTime.trim();
      if (!isDate(strDate)){
        return false;
      }
      if (!isTime(strTime)){
        return false;
      }
    }
  }catch(ex){
    return false;
  }
  
  return true;
}

function isLeapYear(iYear) {
  return !(iYear%4 != 0 || (iYear%100 == 0 && iYear%400 != 0));
}

String.prototype.trim = function(){ 
  return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

//Javascript里面去掉字符串两边的空格
String.prototype.Trim = function() 
{ 
  return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 
String.prototype.LTrim = function() 
{ 
  return this.replace(/(^\s*)/g, ""); 
} 
String.prototype.RTrim = function() 
{ 
  return this.replace(/(\s*$)/g, ""); 
} 

function BASEtrim(str){
    str=str.toString()
    lIdx=0;rIdx=str.length;
    if (BASEtrim.arguments.length==2)
    act=BASEtrim.arguments[1].toLowerCase()
    else
    act="all"
    for(var i=0;i<str.length;i++){
      thelStr=str.substring(lIdx,lIdx+1)
    therStr=str.substring(rIdx,rIdx-1)
    if ((act=="all" || act=="left") && thelStr==" "){
      lIdx++
    }
    if ((act=="all" || act=="right") && therStr==" "){
      rIdx--
    }
    }
    str=str.slice(lIdx,rIdx)
    return str
}

function PopupDialog(ctrlobjs,Url,dialogArguments,width,height)
{
  if (width) {
  } else {
    //width = "280px";
    width = "290px";
  }
  if (height) {
  } else {
    //height = "175px";
    height = "215px";
  }
  //弹出一个小小的窗口
  //lsh
  var len = ctrlobjs.length;
  var ctrlobj;
  if(len == null)
    ctrlobj = ctrlobjs;
  else
    ctrlobj = ctrlobjs[0];
  if(ctrlobj.readOnly || ctrlobj.disabled)
    return false;
  if(dialogArguments==null)
    dialogArguments = "";
  showx = event.screenX - event.offsetX - 4 - 210 ; // + deltaX;
  showy = event.screenY - event.offsetY + 18; // + deltaY;
  newWINwidth = 210 + 4 + 18;
  var retval = window.showModalDialog(Url, dialogArguments, "dialogWidth:" + width + "; dialogHeight:" + height + "; dialogLeft:"+showx+"px; dialogTop:"+showy+"px; status:no; directories:yes;scrollbars:no;Resizable=no; "  );
  if( retval != null ){
    if(len == null)
      ctrlobj.value = retval;
    else
      {
        for(var i = 0;i<len;i++)
          ctrlobjs[i].value = retval;
      }
  }else{
  }
}

//toValidNum:将文本转换成合格的数字
function toValidNum(txt){
  var num=parseFloat(txt);
  if(isNaN(num))
    num = 0;
  return num.toString();
}
//dateCompare:比较日期
//date1和date2可以是以'-'分隔的String,遵循年-月-日的顺序.
//返回-1:date1<date2, 0:date1=date2, 1:date1>date2
function dateCompare(date1,date2){
  if(typeof(date1)=='undefined') date1='1900-01-01';
  if(date1==null) date1='1900-01-01';
  if(typeof(date2)=='undefined') date2='1900-01-01';
  if(date2==null) date2='1900-01-01';
  
  date1=date1.split('-');
  date2=date2.split('-');
  
  var ret = (parseInt(date1[0])*10000+parseInt(date1[1])*100+parseInt(date1[2]) ) -
         (parseInt(date2[0])*10000+parseInt(date2[1])*100+parseInt(date2[2]) ) 
  if(ret>0)
    ret = 1
  else if (ret < 0)
    ret=-1
  else
    ret=0
    
  return ret;
}

