

// This initializes the menu
jQuery(function() {
	jQuery('ul.menu').jdMenu();
});

(function(jQuery){
		  
		  
 
		  
	function addEvents(ul) {
		var settings = jQuery.data( jQuery(ul).parents().andSelf().filter('ul.menu')[0], 'jdMenuSettings' );
		
		var ul2 = jQuery('ul#matic > li > ul:first');
		
		showMenu( ul2, settings.onAnimate, settings.isVertical );
		
		
		jQuery('> li', ul)
			.bind('mouseenter.jdmenu mouseleave.jdmenu', function(evt) {
				jQuery(this).toggleClass('jdm_hover');
				var ul = jQuery('> ul', this);
				if ( ul.length == 1 ) {
					//clearTimeout( this.jQueryjdTimer );
					//var enter = ( evt.type == 'mouseenter' );
					//var fn = ( enter ? showMenu : hideMenu );
					//this.jQueryjdTimer = setTimeout(function() {
					//	fn( ul[0], settings.onAnimate, settings.isVertical );
					//}, enter ? settings.showDelay : settings.hideDelay );
					//alert("sds");
				}
			})
			.bind('click.jdmenu', function(evt) {
				var ul = jQuery('> ul', this);
				var li = jQuery('ul#dan2 > li');
				if ( ul.length == 1 && 
					( settings.disableLinks == true || jQuery(this).hasClass('accessible') ) ) {
					showMenu( ul, settings.onAnimate, settings.isVertical );
					
				
				
					
				var s;
					function demoShowMatchClick(reg, subj) {
					  var re = new RegExp(reg);
					  var m = re.exec(subj);
					  if (m == null) {
						//alert("No match");
					  } else {
						//var s = "Match at position " + m.index + ":\n";
						
						
						for (i = 0; i < m.length; i++) {
						  s = m[i];
						}
						//alert(s);
					  }
					}

					demoShowMatchClick( "item[0-9]*", this.className);
					
					//alert(li.length);
					
					
					
					//alert(s);
					var num;
					
					if (s == 'item337') {
					 num = 0;
					
					} else if (s == 'item336') { 
					
					num = 2;
					
					} else if (s == 'item338') { 
					
					num = 1;
					
					} else if (s == 'item339') { 
					
					num = 3;
					
					}
					
					
					//alert (num);
					//animate(num,true);
					
					
						function moveSlider(number) {
						var j1 = document.getElementById("hiddenSlider");
						j1.rel = number;
						jQuery('#hiddenSlider').trigger('click');

						}
					
					
					moveSlider(num);
					
					// rotate using s
					
					
					
					return false;
				}
				
				// The user clicked the li and we need to trigger a click for the a
				if ( evt.target == this ) {
					var link = jQuery('> a', evt.target).not('.accessible');
					if ( link.length > 0 ) {
						var a = link[0];
						if ( !a.onclick ) {
							window.open( a.href, a.target || '_self' );
						} else {
							jQuery(a).trigger('click');
						}
					}
				}
				if ( settings.disableLinks || 
					( !settings.disableLinks && !jQuery(this).parent().hasClass('menu') ) ) {
					jQuery(this).parent().jdMenuHide();
					evt.stopPropagation();
				}
			})
			.find('> a')
				.bind('focus.jdmenu blur.jdmenu', function(evt) {
					var p = jQuery(this).parents('li:eq(0)');
					if ( evt.type == 'focus' ) {
						p.addClass('jdm_hover');
					} else { 
						p.removeClass('jdm_hover');
					}
				})
				.filter('.accessible')
					.bind('click.jdmenu', function(evt) {
						evt.preventDefault();
					});
	}

	function showMenu(ul, animate, vertical) {
		var ul = jQuery(ul);
		if ( ul.is(':visible') ) {
			return;
		}
		//ul.bgiframe();
		var li = ul.parent();
		ul	.trigger('jdMenuShow')
			/*.positionBy({ 	target: 	li[0], 
							targetPos: 	( vertical === true || !li.parent().hasClass('menu') ? 1 : 3 ), 
							elementPos: 0,
							hideAfterPosition: true
							});*/
		if ( !ul.hasClass('jdm_events') ) {
			ul.addClass('jdm_events');
			addEvents(ul);
		}
		li	.addClass('jdm_active')
			// Hide any adjacent menus
			.siblings('li').find('> ul:eq(0):visible')
				.each(function(){
					hideMenu( this ); 
				});
		if ( animate === undefined ) {
			ul.show();
		} else {
			animate.apply( ul[0], [true] );
		}
	}
	
	function hideMenu(ul, animate) {
		var ul = jQuery(ul);
		jQuery('.bgiframe', ul).remove();
		ul	.filter(':not(.menu)')
			.find('> li > ul:eq(0):visible')
				.each(function() {
					hideMenu( this );
				})
			.end();
		if ( animate === undefined ) {
			ul.hide()
		} else {
			animate.apply( ul[0], [false] );
		}

		ul	.trigger('jdMenuHide')
			.parents('li:eq(0)')
				.removeClass('jdm_active jdm_hover')
			.end()
				.find('> li')
				.removeClass('jdm_active jdm_hover');
	}
	
	// Public methods
	jQuery.fn.jdMenu = function(settings) {
		// Future settings: activateDelay
		var settings = jQuery.extend({	// Time in ms before menu shows
									showDelay: 		200,
									// Time in ms before menu hides
									hideDelay: 		500,
									// Should items that contain submenus not 
									// respond to clicks
									disableLinks:	true
									// This callback allows for you to animate menus
									//onAnimate:	null
									}, settings);
		if ( !jQuery.isFunction( settings.onAnimate ) ) {
			settings.onAnimate = undefined;
		}
		return this.filter('ul.menu').each(function() {
			jQuery.data(	this, 
					'jdMenuSettings', 
					jQuery.extend({ isVertical: jQuery(this).hasClass('menu_vertical') }, settings) 
					);
			addEvents(this);
		});
	};
	
	jQuery.fn.jdMenuUnbind = function() {
		jQuery('ul.jdm_events', this)
			.unbind('.jdmenu')
			.find('> a').unbind('.jdmenu');
	};
	jQuery.fn.jdMenuHide = function() {
		return this.filter('ul').each(function(){ 
			//hideMenu( this );
		});
	};

	// Private methods and logic
	jQuery(window)
		// Bind a click event to hide all visible menus when the document is clicked
		.bind('click.jdmenu', function(){
			jQuery('ul.menu ul:visible').jdMenuHide();
		});
})(jQuery);

