//---------------------Utility functions------------------------
/*function Mid(str, start, len)
{
// Make sure start and len are within proper bounds
    if (start < 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
          iEnd = iLen;
    else
          iEnd = start + len;
    return String(str).substring(start,iEnd);
}

function InStr(strSearch, charSearchFor)
{
    for (i=0; i < strSearch.length; i++)
    {
          if (charSearchFor == Mid(strSearch, i, 1))
          {
                return i;
          }
    }
    return -1;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}
*/
//-------------------------------------------------------------


function IEver()
{
	var tmp;
	var Appver = window.clientInformation.appVersion;
		tmp = Appver.split(";");
		return trim(tmp[1]); //Example: "MSIE 6.0"
};

function TOC(id)
{
	if (id == "Layers")
	{
		document.getElementById("Legend").style.visibility = "visible";
		document.getElementById("Legend").style.display = "block";
		document.getElementById("Layers").style.visibility = "hidden";
		document.getElementById("Layers").style.display = "none";
		document.Form1.TOCState.value = '<TOCState TOCState="Legend" />';
	}
	else
	{
	 	document.getElementById("Layers").style.visibility = "visible";
	 	document.getElementById("Layers").style.display = "block";
		document.getElementById("Legend").style.visibility = "hidden";
		document.getElementById("Legend").style.display = "none";
		document.Form1.TOCState.value = '<TOCState TOCState="Layers" />';
	}
};

function NavigationTools(tool)
{
	if (tool != "" )
	{
		var PrevTool = document.Form1.CurrentTool.value;
		document.Form1.CurrentTool.value = tool;
		document.getElementById("CurrentToolLablel").innerHTML= "Current tool: ";
		document.getElementById("CToolLabel").innerHTML= tool;
		
		switch(tool)
		{
			case "Zoom In":
				document.getElementById("imgMap").style.zIndex = 1;
				if (IEver() == "MSIE 6.0" || IEver() == "MSIE 7.0")
				{
					document.getElementById("GlassLayer").style.cursor = "Cursors/ZoomIn.cur"; //"url(""Cursors/ZoomIn.cur"")"
				}
				else
				{
					document.getElementById("GlassLayer").style.cursor = "crosshair";
				}
				break;
				
			case "Zoom Out":
				if (IEver() == "MSIE 6.0" || IEver() == "MSIE 7.0")
				{
					document.getElementById("GlassLayer").style.cursor = "Cursors/ZoomOut.cur"; //"url(""Cursors/ZoomOut.cur"")"
				}
				else
				{
					document.getElementById("GlassLayer").style.cursor = "crosshair";
				}
				break;

				
			case "Zoom Prev.":
				document.Form1.submit();
				break;
				
			case "Zoom Extents":
				document.Form1.submit();
				break;
				
			case "Pan":
				document.getElementById("GlassLayer").style.cursor = "all-scroll";
				document.getElementById("imgMap").style.zIndex = -2;
				break;
				
			case "Identify":
				document.getElementById("imgMap").style.zIndex = 1;
				if (IEver() == "MSIE 6.0" || IEver() == "MSIE 7.0")
				{
					document.getElementById("GlassLayer").style.cursor = "Cursors/Identify.cur"; //"url(""Cursors/Identify.cur"")"
				}
				else
				{
					document.getElementById("GlassLayer").style.cursor = "crosshair";
				}
				break;
		
			case "Stop":
				LoadProgressAnima("hidden");
				document.getElementById("rubberBand").style.visibility = "hidden";
				document.getElementById("rubberBand").style.width = 0;
				document.getElementById("rubberBand").style.height = 0;
				document.getElementById("rubberBand").style.pixelLeft = 0;
				document.getElementById("rubberBand").style.pixelTop = 0;
								
				if(PrevTool == "Pan")
				{
					window.document.execCommand("stop");
					document.Form1.CurrentTool.value = "Refresh";
					document.Form1.submit();
				}
				else
				{
					document.Form1.CurrentTool.value = "";
					document.getElementById("CurrentToolLablel").innerHtml = "";
					document.getElementById("CToolLabel").innerHtml = "";
					window.document.execCommand("stop");
				}
				break;
			
			case "Select Tool":
				document.getElementById("imgMap").style.zIndex = 1;
				document.getElementById("GlassLayer").style.cursor = "crosshair";
				document.getElementById("rubberBand").style.borderColor = "#FF00FF";
				document.getElementById("rubberBand").style.borderStyle = "dashed";
				//document.getElementById("rubberBand").style.backgroundImage = "url('file:///C:/Inetpub/wwwroot/BergenHealth/Images/Select.gif')"
				break;
				
			case "AttributeViewer":
				document.Form1.submit();
				break;
				
			case "Pictometry Tool":
				document.getElementById("imgMap").style.zIndex = 1;
				document.getElementById("GlassLayer").style.cursor = "crosshair"
				/*if IEver = "MSIE 6.0" or IEver = "MSIE 7.0" Then
				'	document.getElementById("GlassLayer").style.cursor = "Cursors/Pictometry.ico" '"url(""Cursors/Identify.cur"")"
				'else
					document.getElementById("GlassLayer").style.cursor = "crosshair"
				'end if*/
				break;
            case "AmCAD Tool":
                document.getElementById("imgMap").style.zIndex = 1;
                document.getElementById("GlassLayer").style.cursor = "crosshair"
                break;
		}
	}
};

