// ========== Превью-листы на морде =========
function definePermitWidth() {
	var winWidth = screenSize().w <= 1024 ? 720 : parseInt(screenSize().w * 0.9 * 0.73);
	return winWidth;
}

// ======= Рандомный выбор завлекалки =======
var currentSearchStr; // Текущая завлекаловка
function printSearchStr() {
	var out = "Париж весной";
	if (typeof searchStrArray == 'undefined') return out;
	var pos = parseInt(searchStrArray.length * Math.random());
	out = typeof searchStrArray[pos] == 'undefined' ? searchStrArray[0] : searchStrArray[pos];
	currentSearchStr = out;
	return out;
}
// ====== /Рандомный выбор завлекалки =======

// ========= Контекстные подсказки ==========
// Массив с подсказками
var helpData = [
	"Это место занимает фото, за которое один из пользователей отправил больше SMS, чем остальные пользователи (принцип аукциона). Чем больше SMS отправляет пользователь за определенное фото, тем дольше оно находится на главной странице Фото@Mail.Ru, и тем больше посетителей могут его видеть. ваше фото тоже может занять это место. Узнать больше и выбрать фото для участия в Фото-Лидере можно в разделе <a href=\"http://foto.mail.ru/catalog/static/show_yourself.html\" style=\"white-space:nowrap;\">&laquo;SMS-игры&raquo;<\/a>.",
	"Это место занимает фото, получившее наибольший рейтинг по результатам голосования посетителей сервиса Фото@Mail.Ru.",
	"В SMS-топ попадают фото, за размещение которых пользователи заплатили с помощью SMS-сообщения на короткий номер. Самые старые фото вытесняются самыми новыми. Вы тоже можете разместить свое фото в SMS-топе. Узнать больше и выбрать фото для размещеня в SMS-топ можно в разделе <a href=\"http://foto.mail.ru/catalog/static/show_yourself.html\" style=\"white-space:nowrap;\">&laquo;SMS-игры&raquo;<\/a>.",
	"Метки - это ключевые слова или словосочетания, которыми пользователи Фото@Mail.Ru кратко характеризуют сюжеты своих фото. Ниже перечислены метки, которыми пользователи чаще всего помечают свои фото. Чем больше шрифт метки, тем больше изображений, отмеченных такой меткой, хранится на Фото@Mail.Ru. Выберите интересующую вас метку, и вы получите список всех отмеченных ею изображений.",
	"Здесь перечислены темы (категории), к которым пользователи относят свои фото. Чем больше шрифт категории, тем больше в ней изображений. Выберите интересующую вас категорию, и вы получите список всех изображений, относящихся к ней.",
	"Сюда попадают фото, загруженные пользователями в течение последних нескольких минут. Поскольку на Фото@Mail.Ru ежеминутно загружаются десятки изображений, фото в этом блоке постоянно сменяют друг друга.",
	"Здесь перечислены метки, которыми пользователи помечали свои фото в течение последних нескольких минут.",
	"Сюда попадают фото, признанные лучшими по результатам голосования пользователей.",
	"Введите метки, соответствующие этому фото, разделяя их запятой. Метки - это ключевые слова или словосочетания, кратко характеризующие сюжет фотографии. Они позволят вам свободно ориентироваться в своем личном фотоархиве, легко находить чужие фотографии, имеющие общие метки с вашими и т.д.<br /><br />Пример набора меток: &laquo;Питер, Адмиралтейство, Нева, пейзаж, зима&raquo;.<br /><br />Подробности - в разделе <a href=\"http://foto.mail.ru/cgi-bin/fsupport\">&laquo;Помощь&raquo;<\/a>",
	"Нажмите кнопку «Обзор...» и выберите в появившемся окне файл с фото, который вы хотите загрузить. Файл должен иметь формат JPEG (JPG), PNG, BMP, TIFF, GIF (статический).",
	"Дайте название фото",//10
	"Введите метки, соответствующие этому фото, разделяя их запятой. Метки - это ключевые слова или словосочетания, кратко характеризующие сюжет фотографии. Они позволят вам свободно ориентироваться в своем личном фотоархиве, легко находить чужие фотографии, имеющие общие метки с вашими и т.д.<br /><br />Пример набора меток: &laquo;Питер, Адмиралтейство, Нева, пейзаж, зима&laquo;.<br /><br />Подробности - в разделе <a href=\"http://foto.mail.ru/cgi-bin/fsupport\">&laquo;Помощь&raquo;<\/a>",
	"Краткое опишите фото: что на нем изображено, где и когда вы сделали этот снимок и т.д. Введите любую информацию, которую вы сочтете интересной и полезной для тех, кто увидит ваше фото.",
	"Выберите тему, наиболее подходящую сюжету вашего фото.",
	"Выберите альбом, в который вы хотите поместить фото. Если вы хотите создать для этого изображения новый альбом, выберите вариант &laquo;Новый альбом...&raquo;.",
	"Дайте название вашему альбому.",
	"Если хотите, вы можете дать латинское название папке, которое будет отражено в адресе (URL) альбома.<br /><br />Например, если ваш адрес - girl@mail.ru, и вы назвали папку &laquo;vesna&raquo;, то адрес созданного альбома будет выглядеть так: http://foto.mail.ru/mail/girl/vesna/",
	"Определите, кто сможет просматривать фото из этого альбома.",
	"На Фото@Mail.Ru постоянно проводятся разнообразные фотоконкурсы с розыгрышем призов. Победителя определяет голосование посетителей. Выберите конкурс из списка чтобы номинировать на него свою работу.",
	"Кратко опишите фото в альбоме: общая тема альбома, где и когда вы сделали эти снимки и т.д. Введите любую информацию, которую вы сочтете интересной и полезной для тех, кто увидит ваш альбом.",
	"Определите как будет выглядеть альбом в списке альбомов. В виде стандартной иконки альбома или миниатюры одной из фото.",
	"Определите, кто сможет оставлять комментарии к вашим фото.",
	"Определите, кто сможет читать комментарии к вашим фото.",
	"Выберите zip-архив, содержащий файлы формата JPEG (JPG), PNG, BMP, TIFF, GIF (статический). Максимальный размер архива – 300 Мб.",
	"Введите полный адрес (URL) фото в интернете. Например: «http://naprimer.ru/picture.jpg». Файл должен иметь формат JPEG (JPG), PNG, BMP, TIFF, GIF (статический).",
	"Если вам необходимо переместить это фото в какой-либо другой ваш альбом, выберите нужный альбом из списка.",
	"Если вам необходимо скопировать это фото в какой-либо другой ваш альбом, выберите нужный альбом из списка.",
	"На Фото@Mail.Ru постоянно проводятся разнообразные фотоконкурсы с розыгрышем призов. Победителя определяет голосование посетителей. Храня у нас свои фото, вы наравне с другими пользователями можете принимать участие в конкурсах.<br /><br />Ниже перечислены фотоконкурсы, которые проводятся прямо сейчас. Выберите интересующий ваш конкурс, и вы получите список фото, номинированных на него.",
	"Вы можете отправить вашим друзьям или знакомым письмо с приглашением посмотреть фото этого пользователя. Просто перейдите по этой ссылке и введите адреса e-mail ваших друзей, которым вы хотите показать фотографии.",
	"Перейдя по этой ссылке, вы сможете подписаться на автоматические почтовые уведомления о новых фото этого пользователя.",
	"Вы можете следить за обновлениями в альбомах этого пользователя с помощью программы-агрегатора. Такая программа будет с определенной периодичностью загружать с Фото@Mail.Ru RSS-поток пользователя и определять, не разместил ли он новые фото. Когда это произойдет, агрегатор автоматически оповестит вас. Существует множество программ-агрегаторов, и вы наверняка сможете выбрать приложение, которое придется вам по вкусу.<br /><br />Более подробно о технологии RSS можно узнать в разделе <a href=\"http://my.foto.mail.ru/cgi-bin/fsupport\">&laquo;Помощь&raquo;<\/a>.",
	"Вы можете отправить вашим друзьям или знакомым письмо с приглашением посмотреть ваши фотоальбомы. Просто нажмите на эту ссылку и введите адреса e-mail друзей, которым вы хотите показать фотографии.",
	"Многие современные фотокамеры имеют специальный датчик, позволяющий определять положение камеры в момент съемки (обычное или портретное). Эта информация хранится в файле с фотографией, и она может быть использована для автоматического поворота фото в &laquo;правильное&raquo; положение сразу после загрузки.",
	"По умолчанию загружаемые вами фото хранятся на Фото@Mail.Ru в разрешении 600 пикселей (точек) по наибольшей стороне, независимо от разрешения исходного изображения. Однако в некоторых случаях у вас может возникнуть необходимость хранить вместе с уменьшенной копией и оригинальное фото. Например, это важно, если вы собираетесь заказывать печать загружаемых вами снимков.",
	"Включите эту опцию, если сразу же после загрузке вы хотите заказать печать загруженных фото.",
	"Здесь перечислены метки, которыми пользователи помечали свои фото в течение этой недели.",
	"Здесь перечислены метки, которыми пользователи помечали свои фото в течение этого месяца.",
	"Здесь перечислены наиболее популярные метки, которыми пользователи помечали свои фото.",
	"На этой странице вы можете загрузить ваши фото в альбом. Выберете наиболее удобный для вас способ загрузки. Если вы собираетесь загрузить сразу много фото, рекомендуем вам воспользоваться быстрой загрузкой.",
	"Статус \"Принят\". Ваш заказ принят к исполнению. В течение 30 мин. с момента оформления вы можете его отменить.<br /><br /> Статус \"В печати\". Ваш заказ отправлен на печать.<br /><br /> Статус \"Доставлен\". Ваш заказ был напечатан и доставлен по указанному адресу или в пункт выдачи заказов. При необходимости вы всегда можете повторить этот заказ.",
	"Этот заказ был отменен. При необходимости вы можете его повторить.",
	"Определите, кто сможет голосовать за ваши фотографии.",
	"Определите, кто сможет видеть выставленные баллы.",
	"Ниже показаны фото, отобранные пользователем @&lt;NICKNAME&gt; в качестве наиболее ярких и интересных.",
	"Здесь перечислены награды, полученные фото по результатам голосования и участия в <a href=\"http://foto.mail.ru/catalog/static/show_yourself.html\" target=\"_blank\">SMS-играх<\/a>",
	"Метки - это клюевые слова или словосочетания, которым пользователи Фото@Mail.Ru кратко характеризуют сюжеты своих фото. Ниже перечислены метки, которыми пользователь пометил собственные фото, а также избранные фото (они могут быть как собственными, так и чужими).",
	"Ниже расположен список альбомов пользователя с его видеоролками.",
	"Здесь перечислены метки, наиболее часто встречающихся вместе с метками, заданными в поисковом запросе.",
	"Образ - это маленькая картинка (не более 90х90 пикселов), отражающая вашу сущность, ваш характер. По сути - это ваш мини-портрет, который отображается на большинстве сервисов Mail.Ru рядом с вашими сообщениями или комментариями.",
	"Добавьте в список \"Избранные пользователи\" ваших друзей, знакомых или просто пользователей, чьи фото вам интересны. Для этого введите адрес e-mail этого пользователя. Либо нажмите на иконку справа для добавления из адресной книги. Используйте ссылку \"Ещё адрес\" для добавления нескольких пользователей за один раз.",
	"Пользователи из этого списка могут просматривать фото из Ваших альбомов с общим доступом и доступом для избранных.",
	"Определите круг пользователей, которые смогут отправлять фото из ваших альбомов на печать.",
	"Определите круг пользователей, который смогу просматривать исходные файлы ваших фото.",
	"Определите частоту получения писем с уведомлениями о голосовании за ваши фото.",
	"Определите, хотите ли вы получать уведомления по E-mail о новых комментариях к вашим фото.",
	"Определите, хотите ли вы получать уведомления по E-mail о новых фото ваших Любимых пользователей.",
	"Определите, хотите ли вы получать уведомления по E-mail о новых возможностях и важных событиях сервиса Фото@Mail.Ru.",
	"Например, если ваш адрес - girl@mail.ru, и вы назвали папку &laquo;vesna&raquo;, то адрес созданного альбома будет выглядеть так: <br />http://foto.mail.ru/mail/girl/vesna/",
	"Метки - это ключевые слова или словосочетания, которыми пользователи Фото@Mail.Ru кратко характеризуют сюжеты своих фото. Ниже перечислены метки, которыми вы чаще всего помечали свои снимки. Чем больше шрифт метки, тем больше фотографий, отмеченных такой меткой, хранится в ваших альбомах. Выберите интересующую вас метку, и вы получите список всех отмеченных ею изображений.",
	"На этой странице можно видеть, как за фото голосовали те или иные пользователи.",
	"Введите пароль, который будет запрошен у пользователей при попытке посмотреть содержимое этого альбома.<br /><br />В пароле нельзя использовать кириллицу. Длина пароля должна быть не менее четырёх символов. Не выбирайте слишком простой пароль, его могут легко подобрать.",
	"Конкурсные призы выдаются победителям строго по удостоверению личности. Пожалуйста, укажите ваши фамилию, имя и отчество (так, как они записаны в паспорте), чтобы мы могли выдать вам приз, если вы победите в конкурсе. Это единственная причина, по которой нам нужны ваши личные данные, и они ни при каких обостоятельствах не будут переданы третьим лицам.",
	"Укажите номер вашего телефона. Если вы победите в конкурсе, мы используем этот номер, чтобы связаться с вами. Это единственная причина, по которой нам нужны ваши личные данные, и они ни при каких обостоятельствах не будут переданы третьим лицам.<br /><br />Пример номера телефона: (495) 725-63-57",
	"SMS-игры на Фото@Mail.Ru - лучший способ показать ваше фото всему миру. Выберите удобный для вас способ, отправьте SMS и ваше фото увидят все!",
	"Если вам понравилось это фото и позже вы хотели бы увидеть его снова, вы можете добавить его в число избранных. Избранные фото - это ваш личный список снимков, показавшихся вам наиболее яркими и интересными.",
	"На этой странице вы можете изменить порядок представления ваших альбомов на личной странице. Выберите способ автоматической сортировки или отсортируйте альбомы вручную, перетаскивая их обложки с помощью &quot;мыши&quot;",
	"На сервисе Фото@Mail.Ru вы можете оценить понравившееся вам фото по пятибальной шкале со значениями от +1 до +5.<br />Рейтинг фото измеряется арифметической суммой всех выставленных баллов.<br />Подробнее с системой голосования вы можете ознакомиться <a href=\"http://foto.mail.ru/catalog/static/vote.html\" target=\"_blank\">здесь<\/a> ",
	"По умолчанию ваши фотографии загружаются на \"Фото@Mail.Ru\" в уменьшенном виде (разрешение наибольшей стороны - 600 пикселей). За счет этого мы экономим ваше время и траффик. <br />Однако, если наряду с уменьшенным изображением вы хотите хранить у нас его исходную копию, или если в дальнейшем вы планируете заказать печать загружаемых фотографий, включите опцию \"Загрузить\". Кроме того, если вам не обязательно хранить \"исходник\" в полном разрешении, вы можете сократить его по своему выбору (и, тем самым, также сэкономить время и траффик). Цифры в списке соответствуют разрешению наибольшей стороны исходного изображения. <br />Включите опцию \"Пометить загруженные фото для печати\" чтобы добавить все загруженные фото в заказ на фотопечать.",
	"В этом списке указаны пользователи, о новых фото которых вам отправляется уведомление по e-mail. Вы можете удалять пользователей из списка или отключить все сообщения о новых фото пользователей на странице настроек уведомлений.",
	"В этом списке указаны пользователи, подписавшиеся на уведомления о ваших новых фото. Вы можете удалить пользователей из списка, тогда они не будут получать e-mail с вашими новыми работами.",
	"Обычно если вы загружаете больше чем одно фото, по умолчанию у всех фото будет служебное имя \"Без названия\". Если вы отметите пункт \"Использовать имя файла как название фото\", то всем фото будут автоматически присвоены названия в виде имени соответствующего загруженного файла.", //70
	"Обычно если вы загружаете больше чем одно фото, по умолчанию у всех фото будет служебное имя \"Без названия\". Если вы отметите пункт \"Использовать имя файла как название фото\", то всем фото будут автоматически присвоены названия в виде имени соответствующего файла в загруженном архиве.", //71
	"Это фото участвует в SMS-игре \"<a href=\"http://foto.mail.ru/catalog/static/show_yourself.html#x2\">Дайте две!</a>\", и в данный момент все голоса за это фото удваиваются. Подробнее об этой игре вы можете узнать <a href=\"http://foto.mail.ru/catalog/static/show_yourself.html#x2\">здесь</a>.", //72
	"Каждый день в 12:00 мы подводим итоги и выбираем двадцатку лучших фото за прошедший день. Для того чтобы уравнять шансы всех фото мы разработали свой \"индекс популярности\", который учитывает не только суммарный рейтинг фото, но и средний балл фото, время его загрузки и ряд других параметров.<br /><br />Так что же нужно сделать владельцу интересного фото, чтобы оно стало победителем \"Фото дня\"?<br /><br />Во-первых, загрузить его в любой открытый альбом - оно автоматически становится участником хит-парада.<br /><br />Во-вторых, нужно показать его всем друзьям и знакомым. Победителем становится фото, чаще других получавшее максимальные оценки в течение всего дня.<br /><br />Однако, попав на первое место, почивать на лаврах весь день не удастся. Текущий рейтинг хит-парада обновляется каждые 15 минут, поток хороших и очень хороших оценок должен быть постоянным, иначе вас обгонят талантливые новички. У всех фото есть шанс в игре \"Фото дня\". Лучшие фото по результатам голосований за день определяются в 12:00 следующего дня. Победители и лучшая 20-ка будут увековечены в нашем \"Календаре славы\" и окружены почётом и уважением.<br /><br />Желаем вам удачи!", //73
	"\"Фото дня\" - это хит-парад фото, загруженных в течение дня. <a href=\"http://foto.mail.ru/cgi-bin/photo/dayphoto\">Подробнее</a>", //74
	"Подписавшись на эту метку, вы ежедневно будете получать по почте уведомление о самых интересных фото с этой меткой, добавленные за прошедшие сутки. Вы можете подписаться на несколько меток одновременно, при этом ссылки на все новинки будут приходить в одном письме.", //75
	"В этом списке указаны метки, на которые вы подписаны. Подписавшись на метку, вы ежедневно будете получать по почте уведомление о самых интересных фото с этой меткой, добавленные за прошедшие сутки. Вы можете подписаться на несколько меток одновременно, при этом ссылки на все новинки будут приходить в одном письме.", //76
	"Здесь перечислены близкие метки, то есть метки, похожие или наиболее часто используемые другими пользователями вместе с меткой \"****\"", //77 Близкие метки
	"Вы можете посмотреть лучшие фото этого пользователя по результатам голосования, а также ознакомится с самыми новыми фото пользователя", //78 лучшие фото пользователя
	"Здесь вы можете посмотреть новые голоса за ваши фото, а также узнать, какие из всех ваших фото наиболее популярны по мнению пользователей Фото@Mail.Ru", //79 за мои фото голосовали
	"Просмотреть список пользователей, подписанных на уведомления о ваших новых фото", //80 на фото подписано
	"Популярность - комплексная оценка фото, учитывающая не только суммарный рейтинг фото, но и средний балл фото, время его загрузки и ряд других параметров.<br /><br />Популярность позволяет обратить ваше внимание не только на фото с большим рейтингом, но также и на новые фото с высокими оценками.", //81 Популярность в "Фото дня"
	"Приобретая продукты последней линейки Adobe вы получаете возможность бесплатной печати 30 фото 10x15. Подробнее об акции можно прочитать здесь: <a href=\"http://foto.mail.ru/adobe\" target=\"_blank\">Adobe и Mail.Ru</a>", //82 партнерка Adobe
	"Укажите город в котором вы проживаете. Эта информация требуется по условиям конкурса. Мы гарантируем, что ни при каких обстоятельствах эта информация не будет передана третьим лицам.", //83 Город
	"Укажите страну в которой вы проживаете. Эта информация требуется по условиям конкурса. Мы гарантируем, что ни при каких обстоятельствах эта информация не будет передана третьим лицам.", //84 Страна
	"Укажите ваше гражданство. Эта информация требуется по условиям конкурса. Мы гарантируем, что ни при каких обстоятельствах эта информация не будет передана третьим лицам.", //85 Гражданство
	"Данное фото номинировано на конкурс \"****\". Как только служба модерации проверит это фото, оно станет полноценным участником конкурса и появится в рейтингах.", //86 фото наминировано на конкурс
	"Вы можете разместить слайдшоу в вашем блоге на Mail.Ru или воспользоваться кодами для размещения слайдшоу на сайте или в livejournal.", //87
	"Новости проекта Фото@Mail.Ru.<br/>Проект Фото@Mail.Ru постоянно развивается, предлагая вам новые возможности. В этом разделе публикуются анонсы новых функций.", //88
	"Другие Пользователи не видят, что Вы на сайте и даже не догадываются, что Вы невидимы.", //89
	"На конкурс &laquo;Мои любимые фотки&raquo; принимаются красивые фотографии марсианских пейзажей, смешные фотки хмельных друзей, домашние снимки мамы в спасательном круге и портреты любимой кошки в семейном кругу - а также все, что нравится тебе и твоим друзьям.", //90
	"Фото из этого альбома переносить нельзя.", //91
	"Ввод кода необходим для защиты от автоматических созданий альбомов. Если Вы не видите картинку с кодом, проверьте, включен ли в Вашем браузере показ картинок. После включения показа картинок Вы можете вернуться к созданию альбома. Если Вы сомневаетесь в том, что за код изображен на картинке, попробуйте ввести самый похожий. Если угадать код не получится, Вы сможете повторить попытку с другой комбинацией букв и цифр." //92
];
//alert(helpData.length);

