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