ONLINE WEB SERVICES - SvcOS http://svcos.net | http://vkontakte.ru/blog3
try{stManager.done('lang0_0.js');}catch(e){}
Aboutme='О себе:';
Acad_status='Статус:';
Acad_status_bach='Студент (бакалавр)';
Acad_status_bach_fm='Студентка (бакалавр)';
Acad_status_ent='Абитуриент';
Acad_status_ent_fm='Абитуриентка';
Acad_status_gradbach='Выпускник (бакалавр)';
Acad_status_gradbach_fm='Выпускница (бакалавр)';
Acad_status_gradDr='Доктор наук';
Acad_status_gradDr_fm='Доктор наук';
Acad_status_gradmas='Выпускник (магистр)';
Acad_status_gradmas_fm='Выпускница (магистр)';
Acad_status_gradPhD='Кандидат наук';
Acad_status_gradPhD_fm='Кандидат наук';
Acad_status_gradpost='Аспирант';
Acad_status_gradpost_fm='Аспирантка';
Acad_status_gradspec='Выпускник (специалист)';
Acad_status_gradspec_fm='Выпускница (специалист)';
Acad_status_mas='Студент (магистр)';
Acad_status_mas_fm='Студентка (магистр)';
Acad_status_spec='Студент (специалист)';
Acad_status_spec_fm='Студентка (специалист)';
Activities='Деятельность:';
Add_to_friends='Добавить в друзья';
All='Все';
add_box_title='Добавление в друзья';
admin2_art='Школа искусств';
admin2_artistic='Худ. школа';
admin2_colledge='Колледж:';
admin2_driving_sch='Автошкола';
admin2_evening='Вечерняя школа';
admin2_garten='Детский сад';
admin2_gymnasium='Гимназия:';
admin2_internat='Школа-интернат';
admin2_liceum='Лицей:';
admin2_music='Музыкальная школа';
admin2_prof='Проф. училище';
admin2_prof_liceum='Проф. лицей';
admin2_prof_tech='ПТУ';
admin2_school='Школа:';
admin2_spec_school='Училище';
admin2_sports='Спортивная школа';
admin2_tech='Техникум';
ajax_no_page_access='Страница защищена настройками приватности.';
all='все';
audio_do_you_want_flash='Хотите перейти на страницу установки проигрывателя?';
audio_you_need_flash='Для того, чтобы воспользоваться аудиосервисом, Вам необходимо установить Flash-проигрыватель.';
Begin_educ_year='Год начала обучения';
Begin_mil_year='Год начала службы';
Begin_work_year='Год начала работы';
Birth_date=['','День рождения:','День рождения:'];
blog_header='Блог';
blog_lastnews='Последние новости';
blog_message='Сообщение';
blog_news='Новости сайта';
bottom_about='о сайте';
bottom_ad='реклама';
bottom_author='Павел Дуров';
bottom_blog='блог';
bottom_support='техподдержка';
bottom_terms='правила';
box_cancel='Отмена';
box_close='Закрыть';
box_loading='Загрузка...';
box_no='Нет';
box_save='Сохранить';
box_send='Отправить';
box_yes='Да';
Cancel='Отмена';
Chair='Кафедра:';
Class='Класс';
Coincid_activity='Деятельность';
Coincid_books='Книги';
Coincid_class='Класс';
Coincid_company='Компания';
Coincid_games='Игры';
Coincid_gradyear='Выпуск';
Coincid_hometown='Родной город';
Coincid_interests='Интересы';
Coincid_movies='Фильмы';
Coincid_music='Музыка';
Coincid_name='Имя';
Coincid_nickname='Никнейм';
Coincid_position='Должность';
Coincid_prevsurname='Девичья фамилия';
Coincid_religion='Религия';
Coincid_school='Школа';
Coincid_specializ='Специализация';
Coincid_surname='Фамилия';
Coincid_tvshow='Телешоу';
Contact_home_tel_abbr='Дом. телефон:';
Contact_icq='ICQ:';
Contact_mob_tel_abbr='Моб. телефон:';
Contact_nick='Никнейм:';
Contact_site='Веб-сайт:';
Country='Страна';
captcha_cancel='Отмена';
captcha_enter_code='Введите код с картинки:';
captcha_send='Отправить';
clear_delete_all=['','Удалить все его %s за последнюю неделю','Удалить все её %s за последнюю неделю'];
clear_delete_all_cancel='Отмена';
clear_delete_all_delete='Удалить';
clear_delete_all_my='Удалить все мои %s за последнюю неделю';
Delete='Удалить';
datepicker_date_format='{day} {month} {year}';
datepicker_month_format='{month} {year}';
Edit='Редактировать';
End_educ_year='Год окончания обучения';
End_mil_year='Год окончания службы';
End_work_year='Год окончания работы';
ebrowse_event_types='Типы событий';
ed='ред.';
edit='редактировать';
error='ошибка';
Faculty='Факультет:';
Family='Семейное положение:';
Family_complicated='Всё сложно';
Family_fm_engaged='Помолвлена';
Family_fm_has_friend='Есть друг';
Family_fm_married='Замужем';
Family_fm_not_married='Не замужем';
Family_in_search='В активном поиске';
Family_m_engaged='Помолвлен';
Family_m_has_friend='Есть подруга';
Family_m_married='Женат';
Family_m_not_married='Не женат';
Fast_find='Быстрый поиск';
Fave_books='Любимые книги:';
Fave_games='Любимые игры:';
Fave_movies='Любимые фильмы:';
Fave_music='Любимая музыка:';
Fave_quotes='Любимые цитаты:';
Fave_tvshows='Любимые телешоу:';
Form='Форма обучения:';
Form_corr='Заочная';
Form_day='Дневная';
Form_even='Вечерняя';
fill_balance='Пополнить баланс';
friendcat_catarmy='Армия';
friendcat_catfamily='Семья';
friendcat_cathome='Дом';
friendcat_catinternet='Интернет';
friendcat_catjob='Работа';
friendcat_catrest='Отдых';
friendcat_catschool='Школа';
friendcat_catuni='Вуз';
functions_sure_delete='Вы действительно хотите удалить эту запись?';
Graduation='Выпуск';
Grad_year='Год выпуска';
Gymnasium='Гимназия';
global_add='Добавить';
global_add_to_my_videos='Добавить в мои видеозаписи';
global_Complain_video='Пожаловаться';
global_cancel='Отмена';
global_changes_saved='Изменения сохранены';
global_charged_zone_continue='Продолжить';
global_charged_zone_title='Предупреждение';
global_close='Закрыть';
global_continue='Продолжить';
global_day_label='День:';
global_delete='Удалить';
global_done='Готово';
global_dont_delete='Не удалять';
global_edit='Редактировать';
global_error='Ошибка';
global_error_occured='Произошла ошибка';
global_min='Свернуть';
global_money_amount_rub=['','%s рубль','%s рубля','%s рублей'];
global_money_amount_rub_text=['','рубль','рубля','рублей'];
global_money_amount_votes_text=['','голос','голоса','голосов'];
global_month_label='Месяц:';
global_num_date_year_time=['','{num_day}.{month}.{short_year} {num_hour}:{minute}','вчера, {num_hour}:{minute}','сегодня, {num_hour}:{minute}','завтра, {num_hour}:{minute}'];
global_online=['','Онлайн','Онлайн'];
global_online_sm=['','онлайн','онлайн'];
global_privacy_except='кроме:';
global_rating_box_header='Рейтинг';
global_save='Сохранить';
global_search_not_found='По запросу {search} ничего не найдено.';
global_tags_me='Я';
global_to_top='Наверх';
global_try_to_activate='Устали вводить коды? Пройдите бесплатную<br>{link}валидацию через мобильный телефон »{/link}';
global_unknown_error='Неизвестная ошибка';
global_vkontakte='В Контакте';
global_warning='Предупреждениe';
global_write_msg='Написать сообщение';
global_year_label='Год:';
guest_password='Пароль:';
Higher_education='Высшее образование';
head_applications='приложения';
head_events='события';
head_faq='помощь';
head_groups='группы';
head_invite='пригласить';
head_login='вход';
head_logout=['','выйти','выйти'];
head_main='главная';
head_market='объявления';
head_people='люди';
head_reg='регистрация';
head_search='поиск';
help_congratulations='Поздравляем!';
help_reg_almost_fin='Регистрация практически завершена.';
help_reg_check_email='Пожалуйста, проверьте Ваш почтовый ящик <b>%s</b> и пройдите по ссылке, которая указана в письме. В большинстве случаев письма приходят в течение одной минуты, но иногда для этого требуется до 10 минут.';
help_thanks_for_reg='Спасибо за регистрацию';
Inp_choose='Выберите';
Inp_choose_first='Сначала выберите';
Inp_country='Выберите страну';
Inp_dep='Выберите кафедру';
Inp_dep_beg='Сначала выберите кафедру';
Inp_fac='Выберите факультет';
Inp_fac_beg='Сначала выберите факультет';
Inp_form='Выберите форму обучения';
Inp_gradyear='Выберите год выпуска';
Inp_status='Выберите статус';
Inp_town='Выберите город';
Inp_town_beg='Сначала выберите город';
Inp_uni='Выберите Вуз';
Inp_uni_beg='Сначала выберите Вуз';
Inp_year='Выберите год';
Interests='Интересы:';
im_already_shown='Окно Мгновенных сообщений уже открыто в Вашем браузере, Вам достаточно просто перейти на него.';
im_already_shown_title='Мгновенные сообщения';
its_spam='Это спам';
its_spam_sm='это спам';
Job_title='Должность';
Liceum='Лицей';
leftAd_birthday=['','День рождения','День рождения'];
leftAd_birthdays_of='%s:<br>%s';
leftAd_birthday_of='{link}День рождения{/link} %s';
leftAd_Details='Подробнее';
leftAd_details='подробнее';
leftAd_news='Новости';
leftAd_reminder='Напоминание';
leftAd_title_birthdays_of='Дни рождения';
leftAd_title_birthday_of=['','День рождения','День рождения'];
left_admin='Предупреждения';
left_ads='Реклама';
left_another_comp='Чужой компьютер';
left_applications='Приложения';
left_bugs='Задачи';
left_edit='Страны';
left_login='Вход';
left_main='Главная';
left_market='Объявления';
left_matches='Предложения';
left_members='Пользователи';
left_myaudios='Мои Аудиозаписи';
left_myevents='Мои Встречи';
left_myfav='Мои Закладки';
left_myfriends='Мои Друзья';
left_mygroups='Мои Группы';
left_mymessages='Мои Сообщения';
left_mynews='Мои Новости';
left_mynotes='Мои Заметки';
left_mypage='Моя Страница';
left_mypage_edit='ред.';
left_myphotos='Мои Фотографии';
left_mysettings='Мои Настройки';
left_myvideos='Мои Видеозаписи';
left_news='Новости';
left_opinions='Мнения';
left_questions='Вопросы';
left_reg='Регистрация';
left_stat='Статистика';
left_translate='Переводы';
Military_place='Войсковая часть:';
Month1='Январь';
Month10='Октябрь';
Month10_of='Октября';
Month11='Ноябрь';
Month11_of='Ноября';
Month12='Декабрь';
Month12_of='Декабря';
Month1_of='Января';
Month2='Февраль';
Month2_of='Февраля';
Month3='Март';
Month3_of='Марта';
Month4='Апрель';
Month4_of='Апреля';
Month5='Май';
Month5_of='Мая';
Month6='Июнь';
Month6_of='Июня';
Month7='Июль';
Month7_of='Июля';
Month8='Август';
Month8_of='Августа';
Month9='Сентябрь';
Month9_of='Сентября';
month10sm_of='окт';
month10_of='октября';
month11sm_of='ноя';
month11_of='ноября';
month12sm_of='дек';
month12_of='декабря';
month1sm_of='янв';
month1_of='января';
month2sm_of='фев';
month2_of='февраля';
month3sm_of='мар';
month3_of='марта';
month4sm_of='апр';
month4_of='апреля';
month5sm_of='мая';
month5_of='мая';
month6sm_of='июн';
month6_of='июня';
month7sm_of='июл';
month7_of='июля';
month8sm_of='авг';
month8_of='августа';
month9sm_of='сен';
month9_of='сентября';
Nat_town='Родной город:';
notes_continue_text='продолжить';
not_stated_chair='не указана';
not_stated_city='не указан';
not_stated_fac='не указан';
not_stated_groupsubtype='не указан';
not_stated_grouptype='не указан';
not_stated_uni='не указан';
Politics='Политические взгляды:';
Politics_comm='Коммунистические';
Politics_cons='Консервативные';
Politics_indiff='Индифферентные';
Politics_liber='Либеральные';
Politics_moder='Умеренные';
Politics_mon='Монархические';
Politics_soc='Социалистичеcкие';
Politics_ucons='Ультраконсервативные';
pagination_allpages='Все';
picture_null='null.gif';
politics_comm='коммунистические';
politics_cons='консервативные';
politics_indiff='индифферентные';
politics_liber='либеральные';
politics_moder='умеренные';
politics_mon='монархические';
politics_soc='социалистичеcкие';
politics_ucons='ультраконсервативные';
privacy_access='Доступ:';
privacy_cancel='Отмена';
privacy_custom_title='Настройки приватности';
privacy_friendsoffriends='Друзья и друзья друзей';
privacy_friendsonly='Только друзья';
privacy_N_friends_more=['','и ещё %s друг','и ещё %s друга','и ещё %s друзей'];
privacy_options_advanced_settings='Все, кроме...';
privacy_options_advanced_settings_dat='всем, кроме...';
privacy_options_all_users='Все пользователи';
privacy_options_all_users_dat='всем пользователям';
privacy_options_friends_and_friends='Друзья и друзья друзей';
privacy_options_friends_and_friends_dat='друзьям и друзьям друзей';
privacy_options_friends_only='Только друзья';
privacy_options_friends_only_dat='только друзьям';
privacy_options_nobody='Никто';
privacy_options_nobody_dat='никому';
privacy_options_only_me='Только я';
privacy_options_only_me_dat='только мне';
privacy_options_some_friends='Некоторые друзья';
privacy_options_some_friends_dat='некоторым друзьям';
privacy_options_some_friend_lists='Некоторые списки друзей';
privacy_options_some_friend_lists_dat='некоторым спискам друзей';
privacy_save='Сохранить';
privacy_somefriends='Некоторые категории друзей';
profile_newmsg_box_title='Новое сообщение';
profile_places_any='Любая';
profile_places_cult='Культура';
profile_places_educ='Досуг и образование';
profile_places_ent='Развлечения';
profile_places_health='Здоровье';
profile_places_h_addr='Домашний адрес';
profile_places_rest='Места отдыха';
profile_places_shopping='Покупки';
profile_places_sport='Спорт и красота';
profile_places_w_addr='Рабочий адрес';
Religion='Религиозные взгляды:';
Remove_from_friends='Убрать из друзей';
rate_from='от {user}';
rate_you_have_N_unused=['','У Вас <b>%s</b> неиспользованный голос.','У Вас <b>%s</b> неиспользованных голоса.','У Вас <b>%s</b> неиспользованных голосов.'];
Save='Сохранить';
School='Школа';
Sc_major='Специализация';
Secondary_education='Среднее образование';
Sendmsg='Отправить сообщение';
Sex='Пол:';
Sex_fm='Женский';
Sex_m='Мужской';
Surname='Фамилия';
search_by_ad='по объявлениям';
search_by_app='по приложениям';
search_by_audio='по аудиозаписям';
search_by_event='по событиям';
search_by_goods='по товарам';
search_by_group='по группам';
search_by_note='по заметкам';
search_by_person='по людям';
search_by_question='по вопросам';
search_by_status='по новостям';
search_by_topic='по темам';
search_by_video='по видеозаписям';
select_chair_any='Любая';
select_chair_name='кафедру';
select_chair_not_selected='- Не выбрана -';
select_chair_other='Другая';
select_chair_select='Введите название';
select_choose_name='Выберите %s';
select_city='Город:';
select_city_any='Любой';
select_city_name='город';
select_city_not_found='Город не найден';
select_city_not_selected='- Не выбран -';
select_city_other='Другой';
select_city_other_city='- Другой -';
select_city_select='Введите название';
select_class_not_selected='- Не выбран -';
select_close='Закрыть';
select_country='Страна:';
select_country_any='Любая';
select_country_full_list='- Полный список -';
select_country_name='страну';
select_country_not_found='Страна не найдена';
select_country_not_selected='- Не выбрана -';
select_country_other='Другая';
select_country_select='Введите страну';
select_district='Район:';
select_district_any='Любой';
select_district_name='район';
select_district_not_selected='- Не выбран -';
select_district_other='Другой';
select_eduform1='Дневная';
select_eduform2='Вечерняя';
select_eduform3='Заочная';
select_eduform_any='Любая';
select_eduform_name='форму обучения';
select_eduform_not_selected='- Не выбрана -';
select_eduform_other='Другая';
select_edustatus_any='Любой';
select_edustatus_name='статус';
select_edustatus_not_selected='- Не выбран -';
select_edustatus_other='Другой';
select_enter='Введите';
select_enter_name='Введите %s';
select_error='Ошибка';
select_faculty_any='Любой';
select_faculty_name='факультет';
select_faculty_other='Другой';
select_fac_not_selected='- Не выбран -';
select_fac_select='Введите название';
select_first_select='Сначала выберите';
select_full_list='- Полный список -';
select_graduation_any='Любой';
select_graduation_name='год выпуска';
select_graduation_other='Другой';
select_groupsubtype_any='Любой';
select_groupsubtype_name='подраздел';
select_groupsubtype_other='Другой';
select_grouptype_any='Любой';
select_grouptype_name='раздел';
select_grouptype_other='Другой';
select_house='Номер дома:';
select_house_any='Любой';
select_house_name='номер дома';
select_house_not_found='Дом не найден';
select_house_not_selected='- Не выбран -';
select_house_other='Другой';
select_house_select='Введите номер';
select_language='Выберите Ваш язык';
select_military_any='Любой';
select_military_name='войсковую часть';
select_military_other='Другой';
select_military_unit_not_selected='- Не выбрана -';
select_military_unit_select='Введите войсковую часть';
select_must_sel_var='Необходимо выбрать вариант из списка.';
select_place='Название:';
select_placetype1='Дом';
select_placetype10='Кинотеатр';
select_placetype11='Боулинг';
select_placetype12='Бильярд';
select_placetype13='Гостиница';
select_placetype14='Летний лагерь';
select_placetype15='Путешествие';
select_placetype16='Санаторий';
select_placetype17='Пансионат';
select_placetype18='Дом отдыха';
select_placetype19='Хостел';
select_placetype2='Работа';
select_placetype20='Мотель';
select_placetype21='Автошкола';
select_placetype22='Курсы';
select_placetype23='Клуб по интересам';
select_placetype24='Кружок';
select_placetype25='Студия';
select_placetype26='Фитнес-центр';
select_placetype27='Спортивный клуб';
select_placetype28='Стадион';
select_placetype29='Спортзал';
select_placetype3='Ресторан';
select_placetype30='Бассейн';
select_placetype31='Салон красоты';
select_placetype32='Парикмахерская';
select_placetype33='Театр';
select_placetype34='Концертный зал';
select_placetype35='Библиотека';
select_placetype36='Музей';
select_placetype37='Галерея';
select_placetype38='Филармония';
select_placetype39='Выставочный центр';
select_placetype4='Клуб';
select_placetype40='Храм';
select_placetype41='Больница';
select_placetype42='Поликлиника';
select_placetype43='Госпиталь';
select_placetype44='Роддом';
select_placetype45='Магазин';
select_placetype46='Бутик';
select_placetype47='ТРК';
select_placetype48='Салон';
select_placetype49='Супермаркет';
select_placetype5='Бар';
select_placetype50='Гипермаркет';
select_placetype51='Дача';
select_placetype6='Паб';
select_placetype7='Кафе';
select_placetype8='Интернет-кафе';
select_placetype9='Компьютерный клуб';
select_placetype_addr='Адрес';
select_placetype_any='Любой';
select_placetype_name='тип';
select_placetype_other='Другой';
select_place_not_found='Название не найдено';
select_place_not_selected='- Не выбрано -';
select_place_select='Введите название';
select_place_time_not_selected='- Не выбрано -';
select_place_type_not_found='Неверный тип';
select_place_type_not_selected='- Не выбран -';
select_place_type_select='Выберите тип';
select_region_not_selected='- Не выбран -';
select_schoolclass_any='Любой';
select_schoolclass_name='класс';
select_schoolclass_other='Другой';
select_schoolfinishyear_any='Любой';
select_schoolfinishyear_name='год';
select_schoolfinishyear_other='Другой';
select_schoolstartyear_any='Любой';
select_schoolstartyear_name='год';
select_schoolstartyear_other='Другой';
select_school_any='Любая';
select_school_name='школу';
select_school_not_found='Школа не найдена';
select_school_not_selected='- Не выбрана -';
select_school_other='Другая';
select_school_select='Введите название';
select_school_type_0='шк.';
select_school_type_1='гимн.';
select_school_type_10='техн.';
select_school_type_11='ПТУ';
select_school_type_12='учил.';
select_school_type_13='шк. иск.';
select_school_type_14='дет. сад';
select_school_type_15='ПУ';
select_school_type_16='автошк.';
select_school_type_2='лиц.';
select_school_type_3='шк.-инт.';
select_school_type_4='шк. веч.';
select_school_type_5='шк. муз.';
select_school_type_6='шк. спорт.';
select_school_type_7='шк. худ.';
select_school_type_8='колл.';
select_school_type_9='проф. лиц.';
select_search_list='Поиск по списку';
select_select='Выберите';
select_station='Станция метро:';
select_station_any='Любая';
select_station_name='станцию метро';
select_station_not_selected='- Не выбрана -';
select_station_other='Другая';
select_street='Улица:';
select_street_any='Любая';
select_street_name='улицу';
select_street_not_found='Улица не найдена';
select_street_not_selected='- Не выбрана -';
select_street_other='Другая';
select_street_select='Введите название';
select_university_any='Любой';
select_university_name='ВУЗ';
select_university_other='Другой';
select_uni_not_found='ВУЗ не найден';
select_uni_not_selected='- Не выбран -';
select_uni_select='Введите название';
select_uploading='Идет загрузка...';
select_workfinishyear_any='Любой';
select_workfinishyear_name='год';
select_workfinishyear_other='Другой';
select_workstartyear_any='Любой';
select_workstartyear_name='год';
select_workstartyear_other='Другой';
select_year_not_found='Неверный год';
select_year_not_selected='- Не выбран -';
select_year_since_now='настоящего времени';
select_year_until_now='настоящее время';
sex_fm='женский';
sex_m='мужской';
share_go='Перейти';
share_go_warning='<b>Внимание!</b> Вы покидаете сайт <b>ВКонтакте</b> по внешней ссылке {link}, предоставленной одним из участников.<br><br>Администрация <b>ВКонтакте</b> не несет ответственности за содержимое сайта и настоятельно рекомендует <b>не указывать</b> никаких своих данных, имеющих отношение к <b>ВКонтакте</b> (особенно <b>E-Mail</b>, <b>пароль</b> и <b>cookies</b>), на сторонних сайтах.';
Tab_audios='Аудиозаписи';
Tab_groups='Группы';
Tab_people='Люди';
Tab_videos='Видеозаписи';
Today='Сегодня';
Town='Город:';
text_exceeds_symbol_limit=['','Допустимый объем превышен на %s знак.','Допустимый объем превышен на %s знака.','Допустимый объем превышен на %s знаков.'];
text_N_symbols_remain=['','Остался %s знак.','Осталось %s знака.','Осталось %s знаков.'];
today='сегодня';
top_search_apps_tip='Здесь Вы можете ввести название приложения';
top_search_audio_tip='Здесь Вы можете ввести название аудиозаписи';
top_search_groups_tip='Здесь Вы можете ввести название группы';
top_search_tip='Здесь Вы можете ввести имя и фамилию';
top_search_video_tip='Здесь Вы можете ввести название видеозаписи';
Univ='Вуз:';
Updates='Обновления';
updates='обновления';
videofile_num=['','видеозапись','видеозаписи','видеозаписей'];
votes_flex=['','голос','голоса','голосов'];
Wall='Стена';
Work_place='Место работы:';
wrote_female='написала';
wrote_male='написал';
Yesterday='Вчера';
yesterday='вчера';
// section = 0; version = 166;
friends_all='Все';
friends_cancel='Отмена';
friends_change_name='изменить название';
friends_continue='Продолжить';
friends_create_list='Создать список';
friends_create_list_title='Создание списка друзей';
friends_edit_list_title='Редактирование списка друзей';
friends_enter_friend_name='Начните вводить имя друга';
friends_enter_list_name='Введите название списка';
friends_list_name='Название списка';
friends_new_friends_list='Новый список друзей';
friends_nothing_found_by_query='По запросу {query} ничего не найдено.';
friends_no_user_selected='Вы не выбрали ни одного пользователя.';
friends_privacy_title='Настройки приватности';
friends_remove_from_list_title='Удаление из списка друзей';
friends_remove_selection='Снять выделение';
friends_save='Сохранить';
friends_selected='Выбранные';
friends_select_all='Выделить всех';
friends_show_more_friends='Показать больше друзей';
friends_X_registered_friends_found=['','Найден %s зарегистрированный друг.','Найдено %s зарегистрированных друга.','Найдено %s зарегистрированных друзей.'];
friends_X_users_in_list=['','В списке %s друг','В списке %s друга','В списке %s друзей'];
friends_you_can_save_this_list='Вы можете сохранить этот список друзей.<br />В дальнейшем Вы сможете использовать его снова.';
friend_friend_remove='Удалить';
friend_you_have_N_friends=['','У Вас %s друг','У Вас %s друга','У Вас %s друзей'];
// section = 2; version = 59;
audio_add_to_album='добавить в альбом';
audio_add_to_group='Добавить в аудиозаписи группы';
audio_album_no_recs='В альбоме ещё нет аудиозаписей.';
audio_back_to_group='Перейти к группе';
audio_back_to_groups='вернуться к аудиозаписям группы';
audio_back_to_my='вернуться к моим аудиозаписям';
audio_back_to_profile='Перейти к странице {user}';
audio_back_to_users='вернуться к аудиозаписям %s';
audio_change_album='{link}изменить альбом{/link}: {title}';
audio_change_album_name='Изменить название';
audio_common_list='общий список';
audio_delete='удалить';
audio_delete_album='Удалить альбом';
audio_delete_album_are_you_sure='Вы уверены, что хотите удалить этот альбом?';
audio_delete_album_button='Удалить';
audio_delete_album_title='Удаление альбома';
audio_delete_all_title='Удаление аудиозаписей';
audio_edit='редактировать';
audio_edit_additionally='Дополнительно';
audio_edit_album='Редактировать альбом';
audio_edit_album_title='Редактирование альбома';
audio_edit_cancel='Отмена';
audio_edit_deleting='Удаление аудиозаписи';
audio_edit_deleting_error='При удалении файла произошла ошибка:';
audio_edit_dont_show_search='Не выводить при поиске';
audio_edit_edit='Редактировать';
audio_edit_editing='Редактирование аудиозаписи';
audio_edit_name='Название:';
audio_edit_no='Нет';
audio_edit_noname='Без названия';
audio_edit_singer='Исполнитель:';
audio_edit_sure_delete='Вы действительно хотите удалить эту аудиозапись?';
audio_edit_text='Слова песни:';
audio_edit_unknown='Неизвестный исполнитель';
audio_edit_yes='Да';
audio_enter_album_name='Введите название альбома';
audio_flash_needed='Для того, чтобы воспользоваться аудиосервисом, Вам необходимо установить Flash-проигрыватель.';
audio_global_search_found=['','В поиске найдена %s аудиозапись','В поиске найдено %s аудиозаписи','В поиске найдено %s аудиозаписей'];
audio_group_no_recs='В группе ещё нет аудиозаписей.';
audio_group_no_your_recs='В группе еще нет аудиозаписей, загруженных Вами.';
audio_header='Мои аудиозаписи';
audio_header_edit='Редактирование';
audio_loading_error='Возникла ошибка, код ошибки: {code}';
audio_lyrics_not_found='Текст песни не найден';
audio_need_flash_title='Необходим Flash-проигрыватель';
audio_new_album_title='Новый альбом';
audio_not_found='Аудиозапись не найдена';
audio_no_audios_found='По запросу {query} не найдено ни одной аудиозаписи';
audio_no_rec_load_msg='Здесь Вы можете хранить Ваши аудиозаписи.<br>Для того, чтобы загрузить Вашу первую аудиозапись, {link}нажмите здесь{/link}.';
audio_no_rec_msg='Здесь Вы можете хранить Ваши аудиозаписи.';
audio_no_your_recs='У Вас еще нет аудиозаписей';
audio_Recs='Аудиозаписи';
audio_return_to_album='Вернуться к альбому';
audio_return_to_all='Вернуться к аудиозаписям';
audio_search_enter_audio_name='Введите название или исполнителя';
audio_search_not_found='По запросу {search} ничего не найдено.';
audio_search_no_found='Аудиозаписей не найдено.';
audio_search_results='Результаты поиска';
audio_show_more_audios='Показать больше аудиозаписей';
audio_success_msg='Аудиозапись успешно загружена.';
audio_success_msg_multiple='Все аудиозаписи успешно загружены.';
audio_track_search='Поиск по композициям и исполнителям';
audio_uploading_over='Загрузка завершена';
audio_upl_not_enabled_ingroup='В данной группе отключены аудиозаписи, поэтому загрузка аудиофайлов недоступна.';
audio_user_no_recs='У пользователя ещё нет аудиозаписей.';
// section = 3; version = 45;
apps_addapp='Добавить приложение';
apps_addedtogroup='Приложение добавлено в группу';
apps_added_to_group='{app} появится в блоке приложений. {link}Отменить{/link}.';
apps_add_to_group_button='Добавить в группу';
apps_app_settings='Настройки приложения';
apps_balance_minus_X_done=['','Вы уменьшили баланс приложения на <b>%s</b> голос.','Вы уменьшили баланс приложения на <b>%s</b> голоса.','Вы уменьшили баланс приложения на <b>%s</b> голосов.'];
apps_balance_plus_X_done=['','Вы пополнили баланс приложения на <b>%s</b> голос.','Вы пополнили баланс приложения на <b>%s</b> голоса.','Вы пополнили баланс приложения на <b>%s</b> голосов.'];
apps_cancel='Отмена';
apps_catalogue='Каталог приложений';
apps_change_settings='Настроить';
apps_delete='Удалить';
apps_delete_admin_title='Удаление администратора';
apps_delete_all_invites_title='Удаление приглашений';
apps_done='Готово';
apps_dont_show='Больше не показывать';
apps_edit='редактировать';
apps_edit_settings='настроить приложение';
apps_friends_apps='Приложения друзей';
apps_global_search_found=['','В поиске найдено %s приложение','В поиске найдено %s приложения','В поиске найдено %s приложений'];
apps_last_notifications='Последние оповещения';
apps_merchant_payment_title='Оплата покупки';
apps_my_apps='Мои приложения';
apps_N_people_like_it=['','Нравится %s человеку','Нравится %s людям','Нравится %s людям'];
apps_need_X_votes=['','Приложение просит Вас внести <b>%s</b> голос.','Приложение просит Вас внести <b>%s</b> голоса.','Приложение просит Вас внести <b>%s</b> голосов.'];
apps_noappsingroup2='В группе не подключено ни одного приложения.';
apps_noparticipants='нет участников';
apps_notifies_sure_delete_all='Вы уверены, что хотите удалить все приглашения?<br>Это действие нельзя будет отменить.';
apps_no_apps_found='По запросу {query} не найдено ни одного приложения.';
apps_no_notifications='Нет оповещений';
apps_of_group='Приложения группы';
apps_remove='Убрать';
apps_removefromgroup='убрать из группы';
apps_removefrompage='убрать приложение';
apps_search_in_apps='Поиск по приложениям';
apps_show_full_app_description='показать полностью..';
apps_show_more_apps='Показать больше приложений';
apps_viewallapps='Просмотр всех доступных приложений';
apps_X_apps_found=['','Найдено %s приложение','Найдено %s приложения','Найдено %s приложений'];
apps_X_participants=['','%s участник','%s участника','%s участников'];
apps_youaddednoapps='Вы еще не подключили ни одного приложения.';
apps_youhavenoapps='У Вас еще нет приложений';
apps_you_have_no_notifies='У Вас нет ни одного оповещения';
app_comments_hidecomms='Скрыть комментарии';
app_comments_showcomms='Показать комментарии';
// section = 4; version = 109;
video_add_to_public='Вернуть в публичный доступ';
video_cancel='Отмена';
video_delete_from_public='Изъять из доступа';
video_done='Готово';
video_flash_needed='Для просмотра необходим {flash_player} последней версии.';
// section = 5; version = 90;
blog_comment_not_sent='не отправлен';
blog_comment_sending='отправляется';
blog_comment_sent='отправлен';
blog_comm_deleted='Комментарий удален.';
blog_delete='Удалить';
blog_renewpage='Произошла неизвестная ошибка. Попробуйте перезагрузить страницу.';
blog_tryagain='Произошла неизвестная ошибка. Попробуйте снова.';
blog_wrote_fm='написала';
blog_wrote_m='написал';
notes_cancel='Отмена';
notes_done='Готово';
notes_livejournal_delete='Удалить эту запись из <b>LiveJournal</b>.';
// section = 7; version = 46;
admin2_cancel='отмена';
admin2_edit='редактировать';
admin2_full_univ_name='Полное название вуза';
admin2_hide_list='скрыть список';
admin2_list='список';
admin2_ready='готово';
admin2_search='поиск';
admin2_server_error='Ошибка сервера.';
admin_added_items_digit_search='поиск цифр';
// section = 8; version = 1;
blank_note_not_found='Заметка не найдена';
// section = 10; version = 8;
board_any_links_forbidden='Администратор группы запретил размещать любые ссылки.';
board_cancel='Отмена';
board_cannot_edit='Вы не можете редактировать это сообщение.';
board_cannot_edit_title='Вы не можете редактировать название этой темы';
board_create_topic='Создать тему';
board_create_voting='Создать опрос';
board_delete='Удалить';
board_delete_voting='Удалить опрос';
board_done='Готово';
board_edit='редактировать';
board_edit_topic='Редактировать тему';
board_edit_voting='Изменить опрос';
board_enter_text='Надо ввести текст сообщения.';
board_error='Ошибка';
board_error_occurred='К сожалению, произошла ошибка.';
board_links_forbidden='Администратор группы запретил использование ссылок.';
board_new_topic_title='Новое название темы:';
board_no_text_stated='Вы не указали текст темы.';
board_ok='OK';
board_sure_delete_topic='Вы уверены, что хотите удалить эту тему?';
board_sure_delete_voting='Вы уверены, что хотите удалить опрос?';
board_sure_spam='Вы уверены, что хотите пометить эту тему как спам и удалить ее?';
board_too_fast='Вы отправляете сообщения слишком быстро.';
board_voting_deleted='Опрос удален.';
board_voting_not_deleted='Не удалось удалить опрос.';
board_warning='Предупреждение';
board_wrong_topic_number='Неверный номер темы обсуждения.';
// section = 11; version = 3;
edit_add='Добавить';
edit_addingdistricts='Добавление районов';
edit_addingstations='Добавление станций метро';
edit_addingstreet='Добавление улиц';
edit_autoreplacements='Автозамены';
edit_autoreplacements_list='Список автозамен';
edit_bold='Зажирнить';
edit_case_word='Регистр';
edit_chair_addingchair='Добавление кафедр';
edit_chair_name='Название кафедры';
edit_chair_suredelete='Вы уверены, что хотите удалить эту кафедру?';
edit_chair_youselected='Вы выбрали основной вариант кафедры.<br>Теперь Вы можете приклеивать к ней другие кафедры, избавляясь от дублей.';
edit_chair_youshould='Сначала Вам необходимо выбрать основной вариант кафедры с помощью кнопки <b>Клеить к ней</b>.<br>После этого Вы сможете приклеивать к ней клоны кнопкой <b>Склеить</b>.';
edit_city_addingcity='Добавление города';
edit_city_addingregion='Добавление региона';
edit_city_ifsame='Если названия совпадают, не следует их дублировать.';
edit_city_name='Название города';
edit_city_natname='Национальное название';
edit_city_suredelete='Вы уверены, что хотите удалить этот город?';
edit_city_youselected='Вы выбрали основной вариант города.<br>Теперь Вы можете приклеивать к нему другие города, избавляясь от дублей.';
edit_city_youshould='Сначала Вам необходимо выбрать основной вариант города с помощью кнопки <b>Клеить к нему</b>.<br>После этого Вы сможете приклеивать к нему клоны кнопкой <b>Склеить</b>.';
edit_close='Закрыть';
edit_closeschools='Закрыть шк.';
edit_closeunis='Закрыть вузы';
edit_close_streets='Закрыть ул.';
edit_closing_facs='Закрытие факультетов';
edit_converting_to_unis='Превращение в ВУЗы';
edit_convertintouni='Сделать ВУЗом';
edit_delete_chairs='Удалить кафедры';
edit_delete_schools='Удалить школы';
edit_delete_streets='Удалить улицы';
edit_delete_unis='Удалить ВУЗы';
edit_deleting_chairs='Удаление кафедр';
edit_deleting_facs='Удаление факультетов';
edit_deleting_unis='Удаление вузов';
edit_deleting_void='Удаление пустых';
edit_district_name='Название района';
edit_district_suredelete='Вы уверены, что хотите удалить этот район?';
edit_do_autoreplace='Автозаменить';
edit_editing_chair_mul='Редактирование кафедр';
edit_editing_fac_mul='Редактирование факультетов';
edit_editing_school_mul='Редактирование школ';
edit_editing_street_mul='Редактирование улиц';
edit_editing_uni_mul='Редактирование ВУЗов';
edit_editsave='Редактировать';
edit_facs_close='Закрыть фак-ты';
edit_facs_delete='Удалить фак-ты';
edit_fac_addingfac='Добавление факультетов';
edit_fac_name='Название факультета';
edit_fac_suredelete='Вы уверены, что хотите удалить этот факультет?';
edit_fac_youselected='Вы выбрали основной вариант факультета.<br>Теперь Вы можете приклеивать к нему другие факультеты, избавляясь от дублей.';
edit_fac_youshould='Сначала Вам необходимо выбрать основной вариант факультета с помощью кнопки <b>Клеить к нему</b>.<br>После этого Вы сможете приклеивать к нему клоны кнопкой <b>Склеить</b>.';
edit_merge='Склеить';
edit_move='Перенести';
edit_move_schools='Перенести школы';
edit_move_unis='Перенести ВУЗы';
edit_moving_city='Перенос городов';
edit_nodelete_ifmorethan='Не удалять, если более {count} участников.';
edit_open='Открыть';
edit_openschools='Открыть шк.';
edit_openunis='Открыть вузы';
edit_open_streets='Открыть ул.';
edit_region_name='Название региона';
edit_region_youselected='Вы выбрали основной вариант региона.<br>Теперь Вы можете приклеивать к нему другие регионы, избавляясь от дублей.';
edit_region_youshould='Сначала Вам необходимо выбрать основной вариант региона с помощью кнопки <b>Клеить к нему</b>.<br>После этого Вы сможете приклеивать к нему клоны кнопкой <b>Склеить</b>.';
edit_replace='Заменить';
edit_replacement='Замена';
edit_replacement_by='чем:';
edit_replacement_what='что:';
edit_schools_deleting='Удаление школ';
edit_school_addingschool='Добавление школ';
edit_school_name='Название школы';
edit_school_suredelete='Вы уверены, что хотите удалить эту школу?';
edit_school_type='Тип учебного заведения';
edit_school_youselected='Вы выбрали основной вариант школы.<br>Теперь Вы можете приклеивать к ней другие школы, избавляясь от дублей.';
edit_school_youshould='Сначала Вам необходимо выбрать основной вариант школы с помощью кнопки <b>Клеить к ней</b>.<br>После этого Вы сможете приклеивать к ней клоны кнопкой <b>Склеить</b>.';
edit_selected_objects=['','Выбран %s объект','Выбраны %s объекта','Выбраны %s объектов'];
edit_some_words1='<b>Н</b>есколько слов';
edit_some_words2='<b>Н</b>есколько <b>С</b>лов';
edit_some_words3='<b>Н</b>есколько <b>с</b>лов';
edit_station_name='Название станции метро';
edit_station_suredelete='Вы уверены, что хотите удалить эту станцию?';
edit_street_name='Название улицы';
edit_street_suredelete='Вы уверены, что хотите удалить эту улицу?';
edit_street_youselected='Вы выбрали основной вариант улицы.<br>Теперь вы можете приклеивать к ней другие улицы избавляясь от дублей.';
edit_street_youshould='Сначала Вам необходимо выбрать основной вариант улицы с помощью кнопки <b>Клеить к ней</b>.<br>После этого Вы сможете приклеивать к ней клоны кнопкой <b>Склеить</b>.';
edit_unbold='Разжирнить';
edit_uniabbr='Сокращение университета:';
edit_unifullname='Полное название университета:';
edit_uni_abbrev='Сокращение';
edit_uni_abbrevs='Сокращённые названия:';
edit_uni_addinguni='Добавление ВУЗов';
edit_uni_name='Название ВУЗа:';
edit_uni_suredelete='Вы уверены, что хотите удалить этот ВУЗ?';
edit_uni_youselected='Вы выбрали основной вариант ВУЗа.<br>Теперь Вы можете приклеивать к нему другие ВУЗы, избавляясь от дублей.';
edit_uni_youshould='Сначала Вам необходимо выбрать основной вариант ВУЗа с помощью кнопки <b>Клеить к нему</b>.<br>После этого Вы сможете приклеивать к нему клоны кнопкой <b>Склеить</b>.';
// section = 12; version = 2;
events_cancel='Отмена';
events_fri='Пт';
events_goto_search='Перейти к поиску';
events_menus_error_xmlhttp='Ошибка при создании XMLHTTP';
events_mon='Пн';
events_sat='Сб';
events_sun='Вс';
events_thu='Чт';
events_tue='Вт';
events_wed='Ср';
// section = 13; version = 52;
fave_return_to_fave='вернуться к Закладкам';
// section = 14; version = 19;
gifts_cansend_X_gifts=['','Вы можете отправить<br>не более <b>%s</b> подарка.','Вы можете отправить<br>не более <b>%s</b> подарков.','Вы можете отправить<br>не более <b>%s</b> подарков.'];
gifts_confirm_N_Votes=['','<b>%s</b> голос','<b>%s</b> голоса','<b>%s</b> голосов'];
gifts_confirm_send_to_N_friends=['','Подарок будет отправлен %s другу ({votes}). Продолжить?','Подарок будет отправлен %s друзьям ({votes}). Продолжить?','Подарок будет отправлен %s друзьям ({votes}). Продолжить?'];
gifts_rate_increase='При отправке этого подарка рейтинг получателя увеличится на <b>{gifts_count}</b>.';
gifts_X_gifts=['','<b>%s</b> подарок','<b>%s</b> подарка','<b>%s</b> подарков'];
gifts_X_votes=['','%s голос','%s голоса','%s голосов'];
// section = 15; version = 10;
groups_admins='Администраторы';
groups_admins_of_group='Администраторы группы';
groups_appl_rejected='Заявка отклонена.';
groups_assign='Назначить';
groups_assigned='Участник назначен руководителем.';
groups_assigning_manager='Назначение руководителя';
groups_cancel='отмена';
groups_cancel2='Отменить';
groups_create_enter='Пожалуйста, введите название группы';
groups_create_new='Создание новой группы';
groups_delete_manager='Удаление руководителя';
groups_deleting_link='Удаление ссылки';
groups_edit='Редактировать';
groups_editing_link='Редактирование ссылки';
groups_enter_name='Введите название:';
groups_enter_post='Введите должность:';
groups_group_admin='Администратор группы';
groups_group_create_button='Создать сообщество';
groups_inv_cancelled='Приглашение отменено.';
groups_limit_message='К сожалению, Вы не можете быть подписаны более, чем на 5000 групп или публичных страниц одновременно.';
groups_limit_title='Достигнут предел';
groups_no='Нет';
groups_no_with_name='Нет групп с названием, похожим на %s.';
groups_officers='Руководители';
groups_officers_of_group='Руководители группы';
groups_partic_accepted='Участник принят.';
groups_partic_deleted='Участник удален.';
groups_reject_invint='Отклонить приглашение';
groups_sure_delete_link='Вы действительно хотите удалить ссылку на эту группу?';
groups_sure_delete_manager='Вы действительно хотите удалить этого человека из руководителей?';
groups_to_all_posts='ко всем записям';
groups_unbanned='Пользователь удален из бан-листа';
groups_users_added='Пользователи приняты в группу<br>';
groups_user_added='Пользователь принят в группу';
groups_yes='Да';
// section = 17; version = 92;
login_enter='Войти';
login_wrong_email_pwd='Такой почтовый адрес не зарегистрирован, либо пароль неверный.';
// section = 21; version = 23;
mail_add_1_address='Пожалуйста, добавьте хотя бы одного адресата.';
mail_cancel='Отмена';
mail_cant_add_more15='Вы можете добавить не более 15 адресатов.';
mail_close='Закрыть';
mail_delete='Удалить';
mail_deleteall1='Удалить все сообщения';
mail_delete_all_spam='Удалить все сообщения, содержащие спам?';
mail_delete_failed='Во время выполнения произошла ошибка';
mail_enter_text='Пожалуйста, введите текст сообщения.';
mail_error='Ошибка';
mail_markedspam='Сообщение помечено как спам.';
mail_marked_as_spam='Сообщение помечено как спам и удалено.';
mail_msg_deleted='Сообщение удалено.';
mail_restored='Сообщение восстановлено';
mail_restoremark='Восстановить отмеченные';
mail_restore_failed='Во время выполнения произошла ошибка';
mail_show_all_history='Показать всю историю сообщений';
// section = 22; version = 77;
market_about_paid_ads='О платных объявлениях';
market_available_after='Данная функция станет доступна после создания объявления.';
market_available_later='Функция будет доступна позже';
market_cancel='Отмена';
market_can_promote='Все пользователи могут продвигать свои объявления при поиске.';
market_clicks_now=['','При текущем балансе это обеспечит объявлению <b>%s</b> переход.','При текущем балансе это обеспечит объявлению <b>%s</b> перехода.','При текущем балансе это обеспечит объявлению <b>%s</b> переходов.'];
market_create_ad='Создать объявление';
market_currency_countEUR=['','евро','евро','евро'];
market_currency_countKZT=['','тенге','тенге','тенге'];
market_currency_countRUB=['','рубль','рубля','рублей'];
market_currency_countUAH=['','гривна','гривны','гривен'];
market_currency_countUSD=['','доллар','доллара','долларов'];
market_defave='Удалить из избранного';
market_determine_cost='Вы сами определяете, сколько готовы платить за каждый уникальный переход на Ваше объявление.';
market_enfave='Добавить в избранное';
market_features='Особенности:';
market_more_info='Более подробная информация - в настройках Вашего объявления.';
market_N_votes_per_ad=['','голос за уникальный переход на объявление','голоса за уникальный переход на объявление','голосов за уникальный переход на объявление'];
market_not_enough_X_votes=['','У Вас недостаточно голосов. Сейчас у Вас <b>%s</b> голос.','У Вас недостаточно голосов. Сейчас у Вас <b>%s</b> голоса.','У Вас недостаточно голосов. Сейчас у Вас <b>%s</b> голосов.'];
market_ok='OK';
market_photos_cancel='Отмена';
market_photos_choose_album='Выберите альбом с фотографиями для вашего объявления.';
market_photos_you_can='Вы можете выбрать до 5 фотографий для Вашего объявления.';
market_photo_delete='Удалить';
market_photo_no_delete='Не удалять';
market_photo_one_of_photo='Фотография {index} из {count}';
market_reason_cheat='Ложная информация / Мошенничество';
market_reason_duplicate='Многократное дублирование';
market_reason_extr='Экстремизм';
market_reason_nonsense='Бессмыслица';
market_reason_offtop='Несоответствие разделу';
market_reason_ortho='Орфографическая ошибка';
market_reason_porn='Порнография';
market_reason_spam='Спам / Сторонние ссылки';
market_report='Жалоба';
market_save='Сохранить';
market_select_ban_reason='Пожалуйста, выберите причину для блокировки объявления:';
market_send='Отправить';
market_X_cents_foruser='Данная сумма составляет приблизительно <b>$%s</b> за каждого пользователя.';
market_X_votes=['','%s голос','%s голоса','%s голосов'];
market_your_ad_will_take_places=['','При текущей оплате (<b>%s</b> голос за клик) Ваше объявление будет занимать следующие места в разделах:','При текущей оплате (<b>%s</b> голоса за клик) Ваше объявление будет занимать следующие места в разделах:','При текущей оплате (<b>%s</b> голосов за клик) Ваше объявление будет занимать следующие места в разделах:'];
// section = 23; version = 1;
matches_close='закрыть';
matches_closed='закрыто';
matches_no_accepted='Отказ принят.';
matches_open='открыть';
matches_user_deleted='Пользователь удален из списка.';
matches_yes_accepted='Согласие принято.';
// section = 24; version = 1;
updates_all_news='Новости';
updates_loading_news='Загрузка новостей...';
// section = 25; version = 92;
pages_category='Категории и подкатегории';
pages_clear='Очистить';
pages_insert_sign='Вставить подпись';
// section = 27; version = 46;
payments_accept_msg='Принять';
payments_accept_offer_msg='Необходимо принять условия договора-оферты.';
payments_amount_rubles=['','рубль','рубля','рублей'];
payments_amount_votes=['','голос','голоса','голосов'];
payments_cancel='Отмена';
payments_card_verified_msg='Вы подтвердили, что являетесь владельцем карты.';
payments_close='Закрыть';
payments_currency_rub=['','%s руб.','%s руб.','%s руб.'];
payments_enter_sum_msg='Необходимо ввести количество голосов.';
payments_error='Ошибка';
payments_fee_full='Комиссия {amount} р. ({percent}%)';
payments_fee_rubles=['','%s рубль комиссии','%s рубля комиссии','%s рублей комиссии'];
payments_fee_votes=['','Сумма: %s рубль','Сумма: %s рубля','Сумма: %s рублей'];
payments_msg_deleted='Сообщение удалено.';
payments_N_tries_left_msg=['','У Вас осталась одна попытка.','У Вас осталось %s попытки.','У Вас осталось %s попыток.'];
payments_offer_header='Договор-оферта';
payments_please_enter_correct_inn='Пожалуйста, введите корректный ИНН.<br>Обратите внимание, что услуга поддерживается <b>только</b> для юридических лиц.';
payments_please_enter_correct_okpo='Пожалуйста, введите корректный ОКПО.<br>Обратите внимание, что услуга поддерживается <b>только</b> для юридических лиц.';
payments_please_enter_money='Необходимо ввести сумму платежа.';
payments_please_enter_okpo='Пожалуйста, введите ОКПО.';
payments_really_start_over_msg='Вы действительно хотите начать процедуру заново?';
payments_really_use_other_msg='Вы действительно хотите использовать другую карту для проведения платежей?';
payments_send='Отправить';
payments_thanks_for_comm='Спасибо за Ваш отзыв.';
payments_verify_start_over_header='Вы уверены?';
payments_verify_sum_currency='Валюта авторизационной транзакции:';
payments_verify_sum_dialog='Введите сумму авторизационной транзакции:';
payments_verify_sum_header='Введите сумму';
payments_verify_sum_howto_dialog='Сумму авторизационной транзакции Вы можете узнать:<br><ul class="listing"><li><span> обратившись в службу клиентской поддержки банка по телефону, указанному на обратной стороне вашей карты. Сообщите оператору, что Вы только что произвели оплату в интернет-магазине, и, для подтверждения права на использование карты, Вам необходима информация о сумме транзакции. Вас попросят идентифицировать себя, после чего предоставят информацию.</span></li><li><span> через систему удаленного банковского обслуживания интернет-банк/банк-клиент - в случае предоставления данной услуги банком-эмитентом;</span></li><li><span> c помощью услуги SMS-информирования - в случае предоставления данной услуги банком-эмитентом.</span></li></ul>';
payments_verify_sum_howto_header='Как узнать сумму авторизационной транзакции';
payments_wait_verifying_msg='Пожалуйста, подождите. Проверка может занять 5-10 минут.';
payments_wrong_sum_msg='Сумма авторизационной транзакции введена неверно, попробуйте снова.';
payments_your_comm='Ваш отзыв';
payment_no_more_tries_msg='Сумма авторизационной транзакции введена неверно. Вы исчерпали количество попыток для этой авторизационной транзакции. Вам необходимо запустить процесс подтверждения заново, нажав кнопку "Авторизовать карту".';
votes_transfer_choose_recipients='Выберите получателя';
votes_transfer_close='Закрыть';
votes_transfer_please_enter_amount='Пожалуйста, укажите количество голосов для передачи.';
votes_transfer_please_select_recipient='Пожалуйста, выберите получателя.';
votes_transfer_recipient_selection='Выбор получателя';
votes_transfer_start_typing_recipient='Начните вводить имя друга';
// section = 28; version = 114;
photos_cancel='Отмена';
photos_crop_info='Укажите область, которая будет сохранена как фотография Вашей страницы.';
photos_done='Готово';
photos_tags_info='Нажмите на область, где изображен человек, и он будет подписан на фотографии. Вы можете добавлять любое количество друзей на фотографию.';
photos_tags_ok='Готово';
photos_viewer_exit='Выйти из режима просмотра';
photo_comment_marked_as_spam='Комментарий помечен как спам.';
photo_dont_close='Пожалуйста, не закрывайте это окно, пока фотографии не загрузятся.';
photo_rotating='Поворачиваем';
photo_uploading_photo='Идёт загрузка фотографий';
// section = 30; version = 43;
activity_cant_update='Не удалось обновить статус.';
activity_change_status='[ изменить статус ]';
activity_deleted='Сообщение удалено';
activity_update_just_now='Обновлено только что';
ads_image_too_small='Вы пытаетесь загрузить слишком маленькую фотографию.<br>Выберите фотографию большего размера и повторите попытку.';
profile_become_a_fan='Подписаться на обновления';
profile_fans='Подписчики';
profile_hide_full_info='скрыть подробную информацию';
profile_hide_full_info_short='скрыть';
profile_hide_this_notice='Скрыть эту подсказку';
profile_idols='Подписки';
profile_mention_not_found='Пользователь не найден';
profile_mention_start_typing='Начните вводить имя друга';
profile_not_a_fan='Отписаться от обновлений';
profile_show_full_info='показать подробную информацию';
profile_show_full_info_short='вся информация';
profile_status_header='Статусы';
profile_to_all_posts='ко всем записям';
profile_to_comments='к обзору комментариев';
profile_to_other_statuses='к остальным записям';
profile_to_statuses='к статусам';
profile_wall_header='Стена';
profile_wall_poll='Опрос';
// section = 31; version = 170;
profileEdit_photo_notsupported='Фотографии этого формата не поддерживаются. Поддерживаемые форматы: .jpg, .png, .gif';
profile_edit_close='Закрыть';
profile_edit_error='Ошибка';
profile_edit_sel_town_to_save='Пожалуйста, выберите хотя бы город, если Вы хотите сохранить название места.';
select_chair='Кафедра:';
select_class='Класс:';
select_eduform='Форма обучения:';
select_edustatus='Статус:';
select_faculty='Факультет:';
select_finish_year='Год окончания обучения:';
select_graduation='Дата выпуска:';
select_military_unit='Войсковая часть:';
select_school='Школа:';
select_spec='Специализация:';
select_start_year='Год начала обучения:';
select_university='ВУЗ:';
// section = 32; version = 3;
rate_header='Рейтинг';
rate_voting='Голосование';
// section = 34; version = 4;
search_nothing_found='Ничего не найдено';
// section = 36; version = 49;
forum_about_right_answer='У каждого вопроса один из ответов может быть с флажком "Правильный ответ". Ответ, который помечен таким образом, выводится вторым сообщением, сразу после вопроса, и особо отмечен. Не следует забывать, что у вопроса может быть помечен таким образом лишь один ответ, и если пометить второй ответ "Правильным", то первый станет обычным ответом и будет отображаться на своем родном месте.';
forum_add='Добавить';
forum_adding_subsection='Добавление подраздела';
forum_adding_topic='Добавление вопроса';
forum_add_leader='Добавить';
forum_add_link='Добавить';
forum_answer='Ответ';
forum_cancel='Отмена';
forum_change='Изменить';
forum_changing_image='Изменение изображения подраздела';
forum_changing_image_right_link='http://поддомен.vkontakte.ru/адрес_изображения';
forum_changing_image_text='Можно вводить ссылки только на изображения, хранящиеся на сайте vkontakte.ru. Правильный вид ссылки:';
forum_close_section='Закрыть раздел';
forum_close_section_title='Закрыть на добавление вопросов рядовыми пользователями';
forum_delete='Удалить';
forum_delete_not_unique_section='Удалить из этого раздела';
forum_delete_not_unique_section_confirm='Этот подраздел содержится не только в этом разделе. Если вы удалите его, он пропадет из всех разделов, в которых находился. Если вы хотите удалить его только из этого раздела, нажмите на ссылку ниже:';
forum_delete_not_unique_topic='Удалить из этого раздела';
forum_delete_not_unique_topic_confirm='Этот вопрос содержится не только в этом разделе. Если вы удалите его, он пропадет из всех разделов, в которых находился. Если вы хотите удалить его только из этого раздела, нажмите на ссылку ниже:';
forum_delete_section='Удалить раздел';
forum_delete_section_confirm='Вы действительно хотите удалить этот раздел?';
forum_delete_topic='Удаление вопроса';
forum_delete_topic_confirm='Вы действительно хотите удалить этот вопрос?';
forum_edit='Редактировать';
forum_editing_comment='Редактирование ответа';
forum_editing_leaders='Редактирование руководителей';
forum_editing_links='Редактирование ссылок';
forum_editing_topic='Редактирование вопроса';
forum_edit_subsections_finish='Готово';
forum_enter_header='Введите заголовок:';
forum_enter_link='Введите ссылку:';
forum_enter_name='Введите название:';
forum_enter_subsection_id='Введите ID подраздела:';
forum_enter_text='Текст:';
forum_enter_topic_id='Введите ID вопроса:';
forum_error_closing_section='Ошибка при закрытии раздела';
forum_error_closing_topic='Ошибка при закрытии вопроса';
forum_error_mark_read='Не удалось отметить тему как прочитанную';
forum_error_null_answer='Надо ввести ответ';
forum_error_opening_section='Ошибка при открытии раздела';
forum_error_opening_topic='Ошибка при открытии вопроса';
forum_error_sticking_topic='Ошибка при прилеплении вопроса';
forum_error_unsticking_topic='Ошибка при отлеплении вопроса';
forum_error_wrong_id='Надо ввести правильный ID';
forum_error_wrong_name_link='Надо указать название и ссылку';
forum_flood_control='Вы отправляете сообщения слишком быстро.';
forum_hidden_answer='Скрытый ответ';
forum_hidden_right_answer='Скрытый ответ';
forum_hidden_topic='Скрытый вопрос';
forum_is_hidden_answer='Скрытый ответ';
forum_is_right_answer='Правильный ответ';
forum_link_label='Подпись';
forum_link_link='Ссылка';
forum_link_name='Название';
forum_must_enter_text='Необходимо ввести текст вопроса.';
forum_must_enter_title='Необходимо ввести заголовок вопроса.';
forum_new_officer_id='ID нового руководителя';
forum_new_subsection_or='или вы можете добавить существующий подраздел';
forum_new_topic_text='Здесь вы можете добавить в данный раздел существующий вопрос. Чтобы добавить новый вопрос, воспользуйтесь ссылкой "Задать вопрос" в секции вопросов.';
forum_ok='Готово';
forum_open_section='Открыть раздел';
forum_open_section_title='Открыть на добавление вопросов рядовыми пользователями';
forum_rename_section='Переименовать раздел';
forum_right_answer='Правильный ответ';
forum_show_add_leader='Добавить руководителя';
forum_show_add_link='Добавить ссылку';
forum_subscribe='Подписаться на ответы';
forum_unsubscribe='Отписаться от ответов';
paysupp_error='Ошибка';
temp_messages_in_topic_function=['','В обсуждении %s сообщение.','В обсуждении %s сообщения.','В обсуждении %s сообщений.'];
temp_messages_shown_function='На странице сообщения #{from}-{to}.';
temp_post_too_long_function=['','Допустимая длина ответа превышена на %s знак.','Допустимая длина ответа превышена на %s знака.','Допустимая длина ответа превышена на %s знаков.'];
// section = 39; version = 68;
voting_cant_close='Увы, закрыть опрос не удалось. Перезагрузите страницу и попробуйте еще раз.';
voting_cant_open='Увы, открыть опрос не удалось. Перезагрузите страницу и попробуйте еще раз.';
voting_cant_place_main='Увы, поместить опрос на главную страницу группы не удалось. Перезагрузите страницу и попробуйте еще раз.';
voting_cant_remove_main='Увы, убрать опрос с главной страницы группы не удалось. Перезагрузите страницу и попробуйте еще раз.';
voting_cant_revote='Увы, переголосовать не удалось. Перезагрузите страницу и попробуйте еще раз.';
voting_cant_vote='Увы, проголосовать не удалось. Перезагрузите страницу и попробуйте еще раз.';
voting_empty_vars='Пустые варианты ответа недопустимы. Заполните или уберите их.';
// section = 40; version = 2;
wall_post_not_found='Запись не найдена';
// section = 41; version = 36;
vkontakte_ru='ВКонтакте.ру';
// section = 42; version = 59;
var langConfig = {"id":0,"numDel":"<span style=\"font-size:60%\"> <\/span>","numDelS":" ","numDec":",","prepTags":["{prep_with}","{prep_With}","{prep_about}","{prep_About}"],"prep":[["{prep_with},{prep_With}","С*,З*","со,Со"],["{prep_with},{prep_With}","*,Са*,Се*,Сё*,Си*,Со*,Су*,Сэ*,Сю*,Ся*,За*,Зе*,Зё*,Зи*,Зо*,Зу*,Зэ*,Зю*,Зя*","с,С"],["{prep_about},{prep_About}","А*,О*,У*,И*,Э*","об,Об"],["{prep_about},{prep_About}","*","о,О"]],"parent":0,"timeSys":["24hour"],"yearOffset":0,"flexLast":false,"revOrder":false,"RTL":false,"numRules":{"int":[[100,[11,12,13,14],3],[10,[1],1],[10,[2,3,4],2],["*",0,3]],"float":2},"sexRules":[[1,2],["*",1]],"larr":"←","rarr":"→"};
var market_currency_count = ['RUB','UAH','KZT','USD','EUR'];
var qArr = [[0, getLang('search_by_person'), '', 'people', 0],
[1, getLang('search_by_group'), '', 'groups', 0x00800000],
[2, getLang('search_by_event'), '', 'events', 0x01000000],
[3, getLang('search_by_audio'), '', 'audio', 0x00000002],
[4, getLang('search_by_video'), '', 'video', 0x00400000],
[5, getLang('search_by_ad'), '', 'ads', 0x00000100],
[6, getLang('search_by_app'), '', 'apps', 0x00000020],
[7, getLang('search_by_question'), '', 'questions', 0x00000040],
[8, getLang('search_by_note'), '', 'notes', 0x02000000],
[9, getLang('search_by_topic'), '', 'topics', 0x00800000],
[11, getLang('search_by_status'), '', 'statuses', 0]];
var year_offset = langConfig.yearOffset;
var larr = langConfig.larr;
var rarr = langConfig.rarr;
#common_css {
display: none;
}
body {
background: #fff;
margin: 0px;
padding: 0px;
direction: ltr;
font-family: tahoma, arial, verdana, sans-serif, Lucida Sans;
font-size: 11px;
}
body.nofixed {
width: 100%;
overflow: hidden;
}
body.nofixed #page_wrap {
position: relative;
height: 100%;
width: 100%;
overflow: auto;
}
.fixed {
position: fixed;
}
body.nofixed .fixed {
position: absolute;
}
body.firefox #page_wrap {
position: relative;
width: 100%;
overflow: hidden;
}
/* in 'rtl' left and ltr too -- disabling content jumping when scrollbar changes */
.scroll_fix_wrap {
text-align: left;
direction: ltr;
}
a {
color: #2B587A;
text-decoration: none;
cursor: pointer;
}
a:hover {
text-decoration: underline;
}
img {
border: 0px;
}
form {
margin: 0px;
padding: 0px;
}
small {
font-size: 10px;
}
textarea.ashelper {
overflow: hidden;
}
.captcha {
text-align: center;
height: 80px;
}
.captcha img {
width: 130px;
height: 50px;
background: url(/images/vklogo.gif);
cursor: pointer;
}
.captcha input.text {
width: 120px;
margin: 10px 0px 0px;
}
.captcha .progress {
width: 120px;
margin: 13px auto 0px;
}
.phone_validation_suggest {
text-align: center;
font-size: 10px;
padding-top: 10px;
line-height: 15px;
}
.summary_wrap {
color: #45688E;
padding: 11px 10px 0px;
background: #FFF;
border-bottom: 1px solid #DAE1E8;
}
.summary_wrap .summary {
font-weight: bold;
padding: 3px 0px 4px;
}
.summary_wrap .summary span {
font-weight: normal;
}
.bottom_wrap {
border-top: 1px solid #DAE1E8;
background: #FFF;
padding: 0px 10px;
}
.png {
behavior: url(/js/iepngfix.htc);
}
.progress {
display: none;
width: 32px;
height: 13px;
background: url(/images/upload.gif) no-repeat 50% 50%;
}
.checkbox {
cursor: pointer;
line-height: 14px;
}
.checkbox.disabled {
opacity: 0.5;
filter: alpha(opacity=50);
}
.checkbox div {
float: left;
width: 15px;
margin-right: 5px;
height: 14px;
background: url(/images/icons/check.gif) 0px 0px no-repeat;
}
.checkbox:hover div {
background-position: 0px -28px;
}
.checkbox.disabled:hover div {
background-position: 0px 0px;
}
.checkbox.on div {
background-position: 0px -14px;
}
.checkbox.on:hover div {
background-position: 0px -42px;
}
.checkbox.disabled.on:hover div {
background-position: 0px -14px;
}
.radiobtn {
cursor: pointer;
line-height: 14px;
}
.radiobtn div {
float: left;
width: 15px;
margin-right: 5px;
height: 14px;
background: url(/images/icons/radio.gif) 0px 0px no-repeat;
}
.radiobtn:hover div {
background-position: 0px -28px;
}
.radiobtn.on div {
background-position: 0px -14px;
}
.radiobtn.on:hover div {
background-position: 0px -42px;
}
.fl_l { float: left; }
.fl_r { float: right; }
.ta_l { text-align: left; }
.ta_r { text-align: right; }
.upload_frame {
position: absolute;
visibility: hidden;
width: 20px;
height: 20px;
}
.noselect {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
/* Inputs */
input[type="text"],
input[type="submit"],
input[type="button"],
input[type="search"],
input[type="password"],
input[type~="text"],
input[type~="search"],
input[type~="password"],
input[type~="email"] {
font-size: 11px;
font-family: Tahoma, Verdana, Arial, Sans-Serif, Lucida Sans;
}
input.text, input.search, textarea {
background: #FFF;
border: 1px solid #C0CAD5;
font-family: tahoma, tahoma, verdana, arial, sans-serif, Lucida Sans;
font-size: 11px;
padding: 3px;
margin: 0px;
}
input.search {
background: #FFF url(/images/magglass.png) no-repeat 3px 4px;
padding-left: 17px;
}
input.file {
font-size: 11px;
margin: 0px;
}
/* Headers */
h2 {
border-bottom: 1px solid #DAE1E8;
color: #45668E;
font-size: 13px;
padding: 0px 0px 3px;
margin: 0px 0px 10px;
}
h4 {
border-bottom: 1px solid #E8EBEE;
color: #45688E;
font-size: 11px;
font-weight: bold;
margin: 0px;
padding: 0px 0px 3px;
}
h4 .fl_r, h4 span {
font-weight: normal;
}
/* Layout */
div#utils {
top: -30px;
position: absolute;
height: 20px;
overflow: hidden;
}
#page_layout {
padding: 0px;
margin: 0px auto;
position: relative;
width: 791px;
}
#page_header .back {
position: absolute;
width: 100%;
height: 40px;
background: #4E729A url(/images/hat.gif) 0px -43px repeat-x;
}
#page_header .left {
position: absolute;
left: 0px;
width: 134px;
height: 40px;
background: #4E729A url(/images/hat.gif) 0px -1px;
}
#page_header .right {
position: absolute;
right: 0px;
width: 10px;
border-right: 1px solid #FFF;
height: 40px;
background: #4E729A url(/images/hat.gif) 100% -1px;
}
#page_header .content {
position: absolute;
width: 100%;
z-index: 105;
}
#page_header.p_head_l777 .left, #page_header.p_head_l777 .right, #page_header.p_head_l777 .back {
background-color: #4E729A;
background-image: url(/images/hatsov.gif);
}
#page_header.p_head_l777 .left {
width: 135px;
}
#page_header.p_head_l777 .right {
width: 6px;
}
#page_header.p_head_l100 .left, #page_header.p_head_l100 .right, #page_header.p_head_l100 .back {
background-color: #4E729A;
background-image: url(/images/hatimp.gif);
}
#page_header.p_head_l100 .left {
width: 135px;
}
#page_header.p_head_l100 .right {
width: 10px;
}
#page_header.p_head1 .right {
background: #4E729A url(/images/hatvk.gif) 100% -1px;
}
#page_header.p_head1 .left {
width: 147px;
background: #4E729A url(/images/hatvk.gif) 0px -1px;
}
#page_header.p_head1 .back {
background: #4E729A url(/images/hatvk.gif) 0px -43px repeat-x;
}
#page_header.p_head1 .top_feed {
margin-left: -104px;
width: 85px;
text-align: center;
padding-top: 12px;
}
#page_header.p_head1.p_head_l777 .left {
width: 6px;
}
#page_header.p_head1.p_head_l100 .left {
width: 10px;
}
.p_head_l777 #search_cont, .p_head_l777 #gsearch {
border-color: #851614;
}
.p_head_l100 #search_cont, .p_head_l100 #gsearch {
border-color: #45372F;
}
.p_head_l777 .head_nav a, .p_head_l777 .head_nav div, .p_head_l777 .homelink, .p_head_l777 .unl,
.p_head_l100 .head_nav a, .p_head_l100 .head_nav div, .p_head_l100 .homelink, .p_head_l100 .unl {
color: #E6E5B8;
}
#page_header {
height: 40px;
}
#home {
width: 153px;
height: 40px;
}
#page_header1 #home {
display: none;
}
.homelink, .shah, .unl {
position: absolute;
left: 0px;
top: 0px;
display: block;
color: #FFF;
font-weight: bold;
padding: 7px 0px 0px 14px;
font-size: 11px;
display:block;
width: 153px;
z-index: 410;
overflow: hidden;
}
.shah {
padding-top: 8px;
color: #000;
opacity: 0.4;
filter: alpha(opacity=40);
z-index: 400;
}
.vklink {
font-size: 15px;
padding: 10px 17px 10px;
}
.shah.vklink {
padding-top: 11px;
}
.unl {
margin-top: 21px;
padding-top: 0px;
font-weight: normal;
display: block;
font-size: 10px;
color: #dae1e8;
}
a.unl:hover, a.homelink:hover {
text-decoration: underline;
}
.head_nav {
margin: 0px;
padding: 0px 8px 0px 0px;
}
.head_nav a.top_nav_link {
display: block;
padding: 12px 9px 15px;
height: 11px;
margin: 0px;
font-weight: bold;
font-size: 11px;
color: #E8EFF7;
text-shadow: 0px 1px 0px #416389;
}
.head_nav div#top_links {
padding: 0px;
height: 22px;
background-image: none;
}
.head_nav.no_menu div#top_links {
display: none;
}
.head_nav.no_menu a#logout_link {
display: none;
}
.head_nav a:hover {
color: #FFF;
text-decoration: underline;
}
.head_nav a.top_nav_link b {
font-weight: normal;
color: #E8EFF7;
}
.head_nav a.top_nav_link span {
color: #FFF;
}
#page_body {
font-size: 11px;
width: 631px;
padding: 0px 15px 0px 0px;
}
#page_body.simple {
padding: 0px;
margin: 0px auto;
}
body.firefox #page_body {
overflow: hidden;
}
body.firefox #page_body.no_overflow {
overflow: visible;
}
#wrap2 {
border: solid #F3F3F3;
border-width: 0px 1px 1px;
}
#wrap1 {
border: solid #D9E0E7;
border-width: 0px 1px 1px;
}
#wrap_between {
height: 0px;
overflow: hidden;
}
* html #content {
height: 1%;
}
#header_wrap1 {
border: solid #F3F3F3;
border-width: 0px 1px;
}
#header {
position: relative;
font-weight: bold;
font-size: 11px;
padding: 4px 10px;
background: #F2EAB8 url(/images/headeryell.gif) top left repeat-x;
color: #000;
border: 1px solid #D1C992;
}
#title b {
position: relative;
}
#header h1 {
margin: 0px;
font-size: 11px;
overflow: hidden;
}
#header h1 a {
color: #696029;
}
#header span {
color: #8E8443;
color: #C8BF85;
}
#header b {
color: #C2BC82;
}
/* Left notifier */
.left_box {
text-align: center;
padding: 5px;
background: #F7F7F7;
margin: 0px 0px 10px;
}
.left_box h4 {
font-size: 12px;
border-bottom: solid 1px #DAE1E8;
padding: 0px 0px 3px;
margin: 0px 5px 3px;
}
.left_box.attention h4 {
color: #45688E;
}
.left_hide {
position: absolute;
margin: 0px 118px;
width: 18px;
height: 18px;
background: url(/images/hide_left.gif) no-repeat center center;
opacity: 0;
filter: alpha(opacity=0);
cursor: pointer;
}
.left_gift_bonus, .left_rate_plus {
color: #C4BB98;
font-size: 10px;
font-weight: bold;
margin-top: -11px;
}
.left_gift {
border-bottom: 1px solid #DCDCDC;
margin-bottom: 10px;
}
.left_gift .body {
background: #F7F7F7;
border: 6px solid #EAEAEA;
padding: 4px 4px 7px;
text-align: center;
}
.left_gift .body div {
border-bottom: 1px solid #DCDCDC;
margin: 0px 3px 7px;
padding-bottom: 2px;
}
.left_gift.gold {
border-color: #C4BB98;
}
.left_gift.gold .body {
background: #FEF9E1;
border-color: #E9DEB4;
}
.left_gift.gold .body div {
border-color: #C4BB98;
}
.left_rate_plus {
color: #EEBD00;
}
.left_rate_plus.green {
color: #8DB55F;
}
.left_rate_plus.red {
color: #C5864F;
}
.left_rate_plus.blue {
color: #99B3C9;
}
.left_rate .body {
background: #FAF3D8 url(/images/golden.gif) repeat-x 50% 100%;
border-bottom: 1px solid #FBE172;
margin: 0px 0px 10px;
padding: 5px;
text-align: center;
}
.left_rate .body div {
border-bottom: 1px solid #E6E0B6;
margin: 0px 3px 7px;
padding-bottom: 2px;
}
.left_rate .body div a {
color: #908851;
}
.left_rate .body a {
color: #000;
}
.left_rate .body a:hover {
text-decoration: none;
}
.left_rate.green, .left_rate.red, .left_rate.blue {
border-bottom: 1px solid #37702A;
margin-bottom: 10px;
}
.left_rate.green .body, .left_rate.red .body, .left_rate.blue .body {
background: #D5EABB url(/images/greenl.gif) repeat-x 50% 0%;
border: 8px solid #8DBF56;
margin-bottom: 0px;
}
.left_rate.green .body a div, .left_rate.red .body a div, .left_rate.blue .body a div {
border: 0px;
font-size: 36px;
font-weight: bold;
color: #8DBF56;
margin: 5px 5px 5px 3px;
}
.left_rate.green .body div {
border-color: #8DBF56;
}
.left_rate.green .body div a {
color: #37702A;
}
.left_rate.red {
border-color: #8B4C23;
}
.left_rate.red .body {
background: #F0D6C7 url(/images/redl.gif) repeat-x 50% 0%;
border-color: #C68D69;
}
.left_rate.red .body div {
border-color: #C39679;
}
.left_rate.red .body div a {
color: #8B4C23;
}
.left_rate.red .body a div {
color: #C68D69;
}
.left_rate.blue {
border-color: #2F6C95;
}
.left_rate.blue .body {
background: #D9E6EE url(/images/bluel.gif) repeat-x 50% 0%;
border-color: #99B3C9;
}
.left_rate.blue .body div {
border-color: #99B3C9;
}
.left_rate.blue .body div a {
color: #0B5588;
}
.left_rate.blue .body a div {
color: #99B3C9;
}
.left_gift .body div.vote_transfer {
padding: 5px 0px 12px;
font-weight: bold;
}
#banner1 iframe, #banner2 iframe {
padding: 0px;
margin: 0px;
overflow: hidden;
}
#banner1 iframe {
border: 0px;
width: 120px;
height: 300px;
padding: 0px;
}
#banner2, #banner2 iframe {
border: 0px;
background: #FFF;
width: 600px;
height: 90px;
margin: 0px auto;
padding: 0px;
}
#banner1, #banner2 {
margin-top: 15px;
display: none;
}
#banner2 {
width: 660px;
text-align: center;
margin-top: 10px;
}
.ad_box {
background: #F7F7F7;
border: 1px solid #C0CAD5;
border-width: 1px 0px;
padding-bottom: 10px;
width: 118px;
overflow: hidden;
text-align: center;
display: block;
}
.ad_title {
font-weight: bold;
font-size: 11px;
margin: 0px 3px;
color: #36638E;
padding-top: 8px;
text-align: center;
}
.ad_box img {
padding-top: 8px
}
.ad_desc {
padding-top: 8px;
margin: 0px 2px;
}
a.ad_box:hover {
text-decoration: none;
}
a.ad_box .ad_desc {
color: #000;
}
.ad_box.ad_friend {
border-bottom-width: 0px;
padding-bottom: 0px;
}
.ad_friend .ad_body {
height: 75px;
width: 118px;
overflow: hidden;
text-align: center;
}
.ad_friend .ad_body img {
width: 63%;
}
.ad_box.ad_friends {
border-top-width: 0px;
padding-top: 12px;
}
.ad_help_link {
margin-top: 3px;
font-size: 10px;
text-align: center;
}
.ad_complain {
padding-top: 8px;
font-size: 10px;
text-align: center;
}
.ad_complain span {
color: #2B587A;
}
.ad_complain span:hover {
text-decoration: underline;
}
.ad_box_new {
background: #FFFFFF;
border: 1px solid #DCE3E9;
border-width: 1px 0px;
padding: 0px 0px 11px 0px;
margin: 0px;
width: 118px;
overflow: hidden;
text-align: center;
display: block;
}
.ad_title_new {
font-weight: bold;
font-size: 11px;
margin: 0px 3px;
margin-top: 6px;
color: #36638E;
text-align: center
}
.ad_domain_new {
margin-top: 3px;
font-size: 10px;
color: #909090;
}
.ad_box_new img {
margin-top: 9px
}
.ad_desc_new {
margin: 0px 2px;
margin-top: 10px;
color: #000000;
}
a.ad_box_new:hover {
text-decoration: none;
}
.ad_box_new .left_hide_new {
position: absolute;
margin: 4px 0px 0px 117px;
width: 18px;
height: 18px;
background: url(/images/hide_left.gif) no-repeat center center;
opacity: 0;
filter: alpha(opacity=0);
cursor: pointer;
}
.ad_hide_mask_new {
background-color: #F7F7F7;
position: absolute;
z-index: 5;
display: none;
opacity: 0;
filter: alpha(opacity=0);
border: 1px solid #DCE3E9;
border-width: 1px 0px;
padding: 0px;
margin: 0px;
width: 118px;
overflow: hidden;
text-align: center;
}
.ad_info_new {
color: #808080;
font-size: 10px;
}
.ad_complain_new {
margin-top: 10px;
color: #808080;
font-size: 10px;
}
.ad_complain_info_new {
color: #808080;
font-size: 10px;
}
.ad_complain_link_new {
color: #2B587A;
font-size: 10px;
text-decoration: none;
}
.ad_complain_link_new:hover {
text-decoration: underline;
cursor: pointer;
}
/* Footer */
#footer_wrap {
clear: both;
line-height: 15px;
padding: 5px 0px 0px;
text-align: center;
width: 660px;
}
#footer_wrap.simple {
margin: 0px;
width: auto;
}
#footer_wrap.simple #bottom_nav {
display: none;
}
#footer_wrap .copy_lang a {
margin: 0px 2px;
}
#footer_wrap #footer {
padding: 10px 0px 0px;
text-align: center;
margin: 0px;
}
#bottom_nav a {
border-top: 1px solid #FFF;
padding: 1px 5px 2px;
}
#bottom_nav a:hover {
border-top: 1px solid #CAD1D9;
background-color: #DAE1E8;
text-decoration: none;
}
/* Left menu */
#side_bar {
margin: 5px 0px 0px 4px;
padding-bottom: 10px;
width: 118px;
}
#side_bar .more_div {
margin-top: 3px;
padding-top: 3px;
border-top: 1px solid #E7EAED;
}
#side_bar ol li a.more {
padding-left: 29px;
border-top: 0px;
}
#side_bar ol li a.more:hover {
border-top: 0px;
}
#side_bar ol {
list-style: none;
margin: 0px 0px 10px;
padding: 0px;
}
#side_bar ol li {
font-size: 1.0em;
}
#side_bar ol li#myprofile {
border-bottom: 0;
*margin-bottom:-2px;
}
#side_bar ol li a {
border: 0;
background: #FFF;
display: block;
padding: 4px 3px 4px 6px;
}
#side_bar ol li a.more {
padding-left: 6px;
}
#side_bar ol li#myprofile a {
padding: 0;
width: auto;
}
#side_bar ol li#myprofile a.hasedit {
width: 76px;
padding: 3px 3px 3px 6px;
}
#side_bar ol li#myprofile a.edit {
color: gray;
text-align: center;
width: 28px;
padding: 3px 0px 3px 1px;
}
#side_bar ol li a:hover {
background: #E1E7ED;
text-decoration: none;
}
/* Clear */
.clear_fix:after {
content: '.';
display: block;
height: 0;
clear: both;
visibility: hidden;
}
* html .clear_fix {
height: 1%;
}
.clear_fix {
display: block;
}
.clear {
float: none;
clear: both;
}
.scroll_fix {
position: relative;
}
/* Head */
.listing {
list-style: square;
padding-left: 40px;
color: #758EAC;
margin: 0px 0px 15px 0px
}
ul.listing li {
padding: 1px 0px;
}
ul.listing li span {
color: #000;
}
.divide {
color: gray;
font-weight: normal;
padding: 0px 4px;
}
small.divide {
padding: 0px 2px;
}
.sdivide {
color: #ADB8C3;
padding: 0px 4px;
font-size: 10px;
}
.wrapped {
overflow: hidden;
word-wrap: break-word;
}
wbr {
width: 0px;
display: inline-block;
overflow: hidden;
}
.ad_box {
background: #F7F7F7;
border: 1px solid #C0CAD5;
border-width: 1px 0px;
padding: 0px 0px 10px 0px;
margin: 0px;
width: 118px;
overflow: hidden;
text-align: center;
display: block;
}
.ad_title {
font-weight: bold;
font-size: 11px;
margin: 0px 3px;
color: #36638E;
padding-top: 8px;
text-align: center;
}
.ad_box img {
padding-top: 8px
}
.ad_desc {
padding-top: 8px;
margin: 0px 2px;
}
a.ad_box .ad_desc {
color: #000;
}
#side_back_link {
padding: 8px 9px 8px 20px;
background: #FFF url(/images/backlink.gif?3) no-repeat left top;
display: none;
opacity: 0;
filter: alpha(opacity=0);
z-index: 400;
}
#top_back_link {
padding-left: 20px;
background: url(/images/backlink.gif?3) no-repeat left -84px;
font-weight: normal;
width: 220px;
overflow: hidden;
display: none;
}
#side_back_link.back {
background-position: left -30px;
padding-left: 18px;
}
#side_back_link:hover {
text-decoration: none;
}
/* Layers */
#layer_bg, #box_layer_bg, #layer_wrap, #box_layer_wrap {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 500;
overflow: hidden;
display: none;
}
#box_layer_bg, #box_layer_wrap {
z-index: 1000;
}
#layer_wrap, #box_layer_wrap {
overflow: auto;
}
/* MessageBox */
.popup_box_container {
margin: 0px auto;
z-index: 1002;
padding: 10px;
background: transparent url(/images/transpx2.png) repeat scroll 0 0;
*background-color: #C6D0D8;
_background-color: #C6D0D8;
}
.box_title_wrap {
background-color: #4B769F;
border: 1px solid #324B67;
border: 1px solid #45688E;
aborder-bottom: 1px solid #45688E;
padding: 0px;
color: #fff;
font-size: 13px;
font-weight: bold;
}
.box_x_button {
float: right;
width: 17px;
height: 17px;
margin: 5px 5px 0px;
cursor: pointer;
padding: 0;
background: #9CB8D4 url(/images/icons/boxicons.gif) -23px -2px;
}
.box_body {
background-color: #fff;
border-left: 1px solid #AAA;
border-right: 1px solid #AAA;
padding: 16px 14px;
aline-height: 14px;
}
.box_no_title {
border-top: 1px solid #AAA;
}
.box_controls_wrap {
border: 1px solid #AAA;
border-top: 0px;
}
.box_controls_text {
padding: 8px 8px 0px;
}
.box_controls {
padding: 5px;
height: 30px;
background-color:#f2f2f2;
border-top: 1px solid #ccc;
}
.box_controls .progress {
position: relative;
margin: 7px 10px 0px;
}
.controls_wrap {
padding: 7px 0px 0px 5px;
}
.button_yes, .button_no, .button_cancel {
cursor: pointer;
width: auto;
height: auto;
}
.box_controls .button_wrap {
padding: 2px 5px;
float: right;
}
.button_yes div, .button_no div {
padding: 4px 14px;
text-align: center;
}
.button_cancel div {
padding: 6px 15px;
*padding: 7px 15px;
text-align: center;
}
.button_yes {
border: 1px solid #3B6798;
text-shadow: 0px 1px 0px #45688E;
}
.button_yes_bottom {
border-bottom: 1px solid #2B587A;
}
.button_yes div {
border-style: solid;
border-width: 1px;
border-color: #7E9CBC #5C82AB #5C82AB;
background-color:#6D8FB3;
color: #FFF;
}
.button_yes div.button_hover {
border-color: #92ACC7 #7293B7 #7293B7;
background-color: #84A1BF;
}
.button_yes div.button_down {
border-color: #4f749d #4f749d #5c82ab;
background-color: #5e84a9;
}
.button_no {
border: 1px solid #B8B8B8;
border-top: 1px solid #9F9F9F;
text-shadow: 0px 1px #FFF;
}
.button_cancel {
color: #2B587A;
}
.button_cancel .button_hover {
background: #E1E7ED;
}
.button_no div {
border: 1px solid #F4F4F4;
border-top: 1px solid #fff;
border-bottom: 1px solid #DFDFDF;
background-color: #eaeaea;
color: #000;
text-decoration: none;
}
.button_no div.button_hover {
background-color: #f7f7f7;
}
.button_yes.locked .lock span, .button_no.locked .lock span {
visibility: hidden;
}
.button_yes.locked .lock, .button_no.locked .lock {
background: url(/images/upload.gif) no-repeat center 7px;
}
.box_title {
border-top: 1px solid #6088B3;
border-bottom: 1px solid #466E94;
padding: 4px 10px 5px 10px;
}
.box_no_controls {
background-color: #DAE2E8;
border: 1px solid #ADBBCA;
}
.box_no_controls .box_title_wrap, .box_no_controls .box_layout .box_controls {
display: none;
}
.box_no_controls .box_body {
border: none;
padding: 0;
}
.delete_all .clear_fix {
margin-top: 10px;
}
.delete_all .button_gray {
margin: 0px 10px;
}
/*
New input buttons with gradient
*/
.button_blue, .button_gray {
text-align: center;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
display: inline-block;
*display: inline;
position:relative;
zoom: 1;
}
.box_controls .button_blue, .box_controls .button_gray {
margin: 2px 5px;
}
.button_blue button, .button_gray button {
border:1px solid;
background: none;
font-size: 11px;
margin: 0px;
cursor: pointer;
white-space: nowrap;
outline: none;
padding: 4px 14px 4px;
*padding: 5px 15px 3px;
font-family: tahoma, verdana, arial, sans-serif, Lucida Sans;
overflow: visible;
}
.button_wide {
display: block;
}
.button_wide button {
width: 100%;
}
.button_blue button::-moz-focus-inner,
.button_gray button::-moz-focus-inner {
border:0;
}
.button_blue {
border: 1px solid #416796;
background: #6485aa;
}
.button_blue button {
border-top-color: #7c98ba;
border-bottom-color: #5e80a9;
border-left-color: #5e80a9;
border-right-color: #5e80a9;
color: #FFF;
text-shadow:0 1px 0 #45688E;
*border: 0;
background: url('/images/button_bg.png') #6181a6 repeat-x top;
background-position: 0px -16px;
*background-position: 0px -16px;
}
.button_blue button:hover {
background-position: 0px -8px;
}
.button_blue button:active {
background: #5e80a5;
border: 1px solid #5e80a5;
position:relative;
}
.button_gray {
border: 1px solid #b3b3b3;
background: #e0e0e0;
}
.button_gray button {
border-top-color: #ffffff;
border-bottom-color: #e5e5e5;
border-left-color: #e7e7e7;
border-right-color: #e7e7e7;
color: #444;
text-shadow:0 1px 0 #ffffff;
*border: 0;
background: url('/images/button_bg.png') #dddddd repeat-x top;
background-position: 0px -54px;
}
.button_gray button:hover {
background-position: 0px -46px;
}
.button_gray button:active {
background: #dcdcdc;
border: 1px solid #dcdcdc;
position:relative;
}
.button_lock {
background: url('/images/upload_inv.gif') center no-repeat;
position:absolute;
width: 100%;
height: 100%;
}
/* Pages */
.page_list {
list-style: none;
margin: 0;
padding: 0;
}
.page_list li {
float: left;
display: inline;
}
.page_list a {
border-bottom: 2px solid #FFF;
display: block;
padding: 3px 3px 2px;
}
.page_list a:hover {
background: #45668E;
border-color: #DAE2E8;
border-bottom: 1px solid #45668E;
color: #FFF;
text-decoration: none;
}
.page_list .current {
background: #FFF;
border-color: #45668E;
border-bottom: 2px solid #45668E;
color: #45668E;
font-weight: bold;
padding: 3px 2px 2px;
}
.pages_bottom .page_list .current {
padding-top: 1px;
border-bottom-color: white;
border-top: 2px solid #45668E;
}
.flat_tabs {
border-bottom: 1px solid #DAE1E8;
height: 24px;
list-style-type: none;
margin: 0pt;
padding: 0px 7px;
vertical-align: bottom;
}
.flat_tab_on {
background-color: #FFF;
border: 1px solid #C3CAD2;
border-bottom: 0px;
float: left;
height: 24px;
margin: 0px 3px -1px;
text-align: center;
position: relative;
}
.flat_tab_on a {
float: left;
padding: 5px 10px;
text-decoration: none;
}
.flat_tab {
background-color: #F5F7FA;
border: 1px solid #C3CAD2;
border-bottom: 0px;
float: left;
height: 23px;
margin: 0px 3px;
text-align: center;
}
.flat_tab a {
border-bottom: 2px solid #EEF0F3;
float: left;
padding: 5px 10px 3px;
text-decoration: none;
}
.flat_tab a:hover {
background-color: #FFF;
text-decoration: none;
}
.flat_tab a:hover{
background-color: #FFF;
border-bottom: 2px solid #F5F9FC;
text-decoration: none;
}
.audio td {
vertical-align: top;
padding: 2px;
}
.audio .play {
cursor: pointer;
width: 20px;
height: 17px;
background: url(/images/play.gif) no-repeat 0px 0px;
}
.audio .info {
width: 100%;
}
.audio .duration {
color: #777;
font-size: 10px;
padding: 4px 0 0 4px;
}
.audio .player_wrap {
height: 14px;
margin-left: 28px;
padding-top: 3px;
}
.audio .playline {
padding-top: 5px;
}
.audio .playline div {
border-top: 1px dashed #D8DFEA;
height: 9px;
}
.audio .player {
display: none;
height: 14px;
}
.add_audio_plus {
background: #C4D2E1 url(/images/icons/plus_icon3.gif) no-repeat;
height: 17px;
width: 16px;
cursor: pointer;
margin-top: -2px;
}
.add_audio_plus.done {
background-position: 0 -17px;
background-color: #6B8DB1;
cursor: default;
}
#box_layer .video_box .wrap {
position: relative;
}
#box_layer .video_box div {
position: relative;
z-index: 1011;
}
#box_layer .video_box .background {
position: absolute;
z-index: 1010;
}
#box_layer .video_box .description,
#box_layer .video .description {
padding-top: 10px;
position: relative;
}
#box_layer .video_box .no_flash_wrap {
padding-top: 160px;
}
#box_layer .video_box .no_flash {
margin: auto;
width: 320px;
padding: 10px;
background: #FFF;
border: 1px solid #CCC;
position: relative;
z-index: 1015;
}
#box_layer .flash_needed .button_blue {
margin: 15px auto 0px;
width: 150px;
}
#box_layer .flash_needed .button_blue button {
width: 100%;
}
#quick_auth_frame {
padding: 0px;
margin: 0px;
border: 0px;
width: 123px;
height: 300px;
}
#quick_login {
width: 123px;
}
#quick_login .text {
width: 115px;
}
#quick_login .submit {
position: absolute;
color: #FFF;
border: 0;
padding: 0;
margin: 0;
background: #FFF;
left: -8000px;
top: -8000px;
}
#quick_login .label {
color: #666;
padding-bottom: 4px;
}
#quick_login .labeled {
padding-bottom: 7px;
}
#quick_login .checkbox {
margin-bottom: 7px;
display: none;
}
#quick_login .reg {
margin-top: 7px;
}
#quick_login .forgot {
padding-top: 5px;
text-align: center;
}
.error, .info_msg {
background: #FFEFE8;
border: 1px solid #E89B88;
padding: 8px 11px;
text-align: justify;
}
.info_msg {
background: #F6F7F9;
border: 1px solid #DBE0EA;
}
.msg {
padding: 8px 11px;
background-color: #F9F6E7;
border: 1px solid #D4BC4C;
}
.box_msg {
padding: 8px 11px;
margin: 0px;
font-weight: bold;
background-color: #F9F6E7;
border: 1px solid #D4BC4C;
}
#system_msg {
z-index: 5000;
left: 0px;
top: 0px;
display: none;
-moz-border-radius: 0px 0px 6px;
border-radius: 0px 0px 6px;
padding: 7px 10px;
}
#bad_browser {
border-bottom: 1px solid #B8C7D3;
background-color: #F2F4FF;
}
#bad_browser .info {
padding: 8px;
text-align: center;
line-height: 150%;
}
#bad_browser #good_browsers {
display: none;
}
#bad_browser #good_browsers div {
width: 400px;
height: 100px;
margin: 10px auto 0px;
}
#bad_browser #good_browsers a {
width: 100px;
height: 20px;
padding-top: 80px;
}
/* qsearch section */
#qsearch_link {
margin-top: 9px;
padding: 3px 15px 7px 15px;
}
#qsearch_link.active {
background-color: #5B7DA4;
border: 1px solid #3E5F84;
text-decoration: none;
padding: 2px 14px 6px 14px;
}
#qsearch_link.active:hover {
text-decoration: none;
}
#quick_search {
display: none;
margin-top: 9px;
width: 241px;
overflow: hidden;
overflow-y: visible;
}
#search_cont {
background-color: #FFFFFF;
width: 240px;
border: 1px solid #3E5F84;
border-left: 0;
height: 19px;
}
#search_input {
border: 0px none white;
font-size: 11px;
height: 13px;
outline: none;
overflow: hidden;
padding: 3px 0px 3px 10px;
}
#search_input {
width: 229px;
}
#quick_search .input_back {
padding-top: 2px !important;
line-height: 13px;
}
#search_sub_menu div.s_photo {
width: 50px;
height: 50px;
overflow: hidden;
margin: 0px 10px 0px 0px;
line-height: 22px;
}
#search_sub_menu div.s_photo img {
width: 50px;
vertical-align: middle;
}
#search_sub_menu a.i_note div.s_photo,
#search_sub_menu a.i_group div.s_photo,
#search_sub_menu a.i_public div.s_photo,
#search_sub_menu a.i_event div.s_photo,
#search_sub_menu a.i_audio div.s_photo,
#search_sub_menu a.i_app div.s_photo,
#search_sub_menu a.i_ad div.s_photo {
background-image: url(/images/icons/qsearch_hints.gif?1);
}
#search_sub_menu a.i_audio div.s_photo { background-position: 0 0; }
#search_sub_menu a.i_app div.s_photo { background-position: 0 -50px; }
#search_sub_menu a.i_event div.s_photo { background-position: 0 -100px; }
#search_sub_menu a.i_group div.s_photo { background-position: 0 -150px; }
#search_sub_menu a.i_ad div.s_photo { background-position: 0 -200px; }
#search_sub_menu a.i_note div.s_photo { background-position: 0 -300px; }
#search_sub_menu div.s_title {
cursor: pointer;
height: 42px;
margin-top: 4px;
width: 540px;
overflow: hidden;
}
#search_sub_menu div.s_title span {
background-color: #FFF8CC;
border-bottom: 1px solid #FFE222;
padding: 0 1px;
}
#search_sub_menu a.sub_item:hover, #search_sub_menu a.sub_item_over:hover, #search_sub_menu a.sub_item_next_over:hover {
text-decoration: none;
}
#search_sub_menu .s_title {
color: #2B587A;
font-weight: bold;
}
#search_sub_menu .s_title div {
color: #000;
font-weight: normal;
padding-top: 4px;
}
#search_sub_menu .sub_item {
background-color: #FFFFFF;
border-top: 1px solid #E1E9EF;
color: #000000;
display: block;
padding: 4px 12px 4px 6px;
}
#search_sub_menu a.sub_item {
border-bottom: 1px solid #FFFFFF;
height: 50px;
padding: 6px 12px;
vertical-align: middle;
}
#search_sub_menu a.sub_item.over {
background-color: #EDF1F5;
border-bottom: 1px solid #EDF1F5;
text-decoration: none;
}
#search_sub_menu a.s_search_by {
font-weight: bold;
border-bottom: 1px solid #F7F7F7;
background-color:#F7F7F7;
height: 27px;
}
#search_sub_menu .s_search_by .s_title {
color: #2B587A;
margin-top: 7px;
}
.tabs {
background: #F7F7F7;
padding: 8px;
}
.tabs .outer {
}
.tabs .tab a {
display: inline-block;
}
.tabs .tab a:hover {
text-decoration: none;
}
.tabs .tab {
display: inline-block;
margin-right: 12px;
padding: 2px;
}
.tabs .tab.selected {
border-bottom: 1px solid #FFFFFF;
padding: 0px;
}
.tabs .tab b {
padding: 2px 5px 2px 5px;
display: inline-block;
}
.tabs .tab.selected a {
border-top: 1px solid #395676;
border-right: 1px solid #3b6798;
border-bottom: 1px solid #4a73a0;
border-left: 1px solid #3b6798;
color: #FFFFFF;
}
.tabs .tab.selected b {
border: 1px solid #5C82AB;
background: #6D8FB3;
}
.no_select {
user-select: none;
-o-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
}
.select_fix {
user-select: text;
-o-user-select: text;
-moz-user-select: text;
-khtml-user-select: text;
}
.input_back_wrap {
position: relative;
z-index: 90;
}
.input_back {
position:absolute;
color:#777;
background-color:#FFF;
z-index: 90;
}
.choose_box .input_back {
margin: 9px 4px 0px;
}
.input_back div {
padding:0px 1px 0;
white-space: nowrap;
}
.sort_blank {
border: 1px dashed #D8DFEA;
}
.divider {
color: #777;
font-weight: normal;
padding:0px 5px;
}
small.divider {
padding:0px 2px;
}
.unshown {
display: none;
}
.hidden {
visibility: hidden;
}
#global_prg {
position: absolute;
z-index: 400;
}
/* Tabs */
.tabs.t_bar {
background: #FFF;
}
.t_bar {
padding: 11px 10px 0px;
border-bottom: solid 1px #597DA3;
}
ul.t0 {
width: 605px;
}
ul.t0, ul.t0 li {
list-style-type: none;
margin: 0;
padding: 0;
}
ul.t0 li {
float: left;
text-align: center;
}
ul.t0 li.active_link a, ul.t0 li.active_link a:hover {
background: #597DA3;
color: #FFFFFF;
}
ul.t0 li a:hover {
background: #E1E7ED;
color: #2B587A;
text-decoration: none;
}
ul.t0 a {
float: left;
padding: 0 0 5px 0;
margin-right: 5px;
text-decoration: none;
background-color: #FFF;
}
ul.t0 .tab_word {
margin: 5px 10px 0px 10px;
font-weight: normal;
}
ul.t0 .t_r {
float: right;
padding: 5px 0 0;
}
ul.t0 .t_r a {
margin:0;
}
ul.t0 .t_r a:hover {
text-decoration: underline;
background:#FFFFFF;
}
.tl1, .tl2 {
display: block;
height: 1px;
background-color: #FFF;
overflow: hidden;
margin: 0px;
border: 1px solid #FFF;
border-width: 0px 2px;
}
.tl2 {
margin-bottom: 3px;
border-width: 0px 1px;
}
ul.t0 li a:hover b.tl1, ul.t0 li a:hover b.tl2 {
background-color: #E1E7ED;
}
ul.t0 li.active_link a b.tl1, ul.t0 li.active_link a:hover b.tl1 {
background-color: #597DA3;
border-width: 0px 1px;
}
ul.t0 li.active_link a b.tl1 b, ul.t0 li.active_link a:hover b.tl1 b {
display: block;
height: 1px;
background: #597DA3;
overflow: hidden;
margin: 0px;
border: 1px solid #9AB1C6;
border-width: 0px 1px;
}
ul.t0 li.active_link a b.tl2, ul.t0 li.active_link a:hover b.tl2 {
background-color: #597DA3;
border-color: #9AB1C6;
}
#flash_audio {
height: 0px;
top: 5px;
}
.audio .play_new {
cursor: pointer;
width: 20px;
height: 16px;
background: url(/images/playpause.gif) no-repeat 0px 0px;
}
.side_filter {
border: 1px solid #F7F7F7;
color: #2B587A;
cursor: pointer;
padding: 4px 5px 4px 9px;
background-color: #F7F7F7;
background-repeat: no-repeat;
width: 120px;
}
.side_filter_over {
border: 1px solid #DAE1E8;
color: #2B587A;
background-color: #DAE1E8;
}
.side_filter.cur_section {
background-color: #6D8FB3;
border: 1px solid #3B6798;
color: #FFFFFF;
}
.side_filter.loading {
background-image: url(/images/upload_inv_mini.gif);
background-position: 110px center;
background-repeat: no-repeat;
}
#gp {
display: none;
height: 36px;
z-index: 500;
cursor: default;
}
#gp div#gp_large {
display: none;
}
#gp div#gp_back{
position: absolute;
top: 0px;
left: 0px;
height: 36px;
border-top-left-radius: 3px; /* css3 */
border-top-right-radius: 3px;
-moz-border-radius-topleft: 3px; /* firefox */
-moz-border-radius-topright: 3px;
-webkit-border-radius-topleft: 3px; /* Safari, Chrome */
-webkit-border-radius-topright: 3px;
-khtml-border-radius-topleft: 3px; /* khtml */
-khtml-border-radius-topright: 3px;
overflow: hidden;
background-color: #000;
opacity: 0.7;
filter: alpha(opacity=70);
}
#gp div.wrap {
position: relative;
width: 100%;
height: 36px;
}
#gp div#gp_wrap {
position: absolute;
top: 0px;
left: 0px;
color: #FFF;
height: 36px;
z-index: 501;
width: 100%;
}
#gp .audio .gp_play_wrap {
padding: 3px;
cursor: pointer;
}
#gp .audio .gp_play {
background: url("/images/playback_icons.gif") no-repeat scroll 0 0 transparent;
height: 10px;
width: 10px;
}
#gp #gp_audio_info_large,
#gp #gp_audio_info_small {
padding: 5px 0px 2px;
}
#gp #gp_play_btn_large,
#gp #gp_play_btn_small {
padding: 10px 5px 10px 7px;
width: 10px;
}
#gp div.title_wrap {
width: 125px;
overflow: hidden;
white-space: nowrap;
line-height: 13px;
position: relative;
}
#gp #player_global {
width: 100%;
padding-top: 7px;
}
#gp #gp_audio_info_large {
width: 330px;
}
#gp #gp_vol {
padding: 23px 0px 0px 20px;
}
*:first-child+html #gp #gp_vol_line {
position: relative;
top: -13px;
}
#gp .duration {
color: #FFF;
padding: 1px 0px 0px 0px;
position: absolute;
}
#gp #audio_white_line_global,
#gp #audio_vol_back_global {
background-color: auto;
}
#gp .audio .player_wrap {
margin: -1px 0px 0px;
padding: 0px;
float: left;
width: 100%
}
#gp .gp_controls {
padding: 13px 0px 13px 12px;
}
#gp .close {
vertical-align: top;
padding: 1px 1px 1px 0px;
}
#gp #gp_close {
background: url("/images/playback_icons.gif") no-repeat scroll 0 -55px transparent;
width: 5px;
height: 5px;
}
#gp #gp_close_wrap {
cursor: pointer;
padding: 2px;
}
#gp .gp_controls div {
background: url("/images/playback_icons.gif") no-repeat scroll 0 0 transparent;
height: 11px;
width: 13px;
margin: 0px 4px;
float: left;
cursor: pointer;
opacity: 0.7;
filter: alpha(opacity=70);
}
#gp .gp_controls div.prev {
background-position: 0 -22px;
margin-right: 5px;
}
#gp .gp_controls div.next {
background-position: 0 -33px;
}
#gp .gp_controls div.repeat{
background-position: 0 -44px;
}
#gp .gp_controls div.repeat.on{
background-position: 0 -44px;
opacity: 1;
filter: alpha(opacity=100);
}
#gp .audio_load_line,
#gp .audio_progress_line,
#gp .audio_pr_slider,
#gp .audio_volume_line,
#gp .audio_vol_slider {
background-color: #FFF;
}
var navMap = {'<void>':['al_index.php',['index.js']],'<other>':['al_profile.php',['profile.css','page.css','profile.js','page.js']],'public\\d+($|/)':['al_public.php',['public.css','page.css','public.js','page.js']],'event\\d+($|/)':['al_events.php',['events.css','page.css','events.js','page.js']],'club\\d+($|/)':['al_groups.php',['groups.css','page.css','groups.js','page.js']],'publics\\d+($|/)':['al_public.php',['public.css','page.css','public.js','page.js']],'changemail$':['register.php',['reg.css']],'mail($|/)':['al_mail.php',['mail.css','mail.js']],'im($|/)':['al_im.php',['im.css','im.js']],'audio($|/)':['al_audio.php',['audio.css','audio.js']],'apps($|/)':['al_apps.php',['apps.css','apps.js']],'regstep\\d$':['register.php',['reg.js','reg.css','ui_controls.js','ui_controls.css','selects.js']],'video(-?\\d+_\\d+)?$':['al_video.php',['video.js','video.css','videoview.js','videoview.css','indexer.js']],'videos(-?\\d+)?$':['al_video.php',['video.js','video.css','indexer.js']],'feed$':['al_feed.php',['page.css','page.js','feed.css','feed.js']],'friends$':['al_friends.php',['friends.js','friends.css','privacy.css']],'friendsphotos$':['al_photos.php',['friendsphotos.js','photoview.js','friendsphotos.css','photoview.css']],'wall-?\\d+(_\\d+)?$':['al_wall.php',['page.js','page.css','wall.js','wall.css']],'tag\\d+$':['al_photos.php',['photos.js','photoview.js','photos.css','photoview.css']],'albums-?\\d+$':['al_photos.php',['photos.js','photos.css']],'photos-?\\d+$':['al_photos.php',['photos.js','photos.css']],'album-?\\d+_\\d+$':['al_photos.php',['photos.js','photos.css']],'photo-?\\d+_\\d+$':['al_photos.php',['photos.js','photos.css','photoview.js','photoview.css']],'search$':['al_search.php',['search.css','search.js']],'invite$':['invite.php',['invite.css','invite.js','ui_controls.css','ui_controls.js']],'note\\d+_\\d+$':['al_notes.php',['notes.js','notes.css','player.js','wiki.css']],'notes(\\d+)?$':['al_notes.php',['notes.js','notes.css','player.js','wiki.css']],'settings$':['al_settings.php',['settings.js','settings.css']]}; var stVersions = { 'nav': 2438, 'common.js': 283, 'common.css': 120, 'uncommon.js': 6, 'uncommon.css': 7, 'ie6.css': 18, 'ie7.css': 12, 'rtl.css': 34, 'html5audio.js': 3, 'html5video.js': 3, 'new_player.js': 16, 'new_player.css': 10, 'audio_html5.js': 3, 'audio.js': 23, 'audio_edit.js': 5, 'audio.css': 15, 'indexer.js': 2, 'boxes.css': 10, 'rate.css': 2, 'tooltips.js': 20, 'tooltips.css': 10, 'player.js': 55, 'sorter.js': 8, 'qsorter.js': 6, 'photoview.css': 35, 'photoview.js': 64, 'friendsphotos.css': 13, 'friendsphotos.js': 8, 'friends.js': 59, 'friends.css': 62, 'photos.css': 16, 'photos.js': 17, 'video.js': 48, 'video.css': 45, 'videoview.js': 51, 'videoview.css': 46, 'video_edit.js': 16, 'video_edit.css': 9, 'translation.js': 5, 'reg.css': 23, 'reg.js': 43, 'invite.css': 7, 'invite.js': 5, 'prereg.js': 12, 'index.css': 4, 'index.js': 10, 'page.css': 79, 'page.js': 79, 'public.css': 21, 'public.js': 18, 'events.css': 16, 'events.js': 15, 'groups.css': 12, 'groups.js': 6, 'groups_edit.js': 6, 'profile.css': 59, 'profile.js': 61, 'wk.css': 5, 'wk.js': 5, 'pay.css': 2, 'pay.js': 3, 'tagger.js': 3, 'tagger.css': 3, 'qsearch.js': 9, 'wall.css': 8, 'wall.js': 8, 'mail.css': 30, 'mail.js': 33, 'im.css': 28, 'im.js': 32, 'feed.js': 61, 'feed.css': 35, 'privacy.js': 14, 'privacy.css': 10, 'apps.js': 27, 'apps.css': 18, 'apps_edit.js': 4, 'apps_edit.css': 4, 'settings.js': 7, 'settings.css': 7, 'search.js': 25, 'search.css': 14, 'datepicker.js': 2, 'datepicker.css': 1, 'oauth_popup.css': 1, 'notes.css': 7, 'notes.js': 6, 'wysiwyg.js': 5, 'wysiwyg.css': 2, 'wiki.css': 2, 'ui_controls.js': 98, 'ui_controls.css': 23, 'selects.js': 15, 'mentions.js': 29, 'apps_flash.js': 49, 'maps.js': 3, '/swf/api_wrapper.swf': 18, '/swf/api_external.swf': 18, '/swf/api_wrapper2_0.swf': 1, '/swf/VideoPlayer3_4.swf': 6, 'lang': 3067}; var stTypes = {fromLib:{'md5.js':1,'ui_controls.js':1,'selects.js':1,'sort.js':1,'maps.js':1},fromRoot:{'apps_flash.js':1,'mentions.js':1,'map2.js':1,'ui_controls.css':1,'map.css':1,'places.css':1}};
if (vk.al == 1) {
if (location['search'] || location.pathname != '/') {
location.replace('/');
}
} else {
if (!location['search'] && location.pathname == '/index.php') {
location.replace('/');
}
vk.version = false;
}
window.__debugMode = true; // Don't turn it off
var cur = {destroy: [], nav: []}; // Current page variables and navigation map.
var _ua = navigator.userAgent.toLowerCase();
var browser = {
version: (_ua.match( /.+(?:me|ox|on|rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
opera: /opera/i.test(_ua),
msie: (/msie/i.test(_ua) && !/opera/i.test(_ua)),
msie6: (/msie 6/i.test(_ua) && !/opera/i.test(_ua)),
msie7: (/msie 7/i.test(_ua) && !/opera/i.test(_ua)),
msie8: (/msie 8/i.test(_ua) && !/opera/i.test(_ua)),
msie9: (/msie 9/i.test(_ua) && !/opera/i.test(_ua)),
mozilla: /firefox/i.test(_ua),
chrome: /chrome/i.test(_ua),
safari: (!(/chrome/i.test(_ua)) && /webkit|safari|khtml/i.test(_ua)),
iphone: /iphone/i.test(_ua),
ipod: /ipod/i.test(_ua),
iphone4: /iphone.*OS 4/i.test(_ua),
ipod4: /ipod.*OS 4/i.test(_ua),
ipad: /ipad/i.test(_ua),
safari_mobile: /iphone|ipod|ipad/i.test(_ua),
opera_mobile: /opera mini|opera mobi/i.test(_ua),
mobile: /iphone|ipod|ipad|opera mini|opera mobi/i.test(_ua)
};
(function() {
var flash = [0, 0, 0], axon = 'ShockwaveFlash.ShockwaveFlash';
var wrapType = 'embed', wrapParam = 'type="application/x-shockwave-flash" ';
var escapeAttr = function(v) {
return v.toString().replace('&', '&').replace('"', '"');
}
if (navigator.plugins && navigator.mimeTypes.length) {
var x = navigator.plugins['Shockwave Flash'];
if (x && x.description) {
var ver = x.description.replace(/([a-zA-Z]|\s)+/, '').replace(/(\s+r|\s+b[0-9]+)/, '.').split('.');
for (var i = 0; i < 3; ++i) flash[i] = ver[i] || 0;
}
} else {
if (_ua.indexOf('Windows CE') >= 0) {
var axo = true, ver = 6;
while (axo) {
try {
++ver;
axo = new ActiveXObject(axon + '.' + ver);
flash[0] = ver;
} catch(e) {}
}
} else {
try {
var axo = new ActiveXObject(axon + '.7');
flash = axo.GetVariable('$version').split(' ')[1].split(',');
} catch (e) {}
}
wrapType = 'object';
wrapParam = 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
}
browser.flashwrap = (wrapType == 'embed') ? function(opts, params) {
params = extend({
id: opts.id,
name: opts.id,
width: opts.width,
height: opts.height,
style: opts.style,
preventhide: opts.preventhide
}, params);
if (browser.flash >= opts.version) {
params.src = opts.url;
} else {
params.src = opts.express;
}
var paramsStr = [];
for (var i in params) {
var p = params[i];
if (p !== undefined && p !== null) {
paramsStr.push(i + '="' + escapeAttr(p) + '" ');
}
}
return '<embed ' + wrapParam + paramsStr.join('') + '/>';
} : function(opts, params) {
if (browser.flash >= opts.version) {
params.movie = opts.url;
} else {
params.movie = opts.express;
}
var attr = {
id: opts.id,
width: opts.width,
height: opts.height,
style: opts.style,
preventhide: opts.preventhide
}
var attrStr = [];
for (var i in attr) {
var p = attr[i];
if (p !== undefined && p !== null) {
attrStr.push(i + '="' + escapeAttr(p) + '" ');
}
}
var paramsStr = [];
for (var i in params) {
var p = params[i];
if (p !== undefined && p !== null) {
paramsStr.push('<param name="' + i + '" value="' + escapeAttr(p) + '" />');
}
}
return '<object ' + wrapParam + attrStr.join('') +'>' + paramsStr.join('') + '</object>';
}
if (flash[0] < 7) flash = [0, 0, 0];
browser.flash = intval(flash[0]);
browser.flashfull = {
major: browser.flash,
minor: intval(flash[1]),
rev: intval(flash[2])
}
})();
if (!browser.msie6) {
delete StaticFiles['ie6.css'];
}
if (!browser.msie7) {
delete StaticFiles['ie7.css'];
}
for (var i in StaticFiles) {
var f = StaticFiles[i];
f.t = (i.indexOf('.css') != -1) ? 'css' : 'js';
f.n = i.replace(/[\\/\\.]/g, '_');
f.l = 0;
f.c = 0;
}
window.locHost = location.host;
window.__dev = /[a-z0-9_\-]+\.[a-z0-9_\-]+\.[a-z0-9_\-]+\.[a-z0-9_\-]+/i.test(locHost);
if (!__dev) __debugMode = false;
window.locHash = location.hash.replace('#/', '').replace('#!', '');
window.locDomain = locHost.toString().match(/[a-zA-Z]+\.[a-zA-Z]+\.?$/)[0];
window.locBase = location.toString().replace(/#.+$/, '');
if (!browser.msie6 || document.domain != locDomain) document.domain = locDomain;
function topMsg(text, seconds, color) {
if (!color) color = '#D6E5F7';
if (!text) {
hide('system_msg');
} else {
clearTimeout(window.topMsgTimer);
var el = ge('system_msg');
el.style.backgroundColor = color;
el.innerHTML = text;
show(el);
if (seconds) {
window.topMsgTimer = setTimeout(topMsg.pbind(false), seconds * 1000);
}
}
}
function topError(text, seconds) {
if (text.message) {
var e = text;
text = '<b>JavaScript error:</b> ' + e.message;
if (e.stack && __debugMode) text += '<br/>' + e.stack.replace(/\n/g, '<br/>');
}
topMsg(text, seconds, '#FFB4A3');
}
function langNumeric(count, vars, formatNum) {
if (!vars || !window.langConfig) { return count; }
var res;
if (!isArray(vars)) {
result = vars;
} else {
res = vars[1];
if(count != Math.floor(count)) {
res = vars[langConfig.numRules['float']];
} else {
each(langConfig.numRules['int'], function(i,v){
if (v[0] == '*') { res = vars[v[2]]; return false; }
var c = v[0] ? count % v[0] : count;
if(indexOf(v[1], c) != -1) { res = vars[v[2]]; return false; }
});
}
}
if (formatNum) {
var n = count.toString().split('.'), c = [];
for(var i = n[0].length - 3; i > -3; i -= 3) {
c.unshift(n[0].slice(i > 0 ? i : 0, i + 3));
}
n[0] = c.join(langConfig.numDel);
count = n.join(langConfig.numDec);
}
res = (res || '%s').replace('%s', count);
return res;
}
function langSex(sex, vars) {
if (!isArray(vars)) return vars;
var res = vars[1];
if (!window.langConfig) return res;
each(langConfig.sexRules, function(i,v){
if (v[0] == '*') { res = vars[v[1]]; return false; }
if (sex == v[0] && vars[v[1]]) { res = vars[v[1]]; return false; }
});
return res;
}
function getLang() {
try {
var args = Array.prototype.slice.call(arguments);
var key = args.shift();
if (!key) return '...';
var val = (window.cur.lang && window.cur.lang[key]) || (window.lang && window.lang[key]) || (window.langpack && window.langpack[key]) || window[key];
if (!val) {
var res = key.split('_');
res.shift();
return res.join(' ');
}
if (isFunction(val)) {
return val.apply(null, args);
} else if (isArray(val)) {
return langNumeric(args[0], val);
} else {
return val;
}
} catch(e) {
debugLog('lang error:' + e.message + '(' + Array.prototype.slice.call(arguments).join(', ') + ')');
}
}
// Debug Log
var _logTimer = (new Date()).getTime();
function debugLog(msg){
try {
var t = '[' + (((new Date()).getTime() - _logTimer) / 1000) + '] ';
if (ge('debuglog')) {
if (msg === null) {
msg = '[NULL]';
} else if (msg === undefined) {
msg = '[UNDEFINED]';
}
ge('debuglog').innerHTML += t + msg.toString().replace('<', '<').replace('>', '>')+'<br/>';
}
if (window.console && console.log) {
Array.prototype.unshift.call(arguments, t);
console.log.apply(console, arguments);
}
} catch (e) {
}
}
// DOM
function ge(el) {
return (typeof el == 'string' || typeof el == 'number') ? document.getElementById(el) : el;
}
function geByTag(searchTag, node) {
return (node || document).getElementsByTagName(searchTag);
}
function geByTag1(searchTag, node) {
return geByTag(searchTag, node)[0];
}
function geByClass(searchClass, node, tag) {
var classElements = new Array();
if (node == null) {
node = document;
}
if (tag == null) {
tag = '*';
}
if (node.getElementsByClassName) {
classElements = node.getElementsByClassName(searchClass);
if (tag != '*') {
for (i = 0; i < classElements.length; ++i) {
if (classElements.nodeName == tag) {
classElements.splice(i, 1);
}
}
}
return classElements;
}
var els = geByTag(tag, node);
var elsLen = els.length;
var pattern = new RegExp('(^|\\s)' + searchClass + '(\\s|$)');
for (i = 0, j = 0; i < elsLen; ++i) {
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
++j;
}
}
return classElements;
}
function geByClass1(searchClass, node, tag) {
return geByClass(searchClass, node, tag)[0];
}
function ce(tagName, attr, style) {
var el = document.createElement(tagName);
if (attr) extend(el, attr);
if (style) setStyle(el, style);
return el;
}
function show(elem) {
if (arguments.length > 1) {
for (var i = 0; i < arguments.length; ++i) {
show(arguments[i]);
}
return;
}
elem = ge(elem);
if (!elem || !elem.style) return;
var old = elem.olddisplay, newStyle = 'block', tag = elem.tagName.toLowerCase();
elem.style.display = old || '';
if (getStyle(elem, 'display') == 'none') {
if (hasClass(elem, 'inline')) {
newStyle = 'inline';
} else if (tag == 'tr' && !browser.msie) {
newStyle = 'table-row';
} else if (tag == 'table' && !browser.msie) {
newStyle = 'table';
} else {
newStyle = 'block';
}
elem.style.display = elem.olddisplay = newStyle;
}
}
function hide(elem) {
if (arguments.length > 1) {
for (var i = 0; i < arguments.length; i++) {
hide(arguments[i]);
}
return;
}
elem = ge(elem);
if (!elem || !elem.style) return;
var d = getStyle(elem, 'display');
elem.olddisplay = (d != 'none') ? d : '';
elem.style.display = 'none';
}
function isVisible(elem) {
elem = ge(elem);
if (!elem || !elem.style) return false;
return getStyle(elem, 'display') != 'none';
}
function toggle(elem, val) {
if (val === undefined) {
val = !isVisible(elem);
}
if (val) {
show(elem);
} else {
hide(elem);
}
}
var hfTimeout = 0;
function toggleFlash(show, timeout) {
//if (/mac/i.test(navigator.userAgent)) return;
clearTimeout(hfTimeout);
if (timeout > 0) {
hfTimeout = setTimeout(function() {toggleFlash(show, 0)}, timeout);
return;
}
var vis = show ? 'visible' : 'hidden';
var f = function() {
if (this.getAttribute('preventhide')) {
return;
} else if (this.id == 'app_container' && browser.msie) {
show ? setStyle(this, {position: 'static', top: 0}) : setStyle(this, {position: 'absolute', top: '-5000px'});
} else {
this.style.visibility = vis;
}
};
each(geByTag('embed'), f);
each(geByTag('object'), f);
if (window.bnr1 && bnr1.el && bnr1.el.style) {
bnr1.el.style.visibility = bnr2.el.style.visibility = vis;
}
}
function getXY(obj) {
if (!obj || obj == undefined) return;
var left = 0, top = 0;
if (obj.offsetParent) {
do {
left += obj.offsetLeft;
top += obj.offsetTop;
var pos = getStyle(obj, 'position');
if (pos == 'fixed' || pos == 'absolute' || (pos == 'relative' && obj.id == 'page_wrap')) {
left -= obj.scrollLeft;
top -= obj.scrollTop;
if (pos == 'fixed') {
left += ((obj.offsetParent || {}).scrollLeft || bodyNode.scrollLeft || htmlNode.scrollLeft);
top += ((obj.offsetParent || {}).scrollTop || bodyNode.scrollTop || htmlNode.scrollTop);
}
}
} while (obj = obj.offsetParent);
}
return [left,top];
}
function getSize(elem, withoutBounds) {
var s = [0, 0], de = document.documentElement;
if (elem == document) {
s = [Math.max(
de.clientWidth,
bodyNode.scrollWidth, de.scrollWidth,
bodyNode.offsetWidth, de.offsetWidth
), Math.max(
de.clientHeight,
bodyNode.scrollHeight, de.scrollHeight,
bodyNode.offsetHeight, de.offsetHeight
)];
} else if (elem){
function getWH() {
s = [elem.offsetWidth, elem.offsetHeight];
if (!withoutBounds) return;
var padding = 0, border = 0;
each(s, function(i, v) {
var which = i ? ['Top', 'Bottom'] : ['Left', 'Right'];
each(which, function(){
s[i] -= parseFloat(getStyle(elem, 'padding' + this)) || 0;
s[i] -= parseFloat(getStyle(elem, 'border' + this + 'Width')) || 0;
});
});
s = [Math.round(s[0]), Math.round(s[1])];
}
if (!isVisible(elem)) {
var props = {position: 'absolute', visibility: 'hidden', display: 'block'};
var old = {};
each(props, function(i, val){
old[i] = elem.style[i];
elem.style[i] = val;
});
getWH();
each(props, function(i, val){
elem.style[i] = old[i];
});
} else getWH();
}
return s;
}
/**
* Useful utils
*/
Function.prototype.pbind = function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(window);
return this.bind.apply(this, args);
};
Function.prototype.bind = function() {
var func = this, args = Array.prototype.slice.call(arguments);
var obj = args.shift();
return function() {
var curArgs = Array.prototype.slice.call(arguments);
return func.apply(obj, args.concat(curArgs));
}
}
function rand(mi, ma) { return Math.random() * (ma - mi + 1) + mi; }
function irand(mi, ma) { return Math.floor(rand(mi, ma)); }
function isFunction(obj) {return Object.prototype.toString.call(obj) === '[object Function]'; }
function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; }
function isEmpty(o) { if(Object.prototype.toString.call(o) !== '[object Object]') {return false;} for(var i in o){ if(o.hasOwnProperty(i)){return false;} } return true; }
function vkNow() { return +new Date; }
function trim(text) { return (text || '').replace(/^\s+|\s+$/g, ''); }
function stripHTML(text) { return text ? text.replace(/<(?:.|\s)*?>/g, '') : ''; }
function escapeRE(s) { return s ? s.replace(/[.*+?^${}()|[\]\/\\]/g, '\\$0') : ''; }
function intval(value) {
if (value === true) return 1;
return parseInt(value) || 0;
}
function floatval(value) {
if (value === true) return 1;
return parseFloat(value) || 0;
}
function positive(value) {
value = intval(value);
return value < 0 ? 0 : value;
}
function winToUtf(text) {
var m, i, j, code;
m = text.match(/&#[0-9]{2}[0-9]*;/gi);
for (j in m) {
var val = '' + m[j]; // buggy IE6
code = intval(val.substr(2, val.length - 3));
if (code >= 32 && ('&#' + code + ';' == val)) { // buggy IE6
text = text.replace(val, String.fromCharCode(code));
}
}
text = text.replace(/"/gi, '"').replace(/&/gi, '&').replace(/</gi, '<').replace(/>/gi, '>');
return text;
}
/**
* Arrays, objects
**/
function each(object, callback) {
var name, i = 0, length = object.length;
if (length === undefined) {
for (name in object)
if (callback.call(object[name], name, object[name]) === false)
break;
} else {
for (var value = object[0];
i < length && callback.call(value, i, value) !== false;
value = object[++i]) {}
}
return object;
}
function indexOf(arr, value, from) {
for (var i = from || 0; i < arr.length; i++) {
if (arr[i] == value) return i;
}
return -1;
}
function inArray(value, arr) {
return indexOf(arr, value) != -1;
}
function clone(obj) {
var newObj = isArray(obj) ? [] : {};
for (var i in obj) {
newObj[i] = obj[i];
}
return newObj;
}
// Extending object by another
function extend() {
var a = arguments, target = a[0] || {}, i = 1, length = a.length, deep = false, options;
if (typeof target === 'boolean') {
deep = target;
target = a[1] || {};
i = 2;
}
if (typeof target !== 'object' && !isFunction(target)) target = {};
if (length == i) return target;
for (; i < length; i++) {
if ((options = a[i]) != null) {
for (var name in options) {
var src = target[name], copy = options[name];
if (target === copy) continue;
if (deep && copy && typeof copy === 'object' && !copy.nodeType) {
target[name] = extend(deep, src || (copy.length != null ? [] : {}), copy);
} else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
/**
* CSS classes
**/
function hasClass(obj, name) {
obj = ge(obj);
return obj && (new RegExp('(\\s|^)' + name + '(\\s|$)')).test(obj.className);
}
function addClass(obj, name) {
if (obj && !hasClass(obj, name)) obj.className = (obj.className ? obj.className + ' ' : '') + name;
}
function removeClass(obj, name) {
if (obj = ge(obj)) {
obj.className = trim((obj.className || '').replace((new RegExp('(\\s|^)' + name + '(\\s|$)')), ' '));
}
}
function replaceClass(obj, oldName, newName) {
removeClass(obj, oldName);
addClass(obj, newName);
}
// Get computed style
function getStyle(elem, name, force) {
elem = ge(elem);
if (isArray(name)) { var res = {}; each(name, function(i,v){res[v] = getStyle(elem, v);}); return res; }
if (force === undefined) {
force = true;
}
if (!force && name == 'opacity' && browser.msie) {
var filter = elem.style['filter'];
return filter ? (filter.indexOf('opacity=') >= 0 ?
(parseFloat(filter.match(/opacity=([^)]*)/)[1] ) / 100) + '' : '1') : '';
}
if (!force && elem.style && (elem.style[name] || name == 'height')) {
return elem.style[name];
}
if (force && (name == 'width' || name == 'height')) {
return getSize(elem, true)[({'width': 0, 'height': 1})[name]] + 'px';
}
var ret, defaultView = document.defaultView || window;
if (defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g, '-$1').toLowerCase();
var computedStyle = defaultView.getComputedStyle(elem, null);
if (computedStyle) {
ret = computedStyle.getPropertyValue(name);
}
} else if (elem.currentStyle) {
if (name == 'opacity' && browser.msie) {
var filter = elem.currentStyle['filter'];
return filter && filter.indexOf('opacity=') >= 0 ?
(parseFloat(filter.match(/opacity=([^)]*)/)[1]) / 100) + '' : '1';
}
var camelCase = name.replace(/\-(\w)/g, function(all, letter){
return letter.toUpperCase();
});
ret = elem.currentStyle[name] || elem.currentStyle[camelCase];
//dummy fix for ie
if (ret == 'auto') {
ret = 0;
}
if (!/^\d+(px)?$/i.test(ret) && /^\d/.test(ret)) {
var style = elem.style, left = style.left, rsLeft = elem.runtimeStyle.left;
elem.runtimeStyle.left = elem.currentStyle.left;
style.left = ret || 0;
ret = style.pixelLeft + 'px';
style.left = left;
elem.runtimeStyle.left = rsLeft;
}
}
return ret;
}
function setStyle(elem, name, value){
elem = ge(elem);
if (!elem) return;
if (typeof name == 'object') return each(name, function(k, v) { setStyle(elem,k,v); });
if (name == 'opacity') {
if (browser.msie) {
if ((value + '').length) {
elem.style.filter = 'alpha(opacity=' + value * 100 + ')';
} else {
elem.style.filter = '';
}
elem.style.zoom = 1;
};
elem.style.opacity = value;
} else {
try{
var isN = typeof(value) == 'number';
if (isN && (/height|width/i).test(name)) value = Math.abs(value);
elem.style[name] = isN && !(/z-?index|font-?weight|opacity|zoom|line-?height/i).test(name) ? value + 'px' : value;
} catch(e){debugLog([name, value]);}
}
}
/**
* Store data connected to element
**/
var vkExpand = 'VK' + vkNow(), vkUUID = 0, vkCache = {};
function data(elem, name, data) {
var id = elem[vkExpand], undefined;
if (!id) {
id = elem[vkExpand] = ++vkUUID;
}
if (name && !vkCache[id]) {
vkCache[id] = {};
if (__debugMode) vkCache[id].__elem = elem;
}
if (data !== undefined) {
vkCache[id][name] = data;
}
return name ? vkCache[id][name] : id;
}
function removeAttr(el) {
for (var i = 0; i < arguments.length; ++i) {
var n = arguments[i];
if (el[n] === undefined) continue;
try {
delete el[n];
} catch(e) {
try {
el.removeAttribute(n);
} catch(e) {}
}
}
}
function removeData(elem, name) {
var id = elem ? elem[vkExpand] : false;
if (!id) return;
if (name) {
if (vkCache[id]) {
delete vkCache[id][name];
name = '';
for (name in vkCache[id]) {
break;
}
if (!name) {
removeData(elem);
}
}
} else {
removeEvent(elem);
removeAttr(elem, vkExpand);
delete vkCache[id];
}
}
function cleanElems() {
var a = arguments;
for (var i = 0; i < a.length; ++i) {
var el = ge(a[i]);
if (el) {
removeData(el);
removeAttr(el, 'btnevents');
}
}
}
// Simple FX
function animate(el, params, speed, callback) {
el = ge(el);
if (!el) return;
var _cb = isFunction(callback) ? callback : function() {};
var options = extend({}, typeof speed == 'object' ? speed : {duration: speed, onComplete: _cb});
var fromArr = {}, toArr = {}, visible = isVisible(el), self = this, p;
options.orig = {};
params = clone(params);
if (browser.iphone)
options.duration = 0;
var tween = data(el, 'tween'), i, name, toggleAct = visible ? 'hide' : 'show';
if (tween && tween.isTweening) {
options.orig = extend(options.orig, tween.options.orig);
tween.stop(false);
if (tween.options.show) toggleAct = 'hide';
else if (tween.options.hide) toggleAct = 'show';
}
for (p in params) {
if (!tween && (params[p] == 'show' && visible || params[p] == 'hide' && !visible)) {
return options.onComplete.call(this, el);
}
if ((p == 'height' || p == 'width') && el.style) {
if (options.orig.overflow == undefined) {
options.orig.overflow = getStyle(el, 'overflow');
}
el.style.overflow = 'hidden';
el.style.display = 'block';
}
if (/show|hide|toggle/.test(params[p])) {
if (params[p] == 'toggle') {
params[p] = toggleAct;
}
if (params[p] == 'show') {
var from = 0;
options.show = true;
if (options.orig[p] == undefined) {
options.orig[p] = getStyle(el, p, false) || '';
setStyle(el, p, 0);
}
var o;
if (p == 'height' && browser.msie6) {
o = '0px';
el.style.overflow = '';
} else {
o = options.orig[p];
}
var old = el.style[p];
el.style[p] = o;
params[p] = parseFloat(getStyle(el, p, true));
el.style[p] = old;
if (p == 'height' && browser.msie) {
el.style.overflow = 'hidden';
}
} else {
if (options.orig[p] == undefined) {
options.orig[p] = getStyle(el, p, false) || '';
}
options.hide = true;
params[p] = 0;
}
}
}
if (options.show && !visible) {
show(el);
}
tween = new Fx.Base(el, options);
each(params, function(name, to) {
if (/backgroundColor|borderBottomColor|borderLeftColor|borderRightColor|borderTopColor|color|borderColor|outlineColor/.test(name)) {
var p = (name == 'borderColor') ? 'borderTopColor' : name;
from = getColor(el, p);
to = getRGB(to);
} else {
var parts = to.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
start = tween.cur(name, true) || 0;
if (parts) {
to = parseFloat(parts[2]);
if (parts[1]) {
to = ((parts[1] == '-=' ? -1 : 1) * to) + to;
}
}
if (options.hide && name == 'height' && browser.msie6) {
el.style.height = '0px';
el.style.overflow = '';
}
from = tween.cur(name, true);
if (options.hide && name == 'height' && browser.msie6) {
el.style.height = '';
el.style.overflow = 'hidden';
}
if (from == 0 && (name == 'width' || name == 'height'))
from = 1;
if (name == 'opacity' && to > 0 && !visible) {
setStyle(el, 'opacity', 0);
from = 0;
show(el);
}
}
if (from != to || (isArray(from) && from.join(',') == to.join(','))) {
fromArr[name] = from;
toArr[name] = to;
}
});
tween.start(fromArr, toArr);
data(el, 'tween', tween);
return tween;
}
function fadeTo(el, speed, to, callback) {
return animate(el, {opacity: to}, speed, callback);
}
var Fx = fx = {
Transitions: {
linear: function(t, b, c, d) { return c*t/d + b; },
sineInOut: function(t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; },
halfSine: function(t, b, c, d) { return c * (Math.sin(Math.PI * (t/d) / 2)) + b; },
easeOutBack: function(t, b, c, d) { var s = 1.70158; return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; },
easeInCirc: function(t, b, c, d) { return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; },
easeOutCirc: function(t, b, c, d) { return c * Math.sqrt(1 - (t=t/d-1)*t) + b; },
easeInQuint: function(t, b, c, d) { return c*(t/=d)*t*t*t*t + b; },
easeOutQuint: function(t, b, c, d) { return c*((t=t/d-1)*t*t*t*t + 1) + b; }
},
Attrs: [
[ 'height', 'marginTop', 'marginBottom', 'paddingTop', 'paddingBottom' ],
[ 'width', 'marginLeft', 'marginRight', 'paddingLeft', 'paddingRight' ],
[ 'opacity', 'left', 'top' ]
],
Timers: [],
TimerId: null
}
Fx.Base = function(el, options, name) {
this.el = ge(el);
this.name = name;
this.options = extend({
onComplete: function() {},
transition: Fx.Transitions.sineInOut,
duration: 500
}, options || {});
}
function genFx(type, num) {
var obj = {};
each(Fx.Attrs.concat.apply([], Fx.Attrs.slice(0, num)), function() {
obj[this] = type;
});
return obj;
};
// Shortcuts for custom animations
each({slideDown: genFx('show', 1),
slideUp: genFx('hide', 1),
slideToggle: genFx('toggle', 1),
fadeIn: {opacity: 'show'},
fadeOut: {opacity: 'hide'},
fadeToggle: {opacity: 'toggle'}}, function(f, val) {
window[f] = function(el, speed, callback) { return animate(el, val, speed, callback); }
});
Fx.Base.prototype = {
start: function(from, to){
this.from = from;
this.to = to;
this.time = vkNow();
this.isTweening = true;
var self = this;
function t(gotoEnd) {
return self.step(gotoEnd);
}
t.el = this.el;
if (t() && Fx.Timers.push(t) && !Fx.TimerId) {
Fx.TimerId = setInterval(function() {
var timers = Fx.Timers;
for (var i = 0; i < timers.length; i++) {
if (!timers[i]()) {
timers.splice(i--, 1);
}
}
if (!timers.length) {
clearInterval(Fx.TimerId);
Fx.TimerId = null;
}
}, 13);
}
return this;
},
stop: function(gotoEnd) {
var timers = Fx.Timers;
for (var i = timers.length - 1; i >= 0; i--) {
if (timers[i].el == this.el ) {
if (gotoEnd) {
timers[i](true);
}
timers.splice(i, 1);
}
}
this.isTweening = false;
},
step: function(gotoEnd) {
var time = vkNow();
if (!gotoEnd && time < this.time + this.options.duration) {
this.cTime = time - this.time;
this.now = {};
for (p in this.to) {
// color fx
if (isArray(this.to[p])) {
var color = [], j;
for (j = 0; j < 3; j++) {
if (this.from[p] === undefined || this.to[p] === undefined) {
return false;
}
color.push(Math.min(parseInt(this.compute(this.from[p][j], this.to[p][j])), 255));
}
this.now[p] = color;
} else {
this.now[p] = this.compute(this.from[p], this.to[p]);
}
}
this.update();
return true;
} else {
setTimeout(this.options.onComplete.bind(this, this.el), 10);
this.now = extend(this.to, this.options.orig);
this.update();
if (this.options.hide) hide(this.el);
this.isTweening = false;
return false;
}
},
compute: function(from, to){
var change = to - from;
return this.options.transition(this.cTime, from, change, this.options.duration);
},
update: function(){
for (var p in this.now) {
if (isArray(this.now[p])) setStyle(this.el, p, 'rgb(' + this.now[p].join(',') + ')');
else this.el[p] != undefined ? (this.el[p] = this.now[p]) : setStyle(this.el, p, this.now[p]);
}
},
cur: function(name, force){
if (this.el[name] != null && (!this.el.style || this.el.style[name] == null))
return this.el[name];
return parseFloat(getStyle(this.el, name, force)) || 0;
}
};
// Parse strings looking for color tuples [255,255,255]
function getRGB(color) {
var result;
if (color && isArray(color) && color.length == 3)
return color;
if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];
if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
}
function getColor(elem, attr) {
var color;
do {
color = getStyle(elem, attr);
if (!color.indexOf('rgba')) color = '';
if (color != '' && color != 'transparent' || elem.nodeName.toLowerCase() == 'body') {
break;
}
attr = 'backgroundColor';
} while (elem = elem.parentNode);
return getRGB(color);
}
function scrollToTop(speed) {
if (speed == undefined) speed = 400;
if (speed) {
if (browser.msie6) {
animate(pageNode, {scrollTop: 0}, speed);
} else {
animate(htmlNode, {scrollTop: 0}, speed);
animate(bodyNode, {scrollTop: 0}, speed);
}
} else {
window.scroll(0, 0);
if (browser.msie6) {
pageNode.scrollTop = 0;
}
}
}
function notaBene(el, color, nofocus) {
el = ge(el);
if (!el) return;
if (!nofocus) focus(el);
var oldBack = data(el, 'back') || data(el, 'back', getStyle(el, 'backgroundColor'));
var colors = {notice: '#FFFFE0', warning: '#FAEAEA'};
setStyle(el, 'backgroundColor', colors[color] || color || colors.warning);
setTimeout(animate.pbind(el, {backgroundColor: oldBack}, 300), 400);
}
/**
* Events
**/
var KEY = window.KEY = {
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
DEL: 8,
TAB: 9,
RETURN: 13,
ENTER: 13,
ESC: 27,
PAGEUP: 33,
PAGEDOWN: 34,
SPACE: 32
};
function addEvent(elem, types, handler, custom, context) {
elem = ge(elem);
if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
return;
var realHandler = context ? function (e) {
var prevData = e.data;
e.data = context;
var ret = handler.apply(this, [e]);
e.data = prevData;
return ret;
} : handler;
// For IE
if (elem.setInterval && elem != window) elem = window;
var events = data(elem, 'events') || data(elem, 'events', []),
handle = data(elem, 'handle') || data(elem, 'handle', function() {
_eventHandle.apply(arguments.callee.elem, arguments);
});
// to prevent a memory leak
handle.elem = elem;
each(types.split(/\s+/), function(index, type) {
if (!events[type]) {
events[type] = [];
if (!custom && elem.addEventListener) {
elem.addEventListener(type, handle, false);
} else if (!custom && elem.attachEvent) {
elem.attachEvent('on' + type, handle);
}
}
events[type].push(realHandler);
});
elem = null;
}
function removeEvent(elem, types, handler) {
elem = ge(elem);
if (!elem) return;
var events = data(elem, 'events');
if (!events) return;
if (typeof(types) != 'string') {
for (var i in events) {
removeEvent(elem, i);
}
return;
}
each(types.split(/\s+/), function(index, type) {
if (!isArray(events[type])) return;
if (isFunction(handler)) {
for (var i = 0; i < events[type].length; i++) {
if (events[type][i] == handler) {
for (var j = i + 1; j < events[type].length; j++) {
events[type][j - 1] = events[type][j];
}
events[type].pop();
break;
}
}
} else {
for (var i = 0; i < events[type].length; i++) {
delete events[type][i];
}
}
if (!events[type].length) {
if (elem.removeEventListener) {
elem.removeEventListener(type, data(elem, 'handle'), false);
} else if (elem.detachEvent) {
elem.detachEvent('on' + type, data(elem, 'handle'));
}
delete events[type];
}
});
}
function triggerEvent(elem, type, ev) {
var handle = data(elem, 'handle');
if (handle) {
setTimeout(function() {
handle.call(elem, extend((ev || {}), {type: type, target: elem}))
}, 0);
}
}
function cancelEvent(event) {
var e = event.originalEvent || event;
if (e.preventDefault) e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
event.cancelBubble = e.cancelBubble = true;
event.returnValue = e.returnValue = false;
return false;
}
function _eventHandle(event) {
event = event || window.event;
var originalEvent = event;
event = clone(originalEvent);
event.originalEvent = originalEvent;
if (!event.target) {
event.target = event.srcElement || document;
}
// check if target is a textnode (safari)
if (event.target.nodeType == 3) {
event.target = event.target.parentNode;
}
if (!event.relatedTarget && event.fromElement) {
event.relatedTarget = event.fromElement == event.target;
}
if (event.pageX == null && event.clientX != null) {
var doc = document.documentElement, body = bodyNode;
event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
}
if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) {
event.which = event.charCode || event.keyCode;
}
if (!event.metaKey && event.ctrlKey) {
event.metaKey = event.ctrlKey;
}
// click: 1 == left; 2 == middle; 3 == right
if (!event.which && event.button) {
event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
}
var handlers = data(this, 'events');
if (!handlers || typeof(event.type) != 'string' || !handlers[event.type] || !handlers[event.type].length) {
return;
}
for (var i in (handlers[event.type] || [])) {
if (event.type == 'mouseover' || event.type == 'mouseout') {
var parent = event.relatedElement;
while (parent && parent != this) {
try { parent = parent.parentNode; }
catch(e) { parent = this; }
}
if (parent == this) {
continue
}
}
var ret = handlers[event.type][i].apply(this, arguments);
if (ret === false) {
cancelEvent(event);
}
}
}
// Prevent memory leaks in IE
addEvent(window, 'unload', function() {
for (var id in vkCache) {
if (vkCache[id].handle && vkCache[id].handle.elem != window) {
removeEvent(vkCache[id].handle.elem);
}
}
});
if (__debugMode) {
function __checkData() {
var r = [];
for (var i in vkCache) {
var c = vkCache[i], el;
if (!c || !(el = c.__elem)) continue;
var id = el.id;
if (!id) el.id = id = '__vk' + irand(1000000, 9999999);
if (ge(id) == el) continue;
var d = [];
for (var j in c) {
if (j == '__elem' || j == 'handle' && c.events) continue;
if (j == 'events') {
var e = [];
for (var k in c[j]) e.push(k + '(' + c[j][k].length + ')');
d.push('{' + e.join(', ') + '}');
} else {
d.push(j);
}
}
var n;
if (!/^__vk/.test(id)) n = '#' + id;
else if (trim(el.className)) n = '.' + el.className.split(' ').join('.');
else if (el.tagName) n = '<' + el.tagName.toLowerCase() + '>';
else n = el + '';
r.push(n + ': ' + d.join(', '));
}
return r.join('<br>');
}
addEvent(document, 'keydown', function(e) {
if (e.keyCode == 120 && !e.charCode) {
showFastBox({title: 'Debug'}, __checkData());
}
});
}
var _layerAnim = false;
// Layers
var layers = {
sh: (!_layerAnim || browser.msie || browser.iphone) ? function(el, done) {
show(el);
if (done) done();
} : function(el, done) {
fadeIn(el, 200, done);
},
hd: (!_layerAnim || browser.msie || browser.iphone) ? function(el, done) {
hide(el);
if (done) done();
} : function(el, done) {
fadeOut(el, 200, done);
},
visible: false,
_show: function(el, con, opacity, color) {
setStyle(el, {opacity: opacity || 0, backgroundColor: color || ''});
if (!layers.visible) {
toggleFlash();
if (browser.mozilla) {
window._oldScroll = htmlNode.scrollTop;
pageNode.style.height = (_oldScroll + lastWindowHeight) + 'px';
pageNode.style.marginTop = -_oldScroll + 'px';
} else if (!browser.msie6) {
(browser.msie7 ? htmlNode : bodyNode).style.overflow = 'hidden';
}
}
layers.visible = true;
show(con);
layers.sh(el);
},
_hide: function(el, con) {
var done = function() {
hide(con);
if (!isVisible(layerWrap) && !isVisible(boxLayerWrap) && ((window.mvcur && mvcur.minimized) || !isVisible(window.mvLayerWrap))) {
layers.visible = false;
toggleFlash(true);
if (browser.mozilla) {
pageNode.style.height = 'auto';
pageNode.style.marginTop = '0px';
if (window._oldScroll) {
htmlNode.scrollTop = _oldScroll;
}
} else if (!browser.msie6) {
(browser.msie7 ? htmlNode : bodyNode).style.overflow = 'auto';
}
}
}
layers.hd(el, done);
}
};
function updSideBackLink(resized) {
if (!window.scrollNode || !isVisible(_sbLink)) return;
var pb = ge('page_body'), xy = getXY(pb);
if (resized === true) {
setStyle(_sbLink, {
left: vk.rtl ? (xy[0] + getSize(pb)[0] + 5) : (xy[0] - 5 - _sbLink.offsetWidth) + 'px'
});
return;
}
var st = window.pageYOffset || scrollNode.scrollTop || document.documentElement.scrollTop;
var sb = ge('side_bar'), is = isVisible(sb);
var sz = is ? getSize(sb) : [0, 500], y = pb.offsetTop + ge('page_layout').parentNode.offsetTop + sz[1] - st;
setStyle(_sbLink, {
left: vk.rtl ? (xy[0] + getSize(pb)[0] + 5) : (xy[0] - 5 - _sbLink.offsetWidth) + 'px',
top: (Math.max(y, 0) + 5) + 'px',
opacity: Math.min(Math.max(1 - y / 100, 0), 1)
});
}
function updGlobalPlayer() {
var _gp = ge('gp');
var _gb = ge('gp_back');
if (!_gp || !_gb || window.gpExpanded) return;
var pb = ge('page_body'), xy = getXY(pb), psz = getSize(pb);
var w = window, de = document.documentElement;
if (!w.pageNode) return;
var dheight = Math.max(intval(w.innerHeight), intval(de.clientHeight));
var dwidth = Math.max(intval(w.innerWidth), intval(de.clientWidth));
var gsz = getSize(_gp);
var sb = ge('side_bar'), is = isVisible(sb), sz = is ? getSize(sb) : [118, 500], pos = getXY(sb);
var pb = ge('page_body');
var st = window.pageYOffset || scrollNode.scrollTop || document.documentElement.scrollTop;
var y = pb.offsetTop + ge('page_layout').parentNode.offsetTop + dheight - gsz[1] - 40;
var sw = (vk.rtl) ? pos[0] - xy[0] - psz[0] : xy[0] - pos[0] - sz[0];
if (browser.msie7 || browser.msie6) y -= 33;
setStyle(_gb, {
width: sz[0] + 13 + sw + 'px'
});
setStyle(_gp, {
top: Math.max(y, 0) + 'px',
left: (vk.rtl) ? pos[0] - sw - 2 + 'px' : pos[0] - 11 + 'px',
width: sz[0] + 13 + sw + 'px'
});
}
function expandGlobalPlayer(open) {
var _gp = ge('gp');
var _gb = ge('gp_back');
if (!_gp || !_gb) return;
var _w = 504;
if (open) {
if (window.gp_timer) {
clearTimeout(gp_timer);
window.gp_timer = null;
return;
}
window.gpExpanded = true;
hide('gp_small');
show('gp_large');
if (audioPlayer && audioPlayer.player) {
audioPlayer.player.callPlayProgress();
}
var el = geByClass1('title_wrap', ge('gp_large'));
if (el) {
setStyle(el, {width: '330px'});
}
var l = parseInt(_gp.style.left), w = getSize(_gp)[0];
setStyle(_gp, {
width: _w+'px',
left: (vk.rtl) ? l+w-_w+'px' : l+'px'
});
setStyle(_gb, {width: _w+'px'});
} else {
if (!window.gp_timer) {
window.gp_timer = setTimeout(function(){
var pb = ge('page_body'), xy = getXY(pb), psz = getSize(pb);
var sb = ge('side_bar'), is = isVisible(sb), sz = is ? getSize(sb) : [118, 500], pos = getXY(sb);
var sw = (vk.rtl) ? pos[0] - xy[0] - psz[0] : xy[0] - pos[0] - sz[0];
setStyle(_gb, {width: sz[0] + 13 + sw + 'px'});
setStyle(_gp, {
left: vk.rtl ? (pos[0] - sw - 2) + 'px' : pos[0] - 11 + 'px',
width: sz[0] + 13 + sw + 'px'
});
hide('gp_large');
show('gp_small');
window.gpExpanded = false;
window.gp_timer = null;
}, 800);
}
}
}
function toggleGlobalPlayer(open) {
var _gp = ge('gp');
if (!_gp) return;
if (open) {
show(_gp);
updGlobalPlayer();
var sz = getSize(_gp);
geByClass1('wrap', ge('pad_wrap')).style.paddingBottom = sz[1]+'px';
var t_pos = parseInt(_gp.style.top);
_gp.style.top = t_pos + getSize(_gp)[1] + 'px';
animate(_gp, {top: t_pos+'px'}, 200);
} else {
updGlobalPlayer();
var t_pos = parseInt(_gp.style.top);
if (window.audioPlayer) {
if (audioPlayer.id && !ge('audio'+audioPlayer.id)) audioPlayer.stop();
}
animate(_gp, {top: t_pos + getSize(_gp)[1] + 'px'}, 200, function(){hide(_gp)});
}
}
function onBodyResize(force) {
var w = window, de = document.documentElement;
if (!w.pageNode) return;
var dwidth = Math.max(intval(w.innerWidth), intval(de.clientWidth));
var dheight = Math.max(intval(w.innerHeight), intval(de.clientHeight));
var sbw = sbWidth();
if (browser.mobile) {
dwidth = Math.max(dwidth, intval(bodyNode.scrollWidth));
dheight = Math.max(dheight, intval(bodyNode.scrollHeight));
} else if (browser.msie7) {
if (htmlNode.scrollHeight > htmlNode.offsetHeight && !layers.visible) {
dwidth += sbw + 1;
}
} else if (browser.msie8) {
if (htmlNode.scrollHeight + 3 > htmlNode.offsetHeight && !layers.visible) {
dwidth += sbw + 1;
}
}
if (w.lastWindowWidth != dwidth || force === true) {
w.lastWindowWidth = dwidth;
layerWrap.style.width = boxLayerWrap.style.width = dwidth + 'px';
var layerWidth = layer.style.width = boxLayer.style.width = (dwidth - sbw - 2) + 'px';
if (window.mvLayerWrap) {
mvLayerWrap.style.width = dwidth + 'px';
mvLayer.style.width = layerWidth;
}
if (bodyNode.offsetWidth < layoutWidth + sbw + 2) {
dwidth = layoutWidth + sbw + 2;
}
if (dwidth) {
for (var el = pageNode.firstChild; el; el = el.nextSibling) {
if (!el.tagName) continue;
for (var e = el.firstChild; e; e = e.nextSibling) {
if (e.className == 'scroll_fix') {
e.style.width = (dwidth - sbw * (browser.msie7 ? 2 : 1) - 2) + 'px';
}
}
}
}
}
if (w.lastWindowHeight != dheight || force === true) {
w.lastWindowHeight = dheight;
layerBG.style.height = boxLayerBG.style.height =
layerWrap.style.height = boxLayerWrap.style.height = dheight + 'px';
if (window.mvLayerWrap) {
mvLayerWrap.style.height = dheight + 'px';
}
if (browser.mozilla && layers.visible) {
pageNode.style.height = (_oldScroll + dheight) + 'px';
} else if (browser.msie6) {
pageNode.style.height = dheight + 'px';
}
}
updSideBackLink();
updGlobalPlayer();
}
function onBodyScroll() {
bnr1.onScroll();
bnr2.onScroll();
updSideBackLink();
updGlobalPlayer();
}
function onCtrlEnter(ev, handler) {
ev = ev || window.event;
if (ev.keyCode == 10 || ev.ctrlKey && ev.keyCode == 13) {
handler();
}
}
function setFavIcon(href, force) {
if (!window.icoNode) return;
if (icoNode.href == href && !force) return;
var ico = ce('link', {rel: 'shortcut icon', type: 'image/gif', href: href});
headNode.replaceChild(ico, icoNode);
icoNode = ico;
}
(function() {
var step = 1, timer, to, func, title;
if (browser.mozilla) {
func = function() {
setFavIcon('/images/icons/prgicon.gif');
}
} else if (browser.chrome || browser.opera && !browser.opera_mobile) {
func = function() {
step = step % 4 + 1;
setFavIcon('/images/icons/prgicon' + step + '.gif');
timer = setTimeout(arguments.callee, 250);
}
} else {
func = function() {
var newTitle = '';
for (var i = 1; i <= 5; ++i) {
newTitle += (i == step) ? String.fromCharCode(0x25CF) : '-';
}
document.title = newTitle;
step = step % 5 + 1;
timer = setTimeout(arguments.callee, 250);
}
}
window.showTitleProgress = function(timeout) {
if (browser.mozilla || browser.chrome) return;
if (timeout > 0) {
to = setTimeout(showTitleProgress.pbind(false), timeout);
return;
}
if (timer) {
return;
}
if (document.body) {
document.body.style.cursor = 'progress';
}
title = document.title;
func();
}
window.hideTitleProgress = function(newTitle) {
if (browser.mozilla || browser.chrome) return;
clearTimeout(to);
document.body.style.cursor = 'default';
if (timer) {
clearTimeout(timer);
timer = false;
}
if (newTitle || title) {
document.title = newTitle || title;
title = false;
}
if (browser.mozilla || browser.chrome || browser.opera && !browser.opera_mobile) {
setFavIcon('/images/favicon' + (vk.intnat ? 'vknew' : 'new') + '.ico');
}
}
})();
var layoutWidth = 791;
function domStarted() {
window.headNode = geByTag1('head');
extend(window, {
icoNode: geByTag1('link', headNode),
bodyNode: geByTag1('body'),
htmlNode: geByTag1('html'),
utilsNode: ge('utils')
});
if (!utilsNode) return;
if (browser.mozilla) {
addClass(bodyNode, 'firefox');
} else if (browser.msie6) {
addClass(bodyNode, 'nofixed');
}
for (var i in StaticFiles) {
var f = StaticFiles[i];
f.l = 1;
if (f.t == 'css') {
utilsNode.appendChild(ce('div', {id: f.n}));
}
}
var l = ge('layer_bg'), lw = l.nextSibling, bl = ge('box_layer_bg'), blw = bl.nextSibling;
extend(window, {
layerBG: l,
boxLayerBG: bl,
layerWrap: lw,
layer: lw.firstChild,
boxLayerWrap: blw,
boxLayer: blw.firstChild,
_sbLink: ge('side_back_link')
});
_sbLink.innerHTML = getLang('global_to_top');
extend(layers, {
show: layers._show.pbind(l, lw),
boxshow: layers._show.pbind(bl, blw),
wrapshow: layers._show.pbind(l),
hide: layers._hide.pbind(l, lw),
boxhide: layers._hide.pbind(bl, blw),
wraphide: layers._hide.pbind(l)
});
hab.init();
}
function domReady() {
if (!utilsNode) return;
extend(window, {
pageNode: ge('page_wrap'),
_tbLink: ge('top_back_link')
});
window.scrollNode = browser.msie6 ? pageNode : ((browser.chrome || browser.safari) ? bodyNode : htmlNode);
if (vk.al == 1) {
showTitleProgress();
}
onBodyResize();
setTimeout(showSideBackLink.pbind(false), 100);
var scrolledNode = browser.msie6 ? pageNode : window,
bnrCode = function(id, data) {
var rnd = irand(1, 1000000), addate = new Date();
var def = 'p1=' + data.p1 + '&p2=' + data.p2;
var params = ['p3=a', 'p4=a', 'pucn=a', 'pfc=a', 'pfb=a', 'pr=' + rnd, 'pt=b', 'pd=' + addate.getDate(), 'pw=' + addate.getDay(), 'pv=' + addate.getHours(), 'py=a', 'puid1=' + data.sex, 'puid2=' + data.year, 'puid3=' + data.status, def];
var src = 'http://a.adwolf.ru/getCode?' + params.join('&');
return '<iframe src="' + src + '" id="' + id + '_' + rnd + '" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"><a href="http://a.adwolf.ru/goDefaultLink?' + def + '" target="_top"><img src="http://a.adwolf.ru/getDefaultImage?' + def + '"></a></iframe>';
}, docEl = document.documentElement;
var bnrLoader = function(id) {
var el = ge(id) || {style: {}}, h = (id == 'banner1') ? 150 : 30;
var res = {
id: id,
el: el,
update: function() {
el = res.el = ge(id) || {style: {}};
if (!el.id) return;
var vis = isVisible(el);
if (!vis) show(el);
res.yc = intval(el.offsetTop + h);
if (!vis) hide(el);
},
onScroll: function() {
if (!el.id || !res.data) return;
var ch = window.innerHeight || docEl.clientHeight || bodyNode.clientHeight;
var st = window.pageYOffset || scrollNode.scrollTop || docEl.scrollTop;
if (res.yc > st && st + ch > res.yc) {
show(el);
el.innerHTML = bnrCode(el.id, res.data);
res.data = false;
}
}
}
return res;
}
window.bnr1 = bnrLoader('banner1');
window.bnr2 = bnrLoader('banner2');
addEvent(scrolledNode, 'scroll', onBodyScroll);
}
function onDomReady(f) {
f();
}
// Ajax
function serializeForm(form) {
if (typeof(form) != 'object') {
return false;
}
var result = {};
var g = function(n) {
return geByTag(n, form);
};
var nv = function(i, e){
if (!e.name) return;
if (e.type == 'text' || !e.type) {
result[e.name] = val(e);
} else {
result[e.name] = (browser.msie && !e.value && form[e.name]) ? form[e.name].value : e.value;
}
};
each(g('input'), function(i, e) {
if ((e.type != 'radio' && e.type != 'checkbox') || e.checked) return nv(i, e);
});
each(g('select'), nv);
each(g('textarea'), nv);
return result;
}
function ajx2q(qa) {
var query = [], enc = function (str) {
try {
return encodeURIComponent(str);
} catch (e) { return str;}
};
for (var key in qa) {
if (qa[key] == null || isFunction(qa[key])) continue;
if (isArray(qa[key])) {
for (var i = 0, c = 0; i < qa[key].length; ++i) {
if (qa[key][i] == null || isFunction(qa[key][i])) {
continue;
}
query.push(enc(key) + '[' + c + ']=' + enc(qa[key][i]));
++c;
}
} else {
query.push(enc(key) + '=' + enc(qa[key]));
}
}
query.sort();
return query.join('&');
}
function q2ajx(qa) {
if (!qa) return {};
var query = {}, dec = function (str) {
try {
return decodeURIComponent(str);
} catch (e) { return str;}
};
qa = qa.split('&');
each(qa, function(i, a) {
var t = a.split('=');
if (t[0]) {
var v = dec(t[1] + '');
if (t[0].substr(t.length - 2) == '[]') {
var k = dec(t[0].substr(0, t.length - 2));
if (!query[k]) {
query[k] = [];
}
query[k].push(v);
} else {
query[dec(t[0])] = v;
}
}
});
return query;
}
var stManager = {
_add: function(f, old) {
var name = f.replace(/[\/\.]/g, '_');
if (old && old.l && old.t == 'css') {
var elem = ce('style', {
type: 'text/css',
media: 'screen'
});
headNode.appendChild(elem);
var text = '#' + name + ' { display: block; }';
if (elem.sheet) {
elem.sheet.insertRule(text, 0);
} else if (elem.styleSheet) {
elem.styleSheet.cssText = text;
}
}
StaticFiles[f] = {v: stVersions[f], n: name, l: 0, c: 0};
var f_full = f + '?' + stVersions[f];
if (f.indexOf('.js') != -1) {
var p = 'js/';
if (stTypes.fromLib[f]) {
p += 'lib/';
} else if (!/^lang\d/i.test(f) && !stTypes.fromRoot[f]) {
p += 'al/';
}
headNode.appendChild(ce('script', {
type: 'text/javascript',
src: p + f_full
}));
StaticFiles[f].t = 'js';
} else if (f.indexOf('.css') != -1) {
var p = 'css/' + (stTypes.fromRoot[f] ? '' : 'al/');
headNode.appendChild(ce('link', {
type: 'text/css',
rel: 'stylesheet',
href: p + f_full
}));
StaticFiles[f].t = 'css';
if (!ge(name)) {
utilsNode.appendChild(ce('div', {id: name}));
}
}
},
add: function(files, callback) {
var wait = [], de = document.documentElement;
if (!isArray(files)) files = [files];
for (var i in files) {
var f = files[i];
if (f.indexOf('?') != -1) {
f = f.split('?')[0];
}
if (/^lang\d/i.test(f)) {
stVersions[f] = stVersions['lang'];
} else if (!stVersions[f]) {
stVersions[f] = 1;
}
// Opera Speed Dial fix
var opSpeed = browser.opera && de.clientHeight == 768 && de.clientWidth == 1024;
if ((opSpeed || __debugMode) && f != 'common.js' && f != 'common.css' && stVersions[f] > 0 && stVersions[f] < 1000000000) stVersions[f] += irand(1000000000, 2000000000);
var old = StaticFiles[f];
if (!old || old.v != stVersions[f]) {
stManager._add(f, old);
}
if (callback && !StaticFiles[f].l) {
wait.push(f);
}
}
if (!callback) return;
if (!wait.length) {
return callback();
}
var waiter = function() {
var nwait = [];
for (var i in wait) {
var f = wait[i];
if (!StaticFiles[f].l && StaticFiles[f].t == 'css' && getStyle(StaticFiles[f].n, 'display') == 'none') {
if (stVersions[f] < 0) {
topMsg('<b>Warning:</b> Something is bad, please <b><a href="/techsupp.php?fid=1&act=t&tid=497998">clear your cache</a></b> and restart your browser.', 10);
}
StaticFiles[f].l = 1;
}
if (!StaticFiles[f].l) {
if (++StaticFiles[f].c > 150) { // Can't load for 15 seconds.
if (stVersions[f] < 0) {
topError('<b>Error:</b> Could not load <b>' + f + '</b>.', 3);
StaticFiles[f].l = 1;
} else {
topMsg('Some problems with loading <b>' + f + '</b>...', 3);
stVersions[f] = irand(-10000, -1);
stManager._add(f, StaticFiles[f]);
}
}
}
if (!StaticFiles[f].l) {
nwait.push(f);
}
}
wait = nwait;
if (wait.length) {
return setTimeout(arguments.callee, 100);
}
callback();
}
setTimeout(waiter, 1);
},
done: function(f) {
StaticFiles[f].l = 1;
}
}
function requestBox(box, onDone, onFail) {
box.setOptions({onHide: onFail});
box.onDone = function() {
box.setOptions({onHide: false});
onDone();
}
return box;
}
function activateMobileBox(opts) {
return requestBox(showBox('activation.php', {
act: 'activate_mobile_box',
hash: opts.hash
}), function() {
vk.nophone = 0;
opts.onDone();
}, opts.onFail);
}
var ajaxCache = {};
var globalAjaxCache = {};
var ajax = {
_init: function() {
var r = false;
try {
if (r = new XMLHttpRequest()) {
ajax._req = function() { return new XMLHttpRequest(); }
return;
}
} catch(e) {}
each(['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'], function() {
try {
var t = '' + this;
if (r = new ActiveXObject(t)) {
(function(n) {
ajax._req = function() { return new ActiveXObject(n); }
})(t);
return false;
}
} catch(e) {}
});
if (!ajax._req) {
location.replace('/badbrowser.php');
}
},
_getreq: function() {
if (!ajax._req) ajax._init();
return ajax._req();
},
_frameover: function() {
var node = iframeTransport.parentNode;
node.innerHTML = '';
utilsNode.removeChild(node);
iframeTransport = false;
if (cur.onFrameBlocksDone) {
cur.onFrameBlocksDone();
}
},
_receive: function(cont, html, js) {
cont = cont && ge(cont);
if (cont && html) {
html = ce('div', {innerHTML: html});
while (html.firstChild) {
cont.appendChild(html.firstChild);
}
}
if (js) {
eval('(function(){' + js + ';})()');
}
},
framedata: false,
framegot: function(c, h, j) {
if (ajax.framedata === false) {
setTimeout(ajax._receive.pbind(c, h, j), 0);
} else {
ajax.framedata.push([c, h, j]);
}
},
framepost: function(url, query, done) {
if (window.iframeTransport) {
ajax._frameover();
}
window.iframeTransport = utilsNode.appendChild(ce('div', {innerHTML: '<iframe></iframe>'})).firstChild;
ajax._framedone = done;
iframeTransport.src = url + '?' + ((typeof(query) != 'string') ? ajx2q(query) : query);
},
plainpost: function(url, query, done, fail) {
var r = ajax._getreq();
var q = (typeof(query) != 'string') ? ajx2q(query) : query;
r.onreadystatechange = function() {
if (r.readyState == 4) {
if (r.status >= 200 && r.status < 300) {
if (done) done(r.responseText, r);
} else if (r.status) {
if (fail) fail(r.responseText, r);
}
}
}
try {
r.open('POST', url, true);
} catch(e) {
topMsg('<b>Ajax Error:</b> ' + e.message);
}
r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
r.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
r.send(q);
return r;
},
post: function(url, query, options) {
if (url.substr(0, 1) != '/') url = '/' + url;
var o = extend({_captcha: false, _box: false}, options || {}), q = extend({al: o.frame ? -1 : 1}, query);
if (o.progress) {
if (!o.showProgress) {
o.showProgress = show.pbind(o.progress);
}
if (!o.hideProgress) {
o.hideProgress = hide.pbind(o.progress);
}
}
return ajax._post(url, q, o);
},
preload: function(url, query, data) {
if (url.substr(0, 1) != '/') url = '/' + url;
ajaxCache[url + '#' + ajx2q(query)] = data;
},
_debugLog: function(text) {
window._updateDebug = function() {
var dlw = ge('debuglogwrap');
if (dlw) {
dlw.innerHTML = text;
window._updateDebug = false;
}
}
},
_parseRes: function(answer) {
window._updateDebug = false;
for (var i = 0; i < answer.length; ++i) {
var ans = answer[i];
if (ans.substr(0, 2) == '<!') {
var from = ans.indexOf('>');
var type = ans.substr(2, from - 2);
ans = ans.substr(from + 1);
switch (type) {
case 'json' : answer[i] = eval('(' + ans + ')'); break;
case 'int' : answer[i] = intval(ans); break;
case 'float': answer[i] = floatval(ans); break;
case 'bool' : answer[i] = intval(ans) ? true : false; break;
case 'null' : answer[i] = null; break;
case 'debug':
ajax._debugLog(ans);
answer.pop(); // <!debug> must be last one
break;
}
}
}
},
_post: function(url, q, o) {
if (!q.captcha_sid && o.showProgress) o.showProgress();
var cacheKey = false;
if (o.ads && vk.id) q.al_ad = 1;
if (o.cache) {
var boldq = clone(q);
delete boldq.al;
delete boldq.al_ad;
delete boldq.captcha_sid;
delete boldq.captcha_key;
cacheKey = url + '#' + ajx2q(boldq);
}
var hideBoxes = function() {
for (var i = 0; i < arguments.length; ++i) {
var box = arguments[i];
if (box && box.isVisible()) {
box.setOptions({onHide: false});
box.hide();
}
}
return false;
}
var fail = function(text) {
if (o.hideProgress) o.hideProgress();
if (o._suggest) cleanElems(o._suggest);
o._suggest = o._captcha = o._box = hideBoxes(o._box, o._captcha);
if (isFunction(o.onFail)) {
if (o.onFail(text)) {
return;
}
}
topError(text);
}
// Process response function
var processResponse = function(code, answer) {
if (o.cache && !o.forceGlobalCache) {
if (!code) {
ajaxCache[cacheKey] = answer;
}
if (o.cache === 2) {
return;
}
}
// Parse response
if (o.hideProgress) o.hideProgress();
o._box = hideBoxes(o._box);
if (o._captcha && code != 2) {
if (o._suggest) cleanElems(o._suggest);
o._suggest = o._captcha = hideBoxes(o._captcha);
}
switch (code) {
case 1: // email not confirmed
if (ge('confirm_mail')) {
showFastBox({
width: 430,
title: ge('confirm_mail_title').value,
onHide: o.onFail
}, '<div class="confirm_mail">' + ge('confirm_mail').innerHTML + '</div>');
} else {
topMsg('<b>Error!</b> Email is not confirmed!');
}
break;
case 2: // captcha
var resend = function(sid, key) {
var nq = extend(q, {captcha_sid: sid, captcha_key: key});
var no = o.cache ? extend(o, {cache: -1}) : o;
ajax._post(url, nq, no);
}
var addText = '';
if (vk.nophone == 1 && !vk.nomail) {
addText = getLang('global_try_to_activate').replace('{link}', '<a class="phone_validation_link">').replace('{/link}', '</a>');
addText = '<div class="phone_validation_suggest">' + addText + '</div>';
}
o._captcha = showCaptchaBox(answer[0], intval(answer[1]), o._captcha, {
onSubmit: resend,
addText: addText,
onHide: function() {
if (o.onFail) o.onFail();
}
});
o._suggest = geByClass1('phone_validation_link', o._captcha.bodyNode);
if (o._suggest) {
addEvent(o._suggest, 'click', function() {
o._box = activateMobileBox({onDone: o._captcha.submit});
});
}
break;
case 3: // auth failed
var no = o.cache ? extend(o, {cache: -1}) : o;
window.onReLoginDone = ajax._post.pbind(url, q, no);
window.onReLoginFailed = function(toRoot) {
if (toRoot) {
nav.go('/');
} else {
window.onReLoginDone();
}
}
var iframe = ce('iframe', {src: 'http://login.vk.com/?al_frame=1&from_host=' + locHost}), t = 0;
utilsNode.appendChild(iframe);
break;
case 4: // redirect
if (answer[1]) { // ajax layout redirect
nav.go(answer[0]);
} else {
hab.stop();
location.href = answer[0];
}
break;
case 5: // reload
nav.reload({force: intval(answer[0])}); // force reload
break;
case 6: // mobile activation needed
var no = o.cache ? extend(o, {cache: -1}) : o;
o._box = activateMobileBox({onDone: ajax._post.pbind(url, q, no), onFail: o.onFail, hash: answer[0]});
break;
case 7: // message
if (o.onFail) o.onFail();
topMsg(answer[0], 10);
break;
case 8: // error
if (o.onFail) {
if (o.onFail(answer[0])) {
return;
}
}
topError(answer[0], answer[1] ? 0 : 10);
break;
case 9: // votes payment
o._box = showFastBox(answer[0], answer[1]);
var no = extend(clone(o), {showProgress: o._box.showProgress, hideProgress: o._box.hideProgress});
if (o.cache) {
no.cache = -1;
}
o._box = requestBox(o._box, function() {
if (isVisible(o._box.progress)) return;
ajax._post(url, extend(q, {_votes_ok: 1}), no);
}, o.onFail);
var f = eval('((function() { return function() { var box = this; ' + (answer[2] || '') + ' ;}; })())');
f.apply(o._box);
break;
case 10: //zero zone
o._box = showFastBox({
title: answer[0] || getLang('global_charged_zone_title'),
onHide: o.onFail
}, answer[1], getLang('global_charged_zone_continue'), function() {
var nq = extend(q, {charged_confirm: answer[3]});
ajax._post(url, nq, o);
}, getLang('global_cancel'));
break;
default:
if (code == -1) {
var ad = answer.pop();
if (vk.id) {
bnr1.data = false;
hide('banner1');
var la = ge('left_ads');
if (la) la.parentNode.removeChild(la);
ge('left_blocks').appendChild(ce('div', {id: 'left_ads', innerHTML: ad}));
}
}
if (o.onDone) { // page, box or other
o.onDone.apply(window, answer);
}
break;
}
if (window._updateDebug) _updateDebug();
}
var done = function(text, data) { // data - for iframe transport post
if (!trim(text).length) {
data = [8, getLang('global_unknown_error')];
text = stVersions['nav'] + '<!><!>' + vk.lang + '<!>' + stVersions['lang'] + '<!>8<!>' + data[1];
}
var answer = text.split('<!>');
var navVersion = intval(answer.shift());
if (!navVersion) {
return fail(text);
}
// First strict check for index.php reloading, in vk.al == 1 mode.
if (vk.version && vk.version != navVersion) {
if (navVersion && answer.length > 4) {
nav.reload({force: true});
} else {
if (nav.strLoc) {
location.replace(locBase);
} else {
topError('Server error.');
}
}
return;
}
vk.version = false;
// Common response fields
var newStatic = answer.shift();
var langId = intval(answer.shift());
var langVer = intval(answer.shift());
if (o.frame) answer = data;
var code = intval(answer.shift());
if (vk.lang != langId && o.canReload) { // Lang changed
nav.reload({force: true});
return;
}
// Wait for attached static files
var waitResponseStatic = function() {
var st = ['common.css'];
if (browser.msie6) {
st.push('ie6.css');
} else if (browser.msie7) {
st.push('ie7.css');
}
if (newStatic) {
newStatic = newStatic.split(',');
for (var i = 0; i < newStatic.length; ++i) {
st.push(newStatic[i]);
}
}
if (stVersions['lang'] < langVer) {
stVersions['lang'] = langVer;
for (var i in StaticFiles) {
if (/^lang\d/i.test(i)) {
st.push(i);
}
}
}
if (!o.frame) {
try {
ajax._parseRes(answer);
} catch(e) {
topError('<b>JSON Error:</b> ' + e.message);
}
}
stManager.add(st, processResponse.pbind(code, answer));
}
// Static managing function
if (navVersion <= stVersions['nav']) {
return waitResponseStatic();
}
headNode.appendChild(ce('script', {
type: 'text/javascript',
src: '/al_loader.php?act=nav&v=' + navVersion
}));
setTimeout(function() {
if (navVersion <= stVersions['nav']) {
return waitResponseStatic();
}
setTimeout(arguments.callee, 100);
}, 0);
}
if (o.cache > 0 || o.forceGlobalCache) {
var answer = ajaxCache[cacheKey];
if (answer && !o.forceGlobalCache) {
processResponse(0, answer);
return;
} else if (answer = globalAjaxCache[cacheKey]) {
if (answer == -1) {
globalAjaxCache[cacheKey] = o.onDone;
} else {
o.onDone.apply(window, answer);
}
return;
}
}
return o.frame ? ajax.framepost(url, q, done) : ajax.plainpost(url, q, done, fail);
}
}
function HistoryAndBookmarks(params) {
// strict check for cool hash display in ff.
var fixEncode = function(loc) {
var l = loc.split('?');
return l[0] + (l[1] ? ('?' + ajx2q(q2ajx(l[1]))) : '');
}
if (locHash.charAt(0) == '#') {
location.hash = '#' + vk.navPrefix + locHash.replace(/^#/, '');
}
var frame = null, withFrame = browser.msie6 || browser.msie7;
var frameDoc = function() {
return frame.contentDocument || (frame.contentWindow ? frame.contentWindow.document : frame.document);
}
var options = extend({onLocChange: function() {}}, params);
var getLoc = function(skipFrame) {
var loc = '';
if (withFrame && !skipFrame) {
try {
loc = frameDoc().getElementById('loc').innerHTML.replace(/</ig, '<').replace(/>/ig, '>').replace(/"/ig, '"').replace(/&/ig, '&');
} catch(e) {
loc = curLoc;
}
} else {
loc = browser.msie6 ? ((location.toString().match(/#(.*)/) || {})[1] || '') : location.hash.replace(/^#/, '');
if (loc.substr(0, 1) != '!' && vk.navPrefix == '!') {
loc = (location.pathname || '') + (location.search || '');
}
}
if (!loc && vk.al > 1) {
loc = (location.pathname || '') + (location.search || '');
}
return fixEncode(loc.replace(/^(\/|!)/, ''));
}
var curLoc = getLoc(true);
var setFrameContent = function(loc) {
try {
var d = frameDoc();
d.open();
d.write('<script type="text/javascript">var u=navigator.userAgent,d=location.host.toString().match(/[a-zA-Z]+\\.[a-zA-Z]+$/)[0];if(/opera/i.test(u)||!/msie 6/i.test(u)||document.domain!=d)document.domain=d;</script>' +
'<div id="loc">' +
loc.replace('&', '&').replace('"', '"').replace('>', '>').replace('<', '<') +
'</div>'
);
d.close();
} catch(e) {}
}
var setLoc = function(loc) {
curLoc = fixEncode(loc.replace(/#(\/|!)?/, ''));
var l = (location.toString().match(/#(.*)/) || {})[1] || '';
if (vk.al > 1) {
if (!l) {
l = (location.pathname || '') + (location.search || '');
}
}
l = fixEncode(l);
if (l.replace(/^(\/|!)/, '') != curLoc) {
if (vk.al == 3) {
try {
history.pushState({}, '', '/' + curLoc);
return;
} catch(e) {}
}
window.chHashFlag = true;
location.hash = '#' + vk.navPrefix + curLoc;
if (withFrame && getLoc() != curLoc) {
setFrameContent(curLoc);
}
}
}
var locChecker = function() {
var loc = getLoc(true);
if (loc != curLoc) {
if (browser.msie6) {
location.reload(true);
} else {
setFrameContent(loc);
}
}
}
var checker = function(force) {
var l = getLoc();
if (l == curLoc && force !== true) {
return;
}
options.onLocChange(l);
curLoc = l;
if (withFrame && location.hash.replace('#' + vk.navPrefix, '') != l) {
location.hash = '#' + vk.navPrefix + l;
}
}
var checkTimer;
var frameChecker = function() {
try {
if (frame.contentWindow.document.readyState != 'complete') {
return;
}
} catch(e) {
return;
}
checker();
}
var init = function() {
if (vk.al == 1) {
checker(true);
}
if (vk.al < 3) {
if (withFrame) {
frame = document.createElement('iframe');
frame.id = 'hab_frame';
frame.attachEvent('onreadystatechange', frameChecker);
frame.src = 'al_loader.php?act=hab_frame&loc=' + encodeURIComponent(curLoc);
utilsNode.appendChild(frame);
checkTimer = setInterval(locChecker, 200);
} else {
if ('onhashchange' in window) {
addEvent(window, 'hashchange', function() {
if (window.chHashFlag) {
window.chHashFlag = false;
} else {
checker();
}
});
} else {
checkTimer = setInterval(checker, 200);
}
}
} else if (vk.al == 3) {
addEvent(window, 'popstate', checker);
}
}
return {
setLoc: setLoc,
getLoc: getLoc,
init: init,
setOptions: function(params) {
options = extend(options, params);
},
checker: checker,
stop: function() {
if (vk.al < 3) {
clearInterval(checkTimer);
if (withFrame) {
frame.detachEvent('onreadystatechange', frameChecker);
}
} else if (vk.al == 3) {
removeEvent(window, 'popstate', checker);
}
}
}
}
window.hab = new HistoryAndBookmarks({onLocChange: function(loc) {
nav.go('/' + loc, undefined, {back: true});
}});
function checkEvent(e) {
return (e && (e.which > 1 || e.button > 1 || e.ctrlKey));
}
function leftBlockOver(block) {
var timer = 'timer', over = 1;
if (!block.id) {
block = ge('left_hide' + block);
over = 0;
}
if (over || !block.timer) {
if (block.showing) {
removeAttr(block, 'showing');
} else {
animate(block, {opacity: over ? 1 : 0.5}, 200);
if (over) {
block.showing = 1;
}
}
}
if (block.timer) {
clearTimeout(block.timer);
removeAttr(block, 'timer');
}
}
function leftBlockOut(block) {
var opacity = 0.5;
if (!block.id) {
block = ge('left_hide' + block);
opacity = 0;
}
block.timer = setTimeout(function() {
animate(block, {opacity: opacity}, 200);
removeAttr(block, 'timer');
}, 1);
}
function leftBlockHide(block, hash) {
ajax.post('al_index.php', {act: 'hide_block', block: block, hash: hash});
hide('left_block' + block);
}
function leftAdBlockHide(blockId, url) {
ajax.post(url, {}, {onDone: function(response) {
if (!response.done) return;
var box = ge('ad_box' + blockId);
var mask = ge('ad_hide_mask' + blockId);
if (!box || !mask) return false;
mask.timer = setTimeout(function() {
animate(mask, {opacity: 1}, 200);
delete mask.timer;
}, 0);
var x = getXY(box), s = getSize(box), btop = 1, bbot = 1;
if (box.style.borderTop == '0px') {
btop = 0;
}
if (btop) {
s[1] -= btop;
}
if (bbot) {
s[1] -= bbot;
}
var textH = (mask.firstChild.nextSibling === null) ? 40 : 108;
var padtop;
if (s[1] < textH + 10) {
s[1] = textH + 10;
padtop = Math.floor((s[1] - textH) / 2);
box.style.height = s[1] - 6 - padtop + 'px';
}
var padtop = Math.floor((s[1] - textH) / 2);
setStyle(mask, {left: 4 /* x[0] */, top: x[1], height: s[1] - padtop, paddingTop: padtop, display: 'block'});
}});
var hideX = ge('left_hide' + blockId);
if (hideX && hideX.parentNode) {
hideX.parentNode.removeChild(hideX);
}
return false;
}
function updateAdsCounters(ad) {
if (vk.zero) return;
(new Image()).src = 'http://www.tns-counter.ru/V13a***R>' + document.referrer.replace(/\*/g,'%2a') + '*vkontakte_ru/ru/UTF-8/tmsec=' + (vk.intnat ? 'vk' : 'vkontakte') + '_total/' + Math.round(Math.random() * 1000000000);
(new Image()).src = 'http://counter.yadro.ru/hit?r' + escape(document.referrer) + (window.screen === undefined ? '' : ';s' + screen.width + '*' + screen.height + '*' + (screen.colorDepth ? screen.colorDepth : screen.pixelDepth)) + ';u' + escape(document.URL) + ';' + Math.random() + '';
if (!ad) {
hide('banner1', 'banner2');
}
bnr1.data = ad ? extend(clone(ad), {p1: ad.lp1, p2: ad.lp2}) : false;
bnr2.data = ad ? extend(clone(ad), {p1: ad.bp1, p2: ad.bp2}) : false;
bnr1.update();
bnr2.update();
onBodyScroll();
}
function handlePageParams(params) {
vk.id = positive(params.id);
if (vk.noleftmenu && !params.noleftmenu) {
ge('page_body').className = ge('footer_wrap').className = 'fl_r';
show('side_bar');
} else if (!vk.noleftmenu && params.noleftmenu) {
hide('side_bar');
ge('page_body').className = ge('footer_wrap').className = 'simple';
}
vk.noleftmenu = params.noleftmenu;
if (vk.notopmenu && !params.notopmenu) {
show('quick_search', 'top_links', 'qsearch_border', 'bottom_nav');
} else if (!vk.notopmenu && params.notopmenu) {
hide('quick_search', 'top_links', 'qsearch_border', 'bottom_nav');
}
vk.notopmenu = params.notopmenu;
var confMail = ge('confirm_mail_wrap'), chPhone = ge('change_phone_wrap');
if (confMail) {
if (!params.nomail) {
confMail.parentNode.removeChild(confMail);
} else if (params.notopbars) {
hide(confMail);
} else {
show(confMail);
}
}
vk.nomail = params.nomail;
if (chPhone) {
if (!params.chphone) {
chPhone.parentNode.removeChild(chPhone);
} else if (params.notopbars) {
hide(chPhone);
} else {
show(chPhone);
}
}
vk.nophone = intval(params.nophone);
if (vk.id) {
ge('left_blocks').innerHTML = (params.leftblocks || '');
}
setTimeout(updateAdsCounters.pbind(params.ad), 10);
if (!params.counters) return;
var cnts = (params.counters || '').split(',');
var i = 0, sep = false, sh = false, ids = ['fr', 'ph', 'vid', 'msg', 'nts', 'gr', 'ev', 'wsh', 'mat', 'op', 'ap', 'ques', 'ads', 'nws'];
var lnks = ['friends', 'albums' + vk.id, 'video', 'mail', 'notes', 'groups.php', 'events.php', 'gifts.php?act=wishlist', 'matches.php', 'opinions.php', 'apps.php', 'questions.php', 'ads.php?act=office', 'feed'];
var adds = ['', 'act=added', 'section=tagged', '', 'act=comments', '', '', '', '', '', 'act=notifications', '', '', 'section=mentions'];
var allnks = [1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1];
if (vk.counts === undefined) {
vk.counts = {};
}
if (vk.al_video) {
lnks[2] = 'video';
allnks[2] = 1;
adds[2] = 'section=tagged';
}
if (vk.default_im) {
lnks[3] = 'im';
}
for (; i < 14; ++i) {
if (vk.counts[i] === cnts[i]) {
continue;
}
vk.counts[i] = cnts[i];
var v = intval(cnts[i]), e = ge('l_' + ids[i]);
if (i == 8) {
sep = e.previousSibling;
} else if (i == 3) {
ge('top_new_msg').innerHTML = (v > 0) ? (' <b>(</b><span>' + v + '</span><b>)</b>') : '';
}
if (v < 0) {
hide(e);
} else {
geByTag1('span', e.firstChild).innerHTML = v ? ('(<b>' + v + '</b>)') : '';
if (i != 7) {
e.firstChild.href = '/' + lnks[i] + ((v && adds[i]) ? ('?' + adds[i]) : '');
e.firstChild.onclick = (allnks[i] ? function (ev) { return nav.go(this, ev);} : null);
} else {
e.firstChild.href = '/' + (v ? ('gifts.php?act=wish&wish=' + vk.id + '_' + intval(cnts[i].split(':')[1])) : lnks[i]);
}
show(e);
}
}
for (var e = sep.nextSibling; e; e = e.nextSibling) {
if (e.tagName && e.tagName.toLowerCase() == 'li' && isVisible(e)) {
sh = true;
break;
}
}
(sh ? show : hide)(sep);
for (; i < cnts.length; ++i) {
var id_v = cnts[i].split(':'), e = ge('l_app' + intval(id_v[0]));
if (!e) continue;
geByTag1('span', e.firstChild).innerHTML = intval(id_v[1]) ? ('(<b>' + intval(id_v[1]) + '</b>)') : '';
}
}
function processDestroy(c) {
if (c._back && c._back.hide && c == cur) {
for (var i in c._back.hide) {
try {c._back.hide[i]();}catch(e){}
}
}
if (!c.destroy || !c.destroy.length) return;
for (var i in c.destroy) {
try {c.destroy[i](c);}catch(e){}
}
}
var globalHistory = [];
function showSideBackLink(loc, text, check) {
if (loc && check) {
var i = 0, l = globalHistory.length;
for (; i < l; ++i) {
if (globalHistory[i].loc == loc) {
break;
}
}
if (i == l) {
loc = false;
}
}
_tbLink.loc = loc;
if (loc) {
extend(_tbLink, {href: '/' + loc, innerHTML: text});
show(_tbLink);
} else {
hide(_tbLink);
}
show(_sbLink);
updSideBackLink();
}
var nav = {
getData: function(loc) {
if (loc.length) {
for (var i in navMap) {
if (i[0] == '<') continue;
var m = loc.match(new RegExp('^' + i, 'i'));
if (m) {
return {url: navMap[i][0], files: navMap[i][1]};
}
}
var m = loc.match(/^[a-z0-9\-_]+\.php$/i);
if (m) {
return {url: loc};
}
return {url: navMap['<other>'][0], files: navMap['<other>'][1]};
}
return {url: navMap['<void>'][0], files: navMap['<void>'][1]};
},
reload: function(opts) {
opts = opts || {};
if (opts.force) {
hab.stop();
location.href = '/' + nav.strLoc;
} else {
nav.go('/' + nav.strLoc, undefined, extend({nocur: true}, opts));
}
},
go: function(loc, ev, opts) {
if (checkEvent(ev)) return;
if (loc.tagName && loc.tagName.toLowerCase() == 'a' && loc.href) {
loc = loc.href;
}
var strLoc = '', objLoc = {};
if (typeof(loc) == 'string') {
loc = loc.replace(new RegExp('^(http://' + locHost + ')?/?', 'i'), '');
strLoc = loc;
objLoc = nav.fromStr(loc);
} else {
if (!loc[0]) loc[0] = '';
strLoc = nav.toStr(loc);
objLoc = loc;
}
if (window.audioPlayer && audioPlayer.id) {
if (objLoc[0] != 'audio' && objLoc[0] != 'al_audio.php' || nav.objLoc[0] != 'audio' && nav.objLoc[0] != 'al_audio.php') {
audioPlayer.stop();
}
}
if (isVisible(ge('gp'))) {
if (objLoc[0] != 'audio' && objLoc[0] != 'al_audio.php' || nav.objLoc[0] != 'audio' && nav.objLoc[0] != 'al_audio.php') {
toggleGlobalPlayer(false);
}
}
opts = opts || {};
if (!opts.nocur) {
var changed = clone(objLoc);
for (var i in nav.objLoc) {
if (nav.objLoc[i] == changed[i]) {
delete(changed[i]);
} else if (changed[i] === undefined) {
changed[i] = false;
}
}
if (zNav(clone(changed)) === false) {
return false;
}
for (var i in (cur.nav || {})) {
if (cur.nav[i](clone(changed), nav.objLoc, objLoc, opts) === false) {
return false;
}
}
}
if (vk.al == 4) {
location.href = '/' + strLoc;
return false;
}
if (opts.back) {
for (var i = 0, l = globalHistory.length; i < l; ++i) {
if (globalHistory[i].loc == strLoc) {
var h = globalHistory.splice(i, 1)[0];
var wNode = ge('wrap3'), tNode = ge('title');
if (window.tooltips) tooltips.destroyAll();
processDestroy(cur);
radioBtns = h.radioBtns;
ajaxCache = h.ajaxCache;
boxQueue.hideAll();
if (layers.fullhide) layers.fullhide(true);
hide(_sbLink, _tbLink);
cur = h.cur;
if (gSearch.on) gSearch.hide();
setTimeout(function() {
wNode.innerHTML = '';
wNode.parentNode.replaceChild(h.content, wNode);
scrollNode.scrollTop = h.scrollTop;
document.title = h.htitle;
tNode.innerHTML = h.title;
setStyle(tNode.parentNode, 'display', h.hideHeader ? 'none' : 'block');
for (var i = 0, l = cur._back.show.length; i < l; ++i) cur._back.show[i]();
nav.setLoc(strLoc);
var b = h.back || {};
setTimeout(showSideBackLink.pbind(b[0], b[1], true), 10);
}, 20);
return false;
}
}
}
var dest = objLoc[0];
delete(objLoc[0]);
var where = nav.getData(dest);
if (where.files) {
stManager.add(where.files);
}
where.params = extend({__query: dest, al_id: vk.id}, objLoc);
var done = function(title, html, js, params) {
if (stVersions['common.js'] > StaticFiles['common.js'].v) {
nav.setLoc(params.loc || '');
location.reload(true);
return;
}
var newPage = (where.params.al_id === undefined) || (where.params.al_id != params.id);
var _back = (strLoc != (cur._back || {}).loc) && cur._back, wNode = ge('wrap3'), tNode = ge('title'), hist = false;
if (window.tooltips) tooltips.destroyAll();
if (gSearch.on) gSearch.hide();
if (_back && !newPage) {
hist = {
loc: _back.loc || nav.strLoc,
cur: cur,
radioBtns: radioBtns,
ajaxCache: ajaxCache,
scrollTop: scrollNode.scrollTop,
htitle: document.title.toString(),
back: _tbLink.loc ? [_tbLink.loc, _tbLink.innerHTML] : false
};
if (tNode && tNode.parentNode && !isVisible(tNode.parentNode)) {
hist.hideHeader = true;
}
for (var i = 0, l = globalHistory.length; i < l; ++i) {
if (globalHistory[i].loc == hist.loc) {
var h = globalHistory.splice(i, 1)[0];
processDestroy(h.cur);
h.content.innerHTML = '';
--i; --l;
}
}
if (globalHistory.length > 2) {
var h = globalHistory.shift();
processDestroy(h.cur);
h.content.innerHTML = '';
}
for (var i = 0, l = cur._back.hide.length; i < l; ++i) cur._back.hide[i]();
showSideBackLink(hist.loc, _back.text);
} else {
processDestroy(cur);
if (globalHistory.length) {
var h = globalHistory.shift();
processDestroy(h.cur);
h.content.innerHTML = '';
}
showSideBackLink();
}
radioBtns = {};
ajaxCache = {};
boxQueue.hideAll();
if (layers.fullhide) layers.fullhide(true);
cur = {destroy: [], nav: []};
if (newPage) {
cleanElems('quick_login_button', 'quick_expire', 'search_form', 'top_links', 'bottom_nav')
while(globalHistory.length) processDestroy(globalHistory.shift().cur);
pageNode.innerHTML = html;
if (!browser.mobile) onBodyResize(true);
} else {
if (_back) {
var newW = ce('div', {id: 'wrap3'});
extend(hist, {
content: wNode.parentNode.replaceChild(newW, wNode),
title: tNode.innerHTML
});
globalHistory.push(hist);
wNode = newW;
}
wNode.innerHTML = html;
tNode.innerHTML = title;
(title ? show : hide)(tNode.parentNode);
}
handlePageParams(params);
if (!opts.noscroll && !params.noscroll) scrollToTop(0);
var wide = window.wideLayout;
window.wideLayout = false;
eval('(function(){' + js + ';})()');
if (wide && !window.wideLayout) {
ge('page_layout').style.width = '791px';
ge('page_body').style.width = '631px';
}
for (var i = 0, l = ajax.framedata.length; i < l; ++i) {
var d = ajax.framedata[i];
setTimeout(ajax._receive.pbind(d[0], d[1], d[2]), 0);
}
ajax.framedata = false;
if (browser.mobile) onBodyResize();
setTimeout(nav.setLoc.pbind(params.loc || ''), browser.chrome ? 100 : 50);
}
ajax.post(where.url, where.params, {onDone: function() {
var a = arguments;
if (__debugMode) {
done.apply(null, a);
} else try {
done.apply(null, a);
} catch (e) {
topError(e, 15);
}
}, onFail: opts.onFail || function(text) {
if (!text) return;
setTimeout(showFastBox(getLang('global_error'), text).hide, 2000);
return true;
}, frame: opts.noframe ? 0 : 1, canReload: true, showProgress: showTitleProgress, hideProgress: hideTitleProgress, cache: opts.search ? 1 : ''});
return false;
},
setLoc: function(loc) {
if (typeof(loc) == 'string') {
nav.strLoc = loc;
nav.objLoc = nav.fromStr(loc);
} else {
nav.strLoc = nav.toStr(loc);
nav.objLoc = loc;
}
hab.setLoc(nav.strLoc);
},
change: function(loc, ev, opts) {
var params = clone(nav.objLoc);
each(loc, function(i,v) {
if (v === false) {
delete params[i];
} else {
params[i] = v;
}
});
return nav.go(params, ev, opts);
},
fromStr: function(str) {
var res = str.split('?');
return extend(q2ajx(res[1] || ''), {'0': res[0] || ''});
},
toStr: function(obj) {
obj = clone(obj);
var res = obj[0] || '';
delete(obj[0]);
var str = ajx2q(obj);
return str ? (res + '?' + str) : res;
},
init: function() {
nav.strLoc = hab.getLoc();
nav.objLoc = nav.fromStr(nav.strLoc);
}
}
nav.init();
/**
* Cookies
**/
var _cookies;
function _initCookies() {
_cookies = {};
var ca = document.cookie.split(';');
var re = /^[\s]*([^\s]+?)$/i;
for (var i = 0; i < ca.length; i++) {
var c = ca[i].split('=');
if (c.length == 2) {
_cookies[c[0].match(re)[1]] = unescape(c[1].match(re) ? c[1].match(re)[1] : '');
}
}
}
function getCookie(name) {
_initCookies();
return _cookies[name];
}
function setCookie(name, value, days) {
var expires = '';
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = '; expires='+date.toGMTString();
}
var domain = locDomain;
document.cookie = name + '='+escape(value) + expires + '; path=/' + (domain ? '; domain=.' + domain : '');
}
/**
* Other stuff
**/
function dispatchIntro(step, params) {
if (typeof dispatchIntroEvent != 'undefined') {dispatchIntroEvent(step, params);}
}
function parseLatin(text){
var outtext = text;
var lat1 = ['yo','zh','kh','ts','ch','sch','shch','sh','eh','yu','ya','YO','ZH','KH','TS','CH','SCH','SHCH','SH','EH','YU','YA',"'"];
var rus1 = ['ё', 'ж', 'х', 'ц', 'ч', 'щ', 'щ', 'ш', 'э', 'ю', 'я', 'Ё', 'Ж', 'Х', 'Ц', 'Ч', 'Щ', 'Щ', 'Ш', 'Э', 'Ю', 'Я', 'ь'];
for (var i = 0; i < lat1.length; i++) {
outtext = outtext.split(lat1[i]).join(rus1[i]);
}
var lat2 = 'abvgdezijklmnoprstufhcyABVGDEZIJKLMNOPRSTUFHCYёЁ';
var rus2 = 'абвгдезийклмнопрстуфхцыАБВГДЕЗИЙКЛМНОПРСТУФХЦЫеЕ';
for (var i = 0; i < lat2.length; i++) {
outtext = outtext.split(lat2.charAt(i)).join(rus2.charAt(i));
}
return (outtext == text) ? null : outtext;
}
function placeholderSetup(id, curVal, back) {
var el = ge(id);
if (!el) return;
var ph = el.getAttribute('placeholder') || el.placeholder;
if (el.phevents || !ph) {
return;
}
el.setAttribute('placeholder', '');
var prop = [];
each(['Top', 'Bottom', 'Left', 'Right'], function(i,v) {
prop.push('margin' + v);
prop.push('padding' + v);
prop.push('border' + v + 'Width');
});
var pad = extend(getStyle(el, prop), {borderStyle:'solid', borderColor:'#FFF'});
b1 = ce('div', {className: 'input_back_wrap'});
var to, b = ce('div', {className: 'input_back', innerHTML: '<div>' + ph + '</div>'}, pad), c = b.firstChild;
el.phonsize = function() {
var s = getSize(el, true);
if (s[0] <= 0) {
s[0] = parseFloat(getStyle(el, 'width', false));
}
if (s[1] <= 0) {
s[1] = parseFloat(getStyle(el, 'height', false));
}
setStyle(b, {width: s[0], height: s[1]});
}
if (browser.msie && !browser.msie8) {
setStyle(b, {marginTop: 1});
}
el.phonfocus = function(hid) {
el.focused = true;
if (hid) {
setStyle(el, {backgroundColor: '#FFF'});
hide(b);
}
el.phonsize();
checkValue(true, false);
}
el.phonblur = function() {
el.focused = false;
setStyle(el, {backgroundColor: 'transparent'});
show(b);
el.phonsize();
checkValue(false, true);
}
var shown = true;
var animation = null;
if (el.value) {
shown = false;
hide(c);
};
var checkValue = function(focus, blur) {
var cv = function() {
var val = el.value;
if (shown && (back && val || !back && (focus || val))) {
hide(c);
shown = false;
} else if (!shown && !val && (back || blur)) {
show(c);
shown = true;
}
if (back && focus && !val) {
clearTimeout(animation);
animation = setTimeout(function() {
animate(c, {color: '#C0C8D0'}, 200);
}, 100);
}
if (back && blur && !val) {
clearTimeout(animation);
animation = setTimeout(function() {
animate(c, {color: '#777777'}, 200);
}, 100);
}
};
if (browser.mobile) {
cv();
} else {
setTimeout(cv, 0);
}
}
var onFocus = function() {el.phonfocus();}
var onBlur = function() {el.phonblur(); return false;}
if (!browser.opera_mobile) {
addEvent(c, 'focus click', function() { el.blur(); el.focus(); });
addEvent(el, 'focus', onFocus);
addEvent(el, 'keydown paste cut input', checkValue);
}
addEvent(el, 'blur', onBlur);
if (el.id != 'search_input') {
cur.destroy.push(function() {
removeEvent(el, 'focus', onFocus);
removeEvent(el, 'blur', onBlur);
removeEvent(el, 'keydown paste cut input', checkValue);
});
}
el.getValue = function(){return el.value;};
el.setValue = function(v){el.value = v; checkValue();}
el.phevents = true;
b1.appendChild(b);
el.parentNode.insertBefore(b1, el);
setStyle(el, {backgroundColor:'transparent',zIndex:parseInt(getStyle(b, 'zIndex')) + 1,position:'relative',resize: 'none'});
el.phonsize();
}
function val (input, value) {
input = ge(input);
if (!input) return;
if (value !== undefined) {
if (input.setValue) {
input.setValue(value);
input.phonblur && input.phonblur();
} else {
input.value = value;
}
}
return input.getValue ? input.getValue() : input.value;
}
function focus(el, from, to) {
el = ge(el);
try {
el.focus();
if (from === undefined || from === false) from = el.value.length;
if (to === undefined || to === false) to = from;
if (el.createTextRange) {
var range = el.createTextRange();
range.collapse(true);
range.moveEnd('character', from);
range.moveStart('character', to);
range.select();
} else if (el.setSelectionRange) {
el.setSelectionRange(from, to);
}
} catch(e) {}
}
// Message box
var _message_box_guid = 0, _message_boxes = [], _show_flash_timeout = 0;
var __bq = boxQueue = {
hideAll: function() {
if (__bq.count()) {
var box = _message_boxes[__bq._boxes.pop()];
box._in_queue = false;
box._hide();
}
while (__bq.count()) {
var box = _message_boxes[__bq._boxes.pop()];
box._in_queue = false;
}
},
hideLast: function() {
if (__bq.count()) {
_message_boxes[__bq._boxes[__bq.count() - 1]].hide();
}
},
hideBGClick: function(e) {
if (e && e.target && /^box_layer/.test(e.target.id)) {
__bq.hideLast();
}
},
count: function() {
return __bq._boxes.length;
},
_show: function(guid) {
var box = _message_boxes[guid];
if (!box || box._in_queue) return;
if (__bq.count()) {
_message_boxes[__bq._boxes[__bq.count() - 1]]._hide(true, true);
} else if (window.tooltips) {
tooltips.hideAll();
}
box._in_queue = true;
var notFirst = __bq.count() ? true : false;
__bq.curBox = guid;
box._show(notFirst || __bq.currHiding, notFirst);
__bq._boxes.push(guid);
},
_hide: function(guid) {
var box = _message_boxes[guid];
if (!box || !box._in_queue || __bq._boxes[__bq.count() - 1] != guid || !box.isVisible()) return;
box._in_queue = false;
__bq._boxes.pop();
box._hide(__bq.count() ? true : false);
if (__bq.count()) {
var prev_guid = __bq._boxes[__bq.count() - 1];
__bq.curBox = prev_guid;
_message_boxes[prev_guid]._show(true, true, true);
}
},
_boxes: [],
curBox: 0
}
function curBox() { var b = _message_boxes[__bq.curBox]; return (b && b.isVisible()) ? b : null; }
if (!browser.mobile) {
addEvent(document, 'keydown', function(e) {
if (e.keyCode == KEY.ESC && __bq.count()) {
__bq.hideLast();
return false;
}
});
}
function MessageBox(options) {
var defaults = {
width: 410,
animSpeed: browser.msie ? 0 : 200,
height: 'auto',
bodyStyle: '',
selfDestruct: true,
progress: false
};
options = extend(defaults, options);
var buttonsCount = 0,
boxContainer, boxBG, boxContainer, boxLayout;
var boxTitleWrap, boxTitle, boxCloseButton, boxBody;
var boxControlsWrap, boxControls, boxProgress, boxControlsText;
var guid = _message_box_guid++, visible = false;
if (!options.progress) options.progress = 'box_progress' + guid;
var controlsStyle = options.hideButtons ? ' style="display: none"' : '';
boxContainer = ce('div', {
className: 'popup_box_container',
innerHTML: '<div class="box_layout"><div class="box_title_wrap"><div class="box_x_button"></div><div class="box_title"></div></div><div class="box_body" style="' + options.bodyStyle + '"></div><div class="box_controls_wrap"' + controlsStyle + '><div class="box_controls"><div class="progress" id="' + options.progress + '"></div><div class="box_controls_text"></div></div></div></div>'
}, {
display: 'none'
});
boxContainer.className = 'popup_box_container';
hide(boxContainer);
boxLayout = boxContainer.firstChild;
boxTitleWrap = boxLayout.firstChild;
boxCloseButton = boxTitleWrap.firstChild;
boxTitle = boxCloseButton.nextSibling;
boxBody = boxTitleWrap.nextSibling;
boxControlsWrap = boxBody.nextSibling;
boxControls = boxControlsWrap.firstChild;
boxProgress = boxControls.firstChild;
boxControlsText = boxProgress.nextSibling;
boxLayer.appendChild(boxContainer);
refreshBox();
refreshCoords();
// Refresh box position
function refreshCoords() {
var height = window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : boxLayerBG.offsetHeight);
var top = browser.mobile ? intval(window.pageYOffset) : 0;
containerSize = getSize(boxContainer);
boxContainer.style.marginTop = Math.max(0, top + (height - containerSize[1]) / 3) + 'px';
}
// Refresh box properties
function refreshBox() {
// Set title
if (options.title) {
boxTitle.innerHTML = options.title;
removeClass(boxBody, 'box_no_title');
show(boxTitleWrap);
} else {
addClass(boxBody, 'box_no_title');
hide(boxTitleWrap);
}
// Set box dimensions
boxContainer.style.width = typeof(options.width) == 'string' ? options.width : options.width + 'px';
boxContainer.style.height = typeof(options.height) == 'string' ? options.height : options.height + 'px';
}
// Add button
function addButton(label, onclick, type) {
++buttonsCount;
if (type=='no') type = 'gray';
if (type=='yes') type = 'blue';
var buttonWrap = ce('div', {
className: 'fl_r button_' + (type?type:'blue'),
innerHTML: '<button>'+label+'</button>'
});
boxControls.insertBefore(buttonWrap, boxProgress);
createButton(buttonWrap.firstChild, onclick);
return buttonWrap;
}
// Add custom controls text
function setControlsText(text) {
boxControlsText.innerHTML = text;
}
// Remove buttons
function removeButtons() {
var buttons = [];
each (boxControls.childNodes, function(i, x) {
if (x && x.firstChild && x.className != 'box_controls_text') {
cleanElems(x.firstChild.firstChild);
buttons.push(x);
}
});
each(buttons, function() { boxControls.removeChild(this); });
}
var destroyMe = function() {
if (options.onClean) options.onClean();
removeButtons();
cleanElems(boxContainer, boxCloseButton, boxTitleWrap, boxControlsWrap);
boxLayer.removeChild(boxContainer);
delete _message_boxes[guid];
}
// Hide box
var hideMe = function(showingOther, tempHiding) {
if (!visible) return;
visible = false;
var speed = (showingOther === true) ? 0 : options.animSpeed;
if (options.hideOnBGClick) {
removeEvent(document, 'click', __bq.hideBGClick);
}
if (isFunction(options.onBeforeHide)) {
options.onBeforeHide();
}
if (_layerAnim && !showingOther) {
layers.boxhide();
}
var onHide = function () {
if (__bq.currHiding == _message_boxes[guid]) {
__bq.currHiding = false;
}
if (!_layerAnim && !_message_boxes[guid].shOther && !showingOther) {
layers.boxhide();
}
if (!tempHiding && options.selfDestruct) {
destroyMe();
} else {
hide(boxContainer);
}
if (options.onHide) {
options.onHide();
}
}
if (speed > 0) {
__bq.currHiding = _message_boxes[guid];
fadeOut(boxContainer, speed, onHide);
} else {
onHide();
}
}
// Show box
function showMe(noAnim, notFirst, isReturned) {
if (visible || !_message_boxes[guid]) return;
visible = true;
var speed = (noAnim === true || notFirst) ? 0 : options.animSpeed;
if (options.hideOnBGClick) {
addEvent(document, 'click', __bq.hideBGClick);
}
// Show blocking background
if (!notFirst) {
layers.boxshow();
}
if (__bq.currHiding) {
__bq.currHiding.shOther = true;
var cont = __bq.currHiding.bodyNode.parentNode.parentNode;
data(cont, 'tween').stop(true);
}
// Show box
if (speed > 0) {
fadeIn(boxContainer, speed);
} else {
show(boxContainer);
}
refreshCoords();
if (options.onShow) {
options.onShow(isReturned);
}
_message_box_shown = true;
}
var fadeToColor = function(color) {
return function() {
animate(this, {backgroundColor: color}, 200);
}
}
addEvent(boxCloseButton, 'mouseover', fadeToColor('#FFFFFF'));
addEvent(boxCloseButton, 'mouseout', fadeToColor('#9CB8D4'));
addEvent(boxCloseButton, 'click', __bq.hideLast);
var retBox = _message_boxes[guid] = {
guid: guid,
_show: showMe,
_hide: hideMe,
bodyNode: boxBody,
// Show box
show: function() {
__bq._show(guid);
return this;
},
progress: boxProgress,
showProgress: function() {
hide(boxControlsText);
show(boxProgress);
},
hideProgress: function() {
hide(boxProgress);
show(boxControlsText);
},
// Hide box
hide: function(attemptParam) {
if (isFunction(options.onHideAttempt) && !options.onHideAttempt(attemptParam)) return false;
__bq._hide(guid);
return true;
},
isVisible: function() {
return visible;
},
bodyHeight: function() {
return getStyle(boxBody, 'height');
},
// Insert html content into the box
content: function(html) {
if (options.onClean) options.onClean();
boxBody.innerHTML = html;
refreshCoords();
refreshBox();
return this;
},
// Add button
addButton: function(label, onclick, type, returnBtn) {
var btn = addButton(label, onclick ? onclick: this.hide, type);
return (returnBtn) ? btn : this;
},
setButtons: function(yes, onYes, no, onNo) {
var b = this.removeButtons();
if (!yes) return b.addButton(box_close);
if (no) b.addButton(no, onNo, 'no');
return b.addButton(yes, onYes);
},
// Set controls text
setControlsText: setControlsText,
// Remove buttons
removeButtons: function() {
removeButtons();
return this;
},
destroy: destroyMe,
// Update box options
setOptions: function(newOptions) {
if (options.hideOnBGClick) {
removeEvent(document, 'click', __bq.hideBGClick);
}
options = extend(options, newOptions);
if ('bodyStyle' in newOptions) {
var items = options.bodyStyle.split(';');
for (var i = 0; i < items.length; ++i) {
var name_value = items[i].split(':');
if (name_value.length > 1 && name_value[0].length) {
boxBody.style[trim(name_value[0])] = trim(name_value[1]);
if (boxBody.style.setProperty) {
boxBody.style.setProperty(trim(name_value[0]), trim(name_value[1]), '');
}
}
}
}
if (options.hideOnBGClick) {
addEvent(document, 'click', __bq.hideBGClick);
}
if (options.hideButtons) {
hide(boxControlsWrap);
} else {
show(boxControlsWrap);
}
refreshBox();
refreshCoords();
return this;
},
evalBox: function(js, url, params) {
var fn = eval('((function() { return function() { var box = this; ' + (js || '') + ';}; })())'); // IE :(
fn.apply(this, [url, params]);
}
}
return retBox;
}
function showBox(url, params, options, e) {
var opts = options || {}, box = new MessageBox(opts.params || {});
if (checkEvent(e)) return false;
if (url.substr(0, 1) != '/') url = '/' + url;
var done = function(title, html, js) {
try {
box.setOptions({title: title, bodyStyle: 'background: #FFF'});
box.content(html).evalBox(js, url, params);
if (isFunction(opts.onDone)) opts.onDone();
} catch(e) {
topError(e, 15);
box.hide();
}
}
var onDone = done;
if (opts.stat) {
stManager.add(opts.stat);
onDone = function(title, html, js) {
stManager.add(opts.stat, done.pbind(title, html, js));
}
}
var onFail = function(error) {
box.failed = true;
setTimeout(box.hide, 0);
if (isFunction(opts.onFail)) return opts.onFail(error);
}
box.setOptions({title: false, hideButtons: false, bodyStyle: 'background: #FFF url(/images/progress7.gif) center no-repeat'});
box.removeButtons().addButton(getLang('global_close'));
var h = intval(box.bodyHeight());
box.content('<div style="height: 50px"></div>');
box.show();
ajax.post(url, params, {onDone: onDone, onFail: onFail, cache: opts.cache});
return box;
}
function showTabbedBox(url, params, options, e) {
options = options || {};
options.stat = options.stat || [];
options.stat.push('box.js', 'boxes.css');
return showBox(url, params, options, e)
}
function showFastBox(o, c, yes, onYes, no, onNo) {
return (new MessageBox(typeof(o) == 'string' ? {title: o} : o)).content(c).setButtons(yes, onYes, no, onNo).show();
}
function showCaptchaBox(sid, dif, box, o) {
var done = function(e) {
if (e && e.keyCode !== undefined && e.keyCode != 10 && e.keyCode != 13) return;
var key = geByTag1('input', box.bodyNode);
if (!trim(key.value) && e !== true) {
focus(key);
return;
}
var imgs = geByTag1('img', box.bodyNode);
var captcha = imgs[0], loader = imgs[1];
removeEvent(key);
removeEvent(captcha);
show(geByClass1('progress', box.bodyNode));
hide(key);
o.onSubmit(sid, key.value);
}
var was_box = box ? true : false;
var difficulty = intval(dif) ? '' : '&s=1';
var imgSrc = o.imgSrc || '/captcha.php?sid=' + sid + difficulty;
if (!was_box) {
var content = '\
<div class="captcha">\
<div><img src="' + imgSrc + '"/></div>\
<div><input type="text" class="text" maxlength="7" /><div class="progress" /></div></div>\
</div>' + (o.addText || '');
box = showFastBox({
title: getLang('captcha_enter_code'),
width: 300,
onHide: o.onHide
}, content, getLang('captcha_send'), function() {
box.submit();
}, getLang('captcha_cancel'), function() {
var key = geByTag1('input', box.bodyNode);
var captcha = geByTag1('img', box.bodyNode);
removeEvent(key);
removeEvent(captcha);
box.hide();
});
}
box.submit = done.pbind(true);
var key = geByTag1('input', box.bodyNode);
var captcha = geByTag1('img', box.bodyNode);
if (was_box) {
key.value = '';
captcha.src = '/captcha.php?sid=' + sid + difficulty;
hide(geByClass1('progress', box.bodyNode));
}
show(key);
addEvent(key, 'keypress', done);
addEvent(captcha, 'click', function() {
this.src = '/captcha.php?sid=' + sid + difficulty + '&v=' + irand(1000000, 2000000);
});
focus(key);
return box;
}
// Three-state button
function createButton(el, onClick) {
el = ge(el);
if (!el || el.btnevents) return;
var p = el.parentNode;
if (hasClass(p, 'button_blue') || hasClass(p, 'button_gray')) {
if (isFunction(onClick))
el.onclick = onClick.pbind(el);
return;
}
var hover = false;
addEvent(el, 'click mousedown mouseover mouseout', function(e) {
if (hasClass(p, 'locked')) return;
switch (e.type) {
case 'click':
if (!hover) return;
el.className = 'button_hover';
onClick(el);
break;
case 'mousedown':
el.className = 'button_down';
break;
case 'mouseover':
hover = true;
el.className = 'button_hover';
break;
case 'mouseout':
el.className = 'button';
hover = false;
break;
}
});
el.btnevents = true;
}
function lockButton(el) {
if (!el || el.tagName.toLowerCase() != 'button') return;
var lock = ce('span', {className: 'button_lock'});
el.parentNode.insertBefore(lock, el);
el['old_width'] = el.style.width;
el['old_height'] = el.style.height;
var s = getSize(el.parentNode);
setStyle(el, {width: s[0] - 2, height: s[1] - 2});
if (browser.msie6 || browser.msie7) {
el['old_html'] = el.innerHTML; el.innerHTML = '';
} else {
el.style.textIndent = '-9999px';
}
}
function unlockButton(el) {
var lock = geByClass('button_lock', el.parentNode, 'span')[0];
if (!lock) return;
el.parentNode.removeChild(lock);
el.style.width = el['old_width'];
el.style.height = el['old_height'];
if (browser.msie6 || browser.msie7) el.innerHTML = el['old_html'];
el.style.textIndent = '';
}
function sbWidth() {
if (window._sbWidth === undefined) {
var t = ce('div', {innerHTML: '<div style="height: 75px;">1<br>1</div>'}, {
overflowY: 'scroll',
position: 'absolute',
width: '50px',
height: '50px'
});
bodyNode.appendChild(t);
window._sbWidth = t.offsetWidth - t.firstChild.offsetWidth - 1;
bodyNode.removeChild(t);
}
return window._sbWidth;
}
function imPopup(peer_id) {
if (window.event && (window.event.which == 2 || window.event.button == 1)) {
return true;
}
var params = 'scrollbars=0,resizable=1,menubar=0,location=0,width=810,height=669,toolbar=0,status=0';
var url = 'http://' + locHost + '/im.php?act=a_box&popup=1';
var js = 'window.im.activate_tab(0);';
if (peer_id) {
url += '&sel=' + peer_id;
js = 'window.im.add_peers(' + peer_id + ', ' + peer_id + ')';
}
url = 'javascript: try { ' + js + ' } catch(e) { document.location = "' + url + '"; void(0); }';
window.im_popup_window = window.open(url, 'im', params);
try {
if (!browser.chrome && !browser.msie && !browser.mozilla && !browser.safari && window.im_popup_window.im) {
window.im_already_box = new MessageBox({title: getLang('im_already_shown_title')});
im_already_box.content(getLang('im_already_shown'));
im_already_box.addButton(getLang('box_close'));
setTimeout('im_already_box.hide(400)', 2000);
im_already_box.show();
}
} catch (e) {}
if (!browser.msie) {
window.im_popup_window.blur();
}
window.im_popup_window.focus();
return false;
}
function checkTextLength(maxLen, inp, warn, nobr) {
var val = (inp.getValue) ? inp.getValue() : inp.value;
if (inp.lastLen === val.length) return;
inp.lastLen = val.length;
var countRealLen = function(text, nobr) {
var spec = {'&': 5, '<': 4, '>': 4, '"': 6, "\n": (nobr ? 1 : 4), "\r": 0, '!': 5, "'": 5};
var res = 0;
for (var i = 0; i < text.length; i++) {
var l = spec[text.charAt(i)], c = text.charCodeAt(i);
if (l !== undefined) res += l;
else if ((c > 0x80 && c < 0xC0) || c > 0x500) res += ('&#' + c + ';').length;
else res += 1;
}
return res;
}
var realLen = countRealLen(val, nobr);
warn = ge(warn);
if (realLen > maxLen - 100) {
show(warn);
if (realLen > maxLen) {
warn.innerHTML = getLang('text_exceeds_symbol_limit', realLen - maxLen);
} else {
warn.innerHTML = getLang('text_N_symbols_remain', maxLen - realLen);
}
} else {
hide(warn);
}
}
function autosizeSetup(el, options) {
el = ge(el);
if (!el) return;
if (el.autosize) {
el.autosize.update();
return;
}
options.minHeight = intval(options.minHeight) || intval(getStyle(el, 'height'));
options.maxHeight = intval(options.maxHeight);
var elwidth = intval(getStyle(el, 'width'));
if (elwidth < 1) {
elwidth = intval(getStyle(el, 'width', false));
}
el.autosize = {
options: options,
helper: ce('textarea', {className: 'ashelper'}, {
width: elwidth,
height: 10,
fontFamily: getStyle(el, 'fontFamily'),
fontSize: intval(getStyle(el, 'fontSize')) + 'px',
lineHeight: getStyle(el, 'lineHeight')
}),
handleEvent: function(val, e) {
var ch = e.charCode ? String.fromCharCode(e.charCode) : e.charCode;
if (ch === undefined) {
ch = String.fromCharCode(e.keyCode);
if (e.keyCode == 10 || e.keyCode == 13) {
ch = '\n';
} else if (!browser.msie && e.keyCode <= 40) {
ch = '';
}
}
if (!ch) {
return val;
}
if (!browser.msie) {
return val.substr(0, el.selectionStart) + ch + val.substr(el.selectionEnd);
}
var r = document.selection.createRange();
if (r.text) {
val = val.replace(r.text, '');
}
return val + ch;
},
update: function(e) {
var value = el.value;
if (e && e.type != 'blur' && e.type != 'keyup' && (!browser.msie || e.type == 'keypress')) {
if (!e.ctrlKey && !e.altKey) {
value = el.autosize.handleEvent(value, e);
}
}
if (!value) {
value = ' ';
}
if (el.autosize.helper.value != value) {
el.autosize.helper.value = value;
}
var opts = el.autosize.options;
var oldHeight = getSize(el, true)[1];
var newHeight = el.autosize.helper.scrollHeight;
if (newHeight < opts.minHeight) {
newHeight = opts.minHeight;
}
var newStyle = {overflow: 'hidden'};
if (opts.maxHeight && newHeight > opts.maxHeight) {
newHeight = opts.maxHeight;
newStyle = extend(newStyle, {overflow: 'auto', overflowX: 'hidden'});
}
if (oldHeight != newHeight) {
newStyle.height = newHeight;
setStyle(el, newStyle);
if (el.phonsize) el.phonsize();
if (isFunction(opts.onResize)) {
opts.onResize(newHeight);
}
}
}
}
utilsNode.appendChild(el.autosize.helper);
if (browser.opera_mobile) {
setStyle(el, {overflow: 'hidden'});
el.autosize.update();
addEvent(el, 'blur', el.autosize.update);
} else {
addEvent(el, 'keydown keyup keypress', el.autosize.update);
setTimeout(function() {
setStyle(el, {overflow: 'hidden'});
el.autosize.update();
}, 0);
}
}
function goAway(lnk, prms, e) {
if (checkEvent(e)) return true;
if (/https?:\/\/([a-zA-Z0-9\-_\.]+\.)?(vk\.com|vkontakte\.ru)(\/|$)/i.test(lnk)) {
location.href = lnk;
return false;
}
if (/http:\/\/(www\.)?(fontanka\.ru|regnum\.ru)(\/|$)/i.test(lnk)) {
window.open(lnk, '_blank');
return false;
}
var no_warning = intval(getCookie('remixsettings_bits'));
if (/https?:\/\/([a-zA-Z0-9\-_]+\.)(vk\.com|vkontakte\.ru)(\/|$)/i.test(locBase) || no_warning & 1) {
window.open('/away.php?to=' + encodeURIComponent(lnk) + ((prms && prms.h !== undefined) ? '&h=' + prms.h : ''), '_blank');
return false;
}
var params = extend({act: 'a_go', to: lnk}, prms || {});
return !showBox('away.php', params, {}, e);
}
function isChecked(el) {
el = ge(el);
return hasClass(el, 'on') ? 1 : '';
}
function checkbox(el, val) {
el = ge(el);
if (!el || hasClass(el, 'disabled')) return;
if (val === undefined) {
val = !isChecked(el);
}
if (val) {
addClass(el, 'on');
} else {
removeClass(el, 'on');
}
return false;
}
function disable(el, val) {
el = ge(el);
if (val === undefined) {
val = !hasClass(el, 'disabled');
}
if (val) {
addClass(el, 'disabled');
} else {
removeClass(el, 'disabled');
}
return false;
}
var radioBtns = {};
function radioval(name) {
return radioBtns[name] ? radioBtns[name].val : false;
}
function radiobtn(el, val, name) {
if (!radioBtns[name]) return;
each(radioBtns[name].els, function() {
if (this == el) {
addClass(this, 'on');
} else {
removeClass(this, 'on');
}
});
radioBtns[name].val = val;
}
function renderFlash(cont, opts, params, vars) {
if (!opts.url || !opts.id) {
return false;
}
opts = extend({
version: 9,
width: 1,
height: 1
}, opts);
var f = opts.url;
if (!stVersions[f]) {
stVersions[f] = '';
}
if (__debugMode && stVersions[f] < 1000000) stVersions[f] += irand(1000000, 2000000);
opts.url += ((opts.url.indexOf('?') == -1) ? '?' : '&') + '_stV=' + stVersions[f];
params = extend({
quality: 'high',
flashvars: ajx2q(vars)
}, params);
if (browser.flash < opts.version) {
// if (opts.express) {
// params.flashvars += '&MMplayerType=PlugIn&MMredirectURL=' + encodeURIComponent(locBase + location.hash);
// } else {
return false;
// }
}
ge(cont).innerHTML = browser.flashwrap(opts, params);
return true;
}
function playAudio() {
var args = arguments;
stManager.add('player.js', function() {
audioPlayer.operate.apply(null, args);
});
}
function playAudioNew() {
var args = arguments;
if (args[args.length-1] !== false) args = Array.prototype.slice.apply(arguments).concat([true]);
if (!browser.ipad) {
stManager.add(['new_player.js', 'new_player.css'], function() {
audioPlayer.operate.apply(null, args);
});
} else {
audioPlayer.operate.apply(null, args);
}
}
window.onLogout = window.onLoginDone = nav.reload;
function onLoginFailed(code, opts) {
switch (code) {
case 2: location.href = '/login.php?r=1&email=' + opts.email; break;
case 3: location.href = '/register.php?hash=' + opts.regh + '&gid=' + opts.inv; break;
case 4: location.href = '/login.php?m=1&email=' + opts.email; break;
default: location.href = '/login.php'; break;
}
}
function onLoginCaptcha(sid, dif) {
window.qloginBox = showCaptchaBox(sid, dif, window.qloginBox, {onSubmit: function(sid, key) {
ge('quick_captcha_sid').value = sid;
ge('quick_captcha_key').value = key;
ge('quick_login_form').submit();
}, onHide: function() { window.qloginBox = false; }});
}
function callHub(func, count) {
this.count = count || 1;
this.done = function(c) {
this.count -= c || 1;
if (this.count <= 0) {
func();
}
};
}
function showWriteMessageBox(e, id) {
gSearch.hide(e, true);
var box = showBox('al_mail.php', {act: 'write_box', to: id}, {params: {width: 450}, stat: ['page.js', 'mail.css'], cache: 1}, e);
if (box) cancelEvent(e);
return !box;
}
var gSearch = new (function() {
this.on = 0;
var self = this;
this.hub = new callHub(function() {
if (self.onShow) self.onShow();
}, 2);
this.hintsHub = new callHub(function() {
self.showStartHints();
}, 2);
this.load = function() {
if (!ge('quick_search')) return;
if (this.loading) return;
this.loading = true;
stManager.add('qsearch.js', function() {
self.hub.done();
});
ajax.post('hints.php', {act: 'a_start_hints'}, {onDone: function(text) {
self.startHintsText = trim(text);
self.hintsHub.done();
}});
},
this.show = function(e, noAnim) {
if (!ge('quick_search')) return;
if (this.on) {
return this.go(e);
}
this.on = 1;
show(self.sCont);
placeholderSetup('search_input');
ge('search_input').setAttribute('autocomplete', 'off');
addClass(ge('qsearch_link'), 'active');
this.prev_content = ge('content');
if (!this.qsearch_cont) {
this.qsearch_cont = ce('div', {id: 'content', innerHTML: '<div style="padding: 200px; text-align: center;"><img src="/images/progress7.gif"/></div>'});
}
// hide('header');
this.prev_content.parentNode.replaceChild(this.qsearch_cont, this.prev_content);
if (!this.loading) this.load();
self.hub.done();
self.hintsHub.done();
if (e) return cancelEvent(e);
};
this.go = function (e) {
var url = '/gsearch.php?section=' + (self.last_section || 'people') + '&q=' + trim(ge('search_input').value) + '&name=1';
cancelEvent(e || window.event);
location.href = url;
return false;
};
this.hide = function(e, force) {
if (!ge('quick_search')) return;
if ((self.active && !force) || !self.on) return;
self.on = 0;
toggleFlash();
if (self.beforeHide && self.beforeHide()) {
return true;
}
if (ge('search_input').setValue) {
ge('search_input').setValue('');
} else {
ge('search_input').value = '';
}
// show('header');
hide(self.sCont);
removeClass(ge('qsearch_link'), 'active');
self.qsearch_cont.parentNode.replaceChild(self.prev_content, self.qsearch_cont);
};
this.init = function(options) {
this.sCont = ge('quick_search');
this.opt = options || {};
};
var qsearch_start = false, qsearch_requested = false;
this.preload = function () {
var url = '/al_search.php', params = {__query: 'search', al_id: vk.id}, q = url + '#' + ajx2q(params);
if (globalAjaxCache[q] !== undefined) return;
globalAjaxCache[q] = -1
ajax.post(url, extend(params, {al: 1}), {onDone: function () {
var cb = globalAjaxCache[q];
globalAjaxCache[q] = arguments;
if (isFunction(cb)) {
cb.apply(window, globalAjaxCache[q]);
}
}, onFail: function () {
delete globalAjaxCache[q];
}});
};
})();
// opts: {url: '...', params: {}} or {text: '...'} or {content: '...'}
var _cleanHide = function(el) {
if (el.temphide) {
removeEvent(el, 'mouseout', el.temphide);
removeAttr(el, 'temphide');
}
}
function showTooltip(el, opts) {
_cleanHide(el);
var showing = true;
el.temphide = function() {
showing = false;
}
addEvent(el, 'mouseout', el.temphide);
if (opts.stat) stManager.add(opts.stat);
stManager.add(['tooltips.js', 'tooltips.css'], function() {
if (!showing) return;
_cleanHide(el);
if (!el.tt || !el.tt.el || opts.force) {
tooltips.create(el, opts);
}
tooltips.show(el, opts);
});
}
function reportAd(aid) {
showBox('reports.php', {act: 'a_report_ad_box', aid: aid}, {params: {width: 350}, stat: ['ui_controls.js', 'ui_controls.css']});
}
function updateMoney(data) {
if (!data) return;
vk.balance = data[0];
vk.money = data[1];
var el = ge('left_money_box');
if (data[2]) {
if (el) el.innerHTML = data[2];
show(el);
} else {
hide(el);
}
}
function zNav(changed, opts) {
var z = changed.z;
delete(changed.z);
if (!isEmpty(changed)) return;
if (z === false) {
if (layers.fullhide) {
layers.fullhide();
}
return false;
}
if (!z) return;
var zType = z.match(/^([a-z]+)(-?\d+_\d+)\/?(.*)/i);
if (zType) {
var onFail = function() {
delete nav.objLoc.z;
nav.setLoc(nav.objLoc);
return true;
};
switch (zType[1]) {
case 'photo':
showPhoto(zType[2], zType[3], extend(opts || {}, {onFail: onFail}));
return false;
break;
case 'video':
showVideo(zType[2], zType[3], extend(opts || {}, {onFail: onFail}));
return false;
break;
}
}
}
function showPhotoProgress(img) {
var xy = getXY(img), sz = getSize(img)
setStyle(ge('global_prg'), {
left: (xy[0] + Math.floor((sz[0] + 6) / 2) - 16) + 'px',
top: (xy[1] + Math.floor((sz[1] + 9) / 2) - 4) + 'px',
display: 'block'
});
}
function showPhoto(photoId, listId, options, ev) {
if (checkEvent(ev)) return;
var stat = ['photoview.js', 'photoview.css'], res;
if (options.img) {
options.showProgress = showPhotoProgress.pbind(options.img);
options.hideProgress = hide.pbind('global_prg');
}
if (window.photoview && (photoview.showPhoto(photoId, listId, options) === false)) {
return false;
}
if (options.temp) {
stManager.add(stat, function() {
extend(cur, {pvBig: options.big, pvDark: options.dark});
if (!cur.pvData) cur.pvData = {};
cur.pvData.temp = [options.temp];
photoview.show('temp', 0);
});
}
if (window.photoview) {
return false;
}
extend(options, {onDone: function(lst) {
photoview.list(photoId, listId, lst);
photoview.loaded.apply(window, arguments);
photoview.showPhoto(photoId, listId, options);
}, stat: stat, cache: 1});
ajax.post('al_photos.php', {act: 'show', photo: photoId, list: listId}, options);
return false;
}
function showVideo(videoId, listId, options, ev) {
if (checkEvent(ev)) return true;
var stat = ['videoview.js', 'videoview.css'];
var hub = new callHub(function() {
videoview.showVideo.apply(videoview, hub.data);
}, 2);
if (!options) {
options = {};
}
stManager.add(stat, function() {
videoview.show(ev, videoId, listId, options);
hub.done();
});
extend(options, {onDone: function() {
hub.data = arguments;
hub.done();
}, cache: 1});
ajax.post('al_video.php', {act: 'show', video: videoId, list: listId, autoplay: (options.autoplay) ? 1 : 0}, options);
return false;
}
function videoCallback(params) {
var method = params.shift();
debugLog(method, params);
if (window.videoview && videoview.playerCallback[method]) {
videoview.playerCallback[method].apply(videoview, params);
} else {
throw Error('Unregistered player callback: ' + method);
}
}
try{stManager.done('common.js');}catch(e){}
var page = {
inviteToGroup: function(gid, mid, invited, hash) {
var setInvited = function(invited) {
var row = ge('member_row'+mid);
geByClass('actions', row)[0].innerHTML = invited ? '<a href="" onclick="return page.inviteToGroup('+gid+', '+mid+', 1, \''+hash+'\')">'+getLang('friends_cancel_event_invite')+'</a>' : '<a href="" onclick="return page.inviteToGroup('+gid+', '+mid+', 0, \''+hash+'\')">'+getLang('friends_send_event_invite')+'</a>';
}
if (invited) {
ajax.post('/al_page.php', {act: 'a_cancel_invite', mid: mid, gid: gid, hash: hash}, {onDone: function(res){ }});
setInvited(0);
} else {
ajax.post('/al_page.php', {act: 'a_invite', mid: mid, gid:gid, hash: hash}, {onDone: function(res, message) {
if (!res) {
setInvited(0);
ge('res'+mid).innerHTML = '<div class="res">' + message + '</div>';
var row = ge('member_row' + mid);
hide(geByClass('actions', row)[0]);
}
}});
setInvited(1);
}
return false;
},
memberListAction: function(el, action, gid, mid, hash) {
ajax.post('al_page.php', {act:'a_member_list_action', action:action, gid:gid, mid:mid, hash:hash}, {onDone: function(res) {
el.parentNode.innerHTML = res;
}});
},
showPageMembers: function(ev, oid, tab) {
return !showTabbedBox('al_page.php', {act: 'show_members_box', gid: -oid, tab:tab}, {cache: 1}, ev);
},
newPhoto: function(params) {
cur.hideOther();
showBox('al_page.php', extend(params || {}, {act: 'a_new_photo'}));
},
editPhoto: function(newph) {
cur.hideOther();
showBox('al_page.php', extend(newph || {}, {act: 'a_edit_photo'}), {
params: {onHide: (newph && newph.photo) ? page.newPhoto.pbind({oid: newph.oid}) : false, bodyStyle: 'padding: 16px 7px'},
stat: ['tagger.js', 'tagger.css']
});
},
deletePhoto: function(oid, hash) {
cur.hideOther();
var box = showFastBox({title: getLang('global_warning')}, getLang('sure_delete_photo'), getLang('global_delete'), function() {
ajax.post('al_page.php', {
act: 'a_delete_photo',
hash: hash,
oid: oid
}, {
showProgress: box.showProgress,
hideProgress: box.hideProgress
});
}, getLang('global_cancel'));
},
showContacts: function(oid, edit, callback) {
var b = showBox('/al_page.php', {act: 'a_get_contacts', oid: oid, edit: edit}, {params:{width:467}});
b.setOptions({onHideAttempt: function() {
if (cur.reloadAfterClose) {
if (callback) {
callback();
} else {
nav.reload({noscroll: true});
cur.reloadAfterClose = false;
}
}
return true;
}});
},
editContact: function(oid, cid, hash, callback) {
var b = showBox('al_page.php', {act: 'a_edit_contact_box', cid: cid, oid: oid}).setButtons(getLang('global_save'), function() {
cur.reloadAfterClose = true;
function onSearch() {
var params = {act: 'a_add_contact', cid: cid, oid: oid};
params.hash = hash;
if (!hash) params.hash = ge('public_contact_hash').value;
if (ge('public_contact_memlink')) params.page = ge('public_contact_memlink').value;
params.title = ge('public_contact_position').value;
params.phone = ge('public_contact_phone').value;
params.email = ge('public_contact_email').value;
ajax.post('al_page.php', params, {onDone: function(res) {
b.hide();
if (curBox()) {
curBox().content(res);
} else {
page.showContacts(oid, 1, callback);
}
}, onFail: function(error) {
if (ge('public_contact_error')) {
ge('public_contact_error').innerHTML = error;
show('public_contact_error');
return true;
}
}});
}
if (!cid && cur.lastContact != ge('public_contact_memlink').value) {
page.searchContact(ge('public_contact_memlink').value, onSearch);
} else {
onSearch();
}
}, getLang('global_cancel'));
},
searchContact: function(oid, page, onSearch) {
if (!trim(page)) {
cur.lastContact = '';
return;
}
if (page == cur.lastContact) return;
ajax.post('al_page.php', {act: 'a_search_contact', pid: oid, page: page}, {onDone:function(uid, img, name, hash) {
cur.lastContact = page;
ge('public_contact_name').innerHTML = name;
ge('public_contact_image').innerHTML = img;
ge('public_contact_hash').value = hash;
if (!uid) {
notaBene('public_contact_memlink', '', true);
hide('public_contact_error');
} else {
if (onSearch) {
onSearch();
} else {
hide('public_contact_error');
}
}
}});
},
deleteContact: function(oid, cid, hash) {
cur.reloadAfterClose = true;
ajax.post('al_page.php', {act:'a_delete_contact', oid:oid, cid:cid, hash:hash}, {onDone: function(res){
curBox().content(res);
}});
},
showInput: function(el) {
el = el.parentNode;
addClass(el, 'unshown');
var input_wrap = geByClass('input_wrap', el.parentNode)[0];
removeClass(input_wrap, 'unshown');
geByClass('text', input_wrap)[0].focus();
},
hideInput: function(el, val) {
return;
}
};
var wall = {
switchWall: function() {
var cnts = {all: 0, own: 0}, sw = ge('page_wall_switch');
if (ge('page_wall_count_all')) cnts.all = intval(ge('page_wall_count_all').value);
if (ge('page_wall_count_own')) cnts.own = intval(ge('page_wall_count_own').value);
if (!cnts.own || cnts.own >= cnts.all) {
return false;
}
cur.wallType = ge('page_wall_posts').className = (cur.wallType == 'own') ? 'all' : 'own';
wall.update();
return false;
},
cmp: function(id1, id2) {
var l1 = id1.length, l2 = id2.length;
if (l1 < l2) {
return -1;
} else if (l1 > l2) {
return 1;
} else if (id1 < id2) {
return -1;
} else if (id1 > id2) {
return 1;
}
return 0;
},
receive: function(rows, names) {
var n = ce('div', {innerHTML: rows}), posts = ge('page_wall_posts');
var current = posts.lastChild;
for (el = n.lastChild; el; el = n.lastChild) {
if (el.tagName.toLowerCase() == 'input') {
var old = ge(el.id), el = n.removeChild(el);
if (old) {
posts.replaceChild(el, old);
}
continue;
}
while (current && current.tagName.toLowerCase() == 'div' && wall.cmp(current.id, el.id) < 0) {
current = current.previousSibling;
}
if (!current) {
posts.insertBefore(el, posts.firstChild);
} else if (!wall.cmp(current.id, el.id)) {
posts.replaceChild(el, current);
current = el;
} else if (current.nextSibling) {
posts.insertBefore(el, current.nextSibling);
} else {
posts.appendChild(el);
}
}
each(geByTag('textarea', posts), function() { placeholderSetup(this); });
wall.update();
extend(cur.options.reply_names, names);
},
showMore: function(offset) {
if (cur.viewAsBox) return cur.viewAsBox();
var type = cur.wallType;
var pr = ge('wall_more_progress');
ajax.post('al_wall.php', {act: 'get_wall', owner_id: cur.oid, offset: offset, type: type}, {
onDone: wall.receive,
showProgress: function() {
show(pr);
hide(pr.nextSibling);
},
hideProgress: function() {
show(pr.nextSibling);
hide(pr);
}
});
},
lenLimit: function(post, def) {
var el = ge('reply_len_limit' + post);
return el ? intval(el.value) : def;
},
checkPostLen: function(val, force) {
var pf = ge('post_field');
val = trim(val);
val = val.replace(/\n\n\n+/g, '\n\n');
if (pf.lastLen === val.length && !force) return;
var realLen = pf.lastLen = val.length, maxLen = cur.options.max_post_len, noteName = ge('post_note_name_wrap');
var brCount = realLen - val.replace(/\n/g, '').length;
warn = ge('post_warn');
if (realLen > maxLen - 100 || brCount > 4) {
var canNote = (cur.oid == vk.id) && !(cur.wallAddMedia || {}).chosenMedia;
if (realLen > maxLen) {
warn.innerHTML = getLang('text_exceeds_symbol_limit', realLen - maxLen);
} else {
warn.innerHTML = getLang('text_N_symbols_remain', maxLen - realLen);
}
if (canNote && (realLen > maxLen || brCount > 4)) {
show(noteName);
placeholderSetup(noteName.firstChild);
hide(warn);
} else {
hide(noteName);
if (realLen > maxLen - 100) {
show(warn);
}
}
} else {
hide(warn, noteName);
}
},
showEditPost: function() {
if (cur.viewAsBox) {
setTimeout(function() { ge('post_field').blur() }, 0);
return cur.viewAsBox();
}
if (cur.editing === 0) return;
if (cur.withMentions && !cur.mentionsAdded) {
cur.mentionsAdded = true;
stManager.add(['ui_controls.css', 'ui_controls.js', 'mentions.js'], function() {
initMentionClass();
cur.postMention = new MentionAutocomplete('post_field', {
minHeight: cur.fullPostView ? (cur.fullPostHeight || 50) : 32,
introText: getLang('profile_mention_start_typing'),
noResult: getLang('profile_mention_not_found'),
onSubmit: wall.sendPost,
checkLen: wall.checkPostLen,
onValueChange: (cur.wallAddMedia || {}).checkPostLink
});
addEvent(cur.postMention.rtaEl, 'focus', wall.showEditPost);
if (ge('post_field').focused !== false) {
triggerEvent(ge('post_field'), 'focus');
}
});
} else if (cur.postMention) {
cur.postMention.options.minHeight = cur.fullPostView ? (cur.fullPostHeight || 50) : 32;
}
wall.hideEditPostReply();
show('submit_post');
ge('send_post').onclick = wall.sendPost;
autosizeSetup('post_field', {minHeight: cur.fullPostView ? (cur.fullPostHeight || 50) : 32});
cur.editing = 0;
},
hideEditPost: function(force) {
cur.editing = false;
var rf = ge('post_field');
if (browser.opera_mobile || !rf || cur.fullPostView) return;
if (!force && rf.getValue && trim(rf.getValue())) return;
hide('submit_post');
if (rf && !rf.value) {
if (cur.postMention) {
cur.postMention.options.minHeight = 14;
}
setStyle(rf, {height: 14});
rf.phonsize();
}
},
sendPost: function() {
var addmedia = cur.wallAddMedia || {}, media = addmedia.chosenMedia || {}, share = (addmedia.shareData || {});
var msg = ge('post_field').getValue(), noteName = ge('post_note_name'), noteNameWrap = ge('post_note_name_wrap');
if (share.initialPattern) {
msg = msg.replace(share.initialPattern, ' ');
}
if (media[0] == 'share') {
if (share.failed || !share.url) {
media = {};
} else {
media[1] = share.user_id + '_' + share.photo_id;
}
}
if (!media[0] && !msg) {
focus('post_field');
return;
}
if (isVisible(noteNameWrap) && !noteName.value) {
focus(noteName);
return;
}
var params = {
act: 'post',
media_type: media[0],
media: media[1],
message: msg,
to_id: cur.postTo,
type: cur.wallType,
note_title: ge('post_note_name').value,
friends_only: isChecked('friends_only'),
status_export: isChecked('status_export'),
facebook_export: ge('facebook_export') ? (isChecked('facebook_export') ? 1 : 0) : '',
official: isChecked('official'),
hash: cur.options.post_hash
}, ownmsg = (cur.postTo == vk.id || params.official || cur.options.only_official);
if (media[0] == 'poll') {
var poll = addmedia.pollData();
if (!poll) {
return;
}
params = extend(params, poll);
}
show('page_post_progress');
hide('page_add_media');
if (media[0] == 'share') {
if (share.images && share.images.length) {
addmedia.uploadShare(wall.sendPost);
return;
}
params = extend(params, {
url: share.url,
title: share.title,
description: share.description,
extra: share.extra,
extra_data: share.extraData,
open_graph_data: (share.openGraph || {}).data,
open_graph_hash: (share.openGraph || {}).hash
});
}
ajax.post('al_wall.php', params, {
onDone: function(rows, names) {
show('page_add_media');
var rf = ge('post_field');
if (cur.withMentions) {
var mention = data(rf, 'mention');
if (mention) {
mention.rtaEl.innerHTML = '';
hide(mention.cont);
show(rf);
}
}
rf.value = '';
rf.blur();
rf.phonblur();
wall.hideEditPost(true);
if (cur.wallAddMedia) cur.wallAddMedia.unchooseMedia();
checkbox('export_status', false);
hide('post_warn');
if (cur.wallOffset) {
var nloc = nav.objLoc;
delete(nloc.offset);
if (vk.id != cur.oid) {
delete(nloc.own);
}
return nav.go(nloc);
}
if (vk.id != cur.oid && cur.wallType == 'full_own') {
var nloc = nav.objLoc;
delete(nloc.own);
return nav.go(nloc);
}
if (cur.wallType == 'feed') {
return cur.wallPostCb();
}
wall.receive(rows, names);
if (!ownmsg && cur.wallType == 'own') {
wall.switchWall();
}
},
onFail: show.pbind('page_add_media'),
showProgress: function() {
show('page_post_progress');
hide('page_add_media');
},
hideProgress: function() {
show('page_add_media');
hide('page_post_progress');
}
});
},
_repliesLoaded: function(post, hl, replies, names) {
var r = ge('replies' + post);
if (hl) {
var el = browser.msie6 ? pageNode : ((browser.chrome || browser.safari) ? bodyNode : htmlNode);
var h = r.offsetHeight;
r.innerHTML = replies;
el.scrollTop = intval(el.scrollTop) + (r.offsetHeight - h);
setTimeout(wall.highlightReply.pbind('post' + hl), 0);
} else {
r.innerHTML = replies;
}
extend(cur.options.reply_names, names);
},
highlightReply: function(el) {
el = ge(el);
if (!el) return;
var hlfunc = animate.pbind(el, {backgroundColor: '#ECEFF3'}, 200, function() {
setTimeout(function() {
animate(el, {backgroundColor: '#FFF'}, 200);
}, 1000);
});
var xy = getXY(el), top = xy[1] - (bodyNode.scrollTop || htmlNode.scrollTop || 0);
if (top < 0) {
var cont = browser.msie6 ? pageNode : ((browser.chrome || browser.safari) ? bodyNode : htmlNode);
animate(cont, {scrollTop: cont.scrollTop + top - 50}, 300, hlfunc);
} else {
hlfunc();
}
},
showReply: function(post, reply) {
if (cur.viewAsBox) return false;
var p = ge('post' + reply);
if (p) {
wall.highlightReply(p);
} else {
wall.showReplies(post, false, reply);
}
return false;
},
showReplies: function(post, count, hl) {
if (cur.viewAsBox) return cur.viewAsBox();
hide('replies_link' + post);
ajax.post('al_wall.php', {act: 'get_replies', post: post, count: count}, {
onDone: wall._repliesLoaded.pbind(post, hl),
onFail: show.pbind('replies_link' + post),
progress: 'replies_progress' + post
});
},
moreReplies: function(post, offset, count) {
hide('replies_link' + post);
ajax.post('al_wall.php', {act: 'get_replies', offset: offset, post: post, count: count}, {
onDone: function(replies, names) {
var r = ge('replies' + post);
r.removeChild(r.firstChild); // remove header
r.innerHTML = replies + r.innerHTML;
extend(cur.options.reply_names, names);
},
onFail: show.pbind('replies_link' + post),
progress: 'replies_progress' + post
});
},
showEditReply: function(post) {
if (cur.viewAsBox) {
setTimeout(function() { ge('reply_field' + post).blur() }, 0);
return cur.viewAsBox();
}
var rf = ge('reply_field' + post);
if (cur.editing === post) {
focus(rf);
return;
}
autosizeSetup(rf, {minHeight: 32});
wall.hideEditPostReply();
show('replies_wrap' + post, 'submit_reply' + post);
hide('reply_link' + post);
ge('reply_button' + post).onclick = wall.sendReply.pbind(post);
cur.editing = post;
focus(rf);
},
hideEditReply: function(post) {
cur.editing = false;
if (browser.opera_mobile) return;
hide('submit_reply' + post);
var replyLink = ge('reply_link' + post);
if (replyLink) {
show(replyLink);
hide('replies_wrap' + post);
}
var rf = ge('reply_field' + post);
rf.blur();
if (!rf.active) {
setStyle(rf, {height: 14});
}
if (rf.phonblur) rf.phonblur();
ge('reply_to' + post).value = ge('reply_to_title' + post).innerHTML = '';
},
replyTo: function(post, toMsgId, toId) {
ge('reply_to' + post).value = toMsgId;
ge('reply_to_title' + post).innerHTML = cur.options.reply_names[toId];
wall.showEditReply(post);
},
sendReply: function(post) {
var msg = ge('reply_field' + post).value;
if (!trim(msg).length) {
focus('reply_field' + post);
return;
}
var post_hash = ge('post_hash' + post) ? ge('post_hash' + post).value : cur.options.post_hash;
ajax.post('al_wall.php', {
act: 'post',
type: cur.wallType,
reply_to: post,
reply_to_msg: ge('reply_to' + post).value,
start_id: ge('start_reply' + post).value,
message: msg,
hash: post_hash
}, {
onDone: function(reply, replies, names) {
var replyLink = ge('reply_link' + post);
if (replyLink) {
replyLink.parentNode.removeChild(replyLink);
}
ge('reply_field' + post).setValue('');
hide('reply_warn' + post);
wall.hideEditReply(post);
wall._repliesLoaded(post, false, replies, names);
},
progress: 'page_reply_progress' + post
});
},
postTooltip: function(el, post, opts) {
if (cur.viewAsBox) return;
showTooltip(el, {
url: 'al_wall.php',
params: extend({act: 'post_tt', post: post}, opts || {}),
slide: 15,
shift: [35, -3, 0],
ajaxdt: 100,
showdt: 400,
hidedt: 200,
className: 'rich wall_tt'
});
},
hideEditPostReply: function(e) {
if (cur.editing === false || isVisible(boxLayerBG) || isVisible(layerBG)) return;
var el = (e && e.target) ? e.target : {};
var id = el.id;
if (cur.editing) {
if (!e || !hasClass(el, 'reply_link') && id != 'reply_field' + cur.editing && el.className != 'reply_to_link') {
wall.hideEditReply(cur.editing);
}
} else if (!cur.chosenMedia) {
if (!e || id != 'post_field') {
wall.hideEditPost();
}
}
},
deletePost: function(post, hash) {
ajax.post('al_wall.php', {
act: 'delete',
post: post,
hash: hash
}, {
onDone: function(msg) {
var r = ge('post' + post), t = geByTag1('table', r);
var pd = ge('post_del' + post);
if (pd) {
pd.innerHTML = msg;
show(pd);
} else {
r.appendChild(ce('div', {id: 'post_del' + post, className: 'dld', innerHTML: msg}));
}
hide(t);
}
});
},
markAsSpam: function(post, hash) {
ajax.post('al_wall.php', {
act: 'spam',
post: post,
hash: hash
}, {
onDone: function(msg) {
var r = ge('post' + post), t = geByTag1('table', r);
var pd = ge('post_del' + post);
if (pd) {
pd.innerHTML = msg;
show(pd);
} else {
r.appendChild(ce('div', {id: 'post_del' + post, className: 'dld', innerHTML: msg}));
}
hide(t);
}
});
},
restorePost: function(post, hash) {
ajax.post('al_wall.php', {
act: 'restore',
post: post,
hash: hash
}, {
onDone: function(msg) {
var pd = ge('post_del' + post);
if (!pd) return;
var r = ge('post' + post), t = geByTag1('table', r);
show(t);
hide(pd);
}
});
},
postOver: function(post) {
if (!vk.id) return;
var lnk = ge('like_link' + post), el = ge('post' + post), icon = ge('like_icon' + post), no_likes = hasClass(icon, 'no_likes');
if (hasClass(el, 'one')) return;
if (!lnk) {
wall.showDeletePost(post);
return;
}
if (lnk.timeout) {
clearTimeout(lnk.timeout);
removeAttr(lnk, 'timeout');
} else {
wall.showDeletePost(post);
lnk.style.visibility = 'visible';
animate(lnk, {opacity: 1}, 200);
if (no_likes) {
icon.style.visibility = 'visible';
animate(icon, {opacity: 0.4}, 200);
}
}
},
postOut: function(post) {
if (!vk.id) return;
var lnk = ge('like_link' + post), el = ge('post' + post), icon = ge('like_icon' + post), hid = function(el) {
el.style.visibility = 'hidden';
}
if (hasClass(el, 'one')) return;
if (!lnk) {
wall.hideDeletePost(post);
return;
}
lnk.timeout = setTimeout(function() {
removeAttr(lnk, 'timeout');
wall.hideDeletePost(post);
animate(lnk, {opacity: 0}, 200, hid.pbind(lnk));
if (hasClass(icon, 'no_likes')) {
animate(icon, {opacity: 0}, 200, hid.pbind(icon));
}
}, 0);
},
actsOver: function(post) {
if (!vk.id) return;
var acts = ge('actions' + post);
if (!acts) return;
if (acts.timeout) {
clearTimeout(acts.timeout);
removeAttr(acts, 'timeout');
} else {
fadeIn(acts, 200);
}
},
actsOut: function(post) {
if (!vk.id) return;
var acts = ge('actions' + post);
if (!acts) return;
acts.timeout = setTimeout(function() {
removeAttr(acts, 'timeout');
fadeOut(acts, 200);
}, 1);
},
likeOver: function(post) {
var icon = ge('like_icon' + post);
if (!icon) return;
if (!hasClass(icon, 'my_like')) {
setTimeout(animate.pbind(icon, {opacity: 1}, 200, false), 1);
} else {
icon.style.visibility = 'visible';
setStyle(icon, {opacity: 1});
}
var leftShift = vk.id ? 35 : 55, matches = post.match(/(-?\d+)_(photo|video|note|topic|)(\d+)/), like_obj = (matches[2] || 'wall') + matches[1] + '_' + matches[3];
if (cur.viewAsBox) return;
showTooltip(icon.parentNode, {
url: 'like.php',
params: {act: 'a_get_stats', 'object': like_obj},
slide: 15,
shift: [leftShift, -3, 0],
ajaxdt: 100,
showdt: 400,
hidedt: 200,
tip: {
over: function() {
wall.postOver(post);
wall.likeOver(post);
},
out: function() {
wall.likeOut(post);
wall.postOut(post);
}
},
className: 'rich like_tt'
});
},
likeOut: function(post) {
var icon = ge('like_icon' + post);
if (!icon) return;
if (!hasClass(icon, 'my_like')) {
setTimeout(animate.pbind(ge('like_icon' + post), {opacity: 0.4}, 200, false), 1);
}
},
likeUpdate: function(post, my, count, title) {
count = intval(count);
var m = post.match(/(-?\d+)_(photo|video|note|topic|)(\d+)/), like_obj = (m[2] || 'wall') + m[1] + '_' + m[3];
var countInput = ge('like_real_count_' + like_obj) || {}, rows = ge('like_table_' + like_obj);
var titleNode = ge('like_title_' + like_obj), countNode = ge('like_count' + post);
var icon = ge('like_icon' + post);
var tt = countNode.parentNode.tt || {}, opts = clone(tt.opts || {}), newleft = (my ? 0 : -31);
if (title && titleNode) {
titleNode.innerHTML = title;
}
countInput.value = count;
countNode.innerHTML = count ? count : '';
if (my) {
addClass(icon, 'my_like');
} else {
removeClass(icon, 'my_like');
var cb = ge('like_share_wall' + post);
if (cb) checkbox(cb, false);
}
if (count) {
var styleName = vk.rtl ? 'right' : 'left';
if (tt.el && !isVisible(tt.container) && !title) {
rows.style[styleName] = newleft + 'px';
tooltips.show(tt.el, extend(opts, {showdt: 0}));
} else if (rows) {
var params = {};
params[styleName] = newleft;
animate(rows, params, 200);
}
removeClass(icon, 'no_likes');
} else {
if (tt.el) tt.hide();
addClass(icon, 'no_likes');
}
},
like: function(post, hash) {
if (!vk.id || cur.viewAsBox) return;
var my = hasClass(ge('like_icon' + post), 'my_like'), matches = post.match(/(-?\d+)_(photo|video|note|topic|)(\d+)/), like_obj = (matches[2] || 'wall') + matches[1] + '_' + matches[3];
ajax.post('like.php', {act: 'a_do_' + (my ? 'un' : '') + 'like', 'object': like_obj, hash: hash, wall: 1}, {
onDone: wall.likeUpdate.pbind(post, !my)
});
var countInput = ge('like_real_count_wall' + post);
var count = countInput ? countInput.value : ge('like_count' + post).innerHTML;
wall.likeUpdate(post, !my, intval(count) + (my ? -1 : 1));
},
likeShare: function(post, hash) {
var el = ge('like_share_wall' + post), was = isChecked(el);
checkbox(el);
ajax.post('like.php', {act: 'a_do_' + (was ? 'un' : '') + 'publish', object: 'wall' + post, hash: hash, wall: 1}, {
onDone: wall.likeUpdate.pbind(post, true)
});
var countInput = ge('like_real_count_wall' + post);
var count = countInput ? countInput.value : ge('like_count' + post).innerHTML;
var my = hasClass(ge('like_icon' + post), 'my_like');
wall.likeUpdate(post, true, intval(count) + (my ? 0 : 1));
},
showLikesPage: function(post, published, offset) {
cur.likesBox.loadTabContent('like.php', {act: 'a_get_members', object: 'wall' + post, published: published, offset: offset, wall: 1}, published);
},
showPhoto: function(to_id, ph, hash, el, ev) {
return !showBox('al_photos.php', {act: 'photo_box', to_id: to_id, photo: ph, hash: hash}, {cache: 1}, el.href ? ev : false);
},
_animDelX: function(opacity, new_active, post) {
if (post === undefined) {
post = new_active;
new_active = undefined;
}
var el = ge('delete_post' + post);
if (!el) return;
if (new_active !== undefined) {
el.active = new_active;
} else if (el.active) {
return;
}
animate(el, {opacity: opacity}, 200);
},
update: function(count) {
if (cur.wallType != 'all' && cur.wallType != 'own') return;
var cnts = {}, sw = ge('page_wall_switch'), pnw = ge('page_no_wall');
each(['all', 'own'], function() {
var el = ge('page_wall_count_' + this);
cnts[this + ''] = el && intval(el.value);
});
if (cnts.all && pnw) {
pnw.parentNode.removeChild(pnw);
}
if (!cnts.own || cnts.own >= cnts.all) {
hide(sw);
} else {
show(sw);
sw.innerHTML = cur.options[cur.wallType + '_link'];
}
ge('page_wall_posts_count').innerHTML = cnts[cur.wallType] ? langNumeric(cnts[cur.wallType], cur.options.wall_counts) : '';
ge('page_wall_header').href = '/wall' + cur.oid + ((cur.wallType == 'own') ? '?own=1' : '');
var morelnk = ge('wall_more_link'), count = geByClass(cur.wallType, ge('page_wall_posts')).length;
if (count >= cnts[cur.wallType]) {
hide(morelnk);
} else {
show(morelnk);
morelnk.onclick = wall.showMore.pbind(count);
}
},
init: function(opts) {
extend(cur, {
postField: ge('post_field'),
postNoteName: ge('post_note_name'),
wallType: opts.wall_type,
withMentions: !(browser.mozilla && browser.version.match(/^2\./) || browser.mobile)
});
cur.destroy.push(function(c) {
cleanElems(c.postField, c.postNoteName);
});
var rem = removeEvent.pbind(document, 'click', wall.hideEditPostReply);
if (cur._back) {
cur._back.hide.push(rem);
cur._back.show.push(rem);
cur._back.show.push(addEvent.pbind(document, 'click', wall.hideEditPostReply));
} else {
cur.destroy.push(rem);
}
var ownCnt = ge('page_wall_count_own');
if (cur.wallType == 'own' && !intval(ownCnt && ownCnt.value)) {
cur.wallType = ge('page_wall_posts').className = 'all';
}
wall.update();
placeholderSetup(cur.postField);
each(geByTag('textarea', ge('page_wall_posts')), function() { placeholderSetup(this); });
removeEvent(document, 'click', wall.hideEditPostReply);
addEvent(document, 'click', wall.hideEditPostReply);
if (opts.media_types) {
cur.wallAddMedia = initAddMedia(ge('page_add_media').firstChild, 'media_preview', opts.media_types);
cur.wallAddMedia.onChange = function() {
wall.checkPostLen(ge('post_field').value, true);
}
}
}
}
wall = extend(wall, {
showDeletePost: wall._animDelX.pbind(0.3),
hideDeletePost: wall._animDelX.pbind(0),
activeDeletePost: function(post, tt) {
wall._animDelX(1, 1, post);
if (tt) showTooltip(ge('delete_post' + post), {text: tt, showdt: 500});
},
deactiveDeletePost: wall._animDelX.pbind(0.3, 0)
});
var urlActiveExp = /([!()?., \n\r\t \u00A0]|^)((https?:\/\/)?((?:[a-z0-9_\-]+\.)+[a-z]{2,6})(\/.*?)?)( |[ \t\r\n \u00A0])/i,
urlInactiveExp = /([!()?., \n\r\t \u00A0]|^)((https?:\/\/)?((?:[a-z0-9_\-]+\.)+[a-z]{2,6})(\/.*?)?)( |[ \t\r\n \u00A0]|$)/i;
function initAddMedia(lnk, previewId, types) {
lnk = ge(lnk);
if (!lnk) return;
if (!window.__addMediaIndex) __addMediaIndex = 0;
var lnkId = ++__addMediaIndex;
previewId = previewId || 'media_preview';
var icons = '/images/icons/wall_icons.gif';
(new Image()).src = icons;
var bgposes = {graffiti: 0, video: -22, photo: -44, audio: -66, poll: -88};
var rows = '', spec_style = (/mac/.test(_ua) && browser.mozilla) ? 'height: 19px; padding-top: 3px;' : '';
each(types, function(i, v) {
var isApp = (v[0] == 'app');
var icon = isApp ? v[4] : icons;
var bgpos = isApp ? '3px 3px;' : ('0px ' + bgposes[v[0]] + 'px;');
var url = isApp ? ('/app' + v[2] + '?to_id=' + cur.postTo) : false;
var name = v[1].replace(/\s/g, ' ');
rows += '<a' + (url ? ' href="' + url + '"' : '') + ' id="add_media_type_' +lnkId+ '_' + i + '" style="background-image: url(' + icon + '); background-position: ' + bgpos + spec_style + '"><nobr>' + name + '</nobr></a>';
});
var html = '\
<table cellspacing="0" cellpadding="0">\
<tr>\
<td class="side"><div></div></td>\
<td><div class="rows">' + rows + '</div></td>\
<td class="side"><div></div></td>\
</tr>\
<tr>\
<td colspan="3">\
<div class="bottom"></div><div class="bottom2"></div>\
</td>\
</tr>\
</table>';
var menuNode = ce('div', {
id: 'add_media_menu_' + lnkId,
className: 'add_media_menu',
innerHTML: '<div class="add_media_header"><div><nobr>' + lnk.innerHTML + '</nobr></div></div><div class="add_media_rows">' + html + '</div>'
});
bodyNode.appendChild(menuNode);
var addMedia = {
_addMediaLink: lnk,
lnkId: lnkId,
_showAddMedia: function() {
clearTimeout(addMedia._hideAddMediaTimer);
var el = menuNode;
cur.chooseMedia = addMedia.chooseMedia;
if (el && !isVisible(el)) {
addMedia._addMediaLink.blur();
var coords = getXY(addMedia._addMediaLink);
var left = coords[0] - 8 + (browser.msie6 ? 1 : 0);
var top = coords[1] - 4 + (browser.msie && !browser.msie8 ? 1 : 0);
setStyle(el, {left: left, top: top});
if (/mac/.test(_ua) && browser.mozilla) {
setStyle(geByClass('add_media_rows', el), 'top', 22);
}
browser.msie ? show(el) : fadeIn(el, 100);
}
},
_hideAddMedia: function(noTimeout) {
var hideFunc = browser.msie ? hide.pbind(menuNode) : fadeOut.pbind(menuNode, 100);
if (noTimeout === true) {
hideFunc();
} else {
addMedia._hideAddMediaTimer = setTimeout(hideFunc, 300);
}
},
chooseMedia: function(type, media, data) {
if (addMedia.onChange && addMedia.onChange(type, media, data) === false) {
return false;
}
addMedia.unchooseMedia();
var preview = '';
switch (type) {
case 'graffiti': preview = '<img class="graffiti" src="' + data + '" />'; break;
case 'photo' : preview = '<img class="photo" src="' + (isArray(data) ? data[0] : data) + '" />'; break;
case 'video' : preview = '<img class="video" src="' + data + '" />'; break;
case 'audio' : preview = '<div class="audio"><div class="media_audio_icon"></div><span><b>' + data[0] + '</b> - ' + data[1] + '</span></div>'; break;
case 'app' : preview = '<div class="app"><img src="' + data[0] + '" /><span>' + data[1] + '</span></div>'; break;
case 'share' :
preview = '<div class="share"><b class="fl_l"></b>' + getLang('forum_link_link') + ': <a href="/away.php?to=' + encodeURIComponent(data[1]) + '" target="_blank">' + data[0] + '</a></div>';
addMedia.shareData = {domain: data[0], url: data[1], initialPattern: data[2]};
addMedia.loadPreview(data[1]);
break;
case 'poll' :
preview = '<div class="poll"><b class="fl_l"></b>' + getLang('create_poll') + '<span id="create_poll_question_preview' + lnkId + '"></span></div>';
addMedia.createPoll(data);
break;
}
var prevNode = ge(previewId);
prevNode.innerHTML = '<div class="fl_l">' + preview + '</div><div class="x fl_l" onmouseover="showTooltip(this, {text: \'' + getLang('dont_attach') + '\', shift: [6, 3, 3]})" onclick="cur.addMedia[' + lnkId + '].unchooseMedia()"></div>';
show(prevNode);
addMedia.chosenMedia = [type, media];
boxQueue.hideLast();
return false;
},
unchooseMedia: function() {
var prevNode = ge(previewId);
if (addMedia.chosenMedia) {
var x = prevNode.firstChild.nextSibling;
if (x && x.tt && x.tt.el) {
x.tt.destroy();
}
addMedia.chosenMedia = false;
hide(prevNode);
}
var share = addMedia.shareData;
if (share) {
if (share.url) {
addMedia.urlsCancelled.push(share.url);
}
if (share.initialPattern) {
addMedia.urlsCancelled.push(share.initialPattern);
}
addMedia.shareData = {};
}
var pr = [addMedia.sharePreview, addMedia.pollPreview];
for (var i in pr) {
if (pr[i]) {
pr[i].parentNode.removeChild(pr[i]);
}
}
addMedia.sharePreview = addMedia.pollPreview = false;
if (addMedia.onChange) addMedia.onChange(false);
},
// Inline Polls
createPoll: function(labels) {
var prevNode = ge(previewId), h = browser.msie6 ? '' : 'height: 1px';
addMedia.pollPreview = prevNode.parentNode.insertBefore(ce('div', {className: 'poll_preview', innerHTML: '\
<div class="content" style="' + h + '">\
<div class="clear_fix">\
<div class="label fl_l ta_r">' + labels[0] + '</div>\
<div class="labeled fl_l"><input type="text" onkeyup="cur.addMedia[' + lnkId + '].updatePoll()" class="text" id="create_poll_question' + lnkId + '" /></div>\
</div>\
<div class="clear_fix">\
<div class="label fl_l ta_r">' + labels[1] + '\
<nobr class="no_select" onselectstart="return false;" ondblclick="return false;">\
<a id="create_poll_inc' + lnkId + '" onclick="cur.addMedia[' + lnkId + '].incPoll()">' + getLang('global_add') + '</a><span class="sdivide">|</span><a id="create_poll_dec' + lnkId + '" class="disabled" onclick="cur.addMedia[' + lnkId + '].decPoll()">' + getLang('global_delete') + '</a>\
</nobr>\
</div>\
<div class="labeled fl_l" id="create_poll_answers' + lnkId + '"></div>\
</div>\
</div>\
<div class="bottom_pointer"></div>\
'}), prevNode.parentNode.firstChild);
var html = [], content = addMedia.pollPreview.firstChild;
for (var i = 0; i < 10; ++i) {
html.push('<input type="text" class="text" style="' + (i > 1 ? 'display: none' : '') + '" />');
}
ge('create_poll_answers' + lnkId).innerHTML = html.join('');
if (browser.msie6) {
focus('create_poll_question' + lnkId);
return;
}
animate(content, {height: 87}, 200, function() {
content.style.height = 'auto';
focus('create_poll_question' + lnkId);
});
},
incPoll: function() {
var answers = ge('create_poll_answers' + lnkId);
for (var el = answers.firstChild; el; el = el.nextSibling) {
if (!isVisible(el)) {
break;
}
}
if (el) {
ge('create_poll_dec' + lnkId).className = '';
show(el);
}
if (!el || !el.nextSibling) {
ge('create_poll_inc' + lnkId).className = 'disabled';
}
},
decPoll: function() {
var answers = ge('create_poll_answers' + lnkId), first = answers.firstChild;
for (var el = answers.lastChild; el; el = el.previousSibling) {
if (isVisible(el)) {
break;
}
}
if (el) {
if (el == first || el == first.nextSibling) {
el = false;
}
if (el) {
ge('create_poll_inc' + lnkId).className = '';
hide(el);
}
}
if (!el || !el.previousSibling || el.previousSibling == first.nextSibling) {
ge('create_poll_dec' + lnkId).className = 'disabled';
}
},
updatePoll: function() {
var q = trim(ge('create_poll_question' + lnkId).value);
ge('create_poll_question_preview' + lnkId).innerHTML = q ? (': <span>' + q + '</span>') : '';
},
pollData: function() {
var answers = ge('create_poll_answers' + lnkId), q = trim(ge('create_poll_question' + lnkId).value);
var result = {media: q, answers: []};
for (var el = answers.firstChild; el; el = el.nextSibling) {
if (isVisible(el) && trim(el.value)) {
result.answers.push(trim(el.value));
}
}
if (!q) {
focus('create_poll_question' + lnkId);
return false;
}
if (!result.answers.length) {
focus(answers.firstChild);
return false;
}
return result;
},
// Inline Share
urlsCancelled: [],
shareData: {},
checkPostLink: function(wikiValue, noFocus) {
//if (vk.id != cur.oid) return; // temp
if (addMedia.chosenMedia) return;
var rx = noFocus ? urlInactiveExp : urlActiveExp, matchesUrl;
while (wikiValue && (matchesUrl = wikiValue.match(rx))) {
wikiValue = wikiValue.substr(matchesUrl.index + matchesUrl[0].length);
var url = matchesUrl[2], initialUrl = url;
url = url.replace(/[,.;'!@#$%^&*()?:]+$/, '');
if (!url.match(/^https?:\/\//)) url = 'http://' + url;
if (inArray(url, addMedia.urlsCancelled) || inArray(initialUrl, addMedia.urlsCancelled)) {
continue;
}
if (matchesUrl[4].match(/vkontakte\.ru|vk\.com|vkontakte\.com|vk\.cc/)) {
var query = matchesUrl[5] || '', mediaMatches = null, mediaType = false;
if ((mediaMatches = query.match(/#photo\/(\-?\d+)_(\d+)/)) || (mediaMatches = query.match(/photo(\-?\d+)_(\d+)/)) || (mediaMatches = query.match(/photos\.php\?oid=\-?\d+&act=show&id=(\-?\d+)_(\d+)/))) {
mediaType = 'photo';
} else if (mediaMatches = query.match(/video(\-?\d+)_(\d+)/)) {
mediaType = 'video';
} else if (mediaMatches = query.match(/audio\.php\?id=(\-?\d+)&audio_id=(\d+)/)) {
mediaType = 'audio';
}
if (!mediaType) continue;
if (addMedia.mediaInfoLoading) return;
addMedia.mediaInfoLoading = true;
var media = mediaMatches[1] + '_' + mediaMatches[2];
ajax.post('share.php', {act: 'media_info', type: mediaType, media: media}, {
onDone: function(data) {
addMedia.chooseMedia(mediaType, media, data);
addMedia.shareData = {initialPattern: initialUrl};
addMedia.mediaInfoLoading = false;
},
onFail: function () {
addMedia.urlsCancelled.push(url);
addMedia.mediaInfoLoading = false;
return true;
}
});
return;
}
addMedia.chooseMedia('share', '', [matchesUrl[4], url, initialUrl]);
return;
}
},
loadPreview: function(url) {
if (!url) return;
var prevNode = ge(previewId);
addMedia.sharePreview = prevNode.parentNode.insertBefore(ce('div', {className: 'share_preview', innerHTML: '\
<div class="content"><div></div><div class="progress"></div></div>\
<div class="bottom_pointer"></div>\
<iframe class="upload_frame" name="share_parse_iframe' + lnkId + '"></iframe>\
'}), prevNode.parentNode.firstChild);
var parseForm = addMedia.sharePreview.appendChild(ce('form', {action: cur.options.share.url, method: 'post', target: 'share_parse_iframe' + lnkId}));
each({
act: 'parse_share',
from_host: locHost,
mid: vk.id,
hash: cur.options.share.hash,
rhash: cur.options.share.rhash,
url: url
}, function(i, v) {
parseForm.appendChild(ce('input', {type: 'hidden', name: i, value: v}));
});
window.onParseDone = function(data) {
var data = addMedia.shareData = extend(addMedia.shareData, data);
if (!data.images || !data.images.length) {
addMedia.showPreview();
return;
}
var tmpImg = new Image();
var url = '';
data.imagesStyles = {};
if (/^\//.test(data.images[0])) {
url = (/^https:\/\//i.test(data.url) ? 'https://' : 'http://') + data.domain;
} else if (!/^https?:\/\//i.test(data.images[0])) {
url = data.url.replace(/[^\/]*$/, '');
if (/^https?:\/\/$/i.test(url)) {
url = data.url + '/';
}
}
data.images[0] = url + data.images[0];
tmpImg.src = data.images[0];
var imgLoadInterval = setInterval(function() {
if (tmpImg.width || tmpImg.height) {
var w = tmpImg.width, h = tmpImg.height;
if (w < 10 || h < 10) {
data.images = [];
} else {
if (w > h && w > 150) {
h = 150 * h / w;
w = 150;
} else if (h > 150) {
w = 150 * w / h;
h = 150;
}
data.imagesStyles[0] = 'style="width: ' + w + 'px; height: ' + h + 'px;"';
}
clearInterval(imgLoadInterval);
imgLoadInterval = true;
addMedia.showPreview();
}
}, 500);
setTimeout(function() {
if (imgLoadInterval === true) return;
data.images = [];
clearInterval(imgLoadInterval);
addMedia.showPreview();
}, 5000);
}
window.onParseFail = function () {
data.failed = true;
addMedia.showPreview();
}
parseForm.submit();
},
showPreview: function() {
var data = addMedia.shareData, prev = addMedia.sharePreview;
if (data.failed) {
var html = getLang('page_not_loaded');
} else {
var html = (data.images && data.images[0] ? '<img src="' + data.images[0] + '" class="fl_l" ' + data.imagesStyles[0] + ' />' : '') + (data.title ? '<h4 class="header">' + data.title + '</h4>' : '') + (data.description ? '<div class="descr">' + data.description + '</div>' : '') + '<div class="clear"></div>';
}
var tmpDiv = ge(previewId).appendChild(ce('div', {innerHTML: '<div class="share_preview">' + html + '</div>'}, {position: 'absolute', width: getSize(prev)[0] - 10, visibility: 'hidden'}));
var height = getSize(tmpDiv)[1];
tmpDiv.parentNode.removeChild(tmpDiv);
animate(prev.firstChild, {height: height}, 200, function () {
prev.firstChild.innerHTML = html;
});
},
uploadShare: function(callback) {
var data = addMedia.shareData, prev = addMedia.sharePreview;
var uploadCont = prev.appendChild(ce('div', {innerHTML: '<iframe class="upload_frame" name="share_upload_iframe' + lnkId + '"></iframe>'})),
uploadForm = uploadCont.appendChild(ce('form', {action: '/share.php', method: 'post', target: 'share_upload_iframe' + lnkId}));
each({
act: 'a_photo',
url: data.url,
index: lnkId,
image: data.images[0],
extra: data.extra || 0
}, function (i, v) {
uploadForm.appendChild(ce('input', {type: 'hidden', name: i, value: v}));
});
window.onUploadDone = function(index, params) {
window.onUploadFail = window.onUploadDone = function () {};
prev.removeChild(uploadCont);
addMedia.shareData = extend(addMedia.shareData, {
user_id: params.user_id,
photo_id: params.photo_id,
images: []
});
callback();
}
window.onUploadFail = function(index, msg) {
window.onUploadFail = window.onUploadDone = function () {};
prev.removeChild(uploadCont);
addMedia.shareData.images = [];
callback();
}
uploadForm.submit();
}
}
each(types, function(i, v) {
var handler = false, params = {to_id: cur.postTo, scrollbar_width: sbWidth()}, loc = hab.getLoc();
if (/^(mail|im|al_mail\.php|al_im\.php)($|\?)/.test(loc)) {
params.mail_add = 1;
}
switch (v[0]) {
case 'graffiti':
handler = showBox.pbind('al_wall.php', {act: 'draw_box', to_id: cur.postTo, flash: browser.flash}, {cache: 1});
break;
case 'photo':
handler = showBox.pbind('photos.php', extend(params, {act: 'a_choose_photo_box'}), {cache: 1});
break;
case 'video':
handler = showBox.pbind('video.php', extend(params, {act: 'a_choose_video_box'}), {cache: 1});
break;
case 'audio':
handler = showBox.pbind('audio.php', extend(params, {act: 'a_choose_audio_box'}), {cache: 1, params: {onClean: function() {if (window.audioPlayer) audioPlayer.stop();}}});
break;
case 'poll':
handler = addMedia.chooseMedia.pbind('poll', '', v[2]);
break;
case 'app':
handler = showBox.pbind('apps.php', {act: 'a_choose_app_box', to_id: cur.postTo, aid: v[2]}, {stat: ['apps_flash.js'], cache: 1});
break;
default: topError('Unknown type: ' + v[0]);
}
addEvent(ge('add_media_type_' + lnkId + '_' + i), 'click', function() {
addMedia._hideAddMedia(true);
handler();
return false;
});
});
removeEvent(lnk, 'click');
addEvent(lnk, 'click', addMedia._showAddMedia);
addEvent(menuNode, 'mouseover', addMedia._showAddMedia);
addEvent(menuNode, 'mouseout', addMedia._hideAddMedia);
addEvent(geByClass1('add_media_header', menuNode), 'click', function(e) {
addMedia._hideAddMedia(true);
cancelEvent(e);
});
cur.destroy.push(function() {
cleanElems(geByClass1('add_media_header', menuNode), menuNode);
bodyNode.removeChild(menuNode);
removeEvent(lnk, 'click', addMedia._showAddMedia);
});
if (!cur.addMedia) {
cur.addMedia = {};
}
cur.addMedia[lnkId] = addMedia;
return addMedia;
}
try{stManager.done('page.js');}catch(e){}
#wk_css {
display: none;
}
.wk_from_group {
text-align: center;
padding: 10px;
}
.wk_right {
padding-right: 1px;
}
.wk_gray, ul.listing li span .wk_gray {
color: #777;
}
a.wk_ext_link {
border-bottom: 1px dashed #A7B7C9;
padding-right: 8px;
background-image: url(/images/wikiextarr.gif);
background-repeat: no-repeat;
background-position: right 4px;
}
a.wk_ext_link:hover {
text-decoration: none;
border-bottom: 1px solid #A7B7C9;
}
a.wk_vk_link {
border-bottom: 1px dashed #A7B7C9;
}
a.wk_vk_link:hover {
text-decoration: none;
border-bottom: 1px solid #A7B7C9;
}
.wk_header, .wk_sub_header {
color: #45688E;
font-size: 12px;
font-weight: bold;
margin-bottom: 5px;
border-bottom: 1px solid #DAE1E8;
}
.wk_sub_header {
font-size: 11px;
}
.wk_sub_sub_header {
color: #45688E;
font-size: 11px;
font-weight: bold;
margin-bottom: 5px;
}
.wk_table {
border: 1px solid #DEE4E8;
border-right: 0;
border-top: 0;
padding: 0px;
margin: 0 auto 10px auto;
border-collapse: collapse;
width: 90%;
}
.wk_table td {
border-top: 1px solid #DEE4E8;
border-right: 1px solid #DEE4E8;
vertical-align: top;
padding: 5px;
margin: 0;
}
.wk_table th {
background-color: #F5F7F8;
border: 0;
margin: 0;
border-top: 1px solid #DEE4E8;
border-right: 1px solid #DEE4E8;
padding: 5px;
text-align: left;
}
.wk_table td.wk_cell_no_padding, .wk_table th.wk_cell_no_padding {
padding: 0px;
}
.wk_table caption {
padding: 6px;
}
.wk_table.wk_table_no_border, .wk_table_no_border>tbody>tr>td, .wk_table_no_border>tbody>tr>th {
border: none;
}
.wk_table.wk_table_no_margin {
margin-left: 0px;
margin-right: 0px;
width: 100%;
}
.wk_table.wk_table_fixed {
margin-left: 0px;
margin-right: 0px;
width: 0%;
}
.wk_hider_header {
color: #2B587A;
background-color: #F5F7F8;
font-weight: bold;
background-repeat: no-repeat;
background-position: left center;
padding-left:24px;
}
.wk_hider_box_opened .wk_hider_header {
background-image: url(/images/light_arrow_open.gif);
border-bottom: 1px solid #ECF0F2;
}
.wk_hider_box .wk_hider_header{
background-image: url(/images/light_arrow_shut.gif);
border-bottom: 0px;
}
.wk_hider_body {
padding: 10px;
}
.wk_hider_box .wk_hider_body {
display:none;
}
.wk_hider_box, .wk_hider_box_opened {
border: 1px solid #DEE4E8;
margin: 5px auto 5px auto;
}
.wk_hider_table{
width: 90%;
border: 0;
}
.wk_hider_table .wk_hider_header {
border: 1px solid #DEE4E8;
}
.wk_hider_table .wk_hider_body {
padding: 0;
margin-top: -1px;
}
.wk_hider_table .wk_table {
border-top: 0;
margin: 0;
width: 100%;
border-collapse: separate;
}
.wk_hider_title {
color: #2B587A;
cursor: pointer;
padding: 5px 0;
width: 100%;
}
a.wk_photo img, a.wk_photo_no_border img, img.wk_photo, img.wk_photo_no_border {
vertical-align: middle;
background-color: #FFF;
margin: 3px 6px 3px 0px;
}
img.wk_photo_no_padding {
vertical-align: top;
}
.wk_photo_no_padding img {
vertical-align: middle;
}
a.wk_video img {
vertical-align: top;
background-color: #FFF;
margin: 3px 6px 3px 0px;
}
.wk_diff_add {
background: #DDFFDD;
}
.wk_diff_add_block {
overflow: hidden;
background: #EEFFEE;
}
.wk_diff_add_block td {
background: #F6FFF6;
}
.wk_diff_remove {
background: #FFDDDD;
}
.wk_diff_remove_block {
overflow: hidden;
background: #FFEEEE;
}
.wk_diff_remove_block td {
background: #FFF6F6;
}
.wk_diff_arrow {
background: #FFEEFF;
}
.wk_text blockquote {
padding: 10px;
border-left: 9px solid #C9D8DF;
border-bottom: 2px solid #EBEFF2;
background-color: #F5F7F8;
margin: 10px 0px 0px 0px;
}
.wk_no_page {
margin: 20px;
text-align: center;
font-size: 12px;
color: #808080;
}