﻿// JScript File

var shape = null;
var BoundingShape = null;
var activeWMSLayer = null;
var mapX = null;
var mapY = null;
var layer = null;
var ShapeLayerCityCounty = null;
var ShapeLayerClaims = null;
var activeLayers = new Array('0');
var IEVersion = '';

function setInitialState()
{
    if(activeQuestion)
    {
        //var newquestionID = activeQuestion.split("themetab")[1];

        switch(activeQuestion)
        {
            case "1":  // ugb
                ToggleActiveThemeTab('themetab1'); 
                toggleWMSLayer('StateWideLandUse','UGB', 'statewide','3'); 
                ChangeStateLayersIndex('StateWideLandUseUGB','1');
                break;
            case "2":  // soils
                ToggleActiveThemeTab('themetab2'); 
                toggleWMSLayer('StateWideLandUse','Soils', 'statewide','1,2'); 
                ChangeStateLayersIndex('StateWideLandUseSoils','2');
                break;
            case "3":  // forest land
                ToggleActiveThemeTab('themetab3'); 
                toggleWMSLayer('LandUseRasters','ForestedLand', 'statewide','forestedLand'); 
                ChangeStateLayersIndex('LandUseRastersForestedLand','3');
                break;
            case "4": // fire risk
                ToggleActiveThemeTab('themetab4'); 
                toggleWMSLayer('LandUseRasters','WildfireRisk', 'statewide','car_overall_high,car_overall_medium,car_overall_low'); 
                ChangeStateLayersIndex('LandUseRastersWildfireRisk','4');
                break;
            case "5": // conservation opportunities
                ToggleActiveThemeTab('themetab5'); 
                toggleWMSLayer('StateWideLandUse','ConservationOpp', 'statewide','0'); 
                ChangeStateLayersIndex('StateWideLandUseConservationOpp','5');
                break;
            case "6": // ground water
                ToggleActiveThemeTab('themetab6'); 
                toggleWMSLayer('StateWideLandUse','Groundwater', 'statewide','4'); 
                ChangeStateLayersIndex('StateWideLandUseGroundwater','6');
                break;
            case "7": // M37 claims
                ToggleActiveThemeTab('themetab7'); 
                turnOffLayersinLayerType('statewide'); 
                ChangeStateLayersIndex('empty');
                break;
        }
    }
}
               
function GetMap()      
{         
    map = new VEMap('myMap');       
    
    map.LoadMap(new VELatLong(44.000717834, -121.706542), 7, 's',0, VEMapMode.Mode2D, 1);   
    map.ShowMiniMap(545,0);
    map.EnableShapeDisplayThreshold(false);
    ShapeLayerClaims = new VEShapeLayer();
    ShapeLayerClaims.SetTitle("ClaimsPoly");                            
    map.AddShapeLayer(ShapeLayerClaims);        
    var hdfClaimSelected = $get('hiddenFld_claimSelected');
    hdfClaimSelected.value = 'LandUse;ClaimsLandDiv;claim';
    IEVersion = msieversion();
    toggleWMSLayer('LandUseClaimsDiv', 'ClaimsLandDiv', 'claim', '1,2,3,4');    
    if (IEVersion < 7)
    {    
    getTopoTiles(1,true, "LandUse_NoData", "0","noData","NoData");
    var SliderDiv = $get('sliderDivParent');
	var SliderDivStatewide = $get('sliderStateWideDiv');	
	var SliderDivOther = $get('sliderOtherDiv');
    SliderDiv.style.display = 'none';
	SliderDivStatewide.style.display = 'none';
	SliderDivOther.style.display = 'none';
    }
    else
    {
    getTopoTiles(.5,true, "LandUse_NoData", "0","noData","NoData");
    }

    var SliderOtherDiv = $get('sliderOtherDiv');
    var Browser = getBrowser();
    if (Browser != "Microsoft Internet Explorer")
    {       
    SliderOtherDiv.className = 'sliderOtherDivMozilla';        
    }
    else
    {
    SliderOtherDiv.className = 'sliderOtherDivIE';     
    }        
    window.setTimeout('getHideSliderDivs(false, 2)', 1);  
    window.setTimeout('getHideSliderDivs(false, 1)', 1);  
    window.setTimeout('hideMiniResize()',1);
    map.AttachEvent('oninitmode', modeChanged);  
    map.AttachEvent('onmodenotavailable', No3DInstalled);
    map.AttachEvent("onclick", onClickHandler);
    map.AttachEvent("onmouseover", onMouseOverHandler);
    map.AttachEvent("onchangeview", onMapChangeViewHandler);   
        //onMapChangeViewHandler();
}

