function createMarker(sd, markerOptions)
{
  var point = new GLatLng(sd.ps.mc[0], sd.ps.mc[1]);
  //markerOptions.title = sd.p.sn;
  var marker = new GMarker(point, markerOptions);

  GEvent.addListener(marker, "click", function () { markerClick(marker, point, sd); });
  GEvent.addListener(marker, "mouseover",
    function()
    {
      if (marker.hintw) {
        marker.hintw.IncCounter();
      }
      else {
        marker.hintw = new MyHintWindow(point, sd.p.sn + ' - ' + sd.p.dc + '%');
        marker.hintw.marker = marker;
        map.addOverlay(marker.hintw);
      }
    }
  );
  GEvent.addListener(marker, "mouseout",
    function() { if (marker.hintw) marker.hintw.DecCounter(); }
  );

  return marker;
}

function setupCatMarkers(id)
{
  markers[id] = new Array();
  var catIcon = new GIcon(baseIcon);
  catIcon.image = HTTPROOT + "tmpl/img/map/32x32/" + id + ".png";
  markerOptions = { icon:catIcon };
  for (var i = 0; i < dataformarkers[ id].length; i++) {
    markers[ id][i] = createMarker(dataformarkers[ id][i], markerOptions);
    if (catmarkersOn[ id] == 1)
      map.addOverlay(markers[ id][i]);
  }
  if ((dataformarkers[ id].length == 0) && (catmarkersOn[ id] == 1))
    switchMarkers(id);
  else if ((dataformarkers[ id].length != 0) && (catmarkersOn[ id] == 0))
    switchMarkers(id);
}

function markerClick(marker, point, sd)
{
  if (infow) {
    infow.CloseIW();
    infow = null;
  }

  infow = new MyInfoWindow(marker, point,
'<div style="margin-left: 10px; margin-right: 10px" ><table border=0 cellpadding=0 cellspacing=0 width=100%><tr>'
+ '<td>'
+ '<div class="iwsn">' + sd.p.sn + '</div>'
+ '<div class="iwtext">'
+ '<br />'
+ ((sd.ps.ph != '') ? 'Тел.: ' + sd.ps.ph + '<br />' : 'Тел.: ' + sd.p.ph + '<br />')
+ ((sd.p.www != '') ? sd.p.www + '<br />' : '')
+ '<br />'
+ 'Адрес: ' + sd.ps.a1 + ((sd.ps.a2 != '') ? ', ' + sd.ps.a2 : '') + "<br />"
+ '<a href="' + HTTPROOT + 'partners/' + sd.p.a + '/"/>все адреса >>></a><br />'
+ '<br />'
+ sd.p.sa + '<br />'
+ '</div>'
+ '</td>'
+ ((sd.p.logo != '') ? '<td width=100><table border=0 cellpadding=0 cellspacing=0 width=100 height=100><tr valign="top"><td><img src="' + sd.p.logo + '" /></td></tr></table></td>' : '')
+ "</td></tr></table></div>"
  );

  map.addOverlay(infow);

  infow.PlaceWindow();
}
