function friendSuggestPopup(myhost, email) {
    return addIframe('http://'+ location.hostname + '/my/friends-suggest?popup_list=6&friend_email=' + email);
}
function dialogues_send_showFriendsList(){
    return addIframe('http://'+ location.hostname + MyMailDir + 'friends?popup_list=1');
}
function conference_showFriendsList(){
    return addIframe('http://'+ location.hostname + MyMailDir + 'friends?popup_list=3');
}
function addFriendsPopup(ID) {
	$('app_container').cleanWhitespace().firstChild.style.height = '0px';;
    return addIframe('http://'+ location.hostname + MyMailDir + 'app-canvas?popup_list=4&appid=' + ID);
}

function addPaymentsPopup(ID) {
	$('app_container').cleanWhitespace().firstChild.style.height = '0px';;
    return addIframe('http://'+ location.hostname + MyMailDir + 'app-canvas?payments=1&appid=' + ID);
}



function addPreloader(id, left, top, width, height, onClick) {
    if (typeof onClick != 'function') onClick = function () {};
    var c = $('boosterCanvas') || $(document.body);
    c.insert(
        new Element('div', {
            'id': id,
            'style':'position: absolute;top: '+top + 'px;left: '+left+ 'px;border: none!important;z-index:250;' + 
            'width:'+width+'px;height:'+height+'px;background: white url(http://img.mail.ru/r/blogs/wysiwyg/wysFrameLoader.gif) no-repeat scroll 50% 50%;'
        }).insert(
            new Element('i',{'class': 'mf_spIco mf_iDel mf_iDelAlert', 'style': 'right: 10px;top: 10px;position: absolute;height: 10px;'}).observe('click', onClick)
        ).insert('<span style="position:absolute;left:250px;top:230px;">Загрузка</span>')
    );
}
function addIframe(src) {
    var c = $('boosterCanvas') || $(document.body);
    var top = (Prototype.Browser.IE ? c : document.body).scrollTop + (document.body.clientHeight - 400)/2, 
	left = (c.offsetWidth - 550)/2, width = 550, height = 410;
    var fdiv = c.appendChild(new Element('div', {
        'style':'position:absolute; background-color:#333; opacity:0.5;filter: alpha(opacity=50); z-index:200;',
        'id':'friends_frame_fader'
    }));
    fdiv.style.height =  height + 20 + 'px';
    fdiv.style.width =  width + 20 + 'px';
    fdiv.style.top = top - 10 + 'px';
    fdiv.style.left = left - 10 + 'px';
    addPreloader('friends_frame_preloader', left, top, width, height, function () { onAddIframe(1) });
    c.insert(new Element('iframe', {
        'src':src,'width':width+'px','height':height+'px','id':'friends_frame','class':'mf_ohd ohd','frameborder':'no',
        'style':'overflow: hidden!important;position: absolute;top: '+top + 'px;left: '+left+ 'px;border: none!important;z-index:300;display:none;'
    }));
    return false;
}
function onAddIframe(drop) {
    var d = document.getElementById('friends_frame_preloader');
    if(d) d.parentNode.removeChild(d);
    if(drop) {
        d = document.getElementById('friends_frame_fader');
        if(d) d.parentNode.removeChild(d);
        d = document.getElementById('friends_frame');
        if(d) d.parentNode.removeChild(d);
    } else {
        d = document.getElementById('friends_frame');
        if(d) d.style.display = 'block';
    }
    return false;
}
var Fade = (function(){
    var _dec = 0.1, _del = 40, _lim = 0.3;
    return {
        hide: function() {
            if(this.t) clearTimeout(this.t);
            if(this.op > _lim) {
				this.el.style.opacity = (this.op -= _dec);
				if(this.el.style.filter) this.el.style.filter = 'alpha(opacity=' + this.op*100 + ')';
			}
            else {
				return this.el.parentNode.removeChild(this.el);
			}
            this.t = setTimeout(this.hide.bind(this), _del);
        },
        remove: function(el) {
            if(el && el.parentNode) {
                this.op = 1;
		        if(Prototype.Browser.IE) el.style.filter = 'alpha(opacity=100)';
                this.el = el;
                this.hide();
            }
            return false;
        }
    };
})();
// infotooltip.js
function Tooltip(params) {
    for(var i in params) this[i] = params[i];
    this.staticParams = {
	'sticker':{'classname':'tipSticker','timeout':0.5},
	'avatar':{'classname':'tipAva','timeout':0.01},
	'avatarC':{'classname':'tipAva','timeout':0.01},
	'photo':{'classname':'tipPhoto','timeout':0.5},
	'video':{'classname':'tipVideo','timeout':0.5},
	'gift':{'classname':'tipGift','timeout':0.5},
	'giftLabel':{'classname':'tipGift','timeout':0.5},
	'community':{'classname':'tipCommunity','timeout':0.01,'setposition':'right'}
    };
    this.bc = $('boosterCanvas') || document.body;
}

Tooltip.prototype.setVars = function(type, element){
    if(!type || !element) return false;
    this.type = type;
    this.element = $(element);
    this.email = this.element.readAttribute('email') || 0;
    this.biglink = this.element.readAttribute('biglink') || 0;
    this.imagesurl = this.element.readAttribute('imagesurl') || 0;
    this.online = this.element.readAttribute('online') || 0;
    this.privat = this.element.readAttribute('privat') || 0;
    this.username = this.element.readAttribute('username') || 0;
    this.vip = this.element.readAttribute('vip') || 0;
    this.giftsRotate = $('paidGiftsMain') ? 1 : 0;
    this.timeout = this.staticParams[this.type].timeout || 0.01;
    if(this.giftsRotate) hideNewGifts();
    this.element.observe('mouseout', this.tHide.bindAsEventListener(this));
    this.tShow.bind(this).delay(this.timeout);
}

