function main()
{
	// Konstruer kart (bundet til div-element med id "map")
	var map = new google.maps.Map2( document.getElementById( "map" ) );
	
	// Sett opp WMS-tjenesten til Kartverket: Sjøkart
	var tileLayerSjoHK2 = new google.maps.TileLayer( new google.maps.CopyrightCollection( "Statens Kartverk" ), 0, 15 );
	tileLayerSjoHK2.getTileUrl = function( t, z ) { return getTileUrl( 'sjo_hovedkart2', t, z ); }
	tileLayerSjoHK2.isPng = function() { return true; }
	var mapTypeSjoHK2 = new google.maps.MapType( [ tileLayerSjoHK2 ], google.maps.PHYSICAL_MAP.getProjection(), "Sjø" );
	map.addMapType( mapTypeSjoHK2 );
	
	// Initialiser kartvisning: Kartkontroller og utsnitt
	map.setCenter( new google.maps.LatLng( 59.538, 5.230 ), 14 );
	map.addControl( new google.maps.SmallMapControl() );
	map.addControl( new google.maps.MapTypeControl() );

	// Konstruer ikoner (til egendefinerte kartmarkører)
	var icon1 = new google.maps.Icon( google.maps.DEFAULT_ICON );
	icon1.image = "img/ulykkes_ikon.png";
	icon1.iconSize = new google.maps.Size( 26, 26 );
	icon1.shadow = null;
	icon1.iconAnchor = new google.maps.Point( 13, 13 );
	icon1.infoWindowAnchor = new google.maps.Point( 26, 0 );
	var icon2 = new google.maps.Icon( icon1 );
	icon2.image = "img/ulykkes_ikon_enkel.png";

	// Konstruer kartmarkører og legg dem inn i kartet
	var marker1 = new google.maps.Marker( new google.maps.LatLng( 59.542890, 5.225115 ), { icon: icon1, title: "Ulykkesstedet" } );
	map.addOverlay( marker1 );
	var marker2 = new google.maps.Marker( new google.maps.LatLng( 59.527145, 5.217304 ), { icon: icon2, title: "Ryvarden" } );
	map.addOverlay( marker2 );
	var marker3 = new google.maps.Marker( new google.maps.LatLng( 59.539983, 5.225028 ), { icon: icon2, title: "Bloksene" } );
	map.addOverlay( marker3 );

	// Konstruer linjen som viser hvor båten skulle gått og legg den inn i kartet
	var path = [ new google.maps.LatLng( 59.430061, 5.233955 ),
				 new google.maps.LatLng( 59.478743, 5.215072 ),
				 new google.maps.LatLng( 59.501489, 5.209579 ),
				 new google.maps.LatLng( 59.533273, 5.219192 ),
				 new google.maps.LatLng( 59.553895, 5.237388 ) ];
	var heading = new google.maps.Polyline( path, "#ff0000", 7, 0.8, { clickable: true, mouseOutTolerance: 5 } );
	map.addOverlay( heading );
	
	// Legg til klikk-håndtering av markører og rutevisning
	google.maps.Event.addListener( marker1, "click", function() { showInfo( marker1, map ) } );
	google.maps.Event.addListener( marker2, "click", function() { showInfo( marker2, map ) } );
	google.maps.Event.addListener( marker3, "click", function() { showInfo( marker3, map ) } );
	google.maps.Event.addListener( heading, "click", function( pos ) { pos.getTitle = function() { return 'Rute' }; showInfo( pos, map ) } );
}

// Bestemmer HTML-innholdet i informasjonsvinduene
function showInfo( p, m )
{
	switch( p.getTitle() )
	{
		case 'Ulykkesstedet':
			p.openInfoWindowHtml( '<div class="info"><h2>Her skjedde forliset</h2><img src="img/bloksen.jpg" width="300" height="166" alt="Varden på Store Bloksen" /><p><em>HAVARISTEDET:</em> Ifølge rapporten fra undersøkelseskommisjonen skjedde forliset her, sørøst for varden på Store Bloksen.</p></div>' );
			break;
		case 'Bloksene':
			p.openInfoWindowHtml( '<div class="info"><h2>Så ikke Bloksene</h2><p><em>GIKK FEIL:</em> Kapteinen så verken Lille eller Store Bloksen på sin radar da han gikk mot Håskru fyrlykt. Han kastet korte blikk på radaren for å finne Store Bloksen. Hovedprioritet under navigeringen var Håskru lykt, selv da kapteinen så Lille Bloksen aktenom fartøyet til babord.</p></div>' );
			break;
		case 'Ryvarden':
			p.openInfoWindowHtml( '<div class="info"><h2>Ved Ryvarden fyr</h2><p><em>SVINGTE STYRBORD:</em> Da kapteinen hadde Ryvarden tvers, svingte han noe styrbord og fikk Håskru fyrlykt i hvit sektor så godt som mulig rett i baugen. Samtidig fikk han øyekontakt med blinkene fra Lille Bloksen.</p></div>' );
			break;
		case 'Rute':
			m.openInfoWindowHtml( p, '<div class="info"><h2>Planlagt kurs</h2><img src="img/sleipner.jpg" width="300" height="175" alt="Sleipner" /><p><em>OPPRINNELIG KURS:</em> Inntegnet kurs er kurs i henhold til rederiets farvannsbeskrivelse. Det er her båten egentlig skulle gått på veien fra Haugesund.</p></div>' );
			break;
	}
}

// Returnerer korrekt URL til etterspurt kartutsnitt mot WMS-tjener
function getTileUrl( type, tile, zoom )
{
	switch( type )
	{
		case 'sjo_hovedkart2':
			return 'http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=' + type + '&zoom=' + zoom + '&x=' + tile.x + '&y=' + tile.y;
	}
}

google.load( "maps", 2, { "other_params" : "sensor=false&hl=no" } );

$( document ).ready( main );
