var MyAjax = {};
MyAjax.type = null;
MyAjax.aid1 = null;
MyAjax.aid2 = null;
MyAjax.typeId1 = null;
MyAjax.typeId2 = null;
MyAjax.cdSave1 = new Array();
MyAjax.cdSave2 = new Array();
MyAjax.dataProvHtml = null;
MyAjax.dataCityHtml = null;
MyAjax.dataProvTim  = null;
MyAjax.dataCityTim  = null;
MyAjax.PID1 = 'provinceData1';
MyAjax.PID2 = 'provinceData2';
MyAjax.CID1 = 'cityData1';
MyAjax.CID2 = 'cityData2';
MyAjax.AID1 = 'areaText1';
MyAjax.AID2 = 'areaText2';
MyAjax.SEID1 = 'serType1';
MyAjax.SEID2 = 'serType2';
MyAjax.SID1 = 'searchText1';
MyAjax.SID2 = 'searchText2';
MyAjax.HID1 = 'search_form1_hidden';
MyAjax.HID2 = 'search_form2_hidden';
MyAjax.ad1_1 = null;
MyAjax.ad2_1 = null;
MyAjax.ad1_2 = null;
MyAjax.ad2_2 = null;
MyAjax.area = new Array('北海道','東北','北陸','関東','中部','近畿','中部','四国','九州・沖縄');
MyAjax.areSelect = null;
MyAjax.selectDis1 = '<select class="zip1" disabled="disabled"><option value="">地図からエリアを選択して下さい。</option></select>';
MyAjax.selectDis2 = '<select class="zip2" disabled="disabled"><option value="">都道府県を選択後、選択項目が表示されます。</option></select>';
MyAjax.loadingImg = '<img src="/img/common_mad/loading.gif" width="16" height="16" alt="読み込み中" style="vertical-align:middle;margin:0;" />&nbsp;<span style="font:10px;">loading...</span>';


// -------------------------------------------------------------------------------
// 共通
// -------------------------------------------------------------------------------
// プルダウンの背景色を制御
function classChg( type, obj )
{
	if( type === 1 ){
		if( obj.value !== "none" ){
			obj.className = 'zip1';
		}else{
			obj.className = 'zip2 PDSelected';
			
			if( MyAjax.type === 1 ){
				var gebid_cid = MyAjax.CID1;
			} else if( MyAjax.type === 2 ) {
				var gebid_cid = MyAjax.CID2;
			}
			
			document.getElementById(gebid_cid).innerHTML = MyAjax.selectDis2;
		}
	}else if( type === 2 ){
		if( obj.value ){
			obj.className = 'zip2';
		}else{
			obj.className = 'zip2 PDSelected';
		}
	}
}

// フォームのリセット
function formReset( obj1, obj2 )
{
	if( obj1 === 1 ){
		MyAjax.typeId1 = obj2;
		var gebid_cid = MyAjax.CID1;
		var gebid_pid = MyAjax.PID1;
		var gebid_aid = MyAjax.AID1;
		var gebid_sid = MyAjax.SID1;
		var gebid_seid = MyAjax.SEID1;
		var serTypeText = '';
		if( obj2 === 1 ) serTypeText = '介護';
		else if( obj2 === 2 ) serTypeText = '福祉';
	} else if( obj1 === 2 ) {
		MyAjax.typeId2 = obj2;
		var gebid_cid = MyAjax.CID2;
		var gebid_pid = MyAjax.PID2;
		var gebid_aid = MyAjax.AID2;
		var gebid_sid = MyAjax.SID2;
		var gebid_seid = MyAjax.SEID2;
		var serTypeText = '';
		if( obj2 === 1 ) serTypeText = '介護';
		else if( obj2 === 2 ) serTypeText = '福祉';
	}
	
	document.getElementById(gebid_pid).innerHTML = MyAjax.selectDis1;
	document.getElementById(gebid_cid).innerHTML = MyAjax.selectDis2;
	document.getElementById(gebid_aid).innerHTML = "選択されていません。";
	document.getElementById(gebid_sid).innerHTML = "---";
	document.getElementById(gebid_seid).innerHTML = serTypeText;
}

// 件数データの成型
function getSearchText( obj1, obj2, obj3 )
{
	if( obj1 === 1 ){
		MyAjax.cdSave1["count"] = obj2;
		MyAjax.cdSave1["count_all"] = obj3;
	} else if( obj1 === 2 ) {
		MyAjax.cdSave2["count"] = obj2;
		MyAjax.cdSave2["count_all"] = obj3;
	}
	return obj2 + "件 / " + obj3 + "件中";
}