Tooltip.prototype.tShow = function(){
    this.noHide.bind(this);
    if(this.divpic && this.divpic.parentNode) this.bc.removeChild(this.divpic);
    this.divpic = 0;
    if(this.hideTimeout) clearTimeout(this.hideTimeout);
    var re = /^(.*?)@(\w+)\./;
    if (re.test(this.email)){
	this.login = RegExp.$1;
	this.domain = RegExp.$2;
    }
    var defaultHtml;
// from syberia with love
    switch(this.type) {
	case 'stiker':
	    if (this.online) var onlineneed = "<div class=\"on_90 divAuto\"><a href=\"/my/dialogues?thread=" + this.email +"\">на сайте</a></div>";
	    else var onlineneed = "";
	    var prneed = '';
	    if (this.privat) {
		if(this.vip) prneed = "Приватный VIP-стикер";
		else prneed = "Приватный стикер";
	    }
	    else {
		if(this.vip) prneed = "VIP-стикер от пользователя";
		else prneed = "Стикер от пользователя";
	    }
	    defaultHtml = "<div class=\"divAuto ava90 mt5\"><a onclick=\"return (Booster.inited ? Booster.go(this.href) : true);\" href=\"http://" 
	    + this.mymailhost + "/" + domain + "/" + login + 
	    "/\"><i class=\"ava90\" style=\"background-image: url(http://" + this.photoavthost + "/" + domain + "/" + login + 
	    "/_avatar90);\"></i></a></div>" + onlineneed + "<div class=\"mt5 tac\"><a href=\"http://www.mail.ru/agent?message&to=" + 
	    this.email + "\" title=\"Щелкни, чтобы пообщаться с этим человеком в Mail.Ru Агенте\"><i class=\"spr-mrim-13\" email=\"" + 
	    this.email + "\"></i></a><a onclick=\"return (Booster.inited ? Booster.go(this.href) : true);\" href=\"http://##MyMailHost##/"
	    + this.domain + "/" + this.login + "/\">" + this.username + "</a></div>";
	    break;
	case 'avatar':
	    defaultHtml = '<i style="background-image: url(http://avt.foto.mail.ru/' + this.domain + '/' + this.login + '/_avatar);"></i>';
	    break;
	case 'avatarC':
	    defaultHtml = '<a href="/community/' + this.email + '/"><i style="background-image: url(' + this.imagesurl + ');"></i></a>';
	    break;
	case 'photo':
	    defaultHtml = '<a href="' + this.biglink + '"><i style="background-image: url(' + this.imagesurl + ');"></i></a>';
	    break;
	case 'video':
	    defaultHtml = '<a href="' + this.biglink + '"><i style="background-image: url(' + this.imagesurl + ');"></i></a>';
	    break;
	case 'gift':
	    defaultHtml = '<a href="' + this.biglink + '" onclick="if(Booster.inited) return Booster.go({\'url\':this.href,\'sc\':\'top\'});"><i style="background-image: url(http://img0.imgsmail.ru/r/my/gifts/' + this.imagesurl + ');"></i></a>';
	    break;
	case 'giftLabel':
	    defaultHtml = '<label for="' + this.biglink + '"><i style="background-image: url(http://img1.imgsmail.ru/r/my/gifts/' + this.imagesurl + ');"></i></label>';
	    break;
	case 'community':
	    defaultHtml = '<a href="http://www.mail.ru/agent?message&to=' + this.email + '" title="Щелкни, чтобы пообщаться с этим человеком в Mail.Ru Агенте"><i class="spr-mrim-status13" style="background-image: url(http://status.mail.ru?' + this.email + ');"></i></a><a href="/' + this.domain + '/' + this.login + '/">' + this.username + '</a><div></div>';
	    break;
	default:
	    return false;
    }
    this.divpic = this.bc.appendChild(new Element('div', {'style':'display:none;position:absolute;top:-250px;left:-250px;'}));
    this.divpic.className = this.staticParams[this.type].classname || '';
    this.divpic.innerHTML = defaultHtml;
    this.divpic.observe('mouseout', this.tHide.bindAsEventListener(this));
    this.divpic.observe('mouseover', this.noHide.bindAsEventListener(this));

    var coor = getPosition(this.element);
    this.divpic.style.display = 'block';

    if(this.staticParams[this.type].setposition && this.staticParams[this.type].setposition == 'right') {
	this.divpic.style.right = (document.body.clientWidth - coor.left) + 'px';
	this.divpic.style.left = '';
    } else {
	if(document.body.clientWidth > (this.divpic.offsetWidth + coor.left)) this.divpic.style.left = coor.left + 'px';
	else this.divpic.style.left = (coor.left -  (this.divpic.offsetWidth - this.element.offsetWidth)) + 'px';
    }
    if(Prototype.Browser.IE || (coor.top < (document.body.scrollTop + document.body.clientHeight - this.divpic.offsetHeight))) this.divpic.style.top = coor.top + 'px';
    else this.divpic.style.top = (coor.top - (this.divpic.offsetHeight - this.element.offsetHeight)) + 'px';

}

Tooltip.prototype.noHide = function(){
    if(this.hideTimeout){
	clearTimeout(this.hideTimeout);
	if(this.giftsRotate) hideNewGifts();
    }
}

Tooltip.prototype.tHide = function(event){
    if(event) {
	if(this.hideTimeout) clearTimeout(this.hideTimeout);
	this.hideTimeout = this.tHide.bind(this).delay(this.timeout);
	return;
    }
    if(this.divpic) this.bc.removeChild(this.divpic);
    this.divpic = 0;
    if(this.hideTimeout) clearTimeout(this.hideTimeout);
    if(this.giftsRotate) showNewGifts();
    return;
}
// gifts rotate on face
function showNewGifts(){
    var topGifts = 70*giftStep;
    var p = $('podarki');
    if (p) p.style.top = '-' + topGifts + 'px';
    showNewGiftsTimer = setTimeout("showNewGifts()",4000);
    giftStep = giftStep + 1;
    if (giftStep == GiftItems){ giftStep = 0; }
}

function hideNewGifts(){ clearTimeout(showNewGiftsTimer) }

function toggleDialogImage(link) {
    var container = $(link.parentNode);
    link = container.select('a[name="imglink"]')[0];
    var img = container.select('i[name="img"]')[0];
    var imgurl = container.readAttribute('imgurl');
    var imgid = container.readAttribute('imgid');
    var imgtype = img.readAttribute('type');
    if(imgtype == 'small') {
	img.style.backgroundImage = 'url(' + imgurl + 'i-' + imgid + ')';
	img.style.width = img.readAttribute('fw') + 'px';
	img.style.height = img.readAttribute('fh') + 'px';
	img.writeAttribute('type', 'big');
	link.update('свернуть');
    } else {
	img.style.backgroundImage = 'url(' + imgurl + 'p-' + imgid + ')';
	img.style.width = '120px';
	img.style.height = '120px';
	img.writeAttribute('type', 'small');
	link.update('увеличить');
    }
    return false;
}

function toggleDialogImage2(link, pp) {
    var container = $(link.parentNode);
    var sub_container = null;
    if(pp == 1) { 
    	sub_container = container;
    	container = $(container.parentNode);
    }
    if(pp == 2) {
    	sub_container = container.select('div[name="sub"]')[0];
    }
    link = container.select('a[name="imglink"]')[0];
    var img_small = container.select('div[name="img_small"]')[0];
    var img_big = container.select('div[name="img_big"]')[0];
    var imgurl = container.readAttribute('imgurl');
    var imgid = container.readAttribute('imgid');
    var imgtype = container.readAttribute('type');
    var view_paint = null;
    if(pp) view_paint = container.select('div[name="view_paint"]')[0];
    if(imgtype == 'small') {  	
    var img = container.select('img[name="img"]')[0];
    img.src = imgurl + 'i-' + imgid;
    img_small.hide();
	img_big.show();
	container.writeAttribute('type', 'big');
	link.update('свернуть');
	if(pp)	sub_container.style.width = img_big.style.width;
	if(view_paint) view_paint.show();
	if(img_big.style.width.split("px")[0] > 444) {
		img_big.style.width = "444px";
		if(pp) sub_container.style.width = "444px";
	}
    } else {
    img_big.hide();
	img_small.show();
	container.writeAttribute('type', 'small');
	link.update('увеличить');
	if(view_paint) view_paint.hide();
	if(pp)	sub_container.style.width = img_small.style.width;
    }
    return false;
}





// help.js

