// JavaScript Document

	// A function to create the marker and set up the event window
      function createMarker(point,name,abbr,add,html,category,subcategory,el,district) {
        var marker = new GMarker(point,gicons[category]);
	      
        // === Store the category and name info as a marker properties ===
        marker.mycategory = category;                                 
        marker.myname = name;
        marker.myabbr = abbr;
        marker.myadd = add;
        marker.subcat = subcategory;
	marker.dist = district;

	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	
	marker.el = el;
        gmarkers.push(marker);
        return marker;
      }
	  
	var ShowStatus = true;
	  
	function CheckAll() {
	  	//List all categories in this array or they will not be hidden/shown
		var mycat = new Array()
		mycat[0] = "Tour"
		if (ShowStatus == true){
			for (i=0;i<mycat.length;i++){
				hide(mycat[i]);
			}
			ShowStatus = false;
			return
		} else {
			for (i=0;i<mycat.length;i++){
				show(mycat[i]);
			}
			ShowStatus = true;
			return
		}
	  }


	lastMarkerClicked = 0;
      function myclick(i) {
		if(gmarkers[i].el != null) {
			GEvent.removeListener(gmarkers[i].el);
			gmarkers[i].el = null;
		}
		GEvent.trigger(gmarkers[i],"click");
		//hide("All");
		if(lastMarkerClicked > 0) {
			gmarkers[lastMarkerClicked].hide();
		}
		gmarkers[i].show();
		lastMarkerClicked = i;
      }
	  
      function myexclick(i) {
		if(gmarkers[i].el != null) {
			GEvent.removeListener(gmarkers[i].el);
			gmarkers[i].el = null;
		}
		GEvent.trigger(gmarkers[i],"click");   
		gmarkers[i].el = GEvent.addListener(gmarkers[i],"infowindowopen",function() {
			expandinfo();
		});
      }

      function makeSidebar() {
	  
		var tabDine = "";
		var subcatAmerican = "";
		var subcatAsian = "";
		var subcatBakeries = "";
		var subcatBarGrill = "";
		var subcatCoffee = "";
		var subcatDeli = "";
		var subcatFrench = "";
		var subcatGreek = "";
		var subcatHawaiian = "";
		var subcatIndian = "";
		var subcatIrish = "";
		var subcatItalian = "";
		var subcatMedit = "";
		var subcatMexican = "";
		var subcatPizza = "";
		var subcatSeafood = "";
		
		var tabShop = "";
		var subcatArt = "";
		var subcatSports = "";
		var subcatBooksMusic = "";
		var subcatGrocery = "";
		var subcatClothing = "";
		var subcatFlowers = "";
		var subcatFurniture = "";
		
		var tabServices = "";
		var subcatBanking = "";
		var subcatCatering = "";
		var subcatDance = "";
		var subcatFlorist = "";
		var subcatGov = "";
		var subcatHair = "";
		var subcatHealth = "";
		var subcatWorship = "";
		var subcatOrgs = "";
		var subcatPersonal = "";
		var subcatPhoto = "";
		var subcatPrinting = "";
		var subcatTanning = "";
		var subcatTravel = "";
		
		var tabStay = "";
		var subcatBB = "";
		var subcatHotel = "";
		
		var tabAttractions = "";
		var catAtts = "";
		
		var tabPlay = "";
		var subcatPlacesToGo = "";
		var subcatGalleries = "";
		var subcatOutdoorArt = "";
		
		var arr = [];
		var mlen = gmarkers.length;
		for (var i=0;i<mlen;i++) {
		
		var zz = '<li><a class="'+gmarkers[i].dist+'" href="javascript:myclick('+i+')">'+gmarkers[i].myname+'</a></li>';
		
		
		if(gmarkers[i].mycategory=='Shop'){
			switch(gmarkers[i].subcat) {
			case "": break;
			case "Art":
				subcatArt += zz; break;
			case "Sports":
				subcatSports += zz; break;
			case "BooksMusic":
				subcatBooksMusic += zz; break;
			case "Grocery":
				subcatGrocery += zz; break;
			case "Clothing":
				subcatClothing += zz; break;
			case "Flowers":
				subcatFlowers += zz; break;
			case "Furniture":
				subcatFurniture += zz; break;
			}
		}
		
				
		if(gmarkers[i].mycategory=='Dine'){
		
			switch(gmarkers[i].subcat) {
			case "": break;
			case "American":
				subcatAmerican += zz; break;
			case "Asian":
				subcatAsian += zz; break;
			case "Bakeries":
				subcatBakeries += zz; break;
			case "BarGrill":
				subcatBarGrill += zz; break;
			case "Coffee":
				subcatCoffee += zz; break;
			case "Deli":
				subcatDeli += zz; break;
			case "French":
				subcatFrench += zz; break;
			case "Greek":
				subcatGreek += zz; break;
			case "Hawaiian":
				subcatHawaiian += zz; break;
			case "Indian":
				subcatIndian += zz; break;
			case "Irish":
				subcatIrish += zz; break;
			case "Italian":
				subcatItalian += zz; break;
			case "Medit":
				subcatMedit += zz; break;
			case "Mexican":
				subcatMexican += zz; break;
			case "Pizza":
				subcatPizza += zz; break;
			case "Seafood":
				subcatSeafood += zz; break;
			}
		}
		
		if(gmarkers[i].mycategory=='Services'){
			switch(gmarkers[i].subcat) {
			case "": break;
			case "Banking":
				subcatBanking += zz; break;
			case "Catering":
				subcatCatering += zz; break;
			case "Dance":
				subcatDance += zz; break;
			case "Florist":
				subcatFlorist += zz; break;
			case "Gov":
				subcatGov += zz; break;
			case "Hair":
				subcatHair += zz; break;
			case "Health":
				subcatHealth += zz; break;
			case "Worship":
				subcatWorship += zz; break;
			case "Orgs":
				subcatOrgs += zz; break;
			case "Personal":
				subcatPersonal += zz; break;
			case "Photo":
				subcatPhoto += zz; break;
			case "Printing":
				subcatPrinting += zz; break;
			case "Tanning":
				subcatTanning += zz; break;
			case "Travel":
				subcatTravel += zz; break;
			}
		}	
		
		if(gmarkers[i].mycategory=='Stay'){
			switch(gmarkers[i].subcat) {
			case "": break;
			case "BB":
				subcatBB += zz; break;
			case "Hotel":
				subcatHotel += zz; break;
			}
		}
		
		if(gmarkers[i].mycategory=='Play'){
			switch(gmarkers[i].subcat) {
			case "": break;
			case "PlacesToGo":
				subcatPlacesToGo += zz; break;
			case "Galleries":
				subcatGalleries += zz; break;
			case "OutdoorArt":
				subcatOutdoorArt += zz; break;
			}
		}
		
        }
		
		tabDine = "<h3>American</h3><ul>"+subcatAmerican+"</ul><h3>Asian</h3><ul>"+subcatAsian+"</ul><h3>Bakeries and Treats</h3><ul>"+subcatBakeries+"</ul><h3>Bar &amp; Grill</h3><ul>"+subcatBarGrill+"</ul><h3>Coffee Shops</h3><ul>"+subcatCoffee+"</ul><h3>Deli and Sandwiches</h3><ul>"+subcatDeli+"</ul><h3>French</h3><ul>"+subcatFrench+"</ul><h3>Greek</h3><ul>"+subcatGreek+"</ul><h3>Hawaiian</h3><ul>"+subcatHawaiian+"</ul><h3>Indian</h3><ul>"+subcatIndian+"</ul><h3>Irish</h3><ul>"+subcatIrish+"</ul><h3>Italian</h3><ul>"+subcatItalian+"</ul><h3>Mediterranean</h3><ul>"+subcatMedit+"</ul><h3>Mexican</h3><ul>"+subcatMexican+"</ul><h3>Pizza</h3><ul>"+subcatPizza+"</ul><h3>Seafood</h3><ul>"+subcatSeafood+"</ul>";
			
		//tabAttractions = "<ul>"+catAtts+"</ul>";
		tabPlay = "<h3>Places To Go</h3><ul>"+subcatPlacesToGo+"</ul><h3>Art Galleries</h3><ul>"+subcatGalleries+"</ul><h3>Outdoor Art</h3><ul>"+subcatOutdoorArt+"</ul>";
				
		tabShop = "<h3>Art, Antiques &amp; Gifts</h3><ul>"+subcatArt+"</ul><h3>Bikes, Sports and Hobbies</h3><ul>"+subcatSports+"</ul><h3>Books And Music</h3><ul>"+subcatBooksMusic+"</ul><h3>Candy, Grocery and Liquor</h3><ul>"+subcatGrocery+"</ul><h3>Clothing, Jewelry and Accessories</h3><ul>"+subcatClothing+"</ul><h3>Flower Shops</h3><ul>"+subcatFlowers+"</ul><h3>Furniture and Home Items</h3><ul>"+subcatFurniture+"</ul>";
				
		tabServices = "<h3>Banking</h3><ul>"+subcatBanking+"</ul><h3>Catering and Bakeries</h3><ul>"+subcatCatering+"</ul><h3>Dance, Yoga and Martial Arts</h3><ul>"+subcatDance+"</ul><h3>Florists</h3><ul>"+subcatFlorist+"</ul><h3>Government</h3><ul>"+subcatGov+"</ul><h3>Hair, Nails and Spas</h3><ul>"+subcatHair+"</ul><h3>Health and Fitness</h3><ul>"+subcatHealth+"</ul><h3>Houses of Worship</h3><ul>"+subcatWorship+"</ul><h3>Organizations</h3><ul>"+subcatOrgs+"</ul><h3>Personal</h3><ul>"+subcatPersonal+"</ul><h3>Photo</h3><ul>"+subcatPhoto+"</ul><h3>Printing</h3><ul>"+subcatPrinting+"</ul><h3>Tanning</h3><ul>"+subcatTanning+"</ul><h3>Travel</h3><ul>"+subcatTravel+"</ul>";
		
		tabStay = "<h3>Bed and Breakfast</h3><ul>"+subcatBB+"</ul><h3>Hotels/Motels</h3><ul>"+subcatHotel+"</ul>";
		
		document.getElementById("Shop").innerHTML = tabShop;
		document.getElementById("Dine").innerHTML = tabDine;
		document.getElementById("Play").innerHTML = tabPlay;
		document.getElementById("Services").innerHTML = tabServices;
		document.getElementById("Stay").innerHTML = tabStay;
		
		//openQueryId();
      }

	function expandinfo() {
		var infoWin = map.getInfoWindow();
		infoWin.maximize();
	}
		
	
	function getmarkers() {
	// Read the data from .xml file
	GDownloadUrl("xml/Markers.xml", function(data) {
	var xmlDoc = GXml.parse(data);
	var markers = xmlDoc.documentElement.getElementsByTagName("marker");
	var mlen = markers.length;
	  
	for (var i=0; i<mlen; i++) {
		var el = null;
		var geocoder;		
		var lat = parseFloat(markers[i].getAttribute("lat"));
		var lng = parseFloat(markers[i].getAttribute("lng"));
		var point = new GLatLng(lat,lng);
		var streetaddress = markers[i].getAttribute("streetaddress");
		var citystatezip = markers[i].getAttribute("citystatezip");
		var phone = markers[i].getAttribute("phone");
		var name = markers[i].getAttribute("name");
		var abbr = markers[i].getAttribute("abbreviation");
		var details = markers[i].getAttribute("details");
		var image = markers[i].getAttribute("image");
		var subcategory = markers[i].getAttribute("subcategory");
		var webpage = markers[i].getAttribute("webpage");
		var district = markers[i].getAttribute("district");
		var html = "<div class='popup' style='width:210px;'><div style='height:145px;'><img class='Building' src="+image+" width='200px' height='150px'></div><br /><h3>"+name+"</h3><p>"+streetaddress+"<br />";
		if (phone != "") {
			html += phone+"<br />";
		  }
		if (webpage != "") {
			html+= "<a href=\"http://"+webpage+"\" target=\"_blank\" >"+webpage+"</a><br/>";
		}
			
			
		html += "</p></div>";
		var category = markers[i].getAttribute("category");
		var subcategory = markers[i].getAttribute("subcategory");
		var marker = createMarker(point,name,abbr,streetaddress,html,category,subcategory,el,district);
		map.addOverlay(marker);
		marker.hide();
    }//for
    
	makeSidebar();
	});//function
}

