var returnView = false;
var routeGrade = null;
//Sl\u00E5 av og p\u00E5 visning av undermenyer
function openMenu( menu , status )
{
	if( status == "on" )
	{	
		document.getElementById( menu ).style.display='block'
	} else {
    		document.getElementById( menu ).style.display='none'
	}
}

//Funksjon som viser e-post adresse kryptet
function encAdr( lead , dom1 , pre1 , pre2 , pre3 , post1 )
{
	document.write( '<b>' + lead + '</b> ' )
	document.write('<a href=mailTo:' + pre1 + pre2 + pre3 + '@' + post1 + '.' + dom1 + '>');
	document.write( pre1 + pre2 + pre3 + '@' + post1 + '.' + dom1 + '</a>');
}

//Uthev visning bilde
function Hilite( imgId )
{
   var currClass = document.getElementById( imgId ).className;
   document.getElementById( imgId ).className = 'utmOn';
}

//Gjenopprett visning bilde
function Restore( imgId )
{
   var currClass = document.getElementById( imgId ).className;
   document.getElementById( imgId ).className = 'utm' ;
}

//Bytt koordinatvisning
function switchCoSys( sys )
{
	var posRow;
	var showRow;
	var hideRow;
	if ( sys == "1" )
	{
		showRow = "latLonPos"
		hideRow = "utmPos";
		coSys = "0" ;
		document.getElementById( 'posFormat' ).innerHTML = "<a href='#' onclick=\"switchCoSys('0');return false;\">vis UTM</a>" ;
	} else {
		showRow = "utmPos"
		hideRow = "latLonPos";
		coSys = "1" ;		
		document.getElementById( 'posFormat' ).innerHTML = "<a href='#' onclick=\"switchCoSys('1');return false;\">vis grader</a>" ;
	}
	for ( var i = 1 ; i <= 2 ; i++ )
	{
		posRow = document.getElementById( showRow +  i );
		posRow.style.display = '';
		posRow = document.getElementById( hideRow +  i );
		posRow.style.display = 'none';
	}
}

//Flytt ledetekst brukernavn og passord inn i tilh\u00F8rende felt
function initLogin() {
  if ( !document.getElementById ) return;
  var labels, id, field;
  //Sett fokus og vis/skjul login etiketter
  labels = document.getElementsByTagName( 'label' );
  for ( var i = 0; i < labels.length; i++ ) {
    if ( labels[i].className == 'login' ) {
      id = labels[i].htmlFor || labels[i].getAttribute( 'for' );
      if (!id || !(field = document.getElementById(id))) {
        continue;
      } 
      //Endre CSS klasse
      labels[i].className = 'loginOn';
      //Skjul etikett hvis standardverdi er satt
      if (field.value !== '') {
        hideLabel(field.getAttribute( 'id' ), true);
      }
      //Legg til funksjoner for \u00E5 vise og skjule etiketter
      field.onfocus = function () {
        hideLabel(this.getAttribute( 'id' ), true);
      };
      field.onblur = function () {
        if (this.value === '') {
          hideLabel(this.getAttribute( 'id' ), false);
        }
      };

      //SAFARI l\u00F8sning
      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute( 'for' );
        if (id && (field = document.getElementById(id))) {
          field.focus();
        }
      };
    }
  }
};

//Brukes av forrige skript til skjule opprinnelig ledetekst
function hideLabel( field_id , hide ) {
  var field_for;
  var labels = document.getElementsByTagName( 'label' );
  for ( var i = 0; i < labels.length; i++ ) {
    field_for = labels[i].htmlFor || labels[i].getAttribute( 'for' );
    if (field_for == field_id) {
      labels[i].style.display = (hide) ? "none" : "block" ;
      return true;
    }
  }
}

//Returnerer base href for side
function getPath() 
{
	var strUrl = null;
	if( document.getElementsByTagName )
		{ var elems = document.getElementsByTagName( 'base' );
	if( elems.length ) {
	strUrl = elems[ 0 ].href;
	return strUrl;
	}
	}
}

//Funksjon som starter slideshow, og henter bildeliste
function slideShow( imgVar ) {
	getWebCams();
	showLightbox( imgVar ); 
}

