// set up global variables
var map;var blayer;var zoom;var lon;var lat;var markers;var marker;var x=0;var y=0;
var proj = new OpenLayers.Projection("EPSG:4326");var displayProj=new OpenLayers.Projection("EPSG:900913");
var bounds=new OpenLayers.Bounds(-97.21,43.50,-89.60,48.99);bounds.transform(proj,displayProj);
var size = new OpenLayers.Size(25,24);
var icon = new OpenLayers.Icon('./star.gif');


// avoid pink tiles
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;OpenLayers.Util.onImageLoadErrorColor = "transparent";

function add(x,y) {
    mapit(x,y);
    var newloc =new String("http://www.gis.leg.mn/gis/OpenLayers/districts/qresults.php?lon="+x+"&lat="+y+"&zoom="+map.getZoom()+"&blayer="+blayer);
    window.frame.location = newloc;
  }
function mapit(x,y,s){
  if(y==0){map.zoomToMaxExtent(true);}
  else{
    var sloc = new OpenLayers.LonLat(x,y);
    sloc.transform(proj, displayProj);
    marker = markers.addMarker(new OpenLayers.Marker(sloc,icon));
    document.getElementById('OL_Icon_2').style.cursor="url(cursor.gif),crosshair";
  }
  if(s=='zoom'){
    map.setCenter(sloc,14);
    s=null;
  }
}

function postGet(){
    var url = window.location.search.substring(1);
    var zoomstart = url.search('zoom=');
    if(zoomstart != -1){zoom = url.substr(zoomstart+5,2);}
    var basestart = url.search('blayer=');
    if(basestart==-1){blayer="ymap"}else{blayer = url.substr(basestart+7,4);}
    var lonstart=url.search('lon=');if(lonstart!=-1){x=url.substr(lonstart+4,16);}
    var latstart=url.search('lat=');if(latstart!=-1){y=url.substr(latstart+4,15);}
  }

function init(){
  OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {                
    defaultHandlerOptions: {
      'single': true,
      'double': false,
      'pixelTolerance': 0,
      'stopSingle': false,
      'stopDouble': false
    },
    initialize: function(options) {
      this.handlerOptions = OpenLayers.Util.extend(
	{}, this.defaultHandlerOptions
      );
      OpenLayers.Control.prototype.initialize.apply(
	this, arguments
      ); 
      this.handler = new OpenLayers.Handler.Click(
	this, {
	  'click': this.trigger
        }, this.handlerOptions
      );
    }, 
    trigger: function(e) {
      var lonlat = map.getLonLatFromViewPortPx(e.xy).transform(displayProj,proj);add(lonlat.lon,lonlat.lat);} 
    }
  );

  var options = {
    projection: new OpenLayers.Projection("EPSG:900913"),
    units: "m", 
    maxExtent:bounds,
    minExtent: new OpenLayers.Bounds(-1, -1, -1, -1),
    numZoomLevels: 22
  };

 
  map = new OpenLayers.Map('map', options);
  map.addControl(new OpenLayers.Control.LayerSwitcher());
  //map.addControl(new OpenLayers.Control.MousePosition({suffix:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',numDigits:3,displayProjection:proj}));
  map.addControl(new OpenLayers.Control.KeyboardDefaults());
 
  //var ymap = new OpenLayers.Layer.Yahoo("Yahoo Street", {sphericalMercator: true});
  //var ysat = new OpenLayers.Layer.Yahoo("Yahoo Satellite", {'type': YAHOO_MAP_SAT, sphericalMercator: true});
  var gsat = new OpenLayers.Layer.Google("Google Satellite", {'type': google.maps.MapTypeId.SATELLITE, 'maxExtent': new OpenLayers.Bounds(-98.78,43.50,-89.60,48.99).transform(proj,displayProj)});
  var gmap = new OpenLayers.Layer.Google("Google Street",{'maxExtent': new OpenLayers.Bounds(-98.78,43.50,-89.60,48.99).transform(proj,displayProj)});
  var house = new OpenLayers.Layer.WMS.Untiled("State House Boundaries", "http://www.gis.leg.mn/cgi-bin/mapserv?map=/web/gis/OpenLayers/districts/mapserver1.map",
  {layers: 'house,house_anno', transparent:true}, {opacity: 0.5, visibility: true,isBaseLayer: false,wrapDateLine: true});
  var sen2009 = new OpenLayers.Layer.WMS.Untiled("State Senate Boundaries", "http://www.gis.leg.mn/cgi-bin/mapserv?map=/web/gis/OpenLayers/districts/mapserver1.map",
  {layers: 'sen2009',transparent:true}, {opacity: 0.7, visibility: true,isBaseLayer: false,wrapDateLine: true});
  var cng2002 = new OpenLayers.Layer.WMS.Untiled("Congressional Boundaries", "http://www.gis.leg.mn/cgi-bin/mapserv?map=/web/gis/OpenLayers/districts/mapserver1.map",
  {layers: 'cng2002,cng2002_anno',transparent:true}, {opacity: 0.6, visibility: true,isBaseLayer: false,wrapDateLine: true});
  markers = new OpenLayers.Layer.Markers("My Location",{displayInLayerSwitcher:false});
    
  map.addLayers([gmap,gsat,house,sen2009,cng2002,markers]);  
postGet();
  if(y==0){map.zoomToMaxExtent();}
  	//if(y==0){map.setCenter(new OpenLayers.LonLat(-93.78, 46.5).transform(proj,displayProj), 6);}
else{
var sloc = new OpenLayers.LonLat(x,y);
var sloc = new OpenLayers.LonLat(-98.78,43.5);
sloc.transform(proj, displayProj);
var marker = markers.addMarker(new OpenLayers.Marker(sloc,icon));
map.setBaseLayer(eval(blayer));   
map.setCenter(sloc,zoom);
window.frame.location=window.frame.location+"?"+window.location.search.substr(1);
}

  var click = new OpenLayers.Control.Click();
  map.addControl(click);
  click.activate();

document.getElementById('OpenLayers.Layer.WMS.Untiled_57').style.cursor="url(cursor.gif),crosshair";
};

