
// jQuery_Auto 0.9
// Automatic functions for webpages (using the wonderful jQuery library)

// Copyright: (c) 2006, Michal Tatarynowicz (tatarynowicz@gmail.com)
// Licenced as Public Domain (http://creativecommons.org/licenses/publicdomain/)
// $Id: jquery_auto.js 426 2006-05-06 19:54:39Z Michał $


// Initialization

$.auto = {
	init: function() {
		for (module in $.auto) {
			if ($.auto[module].init)
				$.auto[module].init();
		}

		$("#Menu").load("/common/includes/banner.html");

	}
};

$(document).ready($.auto.init);


// Auto-hidden elements
// JS オフ時には .noScriptのものが出る。

$.auto.hide = {
	init: function() {
		$('.Hide').hide();
	}
};


// Mouse hover

$.auto.hover = {

	init: function() {
		$('img.RollOver, img.RollOver, .Nav img')
			.bind('mouseover', this.enter)
			.bind('mouseout', this.exit)
			.each(this.preload);

		$('.Nav img.Current')
		.bind('mouseover', this.current)
		.bind('mouseout', this.current)
		.each( function() {
			this.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_on$2");
		});


	},

	preload: function() {
		this.preloaded = new Image;
		this.preloaded.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_on$2");
	},

	enter: function() {
		if ( this.src.indexOf("_on.") == -1 ) {;
			this.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_on$2");
		}
	},

	exit: function() {
		this.src = this.src.replace(/^(.+)_on(\.[a-z]+)$/, "$1$2");
	},

	current: function(){
		if ( this.src.indexOf("_on.") == -1 ) {;
			this.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_on$2");
		}
	}
};


// Auto-submitting SELECTs
// ボタンを押さなくてもいいやつ

$.auto.submit = {
	init: function() {
		$('SELECT.Submit').bind('change', this.on_change);
	},

	on_change: function() {
		if (this.value) this.form.submit();
	}
};


// Auto-selected text in text fields after a label click

$.auto.select = {
	init: function() {
		$('label.fieldSelect').each(this.label_action);
		$('input.fieldSelect').bind('click', function(){
			this.select();
		});
	},

	label_action: function() {
		var field = $('#'+this.htmlFor).get(0);
		if (field && field.focus && field.select) {
			$(this).bind('click', function(){ field.focus(); field.select(); });
		}
	}
};


$.auto.visible = {
	init: function() {
		$("input.FieldVisible")
			.bind("click", this.click)
			.bind("blur", this.blur);
		var value = this.value;
	},

	click: function() {
		this.value = "";
	},

	blur: function() {
		if ( this.value == "" ) {
			this.value = this.title;
		}
	}
};

$.auto.blank = {
	init: function() {
		$("a.Blank, a.blank").bind("click", function() {
			window.open( this.href, "_blank");
			return false;
		});
	}
};

// Switches tabs on click
// 選択中のタブは.Current

// Switches tabs on click
// 選択中のタブは.Active

$.auto.tabs = {

	init: function() {

		$('.Tabs').each(function(){
			var f = $.auto.tabs.click;
			var group = this;
			$('.TabMenu li, .Tab', group).each(function(){
				this.group = group;
				$(this).click(f);
				$('.TabContent').hide();
			}).filter(':first').trigger('click');
		});

	},

	click: function() {
		var tab = $('#'+this.rel+'Area').get(0);
		$('.TabMenu li, .Tab', this.group).each(function(){
			$('#'+this.rel+'Area').hide();
		});

		var CatArea = this.rel.replace(/Review_|Blog_/, "");

		$("#CatArea .Odd, #CatArea .Even").removeClass('Active');
		$("#CatArea #" + CatArea).addClass("Active");

		// アイコン画像差し替え
		$("#CatArea span.Icon img").each( function() {
			var Replace = this.src.replace(/^(.+)_on(\.[a-z]+)$/, "$1$2");
			this.src = Replace;
		});

		var Icon = $("#CatArea #" + CatArea + " span.Icon img");
		var Replace = Icon.attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_on$2");
		Icon.attr("src", Replace);

		$(tab).show();
		this.blur();

		return false;
	}

};


$.auto.tabs2 = {

	init: function() {

		$('.NormalTabs').each(function(){
			var f = $.auto.tabs2.click;
			var group = this;
			$('.NormalTab', group).each(function(){
				this.group = group;
				$(this).click(f);
				$('#'+this.rel+'Area').hide();
			}).filter(':first').trigger('click');
		});

	},

	click: function() {
		var tab = $('#'+this.rel+'Area').get(0);
		$('.NormalTab', this.group).each(function(){
//			$(this).removeClass('Active');
			$('#'+this.rel+'Area').hide();
		});
		
//		$(this).addClass('Active');
		$(tab).show();
		this.blur();

		return false;
	}

};

$.auto.toggle = {
	init: function() {
		$(".Toggle")
			.bind( "click", this.click)
			.each(this.cookie);
	},

	cookie : function() {
		if ( $.cookie(this.rel) == "O") {
			$(this).html("開く");
			$(this).removeClass("Close");
			$(this).addClass("Open");
			$("#" + this.rel + " .Body").hide();
		} else if ( $.cookie(this.rel) == "C") {
			$(this).html("閉じる");
			$(this).removeClass("Open");
			$(this).addClass("Close");
			$("#" + this.rel + " .Body").show();
		}
	},

	click: function() {
		var status = $.cookie(this.rel);

		if ( $(this).html() == "閉じる") {
			$(this).html("開く");
			$(this).removeClass("Close");
			$(this).addClass("Open");
			status = "O";
		} else if ( $(this).html() == "開く") {
			$(this).html("閉じる");
			$(this).removeClass("Open");
			$(this).addClass("Close");
			status = "C";
		}

		$("#" + this.rel + " .Body:visible").slideUp("normal");
		$("#" + this.rel + " .Body:hidden").slideDown("normal");

		$.cookie(this.rel, status, {expires:30, path:'/'});

		return false;
	}
};