var helpData = [
    "blank",
    "На этой странице вы можете загрузить ваши фото в альбом. Выберете наиболее удобный для вас способ загрузки.", //1
    "Нажмите кнопку \"Обзор...\" и выберите в появившемся окне файл с фото, который вы хотите загрузить. Файл должен иметь формат JPEG (JPG)", //2
    "По умолчанию загружаемые вами фото хранятся на проекте Мой мир@Mail.Ru в разрешении 600 пикселей (точек) по наибольшей стороне, независимо от разрешения исходного изображения.<br>Однако в некоторых случаях у вас может возникнуть необходимость хранить вместе с уменьшенной копией и оригинальное фото. Например, это важно, если вы собираетесь заказывать печать загружаемых вами снимков.", //3
    "Дайте название фото", //4
    "Обычно если вы загружаете больше чем одно фото, по умолчанию у всех фото будет служебное имя \"Без названия\". Если вы отметите пункт \"Использовать имя файла как название фото\", то всем фото будут автоматически присвоены названия в виде имени соответствующего файла в загруженном архиве.", //5
    "Введите метки, соответствующие этому фото, разделяя их запятой. Метки - это ключевые слова или словосочетания, кратко характеризующие сюжет фотографии. Они позволят вам свободно ориентироваться в своем личном фотоархиве, легко находить чужие фотографии, имеющие общие метки с вашими и т.д.<br><br>Пример набора меток: &laquo;Питер, Адмиралтейство, Нева, пейзаж, зима&raquo;.<br><br>Подробности - в разделе <a href=\"http://foto.mail.ru/cgi-bin/fsupport\">&laquo;Помощь&raquo;<\/a>", //6
    "Краткое опишите фото: что на нем изображено, где и когда вы сделали этот снимок и т.д. Введите любую информацию, которую вы сочтете интересной и полезной для тех, кто увидит ваше фото.", //7
    "Выберите альбом, в который вы хотите поместить фото. Если вы хотите создать для этого изображения новый альбом, выберите вариант &laquo;Новый альбом...&raquo;.", //8
    "Если хотите, вы можете дать латинское название папке, которое будет отражено в адресе (URL) альбома.<br><br>Например, если вы назвали папку &laquo;vesna&raquo;, то адрес созданного альбома будет выглядеть так: http://my.mail.ru/community/test77777/photo/vesna", //9
    "Определите, кто сможет просматривать фото из этого альбома.", //10
    "Многие современные фотокамеры имеют специальный датчик, позволяющий определять положение камеры в момент съемки (обычное или портретное). Эта информация хранится в файле с фотографией, и она может быть использована для автоматического поворота фото в &laquo;правильное&raquo; положение сразу после загрузки.", //11
    "Введите полный адрес (URL) фото в интернтете.<br>Например: «http://naprimer.ru/picture.jpg».<br>Фото должно иметь формат JPEG (JPG)", //12
    "Если вам необходимо переместить это фото в какой-либо другой ваш альбом, выберите нужный альбом из списка.", //13
    "Если вам необходимо скопировать это фото в какой-либо другой ваш альбом, выберите нужный альбом из списка.", //14
    "<div margin-\' class=\'tac nobr mb5\'>Вы можете увеличить количество баллов за оценку до 10!</div><div class=\'tac nobr mb5\'><b>Отправьте с мобильного телефона sms-сообщение:</b><br><b style=\'color: #54ce03\'>28+" + ActiveID + "</b> на короткий номер.</div>Правила сервиса:<ul><li>Одно SMS сообщение дает возможность ставить повышенные оценки целый час!<li>SMS сообщения не суммируются</ul>Короткий номер и стоимость услуги:<br>для России и Украины <b style=\'color: #54ce03\'>7099</b> - 0.99 у.е.  без НДС;<br><div class=\'flr\'><a href=\'/my/megavote-info\'>подробнее</a></div>для Казахстана  <b style=\'color: #54ce03\'>7502</b> - 0.99 у.е. без НДС.", //15
    "На сервисе Мой мир@Mail.Ru вы можете оценить понравившееся вам фото по пятибальной шкале со значениями от +1 до +5.<br>Рейтинг фото измеряется арифметической суммой всех выставленных баллов.<br>Подробнее с системой голосования вы можете ознакомиться <a href=\"http://foto.mail.ru/catalog/static/vote.html\" target=\"_blank\">здесь</a>", //16
    "Дайте название вашему альбому.", //17
    "Если хотите, вы можете дать латинское название папке, которое будет отражено в адресе (URL) альбома.<br><br>Например, если ваще сообщетсво называется myproject и вы назвали папку &laquo;vesna&raquo;, то адрес созданного альбома будет выглядеть так: http://my.mail.ru/community/myproject/photo/vesna", //18
    "Кратко опишите фото в альбоме: общая тема альбома, где и когда вы сделали эти снимки и т.д. Введите любую информацию, которую вы сочтете интересной и полезной для тех, кто увидит ваш альбом.", //19
    "Определите, кто сможет просматривать фото из этого альбома.", //20
    "Определите, кто сможет оставлять комментарии к вашим фото.", //21
    "Определите, кто сможет читать комментарии к вашим фото.", //22
    "Определите, кто сможет голосовать за ваши фотографии.", // 23
    "Определите, кто сможет видеть выставленные баллы.", //24
    "Введите пароль, который будет запрошен у пользователей при попытке посмотреть содержимое этого альбома. В пароле нельзя использовать кириллицу. Длина пароля должна быть не менее четырёх символов. Не выбирайте слишком простой пароль, его могут легко подобрать.", //25
    "Метки - это ключевые слова или словосочетания, которыми пользователи кратко характеризуют сюжеты своих фото.", //26
    "На этой странице вы можете загрузить ваши видеоролики в альбом. Выберете наиболее удобный для вас способ загрузки.", //27
    "Нажмите кнопку «Обзор...» и выберите ролики формата mpg, wmv, avi (<a href=\"http://video.mail.ru/cgi-bin/fsupport#format\" target=\"_blank\">поддерживаемые форматы</a>). Максимальный суммарный размер закачиваемых файлов - 300 МБ. Максимальная длительность одного ролика - 30 минут.", //28
    "Дайте название ролику", //29
    "Введите метки, соответствующие этому ролику, разделяя их запятой. Метки - это ключевые слова или словосочетания, кратко характеризующие сюжет ролика. Они позволят вам свободно ориентироваться в своем личном видеоархиве, легко находить чужие ролики, имеющие общие метки с вашими и т.д.<br><br>Пример набора меток: &laquo;Питер, Адмиралтейство, Нева, пейзаж, зима&raquo;.<br><br>Подробности - в разделе <a href=\"http://foto.mail.ru/cgi-bin/fsupport\">&laquo;Помощь&raquo;<\/a>", //30
    "Краткое опишите ролик: что в нем показано, где и когда вы сняли этот ролик и т.д. Введите любую информацию, которую вы сочтете интересной и полезной для тех, кто увидит ваш ролик.", //31
    "Выберите альбом, в который вы хотите поместить ролик. Если вы хотите создать для этого ролика новый альбом, выберите вариант «Новый альбом...».", //32
    "Если Вы хотите получить уведомление об окончании обработки ролика, то поставьте галочку", //33
    "Введите полный адрес (URL) ролика в интернете. Например: «<u style=\"color: rgb(0, 70, 140);\">http://video.mail.ru/corp/afisha/trailers/595.html</u>». Ролик должен иметь формат mpg, wmv, avi (поддерживаемые форматы) и размер не более 300 МБ, длительность не более 30 мин.", //34
    "Если хотите, вы можете дать латинское название папке, которое будет отражено в адресе (URL) альбома.<br><br>Например, если вы назвали папку &laquo;vesna&raquo;, то адрес созданного альбома будет выглядеть так: http://my.mail.ru/community/test77777/video/vesna", //35
	"На сервисе Мой Мир@Mail.Ru вы можете оценить понравившееся вам фото по пятибальной шкале со значениями от +1 до +5.<br>Рейтинг фото измеряется арифметической суммой всех выставленных баллов.<br>Подробнее с системой голосования вы можете ознакомиться <a href=\"http://foto.mail.ru/catalog/static/vote.html\" target=\"_blank\">здесь<\/a>", //36
	"Чтобы вы смогли легко найти ваших одноклассников, нужно указать год, когда вы пошли в первый класс. Это параметр, одинаковый для всех школ. Заполните его один раз для самой первой школы, в которой учились. Для остальных школ его заполнять не придется.<br><br>Также для каждой школы нужно указать:<br><ul><li>Год, начала обучения в конкретной школе. Если вы учились в школе с первого класса, то год, когда вы пошли в первый класс, и год начала обучения будут совпадать. Если же вы учились в школе не с первого класса, укажите, в каком году вы начали учиться именно в этой школе.</li><li>Год окончания обучения в конкретной школе – это год, в котором вы перешли из этой школы в другую, или год выпускного.</li></ul>", //37
	"Новая возможность позволит Вам <b>сохранять анонимность</b> во время прогулок по чужим Мирам!<br><br>Что может быть более интригующим, чем неожиданный визит таинственного незнакомца или незнакомки?<br><br><div class=\"tar pr5\"><a  href=\'/my/ghosts\'>подробнее <\/a></div>", //38
	"<h1 class=\"mb5\">SMS-игры</h1><b style=\"font-size: 110%\">Держи десять!</b> <a href=\'/my/megavote-info\'>Подробнее</a><br><div class=\"mb5 mt5\"><span class=\"grey\">Возможность ставить оценку +10 в течение 1 часа.</span><br>Для участия отправьте SMS</div><div class=\"code\">с кодом</div><div class=\"right_code\"><b class=\"orange\">28+" + ActiveID + "</b></div><div class=\"code\">на номер</div><div class=\"right_code\"><div class=\"fll orange\" style=\"height: 30px; width: 40px;\"><b id=\"UserShortNumber\">4446</b></div>Если вы находитесь в <span id=\"UserCountry\">России</span><br><a onclick=\"return newHelp(event, '40', 0, '181');\" href=\"#\" noclose=1>Другая страна</a></div><div class=\"mt5\">Стоимость услуги: 0,99 у.е. без НДС.<br><a href=\"http://rates.mail.ru/\">Условия предоставления услуги</a></div>", //39
	"<table class=\"code_counties\"><tr> <td class=\"w-50 grey pb3\">Номер</td><td class=\"grey pb3\">Страна</td></tr><tr><td></td><td><div class=\"code_bord\"></div></td></tr><tr><td class=\"bb\">4446</td><td class=\"code_bord\"><ul><li onclick=\"setCountry(event, 'ru');\">Россия</li><li onclick=\"setCountry(event, 'ua');\">Украина</li><li onclick=\"setCountry(event, 'kz');\">Казахстан</li><li onclick=\"setCountry(event, 'am');\">Армения</li><li onclick=\"setCountry(event, 'ge');\">Грузия</li><li onclick=\"setCountry(event, 'tj');\">Таджикистан</li><li onclick=\"setCountry(event, 'az');\">Азербайджан</li><li onclick=\"setCountry(event, 'uz');\">Узбекистан</li></ul></td></tr><tr><td></td><td><div class=\"code_bord\"></div></td></tr><tr><td class=\"bb\">1824</td><td><ul><li onclick=\"setCountry(event, 'lv');\">Латвия</li></ul></td></tr><tr><td class=\"bb\">1624</td><td><ul><li onclick=\"setCountry(event, 'lt');\">Литва</li></ul></td></tr><tr><td class=\"bb\">1302</td><td><ul><li onclick=\"setCountry(event, 'ee');\">Эстония</li></ul></td></tr><tr><td class=\"bb\">82300</td><td><ul><li onclick=\"setCountry(event, 'de');\">Германия</li></ul></td></tr><tr><td class=\"bb\">4070</td><td><ul><li onclick=\"setCountry(event, 'il');\">Израиль</li></ul></td></tr><tr><td class=\"bb\"></td><td><ul></ul></td></tr></table>", //40
	"Вы&nbsp;&mdash; <b>Создатель</b> сообщества. Вы имеете все возможные права по отношению к своему сообществу. Вы можете редактировать информацию о сообществе, менять настройки сообщества (описание, права доступа&hellip;), редактировать список участников сообщества (удалить участника из сообщества, добавить участника в черный список), модерировать записи участников сообщества, назначать смотрителей и модераторов, и, наконец, удалить свое сообщество.<br><br><b>Смотритель</b> назначается создателем, он фактически является его замом&nbsp;&mdash; имеет все те же полномочия, что и создатель, кроме назначения смотрителя и удаления сообщества. Смотритель назначается в помощь создателю, если создателю по каким-то причинам не хватает времени заниматься сообществом.<br><br><b>Модератор</b> нужен для слежения за порядком в сообществе: он может удалить запись, добавить автора в черный список, может модерировать сообщества с премодерацией. Он не может назначать смотрителей и модераторов, не может менять настройки сообщества.<br>Если модераторы отдельно не назначены, ими считаются смотрители и создатель.", //41
	"Если вы хотите, чтобы пользователи оценили вашу новую фотографию, загрузите её!", //42
    "Другие Пользователи не видят, что Вы на сайте и даже не догадываются, что Вы невидимы.", //43
	"<span class='wer'>Поставьте галочку &quot;Показывать мне вакансии в Моем мире&quot; и Вы получите блок с горячими вакансиями в левой колонке</span>", //44
	"На этой странице, вы, как создатель и организатор конкурса, должны выбрать победителей.<br /><br />В левой колонке находятся цифры обозначающие места. В правой колонке номинанты, которых вы отметили для распределения между ними призовых мест.<br /><br />Все что вам нужно сделать, просто «растащить» номинантов по их местам. Для этого перетащите их мышкой на нужные места.", //45
	"Записи могут содержать «Метки» — ключевые слова, которые пользователи указывают при публикации своих  записей.<br /><br />В блоке «Метки» выведены ключевые слова, которые наиболее часто указываются в публикуемых на проекте записях. Чем больше шрифт Метки, тем чаще она встречается.<br /><br />При клике на ключевое слово, вы увидите список всех записей, содержащих указанную Метку.<br /><br />С помощью Меток очень удобно искать нужные записи.", //46
	"Настройки \"По умолчанию\" определяются <a href=\"http://my.mail.ru/my/editprops\">настройками сообщества</a>.", //47
	"RSS&nbsp;&mdash; это формат, предназначенный для трансляции лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в  формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами.<br /><br />Существует  программное  обеспечение (RSS-агрегаторы, RSS-ридеры), собирающее и  обрабатывающее информацию,   предоставленную в формате RSS. Используя специальные программы или онлайн сервисы вы можете подписаться на обновления  любого блога, сообщества, ленты своих друзей.<br /><br />Чтобы добавить новый канал в RSS-клиент, скопируйте ссылку на RSS-поток этого  канала в выбранную программу чтения RSS.", //48
	'Рейтинг записи позволяет другим пользователям оценивать ваши записи по трехбалльной шкале:<br>от +1 до +3.<br><br>Если вы не хотите, что бы ваши записи участвовали в голосовании или чтобы другие пользователи могли видеть выставленные баллы за вашу запись, вы можете изменить эти настройки в <a href="http://blogs.mail.ru/cgi-bin/journal/jeditprops" target="_blank">настройках</a> своего блога.', //49
	'Для данного отображения меток рекомендуются версии браузеров FireFox 3 и выше, Internet Explorer 7 и выше, Opera 9.6 и выше.<br>Также необходим Flash, не ниже девятой версии.', //50
	'В этом рейтинге участвуют Пользователи, получившие наибольшее количество оценок \"+10\".<br><br>Рейтинг текущего дня обновляется раз в час.<br>Рейтинг за сутки и неделю - раз в сутки.', //51
	'В этом рейтинге участвуют фотографии Пользователей, получившие наиболее количество оценок \"+10\".<br><br>Рейтинг текущего дня обновляется раз в час.<br>Рейтинг за сутки и неделю - раз в сутки.', //52
	'В этот блок попадают Пользователи, которые могут оценивать фотографии на \"+10\".<br><br><a href=\"/my/megavote-info\">Подробнее об услуге "Держи десять"</a>.', //53
	'Вы не можете выбрать больше 100 друзей', //54
	'Аудиозапись добавлена', //55
	'Уже есть в вашем Мире', //56
	'<h1 class="mb5">SMS-игры</h1><b style="font-size: 110%">Держи десять!</b> <a href="/my/megavote-info">Подробнее</a><br><div class="mb5 mt5"><span class="grey">Возможность ставить оценку +10 на </span><select name="UserPeriod" id="UserPeriodID" onChange="setPrefixShortNum(this.value,0)"><option value="0">1 час</option><option value="1" selected>24 часа</option><option value="7">7 дней</option><option value="30">Месяц</option></select><br>Для участия отправьте SMS</div><div class="code">с кодом</div><div class="right_code"><b class="orange" id="UserSms">63+' + JHash.ActiveID + '</b></div><div class="code">на номер</div><div class="right_code"><div class="fll orange" style="height: 30px; width: 40px;"><b id="UserShortNumber">4449</b></div>Если вы находитесь в <select name="UserCountry" id="UserCountryID" onChange="setPrefixShortNum(this.value,1)"><option value="ru" selected>России</option><option value="ua">Украине</option><option value="kz">Казахстане</option><option value="am">Армении</option><option value="ge">Грузии</option><option value="tj">Таджикистане</option><option value="az">Азербайджане</option><option value="lv">Латвии</option><option value="lt">Литве</option><option value="ee">Эстонии</option><option value="de">Германии</option><option value="il">Израиле</option><option value="by">Беларуси</option></select></div><div class="mt5">Стоимость услуги: 0,99 у.е./на 1 час, 2,99 y.e./на 24 часа, 4,99 y.e./на 7 дней без НДС.<br><a href="http://rates.mail.ru/">Условия предоставления услуги</a></div><div class="pt5 pl10 pb5" style="background-color:#e6effe; margin: 3px -3px -8px -10px; //position:relative;"><a href="/my/megavote-info" class="mf_bold mf_t12">Другие способы оплаты</a><span class="mf_supnew">new</span><br /><a href="/my/megavote-info" class="mf_iOnes" style="background: url(http://img3.imgsmail.ru/r/my/_money_help.png) left bottom no-repeat;width:247px;height:27px;"></a></div>', //57
	'<div class="inner"><p>Вы можете позвонить<br>пользователю через Mail.ru Агент</p><i onClick=\"getAgentLink();\" class=\"a-call\"></i></div>', //58
	'<span class="wer"> Поставьте галочку &quot;Показывать мне вакансии в Моем мире&quot; и Вы получите блок с горячими вакансиями в левой колонке</span>', //59
	'<h1 class="mb5">Сделать Лидером</h1><div class="mb5 mt5">Чтобы сделать это сообщество Лидером, отправьте с мобильного телефона SMS</div><div class="code">с кодом</div><div class="right_code"><b class="orange">17+' + JHash.CommunityID + '</b></div><div class="code">на номер</div><div class="right_code"><div class="fll orange" style="height: 30px; width: 40px;"><b id="UserShortNumber">4446</b></div>Если вы находитесь в <select name="UserCountry" id="UserCountry" onChange="setCountry2(this.value)"><option value="ru" selected>России</option><option value="ua">Украине</option><option value="kz">Казахстане</option><option value="am">Армении</option><option value="ge">Грузии</option><option value="tj">Таджикистане</option><option value="az">Азербайджане</option><option value="lv">Латвии</option><option value="lt">Литве</option><option value="ee">Эстонии</option><option value="de">Германии</option><option value="il">Израиле</option><option value="by">Беларуси</option></select></div><div class="mt5">Стоимость услуги: 0,99 у.е. без НДС.<br /><a href="http://rates.mail.ru/" target="_blank">Условия предоставления услуги</a></div>' //60
];

