/*
COPYRIGHT 1995-2005 ESRI

TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
Unpublished material - all rights reserved under the 
Copyright Laws of the United States.

For additional information, contact:
Environmental Systems Research Institute, Inc.
Attn: Contracts Dept
380 New York Street
Redlands, California, USA 92373

email: contracts@esri.com
*/

var ieBuffer = 0;
var ieContentStyle = "left:0px;";
if(window.navigator.appName.toLowerCase().indexOf("microsoft")>=0) {
  ieBuffer = 3;
  ieContentStyle = "left: -" + ieBuffer + "px;";
}

var taskBox = null;
var formId = "mapForm";
var taskDetailsHeader;

var TheNewWin;
var toolbarId = "toolbar";
var layoutSliderId = "layoutSlider";
var headerId = "header";
var subheaderId = "subheader";
var contentId = "content";
var pageId = "page";
var panelId = "panel";
var statusId = "statusDiv";

var mapMargin = 10;
var mapBorder = 1;
var resizeCounter = 1;
var scaleBar, northArrowImg;
var toc1, ov1, map1;

function initLayout() {
  map1 = EsriControls.maps["map1"];
  toc1 = EsriControls.tocs["toc1"];
  ov1 = EsriControls.overviews["ov1"];

  loadTaskCenter();
  resizeMap();

  EsriControls.addPostBackTagHandler("task-result", taskResultHandler);
  EsriControls.addPostBackTagHandler("mapviewer-elements", mapViewerElementsHandler);
  EsriControls.tocs["resultsToc"].addUpdateListener("resultsDivShowHide", resultsDivShowHide);
  if (ov1 && map1.numLevels > 0)
    ov1.isContinuousPan = true;

  if (toc1) {
    toc1.bounds.width = 300;
    toc1.bounds.height = 400;
  }

  closeTaskWindows();
  initNavAndSlider();
  initNorthArrow();
  window.onresize = handleResize;
  var slider = document.getElementById(layoutSliderId);
  slider.onclick = togglePanel;
}

function loadTaskCenter() {
  var cont = document.getElementById("taskCenterPanel");
  taskBox = new TaskBox(cont, formId + ":taskWindows");
  taskBox.windowForm = document.getElementById(formId);
  if (ov1)
    taskBox.overviewId = ov1.id;

  if(document.getElementById("taskPanelContent").innerHTML.trim().length > 0)
    taskBox.addPanel(document.getElementById("taskPanelContent"), Res.getString("Tasks"), false);
  taskBox.addPanel(document.getElementById("resultsPanelContent"), Res.getString("Results"), true);
  taskBox.addPanel(document.getElementById("resultDetailsPanelContent"), Res.getString("Result Details"), true, formId);
  if(toc1)
    taskBox.addPanel(document.getElementById("tocPanelContent"), Res.getString("Map Legend"), true, formId, toc1.bounds);
  //taskBox.addPanel(document.getElementById("navPanelContent"), Res.getString("Navigation"), true, formId);
  if(ov1){
    taskBox.addPanel(document.getElementById("overviewPanelContent"), Res.getString("Map Overview"), true, formId, ov1.bounds);
    taskBox.showPanel("overviewPanelContent");
  }
  if(!txtwin.closed){
	//var tocsR = EsriControls.tocs["resultsToc"];
	//resultsDivShowHide(tocsR);
  }
  else
  	taskBox.hidePanel("resultsPanelContent");

  taskBox.showPanel("taskPanelContent");
  taskBox.hidePanel("resultDetailsPanelContent");
  if(toc1) taskBox.hidePanel("tocPanelContent");
  //taskBox.hidePanel("navPanelContent");
}

function togglePanel() {
  EsriUtils.toggleElement(document.getElementById(panelId));
  resizeMap();
}

function handleResize(e) {
  resizeCounter++;
  resizeLayout();
  setTimeout('throttleResize(' + resizeCounter + ')', 250);
}

