
/* ----- googleMaps.js ----- */
// http://www.communitiesconnect.org/portal_javascripts/googleMaps.js?original=1
var orgs;var map;var tagGroups=[];var dmarker;tagGroups["Community Technology Center"]=[];tagGroups["Library"]=[];tagGroups["Community Technology Program"]=[];tagGroups["School"]=[];tagGroups["CT Advocate"]=[];tagGroups["Nonprofit"]=[];tagGroups["CT Educator/Trainer"]=[];tagGroups["Public Agency"]=[];tagGroups["CT Funder"]=[];tagGroups["Business"]=[];
function loadMap(){if(GBrowserIsCompatible()){document.getElementById('tagSelectorWidget').getElementsByTagName("input")[0].checked=true;var mapDivNode=document.getElementById("MapDiv");map=new GMap2(mapDivNode);map.addControl(new GSmallMapControl());map.addControl(new GMapTypeControl());map.setCenter(new GLatLng(47.5,-120.75),6);GEvent.addListener(map,"moveend", function(){var center=map.getCenter();var zoom=map.getZoom()});var orgFeedUrl=document.orgData.orgDataUrl.value;var orgFeedUrl='./mapentries_json'
GDownloadUrl(orgFeedUrl,processOrganizations);return map}};
function addDetailMarker(point){if(dmarker) map.removeOverlay(dmarker);var icon=createIcon('blue');dmarker=new GMarker(point,icon);map.addOverlay(dmarker)}
function addMarker(org){if(org.tagCount>1){var icon=createIcon('red')}
else{var icon=createIcon('yellow')}
var marker=new GMarker(org.point,icon);index=findIndex(orgs,org);GEvent.addListener(marker,"click", function(){marker.openInfoWindowHtml('<div id="infoWindowHtml"><b>'+org.title+"</b><br>"+org.street+', '+org.zip+"</div>");displayDetail(org.sfid,index);addDetailMarker(org.point)});map.addOverlay(marker)};
function createIcon(color){var icon=new GIcon();icon.image="http://labs.google.com/ridefinder/images/mm_20_"+color+".png";icon.shadow="http://labs.google.com/ridefinder/images/mm_20_shadow.png";icon.iconSize=new GSize(12,20);icon.shadowSize=new GSize(22,20);icon.iconAnchor=new GPoint(6,20);icon.infoWindowAnchor=new GPoint(5,1);return icon}
function removeDetail(){document.getElementById('organization_detail').innerHTML='';map.removeOverlay(dmarker)}
function displayDetail(sfid,orgid,zoom){document.getElementById('organization_detail').style.display="block";map.setCenter(orgs[orgid].point,zoom);addDetailMarker(orgs[orgid].point);GDownloadUrl('./'+sfid,
function(data,responseCode){var html=GXml.parse(data);document.getElementById('organization_detail').innerHTML=data})}
function writeName(org){index=findIndex(orgs,org);var desc='<b><a href="javascript:displayDetail(\''+org.sfid+'\','+index+','+15+')">'+org.title+'</a></b><br>';if(org.website){desc+='<a href="'+org.website+'" target="_blank">'+org.website.replace('http://www.','www.')+'</a><br>'}
if(org.phone){desc+=org.phone+'<br>'}
desc+='<br>';return desc}
function findIndex(array,value){var ctr="";for(var i=0;i<array.length;i++){if(array[i]==value){return i}}
return ctr};
function getSelectedBoxes(formId){var v=[];var f=document.getElementById(formId);var inp=f.getElementsByTagName("input");for(var i=0;i<inp.length;++i){if(inp[i].type.toLowerCase()=="checkbox"){if(inp[i].checked==true){v.push(inp[i].value)}}}
return v}
function in_array(needle,haystack){var n=haystack.length;for(var i=0;i<n;i++){if(haystack[i]==needle){return true}}
return false}
function displayOrganizations(){var selectedTags=getSelectedBoxes('tagSelectorWidget');var html='';map.clearOverlays();for(var i=0;i<orgs.length;i++){for(var j=0;j<orgs[i].tags.length;j++){if(in_array(orgs[i].tags[j],selectedTags)){html+=writeName(orgs[i]);addMarker(orgs[i]);break}}}
document.getElementById("mapdirectory_listing").innerHTML=html}
function compare(a,b){return(b.title<a.title)-(a.title<b.title)}
function processOrganizations(doc){var json=eval('('+doc+')');orgs=json.markers;orgs.sort(compare);displayOrganizations()}

