//==============================================================================
// 共通関数
//==============================================================================

// 廃止
//色をIDに変換
/*
function getColorId(data)
{
	switch(data){
		case EXCEL_GOLD:
			return ID_GOLD;
		case EXCEL_CHROM:
			return ID_CHROM;
		case EXCEL_SILVER:
			return ID_SILVER;
		case EXCEL_MILK:
			return ID_MILK;
		case EXCEL_CLEAR:
			return ID_CLEAR;
		case EXCEL_BLUE:
			return ID_BLUE;
		case EXCEL_WHITE:
			return ID_WHITE;
		case EXCEL_BLACK:
			return ID_BLACK;
		case EXCEL_DEN_WHITE:
			return ID_DEN_WHITE;
		case EXCEL_DEN_SILVER:
			return ID_DEN_SILVER;
		case EXCEL_DEN_BLACK:
			return ID_DEN_BLACK;
		case EXCEL_BLACKCHROM:
			return ID_BLACKCHROM;
		case EXCEL_DENCHAKU_WHITE:
			return ID_DENCHAKU_WHITE;
			
		default:
			return null;
	}
}
*/

/*
// 廃止
//詳細情報取得イベントを設定
function getBrandEvent(detailXmlObj, bid)
{
	var xmlName = '';
	
	switch(bid) {
		case 1:
			xmlName = 'xml/starDetailXml.php';
			detailXmlObj.onreadystatechange = getStarDetail;
			break;
		case 2:
			xmlName = 'xml/wiasDetailXml.php';
			detailXmlObj.onreadystatechange = getWiasDetail;
			break;
		case 3:
			xmlName = 'xml/picrDetailXml.php';
			detailXmlObj.onreadystatechange = getPicrDetail;
			break;
		case 4:
			xmlName = 'xml/posrDetailXml.php';
			detailXmlObj.onreadystatechange = getPosrDetail;
			break;
		case 5:
			xmlName = 'xml/pnlrDetailXml.php';
			detailXmlObj.onreadystatechange = getPnlrDetail;
			break;
		case 6:
			xmlName = 'xml/pppDetailXml.php';
			detailXmlObj.onreadystatechange = getPppDetail;
			break;
		case 7:
			xmlName = 'xml/wireDetailXml.php';
			detailXmlObj.onreadystatechange = getWireDetail;
			break;
		case 8:
			xmlName = 'xml/ptppDetailXml.php';
			detailXmlObj.onreadystatechange = getPtppDetail;
			break;
		case 9:
			xmlName = 'xml/spgsDetailXml.php';
			detailXmlObj.onreadystatechange = getSpgsDetail;
			break;
		case 10:
			xmlName = 'xml/sploDetailXml.php';
			detailXmlObj.onreadystatechange = getSploDetail;
			break;
		case 11:
			xmlName = 'xml/spalDetailXml.php';
			detailXmlObj.onreadystatechange = getSpalDetail;
			break;
		case 12:
			xmlName = 'xml/louvDetailXml.php';
			detailXmlObj.onreadystatechange = getLouvDetail;
			break;
		case 13:
			xmlName = 'xml/ceilDetailXml.php';
			detailXmlObj.onreadystatechange = getLouvDetail;
			break;
		case 14:
			xmlName = 'xml/wallDetailXml.php';
			detailXmlObj.onreadystatechange = getWallDetail;
			break;
		case 15:
			xmlName = 'xml/bootDetailXml.php';
			detailXmlObj.onreadystatechange = getBootDetail;
			break;
		case 16:
			xmlName = 'xml/handDetailXml.php';
			detailXmlObj.onreadystatechange = getHandDetail;
			break;
		case 17:
			break;
		case 18:
			break;
		case 19:
			break;
		case 20:
			break;
		case 21:
			break;
		case 22:
			break;
		case 23:
			break;
		case 24:
			break;
		default:
			alert('get error');
			break;
	}
	
	return xmlName;
}
*/

//検索結果取得
function getItem()
{
	getXmlValue(xmlHttp);
}

//ページの切り替え
function changePage()
{
	getXmlValue(xmlHttpPage, true);
}

//ページの読み込み
function searchLoad()
{	
	getXmlValue(xmlHttpLoad, detailFlg);
}

