/* HOST */
var PITAT_HOST = "www.pitat.com";
var PITAT_HOST_TEST = "192.168.40.140";
var IMAGE_HOST = "img.smiland.co.jp";
/** 物件イメージパス * */
var IMAGE_MAIN_PATH = "http://" + IMAGE_HOST + "/imageconvert/cvt2/";
// var cvtResize = "?id=30cc3461be";//resize
var cvtResize = "?id=m8rk89spqx";// thumbnail
var cvtSukashi = "?id=5915bf5f1d";// b2c
// var IMAGE_MAIN_PATH = "/nimg/";
/** NoImage * */
var NO_IMAGE_PATH = "/find/img/no_image.gif";
var NO_IMAGE_PATH2 = "/find/img/no_image2.gif";
/** onmouse画像サイズ(px) * */
var ON_MOUSE_IMAGE_SIZE = 250;
/** サムネイル画像サイズ(px) * */
var THUMBNAIL_WIDTH = 60;
var THUMBNAIL_HEIGHT = 60;
/** ソート項目 * */
var SORT_SYMBOL_DEFAULT = "<span class='sort-symbol'></span>";
var SORT_SYMBOL_ASC = "<span class='sort-symbol-asc'><img src='/find/img/sort_up.png'></span>";
var SORT_SYMBOL_DESC = "<span class='sort-symbol-desc'><img src='/find/img/sort_down.png'></span>";
var SORT_SYMBOL = "<img src='/find/img/sort_symbol.png'>";
var SORT_ITEM_CLOSE = "<img src='/find/img/sort_close.png'>";
/** ソート条件限界数 * */
var SORT_ITEM_LIMIT = 5;
/** 検索条件の保存期間(日) * */
var VALIDITY_TERM = 7;
/** 駅選択ウインドウの状態 * */
var BY_STATION = 0; // 駅名一発検索
var BY_COMMUTE_1 = 1; // 通勤通学時間検索 始点
var BY_COMMUTE_2 = 2; // 通勤通学時間検索 終点
/** 配下条件展開ボタン * */
var OPEN_FOLLOW_COND_BUTTON = "<span class='followCondBtn' onclick='toggleFollowCond(this);'></span>";
/** 編集済みタブチェック * */
var ENTRY_CHECK = "<img src='/find/img/entry_check.png' class='entryCheck' />";
/** アコーディオンアイコン * */
var ACORDION_OPEN = "<img src='/find/img/subhead_open.png' />";
var ACORDION_CLOSE = "<img src='/find/img/subhead_close.png' />";

/** 地図表示ズームレベル * */
/** 物件中心表示 * */
var ZOOM_TARGET = 18;
/** 店舗中心表示 * */
var ZOOM_SHOP = 15;

var useArticleClass = undefined;

/**
 * 依存関係を解決
 */
if (pitatnet === undefined) {
	document.write('<script type="text/javascript" src="/find/js/pitatnet-namespaces.js"></script>');
}
if (pitatnet.constant === undefined) {
	document.write('<script type="text/javascript" src="/find/js/pitatnet-constant.js"></script>');
}
if (pitatnet.map == undefined) {
	document.write('<script type="text/javascript" src="/find/js/pitatnet-map.js"></script>');
}

pitatnet.page.Index = {};
pitatnet.page.Index.map = {};
pitatnet.page.Index.ls = undefined;
pitatnet.page.Index.rentService = {};
pitatnet.page.Index.saleService = {};
pitatnet.page.Index.phService = {};
pitatnet.page.Index.useRent = true;
pitatnet.page.Index.useSale = true;
// pitatnet.page.Index.usePh = true;
pitatnet.page.Index.currentZoomLevel = undefined;
pitatnet.page.Index.rentCondition = {};
pitatnet.page.Index.saleCondition = {};
pitatnet.page.save = true;

/*
 * jQueryの衝突回避 jQuery を使うときは jQuery(); または j$();
 */
// jQuery.noConflict();
// var $j = jQuery;
/*
 * innerTextの取得
 */
var innerText = function(obj) {
	var tmpTxt = obj.innerText;
	// Firefoxの場合、innerTextで取れない
	if (tmpTxt === undefined) {
		tmpTxt = obj.textContent;
	}
	return tmpTxt;
};

/**
 * Query String から 配列を返す
 */
var getParameter = function(str) {
	if (typeof (str) == undefined)
		return new Array;
	var retArr = convQueryStringToArray(str);
	if (document.getElementById("exchange").value == "true") {
		// sengine用 店舗詳細からのリンクの際、QSパラメータを切り捨てられてしまうため、種別のみ補完する
		if (location.pathname.indexOf("sengine") >= 0
				&& location.search.indexOf("articleClass") >= 0) {
			var exArr = convQueryStringToArray(document
					.getElementById("queryStringFromFilter").value);
			exArr["articleClass"] = retArr["articleClass"];
			retArr = exArr;
		} else {
			retArr = convQueryStringToArray(document
					.getElementById("queryStringFromFilter").value);
		}
	}
	return retArr;
};
var convQueryStringToArray = function(str) {
	var dec = decodeURIComponent;
	var par = new Array, itm;
	if (str.indexOf('?', 0) > -1)
		str = str.split('?')[1];
	str = str.split('&');
	for ( var i = 0; str.length > i; i++) {
		itm = str[i].split("=");
		if (itm[0] != '') {
			par[itm[0]] = typeof (itm[1]) == undefined ? true : dec(itm[1]);
		}
	}
	return par;
};

/*
 * 指定クラス表示
 */
function showClass(showtarget) {
	var sections = jQuery(document.getElementsByClassName(showtarget));
	sections.each(function() {
		this.style.display = '';
	});
}
/*
 * 指定クラス非表示
 */
function hideClass(hidetarget) {
	var sections = jQuery(document.getElementsByClassName(hidetarget));
	sections.each(function() {
		this.style.display = 'none';
	});
}

/**
 * 表示制御
 */
var dispInfo = function(targetClass, disp) {
	if (disp && disp.checked) {
		jQuery("." + targetClass).show();
	} else {
		jQuery("." + targetClass).hide();
	}
};

/**
 * イベントバインド
 */
var eventBind = function() {
	//tooltip settings
	$(".dlg_railway").qtip({
		content: 'まず都道府県を選択してください。',
		position: {corner: {target: 'center',tooltip: 'bottomMiddle'}
		},
		style: {tip: {corner:'bottomMiddle',size: {x:15,y:20}},
			name : 'cream',
			border: {width: 5,radius:5}
		},
		hide: 'mouseout',
		show: 'click'
	});

	//dialog settings
	$("div.ui-widget-overlay").live("click",function() {
		if($("#sideDivision").dialog('isOpen')) {
			$("#sideDivision").dialog('close');
		}
		if($("#sideLine").dialog('isOpen')) {
			$("#sideLine").dialog('close');
		}
		if($("#sideKodawari").dialog('isOpen')) {
			$("#sideKodawari").dialog('close');
		}
	});
	var sideDivisionTitle = '<div class="dialoghead"><ul class="dialogarea"><li class="headtitle">地域を選択</li>' +
	'<li class="dialogcount">該当数<span class="countNum">0</span>件</li>' +
	'<li class="dialogsubmit"><a href="#" class="submittxt" onclick="javascript:$(\'#sideDivision\').dialog(\'close\');return false;"><span>絞り込む</span></a></li></ul><ul class="dialoginfo">' +
	'<li class="dialogselect">選択中の沿線[<span class="lineCount">0</span>件]</li>' +
	'<li class="lineText selecttxt"></li>' +
	'<li class="dialogselect">選択中の駅[<span class="stationCount">0</span>件]</li>' +
	'<li class="stationText selecttxt"></li>' +
	'<li class="submitcaution">選択中の沿線・駅も条件に含まれます。</li>' +
	'<li class="dialogsubmit_railway"><a href="#" class="submittxt lnk_railway" onclick="javascript:changeDialog(\'#sideDivision\',\'#sideLine\',true);"><span>沿線・駅を変更する</span></a></li>' +
	'</ul></div>';

	var dialogoption = {
			autoOpen: false,
			height:600,
			maxHeight:1440,
			width:750,
			maxWidth:2560,
			modal:true,
			dialogClass: 'dialogbase',
			stack:false
	};
	var ie7dialogoption = {
			autoOpen: false,
			height:500,
			width:550,
			modal:true,
			dialogClass: 'dialogbase',
			stack:false,
			resizable:false,
			draggable:false
	};
	var defaultOpt = (ie === 7)?ie7dialogoption:dialogoption;
	$( "#sideDivision" ).dialog($.extend({},defaultOpt,{title:sideDivisionTitle}));
	$('.dlg_area').bind('click',function() {
		changeTab('list');
		$("#sideDivision").dialog('open');
	});

	var sideLineTitle = '<div class="dialoghead"><ul class="dialogarea">' +
	'<li class="headtitle">沿線・駅を選択</li>' +
	'<li class="dialogcount">該当数<span class="countNum">0</span>件</li><li class="dialogsubmit">' +
	'<a href="#" class="submittxt" onclick="javascript:$(\'#sideLine\').dialog(\'close\');return false;"><span>絞り込む</span></a></li></ul><ul class="dialoginfo">' +
	'<li class="dialogselect">選択中の都道府県[<span class="divisionCount">0</span>件]</li>' +
	'<li class="divisionText selecttxt"></li>' +
	'<li class="dialogselect">選択中の市区町村[<span class="municipalityCount">0</span>件]</li>' +
	'<li class="municipalityText selecttxt"></li>' +
	'<li class="submitcaution">選択中の市区町村も条件に含まれます。</li>' +
	'<li class="dialogsubmit_area"><a href="#" class="submittxt" onclick="javascript:changeDialog(\'#sideLine\',\'#sideDivision\');"><span>地域を変更する</span></a></li>' +
	'</ul><ul class="railwayjump">' +
	'<li><a href="#" onclick="javascript:scrollDialog(\'#sideLine\',\'#jline1\');">JR線</a></li>'+
	'<li><a href="#" onclick="javascript:scrollDialog(\'#sideLine\',\'#jline2\');">私鉄</a></li>'+
	'<li><a href="#" onclick="javascript:scrollDialog(\'#sideLine\',\'#jline3\');">地下鉄</a></li>' +
	'<li><a href="#" onclick="javascript:scrollDialog(\'#sideLine\',\'#jline4\');">バス便・車</a></li>' +
	'</ul></div>';

	$("#sideLine").dialog($.extend({},defaultOpt,{title:sideLineTitle}));
	$(".dlg_railway").bind("click",function() {
		if(getCheckedDivisionCount() == 0) {
			$(".dlg_railway .qtip").qtip("enable");
			return;
		}
		$(".dlg_railway .qtip").qtip("disable");
		changeTab("list");
		$("#sideLine").dialog("open");
	});

	var sideKodawariTitle = '<div class="dialoghead"><ul class="dialogarea"><li class="headtitle">こだわり条件を選択</li>' +
	'<li class="dialogcount">該当数<span class="countNum">0</span>件</li><li class="dialogsubmit">' +
	'<a href="#" class="submittxt" onclick="javascript:$(\'#sideKodawari\').dialog(\'close\');return false;"><span>絞り込む</span></a></li></ul></div>';

	$("#sideKodawari").dialog($.extend({},defaultOpt,{title:sideKodawariTitle}));
	$(".dlg_kodawari").bind("click",function() {
		$("#sideKodawari").dialog("open");
	});

	// 従属条件展開ボタン追加
	jQuery("#divisions label").wrap("<span></span>").after(
			OPEN_FOLLOW_COND_BUTTON)
	jQuery("#divisions .followCondBtn").attr("title", "市区町村");
	// 従属条件チェック時 親条件にチェックする
	jQuery("div.followList").find("input:checkbox:checked").live(
			"click",
			function() {
				jQuery(this).closest("div.followList").prevAll("span").eq(0).find(
						"input:checkbox:not(:checked)").attr("checked", "checked");
			});
	jQuery("#sideDivision div.followList").find("input:checkbox:checked").live("click",
			function() {
				createItemsByDivisionSelect();
			});
	// 親チェック解除時 従属条件のチェックを外す
	jQuery("#sideDivision input:checkbox[name!='dlg_municipality']:not(input:checked)").live(
			"click",
			function() {
				jQuery(this).closest("span").nextAll("div.followList").eq(0).find(
						"input:checkbox:checked").attr("checked", "");
			});
	jQuery("#sideLine input:checkbox[name!='dlg_station']:not(input:checked)").live(
			"click",
			function() {
				jQuery(this).closest("span").nextAll("div.followList").eq(0).find(
						"input:checkbox:checked").attr("checked", "");
			});

	// テーブルのヘッダ項目にソートイベントをbind
	jQuery(".sort").live("click", function() {
		sortSearchResult(this);
	});
	// ソート条件 昇順/降順切り替え
	jQuery(".sortTypeDisp").live("click", function() {
		toggleSortOrder(this);
	});
	// ソート条件 削除
	jQuery(".sortDel").live("click", function() {
		deleteSortCond(this);
	});
	// ソートコントロール
	jQuery("#sortItemContainer").sortable({
		containment : "parent",
		placeholder : "placeholder"
		// ,axis: "x"
		// ,tolerance: "pointer"
		,
		forcePlaceholderSize : true,
		cursor : "pointer",
		revert : true,
		dropOnEmpty : false,
		update : function(event, ui) {
			event;
			ui
		}
	}).bind("sortupdate", function(event, ui) {
		// 背景画像
		fixSortBGColor();
		searchList();
	});
	// タブ内条件クリア
	jQuery(".clearCond").bind("click", function() {
		clearConditionPerTab(this);
		createItemsByDivisionSelect();
		searchList();
	});

	// 検索条件
	jQuery("#articleClass").bind("change", function() {
		clearAllConditions();
		selectArticleClass(this.value, true);
	});

	$("#divisions input:checkbox[name='dlg_division']").live('click',function() {
		createItemsByDivisionSelect();
		searchList();
	});
	$("#divisions input:checkbox[name='dlg_municipality']").live('click',function() {
		searchList();
	});
	$("#lines input:checkbox[name='dlg_line'],#lines input:checkbox[name='dlg_station']").live('click',function() {
		searchList();
	});

	$("#sideKodawari input:checkbox[name='dlg_kodawari']").live('click',function() {
		searchList();
	});

	jQuery("#sideBasic input:checkbox,#sideBasic input:radio").live("click", searchList);
	jQuery("#sideBasic select").bind("change", searchList);

	// 地図リストチェックボックス
	jQuery(".list :checkbox:checked").live("click", function() {
		if (jQuery(".list :checkbox:checked").length > 20) {
			alert("チェックできるのは20件までです。");
			jQuery(this).attr("checked", "");
			return false;
		}
		;
	});

	// チェックアイテム操作ボタン聖書
	jQuery(":checkbox[name=detailCheck]").live("click", function() {
		controlCheckButtonsAct();
	});

};

/**
 * NowLoading表示
 */
var showNowLoading = function() {
	// 検索結果表示のクリア
	document.getElementById("searchResult").innerHTML = "";
	var loadingStyle = document.getElementById("nowLoading").style;
	// 画面中央に配置
	/*
	 * var screenWidth = document.body.clientWidth ||
	 * document.documentElement.clientWidth; // 横幅 var screenNowHeight =
	 * document.documentElement.clientHeight; // 現在表示している画面の高さ var screenHeight =
	 * document.body.clientHeight || document.body.scrollHeight; // 画面の高さ var
	 * screenX = document.body.scrollLeft ||
	 * document.documentElement.scrollLeft; // 横の移動量 var screenY =
	 * document.body.scrollTop || document.documentElement.scrollTop; // 縦の移動量
	 * loadingStyle.left = (screenWidth/2) - (300) + "px"; loadingStyle.top =
	 * (screenNowHeight/2 + screenY) - (100/2) + "px";
	 */
	loadingStyle.display = "block";
	// 都道府県確定待ち表示を隠す
	document.getElementById("noDivision").style.display = "none";
};
var hideNowLoading = function() {
	document.getElementById("nowLoading").style.display = "none";
};
/**
 * onload
 */
var qsParams = {};
jQuery(document)
		.ready(
				function() {

					// var start = (new Date).getTime();
					IMAGE_HOST = document.getElementById("imageHost").value;
					IMAGE_MAIN_PATH = "http://" + IMAGE_HOST
							+ "/imageconvert/cvt2/";

					// 画面要素にイベントバインド
					eventBind();
					var uType = document.getElementById("useType").value;
					// B2B用に入れ替える
					if ("B" == uType) {
						dispChangeByBSite();
						jQuery(".listCtrlBottom").hide();
					}
					// すまいらんど用のテキストに入れ替える
					if ("S" == uType || "L" == uType) {
						dispChangeBySite();
					}
					// invest用に非表示にする
					if ("I" == uType) {
						jQuery(".investDeact").remove();
					}
					//ショップエンジンの場合
					var pathName = location.pathname;
					if(pathName && (pathName.indexOf("sengine") >= 0 || pathName.indexOf("mengine") >= 0)) {
						$("#sideMenu div.divisionBox, #sideMenu div.lineBox").hide();
					}

					// QueryString
					var qs = location.search;
					// パラメータをクエリストリングとして受け取っている、もしくはフィルタ経由である
					// QueryStringを配列に詰め替え
					qsParams = getParameter(qs);
					if (qs.length > 0
							|| document.getElementById("exchange").value == "true") {
						// NowLoading表示
						showNowLoading();
						if (pitatnet.page.save == true
								&& qsParams["keep"] == "r") {
							// 同期通信
							Kumu.Ajax.ASYNC = false;
							var ajaxFnc = function user_searchPage_ajaxRetrieveCondition(
									res) {
								qsParams = res;
							};
							Kumu.Ajax.executeTeedaAjax(ajaxFnc, {
								"articleClass" : qsParams["articleClass"]
							});
							// 非同期通信に戻す
							Kumu.Ajax.ASYNC = true;
							pitatnet.page.save = false;
						}

						// 表示制御
						dispItemsBySearchCond();

						// リスト・地図表示の初期設定
						// デフォルトはリスト表示。学校名検索からの場合地図表示
						if (qsParams["view"] == "map" && isIE6() == false) {
							setViewArea("map");
							// 学校名検索
							if (qsParams["landmark"]) {
								pitatnet.page.Index.move(qsParams["landmark"]);
							}
							// レンタルエンジンの地図から検索
							var kamc = qsParams["kamc"]; // 加盟店コード
							var kmsc = qsParams["kmsc"]; // 支店コード
							var useType = qsParams["useType"]; // 検索タイプ
							if (kamc && kamc != undefined && kamc != null
									&& kamc != "" && kmsc && kmsc != undefined
									&& kmsc != null && kmsc != ""
									&& (useType == "R" || useType == "L")) {
								// 店舗の座標を取得し地図の中心にセット
								shopLocation(kamc, kmsc);
							}
						} else if (qsParams["view"] == "map" && isIE6() == true) {
							alert('地図機能を利用するにはブラウザをアップグレードしてください。');
							setViewArea("list");
						} else {
							setViewArea("list");
							var diag = qsParams["view"];
							if(diag && diag.length > 6) {
								diag = diag.substring(5,diag.length);
								if('area' === diag) {
									$( "#sideDivision" ).dialog('open');
								}
								else if('railway' === diag) {
									$( "#sideLine" ).dialog('open');
								}
							}
						}

						var existFlg = false;

						// 特定のパラメータが来た場合に処理を追加
						// 駅名一発検索・通勤通学時間検索
						var stationName = qsParams["stationName"];
						if (stationName && stationName.length > 0) {
							ekitanSearch(stationName);
							existFlg = true;
						}

						// 駅名一発検索のときはコールバック処理で以下処理を行う
						if (!existFlg) {
							afterOnLoadSearchProcess();
						}

					} else {
						// パラメータ無し
						// リスト・地図表示の初期設定
						setViewArea("list");
						// 必須項目の初期値をセット
						initParameter();
					}


//					// 都道府県がない場合、都道府県タブをアクティブにする
//					if (jQuery("#divisions :checkbox:checked").length == 0) {
//						tab.showpage(document.getElementById('division'));
//					}


					// var end = (new Date).getTime();
					// Kumu.log("onLoad : " + (end - start));
				});
