var categoryUpdateRequest = null;
var ajax_dir = null;

try{
	categoryUpdateRequest = new XMLHttpRequest();
} catch ( trymicrosoft ) {
	try {
		categoryUpdateRequest = new ActiveXObject( "Msxml2.XMLHTTP" );
	} catch ( failed ) {
		try {
			categoryUpdateRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
		} catch ( f ) {
			categoryUpdateRequest = null;
		}
	}
}

if( categoryUpdateRequest == null ) {
	alert ( "リクエストオブジェクトの作成に失敗" );
}

var updateCategorySelectIndex;

function updateSelect( index, _ajax_dir )
{
	if( _ajax_dir )
		ajax_dir = _ajax_dir;
	updateCategorySelectIndex = index;
	var e = document.getElementById( "categories-" + index );
	var parentId = e.value;
	var url = ajax_dir + "test.php?name=categories-" + index + "&value=" + parentId;
	categoryUpdateRequest.open( "GET", url, true );
	categoryUpdateRequest.onreadystatechange = updateCom;
	categoryUpdateRequest.send( null );
}

function updateCom()
{
	if( categoryUpdateRequest.readyState == 4 )
	{

		var res = categoryUpdateRequest.responseText;

		var rewriteId = updateCategorySelectIndex + 1;
		var appendOnChange = rewriteId <= 2;
		rewriteCategory( res, rewriteId, appendOnChange );
	}
	else
	{
	}
}

function rewriteCategory( res, rewriteId, appendOnChange )
{
	/*------- select フォームの DOMを構築 -------*/
	var select = document.createElement("select");
	select.setAttribute( "id", "categories-" + rewriteId );
	select.setAttribute( "name",  "categories-" + rewriteId );
	if( appendOnChange )
	{
		// IE のみ、イベントの設定がおかしいので、個別に処理
		var isIE = document.documentElement.getAttribute("style") ==
			document.documentElement.style;

		if( isIE )
			select.setAttribute( "onchange",
				new Function("updateSelect(" + rewriteId + ")") );
		else
			select.setAttribute( "onchange", "updateSelect(" + rewriteId + ")" );
	}

	/*------- option DOMを構築して追加 --------*/
	var options = res.split( ":" );
	if( options.length > 1 )
	{
		var args;
		var option;
		var label;
		for( var i = 0; i < options.length; i++ )
		{
			args = options[i].split("&");
			option = document.createElement( "option" );
			option.setAttribute( "value", args[0] );
			if( i == 0 )
			{
				option.setAttribute( "selected", "selected" );
			}
			label = document.createTextNode( args[1] );
			option.appendChild( label );
			select.appendChild( option );
		}
	}
	else
	{
		select = document.createElement("span");
	}

	var appendDiv = document.getElementById( "cont-categories-" + rewriteId );
	if( appendDiv == null )
	{
		appendDiv = document.createElement( "div" );
		appendDiv.setAttribute( "id", "cont-categories-" + rewriteId );
		var parent = document.getElementById( "categoriesPanel" );
		parent.appendChild( appendDiv );
	}

	while( appendDiv.firstChild != null )
	{
		appendDiv.removeChild( appendDiv.firstChild );
	}

	appendDiv.appendChild( select );

	if( rewriteId == 2 )
	{
		var rmvDiv = document.getElementById( "cont-categories-" + 3 );

		if( rmvDiv != null )
		{
			while( rmvDiv.firstChild != null )
			{
				rmvDiv.removeChild( rmvDiv.firstChild );
			}
		}
	}

}



