(function ($) {
	
		timeout = 100,

			init = function(parent, level) {
					$(parent).children().each(function () {
								var sub_menu = $(this).children('ul');
											if (sub_menu.hasClass('scc_submenu'))
														{
																		// Add an arrow
																						$(this).addClass('scc_menu_arrow');
																										sub_menu.addClass('scc_submenu_'+level);
																														
																																		$(this).hover(function() {
																																							show_menu(this, sub_menu, level);
																																											}, function () {
																																																hide_menu(sub_menu, level);
																																																				});
																																																								
																																																												init(sub_menu, level+1);
																																																															}
																																																																	});

																																																																		},
																																																																			
																																																																				show_menu = function(parent, menu, level) {
																																																																						for (i = 0; i <= level; i++)
																																																																								{
																																																																											cancel_hide(menu);
																																																																													}
																																																																															
																																																																																	menu.css('display', 'block');
																																																																																		},
																																																																																			
																																																																																				hide_menu = function(menu, level) {
																																																																																						menu.data('timeout',
																																																																																									window.setTimeout(function(){
																																																																																													menu.css('display', 'none');
																																																																																																}, timeout)
																																																																																																		);
																																																																																																			},
																																																																																																				
																																																																																																					cancel_hide = function(child) {
																																																																																																							var parent = null;
																																																																																																									// Do not hide all parent elements
																																																																																																											do
																																																																																																													{
																																																																																																																parent = $(child).parent('.scc_submenu');
																																																																																																																			clearTimeout($(child).data('timeout'));
																																																																																																																					}
																																																																																																																							while (parent.size() > 0);
																																																																																																																								},
																																																																																																																									
																																																																																																																										$.fn.scc_menu = function () {
																																																																																																																												init(this, 0);
																																																																																																																													}
																																																																																																																													})(jQuery);