/**
 * onload検索後の処理 画面表示
 */
var afterOnLoadSearchProcess = function() {
	// Kumu.log("afterOnLoadSearchProcess start");
	// 同期通信
	Kumu.Ajax.ASYNC = false;
	// 入力フィールドに反映
	setParameters(qsParams);
	// 必須項目の初期値をセット
	initParameter();
	// 非同期通信に戻す
	Kumu.Ajax.ASYNC = true;
	// NowLoading非表示
	hideNowLoading();
	// Kumu.log("afterOnLoadSearchProcess end");
};

/**
 * サイトによる表示変更:B2B
 */
function dispChangeByBSite() {
	// ヘッダー部
	jQuery("#header h1").html("");
	jQuery("#header p").html("");
	jQuery("#header h2").html("");
}

/**
 * サイトによる表示変更 （現在はすまいらんどのみ）
 */
function dispChangeBySite() {
	// ヘッダー部
	jQuery("#header h1").html("賃貸・不動産【すまいらんど】[賃貸マンション、賃貸アパート、中古マンション、一戸建て、土地]");
	jQuery("#header p").html("物件情報を豊富に掲載しています。賃貸、売買、不動産ならすまいらんどに是非、ご相談ください");
	jQuery("#header h2").html(
			"<a href=\"/\">賃貸・不動産[マンション、一戸建て、土地]は[smiland.co.jp]にお任せ</a>");
	// ヘッダーナビ1
	jQuery("li.home").replaceWith(
			"<li class='save'><a href=\"/link/outline.html\">会社概要</a></li>");
	jQuery("li.group")
			.replaceWith(
					"<li class='fav'><a href=\"/link/sitepolicy.html\" target=\"_blank\">サイトポリシー</a></li>");
	jQuery("li.help")
			.replaceWith(
					"<li class='new'><a href=\"http://www.pitatnet.jp/\" target=\"_blank\">不動産会社の皆様へ</a></li>");
	jQuery("li.site").remove();
	// 問合せリンク
	jQuery("li.contact").html(
			"<a href=\"mailto:webmaster@smiland.co.jp\">お問合わせ</a>");
	// フッター部
	jQuery("h3.b2bDisabled")
			.html(
					"<a href=\"/\">&copy; 2009  賃貸、売買の総合不動産ポータルサイト　不動産のことならすまいらんどにお任せ下さい。</a>");
}

/**
 * 条件による表示制御
 */
var dispItemsBySearchCond = function() {
	var kamc = qsParams["kamc"]; // 加盟店コード
	var kmsc = qsParams["kmsc"]; // 支店コード
	var useType = qsParams["useType"]; // 検索タイプ
	var shojParam = qsParams["shoj"]; // 店舗名
	var shopParam = qsParams["shop"]; // 店舗パス

	var station = jQuery(".station");
	var rash_time = jQuery(".rash_time");
	var ret_save = jQuery(".ret_save");
	var shoj = document.getElementById("shoj");
	var shop = document.getElementById("shop");

	// 加盟店コードあり
	if (kamc && kamc != undefined && kamc != null && kamc != "" && kmsc
			&& kmsc != undefined && kmsc != null && kmsc != ""
			&& useType != "R" && useType != "L") {
		// 店舗名表示の制御
		// if(shojParam && shojParam!=undefined && shojParam!=null &&
		// shojParam!=""){
		if (shojParam) {
			shoj.style.display = "block";
			// 店舗詳細ページへのリンク B2B検索の時にはなし
			if (useType != "B" && shopParam && shopParam != undefined
					&& shopParam != null && shopParam != "") {
				shop.href = "/shopDetail/" + shopParam + ".html";
			}
		}
		// 駅名一発検索、通勤通学時間検索の制御
		if (station) {
			station.hide();
		}
		if (rash_time) {
			rash_time.hide();
		}
		// B2B検索
		if (useType && useType != undefined && useType != null
				&& useType == "B") {
			ret_save.hide();
		}

	}

	// 検索条件の保存・駅名一発検索・通勤通学時間検索
	// pitat.com以外はなし
	if ((useType && useType != undefined && useType != null)
			&& (useType == "B" || useType == "I" || useType == "S"
					|| useType == "L" || useType == "R")) {
		ret_save.hide();
		station.hide();
		rash_time.hide();
	}

};
/**
 * 必須項目の初期値をセット
 */
var initParameter = function() {
	// 種別 選択済みかどうか調べ、未選択なら0をセット
	var articleClass = getArticleClass();
	if (articleClass.length == 0) {
		if (qsParams["articleClass"] == undefined) {
			articleClass = setArticleClass(0);
		} else {
			articleClass = setArticleClass(qsParams["articleClass"]);
		}
	}
	// 表示制御のためクリックイベント
	selectArticleClass(getArticleClass(), false);

};

/**
 * 入力フィールドに反映 TODO
 */
var setParameters = function(params) {
	// var start = (new Date).getTime();
	// 同期通信
	var tmpAsync = Kumu.Ajax.ASYNC;
	Kumu.Ajax.ASYNC = false;

	// articleClassだけ先にセット
	setArticleClass(params["articleClass"]);
	params["articleClass"] = undefined;

	// articleClassごとの表示制御
	/*
	 * 住宅:0:rent-housing 店舗・事務所・倉庫:1:rent-office 駐車場:2:rent-parking 売買
	 * 一戸建・テラスハウス:3:sale-house マンション:4:sale-mansion 土地:5:sale-land
	 * 一棟売り（ビル・マンション・アパート・店舗）:6:sale-wing 区分所有（投資マンション・店舗）:7:sale-compart
	 * 事業用土地:8:sale-land
	 */
	var ac = getArticleClass();
	var dispClassName = "";
	switch (ac) {
	case "0":
		dispClassName = "rent-housing";
		break;
	case "1":
		dispClassName = "rent-office";
		break;
	case "2":
		dispClassName = "rent-parking";
		break;
	case "3":
		dispClassName = "sale-house";
		break;
	case "4":
		dispClassName = "sale-mansion";
		break;
	case "5":
		dispClassName = "sale-land";
		break;
	case "6":
		dispClassName = "sale-wing";
		break;
	case "7":
		dispClassName = "sale-compart";
		break;
	case "8":
		dispClassName = "sale-land";
		break;
	}

	for (name in params) {
		// var start2 = (new Date).getTime();
		var param = params[name];
		var valType = typeof (param);
		if (valType == "function") {
			// 関数型を削除
			params[name] = undefined;
		} else {
			if (name == "division" || name == "municipality" || name == "line"
					|| name == "station") {
				// 都道府県(division),市区町村(municipality),沿線(line),駅(station)の場合
				// divisionをパラメータとして受け取っていることを確認
				var divisionParam = params["division"];

				if (divisionParam == undefined || divisionParam == null
						|| divisionParam.length == 0) {
					// 都道府県が確定しなければ以下の市区町村、沿線、駅も設定できないので削除
					params["municipality"] = undefined;
					params["line"] = undefined;
					params["station"] = undefined;
				} else {
					// 都道府県を選択状態にする
					setDOMValue("dlg_division", divisionParam);
					// 都道府県選択状態に基づき画面制御 沿線、市区町村リストを作成
					createItemsByDivisionSelect();
					// 処理の終了したdivisionをparamsから削除
					params["division"] = undefined;
					// 市区町村をパラメータとして受け取っているか確認
					var municipalityParam = params["municipality"];
					if (municipalityParam != undefined
							|| document.getElementById("useType").value == "R") {
						// 市区町村リスト作成
						var div = jQuery("#divisions").find(":checked");
						div.each(function() {
							$(this).closest("label").next(".followCondBtn")
									.click();
						});
					}
					if (municipalityParam != undefined) {
						// 値をセット
						setDOMValue("dlg_municipality", municipalityParam);
						// 処理の終了したmunicipalityをparamsから削除
						params["municipality"] = undefined;
					}
					// 沿線をパラメータとして受け取っているか確認
					var lineParam = params["line"];
					if (lineParam == undefined) {
						// 沿線が確定しなければ駅も設定できないので削除
						params["station"] = undefined;
					} else {
						// 値をセット
						setDOMValue("dlg_line", lineParam);
						// 駅リストを作成
						createStationListByLineSelect();
						// 処理の終了したlineをparamsから削除
						params["line"] = undefined;
						// 駅をパラメータとして受け取っているか確認
						var stationParam = params["station"];
						if (stationParam != undefined) {
							setDOMValue("dlg_station", stationParam);
							// 処理の終了したstationをparamsから削除
							params["station"] = undefined;
						}
					}
				}
			} else if(name == "kodawari") {
				// こだわり
				// 値セット
				setDOMValue("dlg_kodawari", param, dispClassName);
				// 終了した要素を削除
				params[name] = undefined;
			} else {
				// その他
				// 値セット
				setDOMValue(name, param, dispClassName);
				// 終了した要素を削除
				params[name] = undefined;
			}
		}
		// var end2 = (new Date).getTime();
		// Kumu.log("setParameters : " + name + " : " + (end2 - start2));
	}
//	// レンタルエンジン 選択都道府県以外の地域を閉じる
//	if (document.getElementById("useType").value == "R"
//			&& jQuery("#divisions :checkbox:checked").length > 0) {
//		var sh = jQuery(
//				"#divisions .subheading+div:not(:has(:checked)), #lines .subheading+div:not(:has(:checked))")
//				.hide().prev(".subheading");
//		sh.find("img").remove();
//		sh.append(ACORDION_OPEN);
//	}
	// 非同期通信or元に戻す
	Kumu.Ajax.ASYNC = tmpAsync;
	// var end = (new Date).getTime();
	// Kumu.log("setParameters : " + (end - start));
};
/**
 * 指定DOMにValueをセット 住宅:0:rent-housing 店舗・事務所・倉庫:1:rent-office 駐車場:2:rent-parking
 * 売買 一戸建・テラスハウス:3:sale-house マンション:4:sale-mansion 土地:5:sale-land
 * 一棟売り（ビル・マンション・アパート・店舗）:6:sale-wing 区分所有（投資マンション・店舗）:7:sale-compart
 * 事業用土地:8:sale-landbiz
 *
 * @param name
 *            対象name
 * @param value
 *            セットするvalue
 * @param pNodeClass
 *            親ノードクラス 種別ごとの表示制御
 * @returns
 */
var setDOMValue = function(name, value, pNodeClass) {
	// var start = (new Date).getTime();
	// セレクタ用に クラス名なので"."付与
	if (pNodeClass) {
		pNodeClass = "." + pNodeClass;
	}
	var jObj = jQuery("[name='" + name + "'],[name='mainForm:" + name + "']");
	var jObjLength = jObj.length;
	if (jObjLength > 0) {
		var tagName = jObj.attr("tagName");
//		if(!tagName) {
//			//jquery 1.7.1で取れない？
//			tagName = jObj[0].nodeName;
//		}
		var type = jObj.attr("type");
		// Kumu.log(tagName + " : " + type + " : " + name + " : " + value);
		// 取得したDOMのtypeごとに値をセット
		if (tagName == "INPUT") {
			if (type == "text" || type == "hidden") {
				// textbox,hidden
				// valueにセット
				jObj.val(value);
			} else if (type == "radio" || type == "checkbox") {
				// radiobutton,checkbox
				// valueが合致するものをチェック
				// 複数パラメータはカンマ区切りで
				var valArr = value.split(",");
				var valLength = valArr.length;
				for ( var i = 0; i < valLength; i++) { // 複数に対応
					// valueが被るケースがあるので判定
					// 該当する場合は親ノードのクラスで特定する
					if (jObj.filter(tagName + "[value='" + valArr[i] + "']").length > 1) {
						jObj.filter(
								pNodeClass + " " + tagName + "[value='"
										+ valArr[i] + "']").attr("checked",
								"checked");
					} else {
						jObj.filter(tagName + "[value='" + valArr[i] + "']")
								.attr("checked", "checked");
					}
				}
			}
		} else if (tagName == "SELECT") {
			jObj.val(value);
		}
	}
	// var end = (new Date).getTime();
	// Kumu.log("setDOMValue : " + name + " : " + (end - start));
};
/**
 * 画像読み込み失敗 サムネイル用
 */
var noImage = function(img) {
	img.src = NO_IMAGE_PATH;
};
/**
 * 画像読み込み失敗 間取り、外観用
 */
var noImage2 = function(img) {
	img.src = NO_IMAGE_PATH2;
};
/**
 * 検索結果一覧リストの画像を生成 一覧からtoucChとkkkcChを読み込み画像オブジェクトを生成してappend
 */
var createPics = function() {
	// 行取得
	var rows = jQuery("tr.detailData");
	// すでに画像があればクリア TODO クリアせず要素書き換えのほうが早いかも
	jQuery("#floorPlanImg", rows).remove();
	var rowsLength = rows.length;

	for ( var i = 0; i < rowsLength; i++) {
		var currentRow = rows.get(i);
		// 賃貸なら棟コードtoucChと区画コードkkkcCh
		// 売買ならbkncChを取得
		var tmpDsskCh;
		var tmpKamcCh;
		var tmpBkncCh;
		var tmpToucCh;
		var tmpKkkcCh;
		var type;
		tmpKamcCh = jQuery("#imkaCh", currentRow).text();
		tmpToucCh = jQuery("#imtoCh", currentRow).text();
		tmpKkkcCh = jQuery("#imkkCh", currentRow).text();
		var toucChExpression = jQuery("#toucCh", currentRow).text();
		if( "" == toucChExpression) {
			type = "sale";
		}
		else {
			type = "rent";
		}

		// 取得したbkncCh,toucCh、kkkcChをもとに画像を作成
		// ex:<img
		// src="http://dgnas1.smiland.co.jp/share/RENT/TOW291/sTOW291.jpg"
		// onerror="noImage(this);" />
		var imgObj = document.createElement("img");
		// 詳細ページへのアンカー
		var aObj = document.createElement("a");
		aObj.target = "_blank";
		var checkEngine = document.getElementById("engineType").value;
		var checkUseType = document.getElementById("useType").value;
		var checkValue = checkEngine ? checkEngine
				: (checkUseType ? checkUseType : 'N');
		aObj.onclick = function() {
			openDetail(this.href, checkValue);
			return false;
		};

		// B2B検索の時はhttpsにする
		if ("B" == document.getElementById("useType").value) {
			IMAGE_MAIN_PATH = "https://" + IMAGE_HOST + "/imageconvert/cvt2/";
		}
		imgObj.src = IMAGE_MAIN_PATH + tmpKamcCh + "/" + type + "/" + tmpToucCh + "/"
		+ tmpKkkcCh + "/madori.jpg" + cvtResize;
		if (type == "rent") {
			// 賃貸
			aObj.href = "/rentDetail/" + jQuery("#toucCh", currentRow).text() + "_" + jQuery("#kkkcCh", currentRow).text() + ".html";
		} else {
			// 売買
			aObj.href = "/buyDetail/" + jQuery("#bkncCh", currentRow).text() + ".html";
		}

		imgObj.onerror = function() {
			noImage(this);
			return false;
		};
		imgObj.onmouseover = function() {
			dispPic(this);
			return false;
		};
		imgObj.onmouseout = function() {
			hidePic(this);
			return false;
		};
		imgObj.width = THUMBNAIL_WIDTH;
		imgObj.height = THUMBNAIL_HEIGHT;
		imgObj.id = "floorPlanImg";
		aObj.appendChild(imgObj);
		jQuery("td.pictd", currentRow).append(aObj);
	}
};
/**
 * サムネイル画像のパスをmainPath,toucCh,kkkcChに分割
 */
var analyzeImagePath = function(path) {
	if(path.indexOf("cvt2") > 0){
		var tmpQuery = path.split("/");
		var rentOrSale = tmpQuery[6];
		var toucCh = tmpQuery[7];
		var kkkcCh = tmpQuery[8];
		var kamcCh = tmpQuery[5];
		var tmpQueryLength = tmpQuery.length;
		var mainPath = tmpQuery[0];
		for ( var i = 1; i < 5; i++) {
			mainPath += "/" + tmpQuery[i];
		}
		return new Array(mainPath, toucCh, kkkcCh, rentOrSale, kamcCh);

	}else{
		var tmpQuery = path.split("/");
		var rentOrSale = tmpQuery[5];
		var toucCh = tmpQuery[6];
		var kkkcCh = tmpQuery[7];
		var tmpQueryLength = tmpQuery.length;
		var mainPath = tmpQuery[0];
		for ( var i = 1; i < 5; i++) {
			mainPath += "/" + tmpQuery[i];
		}
		return new Array(mainPath, toucCh, kkkcCh, rentOrSale);
	}




};
/**
 * 画像のリサイズ
 */
var resizePic = function(img) {
	if (img.height > img.width) {
		if (img.height > ON_MOUSE_IMAGE_SIZE) {
			var hTmp = img.height;
			var wTmp = img.width;
			img.style.height = ON_MOUSE_IMAGE_SIZE + "px";
			img.style.width = (wTmp * (ON_MOUSE_IMAGE_SIZE / hTmp)) + "px";
			// Kumu.log("HEIGHT " + img.src);
		}
	} else {
		if (img.width > ON_MOUSE_IMAGE_SIZE) {
			var hTmp = img.height;
			var wTmp = img.width;
			img.style.width = ON_MOUSE_IMAGE_SIZE + "px";
			img.style.height = (hTmp * (ON_MOUSE_IMAGE_SIZE / wTmp)) + "px";
			// Kumu.log("WIDTH " + img.src);
		}
	}
	img.style.visibility = "visible";

};
/**
 * 画像の表示 一覧の画像のonmouseイベント
 */
