var profile_editing_mode = false;
var name_error = false;
var blogs_update = 0;
var selected_widget_type = 'muzpic';


var prev_target = null;
stepcarousel.setup({
            galleryid: 'carousel', //id of carousel DIV
            beltclass: 'bandinner', //class of inner "belt" DIV containing all the panel DIVs
            panelclass: 'screen2', //class of panel DIVs each holding content
            panelbehavior: {speed:300, wraparound:false, persist:false},
            defaultbuttons: {enable: false},
            statusvars: ["carousel_start", "carousel_end", "carousel_all"],
            contenttype: ['inline'],
            oninit:function(){
                $('#imgband').hide();
            }
        });


$(document).ready(function(){

    var block_blogs_vis_from_cook = $.cookie('profile_show_blogs_block_cookie');
    var block_stats_vis_from_cook = $.cookie('profile_show_stats_block_cookie');
    var block_forum_vis_from_cook = $.cookie('profile_show_forum_block_cookie');


    if (block_blogs_vis_from_cook == null)
    {
        block_blogs_vis_from_cook = 1;
    }
    else
    {
        $.cookie('profile_show_blogs_block_cookie', block_blogs_vis_from_cook, {expires: 365, path: '/'});
        $.cookie('profile_show_stats_block_cookie', block_stats_vis_from_cook, {expires: 365, path: '/'});
        $.cookie('profile_show_forum_block_cookie', block_forum_vis_from_cook, {expires: 365, path: '/'});
    }

    var stats_a;
    var blogs_a;
    var forum_a;

    blogs_a = $('#blogs_a');
    stats_a = $('#stats_a');
    forum_a = $('#forum_a');

    if ( block_blogs_vis_from_cook == 0 )
    {
        blogs_a.attr('title', js_dictionary.profile_block_open).attr('class','close');
        blogs_a.parent().siblings('.menubox').hide();

    }
    if ( block_stats_vis_from_cook == 0)
    {
        stats_a.attr('title', js_dictionary.profile_block_open).attr('class','close');
        stats_a.parent().siblings('.menubox').hide();
    }

    if ( block_forum_vis_from_cook == 0)
    {
        forum_a.attr('title', js_dictionary.profile_block_open).attr('class','close');
        forum_a.parent().siblings('.menubox').hide();
    }

	stats_a.click(function(){
        if ( block_stats_vis_from_cook == 1 ) {

            $(this).parent().siblings('.menubox').hide();
            $(this).attr('title', js_dictionary.profile_block_open).attr('class', 'close');

            block_stats_vis_from_cook = 0;
		} else {

		    $(this).parent().siblings('.menubox').show();
            $(this).attr('title', js_dictionary.profile_block_close).attr('class', 'open');

            block_stats_vis_from_cook = 1;
        }

		$.cookie('profile_show_stats_block_cookie', block_stats_vis_from_cook, {expires: 365, path: '/'});

		return false;
	});

	blogs_a.click(function(){
        if ( block_blogs_vis_from_cook == 1 ) {

            $(this).parent().siblings('.menubox').hide();
            $(this).attr('title', js_dictionary.profile_block_open).attr('class', 'close');

            block_blogs_vis_from_cook = 0;
		} else {

		    $(this).parent().siblings('.menubox').show();
            $(this).attr('title', js_dictionary.profile_block_close).attr('class', 'open');

            block_blogs_vis_from_cook = 1;
        }

		$.cookie('profile_show_blogs_block_cookie', block_blogs_vis_from_cook, {expires: 365, path: '/'});

		return false;
	});

	forum_a.click(function(){
        if ( block_forum_vis_from_cook == 1 ) {

            $(this).parent().siblings('.menubox').hide();
            $(this).attr('title', js_dictionary.profile_block_open).attr('class', 'close');

            block_forum_vis_from_cook = 0;
		} else {

		    $(this).parent().siblings('.menubox').show();
            $(this).attr('title', js_dictionary.profile_block_close).attr('class', 'open');

            block_forum_vis_from_cook = 1;
        }

		$.cookie('profile_show_forum_block_cookie', block_forum_vis_from_cook, {expires: 365, path: '/'});

		return false;
	});
});


