if (window.XMLHttpRequest)		http_request1 = new XMLHttpRequest(); 
else if (window.ActiveXObject)	http_request1 = new ActiveXObject("Microsoft.XMLHTTP"); 
if (window.XMLHttpRequest)		http_request2 = new XMLHttpRequest(); 
else if (window.ActiveXObject)	http_request2 = new ActiveXObject("Microsoft.XMLHTTP"); 
if (window.XMLHttpRequest)		http_request3 = new XMLHttpRequest(); 
else if (window.ActiveXObject)	http_request3 = new ActiveXObject("Microsoft.XMLHTTP"); 

var fit_next=false;
var clicked_x;
var clicked_y;



function setCityCenter(city_tmp){
  if(city_tmp=='lo_')map.setCenter(new GLatLng(51.759148,19.455864), 13);
  else if(city_tmp=='kr_')map.setCenter(new GLatLng(50.064564,19.945142), 13);
  else if(city_tmp=='wr_')map.setCenter(new GLatLng(51.107739,17.038722), 13);
  else if(city_tmp=='po_')map.setCenter(new GLatLng(52.406392,16.925393), 13);
  else if(city_tmp=='gd_')map.setCenter(new GLatLng(54.351873,18.646352), 13);
  else if(city_tmp=='sz_')map.setCenter(new GLatLng(53.428515,14.552486), 13);
  else if(city_tmp=='by_')map.setCenter(new GLatLng(53.123386,18.007933), 13);
  else if(city_tmp=='lu_')map.setCenter(new GLatLng(51.246377,22.568439), 13);
  else map.setCenter(new GLatLng(52.229676, 21.012229), 13);//if(city_tmp=='wa_')
}


function get_content(div_id,href){
  if (window.XMLHttpRequest)		 http_request1 = new XMLHttpRequest(); 
	else if (window.ActiveXObject)	 http_request1 = new ActiveXObject("Microsoft.XMLHTTP"); 
	var src='';
	var full_url=base_src+'_data/connect.php?'+href+'&rand='+Math.random();
  var output=document.getElementById(div_id);
  output.innerHTML='<div class="line_header" style="margin-left:37px;"><b>Trwa wyszukiwanie...</b></div>';

  if(http_request1){
		http_request1.open('GET', full_url, true);
		http_request1.send(null);
			
		http_request1.onreadystatechange = function(){
			if (http_request1.readyState == 4){
				if (http_request1.status == 200) {
					var response=http_request1.responseText;
					ret=response;
					output.innerHTML=ret;
				}
				else{}				
			}
			else{}
		}
	}
}


//function zapisz_przystanek(i,stops_arr_i,p,old_p){
function zapisz_przystanek(start_point_tmp,stop_point_tmp,linia_point_tmp){
  if (window.XMLHttpRequest)		 http_request1 = new XMLHttpRequest(); 
	else if (window.ActiveXObject)	 http_request1 = new ActiveXObject("Microsoft.XMLHTTP"); 
	var src='';
  /*
  var stops_arr_i_arr=stops_arr_i.split('|');
  var przystanek_id=stops_arr_i_arr[0];
  var linia     =stops_arr_i_arr[1];
  var id_trasy  =stops_arr_i_arr[2];
  //var kolejnosc =stops_arr_i_arr[3];
  */
	//var full_url=base_src+'_data/connect.php?act=update_przystanek&start_point_tmp='+old_p+'&stop_point_tmp='+p+'&przystanek_id='+przystanek_id+'&linia='+linia+'&id_trasy='+id_trasy+'&rand='+Math.random();
	var full_url=base_src+'_data/connect.php?miasto='+miasto+'&act=update_przystanek&start_point_tmp='+start_point_tmp+'&stop_point_tmp='+stop_point_tmp+'&linia_point_tmp='+linia_point_tmp+'&rand='+Math.random()+'&linia='+alter_linia+'&trasa='+alter_trasa;
	//alert(full_url);

  if(http_request1){
		http_request1.open('GET', full_url, true);
		http_request1.send(null);
			
		http_request1.onreadystatechange = function(){
			if (http_request1.readyState == 4){
				if (http_request1.status == 200) {
					var response=http_request1.responseText;
					//alert('xxx'+response);
					ret=response;
					//alert(ret);
          map.clearOverlays();
          draw_search_points();
          point=[];
          marker=[];
          polyline=[];
          
          points_group=[];
					draw_line2(0);
				}
				else{}				
			}
			else{}
		}
	}
}




function put_content_eval(href){//site=vote
  if (window.XMLHttpRequest)		 http_request1 = new XMLHttpRequest(); 
	else if (window.ActiveXObject)	 http_request1 = new ActiveXObject("Microsoft.XMLHTTP"); 
	var src='';
	var full_url=base_src+'_data/connect.php?miasto='+miasto+'&act=get_eval&'+href+'&winHeight='+winHeight+'&rand='+Math.random();
	
	if(http_request1){
		http_request1.open('GET', full_url, true);
		http_request1.send(null);
			
		http_request1.onreadystatechange = function(){
			if (http_request1.readyState == 4){
				if (http_request1.status == 200) {
					var response=http_request1.responseText;
					//alert('xxx'+response);
					ret=response;
					//alert(ret);
					draw_line2(0);
					
				}
				else{}				
			}
			else{}
		}
	}
}


function zamien_kolejnosc(){
  var tmp=document.getElementById('from').value;
  document.getElementById('from').value=document.getElementById('to').value;
  document.getElementById('to').value=tmp;
  
  if(main_search_point_from&&main_search_point_to){
    var tmp=main_search_point_from;
    main_search_point_from=main_search_point_to;
    main_search_point_to=tmp;
    start_simple_points_search();
    return false;
  }
  
  if(document.getElementById('from').value)
    showAddress(document.getElementById('from').value+', '+miasto_full+', Polska','from');
  if(document.getElementById('to').value)
    showAddress(document.getElementById('to').value+', '+miasto_full+', Polska','to');
  
  return false;
}




