////////////////////////////////////////////////////////////////////////////////
//■グローバル変数
	var objAjax = new AjaxRequest();
	var ClickedElement;		//押下されたボタンのelement
	var objAmazonDS = Array();		//
	var AccessComplete_IntervalHandler;






////////////////////////////////////////////////////////////////////////////////
//●AjaxアクセスComplete時にsetIntervalで起動する関数（AWS規約準拠とCGI実行時間軽減措置）
	//引数operateは登録元で直前に指定している
	function AccessCompleteHandler(url){
		clearInterval( AccessComplete_IntervalHandler );
		AccessComplete_IntervalHandler = false;
		objAjax.SendRequest(url, true);
		//objAjax.SendRequest("GET",  url, true);
	}





////////////////////////////////////////////////////////////////////////////////
//■AmazonDS処理関連
//●更新ボタン押下
	function ClickAmazonDSQuery(ele, asin){
		if( !objAjax.session_reserved && !objAmazonDS["operate"] ){
			objAmazonDS["operate"] = "start_statistical";
			objAmazonDS["asinlist"] = asin;

			//var progress_ele = document.getElementById("progress_gauge");
			//progress_ele.innerHTML = "0 ％";

			var progress_status_ele = document.getElementById("progress_status");
			progress_status_ele.innerHTML = "loading ...";

			//ClickedElement = ele;
			//ClickedElement.src = "/img/review_loading.gif";
			//window.status = "AmazonDS Loading ... 0％";

			objAjax.CompletedTrigger = AmazonDSOperate_StartComplete;
			objAjax.SendRequest("/process/method_send_amazonds.php?operate=" + objAmazonDS["operate"] + "&asin=" + objAmazonDS["asinlist"], true);
			//objAjax.SendRequest("GET",  "/process/method_send_amazonds.php?operate=" + objAmazonDS["operate"] + "&asin=" + objAmazonDS["asinlist"], true);
		}
	}

//●
	AmazonDSOperate_StartComplete = function(){
		objAmazonDS["operate"] = "continue_statistical";
		objAjax.CompletedTrigger = AmazonDSOperate_ContinueComplete;
		AccessComplete_IntervalHandler = setInterval('AccessCompleteHandler("/process/method_send_amazonds.php?operate=" + objAmazonDS["operate"]);', 1000);
	}

