// Here we need to define a variable to hold what basemap to display at what zoomlevel
var theBaseMap = new Array();

//Browser detection
var oldbrowser = false;
var ieversion = "";
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
 ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
 if (ieversion<=6)
  oldbrowser = true;
 else 
  oldbrowser = false;
}
var imagetype = "image/jpeg";
if(oldbrowser)
	imagetype = "image/gif";
//alert("Browser old: " + oldbrowser);

var accordion;
var accordionTogglers;
var accordionContents;
var curvyHTML = '<!--em class="ctl"><b>&bull;</b></em><em class="cbl"><b>&bull;</b></em><em class="ctr"><b>&bull;</b></em><em class="cbr"><b>&bull;</b></em-->'
var greetingMessage = "Velkomin/n í vefsjá Djúpavogshrepps"
greetingMessage = "";
var arrSvResults;
var start_lon = 725050;
var start_lat = 470165; 
var start_zoom =5;

var ZoomLevel = start_zoom;

/***************************  AJAX   *************************************/



var map = null;
var searchBox = "";
var searchResults = "";
var svSearchResults = "";
var searchTerm = "";

var xmlHttp;

function backToResults(parType)
{
	var results
	if(parType == "sv")
		results = svSearchResults
	else if(parType == "addr")
		results = searchResults


	document.getElementById("results").innerHTML=searchBox+results
	document.getElementById("queryText").value=searchTerm
}

var accordion
var minMaxIcon = "+"
var i = 0
/****************************** showInfoCallback ****/
function showInfoCallback()
{



		var resp = xmlHttp.responseText.split("|");

		var strHTML = ""
		var addr = resp[0].split(",")[0];

		var landNr = resp[0].split(",")[1];
		strHTML += '<b>'+addr+'</b>'+"<a href=# style='font-size:0.6em;' onclick=backToResults('addr')><!--img class='backArrow' src='img/icon_arrow_back.gif' alt='Til Baka'-->&nbsp;<font vertical-align=center>(Til Baka)</font></a>"+'</span>'

		var pic;
		var type;
		var gerd;
		var author;
		var entry;
		var divHTML = '';
		var headerType = "";
		divHTML+='<p id="header'+i+'" onclick="clickAccordion('+i+')"class="accToggler">&nbsp;<span id="headerIcon0">-</span>&nbsp;Aðrar gagnaveitur</p><p class="accContent">'
					divHTML+= '<a target="_blank" href=http://www3.fmr.is/?pageid=313&landnr='+landNr+'&streetname='+encodeURI(addr)+'&sveitarfelag=Garðabær>Fasteignamat Ríkisins</a> <br>'
					divHTML+= '<a target="_blank" href=http://www.ja.is?q='+encodeURI(addr)+'>Símaskráin</a><br>'


		for(i = 1;i<resp.length-1;i++)
		{

			entry  = resp[i].split(",")
			pic = entry[0]
			type = entry[1]
			gerd = entry[2]
			author = entry[3]
			if(type != undefined)
			{
				if(headerType != type)//nï¿½ type
				{
					headerType = type;
					divHTML += '<p id="header'+i+'" onclick="clickAccordion('+i+')"class="accToggler">&nbsp;<span id="headerIcon'+i+'">+</span>&nbsp;'+type+'</p><p class="accContent">'
					divHTML+= '<a target="_blank" href='+pic+'>'+gerd+'</a> <br>'

				}
				else
				{
					divHTML+= '<a target="_blank" href='+pic+'>'+gerd+'</a> <br>'
				}
			}
			else
				divHTML += "<p></p>"
		}

		//Write search results to div
		document.getElementById("results").innerHTML = curvyHTML+strHTML+divHTML
		//Set up the amazing moo accordion
		accordion = new Accordion($$('p.accToggler'), $$('p.accContent'), {opacity:false,alwaysHide:true});

}

function searchToXY(Lon, Lat, scale)
{
	//alert( "Lon: " + Lon + " - Lat: " + Lat);
	disablePopup();
	var lonlat = new parent.OpenLayers.LonLat( Number(Lon), Number(Lat) );
	parent.map.panTo( lonlat )
	parent.map.zoomToScale( scale, true);
	parent.map.panTo( lonlat )
	//alert( "scale: " + map.getScale());
	
	var sType = $j("#searchDropDown option:selected").val();	
	if( sType == "heimilisfong" )
	{
		parent.markers.clearMarkers();
		var size = new OpenLayers.Size(25,25);
		var offset = new OpenLayers.Pixel(-(size.w/2), -size.h/2);
		var icon = new OpenLayers.Icon('img/marker copy.png',size,offset);
		marker = new parent.OpenLayers.Marker( lonlat,icon);
		markers.addMarker(marker);
	}
	
}

function clickAccordion(index)
{
	var headerIcon = document.getElementById("headerIcon"+index)
	var iconTemp;
	var j = 0
	if(headerIcon.innerHTML == "+")
	{
		headerIcon.innerHTML = "-"

		while(j<i)
		{
			if(index != j)
			{
				if(document.getElementById("headerIcon"+j) != null)
					document.getElementById("headerIcon"+j).innerHTML = "+"
				//log(j<i)
			}
			j++
		}
	}
	else
		headerIcon.innerHTML = "+"
}
/******************************  centerOnXY*****/
/** TODO: ï¿½aft helberann uppskurï¿½ */
function centerOnXY(parX, parY, strAddress)
{
	xyDX = 100;

	sendAJAXRequest("skipulagQuery2.asp?strTexti=" + strAddress + "&sveitarfelag=Gardabær&x=gb",showInfoCallback)

     var px = map.getPixelFromLonLat(new OpenLayers.LonLat(parX,parY));
	 //alert(px);

	var bounds = new parent.OpenLayers.Bounds(parX-xyDX,parY-xyDX,parX+xyDX,parY+xyDX);
	//alert("x:"+parX+" y:"+parY+"bounds: "+bounds.toBBOX());
	 var url =  map.layers[0].getFullRequestString(
                    {
                        REQUEST: "GetFeatureInfo",
                        EXCEPTIONS: "application/vnd.ogc.se_xml",
                        BBOX: bounds.toBBOX(),
                        X: px.x,
                        Y: px.y,
                        INFO_FORMAT: 'text/html',
                        QUERY_LAYERS: map.layers[0].params.LAYERS,
                        FEATURE_COUNT: 50,
                        srs: 'EPSG:3057',
                        styles: '',
                        layers: 'skipulag:Deiliskipulag',
                        WIDTH: map.size.w,
                        HEIGHT: map.size.h,
						strTexti: strAddress
                    },
                    //"http://geoserver.loftmyndir.is:8080/geoserver/wms"
					"skipulagQuery2.asp"
                );
                //OpenLayers.loadURL(url, '', this, showInfoCallback, showInfoCallback);

	parent.map.zoomToExtent(bounds)
	parent.markers.clearMarkers();

	var size = new OpenLayers.Size(25,25);
	var offset = new OpenLayers.Pixel(-(size.w/2), -size.h/2);
	var icon = new OpenLayers.Icon('img/marker copy.png',size,offset);
	marker = new parent.OpenLayers.Marker(new parent.OpenLayers.LonLat(parX,parY),icon);

	markers.addMarker(marker);
	// top.frames.frData.height="90%"
}