function point_format(point1){
  var point=point1.toString();
  var point_arr=[];
  point_arr=point.split(',');
  var lat1=point_arr[0].substring(1,3);
  var lat2=point_arr[0].substring(4,6);
  var lat3=point_arr[0].substring(6,8);
  var lon1=point_arr[1].substring(1,3);
  var lon2=point_arr[1].substring(4,6);
  var lon3=point_arr[1].substring(6,8);
  return lat1+'°'+lat2+'\''+lat3+'", '+lon1+'°'+lon2+'\''+lon3+'"';
}



/*

  //point.push(new GLatLng(53.1622555, 18.1622091));
  //point.push(new GLatLng(53.1642555, 18.1732091));
  //point.push(new GLatLng(53.1602555, 18.1852091));



function put_content(div_id,href){//site=vote
  if (window.XMLHttpRequest)		 http_request1 = new XMLHttpRequest(); 
	else if (window.ActiveXObject)	 http_request1 = new ActiveXObject("Microsoft.XMLHTTP"); 
	var div_pointer=document.getElementById(div_id);
	var src='';
	var full_url=base_src+'_data/connect.php?act=put_content&'+href+'&rand='+Math.random();
	div_pointer.innerHTML='<div style="text-align:center;margin-top:40px;margin-bottom:40px;"><img src="_data/img/loading.gif" alt="loading..."/></div>';

	//alert(div_id+' '+full_url+' '+href);
	
	if(http_request1){
		http_request1.open('GET', full_url, true);
		http_request1.send(null);
			
		http_request1.onreadystatechange = function(){
			if (http_request1.readyState == 4){
				if (http_request1.status == 200) {
					var response=http_request1.responseText;
					
					
					
				}
				else{
					div_pointer.innerHTML='<div style="text-align:center; width:100%; font-weight:bold; margin-top:50px;"><?=tr('error_while_connecting_server')?></div>';
					setTimeout("empty_div(\'"+div_id+"\');",10000);			
				}				
			}
			else{
				div_pointer.innerHTML='<div style="text-align:center;margin-top:40px;margin-bottom:40px;"><img src="_data/img/loading.gif" alt="loading..."/></div>';
			}
		}
	}
}

*/















































function submit_form(){
  var num=0;
  if(document.getElementById('from').value){
    num++;
    showAddress(document.getElementById('from').value+', '+miasto_full+', Polska','from');
  }
  if(document.getElementById('to').value){
    num++;
    showAddress(document.getElementById('to').value+', '+miasto_full+', Polska','to');
  }
  if(num<2)start_simple_points_search()
  //return false;
}             




var icon_r = new GIcon();
icon_r.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
icon_r.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon_r.iconSize = new GSize(12, 20);
icon_r.shadowSize = new GSize(22, 20);
icon_r.iconAnchor = new GPoint(6, 20);
var icon_g = new GIcon();
icon_g.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
icon_g.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon_g.iconSize = new GSize(12, 20);
icon_g.shadowSize = new GSize(22, 20);
icon_g.iconAnchor = new GPoint(6, 20);
var icon_b = new GIcon();
icon_b.image = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
icon_b.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon_b.iconSize = new GSize(12, 20);
icon_b.shadowSize = new GSize(22, 20);
icon_b.iconAnchor = new GPoint(6, 20);
var icon_0 = new GIcon();
//icon_0.image = "_data/img/icon_greenA.png";
icon_0.image = base_src+"_data/img/icon_z.png";
icon_0.shadow = base_src+"_data/img/mm_20_shadow2.png";
icon_0.iconSize = new GSize(24, 39);
icon_0.shadowSize = new GSize(36, 39);
icon_0.iconAnchor = new GPoint(12, 39);

var icon_1 = new GIcon();
//icon_1.image = "_data/img/icon_greenB.png";
icon_1.image = base_src+"_data/img/icon_do.png";
icon_1.shadow = base_src+"_data/img/mm_20_shadow2.png";
icon_1.iconSize = new GSize(24, 39);
icon_1.shadowSize = new GSize(36, 39);
icon_1.iconAnchor = new GPoint(12, 39);

icon_g.image = base_src+"_data/img/circle.gif";
icon_g.shadow = '';
icon_g.iconSize = new GSize(10, 10);
icon_g.shadowSize = new GSize(0, 0);
icon_g.iconAnchor = new GPoint(5, 5);
icon_b.image = base_src+"_data/img/circle.gif";
icon_b.shadow = '';
icon_b.iconSize = new GSize(10, 10);
icon_b.shadowSize = new GSize(0, 0);
icon_b.iconAnchor = new GPoint(5, 5);






    var kontener = document.createElement('div');
    var kontener = document.createElement('div');
		//var map;
		
		// prototypowanie funkcji openAjaxInfoWindow do otwierania okienka z dynamicznie pobieraną treścią
		GMarker.prototype.openAjaxInfoWindow = function(url,opcje){
			var marker = this;
			GDownloadUrl(url,function(tresc,kodOdpowiedzi){
				kontener.innerHTML = '<div style="width: 300px; height: 200px; overflow: auto;">'+tresc+'</div>';
				marker.openInfoWindow(kontener,opcje);
			});
		}
		




d=document; 
if (typeof window.innerWidth!='undefined') { 
  var winHeight = window.innerHeight; 
} else {
  if (d.documentElement && typeof d.documentElement.clientWidth!='undefined' && d.documentElement.clientWidth!=0) { 
    var winHeight = d.documentElement.clientHeight 
  } else { 
    if (d.body && typeof d.body.clientWidth!='undefined') { 
      var winHeight = d.body.clientHeight 
    } 
  } 
} 

		


function GMarker2(punkt,url,opcje){
			var marker = new GMarker(punkt, opcje);
			marker.url = url;
			map.addOverlay(marker);
			//GEvent.addListener(marker,'click',function(){
			//	marker.openAjaxInfoWindow(marker.url);
			//});
			return marker;
}






GMarker.prototype.openAjaxInfoWindow = function(url,opcje){
	var marker = this;
	GLog.write('Pobieram plik '+url); // w celach diagnostycznych następuje wyświetlenie komunikatu o pobieranym pliku
	GDownloadUrl(url,function(tresc,kodOdpowiedzi){
		kontener.innerHTML = '<div style="width: 300px; height: 200px; overflow: auto;">'+tresc+'</div>';
		marker.openInfoWindow(kontener,opcje);
	});
}