var dispPic = function(img) {
	// 画像が存在しない場合 OR imgを読み込み終わっていない場合は終了
	// imgオブジェクトから取得するsrcは絶対パスになるので一旦imgオブジェクトを通して比較する
	var tmpImg = document.createElement("img");
	tmpImg.src = NO_IMAGE_PATH;
	if (img.src == tmpImg.src || !img.complete) {
		return;
	}

	// 画像アドレスの取得
	var imagePath = analyzeImagePath(img.src);
	var mainPath = imagePath[0];
	var toucCh = imagePath[1];
	var kkkcCh = imagePath[2];
	var rentOrSale = imagePath[3];
	var kamcCh = null;
	if(imagePath[4]){
		kamcCh = imagePath[4]
	}

	// Kumu.log(mainPath + " : " + toucCh + " : " + kkkcCh);

	// 取得した情報からイメージオブジェクトを生成
	var imgId = toucCh + "_" + kkkcCh;
	var imgLayer = $i(imgId);
	// イメージオブジェクトの存在チェック
	if (!imgLayer) {
		// 存在しないので作成 外側になるオブジェクト imgBoxを格納し、表示位置の基準になる
		imgLayer = document.createElement("div");
		imgLayer.id = imgId;
		imgLayer.style.position = "absolute";
		// 間取り
		var newImg1 = document.createElement("img");
		newImg1.style.visibility = "hidden";
		newImg1.onerror = function() {
			noImage2(this);
			return false;
		};
		newImg1.onload = function() {
			resizePic(this);
		};
		newImg1.src = mainPath + "/" + kamcCh + "/" + rentOrSale + "/" + toucCh + "/"
		+ kkkcCh + "/madori.jpg" + cvtSukashi;

		// resizePic(newImg1);
		// 外観画像
		var newImg2 = document.createElement("img");
		newImg2.style.visibility = "hidden";
		newImg2.onerror = function() {
			noImage2(this);
			return false;
		};
		newImg2.onload = function() {
			resizePic(this);
		};
		newImg2.src = mainPath + "/" + kamcCh + "/" + rentOrSale + "/" + toucCh + "/"
		+ kkkcCh + "/bukken_1.jpg" + cvtSukashi;
		// resizePic(newImg2);
		// 画像を格納するオブジェクト
		var imgBox = document.createElement("div");
		imgBox.appendChild(newImg1);
		imgBox.appendChild(newImg2);
		imgBox.className = "imglayer"; // cssのimglayerクラスで位置を指定
		imgLayer.appendChild(imgBox);
		// img.parentNode.insertBefore(imgLayer,img); //親ノードの第一要素として挿入
		document.body.appendChild(imgLayer); // bodyに挿入
	}

	var imgs = jQuery("img", jQuery(imgLayer));
	var newImg1 = imgs[0];
	var newImg2 = imgs[1];
	if (newImg1.complete) {
		resizePic(newImg1);
	}
	if (newImg2.complete) {
		resizePic(newImg2);
	}

	// 画面中央から右寄りに配置
	screenWidth = document.body.clientWidth || document.documentElement.clientWidth; // 横幅
	screenNowHeight = document.documentElement.clientHeight; // 現在表示している画面の高さ
	screenHeight = document.body.clientHeight || document.body.scrollHeight; // 画面の高さ
	screen_X = document.body.scrollLeft || document.documentElement.scrollLeft; // 横の移動量
	screen_Y = document.body.scrollTop || document.documentElement.scrollTop; // 縦の移動量
	imgLayer.style.left = (screenWidth / 2) - ON_MOUSE_IMAGE_SIZE * 2 / 2 + 200 + "px";
	imgLayer.style.top = (screenNowHeight / 2 + screen_Y) - ON_MOUSE_IMAGE_SIZE / 2 + "px";

	// 検索結果一覧件数セレクトボックスを非表示に
	// （IE6対応 画像レイヤより手前に来る z-indexの指定もselectに対してはできないので非表示に）
	// 20110223 IE6は現在レガシー扱いなのでコメントアウト
	// document.getElementById("listCount").style.display = "none";

	imgLayer.style.display = "block"; // 表示
};
/**
 * 画像の非表示 一覧の画像のonmouseoverイベント
 */
var hidePic = function(img) {
	// IDの取得
	var imagePath = analyzeImagePath(img.src);
	var toucCh = imagePath[1];
	var kkkcCh = imagePath[2];
	var imgLayer = $i(toucCh + "_" + kkkcCh);
	if (imgLayer) {
		// 検索結果一覧件数セレクトボックスを表示
		document.getElementById("listCount").style.display = "inline";
		imgLayer.style.display = "none";
	}

};

/**
 * 検索結果一覧表テーブルの偶数/奇数行それぞれにクラスをセット
 */
var setStripeTable = function() {
	var rows = jQuery("#detailData");
	// 偶数行の色を設定
	rows.filter(":even").addClass('even-row');
	// 奇数行の色を設定
	rows.filter(":odd").addClass('odd-row');
}

/*
 * ページアンカー作成
 */
var createPagingAnchor = function() {
	// 検索HIT件数
	var searchCount = $i("totalCount").innerHTML.replace(/,/g, "");
	// 1ページの表示数
	var listCount = $i("listCount").value;
	// ページ番号
	var pageNum = $i("pageNum").value;
	// ページ番号最大 検索HIT件数/1ページの表示数 割り切れないときは+1
	var pageNumMax = Math.floor(searchCount / listCount);
	if (searchCount % listCount > 0) {
		pageNumMax++;
	}
	// ページアンカーをクリア
	var pageAnchors = $i("pageAnchors"); // ページアンカー親エレメント
	var pageAnchorsBottom = $i("pageAnchorsBottom"); // ページアンカー親エレメント
	pageAnchors.innerHTML = ""; // 子エレメントを削除
	pageAnchorsBottom.innerHTML = ""; // 子エレメントを削除
	// ページ番号を基準として前後2ページ分のアンカーを作成
	var pageStart = parseInt(pageNum) - 2;
	var pageEnd = parseInt(pageNum) + 2;
	var container = document.createElement("div");
	var container2 = document.createElement("div");
	var element;
	// <<前ページ
	if ((pageNum - 1) > 0) {
		element = document.createElement("a");
		element.href = "#";
		element.onclick = function() {
			searchListPaging(pageNum - 1);
			return false;
		};
		element.innerHTML = " << 前ページ ";
		container.appendChild(element);
		element = document.createElement("a");
		element.href = "#";
		element.onclick = function() {
			searchListPaging(pageNum - 1);
			return false;
		};
		element.innerHTML = " << 前ページ ";
		container.appendChild(element);
		container2.appendChild(element);
		element = null;
	}
	for ( var j = pageStart; j <= pageEnd; j++) {
		// 0ページ以下は存在しないので作成しない
		// ページ番号最大より大きいページは作成しない
		if (j > 0 && j <= pageNumMax) {
			// 各アンカーの間に挟みこむ描画
			element = document.createTextNode("　|　");
			container.appendChild(element);
			element = null;
			if (j == pageNum) {
				// 現在のページ番号は表示のみ
				element = document.createElement("span");
			} else {
				// ページアンカ
				element = document.createElement("a");
				element.href = "#";
				element.onclick = function() {
					searchListPaging(this.innerHTML);
					return false;
				};
			}
			element.innerHTML = j;
			container.appendChild(element);
			// 各アンカーの間に挟みこむ描画
			element = document.createTextNode("　|　");
			container2.appendChild(element);
			element = null;
			if (j == pageNum) {
				// 現在のページ番号は表示のみ
				element = document.createElement("span");
			} else {
				// ページアンカ
				element = document.createElement("a");
				element.href = "#";
				element.onclick = function() {
					searchListPaging(this.innerHTML);
					return false;
				};
			}
			element.innerHTML = j;
			container2.appendChild(element);
			element = null;
		}
	}
	// 閉じる描画
	element = document.createTextNode("　|　");
	container.appendChild(element);
	element = document.createTextNode("　|　");
	container2.appendChild(element);
	element = null;
	// 次ページ >>
	if ((eval(pageNum) + 1) <= pageNumMax) {
		element = document.createElement("a");
		element.href = "#";
		element.onclick = function() {
			searchListPaging(eval(pageNum) + 1);
			return false;
		};
		element.innerHTML = "  次ページ >> ";
		container.appendChild(element);
		element = document.createElement("a");
		element.href = "#";
		element.onclick = function() {
			searchListPaging(eval(pageNum) + 1);
			return false;
		};
		element.innerHTML = "  次ページ >> ";
		container2.appendChild(element);
		element = null;
	}
	pageAnchors.appendChild(container);
	pageAnchorsBottom.appendChild(container2);

};

/**
 * 検索後処理
 */
var afterSearchProcess = function(res) {
	// var start = (new Date).getTime();
	// Kumu.log(res["detailData"]);
	document.getElementById("searchResult").innerHTML = res["detailData"]; // 検索結果一覧リスト
	Kumu.Ajax.render(res["headerData"]);
	// 件数のカンマ区切りフォーマット
	var cnt = pitatnet.common.FormatUtils.formatComma(jQuery("#totalCount").text());
	jQuery(".countNum").text(cnt);

	// 行数
	var rowCnt = jQuery("#detailData").length;
	if (rowCnt > 0) {
		createPics(); // 画像表示
	}
	createPagingAnchor(); // ページアンカーの作成
	jQuery("#pageNum").val(1); // ページ番号を1に戻す

	jQuery(".sort").after(SORT_SYMBOL);

	// B2B検索
	// 棟名称表示・物元表示チェックの状態に合わせて表示制御
	dispInfo('b2bTouInfo', document.getElementById("touInfo"));
	dispInfo('b2bBtmgInfo', document.getElementById("btmgInfo"));

	// チェック制御
	controlCheckButtonsAct();

	// var end = (new Date).getTime();
	// Kumu.log("afterSearchProcess : " + (end - start));

};

/**
 *
 */
function filterValue(name) {
	var fieldvalue = document.getElementById(name).value;
	if (fieldvalue != "") {
		fieldvalue = fieldvalue.replace(/\b(AND)*(OR)*(NOT)*\b/g, "");
		fieldvalue = fieldvalue.replace(/\B[\?\*\+\-\!]/g, "");
		fieldvalue = fieldvalue.replace(/[,~^&:\|\{\}\[\]]/g, "");
		fieldvalue = fieldvalue.replace(/[.]*\([\s]*\)/g, "");
		jQuery("#" + name).val(fieldvalue);
	}
}

/*
 * 検索結果一覧表示
 */
var searchListProcess;
var searchList = function() {
	reflectDialog('#condDivision select[name="division"]','#divisions input[name="dlg_division"]:checked');
	reflectDialog('#condMunicipality select[name="municipality"]','#divisions input[name="dlg_municipality"]:checked');
	reflectDialog('#condLine select[name="line"]','#lines input[name="dlg_line"]:checked');
	reflectDialog('#condStation select[name="station"]','#lines input[name="dlg_station"]:checked');
	reflectDialog('#condKodawari select[name="kodawari"]','#sideKodawari input[name="dlg_kodawari"]:checked');
	reflectDialogLabel();
	if (jQuery("#list:visible").length > 0) {

		// var start = (new Date).getTime();
		if (searchListProcess) {
			// 既にprocessが存在している場合はキャンセル
			searchListProcess.cancel();
		}

		// ajaxのキーワード除去"[]{}"
		filterValue("freeWord");
		filterValue("uniqCh");

		showNowLoading(); // NowLoading表示
		var ajaxFnc = function user_searchPage_ajaxSearchResult(res) {
			// alert("user_searchPage_ajaxSearchResult");
			// Kumu.log("user_searchPage_ajaxSearchResult");
			afterSearchProcess(res); // 検索後処理
			hideNowLoading(); // NowLoading非表示
			jQuery("#status").css("color", "blue").text("on complete");
			// var end = (new Date).getTime();
			// Kumu.log("searchListComp : " + (end - start));
		}
		ajaxFnc.onLoading = function(req, ajaxComponent) {
			jQuery("#status").css("color", "blue").text("on loading");
		}
		ajaxFnc.onLoaded = function(req, ajaxComponent) {
			jQuery("#status").css("color", "blue").text("on loaded");
		}
		ajaxFnc.onInteractive = function(req, ajaxComponent) {
			jQuery("#status").css("color", "blue").text("on interactive");
		}
		ajaxFnc.onFailure = function(req, ajaxComponent) {
			hideNowLoading(); // NowLoading非表示
			jQuery("#status").css("color", "red").text("on failure");
		}
		ajaxFnc.onException = function(req, ajaxComponent) {
			hideNowLoading(); // NowLoading非表示
			jQuery("#status").css("color", "red").text("on exception");
		}
		var form = Kumu.FormHelper.create('mainForm');
		// Kumu本体のログ機能でログ出力
		var sform = Kumu.JSONSerializer.serialize(form);
		// Kumu.log(sform);
		// 実行
		// Kumu.log("searchList : " + Kumu.Ajax.ASYNC);
		searchListProcess = Kumu.Ajax.executeTeedaAjax(ajaxFnc, {
			"mainForm" : sform,
			"method" : "POST"
		});
		// var end = (new Date).getTime();
		// Kumu.log("searchList : " + (end - start));
		// searchListProcess = Kumu.Ajax.executeTeedaAjax(ajaxFnc, {"mainForm" :
		// sform}, "t");

	}

	if (jQuery("#map:visible").length > 0) {
		// 地図の更新
		// 地図表示の場合のみ更新する
		// 賃貸/売買判別
		/*
		 * 住宅:0:rent-housing 店舗・事務所・倉庫:1:rent-office 駐車場:2:rent-parking 売買
		 * 一戸建・テラスハウス:3:sale-house マンション:4:sale-mansion 土地:5:sale-land
		 * 一棟売り（ビル・マンション・アパート・店舗）:6:sale-wing 区分所有（投資マンション・店舗）:7:sale-compart
		 * 事業用土地:8:sale-landbiz
		 */

		var tmpVal = getArticleClass();
		pitatnet.page.Index.callService(tmpVal);
		// 件数のカンマ区切りフォーマット
		var cnt = pitatnet.common.FormatUtils.formatComma(jQuery("#hitNumber").text());
		jQuery(".countNum").text(cnt);
	}

	// タブ毎のエントリー状態チェック
	entryCheck();
};

var reflectDialog = function(postSelector,srcSelector) {
	$(postSelector).html('');//empty()
	var ckdList = $(srcSelector);
	var buf = new pitatnet.common.StringBuffer();
	for ( var i =0; i < ckdList.length; i++) {
		var checkedVal = $(ckdList[i]).val();
		buf.append('<option selected="selected" value="' + checkedVal + '"/>');
	}
	$(postSelector).html(buf.toString());//empty()
}

var reflectDialogLabel = function() {
	$('.divisionText').text(getCheckedDivisionText(15));
	$('.divisionCount').text(getCheckedDivisionCount());
	$('.municipalityText').text(getCheckedMunicipalityText(15));
	$('.municipalityCount').text(getCheckedMunicipalityCount());
	$('.lineText').text(getCheckedLineText(15));
	$('.lineCount').text(getCheckedLineCount());
	$('.stationText').text(getCheckedStationText(15));
	$('.stationCount').text(getCheckedStationCount());
	if(getCheckedDivisionCount() == 0) {
		$("a.lnk_railway").hide();
	}
	else {
		$("a.lnk_railway").show();
	}
};

/*
 * 検索結果一覧表示 引数：ページ番号
 */
var searchListPaging = function(pageNum) {
	// alert("searchListPaging : " + pageNum);
	$i('pageNum').value = pageNum;
	searchList();
};

/*
 * selectboxをクリア
 */
var clearOptions = function(select) {
	// alert("clearOptions");
	var listcnt = select.length;
	for ( var i = listcnt - 1; i >= 0; i--) {
		select.options[i] = null;
	}
};

/**
 * 市区町村リスト作成
 */
var createMunicipalityProcess;
var createMunicipality = function(js1cCh) {
	// Kumu.log("createMunicipality start");
	if (createMunicipalityProcess) {
		// 既にprocessが存在している場合はキャンセル
		createMunicipalityProcess.cancel();
	}
	function user_searchPage_ajaxMunicipalityList(res) {
		// Kumu.log("user_searchPage_ajaxMunicipalityList start");
		var js1cCh = res["js1cCh"].value;
		js1cCh = js1cCh.replace(/(^\s+)|(\s+$)/g, ""); // トリム
		var js1jVc = res["js1cCh"].label;
		var id = "municipality_" + js1cCh;
		// 都道府県ごとのdiv
		var container = document.createElement("div");
		container.id = id;
		container.className = "followList";
		// 都道府県見出し
		// 市区町村リスト
		var list = res["js2cCh"];
		list.map(function(v) {
			// チェックボックス作成
			var checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			checkbox.name = "dlg_municipality";
			checkbox.className = "cond municipality";
			checkbox.value = js1cCh + "_" + v.value;
			// ラベル作成
			var label = document.createElement("label");
			label.appendChild(checkbox);
			label.appendChild(document.createTextNode(v.label));
			container.appendChild(label);
		});
		jQuery("[name='dlg_division'][value='" + js1cCh + "']").closest("span").after(
				container);
		jQuery("[name='dlg_division'][value='" + js1cCh + "']").closest("span").after(
				"<div class='floatclear'></div>"); // IE7表示崩れ対応
		// Kumu.log("user_searchPage_ajaxMunicipalityList end");
	}
	;
	// Kumu.log("createMunicipality : " + Kumu.Ajax.ASYNC);
	createMunicipalityProcess = Kumu.Ajax.executeTeedaAjax(
			user_searchPage_ajaxMunicipalityList, {
				"js1cCh" : js1cCh,
				"method" : "POST"
			});
	// Kumu.log("createMunicipality end");
};
/**
 * 市区町村の選択状態をクリアする
 */
var clearMunicipality = function() {
	// sideAddress内のチェックボックスのチェックを全て外す
	jQuery("input:checkbox", "#sideAddress").attr("checked", "");
};

/**
 * 駅リスト作成
 */
var createStationProcess;
var createStation = function(js1cChArr, enscCh) {
	if (createStationProcess) {
		// 既にprocessが存在している場合はキャンセル
		createStationProcess.cancel();
	}
	// Kumu.log("createStation start");
	function user_searchPage_ajaxStationList(res) {
		// Kumu.log("user_searchPage_ajaxStationList start");
		var enscCh = res["enscCh"].value;
		var ensjVc = res["enscCh"].label;
		var id = "station_" + enscCh;
		// 沿線ごとのdiv
		var container = document.createElement("div");
		container.id = id;
		container.className = "followList";
		// 駅リスト
		var list = res["ekicCh"];
		list.map(function(v) {
			// チェックボックス作成
			var checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			checkbox.name = "dlg_station";
			//checkbox.className = "cond";
			checkbox.value = enscCh + "_" + v.value;
			// ラベル作成
			var label = document.createElement("label");
			label.appendChild(checkbox);
			label.appendChild(document.createTextNode(v.label));
			container.appendChild(label);
		});
		var tmpTarget;
		jQuery("input[name=dlg_line][value=" + enscCh + "]").each(function() {
			if (jQuery(this).closest("label").text() !== "バス・車その他") {
				tmpTarget = jQuery(this);
			}
		});
		tmpTarget.closest("span").after(container);
		tmpTarget.closest("span").after("<div class='floatclear'></div>"); // IE7表示崩れ対応
		// Kumu.log("user_searchPage_ajaxStationList end");
	}
	;
	// Kumu.log("createStation : " + Kumu.Ajax.ASYNC);
	createStationProcess = Kumu.Ajax.executeTeedaAjax(
			user_searchPage_ajaxStationList, {
				"js1cChArr" : js1cChArr,
				"enscCh" : enscCh,
				"method" : "POST"
			});
	// Kumu.log("createStation end");
};
/**
 * 沿線の選択状態から駅リストの作成
 */
