You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					1086 lines
				
				33 KiB
			
		
		
			
		
	
	
					1086 lines
				
				33 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/*
							 | 
						||
| 
								 | 
							
								Class: PluginNSV
							 | 
						||
| 
								 | 
							
								Version: 1.0.1
							 | 
						||
| 
								 | 
							
								Date: 2019/03/20
							 | 
						||
| 
								 | 
							
								Description:
							 | 
						||
| 
								 | 
							
								   Fix showURL function parsing error on local characters.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getNetProtocol() {
							 | 
						||
| 
								 | 
							
								    if (!!window.WebSocket && window.WebSocket.prototype.send) {
							 | 
						||
| 
								 | 
							
								        return "WebSocket";
							 | 
						||
| 
								 | 
							
								    } else return "Http";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function PluginNSV() {
							 | 
						||
| 
								 | 
							
								    this.NetProtocol = getNetProtocol();
							 | 
						||
| 
								 | 
							
								    if (this.NetProtocol=== "WebSocket")
							 | 
						||
| 
								 | 
							
								        this.net = getWSNetObject();
							 | 
						||
| 
								 | 
							
								    else this.net = getHttpNetObject();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.InitPlugin = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    if (this.net == null) {
							 | 
						||
| 
								 | 
							
								        result_callback(0);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    this.func_callback = [];
							 | 
						||
| 
								 | 
							
								    this.invoke_state = [];
							 | 
						||
| 
								 | 
							
								    this.invoke_id = 10000;
							 | 
						||
| 
								 | 
							
								    this.init_result = result_callback;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.net.setStateCallback(this, this.net_state_callback);
							 | 
						||
| 
								 | 
							
								    this.net.setDataCallback(this, this.net_data_callback);
							 | 
						||
| 
								 | 
							
								    if (this.NetProtocol === "WebSocket")
							 | 
						||
| 
								 | 
							
								        this.net.connect("localhost:10430");
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								        this.net.connect("localhost:10431");
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.DestroyPlugin = function () {
							 | 
						||
| 
								 | 
							
								    this.net.setStateCallback(null, null);
							 | 
						||
| 
								 | 
							
								    this.net.setDataCallback(null, null);
							 | 
						||
| 
								 | 
							
								    this.net.disconnect();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.func_callback = [];
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.net_state_callback = function (object, state) {
							 | 
						||
| 
								 | 
							
								    //current "this" object is the "net" scope.
							 | 
						||
| 
								 | 
							
								    var plugin = object;
							 | 
						||
| 
								 | 
							
								    if (!!plugin.onStateChange) {
							 | 
						||
| 
								 | 
							
								        plugin.onStateChange(state);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    if(!!plugin.init_result){
							 | 
						||
| 
								 | 
							
								        plugin.init_result(state);
							 | 
						||
| 
								 | 
							
								        plugin.init_result = null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.net_data_callback = function (object, data) {
							 | 
						||
| 
								 | 
							
								    var plugin = object;
							 | 
						||
| 
								 | 
							
								    var context = data.split(',');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var msg_type = parseInt(context[0]);
							 | 
						||
| 
								 | 
							
								    switch (msg_type) {
							 | 
						||
| 
								 | 
							
								        case NSV_Msg_Type.Func_Invoke: {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								            break;
							 | 
						||
| 
								 | 
							
								        case NSV_Msg_Type.Func_Result: {
							 | 
						||
| 
								 | 
							
								            var invoke_id = context[1];
							 | 
						||
| 
								 | 
							
								            var func_id = context[2];
							 | 
						||
| 
								 | 
							
								            var func_name = context[3];
							 | 
						||
| 
								 | 
							
								            var state = (context[4] === '1');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            var args = [];
							 | 
						||
| 
								 | 
							
								            var index = 0;
							 | 
						||
| 
								 | 
							
								            for (var ele in context) {
							 | 
						||
| 
								 | 
							
								                if (index > 4) {
							 | 
						||
| 
								 | 
							
								                    args.push(context[index]);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                index++;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (plugin.func_callback.hasOwnProperty(func_id)) {
							 | 
						||
| 
								 | 
							
								                if ((typeof plugin.func_callback[func_id]) === "function") {
							 | 
						||
| 
								 | 
							
								                    plugin.func_callback[func_id](state, args);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                plugin.func_callback[func_id] = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (plugin.invoke_state.hasOwnProperty(invoke_id)) {
							 | 
						||
| 
								 | 
							
								                    //clear invoke state
							 | 
						||
| 
								 | 
							
								                    clearTimeout(plugin.invoke_state[invoke_id].timer);
							 | 
						||
| 
								 | 
							
								                    plugin.invoke_state[invoke_id] = null;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								            break;
							 | 
						||
| 
								 | 
							
								        case NSV_Msg_Type.Data_Event: {
							 | 
						||
| 
								 | 
							
								            var id = parseInt(context[1]);
							 | 
						||
| 
								 | 
							
								            switch (id) {
							 | 
						||
| 
								 | 
							
								                case  NSV_Event_Id.Event_Id_Click: {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case  NSV_Event_Id.Event_Id_Touch: {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case  NSV_Event_Id.Event_Id_Key: {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case NSV_Event_Id.Event_Id_User: {
							 | 
						||
| 
								 | 
							
								                    var type = parseInt(context[2]);
							 | 
						||
| 
								 | 
							
								                    switch (type) {
							 | 
						||
| 
								 | 
							
								                        case NSV_User_Event.User_Event_Confirm: {
							 | 
						||
| 
								 | 
							
								                            if (!!plugin.onConfirm && (typeof plugin.onConfirm) === "function") {
							 | 
						||
| 
								 | 
							
								                                //invoke callback function
							 | 
						||
| 
								 | 
							
								                                plugin.onConfirm();
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        }break;
							 | 
						||
| 
								 | 
							
								                        case NSV_User_Event.User_Event_Clear: {
							 | 
						||
| 
								 | 
							
								                            if (!!plugin.onClear && (typeof plugin.onClear) === "function") {
							 | 
						||
| 
								 | 
							
								                                //invoke callback function
							 | 
						||
| 
								 | 
							
								                                plugin.onClear();
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        }break;
							 | 
						||
| 
								 | 
							
								                        case NSV_User_Event.User_Event_Cancel: {
							 | 
						||
| 
								 | 
							
								                            if (!!plugin.onCancel && (typeof plugin.onCancel) === "function") {
							 | 
						||
| 
								 | 
							
								                                //invoke callback function
							 | 
						||
| 
								 | 
							
								                                plugin.onCancel();
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        }break;
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								            break;
							 | 
						||
| 
								 | 
							
								        case NSV_Msg_Type.Sys_State: {
							 | 
						||
| 
								 | 
							
								            var id = parseInt(context[1]);
							 | 
						||
| 
								 | 
							
								            switch (id) {
							 | 
						||
| 
								 | 
							
								                case NSV_Sys_Id.Sys_Id_State: {
							 | 
						||
| 
								 | 
							
								                    /*state*/
							 | 
						||