function editProfile()
{
    profile_editing_mode = true;
    //Наложение дива на аватар
    $('#avatarcover').addClass('covershange').removeClass('cover');

    $('#avatarfile').change(avatarUpload);

    //показываем текст над аватаром
    $('.fileouter').show();
    //Скрываем линк на редактирование
    $('#editlink').hide();

//    $('#edittext input').val( $('#editlink span').text() );
    //скрываем поинты
    $('.cakes').hide();

    //показываем инпут с юзернеймом для редактирования
    $('#edittext').show();

    //Скрываем блок со статистикой
    $('#statsbox').hide();

    //Скрываем список блогов для отображения и показываем блоги для редактирования
    $('.editingblog').show();
    $('.viewingblog').hide();

    $('#savebuttondiv').show();
    $('#addblog').show();

    $('#savebutton').click(saveModifications);


    //И заполняем...
    var blogname_a = $('.viewingblog:gt(0) a');

    var blogname_input = $('.editingblog:gt(0) .blogname input');
    var blogurl_input  = $('.editingblog:gt(0) .blogurl input');

    for(var i = 0; i < blogname_a.length; i++)
    {
        blogname_input.eq(i).val ( blogname_a.eq(i).text() );
        blogurl_input.eq(i).val  ( blogname_a.eq(i).attr('href')  );
    }
}

function avatarUpload()
{
            $('#filepath').val( $(this).val() );

            $('#filebox').show();

            // Некорректный файл?
            if ( !checkAvatarFile() )
            {
                return 0;
            }

            $('#progress_bar').show();

            JsHttpRequest.query(
        "/user?request_mode=ajax",
        {
            'ajax_action' : 'avatar_edit',
            'avatar'      : document.getElementById('avatarfile')
        },
        function(result, errors) {

            $('#progress_bar').hide();

            if(errors)
            {

                if(production_flag)
                {
                }
                else{
                    alert(errors);
                }
            }
            else
            if(result)
            {
                if ( result.error_status)
                {
                    $('#filewarning').show().html( result.avatar_error_message );
                }
                else
                {
                        if ( result.avatar_path )
                        {
                            //Меняем аватарку
                            $('#useravatar').empty().prepend('<img src='+result.avatar_path+' alt="Photo" width="50" height="50" />');
                        }
                        $('#filebox').hide();
                        $('#filepath').val('');
                        $('#avatarfile').val('');
                }
            }
        },
        true
    );
}

function cancelEdit()
{
    profile_editing_mode = false;
    //Наложение дива на аватар
    $('#avatarcover').addClass('cover').removeClass('covershange');

    //показываем текст над аватаром
    $('.fileouter').hide();
    //Скрываем линк на редактирование
    $('#editlink').show();

    //скрываем поинты
    $('.cakes').show();

    //показываем инпут с юзернеймом для редактирования
    $('#edittext').hide();

    //Скрываем блок со статистикой
    $('#statsbox').show();

    //Скрываем список блогов для отображения и показываем блоги для редактирования
    $('.editingblog').hide();
    $('.viewingblog').show();

    $('#savebuttondiv').hide();
    $('#addblog').hide();

    $('#filewarning').hide();
    $('#namewarning').hide();
    $('#filebox').hide();

    if ( blogs_update )
    {
        $('div.blogbox:gt(0)').not('.blog_new').show();
        $('div.blogbox.blog_new').hide();
    }

}

function addBlog()
{
    $('#blogboxnew').clone().removeAttr('id').addClass('blog_new')
        .insertBefore('#addblog').show();

    blogs_update = 1;
}

function deleteBlog(item)
{
    $(item).parents('div.blogbox').hide();

    blogs_update = 1;
}

