// JavaScript Document
dojo.require("esri.map");
dojo.require("dijits.overview.OverviewMap");
dojo.require("esri.tasks.locator");

dojo.require("esri.toolbars.navigation");
dojo.require("dijit.form.Button");
dojo.require("dijit.Toolbar");

var map, overviewMapDijit, tiledMapServiceLayer, CrimeMapServiceLayer, locator, addressLayer, queryLayer, varCrime, varMonth, varDay, varYear, varNumDays, geocodeme, matchscore, matchaddr;
var navToolbar,vCrimeLayerOn;

vCrimeLayerOn = false;
geocodeme = false;

var queryLayerWard = new esri.layers.GraphicsLayer();
var queryLayerPost = new esri.layers.GraphicsLayer();

var infoTemplate_post = new esri.InfoTemplate();
var infoTemplate_ward = new esri.InfoTemplate();

//ARCGIS SERVICE VARIABLES
var TileBaseMapPath = "http://annacw.annapolis.gov/ArcGIS/rest/services/maps/CrimeBaseMap/MapServer";
var LocatorPath = "http://annacw.annapolis.gov/ArcGIS/rest/services/locators/addr_locate_063009/GeocodeServer";
var QueryLayerPath = "http://annacw.annapolis.gov/ArcGIS/rest/services/maps/Crimes/MapServer/0";
var PostLayerPath = "http://annacw.annapolis.gov/ArcGIS/rest/services/maps/wardsandposts/MapServer/0";
var WardLayerPath = "http://annacw.annapolis.gov/ArcGIS/rest/services/maps/wardsandposts/MapServer/1";

//MAP SERVICE EXTENTS
var initialExtent = new esri.geometry.Extent(1447873.56001618, 474825.865848905, 1450282.41418285, 476731.24779335, new esri.SpatialReference({wkid:2248}));
var fullExtent = new esri.geometry.Extent(1441445.33200084, 465826.183530193, 1463349.6384003, 482585.786170188, new esri.SpatialReference({wkid:2248}));		
      	
function init() {	
	try {
		//configure map pan animation to be slower
		esriConfig.defaults.map.panDuration = 1000; //time in milliseconds; default panDuration:250
		esriConfig.defaults.map.panRate = 50; //refresh rate of zoom animation; default panRate:25
			
		map = new esri.Map("map", {extent: fullExtent});	
		
		tiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer(TileBaseMapPath);
		//CrimeMapServiceLayer = new esri.layers.ArcGISDynamicMapServiceLayer(CrimeLayerPath);
		
		dojo.connect(map,"onLayerAdd", loadOverview);
		map.addLayer(tiledMapServiceLayer);
		//map.addLayer(CrimeMapServiceLayer);
		
		dojo.connect(map,"onLoad", mapLoaded);
		
		//Set Geocoding Locator
		locator = new esri.tasks.Locator(LocatorPath);
		dojo.connect(locator, "onAddressToLocationsComplete", getResults);
		
		//Get Search Category
		var searchBy;
		searchBy = getURLParam('searchBy');
		//alert(searchBy);
		if (searchBy=='address') {
			var add = getURLParam('add');
			var adds = add.split(",");
			var address = {Street  : adds[0].replace(/\+/g, ' ') };
			locator.addressToLocations(address,["Loc_name"]);
			
		}
		if (searchBy=='post') {
			var postquery = getURLParam('Post');
			QueryPost(map,postquery);
		}
		if (searchBy=='ward') {
			var wardquery = getURLParam('Ward');
			QueryWard(map,wardquery);
		}
		
		// GET CRIME CATEGORY VALUE
		varCrime = getURLParam('crime');
		varCrime = varCrime.replace(/\+/, " ");
		varCrime = varCrime.replace(/\+/, " ");
		
		// GET CURRENT DATE
		GetCurrentDate();
		varNumDays = 30;
		
		
		//Set Dropdown to selected crime category
		setDropDown(varCrime);
		setQueryDropDown();
		setDateDropDowns(varMonth,varDay,varYear,varNumDays);
		
		//Add Toolbar
		navToolbar = new esri.toolbars.Navigation(map);
		
	} catch(e) {
		console.log(e);
	}

}