//добавляет строку в отпределенное место helpData[id]
function addTextHint(id, instr) {

		if (helpData[id] != '') helpData[id] = str_replace("****", "<b>"+instr+"</b>", helpData[id]);

}

// Показать контекстную подсказку
function contextHelp(evt, img, id, right, top) {
	cancelBubbling(evt);
	
	hideContext();

	if (img.childNodes)
	{
		var arrChildIMG = img.childNodes;
		arrChildIMG = arrChildIMG.length ? arrChildIMG : [arrChildIMG];
		arrChildIMG_length = arrChildIMG.length;
		var varIMG;
		for (var i = 0; i < arrChildIMG_length; i++)
			{if (arrChildIMG[i].nodeName == 'IMG') {varIMG = arrChildIMG[i];}}
	}
	img = varIMG;

	var rightFlag = typeof right == 'undefined' || !right ? false : true;
	var topFlag = typeof top == 'undefined' || !top ? false : true;
	top = parseInt(top);
	top = top == 1 ? -50 : top;
	if (screenSize().w - absPosition(img).x < 300) rightFlag = true;//

	var targetDiv;
	if (!gebi("helpDiv")){
		var div = document.createElement("div");
		div.id = "helpDiv";
		div.className = "help_div";
		div.style.top = "0px";
		div.style.left = "0px";
		div.style.display = "none";
		div.style.zIndex = "100000000";
		document.body.appendChild(div);
	}
	targetDiv = gebi("helpDiv");
	targetDiv.innerHTML="<a onclick=\"contextHelpHide();return false;\" href=\"\"><img src=http://img.mail.ru/r/foto2/ico_close.gif height=7 width=7 border=0 align=right alt=\"Закрыть\"><\/a><br /><div>" + helpData[id] + "<\/div>";
	var xRemainder = (rightFlag) ? -238 - img.width + 2 : 0;
	var yRemainder = (topFlag) ? top : 0;
	targetDiv.style.top = (absPosition(img).y + yRemainder) + img.height + 2 + "px";
	targetDiv.style.left = (absPosition(img).x + xRemainder) + "px";
	targetDiv.onclick = cancelBubbling;
	targetDiv.style.display = "block";
	return false;
}
// Скрыть контекстную подсказку
function contextHelpHide() {
	if (gebi("helpDiv")) gebi("helpDiv").style.display = "none";
}
addHandler(document, 'click', contextHelpHide);
// ========= /Контекстные подсказки ==========

// ========= AJAX-switcher метки/категории ==========
var f2_id_num;
function f2_cloudoftags(f2_id_num)
{
	var a = 1;
	while (a < 2) //сдесь условием а<3 мы задаем сколько у нас сейчас закладок, в данном случае 2
	{
		gebi('f2_choose'+a).style.display='none';
		gebi('f2_choose'+a+a).style.background='url(http://img.mail.ru/r/foto2/cloud_bg_8bit.png) 100% -40px';
		gebi('f2_choose'+a+a).style.zIndex= 9 - f2_id_num;
		gebi('f2_choose'+a+a+a).style.fontWeight='normal';
		gebi('f2_choose'+a+a+a).style.color='#013572';
		gebi('f2_choose'+a+a+a).style.textDecoration='underline';
		gebi('f2_choose'+a+a+a+a).style.display='none';
		a++;
	}
	gebi('f2_choose'+f2_id_num).style.display='inline';
	gebi('f2_choose'+f2_id_num+f2_id_num).style.background='url(http://img.mail.ru/r/foto2/cloud_bg_8bit.png) 100% 0px';
	gebi('f2_choose'+f2_id_num+f2_id_num).style.zIndex='10';
	gebi('f2_choose'+f2_id_num+f2_id_num+f2_id_num).style.fontWeight='bold';
	gebi('f2_choose'+f2_id_num+f2_id_num+f2_id_num).style.color='#393b40';
	gebi('f2_choose'+f2_id_num+f2_id_num+f2_id_num).style.textDecoration='none';
	gebi('f2_choose'+f2_id_num+f2_id_num+f2_id_num+f2_id_num).style.display='block';
}
// ======== /AJAX-switcher метки/категории ==========

// ============= DHTML gallery-s thumbnails  =============
var f2_location;
var f2_showinfo = 1;
var f2_activeuseremail;
var f2_currentMyHost;
var f2_thumbsINrow = 9;
var f2_clientwidth = 0;
var f2_time = 0;

function f2_enable_dropdown_usermenu(emailz) { f2_showinfo = 1; f2_activeuseremail = emailz; }

function f2_creatediv(f2_name, id) // создаем пустые DIV-ы для последующего набивания превьюшками;
{	
	var f2_start = 0;
	
	if (f2_creatediv.arguments[1] != '')  var div_id = " id="+id +" ";
	
	document.write('<div class=\"f2_gallery\"' + div_id + '><div style=\"float:left;clear:both;width:2500px\">');
	while(f2_start < f2_thumbsINrow) {document.write('<div class=\"f2_block\" id=\"'+f2_name+f2_start+'\"><\/div>');f2_start++;}
	document.write('<\/div><\/div>');
	f2_createcontent(f2_name);
}

function f2_createcontent(f2_rname)
{	
	var f2_clientwidth = document.body.clientWidth;
	var mname;
	var f2_counter = 0;
	var f2_clear = 1;	
	
	var f2_photoblockwidth = f2_clientwidth - f2_clientwidth*0.1;
	if (f2_photoblockwidth <= 984) { f2_photoblockwidth = 984; f2_clientwidth = 1093; }
	f2_photoblockwidth = f2_photoblockwidth - 264; // получаем ширину content_block
	var f2_howmanyblocks = parseInt(f2_photoblockwidth / 130);
	var f2_margins = f2_photoblockwidth - (f2_howmanyblocks) * 120;
	f2_margins = Math.round(f2_margins / (f2_howmanyblocks - 1));
	
	if (f2_rname == 'f2_Srow2_' || f2_rname == 'f2_Srow1_') { mname = f2_sms; }
	if (f2_rname == 'f2_Brow2_' || f2_rname == 'f2_Brow1_') { mname = f2_best; }
	if (f2_rname == 'f2_Nrow2_' || f2_rname == 'f2_Nrow1_') { mname = f2_new; }

	while (f2_counter < f2_howmanyblocks)
	{	
		if (f2_rname == 'f2_Srow2_' || f2_rname == 'f2_Brow2_' || f2_rname == 'f2_Nrow2_') {var f2_target = 0; f2_target = f2_counter + f2_howmanyblocks;} else {var f2_target = f2_counter;}
		if (gebi(f2_rname+f2_counter)) 
		{	
			if (f2_showinfo==1) { var f2_work = "<span class=\"user-info-menu\" onclick=\"return f2_userInfo('"+mname[f2_target*6+3]+"',this,event,'"+mname[f2_target*6+5]+"');\"><img src=\"http://img.imgsmail.ru/r/foto2/ico_down.gif\" \/><\/span>"; } else { var f2_work = '';}
			gebi(f2_rname+f2_counter).style.marginRight = f2_margins+'px';		
			gebi(f2_rname+f2_counter).innerHTML = '<a href=\"'+mname[f2_target*6]+'\" style=\"background-image: url('+mname[f2_target*6+1]+');\" class=\"f2_thumb\"><img src=\"'+mname[f2_target*6+1]+'\" class=\"f2_hiddenimg\" /><\/a><a href=\"'+mname[f2_target*6]+'\" class=\"f2_title\">'+mname[f2_target*6+2]+'<\/a><br /><a href=\"http://www.mail.ru/agent?message&amp;to='+mname[f2_target*6+3]+'\"><img src=\"http://status.mail.ru/?'+mname[f2_target*6+3]+'\" class=\"f2_ico\" style=\"margin-right:0px;\" /><\/a>&nbsp;<a href=\"'+mname[f2_target*6+5]+'\" class=\"f2_author\" style=\"margin-right:5px; margin-left:0;\">'+mname[f2_target*6+4]+'<\/a>'+f2_work+'<\/div>';
		}
	f2_counter++;
	}
}

