var nation, sid='', idid='', tid='', basemark, baserate, ratenum, sortary=[], tcount=0, language=getCookie("amazon_language");
var selfurl = location.href.replace(/#top/g, '') + "#top";
	function loadFirst(id, si, ti, nn1, jdq) {
		if(nn1) {
			nation = nn1;
			setCookie("amazon_nation", nn1);
			EchoTitle(jdq);
			if(!id && !si) {
				narray = Ncode(0);
				baserate = (nation!='jp') ? rates[narray[nation][3]] : 1;
				ratenum = (nation!='jp') ? 2 : 0;
				var s = Shipping(nation, baserate);
				$('shipping').innerHTML = '<table><tr><th>' + L("SHIPPING1") + '</th><th colspan="2">' + L("SHIPPING2") + '</th><th colspan="2">' + L("SHIPPING3") + '</th><th colspan="2">' + L("SHIPPING4") + '</th></tr>' + s + '</table>';
				return;
			}
		}else {
			nation = getCookie("amazon_nation");
		}
		idid = id;
		sid = si;
		tid = ti;
		sortary = new Array();
		var xx = [];
		narray = Ncode(0);
		basemark = narray[nation][2];
		baserate = (nation!='jp') ? rates[narray[nation][3]] : 1;
		ratenum = (basemark!='&yen;') ? 2 : 0;
		for(var izz in narray) {
			xx.push([izz, narray[izz][0], narray[izz][3]]);
		}
		EchoTitle();
		var si = (si) ? "&si=" + encodeURIComponent(si) : "";
		si += (ti) ? "&t_result=" + encodeURIComponent(ti) : "";
		var furl = "./xml/?id=" + encodeURIComponent(id) + si + "&nation=";
		$('lists').innerHTML = "<p class=\"box\"><img src=\"./img/load.gif\" alt=\"load\" /> Now Loading...</p>";
		for(var i=0; i<6; i++) {
			$('a_' + i).style.height = "200px";
			loadFile(furl + xx[i][1], i, xx[i][0], xx[i][2]);
		}
	}
	function loadFile(furl, i, nt, d5) {
		var hObj = createXMLHttpRequest();
		if(hObj) {
			if(i!='best') {
				var nb = narray[nt];
				var rate = (nb[2]!='&yen;') ? rates[d5] : 1;
				rate = (basemark!='&euro;') ? rate : rate/100;
				$('a_' + i).innerHTML = "<p><img src=\"./img/load.gif\" alt=\"load\" /> Now Loading...</p>";
				$('h_' + i).innerHTML = pAmazonH2(nt, nb, d5, rate);
			}else {
				$('lists').innerHTML = "<p><img src=\"./img/load.gif\" alt=\"load\" /> Now Loading...</p>";
			}
			hObj.open("GET", furl, true);
			hObj.onreadystatechange = function() { 
				setTimeout(function() {
  				if(hObj.readyState == 0 || hObj.readyState == 4) {
						return;
					}
					hObj.abort();
					return NotFile(i, 1);
				}, 15000);
				if(hObj.readyState==4) {
					var t = hObj.responseText;
					if(!t || t.substr(0,10)!='{"item":[[') {
						return NotFile(i, 2);
					}
					var data = eval("(" + t + ")");
					if(data==null || !data) {
						return NotFile(i, 3);
					}
					if(i!='best') {
						$('a_' + i).innerHTML = pAmazon(data, nt, rate, nb);
						TcountJd();
					}else {
						$('lists').innerHTML = pBest(data);
					}
				}
			}
			hObj.send(null);
		}
	}
	function pBest(data) {
		var dx = data.item[0][0].split("/");
		for(var i=0; i<5; i++) {
			$('mx' + i).className = 'bestmenu';
		}
		$('mx' + data.item[0][1]).className = 'bestmenu1';
		$('mtitle').innerHTML = L("BESTSELLER") + r(dx[language]);
		var tmp = [];
		for(var i=1; i<data.item.length; i++){
			tmp.push('<div class="best">' + data.item[i][1] + '<a href="./?id=' + WordClean(data.item[i][0]) + '&amp;si=' + r(dx[0]) + '" class="ni">' + r(data.item[i][0]) + '</a></div>');
		}
		return tmp.join("") + '<p style="clear:left;">by Amazon.com</p>';
	}
	function NotFile(num, l) {
		if(num!='best') {
			TcountJd();
			$('a_' + num).innerHTML = "<p style=\"margin:10px\">Not Found.</p>";
			$('a_' + num).style.height = "auto";
		}else {
			$('lists').innerHTML = "<p style=\"margin:10px\">Not Found.</p>";
		}
	}
	function Ncode(id) {
		var na = narray, na2 = {};
		if(id==1) {
			return na;
		}
		na2[nation] = na[nation];
		delete na[nation];
		for(var izz in na) {
			na2[izz] = na[izz];
		}
		return na2;
	}
	function pAmazon(data, nt, rate, nb) {
		var tmp = [], top, pp, more, pq;
		for(var i=0; i<data.item.length; i++){
			var imgs = r(data.item[i][0]);
			var title = r(data.item[i][1]);
			var url = r(data.item[i][2]);
			if(data.item[i][3]==data.item[i][4] || !data.item[i][4]) {
				pq = data.item[i][3];
				more = '<span class="price">' + nb[2] + r(data.item[i][3] + ' ' + data.item[i][5]) + '</span>';
			}else {
				pq = data.item[i][4];
				more = '<span class="price">' + nb[2] + r(data.item[i][4] + ' ' + data.item[i][5]) + '</span> (<span class="not">' + nb[2] + r(data.item[i][3]) + '</span>)';
			}
			pp = PriceEcho(pq, rate, baserate);
			top = '<div class="sp"><img src="./img/' + nb[1] + '.gif" alt="' + nb[1] + '" /> ' + basemark + number_format(pp) + '</div>';
			more += (data.item[i][8]) ? '<div class="b_' + (data.item[i][7]*10) + '">&nbsp;</div>(' + number_format(data.item[i][8]) + ')' : '';
			var search = (data.item[i][5]=='JPY' || data.item[i][5]=='EUR') ? '' : '<a href="./?id=' + WordClean(title) + '&amp;si=' + encodeURIComponent(sid) + '" title="' + L("SEARCH1") + '`' + r(data.item[i][1]) + '`' + L("SEARCH2") + '" class="ni"><img src="./img/search.png" alt="search" /> ' + L("SEARCH") + '</a>';
			tmp.push('<div class="box">' + top + '<a href="' + url + '" target="_blank"><img src=' + imgs + ' alt="[IMG]" class="img" /></a><p>' + r(data.item[i][6]) + '</p>' + search + '<p style="clear:both;"><a href="' + url + '" class="out" target="_blank">' + title + '</a><br />' + more + '</p></div>');
			sortary.push([nt, pp, title, url, imgs, basemark, data.item[i][6], pq, ShippingFee(nt)]);
		}
		return tmp.join("");
	}
	function pAmazonH2(nt, nb, d5, rate) {
		var rate2 = rate / baserate;
		rate2 = (nb[2]!='&euro;') ? rate2 : rate2*100;
		var addrate = (rate2==1) ? '' : ' <span>(' + nb[2] + '1 ' + d5 + ' = ' + basemark + number_format(rate2.toFixed(3)) + ' ' + narray[nation][3] + ') </span>';
		var at = (nation!=nt) ? ['<a href="' + selfurl + '" onclick="return loadFirst(\'' + r(idid) + '\', \'' + r(sid) + '\', \'' + r(tid) + '\', \'' + r(nt) + '\', 1);" onkeypress="return loadFirst(\'' + r(idid) + '\', \'' + r(sid) + '\', \'' +r(tid) + '\', \'' + r(nt) + '\', 1);" title="' + L("CH_NT1") + '`' + nb[5] + '`' + L("CH_NT2") + '">', '</a>'] : ['', ''];
		return at[0] + '<img src="./img/' + nb[1] + '.gif" alt="' + nb[1] + '" />' + at[1] + ' <a href="http://www.amazon.' + nb[0] + '/gp/redirect.html?location=http%3A%2F%2Fwww.amazon.' + nb[0] + '%2F&tag=amazon-public-count-22" class="niout" target="_blank">Amazon.' + nb[0] + '</a>' + addrate + ' &nbsp; <span><img src="./img/fee.gif" alt="fee" /> ' + L("SHIPPING5") + ' : ' + narray[nation][2] + ShippingFee(nt) + L("SHIPPING6") + '</span>';
	}
	function pListSort(k, jx) {
		var x = sortary, tmp = [], page = [], search, fee, ads;
		if(jx==1) {
			x.sort(function(a, b) {return parseFloat(a[1])+parseFloat(a[8])-parseFloat(b[1])-parseFloat(b[8]);});
			ads = '<a href="' + selfurl + '" onclick="return pListSort(0, 0);" onkeypress="return pListSort(0, 0);" class="b">*' + L("SHIPPING7") + '</a>';
		}else {
			x.sort(function(a, b) {return a[1]-b[1];});
			ads = '<a href="' + selfurl + '" onclick="return pListSort(0, 1);" onkeypress="return pListSort(0, 1);" class="b">*' + L("SHIPPING8") + '</a>';
		}
		var jy = (jx==1) ? ['<span class="s1">', '</span>'] : ['', ''];
		var jz = (jx==0) ? ['<span class="s1">', '</span>'] : ['', ''];
		var l = x.length;
		var len = (l<10+k) ? l : 10+k;
		for(var i=k; i<len; i++) {
			var nb = narray[x[i][0]];
			search = (nb[3]=='JPY' || nb[3]=='EUR') ? '' : ' <a href="./?id=' + WordClean(x[i][2]) + '&amp;si=' + encodeURIComponent(sid) + '" title="' + L("SEARCH1") + '`' + r(x[i][2]) + '`' + L("SEARCH2") + '" class="ni"><img src="./img/search.png" alt="search" /></a> ';
			tmp.push('<div class="sr"><img src="./img/' + nb[1] + '.gif" alt="' + nb[1] + '" /> ' + jy[0] + x[i][5] + number_format(x[i][1]) + jy[1] + jz[0] + "(" + x[i][5] + number_format((parseFloat(x[i][1])+parseFloat(x[i][8])).toFixed(ratenum)) + L("SHIPPING6") + ')' + jz[1] + '<span class="price"> ' + nb[2] + x[i][7] + ' ' + nb[3] + '</span></div><a href="' + x[i][3] + '" target="_blank" class="out"><img src=' + r(x[i][4]) + ' alt="[IMG]" class="img" />' + r(x[i][2]) + '</a><br />' + r(x[i][6]) + search + '<br /><img src="./img/fee.gif" alt="fee" /> ' + x[i][5] + ShippingFee(x[i][0]) + '-');
		}
		var t = tmp.join(""), prev='', next='';
		switch(t) {
		case '' :
			$('lists').innerHTML = 'Not Found.';
			break;
		default :
			for(var j=0; j<l/10; j++) {
				var p = (k==j*10) ? '<strong>' + (j+1) + '</strong> ' : '<a href="' + selfurl + '" onclick="return pListSort(' + (j*10) + ', \'' + jx + '\');" onkeypress="return pListSort(' + (j*10) + ', \'' + jx + '\');" title="P.' + (j+1) + '">' + (j+1) + '</a> ';
				page.push(p);
			}
			if(k!=0) {
				prev = ' <a href="' + selfurl + '" onclick="return pListSort(' + (k-10) + ', \'' + jx + '\');" onkeypress="return pListSort(' + (k-10) + ', \'' + jx + '\');" title="' + L("PREVPAGE") + '" class="b">' + L("PREV") + '</a> ';
			}
			if(k<l-10) {
				next = ' <a href="' + selfurl + '" onclick="return pListSort(' + (k+10) + ', \'' + jx + '\');" onkeypress="return pListSort(' + (k+10) + ', \'' + jx + '\');" title="' + L("NEXTPAGE") + '" class="b">' + L("NEXT") + '</a> ';
			}
			$('lists').innerHTML = '<p>' + ads + '<br />' + L("SEARCH3") + ' ' + (k+1) + ' - ' + i + ' of ' + l + '</p>' + tmp.join("") + '<p style="clear:both; margin-top:15px;" />' + prev + page.join("") + next + '</p>';
		}
		return;
	}
	function PriceEcho(val, rate, baserate) {
		return (String(val).replace(',', '') * rate / baserate).toFixed(ratenum);
	}
	function Shipping(nation, baserate) {
		var xx = [], rate;
		for(var izz in narray) {
			rate = (narray[izz][2]!='&yen;') ? rates[narray[izz][3]] : 1;
			rate = (narray[izz][2]=='&euro;') ? rate : rate/100;
			rate = (narray[nation][2]!='&euro;') ? rate*100 : rate;
			xx.push('<tr>');
			xx.push('<td style="text-align:left;"><img src="./img/' + narray[izz][1] + '.gif" alt="' + narray[izz][1] + '" /> <a href="http://www.amazon.' + narray[izz][0] + '/gp/help/customer/display.html/?nodeId=' + narray[izz][8] + '" class="niout" target="_blank">Amazon.' + narray[izz][0] + '</a></td>');
			xx.push('<td class="b">' + narray[nation][2] + PriceEcho(narray[izz][6], rate, baserate) + '</td>');
			xx.push('<td class="price">' + narray[izz][2] + narray[izz][6] + ' ' + narray[izz][3] + '</td>');
			xx.push('<td class="b">' + narray[nation][2] + PriceEcho(narray[izz][7], rate, baserate) + '</td>');
			xx.push('<td class="price">' + narray[izz][2] + narray[izz][7] + ' ' + narray[izz][3] + '</td>');
			xx.push('<td class="strong">' + narray[nation][2] + PriceEcho(parseFloat(narray[izz][6])+parseFloat(narray[izz][7]), rate, baserate) + ' ' + narray[nation][3] + '</td>');
			xx.push('<td class="price">' + narray[izz][2] + (parseFloat(narray[izz][6])+parseFloat(narray[izz][7])) + ' ' + narray[izz][3] + '</td>');
			xx.push('</tr>');
		}
		return xx.join("");
	}
	function ShippingFee(nt) {
		rate = (narray[nt][2]!='&yen;') ? rates[narray[nt][3]] : 1;
		rate = (narray[nt][2]=='&euro;') ? rate : rate/100;
		rate = (narray[nation][2]!='&euro;') ? rate*100 : rate;
		return PriceEcho(parseFloat(narray[nt][6])+parseFloat(narray[nt][7]), rate, baserate);
	}
	function TcountJd() {
		tcount++;
		if(tcount==6) {
			tcount = 0;
			pListSort(0, 0);
		}
	}
	function WordClean(id) {
		id = String(id).replace("  ", " ").replace("&", " ").replace(/\'|,|\.|\+|\(|\)|&#39;/g, '');
		return encodeURIComponent(id);
	}
// http://d.hatena.ne.jp/j7400157/20080324/1206365545
var timer_id, source;
	function timerTranslate() {
		try {
			clearTimeout(timer_id)
		}catch(e) {
		}
		source = $("t_source").value;
		if(CheckLength(source, 1)==false) {
			$("t_result").value = '';
			return;
		}
		$("t_result").value = L("TRANSLATION") + "...";
		timer_id = setTimeout("translate()", 2000);
	}
google.load("language", "1");
	function translate() {
		google.language.translate(source, "ja", "en", function(result) {
			if(result.error) {
				return;
			}
			$("t_result").value = result.translation;
		});
	}
// http://www.kanaya440.com/contents/tips/javascript/007.html
	function CheckLength(str, flg) {
		for(var i=0; i<str.length; i++) {
			var c = str.charCodeAt(i);
			if((c>=0x0 && c<0x81) || (c==0xf8f0) || (c>=0xff61 && c<0xffa0) || (c>=0xf8f1 && c<0xf8f4)) {
				if(!flg) {
					return true;
				}
			}else {
				if(flg) {
					return true;
				}
			}
		}
		return false;
	}
	function clearForm() {
		var v = document.forms[0].elements;
		v[0].value = '';
		v[1].selectedIndex = 0;
		v[4].value = '';
		return;
	}
	function getCookie(key) {
		var key = key + "=", val = null;
		var str = document.cookie + ";" ;
		var ofst = str.indexOf(key);
		if(ofst != -1) {
			var start = ofst + key.length;
			var end = str.indexOf(";" , start);
			val = unescape(str.substring(start, end));
		}
		return val;
	}
	function setCookie(key, val) {
		var nd = new Date();
		nd.setTime(nd.getTime()+1000*60*60*24*30);
		var text = key + "=" + escape(val) + ";";
		text += "expires=" + nd.toGMTString() + "; path=/;";
		document.cookie = text;
		return;
	}
	function number_format(i, s) {
		return String(i).replace(/[0-9]+/gm, function(chr) {
			var k, cnt=0, n="";
			for(k=chr.length-1; k>=0; k--) {
				n = chr.charAt(k) + n;
				cnt++;
				if(!(cnt%3) && k) {
					n = "," + n;
				}
			}
			return n;
		});
	}
	function EchoTitle(jdq){
		if(jdq) {
			$("messe2").innerHTML = L("CH_NT1") + '`' + narray[nation][5] + '`' + L("CH_NT2") + '<img src="./img/' + narray[nation][1] + '.gif" alt="' + narray[nation][1] + '" />';
			$("messe2").style.display = "block";
			setTimeout(function() {
				$("messe2").innerHTML = '';
				$("messe2").style.display = "none";
			}, 2000);
		}
		$('messe').innerHTML = L("CURRENCY") + ' : ' + narray[nation][2] + ' (' + narray[nation][3] + ') <img src="./img/' + narray[nation][1] + '.gif" alt="' + narray[nation][1] + '" />';
	}
	function L(s){
		var json = {
"BESTSELLER":["Best Seller ","ベストセラー："],
"CH_NT1":["Change country to ", ""],
"CH_NT2":["", "に国と通貨を変更する"],
"CURRENCY":["Current Currency", "現在の通貨"],
"NEXTPAGE":["Next Page","次のページ"],
"NEXT":["Next","次へ"],
"PREVPAGE":["Prev Page","前のページ"],
"PREV":["Prev","前へ"],
"SEARCH":["Search","検索"],
"SEARCH1":["Search for ",""],
"SEARCH2":["","で検索する"],
"SEARCH3":["Results","検索結果"],
"SHIPPING1":["Shipping Help page","送料の説明ページ"],
"SHIPPING2":["Per Shipment","配送料"],
"SHIPPING3":["Per Item","手数料"],
"SHIPPING4":["Total Fee","配送料＋手数料"],
"SHIPPING5":["Shipping Fee","送料"],
"SHIPPING6":["-","～"],
"SHIPPING7":["Del Shipping Fee","送料を除外してソート"],
"SHIPPING8":["Add Shipping Fee","送料を加味してソート"],
"TRANSLATION":["Translation","翻訳中"],
"xx":["English","日本語"]
		};
		return json[s][language];
	}
// http://ablog.seesaa.net/article/33686378.html
	function r(s){
		if(!s) return "";
		return String(s).replace(/([<>&\"])/gm, function(m0, m1) {
			return {'<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;'}[m1];
		});
	}
	function t(s){
		return String(s).replace("'", "\\'");
	}
// http://allabout.co.jp/internet/javascript/closeup/CU20050515A/
	function createXMLHttpRequest(){
		if(window.ActiveXObject){
			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			}catch(e) {
				try {
					return new ActiveXObject("Microsoft.XMLHTTP");
				}catch (e2) {
					return null;
				}
			}
		}else if(window.XMLHttpRequest) {
			return new XMLHttpRequest();
		}else {
			return null;
		}
	}
// document.getElementById
	function $(tagId) {
		return document.getElementById(tagId);
	}
