// Scripts to support schedule detail display

var geocoder;
var map;
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();

  function initialize() {
//  alert("Initialized");
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 15,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
//    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }
  
  function initializeVenueMap() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    geocoder = new google.maps.Geocoder();

    var chicago = new google.maps.LatLng(41.850033, -87.6500523);
    var myOptions = {
      zoom:7,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: chicago
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById("directionsPanel"));
  }
  
  function clearDetails(evtNumber) {
  	var contentId = 'content' + evtNumber;
	clearContent = "&nbsp;";
	document.getElementById(contentId).innerHTML = clearContent;
  }
  
  function hideDetails(evtNumber) {
	var contentId = 'content' + evtNumber;
	content = "";
	document.getElementById(contentId).innerHTML = content;
  }
  
  function showDetails(artist, evtNumber, venueName, streetAddress, city, state, zip, phoneNumber, webLink) {
	var address = streetAddress + ',' + city + ',' + state + ',' + zip;
	var mapCanvasId = 'map_canvas' + evtNumber;
	var contentId = 'content' + evtNumber;
    var myOptions = {
      zoom: 15,
//      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	
	closeLink = "<a class='detailsLink' style='color:#000000' href=' '" + 'onClick="hideDetails(' + "'" + evtNumber + "'" + '); return false;"' + ">" + "Hide" + "</a>";
	mapLink = "http://showmethegigs.com/smtgDirections.php?artist=" + artist + "&evtId=" + evtNumber;
	webImage = "<a target='_blank' href='" + webLink + "'><img src='images/getVenueSite.jpg' width='100' height='18' border='0'></a>";
	mapImage = "<a href='" + mapLink + "'><img src='images/getDirections.jpg' width='100' height='18' border='0'></a>";
	
	headWrapper = "<table class='detailsText' width='600' border='0' cellpadding='1' cellspacing='1' bgcolor='#eeeeee' style='border: 2px solid #eeeeee'><tr bgcolor='#eeeeee'><td class='detailsLink' style='color: #000000' bgcolor='#eeeeee'><strong>Venue Details</strong></td><td align='right' bgcolor='#eeeeee' class='detailsLink' style='color: #000000'>" + closeLink + "</td></tr><tr><td colspan='2' bgcolor='#333333'>";
	
	mainContent = "<TABLE border='0'><tr><td width='300' height='200'><div id='" + mapCanvasId + "' style='width:100%; height:100%'></div></td><td valign='top' class='detailsText'><strong>Location:</strong><br/><br/>" + venueName + " <br/>" + streetAddress + "<br/>" + city + ", " + state + " " + zip + "<br/><br/>Phone: " + phoneNumber + "<br/><br/>" + mapImage + webImage + "</td></tr></TABLE>";

	tailWrapper = "</td></tr></table>";
	
	content = headWrapper + mainContent + tailWrapper;
	
	document.getElementById(contentId).innerHTML = content;
	if (!geocoder) {
		initialize();
	}
//	alert(address);
    if (geocoder) {
        geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
//			if (!map) {
				map = new google.maps.Map(document.getElementById(mapCanvasId), myOptions);
//			}
//			alert(results[0].geometry.location);
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({
                map: map, 
                position: results[0].geometry.location
            });
        } else {
            alert("Geocode was not successful for the following reason: " + status);
        }
      });
    }
	
  }
  
  function showVenueMap(address) {
	var mapCanvasId = 'map_canvas';
	var contentId = 'content';
	var myOptions = {
      zoom: 15,
//      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
		
	if (!geocoder) {
		initializeVenueMap();
	}
//	alert(address);
    if (geocoder) {
//		alert("Geocoder ok");
//		alert(address);
        geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
//			if (!map) {
//				map = new google.maps.Map(document.getElementById(mapCanvasId), myOptions);
//			}
//			alert(results[0].geometry.location);
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({
                map: map, 
                position: results[0].geometry.location
            });
        } else {
            alert("Geocode was not successful for the following reason: " + status);
        }
      });
    }	
  }
  
  function calcVenueRoute() {
    var start = document.getElementById("start").value;
    var end = document.getElementById("end").value;
//	document.getElementById('directionsPanel').innerHTML = '<tr><td class="venueText" style="border-top: 1px solid #336699; border-bottom: 1px solid #336699"><strong>TURN BY TURN DIRECTIONS </strong></td></tr>';
	document.getElementById('directionsPanel').innerHTML = '<div class="venueText" style="border-top: 3px solid #336699; border-bottom: 3px solid #336699"><strong>TURN BY TURN DIRECTIONS </strong></div>';
    var request = {
        origin:start, 
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
  }
 