         twSelector: '.js-tw'
         vkSelector: '.js-vk'
         fbSelector: '.js-fb'
+        gpSelector: '.js-gp'
+        okSelector: '.js-ok'
         containerSelector: '.post-likes'
         url: location.href
         isInitScroller: false

          new SocialTw $postLikes.find(settings.twSelector), settings.url
          new SocialFb $postLikes.find(settings.fbSelector), settings.url
          new SocialVk $postLikes.find(settings.vkSelector), settings.url

          if settings.isInitScroller
            initScroller $socials, $postLikes

    getCount: -> throw Error 'unimplemented method'

    initClick: -> throw Error 'unimplemented method'

  class SocialOk extends SocialBase
    getCount: ->
      window.ODKL ||= {}
      window.ODKL.updateCount = (idx, number) =>
        @$selector.parent().find('span').text number

      $.ajax
        url: "http://www.odnoklassniki.ru/dk?st.cmd=extLike&uid=odklcnt0&ref=#{@url}"
        dataType: 'jsonp'

    initClick: ->
      @$selector.on 'click', (e) =>
        e.preventDefault()
        title = encodeURIComponent document.title
        open "http://www.odnoklassniki.ru/dk?st.cmd=addShare&st._surl=#{@url}&title=#{title}", "_blank", "scrollbars=0, resizable=1, menubar=0, left=100, top=100, width=550, height=440, toolbar=0, status=0"
      
  class SocialGp extends SocialBase
    getCount: ->
      window.services ||= {}
      window.services.gplus ||= {}
      window.services.gplus.cb = (number) ->
        window.gplusShares = number

      $.getScript "http://share.yandex.ru/gpp.xml?url=#{@url}", =>
        result = gplusShares or 0
        @$selector.parent().find('span').text result

    initClick: ->
      @$selector.on 'click', (e) =>
        e.preventDefault()
        open "https://plus.google.com/share?url=#{@url}", "_blank", "scrollbars=0, resizable=1, menubar=0, left=100, top=100, width=550, height=440, toolbar=0, status=0"

  class SocialTw extends SocialBase
    getCount: ->