//\u251C\u00E0pner bilde i eget vindu for visning
function showImage( imgUrl , imgText ) {
	var w;
	if( typeof( w ) == "object" ) w.close();

	w = window.open("", "", "scrollbars=no,location=no,status=no,toolbar=no,menubar=no");
	with( w.window.document )
	{
		open();
		write("<html><head><title>" + imgText + "</title></head><body onload='window.resizeTo(document.images[0].width,document.images[0].height+120);' style='border: 0px; padding: 0px; margin: 0px;'><a href='#' onclick='self.close();'><img src = '" + imgUrl + "' style='border: 0px;' title='Lukk vindu' alt='Lukk vindu' /></a><br /><p style='font:bold 14px arial;text-align:center;'>" + imgText + "</p></body></html>");
		close();
	}
	w.window.moveTo((screen.availWidth/2)-(w.document.images[0].width/2),(screen.availHeight/2)-(w.document.images[0].height/2));
	return;
}

//AJAX kode

//Returnere liste over webcamera med tidspunkt
function getWebCams() {   
    try { xhr = new XMLHttpRequest(); }                 
    catch(e) 
    {    
      xhr = new ActiveXObject( "Microsoft.XMLHTTP" );
    } 
	getServerData( "webCamList" , "GET" , "http://www.roms.no/romsdal/webcam.nsf/webCamList?OpenPage" , true );
};

//Returnerer stedsnavn
function sLocations()
{
	returnView = true;
	var pType = document.getElementById("sNames").selectedIndex;
	if ( pType == null | pType == 0 ) return;
	var sAction = document.getElementById("sAction").selectedIndex;
	switch( sAction )
	{
		case 2 : return; break;
		case 1 :  document.getElementById( 'resListL' ).innerHTML = "";
	   			  map.clearAnnotations();
	   			  break;
	}
	var sClasses = "";
	for ( var i = 1 ; i <= 4 ; i++ )
	{
    	if ( document.getElementById("searchClass" + i ).checked == true ) 
    	{ 	
    		sClasses = sClasses + i;
    	}
    }
    
	getServerData( 'resListL' , 'GET' , '/getLocByType?OpenAgent&' + areaId + "." + pType + "." + sClasses , true );
}

function doViewData( vData )
{
	//map.Annotation.clearAnnotations();
	var vDataList = new Array(); 
	var resList = "";
	var n = 0;
	vDataList = vData.split( '\n' );
	for( i = 6 ; i <= vDataList.length - 4 ; i++ )
	{
		var locDetails = vDataList[ i ].split( "|" );
		if ( locDetails.length > 2 )
		{
			n = map.addAnnotation( new Annotation( map.decimalDegreesToUTM( new Coordinate( locDetails[ 2 ] , locDetails[ 1 ])) , locDetails[ 0 ]  , locDetails[ 4 ] , 'i-alone.gif' , '-5' , '-5' , '' , '5' )); 
			resList += '<br />' + "<a href='content/" + locDetails[ 3 ]+ "' onmouseover=\"showInfoBox( map.getAnnotation( '" + n + "' ));\" onmouseout=\"hideInfo( map.getAnnotation( '" + n + "' ));\">" + locDetails[ 0 ] + "</a>";
		}
	}
	document.getElementById( 'resListL' ).innerHTML = resList;
	//map.zoomOnAnnotations();
	returnView = false;
}

//Fjerner resultatliste og plott p\u00E5 kart, hvis angitt
function checkLocStatus()
{
	var selAction = document.getElementById("sAction").selectedIndex;
	if ( selAction == 2 )
	{
	   document.getElementById( 'resListL' ).innerHTML = "";
	   document.getElementById( 'sAction' ).selectedIndex = 0;
	   map.clearAnnotations();
	}
}

