﻿var mArray = Array();
var map;
var centerPoint = new GLatLng(54,-3.515625);
var lastMarker;

function doLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.setCenter(centerPoint, 6);
		//map.disableDragging();
		
		var minMapScale = 5;
        //var maxMapScale = 6;
        // get array of map types
        var mapTypes = map.getMapTypes();
        for (var i=0; i<mapTypes.length; i++) {
            mapTypes[i].getMinimumResolution = function() {return minMapScale;}
            //mapTypes[i].getMaximumResolution = function() {return maxMapScale;}
        }
  
		map.addControl(new GScaleControl());
		map.addControl(new GSmallZoomControl());
		map.addControl(new GMapTypeControl());
		GEvent.addListener(map, "extinfowindowclose", function(){lastMarker.show();}); 
		
		
		// Create our "standard" marker icon
        var sIcon = new GIcon(G_DEFAULT_ICON);
        sIcon.image = "assets/images/icons/cottage.png";
        sIcon.shadow = "assets/images/icons/shadow.png";
        sIcon.iconSize = new GSize(21, 26);
        sIcon.shadowSize = new GSize(36, 26);
        sIcon.iconAnchor = new GPoint(3, 25);
        sIcon.infoWindowAnchor = new GPoint(18, -6);
        //fingerIcon.infoShadowAnchor = new GPoint(14, 25);
        sIcon.transparent = "assets/images/icons/blank.png";
        sIcon.printImage = "assets/images/icons/cottage.gif";
        sIcon.mozPrintImage = "assets/images/icons/cottage.gif";
        
        // Create our "premium" marker icon
        var pIcon = new GIcon(G_DEFAULT_ICON);
        pIcon.image = "assets/images/icons/premiumcottage.png";
        pIcon.shadow = "assets/images/icons/shadow.png";
        pIcon.iconSize = new GSize(21, 26);
        pIcon.shadowSize = new GSize(36, 26);
        pIcon.iconAnchor = new GPoint(3, 25);
        pIcon.infoWindowAnchor = new GPoint(18, -6);
        //fingerIcon.infoShadowAnchor = new GPoint(14, 25);
        pIcon.transparent = "assets/images/icons/blank.png";
        pIcon.printImage = "assets/images/icons/premiumcottage.gif";
        pIcon.mozPrintImage = "assets/images/icons/premiumcottage.gif";
            
        // Set up our GMarkerOptions object
        markerOptions = { icon:sIcon };
        premiumMarkerOptions = { icon:pIcon };
	}
}

function addMarkers() {
	if (mArray.length) {
		var bounds = new GLatLngBounds();
		for (n=0 ; n < mArray.length ; n++ ) {
			var mData = mArray[n].split(';');
			var point = new GLatLng(mData[0],mData[1]);
			// if lat is 0, geocode has failed so don't extend the map to include that point
			if(mData[0] > 0)
			{
			    bounds.extend(point);
			}
			var marker = createMarker(point, mData[2], mData[3], mData[4], mData[5], mData[6], mData[7], mData[8]);
			map.addOverlay(marker);
		}
		map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds) - 1); 
	}
}

function createMarker(point, title, cityCounty, desc, url, alt, infoUrl, isPremium) {
	
	var marker;
	
	if(isPremium == 'True'){
	    marker = new GMarker(point,premiumMarkerOptions);
	    
	    GEvent.addListener(marker, "click", function() {
        lastMarker = marker;
        marker.hide();
        
        marker.openExtInfoWindow(map, 'infoWindow', '<div class="bubble"><div class="bubbleImgHolder">' 
		    + '<img class="imgBubble" src="' + url + '" alt="' + alt + '"/></div>' 
		    + '<div class="bubbleTextHolder"><h3>' + title + '</h3><h4>' + cityCounty + '</h4><p>' 
		    + desc + '</p></div><div class="bubbleButtons"><a class="linkInfo" href="' + infoUrl + '">'
		    + '<span>More Info</span></a> <a class="linkViewVideo" href="' + infoUrl + '">'
		    + '<span>Video</span></a></div></div>', {beakOffset: 3});
            
    //var position = marker.getPoint(); 
    //map.panTo(new GLatLng(position.lat(), position.lng()));
    });
	    
	}
	else{
	    marker = new GMarker(point,markerOptions);
	    
	    GEvent.addListener(marker, "click", function() {
        lastMarker = marker;
        marker.hide();
        
        marker.openExtInfoWindow(map, 'infoWindow', '<div class="bubble"><div class="bubbleImgHolder">' 
		    + '<img class="imgBubble" src="' + url + '" alt="' + alt + '"/></div>' 
		    + '<div class="bubbleTextHolder"><h3>' + title + '</h3><h4>' + cityCounty + '</h4><p>' 
		    + desc + '</p></div><div class="bubbleButtons"><a class="linkInfo" href="' + infoUrl + '">'
		    + '<span>More Info</span></a></div></div>', {beakOffset: 3});
            
    //var position = marker.getPoint(); 
    //map.panTo(new GLatLng(position.lat(), position.lng()));
    });
	}

	return marker;	
}
