/* ver.2009.07.30.01 */
/* <input type="text">に関する処理 */
$(function(){
	/* リロード時、デフォルトは「空欄」 */
/*
	$('input[type*="text"]').each(function(){
		$(this).val('');
	});
*/

	var mgInputDefaultValue = 'キーワードをご入力ください';
	var mgInputInitialize = function(){
		if (!$(this).val() || $(this).val() == mgInputDefaultValue) {
			$(this).css({color:'silver'});
			$(this).val(mgInputDefaultValue);
		}
	};
	$('input[type*="text"]').each(mgInputInitialize);
	$('input[type*="text"]').focus(function(){
		$(this).css({color:'black'});
		if ($(this).val() == mgInputDefaultValue) {
			$(this).val('');
		}
	});
	$('input[type*="text"]').blur(mgInputInitialize);
});

var mgLinkItemID = 'addSelect01';
var mgLinkAreaID = 'addSelect02';

/* 「施設」ラジオボックスに関する処理 */
$(function(){
/*	var mgShisetsuKey = 'shisetsu';*/

	/* リロード時、ラジオボタンのデフォルトは最初の要素 */
/*
	$('#detailSearchTop input[type*="radio"]').removeAttr('checked');
	$('#detailSearchTop input[type*="radio"]:first').attr({checked:'checked'});
*/

	/* 大学選択時に無効化したい<input>及び<select>に指定しているクラス名 */
	var mgDisabledClass = 'noSelect';

	/* 選択した施設によって、入力/選択できる項目を変える */
	$('#detailSearchTop input[type*="radio"]').click(function(){
		var mgText = $(this).parent().text();
		if (mgText.match(/大学/)) {
			/* 大学 の場合 */
			$('#detSeaContTbl').addClass('backgraundBlue').removeClass('backgraundGreen');
//			$('#' + mgLinkItemID).data('disabled', true);
			$('#' + mgLinkItemID).data('disabled', false);
			$('input.' + mgDisabledClass + ', select.' + mgDisabledClass).attr({'disabled':true});
		}
		else if (mgText.match(/医療/)) {
			/* 医療機関 の場合 */
			$('#detSeaContTbl').addClass('backgraundGreen').removeClass('backgraundBlue');
			$('#' + mgLinkItemID).data('disabled', false);
			$('input.' + mgDisabledClass + ', select.' + mgDisabledClass).removeAttr('disabled');
		}
		else {
			/* すべて の場合 */
			$('#detSeaContTbl').removeClass('backgraundBlue backgraundGreen');
			$('#' + mgLinkItemID).data('disabled', false);
			$('input.' + mgDisabledClass + ', select.' + mgDisabledClass).removeAttr('disabled');
		}
	});

	$('#detailSearchTop input[type*="radio"]:checked').click();
});

