var init_user_ckeditor = function () {

    $j('.interface textarea.html_editor').ckeditor({

        toolbar:
            [
                [
                    'Source', '-', 'Format', '-', 'Bold', 'Italic', 'Underline', '-',
                    'Subscript', 'Superscript', 'SpecialChar', '-',
                    'JustifyLeft', 'JustifyCenter', 'JustifyRight', '-',
                    'NumberedList', 'BulletedList', '-',
                    'Link', 'Unlink', '-',
                    'Table', 'Image', '-', 'PasteFromWord', 'RemoveFormat', 'Blockquote', 'typograf'
                ],
            ],
        language: 'ru',
        /*removePlugins:'scayt,menubutton,contextmenu',*/
        filebrowserUploadUrl: '/admin/upload.php',
        extraPlugins: 'iframedialog,typograf'
    });
}

//Смена домена	
function change_city() {
    var url = $j('#change_city').val();
    document.location = url;
}

function slideTo(id) {
    $j('#colors .slide').css('display', 'none');
    $j('#s' + id).css('display', 'block');
    $j('#colors .squares a').removeClass('active');
    $j('#sq' + id).addClass('active');
}

//Голосование за комментарий
function comm_vote(comm_id, value) {
    var op = $j('#' + comm_id + ' img').css('opacity');
    if (op < 1) {
        alert('Вы уже голосовали =)');
        return false;
    }
    $j('#' + comm_id + ' img').css('opacity', 0.3);
    $j.post('/', { interface: 'comm_vote', id: comm_id, value: value }, function (data) {
        if (data == 'already_voted') {
            alert('Вы уже голосовали');
            return false;
        } else if (data == 'reg') {
            alert('Анонимы не голосуют');
            return false;
        } else if (data == 'wrong_vote') {
            alert('Неверный балл');
            return false;
        }
        var val = $j('#' + comm_id + ' span').text();
        $j('#' + comm_id + ' span').text(parseInt(val) + value);
        if (value > 0)
            $j('#' + comm_id + ' span').addClass('plus');
        else
            $j('#' + comm_id + ' span').addClass('minus');
    });
}

$j(document).ready(function () {

    $j('#change_city').change(function (e) {
        var url = $j(this).val();
        document.location = 'http://' + url;
    });

    $j('.comms_mobi').click(function () {
        $j('#vk_comms').hide();
        $j('#add-comment').show();
        $j('#mobi_comms').show();
        return false;
    });

    $j('.comms_vk').click(function () {
        $j('#add-comment').hide();
        $j('#mobi_comms').hide();
        $j('#vk_comms').show();
        return false;
    });


    $j('.comm_vote img.plus').click(function () {
        var comm_id = $j(this).parent('.comm_vote').attr('id');
        comm_vote(comm_id, 1);
        return false;
    });
    $j('.comm_vote img.minus').click(function () {
        var comm_id = $j(this).parent('.comm_vote').attr('id');
        comm_vote(comm_id, -1);
        return false;
    });

});

//Вызываемые после AJAX-запросов функции
var actions = {
    showCount: function (data) {
        $j('.search_hint').html(data['message']);
    },

    goodFunc: function (data) {
    }

};

//Подгружаем данные пользователя вместо поля логин/пароль
function loadUserData(id, url, interface_name) {
    $j.ajax({
        type: 'post',
        data: ({ interface: interface_name }),
        dataType: 'html',
        url: url,
        cache: true,
        success: function (html) {
            if (html.length > 0)
                $j('#' + id).html(html);
        }
    });
}

//Вызов интерфейса модуля
function call_int(url, interface_name, params, hide_id, show_id) {
    $j.ajax({
        type: 'post',
        data: ({ interface: interface_name, params: params }),
        dataType: 'text',
        url: url,
        cache: false,
        success: function (data) {
            if (data.length > 0)
                alert(data);
            else {
                $j('#' + hide_id).hide('fast', function () {
                    $j('#' + show_id).show('fast');
                });
            }
        }
    });
}

