Your IP : 216.73.216.240


Current Path : /home/juvelize/www/administrator/components/com_zhgooglemap/views/mappath/tmpl/
Upload File :
Current File : /home/juvelize/www/administrator/components/com_zhgooglemap/views/mappath/tmpl/edit.php

<?php
/*------------------------------------------------------------------------
# com_zhgooglemap - Zh GoogleMap
# ------------------------------------------------------------------------
# author:    Dmitry Zhuk
# copyright: Copyright (C) 2011 zhuk.cc. All Rights Reserved.
# license:   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
# website:   http://zhuk.cc
# Technical Support Forum: http://forum.zhuk.cc/
-------------------------------------------------------------------------*/
// No direct access
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.formvalidation');

$document = JFactory::getDocument();

// Map Types
$maptypes = $this->mapTypeList;

$urlProtocol = "http";
if ($this->httpsprotocol != "")
{
    if ((int)$this->httpsprotocol == 0)
    {
        $urlProtocol = 'https';
    }
}

if ($this->map_height != "")
{
    if ((int)$this->map_height == 0)
    {
        $map_height = "420px";
        $map_height_wrap = "450px";
    }
    else
    {
        $map_height = ((int)$this->map_height - 30) . "px";
        $map_height_wrap = (int)$this->map_height . "px";
    }
}
else 
{
    $map_height = "420px";
    $map_height_wrap = "450px";
}


$mainScriptBegin = $urlProtocol.'://maps.googleapis.com/maps/api/js?';

$mainScriptMiddle = "";

$mainScriptEnd = "";

if ($this->mapapiversion != "")
{
    if ($mainScriptMiddle == "")
    {
        $mainScriptMiddle = 'v='.$this->mapapiversion;
    }
    else
    {
        $mainScriptMiddle .= '&v='.$this->mapapiversion;
    }

}

if ($this->mapapikey4map != "")
{
    if ($mainScriptMiddle == "")
    {
        $mainScriptMiddle = 'key='.$this->mapapikey4map;
    }
    else
    {
        $mainScriptMiddle .= '&key='.$this->mapapikey4map;
    }        

}

$mainScriptBegin .= $mainScriptMiddle;


$mainScriptLibrary ="";

if (1==1)
{
    if ($mainScriptLibrary == "")
    {
        $mainScriptLibrary .= '&libraries=drawing';
    }
    else
    {
        $mainScriptLibrary .= ',drawing';
    }
}

$mainScriptBegin .= $mainScriptLibrary;

$mainScript = $mainScriptBegin . $mainScriptEnd;

$document->addScript($mainScript);

?>
<form action="<?php echo JRoute::_('index.php?option=com_zhgooglemap&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="adminForm" class="form-validate">

<div class="span12 form-horizontal">

<div class="tabbable">
    <ul class="nav nav-pills">
        <li class="active"><a href="#tab0" data-toggle="tab"><?php echo JText::_( 'COM_ZHGOOGLEMAP_MAPPATH_PATH' ); ?></a></li>
        <li><a href="#tab1" data-toggle="tab"><?php echo JText::_( 'COM_ZHGOOGLEMAP_MAPPATH_DETAIL' ); ?></a></li>
        <li><a href="#tab2" data-toggle="tab"><?php echo JText::_('COM_ZHGOOGLEMAP_MAPPATH_PATHADVANCED'); ?></a></li>
        <li><a href="#tab3" data-toggle="tab"><?php echo JText::_('COM_ZHGOOGLEMAP_MAPPATH_DETAIL_KMLLAYER_TITLE'); ?></a></li>
        <li><a href="#tab4" data-toggle="tab"><?php echo JText::_('COM_ZHGOOGLEMAP_MAPPATH_DETAIL_ELEVATION_LABEL'); ?></a></li>
        <li><a href="#tab5" data-toggle="tab"><?php echo JText::_('COM_ZHGOOGLEMAP_MAPPATH_DETAIL_IMGGROUND_TITLE'); ?></a></li>
        <?php
        $fieldSets = $this->form->getFieldsets('params');
        foreach ($fieldSets as $name => $fieldSet) :
        ?>
        <li><a href="#params-<?php echo $name;?>" data-toggle="tab"><?php echo JText::_($fieldSet->label);?></a></li>
        <?php endforeach; ?>
    </ul>
