Object.extend(document, {
    isDocReady: false,
    isDocLoaded: false,
    ready: function(fn) { Event.observe(document, "doc:ready", fn); },
    load: function(fn) { Event.observe(document, "doc:loaded", fn); }
});
Event.observe(document, "dom:loaded", function() {
	Event.fire(document, "doc:ready");
	document.isDocReady = true;
	if (document.isDocLoaded)
		Event.fire(document, "doc:loaded");
});
Event.observe(window, "load", function() {
	document.isDocLoaded = true;
	if (!document.isDocReady) return;
	Event.fire(document, "doc:loaded");
});

document.ready(function(){
	activeJoke=null;
});

document.load(function(){
	$('new_jokes').appear();
	if($('more_jokes')) {
		$('more_jokes').appear();
	}
});
var activeJoke = "";
function showJoke(headline) {
	var jokeToToggle = $(headline).up().next();
	if (activeJoke) {
		//hide the active joke
		hideJokeEffect(activeJoke);
		if (activeJoke != jokeToToggle) {
			//the new joke was not the same as the old one, show it
			activeJoke=jokeToToggle;
			showJokeEffect(jokeToToggle);
		} else {
			activeJoke=null;
		}
	} else {
		//first joke
		activeJoke=jokeToToggle;
		showJokeEffect(jokeToToggle);
	}
}
function showJokeEffect (element) {
    //var mapDiv = new Element("div", {id:"map"}).update("hej");
    //element.appendChild(mapDiv);
	new Effect.SlideDown(element, {duration:0.8, queue: "end"});
}
function hideJokeEffect (element) {
	//$('map').remove();
	new Effect.SlideUp(element, {duration:0.3, queue: "front"});
}
function showHeader(id) {
	new_jokes($(id))
}

// google maps
var geocoder = null;
var map = null;
function load() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(1, 1), 1);
		map.addControl(new GSmallMapControl());
		geocoder = new GClientGeocoder();
	}
}
function showAddress(address) {
	if (geocoder) {
		geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				alert(address + " is not a joke.");
			} else {
				map.setCenter(point, 3);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				// marker.openInfoWindowHtml(address);
			}
		}
	);
}
}
function toggleMaps(address) {
	load();
	showAddress(address);
}
// end google maps