function resizeMap() {
  var dimensions = resizeLayout();
  if (dimensions[0] != map1.bounds.width || dimensions[1] != map1.bounds.height)
    map1.resize(dimensions[0], dimensions[1]);
}

function resizeLayout() {
  var hdr = document.getElementById(headerId);
  var shdr = document.getElementById(subheaderId);
  var layout = document.getElementById(pageId);
  var panel = document.getElementById(panelId);
  var content = document.getElementById(contentId);
  var slider = document.getElementById(layoutSliderId);
  
  var layoutBounds = EsriUtils.getElementPageBounds(layout);
  var panelBounds = EsriUtils.getElementPageBounds(panel);
  var sliderBounds = EsriUtils.getElementPageBounds(slider);
  var hdrBounds = EsriUtils.getElementPageBounds(hdr);
  var shdrBounds = EsriUtils.getElementPageBounds(shdr);
  var bounds = EsriUtils.getPageBounds();
  
  if(panel.style.display == "none")  //ie doesn't get 0 width when panel is collapsed
    panelBounds.width = 0;
    
  var bottomHeight = bounds.height - hdrBounds.height - shdrBounds.height;
  var layoutHieght = bounds.height - shdrBounds.height - 5;
  var contentWidth = bounds.width - (sliderBounds.width + sliderBounds.left) - ieBuffer;
  var newContentH = ((bottomHeight > 0) ? bottomHeight : 0);
  var newContentW = ((contentWidth > 0) ? contentWidth : 0);
  var contentClass = EsriUtils.getStyleByClassName("#content");
  var newContentStyle = "position:relative; width:" + newContentW + "px; height: " + newContentH + "px; top:0px; " + ieContentStyle;
  var newLayoutStyle = "height: " + layoutHieght + "px;";
  var newPanelStyle = "height: " + (bounds.height - hdrBounds.height - shdrBounds.height) + "px;";
  EsriUtils.setElementStyle(layout, newLayoutStyle);
  EsriUtils.setElementStyle(panel, newPanelStyle);
  EsriUtils.setElementStyle(slider, newPanelStyle);
  EsriUtils.setElementStyle(content, newContentStyle);
  return [newContentW, newContentH];
}

function throttleResize(val) {
  if(val != resizeCounter)
    return true;
  resizeMap();
  return true;
}

function setStatus(s) {
  document.getElementById(statusId).innerHTML = s + "<br/>" + document.getElementById(statusId).innerHTML;
}

function resultsDivShowHide(toc) {
  if (toc.nodes.length == 0)
    taskBox.hidePanel("resultsPanelContent");
  else
    taskBox.showPanel("resultsPanelContent");
}