//Aktiverer og skjuler faner i plassmeny
function selPlaceTab( currTab , tabs )
{
	if ( Number( tabs ) == 0 ) { tabs = 4 }; 
	if( orgPlaceCont == "" )
	{
		orgPlaceCont = document.getElementById( "desc" ).innerHTML;
	}
	var tabHeadId;
 	for( x = 1 ; x <= tabs ; x++ )
	{
		tabHeadId = "pTab" + x;
		if( parseInt( currTab ) == x )
		{
	     	document.getElementById( tabHeadId ).className = "active";	
		} else {
		     document.getElementById( tabHeadId ).className = "";
		}
	}

	switch( currTab )
	{
		case '2':
			getServerData( "desc" , "GET" , "getImages?OpenAgent&" + docId , true );
			break;
		case '3':
			getServerData( "desc" , "GET" , "getRoutesByPos?OpenAgent&" + docId , true );
			break;
		case '4':
			getServerData( "desc" , "GET" , "getArticles?OpenAgent&" + docId , true );
			break;
		default:
			document.getElementById( "desc" ).innerHTML = orgPlaceCont;
			break;
	}
}

//Starte s\u00F8k ved enter i s\u00F8keboks
function enterSearch ( event , sText )
{
	var cCode
	if( event && event.which )
	{
		cCode = event.which 
	} else {
		cCode = event.keyCode
	}
	if( cCode == 13 )
	{
	    window.location = "/searchForm?ReadForm&" + sText;
	    return false
	} else {
	return true
	}
}

//Starte s\u00F8k ved klikk p\u00E5 s\u00F8keknapp
function enterSearchButt( fName )
{
	window.location = "/searchForm?ReadForm&" + document.getElementById( fName ).value
}

//Funksjon som bruker Ajax til \u00E5 sette inn s\u00F8keresultat i searchForm
function getSearchResults()
{
	var sText = location.href;
	sText = sText.substring( sText.indexOf( "&" ) + 1 );
	if( sText.substring( 0 , 2 ) == "+|" )
	{
		sText = sText.replace( "+|" , "" );
		getServerData( "searchResults" , "GET" , "/findRoutes?OpenAgent&" + sText , true );
	} else {
	     var regEx = /[+]/;
		getServerData( "searchResults" , "GET" , "/search?SearchView&query=" + sText.replace( regEx , " and " ) , true );
	}
}

//Ser database
function siteSearch()
{   
    try { xhr = new XMLHttpRequest(); }                 
    catch(e) 
    {    
      xhr = new ActiveXObject( "Microsoft.XMLHTTP" );
    } 
	document.getElementById( "main" ).style.height="525px";
	document.getElementById( "main" ).style.overflow="auto";
	getServerData( "main" , "GET" , "/search?OpenAgent&" + document.getElementById( "sQuery" ).value , true );
};

//Funksjon for bytte ut s\u00F8keknapp under s\u00F8k
function setSearchStatus( sStatus )
{
	if ( sStatus == '1' )
	{
		document[ 'sButton' ].src = "photo/loading.gif" ;
	} else {
		document[ 'sButton' ].src = "sok.gif" ;
	}
}

//Ajax s\u00F8k etter lokasjoner
function searchLocs( locType , sFields )
{ 
	var sKey = new Array( locType , document.getElementById( "sArea" ).selectedIndex ); 
    var tmpKey = sFields.split(',');
    var resKey = new Array( tmpKey.length );
    setSearchStatus( '1' );
    
    for( i = 0 ; i < tmpKey.length ; i++ )
    {
    	if (document.getElementById( tmpKey[i]).checked == false) 
    	{ 
    		resKey[ i ] = "0" 
    	} else {
    		resKey[ i ] = "1"
    	}
    }
    var sKey = sKey.concat( resKey );    
    returnItemSearch(  "/searchLocs?OpenAgent&" + sKey.join( "." ));
};

//Ajax s\u00F8k etter bilder
function searchImages( sFields )
{ 
	var sKey = new Array( document.getElementById( "sArea" ).selectedIndex ); 
    var tmpKey = sFields.split(',');
    var resKey = new Array( tmpKey.length );
    setSearchStatus( '1' );
    
    for( i = 0 ; i < tmpKey.length ; i++ )
    {
    	if (document.getElementById( tmpKey[i]).checked == false) 
    	{ 
    		resKey[ i ] = "0" 
    	} else {
    		resKey[ i ] = "1"
    	}
    }
    var sKey = sKey.concat( resKey );    
    returnItemSearch(  "/searchImages?OpenAgent&" + sKey.join( "." ));
};

//Funksjon for plotte rute p\u00E5 kart via Ajax
function plotRoute( walkId )
{ 
	getServerData( "routePlot" , "GET" , "/drawRoute?OpenAgent&" + walkId , true );
}