if (window.XMLHttpRequest)		http_request1 = new XMLHttpRequest(); 
else if (window.ActiveXObject)	http_request1 = new ActiveXObject("Microsoft.XMLHTTP"); 
/*
if (window.XMLHttpRequest)		http_request2 = new XMLHttpRequest(); 
else if (window.ActiveXObject)	http_request2 = new ActiveXObject("Microsoft.XMLHTTP"); 
if (window.XMLHttpRequest)		http_request3 = new XMLHttpRequest(); 
else if (window.ActiveXObject)	http_request3 = new ActiveXObject("Microsoft.XMLHTTP"); 
*/



var szNormal = 29, szSmall = 29, szFull = winHeight-100-29;
function set_szFull(new_val, num){
  szFull=new_val;
  if(num>=1)document.getElementById('trasa_0').style.display='block';
  else document.getElementById('trasa_0').style.display='none';
  if(num>=2)document.getElementById('trasa_1').style.display='block';
  else document.getElementById('trasa_1').style.display='none';
  if(num>=3)document.getElementById('trasa_2').style.display='block';
  else document.getElementById('trasa_2').style.display='none';
  if(num>=4)document.getElementById('trasa_3').style.display='block';
  else document.getElementById('trasa_3').style.display='none';
  if(num>=5)document.getElementById('trasa_4').style.display='block';
  else document.getElementById('trasa_4').style.display='none';
  if(num>=6)document.getElementById('trasa_5').style.display='block';
  else document.getElementById('trasa_5').style.display='none';
  if(num>=7)document.getElementById('trasa_6').style.display='block';
  else document.getElementById('trasa_6').style.display='none';
  if(num>=8)document.getElementById('trasa_7').style.display='block';
  else document.getElementById('trasa_7').style.display='none';
  if(num>=9)document.getElementById('trasa_8').style.display='block';
  else document.getElementById('trasa_8').style.display='none';
  if(num>=10)document.getElementById('trasa_9').style.display='block';
  else document.getElementById('trasa_9').style.display='none';
}

function set_szFull_default(){
  if(show_route_no>0){
    //show_route_no=-1;
    for(var i=0; i<10; i++){
      document.getElementById('trasa_'+i).style.height='29px';
    }
    document.getElementById('trasa_'+show_route_no).style.height=szFull+'px';
  }else{
    document.getElementById('trasa_0').style.height=szFull+'px';
    document.getElementById('trasa_1').style.height='29px';
    document.getElementById('trasa_2').style.height='29px';
    document.getElementById('trasa_3').style.height='29px';
    document.getElementById('trasa_4').style.height='29px';
    document.getElementById('trasa_5').style.height='29px';
    document.getElementById('trasa_6').style.height='29px';
    document.getElementById('trasa_7').style.height='29px';
    document.getElementById('trasa_8').style.height='29px';
    document.getElementById('trasa_9').style.height='29px';
  }
}








var ret;
var point=[];
var marker=[];
var polyline=[];
var stops_arr=[];
var stops_num_arr=[];

var points_group=[];

    var main_search_marker_from;
    var main_search_marker_to;
    var main_search_point_from;
    var main_search_point_to;



function draw_me(i){
  draw_line('draw_next',i);
}


var set_szFull_default_val;
var pre_line=false;
function draw_line(action, line){
  if(action!='draw_next'){
    if(action=='line'){
      info_box('Klikając w ikonę przystanku możesz zobaczyć szczegółowy rozkład jazdy autobusu i zobaczyć inne autobusy, które zatrzymują się na danym przystanku.');
    }
    else if(action=='simple_points_v2'){
      info_box('Jeśli chcesz zmienić lokalizację punktów docelowych możesz złapać ich ikony i przeciągnąć w nowe miejsce.');
      info_box('Klikając w ikonę przystanku możesz zobaczyć szczegółowy rozkład jazdy autobusu i zobaczyć inne autobusy, które zatrzymują się na danym przystanku.');
    }
    else if(action=='pokaz_przystanki'){
      info_box('Klikając w ikonę przystanku możesz zobaczyć szczegółowy rozkład jazdy autobusu i zobaczyć inne autobusy, które zatrzymują się na danym przystanku.');
      info_box('Aby łatwiej wybrać przystanek możesz przybliżyć mapę korzystając z rolki na myszce.<br/>Możesz również wybrać przystanek z listy po lewej stronie.');
    }else alert(action);
  }
  //alert(action+' '+line);
  if(action=='draw_next'){
    if(pre_line==line)return false;
    pre_line=line;
  }else{
    pre_line=false;
  }
  
  //if(action!='line')document.getElementById('trasa_0').style.overflowY='hidden';
  if(action!='line'){
    document.getElementById('trasa_0').style.overflowY='hidden';
    if(action=='simple_points_v2'){
      document.getElementById('trasa_0').style.height=(winHeight-100-20-5)+'px';
      document.getElementById('trasa_0').innerHTML='<div class="line_header" style="margin-left:37px;"><b>Trwa wyszukiwanie...</b></div>';
    }
  }
  
  map.clearOverlays();
  draw_search_points();
  point=[];
  marker=[];
  polyline=[];
  
  points_group=[];
  
  if(action=='draw_next'){
    set_szFull_default_val=false;
    draw_line2(line);
    //return true;
  }else {
    //for(var n=0;n<marker.length;n++)map.removeOverlay(marker[n]);
    //for(var n=1;n<polyline.length;n++)map.removeOverlay(polyline[n]);
    set_szFull_default_val=true;
    var search_type=2;
    if(document.getElementById('search_type_1').checked==true)search_type=1;
    else if(document.getElementById('search_type_3').checked==true)search_type=3;
    var search_options;
    //if(document.getElementById('o1').checked==true)search_options=1; else search_options=0;
    //if(document.getElementById('o2').checked==true)search_options=search_options+'1'; else search_options=search_options+'0';
    //if(document.getElementById('o3').checked==true)search_options=search_options+'1'; else search_options=search_options+'0';
    
    /*
    alert(action+'='+line+'&time='+document.getElementById('time').value+'&sunday='+document.getElementById('niedziela').checked+'&search_type='+search_type
      +'&avoid_line='+document.getElementById('avoid_line').value
      +'&prefer_line='+document.getElementById('prefer_line').value
      +'&sunday2='+document.getElementById('niedziela2').value);
      */
    put_content_eval(action+'='+line+'&time='+document.getElementById('time').value+'&sunday='+document.getElementById('niedziela').checked+'&search_type='+search_type
      +'&avoid_line='+document.getElementById('avoid_line').value
      +'&prefer_line='+document.getElementById('prefer_line').value
      +'&sunday2='+document.getElementById('niedziela2').value);//+'&search_options='+search_options);
  }
}


