/*
masterPOD.20465.scopeEvent.4.1.js
masterPOD.18891.n10delete(aObj)
masterPOD.19044.n10deleted(pNode)
masterPOD.18701.n10edit(src)
masterPOD.20446.n10named(pid,pname)
masterPOD.18890.n10new(aObj)
masterPOD.17387.n10newed(xN)
masterPOD.20468.n10newing(node)
masterPOD.18666.n10parent(aObj)
masterPOD.18703.n10parented(pNode)
masterPOD.20469.n10parenting(node)
masterPOD.18700.n10send(vehicle)
masterPOD.17260.barScopeEvent()
masterPOD.18781.bodyScopeEvent()
masterPOD.18892.getTallReq(n10n,panel,ppid)
masterPOD.18774.wideGet(pid)
masterPOD.18894.wideReqGet(panel,ppid)
masterPOD.18771.keyScopeEvent()
	masterPOD.20438.preSelected(sel)
masterPOD.18773.n2send(argObj)
masterPOD.18782.n2refresh(pid)
masterPOD.17265.navScopeEvent()
masterPOD.18599.podScopeEvent()
masterPOD.17263.selScopeEvent()
	masterPOD.18662.setSheetStyle(sig0,pid,p,v)
masterPOD.17183.setNavState(img,polarity)
masterPOD.20450.tmScopeEvent()
masterPOD.18726.tmiScopeEvent()
masterPOD.17299.toggleScopeEvent()
masterPOD.18600.twnScopeEvent()
masterPOD.20467.parentScopeEvent()
masterPOD.20466.deleteScopeEvent()
masterPOD.17111.vehicleGet()
masterPOD.17182.vehicleSend()
*/