function taskResultHandler(xml, eventSources) {
  var table = document.getElementById("task-result-table");
  while (table.hasChildNodes())
    table.removeChild(table.firstChild);

  var tbody = table.appendChild(document.createElement("tbody"));
  var actions = xml.getElementsByTagName("action");
  if (actions.length > 0) {
    var actionsTd = tbody.appendChild(document.createElement("tr")).appendChild(document.createElement("td"));
    actionsTd.colSpan = "2";

    var span = actionsTd.appendChild(document.createElement("span"));
    span.appendChild(document.createTextNode(Res.getString("Actions") + ":  "));
    span.className = "med";
    EsriUtils.setElementStyle(span, "color:#000; font-weight:bold;");

    for (var i=0;i<actions.length;i++) {
      var a = actionsTd.appendChild(document.createElement("a"));
      a.href = "#";
      a.className = "med";
      EsriUtils.setElementStyle(a, "color:#000;");
      var action = actions.item(i).firstChild.nodeValue;
      a.setAttribute("onclick", "return requestTaskDetailsAction('" + action + "');");
      a.appendChild(document.createTextNode(action));
      actionsTd.innerHTML += "&nbsp;&nbsp;";
    }
  }

  if (! taskDetailsHeader) {
    taskDetailsHeader = document.createElement("tr");
    var nameTd = taskDetailsHeader.appendChild(document.createElement("td"));
    nameTd.className = "med";
    EsriUtils.setElementStyle(nameTd, "color:#000000; font-weight:bold;");
    nameTd.appendChild(document.createTextNode("Name"));
    var valueTd = taskDetailsHeader.appendChild(document.createElement("td"));
    valueTd.className = "med";
    EsriUtils.setElementStyle(valueTd, "color:#000000; font-weight:bold;");
    valueTd.appendChild(document.createTextNode("Value"));
  }
  tbody.appendChild(taskDetailsHeader);

  var details = xml.getElementsByTagName("detail");
  for (var i=0;i<details.length;i++) {
    var detail = details.item(i);
    var tr = tbody.appendChild(document.createElement("tr"));
    var key = tr.appendChild(document.createElement("td"));    
    key.appendChild(document.createTextNode(detail.getAttribute("key")));
    key.className = "med";
    EsriUtils.setElementStyle(key, "color:#000000;");

    var value = tr.appendChild(document.createElement("td"));
    var val = detail.getAttribute("value");
    if (val.indexOf("http") == 0){
    	var a = value.appendChild(document.createElement("a"));
  		a.href = val;
  		a.target = "_blank";
  		a.appendChild(document.createTextNode(val));
  	}
	else {
  		value.appendChild(document.createTextNode(val));
  		EsriUtils.setElementStyle(value, "color:#000000;");
	}
    value.className = "med";
  }

  taskBox.showPanel("resultDetailsPanelContent");
}

function requestTaskDetailsAction(action) {
  EsriControls.maps['map1'].showLoading();
  var params = "mapViewerAjax=mapViewerAjax&formId=" + formId + "&" + formId + ":an=" + action + "&" + formId + ":pa=" + formId + ":pa&" + EsriUtils.buildRequestParams(formId);
  var xh = EsriUtils.sendAjaxRequest(EsriUtils.getServerUrl(formId), params, false, function() { EsriControls.processPostBack(xh); });
  return false;
}

function disableButtons(AddingButton, processingButton) {
  //document.getElementById('addEnable').style.display = 'none';
  //document.getElementById('addDisable').style.display = 'block';
  AddingButton.style.display = 'none';
  processingButton.style.display = 'block';
}

function toggleAddResourceDialog(dialogName) {
  if (document.getElementById(dialogName).value=='true'){ 
      document.getElementById(dialogName).value=false; 
  } else { 
      document.getElementById(dialogName).value=true; 
      changeSelectedResource();            
  }
}

function changeSelectedResource() {
  var s=document.getElementById('mapForm:dataSources');
  s.options[document.getElementById("mapForm:selDataSource").value].selected = "true";
  s.onchange();
}

function toggleWindow(id) {
  if(taskWindowManager && taskWindowManager.windows[id])
    taskWindowManager.windows[id].toggleVisibility();
  document.getElementById("mapForm:dataSources").selectedIndex = 0;
  fwn.toggleVisibility();
  document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden"; 
  document.getElementById("AGSInputDIV").style.visibility = "hidden";
  document.getElementById("AIMSInputDIV").style.visibility = "hidden";
  document.getElementById("WMSInputDIV").style.visibility = "hidden";
  document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
  document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
  document.getElementById("PointInputDIV").style.visibility = "hidden";
  //document.getElementById("ShapeInputDIV").style.visibility = "hidden";
}

