var Site =
{
	start : function()
	{
		if ($$('select.jumpmenu')) Site.jumpMenu();
		if ($('caption1')) {Site.captionSlide();}
		if ($('kwicks')) {Site.kwicks();}
		if ($$('.tips')) Site.tips();
		if ($('map')) Site.map();
		if ($('contactmap')) Site.contactMap();
		if ($('worldmap')) Site.worldMap();
	},

	jumpMenu : function(){


		$$('select.jumpmenu').addEvent('change', function(){

			if(this.value != '...') document.location.href = this.value;
		});

	},

	captionSlide : function()
	{

		var captionbox1 = new Fx.Slide('caption1', {mode: 'horizontal', duration: 200});
		captionbox1.slideOut();

		$('frame1').addEvent('mouseenter', function(e){
			e = new Event(e);
			captionbox1.slideIn();
			e.stop();
		});

		$('frame1').addEvent('mouseleave', function(e){
			e = new Event(e);
			captionbox1.slideOut();
			e.stop();
		});


		if ($('caption2'))
		{
			var captionbox2 = new Fx.Slide('caption2', {mode: 'horizontal', duration: 200});
			captionbox2.slideOut();

			$('frame2').addEvent('mouseenter', function(e){
				e = new Event(e);
				captionbox2.slideIn();
				e.stop();
			});

			$('frame2').addEvent('mouseleave', function(e){
				e = new Event(e);
				captionbox2.slideOut();
				e.stop();
			});
		}

		if ($('caption3'))
		{
			var captionbox3 = new Fx.Slide('caption3', {mode: 'horizontal', duration: 200});
			captionbox3.slideOut();

			$('frame3').addEvent('mouseenter', function(e){
				e = new Event(e);
				captionbox3.slideIn();
				e.stop();
			});

			$('frame3').addEvent('mouseleave', function(e){
				e = new Event(e);
				captionbox3.slideOut();
				e.stop();
			});
		}

		if ($('caption4'))
		{
			var captionbox4 = new Fx.Slide('caption4', {mode: 'horizontal', duration: 200});
			captionbox4.slideOut();

			$('frame4').addEvent('mouseenter', function(e){
				e = new Event(e);
				captionbox4.slideIn();
				e.stop();
			});

			$('frame4').addEvent('mouseleave', function(e){
				e = new Event(e);
				captionbox4.slideOut();
				e.stop();
			});
		}



		if ($('caption5'))
		{
			var captionbox5 = new Fx.Slide('caption5', {mode: 'horizontal', duration: 200});
			captionbox5.slideOut();

			$('frame5').addEvent('mouseenter', function(e){
				e = new Event(e);
				captionbox5.slideIn();
				e.stop();
			});

			$('frame5').addEvent('mouseleave', function(e){
				e = new Event(e);
				captionbox5.slideOut();
				e.stop();
			});
		}



		if ($('caption6'))
		{
			var captionbox6 = new Fx.Slide('caption6', {mode: 'horizontal', duration: 200});
			captionbox6.slideOut();

			$('frame6').addEvent('mouseenter', function(e){
				e = new Event(e);
				captionbox6.slideIn();
				e.stop();
			});

			$('frame6').addEvent('mouseleave', function(e){
				e = new Event(e);
				captionbox6.slideOut();
				e.stop();
			});
		}







	},

	kwicks : function() {

		var szNormal = 90, szSmall  = 35, szFull   = 405;

		var kwicks = $$("#kwicks .kwick");
		var fx = new Fx.Elements(kwicks, {wait: false, duration: 400, transition: Fx.Transitions.Sine.easeIn});

		kwicks.each(function(kwick, i) {
			kwick.addEvent("mouseenter", function(event) {
				var o = {};
				o[i] = {width: [kwick.getStyle("width").toInt(), szFull]}

				kwicks.each(function(other, j) {
					if(i != j) {
						var w = other.getStyle("width").toInt();
						if(w != szSmall) o[j] = {width: [w, szSmall]};
					}
				});
				fx.start(o);
			});
		});

		$("kwicks").addEvent("mouseleave", function(event) {
			var o = {};
			kwicks.each(function(kwick, i) {
				o[i] = {width: [kwick.getStyle("width").toInt(), szNormal]}
			});
			fx.start(o);
		});

	},

	tips : function()
	{
		var tooltips = new Tips($$('.tips'), {
		initialize:function(){
			this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
		},
		onShow: function(toolTip) {
			this.fx.start(1);
		},
		onHide: function(toolTip) {
			this.fx.start(0);
		}
		});
	},

	map : function()
	{
		// http://www.google.com/apis/maps/documentation/reference.html

		// if the browser is compatible
		if (GBrowserIsCompatible()) {
			//var map = new GMap2($('map'),{mapTypes:[G_HYBRID_TYPE]});

			var map = new GMap2(document.getElementById("map"));
			map.setMapType(G_HYBRID_MAP);


			// doubleclick zoom
			map.enableDoubleClickZoom();

			// add controls
			map.addControl(new GLargeMapControl());
        	map.addControl(new GMapTypeControl());

			// set the center
			map.setCenter(point, 3); // 15


			// create a marker
			var marker = new GMarker(point);

			// add the marker to the map
			map.addOverlay(marker);


			// show coordinates
			if ($('message'))
			{
				GEvent.addListener(map, "moveend", function() {
          		var center = map.getCenter();
          		$('message').innerHTML = center.toString();
        		});
			}

			// reduce memory leak
			window.addEvent('unload', GUnload);
		}
	},

	contactMap : function()
	{
		var lat		= 51.519894;
		var lng		= -0.103428;
		var myOptions = {
		zoom: 16,
		center: new google.maps.LatLng(lat,lng),
	    zoomControl: true,
		streetViewControl: false,
		panControl: true,
		mapTypeId: google.maps.MapTypeId.HYBRID
	}
		var map = new google.maps.Map(document.getElementById("contactmap"), myOptions);
		var marker = new google.maps.Marker({
		  position: new google.maps.LatLng(lat,lng),
		  map: map
		});
	},

	worldMap : function()
	{
		// if the browser is compatible
		if (GBrowserIsCompatible())
		{
			//var worldmap = new GMap2($('worldmap'),{mapTypes:[G_SATELLITE_TYPE]});
			var worldmap = new GMap2(document.getElementById("worldmap"));
			worldmap.setMapType(G_SATELLITE_MAP);

			// doubleclick zoom
			worldmap.enableDoubleClickZoom();
			worldmap.enableContinuousZoom();
			//worldmap.enableScrollWheelZoom();

			// add controls
			worldmap.addControl(new GLargeMapControl());

			var point = new GLatLng(30,0);
			// set the center
			worldmap.setCenter(point, 2);

			// foreach of the points add a marker to the worldmap
			points.each(function(point)
			{

				marker = new GMarker(point[0]);
				worldmap.addOverlay(marker);

				GEvent.addListener(marker,"click", function() {
        			var myHtml = point[1];
        			worldmap.openInfoWindowHtml(point[0], myHtml);
      			});

			});

			// reduce memory leak
			window.addEvent('unload', GUnload);
		}
	}
}

window.addEvent('domready', Site.start);
