var ie4 = document.all&&!document.getElementById;
var ns4 = document.layers;
var DOM2 = document.getElementById;
var ffns6 = document.getElementById && !document.all
function submitForm(formName)
{
	getForm(formName).submit();
}

function getForm(formName)
{
	if(ffns6)
	{
		return document.forms[formName];
	}
	else if(DOM2)
	{
		// ie8 will not return an element by name using .getElementById
		var tmpForm = document.getElementById(formName);
		if( tmpForm != null) {
			return tmpForm;
		}
		else
		{
			return document.getElementsByName(formName)[0];
		}
	}
	else if(ie4)
	{
		return document.all.formName;
	}
	else if(ns4)
	{
		return document.formName;
	}
}

function changeActionValue(action1, actionField)
{
	if(ffns6)
	{
		document.getElementById(actionField).setAttribute("value", action1);
	}
	else if (DOM2)
	{
		document.getElementById(actionField).value = action1;
	}
	else if (ie4)
	{
		document.all.actionField.value = action1;
	}
	else if (ns4)
	{
		document.actionField.value = action1;
	}
}

function changeSubActionValue(action1, subActionField)
{
	if(ffns6)
	{
		document.getElementById(subActionField).setAttribute("value", action1);
	}
  else if (DOM2)
	{
		document.getElementById(subActionField).value  = action1;
	}
	else if (ie4)
	{
		document.all.subActionField.value = action1;
	}
	else if (ns4)
	{
		document.subActionField.value = action1;
	}
}

function setJavascript(javascriptField)
{ 
	if(ffns6)
	{
		document.getElementById(javascriptField).setAttribute("value", "true");
	}
	else if (DOM2)
	{
		bob = document.getElementById(javascriptField).value = "true";
	}
	else if (ie4)
	{
		document.all.javascriptField.value="true";
	}
	else if (ns4)
	{
		document.javascriptField.value="true";
	}
}

function showNavMap(show, navMapDisplayedField)
{
	if(ffns6)
	{
		document.getElementById(navMapDisplayedField).setAttribute("value", show);
	}
	else if (DOM2)
	{
		document.getElementById(navMapDisplayedField).value = show;
	}
	else if (ie4)
	{
		document.all.navMapDisplayedField.value = show;
	}
	else if (ns4)
	{
		document.navMapDisplayedField.value = show;
	}
}

function setClassName(elementID, cssClassName)
{
	if(ffns6)
	{
		document.getElementById(elementID).setAttribute("class", cssClassName);
	}
	else if (DOM2)
	{
		document.getElementById(elementID).className = cssClassName;
	}
	else if (ie4)
	{
		document.all.elementID.className = cssClassName;
	}
	else if (ns4)
	{
		document.elementID.value = cssClassName;
	}
}

function disableElement(elementID, disable)
{
	if(ffns6)
	{
		document.getElementById(elementID).disabled = disable;
	}
	else if (DOM2)
	{
		document.getElementById(elementID).disabled = disable;
	}
	else if (ie4)
	{
		document.all.elementID.disabled=disable;
	}
	else if (ns4)
	{
		document.elementID.disabled=disable;
	}
}

function registerScrolls(topHolderID, leftHolderID, oldActionID, newActionID)
{
	var topHolder;
	var leftHolder;
	var oldAction;
	var newAction;
	var topPos = 0;
	var leftPos = 0;
	
	if(DOM2)
	{
		topHolder = document.getElementById(topHolderID);
		leftHolder = document.getElementById(leftHolderID);
		oldAction = document.getElementById(oldActionID);
		newAction = document.getElementById(newActionID);
	}
	else if (ie4)
	{
		topHolder = document.all.topHolderID;
		leftHolder = document.all.leftHolderID;
		oldAction = document.all.oldActionID;
		newAction = document.all.newActionID;
	}
	else if(ns4)
	{
		topHolder = document.topHolderID;
		leftHolder = document.leftHolderID;
		oldAction = document.oldActionID;
		newAction = document.newActionID;
	}

	if ((oldAction != null) && (newAction != null) && (oldAction.value == newAction.value))
	{
		if (typeof window.pageXOffset != 'undefined')
		{ 
	      		leftPos = window.pageXOffset; 
	      		topPos = window.pageYOffset; 
	   	} 
	   	else if ((!window.document.compatMode) || (window.document.compatMode == 'BackCompat'))
	   	{
	         	leftPos = window.document.body.scrollLeft; 
	         	topPos = window.document.body.scrollTop; 
	     	} 
	     	else 
	     	{ 
	         	leftPos = window.document.documentElement.scrollLeft; 
	         	topPos = window.document.documentElement.scrollTop;
	   	}
	}
	
   	topHolder.value = topPos; 
   	leftHolder.value = leftPos; 
}

function applyScrolls(topHolderID, leftHolderID)
{
	var topHolder;
	var leftHolder;
	
	if(DOM2)
	{
		topHolder = document.getElementById(topHolderID);
		leftHolder = document.getElementById(leftHolderID);
	}
	else if (ie4)
	{
		topHolder = document.all.topHolderID;
		leftHolder = document.all.leftHolderID;
	}
	else if(ns4)
	{
		topHolder = document.topHolderID;
		leftHolder = document.leftHolderID;
	}
	
	if ((topHolder != null) && (leftHolder != null))
	{
		if (top.opera && (typeof window.pageYOffset != 'undefined'))
		{ 
      window.pageXOffset = leftHolder.value; 
    	window.pageYOffset = topHolder.value; 
   	} 
   	else if (window.document.compatMode && (window.document.compatMode != 'BackCompat')) 
   	{ 
     	window.document.documentElement.scrollLeft = leftHolder.value; 
    	window.document.documentElement.scrollTop = topHolder.value; 
   	} 
   	else 
   	{
   		window.scrollBy(leftHolder.value,topHolder.value); 
		}
	}
}

// Called by the STR selection map component when the user performs a map
// action.
//
// params - 
function onStrSubmit(params)
{
  var actionForm = getForm('navlistJS');

  var nc1 = document.createElement('input');
  nc1.type = 'hidden';
  nc1.name = 'strSessionId';
  nc1.value = params.strSessionId;
  
  var nc2 = document.createElement('input');
  nc2.type = 'hidden';
  nc2.name = 'strMapHandle';
  nc2.value = params.mapHandle;
  
  var nc3 = document.createElement('input');
  nc3.type = 'hidden';
  nc3.name = 'strUrl';
  nc3.value = params.strUrl;
  
  actionForm.appendChild(nc1);
  actionForm.appendChild(nc2);
  actionForm.appendChild(nc3);
  
  var actionInput = document.getElementById('action');
  
  actionInput.value = '103';
  
  if (actionForm.onsubmit())
  {
    submitForm(actionForm.name);    
  }
}

// Called when the layer is changed on the location map page.  Gets extent
// parameters from the STR javascript and stores them in a hidden input.
function onChangeLayer()
{
  var actionForm = getForm('navlistJS');

  var nc1 = document.createElement('input');
  nc1.type = 'hidden';
  nc1.name = 'strExtentsParam';
  nc1.value = getMapExtentUrlParams();
  
  actionForm.appendChild(nc1);
}