function mapLoaded() {
	try {
		//Query Crime Layer
		AddQueryLayer(map,varCrime,varMonth,varDay,varYear,varNumDays);
	} catch(e) {
		console.log(e);
	}
}
		
function loadOverview() {
	overviewMapDijit = new dijits.overview.OverviewMap({ 
		map: map,  
		width: 200,
		height: 150,
		attachTo: "bottom-right",
		opacity: 0.55
		}
	);
	overviewMapDijit.startup();
	dojo.style(dojo.byId("status"), "display", "none");
	//map.reorderLayer(tiledMapServiceLayer,2);
}

function getURLParam(strParamName){
	try {
	  var strReturn = "";
	  var strHref = window.location.href;
	  if ( strHref.indexOf("?") > -1 ){
		var strQueryString = strHref.substr(strHref.indexOf("?"));
		var aQueryString = strQueryString.split("&");
		for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
		  if (
			aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
			var aParam = aQueryString[iParam].split("=");
			strReturn = aParam[1];
			break;
		  }
		}
	  }
	  return unescape(strReturn);
	} catch(e) {
		console.log(e);
	}
}

function locate() {
	try {
		map.graphics.clear();
		var add2 = dojo.byId("address").value.split(",");
		//alert(add2[0]);
		var address2 = {
		  Street : add2[0]
		};
	
		locator.addressToLocations(address2,["Loc_name"]);
	} catch(e) {
		console.log(e);
	}
}

function query() {
	try {
		//REMOVE GRAPHICS
		queryLayer.clear();
		
		//QUERY CRIME LAYER
		varCrime = dojo.byId("crime").value;
		var myMonth = dojo.byId("fmonth").value;
		var myDay = dojo.byId("fday").value;
		var myYear = dojo.byId("fyear").value;
		var myNumDays = dojo.byId("fnumOfDays").value;
		
		AddQueryLayer(map,varCrime,myMonth,myDay,myYear,myNumDays);
		
		
	} catch(e) {
		console.log(e);
	}
}
	  
function query_post() {
	try {
		//REMOVE GRAPHICS
		//map.graphics.clear();
		queryLayerPost.clear();
		queryLayerWard.clear();
		
		//QUERY CRIME LAYER
		var mypost = dojo.byId("fpost").value;
		//QueryPost(map,mypost);
		
		dojo.connect(QueryPost(map,mypost),"onComplete",query());
		
	} catch(e) {
		console.log(e);
	}
}

function QueryPost(map,post) {
	try {
		//build query task
		var queryTaskPost = new esri.tasks.QueryTask(PostLayerPath);
			
		//build query filter
		var query_post = new esri.tasks.Query();
		query_post.returnGeometry = true;
		query_post.outFields = ["Post"];
		
		var queryString;
		//alert(ward);
		queryString = "Post = '" + post + "'";
		query_post.where = queryString;
		//alert(queryString);
		
		dojo.connect(queryTaskPost, "onComplete",fPostQuery); 
			
		queryTaskPost.execute(query_post);
	
					
	} catch(e) {
		console.log(e);
	}
}

function fPostQuery (featureSet) {
	try {

		map.addLayer(queryLayerPost);
		
		var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NONE, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color([255,0,0]), 2), new dojo.Color([255,255,0,0.25]));

		//var infoTemplate_ward = new esri.InfoTemplate(); ---> Define at top
		infoTemplate_post.setTitle("Post Number");
		infoTemplate_post.setContent( "${Post}");
	
		//Add query results to the graphics layer
		
		dojo.forEach(featureSet.features, function(feature) 
		{
			queryLayerPost.add(feature.setSymbol(symbol).setInfoTemplate(infoTemplate_post));	
			setTimeout(function() { map.setExtent(feature.geometry.getExtent()); }, 500); 
		});
		
		
	} catch(e) {
		console.log(e);
	}
}
	 