var createStationListByLineSelect = function() {
	// ループ
	// 選択中の沿線名を取得し表示する
	// 沿線コードから駅リストを作成
	var selectedLines = jQuery("input[name='dlg_line']:checked");
	var selectedLinesCnt = selectedLines.length;
	// チェック済み都道府県
	var checkedDivisions = jQuery("input[name='dlg_division']:checked");
	var checkedCount = checkedDivisions.length;
	// ループ
	// 選択中の都道府県コードの配列
	var tmpValArr = new Array();
	for ( var i = 0; i < checkedCount; i++) {
		var tmpObj = jQuery(checkedDivisions[i]);
		var tmpVal = tmpObj.val();
		tmpValArr.push(tmpVal);
	}
	for ( var i = 0; i < selectedLinesCnt; i++) {
		var currentLine = jQuery(selectedLines.get(i));
		var currentLineVal = currentLine.val();
		// 沿線名称 checkboxの親ノードのtext
		var lineName = currentLine.parent().text();
		// lineDisp += " " + lineName;
		// 駅リスト
		// バス・車その他ならDBアクセスせずに選択肢作成 TODO
		if (currentLineVal == '001' && lineName == "バス・車その他") {
			// 一旦消す
			jQuery('#station_other', '#sideStation').remove();
			var enscCh = '001';
			var ensjVc = 'バス・車その他';
			var id = "station_other";
			// 沿線ごとのdiv
			var container = document.createElement("div");
			container.id = id;
			// 沿線見出し
			var division = document.createElement("span");
			division.appendChild(document.createTextNode(ensjVc));
			division.className = "subheading";
			container.appendChild(division);
			var div = document.createElement("div");
			// 駅リスト
			// バス便:001
			// チェックボックス作成
			var checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			checkbox.name = "dlg_station";
			//checkbox.className = "cond";
			checkbox.value = enscCh + "_" + '001'; // バス便
			// ラベル作成
			var label = document.createElement("label");
			label.appendChild(checkbox);
			label.appendChild(document.createTextNode('バス便'));
			div.appendChild(label);
			// 車その他:002
			// チェックボックス作成
			var checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			checkbox.name = "dlg_station";
			checkbox.value = enscCh + "_" + '002';
			// ラベル作成
			var label = document.createElement("label");
			label.appendChild(checkbox);
			label.appendChild(document.createTextNode('車その他'));
			div.appendChild(label);

			container.appendChild(div);
			$("#sideStation").appendChild(container);
			jQuery(":checkbox", "#sideStation").bind("click", searchList);

		} else {
			createStation(tmpValArr, currentLineVal);
		}
	}
	// 表示
	// document.getElementById("lineDisp").value = lineDisp;
};

/**
 * 沿線リスト作成
 */
var createRailwayLine = function(js1cChArr) {
	// alert("createRailwayLine");
	// Kumu.log("createRailwayLine start");
	function user_searchPage_ajaxRailwayLineList(res) {
		// Kumu.log("user_searchPage_ajaxRailwayLineList start");
		// alert("user_searchPage_ajaxRailwayLineList");
		var ensBuf = new pitatnet.common.StringBuffer();
		var resLength = res.length;
		for ( var i = 0; i < resLength; i++) {
//			var container = document.createElement("div");
			ensBuf.append("<div>");
			var currentMap = res[i];
			// 区分
			var kbncCh = currentMap["kbncCh"];
			var kbncChLabel = kbncCh.label;
			var kbncChValue = kbncCh.value;
//			// 見出しを作成
//			var lineKbn = document.createElement("span");
//			lineKbn.appendChild(document.createTextNode(kbncChLabel));
//			lineKbn.className = "subheading"
//			lineKbn.id = "jline" + kbncChValue;
//			container.appendChild(lineKbn);
			ensBuf.append('<span class="subheading" id="' + "jline" + kbncChValue + '">' + kbncChLabel + '</span>');
			// 沿線
			var enscChList = currentMap["enscCh"];
			var enscChListLength = enscChList.length;
			// 沿線チェックボックスリストを作成
//			var div = document.createElement("div");
			ensBuf.append("<div>");
			jQuery.each(enscChList, function() {
				ensBuf.append('<label><input name="dlg_line" type="checkbox" id="dlg_line" value="' + this.value + '" />' + this.label + '</label>');
//				// チェックボックス作成
//				var checkbox = createElementWithName("input", "dlg_line");
//				checkbox.type = "checkbox";
//				checkbox.value = this.value;
//				checkbox.id = "dlg_line"; // IEで、nameでdomをうまく拾えなかった。のでidも振る
//				// ラベル作成
//				var label = document.createElement("label");
//				label.appendChild(checkbox);
//				label.appendChild(document.createTextNode(this.label));
//				div.appendChild(label);
			});
			ensBuf.append("</div></div>");
//			container.appendChild(div);
//			jQuery("#lines").append(container);
			jQuery("#lines").html(ensBuf.toString());
			// alert(kbncChLabel + " : " + kbncChValue + " : " +
			// enscChListLength);
		}
		// 従属条件展開ボタン追加
		jQuery("#lines label:has(input[name='dlg_line'])").wrap("<span></span>")
				.after(OPEN_FOLLOW_COND_BUTTON);
		jQuery("#lines .followCondBtn").attr("title", "駅");

		// Kumu.log("user_searchPage_ajaxRailwayLineList end");
	}
	// Kumu.log("createRailway : " + Kumu.Ajax.ASYNC);
	Kumu.Ajax.executeTeedaAjax(user_searchPage_ajaxRailwayLineList, {
		"js1cChArr" : js1cChArr,
		"method" : "POST"
	});
	// Kumu.log("createRailwayLine end");
};





/**
 * 沿線の選択状態をクリアする
 */
var clearLineList = function() {
	jQuery("input[name='dlg_line'").attr("checked", "");
};

/**
 * 都道府県の選択状態を基に画面制御 沿線選択ボタンの制御 都道府県名表示制御 市区町村リストの作成 沿線リストの作成
 */
var createItemsByDivisionSelect = function() {
	// alert("createItemsByDivisionSelect");
	// TODO 選択状態を保持するためにクローン
	var lineParams = jQuery("#lines [name='dlg_line']").serializeArray();
	var stationParams = jQuery("#lines [name='dlg_station']").serializeArray();
	// 沿線リストをクリア
	jQuery("#lines").empty();
	// チェック済み都道府県
	var checkedDivisions = jQuery("input:checked[name='dlg_division']");
	var checkedCount = checkedDivisions.length;
	// 都道府県コードから沿線リストを作成
	var divisionArr = new Array();
	for ( var i = 0; i < checkedCount; i++) {
		var tmpObj = jQuery(checkedDivisions[i]);
		var tmpText = tmpObj.parent().text();
		var tmpVal = tmpObj.val();
		// 沿線リスト作成用
		divisionArr.push(tmpVal);
	}

	// 同期通信 TODO
	var tmpAsync = Kumu.Ajax.ASYNC;
	Kumu.Ajax.ASYNC = false;
	// 沿線リスト作成
	createRailwayLine(divisionArr);
	// 沿線・駅の選択状態の反映
	if (lineParams) {
		jQuery.each(lineParams, function(i, field) {
			setDOMValue("dlg_line", field.value);
		});
		if (stationParams) {
			jQuery.each(stationParams, function(i, field) {
				var tmpcd = field.value.split("_");
				if (jQuery("div.followList#station_" + tmpcd[0]).length == 0) {
					createStation(divisionArr, tmpcd[0]);
				}
				setDOMValue("dlg_station", field.value);
			});
		}
	}
	// 非同期通信or元に戻す
	Kumu.Ajax.ASYNC = tmpAsync;

	// notice表示
	dispNotice();
};

/**
 * 都道府県の確定待ち thickboxが閉じられて元の位置に要素が戻るのを待ってから検索を行う
 */
var waitDivisionProcess;
var searchListWithWaitDivision = function() {
	if (jQuery("#divisions", "#divisionSelect").length > 0) {
		// 検索
		searchList();
		// インターバルをクリア
		clearInterval(waitDivisionProcess);
	}
};

/**
 * 都道府県選択クリアボタン押下時
 */
var clickDivisionClearButton = function() {
	// alert("clickDivisionClearButton");
	// 都道府県チェックボタンのチェックを外す
	var divisionList = $n('division');
	for ( var i = 0, maxCnt = divisionList.length; i < maxCnt; i++) {
		divisionList[i].checked = false;
	}
};

/**
 * タブ内の条件をクリア
 *
 * @returns
 */
var clearConditionPerTab = function(obj) {
	jQuery("div.sideCond:visible :checkbox").attr("checked", "");
	jQuery("div.sideCond:visible :text").val("");
	jQuery("div.sideCond:visible select").val("0");
	jQuery("div.sideCond:visible :radio").attr("checked", "").filter(
			"[value='0']").attr("checked", "checked");
};

/**
 * 条件を全てクリア hide=true なら非表示のアイテムも対象とする
 */
var clearAllConditions = function() {
	// 絞り込み条件を全てクリアする
	// サイドを取得
	var sub = jQuery("#sub");
	// 都道府県も未選択状態になるので市区町村、沿線、駅リストをクリア
	//jQuery("#sideAddress,#lines,#sideStation").html("");
	// チェックボックス チェックを外す
	jQuery(":checkbox", sub).attr("checked", "");
	// ラジオボタン チェックを外す value=0をチェック
	var radios = jQuery(":radio", sub);
	radios.attr("checked", "");
	radios.filter("[value='0']").attr("checked", "checked");
	// セレクトボックスをデフォルト選択にする ただし種別はそのまま
	jQuery("select:not([id=articleClass])", sub).val("0");
	// テキストボックスを空に
	jQuery(":text", sub).val("");
	// notice表示
	dispNotice();

	// 売買土地の場合
	var val = getArticleClass();
	if (val == "5") {
		controlSaleLand();
	}

	//こだわりもクリア
	jQuery("input:checkbox", "#sideKodawari").attr("checked", "");
};

/**
 * 条件クリアボタン押下時
 */
var clickClearAllConditions = function() {
	clearAllConditions();
	searchList();
};



/**
 * 一括チェック 一括チェックボックスクリック時処理
 */
var allCheck = function(checked) {
	if (checked) {
		jQuery("#detailData input[type=checkbox]").attr("checked", "checked");
	} else {
		jQuery("#detailData input[type=checkbox]").attr("checked", "");
	}
	controlCheckButtonsAct();
};

/**
 * 検索結果一覧ヘッダ項目クリック(ソート)
 */
var sortSearchResult = function(obj) {
	// ソートコントロール設定
	var sortItemContainer = jQuery("#sortItemContainer");

	// すでにソート条件として存在する？
	var sortItem = sortItemContainer
			.children(".sortItem:has(.sortCondition[value=" + obj.id + "])");
	if (sortItem.length > 0) {
		// 昇順/降順を入れ替える
		toggleSortOrder(sortItem.find(".sortTypeDisp"));
	} else {
		// 条件数チェック
		var cnt = sortItemContainer.children(".sortItem").length;
		if (cnt >= SORT_ITEM_LIMIT) {
			alert("並び替え条件は" + SORT_ITEM_LIMIT + "個までです。");
			return false;
		}
		// 新たに作成
		sortItem = document.createElement('span');
		sortItem.className = "sortItem";
		var sortCondition = document.createElement('input');
		sortCondition.className = "sortCondition";
		sortCondition.name = "sortCondition";
		sortCondition.type = "hidden";
		sortCondition.value = obj.id;
		var sortType = document.createElement('input');
		sortType.className = "sortType";
		sortType.name = "sortType";
		sortType.type = "hidden";
		sortType.value = "asc";
		/*
		 * //優先度変更ボタン var sortShiftPrev = document.createElement('span');
		 * sortShiftPrev.className = "sortShiftPrev";
		 * jQuery(sortShiftPrev).text("←"); var sortShiftNext =
		 * document.createElement('span'); sortShiftNext.className =
		 * "sortShiftNext"; jQuery(sortShiftNext).text("→");
		 */
		var sortCondDisp = document.createElement('span');
		sortCondDisp.className = "sortCondDisp";
		jQuery(sortCondDisp).text(jQuery(obj).text());
		var sortTypeDisp = document.createElement('span');
		sortTypeDisp.className = "sortTypeDisp";
		sortTypeDisp.innerHTML = SORT_SYMBOL_ASC;
		var sortDel = document.createElement('span');
		sortDel.className = "sortDel";

		// background用クラス設定
		jQuery(sortItem).addClass("bg" + (cnt + 1));

		jQuery(sortDel).html(SORT_ITEM_CLOSE);
		jQuery(sortItem).append(sortCondition).append(sortType).append(
				sortCondDisp).append(sortDel).append(sortTypeDisp);
		jQuery(sortItemContainer).append(sortItem).sortable("refresh");
	}

	// 検索実行
	searchList();
};

/**
 * sortItem背景画像
 */
var fixSortBGColor = function() {
	var sortItem = jQuery("#sortItemContainer").children(".sortItem");
	if (sortItem.length == 0) {
		return false;
	} else {
		sortItem.each(function(idx, ele) {
			var className = ele.className;
			var classArr = className.split(" ");
			for ( var i = 0; i < classArr.length; i++) {
				if (classArr[i].match("^bg[1-5]$")) {
					// 背景画像変更のため、何番目かによってクラスを変更
					jQuery(ele).removeClass(classArr[i]).addClass(
							"bg" + (idx + 1));
					break;
				}
			}
		});
	}
};

/**
 * ソート条件 昇順/降順切り替え
 *
 * @param obj
 * @returns
 */
var toggleSortOrder = function(obj) {
	var sortType = jQuery(obj).siblings(".sortType");
	if (sortType.val() == "asc") {
		sortType.val("desc");
		jQuery(obj).html(SORT_SYMBOL_DESC);
	} else {
		sortType.val("asc");
		jQuery(obj).html(SORT_SYMBOL_ASC);
	}

	// 検索実行
	searchList();
};

/**
 * ソート条件 削除
 *
 * @param obj
 * @returns
 */
var deleteSortCond = function(obj) {
	jQuery(obj).closest(".sortItem").remove();

	// 背景画像入れ替え
	fixSortBGColor();

	// 検索実行
	searchList();
}

/**
 * ソート条件クリア
 *
 * @returns
 */
var sortClear = function() {
	jQuery(".sortItem").remove();
}

/**
 * ソート優先度の変更
 */
pitatnet.page.Index.shiftPrevSortPriority = function(obj) {
	var clickedItem = jQuery(obj).closest(".sortItem");
	var nextItem = clickedItem.prev(".sortItem");
	if (nextItem) {
		nextItem.before(clickedItem.hide().fadeIn()).hide().fadeIn();
		searchList();
	}
};
pitatnet.page.Index.shiftNextSortPriority = function(obj) {
	var clickedItem = jQuery(obj).closest(".sortItem");
	var nextItem = clickedItem.next(".sortItem");
	if (nextItem) {
		nextItem.after(clickedItem.hide().fadeIn()).hide().fadeIn();
		searchList();
	}
};

/**
 * 種別変更 種別ラジオボタンクリック時処理 賃貸 住宅:0:rent-housing 店舗・事務所・倉庫:1:rent-office
 * 駐車場:2:rent-parking 売買 一戸建・テラスハウス:3:sale-house マンション:4:sale-mansion
 * 土地:5:sale-land 一棟売り（ビル・マンション・アパート・店舗）:6:sale-wing
 * 区分所有（投資マンション・店舗）:7:sale-compart 事業用土地:8:sale-landbiz
 */
var selectArticleClass = function(val, clearFlg) {
	useArticleClass = val;
	// 賃貸
	var rHousing = jQuery(".rent-housing");
	var rOffice = jQuery(".rent-office");
	var rParking = jQuery(".rent-parking");
	// 売買
	var sHouse = jQuery(".sale-house");
	var sMansion = jQuery(".sale-mansion");
	var sLand = jQuery(".sale-land");
	var sWing = jQuery(".sale-wing");
	var sCompart = jQuery(".sale-compart");
	// 入力項目を隠す
	rHousing.hide();
	rOffice.hide();
	rParking.hide();
	sHouse.hide();
	sMansion.hide();
	sLand.hide();
	sWing.hide();
	sCompart.hide();
	// 検索結果表示テーブルを削除する
	var searchResult = jQuery("#searchResult");
	searchResult.empty();
	// 入力内容を一部クリアする
	if (clearFlg) {
		jQuery("input[name='roomType']", "#sub").attr("checked", ""); // 種別
		jQuery("input[name='kodawari'],input[name='dlg_kodawari']", "#sub").attr("checked", ""); // こだわり条件
		jQuery("input[name='bkho']", "#sub").attr("checked", ""); // 種別
	}

	// ソート条件をデフォルトに
	// 画像ポイント+賃貸は賃料rtp1In、駐車場のみrtp1nIn、売買は販売価格hbykBi
	// （画像ポイント指定を条件にJava側で処理）
	// 必要な入力項目のみ表示する
	if (val == 0) { // 賃貸住宅
		rHousing.show();
	} else if (val == 1) { // 賃貸オフィス
		rOffice.show();
	} else if (val == 2) { // 賃貸駐車場
		rParking.show();
	} else if (val == 3) { // 売買一戸建・テラスハウス
		sHouse.show();
	} else if (val == 4) { // 売買マンション
		sMansion.show();
	} else if (val == 5 || val == 8) { // 売買土地/事業用土地
		sLand.show();
		if (val == "5") { // 売買土地の場合
			controlSaleLand();
		}
	} else if (val == 6) { // 売買一棟売り
		sWing.show();
	} else if (val == 7) { // 売買区分所有
		sCompart.show();
	}
	// ソート条件クリア
	sortClear();
	// B2B検索
	if ("B" != document.getElementById("useType").value) {
		jQuery(".b2bEnabled").hide();
	}
	// 地図検索
	pitatnet.page.Index.useRent = false;
	pitatnet.page.Index.useSale = false;
	if (val == 0 || val == 1 || val == 2) {
		pitatnet.page.Index.useRent = true;
	} else if (val == 3 || val == 4 || val == 5 || val == 6 || val == 7
			|| val == 8) {
		pitatnet.page.Index.useSale = true;
	}
	updateMapListSorter(val);
	searchList(); // 検索
};

