var selectedZoomLevel;

/// Zoom methods

function showAll(sId)
{
	mapcontrols(sId, "home", 0, 0);
}

function zoomIn(sId)
{
	if ( selectedZoomLevel == undefined ) {
	     selectedZoomLevel = 1;	
	}
	
	var level = selectedZoomLevel + 1;
	
	if (level >= 1 && level <= 5) {
			
			mapcontrols(sId, "zoomLevel", level, 0);  
			selectZoomLevel(level); 
		}
	//mapcontrols(sId, "zoom", 50, 0);
	
}

function zoomOut(sId)
{
	if ( selectedZoomLevel == undefined ) {
	     selectedZoomLevel = 1;	
	}
	
	var level = selectedZoomLevel - 1;
	
	if (level >= 1 && level <= 5) {
			mapcontrols(sId, "zoomLevel", level, 0);  
			selectZoomLevel(level);
		}
	//mapcontrols(sId, "zoom", 200, 0);
}

function zoom(sId, args)
{
	mapcontrols(sId, "zoomLevel", args, 0);
}


/// Pan methods

function panUp(sId)
{
	mapcontrols(sId, "pan", 0, -100);
}

function panDown(sId)
{
	mapcontrols(sId, "pan", 0, 100);
}

function panRight(sId)
{
	mapcontrols(sId, "pan", 100, 0);
}

function panLeft(sId)
{
	mapcontrols(sId, "pan", -100, 0);
}

function panUpLeft(sId)
{
	mapcontrols(sId, "pan", -100, -100);
}

function panUpRight(sId)
{
	mapcontrols(sId, "pan", 100, -100);
}

function panDownRight(sId)
{
	mapcontrols(sId, "pan", 100, 100);
}

function panDownLeft(sId)
{
	mapcontrols(sId, "pan", -100, 100);
}



function mapcontrols(sId, command, args1, args2)
{
	// IE and Navgiator have slightly different document object models
	// IE treats objects as members of "window" while in Navigator, 
	//	embeded objects are members of "window.document"
	

	if (navigator.appName.indexOf ("Microsoft") !=-1) {
		var map = window.document.all['obj' + sId];
	}
	else {
		var map = document.embeds['embed' + sId];
	}
	
	if ( command=="home" ) {
		map.Rewind();
		map.Zoom(0);
		map.Play();

	} else if ( command=="zoom" ) {
		// Zoom in or out by a percentage specified in args
		map.Zoom(parseInt(args1));
	} else if ( command=="zoomLevel" ) {
			map.Zoom(0);
			switch (parseInt(args1)) {
				case 1:
					map.Zoom(100);
					break;
				case 2:
					map.Zoom(67);
					break;
				case 3:
					map.Zoom(50);
					break;
				case 4:
					map.Zoom(40);
					break;
				case 5:
					map.Zoom(33);
					break;
			}
	} else if ( command=="pan" ) {
		// Pan by the numbers of pixels specfied on the x-axis
		map.Pan(parseInt(args1), parseInt(args2), 0);
	}
	else if ( command=="tour" ) {
		// Start the complete tour
		map.Rewind();
		map.Zoom(0);
		map.Play();

	} else if ( command=="surfspot" ) {
		// A custom command
		map.GotoFrame(95);
		map.Zoom(0);

	} else if ( command=="hawaii" ) {
		map.Rewind();
		map.SetZoomRect(3800,2560,5660,4240);

	} else if ( command=="maui" ) {
		map.Rewind();
		map.SetZoomRect(3040,1360,4500,2300);

	} else if ( command=="honolulu" ) {
		map.Rewind();
		map.SetZoomRect(1840,700,2800,1440);

	} else if ( command=="kauai" ) {
		map.Rewind();
		map.SetZoomRect(40,100,1040,720);
	}
}

/// ZoomLevel methods
function selectZoomLevel(level) 
{
	
var img;
var imgSelected;

	if ( selectedZoomLevel == undefined ) {
	     selectedZoomLevel = 1;	
	}
	
	if ( level != selectedZoomLevel ) {
		if (navigator.appName.indexOf ("Microsoft") !=-1) {
			img = window.document.all['zoomLevel' + level];
			imgSelected = window.document.all['zoomLevel' + selectedZoomLevel];
		}
		else {
			img = document.images['zoomLevel' + level];
			imgSelected = document.images['zoomLevel' + selectedZoomLevel];
		}
		// select
		img.src = "images/map/zoom_lev" + level + "_selected.gif";
		// unselect
		imgSelected.src = "images/map/zoom_lev" + selectedZoomLevel + ".gif";
		
		selectedZoomLevel = level;
	}	
		
}

