Apparently my HTML markup is over the 10k character limit for posts so I'm going to break it out over a couple posts in this thread. The initMap function I call within dojo.Ready is located in my mapFunctions.js file. That's also where all my dojo.require statements are. Here's that stuff://=============================================================================
// Global declarations and dependencies
//=============================================================================
dojo.require("esri.graphic");
dojo.require("esri.map");
dojo.require("esri.dijit.BasemapGallery");
dojo.require("esri.dijit.InfoWindow");
dojo.require("esri.dijit.Popup");
dojo.require("esri.dijit.Scalebar");
dojo.require("esri.layers.FeatureLayer");
dojo.require("esri.layers.KMLLayer");
dojo.require("esri.tasks.query");
dojo.require("dijit.dijit"); // optimize: load dijit layer
dojo.require("dijit.form.Button");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.Menu");
dojo.require("dojo.date.locale");
dojo.require("dojo.parser");
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
var rdClosuresShown = 1;
var trafficCamShown = 0;
var streamGageShown = 0;
var snowRoutesShown = 0;
var iceRemovalShown = 0;
var wsdotAlertsShown = 0;
var rdClosureWdgt;
var trafficCamWdgt;
var snowRteWdgt;
var icingRteWdgt;
var gageWdgt;
var wsdotWdgt;
var map;
var mapLayers = [];
var popup, template;
var wsdotTemplate;
var theBasemap, theFeatureLayer, theCountiesLayer;
var basemapGallery;
var theSnowRemovalLayer, theWsdotCamLayer, theWsdotAlertLayer;
var initExtent;
//Update today's date on the webpage
var dToday = new Date().toLocaleDateString();
var SERVERPATH = "http://...";
//=============================================================================
// Main routine for initializing the Map
//=============================================================================
function initMap() {
.
.
.etc
}