//.rating
//  p.point
//  p.unit
//  a.operation-up
//  a.operation-down

(function() {
	
	/**
	 * インデザ用のポイントアップ・ダウン機能です。
	 */
	jQuery.fn.indezapoint = function(config) {
		
		/** 引数 */
		config = jQuery.extend({
			doneClass : "done"
		}, config);
		
		/** ポイント数 */
		var point = $("p.point", this);
		
		/** アップボタン */
		var upButton = $("a.operation-up", this);
		
		/** ダウンボタン */
		var downButton = $("a.operation-down", this);
		
		/** 既にポイントアップされているかどうか */
		var beenUp = upButton.hasClass(config.doneClass);
		
		/** 既にポイントダウンされているかどうか */
		var beenDown = downButton.hasClass(config.doneClass);
		
		/** ポイントアップします。 */
		var up = function() {
			if(!beenUp) {
				if(beenDown) {
					point.text(eval(point.text()) + 2);
				} else {
					point.text(eval(point.text()) + 1);
				}
			}
			beenUp = true;
			beenDown = false;
			upButton.addClass(config.doneClass);
			downButton.removeClass(config.doneClass);
		};
		
		/** ポイントダウンします。 */
		var down = function() {
			if(!beenDown) {
				if(beenUp) {
					point.text(eval(point.text()) - 2);
				} else {
					point.text(eval(point.text()) - 1);
				}
			}
			beenUp = false;
			beenDown = true;
			upButton.removeClass(config.doneClass);
			downButton.addClass(config.doneClass);
		};
		
		/** 実行関数 */
		function exec() {
			upButton.colorbox({transition:"erastic", width:"500", initialWidth:"500", initialHeight:"100", testFunc:function(){alert('hook!');}}, up);
			downButton.colorbox({transition:"erastic", width:"500", initialWidth:"500", initialHeight:"100"}, down);
		}
		
		//実行
		exec();
	};
	
}) (jQuery);

$(function() {
	$(".rating").each(function() {
		$(this).indezapoint({});
	});
});
