(function($){
    jQuery.fn.menu = function(options){
        var menu = this.parent().parent()
        ,   items = menu.children('li').children('a')
        ,   contents = items.next('div.content')
        ,   lastcontent = null
        ,   id = 'menu_'+Math.floor(Math.random()*100000);
        
        menu.attr('id', id);
        
        menu.click(function(event){
            var target = $(event.target);
            var plain = target.parent().parent().next('.content-plain');
	        var body = $('body');

            if (target.parent().parent().is('#'+id)) {
                if(!target.hasClass('selected')) {

	                var parts = target.attr('rel').split('?id=', 2);
					var pageid = parts[1];

                    items.removeClass('selected');

                    if (lastcontent) {
                        lastcontent.stop(true,false).animate({
                            height:0
                        });
                    }

                    if (plain)
                    {
                        plain.slideUp();
                    }

                    target.addClass('selected');

					$.ajax({
						url: options.src + '/assets/templates/project/js/ajax/get-backimage.php',
						type: "POST",
						data: "id=" + pageid,
						success: function(src){
							body.css('background-image', 'url("' + src + '")');
						}
					});

                    lastcontent = target.next('div.content');
                    if (!lastcontent.length)
                        $.ajax({
                            url: options.src + target.attr('rel')
                        ,   success: function(data){
                                lastcontent = $('<div class="content">'+data+'<div>').insertAfter(target);
                                lastcontent.animate({
                                    height: lastcontent[0].scrollHeight 
                                },'normal', function(){
                                    lastcontent.css({
                                        height: 'auto'
                                    });
                                });
                                lastcontent.find('ul.submenu>li>a').menu(options);
                            }
                        });
                    else 
                        lastcontent.animate({
                            height: lastcontent[0].scrollHeight 
                        },'normal', function(){
                            lastcontent.css({
                                height: 'auto'
                            });
                        });
                
                } else {
                    items.removeClass('selected');
                    if (lastcontent) {
                        lastcontent.stop(true,false).animate({
                            height:0
                        });
                    }

                    if (plain)
                    {
                        plain.slideDown();
                    }
                }
            }
        });
            
        return this;
    };
    
    
    $(document).ready(function(){
        $('#menu>li>a').menu({
            src: ''
        });
        
        var toggleLocation = function(text){
            var bg,plane;
            if ($('#location-background').length) {
                bg = $('#location-background');
                plane = $('#location-plane');
            } else {
                bg = $('<div class="location-background" id="location-background"></div>');
                plane = $('<div class="location-plane" id="location-plane"><a href="javascript:void(0)" class="close">закрыть</a><div class="text"></div></div>');
                $('#main').append(bg).append(plane);
                plane.children('a.close').click(toggleLocation);
                bg.click(toggleLocation);
            }
            plane.stop(true,true);
            bg.stop(true,true);
            
            plane.children('div').html(text);
            
            if (bg.is(':hidden')) {
                bg.css({
                    opacity:0.6
                });
                bg.fadeIn('normal',function(){
                    plane.css({
                        left: ($(window).width() - plane.width())/2
                    });
                    plane.animate({
                        top: ($(window).height() - plane.height())/2 + (($.browser.msie && ($.browser.version < 7)) ? $(window).scrollTop() : 0) 
                    });
                });
            } else {
                plane.animate({
                    top: -1000
                }, 'normal', function(){
                    bg.fadeOut();
                });
            }
            
            
        };
        
        $('a.shadow').each(function(){
            var self = $(this)
            ,   text = self.next('div.hidden').eq(0).html();
            self.click(function(){
                toggleLocation(text);
            });
        });
        
    });
})(jQuery);