function query_ward() {
	try {
		//REMOVE GRAPHICS
		queryLayerWard.clear();
		queryLayerPost.clear();
		
		//QUERY CRIME LAYER
		var myward = dojo.byId("fward").value;
		//QueryPost(map,myward);
		
		dojo.connect(QueryWard(map,myward),"onComplete",query());
	} catch(e) {
		console.log(e);
	}
  }


function QueryWard(map,ward) {
	try {
		//build query task
		var WardExtent;
		var queryTaskWard = new esri.tasks.QueryTask(WardLayerPath);
		
		//map.addLayer(queryLayerWard);
		//map.reorderLayer(queryLayerWard,1);
		
		//build query filter
		var query_ward = new esri.tasks.Query();
		query_ward.returnGeometry = true;
		query_ward.outFields = ["Ward_Num"];
		
		var queryString;
		//alert(ward);
		queryString = "Ward_Num = '" + ward + "'";
		query_ward.where = queryString;
		//alert(queryString);
		
		dojo.connect(queryTaskWard, "onComplete",fWardQuery); 
			
		queryTaskWard.execute(query_ward);
	
					
	} catch(e) {
		console.log(e);
	}
}

function fWardQuery (featureSet) {
	try {
	
		map.addLayer(queryLayerWard);
		//map.reorderLayer(queryLayerWard,2);
	
		//var symbol = new esri.symbol.SimpleFillSymbol();
		//symbol.setColor(new dojo.Color([150,150,150,0.2]));
		var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NONE, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color([255,0,0]), 2), new dojo.Color([255,255,0,0.25]));

	
		//var infoTemplate_ward = new esri.InfoTemplate(); ---> Define at top
		infoTemplate_ward.setTitle("Ward Number");
		infoTemplate_ward.setContent( "${Ward_Num}");
	
		//Add query results to the graphics layer
		
		dojo.forEach(featureSet.features, function(feature) 
		{
			queryLayerWard.add(feature.setSymbol(symbol).setInfoTemplate(infoTemplate_ward));	
			setTimeout(function() { map.setExtent(feature.geometry.getExtent());  }, 100); 
		});
		
		
	} catch(e) {
		console.log(e);
	}
}

function AddQueryLayer(map,crime,vMonth,vDay,vYear,vNumDays) {
	try {
		//build query task
		//console.log(map.loaded);
		
		var queryTask = new esri.tasks.QueryTask(QueryLayerPath);
	
		//build query filter
		var query = new esri.tasks.Query();
		query.returnGeometry = true;
		query.outFields = ["Category","CALL_CODE_1","INCIDENT_NUM","STREETADDR","REPORTED_ON"];
		
		var inDate1, inDate2;
				
		inDate1 = vMonth + '/' + vDay + '/' + vYear;
		inDate2 = dateAdd("d",vNumDays,inDate1);
	
		var queryString;
		if (crime =="") {
			queryString = "(category like '%ASSAULT%' or category like '%BURGLARY%' or category like '%HOMICIDE%' or category like '%MOTOR VEHICLE%' or category like '%ROBBERY%' or category like '%THEFT%')";
		} else {
			queryString = "(category like '%" + crime + "%')";
		}
		//alert(queryString);
		queryString = queryString + " and REPORTED_ON between date '" + inDate2 + "' and date '" + inDate1 + "'";
		//alert(queryString);
		query.where = queryString;
		//Can listen for onComplete event to process results or can use the callback option in the queryTask.execute method.
		//alert(varCrime);
		dojo.connect(queryTask, "onComplete", DataQuery);
	
		queryTask.execute(query);
		
	} catch(e) {
		console.log(e);
	}
}

