/**
 * 地図検索ライブラリ
 * 
 * @requires jquery.js
 */
($.browser.safari ? $(window).load : $).call($(window), function () {
	if (!window.ZdcMap) return;

	//ユーザ定義吹き出し
	Orange.Search.Map.ZdcUserMsgWindow = new ZdcUserMsgWindow();
	Orange.Search.Map.ZdcUserMsgWindow.setImage(
		'/shared/images/search/map/fukidashi_s.png',
		new ZdcSize(294,77),
		'/shared/images/search/map/blank.png',
		new ZdcSize(270,65),
		'/shared/images/search/map/blank.png',
		new ZdcSize(1,1),
		'/shared/images/search/map/blank.png',
		new ZdcSize(1,1)
	);
	Orange.Search.Map.ZdcUserMsgWindow.setDocPosition(0,0,0,15,0,270,0,0);
	Orange.Search.Map.ZdcUserMsgWindow.setDocOffset(30, -22);
});

/**
 * 吹き出し情報の付加
 */
(function () {
	var base_window_css = {'position' : 'absolute'};
	var base_icon_css = $.extend({ 'top' : '25px', 'left' : '5px' },base_window_css);
	var base_name_css = $.extend({ 'top' : '25px', 'left' : '30px', 'width' : '240px'  },base_window_css);
	var base_comment_css = $.extend({ 'top' : '75px', 'left' : '10px', 'width' : '230px' },base_window_css);
	var base_msg_link_href = '/mansion/lightbox?';
	var window_node = $(
		  '<div id="masionWindowBase">'
		+ '<img id="masionWindowIcon" class="userMsgWindowLink" />'
		+ '<div id="masionWindowName" class="userMsgWindowLink"></div>'
		+ '<div id="masionWindowComment" class="userMsgWindowLink"></div>'
		+ '</div>'
	)
		.find('#masionWindowIcon').css(base_icon_css).end()
		.find('#masionWindowName').css(base_name_css).end()
		.find('#masionWindowComment').css(base_comment_css).end()
	;
	var comment_fold = function (text) {
		var conf = Orange.Config.search_map.comment_fold_length;
		if (text.length <= conf.comment_fold_length) return text;
		return text.substr(0, conf.comment_fold_length) + conf.comment_fold_string;
	}

	Orange.Search.Map.set_window_single = function (mark) {
		//mouse over時window open
		ZdcEvent.addListener(mark, "mouseovermarker", function() {
			Orange.Search.Map.ZdcMap.closeUserMsgWindow_check();
			var mansion = this.my_mansion;
			this.openUserMsgWindow(Orange.Search.Map.ZdcUserMsgWindow, this.Point, window_node.clone().get(0), 1);
			var step = Orange.Util.getStep(mansion.id);
			var uri = base_msg_link_href + mansion.id;
			$('#masionWindowBase')
				.find('.userMsgWindowLink')
					.wrap('<a href="'+uri+'"></a>')
					.end()
				.find('#masionWindowIcon')
					.attr('src', '/shared/images/search/map/mansion/s_'+step+'_'+mansion.status_flag+'.png')
					.end()
				.find('#masionWindowName')
					.html(mansion.name)
					.end()
			;
		});
		//mouse out時window close
		ZdcEvent.addListener(mark, "mouseoutmarker", function() {
			Orange.Search.Map.ZdcMap.closeUserMsgWindow_check();
		});
		//クリック時lightbox open
		ZdcEvent.addListener(mark, "mouseclickmarker", function() {
			var uri = base_msg_link_href + this.my_mansion.id;
			$.getJSON(
				'/api/mansion/getMansion',
				{'id' : this.my_mansion.id},
				function (data) {
					var win = new Orange.Window;
					var val = data.result.data[0];
					win.finish = function ($data) {
						setTimeout(function () {
							new Orange.Unit('list', val).appendTo('.blockAssetsList:last');
						}, 0);
					};
					win.open(uri);
				}
			);
		});
	};
})();

/**
 * 初期化
 */
Orange.Search.Map.mystock_initialize = function (items) {
	if (!window.ZdcMap) return;

	if (!items || !items.result || !items.result.data) return;
	items.result.data = $.grep(items.result.data, function (item) {
		return !!((item.lon && item.lat) || (item.lon_jp && item.lat_jp));
	});
	$('#myStockBodyContainer').append($('<div id="blockMap"><div id="itemMapBody"></div><ul id="itemMapNote"><li>※乗り換えの時間には駅徒歩、バス便の時間は含みません。</li><li>※表示される各種アイコン等の情報は付近住所に所在することを表すものであり、建物・施設等の地点および存在を保証するものではございません。</li></ul><!--/#blockMap--></div>'));
	Orange.Search.Map.initialize();
	Orange.Util.getFolderData(function () {
		Orange.Search.Map.callback({'response' : items})
	});
};