function toggleData(winName) {
	if (winName == 'printData')
		pwin.toggleVisibility();
	if (winName == 'exportData')
		fwin.toggleVisibility();
	if (winName == 'selectPoint')
		fwinPt.toggleVisibility();
	if (winName == 'tableView')
		txtwin.toggleVisibility();
	if (winName == 'identifyLayer')
		fwinIden.toggleVisibility();
	if (winName == 'exportShapeLayer')
		fwinShape.toggleVisibility();
	if (winName == 'myDiv2')
		myWins.toggleVisibility();
	if (winName == 'searchAttributes')
		fwinAtt.toggleVisibility();
	if (winName == 'XYGoTo')
		fwinXY.toggleVisibility();
	if (winName == 'hucReport')
		HUCwin.toggleVisibility();
}

function toggleShowWin(winName){
	if (winName == 'tableView'){
		txtwin.hide();
		txtwin.show();
	}
}

function toggleCloseData(winName) {
	if (winName == 'printData')
		pwin.hide();
	if (winName == 'exportData')
		fwin.hide();
	if (winName == 'selectPoint')
		fwinPt.hide();
	if (winName == 'tableView')
		txtwin.hide();
	if (winName == 'identifyLayer')
		fwinIden.hide();
	if (winName == 'exportShapeLayer')
		fwinShape.hide();
	if (winName == 'myDiv2')
		myWins.hide();
	if (winName == 'searchAttributes')
		fwinAtt.hide();
	if (winName == 'XYGoTo')
		fwinXY.hide();
	if (winName == 'hucReport')
		HUCwin.hide();
}

function showAddData() {
	toggleWindow('addData'); 
	return false;
}

function showSelectData() {
	toggleData('selectPoint'); 
	return false;
}

function showIdentifyData() {
	toggleData('identifyLayer');
	return false;
}

function checkZone(){
	var coordinate = document.getElementById('mapForm:selectCoord').value;
	
	if(coordinate == 'UTM83' || coordinate == 'UTM27'){
		document.getElementById('zoneDisable').style.display = 'block';
		document.getElementById('latDisable').style.display = 'none';
		document.getElementById('longDisable').style.display = 'none';
		document.getElementById('xDisable').style.display = 'block';
		document.getElementById('yDisable').style.display = 'block';
	}
	else{
		document.getElementById('zoneDisable').style.display = 'none';
		document.getElementById('xDisable').style.display = 'none';
		document.getElementById('yDisable').style.display = 'none';
		document.getElementById('latDisable').style.display = 'block';
		document.getElementById('longDisable').style.display = 'block';
	}
}

