<krpano>
<events name="custommap" keep="true" onxmlcomplete="init_allcustommap();" onnewscene="active_mapspot();" __onxmlcomplete="active_mapspot();"></events>
<action name="tour_start" autorun="preinit">
set(global.map_visible,1);
</action>	
<action name="init_allcustommap" _autorun="preinit">
<!-- callwith(layer[menutools],do_container-button); -->
<!-- set(global.lastmap,''); -->
<!-- trace('init_allcustommap:',get(global.map_init)); -->
if (global.map_init == 1,,
	<!-- trace('init_allcustommap'); -->
	for(set(i,0), i LT map.count, inc(i), 
		<!-- map start -->
		copy(map_name,map[get(i)].name);

		addlayer(get(map_name));
		copyattributes(get(layer[get(map_name)]),get(map[get(i)]));
		copy(_pp,layer[get(map_name)].parent);
		if (layer[get(map_name)].parent AND layer[get(_pp)].type == 'scrollarea',   
				set(layer[get(map_name)],x=0,y=0;);
			);
		set(layer[get(map_name)].preload , true);//强制预先加载地图图片
		wait(1);
		callwhen(layer[get(map_name)],
			init_custommap(get(i),get(map_name));
			init_custommap_spot(get(i),get(map_name));
			<!-- trace(get(map[get(i)].title)); -->
			);
		);		

	set(global.map_init,1);
	);
</action>
<action name="init_custommap">
<!-- map end -->
if (layer[%2].spot_url ===  null,
	set(layer[%2].spot_url, '%CURRENTXML%imgs/map/spot.png');
	set(layer[%2].keep,true);
	set(layer[%2].mtype,'item');
	set(layer[%2].spot_n_crop,'0|0|14|14');
	set(layer[%2].spot_n_onovercrop,'14|0|14|14');
	set(layer[%2].spot_n_ondowncrop,'14|0|14|14');
	set(layer[%2].spot_c_crop,'14|0|14|14');
	set(layer[%2].spot_c_onovercrop,'14|0|14|14');
	set(layer[%2].spot_c_ondowncrop,'14|0|14|14');
	set(layer[%2].spot_y_crop,'28|0|14|14');
	<!-- trace(map[get(i)].name,':',get(map[get(i)].spot_y_crop)); -->
	set(layer[%2].spot_y_onovercrop,'28|0|14|14');
	set(layer[%2].spot_y_ondowncrop,'28|0|14|14');
	if (layer[%2].showmap === null || layer[%2].showmap === '' || layer[%2].showmap == '',set(layer[%2].showmap,'set(visible,true);');set(layer[%2].hidemap,'set(visible,false);'););
	);

<!-- trace('init_custommap-',get(layer[%2].title));
trace('init_custommap-parent-',get(layer[%2].parent)); -->

<!-- 初始隐藏地图 -->
copy(spot_url, layer[%2].spot_url);
callwith(layer[%2],hidemap);
<!-- trace(get(layer[%2].hidemap)); -->
callwhen(layer[%2],
	
	<!-- trace(get(spot_url)); -->
	<!-- radar start -->

	txtadd(radar_name, 'radar_', %2);

	addlayer(get(radar_name));
	copy(layer[get(radar_name)].url,  layer[%2].spot_url);
	set(layer[get(radar_name)].keep,true);
	set(layer[get(radar_name)].visible,true);
	set(layer[get(radar_name)].scale,1);
	set(layer[get(radar_name)].handcursor,true);
	copy(layer[get(radar_name)].parent,layer[%2].name);
	copy(layer[get(radar_name)].crop,layer[%2].spot_c_crop);
	copy(layer[get(radar_name)].onovercrop,layer[%2].spot_c_onovercrop);
	copy(layer[get(radar_name)].ondowncrop,layer[%2].spot_c_ondowncrop);

	txtadd(_radar_name, '_radar_', %2);
	addlayer(get(_radar_name));
	copyattributes(get(layer[get(_radar_name)]),get(map[%1].radar));
	set(layer[get(_radar_name)].keep,true);
	copy(layer[get(_radar_name)].parent,radar_name);
	set(layer[get(_radar_name)].capture,true);

	copy(layer[get(_radar_name)].width,layer[get(_radar_name)].widthheight);
	copy(layer[get(_radar_name)].height,layer[get(_radar_name)].widthheight);
	set(layer[get(_radar_name)].align,'center');
	set(layer[get(_radar_name)].edge,'center');

	if(device.html5,set(layer[get(_radar_name)].url,'%CURRENTXML%plugins/radar.js');,set(layer[get(_radar_name)].url,'%CURRENTXML%plugins/radar.swf'););
	<!-- radar end -->
	);