function f2_refreshcontent()
{
	if (gebi('f2_Srow1_8')) {f2_createcontent('f2_Srow1_');}
	if (gebi('f2_Srow2_8')) {f2_createcontent('f2_Srow2_');}
	if (gebi('f2_Brow1_8')) {f2_createcontent('f2_Brow1_');}
	if (gebi('f2_Brow2_8')) {f2_createcontent('f2_Brow2_');}
	if (gebi('f2_Nrow1_8')) {f2_createcontent('f2_Nrow1_');}
}
// ============= /DHTML gallery-s thumbnails  =============

// MainPage photos thumbnails dropdown usermenu - Показываем ДИВ с юзеринфо
var f2_userpath;
var f2_hideSELFinfo;
var f2_userCashe;
function f2_userInfo(a, evt, f2_userpath, f2_userInfo_popup) 
{
	if (f2_userInfo_popup && f2_userInfo_popup != 'undefined')
	{
		if (f2_userInfo_popup == true)
			{var f2_userInfo_targetPath = ' target=\"_blank\"';}
		else
			{var f2_userInfo_targetPath = '';}
	}
	else if (!f2_userInfo_popup || f2_userInfo_popup == 'undefined') {var f2_userInfo_targetPath = '';}

	cancelBubbling(evt);
	var mail = a.href.substring(a.href.indexOf("?") + 1, a.href.length);
	var re = /(.*?)@(.*?)\./;
	var perlhost=PhotoPerlHost();
	var imaginehost=PhotoImagineHost();
	
	re.exec(mail);
	var login = RegExp.$1;
	var domain = RegExp.$2;
	var infoDiv;
	if (!gebi("infoDivId"))
	{
		var div = document.createElement("div");
		div.id = "infoDivId";
		div.className = "userInfoDiv";
		div.style.top = "0px";
		div.style.left = "0px";
		div.style.position = "absolute";
		div.style.display = "none";
		document.body.appendChild(div);
	}
	if (mail==f2_activeuseremail) { f2_hideSELFinfo = 1; } else { f2_hideSELFinfo = 0;}

	infoDiv = gebi("infoDivId");
	if (infoDiv.style.display != "none" && f2_userCashe == a)
	{
		infoDiv.style.display = "none";
		return false;
	}
	f2_userCashe = a;

	// Выключает строчку, если не IE
	var mailagent_link = window.attachEvent ? '<a class="grey" href="http://www.mail.ru/agent?message&to=' + mail + '&from=foto"><img class="sobaka" src="http://status.mail.ru/?' + mail + '" width="13" height="13" border="0" align="absmiddle" /><\/a><a class="grey" href="http://www.mail.ru/agent?message&to=' + mail + '&from=foto">Добавить в Mail.Ru Агент<\/a><br />' : '';

	infoDiv.innerHTML = '' +
	'<table border="0" cellspacing="0" cellpadding="0"><tr valign="middle">' +
		'<td class="f2_useravatar_td"><a href="' + f2_userpath + '" class="f2_useravatar"' + f2_userInfo_targetPath + '><img src="http://avt.foto.mail.ru' + f2_userpath + '_avatar" /><\/a><\/td>' +
		'<td width="5">&nbsp;<\/td>' +
		'<td>' +
			'<a class="orange t100" href="http://my.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_my.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://my.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Мир<\/a><br />' +
			'<a class="orange t100" href="http://blogs.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_blogs2.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://blogs.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Блог<\/a><br />' +
			'<a class="orange t100" href="http://foto.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_foto2.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://foto.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Фото<\/a><br />' +
			'<a class="orange t100" href="http://video.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_video.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://video.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Видео<\/a><br />' +
		'<\/td>' +
	'<\/tr><\/table>' +
	'<a href="http://' + perlhost + '/cgi-bin/photo/rating_all?sort=rate&email=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_best.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="http://' + imaginehost + '/cgi-bin/photo/rating_all?sort=rate&email=' + mail + '"' + f2_userInfo_targetPath + '>Лучшие фото<\/a><br />' +
	'<a href="http://' + perlhost + '/cgi-bin/photo/phototag?tag=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/marking.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="http://' + (f2_hideSELFinfo == 1 ? perlhost : imaginehost) + '/cgi-bin/photo/tag?email=' + mail + '"' + f2_userInfo_targetPath + '>Посмотреть метки<\/a><br />' +
	'<a href="http://' + imaginehost + f2_userpath + 'rss"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_rss.png" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="http://' + imaginehost + f2_userpath + 'rss"' + f2_userInfo_targetPath + '>Поток rss<\/a><br />' +
	(f2_hideSELFinfo == 1 ? '' : ('<a href="http://my.mail.ru/my/invitation?single=1&email=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_addfriend.gif" width="16" height="16" border="0" align="absmiddle" ><\/a><a href="http://my.mail.ru/my/invitation?single=1&email=' + mail + '"' + f2_userInfo_targetPath + '>Добавить в друзья<\/a><br />')) +
	(f2_hideSELFinfo == 1 ? '' : ('<a href="#" onClick="ajax_call(\'perl_add_subscription\',\'' + mail + '\',f2_AddSubscriptionCallback)"><img src="http://img.mail.ru/r/foto2/ico_posts_subscribe.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="#" onClick="ajax_call(\'perl_add_subscription\',\'' + mail + '\',f2_AddSubscriptionCallback)">Подписаться на обновления<\/a><br />')) +
	'<div class="line"><br /><\/div>' +
	(f2_hideSELFinfo == 1 ? '' : mailagent_link) +
	'<a class="grey" href="http://win.mail.ru/cgi-bin/sentmsg?To=' + mail + '&from=foto"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_write.gif" width="18" height="17" border="0" align="absmiddle" /><\/a><a class="grey" href="http://win.mail.ru/cgi-bin/sentmsg?To=' + mail + '&from=foto"' + f2_userInfo_targetPath + '>Написать письмо<\/a><br />' +
	'<a class="grey" href="http://cards.mail.ru/rnd_card.html?rcptemail=' + mail + '&from=foto"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_cards.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="grey" href="http://cards.mail.ru/rnd_card.html?rcptemail=' + mail + '&from=foto"' + f2_userInfo_targetPath + '>Отправить открытку<\/a><br />';

	infoDiv.style.display = '';
	if (a.nodeName == 'A' && a.firstChild.nodeName == 'IMG') a = a.firstChild;
	if (a.nodeName == 'IMG') a = a;

	var xRem = yRem = 0;
	if (screenSize().w - absPosition(a).x < 300) {
		xRem = infoDiv.offsetWidth - a.offsetWidth;
		xRem = xRem < 0 ? 0 : xRem;
	}
	if (screenSize().h - absPosition(a).y + defScroll().y < infoDiv.offsetHeight) {
		yRem = infoDiv.offsetHeight + a.offsetHeight + 2;
	} else yRem = -2;
	
	infoDiv.style.left = (absPosition(a).x - xRem) + 'px';

	if (f2_userInfo.arguments[3]) yRem = 0;//если есть 4й аргумент
	infoDiv.style.top = (absPosition(a).y + a.offsetHeight - yRem) + 'px';

	addHandler(gebi('infoDivId'), 'click', function(evt) {
	var evt = evt || window.event; 
	if (evt.button == 0) f2_hideUserInfo() ; //убирать див только по левому клику
	});

	return false;
}



// MainPage photos thumbnails dropdown usermenu Скрываем ДИВ с юзеринфо
function f2_hideUserInfo() {
	if (gebi("infoDivId")) gebi("infoDivId").style.display = "none";
}
addHandler(document, 'click', function(evt) {
	var evt = evt || window.event; 
	if (evt.button == 0) f2_hideUserInfo() ;//убирать див только по левому клику
	});

//MainPage photos thumbnails dropdown usermenu on error
function f2_AddSubscriptionCallback(st,errorcode,errortext) {
	if (st==1) {
		alert('Подписка добавлена');
	} else {
		alert('Организовать подписку не получилось: '+errortext);
		return false;
	}	
	f2_hideUserInfo();
}

//End of MainPage photos thumbnails dropdown usermenu

// ============= AJAX-switcher альбомы  =============
function albumSwitcher(vis, a) {
	var method = "POST";
	var url = "album.php";
	var params = "id=" + vis;
	var onload = albumSwitshHandler;
	var onerror = albumSwitshError;
	showHandleMessage(
		"Запрос обрабатывается",
		absPosition(a).x,
		absPosition(a).y + 20
	);
	return setAjaxRequest(method, url, params, onload, onerror);
}
function albumSwitshHandler() {
	var code = this.req.responseText;
	if (code == "error") bookmarkSwitshError();
	else {
		gebi("commonAlbumId").style.display = gebi("commonAlbumId").style.display == "none" ? "" : "none";
		gebi("specialAlbumId").style.display = gebi("specialAlbumId").style.display == "none" ? "" : "none";
		hideHandleMessage();
		gebi("albumListId").innerHTML = code;
	}
}
function albumSwitshError() {
	showHandleMessage("При обработке запроса произошла ошибка.<br>Повторите попытку снова.");
}
// ============ /AJAX-switcher альбомы  =============

// ========== Информация о пользователе =============
// Скрываем ДИВ с юзеринфо
function hideUserInfo() {
	if (gebi("infoDivId")) gebi("infoDivId").style.display = "none";
}
addHandler(document, 'click', function(evt) {
	var evt = evt || window.event; 
	if (evt.button == 0) hideUserInfo() ;//убирать див только по левому клику
	});
// ========= /Информация о пользователе =============

function f1_AddSubscriptionCallback(st,errorcode,errortext) {
	if (st==1) {
		alert('Подписка добавлена');
	} else {
		alert('Организовать подписку не получилось: '+errortext);
		return false;
	}	
	hideUserInfo();
}

// =========== Изменить название фото ===============
// Показываем форму для смены имени
var f2_elementID;
var strForNewFotoName;
function showFotoNameDialog(id, el, cat) {
	f2_elementID = el;
	gebi(f2_elementID).style.display = "none";
	gebi("foto" + cat + "Id").style.display = "";
	//gebi("foto" + cat + "FormId").elements[0].value = objForNewFotoName.firstChild.nodeValue;
	gebi("foto" + cat + "FormId").elements[1].value = id;
}
// Проверка количества введенных символов
function checkLength(textarea, limit, showId) {
	limit = parseInt(limit);
	var b = document.getElementById(showId);
	if (textarea.value.length <= limit) {
		b.innerHTML = limit - textarea.value.length;
	} else {
		b.innerHTML = 0;
		textarea.value = textarea.value.substring(0, limit);
	}
}
// Скрываем форму для смены имени
function hideFotoNameDialog(el, cat) {
	f2_elementID = el;
	gebi("foto" + cat + "Id").style.display = "none";
	gebi(f2_elementID).style.display = "";
}
// Обработка сабмита новоги имени
function newFotoCommentCallback (newname,imageid) {
	if (imageid) {
		if (newname == undefined || newname == null || newname == '') {
			newname = 'Нет описания';
		}
		gebi('imageComment').innerHTML = '<a id="imageCommentSpan" href="#" onclick="return false;">' + str_replace("\n","<br/>",newname) + '</a>';
		hideFotoNameDialog('imageComment', 'Description');
	} else {
		alert ('Ошибка');
	}
}
function newFotoNameCallback (newname,imageid) {
	if (imageid) {
		if (newname == undefined || newname == null || newname == '') {
			newname = 'Без названия';
		}
		gebi('imageTitle').innerHTML = newname ;
		if (gebi('path_image_title')) gebi('path_image_title').innerHTML = newname;
		hideFotoNameDialog('imageTitle', 'Name');
		if (gebi('ExtAuthor')) {gebi('ExtAuthor').style.display='';}
	} else {
		alert ('Ошибка');
	}
	setTooltip("imageTitle",newname); 
}
function submitNewFotoName(form) {
	var info = form.elements[0].value;
	var image_id = form.elements[1].value;
	var album_id = form.elements[2].value;
	var st=ajax_call('perl_change_image_name',image_id,album_id,info,newFotoNameCallback);
	/*if (info.length > 0) { // новое имя всё-таки ввели
		var st=ajax_call('perl_change_image_name',image_id,album_id,info,newFotoNameCallback);
	} else { // В форму пустая строка
		alert("Вы не ввели текст.");
		return false;
	}*/
}
function changeAlbumCommentCallback(comment) {
	if (comment == undefined || comment == null || comment == '') {
		comment='Нет описания';
	}
	gebi('albumCommentSpan').innerHTML = str_replace("\n","<br/>",comment) + '<br />';
	gebi('albumDescriptionFormId').elements['comment'].value = comment;
	gebi('albumDescriptionFormId').elements['hidden_comment'].value = comment;
	gebi('albumDescriptionId').style.display = 'none';
	gebi('albumCommentSpanOver').style.display = '';
}

    function changeImageNameCallback(name,id) {
	gebi('change_name_form_'+id).elements['title'].value=name;
        if(name == undefined || name == null || name == ''){
	    name='Без названия';
        }
        gebi('inameSpan_'+id).innerHTML = name;
	gebi('change_name_'+id).style.display='none';
	gebi('name_'+id).style.display='';
    }

    function changeAlbumNameCallback(name) {
        gebi('albumNameFormId').elements['edit'].value = name;
	if(name == undefined || name == null || name == ''){
	    name='Без названия';
        }
	gebi('anameSpan').innerHTML = name;
	if(document.getElementById('pathAName')){
    		gebi('pathAName').innerHTML = name;
    	}
	gebi('albumNameId').style.display='none';
	gebi('aname').style.display='';
    }
function submitNewFotoComment(form) {
	var info = form.elements[0].value;
	var image_id = form.elements[1].value;
	var album_id = form.elements[2].value;
	var st=ajax_call('perl_change_image_comment',image_id,album_id,info,newFotoCommentCallback);
	/*if (info.length > 0) { // новое имя всё-таки ввели
		var st=ajax_call('perl_change_image_comment',image_id,album_id,info,newFotoCommentCallback);
	} else { // В форму пустая строка
		alert("Вы не ввели текст.");
		return false;
	}*/
}
// Обработка ответа на запрос
function newNameHandler() {
	var code = this.req.responseText;
	if (code == "error") newNameError();
	else {
		objForNewFotoName.firstChild.nodeValue = strForNewFotoName;
		hideFotoNameDialog();
		hideHandleMessage();
	}
}
// Обработка ошибки при запросе
function newNameError() {
	showHandleMessage("<span style=\"color:#F26D00;\">При обработке запроса произошла ошибка.<br />Повторите попытку снова.<\/span>");
}
// ========== /Изменить название фото ===============

