// JavaScript Document

	  var map;
	  var dynamicMapServiceLayer, claimslay;
	  var layerresult
	  var tiledMap, tiledImage
	  var identifyTask, claimidentifyTask
	  var graphic
	  var gsvc
	  var queryTask
	  var thingy
	  
	  function ispvalid(results, messages) {
      //alert(results[0].value);
	  if (results[0].value == 0) {
	   init();
	  }
	  else if (results[0].value == 1) {
	  document.getElementById("chooseclaim").style.display = 'none';
	  document.getElementById("onclaims").style.display = 'none';
	  document.getElementById("topbar").style.display = 'none';
	  startup();
	  }
	  else if (results[0].value == 2) {
	  startup();
	  }
	  }
	  
	  function checkPw(dialogFields) {
	  pg = new esri.tasks.Geoprocessor("http://131.95.152.61/ArcGIS/rest/services/ggeocode/GPServer/pwrd");
	  var params = {password:dialogFields.pw};
	  pg.execute(params, ispvalid);
	  }
	  
      function init() {
	  	 var wleg = document.getElementById('wlegend');
	 	wleg.style.display = 'none';
	 dijit.byId('dialog1').show();
		}
		
		function startup() {
		
        var startExtent = new esri.geometry.Extent(-97, 27, -87, 33, new esri.SpatialReference({wkid:4326}));

        //create map
        map = new esri.Map("right", {extent:startExtent});

	 	esriConfig.defaults.map.slider = { left:"10px", top:"10px", width:'150px', height:null };
		esriConfig.defaults.map.sliderLabel = null;
        tiledMap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer");
        map.addLayer(tiledMap);
		
		tiledImage = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer");
        map.addLayer(tiledImage);
		tiledImage.hide();
		
		//var tiledMapServiceLayer2 = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/CSP_Imagery_World_2D/MapServer");
       // map.addLayer(tiledMapServiceLayer2);
	   
	    //Takes a URL to a non cached map service.
        dynamicMapServiceLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://131.95.152.61/ArcGIS/rest/services/Hurricanes/IKE_GUSTAV/MapServer");
		dynamicMapServiceLayer.setOpacity(0.8);
        map.addLayer(dynamicMapServiceLayer);
		
			    //Takes a URL to a non cached map service.
        claimslay = new esri.layers.ArcGISDynamicMapServiceLayer("http://131.95.152.61/ArcGIS/rest/services/Hurricanes/claims/MapServer");
        map.addLayer(claimslay);
		claimslay.hide();
		
	   var ol = new esri.symbol.SimpleLineSymbol();
       var symbol = new esri.symbol.SimpleMarkerSymbol('STYLE_CIRCLE', 15, ol, new dojo.Color([255,20,0,0.9])) //.setStyle(esri.symbol.SimpleMarkerSymbol.STYLE_DIAMOND);
	   var inpp = new esri.geometry.Point(-95, 30,  new esri.SpatialReference({wkid:4326}))
       graphic = new esri.Graphic(inpp, symbol);
	   
	   graphic.setAttributes({"CLAIM": "","JOBID": "","NAME": "NAME","COMMENT": "","STREET_ADD": "","CITY": "","STATE": "","ZIP": "","WIND": "", "IKEFLOOD": ""})
	
		dojo.connect(map, "onClick", doIdentify);
		dojo.connect(map.infoWindow, "onHide", clearit);

        identifyTask = new esri.tasks.IdentifyTask("http://131.95.152.61/ArcGIS/rest/services/Hurricanes/stats/MapServer");
		claimidentifyTask = new esri.tasks.IdentifyTask("http://131.95.152.61/ArcGIS/rest/services/Hurricanes/claims/MapServer");
	
	    find = new esri.tasks.FindTask("http://131.95.152.61/ArcGIS/rest/services/Hurricanes/claims/MapServer");
        params = new esri.tasks.FindParameters();
        params.layerIds = [0];
        params.searchFields = ["STATE"];	
		params.searchText = "LA";
        find.execute(params, showResults);
		
	    resizemap();
      }

      dojo.addOnLoad(init);
	  
	  function clearit() {
	   map.graphics.clear();
	  }
	  

