var map = null;

function mapPanTo(lat, lng)
{
    if (map) {
        map.panTo(new GLatLng(lat, lng));
    }
}

function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
        if (anchors[i].getAttribute("href") && anchors[i].getAttribute("rel") == "external") {
            anchors[i].target = "_blank";
        }
    }
}

document.getElementsByClassNameOverflow = function(className, parentElement) {
  if (typeof parentElement == 'string'){
    parentElement = document.getElementById(parentElement);
  } else if (typeof parentElement != 'object' ||
             typeof parentElement.tagName != 'string'){
    parentElement = document.body;
  }
  var children = parentElement.getElementsByTagName('*');
  var re = new RegExp('\\b' + className + '\\b');
  var el, elements = [];
  var i = 0;
  while ( (el = children[i++]) ){
    if ( el.className && re.test(el.className)){
      elements.push(el);
    }
  }
  return elements;
}

function initializeGMap(id, lang) {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("mapCanvas"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        map.setUIToDefault();
    }

    var target = document.getElementById(id);
    if (target) {
        map = new GMap2(target);

        if (map) {
            map.setCenter(new GLatLng(51.77692270932102, 19.4720), 16);
            map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());

            var blueIcon = new GIcon(G_DEFAULT_ICON);
            blueIcon.image = "img/google_map_marker.png";
            blueIcon.shadow = "img/google_map_marker_shadow.png";
            blueIcon.iconSize = new GSize(93, 100);
            blueIcon.iconAnchor = new GPoint(70, 98);
            blueIcon.shadowSize = new GSize(144, 100);
            blueIcon.infoWindowAnchor = new GPoint(28, 0);

            markerOptions = { icon:blueIcon };
            var markers = new Array()

            var point = new GLatLng(51.77672270932102, 19.473438262939453);
            markers[0] = new GMarker(point, markerOptions);

            map.addOverlay(markers[0]);

			if (lang == "en") {
	            GEvent.addListener(markers[0], "click", function() {
	              this.openInfoWindow("\
	                <div class='address'>\
	                <h3 class='location'>Seat of the company</h3>\
	                <em class='location'>Rewolucji 1905r. 78/80</em><br/>\
	                90-223 Łódź<br/>\
	                ph./fax. <em>042 630-73-32</em><br/>\
	                mobile. <em>601-28-36-83</em><br/>\
	                </div>\
	                ");
	            });
			} else {
	            GEvent.addListener(markers[0], "click", function() {
	              this.openInfoWindow("\
	                <div class='address'>\
	                <h3 class='location'>SIEDZIBA FIRMY</h3>\
	                ul. <em class='location'>Rewolucji 1905r. 78/80</em><br/>\
	                90-223 Łódź<br/>\
	                tel./fax. <em>042 630-73-32</em><br/>\
	                kom. <em>601-28-36-83</em><br/>\
	                </div>\
	                ");
	            });
			}


            var locations = document.getElementsByClassNameOverflow("location");
            for (i = 0; i < locations.length; i++) {
                if (locations[i].className.indexOf("l1") != -1) {
                    locations[i].onclick = function () {
                        mapPanTo(51.77672270932102, 19.473438262939453);
                    }
                }
            }
        }
    }
}

