
 //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
 //                                                                        
 //  This file was created by rjc from system/js/ii_markers.js%
 //  on 2003/11/11 10:37:25.
 //                                                                        
 //    Copyright 1999-2003 Interactive Information Ltd, All Rights Reserved 
 //    http://information.overlaid.com
 //                                                                        
 //  It is almost certainly a bad idea to edit it.
 //  
 //  ------------------------------------------------------------------------
 //  
 //  Version:	2.3.1 for Grange Scrapbook
 //  Features:	VZERO HSPOPUP DATACOPYRIGHT LABEL LINEAR MAPPING
 //  Scales:	linear
 //  Hotspots:	rect poly circle
 //  Markers:	cross image paintable
 //  
 //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
var all_markers=[];var current_markers=[];var marker_named=[];
var displayed_marker=[];function MapMarker(name,klass,cx,cy,type,size,width)
{this.name=name;this.klass=klass;this.cx=cx;this.cy=cy;this.type=type+"";
this.size=size;this.width=width;this.label=null;this.labela=0;
}function markers_add_display(name,klass,cx,cy,type,size,width)
{var mk=markers_add(name,klass,cx,cy,type,size,width);markers_display(mk);
return mk;}function markers_add(name,klass,cx,cy,type,size,width)
{if(size==null)size=0;if(width==null)width=0;if(cx-0!=cx||cy-0!=cy)
alert("bad marker position "+cx+","+cy);if(marker_named[klass]!=null)
{if(marker_named[klass][name]!=null){var m=marker_named[klass][name];
markers_move(m,cx,cy);m.type=type;m.size=size;m.sidth=width;m.klass=klass;
return m;}}else marker_named[klass]=[];var m=new MapMarker(name,klass,cx,cy,type,size,width);
marker_named[klass][name]=m;m.i=all_markers.length;all_markers[m.i]=m;
return m;}function markers_marker_named(klass,name){if(marker_named[klass]==null)
return null;return marker_named[klass][name];}function markers_marker_displayed(javamk)
{var mk=displayed_marker[javamk.getData()];if(mk==null)mk=new MapMarker(javamk.getValue()+"","static");
return mk;}function markers_display(mk){if(mk.marker!=null)return;
var i;for(i=0;i<=current_markers.length;i++)if(current_markers[i]==null)
{current_markers[i]=mk;mk.cur_i=i;break;}mk.marker=the_easel.addMarkerWorld(mk.type,mk.cx-0,mk.cy-0,mk.size,mk.width,mk.name);
if(mk.marker==null)alert("Bad Marker");mk.sysid=mk.marker.sysid+""-0;
mk.marker.setCategory(mk.klass);if(mk.label!=null)mk.marker.setLabel(mk.label+"",mk.labela-0,mk.font==null?"":mk.font,mk.labelx,mk.labely);
if(mk.priority!=null)mk.marker.setPriority(mk.priority);if(mk.paintings!=null)
markers_update_paintings(mk);return displayed_marker[mk.marker.getData()]=mk;
}function markers_update_paintings(mk){mk.marker.reset();if(mk.marker.reset()!=0)
{if(mk.paintings!=null&&mk.paintings.length>0){var pi;for(pi=0;pi<mk.paintings.length;pi+=2)
{mk.marker.addPaint(mk.paintings[pi],mk.paintings[pi+1]);}}mk.marker.update();
}}function markers_display_all(){var i;for(i=0;i<all_markers.length;i++)
markers_display(all_markers[i]);}function markers_display_byclass(klass)
{var i;for(i=0;i<all_markers.length;i++)if(all_markers[i].klass==klass)
markers_display(all_markers[i]);}function markers_undisplay_all()
{var i;for(i=0;i<all_markers.length;i++)markers_undisplay(all_markers[i]);
}function markers_undisplay_byclass(klass){var i;for(i=0;i<all_markers.length;i++)
if(all_markers[i].klass==klass)markers_undisplay(all_markers[i]);
}function markers_undisplay(mk){if(mk.marker==null)return;current_markers[mk.cur_i]=null;
mk.cur_i=null;displayed_marker[mk.marker.getData()]=null;the_easel.removeMarker(mk.marker,mk.sysid);
mk.marker=null;}function markers_remove(mk){markers_undisplay(mk);
marker_named[mk.klass][mk.name]=null;var i;for(i=mk.i;i<all_markers.length-1;i++)
{all_markers[i]=all_markers[i+1];all_markers[i].i=i;}all_markers.length=all_markers.length-1;
}function markers_remove_byclass(klass){var i;for(i=0;i<all_markers.length;i++)
{if(all_markers[i].klass==klass){markers_remove(all_markers[i]);
i--;}}}function markers_clear(){current_markers=[];displayed_marker=[];
marker_named=[];markers_highlight(null);var i;for(i=0;i<all_markers.length;i++)
{var mk=all_markers[i];markers_undisplay(mk);}all_markers=[];
}function markers_reposition(){for(i=0;i<all_markers.length;i++)
{var mk=all_markers[i];if(mk.marker!=null){mk.marker.moveToWorld(mk.cx-0,mk.cy-0);
}}}function markers_find_closest(cx,cy,close,minpri,klass){if(close==null)
close=0;if(minpri==null)minpri=0;if(klass==null)klass="";var dmk=the_easel.findCloseMarker(cx,cy,close,minpri,klass);
var mk=null;if(dmk!=null)mk=displayed_marker[dmk.getData()];return mk;
}function markers_highlight(mk){if(the_easel==null)return;if(mk!=null&&mk.marker!=null)
the_easel.highlightMarker(mk.marker,mk.sysid);else if(mk==null)
the_easel.highlightNoMarker();}function markers_move(mk,cx,cy)
{mk.cx=cx;mk.cy=cy;if(mk.marker!=null)mk.marker.moveToWorld(cx-0,cy-0);
}function markers_move_screen(mk,cx,cy){var p=the_easel.screenPointToWorld(cx-0,cy-0);
mk.cx=p.x+""-0;mk.cy=p.y+""-0;if(mk.marker!=null)mk.marker.moveTo(cx-0,cy-0);
}function markers_set_image(mk,n){mk.type=n;if(mk.marker!=null)
the_easel.setMarkerIm(mk.marker,mk.sysid,n);}function markers_set_priority(mk,p)
{mk.priority=p;if(mk.marker!=null)mk.marker.setPriority(p);}function markers_set_label(mk,l,a,f,dx,dy)
{mk.label=l;mk.labela=a==null?0:a;if(f!=null)mk.font=f;mk.labelx=dx==null?0:dx;
mk.labely=dy==null?0:dy;if(mk.marker!=null)mk.marker.setLabel(l,mk.labela-0,mk.font==null?"":mk.font,mk.labelx,mk.labely);
}function markers_set_paintings(mk,p,add){if(add)mk.paintings=mk.paintings+p;
else mk.paintings=p;if(mk.marker!=null)markers_update_paintings(mk);
}function markers_in_window(mk){return(mk.cx>=current_cx-current_w/2 &&mk.cx<=current_cx+current_w/2 &&mk.cy>=current_cy-current_h/2 &&mk.cy<=current_cy+current_h/2 );
}function markers_zoom_to(mk,w,h){maps_goto(mk.cx,mk.cy,w,h);
}function markers_zoom_to_area(mk1,mk2,w,h){var cx=(mk1.cx+mk2.cx)/2;
var cy=(mk1.cy+mk2.cy)/2;w+=Math.abs(mk1.cx-mk2.cx);h+=Math.abs(mk1.cy-mk2.cy);
maps_goto(cx,cy,w,h);}function markers_position_update(m){if(m.marker!=null)
{var x=m.marker.getX();var y=m.marker.getY();var p=the_easel.screenPointToWorld(x,y);
m.cx=p.x+""-0;m.cy=p.y+""-0;}}