/**
 * 詳細表示ボタンクリック
 */
var dispDetails = function() {
	// alert("dispDetails");
	// 遷移先
	var url = "/find/view/user/detailList.html";
	// 区切り文字
	var delimiter = ":";
	// 検索結果一覧 行
	var rows = jQuery("tr", "#searchResult");
	// チェックされているチェックボックスの数
	var checkedCnt = 0;
	rows.each(function(index, row) {
		if (jQuery("input[name=detailCheck]", row).attr("checked")) {
			checkedCnt++;
		}
	});
	// チェックなし
	if (checkedCnt == 0) {
		alert("物件が選択されていません。");
		return false;
	}
	// 詳細チェックボックスがチェックされている行のtoucCh,kkkcChを取得する
	var tmpArr = new Array(checkedCnt);
	var i = 0;
	rows.each(function(index, row) {
		if (jQuery("input[name=detailCheck]", row).attr("checked")) {
			var code;
			code = jQuery("span[id^=bkncCh]", row).text();
			if (code == "") {
				code = jQuery("span[id^=toucCh]", row).text() + "_"
						+ jQuery("span[id^=kkkcCh]", row).text();
			}
			tmpArr[i] = code;
			i++;
		}
	});
	// 種別を取得
	var articleClass = getArticleClass();
	// パラメータ
	var param = "?articleClass=" + articleClass + "&paramList="
			+ tmpArr.join(delimiter);

	if (document.getElementById("useType").value == "I"
			|| document.getElementById("useType").value == "S"
			|| document.getElementById("useType").value == "L") {

		// INVESTかすまいらんどの場合
		var path = "/detail/detail.html?";
		var type = "type=buyDetail"
		if (articleClass < 3) {
			type = "type=rentDetail"
		}
		url = path + type;
		param = "&touc=" + tmpArr.join(delimiter);

	} else if (document.getElementById("useType").value == "B") {

		// B2B検索の場合
		url = "/find/view/user/detailListRj1.html";
		// ログインユーザの加盟店コード、支店コードを付与
		param = param + "&login_kamc_ch="
				+ document.getElementById("kamc").value + "&login_kmsc_ch="
				+ document.getElementById("kmsc").value;
	}

	// 遷移先URL
	url = url + param;

	// 遷移
	window.open(url);
};

/**
 * 駅選択画面を表示し、ユーザに選択させる
 */
var dispStationSelect = function(stationList, status) {
	// Kumu.log("dispStationSelect "+ status);
	var container = document.getElementById("stationSelectList");
	container.innerHTML = "";
	var ul;
	var listCnt = stationList.length;
	var preEnsmCh = "";
	var lineDiv; // 沿線ごとのdiv
	var lineList;
	for ( var i = 0; i < listCnt; i++) {
		var currentData = stationList[i];
		var js1cCh = currentData["js1cCh"]; // 都道府県コード
		var ensmCh = currentData["ensmCh"]; // 沿線コード
		var ensjVc = currentData["ensjVc"]; // 沿線名
		var ekimCh = currentData["ekimCh"]; // 駅コード
		var ekijVc = currentData["ekijVc"]; // 駅名
		var ektnCh = currentData["ektnCh"]; // 駅探コード
		// 前回の沿線と比較
		if (preEnsmCh != ensmCh) {
			// 前回の沿線
			if (0 < i) { // 初回回避
				container.appendChild(lineDiv);
			}
			preEnsmCh = ensmCh;
			// 新しい沿線を作成開始
			lineDiv = document.createElement("div");
			// 見出し
			var lineLabel = document.createElement("span");
			lineLabel.appendChild(document.createTextNode(ensjVc));
			lineLabel.className = "subheading";
			lineDiv.appendChild(lineLabel);
			// チェックボックスorラジオボタンリスト
			lineList = document.createElement("div");
			ul = document.createElement("ul");
			lineList.appendChild(ul);
			lineDiv.appendChild(lineList);
		}
		var obj;
		if (status != BY_COMMUTE_1) {
			// 駅名一発検索・通勤通学時間検索 終点 の場合は複数選択可能にする
			// チェックボックス作成
			obj = createElementWithName("input", "station2");
			obj.type = "checkbox";
			obj.value = js1cCh + "_" + ensmCh + "_" + ekimCh;
		} else {
			// 通勤通学時間検索 始点の場合、一件のみ選択可
			// ラジオボタン作成
			obj = createElementWithName("input", "station2");
			obj.type = "radio";
			obj.value = ektnCh;
			if (i == 0) {
				// 第一要素にチェック
				obj.checked = "checked";
			}
		}
		// ラベル作成
		var label = document.createElement("label");
		label.appendChild(obj);
		label.appendChild(document.createTextNode(ekijVc));
		var li = document.createElement("li");
		li.appendChild(label);
		ul.appendChild(li);
	}
	container.appendChild(lineDiv);

	// ボタン押下時のイベントを設定
	// ウインドウの表示タイトルを設定
	if (status == BY_STATION) {
		// 駅名一発検索
		document.getElementById("stationSelectButton").onclick = function() {
			clickStationSelectButton();
			return false;
		};
		document.getElementById("stationSelectText").innerHTML = "駅名一発検索";
	} else if (status == BY_COMMUTE_1) {
		// 通勤通学時間検索 始点
		document.getElementById("stationSelectButton").onclick = function() {
			clickStationSelectButton2();
			return false;
		};
		document.getElementById("stationSelectText").innerHTML = "通勤通学時間検索 始点";
	} else if (status == BY_COMMUTE_2) {
		// 通勤通学時間検索 終点
		document.getElementById("stationSelectButton").onclick = function() {
			clickStationSelectButton();
			return false;
		};
		document.getElementById("stationSelectText").innerHTML = "通勤通学時間検索 終点";
	}

	// thickboxを利用して表示
	tb_show(
			null,
			"#TB_inline?height=400&width=500&inlineId=stationSelect&modal=true",
			false);

	// this.blur();
	return false;
};
/**
 * 駅の選択状態をクリアする
 */
var clickStationClearButton = function() {
	jQuery("input[name=station2]").attr("checked", "");
};

/**
 * 駅名一発検索 駅選択確定ボタン押下時
 */
var clickStationSelectButton = function() {
	var tmpStationList = jQuery("input:checkbox[name='station2']:checked");
	var cnt = tmpStationList.length;

	if (cnt == 0) {
		alert("駅を選択してください");
		return false;
	}

	var list = new Array();

	for ( var i = 0; i < cnt; i++) {
		// Kumu.log("駅名一発検索 : " + tmpStationList.get(i).value);
		var values = tmpStationList.get(i).value.split("_"); // js1cCh_ensmCh_ekimCh
		list[i] = {
			'js1cCh' : values[0],
			'ensmCh' : values[1],
			'ekimCh' : values[2]
		};
	}
	// データマージ
	mergeEkitanData(list);

	// 検索後処理
	afterOnLoadSearchProcess();

	// オ－バーレイ表示の終了
	tb_remove();
};
/**
 * 通勤通学時間検索 始点 駅選択確定ボタン押下時
 */
var clickStationSelectButton2 = function() {
	var tmp = jQuery(":checked[name='station2']");
	if (tmp.length == 0) {
		alert("駅を選択してください");
		return false;
	}

	var ektnCh = tmp.get(0).value;

	// 終点候補を検索
	searchStationByCommuteTime(ektnCh, qsParams["commuteTime"]);

};

/**
 * 駅探データマージ
 */
var mergeEkitanData = function(res) {
	// 都道府県コード直取り
	var division = new Array();
	var line = new Array();
	var station = new Array();
	var tmpArr = new Array();
	// 都道府県/沿線コード/駅コードの結果セットをループ
	var resLength = res.length;
	for ( var i = 0; i < resLength; i++) {
		var currentData = res[i];
		// 都道府県
		// 重複をチェックする
		var js1cCh = currentData["js1cCh"];
		var divisionLength = division.length;
		var doFlg = true; // フラグ true:重複していない false:重複している
		for ( var j = 0; j < divisionLength; j++) {
			if (js1cCh == division[j]) { // 重複
				doFlg = false;
				break;
			}
		}
		if (doFlg) { // 重複なし
			division.push(js1cCh); // リストに追加
		}
		// 沿線コード
		line.push(currentData["ensmCh"]);
		// 駅コード
		station.push(currentData["ensmCh"] + "_" + currentData["ekimCh"]);
	}

	// QueryStringからパラメータ取得
	var qsDivision = qsParams["division"];
	var qsLine = qsParams["line"];
	var qsStation = qsParams["station"];
	// 取得できなかった場合
	if (qsDivision == undefined || qsDivision == null) {
		qsDivision = new String()
	}
	;
	if (qsLine == undefined || qsLine == null) {
		qsLine = new String()
	}
	;
	if (qsStation == undefined || qsStation == null) {
		qsStation = new String()
	}
	;
	// QueryStringパラメータとマージ
	if (qsDivision.length > 0 && division.toString().length > 0) {
		qsDivision += "," + division.toString();
	} else {
		qsDivision += division.toString();
	}
	if (qsLine.length > 0 && line.toString().length > 0) {
		qsLine += "," + line.toString();
	} else {
		qsLine += line.toString();
	}
	if (qsStation.length > 0 && station.toString().length > 0) {
		qsStation += "," + station.toString();
	} else {
		qsStation += station.toString();
	}

	qsParams["division"] = qsDivision;
	qsParams["line"] = qsLine;
	qsParams["station"] = qsStation;

};
/**
 * 通勤通学時間検索 終点候補を検索
 */
var searchStationByCommuteTime = function(stationCode, commuteTime) {
	// Kumu.log("searchStationByCommuteTime start");
	function user_searchPage_ajaxSearchStationByCommuteTime(res) {
		// Kumu.log("user_searchPage_ajaxSearchStationByCommuteTime start");
		if (res.length <= 1) {
			// ヒットした駅が0or1件の場合、そのままの条件で検索へ
			// 駅データマージ
			mergeEkitanData(res);
			// 検索後処理
			afterOnLoadSearchProcess();
			// オ－バーレイ表示の終了
			tb_remove();
		} else {
			// 複数件候補駅がある場合、選択させる (通勤通学時間検索 終点)
			dispStationSelect(res, BY_COMMUTE_2);
		}
		// Kumu.log("user_searchPage_ajaxSearchStationByCommuteTime end");
	}
	;

	// Kumu.log("searchStationByCommuteTime : " + Kumu.Ajax.ASYNC);
	Kumu.Ajax.executeTeedaAjax(user_searchPage_ajaxSearchStationByCommuteTime,
			{
				"stationCode" : stationCode,
				"commuteTime" : commuteTime,
				"method" : "POST"
			});
	// Kumu.log("searchStationByCommuteTime end");
};
/**
 * 駅名一発検索・通勤通学時間検索
 */
var ekitanSearch = function(stationName) {
	// Kumu.log("ekitanSearch start");
	// var start = (new Date).getTime();
	var ajaxFnc = function user_searchPage_ajaxEkitanSearch(res) {
		// Kumu.log("user_searchPage_ajaxEkitanSearch start");
		var resLength = res.length;
		// 通勤通学時間
		var commuteTime = qsParams["commuteTime"];
		if (resLength == 0) {
			// データ無し
			// alert("合致する駅がありません");
			// 検索後処理
			afterOnLoadSearchProcess();
		} else if (resLength == 1) {
			// １件
			// 通勤通学時間が存在する
			if (commuteTime && commuteTime.length > 0) {
				// 通勤通学時間検索
				// Kumu.log("ektnCh : " + res[0]["ektnCh"]);
				// Kumu.log("commuteTime : " + commuteTime);
				searchStationByCommuteTime(res[0]["ektnCh"], commuteTime);
			} else {
				// 駅名一発検索
				// 駅データマージ
				mergeEkitanData(res);
				// 検索後処理
				afterOnLoadSearchProcess();
			}

		} else if (resLength > 1) {
			// 複数あれば駅選択させる
			if (commuteTime && commuteTime.length > 0) {
				// 通勤通学時間検索 始点
				dispStationSelect(res, BY_COMMUTE_1);
			} else {
				// 駅名一発検索
				dispStationSelect(res, BY_STATION);
			}
		}
		// Kumu.log("user_searchPage_ajaxEkitanSearch end");
	};
	// 同期通信
	// Kumu.Ajax.ASYNC = false;
	// Kumu.log("ekitanSearch : " + Kumu.Ajax.ASYNC);
	Kumu.Ajax.executeTeedaAjax(ajaxFnc, {
		"stationName" : stationName,
		"method" : "POST"
	});
	// 非同期通信に戻す
	// Kumu.Ajax.ASYNC = true;
	// Kumu.log("ekitanSearch end");
};
/**
 * LIST => JSON
 */
var convStationToJSON = function(list) {
	var str = "[";
	var cnt = list.length;
	var init1 = true;
	for ( var j = 0; j < cnt; j++) {
		if (!init1)
			str += ',';
		var init2 = true;
		str += '{';
		var hash = list[j];
		for ( var i in hash) {
			if (!init2)
				str += ',';
			str += '"' + i.replace('"', '\\"', 'g') + '":"';
			if (hash[i]) {
				str += hash[i].replace('"', '\\"', 'g') + '"';
			}
			init2 = false;
		}
		str += '}';
		init1 = false;
	}
	str += ']'

	return str;
};

/**
 * 検索条件の保存
 */
var saveSearchConditions = function() {
	// 入力値をcookieに保存する

	// フォームをJSON化
	// var form = Kumu.FormHelper.create('mainForm');
	// QueryStringに変換
	// var tmpArr = new Array();
	// for(key in form){
	// if("te-conditions" != key && form[key] != undefined){
	// tmpArr.push(key + "=" + form[key]);
	// }
	// }
	// var qs = tmpArr.join("&");
	// cookieに保存
	// cookie("searchConditions",qs,{expires:VALIDITY_TERM,path:'/'});

	// 保存完了メッセージ
	// alert("検索条件を保存しました");
	var ajaxFnc = function user_searchPage_ajaxSaveCondition(res) {
		if (res == '0') {
			alert("検索条件を保存しました");// 保存完了メッセージ
		} else if (res == '1') {
			alert("検索条件保存に失敗しました。再度ボタンを押してください");
		} else if (res == '2') {
			alert("検索条件保存に失敗しました。検索条件を減らして、再度保存してください");
		}
	};
	var form = Kumu.FormHelper.create('mainForm');
	// Kumu本体のログ機能でログ出力
	var sform = Kumu.JSONSerializer.serialize(form);
	Kumu.Ajax.executeTeedaAjax(ajaxFnc, {
		"mainForm" : sform,
		"method" : "POST"
	});

};

/**
 * 都道府県選択状態によって沿線・駅タブのnotice表示を切り替え
 */
var dispNotice = function() {
	// 沿線・駅タブのnotice表示
	var checkedCount = jQuery("input:checked[name='division']").length; // 選択状態の都道府県数
	if (checkedCount == 0) { // 都道府県が選択状態
		jQuery(".notice").show();
	} else {
		jQuery(".notice").hide();
	}
};

/**
 * 売買土地の場合
 */
var controlSaleLand = function() {
	// 基本条件 最適用途を非表示にする
	document.getElementById("bestuse").style.display = "none";
};

/**
 * 表示件数の変更時
 */
var changeListCount = function(val) {
	// 上部と下部のselectを同調させる
	jQuery("#listCount").val(val);
	jQuery("#listCountBottom").val(val);
	// 検索
	searchList();
};

/**
 * フリーワード・ピタットコード入力テキストボックスでエンター押下時
 */
var onEnter = function(event) {
	if (event.keyCode == 13) {
		searchList();
	}
};

/**
 * 地図から検索
 */
var clickMapSearch = function() {
	// 種別の取得
	window.open("/do/mapSearch?searchCategory=" + getSearchCategory());

};

/**
 * 種別の取得
 */
var getArticleClass = function() {
	// return jQuery("input[name=mainForm:articleClass]:checked").val();
	return jQuery("#articleClass").val();
};
/**
 * 種別のセット
 */
var setArticleClass = function(v) {
	jQuery("#articleClass").val(v);
};
/**
 * 検索区分の取得 (賃貸/売買)
 */
var getSearchCategory = function() {
	var articleClass = getArticleClass();
	var searchCategory;
	if (0 <= articleClass && articleClass <= 2) {
		searchCategory = "RENT";
	} else if (3 <= articleClass && articleClass <= 8) {
		searchCategory = "BUY";
	}
	return searchCategory;
};

/**
 * 詳細表示
 */
var openDetail = function(url, enginetype) {
	if (!enginetype || enginetype == '') {
		url = url.replace(/^https:/, "http:");
		enginetype = document.getElementById("useType").value;
		if (!enginetype || enginetype == '') {
			enginetype = 'N';
		}
		url = url + '?engineType=' + enginetype;
	} else if (enginetype == 'B') {
		url = url + '?engineType=' + enginetype;
	} else {
		url = url.replace(/^https:/, "http:") + '?engineType=' + enginetype;
	}
	// invest検索用
	if (document.getElementById("useType").value == "I") {
		/*
		 * var invest = "/detail/detail.html?";
		 *
		 * //種別を特定 var article = "type=buyDetail"; var articleClass =
		 * getArticleClass(); if(articleClass < 3) { article =
		 * "type=rentDetail"; } //引数のURLから物件コードを取り出す var spUrl = url.split("/");
		 * var spCode1 = spUrl[spUrl.length-1]; var spCode2 =
		 * spCode1.split("."); var code = "&touc=" + spCode2[0];
		 *
		 * //URLを作成 url = invest + article + code ;
		 *
		 * //遷移 window.open(url);
		 *
		 * //後の処理を避ける return false;
		 */
	}
	// IEならURLエンコード
	if (navigator.userAgent.match(/MSIE/)) {
		url = encodeURI(url);
	}
	window.open(url);
	// 画面遷移をキャンセル
	return false;
};

/**
 * お気に入り登録
 */
var saveFavorite = function() {

	// お気に入り条件 cookie保存時の区切り文字
	var delimiter = ":";
	// 検索区分
	var category = getSearchCategory();

	// チェックデータ
	var checked = jQuery(":checkbox[name=detailCheck]:checked:visible");
	if (checked.length == 0) {
		// チェックなし
		// alert("物件が選択されていません。");
		return false;
	} else {
		if (confirm('この情報をお気に入りに追加しますか？')) {
			checked.each(function(index, data) {
				var result = setFavoriteDataRn(category, jQuery(data).val(),
						true);
				if (!result) {
					return false;
				}
			});
		}
	}

};