/******************************  init AJAX  *****/
function initAjax()
{

	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
			}
		}

	}

}

/*

*/
/****************************** searchCallback  *****/
 function searchCallback()
 {
 	if(xmlHttp.readyState==4)
 	{

 		var results =  xmlHttp.responseText.split("|")
 		var strHTML = ""
 		var maxLength = 25
		var headerSv = "";

		if(results[1] == "ekkert")
		{
			strHTML += "<span id=resultsError>Heimilisfang fannst ekki. Athugið stafsetningu.</span>"
			log("ekkert")
		}
		else if(results[1] == "complete")
		{
			log("complete")
			strHTML += "<a href=# style='font-size:0.6em;' onclick=backToResults('sv')><!--img class='backArrow' src='img/icon_arrow_back.gif' alt='Til Baka'-->&nbsp;<font vertical-align=center>(Til Baka)</font></a>"+'</span><br>'
			for ( i = 2; i<results.length & i<maxLength;i++)//byrjum ï¿½ i = 2 ï¿½t af ï¿½vï¿½ aï¿½ i=1 eru control skilaboï¿½
			{
				var temp = results[i].split(",")
				var addr = temp[0]

				var x = temp[2]
				var y = temp[3]
				headerSv = sv;
				if(i == 2) //birtum sveitafï¿½lag sem header
				{
					var sv = temp[1]
					strHTML += '<span class="header" onclick="clickAccordion('+i+')">'+sv+'</span><br>'
				}
				strHTML += "<a id='searchResult' href=# onclick=centerOnXY("+x+","+y
				strHTML += ",'"+escape(addr)+"'"
				strHTML += ")>"+addr+"</a><br>"
			}

			searchResults = strHTML

			if(results.length > maxLength)
				strHTML += "<span id=resultsError>"+(results.length-maxLength)+" fleiri heimilisföng fundust, vinsamlegast takmarkið leitina.</span>"
		}
		else if(results[1] == "partial")
		{
			log("partial")
			strHTML += '<span id="resultsError">Heimilisfang fannst í fleiri en einu sveitarfélagi. Vinsamlegast veldu sveitarfélag:.</span><br><br>'
			log(results[0])
			log(results[1])
			log(results[2])

			arrSvResults = results[2].split(",")
			for ( i = 1; i<arrSvResults.length & i<maxLength;i++)//byrjum ï¿½ i = 2 ï¿½t af ï¿½vï¿½ aï¿½ i=1 eru control skilaboï¿½
			{

				//log(i+" "+temp[0])


				var varJS = "searchWithSv('"+i+"')"
				if(arrSvResults[i] != "")
					strHTML += "<a id='searchResult' href=# onclick="+varJS+">"+arrSvResults[i]+"</a><br>"


			}
			if(arrSvResults.length > maxLength)
				strHTML += "<span id=resultsError>Heimilisföng í "+(arrSvResults.length-maxLength)+" fleiri sveitarfélögum fundust, vinsamlegast takmarkið leitina.</span>"
			svSearchResults = strHTML
		}


 		document.getElementById("results").innerHTML = searchBox + strHTML
 		document.getElementById("queryText").value=searchTerm
	accordion = new Accordion($$('p.accToggler'), $$('p.accContent'), {opacity:false,alwaysHide:true});
	}

 }
/****************************** / searchWithSv ***/
 function searchWithSv(parSv)
 {
	searchTerm=document.getElementById("queryText").value
 	var url = "skipulagquery.asp?sv="+escape(arrSvResults[parSv])+"&queryType=list&queryText="+escape(searchTerm)
	sendAJAXRequest(url, searchCallback)
 }
 
  function zoomToBounds( coordList )
 {
	//var bounds = new OpenLayers.Bounds(coordList);
	disablePopup();
	var bounds = new OpenLayers.Bounds.fromString( coordList );
	map.zoomToExtent(bounds);
 }
 
 function zoomTo(lon, lat, zoom)
{
	setBaseMap(zoom);
	map.setCenter(new OpenLayers.LonLat(lon, lat), zoom, false, false)
}

