/*******************************************
* 画像にonmouseoverで画像をズームアップ拡大
* 引数は４つ
* lgimg_id	：画像img要素を特定するid
* height	：画像の高さ
* width		：画像の横幅
* evt		：イベントオブジェクト(onmouseover)
*******************************************/

function imagePopupOn(lgimg_id, height, width, evt) {
	// 大きい画像のimg要素を取得
	var imgNode = document.getElementById(lgimg_id);
	imgNode.style.borderWidth = "1px";
	imgNode.style.zIndex = "2";
	
	// 表示ポジション
	imgNode.style.position = "absolute";
	var cx = evt.clientX;	// マウスのX座標
	var cy = evt.clientY;	// マウスのY座標

	// Safariの場合位置調整。
	// Safari3.1ではIE、FFと同じになってるので調整必要なし。
	/*
    if(navigator.userAgent.indexOf("Safari") >= 0) {
        cx -= scrollLeft();
		cy -= scrollTop();
    }
	*/
	
	// 基本の表示位置
	var x = cx + 50;
	var y = cy + 50;
	
	// x + 写真の幅、がウィンドウの幅を超えていたら左にずらす
	if (x + width > winWidth()) {
		x = winWidth() - width - 30;
	}
	// y + 写真の幅、がウィンドウの高さを越えていたら上にずらす
	if (y + height > winHeight()) {
		y = winHeight() - height - 30;
	}
	
	// x,y座標にスクロール位置の値を加え、表示位置決定
	imgNode.style.left = x + scrollLeft() + "px";	// 左右の位置を指定
	
	// マウスと表示位置が重なったらずらす
	if (x + scrollLeft() < cx) {
		imgNode.style.left = cx + 100 + "px";
	}
	imgNode.style.top = y + scrollTop() + "px";	//上下の位置を指定
	
	// マウス位置がウィンドウ幅の半分より大きい時は、写真をマウスの左側に表示
	if (cx > winWidth()/2) {
		imgNode.style.left = cx - width - 100 + "px";
	}
	
	/*
	// 写真の幅・高さを引数(デフォルトの大きさ)から設定し、表示する
	imgNode.width = width;
	imgNode.height = height;
	*/
	
	// 最初は写真の大きさ 0 に設定
	imgNode.width = 0;
	imgNode.height = 0;
	// 写真を表示
	imgNode.style.display = "block";
	
	// 徐々に拡大していく
	tmID = setInterval("zoomUp('" + lgimg_id + "', " + height + ", " + width + ")", 16);

}

// ズームアップ
function zoomUp(lgimg_id, height, width) {
	var imgNode = document.getElementById(lgimg_id);
	// 写真の現在の大きさを設定し、10分の１ずつ拡大
	imgNode.width += width/10;
	imgNode.height += height/10;
	
	// タイマー解除と実際の画像の大きさ設定
	if (imgNode.width >= (width - width/10) || imgNode.height >= (height - height/10)) {
		clearInterval(tmID);
		imgNode.width = width;
		imgNode.height = height;
	}
	
}

// 写真にmouseoutで拡大写真を非表示にする
function imagePopupOff(lgimg_id) {
	var imgNode = document.getElementById(lgimg_id);
	imgNode.style.display = "none";
}


/*******************************************
* レビューの詳細・簡易切り替えの関数
*******************************************/

// 「詳細なレビューを表示」をクリック
function reviewSwitchOn(count_id) {
	// 全てのレビューを表示する
	var div_s = document.getElementById('rev_blk_' + count_id);
	div_s.style.display = "block";
	
	// 「詳細なレビューを表示」を消して、「レビューを閉じる」を表示
	document.getElementById('rev_motto_' + count_id).style.display = "none";
	document.getElementById('rev_kesu_' + count_id).style.display = "block";
}

// レビューを閉じるをクリック
function reviewSwitchOff(count_id) {
	// 全てのレビューを非表示にする
	var div_s = document.getElementById('rev_blk_' + count_id);
	div_s.style.display = "none";
	
	// 「詳細なレビューを表示」を表示し、「レビューを閉じる」を消す
	document.getElementById('rev_motto_' + count_id).style.display = "block";
	document.getElementById('rev_kesu_' + count_id).style.display = "none";
}


