 /*
	-------------------------------  		
	 	 Portal Settings
	-------------------------------  		 	    
*/   

  

// Make Center
var centerLat = 37.801104;
var centerLon = -122.486572;

// Zoomed In Center
var centerLatZoom = 36.963060;
var centerLonZoom = -121.966438;


// Starting Zoom Level
var startZoom = 9;

// Max Zoom Level
var maxZoomLevel = 14;

// Min Zoom Level
var minZoomLevel = 9;

// Restrict pan? 
var panRestrict = true;

// Active Tracker
var activateTracker = false;

// North Boundary
var northBound = 38.899157;

// East Boundary
var eastBound = -120.483366;

// South Boundary
var southBound = 36.571558 ;

// West Boundary
var westBound = -124.761494;


// North Boundary
var northBound2 = 37.052375;

// East Boundary
var eastBound2 = -121.681931;

// South Boundary
var southBound2 = 36.784662 ;

// West Boundary
var westBound2 = -122.126493;


// Document root
var cakeRoot = '/';

// Tray close delay
var displayTrayCloseDelay = 16000;

// Tray open duration
var trayOpenDuration = 1000;

// Zoom/Pan Out When Adding Markers
var zoomPanOutWhenAddingMarkers = true;

// Default location to show
var showingLocation = "LA";


// Missing Tile Error Message
var missingTileErrorMessage = "<div>Cartifact doesn't have any <br/> detail in this area.  <br /></div>";

// Missing Tile Error Message
var missingTileErrorMessageLens = "<div>The current lens selection is not available in this location.</div>";

// Lens Tool maginification level and quadrant arrays
var lensMagLevel = [];
var lensQuadrant = [];

// Custom maps
var customMapDirectory = [];
var customMapFormat = [];

// Lens Tool quadrant map types
var lensQuadrantMapType = [];

// Lens Tool mag level zoom depth
var lensZoomDepth = [];

var nyMapDirectory;

// Set the actual values here	
function setLensToolConfig(){
	
	
}

// Map Background color
var mapBackgroundColor = '#FFFFFF';

// Drag Zoom box style
var boxStyle = {
	border: '1px solid #204560'
}	

// Enable Drag Zoom ?
var enableDragZoom = false;

// Check for IE
var is_ie/*@cc_on = {
  // quirksmode : (document.compatMode=="BackCompat"),
  version : parseFloat(navigator.appVersion.match(/MSIE (.+?);/)[1])
}@*/;

function isIE(){  return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);}
/*
	-------------------------------  		
		 	Libraries
	-------------------------------  		 	    
*/   

// Load google APIs
google.load('maps', '2');
google.load('search', '1',{"nocss" : true});

// Require Dojo Animation Library
dojo.require("dojo.fx");
dojo.require("dojo.dnd.move");

/*
	-------------------------------  		
			Portal Code
	-------------------------------  		 	    
*/   