$j(document).ready(function (e) {

    $j('form.step-form input').change(function (e) {
        step_change($j(this).attr('id'))
    });
    $j('form.step-form select').change(function (e) {
        step_change($j(this).attr('id'))
    });

    //	loadUserData('userblock', '/users.html', 'userblock');
    //	loadUserData('usermail', '/users.html', 'usermail');

    $j('.star1').click(function () {
        vote($j(this).attr('rec'), 1);
        $j(this).parent('.stars-mark').children('span').attr('class', 'm10');
        $j(this).parent('.stars-mark').fadeOut('fast', function () {
            $j(this).fadeIn('fast');
        });
        return false;
    });
    $j('.star2').click(function () {
        vote($j(this).attr('rec'), 2);
        $j(this).parent('.stars-mark').children('span').attr('class', 'm20');
        $j(this).parent('.stars-mark').fadeOut('fast', function () {
            $j(this).fadeIn('fast');
        });
        return false;
    });
    $j('.star3').click(function () {
        vote($j(this).attr('rec'), 3);
        $j(this).parent('.stars-mark').children('span').attr('class', 'm30');
        $j(this).parent('.stars-mark').fadeOut('fast', function () {
            $j(this).fadeIn('fast');
        });
        return false;
    });
    $j('.star4').click(function () {
        vote($j(this).attr('rec'), 4);
        $j(this).parent('.stars-mark').children('span').attr('class', 'm40');
        $j(this).parent('.stars-mark').fadeOut('fast', function () {
            $j(this).fadeIn('fast');
        });
        return false;
    });
    $j('.star5').click(function () {
        vote($j(this).attr('rec'), 5);
        $j(this).parent('.stars-mark').children('span').attr('class', 'm50');
        $j(this).parent('.stars-mark').fadeOut('fast', function () {
            $j(this).fadeIn('fast');
        });
        return false;
    });

    $j('.social_icons_vk').click(function () {
        shareVK()
    });
    $j('.social_icons_twitter').click(function () {
        shareTwitter()
    });
    $j('.social_icons_facebook').click(function () {
        shareFacebook()
    });
    $j('.social_icons_mailru').click(function () {
        shareMailru()
    });
    $j('.social_icons_lj').click(function () {
        shareLj()
    });
    $j('.social_icons_google').click(function () {
        shareGoogle()
    });
    $j('.social_icons_classmates').click(function () {
        shareClassmates()
    });

    $j('.ads').click(function() {
        call_int('/price.html', 'ads_switch', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.user_admin_domain').click(function() {
        call_int('/users.html', 'user_admin_domain', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.corp_press').click(function () {
        call_int('/company.html', 'corp_news_switch', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.corp_ask').click(function () {
        call_int('/company.html', 'corp_ask_switch', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.user_admin_domain').click(function () {
        call_int('/users.html', 'user_admin_domain', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.user_admin_users').click(function () {
        call_int('/users.html', 'admin_users', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.domain_posts').click(function () {
        call_int('/users.html', 'domain_posts', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.domain_press').click(function () {
        call_int('/users.html', 'domain_press', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.domain_weather').click(function () {
        call_int('/users.html', 'domain_weather', $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.click_interface').click(function() {
        var href = $j(this).attr('href');
        if (href == '')
            href = document.location.href;
        call_int(href, $j(this).attr('interface'), $j(this).attr('params'), $j(this).attr('hide_id'), $j(this).attr('show_id'));
        return false;
    });

    $j('.check_all').click(function() {
        $j(this).parents('table').find(':checkbox').attr('checked', $j(this).attr('checked'));
        $j(this).parents('table').find(':checkbox:last').focus();
    });

    $j('.search_modules a.search_module').click(function(event) {
        event.preventDefault();
        switchSearchModules(this);
    });

    var page = 0;
    var pages = 2;
    var side_page = 0;
    var side_pages = 2;
    var sort = "id";
    $j(".left-incut .selectors a").click(function(event) {
        event.preventDefault();
        if ($j(this).hasClass("selected")) {
            sort = "id";
            $j(this).removeClass("selected");
        }
        else {
            sort = $j(this).attr("data-sort");
            $j(".left-incut .selectors a.selected").removeClass("selected");
            $j(this).addClass("selected");
        }
        initGadgets("index", ".gadgets_random.index");
    });
    $j(".gadgets_random.index .prev").click(function() {
        if ($j(this).hasClass("disabled")) return true;
        gadgetsMove("prev", ".gadgets_random.index", "index");
    });

    $j(".gadgets_random.index .next").click(function() {
        if ($j(this).hasClass("disabled")) return true;
        gadgetsMove("next", ".gadgets_random.index", "index");
    });

    $j(".gadgets_random.inner .prev").click(function() {
        if ($j(this).hasClass("disabled")) return true;
        gadgetsMove("prev", ".gadgets_random.inner", "inner");
    });

    $j(".gadgets_random.inner .next").click(function() {
        if ($j(this).hasClass("disabled")) return true;
        gadgetsMove("next", ".gadgets_random.inner", "inner");
    });

    $j(".gadgets_random.side .prev").click(function() {
        if ($j(this).hasClass("disabled")) return true;
        gadgetsMove("prev", ".gadgets_random.side", "side");
    });

    $j(".gadgets_random.side .next").click(function() {
        if ($j(this).hasClass("disabled")) return true;
        gadgetsMove("next", ".gadgets_random.side", "side");
    });

    function gadgetsMove(direct, main, mode) {
        var width = $j(main + " .page").width();
        if (direct == "next") {
            $j(main + " .cont").animate({left: "+=" + 10}, 250);
            $j(main + " .cont").animate({left: "-=" + (width + 10)}, 250);
            if (mode == "inner" || mode == "index") {
                page++;
                if (page == pages) $j(main + " .next").addClass("disabled");
                if (page == (pages - 1) && !$j("#nord-check") ) loadGadgets(mode, main);
                if (page > 0) $j(main + " .prev").removeClass("disabled");
            }
            else if (mode == "side") {
                side_page++;
                if (side_page == side_pages) $j(main + " .next").addClass("disabled");
                if (side_page == (side_pages - 1) && !$j("#nord-check") ) loadGadgets(mode, main);
                if (side_page > 0) $j(main + " .prev").removeClass("disabled");
            }
        }
        else if (direct == "prev") {

            $j(main + " .cont").animate({left: "-=" + 10}, 250);
            $j(main + " .cont").animate({left: "+=" + (width + 10)}, 250);
            if (mode == "inner" || mode == "index") {
                page--;
                if (page == 0) $j(main + " .prev").addClass("disabled");
                if (page < pages) $j(main + " .next").removeClass("disabled");
            }
            else if (mode == "side") {
                side_page--;
                if (side_page == 0) $j(main + " .prev").addClass("disabled");
                if (side_page < side_pages) $j(main + " .next").removeClass("disabled");
            }
        }
    }

    function loadGadgets(mode, main) {
var company = parseInt($j(main).attr("rel"));
        $j.post("/gadgets.html", {interface: 'getgadgets', pages: mode == "inner" || mode == "index" ? pages : mode == "side" ? side_pages : 0, mode: mode, sort: sort, company: company}, function(json) {
            if (json.result) {
                if (mode == "inner" || mode == "index") {
                    pages = json.pages;
                }
                else if (mode == "side") {
                    side_pages = json.pages;
                }
                $j(main + " .cont").append($j(json.html));
                if ($j(main + " .next").hasClass("disabled")) $j(main + " .next").removeClass("disabled");
            }
        }, 'json');
    }

    function initGadgets(mode, main) {
var company = parseInt($j(main).attr("rel"));
        $j.post("/gadgets.html", {interface: 'initgadgets', pages: mode == "inner" || mode == "index" ? pages : mode == "side" ? side_pages : 0, mode: mode, sort: sort, company: company}, function(json) {
            if (json.result) {
                if (mode == "inner" || mode == "index") {
                    pages = 2;
                    page = 0;
                    $j(main + " .prev").addClass("disabled");
                    $j(main + " .next").removeClass("disabled");
                    $j(main + " .cont").css({left: 0});
                }
                else if (mode == "side") {
                    side_pages = json.pages;
                }
                $j(main + " .cont").html(json.html);
                if ($j(main + " .next").hasClass("disabled")) $j(main + " .next").removeClass("disabled");
            }
        }, 'json');
    }

});

function countSms() {
    if ($j('#sms-text').val().length > 256)
        $j('#sms-text').val($j('#sms-text').val().substr(0, 256));
    $j('#symbol-count').text(256 - $j('#sms-text').val().length);
}

function showMessage(message, cl) {
    /*
     $j('#messages li:visible').fadeOut('fast',function(){
     var count=$j('#messages li').length;
     $j('#messages li:last').after('<li num="'+count+'">'+message+'</li>');
     $j('#messages li:last').addClass(cl);
     $j('#messages li:last').fadeIn('fast');
     });
     */
}

//Поставить запись в режим ожидания соединения
function graphLink_start(top1, type, id_hide, id_show) {
    $j('#' + id_hide).fadeOut('fast');
    //Отправляем и получаем данные
    $j.post('/', { interface: 'graph_start', top1: top1, type: type }, function (data) {
        //Вывести общее сообщение
        if (data['result'] == 'message') {
            showMessage(data['message'], data['class']);
        }
        $j('#' + id_show).fadeIn('fast');
    }, "json");
    return false;
}

//Завершить соединение по ожидающей записи
function graphLink_finish(top1, top2, type, id_hide, id_show) {
    $j('#' + id_hide).fadeOut('fast');
    //Отправляем и получаем данные
    $j.post('/', { interface: 'graph_finish', top1: top1, top2: top2, type: type }, function (data) {
        //Вывести общее сообщение
        if (data['result'] == 'message') {
            showMessage(data['message'], data['class']);
            $j('#graph_waiting').html('');
        }
        $j('#' + id_show).fadeIn('fast');
    }, "json");
    return false;
}

//Создание связи между записями
function graphLink(use_int, top1, top2, type, hide_id, show_id) {
    //Отправляем и получаем данные
    $j.post('/', { interface: use_int, top1: top1, top2: top2, type: type }, function (data) {
        //Вывести общее сообщение
        if (data['result'] == 'message')
            showMessage(data['message'], data['class']);
        if (hide_id)
            $j('#' + hide_id).fadeOut('fast', function () {
                if (show_id)
                    $j('#' + show_id).fadeIn();
            });
    }, "json");
    return false;
}

//Голосование за запись
function vote(graph_top, value) {
    $j.ajax({
        type: 'post',
        data: ({ interface: 'vote', top: graph_top, vote: value }),
        dataType: 'json',
        url: '/',
        cache: true,
        success: function (data) {
            window.location.reload();
        }
    });
}

//Измеение значения поля в пошаговой форме
function step_change(id) {
    var key = parseInt($j('#' + id).attr('key'));
    var data = $j('form.step-form').serialize();
    var url = $j('form.step-form').attr('action');

    //Показываем следующее поле
    $j('#fieldset_' + (key + 1)).removeClass('hidden');
    //	$j('fieldset div.count:visible').addClass('hidden');
    $j('#fieldset_' + key + ' div.count').removeClass('hidden');

    //Отправляем форму и смотрим количество найденных позиций
    $j('#fieldset_' + key + '_result').html('<img src="/m/p/i/ajax.gif" alt="" />');
    $j.ajax({
        type: 'post',
        data: data,
        dataType: 'text',
        url: url,
        cache: false,
        success: function (value) {
            if (value.length > 0)
                $j('#fieldset_' + key + '_result').text(value);
        }
    });

}


function checkAddress() {
    var street = $j('#id_street').val();
    if (street.length > 1)
        $j.post(
            '/map.html',
            {
                interface: 'connect',
                street: street,
                dataType: 'json'
            },
            function (data) {
                if (data['result'] == 'found') {

                    //Улицы
                    $j('#id_street_hint').html('');
                    t = '';
                    for (var i = 0; i < data['streets'].length; i++) {
                        t = t + '<a href="" class="setStreet">' + data['streets'][i]['street'] + '</a>';
                    }
                    $j('#id_street_hint').html(t);
                    if (t.length > 0)
                        $j('#id_street_hint').show();

                    //Дома
                    $j('#id_houses_hint').html('');
                    t = '';
                    if (data['streets'].length == 1)
                        for (var i = 0; i < data['houses'].length; i++) {
                            t = t + '<a href="?street=' + data['streets'][0]['street'] + '&house=' + data['houses'][i]['house'] + '">дом № ' + data['houses'][i]['house'] + '</a>';
                        }
                    $j('#id_houses_hint').html(t);
                    if (t.length > 0) {
                        $j('#id_street').val(data['streets'][0]['street']);
                        $j('#id_street_hint').hide();
                        $j('#id_houses_hint').show();
                    }


                    //Выбор улицы из предложенного списка
                    $j('.setStreet').click(function () {
                        var selected = $j(this).text();
                        $j('#id_street').val(selected);
                        checkAddress();
                        return false;
                    });

                }
            },
            'json'
        );
    else
        $j('#street_found').html('');
    $j('#houses_found').html('');
}

function shareVK() {
    var text = $j('.social_icons_vk').attr('data-text');
    var url = $j('.social_icons_vk').attr('data-url');
    var new_url = 'http://vkontakte.ru/share.php?url=' + url + '&title=' + text;
    window.open(new_url, 'Поделиться Вконтакте', 'width=600,height=400,menubar=no');
}
function shareTwitter() {
    var text = $j('.social_icons_twitter').attr('data-text');
    var url = $j('.social_icons_twitter').attr('data-url');
    var via = $j('.social_icons_twitter').attr('data-via');
    var new_url = 'http://twitter.com/share?_=' + Math.random() + '&original_referer=' + url + '&via=' + via + '&text=' + text + '&url=' + url;
    window.open(new_url, 'Поделиться в Twitter', 'width=600,height=400,menubar=no');
}
function shareFacebook() {
    var text = $j('.social_icons_facebook').attr('data-text');
    var url = $j('.social_icons_facebook').attr('data-url');
    var new_url = 'http://www.facebook.com/sharer.php?u=' + url + '&t=' + text;
    window.open(new_url, 'Поделиться в Facebook', 'width=600,height=400,menubar=no');
}
function shareMailru() {
    var text = $j('.social_icons_mailru').attr('data-text');
    var url = $j('.social_icons_mailru').attr('data-url');
    var new_url = 'http://connect.mail.ru/share?share_url=' + url + '&title=' + text;
    window.open(new_url, 'Поделиться в Мой Мир', 'width=600,height=400,menubar=no');
}
function shareLj() {
    var text = $j('.social_icons_lj').attr('data-text');
    var url = $j('.social_icons_lj').attr('data-url');
    var new_url = 'http://vkontakte.ru/share.php?url=' + url + '&title=' + text;
    window.open(new_url, 'Опубликовать в LiveJournal', 'width=600,height=400,menubar=no');
}
function shareGoogle() {
    var img = $j('.social_icons_google').attr('data-img');
    var url = $j('.social_icons_google').attr('data-url');
    var new_url = 'http://www.google.com/buzz/post?url=' + url + '&imageurl=' + img;
    window.open(new_url, 'Поделиться в Google Buzz', 'width=600,height=400,menubar=no');
}
function shareClassmates() {
    var text = $j('.social_icons_classmates').attr('data-text');
    var url = $j('.social_icons_classmates').attr('data-url');
    var new_url = 'http://www.odnoklassniki.ru/dk?st.cmd=addShare&st.s=1000&st._surl=' + url;
    window.open(new_url, 'Поделиться в Одноклассники', 'width=600,height=400,menubar=no');
}

function switchSearchModules(a) {
    if ($j(a).hasClass("disabled")) return;
    $j(".search_modules a.search_module").each(function() {
        $j(this).removeClass("active")
    });
    $j(".search_results").each(function() {
        $j(this).hide()
    });
    $j(a).addClass("active");
    //var q = $j(".search input.field").val();
    //var page = parseInt($j(".page-list li span b").text())-1;
    //var modules = "";
    //$j(".search_modules a.active").each(function(){modules+=$j(this).attr("rel")+";"});
    //var url = "/search."+page+".html?q="+q+"&modules="+$j(a).attr("rel");
    //location.href = url;
    var mod = $j(a).attr("rel");
    $j(".search_results." + mod).show();
}

function recordOutboundLink(link, category, action, value, redirect) {
    try {
        //var pageTracker=_gat._getTracker("UA-4003731-20");
        //pageTracker._trackEvent(category, action);
        _gaq.push(['_trackEvent', category, action, value]);
        if(redirect) setTimeout('document.location = "' + link.href + '"', 100);
    } catch(err) {
    }
}