/*******************************************
* フォーム検索
*******************************************/

// ページが読み込まれたら、初期化関数を設定
window.onload = init;

// イベントハンドラ登録のための初期化
function init() {
	// フォーム要素を取得し、イベントハンドラ登録
	if (document.getElementById('id_Keywords'))	{
		form_Keywords = document.getElementById('id_Keywords');	// テキストボックス
		form_Keywords.onkeypress = formKeypress;	// Enter,Returnなどが押された場合
	}
	if (document.getElementById('id_Submit')) {
		form_Submit = document.getElementById('id_Submit');	// サブミットボタン
		form_Submit.onclick = formSubmit; // サブミットボタンがクリックされた場合
	}
}

// テキストフィールドがプレス（Enter,Return）された場合
function formKeypress(evt) {
	// 入力された値を取得後、特殊文字を除去
	var siv_kp = document.getElementById('id_SearchIndex').value;
	var kwv_kp = document.getElementById('id_Keywords').value;
	//siv_kp = encodeURI(siv_kp);
	//kwv_kp = encodeURI(kwv_kp);

	if (!evt) evt = window.event;
	if (evt.keyCode == 13) {	// enter,returnがプレスされた場合
		// searchSubmit(SearchIndex, Keywords, ItemPage, Sort)を呼び出す
		searchSubmit(siv_kp, kwv_kp, 1);
		//document.location = 'http://amacheki.mapee.jp/s_k-t-m_' + siv_kp + '_k-t-m_' + kwv_kp + '_k-t-m_1.html';
	}
}

// フォームのSubmitボタンが押された場合
function formSubmit() {
	// 入力された値を取得後、特殊文字を除去
	var siv_s = document.getElementById('id_SearchIndex').value;
	var kwv_s = document.getElementById('id_Keywords').value;
	//siv_s = encodeURI(siv_s);
	//kwv_s = encodeURI(kwv_s);
	// searchSubmit(SearchIndex, Keywords, ItemPage, Sort)を呼び出す
	searchSubmit(siv_s, kwv_s, 1);
	//document.location = 'http://amacheki.mapee.jp/s_k-t-m_' + siv_s + '_k-t-m_' + kwv_s + '_k-t-m_1.html';
}



/**********************************
* Ajax制御の関数群
**********************************/

/**********************************
* カテゴリーメニューのブラウズ
* 引数は３つ（PHPに渡すパラメータ）
* TopBN			：トップレベルのブラウズノードに紐付けるキー
* BrowseNode	：カテゴリーのブラウズノード
* ItemPage		：ページID
* category.php?TopBN=●&BrowseNode=●&ItemPage=●
**********************************/

function categoryMenu(TopBN, BrowseNode, ItemPage, Sort) {
	// ローディング表示
	loading();
	
	// URIエンコード
	var TopBN = encodeURI(TopBN);
	var BrowseNode = encodeURI(BrowseNode);
	var ItemPage = encodeURI(ItemPage);
	var Sort = encodeURI(Sort);
	
	// Ajaxオブジェクト作成
	var xmlhttp = createXMLHttp();
	if (xmlhttp) {
		xmlhttp.onreadystatechange = gotData;
		// URL設定
		if (Sort != '') {
			var url = 'category.php?TopBN=' + TopBN + '&BrowseNode=' + BrowseNode + '&Sort=' + Sort + '&ItemPage=' + ItemPage;
		} else {
			var url = 'category.php?TopBN=' + TopBN + '&BrowseNode=' + BrowseNode + '&ItemPage=' + ItemPage;
		}
		// Ajax呼び出し処理
		xmlhttp.open("GET", url, true);
		xmlhttp.send(null);
	}
	
    // Ajax受信完了時のイベントハンドラ
    function gotData() {
        if (xmlhttp.readyState != 4) return;
        if (xmlhttp.status == 200) {
			// Ajax通信で受け取ったTextをAjax用レイヤーに表示
            var text = xmlhttp.responseText;
			var divLayer = document.getElementById('ajax_layer');
			divLayer.innerHTML = text;
		}
		// ローディングをOFF
		loadingOff();
	}
}


/**********************************
* 詳細ページへのリンク
* 引数は１つ（PHPに渡すパラメータ）
* Asin		：ASIN番号
* detail.php?Asin=●
**********************************/