function saveModifications()
{
    if( !checkParams() )
    {
        return;
    }

    //Соберем в массив все блоги
    /*
    array(1=>array('blogname'=>'trali-vali',
                   'blogurl'=>'ppp.ru',),
          2=>array('blogname'=>'param-pam-pam',
                   'blogurl'=>'param.ru')
    );
    */

    var blogs = [];

    //Собираем списки блогов в массив только, если блоги изменялись.
    if ( blogs_update )
    {
        var blogname_input = $('.blogbox:visible .editingblog .blogname input');
        var blogurl_input  = $('.blogbox:visible .editingblog .blogurl input');
        var blogimg        = $('.blogbox:visible .blogleft .blogimg img');

        for(var i = 0; i < blogname_input.length; i++)
        {
            blogs[i] = [];
            blogs[i]['blogname'] = blogname_input.eq(i).val();
            blogs[i]['blogurl']  = blogurl_input.eq(i).val();
            blogs[i]['favicon']  = blogimg.eq(i).attr('src');
        }
    }

    JsHttpRequest.query(
        "/user?request_mode=ajax",
        {
            'ajax_action' : 'profile_edit',
            'avatar'      : document.getElementById('avatarfile'),
            'uname'       : $('#unameinput').val(),
            'blogs'       : blogs,
            'blogs_update': blogs_update
        },
        function(result, errors) {

            if(errors)
            {
		        //$('#savebutton').addClass('button88gray').removeClass('button88pink').attr("disabled", "disabled");

                if(production_flag)
                {
                    //sendUnexpectedErrorReport(errors)
                }
                else{
                    alert(errors);
                }
            }
            else
            if(result)
            {
                if ( result.error_status)
                {
                    if ( result.name_error_msg )
                    {
                        $('#namewarning').show().html( result.name_error_msg );
                        $('#edittext div.edittext').addClass('edittextpink').removeClass('edittext');
                        name_error = 1;
                    }

                    if (result.blog_number )
                    {
                        if ( result.blogname_error_msg )
                        {
                            var blogname;
                            blogname = $('.editingblog:gt(0) .blogname input').eq(result.blog_number);
                            blogname.parent().addClass('blogeditpink').removeClass('blogedit');
                            blogname.addClass('white').removeClass('blue');

                            blogname.parent().siblings('.pink:eq(0)').show().html( result.blogname_error_msg );
                        }
                        if ( result.blogurl_error_msg )
                        {
                            var blogurl;
                            blogurl = $('.editingblog:gt(0) .blogurl input').eq( result.blog_number );
                            blogurl.parent().addClass('blogeditpink').removeClass('blogedit');
                            blogurl.addClass('white').removeClass('blue');

                            blogurl.parent().siblings('.pink:eq(1)').show().html( result.blogurl_error_msg );
                        }
                    }
                }
                else
                {
                    editSuccess(result);
                }
            }
        },
        true
    );
}

function editSuccess(result)
{
    profile_editing_mode = false;


    //скрываем текст над аватаром
    $('.fileouter').hide();
    //показываем линк на редактирование
    $('#editlink').show();
    //Изменяем имя пользователя
    $('#editlink span').text( result.user_name );
    $('#unameinput').val( result.user_name );

    $('#avatarcover').addClass('cover').removeClass('covershange');

    //показываем поинты
    $('.cakes').show();

    //скрываем инпут с юзернеймом для редактирования
    $('#edittext').hide();

    //Показываем блок со статистикой
    $('#statsbox').show();

    $('#filewarning').hide();
    $('#namewarning').hide();

    if ( blogs_update )
    {
        //Удаляем старые блоги, если их редактировали
        $('.blogbox:gt(0)').remove();

        //Делаем новые блоки блогов...
        //Если они есть, конечно
        if ( result.blogs.length )
        {
            for(var i = 0; i < result.blogs.length; i++)
            {
                $('#blogboxnew').clone().removeAttr('id').
                    insertBefore('#addblog').show();
            }


            //И заполняем...
            var blogname_a = $('.viewingblog:gt(0) a');

            var blogimg  = $('.blogleft:gt(0) .blogimg');

            var blogname_input = $('.editingblog:gt(0) .blogname input');
            var blogurl_input  = $('.editingblog:gt(0) .blogurl input');

            for(var i = 0; i < result.blogs.length; i++)
            {
                blogname_a.eq(i).attr('href',result.blogs[i]['blogurl']);
                blogname_a.eq(i).text(result.blogs[i]['blogname']);

                blogimg.eq(i).html( '<img src="'+ result.blogs[i]['favicon'] +'" width="16" height="16" alt="" /><div class="blogcover"></div>' );

                blogname_input.eq(i).val ( result.blogs[i]['blogname'] );
                blogurl_input.eq(i).val  ( result.blogs[i]['blogurl']  );
            }
        }
        blogs_update = 0;
    }

    //Скрываем список блогов для редактирования и показываем блоги для отображения
    $('.editingblog').hide();
    $('.viewingblog').show();

    $('#savebuttondiv').hide();
    $('#addblog').hide();

}

