﻿var UI = {

disableSubmit : function(id) 
{
  setTimeout("UI._performDisableSubmit('" + id + "');", 10);
}

,

_performDisableSubmit : function(id)
{
  $("#" + id).attr("disabled", "true");
}
,
noCache : function(url) {
  var sharp = url.indexOf('#');
  var quest = url.indexOf('?');
  if (sharp < 0) {
    sharp = url.length;
  }
  var split = quest < 0 ? '?' : '&';
  var i = '_nc' + parseInt(Math.random() * 10);
  var urlEnd = "";
  if (sharp < url.length) urlEnd = url.substr(sharp);
  url = url.substring(0, sharp) + split + i + '=' + Date.parse(new Date()) + urlEnd;
  return url;
}

}


var AD = {
google : function(id)
{
  var slot = '';
  var w = '';
  var h = '';
  switch (id.toLowerCase())
  {
    case 'h1':
      slot = '8765082314';
      w = 468;
      h = 60;
      break;
    case 'h0':
      slot = "2484159125";
      w = 728;
      h = 90;
      break;
  }
  if (!slot) return;
  document.write('<script type="text/javascript">google_ad_client = "pub-1648394071298184";');
  document.write('google_ad_slot = "' + slot + '"; google_ad_width = ' + w + '; google_ad_height = ' + h + ';');
 	document.write('</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>');
}
}

var Stores = {
  map : null,
  city : '',
  markers : [],
  markerObjects : [],
  idAutoStore : 0,
  //clust : null,
  
  Initialize2 : function(storeMarkers) {
    Stores.markers = storeMarkers;
    
    Stores.RetrieveParameters();
    Stores.ShowMap();
  }
  ,
  RetrieveParameters : function() {
    var posSharp = document.location.href.indexOf('#');
    if (posSharp + 1 < document.location.href.length) {
      var anchor = document.location.href.substr(posSharp + 1);
      var idStore = parseInt(anchor);
      var cityCode = '';
      if (isNaN(idStore)) {
        switch (anchor) {
          case 'moscow':
          case 'spb':
            cityCode = anchor;
          break;
        }
      }
      Stores.city = cityCode;
      Stores.idAutoStore = idStore;
    }
  }
  ,
  
  Initialize_DEPRECATED : function(cityCode, storeMarkers) {
    Stores.city = cityCode;
    Stores.markers = storeMarkers;
    
    var pos = String(document.location).indexOf('#');
    var anhor = document.location.href.substr(pos).toLowerCase();
    var isMap = pos > 0 && (anhor == '#map' || anhor.indexOf("#map.") == 0);
    
    if (isMap) {
      var idStore = 0;
      if (anhor.indexOf("#map.") == 0 && anhor.length > 5) {
        idStore = parseInt(anhor.substr(5));
        Stores.idAutoStore = idStore;
      }
      Stores.ShowMap();
    }
    else Stores.ShowList();
    $("#storeSwList").click( function() { Stores.ShowList(); } );
    $("#storeSwMap").click( function() { Stores.ShowMap(); } );
  }
  ,
  ShowMap : function() {
    Stores.switchUi("Map");
    $("#storesList").hide();
    $("#storesMap").show();
    if (Stores.map == null) {
      Stores.createMap();
    }
  }
  ,
  ShowList : function() {
    Stores.switchUi("List");
    $("#storesList").show();
    $("#storesMap").hide();
  }
  ,
  createMap : function() {
    Stores.map = new google.maps.Map2(document.getElementById("storesMap"));
    //Stores.clust = new Clusterer(Stores.map);
    //Stores.clust.SetMaxVisibleMarkers(100);
    var ll = new GLatLng(55.748, 37.61993);
    var up = 10;
    switch (Stores.city)
    {
      case 'spb': 
        ll = new GLatLng(59.95, 30.34);
        break;
    }

    Stores.map.setCenter(ll, up);
    Stores.map.setUIToDefault();    
    var autoIndex = -1;
    Stores.markerObjects = new Array(Stores.markers.length);
    for (var i = 0; i < Stores.markers.length; ++i) {
      var item = Stores.markers[i];
      if (Stores.idAutoStore > 0 && item[2] == Stores.idAutoStore) {
        autoIndex=i;
      }
      var info = decodeURIComponent(item[1].replace(/\+/ig, " "));
      var marker = new GMarker(item[0], { draggable: false, bounce: false });
      marker.bemotoInfo = info;
      google.maps.Event.addListener(marker, "click", function() {
        this.openInfoWindowHtml(this.bemotoInfo);
      });
      Stores.markerObjects[i] = marker;
      Stores.map.addOverlay(marker);
      //Stores.clust.AddMarker(marker, info);
      
      if (autoIndex >= 0) {
        var autoItem = Stores.markers[autoIndex];
        Stores.map.setCenter(autoItem[0], 15);
        var autoMarker = Stores.markerObjects[autoIndex];
        autoMarker.openInfoWindowHtml(autoMarker.bemotoInfo);
      }
    }
  }
  ,
  switchUi : function(name) { 
    $(".storeSw").removeClass("switchActive");
    $("#storeSw" + name).addClass("switchActive");
    var s = String(document.location.href);
  }
}