// ========= Изменить название фото: II =============
var objForNewFotoNameUnic = {};
var strForNewFotoNameUnic = {};
// Инициализация mouseover/mouseout
function initFotoNameOverOut() {
	var spans = document.getElementsByTagName("span");
	var span;
	for (var i = 0; i < spans.length; i++) {
		if (spans[i].className != "n") continue;
		span = spans[i];
		var ua = navigator.userAgent.toLowerCase();
		var isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1); 
		span.onmouseover = colorNSpavOver;
		span.onmouseout = colorNSpavOut;
	}
}
function colorNSpavOver(el, flag) {
	if (flag) el.style.backgroundColor = "#FFFF66";
	else this.style.backgroundColor = "#FFFF66";
}
function colorNSpavOut(el, flag) {
	if (flag) el.style.backgroundColor = "transparent";
	else this.style.backgroundColor = "transparent";
}
// Показываем форму для смены имени
function showFotoNameDialog2(id, el) {
	objForNewFotoNameUnic[id] = el;
	var parent = el.parentNode;
	while (parent.nodeType != 1) parent = parent.parentNode;
	var fotoNameDiv;
	if (!gebi("fotoNameDivId" + id))  {
		var div = document.createElement("div");
		div.id = "fotoNameDivId" + id;
		div.className = "name";
		div.style.display = "none";
		parent.parentNode.insertBefore(div, parent);
	}
	var charLimit = 32;
	fotoNameDiv = gebi("fotoNameDivId" + id);
	fotoNameDiv.innerHTML = "<form action=\"\" method=\"post\" onsubmit=\"return submitNewFotoName2(this);\">\
		<div class=\"name_edit\">\
			<textarea rows=\"1\" cols=\"1\">" + el.firstChild.nodeValue + "<\/textarea>\
			<input type=\"hidden\" name=\"id\" value=\"" + id + "\">\
			<div class=\"ok\"><input type=\"submit\" value=\"OK\" /><\/div>\
			<div class=\"cancel\"><input onclick=\"hideFotoNameDialog2('" + id + "')\" type=\"button\" value=\"Отмена\" /><\/div>\
		<\/div>\
		<\/form>";
	parent.style.display = "none";
	fotoNameDiv.style.display = "";
}
// Скрываем форму для смены имени
function hideFotoNameDialog2(id) {
	if (!gebi("fotoNameDivId" + id)) return;
	if (typeof objForNewFotoNameUnic[id] == "undefined") return;
	gebi("fotoNameDivId" + id).style.display = "none";
	var parent = objForNewFotoNameUnic[id].parentNode;
	while (parent.nodeType != 1) parent = parent.parentNode;
	parent.style.display = "";
}
// Обработка сабмита новоги имени
function submitNewFotoName2(form) {
	var info = form.elements[0].value;
	var id = form.elements[1].value;
	if (info.length > 0) { // новое имя всё-таки ввели
		strForNewFotoNameUnic[id] = info;
		var method = "POST";
		var url = "newname2.php";
		var params = "id=" + id + "&newname=" + info;
		var onload = newNameHandler2;
		var onerror = newNameError2;
		showHandleMessage(
			"Запрос обрабатывается",
			absPosition(form).x,
			absPosition(form).y + 20
		);
		return setAjaxRequest(method, url, params, onload, onerror);
	} else { // В форму пустая строка
		alert("Вы не ввели новое название фотографии.");
		return false;
	}
}
// Обработка ответа на запрос
function newNameHandler2() {
	var code = this.req.responseText;
	if (code == "error") newNameError2();
	else if (typeof objForNewFotoNameUnic[code] == "undefined") newNameError2();
	else {
		objForNewFotoNameUnic[code].firstChild.nodeValue = strForNewFotoNameUnic[code];
		hideFotoNameDialog2(code);
		hideHandleMessage();
	}
}
// Обработка ошибки при запросе
function newNameError2() {
	showHandleMessage("<span style=\"color:#F26D00;\">При обработке запроса произошла ошибка.<br />Повторите попытку снова.<\/span>");
}
// ========== /Изменить название фото ===============

// ========== Изменить название альбома =============
// Показываем форму для смены названия альбома
var objForNewAlbumName = [];
var strForNewAlbumName;
function showAlbumNameDialog(id, el, cat) {
	if (objForNewAlbumName.parentNode) hideAlbumNameDialog();
	objForNewAlbumName = el;
	objForNewAlbumName.parentNode.style.display = "none";
	gebi("album" + cat + "Id").style.display = "";
	gebi("album" + cat + "FormId").elements[0].value = el.firstChild.nodeValue;
	gebi("album" + cat + "FormId").elements[1].value = id;
}
// Скрываем форму для смены имени
function hideAlbumNameDialog() {
	gebi("albumNameId").style.display = "none";
	gebi("albumDescriptionId").style.display = "none";
	objForNewAlbumName.parentNode.style.display = "";
}
// Обработка сабмита новоги имени
function submitNewAlbumName(form) {
	var info = form.elements[0].value;
	var id = form.elements[1].value;
	if (info.length > 0) { // новое имя всё-таки ввели
		strForNewAlbumName = info;
		var method = "POST";
		var url = "newname.php";
		var params = "id=" + id + "&newname=" + info;
		var onload = newAlbumNameHandler;
		var onerror = newAlbumNameError;
		showHandleMessage(
			"Запрос обрабатывается",
			absPosition(form).x,
			absPosition(form).y + 20
		);
		return setAjaxRequest(method, url, params, onload, onerror);
	} else { // В форму пустая строка
		alert("Вы не ввели новое название фотографии.");
		return false;
	}
}
// Обработка ответа на запрос
function newAlbumNameHandler() {
	var code = this.req.responseText;
	if (code == "error") newAlbumNameError();
	else {
		objForNewAlbumName.firstChild.nodeValue = strForNewAlbumName;
		hideAlbumNameDialog();
		hideHandleMessage();
	}
}
// Обработка ошибки при запросе
function newAlbumNameError() {
	showHandleMessage("<span style=\"color:#F26D00;\">При обработке запроса произошла ошибка.<br />Повторите попытку снова.<\/span>");
}
// ========== /Изменить название альбома ============

// ====== Показываем состояние AJAX-запроса =========
// Показываем подсказку, что запрос обрабатывается
function showHandleMessage(html, x, y) {
	var mesDiv;
	if (!gebi("mesDivId"))  {
		var div = document.createElement("div");
		div.id = "mesDivId";
		div.className = "ajaxTooltip";
		div.style.top = "0px";
		div.style.left = "0px";
		div.style.display = "none";
		document.body.appendChild(div);
	}
	mesDiv = gebi("mesDivId");
	mesDiv.innerHTML = "<a onclick=\"return hideHandleMessage();\" href=\"\">\
			<img src=\"http://img.mail.ru/r/foto2/ico_close.gif\" width=\"7\" height=\"7\" style=\"float:right\" alt=\"Закрыть\" />\
		<\/a>";
	mesDiv.innerHTML += html;
	if (x) mesDiv.style.left = x + "px";
	if (y) mesDiv.style.top  = y + "px";
	mesDiv.style.display = "";
	return false;
}
// Скрываем подсказку, что запрос обрабатывается
function hideHandleMessage() {
	gebi("mesDivId").style.display = "none";
	return false;
}
// ====== /Показываем состояние AJAX-запроса ========

// ========== Размещение в блоге/на сайте ===========
// Показать ДИВ с размещением
function showDistribDiv(evt, a, code) {
	cancelBubbling(evt);
	hideDistribDiv();
	if (!gebi("distDivCode"))  {
		var div = document.createElement("div");
		div.id = "distDivCode";
		div.className = "distDiv";
		div.style.top = "0px";
		div.style.left = "0px";
		div.style.display = "none";
		document.body.appendChild(div);
	}
	var distDiv = gebi("distDivCode");
	distDiv.innerHTML = code;
	distDiv.style.top = (absPosition(a).y + a.offsetHeight) + "px";
	distDiv.style.left = absPosition(a).x + "px";
	distDiv.onclick = cancelBubbling;
	distDiv.style.display = "block";
}
// Скрыть ДИВ с размещением
function hideDistribDiv() {
	if (gebi("distDivCode")) gebi("distDivCode").style.display = "none";
}
// Разместить на сайте
function distribInSite(evt, a, type) {
	var insert = "";
	if (type == "url" && typeof fotoI != "indefined") insert = fotoI;
	else if (type == "bb" && typeof fotoBB != "indefined") insert = fotoBB;
	else if (type == "html")  insert = fotoPreview;
	var code = "<div><a onclick=\"hideDistribDiv(); return false;\" href=\"#\"><img src=\"http://img.mail.ru/r/foto2/ico_close.gif\" style=\"margin-bottom:7px;float:right;\"><\/a><br />\
		Вы можете скопировать этот код на свою страницу.<br />\
		<img src=\"http://img.mail.ru/0.gif\" width=\"1\" height=\"5\" /><br />\
		<img src=\"http://img.mail.ru/0.gif\" width=\"1\" height=\"5\" /><br />\
		<form><input id=\"areaForLink\" onclick=\"gebi('areaForLink').select();\" onmouseover=\"removeHandler(document, 'click', hideDistribDiv);\" onmouseout=\"addHandler(document, 'click', hideDistribDiv);\" value='" + insert + "' style=\"width:100%;\" /><\/form><\/nobr>\
	<\/div>";
	showDistribDiv(evt, a, code);
	gebi("areaForLink").focus();
	gebi("areaForLink").select();
	return false;
}
// Выбрать вариант кода для размещения на сайте
function setSiteDistribCode() {
	if (!gebi("areaForLink")) return;
	var area = gebi("areaForLink");
	area.value = fotoNothing;
}
addHandler(document, 'click', hideDistribDiv);
// ========= /Размещение в блоге/на сайте ===========

// =========== AJAX: Редактирование меток ===========
// Показываем форму для редактирования меток
function showLabelsEditDiv() {
	var labelSpan = gebi("labelLinkListId");
	var div = gebi("editLabelsBlockId");
	div.style.display = "";
	return false;
}
// Скрываем форму для редактирования меток
function hideLabelsEditDiv() {
	if (gebi("editLabelsBlockId")) gebi("editLabelsBlockId").style.display = "none";
	return false;
}
// Запрос на обновление списка меток
function editLabelsRequest(form) {
	var method = "POST";
	var url = "labeList.php";
	var params = "list=" + form.elements[0].value;
	var onload = labelUpdateHandler;
	var onerror = labelUpdateError;
	showHandleMessage(
		"Запрос обрабатывается",
		absPosition(form).x,
		absPosition(form).y + 20
	);
	return setAjaxRequest(method, url, params, onload, onerror);
}
// Обработка ответа
function labelUpdateHandler() {
	hideLabelsEditDiv();
	if (this.req.responseXML) {
		hideHandleMessage();
		var xml = this.req.responseXML.firstChild;
		if (xml.nodeType != 1) xml = xml.nextSibling; // fix for Opera
		var labels = this.req.responseXML.getElementsByTagName('label');
		var code = "";
		for (var i = 0; i < labels.length; i++) {
			if (labels[i].firstChild) code += "<a class=\"additional\" href=\"" + labels[i].id + "\">" + labels[i].firstChild.nodeValue + "<\/a>&nbsp;&nbsp;";
		}
		gebi("labelLinkListId").innerHTML = code ? code : "У фото нет ни одной метки";
	} else {
		labelUpdateError();
	}
}
// Обработка ошибки при запросе
function labelUpdateError() {
	showHandleMessage("<span style=\"color:#F26D00;\">При обработке запроса произошла ошибка.<br>Повторите попытку снова.<\/span>");
}
// Добавление метки из списка
function addLabel(label, id) {
	var textarea = gebi(id);
	var value = textarea.value;
	// Обрезаем концевые пробелы
	while (value != "" && value.charCodeAt(value.length - 1) == 32) {
		value = value.substring(0, value.length - 2);
	}
	textarea.value = value;
	if (textarea.value == "") textarea.value = label.firstChild.nodeValue;
	else if (textarea.value.charCodeAt(textarea.value.length - 1) == 44) textarea.value += " " + label.firstChild.nodeValue;
	else textarea.value += ", " + label.firstChild.nodeValue;
	return false;
}
// ========== /AJAX: Редактирование меток ===========

// ========= Изменение размеров фотографии ==========
function changeFotoSize(a) {
	var curSize = parseInt(a.firstChild.nodeValue);
	drawFotoSizeSelect(curSize);
	setCookie("fotosize", curSize);
	return false;
}
function drawFotoSizeSelect(curSize) {
	if (curSize == null) return;
	var img = gebi("centralImgId");
	img.src = urlForSize[curSize][0];
	img.style.width = urlForSize[curSize][1][0] + "px";
	img.style.height = urlForSize[curSize][1][1] + "px";
	var code = "";
	for (size in urlForSize) {
		if (curSize == size) code += size + "px ";
		else code += "<a onclick=\"return changeFotoSize(this);\" href=\"#\">" + size + "px<\/a> ";
	}
	gebi("spanForFotoSizeId").innerHTML = code;
}
// ======== /Изменение размеров фотографии ==========

// ============== Добавить в избранное ==============
// Показать ДИВ для добавления меток в избранное фото
function showAddToFavorites(a) {
	var div = gebi("addLabelsForFavorites");
	div.style.top = (absPosition(a).y + a.offsetHeight) + "px";
	div.style.left = absPosition(a).x + "px";
	div.style.display = "";
	return false;
}
// Скрыть ДИВ для добавления меток в избранное фото
function hideAddToFavorites() {
	gebi("addLabelsForFavorites").style.display = "none";
	return false;
}

var addedtofav=false;
function addToFavoritesCallback (st,errortext) {
    if (st==1) {
           addedtofav=true;
           alert ('Фото добавлено в "Избранное"');
    } else {
	   alert ('Ошибка добавления в альбом "Избранное": '+errortext);
    }   
}	
	
function addToFavorites (image_id,album_id,tagstr) {
    if (addedtofav) {
	alert('Вы уже добавили фото в "Избранное"');
	hideAddToFavorites();
	return false;
    }
    var st=ajax_call('perl_add_to_favorites',image_id,album_id,tagstr,addToFavoritesCallback);
    if (!st) {
	alert('Добавить в "Избранное" не получилось');
    }	
    hideAddToFavorites();
    return false;
}

// ============= /Добавить в избранное ==============

// ======= AJAX-switcher метки свои/избранные =======
function allTagsSwitcher(vis, a) {
	var method = "POST";
	var url = "allTags.php";
	var params = "id=" + vis;
	var onload = allTagsHandler;
	var onerror = allTagsError;
	showHandleMessage(
		"Запрос обрабатывается",
		absPosition(a).x,
		absPosition(a).y + 20
	);
	return setAjaxRequest(method, url, params, onload, onerror);
}
function allTagsHandler() {
	var code = this.req.responseText;
	if (code == "error") allTagsError();
	else {
		gebi("tagsOfMyFotoId").style.display = gebi("tagsOfMyFotoId").style.display == "none" ? "" : "none";
		gebi("tagsOfFavorFotoId").style.display = gebi("tagsOfFavorFotoId").style.display == "none" ? "" : "none";
		hideHandleMessage();
		gebi("PopularMark").innerHTML = code;
	}
}
function allTagsError() {
	showHandleMessage("При обработке запроса произошла ошибка.<br>Повторите попытку снова.");
}
// ====== /AJAX-switcher метки свои/избранные =======