/****************************** / searchOnEnter   ***/
function searchOnEnter(e)
{
	var keycode;

	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13)
	 {
	   search_onclick();
	   return false;
	}
	else
	return true;
}
function search_onclick()
{
	var queryText = document.getElementById("searchText").value;
	if(queryText == "")
		return;
	var searchType = $j("#searchDropDown option:selected").val();
	
	// Select type of searech from dropbox
	if ( searchType == "heimilisfangDjupa")
	{
		sendAJAXRequest("US_skraquery.asp?queryType=list&queryText=" + escape(queryText), searchCallback)
	}
	else
	{
		switch (searchType)
		{
			case "ornefni":{ sendAJAXRequest("leit_proxy.asp?sKey=ornefni&sValue=" + escape(queryText), searchResultsCallback); break; }
			case "heimilisfongDjupa":{ sendAJAXRequest("leit_proxy.asp?sKey=heimilisfongDjupa&sValue=" + escape(queryText), searchResultsCallback); break; }
			default:{ sendAJAXRequest("leit_proxy.asp?sKey=heimilisfongDjupa&sValue=" + escape(queryText), searchResultsCallback); break; }
		}
	}
	return true;
}
/****************************** sendAJAXRequest ****/
function sendAJAXRequest(url, callback)
{
	initAjax()
	xmlHttp.onreadystatechange = callback
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);

}
/******************************  onclick ****/
function query_onclick()
{


	var queryText = document.getElementById("queryText").value
	searchTerm = queryText
	sendAJAXRequest("skipulagquery.asp?queryType=list&queryText="+queryText, searchCallback)


	return true;
}

/****************************** AJAX ENDAR **********************************/

/****************************** INIT OPENLAYER OG FLEIRA**********************************/
var olControl_measureLine
var olControl_zoomBox
var olControl_dragPan
var zoomboxIcon
var dragpanIcon
var zoomoutIcon
var measureIcon
var infoIcon

var draw = "false"
function log(message)
{
	try
		{
			console.log(message)
		}
		catch (e)
		{

		}
}

function setInfoDivText(text)
{
var infoDiv = document.getElementById("infoSpan")
infoDiv.innerHTML = text+curvyHTML;

}

function deactivateAll()
{
	olControl_measureLine.deactivate()
	olControl_zoomBox.deactivate()
	olControl_dragPan.deactivate()
}
function updatePermalink()
{
	//log('permaMove')
	var olPermaLink = document.getElementById('OpenLayers.Control.Permalink_57')
	var permaDiv = document.getElementById('permalink')
	permaDiv.firstChild.href = olPermaLink.firstChild.href


}
function switchCommands(command)
{


	document.getElementById("tbZoomBox").style.backgroundImage = zoomboxIcon
	document.getElementById("tbDragPan").style.backgroundImage = dragpanIcon
	document.getElementById("tbZoomOut").style.backgroundImage = zoomoutIcon
	document.getElementById("tbMeasureLine").style.backgroundImage = measureIcon
	document.getElementById("tbInfo").style.backgroundImage = infoIcon
	//setInfoDivText(greetingMessage)

	log(command)
	var tbDiv = document.getElementById("tb"+command);
	var moreInfoText = "<br>Nánari upplýsingar í <a href=# onclick=javascript:openHelpWindow()>hjálp</a>";
	moreInfoText = "";
	setInfoDivText(moreInfoText);
	if(command=="ZoomBox")
	{
		deactivateAll();
		log("zoom");
		setInfoDivText("Halda niðri músarhnappnum til að afmarka svæði."+moreInfoText);
		tbDiv.style.backgroundImage="url(img/LM_toolb_"+command+"_down.gif)";
		olControl_zoomBox.activate();
	}
	if(command=="DragPan")
	{
		deactivateAll();
		log("pan");
		setInfoDivText("Halda niðri músarhnappi og draga til að hliðra kortinu."+moreInfoText);
		tbDiv.style.backgroundImage="url(img/LM_toolb_"+command+"_down.gif)";
		olControl_dragPan.activate();
	}
	if(command=="MeasureLine")
	{
		deactivateAll();
		setInfoDivText("Tvísmella til að klára mælingu. "+moreInfoText)
		tbDiv.style.backgroundImage="url(img/LM_toolb_"+command+"_down.gif)";
		if(storedFeature != null)
			storedFeature.destroy();
		log("measure")

		olControl_measureLine.activate();
	}
	if(command == "ZoomOut")
	{
		map.zoomOut();
	}
	if(command=="Overview")
	{
		deactivateAll();
		//alert("OV");
		/*var bounds = new OpenLayers.Bounds(447840.11,550626.12,529200.82,615714.69);
		map.zoomToExtent(bounds)*/
		map.setCenter(new OpenLayers.LonLat(start_lon, start_lat), start_zoom, false, false);
	}
	if(command == "Print")
	{
		window.print();
	}
	if(command == "Info")
	{
		openHelpWindow();
	}
}
var helpWin;
function openHelpWindow()
{
	if(helpWin == null || helpWin.closed)
		helpWin = window.open("help2.asp?sv=djupivogur", "helpWindow", "status=0, toolbar=0, scrollbars=1, resizable=1, menubar=0, height=800, width=700")
	else
		helpWin.focus();
}
function toggle()
{
	if(draw == "false")
	{
		//log("Activate")
		zoomBox.activate()
		draw = "true"
	}
	else
	{
		//log("Deactivate")
		zoomBox.deactivate()
		draw = "false"
	}

}

