String.prototype.replaceAll = function (from, to) {

	if (typeof from == "undefined" || typeof to == "undefined"){
		return;
	}
	
	if(from === null){
	
		return;
	}
	
	if(to === null){
	
		to = '';
	}

	var tmp1 = "";
	var tmp2 = this;
	var idx, str;

	while (true) {

		idx = tmp2.indexOf(from, 0);

		if (idx == -1){
			break;
		} 

		str = tmp2.replace(from, to);
		tmp1 += str.substring(0, idx + to.length);
		tmp2 = str.substring(idx + to.length, str.length);

	}

	return tmp1 + tmp2;

};

Array.prototype.remove = function () {

	if (!arguments.length){ return;}

	var a = [];

	for (var i = 0; i < this.length; i++) {

		for (var j = 0; j < arguments.length; j++) {

			if (this[i] == arguments[j]){ break;}

			a.push(this[i]);

		}

	}

	return a;

};

Array.prototype.swap = function (ss1, ss2) {

	var temp = this[ss1];

	this[ss1] = this[ss2];

	this[ss2] = temp;

	return this;

};

Array.prototype.putAll = function (a) {

	for (var i = 0; i < a.length; i++) {
		this.push(a[i]);
	}
	return this;
};

_C_MAP_URL='http://map1.able.co.jp';
_C_HOME_URL='http://www.able.co.jp';

