﻿// JScript File

var gmarkers = [];
var pointTypes = [];
var visibleTypes = [];
var pts = new Array();
var map = null;
var mgr = null;

function pt(lat, lon, url, html, related, type) {
    this.latitude = lat;
    this.longitude = lon;
    this.url = url;
    this.html = html;
    this.related  = related;
    this.type = type;
}

// Map zoom setup

/*
var mapRegions = new Array();

var regionReset = new Object();
regionReset.name = "Reset";
regionReset.zoom = 2;
regionReset.point = new GLatLng(47.517200697839414,-103.095703125);
mapRegions.push(regionReset);

var regionCanada = new Object();
regionCanada.name = "Canada";
regionCanada.zoom = 4;
regionCanada.point = new GLatLng(57.562995459387125,-98.349609375);
mapRegions.push(regionCanada);

var regionMexico = new Object();
regionMexico.name = "Mexico";
regionMexico.zoom = 5;
regionMexico.point = new GLatLng(22.958393318086348,-100.7666015625);
mapRegions.push(regionMexico);

var regionMidWest = new Object();
regionMidWest.name = "MidWest";
regionMidWest.zoom = 5;
regionMidWest.point = new GLatLng(41.60722821271716,-92.28515625);
mapRegions.push(regionMidWest);

var regionNorthCountry = new Object();
regionNorthCountry.name = "NorthCountry";
regionNorthCountry.zoom = 5;
regionNorthCountry.point = new GLatLng(45.61403741135093,-108.984375);
mapRegions.push(regionNorthCountry);

var regionRockies = new Object();
regionRockies.name = "Rockies";
regionRockies.zoom = 5;
regionRockies.point = new GLatLng(40.34654412118006,-114.0380859375);
mapRegions.push(regionRockies);

var regionSouthEast = new Object();
regionSouthEast.name = "SouthEast";
regionSouthEast.zoom = 5;
regionSouthEast.point = new GLatLng(31.50362930577303,-86.4404296875);
mapRegions.push(regionSouthEast);

var regionSouthWest = new Object();
regionSouthWest.name = "SouthWest";
regionSouthWest.zoom = 5;
regionSouthWest.point = new GLatLng(33.8339199536547,-107.3583984375);
mapRegions.push(regionSouthWest);

var regionNorthEast = new Object();
regionNorthEast.name = "NorthEast";
regionNorthEast.zoom = 5;
regionNorthEast.point = new GLatLng(40.78054143186031,-78.2666015625);
mapRegions.push(regionNorthEast);

var regionSouthAmerica = new Object();
regionSouthAmerica.name = "SouthAmerica";
regionSouthAmerica.zoom = 3;
regionSouthAmerica.point = new GLatLng(-19.642587534013032,-67.5);
mapRegions.push(regionSouthAmerica);

var regionAlaska = new Object();
regionAlaska.name = "Alaska";
regionAlaska.zoom = 4;
regionAlaska.point = new GLatLng(63.509375401175134,-154.248046875);
mapRegions.push(regionAlaska);

function ZoomRegion(regionValue) {
	//alert("region value:" + regionValue);
	var reg = mapRegions[regionValue];
	map.setCenter(reg.point, reg.zoom);
}
*/

function AnounceCenter() {
	var centerPoint = map.getCenter();
	alert("lat: " + centerPoint.lat() + "\n lon: " + centerPoint.lng());
	//alert("hello center");
}



var baseIcon = new GIcon();
baseIcon.iconSize = new GSize(30,37);  
//baseIcon.shadowSize = new GSize(44,37);  
baseIcon.iconAnchor = new GPoint(14,37); 
baseIcon.infoWindowAnchor = new GPoint(14,22);  
//baseIcon.infoShadowAnchor = new GPoint(19,27);

function createMarker(type, point, arrayIndex, url, html, related) {
	
	var icon = new GIcon(baseIcon);
	icon.image = url;
	var tabs = new Array();
	
	var t1 = new GInfoWindowTab('Info',html)
	tabs.push(t1);
	//var t2=new GInfoWindowTab('Related',related)
	//tabs.push(t2);
	
	var marker = new GMarker(point, icon);
	marker.bindInfoWindowTabsHtml(tabs);
	
	// Add marker to array so we can trigger later 
	gmarkers[arrayIndex] = marker;
    //pointTypes[arrayIndex] = type;
    

	return marker;
};

// This function picks up the click and opens the corresponding info window
function myclick(i) {
	GEvent.trigger(gmarkers[i], "click");
};


function loadMap() {
	if (GBrowserIsCompatible()) {
	
	    var args = loadMap.arguments;
	    var argc = args.length;
	    
	    var lat = (argc > 0 ? args[0] : 41.5);//
	    var lon = (argc > 1 ? args[1] : -91.438583);//
	    var zoom = (argc > 2 ? args[2] : 4);

		map = new GMap2(document.getElementById("map"));
        map.addControl(new GMapTypeControl());
		map.addControl(new GLargeMapControl());
		//map.setCenter(new GLatLng(41.5,-94), 4);
		map.setCenter(new GLatLng(lat, lon), zoom);
		if(map.isLoaded() == true)
		    addHuntingIcons();
	    //window.setTimeout(addOverlays, 1000);
	}
}

/*
function addOverlays(){
    for (var i=0; i < pts.length; i++) {
		var point = new GLatLng(pts[i].latitude,pts[i].longitude);
		map.addOverlay(createMarker(point, i, pts[i].url, pts[i].html, pts[i].related));
	}
}
*/

function addOverlays(){
    for (var i = 0; i < pts.length; i++) {
		var point = new GLatLng(pts[i].latitude, pts[i].longitude);
		currentMarker = createMarker(pts[i].type, point, i, pts[i].url, pts[i].html, pts[i].related);
	}
	
	map.clearOverlays();
	mgr = new MarkerManager(map);
	mgr.addMarkers(gmarkers, 3);
	mgr.refresh();
}

//function updateMap(markers){
//	mgr = new MarkerManager(map);
//	map.clearOverlays();
//	mgr.addMarkers(markers, 3);
//	mgr.refresh();
//}

//function cbFilter_Click(checked, type){
//    visibleTypes[type] = checked;
//    var currentMarkers = new Array();
//    
//    for(var i = 0; i < pointTypes.length; i++){
//        if(visibleTypes[pointTypes[i]] == true) currentMarkers.push(gmarkers[i]);
//    }
//    
//    updateMap(currentMarkers);
//}

//visibleTypes[20] = true;
//visibleTypes[40] = true;
//visibleTypes[44] = true;

function shadeRegion(){
    var shadedPoints = new Array();
    shadedPoints.push(new GLatLng(41.5086, -91.406));
    shadedPoints.push(new GLatLng(49.2104, -91.758));
    shadedPoints.push(new GLatLng(50.345, -66.9727));
    var polygon = new GPolygon(shadedPoints, null, 0, 0.9, "#333", 0.9);
    if(map) map.addOverlay(polygon);
}