function idclaim(results) {
        var result, attribs;
		result = results[0];
        attribs = result.feature.attributes;
		graphic.attributes.CLAIM = attribs.CLAIM;
		graphic.attributes.NAME = attribs.NAME;
		graphic.attributes.COMMENT = attribs.COMMENT;
		graphic.attributes.STREET_ADD = attribs.STREET_ADD;
		graphic.attributes.CITY = attribs.CITY;
		graphic.attributes.STATE = attribs.STATE;
		graphic.attributes.ZIP = attribs.ZIP;
		graphic.attributes.JOBID = attribs.JOBID;
		
		//ajaxFunction(attribs.STAN_ADDR);
		var cp = new esri.geometry.Point(attribs.X, attribs.Y,  new esri.SpatialReference({wkid:4326}))
        //alert(attribs.X + " " + attribs.Y);
		mapp(cp);
		
	
          //s.push("<tr><td>" + attribs.STATE_NAME + "</td><td>" + attribs.STATE_FIPS + "</td><td>" + attribs.POP1990 + "</td><td>" + attribs.POP1999 + "</td></tr>")
        //s.push("</tbody></table>");
        //dojo.byId("tbl").innerHTML = s.join("");
      }

function showResults(results) {
		document.getElementById('claimlist').options[0]=new Option("", "", false, false)
        var result, attribs;
        for (var i=0, il=results.length; i<il; i++) {
          result = results[i];
          attribs = result.feature.attributes;
		  document.getElementById('claimlist').options[i+ 1]=new Option(attribs.CLAIM + ", " + attribs.NAME, attribs.CLAIM, false, false)
          //s.push("<tr><td>" + attribs.STATE_NAME + "</td><td>" + attribs.STATE_FIPS + "</td><td>" + attribs.POP1990 + "</td><td>" + attribs.POP1999 + "</td></tr>");
        }
        //s.push("</tbody></table>");
        //dojo.byId("tbl").innerHTML = s.join("");
      }

