
var map;
var directionDisplay;
var directionsService;

var totalDuration = 0;
var totalDistance = 0;
var totalprice = 0;
var alapDij = 300;
var kmDij_tel = 167;
var kmDij_utcai = 240;
var varakozasiDij_tel = 39;
var varakozasiDij_utcai = 60;
var varakozasRaszamolas = 0.1; // 10% becsült várokazási idő
 
function dijkalkulator_initialize(){
    
	var latlng = new google.maps.LatLng(47.4984056, 19.0407578);
    
    var myOptions = {
      zoom: 12,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    
    var mapDiv = document.getElementById("map_canvas");
    map = new google.maps.Map(mapDiv, myOptions);
    
    directionsDisplay = new google.maps.DirectionsRenderer();
    directionsDisplay.setMap(map);
    directionsService = new google.maps.DirectionsService();
    
    var button = document.getElementById("doCalcButton");
    //button.addEventListener('click', dijkalkulator_kalkulal, false);
    addListener(button, 'click', dijkalkulator_kalkulal);
    
}

function dijkalkulator_kalkulal(){
	var fromAddress = document.getElementById("from_address").value;
	var toAddress = document.getElementById("to_address").value;
	
	if (fromAddress == "" && toAddress == ""){
		return false;
	}else{
		fromAddress = "MAGYARORSZÁG, Budapest, "+fromAddress;
		toAddress = "MAGYARORSZÁG, Budapest, "+toAddress;
	}
	
	totalDuration = 0;
    totalDistance = 0;
    totalprice = 0;

	
	var request = {
		origin:fromAddress, 
		destination:toAddress,
		travelMode: google.maps.DirectionsTravelMode.DRIVING,
		unitSystem: google.maps.DirectionsUnitSystem.METRIC
	};
	
	directionsService.route(request, directionCallback);
	
}

function directionCallback(result, status){
	if (status == google.maps.DirectionsStatus.OK) {
	      
		// 
		directionsDisplay.setDirections(result);

		//
		var legs = result.routes[0].legs;

        for(i in legs) {
            totalDistance += legs[i].distance.value;
            totalDuration += legs[i].duration.value;

        }
        
        //var totalDistance = Math.floor(totalDistance / 1000); // lefelé kerekít
        //var totalDistance = Math.ceil(totalDistance / 1000); // felfelé kerekít
        
        totalDuration = Math.floor(totalDuration / 60);

        
        var totalprice_tel = Math.round( (totalDistance/1000) * kmDij_tel) + alapDij;
        var totalVarakozasprice_tel = Math.round((totalDuration * varakozasRaszamolas) * varakozasiDij_tel);
        totalprice_tel = totalprice_tel + totalVarakozasprice_tel;
        
        var totalprice_utcai = Math.round( (totalDistance/1000) * kmDij_utcai) + alapDij;
        var totalVarakozasprice_utcai = Math.round( (totalDuration * varakozasRaszamolas) * varakozasiDij_utcai);
        totalprice_utcai = totalprice_utcai + totalVarakozasprice_utcai;
        
        var priceElem1 = document.getElementById("price_tel");
        var priceElem2 = document.getElementById("price_utcai");
        
        priceElem1.innerHTML = ""+totalprice_tel;
        priceElem2.innerHTML = ""+totalprice_utcai;
        
        var durElem  = document.getElementById("duration");
        durElem.innerHTML = ""+totalDuration;
        var disElem = document.getElementById("distance");
        disElem.innerHTML = ""+Math.floor(totalDistance / 1000);
        
        document.getElementById("result").style.display = "block";

        
	}
}



addListener(window, 'load', dijkalkulator_initialize);