var Helps = [];
function setCountry(event, cut) {
    var Countries = {
	"ru":['России',4446], 
	"ua":['Украине',4446], 
	"kz":['Казахстане',4446], 
	"am":['Армении',4446], 
	"ge":['Грузии',4446], 
	"tj":['Таджикистане',4446], 
	"az":['Азербайджане',4446], 
	"uz":['Узбекистане',4446], 
	"lv":['Латвии',1824], 
	"lt":['Литве',1624], 
	"ee":['Эстонии',1302], 
	"de":['Германии',82300], 
	"il":['Израиле',4070],
	"by":['Беларуси',4446]
    };
    $('UserCountry').innerHTML = Countries[cut][0];
    $('UserShortNumber').innerHTML = Countries[cut][1];
    closeHelp(event, 1);
    return false;
}

function setCountry2(value) {
    var country_prefix = {
		"ru":['России',4446],
		"ua":['Украине',4446],
		"kz":['Казахстане',4446],
		"am":['Армении',4446],
		"ge":['Грузии',4446],
		"tj":['Таджикистане',4446],
		"az":['Азербайджане',4446],
		"uz":['Узбекистане',4446],
		"lv":['Латвии',1824],
		"lt":['Литве',1624],
		"ee":['Эстонии',1302],
		"de":['Германии',82300],
		"il":['Израиле',4070],
		"by":['Беларуси',4446]
    };
    var country = $('UserCountry').value;
    $('UserShortNumber').innerHTML = country_prefix[country][1];
}

