function ASCBUtil()
{
	this.indexes = [];
	this.prices  = [];
	this.stocks  = [];
	
	this.currentSelectorNumber;
	
	this.bigbox_dif     = 30;
	this.stockMax       = 10;
	this.asGiftSet      = 0;
	this.selectorPrefix = 'variation';
	this.photodirPath   = '../itemphoto/';
}


ASCBUtil.prototype.changeOrderFormStates = function(cht)
{
	var sel = document.getElementById(this.selectorPrefix + cht);
	
	this.currentSelectorNumber = cht;
	this.indexes[cht]          = sel.selectedIndex;
	
	$.get('/selection/js/iteminfo.cgi', { tg : sel.value, as_set : this.asGiftSet },
			  function(data) {
				  util.internal_change_states(data);
			  }
		  );
}


ASCBUtil.prototype.internal_change_states = function(data)
{
	var info = eval(data);
	
	if (info) {
		this.prices[this.currentSelectorNumber] = info[0];
		this.stocks[this.currentSelectorNumber] = info[1];
		
		var i;
		var sum = 0;
		for (i=0; i<this.prices.length; i++) {
			sum += this.prices[i];
		}
		if (this.isBigBoxSet) {
			sum += this.bigbox_dif;
		}
		
		var stock = 9999;
		for (i=0; i<this.stocks.length; i++) {
			if (this.stocks[i] < stock) {
				stock = this.stocks[i];
			}
		}
		if (stock > this.stockMax) {
			stock = this.stockMax;
		}
		
		var obj = document.getElementById('price');
		obj.innerHTML = this.number_format(sum) + '円';
		
		var pane = document.getElementById('stockSelectPane');
		
		obj = document.getElementById('stockSelect');
		
		if (obj) {
			tmpstockselected = obj.selectedIndex + 1;
			pane.removeChild(obj);
		}
		else {
			pane.innerHTML = '';
		}
		
		var buttonpane = document.getElementById('submitButtonPane');
		var btn        = document.getElementById('cartSubmitButton');
		
		if (btn) {
			buttonpane.removeChild(btn);
		}
		else {
			buttonpane.innerHTML = '';
		}
		
		if (stock > 0) {
			obj = document.createElement('select');
			obj.id    = 'stockSelect';
			obj.name  = 'nums';
			obj.style.textAlign = 'right';
			
			if (tmpstockselected > stock) {
				tmpstockselected = stock;
			}
			for (i=1; i<=stock; i++) {
				var opt   = document.createElement('option');
				opt.value = i;
				if (i == tmpstockselected) {
					opt.selected = 'selected';
				}
				opt.innerHTML = i;
				
				obj.appendChild(opt);
			}
			
			pane.appendChild(obj);
			
			btn = document.createElement('input');
			btn.type  = 'submit';
			btn.value = 'カートに追加';
			btn.id    = 'cartSubmitButton';
			
			buttonpane.appendChild(btn);
		}
		else {
			pane.innerHTML       = '注文不可';
			buttonpane.innerHTML = 'お求めの商品は１〜２週間ほどで入荷いたします。<br />恐れ入りますが入荷まで今しばらくお待ちください。';
		}
		
		/* 商品情報（写真など）を変える */
		var name  = info[2];
		var photo = this.photodirPath + info[3];
		var desc  = info[4];
		
		document.getElementById('itemphoto' + this.currentSelectorNumber).src      = photo;
		document.getElementById('itemname' + this.currentSelectorNumber).innerHTML = name;
		document.getElementById('itemdesc' + this.currentSelectorNumber).innerHTML = desc;
	}
}

ASCBUtil.prototype.number_format = function(str)
{
	var num = new String(str).replace(/,/g, "");
	
	while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
	
	return num;
}


util = new ASCBUtil();