// Loads all code after DOM has loaded
dojo.addOnLoad(function(){ 


	// Create new Google Map object
    var map = new google.maps.Map2(document.getElementById("google_map"),{backgroundColor: mapBackgroundColor });

	
	// Create xml marker data object
	var mapXmlData;

	// Create variables for Local Search
    var localSearch;
    var gSelectedResults = [];
    var localSearchCurrentResults = [];
    var localSearchForm;
    var localSearchIcon = null;

  	/*
  		-------------------------------  		
  		 	Google Map Bounds Function
  		-------------------------------  		 	    
  	*/   

	if (panRestrict == true){

		var allowedBounds;
			  	
	  	function setMapBounds(zoom_level){
	  	
	
			if (zoom_level == 1){
			// North East bound point
			var mapBoundNE = new google.maps.LatLng(northBound,eastBound);
	
			// South West bound point
			var mapBoundSW = new google.maps.LatLng(southBound,westBound);
			}else{
			// North East bound point
			var mapBoundNE = new google.maps.LatLng(northBound2,eastBound2);
	
			// South West bound point
			var mapBoundSW = new google.maps.LatLng(southBound2,westBound2);
			
			
			}
	
			// Get map bounds
			var mapBounds = map.getBounds();
			
			// Get map size and aspect ratio
			var mapSize = map.getSize();
			var mapAspectRatio = mapSize.width/mapSize.height;
			var invertedMapAspectRatio = mapSize.height/mapSize.width;
	
			// Calculate distance from edge of screen to center of map
			var halfDiagonalDistance = mapBounds.getNorthEast().distanceFrom(mapBounds.getSouthWest()) / 2;
	
			// Scaling constant
			var scalingConstant = 28;
			
			var pi = Math.PI;
	
			// Move NE SW by halfDiagonalDistance 		
			var mapBoundNENewLat = mapBoundNE.lat()+(((1/3600)*halfDiagonalDistance*invertedMapAspectRatio/(scalingConstant))*Math.cos(-(225*(pi/180)))); 
			var mapBoundNENewLon = mapBoundNE.lng()+(((1/3600)*halfDiagonalDistance*mapAspectRatio/(scalingConstant))*-Math.sin(-(225*(pi/180)))); 
			
			// Move SW NE by halfDiagonalDistance
			var mapBoundSWNewLat = mapBoundSW.lat()+(((1/3600)*halfDiagonalDistance*invertedMapAspectRatio/(scalingConstant))*Math.cos(-(45*(pi/180)))); 
			var mapBoundSWNewLon = mapBoundSW.lng()+(((1/3600)*halfDiagonalDistance*mapAspectRatio/(scalingConstant))*-Math.sin(-(45*(pi/180)))); 
				
	
			// Set new NE bound point
			var mapBoundNENew = new google.maps.LatLng(mapBoundNENewLat,mapBoundNENewLon);
			
			// Set new SW bound point
			var mapBoundSWNew = new google.maps.LatLng(mapBoundSWNewLat,mapBoundSWNewLon);
			
	
			// Set Map Bounds
			allowedBounds = new google.maps.LatLngBounds(mapBoundSWNew,mapBoundNENew);
			
		}
	
	}

  	/*
  		-------------------------------  		
  		 	Google Map Function
  		-------------------------------  		 	    
  	*/   
	
	// Create dtlaMap
	var dtlaMap = '';
	
		// Get tile URL from coordinate		    	    
    var dtlaTiles = function (a,b) {
		var f = cakeRoot + "img/tiles/" + TileToQuadKey(a.x,a.y,b) + ".gif";
		return f;
	}

	
	var dtlaLayer = new Array();

	
	// Load google map function
	function loadGoogleMap(){
		if (google.maps.BrowserIsCompatible()){
		
			

	
			// Define attributes for custom tile layer
			dtlaLayer[0] = new google.maps.TileLayer();
			dtlaLayer[0].getTileUrl = dtlaTiles;

			// Create cutom tile layer object for custom tiles
	        dtlaMap = new google.maps.MapType(dtlaLayer,G_SATELLITE_MAP.getProjection(),'Cartifact Map',{maxResolution:maxZoomLevel, minResolution:minZoomLevel}); 
			dtlaMap.getErrorMessage = function() { return missingTileErrorMessage; } 
			
			// Set map to custom tile overlay
			map.setMapType(dtlaMap); 
			
		
			// Enable scroll wheel and continous zoom
			map.enableScrollWheelZoom();
			map.enableContinuousZoom();	


		  	

   			// Center map
			map.setCenter(new google.maps.LatLng(centerLat,centerLon), startZoom);
		
			// Set Zoom Level		
		   	setZoomSelectedIcon(map.getZoom());
		   	
		   	

		   	/*
		  		-------------------------------  		
			  		 Map Pan Boundary Check
		  		-------------------------------  				  	    
		  	*/     
		  	
		  	if (panRestrict == true){
			
				setMapBounds(1);
				
				// Function that checks map and moves back if user trys to scroll out of bounds			
				function checkBounds() {
	
					
					// Perform the check and return if OK
					if (allowedBounds.contains(map.getCenter())) {
						return;
					}
					
					// If out of bounds move back to center
					var C = map.getCenter();
					var X = C.lng();
					var Y = C.lat();
					
					// Get bounding points
					var AmaxX = allowedBounds.getNorthEast().lng();
					var AmaxY = allowedBounds.getNorthEast().lat();
					var AminX = allowedBounds.getSouthWest().lng();
					var AminY = allowedBounds.getSouthWest().lat();
					
					// Check to see if position is inside bounds
					if (X < AminX){
						X = AminX;
					}
					if (X > AmaxX){
						X = AmaxX;
					}
					if (Y < AminY){
						Y = AminY;
					}
					if (Y > AmaxY){
						Y = AmaxY;
					}
					
					// Recenter map if out of bounds
					map.setCenter(new google.maps.LatLng(Y,X));
				}
				
				// Check bounds when user moves map
				google.maps.Event.addListener(map, "move", function() {
					checkBounds();
				});	
			}
			
			
			


		}
	}

	

	// Convert exported tile coordinates to google QuadKey function
	function TileToQuadKey ( tx,  ty,  zl){
		var quad;
		quad = "";
		for (var i = zl; i > 0; i--){
			var mask = 1 << (i - 1);
			var cell = 0;
			if ((tx & mask) != 0)
				cell++;
			if ((ty & mask) != 0)
				cell += 2;
			quad += cell;
			}
		return quad;
	}

	// Load Initial Map and Points    
	loadGoogleMap();
	


	
  		/*
  		-------------------------------  		
	  		Tracker
  		-------------------------------  		 	    
  	*/  
	if (activateTracker == true){

	
			var tracker;
			var tackerBounds;
			checkZoomLevelForTracker();
			tracker = new BoundsTracker(trackerBounds, map);	
			// Create tracker
			tracker.enable();
		
	}	
	

	
	function createNewMapTracker(nb,eb,sb,wb) {
		if (activateTracker == true){

			
			// North East bound point
			var mapBoundNE = new google.maps.LatLng(nb, eb);
			
			// South West bound point
			var mapBoundSW = new google.maps.LatLng(sb, wb);
		
			// Create boundary that tracker activates when outside of	
			trackerBounds = new google.maps.LatLngBounds(mapBoundSW, mapBoundNE);
			if (typeof tracker == "object"){
				tracker.updateBounds(trackerBounds);
			}
		}	
	}
	
	
		// Check zoom levels for tracker bounds
	function checkZoomLevelForTracker(){
	
		if (showingLocation == "NY"){
			
			if (currentZoomLevel > 14){
				tracker.enable();
				//NW corner 40.774692, -74.014378 and SE corner 40.695737, -73.945885 ONLY at zooms 15, 16, 17 and 18
				createNewMapTracker(40.774692, -73.945885, 40.695737, -74.014378);
			}else{
				tracker.disable();
			}
			
		}else{
			
			if (currentZoomLevel < 14){
			//11-13 top left 34.329545, -118.874989 bottom right 33.691460, -117.875919 
				createNewMapTracker(  34.329545,-117.875919, 33.691460, -118.874989);
			}	
			else if (currentZoomLevel == 14 || currentZoomLevel == 15 ){
			//14-15 top left 34.117614, -118.373947 bottom right 33.971908, -118.122661 
				createNewMapTracker( 34.117614, -118.122661, 33.971908, -118.373947);
	
			}else{	
			//16-18 top left 34.075883, -118.277376 bottom right 34.021800, -118.220272
				createNewMapTracker(34.075883, -118.220272, 34.021800, -118.277376);
			}
		}
	}






	
  	/*
  		-------------------------------  		
	  		 	Lens Tool
  		-------------------------------  		 	    
  	*/  
  	
  	// Lens Tool state for toggle
  	var lensToolState = 0;
	var lens_tool_div = document.getElementById("lens_tool");
	var lens_tool_map_div = document.getElementById("lens_tool_map");
//	var lensTool = new GxMagnifier(map, null, lens_tool_map_div);

  	// Toggle Lens Tool state
  	function toggleLensTool(){
		if (lensToolState == 0){
			showLensTool();
		if (is_ie){
			hideLensTool();
			showLensTool();
		}
		}else{
			// Hide Lens Tool	
			hideLensTool();
		}
	}  	
  	function showLensTool(){

		// Close Info Window
		map.closeExtInfoWindow();
		
		// Close Info Screen
		closeInfoScreen();
		
		// Hide Welcome Screen
		setTimeout(function(){removeWelcome();}, trayOpenDuration);
		hideWelcome.play();
		
		// Hide detail panel
		//hideSeverity();
		
		lensTool = new GxMagnifier(map, null, lens_tool_map_div);
		
		lensToolState = 1;
	
		// Set Lens Tool map size
		lensTool.setSize(new google.maps.Size(272, 272));
		
		// Set Default Magnification Level
		lensTool.setMagnification(0);
		
		// Disable Default Mouse Tracking
		lensTool.disableMouseTracking();
		
		// Sync with map position and zoom
		//lensTool.enableMapSync();
		
		// Enable prefetching
		lensTool.enablePrefetch();
				
		var constraintContainer = function() {
	        var marginBox = dojo.marginBox("google_map");
	        boundary = {};
	        // Top, Left, Width, Height
	        boundary["t"] = 64;
	        boundary["l"] = marginBox.l -5;
	        boundary["w"] = marginBox.w - 5;
	        boundary["h"] = marginBox.h + 20;
	        return boundary;
	    }
	
		// Make draggable
		var draggingLensTool = new dojo.dnd.move.constrainedMoveable(lens_tool_div, {
	        constraints: constraintContainer,
	        within: true
	    });
	
		// Move map in lens when dragging lens tool
		dojo.connect(draggingLensTool, "onMove", function(){
			lensTool.dragLens();
		}); 

		// Setup lens listners
		walkLensListenerArray();

		// Show Lens Tool 
		lens_tool_div.style.display = "block";
		lens_tool_map_div.style.display = "block";
		
		// Center map in tool
		lensTool.setCenterForOverlay();

		// Set inital lens state and lens listners
		changeLensState('se', 1);
		
		createLensZoomListeners();
		
		// Enable panning at edges
		lensTool.enableAutoPan();

  	}
  	
  	var lensMagLevel = 0;
  	
  	function createLensZoomListeners(){
	  	dojo.connect(dojo.byId("cartifact_slr_lens_zoom_out"),"onclick",function(e){
				e.preventDefault();
				lensMagLevel = lensMagLevel - 1;
				if (lensMagLevel == -1){
					lensMagLevel = 0;
				}
				lensTool.setMagnification(lensMagLevel);
				//lensTool.setMapZoom(lensTool.getMapZoom() - 1);
		});	
	  	dojo.connect(dojo.byId("cartifact_slr_lens_zoom_in"),"onclick",function(e){
				e.preventDefault();
				lensMagLevel = lensMagLevel + 1;
				if (lensMagLevel == 3){
					lensMagLevel = 2;
				}
				lensTool.setMagnification(lensMagLevel);
				//lensTool.setMapZoom(lensTool.getMapZoom() + 1);
		});	
		dojo.connect(dojo.byId("cartifact_slr_lens_zoom_eq"),"onclick",function(e){
				e.preventDefault();
				lensMagLevel = 0;
				lensTool.setMagnification(lensMagLevel);

		});	  	
  	}
  	
	function hideLensTool(){
		lens_tool_div.style.display = "none";
		lens_tool_map_div.style.display = "none";
		lensToolState = 0;
		//delete lensTool;  	
  	}

  	// Grab click from Lens Tool button
	dojo.connect(dojo.byId("button_lens_tool_image"),"onclick",function(e){
		e.preventDefault();
		toggleLensTool();
 	});	
 	

	// Initialize the lens tool variables
	setLensToolConfig();

 	// Set current map to SE map type
 	lensQuadrantMapType['se'] = map.getCurrentMapType(); // This has to be set later as its our current map type
	
 	var lensZoomLevel = 1;

 	// Change lens state depending on click
 	function changeLensState(quadrant, level, changeZoom){

 		// Reset lens state
 		resetLensState();
		lensTool.omap.setMapType(G_SATELLITE_MAP);
		// Set Magnification Level
		lensTool.setMagnification(lensZoomDepth[level]); 	

		
	}
 	
 	// Reset lens state
 	function resetLensState(){
	}
	
	

	// Create listener for click on lens buttons
	function createLensListener(quadrant, level, title){
		var button, changeZoom;
		if (title == true){
			button = 'title';
			changeZoom = false;
		}else{
			button = level + 'x_image';
			changeZoom = true;
		}
		dojo.connect(dojo.byId("button_lens_" + quadrant + "_"+button),"onclick",function(e){
			e.preventDefault();
			changeLensState(quadrant, level, changeZoom);
	 	});		
	}
	
	// Set up listeners for lens clicks
	function walkLensListenerArray(){
		// Walk array of zoom levels and create listeners 
		for (i = 0; i < lensQuadrant.length; i++){
				createLensListener(lensQuadrant[i],1,true);
			for (ii = 0; ii < lensMagLevel.length; ii++){
				createLensListener(lensQuadrant[i],lensMagLevel[ii],false);
			}	
		}
	}

	// Check zoom levels
	function checkZoomLevelForLens(){
		// Hide 2x if zoom level > 17 on se map
		if (currentZoomLevel > 17){
			//dojo.byId("button_lens_se_2x").style.display = 'none';
		}else{
			//dojo.byId("button_lens_se_2x").style.display = 'block';		
		}		
		
		// Hide 4x if zoom level > 16 on se map
		if (currentZoomLevel > 16){
			//dojo.byId("button_lens_se_4x").style.display = 'none';
		}else{
			//dojo.byId("button_lens_se_4x").style.display = 'block';		
		}		
	}
	
	// Create custom map objects
	function createCustomMap(directory,format){
			
			// Get tile URL from coordinate		    	    
		    var customTiles = function (a,b) {
				var f = cakeRoot + "img/tiles/" + directory + "/" + TileToQuadKey(a.x,a.y,b) + "." + format;
				return f;
			}
	
			// Define attributes for custom tile layer
			var customLayer = new Array();
			customLayer[0] = new google.maps.TileLayer();
			customLayer[0].getTileUrl = customTiles;


			// Create cutom tile layer object for custom tiles
	        customMap = new google.maps.MapType(customLayer,G_SATELLITE_MAP.getProjection(),'Cartifact Map',{maxResolution:maxZoomLevel, minResolution:minZoomLevel}); 
			customMap.getErrorMessage = function() { return missingTileErrorMessageLens; } 
			
			// Set map to custom tile overlay
			return customMap;
	}
  	
  	

  	/*
  		-------------------------------  		
	  		 	Map Zoom Control
  		-------------------------------  		 	    
  	*/   
  	
  	var currentZoomLevel = map.getZoom();
	
	checkZoomLevelForLens();
	checkZoomLevelForTracker();
	
	// Create Zoom button click listener
	function createZoomClickListner(level){
		dojo.connect(dojo.byId("button_zoom_"+level),"onclick",function(e){
			e.preventDefault();
	    	resetZoomSelectedIcon(currentZoomLevel);
	    	map.setZoom(level);
	    	setZoomSelectedIcon(currentZoomLevel);
	     });	
	}
	
	// Walk zoom levels
	for (i = minZoomLevel; i <= maxZoomLevel; i++){
		createZoomClickListner(i);
	}

  	// Grab click from Zoom In button
	dojo.connect(dojo.byId("button_zoom_in"),"onclick",function(e){
		e.preventDefault();
    	resetZoomSelectedIcon(currentZoomLevel);
    	map.zoomIn();
		currentZoomLevel = map.getZoom();
    	setZoomSelectedIcon(currentZoomLevel);
     });	

  	// Grab click from Zoom Out button
	dojo.connect(dojo.byId("button_zoom_out"),"onclick",function(e){
		e.preventDefault();
    	resetZoomSelectedIcon(currentZoomLevel);
    	map.zoomOut();
		currentZoomLevel = map.getZoom();
    	setZoomSelectedIcon(currentZoomLevel);
    });	 
    
    // Reset previous Zoom Selected icon
    function resetZoomSelectedIcon(zoomLevel){
    	var icon = "#button_zoom_"+zoomLevel+" img";
    	dojo.attr(dojo.query(icon)[0], 'src', cakeRoot + 'img/cartifact_slr_zoom_dot.png');
    } 
    
    // Set Zoom Selected icon
    function setZoomSelectedIcon(zoomLevel){
    	var icon = "#button_zoom_"+zoomLevel+" img";
    	dojo.attr(dojo.query(icon)[0], 'src', cakeRoot + 'img/cartifact_slr_zoom_dot_active.png');
    } 
    
    // Track Zoom
	google.maps.Event.addListener(map, "zoomend", function() {
    	resetZoomSelectedIcon(currentZoomLevel);
		oldZoomLevel = currentZoomLevel;
		currentZoomLevel = map.getZoom();
    	setZoomSelectedIcon(currentZoomLevel);    	    	
		if (panRestrict == true){
			if (currentZoomLevel > 11){
				if (oldZoomLevel < 12){
					// Center on Local Center
					map.setCenter(new google.maps.LatLng(centerLatZoom,centerLonZoom), currentZoomLevel);
					setTimeout(function(){fadeSCFocusInOut();}, 1);
					setTimeout(function(){dojo.style(dojo.byId("sc_focus"),'display','none')}, 3000);
					
				}
				setMapBounds(2);
			}else{
				setMapBounds(1);
				if (oldZoomLevel > 11){
				}
			}
		}
		
		checkZoomLevelForLens();
		checkZoomLevelForTracker();
	});



	function fadeSCFocusInOut(){
		
		dojo.style(dojo.byId("sc_focus"),'display','block');

		
		dojo.fx.chain([
	   			dojo.fadeIn({node : 'sc_focus', duration: 1500}),
	   			dojo.fadeOut({node : 'sc_focus', duration: 1500})
	   			
		]).play();
	
	}


  
	/*
  		-------------------------------  		
  		 	Welcome Animation
  		-------------------------------  		  	    
  	*/   
	
	// Create Welcome animations objects
	var hideWelcome = dojo.fadeOut({node: "welcome_screen",duration: trayOpenDuration});

	var infoScreenState = 1;

	function removeWelcome(){
		dojo.style(dojo.byId("welcome_screen"),'display','none');
		infoScreenState = 0;
	}
	
	
   	// Grab click from welcome close
	dojo.connect(dojo.byId("close_welcome"),"onclick",function(e){
		e.preventDefault();
		closeInfoScreen();
    });	

   	// Grab click from welcome screen
	dojo.connect(dojo.byId("welcome_screen"),"onclick",function(e){
		e.preventDefault();
		cycleWelcomeScreen();
    });	

   	// Grab click from google map
   	dojo.connect(dojo.byId("google_map"),"onclick",function(e){
		e.preventDefault();
		if (infoScreenState == 1){
			closeInfoScreen();	
		}
    });	

	
	// Change Welcome Screen To Different Image
	var currentWelcomeScreen = 1;
	function cycleWelcomeScreen(){
		currentWelcomeScreen = currentWelcomeScreen + 1;
		if (currentWelcomeScreen == 13){
			currentWelcomeScreen = 1;
			closeInfoScreen();
		}else{
			if (currentWelcomeScreen == 1){
			 	dojo.attr(dojo.byId('welcome_image'), 'src', cakeRoot + 'img/cartifact_slr_welcome.png');
			}else{
			 	dojo.attr(dojo.byId('welcome_image'), 'src', cakeRoot + 'img/cartifact_slr_welcome_'+currentWelcomeScreen+'.png');
		 	}
	 	}
	}
	
   	// Grab click from info 
	dojo.connect(dojo.byId("button_info_image"),"onclick",function(e){
		e.preventDefault();
		if (infoScreenState == 1){
			closeInfoScreen();
		}else{
			infoScreenState = 1;
			hideSeverity();		
			cycleWelcomeScreen();
			dojo.style(dojo.byId("welcome_screen"),'opacity','1');
			dojo.style(dojo.byId("welcome_screen"),'display',"block");
			dojo.style(dojo.byId("close_welcome"),'display',"block");
		}
    });	
    
    function closeInfoScreen(){
		setTimeout(function(){removeWelcome();}, trayOpenDuration);
		hideWelcome.play();
		dojo.style(dojo.byId("close_welcome"),'display',"none");
		currentWelcomeScreen = 0;
	}
    
	/*
  		-------------------------------  		
  		 	Marquee Scroll
  		-------------------------------  		  	    
  	*/   
  	var leftMargin = -1 * Math.floor(Math.random()*51660);
	function moveMarquee(){
			leftMargin = leftMargin - 1;
			dojo.style(dojo.byId("scroller_div"),'marginLeft',leftMargin + "px");
			setTimeout(function(){moveMarquee();}, 35); 
			if (leftMargin < -51660){
				leftMargin = 0;
			}
	}
	moveMarquee();


	/*
  		-------------------------------  		
  		 	Severity
  		-------------------------------  		  	    
  	*/   
  	
  	dojo.connect(dojo.byId("button_cartifact_slr_severity_1"),"onmouseover",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_1_label.png');
	});	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_1"),"onmouseout",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_label.png');
	});	
	
  	dojo.connect(dojo.byId("button_cartifact_slr_severity_2"),"onmouseover",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_2_label.png');
	});	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_2"),"onmouseout",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_label.png');
	});	
	
  	dojo.connect(dojo.byId("button_cartifact_slr_severity_3"),"onmouseover",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_3_label.png');
	});	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_3"),"onmouseout",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_label.png');
	});	
	
  	dojo.connect(dojo.byId("button_cartifact_slr_severity_4"),"onmouseover",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_4_label.png');
	});	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_4"),"onmouseout",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_label.png');
	});	
	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_5"),"onmouseover",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_5_label.png');
	});	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_5"),"onmouseout",function(e){
	 	dojo.attr(dojo.byId('img_cartifact_slr_severity_label'), 'src', cakeRoot + 'img/cartifact_slr_severity_label.png');
	});	
	
	
		
  	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_1"),"onclick",function(e){
		e.preventDefault();
		setSeverityLevel(1);
	});	

	dojo.connect(dojo.byId("button_cartifact_slr_severity_2"),"onclick",function(e){
		e.preventDefault();
		setSeverityLevel(2);
	});	
	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_3"),"onclick",function(e){
		e.preventDefault();
		setSeverityLevel(3);
	});		
	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_4"),"onclick",function(e){
		e.preventDefault();
		setSeverityLevel(4);
	});		
	
	dojo.connect(dojo.byId("button_cartifact_slr_severity_5"),"onclick",function(e){
		e.preventDefault();
		setSeverityLevel(5);
	});		
	

	dojo.connect(dojo.byId("detail_panel_tab_1"),"onclick",function(e){
		e.preventDefault();
		setActiveTab(1);
	});		
	
	dojo.connect(dojo.byId("detail_panel_tab_2"),"onclick",function(e){
		e.preventDefault();
		setActiveTab(2);
	});		
	
	dojo.connect(dojo.byId("detail_panel_tab_3"),"onclick",function(e){
		e.preventDefault();
		setActiveTab(3);
	});	
	

	dojo.connect(dojo.byId("detail_panel_close"),"onclick",function(e){
		e.preventDefault();
		dojo.style(dojo.byId("detail_panel"),'display','none');
	});	
	

	var severityLevel = 1;
	var oldSeverityLevel = 1;
	var activeDetailTab = 1;
	
	function setSeverityLevel(severity){
		
		hideWelcomeScreen();
		closeInfoScreen();
		
		// Show Detail Panel BG
		dojo.style(dojo.byId("detail_panel"),'backgroundImage', 'url(' + cakeRoot + 'img/cartifact_slr_detail_panel_bg_'+severity+'.png)');

		// Show Detail Panel Label
	 	dojo.attr(dojo.byId('cartifact_slr_detail_panel_title'), 'src', cakeRoot + 'img/cartifact_slr_detail_panel_title_'+severity+'.png');

		oldSeverityLevel = severityLevel;
		severityLevel = severity;

		// Load Details
		setActiveTab(1);
		
		// Show tiles
		dtlaLayer[1] = new google.maps.TileLayer();
		dtlaLayer[1].getTileUrl = function (a,b) {
			var f = cakeRoot + "img/tiles_severity_"+ severity +"/" + TileToQuadKey(a.x,a.y,b) + ".png";
			return f;
		}
		dtlaLayer[1].getOpacity = function() { return .7; } 
		
		// Create cutom tile layer object for custom tiles
	    dtlaMap = new google.maps.MapType(dtlaLayer,G_SATELLITE_MAP.getProjection(),'Cartifact Map',{maxResolution:maxZoomLevel, minResolution:minZoomLevel}); 
		dtlaMap.getErrorMessage = function() { return missingTileErrorMessage; } 
			
		// Set map to custom tile overlay
		map.setMapType(dtlaMap); 
		

		dojo.style(dojo.byId("detail_panel"),'display','block');
		

	}
	
	function setActiveTab(id){
		
		// Deactivate old tab
	 	dojo.attr(dojo.byId('cartifact_slr_detail_panel_tab_'+activeDetailTab), 'src', cakeRoot + 'img/cartifact_slr_detail_panel_tab_'+activeDetailTab+'.png');
		
		// Activate new tab
	 	dojo.attr(dojo.byId('cartifact_slr_detail_panel_tab_'+id), 'src', cakeRoot + 'img/cartifact_slr_detail_panel_tab_'+id+'_active.png');

	 	// Hide old content
		dojo.style(dojo.byId("detail_panel_details_"+oldSeverityLevel+"_tab_"+activeDetailTab),'display','none');
		dojo.style(dojo.byId("detail_panel_details_"+severityLevel+"_tab_"+activeDetailTab),'display','none');

	 	// Show new content
		dojo.style(dojo.byId("detail_panel_details_"+severityLevel+"_tab_"+id),'display','block');

		var thisPanel = document.getElementById("detail_panel_detail");
		thisPanel.scrollTop = 0;
	 	
	 	// Set active tab to new id
		activeDetailTab = id;
				
	}
	
	
	function hideSeverity(){
		severityLevel = 0;
		dojo.style(dojo.byId("detail_panel"),'display','none');
	}
	
	
	function hideWelcomeScreen(){
		//hideLensTool();
		// Hide Welcome Screen
		setTimeout(function(){removeWelcome();}, trayOpenDuration);
		hideWelcome.play();
	}
	
	
	
	
}); // End of Dojo On Load