function setPrefixShortNum (value, order) {
if(value != '30') {
    var country_prefix = {
        28: {"ru":['России',4446],
             "ua":['Украине',4446],
             "kz":['Казахстане',4446],
             "am":['Армении',4446],
             "ge":['Грузии',4446],
             "tj":['Таджикистане',4446],
             "az":['Азербайджане',4446],
             "uz":['Узбекистане',4446],
             "lv":['Латвии',1824],
             "lt":['Литве',1624],
             "ee":['Эстонии',1302],
             "de":['Германии',82300],
             "il":['Израиле',4070],
             "by":['Беларуси',4446]},

        63: {"ru":['России',4449],
             "ua":['Украине',4449],
             "kz":['Казахстане',4449],
             "am":['Армении',4449],
             "ge":['Грузии',4107],
             "tj":['Таджикистане',4449],
             "az":['Азербайджане',4449],
             "lv":['Латвии',1824],
             "lt":['Литве',1624],
             "ee":['Эстонии',1204],
             "de":['Германии',82300],
             "il":['Израиле',4070],
             "by":['Беларуси',4449]},
            
        64: {"ru":['России',4161],
             "ua":['Украине',4161],
             "kz":['Казахстане',4161],
             "am":['Армении',8161],
             "ge":['Грузии',4161],
             "tj":['Таджикистане',4161],
             "az":['Азербайджане',8171],
             "uz":['Узбекистане',4449],
             "lv":['Латвии',1824],
             "lt":['Литве',1624],
             "ee":['Эстонии',1206],
             "de":['Германии',82300],
             "il":['Израиле',4070],
             "by":['Беларуси',4161]}
    };
    
    var period_prefix = {0: 28, 1: 63, 7: 64};
    
    var country = $('UserCountryID').value;
    var period  = $('UserPeriodID').value;
    
    if (order > 0) { 
       country = value;
    } else {
       period  = value;
    }
    
    var prefix = period_prefix[period];

    var sms = $('UserSms').innerHTML;
    var arr = sms.split('+');
    $('UserSms').innerHTML = prefix + '+' + arr[1];
    
    $('UserShortNumber').innerHTML = country_prefix[prefix][country][1];
} else {
	location.pathname = '/my/megavote-info';
}
}

function showHelp(event, id, r){
    event = event || window.event;
    var element = event.target || event.srcElement;
    var div = $("help_div");
    if (element && div) {
        var coor = getPosition(element);
        div.update("<a onclick=\"return clear_help()\" href=\"\"><img src=http://img3.imgsmail.ru/mail/ru/images/blogs/close_help.gif height=7 width=7 align=right><\/a><br><div>" + helpData[id] + "<\/div>");
        div.className = "help_div";
	if (r == 1){
                div.setStyle({
			top: coor.top + element.offsetHeight + 'px',
			left: coor.left - 347 + 'px',
			display: 'block',
			visibility: 'visible'
		});
			}else {
		div.setStyle({
			top: coor.top + element.offsetHeight + 'px',
			left: coor.left + 'px',
			display: 'block',
			visibility: 'visible'
		});
			}
        event.cancelBubble = true;
    }
    return false;
}

function newHelp(event, id, r, w, absolute){
    event = event || window.event;
    var element = event.target || event.srcElement;
    if($('help_div_' + id)) closeHelp(event, 1);
    if (element) {
	var div = document.createElement('div');
	div.innerHTML='<div class="bg" id="help_div_' + id + '"><i class="break" onclick="return closeHelp(event, 1);"></i><br>' + helpData[id] + '</div>';
	div.className = 'helpDiv';
	var coor;
	if(absolute) {
	    coor = {'top':event.clientY - 11, 'left':event.clientX};
	    if(w && (document.body.clientWidth < w + event.clientX)) r = 1;
	    else r = 0;
	}
	else coor = getPosition(element);
	div.style.top = coor.top + 'px';
	div.style.left = (r ? w ? (- w + 11) : (- 336) : 0) + coor.left + 'px';
	if(w) div.style.width = w + 'px';

	Helps.push(div);
	event.cancelBubble = true;
	if(event.stopPropagation) event.stopPropagation();
	if(document.body.addEventListener) 
	    document.body.addEventListener('click', closeHelp, 'false');
	else if(document.body.attachEvent) 
	    document.body.attachEvent('onclick', function(){closeHelp();});
	(document.getElementById('boosterCanvas') || document.body).appendChild(div)
    }
    return false;
}

function closeHelp(event, close){
    if(!Helps.length) return;
    event = event || window.event;
    var element = event.target || event.srcElement;
    if($(element).readAttribute('noclose')) return;
    if(!checkParent(element) || close){
	var helpdiv = Helps.pop();
	if(helpdiv) helpdiv.parentNode.removeChild(helpdiv); //<-- IE brainfuck
	else return;
	if(document.body.detachEvent) document.detachEvent('onclick', closeHelp);
	else if(document.body.removeEventListener) document.removeEventListener('click', closeHelp, false);
    }
    return false;
}

