﻿//************************************************************************************* 
// File     :   deco_class_map.js
// Version  :   1.0
// Requires :   a google map API key, prototype.js
// Author   :   Kyle Weems (ksw)
// Origin   :   mindfly.com
// Created  :   December 18, 2007 (ksw)
// Modified :   December 19, 2007 (wma)
// Purpose  :   Loads and displays a google map on the scheduled class page based upon the address.
//*************************************************************************************

// Version History (only for changes of at least 0.0.1 in version number)
// ===============
// Version 1.0   (12/18/2007) - Basic functionality.
// Version 1.1   (12/19/2007) - Added zoom/pan control and terrain change control to map.

//=============================================================================================
// showAddress()
//=============================================================================================
// shows a google map of the address in div mapid.
function showAddress(address, id, locid) 
{
    mapid = "googleMap_" + id;
    closebutton = "closeMap_" + id;
    directions = "directions_" + locid;
    // Create a new map in the div 'mapid'
    var map = new GMap2(document.getElementById(mapid));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    // Create a geocoder
    var geocoder = new GClientGeocoder();
    // Try to create a map with the geocode from 'address'
    geocoder.getLatLng(
    address,
    function(point) {
      // If the point doesn't exist, don't show the map.
      if (!point) 
      {
        $(mapid).removeClassName('displayBlock');
        $(mapid).addClassName('displayNone');
        $(closebutton).removeClassName('displayBlock');
        $(closebutton).addClassName('displayNone');
        //$(directions).removeClassName('displayBlock');
        //$(directions).addClassName('displayNone');
      } // end if
      // Otherwise...
      else 
      {
        $(mapid).removeClassName('displayNone');
        $(mapid).addClassName('displayBlock');
        $(closebutton).removeClassName('displayNone');
        $(closebutton).addClassName('displayBlock');
        //$(directions).removeClassName('displayNone');
        //$(directions).addClassName('displayBlock');
        // Set the map's center at the new point and zoom 13
        // Set a marker at that point.
        var marker = new GMarker(point);
        // Add an overlay on the map with a window showing the address.
        map.setCenter(point, 13);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
        map.setCenter(point, 13);

      } // end else
    } 
    );   // end geocoder.getLatLng 
} // end of showAddress()

function closeMap(id)
{
    mapid = "googleMap_" + id;
    closebutton = "closeMap_" + id;
    $(mapid).removeClassName('displayBlock');
    $(mapid).addClassName('displayNone');
    $(closebutton).removeClassName('displayBlock');
    $(closebutton).addClassName('displayNone');
    
    //var directions = getElementsByClassName('scheduledClassDirection displayBlock');
    //for (var direction in directions) {
    //    direction.removeClassName('displayBlock');
    //    direction.addClassName('displayNone');
    //}
}

function pause(millis) 
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); } 
while(curDate-date < millis);
} 


function showDirections(locid) 
{
    //directions = "directions_" + locid;
    //if ($(directions).class != 'scheduledClassDirection displayNone') {
    //    $(directions).removeClassName('displayNone');
    //    $(directions).addClassName('displayBlock');
    //}
    //else {
    //    $(directions).removeClassName('displayBlock');
    //    $(directions).addClassName('displayNone');
    //}
}