function draw_line2(num){  
  //return true;
  var color_arr=[];
  color_arr[0]='#005500';
  color_arr[1]='#1111aa';
  color_arr[2]='#005500';
  color_arr[3]='#1111aa';
  //color_arr[2]='#ff0000';
  //color_arr[3]='#0f0f0f';
  color_arr[4]='#666666';
  color_arr[5]='#000000';
  color_arr[6]='#ffffff';
  color_arr[7]='#ff22bb';
  color_arr[8]='#bb22ff';
  color_arr[9]='#22bbff';
  var color_num=0;
  
  var color_1='#00ff00';
  var color_2='#0000ff';
  var color=color_1;
  var last_line_num=-1;  
  var rand=[];
  var line=[];
  var icon_type;
  stops_arr=[];
  var last_line=false;
  
  var get_pre_trasa=false;
  
  var pre_trasa_0=document.getElementById('trasa_0').innerHTML;
  var pre_trasa_1=document.getElementById('trasa_1').innerHTML;
  var pre_trasa_2=document.getElementById('trasa_2').innerHTML;
  var pre_trasa_3=document.getElementById('trasa_3').innerHTML;
  var pre_trasa_4=document.getElementById('trasa_4').innerHTML;
  var pre_trasa_5=document.getElementById('trasa_5').innerHTML;
  var pre_trasa_6=document.getElementById('trasa_6').innerHTML;
  var pre_trasa_7=document.getElementById('trasa_7').innerHTML;
  var pre_trasa_8=document.getElementById('trasa_8').innerHTML;
  var pre_trasa_9=document.getElementById('trasa_9').innerHTML;
  document.getElementById('trasa_0').innerHTML='';
  document.getElementById('trasa_1').innerHTML='';
  document.getElementById('trasa_2').innerHTML='';
  document.getElementById('trasa_3').innerHTML='';
  document.getElementById('trasa_4').innerHTML='';
  document.getElementById('trasa_5').innerHTML='';
  document.getElementById('trasa_6').innerHTML='';
  document.getElementById('trasa_7').innerHTML='';
  document.getElementById('trasa_8').innerHTML='';
  document.getElementById('trasa_9').innerHTML='';
  
  eval(ret);
  if(show_route_no)num=show_route_no;
  
  eval(points_group[num]);
  //alert(point[1]+"\n"+rand[1]+"\n"+stops_arr[1]);
  if(get_pre_trasa){
    document.getElementById('trasa_0').innerHTML=pre_trasa_0;
  }
  
  if(set_szFull_default_val){
    set_szFull_default_val=false;
    set_szFull_default();
  }else{}
  show_route_no=false;
  
  //point=points_group[num];
  //alert(points_group[num].length+' '+point.length+'   '+points_group[num]);
  //alert(point[0]
  for(var n=0;n<point.length;n++){
    if(rand[n]==undefined)var draw_route=false; else var draw_route=true;
    if(n==0){
      var icon_tmp = new GIcon();
      icon_tmp.image = base_src+'_data/img/stops_num/'+line[n]+'.gif';
      icon_tmp.iconSize = new GSize(46, 38);
      icon_tmp.iconAnchor = new GPoint(9, 41);
      bus_0 = new GMarker(point[n],{zIndexProcess:(top_z_index-1),icon:icon_tmp});
      map.addOverlay(bus_0); 
      GEvent.addListener(bus_0,'click',function(p){
        for(var i=0;i<point.length;i++){
          if(point[i]==p)open_info(i,stops_arr[i],p);
        }
      });        
    }
    //alert(stops_arr[n]);
    //if(last_line_num==-1){      color=color_1; icon_type=icon_g; last_line_num=rand[n];}
    //if(last_line_num!=rand[n]){ color=color_2; icon_type=icon_b; }
    if(last_line_num==-1){      color=color_arr[color_num]; color_num++; icon_type=icon_g; last_line_num=rand[n];}
    var zmiana=false;
    if(last_line_num!=rand[n]){ 
      color=color_arr[color_num]; color_num++; 
      if(icon_type==icon_b)icon_type=icon_g;
      else icon_type=icon_b; 
      var zmiana=true;
    }
    last_line_num=stops_num_arr[n];
    last_line_num=rand[n];
    
    //TODO
    //alert(stops_arr[rand[n]+'.'+n]);
    //marker[n] = GMarker2(point[n],'_data/connect.php?bt2id='+stops_arr[rand[n]+'.'+n],{icon:icon_type, draggable:false});//icon:icon, draggable:false
    //marker[n] = GMarker2(point[n],'test.html',{icon:icon_type, draggable:true});//icon:icon, draggable:false
    
    //marker[stops_arr[n]] = GMarker2(point[n],'test.html',{icon:icon_type, draggable:true});
    //marker[stops_arr[n]] = new GMarker(point[n],{icon:icon_type,draggable:false});
    marker[stops_arr[n]] = new GMarker(point[n],{icon:icon_type,draggable:false});//przystanki
    map.addOverlay(marker[stops_arr[n]]);
    
    GEvent.addListener(marker[stops_arr[n]],'dragstart',function(){
       //if(!start_point_tmp)
       start_point_tmp=this.getPoint();
       //alert(start_point_tmp);
    });        
    GEvent.addListener(marker[stops_arr[n]],'dragend',function(p){
       /*
       alert('dragend');
       for(var i=0;i<point.length;i++){
         //alert(point[i]+' == '+start_point_tmp);  
         if(point[i]==start_point_tmp){
           //if(point[i]==p){
           //alert('zapisz_przystanek');
           zapisz_przystanek(i,stops_arr[i],p, start_point_tmp);
         }
       }
       */
       //alert(123);
       stop_point_tmp=this.getPoint();
       //linia_point_tmp=document.getElementById('linia_id').value;
       zapisz_przystanek(start_point_tmp,stop_point_tmp,linia_point_tmp);
       //alert(linia_tmp+' = '+start_point_tmp+' = '+this.getPoint());
    });        
    GEvent.addListener(marker[stops_arr[n]],'click',function(p){
       for(var i=0;i<point.length;i++){
         if(point[i]==p)open_info(i,stops_arr[i],p);
       }
    });        
    
    //alert('x');
    if(n>0 && draw_route){
      if(zmiana){
        polyline[n] = new GPolyline([point[n-1], point[n]], '#555555', 2, 0.7);
        if(last_line!=line[n]){
          var icon_tmp = new GIcon();
          icon_tmp.image = base_src+'_data/img/stops_num/'+line[n]+'.gif'
          icon_tmp.iconSize = new GSize(46, 38);
          icon_tmp.iconAnchor = new GPoint(9, 41);
          bus_1 = new GMarker(point[n],{zIndexProcess:(top_z_index-1),icon:icon_tmp});
          map.addOverlay(bus_1);        
          GEvent.addListener(bus_1,'click',function(p){
            for(var i=0;i<point.length;i++){
              if(point[i]==p)open_info(i,stops_arr[i],p);
            }
          });        

          last_line=line[n];
        }
      }else polyline[n] = new GPolyline([point[n-1], point[n]], color, 5, 0.7);
      map.addOverlay(polyline[n]);
    }
    //if((n+1)==point.length)alert(color+' '+rand[n]+' '+last_line_num);
  }
  if(main_search_point_from&&draw_route){
    polyline[n] = new GPolyline([main_search_point_from, point[0]], '#555555', 2, 0.7);
    map.addOverlay(polyline[n]);
  }
  if(main_search_point_to&&draw_route){
    polyline[n] = new GPolyline([point[point.length-1],main_search_point_to], '#555555', 2, 0.7);
    map.addOverlay(polyline[n]);
  }
  
  if(fit_next){
    fit_next=false;
    fit(point);
  }
  if(point.length>0 && num==0){
    //alert(123);
    //fit(point);
    
  }
  //if(marker.length>0)fit(marker);
}
var start_point_tmp;
var stop_point_tmp;
var linia_point_tmp;

