function Book(opts) {
	for (prop in opts) {
		this[prop] = opts[prop];
	}
}
Book.prototype = {
	dragCrossMove: true
}

function addBookMarker(book, clickHandler) {
	var gMarker = new GMarker(new GLatLng(book.lat, book.lon), book);
	map.addOverlay(gMarker);
	return gMarker;
}

var map = null;

function loadMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(29, -35), 2);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.enableScrollWheelZoom();
	}
}

GMap2.prototype.showBounds = function(bounds_, opt_options){
	var opts = opt_options||{};
	opts.top = opt_options.top*1||0;
	opts.left = opt_options.left*1||0;
	opts.bottom = opt_options.bottom*1||0;
	opts.right = opt_options.right*1||0;
	opts.save = opt_options.save||true;
	opts.disableSetCenter = opt_options.disableSetCenter||false;
	var ty = this.getCurrentMapType();
	var port = this.getSize();
	if(!opts.disableSetCenter){
		var virtualPort = new GSize(port.width - opts.left - opts.right, 
														port.height - opts.top - opts.bottom);
		this.setZoom(ty.getBoundsZoomLevel(bounds_, virtualPort));
		var xOffs = (opts.left - opts.right)/2;
		var yOffs = (opts.top - opts.bottom)/2;
		var bPxCenter = this.fromLatLngToDivPixel(bounds_.getCenter());
		var newCenter = this.fromDivPixelToLatLng(new GPoint(bPxCenter.x-xOffs, bPxCenter.y-yOffs));
		this.setCenter(newCenter);
		if(opts.save)this.savePosition();
	}
	var portBounds = new GLatLngBounds();
	portBounds.extend(this.fromContainerPixelToLatLng(new GPoint(opts.left, port.height-opts.bottom)));
	portBounds.extend(this.fromContainerPixelToLatLng(new GPoint(port.width-opts.right, opts.top)));
	return portBounds;
}


window.onunload = GUnload;