// ==== Переключение закладок: выбор типа загрузки ===
// Отправить запрос для получения формы
function switchLoadBookmark(a, num) {
	var td, tr, node, tdCount =0, parent = a;
	while (parent.parentNode && parent.nodeName.toLowerCase() != "tr") {
		if (parent.nodeName.toLowerCase() == "td") td = parent;
		parent = parent.parentNode;
	}
	tr = parent;
	var i, j = 0, remJ;
	for (i = 0; i < tr.childNodes.length; i++) if (tr.childNodes[i].nodeType == 1) tdCount++;
	for (i = 0; i < tr.childNodes.length; i++) {
		if (tr.childNodes[i].nodeType != 1) continue;
		j++;
		node = tr.childNodes[i];
		if (j == 1) node.className = "l";
		else if (j == tdCount) node.className = "r";
		else if (node == td) {
			node.className = "act";
			remJ = j;
		} else if (j == remJ + 1) node.className = "aftact";
		else node.className = "pas";
	}
	if (typeof num != "undefined") {
		num = parseInt(num);
		globalLoadType = num;
		for (i = 1; i <= 4; i++) if(i!=2){gebi("uploadFoto_" + i).style.display = i == num ? "" : "none";};
	}
	return false;
}
// Выбор аватарки
var selectAvatarCurCell = null;
function selectAvatarSwitcher(num, a) {
	switchLoadBookmark(a);
	for (var i = 1; i <= 3; i++) {
		gebi("selectAvContId_" + i).style.display = (i == num) ? "" : "none";
	}
	return false;
}
// === /Переключение закладок: выбор типа загрузки ===

// ============ Скрытие/показ блока логина ===========
var loginBlockShow = false;
function loginBlockShowHide() {
	loginBlockShow = !loginBlockShow;
	gebi("BlockLogin").style.display = loginBlockShow ? "" : "none";
	gebi("LinkLogin").style.display = loginBlockShow ? "none" : "";
	gebi("brLoginId").style.display = loginBlockShow ? "none" : "";
	return false;
}
// =========== /Скрытие/показ блока логина ===========


// ================= Рейтинг фото ====================
function f2_highLight(f2_r)
{
var i = 1;
while (5 >= i) {gebi('f2_r'+i).style.background='#fff';gebi('f2_r'+i+i).style.color='#999';i++}
if (f2_r != 0) {gebi('f2_r'+f2_r).style.background='#14CE0F';gebi('f2_r'+f2_r+f2_r).style.color='#fff'}	
}

function highLightReit(a, ev, order) {
	var cell = a.parentNode;
	if (order == "+") {
		cell.className = ev == "over" ? "green" : "";
		while (cell.previousSibling && cell.previousSibling.nodeName.toLowerCase() != "th") {
		cell = cell.previousSibling;
			if (cell.nodeType == 1) {
				cell.className = ev == "over" ? "green" : "";
			}
		}
	} else if (order == "-") {
		cell.className = ev == "over" ? "red" : "";
		while (cell.nextSibling && cell.nextSibling.nodeName.toLowerCase() != "th") {
		cell = cell.nextSibling;
			if (cell.nodeType == 1) {
				cell.className = ev == "over" ? "red" : "";
			}
		}
	}
}
function fotoReitingVote(a, est, id) {
	a = a.parentNode.parentNode;
	var method = "POST";
	var url = "fotoReit2.php";
	var params = "id=" + id + "&estimate=" + est;
	var onload = fotoReitingVoteHandler;
	var onerror = fotoReitingVoteError;
	showHandleMessage(
		"Запрос обрабатывается",
		absPosition(a).x - 50,
		absPosition(a).y + 20
	);
	return setAjaxRequest(method, url, params, onload, onerror);
}
function fotoReitingVoteHandler() {
	var showReitInterval = 2000;
	var code = this.req.responseText;
	if (code == "error") {
		allTagsError();
		return;
	}
	hideHandleMessage();
	var contDiv = gebi("reitConteinerId");
	contDiv.innerHTML = "<div class=\"rating\">\
		<div class=\"vote_done\">Спасибо,<br />Ваш голос принят<\/div>\
	<\/div>";
	window.setTimeout("showVoteResult(" + code + ")", showReitInterval);
}
function fotoReitingVoteError() {
	showHandleMessage("При обработке запроса произошла ошибка.<br>Повторите попытку снова.");
}
function showVoteResult(estim, all) {
	gebi("reitConteinerId").innerHTML = "<div class=\"voiting\">\
		<span class=\"t90\">Рейтинг фото:<\/span>\
		<span class=\"bold text2\">" + estim + "<\/span><br />\
		<a href=\"#\" class=\"t70 tahoma\">" + all + " голосов<\/a>\
	<\/div>";
}
// ================ /Рейтинг фото ====================

// ============= Пожаловаться модератору =============
function showModerComplaint(a) {
	if (!gebi("complaintModerDivId")) return;
	gebi("complaintModerDivId").style.top = (absPosition(a).y + a.offsetHeight) + "px";
	gebi("complaintModerDivId").style.left = absPosition(a).x + "px";
	gebi("complaintModerDivId").style.display = "";
	gebi("complaintModerDivId").style.zIndex = 100000;
	return false;
}
function hideModerComplaint() {
	if (gebi("complaintModerDivId")) {
		gebi("complaintModerDivId").style.display = "none";
		return false;
	}
}
// ============ /Пожаловаться модератору =============

// =========== Добавить еще одного пользователя ============
var globalAuthorLimit = 10;

var globalAuthorCount = new Array();

function addAuthorMail(a, containerid, containernumber, countemailid) {
	if(containerid == undefined){ containerid = 'authorContainerId' }
	if(containernumber == undefined){ containernumber = 0 }
	if(globalAuthorCount[containernumber] == undefined){ globalAuthorCount[containernumber] = 1 }
	if(countemailid == undefined){ countemailid='countemailId' }

	if (globalAuthorCount[containernumber] >= globalAuthorLimit) {
		alert("Превышено максимальное число полей - " + globalAuthorLimit);
		return false;
	}
	globalAuthorCount[containernumber]++;
	var div = document.createElement("div");
	var parent = gebi(containerid);

	div.innerHTML = "<table class=\"add_favs\">\
		<tr>\
			<td><input type=\"text\" id=\"id"+containernumber+"_email_"+globalAuthorCount[containernumber]+"\" name=\"email_"+globalAuthorCount[containernumber]+"\" /><\/td>\
			<th><a href=\"#\" onclick=\"currentcontainer="+containernumber+"; currentmailline="+globalAuthorCount[containernumber]+"; return sw('email');\"><img src=\"http://img.mail.ru/r/foto2/ico_add.gif\" width=\"13\" height=\"16\" alt=\"\" /><\/a><\/th>\
		<\/tr>\
	<\/table>";

	if (parent != undefined) {
		var ob = gebi(countemailid);
		if( ob != undefined ){ ob.value = globalAuthorCount[containernumber]; }
		parent.appendChild(div);

		var ob = gebi('NewInputTextID');
		if(ob != undefined){
			ob.id = '';
			ob.focus();
		}	
	}else{
		alert('Не найден контейнер по id='+containerid);
	}
	return false;
}
// ========== /Добавить еще одного пользователя ============

// ==== Изменить форму настроек без перезагрузки =====
function settingsBlock(flag) {
	for (var i = 1; i <= 5; i++) {
		gebi("settingsBlock_" + i).style.display = (i == flag) ? "" : "none";
	}
}
// === /Изменить форму настроек без перезагрузки =====

// ====== Переключалка простой/расширеный поиск ======
function advancedSimpleSwitch(a) {
	var display = gebi("ExpandedSearchFoto").style.display;
	a.firstChild.nodeValue = display == "none" ? "Простой поиск" : "Расширенный поиск";
	gebi("ExpandedSearchFoto").style.display = display == "none" ? "" : "none";
	return false;
}
// ===== /Переключалка простой/расширеный поиск ======
/* Глобальная переменная для типа закрузки
	1 : Обычная загрузка,
	2 : Быстрая загрузка,
	3 : Загрузка архивом,
	4 : Загрузка из Интернета
*/
var globalLoadType = 1;

// ========== Соглашение при номинировании ==========
var contest_src_required = 0;
var sour_backup_value;
function showAgreement(sel) {
	var addF = gebi("addFId_" + globalLoadType);
	var index = sel.selectedIndex;
	contest_src_required = 0;
	if (index != 0) {
		for (i in nominationList) {
			if (sel.value == i) {
				top.frames["forAgree_" + globalLoadType].location.href = nominationList[i];
				contest_src_required = 1;
			}
		}
		gebi("forAgree2_" + globalLoadType).style.display = "";
		gebi("forAgree3_" + globalLoadType).style.display = "";
		if (gebi("fioId_" + globalLoadType)) gebi("fioId_" + globalLoadType).style.display = "";
		if (gebi("telId_" + globalLoadType)) gebi("telId_" + globalLoadType).style.display = "";
	} else {
		top.frames["forAgree_" + globalLoadType].location.href = "about:blank";
		gebi("forAgree2_" + globalLoadType).style.display = "none";
		gebi("forAgree3_" + globalLoadType).style.display = "none";
		if (gebi("fioId_" + globalLoadType)) gebi("fioId_" + globalLoadType).style.display = "none";
		if (gebi("telId_" + globalLoadType)) gebi("telId_" + globalLoadType).style.display = "none";
		sel.options[index].selected = true;
	}
	if (gebi("sour_" + globalLoadType)) {
		if (contest_src_required) {
			sour_backup_value = gebi("sour_" + globalLoadType).checked;
			gebi("sour_" + globalLoadType).checked = 1;
			sourOnChange();
		} else {
			if (typeof(sour_backup_value) == 'undefined') {
				sour_backup_value = gebi("sour_" + globalLoadType).checked;
			}
			gebi("sour_" + globalLoadType).checked = sour_backup_value;
			sourOnChange();
		}
	}
	if (addF) addF.ContestAgree.checked = false;
}
function sourOnChange() {
	var checked = gebi("sour_" + globalLoadType).checked;
	if (contest_src_required && !checked) return false;
	if (gebi("checkprint_" + globalLoadType)) gebi("checkprint_" + globalLoadType).disabled = (checked) ? 0 : 1;
	return true;
}
// ========= /Соглашение при номинировании ==========

// ============ Настройка доступа к фото ============
// Обработка изменения селекта "Доступ"
function setAccess(sel, flag) {
	if (flag) gebi("albumPassId").style.display = (sel.selectedIndex == 3) ? "" : "none";
	if (gebi("albumPassId_" + globalLoadType)) gebi("albumPassId_" + globalLoadType).style.display = (sel.selectedIndex == 3) ? "" : "none";
	if (gebi("albumVisForSearchId_" + globalLoadType)) gebi("albumVisForSearchId_" + globalLoadType).style.display = (sel.selectedIndex == 0) ? "" : "none";
}
function setAccess2(sel, type) {
	if (gebi("albumPassId_" + type)) gebi("albumPassId_" + type).style.display = (sel.selectedIndex == sel.options.length - 1) ? "" : "none";
	if (gebi("albumVisForSearchId_" + type)) gebi("albumVisForSearchId_" + type).style.display = (sel.selectedIndex == 0) ? "" : "none";
}
// Выбор (или скрытие) опции "Создание нового альбома"
function selectAlbumForUpload(sel) {
	var display = (sel.selectedIndex == sel.options.length - 1) ? "" : "none";
	if (gebi("albumNameId_" + globalLoadType)) gebi("albumNameId_" + globalLoadType).style.display = display;
	if (gebi("albumURLId_" + globalLoadType)) gebi("albumURLId_" + globalLoadType).style.display = display;
	if (gebi("albumCreateId_" + globalLoadType)) gebi("albumCreateId_" + globalLoadType).style.display = display;
	if (gebi("albumAccessId_" + globalLoadType)) gebi("albumAccessId_" + globalLoadType).style.display = display;
	if (gebi("albumVisForSearchId_" + globalLoadType)) gebi("albumVisForSearchId_" + globalLoadType).style.display = display;
	setAccess(gebi("selectAccessId_" + globalLoadType));
	if (display == "none") gebi("albumPassId_" + globalLoadType).style.display = display;
}
function selectAlbumForUpload2(sel, type)
{
	var display = (sel.selectedIndex == sel.options.length - 1) ? "" : "none";
	if (gebi("albumCreateId_" + type)) gebi("albumCreateId_" + type).style.display = display;
	if (gebi("albumAccessId_" + type)) gebi("albumAccessId_" + type).style.display = display;
	setAccess2(gebi("selectAccessId_" + type), type);
	if (display == "none" && gebi("albumPassId_" + type)) gebi("albumPassId_" + type).style.display = display;
}
// =========== /Настройка доступа к фото ============

// ============ Создание нового альбома =============
// Проверка количества введенных символов 
// и подстановка соот-их форм слов
var endingArray = ["", "а", "ов"]
function checkLengthWithForm(input, limit, showId, word) {
	limit = parseInt(limit);
	var b = document.getElementById(showId);
	if (input.value.length <= limit) {
		var ost = limit - input.value.length
		b.innerHTML = ost + " " + word + wordForms(ost, endingArray);
	} else {
		b.innerHTML = 0 + " " + word + "ов";
		input.value = input.value.substring(0, limit);
	}
}
function wordForms(num, arr) {
	var out;
	num = parseInt(num);
	if (num % 10 == 1 && num % 100 != 11) out = arr[0];
	else if ((num % 100 != 12 && num % 10 == 2) || (num % 100 != 13 && num % 10 == 3) || (num % 100 != 14 && num % 10 == 4)) out = arr[1];
	else out = arr[2];
	return out;
}
// ============ /Создание нового альбома =============