function DataQuery(featureSet) {  
	try{  
		queryLayer = new esri.layers.GraphicsLayer();
		map.addLayer(queryLayer);
		//map.reorderLayer(queryLayer,1);
		
		var infoTemplate = new esri.InfoTemplate("Crime Location","Category: ${Category}<br />Call Code: ${CALL_CODE_1}<br />Street Address: ${STREETADDR}<br />INCIDENT NUM: ${INCIDENT_NUM}<br />OCCURRED ON: ${REPORTED_ON}");
			
		// The symbol both crashes in Internet Explorer.  Because of this, it has been removed from the crime query.
		//var oldsymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0])), new dojo.Color([0,255,0,0.25]));
		var defaultSymbol;
		defaultSymbol = new esri.symbol.SimpleMarkerSymbol().setStyle(esri.symbol.SimpleMarkerSymbol.STYLE_NULL);;
		//defaultSymbol.setSize(8);
		
		 //create renderer
        var renderer = new esri.renderer.UniqueValueRenderer(defaultSymbol, "Category");

        //add symbol for each possible value
        renderer.addValue("ASSAULT", new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 8, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([42,162,184]), 1), new dojo.Color([42,162,184,1])));
        renderer.addValue("BURGLARY", new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 8, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([64,173,40]), 1), new dojo.Color([64,173,40,1])));
        renderer.addValue("HOMICIDE", new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 8, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 1), new dojo.Color([255,0,0,1])));
        renderer.addValue("MOTOR VEHICLE", new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 8, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([176,53,98]), 1), new dojo.Color([176,53,98,1]))); 
        renderer.addValue("ROBBERY", new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 8, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([196,79,43]), 1), new dojo.Color([196,79,43,1])));
        renderer.addValue("THEFT", new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 8, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([199,175,70]), 1), new dojo.Color([199,175,70,1])));
        queryLayer.setRenderer(renderer);

        dojo.forEach(featureSet.features, function(feature) {
          //alert("MADE IT HERE");
		  queryLayer.add(feature.setInfoTemplate(infoTemplate));
        });
		
		//if (varCrime == "") {
			//CrimeMapServiceLayer.show();
			//defaultSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0,0.25]), 1), new dojo.Color([255,255,255,0.5]));
		//}
		//if (varCrime == "ASSAULT") {
			//CrimeMapServiceLayer.hide();
			//assaultSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([42,162,184]), 1), new dojo.Color([42,162,184,0.5]));

		//}
		//if (varCrime == "BURGLARY") {
			//CrimeMapServiceLayer.hide();
			//burglarySymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([64,173,40]), 1), new dojo.Color([64,173,40,0.5]));
		//}
		//if (varCrime == "HOMICIDE") {
			//CrimeMapServiceLayer.hide();
			//homicideSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 1), new dojo.Color([255,0,0,0.5]));
		//}
		//if (varCrime == "MOTOR VEHICLE") {
			//CrimeMapServiceLayer.hide();
			//mvSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([176,53,98]), 1), new dojo.Color([176,53,98,0.5]));
		//}
		//if (varCrime == "ROBBERY") {
			//CrimeMapServiceLayer.hide();
			//robberySymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([196,79,43]), 1), new dojo.Color([196,79,43,0.5]));
		//}
		//if (varCrime == "THEFT") {
			//CrimeMapServiceLayer.hide();
			//theftSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([199,175,70]), 1), new dojo.Color([199,175,70,0.5]));
		//}
	
		//Add query results to the graphics layer
		//dojo.forEach(featureSet.features, function(feature) 
		//{
		//	queryLayer.add(feature.setSymbol(defaultSymbol).setInfoTemplate(infoTemplate));
		//});
	} catch (e) {
		console.log(e);		
	}
}

function getcrimepoints() {
	try {
		var currentmapextent = map.extent;
		findPointsInExtent(currentmapextent);
	} catch(e) {
		console.log(e);
	}
}
		
