// aimsDHTML.js
/*
*  JavaScript template file for ArcIMS HTML Viewer
*		dependent on aimsXML.js, ArcIMSparam.js, aimsCommon.js, aimsMap.js,
*		aimsLayers.js
*/

aimsDHTMLPresent=true;

// Create a DHTML layer
function createLayer(name, inleft, intop, width, height, visible, content) {
	  var layer;
	  if (isNav4) {
	    document.writeln('<layer name="' + name + '" left=' + inleft + ' top=' + intop + ' width=' + width + ' height=' + height +  ' visibility=' + (visible ? '"show"' : '"hide"') +  '>');
	    document.writeln(content);
	    document.writeln('</layer>');
	  } else {
	    document.writeln('<div id="' + name + '" style="position:absolute; overflow:hidden; left:' + inleft + 'px; top:' + intop + 'px; width:' + width + 'px; height:' + height + 'px;' + '; z-index:1; visibility:' + (visible ? 'visible;' : 'hidden;') +  '">');
	    document.writeln(content);
	    document.writeln('</div>');
	  }
}

// get the layer object called "name"
function getLayer(name) {
	if (isNav4) {
		return(document.layers[name]);
	} else if (isIE4) {
		return(document['all'][name]['style']);
	} else if (is5up) {
		var theObj = document.getElementById(name);
		return theObj.style;
	} else {
		return(null);
	}
}

function isVisible(name) {
	  var layer = getLayer(name);
	  if (isNav && layer.visibility == "show")
	    return(true);
	  if (isIE && layer.visibility == "visible")
	    return(true);
	  return(false);
}


// move layer to x,y
function moveLayer(name, x, y) {		
	var layer = getLayer(name);		
	if (isNav4)
		layer.moveTo(x, y);
	else {
		layer.left = x + "px";
		layer.top  = y + "px";
	}
}

// set layer background color
function setLayerBackgroundColor(name, color) {		
	var layer = getLayer(name);		
	if (isNav4)
		layer.bgColor = color;
	else
		layer.backgroundColor = color;
}

// toggle layer to invisible
function hideLayer(name) {		
	var layer = getLayer(name);		
	if (isNav4)
		layer.visibility = "hide";
	else
		layer.visibility = "hidden";
}

// toggle layer to visible
function showLayer(name) {		
	var layer = getLayer(name);		
	if (isNav4)
		layer.visibility = "show";
	else
		layer.visibility = "visible";
}

function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {		
	var layer = getLayer(name);
	if ((clipright.isNaN) || (clipleft.isNaN) || (cliptop.isNaN) || (clipbottom.isNaN)) {
		layer.visibility = "hidden";
	}	else if (isNav4) {
		layer.clip.left   = clipleft;
		layer.clip.top    = cliptop;
		layer.clip.right  = clipright;
		layer.clip.bottom = clipbottom;
		} else {
		var newWidth = clipright - clipleft;
		var newHeight = clipbottom - cliptop;
		if ((newWidth<=0) || (newHeight<=0)) {
			layer.visibility = "hidden";
		} else {
			layer.height = newHeight;
			layer.width	= newWidth;
			layer.top	= cliptop  + "px";
			layer.left	= clipleft + "px";
		}
	}
}

// toggle Overview Map display
function toggleOVMap() {
	ovIsVisible = !ovIsVisible;
	if (ovIsVisible) {
		putExtentOnOVMap();
		showLayer("ovLayer");			
	} else {
		hideLayer("ovLayer");
		hideLayer("zoomOVBoxTop");
		hideLayer("zoomOVBoxLeft");
		hideLayer("zoomOVBoxRight");
		hideLayer("zoomOVBoxBottom");
	}
	if (isIE) {
		document.all.theTop.style.cursor = theCursor;
	}
}

