(function(){
    //-----------------------------------------------------------------------------
    var main_it;
    var drop;
    var dropped = false;
    var MAIN_HIDE_TIME = 0;
    var HEADER_HEIGHT = 154;
    var TOOLS_VSHIFT = -44;

    var container = null;
    var regName = '';
    var regID = 0;

    //-----------------------------------------------------------------------------

    function closeIt() {
        if (!dropped) $(drop).slideUp('fast');
        dropped = false;
    }

    //-----------------------------------------------------------------------------

    function controlLanguages() {
        var langSelector = $('#langSelector');
        var langItems = langSelector.children();
        $('#langOpener').click(function(){langSelector.toggle('fast')});
        langSelector.height(langItems.length * (langItems.height() + 3));
    }

    //-----------------------------------------------------------------------------
    
    function fixMainMenu() {
        var mainMenu = $('#mainMenu');
        $(window).scroll(function () { 		   
            if ($(document).scrollTop()	> HEADER_HEIGHT) {mainMenu.addClass('mainMenuFix')}
            else {mainMenu.removeClass('mainMenuFix')}
        })
    }

    //-----------------------------------------------------------------------------
    
    function adjustMainMenu() {
        $('#menuOptions').click(function() {
            $.getScript('scripts/mainMenuControl.js', function() {
                $('#blindScreen').fadeIn();
            });
            return false;
        });
    }

    //-----------------------------------------------------------------------------

    function placeRegsToolsAt(targetItem){
        container = targetItem;
        $('#regionsTools').css({'top':container.offset().top + TOOLS_VSHIFT - $(document).scrollTop()}).show();
        var idParts = container.attr('id').split('_');
        regName = idParts[0];
        regID = idParts[1];

        if (container.hasClass('regionFaded')) {
            $('#regionsTools .imgVisibility').removeClass('imageHide').addClass('imageShow');
        } else {
            $('#regionsTools .imgVisibility').removeClass('imageShow').addClass('imageHide');
        }

        if (container.hasClass('regionEmpty')) {
            $('#regionsTools .linkageEdit').removeClass('artUnlink').addClass('artLink');
        } else {
            $('#regionsTools .linkageEdit').removeClass('artLink').addClass('artUnlink');
        }
    }

    //-----------------------------------------------------------------------------

    function placeRegsEditToolsAt(){
        $('.regionsTextEdit').css({'top':container.offset().top + TOOLS_VSHIFT - $(document).scrollTop() + 26}).show();
        $('#regsCaption').val(container.text());
        $('#regsRef').val(regName);
    }

    //-----------------------------------------------------------------------------

    $(function() {
        preloadImage('searchOver.png');
        preloadImage('searchActive.png');
        preloadImage('searchActiveOver.png');
        preloadImage('langBackOver.png');
        
        controlLanguages();
        fixMainMenu();
        adjustMainMenu();
        
        $("span[id^='drop_']").mouseenter(function(){
            $(drop).slideUp('fast');
            main_it = $(this);
            drop = '#' + main_it.attr('data');
            var offset = main_it.offset();
            $(drop).css('left', offset.left).slideDown('fast');
        });

        $("span[id^='drop_']").mouseleave(function(){
            setTimeout(closeIt, MAIN_HIDE_TIME);
            //closeIt();
        });

        $("div[id^='submenu_']").hover(function(){
            drop = $(this);
            dropped = true;
        }, function(){
            dropped = false;
            drop.slideUp('fast');
        });

        $("span[id^='script_']").click(function() {
            if ($(this).attr('id') == 'script_base') {
                $('#blindScreen, #popupRegions').fadeIn();
            }
            return false;
        })

        //-------------------------------------------------------------------------
        $('.mceRegions').dblclick(function(){
            if ($('.mceEditor').length == 0) {
                var content = $(this).html();
                var area = '<form action="ajax/plainEdit.php" id="plainInfoForm" method="post">';
                area = area + '<textarea name="txt" id="plainTextArea" class="mceEditor" style="width:100%; height:400px;">';
                area = area + content;
                area = area + '</textarea>';
                area = area + '<input type="hidden" name="table" value="plain">';
                area = area + '<input type="hidden" name="sect"  value="regionsInfo">';
                area = area + '<input type="hidden" name="lang"  value="' + language + '">';
                area = area + '</form>';
                $(this).html(area);
                mceLight();
            }
        });
        //*************************************************************************************
        $('#searchOpener').click(function() {
            var sm = $('#searchMenu');
            if (sm.is(':hidden')) {
                sm.show('fast');
                $('#searchOpener').removeClass('searchNormal').addClass('searchActive');
                $('input#searchStr').focus();
            } else {
                sm.hide('fast', function() {
                    $('#searchOpener').removeClass('searchActive').addClass('searchNormal');
                });
            }
        })
        //*************************************************************************************
        $('#searchIndicator').click(function(){
            $.post(window.location.href, {
                'searchoff': '1'
            },
            function(data){
                window.location.reload(true);
            });
        })
        //*************************************************************************************
        $('.region').mouseenter(function() {
            swf('regionsMap').highlightRegion($(this).attr('id').split('_')[0]);
            if (prv > 2 && $('.regionsTextEdit').is(':hidden')) placeRegsToolsAt($(this));	
        })
        //*************************************************************************************
        $('.region').mouseleave(function() {
            swf('regionsMap').delightRegion($(this).attr('id').split('_')[0]);
        })
        //*************************************************************************************
        $('#regionsTools .imageEdit').click(function(){ 
            if ($('.regionsTextEdit').is(':hidden')) { 
                placeRegsEditToolsAt(); 
            } else { 
                $.post('ajax/regionsEdit.php', {
                    'table': 'regions',
                    'sect' : 'base',
                    'regID': regID,
                    'lang' : language,
                    'capt' : $('#regsCaption').val(), 
                    'name' : $('#regsRef').val() 
                }, 
                function(data){
                    var response = eval('('+data+')');
                    if (response.status == 'OK') {
                        if (container.has('a').length > 0) {
                            container.children('a').text($('#regsCaption').val());
                        }else {
                            container.text($('#regsCaption').val());
                        }
                        container.attr('id', $('#regsRef').val() + '_' + regID);
                        $('.regionsTextEdit').hide();
                    }
                    else {
                        alert(response.mes);
                    }
                })
            }
        });
        //*************************************************************************************
        if (prv > 2) {
            $('.addRegion').click(function(){ 
                $.post('ajax/addRegion.php', {
                    'table': 'regions',
                    'sect' : 'base'
                }, 
                function(data){
                    window.location.reload(true);
                })
            });
        }
        //*************************************************************************************
        $('#regionsTools .imageClose').click(function(){ 
            if (confirm($(this).attr('data') + ' "' + container.text() + '" ?')) {
                $.post('ajax/deleteEntry.php', {
                'table': 'regions',
                'sect' : 'base',
                'field': 'id',
                'cond' : regID,
                'multi': 1
                });
                container.parent().remove();
            } 
        });
        //*************************************************************************************
        $('#regionsTools .imgVisibility').click(function(){ 
            $.post('ajax/coverToggleBinary.php', {
                'table': 'regions',
                'sect' : 'base',
                'imgID': regID,
                'field': 'visible'
            });
            container.toggleClass('regionFaded');
            
            if ($('#regionsTools .imgVisibility').hasClass('imageHide')) {
                $('#regionsTools .imgVisibility').removeClass('imageHide').addClass('imageShow');
            } else {
                $('#regionsTools .imgVisibility').removeClass('imageShow').addClass('imageHide');
            }
        });
        //*************************************************************************************
        $('#regionsTools .linkageEdit').click(function(){ 
            $.post('ajax/coverToggleBinary.php', {
                'table': 'regions',
                'sect' : 'base',
                'imgID': regID,
                'field': 'clickable'
            });
            
            if (container.hasClass('regionNormal')) { 
                container.removeClass('regionNormal').addClass('regionEmpty');
                container.html(container.text());
            } else { 
                container.removeClass('regionEmpty').addClass('regionNormal');
                container.html('<a href="?lang=' + language + '&section=base&region=' + regName + '">' + container.text() + '</a>');
            }
            
            if ($('#regionsTools .linkageEdit').hasClass('artUnlink')) {
                $('#regionsTools .linkageEdit').removeClass('artUnlink').addClass('artLink');
            } else {
                $('#regionsTools .linkageEdit').removeClass('artLink').addClass('artUnlink');
            }
        });
        //*************************************************************************************
    });


    //-----------------------------------------------------------------------------

    function mceInit() {

        $('#plainInfoForm').submit(function() {
            mceSave();
            return false;
        })
    }

    //-----------------------------------------------------------------------------

    function mceSave() {
        var options = { 
            success: hideMCE // функция, вызываемая при получении ответа
        };
        $('#plainInfoForm').ajaxSubmit(options);
        return false;
    }

    //-----------------------------------------------------------------------------

    function hideMCE() {
        $('#plainTextArea').tinymce().hide();
        var content = $('#plainTextArea').html();
        $('.mceRegions').html(content);
        $('.districtMCE').html(content);
    }

    //-----------------------------------------------------------------------------
})()

//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

function enumerateRegions() {
    var regs = [];
    $('.region').each(function(){
        var th = $(this);
        var id = th.attr('id').split('_')[0];
        var linked = (th.hasClass('regionFaded') || th.hasClass('regionEmpty')) ? '0' : '1';
        regs.push([id, linked]);
    })
    return regs;
}

//-----------------------------------------------------------------------------

function getCurrentLanguage() {
    return language;
}


