/**
 * vent-vert.net
 * オリジナルコース作成
 */

var mermaid = false;
var newcourse_201104 = false;

$(function(){
	$('table.menulisttable img.select').mouseover(function(){
		$(this).css('opacity', 0.8);
	});
	$('table.menulisttable img.select').mouseout(function(){
		$(this).css('opacity', 1);
	});
	$('.attension_for_price').hide();
	$('#rest_price span').html('&yen;'+Cart.comma(MIN_PRICE));
	
	mermaid = (document.location.href.indexOf('mermaid.html')!=-1);
	
	// メニュー
	$('table.menulisttablemenu img.select').each(function(){
		for (var i=0; i<$('table.menulisttablemenu img.select').length; i++) {
			$(this).data('original_src', $(this).attr('src'));
			if ($(this).hasClass('menu-'+(i+1))) {
				$(this).data('menu', i+1);
				break;
			}
		}
	})
	.mousedown(function(){
		$(this).css('opacity', 0.6);
	})
	.mouseup(function(){
		$(this).css('opacity', 1);
		Cart.add($(this).data('menu'));
	});
	
});

var Cart = function(){
};

Cart.selectedMenu = [];

Cart.add = function(id) {
	var selected = false;
	for (var i=0; i<Cart.selectedMenu.length; i++) {
		if (Cart.selectedMenu[i].id==id) {
			Cart.selectedMenu[i].count++;
			selected = true;
			break;
		}
	}
	if (!selected) {
		var menu = MENU[id];
		menu.id = id;
		menu.count = 1;
		Cart.selectedMenu.push(menu);
	}
	Cart.updateDisplay();
};

Cart.remove = function(id){
	var selected = false;
	var newSelected = [];
	for (var i=0; i<Cart.selectedMenu.length; i++) {
		if (Cart.selectedMenu[i].id==id) {
			Cart.selectedMenu[i].count--;
			if (Cart.selectedMenu[i].count>0) {
				newSelected.push(Cart.selectedMenu[i]);
			}
		} else {
			newSelected.push(Cart.selectedMenu[i]);
		}
	}
	Cart.selectedMenu = newSelected;
	Cart.updateDisplay();
};

Cart.hasMenuAt = function(id){
	for (var i=0; i<Cart.selectedMenu.length; i++) {
		if (Cart.selectedMenu[i].id==id) {
			return true;
		}
	}
	return false;
};

Cart.updateDisplay = function(){
	var container = $('#carttable tbody');
	container.html('');
	var total_normal = 0;
	var total_discount = 0;
	// 合計がMIN_PRICEを超えているか確認
	var over = false;
	var tmpprice = 0;
	for (var i=0; i<Cart.selectedMenu.length; i++) {
		tmpprice += Cart.selectedMenu[i].price*Cart.selectedMenu[i].count;
		if (tmpprice>=MIN_PRICE) {
			over = true;
			break;
		}
	}
	// 割引適用による表示変更
	if (over) {
		$('span.discounted').show();
		$('#price_discount').addClass('discount_color');
	} else {
		$('span.discounted').hide();
		$('#price_discount').removeClass('discount_color');
	}
	// 計算
	for (var i=0; i<Cart.selectedMenu.length; i++) {
		var tr = '<tr>';
		tr += '<td class="title">'+Cart.selectedMenu[i].title+'</td>';
		tr += '<td class="price">&yen;'+Cart.comma(Cart.selectedMenu[i].price)+'</td>';
		tr += '<td class="count">'+Cart.comma(Cart.selectedMenu[i].count)+'</td>';
		if (over) {
			tr += '<td class="price discount">&yen;'+Cart.comma(Cart.selectedMenu[i].discount*Cart.selectedMenu[i].count)+'</td>';
			total_discount += Cart.selectedMenu[i].discount*Cart.selectedMenu[i].count;
		} else {
			tr += '<td class="price">&yen;'+Cart.comma(Cart.selectedMenu[i].price*Cart.selectedMenu[i].count)+'</td>';
			total_discount += Cart.selectedMenu[i].price*Cart.selectedMenu[i].count;
		}
		tr += '<td class="delete"><a href="javascript:Cart.remove('+Cart.selectedMenu[i].id+');">削除</a></td>';
		tr += '</tr>';
		container.append(tr);
		total_normal += Cart.selectedMenu[i].price*Cart.selectedMenu[i].count;
	}
	// マーメイドコースのみ
	if (mermaid && total_normal==126000) {
		total_discount = 94500;
	}
	$('#price_normal').html("&yen;"+Cart.comma(total_normal));
	$('#price_discount').html("&yen;"+Cart.comma(total_discount));
	var rest = MIN_PRICE-total_normal;
	if (rest<=0) {
		$('#rest_price').hide();
	} else {
		$('#rest_price').show();
		$('#rest_price span').html('&yen;'+Cart.comma(rest));
	}
	if (total_normal>MAX_PRICE) {
		$('.attension_for_price').slideDown();
	} else {
		$('.attension_for_price').slideUp();
	}
	
	$('table.menulisttablemenu img.select').each(function(){
		if (Cart.hasMenuAt($(this).data('menu'))) {
			$(this).removeClass('rollover');
			$(this).attr('src', $(this).data('original_src').split('_off').join('_selected'));
		} else {
			$(this).addClass('rollover');
			$(this).attr('src', $(this).data('original_src'));
		}
	});
};

Cart.comma = function(from){
	var to = String(from);
	var tmp = "";
	while (to != (tmp = to.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2"))){
		to = tmp;
	}
	return to;
}

Cart.getMenuInstance = function(menu) {
	var obj = {};
	obj.title = menu.title;
	obj.minutes = menu.minutes;
	obj.price = menu.price;
	obj.discount = menu.discount;
	return obj;
}