function hideDataSourceDiv(){
    var index = document.getElementById("mapForm:dataSources").selectedIndex;
 	document.getElementById("mapForm:selDataSource").value=index;        
    switch (index) {
    case 1:
    document.getElementById("AGSNWFSCInputDIV").style.display = "block";
    document.getElementById("AGSNWFSCInputDIV").style.visibility = "visible";
    document.getElementById("mapForm:agsNWFSCAddDataBtn").disabled = false;
    
    document.getElementById("AGSInputDIV").style.display = "none";   
    document.getElementById("AIMSInputDIV").style.display = "none";
    document.getElementById("WMSInputDIV").style.display = "none";
    document.getElementById("ArcWebInputDIV").style.display = "none";                
    document.getElementById("AGSWSInputDIV").style.display = "none";
    document.getElementById("PointInputDIV").style.display = "none";
    //document.getElementById("ShapeInputDIV").style.display = "none";

    document.getElementById("AGSInputDIV").style.visibility = "hidden";  
    document.getElementById("AIMSInputDIV").style.visibility = "hidden";
    document.getElementById("WMSInputDIV").style.visibility = "hidden";
    document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
    document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
    document.getElementById("PointInputDIV").style.visibility = "hidden";
    //document.getElementById("ShapeInputDIV").style.visibility = "hidden";
    break;
    
    case 2:
    document.getElementById("AIMSInputDIV").style.display = "block";
    document.getElementById("AIMSInputDIV").style.visibility = "visible";                                    
    document.getElementById("mapForm:aimsAddDataBtn").disabled = true;

    document.getElementById("AGSNWFSCInputDIV").style.display = "none"; 
    document.getElementById("AGSInputDIV").style.display = "none";                
    document.getElementById("ArcWebInputDIV").style.display = "none";                
    document.getElementById("AGSWSInputDIV").style.display = "none";
    document.getElementById("WMSInputDIV").style.display = "none";
    document.getElementById("PointInputDIV").style.display = "none";
    //document.getElementById("ShapeInputDIV").style.display = "none";

    document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden";
    document.getElementById("AGSInputDIV").style.visibility = "hidden";                
    document.getElementById("WMSInputDIV").style.visibility = "hidden";
    document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
    document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
    document.getElementById("PointInputDIV").style.visibility = "hidden";
    //document.getElementById("ShapeInputDIV").style.visibility = "hidden";                
    break;

    case 3:
    document.getElementById("AGSInputDIV").style.display = "block";
    document.getElementById("AGSInputDIV").style.visibility = "visible";
    document.getElementById("mapForm:agsAddDataBtn").disabled = true;

	document.getElementById("AGSNWFSCInputDIV").style.display = "none"; 
    document.getElementById("AIMSInputDIV").style.display = "none";
    document.getElementById("WMSInputDIV").style.display = "none";
    document.getElementById("ArcWebInputDIV").style.display = "none";                
    document.getElementById("AGSWSInputDIV").style.display = "none";
    document.getElementById("PointInputDIV").style.display = "none";
    //document.getElementById("ShapeInputDIV").style.display = "none";

    document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden";
    document.getElementById("AIMSInputDIV").style.visibility = "hidden";
    document.getElementById("WMSInputDIV").style.visibility = "hidden";
    document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
    document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
    document.getElementById("PointInputDIV").style.visibility = "hidden";
    //document.getElementById("ShapeInputDIV").style.visibility = "hidden";
    break;

    case 4:
    document.getElementById("AGSWSInputDIV").style.visibility = "visible";
    document.getElementById("AGSWSInputDIV").style.display = "block";
    document.getElementById("mapForm:agswsAddDataBtn").disabled = true;

    document.getElementById("AGSNWFSCInputDIV").style.display = "none"; 
    document.getElementById("AGSInputDIV").style.display = "none";
    document.getElementById("AIMSInputDIV").style.display = "none";
    document.getElementById("WMSInputDIV").style.display = "none";
    document.getElementById("ArcWebInputDIV").style.display = "none";
    document.getElementById("PointInputDIV").style.display = "none";
    //document.getElementById("ShapeInputDIV").style.display = "none";

    document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden";
    document.getElementById("AGSInputDIV").style.visibility = "hidden";
    document.getElementById("AIMSInputDIV").style.visibility = "hidden";
    document.getElementById("WMSInputDIV").style.visibility = "hidden";
    document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
    document.getElementById("PointInputDIV").style.visibility = "hidden";
    //document.getElementById("ShapeInputDIV").style.visibility = "hidden";                
    break;

    case 5:
    document.getElementById("ArcWebInputDIV").style.visibility = "visible";
    document.getElementById("ArcWebInputDIV").style.display = "block";

    document.getElementById("AGSNWFSCInputDIV").style.display = "none"; 
    document.getElementById("AGSInputDIV").style.display = "none";
    document.getElementById("AIMSInputDIV").style.display = "none";
    document.getElementById("WMSInputDIV").style.display = "none";
    document.getElementById("AGSWSInputDIV").style.display = "none";
    document.getElementById("PointInputDIV").style.display = "none";
    //document.getElementById("ShapeInputDIV").style.display = "none";

    document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden";
    document.getElementById("AGSInputDIV").style.visibility = "hidden";
    document.getElementById("AIMSInputDIV").style.visibility = "hidden";
    document.getElementById("WMSInputDIV").style.visibility = "hidden";
    document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
    document.getElementById("PointInputDIV").style.visibility = "hidden";
    //document.getElementById("ShapeInputDIV").style.visibility = "hidden";
    break;

    case 6:
    document.getElementById("WMSInputDIV").style.visibility = "visible";
    document.getElementById("WMSInputDIV").style.display = "block";

    document.getElementById("AGSNWFSCInputDIV").style.display = "none"; 
    document.getElementById("AGSInputDIV").style.display = "none";
    document.getElementById("AIMSInputDIV").style.display = "none";
    document.getElementById("ArcWebInputDIV").style.display = "none";
    document.getElementById("AGSWSInputDIV").style.display = "none";
    document.getElementById("PointInputDIV").style.display = "none";
    //document.getElementById("ShapeInputDIV").style.display = "none";

    document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden";
    document.getElementById("AGSInputDIV").style.visibility = "hidden";
    document.getElementById("AIMSInputDIV").style.visibility = "hidden";
    document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
    document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
    document.getElementById("PointInputDIV").style.visibility = "hidden";
    //document.getElementById("ShapeInputDIV").style.visibility = "hidden";
    break;
    
    case 7:
    document.getElementById("PointInputDIV").style.visibility = "visible";
    document.getElementById("PointInputDIV").style.display = "block";

    document.getElementById("AGSNWFSCInputDIV").style.display = "none"; 
    document.getElementById("AGSInputDIV").style.display = "none";
    document.getElementById("AIMSInputDIV").style.display = "none";
    document.getElementById("ArcWebInputDIV").style.display = "none";
    document.getElementById("WMSInputDIV").style.display = "none";
    document.getElementById("AGSWSInputDIV").style.display = "none";
    //document.getElementById("ShapeInputDIV").style.display = "none";

    document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden";
    document.getElementById("AGSInputDIV").style.visibility = "hidden";
    document.getElementById("AIMSInputDIV").style.visibility = "hidden";
    document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
    document.getElementById("WMSInputDIV").style.visibility = "hidden";
    document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
    //document.getElementById("ShapeInputDIV").style.visibility = "hidden";
    break;
    
    /*case 8:
    document.getElementById("ShapeInputDIV").style.visibility = "visible";
    document.getElementById("ShapeInputDIV").style.display = "block";

    document.getElementById("AGSNWFSCInputDIV").style.display = "none"; 
    document.getElementById("AGSInputDIV").style.display = "none";
    document.getElementById("AIMSInputDIV").style.display = "none";
    document.getElementById("ArcWebInputDIV").style.display = "none";
    document.getElementById("WMSInputDIV").style.display = "none";
    document.getElementById("AGSWSInputDIV").style.display = "none";
    document.getElementById("PointInputDIV").style.display = "none";

    document.getElementById("AGSNWFSCInputDIV").style.visibility = "hidden";
    document.getElementById("AGSInputDIV").style.visibility = "hidden";
    document.getElementById("AIMSInputDIV").style.visibility = "hidden";
    document.getElementById("ArcWebInputDIV").style.visibility = "hidden";
    document.getElementById("WMSInputDIV").style.visibility = "hidden";
    document.getElementById("AGSWSInputDIV").style.visibility = "hidden";
    document.getElementById("PointInputDIV").style.visibility = "hidden";
    break;*/
    }
}