/*
 * ロード中画像を表示
 *
 */
function showLoadingImg() {
	
	var result = document.getElementById("result"); //サムネイル一覧
	result.innerHTML = '<center><img src="/image/loading.gif"></center>';
}

/*
 * ページャーを作成する
 *
 * @param  string curpage 現在ページ
 * @param  string maxpage 全ページ数
 * @return string result  ページャータグ
 */
function makePager(curpage, maxpage) {
	
	//var dispStart = parseInt(curpage) - 4;
	
	curpage = parseInt(curpage);
	
	//表示ページ数
	var dispCnt = 9; 
	
	// 開始ページ
	var dispStart = curpage - parseInt(dispCnt / 2);
	
	var end = 0;
	
	// 不正値の処理
	if ( parseInt(maxpage) < 1 ) return '&nbsp;';
	if ( dispStart < 1 ) dispStart = 1;
	
	end = dispStart + dispCnt;
	
	// 表示開始位置をずらす
	for ( var i = dispStart; i < end; i++ ) {
		if ( i > maxpage ) dispStart--;
	}
	
	if ( dispStart < 1 ) dispStart = 1;
	
	// 先頭ページ
	var result = '<font size="2"><a title="最初のページへ" href="#pankz" onClick="PagerClicked(1)"><<先頭へ&nbsp;</a>';
	
	// 中ページ
	for ( var i = dispStart; i < end; i++ ) {
		
		// 最大数以上のページは表示しない
		if ( i > maxpage ) break;
		
		result += '&nbsp;|&nbsp;';
		
		// 現在ページはリンクにしない
		if ( i == curpage ) {
			result += '<strong>&nbsp;' + i + '&nbsp;</strong>';
		} else {
			result += '<a href="#pankz" onClick="PagerClicked(' + i + ')">&nbsp;' + i + '&nbsp;</a>';
		}
	}
	
	result += '&nbsp;|&nbsp;';
	
	// 最終ページ
	result += '<a title="最後のページへ" href="#pankz" onClick="PagerClicked(' + maxpage + ')">最後へ>>&nbsp;</a></font>';

	return result;
}

/*
 * 通信オブジェクト作成
 *
 */
function createXMLHttpReq() {

	var xmlHttpObj = null;
	
	//IE6以外
	try {
		xmlHttpObj = new XMLHttpRequest();
		//レスポンスヘッダーをXMLに
		xmlHttpObj.overrideMimeType('text/xml');
	} catch( e ) {
		//IE6
		try {
			xmlHttpObj = new ActiveXObject("Msxml12.XMLHTTP");
		} catch( e ) {
			try {
				xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
			} catch( e ) {
				return null;
			}
		}
	}

	return xmlHttpObj;
}