function txtBoxSubmit(e)
                    {
    if (e && e.keyCode == 13)
    {
        if (e.srcElement.value != "")
        {           
         map.Find(null, e.srcElement.value);
        }
    
//        if (e && e.preventDefault)
//            e.preventDefault(); // DOM style  
//            e.returnValue = false;  
//                    var AlertDiv = $get('SelectAlert');                    
//                    AlertDiv.style.display = 'block';
//                    AlertDiv.focus();
        return false;
                }
                }

function imgBtnOnclick(page)
{
if (page == "overview")
{
window.location = "./overview.aspx";
return false;
}
else if (page =="maps")
{
window.location = "./maps.aspx";
return false;
}
else if (page =="reports")
{
window.location = "./reports.aspx";
return false;
}

}

function hideMiniResize()
{
    var miniResize = $get('MSVE_minimap_resize');
    miniResize.style.display = 'none';
}

function modeChanged()
{    
//    var mode = map.GetMapMode();
//    var ThreeDDisclaimer = $get('3DDisclaimer');   
//        if (mode == 1)
//        {            
//            ThreeDDisclaimer.style.visibility = 'hidden';
//        }
//        else if (mode == 2)
//        {
//            ThreeDDisclaimer.style.visibility = 'visible';
//        }

}

function No3DInstalled ()
{
    if (confirm('Before viewing the maps in 3D mode, '+
                  'you must install the Virtual Earth 3D software on your computer.' +
                  '\nWould you like to download Virtual Earth 3D? ' ))
                {
                window.open("http://go.microsoft.com/fwlink/?LinkId=72623", "_blank");
                }    
    //alert('Before viewing the maps in 3D mode, '+
    //  'you must install the Virtual Earth 3D software on your computer.' +
    //  '\nTo install the software, visit ' +
    //  'http://go.microsoft.com/fwlink/?LinkId=72623.');
}      
   
   function msieversion()
   {
      var ua = window.navigator.userAgent
      var msie = ua.indexOf ( "MSIE " )

      if ( msie > 0 )      // If Internet Explorer, return version number
         return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))
      else                 // If another browser, return 0
         return 10

   }

function getHideSliderDivs(Show, SliderNum)
{
      
    var DivElementsSliders = getElementsByClassName(document, "div", "ajax__slider_h_rail");
        if (!Show)
        {   
        if (IEVersion > 6.99 && DivElementsSliders[SliderNum] != undefined)
        {            
        DivElementsSliders[SliderNum].style.visibility = "hidden";     
        DivElementsSliders[SliderNum].parentElement.style.visibility = 'hidden'   
        }
        }
        else
        {  
       if (IEVersion > 6.99 && DivElementsSliders[SliderNum] != undefined)   
        {       
        DivElementsSliders[SliderNum].style.visibility = 'visible';      
        DivElementsSliders[SliderNum].parentElement.style.visibility = 'visible';          
        }       
     }
}

function ClearSearchBox()
{
    var hdfSearch = $get('hdfSearchBox');
    if (hdfSearch.value == 'first')
    {
    var SearchBox = $get('myTextBox');
    SearchBox.value = '';
    SearchBox.style.color = 'black';
    }    
    hdfSearch.value = 'notFirst'; 
    var SearchAlert = $get('SelectAlert');
    SearchAlert.style.display = 'none';    
}
 function getBrowser()
        {
        var Browser = navigator.appName;       
        return Browser;
        }

function makeClaimTabNotActive(claimTabObject)
{
    // determine if it is already active
    var imgsrc = claimTabObject.src;
    if(imgsrc.indexOf("Active")>-1) // is active
    {
     var gifpos = imgsrc.indexOf("Active");
     var imgsrc2 = imgsrc.slice(0,gifpos)+".gif";
     claimTabObject.src = imgsrc2;
    }
}
function makeClaimTabActive(claimTabObject)
{
    // determine if it is already active
    var imgsrc = claimTabObject.src;
    if(imgsrc.indexOf("Active")==-1) // not active
    {
     var gifpos = imgsrc.indexOf(".gif");
     var imgsrc2 = imgsrc.slice(0,gifpos)+"Active.gif";
     claimTabObject.src = imgsrc2;
    }

}
function makeClaimsVisible(claimTab, claimTabDivID)
{    
    var hdfAllClaimTabs = $get('hiddenFld_claimAll');
    var AllTabs = hdfAllClaimTabs.value.split(/\;/);   

    // get the tab header
    
    for (var i=0; i< AllTabs.length; i++)
    {
        var tabDiv = AllTabs[i].split(/\,/);
        var thisTabDiv = tabDiv[1];
        var claimTabID = thisTabDiv+'Div';
        var divClaimTab = $get(claimTabID);
        
        if(claimTab == tabDiv[1])
            // make this tab active
            makeClaimTabActive(divClaimTab);
        else
            // make this tab inactive
            makeClaimTabNotActive(divClaimTab);   
    }
  //  if (claimTabDivID == tabDiv[0])
  //  {    
    //divClaimTab.className = 'divClaimTab_Selected';
    
    
  //  }
  //  else
  //  {
  //  divClaimTab.className = 'divClaimTab';
  //  } 
  //  }
    
    var claimTabContentID = 'div'+claimTab;
    var divClaimContent = $get(claimTabContentID);
    var DivContentElements = getElementsByClassName(document, 'div', 'divClaimTabContent');
    for (var i=0; i < DivContentElements.length;i++)
    {        
        if (DivContentElements[i] == divClaimContent)
        {
        divClaimContent.style.display = 'block';       
        }        
        else
        {
        DivContentElements[i].style.display = 'none';        
        }
        }
     
}