function checkParent(element) {
    var reg = /^help_div_\d/;
    if(reg.test(element.id)) return 1;
    while(element.parentNode) {
	element = element.parentNode;
	if(reg.test(element.id)) return 1;
    }
    return 0;
}

function getPosition(offsetTrail){
    var offsetLeft = 0;
    var offsetTop = -11;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    return {
        left: offsetLeft,
        top: offsetTop
    }
}


function req_stat(url, dstId, oncontready, append, timeout, onerror) {
	
	var _s = arguments.callee;
	if(!_s.urls) _s.urls = {};
	
	var key = url+'_'+dstId;
	if(document.getElementById(dstId).innerHTML.length) {
		if( _s.urls[key] && _s.urls[key] == 2 ){
			return oncontready();
		}
	}
	_s.urls[key] = 1;
		
	if(typeof onerror != 'function')
		onerror = function(){}
		
	try {
		var req = !!window.XMLHttpRequest ? (new XMLHttpRequest()) : (new ActiveXObject("Microsoft.XMLHTTP"));
	} catch(e) {
		onerror(1, '', e);
	}
	
	if (req) {
		try {
			var tmr = false;
			var timeoutFired = false;
			if(timeout)
				tmr = window.setTimeout(function(){
					onerror(0, '', {});
					timeoutFired = true;
				}, timeout*1000);
				
			req.onreadystatechange=function() {
				if (req.readyState==4) {
					window.clearTimeout(tmr);
					if(timeoutFired)
						return;
					if (req.status==200 || req.status==0) {
						
						var e = document.getElementById(dstId);
						if(!e) {
							onerror(4, req.responseText, {});
							return;
						}
							
						if(!append) {
							e.innerHTML += req.responseText;
						} else {
							var d = document.createElement('div');
							d.innerHTML = req.responseText;
							var len = d.childNodes.length;
							for(var i=0; i<len; i++) {
								e.appendChild(d.childNodes[i]);
							}
							d=null;
						}
						e=null;
						_s.urls[key] = 2;
						try {
							oncontready();
						} catch (e){
							onerror(5, req.responseText, e);
						}
						
					} else {
						onerror(2, '', {});
					}
				}
				
			}
			
			if(/*@cc_on!@*/false && parseInt(window.navigator.userAgent.match(/msie\s(\d+.\d+)/i)[1]) == 6 ) {
				if( url.indexOf('?') != -1 )
					url += '&r' + Math.random();
				else
					url += '?r' + Math.random();
			}
				
			req.open('GET', url, true);
			req.send('');
		} catch (e){
			onerror(3, '', e);
		}
	}
}


function include_script(url, onloadHandler, id) {
	
	arguments.callee.handlers[id] = onloadHandler;
	var c = document.getElementById('boosterCanvas') || document.body;
	var s = c.appendChild(document.createElement('script'));
	s.type = "text/javascript";
	s.language = "JavaScript";
	s.src = url;
	s.id = id;
	/*
	s.onload = onloadHandler;
	s.onreadystatechange = function(){
		if (s.readyState == 'loaded')
			onloadHandler();
	}*/
	
}
include_script.handlers = {};

function run_once( id, cb ) {
	if(!arguments.callee.runned) arguments.callee.runned = {};
	
	if(!arguments.callee.runned[id] || !document.getElementById(id)) {
		arguments.callee.runned[id] = 1;
		cb();
		return true;
	}
	return false;
}



function CaptchedForm( p ) {
	this.form = $(p.formId);
	if(!this.form)
		return;
	
	var _this = this;
	this.form.captcha = {
		submit: function(){
			_this.onSubmit.apply(_this, arguments);
		}
	}
	
	if(p.handleSumbit) {
		this.form.onsubmit = function (){ return false;};
		this.form.observe('submit', this.onSubmit.bindAsEventListener(this));
	}
	
	this.p = p;
	
	if(p.captchaURL)
		this.captchaURL = p.captchaURL;
		
}

CaptchedForm.prototype = {
	captchaURL: 'http://my.mail.ru/cgi-bin/my/get_image?id=',
	htmlCreated: false,
	firstSend: true,
	captchaShown: false,
	captchaOpen:false,
	
	onSubmit: function(e){
		e && e.stop();
		
		if(typeof this.p.onBeforeSubmit == 'function')
			this.p.onBeforeSubmit.apply(this, arguments);
		
		if(!this.captchaOpen && this.captchaShown) {
			this.show();
		} else if(this.captchaOpen && this.captchaShown && this.captcha_input.value.replace(/\s*/, '')=='') {
			alert('Введите число, изображенное на картинке');
			this.show();
		} else {
		
			var seq = this.p.sequence;
			var req = [];
			for(var i = 0, seq_len = this.p.sequence.length; i < seq_len; i++){
				var t = $(seq[i]);
				if(t)
					req[req.length] = t.value;
				else
					req[req.length] = null;
				t = null;
			}
			
			new Ajax.Request(this.p.action, {
				method: 'post',
				postBody: 'data=' + req.toJSON(),
				onSuccess: this.responseHandler.bindAsEventListener(this)
			});
			
			if(this.captcha_input)
				this.captcha_input.value = '';
				
		
		}
	},
	
	
	
	responseHandler: function(t){
		if(t){
			var data = t.responseText.evalJSON(true);
			
			if(data[0] != 'AjaxResponse')
				return;
			if(data[1] == 'OK') {
				data.splice(0, 2);
				
				var captcha_id = this.p.resultDispatcher.apply(this, data);
				if(captcha_id) {
					this.show();
					$(this.p.prefix+'_captcha_id').value = captcha_id;
					this.captchaPointer.style.backgroundImage = 'url('+this.captchaURL+captcha_id+')';
					
					this.captchaShown = true;
					
					if(!this.firstSend)
						alert('Вы неверно ввели число, изображенное на картинке');
					this.firstSend = false;
					
				} else {
					this.hide();
					if(typeof this.p.onSuccess == 'function')
						this.p.onSuccess(t);

					this.captchaShown = false;
					
					this.firstSend = true;
				}
			}
		}
	},
	
	show: function(){
		if( !this.htmlCreated && !this.captchaPointer ) {
			if( (this.captchaPointer = $(this.p.prefix+'_captcha_container')) ){
				this.htmlCreated = true;
			} else {
				var t = this.form.appendChild(document.createElement('div'));
				t.innerHTML = '\
<div style="display: none;" id="'+this.p.prefix+'_captcha_container" class="capchaNewLeft">\
	<i id="'+this.p.prefix+'_toggle_captcha_button" class="mf_spIco"></i>Введите число,<br/>изображенное на картинке:\
	<div class="mt5">\
		<input name="captcha_id" type="hidden" id="'+this.p.prefix+'_captcha_id"/>\
		<input name="captcha_value" type="text" onkeypress="if(event.keyCode == 13) { document.getElementById(\''+this.p.prefix+'_captcha_submit\').click(); return false;}" id="'+this.p.prefix+'_captcha_input" class="capchaNewInp"/>\
		<input type="submit" id="'+this.p.prefix+'_captcha_submit" value="ОК" name="btn_ok"/>\
	</div>\
</div>';
				this.captchaPointer = $(this.p.prefix+'_captcha_container');
				this.htmlCreated = true;
			}
			
			$(this.p.prefix+'_toggle_captcha_button').observe('click', this.onClose.bindAsEventListener(this));
			if( this.p.onCaptchaSubmit )
				$(this.p.prefix+'_captcha_submit').observe('click', this.p.onCaptchaSubmit);
			this.captcha_input = $(this.p.prefix+'_captcha_input');
		}
		
		this.captchaPointer.style.display = 'block';
		this.captchaOpen = true;
		
	},
	
	hide: function(){
		if(this.captchaPointer)
			this.captchaPointer.style.display = 'none';
		this.captchaOpen = false;
	},
	
	onClose: function() {
		
		this.hide();
		this.firstSend = true;
	}
	
	
}