//find all points within map extent
function findPointsInExtent(extent) {
	try {
		var graphics = queryLayer.graphics;
		var results = [];	
		
		var graphic;
		for (var i=0, il=graphics.length; i<il; i++) {
		  graphic = graphics[i];
		  //if point is contained within extent, highlight it and add for display in results list
		  if (extent.contains(graphic.geometry)) {
			results.push("<p>");
			contentString = graphic.getContent();
			//Remove Headers from String
			contentString = contentString.replace(/\=/, "");
			contentString = contentString.replace(/Category:/, "");
			contentString = contentString.replace(/INCIDENT NUM:/, "");
			contentString = contentString.replace(/OCCURRED ON:/, "");
			contentString = contentString.replace(/Street Address:/, "");
			contentString = contentString.replace(/Call Code: /, "");
			contentString = contentString.replace(/\=/, "");
			
			//Remove Headers from String
			contentString2 = contentString.replace(/<br \/>/g, "</td><td><FONT FACE='arial' SIZE='-2'>");
			contentString3 = "<tr><td><FONT FACE='arial' SIZE='-2'>" + contentString2 + "</td></tr>";
			//results.push(i + '</td><td>');
			results.push(contentString3);
			results.push("</p>");
		  }
		  
		}
		//display number of points in extent
		//dojo.byId("inextent").innerHTML = results.length;
		//Create HTML sctring
		queryheaderString = "<TD bgcolor='99CCFF' align='center' colspan='9'><FONT FACE='arial' SIZE='-1'><B>Query Results</B></FONT></TD></TR><tr><th bgcolor='FFFFCC'><FONT FACE='Arial' SIZE='-2'><U>CRIME TYPE</U></FONT></a></th><th bgcolor='FFFFCC'><FONT FACE='Arial' SIZE='-2'><U>CALL CODE</U></FONT></a></th><th bgcolor='FFFFCC'><FONT FACE='Arial' SIZE='-2'><U>LOCATION</U></FONT></a></th><th bgcolor='FFFFCC'><FONT FACE='Arial' SIZE='-2'><U>INCIDENT NUMBER</U></FONT></a></th><th bgcolor='FFFFCC'><FONT FACE='Arial' SIZE='-2'><U>OCCURRENCE DATE</U></FONT></a></th></tr>";
		resultString = "<table border='1' cellspacing='0' cellpadding='2' width='720' nowrap bordercolor='969696'>" + queryheaderString + results.join("") + "</table>";
		
		//Load Results into PopUp Window
		OpenReport(resultString);
		
		//Load Results into iBox
		//iBox.show(resultString);
		
	} catch(e) {
		console.log(e);
	}
}
	
//Open Popup Report Window
function OpenReport(htmlstring){
	try {
		//varCrime = getURLParam('crime');
		//alert(varCrime);
		if (varCrime = " ") {
			varCrime = "All Crimes";
		  }
	
		//varMonth = myMonth;
		//varDay = myDay;
		//varYear = myYear;
		varDate = varMonth + "/" + varDay + "/" + varYear;
		
		my_window= window.open ("", "mywindow1","status=1,width=800,height=600,scrollbars=yes");
		htmlString_header = "<html><meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'><head><title>Details of Displayed Crimes</title></head><body bgcolor='white' text='Black' link='Blue' vlink='Gray' LEFTMARGIN=0 onload='window.focus()'><center><TABLE border='1' cellspacing='0' cellpadding='2' width='720' nowrap bordercolor='969696'><TR><TD align='center' bgcolor='99CCFF' colspan='7'><FONT FACE='arial' SIZE='-1'><B>Original Query</B></FONT></TD></TR><TD bgcolor='FFFFCC'><FONT FACE='arial' SIZE='-2'><DIV align='center'><U>Crime Type</U></DIV></FONT></TD><TD bgcolor='FFFFCC'><FONT FACE='arial' SIZE='-2'><DIV align='center'><U>Date</U></DIV></FONT></TD></TR><TR><TD bgcolor='FFFFCC'><FONT FACE='arial' SIZE='-2'><DIV align='center'><B>" + varCrime + "</B></DIV></FONT></TD><TD bgcolor='FFFFCC'><FONT FACE='arial' SIZE='-2'><DIV align='center'><B>" + varDate + "</B></DIV></FONT></TD></TR></TABLE>";
		htmlString_footer = "<FONT FACE='Arial' SIZE='-2'><BR><TABLE border='1' cellspacing='0' cellpadding='2' width='720' nowrap bordercolor='969696' bgcolor='ccca99'><TD bgcolor='FFFFCC'><FONT face='arial' size='-2'><DIV align='center'><U>Disclaimer</U><DIV><DIV align='center'>APD cannot give any guarantees as to the accuracy, completeness, timeliness, or correct sequencing of this information, which cannot be used for comparisons over time or for commercial purposes. APD is not responsible for any error, omission, or results obtained from this information.</FONT></DIV><BR></TD></TABLE></font></center><div align='center'></div></body></html>";
		my_window.document.write(htmlString_header + htmlstring + htmlString_footer); 
	} catch(e) {
		console.log(e);
	}		
}

