function response (data)
{
    var errors = $('errors', data).text();
    var template = $('template', data).text();
    var redirect = $('location', data).text();
    
    if (redirect)
    {
        if (3 == variant)
        {
            variant = 2;
            inner_link(redirect);
        }
        else
            window.location = redirect;
    }
    else if (errors)
    {
        alert(errors);
    }
    else if (template)
    {
        $((1 == variant || 3 == variant ? '#' : '') + 'body').html(template);
    }
    else
        alert('error');
}

function inner_link (page_url)
{
    //if (undefined == variant) variant = 1;
    $.ajax({
        url: page_url,
        type: "POST",
        dataType: "xml",
        data: "variant=" + variant,
        success: response
    });
    //window.location.hash = page_url;
}

function delete_element (element_type, element_id, confirm_text)
{
    if (confirm(confirm_text))
    {
        $.ajax({
            url: '/' + element_type + '/' + element_id + '-' + page + '-3/',
            type: "POST",
            dataType: "xml",
            data: "session_id=" + session_id + "&format=ajax",
            success: function(data){
                var errors = $('errors', data).text();
                if (errors)
                    alert(errors);
                else
                {
                    //alert('Элемент удалён');
                    $('#' + element_type + element_id).remove();
                }
            }
        })
    }
}

function move_element (element_type, element_id)
{
    var parent_id;
    var parent_type;
    if ('comment' == element_type)
    {
        parent_id = prompt('Введите номер материала, куда надо перенести этот комментарий:');
        parent_type = 'message';
    }
    else if ('message' == element_type)
    {
        parent_id = prompt('Введите номер категории, куда надо перенести этот материал:');
        parent_type = 'category';
    }
    else if ('category' == element_type)
    {
        parent_id = prompt('Введите номер модуля, куда надо перенести эту категорию:');
        parent_type = 'module';
    }
    else if ('module' == element_type)
    {
        parent_id = prompt('Введите номер сайта, куда надо перенести этот модуль:');
        parent_type = 'site';
    }
    
    if (parent_id && 0 != parent_id)
    {
        $.ajax({
            url: '/' + element_type + '/' + element_id + '-' + page + '-4/',
            type: "POST",
            dataType: "xml",
            data: "session_id=" + session_id + "&" + parent_type + "_id=" + parent_id + "&format=ajax",
            success: function(data){
                var errors = $('errors', data).text();
                if (errors)
                    alert(errors);
                else
                {
                    $('#' + element_type + element_id).remove();
                    //alert('Элемент перенесён');
                }
            }
        })
    }
}

function edit_element (element_type, element_id)
{
    if (undefined == $("#formarea").attr('id')) 
    {
        $("body").append('<div id="formarea" scrolling="no"></div>');
        $("#formarea").dialog({position: "center", width: 750, height: 270});
    }

    $.ajax({
        url: '/' + element_type + '/' + element_id + '-' + page + '-2/',
        type: "POST",
        dataType: "xml",
        data: "format=ajax",
        success: function(data){
            var template = $('template', data).text();
            if (template)
            {
                $("#formarea").html(template);
                ready('#formarea ');
                $("#formarea").dialog("open");
            }
            else alert('error');
        }
    })
}

function disable_element (element_type, element_id, confirm_text)
{
    if (confirm(confirm_text))
    {
        $.ajax({
            url: '/' + element_type + '/' + element_id + '-' + page + '-5/',
            type: "POST",
            dataType: "xml",
            data: "session_id=" + session_id + "&format=ajax",
            success: function(data){
                var errors = $('errors', data).text();
                if (errors)
                    alert(errors);
                else
                {
                    //alert('Элемент отключен');
                    //$('#' + element_type + element_id).remove();
                }
            }
        })
    }
}

function enable_element (element_type, element_id, confirm_text)
{
    if (confirm(confirm_text))
    {
        $.ajax({
            url: '/' + element_type + '/' + element_id + '-' + page + '-6/',
            type: "POST",
            dataType: "xml",
            data: "session_id=" + session_id + "&format=ajax",
            success: function(data){
                var errors = $('errors', data).text();
                if (errors)
                    alert(errors);
                else
                {
                    //alert('element enabled');
                    //$('#' + element_type + element_id).remove();
                }
            }
        })
    }
}