// Flashを再スタートさせる
function flashReStart( obj1 )
{
	if( obj1 === 1 ){
		if( MyAjax.typeId1 ){
			window.document["map01"].SetVariable( "_level0.typeId", MyAjax.typeId1 );
		} else {
			window.document["map01"].SetVariable( "_level0.typeId", "no" );
		}
	} else if( obj1 === 2 ) {
		if( MyAjax.typeId2 ){
			window.document["map02"].SetVariable( "_level0.typeId", MyAjax.typeId2 );
		} else {
			window.document["map02"].SetVariable( "_level0.typeId", "no" );
		}
	}
}


// -------------------------------------------------------------------------------
// 都道府県データ取得
// -------------------------------------------------------------------------------
function getProvinceData( obj1, obj2, obj3 )
{
	MyAjax.aid1 = obj3;
	MyAjax.type = obj1;
	if( MyAjax.type === 1 ){
		MyAjax.typeId1 = obj2;
		MyAjax.res1 = "on";
		var gebid_cid = MyAjax.CID1;
		var gebid_pid = MyAjax.PID1;
		var gebid_hid = MyAjax.HID1;
		var typeId = MyAjax.typeId1;
	} else if( MyAjax.type === 2 ) {
		MyAjax.typeId2 = obj2;
		MyAjax.res2 = "on";
		var gebid_cid = MyAjax.CID2;
		var gebid_pid = MyAjax.PID2;
		var gebid_hid = MyAjax.HID2;
		var typeId = MyAjax.typeId2;
	}
	
	document.getElementById(gebid_cid).innerHTML = MyAjax.selectDis2;
	document.getElementById(gebid_hid).innerHTML = '<input type="hidden" name="type" value="'+ typeId +'" />';
	
	new Ajax.Request('/api/getProvinceDataFlash/', {
		method : 'post',
		parameters: 'type='+ MyAjax.type + '&id='+ MyAjax.aid1 +'&type_id='+ typeId,
		onSuccess : function(request){
			document.getElementById(gebid_pid).innerHTML = MyAjax.loadingImg;
		}, 
		onComplete : provinceHtml,
		onFailure : function(request){
			alert('データの取得に失敗しました');
		}, 
		onException: function(request){
			alert('データの取得に失敗しました');
		}
	});
}

function provinceHtml(req)
{
	var data = req.responseText.evalJSON();
	
	MyAjax.dataProvHtml = '<select name="address1" class="zip1 PDSelected" onchange="classChg(1, this); getCityData(this.value);">';
	MyAjax.dataProvHtml = MyAjax.dataProvHtml + '<option value="none">選択して下さい</ooption>';
	for(var i=0; i<data.length; i++){
		MyAjax.dataProvHtml = MyAjax.dataProvHtml + '<option value="' + data[i].ts_address1.escapeHTML() + "," + data[i].tam_name.escapeHTML() + '">' + data[i].tam_name.escapeHTML() + '</ooption>';
	}
	MyAjax.dataProvHtml = MyAjax.dataProvHtml + '</select>';
	
	MyAjax.dataProvTim = setInterval("provinceHtmlOutput()", 1000);
}

function provinceHtmlOutput(num)
{
	if( MyAjax.dataProvHtml !== "" ){
		if( MyAjax.type === 1 ){
			var gebid_pid = MyAjax.PID1;
			var gebid_aid = MyAjax.AID1;
			var gebid_sid = MyAjax.SID1;
			var typeId = MyAjax.typeId1;
		} else if( MyAjax.type === 2 ) {
			var gebid_pid = MyAjax.PID2;
			var gebid_aid = MyAjax.AID2;
			var gebid_sid = MyAjax.SID2;
			var typeId = MyAjax.typeId2;
		}
		
		new Ajax.Request('/api/getProvinceDataFlash/', {
			method : 'post',
			parameters: 'type='+ MyAjax.type +'&id='+ MyAjax.aid1 +'&type_id='+ typeId +'&flg=1',
			onComplete : function(request){
				var data = request.responseText.evalJSON();
				MyAjax.areSelect = MyAjax.area[MyAjax.aid1-1];
				document.getElementById(gebid_aid).innerHTML = MyAjax.areSelect;
				document.getElementById(gebid_sid).innerHTML = getSearchText(MyAjax.type, data.count, data.count_all);
			}
		});
		
		document.getElementById(gebid_pid).innerHTML = MyAjax.dataProvHtml;
	}
	clearInterval(MyAjax.dataProvTim);
}


