var map;
var markerArray = [];
var markerArray_new = [];
var infoHTML = [];
var slideUpdate = false;
var currentTotal;
var redrawPoints = true;
var pathToIcons = "http://techmap.communitech.ca/techmap/images/";
var baseIcon = new GIcon();
baseIcon.image = pathToIcons + "marker8sx.png";
baseIcon.shadow = pathToIcons + "shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
var pin_03000000361 = new GIcon();
pin_03000000361.image = pathToIcons + "weCreate_Pin.png";
pin_03000000361.iconSize = new GSize(45,31);
pin_03000000361.iconAnchor = new GPoint(22,30);
pin_03000000361.infoWindowAnchor = new GPoint(38,3);
pin_03000000361.shadow = pathToIcons + "weCreate_Shadow.png";
pin_03000000361.shadowSize = new GSize(53,33);
var pin_03000000456 = new GIcon();
pin_03000000456.image = pathToIcons + "communitech_Pin.png";
pin_03000000456.iconSize = new GSize(70,37);
pin_03000000456.iconAnchor = new GPoint(35,36);
pin_03000000456.infoWindowAnchor = new GPoint(59,3);
pin_03000000456.shadow = pathToIcons + "communitech_Shadow.png";
pin_03000000456.shadowSize = new GSize(70,37);
var mainIcon = new GIcon();
mainIcon.image = pathToIcons + "communitech_Pin.png";
mainIcon.shadow = pathToIcons + "communitech_Shadow.png";
mainIcon.iconSize = new GSize(70, 37);
mainIcon.shadowSize = new GSize(70, 37);
mainIcon.iconAnchor = new GPoint(17, 36);
mainIcon.infoWindowAnchor = new GPoint(35, 5);
function resetCats() {
$('category_search').innerHTML = ' Main Category: All Main Categories Advanced Manufacturing Information & Communication Technologies Life Sciences/Bio Tech/Environmental Professional Scientific, Tech
';
}
function getCats() {
var myAjax = new Ajax.Request("functions/getPoints.php?", {
method: 'get',
parameters: "action=changecategory&category=" + $('top_category').value,
onComplete: showResponse
});
}
function drawPoints() {
$('spacer').innerHTML = ' Loading Current Locations... ';
$('spacer').style.display = 'block';
if($('search_string').value == '') {
var myAjax = new Ajax.Request("functions/getPoints.php?", {
method: 'get',
parameters: "action=drawpoints" + "&main_category=" + $('top_category').value + "&sub_category=" + $('bottom_category').value,
onComplete: updateMarkersDrawPoints
});
} else {
var myAjax = new Ajax.Request("functions/getPoints.php?", {
method: 'get',
parameters: "action=drawpoints&search=" + $('search_string').value,
onComplete: updateMarkersDrawPoints
});
}
}
function drawPointsChar(charname) {
$('spacer').innerHTML = ' Loading Current Locations... ';
$('spacer').style.display = 'block';
var myAjax = new Ajax.Request("functions/getPoints.php?", {
method: 'get',
parameters: "action=drawpoints" + "&char_search=" + charname,
onComplete: updateMarkersDrawPoints
});
}
function updateViewport() {
$('spacer').innerHTML = ' Found ' + currentTotal + ' Companies Matching Your Search Criteria.';
$('spacer').innerHTML += ' Updating The Map... ';
bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var myAjax = new Ajax.Request("functions/getPoints.php?",
{
method: 'get',
parameters: "action=updateViewport" + "¤tTotal=" + currentTotal + "&main_category=" + $('top_category').value + "&sub_category=" + $('bottom_category').value + "&minx=" + southWest.lng() + "&maxx=" + northEast.lng() + "&miny=" + southWest.lat() + "&maxy=" + northEast.lat(),
onComplete: updateMarkers
});
}
function updateMarkers(originalRequest) {
eval(originalRequest.responseText);
for(k in markerArray) {
if(k != '03-000000361' && k != '03-000000456') {
if(!markerArray_new[k]) {
map.removeOverlay(markerArray[k]);
delete markerArray[k];
}
}}
for(k in markerArray_new) {
if(!markerArray[k]) {
markerArray[k] = markerArray_new[k];
createMarker(markerArray[k],k);
}}
}
function updateMarkersDrawPoints(originalRequest) {
eval(originalRequest.responseText);
for(k in markerArray) {
if(k != '03-000000361' && k != '03-000000456') {
if(!markerArray_new[k]) {
map.removeOverlay(markerArray[k]);
delete markerArray[k];
}
}}
for(k in markerArray_new) {
if(!markerArray[k]) {
markerArray[k] = markerArray_new[k];
createMarker(markerArray[k],k);
}}
if(slideUpdate) { slideUpdate = false; zoomToFit(); slideUpdate = true; } else {
zoomToFit(); }
}
function zoomToFit() {
var xMax = -180;
var xMin = 180;
var yMax = -90;
var yMin = 90;
var viewFactor = 0.9;
for(i in markerArray) {
if(parseFloat(i) > 0) {
if(markerArray[i].getPoint()) {
if (markerArray[i].getPoint().lng() > xMax) { xMax = markerArray[i].getPoint().lng(); }
if (markerArray[i].getPoint().lng() < xMin) { xMin = markerArray[i].getPoint().lng(); }
if (markerArray[i].getPoint().lat() > yMax) { yMax = markerArray[i].getPoint().lat(); }
if (markerArray[i].getPoint().lat() < yMin) { yMin = markerArray[i].getPoint().lat(); }
}}}
var xCenter = (parseFloat((xMax+xMin)/2)).toFixed(6);
var yCenter = (parseFloat((yMax+yMin)/2)).toFixed(6);
var xZoom = (map.getContainer().clientWidth * viewFactor)/(xMax - xMin);
var yZoom = (map.getContainer().clientHeight * viewFactor)/((yMax -yMin)/Math.cos(yCenter*Math.PI/180));
if (yZoom < xZoom) {xZoom = yZoom};
xZoom /= (32/45)*Math.pow(2,17);
for (var i=17; i > 0; i--) {
if (xZoom > 1) {
lastZoom = i;
break;
};
xZoom *= 2;
};
map.setCenter(new GLatLng(yCenter,xCenter),lastZoom);
}
function showResponse(originalRequest) {
eval(originalRequest.responseText);
}
function openInfoWindow(key) {
redrawPoints = false;
markerArray[key].openInfoWindowHtml(infoHTML[key]);
}
function createMarker(marker,key) {
map.addOverlay(marker);
GEvent.addListener(marker, 'click', function() { redrawPoints = false; marker.openInfoWindowHtml(infoHTML[key]); });
}
function removeSelect() {
if($('please_select')) { $('please_select').parentNode.removeChild($('please_select')); } $('search_string').value=''; getCats();
}
function initMap() {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(43.42300370191848, -80.44876098632812), 10);
markerArray['03-000000361'] = new GMarker(new GLatLng(43.4952734298,-80.547723770142),pin_03000000361);infoHTML['03-000000361'] = '
';createMarker(markerArray['03-000000361'],'03-000000361');$('mapList_Permanent').innerHTML += '';markerArray['03-000000456'] = new GMarker(new GLatLng(43.4785843038423,-80.5470371246338),pin_03000000456);infoHTML['03-000000456'] = '
';createMarker(markerArray['03-000000456'],'03-000000456');$('mapList_Permanent').innerHTML += '';
GEvent.addListener(map, 'moveend', function() { if (!redrawPoints) { redrawPoints = true; } else if (slideUpdate) { updateViewport(); } });
}
function onLoad() {
$('search_charList').innerHTML = ' A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0-9 ';
resetCats(); initMap();
if($('please_select')) { $('please_select').selected = 'true'; }
drawPoints();
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
oldonload();
func();
}
}
}
addLoadEvent(onLoad);