//------------------------------
// MAIL MAGAZINE
//------------------------------

$(function(){
	
	$("form#form-host").submit(function() {
		if ( !checkShop() ) return false;
		if ( !checkEmail() ) return false;
		//thickbox
		var h = "?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=320&width=520";
		var title="メルマガ登録";
		tb_show(title,h,false);
		$("div#MAILMAG form").attr("target",$("div#TB_window iframe").attr("name"));
		return true;
	});
	
	//
	// Shop
	//
	
	function checkShop() {
		/*
		alert($("div#MAILMAG-SHOPS input[type=radio]").length);
		$("div#MAILMAG-SHOPS input[type=radio]").each(function(){
			alert(this.checked);
		});
		*/
		if ( !$("div#MAILMAG-SHOPS input[type=radio]:checked").length ) {
			alert("店舗を選択してください。");
			return false;
		}
		return true;
	}
	
	
	//
	// E-Mail
	//
	
	function checkEmail() {
		var $mail = $("div#MAILMAG-TEXT input");
		var v = $mail.val();
		if ( !v ) {
			alert("メールアドレスを入力してください。");
			$mail.get(0).focus();
			return false;
		}
		if ( !testEmail(v) ) {
			alert("メールアドレスが正しくありません。");
			$mail.get(0).focus();
			return false;
		}
		return true;
	}
	
	// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
	function testEmail(value) {
		return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
	}
	
	$("div#MAILMAG-TEXT input").focus(function(){
		if ( this.value == "メールアドレス" ) this.value = "";
		$(this).css("color","#fff");
	});
	
	$("div#MAILMAG-TEXT input").blur(function(){
		if ( this.value == "" ){
			this.value = "メールアドレス";
			$(this).css("color","#999");
		}
	});
});

//------------------------------
// shadowbox
//------------------------------
$(function(){
	$("div#ENTRY a").each(function(){
		if ( $(this).parent().hasClass("paging") ) return;
		if ( $("img",this).length ) {
			//$(this).addClass("thickbox");
			$(this).attr("rel","shadowbox");
		}
	});
});

//------------------------------
// paging
//------------------------------
$(function(){
	$("p.paging a").addClass("rollover");
	}
);

//------------------------------
// PAGETOP
//------------------------------


if ( !$.browser.msie || $.browser.version >= 6 ) {
	$(function(){
	
	
		var $pt;
		var $window = $(window);
		
		function init() {
			$("div#HEAD").after('<div id="PAGETOP"><a href="#"><span>ページトップへ</span></a></div>');
			$pt = $("div#PAGETOP");
			$pt.css("position","relative");
			$pt.css("top","-115px");
			onResize();
			$window.resize(onResize);
			$("#PAGETOP a").click(pageTop);
		}
		
		function pageTop() {
			$('html,body').animate({scrollTop: 0}, 300);
			this.blur();
			return false;
		}
		
		function onResize(){
			var r = $window.width() / 2 + 465;
			$pt.css("left",r+"px");
		}
		
		init();
	});

}



//------------------------------
// Navigation
//------------------------------
$(function(){
	var $window = $(window);
	var $document = $(document);
	var $head = $("div#HEAD-BG1");
	var $side = $("div#SIDE");
	var windowHeight = $window.height();
	var headMinTop = 115;
	var sideMaxTop = 0;
	var stLast = $window.scrollTop();
	var posFixed = false;

	
	function init() {
		$side.css("position","absolute");
		if ( !$.browser.msie || $.browser.version > 6 ) {
			$head.css("position","fixed");
			$window.scroll(onScroll);
			onScroll();
		} else {
			$window.scroll(onScrollForIE6);
			onScrollForIE6();
		}
		$window.resize(onResize);
		onResize();
	}
	
	function onResize() {
		$side.css("left","530px");
		sideMaxTop = $side.height() - $window.height();
		windowHeight = $window.height();
	}
	
	function onScrollForIE6() {
		var st = $window.scrollTop();
		if ( st > headMinTop ) {
			$head.css("top",st+"px");
		} else {
			$head.css("top",headMinTop+"px");
		}
		$head.css("top",(st+headMinTop)+"px");
		if ( st > sideMaxTop ) {
			$side.css("top",(st-sideMaxTop)+"px");
		} else {
			$side.css("top","0px");
		}
	}

	function onScroll() {
		var st = $window.scrollTop();
		if ( st > headMinTop ) {
			if ( !posFixed ) {
				posFixed = true;
				$head.css("position","fixed");
				$head.css("top","0px");
			}
		} else {
			if ( posFixed ) {
				posFixed = false;
				$head.css("position","absolute");
			}
			$head.css("top",headMinTop+"px");
		}
		
		var t = $side.offset().top;
		var max = st-sideMaxTop;
		if ( sideMaxTop < 0 || t > st-headMinTop ) {
			if ( st < headMinTop ) {
				$side.css("top","0px");
			} else {
				$side.css("top",st-headMinTop+"px");
			}
		} else if ( t < max ) {
			$side.css("top",(max)+"px");
		}
	}
	
	init();
});


//------------------------------
// Entry List
//------------------------------