/* ダイアログに関する処理 */
$(function(){
	var mgDialogItemID = 'ajaxContBoxType1';
	var mgDialogAreaID = 'ajaxContBoxType2';

	var mgCoverID = 'cover';
	var mgBodyID = 'outer';
	var mgIsCovered = false;

	var mgCloseButtonClass = 'ajaxContClose';

	/* IE6用にダイアログの背面を<iframe>で覆う場合にtrue */
	/* IE6での<select>をダイアログの背面に隠す */
	var mgIFrameCoverForIE6 = false;
	var mgIE6 = false;
	{
		var mgPos = navigator.appVersion.indexOf("MSIE");
		if (-1 != mgPos) {
			mgIE6 = (6 >= parseInt((navigator.appVersion.substring(mgPos + 4).split(';'))[0].replace(/^\s+|\s+$/, '')));
		}
	}
	if (mgIE6) {
		if (!$('#' + mgCoverID + '2').length) {
			$('<iframe id="' + mgCoverID + '2" src="javascript:false"></iframe>').css({
				position:'absolute',
				top:0,
				left:0,
				width:0,
				height:0,
				zIndex:90000
			}).appendTo('#' + mgBodyID);
		}
	}

	if (!$('#' + mgCoverID).length) {
		$('<div id="' + mgCoverID + '"></div>').css({
			position:'absolute',
			top:0,
			left:0,
			width:0,
			height:0,
			zIndex:100000
		}).appendTo('#' + mgBodyID);
	}

	/* 影のサイズ */
	var mgShadowWidthPixel = 36;
	var mgShadowHeightPixel = 36;
	/* 影部分先読み */
	var mgShadowIdList = [
		'ajax_cont_shadow_tl',
		'ajax_cont_shadow_tc',
		'ajax_cont_shadow_tr',
		'ajax_cont_shadow_cr',
		'ajax_cont_shadow_br',
		'ajax_cont_shadow_bc',
		'ajax_cont_shadow_bl',
		'ajax_cont_shadow_cl'
	];
	{
		for (var i in mgShadowIdList) {
			$('<div id="' + mgShadowIdList[i] + '"></div>').addClass('png_bg').css({
				position:'absolute',
				backgroundImage:'url(/common/image/ajaxcont/' + mgShadowIdList[i] + '.png)'
			}).appendTo('#' + mgBodyID).hide();
		}
	}

	/* for IE6 */
	var mgTempInputId = 'mgTemp';

	/* 覆い隠す<div>要素を開く関数 */
	var mgCoverOpen = function(){
		if ($('#' + mgCoverID) && $('#' + mgBodyID)) {
if (mgIE6 && !mgIFrameCoverForIE6) {
	/* HTML内に記載されている<select>を全て抽出, 非表示の乱 */
	$('select:visible').each(function(){
		/* 代替表示するテキストボックスのサイズに指定するため<select>のサイズを確保 */
		var mgSelectWidth = $(this).width();
		/*var mgSelectHeight = $(this).height();*/
		/* 代替表示するテキストボックスの値 */
		var mgValue = $(this).find('option:selected').text();
		/* 代替表示するテキストボックスの配置箇所を確保 */
		var mgParent = $(this).parent();
		/* 有効性 */
		var mgDisabled = $(this).attr('disabled');
		/* 非表示 */
		$(this).hide();
		/* テキストボックスを設置 */
		$('<input class="' + mgTempInputId + '" type="text" value="' + mgValue + '" />').css({width:mgSelectWidth + 'px'/*, height:mgSelectHeight + 'px'*/}).attr({'disabled':mgDisabled}).appendTo(mgParent);
	});
}

			if (mgIE6) {
				$('#' + mgCoverID + '2').css({
					backgroundColor:'white',
					opacity:0,
					width:$('#' + mgBodyID).width() + 'px',
					height:$('#' + mgBodyID).height() + 'px'
				});
			}

			/* 背景色を指定し透明度を100%にする、背景色がない場合背面を選択できるブラウザ有り */
			$('#' + mgCoverID).css({
				backgroundColor:'white',
				opacity:0,
				width:$('#' + mgBodyID).width() + 'px',
				height:$('#' + mgBodyID).height() + 'px'
			});

			mgIsCovered = true;
			return true;
		}
		return false;
	};

	/* 覆い隠す<div>要素を閉じる関数 */
	var mgCoverClose = function(){
		if (mgIE6) {
			$('#' + mgCoverID + '2').css({
				width:'0px',
				height:'0px'
			});
		}

		/* サイズを0にする */
		$('#' + mgCoverID).css({
			width:'0px',
			height:'0px'
		});

if (mgIE6 && !mgIFrameCoverForIE6) {
	setTimeout(function(){
		/* HTML内に記載されている<select>を全て抽出, 表示の乱 */
		$('select:hidden').each(function(){
			/* 削除 */
			$('.' + mgTempInputId).remove();
			/* 表示 */
			$(this).show();
		});
	}, 10);
}

		mgIsCovered = false;
		return true;
	};

	/* ダイアログ出現位置(画面上から)を算出する関数 */
	var mgGetTop = function(mgTargetID){
		var mgTop = (($(window).height() - $('#' + mgTargetID).height()) / 2) + $(window).scrollTop();
		if (mgTop + ($('#' + mgTargetID).height() + mgShadowHeightPixel) > $('#' + mgBodyID).height()) {
			mgTop = $('#' + mgBodyID).height() - ($('#' + mgTargetID).height() + mgShadowHeightPixel);
		}
		/* 影の部分を考慮 */
		if (mgShadowHeightPixel > mgTop) {
			mgTop = mgShadowHeightPixel;
		}
		/* 計算結果に小数点を含むと隙間ができる場合があるため丸める */
		return Math.ceil(mgTop) + 'px';
	};

	/* ダイアログ出現位置(画面左から)を算出する関数 */
	var mgGetLeft = function(mgTargetID){
		var mgLeft = (($(window).width() - $('#' + mgTargetID).width()) / 2) + $(window).scrollLeft();
		if (mgLeft + ($('#' + mgTargetID).width() + mgShadowWidthPixel) > $('#' + mgBodyID).width()) {
			mgLeft = $('#' + mgBodyID).width() - ($('#' + mgTargetID).width() + mgShadowWidthPixel);
		}
		/* 影の部分を考慮 */
		if (mgShadowWidthPixel > mgLeft) {
			mgLeft = mgShadowWidthPixel;
		}
		/* 計算結果に小数点を含むと隙間ができる場合があるため丸める */
		return Math.ceil(mgLeft) + 'px';
	};

	/* ダイアログを初期化する関数 */
	var mgInitializeDialog = function(mgLinkID, mgDialogId) {
		if ($('#' + mgLinkID)) {
			$('#' + mgLinkID).click(function(){
				if (!$('#' + mgLinkID).data('disabled')) {
					// 選択できないように覆い隠す
					if (mgCoverOpen()) {
						// 選択用ダイアログ風エリア表示
						if ($('#' + mgDialogId)) {
							/* leftの位置を要素の幅から算出するため計算する前に表示しておく */
							$('#' + mgDialogId + ':hidden').show();
							$('#' + mgDialogId).css({
								top:mgGetTop(mgDialogId),
								left:mgGetLeft(mgDialogId),
								opacity:1,
								zIndex:1000000
							});

							var mgShadowList = [
								/* id, top, left, width, height */
								/* 左上の影 */[
									mgShadowIdList[0],
									$('#' + mgDialogId).offset().top - mgShadowHeightPixel,
									$('#' + mgDialogId).offset().left - mgShadowWidthPixel,
									mgShadowWidthPixel,
									mgShadowHeightPixel
								],
								/*  上 の影 */[
									mgShadowIdList[1],
									$('#' + mgDialogId).offset().top - mgShadowHeightPixel,
									$('#' + mgDialogId).offset().left,
									$('#' + mgDialogId).outerWidth(),
									mgShadowHeightPixel
								],
								/* 右上の影 */[
									mgShadowIdList[2],
									$('#' + mgDialogId).offset().top - mgShadowHeightPixel,
									$('#' + mgDialogId).offset().left + $('#' + mgDialogId).outerWidth(),
									mgShadowWidthPixel,
									mgShadowHeightPixel
								],
								/*  右 の影 */[
									mgShadowIdList[3],
									$('#' + mgDialogId).offset().top,
									$('#' + mgDialogId).offset().left + $('#' + mgDialogId).outerWidth(),
									mgShadowWidthPixel,
									$('#' + mgDialogId).outerHeight()
								],
								/* 右下の影 */[
									mgShadowIdList[4],
									$('#' + mgDialogId).offset().top + $('#' + mgDialogId).outerHeight(),
									$('#' + mgDialogId).offset().left + $('#' + mgDialogId).outerWidth(),
									mgShadowWidthPixel,
									mgShadowHeightPixel
								],
								/*  下 の影 */[
									mgShadowIdList[5],
									$('#' + mgDialogId).offset().top + $('#' + mgDialogId).outerHeight(),
									$('#' + mgDialogId).offset().left,
									$('#' + mgDialogId).outerWidth(),
									mgShadowHeightPixel
								],
								/* 左下の影 */[
									mgShadowIdList[6],
									$('#' + mgDialogId).offset().top + $('#' + mgDialogId).outerHeight(),
									$('#' + mgDialogId).offset().left - mgShadowWidthPixel,
									mgShadowWidthPixel,
									mgShadowHeightPixel
								],
								/*  左 の影 */[
									mgShadowIdList[7],
									$('#' + mgDialogId).offset().top,
									$('#' + mgDialogId).offset().left - mgShadowWidthPixel,
									mgShadowWidthPixel,
									$('#' + mgDialogId).outerHeight()
								]
							];
							for (var i = 0; i < mgShadowList.length; i++) {
								$('#' + mgShadowList[i][0]).css({
									top:mgShadowList[i][1] + 'px',
									left:mgShadowList[i][2] + 'px',
									width:mgShadowList[i][3] + 'px',
									height:mgShadowList[i][4] + 'px',
									zIndex:1000000
								}).show();
							}

							if (mgIE6) {
								$('#' + mgCoverID + '2').css({
									top:($('#' + mgDialogId).offset().top - mgShadowHeightPixel) + 'px',
									left:($('#' + mgDialogId).offset().left - mgShadowWidthPixel) + 'px',
									width:($('#' + mgDialogId).outerWidth() + (mgShadowWidthPixel * 2)) + 'px',
									height:($('#' + mgDialogId).outerHeight() + (mgShadowHeightPixel * 2)) + 'px'
								});
							}
						}
					}
				}
				// リンクは無効化
				return false;
			});
		}
	};

	/* ダイアログを閉じる関数 */
	var mgDialogClose = function(){
		if (mgCoverClose()) {
			for (var i = 0; i < mgShadowIdList.length; i++) {
				$('#' + mgShadowIdList[i]).hide();
			}

			$('#' + mgDialogItemID + ':visible').hide();
			$('#' + mgDialogAreaID + ':visible').hide();
		}
		return false;
	};

	mgInitializeDialog(mgLinkItemID, mgDialogItemID);
	mgInitializeDialog(mgLinkAreaID, mgDialogAreaID);

	/* リンク名称を変える関数、クリックした順番も保持 */
	var mgDialogItemCheckedList = [];
	var mgCheckBoxItemClick = function(e){
		if (e.attr('checked')) {
			mgDialogItemCheckedList.push(e.parent().text());
			if (1 == mgDialogItemCheckedList.length) {
				$('#' + mgLinkItemID).text(mgDialogItemCheckedList[0]);
			}
			else {
				$('#' + mgLinkItemID).text(mgDialogItemCheckedList[0] + ' 他' + (mgDialogItemCheckedList.length - 1) + '件選択');
			}
		}
		else {
			var mgNewArray = [];
			for (var i = 0; i < mgDialogItemCheckedList.length; i++) {
				if (e.parent().text() != mgDialogItemCheckedList[i]) {
					mgNewArray.push(mgDialogItemCheckedList[i]);
				}
			}
			mgDialogItemCheckedList = mgNewArray;
			if (1 < mgDialogItemCheckedList.length) {
				$('#' + mgLinkItemID).text(mgDialogItemCheckedList[0] + ' 他' + (mgDialogItemCheckedList.length - 1) + '件選択');
			}
			else if (0 < mgDialogItemCheckedList.length) {
				$('#' + mgLinkItemID).text(mgDialogItemCheckedList[0]);
			}
			else {
				$('#' + mgLinkItemID).text('診療科目を選ぶ');
			}
		}
	};
	$('#' + mgDialogItemID + ' input[type*="checkbox"]').each(function(){
		/* リロード時、デフォルトは全て未選択状態 */
/*
		$(this).attr({'checked':false});
*/

		/* チェックボックス クリック時 */
		$(this).click(function(){
			var mgElement = $(this);
			setTimeout(function(){
				mgCheckBoxItemClick(mgElement);
			}, 10);
		});
	});

	$('#' + mgDialogItemID + ' input[type*="checkbox"]:checked').each(function(){
		mgCheckBoxItemClick($(this));
	});

	/* リンク名称を変える関数、クリックした順番も保持 */
	var mgDialogAreaCheckedList = [];
	var mgCheckBoxPrefClick = function(e, b){
		if (b) {
			mgDialogAreaCheckedList.push(e.parent().text());
			if (1 == mgDialogAreaCheckedList.length) {
				$('#' + mgLinkAreaID).text(mgDialogAreaCheckedList[0]);
			}
			else {
				$('#' + mgLinkAreaID).text(mgDialogAreaCheckedList[0] + ' 他' + (mgDialogAreaCheckedList.length - 1) + '地域選択');
			}
		}
		else {
			var mgNewArray = [];
			for (var i = 0; i < mgDialogAreaCheckedList.length; i++) {
				if (e.parent().text() != mgDialogAreaCheckedList[i]) {
					mgNewArray.push(mgDialogAreaCheckedList[i]);
				}
			}
			mgDialogAreaCheckedList = mgNewArray;
			if (1 < mgDialogAreaCheckedList.length) {
				$('#' + mgLinkAreaID).text(mgDialogAreaCheckedList[0] + ' 他' + (mgDialogAreaCheckedList.length - 1) + '地域選択');
			}
			else if (0 < mgDialogAreaCheckedList.length) {
				$('#' + mgLinkAreaID).text(mgDialogAreaCheckedList[0]);
			}
			else {
				$('#' + mgLinkAreaID).text('地域を選ぶ');
			}
		}
	};

	$('#' + mgDialogAreaID + ' input[type*="checkbox"]').each(function(){
		/* リロード時、デフォルトは全て未選択状態 */
/*
		$(this).attr({'checked':false});
*/
	});

	$('#' + mgDialogAreaID + ' input[type*="checkbox"][name*="pref\[\]"]:checked').each(function(){
		mgCheckBoxPrefClick($(this), true);
	});

	/* 都道府県グループ チェックボックス クリック時 */
	$('#' + mgDialogAreaID + ' input[type*="checkbox"][name*="pref_group"]').click(function(){
		var mgElement = $(this);
		setTimeout(function(){
			var mgIsChecked = mgElement.attr('checked');
			$('#' + mgDialogAreaID + ' input[type*="checkbox"][name*="pref\[\]"][class*="' + mgElement.attr('class') + '"]').each(function(){
				if ($(this).attr('checked') != mgIsChecked) {
					$(this).attr({'checked':mgIsChecked});
					mgCheckBoxPrefClick($(this), mgIsChecked);
				}
			});
		}, 10);
	});

	/* 都道府県 チェックボックス クリック時 */
	$('#' + mgDialogAreaID + ' input[name*="pref\[\]"]').click(function(){
		var mgElement = $(this);
		setTimeout(function(){
			mgCheckBoxPrefClick(mgElement, mgElement.attr('checked'));
		}, 10);
	});

	/* ダイアログ及び影部分以外をクリックした時 */
	if ($('#' + mgCoverID)) {
		$('#' + mgCoverID).click(mgDialogClose);
	}

	/* ダイアログ内の閉じるボタンやリンクに閉じる挙動を追加 */
	$('#' + mgDialogItemID + ' .' + mgCloseButtonClass + ', ' + '#' + mgDialogAreaID + ' .' + mgCloseButtonClass).click(mgDialogClose);

	var mgDialogMove = function(){
		$('div:visible').each(function(){
			var mgTargetID = null;
			var mgTargetLinkID = null;
			switch ($(this).attr('id')) {
				case mgDialogItemID:
					mgTargetID = $(this).attr('id');
					mgTargetLinkID = mgLinkItemID;
					break;
				case mgDialogAreaID:
					mgTargetID = $(this).attr('id');
					mgTargetLinkID = mgLinkAreaID;
					break;
			}
			if (null != mgTargetID) {
				if (mgCoverOpen()) {
					/* 再描画位置取得 */
					var mgMoveTop = parseInt(mgGetTop(mgTargetID).replace(/px$/, ''));
					var mgMoveLeft = parseInt(mgGetLeft(mgTargetID).replace(/px$/, ''));

					/* ダイアログの表示位置を設定 */
					$('#' + mgTargetID).css({
						top:mgMoveTop + 'px',
						left:mgMoveLeft + 'px'
					});
					/* 左上の影の表示位置を設定 */
					$('#' + mgShadowIdList[0]).css({
						top:(mgMoveTop - mgShadowHeightPixel) + 'px',
						left:(mgMoveLeft - mgShadowWidthPixel) + 'px'
					});
					/*  上 の影の表示位置を設定 */
					$('#' + mgShadowIdList[1]).css({
						top:(mgMoveTop - mgShadowHeightPixel) + 'px',
						left:mgMoveLeft + 'px'
					});
					/* 右上の影の表示位置を設定 */
					$('#' + mgShadowIdList[2]).css({
						top:(mgMoveTop - mgShadowHeightPixel) + 'px',
						left:(mgMoveLeft + $('#' + mgTargetID).outerWidth()) + 'px'
					});
					/*  右 の影の表示位置を設定 */
					$('#' + mgShadowIdList[3]).css({
						top:mgMoveTop + 'px',
						left:(mgMoveLeft + $('#' + mgTargetID).outerWidth()) + 'px'
					});
					/* 右下の影の表示位置を設定 */
					$('#' + mgShadowIdList[4]).css({
						top:(mgMoveTop + $('#' + mgTargetID).outerHeight()) + 'px',
						left:(mgMoveLeft + $('#' + mgTargetID).outerWidth()) + 'px'
					});
					/*  下 の影の表示位置を設定 */
					$('#' + mgShadowIdList[5]).css({
						top:(mgMoveTop + $('#' + mgTargetID).outerHeight()) + 'px',
						left:mgMoveLeft + 'px'
					});
					/* 左下の影の表示位置を設定 */
					$('#' + mgShadowIdList[6]).css({
						top:(mgMoveTop + $('#' + mgTargetID).outerHeight()) + 'px',
						left:(mgMoveLeft - mgShadowWidthPixel) + 'px'
					});
					/*  左 の影の表示位置を設定 */
					$('#' + mgShadowIdList[7]).css({
						top:mgMoveTop + 'px',
						left:(mgMoveLeft - mgShadowWidthPixel) + 'px'
					});

					if (mgIE6) {
						$('#' + mgCoverID + '2').remove();
						$('<iframe id="' + mgCoverID + '2" src="javascript:false"></iframe>').css({
							position:'absolute',
							backgroundColor:'white',
							opacity:0,
							top:(mgMoveTop - mgShadowHeightPixel) + 'px',
							left:(mgMoveLeft - mgShadowWidthPixel) + 'px',
							width:($('#' + mgTargetID).outerWidth() + (mgShadowWidthPixel * 2)) + 'px',
							height:($('#' + mgTargetID).outerHeight() + (mgShadowHeightPixel * 2)) + 'px',
							zIndex:90000
						}).appendTo('#' + mgBodyID);
					}
				}
				return;
			}
		});
	};

	/* 文字サイズを変更した場合等ダイアログのサイズが変わった場合を監視,FFだと<div>のresizeが効かない？ */
	var mgCurrentHeight = 0;
	setInterval(function(){
		$('#' + mgDialogItemID + ':visible, #' + mgDialogAreaID + ':visible').each(function(){
			if (0 == mgCurrentHeight) {
				mgCurrentHeight = $(this).outerHeight();
			}
			/* 前にチェックした時から高さが変わっている場合 */
			if (mgCurrentHeight != $(this).outerHeight()) {
				var mgDialogElement = $(this);
				setTimeout(function(){
					mgCurrentHeight = mgDialogElement.outerHeight();

					/*  右 の影の表示位置を設定 */
					$('#' + mgShadowIdList[3]).css({
						height:mgCurrentHeight + 'px'
					});
					/*  左 の影の表示位置を設定 */
					$('#' + mgShadowIdList[7]).css({
						height:mgCurrentHeight + 'px'
					});

					$(window).resize();
				}, 10);
			}
		});
	}, 100);

	/* ウィンドウをリサイズした時に関数 mgDialogMove を呼ぶ */
	$(window).resize(mgDialogMove);
	/* ウィンドウをスクロールした時に関数 mgDialogMove を呼ぶ */
//	$(window).scroll(mgDialogMove);
});

/* 検索結果画面にて「条件を追加・変更する」ボタンをクリックしたときの挙動 */
$(function(){
	if (0 < $('#btnAdd').length) {
		 $('#btnAdd').find('a:first').click(function(){
		 	var e1 = $('.detailSearchBox:hidden');
		 	var e2 = $('.detailSearchBox:visible');
		 	$('#changeSearch').attr("value","1");

/*
		 	setTimeout(function(){
		 		e1.slideDown('first');
		 	}, 100);
		 	e2.animate({
		 		top:$(this).height(),
		 		height:0
		 	}, 400, 'easeInQuart', function(){
		 		$(this).hide();
		 	});
*/
			e1.show();
			e2.hide();
		 	return false;
		 });
	}
});