function search_messages (query, module_id, page, func)
{
    if (undefined == module_id) module_id = 0;
    if (undefined == func) func = 0;
    if (undefined == page) page = 0;
    
    $.ajax({
        url: '/' + 'search/' + module_id + '-' + page + '-' + func,
        type: "POST",
        dataType: "xml",
        data: "variant=1&sbmt=sbmit&func=" + func + "&text=" + query,
        success: function(data){
            var errors = $('errors', data).text();
            var template = $('template', data).text();
            
            if (errors)
                alert(errors);
            else if (template)
                $("#body").html(template);
            else
                alert('error');
        }
    })
}

function rating_element (element_type, element_id, rating)
{
    $.ajax({
        url: '/' + element_type + '/' + element_id + '-1-10/',
        type: "POST",
        dataType: "xml",
        data: "session_id=" + session_id + "&format=ajax&rating=" + rating ,
        success: function(data){
            var errors = $('errors', data).text();
            if (errors)
                alert(errors);
            else
            {
                //$('#' + element_type + element_id).remove();
                alert('Голос принят');
            }
        }
    })
}

function set_language (language)
{
    $.cookie('language', language);
    window.location.replace(window.location);
}

function view_element_info (element_type, element_id)
{
    $.ajax({
        url: '/' + element_type + '/' + element_id + '-1-100/',
        type: "POST",
        dataType: "xml",
        data: "format=ajax",
        success: function(data){ var element_info = $(element_type, data).text(); if (element_info) $("#" + element_type + '_info' + element_id).html(element_info); else alert('error');}
    })
}

function view_property (element_type, element_id, property_type)
{
    $.ajax({
        url: '/' + 'property/' + element_id + '/',
        type: "POST",
        dataType: "xml",
        data: "format=ajax&element_type=" + element_type + "&property_type=" + property_type,
        success: function(data){ var property = $(property_type, data).text(); if (property) $("#" + property_type + element_id).html(property); else alert('error');}
    })
}

function get_selection() {
    if (window.getSelection){
        selection = window.getSelection().toString();
    }else if (document.getSelection) {
        selection = document.getSelection();
    }else {
        selection = document.selection.createRange().text;
    }
}

function Insert(qname,text){
    if (text!=""){
        qname=qname.replace(/[\[\]]/g, "|");
        $('#add_comment_text').tinymce().execCommand('mceInsertContent',false,'<blockquote class="bb_quote"><div class="bb_quote_author">'+qname+'</div>'+text+"</blockquote>\n");
    } else {
        alert('Выделите текст для цитирования');
    }
}

function my_alert(text)
{
    if (undefined == $("#my_alert").attr('id')) 
    {
        $("body").append('<div id="my_alert"></div>');
        $("#my_alert").dialog({position: "center", modal: true});
    }
    
    $("#my_alert").dialog("open");
    $("#my_alert").html(text);
}

function my_js_link(href,name)
{
    var href, name;
    return document.write('<a href="'+href+'"target="_blank">'+name+'</a>');
}

function my_go_to(href)
{
    var href;
    document.location.href = href;
}

/*var myref = document.referrer;
if (myref.search('.google.') != -1 || myref.search('.yandex.') != -1 || myref.search('.rambler.') != -1 || myref.search('.mail.') != -1)
{
    var from_se =1;
}*/

