/*================================================================================================================\ + + Project : GoData-Eicher + Filename : TicketAdministrationReassign.js + Module Name : Ticket + Purpose : For ticket reassign + Coded By : Parul Gupta + +================================================================================================================*/ /** * For ticketing * @module Ticket */ /** * This class contains functionality of Ticket Reassign for CCE. * @class TicketReassign * @constructor */ //Global variables var xhr_addNewTicket; var breakdownLocLatLng; var breakdownMarker; var _ccplMap = null; var _geoCoder; var _defaultLat = 26.912285124827, _defaultLng = 75.7873203125 //initialize markers var _availableVansMarkers = '../../Content/css/images/avil-van.png'; //marker for available vans var _unavailableVansMarkers = '../../Content/css/images/unavl-van.png'; //marker for unavailable vans var _dealerMarker = '../../Content/css/images/dealer-icon.png'; //marker for dealers var breakdownLat, breakdownLng, breakdownState, ticketId, defaultSlatime, vRegistrationNo; //Google Distance MAtrix Service API var _service = new google.maps.DistanceMatrixService(); var _detailsListOfVanDealer = []; //array of objects of details of nearest vans and dealers var _vanDealerLatLngArr = []; //array of nearest vans and dealers lat lng var _copyResulEls = []; /** * Load google map on page. * @method initMap * @param {String} id HTML element id where map is loaded. * @for TicketReassign */ function _initMap(id) { var _mapOptions = { center: new google.maps.LatLng(_defaultLat, _defaultLng), zoom: 12, mapTypeId: google.maps.MapTypeId.ROADMAP }; //initialize map _ccplMap = new google.maps.Map(document.getElementById(id), _mapOptions); } /** * Function to reassign ticket * @method reassignTicket * @for TicketReassign */ function reassignTicket() { breakdownLat = $("#breakdownLattitude").val(); breakdownLng = $("#breakdownLongitude").val(); breakdownState = $("#breakdownState").val(); ticketId = $("#ticketid").val(); defaultSlatime = $("#defaultSlaTime").val(); vRegistrationNo = $("#vRegistrationNo").val(); DealerId = $("#DealerID").val(); breakdownLocLatLng = new google.maps.LatLng(breakdownLat, breakdownLng); $.ajax({ type: "GET", //url: "/Ticket/TicketAdministration_ReassignTicket/", url: "/TicketAdministration_Dealer/TicketAdministration_DealerReassignTicket/", success: function (data) { $("#divReassignTicket").html(''); $("#divReassignTicket").html(data); //open form in new dialog box $("#divReassignTicket").data("kendoWindow").open(); openKendoWindowInCenter("#divReassignTicket"); }, complete: function () { setTimeout(function () { /* get all nearest vans and dealers */ getAllNearestVansDealers(breakdownState); }, 1500); }, error: function (data) { console.log(data); } }); } /** * Function to close kendo window * @method closeWindow * @param {String} divId HTML element id where window is loaded * @for TicketReassign */ function closeWindow(divId) { $(divId).data("kendoWindow").close(); } /** * Function to empty van dealer array * @method emptyVanDealerArray * @for TicketReassign */ function emptyVanDealerArray() { if (nearestVansDealersMarks.length > 0) { //console.log(nearestVansDealersMarks.length); for (var counter = 0; counter < nearestVansDealersMarks.length; counter++) { nearestVansDealersMarks[counter].setMap(null); //set address text field empty here nearestVansDealersMarks[counter] = ""; } nearestVansDealersMarks = []; } } /** * Function to remove markers if any * @method removeMarker * @for TicketReassign */ function removeMarker() { //Remove previous marker if present if (breakdownMarker) { breakdownMarker.setMap(null); //set address text field empty here breakdownMarker = ""; } } //Global variables to get more than 25 vans/dealers var _arrOf25VanDealerLatLng = []; var _arrOf25VanDealerDetails = []; var _LIMIT = 100; /** * Function to get all nearest vans and dealers for reassign ticket * @method getAllNearestVansDealers * @param {String} state The name of selected state * @for TicketReassign */ function getAllNearestVansDealers(state) { var stateName, stateId, vanDealerLatlng, type, VDId, vanDealerLat, vanDealerLng, vanDealerCity, vanDealerName, vanDealerState, deviceAlias, vanRemainingTime, deviceStatus, noOfAssignedTickets, description, DealerSCode, DealerOrVanContactNo; stateName = state; //empty van dealer lat lng array if (_vanDealerLatLngArr.length > 0) { _vanDealerLatLngArr = []; } //empty details list of van dealer array if (_detailsListOfVanDealer.length > 0) { _detailsListOfVanDealer = []; } //empty array to get next 25 vans/dealers details. _copyResulEls = []; removeMarker(); emptyVanDealerArray(); //Create a new Marker on the position click on the map breakdownMarker = new google.maps.Marker({ position: breakdownLocLatLng, map: _ccplMap }); $.ajax({ type: "GET", url: "/TicketAdministration_Dealer/GetDealersOwnVan/", //url: "/Ticket/GetAllNearestVansDealers/", data: { StateName: stateName, limit: _LIMIT }, success: function (data) { console.log(data.NearestVansDealers); if (data.NearestVansDealers.length > 0) { _vanDealerLatLngArr.length = 0; for (var counter = 0; counter < data.NearestVansDealers.length; counter++) { var title, markerIcon, backgroundColor; var updatedDeviceStatus = ""; var _vanDealerObj = {}; vanDealerLatlng = new google.maps.LatLng(data.NearestVansDealers[counter].DealerVanLattitude, data.NearestVansDealers[counter].DealerVanLongitude); type = data.NearestVansDealers[counter].Type; VDId = data.NearestVansDealers[counter].DealerVanId; vanDealerLat = data.NearestVansDealers[counter].DealerVanLattitude; vanDealerLng = data.NearestVansDealers[counter].DealerVanLongitude; vanDealerCity = data.NearestVansDealers[counter].DealerVanCity; noOfAssignedTickets = data.NearestVansDealers[counter].NoOfAssignedTicket; vanDealerName = data.NearestVansDealers[counter].DealerVanName; vanDealerState = data.NearestVansDealers[counter].DealerVanState; deviceAlias = data.NearestVansDealers[counter].DeviceAlias; vanRemainingTime = data.NearestVansDealers[counter].RemainingTime; deviceStatus = data.NearestVansDealers[counter].DeviceStatus; deviceStatus = data.NearestVansDealers[counter].DeviceStatus; DealerSCode = data.NearestVansDealers[counter].DealerSCode; DealerOrVanContactNo = data.NearestVansDealers[counter].DealerOrVanContactNo; //check if remaining time is negative if (vanRemainingTime == null || vanRemainingTime == "") { vanRemainingTime = "0"; } else { if (vanRemainingTime.indexOf('-') === -1) { vanRemainingTime = vanRemainingTime; } else { vanRemainingTime = "0"; } } if ((deviceStatus == "True") && (type == "van")) { updatedDeviceStatus = "green-circle"; } else if ((deviceStatus == "False") && (type == "van")) { updatedDeviceStatus = "red-circle"; } else { updatedDeviceStatus = ""; } if (vanRemainingTime == "0") { backgroundColor = "green"; } else { backgroundColor = "red"; } //push van dealer lat lng in array _vanDealerLatLngArr.push(vanDealerLatlng); _vanDealerObj.type = type; _vanDealerObj.id = VDId; _vanDealerObj.lat = vanDealerLat; _vanDealerObj.lng = vanDealerLng; _vanDealerObj.city = vanDealerCity; _vanDealerObj.assignedTickets = noOfAssignedTickets; _vanDealerObj.name = vanDealerName; _vanDealerObj.state = vanDealerState; _vanDealerObj.alias = deviceAlias; _vanDealerObj.remainingTime = vanRemainingTime; _vanDealerObj.deviceStatus = updatedDeviceStatus; _vanDealerObj.backGroundColor = backgroundColor; _vanDealerObj.DealerSCode = DealerSCode; _vanDealerObj.DealerOrVanContactNo = DealerOrVanContactNo; //push van dealer details in array _detailsListOfVanDealer.push(_vanDealerObj); } var forLoopLength, multiplier = 1, waitIndex = 0, setTimeOutSeconds; var vanDealerLatLngArrLength = _vanDealerLatLngArr.length; if (breakdownLocLatLng != "") { if (_vanDealerLatLngArr.length < 25 && _vanDealerLatLngArr.length > 0) { forLoopLength = 1; } else { if ((_vanDealerLatLngArr.length % 25) > 0) { forLoopLength = parseInt((_vanDealerLatLngArr.length / 25), 10) + 1; } else if ((_vanDealerLatLngArr.length % 25) == 0) { forLoopLength = parseInt((_vanDealerLatLngArr.length / 25), 10); } } var z; if (forLoopLength == 1) { _arrOf25VanDealerLatLng = []; _arrOf25VanDealerDetails = []; for (var i = 0; i < _vanDealerLatLngArr.length; i++) { _arrOf25VanDealerLatLng.push(_vanDealerLatLngArr[i]); _arrOf25VanDealerDetails.push(_detailsListOfVanDealer[i]); } // _calcRouteDistance(breakdownLocLatLng, _arrOf25VanDealerLatLng, _arrOf25VanDealerDetails); // _callingHereAPI(breakdownLocLatLng, _arrOf25VanDealerLatLng, _arrOf25VanDealerDetails); setTimeout(function () { _createVanDealerSortedList(); }, 1000); } else { for (var i = 0; i < forLoopLength; i++) { setTimeOutSeconds = waitIndex * multiplier; if (vanDealerLatLngArrLength < 25) { z = 0; } else { z = vanDealerLatLngArrLength - 25; } _arrOf25VanDealerLatLng = []; _arrOf25VanDealerDetails = []; for (var j = vanDealerLatLngArrLength; j > z; j--) { _arrOf25VanDealerLatLng.push(_vanDealerLatLngArr[j - 1]); _arrOf25VanDealerDetails.push(_detailsListOfVanDealer[j - 1]); } vanDealerLatLngArrLength = vanDealerLatLngArrLength - 25; _calculateDistanceInSetTimeOut(breakdownLocLatLng, _arrOf25VanDealerLatLng, _arrOf25VanDealerDetails, setTimeOutSeconds); waitIndex++; } _createVanDealerList(); } } } }, error: function (data) { console.log(data); } }); } /** * SetTimeOut function to calculate distance between van and dealer using google distance matrix api * @method _calculateDistanceInSetTimeOut * @param {String} breakDownLatLng LatLng of breakdown vehicle * @param {array} arrVanDealerLatLng LatLng of vans / dealers * @param {array} arrVanDealerDetails details of vans/dealers * @param {String} timeOutSeconds time in seconds for setTimeout function * @for TicketReassign */ function _calculateDistanceInSetTimeOut(breakDownLatLng, arrVanDealerLatLng, arrVanDealerDetails, timeOutSeconds) { setTimeout(function () { debugger //_calcRouteDistance(breakDownLatLng, arrVanDealerLatLng, arrVanDealerDetails); // _callingHereAPI(breakdownLocLatLng, _arrOf25VanDealerLatLng, _arrOf25VanDealerDetails); }, timeOutSeconds); } /** * setTimeOut function to create sorted van dealer list * @method _createVanDealerList * @for TicketReassign */ function _createVanDealerList() { setTimeout(function () { _createVanDealerSortedList(); }, 1000); } /** * Function to reassign ticket to a van / dealer * @method reAssignVan * @param {String} index The index no. of selected van / dealer * @for TicketReassign */ function reAssignVan(index) { $("#displayVansDealersTable_reassign").find('tr').removeClass('showMarked'); $("#displayVansDealersTable_reassign").find('tr:nth-child(' + (index + 2) + ')').addClass('showMarked'); //create object of ticket model var TicketModel = {}; TicketModel.TicketId = ticketId; TicketModel.Description = ""; TicketModel.listDescription = {}; TicketModel.AssignedTo = $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(1)').text(); TicketModel.ReportedVia = ""; if (TicketModel.AssignedTo == "van") { TicketModel.TicketStatus = 1; TicketModel.OtherRemarks = null; } else { TicketModel.TicketStatus = 2; TicketModel.OtherRemarks = delaerTicketReason; } TicketModel.Priority = 0; TicketModel.CustomerScore = ""; TicketModel.CreatedBy = ""; TicketModel.CreationTime = ""; TicketModel.LastModifiedBy = ""; TicketModel.LastModifiedTime = ""; TicketModel.BreakdownLocation = ""; TicketModel.BreakdownLongitude = ""; TicketModel.BreakdownLattitude = ""; TicketModel.AssignedToUserId = $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(2)').text(); TicketModel.AssignedToUserLattitude = _copyResulEls[index].lat; TicketModel.AssignedToUserLongitude = _copyResulEls[index].lng; TicketModel.Isdeclined = false; TicketModel.EstimatedTimeForJobCompletion = ""; TicketModel.TotalTicketLifecycleTimeSla = ""; TicketModel.EstimatedTimeForJobCompletionSubmitTime = ""; TicketModel.VehicleRegisterNumber = vRegistrationNo; TicketModel.BreakdownLocationLandmark = ""; TicketModel.RouteId = ""; TicketModel.CustomerContactNo = ""; TicketModel.TicketStatusAlias = ""; TicketModel.Token = ""; TicketModel.Status = ""; TicketModel.Message = ""; TicketModel.UtcMinute = 0; TicketModel.RepairCost = ""; TicketModel.DefaultSlaTime = defaultSlatime; TicketModel.SlaMissedReason = ""; TicketModel.SuggestionComment = ""; TicketModel.JobCompleteResponseTime = ""; TicketModel.DefaultCol2 = ""; TicketModel.DefaultCol3 = ""; //distance var distanceInKm = $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(5)').text(); var distance; if (distanceInKm != "" && distanceInKm != null) { var splitDistance = distanceInKm.split(" "); if (splitDistance[1] == "km") { distance = splitDistance[0]; distance = distance.replace(',', ''); } else if (splitDistance[1] == "m") { distance = parseFloat(splitDistance[0]) / 1000; //distance = distance.replace(',', ''); } else { distance = "0"; } } else { distance = "0"; } TicketModel.EstimateDistance = distance; //var distanceInKm = $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(5)').text(); //var lastIndex = distanceInKm.lastIndexOf(" km"); //var distance = distanceInKm.substring(0, lastIndex); //TicketModel.EstimateDistance = (distance == null || distance == "") ? "0" : distance; //Send POST request with the ticket data if (xhr_addNewTicket && xhr_addNewTicket.readystate != 4) { xhr_addNewTicket.abort(); } xhr_addNewTicket = $.ajax({ type: "POST", //url: "/Ticket/TicketAdministration_UpdateTicketOpenClose/", url: "/TicketAdministration_Dealer/TicketAdministration_UpdateTicketOpenClose/", data: TicketModel, success: function (data) { if (data.success == true) { $.ajax({ type: "POST", //url: "/Ticket/TicketAdministration_GetTicketHistory/", url: "/TicketAdministration_Dealer/TicketAdministrationDealer_GetTicketHistory/", data: { registrationNo: vRegistrationNo, mobileNo: "", complaintNo: "" }, success: function (data) { if (data.fillFieldMesseage) { jAlert(data.fillFieldMesseage, 'Message'); } else { $("#divCheckHistory").html(data); if (document.getElementById('tableTicketHistory')) { $("#tableTicketHistory > tbody > tr[id='" + (ticketId).toUpperCase() + "']").trigger("click"); } } }, error: function (data) { console.log(data); } }); } }, complete: function () { closeWindow("#divReassignTicket"); }, error: function (data) { console.log(data); } }); } /** * Function to calculate route distance * @method _calcRouteDistance * @param {String} origin The location of origin(van / dealer) * @param {String} destinationArr The location of destination(vehicle's breakdown) * @for TicketReassign */ //function _calcRouteDistance(origin, destinationArr, vanDealerDetailsArr) { // _service.getDistanceMatrix({ // origins: [origin], // destinations: destinationArr, // travelMode: google.maps.TravelMode.DRIVING, // unitSystem: google.maps.UnitSystem.METRIC, // avoidHighways: false, // avoidTolls: false // }, _distanceMatrixCallback); // //Callback for Distance Matrix API // function _distanceMatrixCallback(response, status) { // //If Status was an error, throw alert // if (status != google.maps.DistanceMatrixStatus.OK) { // alert('Error was: ' + status); // } else { // //Result ELements response from Distance Matrinx // var _resultEls = response.rows[0].elements; // //Add vanId and to the response // for (var i = 0; i < _resultEls.length; i++) { // if (_resultEls[i].status == "OK") { // _resultEls[i].vanDealerAddress = response.destinationAddresses[i]; // _resultEls[i].vanDealerID = vanDealerDetailsArr[i].id; // _resultEls[i].type = vanDealerDetailsArr[i].type; // _resultEls[i].lat = vanDealerDetailsArr[i].lat; // _resultEls[i].lng = vanDealerDetailsArr[i].lng; // _resultEls[i].city = vanDealerDetailsArr[i].city; // _resultEls[i].assignedTicketsToVanDealer = vanDealerDetailsArr[i].assignedTickets; // _resultEls[i].name = vanDealerDetailsArr[i].name; // _resultEls[i].state = vanDealerDetailsArr[i].state; // _resultEls[i].alias = vanDealerDetailsArr[i].alias; // _resultEls[i].remainingTime = vanDealerDetailsArr[i].remainingTime; // _resultEls[i].deviceStatus = vanDealerDetailsArr[i].deviceStatus; // _resultEls[i].backgroundColor = vanDealerDetailsArr[i].backGroundColor; // _resultEls[i].backgroundColor = vanDealerDetailsArr[i].backGroundColor; // _resultEls[i].DealerSCode = vanDealerDetailsArr[i].DealerSCode; // _resultEls[i].DealerOrVanContactNo = vanDealerDetailsArr[i].DealerOrVanContactNo; // } // } // for (var counter = 0; counter < _resultEls.length; counter++) { // if (_resultEls[counter].status == "OK") { // _copyResulEls.push(_resultEls[counter]); // } // } // } // } //} /** * This fn create sorted van dealer list * @method _createVanDealerSortedList * @for TicketReassign */ function _createVanDealerSortedList() { //Sort our Array according to the duration values in ascending order. [See: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort for more reference] _copyResulEls.sort(function (a, b) { var reg = new RegExp('^[0-9]+$'); if (a.status == "OK" && b.status == "OK") { //console.log(a, b); var k1 = a.duration.value; var k2 = b.duration.value; if (reg.test(k1) == true && reg.test(k2) == true) { if (k1 > k2) { return 1; } else { return -1; } } } else { return -1; } return 0; }); $("#tableVansDealers_reassign").html(''); //var to hold table String to show in dialog-form var _trString = ''; //Loop through length of result vans array values of resultEl for (var i = 0; i < _copyResulEls.length; i++) { console.log(_copyResulEls); //if i===0, add html for table. if (_copyResulEls[i].status == "OK") { var _markerIcon; if (i === 0) { _trString += ''; } var dis = _copyResulEls[i].distance + ' KM'; //add each row _trString += ''; //if i===2, end table tag. if (i === _copyResulEls.length) { $("#tableVansDealers_reassign").append('
S. No.Van/DealerVan/Dealer IdVan/Dealer NameVan/Dealer LocationDistanceDurationNo. of Open TicketsRemaining Time(in mins)Is ConnectedDealer ScodeContact No.
' + (i + 1) + '' + _copyResulEls[i].type + '' + _copyResulEls[i].vanDealerID + '' + _copyResulEls[i].name + '' + _copyResulEls[i].vanDealerAddress + '' + dis + '' + _copyResulEls[i].duration + '' + _copyResulEls[i].assignedTicketsToVanDealer + '' + _copyResulEls[i].remainingTime + '' + _copyResulEls[i].DealerSCode + '' + _copyResulEls[i].DealerOrVanContactNo + '
'); } console.log(_copyResulEls[i].DealerOrVanContactNo) //add content to info window var description = '
' + '
' + '
' + '

