var parts=new Array();
var routevalues=new Array();
var pricelist=new Array();
var address='';

var map;
var gdir;
var geocoder = null;
var addressMarker;
		
var xcoord1;
var xcoord2;
var ycoord1;
var ycoord2;
var length;
var seconds;
var twoway;
	
	
function ajaxFunction(){
	var ajaxRequest;  // The variable that makes Ajax possible!
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Problem z przeglądarką internetową!");
				return false;
			}
		}
	}
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function() {
		if(ajaxRequest.readyState == 4){
			
			var response = ajaxRequest.responseText;
			document.getElementById('companies').innerHTML=response;
			if (response=='Nie znaleziono żadnych firm spełniających kryteria wyszukiwania') {
				document.getElementById('form-p3').style.display = 'none';
			} else {
				document.getElementById('form-p3').style.display = 'block';
			}
		
		}

	}
	var amount = parseInt(document.getElementById('persons').value);
/*	
	twoway='1';
	if (document.getElementById('osoby').checked){
		var type = 1;
		var amount = parseInt(document.getElementById('persons').value);
		if (document.getElementById('twoway').checked) 
			twoway='2';

		var weight = round_number(seconds/3600, 2)+'';
		var t1 = weight+'';
		var t1 = t1.split('.');
		var t2 = round_number(60*t1[1]/100,0);
		document.getElementById('travel_timelabel').innerHTML = t1[0]+' godz. '+t2+' min.';
		document.getElementById('routetimelength').style.display='block';
	} else if (document.getElementById('przesylka').checked) {
		var type = 2;
		var amount = parseInt(document.getElementById('packnumber').value);
		var weight = parseInt(document.getElementById('packweight').value);
 	  document.getElementById('routetimelength').style.display='none';
	} else {
		alert('Należy wybrać rodzaj przesyłki');
	}
*/	

		//alert('/prices/'+xcoord1+'x'+ycoord1+'x'+xcoord2+'x'+ycoord2+'x'+amount);
		ajaxRequest.open('GET', '/prices/'+xcoord1+'x'+ycoord1+'x'+xcoord2+'x'+ycoord2+'x'+amount, true);
		ajaxRequest.send(null); 
}




function getRoute(){
	if (document.getElementById('osoby').checked){
		try { var travelers = parseInt(document.getElementById('persons').value); } catch(err) {}
	} else if (document.getElementById('przesylka').checked){
		try { var packages = parseInt(document.getElementById('packages').value); } catch(err) {}
	}
	
	
	if (document.reservation.twoway.checked && document.getElementById('osoby').checked) {
		var way = 2;
		document.getElementById('returndiv').style.display = 'block';
	} else {
		var way = 1;
		document.getElementById('returndiv').style.display = 'none';
	}
	
	try { var routefrom=document.getElementById('routefrom').value; } catch(err) {}
	try { var routeto=document.getElementById('routeto').value; } catch(err) {}
	try { var countryfrom=document.getElementById('fromcountry').value; } catch(err) {}
	try { var countryto=document.getElementById('tocountry').value; } catch(err) {}
	
	//alert('from: '+routefrom+', '+countryfrom +' to: '+routeto+', '+countryto);
	
	initialize();
	setDirections(routefrom+', '+countryfrom, routeto+', '+countryto);

	
}



function removeAllOptions(selectbox)
{
	var i;
	for(i=selectbox.options.length-1;i>=0;i--)	
	{
		selectbox.remove(i);
	}
}


function addOption(selectbox, value, text )
{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;

	selectbox.options.add(optn);
}


		function initGMap() {
      if (GBrowserIsCompatible()) {      
       
      }
    }
		
		
    function initialize() {
      if (GBrowserIsCompatible()) {      
			  var mapsize = new GSize(450, 400);
				map = new GMap2(document.getElementById('map_canvas'),{mapTypes: [G_NORMAL_MAP], size: mapsize});
				map.addControl(new GLargeMapControl());
				gdir = new GDirections(map);				
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);
      }
    }
    
    function setDirections(fromAddress, toAddress) {
      gdir.load("from: " + fromAddress + " to: " + toAddress, {'locale': 'en_US'});
    }

    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Nie znaleziono adresu. Sprubuj dodawać nazwę województwa.");
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Wystąpił niznany błąd");
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Nie wprowadzono wszystkich wymaganych danych");

	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("Mapa nie może zostać załadowana na tej stronie");

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("Błąd podłączenia z serwerem");
	    
	   else alert("Wystąpił niznany błąd");
	   
	  }

	function onGDirectionsLoad(){ 
	 
	 var route = gdir.getRoute(0);
   var geocode = route.getStartGeocode();
   ycoord1 = geocode.Point.coordinates[0];
   xcoord1 = geocode.Point.coordinates[1];
		
   var route = gdir.getRoute(0);
   var geocode = route.getEndGeocode();
   ycoord2 = geocode.Point.coordinates[0];
   xcoord2 = geocode.Point.coordinates[1];
	
	 length=gdir.getDistance().meters;
	 seconds=gdir.getDuration().seconds;
	 var lkm=length/1000;
	 lkm=round_number(lkm);
	 lkm=lkm.replace('.',',');
	 
	 document.getElementById('routelength').innerHTML = lkm+' km';
	 document.getElementById('routelengthinput').value = lkm+' km';
	 document.getElementById('travel_time').value = seconds;

	 document.getElementById('form-p2').style.display='block';
	 
	 
	 if(gdir.getStatus().code == G_GEO_SUCCESS) {
		 ajaxFunction();
	 } else handleErrors();
	 
	}
	
	
	

function round_number(n, d) {
  n = n - 0;
  if (d == null) d = 2;
  var f = Math.pow(10, d);
  n += Math.pow(10, - (d + 1));
  n = Math.round(n * f) / f;
  n += Math.pow(10, - (d + 1));
  n += '';
  return d == 0 ? n.substring(0, n.indexOf('.')) :  n.substring(0, n.indexOf('.') + d + 1);
}


function disableEnterKey(e)
{
     var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

     if(key == 13)
          return false;
     else
          return true;
}