function CmdTools(cmd)
{
	document.Form1.CmdTool.value = cmd;
	switch(cmd)
	{
		case "Clear Selection":
			document.Form1.submit();
			break;
			
		case "Buffer Tool":
			document.Form1.submit();
	}
};

function RefreshMap()
{
	document.Form1.CurrentTool.value = "Refresh2";
	document.Form1.submit();
};

function Categories(id)
{
	//Get category name
	var Cat = id.substring(0,id.lastIndexOf("_"));//Left(id, InStr(id, "_") - 1);
	
	var imgurl1;
	imgurl1 = document.getElementById(Cat + "1_" + id).src;  
	//imgurl1 = "http://dell107/iDV/Categories/Images/DataTools-open.gif";
	    
    var nFile = imgurl1.substring(imgurl1.lastIndexOf("/") + 1,imgurl1.length); //DataTools-open.gif
    var ext = nFile.substring(nFile.lastIndexOf(".") + 1,nFile.length);         //gif
    var path = imgurl1.substring(0,imgurl1.lastIndexOf("/"))                    //http://dell107/iDV/Categories/Images
    var tmp = imgurl1.substring(imgurl1.lastIndexOf("-") + 1,imgurl1.length);   //open.gif
	var state =  tmp.substring(0,tmp.lastIndexOf("."));                         //open	
	
	switch(state)
	{
		case "closed":
			document.getElementById(Cat + "1_" + id).src = path + "/" + Cat + "-open." + ext;
			document.getElementById(Cat + "1_" + Cat).style.visibility = "visible";
			document.getElementById(Cat + "1_" + Cat).style.display = "block";
			state = "open";
			break;
			
		case "open":
			document.getElementById(Cat + "1_" + id).src = path + "/" + Cat + "-closed." + ext;
			document.getElementById(Cat + "1_" + Cat).style.visibility = "hidden";
			document.getElementById(Cat + "1_" + Cat).style.display = "none";
			state = "closed";
			break;
	}
	
	
	//Get current category state
	var CatStates = document.Form1.CategoriesState.value;
    
    //Delete begining and ending tag.
    var tmp1 = CatStates.split(" ");
    tmp1[0] = "";
    tmp1[tmp1.length] = ""
    
    var tmp2 = trim(tmp1.join(" "));
    
    //Now you have a clean array with just category states.
	var aryCatState = tmp2.split(" ");
		
	
	//Check to see if a category exists, if so set it to current state
	//if not add it to the list with current state.
	var Cnt = aryCatState.length;
	var CatState = Cat + '="' + state + '"'; 
	var Exists;
	var tmp3;
	var Cat2;

	for(var i=0; i < Cnt; i++)
	{
		Cat2 = aryCatState[i].substring(0,aryCatState[i].lastIndexOf("="));
		if (Cat2 == Cat)
		{
			aryCatState[i] = CatState ;
			Exists = true;	
		}
	}
	
	if(Exists == false)
	{
		tmp3 = aryCatState.join(" ") + " " + CatState;
	}
	
	
	//Rebuild catagories list
	if(trim(tmp3) == "")
	{
		CatStates = aryCatState.join(" ");
		CatStates = "<CategoriesState " + CatStates + " />";
	}
	else
	{
		CatStates = "<CategoriesState " + tmp3 + " />";
	}
	
	document.Form1.CategoriesState.value = CatStates;
};

function MapResize()
{
	//Grabs the width and height of the browser window and submits it.
	var w;
	var h;
	w = document.getElementById("imgMap").offsetWidth;
	h = document.getElementById("imgMap").offsetHeight;
	
	ClearVar();
	
	document.Form1.MapWidth.value = w;
	document.Form1.MapHeight.value = h;
	//document.Form1.submit
};

function CheckMapSize()
{
/*
Check to see if the map container has changed and
if it has to send new map size to server to retreive
new map image.
*/

	var Cw = document.getElementById("imgMap").offsetWidth;
	var Ch = document.getElementById("imgMap").offsetHeight;
	var Ow = document.Form1.MapWidth.value;
	var Oh = document.Form1.MapHeight.value;
	
	
	
	if(Ow != "")
	{
		CurrentMapSize = Cw + Ch;
		OldMapSize = parseInt(Ow) + parseInt(Oh);
		//msgbox "Current:" & CurrentMapSize & " Old:" & OldMapSize
		if(CurrentMapSize != OldMapSize)
		{
			document.Form1.MapWidth.value = Cw;
			document.Form1.MapHeight.value = Ch;
			document.Form1.submit();
		}
	}
};

function ClearVar()
{
	document.Form1.PanX.value = "";
	document.Form1.PanY.value = "";
	document.Form1.PointX.value = "";
	document.Form1.PointY.value = "";
	document.Form1.MinX.value = "";
	document.Form1.MinY.value = "";
	document.Form1.MaxX.value = "";
	document.Form1.MaxY.value = "";
	document.Form1.PointX.value = "";
	document.Form1.PointY.value = "";
};

function LoadProgressAnima(value)
{
	switch(value)
	{
		case "visible":
			document.getElementById("obj1").loop = true;
			break;
			
		case "hidden":
			document.getElementById("obj1").loop = false;
			break;
	}
	
	document.getElementById("ProgressAnima").style.top = document.getElementById("imgMap").offsetHeight / 2;
	document.getElementById("ProgressAnima").style.visibility = value;
};