function init(){
//$j('#OpenLayers_Control_PanZoom_panup_innerImage').src('img/LM_panzoompanup.png');


	/************************* INIT ICONS **************************/
	zoomboxIcon = document.getElementById("tbZoomBox").style.backgroundImage
	dragpanIcon = document.getElementById("tbDragPan").style.backgroundImage
	zoomoutIcon = document.getElementById("tbZoomOut").style.backgroundImage
	measureIcon = document.getElementById("tbMeasureLine").style.backgroundImage
	infoIcon = document.getElementById("tbInfo").style.backgroundImage
	//printIcon = document.getElementById("tbPrint").style.backgroundImage
	/********************** INIT ICONS DONE ******************************/
	//searchBox = document.getElementById("results").innerHTML
	setInfoDivText(greetingMessage)

	initAjax();
	
	
	

	var resArray = new Array(100.185185, 50.092592500000002,
							25.046296250000001, 12.523148125000001, 6.2615740625000003, 3.1307870312500001,
							1.5653935156250001, 0.78269675781250003, 0.39134837890625002, 0.19567418945312501, 0.097837094726562504);

	var maxExtent =  new OpenLayers.Bounds(234248.88,297273.25,759064.98,686298.38);
	//var panBounds =  new OpenLayers.Bounds(421000.00,475000.00,540000.00,640000.00);
	var panBounds =  new OpenLayers.Bounds(680336, 444290,739021,490995);
	map = new OpenLayers.Map('map',
							{controls: [],
							//maxExtent: new OpenLayers.Bounds(347553.95,425233.50,357159.21,432484.41),
							'maxExtent':maxExtent,
							units:'m',
							maxResolution: 180/256,
							projection:"EPSG:3057",
							'resolutions':resArray,
							'numZoomLevels':11,
							'restrictedExtent':panBounds});
				
	//map.events.register("zoomend", null, leZoomEvent);
	map.events.register("movestart", this, leMoveStartEvent);


	//  ***  Hï¿½r er kortinu raï¿½aï¿½ saman *** //
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
OpenLayers.Util.onImageLoadErrorColor = "transparent";
	
			 
	var wms = new OpenLayers.Layer.WMS("Grunnkort",
		["http://tc0.loftmyndir.is/tc2/tilecache.py",
		"http://tc1.loftmyndir.is/tc2/tilecache.py",
		"http://tc2.loftmyndir.is/tc2/tilecache.py",
		"http://tc3.loftmyndir.is/tc2/tilecache.py"],
		{layers:'ysit',format:'image/jpeg', kortasja: 'Djupivogur'},
		{opacity:1.0, tileSize: new OpenLayers.Size(256,256),'isBaseLayer': true, attribution: '©Loftmyndir ehf.<small> Allur réttur áskilinn</small>', transitionEffect:'resize'});
			 
	// layers for the basemaps
	var myndkort_layers = "ysit";
	var grunnkort_layers = "grunnkort";
	// specify what map to display a each level
	theBaseMap[0] = grunnkort_layers; // Zoomlevel 0
	theBaseMap[1] = grunnkort_layers; // Zoomlevel 1
	theBaseMap[2] = grunnkort_layers; // Zoomlevel 2
	theBaseMap[3] = grunnkort_layers; // Zoomlevel 3
	theBaseMap[4] = myndkort_layers; // Zoomlevel 4
	theBaseMap[5] = myndkort_layers; // Zoomlevel 5
	theBaseMap[6] = myndkort_layers; // Zoomlevel 6
	theBaseMap[7] = myndkort_layers; // Zoomlevel 7
	theBaseMap[8] = myndkort_layers; // Zoomlevel 8
	theBaseMap[9] = myndkort_layers; // Zoomlevel 9
	theBaseMap[10] = myndkort_layers; // Zoomlevel 10
	theBaseMap[11] = myndkort_layers; // Zoomlevel 11
			
	var veitu_resolutions = new Array(0.78269675781250003, 0.39134837890625002, 0.19567418945312501, 0.097837094726562504); //Start at 1:2000 (1:2220 -  zoomlevel 9)
	var vegir_resolutions = new Array(350.37037000000001, 100.185185, 50.092592500000002, 25.046296250000001); // First four levels

	if(oldbrowser)
	{ 	
		wms_Vegir = new OpenLayers.Layer.WMS.Untiled( "Vegir","http://geoserver.loftmyndir.is/geoserver/wms",
                    {layers:'postgis:vegagerd_vegir',format:'image/gif',transparent: true},
                     {'displayInLayerSwitcher':false, 'isBaseLayer':false,resolutions:vegir_resolutions}); 
		
		var ornefni = new OpenLayers.Layer.WMS.Untiled("Örnefni &nbsp; &nbsp;",
				"http://geoserver.loftmyndir.is/geoserver/wms",
				{layers: 'postgis:isl_ornefni',format:'image/gif', transparent: true},
				{'displayInLayerSwitcher':true,'isBaseLayer': false}
			);
		var sveitabaeir= new OpenLayers.Layer.WMS.Untiled("Sveitabæir",

				"http://geoserver.loftmyndir.is/geoserver/wms",
				{layers: 'postgis:isl_sveitabaeir',format:'image/gif', transparent: true},
				{'displayInLayerSwitcher':true,'isBaseLayer': false}
			);
		var wms_LabelVegir = new OpenLayers.Layer.WMS.Untiled( "Götuheiti &nbsp;","http://geoserver.loftmyndir.is/geoserver/wms",
	                    {layers:'postgis:lm_labelvegir',format:'image/gif',transparent: true},
                           {'displayInLayerSwitcher':true, 'isBaseLayer':false});
					 
		var isl_husnumer = new OpenLayers.Layer.WMS.Untiled( "Húsnúmer &nbsp;","http://geoserver.loftmyndir.is/geoserver2/wms",
										{layers:'postgis:isl_husnumer',format:'image/gif',transparent: true},
										{'displayInLayerSwitcher':true, 'isBaseLayer':false});
		
		//CQL_FILTER: ("nafn NOT LIKE 'BlÃ¡skÃ³gabyggÃ°'")
		var wmsSvf_mork = new OpenLayers.Layer.WMS.Untiled( "WMS_Logo","http://tc3.loftmyndir.is/geoserver/wms?",
				{layers: 'island:hreppar',format: 'image/gif',transparent: true,'displayInLayerSwitcher':true, CQL_FILTER: ("numer <> 7617")},
				 {'displayInLayerSwitcher':false, 'isBaseLayer': false});
		
		var isl_poi   = new OpenLayers.Layer.WMS.Untiled("<b>POI</b>",
					"http://geoserver.loftmyndir.is/geoserver/wms?",
					{layers: 'postgis:isl_poi',format:'image/gif', transparent: true},
					{'displayInLayerSwitcher':false,'isBaseLayer': false});	
	}
	else
	{
		wms_Vegir = new OpenLayers.Layer.WMS.Untiled( "Vegir","http://geoserver.loftmyndir.is/geoserver/wms",
                    {layers:'postgis:vegagerd_vegir',format:'image/jpeg',transparent: true},
                     {'displayInLayerSwitcher':false, 'isBaseLayer':false,resolutions:vegir_resolutions}); 
		
		var ornefni = new OpenLayers.Layer.WMS.Untiled("Örnefni &nbsp; &nbsp;",
				"http://geoserver.loftmyndir.is/geoserver/wms",
				{layers: 'postgis:isl_ornefni',format:'image/jpeg', transparent: true},
				{'displayInLayerSwitcher':true,'isBaseLayer': false}
			);
		var sveitabaeir= new OpenLayers.Layer.WMS.Untiled("Sveitabæir",

				"http://geoserver.loftmyndir.is/geoserver/wms",
				{layers: 'postgis:isl_sveitabaeir',format:'image/jpeg', transparent: true},
				{'displayInLayerSwitcher':true,'isBaseLayer': false}
			);
		var wms_LabelVegir = new OpenLayers.Layer.WMS.Untiled( "Götuheiti &nbsp;","http://geoserver.loftmyndir.is/geoserver/wms",
	                    {layers:'postgis:lm_labelvegir',format:'image/jpeg',transparent: true},
                           {'displayInLayerSwitcher':true, 'isBaseLayer':false});
					 
	var isl_husnumer = new OpenLayers.Layer.WMS.Untiled( "Húsnúmer &nbsp;","http://geoserver.loftmyndir.is/geoserver2/wms",
										{layers:'postgis:isl_husnumer',format:'image/jpeg',transparent: true},
										{'displayInLayerSwitcher':true, 'isBaseLayer':false});
				
		
		// CQL_FILTER: ("numer <> 3711")
		var wmsSvf_mork = new OpenLayers.Layer.WMS.Untiled( "WMS_Logo","http://tc3.loftmyndir.is/geoserver/wms?",
				{layers: 'island:hreppar',format: 'image/jpeg',transparent: true,'displayInLayerSwitcher':true, CQL_FILTER: ("numer <> 7617")},
				 {'displayInLayerSwitcher':false, 'isBaseLayer': false});	
		
		var isl_poi   = new OpenLayers.Layer.WMS.Untiled("<b>POI</b>",
					"http://geoserver.loftmyndir.is/geoserver/wms?",
					{layers: 'postgis:isl_poi',format:'image/jpeg', transparent: true},
					{'displayInLayerSwitcher':false,'isBaseLayer': false});	
	}

	


	/****************************** WFS fyrir onmouseover byrjar */	
	var styleMap_ToolTip = new OpenLayers.StyleMap({
		strokeColor: "#CCCCCC",
		fillColor: "#CCCCCC",
		strokeWidth: 5,
		strokeOpacity: 0.1,
		fillOpacity: 0.1,
		pointRadius:2
	});
					 
	
	markers = new OpenLayers.Layer.Markers("Merki",
		   {'displayInLayerSwitcher':false});

	var lineLayer = new OpenLayers.Layer.Vector("MÃ¦lingar",{'displayInLayerSwitcher':false});
	
	//map.addLayer(kort);
	map.addLayer(wms);
	map.addLayer(wms_Vegir);
	map.addLayer(wmsSvf_mork);
	map.addLayer(ornefni);
	map.addLayer(sveitabaeir);
	map.addLayer(wms_LabelVegir); // Smooth texti settur inn ï¿½ staï¿½inn, bugï¿½ast ekki meï¿½ gï¿½tunum
	map.addLayer(markers);
	map.addLayer(isl_husnumer);
	map.addLayer(isl_poi);

	layerSwitcher = new OpenLayers.Control.newLayerSwitcher();
    map.addControl(layerSwitcher);
	layerSwitcher.maximizeControl();
    OpenLayers.Rico.Corner.round( layerSwitcher.div, {corners: "tl bl", bgColor: "transparent", color: "AliceBlue", blend: false});
    OpenLayers.Rico.Corner.changeOpacity(layerSwitcher.layersDiv, 0.60);

	map.addControl(new OpenLayers.Control.PanZoomBar({'div':OpenLayers.Util.getElement('LM_panzoombar')}));

	map.addControl(new OpenLayers.Control.Attribution());
	
	map.events.register("mousemove", map, function(e) {mousePosition = this.events.getMousePosition(e);});

/******************************   Custom controls (eï¿½a nï¿½stum ï¿½vï¿½)*****************/
  olControl_zoomBox = new OpenLayers.Control.ZoomBox();

  olControl_dragPan = new OpenLayers.Control.DragPan()
  olControl_measureLine = new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path, {handlerOptions: {'freehand': false}, 'displayClass': 'olControlDrawFeaturePath'});
  olControl_measureLine.featureAdded = function(feature)
  	      {
              feature.state = OpenLayers.State.INSERT;
              //feature.style['strokeColor'] = "#ff0000";
              measureDone(feature)
              feature.layer.drawFeature(feature);
              }

  map.addControl(olControl_zoomBox);
  map.addControl(olControl_dragPan);
  map.addControl(olControl_measureLine);
  //map.addControl(new OpenLayers.Control.MousePosition({'div':OpenLayers.Util.getElement('mousepos'),'prefix':"E:", 'separator':" N:"}));


