if (GBrowserIsCompatible())
{
	// Our global state
	var gLocalSearch;
	var gMap;
	var mgr;
	var gSelectedResults = [];
	var gCurrentResults = [];
	var gSearchForm;

	// Create our "tiny" marker icon
	var gSmallIcon = new GIcon();
	gSmallIcon.image = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
	gSmallIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	gSmallIcon.iconSize = new GSize(12, 20);
	gSmallIcon.shadowSize = new GSize(22, 20);
	gSmallIcon.iconAnchor = new GPoint(6, 20);
	gSmallIcon.infoWindowAnchor = new GPoint(5, 1);

	// Set up the map and the local searcher.
	function load(MapLat, MapLong)
	{
/*
		gSearchForm = new GSearchForm(false, document.getElementById("searchform"));
		gSearchForm.setOnSubmitCallback(null, CaptureForm);
		try {
			gSearchForm.input.focus();
		} catch (e) {
		}
*/
		// Initialize the map
		gMap = new GMap(document.getElementById("map"));
		gMap.addControl(new GSmallMapControl());
		gMap.addControl(new GMapTypeControl());
		gMap.addControl(new GOverviewMapControl(new GSize(130, 130)));
		gMap.setCenter(new GLatLng(MapLat, MapLong), 11);

		var yellowIcon = new GIcon(G_DEFAULT_ICON);
		yellowIcon.image = "http://jobs.0800technik.com/Public/isJobPortal/Images/marker.png";

		// Set up our GMarkerOptions object
		markerOptions = { icon:yellowIcon };

		// add markers for the is locations
		// Nuremberg
		var point1 = new GLatLng(49.469484, 11.071236);
		var infoTabs1 = [
			new GInfoWindowTab(TabLocation, '<div style="width: 300px;">' + MapTabContent1_1 + '</div>'),
			new GInfoWindowTab(TabAdress, '<div style="width: 300px;">' + MapTabContent1_2 + '</div>'),
			new GInfoWindowTab(TabContact, '<div style="width: 300px;">' + MapTabContent1_3 + '</div>')
		];

		var marker1 = new GMarker(point1, markerOptions);
		GEvent.addListener(marker1, "click", function() {
			marker1.openInfoWindowTabsHtml(infoTabs1);
		});
		gMap.addOverlay(marker1);

		// set the number of results
		var searchControl = new GSearchControl();
		searchControl.setResultSetSize(GSearch.LARGE_RESULTSET);

		// Initialize the local searcher
		gLocalSearch = new GlocalSearch();
		searchControl.addSearcher(gLocalSearch);
		gLocalSearch.setCenterPoint(gMap);
		gLocalSearch.setSearchCompleteCallback(null, OnLocalSearch);
	}

		// Called when Local Search results are returned, we clear the old
		// results and load the new ones.
		function OnLocalSearch()
		{
			if (!gLocalSearch.results) return;
			var searchWell = document.getElementById("searchwell");

			// Clear the map and the old search well
			searchWell.innerHTML = "";
			for (var i = 0; i < gCurrentResults.length; i++) {
				if (!gCurrentResults[i].selected()) {
					gMap.removeOverlay(gCurrentResults[i].marker());
				}
			}

		  gCurrentResults = [];
		  for (var i = 0; i < gLocalSearch.results.length; i++) {
			gCurrentResults.push(new LocalResult(gLocalSearch.results[i]));
		  }

		  var attribution = gLocalSearch.getAttribution();
		  if (attribution) {
			document.getElementById("searchwell").appendChild(attribution);
		  }

		  // move the map to the first result
		  var first = gLocalSearch.results[0];
		  try {
		  	gMap.recenterOrPanToLatLng(new GPoint(parseFloat(first.lng), parseFloat(first.lat)));
		  } catch (e) {
		  }

		}

		// Cancel the form submission, executing an AJAX Search API search.
		function CaptureForm(searchForm) {
		  gLocalSearch.execute(searchForm.input.value);
		  return false;
		}

		// A class representing a single Local Search result returned by the
		// Google AJAX Search API.
		function LocalResult(result) {
		  this.result_ = result;
		  this.resultNode_ = this.unselectedHtml();
		  document.getElementById("searchwell").appendChild(this.resultNode_);
		  gMap.addOverlay(this.marker(gSmallIcon));
		}

		// Returns the GMap marker for this result, creating it with the given
		// icon if it has not already been created.
		LocalResult.prototype.marker = function(opt_icon) {
		  if (this.marker_) return this.marker_;
		  var marker = new GMarker(new GLatLng(parseFloat(this.result_.lat),
											 parseFloat(this.result_.lng)),
								   opt_icon);
		  GEvent.bind(marker, "click", this, function() {
			marker.openInfoWindow(this.selected() ? this.selectedHtml() :
													this.unselectedHtml());
		  });
		  this.marker_ = marker;
		  return marker;
		}

		// "Saves" this result if it has not already been saved
		LocalResult.prototype.select = function() {
		  if (!this.selected()) {
			this.selected_ = true;

			// Remove the old marker and add the new marker
			gMap.removeOverlay(this.marker());
			this.marker_ = null;
			gMap.addOverlay(this.marker(G_DEFAULT_ICON));

			// Add our result to the saved set
			document.getElementById("selected").appendChild(this.selectedHtml());

			// Remove the old search result from the search well
			this.resultNode_.parentNode.removeChild(this.resultNode_);
		  }
		}

		// Returns the HTML we display for a result before it has been "saved"
		LocalResult.prototype.unselectedHtml = function() {
		  var container = document.createElement("div");
		  container.className = "unselected";
		  container.appendChild(this.result_.html.cloneNode(true));
		  var saveDiv = document.createElement("div");
		  saveDiv.className = "select";
		  saveDiv.innerHTML = "Save this location";
		  GEvent.bindDom(saveDiv, "click", this, function() {
			gMap.closeInfoWindow();
			this.select();
			gSelectedResults.push(this);
		  });
		  container.appendChild(saveDiv);
		  return container;
		}

		// Returns the HTML we display for a result after it has been "saved"
		LocalResult.prototype.selectedHtml = function() {
		  return this.result_.html.cloneNode(true);
		}

		// Returns true if this result is currently "saved"
		LocalResult.prototype.selected = function() {
		  return this.selected_;
		}
	}

	function isSearch (sCheckboxValue) {
		var oForm = document.getElementById('searchform');
		var oFormElements = oForm.getElementsByTagName('input');
		for (i in oFormElements) {
			if (oFormElements[i].name == 'search') {
				oFormElements[i].value = sCheckboxValue;
			}
			if (i == 1) {
				//oFormElements[i].fireEvent('onclick');
				oFormElements[i].onclick();
			}
		}
		var oCheckboxes = document.getElementById('mapcontrol');
		var oCheckboxesElements = oCheckboxes.getElementsByTagName('input');
		for (i in oCheckboxesElements) {
			if (oCheckboxesElements[i].value != sCheckboxValue) {
				oCheckboxesElements[i].checked = false;
			}
		}
	}
