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( ''+ ''+ ''+ ''+ '' ); }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 = ''+ '' + ''; $('#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 ''; }else{ return '' + n + ''; } }, 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 = '' + rsh + '' + rsm + '' + rss + ''; rsmenu = '
server time
'; html = ''+ ''+ ''+ ''+ '
'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+ rstime+ '
'+ rsmenu+ '
'+ '
'; $('#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-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 = '' + login + ''; }else if( type == 2 ) { html = '' + login + ''; } html += ' [' + level + ']'; html += ''; 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='';} } }