/
application.js
126 lines (111 loc) · 4.42 KB
/
application.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
//
$(document).ready(function(){
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
$('div#loader').html('<img src="/images/bigLoader.gif">');
window.setTimeout( function(){
var url = '/projects.js?last_id=' + $('.project:last').attr('id');
if( document.location.href.match(/strict=1/) ) { url += '&strict=1&q=' + $('#stop_words').val() }
$.get(url,
function(data){
if (data != "") {
appendProject(eval('(' + data + ')'), true);
}
$('div#loader').empty();
});
}, 0 );
}
});
setInterval( function(){
if($('#pause:checked').val()){return false}
var url = '/projects.js?first_id=' + $('.project:first').attr('id');
if( document.location.href.match(/strict=1/) ) { url += '&strict=1&q=' + $('#stop_words').val() }
$.ajax({
'url': url,
'success': function(data){
appendProject( eval('(' + data + ')') );
}
});
}, 5000 );
});
function updateActivity(){
window.activity_at = new Date;
}
$(document).keydown(updateActivity);
$(document).keyup(updateActivity);
$(document).mouseover(updateActivity);
$(document).mousemove(updateActivity);
$(window).load(updateActivity);
$(document).keydown(handlePause);
function handlePause(e){
/*if(e.keyCode == 32){*/
/*$('#pause').click();*/
/*return false;*/
/*}*/
}
function inactivityTime() { return (new Date - (isNaN(window.activity_at) ? 0 : window.activity_at)) / 1000; }
function removeProjects(amount){
var projects = $('.project');
if (projects.length > amount){
for(var i=amount;i<projects.length;i++){
$(projects[i]).remove();
}
}
}
function appendProject(json, after){
if(!after&&inactivityTime() > 60*5&&inactivityTime() < 60 * 1000){
removeProjects( 100 );
/*if(!$('#pause:checked').val()){$('#pause').click()}*/
}
$(json).each( function(i, project) {
/*if(!after || $('#source_' + project.klass + ':checked').length > 0){*/
var r = 150 + Math.floor(Math.random() * 100);
var g = 150 + Math.floor(Math.random() * 100)
var b = 150 + Math.floor(Math.random() * 100);
var strict = document.location.href.match(/strict=1/);
var matches = false;
if (!strict){
var stop_words = $('#stop_words').val().replace(/,/g, ' ').replace(/ё/, 'е').split(/ +/);
for(var i=0; !matches && i<stop_words.length; i++) {
if(stop_words[i].match(/[^ ]/)){
matches = (project.title + ' ' + project.desc).replace(/ё/, 'е').match(new RegExp(stop_words[i], 'i'));
}
}
if (matches) { sound() }
}
html =
'<div style="background: ' + (window.first_id >= project.id ? '#cfcfcf' : 'rgb('+r+','+g+','+b+')') + ' url(/images/middle-message.png) repeat-y;" class="project' + (matches ? ' match' : '') +'" id="' + project.id + '">' +
'<div id="projectop"></div>'+
'<div id="projectzag"><img src="/images/icons/'+ project.icon +'.gif" alt="" />' +
'<h3>'+ (project.category != '' ? (project.category +' » ') : '') + '<a onclick="if($(\'#new_window:checked\').val()){window.open($(this).attr(\'href\'));return false;}else{return true}" href="' + project.url + '">' + project.title + '</a></h3>' +
'</div>' +
'<div id="projectzag_txt">'+
'<p>' + project.desc + '</p>' +
'</div>' +
'<div id="projectdata">' + project.created_at + '</div>' +
'<div id="projectcena">' + project.budjet+ '</div>' +
'<div id="projectbottom"></div>'+
'</div>';
if( $('.project').length == 0 ) {
$('#projects').html(html);
}else if(after){
$('.project:last').after(html);
}else{
document.title = '➘ ' + (project.budjet.match(/[^ ]/) ? project.budjet + " — " : "") + project.title.replace(/<.+?>/g, ' ');
$('.project:first').before(html);
}
/*}else{*/
/*window.console.log('skip: ' + project.klass);*/
/*}*/
} );
}
function sound(){
var so = new SWFObject('/player.swf','flashContent','300','250','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addParam('bgcolor','#FFFFFF');
so.addParam('flashvars','file=message.mp3&autostart=true');
so.write('flashbanner');
}