var requestMail = function() {
	var url = "/find/view/mail/requestMailEntry.html";

	// チェックデータ
	var checked = jQuery(":checkbox[name=detailCheck]:checked:visible");
	var detailcd = "";

	if (checked.length == 0) {
		// チェックなし
		// alert("物件が選択されていません。");
		return false;
	}

	checked.each(function(index, data) {
		var tmpVal = jQuery(data).val();
		var tmpValSpl = tmpVal.split("_");
		var tmpCode = tmpVal.substr(tmpValSpl[0].length + 1);
		detailcd += tmpCode + ":";
	});
	// form生成
	var f = document.createElement("form");
	// requestCd
	var tmpObj1 = createElementWithName("input", "requestCd");
	tmpObj1.type = "hidden";
	tmpObj1.value = detailcd;
	f.appendChild(tmpObj1);
	// engine
	var tmpObj2 = createElementWithName("input", "engine");
	tmpObj2.type = "hidden";
	tmpObj2.value = location.hostname;
	f.appendChild(tmpObj2);
	// アクションの設定
	f.action = url;
	f.target = '_blank';
	// submit
	document.body.appendChild(f);
	f.submit();
	// フォームの削除
	document.body.removeChild(f);

};

/**
 * 反物形式のリスト
 */
var requestListsAll = function() {
	// detailCDをクリア
	jQuery("[name='requestCd']").remove();

	// チェックデータ
	var checked = jQuery(":checkbox[name=detailCheck]:checked:visible");
	var idx = checked.length;
	var detailcd = "";
	var urlparts = "buyDetails";

	if (checked.length == 0) {
		// チェックなし
		// alert("物件が選択されていません。");
		return false;
	}

	checked.each(function(index, data) {
		var tmpVal = jQuery(data).val();
		var tmpValSpl = tmpVal.split("_");
		var tmpCode = tmpVal.substr(tmpValSpl[0].length + 1);
		if (tmpValSpl.length == 3) {
			urlparts = "rentDetails";
		}
		if (index > 0) {
			detailcd += ",";
		}
		detailcd += tmpCode;
	});

	// ページ移動
	var hostname = document.domain;
	if (document.domain == "192.168.40.134") {
		hostname = PITAT_HOST_TEST;
	}
	if (document.domain == "rj-1.smiland.co.jp") {
		hostname = PITAT_HOST;
	}
	var engines = document.getElementById("useType").value;
	if (!engines) {
		engines = "N";
	}
	var enginesType = document.getElementById("engineType").value;
	if (enginesType) {
		engines = enginesType;
	}
	var url = "http://" + hostname + "/" + urlparts + "/" + detailcd
			+ "?engineType=" + engines;
	window.open(url, "_blank");
};

/**
 * 複数件問い合わせ
 */
var requestAllDetail = function() {

	// 検索区分
	var searchCategory = getSearchCategory();
	// 遷移先
	var url = "/do/rentRequestMailEntry";
	if (searchCategory == "BUY") {
		url = "/do/buyRequestMailEntry";
		document.frmDetail.searchCategory.value = "BUY";
	}
	// メールタイプ お問い合わせ
	var mailType = "T";
	// form
	var form = document.frmDetail;

	// 種別による振り分け
	var articleClass = getArticleClass();
	if (articleClass == '0') {
		form.searchThingType.value = "APARTMENT";
	} else if (articleClass == '1') {
		form.searchThingType.value = "OFFICE";
	} else if (articleClass == '2') {
		form.searchThingType.value = "LAND";
	} else if (articleClass == '3' || articleClass == '6') {
		form.searchThingType.value = "HOUSE";
	} else if (articleClass == '4' || articleClass == '7') {
		form.searchThingType.value = "MANSION";
	} else if (articleClass == '5' || articleClass == '8') {
		form.searchThingType.value = "LAND";
	}

	// detailCDをクリア
	jQuery("[name='detailCD']").remove();

	// 検索結果一覧 行
	var rows = jQuery("tr", "#searchResult");
	// チェックされているチェックボックスの数
	var idx = 0;
	// 詳細チェックボックスがチェックされている行のkamcCh,toucCh,kkkcChを取得する
	rows.each(function(index, row) {
		if (jQuery("input[name=detailCheck]", row).attr("checked")) {
			var code = jQuery("span[id^=kamcCh]", row).text();
			var bkncCh = jQuery("span[id^=bkncCh]", row).text();
			if (bkncCh == "") { // 賃貸
				code = code + "_" + jQuery("span[id^=toucCh]", row).text()
						+ "_" + jQuery("span[id^=kkkcCh]", row).text();
			} else { // 売買
				code = code + "_" + bkncCh;
			}
			idx++;
			// detailCD
			var tmpObj = createElementWithName("input", "detailCD");
			tmpObj.type = "hidden";
			tmpObj.value = code;
			form.appendChild(tmpObj);
		}
	});
	if (idx == 0) {
		// チェックなし
		alert("物件が選択されていません。");
		return false;
	} else {

		var box = null;
		var errFlag = false;

		// ページ移動
		form.action = url;
		form.target = '_blank';
		form.mailTypeMain.value = 'T';
		form.FIL1_CH.value = '';
		form.TOUC_CH.value = '';
		form.KKKC_CH.value = '';
		form.BKNC_CH.value = '';
		form.submit();
	}

};

/**
 * B2B検索用地図から検索
 */
var mapSearchB2b = function() {
	var kamc = document.getElementById("kamc").value; // 加盟店コード
	var kmsc = document.getElementById("kmsc").value; // 支店コード
	var articleClass = getArticleClass(); // 種別
	var val = "";
	// マピオンの種別に変換
	if (articleClass == 0) {
		// 賃貸 住宅
		val = "11";
	} else if (articleClass == 1) {
		// 賃貸 店舗・事務所・倉庫
		val = "12";
	} else if (articleClass == 2) {
		// 賃貸 駐車場
		val = "13";
	} else if (articleClass == 3 || articleClass == 6) {
		// 売買 一戸建・テラスハウス || 売買 一棟売り（ビル・マンション・アパート・店舗）
		val = "22";
	} else if (articleClass == 4 || articleClass == 7) {
		// 売買 マンション || 売買 区分所有（投資マンション・店舗）
		val = "21";
	} else if (articleClass == 5 || articleClass == 8) {
		// 売買 土地 || 売買 事業用土地
		val = "23";
	}
	var str = 'http://lbs.mapion.co.jp/map/uc/PoiAttr?grp=pitat&poi_code='
			+ kamc + '&siten=' + kmsc + '&scl=25000&BT=' + val + '';
	window.open(str, '_blank',
			'width=1200,height=700,scrollbars=yes,left=0,top=0');
};

/**
 * マッチング用物件コード送信
 */
var sendMatching = function() {

	// 検索結果一覧 行
	var rows = jQuery("tr", "#searchResult");
	// チェックされているチェックボックスの数
	var idx = 0;
	// 詳細チェックボックスがチェックされている行のkamcCh,toucCh,kkkcChを取得する
	var tmpArr = new Array();

	var receivedCode = window.opener.document.getElementById("receiveCode").value;
	var receivedCodeList = receivedCode.split(",");
	if (receivedCodeList.length > 2) {
		for ( var i = 0; i < receivedCodeList.length; i++) {
			tmpArr.push(receivedCodeList[i]);
		}
	}

	rows.each(function(index, row) {
		if (jQuery("input[name=detailCheck]", row).attr("checked")) {
			var code = "";
			var bkncCh = jQuery("span[id^=bkncCh]", row).text();
			if (bkncCh == "") { // 賃貸
				code = jQuery("span[id^=toucCh]", row).text() + "_"
						+ jQuery("span[id^=kkkcCh]", row).text();
			} else { // 売買
				code = bkncCh;
			}
			var flag = true;
			for ( var i = 0; i < tmpArr.length; i++) {
				if (code == tmpArr[i]) {
					flag = false;
					break;
				}
			}
			if (flag) {
				tmpArr.push(code);
			}
			idx++;
		}
	});
	if (idx == 0) {
		// チェックなし
		// alert("物件が選択されていません。");
		return false;
	} else {
		if (confirm('追加します。よろしいですか？')) {
			window.opener.document.getElementById("receiveCode").value = tmpArr
					.toString();
			window.opener.document.getElementById("doBkSearch").click();
			window.close();
		}
	}
};

/**
 * 中心表示マーカー表示/非表示切り替え
 */
var centerMarker = new google.maps.Marker({
	clickable: false,
	icon : new google.maps.MarkerImage("/find/images/mapicon/center.gif",
			new google.maps.Size(110, 110), new google.maps.Point(0, 0),
			new google.maps.Point(55, 75)),
	position : pitatnet.constant.depends.MAP_CENTER,
	zIndex : 1,
	flat: true
});
var toggleCenterMarker = function(checked) {
	if (checked) {
		centerMarker.setPosition(pitatnet.page.Index.map.getCenter());
		centerMarker.setMap(pitatnet.page.Index.map);
	} else {
		centerMarker.setMap();
	}
};
/**
 * 表示の切り替え list:リスト表示 map:地図表示
 */
var setViewArea = function(type) {
	jQuery("#list,#map").hide();
	jQuery("ul.viewTabs > li").removeClass("current");
	jQuery("#" + type).show();
	jQuery("ul.viewTabs > li." + type + "Tab").addClass("current");
	if (type == "map") {
		if (!pitatnet.page.Index.map.mapTypes) {
			// 初回表示なので地図を初期化
			pitatnet.page.Index.initialize();
		} else {
			// 再描画
			google.maps.event.trigger(pitatnet.page.Index.map, 'resize');
			toggleCenterMarker(false);
		}
	}
};
/**
 * 地図表示 元の位置に戻る
 */
var keepLatlng = pitatnet.constant.depends.MAP_CENTER;
var keepZoom = pitatnet.constant.depends.DEFAULT_ZOOM;
var revertMap = function() {
	pitatnet.page.Index.map.setCenter(keepLatlng);
	pitatnet.page.Index.map.setZoom(keepZoom);
};
/**
 * 物件中心の地図表示
 */
var dispMapTarget = function(lat, lng) {
	if (isIE6()) {
		alert('地図機能を利用するにはブラウザをアップグレードしてください。');
		return;
	}
	// ページ内リンク
	location.href = "#markViewTabs";
	dispMapLatLng(lat, lng, ZOOM_TARGET);
	// センターマーカーの表示
	toggleCenterMarker(true);
};
/**
 * 地図タブへの切り替え 同時に中心点とズームを変更
 */
var dispMapLatLng = function(lat, lng, zoom) {
	var latlng;
	if (latlng = new google.maps.LatLng(lat, lng)) {
		dispMap(latlng, zoom);
		return true;
	} else {
		return false;
	}
};
var dispMap = function(latlng, zoom) {

	setViewArea("map");
	// マップオブジェクトのチェック
	// 無ければ地図初回表示なので初期化開始
	pitatnet.page.Index.map.setCenter(latlng);
	pitatnet.page.Index.map.setZoom(zoom);
	// 元の位置に戻るために中心とズームレベルを覚えておく
	keepLatlng = latlng;
	keepZoom = zoom;
};
/**
 * タブの切り替え
 */
var myGeocoder;
var myList;
var myLat;
var myLng;
var myStatus = "none";
var myCount = 0;
var myAddress;
var myTimer;
var changeTab = function(type) {
	if (isIE6() && type == "map") {
		alert('地図機能を利用するにはブラウザをアップグレードしてください。');
		return;
	}

	if (type == "map") {
		if (jQuery("#map:visible").length > 0
				&& jQuery("#list:visible").length == 0) {
			return false;
		}
		// 表示中のリスト
		var list = jQuery("#searchResultTable tr:not(.head)");
		var cnt = list.length;
		var success = false;
		// 緯度経度が登録されている物件を探し、あれば地図表示
		for ( var i = 0; i < cnt; i++) {
			var lat = list.eq(i).find("span#idocBi").text();
			var lng = list.eq(i).find("span#keicBi").text();
			if (lat && lng && !isNaN(lat) && !isNaN(lng)) {
				// 緯度経度で地図表示
				if (dispMapLatLng(lat, lng,
						pitatnet.constant.depends.ARROUND_ZOOM)) {
					success = true;
					break;
				}
			}
		}

		// 緯度経度がなかったので住所から表示を試みる
		if (!success) {
			if (cnt > 0) {
				myCount = 0;
				myLat = null;
				myLng = null;
				myList = jQuery("#searchResultTable tr:not(.head)");
				myAddress = list.eq(myCount).find("#addrVc").text();
				myGeocoder = new google.maps.Geocoder();
				myTimer = setInterval("addrToLatlng()", 10);
			} else {
				dispMap(pitatnet.constant.depends.MAP_CENTER,
						pitatnet.constant.depends.DEFAULT_ZOOM);
			}
		}
	} else {
		if (jQuery("#list:visible").length > 0
				&& jQuery("#map:visible").length == 0) {
			return false;
		}
		// 都道府県選択がない場合には地図のセンターから住所を求めて都道府県に設定する。
		var checkCount = countDivisionsCheck();
		if (checkCount === 0) {
			var geocoder = new google.maps.Geocoder();
			geocoder.geocode({
				'latLng' : pitatnet.page.Index.map.getCenter()
			}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					var conponents = results[0].address_components;
					conponents.reverse();
					var country = conponents[0];
					if (country.short_name !== 'JP') {
						return;
					}
					var division = conponents[1].short_name;
					checkDivision(division);
				}
			});
		}
		if (jQuery("#list:visible").length > 0
				&& jQuery("#map:visible").length == 0) {
			return false;
		}
		setViewArea("list");
		searchList();
	}

};

var checkDivision = function(_division) {
	var divisionsList = jQuery("#divisions label");
	for ( var index = 0; index < divisionsList.length; index++) {
		var labelElem = divisionsList[index];
		var testString = jQuery(labelElem).text();
		if (_division.indexOf(testString) == 0) {
			var inputElem = jQuery(labelElem).children()[0];
			inputElem.checked = true;
			searchList();
			jQuery(inputElem).closest("label").next(".followCondBtn").click();
			var tmpValArr = new Array();
			tmpValArr.push(inputElem.value);
			createRailwayLine(tmpValArr);
			return;
		}
		// alert(testString);
	}
}

/**
 * 選択状態の都道府県の数を取得する。
 */
var countDivisionsCheck = function() {
	return jQuery("#divisions :checked").length;
}

/**
 * 住所からの座標取得
 */
var addrToLatlng = function() {
	try {
		if (!myLat && !myLng && myStatus == "none") {
			// alert("1: " + myCount + " : " + myAddress + " : " + myLat +" : "+
			// myLng);
			myStatus = "doing";
			myGeocoder.geocode({
				'address' : myAddress
			}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					myLat = results[0].geometry.location.lat();
					myLng = results[0].geometry.location.lng();
				}
				myStatus = status;
			});
		} else if (myLat && myLng && myStatus == google.maps.GeocoderStatus.OK) {
			// 取得成功
			// alert("2: " + myCount + " : " + myAddress + " : " + myLat +" : "+
			// myLng);
			myStatus = "none";
			myAddress = "";
			myCount = 0;
			dispMapLatLng(myLat, myLng, pitatnet.constant.depends.ARROUND_ZOOM);
			clearInterval(myTimer);
		} else if (!myLat && !myLng && myStatus != "none"
				&& myStatus != "doing") {
			// 取得失敗
			myCount++;
			if (myCount < myList.length) {
				// alert("3: " + myCount + " : " + myAddress + " : " + myLat +"
				// : "+ myLng);
				// 次の物件に進む
				myAddress = myList.eq(myCount).find("#addrVc").text();
				myStatus = "none";
			} else {
				// alert("4: " + myCount + " : " + myAddress + " : " + myLat +"
				// : "+ myLng);
				// 物件なし デフォルト位置で表示
				myCount = 0;
				myStatus = "none";
				dispMap(pitatnet.constant.depends.MAP_CENTER,
						pitatnet.constant.depends.DEFAULT_ZOOM);
				clearInterval(myTimer);
			}
		}
	} catch (e) {
		// alert("catch Exception!! : " + e);
		clearInterval(myTimer);
	}
};

/**
 * 店舗座標を取得し地図の中心にセット
 */
var shopLocation = function(kamc, kmsc) {
	function user_searchPage_ajaxShopLocation(res) {
		if (res) {
			// 地図の中心を指定し表示
			dispMapLatLng(res["idocBi"], res["keicBi"], ZOOM_SHOP);
			// 地図中心に店舗アイコンをセット
			setShopIcon();
		}
	}
	;
	Kumu.Ajax.executeTeedaAjax(user_searchPage_ajaxShopLocation, {
		"kamc" : kamc,
		"kmsc" : kmsc,
		"method" : "POST"
	});
};

/**
 * 地図の中心に店舗アイコンをセット
 */
var setShopIcon = function() {
	var customMark = pitatnet.map.MarkerPool['ph'];
	var latlng = pitatnet.page.Index.map.getCenter();
	var shopIcon = new google.maps.Marker({
		position : latlng,
		map : pitatnet.page.Index.map,
		shadow : customMark.shadowIcon,
		icon : customMark.icon,
		shape : customMark.shape,
		zIndex : 1
	});
	shopIcon.swLat = latlng.lat();
	shopIcon.neLat = latlng.lat();
	shopIcon.swLng = latlng.lng();
	shopIcon.neLng = latlng.lng();
	google.maps.event.addListener(shopIcon, 'click', function() {
		var executer = new pitatnet.http.QueryExecuter(
				pitatnet.constant.CORE_NAME_PH);
		executer.executeInfo(shopIcon, pitatnet.page.Index.map);
	});
};

/**
 * ページ初期化
 */
pitatnet.page.Index.initialize = function() {
	// pitatnet.page.Index.map = new
	// google.maps.Map(document.getElementById("map_canvas"),pitatnet.constant.depends.MAP_OPTIONS);
	/* マップ北東緯度経度初期値 */
	var myNeLatLng = new google.maps.LatLng(45.859412, 146.601563);
	/* マップ南西緯度経度初期値 */
	var mySwLatLng = new google.maps.LatLng(23.5237, 122.827148);
	/* マップ中心緯度経度初期値 */
	var myMapCenter = new google.maps.LatLng((myNeLatLng.lat() + mySwLatLng
			.lat()) / 2.0, (myNeLatLng.lng() + mySwLatLng.lng()) / 2.0);
	var myOpt = {
		streetViewControl : false,
		scaleControl : true,
		scaleControlOptions : {
			style : google.maps.ScaleControlStyle.DEFAULT
		},
		mapTypeControl : true,
		mapTypeControlOptions : {
			style : google.maps.MapTypeControlStyle.HORIZONTAL_BAR
		},
		navigationControl : true,
		navigationControlOptions : {
			style : google.maps.NavigationControlStyle.ZOOM_PAN
		},
		zoom : 5,
		center : myMapCenter,
		mapTypeId : google.maps.MapTypeId.ROADMAP
	};
	pitatnet.page.Index.map = new google.maps.Map(document
			.getElementById("map_canvas"), myOpt);
	lss = new pitatnet.localsearch.LocalSearchService(pitatnet.page.Index.map);
	pitatnet.page.Index.rentService = new pitatnet.map.MapQueryService("rent",
			pitatnet.page.Index.map);
	pitatnet.page.Index.saleService = new pitatnet.map.MapQueryService("sale",
			pitatnet.page.Index.map);
	pitatnet.page.Index.phService = new pitatnet.map.PhMapQueryService(
			pitatnet.page.Index.map);
	pitatnet.page.Index.currentZoomLevel = pitatnet.page.Index.map.getZoom();
	var tmpVal = getArticleClass();
	google.maps.event.addListener(pitatnet.page.Index.map, 'idle', function() {
		pitatnet.page.Index.callService(tmpVal);
	});
//	toggleListView(document.getElementById('expandtab'));

};

