/* 
 * Обработчик событий на сайте
 */

$(document).ready(function(){

/*
 * Регистрация и вход в систему
 */
    // растягиваем темный div на всю высоту экрана
    $(".box").height($(document).height());

    // при нажатии на ссылку открытия окна регистрации
    $(".registration_button").click(function(){
        Registration.open();
        // помещаем окно по высоте прокрутки
        $(".inReg").css("padding-top", $(document).scrollTop());
        return false;
    });
    
    // при нажатии на кнопку закрытия окна
    $(".box .close a").live("click", function(){
        Registration.close();
        Registration.loginClose();
        if(!(undefined===window.Messages))
        {
            Messages.close();
        }
        return false;
    });

    // при наборе повтора пароля
    $("#registrationBox #reg_pass2,#registrationBox #reg_pass1").keyup(function(){
        $("#reg_pass2,#reg_pass1").parent("i").next("span").text('');
        $("#reg_pass2,#reg_pass1").parent("i").next("img").remove();
        if($("#reg_pass1").val().length<6)
        {
            $(".reg_f2 :submit").attr("disabled", true);
            $("#reg_pass1").parent("i").after('<img src="/img/stop.gif" alt="" />');
            return false;
        }
        if($("#reg_pass2").val()==$("#reg_pass1").val())
        {
            $(".reg_f2 :submit").attr("disabled", '');
            $("#reg_pass2").parent("i").next("img").next("span").text(''); //
            $("#reg_pass2").parent("i").after('<img src="/img/ok.gif" alt="" />');
        }
        else
        {
            $(".reg_f2 :submit").attr("disabled", true);
            $("#reg_pass2").parent("i").next("img").next("span").text('Пароли не совпадают.');
            $("#reg_pass2").parent("i").after('<img src="/img/stop.gif" alt="" />');
        }
    });

    // при смене пароля (проверка на повтор пароля)
    $("#re_new_password").keyup(function(){
        if($(this).val()==$("#new_password").val() && $("#new_password").val().length>3) {
            $(this).closest("form").find(":submit").attr("disabled", '');
        } else {
            $(this).closest("form").find(":submit").attr("disabled", 'true');
        }
    });

    // проверка полей на наличие ввода
    $("#registrationBox .reg_f2 input[name!='c_nick' ]:not(#reg_pass2,#reg_pass1)").keyup(function(){
        $(this).parent("i").next("span").text('');
        $(this).parent("i").next("img").remove();
        if($(this).val().length>2)
        {
            $(this).parent("i").after('<img src="/img/ok.gif" alt="" />');
            $(this).parent("i").next("img").next("span").text(''); //
        }
        else
        {
            $(this).parent("i").after('<img src="/img/stop.gif" alt="" />');
        }
    });


    // при нажатии на кнопку входа в систему
    $(".login_button").click(function(){
        Registration.login();
        // помещаем окно по высоте прокрутки
         $(".inReg").css("padding-top", $(document).scrollTop());
        return false;
    });

/*
 *  Личные сообщения
 */

// загружаем сообщения сразу после загрузки страницы и запускаем проверку на новые сообщения
    if(!(undefined===window.Messages))
    {
        $(".messages_mode").parent("li").removeClass("active2");
        $(".messages_mode[href='"+Messages.mode+"']").parent("li").addClass("active2");
        switch(Messages.mode)
        {
            case "#inbox":
            Messages.getInboxMessages();
            break;

            case "#sent":
            Messages.getSentMessages();
            break;

            case "#unread":
            Messages.getUnreadMessages();
            break;
        }
        // проверка на новые сообщения
        if(Messages.allowPolling) {
            Messages.checkNew();
            Messages.polling=setInterval("Messages.checkNew()", 300000 );
        }
    }

// при нажатии на ссылки постраничного вывода
$(".messages_pager").live("click", function(){
    Messages.page=$(this).attr("rel");
    if(Messages.mode=="#inbox")
    Messages.getInboxMessages($(this).attr("rel"));
    else
    Messages.getSentMessages($(this).attr("rel"));
    // убираем галочку с чекбокса выбора всех сообщений
    $("#messages_checkboxes_all").attr("checked", '');
    return false;
});

// при нажатии на ссылки "входящие", "исходящие"
$(".messages_mode").click(function(){
    Messages.page=1;
    Messages.setUrl($(this).attr("rel"));
    $(".messages_mode").parent("li").removeClass("active2");
    $(this).parent("li").addClass("active2");
    switch(Messages.mode)
    {
        case "#inbox":
        Messages.getInboxMessages();
        break;

        case "#sent":
        Messages.getSentMessages();
        break;

        case "#unread":
            Messages.getUnreadMessages();
        break;
    }
    // убираем галочку с чекбокса выбора всех сообщений
    $("#messages_checkboxes_all").attr("checked", '');
});

// при нажатии на заголовок сообщения (просмотр сообщения)
$(".messages_read").live("click", function(){
    if(Messages.mode=="#inbox" || Messages.mode=="#unread")
    {
        Messages.viewInboxMessage($(this).attr("rel"));
        $(this).parents("dl").find(".status").attr("src", "/img/mail2.gif");
    }
    else
    {
        Messages.viewSentMessage($(this).attr("rel"));
    }
});

// при нажатии на кнопку отправки нового сообщения (без просмотра старого, с заданием темы)
$(".new_message").click(function(){
    Messages.sendNewMessage($(this).attr("rel"));
    return false;
});

// при отправке формы с сообщением
$("#messages_form :submit").live("click", function(){
    $(this).attr("disabled", true).val("Отправка сообщения...");
    Messages.sendMessage($(this).closest("form").find("input[name='c_to']").val(), $(this).closest("form").find("input[name='c_subject']").val(), /*tinyMCE.get('message_body').getContent()*/ tinyMCE.activeEditor.getContent(), $(this).closest("form").find("input[name='c_parent_message']").val());
    return false;
});

// при нажатии на удаление сообщений
$(".messages_delete").submit(function(){
    if(confirm("Точно удалить?"))
    {
        var checked=new Array();
        $(".messages_checkboxes:checked").each(function(){
        checked.push($(this).val());
        });
        Messages.deleteMessages(checked);
    }
    return false;
});

// при нажатии на чекбокс у сообщения
$(".messages_checkboxes").live("click", function(){
    if($(".messages_checkboxes:checked").length==$(".messages_checkboxes").length)
    {
        $("#messages_checkboxes_all").attr("checked", true);
    }
    else
    {
        $("#messages_checkboxes_all").attr("checked", '');
    }
});

// при нажатии на чекбокс выбора всех сообщений
$("#messages_checkboxes_all").click(function(){
    if($(this).attr("checked"))
    {
        $(".messages_checkboxes").attr("checked", true);
    }
    else
    {
        $(".messages_checkboxes").attr("checked", '');
    }
});

/*
 * Фотографии (загрузка, ленты и тп)
 */
// если фото было загружено ранее - делаем инициализацию
if(!(undefined===window.Photo))
{
    if(!(undefined===window.FlashDetect)) {
        if(!FlashDetect.installed){
                    $(".ch1").append("<p><span style='color:red'>Для загрузки фотографий на наш сервер необходим Adobe Flash Player! Установите себе этот плагин, перейдя по ссылке:</span><br /><a href='http://get.adobe.com/flashplayer/'>http://get.adobe.com/flashplayer/</a></p>");
            }else{
                    if(FlashDetect.major<9) {
                       $(".ch1").append("<p><span style='color:red'>Для загрузки фотографий на наш сервер необходим Adobe Flash Player версии не ниже 9.0.24! Обновиться можно здесь:</span><br /><a href='http://get.adobe.com/flashplayer/'>http://get.adobe.com/flashplayer/</a></p>");
                    }
            }
    }

    // прокручиваем окно до фотографии
//    if($("#photo_image").length!=0) {
//        if(!document.location.hash) {
//            $.scrollTo("#photo_image", 700, {offset:-20});
//        }
//    }

    // если фото уже было загружено
    if(Photo.uploaded)
    {
        //инициализируем аплоадер
        Photo.uploaderInit("#upload_trigger");
        $(".ch1 :checkbox").attr("checked", true).attr("disabled", true);
        $("#upload_ispanoramic").attr("disabled", '');
        $("#upload_preview").attr("src", "/i/0_upload_preview.jpg?"+Math.random());
        $(".upload_gostep2").show();
        $("#upload_ispanoramic").attr("disabled", '');
    }
    // инициализация colorpicker (если он подключен)
    if(!(undefined===$.fn.ColorPicker))
    {
        $('#upload_background').ColorPicker({
            onSubmit: function(hsb, hex, rgb, el) {
                $(el).val(hex);
                $(el).ColorPickerHide();
            },
            onBeforeShow: function () {
                $(this).ColorPickerSetColor(this.value);
            }
        })
        .bind('keyup', function(){
            $(this).ColorPickerSetColor(this.value);
        });
    }
    // инициализация Cycle
    if(!(undefined===$.fn.cycle))
    {
        //инициализация Cycle для главной страницы
        $('#major_p').cycle({
                fx:     'scrollHorz',
                speed:  700,
                timeout: 0,
                prev:   '#p_l_arrow',
                next:   '#p_r_arrow'
        });
        if($('#major_p > *').length<2)
        {
            $('#p_l_arrow,#p_r_arrow').click(function(){return false;});
        }

        // перестроим все li в обратном порядке (т.к. дни идут слева направо) для элементов POTD history
        $('.user_favorite_photos[rel="potd"] > ul').each(function(u){
            Photo.loadedPotd.push(u);
            $(this).find("li").each(function(i){
                $(this).closest("ul").prepend("<li>"+$(this).html()+"</li>");
                $(this).remove();
            });
        });

        // инициализация Cycle для POTD ленты
        $('.user_favorite_photos[rel="potd"]').cycle({
            fx:     'scrollHorz2',
            speed:  700,
            timeout: 0,
            next:   '.w_photo .w_ph_lft[rel="potd"]',
            prev:   '.w_photo .w_ph_rgh[rel="potd"]',
            before: function (curr, next, opts) {
                // прячем или показываем стрелку "направо"
                if(opts.nextSlide==0 || $(next).hasClass("first"))
                {
                    $('.w_photo .w_ph_rgh[rel="potd"]').hide();
                }
                else
                {
                    $('.w_photo .w_ph_rgh[rel="potd"]').show();
                }
                // если мы движемся назад
                if(opts.nextSlide > opts.currSlide)
                {
                    // если слайд не был подгружен ранее
                    if($.inArray(opts.currSlide+2, Photo.loadedPotd) == -1)
                    {
                        Photo.potd(opts.currSlide+2, opts);
                    }
                }
                
                
            }
        });

        // инициализация Cycle для последних добавленных фото
        $('.user_favorite_photos[rel="last"]').cycle({
            fx:     'scrollHorz',
            speed:  700,
            timeout: 0,
            prev:   '.w_photo .w_ph_lft[rel="last"]',
            next:   '.w_photo .w_ph_rgh[rel="last"]',
            before: function (curr, next, opts) {
                // прячем или показываем стрелку "направо"
                if(opts.nextSlide==0 || $(next).hasClass("first"))
                {
                    $('.w_photo .w_ph_lft[rel="last"]').hide();
                }
                else
                {
                    $('.w_photo .w_ph_lft[rel="last"]').show();
                }
                // если мы движемся назад
                if(opts.nextSlide > opts.currSlide)
                {
                    // если слайд не был подгружен ранее
                    if($.inArray(opts.currSlide+2, Photo.loadedPhotos) == -1)
                    {
                        // подгружаем ранние фото
                        Photo.photoHistory(opts.currSlide+2, opts);
                    }
                }
            }
        });

        // инициализация Cycle для слайдера фотографий при просмотре фотографии
        if($('.inSl').length!=0) {
            var i=0;
            var startSlide=0;
            var ul=null;
            $('.inSl > ul').each(function(){
                ul=this;
                if($(this).find("li.active").length!=0) {
                    $(this).addClass("first");
                    startSlide=i;
                }
                $(this).find("li").each(function(c){
                    if(c==0 && ($(this).hasClass("blank") || $(this).hasClass("last") && $(this).attr("rel")!=Photo.last)) {
                        $(ul).addClass("last_prev");
                    }
                    if(c==1 && ($(this).hasClass("blank") || $(this).hasClass("last") && $(this).attr("rel")!=Photo.first)) {
                        $(ul).addClass("last_next");
                    }
                });
                i++;
            });
            $('.inSl').cycle({
                    fx:     'scrollHorz',
                    speed:  700,
                    timeout: 0,
                    startingSlide: startSlide,
                    prev:   '.sl_l',
                    next:   '.sl_r',
                    before: function (curr, next, opts) {
                        $(".sl_r, .sl_l").show();
                        var direction = (opts.nextSlide > opts.currSlide)? 'next' : 'prev';
                        // смотрим является ли слайд предпоследним (слева или справа)
                       // ищем последнюю фотку (id)
                       var last_photo_id=null;
                       if(direction=="next") {
                           last_photo_id=$(next).find("li[class!='blank']:last").attr("rel");
                           if(parseInt($(next).find("li:last").attr("rel"))==Photo.last) {
                               $(next).addClass("last_next");
                           }
                       } else {
                           last_photo_id=$(next).find("li[class!='blank']:first").attr("rel");
                           if(parseInt($(next).find("li:first").attr("rel"))==Photo.first) {
                               $(next).addClass("last_prev");
                           }
                       }
                       if($(next).hasClass("last_prev")) {
                           $(".sl_l").hide();
                       }
                       if($(next).hasClass("last_next")) {
                           $(".sl_r").hide();
                       }
                       // проверяем не грузили ли мы ранее этот слайд
                       if($.inArray(parseInt(last_photo_id), Photo.loadedSlides)==-1) {
                           // подгружаем слайд
                           Photo.loadSlide(last_photo_id, direction, opts, next);
                       }
                }
            });
        }
        var start=0;
        if(Photo.subcategory)
        {
            start=$("#photo_categories .s_nav li.selected").closest("ul").attr("slide");
        }
        if(Photo.category)
        {
            start=$("#photo_categories .photo_categories_root.cat_selected").closest("ul").attr("slide");
        }
        $('#photo_categories').cycle({
            fx:     'scrollLeft',
            speed:  'fast',
            timeout: 0,
            startingSlide: start
        });
    }

// шаг 1
// при нажатии на чекбоксы соглашений с правилами
$(".ch1 :checkbox[name='ch1']").click(function(){
    if($(".ch1 :checkbox:checked").length==$(".ch1 :checkbox").length)
    {
        $("#upload_ispanoramic").attr("disabled", '');
        $(".ch1 :checkbox").attr("disabled", true);
        // инициализация
        Photo.uploaderInit("#upload_trigger");
    }
});

// при нажатии на чекбокс панорамы
$("#upload_ispanoramic").click(function(){
    if($(this).attr("checked"))
    {
        $("#upload_trigger").fileUploadSettings('folder',  'panoramic'); //$(selector).uploadifySettings('sizeLimit', );
        $("#upload_trigger").fileUploadSettings('sizeLimit',  600*1024);
    }
    else {
        $("#upload_trigger").fileUploadSettings('folder',  'usual');
        $("#upload_trigger").fileUploadSettings('sizeLimit',  400*1024);
    }

});

// ШАГ 2

// при нажатии (или фокус, если TAB) на поле ввода имени фото
$("#upload_photoname").focus(function(){
    if($(this).attr("rel")!="changed")
    {
        $(this).attr("rel", "changed").val('');
    }
    return false;
});

// при на жатии на список выбора категории
$("#upload_category a").live("click", function(){
    // запрашиваем список
    Photo.getSubcategroiesList($(this).parent("li").attr('rel'));
    // убираем все предыдещие span
    $("#upload_category span:first").replaceWith("<a href='#'>"+$("#upload_category span:first").text()+"</a>");
    $(this).replaceWith("<span>"+$(this).text()+"</span>"); 
    return false;
});

// при нажатии на подкатегорию выбора из списка
$("#upload_subcategory a").live("click", function(){
    // убираем все предыдещие span
    $("#upload_subcategory span:first").replaceWith("<a href='#'>"+$("#upload_subcategory span:first").text()+"</a>");
    $(this).replaceWith("<span>"+$(this).text()+"</span>"); 
    return false;
});

// при выборе селекта альбома
$("#upload_album").change(function(){
    if($(this).val()=='0')
    {
        $(".block3").slideDown("slow");
    }
    else
    {
        $(".block3").slideUp("slow");
    }
});

// при клике на textarea - сброс текста
$("#upload_form textarea").focus(function(){
    if($(this).attr("rel")!="changed")
    $(this).css("color", "#000000").attr('rel','changed').val('');
});

// добавление альбома
$("#upload_ulbumsubmit").click(function(){
    if($("#upload_albumname").val().length>0)
    {
        Photo.addAlbum($("#upload_albumname").val(), $("#upload_albumdesc").val());
        // очищаем поля ввода
        $("#upload_albumname").val('');$("#upload_albumdesc").val('');
    }
    else
    {
        $("#upload_albumname").focus();
    }
    return false;
});

// при нажатии на кнопку отправки ШАГА 2
$("#upload_submit").click(function(){
    // проверим, ввели ли название фотки, выбрали ли категорию и альбом
    $("input,textarea").removeClass("invalid");
    $("p.error").empty();
    if($("input[name='c_name']").val().length<1 || $("input[name='c_name']").attr("rel")!='changed')
    {
        $("input[name='c_name']").addClass("invalid").focus();
        $(document).scrollTop(20);
        return false;
    }
    if($("textarea[name='c_desc']").attr("rel")!='changed') $("textarea[name='c_desc']").val('');
    if($("textarea[name='c_tags']").attr("rel")!='changed') $("textarea[name='c_tags']").val('');
    /* Валидация описания фотки и тэгов
    if(($("textarea[name='c_desc']").attr("rel")=='changed' && $("textarea[name='c_desc']").val().length<1))
    {
            $("textarea[name='c_desc']").addClass("invalid");
            $(document).scrollTop(170);
            return false;
    }
    if(($("textarea[name='c_tags']").attr("rel")=='changed' &&  $("textarea[name='c_tags']").val().length<1))
    {
        $("textarea[name='c_tags']").addClass("invalid");
        $(document).scrollTop(270);
        return false;
    }
    */
    if($("#upload_subcategory span").length<1)
    {
        $("#upload_subcategory").focus().closest("li").find("p.error").text("Категория не выбрана.");
        $(document).scrollTop(650);
        return false;
    }
    if(parseInt($("select[name='c_album_id']").val())<1)
    {
        $("select[name='c_album_id']").focus().closest("li").find("p.error").text("Нужно выбрать альбом, прежде, чем опубликовывать фото.");
        $(document).scrollTop(700);
        return false;
    }
    $(this).attr("disabled", true);
    var form=$("#upload_form").serialize();
    // добавляем недостающие данные в запрос
    form+="&c_name="+urlencode($("input[name='c_name']").val());
    form+="&c_cat_id="+urlencode($("#upload_subcategory span").closest("li").attr("rel"));
    form+=(Photo.id>0)? "&photo_id="+Photo.id : null;
    // если фотография редактируется, а не закачивается будем использовать другую бэкэнд функцию
    var func=(Photo.edit)? "editPhoto" : "saveUploadedPhoto" ;
    // отправляем форму на сервер
    $.ajax({type: "POST",dataType :"json", url:"/execplugin/?plg=photo&plugFunc="+func, data : form, success: function(response){
        if(parseInt(response)>0)
        {
            window.location="/photos/view/id."+response+".html";
        }
        else
        {
            alert('При добавлении фото возникли ошибки. Перезагрузи станицу и попробуй ещё раз.');
        }
    }});
    return false;
});

// при клике на ссылки голосования
$(".choice .vote a").click(function(){
    Photo.vote($(this).attr("rel"), $(this).attr("href"), this);
    return false;
});

// при клике на кнопку рекомендовать
$(".shape .favorite").click(function(){
    if($(this).attr('rel')=='add')
    {
        Photo.addFavorite($(this).attr("href"), this);
    }
    else
    {
        Photo.removeFavorite($(this).attr("href"), this);
    }
    return false;
});

// при клике на кнопку не рекомендовать
$(".shape .abuse").click(function(){
    if($(this).attr('rel')=='add')
    {
        Photo.addAbuse($(this).attr("href"), this);
    }
    else
    {
        Photo.removeAbuse($(this).attr("href"), this);
    }
    return false;
});

// при клике на кнопку избранного
$(".shape .loved").click(function(){
    if($(this).attr('rel')=='add')
    {
        if($(this).hasClass("fav")) {
            if(confirm('Добавить в избранное и удалить из рекомендованных?')) {
                Photo.addLoved($(this).attr("href"), this);
            } else {
                return false;
            }
        } else {
            Photo.addLoved($(this).attr("href"), this);
        }
    }
    else
    {
        Photo.removeLoved($(this).attr("href"), this);
    }
    return false;
});

// при клике на ссылку просмотра EXIF
$(".show_exif").click(function(){
    $(".exif").toggle();
    return false;
});

// при клике на кнопку избранного автора
$(".photo_author_favorite").click(function(){
    if($(this).attr('rel')=='add')
    {
        Photo.addFavoriteAuthor($(this).attr("href"), this);
    }
    else
    {
        Photo.removeFavoriteAuthor($(this).attr("href"), this);
    }
    return false;
});

// при клике на категории фото - открываем подкатегории
$("#photo_categories .s_nav2:eq(0) a").live("click", function(){
    // убираем фокус с ссылки
    $(this).blur();
    $("#photo_categories").cycle(parseInt($(this).attr("tabindex")));
    return false;
});

// при клике на выбранную категорию
$(".photo_categories_root a").click(function(){
    $("#photo_categories").cycle(0);
    return false;
});

// Pager для Cycle на главной странице
$(".potd_pager").live("click", function(){
    $('#major_p').cycle(parseInt($(this).attr("rel")));
    return false;
});

// при клике на ссылку "Заметка на фото"
$(".note_anchor").live("click", function(){
    $("#note_"+$(this).attr("href")).parent("div").show();
    $("#note_"+$(this).attr("href")).show().find("div").show();
    $("#note_text_"+$(this).attr("href")).show();
    $.scrollTo($(".image-annotate-canvas"), 1000);
    return false;
});

// при клике на удаление альбома
$(".delete_album").click(function(){
    if(confirm("Удалить альбом?")) {
        Photo.deleteAlbum($(this).attr("rel"), this);
    }
    return false;
});

// при клике на удаление фото
$(".delete_photo").click(function(){
    if(confirm("Удалить фото? Все данные фотографии удаляются безвозвратно!")) {
        Photo.deletePhoto($(this).attr("rel"), this);
    }
    return false;
});

// при клике на истории фото дня - подгружаем всех перетендентов
$(".potd_loader").live("click", function(){
    Photo.potd_photos($(this).prev("em").attr("rel"));
    return false;
});

// при клике на принятие просмотра эро-фото
$("#allow_erotic").click(function(){
    $("#erotic_alert").fadeOut("slow");
    return false;
});

// при клике на отказ просмотра эро-фото
$("#deny_erotic").click(function(){
    window.location.href="/photos/";
});
}

/*
 *  Обработчик для плагина пользователя USER
 */

// при загрузке страницы с подключенным плагином user 
if(!(undefined===window.User))
{
    // пофиксим вёрстку если юзер зашёл на чужую страницу профиля
    if(!User.isMe && User.fix) {
        $(".sidebar1").css('width', '100%');
        $("ul.tag").css('width', '100%');
    }

    // подгрузим голосование за пользователя
    if($("#user_voting_tpl").length>0)
    {
        User.getVotes(User.id);
    }
    // инициализация Cycle для избранных фото
    if(!(undefined===$.fn.cycle))
    {
        // инициализация Cycle для избранных фото автора
        $('.user_favorite_photos[rel="fav"]').cycle({
            fx:     'scrollHorz',
            speed:  700,
            timeout: 0,
            prev:   '.w_photo .w_ph_lft[rel="fav"]',
            next:   '.w_photo .w_ph_rgh[rel="fav"]',
            before: function (curr, next, opts) {
                // прячем или показываем стрелку "налево"
                if(opts.nextSlide==0 || $(next).hasClass("first"))
                {
                    $('.w_photo .w_ph_lft[rel="fav"]').hide();
                }
                else
                {
                    $('.w_photo .w_ph_lft[rel="fav"]').show();
                }    
                // если мы движемся вперед
                if(opts.nextSlide > opts.currSlide)
                {
                    // если слайд не был подгружен ранее
                    if($.inArray(opts.currSlide+2, User.loadedFavPhotos) == -1)
                    {
                        // прячем стрелку "направо"
                        $('.w_photo .w_ph_rgh[rel="fav"]').hide();
                        // подгружаем ранние фото
                        User.favPhotoHistory(opts.currSlide+2, opts);
                    }
                }
            }
        });
    }
    // инициализация cycle для ленты активности
   if(! (undefined === $.fn.cycle) )
    {
        // 2 слайда уже загружены - добавим их к списку
        User.loadedSlides.push(0);
        User.loadedSlides.push(1);
        // инициализируем Cycle для ленты активности
        if($('.last_activities > div').length>1)
        {
            $('.last_activities').cycle({
                    fx:     'scrollVert2',
                    speed:  700,
                    timeout: 0,
                    prev:   'a.c_up[rel="activity"]',
                    next:   'a.c_down[rel="activity"]',
                    before: function (curr, next, opts) {
                        // прячем или показываем стрелку "вверх"
                        if(opts.nextSlide==0 || $(next).hasClass("first"))
                        {
                            $('a.c_up[rel="activity"]').hide();
                        }
                        else
                        {
                            $('a.c_up[rel="activity"]').show();
                        }
                        // если мы движемся назад
                        if(opts.nextSlide > opts.currSlide)
                        {
                            opts.fx="scrollDown";
                            // если слайд не был подгружен ранее
                            if($.inArray(opts.currSlide+2, User.loadedSlides) == -1)
                            {
                                // подгружаем комментарии
                                User.activityHistory(opts.currSlide+2, opts);
                            }
                        }
                        else
                        {
                            opts.fx="scrollUp";
                        }
                    }
            });
        }
        else
        {
            $('a.c_up[rel="activity"], a.c_down[rel="activity"]').hide();
        }
    }
    // если мы находимся на странице редактирования профиля
    if(User.editmode)
    {
        // инициализируем аплоадер
            User.uploaderInit("#avatar_uploader");
        // если аватар уже есть
        if(!User.no_avatar) {
            // инициализируем кроппер
            $("#avatar_image").load(function(){
                User.cropinit("#avatar_image");
            });
        }
        // при загрузке страницы сразу подгружаем регионы страны (если регион не был выбран ранее)
        if($(".country_select").length>0 && $(".cityarea_select option:selected").length==0)
            User.getCityAreas($(".country_select").val());
    }

    if(! (undefined === $.fn.editable)) {
        // инициализируем Jeditable
        $('.edit').editable('/execplugin/?plg=user&plugFunc=editalbum', {
             indicator : 'Сохранение...',
             submit    : 'OK',
             tooltip   : 'Нажмите чтобы отредактировать...'
         });

        $('.edit_area').editable('/execplugin/?plg=user&plugFunc=editalbum', {
             indicator : 'Сохранение...',
             type    : 'textarea',
             submit    : 'OK',
             tooltip   : 'Нажмите чтобы отредактировать...'
         });
    }

    $(".activity_sections > form").submit(function(){
        if($(this).find("input:checkbox:checked[name='actions[]']").length==0) {
            alert('Выберите хотя бы один пункт.');
            return false;
        }
    });

    // при выборе другой страны при редактировании профиля
    $(".country_select").change(function(){
        User.getCityAreas($(this).val());
    });

    // при выборе другого региона при редактировании профиля
    $(".cityarea_select").change(function(){
        User.getCities($(this).val());
    });

    // если мы находимся на странице просмотра альбома (там есть фотки с классом album_photos)
    if($("#albums_list div").length>0) {
        $(".album_photos").draggable({zIndex: 30, revert:'invalid', start:function(event, ui){
                $(this).find(".delete_photo").hide();
                // показываем альбомы
                $("#albums_list").slideDown();
        }, stop:function(){
            $(this).find(".delete_photo").show();
            $("#albums_list").slideUp();
        }});

        $("#albums_list > div").droppable({over:function(){
                $(this).addClass("over");
        }, out:function(){
            $(this).removeClass("over");
        }, drop:function(event, ui){
            $(this).removeClass("over");
            User.movePhoto(ui.draggable.find(".delete_photo").attr("rel"),$(this).attr("album-id"));
            ui.draggable.draggable( 'destroy' ).remove();
        }});
    }

    if($("#map_canvas").length!=0) {
//        // инициализация google maps
        if(GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("map_canvas"));
            map.setCenter(new GLatLng(55.783678,37.644196), 2);
            map.addControl(new GLargeMapControl());

            var markers = [];
            for (i in User.cities) {
              var latlng = new GLatLng(User.cities[i].lat, User.cities[i].lng);
              var marker = new GMarker(latlng);
              marker.people=User.cities[i].num;
              markers.push(marker);
              GEvent.addListener(markers[i], "click", function(marker) {
                  User.googleUsersWindow(marker.y, marker.x);
              });
            }
            var markerCluster = new MarkerClusterer(map, markers);
          }
          $("#google_window .close").live("click", function(){
              $("#google_window").fadeOut();
              return false;
          });
    }
}

// при клике на кнопку избранного автора
$(".photo_author_ignore").click(function(){
    if($(this).attr('rel')=='add')
    {
        User.addIgnore($(this).attr("href"), this);
    }
    else
    {
        User.removeIgnore($(this).attr("href"), this);
    }
    return false;
});

// при щелчке на кнопках голосования
$(".ass input:radio").live("click", function(){
    // только если этот вариант не был выбран ранее
    if(!$(this).closest("dd").hasClass("active4"))
    {
        $(".ass dd").removeClass("active4");
        $(this).closest("dd").addClass("active4");
        // голосуем...
        User.addVote(User.id, $(this).val());
    }
});



// при выборе марки фотоаппарата
$(".cameralabel_select").change(function(){
    User.getLabelCameras($(this).val());
});

// при щелчке на кнопке добавления камеры
$(".profile_add_camera").click(function(){
   User.addCamera($("select[name='add_camera']").val());
   return false;
});

// при выборе марки объектива
$(".lenslabel_select").change(function(){
    User.getLabelLens($(this).val());
});

// при щелчке на кнопке добавления объектива
$(".profile_add_lens").click(function(){
   User.addLens($("select[name='add_lens']").val());
   return false;
});

// при клике на ссылку добавления/удаления автора в контакты
$(".user_contact").click(function(){
    if($(this).attr('rel')=='add')
    {
        User.addContact($(this).attr("href"), this);
    }
    else
    {
        User.delContact($(this).attr("href"), this);
    }
    return false;
});

// Переключение табов
$(".tabs a").live("click", function(){
    $(".tabs li").removeClass("active");
    $(this).parent("li").addClass("active");
    $(".aft_pi2 table:visible").hide();
    $(".aft_pi2 table[rel='"+$(this).parent("li").attr("rel")+"']").show();
    return false;
});

/*
 * Комментарии
 */
// если подключен плагин комментирования
if(!(undefined===window.Comments))
{
    // если в адресе есть ссылка (хэш) на какой-то конкретный комментарий
    var selected=document.location.hash.replace('#', '');
    if(parseInt(selected)>0) {
        Comments.selected=selected;
    }
    // загружаем комментарии если есть куда
    if($(".comments").length>0)
    {
        $("<div id='comments_unread'>0</div>").appendTo("body").click(function(){
            if(Comments.unread.length>0) {
                var next=Comments.unread.shift();
                $("ul.comment div.selected_comment").removeClass("selected_comment");
                $('.comment_link[rel='+next+']').closest("div").addClass('selected_comment');
                $(document).scrollTo('.comment_link[rel='+next+']', 800);
                // помечаем комментарий как прочитанный
                Comments.last_read=next;
                // если непрочитанных не осталось
                if(Comments.unread.length==0) {
                    $(this).hide();
                }
                $(this).text(Comments.unread.length);
            }
        });
        Comments.getComments(Comments.table, Comments.item_id);
    }
    if(! (undefined === $.fn.cycle) )
    {
        // 2 слайда уже загружены - добавим их к списку
        Comments.loadedSlides.push(0);
        Comments.loadedSlides.push(1);
        // инициализируем Cycle для ленты последних комментариев на главной
        if($('.last_comments[rel="comments"] > div').length>1)
        {
            $('.last_comments[rel="comments"]').cycle({
                    fx:     'scrollVert2',
                    speed:  700,
                    timeout: 0,
                    prev:   'a.c_up[rel="comments"]',
                    next:   'a.c_down[rel="comments"]',
                    before: function (curr, next, opts) {
                        // прячем или показываем стрелку "вверх"
                        if(opts.nextSlide==0 || $(next).hasClass("first"))
                        {
                            $('a.c_up[rel="comments"]').hide();
                        }
                        else
                        {
                            $('a.c_up[rel="comments"]').show();
                        }
                        // если мы движемся назад
                        if(opts.nextSlide > opts.currSlide)
                        {
                            opts.fx="scrollDown";
                            // если слайд не был подгружен ранее
                            if($.inArray(opts.currSlide+2, Comments.loadedSlides) == -1)
                            {
                                // подгружаем комментарии
                                Comments.commentsHistory(opts.currSlide+2, opts);
                            }
                        }
                        else
                        {
                            opts.fx="scrollUp";
                        }
                    }
            });
        }
        else
        {
            $('a.c_up[rel="comments"], a.c_down[rel="comments"]').hide();
        }
    }
}

// при нажатии на кнопки голосования за комменты
$(".comment_vote").live("click", function(){
    // голосуем за этот комментарий
    var vote=($(this).attr("href").indexOf('up')!=-1)? 'up' : 'down';
    Comments.vote($(this).attr("rel"), vote, this);
    return false;
});

// при нажатии на ссылку "ответить" на комментарий
$(".repl").live("click", function(){
    var to=$(this).prev("a").text();
    $("#comment_to").html("&rarr; "+to+":");
    $(".repl").show();
    $("dd").removeClass("reply_selected");
    $(this).hide().closest("dd").addClass("reply_selected");
    $("#write_comment input[name='c_parent_id']").val($(this).attr("rel"));
    $("#write_comment textarea").focus();
    return false;
});

// при клике на "удалить" на комментарий
$(".delete_comment").live("click", function(){
    var word=($(this).attr("rel")=="delete")? "скрыть" : 'вернуть';
    if(confirm("Ты уверен, что хочешь "+word+" этот комментарий?"))
    Comments.deleteComment($(this).attr("href"), $(this).attr("rel"), this);
    return false;
});

// при клике на "показать комментарий"
$(".show_comment").live("click", function(){
    $(this).parent("p").hide().next("p").show();
    return false;
});

// при клике на редактирование комментария
$(".edit_comment").live("click", function(){
    $(this).closest("div").find("p.text").html('<textarea cols="60" rows="5" id="comment_editor" rel="'+$(this).attr('href')+'">'
        +$(this).closest("div").find("p.text").text()+'</textarea><br /><button id="comment_editor_submit">Сохранить</button>');
    return false;
});

// при клике на "сохранить" в редактирумом комментарии
$("#comment_editor_submit").live("click", function(){
    Comments.edit($("#comment_editor").val(), $("#comment_editor").attr("rel"), this);
    return false;
});

// при клике на показ ссылки комментария
$(".comment_link").live("click", function(){
    var id=$(this).attr("rel");
    var path='http://photo-wave.ru'+document.location.pathname+'#'+id;
    alert("Ссылка на этот комментарий: \n" + path);
    return false;
});

// привязываем CTRL+ENTER событие к textarea комменту
$("textarea[name='c_message']").keyup(function(e){
    if(e.ctrlKey && e.which==13) {
        $("#write_comment").trigger('submit');
    }
});


// при отправке комментария
$("#write_comment").submit(function(){
    $(this).find(":submit").attr("disabled", true).hide();
    // отправляем комментарий
    if($.trim($(this).find("textarea[name='c_message']").val()).length>0) {
        $("#comment_to").html("Прокомментировать:");
        Comments.send($(this).find("textarea[name='c_message']").val(), $(this).find("input[name='c_parent_id']").val());
    }
    return false;
});

/*
 * Группы
 */
if(!(undefined===window.Groups))
{
    // ФИКС вёрстки !!! (методом "через анус")
    $('body').addClass("third2");

    
    // при щелчке на ссылке добавления в избранное
    $(".group_favorite").click(function(){
        Groups.favorite($(this).attr("href"), $(this).attr("rel"), this);
        return false;
    });

    // при щелчке на ссылке добавления в группу
    $(".group_join").click(function(){
        Groups.join($(this).attr("href"), $(this).attr("rel"), this);
        return false;
    });

    // инициализация cycle для ленты активности группы
    if(! (undefined === $.fn.cycle) )
    {
        // 2 слайда уже загружены - добавим их к списку
        Groups.loadedSlides.push(0);
        Groups.loadedSlides.push(1);
        // инициализируем Cycle для ленты активности
        if($('.last_activities > div').length>1)
        {
            $('.last_activities').cycle({
                    fx:     'scrollVert2',
                    speed:  700,
                    timeout: 0,
                    prev:   'a.c_up[rel="activity"]',
                    next:   'a.c_down[rel="activity"]',
                    before: function (curr, next, opts) {
                        // прячем или показываем стрелку "вверх"
                        if(opts.nextSlide==0 || $(next).hasClass("first"))
                        {
                            $('a.c_up[rel="activity"]').hide();
                        }
                        else
                        {
                            $('a.c_up[rel="activity"]').show();
                        }
                        // если мы движемся назад
                        if(opts.nextSlide > opts.currSlide)
                        {
                            opts.fx="scrollDown";
                            // если слайд не был подгружен ранее
                            if($.inArray(opts.currSlide+2, Groups.loadedSlides) == -1)
                            {
                                // подгружаем комментарии
                                Groups.activityHistory(opts.currSlide+2, opts);
                            }
                        }
                        else
                        {
                            opts.fx="scrollUp";
                        }
                    }
            });
        }
        else
        {
            $('a.c_up[rel="activity"], a.c_down[rel="activity"]').hide();
        }
    }

    // при щелчке на ссылке приглашения в группу
    $(".group_invite").click(function(){
        Groups.invite($(this).attr("rel"), $(this));
        return false;
    });

    // при щелчке на "рекомендовать в группу"
    $("a.favorite_group").click(function(){
        $("#group_list").slideToggle(400);
        return false;
    });

    // при отправке формы с выбранными группами (рекомендовать в группу)
    $("#group_list > form").submit(function(){
        var form=$(this).serialize();
        Groups.addFavoritePhoto(form);
        return false;
    });
}

// при нажатии на ссылку добавления (accept) нового пользователя группы
$("a.group_user_accept").click(function(){
    Groups.acceptNewUser($(this).attr("href"), this);
    return false;
});

// при нажатии на ссылку удаления пользователя группы
$("a.group_user_del").click(function(){
    if(confirm('Точно удалить этого пользователя из списка участников группы?'))
        Groups.deleteUser($(this).attr("href"), this);
    return false;
});

// при нажатии на ссылку модератора в списках группы
$("a.group_user_mod").click(function(){
    Groups.moderatorUser($(this).attr("href"), $(this).attr("rel"), this);
    return false;
});

// при нажатии на ссылку админа в списках группы
$("a.group_user_adm").click(function(){
    Groups.adminUser($(this).attr("href"), $(this).attr("rel"), this);
    return false;
});

// при нажатии на удаление фото из группы
$('.delete_groupphoto').click(function(){
    Groups.deletePhoto($(this).attr('rel'), $(this).attr("data-group"), this);
    return false;
});

// при нажатии на удаление рекомендованной фото из группы
$('.delete_groupfavoritephoto').click(function(){
    Groups.deleteFavoritePhoto($(this).attr('rel'), $(this).attr("data-group"), this);
    return false;
});

/*
 *  Поиск
 */

// при нажатии (фокус) поля поиска - очищаем поле ввода
$(".search2 input[name='text']").focus(function(){
    if($(this).attr("rel")!="changed") {
        $(this).val('');
    $(this).attr("rel", "changed");
    }
});

$(".search2").submit(function(){
    // если мы на странице поиска, то нужно учесть выбор фильтра поиска
    if($(":radio[name='filter']").length!=0) {
        var mode=$(":radio:checked[name='filter']").val();
        if(mode) {
           $(this).find("input:text").attr("name", mode);
        }
    }
    if($(this).find("input:text").attr("rel")=="changed" && $(this).find("input:text").val().length>0) {
        return true;
    }
    else {
         $(this).find("input[name='text']").focus();
         return false;
    }

});

/*
 * Форум
 */
if(!(undefined===window.Forum))
{
    $("#forum_topicname").focus(function(){
        if($(this).attr("rel")!="changed") {
            $(this).val('').attr("rel", "changed");
        }
    });

    $("#forum_addtopic").submit(function(){
        var message=tinyMCE.get('c_message').getContent();
        if($.trim($("#forum_topicname").val()).length==0 || $.trim(message.replace(/<p><\/p>/gi, '')).length==0 || $("#forum_topicname").attr("rel")!="changed") {
            alert('Название темы либо текст сообщения не введены.');
            return false;
        }
    });

    // при нажатии на "цитировать"
    $("a.quote").click(function(){
        Forum.quote($(this).attr("rel"), this);
        return false;
    });

    // нажатие на "отменить цитирование"
    $("a.cancel").click(function(){
        $("#forum_formcaption").text('Написать:');
        $(this).hide();
        $("input[name='quote']").val('0');
        return false;
    });

    // при нажатии на "удалить" пост
    $(".delete_post").click(function(){
        if($(this).hasClass("ringo")) {
            Forum.deletePostRingo($(this).attr("rel"), this);
        } else
            Forum.deletePost($(this).attr("rel"), this);
        return false;
    });

    // при нажатии на "удалить" топик
    $(".delete_topic").click(function(){
        if($(this).hasClass("ringo")) {
            Forum.deleteTopicRingo($(this).attr("rel"), this);
        } else
            Forum.deleteTopic($(this).attr("rel"), this);
        return false;
    });

    // при нажатии на "закрыть" топик
    $(".close_topic").click(function(){
        if($(this).hasClass("open")) {
            Forum.openTopic($(this).attr("rel"), this);
        } else
            Forum.closeTopic($(this).attr("rel"), this);
        return false;
    });
    
}

// если подключен плагин новостей
if(!(undefined===window.News))
{
    if(! (undefined === $.fn.cycle) )
    {
        // 2 слайда уже загружены - добавим их к списку
        News.loadedSlides.push(0);
        News.loadedSlides.push(1);
        // инициализируем Cycle для ленты последних новостей на главной
        if($('.last_news > div').length>1)
        {
            $('.last_news').cycle({
                    fx:     'scrollVert2',
                    speed:  700,
                    timeout: 0,
                    prev:   'a.c_up[rel="news"]',
                    next:   'a.c_down[rel="news"]',
                    before: function (curr, next, opts) {
                        // прячем или показываем стрелку "вверх"
                        if(opts.nextSlide==0 || $(next).hasClass("first"))
                        {
                            $('a.c_up[rel="news"]').hide();
                        }
                        else
                        {
                            $('a.c_up[rel="news"]').show();
                        }
                        // прячем или показываем кнопку "вниз"
                        if(next==opts.elements[opts.elements.length-1]) {
                            $('a.c_down[rel="news"]').hide();
                        } else {
                            $('a.c_down[rel="news"]').show();
                        }
                        // если мы движемся назад
                        if(opts.nextSlide > opts.currSlide)
                        {
                            opts.fx="scrollDown";
                            // если слайд не был подгружен ранее
                            if($.inArray(opts.currSlide+2, News.loadedSlides) == -1)
                            {
                                // подгружаем новости
                                News.newsHistory(opts.currSlide+2, opts);
                            }
                        }
                        else
                        {
                            opts.fx="scrollUp";
                        }
                    }
            });
        }
        else
        {
            $('a.c_up[rel="news"], a.c_down[rel="news"]').hide();
        }
    }
}

// если подключен плагин блога
if(!(undefined===window.Blog))
{
    $("a.delete_blogpost").click(function(){
        if(confirm("Удалить этот пост без возможности восстановления?")) {
            Blog.deletePost($(this).attr("rel"), this);
        }
        return false;
    });

    // при нажатии на кнопки голосования за посты блога
    $(".blog_vote").click(function(){
        // голосуем за этот комментарий
        var vote=($(this).attr("href").indexOf('up')!=-1)? 'up' : 'down';
        Blog.vote($(this).attr("rel"), vote, this);
        return false;
    });
}

/*
 *  События
 */

if(!(undefined==window.Events)) {
    // при нажатии на "удалить" событие
    $(".delete_event").click(function(){
        if(confirm('Удалить это событие?'))
        Events.deleteEvent($(this).attr("rel"), this);
        return false;
    });

    // при выборе другой страны при редактировании события
    $(".country_select").change(function(){
        Events.getCityAreas($(this).val());
    });

    // при выборе другого региона при редактировании профиля
    $(".cityarea_select").change(function(){
        Events.getCities($(this).val());
    });

    if($(".cityarea_select").is(":empty")) {
        Events.getCityAreas($(".country_select").val());
    }

    if($.fn.datepicker)
    // инициализация datepicker для выбора даты
    $("input[name='c_date'],input[name='c_date_until']").datepicker({dateFormat: 'yy-mm-dd', firstDay: 1, monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб']});
}

/*
 *  Голосование
 */

if(!(undefined==window.Voting)) {
    // при отправке формы голосования
    $("#voting_form").submit(function(){
        Voting.vote($(this).find("input[name='vote']:checked").val());
        return false;
    });
}

/*
    Конкурсы
*/
if(!(undefined==window.Competitions)) {

// Меняем путь получения и сохранения заметок
if(window.Photo) {
    Photo.get_notes_url='/execplugin/?plg=photo&plugFunc=getImageNotes&competition=1&photo=';
    Photo.save_notes_url='/execplugin/?plg=photo&plugFunc=saveImageNotes&competition=1&photo=';
}

if($.fn.datepicker)
    // инициализация datepicker для выбора даты
    $("input[name^='c_date']").datepicker({dateFormat: 'yy-mm-dd', firstDay: 1, monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб']});

// при клике на кнопку голосовать за фото
$(".shape .comp_vote").click(function(){
    Competitions.vote($(this).attr("href"), this);
    return false;
});

// при отметке чекбоксов соглашения с конкурсом
$("#upload_form .agree").bind("change click", function(){
    if($("#upload_form .agree:checked").length==2) {
        $("#upload_form :submit").show();
    } else {
        $("#upload_form :submit").hide();
    }
});

// при отправке формы закачки фотографии
$("#upload_form").submit(function(){
    // проверим, ввели ли название фотки, выбрали ли файл с фоткой
    $("input,textarea").removeClass("invalid");
    $("p.error").empty();
    if($("#upload_photoname").val().length<1 || $("#upload_photoname").attr("rel")!='changed')
    {
        $("#upload_photoname").addClass("invalid").focus();
        $(document).scrollTop(20);
        return false;
    }
    if($("input[name='photo']").val().length<1)
    {
        $("input[name='photo']").addClass("invalid").focus();
        $(document).scrollTop(40);
        return false;
    }
    if($("textarea[name='c_desc']").attr("rel")!='changed') $("textarea[name='c_desc']").val('');
    $(this).find("input[name='c_name']").val($("#upload_photoname").val());
    $(this).find(":submit").attr("disabled", true);
});

// при нажатии на удаление фото из конкурса
$('.delete_compphoto').click(function(){
    Competitions.deletePhoto($(this).attr('rel'), this);
    return false;
});

// при нажатии на кнопку сохранения места фотки
$('.photo_place_save').click(function(){
    if($(this).closest("div").find(".photo_place").val()) {
        Competitions.savePlace($(this).attr("rel"), $(this).closest("div").find(".photo_place").val(), this);
    }
    return false;
});

}

// при клике на ссылки кол-ва избравших
$(".new_window").live("click", function(){
    window.open($(this).attr("href"), 'app', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=340,height=400,left = 180,top = 100');
    return false;
});


/*
 *  Вставка кнопки для возврата обратно наверх сайта
 */
if($.fn.scrollTo) {
    var scroller=$("<a href='#' id='scroller'><img src='/img/up.png' alt='' border='1'/></a>").appendTo("body").
        bind("click", function(){
            $(document).scrollTo('0px', 800, {easing:'swing'} );
            return false;
        });

    $(document).scroll(function(){
        if($(document).scrollTop()>$(document).height()/2) {
            scroller.fadeIn();
        } else {
            scroller.fadeOut();
        }
    });
}

});


/*
*   При загрузке окна
*/

$(window).load(function(){

if($.fn.annotateImage && window.Photo)
    {
        // инициализируем Notes для фотографии (при просмотре фото)
        Photo.annotationInit(Photo.id);
    }

    // инициализируем TinyMCE для групп
//    if($(".forum_textarea").length!=0 && window.Forum) {
//        Forum.initTinyMCE();
//    }

});

/*
 * Баг фикс TinyMCE для Opera 10 
 */
if(window.tinyMCE) {
    // (форум групп)
//    userForumTinyMCEInit();
        tinyMCE.init({
                // General options
                mode : "specific_textareas",
        editor_selector : "forum_textarea",
                theme : "advanced",
    //		plugins : "safari,pagebreak,style,layer,table",
        language : "ru",
        width: 562,
        height: 170,
        gecko_spellcheck : true,
        verify_css_classes : true,
    //    content_css : "/css/tinyMCE.css",
                // Theme options
                theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect,link,image",
                theme_advanced_buttons2 : "",
                theme_advanced_buttons3 : "",
                theme_advanced_toolbar_location : "top",
                theme_advanced_toolbar_align : "left",
    //		theme_advanced_statusbar_location : "bottom",
                theme_advanced_resizing : true,
        //валидация: http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/valid_elements
        valid_elements : "@[align|style|color|size],b[],i[],ol,ul,li,span[size|color|style],p[align],br,a[href],strike[],blockquote[],img[width|height|src|alt|style|align],object[width|height],param[name|value],embed[src|type|allowfullscreen|allowscriptaccess|width|height]"

        });
    // блог
            tinyMCE.init({
                // General options
                mode : "specific_textareas",
        editor_selector : "blog_textarea",
                theme : "advanced",
    //		plugins : "safari,pagebreak,style,layer,table",
        language : "ru",
        urlconverter_callback : function (url, node, on_save) {return url;},
        width: 800,
        height: 470,
        gecko_spellcheck : true,
        verify_css_classes : true,
        content_css : "/css/tinyMCE.css",
                // Theme options
                theme_advanced_buttons1 : "cutbutton,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime|,forecolor,backcolor",
		theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,media,advhr,|,fullscreen|media",
		theme_advanced_buttons4 : "",
                theme_advanced_toolbar_location : "top",
                theme_advanced_toolbar_align : "left",
    //		theme_advanced_statusbar_location : "bottom",
                theme_advanced_resizing : true,
                media_strict : false,
        //валидация: http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/valid_elements
//        valid_elements : "@[align|style|color|size|class],b[],strong[],i[],ol,ul[],li[],img[width|height|src|alt|style|align],h1[],h2[],h3[],h4[],h5[],h6[],span[size|color|style],p[align,style,class],br,a[href],strike[],blockquote,cut,object[classid|width|height|codebase|*],param[name|value],embed[src|type|allowfullscreen|allowscriptaccess|width|height|*]",
        valid_elements : "@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|"
        + "onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|"
        + "onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|"
        + "name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,"
        + "#p,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|"
        + "src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,"
        + "-blockquote,-table[border=0|cellspacing|cellpadding|width|frame|rules|"
        + "height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|"
        + "height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,"
        + "#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor"
        + "|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,"
        + "-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face"
        + "|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],"
        + "object[classid|width|height|codebase|*],param[name|value|_value],embed[type|width"
        + "|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,"
        + "button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|"
        + "valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],"
        + "input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],"
        + "kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],"
        + "q[cite],samp,select[disabled|multiple|name|size],small,"
        + "textarea[cols|rows|disabled|name|readonly],tt,var,big,cut",
        plugins : 'inlinepopups,paste,media',

        setup : function(ed) {
            // Add a custom button
            ed.addButton('cutbutton', {
            title : 'Вставить "кат"',
            image : '/img/cut.gif',
            onclick : function() {
            // Add you own code to execute something on click
                ed.focus();
                // если ката ещё нету - поставим его
                if(ed.getContent().indexOf("<cut>")==-1) {
                    if(ed.selection.getContent()) {
                        ed.selection.setContent('<cut>'+ed.selection.getContent()+'</cut>');
                    } else {
                        ed.selection.setContent('<cut>Продолжение следует...</cut>');
                    }
                }
            }
            });
        }

        });
}
/* 
 * Все инициализации tinyMCE должны быть в /js/user_tinymce.js   Это исключение. 
 */

function ringobox(ico, text, url)
{
    $("#new_mess img").attr("src", ico);
    $("#new_mess span").html(text);
    $("#new_mess a").attr("href", url);
    var y=$(window).height()-80;
    $("#new_mess").animate({top:y+'px', 'opacity':'toggle'}, 1500, "easeOutBounce", function(){
        setTimeout('$("#new_mess").animate({top:"-70px", opacity: "toggle"}, 500, "swing");', 60000);
    });
    
}

function urlencode( str ) {

    var histogram = {}, unicodeStr='', hexEscStr='';
    var ret = (str+'').toString();

    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };

    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['&']   = '%26';
    histogram['%20'] = '+';
    histogram['\u00DC'] = '%DC';
    histogram['\u00FC'] = '%FC';
    histogram['\u00C4'] = '%D4';
    histogram['\u00E4'] = '%E4';
    histogram['\u00D6'] = '%D6';
    histogram['\u00F6'] = '%F6';
    histogram['\u00DF'] = '%DF';
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';

    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);

    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr];
        ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
    }

    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
}
