var map;
var orto;
var vector;
var hybrid;

var size = new OpenLayers.Size(32,32);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var popup;
var marker;
var markersList = new Array(0);
var streetCoords;
var polylineFeature;
var objectClickedInGrid;

var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
 
var dispStreetLine = {
  strokeColor: 'red',  //"#44BB55",
  strokeOpacity: 0.5,
  strokeWidth: 10,
  pointRadius: 4,
  strokeDashstyle: "solid"
};

var vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry", {style: layer_style, displayInLayerSwitcher: false});

var markers = new OpenLayers.Layer.Markers("Markers", {style: layer_style, displayInLayerSwitcher: false});

var objectsByKeyWordsStore = new Ext.data.Store({
  proxy: new Ext.data.HttpProxy({url: 'mainPage/ajax/getObjectsByKeywords.html'}),
  reader: new Ext.data.ArrayReader({}, ['id','name','lon','lat','status','valid_date','icon'])
});

function setHTML(response) { 
    document.getElementById('nodelist').innerHTML = response.responseText;
};
        
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;

function setHeight(){
  h=document.body.clientHeight;
  document.getElementById('map').style.height=(h-2)+'px';
}

function init_map(){

  setHeight();
 
  var options = {
    controls: [],
    numZoomLevels: 4,
    maxResolution: 0.010986328125,
    projection: "EPSG:4326",
    maxExtent: new OpenLayers.Bounds(-5.625,-2.8125,5.625,5.625) 
  };

  map = new OpenLayers.Map('map', options);
            
  // setup tiled layer
  vector = new OpenLayers.Layer.WMS(
    "Vectorova mapa", "http://leticia.portal.sk:8088/geoserver/gwc/service/wms",
    {
      width: '800',
      layers: 'Michalovce',
      styles: '',
      bgcolor: '0xDEDED1',
      srs: 'EPSG:4326',
      height: '375',
      format: 'image/gif',
      tiled: 'true',
      tilesOrigin : "-5.625,-2.8125"
    }
  );

  orto = new OpenLayers.Layer.WMS(
    "Orto-foto mapa","http://leticia.portal.sk:8088/geoserver/gwc/service/wms",
    {
      layers: 'topp:Michalovce_omapa9', 
      format: 'image/jpeg',
      tilesOrigin: "-5.625,-2.8125"
    }
  );

  hybrid = new OpenLayers.Layer.WMS(
    "Kombinovana mapa","http://leticia.portal.sk:8088/geoserver/gwc/service/wms",
    {
      layers: 'MichalovceHybrid', 
      format: 'image/jpeg',
      tilesOrigin: "-5.625,-2.8125"
    }
  );

  map.addLayers([vector,orto,hybrid,vectorLayer,markers]);
  
  // setup controls and initial zooms
  map.addControl(new OpenLayers.Control.PanZoomBar());
  map.addControl(new OpenLayers.Control.Navigation());
//  map.addControl(new OpenLayers.Control.ScaleLine());
//  map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));
//   var myLayerSwitcher = new OpenLayers.Control.LayerSwitcher();
//   map.addControl(myLayerSwitcher); 
//   myLayerSwitcher.maximizeControl();
//  map.setBaseLayer(orto);
  
//  map.addControl(new OpenLayers.Control.OverviewMap());
  map.addControl(new OpenLayers.Control.Attribution());
  map.setCenter(new OpenLayers.LonLat(0.5,1.4), 0);
            
  // support GetFeatureInfo
  map.events.register('click', map, function (e) {
   clicklonlat = map.getLonLatFromViewPortPx(e.xy);

    var mindistance="";
    var mindistanceId="";
    
    for(var i=0;i<objectsByKeyWordsStore.data.length;++i) {
      distance=Math.abs(clicklonlat.lon-objectsByKeyWordsStore.getAt(i).get('lon'))+Math.abs(clicklonlat.lat-objectsByKeyWordsStore.getAt(i).get('lat'));
      if(mindistance=="" || distance<mindistance ){
        mindistance=distance;
        mindistanceId=objectsByKeyWordsStore.getAt(i).get('id');
      }
    }
       
    if(mindistanceId!="" && mindistance<1){
      objectClickedInGrid=false;
      Ext.mainPage.dialogObjectInfo.loadObjectInfoStore(mindistanceId);
    }
      
  });
}   