// -------------------------------------------------------------------------------
// 市区町村データ取得
// -------------------------------------------------------------------------------
function getCityData( obj1 )
{
	var adData = obj1.split(',');
	MyAjax.aid2 = adData[0];
	if( MyAjax.type === 1 ){
		MyAjax.ad1_1 = adData[1];
		var gebid_cid = MyAjax.CID1;
		var typeId = MyAjax.typeId1;
		var gebid_aid = MyAjax.AID1;
	} else if( MyAjax.type === 2 ) {
		MyAjax.ad1_2 = adData[1];
		var gebid_cid = MyAjax.CID2;
		var typeId = MyAjax.typeId2;
		var gebid_aid = MyAjax.AID2;
	}
	
	if( MyAjax.aid2 === 'none' ){
		document.getElementById(gebid_cid).innerHTML = MyAjax.selectDis2;
		document.getElementById(gebid_aid).innerHTML = ( MyAjax.areSelect ) ? MyAjax.areSelect : "選択されていません。";
	}else{
		new Ajax.Request('/api/getCityDataFlash/', {
			method : 'post',
			parameters: 'type='+ MyAjax.type + '&id='+ MyAjax.aid2 +'&type_id='+ typeId,
			onSuccess : function(request){
				document.getElementById(gebid_cid).innerHTML = MyAjax.loadingImg;
				document.getElementById(gebid_aid).innerHTML = adData[1];
			}, 
			onComplete : cityHtml,
			onFailure : function(request){
				if( MyAjax.aid2 !== 'none' ) alert('データの取得に失敗しました');
			}, 
			onException: function(request){
				if( MyAjax.aid2 !== 'none' ) alert('データの取得に失敗しました');
			}
		});
	}
}

function cityHtml(req)
{
	var data = req.responseText.evalJSON();
	
	MyAjax.dataCityHtml = '<select name="address2" class="zip2 PDSelected" onchange="classChg(2, this); getCityName(this.value);">';
	MyAjax.dataCityHtml = MyAjax.dataCityHtml + '<option value="">選択して下さい</ooption>';
	for(var i=0; i<data.length; i++){
		MyAjax.dataCityHtml = MyAjax.dataCityHtml + '<option value="' + data[i].ts_address2.escapeHTML() + "," + data[i].tam_name.escapeHTML() + '">' + data[i].tam_name.escapeHTML() + '</ooption>';
	}
	MyAjax.dataCityHtml = MyAjax.dataCityHtml + '</select>';
	
	MyAjax.dataCityTim = setInterval("cityHtmlOutput()", 1000);
}

function cityHtmlOutput()
{
	if( MyAjax.dataCityHtml !== "" ){
		if( MyAjax.type === 1 ){
			var gebid_cid = MyAjax.CID1;
			var gebid_sid = MyAjax.SID1;
			var typeId = MyAjax.typeId1;
		} else if( MyAjax.type === 2 ) {
			var gebid_cid = MyAjax.CID2;
			var gebid_sid = MyAjax.SID2;
			var typeId = MyAjax.typeId2;
		}
		
		new Ajax.Request('/api/getProvinceDataFlash/', {
			method : 'post',
			parameters: 'type='+ MyAjax.type +'&id='+ MyAjax.aid2 +'&type_id='+ typeId +'&flg=2',
			onComplete : function(request){
				var data = request.responseText.evalJSON();
				document.getElementById(gebid_sid).innerHTML = getSearchText(MyAjax.type, data.count, data.count_all);
			}
		});
		
		document.getElementById(gebid_cid).innerHTML = MyAjax.dataCityHtml;
	}
	clearInterval(MyAjax.dataCityTim);
}

function getCityName( obj1 )
{
	var adData = obj1.split(',');
	if( MyAjax.type === 1 ){
		MyAjax.ad2_1 = adData[1];
		var gebid_aid = MyAjax.AID1;
		var gebid_sid = MyAjax.SID1;
		var writeData = MyAjax.ad1_1 + ( (MyAjax.ad2_1)?MyAjax.ad2_1:'' );
		var typeId = MyAjax.typeId1;
	} else if( MyAjax.type === 2 ) {
		MyAjax.ad2_2 = adData[1];
		var gebid_aid = MyAjax.AID2;
		var gebid_sid = MyAjax.SID2;
		var writeData = MyAjax.ad1_2 + ( (MyAjax.ad2_2)?MyAjax.ad2_2:'' );
		var typeId = MyAjax.typeId2;
	}
	
	document.getElementById(gebid_aid).innerHTML = writeData;
	
	new Ajax.Request('/api/getProvinceDataFlash/', {
		method : 'post',
		parameters: 'type='+ MyAjax.type +'&id='+ MyAjax.aid2 +'&type_id='+ typeId +'&flg=2&ad2='+ adData[0],
		onComplete : function(request){
			var data = request.responseText.evalJSON();
			document.getElementById(gebid_sid).innerHTML = getSearchText(MyAjax.type, data.count, data.count_all);
		}
	});
}
