$(initAddToFavorite);

function js_clock( date_id, time_id )
{
    var days = ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'];
    var months = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];

    var f_num = function(num)
    {
        return num < 10 ? '0' + num : num;
    }

    var date_elem = $('#'+date_id);
    var time_elem = $('#'+time_id);

    var update = function()
    {
        try
        {
            var d = new Date();
            date_elem.text( $.sprintf("%s, %s %s %s",
                days[d.getDay()], d.getDate(), months[d.getMonth()], d.getFullYear() )
            );
            time_elem.text( $.sprintf("%s:%s:%s",
                f_num(d.getHours()), f_num(d.getMinutes()), f_num(d.getSeconds()) )
            );
        }
        catch (e)
        {
            //alert(e.message);
        }
    }

    if( date_elem.parent().filter(":visible").size() )
    {    		
	    //update();
	    //setInterval( update, 500 );
    }
}

function initTopMenu()
{
		var isDroppedDown = false;
		var SUBMENU_POSTFIX = '_submenu';
		var closeMenuInfo = {};
		var arrNavigationItem;
		var arrSubmenuItem = new Object();
    
    initNavigation();
    
    function showDropDownMenu()
    {
	    var $this = $(this);
	    
    	if( !isDroppedDown )
	    {
	    	isDroppedDown = true;
	    	startDropDown();
	    }
	    else
	    {
	    	interval = setTimeout(startDropDown, 150);
	    }
    
	    function startDropDown( )
	    {
	    	if( $('.nav-item-title-over', $this).size() > 0 )
	    	{
			    var item =  $this.is('.nav-item') ? $this : $this.parent('.nav-item');
			    var title = $('.nav-item-title', item);
			    var btn   = $('.nav-submenu-button', item);
			
			    var submenuId = item.attr('id') + SUBMENU_POSTFIX;
			    if( arrSubmenuItem[submenuId] !== undefined )
			    {
				    var smenu = arrSubmenuItem[submenuId];
				
				    var _smenu = smenu.get(0);
				    if ( _smenu )
				    {
							if ( !_smenu._initialized )
							{
								_smenu._initialized = true;
								smenu.bind('mouseleave', $.bind(null, closeMenu, submenuId));
                smenu.bind('mouseenter', $.bind(null, cancelClosing, submenuId));
								$('.nav-sm-item', smenu).hoverToggleClass('nav-sm-item-over');
							}
							
							var size = title.offset();
							size.width = btn.offset().left + btn.width() - size.left;
							size.top  += 24;

							smenu.css({
								'top': 			size.top,
							  'left': 		size.left,
							  'z-index': 	1000,
							  'width': 		size.width
							});
							smenu.fadeIn('fast');

							$('iframe', smenu).css ({
								'width': smenu.css('width'),
								'height': smenu.css('height')
							});		
				    }
			    }
	    	}
	    }
    }
    
    function closeMenu(submenuId)
    {
    	if( typeof submenuId != 'string' )
    	{
    		submenuId = this.id + SUBMENU_POSTFIX;
    	}
	    var f = function()
	    {
	    	if( arrSubmenuItem[submenuId] !== undefined )
	    	{
		        arrSubmenuItem[submenuId].stop(true, true).hide();
		        closeMenuInfo[submenuId] = null;
		        isDroppedDown = $('.nav-item-title-over', arrNavigationItem).size() > 0;
	    	}
	    };
        
    	if( arrSubmenuItem[submenuId] !== undefined )
    	{
        cancelClosing.apply( this, new Array(submenuId) );
        closeMenuInfo[submenuId] = setTimeout( f, 200 );
    	}
    }

    function cancelClosing(submenuId)
    {
    	if( typeof submenuId != 'string' )
    	{
    		submenuId = this.id + SUBMENU_POSTFIX;
    	}
    	if( arrSubmenuItem[submenuId] !== undefined )
    	{
		    if ( closeMenuInfo[submenuId] )
		    {
	        clearTimeout( closeMenuInfo[submenuId] );
	        closeMenuInfo[submenuId] = null;
		    }
    	}
    }

    function initNavigationCollections()
    {
			var arrSubmenuCollection = $('.nav-submenu');
			arrNavigationItem = $('#navigation .nav-item');

			arrSubmenuCollection.each(function(){
				var $this = $(this);
				arrSubmenuItem[$this.attr('id')] = $this;
			});
    }
    
    function initNavigation()
    {
    	initNavigationCollections();
	    arrNavigationItem.each( function(){
        $this = $(this);
        $this.bind( 'mouseleave', closeMenu );
        $this.bind( 'mouseenter', cancelClosing );

        var title = $('.nav-item-title', this);
        var btn = $('.nav-submenu-button', this);

        var mouseOut = function() {
	        title.removeClass('nav-item-title-over');
	        if ( btn.size() )
	        {
		        btn.removeClass('nav-submenu-button-over');
	        }
        };

        var mouseOver = function() {
	        title.addClass('nav-item-title-over');
	        if( btn.size() )
	        {
            btn.addClass('nav-submenu-button-over');
            ($.bind(this, showDropDownMenu))();
	        }
        };
        
        $this.hover( mouseOver, mouseOut );
	    });
    }
};

function showAlert( title, message )
{
    $(document.body).append(
        $.sprintf('<div id="alert-box" title="%s">%s</'+'div>', title, message)
    );
    var alert = $("#alert-box");
    alert.dialog(
    {
        position:     'center',
        resizable:    false,
        modal:        true,

        close: function() { $(this).dialog('destroy').remove(); },

        overlay:
        {
            backgroundColor: '#000',
            opacity: 0.2
        },

        buttons:
        {
            'OK': function() { $(this).dialog('destroy').remove(); }
        }
    });
    alert.show();
}

function initAddToFavorite()
{
	$('.add-to-favorite').click(addToFavorite);
}

function addToFavorite()
{
	var url = location.protocol + '//' + location.hostname + '/';
	var title = $('.logo').attr('alt');
	
	try 
	{
    if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) {
    	// Mozilla
        window.sidebar.addPanel(title, url, "");
    } else if(window.opera && window.print) {
    	// Opera
        $(this).attr('rel', 'sidebar');
        return true;
    }else if(document.all) {
    	// IE
        window.external.AddFavorite(url, title);
    }else {
    	// Other
        showAlert("Добавление в закладки", "Нажмите CTRL-D, чтобы добавить страницу в закладки");
    }
    return false;
	}
	catch (e) 
	{
    showAlert("Добавление в закладки", "Нажмите CTRL-D, чтобы добавить страницу в закладки");
    return false;
	}
}