// plot extent box on overview map
function putExtentOnOVMap() {
	if (curExt.xSize < parseFloat(ovSymbolSwitchThreshold)){
		 putCrossOnOVMap();
	   return;
	}	 

	var ovXincre = (ovBbMaxX - ovBbMinX) / ovImgWidth;
	var ovYincre = (ovBbMaxY - ovBbMinY) / ovImgHeight;
	var vleft = (curExt.minX - ovBbMinX) / ovXincre + ovBorderWidth;
	var vright = (curExt.maxX - ovBbMinX) / ovXincre + ovBorderWidth;
	var vtop = (ovBbMaxY - curExt.maxY) / ovYincre + ovBorderWidth;
	var vbottom = (ovBbMaxY - curExt.minY) / ovYincre + ovBorderWidth;
	setLayerBackgroundColor("zoomOVBoxTop", zoomOVBoxColor);
	setLayerBackgroundColor("zoomOVBoxLeft", zoomOVBoxColor);
	setLayerBackgroundColor("zoomOVBoxRight", zoomOVBoxColor);
	setLayerBackgroundColor("zoomOVBoxBottom", zoomOVBoxColor);
	if (vright>ovImgWidth+ovBorderWidth) vright = ovImgWidth;
	if (vbottom>ovImgHeight+ovBorderWidth) vbottom = ovImgHeight;
	if (curExt.maxY>ovBbMinY) {
		clipLayer("zoomOVBoxTop",vleft,vtop-ovExtentBoxSize,vright,vtop);
		showLayer("zoomOVBoxTop");
	} else {
		hideLayer("zoomOVBoxTop");		
	}
  if (curExt.minX<ovBbMaxX) {
		clipLayer("zoomOVBoxLeft",vleft-ovExtentBoxSize,vtop-ovExtentBoxSize,vleft,vbottom+ovExtentBoxSize);
		showLayer("zoomOVBoxLeft");
	} else { 
		hideLayer("zoomOVBoxLeft");
	}
	if (curExt.maxX>ovBbMinX) {
		clipLayer("zoomOVBoxRight",vright,vtop-ovExtentBoxSize,vright+ovExtentBoxSize,vbottom+ovExtentBoxSize);
		showLayer("zoomOVBoxRight");
	} else {
		hideLayer("zoomOVBoxRight");
	} 
	if (curExt.minY<ovBbMaxY) {
		clipLayer("zoomOVBoxBottom",vleft,vbottom,vright,vbottom+ovExtentBoxSize);
		showLayer("zoomOVBoxBottom");
	} else {
		hideLayer("zoomOVBoxBottom");
	}
} 

 function putCrossOnOVMap() {
	var ovXincre = (ovBbMaxX - ovBbMinX) / ovImgWidth;
	var ovYincre = (ovBbMaxY - ovBbMinY) / ovImgHeight;
	var vMid = (curExt.maxY+curExt.minY) /2;
	var vtop = (ovBbMaxY - vMid) / ovYincre + ovBorderWidth;
	var hMid = (curExt.minX + curExt.maxX)/2;
	var vleft = (hMid - ovBbMinX) / ovXincre + ovBorderWidth;
	setLayerBackgroundColor("zoomOVBoxTop", zoomOVCrossColor);
	setLayerBackgroundColor("zoomOVBoxLeft", zoomOVCrossColor);
	hideLayer("zoomOVBoxRight");
	hideLayer("zoomOVBoxBottom");
	if (vleft>ovImgWidth+ovBorderWidth) vleft = ovImgWidth;
	if (vtop>ovImgHeight+ovBorderWidth) vtop = ovImgHeight;
	
	if (curExt.maxY>ovBbMinY) {
		clipLayer("zoomOVBoxTop",ovBorderWidth,vtop-1,(ovImgWidth+ovBorderWidth+ovBorderWidth),vtop);
		showLayer("zoomOVBoxTop");
	} else {
		hideLayer("zoomOVBoxTop");		
	}
  if (curExt.minX<ovBbMaxX) {
		clipLayer("zoomOVBoxLeft",vleft-1,ovBorderWidth,vleft,(ovImgHeight+ovBorderWidth+ovBorderWidth));
		showLayer("zoomOVBoxLeft");
	} else { 
		hideLayer("zoomOVBoxLeft");
	}
	
} 


function boxIt(theLeft,theTop,theRight,theBottom) {
		clipLayer("zoomBoxTop",theLeft,theTop,theRight,theTop+ovBoxSize);
		clipLayer("zoomBoxLeft",theLeft,theTop,theLeft+ovBoxSize,theBottom);
		clipLayer("zoomBoxRight",theRight-ovBoxSize,theTop,theRight,theBottom);
		clipLayer("zoomBoxBottom",theLeft,theBottom-ovBoxSize,theRight,theBottom);	
		showLayer("zoomBoxTop");
		showLayer("zoomBoxLeft");
		showLayer("zoomBoxRight");
		showLayer("zoomBoxBottom");
}

function tagIt(x,y){
	tagX=parseFloat(x);
	tagY=parseFloat(y);
	var tmpPlaceTagUrl = placeTagUrlStub;
	tmpPlaceTagUrl += '&xworld='+x+'&yworld='+y;
  tmpPlaceTagUrl += '&BBOX=' + curExt.minX + ',' + curExt.minY + ',' + curExt.maxX + ',' + curExt.maxY;
	tmpPlaceTagUrl += '&width=' + mWidth + '&height=' + mHeight;
	tmpPlaceTagUrl += '&shape=triangle&color=CHARTREUSE';
	
	document.thePlaceImage.src = tmpPlaceTagUrl;
	showLayer("thePlaceLayer");
}
	