<?php



class CarabiMapGoogle extends carabi_map
{

	public function __construct($mapInfo)
	{
		$this->map_provider = 'google';
		parent::__construct($mapInfo);
	}


    public function display()
    {
	echo $this->fetch();
    }

    public function fetch()
    {
	if ('HOLIDAYAPARTMENTS.RU'==PROJECT_NAME) {
		$js_url = '/media';
		$img_url = '/media';
	} else if ('RENT.RU'==PROJECT_NAME){
		$js_url = '/js';
		$img_url = '/images';
	}
	if (defined("SCRIPTS_URL")) {
		$img_url = SCRIPTS_URL . $js_url;
	}
	if (defined("IMAGES_URL")) {
		$img_url = IMAGES_URL . $img_url;
	}
	
	ob_start();

?><script type="text/javascript">
window.js_base_url = '<?=$js_url?>';
window.img_base_url = '<?=$img_url?>';
$(function() {
    var placemarks = [];
<?php foreach ($this->placemarks as $placemark): ?>
<?php if (!$placemark['lat'] && !$placemark['lng']) { continue; } ?>
    placemarks.push([
	    <?=$placemark['lat']?>, // широта
	    <?=$placemark['lng']?>, // долгота
	    0, // ид для шаблона infoWinTemplates
	    '<?=$placemark['url']?>', // ссылка
	    '<?=$placemark['abbr']?>', // алиас // todo
	    '<?=$placemark['name']?>', // название
	    '<?=$placemark['description']?>', // описание
	    '<?=$placemark['address']?>', //адрес
	    '<?=$placemark['img_url']?$placemark['img_url']:img_base_url + '/dummy_115_115.gif'?>', // урл картинки
	    '', // площадь
	    '', // стоимость
	    'http://www.rent.info' // сайт
    ]);
<?php endforeach; ?>
    var mapData = {
<?php if ($this->mapInfo['lat'] && $this->mapInfo['lng'] && $this->mapInfo['zoom']): ?>
        'mapLat': <?=$this->mapInfo['lat']?>,
	'mapLng': <?=$this->mapInfo['lng']?>,
        'mapZoom': <?=$this->mapInfo['zoom']?>
<?php endif; ?>
    }
    var startMap = function() {
		googleMap('gmap<?=$this->uniqId?>', mapData, placemarks);
    }

    if (!window.google || !google.maps) {
		var scriptsLoaded = 0;
		var scriptsToLoad = 3;
		window.scriptLoaded<?=$this->uniqId?> = function() {
			scriptLoaded();
		}
		var scriptLoaded = function() {
			if (++scriptsLoaded>=scriptsToLoad) {
			//$(function(){
				startMap();
			//});
			}
		}
		$.getScript(js_base_url + '/map.js', scriptLoaded);
        $.getScript(js_base_url + '/GoogleMap.rr.js', scriptLoaded);
		$.getScript('http://maps.google.com/maps/api/js?sensor=false&callback=scriptLoaded<?=$this->uniqId?>');
    } else {
		startMap();
    }
});

</script>

<div id="gmap<?=$this->uniqId?>" style="width:100%; height:400px"></div>

<?php
	$retVal .= ob_get_contents();
	ob_end_clean();
        return $retVal;
    }









	public function prepare()
	{
	    //$this->smarty->add_JS Link( 'http://www.google.com/jsapi' );
	    //$this->carabi_render->add_JS Link( 'http://maps.google.com/maps/api/js?sensor=false' );
$this->carabi_render->setHTMLPageOption('js_links', 'http://maps.google.com/maps/api/js?sensor=false' );
	    //$this->smarty->add_JS Link( '/js/Fluster2.packed.js' );
//		switch (PROJECT_NAME) {
//		    case 'RENT.RU':
//		      // rent.ru
//	          $this->carabi_render->add_JS Link( '/js/GoogleMap.rr.js' );
//		      break;
//		    case 'HOLIDAYAPARTMENTS.RU':
//        	  $this->carabi_render->add_J SLink( '/media/GoogleMap.rr.js' );
//	          $this->carabi_render->add_js Link( '/media/map.js' );
//	          //$this->carabi_render->add_j sLink( '/media/Common.rr.js' );
//	          //$this->carabi_render->add_He adJS("initMap();");
//	          echo '';
//		      break;
//		}
	}

}



?>