// **************************************************************************************************
var mapservURL = '/bin/mapserv46';
// **************************************************************************************************
// ***** used in search module
function changeMap(goTo) {
  mf = window.top.document.mapform;
  mF = window.top.mapframe.document.mapframeform;
  mFsrc = frames['mapframe'].location;
  mapFile = mF.map.value;
  mapfileExt = mF.mapfile_ext.value;
  curExt = mF.mapext.value;
  frameSrc = mapservURL + '?map=' + mapFile + '&mapfile_ext=' + mapfileExt + '&mapext=';

  // Get selected layers
  mapLayers = mf.layers;
  ll = mapLayers.length;
  layerText = '&layers=';
  for (i=0; i<ll; i++) {
    if (mapLayers[i].checked) layerText += mapLayers[i].value + ' '; 
  }

  // Process user input
  if (goTo == 'reset') {
    layerText = '&layers=condition';
    frameSrc += mapfileExt;
    domCollapseAll('menu2','span',888);
    domCollapse('menu2','span',0); 
  }
  else if (goTo == 'update') {
    if (mf.pImcra.selectedIndex > 0) layerText += 'imcra_90';
    else if (mf.pMarReg.selectedIndex > 0) layerText += 'marineregions';
    else if (mf.pNRMZone.selectedIndex > 0) layerText += 'nrmregions';
    else if (mf.pLGA.selectedIndex > 0) layerText += 'lgaregions';
    if (window.top.document.getElementById("gPageName").value == "search") {
      if ((layerText.indexOf('beaches') != -1) && (layerText.indexOf('condition') == -1)) {
        window.top.document.getElementById("gInfoSelected").value = 'beaches';
      }
      else { window.top.document.getElementById("gInfoSelected").value = 'condition'; }
    }
    frameSrc += curExt; 
  }
  else if (goTo == 'state') {
    frameSrc += mf.pState[mf.pState.selectedIndex].value; 
  }
  else if (goTo == 'imcra') {
    layerText += 'imcra_90';
    frameSrc += mf.pImcra[mf.pImcra.selectedIndex].value; 
  }
  else if (goTo == 'marreg') {
    layerText += 'marineregions';
    frameSrc += mf.pMarReg[mf.pMarReg.selectedIndex].value; 
  }
  else if (goTo == 'nrm') {
    layerText += 'nrmregions';
    frameSrc += mf.pNRMZone[mf.pNRMZone.selectedIndex].value; 
  }
  else if (goTo == 'lga') {
    layerText += 'lgaregions '; 
    frameSrc += mf.pLGA[mf.pLGA.selectedIndex].value; 
  }
  
  if (goTo != 'update' && goTo != 'state') mf.pState.selectedIndex = 0;
  if (goTo != 'update' && goTo != 'imcra') mf.pImcra.selectedIndex = 0;
  if (goTo != 'update' && goTo != 'marreg') mf.pMarReg.selectedIndex = 0;
  if (goTo != 'update' && goTo != 'nrm') mf.pNRMZone.selectedIndex = 0;
  if (goTo != 'update' && goTo != 'lga') mf.pLGA.selectedIndex = 0;
  
  mFsrc.href = frameSrc + layerText;

  return false;
}
// **************************************************************************************************
// ***** used in report cards and habitat mapping and smartlines
function updateMap(goTo, mainDoc, childDoc) {

  var mbr = "";
  filter = '';
  mapFile = window.top.mapframe.document.mapframeform.map.value;
  mapfileExt = window.top.mapframe.document.mapframeform.mapfile_ext.value;
  curExt = window.top.mapframe.document.mapframeform.mapext.value;
  oldExt = window.top.mapframe.document.mapframeform.mapext.value;
  frameSrc = mapservURL + '?map=' + mapFile + '&mapfile_ext=' + mapfileExt + '&mapext=';
  mainDoc.getElementById("mapframe").src = "";

  // ***************************************** LAYERS ***************
  mapLayers = mainDoc.getElementsByName("layers");
  ll = mapLayers.length;
  layerText = '&layers=';
  for (i=0; i<ll; i++) {
    if (mapLayers[i].checked) {
      layerText += mapLayers[i].value + ' '; 
    }
  }
  // ****** FOR ALL CALLS EXCEPT REGIONS
  if ((goTo != 'nrm') && (goTo != 'marreg') && (goTo != 'imcra') && (goTo != 'lga') && (goTo != 'state')) {
    layerText += mainDoc.getElementById("gLayer").value + ' ';
  }

  // ***************************************** PAGE SPECIFIC ***************
  // ****** HABITATS
  if (mainDoc.getElementById("gPageName").value == 'habitats') {
    layerText += 'grid50data ';

    if (mainDoc.getElementById("pHabitatGen").value != '0all') {
      filter = "&mapfiltername=map_grid50data_filter&mapfiltername2=map_grid10data_filter&mapfilter=(name='" + mainDoc.getElementById("pHabitatGen").value + "')";
    }
    else {
      filter = "";
    }
  }
  // ****** REPORT CARDS
  else if (mainDoc.getElementById("gPageName").value == 'reportcards') {
  
    page = mainDoc.getElementById("gTab").value;
  
    if (mainDoc.getElementById(page+"Page").value == 'R' && mainDoc.getElementById(page+"Opt").value == 'S')  {
      layerText += 'risks '; 
      filter = "&mapfiltername=map_risks_filter&mapfilter=(stressor='" + mainDoc.getElementById(page+"Indicator").value + "' and year=" + mainDoc.getElementById(page+"Year").value + ")";
    }
    else  if (mainDoc.getElementById(page+"Page").value == 'P' && mainDoc.getElementById(page+"Opt").value == 'S') {
      // pressure layer when available
    }
    else if (mainDoc.getElementById(page+"Opt").value == 'S') {
      layerText += 'conditions '; 
      filter = "&mapfiltername=map_conditions_filter&mapfilter=(stressor='" + mainDoc.getElementById(page+"Indicator").value + "' and year=" + mainDoc.getElementById(page+"Year").value + ")";
    }
  }
  // ****** SMARTLINE
  else if (mainDoc.getElementById("gPageName").value == 'smartline') {
    layerText += mainDoc.getElementById("gLayer").value + ' ';
    layerText += mainDoc.getElementById("gLines").value + ' ';
    filter = mainDoc.getElementById("gAdvanced").value;
  }

  // ***************************************** FUNCTION SPECIFIC ***************
  // ****** PAGES / LAYERS
  if (goTo == 'update') {
    frameSrc += curExt; 
  }
  
  else if (goTo == 'habitat') {
    frameSrc += curExt;   
  }

  else if (goTo == 'smartline') {
    frameSrc += curExt;   
  }

  // ****** NAVIGATION
  else if (goTo == 'year') {
    frameSrc += curExt;
    if (mainDoc.getElementById("gBM").value == "1")
      layerText += 'bmregion ';
  }
  
  else if (goTo == 'changeType') {
    if (mainDoc.getElementById("pOrigin").value == 'NAT') {
      mbr = mainDoc.getElementById("gNatMbr").value;  
    }
    else if (mainDoc.getElementById("pOrigin").value == 'NSW') {
      mbr = mainDoc.getElementById("gNSWMbr").value;  
    }
    else if (mainDoc.getElementById("pOrigin").value == 'QLD') {
//      mbr = mainDoc.getElementById("gQLDmbr").value;  
      mbr = mainDoc.getElementById("gBMmbr").value;  
    }
     
    curExt = mbr;
    frameSrc += mbr;  

    if (mainDoc.getElementById("gBM").value == "1")
      layerText += 'bmregion ';
  }
  
  // ****** REGIONS
  else if (goTo == 'state') {
    mbr = mainDoc.getElementById("pState").value;
    curExt = mbr;
    frameSrc += mbr;
  }
  
  else if (goTo == 'imcra') {
    mbr = childDoc.getElementById("pImcra").value;   
    if (mbr != null) { 
      layerText += 'imcra_90 '; 
      mainDoc.getElementById("gLayer").value = 'imcra_90'; 
    }
    curExt = mbr;
    frameSrc += mbr;
  }
  
  else if (goTo == 'marreg') {
    mbr = childDoc.getElementById("pMarReg").value;   
    if (mbr != null) { 
      layerText += 'marineregions '; 
      mainDoc.getElementById("gLayer").value = 'marineregions'; 
    }
    curExt = mbr;
    frameSrc += mbr;
  }
  
  else if (goTo == 'nrm') {
    mbr = childDoc.getElementById("pNRMZone").value;   
    if (mbr != null) { 
      layerText += 'nrmregions '; 
      mainDoc.getElementById("gLayer").value = 'nrmregions'; 
    }
    curExt = mbr;
    frameSrc += mbr;
  }
  
  else if (goTo == 'lga') {
    mbr = childDoc.getElementById("pLGA").value;   
    if (mbr != null) { 
      layerText += 'lgaregions '; 
      mainDoc.getElementById("gLayer").value = 'lgaregions'; 
    }
    curExt = mbr;
    frameSrc += mbr;
  }

  // ****** FROM REGIONS this section only applicable if called from the Regions frame
  if (childDoc != '') {

    if (mbr == "") {
      mainDoc.getElementById("gLayer").value = '';

      if (mainDoc.getElementById("pOrigin").value == "NAT") {
        if (mainDoc.getElementById("pState").selectedIndex != 0)
          mbr = mainDoc.getElementById("pState").value;
        else
          mbr = mainDoc.getElementById("gNatMbr").value; 
      }
      else if (mainDoc.getElementById("pOrigin").value == "NSW") {
        mbr = mainDoc.getElementById("gNSWmbr").value; 
      }
      else if (mainDoc.getElementById("pOrigin").value == "QLD") {
        // mbr = mainDoc.getElementById("gQLDmbr").value; 
        mbr = mainDoc.getElementById("gBMmbr").value;  
      }

      curExt = mbr;
      frameSrc += mbr;
    }
    mainDoc.getElementById("gCurrentMbr").value = mbr;

    if (goTo != 'imcra') childDoc.getElementById("pImcra").selectedIndex = 0;
    if (goTo != 'marreg') childDoc.getElementById("pMarReg").selectedIndex = 0;
    if (goTo != 'nrm') childDoc.getElementById("pNRMZone").selectedIndex = 0;
    if (goTo != 'lga') childDoc.getElementById("pLGA").selectedIndex = 0;

  }  // childDoc != ''

  // ***************************************** HABITATS ZOOM LEVEL ***************
  if (mainDoc.getElementById("gPageName").value == 'habitats') {

    ext = curExt.split(' ');
    changeZoom(ext[2]-ext[0]);

    if (window.top.document.getElementById("gZoomLevel").value == "habitat") {
      filter = "";
    }
  }

  if (mainDoc.getElementById("gPageName").value == "smartlines") { 
    mainDoc.getElementById("gCurrentMbr").value = curExt;
  }
  mainDoc.getElementById("mapframe").src = frameSrc + layerText + filter;
  return false;
}
// **************************************************************************************************