function idtheclaim(idResults, evt) {
	if (idResults.length == 0) {
		plainmapclick(evt);
	} else {
		idclaim(idResults);
	}
}


     function doIdentify(evt) {
        //map.graphics.clear();
		
		if (claimslay.visible == true) {
			//alert('claimson');
		 var identifyParams = new esri.tasks.IdentifyParameters();
        identifyParams.tolerance = 3;
        identifyParams.returnGeometry = true;
        identifyParams.layerIds = [0];
        identifyParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_ALL;
		identifyParams.spatialReference = new esri.SpatialReference({wkid:4326})
        identifyParams.geometry = evt.mapPoint;
        identifyParams.mapExtent = map.extent;
		identifyParams.height = map.height;
		identifyParams.width = map.width;
		identifyParams.dpi = 96;
        claimidentifyTask.execute(identifyParams, function(idResults) { idtheclaim(idResults, evt.mapPoint); });
		
		} else {
		plainmapclick(evt.mapPoint);
	  }
      }  
	  
	  function plainmapclick(mypt) {
		graphic.setAttributes({"CLAIM": "","JOBID": "","NAME": "NAME","COMMENT": "","STREET_ADD": "","CITY": "","STATE": "","ZIP": "","WIND": "", "IKEFLOOD": ""})
	  	graphic.attributes.CLAIM = "USER CLICK ";
		graphic.attributes.NAME = "Point COORD:";
		graphic.attributes.STREET_ADD = "LAT: " + mypt.y + "<br>" + "LONG: " + mypt.x;
		mapp(mypt);  
	  }
	  
	   function addToMap(idResults, evt) {
	   //alert(idResults.length);
	   graphic.attributes.WIND = ''
	   windout = '';
	   wet = 0;
	   wet2 = 0;
	   var inval = 4;
	   waterout = '<br><br>No Flooding Reported or Outside of Study';
	   waterout2 = '';
        for (var i=0, il=idResults.length; i<il; i++) {
          var idResult = idResults[i];
			//alert('feature ' + i);
		  var featureAttributes = idResult.feature.attributes;
		  //layerId
		  //alert(pval);
		  //alert(idResult.layerId);
		  
		  if (idResult.layerId == 0) {
		  pval = featureAttributes["Pixel value"];
		  pt = pval.split('.');
		  pval = pt[0];
		   windout = "<br>IKE: " + pval;
		   //alert(pval);
		  }
		  
		  if (idResult.layerId == 1) {
		  pval = featureAttributes["Pixel value"];
		  pt = pval.split('.');
		  pval = pt[0];
		  windout = windout + "<br>GUSTAV: " + pval;
		  //alert(pval);
		  }
		 
		  if (idResult.layerId == 2) {
		   pval = featureAttributes["Pixel value"];
			if (pval == 1) {
				//alert(wet);
			   wet = 1;
			   //alert(wet);
			}
		  }	  
		  
		  if (idResult.layerId == 3) {
		  if (wet == 1) {
		   pval = featureAttributes["Pixel value"];
		   pval = pval * 3.2808;
		   pmin = pval - 1.7;
		   if (pmin < 0) {
			pmin = 0;   
		   }
		   pmax = pval + 1.4;
		   waterout = "<br><br>Water Level Above Ground:<br>" + Math.round(pmin) + " to " + Math.round(pmax) + " feet";
		  } else {
			waterout = '<br><br>No Flooding Reported or Outside of Study';  
		  }
		  }
		  
		  if (idResult.layerId == 5) {
		  if ((wet == 1) || (wet2 == 1)) {
		   pval = featureAttributes["Pixel value"];
		   pval = pval * 3.2808;
		   pmin = pval - 1.7;
		   if (pmin < 0) {
			pmin = 0;   
		   }
		   pmax = pval + 1.4;
		   waterout2 = "<br><br>Above Sea Level:<br>" + Math.round(pmin) + " to " + Math.round(pmax) + " feet";
		  } else {
			waterout2 = '';  
		  }
		  }
		   //alert(graphic.attributes.WIND);
		  //alert(windout);
          //for (att in featureAttributes) {
          //  alert(featureAttributes[att]);
		  //}
		 
		 if (idResult.layerId == 4) {
		   pval = featureAttributes["Pixel value"];
			if (pval == 1) {
				//alert(wet);
			   wet2 = 1;
			   //alert(wet2);
			}
		  }	 
		  
		 if (idResult.layerId == 6) {
			 //alert(wet2);
	      if (wet2 == 1) {
		   pval = featureAttributes["Pixel value"];
		   pval = pval * 3.2808;
		   pmin = pval - 1.7;
		   if (pmin < 0) {
			pmin = 0;   
		   }
		   pmax = pval + 1.4;
		   //alert(pval);
		   waterout = "<br><br>Water Level Above Ground:<br>" + Math.round(pmin) + " to " + Math.round(pmax) + " feet";
		  } else {
			waterout = '<br><br>No Flooding Reported or Outside of Study';  
		  }
		  }
		  
        }
		graphic.attributes.WIND = graphic.attributes.WIND + windout + waterout + waterout2;
		
	    var title = graphic.attributes.CLAIM; //+ "<br>" +  graphic.attributes.NAME;  
		var content = "<div style='padding-top:7px'> <b>" + graphic.attributes.NAME + "</b><br>" + graphic.attributes.STREET_ADD + "</div>";
		
		if (graphic.attributes.CITY != "") {
		content = content + graphic.attributes.CITY + ", " + graphic.attributes.STATE + " " + graphic.attributes.ZIP;
		}
		
		if (graphic.attributes.COMMENT != "") {
		content = content + "<br>JobID: " + graphic.attributes.JOBID;
		}
		
		if (graphic.attributes.WIND != "") {
		content = content + "<br><br>" + "Max Sustained Winds (MPH):" + graphic.attributes.WIND;
		}
		
        map.infoWindow.setTitle(title);
        map.infoWindow.setContent(content);
      }
   
	
	function resizemap() {
		var mapdom = document.getElementById('right');
		var sidedom = document.getElementById('left');
		
	//map.graphics.clear();
		//map.infoWindow.close();
		//var bgdom = document.getElementById('bgpane');
		
	var winWidth, winHeight, d=document;
if (typeof window.innerWidth!='undefined') {
 winWidth = window.innerWidth;
 winHeight = window.innerHeight;
} else {
 if (d.documentElement && 
  typeof d.documentElement.clientWidth!='undefined' && 
   d.documentElement.clientWidth!==0) {
  winWidth = d.documentElement.clientWidth;
  winHeight = d.documentElement.clientHeight;
 } else {
  if (d.body && 
   typeof d.body.clientWidth!='undefined') {
   winWidth = d.body.clientWidth;
   winHeight = d.body.clientHeight;
  }
 }
}

	var hi = winHeight - 135;
	var hi2 = winHeight - 135;
	//alert(hi);
	mapdom.style.height = hi + 'px';
	//sidedom.style.height = hi + 'px';
	//bgdom.style.height = hi2 + 'px';
	
	
	map.reposition()	
    map.resize()
}		
			
  function toggleclaims() {
  var claimch = document.getElementById('claimtog');
  if (claimch.checked == true) {
    claimslay.show();
  }
  else {
   claimslay.hide();
  }
  }
  			
   function changemap() {
	var wleg = document.getElementById('wlegend');
	wleg.style.display = 'none';
   	var ikewind = document.getElementById('IKEWIND');

	var ikeSurge = document.getElementById('IKESURGE');
	var gwind = document.getElementById('GWIND');
	var sa = document.getElementById('SA');
	
	var a = [];
	
	if (ikewind.checked == true) {
	a.push(0);
	wleg.style.display = '';
	}
	
	if (ikeSurge.checked == true) {
	a.push(2);
	a.push(3);
	}
	
	if (gwind.checked == true) {
	a.push(1);
	wleg.style.display = '';
	}
	
    if (sa.checked == true) {
	a.push(4);
	//wleg.style.display = '';
	}
	
	dynamicMapServiceLayer.setVisibleLayers(a);

   }
   
   
      function changebg() {
   	var inval = document.getElementById('imagebg');
	
	if (inval.checked == true) {
	  tiledImage.show();
	  tiledMap.hide();
	} else {
		  tiledImage.hide();
	  tiledMap.show();
	}

   }
   
 
