// JavaScript Document
// Kerékgyártó József & jkerekgyarto@porsche.hu

function getUrlVars() {
			var vars = {};
			var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
				vars[key] = value;
																									  }
													);
			return vars;
					  }    
//=================================================================================================================================================//
//====================================================== Megyekozpontok koordinatai ===============================================================//

    function megyekozpont(megye, x, y, nagyitas) {
        this.megye = megye;
        this.x = x;
        this.y = y;
        this.nagyitas = nagyitas;
												 }       
    
    function different(a,b) {
                      // only interested in the bit before the first comma in the reply
                      var c = b.split(",");
                      b = c[0];
                      // convert to lower case
                      a = a.toLowerCase();
                      b = b.toLowerCase();
                      // remove apostrophies
                      a = a.replace(/'/g ,"");
                      b = b.replace(/'/g ,"");
                      // replace all other punctuation with spaces
                      a = a.replace(/\W/g," ");
                      b = b.replace(/\W/g," ");
                      // replace all multiple spaces with a single space
                      a = a.replace(/\s+/g," ");
                      b = b.replace(/\s+/g," ");
                      // split into words
                      awords = a.split(" ");
                      bwords = b.split(" ");
                      // perform the comparison
                      var reply = false;
                      for (var i=0; i<bwords.length; i++) {
                        if (standardize(awords[i]) != standardize(bwords[i])) {reply = true}
														  }
                      return (reply);
							}                         
    
    megyekozpontok = new Object();
    
	megyekozpontok[0] = new megyekozpont("default","47.162494","19.503304",7);
    megyekozpontok[1] = new megyekozpont("Bacs-Kiskun","46.519444","19.446111",9);
    megyekozpontok[2] = new megyekozpont("Baranya","46.077222","18.248056",10);
    megyekozpontok[3] = new megyekozpont("Bekes","46.678889","21.090833",10);
    megyekozpontok[4] = new megyekozpont("Borsod-Abauj-Zemplen","48.29394","20.693411",9);
    megyekozpontok[5] = new megyekozpont("Budapest","47.501855","19.060525",10);
    megyekozpontok[6] = new megyekozpont("Csongrad","46.710833","20.144575",8);
    megyekozpontok[7] = new megyekozpont("Fejer","47.121793","18.529482",10);
    megyekozpontok[8] = new megyekozpont("Gyor-Moson-Sopron","47.650929","17.250588",9);
    megyekozpontok[9] = new megyekozpont("Hajdu-Bihar","47.468836","21.545323",9);
    megyekozpontok[10] = new megyekozpont("Heves","47.805762","20.203856",9);
    megyekozpontok[11] = new megyekozpont("Jasz-Nagykun-Szolnok","47.255558","20.523246",9);
    megyekozpontok[12] = new megyekozpont("Komarom-Esztergom","47.629139","18.401459",10);
    megyekozpontok[13] = new megyekozpont("Nograd","47.921843","19.558645",9);
    megyekozpontok[14] = new megyekozpont("Pest","47.498333","19.040833",10);
    megyekozpontok[15] = new megyekozpont("Somogy","46.554859","17.586673",9);
    megyekozpontok[16] = new megyekozpont("Szabolcs-Szatmar-Bereg","48.039495","22.00333",10);
    megyekozpontok[17] = new megyekozpont("Tolna","46.476275","18.557063",9);
    megyekozpontok[18] = new megyekozpont("Vas","47.092911","16.681218",9);
    megyekozpontok[19] = new megyekozpont("Veszprem","47.111971","17.600193",10);
    megyekozpontok[20] = new megyekozpont("Zala","46.73844","16.915225",10);

//====================================================== Megyekozpontok koordinatai vége ==========================================================//
//=================================================================================================================================================//

            var cel_x;
            var cel_y;
            var cel_partner_id;
            var adatok = new Array();
            
//====================================================== Ez a fv. hozza létre a térképet ==========================================================//
 
	     function terkep_letrehoz(nagyitas){
            var map = new GMap2(document.getElementById('map_canvas'));
            var hungary= new GLatLng(47.162494,19.503304);  
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());
            map.setCenter(hungary, nagyitas);
            return map;
											}  
//============================================================   END   ============================================================================//

 //====================================================== Az útvonaltervezés függvénye ==========================================================//	
	function tervez(honnan,x,y,partner_id){
		
		var gdir;
		document.getElementById("lista").style.visibility='hidden';
	function cim_check(honnan) {
		var map;
		var celkoord;	
		var szoveg;
		map = new GMap2(document.getElementById('map_canvas'));
		celkoord = x+","+y;	
				var geocoder;
				geocoder = new google.maps.Geocoder();	
				var address = document.getElementById("address").value;
				geocoder.geocode( { 'address': address}, function(results, status) {
				  if (status == google.maps.GeocoderStatus.OK) {
						//Budapestbol 2 van de ua az a koordinataja igy statikus
						if (honnan == "Budapest")
						{
							setDirections("47.4984056,19.040757799999938", celkoord,"hu_HU");
						}
						else{
						//Budapest vizsgalat vege
						
						if (results.length >= 2) 
						{
											  $('#honnan_div').animate({
													"height": "120px"
																		},600);
								document.getElementById("lista").style.visibility='visible';
								   for (var i=0; i<results.length; i++)
										{
											szoveg = +(i+1)+".<a href='javascript:setDirections(\""+results[i]['geometry']['location'].toString().replace("(","").replace(")","").split(",")[0].trim() +","+results[i]['geometry']['location'].toString().replace("(","").replace(")","").split(",")[1].trim() +"\",\""+x+","+y+"\",\"hu_HU\")'>"+results[i].formatted_address+"</a><br>";
											document.getElementById("lista").innerHTML += szoveg;
																						
										}
								sidebar_buboreknyit(partner_id);
						}
						else
							{
								setDirections(honnan+" Hungary", celkoord, "HU");
							}		
						}
																} 
				  else {
						if (status == 'ZERO_RESULTS'){
							alert("Kérjük létező települést adjon meg!");
							sidebar_buboreknyit(partner_id);
													}
						}
																					}
								);
									}
							cim_check(honnan);
							
	function setDirections1(fromAddress, toAddress, locale) {
		var gdir;
		var map;
		map = new GMap2(document.getElementById('map_canvas'));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
	
		
		gdir = new GDirections(map, document.getElementById("directions"));
                        gdir.load("from: " + fromAddress + " to: " + toAddress,
                        { "locale": locale });
			}
		$('#terv_visszajelzes').empty();                  
    function onGDirectionsLoad(){}
        $('#directions').fadeIn("50");   
												
}
	var last_directions = {};
//============================================================
	function setDirections(fromAddress, toAddress, locale) {
		var gdir;
		var map;
		map = new GMap2(document.getElementById('map_canvas'));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());

		gdir = new GDirections(map, document.getElementById("directions"));
							gdir.load("from: " + fromAddress + " to: " + toAddress,
							{ "locale": locale });
				
				document.getElementById("honnan_div").style.height='30px';
				document.getElementById("lista").style.visibility='hidden';
				// alert("Innen:"+fromAddress+"Ide:"+toAddress);
				last_directions.from=fromAddress;
				last_directions.toaddress=toAddress;
				}
				
	function nyomtat(){
			// alert("Innen:"+last_directions.from+"Ide:"+last_directions.toaddress);
			window.open( "http://maps.google.hu/maps?f=d&source=s_d&saddr="+last_directions.from+"&daddr="+last_directions.toaddress+"&s=11&pw=2&hl=hu&z=8" )
					}
					
		$('#terv_visszajelzes').empty();                  
    function onGDirectionsLoad(){}
        $('#directions').fadeIn("50");
									
  