var Able = {};
Able.Mode = {debug: false};
Able.Constant = {
				
				C_MADORI_KBN1	: 1,
				C_MADORI_KBN2	: 2,
				C_MADORI_KBN3	: 3,
				C_MADORI_KBN4	: 4,
				C_MADORI_KBN5	: 5,
				C_MADORI_KBN6	: 6,
				C_MADORI_KBN7	: 7,
				C_MADORI_KBN8	: 8,
				C_MADORI_KBN9	: 9,
				C_MADORI_KBN10: 10,
				C_MADORI_KBN11: 11,
				C_MADORI_KBN12: 12,
				
				C_CHIKUNEN_KBN1	: 1,
				C_CHIKUNEN_KBN2	: 2,
				C_CHIKUNEN_KBN3	: 3,
				C_CHIKUNEN_KBN4	: 4,
				C_CHIKUNEN_KBN5	: 5,
				
				C_JIKAN_KBN1				: 1,
				C_JIKAN_KBN2				: 2,
				C_JIKAN_KBN3				: 3,
				C_JIKAN_KBN4				: 4,
				C_JIKAN_KBN5				: 5,
				
				C_BUKKEN_KBN1			: 1,
				C_BUKKEN_KBN2			: 2,
				C_BUKKEN_KBN3			: 3,
				C_BUKKEN_KBN4			: 4,
				
				C_SHINCHIKU_KBN:1,
				C_SENIOR_KBN:1,
				C_CHUSHA_KBN:1,
				C_BERANDA_KBN:1,
				C_AIRCON_KBN:1,
				C_PET_KBN:1,
				C_PHOTO_KBN:1,

				C_MADORI_KBN1_NM: '1R',
				C_MADORI_KBN2_NM: '1K',
				C_MADORI_KBN3_NM: '1DK',
				C_MADORI_KBN4_NM: '1LDK(+S)',
				C_MADORI_KBN5_NM: '2K/2DK',
				C_MADORI_KBN6_NM: '2LDK(+S)',
				C_MADORI_KBN7_NM: '3K/3DK',
				C_MADORI_KBN8_NM: '3LDK(+S)',
				C_MADORI_KBN9_NM: '4K/4DK',
				C_MADORI_KBN10_NM: '4LDK(+S)',
				C_MADORI_KBN11_NM: '5K/5DK',
				C_MADORI_KBN12_NM: '5LDK(+S)',
				
				C_CHIKUNEN_KBN1_NM: '1年未満',
				C_CHIKUNEN_KBN2_NM: '1年～3年未満',
				C_CHIKUNEN_KBN3_NM: '3年～5年未満',
				C_CHIKUNEN_KBN4_NM: '5年～10年未満',
				C_CHIKUNEN_KBN5_NM: '10年以上',
				
				C_JIKAN_KBN1_NM: '5分未満',
				C_JIKAN_KBN2_NM: '5分～10分未満',
				C_JIKAN_KBN3_NM: '10分～15分未満',
				C_JIKAN_KBN4_NM: '15分～20分未満',
				C_JIKAN_KBN5_NM: '20分以上',
				
				C_BUKKEN_KBN1_NM: 'アパート・ハイツ・コーポ',
				C_BUKKEN_KBN2_NM: 'マンション',
				C_BUKKEN_KBN3_NM: '貸家・テラスハウス',
				C_BUKKEN_KBN4_NM: 'その他',
				
				C_SHINCHIKU_KBN_NM : '新築',
				C_SENIOR_KBN_NM : '高齢者相談可',
				C_CHUSHA_KBN_NM : '駐車場付',
				C_BERANDA_KBN_NM : 'ベランダ',
				C_AIRCON_KBN_NM : 'エアコン',
				C_PET_KBN_NM : 'ペット相談可',
				C_PHOTO_KBN_NM : '外観図／間取り図有り',
				
				C_TAB_CASE_EKI      : 1,
				C_TAB_CASE_MADORI   : 2,
				C_TAB_CASE_CHIKUNEN : 3,
				C_TAB_CASE_JIKAN    : 4,
				C_TAB_CASE_CYOAZA   : 5,
				C_TAB_CASE_BUKKEN   : 6,
				C_TAB_CASE_OTHER    : 7,
				
				C_GROUP_BY_EKI      : '1',//'ekicd',
				C_GROUP_BY_MADORI   : '2',//'madori_kbn',
				C_GROUP_BY_CHIKUNEN : '3',//'chikunen_kbn',
				C_GROUP_BY_JIKAN    : '4',//'jikan_kbn',
				C_GROUP_BY_CYOAZA   : '5',//'cyoaza',
				C_GROUP_BY_BUKKEN   : '6',//'bukken_kbn',

				C_GROUP_BY_SHINCHIKU 	: '7',//'shinchiku_kbn',
				C_GROUP_BY_SENIOR 		: '8',//'senior_kbn',
				C_GROUP_BY_CHUSHA 		: '9',//'chusha_kbn',
				C_GROUP_BY_BERANDA 		: '10',//'beranda_kbn',
				C_GROUP_BY_AIRCON 		: '11',//'aircon_kbn',
				C_GROUP_BY_PET 			: '12',//'pet_kbn',
				C_GROUP_BY_PHOTO 		: '13',//'photo_kbn',
				/* ページインデックスサイズ*/
				C_DISP_CNT_PAGE_NO :9,
				//初期表示ページサイズ --> 画面上を優先する
				C_PAGE_SIZE        :20,
				//ソートタイプ
				C_SORT_TYPE_BK_ADR 	: 1,
				C_SORT_TYPE_EKI 	: 2,
				C_SORT_TYPE_CHINRYO : 3,
				C_SORT_TYPE_MADORI 	: 4,
				C_SORT_TYPE_CHIKUNEN: 5,
				
				C_SORT_TYPE_JIKAN: 6,
				C_SORT_TYPE_SENMENSEKI: 7,
				
				C_SORT_OPTION_ASC   :1,
				C_SORT_OPTION_DESC  :2,

				//こだわり
				C_KODAWARI_PET      :'1',
				C_KODAWARI_SENIOR   :'2',
				C_KODAWARI_SHINCHIKU   :'3',
				C_KODAWARI_CHUSHA   :'4',
				C_KODAWARI_BERANDA   :'5',
				C_KODAWARI_AIRCON   :'6',
				C_KODAWARI_PHOTO   :'7',
				//その他アイコン
				C_ICON_NEW_NAME : "新築",
				C_ICON_AGE_NAME : "高齢者相談可",
				C_ICON_PAR_NAME : "駐車場付き",
				C_ICON_VER_NAME : "ベランダ",
				C_ICON_AIR_NAME : "エアコン",
				C_ICON_PET_NAME : "ペット相談可",
				C_ICON_FIG_NAME :"外観図/間取り図有り",
				//一覧
				C_TOHO_PREFIX :"【徒歩",
				C_TOHO_SUFFIX :"分】",
				C_BUS_PREFIX :"【バス",
				C_BUS_SUFFIX :"分】",
				C_TEIHO_PREFIX :"【停歩",
				C_TEIHO_SUFFIX :"分】",
				
				C_ENSEN_TYPE_JR:1,
				C_ENSEN_TYPE_PR:2,
				C_ENSEN_TYPE_SU:3,
				C_ENSEN_TYPE_BU:4,
				//タブ駅入力画面
				C_LABEL_BKQTY_PREFIX : '【',
				C_LABEL_BKQTY_SUFFIX : '件】',
				C_ADDRESS_OPT1 :'■選択してください。',
				C_RAILROAD_OPT1 :'■10件まで選択できます',
				C_RAILROAD_OPT2 :'■沿線を選択してください。',
				
				
				/* タブタイトル*/
				C_TAB_TITLE_EKI      : '駅を選択してください<br />※複数選択可。選択無しの場合は全てが対象になります。',
				C_TAB_TITLE_MADORI   : '間取りを選択してください<br />※複数選択可。選択無しの場合は全てが対象になります。',
				C_TAB_TITLE_CHIKUNEN : '築年数を選択してください<br />※複数選択可。選択無しの場合は全てが対象になります。',
				C_TAB_TITLE_JIKAN    : '駅からの時間を選択してください<br />※複数選択可。選択無しの場合は全てが対象になります。',
				C_TAB_TITLE_CYOAZA   : '住所を選択してください<br />※複数選択可。選択無しの場合は全てが対象になります。',
				C_TAB_TITLE_BUKKEN   : '物件種別を選択してください<br />※複数選択可。選択無しの場合は全てが対象になります。',
				C_TAB_TITLE_OTHER    : 'その他条件を選択してください',
				
				//
				C_UP   : '▲',
				C_DOWN : '▼',
				C_NYORO : '～',
				


				
				C_IMGTOOL_URL:'http://image.able.co.jp/imgtool.php?__width=$width$&__colors=8&__format=jpeg&Para_FilePath=$cd$$bkcd$$roomno$.JPG&Para_FileType=$type$',
				//間取り図ＵＲＬ
				C_IMG_MADORI_URL :'http://www.able.co.jp/search/madori.cfm?u=$userid$&b=$bkcd$&r=$roomno$',
				//概観図ＵＲＬ
				C_IMG_PHOTO_URL :'http://www.able.co.jp/search/gaikan.cfm?u=$userid$&b=$bkcd$&r=$roomno$',
				//詳細
				C_DETAIL_URL :'/Detail.do?userid=$userid$&bkcd=$bkcd$&roomno=$roomno$&areacd=$areacd$',
				//お気に入り
				C_FAVORITE_URL :'/Favorite.do',
				//問い合わせ
				C_ASK_URL : 'https://www.able.co.jp/search/mail.cfm?u=$userid$&b=$bkcd$&r=$roomno$&a=$areacd$',
				//友人に知らせる
				C_FRIEND_URL : 'https://www.able.co.jp/search/mail_to_friend.cfm',
				//印刷
				C_PRINT_URL : 'http://www.able.co.jp/search/print.cfm?u=$userid$&b=$bkcd$&r=$roomno$&a=$areacd$',
				//予約
				C_RESERVE_URL : 'https://www.able.co.jp/search/reserve.cfm?u=$userid$&b=$bkcd$&r=$roomno$&a=$areacd$',
/**************************/
				C_SEARCH_DOMAIN : 'search.able.co.jp',
				C_BLOG_DOMAIN	: 'blog.able.co.jp',
				C_MAP_DOMAIN	: 'maptest.able.co.jp',
				
				//物件地図
				C_MAP_URL : _C_MAP_URL + '/mapsearch/view?bukken_no=$userid$$bkcd$$roomno$&zlv=8&bukken=1&info=a&shop=a',
				
				//店舗地図
				C_MAP_URL_FOR_SHOP : _C_MAP_URL + '/mapsearch/view?shop_no=$shopcd$&zlv=6&bukken=a&info=0&shop=a',
				
				//店舗地図
				C_MAP_URL_FOR_MAP : _C_MAP_URL + '/mapsearch/view?$param$',
				//店舗blog
				C_BLOG_URL : 'http://blog.able.co.jp/$shopcd$',
/**************************/
				//アイコン説明ＵＲＬ
				C_ICON_URL : 'http://www.able.co.jp/search/icons.cfm',
							
				C_WIN_NAME_SEARCH:'able_search',
				C_WIN_NAME_DETAIL:'able_detail',
				C_WIN_NAME_BLOG  :'able_blog',
				C_WIN_NAME_FAVORITE :'able_favorite',
				
				C_IMG_MADORI_KBN_ON:1,
				C_IMG_PHOTO_KBN_ON:1,
				
				C_COOKIE_DOMAIN	:'.able.co.jp',
				C_COOKIE_NAME_SEARCH :'sf',
				C_COOKIE_NAME_BLOG :'bf',
				C_COOKIE_NAME_MAP :'mf'
				
};

