var $railroads=function(){};

$railroads.lat=0;
$railroads.lng=0;
$railroads.submitted=false;




$railroads.setupCondition=function() {
	if($(":selected","#railroads_pref").val().length==0) {
		$("#railroads_line").val('');
		$("#railroads_line").attr('disabled','true');
		$("#railroads_station").val('');
		$("#railroads_station").attr('disabled','true');
		$('input[name="railroads_domain_how"]:radio').attr('disabled','true');
		$("span#railroads_domain_how_field").css('color','#cdcdcd');
		$("#railroads_domain").attr('disabled','true');
		$("#railroads #usher2").html("都道府県を選んでください。");
		$("#submit2").fadeOut();
	} else if($(":selected","#railroads_line").val().length==0) {
		$("#railroads_line").attr('disabled','');
		$("#railroads_station").val('');
		$("#railroads_station").attr('disabled','true');
		$('input[name="railroads_domain_how"]:radio').attr('disabled','true');
		$("span#railroads_domain_how_field").css('color','#cdcdcd');
		$("#railroads_domain").attr('disabled','true');
		$("#railroads #usher2").html("路線名を選んでください。");
		$("#submit2").fadeOut();
	} else if($(":selected","#railroads_station").val().length==0) {
		$("#railroads_line").attr('disabled','');
		$("#railroads_station").attr('disabled','');
		$('input[name="railroads_domain_how"]:radio').attr('disabled','true');
		$("span#railroads_domain_how_field").css('color','#cdcdcd');
		$("#railroads_domain").attr('disabled','true');
		$("#railroads #usher2").html("駅名を選んでください。");
		$("#submit2").fadeOut();
	} else if($(":selected","#railroads_domain").val().length==0) {
		$('input[name="railroads_domain_how"]:radio').attr('disabled','');
		$("span#railroads_domain_how_field").css('color','#121212');
		$("#railroads_domain").attr('disabled','');
		$("#railroads #usher2").html("診療科目(部位症状)を選んでください。<div class=\"short brwn\" style=\"text-align:center;\">診療科目と部位症状はボタンで切り替わります。</div>");
		$("#submit2").fadeOut();
	} else {
		$("#railroads #usher2").html("全部選んだら、検索ボタンを押してください。");
		$("#submit2").fadeIn();
	}

	// 診療科目(部位症状)を一度選択操作したら、その後他のプルダウンを変更しても診療科目(部位症状)をdisableにしない
	if($(":selected","#railroads_domain").val() != "") {
		$('input[name="railroads_domain_how"]:radio').attr('disabled','');
		$("span#railroads_domain_how_field").css('color','#121212');
		$("#railroads_domain").attr('disabled','');
	}
}


/*--------------------------------------------------------------------
 * special thanks to Heartrails Express
 * http://express.heartrails.com/
 * for providing such a great API services.
--------------------------------------------------------------------*/
$railroads.getHeartrails=function(method,prefecture,line,station,lineId,stationId,selecedIndex) {
// method:'getLines','getStations'　prefecture:都道府県名　line:路線名　station:駅名
// lineId:路線名selectプルダウンID　stationId:駅名selectプルダウンID　selectedIndex:初期表示でselectedにする要素(0〜)

// Heartrailsは空のパラメータを送るとうまく動かないので$.ajaxのdataは配列式でなくget引数の文字列を作って渡す↓
	var query="method="+method;
	if(prefecture) { if(query) { query=query+"&"; } query=query+'prefecture='+encodeURIComponent(prefecture); }
	if(line) { if(query) { query=query+"&"; } query=query+'line='+encodeURIComponent(line); }
	if(station) { if(query) { query=query+"&"; } query=query+'name='+encodeURIComponent(station); }


if(typeof(console)!=="undefined" && typeof(console.log)!=="undefined") console.log(query);


	$.ajax({
		url: "http://express.heartrails.com/api/json?jsonp=?",
		async: false, // 同期通信：非同期だと路線名・駅名・緯度経度データが取得される前に次処理されてしまうので
		dataType: "jsonp", // (3) データ形式はJSONP
		data: query, // (4) リクエストパラメータ定義（Object形式で渡すのでkeywordは自動エンコードされる
		type: "get",
		cache: false, // (5) キャッシュを不使用
		success: function (data, status) { // (6) データ取得に成功した場合の処理
			if(method=='getLines') { // 路線名取得の場合
				if(lineId.length) {
					var lineObj = window.document.getElementById(lineId);
					lineObj.options.length = 0;
					lineObj.options[0]=new Option("路線名↓","");
					$.each(data.response.line, function(i,item){
						lineObj.options[i+1]=new Option(item,item);
						if(i==selecedIndex) lineObj.options[i].selected = true;
					});
				}
			} else if( method=='getStations') { // 路線内駅名一覧あるいは単一駅情報の取得の場合
				if(stationId.length) { // 路線内駅名一覧
					var stationObj = window.document.getElementById(stationId);
					stationObj.options.length = 0;
					stationObj.options[0]=new Option("駅名↓","");
					$.each(data.response.station, function(i,item){
						stationObj.options[i+1]=new Option(item.name,item.name);
						if(i==selecedIndex) stationObj.options[i].selected = true;
					});
				} else {
					$.each(data.response.station, function(i,item){
						if(item.name===station) {
							$railroads.lat=item.y;
							$railroads.lng=item.x;
							return false; // break相当
						}
					});
				}
			}
		}
		// ,error: function(option, status) { // this works with using '$.jsonp' instead '$.ajax' by jquery.jsonp-2.1.4.min.js
		//	alert(status);
		//}
	});
}