function ready(area) {
    /*if (window.location.hash && 0 == variant)
    {
        variant = 1;
        inner_link(window.location.hash.substr(1));
        return;
    }*/
    //alert(area);
    if ('#formarea ' != area) area = (1 == variant || 3 == variant ? '#body ' : 'body ');
    if (0 == variant) variant = 1;
    if (2 == variant) variant = 3;
    
    $(area + 'a').click(function(){
        if (undefined == this.href || '' == this.href || '#' == this.href || 'javascript://' == this.href || 'ajax_link' == this.className)
        {
            
        }
        else if ('outer_link' == this.className)
        {
            //if (3 == variant) this.href='http://vkontakte.ru/away.php?to=' + this.href;
        }
        else if (1 != variant)
        {
            inner_link(this.href);
            return false;
        }
    });
    
    $(area + 'input.search_autocomplete').autocomplete('/?type=suggest', {
        width: 750,
        formatResult: function(data, value) {
            return value.split('<div')[0];
        }
    });
    
    $(area + 'input.searches_autocomplete').autocomplete('/?type=suggests', {
        width: 750,
        formatResult: function(data, value) {
            return value.split('<div')[0];
        }
    });
    
    $(area + 'input.searches2_autocomplete').autocomplete('/?type=suggests&func=2', {
        width: 750,
        formatResult: function(data, value) {
            return value.split('<div')[0];
        }
    });
    
    /*$(function(){
        $('.image_zoom').children('div').hover(function(){
            $(this).children('img').stop().animate({width:'150px', height:'150px', marginTop: '-25px', marginLeft: '-25px'}, 'fast');
        }, 
        function(){ $(this).children('img').stop().animate({width:'75px', height:'75px', marginTop: '0px', marginLeft: '0px'}, 'fast'); });
    });*/
    
    $(area + 'textarea.tinymce').tinymce({
        // Location of TinyMCE script
        script_url : '/lib/tiny_mce/tiny_mce.js',

        // General options
        theme : 'advanced',
        plugins : 'safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template',

        // Theme options
        theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect',
        theme_advanced_buttons2 : 'forecolor,backcolor,sub,sup,charmap,image,|,bullist,numlist,|,outdent,indent,|,hr,nonbreaking,|,insertdate,inserttime,|,removeformat,|,preview,fullscreen,code,',
        theme_advanced_buttons3 : '',
        //theme_advanced_buttons4 : 'emotions,link,image',
        theme_advanced_toolbar_location : 'top',
        theme_advanced_toolbar_align : 'left',
        theme_advanced_statusbar_location : 'bottom',
        theme_advanced_resizing : true,
        language : 'ru',
        // Example content CSS (should be your site CSS)
        content_css : '/.src/css/bbcodes.css',
        force_br_newlines : true,
        force_p_newlines : false,
        forced_root_block: ''
    });
    
    if (3 == variant) $(area + 'form').append('<input type="hidden" name="variant" value="' + variant + '"/>');
    
    if (3 == variant) $(area + 'form').ajaxForm({
        beforeSubmit: function(a,f,o) {
            o.dataType = 'xml';
        },
        success: response
    });
    
    $(area + '#add_sm_form').append('<input type="hidden" name="format" value="ajax"/>');
    
    $(area + '#add_sm_form').ajaxForm({
        dataType : 'xml',
        success: function(data) {
            //alert(data);
            var errors = $('errors', data).text();
            var template = $('template', data).text();

            if (errors) {
                alert(errors);
            } else if (template) {
                $('#chat').contents().find('body').prepend(template);
                //alert('Сообщение добавлено');
                $('#add_sm_text').val('');
            } else {
                alert('error');
            }
        }
    })
    
    if (3 != variant)
    {
        $(area + '#add_comment_form').append('<input type="hidden" name="format" value="ajax"/>');
        
        $(area + '#add_comment_form').ajaxForm({
            dataType : 'xml',
            success: function(data) {
                try {$('img#code').click();$('.code').val('');} catch (e) {}

                //alert(data);
                var errors = $('errors', data).text();
                var template = $('template', data).text();
                
                if (errors) {
                    alert(errors);
                } else if (template) {
                    $('#comments').append(template);
                    //alert('Комментарий (ответ) добавлен');
                    $('#add_comment_text').html('');
                } else {
                    alert('error');
                }
            }
        })
        
        $(area + '#edit_comment_form').append('<input type="hidden" name="format" value="ajax"/>');
        
        $(area + '#edit_comment_form').ajaxForm({
            dataType : 'xml',
            success: function(data) {
                //alert(data);
                var errors = $('errors', data).text();
                var template = $('template', data).text();
                var comment_id = $('comment_id', data).text();
                
                if (errors) {
                    alert(errors);
                } else if (template) {
                    $('#comment' + comment_id).html($(template).html());
                    //alert('Комментарий (ответ) отредактирован');
                    $('#formarea').dialog('close');
                } else {
                    alert('error');
                }
            }
        })
    }
    
    $('#body').append('<img src="http://counter.yadro.ru/hit?t16.10;r'+escape(document.referrer)+((typeof(screen)=='undefined')?'':'; s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+'; u'+escape(document.URL)+';'+Math.random()+'" width="1" height="1">');
}