﻿// JScript 文件
var q6_request_array = new Array();                            //定义记录用户请求的数组
window.setInterval("q6_request_timer_scan();",1000*5);         //每5秒运行一次request_timer_scan方法，获取请求到返回结果

function q6_request_info(phone_no,child_name,functionid,parameters,responseno,requestdate){
    this.phone_no = phone_no;                 //车牌号码
    this.child_name = child_name;                 //
    this.functionid_ = functionid;       //功能编号
    this.parameters_ = parameters;       //发送参数
    this.respserialno_ = responseno;     //返回结果序列号
    this.times_ = 0;                     //等待时间
    this.requestdate=requestdate;
    
    var serialno = cookie_function.GetCookie("request_q6_serialno");
    if(serialno == null){
        this.reqserialno_ = 0;
    }else{
        this.reqserialno_ = parseInt(serialno,10);
    }
    this.reqserialno_++;
    cookie_function.SetCookie("request_q6_serialno",this.reqserialno_.toString());
}
//functionid 取值说明：
/*
1.查询当前位置
2.主动上发
*/
function add_q6_request(phone_no,child_name,functionid,parameters,responseno,requestdate){
 //   alert(requestdate); 
    
    var request_ = new q6_request_info(phone_no,child_name,functionid,parameters,responseno,requestdate);
    q6_request_array.push(request_);   
    return request_.reqserialno_;
}

function q6_request_timer_scan()
{
     for(i=0;i<q6_request_array.length;i++){
        if(q6_request_array[i].respserialno_ >= 0){
            q6_request_array[i].times_ += 5;          
            if(q6_request_array[i].times_ >= 600)
            {  
               if(q6_request_array[i].functionid_==1)
               {
               	   addStatus("["+q6_request_array[i].child_name + "]即时位置通信不良！");               	 
               }else if(q6_request_array[i].functionid_==2)
               {
               	   addStatus("["+q6_request_array[i].child_name + "]修改上发条件通信不良！");               	
               }
                q6_request_array.splice(i,1);                                  //删除该请求
                return;
            }
        //     addStatus("respserialno:"+q6_request_array[i].respserialno_+"["+q6_request_array[i].child_name + "]等待"+q6_request_array[i].times_+"秒");
            Get_q6_Return_Result(q6_request_array[i].respserialno_,login_key,Get_q6_Return_Result_callback);                    //该函数定义于acxs_function.js文件中
           
        }
    }
}
//取短信返回结果回调
function Get_q6_Return_Result_callback(result,responseXml){   
    response_analysis(result.response_serial_no,result.response_code,result.response_result);
}

function response_analysis(respserialno,result,result_text){
        //0表示没有返回结果，不处理
    if(result == 0) return;   
    for(i=0;i<q6_request_array.length;i++){
        if(q6_request_array[i].respserialno_ == respserialno){
            var request_ = q6_request_array[i];
            q6_request_array.splice(i,1);                                  //删除该请求
            
            var child_name = request_.child_name;
            if(request_.functionid_ == 1){                               //查询当前位置对于查询位置，1表示返回结果，2表示超时没有返回结果，3表示位置无效
                if(result == 1){                                        //成功   等于1 返回即时精准位置 4返回之前精准位置 5返回大概位置
                        //Show_Current_Position_To_Map(car_no,login_key,Show_Current_Position_To_Map_Callback);
                        Q6_Show_Current_Position_To_Map("10000",child_name,login_key,Q6_Show_Current_Position_To_Map_callback);
                        addStatus("["+child_name + "]返回即时精准位置！");
                }else if(result == 4){                                  //返回之前精准位置
                  //  Show_Current_Position_To_Map(car_no,login_key,Show_Current_Position_To_Map_Callback);
                  Q6_Show_Current_Position_To_Map("10000",child_name,login_key,Q6_Show_Current_Position_To_Map_callback);
                    addStatus("["+child_name + "]返回之前精准位置！");
                }else if(result == 5){                                  //返回大概位置
                  //  Show_Current_Position_To_Map(car_no,login_key,Show_Current_Position_To_Map_Callback);
                  Q6_Show_Current_Position_To_Map("10000",child_name,login_key,Q6_Show_Current_Position_To_Map_callback);
                    addStatus("["+child_name + "]返回大概位置！");
                }else if(result == 3){                                  //位置无效
                    addStatus("["+child_name + "]返回GPS信号不良！");
                }else{
                    addStatus("["+child_name + "]返回通信不良！");
                }
//                if(result == 1){                                        //成功
//                    Q6_Show_Current_Position_To_Map(request_.phone_no,child_name,login_key,Q6_Show_Current_Position_To_Map_callback);
//                 
//                }else if(result == 3){                                  //位置无效
//                    addStatus("["+child_name + "]返回GPS信号不良！");
//                }else{
//                    addStatus("["+child_name + "]修改上发条件返回通信不良！");
//                }
            }else if(request_.functionid_ == 2){                         //设置上发条件
                if(result == 1){                                                                         //成功
                    addStatus("["+child_name + "]设置上发条件成功！");
                }else{                                                  //失败
                    addStatus("["+child_name + "]设置上发条件失败！");           //在状态栏提示，失败的原因
                }
            }
            return;
        }
    }
}

//取短信返回结果回调
function Q6_Show_Current_Position_To_Map_callback(result,responseXml){  
  //  alert(result_flag = parseInt(result.response_code));
     var result_flag = -1;		//默认是没有返回结果或者结果出错。
    result_flag = parseInt(result.response_code);
    var phone_no = result.phone_no;	
    var lon,lat,current_time,precision;
    if(result_flag == 0){	

        lon = result.position_info.longitude;
        lat = result.position_info.latitude;
        current_time = result.position_info.current_time;
        precision=parseInt(result.position_info.precision);
         
        addGpsPosition(lon,lat,'','0000000000',result.child_name,current_time,0,12,0);//地图上描点    ////          
        //addStatus("["+result.child_name+"]返回即时位置！");
//         if(precision == 0)
//           { addStatus("["+result.child_name+"]返回即时大概位置！");}
//        else 
//            {addStatus("["+result.child_name+"]返回即时精确位置！");}
    }else if(result_flag==-1){
       window.alert(error_message_timeout);	  
    }else if(result_flag == -2){
        addStatus("您操作的人员错误！");
        return;	
    }else if(result_flag==-3){
       addStatus("["+Ext.get('comboName').dom.value+"]没有查询到有效位置！");
      return;
    }else if(result_flag==-4){
	       Ext.MessageBox.alert('错误提示',result.response_result);
	      return;
	}else{
        addStatus("连接服务器错误，请与管理员联系！")
        return;
    }
            
	       
}

