//ul.operation
//  li a.operation-save
//  li a.operation-discard

(function() {
	
	/**
	 * インデザ用のフォロー機能です。
	 */
	jQuery.fn.indezafollow = function(config) {
		
		/** 引数 */
		config = jQuery.extend({
			checkClass : "hidden"
		}, config);
		
		/** フォローボタン */
		var followButton = $("li.operation-follow a", this);
		
		/** フォロー解除ボタン */
		var dumpButton = $("li.operation-dump a", this);
		
		/** 保存されているかどうか */
		var followed = dumpButton.hasClass(config.checkClass);
		
		/** ポイントの表示領域 */
		var karmaArea = $('.karma', this.parent().parent());
		
		/** 初期化します。 */
		function init() {}
		
		/** フォローします。 */
		var follow = function() {
			followed = true;
			followButton.parent().addClass(config.checkClass);
			dumpButton.parent().removeClass(config.checkClass);
			if(karmaArea.hasClass("karma-superior")) {
				karmaArea.addClass("karma-superior-saved");
			} else if(karmaArea.hasClass("karma-supreme")) {
				karmaArea.addClass("karma-supreme-saved");
			} else {
				karmaArea.addClass("karma-saved");
			}
		};
		
		/** フォロー解除します。 */
		var dump = function() {
			followed = false;
			dumpButton.parent().addClass(config.checkClass);
			followButton.parent().removeClass(config.checkClass);
			karmaArea.removeClass("karma-saved");
			if(karmaArea.hasClass("karma-superior")) {
				karmaArea.removeClass("karma-superior-saved");
			} else if(karmaArea.hasClass("karma-supreme")) {
				karmaArea.removeClass("karma-supreme-saved");
			} else {
				karmaArea.removeClass("karma-saved");
			}
		};
		
		/** 実行関数 */
		function exec() {
			followButton.colorbox({transition:"erastic", width:"500", initialWidth:"500", initialHeight:"100"}, follow);
			dumpButton.colorbox({transition:"erastic", width:"500", initialWidth:"500", initialHeight:"100"}, dump);
		}
		
		init();
		exec();
	};
	
}) (jQuery);

$(function() {
	$("ul.operation").each(function() {
		$(this).indezafollow({});
	});
});
