/*================================================================================================================\
+
+ 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 += '
| S. No. | Van/Dealer | Van/Dealer Id | Van/Dealer Name | Van/Dealer Location | Distance | Duration | No. of Open Tickets | Remaining Time(in mins) | Is Connected | Dealer Scode | Contact No. | |
';
}
var dis = _copyResulEls[i].distance + ' KM';
//add each row
_trString += '| ' + (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 + ' | |
';
//if i===2, end table tag.
if (i === _copyResulEls.length) {
$("#tableVansDealers_reassign").append('
');
}
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;
}