function checkParams()
{


    var valid = true;
    //Некорректное имя?
    if ( !checkName() ) valid = false;
    // Некорректные _измененные_ блоги?
    if ( (blogs_update && !checkBlogs()) ) valid = false;

    if ( !valid ) {

        //$('#savebutton').addClass('button88gray').removeClass('button88pink').attr("disabled", "disabled");

        return 0;
    }

    //$('#savebutton').removeClass('button88gray').addClass('button88pink').removeAttr("disabled");

    return true;
}

function checkName()
{
    name = $('#edittext input').val().replace(/^\s+/,'').replace(/\s+$/,'');

    if ( name.length > 32)
    {
        $('#namewarning').show().html(js_dictionary.register_user_name_is_too_big);
        $('#edittext div.edittext').addClass('edittextpink').removeClass('edittext');

        name_error = true;

        return 0;

    }
    if ( name.length < 3)
    {
        $('#namewarning').show().html(js_dictionary.register_user_name_is_too_short);
        $('#edittext div.edittext').addClass('edittextpink').removeClass('edittext');

        name_error = true;

        return 0;

    }

    if (name_error)
    {
        $('#namewarning').hide();
        $('#edittext div.edittextpink').addClass('edittext').removeClass('edittextpink');

        name_error = false;
    }

    return true;
}

function checkAvatarFile ()
{
    file_to_upload = document.getElementById('filepath').value.toLowerCase();

    match_result = file_to_upload.match(/^.*\.(gif|png|jpg)$/);

    if( file_to_upload != "" && match_result == null)
    {
        $('#filewarning').show().html(js_dictionary.profile_wrong_file_error_msg);
        return false;
    } else {
        $('#filewarning').hide();
    }

    return true;
}

function checkBlogs()
{
    sucsess = true;

    $('.blogbox:visible .editingblog .blogname input').each(function () {

        var blogname;
        blogname = $(this).val().replace(/^\s+/,'').replace(/\s+$/,'');

        if ( blogname.length > 50 || blogname.length < 3 || blogname == js_dictionary.profile_blogs_name)
        {
            $(this).parent().addClass('blogeditpink').removeClass('blogedit');
            $(this).addClass('white').removeClass('blue');

            if ( blogname.length > 50 )
            {
                $(this).parent().siblings('.pink:eq(0)').show().html(js_dictionary.profile_blogname_too_big);
            } else if ( blogname.length < 3 ) {
                $(this).parent().siblings('.pink:eq(0)').show().html(js_dictionary.profile_blogname_too_short);
            } else {
                $(this).parent().siblings('.pink:eq(0)').show().html(js_dictionary.profile_blogname_missing);
            }

            sucsess = false;
        }
        else
        {
            $(this).parent().addClass('blogedit').removeClass('blogeditpink');
            $(this).parent().siblings('.pink:eq(0)').hide();
            $(this).addClass('blue').removeClass('white');
        }
    }
    );


    $('.blogbox:visible .editingblog .blogurl input').each(function() {

            if ( $(this).val() == js_dictionary.profile_blogs_url  || '' == $(this).val().replace(/^\s+/,'').replace(/\s+$/,''))
            {
                $(this).parent().addClass('blogeditpink').removeClass('blogedit');
                $(this).parent().siblings('.pink:eq(1)').show();
                $(this).addClass('white')
                sucsess = false;
            }
            else
            {
                $(this).parent().addClass('blogedit').removeClass('blogeditpink');
                $(this).parent().siblings('.pink:eq(1)').hide();
                $(this).removeClass('white');
            }

        }

    );

    return sucsess;

}


