/**************************************************************************
 * MeetingStarter Meeting Creation Javascript Code
 * Tim Su (timsu@stanfordalumni.org), July 2007
 **************************************************************************/

//<![CDATA[

var DEBUG = 0;
var HELPHEADER = "MeetingStarter Help:\n\n";
var gMap, gGeocoder; //for view page
var mainTabber;

/**************************************************************************
 * General Page Layout Code
 **************************************************************************/

/* initPage
   Called when the page is loaded */
function initPage()
{
    // only load map when you switch to page 2
    var tabberOptions = {
        'onTabDisplay':function(argsObj)
        {
            if(argsObj.index == 1 && typeof(gbrowerOn) != 'undefined' && has_location) {
                initGoogleMap();
            }
        }
    };
    mainTabber = tabberAutomatic(tabberOptions);
    stripePage();
    if (typeof(initTab) != "undefined") {
        initTab = parseInt(initTab);
        mainTabber.tabShow(initTab);
    }
    //indicate required fields

    //Required Fields
    requiredStar(document.eventregform,reqFieldArr);
}

// Map page
var googleInitialized = false;
function initGoogleMap() { // initialize google stuff
    if(googleInitialized)
        return;

    var script = document.createElement("script");
    script.setAttribute("src", "http://maps.google.com/maps?file=api&v=2.x&key="+
        mapKey + "&async=2&callback=loadMap");
    script.setAttribute("type", "text/javascript");
    document.documentElement.firstChild.appendChild(script);
        
    googleInitialized = true;
}


function showAddress(address) {
      gGeocoder.getLocations(address, addAddressToMap);
    }

function addAddressToMap(response) {
  gMap.clearOverlays();
  if (!response || response.Status.code != 200) {
    alert("\"" + address + "\" not found");
  } else {
    place = response.Placemark[0];
    point = new GLatLng(place.Point.coordinates[1],
                        place.Point.coordinates[0]);
    marker = new GMarker(point);
    gMap.addOverlay(marker);
	addressName = document.mainform.eventLocationName.value;
    marker.openInfoWindowHtml('<b>' + addressName + '</b><br>' + place.address);
  }
}

function loadMap()
{
    if (GBrowserIsCompatible() && !gMap) {
        gMap = new GMap2(document.getElementById("locMap"));
        gMap.setCenter(new GLatLng(37.4419, -122.1419), 13);
        gGeocoder = new GClientGeocoder();
        gMap.addControl(new GSmallMapControl());
        gMap.addControl(new GMapTypeControl());
		
		address = document.mainform.eventLocation.value;
		
	  if(address!=""){
		showAddress(address);	  
	  }
    }
}

function loadDirections() {
      var directionsPanel = document.getElementById("route");
	  directionsPanel.innerHTML = "";
      var directions = new GDirections(gMap, directionsPanel);
	  addressfrom = document.mainform.fromAddress.value;
      directions = directions.load(addressfrom + " to " + address);
	  document.mainform.directionsbutton.value= "update";
    }


// end Map page

function stripePage()
{
    stripe('placesTable', '#94b4d6', '#84a4c6');
    stripe('peopleTable', '#ffffe6', '#e7e7bf');
    stripe('friendTable', '#1f703c', '#2a7b43');
}

function suggestHelp()
{
    alert(HELPHEADER +
        'Checking this box allows others to suggest new options to everyone');
}

function clearDef(obj)
{
    if(!obj.cleared)
    {
        obj.value = "";
        obj.cleared = true;
    }
}


/**************************************************************************
 * Submission
 **************************************************************************/

function escTrim(text) {
    var str = "";
    if(text)
        str = new String(text);
    return escape(str.replace(/^\s+|\s+$/g,""));
}

function submitReg(send)
{
    
    //Required Fields
    if(!requiredCheck(document.eventregform,reqFieldArr,reqDescArr)){
        return false;
    }

     if(getObj('termsConfirm')){
        if(!getObj('termsConfirm').checked){
           alert("You must agree to the terms of the release to signup for this event.")
           return false;
        }
    }

    // have the user confirm payment. subsequent call has no payment arg
    if(send && getObj("displayPayment")){
        var displayPayment = getObj("displayPayment").value;
        // in modules/payments/payment.js
         if(!paymentConfirmation("event", displayPayment)){
			return false;
		 }
    }


    document.eventregform.submit();
    return true;

}


//]]>