//サーバーからのデータを受け取る
function getXmlValue(xmlObj, detailFlg)
{
	if(xmlObj.readyState == 4 && xmlObj.status == 200){	
		//confirm(xmlObj.responseText);
		//結果の出力先取得
		var result = document.getElementById("result"); //サムネイル一覧
		var detail = document.getElementById(LARGE_AREA_ID);  //詳細
		var pager  = document.getElementById("pager");  //ページ表示
		result.innerHTML = '';
		pager.innerHTML = '';
		
		//商品URLを直接入力時に詳細欄のクリアを無効
		if ( !detailFlg ) {
			detail.innerHTML = '';
		}
		
		var xmlData = xmlObj.responseXML;
		
		if ( !xmlData ) alert("list error");
		
		//XMLの値を取得する
		var dataCnt    = xmlData.getElementsByTagName("item").length;   //全商品数
		//var idXml      = xmlData.getElementsByTagName("mcom_id");       //商品ID
		var nameXml    = xmlData.getElementsByTagName("mcom_name");     //商品名
		var codeXml    = xmlData.getElementsByTagName("mcom_code");     //商品コード
		var imgpathXml = xmlData.getElementsByTagName("imagepath");     //商品画像
		var catXml     = xmlData.getElementsByTagName("mcom_category"); //商品カテゴリー
		var brandXml   = xmlData.getElementsByTagName("brandid");    //ブランド
		var pageCntXml = xmlData.getElementsByTagName("pagecnt");       //全ページ数
		var curpageXml = xmlData.getElementsByTagName("page");          //表示ページ
		
		//var sql = xmlData.getElementsByTagName("pagecnt");          //デバッグ用
		
		//結果内容表示
		if ( dataCnt < 1 ) {
			
			var mesg = '';
			
			// デバッグ用
			/*
			if ( sql != undefined ) {
				mesg = sql[0].childNodes[0].nodeValue;
				mesg += '<br />';
			}
			*/
			
			mesg += '<a>該当する商品はありません</a>'
		
			result.innerHTML = mesg;
			
		} else {
		
			var itemList = ''; // 出力するHTML
			var itemId   = '';
			var itemCode = '';
			var itemName = '';
			var itemImg  = '';
			var colmCnt  = 5;
			
			// デバッグ用
			/*z
			if ( sql != undefined ) {
				itemList = sql[0].childNodes[0].nodeValue;
			}
			*/
			
			// 一覧作成
			for ( var i = 0; i < dataCnt; i++ ) {
			
				//itemId    = idXml[i].childNodes[0].nodeValue;
				itemName  = nameXml[i].childNodes[0].nodeValue;
				itemImg   = imgpathXml[i].childNodes[0].nodeValue;
				itemCode  = codeXml[i].childNodes[0].nodeValue;
				itembrand = brandXml[i].childNodes[0].nodeValue;
				
				// 一行あたり５個
				if ( !(i % colmCnt) ) itemList += '<div class="result_line">';
				itemList += '<div class="result_detail">';
				itemList += '<p><a href="#pankz" onClick=\'DetailClicked(' + itemCode + ', ' + itembrand + ')\'>' + '<img src="' + itemImg + '" width="130" height="106"></a><br />'; //画像
				itemList += '<p><a href="#pankz" onClick=\'DetailClicked(' + itemCode + ', ' + itembrand + ')\'>' + itemCode + '&nbsp;&nbsp;' + itemName + '</a></p>';//商品名とID
				itemList += '</div>';
				if ( i % colmCnt == colmCnt - 1 ) itemList += '</div>';
			}
			
			result.innerHTML = itemList;
			pager.innerHTML = makePager(curpageXml[0].childNodes[0].nodeValue, pageCntXml[0].childNodes[0].nodeValue);
		}
	}
}

/*
 * 展開色リストを作成
 *
 * @param  responseXML xmlData 通信オブジェクト
 * @return string      ret     展開色タグ
 */