// ======= Добавление полей при загрузке Нетом =======
var countUrlFieldsHash = {
	"urlfoto_" : 0,
	"fotobrowse_" : 0
}
// Добавление поля выбора фото
function addField(blName, num) {
	num = parseInt(num);
	var addF = gebi("addFId_" + globalLoadType);
	var prevNum = num - 1;
	blName += "_";
	var parDiv = gebi(blName + prevNum).parentNode;
	var addingBlock = document.createElement("div");
	addingBlock.id = blName + num;
	if (blName == "urlfoto_") addingBlock.innerHTML = "\
		<div id=\"urlfoto_" + num + "\">\
		<table class=\"mt7\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" id=\"addurl_table_" + num + "\">\
			<tr>\
				<td width=\"100%\">\
					<input type=\"text\" name=\"URL\" value=\"http://\" />\
				<\/td>\
				<td nowrap=\"nowrap\">\
					&nbsp;&nbsp;&nbsp;&nbsp;<a class=\"t70 tahoma\" onclick=\"return delField('urlfoto_', 'addurl_table_','" + num + "');\" href=\"#\">Удалить<\/a>\
				<\/td>\
			<\/tr>\
		<\/table>\
		<div id=\"add_urlfoto_" + (num + 1) + "\">\
			<a class=\"t70 tahoma\" onclick=\"return addField('urlfoto', '" + (num + 1) + "');\" href=\"#\">Еще одно фото<\/a>\
		<\/div>";
	else if (blName == "fotobrowse_") addingBlock.innerHTML = "\
		<div id=\"fotobrowse_" + num + "\">\
		<table class=\"mt7\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" id=\"addbrowse_table_" + num + "\">\
			<tr>\
				<td width=\"100%\">\
					<input type=\"file\" name=\"foto\" />\
				<\/td>\
				<td nowrap=\"nowrap\">\
					&nbsp;&nbsp;&nbsp;&nbsp;<a class=\"t70 tahoma\" onclick=\"return delField('fotobrowse_', 'addbrowse_table_','" + num + "');\" href=\"#\">Удалить<\/a>\
				<\/td>\
			<\/tr>\
		<\/table>\
		<div id=\"add_fotobrowse_" + (num + 1) + "\">\
			<a class=\"t70 tahoma\" onclick=\"return addField('fotobrowse', '" + (num + 1) + "');\" href=\"#\">Еще одно фото<\/a>\
		<\/div>";
	if (countUrlFieldsHash[blName] < 30 - 1){
		gebi("add_" + blName + num).style.display = "none";
		countUrlFieldsHash[blName]++;
		parDiv.appendChild(addingBlock);
	} else alert("Превышен лимит на количество одновременно загружаемых фотографий, максимум - 30.");
	if (countUrlFieldsHash[blName] > 0) {
		addF.Title.disabled = true;
		addF.Comment.disabled = true;
		var iRd1 = addF["iRd1_" + globalLoadType];
		var iRd3 = addF["iRd3_" + globalLoadType];
		var iRd4 = addF["iRd4_" + globalLoadType];
		if (iRd3.checked) iRd1.checked = true;
		if (iRd4.checked) iRd1.checked = true;
		iRd3.disabled = true;
		iRd4.disabled = true;
		addF.Contest.disabled=true;
		addF.Contest.options[0].selected=true;
		showAgreement(addF.Contest);
	}
	return false;
}
// Удаление поля
function delField(blName, id, num) {
	var addF = gebi("addFId_" + globalLoadType);
	gebi(id + num).style.display = "none";
	countUrlFieldsHash[blName]--;
	if (countUrlFieldsHash[blName] == 0) {
		addF.Title.disabled = false;
		addF.Comment.disabled = false;
		var iRd3 = addF["iRd3_" + globalLoadType];
		var iRd4 = addF["iRd4_" + globalLoadType];
		iRd3.disabled = false;
		iRd4.disabled = false;
		addF.Contest.disabled = false;
	}
	return false;
}
// ====== /Добавление полей при загрузке Нетом =======

function albumCasheSwitcher(type, switchFlag,host)
{
	button_delete_state = OwnAlbumVar ? true : false;//(type != 'special' && )
	// Проверка
	if (typeof albumsArray[type] == "undefined") return false;
	// Переключение закладок
	if (switchFlag) {
		gebi("commonAlbumId").style.display = gebi("commonAlbumId").style.display == "none" ? "" : "none";
		gebi("specialAlbumId").style.display = gebi("specialAlbumId").style.display == "none" ? "" : "none";
		albumPage = 1;
		albumType = type;
	}
	// Отрисовка
	var arr = albumsArray[type];
	var cols = 2, rows = parseInt(albumOnPage / cols) + (albumOnPage % cols ? 1 : 0);
	var i, j, k = -1;
	var code = "<table class='preview'>\n";

	for (i = 1; i <= rows; i++) {
		if (typeof arr[k + 1] == "undefined") break;
		code += "<tr" + (type == "special" ? "" : "") + ">\n";//
		for (j = 1; j <= cols; j++) {
			k = ((albumPage - 1) * albumOnPage) + ((i - 1) * cols + j) - 1;
			if ((i - 1) * cols + j > albumOnPage) continue;
			if (typeof arr[k] != "undefined") {
				var favoritesVar = (arr[k][0] == '_myphoto') ? true : false;
				var properties = OwnAlbumVar ? '<p><a href="http://'+PhotoPerlHost()+'/cgi-bin/photo/editalbum?id=' +arr[k][0] + '"><img src="http://img.mail.ru/r/foto2/ico_pencil.gif" width="16" height="16" alt="Свойства" title="Свойства" />Свойства<\/a><\/p>' : '';
				var printSpecial = ((type == "special" && favoritesVar) || type != "special") ? ('<p><a ' + (arr[k][6] ? '' : 'onclick="return showProtectAlbum(event, \'' + arr[k][1] + '\', this);" ') + 'href="http://'+PhotoPerlHost()+'/cgi-bin/photoprint_photo?album=' + arr[k][0] + '&albumowner=' + authorMail + '"><img src="http://img.mail.ru/r/foto2/ico_print.gif" width="16" height="16" alt="Напечатать" title="Напечатать" />Напечатать<\/a><\/p>') : '';
				var button_delete = button_delete_state ? '<p><a onclick="return confirm(\'Вы действительно хотите удалить альбом со всеми находящимися в нем фото?\');" href="http://'+PhotoPerlHost()+'/cgi-bin/photo/editalbum?delete=1&id=' +arr[k][0] + '"><img src="http://img.mail.ru/r/foto2/ico_delete.gif" width="16" height="16" alt="Удалить" title="Удалить" />Удалить<\/a><\/p>' : '';
				code += '<td>'+
				'<table><tr><td><a ' + (arr[k][6]? '' : 'onclick="return showProtectAlbum(event, \'' + arr[k][0] + '\', this);" ') + 'href="' + albumsPath + arr[k][0] + '"><img src="' + arr[k][2] + '" alt="' + arr[k][1] + '" title="' + arr[k][1] + '" /><\/a> <\/td><\/tr><\/table><a href="' + albumsPath + arr[k][0] + '" ' + (arr[k][6] ? '' : 'onclick="return showProtectAlbum(event, \'' + arr[k][0] + '\', this);" ') + '>' + arr[k][1] + '<\/a><br />' +
				'<span>' + (arr[k][3] ? arr[k][3] + ' фото' : '') + '<br />' + (arr[k][4] ? arr[k][4] + ' ' + arr[k][5] : '') + '<br /><\/span><br />' +
				printSpecial +
				properties +
				button_delete +
				'<\/td>\n';
			} else code += "<td class=\"no_frame\">&nbsp;<\/td>";
		}
		code += "<\/tr>\n";
	}
	code += "<\/table>";
	gebi("albumListId").innerHTML = code;
	albumCasheChangePage(albumPage, 1)
	return false;
}
function albumCasheChangePage(num, from) {
	// Проверка
	if (typeof albumsArray[albumType] == "undefined") return;
	var allPages = parseInt(albumsArray[albumType].length / albumOnPage) + (albumsArray[albumType].length % albumOnPage ? 1 : 0);
	if (allPages <= 1) {
		if (gebi("albumListalkaId")) {gebi("albumListalkaId").innerHTML = " ";}//
		return false;
	}
	// Отрисовка
	albumPage = num;
	if (!from) albumCasheSwitcher(albumType);
	var code = "";
	if (albumPage != 1) code += "&nbsp;<a onclick=\"albumCasheChangePage(" + (albumPage - 1) + ");\" href=\"#albums_top\"><b>&lsaquo;<\/b>&nbsp;Назад&nbsp;<\/a>&nbsp;\n";
	for (var i = 1; i <= allPages; i++) {
		if (i == albumPage) code += "<b class=\"black\">&middot;&nbsp;" + i + "&nbsp;&middot;<\/b>\n";
		else code += "&nbsp;<a onclick=\"albumCasheChangePage(" + i + ");\" href=\"#albums_top\">" + i + "<\/a>&nbsp;\n";
	}
	if (albumPage != allPages) code += "&nbsp;<a onclick=\"albumCasheChangePage(" + (albumPage + 1) + ");\" href=\"#albums_top\">Далее&nbsp;<b>&rsaquo;<\/b><\/a>&nbsp;\n";
	gebi("albumListalkaId").innerHTML = code;
	return false;
}
// ============ /CASHE-switcher альбомы  =============

// =========== Закрыть доступ к альбому ==============
function showProtectAlbum(evt, id, _link) {
	cancelBubbling(evt);
	var div, hidden;
	if (div = gebi("secureAlbumDivId")) {
		div.style.display = "";
		div.onclick = cancelBubbling;
		div.style.top = (absPosition(_link).y + _link.offsetHeight) - 120 + "px";
		div.style.left = absPosition(_link).x + 60 + "px";
		if (hidden = gebi("secalbid")) {
			hidden.value = id;
		}
		gebi('secalbpass').focus();
		gebi('secalbpass').value='';
		return false;
	}
	return;
}

function hideProtectAlbum() {
	var div;
	if (div = gebi("secureAlbumDivId")) {
		div.style.display = "none";
	}
}

addHandler(document, 'click', hideProtectAlbum);

function checkAlbumPasswordCallback (st,redirurl) {
    hideProtectAlbum();
    if (st==1) {
	   document.location.href=redirurl;
    } else {
	    alert ('Неправильный пароль');
    }   
}	

function checkAlbumPassword (album_id,passwd,redirurl) {
    var st=ajax_call('perl_check_album_password',album_id,passwd,redirurl,checkAlbumPasswordCallback);
}

function checkAlbumPasswordNoLogin (album_id,passwd,redirurl) {
    var st=ajax_call_nologin('perl_check_album_password_nologin',album_id,passwd,redirurl,checkAlbumPasswordCallback);
}
// ========== /Закрыть доступ к альбому ==============

// ======= Функциональность работы с друзьями ========

function AddSubscriptionCallback(st,errorcode,errortext) {
	if (st==1) {
		alert('Подписка добавлена');
	} else {
		alert('Организовать подписку не получилось: '+errortext);
	}	
}

function AddSubscription () {
    var st=ajax_call('perl_add_subscription',AddSubscriptionCallback);
    if (!st) {
		alert('Подписаться не получилось');
    }	
    return false;
}

// ======= /Функциональность работы с друзьями =======

//======= Подсказки к рейтингам ==========
var awardData=[
"Фото с рейтингом больше 2500 попадают в почётный фонд Фото@Mail.Ru и награждаются золотой медалью.",
"Фото с рейтингом больше 1000 попадают в почётный фонд Фото@Mail.Ru и награждаются серебряной медалью.",
"Фото с рейтингом больше 500 попадают в почётный фонд Фото@Mail.Ru и награждаются бронзовой медалью.",

"Знак \"Великолепное фото\" получают фото со средней оценкой от 4.9.<br/>Средняя оценка этого фото - ",
"Знак \"Прекрасное фото\" получают фото со средней оценкой от 4.8 до 4.9.<br/>Средняя оценка этого фото - ",
"Знак \"Отличное фото\" получают фото со средней оценкой от 4.5 до 4.8.<br/>Средняя оценка этого фото - "

];
												
function awardHelp(evt, img, id, right, top, rate) { 
	cancelBubbling(evt);
	
	if (gebi("awardHelpDiv")) awardHelpHide();
	
	hideContext();

	if (img.childNodes)
	{
		var arrChildIMG = img.childNodes;
		arrChildIMG = arrChildIMG.length ? arrChildIMG : [arrChildIMG];
		arrChildIMG_length = arrChildIMG.length;
		var varIMG;
		for (var i = 0; i < arrChildIMG_length; i++)
			{if (arrChildIMG[i].nodeName == 'IMG') {varIMG = arrChildIMG[i];}}
	}
	img = varIMG;
	

	var rightFlag = typeof right == 'undefined' || !right ? false : true;
	var topFlag = typeof top == 'undefined' || !top ? false : true;
	top = parseInt(top);
	top = top == 1 ? -50 : top;
	if (screenSize().w - absPosition(img).x < 250) rightFlag = true;//

	var targetDiv;
	if (!gebi("awardHelpDiv")){
		var div = document.createElement("div");
		div.id = "awardHelpDiv";
		div.className = "award_help_div";
		div.style.top = "0px";
		div.style.left = "0px";
		div.style.display = "none";
		div.style.zIndex = "100000000";
		document.body.appendChild(div);
		
	}
	targetDiv = gebi("awardHelpDiv");
	targetDiv.innerHTML="<a onclick=\"awardHelpHide();return false;\" href=\"\"><img src=http://img.mail.ru/r/foto2/ico_close.gif height=7 width=7 border=0 align=right alt=\"Закрыть\"><\/a><br /><div>" + awardData[id]+ "<b>" + rate + "</b>" + "<\/div>";
	var xRemainder = (rightFlag) ? -190 - img.width + 2 : 0;
	var yRemainder = (topFlag) ? top : 0;
	targetDiv.style.top = (absPosition(img).y + yRemainder) + img.height + 2 + "px";
	targetDiv.style.left = (absPosition(img).x + xRemainder) + "px";
	targetDiv.onclick = cancelBubbling;
	targetDiv.style.display = "block"; 
	return false;
}
// Скрыть контекстную подсказку
function awardHelpHide() {
	if (gebi("awardHelpDiv")) gebi("awardHelpDiv").parentNode.removeChild(gebi("awardHelpDiv"));
}
addHandler(document, 'click', awardHelpHide);

//============================================

//=====x2===========

function hide2x() {
	if(gebi("2x")) gebi("2x").style.display="none";
}


//========открываем голосование в новом окне================

//размеры окна
function getScreenSize() {
	var myWidth = 0, myHeight = 0;
	
	myWidth = screen.width; 
	myHeight = screen.height;
	
	return {w:myWidth,h:myHeight};
}

function openNew(id,votingSrc)
{
	var votingSrcValue = votingSrc ? votingSrc : 'contest';
	var photoperlhost = PhotoPerlHost();
	var _width = 886;
	var _height = 726;
	var top = 0;
	var left = ( getScreenSize().w - _width ) / 2; 
	var newWin = window.open('http://' + photoperlhost + '/cgi-bin/photo/voting?' + votingSrcValue + '=' + id,'_new','width='+_width+',height='+_height+',top='+top+',left='+left+',resizable');
}