/**
 * ローカルサーチ関連のグラフィック要素を更新する。
 */
var updateStateLocalSearch = function() {
	var usable;
	if (!isExecLocalSearch()) {
		jQuery(".localSearch").attr("disabled", "disabled");
		jQuery("#localSearchButton").removeClass("active");
		jQuery("#localSearchButton").addClass("deactive");
		if (ie === 7) {
			jQuery("#localSearchDisable").hide();
			jQuery("#localSearchArea").attr("title", "地図をズームすると使用可能になります");
		} else {
			jQuery("#localSearchDisable").show();
		}
	} else {
		jQuery(".localSearch").attr("disabled", "");
		jQuery("#localSearchButton").removeClass("deactive");
		jQuery("#localSearchButton").addClass("active");
		jQuery("#localSearchDisable").hide();
		if (ie === 7) {
			jQuery("#localSearchArea").attr("title", "");
		}
	}
}

var lss = undefined;
var localsearch = function(_id, _word) {
	lss.clear(_id);
	lss.query(_id, _word);
}
/**
 * 高校・中学をローカルサーチする。
 */
var searchSchool = function() {
	localsearchForCB('school', 'school', '高校 OR 中学 OR 高等学校 OR 中等学校 OR 高等専門学校');
}

/**
 * 小学校をローカルサーチする。
 */
var searchElem = function() {
	localsearchForCB('elem', 'elem', '小学校');
}

/**
 * 幼稚園・保育園をローカルサーチする。
 */
var searchNursery = function() {
	localsearchForCB('nursery', 'nursery', '幼稚園 OR 保育園');
}

/**
 * コンビニをローカルサーチする。
 */
var searchConv = function() {
	localsearchForCB('conv', 'conv', 'コンビニ');
}

/**
 * スーパーをローカルサーチする。
 */
var searchMarket = function() {
	localsearchForCB('market', 'market', 'スーパー');
}

/**
 * 図書館をローカルサーチする。
 */
var searchPark = function() {
	localsearchForCB('park', 'park', '"公園一般"');
}

/**
 * 図書館をローカルサーチする。
 */
var searchRental = function() {
	localsearchForCB('rental', 'rental', 'レンタルビデオ');
}

/**
 * 病院をローカルサーチする。
 */
var searchHosp = function() {
	localsearchForCB('hosp', 'hosp', '病院 OR クリニック OR 医院');
}

/**
 * 銀行をローカルサーチする。
 */
var searchBank = function() {
	localsearchForCB('bank', 'bank', '銀行');
}

/**
 * 自由入力用ローカルサーチ
 */
var searchFree = function() {
	var value = document.getElementById('free').value;
	if (value.trim() != '' && isExecLocalSearch()) {
		localsearch('free', value);
	} else {
		lss.clear('free');
	}

}
/**
 * 汎用チェックボックス用ローカルサーチ
 *
 * @param _controlId
 *            コントロールID
 * @param _id
 *            ローカルサーチID
 * @param _word
 *            ローカルサーチ値
 */
var localsearchForCB = function(_controlId, _id, _word) {
	var obj = document.getElementById(_controlId);
	if (obj.checked && isExecLocalSearch()) {
		this.localsearch(_id, _word);
	} else {
		lss.clear(_id);
	}
}

/**
 * ローカルサーチが利用できる地図のズームレベルを設定する。
 */
var isExecLocalSearch = function() {
	return (pitatnet.page.Index.map.getZoom() >= 17);
}

/**
 * 全サービス実行を行う。
 */

pitatnet.page.Index.callService = function(tmpVal) {
	// localsearchの利用可不可設定
	updateStateLocalSearch();
	// マップタブが表示状態？
	if (jQuery("#map:visible").length == 0) {
		return false;
	}
	var bnd = pitatnet.page.Index.map.getBounds();
	if (bnd) {
		var swLatLng = bnd.getSouthWest();
		var swLat = swLatLng.lat();
		var swLng = swLatLng.lng();
		var neLatLng = bnd.getNorthEast();
		var neLat = neLatLng.lat();
		var neLng = neLatLng.lng();
		if (neLat <= 0 || neLng <= 0 || swLat <= 0 || swLng <= 0) {
			return false;
		}
		if (pitatnet.constant.VIEW_LIMIT["sw"]["lat"] <= neLat
				&& pitatnet.constant.VIEW_LIMIT["sw"]["lng"] <= neLng
				&& pitatnet.constant.VIEW_LIMIT["ne"]["lat"] >= swLat
				&& pitatnet.constant.VIEW_LIMIT["ne"]["lng"] >= swLng) {
			jQuery("#mapLoading").show();
			pitatnet.page.Index.callRentService(); // 賃貸
			pitatnet.page.Index.callSaleService(); // 売買
			pitatnet.page.Index.callPHService(); // 店舗
			callLocalSearchService(); // ローカルサーチ
		}
	}
};

/**
 * 件数更新ファンクション
 *
 * @param _formattedCount
 *            フォーマット済件数。1,000とか
 */
pitatnet.page.Index.updateCount = function(_formattedCount) {
	jQuery('#hitNumber').text(_formattedCount);
};

/**
 * 件数更新&NowLoading描画終了ファンクション
 *
 * @param _formattedCount
 *            フォーマット済件数。1,000とか
 */
pitatnet.page.Index.updateCountFin = function(_formattedCount) {
	jQuery('#hitNumber').text(_formattedCount);
	jQuery("#mapLoading").hide();
};

/**
 * スクリプトのロードを行う。
 */
pitatnet.page.Index.loadScript = function() {
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = "http://maps.google.com/maps/api/js?sensor=true&callback=pitatnet.page.Index.initialize";
	document.body.appendChild(script);
};

/**
 * 地図表示領域を指定の場所に移動させる。
 */
pitatnet.page.Index.move = function(place) {
	if (!place) {
		place = document.getElementById('address').value;
		if (place.length === 0) {
			return false;
		}
	}
	var swLatLng = new google.maps.LatLng(23.4, 122.3);
	var neLatLng = new google.maps.LatLng(45.97, 146.3);
	var geocoder = new google.maps.Geocoder();
	geocoder.geocode({
		address : place,
		// language:'japanese',
		bounds : new google.maps.LatLngBounds(swLatLng, neLatLng),
		region : 'jp'
	}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK) {
			var hitList = new Array();
			var bounds = new google.maps.LatLngBounds();
			var localcnt = 0;
			for ( var r in results) {
				if (results[r].geometry) {
					var latlng = results[r].geometry.location;
					var testString = results[0].formatted_address;
					var idx = testString.indexOf('日本, ');
					var omitIdx = testString.indexOf(', ');
					// 日本以外がヒットしたら無視。
					if (idx === -1 && omitIdx !== -1) {
						continue;
					}
					localcnt++;
					bounds.extend(latlng);
				}
				// if (localcnt > 20) {
				// 複数HITの場合、最初の一件を採用
				if (localcnt > 0) {
					break;
				}
			}
			if (localcnt === 0) {
				alert("見つかりませんでした。[" + place + "]");
				return false;
			}
			pitatnet.page.Index.map.fitBounds(bounds);
			var tempSize = pitatnet.page.Index.map.getZoom();
			if (tempSize >= 13) {
				pitatnet.page.Index.map.setZoom(tempSize - 4);
			}
			return true;
		} else {
			alert("見つかりませんでした。[" + place + "]");
			return false;
		}
	});
};

/**
 * PH検索を行う。
 */
pitatnet.page.Index.callPHService = function() {
	if (pitatnet.page.Index.usePh() && isExecLocalSearch()) {
		pitatnet.page.Index.phService.query({}, function() {
		});
	} else {
		pitatnet.page.Index.phService.clearMarker(function() {
		});
	}
};

/**
 * 売買検索を行う。
 */
pitatnet.page.Index.callSaleService = function() {
	if (pitatnet.page.Index.useSale) {
		var cond = pitatnet.page.Index
				.createCondition(pitatnet.constant.CORE_NAME_SALE);
		pitatnet.page.Index.saleService.query(cond,
				pitatnet.page.Index.updateCountFin);
		pitatnet.page.Index.saleService.list(cond,
				pitatnet.page.Index.updateSaleList);
	} else {
		pitatnet.page.Index.saleService
				.clearMarker(pitatnet.page.Index.updateCount);
	}
};

/**
 * 賃貸検索を行う。
 */
pitatnet.page.Index.callRentService = function() {
	if (pitatnet.page.Index.useRent) {
		var cond = pitatnet.page.Index
				.createCondition(pitatnet.constant.CORE_NAME_RENT);
		pitatnet.page.Index.rentService.query(cond,
				pitatnet.page.Index.updateCountFin);
		pitatnet.page.Index.rentService.list(cond,
				pitatnet.page.Index.updateRentList);
	} else {
		pitatnet.page.Index.rentService
				.clearMarker(pitatnet.page.Index.updateCount);
	}
};

/**
 * ローカルサーチを行う。
 */
var callLocalSearchService = function() {
	this.searchElem();
	this.searchSchool();
	this.searchNursery();
	this.searchConv();
	this.searchMarket();
	this.searchPark();
	this.searchRental();
	this.searchHosp();
	this.searchBank();
	this.searchFree();
};

pitatnet.page.Index.usePh = function() {
	if (!isExecLocalSearch()) {
		return false;
	}
	var obj = document.getElementById('ph');
	if (obj.checked) {
		return true;
	} else {
		return false;
	}
};

/**
 * 検索条件を作成する。
 *
 * @param _coreName
 *            コア名称
 * @return 検索条件の連想配列
 */
pitatnet.page.Index.createCondition = function() {
	var result = new Object;
	var targetList;
	targetList = jQuery('.cond');
	var listSize = targetList.length;
	for ( var idx = 0; idx < listSize; idx++) {
		var jqcontrol = targetList[idx];
		var tagName = jqcontrol.nodeName;
		var key = undefined;
		var val = undefined;
		if ('INPUT' === tagName) {
			var type = jqcontrol.getAttribute('type');
			if ('checkbox' === type) {
				var checked = jqcontrol.checked;
				if (checked === true) {
					key = jqcontrol.getAttribute('name');
					val = encodeURIComponent(jqcontrol.value);
				}
			}
			if ('radio' === type) {
				var checked = jqcontrol.checked;
				if (checked === true) {
					key = jqcontrol.getAttribute('name');
					val = jqcontrol.value;
				}
			}
			if ('hidden' === type) {
				key = jqcontrol.getAttribute('name');
				val = jqcontrol.value;
				if (val !== '') {
					val = encodeURIComponent(val);
				}
			}
			if ('text' === type) {
				key = jqcontrol.getAttribute('name');
				val = jqcontrol.value;
				if (val !== '') {
					val = encodeURIComponent(val);
				}
			}
		} else if ('SELECT' === tagName) {
			key = jqcontrol.getAttribute('name');
			//val = jqcontrol.value;
			val = $(jqcontrol).val();
			if(!val) {
				val = undefined;
			}
			else if (val == '0' && jqcontrol.id != "articleClass") {
				val = undefined;
			}

		} else if ('TEXTAREA' === tagName) {
			key = jqcontrol.getAttribute('name');
			val = jqcontrol.value;
			if (val !== '') {
				val = encodeURIComponent(val);
			}
		} else {
			//alert('想定外！:' + tagName);
		}
		if (key === undefined || val === undefined) {
			continue;
		}
		// teeda対応
		key = key.replace('mainForm:', '');
		if (result[key] == undefined) {
			result[key] = val;
		} else {
			result[key] = result[key] + "," + val;
		}
	}
	return result;
};

/**
 * ie6以下:true
 */
// var isIE6 = function(){
// if(ie < 7){
// return true;
// }
// return false;
// }
/**
 * ie判定 ie以外: ie === undefined ie7: ie === 7 ie8以上: ie > 7
 */
 var ie = (function(){
	 var undef, v = 3, div = document.createElement('div');
	 while (
			 div.innerHTML = '<!--[if gt IE '+(++v)+']><i></i><![endif]-->',
			 div.getElementsByTagName('i')[0]
	 );
	 return v> 4 ? v : undef;
 }());
/**
 * 地図内リストの表示を切り替える。
 *
 * @param img
 *            対象の画像コントロール
 */
var toggleListView = function(img) {
	var listArea = jQuery('#listArea');
	var listDsp = jQuery('#listDsp');
	var ow = "216px";
	var cw = "22px";
	var ol = "-216px";
	var cl = "-22px";
	if(ie < 8){
		//ie7以前
		ow = "216px";
		cw = "22px";
		ol = "0px";
		cl = "0px";
	}
	if (jQuery(img).hasClass("open")) {
		// 現在のボタンが「開く」の場合
		listDsp.removeClass("closed").addClass("process");
		listArea.removeClass("closed").addClass("process")
				   .animate(
							{
								"width" : ow,
								"left" : ol
							},
							{
								"duration" : "fast",
								"easing" : "linear",
								complete : function() {
									listDsp.removeClass("process").addClass("opened");
									listArea.removeClass("process").addClass("opened");
									jQuery(img).removeClass("open").addClass("close").attr("閉じる");
								}
							});
	} else {
		// 現在のボタンが「閉じる」の場合
		listDsp.removeClass("opened").addClass("process");
		listArea.removeClass("opened").addClass("process").animate(
					{
						"width" : cw,
						"left" : cl
					},
					{
						"duration" : "fast",
						"easing" : "linear",
						complete : function() {
							jQuery(img).removeClass("close").addClass("open").attr("開く");
							listDsp.removeClass("process").addClass("closed");
							listArea.removeClass("process").addClass("closed");
						}
					})
	}
}

/**
 * 地図内リストのソート項目オプションの更新をする。
 */
var updateMapListSorter = function(_acVal) {
	var val = _acVal;
	var target = jQuery('select[name=sortColumn]');
	target.children().remove();
	switch (val) {
	case "0":
		target
				.append(jQuery('<option value="rtp1nIn" selected="selected">賃料</option>'));
		target.append(jQuery('<option value="madnSort">間取</option>'));
		target.append(jQuery('<option value="symnDc">面積</option>'));
		break;
	case "1":
		target
				.append(jQuery('<option value="rtp1nIn" selected="selected">賃料</option>'));
		target.append(jQuery('<option value="symnDc">面積</option>'));
		target.append(jQuery('<option value="sykfSi">階建</option>'));
		break;
	case "2":
		target
				.append(jQuery('<option value="rtp1nIn" selected="selected">賃料</option>'));
		break;
	case "3": // 一戸建・テラスハウス
		target
				.append(jQuery('<option value="hbykBi" selected="selected">価格</option>'));
		target.append(jQuery('<option value="madnSort">間取</option>'));
		target.append(jQuery('<option value="nbymDc">面積</option>'));
		break;
	case "4": // マンション
		target
				.append(jQuery('<option value="hbykBi" selected="selected">価格</option>'));
		target.append(jQuery('<option value="madnSort">間取</option>'));
		target.append(jQuery('<option value="symnDc">面積</option>'));
		break;
	case "5": // 土地
		target
				.append(jQuery('<option value="hbykBi" selected="selected">価格</option>'));
		target.append(jQuery('<option value="tcmnDc">面積</option>'));
		break;
	case "6": // 一棟売り
		target
				.append(jQuery('<option value="hbykBi" selected="selected">価格</option>'));
		target.append(jQuery('<option value="symnDc">面積</option>'));
		break;
	case "7": // 区分所有
		target
				.append(jQuery('<option value="hbykBi" selected="selected">価格</option>'));
		target.append(jQuery('<option value="symnDc">面積</option>'));
		break;
	case "8": // 事業用土地
		target
				.append(jQuery('<option value="hbykBi" selected="selected">価格</option>'));
		target.append(jQuery('<option value="tcmnDc">面積</option>'));
		break;
	}
}

/**
 * 賃貸リスト情報を取得する。
 */
pitatnet.page.Index.callRentList = function() {
	// console.log("start - pitatnet.page.Index.callRentList");
	pitatnet.page.Index.rentService.list(pitatnet.page.Index
			.createCondition(pitatnet.constant.CORE_NAME_RENT),
			pitatnet.page.Index.updateRentList);
	// console.log("end - pitatnet.page.Index.callRentList");
};

/**
 * 売買リスト情報を取得する。
 */
pitatnet.page.Index.callSaleList = function() {

	pitatnet.page.Index.saleService.list(pitatnet.page.Index
			.createCondition(pitatnet.constant.CORE_NAME_SALE),
			pitatnet.page.Index.updateSaleList);

};

/**
 * 地図内のリスト表示サービスを実行する。
 */
pitatnet.page.Index.callMapList = function() {
	if (isRent()) {
		pitatnet.page.Index.callRentList();
	} else {
		pitatnet.page.Index.callSaleList();
	}
};

/**
 * 賃貸リスト更新ファンクション
 */
pitatnet.page.Index.updateRentList = function(listArr, numFound) {
	// console.log("start - pitatnet.page.Index.updateRentList");
	jQuery('#mapList').html("");
	var ret = "";
	for ( var i = 0; i < listArr.length; i++) {
		ret += pitatnet.page.Index.getRentListHtml(listArr[i]);
	}
	jQuery('#mapList').append(ret);
	// 件数メッセージ
	jQuery("#listArea span.listCount").html(listArr.length);
	jQuery("#listArea span.numFound").html(numFound);
	if (listArr.length < numFound) {
		jQuery("#listArea span.notice").show();
	} else {
		jQuery("#listArea span.notice").hide();
	}
	// console.log("end - pitatnet.page.Index.updateRentList");
};

/**
 * 売買リスト更新ファンクション
 */
pitatnet.page.Index.updateSaleList = function(listArr, numFound) {
	jQuery('#mapList').html("");
	var ret = "";
	for ( var i = 0; i < listArr.length; i++) {
		ret += pitatnet.page.Index.getSaleListHtml(listArr[i]);
	}
	jQuery('#mapList').append(ret);
	// 件数メッセージ
	jQuery("#listArea span.listCount").html(listArr.length);
	jQuery("#listArea span.numFound").html(numFound);
	if (listArr.length < numFound) {
		jQuery("#listArea span.notice").show();
	} else {
		jQuery("#listArea span.notice").hide();
	}
};

/**
 * 賃貸リスト用HTMLの取得
 */