/******************************** Custom dï¿½t endar ****************/
	/*var bounds = new OpenLayers.Bounds(347553.95,425233.50,357159.21,432484.41);
	map.zoomToExtent(bounds)*/

	map.setCenter(new OpenLayers.LonLat(start_lon, start_lat), start_zoom, false, false);
	//map.addLayer(fasteignir_wms,vatnsveita_wms,gonguleidir_wms,wms);
	if (!map.getCenter())
		map.zoomToMaxExtent();
	// map.zoomToMaxExtent();


	//Hï¿½r eiga ï¿½ll script aï¿½ vera bï¿½in aï¿½ keyra
	switchCommands("ZoomBox")

	if(document.getElementById("zoom") != null)
	{
		var zoom = document.getElementById("zoom").innerHTML
		var lon = document.getElementById("lon").innerHTML
		var lat = document.getElementById("lat").innerHTML
		map.setCenter(new OpenLayers.LonLat(lon, lat), zoom, false, false);
	}
	
	doTheFunkyBar();
	
	// Insert functions to handle what basemap is displayed
	map.zoomToOL = map.zoomTo;
	map.zoomTo = function(e){ setBaseMap(e);this.zoomToOL(e);}
	//zoomToExtent is called when zoom is changed with the zoombar slider
	map.zoomToExtentOL = map.zoomToExtent;
	map.zoomToExtent = function(e){ setBaseMap(this.getZoomForExtent(e)); this.zoomToExtentOL(e);}
	//setCenter is used when zoombox has one pixel ()click and zoomToMaxExtent is clicked (landakort) 
	map.setCenter = function (lonlat, zoom, dragging, forceZoomChange) {if(zoom != null){setBaseMap(zoom)}; this.moveTo(lonlat, zoom, {dragging: dragging, forceZoomChange: forceZoomChange, caller: "setCenter"});}
	
}//end init

