//グローバル変数の定義
var ajax;				//HTTP通信用オブジェクト
var timerId;			//HTTP通信用タイマーオブジェクト
var timeout_sec = 20;	//HTTP通信タイムアウト秒数

//---------------------------------------------------
//４：フォームデータをPOSTメソッドでCGIに送信する
//---------------------------------------------------
function postData(item_no){
		var form_id = 'item_'+item_no;
		objForm = document.getElementById(form_id);
	try{
		
		//送信ボタンを無効にする
		voidBtnElementsByName('btn_cart');
		
		//フォーム入力値を取得
		var item_no = objForm.item_no.value;
		var cart_item_cost = objForm.cart_item_cost.value;
		var cart_item_cnt = objForm.cart_item_cnt.value;
		if(objForm.application_no_TEK){
			var application_no_TEK = objForm.application_no_TEK.value;
		}
		//POST用データに変換
		var post_data;
		post_data = 'item_no=' + encodeURIComponent(item_no);
		post_data = post_data + '&cart_item_cost=' + encodeURIComponent(cart_item_cost);
		post_data = post_data + '&cart_item_cnt=' + encodeURIComponent(cart_item_cnt);
		if(application_no_TEK){post_data = post_data + '&application_no_TEK=' + encodeURIComponent(application_no_TEK);}
		//POST先のCGIのURL
		var target_url = './?m=pc_shop&a=page_cart_dummy';

		//HTTP通信を開始し、完了したらpintResData関数を実行させる
//		httpPostRequest(target_url, post_data, printResData);
		var myAjax = new Ajax.Request(
			target_url, 
			{
				method: 'post', 
				parameters: post_data, 
				onComplete: printResData
			});
		
	}catch(e){
		alert(e.message);
		return false;
	}
//	alert('postData is success');
}

//---------------------------------------------------
//４’：フォームデータをPOSTメソッドでCGIに送信する(商品詳細トップ用)
//---------------------------------------------------

function postDataForTopForm(item_no){
		var form_id = 'top_item_'+item_no;
		objForm = document.getElementById(form_id);
	try{
		
		//送信ボタンを無効にする
		voidBtnElementsByName('btn_cart_top');
		
		//フォーム入力値を取得
		var item_no = objForm.item_no.value;
		var cart_item_cost = objForm.cart_item_cost.value;
		var cart_item_cnt = objForm.cart_item_cnt_top.value;
		if(objForm.application_no_TEK){
			var application_no_TEK = objForm.application_no_TEK.value;
		}
		//POST用データに変換
		var post_data;
		post_data = 'item_no=' + encodeURIComponent(item_no);
		post_data = post_data + '&cart_item_cost=' + encodeURIComponent(cart_item_cost);
		post_data = post_data + '&cart_item_cnt=' + encodeURIComponent(cart_item_cnt);
		if(application_no_TEK){post_data = post_data + '&application_no_TEK=' + encodeURIComponent(application_no_TEK);}
		//POST先のCGIのURL
		var target_url = './?m=pc_shop&a=page_cart_dummy';

		//HTTP通信を開始し、完了したらpintResData関数を実行させる
//		httpPostRequest(target_url, post_data, printResData);
		var myAjax = new Ajax.Request(
			target_url, 
			{
				method: 'post', 
				parameters: post_data, 
				onComplete: printResData
			});
		
	}catch(e){
		alert(e.message);
		return false;
	}
//	alert('postData is success');
}

//---------------------------------------------------
// ４”：カートをもう一度表示する(ヒストリバック対応)
//---------------------------------------------------
function reloadCart(){
	//	var form_id = 'top_item_'+item_no;
	//	objForm = document.getElementById(form_id);

	try{
		
		//送信ボタンを無効にする
		voidBtnElementsByName('btn_cart');
		voidBtnElementsByName('btn_cart_top');

		//POST用データに変換
		var post_data = '';

		//POST先のCGIのURL
		var target_url = './?m=pc_shop&a=page_cart_reload';

		//HTTP通信を開始し、完了したらpintResData関数を実行させる
//		httpPostRequest(target_url, post_data, printResData);
		var myAjax = new Ajax.Request(
			target_url, 
			{
				method: 'post', 
				parameters: post_data, 
				onComplete: printResDataWithoutImage
			});
		
	}catch(e){
		alert(e.message);
		return false;
	}
//	alert('postData is success');
}