function getTopoTiles(opacity,bVisibility, ServiceName, Layer, LayerType, Folder)
{               
        //$get("DivLoading").style.visibility = "visible";         
        
        var hdfTileServer = $get("hiddenFldTileServer").value;
        var TileServer = hdfTileServer.split(/\,/);
        var TileServerBase = TileServer[0];
        var TileServerNum = TileServer[1];
        var layerUrl = TileServerBase +"/@"+ServiceName+"@/$"+Layer+"$/tiles/%4.png";                
        var TileSourceName = ServiceName+Folder;
        var tileSourceSpec = new VETileSourceSpecification(TileSourceName,layerUrl);     
        tileSourceSpec.NumServers = TileServerNum;
        if (LayerType == 'claim')//Make claims always on top
        {     
        tileSourceSpec.ZIndex = 80;
        }
        else if (LayerType == 'statewide')        
        {
        tileSourceSpec.ZIndex=50;        
        }
        else //For base layers
        {
         tileSourceSpec.ZIndex=20;        
        }
        tileSourceSpec.Opacity = opacity;        
        map.AddTileLayer(tileSourceSpec,bVisibility);  
        //$get("DivLoading").style.visibility = "hidden";      
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function toggleClaimLayerAll(Service, ActiveClaim, chkBoxAllID)
{       
    var sHDFCheckboxesAll = 'hdf'+ActiveClaim+'All';
    var ChkCheckBoxesAll = $get(sHDFCheckboxesAll);    
    var sHDFCheckboxes = 'hdf' +ActiveClaim;
    var chkBoxElements = getElementsByClassName(document,"input", "chBxClaims"+ActiveClaim); 
    var ChkCheckBoxes = $get(sHDFCheckboxes);
    var chkBoxAll = $get(chkBoxAllID);
    if (chkBoxAll.checked == true)
    {
        ChkCheckBoxes.value = ChkCheckBoxesAll.value;             
        for (var i = 0; i<chkBoxElements.length; i++)
        {
        chkBoxElements[i].checked = true;
        }    
    }
    else{ChkCheckBoxes.value = '';
        for (var i = 0; i<chkBoxElements.length; i++)
        {
        chkBoxElements[i].checked = false;
        }    
    }
    toggleWMSLayer(Service, ActiveClaim, 'claim');  
}

function toggleLayer(Service, Folder, LayerID, CheckBox, LayerType)
{   //Get Active Panel from Hidden Field
    var sHDFCheckBoxes = 'hdf'+Folder;
    var ChkCheckBoxes = $get(sHDFCheckBoxes);                   
    var Checked = ChkCheckBoxes.value.split(/\,/);        
    var isInHDF = Checked.find(LayerID);  
    if (isInHDF.length != 1)
      {Checked.push(LayerID);}        
    else
      {Checked.splice(isInHDF[0],1);}    
    ChkCheckBoxes.value = Checked.toString();    
    toggleWMSLayer(Service, Folder, LayerType);    
}

var selectedOtherTabFormer= "divOtherTabStandard";

function setSelectedOtherLayer(OtherLayer)
{   
    var setSelectedTab = 'divOtherTab'+OtherLayer;
    setSelectedTab = $get(setSelectedTab);
    setSelectedTab.className = 'divOtherTabSelected';
    var formerSelectedTab = $get(selectedOtherTabFormer);
    formerSelectedTab.className = 'divOtherTab';    
    selectedOtherTabFormer = setSelectedTab.id;
    if (OtherLayer != 'Standard')
    {
    if (IEVersion >6.99)
    {   
    getHideSliderDivs(true, 2);
    }
    }     
}

function toggleWMSLayer(Service, Folder, LayerType, LayerName)
{ 
    //get the hidden field that has all of the layers for Layer Type (ie. Claims)
    var Opacity= '1';
    if (IEVersion > 6.9)
    {    
    var OpacitySettingTxtBox = 'Slider_'+LayerType;
    Opacity = $get(OpacitySettingTxtBox).value;
    }    
    var hdfLayerType = 'hiddenFld_'+LayerType+'All';
    var hdfLayerTypeAll = $get(hdfLayerType).value;
    var AllLayersInLayerType = hdfLayerTypeAll.split(/\;/);
    
    //get the selected layer of layer type
    var hdfSelected = 'hiddenFld_'+LayerType+'Selected';
    var hdfSelectedLayer = $get(hdfSelected);     
    var sHDFCheckBoxes = 'hdf'+Folder;    
    var ChkCheckBoxes = $get(sHDFCheckBoxes);
    if (ChkCheckBoxes != null)
    {
    activeLayers = ChkCheckBoxes.value.replace(/;/g,',');  
    if (activeLayers != '')
    {
        for (var i=0; i<AllLayersInLayerType.length; i++)
        {
        var GetLayerName = AllLayersInLayerType[i].split(/\,/);
        try{map.DeleteTileLayer(GetLayerName[0]);}
        catch (ex){};
        }
    //hdfSelectedLayer.clear();    
    getTopoTiles(Opacity,true,Service,activeLayers,LayerType, Folder);
    } 
    }
    else
    {
    var hideLayer = Service+Folder;
    map.HideTileLayer(hideLayer);
    }
    hdfSelectedLayer.value = Service +';'+Folder+';'+LayerType+';'+activeLayers;
    }    
   
function toggleNoData()
{
    var chkBoxNoData = $get('cbShowNoData').checked;
    if (chkBoxNoData == false)
    {
    map.HideTileLayer('LandUse_NoDataNoData');
    }
    else
    {
    map.ShowTileLayer('LandUse_NoDataNoData');
    }    
}

function turnOffLayersinLayerType(LayerType)
    {
        var hdfLayerType = 'hiddenFld_'+LayerType+'All';
        var hdfLayerTypeAll = $get(hdfLayerType).value;
        var AllLayersInLayerType = hdfLayerTypeAll.split(/\;/);
        for (var i=0; i<AllLayersInLayerType.length; i++)
        {
        try{map.DeleteTileLayer(AllLayersInLayerType[i]);}
        catch (ex){};
        }    
        getHideSliderDivs(false, 2)
    }

function ChangeStateLayersIndex(Folder, PaneID)
{
    var hdfStateAll = $get("hiddenFld_statewideAll").value;
    var StateAllLayers = hdfStateAll.split(/\;/);
    for (var i=0;i<StateAllLayers.length;i++)
    {
        var DivFolder = StateAllLayers[i]+'Div';
        var ShowDiv = $get(DivFolder);
        if (StateAllLayers[i] == Folder)
        {ShowDiv.style.display = 'block';}
        else{ShowDiv.style.display = 'none';}        
        if (Folder == 'empty')
        {    
        getHideSliderDivs(false, 1)
        }
        else
        {
        getHideSliderDivs(true, 1)
        }
    }
}



function OnSucceededGetLayerLegend(result)
{
    try
    {
    var LegendItem = document.getElementById("Legend"+activeWMSLayer);
    LegendItem.src = result;
    LegendItem.style.visibility = "visible";
    }
    catch (ex)
    {
    }
    //document.getElementById("LegendIMG").src = result;    
}

function OnFailedGetLayerLegend(result)
{
 var test = result;
 //alert(test);
}

function changeOpacity(layerType)
{
   var activeLayerinLayerType = 'hiddenFld_'+layerType+'Selected';
   var activeLayer = $get(activeLayerinLayerType).value;
   var activeLayerProp = activeLayer.split(/\;/);   
   var Service = activeLayerProp[0];
   var Folder = activeLayerProp[1];
   //var LayerType = activeLayerProp[2];
   var LayerName = undefined;
   if (activeLayerProp.length ==4)
   {
   LayerName = activeLayerProp[3];
   }  
   var TileLayerName = Service+Folder;   
   toggleWMSLayer(Service,Folder,layerType,LayerName);
}   


Array.prototype.clear = function () {
    this.length = 0;
};

Array.prototype.find = function(searchStr) {
  var returnArray = false;
  for (i=0; i<this.length; i++) {
    if (typeof(searchStr) == 'function') {
      if (searchStr.test(this[i])) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    } else {
      if (this[i]===searchStr) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    }
  }
  return returnArray;
}