| 
								 | 
							
								                    if (plugin.onDevNotifyEvent != null && (typeof plugin.onDevNotifyEvent) === "function") {
							 | 
						||
| 
								 | 
							
								                        var state = parseInt(context[2]);
							 | 
						||
| 
								 | 
							
								                        plugin.onDevNotifyEvent(state);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								            break;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.callbackTimeOut = function (sender, invoke_flag) {
							 | 
						||
| 
								 | 
							
								    if (!!sender) {
							 | 
						||
| 
								 | 
							
								        if (sender.invoke_state.hasOwnProperty(invoke_flag)) {
							 | 
						||
| 
								 | 
							
								            var ele = sender.invoke_state[invoke_flag];
							 | 
						||
| 
								 | 
							
								            if (!!ele.func) {
							 | 
						||
| 
								 | 
							
								                var args = [];
							 | 
						||
| 
								 | 
							
								                args.push("invoke function timeout");
							 | 
						||
| 
								 | 
							
								                ele.func(0, args);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    // alert("invoke timer");
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.invoke_interface = function (id, code, _callback) {
							 | 
						||
| 
								 | 
							
								    this.func_callback[id] = _callback;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (this.invoke_id >= 0xffff) {
							 | 
						||
| 
								 | 
							
								        this.invoke_id = 10000;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var invoke_id = ++this.invoke_id;
							 | 
						||
| 
								 | 
							
								    var set = code.join(',');
							 | 
						||
| 
								 | 
							
								    set = invoke_id.toString() + "," + set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.net.write(set);
							 | 
						||
| 
								 | 
							
								    //add invoke flag
							 | 
						||
| 
								 | 
							
								    this.invoke_state[invoke_id.toString()] = {
							 | 
						||
| 
								 | 
							
								        func: _callback,
							 | 
						||
| 
								 | 
							
								        timer: setTimeout(this.callbackTimeOut, 2000, this, invoke_id.toString())
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								plugin constants
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								/*message type*/
							 | 
						||
| 
								 | 
							
								var NSV_Msg_Type = {
							 | 
						||
| 
								 | 
							
								    Func_Invoke: 1001,
							 | 
						||
| 
								 | 
							
								    Func_Result: 1002,
							 | 
						||
| 
								 | 
							
								    Data_Event: 1003,
							 | 
						||
| 
								 | 
							
								    Sys_State: 1004
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*function id*/
							 | 
						||
| 
								 | 
							
								var NSV_Func_Id = {
							 | 
						||
| 
								 | 
							
								    SetPenSizeRange: 1,
							 | 
						||
| 
								 | 
							
								    GetPenSizeRange: 2,
							 | 
						||
| 
								 | 
							
								    SetPenColor: 3,
							 | 
						||
| 
								 | 
							
								    GetPenColor: 4,
							 | 
						||
| 
								 | 
							
								    SetBKColor: 5,
							 | 
						||
| 
								 | 
							
								    GetBKColor: 6,
							 | 
						||
| 
								 | 
							
								    SetBorderColor: 7,
							 | 
						||
| 
								 | 
							
								    GetBorderColor: 8,
							 | 
						||
| 
								 | 
							
								    IsConnected: 9,
							 | 
						||
| 
								 | 
							
								    ClearSign: 10,
							 | 
						||
| 
								 | 
							
								    SaveImageToFile: 11,
							 | 
						||
| 
								 | 
							
								    SaveImageToFileEx: 12,
							 | 
						||
| 
								 | 
							
								    SaveSignToFile: 13,
							 | 
						||
| 
								 | 
							
								    SetPenMode: 14,
							 | 
						||
| 
								 | 
							
								    RegBtnClickEvent: 15,
							 | 
						||
| 
								 | 
							
								    UnregBtnClickEvent: 16,
							 | 
						||
| 
								 | 
							
								    SaveImageToBase64: 17,
							 | 
						||
| 
								 | 
							
								    SaveSignToBase64: 18,
							 | 
						||
| 
								 | 
							
								    GetScreenRect: 19,
							 | 
						||
| 
								 | 
							
								    EnableSystemTouch: 20,
							 | 
						||
| 
								 | 
							
								    SetScreenRotation: 21,
							 | 
						||
| 
								 | 
							
								    MouseControl:22,
							 | 
						||
| 
								 | 
							
									GetNSVVersion:23,
							 | 
						||
| 
								 | 
							
									GetDeviceSN:24
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*function id extend*/
							 | 
						||
| 
								 | 
							
								var NSV_Func_Id_Ex = {
							 | 
						||
| 
								 | 
							
								    BeginSign: 81,
							 | 
						||
| 
								 | 
							
								    EndSign: 82,
							 | 
						||
| 
								 | 
							
								    MoveSignWindow:83,
							 | 
						||
| 
								 | 
							
								    ShowURL:84,
							 | 
						||
| 
								 | 
							
								    CloseURL:85
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*property id*/
							 | 
						||
| 
								 | 
							
								var NSV_Property_Id = {
							 | 
						||
| 
								 | 
							
								    Set_BorderVisible: 101,
							 | 
						||
| 
								 | 
							
								    Get_BorderVisible: 102,
							 | 
						||
| 
								 | 
							
								    Set_ExtendDisplay: 103,
							 | 
						||
| 
								 | 
							
								    Get_ExtendDisplay: 104,
							 | 
						||
| 
								 | 
							
								    Set_DisplayMapMode: 105,
							 | 
						||
| 
								 | 
							
								    Get_DisplayMapMode: 106,
							 | 
						||
| 
								 | 
							
								    Set_SignMode: 107,
							 | 
						||
| 
								 | 
							
								    Get_SignMode: 108
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*data event sub id*/
							 | 
						||
| 
								 | 
							
								var NSV_Event_Id = {
							 | 
						||
| 
								 | 
							
								    Event_Id_Click: 301,
							 | 
						||
| 
								 | 
							
								    Event_Id_Touch: 302,
							 | 
						||
| 
								 | 
							
								    Event_Id_Key: 303,
							 | 
						||
| 
								 | 
							
								    Event_Id_User:304
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var NSV_User_Event={
							 | 
						||
| 
								 | 
							
								    User_Event_Confirm:1,
							 | 
						||
| 
								 | 
							
								    User_Event_Clear:2,
							 | 
						||
| 
								 | 
							
								    User_Event_Cancel:3
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*system state event sub id*/
							 | 
						||
| 
								 | 
							
								var NSV_Sys_Id = {
							 | 
						||
| 
								 | 
							
								    Sys_Id_State: 401
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								plugin interface
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setPenSizeRange = function (min, max, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SetPenSizeRange.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SetPenSizeRange");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(min.toString());
							 | 
						||
| 
								 | 
							
								    code.push(max.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[min,max])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getPenSizeRange = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.GetPenSizeRange.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("GetPenSizeRange");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setPenColor = function (r, g, b, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SetPenColor.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SetPenColor");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(r.toString());
							 | 
						||
| 
								 | 
							
								    code.push(g.toString());
							 | 
						||
| 
								 | 
							
								    code.push(b.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[r,g,b])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getPenColor = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.GetPenColor.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("GetPenColor");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string,code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setBKColor = function (r, g, b, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SetBKColor.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SetBKColor");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(r.toString());
							 | 
						||
| 
								 | 
							
								    code.push(g.toString());
							 | 
						||
| 
								 | 
							
								    code.push(b.toString());
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[r,g,b])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getBKColor = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.GetBKColor.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("GetBKColor");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setBorderColor = function (r, g, b, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SetBorderColor.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SetBorderColor");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(r.toString());
							 | 
						||
| 
								 | 
							
								    code.push(g.toString());
							 | 
						||
| 
								 | 
							
								    code.push(b.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[r,g,b])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getBorderColor = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.GetBorderColor.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("GetBorderColor");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[state])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.isConnected = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.IsConnected.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("IsConnected");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.clearSign = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.ClearSign.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("ClearSign");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.saveImageToFile = function (path, format, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SaveImageToFile.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SaveImageToFile");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(path);
							 | 
						||
| 
								 | 
							
								    code.push(format.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.saveImageToFileEx = function (path, format, width, height, quality, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SaveImageToFileEx.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SaveImageToFileEx");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(path);
							 | 
						||
| 
								 | 
							
								    code.push(format.toString());
							 | 
						||
| 
								 | 
							
								    code.push(width.toString());
							 | 
						||
| 
								 | 
							
								    code.push(height.toString());
							 | 
						||
| 
								 | 
							
								    code.push(quality.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.saveSignToFile = function (path, width, height, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SaveSignToFile.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SaveSignToFile");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(path);
							 | 
						||
| 
								 | 
							
								    code.push(width.toString());
							 | 
						||
| 
								 | 
							
								    code.push(height.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setPenMode = function (mode, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SetPenMode.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SetPenMode");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(mode.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.regBtnClickEvent = function (btn_index, x, y, width, height, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.RegBtnClickEvent.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("RegBtnClickEvent");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(btn_index.toString());
							 | 
						||
| 
								 | 
							
								    code.push(x.toString());
							 | 
						||
| 
								 | 
							
								    code.push(y.toString());
							 | 
						||
| 
								 | 
							
								    code.push(width.toString());
							 | 
						||
| 
								 | 
							
								    code.push(height.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.unregBtnClickEvent = function (btn_index, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.UnregBtnClickEvent.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("UnregBtnClickEvent");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(btn_index.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[base64string])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.saveImageToBase64 = function (format, width, height, quality, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SaveImageToBase64.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SaveImageToBase64");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(format.toString());
							 | 
						||
| 
								 | 
							
								    code.push(width.toString());
							 | 
						||
| 
								 | 
							
								    code.push(height.toString());
							 | 
						||
| 
								 | 
							
								    code.push(quality.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[base64string])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.saveSignToBase64 = function (width, height, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SaveSignToBase64.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SaveSignToBase64");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(width.toString());
							 | 
						||
| 
								 | 
							
								    code.push(height.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[left,top,right,bottom])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getScreenRect = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.GetScreenRect.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("GetScreenRect");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setScreenRotation = function (angle, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.SetScreenRotation.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("SetScreenRotation");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(angle.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.mouseControl = function(enabled,result_callback){
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.MouseControl.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("MouseControl");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if(enabled && enabled!=='0' && enabled!==0){
							 | 
						||
| 
								 | 
							
								        enabled = 1;
							 | 
						||
| 
								 | 
							
								    }else{
							 | 
						||
| 
								 | 
							
								        enabled = 0;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    code.push(enabled.toString());
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								plugin interface extend
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.beginSign = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id_Ex.BeginSign.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("BeginSign");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.endSign = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id_Ex.EndSign.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("EndSign");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.moveSignWindow = function (x, y, width, height, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id_Ex.MoveSignWindow.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("MoveSignWindow");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(x.toString());
							 | 
						||
| 
								 | 
							
								    code.push(y.toString());
							 | 
						||
| 
								 | 
							
								    code.push(width.toString());
							 | 
						||
| 
								 | 
							
								    code.push(height.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.showURL = function(url,result_callback){
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id_Ex.ShowURL.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("ShowURL");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    url = url.replace(/\\/ig,"/");
							 | 
						||
| 
								 | 
							
								    if(url.search("\%")==-1)
							 | 
						||
| 
								 | 
							
								        url = encodeURI(url);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(url);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.closeURL = function(result_callback){
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id_Ex.CloseURL.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("CloseURL");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.GetDeviceSN = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var func_id_string = NSV_Func_Id.GetDeviceSN.toString();
							 | 
						||
| 
								 | 
							
								    code.push(func_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("GetDeviceSN");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(func_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								plugin property
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setBorderVisible = function (visible, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Set_BorderVisible.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Set_BorderVisible");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push((visible === false || visible === "undefined" || visible == null) ? "0" : "1");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[visible])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getBorderVisible = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Get_BorderVisible.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Get_BorderVisible");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setExtendDisplay = function (extend, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Set_ExtendDisplay.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Set_ExtendDisplay");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push((extend === false || extend === "undefined" || extend === null) ? "0" : "1");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[extend])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getExtendDisplay = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Get_ExtendDisplay.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Get_ExtendDisplay");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setDisplayMapMode = function (mode, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Set_DisplayMapMode.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Set_DisplayMapMode");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(mode.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[mode])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getDisplayMapMode = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Get_DisplayMapMode.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Get_DisplayMapMode");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.setSignMode = function (mode, result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Set_SignMode.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Set_SignMode");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    code.push(mode.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(state,args[mode])*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.getSignMode = function (result_callback) {
							 | 
						||
| 
								 | 
							
								    var code = [];
							 | 
						||
| 
								 | 
							
								    var property_id_string = NSV_Property_Id.Get_SignMode.toString();
							 | 
						||
| 
								 | 
							
								    code.push(property_id_string);
							 | 
						||
| 
								 | 
							
								    code.push("Get_SignMode");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.invoke_interface(property_id_string, code, result_callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								plugin service events
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								/*callback func(state)*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onStateChange = null;
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								plugin device events
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								/*callback func(state)*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onDevNotifyEvent = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(index)*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onBtnClickEvent = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(index)*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onTouchEvent = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func(physical_key,virtual_key)*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onKeyEvent = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								plugin extended events
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								/*callback func()*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onConfirm = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func()*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onClear = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*callback func()*/
							 | 
						||
| 
								 | 
							
								PluginNSV.prototype.onCancel = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								WSNetObject class
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								function getWSNetObject() {
							 | 
						||
| 
								 | 
							
								    return {
							 | 
						||
| 
								 | 
							
								        ws: null,
							 | 
						||
| 
								 | 
							
								        url: null,
							 | 
						||
| 
								 | 
							
								        time_out: 3000,
							 | 
						||
| 
								 | 
							
								        time_out_func: null,
							 | 
						||
| 
								 | 
							
								        state_callback: null,
							 | 
						||
| 
								 | 
							
								        state_object: null,
							 | 
						||
| 
								 | 
							
								        data_callback: null,
							 | 
						||
| 
								 | 
							
								        data_object: null,
							 | 
						||
| 
								 | 
							
								        timer_reconn: null,
							 | 
						||
| 
								 | 
							
								        connect: function (url) {
							 | 
						||
| 
								 | 
							
								            if (!(!!window.WebSocket && window.WebSocket.prototype.send)) {
							 | 
						||
| 
								 | 
							
								                return null;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            this.url = url;
							 | 
						||
| 
								 | 
							
								            url = "ws://" + url;
							 | 
						||
| 
								 | 
							
								            this.ws = new WebSocket(url);
							 | 
						||
| 
								 | 
							
								            this.ws.owner = this;
							 | 
						||
| 
								 | 
							
								            this.ws.onopen = function () {
							 | 
						||
| 
								 | 
							
								                var owner = this.owner;
							 | 
						||
| 
								 | 
							
								                if (!!owner.state_callback) {
							 | 
						||
| 
								 | 
							
								                    owner.state_callback(owner.state_object, 1);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								            this.ws.onclose = function (evt) {
							 | 
						||
| 
								 | 
							
								                var owner = this.owner;
							 | 
						||
| 
								 | 
							
								                if (!!owner.state_callback) {
							 | 
						||
| 
								 | 
							
								                    owner.state_callback(owner.state_object, 0);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								            this.ws.onmessage = function (evt) {
							 | 
						||
| 
								 | 
							
								                var owner = this.owner;
							 | 
						||
| 
								 | 
							
								                if (!!owner.data_callback) {
							 | 
						||
| 
								 | 
							
								                    owner.data_callback(owner.data_object, evt.data);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								            this.ws.onerror = function (evt) {
							 | 
						||
| 
								 | 
							
								                var owner = this.owner;
							 | 
						||
| 
								 | 
							
								                owner.disconnect();
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        disconnect: function () {
							 | 
						||
| 
								 | 
							
								            if (this.ws != null) {
							 | 
						||
| 
								 | 
							
								                this.ws.close();
							 | 
						||
| 
								 | 
							
								                this.ws = null;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        reconnect: function () {
							 | 
						||
| 
								 | 
							
								            this.disconnect();
							 | 
						||
| 
								 | 
							
								            this.connect(this.url);
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        beginReconnect: function () {
							 | 
						||
| 
								 | 
							
								            if (this.timer_reconn == null) {
							 | 
						||
| 
								 | 
							
								                this.timer_reconn = setInterval(callback_reconn(this), this.time_out);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        endReconnect: function () {
							 | 
						||
| 
								 | 
							
								            if (this.timer_reconn != null) {
							 | 
						||
| 
								 | 
							
								                clearInterval(this.timer_reconn);
							 | 
						||
| 
								 | 
							
								                this.timer_reconn = null;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        getConnectionState: function () {
							 | 
						||
| 
								 | 
							
								            if (!!this.ws) {
							 | 
						||
| 
								 | 
							
								                return (this.ws.readyState === WebSocket.OPEN);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        setStateCallback: function (object, func) {
							 | 
						||
| 
								 | 
							
								            this.state_object = object;
							 | 
						||
| 
								 | 
							
								            this.state_callback = func;
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        setDataCallback: function (object, func) {
							 | 
						||
| 
								 | 
							
								            this.data_object = object;
							 | 
						||
| 
								 | 
							
								            this.data_callback = func;
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        write: function (data) {
							 | 
						||
| 
								 | 
							
								            if (this.getConnectionState()) {
							 | 
						||
| 
								 | 
							
								                try {
							 | 
						||
| 
								 | 
							
								                    this.ws.send(data);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                catch (e) {
							 | 
						||
| 
								 | 
							
								                    return false;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                return true;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function _callback_reconn(obj) {
							 | 
						||
| 
								 | 
							
								   // console.log("reconnect...");
							 | 
						||
| 
								 | 
							
								    if (obj != null) {
							 | 
						||
| 
								 | 
							
								        obj.reconnect();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var callback_reconn = function (obj) {
							 | 
						||
| 
								 | 
							
								    return function () {
							 | 
						||
| 
								 | 
							
								        _callback_reconn(obj);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								HttpNetObject class
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								function getHttpNetObject() {
							 | 
						||
| 
								 | 
							
								    return {
							 | 
						||
| 
								 | 
							
								        http: null,
							 | 
						||
| 
								 | 
							
								        url: null,
							 | 
						||
| 
								 | 
							
								        time_out: 3000,
							 | 
						||
| 
								 | 
							
								        time_out_func: null,
							 | 
						||
| 
								 | 
							
								        state_callback: null,
							 | 
						||
| 
								 | 
							
								        state_object: null,
							 | 
						||
| 
								 | 
							
								        data_callback: null,
							 | 
						||
| 
								 | 
							
								        data_object: null,
							 | 
						||
| 
								 | 
							
								        timer_reconn: null,
							 | 
						||
| 
								 | 
							
								        connect: function (url) {
							 | 
						||
| 
								 | 
							
								            if (url.substring(0, 7) !== "http://") {
							 | 
						||
| 
								 | 
							
								                url = "http://" + url;
							 | 
						||
| 
								 | 
							
								                this.url = url;
							 | 
						||
| 
								 | 
							
								                this.http = new NSV_Ajax(url);
							 | 
						||
| 
								 | 
							
								                this.http.owner = this;
							 | 
						||
| 
								 | 
							
								                this.http.onopen = function () {
							 | 
						||
| 
								 | 
							
								                    var owner = this.owner;
							 | 
						||
| 
								 | 
							
								                    if (!!owner.state_callback) {
							 | 
						||
| 
								 | 
							
								                        owner.state_callback(owner.state_object, 1);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                };
							 | 
						||
| 
								 | 
							
								                this.http.onclose = function (evt) {
							 | 
						||
| 
								 | 
							
								                    var owner = this.owner;
							 | 
						||
| 
								 | 
							
								                    if (!!owner.state_callback) {
							 | 
						||
| 
								 | 
							
								                        owner.state_callback(owner.state_object, 0);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                };
							 | 
						||
| 
								 | 
							
								                this.http.onmessage = function (data) {
							 | 
						||
| 
								 | 
							
								                    var owner = this.owner;
							 | 
						||
| 
								 | 
							
								                    if (!!owner.data_callback) {
							 | 
						||
| 
								 | 
							
								                        owner.data_callback(owner.data_object, data);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                };
							 | 
						||
| 
								 | 
							
								                this.http.onerror = function (evt) {
							 | 
						||
| 
								 | 
							
								                    console.log(evt);
							 | 
						||
| 
								 | 
							
								                };
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        disconnect: function () {
							 | 
						||
| 
								 | 
							
								            if (this.http != null) {
							 | 
						||
| 
								 | 
							
								                this.http.close();
							 | 
						||
| 
								 | 
							
								                this.http = null;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        getConnectionState: function () {
							 | 
						||
| 
								 | 
							
								            if (!!this.http) {
							 | 
						||
| 
								 | 
							
								                return (this.http.state === NSV_Ajax_State.Open);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        setStateCallback: function (object, func) {
							 | 
						||
| 
								 | 
							
								            this.state_object = object;
							 | 
						||
| 
								 | 
							
								            this.state_callback = func;
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        setDataCallback: function (object, func) {
							 | 
						||
| 
								 | 
							
								            this.data_object = object;
							 | 
						||
| 
								 | 
							
								            this.data_callback = func;
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        write: function (data) {
							 | 
						||
| 
								 | 
							
								            if (this.getConnectionState()) {
							 | 
						||
| 
								 | 
							
								                try {
							 | 
						||
| 
								 | 
							
								                    this.http.send(data);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                catch (e) {
							 | 
						||
| 
								 | 
							
								                    return false;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                return true;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								=============================================================================
							 | 
						||
| 
								 | 
							
								Class: NSV_Ajax
							 | 
						||
| 
								 | 
							
								Version: 1.0.0
							 | 
						||
| 
								 | 
							
								Date: 2018/12/17
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function getXMLHttpRequest() {
							 | 
						||
| 
								 | 
							
								    if (window.XMLHttpRequest) {
							 | 
						||
| 
								 | 
							
								        return new XMLHttpRequest();
							 | 
						||
| 
								 | 
							
								    } else if (window.ActiveXObject) {
							 | 
						||
| 
								 | 
							
								        return ActiveXObject("Microsoft.XMLHttp");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function NSV_Ajax(url) {
							 | 
						||
| 
								 | 
							
								    if(url.substring(0,7)!=="http://"){
							 | 
						||
| 
								 | 
							
								        url="http://"+url;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    this.state = NSV_Ajax_State.Closed;
							 | 
						||
| 
								 | 
							
								    this.http_url = url;
							 | 
						||
| 
								 | 
							
								    this.http_url_event = url.substring(0,url.length-5) + (parseInt(url.substring(url.length-5,url.length))+1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this.handShake();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								==================================================
							 | 
						||
| 
								 | 
							
								constant
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								var NSV_Ajax_State = {
							 | 
						||
| 
								 | 
							
								    Closed: 0,
							 | 
						||
| 
								 | 
							
								    Open: 1
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var NSV_Ajax_Protocol = {
							 | 
						||
| 
								 | 
							
								    Connect: "connect",
							 | 
						||
| 
								 | 
							
								    Data: "data",
							 | 
						||
| 
								 | 
							
								    Close: "close"
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								==================================================
							 | 
						||
| 
								 | 
							
								property
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.state = NSV_Ajax_State.Closed;
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.http_url = "";
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.http_url_event = "";
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.xhrRecv = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.PumpMessage = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//open event
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.onopen = null;
							 | 
						||
| 
								 | 
							
								//close event
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.onclose = null;
							 | 
						||
| 
								 | 
							
								//message event
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.onmessage = null;
							 | 
						||
| 
								 | 
							
								//error event
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.onerror = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								==================================================
							 | 
						||
| 
								 | 
							
								method
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.handShake = function () {
							 | 
						||
| 
								 | 
							
								    if (!!this.http_url) {
							 | 
						||
| 
								 | 
							
								        var xhr = getXMLHttpRequest();
							 | 
						||
| 
								 | 
							
								        xhr.open('POST', this.http_url, true);
							 | 
						||
| 
								 | 
							
								        xhr.responseType = "text";
							 | 
						||
| 
								 | 
							
								        xhr.timeout = 2000;
							 | 
						||
| 
								 | 
							
								        xhr.setRequestHeader('msg-type', '' + NSV_Ajax_Protocol.Connect);
							 | 
						||
| 
								 | 
							
								        xhr.owner = this;
							 | 
						||
| 
								 | 
							
								        xhr.onreadystatechange = function () {
							 | 
						||
| 
								 | 
							
								            if (this.readyState === 4) {
							 | 
						||
| 
								 | 
							
								                try {
							 | 
						||
| 
								 | 
							
								                    if (this.status === 200) {
							 | 
						||
| 
								 | 
							
								                        if (this.responseText === "OK") {
							 | 
						||
| 
								 | 
							
								                            //server is running
							 | 
						||
| 
								 | 
							
								                            this.owner.state = NSV_Ajax_State.Open;
							 | 
						||
| 
								 | 
							
								                            //activate open event
							 | 
						||
| 
								 | 
							
								                            if (!!this.owner.onopen && (typeof this.owner.onopen) === "function") {
							 | 
						||
| 
								 | 
							
								                                this.owner.onopen();
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                            this.owner.postRecvRequest(this.owner);
							 | 
						||
| 
								 | 
							
								                        }
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                catch (e) {
							 | 
						||
| 
								 | 
							
								                    if (!!this.owner.onerror && (typeof this.owner.onerror) === "function") {
							 | 
						||
| 
								 | 
							
								                        //this.owner.onclose();
							 | 
						||
| 
								 | 
							
								                        this.owner.onerror(e);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								        xhr.ontimeout =function(e){
							 | 
						||
| 
								 | 
							
								            if (!!this.owner.onerror && (typeof this.owner.onerror) === "function") {
							 | 
						||
| 
								 | 
							
								                this.owner.onclose();
							 | 
						||
| 
								 | 
							
								                // this.owner.onerror(e);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								        xhr.send("HandShake");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.postRecvRequest = function (owner) {
							 | 
						||
| 
								 | 
							
								    if (!!this.http_url) {
							 | 
						||
| 
								 | 
							
								        /*create a new http connection*/
							 | 
						||
| 
								 | 
							
								        this.xhrRecv = getXMLHttpRequest();
							 | 
						||
| 
								 | 
							
								        this.xhrRecv.open('POST', this.http_url_event, true);
							 | 
						||
| 
								 | 
							
								        this.xhrRecv.setRequestHeader('msg-type', '' + NSV_Ajax_Protocol.Data);
							 | 
						||
| 
								 | 
							
								        this.xhrRecv.responseType = "text";
							 | 
						||
| 
								 | 
							
								        this.xhrRecv.owner = owner;
							 | 
						||
| 
								 | 
							
								        this.xhrRecv.onreadystatechange = function () {
							 | 
						||
| 
								 | 
							
								            if (this.readyState === 4) {
							 | 
						||
| 
								 | 
							
								                if (this.status === 200) {
							 | 
						||
| 
								 | 
							
								                    if (!!this.owner.onmessage && (typeof this.owner.onmessage) === "function") {
							 | 
						||
| 
								 | 
							
								                        this.owner.onmessage(this.responseText);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                    // this.owner.recvHandler(this.responseText);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    this.owner.postRecvRequest(owner);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								        this.xhrRecv.send("Recv");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.recvHandler = function (data) {
							 | 
						||
| 
								 | 
							
								    console.log(data);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.postSendRequest = function (data, _callback, timeout) {
							 | 
						||
| 
								 | 
							
								    if (!!this.http_url) {
							 | 
						||
| 
								 | 
							
								        var xhr = getXMLHttpRequest();
							 | 
						||
| 
								 | 
							
								        xhr.open('POST', this.http_url, true);
							 | 
						||
| 
								 | 
							
								        xhr.responseType = "text";
							 | 
						||
| 
								 | 
							
								        xhr.setRequestHeader('msg-type', '' + NSV_Ajax_Protocol.Data);
							 | 
						||
| 
								 | 
							
								        //bind callback
							 | 
						||
| 
								 | 
							
								        xhr.owner = this;
							 | 
						||
| 
								 | 
							
								        xhr.send_callback = _callback;
							 | 
						||
| 
								 | 
							
								        if (!!timeout && timeout > 0) {
							 | 
						||
| 
								 | 
							
								            xhr.timeout = timeout;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        xhr.onreadystatechange = function () {
							 | 
						||
| 
								 | 
							
								            if (this.readyState === 4) {
							 | 
						||
| 
								 | 
							
								                if (this.status === 200) {
							 | 
						||
| 
								 | 
							
								                    if (!!this.send_callback && (typeof this.send_callback) === "function") {
							 | 
						||
| 
								 | 
							
								                        this.send_callback(this.responseText);
							 | 
						||
| 
								 | 
							
								                        this.owner.onmessage(this.responseText);
							 | 
						||
| 
								 | 
							
								                        // console.log("send result"+this.responseText);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								        xhr.send(data);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.close = function () {
							 | 
						||
| 
								 | 
							
								    this.state = NSV_Ajax_State.Closed;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NSV_Ajax.prototype.send = function (data) {
							 | 
						||
| 
								 | 
							
								    this.postSendRequest(data,this.recvHandler,2000);
							 | 
						||
| 
								 | 
							
								};
							 |