
var lastErrorMsg='';

function _tb2json(data) {
  try{
    if (typeof(data) == 'string') {
      try{
        //data=data.replace(/\\/g,'\\\\');//bug
        data = JSON.parse(data);
      }
      catch(e){
        lastErrorMsg={msg:e,data:data};
        return null;
      }
    }
    if (data.length > 0) {
        var rows = [];
        var extinfo=null;
        if(data.length>0 && !data[0].length){
          extinfo=data[0];
          data.shift();
        }
        data.slice(1).map(function (row) {
            var o = {};
            data[0].map(function (field, index) {
                o[field] = row[index];
            });
            rows.push(o);
        });
        if(extinfo==null){
          return rows;//没附属信息的话，返回一个数组。
        }
        else{
          return {rows:rows,extinfo:extinfo};//有附属信息的话，返回一个对象
        }
    }
  }
  catch(e){
    lastErrorMsg={msg:e,data:data};
  }
  return null;
}

function callTql(callback, funcid, params){
    // params = params == undefined?{}:params
    request = { Method: funcid, FuncName: funcid, Param: params };
    // alert(JSON.stringify(request))
    if (window.TDXQuery)
    {
      window.TDXQuery({
        request: JSON.stringify(request),
        onSuccess: function (response) {
            callback(_tb2json(response),response);
        },
        onFailure: function (errCode, errInfo) {
          //
        }
      });
    }    
}

function getNow(flag,addDays,date){
  var n=new Date()
  if(date){
    n=date;
  }
  if(addDays){
    if(/^[0-9]+y$/.test(addDays)){
      addDays=addDays.replace('y','')*1;
      n.setFullYear(n.getFullYear()-addDays);
    }
    else if(/^[0-9]+m$/.test(addDays)){
      addDays=addDays.replace('m','')*1;
      n.setMonth(n.getMonth()-addDays);
    }
    else{
      n.setDate(n.getDate()+addDays)
    }
  }
  if(flag=='d'){
    return n;
  }
  var Y=n.getFullYear()
  var y=Y.toString().substr(2)
  var m=(n.getMonth()+1)
  var M=(100+m).toString().substr(1)
  var d=n.getDate()
  var D=(100+d).toString().substr(1)
  var h=n.getHours()
  var H=(100+h).toString().substr(1)
  var i=n.getMinutes()
  var I=(100+i).toString().substr(1)
  var s=n.getSeconds()
  var S=(100+s).toString().substr(1)
  var f=n.getMilliseconds()
  var F=(1000+f).toString().substr(1)
  
  if(flag=='d1'){
    var s=Y+'/'+M+'/'+'01 00:00:00'
    n=new Date(s)
    return n;
  }
  
  if(flag=='y1'){
    var s=Y+'/01/'+'01 00:00:00'
    n=new Date(s)
    return n;
  }
  
  if(flag=='rnd'){
    return [y,M,D,H,I,S].join('')
  }
  
  if(flag=='t'){
    return [y,'-',M,'-',D,' ',H,':',I,':',S].join('')
  }
  
  if(flag=='y-m-d'){
    return [Y,M,D].join('-')
  }
  
  if(flag=='zh'){
    return [Y,'年',M,'月',D,'日 ',H,'时',I,'分',S,'秒'].join('')
  }
  
  if(flag=='ymd'){
    return [Y,M,D].join('')
  }
  
  return new Date().getTime()
}

function formatDate(d,flag){
  flag=flag||1;
  if(flag==1){
    return [d.substr(0,4),d.substr(4,2),d.substr(6,2)].join('-');
  }
  if(flag==2){
    d=(d*1+1000000)+'';
    d=d.substr(1);
    return [d.substr(0,2),d.substr(2,2),d.substr(4,2)].join(':');
  }
  if(flag==3){
    return d.substr(0,10);
  }
  if(flag==4){
    d=d.substr(11);
  }
  if(flag==5){
    return [d.substr(0,4),d.substr(4,2),d.substr(6,2)].join('/');
  }
  return d;
}