</div>
<div class="tab-content">


        <div class="tab-pane active" id="tab0">
            <div>
                <fieldset class="adminform">
                
                    <?php foreach($this->form->getFieldset('pathmain') as $field): 
                        
                        if ($field->id == 'jform_mapid')
                        {
                            ?>
                            <div class="control-label">
                            <?php 
                                echo $field->label;
                            ?>
                            </div>
                            <div class="controls">
                            <?php 
                                array_unshift($this->mapList, JHTML::_('select.option', '', JText::_( 'COM_ZHGOOGLEMAP_MAPMARKER_FILTER_MAP'), 'value', 'text')); 
                                echo JHTML::_( 'select.genericlist', $this->mapList, 'jform[mapid]',  'class="inputbox span5 required" size="1"', 'value', 'text', (int)$this->item->mapid, 'jform_mapid');
                                //echo $field->label;
                                //echo $field->input;
                            ?>
                            </div>
                            <?php 
                        }
                        else
                        {?>
                        <div class="control-group">
                        <?php 
                            ?>
                            <div class="control-label">
                            <?php 
                                echo $field->label;
                            ?>
                            </div>
                            <div class="controls">
                            <?php 
                                echo $field->input;
                            ?>
                            </div>
                            <?php 
                        ?>
                        </div>

                        <?php }?>

                    <?php endforeach; ?>
                
                </fieldset>
            
                <div>
                        <div id="mapDivWrapper" style="margin:0;padding:0;width:100%;height:<?php echo $map_height_wrap ?>">

                        <div id="GMapsID" style="margin:0;padding:0;width:100%;height:<?php echo $map_height ?>">

                    
                        <?php 

                        $document->addStyleSheet(JURI::root() .'administrator/components/com_zhgooglemap/assets/css/admin.css');

                        $mapDefLat = $this->mapDefLat;
                        $mapDefLng = $this->mapDefLng;


                        $mapMapTypeGoogle = $this->mapMapTypeGoogle;
                        $mapMapTypeOSM = $this->mapMapTypeOSM;
                        $mapMapTypeCustom = $this->mapMapTypeCustom;


                        //Script begin
                        $scripttext = '<script type="text/javascript" >//<![CDATA[' ."\n";

                            $scripttext .= 'var initialLocation;' ."\n";
                            $scripttext .= 'var spblocation;' ."\n";
                            $scripttext .= 'var browserSupportFlag =  new Boolean();' ."\n";
                            $scripttext .= 'var map;' ."\n";
                            $scripttext .= 'var infowindow;' ."\n";
                            $scripttext .= 'var marker;' ."\n";

                            $scripttext .= 'function initialize() {' ."\n";

                            $scripttext .= 'infowindow = new google.maps.InfoWindow();' ."\n";
                            
                            if ($mapDefLat != "" && $mapDefLng !="")
                            {
                                $scripttext .= 'spblocation = new google.maps.LatLng('.$mapDefLat.', '.$mapDefLng.');' ."\n";
                            }
                            else
                            {
                                $scripttext .= 'spblocation = new google.maps.LatLng(59.9388, 30.3158);' ."\n";
                            }

                            $scripttext .= 'var myOptions = {' ."\n";
                            $scripttext .= '    zoom: 14,' ."\n";
                            $scripttext .= '    mapTypeId: google.maps.MapTypeId.ROADMAP,' ."\n";
                            $scripttext .= '      panControl: true,' ."\n";
                            $scripttext .= '      scrollwheel: false,' ."\n";
                            $scripttext .= '      disableDoubleClickZoom: true,' ."\n";
                            $scripttext .= '      zoomControl: true,' ."\n";
                            $scripttext .= '      zoomControlOptions: {' ."\n";
                            $scripttext .= '            position: google.maps.ControlPosition.LEFT_TOP,' ."\n";
                            $scripttext .= '            style: google.maps.ZoomControlStyle.DEFAULT' ."\n";
                            $scripttext .= '          },' ."\n";
                            $scripttext .= '      mapTypeControl: true,' ."\n";
                            $scripttext .= '      mapTypeControlOptions: {' ."\n";
                            $scripttext .= '      mapTypeIds: [' ."\n";

                            $curr_maptype_list = '';
                            
                            if ((int)$mapMapTypeGoogle != 0
                              || ((int)$mapMapTypeCustom == 0
                                 && (int)$mapMapTypeOSM == 0))
                            {
                                $curr_maptype_list .= '      google.maps.MapTypeId.ROADMAP,' ."\n";
                                $curr_maptype_list .= '      google.maps.MapTypeId.TERRAIN,' ."\n";
                                $curr_maptype_list .= '      google.maps.MapTypeId.SATELLITE,' ."\n";
                                $curr_maptype_list .= '      google.maps.MapTypeId.HYBRID' ."\n";
                            }

                            if ((int)$mapMapTypeOSM != 0)
                            {
                                if ($curr_maptype_list == '')
                                {
                                    $curr_maptype_list .= '     \'osm\'' ."\n";
                                }
                                else
                                {
                                    $curr_maptype_list .= '     ,\'osm\'' ."\n";
                                }
                            }
                            
                            if ((int)$mapMapTypeCustom != 0)
                            {
                                // Custom Map Type - part 0 (add to list) - begin
                                foreach ($maptypes as $key => $currentmaptype) 
                                {
                                    if ($currentmaptype->gettileurl != "")
                                    {
                                        if ($curr_maptype_list == '')
                                        {
                                            $curr_maptype_list .= '      \'customMapType'.$currentmaptype->id.'\'' ."\n";
                                        }
                                        else
                                        {
                                            $curr_maptype_list .= '      ,\'customMapType'.$currentmaptype->id.'\'' ."\n";
                                        }
                                    }
                                }
                                // Custom Map Type - part 0 (add to list) - end
                            }

                            $scripttext .= $curr_maptype_list;

                            $scripttext .= '    ]' ."\n";
                            $scripttext .= '      },' ."\n";
                            $scripttext .= '      scaleControl: true,' ."\n";
                            $scripttext .= '      streetViewControl: true,' ."\n";
                            $scripttext .= '      rotateControl: true,' ."\n";
                            $scripttext .= '      overviewMapControl: true' ."\n";

                            $scripttext .= '  };' ."\n";
                                
                            if ((int)$mapMapTypeOSM != 0)
                            {
                                $scripttext .= ' var openStreetType = new google.maps.ImageMapType({' ."\n";
                                $scripttext .= '  getTileUrl: function(ll, z) {' ."\n";
                                $scripttext .= '    var X = ll.x % (1 << z);  // wrap' ."\n";
                                $scripttext .= '    return "'.$urlProtocol.'://tile.openstreetmap.org/" + z + "/" + X + "/" + ll.y + ".png";' ."\n";
                                $scripttext .= '  },' ."\n";
                                $scripttext .= '  tileSize: new google.maps.Size(256, 256),' ."\n";
                                $scripttext .= '  isPng: true,' ."\n";
                                $scripttext .= '  maxZoom: 18,' ."\n";
                                $scripttext .= '  name: "OSM",' ."\n";
                                $scripttext .= '  alt: "'.JText::_('COM_ZHGOOGLEMAP_MAP_OPENSTREETLAYER').'"' ."\n";
                                $scripttext .= '}); ' ."\n";
                            }

                            if ((int)$mapMapTypeCustom != 0)
                            {
                                // Custom Map Type - part 1 (define) - begin
                                foreach ($maptypes as $key => $currentmaptype)     
                                {
                                
                                    if ($currentmaptype->gettileurl != "")
                                    {

                                        $scripttext .= ' var customMapType'.$currentmaptype->id.' = new google.maps.ImageMapType({' ."\n";
                                        $scripttext .= '  getTileUrl: '.$currentmaptype->gettileurl.',' ."\n";
                                        $scripttext .= '  tileSize: new google.maps.Size('.$currentmaptype->tilewidth.', '.$currentmaptype->tileheight.'),' ."\n";
                                        if ((int)$currentmaptype->ispng == 1)
                                        {
                                            $scripttext .= '  isPng: true,' ."\n";
                                        }
                                        else
                                        {
                                            $scripttext .= '  isPng: false,' ."\n";
                                        }
                                        if ((int)$currentmaptype->minzoom != 0)
                                        {
                                            $scripttext .= '  minZoom: '.(int)$currentmaptype->minzoom.',' ."\n";
                                        }
                                        if ((int)$currentmaptype->maxzoom != 0)
                                        {
                                            $scripttext .= '  maxZoom: '.(int)$currentmaptype->maxzoom.',' ."\n";
                                        }
                                        if ($currentmaptype->opacity != "")
                                        {
                                            $scripttext .= '  opacity: '.$currentmaptype->opacity.','."\n";
                                        }
                                        $scripttext .= '  name: "'.str_replace('"','', $currentmaptype->title).'",' ."\n";
                                        $scripttext .= '  alt: "'.str_replace('"','', $currentmaptype->description).'",' ."\n";
                                        $scripttext .= '}); ' ."\n";
                                        
                                        // Add projection
                                        if ($currentmaptype->fromlatlngtopoint != "" && $currentmaptype->frompointtolatlng != "")
                                        {
                                            $scripttext .= $currentmaptype->projectionglobal."\n";
                                            
                                            $scripttext .= ' function customMapTypeProjection'.$currentmaptype->id.'() {'."\n";
                                            $scripttext .= $currentmaptype->projectiondefinition."\n";
                                            $scripttext .= ' }'."\n";
                                            
                                            $scripttext .= ' customMapTypeProjection'.$currentmaptype->id.'.prototype.fromLatLngToPoint  = ';
                                            $scripttext .= $currentmaptype->fromlatlngtopoint."\n";
                                            $scripttext .= ';'."\n";

                                            $scripttext .= ' customMapTypeProjection'.$currentmaptype->id.'.prototype.fromPointToLatLng = ';
                                            $scripttext .= $currentmaptype->frompointtolatlng."\n";
                                            $scripttext .= ';'."\n";
                                            
                                            $scripttext .= ' customMapType'.$currentmaptype->id.'.projection  = new customMapTypeProjection'.$currentmaptype->id.'();' ."\n";
                                        }

                                    }
                                
                                }
                                // Custom Map Type - part 1 (define) - end
                            }
                            
                            $scripttext .= '  map = new google.maps.Map(document.getElementById("GMapsID"), myOptions);' ."\n";

                            if ((int)$mapMapTypeOSM != 0)
                            {
                                $scripttext .= ' map.mapTypes.set(\'osm\', openStreetType);' ."\n";
                                if (((int)$mapMapTypeOSM == 2)
                                 || ((int)$mapMapTypeGoogle == 0
                                    && (int)$mapMapTypeCustom == 0))
                                {
                                    $scripttext .= '    map.setMapTypeId(\'osm\');' ."\n";
                                }
                            }

                            if ((int)$mapMapTypeCustom != 0)
                            {
                                // Custom Map Type - part 2 (bind) - begin
                                foreach ($maptypes as $key => $currentmaptype)     
                                {
                                    if ($currentmaptype->gettileurl != "")
                                    {
                                        $scripttext .= ' map.mapTypes.set(\'customMapType'.$currentmaptype->id.'\', customMapType'.$currentmaptype->id.');' ."\n";    
                                        if (((int)$mapMapTypeCustom == 2)
                                            || ((int)$mapMapTypeGoogle == 0
                                                && (int)$mapMapTypeOSM == 0))
                                        {
                                            $scripttext .= '    map.setMapTypeId(\'customMapType'.$currentmaptype->id.'\', customMapType'.$currentmaptype->id.');' ."\n";
                                        }
                                    }
                                }
                                // Custom Map Type - part 2 (bind) - end
                            }
                            
                            $scripttext .= 'var selectedShape; ' ."\n";
                            
                            $scripttext .= '  function clearSelection() {' ."\n";
                            $scripttext .= '    if (selectedShape) {' ."\n";
                            $scripttext .= '      selectedShape.setEditable(false);' ."\n";
                            $scripttext .= '      selectedShape = null;' ."\n";
                            $scripttext .= '    }' ."\n";
                            $scripttext .= '  }' ."\n";

                            $scripttext .= '  function setSelection(shape) {' ."\n";
                            $scripttext .= '    clearSelection();' ."\n";
                            $scripttext .= '    selectedShape = shape;' ."\n";
                            $scripttext .= '    shape.setEditable(true);' ."\n";
                            $scripttext .= '  }' ."\n";

                            $scripttext .= ' function deleteSelectedShape() {' ."\n";
                            $scripttext .= '    if (selectedShape) {' ."\n";
                            $scripttext .= '      selectedShape.setMap(null);' ."\n";
                            $scripttext .= '    }' ."\n";
                            $scripttext .= '  }' ."\n";

                            $scripttext .= '  function getSelectionPathChanged() {' ."\n";
                            $scripttext .= '    if (typeof(plPath'. $this->item->id.') != "undefined")'."\n";
                            $scripttext .= '    {' ."\n";
                            $scripttext .= '      getSelectionPath(plPath'. $this->item->id.');' ."\n";
                            $scripttext .= '    }' ."\n";
                             
                            $scripttext .= '    if (selectedShape) {' ."\n";
                            $scripttext .= '      getSelectionPath(selectedShape);' ."\n";
                            $scripttext .= '      clearSelection();' ."\n";
                            $scripttext .= '    }' ."\n";
                            $scripttext .= '  }' ."\n";

                            $scripttext .= '  function getSelectionPath(shape) {' ."\n";
                            $scripttext .= '    var coords = [];' ."\n";
                            $scripttext .= '    if (shape) {' ."\n";

                            $scripttext .= '        shape.getPath().forEach(function(position){ ' ."\n";
                            $scripttext .= '          coords.push(position.toUrlValue());' ."\n";
                            $scripttext .= '        });' ."\n";

                            //$scripttext .= '        alert("shape: " + coords.join(" | "));' ."\n";
                            // $scripttext .= '      document.forms.adminForm.jform_helpitem.value = coords.join(";");' ."\n";
                            $scripttext .= '      document.forms.adminForm.jform_path.value = coords.join(";");' ."\n";
                            $scripttext .= '      ' ."\n";
                            $scripttext .= '    }' ."\n";
                            $scripttext .= '  }' ."\n";
                            
                            if ((int)$this->item->id == 0
                             || $this->item->path == "")
                            {
                                $scripttext .= 'var drawingManager = new google.maps.drawing.DrawingManager({' ."\n";
                                $scripttext .= '          drawingMode: google.maps.drawing.OverlayType.POLYLINE,' ."\n";
                                $scripttext .= '          drawingControl: true,' ."\n";
                                $scripttext .= '          drawingControlOptions: {' ."\n";
                                $scripttext .= '            position: google.maps.ControlPosition.TOP_CENTER,' ."\n";
                                $scripttext .= '            drawingModes: [' ."\n";
                                $scripttext .= '              google.maps.drawing.OverlayType.POLYLINE' ."\n";
                                $scripttext .= '              ],' ."\n";
                                $scripttext .= '            polylineOptions: {' ."\n";
                                $scripttext .= '               editable: true ' ."\n";
                                $scripttext .= '               }' ."\n";
                                $scripttext .= '          }' ."\n";
                                $scripttext .= '        });' ."\n";
                                $scripttext .= '        drawingManager.setMap(map);' ."\n";

                                $scripttext .= '      google.maps.event.addListener(drawingManager, \'overlaycomplete\', function(e) {' ."\n";
                                $scripttext .= '          if (e.type != google.maps.drawing.OverlayType.MARKER) {' ."\n";
                                // Switch back to non-drawing mode after drawing a shape.
                                $scripttext .= '          drawingManager.setDrawingMode(null);' ."\n";

                                // Add an event listener that selects the newly-drawn shape when the user
                                // mouses down on it.
                                $scripttext .= '          var newShape = e.overlay;' ."\n";
                                $scripttext .= '          newShape.type = e.type;' ."\n";
                                $scripttext .= '          google.maps.event.addListener(newShape, \'click\', function() {' ."\n";
                                $scripttext .= '            setSelection(newShape);' ."\n";
                                $scripttext .= '          });' ."\n";
                                $scripttext .= '          google.maps.event.addListener(newShape, \'dblclick\', function() {' ."\n";
                                $scripttext .= '            getSelectionPath(newShape);' ."\n";
                                $scripttext .= '          });' ."\n";
                                
                                $scripttext .= '          setSelection(newShape);' ."\n";
                                $scripttext .= '          getSelectionPath(newShape);' ."\n";
                                
                                $scripttext .= '        }' ."\n";
                                $scripttext .= '      });' ."\n";
                            }

                            // Clear the current selection when the drawing mode is changed, or when the
                            // map is clicked.
                            $scripttext .= '      google.maps.event.addListener(map, \'click\', getSelectionPathChanged);' ."\n";
                            
                            $scripttext .= 'initialLocation = spblocation;' ."\n";
                                $scripttext .= '    map.setCenter(initialLocation);' ."\n";
                                
                                // New version without marker
                                $scripttext .= '  marker = new google.maps.Marker({' ."\n";
                                $scripttext .= '      position: initialLocation, ' ."\n";
                                $scripttext .= '      draggable:true, ' ."\n";
                                $scripttext .= '      map: map, ' ."\n";
                                $scripttext .= '      animation: google.maps.Animation.DROP,' ."\n";
                                // Replace to new, because all charters are shown
                                //$scripttext .= '      title:"'.htmlspecialchars(str_replace('\\', '/', $this->item->title) , ENT_QUOTES, 'UTF-8').'"' ."\n";        
                                $scripttext .= '      title:"'.str_replace('\\', '/', str_replace('"', '\'\'', $this->item->title)).'"' ."\n";
                                $scripttext .= '});'."\n";

                                $scripttext .= '    google.maps.event.addListener(marker, \'drag\', function(event) {' ."\n";
                                $scripttext .= '    document.forms.adminForm.jform_helpitem.value = event.latLng.lat() +","+event.latLng.lng();' ."\n";
                                $scripttext .= '    });' ."\n";
                                
                                $scripttext .= '    google.maps.event.addListener(map, \'click\', function(event) {' ."\n";
                                $scripttext .= '    marker.setPosition(event.latLng);' ."\n";
                                $scripttext .= '    document.forms.adminForm.jform_helpitem.value = event.latLng.lat() +","+event.latLng.lng();' ."\n";
                                $scripttext .= '    });' ."\n";

                                
                            if ((int)$this->item->id == 0)        
                            {
                                        $scripttext .= '      // Try W3C Geolocation method (Preferred)' ."\n";
                                        $scripttext .= '      if(navigator.geolocation) {' ."\n";
                                        $scripttext .= '        browserSupportFlag = true;' ."\n";
                                        $scripttext .= '        navigator.geolocation.getCurrentPosition(function(position) {' ."\n";
                                        $scripttext .= '          initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);' ."\n";
                                    $scripttext .= '    map.setCenter(initialLocation);' ."\n";
                                $scripttext .= '    marker.setPosition(initialLocation);' ."\n";
                                        //$scripttext .= '          contentString = "Location found using W3C standard";' ."\n";
                                        //$scripttext .= '          infowindow.setContent(contentString);' ."\n";
                                        //$scripttext .= '          infowindow.setPosition(initialLocation);' ."\n";
                                        //$scripttext .= '          infowindow.open(map);' ."\n";
                                        $scripttext .= '        }, function() {' ."\n";
                                        $scripttext .= '          handleNoGeolocation(browserSupportFlag);' ."\n";
                                        $scripttext .= '        });' ."\n";
                                        $scripttext .= '      } else if (google.gears) {' ."\n";
                                        $scripttext .= '        // Try Google Gears Geolocation' ."\n";
                                        $scripttext .= '        browserSupportFlag = true;' ."\n";
                                        $scripttext .= '        var geo = google.gears.factory.create(\'beta.geolocation\');' ."\n";
                                        $scripttext .= '        geo.getCurrentPosition(function(position) {' ."\n";
                                        $scripttext .= '          initialLocation = new google.maps.LatLng(position.latitude,position.longitude);' ."\n";
                                    $scripttext .= '    map.setCenter(initialLocation);' ."\n";
                                $scripttext .= '    marker.setPosition(initialLocation);' ."\n";
                                        //$scripttext .= '          contentString = "Location found using Google Gears";' ."\n";
                                        //$scripttext .= '          infowindow.setContent(contentString);' ."\n";
                                        //$scripttext .= '          infowindow.setPosition(initialLocation);' ."\n";
                                        //$scripttext .= '          infowindow.open(map);' ."\n";
                                        $scripttext .= '        }, function() {' ."\n";
                                        $scripttext .= '          handleNoGeolocation(browserSupportFlag);' ."\n";
                                        $scripttext .= '        });' ."\n";
                                        $scripttext .= '      } else {' ."\n";
                                        $scripttext .= '        // Browser doesn\'t support Geolocation' ."\n";
                                        $scripttext .= '        browserSupportFlag = false;' ."\n";
                                        $scripttext .= '        handleNoGeolocation(browserSupportFlag);' ."\n";
                                        $scripttext .= '      }' ."\n";
                            }
                            else
                            {
                                if ($this->item->path != "")
                                {
                                    $current_path_path = str_replace(array("\r", "\r\n", "\n"), '', $this->item->path);
                                    if ((int)$this->item->objecttype == 0
                                     || (int)$this->item->objecttype == 1) 
                                    {
                                        
                                        $scripttext .= ' var allCoordinates = [ '."\n";
                                        $scripttext .=' new google.maps.LatLng('.str_replace(";","), new google.maps.LatLng(", $current_path_path).') '."\n";
                                        $scripttext .= ' ]; '."\n";

                                        
                                        if ((int)$this->item->objecttype == 0) 
                                        {
                                            $scripttext .= ' var plPath'. $this->item->id.' = new google.maps.Polyline({'."\n";
                                        }
                                        else
                                        {
                                            $scripttext .= ' var plPath'. $this->item->id.' = new google.maps.Polygon({'."\n";
                                        }

                                        $scripttext .= ' path: allCoordinates,'."\n";

                                        if (isset($this->item->geodesic) && (int)$this->item->geodesic == 1) 
                                        {
                                            $scripttext .= ' geodesic: true, '."\n";
                                        }
                                        else
                                        {
                                            $scripttext .= ' geodesic: false, '."\n";
                                        }

                                        $scripttext .= ' editable: true, '."\n";
                                        
                                        $scripttext .= ' strokeColor: "'.$this->item->color.'"'."\n";
                                        $scripttext .= ',strokeOpacity: '.$this->item->opacity."\n";
                                        $scripttext .= ',strokeWeight: '.$this->item->weight."\n";
                                        if ((int)$this->item->objecttype == 1) 
                                        {
                                            if ($this->item->fillcolor != "")
                                            {
                                                $scripttext .= ',fillColor: "'.$this->item->fillcolor.'"'."\n";
                                            }
                                            if ($this->item->fillopacity != "")
                                            {
                                                $scripttext .= ',fillOpacity: '.$this->item->fillopacity."\n";
                                            }
                                        }

                                        $scripttext .= ' });'."\n";

                                        
                                        $scripttext .= 'plPath'. $this->item->id.'.setMap(map);'."\n";

                                    }
                                    else if ((int)$this->item->objecttype == 2)
                                    {
                                        if ($this->item->radius != "")
                                        {
                                            $arrayPathCoords = explode(';', $current_path_path);
                                            $arrayPathIndex = 0;
                                            foreach ($arrayPathCoords as $currentpathcoordinates) 
                                            {
                                                $arrayPathIndex += 1;
                                                $scripttext .= ' var plPath'.$arrayPathIndex.'_'. $this->item->id.' = new google.maps.Circle({'."\n";
                                                $scripttext .= ' center: new google.maps.LatLng('.$currentpathcoordinates.')'."\n";
                                                $scripttext .= ',radius: '.$this->item->radius."\n";
                                                $scripttext .= ',strokeColor: "'.$this->item->color.'"'."\n";
                                                $scripttext .= ',strokeOpacity: '.$this->item->opacity."\n";
                                                $scripttext .= ',strokeWeight: '.$this->item->weight."\n";
                                                if ($this->item->fillcolor != "")
                                                {
                                                    $scripttext .= ',fillColor: "'.$this->item->fillcolor.'"'."\n";
                                                }
                                                if ($this->item->fillopacity != "")
                                                {
                                                    $scripttext .= ',fillOpacity: '.$this->item->fillopacity."\n";
                                                }
                                                $scripttext .= '  });' ."\n";
                                                $scripttext .= 'plPath'.$arrayPathIndex.'_'. $this->item->id.'.setMap(map);'."\n";
                                            }

                                        }
                                    }
                                    else
                                    {
                                    }
                                    
                                    $arrayPC = explode(';', $current_path_path);
                                    $coordsPCxy = 0;
                                    foreach ($arrayPC as $currentpathcoordinates) 
                                    {    
                                        $coordsPC = explode(',', $currentpathcoordinates);
                                        if ($coordsPCxy == 0)
                                        {
                                            $coordsPCxMin = $coordsPC[0];
                                            $coordsPCxMax = $coordsPC[0];
                                            $coordsPCyMin = $coordsPC[1];
                                            $coordsPCyMax = $coordsPC[1];
                                            $coordsPCxy = 1;
                                        }
                                        else
                                        {
                                            if (isset($coordsPC[0]) && isset($coordsPC[1]))
                                            {
                                                if ($coordsPC[0] < $coordsPCxMin)
                                                {
                                                    $coordsPCxMin = $coordsPC[0];
                                                }
                                                if ($coordsPC[1] < $coordsPCyMin)
                                                {
                                                    $coordsPCyMin = $coordsPC[1];
                                                }
                                                if ($coordsPC[0] > $coordsPCxMax)
                                                {
                                                    $coordsPCxMax = $coordsPC[0];
                                                }
                                                if ($coordsPC[1] > $coordsPCyMax)
                                                {
                                                    $coordsPCyMax = $coordsPC[1];
                                                }
                                            }
                                        }
                                        
                                    }

                                    if ($coordsPCxy == 1)
                                    {
                                        $scripttext .= 'var mapBounds = new google.maps.LatLngBounds(' ."\n";
                                        $scripttext .= '  new google.maps.LatLng('.$coordsPCxMin.', '.$coordsPCyMin.'),' ."\n";
                                        $scripttext .= '  new google.maps.LatLng('.$coordsPCxMax.', '.$coordsPCyMax.'));' ."\n";
                                        //$scripttext .=' var mapCenter = new google.maps.LatLng('.(($coordsPCxMin + $coordsPCxMax)/2).','.(($coordsPCyMin + $coordsPCyMax)/2).');'."\n";
                                        $scripttext .=' map.fitBounds(mapBounds);'."\n";
                                        //$scripttext .=' map.setCenter(mapCenter);'."\n";
                                    }
                                    
                                }
                            }

                        // end initialize    
                        $scripttext .= '};' ."\n";

                        $scripttext .= 'function handleNoGeolocation(errorFlag) {' ."\n";
                        $scripttext .= '  if (errorFlag == true) {' ."\n";
                        $scripttext .= '    initialLocation = spblocation;' ."\n";
                        //$scripttext .= '    contentString = "Error: The Geolocation service failed.";' ."\n";
                        $scripttext .= '  } else {' ."\n";
                        $scripttext .= '    initialLocation = spblocation;' ."\n";
                        //$scripttext .= '    contentString = "Error: Your browser doesn\'t support geolocation.";' ."\n";
                        $scripttext .= '  }' ."\n";
                        $scripttext .= '  map.setCenter(initialLocation);' ."\n";
                        $scripttext .= '  marker.setPosition(initialLocation);' ."\n";
                        //$scripttext .= '  infowindow.setContent(contentString);' ."\n";
                        //$scripttext .= '  infowindow.setPosition(initialLocation);' ."\n";
                        //$scripttext .= '  infowindow.open(map);' ."\n";
                        $scripttext .= '};' ."\n";

                        $scripttext .= ' function addLoadEvent(func) {' ."\n";
                        $scripttext .= '  var oldonload = window.onload;' ."\n";
                        $scripttext .= '  if (typeof window.onload != \'function\') {' ."\n";
                        $scripttext .= '    window.onload = func;' ."\n";
                        $scripttext .= '  } else {' ."\n";
                        $scripttext .= '    window.onload = function() {' ."\n";
                        $scripttext .= '      if (oldonload) {' ."\n";
                        $scripttext .= '        oldonload();' ."\n";
                        $scripttext .= '      }' ."\n";
                        $scripttext .= '      func();' ."\n";
                        $scripttext .= '    }' ."\n";
                        $scripttext .= '  }' ."\n";
                        $scripttext .= '}    ' ."\n";    

                        $scripttext .= 'addLoadEvent(initialize);' ."\n";
                            
                        $scripttext .= '//]]></script>' ."\n";
                        // Script end

                        echo $scripttext;



                        ?>
                        </div>


                        <?php
                            $credits ='<div>'."\n";
                            if ((int)$mapMapTypeOSM != 0)
                            {
                                $credits .= 'OSM '.JText::_('COM_ZHGOOGLEMAP_MAP_POWEREDBY').': ';
                                $credits .= '<a href="'.$urlProtocol.'://www.openstreetmap.org/" target="_blank">OpenStreetMap</a>'."\n";
                            }
                            $credits .='</div>'."\n";
                        echo $credits;
                        ?>

                    </div>

                </div>
            </div>
        </div>
    

    <div class="tab-pane" id="tab1">
        <fieldset class="adminform">
            
                <?php foreach($this->form->getFieldset('details') as $field): ?>
                <div class="control-group">
                    <?php 
                        if ($field->id == 'jform_markergroup')
                        {
                            ?>
                            <div class="control-label">
                            <?php 
                                echo $field->label;
                            ?>
                            </div>
                            <div class="controls">
                            <?php 
                                array_unshift($this->markerGroupList, JHTML::_('select.option', '', JText::_( 'COM_ZHGOOGLEMAP_MAPMARKER_FILTER_PLACEMARK_GROUP'), 'value', 'text')); 
                                echo JHTML::_( 'select.genericlist', $this->markerGroupList, 'jform[markergroup]',  'class="inputbox span5" size="1"', 'value', 'text', (int)$this->item->markergroup, 'jform_markergroup');
                                //echo $field->label;
                                //echo $field->input;
                            ?>
                            </div>
                            <?php 
                        }
                        else if ($field->id == 'jform_descriptionhtml')
                        {
                            ?>
                            <div class="control-label">
                            <?php 
                                echo '<div class="clr"></div>';
                                echo $field->label;
                            ?>
                            </div>
                            <div class="controls">
                            <?php 
                                echo '<div class="clr"></div>';
                                echo $field->input;
                            ?>
                            </div>
                            <?php 
                        }
                        else if ($field->id == 'jform_catid')
                        {
                            if ($this->categoryListType == 1)
                            {
                                ?>
                                <div class="control-label">
                                <?php 
                                    echo $field->label;
                                ?>
                                </div>
                                <div class="controls">
                                <?php 
                                    array_unshift($this->categoryList, JHTML::_('select.option', '', JText::_( 'JOPTION_SELECT_CATEGORY'), 'value', 'text')); 
                                    echo JHTML::_( 'select.genericlist', $this->categoryList, 'jform[catid]',  'class="inputbox span5" size="1"', 'value', 'text', (int)$this->item->catid, 'jform_catid');
                                    //echo $field->label;
                                    //echo $field->input;
                                ?>
                                </div>
                                <?php 
                            }
                                else
                                {
                                ?>
                                <div class="control-label">
                                <?php 
                                    echo $field->label;
                                ?>
                                </div>
                                <div class="controls">
                                <?php 
                                    echo $field->input;
                                ?>
                                </div>
                                <?php 
                            }
                        }
                        else
                        {
                            ?>
                            <div class="control-label">
                            <?php 
                                echo $field->label;
                            ?>
                            </div>
                            <div class="controls">
                            <?php 
                                echo $field->input;
                            ?>
                            </div>
                            <?php 
                        }
                        ?>
                </div>
                <?php endforeach; ?>

            
        </fieldset>
    </div>
    <div class="tab-pane" id="tab2">
        
        <fieldset class="adminform">
            
                <?php foreach($this->form->getFieldset('pathadvanced') as $field): ?>
                <div class="control-group">
                    <?php 
                        ?>
                        <div class="control-label">
                        <?php 
                            echo $field->label;
                        ?>
                        </div>
                        <div class="controls">
                        <?php 
                            echo $field->input;
                        ?>
                        </div>
                        <?php 
                    ?>
                </div>
                <?php endforeach; ?>
            
        </fieldset>
    </div>
    
    <div class="tab-pane" id="tab3">
        
        <fieldset class="adminform">
            
                <?php foreach($this->form->getFieldset('kmloptions') as $field): ?>
                <div class="control-group">
                    <?php 
                        ?>
                        <div class="control-label">
                        <?php 
                            echo $field->label;
                        ?>
                        </div>
                        <div class="controls">
                        <?php 
                            echo $field->input;
                        ?>
                        </div>
                        <?php 
                    ?>
                </div>
                <?php endforeach; ?>
            
        </fieldset>
    </div>
    <div class="tab-pane" id="tab4">
        
        <fieldset class="adminform">
            
                <?php foreach($this->form->getFieldset('pathelevation') as $field): ?>
                <div class="control-group">
                    <?php 
                        if ($field->id == 'jform_elevationicontype')
                        {
                            ?>
                            <div class="control-label">
                            <?php 
                                echo $field->label;
                            ?>
                            </div>
                            <div class="controls">
                            <?php 
                                $imgpath = JURI::root() .'administrator/components/com_zhgooglemap/assets/icons/';
                                $utilspath = JURI::root() .'administrator/components/com_zhgooglemap/assets/utils/';

                                $iconTypeJS = " onchange=\"javascript:
                                if (document.forms.adminForm.jform_elevationicontype.options[selectedIndex].value!='') 
                                {document.image.src='".$imgpath."' + document.forms.adminForm.jform_elevationicontype.options[selectedIndex].value.replace(/#/g,'%23') + '.png'}
                                else 
                                {document.image.src=''}\"";


                                $scriptPosition = ' name=';

                                echo str_replace($scriptPosition, $iconTypeJS.$scriptPosition, $field->input);
                                echo '<img name="image" src="'.$imgpath .str_replace("#", "%23", $this->item->elevationicontype).'.png" alt="" />';

                                echo '<div class="clr"></div>';
                                echo '<a class="btn btn-primary" href="'.$urlProtocol.'://wiki.zhuk.cc/index.php?title=Zh_GoogleMap_Credits_Icons" target="_blank">'.JText::_( 'COM_ZHGOOGLEMAP_MAP_TERMSOFUSE_ICONS' ).' <img src="'.$utilspath.'info.png" alt="'.JText::_( 'COM_ZHGOOGLEMAP_MAP_TERMSOFUSE_ICONS' ).'" style="margin: 0;" /></a>';
                                echo '<div class="clr"></div>';
                                echo '<br />';
                            ?>
                            </div>
                            <?php
                        }
                        else
                        {
                            ?>
                            <div class="control-label">
                            <?php 
                                echo $field->label;
                            ?>
                            </div>
                            <div class="controls">
                            <?php 
                                echo $field->input;
                            ?>
                            </div>
                            <?php 
                        }
                        ?>
                </div>
                <?php endforeach; ?>
            
        </fieldset>
    </div>

    <div class="tab-pane" id="tab5">
        
        <fieldset class="adminform">
            
                <?php foreach($this->form->getFieldset('groundimage') as $field): ?>
                <div class="control-group">
                    <?php 
                        ?>
                        <div class="control-label">
                        <?php 
                            echo $field->label;
                        ?>
                        </div>
                        <div class="controls">
                        <?php 
                            echo $field->input;
                        ?>
                        </div>
                        <?php 
                    ?>
                </div>
                <?php endforeach; ?>
            
        </fieldset>
    </div>
                
    <?php echo $this->loadTemplate('params'); ?>

</div>


    <div class="row-fluid">
        <input type="hidden" name="task" value="mappath.edit" />
        <?php echo JHtml::_('form.token'); ?>
    </div>


</div>

</form>