PageSourceSearch

https://www.visitplovdiv.com/sites/all/themes/plovdiv//js/gmap.min.js

js visitplovdiv.com collected 2026-10-02 07:19:30 UTC 20,125 bytes, 532 lines download raw bytes

1/*
2function mapInfo(){
3	$(document).ready(function($) {
4		$('.map_info').appendTo('.gmap');
5	});
6}
7*/
8
9var _langG = '';
10
11if (window.location.href.indexOf("com/en") >= 0){
12	_langG = "en";
13} else if(window.location.href.indexOf("com/bg") >= 0){
14	_langG = "bg";
15}
16
17jQuery.extend({
18	getValues: function(temp, _langG) {
19	var data = [];
20        
21	var googleitemsNODE = [];
22	var googleitemsCITY = [];
23	var googleitemsOBJECT = [];
24	var googleitemsTYPE = [];
25	var googleitemsNAME = [];
26	var googleitemsPHOTO = [];
27	var googleitemsICON = [];
28	var googleitemsSUMMARY = [];
29	var googleitemsPOSTCODE = [];
30	var googleitemsADDRESS = [];
31	var googleitemsPHONE = [];
32	var googleitemsFAX = [];
33	var googleitemsEMAIL = [];
34	var googleitemsLAT = [];
35	var googleitemsLON = [];
36	var googleitemsLINK = [];
37	var googleitemsLANG = [];
38        
39	var lang_file_xml = '';
40	
41	/*
42	switch(_langG){
43		case 'bg' : lang_file_xml = "bg/bg_gmap-xml"; break;
44		case 'en' : lang_file_xml = "en/gmap-xml"; break;	
45	}
46	*/
47	
48	if (window.location.href.indexOf("com/en") >= 0){
49		lang_file_xml = "en/gmap-xml";
50	} else if(window.location.href.indexOf("com/bg") >= 0){
51		lang_file_xml = "bg/bg_gmap-xml";
52	}
53        
54	$.ajax({
55		url: linkTo('')+lang_file_xml,
56		type: 'get',
57		dataType: 'xml',
58		async: false,
59		success: function(xml) {
60			switch(temp){
61				case "city" : 
62					data['city'] = 'България'; 
63					data['lat'] = '42.145341';
64					data['lon'] = '24.752489'; 
65				break;
66				case "items" : 
67				
68					$(xml).find('googleitems').each(function(index) {
69						googleitemsNODE[index] = $(this).find('node').text();
70						googleitemsNAME[index] = $(this).find('name').text();
71						googleitemsOBJECT[index] = $(this).find('object').text();
72						googleitemsTYPE[index] = $(this).find('type').text();
73						googleitemsPHOTO[index] = $(this).find('photo').text();
74						googleitemsSUMMARY[index] = $(this).find('summary').text();
75						googleitemsPOSTCODE[index] = $(this).find('postcode').text();
76						googleitemsADDRESS[index] = $(this).find('address').text();
77						googleitemsPHONE[index] = $(this).find('phone').text();
78						googleitemsFAX[index] = $(this).find('fax').text();
79						googleitemsEMAIL[index] = $(this).find('email').text();
80
81						googleitemsICON[index] = $(this).find('icon').text();
82						googleitemsLAT[index] = $(this).find('lat').text();
83						googleitemsLON[index] = $(this).find('lon').text();
84                
85						googleitemsLINK[index] = $(this).find('link').text();
86
87						googleitemsLANG[index] = $(this).find('lang').text();
88                
89						data['object'] = googleitemsOBJECT;
90						data['type'] = googleitemsTYPE;
91						data['name'] = googleitemsNAME;
92						data['photo'] = googleitemsPHOTO;
93						data['summary'] = googleitemsSUMMARY;
94						data['postcode'] = googleitemsPOSTCODE;
95						data['address'] = googleitemsADDRESS;
96						data['phone'] = googleitemsPHONE;
97						data['fax'] = googleitemsFAX;
98						data['email'] = googleitemsEMAIL;
99
100						data['icon'] = googleitemsICON;
101						data['lat'] = googleitemsLAT;
102						data['lon'] = googleitemsLON;
103
104						data['link'] = googleitemsLINK;
105						data['lang'] = googleitemsLANG;
106					});
107				break;
108			}
109		}
110	});
111		return data;
112	}
113});
114
115var infoWindow;
116var settingMap = $.getValues("city", 'en');
117var itemsMap = $.getValues("items", 'en');
118
119function resizeGmap(nId){
120	$(document).ready(function() {
121		var imageHeight, wrapperHeight, overlap, container = $('.image-wrap');   
122		function centerImage() {
123			imageHeight = container.find('img').height();
124			wrapperHeight = container.height();
125			overlap = (wrapperHeight - imageHeight) / 2;
126			container.find('img').css('margin-top', overlap);
127			$('.caroufredsel_wrapper').css("width", "100%");
128		}
129		setInterval(function(){
130			centerImage();
131		},100);
132		var el = document.getElementById(nId);
133		//alert(el);
134
135		if (el.addEventListener) {
136			el.addEventListener("webkitTransitionEnd", centerImage, false); // Webkit event
137			el.addEventListener("transitionend", centerImage, false); // FF event
138			el.addEventListener("oTransitionEnd", centerImage, false); // Opera event
139		}
140
141	});
142}
143
144function getMapLang(_langMap){
145	settingMap = $.getValues("city", _langMap);
146	itemsMap = $.getValues("items", _langMap);
147}
148
149var markers = [];
150var iterator = 0;
151var map;
152var geocoder = new google.maps.Geocoder();
153var marker ='';
154
155var neighborhoods = new Array();
156var icons = new Array();
157var the_objects = new Array();
158
159function removeBoxInformation(){
160	if($("*").hasClass("object_box")){
161		$(".object_box").remove();
162	}
163}
164
165function resetMarkers(){
166	for (var i = 0; i < markers.length; i++) {
167		markers[i].setMap(null);
168	};
169	for (var i = 0; i < neighborhoods.length; i++) {
170		addMarker(i);
171	}
172}
173
174function getAllObjects(_object, _lang){
175	var t = [];
176	switch(_lang){
177		case 'bg' : t['all'] = 'Всички'; break;
178		case 'en' : t['all'] = 'All'; break;
179	}
180	// MW Correction
181	//$("<div><a for='all' class='GroupByObjects' rel='' onClick='drop()'>"+t['all']+"</a></div>").appendTo(_object);
182	$('<div><label class="GroupByObjects" onclick="drop()" rel="" for="all">'+t['all']+'<input id="all" type="checkbox" value="'+t['all']+'"></input></label></div>').appendTo(_object);
183
184	for (var i = 0; i < itemsMap['object'].length; i++) {
185		var checkObj = jQuery.inArray(itemsMap['object'][i], the_objects);
186		if (the_objects[checkObj] != itemsMap['object'][i]) {
187			the_objects.push(itemsMap['object'][i]);
188			$("<div><label for='s"+i+"' class='GroupByObjects' rel='"+itemsMap['object'][i]+"' onClick='addFilter(this)'>"+itemsMap['object'][i]+"<input style='' type='checkbox' value='"+itemsMap['object'][i]+"' id='s"+i+"' ></label></div>").appendTo(_object);
189			//<li><a class="GroupByObjects" rel="Заведения" onClick="addFilter(this)">Заведения</a></li>
190		}
191	}
192	//console.log(the_objects); 
193}
194
195function initialize() {
196	var myLatlng = new google.maps.LatLng(settingMap['lat'],settingMap['lon']);
197	var mapOptions = {
198		zoom: 14,
199		center: myLatlng,
200		panControl: true,
201		zoomControl: true, 
202		mapTypeControl: false, 
203		scaleControl: true,
204		streetViewControl: false,
205		overviewMapControl: false,
206		draggable: true,
207		navigationControl: false,
208		scrollwheel: false
209	};
210	map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
211}
212
213function drop() {
214	neighborhoods = [];
215	icons = [];
216	marker = null;
217
218	$(".gmap_menu .GroupByObjects > input").each(function(index){
219		$(this).prop('checked', false);
220		$(this).parent().css('margin-bottom', '1px');
221		$(this).parent().css('border-bottom', 'none');
222	});
223
224	for (var i = 0; i < itemsMap['object'].length; i++) {  
225		//console.log(itemsMap['icon'][i]);
226		if (itemsMap['icon'][i] == '') {
227			//if (itemsMap['lat'][i] != '' && itemsMap['lon'][i] != '') {
228			var r = new google.maps.LatLng(itemsMap['lat'][i], itemsMap['lon'][i]);
229			neighborhoods.push(r);
230			icons.push("icon-default.png");
231			//}
232		} else {
233			//if (itemsMap['lat'][i] != '' && itemsMap['lon'][i] != '') {
234			var r = new google.maps.LatLng(itemsMap['lat'][i], itemsMap['lon'][i]);
235			neighborhoods.push(r);
236			icons.push(itemsMap['icon'][i]);
237			// console.log(itemsMap['icon'][i]);
238			//}
239		}
240	}
241	resetMarkers();
242	// MW Correction
243	$(".GroupByObjects").click(function (e){
244		var element = $(e.target);
245		if (element.attr("id") == "all"){
246			$("#all").prop('checked', true);
247		} else {
248			$("#all").prop('checked', false);
249		}
250	});
251}
252
253function addMarker(num) {
254	var img_photo = '';
255	var _lang = [];
256	marker = new google.maps.Marker({
257		position: neighborhoods[num],
258		icon: linkTo('')+"/sites/all/themes/plovdiv/images/gmap/"+icons[num],
259		map: map,
260		draggable: false,
261		data: itemsMap,
262		objlats: itemsMap['lat'][num],
263		objlons: itemsMap['lon'][num],
264		objObj: itemsMap['object'][num],
265		objType: itemsMap['type'][num],
266		objName: itemsMap['name'][num],
267		objPhoto: itemsMap['photo'][num],
268		objSummary: itemsMap['summary'][num],
269		objAdress: itemsMap['address'][num],
270		objPhone: itemsMap['phone'][num],
271		objPostcode: itemsMap['postcode'][num],
272		objFax: itemsMap['fax'][num],
273		objEmail: itemsMap['email'][num],
274		objLink: itemsMap['link'][num],
275		objLang: itemsMap['lang'][num]
276		//http://devel.qurop.com/pld7/sites/all/themes/plovdiv/images/gmap/"+icons[i]
277	});
278	google.maps.event.addListener(marker,"click",function(event){
279
280	/*
281	if (Number(this.objlats.toString()).toFixed(6) != '') {console.log("lat:o"+Number(this.objlats.toString()).toFixed(6) +" e"+ event.latLng.lat().toFixed(6) +" === lon:o"+ Number(this.objlons).toFixed(6) +" e"+event.latLng.lng().toFixed(6));}else{
282	console.log("error coordination");
283	}
284    */
285
286	if ((Number(this.objlats).toFixed(6) == event.latLng.lat().toFixed(6)) && (Number(this.objlons).toFixed(6) == event.latLng.lng().toFixed(6)) ) {
287		//alert("is true");
288		if (this.objPhoto == '') {
289			img_photo = linkTo('sites/all/themes/plovdiv/images/placeholder-image.png');
290		} else { 
291			img_photo = this.objPhoto; 
292		}  
293		switch(this.objLang){
294			case 'Български' : _lang["more"] = "Прочетете повече..."; break;
295			case 'English' : _lang["more"] = "Read more..."; break;
296		}
297		// +linkTo('sites/all/themes/plovdiv/images/upload/')+''+this.objPhoto+
298		$('.map_info').html('<div class="object_box"><div class="inner_box"><div class="bCancle" onclick="removeBoxInformation()">-</div><h1>'+this.objName+'</h1><h2>'+this.objType+'</h2><div id="gmap-resizer" class="image-wrap"><img src="'+img_photo+'" /></div><p>'+this.objSummary+'<a href="'+this.objLink+'" target="_blank">'+_lang["more"] +'</a></p><div class="address"><h3>'+this.objPostcode+'</h3><h3>'+this.objAdress+'</h3><br/><h3>'+this.objPhone+'</h3><h3>'+this.objFax+'</h3><h3>'+this.objEmail+'</h3></div></div></div>').appendTo('#map-canvas');
299		resizeGmap('gmap-resizer');
300		//alert(this.dta.lat);
301		//console.log(this.objlats +' = '+event.latLng.lat().toFixed(6) + ' : '+this.objlons +' = '+event.latLng.lng().toFixed(6));
302	}
303});
304 
305markers.push(marker);
306	iterator++; 
307	//google.maps.event.addListener(marker,"click",function(){alert(this.position)});   
308}
309
310function addFilter(item){
311	removeBoxInformation();
312	var item = $(item);
313	neighborhoods = [];
314	icons = [];
315	marker = null;
316
317	//multiselect
318	var arr_selected = [];
319	var num_arr_selected = "";
320	$.extend({
321		getSelectedEl: function(){
322			$(".gmap_menu .GroupByObjects > input").each(function(index){
323				var is_check = $(this).attr( "checked" );
324				var name_of_check = $(this).val();
325
326                is_check = $(this).prop( "checked" );
327                name_of_check = $(this).val();
328                num_arr_selected = jQuery.inArray( name_of_check, arr_selected );
329                if(is_check){
330					$(this).parent().css("border-bottom","1px solid #009593");
331					$(this).parent().css('margin-bottom', '0px');
332					if (arr_selected[num_arr_selected] != name_of_check){
333						arr_selected.push(name_of_check);
334						return arr_selected;
335					}
336				} else if (is_check == false){
337					$(this).parent().css('margin-bottom', '1px');
338					$(this).parent().css('border-bottom', 'none');
339					if(arr_selected[num_arr_selected] == name_of_check){
340						delete arr_selected[num_arr_selected];
341                        return arr_selected;
342					}
343				}
344			});
345			return arr_selected;
346		}
347	});
348	resetMarkers();
349	var default_icon = '';
350	var _lang = [];
351
352	for (var i = 0; i < itemsMap['object'].length; i++) {
353		$.each($.getSelectedEl(), function(index, value){
354
355			if(value == itemsMap['object'][i]){ 
356      var r = new google.maps.LatLng(itemsMap['lat'][i], itemsMap['lon'][i]);
357      neighborhoods[i] = r;
358      icons[i] = (itemsMap['icon'][i]);
359      // console.log(icons[i]);
360      if (itemsMap['icon'][i] == '') {
361      marker = new google.maps.Marker({
362        position: neighborhoods[i],
363        icon: linkTo('')+"sites/all/themes/plovdiv/images/gmap/icon-default.png",
364        map: map,
365        draggable: false,
366        data: itemsMap,
367        objlats: itemsMap['lat'][i],
368        objlons: itemsMap['lon'][i],
369        objObj: itemsMap['object'][i],
370        objType: itemsMap['type'][i],
371        objName: itemsMap['name'][i],
372        objPhoto: itemsMap['photo'][i],
373        objSummary: itemsMap['summary'][i],
374        objAdress: itemsMap['address'][i],
375        objPhone: itemsMap['phone'][i],
376        objPostcode: itemsMap['postcode'][i],
377        objFax: itemsMap['fax'][i],
378        objEmail: itemsMap['email'][i],
379        objLink: itemsMap['link'][i],
380        objLang: itemsMap['lang'][i]        
381      });
382      }else{
383      marker = new google.maps.Marker({
384        position: neighborhoods[i],
385        icon: linkTo('')+"sites/all/themes/plovdiv/images/gmap/"+icons[i],
386        map: map,
387        draggable: false,
388        data: itemsMap,
389        objlats: itemsMap['lat'][i],
390        objlons: itemsMap['lon'][i],
391        objObj: itemsMap['object'][i],
392        objType: itemsMap['type'][i],
393        objName: itemsMap['name'][i],
394        objPhoto: itemsMap['photo'][i],
395        objSummary: itemsMap['summary'][i],
396        objAdress: itemsMap['address'][i],
397        objPhone: itemsMap['phone'][i],
398        objPostcode: itemsMap['postcode'][i],
399        objFax: itemsMap['fax'][i],
400        objEmail: itemsMap['email'][i],
401        objLink: itemsMap['link'][i],
402        objLang: itemsMap['lang'][i]        
403      });
404      }
405
406      
407      
408
409				google.maps.event.addListener(marker,"click",function(event){ 
410        if ((Number(this.objlats).toFixed(6) == event.latLng.lat().toFixed(6)) && (Number(this.objlons).toFixed(6) == event.latLng.lng().toFixed(6)) ) {
411          //console.log(this.icon);
412
413          //alert("is true");
414          //console.log(this.objType);
415          if (this.objPhoto == '') {img_photo = linkTo('sites/all/themes/plovdiv/images/placeholder-image.png');}
416           else{ img_photo = this.objPhoto; }
417           switch(this.objLang){
418             case 'Български' : _lang["more"] = "Прочетете повече..."; break;
419             case 'English' : _lang["more"] = "Read more..."; break;
420            }
421
422          $('.map_info').html('<div class="object_box"><div class="inner_box"><div class="bCancle" onclick="removeBoxInformation()">-</div><h1>'+this.objName+'</h1><h2>'+this.objType+'</h2><div id="gmap-resizer" class="image-wrap"><img src="'+img_photo+'" /></div><p>'+this.objSummary+'<a href="'+this.objLink+'" target="_blank">'+_lang["more"]+'</a></p><div class="address"><h3>'+this.objPostcode+'</h3><h3>'+this.objAdress+'</h3><br/><h3>'+this.objPhone+'</h3><h3>'+this.objFax+'</h3><h3>'+this.objEmail+'</h3></div></div></div>').appendTo('#map-canvas');
423          resizeGmap('gmap-resizer');
424                  //alert(this.dta.lat);
425                  //console.log(this.objlats +' = '+event.latLng.lat().toFixed(6) + ' : '+this.objlons +' = '+event.latLng.lng().toFixed(6));
426						}
427					});   
428				markers.push(marker);
429			}
430		}); //$.each($.getSelectedEl(), function(index, value)
431	}
432}
433
434function setMapPosition(){
435  //Get location with click 
436  
437
438  var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
439  var myLatlngSet = new google.maps.LatLng(-25.363882,131.044922); //default
440  var mapOptions = {
441    zoom: 4,
442    center: myLatlng
443  };
444
445  var map = new google.maps.Map(document.getElementById('map-canvas-set'), mapOptions);
446  google.maps.event.addListener(map,"click",function(event){
447    marker.setMap(null);
448    var myLatlngSet = new google.maps.LatLng(event.latLng.lat(),event.latLng.lng());
449
450    marker = new google.maps.Marker({
451    position: myLatlngSet,
452    map: map,
453    title: ''
454
455
456  });
457    $('#map-setter').val(event.latLng.lat() +', '+ event.latLng.lng());
458  });
459  var marker = new google.maps.Marker({
460    position: myLatlngSet,
461    map: map,
462    title: ''
463  });
464}
465
466
467    function ViewMapPosition(lat_, lng_, title_, icon_){
468    //Get location with click 
469    
470    var url_icon = '';
471    switch(icon_){
472        case 'hostel': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-hotel.png'); break;
473        case 'apart': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-hotel.png'); break;
474        case 'motel': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-hotel.png'); break;
475        case 'hotel': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-hotel.png'); break;
476        case 'restaurant': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-restaurant.png'); break;
477        case 'coffee': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-coffee.png'); break;
478        case 'bar': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-bar.png'); break;
479        case 'basein': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-basein.png'); break;
480        case 'ballet': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-ballet.png'); break;
481        case 'bazar': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-bazar.png'); break;
482        case 'hram': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-hram.png'); break;
483        case 'cinema': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-cinema.png');
484        case 'concert': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-concert.png'); break;
485        case 'disco': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-disco.png'); break;
486        case 'literature': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-literature.png'); break;
487        case 'fine-arts': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-fine-arts.png'); break;
488        case 'fastfood': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-fastfood.png'); break;
489        case 'festival': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-festival.png'); break;
490        case 'artgallery': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-artgallery.png'); break;
491        case 'arts': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-arts.png'); break;
492        case 'gallery': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-gallery.png'); break;
493        case 'museum': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-museum.png'); break;
494        case 'opera': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-opera.png'); break;
495        case 'pametnik': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-pametnik.png'); break;
496        case 'public': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-public.png'); break;
497        case 'restaurant': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-restaurant.png'); break;
498        case 'shoping': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-shoping.png'); break;
499        case 'sladkarnica': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-sladkarnica.png'); break;
500        case 'stadium': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-stadium.png'); break;
501        case 'stage': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-stage.png'); break;
502        case 'theatre': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-theatre.png'); break;
503        case 'prirodna': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-prirodna.png'); break;
504        case 'beauty': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-beauty.png'); break;
505        case 'entertainment': url_icon = linkTo('sites/all/themes/plovdiv/images/gmap/icon-entertainment.png'); break;
506
507    }
508
509    var myLatlng = new google.maps.LatLng(42.137186,24.7454763); //plovdiv location
510    var myLatlngView = new google.maps.LatLng(lat_, lng_); //view location
511    var mapOptions = {
512        zoom: 15,
513        center: myLatlngView,
514        panControl: true,
515        zoomControl: true,
516        mapTypeControl: false,
517        scaleControl: true,
518        streetViewControl: false,
519        overviewMapControl: false,
520        navigationControl: false,
521        scrollwheel: false
522    };
523
524    var map = new google.maps.Map(document.getElementById('map-canvas-view'), mapOptions);
525    
526    var marker = new google.maps.Marker({
527        position: myLatlngView,
528        map: map,
529        title: title_,
530        icon: url_icon
531    });
532}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.