99 lines
2.2 KiB
CoffeeScript
99 lines
2.2 KiB
CoffeeScript
# Registering global objects
|
|
_beathaven = null
|
|
_session = 1
|
|
_vkontakte = null
|
|
_ajax = null
|
|
_player = null
|
|
_search = null
|
|
_pages = null
|
|
_settings = null
|
|
|
|
$ ->
|
|
l = document.location
|
|
if l.host not in ['beathaven.org', 'localhost']
|
|
l.href = 'http://beathaven.org/'+ l.hash
|
|
|
|
_beathaven = new BeatHaven()
|
|
_beathaven.init()
|
|
|
|
$(window).resize ->
|
|
_beathaven.adjustSizes()
|
|
window.setTimeout ->
|
|
_beathaven.checkRedrawScrollbar()
|
|
, 500
|
|
|
|
class BeatHaven
|
|
|
|
last_height: false
|
|
|
|
init: ->
|
|
this.adjustSizes()
|
|
this.checkRedrawScrollbar()
|
|
|
|
_vkontakte = new Vkontakte(if document.location.host == 'beathaven.org' then 2335068 else 2383163)
|
|
_vkontakte.init()
|
|
|
|
_ajax = new Ajax()
|
|
|
|
_player = new Player()
|
|
_player.initJplayer()
|
|
|
|
_search = new Search()
|
|
|
|
_pages = new Pages()
|
|
|
|
_settings = new Settings()
|
|
|
|
_ajax.detectPage()
|
|
|
|
adjustSizes: ->
|
|
$('.data-container').height $(window).height() - $('.header-container').height()
|
|
$('.data-container').width $(window).width() - $('.player').width()
|
|
$('.player-container').height $(window).height()
|
|
$('.playlist').height $(window).height() - $('.player').height() - $('.player-container .additional-controls').height()
|
|
|
|
$('.data-container').scrollbar()
|
|
$('.playlist').scrollbar()
|
|
|
|
checkRedrawScrollbar: ->
|
|
focused_id = false
|
|
if document.activeElement.id?
|
|
focused_id = document.activeElement.id;
|
|
outer_height = $('.data-container > div').outerHeight()
|
|
if outer_height > 300 and outer_height != @last_height
|
|
@last_height = outer_height
|
|
this.redrawScrollbar()
|
|
if focused_id
|
|
document.getElementById(focused_id).focus()
|
|
focused_id = false
|
|
window.setTimeout ->
|
|
_beathaven.checkRedrawScrollbar()
|
|
, 500
|
|
|
|
redrawScrollbar: ->
|
|
$('.data-container').html $('.data-container').find('.inner').first()
|
|
$('.data-container').scrollbar()
|
|
|
|
|
|
String::htmlsafe = ->
|
|
replaces = [
|
|
["\\", "\\\\"]
|
|
["\"", """]
|
|
["<", "<"]
|
|
[">", ">"]
|
|
]
|
|
str = this
|
|
for item in replaces
|
|
str = str.replace item[0], item[1]
|
|
str
|
|
|
|
String::trim = ->
|
|
str = this
|
|
while str.indexOf(' ') != -1
|
|
str = str.replace(' ', ' ')
|
|
if str.charAt(0) == ' '
|
|
str = str.substring 1
|
|
if str.charAt(str.length - 1) == ' '
|
|
str = str.substring(0, str.length - 1)
|
|
str
|