var MMarker = new Object();

MMarker.click = function (callBack)
{
  MMap.panTo(this.getLatLng());
  
  MMarker.openInfoWindow(this, callBack);
}

MMarker.load = function ()
{
  MMarker.template = document.getElementById('objectInfoTemplate');
}

MMarker.openInfoWindow = function (marker, callBack)
{
  MMarker.marker = marker;
  MMarker.callBack = callBack;
  
  MMap.closeInfoWindow();
  
  GDownloadUrl(
  
    '/retreivers/object.php?objectId=' + marker.id + rnd(),
    MMarker.openInfoWindowCallBack
  );
}

MMarker.openInfoWindowCallBack = function (jsCode, httpCode)
{
  var obj = eval(jsCode);
  
  if (document.getElementById('objectInfoTemplateAddress'))
  {
      document.getElementById('objectInfoTemplateAddress').innerHTML = obj.addressEscaped ? obj.addressEscaped + '. ' : '';
  }
  
  document.getElementById('objectInfoTemplateName').innerHTML        = obj.nameEscaped ? obj.nameEscaped + '&nbsp;' : '';  
  document.getElementById('objectInfoTemplatePhoneNumber').innerHTML = obj.phoneNumberEscaped ? 'Телефон &mdash; <b>' + obj.phoneNumberEscaped + '</b>.' : '';
  
  if (obj.addressEscaped || obj.phoneNumberEscaped)
  {
      document.getElementById('objectInfoTemplateAddressPhoneNumber').style.display = 'block';
      
  } else
  {
      document.getElementById('objectInfoTemplateAddressPhoneNumber').style.display = 'none';
  }
  
  if (obj.infoEscaped)
  {
      document.getElementById('objectInfoTemplateInfo').innerHTML = obj.infoEscaped;
      document.getElementById('objectInfoTemplateInfo').style.display = 'block';
  
  } else
  {
      document.getElementById('objectInfoTemplateInfo').style.display = 'none';
  }
  
  if (obj.thumbnailUri)
  {
      document.getElementById('objectInfoTemplateImgContainer').style.display = 'block';
      document.getElementById('objectInfoTemplateImg').src = obj.thumbnailUri;
      document.getElementById('objectInfoTemplatePhotoHref').setAttribute('href', '/object-' + obj.id + '/');
      
  } else
  {
      document.getElementById('objectInfoTemplateImgContainer').style.display = 'none';
  }
  
  if ((obj.info && obj.info.substr(obj.info.length - 3, 3) == '...') || obj.opinions > 0 || obj.questions > 0)
  {
      document.getElementById('objectInfoTemplateDetailsLinkAdd').style.display = 'none';
      document.getElementById('objectInfoTemplateDetailsLink').style.display = 'block';
      document.getElementById('objectInfoTemplateDetailsLinkHref').setAttribute('href', '/object-' + obj.id + '/');

  } else
  {
      document.getElementById('objectInfoTemplateDetailsLink').style.display = 'none';
      document.getElementById('objectInfoTemplateDetailsLinkAdd').style.display = 'block';
      document.getElementById('objectInfoTemplateDetailsLinkAddHref').setAttribute('href', '/object-' + obj.id + '/');
  }
      
  var infoBlock = MMarker.template.cloneNode(true);
  infoBlock.style.display = 'block';
  MMarker.marker.openInfoWindow(infoBlock);
  
  MMarker.info = obj;

  if (MMarker.callBack) try { MMarker.callBack() } catch (e) { };
  
  MMarker.callBack = null;
}
