* 1.5.2

		BACKWARDS COMPATIBILITY

		- Issue 86, fixed in 1.5.2, changes the priority in which parameters are applied to
		a connection. The documentation has always stated that source takes priority, but in fact
		the code was the other way round, with target taking priority. Now source does take priority.

		ISSUES

		84 - jsPlumb 1.5.1 Arrow Disappears on IE8 when connector is straight
		85 - dragging target endpoints created by makeTarget not working
		86 - Connection "parameters" override order

		MISCELLANEOUS

		- An issue that caused the SVG renderer to paint overlays before the connector was
		ready when the types API was used was also fixed.			
		
* 1.5.1

		ISSUES

		81 - Uncaught TypeError: Cannot read property 'uuid' of null
		82 - Blank endpoint doesn't cleanup properly
		83 - for connections made with makeTarget originalEvent is not set

* 1.5.0

		BACKWARDS COMPATIBILITY

		- many places in jsPlumb that used to use library-specific selectors for elements now use
		  pure DOM elements.  It is best to re-select any elements you are getting from a jsPlumb
		  object, even if you supplied them as a selector, as jsPlumb will have unwrapped your
		  selector into a DOM element.

		- Endpoint.isConnectedTo method removed.  it didnt work properly as it only checked for connections
		where the endpoint was the source.  

		- "jsPlumbConnection" event, which was deprecated, has been removed. use "connection".

		- "jsPlumbConnectionDetached" event, which was deprecated, has been removed. use "connectionDetached".

		- makeTargets method removed from jsPlumb.  you can pass an array or selector to makeTarget.
		- makeSources method removed from jsPlumb.  you can pass an array or selector to makeSource.

		- jsPlumb.detach no longer supports passing in two elements as arguments.  Use instead
		either 

				jsPlumb.detach({source:someDiv, target:someOtherDiv});

		or

				jsPlumb.select({source:someDiv, target:someOtherDiv}).detach();

		- jsPlumb.addClass removed
		- jsPlumb.removeClass removed
		- jsPlumb.hasClass removed

		for each of those, if you absolutely need to, you can use jsPlumb.CurrentLibrary.****Class.
		but you can of course just use your library's own methods.


		NEW FUNCTIONALITY

		- jsPlumb.remove takes a third argument, defaulting to true, saying whether ??
		- setSuspendDrawing returns the value of suspendDrawing _before_ the call was made.
		- Endpoint.setElement works properly now.
		

		ISSUES

		27 - investigate why a new connection is created after drag 
		37 - .addClass() not working - IE8
		39 - problem about connectionDrag event
		49 - Calling detachEveryConnection winds up calling repaintEverything once for each endpoint
		51 - arrow overlay orientation at location 1 on flowchart connectors
		54 - Memory Leak Issue
		57 - DOMException while dragging endpoints
		60 - flowchart connector start position wrong
		63 - Flowchart midpoint=0 is ignored 
		65 - Uncaught exception in IE 8
		69 - jsPlumb.detach(connection) is really slow with larger graphs
		72 - Drag and drop connections fail to work correctly when using makeTarget
		75 - changing continuous anchor is ignored
		76 - jsPlumb doesn't work in XHTML documents


* 1.4.1

		BACKWARDS COMPATIBILITY

		- Flowchart connectors reduce the stub parameter automatically when the two elements are closer than the sum of the two stubs. This can be overridden by setting the alwaysRespectStubs parameter to true on the Flowchart connector definition.	

		NEW FUNCTIONALITY

		- Flowchart connectors reduce the stub parameter automatically when the two elements are closer than the sum of the two stubs. This can be overridden by setting the alwaysRespectStubs parameter to true on the Flowchart connector definition.


		ISSUES (note: these are GitHub issues. Google Code is no longer in use)

		45 - passing empty array to addEndpoint fails
		43 - connections flickering with continuous anchors
		42 - error in isObject method in IE8 causes registered connection types to fail in an obscure way.
		33 - allow lineWidth/outlineWidth to be specified as strings
		30 - Error after removing endpoint from deleted element
		31 - Repaint everything needs to be called twice with 1.4.0
		23 - arrow overlay on Bezier connector placed incorrectly

