var zipform_id = 'zipform';
var prefectureform_id = 'prefectureform';
var prefecturetextform_id = 'prefecturetextform';
var cityform_id = 'cityform';
var cityselectform_id = 'cityselectform';
var townform_id = 'townform';
var addressform_id = 'addressform';
var ajax_zip_url = '/ajax/ajax_zip.php';
var ajax_city_url = '/ajax/ajax_city.php';
var changing_prefecture = '';
//Zip to Address
function setAddress()
{
  var zip = document.getElementById( zipform_id ).value;
	if ( !zip ) {
	  return false;
	}
	new Ajax.Request( ajax_zip_url,
  {
    method:'get',
		parameters: {"zip":zip},
    onSuccess: affectAddress,
    onFailure: function(){ alert('住所が取得できませんでした。') }
  });
}
//setAddress.onSuccess
function affectAddress( transport )
{
	var response = transport.responseText;
	var address = {"prefecture_id":"0","prefecture":"","city":"","address":""};
	var cmd;
	var changed_prefecture = false;
	if ( response ) {
	  cmd = 'address = ' + response + ';';
		eval( cmd );
	}
	if ( !address.address ) {
		 alert('指定の郵便番号では住所が取得できませんでした。');
	}
	if ( address.prefecture_id > 0 ) {
		if ( document.getElementById( prefectureform_id ).selectedIndex != address.prefecture_id ) {
			changed_prefecture = true;
		}
		for ( var i=0; i<document.getElementById( prefectureform_id ).options.length; i++ ) {
			if ( document.getElementById( prefectureform_id ).options[i].value == address.prefecture_id ) {
				document.getElementById( prefectureform_id ).selectedIndex = i;
				break;
			}
		}
		if ( document.getElementById( prefecturetextform_id ) ) {
		  document.getElementById( prefecturetextform_id ).value = address.prefecture;
		}
		if ( document.getElementById( cityform_id ) ) {
			document.getElementById( cityform_id ).value = address.city;
		}
		if ( document.getElementById( addressform_id ) ) {
			document.getElementById( addressform_id ).value = address.address;
		}
		if ( document.getElementById( townform_id ) ) {
			document.getElementById( townform_id ).value = address.address.replace( /（.+$/, '' );
		}
		if ( changed_prefecture ) {
			setRosen();
		}
	}
}
//Prefecture to City
function setCity( no )
{
  changing_prefecture = no;
	var prefecture_id = document.getElementById( prefectureform_id + no ).value;
	new Ajax.Request( ajax_city_url,
  {
    method:'get',
		parameters: {"pid":prefecture_id},
    onSuccess: affectCity,
    onFailure: function(){ alert('市区町村が取得できませんでした。') }
  });
}
//setCity.onSuccess
function affectCity( transport )
{
	var response = transport.responseText;
	var option_arr = [{"id":"","name":""}];
	var cmd;
	if ( response ) {
	  cmd = 'option_arr = ' + response + ';';
		eval( cmd );
	}
	for ( i=1; i<=10; i++ ) {
	  if ( !document.getElementById( cityselectform_id + changing_prefecture + '_' + i ) ) {
		  break; 
		}
		var city_obj = document.getElementById( cityselectform_id + changing_prefecture + '_' + i );
		removeAllChilds( city_obj );
		for ( j=0; j<option_arr.length; j++ ) {
			var o = document.createElement( 'option' );
			o.setAttribute( 'value', option_arr[j].id );
			var t = document.createTextNode( option_arr[j].name );
			o.appendChild( t );
			city_obj.appendChild( o );
		}
	}
}


function removeAllChilds( obj )
{
  while ( o = obj.firstChild ) {
	  obj.removeChild( o );
	}
}