//Funksjon som utf\u00F8rer plotting av ruter basert p\u00E5 spor
function plotCurrRoute( track )
{
	var currPos = new Array;
	var currTrack;
	var utm33;
	var x1;
	var x2;
	var y1;
	var y2;
	currTrack = new PolyLine([], {'rgba': "rgba( " + routeGrade + " )" ,'lineWidth':3});

	for( x = 0 ; x < track.length ; x++ )
	{
		currPos = track[ x ].split( "|" )
		utm33 = map.decimalDegreesToUTM( new Coordinate( currPos[ 0 ] , currPos[ 1 ] ));
		if ( x1 == null | x1 > utm33.x ) x1 = utm33.x;
		if ( x2 == null | x2 < utm33.x ) x2 = utm33.x;
		if ( y1 == null | y1 > utm33.y ) y1 = utm33.y;
		if ( y2 == null | y2 < utm33.y ) y2 = utm33.y;
		currTrack.addPoint( utm33 );
	};
	map.getDrawCanvas().addPolyLine( currTrack );
	map.zoomOnBoundingBox( {'x1' : x1, 'y1' : y1, 'x2' : x2, 'y2' : y2} , true );
}

//Nullstill plotting av rute  p\u00E5 kart
function plotNull( )
{
    document.getElementById( "routePlot" ).innerHTML = '';
}

//Rutes\u00F8k funksjon
function findRoutes()
{ 
    var sKey = new Array();
    
    sKey[ 0 ] = document.getElementById( "searchArea" ).selectedIndex
    sKey[ 1 ] = document.getElementById( "searchType" ).selectedIndex;
    sKey[ 2 ] = document.getElementById( "searchLength" ).selectedIndex
    sKey[ 3 ] = document.getElementById( "searchGrade" ).selectedIndex
    
    if ( sKey.join( '' ) == '0000' )
    {
    		alert( "Minst ett valg m\u00E5 gj\u00F8res for \u00E5 utf\u00F8re s\u00F8k etter turer!" );
    	} else {
			window.location = "http://www.romsdal.com/info/searchForm?ReadForm&" + "+|" + sKey.join( "." );
	}
};

//Funksjon som plotter rute p\u00E5 Webatlas
function waPlotRoute( rId )
{
	new Ajax.Request( "/waRoutePlot?OpenAgent&" + rId ,
	{
		onSuccess: function( transport )
		{
			eval( transport.responseText ); 
		}
	} );
}

function waPlotClear()
{
     map.getDrawCanvas().clear();
}

//Funksjon som bytter ut bilde og tekst p\u00E5 steder med kart
function placeMap( mType )
{
	var togId;
	if ( mType == "FM" )
	{
		fishMap = "1";
		togId = document.getElementById( "fishToggle" );
	} else {
		togId = document.getElementById( "mapToggle" );
	}
	if ( togId.innerHTML == "Vis info" )
	{
		document.getElementById( "desc" ).innerHTML = orgPlaceCont;
		if ( mType == "FM" )
		{
			togId.innerHTML = "Vis salg fiskekort";
		} else {
			togId.innerHTML = "Vis kart";
		}
	} else {
		var urls = [ "http://www.webatlas.no/webatlasapi/v/latest/script/prototype.js" , "http://www.webatlas.no/webatlasapi/v/latest/script/ajaxmap.js" ];
		orgPlaceCont = document.getElementById( "desc" ).innerHTML;
		document.getElementById( "desc" ).innerHTML = "<div style=\"position:relative;min-height:400px;\"><div id=\"mapControls\"><form action=\"javascript:map.setMapStyle( 0 )\"><input type=\"submit\" value=\"Kart\"></form><form action=\"javascript:map.setMapStyle( 1 )\"><input type=\"submit\" value=\"Flyfoto\"></form><form action=\"javascript:map.zoomIn()\"><input type=\"submit\" value=\"+\"></form><form action=\"javascript:map.zoomOut()\"><input type=\"submit\" value=\"-\"></form><div id=\"mapRights2\"><p>\u00A9 Norkart AS / Statens kartverk</p></div></div><div id=\"map\"></div></div></div>"
		togId.innerHTML = "Vis info"
		LazyLoad.load( urls , dynLoadMap );	
	}
}