function checkBlogInput()
{
    blogs_update = 1;

    //checkParams();
}


function sendUnexpectedErrorReport(error_text)
{
    JsHttpRequest.query(
    	  "/muzpic?request_mode=ajax",
    	  {'error_text' : error_text, 'ajax_action' : 'muzpic_unexpected_error_report'},
    	  function(result, errors) {return;},
    	  true
      );
}

function openDropDownList(drop_down_list, options_div_id)
{
    var class_name = 'select selectpink';

    drop_down_list.blur();

    if(drop_down_list.className == 'selectlink close')
    {

        class_name = 'select';

        //drop_down_list.parentNode.parentNode.className = class_name;
        drop_down_list.className = 'selectlink open';

        $('#' + options_div_id).hide();

        return;
    }

    //drop_down_list.parentNode.parentNode.className = 'select';
    drop_down_list.className = 'selectlink close';

    $('#' + options_div_id).show();
}


function selectDropDownListItem(selected_item, drop_down_list_capture_id, options_div_id)
{

    $('#' + drop_down_list_capture_id).html( $(selected_item).text());

    //$('#' + drop_down_list_capture_id).parent().parent().get(0).className = 'select';
    $('#' + drop_down_list_capture_id).get(0).className = 'selectlink open';

    $('#' + options_div_id).hide();

    selected_widget_type = $(selected_item).text();

    loadCarousel( selected_widget_type );

}

function selectStatsItem(selected_item, drop_down_list_capture_id, options_div_id)
{

    if ( selected_widget_type != selected_item )
    {
        $('#' + drop_down_list_capture_id).html( selected_item );

        $('#' + drop_down_list_capture_id).get(0).className = 'selectlink open';

        $('#' + options_div_id).hide();

        selected_widget_type = selected_item;

        loadCarousel( selected_widget_type );
    }

}

function loadCarousel(type)
{
    //TODO: добавить ползунок загрузки?s

    JsHttpRequest.query(
        "?request_mode=ajax",
        {
            'ajax_action' : 'get_carousel',
            'carousel_type': type
        },
        function(result, errors) {

            if(errors)
            {
                if(production_flag)
                {
                    //sendUnexpectedErrorReport(errors)
                }
                else{
                    alert(errors);
                }
            }
            else
            if(result)
            {
                selected_widget_type = result.type;

                stepcarousel.getremotepanels( stepcarousel.configholder['carousel'], result.content );

                prev_target = null;

                //$('#imgbox').empty();
                $('#embed_codes_box').hide();
                $('#delete_button').hide();
                $('#download_button').hide();

                $('#createnew').click(function(){
                    var href;
                    href = '/' + selected_widget_type;

                    if ( selected_widget_type == 'giflary' )
                    {
                        href = '/giflary/upload';
                    }

                    document.location = href + '?lng=' + js_cur_lng;
                });


                if ( selected_widget_type == 'giflary' )
                {
                    $('#createnew').val(js_dictionary.profile_createnew_giflary);
                }
                else if ( selected_widget_type == 'muzpic' )
                {
                    $('#createnew').val(js_dictionary.profile_createnew_muzpic);
                }
                else
                {
                    $('#createnew').val(js_dictionary.profile_createnew_f2p);
                }


                if ( !result.content )
                {
                    $('#imgbox').html('<img src="/images/picture.png" alt="Photo" /><p>'+ js_dictionary.profile_carousel_is_empty+'</p>');
                    $('#imgband').hide();
                }
                else
                {
                    $('#carousel .screen2 .cover a:eq(0)').click();

                    showArrows();

                    stepcarousel.stepTo('carousel', 1);

                    $('#imgband').show();
                }
            }
        },
        true
    );
}

