
/**
 * カテゴリヘッダのブランドメニューを置換するメソッド集。
 *
 * ver 1.00  2009.01.02 / Shinya Chitose
 * 	初版。
 *
 * @access		public
 * @category	Ajax
 * @package		EC DESPX
 * @dependence	catHeadBrandMenu.php
 * @author		Shinya Chitose <chitose@dispatch-base.com>
 * @copyright	Dispatch Base Sole Proprietorship.
 */


/**
 * XMLHttpRequestオブジェクトを生成する。
 *
 * @access	private
 * @return	object		XMLHttpRequest
 */
function _achbm_createHttpRequest()
{
	//Win ie用
	if (window.ActiveXObject) {
		try {
			//MSXML2以降用
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				//旧MSXML用
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				return null;
			}
		 }
	} else if (window.XMLHttpRequest) {
		//Win ie以外のXMLHttpRequestオブジェクト実装ブラウザ用
		return new XMLHttpRequest();
	} else {
		return null;
	}
}


/**
 * Ajaxでカテゴリヘッダのブランドメニューを置換する。
 *
 * @access	public
 * @param	object		呼び出し元オブジェクト。
 * @return	void
 */
function ajaxCatHeadBrandMenu(caller, target)
{
	// ブランドページのみ、用途概要とブランドのname属性が異なるので、
	// GETパラメーターのキーを振り分ける。
	var catKey;
	switch (target) {
		case 'ocg':
			catKey	= 'scg';
			break;
		case 'scg':
			catKey	= 'ocg';
			break;
	}
	var form	 = document.categoryHeader;
	target		 = form.elements[target];
	var ajaxUrl	 = form.ajaxRoot.value + '/catHeadBrandMenu.php?';
	var D		 = new Date();
	ajaxUrl		+= "pathInfo=" + form.pathInfo.value;
	ajaxUrl		+= "&" + catKey + "=" + caller.value;
	ajaxUrl		+= "&t="
				+	D.getFullYear() + D.getMonth() + D.getDate()
				+	D.getHours() + D.getMinutes() + D.getSeconds();
	ajaxUrl		+= '&ajaxMode=On';
	
	// XMLHttpRequestを作成する。
	var Ohttp	 = _achbm_createHttpRequest();
	
	// HTTPをオープン。
	Ohttp.open('GET', ajaxUrl, true);
	
	// 受信時に起動するイベント。
	Ohttp.onreadystatechange	= function ()
	{
		// 通信が正常終了した場合のみ処理を行う。
		if (Ohttp.readyState == 4 && Ohttp.status == 200) {
			
			var i, j, text, value;
			var Oxml	= Ohttp.responseXML;
			
			// 書き換え対象のリストを初期化する。
			var optionNum	= target.options.length;
			for (i = 0; i < optionNum; i++) {
				target.options[1]	= null;
			}
			
			// 書き換えリストを取得する。
			var aCatId	= Oxml.getElementsByTagName('categoryId');
			var aTitle	= Oxml.getElementsByTagName('title');
			
			for (i = 1; i <= aCatId.length; i++) {
				j	= i - 1;
				value	= aCatId[j].firstChild.nodeValue;
				value	= value.replace(/　/, '&nbsp;');
				text	= aTitle[j].firstChild.nodeValue;
				target.options[target.options.length]
						= new Option(text, value);
			}
			
			// デバッグコード。
			ajaxUrl	+= '&debugMode=On';
//			window.open(ajaxUrl);
//			clipboardData.setData('Text', ajaxUrl);
			
		}
	}
	
	// データ送信。
	Ohttp.send(null);
}


