/*
-----------------------------------------------
Javascript based on a jQuery framework for Subscribe.ru
Author:   akella at http://cssing.org.ua
Version:  10 Nov 2007
----------------------------------------------- */
$(document).ready(function(){
	
	// доп. стили для Firefox
	if (/(Firefox)/i.test(navigator.userAgent)) {
		$('head').append('<link rel="stylesheet" href="' + static_url + '/css/screen.ff.css" type="text/css" media="screen" charset="utf-8"/>');
	}
	// доп. стили для Opera
	if (/(Opera)/i.test(navigator.userAgent)) {
		$('head').append('<link rel="stylesheet" href="' + static_url + '/css/screen.opera.css" type="text/css" media="screen" charset="utf-8"/>');
	}

	// Форма комментирования
	// Нужно будет задавать скрытым полям нужные атрибуты,
	// чтобы знать на какой именно комментарий эта форма была вызвана как ответ.
    function init_comment_tinymce(textarea) {
        textarea.tinymce({
            theme: "advanced",
            skin: "nevod",
            width: "100%",
            language: "ru",
            relative_urls: false,
            plugins: "safari,emotions,inlinepopups,paste",
            theme_advanced_toolbar_location: "top",
            theme_advanced_toolbar_align: "left",
            theme_advanced_buttons1: "link,unlink,|,bold,italic,underline,strikethrough,|,emotions" ,
            theme_advanced_buttons2: "",
            theme_advanced_buttons3: "",
            theme_advanced_buttons4: "",
            valid_elements: "a[href|target<_blank?_self|title],"
                            + "img[width|height|src|alt|border|hspace|vspace|align|title|style|class],"
                            + "strong/b,em/i,strike,u,"
                            + "br,#p[style],-span[style]"
        });
    }
    var comment_ta = $('#reply-form textarea'); 
	if (comment_ta.length) {
        init_comment_tinymce(comment_ta);        
    }
    
    $('.reply').click(function() {
        if (this.className.search('follow-link') != -1) {
            return true;
        }
        
        var replyForm = $('#reply-form');
        var replyFormParent = replyForm.parent();
        replyFormParent.show();
        
        $('#id_reply_to', replyForm).val(this.rel);
        replyForm.attr('action', this.href);
        
        var ta = $('textarea', replyForm);
        ta.tinymce().destroy();
        $(ta.tinymce().getContainer()).remove();
        ta.show();
        
        var thisparent = $(this).parent();
        
        var form_header = $('.reply-form-header', replyForm);
        if (form_header.length) {
            $('span', form_header).html('Ответ на комментарий');
            $('a', form_header).remove();
            var thisparent_parent = thisparent.parent();
            var subscriberu_titlesand_parent = $('.subscriberu_fbbox > a.subscriberu_titlesand', thisparent_parent);
            if (subscriberu_titlesand_parent.length) {
                var author_name = subscriberu_titlesand_parent.text();
                var author_link = subscriberu_titlesand_parent.attr('href');
                $('<a class="subscriberu_titlesand" href="' + author_link + '">' + author_name + '</a>').appendTo(form_header);
            } else {
                author_link = $('a.title', thisparent_parent).clone();
                author_link.appendTo(form_header);
                author_link.attr('href', $('p.p-title a', thisparent_parent).attr('href'));
            } 
        }        
        
        thisparent.after(replyFormParent);
        init_comment_tinymce(ta);
        ta.tinymce().focus();
        
        return false;
    });
    
    //group description wysiwyg
    function init_group_description_tinymce(textarea) {
        textarea.tinymce({
            theme: "advanced",
            skin: "nevod",
            language: "ru",
            relative_urls: false,
            plugins: "safari,emotions,inlinepopups,paste",
            theme_advanced_toolbar_location: "top",
            theme_advanced_toolbar_align: "left",
            theme_advanced_buttons1: "link,unlink,|,bold,italic,underline,strikethrough,|,emotions" ,
            theme_advanced_buttons2: "",
            theme_advanced_buttons3: "",
            theme_advanced_buttons4: "",
            valid_elements: "a[href|target<_blank?_self|title],"
                            + "img[width|height|src|alt|border|hspace|vspace|align|title|style|class],"
                            + "strong/b,em/i,strike,u,"
                            + "br,#p[style],-span[style]"
        });
    }
    var group_description_ta = $('#id_description'); 
    if (group_description_ta.length) {
        init_group_description_tinymce(group_description_ta);        
    }

    var group_edit_form = $('form.group-edit');
    $('label[for="id_premoderating_type_2"]', group_edit_form).click(function(e){
        $('#id_premoderating_type_2', group_edit_form).click();
        e.preventDefault();
    });

    $('#id_topic_links_limit').bind("change click", function(e){
        $('#id_is_topic_links_limit_active').attr('checked', true);
        e.preventDefault();
    });

	//Серый фон для новостей по наведению (ИЕ)
	$('.hentry').hover(function() {
	  $(this).addClass('entryhovered');
	}, function() {
	  $(this).removeClass('entryhovered');
	});

	$('.entry').each(function() {$(this).hover(function() {$(this).addClass('entryhover');}, function() {$(this).removeClass('entryhover');});});
	$('.message').each(function() {$(this).hover(function() {$(this).addClass('messagehover');}, function() {$(this).removeClass('messagehover');});});

	// Unbind events for messagelist
	$('.people.messagelist li').unbind().hover(function() {}, function() {});

	//Попап информации о человеке в списке сообщений (ИЕ)
	$('.people .from').hover(function() {
	  $(this).parent().addClass('peoplehover');
	}, function() {
	  $(this).parent().removeClass('peoplehover');
	});

	//Попап инфо о человеке в списке новостей (ИЕ)
	$('.author').hover(function() {
	  $(this).addClass('authorhover');
	}, function() {
	  $(this).removeClass('authorhover');
	});

	//Попап информации о рассылке
	$('.subscribeto').hover(function() {
	  $(this).addClass('subscribetohover');
	}, function() {
	  $(this).removeClass('subscribetohover');
	});
	//Добавление файла, разворачиваюшаяся форма
	var adding_file_toogler = $('.toggler');
	adding_file_toogler.click(function() {
	  $(this).parents('.addfile').addClass('addfile-active');
		return false;
	});
	$('.emptyfilelist a.first_upload').click(function() {
		adding_file_toogler.click();
		return false;
	});
	$('.adding-file .last a').click(function() {
	  $(this).parents('.addfile').removeClass('addfile-active');
		return false;
	});
	//Клонирование инпутов, для аттача к постам
	var FileInputCounter = 1;
	$('#addfileinput').click(function() {
   //Клонируем инпут файл
     $("input[name*='[File][1]']").clone().each(function() {
        //Делаем name чтобы проще распарсить на сервере
        this.name = this.name.replace(/\[(\d+)\]/, function (m,x) {
            return '[' + (parseInt(x) + FileInputCounter) + ']'
        });
        //очищаем заполненность
        this.value = '';
        //Добавляем в форму
        $('#mfi').append($(this));
     });
     FileInputCounter++;
		return false;
	});

    // удаление файлов из топиков
    $('form#topic-create a.delete').click(function() {
        var el = this;
		show_confirm_form('Вы действительно хотите удалить файл?',
			{
				show: true,
				callback: function() {
					$.post(el.href, {'confirmed': 1}, function() { $(el).parent().hide() });
				}
			},
			{
				show: true,
				callback: function() {}
			});	
        return false;
    });

	// добавление в букмарки
	$('.bookmark').click(function() {
            var bookmark = $(this);
            $.post(this.href, {},
                   function (data, status) {
                   	console.log(data);
                       if (data && data['success']) {
                    	   var s = bookmark.children('span').children('var');
                           if (s.text() == 'В избранное') {
                    	       s.text('В избранном');
                           } else {
                               s.text('В избранное');
                           }
                           bookmark.toggleClass('bookmark-added');
                       }
                       if (data && data['redirect']) {
                           top.location.href = data['redirect'];
                       }
                   }, "json");
            return false;
        });
	// подписка
	$('.subscribe').click(function() {
            var subscriber = $(this);
            $.post(subscriber.attr('href'), {},
                   function (data, status) {
                       if (status == "success") {
                           subscriber.toggleClass('subscribedone');
                           subscriber.toggleClass('subscribed');
                           subscriber.toggleClass('notsubscribed');
                           if (subscriber.hasClass('notsubscribed')) {
                        	subscriber.attr('href', subscriber.attr('href').replace('/unsubscribe/', '/subscribe/'));
                        	subscriber.html('Подписаться');
                           } else {
                        	subscriber.attr('href', subscriber.attr('href').replace('/subscribe/', '/unsubscribe/'));
                        	subscriber.html('Я подписан');
                           }
                    	top.location.href = top.location.href;
                       }});
            return false;
        });
	//ширина выпадающих меню
	$(window).resize(function(){
		neww = $("#out").width()-50;
		$(".person-nav ul,.person-nav .sub").width(neww);
	});
	neww = $("#out").width()-50;
	$(".person-nav ul,.person-nav .sub").width(neww);

	//Переключение формы радиобуттонами
	$('.f-invite input[type=radio]').click(function() {
		if($('#registered').attr('checked')) {$(this).parents('form').addClass('registered');}
		else{$(this).parents('form').removeClass('registered');}
	});


	// включить плагин с подсказками для полей ввода
	$('input[title!=""],textarea[title!=""]').hint();

	// подсказка для неавторизованной загрузки файла.
	$('div.add-file-form input.submit').click(function() {
	    if ($('p.grouplabel a.addmeplease').length > 0) {
		show_alert('Вступите в группу, чтобы добавлять файлы.');
		return false;
	    };
	});
});