function closeTaskWindows() {
  var props = taskWindowManager.getProperties();
  for (var i=0;i<taskWindowManager.windowIds.length;i++) {
    var id = taskWindowManager.windowIds[i];
    if (props.indexOf(id) == -1) {
      var win = taskWindowManager.windows[id];
      win.center();
      win.hide();
    }
  }
}

function initNavAndSlider() {
  var mapNavigator = new EsriMapNavigator("mapNavigator", null, map1.id);
  mapNavigator.image_map_move_shape = mapNavigator.image_map_move_shape = null;
  mapNavigator.init(document.getElementById("nav-container"));

  if (map1.numLevels > 0)
    var mapSlider = new EsriMapSlider("mapSlider", document.getElementById("slider-container"), map1.id, map1.numLevels - 1, map1.level);
}

function initNorthArrow() {
  var northarrowDiv = document.getElementById("northarrow");
  if (northarrowDiv) {
    northArrowImg = northarrowDiv.appendChild(EsriUtils.createImage(document.getElementById(formId + ":northarrowHid").value, "100px", "100px"));
    northArrowImg.id = "northArrowImg";
  }
}

function mapViewerElementsHandler(xml, eventSources) {
  var northarrowTags = xml.getElementsByTagName("north-arrow-url");
  if (northArrowImg && northarrowTags.length > 0 && northarrowTags.item(0).hasChildNodes()) {
    var src = northarrowTags.item(0).firstChild.nodeValue;
    if (EsriUtils.isIE) {
      var img = EsriUtils.createImage(src, "100px", "100px");
      img.id = northArrowImg.id;
      northArrowImg.parentNode.replaceChild(img, northArrowImg);
      northArrowImg = img;
    }
    else
      northArrowImg.src = src;
  }
}

 //DWR START
    function getServers(c){
        Demo.getServers(createList, c); 
    }

    function createList(data){
        var c = $('mapForm:dataSources').options[$('mapForm:dataSources').selectedIndex].value
        //alert('c - ' + c)
        var selList = c + "DataList";
        var dataBtn = "mapForm:" + c + "AddDataBtn";

        if (data != null) {
            if (data.length != 0) {
                DWRUtil.removeAllOptions(selList, data);
                DWRUtil.addOptions(selList, data);                   
                //if( $(selList).options.length > 0) 
                $(selList).disabled=false;
                $(dataBtn).disabled=false;
                $(selList).options[0].selected = true;
                $(selList).focus();
                $(selList).onchange();                
                }
             else {
                //$(selList).disabled=true;
                //$(dataBtn).disabled=true;
            }
        }
    }      

    function displayMessage(data){
        //document.getElementById('error').style.display='inline';
        //DWRUtil.setValue("error", data);               
        //setTimeout("unsubmitFunction();", 1000);
    }

    function unsubmitFunction()
    {
        $("error").style.display = "none";
    }

    function getMessage(){
        Demo.getMessage(displayMessage);
    }

    function getAimsServices(host, port, username, password){
        DWREngine.beginBatch()
        Demo.getAimsServices(createList, host, port, username, +password); //$("resourceList").options[$("resourceList").selectedIndex].value);
        Demo.getMessage(displayMessage);
        DWREngine.endBatch()
       }

    function getAgsServices(host,domain,username,password){
        //alert(host);
        DWREngine.beginBatch()
        Demo.getAgsServices(createList, host, domain, username, password); //$("resourceList").options[$("resourceList").selectedIndex].value);
        //Demo.getMessage(displayMessage);
        DWREngine.endBatch()
       }

    function getAgswsMapURLs(catalogURL){
        DWREngine.beginBatch()
        Demo.getAgsWebURLs(createList, catalogURL);
        Demo.getMessage(displayMessage);
        DWREngine.endBatch()
    }

    function init() {
        //DWRUtil.useLoadingMessage();
    }