' + _copyResulEls[i].name + '

' + '' + '' + '' + '
Van/Dealer Location' + _copyResulEls[i].vanDealerAddress + '' + '
Distance ' + _copyResulEls[i].distance + 'Duration ' + _copyResulEls[i].duration + '' + ' No. of Open Tickets ' + _copyResulEls[i].assignedTicketsToVanDealer + '' + _copyResulEls[i].DealerSCode + '' + _copyResulEls[i].DealerOrVanContactNo + '
'; if (_copyResulEls[i].type == "dealer") { _markerIcon = dealerMarker; } else { if (_copyResulEls[i].backgroundColor == 'green') { _markerIcon = _availableVansMarkers; } else { _markerIcon = _unavailableVansMarkers; } } var _vanDealerLatlng = new google.maps.LatLng(_copyResulEls[i].lat, _copyResulEls[i].lng); //create marker at position createMarker(_vanDealerLatlng, _markerIcon, _copyResulEls[i].vanDealerID, description, _ccplMap); } } var _bounds = new google.maps.LatLngBounds(); for (var count = 0; count < nearestVansDealersMarks.length; count++) { _bounds.extend(nearestVansDealersMarks[count].position); } _ccplMap.fitBounds(_bounds); //Append the _trString created in the dialog-form $("#tableVansDealers_reassign").append(_trString); //On click of row of Vans / dealers table $("#displayVansDealersTable_reassign > tbody > tr").click(function (e) { var rowId = e.currentTarget.id; if (infowindow) { infowindow.close(); } $("#displayVansDealersTable_reassign").find('tr').removeClass('showMarked'); $("#displayVansDealersTable_reassign").find('tr[id=' + rowId + ']').addClass('showMarked'); var _selectedVanDealerLat, _selectedVanDealerLng, _vehicleLatLng, _selectedVanDealerLatLng, _selectedVanDealerType; var _selectedVanDealerId = e.currentTarget.id; for (var counter = 0; counter < nearestVansDealersMarks.length; counter++) { if (nearestVansDealersMarks[counter].customInfo == _selectedVanDealerId) { stopMarkerBounce(); getMarkerBounce(nearestVansDealersMarks[counter]); } } for (var count = 0; count < _copyResulEls.length; count++) { if (_copyResulEls[count].vanDealerID == _selectedVanDealerId) { _selectedVanDealerLat = _copyResulEls[count].lat; _selectedVanDealerLng = _copyResulEls[count].lng; _selectedVanDealerType = _copyResulEls[count].type; } } vehicleLatLng = breakdownLocLatLng; _selectedVanDealerLatLng = new google.maps.LatLng(_selectedVanDealerLat, _selectedVanDealerLng); calcRoute(vehicleLatLng, _selectedVanDealerLatLng, _selectedVanDealerType, _ccplMap); }); //start marker bounce function getMarkerBounce(vanDealerMarker) { if (vanDealerMarker.getAnimation() != null) { vanDealerMarker.setAnimation(null); } else { vanDealerMarker.setAnimation(google.maps.Animation.BOUNCE); } } //stop marker bounce function stopMarkerBounce() { for (var count = 0; count < nearestVansDealersMarks.length; count++) { if (nearestVansDealersMarks[count].getAnimation() != null) { nearestVansDealersMarks[count].setAnimation(null); } } } } //==================================================Implementing Here Api =========================================// //====================================================Getting Distance and time from Here API ================================ //=========================================================Getting Address from Here API ==================================== function ShowCurrentTime(lat, lng) { vanAddress = ""; var request = GetDataHerefromAPI("get", "https://revgeocode.search.hereapi.com/v1/revgeocode?at=" + lat + "," + lng + "&lang=en-US&apiKey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"); if (request) { request.onload = function (data) { vanAddress = data.items[0].address.label; } request.send(); } } //===========================================================Calculate Distance ============================================ function calculatedistance(distance, str) { //if (distance == 0) { return distance = { text: str.slice(str.indexOf("length") + 8, str.indexOf("")), value: distance }; //} //else { // var res = distance / 1000; //var text; // if (res > 1) { // text = res.toFixed(1) + " km"; // } // else { // text = res.toFixed(1) + " m"; // } // return distance = { text: text, value: distance } //} } //======================================================Calculate Time ========================================================= function calculatetime(time, str) { //if (time == 0) { return duration = { text: str.slice(str.indexOf("time") + 6, str.indexOf(".")), value: time } //} //else { // d = Number(time); // var h = Math.floor(d / 3600); // var m = Math.floor(d % 3600 / 60); // var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : ""; // var mDisplay = m > 0 ? m + (m == 1 ? " min " : " mins ") : ""; // return duration = { text: hDisplay + mDisplay, value: time } //} } //=================================================Calling Method of Here API function GetDataHerefromAPI(method, url) { var xhr = new XMLHttpRequest(); xhr.withCredentials = false; if ("withCredentials" in xhr) { xhr.open(method, url, false); } else if (typeof XDomainRequest != "undefined") { xhr = new XDomainRequest(); xhr.open(method, url); } else { xhr = null; } return xhr; }