//============================================================   END   ============================================================================//
  
 //====================================================== Kinyitja a "honnan" divet ==========================================================//              
    function div_nyit(x,y,partner_id){
                  cel_x = x;
                  cel_y = y; 
                  cel_partner_id = partner_id;
                  
                  $('#honnan_div').animate({
                        "height": "30px"
											},600);
			document.getElementById("lista").style.visibility='hidden';
							} 
	function div_eltuntet()
			{
				document.getElementById("lista").style.visibility='hidden';
			}
//============================================================   END   ============================================================================//
//====================================================== Létrehozza a pontokat a megfelő ikonnal =================================================//
//Logo lekerese		     
                var logo_url; 
				var m_id; 
	function createMarker(latlng, number, map,partner_id) {

//Logo beallitasai
                     var logo = new GIcon(G_DEFAULT_ICON, logo_url);
                     logo.iconSize = new GSize(20, 20);     
                     logo.iconAnchor = new GPoint(10,10);
                     logo.shadow = 'img/logok/shadow.png';
                     logo.shadowSize = new GSize(30,20);
 
                      var marker = new GMarker(latlng,logo);   
                      marker.value = number; 
                        var myHtml = "<font class='buborek_szoveg'>";
                        var i = 0;
                        mezok_tomb =  adatok[number-1].mezok;
                        hossz = mezok_tomb.length;

                        for(i=0;i<hossz;i++){
                            if( i == 0 ){
                               myHtml += "<div id=\"buborek_felso_bal\"><b>"+mezok_tomb[i]+"</b><br />";
										}
							else
								{
        						if( i == 1){
        							 myHtml += mezok_tomb[i]+"&nbsp;</div>"; 
											}
											else
											{
												if( i == 3 ){
													myHtml += mezok_tomb[i]+"<br /><br />";
															}
												else{
													myHtml += mezok_tomb[i]+"<br />";
													}
											}	
								}
											}
                        myHtml += "<br /><input type=\"button\" class=\"utvonalterv_gomb\" value=\"Útvonalterv\" onClick=\"div_nyit("+adatok[number-1].x+","+adatok[number-1].y+",'"+adatok[number-1].p_id+"')\" />";
                        if( partner_id != adatok[number-1].p_id ){
                            GEvent.addListener(marker,"click", function() { 
                                map.openInfoWindowHtml(latlng, myHtml);
																		  }
											   );
																 }
						else{
                            GEvent.addListener(marker,"click", function() { 
                                map.openInfoWindowHtml(latlng, myHtml);
																		  }
											   );
                            map.openInfoWindowHtml(latlng, myHtml);
							 } 
                  return marker;
																}
