(function () {

var geoCamp = {

Map: classery.def(

// constructor
function (div, opts) {
	var opts = (typeof opts == 'object' && opts) || {};
	for (prop in this.defaultMapOpts) {
		if (!opts.hasOwnProperty(prop)) {
			opts[prop] = this.defaultMapOpts[prop]
		}
	}
	google.maps.Map.apply(this, [div, opts]);
},

// specification
{

defaultMapOpts: {
  'center': new google.maps.LatLng(45.353, -69.053), // center of Maine
  'zoom': 6,
  'mapTypeId': google.maps.MapTypeId.ROADMAP,
  'navigationControl': true,
  'navigationControlOptions': {'style': google.maps.NavigationControlStyle.DEFAULT},
  'mapTypeControl': true,
  'mapTypeControlOptions': {'style': google.maps.MapTypeControlStyle.DEFAULT},
  'scaleControl': true,
  'scrollwheel': false,
  'draggable': true
}

}, // end specification

null, // class specification

// superclass
google.maps.Map,

// prototype
new google.maps.Map(document.createElement('div'))

), // end geoCamp.Map definition

regions: [
	'aroostook',
	'downeast',
	'highlands',
	'kennebec',
	'midcoast',
	'portland',
	'south',
	'west'
],

region_colors: {
	'aroostook': '#0000cc',
	'downeast': '#00cc00',
	'highlands': '#cc0000',
	'kennebec': '#00cc00',
	'midcoast': '#0000cc',
	'portland': '#00cc00',
	'south': '#0000cc',
	'west': '#cc0000'
},

region_names: {
	'aroostook': 'Aroostook Country',
	'downeast': 'DownEast &amp; Acadia',
	'highlands': 'Katahdin &amp; Moosehead',
	'kennebec': 'Kennebec &amp; Moose River Valley',
	'midcoast': 'Mid Coast',
	'portland': 'Portland &amp; Freeport',
	'south': 'South Coast',
	'west': 'Western Lakes &amp; Mountains'
},

region_numbers: {
	'aroostook': 7,
	'downeast': 5,
	'highlands': 8,
	'kennebec': 3,
	'midcoast': 4,
	'portland': 9,
	'south': 1,
	'west': 2
},

region_ids: {
	7: 'aroostook',
	5: 'downeast',
	8: 'highlands',
	3: 'kennebec',
	4: 'midcoast',
	9: 'portland',
	1: 'south',
	2: 'west'
},

type2icon: {
	'in_region': 'campground1.png',
	'out_of_region': 'campground2.png'
},

resource: {

area: {

region: {},

world: new google.maps.MVCArray([
	new google.maps.LatLng(89.99, -179.99),
	new google.maps.LatLng(89.99, 0),
	new google.maps.LatLng(89.99, 179.99),
	new google.maps.LatLng(0, 179.99),
	new google.maps.LatLng(-89.99, 179.99),
	new google.maps.LatLng(-89.99, 0),
	new google.maps.LatLng(-89.99, -179.99),
	new google.maps.LatLng(0, -179.99)
])

} // end resource.area

} // end resource

}; // end geoCamp definition

// classery.employ(geoCamp, 'ace');

window.geoCamp = geoCamp;

})() // end module geoCamp

