﻿var MiniMap = function(options) {
	var defaults = {
		id:'minimap',
		flashURL: '/_flash/minimap.swf',
		region: null,
		onLoad: null,
		onClick: null,
		width: '100',
		height: '70'
	}
	
	var options = $.extend({}, defaults, options);
	
	this.callOnLoad = function(mapID) {
		if(mapID == options.id && options.onLoad)
			options.onLoad();
	}
	
	this.callOnClick = function(mapID, region) {
		if(mapID == options.id && options.onClick)
			options.onClick(region);
	}
	
	this.setRegion = function(regionID) {
		var map = document.getElementById(options.id);
		if (map && map.hideAll) {
			map.hideAll();
			map.showRegion(regionID);
		}
	}
	
	this.hideAll = function() {
		var map = document.getElementById(options.id);
		if (map && map.hideAll)
			map.hideAll();
	}

	var url = options.flashURL + "?t=1";
	
	if(options.onClick || options.onLoad)
		url += "&mapid=" + options.id;
	if(options.onClick)
		url += "&enableClicks=1"
	if(options.region)
		url += "&" + options.region + "=1";
	
	var params = {
		allowscriptaccess: 'always',
		wmode: 'transparent',
		menu: false
	};
	swfobject.embedSWF(url, options.id, options.width, options.height, '9.0.0', {}, {}, params);
	
	MiniMap.loadedMaps.push(this);
};

MiniMap.loadedMaps = [];

function minimap_loaded(mapID) {
	for(var x = MiniMap.loadedMaps.length - 1; x>=0; x--) {
		MiniMap.loadedMaps[x].callOnLoad(mapID);
	}
}
function minimap_clicked(mapID, region) {
	for(var x = MiniMap.loadedMaps.length - 1; x>=0; x--) {
		MiniMap.loadedMaps[x].callOnClick(mapID, region);
	}
}