//============================================================   END   ============================================================================//
    //Az oldalsó menüből buboreknyitas
    function sidebar_buboreknyit(partner_id){
                map = terkep_letrehoz(9);
                var hossz = adatok.length;
    			for(i=0;i<hossz;i++){
    				var pont = new GLatLng(adatok[i].x, adatok[i].y); 
					marker = new GMarker(pont);
                    var nev = adatok[i].nev;
                    marker.value = i;
                    map.addOverlay(createMarker(pont, i + 1,map,partner_id));
									};
											}
    //A térképet a megye közepére igazító fv.
    function megye_kozepre(){
                for(var i=0;i<megyekozpontok.length;i++){
    // Ha a tombbol az aktual megye neve megegyezik a megnyitott megyével akkor atadja a koordinatait a setCenter fv.nek
            				    if(megyekozpontok[i].megye == akt_megye){
            				        var akt_coord  =  megyekozpontok[i].x+megyekozpontok[i].y;
            				        map.setCenter(akt_coord, megyekozpontok[i].nagyitas);
																		}
														}
							}
				$(document).ready(function(){       
	//Térkép létrehozás és Magyarország középrehelyezésével
              	map = terkep_letrehoz(7);       
    //térkép azonosító elküldése, és a hozzá tartozo partnerek adatainak visszanyerése
    		  $.post("adatok.php", {map_id : m_id } ,function(data){
    		          adatok = data;
    //A megkapott adatokból kirakja a pontokat 
    			var hossz = data.length;
    				for(i=0;i<hossz;i++){
    				    var pont = new GLatLng(data[i].x, data[i].y); 
                        marker = new GMarker(pont);
                        var nev = data[i].nev;
                        marker.value = i;
                        map.addOverlay(createMarker(pont, i + 1,map));
										};
																	}, "json");
    //A tervez gomb megnyomásakor lefutó függvény		
				$('#tervez_gomb').click(function(){
					$('#lista').empty();
					var cim_honnan = $('#address').val();
					if(cim_honnan != ""){
					   tervez(cim_honnan,cel_x,cel_y,cel_partner_id); 						
										}
					else alert("Nem adott meg indulási pontot!");
					$('#directions').empty();
												  }
										);
            
    //Megye listából való választás esetén lefutó függvény
    $('#megyek').change(
	function(){
                var akt_megye = escape($('#megyek').val()); 
    //Oldalso menu uritese
                $('#side_menu').empty();
    // Ajax-al lekerdezi mely partnerek vannak az aktualis megyeben
            	$.get("megyei_lista.php", {megye : akt_megye} ,
	function(data){
        		    var adatok = data;
        			for(var i in adatok){     
        			var akt_nev = adatok[i];
    //partner hozzáfűzése a partnerek listájához
        			var sidebar_elem = akt_nev;
					$('#side_menu').append(sidebar_elem);
										}
					for(var i=0;i<21;i++){
            				    if(megyekozpontok[i].megye == akt_megye){
            				        var akt_coord  =  new GLatLng(megyekozpontok[i].x,megyekozpontok[i].y);
            				        var nagyitas = megyekozpontok[i].nagyitas;
									map.setCenter(akt_coord, nagyitas);
																		}
										 }
        				
				  }, "json");     
			  }
						);
    		  
    	});	 
	function osszespartner() {
		var ele = document.getElementById("toggleText");
		var text = document.getElementById("displayText");
		if(ele.style.display == "block") {
				ele.style.display = "none";
			text.innerHTML = "Összes partner";
										 }
		else {
			ele.style.display = "block";
			text.innerHTML = "Összes partner";
			}	
							} 
 
