
//  -----------------------------------------------------------------
//    Notes:	The purpose of this Javascript File is to control the toolbar - input functionality
//
//    Global Variables Delcared:         
//           NONE
//
//    Arguments:   
//    Returns:	N/A
//  		E:\WebSite_Default\ArcIMSFrameWorkSource\JavaScript\ArcIMSFrameWork_ToolBar.js
//   -----------------------------------------------------------------
//    Orginization:	City of Asheville IT Services
//    Original Code: 	Dave Michelson 1/31/2006
//    Last Update:	Dave Michelson 1/31/2006
//                      Dave Michelson 7/3/2006 - added buffer overlay choice

  function ToolOn(myTool){
    myTool.style.backgroundColor='#F0F8FF';
    myTool.style.borderStyle='solid';
    myTool.style.borderWidth='1px';
    myTool.style.borderColor='RoyalBlue';
  }

  function ToolOff(myTool){
    myTool.style.backgroundColor='#FFF8DC';
    myTool.style.borderStyle='solid';
    myTool.style.borderWidth='1px';
    myTool.style.borderColor='#FFF8DC';
  }

  function btnOn(myTool){
    myTool.style.backgroundColor='#F0F8FF';
    myTool.style.borderStyle='Outset';
    myTool.style.borderWidth='1px';
    myTool.style.borderColor='RoyalBlue';
  }

  function btnOff(myTool){
    myTool.style.backgroundColor='#FFF8DC';
    myTool.style.borderStyle='Outset';
    myTool.style.borderWidth='1px';
    myTool.style.borderColor='#FFF8DC';
  }

  function btnClick(myBtn,MyXmlRequestor){
    showSplash('Splash');
    MenuHide('mToolBar');
    MenuHide('mapTOC');
    resetTOC();
    MyXmlRequestor.XML_BUTTONNAME.value = myBtn.id;
    MyXmlRequestor.XML_BUTTONACTION.value = 'GO'
    parent.ResetToolBar(1);
    ClickReset();
    MyXmlRequestor.submit();
  }

  function btnMenulick( myBtn , myMenuName ){
    document.getElementById(myMenuName).innerHTML = myBtn.innerHTML;
  }

  function InputClick(myBtn,MyXmlRequestor,menuName , xOffset , yOffset ){
    MyXmlRequestor.XML_BUTTONNAME.value = myBtn.id;
    DisplayDiv( menuName , xOffset , yOffset  );
  }

  function DoButton(mySetting,MyXmlRequestor){
    showSplash('Splash');
    MenuHide('mToolBar');
    MenuHide('mapTOC');
    resetTOC();
    MyXmlRequestor.XML_BUTTONNAME.value = mySetting;
    MyXmlRequestor.XML_BUTTONACTION.value = 'GO'
    MyXmlRequestor.submit();
  }

  function DoUserSetting(mySetting,MyValue,MyXmlRequestor,MyPreset){
    showSplash('Splash');
    MenuHide('mToolBar');
    MenuHide('mapTOC');
    resetTOC();
    ResetToolBar(1);
    ClickReset();
    ResetToolBar(2);
    if(MyPreset!=undefined){ 
      DoPreset(MyPreset,window.mProcessor.document.frmXMLRequest);
    }
    MyXmlRequestor.XML_USERSETTINGNAME.value = mySetting;
    MyXmlRequestor.XML_USERSETTINGVALUE.value = MyValue;
    MyXmlRequestor.XML_USERSETTINGACTION.value = 'GO'
    MyXmlRequestor.submit();
  }

  function DoPreset(MyXML,MyXmlRequestor){
    MyXmlRequestor.XML_PRESET.value=MyXML;
  }

  function ToolFocus(myTool){
    var x;
    var i=0;
    if (isNav){
      x = document.getElementsByName("spnTool");
    }else{
      x = document.getElementsByTagName("div");
    }
  
    for (i=0;i<x.length;i++)
    {
      if (isNav){
        x[i].style.backgroundColor='';
        x[i].style.borderStyle='solid';
        x[i].style.borderWidth='1px';
        x[i].style.borderColor='#FFF8DC';
      }else{
        if (x[i].name == 'spnTool'){
          x[i].style.backgroundColor='';
          x[i].style.borderStyle='solid';
          x[i].style.borderWidth='1px';
          x[i].style.borderColor='#FFF8DC';
        }
      }
    }

    myTool.style.backgroundColor='#00BFFF';
    myTool.style.borderStyle='inset';
    myTool.style.borderWidth='1px';
    myTool.style.borderColor='RoyalBlue';

    document.getElementById("lblCurrentTool").value = myTool.id;

  }

  function ToolClick(myTool,MyXmlRequestor){

    var x;
    var i=0;
  
    if (isNav){
      x = document.getElementsByName("spnTool");
    }else{
      x = document.getElementsByTagName("div");
    }
    for (i=0;i<x.length;i++)
    {
      if (isNav){
        x[i].style.backgroundColor='';
        x[i].style.borderStyle='solid';
        x[i].style.borderWidth='1px';
        x[i].style.borderColor='#FFF8DC';
      }else{
        if (x[i].name == 'spnTool'){
          x[i].style.backgroundColor='';
          x[i].style.borderStyle='solid';
          x[i].style.borderWidth='1px';
          x[i].style.borderColor='#FFF8DC';
        }
      }
    }
    myTool.style.backgroundColor='#00BFFF';
    myTool.style.borderStyle='inset';
    myTool.style.borderWidth='1px';
    myTool.style.borderColor='RoyalBlue';
    document.getElementById("lblCurrentTool").value = myTool.id;
    MyXmlRequestor.XML_TOOLNAME.value = myTool.id;
    MyXmlRequestor.XML_TOOLACTION.value = 'SET';
    ResetToolBar(2);
    ToolSet(myTool.id);
  }

  function ToolSet(ToolName)
    {
    switch(ToolName.toUpperCase()){
      case 'ZOOM IN':
        mClear();
        mSetShapeType(3);
        break;
      case 'ZOOM OUT':
        mClear();
        mSetShapeType(3);
        break;
      case 'PAN':
        mClear();
        mSetShapeType(5);
        break;
      case 'IDENTIFY':
        mClear();
        mSetShapeType(4);        
        break;
      case 'MEASURE':
        mClear();
        mSetShapeType(2);
        break;
      case 'SELECT BY POINT':
        mClear();
        mSetShapeType(4);
        break;
      case 'SELECT BY LINE':
        mClear();
        mSetShapeType(1);
        break;
      case 'SELECT BY RECTANGLE':
        mClear();
        mSetShapeType(3);
        break;
      case 'SELECT BY POLYGON':
        mClear();
        mSetShapeType(2);
        break;
      case '':
        mClear();
        break;
    }
  }
 
  function ResetToolBar( mType )
  {
    switch( mType )
    {
      case 1: //TOOL
        window.mProcessor.document.frmXMLRequest.XML_TOOLACTION.value = 'SET'
        break;
      case 2: //BUTTON
        window.mProcessor.document.frmXMLRequest.XML_BUTTONNAME.value = ''
        window.mProcessor.document.frmXMLRequest.XML_BUTTONACTION.value = ''
        break;
      case 3: //USER SETTING
        window.mProcessor.document.frmXMLRequest.XML_USERSETTINGACTION.value = 'SET'
        break;
    }
  }

  function MenuOn(myMenu){
    myMenu.style.backgroundColor='RoyalBlue';
    myMenu.style.borderStyle='solid';
    myMenu.style.borderWidth='2px';
    myMenu.style.borderColor='#F0F8FF';
    myMenu.style.color='white';
    myMenu.style.cursor='default';
  }

  function MenuOff(myMenu){
    myMenu.style.backgroundColor='#FFF8DC';
    myMenu.style.borderStyle='solid';
    myMenu.style.borderWidth='2px';
    myMenu.style.borderColor='#FFF8DC';
    myMenu.style.color='black';
    myMenu.style.cursor='default';
  }

  function MenuDropOff(myMenu){
    myMenu.style.backgroundColor='#FFFFFF';
    myMenu.style.borderStyle='solid';
    myMenu.style.borderWidth='2px';
    myMenu.style.borderColor='#FFFFFF';
    myMenu.style.color='black';
    myMenu.style.cursor='default';
  }

  function MenuDropToolClick(myMenu){
    document.getElementById("lblCurrentTool").value = myMenu.id;
    document.getElementById('SelectionSelectTool').innerHTML = document.getElementById(myMenu.id+' Btn').innerHTML;
  
    ToolClick(document.getElementById('SelectionSelectTool'),window.mProcessor.document.frmXMLRequest);
    document.getElementById("lblCurrentTool").value = document.getElementById(myMenu.id+' Btn').id;
  }

  function MenuDropBtnClick(myMenu){
    //alert(myMenu.id);
  }

  function MenuClick(myMenu){
    //alert(myMenu.id);
  }

  function MenuShow(myMenu){
    document.getElementById(myMenu).style.visibility="visible";
    if (isNav){
      document.getElementById(myMenu).style.top='64px';
    }else{
      document.getElementById(myMenu).style.top='72px';
    }
  }

  function MenuHide(myMenu){
    document.getElementById(myMenu).style.visibility="hidden";
  }

  //function Resets toc to blank for refresh.  Should limit user muli-clicks 
  function resetTOC(){
     resetElement('mapTOC','DIV');
  }

  function ToolMenuClick(myTool,MyXmlRequestor,myMenuName){
    document.getElementById(myMenuName).innerHTML = myTool.innerHTML;    
    ToolFocus(document.getElementById(myMenuName));

    document.getElementById("lblCurrentTool").value = myTool.id;
    MyXmlRequestor.XML_TOOLNAME.value = myTool.id;
    MyXmlRequestor.XML_TOOLACTION.value = 'SET'
    ResetToolBar(2);
  }


  //function to get current tool
  function getCurrentTool(MyXmlRequestor){
   if (MyXmlRequestor == null){
   }else{
    var myTool = MyXmlRequestor.XML_TOOLNAME.value;
   }    
    return myTool;
  }
    
  //function will zero out element
  function resetElement(myMeasureElement,myMeasureElementType){
    var measureOBJ = document.getElementById(myMeasureElement);

    switch(myMeasureElementType){
      case 'DIV':
        measureOBJ.innerHTML = '';
        break;
      case 'SPAN':
        measureOBJ.innerHTML = 0;
        break;
      case 'INPUT':
        measureOBJ.value = 0;
        break;
      case '':
        break;
    }   
  }

  function newValue( mValue )
  {
    var ClickVal;
    var QueryText;
    ClickVal = mValue;
    ClickVal = myTrim(ClickVal);
    ClickVal = myTrim(ClickVal);
    QueryText = document.getElementById('myQuery');
    QueryText.value = QueryText.value + ' ' + ClickVal ;
  }

  function newValueFLDOPT( mObj )
  {
    var IDX;
    var ClickVal;
    var QueryText;
    IDX = mObj.selectedIndex;
    ClickVal = mObj.options[IDX].text;
    QueryText = document.getElementById( 'myQuery' );
    QueryText.value = QueryText.value + ' ' + ClickVal ;
  }

  function newValueCBO( mObj , mName )
  {
    var IDX;
    var ClickVal;
    var QueryText;
    IDX = mObj.selectedIndex;
    ClickVal = mObj.options[IDX].text;
  }

  function GetBufferValue( mTargetOBJ , mOverlayOBJ , mDistOBJ , mUnitsOBJ ){
    var mTargetLayer;
    var mOverlayLayer;
    var mDistance;
    var mUnits;
    var mBuffStr;

    var IDX = mTargetOBJ.selectedIndex;
    mTargetLayer = mTargetOBJ.options[IDX].value;
    var IDX = mOverlayOBJ.selectedIndex;
    mOverlayLayer = mOverlayOBJ.options[IDX].value;
    mDistance = mDistOBJ.value;
    mUnits = mUnitsOBJ.value;
    mBuffStr = '[OVERLAYLAYER]='+mOverlayLayer+';[TARGETLAYER]='+mTargetLayer+';[DISTANCE]='+mDistance+';[UNITS]='+mUnits+';';
    return mBuffStr;

  }

  function getPrintValue( mOrientationOBJ , mPrintSizeOBJ , mQualityOBJ , mMapScale , mTitle , mMapSource , mDataSource , mPrintDate , mDisclaimer ){
    var mOrientationStr;
    var mPrintSizeStr;
    var mPrintStr;
    var mQuality;

    var IDX = mOrientationOBJ.selectedIndex;
    mOrientationStr = mOrientationOBJ.options[IDX].value;  
    var IDX = mPrintSizeOBJ.selectedIndex;
    mPrintSizeStr = mPrintSizeOBJ.options[IDX].value;  
    var IDX = mQualityOBJ.selectedIndex;
    mQuality = mQualityOBJ.options[IDX].value;  
    mPrintStr = '[ORIENTATION]='+mOrientationStr+';[PRINTSIZE]='+mPrintSizeStr+';[MAPSCALE]='+mMapScale+';[MAPTITLE]='+mTitle+';[MAPSOURCE]='+mMapSource+';[DATASOURCE]='+mDataSource+';[PRINTDATE]='+mPrintDate+';[DISCLAIMER]='+mDisclaimer+';[QUALITY]='+mQuality+';';
    return mPrintStr;
  }

  function getMapServiceValue( mMapServiceOBJ ){

    var mMapServiceStr;

    var IDX = mMapServiceOBJ.selectedIndex;
    mMapServiceStr = mMapServiceOBJ.options[IDX].value;  
    mMapServiceStr = mMapServiceStr;
    
    return mMapServiceStr;
  }

  function getGeoCodeValue( mAddress , mZipCode , mCrossStreet ){
    var mGeoCodeStr;
    mGeoCodeStr = '[ADDRESS]='+mAddress+';[ZIPCODE]='+mZipCode+';[CROSSSTREET]='+mCrossStreet+';';
    return mGeoCodeStr;
  }

  function  ClearValue()
  {
    var QueryText;
    QueryText = document.getElementById('myQuery');
    QueryText.value = '' ;
  }

  //function to set up information for change scale  of the map
  function changeScale( e , mValue )
  {
    var keynum;
    var keychar;
    var numcheck;

    if(window.event){
      keynum = e.keyCode;
    }else if(e.which){
      keynum = e.which;
    }

    if (keynum == 13){
      mValue = mValue.replace('1:','');
      DoUserSetting( 'Zoom to Scale' , mValue , window.mProcessor.document.frmXMLRequest );
    }
  }

  //function to retrieve map x y location of cursor
  function cursorPos(e)
  {
    var mouseX;
    var mouseY;
  
    if (isNav) {
      mouseX = e.layerX;
      mouseY = e.layerY;
    }else{
      mouseX = event.clientX-vSpc;
      mouseY = event.clientY-hSpc;
    }
    var MapDim = getMapXY(mouseX,mouseY);
    document.getElementById("posX").innerHTML = Math.round(MapDim.X*100)/100;
    document.getElementById("posY").innerHTML = Math.round(MapDim.Y*100)/100;
  }



  function myTrim(string) {
    var temp = "";
    string = '' + string;
    splitstring = string.split(" ");
    for(i = 0; i < splitstring.length; i++)
    temp += splitstring[i];
    return temp;
  }
