//
// EasyMap UserInterface Library
// Copyright (c) Yuriy Honek, 2003
//

//   var AutorunString = ''

   var imgpath = '/easymap/images/'
   var Buttons = new Array();
   var ButtonImages = new Array();
   var ButtonCommands = new Array();
   var ButtonHints = new Array();

   var btn_collapsed = new Image(9, 9);
   var btn_expanded = new Image(9, 9);
   btn_collapsed.src = '/easymap/images/collapsed.gif';
   btn_expanded.src = '/easymap/images/expanded.gif';



   Buttons[0] = 'full_extent'
   Buttons[1] = 'zoom_in'
   Buttons[2] = 'zoom_out'
   Buttons[3] = 'refresh'
   Buttons[4] = 'clear'
   Buttons[5] = 'print'
   Buttons[6] = 'up'
   Buttons[7] = 'left'
   Buttons[8] = 'right'
   Buttons[9] = 'down'
   Buttons[10] = 'size1'
   Buttons[11] = 'size2'
   Buttons[12] = 'size3'
   Buttons[13] = 'mail'
   Buttons[14] = 'scale1'
   Buttons[15] = 'scale2'
   Buttons[16] = 'scale3'
   Buttons[17] = 'scale4'




   ButtonCommands[0] = 'mapFullExtent()'
   ButtonCommands[1] = 'mapZoomIn()'
   ButtonCommands[2] = 'mapZoomOut()'
   ButtonCommands[3] = 'RefreshHideLayers();mapGetMapImage()'
   ButtonCommands[4] = 'mapClear()'
   ButtonCommands[5] = 'mapPrintMap()'
   ButtonCommands[6] = 'mapGoNorth()'
   ButtonCommands[7] = 'mapGoWest()'
   ButtonCommands[8] = 'mapGoEast()'
   ButtonCommands[9] = 'mapGoSouth()'
   ButtonCommands[10] = 'mapSetMapSize(250, 200)'
   ButtonCommands[11] = 'mapSetMapSize(400, 300)'
   ButtonCommands[12] = 'mapSetMapSize(550, 500)'
   ButtonCommands[13] = ''
   ButtonCommands[14] = 'mapSetZoomScale(7000)'
   ButtonCommands[15] = 'mapSetZoomScale(4000)'
   ButtonCommands[16] = 'mapSetZoomScale(1500)'
   ButtonCommands[17] = 'mapSetZoomScale(500)'


   ButtonHints[0] = 'Показати всю карту'
   ButtonHints[1] = 'Збільшити масштаб'
   ButtonHints[2] = 'Зменшити масштаб'
   ButtonHints[3] = 'Поновити карту'
   ButtonHints[4] = 'Видалити маршрут'
   ButtonHints[5] = 'Видрукувати карту'
   ButtonHints[6] = 'Перемістити на північ'
   ButtonHints[7] = 'Перемістити на захід'
   ButtonHints[8] = 'Перемістити на схід'
   ButtonHints[9] = 'Перемістити на південь'
   ButtonHints[10] = 'Встановити розмір карти: 250x200'
   ButtonHints[11] = 'Встановити розмір карти: 400x300'
   ButtonHints[12] = 'Встановити розмір карти: 550x500'
   ButtonHints[13] = 'Відправте цю сторінку друзям'
   ButtonHints[14] = 'Встановити масштаб 1'
   ButtonHints[15] = 'Встановити масштаб 2'
   ButtonHints[16] = 'Встановити масштаб 3'
   ButtonHints[17] = 'Встановити масштаб 4'

   for (i=0;i<Buttons.length;i++){
     ButtonImages[Buttons[i]] = new Image();
     ButtonImages[Buttons[i]].src = imgpath + Buttons[i] + '.gif'
     ButtonImages[Buttons[i]+'_h'] = new Image(17, 17);
     ButtonImages[Buttons[i]+'_h'].src = imgpath + Buttons[i] + '_h' + '.gif'
   }

   function Button_OnMouseOver(){
     this.src = ButtonImages[this.name + '_h'].src
   }

   function Button_OnMouseOut(){
     this.src = ButtonImages[this.name].src
   }

   function InitButtons(){
     for (i=0;i<Buttons.length;i++){
       document.images[Buttons[i]].src = imgpath + Buttons[i] + '.gif'
       document.images[Buttons[i]].onmouseover = Button_OnMouseOver
       document.images[Buttons[i]].onmouseout = Button_OnMouseOut
       document.images[Buttons[i]].onclick = new Function(ButtonCommands[i])
       document.images[Buttons[i]].alt = ButtonHints[i]
     }
   }


