﻿$(function() {

    /* SORTABLE & TABS */

    // запоминаем, из какого столбца взяли блок 
    var block_parent = null;

    // сохраняем состояние блоков
    serializeBlocks = function() {

        var string = $('.column-left').sortable('serialize', { 'key': 'left[]', 'expression': /(.*)/ });
        if (string.length)
            string += '&';
        string += $('.column-center').sortable('serialize', { 'key': 'center[]', 'expression': /(.*)/ });

        var right = $('.column-right').sortable('serialize', { 'key': 'right[]', 'expression': /(.*)/ });
        if (string.length && right.length)
            string += '&';
        string += right;

        /*if (typeof console.log != 'undefined')
        console.log(string);*/

        $.ajax({
            type: "POST",
            url: "/interfaces/workplace.asmx/changeControlColumn",
            data: "{tab_id: '" + active_tab_id + "',controls: '" + string + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(evt, request, settings) {
            },
            error: function(event, request, settings) {
                alert("Ошибка! Сервис временно недоступен!");
            }
        });
    }

    if (typeof $.fn.sortable != 'undefined') {

        // sortable: все, кроме .center-only
        $('.column', '.sortable-enabled').sortable({
            connectWith: '.column',
            forceHelperSize: true,
            forcePlaceholderSize: true,
            handle: 'h2, .paginator',
            cancel: '.center-only, .side-only',
            opacity: .3,
            placeholder: 'ui-placeholder',
            tolerance: 'pointer',
            start: function(event, ui) {
                block_parent = '.column-center';
                if (ui.item.parent('.column-left').length)
                    block_parent = '.column-left';
                else if (ui.item.parent('.column-right').length)
                    block_parent = '.column-right';

                // ie fix
                ui.item.css({
                    'background': '#fff'
                });

                $('a.close', '.block h2').hide();
            },
            stop: function(event, ui) {
                ui.item.css({
                    'top': 0, // (opera || ui) bugfix
                    'left': 0,
                    'position': 'relative',
                    'background': 'transparent' // cancel ie fix
                });

                // ie6 fix && ie7 cleartype fix
                if (ui.item[0].style.filter && ui.item[0].style.removeAttribute)
                    ui.item[0].style.removeAttribute('filter');
                serializeBlocks();
            }
        });

        // sortable: .center-only
        $('.columns.sortable-enabled').sortable({
            forceHelperSize: true,
            forcePlaceholderSize: true,
            handle: 'h2, .paginator',
            items: '.column-center .block',
            cancel: '.column-center .block:not(.center-only)',
            opacity: .3,
            placeholder: 'ui-placeholder',
            tolerance: 'pointer',
            start: function(event, ui) {
                block_parent = '.column-center';

                // ie fix
                ui.item.css({
                    'background': '#fff'
                });

                $('a.close', '.block h2').hide();
            },
            stop: function(event, ui) {
                ui.item.css({
                    'top': 0, // (opera || ui) bugfix
                    'left': 0,
                    'position': 'relative',
                    'background': 'transparent' // cancel ie fix
                });

                // ie6 fix && ie7 cleartype fix
                if (ui.item[0].style.filter && ui.item[0].style.removeAttribute)
                    ui.item[0].style.removeAttribute('filter');
                serializeBlocks();
            }
        });

        // sortable: .side-only
        $('.columns-sortable', '.sortable-enabled').sortable({
            connectWith: '.column-left, .column-right',
            forceHelperSize: true,
            forcePlaceholderSize: true,
            handle: 'h2, .paginator',
            items: '.column-left .block, .column-right .block',
            cancel: '.column-left .block:not(.side-only), .column-right .block:not(.side-only)',
            opacity: .3,
            placeholder: 'ui-placeholder',
            tolerance: 'pointer',
            start: function(event, ui) {
                block_parent = '';
                if (ui.item.parent('.column-left').length)
                    block_parent = '.column-left';
                else if (ui.item.parent('.column-right').length)
                    block_parent = '.column-right';

                // ie fix
                ui.item.css({
                    'background': '#fff'
                });

                $('a.close', '.block h2').hide();
            },
            stop: function(event, ui) {
                ui.item.css({
                    'top': 0, // (opera || ui) bugfix
                    'left': 0,
                    'position': 'relative',
                    'background': 'transparent' // cancel ie fix
                });

                // ie6 fix && ie7 cleartype fix
                if (ui.item[0].style.filter && ui.item[0].style.removeAttribute)
                    ui.item[0].style.removeAttribute('filter');
                serializeBlocks();
            }
        });
    }

    // вкладки hover
    var $tabs = $('.tabs ul');
    var tab_pos = { top: 0, right: 0 };

    $('li', $tabs).not('.active').hover(function() {
        $(this).addClass('ui-state-hover');
    }, function() {
        $(this).removeClass('ui-state-hover');
    });

    // z-index вкладок

    function tabsZindex() {
        var zindex = 100;  // .active has 101
        $('li', $tabs).not('.active').each(function() {
            $(this).css({ zIndex: zindex-- });
        });
    }
    tabsZindex();

    if (typeof $.fn.sortable != 'undefined') {
        // вкладки sortable
        $tabs.sortable({
            axis: 'x',
            cancel: '.nosort',
            containment: '.tabs',
            forcePlaceholderSize: true,
            items: 'li:not(.nosort)',
            placeholder: 'ui-placeholder',
            tolerance: 'pointer',
            start: function(event, ui) {
                // (opera || ui) bugfix
                tab_pos.top = ui.item.css('top');
                tab_pos.right = ui.item.css('right');
                // ie7 bugfix, doesn't work :( 
                ui.placeholder.css({
                    width: ui.item.width() + 1
                });
            },
            stop: function(event, ui) {
                ui.item.css({ // (opera || ui) bugfix
                    'top': tab_pos.top,
                    'right': tab_pos.right,
                    'left': 'auto',
                    'position': 'relative'
                });

                tabsZindex();
                $('.ui-state-hover', $tabs).removeClass('ui-state-hover');
                //sortTabs
                var string = $('.tabs ul').sortable('serialize', { 'key': 't[]', 'expression': /(.*)/ });
                $.ajax({
                    type: "POST",
                    url: "/interfaces/workplace.asmx/sortTabs",
                    data: "{tabs: '" + string + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(evt, request, settings) {
                    },
                    error: function(event, request, settings) {
                        alert("Ошибка! Сервис временно недоступен!");
                    }
                });
            }
        });

        // вкладки droppable
        var $tab_items = $('li:not(.active)', $tabs).droppable({
            accept: '.column .block',
            hoverClass: 'ui-state-hover',
            tolerance: 'pointer',
            drop: function(event, ui) {
                var $item = $(this);
                //var $list = $($item.find('a').attr('href')).find(block_parent);
                ui.draggable.css({
                    background: '#fff'
                }).hide('slow', function() {
                    //TODO drop on tab
                    $.ajax({
                        type: "POST",
                        url: "/interfaces/workplace.asmx/dropControl",
                        data: "{active_tab: '" + active_tab_id + "',tab_id: '" + $item.attr('id') + "',control: '" + $(this).attr('id') + "'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(evt, request, settings) {
                        },
                        error: function(event, request, settings) {
                            alert("Ошибка! Сервис временно недоступен!");
                        }
                    });
                    $(this).remove();
                    serializeBlocks();
                    $('a.close', '.block h2').hide();
                });
            }
        });
    }

    // block.close link
    $('.block h2', '.sortable-enabled').hover(function() {
        $('a.close', this).show();
    }, function() {
        $('a.close', this).hide();
    });

    // block.close
    $('a.close', '.sortable-enabled .block h2').click(function() {
        $(this).parents('.block').css({
            background: '#fff'
        }).hide('slow', function() {
            $.ajax({
                type: "POST",
                url: "/interfaces/workplace.asmx/closeControl",
                data: "{tab_id: '" + active_tab_id + "',control: '" + $(this).attr('id') + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(evt, request, settings) {
                },
                error: function(event, request, settings) {
                    alert("Ошибка! Сервис временно недоступен!");
                }
            });
            $(this).remove();
        });
        return false;
    });



    /* RSS READER BLOCK */
    $('h3', '.rssReader').css({ cursor: 'pointer' }).live('click', function() {
        var $li = $(this).parents('li');
        if ($li.hasClass('expanded')) {
            $li.removeClass('expanded').addClass('read');
            $('h3', $li).animate({
                fontSize: '1.1em'
            }, 250);
            $('p, .rss-sourseLink', $li).hide(250, function() {

            });
        } else {
            $li.addClass('expanded');
            $('p, .rss-sourseLink', $li).css({
                display: 'none'
            }).show(250);
            $('h3', $li).animate({
                fontSize: '1.545em'
            }, 250);
        }
    });


});

