var sapuzUUID, sapuzMarker;
var sapuzIcon = new UIcon({
		image: 'sapuz/img/sapuzMarker.gif',
		iconWidth: 36,
		iconHeight: 40,
		iconAnchor: new parent.UPoint(18, 20),
		infoWindowAnchor: new parent.UPoint(18, 0)
	});
var sapuz = function(keyword, opt){
	var urmapSapuzDomain = 'sapuz/';
	var queryUrl = urmapSapuzDomain + 'Result.jsp?';
	var args = [];
	if (opt) { // 店名查週邊
		for (var i in opt) {
			args.push(i + '=' + encodeURI(opt[i]));
		}
		queryUrl += args.join('&');
	} else if (keyword) { // Sapuz連結入口
	 	queryUrl += 'q=' + encodeURI(keyword);
	} else { // help link
		queryUrl = urmapSapuzDomain + 'index.jsp?';
	}
	if(!U.gi('sapuzIFrame')){
		sapuzUUID = new UUID().toString();
		var iframeHtml = '<iframe id="sapuzIFrame" name="sapuzIFrame" name="sapuzIFrame" src="" style="width:100%;height:100%;" frameborder="0" marginwidth="0" marginheight="0" onload="resizeIframe(this)"></iframe>';
		U.gi('detailDiv').innerHTML = iframeHtml;
	}
	queryUrl += '&uuid='+sapuzUUID;
	U.gi('sapuzIFrame').src = queryUrl;
	alm.getLayout('mainLayout').showPanel('detailDiv');
};

var sapuzIt = function(data) {
	if (!data) return;
	var sapuzData = {
		lat: (data.lat) ? parseFloat(data.lat) : 0,
		lng: (data.lng) ? parseFloat(data.lng) : 0,
		title: (data.title) ? decodeURI(data.title.replace(/'/g,"\\'")) : '',
		addr: (data.addr) ? decodeURI(data.addr) : '',
		info: (data.info) ? decodeURIComponent(data.info) : '',
		link: (data.link) ? decodeURI(data.link) : '',
		loc: (data.loc) ? decodeURI(data.loc) : '',
		date: (data.date) ? decodeURI(data.date) : '',
		label: '',
		desc: ''
	};
	if (sapuzData.title) {
		var labelParams = '{qname:\'' + sapuzData.title + '\', lat:' + sapuzData.lat + ', lng:' + sapuzData.lng + '}';
		sapuzData.label = sapuzData.title + '<a href="javascript:void(0);" onclick="sapuz(\'' + sapuzData.title + '\',' + labelParams + ')"><img src="sapuz/img/sapuz_link02.gif" /></a>';
	}
	if (sapuzData.addr) {
		var descParams = '{qname:\'' + sapuzData.addr + '\', lat:' + sapuzData.lat + ', lng:' + sapuzData.lng + '}';
		sapuzData.desc = sapuzData.addr + '<a href="javascript:void(0);" onclick="sapuz(\'' + sapuzData.addr + '\',' + descParams + ');return false;"><img src="sapuz/img/sapuz_link02.gif" /></a>';	
	}
	var showInfoWindow = function(marker, sapuzData) {
		var sapuzData = sapuzData || marker.sapuzData;
		var html = [];
		if (sapuzData.label)
			html.push('<p style="font-weight:bold;color:#777;margin-bottom:3px;">' + sapuzData.label + '<a href="javascript:void(0)" onclick="sapuz()"><img src="sapuz/img/help.gif" /></a></p>');
		if(sapuzData.addr)
			html.push('<p style="color:#FF7E00;margin-bottom:10px;">' + sapuzData.desc + '</p>');
		if(sapuzData.info)
			html.push('<p style="color:#FF7E00;margin-bottom:10px;">' + sapuzData.info + '</p>');
		if(sapuzData.link)
			html.push('<a style="color:#FF7E00;margin-bottom:10px;" src="' + sapuzData.link + '"> Link </a>');
		if(sapuzData.loc)
			html.push('<p style="color:#FF7E00;margin-bottom:10px;">' + sapuzData.loc + '</p>');
		if(sapuzData.date)
			html.push('<p style="color:#FF7E00;margin-bottom:10px;">' + sapuzData.date + '</p>');
		var infowindowOptions = new UInfoWindowOptions();
		infowindowOptions.width = 300;
		infowindowOptions.title = sapuzData.title;
		//infowindowOptions.themeStyle = 'orange';
		infowindowOptions.content = html.join('');
		marker.openInfoWindow(infowindowOptions);
	};
	map.closeInfoWindow();
	if (sapuzData.lat && sapuzData.lng) {
		var latlng = new ULatLng(sapuzData.lat, sapuzData.lng);
		map.centerMap(latlng);
		if (!sapuzMarker) {
			sapuzMarker = new UMarker(latlng, sapuzIcon, sapuzData.label, sapuzData.desc);
			sapuzMarker.sapuzData = sapuzData;
			sapuzMarker.addListener('click', function(event, marker, latlng){
				showInfoWindow(marker);
			});
			map.addOverlay(sapuzMarker);
		} else {
			sapuzMarker.sapuzData = sapuzData;
			sapuzMarker.setMouseonInfo(sapuzData.label, sapuzData.desc);
			sapuzMarker.setPoint(latlng);
		}
		showInfoWindow(sapuzMarker, sapuzData);
	}
};