// カテゴリ内の他の商品
GMD.OtherCatalogs = function(param){
	var limit  = param.limit || 5;
	var offset = param.offset || (param.currentPosition -  (param.currentPosition-1)%limit -1);
	var region = param.region || $('#sideOtherCatalogs');
	var imageForNoimage = 'images/default_icon/noimage_s.gif';

	var currentid = param.currentid || '';
//	var parentid  = param.parentid || '';
	
	if (region.length == 0) return;

	var container  = region.find('ul.siblings');
	var prev       = region.find('ul.skip li.prev');
	var next       = region.find('ul.skip li.next');
	var controller = [next, prev];
	var imagePath  = '';
	var maximum    = region.find('.maximum');
	var display    = {
		'begin' : region.find('.begin'),
		'end'   : region.find('.end')
	}
	var type = '';


	// 枠を用意し、ローディング画像を埋め込み
	container.append([
		'<li>',
			'<div class="loading"></div>',
		'</li>'
	].join(''));

	// 実体を取得
	$.getJSON(constructUrl(param,limit,offset), null, function(data) {
		maximum.html(data['result']['count']);
		offset = data['result']['offset'];
		limit = data['result']['limit'];
		show(data);
		$.each(controller, function(){$(this).bind('click', data, controll)});
	});

	function reget(o, l){
		container.html([
			'<li>',
				'<div class="loading"></div>',
			'</li>'
		].join('')).animate({'opacity':1}, 'fast');

		$.getJSON(constructUrl(param,limit,offset), null, function(data) {
			maximum.html(data['result']['count']);
			offset = data['result']['offset'];
			limit = data['result']['limit'];
			show(data);
			$.each(controller, function(){$(this).bind('click', data, controll)});
		});
	}


	// 接続先URLをパラメータを付与して作成するfunction
	function constructUrl(param,limit,offset){
		var paramstring = [];
		if(param.type != null){ paramstring.push('t='+param.type); }
		if(param.volumeid != null){ paramstring.push('vid='+param.volumeid); }
		if(param.categoryid != null){ paramstring.push('cid='+param.categoryid); }
		if(param.searchCondition != null){ paramstring.push('sc='+param.searchCondition); }
		if(param.sortKey != null){ paramstring.push('sk='+param.sortKey); }
		if(param.sortOrder != null){ paramstring.push('so='+param.sortOrder); }
		if(param.designId != null){ paramstring.push('did='+param.designId); }
		if(param.designConfirmFlag != null){ paramstring.push('dcf='+param.designConfirmFlag); }

		paramstring.push('o='+offset);
		paramstring.push('l='+limit);

		paramstring = paramstring.join('&');

		return 'getOtherCatalogList.json?'+paramstring;
	}


	// 取得したデータを表示するfunction
	function show(data, o, l) {
		var o = o || offset;
		var l = l || limit;

		if (o < 0) return;
		if (o > data['result']['count']) return;
		
		var content = [];
		for (i = 0; data['result']['articles'].length > i; i++) {
			if(currentid == data['result']['articles'][i].id){
			// 現在詳細に表示している商品の場合
				if( data['result']['articles'][i]['image'] != '' ){
				// メイン画像がある場合
					content.push([
						'<li class="current"><img src="' + imagePath + data['result']['articles'][i]['image'] + '" alt="" />',
//						'<span>' + data['result']['articles'][i]['name'] + '</span></li>'
						'<span class="name">' + data['result']['articles'][i]['name'] + '</span></li>'
					].join(''));
				} else {
				// メイン画像がない場合
					content.push([
						'<li class="current"><span class="noImageSmall"/>',
						'<span class="name">' + data['result']['articles'][i]['name'] + '</span></li>'
					].join(''));
				}
			}else{
			// 他の商品の場合
				if( data['result']['articles'][i]['image'] != '' ){
				// メイン画像がある場合
					content.push([
						'<li><a href="' + data['result']['articles'][i]['link'] + '"><img src="' + imagePath + data['result']['articles'][i]['image'] + '" alt="" />',
						'<span class="name">' + data['result']['articles'][i]['name'] + '</span></a></li>'
					].join(''));
				} else {
				// メイン画像がない場合
					content.push([
						'<li><a href="' + data['result']['articles'][i]['link'] + '"><span class="noImageSmall"/>',
						'<span class="name">' + data['result']['articles'][i]['name'] + '</span></a></li>'
					].join(''));
				}
			}
		}
		content = content.join('');
		
		(o == 0) ? prev.addClass('disabled') : prev.removeClass('disabled');
		
		if ((o + l) < data['result']['count']) {
			var end = o + l;
			next.removeClass('disabled');
		} else {
			var end = data['result']['count'];
			next.addClass('disabled');
		}
		
		display['begin'].html(o + 1);
		display['end'].html(end);

		// 読み込んだデータを反映(ローディング部分は置き換えることで除去)
		container.html(content).animate({'opacity':1}, 'fast');

		// カスタマイズjs(Ajax後)の内容を適用
		GMD.Custom.postProcessForShowCatalogSideArticles(container);
	}

	// ページング部分の制御用function
	function controll(event) {
		var data = event.data;
		var isNext = $(this).hasClass('next');
		if (offset > 0) var movable = true; 
		offset = (isNext) ? offset + limit : offset - limit;
		if (offset < 0) {
			offset = 0;
			if (!movable) return;
		} else if (offset >= data['result']['count']) {
			offset = offset - limit;
			return;
		}
		container.animate({'opacity':0}, 'fast', null, function(){reget(offset,limit)});
	}
}



$(function() {
	switch(gmdSideOtherCatalogListType){
		case 'c':
			new GMD.OtherCatalogs({designId:gmdDesignId, designConfirmFlag:gmdDesignConfirmFlag, volumeid:gmdVolumeId, currentid:gmdCurrentIdItemId, categoryid:gmdCategoryId, currentPosition:gmdCurrentPositionInResult, sortKey:gmdSortKey, sortOrder:gmdSortOrder, type:gmdSideOtherCatalogListType});
			break;
		case 'mc':
			new GMD.OtherCatalogs({designId:gmdDesignId, designConfirmFlag:gmdDesignConfirmFlag, volumeid:gmdVolumeId, currentid:gmdCurrentIdItemId, categoryid:gmdCategoryId, currentPosition:gmdCurrentPositionInResult, sortKey:gmdSortKey, sortOrder:gmdSortOrder, type:gmdSideOtherCatalogListType});
			break;
		dafault:
			new GMD.OtherCatalogs({designId:gmdDesignId, designConfirmFlag:gmdDesignConfirmFlag, volumeid:gmdVolumeId, currentid:gmdCurrentIdItemId, currentPosition:gmdCurrentPositionInResult, type:'c'});
			break;
	}
});