function foundadd(results, messages) {
	pt = eval('(' + results[0].value + ')');
      try {
	  	var inx = pt.Placemark[0].Point.coordinates[0];
	  	var iny = pt.Placemark[0].Point.coordinates[1];
	  	var inp1 = new esri.geometry.Point(inx, iny,  new esri.SpatialReference({wkid:4326}))
	  	mapp(inp1);
	  }
	  catch(err){
	  	map.graphics.clear();
	  	map.infoWindow.hide();
	  	//alert("Specified Address Not Found");
	  	dijit.byId('noadd').show();
	  }
}
	
   
function findadd() {
var tb = document.getElementById('addtext');

if (tb.value == '') {
alert('Please Enter an Address');
} else {
graphic.setAttributes({"CLAIM": "","JOBID": "","NAME": "NAME","COMMENT": "","STREET_ADD": "","CITY": "","STATE": "","ZIP": "","WIND": "", "IKEFLOOD": ""})
graphic.attributes.CLAIM = "USER ADDRESS";
graphic.attributes.NAME = "GEO-CODED Address:";
graphic.attributes.STREET_ADD = tb.value;

pg = new esri.tasks.Geoprocessor("http://131.95.152.61/ArcGIS/rest/services/ggeocode/GPServer/FindSingleAddress");
var params = {Address:tb.value};
pg.execute(params,foundadd);
//ajaxFunction(tb.value);
}

}
   
function mapclaim() {
var intt = document.getElementById('claimlist').value;
if (intt != '') {
	finder = new esri.tasks.FindTask("http://131.95.152.61/ArcGIS/rest/services/Hurricanes/claims/MapServer");
    params = new esri.tasks.FindParameters();
    params.layerIds = [0];
    params.searchFields = ["CLAIM"];	
    params.searchText = intt;
    finder.execute(params, idclaim);
	//ajaxFunction(intt)
}
}
 
function clearlist() {
var intp = document.getElementById('claimlist');
intp.value = '';
} 
   
function mapp(inp) {

	  //minx = inp.x - 0.5;
	  //maxx = inp.x + 0.5;
	  //miny = inp.y - 0.5;
	  //maxy = inp.y + 0.5;
	  //var newex = new esri.geometry.Extent(minx, miny, maxx, maxy, new esri.SpatialReference({wkid:4326}) );
	  //map.setExtent(newex);
	  map.centerAt(inp);
	  //map.setLevel(8);
 
 		var identifyParams = new esri.tasks.IdentifyParameters();
        identifyParams.tolerance = 3;
        identifyParams.returnGeometry = false;
        identifyParams.layerIds = [0,1,2,3,4,5,6]
        identifyParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_ALL;
		identifyParams.spatialReference = new esri.SpatialReference({wkid:4326})
        identifyParams.geometry = inp;
        identifyParams.mapExtent = map.extent;
		identifyParams.height = map.height;
		identifyParams.width = map.width;
		identifyParams.dpi = 96;
        identifyTask.execute(identifyParams, function(idResults) { addToMap(idResults, inp); });

	  map.graphics.clear();
	  
	  graphic.setGeometry(inp);
	  
	  map.graphics.add(graphic);
      //var outSR = new esri.SpatialReference({ wkid: 4326});
	  

	  	var screenp = map.toScreen(inp);
        //map.infoWindow.show(inp.screenPoint,map.getInfoWindowAnchor(inp.screenPoint));
		map.infoWindow.show(screenp,map.getInfoWindowAnchor(screenp));
		map.infoWindow.resize(300, 250);
	  

	  }
   
   