(function($){
	$.fn.extend({
		simpleDropNav : function(option){
			// スライダーの速度初期値
			var initial = { duration : 500 }
			// オブジェクトとして引数を結合処理したオブジェクトを返す
			// setting = { initial : 500, option : option }
			var setting = $.extend(initial,option);
			// ドロップダウン処理
			var dropdown = function(ul,n){
				// 階層の判断(下層の場合lower)
				var type = $(ul).attr("class");
				// li要素取得
				var arrLi = $(ul).children("li");
				// スライダー処理コールバック関数
				// ドロップダウン処理
				$.each(arrLi,function(){
					// 参照渡しにするためにオブジェクト生成
					var isSlide = { flag: false };
					function slideComplete (o) {
						o.flag = false;
					
					}
					// li要素がul要素を包含しているかを判定
					// findメソッドはマッチする要素なくても空の配列が返る
					// thisはli要素
					var ulNode = ($(this).find("ul"));
					if (ulNode.length > 0) {
						
						// thisはli要素
						if (type == "lower") {
							$(this).find("ul").css("top", 0);
							$(this).find("ul").css("left", $(this).parent().width());
						}
						$(this).hover(
							// slideToggleは処理が逆になることがあるのでslideDown,slideUpを使う
							function () {
								if (isSlide.flag == false) {
									$(this).children("ul").slideDown(setting.duration);
									isSlide.flag = true;
								}
							},
							function (){ 
								$(this).children("ul").slideUp(setting.duration, slideComplete(isSlide));
							}
						);
						if( $(this).children("ul")) {
							dropdown($(this).children("ul")); // 再帰処理
						}
					}
					
				});
			}
			// 処理開始
			dropdown(this);
			// メソッドチェーン
			return this;
		}
	});
})(jQuery);

