function collapseMenu() { document.getElementById('islbtoggle').checked = ''; } function submitByEnterKey(event, button_to_action) { var code = (event.keyCode ? event.keyCode : event.which); if (code == 13) { document.getElementById(button_to_action).click(); } return; } function changeSubcatList(tok, ssn, app_code, category) { if (window.XMLHttpRequest) { //IE7+, Firefox, Chrome, Opera, Safari var xmlhttp_subcat_list=new XMLHttpRequest(); } else { //IE6, IE5 var xmlhttp_subcat_list=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp_subcat_list.open("POST","create_page.php", true); //Send the proper header information along with the request xmlhttp_subcat_list.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xmlhttp_subcat_list.onreadystatechange=function() { if (xmlhttp_subcat_list.readyState==4 && xmlhttp_subcat_list.status==200) { document.getElementById("subcategory_list").innerHTML=xmlhttp_subcat_list.responseText; } } xmlhttp_subcat_list.send("page=index&tok="+tok+"&ssn="+ssn+"&app_code="+app_code+"&func=subcat_change&type="+category); } function setStartupMap(location) { if(location != "") { var GEOCODING = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=' + location.coords.latitude + '%2C' + location.coords.longitude + '&language=en&key=AIzaSyDhZ6LZt8nAupnIgM7tshldG87EyA-wFY4'; $.getJSON(GEOCODING).done(function(location) { document.getElementById("addressInput").value = location.results[0].formatted_address; }) } searchBusNearPos(location, "true"); return; } function setUserStartupMap(location) { if(location != "") { var GEOCODING = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=' + location.lat() + '%2C' + location.lng() + '&language=en&key=AIzaSyDhZ6LZt8nAupnIgM7tshldG87EyA-wFY4'; } searchBusNearPos(location, ""); return; } function currentLocationMap(location) { searchBusNearPos(location, "true"); return; } function loadMap(address) { if(address == "") { navigator.geolocation.getCurrentPosition( setStartupMap, function(){ setStartupMap(""); }, { enableHighAccuracy: true, timeout : 500 } ); } else { //load the map with the intial location setting var geocoder = new google.maps.Geocoder(); geocoder.geocode({address: address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { setUserStartupMap(results[0].geometry.location); } else { setUserStartupMap(""); } }); } map = new google.maps.Map(document.getElementById("map"), { center: {lat:46.327908, lng:-79.497185}, zoom: 3, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU} }); infoWindow = new google.maps.InfoWindow(); locationSelect = document.getElementById("locationSelect"); locationSelect.onchange = function() { var markerNum = locationSelect.options[locationSelect.selectedIndex].value; if (markerNum != "none"){ google.maps.event.trigger(markers[markerNum], 'click'); } }; } function clearLocations() { infoWindow.close(); for (var i = 0; i < markers.length; i++) { markers[i].setMap(null); } markers.length = 0; locationSelect.innerHTML = ""; document.getElementById("search_results").innerHTML = ""; } function searchLocations() { var address = document.getElementById("addressInput").value.toLowerCase(); if(address == "current location") { navigator.geolocation.getCurrentPosition(currentLocationMap); return; } else { var geocoder = new google.maps.Geocoder(); geocoder.geocode({address: address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { searchBusNearPos(results[0].geometry.location, ""); } else { searchBusNearPos("", "true"); } }); } } function searchBusNearPos(center, init_map) { var map_radius = 250; var bus_type = ""; var bus_subcat = ""; if(center == "") { var map_radius = 1000; var bus_type = document.getElementById('site_bus_type').value; var bus_subcat = document.getElementById('site_bus_subcat').value; //headquarters var center_lat = 45.42153; var center_lng = -75.697193; clearLocations(); } else { if(init_map == "true") { clearLocations(); var center_lat = center.coords.latitude; var center_lng = center.coords.longitude; } else { clearLocations(); var map_radius = document.getElementById('radiusSelect').value; var bus_type = document.getElementById('site_bus_type').value; var bus_subcat = document.getElementById('site_bus_subcat').value; var center_lat = center.lat(); var center_lng = center.lng(); } } //parse the url string var SearchString = window.location.search.substring(1); var VariableArray = SearchString.split('&'); var ssn = ''; var app_code = 0; var tok = 0; if(VariableArray.length > 0) { for(var i = 0; i < VariableArray.length; i++){ var KeyValuePair = VariableArray[i].split('='); if(KeyValuePair[0] == "tok"){ tok = KeyValuePair[1]; if(tok == "") { tok = 0; } } if(KeyValuePair[0] == "ssn"){ ssn = KeyValuePair[1]; if(ssn == "") { ssn = ''; } } if(KeyValuePair[0] == "app_code"){ app_code = KeyValuePair[1]; if(app_code == "") { app_code = 0; } } } } encoded_addr = encodeURIComponent(document.getElementById("addressInput").value); var searchUrl = 'create_map.php?tok='+tok+'&ssn='+ssn+'&app_code='+app_code+'&lat='+center_lat+'&lng='+center_lng+"&radius="+map_radius+"&type="+bus_type+"&subcat="+bus_subcat+"&addr="+encoded_addr; downloadUrl(searchUrl, function(data) { var farthest_point = map_radius; var xml = parseXml(data); var markerNodes = xml.documentElement.getElementsByTagName("marker"); var bounds = new google.maps.LatLngBounds(); if(markerNodes.length > 0) { for (var i = 0; i < markerNodes.length; i++) { var tok = markerNodes[i].getAttribute("tok"); var ssn = markerNodes[i].getAttribute("ssn"); var app_code = markerNodes[i].getAttribute("app_code"); var name = markerNodes[i].getAttribute("name"); var address = markerNodes[i].getAttribute("address"); var site_url = markerNodes[i].getAttribute("site_url"); var tel = markerNodes[i].getAttribute("tel"); var id = markerNodes[i].getAttribute("id"); var warning_text = markerNodes[i].getAttribute("warning"); var distance = parseFloat(markerNodes[i].getAttribute("distance")); if(distance > farthest_point) { farthest_point = distance; } var lat_lng = new google.maps.LatLng( parseFloat(markerNodes[i].getAttribute("lat")), parseFloat(markerNodes[i].getAttribute("lng"))); generateMapMarker(tok, ssn, app_code, lat_lng, name, tel, address, site_url, id); createOption(name, distance, i); bounds.extend(lat_lng); } } else { var errData = xml.documentElement.getElementsByTagName("error"); for (var i = 0; i < errData.length; i++) { var warning_text = errData[i].getAttribute("warning"); } } center_latLng = new google.maps.LatLng(center_lat, center_lng); //center on the center location and radius given var circ = new google.maps.Circle( { strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35, radius: farthest_point*600, center: center_latLng } ); map.setCenter(center_latLng); map.fitBounds(circ.getBounds()); // updates markers google.maps.event.trigger(map,'dragend'); locationSelect.style.visibility = "visible"; locationSelect.onchange = function() { var markerNum = locationSelect.options[locationSelect.selectedIndex].value; google.maps.event.trigger(markers[markerNum], 'click'); }; //dynamic_details approach if (window.XMLHttpRequest) { //IE7+, Firefox, Chrome, Opera, Safari var xmlhttp_results=new XMLHttpRequest(); } else { //IE6, IE5 var xmlhttp_results=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp_results.open("POST","create_page.php", true); //Send the proper header information along with the request xmlhttp_results.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xmlhttp_results.onreadystatechange=function() { if (xmlhttp_results.readyState==4 && xmlhttp_results.status==200) { document.getElementById("search_results").innerHTML=xmlhttp_results.responseText; if(warning_text != "") { openModal(warning_text); } } } xmlhttp_results.send("page=index&tok="+tok+"&ssn="+ssn+"&func=listing_results"); }); } function generateMapMarker(tok, ssn, app_code, lat_lng, name, tel, address, site_url, id) { if(site_url !="") { var html = "   " + name + "   
" + address +"
"+tel+"

GO TO SITE

"; } else { var html = "   " + name + "   
" + address +"
"+tel+"

"; } var marker = new google.maps.Marker({ map: map, position: lat_lng, }); google.maps.event.addListener(marker, 'click', function() { infoWindow.setContent(html); infoWindow.open(map, marker); }); google.maps.event.addListener(marker, 'mouseover', function() { infoWindow.setContent(html); infoWindow.open(map, marker); }); markers.push(marker); } function createOption(name, distance, num) { var option = document.createElement("option"); option.value = num; option.innerHTML = name + " (" + distance.toFixed(1) + " km)"; locationSelect.appendChild(option); } function downloadUrl(url, callback) { var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest; request.onreadystatechange = function() { if (request.readyState == 4) { request.onreadystatechange = emptyFunc(); callback(request.responseText, request.status); } }; request.open('GET', url, true); request.send(null); } function parseXml(str) { if (window.ActiveXObject) { var doc = new ActiveXObject('Microsoft.XMLDOM'); doc.loadXML(str); return doc; } else if (window.DOMParser) { return (new DOMParser).parseFromString(str, 'text/xml'); } } function emptyFunc() {} var check_counter = 0; function checkCount(element_id, is_checked) { if(is_checked) { //increase the check count check_counter++; } else { if(check_counter == 1) { document.getElementById(element_id).checked = true; return false; } else { check_counter--; } } } function closeModal(reload,clear_contents) { if(clear_contents) { document.getElementById("system_modal").innerHTML=""; } document.getElementById("system_overlay").style.visibility = "hidden"; document.getElementById("system_modal").style.visibility = "hidden"; if(reload) { current_href = window.location.href; current_href = str_replace("alert","reload"); window.location.assign(current_href); } } function openModal(content) { document.getElementById("system_modal").innerHTML=content; document.getElementById("system_overlay").style.visibility = "visible"; document.getElementById("system_modal").style.visibility = "visible"; }