﻿var boxes;
var hovering = false;

function newMap(mapId, location, zoom, mType) {
	//console.log($("#" + mapId));
	return new Microsoft.Maps.Map($("#"+mapId)[0],
			{credentials: "Aq8BId2_cPDXXB2RMBkwHbqaGIWFUDkiaOdRCDgon2jBmajjvPGKgR_4bX9_vBlZ",
			center: location,
			zoom: zoom,
			mapTypeId: mType,
			enableSearchLogo: false,
			enableClickableLogo: false
			}
		);
}

function newPin(loc, folder, icon) {
	var pin = new Microsoft.Maps.Pushpin(loc);
	if (icon !== ""){ pin.setOptions({ icon: folder + icon }); }
	return pin;
}


function newLocation(lat, lng) {
	return new Microsoft.Maps.Location(lat, lng);
}


function getInfoBox(id) {
/* 	return boxes["b" + id];
 */}

function hideAllBoxes() {
	var b;
	for (b in boxes) {
		if (boxes.hasOwnProperty(b)) {
			boxes[b].setOptions({ visible: false });
		}
	}
}

function showBox(bId) {
/* 	hideAllBoxes();
	hovering = false;
	getInfoBox(bId).setOptions({ visible: true });
 */}

function hoverStart(bId) {
/* 	var box = getInfoBox(bId);
	if (!box.getVisible()) {
		hovering = true;
		box.setOptions({ visible: true });
	}
 */}

function hoverEnd(bId) {
/* 	if (hovering) {
		hovering = false;
		getInfoBox(bId).setOptions({ visible: false });
	}
 */}

function doPinStuff(p, map, iconFolder) {
	var loc = newLocation(p.Lat, p.Lng);
	var pin = newPin(loc, iconFolder, p.Icon);
	var iBox = new Microsoft.Maps.Infobox(loc, { title: p.Title, titleClickHandler: function () { window.location = p.Url; }, visible: false, height: 50, offset: new Microsoft.Maps.Point(0, 40) });
	Microsoft.Maps.Events.addHandler(pin, "click", function () { showBox(p.Id); });
	Microsoft.Maps.Events.addHandler(pin, "mouseover", function () { hoverStart(p.Id); });
	Microsoft.Maps.Events.addHandler(pin, "mouseout", function () { hoverEnd(p.Id); });
	pin._id = p.Id;
	map.entities.push(iBox);
	map.entities.push(pin);
	boxes["b" + p.Id] = iBox;
}

function addPins(pins, map, iconFolder) {
	boxes = [];
	for (pI = 0; pI < pins.length; pI++ ) {
		doPinStuff(pins[pI], map, iconFolder);
	}
}