</action>

<action name="init_custommap_spot">
for(set(ii,0), ii LT map[%1].spot.count, inc(ii), 
	txtadd(spot_name,'spot_',get(map[%1].spot[get(ii)].linkscene));

	addlayer(get(spot_name));
	set(layer[get(spot_name)].keep,true);
	set(layer[get(spot_name)].parent,%2);
	set(layer[get(spot_name)].align,'lefttop');
	set(layer[get(spot_name)].edge,'center');
	set(layer[get(spot_name)].scale,1);
	set(layer[get(spot_name)].handcursor,true);
	set(layer[get(spot_name)].url,get(spot_url));
	set(layer[get(spot_name)].function,'loadscene');
	set(layer[get(spot_name)].onclick,'do_function();');
	set(layer[get(spot_name)].blend,'OPENBLEND');
	set(layer[get(spot_name)].tween_time,'0.5');
	set(layer[get(spot_name)].tween_shape,'0.0');
	set(layer[get(spot_name)].tween_smooth,'075');
	set(layer[get(spot_name)].tween_zoom,'0.005');
	set(layer[get(spot_name)].tween_tweentype,'linear');

	copy(layer[get(spot_name)].crop,layer[%2].spot_n_crop);
	copy(layer[get(spot_name)].onovercrop,layer[%2].spot_n_onovercrop);
	copy(layer[get(spot_name)].ondowncrop,layer[%2].spot_n_ondowncrop);

	copyattributes(get(layer[get(spot_name)]),get(map[%1].spot[get(ii)]));
	add_mapspot_tooltip(get(spot_name));
	);
</action>
<action name="remove_allcustommap">
for(set(i,0), i LT map.count, inc(i), 
	<!-- map start -->
	copy(map_name,map[get(i)].name);
	remove_custommap(get(i),get(map_name));
	);
set(global.map_init,0);
</action>
<action name="remove_custommap">
set(i,%1);
set(map_name,%2);
removelayer(%2);
txtadd(radar_name, 'radar_', %2);
removelayer(get(radar_name));
txtadd(_radar_name, '_radar_', %2);
removelayer(get(_radar_name));

for(set(ii,0), ii LT map[%2].spot.count, inc(ii), 
	copy(spot_name,map[%2].spot[get(ii)].name);
	removelayer(get(spot_name));
	remove_mapspot_tooltip(get(spot_name));
	);		
</action>

<style name="mapspot_tooltip"
type="type"
url="%CURRENTXML%/plugins/textfield.swf"
wordwrap="true"
autoheight="true"
background="true"
backgroundcolor="0x000000"
roundedge="5"
backgroundalpha="0.5"
border="true"
padding="3"
keep="true"
glow="4" x="0" y="0"
glowcolor="0xFFFFFF"
css="text-align:center; color:#FFFFFF; font-family:Arial; font-size:12px;"
textshadow="1"
textshadowrange="6.0"
extshadowangle="90"
enabled="true"
/>