function getTenkaishoku(xmlData) {
	
	// 色数（基本色含む）
	var color = xmlData.getElementsByTagName("color");
	var colorCnt = color.length;
	var chk = '';

	// 基本色のみ場合は表示しない
	if ( colorCnt < 2 ) {
		return "";
	}
	
	var ret = '<br /><div id="color_area">';

	ret += "<p><strong>カラー：</strong></p>";
	
	for ( var i = 0; i < colorCnt; i++ ) {
		
		// 商品コード
		var code = (color[i].getElementsByTagName("code"))[0].childNodes[0].nodeValue;
		
		// 色名
		//var finish = (color[i].getElementsByTagName("finish"))[0].childNodes[0].nodeValue;
		var color_inside = (color[i].getElementsByTagName("color_inside"))[0].childNodes[0].nodeValue;
		
		// 色アイコン
		//var icon = (color[i].getElementsByTagName("finish_icon"))[0].childNodes[0].nodeValue;
		var icon = (color[i].getElementsByTagName("color_icon"))[0].childNodes[0].nodeValue;
		// 価格
		var price = (color[i].getElementsByTagName("price"))[0].childNodes[0].nodeValue;
		// 価格税込み
		var tax = (color[i].getElementsByTagName("price_tax"))[0].childNodes[0].nodeValue;
		
		ret += '<div class="color_detail clearfix">';
		
		if ( i < 1 ) {
			chk = ' checked ';
		} else {
			chk = '';
		}

		// ラジオボタン
		ret += '<input type="radio" name="tenkaishoku" value="' + code + '" class="color_btn"' + chk + ' style="margin:8px 0px 0px 0px;" onClick="changeCode(this);">&nbsp;';
		
		// アイコン
		//ret += '<p class="color_01"><img src="' + icon + '" /></p>';
		//ret += '<p><img src="/image/color/color0.jpg" />';
		ret += '<img src="' + icon + '" style="vertical-align:middle;padding:0px 0px 0px 0px;margin:0px 0px 0px 0px;" /><span style="font-size:11px;">'  + '　' + code + ' 　' + tax + '円</span><span style="font-size:10px;">（税抜 ' + price + '円）</span>';
		
		// 商品コード, 価格
		//ret += '<p class="colnumber">' + finish + '　' + code + '　' + tax + '円</p><span style="font-size:10px;">（税抜 ' + price + '円）</span>';
		//ret += finish + '　' + code + '　' + tax + '円<span style="font-size:10px;">（税抜 ' + price + '円）</span></p>';
		
		//ブラウザによって処理を変更する※良い方法があれば変更したい
		if(navigator.userAgent.indexOf("MSIE") != -1 || navigator.userAgent.indexOf("Sleipnir") != -1){
			if(color_inside == 'ホワイト'){
				ret += '<p><span style="font-size:9px;position:relative;left:3px;">　　　' + color_inside + '</span></p>';
			}else if(color_inside != '-'){
				ret += '<p><span style="font-size:9px;position:relative;left:2px;">　　　' + color_inside + '</span></p>';
			}else{
				ret += '<p><span style="font-size:9px;position:relative;left:-1px;">&nbsp;</span></p>';
			}
		}else{
			if(color_inside == 'ホワイト'){
				ret += '<p><span style="font-size:9px;position:relative;">　　  ' + color_inside + '</span></p>';
			}else if(color_inside != '-'){
				ret += '<p><span style="font-size:9px;position:relative;left:-1px;">　　  ' + color_inside + '</span></p>';
			}else{
				ret += '<p><span style="font-size:9px;position:relative;left:-1px;">&nbsp;</span></p>';
			}
		}
		ret += '</div>';
	}
	
	ret += "</div>";
	
	return ret;
}

//ノードの値を配列で返す
function getNodeValue(xmlObj, tagName)
{
	/*
	
	var getData = xmlObj.getElementsByTagName(tagName);
	
	return getData.length > 0 ? getData[0].childNodes[0].nodeValue : null;
	
	*/
	
	var getData = xmlObj.getElementsByTagName(tagName);
	
	var dataCnt = getData.length;
	var ret     = new Array();
	
	if ( dataCnt < 1 ) {
		ret = null;
	} else {
		for ( var i = 0; i < dataCnt; i++ ) {
			var value = getData[i].childNodes[0].nodeValue;
			if ( value.length > 0 ) {
				ret.push(value);
			}
		}
	}
	
	return ret;
}



/*
//詳細画像を作成
function getDetailImage(image)
{	
	if ( !image ) {
		return '<a name="mainimg_a" id="mainimg_a" href="#" onclick="return false;"><img name="mainimg" src="image/noimgL.jpg" width="400" height="300"/></a>';
	}
	
	//return '<a name="mainimg_a" id="mainimg_a" rel="lightbox" href="' + image[0] + '"><img name="mainimg" src="' + image[0] + '" width="400" height="300"/></a>';
	return '<a name="mainimg_a" id="mainimg_a" href="#" onclick="return false;"><img name="mainimg" src="' + image[0] + '" width="400" height="300"/></a>';
}
*/

/* 
 * 表示画像を作成
 * 
 * @param  xmlhtmlobject xmlObj    通信オブジェクト
 * @param  string        tagName   画像のノード名
 * @param  int           lbFlg     lightboxの使用フラグ
 * @return string        
 */
