var UPCOMING_API_BASEURL = 'http://upcoming.yahooapis.com/services/rest/?format=json&'; var UPCOMING_API_KEY = 'dceb052b30'; var map = null; var URL_REGEX = /(^|[^'">])((ftp|http|https):\/\/(\S+))(\b|$)/gi; var EMAIL_REGEX = /(^|[^:])([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})(\b|$)/gi; function load_gmap(){ if(document.getElementById("eventmap") != null){ if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("eventmap")); map.addControl(new GLargeMapControl3D() ); map.addControl(new GMenuMapTypeControl()); map.setCenter(new GLatLng(52,0), 5); } } } function doSearch(){ // clear map of all markers map.clearOverlays(); // get the form vals var params = {api_key: UPCOMING_API_KEY, method: 'event.search', callback:'doSearchCallback'}; var tracker = {what:'', where:''}; // search text if($('#search_text').val() != ''){ params.search_text = $('#search_text').val(); tracker.what = $('#search_text').val(); } // set the dates // min_date - always set to today var min_date = '2010-07-29'; params.min_date = min_date; // max_date var max_date = '2010-08-01'; if($('#when').val()== 7){ max_date = '2010-08-05'; } else if($('#when').val()== 31){ max_date = '2010-08-29'; } params.max_date = max_date; //search location if($('#location').val() != ''){ // lookup the lat/lng for the address var geocoder = new GClientGeocoder(); geocoder.getLatLng( $('#location').val(), function(point) { if (!point) { alert(address + " notfound"); } else { params.location = point.toString(); map.setCenter(point, 8); } var data = $.param(params); $.getScriptXS(UPCOMING_API_BASEURL + data); }); } else { // use the current map centre params.location = map.getCenter().lat() +','+map.getCenter().lng(); map.setCenter(map.getCenter(), 8); var data = $.param(params); $.getScriptXS(UPCOMING_API_BASEURL + data); } tracker.where = $('#location').val(); //call the tracker trackerLog(tracker); } function doSearchCallback(data){ if (data.rsp){ $.each(data.rsp.event, function(i,val) { addMarker(val); }); } else { alert("There are no events matching your search.\n\nPlease try again."); } } function addMarker(eventObj){ var point = new GLatLng(eventObj.latitude, eventObj.longitude); var marker = new GMarker(point, {title: eventObj.name}); map.addOverlay(marker); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(displayEvent(eventObj)); }); } function displayEvent(eventObj){ var html=''; html += '