187 lines
4.8 KiB
JavaScript
187 lines
4.8 KiB
JavaScript
function getFormatedTime (time)
|
||
{
|
||
if (!time)
|
||
return 0;
|
||
|
||
var m = parseInt(time / 60);
|
||
time %= 60;
|
||
var s = time;
|
||
if (m == 0) return s+' cек.';
|
||
else return m+' мин. '+s+' cек.';
|
||
}
|
||
|
||
function strip_sc (str)
|
||
{
|
||
str = str.replace(/^\s+/, '');
|
||
str = str.replace(/\s*,\s*/g, ',');
|
||
str = str.substr(0, str.length - 1);
|
||
return str;
|
||
}
|
||
|
||
function trim (str)
|
||
{
|
||
str = str.replace(/^\s*/, '');
|
||
str = str.replace(/\s*$/, '');
|
||
return str;
|
||
}
|
||
|
||
function AddTo (login, bPrivate)
|
||
{
|
||
var c = frames.main.Hint3Name;
|
||
if (c != null && c != "")
|
||
{
|
||
$('#'+c+', [name='+c+']', main.document).val(login).focus();
|
||
return;
|
||
}
|
||
var txt = $('#text', talk.document).val();
|
||
var txtreg = txt;
|
||
var to = '';
|
||
var private = '';
|
||
var reg1 = new RegExp("(private|to)\\s*\\[(.+?)\\]", "");
|
||
while (res = txtreg.match(reg1))
|
||
{
|
||
action = res[1];
|
||
pr = res[2];
|
||
txtreg = txtreg.replace (reg1, '');
|
||
if (action == 'private')
|
||
{
|
||
pr_ar = pr.split(/,/);
|
||
for (i = 0; i < pr_ar.length; i++)
|
||
{
|
||
pr_ar[i] = trim(pr_ar[i]);
|
||
var slogin = pr_ar[i].replace (/([\^.*{}$%?\[\]+|\/\(\)])/g, "\\$1");
|
||
prReg = new RegExp (slogin+",", "");
|
||
if (!private.match(prReg))
|
||
private += pr_ar[i]+',';
|
||
}
|
||
}
|
||
if (action == 'to')
|
||
{
|
||
pr_ar = pr.split(/,/)
|
||
for (i = 0; i < pr_ar.length; i++)
|
||
{
|
||
pr_ar[i] = trim(pr_ar[i]);
|
||
var slogin = pr_ar[i].replace(/([\^.*{}$%?\[\]+|\/\(\)])/g, "\\$1");
|
||
prReg = new RegExp(slogin+",", "");
|
||
if (!to.match(prReg))
|
||
to += pr_ar[i]+',';
|
||
}
|
||
}
|
||
}
|
||
to = strip_sc (to);
|
||
private = strip_sc (private);
|
||
var to_str = ','+to+',';
|
||
var private_str = ','+private+',';
|
||
if (private)
|
||
private = 'private ['+private+'] ';
|
||
if (to)
|
||
to = 'to ['+to+'] ';
|
||
txtreg = txtreg.replace (/^\s+/, '');
|
||
txt = private + to + txtreg;
|
||
var ntxt = 'to ['+login+']';
|
||
var i = txt.indexOf (ntxt);
|
||
if (i != -1)
|
||
txt = txt.substr (0, i) + 'private ['+login+'] '+ txt.substr (i+ntxt.length, txt.length);
|
||
else
|
||
{
|
||
var ntxt2 = 'private ['+login+']';
|
||
i = txt.indexOf (ntxt2);
|
||
if (i != -1)
|
||
txt = txt.substr (0, i) + 'to ['+login+'] '+ txt.substr (i+ntxt2.length, txt.length);
|
||
else
|
||
{
|
||
var slogin = login.replace (/([\^.*{}$%?\[\]+|\/\(\)])/g, "\\$1");
|
||
reg = new RegExp (","+slogin+",", "");
|
||
flag = 0;
|
||
if (!private_str.match(reg) && txt.match(/private\s*\[.*\]/))
|
||
{
|
||
txt = txt.replace (/private\s*\[(.+)\]/, "private ["+login+",$1]");
|
||
flag = 1;
|
||
}
|
||
if (!to_str.match(reg) && txt.match(/to\s*\[.*\]/))
|
||
{
|
||
txt = txt.replace (/to\s*\[(.+)\]/, "to ["+login+",$1]");
|
||
flag = 1;
|
||
}
|
||
if (flag == 0 && !txt.match (/(to|private)\s*\[.*\]/))
|
||
txt = (( bPrivate ) ?'private ['+login+'] ' :'to ['+login+'] ') + txt;
|
||
}
|
||
}
|
||
$('#text', talk.document).val(txt).focus();
|
||
}
|
||
|
||
function AddToPrivate (login)
|
||
{
|
||
var s = $('#text', talk.document).val();
|
||
var reg2 = new RegExp ("private(\\s*)\\[(.*?)\\]", "");
|
||
var cs = s.replace (reg2, "private$1[,$2,]");
|
||
var slogin = login.replace (/([\^.*{}$%?\[\]+|\/\(\)])/g, "\\$1");
|
||
var reg = new RegExp ("private\\s*\\[.*,\\s*"+slogin+"\\s*,.*\\]", "");
|
||
var result = '';
|
||
var reg3 = new RegExp ("private\\s*\\[(.*?)\\]", "");
|
||
while (res = s.match(reg3))
|
||
{
|
||
result += res[1]+',';
|
||
s = s.replace (reg3, '');
|
||
}
|
||
result = result.replace (/,$/, '');
|
||
var prar = result.split (',');
|
||
for (i = 0; i < prar.length; i++)
|
||
{
|
||
prar[i] = prar[i].replace (/^\s+/, '');
|
||
prar[i] = prar[i].replace (/\s+$/, '');
|
||
}
|
||
var str = prar.join (', ');
|
||
if (str)
|
||
login += ', ';
|
||
space = ''
|
||
if (!s.match(/^\s+/))
|
||
space = ' ';
|
||
if (!cs.match(reg))
|
||
s = 'private ['+login+str+']' + space + s;
|
||
else
|
||
s = 'private ['+str+']' + space + s;
|
||
$('#text', talk.document).val(s).focus();
|
||
}
|
||
|
||
function linkAction (action)
|
||
{
|
||
frames.main.location.href = "main.php?action="+action;
|
||
}
|
||
|
||
function exploder (data)
|
||
{
|
||
if (data == '' || data == 'ajax_error')
|
||
location.href = 'index.php';
|
||
|
||
var variable = data.split('$$');
|
||
|
||
return variable;
|
||
}
|
||
|
||
function checkGame ()
|
||
{
|
||
var link = location.href.split("/");
|
||
if (link[link.length - 1] != 'game.php')
|
||
location.href = 'index.php';
|
||
try
|
||
{
|
||
var gframes = new Array($('[name=msg]').attr('src'), $('[name=user]').attr('src'), $('[name=talk]').attr('src'));
|
||
if (gframes[0] != 'msg.php' || gframes[1] != 'users.php' || gframes[2] != 'talk.php')
|
||
location.href = 'index.php';
|
||
}
|
||
catch(e){location.href = 'index.php';}
|
||
}
|
||
|
||
function cleanChat ()
|
||
{
|
||
$('#mes', msg.document).html('');
|
||
}
|
||
|
||
function exit ()
|
||
{
|
||
frames.main.dialogconfirm('Подтверждение', "top.linkAction('exit')", '<center>Вы уверены что хотите выйти из игры?</center>', 0);
|
||
}
|
||
|
||
var time_to_go = 0;
|
||
var city = ''; |