function getMainImage(xmlObj, tagName, lbFlg) {

	var ret    = '';
	var getXml = xmlObj.getElementsByTagName(tagName);
	var cnt    = getXml.length;
	var img    = '';
	var cliEve = ' onclick= "clickfalse();" ';
	
	if ( cnt == 1 ) {
		
		// 表示アイコンの特定
		switch ( tagName ) {
			case "main":
				img = "<img src=\"image/ico_photo.jpg\" />";
				break;
			case "size":
				img = "<img src=\"image/ico_size.jpg\" />";
				break;
			case "set1":
				img = "<img src=\"image/ico_pic01.jpg\" />";
				break;
			case "set2":
				img = "<img src=\"image/ico_pic02.jpg\" />";
				break;
			case "chui":
				img = "<img src=\"image/ico_caution.jpg\" />";
				break;
				
			case "jirei":
				img = "<img src=\"image/ico_teck01.jpg\" />";
				break;

			case "tech":
				img = "<img src=\"image/ico_teck02.jpg\" />";
				break;
				
			case "koho":
				img = "<img src=\"image/ico_teck03.jpg\" />";
				break;
			/*
			case "seko1":
				img = "<img src=\"image/printbtn_howto_off.jpg\" />";
				break;
				
			case "seko2":
				img = "<img src=\"image/printbtn_howto_off.jpg\" />";
				break;
				
			case "seko3":
				img = "<img src=\"image/printbtn_howto_off.jpg\" />";
				break;
			*/	
			case "kako1":
				img = "<img src=\"image/ico_kako01.jpg\" />";
				break;
				
			case "kako2":
				img = "<img src=\"image/ico_kako02.jpg\" />";
				break;

			case "kako3":
				img = "<img src=\"image/ico_kako03.jpg\" />";
				break;
				
			default:
				return '';
				break;
		}
		
		
		ret += '<a href="#pankz" onClick="changeMainImg(\'' + getXml[0].childNodes[0].nodeValue + '\',' + lbFlg + ')" >';
		ret += img;
		ret += '</a>';
		ret += '&nbsp;';
	} 
	
	return ret;
}

//表示画像を変更する
function changeMainImg(imgpath, lbFlg) {
	
	// 表示用imgタグのsrc
	document.mainimg.src = imgpath;
	
	// lightbox用のaタグ
	if ( lbFlg == 0 || lbFlg == undefined || imgpath == 'image/noimgL.jpg' ) {
		document.getElementById('mainimg_a').href = '#';
		document.getElementById('mainimg_a').onclick = eventFalse;
		document.getElementById('mainimg_a').rel = '';
	} else {
		document.getElementById('mainimg_a').href = imgpath;
		document.getElementById('mainimg_a').onclick = '';
		document.getElementById('mainimg_a').rel = 'lightbox';
	}
	
}

// イベントを無効にする
function eventFalse(){
	return false;
}

//備考を作成
/*
 * 詳細情報の備考欄を作成
 *
 * @param  array  notes 備考の配列
 * @return string $ret  備考タグ
 */
function getNote(notes) {

	var ret = '<p>';
	
	var cnt = notes.length;
	
	// 改行で区切って備考を連結
	for ( var i = 0; i < cnt; i++ ) {
			
		if ( notes[i] == null || notes[i] == undefined ) {
			continue;
		}
		
		if ( i > 0 ) {
			ret += '<br />';
		}
		
		ret += notes[i];
	}

	ret += '</p>';
	
	return ret;
}

/*
 * 色付きの商品名タグを作成
 *
 * @param  string name  商品名
 * @param  string color タイトル色
 * @return string       商品名タグ
 */
function getName(name, color) {
	return '<h4><font color="' + color + '">' + name + '</font></h4>';
}

/*
 * テキスト情報を作成
 *
 * @param  array  name  項目名の配列
 * @param  array  value 項目値の配列
 * @return string ret   詳細情報のタグ
 */
function getTextInfo(name, value) {

	// 空テキスト
	if ( name.length != value.length ) {
		return '<div class="info_text"><ul></ul></div>';
	}
	
	var cnt = name.length;
	var ret = '';

	ret += '<div class="info_text">';
	ret += '<ul>';
	
	for ( var i = 0; i < cnt; i++ ) {
		if ( name[i] && value[i] &&  (value[i] != '-') ) {
			ret += '<li><strong>' + name[i] + '</strong>：&nbsp;' + value[i] + '</li>';
		}
	}

	ret += '</ul>';
	ret += '</div>';
	
	return ret;
}

/*
 * オーダー品アイコンを指定
 *
 * @param  string  orderid  オーダー品情報
 * @return string ret   詳細情報のタグ
 */