function fit(point){//, main_search_marker_from, main_search_marker_to){
  var bounds = new GLatLngBounds();
  for(var i=0;i<point.length;i++){bounds.extend(point[i])};
  
  if(main_search_marker_from)bounds.extend(main_search_marker_from.getPoint());
  if(main_search_marker_to)bounds.extend(main_search_marker_to.getPoint());

  var lngCenter = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2;
  var latCenter = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2;
  var center = new GLatLng(latCenter,lngCenter);
  map.setCenter(center, map.getBoundsZoomLevel(bounds));
  //map.setCenter(center);
}
/*
function fit(marker){//, main_search_marker_from, main_search_marker_to){
  var bounds = new GLatLngBounds();
  for(var i=0;i<marker.length;i++){bounds.extend(marker[i].getPoint())};
  
  if(main_search_marker_from)bounds.extend(main_search_marker_from.getPoint());
  if(main_search_marker_to)bounds.extend(main_search_marker_to.getPoint());

  var lngCenter = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2;
  var latCenter = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2;
  var center = new GLatLng(latCenter,lngCenter);
  map.setCenter(center, map.getBoundsZoomLevel(bounds));
}
*/


function open_info(i,stops_arr_i,p){
  //alert('hej() - '+i+', '+stops_arr_i+', '+p);
  var stops_arr_i_arr=stops_arr_i.split('|');
  
  var przystanek_id=stops_arr_i_arr[0];
  var linia     =stops_arr_i_arr[1];
  var id_trasy  =stops_arr_i_arr[2];
  var kolejnosc =stops_arr_i_arr[3];
  
  map.setCenter(p);
  //map.setCenter(new GLatLng(37, -122));
  var tabs = [
    new GInfoWindowTab("Tab #1", "Hello"),
    new GInfoWindowTab("Tab #2", "World")
  ];
  //map.openInfoWindowTabsHtml(map.getCenter(), tabs);
  //'_data/connect.php?bt2id='+
  //map.openInfoWindowHtml(map.getCenter(), 'xxx<br>xxx<br>');
  //this.openAjaxInfoWindow('test.html');
  
  GDownloadUrl(base_src+'_data/connect.php?miasto='+miasto+'&bt2id='+przystanek_id+'&data='+linia+'|'+id_trasy+'|'+kolejnosc+'&sunday='+document.getElementById('niedziela').checked+'&i='+i,function(tresc,kodOdpowiedzi){
		//kontener.innerHTML = '<div style="width: 300px; height: 200px; overflow: auto;">'+tresc+'</div>';
		if(domain&&domain=='wawka')var logo_wa='_wa';else var logo_wa='';
		map.openInfoWindow(map.getCenter(),'<div style="padding-bottom:23px;overflow:show;xwidth:330px;xheight:340px;overflow:auto;background:url('+base_src+'_data/img/logo_small'+logo_wa+'.png) bottom right no-repeat" id="rozklad_id">'+tresc+'</div>');
	});
  
  //map.openInfoWindow(map.getCenter(), '<div style="width:100px;height:100px;font-size:10px;">xxx<br>xxx<br></div>');
  
}




function ukryjMenu(){
	//document.getElementById('menu').style.display = "none";
	menu.style.display = "none";
	//GEvent.removeEventListener(map,'click',ukryjMenu, false);
}


	


