var isIE = false; var mapItems =new Array(); var items; var itemVisible; var markerAdded=false; var markerEdit=false; var addItem=false; var firstTime=true; window.onload = function() { //$("additem").style.display = "none"; //gmaps map = new GMap($("map")); map.setMapType(G_HYBRID_MAP); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); //var lsc = new google.maps.LocalSearch(); //map.addControl(new google.maps.LocalSearch()); map.centerAndZoom(new GPoint(-7.84375, 53.308687886770034), 10); //better name needed ajaxRequest(tag); GEvent.addListener(map, 'moveend', function() { setCookie(); ajaxRequest(tag); }); GEvent.addListener(map, 'click', function(overlay, point) { if (point&&addItem) { addItemClick(point); //map.centerAndZoom(point,2); } }); } function setCookie() { var centre = map.getCenterLatLng(); var zoom = map.getZoomLevel(); var user = $('user').value; var url="lat="+centre.y+"&lng="+centre.x+"&zoom="+zoom+"&user="+user; new ajax('mapeireCookieSet.php', {postBody: url }); } function changeTag(newTag) { tag=newTag; $('tags').value=tag; ajaxRequest(tag); viewRecentTab(); } function parseLocation(request) { if(request.responseText!="") { items = request.responseText.getElementsByTagName("location"); lat="53"; lng="-7"; zoom="10"; if(items[0]!=null) { lng =getElementTextNS("", "longitude", items[0], 0); lat =getElementTextNS("", "latitude", items[0], 0); zoom = 7; } } } function ajaxRequest(tags) { var url= "/preview/mapeireGeoRss.php?tags="+tags; var georss=url; var request = GXmlHttp.create(); request.open('GET',url , true); removeRecentItems(); request.onreadystatechange = function() { if (request.readyState == 4) { xmlDoc = request.responseXML; displayRecentItems(xmlDoc); //loaded $("search").innerHTML="
"; $("state").innerHTML=""; } else if (request.readyState == 1) { //loading message $("state").innerHTML="loading..."; } // error handling needed } request.send(null); } function removeRecentItems() { for(var i=0;i"+(i+1)+". "+title+""+text+""; //userElement=$("user"+(i+1)); leftHTML+="Added on "+date+" by "+author; leftHTML+=""; //listitemElement=$("listitem"+(i+1)); //listitemElement.style.display='block'; map.removeOverlay(mapItems[i]); var point = new GLatLng(geoLat, geoLong); //rectBounds.extend(point); mapItems[i] = createMarker(point, i, "http://preview.mapeire.com/images/feedMarker."+(i+1)+".png", 20, 34); //add icon map.addOverlay(mapItems[i]); } /* if(firstTime) { var mapZoom = map.getBoundsZoomLevel(rectBounds); if(mapZoom>17) { mapZoom=17; } map.setCenter(rectBounds.getCenter(),mapZoom); firstTime=false; } */ leftHTML+=""; // $("items"); var left = document.getElementById("items"); left.innerHTML=leftHTML; } function getElementTextNS(prefix, local, parentElem, index) { var result = ""; if (prefix && isIE) { result= parentElem.getElementsByTagName(prefix + ":" + local)[index]; } else { result = parentElem.getElementsByTagName(local)[index]; } if (result) { if (result.childNodes.length > 1) { return result.childNodes[1].nodeValue; } else { if (result.firstChild == null) return 'n/a'; return result.firstChild.nodeValue; } } else { return "n/a"; } } function createMarker(point, item, img, width, height) { icon = new GIcon(); icon.image = img; icon.shadow = "http://www.google.com/mapfiles/shadow50.png"; icon.iconSize = new GSize(width, height); icon.shadowSize = new GSize(37, 34); icon.iconAnchor = new GPoint(9, 34); icon.infoWindowAnchor = new GPoint(9, 2); icon.infoShadowAnchor = new GPoint(18, 25); var marker = new GMarker(point,icon); GEvent.addListener(marker, "click", function() {itemClick(item)}); return marker; } function itemClick(i) { title =getElementTextNS("", "title", items[i], 0); text =getElementTextNS("", "description", items[i], 0); link = getElementTextNS("", "link", items[i], 0); author =getElementTextNS("", "author", items[i], 0); tags =getElementTextNS("", "tags", items[i], 0); date =getElementTextNS("", "pubDate", items[i], 0); geoLat = getElementTextNS("geo", "lat", items[i], 0); geoLong = getElementTextNS("geo", "long", items[i], 0); temp = tags.split(' '); var infouser="Added on "+ date; //this is a mess fix asap var html; html="
"+title+"
"; if(link!="n/a") { html="
"; } html+="
"+infouser+"
"+text; html+="
"; //if item isn't visibl if(!itemVisible) { //empty stub //save point and zoom centre = map.getCenterLatLng(); zoom = map.getZoomLevel(); //remove listener GEvent.clearListeners(map, 'moveend'); //map.disableDragging(); } else { //problem //zoomed = true; } //move map var pt = new GLatLng(geoLat, geoLong); map.openInfoWindowHtml(pt,html,0,openItem(pt),closeItem); } function toggle(whichOne) { if (document.getElementById(whichOne).style.display == 'none') document.getElementById(whichOne).style.display = ''; else document.getElementById(whichOne).style.display = 'none'; } function openItem(pt) { if(itemVisible) { zoomOut=false; } else { zoomOut=true; } itemVisible=true; if(map.getZoom>3) { map.setCenter(pt,3); } else { map.panTo(pt); } } function closeItem() { /* this was annoying if(zoomOut) { //restore point and zoom map.centerAndZoom(centre, zoom); //add listener GEvent.addListener(map, 'moveend', function() { ajaxRequest(tag); }); itemVisible=false; } else { zoomOut=true; } */ } function editItem(i) { map.closeInfoWindow(); // remove marker alert("02/04/2006 edit isn't working yet"); title =getElementTextNS("", "title", items[i], 0); text =getElementTextNS("", "description", items[i], 0); link = getElementTextNS("", "link", items[i], 0); author =getElementTextNS("", "author", items[i], 0); tags =getElementTextNS("", "category", items[i], 0); date =getElementTextNS("", "pubDate", items[i], 0); geoLat = getElementTextNS("geo", "lat", items[i], 0); geoLong = getElementTextNS("geo", "long", items[i], 0); map.clearOverlays(); if(markerAdded) { map.removeOverlay(marker); } //add new marker marker = new GMarker(new GPoint(geoLong,geoLat)); map.addOverlay(marker); markerEdit=true; markerAdded=true; $('addmapitem').style.display="block"; $('georss').style.display="none"; $('items').style.display="none"; $('geo:lat').value=geoLat; $('geo:long').value=geoLong; $('title').value=title; $('user').value=user; if($('user').value=="") { $('user').focus(); } else { $('title').focus(); } $('description').value=text; $('tags').value=tags; $('link').value=link; } function addItemClick(point) { var zoomLevel = map.getZoomLevel(); if(zoomLevel>4) { zoomLevel=4; } map.centerAndZoom(point,zoomLevel); //check for old marker if(markerAdded) { map.removeOverlay(marker); } //add new marker marker = new GMarker(point); map.addOverlay(marker); markerAdded=true; if(!markerEdit) { $('addmapitem').style.display="block"; $('georss').style.display="none"; $('items').style.display="none"; $('geo:lat').value=point.y; $('geo:long').value=point.x; $('title').value=""; $('user').value=user; if($('user').value=="") { $('user').focus(); } else { $('title').focus(); } $('description').value=""; $('tags').value=tag; $('link').value=""; } } function addItemCancel(marker) { if(markerAdded) { map.removeOverlay(marker); } markerAdded=false; addItem=false; viewRecentTab(); } function addItemSend(form,marker) { if(!markerEdit&&form.user.value!=""&&form.title.value!=""&&form.tags.value!=""&&form.description.value!="") { var ItemAdd = 'lat='+form.lat.value+'&lng='+form.lng.value+'&user='+form.user.value+'&title='+form.title.value+'&description='+form.description.value+'&link='+form.link.value+'&tags='+form.tags.value; new ajax('/preview/mapeireItemAdd.php', {postBody: ItemAdd , update: $('event'), onComplete: addItemReceive}); addItemCancel(marker); } else { $('event').innerHTML="* Please fill in all required information"; } } function addItemReceive(request) { ajaxRequest(tag); //fade event out } function viewTagsTab() { $('items').style.display="none"; $('addmapitem').style.display="none"; $('tagcloud').style.display="block"; $('about').style.display="none"; changeTab('tagsTab','current'); changeTab('recentitems',''); changeTab('additemtab',''); changeTab('aboutTab',''); addItem=false; } function viewRecentTab() { $('items').style.display="block"; $('tagcloud').style.display="none"; $('addmapitem').style.display="none"; $('about').style.display="none"; changeTab('recentitems','current'); changeTab('tagsTab',''); changeTab('additemtab',''); changeTab('aboutTab',''); addItem=false; } function viewAddItemTab() { $('addmapitem').style.display="block"; $('items').style.display="none"; $('tagcloud').style.display="none"; $('about').style.display="none"; changeTab('additemtab','current'); changeTab('recentitems',''); changeTab('tagsTab',''); changeTab('aboutTab',''); addItem=true; } function viewAboutTab() { $('addmapitem').style.display="none"; $('items').style.display="none"; $('tagcloud').style.display="none"; $('about').style.display="block"; changeTab('additemtab',''); changeTab('recentitems',''); changeTab('tagsTab',''); changeTab('aboutTab','current'); addItem=false; } function changeTab(id, newClass) { $(id).className=newClass; }