/**
 *
 */
function objectEval(text)
{
    // eval() breaks when we use it to get an object using the { a:42, b:'x' }
    // syntax because it thinks that { and } surround a block and not an object
    // So we wrap it in an array and extract the first element to get around
    // this.
    // The regex = [start of line][whitespace]{[stuff]}[whitespace][end of line]
    text = text.replace(/\n/g, " ");
    text = text.replace(/\r/g, " ");
    if (text.match(/^\s*\{.*\}\s*$/))
    {
        text = "[" + text + "]";
    }

    return eval(text)[0];
}

/**
 *
 */
function callOnLoad(init)
{
    if (window.addEventListener)
    {
        window.addEventListener("load", init, false);
    }
    else if (window.attachEvent)
    {
        window.attachEvent("onload", init);
    }
    else
    {
        window.onload = init;
    }
}               

     callOnLoad(init); 

//DWR END

/*function refresh(){
	var map = EsriControls.maps["map1"];
	map.showLoading();
	var params = "doContinuousPan=doContinuousPan&resizeMap=resizeMap&source="
			    + map.mapSources[map.mapSourceNames[0]].type + "&formId=" + map.formId + "&mapId=" + map.id + "&width=" + map.width + "&height="
			    + map.height + "&" + EsriUtils.buildRequestParams(map.formId);
	var xh = EsriUtils.sendAjaxRequest(EsriUtils.getServerUrl(map.formId), params, false, function()
		    	{ EsriControls.processPostBack(xh); });
    //history.go(0);
}*/