var menu;
var klikniety;
var show_hide_menu=false;


    function initialize(lat1,lon1,lat2,lon2) {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.enableScrollWheelZoom();
        //var uiOptions = map.getDefaultUI();
        //uiOptions.zoom.scrollwheel = true;
        //map.setUI(uiOptions);

        //map.setCenter(new GLatLng(52, 19.3), 6);
        //map.setCenter(new GLatLng(53.1612555, 18.1652091), 12);
        if(miasto=='wa_')map.setCenter(new GLatLng(52.229676,21.012229), 13);
        if(miasto=='kr_')map.setCenter(new GLatLng(50.064564,19.945142), 13);
        if(miasto=='lo_')map.setCenter(new GLatLng(51.759148,19.455864), 13);
        if(miasto=='wr_')map.setCenter(new GLatLng(51.107739,17.038722), 13);
        if(miasto=='po_')map.setCenter(new GLatLng(52.406392,16.925393), 13);
        if(miasto=='gd_')map.setCenter(new GLatLng(54.351873,18.646352), 13);
        if(miasto=='sz_')map.setCenter(new GLatLng(53.428515,14.552486), 13);
        if(miasto=='by_')map.setCenter(new GLatLng(53.123386,18.007933), 13);
        if(miasto=='lu_')map.setCenter(new GLatLng(51.246377,22.568439), 13);
        
        geocoder = new GClientGeocoder();
        map.showControls();  
        
        

        var menuHTML = ''
          +'<div class="comments_control" style="margin-top:7px;"><a href="#" onclick="dodaj(\'start\');return false;">początek trasy</a></div>'
          +'<div class="comments_control"><a href="#" onclick="dodaj(\'stop\'); return false;">koniec trasy</a></div>'
          +'<div class="comments_control"><a href="#" onclick="pokaz_przystanki();ukryjMenu(); return false;">pokaż przystanki</a></div>'
          ;//+'<div class="comments_control"><a href="#" onclick="zapisz_lokalizacje(\'stop\'); return false;">zapisz lokalizację</a></div>';

          
//          + '<a href="#" onclick="dodaj(\'start\');return false;">Poczatek trasy</a>'
//          + '<a href="#" onclick="dodaj(\'stop\'); return false;">Koniec trasy</a>';
          //+ '<a href="#" onclick="usun(); return false;">usuń markery</a>';
        menu = document.createElement("div");
        menu.style.display = "none"; 	// niech menu początkowo będzie niewidoczne
        menu.className = "menu"; 		// za pomocą arkusza CSS nadamy odpowiedni wygląd
        menu.innerHTML = menuHTML;
        map.getContainer().appendChild(menu);        
        
        draw_start();
        
        
        GEvent.addListener(map,"singlerightclick",function(p){  
          show_hide_menu=true;
          //klikniety = map.fromDivPixelToLatLng(p);
          klikniety = map.fromContainerPixelToLatLng(p);
          var menu_x = p.x;
          var menu_y = p.y;
          // jeśli kliknięto zbyt blisko brzegu ekranu
          if(p.x > map.getSize().width - 132)menu_x = map.getSize().width - 132;
          if(p.y > map.getSize().height - 140)menu_y = map.getSize().height - 140;
          
          var pozycja = new GSize(menu_x,menu_y);
          
          var pokazMenu = new GControlPosition(G_ANCHOR_TOP_LEFT, pozycja);
          pokazMenu.apply(menu);
          menu.style.display = "block";
          GEvent.addListener(map,'click',ukryjMenu);
        });
        
        GEvent.addListener(map,"click", function(overlay, p) {    
          if (p) { 
            var wsp = map.fromLatLngToContainerPixel(p);
            clicked_x=p.x;
            clicked_y=p.y;
            if(document.getElementById('user_point_lat'))document.getElementById('user_point_lat').value=clicked_y;
            if(document.getElementById('user_point_lon'))document.getElementById('user_point_lon').value=clicked_x;
          }
        });

        /*
        GEvent.addListener(map,"click", function(overlay, p) {    
          if(show_hide_menu){
            ukryjMenu();
            show_hide_menu=false;
            return false;
          }else show_hide_menu=true;
          if (p) { 
            //var wsp = map.fromLatLngToDivPixel(p);
            var wsp = map.fromLatLngToContainerPixel(p);
            clicked_x=p.x;
            clicked_y=p.y;
            if(document.getElementById('user_point_lat'))document.getElementById('user_point_lat').value=clicked_y;
            if(document.getElementById('user_point_lon'))document.getElementById('user_point_lon').value=clicked_x;
            //p = map.fromLatLngToDivPixel(p);
            var menu_x = wsp.x;
            var menu_y = wsp.y;
            
            // jeśli kliknięto zbyt blisko brzegu ekranu
            if(p.x > map.getSize().width - 132)menu_x = map.getSize().width - 132;
            if(p.y > map.getSize().height - 140)menu_y = map.getSize().height - 140;
            
            var pozycja = new GSize(menu_x,menu_y);
            
            var pokazMenu = new GControlPosition(G_ANCHOR_TOP_LEFT, pozycja);
            //var pokazMenu = new GControlPosition(G_ANCHOR_TOP_LEFT, p2);
            pokazMenu.apply(menu);
            menu.style.display = "block";
            //GEvent.addListener(map,'click',ukryjMenu);
          }
        });
*/
        
        
        
        
        if(lat1&lon1&lat2&lon2){
          fit_next=true;
          main_search_point_from = new GLatLng(lat1, lon1);
          main_search_point_to   = new GLatLng(lat2, lon2);
          draw_search_points();
        }
      }
    }
    
    
    
    

    function showAddress(address, target) {
      //alert(txt)
      
      //alert(address+' '+address.indexOf('"'));
      if(address.indexOf('"')>0){
      
        var point_arr=[];
        point_arr=address.split(', ');
        var lat=point_arr[0].substring(0,2)+'.'+point_arr[0].substring(3,5)+''+point_arr[0].substring(6,8);
        var lon=point_arr[1].substring(0,2)+'.'+point_arr[1].substring(3,5)+''+point_arr[1].substring(6,8);
        alert(lat+', '+lon);
        //var point=GLatLng(lat, lon);
        var point='('+lat+', '+lon+')';
        //alert('1) '+point);
        if(target=='to')main_search_point_to=point;
        if(target=='from')main_search_point_from=point;
              
        draw_search_points();
        //map.setCenter(point);//, 13
        start_simple_points_search();
      
      }else if(geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert('Adres "' + address + '" nie został znaleziony.');
            } else {
              
              //alert('2) '+point);
              if(target=='to')main_search_point_to=point;
              if(target=='from')main_search_point_from=point;
              
              //map.setCenter(point);//, 13
              draw_search_points();
              start_simple_points_search();
              //var marker = new GMarker(point);
              //map.addOverlay(marker);
              
              //marker.openInfoWindow(txt+'<b>Wynik wyszukiwania na mapie:</b><br/>'+address+'<br/>'+map.getCenter());
              
              //alert(placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName);
              //alert(point.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName);
              //


              
            }
          }
        );
      }
    }
  
    
    
    function set_klik(lat, lon){
      klikniety=new GLatLng(lat, lon);
    }
    
    function dodaj(action){
      if(action==1122)action='start';
      else if(action==2211)action='stop';
      map.clearOverlays();
      if(action=='start'){
        main_search_point_from  = klikniety;
        /*
        main_search_marker_from = new GMarker(klikniety);
        map.addOverlay(main_search_marker_from);
        if(main_search_point_to){
          main_search_marker_to = new GMarker(main_search_point_to);
          map.addOverlay(main_search_marker_to);
        }
        */
      }
      if(action=='stop'){
        main_search_point_to  = klikniety;
        /*
        main_search_marker_to = new GMarker(klikniety);
        map.addOverlay(main_search_marker_to);
        if(main_search_point_from){
          main_search_marker_from = new GMarker(main_search_point_from);
          map.addOverlay(main_search_marker_from);
        }
        */
      }
      draw_search_points();
			ukryjMenu();
			
			if(main_search_point_from&&main_search_point_to){
        //zacznij szukac polaczen
        //alert(main_search_point_from+'   '+main_search_point_to);
        start_simple_points_search();
        
			}
      return false;
		}
		
    function pokaz_przystanki(){
      map.clearOverlays();
      draw_line('pokaz_przystanki', klikniety);
      return false;
		}
		
    
    function top_z_index(){
      return 9999999;
    }
		
		
		
		


		function draw_search_points(){
        map.clearOverlays();
        //alert('id main_search_point_to - '+main_search_point_to);
        if(main_search_point_to){
          //alert('xxx - '+main_search_point_to);
          main_search_marker_to = new GMarker(main_search_point_to,{bouncy:true,draggable:true,zIndexProcess:top_z_index,icon:icon_1});
          //icon:icon_0,
          map.addOverlay(main_search_marker_to);
          GEvent.addListener(main_search_marker_to,'dragend',function(){
            main_search_point_to=main_search_marker_to.getPoint();
            //document.getElementById('to').value=point_format(main_search_point_to);
            if(main_search_point_from)start_simple_points_search();
          });
          
        }
        if(main_search_point_from){
          main_search_marker_from = new GMarker(main_search_point_from,{bouncy:true,draggable:true,zIndexProcess:top_z_index,icon:icon_0});
          //icon:icon_w,
          map.addOverlay(main_search_marker_from);
          GEvent.addListener(main_search_marker_from,'dragend',function(){
            main_search_point_from=main_search_marker_from.getPoint();
            //document.getElementById('from').value=point_format(main_search_point_from);
            if(main_search_point_to)start_simple_points_search();
          });
        }
        //alert(main_search_point_to+' '+main_search_point_from);
        //if(main_search_point_to&&main_search_point_from)start_simple_points_search();
        if(main_search_marker_from && main_search_marker_to && draw_route){
          draw_route=false;
          start_simple_points_search();
        }
    }
    
    
  
    
    function start_simple_points_search(){
      if(main_search_point_from&&main_search_point_to)
        //draw_line('przystanki', main_search_point_from+'_'+main_search_point_to);
        draw_line('simple_points_v2', main_search_point_from+'_'+main_search_point_to);
    }
  
  
  
  
  
  
  function kwicks_start(){
var kwicks = $$("#trasy .trasy");
var fx = new Fx.Elements(kwicks, {wait: false, duration: 300, transition: Fx.Transitions.Cubic.easeOut});
kwicks.each(function(kwick, i) {
	kwick.addEvent("mouseenter", function(event) {
    var o = {};
		o[i] = {height: [kwick.getStyle("height").toInt(), szFull]};
		kwicks.each(function(other, j) {
			if(i != j) {
				var w = other.getStyle("height").toInt();
				if(w != szSmall) o[j] = {height: [w, szSmall]};
			}
		});
		fx.start(o);
	});
});
}






