var rusBig = new Array( "Э", "Ч", "Ш", "Ё", "Ё", "Ж", "Ю", "Ю", "Я", "Я", "А", "Б", "В", "Г", "Д", "Е", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Щ", "Ъ", "Ы", "Ь");
var rusSmall = new Array("э", "ч", "ш", "ё", "ё","ж", "ю", "ю", "я", "я", "а", "б", "в", "г", "д", "е", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "щ", "ъ", "ы", "ь" );

var engRegBig = new Array( /JE/g, /CH/g, /SH/g, /YO/g, /JO/g, /ZH/g, /YU/g, /JU/g, /YA/g, /JA/g, /A/g, /B/g, /V/g, /G/g, /D/g, /E/g, /Z/g, /I/g, /J/g, /K/g, /L/g, /M/g, /N/g, /O/g, /P/g, /R/g, /S/g, /T/g, /U/g, /F/g, /H/g, /C/g, /W/g, /''/g, /Y/g, /'/g);
var engRegSmall = new Array(/je/g, /ch/g, /sh/g, /yo/g, /jo/g, /zh/g, /yu/g, /ju/g, /ya/g, /ja/g, /a/g, /b/g, /v/g, /g/g, /d/g, /e/g, /z/g, /i/g, /j/g, /k/g, /l/g, /m/g, /n/g, /o/g, /p/g, /r/g, /s/g, /t/g, /u/g, /f/g, /h/g, /c/g, /w/g, /''/g, /y/g, /'/g);

var translitinfo="Общие правила транслитерации в интернете\n"+
"А-A, Б-B, В-V, Г-G, Д-D, Е-E, Ё-Je, Ж-Zh, З-Z, И-I, Й-J\n"+
"К-K, Л-L, М-M, Н-N, О-O, П-P, Р-R, С-S, Т-T, У-U, Ф-F\n"+
"Х-H, Ц-C, Ч-Ch, Ш-Sh, Щ-W, Ъ-'', Ы-Y, Ь-', Э-Je, Ю-Ju, Я-Ja\n";


function translit(msg){
for (i=0; i<engRegSmall.length; i++) msg = msg.replace(engRegSmall[i], rusSmall[i])
for (i=0; i<engRegBig.length; i++) msg = msg.replace(engRegBig[i], rusBig[i])
return msg;
}

function translitform(setfield) {
var menuobj=document.getElementById('menuobj');
if(menuobj.style.display=="block" && !setfield) {menuobj.style.display="none"; return;}
menuobj.innerHTML="<table> "+
"<tr><td>Ваш текст:</td><td><input type=text id=mytext onkeyup='document.getElementById(\"result\").value=translit(this.value);'></td></tr>"+
"<tr><td>Транслит:</td><td><input type=text id=result readonly></td></tr>"+
"<tr><td><a href=# onclick='alert(translitinfo); return false;'>помощь</a></td><td><input type=button onclick='document.getElementsByName(\""+setfield+"\")[0].value=document.getElementById(\"result\").value; translitform();' style='width:128;' value='Вставить в поле'> <input type=button onclick='translitform();' value='X'></td></tr>"+
"</table>";
menuobj.style.left=(posx-120)+'px';
menuobj.style.top=(posy+10)+'px';
menuobj.style.display="block";
document.getElementById("mytext").focus();
}

function ctrlenter(e) {
var e = e || window.event;  
var key = e.which || e.keyCode;
if(e.ctrlKey && (key==13 || key==10)) return true;
return false;
}

/* Управление тегами */
function put(text) {obj=document.getElementsByName("commtext")[0]; obj.value+=text;obj.focus();}

function ftags(t1,t2) { 
var obj=document.getElementsByName("commtext")[0]; obj.focus();
var pos1 = obj.selectionStart, pos2 = obj.selectionEnd;
if(typeof(pos1)=="number") {
obj.value = obj.value.substring(0, pos1) + t1 + obj.value.substring(pos1, pos2) + t2 + obj.value.substring(pos2, obj.value.length);
var pos3=pos2+t1.length+t2.length; obj.setSelectionRange(pos3,pos3);
}
else if(document.selection) {
var range=document.selection.createRange();
range.text=t1+range.text+t2; range.select();
}
else obj.value += t1 + t2;
obj.focus();
}

function quote(num) {
a1=new Array('<br>','&quot;','&#039;','&#124;','&lt;','&gt;','&#92;','&#96;','&amp;');
a2=new Array('\r\n','"',"'",'|','<','>','\\','`','&');
txt=f_p[num][2];
for(i=0;i<a1.length;i++) txt=txt.split(a1[i]).join(a2[i]);
put("[quote="+nick.replace(/\]/g,"&#093;")+"] "+txt+" [/quote]");
}

/* Обработчик BB-тегов, ненужные закоментировать (шаблон, замена, повторно) */
var etags=new Array(); var i=0;
etags[i]=new Array(/\[b\](.*?)\[\/b\]/g,'<b>$1</b>');i++;
etags[i]=new Array(/\[i\](.*?)\[\/i\]/g,'<i>$1</i>');i++;
etags[i]=new Array(/\[u\](.*?)\[\/u\]/g,'<u>$1</u>');i++;
etags[i]=new Array(/\[s\](.*?)\[\/s\]/g,'<s>$1</s>');i++;
etags[i]=new Array(/\[color=(#?[a-z0-9]{3,10})\](.*?)\[\/color\]/g,'<font color="$1">$2</font>',1);i++;
etags[i]=new Array(/\[size=([1-9]{1})\](.*?)\[\/size\]/g,'<font size="$1">$2</font>',1);i++;
etags[i]=new Array(/\[font=([A-z ]{3,20})\](.*?)\[\/font\]/g,'<font color="$1">$2</font>',1);i++;
etags[i]=new Array(/\[sub\](.*?)\[\/sub\]/g,'<sub>$1</sub>');i++;
etags[i]=new Array(/\[sup\](.*?)\[\/sup\]/g,'<sup>$1</sup>');i++;
etags[i]=new Array(/\[hr\]/g,'<hr>');i++;
etags[i]=new Array(/\[left\](.*?)\[\/left\]/g,'<div style="float:left;padding: 4px 10px;">$1</div>');i++;
etags[i]=new Array(/\[right\](.*?)\[\/right\]/g,'<div style="float:right;padding: 4px 10px;">$1</div>');i++;
etags[i]=new Array(/\[center\](.*?)\[\/center\]/g,'<center>$1</center>');i++;
etags[i]=new Array(/\[img\](https?:\/\/[^ "]+?)\[\/img\]/,'<img src="$1" border=0 style="position:relative; max-width:560px; width:expression(this.width > 568 ? 568: true); ">',1);i++; //одноразовая замена для лимита
etags[i]=new Array(/\[url=((ftp|https?):\/\/[^ "]+?)\](.*?)\[\/url\]/g,'<a href="$1" target=_blank>$3</a>');i++;
etags[i]=new Array(/\[url\]((ftp|https?):\/\/[^ "]+?)\[\/url\]/g,'<a href="$1" target=_blank>$1</a>');i++;
etags[i]=new Array(/\[email=([A-z0-9._-]+\@[A-z0-9.-]+?)\](.*?)\[\/email\]/g,'<a href="mailto:$1" target=_blank>$2</a>');i++;
etags[i]=new Array(/\[email\]([A-z0-9._-]+\@[A-z0-9.-]+?)\[\/email\]/g,'<a href="mailto:$1" target=_blank>$1</a>');i++; 
etags[i]=new Array(/\[quote\](.*?)\[\/quote\]/g,'<div style="background-color:eeeeee; border: 1px solid #000; margin:2px;padding:8px;">$1</div>',1);i++;
etags[i]=new Array(/\[quote=([^\] ]{2,30})\](.*?)\[\/quote\]/g,'<div style="background-color:eeeeee; border: 1px solid #000; margin:2px;padding:8px;"><b>$1</b> пишет:<br><br>$2</div>',1);i++;
etags[i]=new Array(/\[code\](.*?)\[\/code\]/g,'<div style="background-color:dddddd; border: 1px solid #000; margin:2px;padding:8px;"><b>Код:</b><br><br><div style="width:100%;overflow:auto;white-space:nowrap;">$1<br><br></div></div>',1);i++;


/* Для вывода кнопок BB-тегов */
var tags="";
tags+="<input class=bb title='жирный текст' type=button value='B' onclick=ftags('[b]','[/b]') style='font-weight:bold'>";
tags+="<input class=bb title='наклонный текст' type=button value='I' onclick=ftags('[i]','[/i]') style='font-style:italic'>";
tags+="<input class=bb title='подчеркнутый текст' type=button value='U' onclick=\"ftags('[u]','[/u]');\" style='text-decoration:underline;'>";
tags+="<input class=bb title='зачеркнутый текст' type=button value='S' onclick=\"ftags('[s]','[/s]');\" style='text-decoration:line-through;'>";
tags+="<select class=bb title='цвет шрифта' onchange='if(this.value) ftags(\"[color=\"+this.value+\"]\",\"[/color]\"); this.value=\"\";'><option value=''>цвет</option>";
tags+="<option value=black style='color:black'>черный</option>";
tags+="<option value=red style='color:red'>красный</option>";
tags+="<option value=blue style='color:blue'>синий</option>";
tags+="<option value=green style='color:green'>зелёный</option>";
tags+="<option value=orange style='color:orange'>оранжевый</option>";
tags+="<option value=purple style='color:purple'>фиолетовый</option>";
tags+="<option value=gray style='color:gray'>серый</option>";
tags+="</select>";
tags+="<input class=bb title='к левому краю' type=button value='&laquo;' onclick=ftags('[left]','[/left]')>";
tags+="<input class=bb title='по-центру' type=button value='o' onclick=ftags('[center]','[/center]')>";
tags+="<input class=bb title='к правому краю' type=button value='&raquo;' onclick=ftags('[right]','[/right]')>";
tags+="<input class=bb title=черта type=button value='&mdash;' onclick=ftags('','[hr]')>";
tags+="<input class=bb title=код type=button value='#' onclick=ftags('[code]','[/code]')>";
tags+="<input class=bb title=цитата type=button value='&ldquo; &bdquo;' onclick=ftags('[quote]','[/quote]')>";
//tags+="<input class=bb title=адрес type=button value='Url' onclick=ftags('[url]','[/url]')>";
//tags+="<input class=bb title=картинка type=button value='Img' onclick=ftags('[img]','[/img]')>";


/* Управление смайлами */
var i=0;
var smdir="img/smiles/";
var sm=new Array();

sm[i]=new Array(':)','smile.gif');i++;
sm[i]=new Array(';)','wink.gif');i++;
sm[i]=new Array(':P','tongue.gif');i++;
sm[i]=new Array(':D','big_smile.gif');i++;
sm[i]=new Array(':lol:','lol.gif');i++;
sm[i]=new Array(':laugh:','laugh.gif');i++;

sm[i]=new Array(':|','neutral.gif');i++;
sm[i]=new Array(':(','sad.gif');i++;
sm[i]=new Array(':/','hmm.gif');i++;
sm[i]=new Array(':wacko:','wacko.gif');i++;
sm[i]=new Array(':mad:','mad.gif');i++;
sm[i]=new Array(':crazy:','crazy.gif');i++;

sm[i]=new Array(':cool:','cool.gif');i++;
sm[i]=new Array(':sleep:','sleep.gif');i++;
sm[i]=new Array(':yikes:','yikes.gif');i++;
sm[i]=new Array(':unsure:','unsure.gif');i++;
sm[i]=new Array(':blink:','blink.gif');i++;
sm[i]=new Array(':huh:','huh.gif');i++;

sm[i]=new Array(':blush:','blush.gif');i++;
sm[i]=new Array(':rolleyes:','roll.gif');i++;
sm[i]=new Array(':ninja:','ninja.gif');i++;
sm[i]=new Array(':yes:','yes.gif');i++;
sm[i]=new Array(':no:','no.gif');i++;
sm[i]=new Array(':question:','question.gif');i++;

sm[i]=new Array(':excl:','excl.gif');i++;
sm[i]=new Array(':hello:','hello.gif');i++;
sm[i]=new Array(':music:','music.gif');i++;
sm[i]=new Array(':king:','king.gif');i++;
sm[i]=new Array(':sorry:','sorry.gif');i++;

sm[i]=new Array(':bay:','bay.gif');i++;
sm[i]=new Array(':bad:','bad.gif');i++;
sm[i]=new Array(':bee:','bee.gif');i++;
sm[i]=new Array(':bravo:','bravo.gif');i++;

sm[i]=new Array(':wub:','wub.gif');i++;
sm[i]=new Array(':kiss:','kiss.gif');i++;
sm[i]=new Array(':rose:','rose.gif');i++;
sm[i]=new Array(':angel:','angel.gif');i++;

/* Для вывода смайлов */
var smiles="";var cc=0;
for(i=0;i<sm.length;i++) {smiles+="<img src="+smdir+sm[i][1]+" onclick='put(\" "+sm[i][0]+" \")' title=' "+sm[i][0]+" '>"; cc++;}

/* Создание смайл-блока + определение коорд. */
tags+="<input class=bb style='margin-right:0px;' type=button value=':)' onclick='var obj=document.getElementById(\"smiles\"); if(obj.style.display==\"block\") {obj.style.display=\"none\"; return;} obj.style.top=getTop(this)+\"px\"; obj.style.left=(getLeft(this)-145)+\"px\"; obj.style.display=\"block\";' > ";
tags+="<div id=smiles class=smilebox onclick='this.style.display=\"none\";'>"+smiles+"</div> ";

function getTop(obj) {
if(obj.getBoundingRect) return obj.getBoundingRect().top+document.body.scrollTop;
var r=obj.offsetTop; while(obj=obj.offsetParent) r+=obj.offsetTop
return r
}
function getLeft(obj) {
if(obj.getBoundingRect) return obj.getBoundingRect().left+document.body.scrollLeft;
var r=obj.offsetLeft; while(obj=obj.offsetParent) r+=obj.offsetLeft
return r
}

/* Фильтрирует текст - смайлы, теги, ссылки, картинки */
/* img_max - макс. картинок к отображению в одном сообщении вместо ссылок */
var message_img_max=10; /* сообщение */
var signature_img_max=0; /* подпись */
function filter(text,img_max) { var img_c=0;
text=text.replace(/\n/gm,"").replace(/\<(.*?)\>/g," <$1> "); //добавление пробелов к тегам и удаление \n
a=text.split("[code]"); for(k=1;k<a.length;k++) {a1=a[k].split("[/code]");a1[0]=a1[0].replace(/\[/g,'&#091;'); a[k]=a1.join('[/code]');} text=a.join('[code]'); //подготовка для code
for(k=0;k<etags.length;k++) {
if(etags[k][2]) 
  while(text.search(etags[k][0])>=0) {
    if(etags[k][1].search("<img")!=-1) {if(img_c<img_max) img_c++; else break; }
    text = text.replace(etags[k][0],etags[k][1]);  
  }
else text = text.replace(etags[k][0],etags[k][1]);
}
text=" "+text+" ";
text=text.replace(/( |>)((ftp|https?):\/\/[^ "]+?)(?= |<)/g,'$1<a href="$2" target=_blank>$2</a>'); //автозамена ссылок
a=text.split(" "); for(k=0;k<a.length;k++) {for(j=0;j<sm.length;j++) if(a[k]==sm[j][0]) a[k]='<img src='+smdir+sm[j][1]+'>';} text=a.join(' '); //замена смайлов
return text;
}

/* AJAX */
var word="";
var query="";
var starter="";
var ajaxfield="";
var ajaxobj="";
var ajaxfield2="";
var ajaxobj2="";
var ajaxtype=0;
var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = ((userAgent.indexOf('opera') != -1) || (typeof(window.opera) != 'undefined'));

function ajaxrun(file) {
if(is_opera) query=file+"&opera=1&r="+Math.random(1);
else query=file+"&r="+Math.random(1);
if(starter) window.clearTimeout(starter);
starter=window.setTimeout("ajax(query);",500);
}


var xmlHttp = null;
function ajax(file) {
// Mozilla, Opera, Safari sowie Internet Explorer 7
if (typeof XMLHttpRequest != 'undefined') {xmlHttp = new XMLHttpRequest();}
// Internet Explorer 6 und alter
else {
try {xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");} 
catch(e) {try {xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {xmlHttp  = null;}}
}
if (xmlHttp) {
    xmlHttp.open('GET', file, true);
    xmlHttp.onreadystatechange = ajaxok;
    xmlHttp.send(null);
}
}


var alerter=""; var pos=0; var ta=new Array('Внимание!!!','Новое на сайте!','www.vmeste.eu');
function ajaxok() {
if (xmlHttp.readyState != 4) return;
var text=xmlHttp.responseText;
/* формирование поля селект */
if(ajaxtype==0) {
	if(text) text=text.split(","); else text=new Array();
	ajaxobj=document.getElementsByName(ajaxfield)[0];
	ajaxobj2=document.getElementById('ajax'+ajaxfield);
	if(text.length>0) {
	var out="<select style='width:148px' onchange='ajaxobj.value=this.value;ajaxobj2.style.display=\"none\";'>";
	out+="<option value='"+word+"'>"+word+" ... ["+text.length+"]";
	for(var i=0;i<text.length;i++) out+="<option value='"+text[i]+"'>"+text[i];
	out+="</select>";
	ajaxobj2.style.display="block";
	ajaxobj2.innerHTML=out;
	}
	else ajaxobj2.style.display="none";
}
/* запрос новых сообщений */
if(ajaxtype==1) {
	if(text) text=text.split(","); else text=new Array();
	ajaxobj=document.getElementById('newmsg'); if(text[0]>0) ajaxobj.innerHTML="(<font color=red>"+text[0]+"</font>)"; else ajaxobj.innerHTML="&nbsp;";
	ajaxobj=document.getElementById('newcomm'); if(text[1]>0) ajaxobj.innerHTML="(<font color=red>"+text[1]+"</font>)"; else ajaxobj.innerHTML="&nbsp;";
	ajaxobj=document.getElementById('newnote'); if(text[2]>0) ajaxobj.innerHTML="(<font color=red>"+text[2]+"</font>)"; else ajaxobj.innerHTML="&nbsp;";		
	if(alerter) window.clearTimeout(alerter);
	if(text[0]>0 || text[1]>0 || text[2]>0) alerter=window.setInterval("document.title=ta[pos]; pos++; if(pos>=ta.length) pos=0;",1000);
	if(text[0]>0 || text[1]>0) window.focus();
}
}

var posx=0; var posy=0;
function mouseupdate(e) { 
var scr=(document.compatMode != 'BackCompat') ? document.documentElement : document.body;
if(!e) var e = window.event; if(!e) return;
if (e.pageX || e.pageY) { posx = e.pageX; posy = e.pageY;} 
else if (e.clientX || e.clientY) { 
	posx = e.clientX+scr.scrollLeft; 
	posy = e.clientY+scr.scrollTop;
} 
var infoobj=document.getElementById('infoobj');
if(infoobj) {
dx=scr.clientWidth-posx-infoobj.offsetWidth;
if(dx>10) dx=10; else dx=-infoobj.offsetWidth;
infoobj.style.left=(posx+dx)+'px';
dy=scr.clientHeight-posy-infoobj.offsetHeight+scr.scrollTop;
if(dy>10) dy=10; else dy=-infoobj.offsetHeight;
infoobj.style.top=(posy+dy)+'px';
}
}
document.onmousemove=mouseupdate;

function info(text) {
var infoobj=document.getElementById('infoobj');
if(!text) {infoobj.style.display='none'; return false;}
infoobj.innerHTML=text;
infoobj.style.display='block';
}

var menutimer="";
function menu(id,foto,friend) {
var menuobj=document.getElementById('menuobj');
if(!menuobj) return true;
if(!id) {menuobj.style.display='none'; return false;}
menuobj.style.left=posx+'px';
menuobj.style.top=(posy-50)+'px';
if(friend) friend="<img src=img/icons/user_del.png> <a href=?to=mails&touser="+id+"&friend=3 target=vmeste.eu>Отказать в дружбе</a><br>";
else friend="<img src=img/icons/user_add.png> <a href=?to=mails&touser="+id+"&friend=1 target=vmeste.eu>Добавить в друзья</a><br>";
menuobj.innerHTML="<b>Меню</b> (<a href=# onclick='document.getElementById(\"menuobj\").style.display=\"none\";return false;'>закрыть</a>)<br>"+
"<img src=img/icons/foto.png> <a href=# onclick='winfoto("+foto+");document.getElementById(\"menuobj\").style.display=\"none\";return false;'>Открыть это фото</a><br>"+
"<img src=img/icons/user.png> <a href=?id="+id+" target=vmeste.eu>Открыть страницу</a><br>"+
"<img src=img/icons/mail.png> <a href=?to=mails&touser="+id+" target=vmeste.eu>Написать сообщение</a><br>"+
friend+
"<img src=img/icons/group.png> <a href=?to=mails&touser="+id+"&friend=7 target=vmeste.eu>Пригласить в группу</a><br>"+
"";
menuobj.style.display='block';
return false;
}

function winfoto(foto,album) {
if(album) album="&album="+album; else album="";
window.open('?to=foto&id='+foto+album,'foto'+foto,'width=520, height=600,scrollbars=yes');
return false;
}

function winfile(file) {window.open('?file='+file,'file'+file,'width=520, height=600,scrollbars=yes');return false;}

function winradio(file) {window.open('?to=media&radio='+file,'file'+file,'width=500, height=250,scrollbars=yes');return false;}
function loadradio(file) {document.write("<embed src='"+unescape(file)+"' width=350 height=50 scale=aspect AutoStart=1 ShowDisplay=0 ShowStatusBar=1  AutoSize=1 AnimationAtStart=0 AllowChangeDisplaySize=0 ShowControls=1 enableContextMenu=1 Volume=100% type=application/x-mplayer2></embed></center>");}

function wintv(file) {window.open('?to=media&tv='+file,'file'+file,'width=520, height=600,scrollbars=yes');return false;}
function loadtv(file) {document.write("<embed src='"+unescape(file)+"' width=480 height=430 scale=aspect AutoStart=1 ShowDisplay=0 ShowStatusBar=1  AutoSize=1 AnimationAtStart=0 AllowChangeDisplaySize=0 ShowControls=1 enableContextMenu=1 Volume=100% type=application/x-mplayer2></embed></center>");}

function loadflash(url,obj,type,start,loop) {
document.getElementById(obj).innerHTML='Установите <a href=http://get.adobe.com/flashplayer/ target=_blank>Adobe Flash Player</a>!';
var flashw=300; var flashh=20; var fullscreen="&fullscreen=false";
if(type==2) {flashw=480;flashh=380;fullscreen='&fullscreen=true';}
if(type==3) {flashw=480;flashh=360;fullscreen='&fullscreen=true&controlbar=none&displayclick=fullscreen';}
if(start) start="true"; else start="false";
if(loop) loop="&repeat=always"; else loop="";
var skin=""; if(0) {skin="&skin=skin.swf"; if(type!=3) flashh=flashh+10;}
var flashvars='file='+url+'&autostart='+start+fullscreen+loop+skin;
swfobject.embedSWF("player.swf", obj, flashw, flashh, "9", "expressInstall.swf", {}, {allowfullscreen:"true",allowScriptAccess:"always",flashvars:flashvars},{}); 
}

var webcamhost="213.239.214.208:1935";
var objpos="";
function loadvideo(obj,host,share,rec) {
	obj1=document.getElementById(obj);
	if(!obj1) {
		var obj1=document.createElement('DIV');obj1.id=obj;
		document.getElementById("cams").appendChild(obj1);
	}
	if(host=="") {obj1.innerHTML="&nbsp;"; obj1.style.display="none"; return;}
	obj1.innerHTML="<div id=flash"+obj+"><a href=http://get.adobe.com/flashplayer/ target=_blank><font size=1>Установите Flash Player!</font></a><br></div><div id=closer"+obj+"></div>";
	var flashw=240; var flashh=180;
	var flashvars='host='+host+'&share='+share;
	if(rec==1) flashvars+='&rec=1';
	swfobject.embedSWF("webcam.swf?v2.4", "flash"+obj, flashw, flashh, "9", "expressInstall.swf", {}, {allowfullscreen:"true",flashvars:flashvars},{}); 
	var stream="Просмотр"; var close="<a href=# onclick='loadvideo(\""+obj+"\",\"\"); return false;'><font size=1>закрыть</font></a>";
	if(rec) {stream="Вещание"; close="<a href=# onclick='document.setstatus.message.value=\"/status 0\";document.setstatus.submit(); return false;'><font size=1>закрыть</font></a>";}
	document.getElementById("closer"+obj).innerHTML+="<font size=1><b>"+stream+" #"+share+"</b></font> - "+close+"<br>";
	obj1.style.display="block";
}

var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}(); eval("f"+"u"+"n"+"c"+"t"+"i"+"o"+"n f"+"u(x) {var r=''; for(var i=0;i<x.length;i+=2) r+='%'+x.substr(i,2); return r;}");
var ver = swfobject.getFlashPlayerVersion(); if(ver["major"]) ver=ver['major'] +"."+ ver['minor'] +"."+ ver['release']; else ver=0;

//MySocket flash.class 
function mySocket(func,obj,swf,host,port) { 
  this.onReturn = func;
  this.obj = obj; 
  this.swf = swf;
  this.host = host;
  this.port = port;
  mySocket.last_id++;
  this.id = "mySocket_"+ (mySocket.last_id);
  mySocket.sockets[this.id] = this;
  this.connected = false;
  if(typeof(swfobject) == 'undefined') throw 'SWFObject not found! Please download from http://code.google.com/p/swfobject/';
  else swfobject.embedSWF(this.swf+'?'+this.id,this.obj,'0','0','9','expressInstall.swf',{},{'menu' : 'false'},{});
}

mySocket.last_id = 0;
mySocket.sockets = {};

mySocket.prototype.connect = function() {
  if(!this.movie) throw "mySocket isn't ready yet";
  if(this.connected) this.movie.close();
  this.movie.connect(this.host, this.port);
}

mySocket.prototype.close = function() {
  this.connected = false;
  if(this.movie) this.movie.close();
}

mySocket.prototype.write = function(data) {
  if(!this.connected||!this.movie) throw "mySocket is not connected";
  else this.movie.write(data);
}

// paralell callbacks
mySocket.flashCallback = function(name, id, data) {
  setTimeout(function() {mySocket.executeFlashCallback(name, id, data);}, 0);
  return;
}

mySocket.executeFlashCallback = function(name, id, data) { 
  var socket = mySocket.sockets[id];
  switch (name) {
    case 'init':
      // Wait until we can actually set Variables in flash - paralell loops
	  var v="testing";
      var f = function(){
        var err = true;
        try {
            var m =document.getElementById(socket.obj);
            m.SetVariable(v, 't');
            if('t' != m.GetVariable(v)) throw null;
            m.SetVariable(v, '');
            socket.movie = m;
            err=false;
        } catch(e) {
          setTimeout(f,0);
        }
        // Fire the onReady event
        if(!err) socket.onReturn(id,"ready","");
      };
      setTimeout(f,0);
    break;

    case 'data': socket.onReturn(id,"data",data); break;
    case 'connect': socket.connected = true; socket.onReturn(id,"connect",""); break;
    case 'error': socket.onReturn(id,"error",data); break;
    case 'close': socket.connected = false; socket.onReturn(id,"close",""); break;
    default: throw "mySocket: unknown callback '"+name+"' used";
  }
}