function getOrderImg(orderid) {

	// 数値に変更
	orderid = parseInt(orderid);
	
	var ret = '';

	switch(orderid){
	
		case 1:
			ret += '<div align="right"><img src="/image/order-order.png" width="100" height="24" /></div>';
			break;
		case 2:
			ret += '<div align="right"><img src="/image/order-zaipan.png" width="100" height="24"/></div>';
			break;
		default:
			break;
	}
	
	return ret;
}

//別窓を開く
function openWindow(targetUrl, winName, winWidth, winHeight)
{	
	var winStatus = 'menubar=1, toolbar=1, location=1, status=1, resizable=1, scrollbars=1';

	if(winWidth != 0 && winHeight != 0){
		var winSize = 'width=' + winWidth + ', height=' + winHeight;
		window.open(targetUrl, winName, winStatus + ', ' + winSize).focus();
	}else{
		 window.open(targetUrl, winName, winStatus).focus();
	}
}

/*
 * ポップアップ用ボタンを作成
 *
 * @param  string title   ポップアップウインドウのタイトル
 * @param  string openUrl ポップアップウインドウのリンク
 * @param  string overImg マウスオーバー時表示ボタン画像
 * @param  string outImg  初期表示ボタン画像
 * @param  string btnName ボタン名
 * @param  int    w       ポップアップウインドウの幅
 * @param  int    h       ポップアップウインドウの高さ
 * @return string         ボタンタグ
 */
function getPopupButton(title, openUrl, overImg, outImg, btnName, w, h) {
	if ( openUrl ) {
		var winTitle = "'" + title + "'";
		openUrl      = "'" + openUrl + "'";
		return '<li class="btn"><a href="#" onmouseover="' + btnName + '.src=\'' + overImg + '\'" onmouseout="' + btnName + '.src=\'' + outImg + '\'"  onClick="openWindow(' + openUrl + ', ' + winTitle + ', ' + w + ', ' + h + ')"><img src="' + outImg + '" alt="' + title + '" name="' + btnName + '" /></a></li>';

	} else {
		return '';
	}
}

/*
 * 税抜き、税込み価格を作成
 *
 * @param  string price     税抜き価格
 * @param  string price_tax 税込み価格
 * @return string           価格タグ
 */
function creResultPrice(price, price_tax) {
	return price_tax + '円<span style="font-size:10px;">（本体価格' + price + '円）</span>';
}

//展開色を作成
//function getColor(color, finish)
function getColor(color, color2)
{	
	var ret = '<div id="color"><ul>';
	if(color && color2){
		ret += '<li class="' + color + '">' + color2 + '</li>';
	}
	ret += '</ul><br class="clear" /></div>';
	
	return ret;
}

//展開色リストを作成
function getColorList(itemcode, bid, color, code, price)
{
	var ret = '';
	
	//色見本
	if(color){
		var cnt = color.length;
		ret += '<div id="color"><ul>';
		for(var i = 0; i < cnt; i++){
			var clrId = getColorId(color[i]);
			if(!clrId) continue;
			ret += '<li class="' + clrId + '">';
			//ret += '<a href="#pankz" onClick=\'DetailClicked(' + itemcode + ', "' + bid + '", ' + i + ')\'>';
			ret += color[i];
			//ret += '</a>';
			ret += '</li>';
		}
		ret += '</ul><br class="clear" /></div>';
	}
	
	//商品コード
	if(code){
		var codeCnt = code.length;
		ret += '<div id="col_no"><ul>';
		for(var i = 0; i < codeCnt; i++){
			ret += '<li>';
			ret += code[i];
			ret += '</li>';
		}
		ret += '</ul><br class="clear" /></div>';
	}
	
	//価格
	if(price){
		var prcCnt = price.length;
		ret += '<div id="col_price"><ul>';
		for(var i = 0; i < prcCnt; i++){
			ret += '<li>';
			ret += addYen(price[i]);
			ret += '</li>';
		}
		ret += '</ul><br class="clear" /></div>';
	}

	return ret;
}


function changeCode(itemcode)
{
	document.forms["cartform"].elements["addCd"].value=itemcode.value;
}