Able.Message = {
				SELECT_ENSEN_ERR	: '沿線が１０件以上選択されています。',
				SELECT_ENSEN_BUS_ERR: 'バスはまたげません。',
				SELECT_EKI_ERR 		: '駅が２０件以上選択されています。',
				REQUIRED_ENSEN_ERR 	: '沿線を選択してください。',
				REQUIRED_EKI_ERR 	: '駅を選択してください。',
				
				REQUIRED_PREF_ERR 	: '都道府県を選択してください。',
				REQUIRED_CITY_ERR 	: '市区町村を選択してください。',
				REQUIRED_AREA_ERR 	: 'エリアを選択してください。',
				ERR_C_FROM_TO			: '下限より上限が小さい値では検索できません。\nプルダウンの値の修正をお願いいたします。',
				ERR_S_FROM_TO			: '下限より上限が小さい値では検索できません。\nプルダウンの値の修正をお願いいたします。',
				ERR_J_FROM_TO			: 'FromよりToが小さい値で検索できません。'
};

Able.Util  =  {removeEmptyValue:function(object){
	
		var newObject = {};
		
		for (var k in object){
		
			if(object[k] !== ''){
				newObject[k] = object[k];
			}
		
		}
		
		return newObject;
	
	},
	showParam :function(cond){
		
		if(!Able.Mode.debug){
			return;
		}

		alert(cond.toSource());
	},
	orz : function(cond){
	
		if (typeof cond == "undefined" ){
			return;
		}
		
		var s = cond.split(',');//.sort(function(a,b){return a - b;});
		var wk = [];

		for(var i = 0 ; i < s.length ;i++){
		
			if((Number(s[i-1]) + 1 == Number(s[i]))){
				if(wk[wk.length -1] != '～'){
					wk.push('～');
				}
				if (!(s[i+1] && Number(s[i]) + 1 == Number(s[i + 1]))){
					wk.push(s[i]);
				}
			}else{
			
				if(Number(s[i-2]) + 1 == Number(s[i-1])){
					wk.pop();
				}
				wk.push(s[i-1]);
				wk.push(s[i]);
			}
			
		}
		wk = wk.compact();

		if(wk[wk.length -1 ] == '～'){
			
			if(Number(wk[wk.length -2 ]) + 1 == Number(s[s.length -1 ])){
				wk.pop();
			}
			wk.push(s[s.length -1]);
		}

		var wk2 = [];

		for(var j = 0 ; j < wk.length;j++){
		
			if(wk2.indexOf(wk[j]) > -1 && wk[j] != '～'){
				
			}else{
				wk2.push(wk[j]);
			}
			
		}

		return wk2;

	},
	getTohoJikanStr: function(eki_toho,bus,bus_teiho){
	
		var s = '';
		
		if(!(eki_toho === null || eki_toho ==='')){
			s += Able.Constant.C_TOHO_PREFIX +  eki_toho + Able.Constant.C_TOHO_SUFFIX;
		}
		
		if(!(bus === null || bus ==='')){
		
			s += Able.Constant.C_BUS_PREFIX + bus + Able.Constant.C_BUS_SUFFIX;
		
		}
		if(!(bus_teiho === null || bus_teiho ==='')){
		
			s += Able.Constant.C_TEIHO_PREFIX + bus_teiho + Able.Constant.C_TEIHO_SUFFIX;
		
		}



		return s;
	},
	makeMadoriUrl:function(areacd,userid,bkcd,roomno,width){
		
		if(userid.charAt(0) == '0'){
			return Able.Constant.C_IMGTOOL_URL.replaceAll('$width$',width).replaceAll('$cd$',areacd).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno).replaceAll('$type$','1');
		}
		return Able.Constant.C_IMGTOOL_URL.replaceAll('$width$',width).replaceAll('$cd$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno).replaceAll('$type$','11');
		
	},
	makePhotoUrl:function(areacd,userid,bkcd,roomno,width){
		if(userid.charAt(0) == '0'){
			return Able.Constant.C_IMGTOOL_URL.replaceAll('$width$',width).replaceAll('$cd$',areacd).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$','').replaceAll('$type$','3');
		}
		return Able.Constant.C_IMGTOOL_URL.replaceAll('$width$',width).replaceAll('$cd$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno).replaceAll('$type$','13');
	},
	makeMadoriPopUpUrl:function(userid,bkcd,roomno){
		return Able.Constant.C_IMG_MADORI_URL.replaceAll('$userid$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno);
	},
	makePhotoPopUpUrl:function(userid,bkcd,roomno){
		return Able.Constant.C_IMG_PHOTO_URL.replaceAll('$userid$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno);
	},
	makeDetailPopUpUrl:function(userid,bkcd,roomno,areacd){
		return Able.Constant.C_DETAIL_URL.replaceAll('$userid$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno).replaceAll('$areacd$',areacd);
	},
	makeFavoritePopUpUrl:function(){
		return Able.Constant.C_FAVORITE_URL;
	},
	makeAskUrl :function(userid,bkcd,roomno,areacd){
		return Able.Constant.C_ASK_URL.replaceAll('$userid$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno).replaceAll('$areacd$',areacd);
	},
	makePrintUrl :function(userid,bkcd,roomno,areacd){
		return Able.Constant.C_PRINT_URL.replaceAll('$userid$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno).replaceAll('$areacd$',areacd);
	},
	makeReserveUrl :function(userid,bkcd,roomno,areacd){
		return Able.Constant.C_RESERVE_URL.replaceAll('$userid$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno).replaceAll('$areacd$',areacd);
	},
	makeMapUrl :function(userid,bkcd,roomno){
		return Able.Constant.C_MAP_URL.replaceAll('$userid$',userid).replaceAll('$bkcd$',bkcd).replaceAll('$roomno$',roomno);
	},
	makeMapUrlForShop :function(shopcd){
		return Able.Constant.C_MAP_URL_FOR_SHOP.replaceAll('$shopcd$',shopcd);
	},
	makeMapUrlForMap :function(param){
		return Able.Constant.C_MAP_URL_FOR_MAP.replaceAll('$param$',param);
	},
	makeBlogUrl :function(shopcd){
		return Able.Constant.C_BLOG_URL.replaceAll('$shopcd$',shopcd);
	},
	getName : function(tab_case,kbn){


		switch (tab_case){
		case Able.Constant.C_TAB_CASE_BUKKEN:
			
			switch (Number(kbn)){
			case Able.Constant.C_BUKKEN_KBN1 :return Able.Constant.C_BUKKEN_KBN1_NM;
			case Able.Constant.C_BUKKEN_KBN2 :return Able.Constant.C_BUKKEN_KBN2_NM;
			case Able.Constant.C_BUKKEN_KBN3 :return Able.Constant.C_BUKKEN_KBN3_NM;
			case Able.Constant.C_BUKKEN_KBN4 :return Able.Constant.C_BUKKEN_KBN4_NM;
			default:return kbn;
			}
		case Able.Constant.C_TAB_CASE_MADORI:
			switch (Number(kbn)){
			case Able.Constant.C_MADORI_KBN1	 :return Able.Constant.C_MADORI_KBN1_NM;
			case Able.Constant.C_MADORI_KBN2	 :return Able.Constant.C_MADORI_KBN2_NM;
			case Able.Constant.C_MADORI_KBN3	 :return Able.Constant.C_MADORI_KBN3_NM;
			case Able.Constant.C_MADORI_KBN4	 :return Able.Constant.C_MADORI_KBN4_NM;
			case Able.Constant.C_MADORI_KBN5	 :return Able.Constant.C_MADORI_KBN5_NM;
			case Able.Constant.C_MADORI_KBN6	 :return Able.Constant.C_MADORI_KBN6_NM;
			case Able.Constant.C_MADORI_KBN7	 :return Able.Constant.C_MADORI_KBN7_NM;
			case Able.Constant.C_MADORI_KBN8	 :return Able.Constant.C_MADORI_KBN8_NM;
			case Able.Constant.C_MADORI_KBN9	 :return Able.Constant.C_MADORI_KBN9_NM;
			case Able.Constant.C_MADORI_KBN10  :return Able.Constant.C_MADORI_KBN10_NM;
			case Able.Constant.C_MADORI_KBN11  :return Able.Constant.C_MADORI_KBN11_NM;
			case Able.Constant.C_MADORI_KBN12  :return Able.Constant.C_MADORI_KBN12_NM;
			default:return kbn;
			}
		case Able.Constant.C_TAB_CASE_CHIKUNEN:
			switch (Number(kbn)){
			case Able.Constant.C_CHIKUNEN_KBN1	 :return Able.Constant.C_CHIKUNEN_KBN1_NM;
			case Able.Constant.C_CHIKUNEN_KBN2	 :return Able.Constant.C_CHIKUNEN_KBN2_NM;
			case Able.Constant.C_CHIKUNEN_KBN3	 :return Able.Constant.C_CHIKUNEN_KBN3_NM;
			case Able.Constant.C_CHIKUNEN_KBN4	 :return Able.Constant.C_CHIKUNEN_KBN4_NM;
			case Able.Constant.C_CHIKUNEN_KBN5	 :return Able.Constant.C_CHIKUNEN_KBN5_NM;
			default:return kbn;
			}
		case Able.Constant.C_TAB_CASE_JIKAN:
			switch (Number(kbn)){
			case Able.Constant.C_JIKAN_KBN1	 :return Able.Constant.C_JIKAN_KBN1_NM;
			case Able.Constant.C_JIKAN_KBN2	 :return Able.Constant.C_JIKAN_KBN2_NM;
			case Able.Constant.C_JIKAN_KBN3	 :return Able.Constant.C_JIKAN_KBN3_NM;
			case Able.Constant.C_JIKAN_KBN4	 :return Able.Constant.C_JIKAN_KBN4_NM;
			case Able.Constant.C_JIKAN_KBN5	 :return Able.Constant.C_JIKAN_KBN5_NM;
			default:return kbn;
			}
		case Able.Constant.C_TAB_CASE_OTHER:
			switch (Number(kbn)){
			case Able.Constant.C_SHINCHIKU_KBN	:return Able.Constant.C_SHINCHIKU_KBN;
			case Able.Constant.C_SENIOR_KBN	 		:return Able.Constant.C_SENIOR_KBN;
			case Able.Constant.C_CHUSHA_KBN	 	  :return Able.Constant.C_CHUSHA_KBN;
			case Able.Constant.C_BERANDA_KBN	  :return Able.Constant.C_BERANDA_KBN;
			case Able.Constant.C_AIRCON_KBN	    :return Able.Constant.C_AIRCON_KBN;
			case Able.Constant.C_PET_KBN	      :return Able.Constant.C_PET_KBN;
			case Able.Constant.C_PHOTO_KBN	    :return Able.Constant.C_PHOTO_KBN;
			default:return kbn;
			}
		default:
			return kbn;
		}

	},
	addCookie: function(value){
	
	   var cookie    = new HTTP.Cookies();
	   var v  = cookie.read(Able.Constant.C_COOKIE_NAME_SEARCH);
	   var wk = value.split('_');
	   
	   if(v.indexOf(wk[1] + '_' + wk[2])>-1){
	   		cookie.write(Able.Constant.C_COOKIE_NAME_SEARCH,v ,'+1.5M','/',Able.Constant.C_COOKIE_DOMAIN,null);
	   }else{
	   		cookie.write(Able.Constant.C_COOKIE_NAME_SEARCH,v + ',' + value,'+1.5M','/',Able.Constant.C_COOKIE_DOMAIN,null);
	   }
	
		favorite();
	},
	removeSearchCookie: function(value){
	
	   var cookie    = new HTTP.Cookies();
	   var v  = cookie.read(Able.Constant.C_COOKIE_NAME_SEARCH);
	   if(v.indexOf(value)>-1){
	   		var array = v.split(',');
	   		var wk = [];
	   		
	   		for(var i = 0; i<array.length;i++){
	   		
	   			if(array[i].indexOf(value)==-1){
	   				wk.push(array[i]);
	   			}
	   			
	   		}
	   		wk.compact();
	   		cookie.write(Able.Constant.C_COOKIE_NAME_SEARCH,wk.toString() ,'+1.5M','/',Able.Constant.C_COOKIE_DOMAIN,null);
	   }
	
	},
	removeBlogCookie: function(value){
	
	   var cookie    = new HTTP.Cookies();
	   var v  = cookie.read(Able.Constant.C_COOKIE_NAME_BLOG);
	   
	   if(v.indexOf(value)>-1){
	   		var array = v.split(',');
	   		var wk = [];
	   		
	   		for(var i = 0; i<array.length;i++){
	   		
	   			if(array[i].indexOf(value)==-1){
	   				wk.push(array[i]);
	   			}
	   			
	   		}
	   		wk.compact();
	   		
	   		

	   		
	   		
	   		cookie.write(Able.Constant.C_COOKIE_NAME_BLOG,wk.toString() ,'+12M','/',Able.Constant.C_COOKIE_DOMAIN,null);
	   }
	
	},
	removeMapCookie: function(value){
	
	   var cookie    = new HTTP.Cookies();
	   var v  = cookie.readNotUnescape(Able.Constant.C_COOKIE_NAME_MAP);
	   var s = unescape(v);
	   var c = '';
	   
	   if(s.indexOf(value)>-1){
	   
	   		
	   		var array = v.split('%2C');
	   		var wk = [];
	   		
	   		for(var i = 0; i<array.length;i++){
	   		
	   			if(unescape(array[i]).indexOf(value)==-1){
	   				wk.push(array[i]);
	   			}
	   			
	   		}
	   		wk.compact();
	   		
	   		for(var j = 0; j<wk.length;j++){
	   		
	   			if(wk[j]!==''){
	   				c += wk[j] + escape(',');
	   			}
	   			
	   		}
	   		
	   		cookie.writeNotEscape(Able.Constant.C_COOKIE_NAME_MAP,c ,'+12M','/',Able.Constant.C_COOKIE_DOMAIN,null);
	   }
	
	},
 	currency :function(n) {
    	var result;
	    var str = "" + n;
	    var ary;
	    if(!(ary = str.match(/^([\+-]|)(\d+)(\.\d+|)$/))){
	        return "";
	    }
	    var int_part = ary[2];
	    var len = int_part.length;
	    var mod = (len - 1) % 3 + 1;
	    result = int_part.substr(0, mod);
	    for(var i = mod; i < len; i += 3){
	        result += "," + int_part.substr(i, 3);
	    }
	    result = ary[1] + result + ary[3];
	    return result;
	},
	loadStart :function(){
		if($('load')){
		
			$('load').style.display = '';
		
		}
	},
	loadEnd :function(){
		if($('load')){
		
			$('load').style.display = 'none';
		
		}
	},
	addFavorite :function(){
		
		if(window.external){
			window.external.addFavorite(_C_HOME_URL ,'[エイブル] 賃貸マンション・アパートなど賃貸住宅の部屋探し・一人暮らしの不動産賃貸情報');
		}else{
			window.sidebar.addPanel('[エイブル] 賃貸マンション・アパートなど賃貸住宅の部屋探し・一人暮らしの不動産賃貸情報',_C_HOME_URL ,'');
		}
	}
	
};

Able.DwrCallbackOpt = Class.create();
Able.DwrCallbackOpt.prototype = {
	initialize: function(callback,preHook,postHook,errorHandler) {
	
	    this.callback = callback;
	    this.preHook = preHook || this._preHook;
	    this.postHook = postHook || this._postHook;
	    
	    this.errorHandler = errorHandler || this._errorHandler;
		
		},
	setCallback:function(callback){

		this.callback = callback;
	},
	setPreHook:function(preHook){
		this.preHook = preHook;
	},
	setErrorHandler:function(errorHandler){
		this.errorHandler = errorHandler;
	},
	_preHook:function(){
		
		Able.Util.loadStart();
		
	},
	_postHook:function(){
		
		Able.Util.loadEnd();
		
	},
	_errorHandler:function(errorString, exception){
		alert(errorString);
	}
};
function map(userid,bkcd,roomno){
	window.open(Able.Util.makeMapUrl(userid,bkcd,roomno), Able.Constant.C_WIN_NAME_SEARCH).focus();
}
function mapForShop(shopcd){
	window.open(Able.Util.makeMapUrlForShop(shopcd), Able.Constant.C_WIN_NAME_SEARCH).focus();
}
function mapForMap(urlParam){
	window.open(Able.Util.makeMapUrlForMap(urlParam), Able.Constant.C_WIN_NAME_SEARCH).focus();
}
function blog(shopcd){
	window.open(Able.Util.makeBlogUrl(shopcd), Able.Constant.C_WIN_NAME_BLOG).focus();
}
function favorite(){
	if(window.name == Able.Constant.C_WIN_NAME_FAVORITE){
		window.location.href = '/Favorite.do';
	}else{
		window.open("/Favorite.do",Able.Constant.C_WIN_NAME_FAVORITE,"toolbar=no,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,alwaysRaised=1").focus();
	}
}
function popUpIcon(){
	popup = window.open(Able.Constant.C_ICON_URL,"popDialog2","width=400,height=600,scrollbars=yes,resizable=yes,toolbar=no");
	popup.focus(); 

}
function popUpDetail(url){

	window.open(url,Able.Constant.C_WIN_NAME_DETAIL,"toolbar=no,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,alwaysRaised=1").focus();

}

function popUp(url){

	popup = window.open(url,"popDialog","width=400,height=400,scrollbars=yes,resizable=yes,toolbar=no");

	popup.focus(); 


}
function setGnavi(){
	
	var url = window.location.href;
	Element.removeClassName('gnaviStation','stay');
	Element.removeClassName('gnaviRailroad','stay');
	Element.removeClassName('gnaviAddress','stay');
	
	if(url.indexOf('station') > -1){
		Element.addClassName('gnaviStation','stay');
	}
	if(url.indexOf('railroad') > -1){
		Element.addClassName('gnaviRailroad','stay');
	}
	if(url.indexOf('address') > -1){
		Element.addClassName('gnaviAddress','stay');
	}

}
Event.observe(window, 'load', setGnavi, false);