function show_all_citys(){
var all_citys=
 "<a href=\"#\" onclick=\"miasto_full='Warszawa';miasto='wa_';setCityCenter('wa_');get_content('trasa_0','miasto=wa_&act=get_all_lines');\" class=\"linie\"><b>Warszawa</b></a>"+
  "            <a href=\"#\" onclick=\"miasto_full='Kraków';miasto='kr_';setCityCenter('kr_');get_content('trasa_0','miasto=kr_&act=get_all_lines');\" class=\"linie\"><b>Kraków</b></a>"+
  "            <a href=\"#\" onclick=\"miasto_full='Łódź';miasto='lo_';setCityCenter('lo_');get_content('trasa_0','miasto=lo_&act=get_all_lines');\" class=\"linie\"><b>Łódź</b></a>"+
  "            <a href=\"#\" onclick=\"miasto_full='Wrocław';miasto='wr_';setCityCenter('wr_');get_content('trasa_0','miasto=wr_&act=get_all_lines');\" class=\"linie\"><b>Wrocław</b></a>"+
 "            <a href=\"#\" onclick=\"miasto_full='Poznań';miasto='po_';setCityCenter('po_');get_content('trasa_0','miasto=po_&act=get_all_lines');\" class=\"linie\"><b>Poznań</b></a>"+
 "            <a href=\"#\" onclick=\"miasto_full='Gdańsk';miasto='gd_';setCityCenter('gd_');get_content('trasa_0','miasto=gd_&act=get_all_lines');\" class=\"linie\"><b>Gdańsk</b></a>"+
 "            <a href=\"#\" onclick=\"miasto_full='Szczecin';miasto='sz_';setCityCenter('sz_');get_content('trasa_0','miasto=sz_&act=get_all_lines');\" class=\"linie\"><b>Szczecin</b></a>"+
 "            <a href=\"#\" onclick=\"miasto_full='Bydgoszcz';miasto='by_';setCityCenter('by_');get_content('trasa_0','miasto=by_&act=get_all_lines');\" class=\"linie\"><b>Bydgoszcz</b></a>"+
 "            <a href=\"#\" onclick=\"miasto_full='Lublin';miasto='lu_';setCityCenter('lu_');get_content('trasa_0','miasto=lu_&act=get_all_lines');\" class=\"linie\"><b>Lublin</b></a>"+
  "             <a href=\"#\" onclick=\"this.style.display='none';\" class=\"linie\"><b>Katowice</b> (wkrótce)</a>";
document.getElementById('trasa_0').innerHTML=all_citys;
}