function showArrows()
{
    if ( carousel_all == carousel_end && carousel_start == 1 )
    {
        $('#prev_arrow').hide();
        $('#next_arrow').hide();
    }
    else
    {
        $('#prev_arrow').show();
        $('#next_arrow').show();
    }
}

function onSelectWidget (target){

    if ( (prev_target && prev_target !== target.parentNode) || !prev_target )
    {
        if ( prev_target )
        {
            prev_target.className = 'cover';
        }

        prev_target = target.parentNode;

        prev_target.className = 'cover2';

        var codes_div = $(prev_target).children("div");

        if ( codes_div.children('.carousel_download_url').text() )
        {
            $('#download_button').attr('href', codes_div.children('.carousel_download_url').text() ).show();
        }
        $('#delete_button').click(deleteWidgetFromCarousel).show();

        $('#html_code').val(codes_div.children('.carousel_html_code').text()).select();

        //$('#imgbox').html( codes_div.children('.carousel_resource_id').html() );


        $('#html_embed_code').val( codes_div.children('.carousel_html_code').text() );
        $('#bb_embed_code').val( codes_div.children('.carousel_bb_code').text() );
        $('#link_embed_code').val( codes_div.children('.carousel_link_code').text() );

        $('#htb').addClass('pink');
        $('#bbb').removeClass('pink');
        $('#lnb').removeClass('pink');
        $('#html_code').val($('#html_embed_code').val());
        $('#html_code').select();

        $('#embed_codes_box').show();

        $(target).blur();

    }

    return false;
}

function deleteWidgetFromCarousel()
{
    JsHttpRequest.query(
        "?request_mode=ajax",
        {
            'ajax_action' : 'delete_widget_from_carousel',
            'widget_type': selected_widget_type,
            'widget_id' : $(prev_target).children("div").children('.carousel__id').text()
        },
        function(result, errors) {

            if(errors)
            {
                if(production_flag)
                {
                    //sendUnexpectedErrorReport(errors)
                }
                else{
                    alert(errors);
                }
            }
            else
            if( result )
            {
                if ( result.error_status == '1' )
                {

                }
                else
                {
                    loadCarousel(selected_widget_type);

                    $('#stats_' + selected_widget_type).text( result.stats );
                }
            }
        },
        true
    );
}

function loadMuzpic(PATH_TO_FLASH_DATA_MUZPIC, muzpic_width, muzpic_height, resource_flv, muzpic_sound_resource, start_type)
{
    $('#imgbox').html( '<div id="imboxinner"></div>' );
    swfobject.embedSWF(PATH_TO_FLASH_DATA_MUZPIC, "imboxinner", muzpic_width, muzpic_height, "9.0.0", false,
        { video: resource_flv, music: muzpic_sound_resource, autostart:start_type}, false, false);
}

function loadMuzpicSelfLink(PATH_TO_FLASH_DATA_MUZPIC, muzpic_width, muzpic_height, resource_flv, muzpic_sound_resource, start_type, id)
{
    $('#imgbox').html( '<div id="imboxinner"></div>' );
    swfobject.embedSWF(PATH_TO_FLASH_DATA_MUZPIC, "imboxinner", muzpic_width, muzpic_height, "9.0.0", false,
        { video: resource_flv, music: muzpic_sound_resource, autostart:start_type, muzpic:id}, false, false);
}

function loadImage(target)
{
    $('#imgbox').html( $(target.parentNode).children("div").children('.carousel_resource_id').html() );
}