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()
	{
		// if the browser is compatible
		if (GBrowserIsCompatible()) 
		{
			var contactmap = new GMap2($('contactmap'));	
			
			// doubleclick zoom
			contactmap.enableDoubleClickZoom();
			contactmap.enableContinuousZoom();
			//contactmap.enableScrollWheelZoom();

			// add controls
			contactmap.addControl(new GLargeMapControl());
        	contactmap.addControl(new GMapTypeControl());


			var point = new GLatLng(51.497749842497136, -0.1482081413269043);
			
			// set the center
			contactmap.setCenter(point, 15);
			
			// create a marker
			var marker = new GMarker(point);
		
			// add the marker to the map
			contactmap.addOverlay(marker);
			
			// reduce memory leak
			window.addEvent('unload', GUnload);
		}
	},
	
	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);