//---------------------------------------------------
//５：引数に与えられたURLにHTTPリクエストを行い、指定された関数を実行
//---------------------------------------------------
function httpPostRequest(target_url, post_data, callback){
	try{
		if(window.XMLHttpRequest){
			ajax = new XMLHttpRequest();
		}else if(window.ActiveXObject){
		    try {
		        ajax = new ActiveXObject("Msxml2.XMLHTTP");
		    } catch(e) {
		        ajax = new ActiveXObject("Microsoft.XMLHTTP");
		    }
		}
		
		if(!ajax){
			ajaxGenerateFail();
		}
		
		//タイマーをセット
		timerId = setInterval('timeoutCheck()',timeout_sec);
		
		//POST送信準備
		ajax.open('POST', target_url, true);
	
		ajax.onreadystatechange = function(){
			if(4==ajax.readyState){
				clearInterval(timerId);
				if(200==ajax.status){
					callback(ajax.responseText);
				}else{
					alert(ajax.status + ':' + ajax.statusText);
					return false;
				}
			}
		}
	
		//POSTデータを送信
//		alert(post_data);
		ajax.send(post_data);
	}catch(e){
		alert(e.message);
		return false;
	}
//	alert('httpPostRequest');
}

//---------------------------------------------------
//６：サーバから受信したデータを表示するファンクション
// 半角英数のみ利用可能。2バイト文字列は不可
//---------------------------------------------------
function printResData(_data){
	var text_data = _data.responseText;

	//受信したテキストデータを行ごとに配列に格納する
	var lines = text_data.split("\n");	

	//データを画面上に挿入する
	var i;
	var message_flg = false;
	try{
		for (i = 0; i < lines.length; i++) {
			var parts = lines[i].split("\t");
			var name = parts[0];
			var value = parts[1];
		
			switch(name){
				case "total_cost":
					document.getElementById('total_cost').innerHTML=value;
				    break;
				case "total_cnt":
					document.getElementById('total_cnt').innerHTML=value;
				    break;
				case "cart_message":
					message_flg = true;
					document.getElementById('cart_message').innerHTML=value;
				    break;
			}
	
		}
		//送信ボタンを有効にする
		validBtnElementsByName('btn_cart');
		validBtnElementsByName('btn_cart_top');

		// カートメッセージ表示
		if ( !message_flg ) {
			document.getElementById('cart_entry_msg').innerHTML = '<img src="./skin/shop_images/pc/cart_message.gif" />';
		}
		else {
			document.getElementById('cart_entry_msg').innerHTML = '<img src="./skin/shop_images/pc/cart_error.gif" />';
		}
		document.getElementById('cart_entry_msg').style.display = '';
		window.scrollTo(0, 0);

	}catch(e){
		alert(e.message);
	}
//	alert('printResData');
}

//---------------------------------------------------
//６’：サーバから受信したデータを表示するファンクション(画像は表示しない)
//---------------------------------------------------
function printResDataWithoutImage(_data){
	var text_data = _data.responseText;

	//受信したテキストデータを行ごとに配列に格納する
	var lines = text_data.split("\n");	

	//データを画面上に挿入する
	var i;
	var message_flg = false;
	try{
		for (i = 0; i < lines.length; i++) {
			var parts = lines[i].split("\t");
			var name = parts[0];
			var value = parts[1];
		
			switch(name){
				case "total_cost":
					document.getElementById('total_cost').innerHTML=value;
				    break;
				case "total_cnt":
					document.getElementById('total_cnt').innerHTML=value;
				    break;
				case "cart_message":
					message_flg = true;
					document.getElementById('cart_message').innerHTML=value;
				    break;
			}
	
		}
		//送信ボタンを有効にする
		validBtnElementsByName('btn_cart');
		validBtnElementsByName('btn_cart_top');

		// カートメッセージ表示
		/*
		if ( !message_flg ) {
			document.getElementById('cart_entry_msg').innerHTML = '<img src="./skin/shop_images/pc/cart_message.gif" />';
		}
		else {
			document.getElementById('cart_entry_msg').innerHTML = '<img src="./skin/shop_images/pc/cart_error.gif" />';
		}
		document.getElementById('cart_entry_msg').style.display = '';
		window.scrollTo(0, 0);
		*/

	}catch(e){
		alert(e.message);
	}
//	alert('printResData');
}

//---------------------------------------------------
//XMLHttpRequestオブジェクト生成に失敗した場合の処理
//---------------------------------------------------
function ajaxGenerateFail(){
	alert('ajaxを生成できません。');
}

//---------------------------------------------------
//HTTPタイムアウト処理
//---------------------------------------------------
function timeoutCheck(){
//	alert('timeoutCheck');
}
