function roll(img_name, img_src)
  {
  document[img_name].src = img_src;
  }

var dragging = false; 
var top; 
var left; 
var dragStartTop; 
var dragStartLeft; 
//var last = 0;
//var delay = 300; 
//var zoomInRatios = [5/3, 3/2, 2];
//var zoomLevel = 0;
//var zoomLevelMax = 2;
//var numPostersSquare = 5;

// config
var moveByStepPx = 450;
var innerDivHeightPx = 3000;
var innerDivWidthPx = 3000;


function showArrows() {
	var leftarrow=document.getElementById('leftarrow');
	leftarrow.style.visibility = "visible";
	var rightarrow=document.getElementById('rightarrow');
	rightarrow.style.visibility = "visible";
	var uparrow=document.getElementById('uparrow');
	uparrow.style.visibility = "visible";
	var downarrow=document.getElementById('downarrow');
	downarrow.style.visibility = "visible";
	/*new Effect.Appear('leftarrow');
	new Effect.Appear('rightarrow');
	new Effect.Appear('uparrow');
	new Effect.Appear('downarrow');*/
}

function hideArrows() {
	var leftarrow=document.getElementById('leftarrow');
	var rightarrow=document.getElementById('rightarrow');
	var uparrow=document.getElementById('uparrow');
	var downarrow=document.getElementById('downarrow');
	
	leftarrow.style.visibility = "hidden";
	rightarrow.style.visibility = "hidden";
	uparrow.style.visibility = "hidden";
	downarrow.style.visibility = "hidden";
/*	new Effect.Fade('leftarrow');
	new Effect.Fade('rightarrow');
	new Effect.Fade('uparrow');
	new Effect.Fade('downarrow');*/
}

function hideWelcome() {
	document.getElementById('welcome').style.visibility = "hidden";
	//document.getElementById('zoom').style.visibility = "visible";
}

function hideTips() {
	document.getElementById('hottips').style.visibility = "hidden";
	document.getElementById('zoom').style.visibility = "visible";
}

function init() { 
	// make inner div big enough to display the map 
//	hideArrows();
	var innerDiv = $("innerDiv"); 
	setInnerDivSize(4900, 4200); 
	innerDiv.style.left = 0;
	innerDiv.style.top = 0;
	// wire up the mouse listeners to do dragging 
	var outerDiv = document.getElementById("outerDiv"); 
	outerDiv.onmousedown = startMove; 
	outerDiv.onmousemove = processMove; 
	outerDiv.onmouseup = stopMove; 
	// necessary to enable dragging on IE 
	outerDiv.ondragstart = function() { return false; } 
	
} 

function startMove(event) { 
	// necessary for IE 
	if (!event) event = window.event; 
	dragStartLeft = event.clientX; 
	dragStartTop = event.clientY; 
	var innerDiv = $("innerDiv"); 
	innerDiv.style.cursor = "move"; 
	top = stripPx(innerDiv.style.top); 
	left = stripPx(innerDiv.style.left); 
	dragging = true; 
	return false; 
} 

function processMove(event) { 
	if (!event) event = window.event; // for IE 
	var innerDiv = $("innerDiv"); 
	if (dragging) { 
		// Needs -500 sorting...
		if ((parseFloat(top) + (event.clientY - dragStartTop) <= 0) && (parseFloat(top) + (event.clientY - dragStartTop) >= -parseFloat(innerDiv.style.height)+innerDivHeightPx)) { 
			innerDiv.style.top = parseFloat(top) + (event.clientY - dragStartTop); 
		} else if (parseFloat(top) + (event.clientY - dragStartTop) >= 0) {
			innerDiv.style.top = 0;
		} else {
			innerDiv.style.top = -parseFloat(innerDiv.style.height)+innerDivHeightPx;
		}
		if ((parseFloat(left) + (event.clientX - dragStartLeft) <= 0) && (parseFloat(left) + (event.clientX - dragStartLeft) >= -parseFloat(innerDiv.style.width)+innerDivWidthPx)) {
			innerDiv.style.left = parseFloat(left) + (event.clientX - dragStartLeft); 
		} else if (parseFloat(left) + (event.clientX - dragStartLeft) >= 0) {
			innerDiv.style.left = 0;
		} else {
			innerDiv.style.left = -parseFloat(innerDiv.style.width)+innerDivWidthPx;
		}
	} 
}

function stopMove(event) { 
	var innerDiv = $("innerDiv"); 
	innerDiv.style.cursor = ""; 
	dragging = false; 
	if (event.clientY - dragStartTop == 0 && event.clientX - dragStartLeft == 0) {
		//turn outer div to inner div position
		var clickX = event.clientX;
		var clickY = event.clientY;
		clickX = clickX - 152;
		clickY = clickY - 142;
	}
} 


function stripPx(value) { 
	if (value == "") return 0; 
	return parseFloat(value.substring(0, value.length - 2)); 
} 

function setInnerDivSize(width, height) { 
	var innerDiv = $("innerDiv"); 

	innerDiv.style.width = width+"px"; 
	innerDiv.style.height = height+"px"; 
} 

function moveUp() {
  var innerDiv = $("innerDiv"); 
	var moveBy = moveByStepPx
	if (-parseFloat(innerDiv.style.top) < moveBy) {
		moveBy = -parseFloat(innerDiv.style.top);
	}
	new Effect.MoveBy('innerDiv',moveBy,0)
}

function moveDown() {
	var innerDiv = $("innerDiv"); 
	var moveBy = moveByStepPx
  
  // TODO
	if (moveBy > parseFloat(innerDiv.style.height) - innerDivHeightPx + parseFloat(innerDiv.style.top)) {
		moveBy = parseFloat(innerDiv.style.height) - innerDivHeightPx + parseFloat(innerDiv.style.top);
	} 
	new Effect.MoveBy('innerDiv',-moveBy,0)
}

function moveLeft() {
	var innerDiv = $("innerDiv"); 
	var moveBy = moveByStepPx
  if (-parseFloat(innerDiv.style.left) < moveBy) {
		moveBy = -parseFloat(innerDiv.style.left);
	}
	new Effect.MoveBy('innerDiv',0,moveBy)
}

function moveRight() {
	var innerDiv = $("innerDiv"); 
	var moveBy = moveByStepPx
  // TODO
  if (moveBy > parseFloat(innerDiv.style.width) - innerDivWidthPx + parseFloat(innerDiv.style.left)) {
		moveBy = parseFloat(innerDiv.style.width) - innerDivWidthPx + parseFloat(innerDiv.style.left);
	}
	new Effect.MoveBy('innerDiv',0,-moveBy)
}

// used for debugging
function output() {
	document.getElementById('output').innerHTML = "top:"+parseFloat(innerDiv.style.top) + " left:"+parseFloat(innerDiv.style.left)
}

// helpful MM functions
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function et(id) {
  Effect.toggle(id,'appear',{duration: 0.5})
}