function detailPage(Asin) {
	// ローディング表示
	loading();

	// URIエンコード
	var Asin = encodeURI(Asin);

	// Ajaxオブジェクト作成
	var xmlhttp = createXMLHttp();
	if (xmlhttp) {
		xmlhttp.onreadystatechange = gotData;
		// Ajax呼び出し処理
		var url = 'detail.php?Asin=' + Asin;
		xmlhttp.open("GET", url, true);
		xmlhttp.send(null);
	}
	
    // Ajax受信完了時のイベントハンドラ
    function gotData() {
        if (xmlhttp.readyState != 4) return;
        if (xmlhttp.status == 200) {
			// Ajax通信で受け取ったTextをAjax用レイヤーに表示
            var text = xmlhttp.responseText;
			var divLayer = document.getElementById('ajax_layer');
			divLayer.innerHTML = text;
		}
		// ローディングをOFF
		loadingOff();
	}
}


/**********************************
* 検索ページへのサブミット
* 引数は３つ（PHPに渡すパラメータ）
* SearchIndex	：サーチインデックスのキー
* Keywords		：入力されたキーワード
* ItemPage			：ページID
* search.php?SearchIndex=●&Keywords=●&ItemPage=●
**********************************/

function searchSubmit(SearchIndex, Keywords, ItemPage, Sort) {
	// ローディング表示
	loading();
	
	// URIエンコード。PEAR_Pagerに渡すとエラーが出るエンコード処理はHTML側で行う。
	var SearchIndex = encodeURI(SearchIndex);
	var Keywords = encodeURI(Keywords);
	var ItemPage = encodeURI(ItemPage);
	var Sort = encodeURI(Sort);
	
	// Ajaxオブジェクト作成
	var xmlhttp = createXMLHttp();
	if (xmlhttp) {
		xmlhttp.onreadystatechange = gotData;
		if (Sort != '') {
			var url = 'search.php?SearchIndex=' + SearchIndex + '&Keywords=' + Keywords + '&Sort=' + Sort + '&ItemPage=' + ItemPage;
		} else {
			var url = 'search.php?SearchIndex=' + SearchIndex + '&Keywords=' + Keywords + '&ItemPage=' + ItemPage;
		}
		// Ajax呼び出し処理
		xmlhttp.open("GET", url, true);
		xmlhttp.send(null);
	}
	
    // Ajax受信完了時のイベントハンドラ
    function gotData() {
        if (xmlhttp.readyState != 4) return;
        if (xmlhttp.status == 200) {
			// Ajax通信で受け取ったTextをAjax用レイヤーに表示
            var text = xmlhttp.responseText;
			var divLayer = document.getElementById('ajax_layer');
			divLayer.innerHTML = text;
		}
		// ローディングをOFF
		loadingOff();
	}
}


/**********************************
* ブログパーツ作成ページへのリンク
* 引数は１つ
* Asin		：ASIN番号
* detail.php?Asin=●
* Ajaxじゃないよ
**********************************/

function blogParts(Asin) {
	// 新しいウインドウに引数を渡す
	var Asin = encodeURI(Asin);
	var url = 'blogparts_setck.php?Asin=' + Asin;
    var newwin = window.open(url, 'blogparts', 'width=600, height=800, left=0, top=0, toolbar=no, location=yes, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, titlebar=no');
	newwin.focus();
}

/**********************************
* ローディング中の画像表示とOFF
**********************************/

// ローディング画像を表示し、Ajaxレイヤー非表示
function loading() {
    document.getElementById("nowLoad").style.display = 'block';
    html = '<img src="http://www.mapee.jp/images/loading.gif" alt="now loading align="absmiddle" /><br>Now Loading ...';
    document.getElementById("nowLoad").innerHTML = html;

    document.getElementById("ajax_layer").style.display = 'none';
    ajax_html = '';
    document.getElementById("ajax_layer").innerHTML = ajax_html;
}

// ローディング画像を非表示にして、Ajaxレイヤー表示
function loadingOff() {
    document.getElementById("nowLoad").style.display = 'none';
    html = '';
    document.getElementById("nowLoad").innerHTML = html;

    document.getElementById("ajax_layer").style.display = 'block';
}



