' }); var STiconImage = new google.maps.MarkerImage('http://www.barackobama.com/images/vote2010/maps/sprite-state-smaller.png', // This marker is 20 pixels wide by 32 pixels tall. new google.maps.Size(68, 48), // The origin for this image is 0,0. new google.maps.Point(0,0), // The anchor for this image is the base of the flagpole at 0,32. new google.maps.Point(25, 30)); function createStMarker(input) { var myLatLng = new google.maps.LatLng(input.lat,input.long); var marker = new google.maps.Marker({ position: myLatLng, //map: map, title: input.title, icon: STiconImage }); google.maps.event.addListener(marker, 'click', function() { console.log('clicked state marker'); map.setCenter(myLatLng); nearestMarker(); }); return marker; } var iconImage = new google.maps.MarkerImage('http://www.barackobama.com/images/vote2010/maps/sprite-marker.png', // This marker is 20 pixels wide by 32 pixels tall. new google.maps.Size(20, 34), // The origin for this image is 0,0. new google.maps.Point(0,0), // The anchor for this image is the base of the flagpole at 0,32. new google.maps.Point(9, 34)); var shadowImage = new google.maps.MarkerImage('http://www.barackobama.com/images/vote2010/maps/sprite-marker.png', // The shadow image is larger in the horizontal dimension // while the position and offset are the same as for the main image. new google.maps.Size(57, 34), new google.maps.Point(29,0), new google.maps.Point(0, 34)); //urls and button code for infowindow and sidebar RSVP RSVP RSVP var addDesL = "http://my.barackobama.com/page/content/2010eventdescriptions?EventID="; var rsvpBut = ""; //every event marker will have these properties function createMarker(input) { var myLatLng = new google.maps.LatLng(input.lat,input.long); var Mdistance = myLatLng.distanceFrom(initialLocation); var marker = new google.maps.Marker({ position: myLatLng, title: "Click to select this event.", icon: iconImage, shadow: shadowImage, event: input.eventUrl, state: input.state, distance: Mdistance }); google.maps.event.addListener(marker, 'click', function() { console.log('clicked marker'); var getUrl = longEventURL + "" + input.eventUrl + '?mime=text/xml&format=kml&wrap=no'; var evID = input.eventUrl; if (jQuery.browser.msie) { var dType = "text"; } else { var dType = "xml"; } jQuery("#eventDis").hide(); jQuery("#evLoading").show(); jQuery.ajax({ type: "GET", url: getUrl, dataType: dType, success: function(data) { if (jQuery.browser.msie) { var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.loadXML(data); data = xmlDoc; } console.log('got ajax'); var name = jQuery(data).find('name').eq(0).text(); var namespl = name.split('/'); if (namespl[2]) {namespl[0] = namespl[0] + " " + namespl[1]; namespl[1] = namespl[2];} var descrip = jQuery(data).find('description').text(); var address = jQuery(data).find('address').text(); var phoneNumber = jQuery(data).find('phonenumber').text(); jQuery("#evLink").text(namespl[0]); jQuery("#evLink").attr('href','/page/event/detail/' + evID); var datespl = namespl[1].split(/[\s,]+/); if (jQuery.browser.msie) { datespl.unshift("Saturday");} jQuery("#evLocation").html(address); jQuery("#evWeekDay").text(datespl[1]); jQuery("#eventDis .month").text(datespl[2]); jQuery("#eventDis .calendardate .day").text(datespl[3]); jQuery("#evFullDate").text(datespl[2]+ " " + datespl[3] + ", " + datespl[4]); jQuery("#evTime").text(datespl[5]+ " " + datespl[6]); jQuery("#evDes").text(input.blurb); jQuery("#addDesLink").attr('href',addDesL + "" + evID); jQuery("#evDeets").attr('href','/page/event/detail/'+ evID); jQuery("#evRSVP").attr('href','/page/event/detail/'+ evID + '#rsvp'); console.log('set event'); jQuery("#eventDis").fadeIn(); jQuery("#evLoading").fadeOut(); var infoHTML = "
" +namespl[0] + "
" + namespl[1] + "
" + rsvpBut + "
"; infoWindow.setContent(infoHTML); infoWindow.open(map, marker); if (map.getZoom()
" + rsvpBut + "
"; infoWindow.setContent(infoHTML); infoWindow.open(map, marker); if (map.getZoom() 1) { if (markPos > 0) { markPos--; }; console.log('prev marker, now showing' + markPos); defMarkerPos = mMarkers[markPos].getPosition(); map.panTo(defMarkerPos); google.maps.event.trigger(mMarkers[markPos], 'click'); google.maps.event.trigger(map, 'dragend'); } }); } var prevControlDiv = document.createElement('DIV'); var prevControl = new PrevControl(prevControlDiv, map); prevControlDiv.index = 1; map.controls[google.maps.ControlPosition.BOTTOM].push(prevControlDiv); ///Creating next control function NextControl(controlDiv, map) { // Set CSS styles for the DIV containing the control // Setting padding to 5 px will offset the control // from the edge of the map controlDiv.style.padding = '5px'; // Set CSS for the control border var controlUI = document.createElement('DIV'); controlUI.style.backgroundColor = 'white'; controlUI.style.borderStyle = 'solid'; controlUI.style.borderWidth = '2px'; controlUI.style.cursor = 'pointer'; controlUI.style.textAlign = 'center'; controlUI.title = 'Next Event'; controlDiv.appendChild(controlUI); // Set CSS for the control interior var controlText = document.createElement('DIV'); controlText.style.fontFamily = 'Arial,sans-serif'; controlText.style.fontSize = '12px'; controlText.style.paddingLeft = '4px'; controlText.style.paddingRight = '4px'; controlText.innerHTML = 'Next Event'; controlUI.appendChild(controlText); // Setup the click event listeners: simply set the map to google.maps.event.addDomListener(controlUI, 'click', function() { if (evMLen > 1) { if (markPos 0) { markPos--; } console.log('prev marker, now showing' + markPos); defMarkerPos = mMarkers[markPos].getPosition(); map.panTo(defMarkerPos); google.maps.event.trigger(mMarkers[markPos], 'click'); google.maps.event.trigger(map, 'dragend'); }); jQuery("#nextEvent").bind('click', function() { if (markPos
June
5

| |
Event Details
RSVP Now

Sign up to host a kick-off event Get your host materials Add a description to your existing event
Find an Event

The November elections are just over five months away, and we have a big task ahead of us.

Although it may be challenging, we have identified a clear path to success: get as many as possible of the 15 million folks who voted for the first time in 2008 back to the polls.

We know that engaging them early in the year is the best way to ensure their participation -- so on the weekend of June 5th, we're kicking off our Vote 2010 program on the ground.

Across the country, OFA volunteers will be knocking on doors and making calls in their communities, reconnecting with first-time 2008 voters and asking them to commit to vote again this November.

Use the map above to find an event near you.