pitatnet.page.Index.getRentListHtml = function(doc) {
	var detcCh = doc.detcCh;
	var detail = '/rentDetail/' + doc.uniqCh + '.html';
	var tag = new pitatnet.common.StringBuffer();
	var imgUri = "http://" + pitatnet.common.LocationUtils.getImageServer()
				+ "/imageconvert/cvt2/" + doc.imkaCh +  "/rent/" + doc.imtoCh + '/' + doc.imkkCh + '/bukken_1.jpg?id=b1f22ed9b6';
	tag.append('<li onmouseover="toggleSignMarker(' + doc.idocBi + ","
			+ doc.keicBi + ',true);" onmouseout="toggleSignMarker('
			+ doc.idocBi + "," + doc.keicBi + ',false);" ><ul>');
	if ("10" === detcCh) {
		tag
				.append('<li class="left"><a href="javascript:void(0);" onclick=\'window.open("'
						+ detail + '","pitatdetail");return false;\'>');
		tag.append('<img src="' + imgUri + '" /></a></li>');
		tag.append('<li><span class="price">'
				+ pitatnet.common.FormatUtils.formatManen(doc.rtp1In)
				+ '</span></li>');
		tag.append('<li>間取:' + doc.madnCh + '</li>');
		tag.append('<li>面積:'
				+ pitatnet.common.FormatUtils.formatArea(doc.symnDc) + '</li>');
		tag.append('<li class="btns">');
		tag
				.append('<a href="javascript:void(0);" onclick=\'window.open("'
						+ detail
						+ '","pitatdetail");return false;\'><img src="/find/images/detail.png" /></a>');
		tag.append('<input type="checkbox" name="detailCheck" value="'
				+ doc.kamcCh + '_' + doc.toucCh + '_' + doc.kkkcCh + '" />');
		tag.append('</li>');
	} else if ("20" === detcCh) {
		tag
				.append('<li class="left"><a href="javascript:void(0);" onclick=\'window.open("'
						+ detail + '","pitatdetail");return false;\'>');
		tag.append('<img src="' + imgUri + '" /></a></li>');
		tag.append('<li><span class="price">'
				+ pitatnet.common.FormatUtils.formatManen(doc.rtp1In)
				+ '</span></li>');
		tag.append('<li>面積:'
				+ pitatnet.common.FormatUtils.formatArea(doc.symnDc) + '</li>');
		tag.append('<li>階建:');
		if (doc.sykfSi === doc.syktSi) {
			tag.append(pitatnet.common.FormatUtils.formatGeneral(doc.sykfSi,
					"階"));
		} else {
			tag.append(pitatnet.common.FormatUtils.formatGeneral(doc.sykfSi,
					"～"));
			tag.append(pitatnet.common.FormatUtils.formatGeneral(doc.syktSi,
					"階"));
		}
		tag.append('</li>');
		tag.append('<li class="btns">');
		tag
				.append('<a href="javascript:void(0);" onclick=\'window.open("'
						+ detail
						+ '","pitatdetail");return false;\'><img src="/find/images/detail.png" /></a>');
		tag.append('<input type="checkbox" name="detailCheck" value="'
				+ doc.kamcCh + '_' + doc.toucCh + '_' + doc.kkkcCh + '" />');
		tag.append('</li>');
	} else {
		var detailParking = '/shopDetail/' + doc.shopVc + '.html';
		tag.append('<li class="parking"><span class="price">');
		if (doc.rtp1nIn === doc.rtp1xIn) {
			tag.append(pitatnet.common.FormatUtils.formatGeneral(doc.rtp1nIn,
					"円"));
		} else {
			tag.append(pitatnet.common.FormatUtils.formatGeneral(doc.rtp1nIn,
					"～"));
			tag.append(pitatnet.common.FormatUtils.formatGeneral(doc.rtp1xIn,
					"円"));
		}
		tag.append('</span></li>');
		tag.append('<li class="parking">名称:' + doc.toujVc + '</li>');
		tag.append('<li class="parking btns">');
		tag
				.append('<a href="javascript:void(0);" onclick=\'window.open("'
						+ detailParking
						+ '","pitatdetail");return false;\'><img src="/find/images/detail.png" /></a>');
		tag.append('</li>');
	}
	tag.append('</ul></li>');
	return tag.toString();
};

/**
 * 売買リスト用HTMLの取得
 */
pitatnet.page.Index.getSaleListHtml = function(doc) {
	var detail = '/buyDetail/' + doc.uniqCh + '.html';
	var detcCh = doc.detcCh;
	var tag = new pitatnet.common.StringBuffer();
	var imgUri = "http://" + pitatnet.common.LocationUtils.getImageServer()
			+ "/imageconvert/cvt2/" + doc.imkaCh +  "/sale/" + doc.imtoCh + '/' + doc.imkkCh + '/bukken_1.jpg?id=b1f22ed9b6';
	tag.append('<li onmouseover="toggleSignMarker(' + doc.idocBi + ","
			+ doc.keicBi + ',true);" onmouseout="toggleSignMarker('
			+ doc.idocBi + "," + doc.keicBi + ',false);" ><ul>');
	if ("04" === detcCh || "14" === detcCh) {
		tag
				.append('<li class="left"><a href="javascript:void(0);" onclick=\'window.open("'
						+ detail + '","pitatdetail");return false;\'>');
		tag.append('<img src="' + imgUri + '" /></a></li>');
		tag.append('<li><span class="price">'
				+ pitatnet.common.FormatUtils.formatManen(doc.hbykBi)
				+ '</span></li>');
		tag.append('<li>面積:'
				+ pitatnet.common.FormatUtils.formatArea(doc.tcmnDc) + '</li>');
		tag.append('<li>用途:' + doc.yttjVc + '</li>');
		tag.append('<li class="btns">');
		tag
				.append('<a href="javascript:void(0);" onclick=\'window.open("'
						+ detail
						+ '","pitatdetail");return false;\'><img src="/find/images/detail.png" /></a>');
		tag.append('<input type="checkbox" name="detailCheck" value="'
				+ doc.kamcCh + '_' + doc.bkncCh + '" />');
		tag.append('</li>');
	} else if ("11" === detcCh || "21" === detcCh || "31" === detcCh
			|| "12" === detcCh || "22" === detcCh || "32" === detcCh) {
		tag
				.append('<li class="left"><a href="javascript:void(0);" onclick=\'window.open("'
						+ detail + '","pitatdetail");return false;\'>');
		tag.append('<img src="' + imgUri + '" /></a></li>');
		tag.append('<li><span class="price">'
				+ pitatnet.common.FormatUtils.formatManen(doc.hbykBi)
				+ '</span></li>');
		tag.append('<li>種別:' + doc.bkhoVc + '</li>');
		tag.append('<li>面積:'
				+ pitatnet.common.FormatUtils.formatArea(doc.symnDc) + '</li>');
		tag.append('<li class="btns">');
		tag
				.append('<a href="javascript:void(0);" onclick=\'window.open("'
						+ detail
						+ '","pitatdetail");return false;\'><img src="/find/images/detail.png" /></a>');
		tag.append('<input type="checkbox" name="detailCheck" value="'
				+ doc.kamcCh + '_' + doc.bkncCh + '" />');
		tag.append('</li>');

	} else {
		var menseki = ("01" === detcCh) ? 'nbymDc' : 'symnDc';
		tag
				.append('<li class="left"><a href="javascript:void(0);" onclick=\'window.open("'
						+ detail + '","pitatdetail");return false;\'>');
		tag.append('<img src="' + imgUri + '" /></a></li>');
		tag.append('<li><span class="price">'
				+ pitatnet.common.FormatUtils.formatManen(doc.hbykBi)
				+ '</span></li>');
		tag.append('<li>間取:' + doc.madnCh + '</li>');
		tag.append('<li>面積:'
				+ pitatnet.common.FormatUtils.formatArea(doc[menseki])
				+ '</li>');
		tag.append('<li class="btns">');
		tag
				.append('<a href="javascript:void(0);" onclick=\'window.open("'
						+ detail
						+ '","pitatdetail");return false;\'><img src="/find/images/detail.png" /></a>');
		tag.append('<input type="checkbox" name="detailCheck" value="'
				+ doc.kamcCh + '_' + doc.bkncCh + '" />');
		tag.append('</li>');
	}
	tag.append('</ul></li>');
	return tag.toString();
};

/**
 * リスト賃貸種別セレクトボックス
 */
pitatnet.page.Index.selectRentSortDetcCh = function(selectbox) {
	var selectedVal = jQuery(selectbox).val();
	// 条件入力画面の種別を連動選択
	jQuery("input:radio[name=rent:detcCh][value=" + selectedVal + "]").attr(
			"checked", "checked");
	jQuery("input:radio[name=rent:detcCh][value=" + selectedVal + "]").click();
	pitatnet.page.Index.callRentList();
};
/**
 * リスト売買種別セレクトボックス
 */
pitatnet.page.Index.selectSaleSortDetcCh = function(selectbox) {
	var selectedVal = jQuery(selectbox).val();
	// 条件入力画面の種別を連動選択
	jQuery("input:radio[name=sale:detcCh][value=" + selectedVal + "]").attr(
			"checked", "checked");
	jQuery("input:radio[name=sale:detcCh][value=" + selectedVal + "]").click();
	pitatnet.page.Index.callSaleList();
};

var signMarker = undefined;
/**
 * 対象の緯度経度にマーカ表示を表示したり非表示したりする。
 *
 * @param _idocBi
 *            緯度
 * @param _keicBi
 *            経度
 * @param _disp
 *            表示する場合はtrue
 */
var toggleSignMarker = function(_idocBi, _keicBi, _disp) {
	if (_disp) {
		if (signMarker)
			signMarker.setMap(null);
		signMarker = new google.maps.Marker({
			icon : new google.maps.MarkerImage(
					"/find/images/mapicon/center.gif", new google.maps.Size(
							110, 110), new google.maps.Point(0, 0),
					new google.maps.Point(55, 76)),
			position : new google.maps.LatLng(_idocBi, _keicBi),
			zIndex : 1
		});
		signMarker.setMap(pitatnet.page.Index.map);
	} else {
		if (signMarker) {
			signMarker.setMap(null);
			signMarker = undefined;
		}
	}
};

/**
 * ソート順切り替え
 */
pitatnet.page.Index.toggleOrder = function(obj) {
	var tag = jQuery(obj);
	if (tag.next("input:hidden").val() == "asc") {
		tag.next("input:hidden").val("desc");
		tag.children("img").attr("src", "/find/images/arrow_down.png");
	} else {
		tag.next("input:hidden").val("asc");
		tag.children("img").attr("src", "/find/images/arrow_up.png");
	}
};

/**
 * 賃貸か売買かを判定する。
 *
 * @return 賃貸の場合にtrue
 */
var isRent = function() {
	if (useArticleClass == 0 || useArticleClass == 1 || useArticleClass == 2)
		return true;
	return false;
};

/**
 * サイドメニュー開閉
 */
var toggleSideMenu = function(obj, initAction) {
	var widthOpen = "400px";
	var widthClose = "200px";
	// #sideMenuから↓を引いて.condAreaの高さとする
	// (ほかの要素の高さをうまく取得できないので)
//	var heightOpenDiff = 48;
//	var heightCloseDiff = 68;
	var heightOpenDiff = 68;
	var heightCloseDiff = 88;
	if (jQuery("#sideMenu").css("width") == widthOpen) {
		// 閉じる
		jQuery(".condArea").height(jQuery("#sideMenu").height() - heightCloseDiff);
		jQuery("#sideMenu").removeClass("opened").addClass("closed");
		jQuery(obj).removeClass("opened").addClass("closed");
		jQuery("#sideMenu").animate(
				{
					"width" : widthClose
				},
				{
					"duration" : "fast",
					"easing" : "swing",
					complete : function() {
					}
				});
	} else {
		// 開く
		jQuery(".condArea").height(
				jQuery("#sideMenu").height() - heightOpenDiff);
		jQuery("#sideMenu").removeClass("closed").addClass("opened");
		jQuery(obj).removeClass("closed").addClass("opened");
		var duration = "fast";
		if (initAction) {
			duration = "slow";
		}
		// 初期表示時
		jQuery("#sideMenu").animate(
				{
					"width" : widthOpen
				},
				{
					"duration" : duration,
					"easing" : "swing",
					complete : function() {
					}
				});
	}
};

/**
 * タブ毎に入力値の有無チェック
 *
 * @returns
 */
var entryCheck = function() {
	jQuery("div.sideCond")
			.each(
					function(idx, ele) {
						if (jQuery(ele)
								.find(
										":checkbox:checked, :radio:checked[value!=0], :text[value!='']:not(#pageNum), select[value!=0]").length > 0) {
							// チェックマーク追加
							if (jQuery("[href=#" + jQuery(ele).attr("id") + "]")
									.children().length == 0) {
								jQuery("[href=#" + jQuery(ele).attr("id") + "]")
										.append(ENTRY_CHECK);
							}
						} else {
							// チェックマークをクリア
							jQuery("[href=#" + jQuery(ele).attr("id") + "]")
									.empty();
						}
					});
	// 選択状態のラベル
	jQuery("div.sideCond label").removeClass("selected");
	jQuery(
			"div.sideCond label:has(input:checked), div.sideCond label:has(radio:checked)")
			.addClass("selected");
};

/**
 * 配下条件を展開
 */
var toggleFollowCond = function(clickedDom) {
	var val = jQuery(clickedDom).siblings("label").find(":checkbox").val();
	val = val.replace(/(^\s+)|(\s+$)/g, ""); // トリム
	var label = jQuery(clickedDom).siblings("label").text();
	// 都道府県or沿線
	var cat = jQuery(clickedDom).closest(".sideCond").attr("id");
	var id;
	var isDivDlg = false;
	if (cat === "sideDivision") {
		id = "municipality_" + val; // 市区町村リスト用ID
		isDivDlg = true;
	} else if (cat === "sideLine") {
		if (label === "バス・車その他") {
			id = "station_other"; // 駅リスト用ID バス・車その他
		} else {
			id = "station_" + val; // 駅リスト用ID
		}
		isDivDlg = false;
	} else {
		return false;
	}
	// すでに配下リスト作成済みなら開閉
	// なければ新規作成
	if (jQuery("#" + id + ":hidden").length > 0) {
		jQuery(clickedDom).siblings("label").closest("span").after(
				"<div class='floatclear'></div>"); // IE7表示崩れ対応
		jQuery("#" + id).show("fast");
	} else if (jQuery("#" + id + ":visible").length > 0) {
		jQuery(clickedDom).siblings("label").closest("span").next(
				"div.floatclear").remove(); // IE7表示崩れ対応
		jQuery("#" + id).hide("fast");
	} else {
		if (cat === "sideDivision") {
			createMunicipality(val);
		} else if (cat === "sideLine") {
			if (id === "station_other") {
				// バス・車その他
				var flist = "<div id='station_other' class='followList'>";
				flist += "	<label>";
				flist += "		<input type='checkbox' name='dlg_station' class='cond' value='001_001' />バス便";
				flist += "	</label>";
				flist += "	<label>";
				flist += "		<input type='checkbox' name='dlg_station' class='cond' value='001_002' />車その他";
				flist += "	</label>";
				flist += "</div>";
				jQuery(clickedDom).after(flist);
			} else {
				// チェック済み都道府県
				var checkedDivisions = jQuery("input[name='dlg_division']:checked");
				var checkedCount = checkedDivisions.length;
				// ループ
				// 選択中の都道府県コードの配列
				var tmpValArr = new Array();
				for ( var i = 0; i < checkedCount; i++) {
					var tmpObj = checkedDivisions.eq(i);
					var tmpVal = tmpObj.val();
					tmpValArr.push(tmpVal);
				}
				createStation(tmpValArr, val);
			}
		}
	}
//	if(isDivDlg) {
//		//$('#sideDivision').scrollTo('5%', {duration: 300});
//		scrollDialog('#sideDivision','#' + id,50);
//	}
//	else {
//		//$('#sideLine').scrollTo('5%', {duration: 300});
//		scrollDialog('#sideLine','#' + id,50);
//	}
};

/**
 * チェックしたアイテムを○○するボタンの活性制御
 *
 * @returns
 */
var controlCheckButtonsAct = function() {
	var checkCount = jQuery(":checkbox[name=detailCheck]:checked:visible").length;
	if (0 < checkCount) {
		jQuery(
				"#compusage a.deactivate, li#detail_s a.deactivate, li#bookmark_s a.deactivate, li#mailform a.deactivate, li#detail a.deactivate, li#compare a.deactivate")
				.removeClass("deactivate").attr("disabled", "");
	} else {
		jQuery(
				"#compusage a, li#detail_s a, li#bookmark_s a, li#mailform a, li#detail a, li#compare a")
				.addClass("deactivate").attr("disabled", "disabled");
	}
};

var getCheckedDivisionText = function(getLength) {
	return _getCheckedText("#divisions input[name='dlg_division']:checked",getLength);
};
var getCheckedDivisionCount = function() {
	return _getCheckedCount("#divisions input[name='dlg_division']:checked");
};

var getCheckedMunicipalityText = function(getLength) {
	return _getCheckedText("#divisions input[name='dlg_municipality']:checked",getLength);
};
var getCheckedMunicipalityCount = function() {
	return _getCheckedCount("#divisions input[name='dlg_municipality']:checked");
};

var getCheckedLineText = function(getLength) {
	return _getCheckedText("#lines input[name='dlg_line']:checked",getLength);
};
var getCheckedLineCount = function() {
	return _getCheckedCount("#lines input[name='dlg_line']:checked");
};

var getCheckedStationText = function(getLength) {
	return _getCheckedText("#lines input[name='dlg_station']:checked",getLength);
};
var getCheckedStationCount = function() {
	return _getCheckedCount("#lines input[name='dlg_station']:checked");
};

var _getCheckedText = function(selector,getLength) {
	var labels = $(selector).parent("label");
	var buf = new pitatnet.common.StringBuffer();
	for ( var i = 0; i < labels.length; i++) {
		buf.append($(labels[i]).text() + " ");
	}
	var text = buf.toString().trim();
	if(getLength) {
		if(text.length > getLength) {
			return text.substring(0,getLength) + "…";
		}
		else {
			return text;
		}
	}
	return text;
};

var _getCheckedCount = function(selector) {
	return  $(selector).length;
};

var scrollDialog = function(dialogSelector,moveSelector,_offset) {
	if(!_offset) {
		_offset = 0
	}
	try {
		$(dialogSelector).scrollTo($(moveSelector), {duration: 300,offset:_offset});
	}
	catch(e) {
		//ignore
	}

};

var changeDialog = function(fromDialogSelector,toDialogSelector,divisionChk) {
	if(divisionChk) {
		if(getCheckedDivisionCount() == 0) {
			$(".qtip").qtip("show");
			return;
		}
		$(".qtip").qtip("hide");
	}
	try {
		$(fromDialogSelector).dialog("close");
		$(toDialogSelector).dialog("open");
	}
	catch(e) {
		//ignore
	}
	return false;
};