// Load images
  ImagesArray = new Array();

  ImagesArray['tol_zoomin'] = new Image(21, 21)
  ImagesArray['tol_zoomout'] = new Image(21, 21)
  ImagesArray['tol_move'] = new Image(21, 21)
  ImagesArray['tol_selreg'] = new Image(21, 21)
  ImagesArray['tol_measure'] = new Image(21, 21)
  ImagesArray['tol_identify'] = new Image(21, 21)
  ImagesArray['tol_addobj'] = new Image(21, 21)
  ImagesArray['tol_delobj'] = new Image(21, 21)
  ImagesArray['tol_edtobj'] = new Image(21, 21)

  ImagesArray['tol_zoomin_h'] = new Image(21, 21)
  ImagesArray['tol_zoomout_h'] = new Image(21, 21)
  ImagesArray['tol_move_h'] = new Image(21, 21)
  ImagesArray['tol_selreg_h'] = new Image(21, 21)
  ImagesArray['tol_measure_h'] = new Image(21, 21)
  ImagesArray['tol_identify_h'] = new Image(21, 21)
  ImagesArray['tol_addobj_h'] = new Image(21, 21)
  ImagesArray['tol_delobj_h'] = new Image(21, 21)
  ImagesArray['tol_edtobj_h'] = new Image(21, 21)

  ImagesArray['tol_zoomin'].src = '/easymap/images/zoomin.gif'
  ImagesArray['tol_zoomout'].src = '/easymap/images/zoomout.gif'
  ImagesArray['tol_move'].src = '/easymap/images/center.gif'
  ImagesArray['tol_selreg'].src = '/easymap/images/selreg.gif'
  ImagesArray['tol_measure'].src = '/easymap/images/measure.gif'
  ImagesArray['tol_identify'].src = '/easymap/images/identify.gif'
  ImagesArray['tol_addobj'].src = '/easymap/images/addobj.gif'
  ImagesArray['tol_delobj'].src = '/easymap/images/delobj.gif'
  ImagesArray['tol_edtobj'].src = '/easymap/images/edtobj.gif'

  ImagesArray['tol_zoomin_h'].src = '/easymap/images/zoomin_h.gif'
  ImagesArray['tol_zoomout_h'].src = '/easymap/images/zoomout_h.gif'
  ImagesArray['tol_move_h'].src = '/easymap/images/center_h.gif'
  ImagesArray['tol_selreg_h'].src = '/easymap/images/selreg_h.gif'
  ImagesArray['tol_measure_h'].src = '/easymap/images/measure_h.gif'
  ImagesArray['tol_identify_h'].src = '/easymap/images/identify_h.gif'
  ImagesArray['tol_addobj_h'].src = '/easymap/images/addobj_h.gif'
  ImagesArray['tol_delobj_h'].src = '/easymap/images/delobj_h.gif'
  ImagesArray['tol_edtobj_h'].src = '/easymap/images/edtobj_h.gif'


  function ToolMouseOver(aImage){
    aImage.src = ImagesArray[aImage.name + '_h'].src
  }

  function ToolMouseOut(aImage){
    if (aImage.name != ('tol_'+mapTool)) aImage.src = ImagesArray[aImage.name].src
  }

  function SelectTool(toolnum){
    document.all['inpTools'+toolnum].checked = true
    mapSetTool(toolnum)
    document.images['tol_zoomin'].src = '/easymap/images/zoomin.gif'
    document.images['tol_zoomout'].src = '/easymap/images/zoomout.gif'
    document.images['tol_move'].src = '/easymap/images/center.gif'
    document.images['tol_selreg'].src = '/easymap/images/selreg.gif'
    document.images['tol_measure'].src = '/easymap/images/measure.gif'
    document.images['tol_identify'].src = '/easymap/images/identify.gif'
    document.images['tol_addobj'].src = '/easymap/images/addobj.gif'
    document.images['tol_delobj'].src = '/easymap/images/delobj.gif'
    document.images['tol_edtobj'].src = '/easymap/images/edtobj.gif'

    switch(toolnum){
      case "zoomin" :
        document.images['tol_zoomin'].src = '/easymap/images/zoomin_h.gif'
        break;
      case "zoomout" :
        document.images['tol_zoomout'].src = '/easymap/images/zoomout_h.gif'
        break;
      case "move" :
        document.images['tol_move'].src = '/easymap/images/center_h.gif'
        break;
      case "selreg" :
        document.images['tol_selreg'].src = '/easymap/images/selreg_h.gif'
        break;
      case "measure" :
        document.images['tol_measure'].src = '/easymap/images/measure_h.gif'
        break;
      case "identify" :
        document.images['tol_identify'].src = '/easymap/images/identify_h.gif'
        break;
      case "addobj" :
        document.images['tol_addobj'].src = '/easymap/images/addobj_h.gif'
        break;
      case "delobj" :
        document.images['tol_delobj'].src = '/easymap/images/delobj_h.gif'
        break;
      case "edtobj" :
        document.images['tol_edtobj'].src = '/easymap/images/edtobj_h.gif'
        break;

      default :
        break;
    }
  }

  function FindAddress(){
    if (document.all['sbldno'].value != '')
      surl = mapServerURL + "/searchdb?table=lviv_5000_buildings&query=street_nam like '%%" + document.all['sstreet'].value + "%%' and number like '"+document.all['sbldno'].value+"'"
    else
      surl = mapServerURL + "/searchdb?table=lviv_5000_street&query=street_nam like '%%" + document.all['sstreet'].value + "%%'"

    pleft = screen.availWidth - 340
    ptop = screen.availHeight - 450
    wndFind = window.open(surl, 'AddrSearch', 'top='+ptop+', left='+pleft+', height=400,width=330,status=no,toolbar=no,menubar=no,location=no, resizable=no, scrollbars=yes')
  }


  function FindPath(){
    if ((document.all['sstreet1'].value != '') && (document.all['sstreet2'].value != ''))
    {
      if (document.all['sbldno1'].value != '')
        surl = mapServerURL + "/searchpath?table1=lviv_5000_buildings&query1=street_nam like '%%" + document.all['sstreet1'].value + "%%' and number like '"+document.all['sbldno1'].value+"'"
      else
        surl = mapServerURL + "/searchpath?table1=lviv_5000_street&query1=street_nam like '%%" + document.all['sstreet1'].value + "%%'"
      if (document.all['sbldno2'].value != '')
        surl = surl + "&table2=lviv_5000_buildings&query2=street_nam like '%%" + document.all['sstreet2'].value + "%%' and number like '"+document.all['sbldno2'].value+"'"
      else
        surl = surl + "&table2=lviv_5000_street&query2=street_nam like '%%" + document.all['sstreet2'].value + "%%'"
      pleft = screen.availWidth - 340
      ptop = screen.availHeight - 450
      wndFind = window.open(surl, 'PathSearch', 'top='+ptop+', left='+pleft+', height=400,width=330,status=no,toolbar=no,menubar=no,location=no, resizable=no, scrollbars=yes')
    }
  }


  function RefreshHideLayers(){
    k = document.legend.elements.length
    s = ''
    for (i=0; i<k; i++){
      if (! document.legend.elements.item(i).checked)
        s = s + document.legend.elements.item(i).name + ';'
    }
    mapSetHideLayers(s)
    if (document.all['autorefresh'])
      if (document.all['autorefresh'].checked)
        mapGetMapImage()
  }

  function LegendElement_OnClick(Sender){
    if ((Sender.name=='lviv_5000_buildings') && (!Sender.checked))
      document.legend.lviv_5000_build_num.checked = false
    RefreshHideLayers()
  }
  
  // LegendGroup_OnMouseOver

  function LG_Over(aObj){
    aObj.className = 'legcaptionhover'
  }

  // LegendGroup_OnMouseOut

  function LG_Out(aObj){
    aObj.className = 'legcaption'
  }

  function ToolsInit(){
    k = document.tools.elements.length
    for (i=0; i<k; i++){
      if (document.tools.elements.item(i).checked) {
        SelectTool(document.tools.elements.item(i).value)
        break
      }
    }
  }

  function PageInit(){
    InitButtons()
    RefreshHideLayers()
    k = document.legend.elements.length
    for (i=0; i<k; i++)
      document.legend.elements.item(i).onclick = new Function("LegendElement_OnClick(this)")
    DisplayLayers('none')

    mapSetNavigatorData('lviv_10000_nasel_punkt;novirayony;lviv_10000_okr_dorohy', 105, 90)
  }



  function DivDisplay(AName){
    d = document.all['leggroup_'+AName]
    if (d!=null){
      if (d.style.display == 'none'){
        d.style.display = 'block'
        document.all['btn_'+AName].src = btn_expanded.src
      }
      else{
        d.style.display = 'none'
        document.all['btn_'+AName].src = btn_collapsed.src
      }
    }
  }

  function DisplayLayers(ADisplay){
    for (i=0; i < document.all.length; i++)
      if (document.all[i].className == 'leggroup')
        document.all[i].style.display = ADisplay
      else
        if (document.all[i].className == 'legbtn'){
          if (ADisplay == 'none')
            document.all[i].src = btn_collapsed.src
          else if (ADisplay == 'block')
            document.all[i].src = btn_expanded.src
        }
  }

    function InsertLegendGroupHeader(AName, ATitle){
      document.writeln('<div class="legcaption" onclick="DivDisplay(\''+AName+'\')" onmouseover="LG_Over(this)" onmouseout="LG_Out(this)"><img class="legbtn" id="btn_'+AName+'" src="/easymap/images/collapsed.gif" width="9" height="9"> '+ATitle+'</div>')
      document.writeln('<div class="leggroup" id="leggroup_'+AName+'">')
    }

    function InsertLegendLayer(AIconFile, ALayers, AChecked, ATableLink, ATitle){
      if (AIconFile != ''){
        document.write('<img src="/easymap/images/')
        document.write(AIconFile)
        document.writeln('" align="absmiddle">')
      }
      document.write('<input type="CHECKBOX" name="')
      document.write(ALayers)
      if (AChecked)
        document.write('" checked="checked')
      document.write('">')
      if (ATableLink != '')
        document.write('<a href="javascript:mapGetTable(\''+ATableLink+'\')">')
      document.write(ATitle)
      if (ATableLink != '')
        document.write('</a>')
      document.writeln('<br>')
    }

    function InsertLegendSQLLayer(AIconFile, ALayers, AChecked, ATableLink, ATitle){
      if (AIconFile != ''){
        document.write('<img src="/easymap/images/')
        document.write(AIconFile)
        document.writeln('" align="absmiddle">')
      }
      document.write('<input type="CHECKBOX" name="')
      document.write(ALayers)
      if (AChecked)
        document.write('" checked="checked')
      document.write('">')
      if (ATableLink != '')
        document.write('<a href="javascript:mapGetSQLTable(\''+ATableLink+'\')">')
      document.write(ATitle)
      if (ATableLink != '')
        document.write('</a>')
      document.writeln('<br>')
    }

    function InsertLegendAbonLayer(AIconFile, ALayers, AChecked, ATableLink, ATitle){
      if (AIconFile != ''){
        document.write('<img src="/easymap/images/')
        document.write(AIconFile)
        document.writeln('" align="absmiddle">')
      }
      document.write('<input type="CHECKBOX" name="')
      document.write(ALayers)
      if (AChecked)
        document.write('" checked="checked')
      document.write('">')
      if (ATableLink != '')
        document.write('<a href="javascript:mapGetAbonTable(\''+ATableLink+'\')">')
      document.write(ATitle)
      if (ATableLink != '')
        document.write('</a>')
      document.writeln('<br>')
    }

    function Autorun(){
      s = location.search
      if (s.length > 1){
        s = s.substr(1)
        re = /%20/g
        s = s.replace(re, ' ')
//        eval(s)
        AutorunString = s
      }
    }

  function Login(){
    HideEditTools()
    pleft = (screen.availWidth / 2) - 150;
    ptop = (screen.availHeight / 2) - 100;
    wnd = window.open(mapServerURL + '/loginwindow?uid=' + mapUserID + '&profile=' + mapProfile, 'wndLogin',
      'left='+pleft+',top='+ptop+',status=yes,channelmode=no,toolbar=no,location=no,directories=no,menubar=no,resizable=no,width=300,height=200');
    wnd.focus()
  }

  function ShowEditTools(AUserName){
    if (document.all['username']){
      document.all['username'].style.display = 'block';
      document.all['username'].innerHTML = '<b>Користувач: ' + AUserName + '</b>';
    }
    if (document.all['edittools']){
      document.all['edittools'].style.display = 'block';
      if (document.all['editlayer']){
        while (document.all['editlayer'].options.length > 0)
          document.all['editlayer'].options.remove(0)
      }
    }
  }

  function HideEditTools(){
    if (document.all['username']){
      document.all['username'].style.display = 'none';
      document.all['username'].innerHTML = '';
    }
    if (document.all['edittools']){
      document.all['edittools'].style.display = 'none';
    }
  }

  function AddEditLayer(AName, AValue){
    if (document.all['editlayer']){
      var oOption = document.createElement("OPTION");
      oOption.text=AName;
      oOption.value=AValue;
      document.all['editlayer'].add(oOption);
    }
  }