// GET CURRENT DATE AND SET INITAL QUERY TO IT
function GetCurrentDate(){
	try {
		
		var currentDate = new Date();
		
		varMonth = dateFormat(currentDate,"m");
		varDay =  dateFormat(currentDate,"dd");
		varYear =  dateFormat(currentDate,"yyyy");
		//alert('Current Date is ' + currentDate + ', Current Month is ' + varMonth + ', Current Day is ' + varDay + ', Current Year is ' + varYear);
		
		
	} catch(dt) {
		console.log(dt);
	}
}

//FUNCTION TO GET VALUES FROM GEOCODE RESULT WINDOW
function locateMatch(addvalue,score) {
	geocodeme = true;
	matchscore = score;
	matchaddr = addvalue;
	//alert(geocodeme + " - " + matchscore + "-" + matchaddr);
	map.graphics.clear();
	var add = addvalue.split(",");
	var address = {Street : add[0]};
	locator.addressToLocations(address,["Loc_name"]);
}

//NEW GEOCODE FUNCTION
function getResults(candidates) {
	var candidate;	
	var symbol = new esri.symbol.SimpleMarkerSymbol();
	var infoTemplate = new esri.InfoTemplate("Location", "Address: ${address}<br />Score: ${score}<br />Source locator: ${locatorName}");
	
	symbol.setStyle(esri.symbol.SimpleMarkerSymbol.STYLE_DIAMOND);
	symbol.setColor(new dojo.Color([255,0,0,0.75]));
	
	var allresults = "<div class=content><p><font face='Arial' size='1'><strong>Address Search Results</strong></font><hr><font face='Arial, Helvetica, sans-serif' size='-1'>";
	var allresults_single = "";
	var allresultcount = 0;
	
	for (var i=0, il=candidates.length; i<il; i++) {
		candidate = candidates[i];
			if (candidate.score > 30) {
				var attributes = { address: candidate.address, score:candidate.score, locatorName:candidate.attributes.Loc_name };
				allresults = allresults + "<input type='radio' name='group1' value='" + attributes.address + "' onclick='locateMatch(this.value," + candidate.score + ");iBox.hide;' > " + attributes.address + " - <i>Match Score: " + candidate.score + "</i><br>";
				allresults_single = attributes.address;
				allresultcount = allresultcount + 1;
			}  
		}
	
	if ( geocodeme==false) {
			if (allresultcount == 0) {
				allresults = allresults + "</font><font face='Arial' size='-1'>Address Not Found. Please Try Again.</font></p></div>"
				iBox.show(allresults);
			} else {
				allresults = allresults + "</font></p></div>"
				iBox.show(allresults);
			}
	} else {
		var points =  new esri.geometry.Multipoint(map.spatialReference);
		//var compare2 =  matchaddr + ":" + matchscore;
		var compare2 =  matchaddr;
		for (var i=0, il=candidates.length; i<il; i++) {
			candidate = candidates[i];
			//alert(candidate.score);
			if (candidate.score > 70) {
				//var compare1 =  candidate.address + ":" + candidate.score;
				var compare1 =  candidate.address;
				//alert(compare1 + " - " + compare2);
				if (compare1 == compare2) {
					var attributes = { address: candidate.address, score:candidate.score, locatorName:candidate.attributes.Loc_name };
					var graphic = new esri.Graphic(candidate.location, symbol, attributes, infoTemplate);
					map.graphics.add(graphic);
					map.graphics.add(new esri.Graphic(candidate.location, new esri.symbol.TextSymbol(attributes.address).setOffset(0, 8)));
					points.addPoint(candidate.location);
				}
			}
		}
		map.setExtent(points.getExtent().expand(3));
		//setTimeout(function() { map.centerAndZoom(points.getExtent().getCenter(), 4); }, 100);
		geocodeme = false;
	}  

}
	
try {
	dojo.addOnLoad(init);
} catch(e) {
	console.log(e);
}