var Discussion = {

LoadForm : function(domId, mode, topic) {
  $("#" + domId).html('<img src="/_ui/i/wait.gif" alt="ждем…" />').show();
  $.getJSON(UI.noCache("/_active/discussion.ashx?a=form"), {'mode': mode }, function(json) {
    $(".addDiscuss").hide();
    var block = $("#" + domId);
    block.html(json.html).data("discussUser", json.user);
    $(".discussCancel", block).click( function() { $("#" + domId).hide(); $(".addDiscuss").show(); } );
    $(".discussSend", block).click( function() { Discussion.Send(domId, mode, topic); } );
    $("#discussForm").submit( function() { $(".discussSend", block).click(); return false; } );
  });
}
,

Send : function(domId, mode, topic) {
  var block = $("#" + domId);
  var data = { 
    'name': block.data("discussUser"), 
    'comment': $("#discussForm_comment").val(),  
    'mode': mode,
    'topic': topic
  };
  if (!data.name) data.name = $("#discussForm_name").val();
  if (!data.name || !data.comment) return;
  $("#" + domId).html('<img src="/_ui/i/wait.gif" alt="ждем…" />').show();
  $.post(UI.noCache("/_active/discussion.ashx?a=send"), data, function(json) {
    if (!json.ok) {
      alert("Не удалось добавить ваш комментарий");
      $(".addDiscuss").show();
    } else {
      $(".addDiscuss").show();
      Discussion.Reload(mode, topic);
    }
    $("#" + domId).hide();
  }, "json");
}
,

Reload : function(mode, topic) {
  $("#discussionPlace").html('<img src="/_ui/i/wait.gif" alt="ждем…" />').show();
  $.getJSON(UI.noCache("/_active/discussion.ashx?a=list"), {'mode': mode, 'topic': topic }, function(json) {
    if (!json.ok) {
      alert("Не удалось загрузить комментарии, обновите страницу");
      $("#discussionPlace").hide();
      $("#discussionTitle").hide();
    } else {
      if (json.count)
      {
        $("#discussionPlace").html(json.html).show();
        $("#discussionTitle .count").text(json.count);
        $("#discussionTitle").show();
      }else {
        $("#discussionPlace").hide();
        $("#discussionTitle").hide();
      }
    };
  });
}

}


var GooSearch = {
  
_cseid : "partner-pub-1648394071298184:uwabesbv75k",
_domid : '',
_ctrl : null,
_block : null,
  
Init : function(domid) 
{
  this._domid = domid;
  this._block = $("#" + this._domid);
  
  this._ctrl = new google.search.SearchControl();
  this._ctrl.enableAds('pub-1648394071298184');
  this._ctrl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
  this._ctrl.setSearchCompleteCallback(this, this.onSearchComplete);

  var options = new google.search.SearcherOptions();
  options.setNoResultsString('Ничего не найдено. Можете попробовать <a href="/tags/">поиск по тегам</a>');
  
  var siteSearch = new google.search.WebSearch();
  siteSearch.setUserDefinedLabel("Весь сайт");
  siteSearch.setUserDefinedClassSuffix("bemoto");
  siteSearch.setSiteRestriction({
    siteUrl: "bemoto.ru",
    cseId: this._cseid
    });
  siteSearch.setRestriction(google.search.Search.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF);
  this._ctrl.addSearcher(siteSearch, options);
  
  var siteSearch = new google.search.WebSearch();
  siteSearch.setUserDefinedLabel("Магазины");
  siteSearch.setUserDefinedClassSuffix("bemotoshop");
  siteSearch.setRestriction(google.search.Search.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF);
  siteSearch.setSiteRestriction({
    siteUrl: "bemoto.ru/store",
    cseId: this._cseid
    });
  this._ctrl.addSearcher(siteSearch, options);

  var drawOptions = new google.search.DrawOptions();
  drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);

  this._ctrl.draw(document.getElementById(this._domid), drawOptions);
  $(".gsc-clear-button", this._block).hide();
}
,
AutoSearch : function() {
  // ?text=abc
  var search = document.location.search.toLowerCase();
  var poss
  var pos = search.indexOf('text=');
  if (pos < 0 || search.length < pos + 5) return;
  var pos2 = search.indexOf('&', pos + 5);
  if (pos2 < 0) pos2 = search.length;
  var query = document.location.search.substring(pos + 5, pos2);
  try {
    query = decodeURI(query);
  } catch (exc) {
    return;
  }
  if (query.length < 3) return;
  this.Search(query);
}
,
Search : function(query) {
  $(".gsc-input", this._block).val(query);
  $(".gsc-search-button", this._block).click();
}
,
onSearchComplete : function(object, method) {
  $(".gsc-trailing-more-results a", this._block).text("Дополнительные результаты");
}
  
}


var LB = {
	_count: 0,
	_selectors: [],

	add: function(selector) {
		this._selectors[this._count++] = selector;
		return this;
	}
  ,
	render: function() {
		for (var i = 0; i < this._count; ++i) {
			$(this._selectors[i]).lightBox({
				imageBtnClose: '/i/lightbox/lightbox-blank.gif',
				imageBtnPrev: '/i/lightbox/lightbox-btn-prev.gif',
				imageBtnNext: '/i/lightbox/lightbox-btn-next.gif',
				imageBlank: '/i/lightbox/lightbox-blank.gif',
				txtImage: '', txtOf: 'из',
				overlayBgColor: '#5E5E5E'
			})
		.click(function() { pageTracker._trackEvent('Фото', 'Open', $(this).attr("title")); });
		}
	}
  ,
	reset: function() {
		this._selectors = [];
		return this;
	}
}




$( function() { 
  $("ul.em li").prepend('— '); $("ul.em").addClass("em0"); 
  $(".feedb").click( function() { 
    document.location.href=('mailto:infobemoto.ru').replace('fobe', 'fo@be'); 
  } );
  LB.render();
} ); 