$(function(){
	var pages = [];
	var page = 0;
	var totalPages = 0;
	var total = 0;
	var $recent = $("div#RECENT");
	var $prev = $("div#NAVI-PREV a");
	var $next = $("div#NAVI-NEXT a");
	var $window = $(window);
	var firstTime = true;
	
	function init() {
		load();
		$prev.click( function() { page--; load(); return false; } );
		$next.click( function() { page++; load(); return false; } );
		//rollover
		var img = new Image();
		img.src = "/images/side-thumbnail-over.gif";
	}
	
	function resetRollOver() {
		$("div#RECENT .entries a").hover(
			function() {
				$(this).prepend('<img class="side-thumbnail-over" src="/images/side-thumbnail-over.gif" width="140" height="65" style="position:absolute;" />');
			},
			function() {
				$(this).children("img.side-thumbnail-over").remove();
			}
		);
	}
	
	function showPage() {
		var html = "";
		for ( var i = 0; i < pages[page].length; i++ ) {
			html += pages[page][i];
		}
		$recent.hide();
		$recent.html(html);
		$recent.fadeIn(300);
		if ( !firstTime ) $("html,body").animate({ scrollTop:0 },500);
		$("div#NAVI-NEXT").css("margin-top","auto");
		$("div#NAVI-NEXT").css("margin-top",($recent.height() - 20)+"px");
		if ( totalPages > 1 ) {
			if ( page > 0 ) $prev.show();
			else $prev.hide();
			if ( page < totalPages - 1 ) $next.show();
			else $next.hide();
		} else {
			$next.hide();
			$prev.hide();
		}
		resetRollOver();
		$window.resize();
		firstTime = false;
	}
	
	
	function load() {
		if ( page < 0 ) page = 0;
		else if ( totalPages && page > totalPages - 1 ) page = totalPages - 1;
		if ( page < pages.length ) return showPage();
		
		//
		$recent.html('<img src="/images/ajax-loader.gif" width="24" height="24" style="margin-left:150px; margin-top:350px;" />');
		$prev.hide();
		$next.hide();
		
		//		
		var loadPage = pages.length;
		var url = "entries_"+(loadPage+1)+".xml";
		if ( loadPage == 0 ) url = "entries.xml";
		var h = document.location.href;
		var r = h.match(/\/(kobe|kyoto|shizuoka)\//);
		if ( r ) url = r[1]+"/"+url;
		$.ajax({
				type:"GET",
				url:"/"+url,
				dataType:"xml",
				success:onLoad
		});
	}
	
	function onLoad(xml) {
		if ( !total ) total = parseInt($("entries",xml).attr("total"));
		if ( !totalPages ) totalPages = Math.ceil(total/10);
		var entries = [];
		$("entry",xml).each(function(){
			var $this = $(this);
			var img_path = $this.attr("img_path");
			if ( img_path ) var img = '<img src="'+img_path+'" alt="" />';
			else var img = '<span>詳しく見る</span>	';
			var html = '<div class="entries"><a href="'+$this.attr("href")+'">'+img+'</a><div><span>'+$this.attr("date")+'</span><img src="/images/navi-'+$this.attr("categoryBasename")+'.gif" alt="'+$this.attr("categoryLabel")+'" /><p>'+$this.attr("title")+'</p></div></div>';
			entries.push(html);
		});
		pages.push(entries);
		load();
	}
	
	init();
});


//------------------------------
// SELECT
//------------------------------
$(function() {
    var shopSelect = 0;

	var timer;
	$( "div#MAILMAG-SHOPS div" ).hide();
	
	//
	$("p#MAILMAG-SELECT").click(onMouseOver);
	$("p#MAILMAG-SELECT").mouseout(onMouseOut);
	$("div#MAILMAG-SHOPS div").mouseover(onMouseOver);
	$("div#MAILMAG-SHOPS div").mouseout(onMouseOut);

	function onMouseOver() {
	   clearTimeout(timer);
		$("div#MAILMAG-SHOPS div" ).show();	
	}
	function onMouseOut() {
        clearTimeout(timer);
		timer = setTimeout( hideList, 300 );
	}
	function hideList() {
	   $( "div#MAILMAG-SHOPS div" ).hide();
	}
	
	
	//Shop
	$("#LABEL-KOBE").click(onKobeClick);
	$("#LABEL-KYOTO").click(onKyotoClick);
	$("#LABEL-SHIZUOKA").click(onShizuokaClick);
    
    
    function onKobeClick() {
        $("p#MAILMAG-SELECT").css("background-image","url(/images/mailmag-select-kobe.gif)");
        $( "div#MAILMAG-SHOPS div" ).hide();
        shopSelect = 1;
        var c = $("input#m_kobe").get(0);
        c.checked = !c.checked;
	}
	function onKyotoClick() {
        $("p#MAILMAG-SELECT").css("background-image","url(/images/mailmag-select-kyoto.gif)");
        $( "div#MAILMAG-SHOPS div" ).hide();
        shopSelect = 1;
        var c = $("input#m_kyoto").get(0);
        c.checked = !c.checked;
	}
	function onShizuokaClick() {
        $("p#MAILMAG-SELECT").css("background-image","url(/images/mailmag-select-shizuoka.gif)");
        $( "div#MAILMAG-SHOPS div" ).hide();
        shopSelect = 1;
        var c = $("input#m_shizuoka").get(0);
        c.checked = !c.checked;
	}
	
	//Check
	$("#MAILMAG-SBMT div input").click(shopCheck);
	function shopCheck() {
        if( shopSelect == 0){
            alert("error");
            return;
        }
	}
	
	
	
});