$(document).ready(function() {
    // попап с запросом данных у новичков
    if (user_newbie & !user_anonymous) {
        $('.ask-newbie:not(a.addmeplease)').click(function() {askNewbie(this);});

        // group join/leave
        var group_label = $('.topblock .grouplabel');
		
        $('a.removemefromgroup.ask-newbie', group_label)
        	.unbind('click')
        	.click(function() {
                if (user_newbie) {
                    return askNewbie2(this, this.getAttribute('href'));
                }
			});

        $('a.addmeplease.ask-newbie', group_label)
        	.unbind('click')
        	.click(function() {
                if (user_newbie) {
                    return askNewbie2(this, this.getAttribute('href'));
                }
        	});

        // добавление в букмарки
        $('.bookmark.ask-newbie')
        	.unbind('click')
        	.click(function(e) {
                if (user_newbie) {
                    return askNewbie2(this);
                } else {
                    var bookmark = $(this);
                    $.post(this.href, {},
                           function (data, status) {
                               if (data && data['success']) {
                                   bookmark.toggleClass('bookmark-added');
                               }
                               if (data && data['redirect']) {
                                   top.location.href = data['redirect'];
                               }
                           }, "json");
                    return false;
                }
            });
        // подписка
        $('.subscribe.ask-newbie ')
        	.unbind('click')
        	.click(function(e) {
                if (user_newbie) {
                    return askNewbie2(this);
                } else {
                    var subscriber = $(this);
                    $.post(subscriber.attr('href'), {},
                           function (data, status) {
                               if (status == "success") {
                                   subscriber.toggleClass('subscribedone');
                                   subscriber.toggleClass('subscribed');
                                   subscriber.toggleClass('notsubscribed');
                                   if (subscriber.hasClass('notsubscribed')) {
                                    subscriber.html('Подписаться');
                                   } else {
                                    subscriber.html('Я подписан');
                                   }
                               }});
                    return false;
                }
            });
    }

    if (user_anonymous) {
       	$('.ask-anonymous').click(function() {return askAnonymous(this);});

        // добавление в букмарки
        $('.bookmark.ask-anonymous')
        	.unbind('click')
        	.click(function(e) {
                if (user_anonymous) {
                    return askAnonymous(this);
                } else {
                    var bookmark = $(this);
                    $.post(this.href, {},
                           function (data, status) {
                               if (data && data['success']) {
                                   bookmark.toggleClass('bookmark-added');
                               }
                               if (data && data['redirect']) {
                                   top.location.href = data['redirect'];
                               }
                           }, "json");
                    return false;
                }
            });
        // подписка
        $('.subscribe.ask-anonymous ')
        	.unbind('click')
        	.click(function(e) {
                if (user_anonymous) {
                    return askAnonymous(this);
                } else {
                    var subscriber = $(this);
                    $.post(subscriber.attr('href'), {},
                           function (data, status) {
                               if (status == "success") {
                                   subscriber.toggleClass('subscribedone');
                                   subscriber.toggleClass('subscribed');
                                   subscriber.toggleClass('notsubscribed');
                                   if (subscriber.hasClass('notsubscribed')) {
                                    subscriber.html('Подписаться');
                                   } else {
                                    subscriber.html('Я подписан');
                                   }
                               }});
                    return false;
                }
            });
    }

    $('.sub-popup,.cat-popup,.group-popup,.user-popup,.calendar-popup').each(function() {
 		$(this).hover(function() {$(this).addClass('phover');}, function() {$(this).removeClass('phover');});
 	});
 	$('.users .user').each(function() {
 		$(this).hover(function() {$(this).addClass('jshover');}, function() {$(this).removeClass('jshover');});
 	});


    $("#id_text.feedback_text-spam").DefaultValue("Почему вы считаете это спамом?");
    $("#id_email.members_invite_emails").DefaultValue("если несколько, то через запятую");
    $("#id_antispam_filter").DefaultValue("одна строка - одно антиспам-правило");

});

