
//ロード直後の初期設定
function myLoad()	{
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");	//一覧表示用
	xmlhttp2 = new ActiveXObject("Microsoft.XMLHTTP");	//詳細表示用

	myForm.myInput.focus();	//キーワード用テキストフィールドにフォーカス
	myForm.myInput.select();	//キーワードを選択
}


//一覧表示用
function getXML(myStr) {
	myArea.innerHTML = "検索中。しばらくお待ちください。";
	var proxy_url = "koazegawa.cgi";
	var request = proxy_url + "?" + myStr;
	xmlhttp.open("GET",request,true);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			myArea.innerHTML = xmlhttp.responseText;
				if(myArea.innerText == "Internal Error")	{
					myArea.innerHTML = "エラー発生したので再検索中。しばらくお待ちください。";
					getXML_for_error();
				}
		}
	}
    xmlhttp.send(null);

}


//一覧表示用（Internal Error発生時の再検索用）
//Internal Errorが発生したら検索用URIの末尾に「?ランダムの数値」を付け、
//キャッシュが効かないようにして再検索するようにした
function getXML_for_error()	{
	today = new Date();
	var random_str = today.getSeconds();
	var proxy_url = "koazegawa.cgi";
	var request_for_error = proxy_url + "?" + str + "?" + random_str;
	xmlhttp.open("GET",request_for_error,true);
    xmlhttp.onreadystatechange = function() {
       if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			myArea.innerHTML = xmlhttp.responseText;
			if(myArea.innerText == "Internal Error")	{
				myArea.innerHTML = "再検索の結果もエラーでした。申し訳ありません。";
//				getXML_for_error();
			}
		}
	}
    xmlhttp.send(null);
}


//詳細表示用
function getXML2(myStr) {
	detailArea.innerHTML = "検索中。しばらくお待ちください。";
	var proxy_url = 'koazegawa.cgi';
	var request = proxy_url + '?' + myStr;
	xmlhttp2.open('GET',request,true);
    xmlhttp2.onreadystatechange = function() {
        if (xmlhttp2.readyState == 4 && xmlhttp2.status == 200) {
			detailArea.innerHTML = xmlhttp2.responseText;
				if(detailArea.innerText == "Internal Error")	{
					detailArea.innerHTML = "エラー発生したので再検索中。しばらくお待ちください。";
					getXML2_for_error();
				}
		}
	}
    xmlhttp2.send(null);
}

//詳細表示用（Internal Error発生時の再検索用）
//Internal Errorが発生したら検索用URIの末尾に「?ランダムの数値」を付け、
//キャッシュが効かないようにして再検索するようにした
function getXML2_for_error()	{
	today2 = new Date();
	var random_str = today2.getSeconds();
	var proxy_url = "koazegawa.cgi";
	var request_for_error = proxy_url + "?" + str_detail + "?" + random_str;
	xmlhttp2.open("GET",request_for_error,true);
    xmlhttp2.onreadystatechange = function() {
       if (xmlhttp2.readyState == 4 && xmlhttp2.status == 200) {
			detailArea.innerHTML = xmlhttp2.responseText;
			if(detailArea.innerText == "Internal Error")	{
				detailArea.innerHTML = "再検索の結果もエラーでした。申し訳ありません。";
//				getXML2_for_error();
			}
		}
	}
    xmlhttp2.send(null);
}


//一覧結果取得用
var str = "";
var searchStr = "";		//検索文字
var categoryStr = "";	//検索カテゴリー
function makeSearch(myPage)	{
	str = "";
	searchStr = myForm.myInput.value;
	categoryStr = myForm.mySelect.options[myForm.mySelect.options.selectedIndex].value;
	if(searchStr != "")	{
		str += "http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=0WWVCRDHJ289V2GBAHR2&AssociateTag=makoto3net-22&Version=2005-03-23&Operation=ItemSearch&ItemPage=" + myPage + "&SearchIndex=";
		str += categoryStr;
		str += "&Keywords=";
		str += encodeURI(searchStr);
		str += "&ResponseGroup=Medium&ContentType=text/html&Style=http://www.makoto3.net/cgi-bin/koazegawa/koazegawa.xsl";
		getXML(str);
	} else	{
		alert("キーワードを入力してください");
	}
}

//詳細結果取得用
var str_detail = ""
function showDetail(asin_code)	{
	str_detail = "";
	str_detail = "http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=0WWVCRDHJ289V2GBAHR2&AssociateTag=makoto3net-22&Version=2005-03-23&Operation=ItemLookup&ItemId=" + asin_code + "&ResponseGroup=Small,ItemAttributes,Images,Reviews,SalesRank&ContentType=text/html&Style=http://www.makoto3.net/cgi-bin/koazegawa/koazegawadetail.xsl";
	getXML2(str_detail);
}

//キーボードによる検索処理
//typeof演算子で、nextButtonがオブジェクトとして
//定義されていないかを調べる。
//オブジェクトだと文字列"object"
//未定義だと文字列"undefined"
//オブジェクトが削除されると文字列"unknown"になる(いったんobjectになったあと削除された場合)。
//検索文字列か変化したかどうかもチェックする

function nextSearch()	{
	if(event.keyCode == 13 && event.shiftKey == false)	{
		if(myForm.myInput.value == searchStr && categoryStr == myForm.mySelect.options[myForm.mySelect.options.selectedIndex].value)	{	//検索文字と検索カテゴリーが変化してない場合
			if(typeof nextButton == "undefined")	{	//nextButtonが未定義(初回)
				myForm.myButton.click();
			} else if(typeof nextButton == "object"){
				nextButton.click();
			}
		} else	{	//検索文字が変化した場合
			myForm.myButton.click();
		}
	} else if(event.keyCode == 13 && event.shiftKey == true)	{
		if(myForm.myInput.value == searchStr && categoryStr == myForm.mySelect.options[myForm.mySelect.options.selectedIndex].value)	{	//検索文字と検索カテゴリーが変化してない場合
			if(typeof backButton == "object"){
				backButton.click();
			}
		} else	{	//検索文字が変化した場合
			myForm.myButton.click();
		}
	}
}


var jump_detail = ""
function jumpDetail(asin_code)	{
	jump_detail = "";
	jump_detail = "http://www.amazon.co.jp/exec/obidos/ASIN/" + asin_code + "/makoto3net-22/";
	window.open(jump_detail);
}