function leMoveStartEvent(evt)
{
	/*alert("Movestart " + map.getScale() + " - - " + map.layers[0].params.LAYERS);
	var scale = map.getScale();
	if (scale < 700000)
	{map.layers[0].params.LAYERS = "yfirlitskort,sjomaski,Index_har,thjettbyli";}
	else
	{map.layers[0].params.LAYERS = "grunnkort_512";}*/
	
}
function leZoomEvent()
{
	/*alert("ZoomEnd " + map.getScale() + " - - " + map.layers[0].params.LAYERS);
	var scale = map.getScale();
	if (scale < 700000)
	{map.layers[0].params.LAYERS = "yfirlitskort,sjomaski,Index_har,thjettbyli";}
	else
	{map.layers[0].params.LAYERS = "grunnkort_512";}*/
	
	//map.layers.redraw();
}

function doTheFunkyBar()
{
	// Change images in panZoom stuff
	document.getElementById("OpenLayers_Control_PanZoom_panup_innerImage").src= "img/LM_panzoompanup3.png";
	$j("#OpenLayers_Control_PanZoom_panup_innerImage").css("width","18px");
	$j("#OpenLayers_Control_PanZoom_panup_innerImage").css("height","19px");
	document.getElementById("OpenLayers_Control_PanZoom_pandown_innerImage").src= "img/LM_panzoompandown3.png";
	$j("#OpenLayers_Control_PanZoom_pandown_innerImage").css("width","18px");
	$j("#OpenLayers_Control_PanZoom_pandown_innerImage").css("height","19px");
	document.getElementById("OpenLayers_Control_PanZoom_panleft_innerImage").src= "img/LM_panzoompanleft3.png";
	$j("#OpenLayers_Control_PanZoom_panleft_innerImage").css("width","19px");
	$j("#OpenLayers_Control_PanZoom_panleft_innerImage").css("height","18px");
	document.getElementById("OpenLayers_Control_PanZoom_panright_innerImage").src= "img/LM_panzoompanright3.png";
	$j("#OpenLayers_Control_PanZoom_panright_innerImage").css("width","19px");
	$j("#OpenLayers_Control_PanZoom_panright_innerImage").css("height","18px");
	document.getElementById("OpenLayers_Control_PanZoom_zoomin_innerImage").src= "img/LM_zoom-plus3.png";
	$j("#OpenLayers_Control_PanZoom_zoomin_innerImage").css("width","18px");
	$j("#OpenLayers_Control_PanZoom_zoomin_innerImage").css("height","13px");
	document.getElementById("OpenLayers_Control_PanZoom_zoomout_innerImage").src= "img/LM_zoom-minus3.png";
	$j("#OpenLayers_Control_PanZoom_zoomout_innerImage").css("width","18px");
	$j("#OpenLayers_Control_PanZoom_zoomout_innerImage").css("height","13px");
	document.getElementById("OpenLayers_Control_PanZoomBar_SliderOpenLayers.Map_2_innerImage").src= "img/LM_zoom-slider3.png";
	document.getElementById("OpenLayers_Control_PanZoomBar_SliderOpenLayers.Map_2_innerImage").style.position="relative";
	document.getElementById("OpenLayers_Control_PanZoomBar_SliderOpenLayers.Map_2_innerImage").style.width="18px";
	document.getElementById("OpenLayers_Control_PanZoomBar_SliderOpenLayers.Map_2_innerImage").style.height="11px";
	document.getElementById("OpenLayers_Control_PanZoomBar_SliderOpenLayers.Map_2_innerImage").style.left="11px";
	document.getElementById("OpenLayers_Control_PanZoomBar_SliderOpenLayers.Map_2_innerImage").style.top="-7px";
	document.getElementById("OpenLayers_Control_PanZoomBar_ZoombarOpenLayers.Map_2").style.width="10px";
	document.getElementById("OpenLayers_Control_PanZoomBar_ZoombarOpenLayers.Map_2").style.left="27px";
	document.getElementById("OpenLayers_Control_PanZoomBar_ZoombarOpenLayers.Map_2").style.top="80px";
	document.getElementById("OpenLayers_Control_PanZoomBar_ZoombarOpenLayers.Map_2").style.backgroundImage = "url(img/LM_zoombar_thin.png)";
	
	$j("#LM_panzoombar").attr('style', "").addClass('LM_PanZoomBarContainer');
	//document.getElementById("OpenLayers.Control.PanZoomBar_64").className += ' LM_PanZoomContainer';
	//$j("#OpenLayers.Control.PanZoomBar_64").toggleClass('LM_PanZoomContainer');
	
	$j("#OpenLayers_Control_PanZoom_panup").attr('style', "").addClass('OpenLayers_Control_PanZoom_panup');
	$j("#OpenLayers_Control_PanZoom_pandown").attr('style', "").addClass('OpenLayers_Control_PanZoom_pandown');
	$j("#OpenLayers_Control_PanZoom_panleft").attr('style', "").addClass('OpenLayers_Control_PanZoom_panleft');
	$j("#OpenLayers_Control_PanZoom_panright").attr('style', "").addClass('OpenLayers_Control_PanZoom_panright');
	$j("#OpenLayers_Control_PanZoom_zoomin").attr('style', "").addClass('OpenLayers_Control_PanZoom_zoomin');
	$j("#OpenLayers_Control_PanZoom_zoomout").attr('style', "").addClass('OpenLayers_Control_PanZoom_zoomout_11');
	$j("#OpenLayers_Control_PanZoomBar_ZoombarOpenLayers").attr('style', "").addClass('OpenLayers_Control_PanZoomBar_ZoombarOpenLayers');
	$j("#LM_panzoombar").append('<div id=leIsland class=leIsland onclick=switchCommands("Overview")></div>');
	//$j("#leIsland").click(function(){switchCommands('Overview')});
}