$railroads.submit=function() {
	var prefname=$(":selected","#railroads_pref").text();
	var line=$(":selected","#railroads_line").val();
	var station=$(":selected","#railroads_station").val();
	var ccd=$(":selected","#railroads_city").val();
	var dcd=$(":selected","#railroads_domain").val();
	if(prefname.length==0) {
		alert('都道府県名を指定してください');
		return;
	} else if(line.length==0) {
		alert('路線名を指定してください');
		return false;
	} else if(station.length==0) {
		alert('駅名を指定してください');
		return false;
	} else if(dcd.length==0) {
		alert('診療科目(部位症状)を指定してください');
		return false;
	}
	if(!this.lat || !this.lng) {
		alert('マーカー位置が取得されませんでした');
		return false;
	}
	
if(typeof(console)!=="undefined" && typeof(console.log)!=="undefined") console.log('http://search.10man-doc.co.jp/searchNeighbors.php?pref='+encodeURIComponent(prefname)+ '&ln='+encodeURIComponent(line)+'&st='+encodeURIComponent(station)+'&dmn='+dcd+'&nxt=0&lat='+this.lat+'&lng='+this.lng);

	this.saveCookie();

	parent.location.href='http://search.10man-doc.co.jp/searchNeighbors.php?pref='+encodeURIComponent(prefname)+ '&ln='+encodeURIComponent(line)+'&st='+encodeURIComponent(station)+'&dmn='+dcd+'&nxt=0&lat='+this.lat+'&lng='+this.lng;
}

$railroads.saveCookie=function() {
	$.cookie('_10mandoc_tab','railroads',{expires:1});
	var cookie_data="";
	var val=$(":selected","#railroads_pref").text();
	cookie_data=val; // 都道府県名
	var sel = document.getElementById("railroads_pref");
	cookie_data=cookie_data+':'+sel.selectedIndex; // 都道府県select要素番号（0〜
	val=$(":selected","#railroads_line").text();
	cookie_data=cookie_data+':'+val; // 路線名
	sel = document.getElementById("railroads_line");
	cookie_data=cookie_data+":"+sel.selectedIndex; // 路線名select要素番号（0〜
	val=$(":selected","#railroads_station").text();
	cookie_data=cookie_data+':'+val; // 駅名
	sel = document.getElementById("railroads_station");
	cookie_data=cookie_data+":"+sel.selectedIndex; // 駅名select要素番号（0〜
	var how = $(':radio[name="railroads_domain_how"]:checked').val();
	cookie_data=cookie_data+":"+how; // 診療科目or部位症状 radio value
	sel = document.getElementById("railroads_domain");
	cookie_data=cookie_data+":"+sel.selectedIndex; // 診療科目or部位症状select要素番号（0〜
	$.cookie('_10mandoc_para',cookie_data,{expires:1});
}
$railroads.loadCookie=function() {
	var cookie_string=$.cookie('_10mandoc_para');
	var cookie_data = cookie_string.split(":");

//	alert(cookie_data[0]+":"+cookie_data[1]+":"+cookie_data[2]+":"+cookie_data[3]+":"+cookie_data[4]+":"+cookie_data[5]+":"+cookie_data[6]+":"+cookie_data[7]);

	var sel = document.getElementById("railroads_pref");
	sel.options[cookie_data[1]].selected = true;
	this.getHeartrails("getLines",cookie_data[0],'','','railroads_line','',cookie_data[3]);
	this.getHeartrails("getStations",'',cookie_data[2],'','','railroads_station',cookie_data[5]);
	$railroads.getHeartrails("getStations",'',cookie_data[2],cookie_data[4],'','');
	$(':radio[name="railroads_domain_how"]').val([cookie_data[6]]);
	loadDomain('railroads_domain_how','railroads_domain');
	sel = document.getElementById("railroads_domain");
	sel.options[cookie_data[7]].selected = true;

	$("#railroads_line").attr('disabled','');
	$("#railroads_station").attr('disabled','');
	$('input[name="railroads_domain_how"]:radio').attr('disabled','');
	$("span#railroads_domain_how_field").css('color','#121212');
	$("#railroads_domain").attr('disabled','');
	$("#railroads #usher2").html("全部選んだら、検索ボタンを押してください。");
	$("#submit2").fadeIn();
}