function user_currency(which) {

    if (which == 1 && ($('#' + uc_startD).datepick('getDate') > $('#' + uc_endD).datepick('getDate'))) {
            $('#' + uc_endD).val($('#' + uc_startD).val());
    } else if ($('#' + uc_startD).datepick('getDate') > $('#' + uc_endD).datepick('getDate')) {
            $('#' + uc_startD).val($('#' + uc_endD).val());
    }
    $('a#user_currency_xls').attr('href', '/personal/export-rate.xls?d1=' + $('#' + uc_startD).val() + '&d2=' + $('#' + uc_endD).val());

}

function getRssPage(pageNum) {
    $.ajax({
        type: "GET",
        url: "/interfaces/workplace.asmx/getRssPage",
        data:  'pageNum=' + pageNum,
        contentType: "text/xml; charset=utf-8",
        dataType: "xml",
        success: function(evt, request, settings) {
        $('#rssFeeds').replaceWith('<div id="rssFeeds">' + $('string', evt).text() + '</div>');

        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
        }
    });
}


function per_getRate() {
    //
    $.ajax({
        type: "POST",
        url: "/interfaces/workplace.asmx/getCurrencyRate",
        data: "{sd: '" + $('#' + uc_startD).val() + "',ed:'" + $('#' + uc_endD).val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $('#control_results').replaceWith('<div id="control_results">' + evt.d + '</div>');
            zebrify();
            $('a[rel=fancy]', '#control_results').fancybox({
                centerOnScroll: false,
                hideOnContentClick: false,
                overlayOpacity: .9,
                padding: 0
            });
        },
        error: function(event, request, settings) {
            alert("Error requesting events page!");
        }
    });
}

function personalNewsTypeChange(ntype) {
//    if (ntype == 3) {
//        $("#" + personal_news_ddl_country).show();
//    }
//    else {
//        $("#" + personal_news_ddl_country).hide();
//    }
}
