/*==============================================================================
 頁切り替え
--------------------------------------------------------------------------------*/
function page( set ){
	cm( 'page', set );
}
/*==============================================================================
 ロケーション
--------------------------------------------------------------------------------*/
function href( set ){
	location.href = set;
}
/*==============================================================================
 特定のメソッド入れ替えchange method
------------------------------------------------------------------------------*/
function cm(){

	var hash = str2obj(); // new Object();
	delete( hash['page'] ); // 2011-12-13 追加
	for( i = 0; i < arguments.length; i += 2 ){
		if( arguments[i+1] == null ){
			delete( hash[ arguments[i] ] );
		}
		else {
			hash[ arguments[i] ] = arguments[i+1];
		}
	}

	location.href = location.pathname + '?' + obj2str( hash );

}
/*==============================================================================
 特定のメソッド入れ替えchange method（オブジェクト版）
------------------------------------------------------------------------------*/
function hash( set ){ cm2( set ); }
function cm2( set ){

	var hash = str2obj();//new Object();
	for( i in set ){
		if( set[ i ] ){
			hash[ i ] = set[ i ];
		}
		else {
			delete hash[ i ];
		}
	}
	location.href = location.pathname + '?' + obj2str( hash );

}
/*==============================================================================
 カード用：リネーム
------------------------------------------------------------------------------*/
function material_rename( set_material_id ){

	var target = 'material' + set_material_id + 'title';
	var title = prompt( '新しい名前を入力してください。', $( target ).innerHTML );
	if( title == null || title == '' ) return false;

	var uri = '/ajax_material.php';
	var param = 'cmd=rename&material_id=' + set_material_id + '&title=' + encodeURIComponent( title );
	var response = function( httpObj ){
		result = httpObj.responseText.split( '<>' );
		if( result[0] == 0 ){
			alert( '名前の変更に失敗しました。' );
			return false;
		}
		else {
			$( 'material'+set_material_id+'title' ).innerHTML = result[1];
		}
	};
	ajax_request( uri, param, response );

}
/*==============================================================================
 アップロード：削除
------------------------------------------------------------------------------*/
function upload_delete( set_material_id ){

	if( !confirm( 'このファイルを一覧から削除します。\n本当によろしいですか？')){ return false; }
	var uri = '/upload/index.php';
	var param = 'cmd=delete&material_id=' + set_material_id;
	location.href = uri+'?'+param;

}
/*==============================================================================
 組み合わせ追加
------------------------------------------------------------------------------*/
function combine_in( set_material_id ){

	sendAjax( $('cart_inner'), 'cart', 'combine_in', 'material_id='+set_material_id );

}
/*==============================================================================
 組み合わせ削除
------------------------------------------------------------------------------*/
function combine_out( set_material_id ){

	var uri = '/cart/ajax_cart.php';
	var param = 'cmd=combine_out&material_id=' + set_material_id;
	var response = function( httpObj ){
		$( 'cart_inner' ).innerHTML = httpObj.responseText;
	};
	ajax_request( uri, param, response );

}
/*==============================================================================
 組み合わせリセット
------------------------------------------------------------------------------*/
function combine_reset(){

	if( !confirm( '組み合わせをリセットします。\n本当によろしいですか？')){ return false; }
	sendAjax( $('cart_inner'), 'cart', 'combine_reset' );

}
/*==============================================================================
 カート：取り出し
------------------------------------------------------------------------------*/
function cart_out( cart_number ){

	var uri = '/cart/cart.php';
	var param = 'cmd=cart_out2&cart_number=' + cart_number;
	href( uri + '?' + param );

}
/*==============================================================================
 zipcode
------------------------------------------------------------------------------*/
function zipcode( set_obj, set_element ){

	var zip = set_obj.elements[ set_element + '_zip' ].value;
	if( zip == undefined || zip == '' ) return false;

	var param = "cmd=search&zip=" + zip;
	var response = function( httpObj ){
		set_response = httpObj.responseText;
		if( set_response == ',' ){
			alert( '該当する住所が見つかりませんでした。' );
			set_obj.elements[ set_element + '_zip' ].select();
			return false;
		}
		var temp = set_response.split( ',' );
		set_obj.prefecture_id.value = temp[0];
		set_obj.elements[ set_element + '_address1' ].value = temp[1];
	};
	ajax_request( "/account/ajax_zipcode.php", param, response );

}
/*==============================================================================
 Ajax通信（共用）
------------------------------------------------------------------------------*/
function ajax_request( set_uri, set_param, set_response ){

	new Ajax.Request( set_uri, {
		method: "post",
		parameters: set_param,
		onSuccess: function( httpObj ){ set_response( httpObj ) },
		onFailure: function( httpObj ){ alert( "error" ); }
	} );
	return false;

}
/*==============================================================================
 TRタグ追加用
------------------------------------------------------------------------------*/
function addTR( set_obj ){

	var td = set_obj.parentNode;
	var tr = td.parentNode;
	var table = tr.parentNode;

	//----- 繰り返し処理を回避（この方法でいいのかな？
	if( tr.nextSibling.childNodes.length == 1 ){
		var td2 = tr.nextSibling.childNodes[0];
		return td2;
	}
//alert( tr.nextSibling.childNodes.length != 0 );//hasChildNodes() );//childNodes.tagName );//

	//----- TDの数を数える
	var count = 0;
	for( i in tr.childNodes ){
		if( tr.childNodes[i].tagName != 'TD' ) continue;
		count ++;
	}
//alert(count);

	//----- 追加する
	var td2 = document.createElement( 'td' );
	td2.setAttribute( 'colspan', count );
	var tr2 = document.createElement( 'tr' );
	tr2.appendChild( td2 );
//alert(tr2);
	table.insertBefore( tr2, tr.nextSibling );
//alert(td2);

	return td2;

}
/*==============================================================================
 TRタグ追加用

 要素：objTR
------------------------------------------------------------------------------*/
function addTR2( objTR ){

	var tr = objTR;
	var table = tr.parentNode;

	//----- 繰り返し処理を回避（この方法でいいのかな？
	if( tr.nextSibling.childNodes.length == 1 ){
		var td2 = tr.nextSibling.childNodes[0];
		return td2;
	}

	//----- TDの数を数える
	var count = 0;
	for( i in tr.childNodes ){
		if( tr.childNodes[i].tagName != 'TD' ) continue;
		count ++;
	}

	//----- 追加する
	var td2 = document.createElement( 'td' );
	td2.setAttribute( 'colspan', count );
	var tr2 = document.createElement( 'tr' );
	tr2.appendChild( td2 );
	table.insertBefore( tr2, tr.nextSibling );

	return td2;

}

