function $(element) {
  return document.getElementById(element);
}

var speedTest = {};

speedTest.pics = [];
speedTest.map = null;
speedTest.markerClusterer = null;
speedTest.markers = [];
speedTest.infoWindow = null;

speedTest.numMarkers = null;

speedTest.category = null;

speedTest.init = function() {
	
  var latlng = new google.maps.LatLng(20.0523207, 9.9018131);
  var options = {
    'zoom': 2,
    'center': latlng,
    'mapTypeId': google.maps.MapTypeId.ROADMAP
  };
  
  /*
  div.infowindow {
    max-height:250px;
    overflow-y:auto;
 }
  
  */
  
  speedTest.map = new google.maps.Map($('GMap'), options);
  
  speedTest.infoWindow = new google.maps.InfoWindow({'overflow-x': 'hidden', 'overflow-y': 'hidden' });

  speedTest.showMarkers();

};


speedTest.showMarkers = function() {
  speedTest.markers = [];

 
  if (speedTest.markerClusterer) {
   
   speedTest.markerClusterer.clearMarkers();
  }




  for (var i = 0; i < speedTest.numMarkers; i++) {
    var titleText = speedTest.pics[i].placemark;
   
    if (titleText == '') {
      titleText = 'No title';
    }
 
    var item = document.createElement('DIV');
    var title = document.createElement('A');
    title.href = '#';
    title.className = 'title';
    title.innerHTML = titleText;

    item.appendChild(title);

	var latLng = new google.maps.LatLng(speedTest.pics[i].latitude,
    speedTest.pics[i].longitude);
	
	//var imageUrl ='http://www.esprasshare.org/gmMarker/gmarker.share.mission.png';	
	var imageUrl = speedTest.pics[i].marker_logo;
	
    var markerImage = new google.maps.MarkerImage(imageUrl,
        new google.maps.Size(40, 37));

    var marker = new google.maps.Marker({
      'position': latLng,
      'icon': markerImage
    });

    var fn = speedTest.markerClickFunction(speedTest.pics[i], latLng);
    google.maps.event.addListener(marker, 'click', fn);
    google.maps.event.addDomListener(title, 'click', fn);

 	speedTest.markers.push(marker);
  }

  window.setTimeout(speedTest.time, 0);
};

speedTest.markerClickFunction = function(pic, latlng) {
  return function(e) {
    e.cancelBubble = true;
    e.returnValue = false;
    if (e.stopPropagation) {
      e.stopPropagation();
      e.preventDefault();
    }
	
    var foldername = pic.foldername.replace(/\n\n/g, "<br />");
	var placemark = pic.placemark.replace(/\n\n/g, "<br />");
	var orgname = pic.orgname.replace(/\n\n/g, "<br />");
	var missioncountry = pic.missioncountry.replace(/\n\n/g, "<br>");
	var missionaddress = pic.missionaddress.replace(/\n\n/g, "<br />");
	var orgurl = pic.orgurl.replace(/\n\n/g, "<br />");
	var logourl = pic.logourl.replace(/\n\n/g, "<br />");
	var teamleadername = pic.teamleadername.replace(/\n\n/g, "<br />");
	var missiondate = pic.missiondate.replace(/\n\n/g, "<br />");
	var projecturl = pic.projecturl.replace(/\n\n/g, "<br />");
	var projectlinklist = pic.projectlinklist.replace(/\n\n/g, "<br />"); 
	var photourl = pic.photourl.replace(/\n\n/g, "<br />");

	/**Hier ist der Google-Balloon **/

	var infoHtml = 
		'<div id=\"share_mission_balloon\">' +
			'<h3>SHARE Mission in <span>'+ missioncountry +'</span></h3>' +
					'<div class=\"share_mission_ngo\">' +
						'<a href=\"'+ orgurl +'" title=\"'+ orgname +'\" target=\"_blank\">' +
						'	<img src=\"'+ logourl +'\" alt=\"'+ orgurl +'\" title=\"'+ orgurl +'\" />' +
						'	<br />'+ orgurl +
						'</a>' +
						'	Organized and conducted by: <h2 style=\"color:#444;\">'+ orgname +'</h2>' +
					'<br style=\"clear:both;\" />' +
					'</div>' +
				'<span>The Mission (Description):</span>' +
			'<div class=\"share_mission_desc_data\">' +
		    '   <h2>Country: '+ missioncountry +'</h2>' +
		    '   <p>Address: <strong>'+ missionaddress +'</strong></p>' +
		    '   <p>Team leader: <strong>'+ teamleadername +'</strong></p>' +
		    '   <p>Mission date: <br /><strong>'+ missiondate +'</strong></p>' +
			'	<p><a href=\"'+ projecturl +'\" title=\"'+ projecturl +'\">'+ projectlinklist +'</a><br /></p>' +
			'</div>' +
			'<div class=\"share_mission_foot_copy\">' +
			'	<span>&reg;2011 espras.SHARE</span>, <span class=\"span_smalltxt\">Surgical Humanitarian Aid Resource Europe </span>' +
			'</div>' +
		'</div>';
		
	/**End of Balloon**/
	
    speedTest.infoWindow.setContent(infoHtml);
    speedTest.infoWindow.setPosition(latlng);
    speedTest.infoWindow.open(speedTest.map);
	

  };
};

speedTest.clear = function() {
  
  for (var i = 0, marker; marker = speedTest.markers[i]; i++) {
    marker.setMap(null);
  }
};
speedTest.change = function() {
  speedTest.clear();
  speedTest.showMarkers();
};

speedTest.time = function() {
  
  var start = new Date();
  speedTest.markerClusterer = new MarkerClusterer(speedTest.map, speedTest.markers);
  var end = new Date();
  
};
