/* StupendouslyAwesomeJavaScriptFunctions for menudb.ca */

function showLocation(id, locale) { var req = null; document.getElementById("menu_area").innerHTML = "<span class=\"tplain cblack\">Started...</span>"; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); if (req.overrideMimeType) { req.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } req.onreadystatechange = function() { document.getElementById("menu_area").innerHTML = "<br><span class=\"tplain cblack\">&nbsp;&nbsp;Loading . . .</span>"; if(req.readyState == 4) { if(req.status == 200) { document.getElementById("menu_area").innerHTML = req.responseText; } else { document.getElementById("menu_area").innerHTML = "<span class=\"tplain cblack\">MenuDB Error " + req.status + " -- Please use the contact form to let us know what happened so it can be fixed!</span>"; } } }; req.open("GET", "view_genmenu?locale=" + locale + "&id=" + id, true); req.send(null); }
function cLoadCat(locale, cat) { var req = null; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); if (req.overrideMimeType) { req.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } req.onreadystatechange = function() { if(req.readyState == 4) { if(req.status == 200) { document.getElementById("cat_load").innerHTML = req.responseText; } } }; req.open("GET", "/t/click?locale=" + locale + "&pg=sort_loc&cat=" + cat, true); req.send(null); }
function cLoadCentre(locale, centre) { var req = null; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); if (req.overrideMimeType) { req.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } req.onreadystatechange = function() { if(req.readyState == 4) { if(req.status == 200) { document.getElementById("cat_load").innerHTML = req.responseText; } } }; req.open("GET", "/t/click?locale=" + locale + "&pg=sort_loc&centre=" + centre, true); req.send(null); }
function blankMenu() { document.getElementById("menu_area").innerHTML = ""; }
function mdbCreateMarker(cMarker){ var lat = parseFloat(cMarker.getAttribute("lat")); var lng = parseFloat(cMarker.getAttribute("lng")); var point = new GLatLng(lat,lng); var name = cMarker.getAttribute("name"); var cat = cMarker.getAttribute("cat"); var sum = cMarker.getAttribute("sum"); var id = cMarker.getAttribute("id"); var marker = new GMarker(point, {icon:redicon}); gmarkers.push(marker); GEvent.addListener(marker, "click", function() { var iwAnchor = marker.getIcon().infoWindowAnchor; var iconAnchor = marker.getIcon().iconAnchor; var offset = new GSize(iwAnchor.x-iconAnchor.x,iwAnchor.y-iconAnchor.y); map.openInfoWindowHtml(marker.getLatLng(), "<span class=\"tplain cblack\"><b>" + name + "</b><br>" + sum + "</span>", {pixelOffset:offset}); showLocation(id, cLocale); }); return marker; }
function mdbCreateAltMarker(cMarker){ var lat = parseFloat(cMarker.getAttribute("alat")); var lng = parseFloat(cMarker.getAttribute("alng")); var point = new GLatLng(lat,lng); var locale_name = cMarker.getAttribute("locale_name"); var locale_city = cMarker.getAttribute("locale_city"); var altmarker = new GMarker(point, {icon:blueicon}); altgmarkers.push(altmarker); GEvent.addListener(altmarker, "click", function() { var iwAnchor = altmarker.getIcon().infoWindowAnchor; var iconAnchor = altmarker.getIcon().iconAnchor; var offset = new GSize(iwAnchor.x-iconAnchor.x,iwAnchor.y-iconAnchor.y); map.openInfoWindowHtml(altmarker.getLatLng(), "<span class=\"tplain cblack\"><a href=\"/e/sort_loc?locale=" + locale_name + "\">Visit menudb.ca in " + locale_city + "</a></span>", {pixelOffset:offset}); }); return altmarker; }
function mdbParseXml(doc, item){ var xmlDoc = GXml.parse(doc); var markers = xmlDoc.documentElement.getElementsByTagName(item); return markers; }
function mdbGetCentre(centres, centrename){ for (var i = 0; i < centres.length; i++) { var aname = centres[i].getAttribute("aname"); if( aname == centrename ){ var lat = parseFloat(centres[i].getAttribute("lat")); var lng = parseFloat(centres[i].getAttribute("lng")); var centre = new GLatLng(lat,lng); break; }} return centre; }
function mdbGetCentreZoom(centres, centrename){ for (var i = 0; i < centres.length; i++) { var aname = centres[i].getAttribute("aname"); if( aname == centrename ){ var zoom = parseFloat(centres[i].getAttribute("zoom")); break; }} return zoom; }
function mdbShowCentre(newCentre){ blankMenu(); theCentre = mdbGetCentre( centres, newCentre ); theCentreZoom = mdbGetCentreZoom( centres, newCentre ); map.setCenter( theCentre, theCentreZoom ); cLoadCentre( cLocale, newCentre ); }
function mdbShowCat(newCat){ if( newCat == "All" ){ for (var i = 0; i < markers.length; i++) { var marker = mdbCreateMarker( markers[i] ); }} else if( newCat == "None" ){ /* pure magic here */ } else{ for (var i = 0; i < markers.length; i++) { cat = markers[i].getAttribute("cat"); if( cat == newCat ){ var marker = mdbCreateMarker( markers[i] ); }}}}
function mdbShowAltLocs(){ for (var i = 0; i < altlocales.length; i++) { var altmarker = mdbCreateAltMarker( altlocales[i] ); }}
function mdbShowCat2(newCat, intype){ gmarkers.length = 0; mm.clearMarkers(); map.clearOverlays(); mdbShowAltLocs(); mm.addMarkers(altgmarkers, 0, 9); blankMenu(); if( newCat != "None" ){ mdbShowCat( newCat ); mm.addMarkers(gmarkers, 10, 17); mm.refresh(); } if( intype != 1 ){ cLoadCat( cLocale, newCat ); }}
function mdbIconSize(cIcon){ cIcon.shadow = "/s/icon/dot_shadow.png"; cIcon.iconSize = new GSize(32, 32); cIcon.shadowSize = new GSize(59, 32); cIcon.iconAnchor = new GPoint(16, 32); cIcon.infoWindowAnchor = new GPoint(16, 0); return cIcon; }