if (typeof MR === 'undefined') MR = {};

//if (!MR.imStatusNoAuto)
//    document.observe('dom:loaded', function () { MR.imStatusAuto = new MR.imStatus();
//                                                 MR.imStatusAuto.perform();
//                                               });

MR.imStatus = function (opt) {
    opt = opt || {};
    this.perRequest = opt.perRequest || 50;
};


MR.imStatus.prototype.perform = function () {
    this.collect();
    this.fetch();
};

MR.imStatus.addContactPopup = function () {
        var email = this.firstChild.attributes.email.value;
        var popup = window.open('http://' + location.hostname + '/cgi-bin/my/mrim_addcontact?user=' + email, 'add_mrim_contact', 'width=600,height=660,toolbars=no,scrollbars=no,resizable=no,left=' + (screen.width - 660) / 2 + ',top=' + (screen.height - 660) / 2);
        if (popup)
            popup.focus();
        return false;
};

MR.imStatus.prototype.collect = function collect () {
    var dogs = [], elements = document.getElementsByTagName('a'), parent;

    for (var i = elements.length - 1; i >= 0; i--) {
        var element = elements[i];
        if (element.className.match(/spr-mrim/) &&
            element.attributes.email &&
            element.attributes.email.value.match(/@/))
        {
            if (!Prototype.Browser.IE) {
                parent = element.parentNode;
                if (parent && parent.href && parent.href.match(/agent/)) {
                    element.parentNode.onclick = MR.imStatus.addContactPopup;
                }
            }
            element.email = element.attributes.email.value;
            dogs.push(element);
        }
    }
    return (this.dogs = dogs);
};


MR.imStatus.prototype.fetch = function () {
    var query,
        emails = this.dogs.pluck('email').sort().uniq(true),
        url = 'http://' + location.hostname + '/proxy-mrim-status?';

    while (emails.length) {
        query = emails.splice(0, this.perRequest);
        new Ajax.Request(url + query.join(','), {
                method: 'get',
                onSuccess: (function(query, transport) {
                                this.update(query, transport.responseText.split(new RegExp('')));
                            }).bind(this, query)
        });
    }
};

MR.imStatus.prototype.update = function (email, status) {
    var i, element, dogs = this.dogs, statusMap = $H();

    for (i = email.length - 1; i >= 0; i--)
        statusMap.set(email[i], status[i]);

    for (i = dogs.length - 1; i>= 0; i--) {
        element = dogs[i];
        status = statusMap.get(element.email);

        element.className = element.className.replace(/ *mrim-online(?:_\d+)?| *mrim-away(?:_\d+)?| *mrim-offline(?:_\d+)?/, '');
        element.className += (status == '0' ? ' mrim-offline' :
                              status == '1' ? ' mrim-online' :
                              status == '2' ? ' mrim-away' :
                                              ' mrim-offline');
		element.className += '_' + element.className.match(/spr-mrim-(\d+)/)[1];
    }

};


function DialoguesThread ( params ){
    if(params) {
		for(var key in params) this[key] = params[key];
    }else{
		throw('Error in dialogues');
    }
    
    if(this.form) {
    	this.form.observe ('submit', this.submit.bindAsEventListener(this));
    }
    else {
    	throw('Error in dialogues');
    }
    if(this.message) {
		this.message.observe('focus', this.checkTextlimit.bindAsEventListener(this));
		this.message.observe('keypress', this.checkTextlimit.bindAsEventListener(this));
		this.message.observe('keyup', this.checkTextlimit.bindAsEventListener(this));
		this.message.observe('keydown', this.checkTextlimit.bindAsEventListener(this));
		this.message.observe('change', this.checkTextlimit.bindAsEventListener(this));
		this.message.observe('click', this.checkTextlimit.bindAsEventListener(this));
		this.message.observe('blur', this.checkTextlimit.bindAsEventListener(this));
	}
    else {
    	throw('Error in dialogues');
    }	    
    this.animationSpeed = 0.25;
    this.animationTime = 50;  
}

DialoguesThread.prototype.submit = function(t) {
	if(t && t.responseText) {
		this.inRequest = 0;
		this.submitBtn.disabled = false;
		var data = t.responseText.evalJSON(true);
		if(!data) return;
		var magic = data.shift();
		if(magic != "AjaxResponse") return;
		if(!data) return;
		var result = data.shift();
    	if(result == "OK") {
    		this.checkTextlimit();
    		if(!data) return;
    		var msg = data.shift();
    		if(msg == "captcha") {
    			var cid = data.shift();
    			return Captcha.show(this.submitBtn, this.onCaptcha.bind(this), {'ID': cid, 'topEx': 45, 'leftEx': -15, 'position': 'absolute'});
    		}
    		if(msg == "sended") {
    			this.updateCounters();
				this.message.value = '';
				this.makeMessage(data.shift(), data.shift());
    		} else {    		
	    		this.statusMessage.className = "info_bad";
	    		this.statusMessage.innerHTML = '';
	    		this.statusMessage.style.display = 'block';
	    		if(msg == "suspended" || msg == "not_found" || msg == "fail") {
					this.statusMessage.innerHTML = '<b>Ошибка!</b>';
	    		}
	    		if(msg == "only_friends") {
	    			if(!data) return;
	    			var r = data.shift();
	    			if(r == 1 || r == 2) {
						this.statusMessage.innerHTML = '<b>Ошибка!</b><br>';
	    				this.statusMessage.innerHTML += 'Сообщения пользователю могут отправлять только друзья';
	    				if(r == 2) this.statusMessage.innerHTML += ' или друзья друзей';
	    			}
	    			else {
						this.statusMessage.innerHTML = '<b>Ошибка!</b>';
	    			}
	    		}
	    		if(msg == "spammer") {
					this.statusMessage.innerHTML = '<b>Ошибка!</b><br>';
	    			this.statusMessage.innerHTML += 'Отправка сообщений с вашей учетной записи заблокирована';
	    		}
	    		if(msg == "journal_blacklist") {
	    			this.statusMessage.innerHTML = '<b>Ошибка!</b><br>';
	    			this.statusMessage.innerHTML += 'Пользователь внесен Вами в Ваш Черный список.';
	    		}
	    		if(msg == "active_blacklist") {
	    			this.statusMessage.innerHTML = '<b>Ошибка!</b><br>';
	    			this.statusMessage.innerHTML += 'Пользователь внес Вас в Черный список.'
	    		}    		
	    	}
    		this.noListen = 0;
    	}
    } else {
    	if(this.inRequest) return;
    	if(this.noAjax) {
            if(this.captchaID) return Captcha.show(this.submitBtn, this.onCaptcha.bind(this), {'ID': this.captchaID, 'topEx': 45, 'leftEx': -15, 'position': 'absolute'});
            if(window.Booster) return Booster.go({'url': this.form.action, 'm': this.form.method, 'd': $(this.form).serialize()});
            this.form.submit();    		
    	}
    	else {
			var data = [];
			if(this.captchaID) {
				data = [ this.userEmail, this.message.value, this.captchaID, this.captchaAnswer];
			}
			else {
				data = [ this.userEmail, this.message.value ];
			}	
			this.inRequest = 1;	
			this.submitBtn.disabled = true;
			new Ajax.Request(this.requestURL + 'ajax_call=1&func_name=perl_dialogues_add_post' , {
				method: 'post',
				postBody: 'data=' + data.toJSON(),
				onSuccess: this.submit.bindAsEventListener(this)
			});
		}
		return false;
    }	
}

DialoguesThread.prototype.checkTextlimit = function(event){
    var text = this.message;
    var len = text.value.length;
    this.submitBtn.disabled = (len == 0) || (this.userEmailBox && this.userEmailBox.value.length == 0);
    if(len > this.limit) text.value = text.value.slice(0, this.limit);
    if(len >= this.limit) {
		this.charsCounter.innerHTML = this.limit;
    } else {
		this.charsCounter.innerHTML = len;
    }
    if(!this.noListen && event && event.ctrlKey && event.keyCode == 13) {
    	this.noListen = 1;
    	this.submit();
	}
}