//smï¿½ test
function onPopupClose(evt) 
{
    selectControl.unselect(selectedFeature);        
}
function onFeatureSelect(feature) 
{
	var strHTML = "<span id='toolTipText'><img src=images/progress.gif width=20 height=20 border=0> ...Sæki gögn.</span>";
	if ( typeof(feature.attributes.foreign_ke) == "undefined" || feature.attributes.foreign_ke == 0)
	{
		//alert( "Undefined");
		return; // exit function since there is not foreign key specified for the feature
	}
	else
	{
		sendAJAXRequest("rarik_webservice.asp?queryType=list&Function=3&NetbasId="+feature.attributes.foreign_ke, netbasCallback)
		popup = new OpenLayers.Popup.FramedCloud("chicken", 
							 map.getLonLatFromViewPortPx(mousePosition),
							 null,
							 strHTML,
							 null, true, onPopupClose);
		feature.popup = popup;
		map.addPopup(popup);
		selectedID=feature.attributes.gid; 
	}
	selectedFeature = feature;
	//feature.geometry.getBounds().getCenterLonLat(),
	//"<div style='font-size:.8em' id=bubbleTip>Feature: " + feature.id +"<br />Area: " + feature.geometry.getArea()+"</div>",
	
}

function onFeatureHover(feature)
{
	if ( typeof(feature.attributes.foreign_ke) == "undefined" || feature.attributes.foreign_ke == 0)
	{
		document.body.style.cursor='cursor';
		return; // exit function since there is not foreign key specified for the feature
	}
	else
	{
		//alert(feature.attributes.foreign_ke);
		document.body.style.cursor='pointer';
	}
}

function onFeatureUnselect(feature) 
{
	//map.removePopup(feature.popup);
	//feature.popup.destroy();
	//feature.popup = null;
} 
//smï¿½ test endar

function openLandsnetWindow(id)
{
//window.open(' http://landsnetmap.lht.is/info.aspx?id='+id, 'info', 'width=900, height=700, scrollbars=yes')
}
var selectedID = 0;
function onClickCallback(feature)
{
	//openLandsnetWindow(feature.attributes.stjora_id)
}
function onSelectCallback(feature)
{
		var ToolTip = document.getElementById("ToolTip")
		ToolTip.innerHTML=feature.attributes.stjora_id;
		selectedID=feature.attributes.stjora_id
		ToolTip.style.visibility="visible";
		var px = map.getPixelFromLonLat(feature.geometry.getBounds().getCenterLonLat())
		var y = px.y+100;
		var strX = new String(px.x+"px");
		var strY = new String(y+"px");
		ToolTip.style.left=strX;
		ToolTip.style.top=strY;
		log(px.x+","+px.y);
		log(this.handler.evt.xy.x+","+this.handler.evt.xy.y);
}

function onUnselectCallback(feature)
{
	//log("Enable "+activeCommand)
	//switchCommands(activeCommand);
	tb = document.getElementById("ToolTip")
	tb.style.visibility="hidden";
}

function setHTML(response) {
    document.getElementById('nodelist').innerHTML = response.responseText;
};


var storedFeature
/*************************** OPENLAYER CALLBACK HANDLER *******************************/
function openLayerCallback(response)
{
		log("WMS GetFeatureInfo returns: "+response.responseText);
		strResp = response.responseText

		arrResp = strResp.split(",")
		log(strResp.indexOf("nothing"))
		if(strResp.indexOf("nothing") == -1)
		{
			var strURL = "http://www.skipulag.is/focal/PhotoServer/photosrv.nsf/Main?OpenForm&ss_findimg="+arrResp[0]
			log(strURL)

			//window.open(strURL)
		}
		else
		{
			log("GetFeatureInfo Callback reports: No Feature Found")
		}
};

//Todo: Geyma feature ï¿½ einhvern hï¿½tt til aï¿½ geta hent ï¿½eim viï¿½ tï¿½kifï¿½ri.
function measureDone(feature)
{
	if(storedFeature != null)
		storedFeature.destroy();
	storedFeature = feature;
	//setInfoDivText("Niðurstaða mælingar:<b>"+feature.geometry.getLength().toFixed(1)+" metrar</b>");
	alert("Niðurstaða mælingar: "+feature.geometry.getLength().toFixed(1)+" metrar");

}


function pan(x,y)
{
   void map.pan(x,y);

}


/***************************  Tooltip action *******************************/
// Action fires when mouse enters a feature
function onFeatureSelectCallback(feature)
{
	
	var strHTML = "<span id='toolTipText'><table width=200 cellpadding=0 cellspacing=0 border=0>";
	strHTML += "<tr><td background=img/tooltiptableheaderbg.gif height=18><img src=img/close13px.gif align=right onclick=javascript:closeTooTip(); style=padding-left:150px;></td></tr><tr><td><br><img src=images/progress.gif width=20 height=20 border=0> ...Sï¿½ki gï¿½gn.</span></td></tr></table>";
	var ToolTip = document.getElementById("toolTipRarik");
			
	if ( typeof(feature.attributes.foreign_ke) == "undefined" || feature.attributes.foreign_ke == 0)
	{
		//alert( "Undefined");
		return; // exit function since there is not foreign key specified for the feature
	}
	else
	{
		//alert( feature.attributes.foreign_ke );
		sendAJAXRequest("rarik_webservice.asp?queryType=list&Function=3&NetbasId="+feature.attributes.foreign_ke, netbasCallback)
		var mapTop = $j("#map").css("top").replace("px",""); // Get top position of map table
		var mapLeft = $j("#map").css("left").replace("px",""); // Get left position of map table
		ToolTip.innerHTML=strHTML;  // Insert HTML into the ToolTip DIV
		selectedID=feature.attributes.foreign_ke; 
		var X = mousePosition.x/1 + mapLeft/1; 	//Left coordinates,  division by 1 is convert to number
		var Y = mousePosition.y/1 + mapTop/1;	//Top coordinates,  division by 1 is convert to number
		ToolTip.style.left = X + "px"; //Assign left (x) coordinate to ToolTip style
		ToolTip.style.top = Y + "px"; //Assign top (y) coordinate to ToolTip style
		ToolTip.style.visibility = "visible"; // Make tooltip visible 
	}
}

