if (typeof Ramen == 'undefined') Ramen = {};

jQuery.noConflict();
jQuery(document).ready(function($) {
	if (Ramen.setup) Ramen.setup();

	Ramen.setClassBtn();
	Ramen.initRollOverImages();
	Ramen.pageScroll();
	Ramen.setExternal();
	Ramen.mobileMailCheck();
	Ramen.carousel();
	//Ramen.setMargin();
	Ramen.setMargin2();
	Ramen.initRollOverImages2();
});

/*============================================================================ 
jquery.function.js
============================================================================ */

/**********************************************************
setClassBtn
--------
指定の要素のclass属性に"btn"を設定
@param / @return
**********************************************************/
Ramen.setClassBtn = function () {
	jQuery("div#Nav ul li img").each(function() {
		jQuery(this).addClass("btn");
	});
}


/**********************************************************
setExternal
--------
別窓_blankでウィンドウ開く
a要素のclass属性に"external"を指定
@param / @return
**********************************************************/
Ramen.setExternal = function () {
	jQuery("a.external").click(function() {
		window.open(this.href, '_blank');
		return false;
	});	
}

/**********************************************************
initRollOverImages
--------
マウスオーバーで画像を切換
@param / @return
**********************************************************/
Ramen.initRollOverImages = function () {
	jQuery("a img.btn,input[type=image].btn").not("[@src*='_02.']").each(function(i) {
		var srcNormal, srcHover;
		srcNormal = this.src;
		srcHover = this.src.replace(/_01\./, '_02.');
		jQuery(this).hover(
			function() { this.src = srcHover; },
			function() { this.src = srcNormal; }
		);
	});
}

Ramen.initRollOverImages2 = function () {
	jQuery('.subSectionUl a').each(function(i) {
		var $self = jQuery(this);
		var $img = $self.children('img');
		var srcNormal, srcHover;
		srcNormal = $img.attr('src');
		srcHover = $img.attr('src').replace(/_01\./, '_02.');
		
		$self.hover(
			function() { $img.attr('src', srcHover); },
			function() { $img.attr('src', srcNormal); }
		);
	})
}


/**********************************************************
pageScroll
--------
ページをスムーズにスクロール（ href属性値が#で始まるものが対象 ）
@param / @return
**********************************************************/
Ramen.pageScroll = function () {
	jQuery("a[href*=#]").click(function() {
		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
			var $target = jQuery(this.hash);
			$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
			if ($target.length) {
				var targetOffset = $target.offset().top;
				jQuery('html,body').animate({scrollTop: targetOffset}, 500);
				return false;
			}
		}
	});
}

/**********************************************************
mobileMailCheck
--------
ケータイアドレスのバリデータ
@param / @return
**********************************************************/
Ramen.mobileMailCheck = function () {
	jQuery('#mailSend').click(function () {

	  jQuery('#mobileMailFinish').hide();

	  if (!jQuery('#email_user').val())
	  {
	    jQuery('#mobileMailMessage').text('※アドレスを入力してください');
	    jQuery('#mobileMailMessage').show();
	    return;
	  }
	  else if (!jQuery('#email_user').val().match(/^[A-Za-z0-9]+[\w-\.\_]*$/))
	  {
	    jQuery('#mobileMailMessage').text('※アドレスの形式が不正です');
	    jQuery('#mobileMailMessage').show();
	    return;
	  }    

	  if (!jQuery('#email_domain').val())
	  {
	    jQuery('#mobileMailMessage').text('※アドレスを入力してください');
	    jQuery('#mobileMailMessage').show();
	    return;        
	  }

	  jQuery('#mobileMailMessage').hide();
	  
	  jQuery.post('/mobile/sendMail/',
		 { params: jQuery('#mobileMailFrom').serialize() },
		 function (data) {
		   jQuery('#mobileMailExplan').hide();	     
		   jQuery('#mobileMailFinish').show();
		   jQuery('#mailSend').attr("disabled", true);
		 });
	})
}

/**********************************************************
carousel
--------
TOPページピックアップのカルーセル（101215追記）
@param / @return
**********************************************************/
Ramen.carousel = function() {
	if (!jQuery('.pickupCarousel') || !jQuery('.areaCarousel')) {
		return false;
	}
	
	jQuery('.pickupCarousel').jCarouselLite({
		btnNext: ".pickupNext",
		btnPrev: ".pickupPrev",
		visible: 3,
		speed: 1000,
		scroll: 1,
		auto: 5000,
		easing: 'easeOutExpo'
	});
	
	jQuery('.areaCarousel').jCarouselLite({
		btnNext: ".areaNext",
		btnPrev: ".areaPrev",
		visible: 3,
		speed: 1000,
		scroll: 1,
		auto: 5000,
		easing: 'easeOutExpo'
	});
}



/**********************************************************
setMargin
--------
TOPページ新着ラーメンのマージン調整
3の倍数 - 1（2, 5, 8, 11, 14...）番目の要素に「margin: 0 18px」を適用（101215追記）
@param / @return
**********************************************************/
Ramen.setMargin = function() {
	if (!jQuery('.boxAreaList')) {
		return false;
	}
	jQuery('.boxAreaList').find('.unitAreaList:nth-child(3n-1)').css({
		'margin': '0 18px'
	})
}

/**********************************************************
setMargin
--------
食べ歩きページのマージン調整
奇数番目の要素に「margin-right: 15px」を適用（101216追記）
@param / @return
**********************************************************/
Ramen.setMargin2 = function() {
	if (!jQuery('.boxEatWalk')) {
		return false;
	}
	jQuery('.boxEatWalk').find('.unitEatWalk:nth-child(odd)').css({
		'margin-right': '15px'
	})
}

/**********************************************************
達人のオススメナビ アコーディオン（110310追記）
**********************************************************/
jQuery.noConflict();
jQuery(document).ready(function($) {
	$("#Sub .shopIndex > dd").css("display","none");
	$("#Sub .shopIndex > dt").click(function(){
		$(this).next().slideToggle("slow");
    $(this).toggleClass('active');
		});
});