<action name="active_mapspot">
if (global.lastscene == xml.scene AND false,
	,
	if (global.lastscene === null ,,
		txtadd(spot_name, 'spot_', get(global.lastscene));
		copy(map_name,layer[get(spot_name)].parent);
		txtadd(radar_name, 'radar_', get(map_name)); 
		set(layer[get(radar_name)].visible,false);
		);

	txtadd(spot_name, 'spot_', get(xml.scene));
	copy(map_name,layer[get(spot_name)].parent);
	callwhen( layer[get(map_name)] ,
		call_map_showhide(get(map_name));
		copy(layer[get(spot_name)].crop,layer[get(map_name)].spot_y_crop);
		copy(layer[get(spot_name)].onovercrop,layer[get(map_name)].spot_y_onovercrop);
		copy(layer[get(spot_name)].ondowncrop,layer[get(map_name)].spot_y_ondowncrop); 
		<!-- trace(get(spot_name)); -->

		txtadd(_radar_name, '_radar_', get(layer[get(spot_name)].parent)); 
		calc(layer[get(_radar_name)].heading, -scene[get(xml.scene)].heading);
		set(layer[get(_radar_name)].capture,true);
		<!-- set(layer[get(_radar_name)].invert,false); -->

		<!-- trace(get(_radar_name),'-heading-',get(layer[get(_radar_name)].heading)); -->


		txtadd(radar_name, 'radar_', get(layer[get(spot_name)].parent)); 
		set(layer[get(radar_name)].parent,get(spot_name));
		set(layer[get(radar_name)].visible,true);



		if (layer[get(map_name)].parent !=null , 
			copy(map_box , layer[get(map_name)].parent);  
			<!-- trace('map_box:',get(map_box)); -->

			if (layer[get(map_box)].mtype == 'scrollarea' AND layer[get(map_box)].containertf == 'true' AND layer[get(map_box)].map_spot_center,
				<!-- trace("map_name-:",get(map_name)); -->
				<!-- trace('llastmap:',get(global.llastmap )); -->

				set(layer[get(radar_name)].enabled,false);

				callwhen(layer[get(map_box)].parent !=null,
					copy(bg_map_box,layer[get(map_box)].parent);

					<!-- 				calc(w2,layer[get(bg_map_box)].width/2);
					calc(h2,layer[get(bg_map_box)].height/2); -->
					set(w2,20);set(h2,20);

					callwhen(layer[get(map_name)].loaded,
						calc(iw,layer[get(map_name)].imagewidth + w2*2);
						calc(ih,layer[get(map_name)].imageheight + h2*2);
						<!-- trace(iw,' !-! ',ih); -->
						copy(layer[get(map_box)].width ,iw);
						copy(layer[get(map_box)].height ,ih);

						<!-- trace(get(map_box),' |-| ',get(map_name));  -->

						);

					callwhen(layer[get(bg_map_box)].loaded AND layer[get(map_box)].loaded AND layer[get(map_name)].loaded,
						wait(0.05);
						<!-- trace(get(layer[get(spot_name)].x),':-:',get(layer[get(spot_name)].y)); -->
						calc(to_x,w2+layer[get(spot_name)].x);
						calc(to_y,h2+layer[get(spot_name)].y);
						<!-- trace(get(to_x),':^:',get(to_y)); -->

						layer[get(map_box)].scrolltocenter(get(to_x),get(to_y));
						);

					);
				);
			);

		<!-- copy(global.lastmap,map_name); -->
		copy(global.lastscene,xml.scene);
		);
	);
</action>
<action name="call_map_showhide">
<!-- trace(%1); -->
if (global.map_visible == 1 ,
	if (global.lastmap != null AND global.lastmap!=%1, 
		txtadd(radar_name, 'radar_', %1);
		set(layer[get(radar_name)].visible,false);
		callwith(layer[get(global.lastmap)],hidemap);
		<!-- trace('lastmap:',get(global.lastmap)); -->
		); 
	<!-- trace('currentmap:',%1); -->
	callwith(layer[%1],showmap);
	active_thumbs_bymapname(%1);
	set(global.lastmap,%1);
	<!-- trace('globalmap:',get(global.lastmap)); -->

	<!-- txtadd(pmap_name,'',layer[%1].parent); -->
	<!-- if(pmap_name != null, set(layer[get(pmap_name)].visible,true);); -->
	);
</action>
<action name="call_map_hidelastmap">
callwith(layer[get(global.lastmap)],hidemap);
</action>
<action name="add_mapspot_tooltip">  
txtadd(tooltipname, 'mptooltip_', %1);
txtadd(hname,'','%1');
addplugin(get(tooltipname));
txtadd(plugin[get(tooltipname)].parent,   'layer[', get(hname) , ']' );
if (layer[get(hname)].tooltipalign, txtsplit(layer[get(hname)].tooltipalign,'|',align,edge);copy(plugin[get(tooltipname)].edge,edge);copy(plugin[get(tooltipname)].align,align); , set(plugin[get(tooltipname)].edge,'bottom');set(plugin[get(tooltipname)].align,'top'););
if(layer[%1].title, set(plugin[get(tooltipname)].html,get(layer[%1].title)); , set(plugin[get(tooltipname)].html,get(layer[%1].name)););
txtadd(_onc,'callwith(layer[',%1,'],onclick);');
txtadd(_ond,'callwith(layer[',%1,'],ondown);');
copy(plugin[get(tooltipname)].onclick,_onc);
copy(plugin[get(tooltipname)].ondown,_ond);
assignstyle(plugin[get(tooltipname)], 'mapspot_tooltip');
</action>
<action name="remove_mapspot_tooltip">  
txtadd(tooltipname, 'mptooltip_', %1);
removelayer(get(tooltipname));
</action>
</krpano>