function YsAd(param) {

	var api_base;
	var api_param_particular;

	var req_param = param.query;
	var api_param = {
		appid: req_param.appid,
		affiliate_id: req_param.affiliate_id,
		affiliate_type: 'vc'
	};

	switch(param.api){
		case 'itemSearch':
			api_base = {
				url: 'http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch',
				drawMethod: (param.draw_method != undefined) ? param.draw_method : YsAd.drawDefaultItemSearch
			}
			api_param_particular = {
				store_id: req_param.store_id,
				query: req_param.query,
				availability: 1,
				hits: req_param.hits
			};
			break;


		default:
			alert('invalid api');
			return;
	}
	$.extend(api_param, api_param_particular);

	//call jsonp on jQuery
	$.ajax({
		url: api_base.url,
		data: api_param,
		dataType: 'jsonp',
		jsonp: 'callback',
		complete: function(){
		//通信終了時の処理
		},
		success: function(data, status){
		//通信が成功した場合の処理 (コールバック関数)
				YsAd.drawResult(req_param, data, api_base.drawMethod);
		},
		beforeSend: function(){
		//通信開始時の処理
		},
		error: function(){
		//通信が失敗した場合の処理
		}
	});

}


YsAd.limitStr = function(value, max) {
	var ret = value;
	if (value.length > max) {
		ret = value.substring(0, max) + '...';
	}
	return ret;
}

YsAd.drawResult = function(req_param, result, drawMethod) {
	if ((result.ResultSet.totalResultsReturned > 0) && (req_param.hits > 0)) {
		req_param.affiliate_id.match(/sid%3D(\d+)%26pid%3D(\d+)/);
		var sid = RegExp.$1;
		var pid = RegExp.$2;
		var vc_ad_tag = '<img Src="http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=' + sid + '&pid=' + pid + '" height="1" width="1" Border="0">';
		var vc_footer_link = '<a class="footer" href="http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=' + sid + '&pid=' + pid + '" target="_blank">Ads by Yahoo!ショッピング</a>';
		var vc_more_url = 'http://store.shopping.yahoo.co.jp/yoshimoto-shop/search.html?p=' + encodeURIComponent(req_param.query);
		var vc_more_link = '<a class="footer" href="http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=' + sid + '&pid=' + pid + '&vc_url=' + encodeURIComponent(vc_more_url) + '" target="_blank">もっと見る</a>';
		var ad = drawMethod(req_param, result.ResultSet, vc_ad_tag, vc_footer_link, sid, pid,vc_more_link);
		$('#' + req_param.targetid).html(ad);
	}
}

YsAd.drawDefaultItemSearch = function(req_param, result_set, vc_ad_tag,vc_footer_link, sid, pid,vc_more_link) {
	var ad = '';
	ad += '<table id="ads_ranking" cellpadding="0" cellspacing="0">';
	ad += '<tr><th colspan="2" class="item_title_ranking_first">よしもとネットショップ 最新情報</th></tr>';
	var cnt = (result_set.totalResultsReturned < req_param.hits) ? result_set.totalResultsReturned : req_param.hits;
	for (var i = 0; i < cnt; i++) {
		var item = result_set[0].Result[i];
		ad += '<tr class="item">';

		//image
		ad += '<td class="item_ranking">';
		ad += '<a class="yad" href="' + item.Url +'" target="_blank"><img class="adimg_ranking" width="54" height="54" src="' + item.Image.Small + '"></a>';
		ad += vc_ad_tag;
		ad += '</td>';

		//text
		ad += '<td class="item_ranking">';
		ad += '<div class="item_desc_ranking">';
		ad += '<a class="yad" href="' + item.Url +'" target="_blank">' + YsAd.limitStr(item.Name, 40) + '</a>';
		ad += '</div>';
		ad += '</td>';
		ad += '</tr>';
	}
	//footer
	ad += '<tr><td class="footer_more" colspan="2">' + vc_more_link + '<td></tr>';
	ad += '<tr><td class="footer_type1" colspan="2">' + vc_footer_link + '<td></tr>';
	ad += '</table>';
	return ad;
}