function askAnonymous(el) {
    if (user_anonymous) {
		aobj = $(el);
		showloginForm(aobj);
		return false;
    }
}

function _unused_ludi_askAnonymous(el) {
	if (user_anonymous) {
        tb_show('Для ввода информации на сайт, необходимо войти под своим именем или зарегистрироваться', user_edit_url + '?KeepThis=true&TB_iframe=true&height=500&width=750', '');
        $('#TB_closeAjaxWindow').html("Чтобы <a href='#' id='TB_closeWindowButton' title='Close'>закрыть</a> нажмите Esc");
        $('#TB_ajaxWindowTitle').html("Для ввода информации на сайт, необходимо войти под своим именем или зарегистрироваться");
        $('#TB_closeWindowButton').click(tb_remove);
        $('#TB_title').remove();

        var clicked_obj = $(el);
		clicked_obj.blur();
        window.thrower = clicked_obj;

        return false;
    }
}

function askNewbie(el, redirect_to) {
    if (user_newbie) {
    	var get_params = 'KeepThis=true&TB_iframe=true&height=400&width=750';
    	if (redirect_to) {
    		get_params = 'redirect_to=' + encodeURI(redirect_to) + '&' + get_params;
    	}
        tb_show('Запрос данных', user_edit_url + '?' + get_params, '');
        $('#TB_closeAjaxWindow').html("Чтобы <a href='#' id='TB_closeWindowButton' title='Close'>закрыть</a> нажмите Esc");
        $('#TB_ajaxWindowTitle').html("Запрос данных");
        $('#TB_closeWindowButton').click(tb_remove);
        $('#TB_title').remove();
        $(el).blur();
        return false;
    }
}