//Last inn kart dynamisk
function dynLoadMap()
{
	if ( map == null )
	{
		map = new AJAXMAP( 'map' , null , false );
		map.init( map.decimalDegreesToUTM( new Coordinate( pLon , pLat )) , '5' ) ;
		map.setMapStyle( 0 );
	} else {
		map.resize( '400' , '400' );
	}
	if ( fishMap == "" )
	{
		map.addAnnotation( new Annotation( map.decimalDegreesToUTM( new Coordinate( pLon , pLat )) , pName , pName , pIcon ));
	} else {
		var fInfo = fishSale.split( "|" );
		var fDet = ""
		for ( var i = 0; i < fInfo.length; i++ )
		{		
			fDet = fInfo[ i ].split( ";" );
			map.addAnnotation( new Annotation( map.decimalDegreesToUTM( new Coordinate( fDet[ 0 ] , fDet[ 1 ] )) , fDet[ 2 ] , fDet[ 3 ] , 'atlas/L.gif' ));
		}
		if ( fInfo.length > 1 )
		{
			map.zoomOnAnnotations();
		} else {
			map.centerOnCoords( map.decimalDegreesToUTM( new Coordinate( fDet[ 0 ] , fDet[ 1 ] )));
		}
	}
	map.resize( '400' , '400' );
}

//Bildevisning omr\u00E5der (last inn 10 f\u00F8rste bilder og kategorivisning)
function searchAreaImages()
{
	document.getElementById( "moreInfo").innerHTML = imageSForm;
	document.getElementById( "desc" ).innerHTML = "<span class='placeName'>Bilder registrert i " + areaName + "</span><br /><div id='imageList'></div>";
		getServerData( "imageList" , "GET" , "/getImages?OpenAgent&" + areaId + "&rand" , true )
}

function getAreaImages()
{
    var sKey = new Array();
    setSearchStatus( '1' );
	for ( var i = 0; i < 5 ; i++ )
	{
		if (document.getElementById( 'imageSearch' + i ).checked == false ) 
	    { sKey[ i ] = "0" } else { sKey[ i ] = "1" }
	}
	getServerData( "imageList" , "GET" , "/getImages?OpenAgent&" + areaId + "&" + sKey.join( "." ) , true )
}

//Last inn dynamisk bildevisning
var globalImg;
function dynPop( img )
{
	globalImg = img;
	LazyLoad.load( "popBox.js" , callPop );
}
function callPop()
{
	Pop( globalImg , 50 , 'PopBoxImageLarge' );
}

//Felles funksjoner for Ajax kall til server
function getServerData( fName , httpMethod , url , asynchronous )
{
	xmlhttp = null;
	// Mozilla, etc.
	if ( window.XMLHttpRequest )
	{
		xmlhttp=new XMLHttpRequest();
	}
	// IE
	else if ( window.ActiveXObject )
	{
	xmlhttp=new ActiveXObject( "Microsoft.XMLHTTP" )
	}
	if ( xmlhttp != null )
  	{
		xmlhttp.onreadystatechange = state_Change;
		xmlhttp.open( httpMethod , url ,  asynchronous );
		xmlhttp.send( null );
	} else {
		alert( "Beklager, Internett leseren din st\u00F8tter ikke Ajax, som denne siden er avhengig av for fungere." )
	}

	function state_Change()
	{
		// Sjekk om fullft
		if ( xmlhttp.readyState == 4 )
		{
			// hvis "OK"
			if ( xmlhttp.status == 200 )
			{
			if ( returnView == true )
			{
				doViewData( xmlhttp.responseText );
			} else {
				document.getElementById( fName ).innerHTML = xmlhttp.responseText ;
			}
			} else {
				document.getElementById( fName ).innerHTML = "Beklager programfeil, med feilkode " + xmlhttp.status;
			}
			if ( document[ 'sButton' ] != null )
			{
				document[ 'sButton' ].src = "sok.gif" ;
			}
		}
	}
}

//Returnere s\u00F8keresultat med Ajax ved s\u00F8k etter fjell, ruter mm
function returnItemSearch( sText )
{
	document.getElementById( "main1" ).style.height="500px";
	document.getElementById( "main1" ).style.overflow="auto";
	getServerData( "main1" , "GET" , sText , true );
}