function print_route(route_num){
  var tmp_route_desc=document.getElementById('trasa_'+route_num).innerHTML;
  var tmp_route_desc_index=tmp_route_desc.indexOf('<a');
  tmp_route_desc=tmp_route_desc.substring(0,tmp_route_desc_index);
  window.open(base_src+'_data/print.php?print='+tmp_route_desc,'','menubar=no, personalbar=no, toolbar=no, width=300, height=505');
}
function print_div(div_id){
  var tmp_route_desc=document.getElementById(div_id).innerHTML;
  window.open(base_src+'_data/print.php?print='+tmp_route_desc,'','menubar=no, personalbar=no, toolbar=no, width=500, height=600');
}



function find_later(){
  var time=document.getElementById('time').value;
  var time_split=time.split(':');
  var h=time_split[0].toInt();
  var m=time_split[1].toInt();
  m+=20;
  if(m>59){
    h++;
    m-=60;
  }
  if(h>23)h=0;
  if(m<10)m='0'+m;
  document.getElementById('time').value=h+':'+m;
  start_simple_points_search();  
}

function find_earlier(){
  var time=document.getElementById('time').value;
  var time_split=time.split(':');
  var h=time_split[0].toInt();
  var m=time_split[1].toInt();
  m-=20;
  if(m<0){
    h--;
    m+=60;
  }
  if(h<0)h=23;
  if(m<10)m='0'+m;
  document.getElementById('time').value=h+':'+m;
  start_simple_points_search();  
}


var info_box_status=0;
var info_box_all_text='';
function info_box(text){
  //return false;
  if(info_box_all_text.indexOf(text)>=0)return true;
  else info_box_all_text=info_box_all_text+' '+text;
  
  var box=document.getElementById('info_box');
  var box_text=document.getElementById('info_box_content');
  if(info_box_status==0)box_text.innerHTML='<strong>Informacja:</strong><br>'+text;
  else{
    var content=box_text.innerHTML;
    if(content.indexOf(text)>=0){}
    else box_text.innerHTML=box_text.innerHTML+'<br><br>'+text;
  }
  box.style.display='block';
  if(info_box_status<0)info_box_status=0;
  info_box_status++;
  setTimeout('info_box_close()', 10000);  
}
function info_box_close(){
  info_box_status--;
  if(info_box_status<0)info_box_status=0;
  if(info_box_status==0){
    var box=document.getElementById('info_box');
    var box_text=document.getElementById('info_box_content');
    box_text.innerHTML='';
    box.style.display='none';
  }
}



function welcomeMessage(){
  //return false;
  var text='<strong>Przesiadki.pl działają już na nowym silniku wyszukującym!</strong><br/><br/>Przede wszystkim algorytm szukający połączeń został rozbudowany i działa dzięki temu <strong>znacznie dokładniej</strong>, wyszukując bardziej <strong>optymalne trasy</strong> i prowadząc Cię zawsze do <strong>najbliższych przystanków</strong>.<br><br>W czasie rozbudowy wyszukiwarki dodanych zostało również kilka <strong>nowych funkcji</strong>:<ol><li>Doszły opcje "<strong>Unikaj linii</strong>" i <strong>Preferowana linia</strong>. Zmniejsza lub zwiększa to szanse wystąpienia danej linii w wynikach.</li><li>Klikając w ikonę przystanku można zapoznać się z pełnym <strong>rozkładem jazdy na cały tydzień</strong>. Można również przełączać się między liniami zatrzymującymi się na danym przystanku.</li><li>Dodana została również opcja "<strong>Pokaż przystanki</strong>" dostępna w menu otwieranym po kliknięciu prawym przyciskiem myszy w mapę. Opcja ta wyświetla kilkadziesiąt najbliższych przystanków, dzięki czemu można zapoznać się z ich szczegółowym rozkładem jazdy.</li><li>Doszła <strong>możliwość logowania</strong> i <strong>zapisywania swoich punktów</strong>. Dzięki temu można szybciej wybrać przystanki, z których zazwyczaj korzystacie.</li><li>"Dzień wolny" rozgraniczony został na sobotę i niedzielę.</li></ol>';
  
  var box=document.getElementById('info_box');
  var box_text=document.getElementById('info_box_content');
  //if(info_box_status==0)box_text.innerHTML='<strong>Informacja:</strong><br>'+text;
  if(info_box_status==0)box_text.innerHTML=text;
  else{
    var content=box_text.innerHTML;
    if(content.indexOf(text)>=0){}
    else box_text.innerHTML=box_text.innerHTML+'<br><br>'+text;
  }
  box.style.display='block';
  info_box_status++;
  setTimeout('info_box_close()', 15000);  
}



function log_reg(){
  var reg=document.getElementById('rejestracja');
  var log=document.getElementById('logowanie');
  if(log.style.display=='block'){
    log.style.display='none';
    reg.style.display='block';
  }else{
    log.style.display='block';
    reg.style.display='none';
  }
}




























