ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/webui/wwwLegacy/js/panel/stk/ussd.js b/marvell/webui/wwwLegacy/js/panel/stk/ussd.js
new file mode 100644
index 0000000..e4267d4
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/stk/ussd.js
@@ -0,0 +1,166 @@
+
+/*
+Post
+<ussd>
+                <action/> <!-1: start session 2: end session 3: send indication response-->
+                <ussd_param/><!-only make sense when action is 1 or 3, should be encoded by UCS2-->
+</ussd>
+
+Get
+<ussd>
+                <ussd_type/><!-0: USSD notify 1: USSD-request 2: session terminated by network 3: other local client had responded 4:operation not supported 5: network timeout-->
+                <ussd_str/><!-USSD string encoded by UCS2-->
+</ussd>
+*/
+(function ($) {
+
+    $.fn.objussd = function (InIt) {
+
+        var timeoutCount = 0;
+
+        var action = 1;//1: start session 2: end session 3: send indication response
+
+        this.onLoad = function (flag) {
+			LoadWebPage("html/stk/ussd.html");
+            
+            $("#lt_ussd_btnDial").click(function() {
+                UssdDialUp();
+            });
+
+            $("#lt_ussd_btnCancel").click(function() {
+                CanCelUssdService();
+            });
+
+            $("#lt_ussd_btnSend").click(function() {
+                SendIndicationResponse();
+            });
+
+            InitUssdStatus();
+
+        }
+
+        function InitUssdStatus() {
+            var retXml = PostXml("ussd","get_ussd_ind");
+            var ussdType = $(retXml).find("ussd_type").text();
+            if("0" == ussdType ||  "1" == ussdType) {
+                $("#txtIndicationResponse").val("");
+                $("#lt_ussd_txtRecvContent").text(UniDecode($(retXml).find("ussd_str").text()));
+                $("#divUssdInteract").show();
+                if("1" == ussdType ) {
+                    $("#divIndicationResponse").show();
+                    $("#lt_ussd_btnSend").show();
+                } else {
+                    $("#divIndicationResponse").hide();
+                    $("#lt_ussd_btnSend").hide();
+                }
+            }
+        }
+	function validRspParam(param) {
+		var regex = /[0-9]{1}/;
+		if (!regex.test(param))
+			return false;
+		else
+			return true;
+	}	
+
+        function SendIndicationResponse() {
+            action = 3;
+            var mapData = new Map();
+            var param = $("#txtIndicationResponse").val();
+            if (!validRspParam(param)) {
+            	   $("#dialParamError").show().text(jQuery.i18n.prop('lrspParamError'));
+	     	   return;
+            }
+            mapData.put("RGW/ussd/action", action);
+            mapData.put("RGW/ussd/param", param);
+            PostXml("ussd","send_ussd",mapData);
+            sm("PleaseWait",150,100);
+            $("#lPleaseWait").text(jQuery.i18n.prop("h1PleaseWait"));
+            timeoutCount = 0;
+            setTimeout(QueryUssdNetworkStatus,10000);
+        }
+
+
+        function CanCelUssdService() {
+            action = 2;
+
+            var mapData = new Map();
+            mapData.put("RGW/ussd/action",action);
+            PostXml("ussd","send_ussd",mapData);
+
+
+            $("#lt_ussd_btnDial").attr("disabled",false);
+            $("#divUssdInteract").hide();
+            //setTimeout(QueryUssdNetworkStatus,1000);
+        }
+
+	function validDialParam(param) {
+		var regex = /[*]{1}[0-9]{2,10}[#]{1}/;
+		if (!regex.test(param))
+			return false;
+		else
+			return true;
+	}
+        function UssdDialUp() {
+            action = 1;
+            var mapData = new Map();
+            var param = $("#txtUssdServiceNumber").val();
+            if (!validDialParam(param)) {
+            	   $("#dialParamError").show().text(jQuery.i18n.prop('ldialParamError'));
+	     	   return;
+            }
+            mapData.put("RGW/ussd/action", action);
+            mapData.put("RGW/ussd/param", param);
+            PostXml("ussd","send_ussd",mapData);
+
+            sm("PleaseWait",150,100);
+            $("#lPleaseWait").text(jQuery.i18n.prop("h1PleaseWait"));
+            $("#lt_ussd_btnDial").attr("disabled",true);
+            timeoutCount = 0;
+            setTimeout(QueryUssdNetworkStatus,10000);
+        }
+
+        function QueryUssdNetworkStatus() {
+            var retXml = PostXml("ussd","get_ussd_ind");
+            var ussdType = $(retXml).find("ussd_type").text();
+
+            if(timeoutCount > 15) {
+                hm();
+            }
+
+            if("" == ussdType) {
+                ++timeoutCount;
+                setTimeout(QueryUssdNetworkStatus,1000);
+            } else if("0" == ussdType ||  "1" == ussdType) {
+                hm();
+                $("#lt_ussd_txtRecvContent").text(UniDecode($(retXml).find("ussd_str").text()));
+                $("#divUssdInteract").show();
+                if("1" == ussdType ) {
+                    $("#divIndicationResponse").show();
+                    $("#lt_ussd_btnSend").show();
+                } else {
+                    $("#divIndicationResponse").hide();
+                    $("#lt_ussd_btnSend").hide();
+                }
+
+            } else {
+                $("#lt_ussd_btnDial").attr("disabled",false);
+                $("#divUssdInteract").hide();
+                if("2" == ussdType) {                   
+                    showAlert("lsessionTerminate");
+                } else if("3" == ussdType) {
+                    showAlert("lsessionResponded");
+                } else if("4" == ussdType) {
+                    showAlert("lsessionOpertionNotSupport");
+                } else if("5" == ussdType) {
+                    showAlert("lsessionTimeout");
+                } else {
+                    showAlert("lsessioUnkown");
+                }
+            }
+        }
+
+        return this;
+    }
+})(jQuery);
+