﻿//---- Отображает на карте метки с найденными организациями ------------
var map; 

// Создание обработчика для события window.onLoad
YMaps.jQuery(function ()
{
	// найденные организации
	var orgs = document.getElementsByName("orgnum");
	
    // Создание экземпляра карты и его привязка к созданному контейнеру
    var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

    // определяем местоположение пользователя по его IP-адресу 
    if (YMaps.location)
    {
        center = new YMaps.GeoPoint(YMaps.location.longitude, YMaps.location.latitude);
        
        if (orgs.length == 0)
        {	
          map.openBalloon(center, 
              (YMaps.location.country || "")
            + (YMaps.location.region ? ", " + YMaps.location.region : "")
            + (YMaps.location.city ?  ", " + YMaps.location.city : "")
          )
        }
        
    }
    else
    {
      // если не удалось узнать местоположение пользователя, то устанавливаем центр в Самаре	
      center = new YMaps.GeoPoint(50.19908,53.244418);
    }
    
    // Установка для карты ее центра и масштаба
    map.setCenter(center, 10);  
    
    // Добавляем элементы управления
    map.addControl(new YMaps.ToolBar());
    map.addControl(new YMaps.Zoom());
    map.addControl(new YMaps.ScaleLine());
    map.enableScrollZoom();
       
    
    var company=[];
    var points=[];
    
    // Добавление оверлеев на карту
    for (var i = 0; i < orgs.length; i++)
    {                
      company.num = document.getElementsByName("orgnum")[i].value;                
      company.id = document.getElementsByName("orgid")[i].value;    
      company.name = document.getElementsByName("orgname")[i].value;
      company.description = document.getElementsByName("orgdescr")[i].value;
      company.phone = document.getElementsByName("orgphone")[i].value;
      company.logo = document.getElementsByName("orglogo")[i].value;
      lon1 = document.getElementsByName("lon")[i].value;
      lat1 = document.getElementsByName("lat")[i].value;
      company.point = new YMaps.GeoPoint(lon1,lat1);
      points[i] = company.point; 
      
      var overlay = createOverlay(company);
      map.addOverlay(overlay);
      
    }
    
    
    // если найдены точки, то центрируем карту по найденным объектам
    if (points.length > 0)
    {
      // Создаем область показа по группе точек
      bounds = new YMaps.GeoCollectionBounds(points);    
      // Центрируем карту 
      map.setBounds(bounds);
    }
    
});

//------------- Функция для создания оверлея и ссылки на него ---------------
function createOverlay (company)
{
    var style =
    {
      balloonContentStyle :
      {
        template : new YMaps.Template
        (
        	'<div style="background: #EEE; color:#000; padding: 5px; width: 400;">'	
          + '<h1>$[logo] $[name]</h1>'
          + '<table>'
          + '<tr class="black_txt" valign="top">'
          + '<td><b>Адрес: </b></td><td>$[description]</td>'
          + '</tr>'
          + '<tr class="black_txt" valign="top">'
          + '<td><b>Тел.: </b></td><td>$[phone|нет данных]</td>'
          + '</tr>'
          + '</table>'
          + '</div>'
        )
      }
    }
    
    var link = YMaps.jQuery("<a href=\"#\">" + company.num + "</a>"), // Создание ссылки
        newOverlay = new YMaps.Placemark(company.point, {style: style});

    
    newOverlay.setIconContent(company.num);
    newOverlay.name = company.name;
    newOverlay.description = company.description;
    // Добавление дополнительной информации
    newOverlay.phone = company.phone;
    newOverlay.logo = company.logo;
    

    // Установка обработчика кликов по ссылке
    link
        .bind("click", function () {
            if (link.hasClass("active")) return;
            newOverlay.openBalloon();
            return false;
        })
        .appendTo(YMaps.jQuery("#orgnum_link"+company.num))
        
    return newOverlay;
}//createOverlay


/*
//------------------------------------
function htmlspecialchars_decode(string, quote_style)
{  
	//example 1: htmlspecialchars_decode("<p>this -> "</p>", 'ENT_NOQUOTES');  
	//returns 1: '<p>this -> "</p>'
	  
	          
  string = string.toString();  
	         
  // Always encode  
  string = string.replace('/&/g', '&');  
  string = string.replace('/</g', '<');  
  string = string.replace(/>/g, '>');  
	         
  // Encode depending on quote_style  
  if (quote_style == 'ENT_QUOTES')
  {  
    string = string.replace('/"/g', '"');  
	string = string.replace('/'/g', '\'');  
  }
  else if (quote_style != 'ENT_NOQUOTES')
  {  
    // All other cases (ENT_COMPAT, default, but not ENT_NOQUOTES)  
	string = string.replace('/"/g', '"');  
  }  
	         
  return string;  
}//htmlspecialchars_decode  
*/
