battles/static/scripts/buttons-engine.js

496 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var cfg = {
'host':'new.capitalcity.old-dark.ru',
'img':'new.capitalcity.old-dark.ru/static/'
};
var GameEngine = {
start:function() {
ReLine.start();
ReLine.rebase();
chat.refleshChat(false);
chat.refleshSmiles();
this.actionSecondStart();
this.timeStempReflesh();
/* онлайн меню */
this.onlinebtn('Локация');
this.onlinebtn('Друзья');
this.onlinebtn('Модераторы');
this.onlinebtn('Дилеры');
//mod.start();
$('#preloader').remove();
},
hasFlashVar:'none',
hasFlash:function() {
if(this.hasFlashVar == 'none') {
this.hasFlashVar = (typeof navigator.plugins == "undefined" || navigator.plugins.length == 0) ? !!(new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) : navigator.plugins["Shockwave Flash"];
}
return this.hasFlashVar;
},
ch10:function(v) {
if( v == 'checked' ) {
return 1;
}else{
return 0;
}
},
timeStempReflesh:function() {
if( this.hasFlash() ) {
$('#timeStemp').html(
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="70" height="25">'+
'<param name="movie" value="http://' + cfg.host + '/static/flash/clock.swf?hours=' + this.data('H') + '&amp;minutes=' + this.data('i') + '&amp;sec=' + this.data('s') + '">'+
'<param name="quality" value="high">'+
'<embed src="http://' + cfg.host + '/static/flash/clock.swf?hours=' + this.data('H') + '&minutes=' + this.data('i') + '&sec=' + this.data('s') + '" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="70" height="25"></embed>'+
'</object>'
);
}else{
$('#timeStemp').html('').css('display','none');
}
},
onlinebtnsel:function(id) {
var i = 1;
while(i <= this.onbtn_id) {
$('#onbtn_'+i).removeClass('onbtn_1');
$('#onbtn_'+i).removeClass('onbtn_2');
$('#onbtn_'+i).removeClass('onbtn_3');
$('#onbtn_'+i).addClass('onbtn_2');
i++;
}
$('#onbtn_'+id).removeClass('onbtn_2');
$('#onbtn_'+id).addClass('onbtn_1');
},
onbtn_id:0,
onlinebtn:function(title) {
this.onbtn_id++;
var stl = 1;
if(this.onbtn_id > 1) {
stl = 2;
}
var html = '<span id="onbtn_' + this.onbtn_id + '" onclick="GameEngine.onlinebtnsel('+this.onbtn_id+')" class="onbtn_' + stl + '" title="' + title + '">'+
'<img src="http://' + cfg.img + 'images/oico' + this.onbtn_id + '.png" width="38" height="29">' +
'</span>';
$('#omnav').html( $('#omnav').html() + html );
},
actSec:[false, 0, 'stop', 0, {}],
addAction:function( name, value, timeDelete ) {
this.actSec[4][name] = value;
if(timeDelete > 0) {
setTimeout(function(){ GameEngine.deleteAction(name); },1000*timeDelete);
}
},
deleteAction:function( name ) {
delete this.actSec[4][name];
},
tnln:function(n,t) {
if(t == true) {
return '<span class="rstmn rstmn'+n+'"></span>';
}else{
return '<small>' + n + '</small>';
}
},
timeNowLook:function() {
var html = '', rstime = '', rsmenu = '', rsh = '', rsm = '', rss = '';
rsh = this.data('H');
if(rsh < 10) {
//rsh = [0,rsh];
}
rsm = this.data('i');
if(rsm < 10) {
//rsm = [0,rsm];
}
rss = this.data('s');
if(rss < 10) {
//rss = [0,rss];
}
rsh = this.tnln(rsh[0],true) + '' + this.tnln(rsh[1],true);
rsm = this.tnln(rsm[0],true) + '' + this.tnln(rsm[1],true);
rss = this.tnln(rss[0],false) + '' + this.tnln(rss[1],false);
rstime = '<span class="rstm">' + rsh + '<span class="rstmn rstmnrz"></span>' + rsm + '</span><span class="rstmsec">' + rss + '</span>';
rsmenu = '<div class="rsmn" align="center"><font color="red">server</font> time</div>';
html = '<table class="rsTimeNow" width="70" height="25" border="0" cellspacing="0" cellpadding="0">'+
'<tr>'+
'<td>'+
'<table width="70" border="0" cellspacing="0" cellpadding="0">'+
'<tr>'+
'<td height="20" align="left">'+
rstime+
'</td>'+
'</tr>'+
'<tr>'+
'<td height="5">'+
rsmenu+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'</tr>'+
'</table>';
$('#timeNowLook').html( html );
setTimeout('GameEngine.timeNowLook()',500);
},
actSecTimer:null,
actionSecondStart:function() {
//window.ref = setInterval(function(){ GameEngine.actionSecond('second'); },1000);
/*$(window).everyTime(1000, 'timerAction', function(i) {
GameEngine.actionSecond('second');
});*/
},
actionSecond:function(type) {
//clearInterval(window.ref);
if( type != 'stop' && type != 'pause' ) {
//Выполняем действия каждую секунду
var i = 0;
var widthRange = {'test':'test2','test3':4}; //массив
for (var key in this.actSec[4]) {
if (key === 'length' || !this.actSec[4].hasOwnProperty(key)) continue;
var value = this.actSec[4][key];
value();
//eval( value );
}
delete key;
delete value;
}
if( ( type == 'stop' || type == 'start' || type == 'pause' ) && this.actSec[2] != type ) {
this.actSec[2] = type;
}
//this.actionSecondStart();
},
error:function(v) {
/*
Функция вывода ошибок
*/
alert(v);
},
c:function(v) {
/*
мини-вариант функции this.console
*/
this.console(v);
},
console:function(v) {
/*
Добавление данных в консоль
*/
date = new Date();
console.log("["+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()+"] "+v);
},
fm:function( v , e) {
if (!e) e = window.event;
if( v == 'onclick' ) {
if( chat.context_open == true ) {
chat.contextmenu_close();
}
if( chat.context_global_open == true ) {
chat.contextmenu_global_close();
}
}else if( v == 'contextmenu' ) {
if( chat.context_open == true ) {
//chat.contextmenu_close();
}
if( chat.context_global_open == true ) {
//chat.contextmenu_global_close();
}
}else if( v == 'contextmenu_main' || v == 'contextmenu_chat' || v == 'contextmenu_online' ) {
v = v.replace('contextmenu_','');
chat.contextMenuGlobal( v , e);
}
},
merge_arrays:function(arr) {
var merged_array = arr;
for (var i = 1; i < arguments.length; i++) {
merged_array = merged_array.concat(arguments[i]);
}
return merged_array;
},
post_date:['',{},0],
post:function(date, only) {
//Какое-то обновление информации :)
if( only == null ) {
var arr = [
'',
$.extend(date[1],this.post_date[1]),
function(data) {
if(typeof(date[2])=='string') {
//eval(date[2]+'(data)');
eval('GameEngine.post_back(data,"'+date[2]+'",false)');
if( GameEngine.post_date[2] != 0 ) {
//eval(GameEngine.post_date[2]+'(data)');
eval('GameEngine.post_back(data,"'+GameEngine.post_date[2]+'",false)');
}
}else{
//eval(date[2][0]);
eval('GameEngine.post_back(data,\''+date[2][0]+'\',true)');
}
}
];
}else{
var arr = ['',date[1],date[2]];
}
//Параметры версий
if( !arr[1]['version'] ) {
arr[1]['version'] = this.version();
}else if( arr[1]['version'] == 'delete' ) {
delete arr[1]['version'];
}
$.post(date[0],arr[1],arr[2]);
this.post_date = ['',{},0];
},
core:function(data) {
//Обработка событий ядра
},
post_back:function(data,fx,cl) {
if( typeof(data) == 'string' ) {
da = $.parseJSON( data );
//Проводим операции
if( da['core'] != undefined) {
this.core(da['core']);
if( da['core']['back_arr'] == true ) {
//Возвращаем массив
data = '[' + this.to_array( da ) + ']';
}
}
delete da;
}
if( cl == false ) {
eval(fx+'(data)');
}else{
eval(fx);
}
},
to_array:function (obj) {
var arr = [];
var i = 0;
while( i > -1 ) {
if(obj[i] == undefined) {
i = -2;
}else{
//arr += '['+obj[i]+'],';
if(typeof(obj[i]) == 'number') {
arr[i] = obj[i];
}else{
arr[i] = '['+obj[i]+']';
}
}
i++;
}
//arr = arr.substring(0, arr.length - 1);
return arr;
},
trim:function(s) {
return this.rtrim(this.ltrim(s));
},
ltrim:function(s) {
return s.replace(/^\s+/, '');
},
rtrim:function(s) {
return s.replace(/\s+$/, '');
},
str_replace:function ( search, replace, subject ) {
if(!(replace instanceof Array)){
replace=new Array(replace);
if(search instanceof Array){
while(search.length>replace.length){
replace[replace.length]=replace[0];
}
}
}
if(!(search instanceof Array))search=new Array(search);
while(search.length>replace.length){
replace[replace.length]='';
}
if(subject instanceof Array){
for(k in subject){
subject[k]=str_replace(search,replace,subject[k]);
}
return subject;
}
for(var k=0; k<search.length; k++){
var i = subject.indexOf(search[k]);
while(i>-1){
subject = subject.replace(search[k], replace[k]);
i = subject.indexOf(search[k],i);
}
}
return subject;
},
timeSdvig:0,
timeReson:0,
timeSd:function( time ) {
this.timeSdvig = this.timenow();
this.timeReson = time;
},
timenow:function(){
//return ( parseInt(new Date().getTime()/1000));
return parseInt( this.timeReson + ( parseInt(new Date().getTime()/1000) - this.timeSdvig ) );
},
px:function( v ) {
return parseInt( ( v ).replace( "px", "" ) );
},
divxyBanned:function( obj ) {
//Блокировка элемента, если он выходит за пределы окна обзора
var obj = $(obj);
var bnpx = [25,33,3,1];
//var win = this.getPageSize();
//По Y
if( obj.height() + this.px( obj.css('top') ) + bnpx[1] > $('#fm').height() ) {
obj.css({'top':( $('#fm').height() - bnpx[1] - obj.height() )+'px'});
}else if( this.px( obj.css('top') ) - bnpx[0] < 0 ) {
obj.css({'top':( bnpx[0] )+'px'});
}
//По X
if( obj.width() + this.px( obj.css('left') ) + bnpx[2] > $('#fm').width() ) {
obj.css({'left':( $('#fm').width() - bnpx[2] - obj.width() )+'px'});
}else if( this.px( obj.css('left') ) - bnpx[3] < 0 ) {
obj.css({'left':( bnpx[3] )+'px'});
}
},
getPageSize:function(){
var xScroll, yScroll;
if (window.innerHeight && window.scrollMaxY) {
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
} else if (document.documentElement && document.documentElement.scrollHeight > document.documentElement.offsetHeight){ // Explorer 6 strict mode
xScroll = document.documentElement.scrollWidth;
yScroll = document.documentElement.scrollHeight;
} else { // Explorer Mac...would also work in Mozilla and Safari
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}
var windowWidth, windowHeight;
if (self.innerHeight) { // all except Explorer
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
} else if (document.body) { // other Explorers
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}
// for small pages with total height less then height of the viewport
if(yScroll < windowHeight){
pageHeight = windowHeight;
} else {
pageHeight = yScroll;
}
// for small pages with total width less then width of the viewport
if(xScroll < windowWidth){
pageWidth = windowWidth;
} else {
pageWidth = xScroll;
}
return [pageWidth,pageHeight,windowWidth,windowHeight];
},
data:function(format,UNIX_timestamp){
if(UNIX_timestamp == null) {
UNIX_timestamp = this.timenow();
}
var a = new Date(UNIX_timestamp*1000);
var months = ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'];
var year = a.getFullYear();
var month = a.getMonth();
var date = a.getDay();
var hour = a.getHours();
var min = a.getMinutes();
var sec = a.getSeconds();
var time = format;
month += 1;
if(date < 10) {
date = '0'+date;
}
if(month < 10) {
month = '0'+month;
}
if(hour < 10) {
hour = '0'+hour;
}
if(min < 10) {
min = '0'+min;
}
if(sec < 10) {
sec = '0'+sec;
}
time = this.str_replace('d',''+date,time);
time = this.str_replace('m',''+month,time);
time = this.str_replace('Y',''+year,time);
time = this.str_replace('H',''+hour,time);
time = this.str_replace('i',''+min,time);
time = this.str_replace('s',''+sec,time);
return time;
},
loginLook:function(id,login,level,clan,align,type) {
var html = '';
if( type == 1 ) {
html = '<a class="cp">' + login + '</a>';
}else if( type == 2 ) {
html = '<b>' + login + '</b>';
}
html += ' [' + level + ']';
html += '<a target="_blank" title="Инф. о ' + login + '" href="http://' + cfg.host + '/userinfo/' + id + '"><img src="http://' + cfg.img + 'images/inf.gif" width="12" height="11"></a>';
return html;
}
};
function showtable(id) {
hidesel(id);
hidemenu(0);
document.getElementById('menu'+id).style.display = '';
}
function hidemenu (time) {
for (var i=1;i<=4;i++) {
document.getElementById('menu'+i).style.display = 'none';
}
}
function hidesel (id) {
for (var i=1;i<=5;i++) {
if (i!=id) {document.getElementById('el'+i).style.backgroundColor='';document.getElementById('el'+i).style.color='';}
}
}