//обрубает длинные ники и имена роликов
function cutName()
{
// первый аргумент - никнейм
// второй - ширина контейнера (при отсутствии - 120px (морда))
	if (cutName.arguments[0]) {
	    var tmp_nickname = cutName.arguments[0]; 
	} else { 
            if(cutName.arguments[2]){
                var cbox = cutName.arguments[2].toString();
            } else if(cutName.arguments[1] && cutName.arguments[1] != 145 && cutName.arguments[1] != 240){
                var cbox = cutName.arguments[1].toString();
            } else {
                return;
            }
	    
	    if (cbox){
	        var xyz = cbox.split('/');
	        if(xyz.length == 4){
	            var tmp_nickname = xyz[2] + '@';
	            tmp_nickname += (xyz[1] == 'corp') ? 'corp.mail.ru' : xyz[1] + '.ru';
	        } else {
	            return;
	        }
	    } else {
                return;
	    }
	}
	var dlength = 12;
	if (cutName.arguments[1])
	{
		dlength = (cutName.arguments[1] == 145) ? 17 : dlength;
		dlength = (cutName.arguments[1] == 240) ? 24 : dlength;
	}
	var qUpLetters = 0;
	for (var i =0; i < dlength; i++)
	{
		tmp_Letter = tmp_nickname.substring(i, i + 1);
		tmp_Letter_u = tmp_Letter.toUpperCase();
		if (tmp_Letter == tmp_Letter_u)
		{
			if( !(/[,\.?!;:\/<>()\{\}\[\]\"\'=@&\s\\]/i.test(tmp_Letter)) )
			{
				if (tmp_Letter_u != 'W' || tmp_Letter_u != 'M' || tmp_Letter_u != 'G' || tmp_Letter_u != 'М' || tmp_Letter_u != 'Ш' || tmp_Letter_u != 'Щ' || tmp_Letter_u != 'Ф' || tmp_Letter_u != 'Ж')
					{qUpLetters++;}
				else {qUpLetters += 1.3;}
			}
		}
	}
	dlength = qUpLetters > dlength/2 ? (dlength/2) : ((qUpLetters < (dlength/2) && qUpLetters > 2) ? (dlength/2 + (dlength/2)/2) : dlength);
	lengthName = dlength;

	tmp_nickname = tmp_nickname.length > lengthName ? (tmp_nickname.substring(0,lengthName) + '...') : tmp_nickname;
	return tmp_nickname;
}

/*
ВЕСНА КРАСНА КРАСНА! - 20
Весна красна красна кр! - 23

Неработающее ветвление
	if (qUpLetters > dlength/2)
	{
		lengthName =(dlength/2) + (dlength/2)/2;
	}
	else if (qUpLetters < (dlength/2) && qUpLetters > 2)
	{
		lengthName = dlength/2 + (dlength/2)/2;// + ((dlength/2)/2)/2
	}
	else
	{lengthName = dlength;}
*/

//=================   Кодировка символов в windows-1251 и функция выбора "Другой метки"
Char2Hex = new Object();
for(var i =  0; i<=255;i++ ) {
     var j = parseInt(i/16); var j2 = parseInt(i%16);
    Char2Hex[''+String.fromCharCode(i)] = ('%' + j.toString(16) + j2.toString(16) ).toUpperCase();
}
Char2Hex['_']='%5F';
Char2Hex['А']='%C0';
Char2Hex['Б']='%C1';
Char2Hex['В']='%C2';
Char2Hex['Г']='%C3';
Char2Hex['Д']='%C4';
Char2Hex['Е']='%C5';
Char2Hex['Ж']='%C6';
Char2Hex['З']='%C7';
Char2Hex['И']='%C8';
Char2Hex['Й']='%C9';
Char2Hex['К']='%CA';
Char2Hex['Л']='%CB';
Char2Hex['М']='%CC';
Char2Hex['Н']='%CD';
Char2Hex['О']='%CE';
Char2Hex['П']='%CF';
Char2Hex['Р']='%D0';
Char2Hex['С']='%D1';
Char2Hex['Т']='%D2';
Char2Hex['У']='%D3';
Char2Hex['Ф']='%D4';
Char2Hex['Х']='%D5';
Char2Hex['Ц']='%D6';
Char2Hex['Ч']='%D7';
Char2Hex['Ш']='%D8';
Char2Hex['Щ']='%D9';
Char2Hex['Ъ']='%DA';
Char2Hex['Ы']='%DB';
Char2Hex['Ь']='%DC';
Char2Hex['Э']='%DD';
Char2Hex['Ю']='%DE';
Char2Hex['Я']='%DF';
Char2Hex['а']='%E0';
Char2Hex['б']='%E1';
Char2Hex['в']='%E2';
Char2Hex['г']='%E3';
Char2Hex['д']='%E4';
Char2Hex['е']='%E5';
Char2Hex['ж']='%E6';
Char2Hex['з']='%E7';
Char2Hex['и']='%E8';
Char2Hex['й']='%E9';
Char2Hex['к']='%EA';
Char2Hex['л']='%EB';
Char2Hex['м']='%EC';
Char2Hex['н']='%ED';
Char2Hex['о']='%EE';
Char2Hex['п']='%EF';
Char2Hex['р']='%F0';
Char2Hex['с']='%F1';
Char2Hex['т']='%F2';
Char2Hex['у']='%F3';
Char2Hex['ф']='%F4';
Char2Hex['х']='%F5';
Char2Hex['ц']='%F6';
Char2Hex['ч']='%F7';
Char2Hex['ш']='%F8';
Char2Hex['щ']='%F9';
Char2Hex['ъ']='%FA';
Char2Hex['ы']='%FB';
Char2Hex['ь']='%FC';
Char2Hex['э']='%FD';
Char2Hex['ю']='%FE';
Char2Hex['я']='%FF';
Char2Hex['ё']='%B8';
Char2Hex['Ё']='%A8';
Char2Hex[' ']='%20';

function urlencode(str) {
    if(!str || typeof(str) == "undefined" || str == null || str == "") return "";
    var res = '';
    for(var i=0;i<str.length;i++) {
        var char = str.substr(i,1);
        res = '' + res + ( (typeof(Char2Hex[char]) != "undefined" ) ? Char2Hex[char] : char);
    }
    return res;
}

function ShowOtherTag(evt) {
	cancelBubbling(evt);
	gebi('tag_other').onclick = cancelBubbling;
	if (gebi('tag_other').style.display == 'none') {
		gebi('tag_other').style.display = 'block';
		gebi('tag_other_form').elements['tag_other_name'].focus();
	} else HideOtherTag();
}
function HideOtherTag() {
	if (gebi('tag_other')) {gebi('tag_other').style.display = 'none';}
}
addHandler(document, 'click', HideOtherTag);

function GoOtherTag(host, name) {
	location.href ='http://' + host + '/tags/' + urlencode(name) + '?from_other_tag';
}

//====================== Всплывающая подсказка "SMS-игры"
var SMStop_opened  = "";
function ShowSMStop(evt, img, offsetY, offsetX, PhotoUserID, id, AlbumAccess, Ero, AlbumVote, host, gameCode, ActiveUserID,link) {
	SMStop_opened = (SMStop_opened == img)  ? id : SMStop_opened;
	cancelBubbling(evt);
	if (SMStop_opened == img) {HideSMStop();return false;}
	
	ActiveUserID = (ActiveUserID) ? ActiveUserID : 0;

	hideContext();
	
	var targetDiv, _top, _left, deltaY = 0, deltaX = 0;
		
	if (!gebi('smstopHelpDiv')) {
		var div = document.createElement('div');
		div.id = 'smstopHelpDiv';
		div.style.top = '0';
		div.style.left = '0';
		div.style.display = 'none';
		div.style.zIndex = '100000000';
		document.body.appendChild(div);
	}
	
	var str = new Array();
	
	var out = '';
	
		str[1] = '<span class="title">Фото-Лидер</span> <a href="http://' + host + '/catalog/static/show_yourself.html#leader" class="more">Подробнее</a><br />' +
		'<p>' + 
			'<span class="block1">Размещение фото на главной <br />странице в рубрике &laquo;Фото-лидер&raquo;.</span><br />' +
			'<span class="block2">Для участия отправьте SMS с кодом<br /><b>11+' + PhotoUserID + '+' + id + '</b>.<br/>Для России и Украины на короткий номер&nbsp;<b>7099</b>, для Казахстана&nbsp;&mdash;&nbsp;<b>7502</b>.</span><br />' +
			'<span class="block3">Стоимость услуги: 0,99 у.е. без НДС.</span>' +
		'</p>';
		str[2] = '<span class="title">SMS-топ</span> <a href="http://' + host + '/catalog/static/show_yourself.html#smscodes1" class="more">Подробнее</a><br />' +
		'<p>' + 
			'<span class="block1">Размещение фото на главной <br />странице в рубрике &laquo;SMS-топ&raquo;.</span><br />' +
			'<span class="block2">Для участия отправьте SMS с кодом<br /><b>10+' + PhotoUserID + '+' + id + '</b>.<br/>Для России и Украины на короткий номер&nbsp;<b>7099</b>, для Казахстана&nbsp;&mdash;&nbsp;<b>7502</b>.</span><br />' +
			'<span class="block3">Стоимость услуги: 0,99 у.е. без НДС.</span>' +
		'</p>';

		str[3] = '<span class="title">Дайте две!</span> <a href="http://' + host + '/catalog/static/show_yourself.html#smscodes2" class="more">Подробнее</a><br />' +
		'<p>' + 
			'<span class="block1">Каждый голос за фото удваивается. Срок действия &mdash; 1 час.</span><br />' +
			'<span class="block2">Для участия отправьте SMS с кодом<br /><b>12+' + PhotoUserID + '+' + id + '</b>.<br/>Для России и Украины на короткий номер&nbsp;<b>7250</b>, для Казахстана&nbsp;&mdash;&nbsp;<b>7504</b>.</span><br />' +
			'<span class="block3">Стоимость услуги: 2,6 у.е. без НДС.</span>' +
		'</p>';
	
		str[4] = '<span class="title">Держи десять!</span> <a href="http://' + host + '/catalog/static/show_yourself.html#d10" class="more">Подробнее</a><br />' +
		'<p>' + 
			'<span class="block1">Возможность ставить оценку +10 в течение 1 часа.</span><br />';
		if (ActiveUserID) str[4] += '<span class="block2">Для участия отправьте SMS с кодом<br /><b>27+' + ActiveUserID + '</b>.<br/>Для России и Украины на короткий номер&nbsp;<b>7099</b>, для Казахстана&nbsp;&mdash;&nbsp;<b>7502</b>.</span><br />';
		else str[4] += '<span class="block2">Для участия в игре вы должны <a href=\"http://' + host + '/cgi-bin/login?page=' + encodeURI(window.location.href) + '\">авторизоваться<\/a>.<br />';
		str[4] +=	'<span class="block3">Стоимость услуги: 0,99 у.е. без НДС.</span>' +
		'</p>';
		
			if (!gameCode) {
				if ((AlbumAccess == 2) && (Ero == 0))  out = str[1] + str[2];
				if (AlbumVote == 1) out += str[3];
				out += str[4];
			}else out = str[gameCode];
	
	if(offsetY != '' && parseInt(offsetY)) deltaY = parseInt(offsetY);  
	if(offsetX != '' && parseInt(offsetX)) deltaX = parseInt(offsetX);
			
	targetDiv = gebi('smstopHelpDiv');
	targetDiv.innerHTML = '<div class="infoblock"><h1>SMS-игры</h1><a href="#" onclick="HideSMStop(); return false;"><img src="http://img.mail.ru/r/foto2/ico_close.gif" width="7" height="7" alt="Закрыть" class="close" /></a>' + out + '</div>';
	targetDiv.onclick = cancelBubbling;

	targetDiv.style.display = 'block';
		
	if (getWinSize().h + defScroll().y - absPosition(img).y - deltaY < targetDiv.offsetHeight + 50 ) deltaY = targetDiv.offsetHeight *(-1) - 20;
	if (getWinSize().w + defScroll().x - absPosition(img).x - deltaX < targetDiv.offsetWidth + 50 )  deltaX = targetDiv.offsetWidth *(-1) - 20;

	if(offsetX == 'left') deltaX = targetDiv.offsetWidth *(-1) - 20;
		else if(offsetX == 'right') deltaX = 0;
	
	if(offsetY == 'top') deltaY = targetDiv.offsetHeight *(-1) - 20;
		else if(offsetY == 'bottom') deltaY = 0;
	
	_top =  absPosition(img).y;
	_top += deltaY ;
	targetDiv.style.top	= _top + 20 + "px";
	
	_left = absPosition(img).x ;
	_left += deltaX ;
	targetDiv.style.left = _left + 20 + "px";
	
	SMStop_opened = img;
	return false;
}

function HideSMStop() {
	if (gebi('smstopHelpDiv')) gebi('smstopHelpDiv').parentNode.removeChild(gebi('smstopHelpDiv'));
	SMStop_opened = "" ;
}
addHandler(document, 'click', HideSMStop);


//str_replace
function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}


//подсказка к голосованию
function contextHelpVote(evt, obj, host, prefix, userid, number, dX, dY) {
	cancelBubbling(evt);
	
	hideContext();

	var x = absPosition(obj).x + dX;
	var y = absPosition(obj).y + dY ;
	
	var kaz_number;
	switch (number) {
		case "7099" : kaz_number = "7502"; break;
		case "7250" : kaz_number = "7504"; break;
	}
     
	//var text="<div style=\"text-align:center;\">Вы можете увеличить количество баллов за оценку до <b>10<\/b> !<\/div><div style=\"text-align:center;\"><b>Отправьте с мобильного телефона sms-сообщение:<br \/><span class=\"num\">" + prefix + "+" + userid + "<\/span> на номер <span class=\"num\">" + number + "<\/span><\/b><\/div><br \/>Правила сервиса:<br \/><ul><li>Одно sms-сообщение дает возможность ставить повышенные оценки в течение 12 часов.<li>Sms-сообщения не суммируются<\/ul><b>Стоимость услуги<\/b>:<br \/>для России - 0.99 у.е. без НДС;<br\/>для Украины - 6 грн. с НДС."; 
	var text  = '<span class="title">Держи десять!</span> <a href="http://' + host + '/catalog/static/show_yourself.html#d10" class="more">Подробнее</a><br />' +
		'<p>' + 
			'<span class="block1">Возможность ставить оценку +10 в течение 1 часа.</span><br />';
	
	if (!userid) text += '<span class="block2">Для участия в игре вы должны <a href=\"http://' + host + '/cgi-bin/login?page=' + encodeURI(window.location.href) + '\">авторизоваться<\/a>.<br />';
	else text += '<span class="block2">Для участия отправьте SMS с кодом<br /><b>'+ prefix + '+' + userid + '</b>.<br/>Для России и Украины на короткий номер&nbsp;<b>' + number + '</b>, для Казахстана&nbsp;&mdash;&nbsp;<b>' + kaz_number + '</b>.</span><br />';
	text +=	'<span class="block3">Стоимость услуги: 0,99 у.е. без НДС.</span>' +
		'</p>';
	var div_width = 250;

	var rightFlag = true;	
	//if (screenSize().w - x < div_width +250) rightFlag = true;//

	var targetDiv;
	if (!gebi("helpVoteDiv")){
		var div = document.createElement("div");
		div.id = "helpVoteDiv";
		div.style.width = div_width+"px";
		div.style.top = "0px";
		div.style.left = "0px";
		div.style.display = "none";
		div.style.zIndex = "100000000";
		document.body.appendChild(div);
	}
	targetDiv = gebi("helpVoteDiv");
		targetDiv.innerHTML = '<div class="infoblock"><h1>SMS-игры</h1><a href="#" onclick="contextHelpVoteHide(); return false;"><img src="http://img.mail.ru/r/foto2/ico_close.gif" width="7" height="7" alt="Закрыть" class="close" /></a>' + text + '</div>';

	targetDiv.style.top = y + "px";
	targetDiv.style.left = (rightFlag) ? x - div_width + "px" : x +"px";
	targetDiv.onclick = cancelBubbling;
	targetDiv.style.display = "block";
	return false;
}

function contextHelpVoteHide() {
	if (gebi("helpVoteDiv")) gebi("helpVoteDiv").style.display = "none";
}
addHandler(document, 'click', contextHelpVoteHide);


// Один из многочисленных хинтов из foto.tmpl
function viewFlyHelp(objId,textMes)
{
	if (objId)// && textMes
	{
		if (gebi(objId) && gebi(objId).style.display == 'block')
			{gebi(objId).style.display = 'none';}
		else
		{
			if (!gebi(objId))
			{
				var div_for_voting_block = document.createElement('DIV');
				div_for_voting_block.id = 'for_voting_block';
				div_for_voting_block.innerHTML = '<div id="for_voting_block_close"><a href="#" onClick="viewFlyHelp(this.offsetParent.id); return false;"><img src="http://img.mail.ru/mail/ru/images/blogs/close_help.gif" width="7" height="7" /><\/a><\/div><div id="for_voting_block_text"><\/div>';
				var parent_div_for_voting_block = document.getElementsByTagName('BODY')[0];
				parent_div_for_voting_block.appendChild(div_for_voting_block);
			}
			gebi('for_voting_block_text').innerHTML = textMes;
			gebi(objId).style.left = parseInt(absPosition(gebi('voting_block')).x) - 80 + 'px';
			gebi(objId).style.top = parseInt(absPosition(gebi('voting_block')).y) + 23 + 'px';
			gebi(objId).style.display = 'block';
		}
	}
}

function closeHelpBlock()//закрытие всех блоков помощи при клике на пустое место страницы
{
	if (gebi('for_voting_block') && gebi('for_voting_block').style.display == 'block'){viewFlyHelp('for_voting_block');}
}
// \Один из многочисленных хинтов из foto.tmpl


//подписка на метку 
function subscribe_tag(tagname) {
	if (confirm("Подписаться на ежедневную рассылку новых фото с меткой \"" + tagname + "\" ?")) ajax_call('perl_add_subscription_tag', tagname ,AddSubscriptionTagCallback); 
	
	return false;
}

function getWinSize() {
	var myWidth = 0, myHeight = 0;
	
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	}
	else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	}
	else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	return {w:myWidth,h:myHeight};
}