DialoguesThread.prototype.onCaptcha = function(id, value, el) {
	this.captchaID = id;
	this.captchaAnswer = value;
	this.submit();
	this.captchaID = this.captchaAnswer = 0;
}

DialoguesThread.prototype.makeMessage = function(msg, msg_id) {
	if(!msg || !msg.length) return;
	var time = new Date();
	var month = time.getMonth() + 1;
	time = 	time.getDate() + '-' + month + '-' + time.getFullYear() + ' ' + 
			time.getHours() + ':' + time.getMinutes();
	var back = window.Booster ? (Booster.currentURL ? Booster.currentURL : document.location) : document.location;
	var d = new Element('div');
	d.className = 'mf_ohd';
	d.innerHTML = '<a class="mf_spIco spr-mrim-13" style="background-image: url(http://status.mail.ru?' + this.activeEmail + '); background-position: 0px 0px !important;" href="http://www.mail.ru/agent?message&to=' + this.activeEmail +
				'" title="Щелкни, чтобы пообщаться с этим человеком в Mail.Ru Агенте"></a>' + 
				'<a href="' + this.activeDir + '" onclick="if(window.Booster) return Booster.go({\'url\': this.href, \'sc\': \'top\'})">' + this.activeName + '</a>' +
				'<span class="grey tah t95 pl10">' + time + '</span>' +
				'<a bstr-confirm="Вы уверены, что хотите удалить сообщение?" onclick="msg=this.readAttribute(\'bstr-confirm\'); if(window.Booster) return Booster.go({\'url\': this.href, \'conf\': msg, \'nh\': 1}); return confirm(msg);" href="/my/dupdate?id=' + msg_id + 
				'&delete=' + this.userEmail + '&back=' + back + '" title="Удалить" class="mf_spIco mf_iDel2 mf_ml10">удалить</a>' +
				'<div class="pt3">' + msg + '</div></div>';
	var p = new Element('p');
	p.className = 'hrm12';
	this.thread.insertBefore(p, this.thread.firstChild);
	this.thread.insertBefore(d, this.thread.firstChild);
	
    var height = d.clientHeight;
    var curHeight = 0;
    var delta = Math.floor(height * this.animationSpeed) || 1;
    d.style.height = '0px';
    
    var f = function () {
        if(curHeight >= height) return;
        var dl = (height - curHeight) < delta ? height - curHeight : delta;
        curHeight += dl;
        d.style.height = curHeight  + 'px';
        setTimeout(f, (this.animationTime * this.animationSpeed) || 1);
    };
    setTimeout(f, (this.animationTime * this.animationSpeed) || 1);
}

DialoguesThread.prototype.updateCounters = function(t) {
	if (!this.enableCounters) return;
	if(!this.countersContainer) {
		var container = document.createElement("div");
		this.countersContainer = $(container);		
		this.countersContainer.id = 'dialogues_thread_counters_container';
		$($('boosterCanvas') || document.body).appendChild(this.countersContainer);		
		
        var ct = ['li', 'top'];
        for(var i in ct) {
            var c = document.createElement("img");
            c.id = 'dialogues_thread_' + ct[i] + '_counter';
            c.width = 1;
            c.height = 1;
            c.alt = '';
            this.countersContainer.appendChild(c);
        }
		this.liCounter = $('dialogues_thread_li_counter');
		this.topCounter = $('dialogues_thread_top_counter');
	}
	var d = escape('http://' + document.location.host + '/my/dupdate?send=' + this.userEmail);
	var r = escape(document.location);
	if(this.liCounter) 
		this.liCounter.writeAttribute('src', "http://counter.yadro.ru/hit?r"+r+
			((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+
			(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+
			";u"+d+";"+Math.random());
	if(this.topCounter) {
		var js = '13';
		var a = ';r='+r;
		a+=';j='+navigator.javaEnabled();
		a+=';s='+screen.width+'*'+screen.height;
		a+=';d='+(screen.colorDepth?screen.colorDepth:screen.pixelDepth);
		this.topCounter.writeAttribute('src', 'http://top3.mail.ru/counter'+ 
			'?id=1243438;js='+js+a+';rand='+Math.random());
	}		
}

var Complaint = (function(){
    var _cform = function(id, email, back, name) {
		return 	'<div class="mf_spamForm">' +
			   	'<form name="complaint" action="/my/complaint" onsubmit="return false;">' +
			   	'<div class="mf_spamFormH2">Пожаловаться на спам</div>' + 
				'<input type="hidden" name="spamer" value="' + email + '">' +
				'<input type="hidden" name="message" value="' + id + '">' +
				'<input type="hidden" name="back" value="' + back + '">' +
				'<label><input type="radio" name="del" value="message" checked> удалить это сообщение от пользователя ' + name + '</label><br />' +
				'<label><input type="radio" name="del" value="thread"> удалить все сообщения от пользователя ' + name + '</label>' +
				'<div class="mf_mt5 nobr">' +
				'<input type="submit" class="mf_spamFormBut" value="Подтвердить жалобу на спам" onclick="return Complaint.submit();">' +
				'<input type="button" class="mf_spamFormBut2" value="Закрыть" onclick="return Complaint.hide();">' +
				'</div>' +
				'</form></div>';
    };
    return {
		show: function (el, vars) {
			if(!vars) vars = {};
			if(vars.left == undefined || vars.top == undefined) {
				p = getPosition(el);
				vars.left = p.left;
				vars.top = p.top;
			}
			if(vars.leftEx) vars.left += vars.leftEx;
			if(vars.topEx) vars.top += vars.topEx;
        	var d = new Element('div');
        	$($('boosterCanvas') || document.body).appendChild(d);
        	d.innerHTML = _cform(vars.ID, vars.Email, vars.Back, vars.Name);
        	this.complaint = $(d.firstChild);
			this.complaint.style.left = vars.left + "px";
			this.complaint.style.top = vars.top + "px";
			this.complaint.style.position = 'absolute';
			if(vars.position) this.complaint.style.position = vars.position;
			this.complaint.show();
			return false;
		},
		submit: function() {
			this.complaint.hide();
	   		var form = $(this.complaint.getElementsByTagName('form')[0]);
	        if(Booster.inited) {
	        	Booster.go({'url': form.action, 'm': 'post', 'd': form.serialize(), 'nh': 1});
	    	}
	    	else {
	    		form.submit();
	    	}
			return false;
		},
		hide: function() {
			if(this.complaint) this.complaint.hide();
			return false;
		}
    };
})();

var Captcha = (function(){
    var _cform = function(id) {
		return '<div style="background-image: url(http://my.mail.ru/cgi-bin/my/get_image?id=' + id + ');" class="capchaNewLeft"><i class="mf_spIco" onclick="return Captcha.hide();"></i>Введите число,<br/>изображенное на картинке:<div class="mt5"><form onsubmit="return Captcha.submit(this);"><input name="captcha_value" type="text" class="capchaNewInp"/><input type="submit" value="ОК" name="btn_ok"/></div></div>';
    };
    return {
		show: function (el, handler, vars) {
			if(!vars) vars = {};
			if(vars.left == undefined || vars.top == undefined) {
				p = getPosition(el);
				vars.left = p.left;
				vars.top = p.top;
			}
			if(vars.leftEx) vars.left += vars.leftEx;
			if(vars.topEx) vars.top += vars.topEx;
        	var d = new Element('div');
        	$($('boosterCanvas') || document.body).appendChild(d);
        	d.innerHTML = _cform(vars.ID);
        	this.captcha = $(d.firstChild);
			this.captcha.style.left = vars.left + "px";
			this.captcha.style.top = vars.top + "px";
			this.captcha.style.position = 'absolute';
			if(vars.position) this.captcha.style.position = vars.position;
			this.handler = handler;
			this.el = el;
			this.ID = vars.ID;
			this.captcha.show();
			return false;
		},
		submit: function(form) {
			if(!form.captcha_value.value) {
				alert('Введите число, изображенное на картинке.');
			}
			else {
				this.captcha.hide();
				this.handler(this.ID, form.captcha_value.value, this.el);
			}
			return false;
		},
		hide: function() {
			if(this.captcha) this.captcha.hide();
			return false;
		}
    };
})();