var map, vlayer, rlayer, qlayer, glayer, server;
var areaterr, areacons, clvcat;
			
function init(){
   server = "http://" + location.host + "/";

	map = new OpenLayers.Map('map',{ 
   	maxExtent: new OpenLayers.Bounds(550000, 2523000, 690000, 2625000), 
	resolutions: [0.052734375, 0.10546875, 0.2109375, 0.421875, 0.84375, 1.6875, 3.375, 6.75, 12.5, 25, 50, 100, 200],
   	projection:"EPSG:32612",
   	numZoomLevels: 13,
   	units: "m"
	});

   map.addControl(new OpenLayers.Control.PanZoomBar());
   map.addControl(new OpenLayers.Control.PanZoom());
   map.addControl(new OpenLayers.Control.MouseDefaults());
   map.addControl(new OpenLayers.Control.LayerSwitcher());
   //map.addControl(new OpenLayers.Control.MousePosition());
   map.addControl(new OpenLayers.Control.Scale());
   
   var satlayer = new OpenLayers.Layer.WMS("Fotografía Aérea", 
      server + "tilecache/tilecache.py", { 'layers' : 'loscabos',
      'format' : 'image/jpeg', 'displayOutsideMaxExtent' : false});
   map.addLayer(satlayer);

   clayer = new OpenLayers.Layer.MapServer("Construcciones",
     server + "cgi-bin/mapserv.fcgi", {
       map: '/home/juribe/webcatastro/catastro.map',
       layers: 'c',
       map_imagetype: 'png'}, {singleTile: true, isBaseLayer: false});
   map.addLayer(clayer);

   player = new OpenLayers.Layer.MapServer("Predios",
     server + "cgi-bin/mapserv.fcgi", {
       map: '/home/juribe/webcatastro/catastro.map',
       layers: 'p',
       map_imagetype: 'png'}, {singleTile: true, isBaseLayer: false});
   map.addLayer(player);

   mlayer = new OpenLayers.Layer.MapServer("Manzanas",
     server + "cgi-bin/mapserv.fcgi", {
       map: '/home/juribe/webcatastro/catastro.map',
       layers: 'm',
       map_imagetype: 'png'}, {singleTile: true, isBaseLayer: false});
   map.addLayer(mlayer);

   vlayer = new OpenLayers.Layer.MapServer("Calles",
     server + "cgi-bin/mapserv.fcgi", {
       map: '/home/juribe/webcatastro/catastro.map',
       layers: 'v',
       map_imagetype: 'png'}, {singleTile: true, isBaseLayer: false});
   map.addLayer(vlayer);
   
   collayer = new OpenLayers.Layer.MapServer("Colonias",
   	  server + "cgi-bin/mapserv.fcgi", {
	  	map: '/home/juribe/webcatastro/catastro.map',
	  	layers: 'col',
		map_imagetype: 'png'}, {singleTile: true, isBaseLayer:false});
	map.addLayer(collayer);
            
   if (!map.getCenter()) map.zoomToMaxExtent();
}

function buscaPredio(){
  clvcat = $('clvcatbox').value;
  
  var url = server + '/cgi-bin/mapserv.fcgi?' +
      'map=/home/juribe/webcatastro/catastro.map&' +
      'SERVICE=wfs&VERSION=1.0.0&REQUEST=getfeature&TYPENAME=p&' +
      'FILTER=<Filter>' +
         '<PropertyIsEqualTo>' +
              '<PropertyName>clvcat</PropertyName>' +
              '<Literal>' + clvcat + '</Literal>' +
          '</PropertyIsEqualTo>' +
       '</Filter>';
             
  OpenLayers.loadURL(url, '', this, loc_predio);
	  
}

function loc_predio(req) {
  g =  new OpenLayers.Format.GML();
  var features = g.read(req.responseText);
  
  if (features == undefined)
  { 
  		alert("Error");
  		return;
  	}

  var bounds = features[0].geometry.getBounds();
  areaterr = features[0].geometry.getArea();
  
  map.zoomToExtent(bounds);

  var url2 = server + '/cgi-bin/mapserv.fcgi?' +
      'map=/home/juribe/webcatastro/catastro.map&' +
      'SERVICE=wfs&VERSION=1.0.0&REQUEST=getfeature&TYPENAME=c&' +
      'FILTER=<Filter>' +
         '<PropertyIsEqualTo>' +
              '<PropertyName>clvcat</PropertyName>' +
              '<Literal>' + clvcat + '</Literal>' +
          '</PropertyIsEqualTo>' +
       '</Filter>';

  OpenLayers.loadURL(url2, '', this, loc_constr);
	  
}

function loc_constr(req) {
  g =  new OpenLayers.Format.GML();
  var features = g.read(req.responseText);
  
  if (features == undefined)
  { 
  		areacons = 0;
                OpenLayers.Util.getElement('datospredio').innerHTML = 
                '<b>SUP TERRENO</b> = ' + areaterr.toFixed(2) + 'm2<br/>' +
                '<b>SUP CONSTRU</b> = ' + areacons.toFixed(2) + 'm2<br/>';
  		return;
  	}

 areacons = 0;
 var i = 0;
 var nbloques = features.length;
  for ( i = 0; i < nbloques; i++) {
   a1 = features[i].geometry.getArea();
   p1 = features[i].attributes.PISOS;
   ac = a1 * p1;
   areacons = areacons + ac
  }

  OpenLayers.Util.getElement('datospredio').innerHTML = 
       '<b>SUP TERRENO</b> = ' + areaterr.toFixed(2) + 'm2<br/>' +
       '<b>SUP CONSTRU</b> = ' + areacons.toFixed(2) + 'm2<br/>';
}

