var sml_img = { };

Element.prototype.remove = function() {
  this.parentElement.removeChild(this);
};

NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
  for(var i = 0, len = this.length; i < len; i++) {
    if(this[i] && this[i].parentElement) {
      this[i].parentElement.removeChild(this[i]);
    }
  }
};

var chat = {
	key:'',
	room:'',
	count:0,
	time:0,
	t:null, //timer
	t2:null, //timer 2
	t_all:{}, //time molch
	r:0,
	g:0,
	rtime:37,
	ct:{ '-1':0, '1':15, '2':30, '3':60, '4':300},
	saveData:null,
	msg_id:0,
	nrg:0,
	nozpros:0,
	newmsg:0,
	sound:0,
	translit:0,
	filter:0,
	globalMsg:0,
	ignoreList:{x:0,nms:[]},
	citySys:0,
	inObj:null,

    ignore:function(login)
	{
		if(this.ignoreList[login]!=undefined)
		{
			if($('#ignr_alu').attr('id')!=undefined)
			{
				$('#ignr_u_'+this.ignoreList[login]).remove();
			}
			delete this.ignoreList.nms[this.ignoreList[login]];
			delete this.ignoreList[login];	
			//msg
			
		}else{ 
			this.ignoreList.x++;
			this.ignoreList[login] = this.ignoreList.x;
			this.ignoreList.nms[this.ignoreList.x] = login;
			if($('#ignr_alu').attr('id')!=undefined)
			{
				$('#ignr_alu').html($('#ignr_alu').html()+'<div id="ignr_u_'+this.ignoreList.x+'">    <b>'+login+'</b> <a target="_blank" href="/inf.php?login='+login+'"><img src="//'+top.c.img+'/i/inf_capitalcity.gif" title="Инф. о '+login+'"></a>   <small><a href="javascript:void(0)" onclick="chat.ignorUn('+this.ignoreList.x+')">Clear</a></small>  </div>');
			}
			//msg
			
		}
	},
	
    getRandom:function(a, b){
	 
		return a + ( (b-a) * Math.random() );
	 
	},
	ignorUn:function(x)
	{
		$('#ignr_u_'+x).remove();
		this.ignore(this.ignoreList.nms[x]);
	},
	ignorListOpen:function()
	{
		var date = '',i = 0;
		var j = 1;
		while(j<=this.ignoreList.x)
		{
			if(this.ignoreList[this.ignoreList.nms[j]]!=undefined)
			{
				date += '<div id="ignr_u_'+j+'">    <b>'+this.ignoreList.nms[j]+'</b> <a target="_blank" href="/inf.php?login='+this.ignoreList.nms[j]+'"><img src="//'+top.c.img+'/i/inf_capitalcity.gif" title="Инф. о '+this.ignoreList.nms[j]+'"></a>   <small><a href="javascript:void(0)" onclick="chat.ignorUn('+j+')">Clear</a></small>  </div>';
			}
			j++;
		}
		win.add('ignorListWin','Список игнорируемых','<div id="ignr_alu">'+date+'</div>',{},0,1,'min-width:200px;');
		delete date;
	},
	addSmile:function(id)
	{
		$('#textmsg').val($('#textmsg').val()+' :'+id+': ');
		$('#textmsg').focus();
	},
	lookSmiles:function()
	{
		if($('#chbtn8').attr('class')=='getInstance cp chatBtn8_1')
		{
			$('#ttSmiles').css('display','');
			$('#chbtn8').attr('class','getInstance cp chatBtn8_2');
		}else{
			$('#ttSmiles').css('display','none');
			$('#chbtn8').attr('class','getInstance cp chatBtn8_1');
		}
	},
	filterMsg:function()
	{
		if($('#chbtn1').attr('class')=='getInstance cp chatBtn1_1')
		{
			$('#chbtn1').attr('class','getInstance cp chatBtn1_2'); this.filter = 1;
		}else{
			$('#chbtn1').attr('class','getInstance cp chatBtn1_1'); this.filter = 0;
		}
	},
	systemMsg:function()
	{
		if($('#chbtn4').attr('class')=='getInstance cp chatBtn4_1')
		{
			$('#chbtn4').attr('class','getInstance cp chatBtn4_2'); this.citySys = 1; $.cookie('citySys',1);
		}else{
			$('#chbtn4').attr('class','getInstance cp chatBtn4_1'); this.citySys = 0; $.cookie('citySys',0);
		}
	},
	soundChat:function()
	{
		if($('#chbtn7').attr('class')=='getInstance cp chatBtn7_1')
		{
			$('#chbtn7').attr('class','getInstance cp chatBtn7_2'); this.sound = 1;
		}else if($('#chbtn7').attr('class')=='getInstance cp chatBtn7_2'){
			$('#chbtn7').attr('class','getInstance cp chatBtn7_3'); this.sound = 2;
		}else{
			$('#chbtn7').attr('class','getInstance cp chatBtn7_1'); this.sound = 0;
		}
	},
	translitChat:function()
	{
		if($('#chbtn6').attr('class')=='getInstance cp chatBtn6_1')
		{
			$('#chbtn6').attr('class','getInstance cp chatBtn6_2'); this.translit = 1;
		}else{
			$('#chbtn6').attr('class','getInstance cp chatBtn6_1'); this.translit = 0;
		}
	},subValSend:'',
	subSend:function()
	{
		if($('#textmsg').val()!='')
		{
			if($('#textmsg').val()!=this.subValSend)
			{
				if(this.nozpros == 0) {
				this.trmb();
				$.post('online.php?r'+c.rnd+'&cas'+((new Date().getTime()) + Math.random()),{
				    msg:$('#textmsg').val(),key:this.key,mid:this.msg_id,rndo:c.rnd},
                    function(data){ chat.clearText();
                    chat.fc(); chat.genchatData(data,1);
                    });
				this.subValSend = $('#textmsg').val();
				this.nozpros=1;
				setTimeout('chat.subValSend="";chat.nozpros=0;',1000);
				} else {
				    console.log('nozpros != 0');
				}
			} else {
			  console.log('No text input = ""');
			}
		} else {
		  console.log('No text input');
		}
	},
	addto:function(login, type2) {
		var loginaddT = login;
		var s = '';
		if($('#'+$(this.inObj).attr('id')).attr('id') == undefined) {		
			$('#textmsg').focus();
			s = $('#textmsg').val();
		} else {
			$(this.inObj).focus();
		}
		var reg555 = new RegExp("private\\s*\\[(.*?)\\]","");
		var reg551 = new RegExp("to\\s*\\[(.*?)\\]","");
		var test1 = s.match(reg555);
		if(s.match(reg555) == null) {
			type = "to";
		} else if(s.match(reg551) == null) {
			type = "private";
		}
		var type3 = 'to';	
		var reg2 = new RegExp(""+type+"(\\s*)\\[(.*?)\\]","");
		var cs = s.replace(reg2,""+type+"$1[,$2,]");
		var slogin = login.replace(/([\^.*{}$%?\[\]+|\/\(\)])/g,"\\$1");
		var reg = new RegExp(""+type+"\\s*\\[.*,\\s*"+slogin+"\\s*,.*\\]","");
		var result = '';
		var reg3 = new RegExp(""+type+"\\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 = ' ';
		var prob = '';
		if($('#'+$(this.inObj).attr('id')).attr('id') == undefined && (this.inObj == null || $('#main').contents().find('#'+this.inObj.id).attr('id') == undefined))
		{
			if (!cs.match(reg))
			{
				if(type2=='to')
				{
					if(test1!=null)
					{
						type2 = 'private';
				}
				}
				s = type2+' ['+prob+''+login+str+''+prob+']'+space+s;
			} else {				
				if(type3 == 'to') {
					type3 = "private";
				}
				s = type3+' ['+prob+''+str+''+prob+']'+space+s;
			}
		} else {
			s = login+str;
		}
		
		if(this.inObj != null && $('#main').contents().find('#'+this.inObj.id).attr('id') != undefined) {
			$('#main').contents().find('#'+this.inObj.id).val(s);
		} else if($('#'+$(this.inObj).attr('id')).attr('id') == undefined) {		
			$('#textmsg').val(s);
		} else {
			$(this.inObj).val(s);
		}
	},
	clearText:function()
	{
		$('#textmsg').val('');
	},
	reflesh:function()
	{
		this.time = 0;
		this.testTimer(true);
	},
	reMoney:function()
	{
		$('#moneyGM').html(top.c.money+' кр.');
	},
	btl:0
	,
	testTimer:function(n)
	{
		clearTimeout(this.t);
		/*if(top.c.money < 100)
		{
			$('#moneyGM').height('50px');
		}else if(top.c.money < 1000)
		{
			$('#moneyGM').height('70px');
		}else{
			$('#moneyGM').height('100px');
		}*/
		if($.cookie('btl') != this.btl) {
			if($.cookie('btl') > 0) {
				this.sendSound(2);
				if(top.frames['main'].smnpty != undefined) {
					
				}else{
					top.frames['main'].location.href="main.php";
				}
			}
			this.btl = $.cookie('btl');
		}
		if(this.rtime!=this.ct[$.cookie('chatCfg0')] && this.ct[$.cookie('chatCfg0')]!=undefined)
		{
			this.rtime = this.ct[$.cookie('chatCfg0')];
			if(this.time>this.rtime)
			{
				this.time = this.rtime;
			}
		}
		if(this.rtime>=10 || this.r==0)
		{
			if(this.time < 1)
			{
				var aot = {
					0:0,
					1:1,
					2:0
				};
				if($('#chcf10').attr('checked')==true)
				{
					aot[2] = 1;
				}
				if($('#autoRefOnline').attr('checked')==true || this.r==0 || n!=false)
				{
					aot[0] = 1;
				}
				//alert('chat.reflesh.undefined()');
				if(this.nozpros == 0) {
					$.getJSON('online.php?r'+c.rnd+'&cas'+((new Date().getTime()) + Math.random()),
            {
              key:this.key,
              mid:this.msg_id,
              r1:aot[0],
              r2:aot[1],
              r3:aot[2],
              rndo:c.rnd
            },
            function(data){
              if(data.rnd!=null){
                if(data.telegram > 0){
                  $('#mini_sms').show();
                }else{
                  $('#mini_sms').hide();
                }
                chat.genchatData(data);
                if(data.key!=undefined){
                  chat.saveData=data;
                }
                this.g++;
                c.rnd = data.rnd;
              }
            });
					this.nozpros=1;
					setTimeout('chat.nozpros=0;',1000);
				}
				this.time = this.rtime; this.r++;
			}else{
				this.time--;				
			}
			this.t = setTimeout('chat.testTimer(false);clearTimeout(this.t);',1000);
		}
	},mlch:{},
	fc:function()
	{
		$('#textmsg').focus();
	},
	timeOut:function(v)
	{
        		
		msPerDay = '';
		
		dt = new Date(); 
   		dt.setTime((v-c.time)*1000); 
    	
		m1   = dt.getUTCMonth();
		d1   = dt.getUTCDay();
		h1   = dt.getUTCHours();
		min1 = dt.getUTCMinutes();
		sec  = dt.getUTCSeconds();

		if(m1>0)
		{
			msPerDay = m1+' мес. ';
		}
		if(d1>0 && Math.floor((v-c.time)/(60*60*24)) == d1)
		{
			msPerDay = d1+' д. ';
		}
		if(h1>0)
		{
			msPerDay += h1+' ч. ';
		}
		if(min1>0)
		{
			msPerDay += min1+' мин. ';
		}
		if(sec>0 && msPerDay != '')
		{
			msPerDay += sec+' сек. ';
		}
		if(msPerDay == '')
		{
			msPerDay = 'меньше минуты.';
		}
		
		delete m1;
		delete d1;
		delete h1;
		delete min1;
		delete sec;
		
		return msPerDay;
	},
	deleteMessage:function(id,fc)
	{
		//$('#msg_'+id).hide('slow'); setTimeout("$('#msg_'+id).remove();",1000);
		if(fc == 1) {
			top.msgdeleted(id);
		}else{
			$('#msg_'+id).remove();
			$('#msg_'+id+'_sys').remove();
			if(top.c.admin>0)
			{
				$.post('online.php?jack='+c.rnd+'&cas'+((new Date().getTime()) + Math.random()),{delMsg:id});
			}
		}
	},
	clear:function()
	{
		if($('#textmsg').val()=='')
		{
			if(confirm('Очистить окно чата?'))
			{
				if(top.cb_date[top.cb_select] == 4 || top.cb_date[top.cb_select] == 5) {
					$('#canal'+top.cb_date[top.cb_select]).html('');
					$('#textmsg').focus();
				}
			}
		}else{
			$('#textmsg').val('');
		}
	},
	scrollNow:function(id)
	{
		
	},
	msgcount:0,
	sendMsg:function(data)
	{
		var msg_see = 1;
        if(!data) { console.log('No data [0]'); } else { console.log(data); }
		if(data[0]=='new')
		{
			data[0] = 'new_msg_'+this.newmsg; this.newmsg++;
		}
		if(data[2] == 'delete')
		{
			this.deleteMessage(data[0]);
		}else if(data['d']>0)
		{
			this.deleteMessage(data['d']);
		}else if(data['s']>0)
		{
			this.deleteMessage(data['s']);
		}else if(data[0]!=undefined && document.getElementById('msg_'+data[0]) == undefined)
		{
			var msg  = '';
				if(data[0]!=0)
				{
					if(data[3]!='')
					{
						msg += '[<a href="javascript:void(0)" oncontextmenu="top.infoMenu(\''+data[3]+'\',event,\'chat\'); return false;" onClick="chat.addto(\''+data[3]+'\',\'to\')">'+data[3]+'</a>]';
						
					}
					if(data[4]!='')
					{
						var forYou = 0;
						//тот кто писал
						
						//кому написали, разбор массива
						if(data[4]!='')
						{
							var to = '',to2 = '',arr = data[4].split(','),i = 0,vl = '';								
							//тем кому писали
							while(i!=-1)
							{
								if(arr[i]!=undefined)
								{
									vl = this.trim(arr[i]);
									if(vl.toLowerCase() == c.login.toLowerCase())
									{
										forYou++;
									}
									if(vl.toLowerCase() == c.login.toLowerCase())
									{
										vl = this.trim(data[3]);
									}
									if(i>0)
									{
										to += ', ';
										to2 += ', ';
									}
									if(data[3]!='')
									{
										to += '<span style="cursor:pointer" onclick="chat.addto(\''+vl+'\',\'private\');" oncontextmenu="top.infoMenu(\''+this.trim(arr[i])+'\',event,\'chat\'); return false;">'+this.trim(arr[i])+'</span>';
										if(this.trim(arr[i].toLowerCase()) != c.login.toLowerCase())
										{
											to2 += this.trim(arr[i]);
										}else{
											if(data[2]==2)
											{
												to2 += this.trim(arr[i]);
											}else{
												to2 += this.trim(vl);
											}
										}
									}
								}else{
									i = -2;
								}
								i++;
							}
						}

						if(data[2]==6)
						{
							//личная системка, внимание
							msg += ' <span style="color:red">Внимание!</span> ';
						}else if(data[2]==2)
						{
							if(forYou>0)
							{
								msg += ' <span style="color:'+data[6]+'"><b>to ['+to2+']</b></span>';
							}else{
								msg += ' <span style="color:'+data[6]+'">to ['+to2+']</span>';
							}
						}else if(data[2]==3)
						{
							if(this.trim(data[3].toLowerCase()) == c.login.toLowerCase())
							{
								forYou++;
							}
							if(data[3]!='')
							{
								if(data[4]=='klan' && data[2]==3)
								{
									msg += ' <span class="klan"><span style="cursor:pointer" onclick="chat.multiaddto(\'klan\',\'private\');">private [klan]</span></span>';
								}else if(data[4]=='paladins' && data[2]==3)
								{
									msg += ' <span class="klan"><span style="cursor:pointer" onclick="chat.multiaddto(\'paladins\',\'private\');">private [paladins]</span></span>';
								}else if(data[4]=='tarmans' && data[2]==3)
								{
									msg += ' <span class="klan"><span style="cursor:pointer" onclick="chat.multiaddto(\'tarmans\',\'private\');">private [tarmans]</span></span>';
								}else{
									
									msg += ' <span class="private"><span style="cursor:pointer" onclick="chat.multiaddto(\''+to2+'\',\'private\');">private [ </span>'+to+'<span style="cursor:pointer" onclick="chat.multiAddto(\''+to2+'\',\'private\');"> ]</span></span>';
								}
							}
						}						
					}
					msg += ' ';
				} else {
                  console.log('No data');
				}
				
				data[5] = this.replaceAll(data[5],"[s1;]",'"');
				data[5] = this.replaceAll(data[5],"[s2;]",'\'');
				data[5] = this.replaceAll(data[5],"[s3;]",'<');
				data[5] = this.replaceAll(data[5],"[s4;]",'>');
				
				
				
				if(data[6]!='Black' && data[6]!='')
				{
					msg += '<font color="Black">'+data[5]+'</font>';
				}else{
					msg += data[5];
				}

				
				if(data[1]>0)
				{
					var td = new Date((parseInt(data[1]))*1000);
					td = [td,null,null,null];
					td[1] = td[0].getHours();
					td[2] = td[0].getMinutes();
					td[3] = td[0].getSeconds(); 
					td[4] = td[0].getDay(); 
					td[5] = td[0].getMonth();
					td[6] = td[0].getYear();
					var j = 1;while(j<6){if(td[j]<10){td[j]='0'+td[j];}j++;}
					var cls = '';
					if(forYou>0)
					{
						cls = 'date2';
					}else{
						cls = 'date';
					}
					var msg22  = '<span ';
					if(c.admin > 0) {
						msg22 += 'oncontextmenu="chat.deleteMessage('+data[0]+');return false;" ';	
					}else{
						msg22 += 'oncontextmenu="chat.deleteMessage('+data[0]+',1);return false;" ';
					}
					if( data[8] == 2 ) {
						//msg22 += 'class="'+cls+'">'+td[4]+'.'+td[5]+'.'+(td[6]+1900)+' '+td[1]+':'+td[2]+'</span> ';
						msg22 += 'class="'+cls+'">'+data[14]+'</span> ';
					}else{
						//msg22 += 'class="'+cls+'">'+td[1]+':'+td[2]+'</span> ';
						msg22 += 'class="'+cls+'">'+data[13]+'</span> ';
					}
					msg = msg22+msg;
				}
				
			this.msgcount++;
						
			msg = '<span id="msg_'+data[0]+'">'+msg+'<br /></span>';			
			
			if(forYou > 0 && this.sound > 0 && this.trim(data[3].toLowerCase()) != c.login.toLowerCase())
			{
				this.sendSound(1);
			}
			
			if(msg_see == 1)
			{
				if(this.trim(data[3].toLowerCase()) == c.login.toLowerCase() || forYou == 1 || this.filter == 0)
				{
					if( data[9] > 0 ) {
						this.sendSound(data[9]);
					}
					    
                        $('#chat').find('#mes').html(msg
                        );
						//обычное сообщение
						
                        console.log(msg);
						
					
				} else {
				    console.log('N errors');
				}
			} else {
			 console.log('Msg see = '+msg_see+'');
			}
			this.scrollNow(this.msgcount);
			delete forYou;
			delete cls;
			delete msg_see;
			delete msg;
			delete arr;
		} else {
		  console.log('UNNAMED ERROR');
		}
	},
	testKey:function(m,v)
	{
		var i = 0, r = v;
		v = false;
		while(i!=-1)
		{
			if(m[i]!=undefined)
			{
				if(m[i]==r)
				{
					v = i;
					i = -2;
				}
			}else{
				i = -2;
			}
			i++;
		}
		delete r,m;
		return v;
	},
	isNumber:function(s)
	{
		s = !isNaN(s);
		return s;
	},
	testSmile:function(txt)
	{

			txr = txt.split(':');
			var i = 1, j = 0, smid = 0;
			while(i <= txr.length) {
				if( txr[i] != undefined) {
					smid = this.testKey(top.sml,txr[i]);
					imsml = txr[i].split('-');
					if(((smid != false || smid == 0) && this.isNumber(txr[i]) != true) || (imsml != undefined && imsml[0] == '%usersmile%')) {
						if(j < 3 && this.isNumber(top.sml[smid]) != true && (top.sml[smid] != undefined || imsml[0] == '%usersmile%')) {
							if(imsml[0] == '%usersmile%') {
								//txt = txt.replace("\:%usersmile%-"+imsml[1]+"\:",'<img src="//'+top.c.img+'/i/smile/'+(imsml[1].toLowerCase())+'.gif" width="'+top.sml_img[imsml[1]][0]+'" height="'+top.sml[imsml[1]][1]+'" title="Именной смайлик">');
								txt = txt.replace("\:%usersmile%-"+imsml[1]+"\:",'<img src="//'+top.c.img+'/i/smile/'+(imsml[1].toLowerCase())+'.gif" title="Именной смайлик">');
							}else{
								txt = txt.replace("\:"+txr[i]+"\:",'<img src="//'+top.c.img+'/i/smile/'+(txr[i].toLowerCase())+'.gif" style="cursor:pointer" width="'+top.sml[smid+1]+'" height="'+top.sml[smid+2]+'" onclick="chat.addSmile(\''+(txr[i].toLowerCase())+'\')">');
							}
							j++;
						}
					}
				}
				i++;
			}
		//}
		return txt;
	},
	trmb:function()
	{
		if(this.translit==1)
		{
			$('#textmsg').val(this.convert2($('#textmsg').val()));
		}
	},
	replaceAll:function(t,v,s)
	{
		return t.split(v).join(s);
	},
	convert2:function(txt)
	{
		var trn = [];
		trn = txt.split(' ');
		for(var i=0;i<trn.length;i++) {
			if(trn[i].indexOf("//") < 0 && trn[i].indexOf('@') < 0 && trn[i].indexOf("www.") < 0 && !(trn[i].charAt(0)==":" && trn[i].charAt(trn[i].length-1)==":")) {
				if ((i<trn.length-1)&&(trn[i]=="to" || trn[i]=="private")&&(trn[i+1].charAt(0)=="[")) {
					while ( (i<trn.length-1) && (trn[i].charAt(trn[i].length-1)!="]") ) i++;
				} else { trn[i] = this.convert(trn[i]); }
			}
		}
		return trn.join(' ');
	},
	map_en:Array('s`h','S`h','S`H','s`Х','sh`','Sh`','SH`',"'o",'yo',"'O",'Yo','YO','zh','w','Zh','ZH','W','ch','Ch','CH','sh','Sh','SH','e`','E`',"'u",'yu',"'U",'Yu',"YU","'a",'ya',"'A",'Ya','YA','a','A','b','B','v','V','g','G','d','D','e','E','z','Z','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','r','R','s','S','t','T','u','U','f','F','h','H','c','C','`','y','Y',"'"),
	map_ru:Array('сх','Сх','СХ','сХ','щ','Щ','Щ','ё','ё','Ё','Ё','Ё','ж','ж','Ж','Ж','Ж','ч','Ч','Ч','ш','Ш','Ш','э','Э','ю','ю','Ю','Ю','Ю','я','я','Я','Я','Я','а','А','б','Б','в','В','г','Г','д','Д','е','Е','з','З','и','И','й','Й','к','К','л','Л','м','М','н','Н','о','О','п','П','р','Р','с','С','т','Т','у','У','ф','Ф','х','Х','ц','Ц','ъ','ы','Ы','ь'),
	addSm:function(i)
	{
		$('#textmsg').focus();
		top.document.textmsg.value += ' :'+i+': ';		
	},
	convert:function(str)
	{	
		var p1 = new RegExp("private\\s*\\[(.*?)\\]","");
		var t1 = new RegExp("to\\s*\\[(.*?)\\]","");
		var newstr = '';
		if(str.match(p1)!=null)
		{
			newstr = str.match(p1)[0];
			str = str.replace(str.match(p1)[0],'');
		}else if(str.match(t1)!=null)
		{
			newstr = str.match(t1)[0];
			str = str.replace(str.match(t1)[0],'');
		}
		
		for(var i=0;i<this.map_en.length;++i) while(str.indexOf(this.map_en[i])>=0) str = str.replace(this.map_en[i],this.map_ru[i]);
		newstr += str;
		return newstr;
	},
	sendSound:function(s)
	{
		var svolm = 100;
		if(this.sound == 0) {
			svolm = 0;
		}else if(this.sound == 1) {
			svolm = 25;
		}else if(this.sound == 2) {
			svolm = 100;
		}
		var M$ =  navigator.appName.indexOf("Microsoft")!=-1;
		if(!M$ && this.getSwf('Sound').SetVariable == undefined) {
			document.getElementById('Sound2').SetVariable("Volume",svolm);
			document.getElementById('Sound2').SetVariable("Sndplay",s);
		}else{
			window.document["Sound"].SetVariable("Volume", svolm);
			window.document["Sound"].SetVariable("Sndplay", s);
		}
	},
	getSwf:function(val) {
		var M$ =  navigator.appName.indexOf("Microsoft")!=-1;
		return (M$ ? window : document)[val]
	},
	trim:function(s)
	{
		return this.rtrim(this.ltrim(s));
	},	
	ltrim:function(s)
	{
		return s.replace(/^\s+/, ''); 
	},	
	rtrim:function(s)
	{
		return s.replace(/\s+$/, ''); 
	},
	multiaddto:function(users,tp)
	{
		var arr = users.split(',');
		var i = arr.length;
		while(i>=0)
		{
			if(arr[i]!=undefined)
			{
				this.addto(arr[i],tp);
			}
			i--;
		}
	},
	osize:function(obj) {
		var size = 0, key;
		for (key in obj) {
			if (obj.hasOwnProperty(key)) size++;
		}
		return size;
	},
    
    genchatData:function(data,prs)
	{
		if(prs == 1) {
			data = $.parseJSON(data);
		}
		if(data == null && this.saveData!=null)
		{
			data = this.saveData;
			data.js = '';
			data.rn = undefined;
			data.key = undefined;
		}
		//Получаем сообщение
		if(data.msg!=undefined)
		{
			var ms = $.parseJSON(data.msg);
			if(ms['ld']>this.msg_id)
			{
				this.msg_id = ms['ld'];
			}
			var i = 0;
			//while(i <= this.osize(ms.length)+10)
			while(i <= ms['id'])
			{
				if(ms['m'+i]!=undefined)
				{
					this.sendMsg(ms['m'+i]);
				}
				i++;
			}
		}
		//Если есть JS
		if(data.js!='')
		{
			eval(data.js);
		}
		if(data.rnd!=undefined){ c.rnd = data.rnd; }
		if(data.key!=undefined){	this.key = data.key;	}
		
	}
};