/****************************** netbasCallback  *****/
 function netbasCallback()
 {
	if(xmlHttp.readyState==4)
 	{
		//alert(xmlHttp.responseText);
		try //Internet Explorer
		  {
		  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		  xmlDoc.async="false";
		  xmlDoc.loadXML(xmlHttp.responseText);
		  }
		catch(e)
		  {
		  try //Firefox, Mozilla, Opera, etc.
		  {
		  parser=new DOMParser();
		  xmlDoc=parser.parseFromString(xmlHttp.responseText,"text/xml");
		  }
		  catch(e)
		  {
		  alert(e.message);
		  return;
		  }
		}
		$j(xmlDoc).find("getNetbasObjectByIdResult").each(function() 
		{
			var ToolTip = document.getElementById("toolTipRarik");
			var HTMLOutput = "<span id='toolTipText'><table cellpadding=0 cellspacing=0 border=0>";
			HTMLOutput += "<tr><td height=18 class=tooltipheader>NetBas ID: " + selectedID + "</td><td class=tooltipheader><img src=img/close13px.gif width=13 height=13 align=right onclick=javascript:closeTooTip();></td></tr><tr><td class=tooltip colspan=2>";
			
			if($j(this).find("error").text() == "true" )
			{
				HTMLOutput += "<b>Error:</b> <br>";
				HTMLOutput += $j(this).find("name").text();
			}
			else
			{
				//var HTMLOutput = "<span id=toolTipText>";
				var netbasName =  $j(this).find("netBasName").text() ;
				var netbasId =  selectedID;//$j(this).find("netBasId").text() ;
				var lineId =  $j(this).find("lineId").text() ;
				var transformerStationId =  $j(this).find("transformerStationId").text() ;
				var connectionBoxId =  $j(this).find("connectionBoxId").text() ;
				var locationName =  $j(this).find("locationName").text() ;
				var workId =  $j(this).find("workId").text() ;
				var componentTypeName =  $j(this).find("componentTypeName").text() ;
				var componentTypeId =  $j(this).find("componentTypeId").text() ;
				
				//HTMLOutput += "<b>NetBas ID:</b> " + netbasId + "<br>";
				HTMLOutput += "<b>NetBas name:</b> " + netbasName + "<br>";
				HTMLOutput += "<b>Line ID:</b> " + lineId + "<br>";
				HTMLOutput += "<b>Transformer station ID:</b> " + transformerStationId + "<br>";
				HTMLOutput += "<b>Connection box ID:</b> " + connectionBoxId + "<br>";
				HTMLOutput += "<b>Location name:</b> " + locationName + "<br>";
				HTMLOutput += "<b>Work ID:</b> " + workId + "<br>";
				HTMLOutput += "<b>Component type name:</b> " + componentTypeName + "<br>";
				HTMLOutput += "<b>Component type ID:</b> " + componentTypeId + "<br>";
				HTMLOutput += "</span>";  // Insert HTML into the ToolTip DIV
			}
			HTMLOutput += "</td></tr></table>";
			//alert(HTMLOutput);
			//$j("toolTipRarik").innerHTML= HTMLOutput;
			//document.getElementById("toolTipRarik").innerHTML= HTMLOutput;
			//ToolTip = document.getElementById("toolTipRarik");
			document.getElementById("toolTipText").innerHTML= HTMLOutput;
			//ToolTip.innerHTML= HTMLOutput;			
		});
		//alert( xmlHttp.responseText );
	}

 }

// Action fires when mouse leaves a feature
function onFeatureUnselectCallback(feature)
{
	/*
	switch (getFeatureName(feature))
	{
		case "gatnamot":
			tb = document.getElementById("ToolTipGatnamot");
		break;
		case "rvk_gotur":
			tb = document.getElementById("ToolTipRvk");
		break;
		case "vg_vegir":
			tb = document.getElementById("ToolTipVG");
		break;
		default:
		break;
	}
	tb.style.visibility="hidden"; 		*/	
	//tb = document.getElementById("toolTipRarik");	
	//tb.style.visibility="hidden"; 
	document.body.style.cursor='default';
}
function closeTooTip()
{
	tb = document.getElementById("toolTipRarik");	
	tb.style.visibility="hidden"; 
}

// Action fires when mouse clicks a feature
function onFeatureClickCallback(feature)
{	 
	/*switch (getFeatureName(feature))
	{
		case "gatnamot":
			alert("gatnamï¿½t");
		break;
		case "rvk_gotur":
			alert("Reykjavï¿½k gï¿½tur");
		break;
		case "vg_vegir":
			alert("VG vegir");
		break;
		default:
		break;
	}*/
}

function getFeatureName(feature)
{
	var fid = feature.fid;
	var fid = fid.slice(0,fid.indexOf("."));
	switch (fid)
	{
		case "us_netgrind_nodur":
			return "gatnamot";
		break;
		case "us_netgrind_linur":
			return "rvk_gotur";
		break;
		case "us_stofnvegir":
			return "vg_vegir";
		break;
		case "us_safnvegir":
			return "vg_vegir";
		break;
		case "us_tengivegir":
			return "vg_vegir";
		break;
		default:
			return "vg_vegir";
	}
}