function submitFormPop(){
	document.forms['fIDs'].submit();
	toggleCloseData('exportData');
}

function submitPopForm(){document.popIds.submit();
	document.forms['popIds'].submit();
}

function submitPrinter(){
	document.forms['theprint'].submit();
}

function submitPrinterPort(){
	document.forms['theprintport'].submit();
}

function submitReport(){
	var tsubmitForm = document.createElement("FORM");
	document.body.appendChild(tsubmitForm);
	tsubmitForm.name="theReport";
	tsubmitForm.target="Report";
	tsubmitForm.action="hucReport.jsf";
	tsubmitForm.method="POST";
	tsubmitForm.submit();
}

function submitBuilder(){
	// Set height and width
	var NewWinHeight=600;
	var NewWinWidth=450;
	
	// Place the window
	var NewWinPutX=10;
	var NewWinPutY=10;
	
	//Get what is below onto one line
	
	TheNewWin =window.open("queryBuilder.jsf",'TheNewpop',
	'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no'); 
	//Get what is above onto one line	
	TheNewWin.resizeTo(NewWinHeight,NewWinWidth);
	TheNewWin.moveTo(NewWinPutX,NewWinPutY);
	return TheNewWin;
}

function hideButtons(){
	document.getElementById("sideButtons").style.display = "none";
	//document.getElementById("AddData").defaultImage = "images/pixel.gif";
}

function checkNumeric(objName){
	var name = objName.id;
	var coord = document.getElementById("mapForm:selectCoord").value;
	if(name == "mapForm:goX"){
		if(coord == "Geograpic"){
			if(objName.value < -180){
				alert("The longitude you entered is out of range. Please enter a number in the range (-180 to 180).");
				document.getElementById(objName.id).value = "";
			}
			if(objName.value > 180){
				alert("The longitude you entered is out of range. Please enter a number in the range (-180 to 180).");
				document.getElementById(objName.id).value = "";
			}
		}
		else if(coord == "UTM83" || coord == "UTM27" ){
			if(objName.value < 0){
				alert("The easting you entered is out of range.  Enter a higher value.");
				document.getElementById(objName.id).value = "";
			}
			if(objName.value > 10000000){
				alert("The easting you entered is out of range.  Enter a lower value.");
				document.getElementById(objName.id).value = "";
			}
		}
	}
	else if(name == "mapForm:goY"){
		if(coord == "Geograpic"){
			if(objName.value < -90){
				alert("The latitude you entered is out of range. Please enter a number in the range (-90 to 90).");
				document.getElementById(objName.id).value = "";
			}
			if(objName.value > 90){
				alert("The latitude you entered is out of range. Please enter a number in the range (-90 to 90).");
				document.getElementById(objName.id).value = "";
			}
		}
		else if(coord == "UTM83" || coord == "UTM27" ){
			if(objName.value < 0){
				alert("The northing you entered is out of range.  Enter a higher value.");
				document.getElementById(objName.id).value = "";
			}
			if(objName.value > 10000000){
				alert("The northing you entered is out of range.  Enter a lower value.");
				document.getElementById(objName.id).value = "";
			}
		}
	}
}