// var thePoint = new google.maps.LatLng(57.4775,10.162);
 var thePoint;
 var circle = new google.maps.Circle({radius: 1, center: thePoint}); 
 var omkreds;
 var geocoder;
 var map;
 
 var viewportWidth;
 var viewportHeight;
 var smallWidth;
 var smallHeight;http://127.0.0.1/bi/?bi=13




function codeAddress() {  
  var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address+' 9900 Frederikshavn', 'region':' da '}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
//        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map, 
            position: results[0].geometry.location,
            title: "Her bor du",
draggable: true
        });


 // Henter position på nål når der trækkes
google.maps.event.addListener(marker, 'drag', function() {
  document.position.lat.value = marker.getPosition().lat();
  document.position.lon.value = marker.getPosition().lng();
});


      } else {
        alert("Adressen findes ikke i Frederikshavn " + status);
      }
    });
  }



function getViewport() {
  if (window.innerWidth) {
     viewportWidth = window.innerWidth;
     viewportHeight = window.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientWidth != 0) {
     viewportWidth = document.documentElement.clientWidth;
     viewportHeight = document.documentElement.clientHeight;
  }
  else {
     viewportWidth = document.getElementsByTagName('body')[0].clientWidth;
     viewportHeight = document.getElementsByTagName('body')[0].clientHeight;
  }

}



function getPos(o) {
    for(var _x=_y=0;o!=null;_x+=o.offsetLeft,_y+=o.offsetTop,o=o.offsetParent);
    return {x:_x,y:_y}
}

function alert_pos(o) {

var oShadow = document.getElementById(o);

var oP = getPos(oShadow); // Find 'skygge elementets' placering
 smallWidth = oP.x;
 smallHeight = oP.y;

//alert('X: '+oP.x+', Y: '+oP.y);

}


//*************************************************************************************************

// Define a property to hold the Home state
HomeControl.prototype.home_ = null;

// Define setters and getters for this property
HomeControl.prototype.getHome = function() {
  return this.home_;
}

HomeControl.prototype.setHome = function(home) {
  this.home_ = home;
}

function HomeControl(controlDiv, map) {


 
  // Set CSS styles for the DIV containing the control
  // Setting padding to 5 px will offset the control
  // from the edge of the map
  controlDiv.style.padding = '5px';

  // Set CSS for the control border
  var controlUI = document.createElement('DIV');
  controlUI.style.backgroundColor = 'white';
  controlUI.style.borderStyle = 'solid';
  controlUI.style.borderWidth = '2px';
  controlUI.style.cursor = 'pointer';
  controlUI.style.textAlign = 'center';
  controlUI.title = 'Klik her for at forst\u00F8r/formindske kortet';
  controlDiv.appendChild(controlUI);

  // Set CSS for the control interior
  var controlText = document.createElement('DIV');
  controlText.setAttribute('id', 'mapenlarge');
  controlText.style.fontFamily = 'Arial,sans-serif';
  controlText.style.fontSize = '12px';
  controlText.style.paddingLeft = '4px';
  controlText.style.paddingRight = '4px';
  controlText.innerHTML = 'Forst&oslash;r';
  controlUI.appendChild(controlText);

  // Setup the click event listeners: simply set the map to Chicago
  google.maps.event.addDomListener(controlUI, 'click', function() {
 var o = document.getElementById("mapenlarge");
 var oldHTML = document.getElementById("mapenlarge").innerHTML;

 if (oldHTML == "Formindsk"){
  o.innerHTML = "Forst&oslash;r";

 var css = document.getElementById("map_canvas").style;

  css.width  = "153px";  // Laver stort kort inden zoom ud
  css.height = "146px";
  css.left= smallWidth+"px";
  css.top= smallHeight+"px";
  google.maps.event.trigger(map, 'resize');
  map.fitBounds(omkreds);  // Zoomer til circl

}else{
  o.innerHTML = "Formindsk"

  var css = document.getElementById("map_canvas").style;

  css.width  = viewportWidth-10+"px";  // Laver stort kort inden zoom ud
  css.height = viewportHeight+"px";
  css.left= "0px";
  css.top= "0px";
  google.maps.event.trigger(map, 'resize');
  map.fitBounds(omkreds);  // Zoomer til circl

 }
});

}





function initialize() {

  var myOptions = {
      zoom: 8,
      center: thePoint,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }

  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);  

  geocoder = new google.maps.Geocoder();

  getViewport();
  alert_pos('map_canvas');

  // Add a Circle overlay to the map.
  var circle = new google.maps.Circle({
      map: map,
      radius: 2000, // 2 km
      fillColor: "#3da5e1",
      fillOpacity: 0.3,
      strokeColor: "#3da5e1", //"#2b546b",
      strokeWeight: 1
   });

  circle.setCenter(thePoint); // Tegner circlen


 // Add a Circle overlay to the map.
  var circle2 = new google.maps.Circle({
      map: map,
      radius: 500, // 500 m
      fillColor: "#CCDFFF",
      fillOpacity: 0.3,
      strokeColor: "#3da5e1", //"#2b546b",
      strokeWeight: 1
   });

//  circle2.setCenter(thePoint); // Tegner circlen



  omkreds = circle.getBounds();
  map.fitBounds(omkreds);  // Zoomer til circl

if (level == 100){
  var marker = new google.maps.Marker({
            map: map, 
            position: thePoint,
            title: "Her er bigården",
            draggable: true,
        });
}else{
 var marker = new google.maps.Marker({
            map: map, 
            position: thePoint,
            title: "Her er bigården",
        });
}

// Henter position på nål når der trækkes
  google.maps.event.addListener(marker, 'drag', function() {
  document.position.lat.value = marker.getPosition().lat();
  document.position.lon.value = marker.getPosition().lng();
  document.position.possub.style.display = 'inline';
});

  // Create the DIV to hold the control and call the HomeControl() constructor
  // passing in this DIV.
  var homeControlDiv = document.createElement('DIV');
  var homeControl = new HomeControl(homeControlDiv, map);

  homeControlDiv.index = 1;
  map.controls[google.maps.ControlPosition.RIGHT].push(homeControlDiv);
}

