// JavaScript Document

		// dojo.requires()
		// scan page for widgets and instantiate them
		dojo.require("dojo.parser");
		// layouts used in page
		dojo.require("dijit.layout.BorderContainer");
		dojo.require("dijit.layout.ContentPane");
		dojo.require("dijit.layout.TabContainer");
		//dojo.require("dijit.layout.AccordionContainer");
		//dojo.require("dijit.layout.LayoutContainer"); // testing
		// used in dnd
		dojo.require("dijit.form.CheckBox");
		//dojo.require("dojo.dnd.Container");
		//dojo.require("dojo.dnd.Manager");
 		//dojo.require("dojo.dnd.Source");
		
		
	 	//run function after load
	 	dojo.addOnLoad(init);
		//variables
	 	var map_surface, map_group;
		var TOCDndContainer;
		var tmp, i, len;
		var map_width = 864;
		var map_height = 528;
		var mapLayers = new Array(7);
		var mapTipLayers;
		var refreshImagesTimer;
		var pixelTop = 5;
		var g_dojoContent;
		var g_TOC;
		var g_Header;
		var g_Footer;
		var g_TocTimer;
		var g_MapTab = new Object();
		var g_Tabs;
		
		//originally intended to create toc dynamically dnd items, now only for creating map
		//map layer index number must match toc id value and map layer visibility must match toc checked value
		// please note that the first and last layer cannot be arranged. see putLayerIntoRightOrder() to make sure that the loop is only doing the right maplayers
		// weather camera doesn't require a maptip file
		//0 layer order, 1 layer object, 2 name, 3 table of contents name, 4 image name, 5 visible, 6 has maptips??, 7 has maptip file??, 8 refresh??, 9 refresh time in whole minutes, 10 timer count (always 0) , 11 has legend??, 12 opacity, 13 has date??, 14 has text??, 15 date doesn't turn off, initial border color, initial background color
							//   0   1        2                  3                  4                5       6     7     8     9  10  11   12   13    14    15   16   17
		mapLayers[9] = new Array(9,null,"highwayshields","Highway Shields","highway_shields.gif","visible",false,false,false,null,0,false,100,false,false,false,null,null);
		mapLayers[8] = new Array(8,null,"emergencies","Emergencies/Incidents","emergencies.gif","visible",true,true,true,2,0,true,100,true,true,false,null,null);
		mapLayers[7] = new Array(7,null,"weathercameras","Weather Cameras","weathercameras.gif","hidden",true,false,false,null,0,true,100,false,false,false,"DkGrey","Grey");
		mapLayers[6] = new Array(6,null,"widthheightrestrictions","Width/Height Restrictions","widthheightrestrictions.gif","hidden",true,true,false,null,0,true,100,true,true,false,"DkGrey","Yellow");
		mapLayers[5] = new Array(5,null,"workzones","Work Zones","workzones.gif","hidden",true,true,true,null,0,true,100,true,true,false,"DkGrey","Orange");
		mapLayers[4] = new Array(4,null,"loadrestrictions","Load Restrictions","loadrestrictions.gif","hidden",false,false,false,null,0,true,100,true,true,true,"DkGrey","Blue");
		mapLayers[3] = new Array(3,null,"loadrestrictionsprev","Load Restrictions Previous","loadrestrictionsprev.gif","hidden",false,false,false,null,0,true,100,true,true,true,"DkGrey","Blue");
		mapLayers[2] = new Array(2,null,"roadconditions","Road Conditions","roadconditions.gif","visible",true,true,true,2,0,true,100,true,true,false,"DkGrey","Green");
		mapLayers[1] = new Array(1,null,"weatherradar","Weather Radar","weatherradar.gif","hidden",false,false,true,5,0,true,70,false,true,false,"DkGrey","Grey");
		mapLayers[0] = new Array(0,null,"basemap","Base Map","basemap.gif","visible",false,false,false,null,null,0,100,false,false,false,null,null);
		//<div class="dojoDndItem"><input type="checkbox" dojoType="dijit.form.CheckBox" name="toc_basemap" id="toc_basemap" value="0"  onClick="turnonofflayer(this)" checked="checked"><label for="toc_basemap">Base Map</label></div>

 		function init(){
			//set visibility and autorefresh cookies
			if (dojo.cookie.isSupported()){
				if (dojo.cookie("nddot_traveler_info_settings") == null){
					dijit.byId("autorefresh_toc").attr("checked",true);
					setCookie();
					//start refresh timer
					startRefreshImagesTimer();
				}
				else {
					var tmpCookie = getCookie();
					tmpCookie = tmpCookie.split("|");
					if (tmpCookie.length == 3){
						var tmpVisible = tmpCookie[2].split(":");
						//set autorefresh
						if (tmpCookie[0] == "true"){
							//console.log("autorefresh " + tmpCookie[0] );
							dijit.byId("autorefresh_toc").attr("checked",true);
							startRefreshImagesTimer();
						}
						//check to see if layer count is the same
						//if so, then then set visibiliy
						//if not, then use standard visibility
						if (tmpCookie[1] == mapLayers.length && tmpVisible.length > 1) {
							for (i=0, len=mapLayers.length;i<len;++i) {  // reverse i=layers.length-1;i>=0;--i
								//console.log(dojo.indexOf(tmpVisible,mapLayers[i][0]));
								if (dojo.indexOf(tmpVisible,mapLayers[i][0]) != -1) {
									//console.log(mapLayers[i][2]);
									mapLayers[i][5]="visible";
								}
								else {
									mapLayers[i][5]="hidden";
								}
							}
						}
						else {
							dijit.byId("autorefresh_toc").attr("checked",true);
							setCookie();
							//start refresh timer
							startRefreshImagesTimer();							
						}
					}
					else {
						dijit.byId("autorefresh_toc").attr("checked",true);
						setCookie();
						//start refresh timer
						startRefreshImagesTimer();					
					}
				}			
			}
			
        	map_container = dojo.byId("map_holder");
			for (i=0, len=mapLayers.length;i<len;++i) {  // reverse i=layers.length-1;i>=0;--i
				var tmpLayer = mapLayers[i];
				var tmpImg = document.createElement("img");
				//console.log(tmpLayer[2]);
				tmpImg.setAttribute("id", tmpLayer[2]);
				if (tmpLayer[5] == "visible") {
					tmpImg.setAttribute("src", tmpLayer[4]);
					if (dijit.byId(tmpLayer[2] + "_toc")){
						dijit.byId(tmpLayer[2] + "_toc").attr("checked",true);
					}
					//set up expanded box
					if (dojo.byId(tmpLayer[2] + "_div")){
						dojo.byId(tmpLayer[2] + "_div").className = "tocmargin tocHeadText " +  "tocBdr" + tmpLayer[17] + " tocBgGrey";
					}
					//check to see if layer has legend
					if (tmpLayer[11]==true) {
						//var imgLegend = document.createElement("img");
						var imgLegend = "<img src='" + tmpLayer[2] + "_legend" + ".gif' alt='" + tmpLayer[3] + "' style='vertical-align:bottom'/>";
						dojo.byId(tmpLayer[2] + "_legend").innerHTML=imgLegend;
					}
					//check to see if layer has date
					if (tmpLayer[13]==true) {
						getMapDate(tmpLayer);
					}
				}
				else{
					tmpImg.setAttribute("src", "");
					//set up collapsed box
					if (dojo.byId(tmpLayer[2] + "_div")){
						dojo.byId(tmpLayer[2] + "_div").className = "tocmargin tocHeadText " +  "tocBdr" + tmpLayer[16] + " tocBg" + tmpLayer[17];
					}
				}
				//get dates that are permanent
				if (tmpLayer[5] == "hidden" && tmpLayer[15] == true){
					getMapDate(tmpLayer);
				}
				tmpImg.setAttribute("width", map_width);
				tmpImg.setAttribute("height", map_height);
				tmpImg.setAttribute("alt", tmpLayer[3]);
				tmpImg.style.position = "absolute";
				//tmpImg.style.left = "5px";
				tmpImg.style.top = pixelTop;
				//cross browser opacity??
				tmpImg.style.opacity = (tmpLayer[12]/100);
				tmpImg.style.MozOpacity = (tmpLayer[12]/100);
				tmpImg.style.KhtmlOpacity = (tmpLayer[12]/100); 
				tmpImg.style.filter = "alpha(opacity=" + tmpLayer[12] + ")"; 
				tmpImg.style.visibility = tmpLayer[5];
				tmpImg.style.zIndex = tmpLayer[0];
				if (tmpLayer[6]) {
					tmpImg.setAttribute("class", "maptipfile_" + tmpLayer[0]);
				}
				tmpLayer[1] = tmpImg;
				map_container.appendChild(tmpImg);
			}
			
			tmpImg = document.createElement("img")
			tmpImg.setAttribute("id", "maptip_holder");
			tmpImg.setAttribute("src", 'images/pixel.gif');
			tmpImg.setAttribute("width", map_width);
			tmpImg.setAttribute("height", map_height);
			//tmpImg.setAttribute("alt", "map tip holder");
			tmpImg.useMap = "#maptip_imagemap";
			tmpImg.style.position = "absolute";
			//tmpImg.style.left = "5px";
			tmpImg.style.top = pixelTop;
			tmpImg.style.zIndex = 998;
			map_container.appendChild(tmpImg);
			
			//turn on map tips for visible layers
			turnonoffmaptips();
			
			//build table of contents (dnd)
			//TOCDndContainer = new dojo.dnd.Source("TOCContainer",{accept:["nothing"]});
			//set up events
			//dojo.connect(TOCDndContainer,"onDndDrop",putLayerIntoRightOrder);
			
			//g_dojoTabs = dijit.byId("mainTabContainer").tablist; //tabs - used to find which tab is selected dijit.byId("mainTabContainer").tablist
			g_Tabs =  dojo.byId("mainTabContainer_tablist");
			g_dojoContent = dijit.byId("dojo_content");//entire dojo container (header through footer)
			g_TOC = dojo.byId("tableofcontents"); //div tag for toc, used to determine the height of the web page 
			g_Header = dojo.byId("dojo_header");
			g_Footer =  dojo.byId("dojo_footer");
			dojo.connect(dijit.byId("mainTabContainer").tablist, 'onSelectChild',function(e){fixHeight(e);});
			//set traveler page height
			g_MapTab.id = "TravelMapsTab";
			fixHeight(g_MapTab);
			
			//this will probably break on next version - currently works in dojo 1.3
			//dojo.connect(dijit.byId("textTabContainer"), "_transition",function(newTab,oldTab){fixBold(newTab,oldTab);});
			//dojo.connect(dijit.byId("mainTabContainer"), "_transition",function(newTab,oldTab){fixBold(newTab,oldTab);});
			dojo.style(dijit.byId("TravelMapsTab").controlButton.domNode,{"color": "blue","fontWeight": "bold"});
			dojo.style(dijit.byId("PrintableMaps").controlButton.domNode,{"color": "blue","fontWeight": "bold"});
			dojo.style(dijit.byId("TextVersions").controlButton.domNode,{"color": "blue","fontWeight": "bold"});
			dojo.style(dijit.byId("SurroundingStates").controlButton.domNode,{"color": "blue","fontWeight": "bold"});
			dojo.style(dijit.byId("Help").controlButton.domNode,{"color": "blue","fontWeight": "bold"});
			//set up text tabs - colors
			dojo.style(dijit.byId("tab_emergencies").controlButton.domNode,{"marginLeft":"3px", "backgroundColor":"#ffc0c0","fontWeight": "bold"});
			dojo.style(dijit.byId("tab_roadconditions").controlButton.domNode,{"backgroundColor":"#c0f5c0","fontWeight": "bold"});
			dojo.style(dijit.byId("tab_widthheightrestrictions").controlButton.domNode,{"backgroundColor":"#ffff80","fontWeight": "bold"});
			dojo.style(dijit.byId("tab_workzones").controlButton.domNode,{"backgroundColor":"#f2bc8a","fontWeight": "bold"});
			dojo.style(dijit.byId("tab_loadrestrictions").controlButton.domNode,{"backgroundColor":"#b9d8ff","fontWeight": "bold"});
			dojo.style(dijit.byId("tab_loadrestrictionsprev").controlButton.domNode,{"backgroundColor":"#b9d8ff","fontWeight": "bold"});
			//set up text tabs - content
			dojo.connect(dijit.byId("tab_emergencies").controlButton,"onClick",function(){reloadTextDojo("tab_emergencies_text","text.asp?textFile=emergencies.txt");});
			dojo.connect(dijit.byId("tab_roadconditions").controlButton,"onClick",function(){reloadTextDojo("tab_roadconditions_text","text.asp?textFile=roadconditions.txt");});
			dojo.connect(dijit.byId("tab_widthheightrestrictions").controlButton,"onClick",function(){reloadTextDojo("tab_widthheightrestrictions_text","text.asp?textFile=widthheightrestrictions.txt");});
			dojo.connect(dijit.byId("tab_workzones").controlButton,"onClick",function(){reloadTextDojo("tab_workzones_text","text.asp?textFile=workzones.txt");});
			dojo.connect(dijit.byId("tab_loadrestrictions").controlButton,"onClick",function(){reloadTextDojo("tab_loadrestrictions_text","text.asp?textFile=loadrestrictions.txt");});
			dojo.connect(dijit.byId("tab_loadrestrictionsprev").controlButton,"onClick",function(){reloadTextDojo("tab_loadrestrictionsprev_text","text.asp?textFile=loadrestrictionsprev.txt");});
			
			//load default text file
			reloadTextDojo("tab_emergencies_text","text.asp?textFile=emergencies.txt");
			//set up maptips
			setMapTips();
		}
		
	function fixHeight(tab) {
		//this could be quite a bit more sophisticated by determining other content sizes on the fly
		//but will leave for now
		//part of the problem is this is fired before the toc image and date gets back and therefore the height is fully updated
		//console.log("fix height begin");
		clearTimeout(g_TocTimer);
		var headerBox = dojo.contentBox(g_Header);
		var tocBox = dojo.contentBox(g_TOC);
		var footerBox = dojo.contentBox(g_Footer);
		var tabBox = dojo.contentBox(g_Tabs);
		//additional amount takes into consideration, cannot figure out how to get the tab container height
		var totalHeight = Number(tocBox.h) + Number(headerBox.h) + Number(footerBox.h) + Number(50) + Number(tabBox.h); 
		var arg;
		var minHeight = 800;
		//console.log("header " + headerBox.h);
		//console.log("toc " + tocBox.h);
		//console.log("footer " + footerBox.h);
		//console.log("total " + totalHeight);
		//console.log("tab container " + tabBox.h);
		//console.log(dojo.style(g_TOC,"height"));
		//console.log(e.id);
		switch(tab.id){
			case "TravelMapsTab":
				if (totalHeight > minHeight) {
					minHeight = totalHeight;
				}
				arg = {"h" : minHeight}; 
				g_dojoContent.resize(arg); 
			break;
			//case "SurroundingStates":
			//	minHeight = minHeight + 30
			//	arg = {"h" : minHeight}; 
			//	g_dojoContent.resize(arg);
			//break;
			default:
				arg = {"h" : minHeight}; 
				g_dojoContent.resize(arg);
			break;
		}
		//console.log(tab.id);
		g_dojoContent.layout();
		//console.log("after " + box.h);
	}

		// turn map layers on and off when checked
 		function turnonofflayer(TOCLayer){
			//get map layer from array
			var tmpMapLayer=mapLayers[TOCLayer.value]; 
			//console.log(tmpMapLayer[5]);
			switch(TOCLayer.checked){
				case true:
					//change layer visibility to visible
					reloadImageDojo(tmpMapLayer)
					dojo.byId(tmpMapLayer[2]).style.visibility="visible";
					tmpMapLayer[5]="visible";
					//check to see if layer has legend
					if (tmpMapLayer[11]) {
						//var imgLegend = document.createElement("img");
						var imgLegend = "<img src='" + tmpMapLayer[2] + "_legend" + ".gif' alt='" + tmpMapLayer[3] + "' style='vertical-align:bottom'/>";
						dojo.byId(tmpMapLayer[2] + "_legend").innerHTML=imgLegend;
					}
					//check to see if layer has date
					if (tmpMapLayer[13]) {
						getMapDate(tmpMapLayer);
					}
					//check to see if road conditions is checked, if so uncheck load restrictions
					if (tmpMapLayer[2] == "roadconditions") {
						//turn off load restrictions
						turnofflayer(mapLayers[3]);
						turnofflayer(mapLayers[4]);

					}
					//check to see if loadrestrictions is checked, if so uncheck road conditions
					if (tmpMapLayer[2] == "loadrestrictions") {
						//turn off road conditions
						turnofflayer(mapLayers[2]);
						turnofflayer(mapLayers[3]);
					}
					//check to see if loadrestrictions is checked, if so uncheck road conditions
					if (tmpMapLayer[2] == "loadrestrictionsprev") {
						//turn off road conditions
						turnofflayer(mapLayers[2]);
						turnofflayer(mapLayers[4]);
					}
					//set up initial box
					if (dojo.byId(tmpMapLayer[2] + "_div")){
						dojo.byId(tmpMapLayer[2] + "_div").className = "tocmargin tocHeadText " +  "tocBdr" + tmpMapLayer[17] + " tocBgGrey";
					}
					break;
				case false:
					turnofflayer(tmpMapLayer);
					break;
			}
			//check to see if layer has maptip, if so add/remove map tips on temp layer
			if (tmpMapLayer[6]) {
				//console.log(tmpMapLayer[7]);
				turnonoffmaptips();
			}
			setCookie();
			g_TocTimer = setTimeout("fixHeight(g_MapTab);",500);
		}

		function turnofflayer(tmpMapLayer){
			//force uncheck in case this is an auto uncheck, like road conditions/load restrictions
			dijit.byId(tmpMapLayer[2] + "_toc").attr("checked",false);
			// change layer visibility to hidden
			dojo.byId(tmpMapLayer[2]).style.visibility="hidden";
			tmpMapLayer[5]="hidden";
			//check to see if layer has legend, if so remove
			if (tmpMapLayer[11]) {
				dojo.byId(tmpMapLayer[2] + "_legend").innerHTML="";
			}
			//check to see if layer has date, if so remove
			if (tmpMapLayer[13] && tmpMapLayer[15] != true) {
				//console.log(tmpMapLayer[2]);
				dojo.byId(tmpMapLayer[2] + "_date").innerHTML="";
			}	
			//set up collapsed box
			if (dojo.byId(tmpMapLayer[2] + "_div")){
				dojo.byId(tmpMapLayer[2] + "_div").className = "tocmargin tocHeadText " +  "tocBdr" + tmpMapLayer[16] + " tocBg" + tmpMapLayer[17];
			}
		}

		//used to get date from server
		function getMapDate(tmpMapLayer){
			if (tmpMapLayer[2] == "loadrestrictions" || tmpMapLayer[2] == "loadrestrictionsprev") {
				//different prefix for load rest
				reloadTextDojo(tmpMapLayer[2] + "_date","gettextfiles.asp?textFile=" + tmpMapLayer[2] +  "_date.txt",true,"    ")
			}else if(tmpMapLayer[2] == "roadconditions"){
				reloadTextDojo(tmpMapLayer[2] + "_date","gettextfiles.asp?textFile=" + tmpMapLayer[2] +  "_date.txt",true,"    Updated: ","<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Issued Daily 5am to 9pm CT")
			}
			else {
				reloadTextDojo(tmpMapLayer[2] + "_date","gettextfiles.asp?textFile=" + tmpMapLayer[2] +  "_date.txt",true,"    Updated: ")
			}
		}

		//used for drag and drop - toc reorders
		function putLayerIntoRightOrder(){
			// put images in correct order
			TOCLayers = TOCDndContainer.getAllNodes();
			var i1 = 1;
			//mapLayers
			for (i=TOCLayers.length-1;i>=0;--i) {  // reverse order of table of contents (so it draws correctly) i=TOCLayers.length-1;i>=0;--i
				//console.log(TOCLayers[i].firstChild.firstChild.value);
				var tmpLayer = mapLayers[TOCLayers[i].firstChild.firstChild.value];
				tmpLayer[1].style.zIndex = i1++;
				//map_container.appendChild(tmpLayer[5]);
			}
		}
		
		// turn map tips on and off when checked
 		function turnonoffmaptips(){
			var textMapTipList = "";
			var imageMapList = "";
			var sortedMapTipLayers;
			var imageMapHolder = dojo.byId("maptip_imagemap");
			var textMapTipHolder = dojo.byId("maptip_text");
			var mapTipLayers = getMapTipElementsByAttribute(document, "img", "class", "maptipfile")
			//var mapTipLayers = dojo.query("[class^='maptipfile']","img");
			imageMapHolder.innerHTML = "";
			textMapTipHolder.innerHTML = "";
			//console.log(mapTipLayers.length);
			//need to get the image maps in the right order
			//get all layers with map tips
			if (mapTipLayers.length > 0){
				sortedMapTipLayers = new Array(mapTipLayers.length - 1);
				for (i=0,len=mapTipLayers.length-1;i<=len;++i) {  
				// 0 z-index, 1 mapLayer index, 2 visible or hidden
				sortedMapTipLayers[i] = new Array(mapTipLayers[i].style.zIndex, mapTipLayers[i].getAttribute("class"),mapTipLayers[i].style.visibility);
				}			
				//sort map tip layers by number zIndex order
				sortedMapTipLayers.sort(sortMapTips);	
			}
			//go through array and get map tip info
			if (sortedMapTipLayers!=undefined) {
				for (i=0,len=sortedMapTipLayers.length-1;i<=len;++i) {
					//console.log(sortedMapTipLayers[i]);
					if (sortedMapTipLayers[i][2]=="visible") {
						//image map files
						imageMapList = mapLayers[sortedMapTipLayers[i][1].replace("maptipfile_","")][2] + "_imagemap.txt" + "," + imageMapList
						// text files, ignore files that don't have map tip files (like camera)
						if (mapLayers[sortedMapTipLayers[i][1].replace("maptipfile_","")][7] == true) {
							textMapTipList = mapLayers[sortedMapTipLayers[i][1].replace("maptipfile_","")][2] + "_maptips.txt" + "," + textMapTipList
						}
					}
				}
			}
			//trim off first ,
			imageMapList = imageMapList.substring(0,imageMapList.length-1);
			textMapTipList = textMapTipList.substring(0,textMapTipList.length-1);
			//console.log(imageMapList);
			//console.log(textMapTipList);	
			if (textMapTipList!=""){
				reloadTextDojo("maptip_text","gettextfiles.asp?textFile=" + textMapTipList,true)
			}
			if (imageMapList!=""){
				//get string from server
				reloadTextDojo("maptip_imagemap","gettextfiles.asp?textFile=" + imageMapList,true)
			}
		}

		function sortMapTips(a,b)
		{
			return a[0] - b[0];
		}
		
		function turnonoffrefresh(autorefresh){
			if (autorefresh.checked) {
				startRefreshImagesTimer();
			}
			else {
				stopRefreshImagesTimer();
			}
			setCookie();
		}
		
		function startRefreshImagesTimer(){
			refreshImagesTimer = setInterval("refreshImages();", 1000*60);
			//console.log("start refresh");
		}

		function stopRefreshImagesTimer(){
			clearInterval(refreshImagesTimer)
			//console.log("stop refresh");
		}
		
		//used for drag and drop - toc reorders
		function refreshImages(){
			//console.log("refreshing images");
			// put images in correct order
			//loop through mapLayers and refresh they have refresh intervals
			for (i=0, len=mapLayers.length;i<len;++i) {  // reverse i=layers.length-1;i>=0;--i
				tmpLayer = mapLayers[i];
				//console.log("checking layer " + tmpLayer[2]);
				//if visible refresh
				if (tmpLayer[5] == "visible") {
					//console.log("layer visible " + tmpLayer[2]);
					//if num of minutes exist
					if (tmpLayer[9]) {
						//when timer count = number of minutes for refresh
						++tmpLayer[10]
						if (tmpLayer[10] >= tmpLayer[9]) {
							//refresh image
							reloadImageDojo(tmpLayer);
							//console.log("refresh image " + tmpLayer[2]);
							//refresh date
							if (tmpLayer[13]) {
								getMapDate(tmpLayer);
								//console.log("refresh date " + tmpLayer[2]);
							}
							//refresh maptip files 
							if (tmpLayer[7]) {
								turnonoffmaptips();
								//console.log("refresh maptips " + tmpLayer[2]);
							}
							//refresh text file if panel is opened to that layer
							if (tmpLayer[14] == true) {
								//if accordian panel is selected
								if ((dijit.byId("textTabContainer").selectedChildWidget.id == "tab_" + tmpLayer[2])) {
									//refresh text
									reloadTextDojo("tab_" +  tmpLayer[2] + "_text","text.asp?textFile=" + tmpLayer[2] + ".txt",true)
									//console.log("refresh text " + tmpLayer[2]);
								}
							}
							tmpLayer[10] = 0;
						}
					}
				}
			}
		}

	function getCookie(){
		//console.log("cookie good");
		var tmp = dojo.cookie("nddot_traveler_info_settings");
		return tmp;
	}

	function setCookie(){
		if (dojo.cookie.isSupported()){
			//console.log("cookie good");
			//get visibile layers
			//!!should be using escape/unescape function!!
			var visibleLayers = "";
			for (i=0, len=mapLayers.length;i<len;++i) {  // reverse i=layers.length-1;i>=0;--i
				//console.log(dojo.indexOf(tmpVisible,mapLayers[i][0]));
				if (mapLayers[i][5] == "visible") {
					//console.log(mapLayers[i][2]);
					visibleLayers = mapLayers[i][0] + ":" + visibleLayers
				}
			}
			if (visibleLayers != "")  {
				visibleLayers = visibleLayers.slice(0, -1)
			}
			dojo.cookie("nddot_traveler_info_settings",dijit.byId("autorefresh_toc").attr("checked") + "|" + mapLayers.length + "|" + visibleLayers ,{expires:1});
		}
	}
	


	// Utility functions
	function getMapTipElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		//var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
		var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^)" + strAttributeValue) : null;
		var oCurrent;
		var oAttribute;
		for(var i=0; i<arrElements.length; i++){
			oCurrent = arrElements[i];
			oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
			if(typeof oAttribute == "string" && oAttribute.length > 0){
				if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
					arrReturnElements.push(oCurrent);
				}
			}
		}
		return arrReturnElements;
	}
	
	//var mediaInspector = document.getElementById('basemap');
	// if (mediaInspector.currentStyle) {
	//   zIndex = mediaInspector.currentStyle['zIndex'];
	//} else if (window.getComputedStyle) {
	//   zIndex = window.getComputedStyle(mediaInspector, '').getPropertyValue("z-index");
	// }
	//alert(zIndex);

	dojo.addOnLoad(function() {

		dojo.byId('loaderInner').innerHTML += " done.";
		setTimeout(function hideLoader(){
			var loader = dojo.byId('loader'); 
			dojo.fadeOut({ node: loader, duration:500,
				onEnd: function(){ 
					loader.style.display = "none"; 
				}
			}).play();
		}, 250);

	});
