aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-04-07 15:10:40 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-04-07 15:10:40 +0530
commit12746a82d6eb50a39e8a86fbfaf11edda1ce29ee (patch)
tree5664593bb485b3db336609cc0e5e103407e65a3b
parent329a68024ba7df2268dbbb85cf2d2b1189e6968e (diff)
add rev
-rw-r--r--rev/.gitignore1
-rw-r--r--rev/main.js1396
-rw-r--r--rev/package-lock.json109
-rw-r--r--rev/package.json6
-rw-r--r--rev/rev.js147
5 files changed, 1659 insertions, 0 deletions
diff --git a/rev/.gitignore b/rev/.gitignore
new file mode 100644
index 0000000..c2658d7
--- /dev/null
+++ b/rev/.gitignore
@@ -0,0 +1 @@
+node_modules/
diff --git a/rev/main.js b/rev/main.js
new file mode 100644
index 0000000..e6e7b8c
--- /dev/null
+++ b/rev/main.js
@@ -0,0 +1,1396 @@
+var hostIP = "https://app.ecourts.gov.in/ecourt_mobile_DC/";
+var netConnectCnt = 0;
+var isOnline = true;
+var isConnErrorMsgShown = false;
+var casesCountArr;
+//localization global variables
+var global_language = "English";
+var globalLanguageJSONObj = null;
+var globalServerLabelsJSONObj = null;
+var complexes = "";
+var bilingual_flag = 0;
+var cnrNumbersFromLocalStorage = window.localStorage.getItem("CNR Numbers");
+var labelsarr = window.sessionStorage.GLOBAL_LABELS != null ? JSON.parse(window.sessionStorage.GLOBAL_LABELS) : null;
+var totalNoOfEstLabel = labelsarr ? labelsarr[390] : "Total Number of Establishments in Court Complex";
+var totalNoOfCasesLabel = labelsarr ? labelsarr[83] : "Total Number of Cases";
+var partyNameLabel = labelsarr ? labelsarr[30] : "Party Name";
+var srNoLabel = labelsarr ? labelsarr[84] : "Sr.No";
+var caseNoLabel = labelsarr ? labelsarr[9] : "Case Number";
+var courtComplexSelectLabel = labelsarr ? labelsarr[268] : "Select Court Complex";
+var globaliv = "4B6250655368566D";
+var randomiv = "";
+var jwttoken = "";
+var regenerateWebserviceCallFlag = false;
+
+//Fetch parameter passed to url of html.
+function getParameterByName(name, url) {
+ if (!url)
+ url = window.location.href;
+ name = name.replace(/[\[\]]/g, "\\$&");
+ var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
+ results = regex.exec(url);
+ if (!results)
+ return null;
+ if (!results[2])
+ return '';
+ return decodeURIComponent(results[2].replace(/\+/g, " "));
+}
+
+function checkDeviceOnlineStatus() {
+ var condition = navigator.onLine ? "online" : "offline";
+ if (condition == "offline") {
+ isOnline = false;
+ if (!isOnline) {
+ // showErrorMessage("Please check your internet connection and Try again");
+ showErrorMessage(labelsarr[717]);
+ }
+ } else {
+ netConnectCnt = 0;
+ isOnline = true;
+ isConnErrorMsgShown = false;
+ }
+}
+
+function displayConnErrorMsg() {
+ if (!isConnErrorMsgShown) {
+ isConnErrorMsgShown = true;
+ showErrorMessage(labelsarr[717]);
+ // showErrorMessage("Please check your internet connection and Try again");
+ }
+}
+
+function ChangeUrl(title, url) {
+ if (typeof (history.pushState) != "undefined") {
+ var obj = { Title: title, Url: url };
+ history.pushState(obj, obj.Title, obj.Url);
+ } else {
+ show("Browser does not support HTML5.");
+ }
+}
+//Fetches court complexes data from web service
+function populateCourtComplexes() {
+ var state_code_data = window.localStorage.state_code;
+ var district_code_data = window.localStorage.district_code;
+
+ $select = $('#court_codec');
+ $select_pages = $('#court_code');
+
+ // if(complexes == "" || window.localStorage.SESSION_COURT_CODE == null || window.localStorage.SESSION_SELECTED_COMPLEX_CODE == null){
+ if (complexes == "") {
+ var courtComplexWebServiceUrl = hostIP + "courtEstWebService.php";
+
+ var encrypted_data1 = ("fillCourtComplex");
+ var encrypted_data2 = (state_code_data);
+ var encrypted_data3 = (district_code_data);
+
+ var data = { action_code: encrypted_data1.toString(), state_code: encrypted_data2.toString(), dist_code: encrypted_data3.toString() };
+
+ //web service call to get court complexes
+ callToWebService(courtComplexWebServiceUrl, data, courtComplexWebServiceResult);
+ function courtComplexWebServiceResult(data) {
+ var obj = (data.courtComplex);
+ myApp.hidePleaseWait();
+ if (obj != null) {
+ complexes = obj;
+ // window.sessionStorage.setItem("SESSION_COMPLEXES", data.courtComplex);
+ populateComplexes(obj);
+ } else {
+ $('#court_codec').append('<option id="" value="">' + courtComplexSelectLabel + '</option>');
+ $('#court_code').append('<option id="" value="">' + courtComplexSelectLabel + '</option>');
+ }
+
+ }
+ }
+ else {
+ // var obj = decodeResponse(complexes);
+ populateComplexes(complexes);
+ }
+
+
+}
+
+//Fills court complex select box
+function populateComplexes(obj) {
+ $('#court_codec').empty();
+ $('#court_code').empty();
+
+ // $select.append('<option id="" value="">Select Court Complex</option>');
+ $('#court_codec').append('<option id="" value="">' + courtComplexSelectLabel + '</option>');
+ $('#court_code').append('<option id="" value="">' + courtComplexSelectLabel + '</option>');
+ var txt_court_complex_name = null;
+ $.each(obj, function (key, val) {
+
+ if (bilingual_flag == 0) {
+ txt_court_complex_name = val.court_complex_name;
+
+ $('#court_codec').append('<option id="' + val.njdg_est_code + '" value="' + val.njdg_est_code + '" complex_code="' + val.complex_code + '">' + txt_court_complex_name + '</option>');
+ $('#court_code').append('<option id="' + val.njdg_est_code + '" value="' + val.njdg_est_code + '" complex_code="' + val.complex_code + '">' + txt_court_complex_name + '</option>');
+
+ } else {
+ if (val.lcourt_complex_name != "") {
+ txt_court_complex_name = val.lcourt_complex_name;
+ $('#court_codec').append('<option id="' + val.njdg_est_code + '" value="' + val.njdg_est_code + '" complex_code="' + val.complex_code + '">' + txt_court_complex_name + '</option>');
+ $('#court_code').append('<option id="' + val.njdg_est_code + '" value="' + val.njdg_est_code + '" complex_code="' + val.complex_code + '">' + txt_court_complex_name + '</option>');
+ }
+ }
+ });
+
+ if (window.localStorage.SESSION_COURT_CODE != null) {
+ $('#court_codec').val(window.localStorage.SESSION_COURT_CODE);
+ if ($('#court_code')) {
+ $('#court_code').val(window.localStorage.SESSION_COURT_CODE);
+ }
+ }
+}
+
+//show case history for selected case
+$(document).on('click', '.case_history_link', function (e) {
+ e.preventDefault();
+
+ var case_number = $(this).attr("case_no");
+ var court_code = $(this).attr("court_code");
+
+ var caseHistoryWsUrl = hostIP + "caseHistoryWebService.php";
+ var state_code_data = window.localStorage.state_code;
+ var district_code_data = window.localStorage.district_code;
+
+ var encrypted_data4 = (localStorage.LANGUAGE_FLAG);
+ // var encrypted_data5=0;
+ // if(localStorage.LANGUAGE_FLAG=="english"){
+ // encrypted_data5 = ("0");
+ // }else{
+ // encrypted_data5 = ("1");
+ // }
+
+ encrypted_data5 = (bilingual_flag.toString());
+
+ var data = { state_code: (state_code_data), dist_code: (district_code_data), case_no: (case_number), court_code: (court_code), language_flag: encrypted_data4.toString(), bilingual_flag: encrypted_data5.toString() };
+
+ // $('#loading').modal('show');
+
+ //web service call to get case history
+ callToWebService(caseHistoryWsUrl, data, caseHistoryWebServiceResult);
+ function caseHistoryWebServiceResult(data) {
+ // $('#loading').modal('hide');
+ myApp.hidePleaseWait();
+
+ if (data.history != null) {
+ if (CheckBrowser()) {
+ window.sessionStorage.setItem("case_history", JSON.stringify((data.history)));
+ }
+ if (window.localStorage.getItem("SELECTED_COURT") === "DC") {
+ // window.location = 'case_history.html';
+ $.ajax({
+ type: "GET",
+ url: "case_history.html"
+ }).done(function (data) {
+ // $("#caseHistoryModal").show();
+ $("#historyData").html(data);
+ $("#caseHistoryModal").modal('show');
+ $("#case_history_label").focus();
+
+ });
+ }
+ else if (window.localStorage.getItem("SELECTED_COURT") === "HC") {
+ // window.location = 'case_history_hc.html';
+
+ $.ajax({
+ type: "GET",
+ url: "case_history_hc.html"
+ }).done(function (data) {
+ $("#caseHistoryModal_hc").show();
+ $("#historyData_hc").html(data);
+ $("#caseHistoryModal_hc").modal();
+ });
+
+ }
+ } else {
+ showErrorMessage(labelsarr[718]);
+ // $('#loading').modal('hide');
+ myApp.hidePleaseWait();
+ }
+
+ }
+
+});
+
+//show filing case history for selected case
+$(document).on('click', '.filing_case_history_link', function (e) {
+ e.preventDefault();
+
+ var case_number = $(this).attr("case_no");
+ var court_code = $(this).attr("court_code");
+
+ var filingCaseHistoryWsUrl = hostIP + "filingCaseHistory.php";
+ var state_code_data = window.localStorage.state_code;
+ var district_code_data = window.localStorage.district_code;
+
+ var encrypted_data4 = (localStorage.LANGUAGE_FLAG);
+ var encrypted_data5 = 0;
+ // if(localStorage.LANGUAGE_FLAG=="english"){
+ // encrypted_data5 = ("0");
+ // }else{
+ // encrypted_data5 = ("1");
+ // }
+ encrypted_data5 = (bilingual_flag.toString());
+ var data = { state_code: (state_code_data), dist_code: (district_code_data), case_no: (case_number), court_code: (court_code), language_flag: encrypted_data4.toString(), bilingual_flag: encrypted_data5.toString() };
+
+ // $('#loading').modal('show');
+
+ //web service call to get filing case history
+ callToWebService(filingCaseHistoryWsUrl, data, filingCaseHistoryResult);
+ function filingCaseHistoryResult(data) {
+ if (data.history != null) {
+ if (CheckBrowser()) {
+ window.sessionStorage.setItem("filing_case_history", JSON.stringify((data.history)));
+ }
+
+ // window.location = 'filing_case_history.html';
+ $.ajax({
+ type: "GET",
+ url: "filing_case_history.html"
+ }).done(function (data) {
+ // $("#caseHistoryModal").show();
+ $("#historyData").html(data);
+ $("#caseHistoryModal").modal();
+ });
+
+ // $('#loading').modal('hide');
+ myApp.hidePleaseWait();
+ } else {
+ showErrorMessage(labelsarr[718]);
+ // $('#loading').modal('hide');
+ myApp.hidePleaseWait();
+ }
+ }
+});
+
+
+
+//check if browser supports localstorage
+function CheckBrowser() {
+ if ('localStorage' in window && window['localStorage'] !== null) {
+ // we can use localStorage object to store data
+ return true;
+ } else {
+ return false;
+ }
+}
+
+
+/*get data from web service. Called when there is no data in local storage for selected search*/
+function displayCasesTable(url, request_data) {
+ arrCourtEstCodes = [];
+ arrCourtEstCodes = window.localStorage.SESSION_COURT_CODE.split(',');
+ total_Cases = '';
+ $("#headers").empty();
+
+
+ var headerArray = [];
+ headerArray.push('<a style="color:#212529;" href="#" id="total_est_header">' + totalNoOfEstLabel + ':<span id="totalEstablishmentsSpanId"></span> </a></div>');
+ headerArray.push('<br>');
+ headerArray.push('<label>' + totalNoOfCasesLabel + ': <span id="totalcasesId"></span></label></div>');
+ $("#headers").append(headerArray);
+
+ var state_code_data = window.localStorage.state_code;
+ var district_code_data = window.localStorage.district_code;
+ $("#accordion_search").empty();
+ //Total number of establishments (comma separated values of court codes)
+ var establishments_count = arrCourtEstCodes.length;
+ //count used to check if data fetched for all the establishments.
+ var count1 = 0;
+ // $('#loading').modal('show');
+ myApp.showPleaseWait();
+ var jsonData = {};
+
+
+ /* for (var i = 0; i <= arrCourtEstCodes.length - 1; i++) {
+ if(arrCourtEstCodes[i] != ","){*/
+
+ var encrypted_data1 = state_code_data;
+ var encrypted_data2 = district_code_data;
+ var encrypted_data3 = arrCourtEstCodes;
+ var encrypted_data4 = (localStorage.LANGUAGE_FLAG);
+ // var encrypted_data5=null;
+ // if(localStorage.LANGUAGE_FLAG=="english"){
+ // encrypted_data5 = ("0");
+ // }else{
+ // encrypted_data5 = ("1");
+ // }
+ encrypted_data5 = (bilingual_flag.toString());
+
+
+ var data1 = { state_code: encrypted_data1.toString(), dist_code: encrypted_data2.toString(), court_code_arr: encrypted_data3.toString(), language_flag: encrypted_data4.toString(), bilingual_flag: encrypted_data5.toString() };
+
+ var data = $.extend({}, data1, request_data);
+
+ //Establishment name appears on each panel
+ var establishment_name;
+
+ //Id for panels of each establishement
+ var collapseid = 0;
+
+ //populate the result table with court establishment as collapse field
+ callToWebService(url, data, caseStatusSearchResult);
+ function caseStatusSearchResult(responseData) {
+ var obj_caseNos = null;
+ if (responseData != null) {
+ if (responseData.msg) {
+ if ((responseData.status) == 'fail') {
+ myApp.hidePleaseWait();
+ showErrorMessage((responseData.msg));
+ }
+ } else {
+ for (const val in responseData) {
+ var data = responseData[val];
+
+ obj_caseNos = (data.caseNos);
+ if (obj_caseNos != null) {
+ var obj_courtcode = (data.court_code);
+
+ var obj_establishment_name = (data.establishment_name);
+
+ jsonData[JSON.stringify(obj_courtcode)] = JSON.stringify(data);
+ // window.sessionStorage.setItem("SET_RESULT", JSON.stringify(jsonData));
+ window.sessionStorage.setItem("SET_RESULT", true);
+
+
+ var panel_body = [];
+ var totalCases = obj_caseNos.length;
+ total_Cases = Number(totalCases) + Number(total_Cases);
+ var trHTML = '';
+ var court_code = obj_courtcode;
+
+ panel_id = 'card' + state_code_data + district_code_data + court_code;
+
+
+ establishment_name = obj_establishment_name;
+ establishment_name = establishment_name + " : " + totalCases;
+
+ panel_body.push('<div class="card" id=' + panel_id + '">');
+ panel_body.push('<div class="card-header"><h4 class="panel-title"><a class="card-link collapsed panel-title-a" data-toggle="collapse" data-target="#' + panel_id + '" href="#' + panel_id + '">' + establishment_name + '</a></h4></div>');
+ panel_body.push("<div id=" + panel_id + " class='collapse'><div class='card-body'><table class='table tbl-result'><thead><tr><th>" + srNoLabel + "</th><th>" + caseNoLabel + "</th><th>" + partyNameLabel + "</th></tr></thead><tbody>");
+
+ collapseid++;
+ var index = 0;
+ var txt_type_name = null;
+ $.each(obj_caseNos, function (key, val) {
+ index++;
+ // if(localStorage.LANGUAGE_FLAG=="english"){
+ if (bilingual_flag != "1") {
+ txt_type_name = val.type_name;
+ } else {
+ txt_type_name = val.ltype_name;
+ }
+ var petresName = val.petnameadArr;
+ var case_type_number = txt_type_name + '/' + val.case_no2 + '/' + val.reg_year;
+
+ var casehistorylink = '';
+ var case_no_ = val.case_no;
+ if (val.case_no == null) {
+ case_no_ = val.filing_no;
+ casehistorylink = 'filing_case_history_link';
+ } else {
+ casehistorylink = 'case_history_link';
+ }
+
+ var hrefurl = "<a style='color:#03A8D8;text-decoration:underline;' href='#' class='" + casehistorylink + " 'court_code='" + court_code + "'cino='" + val.cino + "'case_no='" + case_no_ + "'>" + case_type_number + '</a>';
+
+ trHTML += "<tr><td>" + index + "</td><td>" + hrefurl + "</td><td>" + petresName + "</td></tr>";
+ panel_body.push("<tr><td>" + index + "</td><td>" + hrefurl + "</td><td>" + petresName + "</td></tr>");
+ });
+
+ panel_body.push("</tbody></table></div></div>");
+ count1++;
+ panel_body.push('</div>');
+ if (Number(totalCases) != 0) {
+ $("#accordion_search").append(panel_body.join(""));
+ }
+
+ document.getElementById('totalcasesId').innerHTML = total_Cases;
+ document.getElementById('totalEstablishmentsSpanId').innerHTML = establishments_count;
+
+ } else {
+ document.getElementById('totalEstablishmentsSpanId').innerHTML = establishments_count;
+
+ }
+ }
+ }
+
+ } else {
+ //establishments_count -= 1;
+ document.getElementById('totalEstablishmentsSpanId').innerHTML = establishments_count;
+
+ }
+ if (count1 == establishments_count) {
+ // $('#loading').modal('hide');
+
+ // $('#goButton').prop('autofocus');
+ // $('#total_est_header').attr('style','background:red');
+ myApp.hidePleaseWait();
+ $('#goButton').focus();
+ }
+
+
+ }
+
+
+
+
+ /* }else {
+ /*If connection to establishment fails, reduce the total number of establishments*/
+ /*establishments_count -= 1;
+ document.getElementById('totalEstablishmentsSpanId').innerHTML = establishments_count;
+
+}
+}*/
+}
+/*function to display header for all forms, case history , view business and writ info*/
+function second_header() {
+ // $("#header").load("header.html", function (response, status, xhr) {
+
+ // $('#go_back_link').on('click', function (event) {
+ // event.preventDefault();
+ // window.location = "index.html";
+ // });
+
+ // });
+
+ $("#header_srchpage").load("header.html", function (response, status, xhr) {
+
+ $('#go_back_link').on('click', function (event) {
+ backButtonHistory.pop();
+ window.sessionStorage.removeItem("SET_RESULT");
+ $("#searchPageModal").modal('hide');
+ var prev_selected_btn = window.sessionStorage.getItem("Selected_screen");
+ $("." + prev_selected_btn).focus();
+ });
+
+ $("#open_close1").on('click', function (event) {
+ if ($("#mySidenav1").is(':visible')) {
+ closeNav1();
+ } else {
+ openNav1();
+ }
+ });
+ });
+}
+
+/*To Export saved cases from local storage to myCases.txt file from device internal storage*/
+function backupContent(socialSharing, savetodatadir, showSuccessAlert) {
+ //var cnrNumbersStr = window.localStorage.getItem("CNR Numbers");
+ var cnrNumbersStr = 0;
+ var cnrNumbersArr_parsed;
+ var CNR_array = localStorage.getItem("CNR Numbers");
+ if (CNR_array) {
+ cnrNumbersArrLength = JSON.parse(CNR_array).length;
+ cnrNumbersArr_parsed = JSON.parse(CNR_array);
+ }
+
+ if (CNR_array && cnrNumbersArr_parsed.length != 0) {
+ cnrNumbersStr = CNR_array;
+ var fileName = '';
+ if (!showSuccessAlert) {
+ fileName = 'myCases.txt';
+ } else {
+ fileName = 'myCases_backup.txt';
+ }
+
+ var data = cnrNumbersStr;
+ if (socialSharing === "drive") {
+ myApp.showPleaseWait();
+ window.plugins.googleplus.login(
+ {
+ // 'scopes' : 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.appdata https://www.googleapis.com/auth/drive.apps.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.metadata https://www.googleapis.com/auth/drive.scripts',
+
+ 'scopes': 'https://www.googleapis.com/auth/drive.file',
+ 'webClientId': '658126779023-qls50eu22l3r5dipb8a4jm6kirdcrg83.apps.googleusercontent.com', // optional clientId of your Web application from Credentials settings of your project - On Android, this MUST be included to get an idToken. On iOS, it is not required.
+ 'offline': true, // optional, but requires the webClientId - if set to true the plugin will also return a serverAuthCode, which can be used to grant offline access to a non-Google server
+ },
+ function (obj) {
+ var access_token = obj.accessToken;
+ var boundary = "foo_bar_baz";
+ const delimiter = "\r\n--" + boundary + "\r\n";
+ const close_delim = "\r\n--" + boundary + "--";
+ var fileContent = cnrNumbersStr; // As a sample, upload a text file.
+ var tmpfile = new Blob([fileContent], { type: 'text/plain' });
+ var contentType = 'text/plain';
+
+ var metadata = {
+ "name": 'myCases.txt',
+ "mimeType": 'text/plain'
+ };
+
+ var multipartRequestBody =
+ delimiter + 'Content-Type: application/json\r\n\r\n' +
+ JSON.stringify(metadata) +
+ delimiter + 'Content-Type: ' + contentType + '\r\n' + '\r\n' +
+ cnrNumbersStr +
+ close_delim;
+
+ //var fileId = window.localStorage.getItem("FILE_ID");
+
+ $.ajax({
+ type: "GET",
+ beforeSend: function (request) {
+ request.setRequestHeader("Authorization", "Bearer" + " " + access_token);
+ },
+ url: "https://www.googleapis.com/drive/v3/files?q=(name = 'myCases.txt')",
+
+ success: function (data) {
+ //alert(JSON.stringify(data));
+ if (data.files.length == 1) {
+ var fileId = data.files[0].id;
+ $.ajax({
+ type: "PATCH",
+ beforeSend: function (request) {
+ request.setRequestHeader("Authorization", "Bearer" + " " + access_token);
+ request.setRequestHeader("Content-Type", 'multipart/related; boundary="' + boundary + '"');
+
+ },
+ url: "https://www.googleapis.com/upload/drive/v3/files/" + fileId + "/?uploadType=multipart",
+
+ success: function (data) {
+ alert(labelsarr[676]);
+ myApp.hidePleaseWait();
+ localStorage.setItem("LAST_MyCASES_EXPORT", new Date());
+ $("#exportCasesWarning").hide();
+ $("#my_cases_text").show();
+
+ },
+ error: function (error) {
+ alert(error);
+ myApp.hidePleaseWait();
+ //alert('error'+JSON.stringify(error));
+ },
+ async: true,
+ data: multipartRequestBody,
+ cache: false,
+ contentType: false,
+ processData: false,
+ crossDomain: true
+ });
+ } else if (data.files.length == 0) {
+ $.ajax({
+ type: "POST",
+ beforeSend: function (request) {
+ request.setRequestHeader("Authorization", "Bearer" + " " + access_token);
+ request.setRequestHeader("Content-Type", 'multipart/related; boundary="' + boundary + '"');
+
+ },
+ url: "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
+
+ success: function (data) {
+ alert(labelsarr[677]);
+ myApp.hidePleaseWait();
+ localStorage.setItem("LAST_MyCASES_EXPORT", new Date());
+ $("#exportCasesWarning").hide();
+ $("#my_cases_text").show();
+
+ },
+ error: function (error) {
+ //alert('error'+JSON.stringify(error));
+ alert(labelsarr[705]);
+ myApp.hidePleaseWait();
+ },
+ async: true,
+ data: multipartRequestBody,
+ cache: false,
+ contentType: false,
+ processData: false,
+ crossDomain: true
+ });
+ } else if (data.files.length > 1) {
+ alert(labelsarr[671]);
+ myApp.hidePleaseWait();
+ }
+
+ },
+ error: function (error) {
+ myApp.hidePleaseWait();
+ alert(labelsarr[705]);
+ }
+ });
+ },
+ function (msg) {
+ myApp.hidePleaseWait();
+ alert(labelsarr[705]);
+ }
+
+ );
+ } else if (socialSharing === "telegram") {
+ window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (directoryEntry) {
+ directoryEntry.getFile(fileName, { create: true }, function (fileEntry) {
+ fileEntry.createWriter(function (fileWriter) {
+ fileWriter.onwriteend = function (result) {
+ window.plugins.socialsharing.shareVia('telegram', 'Message via telegram', fileName, cordova.file.externalRootDirectory + fileName, function (e) { alert(e) }, function (e) { alert(e) });
+ };
+ fileWriter.onerror = function (error) {
+ showErrorMessage(error);
+ };
+ fileWriter.write(data);
+ }, function (error) {
+ showErrorMessage(error);
+ });
+ }, function (error) {
+ showErrorMessage(error);
+ });
+ }, function (error) {
+ showErrorMessage(error);
+ });
+
+ } else if (socialSharing === "email") {
+ var storageLocation;
+ switch (device.platform) {
+ case "Android":
+ if (savetodatadir) {
+ storageLocation = cordova.file.externalDataDirectory;
+ } else {
+ storageLocation = cordova.file.externalRootDirectory + "Download/";
+ }
+ break;
+
+ case "iOS":
+ storageLocation = cordova.file.documentsDirectory;
+ break;
+ }
+
+ window.resolveLocalFileSystemURL(storageLocation, function (directoryEntry) {
+ directoryEntry.getFile(fileName, { create: true }, function (fileEntry) {
+ fileEntry.createWriter(function (fileWriter) {
+ fileWriter.onwriteend = function (result) {
+ window.plugins.socialsharing.shareViaEmail('Message',
+ 'Subject',
+ null,
+ null,
+ null,
+ [storageLocation + fileName],
+ function (e) { },
+ function (e) {
+ localStorage.setItem("LAST_MyCASES_EXPORT", new Date());
+ $("#exportCasesWarning").hide();
+ $("#my_cases_text").show();
+ });
+ };
+ fileWriter.onerror = function (error) {
+ if (savetodatadir) {
+ showErrorMessage("error1 " + error.code, error.code);
+ }
+ };
+ fileWriter.write(data);
+ }, function (error) {
+ if (savetodatadir) {
+ showErrorMessage("error2 " + error.code, error.code);
+ }
+ });
+ }, function (error) {
+ if (savetodatadir) {
+ showErrorMessage("error3 " + error.code, error.code);
+ }
+ });
+ }, function (error) {
+ if (savetodatadir) {
+ showErrorMessage("error4 " + error.code, error.code);
+ }
+ });
+ if (!savetodatadir) {
+ backupContent(socialSharing, true);
+ }
+
+ } else if (socialSharing === "device") {
+
+ myApp.showPleaseWait();
+ var storageLocation;
+ switch (device.platform) {
+ case "Android":
+ if (savetodatadir) {
+ storageLocation = cordova.file.externalDataDirectory;
+ } else {
+ storageLocation = cordova.file.externalRootDirectory + "Download/";
+ }
+ break;
+
+ case "iOS":
+ storageLocation = cordova.file.documentsDirectory;
+ break;
+ }
+
+ // window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (directoryEntry) {
+ window.resolveLocalFileSystemURL(storageLocation, function (directoryEntry) {
+ directoryEntry.getFile(fileName, { create: true, exclusive: false }, function (fileEntry) {
+ fileEntry.createWriter(function (fileWriter) {
+ fileWriter.onwriteend = function (result) {
+ myApp.hidePleaseWait();
+ if (savetodatadir && !showSuccessAlert) {
+ alert(labelsarr[678]);
+ }
+
+ if (!showSuccessAlert) {
+ localStorage.setItem("LAST_MyCASES_EXPORT", new Date());
+ $("#exportCasesWarning").hide();
+ $("#my_cases_text").show();
+ }
+ };
+ fileWriter.onerror = function (error) {
+ myApp.hidePleaseWait();
+ if (savetodatadir) {
+ showErrorMessage("error1 " + error.code, error.code);
+ }
+ };
+ fileWriter.write(data);
+ }, function (error) {
+ myApp.hidePleaseWait();
+ if (savetodatadir) {
+ showErrorMessage("error2 " + error.code, error.code);
+ }
+ });
+ }, function (error) {
+ myApp.hidePleaseWait();
+ if (savetodatadir) {
+ showErrorMessage("error3 " + error.code, error.code);
+ }
+ });
+ }, function (error) {
+ myApp.hidePleaseWait();
+ if (savetodatadir) {
+ showErrorMessage("error4 " + error.code, error.code);
+ }
+ });
+ if (!savetodatadir) {
+ backupContent(socialSharing, true);
+ }
+
+ }
+ } else {
+ myApp.hidePleaseWait();
+ if (savetodatadir && !showSuccessAlert) {
+ showErrorMessage(labelsarr[836]);
+ }
+ }
+
+}
+
+
+
+/*To Import cases from myCases.txt file from device internal storage to local storage and display in My Cases */
+function importFileFrom(socialSharing, readFromDataDir, showSuccsAlrt) {
+ var fileName = ''; // your file name
+ if (!showSuccsAlrt) {
+ fileName = 'myCases.txt';
+ } else {
+ fileName = 'myCases_backup.txt';
+ }
+
+ if (socialSharing === "device") {
+ myApp.showPleaseWait();
+ /*$.get('test.txt', function(data) {
+ backupcnrNumbersArray = JSON.parse(data);
+ if (backupcnrNumbersArray.length > 0) {
+ myApp.hidePleaseWait();
+ localStorage.setItem("CNR Numbers", JSON.stringify(backupcnrNumbersArray));
+ $("#showCaseDiv").show();
+// resetDatePicker();
+ clearSearchText();
+ $("#searchCasesButton").click();
+ $("#allCasesBtn").addClass("active");
+ $("#todaysCasesBtn").removeClass("active");
+
+ updateAllCasesAcordion(backupcnrNumbersArray);
+ setCalendarCountArr(backupcnrNumbersArray);
+ document.getElementById("mycases_span_id").innerHTML = backupcnrNumbersArray.length;
+ } else {
+ myApp.hidePleaseWait();
+ showErrorMessage("No cases found");
+ }
+ }, 'text');*/
+ var storageLocation;
+ switch (device.platform) {
+ case "Android":
+ if (readFromDataDir) {
+ storageLocation = cordova.file.externalDataDirectory;
+ } else {
+ storageLocation = cordova.file.externalRootDirectory + "Download";
+ }
+ break;
+
+ case "iOS":
+ storageLocation = cordova.file.documentsDirectory;
+ break;
+ }
+
+ window.resolveLocalFileSystemURL(storageLocation, function (directoryEntry) {
+
+ directoryEntry.getFile(fileName, { create: false }, function (fileEntry) {
+
+ fileEntry.file(function (file) {
+
+ var reader = new FileReader();
+ reader.onloadend = function (e) {
+ if (reader.result == null) {
+ myApp.hidePleaseWait();
+ //showErrorMessage(labelsarr[672]+" "+fileName+" "+labelsarr[673]);
+ if (!readFromDataDir) {
+ importFileFrom(socialSharing, true);
+ } else if (!showSuccsAlrt) {
+ showErrorMessage(labelsarr[672] + " " + fileName + " " + labelsarr[673]);
+ }
+ } else {
+ backupcnrNumbersArray = JSON.parse(reader.result);
+ if (backupcnrNumbersArray.length > 0) {
+ if (showSuccsAlrt) {
+ $("#importCasesDialog").modal();
+ } else {
+ localStorage.setItem("CNR Numbers", JSON.stringify(backupcnrNumbersArray));
+
+ $("#showCaseDiv").show();
+ //resetDatePicker();
+ clearSearchText();
+ $("#searchCasesButton").click();
+ $("#allCasesBtn").addClass("active");
+ $("#todaysCasesBtn").removeClass("active");
+
+ setCalendarCountArr(backupcnrNumbersArray);
+
+ updateAllCasesAcordion();
+ document.getElementById("mycases_span_id").innerHTML = backupcnrNumbersArray.length;
+ myApp.hidePleaseWait();
+ if (!showSuccsAlrt) {
+ alert(labelsarr[669]);
+ }
+ }
+ $("#btnYes").click(function () {
+ localStorage.setItem("CNR Numbers", JSON.stringify(backupcnrNumbersArray));
+
+ $("#showCaseDiv").show();
+ //resetDatePicker();
+ clearSearchText();
+ $("#searchCasesButton").click();
+ $("#allCasesBtn").addClass("active");
+ $("#todaysCasesBtn").removeClass("active");
+
+ setCalendarCountArr(backupcnrNumbersArray);
+
+ updateAllCasesAcordion();
+ document.getElementById("mycases_span_id").innerHTML = backupcnrNumbersArray.length;
+ myApp.hidePleaseWait();
+ if (!showSuccsAlrt) {
+ alert(labelsarr[669]);
+ }
+ $("#importCasesDialog").hide();
+ });
+ $("#btnCancle").click(function () {
+ $("#importCasesDialog").hide();
+ return;
+ });
+
+ } else {
+ myApp.hidePleaseWait();
+ //showErrorMessage(labelsarr[681]);
+ if (!readFromDataDir) {
+ importFileFrom(socialSharing, true);
+ } else if (!showSuccsAlrt) {
+ showErrorMessage(labelsarr[681]);
+ }
+ }
+ }
+ }
+
+ reader.readAsText(file);
+ }, errorHandler);
+ }, onErrorCreateFile);
+ });
+ function errorHandler() {
+ myApp.hidePleaseWait();
+ if (!readFromDataDir) {
+ importFileFrom(socialSharing, true);
+ } else if (!showSuccsAlrt) {
+ showErrorMessage(labelsarr[672] + " " + fileName + " " + labelsarr[673]);
+ }
+ }
+ function onErrorCreateFile() {
+ myApp.hidePleaseWait();
+ if (!readFromDataDir) {
+ importFileFrom(socialSharing, true);
+ } else if (!showSuccsAlrt) {
+ showErrorMessage(labelsarr[672] + " " + fileName + " " + labelsarr[673]);
+ }
+ }
+
+ } else if (socialSharing === "drive") {
+ myApp.showPleaseWait();
+ window.plugins.googleplus.login(
+ {
+ //'scopes' : 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.appdata https://www.googleapis.com/auth/drive.apps.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.metadata https://www.googleapis.com/auth/drive.scripts',
+
+ 'scopes': 'https://www.googleapis.com/auth/drive.file',
+ 'webClientId': '658126779023-qls50eu22l3r5dipb8a4jm6kirdcrg83.apps.googleusercontent.com', // optional clientId of your Web application from Credentials settings of your project - On Android, this MUST be included to get an idToken. On iOS, it is not required.
+ 'offline': true, // optional, but requires the webClientId - if set to true the plugin will also return a serverAuthCode, which can be used to grant offline access to a non-Google server
+ },
+ function (obj) {
+ var access_token = obj.accessToken;
+ var contentType = 'text/plain';
+
+ $.ajax({
+ type: "GET",
+ dataType: "json",
+ beforeSend: function (request) {
+ request.setRequestHeader("Authorization", "Bearer" + " " + access_token);
+ },
+ url: "https://www.googleapis.com/drive/v3/files?q=(name = 'myCases.txt')",
+
+ success: function (data) {
+
+ myApp.hidePleaseWait();
+ if (data.files.length == 1) {
+ var fileId = data.files[0].id;
+ $.ajax({
+ type: "GET",
+ beforeSend: function (request1) {
+ request1.setRequestHeader("Authorization", "Bearer" + " " + access_token);
+ },
+ url: "https://www.googleapis.com/drive/v3/files/" + fileId + "?alt=media",
+
+ success: function (data) {
+
+ backupcnrNumbersArray = JSON.parse(data);
+ if (backupcnrNumbersArray.length > 0) {
+ localStorage.setItem("CNR Numbers", JSON.stringify(backupcnrNumbersArray));
+
+ $("#showCaseDiv").show();
+ //resetDatePicker();
+ clearSearchText();
+ $("#searchCasesButton").click();
+ $("#allCasesBtn").addClass("active");
+ $("#todaysCasesBtn").removeClass("active");
+
+ setCalendarCountArr(backupcnrNumbersArray);
+
+ updateAllCasesAcordion();
+ document.getElementById("mycases_span_id").innerHTML = backupcnrNumbersArray.length;
+ alert(labelsarr[669]);
+ myApp.hidePleaseWait();
+ } else {
+ myApp.hidePleaseWait();
+ showErrorMessage(labelsarr[681]);
+ }
+ },
+ error: function (error) {
+ myApp.hidePleaseWait();
+ alert(labelsarr[705]);
+ //alert('error'+JSON.stringify(error));
+ }
+ });
+ } else if (data.files.length == 0) {
+ myApp.hidePleaseWait();
+ alert(labelsarr[670]);
+ } else if (data.files.length > 1) {
+ myApp.hidePleaseWait();
+ alert(labelsarr[671]);
+ }
+ },
+ error: function (error) {
+ myApp.hidePleaseWait();
+ alert(labelsarr[705]);
+ //alert(JSON.stringify(error));
+ }
+
+ });
+ });
+ }
+}
+
+
+/*$.get('test.txt', function(data) {
+
+ backupcnrNumbersArray = JSON.parse(data);
+ if (backupcnrNumbersArray.length > 0) {
+ localStorage.setItem("CNR Numbers", JSON.stringify(backupcnrNumbersArray));
+ $("#showCaseDiv").show();
+// resetDatePicker();
+ clearSearchText();
+ $("#searchCasesButton").click();
+ $("#allCasesBtn").addClass("active");
+ $("#todaysCasesBtn").removeClass("active");
+
+ updateAllCasesAcordion(backupcnrNumbersArray);
+ setCalendarCountArr(backupcnrNumbersArray);
+ document.getElementById("mycases_span_id").innerHTML = backupcnrNumbersArray.length;
+ } else {
+ showErrorMessage("No cases found");
+ }
+ }, 'text'); */
+
+// function ConfirmDialog(message) {
+// $('<div></div>').appendTo('body')
+// .html('<div><h6>' + message + '?</h6></div>')
+// .dialog({
+// modal: true,
+// title: 'Delete message',
+// zIndex: 10000,
+// autoOpen: true,
+// width: 'auto',
+// resizable: false,
+// buttons: {
+// Yes: function() {
+// $('body').append('<h1>Confirm Dialog Result: <i>Yes</i></h1>');
+// $(this).dialog("close");
+// },
+// No: function() {
+// $('body').append('<h1>Confirm Dialog Result: <i>No</i></h1>');
+// $(this).dialog("close");
+// }
+// },
+// close: function(event, ui) {
+// $(this).remove();
+// }
+// });
+// };
+
+//below code to import language string files for localization...
+function importLanguageFile() {
+ var getAllLabelsWebServiceUrl = hostIP + "getAllLabelsWebService.php";
+
+ var encrypted_data1 = (localStorage.getItem("LANGUAGE_FLAG"));
+ if (localStorage.LANGUAGE_FLAG == "english") {
+ var encrypted_data2 = ("0");
+ } else {
+ var encrypted_data2 = ("1");
+ }
+
+ /* */
+ // var bilingual_flag1 = "1";
+ // var encrypted_data2 = (bilingual_flag1.toString());
+
+ // var encrypted_data2 = (bilingual_flag.toString());
+ var data = { language_flag: encrypted_data1.toString(), bilingual_flag: encrypted_data2.toString() };
+
+ //web service call to get court complexes
+ callToWebService(getAllLabelsWebServiceUrl, data, getAllLabelsWebServiceResult);
+ function getAllLabelsWebServiceResult(data) {
+ var obj = (data.allLabels);
+
+ if (window.sessionStorage.LANGUAGES_AVAILABLE == null) {
+ var languages = (data.languages_available);
+ window.sessionStorage.setItem("LANGUAGES_AVAILABLE", JSON.stringify(languages));
+ populateLabelsRadioButtons(languages);
+ } else {
+ populateLabelsRadioButtons(JSON.parse(window.sessionStorage.LANGUAGES_AVAILABLE));
+ }
+ myApp.hidePleaseWait();
+ if (obj != null) {
+ resetLabelsOnIndexPage(obj);
+ resetAllTabPanels();
+ } else {
+ showErrorMessage(labelsarr[675]);
+ }
+ }
+}
+
+//variable to save cause list result in session storage(To avoid repeat ajax calls once result is retrieved)
+var CAUSE_LIST_RESULT = '';
+
+/*setter for cause list result called after getting the result for cause
+list seatch
+*@cause_list_result : stringified cases json object
+*/
+function setCauseListResult(cause_list_result) {
+ CAUSE_LIST_RESULT = cause_list_result;
+}
+
+//getter for cause list result called to get cause list search result after page reload
+function getCauseListResult() {
+ return CAUSE_LIST_RESULT;
+}
+
+//function to retain state of collapse fields after page reload
+$(document).on("show.bs.collapse", ".collapse", function (event) {
+ var active = $(this).attr('id');
+ var panels = localStorage.panels === undefined ? new Array() : JSON.parse(localStorage.panels);
+ if ($.inArray(active, panels) == -1) //check that the element is not in the array
+ panels.push(active);
+ localStorage.panels = JSON.stringify(panels);
+});
+
+//function to retain state of collapse fields after page reload
+$(document).on("hidden.bs.collapse", ".collapse", function (event) {
+ var active = $(this).attr('id');
+ var panels = localStorage.panels === undefined ? new Array() : JSON.parse(localStorage.panels);
+ var elementIndex = $.inArray(active, panels);
+ if (elementIndex !== -1) //check the array
+ {
+ panels.splice(elementIndex, 1); //remove item from array
+ }
+ localStorage.panels = JSON.stringify(panels); //save array on localStorage
+});
+
+
+function setRandomIv(riv) {
+ randomiv = riv;
+}
+
+function getRandomIv() {
+ return randomiv;
+}
+
+
+/*
+*function to decrypt response
+*@result : encrypted result
+*/
+function decodeResponse(result) {
+ var key = CryptoJS.enc.Hex.parse('3273357638782F413F4428472B4B6250');
+ var iv_random = CryptoJS.enc.Hex.parse(result.trim().slice(0, 32));
+ var result_split = result.trim().slice(32);
+ var bytes = CryptoJS.AES.decrypt(result_split.trim(), key, { iv: iv_random }, { mode: CryptoJS.mode.CBC });
+ var plaintext = bytes.toString(CryptoJS.enc.Utf8);
+ s = plaintext;
+ s = s.replace(/\\n/g, "\\n")
+ .replace(/\\'/g, "\\'")
+ .replace(/\\"/g, '\\"')
+ .replace(/\\&/g, "\\&")
+ .replace(/\\r/g, "\\r")
+ .replace(/\\t/g, "\\t")
+ .replace(/\\b/g, "\\b")
+ .replace(/\\f/g, "\\f");
+ // remove non-printable and other non-valid JSON chars
+ s = s.replace(/[\u0000-\u0019]+/g, "");
+ return s;
+}
+
+
+//Function to generate random hex number
+function genRanHex(size) {
+ var hex = [...Array(size)]
+ .map(() => Math.floor(Math.random() * 16).toString(16)).join('');
+ return hex;
+}
+
+//common code for spinner
+var myApp;
+myApp = myApp || (function () {
+
+ var pleaseWaitDiv = $('<div class="modal" id="pleaseWaitDialog" data-backdrop="static"data-keyboard="false"><div class="modal-content" style="margin-top:50%;"><div class="modal-body text-center"><i class="fa fa-spinner fa-spin fa-3x fa-fw"></i><h3 style="color:#FFF;font-weight: bold;" >loading...</h3></div></div></div>');
+
+ return {
+ showPleaseWait: function () {
+ pleaseWaitDiv.modal('show');
+ },
+ hidePleaseWait: function () {
+ pleaseWaitDiv.modal('hide');
+ },
+
+ };
+})();
+//spinner code ends
+
+//common function to show error messages
+function showErrorMessage(message) {
+ $.bootstrapGrowl(message, {
+ ele: 'body', // which element to append to
+ type: 'danger', // (null, 'info', 'danger', 'success')
+ offset: { from: 'bottom', amount: 20 }, // 'top', or 'bottom'
+ align: 'center', // ('left', 'right', or 'center')
+ width: 'auto', // (integer, or 'auto')
+ delay: 2000, // Time while the message will be displayed. It's not equivalent to the *demo* timeOut!
+ allow_dismiss: false, // If true then will display a cross to close the popup.
+ stackup_spacing: 10 // spacing between consecutively stacked growls.
+ });
+}
+
+//common function to show info messages
+function showInfoMessage(message) {
+ $.bootstrapGrowl(message, {
+ ele: 'body', // which element to append to
+ type: 'info', // (null, 'info', 'danger', 'success')
+ offset: { from: 'bottom', amount: 20 }, // 'top', or 'bottom'
+ align: 'center', // ('left', 'right', or 'center')
+ width: 'auto', // (integer, or 'auto')
+ delay: 2000, // Time while the message will be displayed. It's not equivalent to the *demo* timeOut!
+ allow_dismiss: false, // If true then will display a cross to close the popup.
+ stackup_spacing: 10 // spacing between consecutively stacked growls.
+ });
+}
+
+
+function getCalendarCountArr() {
+ return casesCountArr;
+}
+
+function setCalendarCountArr(cnrNumbersArr) {
+
+ if (cnrNumbersArr && cnrNumbersArr.length > 0) {
+ calendarDates = cnrNumbersArr.reduce(function (calendarDates, current) {
+
+ var caseInfo = JSON.parse(current);
+
+ /*let dtNextStr = "";
+ let dtLastStr = "";
+ let dtDecStr = "";*/
+
+ var dtNextStr = "";
+ var dtLastStr = "";
+ var dtDecStr = "";
+
+ if (caseInfo.date_next_list) {
+ dtNext = caseInfo.date_next_list.split('-');
+ dtNextStr = (dtNext[2] + "-" + dtNext[1] + "-" + dtNext[0]);
+ }
+
+ if (caseInfo.date_last_list) {
+ dtLast = caseInfo.date_last_list.split('-');
+ dtLastStr = (dtLast[2] + "-" + dtLast[1] + "-" + dtLast[0]);
+ }
+
+ if (caseInfo.date_of_decision) {
+ dtDec = caseInfo.date_of_decision.split('-');
+ dtDecStr = (dtDec[2] + "-" + dtDec[1] + "-" + dtDec[0]);
+ }
+
+ if (dtNextStr) {
+ calendarDates[dtNextStr] = calendarDates[dtNextStr] || [];
+ calendarDates[dtNextStr].push(current);
+ }
+
+ if (dtLastStr) {
+ if ((dtNextStr != dtLastStr) && (dtNextStr != dtDecStr) && (dtLastStr != dtDecStr)) {
+ calendarDates[dtLastStr] = calendarDates[dtLastStr] || [];
+ calendarDates[dtLastStr].push(current);
+ }
+ }
+
+ if (dtDecStr) {
+ if ((dtNextStr != dtLastStr) && (dtNextStr != dtDecStr)) {
+ calendarDates[dtDecStr] = calendarDates[dtDecStr] || [];
+ calendarDates[dtDecStr].push(current);
+ }
+ }
+
+ return calendarDates;
+
+ }, {});
+ var calendarCntArr = {};
+ $.each(calendarDates, function (index, value) {
+ //let length = calendarDates[index].length;
+ var length = calendarDates[index].length;
+ calendarCntArr[index] = length;
+ });
+ casesCountArr = calendarCntArr;
+ } else {
+ casesCountArr = null;
+ }
+}
+
+function mapMarkerClicked() {
+ // window.location = 'map.html?navigation_link=case_history.html&state_code='+state_code+'&dist_code='+district_code+'&court_code='+court_code+'&complex_code='+complex_code;
+
+ $.ajax({
+ type: "GET",
+ url: "map.html?navigation_link=home"
+ }).done(function (data) {
+ // $("#caseHistoryModal").show();
+ document.getElementById("mySidenav").style.display = "none";
+ $("#mapData").html(data);
+ $("#mapModal").modal();
+ });
+
+}
+
+//checks connection
+function checkConnection() {
+ var networkState = navigator.connection && navigator.connection.type;
+ if ((networkState == 'offline') || (networkState == 'none')) {
+
+ netConnectCnt = netConnectCnt + 1;
+ if (netConnectCnt <= 1) {
+ showErrorMessage(labelsarr[717]);
+ // showErrorMessage("Please check your internet connection and Try again");
+ }
+ isOnline = false;
+ } else {
+ isOnline = true;
+ }
+}
+
+function callToWebService(url, data, callback) {
+ var data1 = encryptData(data);
+ header = {
+ 'Authorization': 'Bearer ' + encryptData(jwttoken)
+ };
+
+ cordova.plugin.http.setRequestTimeout(180);
+ cordova.plugin.http.get(url, {
+ params: data1
+ }, header, function (response) {
+
+ var responseDecoded = JSON.parse(decodeResponse(response.data));
+
+ if (responseDecoded.token) {
+ jwttoken = responseDecoded.token;
+ }
+
+ if (responseDecoded.status && responseDecoded.status == 'N') {
+ if (responseDecoded.status_code == '401') {
+ if (!regenerateWebserviceCallFlag) {
+ regenerateWebserviceCallFlag = true;
+ cordova.getAppVersion.getPackageName(function (pkgname) {
+ var uidObj = {
+ "uid": "324456" + ":" + pkgname
+ };
+ data = {
+ ...data,
+ ...uidObj
+ };
+ callToWebService(url, data, callback);
+ });
+ } else {
+ showErrorMessage("Session expired !");
+ }
+ }
+ if (responseDecoded.msg)
+ showErrorMessage(responseDecoded.msg);
+ } else {
+ callback(responseDecoded);
+ regenerateWebserviceCallFlag = false;
+ }
+ }, function (response) {
+ //showErrorMessage(labelsarr[705]);
+ myApp.hidePleaseWait();
+ regenerateWebserviceCallFlag = false;
+ });
+
+
+ function encryptData(data) {
+ var dataEncoded = JSON.stringify(data);
+ generateGlobalIv();
+ var randomiv = genRanHex(16);
+ var key = CryptoJS.enc.Hex.parse('4D6251655468576D5A7134743677397A');
+ var iv = CryptoJS.enc.Hex.parse(globaliv + randomiv);
+ var encrypted = CryptoJS.AES.encrypt((dataEncoded), key, {
+ iv: iv
+ });
+ var encrypted_data = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
+ encrypted_data = randomiv + globalIndex + encrypted_data;
+ return encrypted_data;
+ }
+
+ function generateGlobalIv() {
+ var a = ["556A586E32723575", "34743777217A2543", "413F4428472B4B62", "48404D635166546A", "614E645267556B58", "655368566D597133"];
+ var test_arr = [0, 1, 2, 3, 4, 5];
+ shuffle(test_arr);
+
+ function shuffle(array) {
+ var i = 0,
+ j = 0,
+ temp = null
+
+ for (i = array.length - 1; i > 0; i -= 1) {
+ j = Math.floor(Math.random() * (i + 1))
+ temp = array[i]
+ array[i] = array[j]
+ array[j] = temp
+ }
+ }
+ globaliv = a[test_arr[0]].toString();
+ globalIndex = test_arr[0];
+ }
+}
diff --git a/rev/package-lock.json b/rev/package-lock.json
new file mode 100644
index 0000000..7351f0a
--- /dev/null
+++ b/rev/package-lock.json
@@ -0,0 +1,109 @@
+{
+ "name": "rev",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "crypto-js": "^4.2.0",
+ "node-fetch": "^3.3.2"
+ }
+ },
+ "node_modules/crypto-js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==",
+ "license": "MIT"
+ },
+ "node_modules/data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fetch-blob": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
+ "license": "MIT",
+ "dependencies": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
+ }
+ },
+ "node_modules/web-streams-polyfill": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ }
+ }
+}
diff --git a/rev/package.json b/rev/package.json
new file mode 100644
index 0000000..0446880
--- /dev/null
+++ b/rev/package.json
@@ -0,0 +1,6 @@
+{
+ "dependencies": {
+ "crypto-js": "^4.2.0",
+ "node-fetch": "^3.3.2"
+ }
+}
diff --git a/rev/rev.js b/rev/rev.js
new file mode 100644
index 0000000..2bfd9ef
--- /dev/null
+++ b/rev/rev.js
@@ -0,0 +1,147 @@
+const CryptoJS = require('crypto-js');
+const { URLSearchParams } = require('url');
+const dns = require('dns').promises;
+
+// Configuration and state
+const hostIP = "https://app.ecourts.gov.in/ecourt_mobile_DC/";
+let jwttoken = "";
+let regenerateWebserviceCallFlag = false;
+let globaliv = "4B6250655368566D";
+let globalIndex = 0;
+
+// Utility: Check internet connection
+async function checkDeviceOnlineStatus() {
+ try {
+ await dns.lookup('google.com');
+ return true;
+ } catch {
+ console.error("Please check your internet connection and try again");
+ return false;
+ }
+}
+
+// Show error message (replace alert with console)
+function showErrorMessage(message) {
+ console.error("Error:", message);
+}
+
+// Generate random hex
+function genRanHex(size) {
+ return [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join('');
+}
+
+// Generate global IV
+function generateGlobalIv() {
+ const ivOptions = [
+ "556A586E32723575", "34743777217A2543", "413F4428472B4B62",
+ "48404D635166546A", "614E645267556B58", "655368566D597133"
+ ];
+ const indices = [0, 1, 2, 3, 4, 5];
+ for (let i = indices.length - 1; i > 0; i--) {
+ const j = Math.floor(Math.random() * (i + 1));
+ [indices[i], indices[j]] = [indices[j], indices[i]];
+ }
+ globaliv = ivOptions[indices[0]];
+ globalIndex = indices[0];
+ return globaliv;
+}
+
+// Encrypt data
+function encryptData(data) {
+ const dataEncoded = JSON.stringify(data);
+ generateGlobalIv();
+ const randomiv = genRanHex(16);
+ const key = CryptoJS.enc.Hex.parse('4D6251655468576D5A7134743677397A');
+ const iv = CryptoJS.enc.Hex.parse(globaliv + randomiv);
+
+ const encrypted = CryptoJS.AES.encrypt(dataEncoded, key, { iv });
+ let encrypted_data = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
+ encrypted_data = randomiv + globalIndex + encrypted_data;
+ return encrypted_data;
+}
+
+// Decrypt response
+function decodeResponse(result) {
+ const key = CryptoJS.enc.Hex.parse('3273357638782F413F4428472B4B6250');
+ const iv_random = CryptoJS.enc.Hex.parse(result.trim().slice(0, 32));
+ const result_split = result.trim().slice(32);
+
+ const bytes = CryptoJS.AES.decrypt(result_split, key, { iv: iv_random });
+ let plaintext = bytes.toString(CryptoJS.enc.Utf8);
+ plaintext = plaintext.replace(/[\u0000-\u0019]+/g, "");
+ return plaintext;
+}
+
+// API call wrapper
+async function callToWebService(url, data, callback) {
+ const online = await checkDeviceOnlineStatus();
+ if (!online) return;
+
+ try {
+ const encryptedData = encryptData(data);
+ const headers = {
+ 'Content-Type': 'application/json',
+ };
+
+ headers['Authorization'] = 'Bearer ' + encryptData(jwttoken);
+
+ const params = new URLSearchParams({ data: encryptedData });
+ const fullUrl = `${url}?${params.toString()}`;
+
+ const res = await fetch(fullUrl, {
+ method: 'GET',
+ headers
+ });
+
+ const responseText = await res.text();
+ const decodedResponse = JSON.parse(decodeResponse(responseText));
+
+ if (decodedResponse.token) {
+ jwttoken = decodedResponse.token;
+ }
+
+ console.log(decodedResponse)
+ if (decodedResponse.status === 'N') {
+ if (decodedResponse.status_code === '401') {
+ if (!regenerateWebserviceCallFlag) {
+ regenerateWebserviceCallFlag = true;
+ const packageName = "com.eCourts.mobile";
+ const uidObj = { uid: "324456:" + packageName };
+ const newData = { ...data, ...uidObj };
+ return callToWebService(url, newData, callback);
+ } else {
+ showErrorMessage("Session expired!");
+ }
+ }
+
+ if (decodedResponse.msg) {
+ showErrorMessage(decodedResponse.msg);
+ }
+
+ return;
+ }
+
+ callback(decodedResponse);
+ regenerateWebserviceCallFlag = false;
+
+ } catch (error) {
+ console.error('Error calling web service:', error.message);
+ showErrorMessage("An error occurred while processing your request.");
+ regenerateWebserviceCallFlag = false;
+ }
+}
+
+// Fetch Court Complexes
+async function getCourtComplexes(state_code, dist_code, callback) {
+ const url = hostIP + "courtEstWebService.php";
+ const data = {
+ action_code: "fillCourtComplex",
+ state_code,
+ dist_code
+ };
+ await callToWebService(url, data, callback);
+}
+
+getCourtComplexes("1", "101", (res) => {
+ console.log("Court Complexes:", res.courtComplex);
+});