// DAMIAN
;(function($){
		   
	(function(){
		$(window).bind('click', function(event){
			if(! $(event.target).hasClass('menuBox-makeMenu')) {
				$.menuHideAll();
			}
		});
		
		$('body').data('is_menu_show', 0);
		
		$('object').live('mousemove', function(event) {
			if($(event.target)[0].tagName == 'OBJECT' && $('body').data('is_menu_show') == 0) {
			//	console.log($('body').data('is_menu_show'));
				$.menuHideAll();
			
			}
		});
	})();

	$.menuBlock = function() {
		
	},
	$.menuHideAll = function() {
		
		var items = $('.menuItem-makeMenu');
		$(items).each(function(i, val){
			$(val).css({marginTop: 0, opacity: 0, display: 'none'});
		//	$(val).stop(true, false).animate({marginTop: 0, opacity: 0}, 1000, 'backinout');
		});
		
	},
	$.menuChangeSound = function( param, movieName ){
		if (navigator.appName.indexOf("Microsoft") != -1) {
			movie = window[movieName];
		} else {
			movie = document[movieName];
		};
	try{	
		movie.wlaczWylaczMuze(param);
	} catch(e) {}
	},
	$.menuChangeFlashText = function( param, movieName ){
		if (navigator.appName.indexOf("Microsoft") != -1) {
			movie = window[movieName];
		} else {
			movie = document[movieName];
		};
		
		if (movie)	
		{
			try{
			movie.zmienText(param);
			}catch(e){};
		}
	},
	$.fn.makeMenu = function(arr, funct, options) {
		var $self = $(this);
		
		var $bg;
		
		var counter;
		
		var items = arr;
	
		var action = funct;
	
		var defaults = {
			box: { 
				width: 50, 
				height: 70,
				left: 70,
				backgroundColor: '#FAFAFA',
				bottom: 0,
				zIndex: 15000000,
				display: 'block',
				position: 'absolute'
			},
			item: {
				zIndex: 15000200,
				height: 18,
				width: 250
			},
			validate: {
				category: '2',
				in_menu: '1'
			}
		},
		settings = $.extend({}, defaults, options),
		
		showMenu = function() {
			var items = $self.find('.menuItem-makeMenu');
			$(items).each(function(i, val){
				$(val).css('z-index', settings.item.zIndex-i);
//				$(val).stop(true, false).animate({marginTop: -(i * 20), opacity: 0.8}, 1000, 'backinout');
				$(val).css({marginTop: -(i * 19), opacity: 1, display: 'block'});
			});
			$bg.css({'height': ($(items).size()*24), 'width': settings.item.width, 'z-index': 1}); 
		},
		
		hideMenu = function() {
			var items = $self.find('.menuItem-makeMenu');
			$(items).each(function(i, val){
			//	$(val).stop(true, false).animate({marginTop: 0, opacity: 0}, 1000, 'backinout');
				$(val).css({marginTop: 0, opacity: 0, display: 'none'});
			});
			$('body').data('is_menu_show', 0);
			$bg.css({'height': settings.box.height, 'width': settings.box.width, zIndex: settings.box.zIndex+1}); 
		},
		
		clickItem = function(event) {
			$('#_loader_').fadeIn('fast');
			setInterval('checkProgress();', 100);
			param = $(event.currentTarget).data('param');
			$.menuHideAll();
			action(param.id); 
		},
		
		boxOverOut = function(event) {
				switch(event.type) {
					case 'mouseenter':
						showMenu();
					break;
					case 'click':
						showMenu();
					break;
				}
		},
		itemOverOut = function(event) {
				switch(event.type) {
					case 'mouseenter':
						$('body').data('is_menu_show', 1);
						clearTimeout(counter);
					break;
					case 'mouseleave':
						counter = setTimeout(function(){
							hideMenu();
						}, 200);
					break;
					case 'click':
						clickItem(event);
					break;
				}

		};		
		return this.each(function(){
			$obj = $(this);
			$obj.data('this_', $(this));
		//	$.extend($obj, {timeout: 0});
			$obj
				.empty()
				.addClass('menuBox-makeMenu')
				.css(settings.box)
				.bind('click', boxOverOut);
			
			$bg = $('<div></div>');
			
			$bg
		//		.css(settings.box)
				.css('width', settings.box.width)
				.css('height', settings.box.height)
				.css('left', settings.box.left)
				.css('bottom', settings.box.bottom)
				.css('background-color', '#FAFAFA')
				.css('opacity', 0)
				.addClass('menuComponent')
				.css('display', settings.box.display)
				.css('position', settings.box.position)
				.css('z-index', 15000001)
				.bind('mouseenter click', boxOverOut);
				
			$('body').append($bg);

			for (i in items) {
				this_ = items[i];
				if(this_.attr('in_menu') == settings.validate.in_menu && this_.attr('category') == settings.validate.category) {
					fld = (items[i].attr('icon')=='')?'folder.png':items[i].attr('icon');
					app = $('<div name="'+items[i].attr('name')+'" alt="'+items[i].attr('id')+'"><img src="'+fld+'" width="18" height="18" style="float:left;" />'+items[i].attr('name')+'</div>')

					app
						.data('param', {name: items[i].attr('name'), id: items[i].attr('id')})
						.addClass('menuItem-makeMenu menuComponent')
						.css('opacity', 0)
						.css('z-index', settings.item.zIndex)
						.css('height', settings.item.height) 
						.css('width', settings.item.width)
			
						.bind('mouseenter mouseleave click', itemOverOut)
						.pngFix();
						
					$obj.append(app);
				}
			}
		});
	};
})(jQuery);