function n10delete(aObj){
	scriptid=18891;errObj="n10delete"
treeParent=scope.tree.selectSingleNode("//pod[@pid='"+aObj.ppid+"']")
treePod=scope.tree.selectSingleNode("//pod[@pid='"+aObj.pid+"']")
treePod.parentNode.removeChild(treePod)//leave origional untouched
//for(var x in aObj){t(x+": "+aObj[x])}
 
var eStr="nde|pod||idx|0||aid|"+DPOD.aid+"||treeid|"+aObj.treeid
var tgtDiv=scope.gE(eStr)
tgtDiv.parentNode.removeChild(tgtDiv)
 
var vehicle=new SITEHTTP() 
vehicle.n10obj={}    
vehicle.callBack=n10deleted// set arrows etc 
var n10doc=vehicle.n10doc=fleXML.newXML("<scope cid='"+DPOD.cid+"'><n10><delete/></n10></scope>" ) //alert(sendXML.xml)  
var n10nodes=n10doc.firstChild.firstChild.firstChild
var n10node=n10doc.createElement("delete"+aObj.type) // <newmember..  
n10nodes.appendChild(n10node) 
//scope.oToN({ppid:ppid,pid:pid,type:type,treeid:treeid,rid:rid},n10node)  
// burn it onto node
scope.oToN(aObj,n10node)   
var panel=document// for looping through panels later (TODO)
// Check opened destination tall parents
// for(var pnl in scope.panels){...
//getTallReq(n10node,panel,argObj.ppid)    
// Check opened destination wide parents
// for(var pnl in scope.panels){...
wideGet(aObj.ppid) 
//alert(vehicle.n10doc.xml)  
scope.n10send(vehicle)  
/* 
For onNew: argObj.new instead of argObj.copy.
"argObj.new=1"
This will be called by the dialog.
server'sn10 will call the onNew event. 
server - n10new will add its own wide node.
*/ 
}
function n10deleted(pNode){
	scriptid=19044;errObj="n10deleted"
// <n10><delete><parent1234><tall...	
// pNode is <n10>
var nNode=pNode.firstChild.firstChild //<parent12323 move="1232"
var panel=document  
scope.n2.podStore={} // clear cache
scope.n2(nNode)   
//alert("calling n2 with "+nNode.xml)    
var tallNodes=nNode.ownerDocument.selectNodes("//tall")
for(var x=0;x<tallNodes.length;x++){
	tallNode=tallNodes[x] 	
	//alert("n10deleted tallNode.xml "+tallNode.xml)  
	var pid=tallNode.getAttribute("pid") 
	ln=50
	var sig=tallNode.getAttribute("tgtid").split("|")
	sig[0]="nav"
	ln=70// \\ hide the arrow if the old parent is now empty
	if(tallNode.childNodes.length==0)setNavState(sig,0)   
} 
//alert("n10deleted nNode "+nNode.xml)    
return false   
}
function n10edit(src){
	scriptid=18701;errObj="n10edit"
var p=src.getAttribute("p")  
if(!p){return false}   
//u("src.innerHTML="+src.parentNode.innerHTML+"   src.pid="+src.pid+"   src.p="+src.p) 		 
ln=3  //y("src.("+src.nodeName+")getAttribute(p) "+src.getAttribute("p")+"   src.xArea "+src.xArea+"  "+Math.random())   
var authObj=scope.authObj 
var pid=authObj.getAttribute("pid")  
var type=authObj.getAttribute("type")
var treeid=authObj.getAttribute("treeid")
var eSig=type+pid // uniqur to the type-pod 

//edObj becomes child node of n10 node. <member1234 email=..
var edObj=authObj.n10obj["edit"]  
if(!edObj[eSig])edObj[eSig]={pid:pid,type:type} 
if(treeid!=null)edObj[eSig].treeid=treeid 

// is this where we looK?  if(authObj.pname)scope.n2.podStore={}

t("n10edit: p "+p+" src.value "+src.value) 
if(src.value=="nulnul"){
	delete edObj[eSig][p] // for <SELECT>nulnul 
	//u("delte "+p)
	//t("widearm: "+(typeof scope.wideArm))
}else{ 
	edObj[eSig][p]=src.value//	edObj[p]=v
}     
}
function n10named(pid,pname){
	scriptid=20446;errObj="n10named"
for(var y=0;y<scope.windows.length;y++){// loop through output windows
	var w=scope.windows[y] 
	var icons=w.getElementsByName("nde|icon||pid|"+pid)
	for(var z=0;z<icons.length;z++){ // loop though name text
		var icon=icons[z]  
		var iconSig=icon.getAttribute("id")
		var txtSig=scope.getTgtStr("txt",iconSig)//aNx.sig.slice(1).unshift(tgt).join("|")		///	t("tgtSig "+tgtSig)		
		var txtTgt=w.getElementById(txtSig)  
		if(txtTgt)txtTgt.innerHTML=pname  
	} 
}
}
function n10new(aObj){
	scriptid=18890;errObj="n10new"
// argObj: ppid,pid,type,treeid,[rid] 
// temp obj st by sel/tmi events and tmi onload
//t("n10new 3")
/*
Give me an object with a name and pid..
pid is pid of the expectant parent - coverted here to ppid.

I'll clone the parent
and give it a temp treeid - flag for pod to replace on callback
then i call pod.. end of story.  calling server not my issue

TODO: getwideReq, cached talls?
*/
treeParent=scope.tree.selectSingleNode("//pod[@pid='"+aObj.pid+"']")
t(" treeParent "+aObj.pid+" "+treeParent)
if(!treeParent)alert("n10new: cant find 'treeParent'")

t("aObj.pid "+aObj.pid)
aObj.ppid=aObj.pid// assign parents id as ppid
delete aObj.pid
 
var tIdx=new Date() 
tIdx="T"+tIdx.getTime()
aObj.treeid=tIdx

t("n10newing 11 ")  

// feedback: props of aObj
//var tStr="";for(var x in aObj){tStr+=x+":"+aObj[x]};t(tStr)

var tempNode=treeParent.cloneNode(false)

var a=tempNode.attributes 
// inner copy 
for(var x=0;x<a.length;x++){
	if(aObj[a[x].name])a[x].value=aObj[a[x].name]
}
scope.sA(tempNode,"tempTreeid",tIdx)
scope.sA(tempNode,"ppid",aObj.ppid)// cause it wasnt there to begin with ..
//t("callng pod tempNode 1 "+tempNode.xml)  
//t("aObj.ppid "+aObj.ppid)
scope.n2.pod(tempNode)//pod needs treeid for callback
//t("callng pod tempNode 2 "+tempNode.xml) 
   
tempNode.removeAttribute("pid")
tempNode.removeAttribute("treeid")
t("n10newing 13 ")  
//scope.sA(tempNode,"pid",null)// remove so server can see its missing and set
//t("n10newing 2 ")  
//delete aObj.treeid// eliminate confusion

//wll separete (call sperately) later
//var newDiv=n10newing(tempNode)
return tempNode // caller will call n10newing with tempNode  



/* 
For onNew: argObj.new instead of argObj.copy.
"argObj.new=1"
This will be called by the dialog.
server'sn10 will call the onNew event. 
server - n10new will add its own wide node.
*/
}
function n10newed(xN){
	scriptid=17387;errObj="n10newed"
//t("n10newed "+xN.xml)
var eventNodes=xN.firstChild// <new..
scope.n2(xN.firstChild)  
}
function n10newing(node){
	scriptid=20468;errObj="n10newing"
var aObj=aP(node) 
t("n10newing")   
//new SITEHTTP() 
//vehicle.n10obj={}    
//var n10doc=vehicle.n10doc=fleXML.newXML("<scope cid='"+DPOD.cid+"'><n10><new/></n10></scope>" ) //alert(sendXML.xml)  
//var newNode=n10doc.firstChild.firstChild.firstChild
//var n10node=n10doc.createElement("new"+aObj.type) // <newmember..  
///n10nodes.appendChild(n10node)
 //t("n10node 1 "+n10node.xml)
//newNode.appendChild(node)


var v=vehicleGet()
v.callBack=n10newed // set arrows etc 
var d=v.doc 
eStr="scope/n10/new" 
var n10n=d.selectSingleNode(eStr)
if(!n10n){
t("wideGet 15")
	n10n=d.createElement("n10")
	d.firstChild.appendChild(n10n)
	nNew=d.createElement("new")
	n10n.appendChild(nNew)
}
nNew.appendChild(node) 
t("n10newing 16")
t("n10newing 18")
var panel=document// for looping through panels later (TODO)
wideReqGet(panel,aObj.ppid)  
//scope.oToN({ppid:ppid,pid:pid,type:type,treeid:treeid,rid:rid},n10node)  
// shift pod to parent..
//aObj.ppid=aObj.pid//donr in new
// burn it onto node 
///scope.pA(aObj,n10node)   
t("n10n 2 "+n10n.xml)
//t(vehicle.n10doc.xml)  
vehicleSend()
//scope.n10send(vehicle)
/*
// Check opened destination tall parents
// for(var pnl in scope.panels){...
getTallReq(n10node,panel,argObj.ppid)   
// Check opened destination wide parents
// for(var pnl in scope.panels){...
*/

}
function n10parent(aObj){
	scriptid=18666;errObj="n10parent"
//t("n10parent - - - - - - - - - - - aObj.pid  "+aObj.pid+" aObj.ppid "+aObj.ppid+" aObj.ppid "+aObj.ppid+
//" aObj.move "+aObj.move+" aObj.treeid "+aObj.treeid)   
treeParent=scope.tree.selectSingleNode("//pod[@pid='"+aObj.ppid+"']")
treePod=scope.tree.selectSingleNode("//pod[@treeid='"+aObj.treeid+"']")
//t(" treeParent ppid "+aObj.ppid+" "+treePod+" treePod id  "+treePod.xml+"   "+aObj.pid) 
if(!treePod)alert("n10parent: cant find 'treeParent'") 
/*
var a=treePod.attributes 
ppid is new parent. pid is dragged pod. copy/move is old parent 
inner copy: 
var tStr="";for(var x in aObj){tStr+=x+":"+aObj[x]};t(tStr)
for(var x=0;x<a.length;x++){if(aObj[a[x].name])a[x].value=aObj[a[x].name]}
*/
//t("n10parent treePod.xml "+treePod.xml) 
if(aObj.copy){// will need new treeid
	treePod=treePod.cloneNode(true)//leave origional untouched
	//t("T23")
	var tIdx=new Date()  
	tIdx="T"+tIdx.getTime()
	aObj.treeid=tIdx 
	scope.sA(treePod,"tempTreeid",tIdx)
	scope.sA(treePod,"copy",aObj.copy)
//	t("n10parent treePod.xml "+treePod.xml) 
}else{      
//	eStr="//tall[@pid='"+aObj.move+"']"
	t(" not copy")//  - eStr "+eStr)
//	fromTree=scope.tree.selectSingleNode(eStr)  
	//t("fromParent  "+fromParent.xml )      
//	treePod=fromTree.removeChild(treePod)//leave origional untouched
	var moveParent=treePod.parentNode
	treePod=moveParent.removeChild(treePod)//leave origional untouched
	// delete arrow?
	var children=moveParent.childNodes.length
	if(!children){ 
		var allNav=document.getElementsByName("nde|nav||pid|"+aObj.move)  
			for(var x=0;x<allNav.length;x++){
				var thisNav=allNav[x] 
				var state=thisNav.getAttribute("state")
				if(state!="0")setNavState(thisNav,0)// show it as occupied if it were empty
			}   
	 
	}
}
scope.sA(treePod,"ppid",aObj.ppid)// cause it wasnt there to begin with ..
if(aObj.rid)scope.sA(treePod,"rid",aObj.rid)//set by twn event 
//t("callng pod tempNode 1 "+tempNode.xml+" aObj.ppid "+aObj.ppid) 
t("callng pod")
scope.n2.pod(treePod)//pod needs treeid for callback
return treePod // caller will call n10newing with tempNode  
}
function n10parented(pNode){
	scriptid=18703;errObj="n10parented"
t("n10parented empty function \n\n")
/*
scope.pod() current fills all actions.
Finding the old - temporary pod
tranforming and replacing it
*/

return false
 























// <n10><parent><parent1234><tall...	
// pNode is <n10>
var nNode=pNode.firstChild.firstChild //<parent12323 move="1232"
//	delete scopeEvent.drag   for abortive tools
 //	scopeEvent.drag.tgt.style.visibility="visible" 
scope.n2.podStore={} // clear cache
//t("n10parented nNode "+nNode.xml)
var panel=document   
scope.n2(nNode)   
var ppid=nNode.getAttribute("ppid")
var allNav=document.getElementsByName("nde|nav||pid|"+ppid)  
//t(" checking for empty - allNav.length: "+allNav.length) 
for(var x=0;x<allNav.length;x++){
	var thisNav=allNav[x]
 	var sig=thisNav.getAttribute("id").split("|")
	var state=thisNav.getAttribute("state")
	//alert("state "+state)  
	if(state=="0")setNavState(sig,1)// show it as occupied if it were empty
}  
 
//var tallNode=nNode.firstChild
//while(tallNode){ 
var moveid=nNode.getAttribute("move")
var tallNodes=nNode.ownerDocument.selectNodes("//tall")
for(var x=0;x<tallNodes.length;x++){
	tallNode=tallNodes[x] 	//alert("onParent node.xml "+tallNode.xml) 
	var pid=tallNode.getAttribute("pid") 
	ln=50
	var sig=tallNode.getAttribute("tgtid").split("|")
	sig[0]="nav"
	ln=70// \\ hide the arrow if the old parent is now empty
	if(tallNode.childNodes.length==0 && moveid)setNavState(sig,0)   
} 

if(uBox)uBox.value=scope.tree.firstChild.xml

return false  
}
function n10parenting(node){
	scriptid=20469;errObj="n10parenting"
t("n10parenting - - - - - - - - - -  -")  
var aObj=aP(node)//t("n10parenting  ")  
//new SITEHTTP()  
//vehicle.n10obj={}    
//var n10doc=vehicle.n10doc=fleXML.newXML("<scope cid='"+DPOD.cid+"'><n10><new/></n10></scope>" ) //alert(sendXML.xml)  
//var newNode=n10doc.firstChild.firstChild.firstChild
//var n10node=n10doc.createElement("new"+aObj.type) // <newmember..  
///n10nodes.appendChild(n10node)
 //t("n10node 1 "+n10node.xml)
//newNode.appendChild(node)
var v=vehicleGet()
v.callBack=n10parented // set arrows etc // all dont by scope.pod now.
var d=v.doc 
eStr="scope/n10/parent"  
var n10n=d.selectSingleNode(eStr)
if(!n10n){
	n10n=d.createElement("n10")
	d.firstChild.appendChild(n10n)
	nNew=d.createElement("parent")
	n10n.appendChild(nNew)
}
nNew.appendChild(node) 
 
var panel=document// for looping through panels later (TODO)
wideReqGet(panel,aObj.ppid)  
//scope.oToN({ppid:ppid,pid:pid,type:type,treeid:treeid,rid:rid},n10node)  
// shift pod to parent..
//aObj.ppid=aObj.pid//donr in new
// burn it onto node 
///scope.pA(aObj,n10node)   
//t("n10n 2 "+n10n.xml)
//t(vehicle.n10doc.xml)  
vehicleSend()
//scope.n10send(vehicle)
/*
// Check opened destination tall parents
// for(var pnl in scope.panels){...
getTallReq(n10node,panel,argObj.ppid)   
// Check opened destination wide parents
// for(var pnl in scope.panels){...
*/
return false





















 
try{
var vehicle=new SITEHTTP() 
vehicle.n10obj={}   
vehicle.callBack=n10parented 
var n10doc=vehicle.n10doc=fleXML.newXML("<scope cid='"+DPOD.cid+"'><n10><parent/></n10></scope>" ) //alert(sendXML.xml)  
var n10nodes=n10doc.firstChild.firstChild.firstChild
var n10node=n10doc.createElement("parent"+argObj.ppid) 
n10nodes.appendChild(n10node) 
//scope.oToN({ppid:ppid,pid:pid,type:type,treeid:treeid,rid:rid},n10node)  
scope.pA(argObj,n10node)  
//t("n10node "+n10node.xml)
var panel=document// for looping through panels later (TODO)
// Check opened from orig parents
//if(argObj.move)getTallReq(n10node,panel,argObj.move)
// Check opened destination tall parents
// for(var pnl in scope.panels){... 
 
/****************** DISABLED GOING TO ASYNC  ***************
getTallReq(n10node,panel,argObj.ppid) 
if(argObj.move)getWideReq(n10node,panel,argObj.move)
*/

// Check opened destination wide parents
// for(var pnl in scope.panels){...
getWideReq(panel,argObj.ppid) 
scope.n10send(vehicle)
//u("wide manEl.length "+manEl.length)
/*
pid: the pod dropped INTO (or moved within)
treeid: dropped pod.  
rid: reference pod
*/   
//if(manifest.length)vNp.manifest=manifest.join("|") 
}catch(e){ 
	delete scopeEvent.drag 
// 	scopeEvent.drag.tgt.style.visibility="visible" 
	t("n10parent ERROR: "+e.message) 
}

}
function n10send(vehicle){
	scriptid=18700;errObj="n10send"
try{ 
	
	/*  make an "edited" script and put this there
  	var edObj=vehicle.authObj.n10obj["edit"]  
	if(edObj){
		for(var edited in edObj){//folder19504   
			var editedPod=edObj[edited] 
			if(editedPod.pname)n10named(editedPod.pid,editedPod.pname)
		}
	}*/
	
	ln=29
	if(!vehicle){
		alert("!vehicle")
		return false 
	}
	if(!vehicle.n10doc){
		alert("!vehicle.n10doc")
		return false
	}
//t("vehicle.n10doc.xml "+vehicle.n10doc.xml)  
	vehicle.load(vehicle.n10doc)
	return false
}catch(e){ 
	showError("DPOD "+ln+"|||Object: "+errObj+"|||"+eStr+"\n\n"+e.message)
}
/*	
	// pname??
	var edObj=n10obj["edit"] 
	if(edObj && edObj.pname && 1==2){
		edObj[eSig][type+pid][p]==1
		var allNav=document.getElementsByName("nav|"+ppid)  
		//t(" checking for empty - allNav.length: "+allNav.length) 
		for(var x=0;x<allNav.length;x++){
			var thisNav=allNav[x]
		 	var sig=thisNav.getAttribute("id").split("|")
			var state=thisNav.getAttribute("state")
			//alert("state "+state)  
			if(state=="0")setNavState(sig,1)// show it as occupied if it were empty
		}
	}
	*/
	//window.status="Sending Changes.. 18"



 // var edObj=this.n10obj["edit"]  
//alert(typeof a0)
  
/*  
give me 3 args and will use them as DPODID, name and value attributes
give me an element and i will use its DPODID, name and value attributes
give me an object and i will use its DPODID, name and value properties
give me a node and I will (as coming back from DPOD) 
and I will update all other instances of this pod.


///DPODID,prop,vDPODID,prop,v

alert(DPODID) 
alert(prop)
alert(v)  
*/ 
  

}
function barScopeEvent(){
	scriptid=17260;errObj="barScopeEvent"
// bar gotElelmentById'd in onLoad
//t("barScopeEvent "+scopeEvent.type)    
if(bar0.lockEvent)return false    
var evt=scopeEvent.event   
var tp=scopeEvent.type   // mousemove - mouseup etc
if(tp=="mousedown"){      
	scopeEvent.drag={nde:"bar",src:bar0} 
	bar0.xObjDown=parseInt(bar0.style.left) // width places bar to left of content pane 
	bar0.xMseDown=evt.clientX    
	document.getElementsByTagName("BODY")[0].style.cursor="E-resize" 
}else if(tp=="mouseover"){ 
	if(scopeEvent.barTime||scopeEvent.drag||bar0.toggle.style.visibility=="visible")return false 
	scopeEvent.barTime=setTimeout(function(){clearTimeout(scopeEvent.barTime);delete scopeEvent.barTime;showBar()},200) 
}else if(tp=="mouseout"){//t("scopeEventbar mouseout "+scope0.closed+" "+Math.random())    
	//t("barScopeEvent mouseout ")    
	clearTimeout(scopeEvent.barTime) 
	delete scopeEvent.barTime 
 	if(scopeEvent.drag||bar0.toggle.over)return false 
	hideBar() 
}else if(tp=="mousedrag"||tp=="mousedragover"||tp=="mousedragout"){          
	t(" barScopeEvent "+tp)       
	bar0.toggle.style.visibility="hidden" 
	var ie=(scope.clientApp=="IE")?1:0
	/*	evt.clientX: mouse
	bar: subtract 3 to center, then add 3 if ie
	panel0: from bar's left, add 6 to put it under the bar, then subtract ie 3px bug	*/
	var left=evt.clientX-ie*3  
	bar0.style.left=left
	scope.panels[0].style.width=left//+3-ie*3	
	return false       
}else if(tp=="mouseup"){      
	delete scopeEvent.drag    
}else if(tp=="mousedrop"){      
	//t(" barScopeEvent "+tp)       
	// dropping a pod on the bar.. kkeps it from sticking
	if(scopeEvent.drag.dragged)bodyScopeEvent()
	delete scopeEvent.drag  
//	delete scopeEvent.drag   
	document.getElementsByTagName("BODY")[0].style.cursor="auto" 
	//t("barScopeEvent mousedrop "+mousedrop) 
}  
return false  
}
function bodyScopeEvent(){
	scriptid=18781;errObj="bodyScopeEvent"
//t("scopeEventicon "+scopeEvent.type)   
// NOT MOD
ln=0
var tp=scopeEvent.type    
var thisPod=scopeEvent.src
if(tp=="mouseup"){ // from scopeEventUp //u("selSCOPEEVENT mouseup") 
	//t("scopeEvent.type "+scopeEvent.type)  
	var pod=getPod(thisPod)
	var evt=scopeEvent.event        
	delete scopeEvent.down
	var treeid=pod.treeid
	var type=pod.type// thisPod.getAttribute("type")        
//	t("scopeEvent.type 2"+scopeEvent.type)  
	var pid=pod.pid//sig[3]    
	if(scopeEvent.button!=0){
		killMenu()// menu was showing - kill it
		var srcSig=thisPod.getAttribute("id")
		eStr="<scope><n2><tM tMname='pane' "+
		"srcSig='"+thisPod.getAttribute("id")+"' pid='"+sig[3]+"' treeid='"+sig[4]+"' type='"+type+"'/>"+
		"</n2></scope>"
 		var sendXML=fleXML.newXML(eStr) //alert(sendXML.xml)  
 		scopeEvent.menu={srcSig:srcSig,type:"typeRoot",pid:sig[3],treeid:sig[4]}  
		scopeEvent.menu.vehicle=new SITEHTTP()    
		scopeEvent.menu.vehicle.load(sendXML)     
		scopeEvent.menu.left=evt.clientX 
		scopeEvent.menu.top=evt.clientY  			 
		return false 
	} // button==1/2 
}else if(tp=="mousedrop"){      
	var sEd=scopeEvent.drag      
	sEd.tgt.style.visibility="visible"
	sEd.dragged[0].parentNode.removeChild(sEd.dragged[0]) 
	sEd.dragged[1].parentNode.removeChild(sEd.dragged[1]) 
//	scopeEvent.drag.src.style.visibility="hidden" 
	delete scopeEvent.drag  
}else if(tp=="mouseout"){      
	delete scopeEvent.preSelected
}   

return false 
}
function getTallReq(n10n,panel,ppid){
	scriptid=18892;errObj="getTallReq"
// called by sel;'s drop.  disabled there
var navEl=document.getElementsByName("nde|nav||pid|"+ppid)   
for(var x=0;x<navEl.length;x++){
	var thisPod=navEl[x] // will need to expand this for other panels
	var state=thisPod.getAttribute("state")
	delete scope.n2.podStore["tall|"+ppid]
	if(state=="3"){  // OPENED  
		//t("FOUND OPEN FOR "+ppid)
		var pObj=getPod(thisPod).obj
		var tObj={} 
		tObj.type=pObj.type  
		tObj.treeid=pObj.treeid  //sig[4]
		tObj.pid=pObj.pid//sig[3]
		
		var dock=thisPod.getAttribute("dock")// "wP"
		if(dock)tObj.dock=dock
		var tgt=thisPod.getAttribute("tgt")// "wP"
		if(tgt)tObj.tgt=tgt/// redundant!?
		 
		var tgtSig=getTgtStr(tgt,pObj)//tgtSig.join("|")     
		tObj.id=tgtSig   
		var reqNode=n10n.ownerDocument.createElement("tall")
		scope.oN(tObj,reqNode)  
		n10n.appendChild(reqNode)  
	}
}  
}
function wideGet(pid){
	scriptid=18774;errObj="wideGet"
//would like to use n2send.. till then test for agrs [1]

eStr="scope/n2" 
var v=vehicleGet()
var d=v.doc
eStr="scope/n2" 
var n2n=d.selectSingleNode(eStr)
if(!n2n){
	n2n=d.createElement("n2")
	//t("d.firstChild "+d.firstChild.xml)
	d.firstChild.appendChild(n2n)
}
var wN=d.createElement("wide")
ln="typeof d "+(typeof d)
//reqNode.setAttribute("type",thisPod.getAttribute("type"))  
//reqNode.setAttribute("treeid",thisPod.getAttribute("treeid"))  
if(!pid)alert("wideGet: pid is null")
wN.setAttribute("pid",pid)
if(arguments[1])wN.setAttribute("treeid",arguments[1])
n2n.appendChild(wN)  
}
function wideReqGet(panel,ppid){
	scriptid=18894;errObj="wideReqGet"
var pidWides=panel.getElementsByName("nde|wide||pid|"+ppid) 
if(pidWides.length)wideGet(ppid) 
}
function keyScopeEvent(){
	scriptid=18771;errObj="keyScopeEvent"
// NOT MOD
/* unfinished.
still need to enable moving 
* up (up and out is done)
* down and out
need to rethink if.. structure 
*/ 


var tp=scopeEvent.type   
var evt=scopeEvent.event 
var keyCode=evt.keyCode 

if(tp=="keyup"){    
	delete scopeEvent.ctrlKey
	if(scopeEvent.drag&&scopeEvent.drag.tgt)scopeEvent.drag.tgt.style.visibility="hidden" 
}else if(tp=="keydown" &&  scopeEvent.preSelected){errObj="selScopeEvent-keydown" // u("selSCOPEEVENT mousedown") 
	//preSelected(scopeEvent.preSelected)
	if(keyCode==17){
		//t("keyScopeEvent keyCode==17 scopeEvent.drag.tgt "+scopeEvent.drag.tgt)
		scopeEvent.ctrlKey=true
		if(scopeEvent.drag)scopeEvent.drag.tgt.style.visibility="visible"
	}
	
}else if(tp=="keydown"){
	if(keyCode==17){ 
		scopeEvent.ctrlKey=true
		//t("scopeEvent.ctrlKey "+scopeEvent.ctrlKey+" scopeEvent.drag "+scopeEvent.drag)
		if(scopeEvent.drag)scopeEvent.drag.tgt.style.visibility="visible"
	}
	
}	//			scopeEvent.arrowKeyNav=thisPod // remember for arrow key navigation 

function up(sel){}
function upOut(sel){}
function downIn(sel){}
function down(sel){
	dePreSelect()
	var pod=getPod(sel.sig)
	var nextPod=pod.nextSibling 
	if(nextPod==null){
		//t("NO nextPod") 
		return false
	}else if(nextPod.nodeName=="IMG"){	
		nextPod=nextPod.nextSibling // 1px img: ie's fuck fix
	}else{
		//t("NO POST-IMG POD")
		if(!nextPod)return false
	}
	nextPod.style.background=scope.preselectClr 
	var selSig=getTgtStr("sel",nextPod.id)//tgtSig.join("|")    
	//t("2")
	var sel=scope.gE(selSig) 
	sel.sig=selSig.split("|")  
	scopeEvent.src=scopeEvent.preSelected=sel//the sel img
	//t("8 "+state )
}
function dePreSelect(){
	if(scopeEvent.preSelected){ 
		var prePodSig=getTgtStr("pod",scopeEvent.preSelected.sig)//tgtSig.join("|")    
		var prePod=scope.gE(prePodSig)
		prePod.style.background=""
	} 
}
function XXXXgetPod(sig){
	var podSig=getTgtStr("pod",sig)//tgtSig.join("|")    
	var pod=scope.gE(podSig)
	return pod
}
	function preSelected(sel){
		scriptid=20438;errObj="preSelected"
var arrowKeys={"k38":"up","k39":"rt","k40":"dn","k37":"lf","k13":"en"} 
var arrow=arrowKeys["k"+keyCode] 
if(!arrow)return false  

scopeEvent.src=sel//the sel img
sel.sig=sel.getAttribute("id").split("|") 
navSig=getTgtStr("nav",sel.sig)//tgtSig.join("|")    
 
var nav=scope.gE(navSig)
nav.sig=nav.getAttribute("id").split("|") 
scopeEvent.src=nav

var state=nav.getAttribute("state")      
//	t(" scopeEvent state "+state) 
//if(state=="0"){ 
if(arrow=="en"){//move up
//	t("SELECT -- "+scopeEvent.preSelected)
	scopeEvent.down={src:nav} 
	scopeEvent.type="mouseup"
	scopeEvent.button=0
	selScopeEvent()    
	delete scopeEvent.down 
	return false 
} 

if(arrow=="XXXXlf"){//move up
}
//		switch(arrowKeys["k"+keyCode]){
//		case "rt"://open
//			return false
//}else if(state=="1"){
//	t("state start "+state )
if(arrow=="up"){//move up
	//t("up")
	if(scopeEvent.preSelected){ // local fun
		var prePodSig=getTgtStr("pod",scopeEvent.preSelected.sig)//tgtSig.join("|")    
		var prePod=scope.gE(prePodSig)
		prePod.style.background=""
	} 
	var podSig=getTgtStr("pod",sel.sig)//tgtSig.join("|")    
	var pod=scope.gE(podSig) 
	var prevPod=pod.previousSibling
	if(prevPod==null){
		return false
	}else if(prevPod.nodeName=="IMG"){	
		prevPod=prevPod.previousSibling // 1px img: ie's fuck fix
	}else{
		if(!prevPod)return false
	} 
	prevPod.style.background=scope.preselectClr 
	var podSig=prevPod.getAttribute("id").split("|")
	var selSig=getTgtStr("sel",podSig)//tgtSig.join("|")    
	var sel=scope.gE(selSig) 
	sel.sig=selSig.split("|")  
		scopeEvent.src=scopeEvent.preSelected=sel//the sel img
}else if(arrow=="rt"&&state=="1"){// open and into
//	u("open it")
	scopeEvent.type="mouseup" 
	navScopeEvent()   
}else if(arrow=="lf"&&state=="1"){//close and out
//		t("lf nd 1") 
	if(scopeEvent.preSelected){ 
		var prePodSig=getTgtStr("pod",scopeEvent.preSelected.sig)//tgtSig.join("|")    
		var prePod=scope.gE(prePodSig)
		prePod.style.background=""
	} 
	// get sel's pod..
	var podSig=getTgtStr("pod",sel.sig)//tgtSig.join("|")    
	var pod=scope.gE(podSig)
	// it's parent is tall and has a sig
		var tall=pod.parentNode
	var tallSig=tall.getAttribute("id").split("|")
	
	var parSelSig=getTgtStr("sel",tallSig)//tgtSig.join("|")    
	var parSel=scope.gE(parSelSig) 
	//alert("XXXXXXXXXXXparSel "+parSel)
	parSel.sig=parSelSig.split("|") 
	scopeEvent.src=scopeEvent.preSelected=parSel//the sel img
	var parPodSig=getTgtStr("pod",tallSig) 
	var parPod=scope.gE(parPodSig)  
	parPod.style.background=scope.preselectClr 

//				scopeEvent.type="mouseover"   
//				selScopeEvent()    

}else if(arrow=="dn"){// move next to
	down(sel) 
} 
//}else if(state=="3"){//open - move into 
if((arrow=="rt"||arrow=="dn")&&state=="3"){
//	t("rt dn  "+state )
	t("rt dn 3")
	if(scopeEvent.preSelected){ 
		var prePodSig=getTgtStr("pod",scopeEvent.preSelected.sig)//tgtSig.join("|")    
		var prePod=scope.gE(prePodSig)
		prePod.style.background=""
	} 
	var tallSig=getTgtStr("tall",sel.sig)//tgtSig.join("|")    
	var tall=scope.gE(tallSig) 
//				u("st 3 tall  "+tall)
	var pod=scopeEvent.preSelected=tall.firstChild
	pod.style.background=scope.preselectClr 
	var podSig=tall.getAttribute("id").split("|")
	var selSig=getTgtStr("sel",podSig)//tgtSig.join("|")  

}else if(arrow=="lf"&&state=="3"){//close
	//t("close")
	scopeEvent.type="mouseup"  
	navScopeEvent()   
}else if(state=="3"){ 
	//t("state 3")
}  
//}  // end state.     
if(clientApp=="IE"){
	evt.returnValue=false
}else{ 
//	u("preventDefault "+evt.preventDefault)
	evt.returnValue=false 
	evt.preventDefault()
}
	}
}
function n2send(argObj){
	scriptid=18773;errObj="n2send"
/*
called by nav event and various tmi's/
----------argObj------
----------------------*/    
eStr="<scope cid='"+DPOD.cid+"'><n2></n2></scope>"
var sendDoc=fleXML.newXML(eStr)   
var n2node=sendDoc.firstChild.firstChild
//" // writ by dataSCOPE.xsl, updated by scope
if(argObj.length){//an array of objects 
	for(var x=0;x<argObj.length;x++){writeNode(argObj[x])}  
	window.status="loading pods.."
}else{// AN OBJECT
	writeNode(argObj)
	window.status="loading "+argObj.pname
}  
var vehicle=new SITEHTTP()    
//t("n2send "+sendDoc.xml)
vehicle.load(sendDoc)    
//u(" n2send ----------------    DONE")
return vehicle
function writeNode(o){ 
	if(!o.tgt)alert("no o.tgt")
	var n=sendDoc.createElement(o.tgt) 
//	for(var x in o){t("o["+x+"]  = "+o[x]+"  typeof: "+(typeof o[x]) )}
	scope.pA(o,n)	
//function pA(obj,n){for(var p in obj){n.setAttribute(p,obj[p])}}	
	n2node.appendChild(n)
}
 
}
function n2refresh(pid){
	scriptid=18782;errObj="n2refresh"
// NOT MOD
//alert("n2refresh 1 pid "+pid) 
var panel=document// for looping through panels later (TODO)
var n2list=[]
getTallReq(panel,pid)  
getWideReq(panel,pid)
function getTallReq(panel,pid){ 
	var navEl=panel.getElementsByName("nde|nav||pid|"+pid)  
	for(var x=0;x<navEl.length;x++){
		var thisPod=navEl[x] // will need to expand this for other panels
		var state=thisPod.getAttribute("state")
		delete scope.n2.podStore["tall|"+pid]
		if(state=="3"){  // OPENED  
			var tObj={}
			tObj.type=thisPod.getAttribute("type")  
	 		if(!tObj.type)tObj.type="" // used b wP1,3,4,5,6
			var sig=thisPod.getAttribute("id").split("|") 
			tObj.treeid=sig[4]
			tObj.pid=sig[3]
			var dck=thisPod.getAttribute("dock")// "wP"
			tObj.dckid=getTgtStr(dck,sig)  
			var tgt=thisPod.getAttribute("tgt")  
			var tgtSig=getTgtStr(tgt,sig)//tgtSig.join("|")     
			tObj.tgtid=tgtSig  
			n2list.push({tgt:'tall',dock:'pod',sig:tgtSig.split("|")})  
		} 
	}  		
} 
function getWideReq(panel,pid){  
	var manEl=panel.getElementsByName("nde|wide||pid|"+pid) 
	for(var x=0;x<manEl.length;x++){
		var thisPod=manEl[x] 
		var idx=thisPod.getAttribute("idx")
		var treeid=thisPod.getAttribute("treeid")
		var argObj={}  
		argObj.sig=["wide",idx,DPOD.aid,pid,treeid]
		argObj.dock="wide"
		argObj.tgt="wide"
		n2list.push(argObj)  
	} 
}  
alert(n2list)
scope.n2send(n2list)   
}
function navScopeEvent(){
	scriptid=17265;errObj="navScopeEvent"
thisPod=scopeEvent.src  // tall and wP arrow navigation
//var items=['srcType','idx','aid','pid','treeid','pname','type'] 
//pod|idx|aid|DPODID|treeid" 
/*
send setNavState and image. 
tgt att: required, will be incoming nodeName
dock att: optional, the parent into which we atachChild
getPod() gets the paret "pod" element which has atts for all pod poropertuies.
 These props as well as those piped in the id become props of a created "obj" object.
 getPod also reads the image's "name" att and adds its nde and pid props to both img and scopeEvent.
*/
//t("navScopeEvent "+scopeEvent.type)
if(scopeEvent.type=="mouseover"){     	  
	thisPod.style.cursor="pointer"  
}else if(scopeEvent.type=="mouseout"){     
	thisPod.style.cursor="auto" 
}else if(scopeEvent.type=="mouseup"){  
	var state=scope.gA(thisPod,"state")      
	//alert(thisPod.outerHTML)
	//t("navScopeEvent nme "+nde)// name of node-to-be
	var pod=getPod(thisPod)  // pod has ref to all elements directly
	var pObj=pod.obj// pod.obj has all props
	
	var tgt=scope.gA(thisPod,"tgt") 
	var tgtSig=getTgtStr(tgt,pod.id)//tgtSig.join("|")   // quasi xPODread
	//t("tgtSig "+tgtSig+" pod.id "+pod.id+" navScopeEvent pObj.aid "+pObj.aid+" state "+state)  
	switch(state){    //  
		case "3":  // it was open (V), so close it (>)   
			t(" navScopeEvent close ")  
 			var thisTgt=scope.gE(tgtSig)  
			// \\\ stash clone in cache if not already
			var fromCache=scope.n2.podStore[tgt+"|"+pObj.pid] 
			if(!fromCache && tgt=="tall")scope.n2.podStore[pObj.nde+"|"+pObj.pid]=thisTgt//.cloneNode(true)
			// /// only cachuing tall in n2.  wP were empty on 2nd spread, object cant clone
			 // \\\ now cached in tall() .  points to hidden child (stlll on page)
 			var navImg=setNavState(thisPod,2)// Midpoint (don-right)  
			//t("  thisTgt "+thisTgt+"  tgtSig "+tgtSig)  
			wipe(thisTgt,navImg)  //  thisTgt=what to squish, navimg=arrow
		break;         //alert("outerHTML "+thisPod.parentNode.innerHTML)  
		case "1":  // it was closed (>), so open it (V)    tall|div|123455  
			var navImg=setNavState(thisPod,2) // corner arrrow     
			scopeEvent.preSelected=scopeEvent.selected=pod  // for arrow keys
			var dock=navImg.getAttribute("dock")//"pod" or "wPd.."
			var parent=getTgtStr(dock,pObj)  
			//t("parentparent "+parent)
			var parent=scope.gE(parent)  // OPENING
			//t(" navScopeEvent OPENING ")  
			if(tgt=="tall"){// tall-only tests
				if(isAncestor(parent,parent.parentNode.parentNode)){ // OPENING
					alert("IS ANCESTOR!")  
					setNavState(thisPod,4) 
					return false
				}   
				var otrNav=document.getElementsByName("nde|nav||pid|"+pObj.pid)   // OPENING				 //	alert("sig 4 "+sig[4]) 
				for(var x=0;x<otrNav.length;x++){ 
					var oNx=otrNav[x]   
					if(!oNx||oNx==thisPod)continue  // wP navs are nameless  
					var otrState=scope.gA(oNx,"state")
					if(otrState!="3")continue// other not open, nevermind 	//u("navScopeEvent thisPod.id "+thisPod.id+"   aNx.id "+oNx.id)       
					// taget is "tall" for nav					
					var otrid=getTgtStr(tgt,oNx.id)// "tall" 		
					var otrTgt=scope.gE(otrid) 
					if(otrTgt!=null)t("otrTgt "+otrTgt.id)
					if(otrTgt!=null)setNavState(oNx,2)					 
					if(otrTgt!=null)wipe(otrTgt,oNx)//.parentElement.removeChild(podCON) 
					//oNx.setAttribute("state","1")  // mid
					//oNx.src=navIcon[1].src    // OPENING
				}     
				eStr="//tall[@pid='"+pObj.pid+"']"
				fromTree=scope.tree.selectSingleNode(eStr) 
				if(fromTree){  // pull from xmlTree if found (new) 
					var wrapper=fromTree.ownerDocument.createElement("n2")
					/// wrapper needed or tall forgets outer node
					var clone=fromTree.cloneNode(true)
					wrapper.appendChild(clone)
					//t("\n\nfromTree.xml BEFORE :\n  "+clone.xml)
					//t(" fromTree pObj.treeid "+pObj.treeid+" fromTree pObj.pname "+pObj.pname)
					scope.sA(clone,"treeid",pObj.treeid)
					scope.sA(clone,"ppid",pObj.ppid)
					scope.sA(clone,"parent",pObj.parent)//legacy
					var sig=scope.gA(clone,"id")// nde|tall||idx|0||aid|19666||treeid|155672
					//var origNode=as				
					sig=xPODread(sig)
					sig.treeid=pObj.treeid
					sig=xPODwrite(sig) 
					scope.sA(clone,"id",sig)
					scope.loadObj={};scope.loadObj.navImg=thisPod// otherwise uses last loadObj
					scope.n2(wrapper)//.tall(clone) 
	//				wipe(otherTgt,otherNavImg)
					//t("\n\nfromTree.xml AFTER :\n  "+clone.xml) 
					return false
				}
			}
			
			if(1==2 && fromTree!=null){  // pull from xmlTree if found (new)
				// from copy event: treePod=fromTree.removeChild(treePod)//leave origional untouched
				scope.sA(treePod,"ppid",pObj.ppid)// cause it wasnt there to begin with ..
				scope.n2.pod(treePod)//pod needs treeid for callback				
				return false
			}else if(1==2 && scope.n2.podStore[tgt+"|"+pObj.pid]!=null){  // pull from memeory if we've already been there
				var fromCache=scope.n2.podStore[tgt+"|"+pObj.pid].cloneNode(true)
				fromCache.id=tgtSig
				parent.appendChild(fromCache) 
				spread(fromCache,navImg)      // OPENING
				// need to do notify  
			}else{          // OPENING  				//u("not from cache 0 "+tgt+"|"+sig[3]) 	
			// temp till we start looking at persistent scopeDoc...
	//			t("navScopeEvent pod.type "+pod.type) 
				window.status="loading pods.."          
				var type=pod.type// OPENING 
				if(!type)type="" // used b wP1,3,4,5,6
				///pObj.dock=scope.gA(thisPod,"dock")// "wP"
				pObj.dock=scope.gA(thisPod,"dock") 
				pObj.id=getTgtStr(tgt,pObj)
				t("thisPod.tgt "+thisPod.tgt)
				pObj.tgt=tgt
//				t("pObj.tgt 2 "+pObj.tgt)
				//var argObj={tgt:tgt,idx:pod.idx,type:pod.type,pid:pod.pid,treeid:pod.treeid,dock:dock}
				var vehicle=n2send(pObj) 
		 		vehicle.navImg=navImg // for setNav(3)
		 		t("vehicle.navImg "+vehicle.navImg)
			} 
		break; // end (+) 
	}  // end (+) or (-) switch
}	
return false 
}
function podScopeEvent(){
	scriptid=18599;errObj="podScopeEvent"
bodyScopeEvent()
}
function selScopeEvent(){
	scriptid=17263;errObj="selScopeEvent"
try{ln=0  
// PARTIAL DONE 9onlymse up0
var tp=scopeEvent.type   
/* getPod():
pod["icon","txt","sel","nav","twn"]
pod.obj['nde','idx','aid','treeid']
pod.obj['pid','type','parent','mutable','pname']
*/
//t("selScopeEvent tp "+tp)
var thisPod=scopeEvent.src 
if(tp=="mousedown"){errObj="selScopeEvent / "+tp;  errObj="selScopeEvent / "+tp;  // u("selSCOPEEVENT mousedown")
	var evt=scopeEvent.event 
	var pod=getPod(thisPod)// pod is the "nde||pod" element
	scopeEvent.down={nde:"sel",proximity:1,xMseDown:evt.clientX,yMseDown:evt.clientY,src:thisPod} 	//u("  mousedown - scopeEvent.down "+scopeEvent.down+"  mousedown - scopeEvent.event "+scopeEvent.event)     
}else if(tp=="mousedrag"){errObj="selScopeEvent / "+tp;  // from scopeEventDrag
	var sEd=scopeEvent.drag
	var evt=scopeEvent.event        
	var style=sEd.dragged[0].style
	style.left=evt.clientX-26//sEd.xMseDown
	style.top=evt.clientY-sEd.yMseDown
	var style=sEd.dragged[1].style
	style.left=evt.clientX+6   
	//t("scopeEvent.drag "+scopeEvent.drag)
	style.top=evt.clientY-sEd.yMseDown  
}else if(tp=="mousedragover"){errObj="selScopeEvent-mousedragover"// from scopeEventDrag
	var pod=getPod(thisPod)// pod is the "nde||pod" element
	var pObj=pod.obj// obj is filled with atts and a ref to its pod.
	if(!pObj.mutable)return false   	
 	setSheetStyle("pod",pObj.pid,"backgroundColor",scope.dragOverClr)//3=pid  
}else if(tp=="mousedragout"){errObj="selScopeEvent / "+tp;   // from scopeEventDrag
	var pod=getPod(thisPod);var pObj=pod.obj
	if(scopeEvent.selected&&pObj.pid==scopeEvent.selected.pid){
		setSheetStyle("pod",scopeEvent.selected.pid,"backgroundColor",scope.selectClr)//3=pid
	}else{
	 	setSheetStyle("pod",pod.pid,"backgroundColor","")//3=pid    
	}
}else if(tp=="mouseover"){errObj="selScopeEvent / "+tp;     ln=70 
	var pod=getPod(thisPod);
	var pObj=pod.obj
 	if(scopeEvent.selected&&pObj.pid==scopeEvent.selected.pid)return false //	u(" mouseover thisPod.sig[3] "+thisPod.sig[3])
 	setSheetStyle("pod",pod.pid,"backgroundColor",scope.overClr)//3=pid  
}else if(tp=="mouseout"){errObj="selScopeEvent / "+tp;    ln=80
	var pod=getPod(thisPod)
	var pObj=pod.obj
 	if(scopeEvent.selected&&pObj.pid==scopeEvent.selected.pid)return false 
	setSheetStyle("pod",pObj.pid,"backgroundColor","")//3=pid  
}else if(tp=="mousemove"&&scopeEvent.button==0){errObj="selScopeEvent-mousemove";ln=100 // u("selSCOPEEVENT mousedown")  	//u("  mousemove - scopeEvent.down: "+scopeEvent.down)// "+scopeEvent.down+"  mousedown - scopeEvent.event "+scopeEvent.event)  
	if(!scopeEvent.down)return false  
	//("scopeEvent.down.proximity "+scopeEvent.down.proximity)	
	scopeEvent.down.proximity++ // for mouseup: drop or drag?
	if(scopeEvent.down.proximity>6){  // START DRAG
		var evt=scopeEvent.event       	 	//u("  start dragging - evt.clientX - "+evt.clientX+" - "+Math.random())  
		var sEd=scopeEvent.drag=scopeEvent.down
		sEd.xMseDown=20  // will need to be tweeked for larger pods.  Keep mouse in open area tween pod and txt!
		sEd.yMseDown=9     
		delete scopeEvent.down.proximity  
		delete scopeEvent.down 	//	scopeEvent.overClr=scope.dragOverClr//"#AAE"	 	//u("   sEd - "+sEd)  
		var sig=sEd.src.id   		//u("mousemove copeEvent.down.proximity>8  sEd.src "+sEd.src)
		var tgt=getPod(sEd.src)
		sEd.tgt=tgt
		// hide nav 
		if(!scopeEvent.ctrlKey)sEd.tgt.style.visibility="hidden" 
		sEd.tgt.id=sEd.tgt.getAttribute("id")  		// holds icon and text ([0] and [1])
		sEd.dragged=[]		// clone and append the cond
	 	var subSig=getTgtStr("icon",sig)//tgtSig.join("|")     
		var subEl=getDesc(sEd.tgt,subSig)		//u("  subEl "+subEl+"  subSig  "+subSig)
		sEd.dragged[0]=subEl.cloneNode(true); 
		//t("     sEd.dragged[0] "+sEd.dragged[0])
 		document.body.appendChild(sEd.dragged[0])
		with(sEd.dragged[0].style){ 
			position="absolute"
			opacity=.6
			filter="alpha(opacity=60)"   
			zIndex=300   
			left=evt.clientX-sEd.xMseDown
			top=evt.clientY-sEd.yMseDown//imgCursOffstY//   0;
		}  	// clone and append the text
	 	var subSig=getTgtStr("txt",sig)//tgtSig.join("|")    
		var subEl=getDesc(sEd.tgt,subSig)     
		sEd.dragged[1]=subEl.cloneNode(true); 
 		document.body.appendChild(sEd.dragged[1])
		with(sEd.dragged[1].style){ 
			position="absolute"
			opacity=.6   
			zIndex=300   
			marginTop=2   
			left=evt.clientX+sEd.xMseDown
			top=evt.clientY-sEd.yMseDown//imgCursOffstY//   0;
		}  
 	}
}else if(tp=="mouseup"){errObj="selScopeEvent-mouseup" // from scopeEventUp //u("selSCOPEEVENT mouseup") 	//t("sc evt mseup 1")
	var evt=scopeEvent.event     
	var pod=getPod(thisPod)
	if(!pod)t(" no pod from  getPod")
	var pObj=pod.obj
	t("sel mouseup pObj.treeid "+pObj.treeid)
	//var sig=thisPod.sig  	//u("selScopeEvent mouseup")      
	if(!scopeEvent.down||scopeEvent.down.src!=thisPod)return false 
	delete scopeEvent.down 
	if(scopeEvent.selected)setSheetStyle("pod",scopeEvent.selected.pid,"backgroundColor","")//3=pid  
	//preSelected for arrow keys.  selected for setBGcolor		//u(" selScopeEvent button: "+scopeEvent.button)   //	u("selScopeEvent thisPod.id "+thisPod.id)	
	scopeEvent.preSelected=scopeEvent.selected=pObj  // for arrow keys  
	setSheetStyle("pod",pObj.pid,"backgroundColor",scope.selectClr)//3=pid  
	wideGet(pObj.pid,pObj.treeid)
	vehicleSend()
	window.status="loading pods.."          
}else if(tp=="mousedrop"){  errObj="selScopeEvent-mousedrop" //	u("selScopeEvent mousedrop "+Math.random())
	/*	pod["icon","txt","sel","nav","twn"]
		pod.obj['nde','idx','aid','treeid']
		pod.obj['pid','type','parent','mutable','pname']	*/	
	var evt=scopeEvent.event       
	var pod=getPod(thisPod);
	var pObj=pod.obj
	
	var sEd=scopeEvent.drag  
	var dE=sEd.dragged     
	var dragPod=getPod(sEd.src)//scopeEvent.drag.src.pod
	var oldTall=dragPod.parentNode//here before may cloneNode

	var dObj=dragPod.obj
	var dTgt=sEd.tgt  // <-  sEd.src
	//t("mousedrop B dE "+dE)	
	if(dE[0])dE[0].parentNode.removeChild(dE[0])
	if(dE[1])dE[1].parentNode.removeChild(dE[1])
	if(thisPod&&thisPod.pid){     
		t("selEvent drop")
  		dTgt.style.visibility="visible"//exp
	 
 		setSheetStyle("pod",thisPod.pid,"backgroundColor",scope.overClr)//3=pid   //		u(" scopeEvent.drag "+scopeEvent.drag) 
		var argObj={pid:dObj.pid,type:dObj.type,treeid:dObj.treeid}
		delete scopeEvent.drag// kill it asap, so it wont hang on errors 	
// copy TODO get props from server.. set all sub elment id's
		var ppid=dTgt.getAttribute("ppid") 
		if(!scopeEvent.ctrlKey){
			if(oldTall.childNodes.length<2)setNavState({pid:parent},0)
			argObj.move=ppid
			sEd.tgt.parentNode.removeChild(sEd.tgt)
			t(" selEvent drop !scopeEvent.ctrlKey ppid "+ppid)
		}else{
			sEd.tgt.style.visibility="visible" 
			argObj.copy=ppid
			t(" selEvent drop scopeEvent.ctrlKey ppid "+ppid)
		}
		// ppid is new parent. pid is dragged pod. copy/move is old parent
		argObj.ppid=thisPod.pid
		var n=n10parent(argObj)// argObj: ppid,pid,type,treeid,[rid]
		n10parenting(n)
		delete scopeEvent.drag //exp 
	}else{	//u("empty drop. thisPod: "+thisPod) 
		delete scopeEvent.drag 
		dTgt.style.visibility="visible"
	}  
}

}catch(e){showError("DPOD "+ln+"|||Object: "+errObj+"|||"+eStr+"\n\n"+e.message)}
	 
return false
function writeArrow(pid){
	var allNav=document.getElementsByName("nde|nav||pid|"+pid)  
	for(var x=0;x<allNav.length;x++){
		var thisNav=allNav[x]
		var state=thisNav.getAttribute("state")
		if(state=="0")setNavState(thisNav,1)// show it as occupied if it were empty
	}  
}
	
function getDesc(ch,sig){ 
	if(ch.nodeName=="#text")return null 
	if(ch.getAttribute("id")==sig)return ch
	var gCh=ch.firstChild
	while(gCh!=null){
		
		var gSigCh=getDesc(gCh,sig) 
		if(gSigCh)return gSigCh
		gCh=gCh.nextSibling
	}
	return null
}
return false 
	function setSheetStyle(sig0,pid,p,v){
		scriptid=18662;errObj="setSheetStyle"
// SO MUCH FASTER  \\\\\////
var podImgs=document.getElementsByName("nde|sel||pid|"+pid) 
//t("podImgs "+podImgs.length) 
for(var i=0;i<podImgs.length;i++){ 
	var pod=getPod(podImgs[i])
	pod.style[p]=v 
}	
return false 


// dynamically creating stylesheets is really slow.
// IE hourglasses ddureing the sheet appensing process, FF is lightinig.
if(!document.styleSheets)return false 
var styleSheet=document.styleSheets[0]
if(!styleSheet)return false 
if(!scopeEvent.ruleObj)scopeEvent.ruleObj={} 
var ruleObj=scopeEvent.ruleObj
if(!ruleObj[pid]){//.rule){
	if(styleSheet.cssRules){      
		var ruleIdx=styleSheet.cssRules.length
		styleSheet.insertRule("."+sig0+pid+"{"+p+":"+v+"}",ruleIdx) //add new rule to start of stylesheet
		ruleObj[pid]=styleSheet.cssRules[ruleIdx]// Firefox  
	}else{   
	//alert(sel) 
		styleSheet.addRule("."+sig0+pid,p+":"+v)   
		var ruleIdx=styleSheet.rules.length-1 
		ruleObj[pid]=styleSheet.rules[ruleIdx]// IE 
		return false
	}    
}   
ruleObj[pid].style[p]=v  
return false 

	}
}
function setNavState(img,polarity){
	scriptid=17183;errObj="setNavState"
/* pod is the PMG element. polarity: 0=empty/hidden, 1=(-), 2=(+)
 THIS IS CALLED BY:
 moveCopy (3)
 PMGevent (2)
DPODID for 0 (hide), treeID for 1,2 (+,-)
This will resolve all pods PMD. 

from 

*/ 

//ele|pnl|app|PDOID|treeid  
ln=1
//t("setNavState img "+img)
//var elePnlApp=sig.slice(0,2).join("|")+"|"//ele|pnl|app
switch(polarity){
	case 0: 
 		errObj="setNavState-0"
		 //EMPTY  make this one 0 means make all 0
		var allNav=document.getElementsByName("nde|nav||pid|"+img.pid)  // pid set by eventGet
	//	u("allNav.length "+allNav.length)
		for(var x=0;x<allNav.length;x++){// html
			var thisNav=allNav[x]  
			thisNav.src=navIcon[0].src 
			scope.sA(thisNav,"state","0")// thisNav.setAttribute("state","0")// "V"
			thisNav.style.cursor="auto"
		}
		var allTrees=scope.tree.selectNodes("//pod[@pid='"+img.pid+"']/nav")
		for(var x=0;x<allTrees.length;x++){// xml
			var thisNav=allTrees[x]  
			thisNav.parentNode.removeChild(thisNav)
		}
	break;    
	case 1:  // CLOSE (make (>))  - operates on single node
	 	errObj="setNavState-2"
	 	tgtSig=getTgtStr("nav",img.id)
		var thisNav=scope.gE(tgtSig)
		if(!thisNav)return false 
		thisNav.src=navIcon[1].src
		thisNav.setAttribute("state","1") 
		thisNav.setAttribute("class","nav")  
		thisNav.style.cursor="pointer"
		//t("img.id "+img.id) 
		return thisNav  
	case 2: // MIDDLE make it point 145
		 errObj="setNavState-0"
	 	tgtSig=getTgtStr("nav",img.id)//tgtSig.join("|")   
		var thisNav=scope.gE(tgtSig)
		if(!thisNav)return false 
		thisNav.src=navIcon[2].src 
		thisNav.setAttribute("state","2")   
		return thisNav 
	case 3: // was opening, open it (make(V)) make this one a (V), all others (>)
	//t("case 3")
		errObj="setNavState-3"
		//t(" pod.id "+img.id)// pod.id nde|nav||idx|0||aid|19666||treeid|150800
	 	tgtSig=getTgtStr("nav",img.id)
		var thisNav=scope.gE(tgtSig)
		if(!thisNav)return false 
		thisNav.src=navIcon[3].src
		//	t("   case 3 thisNav.src "+thisNav.src)
		thisNav.setAttribute("state","3")// "V"
		return thisNav 		   
	case 4:  // ghost   
	 	tgtSig=getTgtStr("nav",img.id)//tgtSig.join("|")   
		var thisNav=scope.gE(tgtSig)
		thisNav.src=navIcon[4].src 
		thisNav.setAttribute("state","4") 
}  
}
function tmScopeEvent(){
	scriptid=20450;errObj="tmScopeEvent"
thisPod=scopeEvent.src  // tall and wP arrow navigation
var pod=getPod(thisPod)// pod is the "nde||pod" element
if(!pod)return true
var pObj=pod.obj// obj is filled with atts and a ref to its pod.
if(!/sel|twn|nav|body/.test(pObj.nde)){delete scopeEvent.menu;return true}
t("tmScopeEvent") 
if(pObj.nde=="body"){ 
	pObj.tMname="pane"
	pObj.pid=DPOD.pid
	pObj.treeid=DPOD.treeid
	pObj.type=DPOD.type
}else{
	var pObj=pod.obj// obj is filled with atts and a ref to its pod.
	pObj.tMname="typeMenu"
}

scopeEvent.menu=pObj 
delete pObj.left
delete pObj.top
pObj.tgt="tM"
pObj.srcSig=pod.getAttribute("id")
//scopeEvent.menu={srcSig:srcSig,type:pObj.type,pid:pObj.pid,treeid:pObj.treeid,pname:pObj.pname}      
scopeEvent.menu.vehicle=n2send(pObj)      
var evt=scopeEvent.event
scopeEvent.menu.left=evt.clientX 
scopeEvent.menu.top=evt.clientY  
}
function tmiScopeEvent(){
	scriptid=18726;errObj="tmiScopeEvent"
try{ln=0 
var tp=scopeEvent.type    
var thisPod=scopeEvent.src // the menu item div
//alert(thisPod.parentNode.parentNode.parentNode.parentNode.parentNode.outerHTML)
//t("tmiScopeEvent")
//var treeid=menuDiv.getAttribute("treeid") // same
if(tp=="mouseup"&&scopeEvent.button==0){ // from scopeEventUp //u("selSCOPEEVENT mouseup")
	//alert(scopeEvent.menu.div.innerHTML)
	t("tmiScopeEvent tmiScopeEvent")
	var menu=scopeEvent.menu//scope.nO(menu,{})  
	var obj=xPODread(thisPod.id)
	xPODread(scope.gA(thisPod,"name"),obj)// write nde and pid to obj 
//	var sig=scopeEvent.menu.tmiSig=thisPod.sig same as above	
	var tmiObj=scope.nO(thisPod,{})  
	//alert("xPOD.pid "+ menuObj.pid)
	if((tmiObj.v&&tmiObj.v=="0")){ 
//		id="nde|tmi||idx|{$idx}|aid|{$aid}||treeid|{@treeid}" 
//		name="nde|tmi||pid|{@pid}" 
//return {nde:sig[0],pid:sig[1]}


		// from sel: scopeEvent.menu={srcSig: ,type: ,pid: ,treeid: }  
 		//scopeEvent.menu={srcSig:srcSig,type:pObj.type,pid:pObj.pid,treeid:pObj.treeid,pname:pObj.pname}  
		eStr="<scope><n2><tmi "+ 
		"pid='"+obj.pid+"' treeid='"+obj.treeid+"' >"+
		"<scriptPod pid='"+menu.pid+"' treeid='"+menu.treeid+"' "+
		"srcSig='"+menu.srcSig+"' type='"+menu.type+"'" +  
		"/>"+        
		"</tmi></n2></scope>"	    
		var sendXML=fleXML.newXML(eStr) //alert(sendXML.xml)  
		var scriptPod=sendXML.selectSingleNode("//scriptPod")
		sendXML.selectSingleNode("//scriptPod").setAttribute("pname",menu.pname)
		var vehicle=new SITEHTTP()     
		//t(sendXML.xml)
		vehicle.load(sendXML)       
	}else{   // \\\ LEGACY ("server" and "client")   
		scope.xPOD={pid:menu.pid,DPODID:menu.pid,treeid:menu.treeid,treeID:menu.treeid,itemID:scopeEvent.pid}
		scope.xPOD["_name"]=menu.pname
		var code=document.createElement("script");
		var rnd=""
		if(scope.debug)rnd="&rnd="+Math.random()
		var lStr="typeMenuItem.dpod?xPOD="+xPODwrite(scope.xPOD)+rnd
		t("lStr "+lStr)
		code.src=lStr   
		code.type="text/javascript" 	 
		for(e in scopeEvent.event){eventMemory[e]=scopeEvent.event[e]}

		document.getElementsByTagName("head")[0].appendChild(code) 
		document.body.removeChild(scopeEvent.menu.div) 
		delete scopeEvent.menu  
	}  
	return false     
}

}catch(e){showError("DPOD "+ln+"|||Object: "+errObj+"|||"+eStr+"\n\n"+e.message)}	  
}
function toggleScopeEvent(){
	scriptid=17299;errObj="toggleScopeEvent"
// bar gotElelmentById'd in onLoad 
if(bar0.lockEvent)return false   
var tp=scopeEvent.type   // mousemove - mouseup etc
	//u("toggleScopeEvent "+tp)
if(tp=="mouseup"){       
	var bTgl=bar0.toggle 
	openCloseTree()  
	scopeEvent.dragSrc=null 
	bar0.toggle.over=0  	  
}else if(tp=="mouseover"){    
	bar0.toggle.over=1	
}else if(tp=="mouseout"){ 
// 	hideBar()  // flashes
}      
return false  
}
function twnScopeEvent(){
	scriptid=18600;errObj="twnScopeEvent"
//t("scopeEventicon "+scopeEvent.type)   
ln=0
var tp=scopeEvent.type   
var thisPod=scopeEvent.src

//t("scopeEvent.type "+scopeEvent.type)  
if(tp=="mousedown"){errObj="twnScopeEvent-twnScopeEvent" // u("selSCOPEEVENT mousedown")
	selScopeEvent()
}else if(tp=="mouseover"){errObj="twnScopeEvent-twnScopeEvent";   ln=70
	selScopeEvent()
}else if(tp=="mouseout"){ errObj="twnScopeEvent-twnScopeEvent";   ln=80
	selScopeEvent()  
}else if(tp=="mousedragout"){    ln=80
	var sigStr=getTgtStr("twd",thisPod.id)//tgtSig.join("|")    
	var sigEl=document.getElementById(sigStr)  // pod
	sigEl.style.height=0//10   
}else if(tp=="mousedragover"){    ln=80 
	var evt=scopeEvent.event       
	var pod=getPod(thisPod);
	var pObj=pod.obj
	
	var sEd=scopeEvent.drag  
	var dE=sEd.dragged     
	var dragPod=getPod(sEd.src)//scopeEvent.drag.src.pod
	var dObj=dragPod.obj
	
	if(pObj.type!=dObj.type)return false 
	if(thisPod.getAttribute("mutable")=="0")return false  
	var eStr=getTgtStr("twd",thisPod.id)//tgtSig.join("|")    
	var twd=scope.gE(eStr)  // pod
	//t("twd "+twd)
 	twd.style.height=4//thisPod.style.height//10   
	twd.style.background="#99E"//thisPod.style.height//10   
}else if(tp=="mousemove"){ln=100 // u("selSCOPEEVENT mousedown")
	selScopeEvent()  
}else if(tp=="mouseup"){ // from scopeEventUp //u("selSCOPEEVENT mouseup")
	//u("twnScopeEvent mouseup")
	selScopeEvent()  
}else if(tp=="mousedrop"){   
	var sigStr=getTgtStr("twd",thisPod.id)//tgtSig.join("|")    
	var sigEl=document.getElementById(sigStr)  // pod
	sigEl.style.height=0//10  
	var evt=scopeEvent.event       
	var pod=getPod(thisPod);
	var pObj=pod.obj
	var sEd=scopeEvent.drag 
	var dE=sEd.dragged     
	if(dE[0])dE[0].parentNode.removeChild(dE[0]) 
	if(dE[1])dE[1].parentNode.removeChild(dE[1]) 

	var dragPod=getPod(sEd.src)//scopeEvent.drag.src.pod
	var oldTall=dragPod.parentNode//here before may cloneNode
	var dObj=dragPod.obj
	var dTgt=sEd.tgt  // <-  sEd.src
	
	if(thisPod){   // Note ** twn wont have a tgt
  		dTgt.style.visibility="visible"//exp
// 		setSheetStyle("pod",thisPod.pid,"backgroundColor",scope.overClr)//3=pid   //		u(" scopeEvent.drag "+scopeEvent.drag) 
		t(1147)
		var argObj={pid:dObj.pid,type:dObj.type,treeid:dObj.treeid}
		delete scopeEvent.drag// kill it asap, so it wont hang on errors 	
// copy TODO get props from server.. set all sub elment id's
		var ppid=dTgt.getAttribute("ppid") 
		if(!scopeEvent.ctrlKey){
 			if(oldTall.childNodes.length<2)setNavState({pid:parent},0)
			argObj.move=ppid
			sEd.tgt.parentNode.removeChild(sEd.tgt)
		}else{
			sEd.tgt.style.visibility="visible" 
			argObj.copy=ppid
		}
		// ppid is new parent. pid is dragged pod. copy/move is old parent
		argObj.ppid=pObj.ppid//parent of ref pod
		argObj.rid=pObj.treeid //		t("argObj.rid "+argObj.rid)
		var n=n10parent(argObj)// argObj: ppid,pid,type,treeid,[rid]
		t(1179)
		n10parenting(n)
		delete scopeEvent.drag //exp 
 		
/*		
argObj.rid=thisPod.sig[3]
sigStr=getTgtStr("pod",thisPod.sig)//tgtSig.join("|")    
var sigEl=document.getElementById(sigStr)  
argObj.parent=sigEl.getAttribute("parent")//parentNode 
alert("selCopEvt drop parent: "+argObj.parent)
*/
	}else{ 
		sEd.tgt.style.visibility="visible"
	} 
	delete scopeEvent.drag 
	scopeEvent.overClr="#EFEFEF"
}
return false 
}
function parentScopeEvent(){
	scriptid=20467;errObj="parentScopeEvent"

var evt=scopeEvent.event       
var pod=getPod(thisPod);
var pObj=pod.obj

var sEd=scopeEvent.drag  
var dragPod=getPod(sEd.src)//scopeEvent.drag.src.pod
var oldTall=dragPod.parentNode//here before may cloneNode

var dObj=dragPod.obj
var dTgt=sEd.tgt  // <-  sEd.src
//t("mousedrop B dE "+dE)	
/*
mission: 
put a pod inside another
-need at least a type and a treeid
-it would be nice to have a cloneable object

-I'll return the parented element

pod["icon","txt","sel","nav","twn"]
pod.obj['nde','idx','aid','treeid']
pod.obj['pid','type','parent','mutable','pname']
*/		
if(thisPod&&thisPod.pid){     
		eStr=getTgtStr("nav",pObj)
	var nav=scope.gE(eStr)
	//check opened
	t("nav.state "+nav.state)
	eStr=getTgtStr("tall",pObj)
	var tall=scope.gE(eStr)
		if(!nav.state==3||!tall){
		/// TODO make arrow
		writeArrow(pObj.pid)
		dTgt=dTgt.parentNode.removeChild(dTgt)//exp
		delete scopeEvent.drag 
		}else{
	//get handle on dragged 
		// get types before				
		var beforeType={}
		var cH=scope.structure.type.firstChild
		while(cH){
			var tName=scope.gA(cH,"pname")
			beforeType[tName]=1
			if(tName==dObj.type)break
			cH=cH.nextSibling
		}
		// now can loop through tall's children looking for a type that is not 'before'
		var afterPod=tall.firstChild
		while(afterPod){//ie's 1px img at bottome fucks me up (no "type")
			var tName=scope.gA(afterPod,"type")
			if(tName&&!beforeType[tName])break
			afterPod=afterPod.nextSibling
		}
		// afterPod is either null or the pod we are to insert before
		
		if(scopeEvent.ctrlKey){// copy TODO get props from server.. set all sub elment id's
			dragPod=dragPod.cloneNode(true)
		}
		if(afterPod){//found a pod to insert before
			t("tall.insertBefore 1")
			tall.insertBefore(dragPod,afterPod)//exp
			t("tall.insertBefore 2")
		}else{
			t("tall.appendChild ")
			tall.appendChild(dragPod)//exp
		}//exp
	}
	dTgt.style.visibility="visible"//exp
		setSheetStyle("pod",thisPod.pid,"backgroundColor",scope.overClr)//3=pid   //		u(" scopeEvent.drag "+scopeEvent.drag) 
	var argObj={pid:dObj.pid,type:dObj.type,treeid:dObj.treeid}
	delete scopeEvent.drag// kill it asap, so it wont hang on errors 	
	var parent=dTgt.getAttribute("parent")
// copy TODO get props from server.. set all sub elment id's

	if(!scopeEvent.ctrlKey){
		if(oldTall.childNodes.length<2)setNavState({pid:parent},0)
		argObj.move=parent  
	}else{
		sEd.tgt.style.visibility="visible" 
		argObj.copy=parent
	}
	argObj.ppid=thisPod.pid
	n10parent(argObj)// argObj: ppid,pid,type,treeid,[rid]
	delete scopeEvent.drag //exp
	if(scopeEvent.ctrlKey)alert("copied, but refresh to see the origional.. (working on it)")
}
function writeArrow(pid){
	var allNav=document.getElementsByName("nde|nav||pid|"+pid)  
	for(var x=0;x<allNav.length;x++){
		var thisNav=allNav[x]
		var state=thisNav.getAttribute("state")
		if(state=="0")setNavState(thisNav,1)// show it as occupied if it were empty
	}  
}

}
function deleteScopeEvent(){
	scriptid=20466;errObj="deleteScopeEvent"

}
function vehicleGet(){
	scriptid=17111;errObj="vehicleGet"
if(scope.vehicle)return scope.vehicle 
scope.vehicle=new SITEHTTP() 
eStr="<scope cid='"+DPOD.cid+"'/>"
scope.vehicle.doc=fleXML.newXML(eStr)   
return scope.vehicle  
}
function vehicleSend(){
	scriptid=17182;errObj="vehicleSend"
var v=scope.vehicle
v.load(v.doc)
//t("vehicleSend v.doc.xml"+v.doc.xml)
delete scope.vehicle 
window.status="loading pods.."  
return v 
}