// Листалка страницы через клавиатуру Ctrl+стрелка 
function listpage(event)
{
	if (!event) event = window.event;
	var key = event.keyCode;
	if (event.ctrlKey)
	{
		var tagName = (event.target || event.srcElement).tagName;
		if (tagName != 'INPUT' && tagName != 'TEXTAREA')
		{
			var doc;
			if (key == 37) doc = gebi('previous_page');
			if (key == 39) doc = gebi('next_page');
			if (doc) location.href = doc.href;
		}
	}
}


//убираем все подсказки
function hideContext() {
	//убираем подсказку к рейтингу (цветы и медали)
	awardHelpHide();
	//убираем подсказку к +10
	contextHelpVoteHide();
	//hide hint
	contextHelpHide();
	//убрираем смс подсказку 
	HideSMStop();
	//убираем сабменю
	InfoBlock.hide();

	HideExif();
	
}

function HideExif(){
	if (gebi('exif_div')) { 
	    document.body.removeChild(gebi('exif_div'));
	}
}

// Status dogs-icon onload
var arrMRIMStatus;
var arrTagsI, arrTagsA;
function getTagsMrimStatus(class_name,tag_name)
{
	var mrimstatus_url;
	var arrTags, emails = [];
	
	switch (tag_name) {
		case "I" : arrTags = arrTagsI; break;
		case "A" : arrTags = arrTagsA; break;
	}
	var arrTags = gebc(class_name,tag_name);
	var arrTagsL = arrTags.length;
	arrMRIMStatus = [];
	for (var i = 0; i < arrTagsL; i++)
	{
		if (arrTags[i].className && arrTags[i].className != 'undefined' && arrTags[i].className.indexOf(class_name) != -1) {
			arrMRIMStatus[arrMRIMStatus.length] = arrTags[i];
			
			if(arrTags[i].getAttribute("email")) 
				emails.push(arrTags[i].getAttribute("email")); 
			else if(arrTags[i].getAttribute("href")) {
				var arr = arrTags[i].href.match(/to\=(\S*)$/);
				if(arr[1]) emails.push(arr[1]);
			}	
			
		}
	}
	
	switch (tag_name) {
		case "I" : arrTagsI = arrTags; break;
		case "A" : arrTagsA = arrTags; break;
	}
	
	if(emails.length > 0) {
		mrimstatus_url = emails.join(","); 
		if (mrimstatus_url != '') return mrimstatus_url;
	}
	else return "";
}


function mrimstatus_callback(mrimstatus,error)
{
	var arrMrimStatus_callback = mrimstatus.split('');
	var arrMrimStatus_callbackL = arrMrimStatus_callback.length;
	for (var i = 0; i < arrTagsI.length; i++)
	{
		switch (arrMrimStatus_callback[i]) {
		case '1' :
			arrTagsI[i].className = 'f2_mrim_status f2_on';
			break;
		case '2' :
			arrTagsI[i].className = 'f2_mrim_status f2_left';
			break;
		default :
			arrTagsI[i].className = 'f2_mrim_status f2_off';
			break;
		}
	}
	
	for (var a = 0; a < arrTagsA.length; a++)
	{
		switch (arrMrimStatus_callback[i+a]) {
		case '1' :
			arrTagsA[a].className += ' mrim-online_9';
			break;
		case '2' :
			arrTagsA[a].className += ' mrim-away_9';
			break;
		default :
			arrTagsA[a].className += ' mrim-offline_9';
			break;
		}
	}
}
addHandler(window, 'load', function() {
	if(typeof spot == "undefined" ){
		var mrimstatus_url = "";
		mrimstatus_url += getTagsMrimStatus('f2_mrim_status','I');
		mrimstatus_url += (mrimstatus_url != "") ? "," : "" ;
		mrimstatus_url += getTagsMrimStatus('spr-mrim-9','A');
		if (mrimstatus_url) {
			mrimstatus_url = "http://" + PhotoPerlHost() + "/proxy-mrim-status?" + mrimstatus_url;
			ajax_call_nomagick(mrimstatus_url, mrimstatus_callback);
		}
	}
});
// Status dogs-icon onload


//Tooltips (depends tooltiplib.js)
function setTooltip(i,n) { 
	var el = gebi(i);
	if(el) {
		el.onmousemove="";
		el.onmouseout="";
				
		if (n.length > 60) {
			el.onmousemove = function(event) {return ttlOver(event,n);};
			el.onmouseout = function() {return ttlOut();};
		}
	}else return;
}


/*new func for user info*/
function userInfo(_email, a, evt, f2_userpath, f2_userInfo_popup) 
{
	if (f2_userInfo_popup && f2_userInfo_popup != 'undefined')
	{
		if (f2_userInfo_popup == true)
			{var f2_userInfo_targetPath = ' target=\"_blank\"';}
		else
			{var f2_userInfo_targetPath = '';}
	}
	else if (!f2_userInfo_popup || f2_userInfo_popup == 'undefined') {var f2_userInfo_targetPath = '';}

	cancelBubbling(evt);
	var mail = _email;
	var re = /(.*?)@(.*?)\./;
	var perlhost=PhotoPerlHost();
	var imaginehost=PhotoImagineHost();
		
	re.exec(mail);
	var login = RegExp.$1;
	var domain = RegExp.$2;
	var infoDiv;
	if (!gebi("infoDivId"))
	{
		var div = document.createElement("div");
		div.id = "infoDivId";
		div.className = "userInfoDiv";
		div.style.top = "0px";
		div.style.left = "0px";
		div.style.position = "absolute";
		div.style.display = "none";
		document.body.appendChild(div);
	}
	if (mail==f2_activeuseremail) { f2_hideSELFinfo = 1; } else { f2_hideSELFinfo = 0;}

	infoDiv = gebi("infoDivId");
	if (infoDiv.style.display != "none" && f2_userCashe == a)
	{
		infoDiv.style.display = "none";
		return false;
	}
	f2_userCashe = a;

	// Выключает строчку, если не IE
	var mailagent_link = window.attachEvent ? '<a class="grey" href="http://www.mail.ru/agent?message&to=' + mail + '&from=foto"><img class="sobaka" src="http://status.mail.ru/?' + mail + '" width="13" height="13" border="0" align="absmiddle" /><\/a><a class="grey" href="http://www.mail.ru/agent?message&to=' + mail + '&from=foto">Добавить в Mail.Ru Агент<\/a><br />' : '';

	infoDiv.innerHTML = '' +
	'<table border="0" cellspacing="0" cellpadding="0"><tr valign="middle">' +
		'<td class="f2_useravatar_td"><a href="' + f2_userpath + '" class="f2_useravatar"' + f2_userInfo_targetPath + '><img src="http://avt.foto.mail.ru' + f2_userpath + '_avatar" /><\/a><\/td>' +
		'<td width="5">&nbsp;<\/td>' +
		'<td>' +
			'<a class="orange t100" href="http://my.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_my.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://my.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Мир<\/a><br />' +
			'<a class="orange t100" href="http://blogs.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_blogs2.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://blogs.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Блог<\/a><br />' +
			'<a class="orange t100" href="http://foto.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_foto2.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://foto.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Фото<\/a><br />' +
			'<a class="orange t100" href="http://video.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_video.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="orange t100" href="http://video.mail.ru' + f2_userpath + '"' + f2_userInfo_targetPath + '>Видео<\/a><br />' +
		'<\/td>' +
	'<\/tr><\/table>' +
	'<a href="http://' + perlhost + '/cgi-bin/photo/rating_all?sort=rate&email=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_best.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="http://' + imaginehost + '/cgi-bin/photo/rating_all?sort=rate&email=' + mail + '"' + f2_userInfo_targetPath + '>Лучшие фото<\/a><br />' +
	'<a href="http://' + perlhost + '/cgi-bin/photo/phototag?tag=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/marking.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="http://' + (f2_hideSELFinfo == 1 ? perlhost : imaginehost) + '/cgi-bin/photo/tag?email=' + mail + '"' + f2_userInfo_targetPath + '>Посмотреть метки<\/a><br />' +
	'<a href="http://' + imaginehost + f2_userpath + 'rss"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_rss.png" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="http://' + imaginehost + f2_userpath + 'rss"' + f2_userInfo_targetPath + '>Поток rss<\/a><br />' +
	(f2_hideSELFinfo == 1 ? '' : ('<a href="http://my.mail.ru/my/invitation?single=1&email=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_addfriend.gif" width="16" height="16" border="0" align="absmiddle" ><\/a><a href="http://my.mail.ru/my/invitation?single=1&email=' + mail + '"' + f2_userInfo_targetPath + '>Добавить в друзья<\/a><br />')) +
	(f2_hideSELFinfo == 1 ? '' : ('<a href="#" onClick="ajax_call(\'perl_add_subscription\',\'' + mail + '\',f2_AddSubscriptionCallback)"><img src="http://img.mail.ru/r/foto2/ico_posts_subscribe.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a href="#" onClick="ajax_call(\'perl_add_subscription\',\'' + mail + '\',f2_AddSubscriptionCallback)">Подписаться на обновления<\/a><br />')) +
	'<div class="line"><br /><\/div>' +
	(f2_hideSELFinfo == 1 ? '' : mailagent_link) +
	(f2_hideSELFinfo == 1 ? '' : ('<a href="http://my.mail.ru/my/dialogues?thread=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/my/send.gif " width="16" height="16" border="0" align="absmiddle" ><\/a><a href="http://my.mail.ru/my/dialogues?thread=' + mail + '"' + f2_userInfo_targetPath + '>Написать сообщение<\/a><br />')) +
	(ActiveDir() != '' ? (f2_hideSELFinfo == 1 ? '' : ('<a href="http://my.mail.ru'+ActiveDir()+'gifts?send=' + mail + '"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/mail/ru/images/my/send_gift2.gif" width="16" height="16" border="0" align="absmiddle" ><\/a><a href="http://my.mail.ru'+ActiveDir()+'gifts?send=' + mail + '"' + f2_userInfo_targetPath + '>Отправить подарок<\/a><br />')) : "") +
	'<a class="grey" href="http://win.mail.ru/cgi-bin/sentmsg?To=' + mail + '&from=foto"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_write.gif" width="18" height="17" border="0" align="absmiddle" /><\/a><a class="grey" href="http://win.mail.ru/cgi-bin/sentmsg?To=' + mail + '&from=foto"' + f2_userInfo_targetPath + '>Написать письмо<\/a><br />' +
	'<a class="grey" href="http://cards.mail.ru/rnd_card.html?rcptemail=' + mail + '&from=foto"' + f2_userInfo_targetPath + '><img src="http://img.mail.ru/r/foto2/ico_cards.gif" width="16" height="16" border="0" align="absmiddle" /><\/a><a class="grey" href="http://cards.mail.ru/rnd_card.html?rcptemail=' + mail + '&from=foto"' + f2_userInfo_targetPath + '>Отправить открытку<\/a><br />';

	infoDiv.style.display = '';
	if (a.nodeName == 'A' && a.firstChild.nodeName == 'IMG') a = a.firstChild;
	if (a.nodeName == 'IMG') a = a;

	var xRem = yRem = 0;
	if (screenSize().w - absPosition(a).x < 300) {
		xRem = infoDiv.offsetWidth - a.offsetWidth;
		xRem = xRem < 0 ? 0 : xRem;
	}
	if (screenSize().h - absPosition(a).y + defScroll().y < infoDiv.offsetHeight) {
		yRem = infoDiv.offsetHeight + a.offsetHeight + 2;
	} else yRem = -2;
	
	infoDiv.style.left = (absPosition(a).x - xRem) + 'px';

	if (userInfo.arguments[4]) yRem = 0;//если есть 4й аргумент
	infoDiv.style.top = (absPosition(a).y + a.offsetHeight - yRem) + 'px';

	addHandler(gebi('infoDivId'), 'click', function(evt) {
	var evt = evt || window.event; 
	if (evt.button == 0) f2_hideUserInfo() ; //убирать див только по левому клику
	});

	return false;
}

function checkTitleLength(el,max) {
	var len,st;
	if(el) {
		st = el.value;
		len = el.value.length;
		if(len > max) {  
			st = st.substr(0,max);
			el.value = st; 
			return false;
		}
	}	
}

function switch_wanttalk(s) {
	var d = $$(".mf_divWantTalk")[0], a1 = $$(".mf_divWantTalkHide a")[0], a2 = $$(".mf_divWantTalkHide a")[1];
	var c,w;
	
	c = getCookie("wanttalk"); 
	
	if(s == 1) { 
		w = (c == 0) ? 0 : 1;
	}
	else {
		w = (c == 0) ? 1 : 0;
		setCookie("wanttalk", w);
	}
				
	if(w) { 
		a2.removeClassName("hidden");
		a1.addClassName("hidden");
		d.removeClassName("hidden");
	}
	else {	
		a2.addClassName("hidden");
		a1.removeClassName("hidden");
		d.addClassName("hidden");
	}
}

function req_stat(url, dstId, oncontready, append, timeout, onerror) {
	
	var _s = arguments.callee;
	if(!_s.urls) _s.urls = {};
	
	var key = url+'_'+dstId;
	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);
		}
	}
}
