var map;
var geocoder;
var openHTML;
var point;
var marker;

function init(){    

    addressToGeoCode = document.getElementById('franchise-address').value + " " + document.getElementById('franchise-city-state-zip').value;

    openHTML = document.getElementById('franchise-name').value + "<br />" + document.getElementById('franchise-address').value + "<br />" + document.getElementById('franchise-city-state-zip').value
                + "<br /><a target=\"_blank\" href=\"http://maps.google.com/maps?daddr=" + escape(addressToGeoCode) + "\">Get Driving Directions</a><br /><br />";
   
    thumbnails = YAHOO.util.Dom.getElementsByClassName('thumbnail', 'a');
    YAHOO.util.Event.addListener(thumbnails, "click", loadLargeThumbnail);

	var tabView = new YAHOO.widget.TabView('content-main'); 			

    tabView.getTab(3).addListener('click', handleMapView);

    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        geocoder = new GClientGeocoder();     
        geocoder.getLocations(addressToGeoCode, addAddressToMap);              
    }                 
}

function handleMapView()
{
    map.checkResize();
    map.setCenter(point, 12);
    marker.openInfoWindowHtml(openHTML);
}

function loadLargeThumbnail(e)
{
    thumbnails = YAHOO.util.Dom.getElementsByClassName('thumbnail', 'a');
    images = YAHOO.util.Dom.getElementsByClassName('franchise-thumb', 'img');
    YAHOO.util.Dom.removeClass(images,'franchise-thumb-selected');
    YAHOO.util.Dom.addClass(this.firstChild, 'franchise-thumb-selected');
    
    document.getElementById('image-caption').innerHTML = this.firstChild.getAttribute('caption');
    document.getElementById('large-image').src = this.firstChild.getAttribute('fullurl');
}

function addAddressToMap(response) {
  //map.clearOverlays();
    if (!response || response.Status.code != 200) {
        alert("Error pulling up google map.");
    } 
    else 
    {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        map.setCenter(point, 12);

        marker = new GMarker(point);
        GEvent.addListener(marker, "click", function()
        {
            marker.openInfoWindowHtml(openHTML);
        });
        map.addOverlay(marker);
        marker.openInfoWindowHtml(openHTML);
    }  
}

YAHOO.util.Event.addListener(window, "load", init);