//●
	AmazonDSOperate_ContinueComplete = function(){
		//・load結果 operateの取得
		var separate_start = 0;
		var separate_end = objAjax.body.indexOf("\n", separate_start);
		var next_operate = objAjax.body.substr(separate_start, separate_end-separate_start);

		var progress_ele = document.getElementById("progress_gauge");
		var progress_status_ele = document.getElementById("progress_status");

		//・アクセスエラー
		if( next_operate=="error" ){
			separate_start = separate_end + 1;
			separate_end = objAjax.body.indexOf("\n", separate_start);
			var error_status = objAjax.body.substr(separate_start, separate_end-separate_start);

			objAmazonDS["operate"] = false;

			//ここで集計終了のDOM出力を行う
			//ClickedElement.value = "error" + error_status.toString(10);
			//ClickedElement.src = "/img/review_update.gif";
			progress_status_ele.innerHTML = "load error.";
			//window.status = "AmazonDS Load Error";
		}
		//・集計
		else if(next_operate=="go conitnue" || next_operate=="end"){
			//var progress_ele = document.getElementById("review_loading_progress");
			progress_status_ele.innerHTML = "loading ...";


			//load結果
			separate_start = separate_end + 1;
			separate_end = objAjax.body.indexOf("\n", separate_start);
			var current_page = objAjax.body.substr(separate_start, separate_end-separate_start);
			current_page = parseInt(current_page);
	
			separate_start = separate_end + 1;
			separate_end = objAjax.body.indexOf("\n", separate_start);
			var page_max = objAjax.body.substr(separate_start, separate_end-separate_start);
			page_max = parseInt(page_max);
	
			var echo_string = "";
			var result_counter = 0;
			var star_param = Array();

			while( (echo_string != "eof") && (result_counter < 50) ){
				//progress_ele.innerHTML = echo_string;
				separate_start = separate_end + 1;
				separate_end = objAjax.body.indexOf("\n", separate_start);
				star_param[result_counter] = objAjax.body.substr(separate_start, separate_end-separate_start);
				result_counter++;
			}

			//集計途中のDOM出力を行う
			for(result_counter = 0; result_counter < star_param.length; result_counter++){
				//load結果、パラメータの取得
				starparam_start = 0;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var asin = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var star_num = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				star_num = parseInt(star_num);

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var review_max = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				review_max = parseInt(review_max);

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var param_num = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				param_num = parseInt(param_num);

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var param_base = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				param_base = parseInt(param_base);

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var param_recommend = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				param_recommend = parseInt(param_recommend);

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var param_summary = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				//if(param_summary != ""){ param_summary = decodeURIComponent(param_summary) }
				if(param_summary != ""){ param_summary = param_summary.urldecode() }

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var param_name = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				//if(param_name != ""){ param_name = decodeURIComponent(param_name) }
				if(param_name != ""){ param_name = param_name.urldecode() }

				starparam_start = starparam_end + 1;
				starparam_end = star_param[result_counter].indexOf("/", starparam_start);
				var param_content = star_param[result_counter].substr(starparam_start, starparam_end-starparam_start);
				//if(param_content != ""){ param_content = decodeURIComponent(param_content) }
				if(param_content != ""){ param_content = param_content.urldecode() }

				//DOM更新
					var ele;
					var gauge_tmp;
					var ratio_tmp;
				//全レビューの投稿数
					ele = document.getElementById("dss_review_total_" + asin);
					if( ele ){
						ele.innerHTML = review_max.toString(10);
					}
				//★の投稿総数
					ele = document.getElementById("dss_s" + star_num.toString(10) + "reviewnum_" + asin);
					if( ele ){
						ele.innerHTML = "（" + param_num.toString(10) + "）";
					}
				//★レビュー総数割合ゲージ
					ele = document.getElementById("dss_s" + star_num.toString(10) + "review_" + asin);
					if( ele ){
						gauge_tmp = review_max==0 ? 0 : Math.ceil(param_num * 120 / review_max);;
						if( gauge_tmp==0 ){ gauge_tmp = 1; }
						ratio_tmp = review_max==0 ? 0 : Math.ceil(param_num * 100 / review_max);;
						ele.style.width = gauge_tmp.toString(10) + "px";
						ele.alt = ratio_tmp.toString(10) + "％";
					}
				//★参考にした人の総数割合ゲージ
					ele = document.getElementById("dss_s" + star_num.toString(10) + "recommend_" + asin);
					if( ele ){
						gauge_tmp = param_base==0 ? 0 : Math.ceil(param_recommend * 120 / param_base);;
						if( gauge_tmp==0 ){ gauge_tmp = 1; }
						ratio_tmp = param_base==0 ? 0 : Math.ceil(param_recommend * 100 / param_base);;
						ele.style.width = gauge_tmp.toString(10) + "px";
						ele.alt = ratio_tmp.toString(10) + "％";
					}
				//★参考にした人の割合についての詳細数値
					ele = document.getElementById("dss_s" + star_num.toString(10) + "propaty_" + asin);
					if( ele ){
						ele.innerHTML = "（" + param_recommend.toString(10) + "/" + param_base.toString(10) + "）"
					}
				//★参考にした人のレビューの冒頭数文字
					ele = document.getElementById("dss_s" + star_num.toString(10) + "summary_" + asin);
					if( ele && (param_summary != "") ){
					//	ele.title = param_summary + "\n\n" + param_content + "\n\n" + param_name;
						ele.title = param_summary;
						ele.innerHTML = param_summary.substr(0, 10);
						if( param_summary.length > 10 ){
							ele.innerHTML += "...";
						}
					}
			}

			//集計進捗の更新
			//var progress_ele = document.getElementById("review_loading_progress");
			//集計途中の場合次のaccessを登録
			if( next_operate=="go conitnue" ){
				AccessComplete_IntervalHandler = setInterval('AccessCompleteHandler("/process/method_send_amazonds.php?operate=" + objAmazonDS["operate"]);', 1000);
				update_progress_gauge(progress_ele, current_page, page_max, 200);
				var load_completed_page = current_page;
				if( load_completed_page <= 0 ){ load_completed_page = 0; }
				var progress_ratio = ((page_max==0) ? 0 : Math.floor(load_completed_page * 100 / page_max));
				progress_ele.innerHTML = progress_ratio.toString(10) + " ％";
			}
			//集計終了
			else{
				objAmazonDS["operate"] = false;
				//ここで集計終了のDOM出力を行う
			//	ClickedElement.src = "/img/review_update.gif";
			//	if( current_page > page_max ){
					update_progress_gauge(progress_ele, page_max, page_max, 200);
			//	}else{
			//		update_progress_gauge(progress_ele, current_page, page_max, 200);
			//	}
				progress_status_ele.innerHTML = "";
				progress_ele.innerHTML = "complete";
			}
		}
	}