* 1.4.0

		BACKWARDS COMPATIBILITY
	   
		- Flowchart connectors do not support minStubLength anymore. Use 'stub'.
		- Perimeter anchor names now have a capitalised first letter. 'circle' is now 'Circle', for instance. This brings their naming convention
		  into line with the various other names used throughout jsPlumb.
        - jsPlumb.Defaults.ConnectorZIndex was removed.  Use CSS classes for z index.
        - Connection.setZIndex was removed.  Use CSS classes for z index.      
        - removeConnection method removed from Endpoint. use 'detach' instead.
        - Connection does not expose 'connector' anymore. Use Connection.getConnector()
        - Connection does not expose 'canvas' anymore. Use Connection.getConnector().canvas
        - support for tooltip has been removed. 
        - 'toggle' method on jsPlumb removed. use 'toggleVisible'
        - 'delete' method on jsPlumb.selectEndpoints(..) return type renamed to 'remove' (IE parsing issue)

		NEW FUNCTIONALITY
		        
		- jsPlumb now registers as an AMD module if an AMD loader is found in the page.  Two registrations are made:'jsplumb' for the static instance, and 'jsplumbinstance', for a new instance.
		
		- internally, all Connectors are now composed of a set of Segments, of which there are three types - Bezier, Straight, and Arc. 
		
		- return value from jsPlumb.select and jsPlumb.selectEndpoints now supports the 'setType' method.
		
		- setType/addType functions now support parameterised types.
        
        - added 'remove' function to jsPlumb: removes an element from the DOM and its associated
        Endpoints and their Connections.
        
        - flowchart connectors support a 'cornerRadius' parameter, which allows you
        to specify a radius for curved corners.  default is 0.
        
        - Straight connectors now support the 'stub' parameter.
        
        - added 'addClass' and 'removeClass' methods to Connection and Endpoint, and to the return value of
        jsPlumb.select and jsPlumb.selectEndpoints.
        
        - added 'bind' and 'unbind' to the return value of jsPlumb.select and jsPlumb.selectEndpoints.
        
        - add 'hoverClass' member to jsPlumb; this is set when hovering over a Connection or Endpoint. default is
        '_jsPlumb_hover'.  also set on all overlays for a connection or endpoint.
        
        - jsPlumb.select supports a 'connections' parameter, which is an existing list of Connections.  
        
        - added setSuspendEvents to Connection, Endpoint and jsPlumb.select/jsPlumb.selectEndpoints return values.
        
        - Continuous anchors now support a 'faces' constructor parameter, eg:
        
                anchor:["Continuous", {faces:["top", "bottom"] } ],
                
                There are four instances of this already prepared:
                
                "ContinuousLeft"
                "ContinuousTop"
                "ContinuousRight"
                "ContinuousBottom"
                
        - added 'Top', 'Right', 'Bottom' and 'Left' anchor aliases for 'TopCenter', 'RightMiddle', 'BottomCenter' and 'LeftMiddle'
        
        - added support for containment in YUI (supply a selector as the value for a 'constrain2node' or 'containment' parameter to jsPlumb.draggable)

        - added 'setAnchor' method to Endpoint
        - added 'setAnchor' to chainable methods from selectEndpoints(..) function

        - jsPlumb.connect now accepts an 'events' object for registration of event handlers at connection creation (rather than having to bind them afterwards)

        - Endpoint methods like makeTarget, makeSource, addEndpoint now accept an 'events' object
        for registration of event handlers.

        - makeSource now supports "parent" as value of parent parameter. previously this had to be
        a selector or DOM element.

        - added _jsPlumb_endpoint_connected class to Endpoints that have one or more connection
        - added _jsPlumb_endpoint_full class to Endpoints that are full
        - added _jsPlumb_dragging class to connections that are currently being dragged
        - added _jsPlumb_element_dragging to connections (and their endpoints) whose source or
          target element is being dragged
        - added _jsPlumb_endpoint_drop_allowed class to endpoints when a connection is hovering
          over them and a drop would be allowed.
        - added _jsPlumb_endpoint_drop_forbidden class to endpoints when a connection is hovering
          over them and a drop would not be allowed.

        - added checkDropAllowed interceptor

        - added the ability to associate a css class with an anchor (the class is added to the anchor's endpoint and to its associated element, with a prefix. see the docs)

        - added "mousedown" and "mouseup" events to endpoints and connections

        - jsPlumb now throws exceptions if you request an anchor, endpoint or connector type
        that does not exist. this can be suppressed (although why you would want to do this i'm
        not sure) with the DoNotThrowErrors default setting.
		
		ISSUES
		
		262 -	retrieve path from flowchart connector
        283 -   Firefox: SVG line repaint issues
		289 - 	JS errors after dropping a target endpoint on a source
		290 - 	setId doesn't work.
		292 - 	fire connectionDrag event when dragging a new connection.
		296	-	docs refer to 'removeEveryEndpoint'; they should refer to 'deleteEveryEndpoint'
		297 -	cannot use connection types
        300 -   typo in unmakeSource 
        302 -   removeAllEndpoints not functioning correctly
        303 -   mixture of continuous and static anchors causes paint issues
        305 -   Add pointer-events to the properties of connection
        310 - 	Endpoint does not honor the cssClass option
        311 -   add options to Continuous anchor
        312 -   jsPlumb mouseenter event fails with jQuery 1.9.0 (Firefox)
        322 -	Connector gap option for source and target
        324 -	beforeDetach firing too many times
        330 -	Change endpoint anchor
        342 -	ensure endpoints are cleared from anchor lists on deleteEndpoint call
		
		MISCELLANEOUS
		
		- jsPlumb overlay class and custom overlay class now set correctly on VML arrow overlays
		- couple of fixes for jsPlumbUtil merge function
				

* 1.3.16

		NEW FUNCTIONALITY
		
		- Flowchart connectors now support configurable 'midpoint'. This can be useful for those cases
			where you have programmatic control of the layout.
		
		- recalculateOffsets method added. This lets you tell jsPlumb that the internal layout of some element that
		has nested endpoints has changed, and that it should recalculate the offset of each endpoint with respect to
		the element's origin.
		  
		  
		ISSUES
		
		284 - JS errors when dragging connections 
		285 - occasional error thrown by getOffset (dupe of 284)
		286 - Bounding box of connections does not extend to include arrow
		
		MISCELLANEOUS
		
		- fixed paint issue with arrows in reverse direction on Straight connector.
		
 

* 1.3.15
 
		BACKWARDS COMPATIBILITY
		
		- 'removeEveryEndpoint' method removed from jsPlumb. use 'deleteEveryEndpoint'.
		- 'removeEndpoint' method removed from jsPlumb. use 'deleteEndpoint'.
 
		NEW FUNCTIONALITY
		
		- added 'ReattachConnections' default. instructs jsPlumb whether or not to automatically reattach connections dragged off and dropped via the mouse.
		- added setReattach/isReattach methods to Connection
		- added setReattach/isReattach methods to jsPlumb.select handler
 
		ISSUES FIXED
		
		279 - deleteEndpointsOnDetach flag ignored when Endpoints assigned to an element previously configured with makeSource/makeTarget
		280 - cannot drop connection dragged by source back onto its original source
		
		MISCELLANEOUS
		
		- fixed potential infinite loop issue related to makeSource function.

* 1.3.14

		BACKWARDS COMPATIBILITY
		
		- setRepaintFunction method removed from jsPlumb
		
		- unload function removed. it was pointless.
		
		- when providing a type to a constructor, what used to be an implicit setType call is now an addType call. it used to be that
		the type would remove any additional overlays you supplied with the constructor, because that's what setType does. but
		it was pointed out to me that addType was perhaps a little more accomodating.
		
		NEW FUNCTIONALITY
		
		- 'perimeter' anchors now take an optional 'rotation' parameter. This should be supplied in degrees, not radians.
		
		MISCELLANEOUS
		
		- This release sees the removal of some overzealous performance enhancements added to 1.3.13, which affected particular
		usages of the repaintEverything function. Their removal does not seem to have unduly affected performance though.
		
		- fix for nested draggables causing extra ids to be added throughout the DOM		
		

* 1.3.13

		NEW FUNCTIONALITY
		
		- 'perimeter' anchors. These are anchors that follow the path of the perimeter of some shape.
		- performance enhancement for painting.
		
		MISCELLANEOUS
		
		- Endpoint was ignoring jsPlumb default "Anchor" property.		

		ISSUES RESOLVED
		
		271 - 	add perimeter anchors
		273 - 	nested endpoint ignored by dragging
		274 - 	jsPlumb.connect does not register endpoints with drag manager
		

* 1.3.12

    NEW FUNCTIONALITY
	
	- added the concept of Connection and Endpoint "type". A type is a collection of attributes such as paint style,
	hover paint style, overlays etc - basically anything you can set in an Endpoint or Connection definition. An
	Endpoint or Connection can have zero or more types assigned; they are merged as granularly as possible, in the order
	in which they were assigned.  There is a supporting API that works in the same way as the class stuff does in
	jQuery - hasType, addType, removeType, toggleType, setType, and each of these methods (except hasType) takes a space-separated
	string so you can add several at once.
	
	You can also create a Connection or Endpoint with a 'type' parameter.  See the documentation for more information.
	
	- added 'Custom' Overlay type. You provide a 'create' function that jsPlumb calls with the associated Endpoint or
	Connection the first time the Overlay is painted.

    - added 'setEnabled' / 'isEnabled' methods to selectEndpoint return value
	- added 'ConnectorZIndex' optional default. use this to get hovered connectors to appear on top of others.
	- added 'setVisible'/'isVisible' to both jsPlumb.select and jsPlumb.selectEndpoint return value
	- added 'repaint' to return value from jsPlumb.select and jsPlumb.selectEndpoint
	
	- performance enhancements to label rendering 
	
	
	ISSUES RESOLVED
	
	263 - support custom labels
	269 - Image Endpoint remains in DOM if removed quickly enough after creation
	270 - Connections repainted when setVisible(false) had been called


* 1.3.11

    NEW FUNCTIONALITY
	
	- added 'selectEndpoints' method to jsPlumb. This works in a similar way to jsPlumb.select (which is for Connections).
	- added isSuspendDrawing method
    - added "connection" as alias to existing "jsPlumbConnection" event. BOTH EVENTS are fired.  So do not register for them both!
	- added "connectionDetached" as alias to "jsPlumbConnectionDetached" event.  As above - both events are fired.
	- added 'maxConnections' event to Endpoints.
	- added 'onMaxConnections' callback option to makeTarget and makeSource
	
	
	ISSUES RESOLVED
	
	261 - add 'maxConnections' event to Endpoint
	264 - selectEndpoints enhancement
	266 - makeSource does not honor maxConnections parameter
	267 - setLabel ignores suspendDrawing flag
	268 - deleteEveryEndpoint should suspend drawing before it begins and restore once its done.
	
	

* 1.3.10


	BACKWARDS COMPATIBILITY ISSUES

	- The 'clearListeners' method on Connection, Endpoint and jsPlumb has been renamed to 'unbind'.

	
	NEW FUNCTIONALITY


	- makeSource can now be called with a 'filter' parameter which allows you to respond to mouse events only on the parts of the element you want to.
	- Flowchart connector supports a different length stub at each end (supply an array of two integers instead of just a single integer)
	- The position of Connector overlays can now be specified as an absolute value, with positive values meaning distance from source and negative values meaning distance from target.


	ISSUES RESOLVED

	224 - 'absolute' overlay position
	247 - support non-loopback connections between endpoints on the same element (StateMachine connectors)
	248 - 'container' ignored when using parent with makeSource
	250 - SVG does not work in Android < 3, but jsPlumb thinks it should
	252 - rename 'clearListeners' to 'unbind'
	253 - allow makeSource to ignore mouseclicks on selected elements and not start a drag
	254 - different stub lengths for each end of a flowchart connector
	257 - clarified setLabel documentation to point out that it uses innerHTML


	FIXES WITHOUT ISSUES

	- updated the VML renderer to perform a check for document.namespaces before attempting to do anything; I noticed in IE10 that this would throw an error since document.namespaces is not defined.


* 1.3.9

	- Straight connector in canvas now supports simple dashstyle (two args only)

	- clearListeners, fire and bind methods in jsPlumb, Connection and Endpoint now return themselves, so you
	can use them in a 'fluent' style.

	- paintStyle and hoverPaintStyle are no longer exposed on Endpoint or Connection.
	- getPaintStyle and getHoverPaintStyle methods added to Endpoint and Connection.

	- HoverClass added to jsPlumb defaults. 

	- Several new methods added for working with targets and sources:

		setTargetEnabled
		setSourceEnabled

		isTarget
		isSource

		toggleTargetEnabled
		toggleSourceEnabled

		isTargetEnabled
		isSourceEnabled

		unmakeSource 				(returns current jsPlumb instance)
		unmakeTarget 				(returns current jsPlumb instance)

		unmakeEverySource			(returns current jsPlumb instance)
		unmakeEveryTarget			(returns current jsPlumb instance)

	- makeSource and makeTarget now return the current jsPlumb instance.

	- added optional 'gap' parameter to Flowchart connector params. Lets you leave a gap between the end of the connector and the element to which it is connected.

	- SvgEndpoint and VmlEndpoint classes are now exposed on the DOM window, which allows for subclassing (eg. when you want to make your own Endpoints)

	- removeAllOverlays was not cleaning up elements from the DOM properly. now fixed.

	- added connectionDrag and connectionDragStop events to the jsPlumb object. These events are fired when an existing connection is dragged, and when that drag stops.  The only argument passed to a listener on these events is the Connection that is being or has just been dragged.

	Issues

	136 - diamond/arrow overlays do not fire mouse events (SVG/VML renderers only)
	223 - extraneous IDs being created throughout the DOM
	235 - add setTargetEnabled and related methods (see above)
	233 - add getPaintStyle and getHoverPaintStyle to Connection and Endpoint.
	238 - overlays in canvas renderer for state machine connectors not appearing in the correct position.
	239 - document detachable/connectionsDetachable properly
	242 - typo in docs about diamond overlay
	244 - straight gradients rendered black or transparent
	245 - should not set scope on nodes when making them draggable via jsPlumb.draggable.


* 1.3.8


	- hover mode is suspended while something is being dragged. this prevents a lot of random flashes as the mouse moves around the screen.	

	- VML endpoint was not assigning custom CSS class if it was given one. it is now.


	Issues
	------

	207 - pass back original event in connected detached callback
	215 - dragged connection did not get parameters from target endpoint
	217 - makeSource's onComplete callback does not get fired
	218 - IE max stylesheet limit
	219 - connections made with makeSource and parent option were duplicated internally, skewing results from "select" and causing duplicate mouse events with the canvas renderer.
	222 - allow VML in IE9
	223 - extraneous IDs being created and assigned (edit: was not fixed in 1.3.8.  in 1.3.9 instead.)
	226 - image endpoint does not clean up image element from DOM on destroy.
	227 - maxConnections ignored by makeTarget method
	230 - array test fails when jsPlumb called from GWT


* 1.3.7

	- added a setId function.  This takes care of regorganising the jsPlumb internals when you wish to change the id of some element.  call it with a selector, a DOM element, or a string as first arg, and the new id as the second.

	- added setIdChanged function.  this lets you inform jsPlumb of an id change after the fact.

	- connectionDrag/connectionDragStop events

	- getConnections takes an optional second argument that tells jsPlumb to return connections as an array, not as an object with scopes as keys

	- you can pass '*' to getConnections for any of source/target/scope.

	- added showOverlays/hideOverlays functions to Connection and Endpoint

	- added getOverlays method to Connection and Endpoint.

	- added 'select' method.  this is a more useful version of getConnections, supporting the same syntax as getConnections but offering a fluid interface that allows you to perform an operation on all the returned connections. These operations can be chained:

	jsPlumb.select({source:"someId"}).setHover(false).showOverlays();

	Certain 'get' operations are also supported but are not, of course, chainable - instead they return an array of [value, connection] for each connection, where value is the return value of the get method you called.


	- makeTarget now supports a beforeDrop interceptor

	Issues
	------

	209 - endpoint drag not creating connection after setEnabled(false) and then setEnabled(true)
	210 - overlays not being hidden when setVisible(false) called
	211 - IE8 JS error with overlays and continuous anchors
	212 - change the id of an element
	214 - beforeDetach gives wrong targetId when being reattached


* 1.3.6

	BACKWARDS COMPATIBILITY


	- makeSource and makeTarget calls are now honoured by subsquent calls to jsPlumb.connect.  So if you call makeTarget on some element, providing an endpoint spec, and then later on call jsPlumb.connect with that element as the target, jsPlumb will use the endpoint spec you provided to makeTarget.  The thinking behind this is that typically you will want to setup some target for interactive connections, but then possibly load some initial state for the UI. Prior to this change you would have to provide the same information twice.  The same principle applies to makeSource.  note that with the "parent" parameter on makeSource, it is the parent against which the endpoint spec is stored. For example:

	  jsPlumb.makeSource("someElement", {
	  	paintStyle:"red",
	  	anchor:"TopMiddle",
	  	parent:"someOtherElement"
	  });

	  followed by:

	  jsPlumb.connect({source:"someElement", target:"yetAnotherElement"});

	  will _fail_. This is because the source endpoint was registered against "someOtherElement", which is the one it will appear on when the user creates a new connection with drag and drop.  So this will work:

	  jsPlumb.connect({source:"someOtherElement", target:"yetAnotherElement"});


	  If, for some reason, you want jsPlumb.connect to ignore previous makeSource/makeTarget calls, you can supply a 'newConnection' parameter:

		jsPlumb.connect({source:"someOtherElement", target:"yetAnotherElement", newConnection:true});	  


	One last parameter that is now supported is 'uniqueEndpoint' - this instructs makeSource and makeTarget to only ever create one associated endpoint.  Remember if you do this and you expect the endpoint to be reused, you need to ensure you set maxConnections appropriately:

	jsPlumb.makeSource("someElement", {
	  	paintStyle:"red",
	  	anchor:"TopMiddle",
	  	parent:"someOtherElement",
	  	uniqueEndpoint:true
	  });


	- the second argument to makeSource and makeTarget no longer requires the nested 'endpoint' parameter - they take the exact same object that you would pass to the second argument to addEndpoint.  Of course that object can itself have an 'endpoint' parameter, which is used to specify the type of endpoint (Dot, Rectangle etc) - and that was kind of confusing, and yet another reason to unify the API a little.

	- Mouse events are always enabled from 1.3.6 onwards.  The default setting "MouseEventsEnabled" has been removed, and the method setMouseEventsEnabled has also been removed.


	New features
	-------------

	- added importDefaults and restoreDefaults methods.
	- jsPlumb.draggable(..) now supports nested elements (issue 98).  So if you have endpoints on some element and you make its parent draggable, they will now be adjusted appropriately as the parent is dragged.
	- added 'enabled' as a parameter to Endpoints, and setEnabled/isEnabled methods on Endpoints.  This controls whether or not the user can interact with the Endpoint using the mouse.  A programmatic connect call using an Endpoint that is disabled will still succeed.


	Issues

	204 - add importDefaults method
	195 - deleteEndpointsOnDetach ignored by makeTarget method
	98  - endpoints do not refresh when nested in a draggable element
	206	- add enable/disable functionality to Endpoint


* 1.3.5

	BACKWARDS COMPATIBILITY

	- removed 'dynamicAnchors' parameter from connect/addEndpoint calls.  using an array as the anchor
	arg (or one of the values in the 'anchors' parameter on connect) is sufficient to indicate you want
	dynamic anchors.
	- jsPlumb.Defaults.Overlays is now applied to both Endpoints and Connections: see below.

	Events
    
    - added support for "contextmenu" event bind, on jsPlumb, Connection and Endpoint (issue 166)
    - jsPlumbConnection event callback now passes in originalEvent as the second parameter.
    	this does not work in MooTools.  only YUI and jQuery.

    Miscellaneous

    - added setSuspendDrawing method: use it to suspend drawing while you bulk connect etc.
    - added setHoverSuspended method: lets you tell jsPlumb to ignore hover events.
    - added isHoverSuspended method: lets you find out from jsPlumb what it will do about hover events.

    Overlays

    - fixed the setLabel method for Connections, and added it to the superclass, so Endpoint has it too.
    - added getLabel method to Connection and Endpoint 
    - added support for 'labelLocation' param for endpoint and connection. default for endpoint
      is [0.5, 0.5]; default for connection is 0.5.
    - added support for overlays on Endpoint (only Label overlays)  (issue 178)
    - added jsPlumb.Defaults.ConnectionOverlays
    - added jsPlumb.Defaults.EndpointOverlays

    Connectors

    - state machine connectors performance boost
    - flowchart connectors now support loopback connections (issue 184)

    Bugs Fixed

    - several closure problems with getInstance were causing it to not work properly in 1.3.4 (issue 190)
    - continuous anchors do not track when existing connection dragged (issue 169)
    - getCachedData was effectively being bypassed (issue 173)
    - flowchart not symmetric (issue 187)
    - dynamic anchors broken on Endpoint (issue 188)
    - endpoints draggable when they should not be (issue 189)
    - connection drag offset problem when using tabs (issue 191)
    

* 1.3.4

    backwards compatibility :


    - detachEverything method removed from jsPlumb. use detachEveryConnection instead.

    - detachAll method removed. use detachAllConnections instead.

    - removed labelStyle from Label overlay.  to set fonts/border/background, use a cssClass now.

    - removed the notion of jsplumb making everything draggable by default.  it is now the user's responsibility
	to ensure everything is draggable.  use jsPlumb.draggable for this, still, of course, or jsPlumb won't
	know about your draggable elements.

	- removed endpointsOnTop parameter from Connection. You can achieve this effect through cssClass.

    new functionality :

    - detachEveryConnection and detachAllConnections supports a parameter object now; valid values on this release
      are 'fireEvent', the default for which is true.

    - added 'detachable' parameter to jsPlumb.connect, to indicate whether or not a connection should be allowed to be
      dragged off its endpoints (and possibly discarded; use this in conjunction with 'reattach'). defaults to false.

    - added 'connectionsDetachable' parameter to jsPlumb.addEndpoint/jsPlumb.makeSource/jsPlumb.makeTarget.  does the
      same thing as 'detachable' on jsPlumb.connect, discussed above.

    - added isDetachable/setDetachable methods to Connection.

    - added jsPlumb.Defaults.ConnectionsDetachable

	- added 'previousConnection' to a connection that has been moved. when you get a
	jsPlumbConnectionDetached method, that connection passed in will have this member
	set, if it was an existing connection that was just moved.

    - added 'onload' parameter to Endpoint (for use when constructing an Image endpoint)

	- added getSelector method to jsPlumb library adapters; exposes the ability to abstract out a list 
	of elements you want to work with.

	- added beforeDetach option to Connection, Endpoint, and on jsPlumb as a bind. this works both
	  programmatically and with drag and drop.
	  
	- added beforeDrop option to Endpoints that have isTarget:true.

	- added jsPlumb.makeSource method

	- finished jsPlumb.makeTarget method.
	
	- added getLocation/setLocation to AbstractOverlay (so all Overlays derive these methods)
	
	- added ContinuousAnchors

	- added StateMachine connectors

	- added 'hoverClass' to endpoints and connections.  this is supported in the individual connector
	and endpoint definitions, NOT the main args you pass to addEndpoint or connect.
	
	- added jsPlumb.util.svg; currently contains addClass/removeClass methods.  jQuery fails to set a class
	correctly using addClass/removeClass on an SVG element because its value is an SVGAnimatedString.
	
	- now allows "transparent" as a fillStyle or strokeStyle.  each renderer handles it appropriately.
	
	- jsPlumb.addEndpoint and jsPlumb.connect now both support a "parameters" object, which lets you set
	specific values that you can then retrieve using getParameter on Endpoint and Connection.

	- added getImage method to Image endpoint

	- added 'width' and 'height' parameters to Image endpoint; you can override the width and height of the image
	with these. prior to this version, jsplumb would set the image to be the size of the image itself.
	
	- allowed for empty labels.  prior to this version, you would see "banana"...for some reason.
	
	- added addClass, removeClass and hasClass helper methods to jsPlumb.


* 1.3.3

	- added getOverlay(id) to Connection
	- added hideOverlay(id) to Connection
	- added showOverlay(id) to Connection
	- added hide() to Overlay
	- added show() to Overlay
	- added setVisible(state) to Overlay
	
	- fixed issue 127 (original event was lost in the jsPlumb shortcut bind methods)

* 1.3.2

	- reinstated the container concept on jsPlumb.Defaults and on calls to addEndpoint and connect.
	- updated jsPlumb.hide and jsPlumb.show to optionally work their magic on Endpoints as well as Connections.
	- added jsPlumb.ready convenience function.
	- issues resolved:
	
	102 - FF5 requires a default paint style for endpoints
	103 - add 'type' member to connectors, endpoints and overlays
	104 - do not set label overlay cursor style by default
	105 - hoverPaintStyle for endpoints stopped working
	107 - binding 'mouseenter' and 'mouseexit' on endpoints doesn't work
	109 - maxConnections:-1 does not allow using endpoint as source
	112 - add class to SVG container div
	113 - render mode not set for extra instances of jsPlumb
	114 - 'drawEndpoints:false' can cause connection paint errors.
	115 - reinstate 'container' concept
	116 - endpoint clone problem
	117 - jsPlumb.hide() issue in IE7 and IE8
	119 - inconsistent behaviour of dynamic anchors when multiple connections share an anchor. 
	

* 1.3.1

	bugfix release for element positioning bug. use this instead of 1.3.0.

* 1.3.0

	*** Backwards compatibility breakages ***
	
	- you cannot create Endpoints/Connectors/Overlays directly anymore.  You must supply jsPlumb with a definition of what you want and it creates
	  the actual object.  For example:
	  	  
	  	OLD: 	jsPlumb.Defaults.Endpoint = new jsPlumb.Endpoints.Dot(45);
	  	NEW:	jsPlumb.Defaults.Endpoint = [ "Dot", { radius:45 } ];
	  	
	
	- Bezier connection requires a js object as argument now, instead of a single int:
	
		OLD:  	connector: [ "Bezier", 150 ]
		NEW: 	connector: [ "Bezier", { curviness:150 } ]
	
	- Dot Endpoint requires a js object as argument now, instead of a single int:
	
		OLD:	endpoint: [ "Dot", 10 ]
		NEW:	endpoint: [ "Dot", { radius:10 } ] 
		
	- setDefaultNewCanvasSize method has been removed.  jsPlumb no longer uses excanvas to render
	  VML; this method was there to support edge cases of VML usage.
	  
	- the 'container' concept, as an argument to addEndpoint or connect, and in the jsPlumb
	  defaults, has been removed.  created elements are now appended to the parent of the source
	  element of a connection.
	  
	- backgroundPaintStyle has been replaced with 'outlineColor' and 'outlineWidth' members in
	   paint definitions. 
	   
  	- drag entire connection, introduced for some browsers in 1.2.6, has been removed.
  	
  	- getConnections now returns a list of connections for the scope you asked for, unless
  		you didn't specify a scope, in which case you get the list of connections for the default scope. see the API docs.
  		getAllConnections, introduced in 1.3.0, does what getConnections used to do, but does
  		not take any scope parameter.
	  
	General Changes
	-------------- 

	- jsPlumb can now use SVG where supported
	- mouse events in all browsers
	- ability to register a mouse listener on jsPlumb, rather than on each Connection individually.  surely much more convenient.
	  this is "click" and "dblclick" events for Connections, and "endpointClick" and "endpointDblClick" for Endpoints.	
	- ability to specify class names for endpoints/overlays/connections, using 'cssClass' param.
	- added "Blank" endpoint type: paints nothing and adds no element to the DOM.
	- reinstated the 'drawEndpoints' parameter on jsPlumb.connect. 
	- added makeTarget/makeTargets method; allow you to specify an entire element as drop target for a connection
	- added jsPlumb.Defaults.Overlays
	- all Label overlays are painted with a styled div now (they used to be drawn on the canvases), and each renderer type uses this.
	- added removeAllOverlays, removeOverlay and removeOverlays methods to Connection.
	- addEndpoint and addEndpoints methods now take a selector or array for the first argument, so
	you can do things like  jsPlumb.addEndpoint($(".someClass"), { endpoint options });
	
	Bugfixes/Enhancements
	--------		

	- issue 90
	- issue 95


* 1.2.6

	General Changes
	
	- added Flowchart connector type.

	- removed jquery plugin methods.  support for them had fallen behind anyway, and then jquery 1.5 introduced 'detach', which clashed with jsPlumb. so, they got the chop.	

	- the jsPlumb.bind method does not support array as first argument anymore. it's now bind(event, listener) only.

	- added the ability to supply a subclass of Connection or Endpoint for your own app (jsPlumb.Defaults.ConnectorType and jsPlumb.Defaults.EndpointType)   	

	- added a version of two-arg method from jsPlumb.addEndpoint to jsPlumb.addEndpoints. takes an array of arrays as the second argument. 

	- added optional referenceParams argument to jsPlumb.connect; use this to supply shared info between many connections:

		var commonValues = { paintStyle:{ strokeStyle:"red", lineWidth:5 } };
		jsPlumb.connect({ source:someDiv, target:someOtherDiv }, commonValues);
		jsPlumb.connect({ source:aThirdDiv, target:yetAnotherDiv }, commonValues);

	- added optional referenceParams argument to jsPlumb.addEndpoint; use this to supply shared info between many endpoint additions:

		var commonValues = { paintStyle:{ fillStyle:"red" } };
		jsPlumb.addEndpoint(someDiv, { anchor:[ 1.0, 0, 0, -1 ] }, commonValues);
		jsPlumb.addEndpoint(someOtherDiv { anchor:[ 0, 1.0, -1, 0 ] }, commonValues);


	Paint Styles
	
	- added setPaintStyle method to Connection and Endpoint. 
	- deprecated 'style' argument to Endpoint options in favour of 'paintStyle', to make it the same as Connection.		
	- added setBackgroundPaintStyle method to Connection (note: not Endpoint)	 
	- arrow overlays derive their paint style from the associated connection if one is not supplied for the overlay (using Connection's strokeStyle as their fillStyle).


	Mouse Support

	note: this only works when using a Canvas, ie. not in IE using excanvas.  Full mouse support is slated for the next release - 2.0.

	- added single click mouse support to Connection/Endpoint
	- added double click mouse support to Connection/Endpoint
	- added mouseenter mouse support to Connection/Endpoint
	- added mouseleave mouse support to Connection/Endpoint

	- added hoverPaintStyle concept to Connection and Endpoint: paint style when mouse is hovering over the connection.
	- added endpointHoverStyle, endpointHoverStyles options to Connection
	- added support for jsPlumb.Defaults.HoverPaintStyle	
	- added connectorHoverStyle to Endpoint: the hoverPaintStyle for Connections from this Endpoint.
	- added jsPlumb.Defaults.EndpointHoverStyle, jsPlumb.Defaults.EndpointHoverStyles	

			
	Overlays

	- added 'direction' parameter for arrow overlay to support arrows that point in the opposite direction to the connection.
	
	- added overlay definitions:

		prior to 1.2.6 you would write something like this:

			jsPlumb.connect({
					source:d1, 
					target:d2, 
					overlays:[ new jsPlumb.Overlays.Arrow({foldback:0.7, fillStyle:'gray', location:0.5, width:14}) ]
			});

		you can now do this:

			jsPlumb.connect({
					source:d1, 
					target:d2, 
					overlays:[ [ "Arrow", { foldback:0.7, fillStyle:'gray', location:0.5, width:14} ] ]
			});

		this becomes more useful when you want to add one or more similar overlays to multiple connections, using a three arg array to hold common options:
				
			var arrowCommon = { foldback:0.7, fillStyle:fillColor, width:14 };
			var overlays = [
						[ "Arrow", { location:0.7 }, arrowCommon ],
						[ "Arrow", { location:0.3, direction:-1 }, arrowCommon ]
			];
			
			jsPlumb.connect({
					source:d1, 
					target:d2, 
					overlays:overlays
			});

	Endpoints

	- added setVisible(boolean) method.
	- added new endpoint definition syntax.  

		prior to 1.2.6:

			jsPlumb.Defaults.Endpoint = new jsPlumb.Endpoints.Rectangle({width:50,height:50});

		1.2.6:

			jsPlumb.Defaults.Endpoint = [ "Rectangle", { width:50,height:50 } ];

		as with the overlay definitions discussed above, you can specify a three arg array to reuse common values:

			var common = { width:50, height:50 };
			var endpoint1 = jsPlumb.addEndpoint(someDiv, { anchor:[ 0, 1.0, 0,-1 ] }, common); 
			var endpoint2 = jsPlumb.addEndpoint(someOtherDiv, { anchor:[ 1.0, 0, 0, 1 ] }, common); 

	Issues

	- issue 54: crash on vertical straight connectors
	- issue 57: wrong scope chosen for detached draggable connection
	- issue 58: changing one connector's style changes others.
	- issue 63: add access to the Connector in event API
	- issue 65: expose Connection so it can be extended
	- issue 70: right click on Connections
	- issue 72: toggle visibility of endpoints
	- issue 74: mootools drag error
	- issue 76: arrow overlays flip and disappear with vertical straight connectors
	- issue 80: support for setting an arrow overlay's direction
	- issue 81: detach event fired twice


* 1.2.5

	- added support for YUI3
	- removed 'html', 'css' directories and moved everything demo-related into "demo".
	- now using jsBezier-0.2
	- removed jsPlumb.autoConnect method.  use the 'dynamicAnchors' parameter on a jsPlumb.connect call.
	- added support for specifying an Endpoint's anchor as a dynamic anchor defined as an array of arrays or array of strings.  like this:
	
	    var endpointSpec = { 
	   		endpoint:new jsPlumb.Endpoints.Rectangle(),
	   		anchor:[ [0, 0, -1, -1], [1, 1, 1, 1] ]
	   	};
	   	
	   	or
	   	
	   	var endpointSpec = {
	   		endpoint:new jsPlumb.Endpoints.Rectangle(),
	   		anchor:["TopLeft", "BottomRight"]
	   	};
	   	
	   	jsPlumb will create a DynamicAnchor for each usage of these endpoint specs.
	   	
	   	"anchors" works too; i just used "anchor" to keep it consistent with the notion that a dynamic anchor should be treated like
	   	a 'normal' anchor. it just happens to move around.  but then, "anchors" makes more sense.  hence the fact you can use both.

* 1.2.4
	
	- added 'connection' to getConnection method's output.
	- fix for issue 35 (detach event contained wrong source endpoint)
	- fix for issue 42 (jsPlumb_dragged class not removed from element after drag) 
	- fix for issue 43 (performance problems causing connections and endpoints to detach when dragging)
	- fix for issue 44 (use a proper way of detecting Canvas support)
	- added connectorOverlays option on Endpoint: specify overlays for Connectors dragged from the Endpoint.
	- added support for multi line labels (issue 36)
	- added Image overlay type.
	
	- removed the caching in __getElementObject since the performance enhancements have obviated the need for it.
	
	- anchors are no longer static. 	  
	  
	- makeAnchor now takes anchor names (you can register your own anchors on jsplumb and then refer to them by name), anchor coord lists, other anchors.
	- connect method and endpoints both support anchors specified by name ("TopCenter") or array ([0.5, 0, 0, -1]); you dont need to do jsPlumb.makeAnchor(...) any longer.
	  
	- jsPlumb.Defaults.DynamicAnchors is now a function, not static. 

* 1.2.3

	** DYNAMIC ANCHOR PAINT ENDPOINT AFTER MOVE
	** GRADIENT TO BEZIER
	** OVERLAY DOCS
	** DRAG PROBLEM DRAGGABLE CONNECTORS DEMO MOOTOOLS - DRag from dynamic anchor to some other anchor.  then, drag off the anchor...bee-bow.


	
	- added BackgroundPaintStyle to jsPlumb.Defaults; this, if set, will be the background for connectors (you can do shadows etc)
	- added BackgroundPaintStyle support to Connector
	                                                              
	- several bugfixes for draggable connectors in containers.
	
	- added the ability to label connections in an addConnection call
	- added Connection.setLabel method
	
	- added dynamic anchors
	- added autoConnect method
	- added jsPlumb.Defaults.DynamicAnchors
	- added pointOnPath(location) method to Connectors.  needed to support overlays.
	- added perpendicularToPath(location, length) to Connectors.  needed to support overlays.

	- added jsPlumb.Overlays, a new feature that lets you overlay stuff onto Connectors.
	- added jsPlumb.Overlays.Arrow, jsPlumb.Overlays.PlainArrow, jsPlumb.Overlays.Diamond.
	
	- issue 24 - jsPlumb reference instead of "_currentInstance" (thanks Sylvain Gizard)
	- issue 25 - removeAllEndpoints and removeEndpoint fail when a parent container is given (thanks Sylvain Gizard) 

* 1.2.2

	- fixed bug where max connections on a target endpoint was ignored
	- sourceEndpoint/targetEndpoint are used for source/target if they are provided to a connect/plumb call.
	- added getElement method to Endpoint - it returns the element the Endpoint is connected to
	- added addListener method (only supports jsPlumbConnection events right now)
	- now fires "jsPlumbConnection" event from connect call.
	- added detachAll method to Endpoint : detaches every connection
	- added detachFrom(Endpoint) method to Endpoint : detaches all connections to the given target endpoint
	- added the concept of uuid for Endpoints (contributed by qecko) 
	- added getUuid method on Endpoint
	- added getEndpoint method on jsPlumb - retrieves Endpoint by UUID.
	- added ability to connect two endpoints by their UUID
	- improved the jsPlumb.detach method to support the same sorts of arguments as jsPlumb.connect
	- added 'dragAllowedWhenFull' to options of Endpoint, and also as setDragAllowedWhenFull method.
	- issue 13 - maxConnections doesnt check target connections
	- issue 11 - add getter function for EndpointsByElement				
	- issue 15 - maxConnections value of -1 doesnt support infinite connections
	- issue 16 - pipe from endpoint to endpoint

* 1.2.1

	- supports multiple instances of jsPlumb per page ( jsPlumb.newInstance(defaults) )  
	- performance enhancements on connection registration
	- jsPlumb.Defaults.Anchor added to defaults
	- equals method added to Anchor class.
	- fix for issue 8: detach method blows up if no target specified.
	- added 'complete' event to event lists in mootools and jquery
	- animate runs oncomplete event at anim end automatically, to clean up
	- added setDefaultScope and getDefaultScope  
	- moved scope from drag/drop options into Endpoint options
	- todo: add scope to the connect method too.   
	- added getConnections method  
	- added 'container' concept    
	- added 'clearCache' method
	- added 'removeEveryEndpoint' method
	- added 'reset' method

* 1.2

	- adding support for libraries other than jQuery. Starting with MooTools.
	- added 'wrap' function in to jsPlumb public API.
	- added 'extend' function in to jsPlumb public API.

* 1.1.1

	- added jsPlumb.removeAllEndpoints method
	- added isConnectedTo(anEndpoint) method to Endpoint class
	- added Triangle Endpoint type
    - bugfix for removeEndpoint method (it was not removing endpoints...)
    - introduced NaturalDocs for API documentation

* 1.1.0
	  
	- added _jsPlumbContextNode element into which all canvases are drawn.  makes for faster lookup and 
	  easier cleanup.
	  
	- Anchors must now implement 'getOrientation' rather than just having an 'orientation' member.
	  This is used to support anchors whose orientation is calculated dynamically (such as when dragging)
	  
    - internally jsPlumb is now "endpoint-centric" rather than "connection-centric" as it used to be.
      this allows us to add Endpoints that have no connections at creation time, and that can act as
      sources and targets for Connections.
    
	- added setDraggable method to jsPlumb.  overrides what any given plumb command may request.
	- added setDraggableByDefault method.
	- added toggleDraggable method to jsPlumb.
	
	- renamed toggle to toggleVisible (but kept the old one for backwards compatibility)
	
	- added jsPlumb.Endpoints.Blank Endpoint type.
      
    - renamed '_removeCanvas' to '_removeElement' to more properly reflect what it does.
    - added '_removeElements' method.
    
    - introduced jsPlumb.Defaults, which replaces all the old, capitalised, things like
      DEFAULT_ENDPOINTS, DEFAULT_CONNECTOR, etc. so you'd say
      
      jsPlumb.Defaults.DefaultEndpoints
      
      instead of
      
      jsPlumb.DEFAULT_ENDPOINTS
      
    - added support for draggable connectors.
    
    - added animate function.
    
    - added removeEndpoint function
    
    - introduced qunit testing.
    
    - now writes a 'jsPlumb_dragged' class to an element at the end of a drag.
      this can be used to test for a recent drag in a click handler, because drag fires click.
      and you dont always want that.
      

* 1.0.4

	- fix for issue 5 (zIndex error causing 'invalid argument' in IE) :
	
	http://code.google.com/p/jsplumb/issues/detail?id=5&can=1
		
	- added 'setDraggable' method.  this allows you to override whether or not a given element can be dragged,
	  regardless of what any plumb call might request.
	  
	- added setDraggableByDefault method.  Use this to tell jsPlumb whether or not elements should be draggable
	  by default.  jsPlumb assumes they should be if you do nothing.
	  
	- private 'drag' method renamed to '_draw'
	- private 'setVisible' method renamed to '_setVisible'
	- private 'newCanvas' method renamed to '_newCanvas'
	- private 'removeCanvas' method renamed to '_removeCanvas'
	
	  

* 1.0.3

	- fix for issue 2:
	
		http://code.google.com/p/jsplumb/issues/detail?id=2&can=1
		
		jsPlumb threw an error if jquery UI was not included in the page.
		
	- fix for issue 4:
	
		http://code.google.com/p/jsplumb/issues/detail?id=4&can=1
		
		wrong control points for bezier curve when anchor orientations were perpendicular
		to each other.
		

* 1.0.2

	- added fix for dragging in 1.8 (absolutePosition was renamed to 'offset' in the drag object)
	- bugfix for the case that detachAll has been called and the user subsequently tries to drag something.
	- bugfix for hide/show being called with an id for an element that is not plumbed.
	- applyPaintStyle method now returns the object that was extended; can be chained.

* 1.0.1

	- added detachEverything() method : detaches everything. and then cleans up the storage.
	- added repaintEverything() method : refreshes everything.
	- added window resize listener; this is hooked up to the repaint everything method.
	- added unload() method, used to cleanup jsPlumb when the page unloads 


* 1.0.0

  This is 0.0.4-RC5.

 * 0.0.4-RC5
 
 	- improved makeAnchor method
 	- added gradients for endpoints
 	- better documentation
 	
 * 0.0.4-RC4 (03/26/10)
 
 	- added Image endpoint type.

 * 0.0.4-RC3 (03/26/10)
 
 	- refactored Anchors somewhat.  it's now easier to create a custom anchor location, and
 	  anchors can take offsets too.
 	  
 	- added anchors demonstration.
 	
 	- added facility to specify different endpoints and endpoint styles for each end of a connector.
 
 * 0.0.4-RC2 (03/24/10)
 		
 	-	the Connectors and Endpoints are no longer static - they must now be instantiated, for example:
 	
 				new jsPlumb.Connectors.BEZIER();
 			
 	- you can supply a 'curviness' argument to the BEZIER constructor now:
 			
 			new jsPlumb.Connectors.BEZIER(75)
 			
 			it defines the distance in pixels that each control point is situated from the connector.
 	
 	- added support for gradients in Connectors  
 			
 	 
 * 0.0.4-RC1   (3/23/10)
 
   - fixed issue 1: when straight_line connector is used and elements directly underneath/next to
     each other, the connector is not drawn.     
 
 * 0.0.3	(3/15/10)
 
   - initial release  
   		 -- no support for gradients/patterns.  
   		 -- single endpoint style per connector (can't have diff. endpoints at each end)
