/*
	Copyright (c) 2004-2008, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/


window[(typeof (djConfig)!="undefined"&&djConfig.scopeMap&&djConfig.scopeMap[0][1])||"dojo"]._xdResourceLoaded({depends:[["provide","dojo.dnd.Selector"],["require","dojo.dnd.common"],["require","dojo.dnd.Container"]],defineResource:function(_1,_2,_3){if(!_1._hasResource["dojo.dnd.Selector"]){_1._hasResource["dojo.dnd.Selector"]=true;_1.provide("dojo.dnd.Selector");_1.require("dojo.dnd.common");_1.require("dojo.dnd.Container");_1.declare("dojo.dnd.Selector",_1.dnd.Container,{constructor:function(_4,_5){if(!_5){_5={};}this.singular=_5.singular;this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(_1.connect(this.node,"onmousedown",this,"onMouseDown"),_1.connect(this.node,"onmouseup",this,"onMouseUp"));},singular:false,getSelectedNodes:function(){var t=new _1.NodeList();var e=_1.dnd._empty;for(var i in this.selection){if(i in e){continue;}t.push(_1.byId(i));}return t;},selectNone:function(){return this._removeSelection()._removeAnchor();},selectAll:function(){this.forInItems(function(_9,id){this._addItemClass(_1.byId(id),"Selected");this.selection[id]=1;},this);return this._removeAnchor();},deleteSelectedNodes:function(){var e=_1.dnd._empty;for(var i in this.selection){if(i in e){continue;}var n=_1.byId(i);this.delItem(i);_1._destroyElement(n);}this.anchor=null;this.selection={};return this;},insertNodes:function(_e,_f,_10,_11){var _12=this._normalizedCreator;this._normalizedCreator=function(_13,_14){var t=_12.call(this,_13,_14);if(_e){if(!this.anchor){this.anchor=t.node;this._removeItemClass(t.node,"Selected");this._addItemClass(this.anchor,"Anchor");}else{if(this.anchor!=t.node){this._removeItemClass(t.node,"Anchor");this._addItemClass(t.node,"Selected");}}this.selection[t.node.id]=1;}else{this._removeItemClass(t.node,"Selected");this._removeItemClass(t.node,"Anchor");}return t;};_1.dnd.Selector.superclass.insertNodes.call(this,_f,_10,_11);this._normalizedCreator=_12;return this;},destroy:function(){_1.dnd.Selector.superclass.destroy.call(this);this.selection=this.anchor=null;},markupFactory:function(_16,_17){_16._skipStartup=true;return new _1.dnd.Selector(_17,_16);},onMouseDown:function(e){if(!this.current){return;}if(!this.singular&&!_1.dnd.getCopyKeyState(e)&&!e.shiftKey&&(this.current.id in this.selection)){this.simpleSelection=true;_1.stopEvent(e);return;}if(!this.singular&&e.shiftKey){if(!_1.dnd.getCopyKeyState(e)){this._removeSelection();}var c=this.getAllNodes();if(c.length){if(!this.anchor){this.anchor=c[0];this._addItemClass(this.anchor,"Anchor");}this.selection[this.anchor.id]=1;if(this.anchor!=this.current){var i=0;for(;i<c.length;++i){var _1b=c[i];if(_1b==this.anchor||_1b==this.current){break;}}for(++i;i<c.length;++i){var _1b=c[i];if(_1b==this.anchor||_1b==this.current){break;}this._addItemClass(_1b,"Selected");this.selection[_1b.id]=1;}this._addItemClass(this.current,"Selected");this.selection[this.current.id]=1;}}}else{if(this.singular){if(this.anchor==this.current){if(_1.dnd.getCopyKeyState(e)){this.selectNone();}}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}}else{if(_1.dnd.getCopyKeyState(e)){if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor();}else{if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id];}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected");}this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}else{if(!(this.current.id in this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}}_1.stopEvent(e);},onMouseUp:function(e){if(!this.simpleSelection){return;}this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}},onMouseMove:function(e){this.simpleSelection=false;},onOverEvent:function(){this.onmousemoveEvent=_1.connect(this.node,"onmousemove",this,"onMouseMove");},onOutEvent:function(){_1.disconnect(this.onmousemoveEvent);delete this.onmousemoveEvent;},_removeSelection:function(){var e=_1.dnd._empty;for(var i in this.selection){if(i in e){continue;}var _20=_1.byId(i);if(_20){this._removeItemClass(_20,"Selected");}}this.selection={};return this;},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null;}return this;}});}}});