function askNewbie2(el, redirect_to) {
    if (user_newbie) {
    	var clicked_obj = $(el);
        window.thrower = clicked_obj;
        clicked_obj.blur();

        return askNewbie(el, redirect_to);
    }
}

function _tb_remove(got_login) {
 	$("#TB_imageOff").unbind("click");
	$("#TB_closeWindowButton").unbind("click");
	$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
	$("#TB_load").remove();
	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
		$("body","html").css({height: "auto", width: "auto"});
		$("html").css("overflow","");
	}
	document.onkeydown = "";
	document.onkeyup = "";

	if (window.thrower && (window.thrower.length > 0) && got_login) {
	    user_newbie = false;
	    user_anonymous = false;
        if (window.thrower.hasClass('follow-link') && window.thrower.attr('href')) {
            top.location.href = window.thrower.attr('href');
        } else {
            window.thrower.triggerHandler('click');
        }
    }

	return false;
}

function tb_remove() { return _tb_remove(false); }
function tb_remove_login() { return _tb_remove(true); }


// Плагин для подсказок внутри инпутов, превращает title в value
jQuery.fn.hint = function () {
  return this.each(function (){
    var t = jQuery(this);
    var title = t.attr('title');
    if (title) {
      t.blur(function (){
        if (t.val() == '') {
          t.val(title);
          t.addClass('blur');
        }
      });
      t.focus(function (){
        if (t.val() == title) {
          t.val('');
          t.removeClass('blur');
        }
      });
      t.blur();
    }
  });
}

jQuery.fn.DefaultValue = function(text){
    return this.each(function(){
        var fld_current=this;

        if(this.value=='' || this.value == text) {
            this.value=text;
            $(this).addClass("empty");
        }
        else {
            return;
        }

        $(this).focus(function() {
            if(this.value==text || this.value=='') {
                this.value='';
                $(this).removeClass("empty");
            }
        });

        $(this).blur(function() {
            if(this.value==text || this.value=='') {
                this.value=text;
                $(this).addClass("empty");
            }
        });

        $(this).parents("form").each(function() {
            $(this).submit(function() {
                if(fld_current.value==text) {
                    fld_current.value='';
                }
            });
        });
    });
};