var dbx;function dbxManager(sid,useid,hide,buttontype)
{dbx=this;if(!/^[-_a-z0-9]+$/i.test(sid)){throw('Error from dbxManager:\n"'+sid+'" is an invalid session ID');return;}
this.kde=navigator.vendor=='KDE';this.safari=navigator.vendor=='Apple Computer, Inc.';this.chrome=navigator.vendor=='Google Inc.';this.opera=typeof window.opera!='undefined';this.msie=typeof document.uniqueID!='undefined';this.supported=(!(typeof document.getElementsByTagName=='undefined'||document.getElementsByTagName('*').length==0||(this.kde&&typeof window.sidebar=='undefined')||(this.opera&&parseFloat(navigator.userAgent.toLowerCase().split(/opera[\/ ]/)[1].split(' ')[0],10)<8)));if(!this.supported){return;}
this.etype=typeof document.addEventListener!='undefined'?'addEventListener':typeof document.attachEvent!='undefined'?'attachEvent':'none';if(this.etype=='none'){this.supported=false;return;}
this.eprefix=(this.etype=='attachEvent'?'on':'');this.sid=sid;this.cookiename='dbx-'+this.sid+'=';this.useid=typeof useid!='undefined'&&useid=='yes'?true:false;this.hide=typeof hide!='undefined'&&hide=='no'?false:true;this.buttontype=typeof buttontype!='undefined'&&buttontype=='button'?'button':'link';this.running=0;this.gnumbers={};this.max=0;this.rootcookie='';if(document.cookie&&document.cookie.indexOf(this.cookiename)!=-1)
{this.rootcookie=document.cookie.split(this.cookiename)[1].split(';')[0];this.rootcookie=this.rootcookie.replace(/\|/g,',').replace(/:/g,'=');if(this.rootcookie.indexOf('+')==-1)
{this.rootcookie=this.rootcookie.replace(/(,|$|&)/ig,'+$1').replace(/(\-\+)/g,'-');}}
this.savedata={};this.cookiestate=this.getCookieState();};dbxManager.prototype.setCookieState=function()
{var now=new Date();now.setTime(now.getTime()+(365*24*60*60*1000));this.compileStateString();this.cookiestring=this.state.replace(/,/g,'|').replace(/=/g,':').replace(/\+/g,'');if(typeof this.onstatechange=='undefined'||this.onstatechange())
{document.cookie=this.cookiename
+this.cookiestring
+'; expires='+now.toGMTString()
+'; path=/';}};dbxManager.prototype.getCookieState=function()
{this.cookiestate=null;if(document.cookie)
{if(document.cookie.indexOf(this.cookiename)!=-1)
{this.cookie=document.cookie.split(this.cookiename)[1].split(';')[0].split('&');for(var i in this.cookie)
{if(this.unwanted(this.cookie,i)){continue;}
this.cookie[i]=this.cookie[i].replace(/\|/g,',');this.cookie[i]=this.cookie[i].replace(/:/g,'=');if(this.cookie[i].indexOf('+')==-1)
{this.cookie[i]=this.cookie[i].replace(/(,|$|&)/ig,'+$1').replace(/(\-\+)/g,'-');}
this.cookie[i]=this.cookie[i].split('=');this.cookie[i][1]=this.cookie[i][1].split(',');}
this.cookiestate={};for(i in this.cookie)
{if(this.unwanted(this.cookie,i)){continue;}
this.cookiestate[this.cookie[i][0]]=this.cookie[i][1];}}}
return this.cookiestate;};dbxManager.prototype.compileStateString=function()
{var str='';for(var j in this.savedata)
{if(this.unwanted(this.savedata,j)){continue;}
str+=j+'='+this.savedata[j]+'&'}
this.state=str.replace(/^(.+)&$/,'$1');};dbxManager.prototype.createElement=function(tag)
{return typeof document.createElementNS!='undefined'?document.createElementNS('http://www.w3.org/1999/xhtml',tag):document.createElement(tag);};dbxManager.prototype.getTarget=function(e,pattern,node)
{if(typeof node!='undefined')
{var target=node;}
else
{target=typeof e.target!='undefined'?e.target:e.srcElement;}
while(!this.hasClass(target,pattern))
{target=target.parentNode;if(this.hasClass(target,'dbx\-group')&&!this.hasClass(target,pattern))
{return null;}}
return target;};dbxManager.prototype.getID=function(element)
{if(!element||!element.className){return null;}
else if(this.hasClass(element,'dbx\-dummy')){return'dummy';}
var cname=element.className.split('dbxid-');if(cname.length==1){return null;}
return cname[1].replace(/^([a-zA-Z0-9_]+).*$/,'$1');};dbxManager.prototype.getSiblingBox=function(root,sibling)
{var node=root[sibling];while(node&&!this.hasClass(node,'dbx\-box'))
{node=node[sibling];}
if(!node){node=root;}
return node;};dbxManager.prototype.getPosition=function(obj,center)
{var position={'left':obj.offsetLeft,'top':obj.offsetTop};var tmp=obj.offsetParent;while(tmp)
{position.left+=tmp.offsetLeft;position.top+=tmp.offsetTop;tmp=tmp.offsetParent;}
if(center)
{position.left+=obj.offsetWidth/2;position.top+=obj.offsetHeight/2;}
return position;};dbxManager.prototype.getViewportWidth=function()
{return typeof window.innerWidth!='undefined'?window.innerWidth:(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientWidth!='undefined'&&document.documentElement.clientWidth!=0)?document.documentElement.clientWidth:this.get('body')[0].clientWidth;};dbxManager.prototype.compileAndDispatchOnBeforeStateChange=function()
{var actions={};for(var i=0;i<arguments.length;i++)
{var data=arguments[i];this.dbxobject=data[1];this.group=data[2];this.gid=data[3];this.sourcebox=data[4];this.target=data[5];this.action=data[6];actions[data[0]]=this.onbeforestatechange();}
return actions;};dbxManager.prototype.compileAndDispatchOnAnimate=function(box,clone,caller,count,res)
{dbx.sourcebox=box;dbx.clonebox=clone;dbx.dbxobject=caller;dbx.group=caller.container;dbx.anicount=count-1;dbx.anilength=res-1;dbx.onanimate();};dbxManager.prototype.compileAndDispatchOnAfterAnimate=function(box,caller)
{dbx.sourcebox=box;dbx.dbxobject=caller;dbx.group=caller.container;dbx.onafteranimate();};dbxManager.prototype.unwanted=function(obj,i)
{return(!obj.hasOwnProperty(i)||typeof obj[i]=='undefined'||typeof obj[i]=='function'||i=='length');};dbxManager.prototype.addEvent=function(node,type,handler)
{node[this.etype](this.eprefix+type,handler,false);};dbxManager.prototype.trim=function(str)
{return str.replace(/^\s+|\s+$/g,"");};dbxManager.prototype.empty=function(data)
{if(typeof data=='string'&&this.trim(data)===''){return true;}
else if(typeof data=='object')
{if(data instanceof Array&&data.length==0){return true;}
else
{var n=0;for(var i in data)
{if(!data.hasOwnProperty(i)){continue;}
n++;}
if(n==0){return true;}}}
return false;};dbxManager.prototype.hasClass=function(element,pattern)
{return(element.className&&new RegExp(pattern+'($|[ ])').test(element.className));};dbxManager.prototype.removeClass=function(element,pattern)
{if(typeof flags=='undefined')
{flags='';}
element.className=element.className.replace(new RegExp(pattern,'g'),'');if(!/\S/.test(element.className))
{element.className='';}
return element;};dbxManager.prototype.get=function(find,context)
{var nodes=[];if(/(previous|next|first|last)(Sibling|Child)/.test(find))
{context=context[find];switch(find)
{case'nextSibling':case'previousSibling':while(context&&context.nodeType!=1)
{context=context[find];}
break;}
return context;}
else if(find.indexOf('#')!=-1)
{return document.getElementById(find.split('#')[1]);}
else
{if(typeof context=='undefined'){context=document;}
return context.getElementsByTagName(find);}};function dbxGroup()
{if(!dbx.supported){return;}
var args=arguments;if(!/^[-_a-z0-9]+$/i.test(args[0])||args[0]=='deleted'){throw('Error from dbxGroup:\n"'+args[0]+'" is an invalid container ID');return;}
this.container=dbx.get('#'+args[0]);if(!dbx.hasClass(this.container,'dbx\-group')){throw('Error from dbxGroup:\nGroup container (the element with id="'+args[0]+'") must contain the class name "dbx-group"');return;}
if(!this.container){return;}
this.gid=args[0];this.cacheDynamicClasses();if(typeof dbx.onbeforestatechange!='undefined')
{var actions=dbx.compileAndDispatchOnBeforeStateChange(['proceed',this,this.container,this.gid,null,null,'load']);if(!actions.proceed)
{this.container=null;return;}}
this.orientation=/^(freeform|confirm|horizontal|vertical|insert(\-swap|\-insert)?)/.test(args[1])?args[1]:'freeform';if(this.orientation=='insert'){this.orientation='freeform-insert';}
this.exchange='swap';if(/(freeform|confirm)\-insert/.test(this.orientation))
{this.exchange='insert';}
this.orientation=this.orientation.split('-')[0];this.confirm=false;if(this.orientation=='confirm')
{this.confirm=true;this.orientation='freeform';}
this.threshold=parseInt(args[2],10);if(isNaN(this.threshold)){this.threshold=0;}
this.restrict=args[3]=='yes'?this.orientation:'';this.resolution=parseInt(args[4],10);if(isNaN(this.resolution)){this.resolution=0;}
if(this.resolution==0){this.resolution=1;}
this.toggles=args[5]=='yes';this.defopen=args[6]!='closed';this.vocab={'open':args[7],'close':args[8],'move':args[9],'toggle':args[10],'kmove':args[11],'ktoggle':args[12],'syntax':args[13],'kyes':(typeof args[14]!='undefined'?args[14]:''),'kno':(typeof args[15]!='undefined'?args[15]:'')};var self=this;this.dragok=false;this.box=null;this.dialog=null;this.buffer=null;this.last={'box':null,'direction':null};this.child={'first':null,'last':null};this.keytimer=null;this.currentdir=null;this.rules={'global':{'pointer':0,'rule':[],'actual':[]}};this.rulekey='';this.ruledir='';this.container.style.position='relative';this.container.style.display='block';this.initBoxes(true,true);this.keydown=false;this.mouseisdown=false;dbx.addEvent(document,'mouseout',function(e)
{if(typeof e.target=='undefined'){e.relatedTarget=e.toElement;}
if(e.relatedTarget==null)
{self.mouseup(e);}});dbx.addEvent(document,'mousemove',function(e)
{self.hover(e);self.mousemove(e);return!self.dragok;});dbx.addEvent(document,'mousedown',function(e)
{self.mouseisdown=true;});dbx.addEvent(document,'mouseup',function(e)
{self.mouseisdown=false;self.mouseup(e);});dbx.addEvent(document,'keydown',function(e)
{self.keydown=true;if(self.dialog&&!/^((3[7-9])|40|13|(1[6-8]))$/.test(e.keyCode))
{self.clearDialog();}});dbx.addEvent(document,'keyup',function()
{self.keydown=false;self.currentdir=null;self.removeActiveClasses('dbx\-box\-active');});};dbxGroup.prototype.initBoxes=function(recover,getspare)
{this.boxes={'length':0};this.handles=[];this.buttons={};this.order=[];var self=this;this.eles=dbx.get('*',this.container);for(var i=0;i<this.eles.length;i++)
{var dbxid=this.boxes.length;if(dbx.hasClass(this.eles[i],'dbx\-box')&&!dbx.hasClass(this.eles[i],'dbx\-(dummy|clone)'))
{if(dbx.useid)
{if(/^[a-z][a-z0-9]*$/i.test(this.eles[i].id)&&!/^(length|dummy)$/.test(this.eles[i].id))
{dbxid=this.eles[i].id;}
else if(this.eles[i].id!='')
{throw('Error from dbxGroup:\n"'+this.eles[i].id+'" is an invalid box ID');return;}}
this.boxes[dbxid]=this.eles[i];this.boxes.length++;this.order.push(dbxid+'+');if(typeof this.eles[i].hashandlers=='undefined')
{dbx.addEvent(this.eles[i],'mousedown',function(e)
{if(!e){e=window.event;}
self.mousedown(e,dbx.getTarget(e,'dbx\-box'));});this.eles[i].hashandlers=true;}
if(typeof this.eles[i].processed!='undefined'){continue;}
this.eles[i].style.position='relative';this.eles[i].style.display='block';this.eles[i].className+=' dbx-box-open';this.eles[i].className+=' dbxid-'+dbxid;this.eles[i].processed=true;}
if(dbx.hasClass(this.eles[i],'dbx\-handle'))
{this.handles.push(this.eles[i]);var parentbox=dbx.getTarget(null,'dbx\-box',this.eles[i]);if(this.toggles)
{dbxid=dbx.getID(parentbox);this.buttons[dbxid]=this.addToggleBehavior(this.eles[i]);}
else if(typeof this.eles[i].hashandlers=='undefined')
{var handle=this.eles[i];handle.hasfocus=dbx.opera||dbx.safari?null:false;if(!dbx.hasClass(parentbox,'dbx\-nograb'))
{dbx.addEvent(handle,'key'+(dbx.msie||dbx.safari||dbx.chrome?'down':'press'),function(e)
{if(!e){e=window.event;}
return self.keypress(e,dbx.getTarget(e,'dbx\-handle'));});dbx.addEvent(handle,'click',function(e)
{if(self.dialog)
{self.click(e,dbx.getTarget(e,'dbx\-handle'));if(typeof e.preventDefault!='undefined'){e.preventDefault();}
else{return false;}}});}
dbx.addEvent(handle,'focus',function(e)
{if(!e){e=window.event;}
var parentbox=dbx.getTarget(e,'dbx\-box');if(self.keydown||(dbx.kde&&!self.mouseisdown))
{parentbox.className+=' dbx-box-focus';}
var handle=dbx.getTarget(e,'dbx\-handle');var tooltiptext=self.vocab.kmove;if(dbx.hasClass(parentbox,'dbx\-nograb'))
{tooltiptext=handle.getAttribute('oldtitle');}
else if(!dbx.empty(handle.getAttribute('oldtitle')))
{tooltiptext=self.vocab.syntax.replace(/%mytitle[%]?/,handle.getAttribute('oldtitle')).replace(/%dbxtitle[%]?/,tooltiptext)}
if(!dbx.empty(tooltiptext))
{self.createTooltip(tooltiptext,handle,(self.keydown||(dbx.kde&&!self.mouseisdown)));}
if(handle.hasfocus!==null){handle.hasfocus=true;}});dbx.addEvent(handle,'blur',function(e)
{if(!e){e=window.event;}
dbx.removeClass(dbx.getTarget(e,'dbx\-box'),'dbx\-box\-focus');self.removeTooltip();var handle=dbx.getTarget(e,'dbx\-handle');if(handle.hasfocus!==null){handle.hasfocus=false;}});this.eles[i].hashandlers=true;}
if(typeof this.eles[i].processed!='undefined'){continue;}
var oldtitle=this.eles[i].getAttribute('title');if(oldtitle){this.eles[i].setAttribute('oldtitle',oldtitle);}
this.eles[i].style.position='relative';this.eles[i].style.display='block';if(!dbx.hasClass(parentbox,'dbx\-nograb'))
{this.eles[i].className+=' dbx-handle-cursor';this.eles[i].setAttribute('title',dbx.empty(this.eles[i].getAttribute('title'))?this.vocab.move:this.vocab.syntax.replace(/%mytitle[%]?/,this.eles[i].title).replace(/%dbxtitle[%]?/,this.vocab.move));}
this.eles[i].processed=true;}
if(dbx.msie&&dbx.hasClass(this.eles[i],'dbx\-(content|box)'))
{this.eles[i].runtimeStyle.zoom='1.0';}}
this.updateChildClasses();dbx.savedata[this.gid]=this.order.join(',');var dummy=this.container.appendChild(dbx.createElement('span'));dummy.className='dbx-box dbx-dummy';dummy.style.display='block';dummy.style.width='0';dummy.style.height='0';dummy.style.overflow='hidden';dummy.className+=' dbx-offdummy';dbxid=this.boxes.length;if(typeof dbx.gnumbers[this.gid]!='undefined')
{dbxid+='_'+dbx.gnumbers[this.gid];}
this.boxes[dbxid]=dummy;this.boxes.length++;if(!recover){return;}
if(dbx.cookiestate&&typeof dbx.cookiestate[this.gid]!='undefined')
{var num=dbx.cookiestate[this.gid].length;for(i=0;i<num;i++)
{var index=dbx.cookiestate[this.gid][i].replace(/[\-\+]/g,'');if(typeof this.boxes[index]!='undefined'&&this.boxes[index]!=dummy)
{this.container.insertBefore(this.boxes[index],dummy);if(this.toggles&&/\-$/.test(dbx.cookiestate[this.gid][i]))
{if(typeof this.buttons[index]!='undefined')
{this.toggleBoxState(this.buttons[index],false,false,true);}}}}
this.regenerateBoxOrder();}
else if(!this.defopen&&this.toggles)
{for(i in this.buttons)
{if(dbx.unwanted(this.buttons,i)){continue;}
this.toggleBoxState(this.buttons[i],true,false,null);}}};dbxGroup.prototype.cacheDynamicClasses=function()
{var eles=[],classes=['dbx-tooltip','dbx-dragclone','dbx-dialog'];for(var i=0;i<classes.length;i++)
{eles[i]=dbx.createElement('div');eles[i].className='dbx-clone '+classes[i];this.container.appendChild(eles[i]);}
setTimeout(function()
{for(var i=0;i<eles.length;i++)
{if(eles[i].parentNode)
{eles[i].parentNode.removeChild(eles[i]);}}},100);};dbxGroup.prototype.addToggleBehavior=function()
{var self=this;var existing=dbx.get((dbx.buttontype=='link'?'a':'button'),arguments[0]);for(var i=0;i<existing.length;i++)
{if(dbx.hasClass(existing[i],'dbx\-toggle'))
{var button=existing[i];break;}}
if(typeof button=='undefined')
{if(dbx.buttontype=='link')
{button=arguments[0].appendChild(dbx.createElement('a'));button.appendChild(document.createTextNode('\u00a0'));button.href='javascript:void(null)';}
else
{button=arguments[0].appendChild(dbx.createElement('button'));}
button.className='dbx-toggle dbx-toggle-open';button.setAttribute('title',this.vocab.toggle.replace(/%toggle[%]?/,this.vocab.close));}
button.style.cursor='pointer';button.hasfocus=dbx.opera||dbx.safari||dbx.chrome?null:false;this.tooltip=null;if(typeof button.hashandlers=='undefined')
{button.onclick=function(e)
{self.click(e,this);return false;};button['onkey'+(dbx.msie||dbx.safari||dbx.chrome?'down':'press')]=function(e)
{if(!e){e=window.event;}
return self.keypress(e,this);};button.onfocus=function()
{for(var i in self.buttons)
{if(dbx.unwanted(self.buttons,i)){continue;}
self.buttons[i]=dbx.removeClass(self.buttons[i],'(dbx\-toggle\-hilite\-)(open|closed)');}
var isopen=dbx.hasClass(this,'dbx\-toggle\-open');this.className+=' dbx-toggle-hilite-'+(isopen?'open':'closed');if(self.keydown||(dbx.kde&&!self.mouseisdown))
{dbx.getTarget(null,'dbx\-box',this).className+=' dbx-box-focus';}
var tooltiptext=(!dbx.hasClass(dbx.getTarget(null,'dbx\-box',this),'dbx\-nograb')?self.vocab.kmove:'')
+self.vocab.ktoggle.replace(/%toggle[%]?/,(isopen?self.vocab.close:self.vocab.open));var handle=dbx.getTarget(null,'dbx\-handle',this);if(!dbx.empty(handle.getAttribute('oldtitle')))
{tooltiptext=self.vocab.syntax.replace(/%mytitle[%]?/,handle.getAttribute('oldtitle')).replace(/%dbxtitle[%]?/,tooltiptext)}
self.createTooltip(tooltiptext,this,(self.keydown||(dbx.kde&&!self.mouseisdown)));this.isactive=true;if(this.hasfocus!==null){this.hasfocus=true;}};button.onblur=function()
{button=dbx.removeClass(button,'(dbx\-toggle\-hilite\-)(open|closed)');dbx.removeClass(dbx.getTarget(null,'dbx\-box',this),'dbx\-box\-focus');self.removeTooltip();if(this.hasfocus!==null){this.hasfocus=false;}};button.hashandlers=true;}
return button;};dbxGroup.prototype.toggleBoxState=function(button,regen,manual,forcestate)
{var isopen=dbx.hasClass(button,'dbx\-toggle\-open');if(forcestate!==null){isopen=forcestate;}
var parent=dbx.getTarget(null,'dbx\-box',button);dbx.sourcebox=parent;dbx.toggle=button;dbx.dbxobject=this;if(typeof dbx.container=='undefined')
{dbx.group=dbx.getTarget(null,'dbx\-group',parent);}
else{dbx.group=dbx.container;}
if(typeof dbx.onbeforestatechange!='undefined')
{var actions=dbx.compileAndDispatchOnBeforeStateChange(['proceed',this,this.container,this.gid,parent,button,(isopen?'close':'open')]);if(!actions.proceed){return;}}
if
(manual==false||(!isopen&&(typeof dbx.onboxopen=='undefined'||dbx.onboxopen()))||(isopen&&(typeof dbx.onboxclose=='undefined'||dbx.onboxclose())))
{button.className='dbx-toggle dbx-toggle-'+(isopen?'closed':'open');button.title=this.vocab.toggle.replace(/%toggle[%]?/,isopen?this.vocab.open:this.vocab.close);if(manual&&typeof button.isactive!='undefined')
{button.className+=' dbx-toggle-hilite-'+(isopen?'closed':'open')}
parent.className=parent.className.replace(/[ ](dbx-box-)(open|closed)/,' $1'+(isopen?'closed':'open'));if(regen){this.regenerateBoxOrder();}}};dbxGroup.prototype.moveBoxByKeyboard=function(e,anchor,parent,direction,confirm,manual)
{dbx.dbxobject=this;dbx.group=this.container;dbx.gid=this.gid;dbx.sourcebox=parent;dbx.clonebox=null;dbx.event=e;var index='-';this.positive=/[se]/i.test(direction);if(/^(Sw)$/.test(direction)){this.positive=false;}
this.removeActiveClasses('dbx\-box\-(target|active)');var clonepoint={'x':parent.offsetLeft,'y':parent.offsetTop};var differences=[];var boxes=this.boxes;for(var i in boxes)
{if(dbx.unwanted(boxes,i)||dbx.hasClass(boxes[i],'dbx\-dummy')){continue;}
var boxpoint={'x':boxes[i].offsetLeft,'y':boxes[i].offsetTop};differences.push([i,boxpoint.x-clonepoint.x,boxpoint.y-clonepoint.y]);if(parent==boxes[i]){index=i;}}
var splitdiffs={'positive':[],'negative':[]};var n=/[ew]/i.test(direction)?1:2;for(i=0;i<differences.length;i++)
{if(differences[i][0]==index){continue;}
if(differences[i][n]>=0)
{splitdiffs.positive.push(differences[i]);}
else
{splitdiffs.negative.push(differences[i]);}}
var ary=this.positive?splitdiffs.positive:splitdiffs.negative;ary.sort(function(a,b){return Math.abs(a[n])-Math.abs(b[n]);});for(i=0;i<ary.length;i++)
{if(ary[i][n]==0)
{ary.splice(i--,1);}}
if(direction.length>1)
{for(i=0;i<ary.length;i++)
{if((/[ew]/i.test(direction)&&ary[i][2]==0)||(/[ns]/i.test(direction)&&ary[i][1]==0)||(/(N[ew])/.test(direction)&&ary[i][2]>0)||(/(S[ew])/.test(direction)&&ary[i][2]<0))
{ary.splice(i--,1);}}}
for(i=0;i<ary.length;i++)
{if(this.positive)
{if(i>0&&Math.abs(ary[i][n])!=Math.abs(ary[0][n]))
{ary.splice(i--,1);}}
else
{if(i>0&&ary[i][n]!=ary[0][n])
{ary.splice(i--,1);}}}
n=n==1?2:1;ary.sort(function(a,b){return Math.abs(a[n])-Math.abs(b[n]);});if(ary.length==0)
{index='-';}
else
{index=ary[0][0];}
var box=dbx.getTarget(null,'dbx\-box',anchor);if(index=='-')
{return false;}
var targetbox=boxes[index];if(this.exchange=='insert'&&this.confirm==false&&this.positive==true)
{targetbox=dbx.get('nextSibling',targetbox);if(!targetbox){targetbox=boxes[index];}}
if(typeof dbx.onboxdrag=='undefined'||dbx.onboxdrag())
{if(box!=targetbox&&boxes==this.boxes)
{var origpoint={'x':box.offsetLeft+(box.offsetWidth/2),'y':box.offsetTop+(box.offsetHeight/2)};var boxpoint={'x':targetbox.offsetLeft+(targetbox.offsetWidth/2),'y':targetbox.offsetTop+(targetbox.offsetHeight/2)};var testblocks=this.getBlocksDifference(origpoint,boxpoint,box);var testcompass=this.getCompassDirection(origpoint,boxpoint);if(this.functionExists('_testRules')&&!this._testRules(testcompass,testblocks,box,null))
{if(confirm||this.dialog)
{this.updateDialog(targetbox,' dbx-dialog-no',null,null,'keyboard');if(this.vocab.kno!='')
{this.createTooltip(this.vocab.kno,box,true);}}
if(manual){this.refocus(anchor);}
return false;}}
if(box!=targetbox&&!dbx.hasClass(targetbox,'dbx\-(dialog|dummy)'))
{targetbox.className+=' dbx-box-target';}
if(confirm||this.dialog)
{var diffs=null,group=null;if(boxes!=this.boxes)
{group=this.dialog.group;var groupcontainer=dbx.getPosition(group.container,false);var callcontainer=dbx.getPosition(this.container,false);var diffs={'x':groupcontainer.left-callcontainer.left,'y':groupcontainer.top-callcontainer.top};}
this.updateDialog(targetbox,' dbx-dialog-yes',diffs,group,'keyboard');if(this.vocab.kyes!='')
{this.createTooltip(this.vocab.kyes,box,true);}
if(manual){this.refocus(anchor);}
return false;}
if(this.exchange=='swap')
{return this.swapTwoBoxes(parent,targetbox,anchor,manual,this.positive);}
else
{return this.insertTwoBoxes(parent,targetbox,anchor,manual,direction);}}
return false;};dbxGroup.prototype.insertTwoBoxes=function(original,selected,anchor,manual,positive)
{if(typeof dbx.onbeforestatechange!='undefined')
{var actions=dbx.compileAndDispatchOnBeforeStateChange(['proceed',this,this.container,this.gid,original,selected,'insert']);if(!actions.proceed){return false;}}
if(this.functionExists('_updateRulePointer')){this._updateRulePointer();}
var add=false,pointer=0,theboxes=[],visiboxes=[];for(var i in this.boxes)
{if(dbx.unwanted(this.boxes,i)){continue;}
theboxes.push(this.boxes[i]);}
for(i=0;i<theboxes.length;i++)
{if(theboxes[i]==original){continue;}
visiboxes.push(theboxes[i]);}
var visiposes=[];for(i=0;i<visiboxes.length;i++)
{visiposes.push({'x':visiboxes[i].offsetLeft,'y':visiboxes[i].offsetTop});}
var originalpos={'x':original.offsetLeft,'y':original.offsetTop};original.style.visibility='hidden';selected=dbx.removeClass(selected,'dbx\-box\-target');selected.parentNode.insertBefore(original,selected);if(typeof visiboxes!='undefined'&&visiboxes.length>0)
{for(i=0;i<visiboxes.length;i++)
{new dbxAnimator(this,visiboxes[i],visiposes[i],this.resolution,false,null,true);}}
new dbxAnimator(this,original,originalpos,this.resolution,true,anchor,manual);this.regenerateBoxOrder();return true;};dbxGroup.prototype.swapTwoBoxes=function(original,selected,anchor,manual,positive)
{if(typeof dbx.onbeforestatechange!='undefined')
{var actions=dbx.compileAndDispatchOnBeforeStateChange(['proceed',this,this.container,this.gid,original,(this.orientation!='freeform'&&positive?dbx.getSiblingBox(selected,'nextSibling'):selected),(this.orientation=='freeform'?'swap':'move')]);if(!actions.proceed){return false;}}
if(this.functionExists('_updateRulePointer')){this._updateRulePointer();}
var selectedpos={'x':selected.offsetLeft,'y':selected.offsetTop};var originalpos={'x':original.offsetLeft,'y':original.offsetTop};original.style.visibility='hidden';selected.style.visibility='hidden';selected=dbx.removeClass(selected,'dbx\-box\-target');var next=selected.nextSibling;if(next==original)
{selected.parentNode.insertBefore(original,selected);}
else
{original.parentNode.insertBefore(selected,original);next.parentNode.insertBefore(original,next);}
new dbxAnimator(this,selected,selectedpos,this.resolution,true,null,false);new dbxAnimator(this,original,originalpos,this.resolution,true,anchor,manual);this.regenerateBoxOrder();return true;};dbxGroup.prototype.createTooltip=function(text,anchor,okay,cname)
{if(okay)
{this.tooltip=this.container.appendChild(dbx.createElement('span'));this.tooltip.style.visibility='hidden';this.tooltip.className='dbx-tooltip';this.tooltip.appendChild(document.createTextNode(text));var parent=dbx.getTarget(null,'dbx\-box',anchor);this.tooltip.style.left=parseInt(parent.offsetLeft,10)+'px';this.tooltip.style.top=parseInt(parent.offsetTop,10)+'px';var position=dbx.getPosition(this.tooltip);var viewsize=dbx.getViewportWidth();var tipsize=this.tooltip.offsetWidth;if(position.left+tipsize>viewsize)
{this.tooltip.style.left=parseInt(parent.offsetLeft-(position.left+tipsize-viewsize),10)+'px';}
var tooltip=this.tooltip;window.setTimeout(function()
{if(tooltip!=null){tooltip.style.visibility='visible';}},400);}};dbxGroup.prototype.removeTooltip=function()
{if(this.tooltip)
{this.tooltip.parentNode.removeChild(this.tooltip);this.tooltip=null;}};dbxGroup.prototype.hover=function(e)
{if(!this.keydown||(dbx.kde&&!this.mouseisdown))
{var found=false,target=typeof e.target!='undefined'?e.target:e.srcElement;for(var i=0;i<this.handles.length;i++)
{if(this.contains(this.handles[i],target))
{found=true;var parentbox=dbx.getTarget(null,'dbx\-box',this.handles[i]);if(!dbx.hasClass(parentbox,'dbx\-box\-hover'))
{if(typeof this.hoverbox!='undefined')
{this.hoverbox=dbx.removeClass(this.hoverbox,'dbx\-box\-hover');}
this.hoverbox=parentbox;parentbox.className+=' dbx-box-hover';}
break;}}
if(!found)
{if(typeof this.hoverbox!='undefined')
{this.hoverbox=dbx.removeClass(this.hoverbox,'dbx\-box\-hover');delete this.hoverbox;}}}};dbxGroup.prototype.refresh=function(recover)
{if(!dbx.supported){return;}
if(typeof recover=='undefined'){recover=false;}
this.eles=dbx.get('*',this.container);for(var i=0;i<this.eles.length;i++)
{if(dbx.hasClass(this.eles[i],'dbx\-dummy'))
{this.container.removeChild(this.eles[i]);}}
this.initBoxes(recover,true);this.regenerateBoxOrder();};dbxGroup.prototype.functionExists=function(cname)
{return typeof this[cname]=='function';};dbxGroup.prototype.mousedown=function(e,box,handle,override)
{var node=typeof handle!='undefined'?handle:typeof e.target!='undefined'?e.target:e.srcElement;if(node.nodeName=='#text'){node=node.parentNode;}
if(!dbx.hasClass(node,'dbx\-(toggle|box|group)'))
{while(!dbx.hasClass(node,'dbx\-(handle|box|group)'))
{node=node.parentNode;}}
if(dbx.hasClass(node,'dbx\-(toggle|handle)'))
{box.className+=' dbx-box-active';}
if(!dbx.hasClass(box,'dbx\-nograb')&&dbx.hasClass(node,'dbx\-handle'))
{this.clearDialog();box=dbx.removeClass(box,'dbx\-box\-focus');this.removeTooltip();this.released=false;this.initial={'x':e.clientX,'y':e.clientY};if(typeof override!='undefined')
{this.initial.x+=(0-override.x);this.initial.y+=(0-override.y);}
this.current={'x':0,'y':0};this.createCloneBox(box,'mouse');if(typeof e.preventDefault!='undefined'){e.preventDefault();}
if(typeof document.onselectstart!='undefined')
{document.onselectstart=function(){return false;}}}};dbxGroup.prototype.mousemove=function(e)
{if(!this.dragok&&(this.dialog&&this.dialog.source!='keyboard'))
{this.clearDialog();this.removeTooltip();this.removeActiveClasses('dbx\-box\-(target|active)');}
if(this.dragok&&this.box)
{this.direction=e.clientY==this.current.y?(e.clientX>this.current.x?'right':'left'):(e.clientY>this.current.y?'down':'up');this.current={'x':e.clientX,'y':e.clientY};var overall={'x':this.current.x-this.initial.x,'y':this.current.y-this.initial.y};if
(((overall.x>=0&&overall.x<=this.threshold)||(overall.x<=0&&overall.x>=0-this.threshold))&&((overall.y>=0&&overall.y<=this.threshold)||(overall.y<=0&&overall.y>=0-this.threshold)))
{this.current.x-=overall.x;this.current.y-=overall.y;}
if(this.released||overall.x>this.threshold||overall.x<(0-this.threshold)||overall.y>this.threshold||overall.y<(0-this.threshold))
{dbx.dbxobject=this;dbx.group=this.container;dbx.sourcebox=this.box;dbx.clonebox=this.boxclone;dbx.event=e;if(typeof dbx.onboxdrag=='undefined'||dbx.onboxdrag())
{this.released=true;if(this.restrict!='vertical'||this.orientation=='horizontal')
{this.boxclone.style.left=parseInt(this.current.x-this.difference.x,10)+'px';}
if(this.restrict!='horizontal'||this.orientation=='vertical')
{this.boxclone.style.top=parseInt(this.current.y-this.difference.y,10)+'px';}
if(this.restrict=='freeform')
{var clonepoint={'x':this.boxclone.offsetLeft+(this.boxclone.offsetWidth/2),'y':this.boxclone.offsetTop+(this.boxclone.offsetHeight/2)};var proportion=0.2;var hypotonuse=Math.round(Math.sqrt(Math.pow(this.boxclone.offsetWidth,2)+Math.pow(this.boxclone.offsetHeight,2)));if(clonepoint.x<0||clonepoint.x>(this.container.offsetWidth-proportion*hypotonuse)||clonepoint.y<0||clonepoint.y>(this.container.offsetHeight-proportion*hypotonuse))
{this.mouseup(e);return true;}}
this.moveBoxByMouse(this.current.x,this.current.y,this.confirm);if(typeof e.preventDefault!='undefined'){e.preventDefault();}}}}
return true;};dbxGroup.prototype.mouseup=function(e)
{this.removeActiveClasses('dbx\-box\-(target|active)');if(this.box)
{if(this.dialog)
{if(typeof this.dialog.group!='undefined'&&typeof this.boxes[dbx.getID(this.dialog)]=='undefined')
{var xgroup=this.dialog.group;var xinsert=xgroup.boxes[dbx.getID(this.dialog)];}
this.clearDialog();if(typeof xgroup!='undefined')
{dbx.mousemove(e,this,xgroup,xinsert);return;}
this.moveBoxByMouse(e.clientX,e.clientY,false);}
this.removeCloneBox();this.regenerateBoxOrder();if(typeof document.onselectstart!='undefined')
{document.onselectstart=function(){return true;}}}
this.clearDialog();this.dragok=false;};dbxGroup.prototype.click=function(e,anchor)
{if(anchor.hasfocus===true||anchor.hasfocus===null)
{if(this.dialog)
{var box=dbx.getTarget(null,'dbx\-box',anchor);var dbxid=dbx.getID(this.dialog);var targetbox=this.boxes[dbxid];if(this.exchange=='insert'&&this.confirm==true&&this.positive==true)
{targetbox=dbx.get('nextSibling',targetbox);if(!targetbox){targetbox=this.boxes[dbxid];}}
var confirmed=dbx.hasClass(this.dialog,'dbx\-dialog\-yes');this.clearDialog();this.removeTooltip();if(typeof targetbox!='undefined'&&targetbox!=box&&confirmed==true)
{if(this.exchange=='swap')
{this.swapTwoBoxes(box,targetbox,anchor,true,false);}
else
{return this.insertTwoBoxes(box,targetbox,anchor,true,false);}}
return false;}
this.removeTooltip();this.toggleBoxState(anchor,true,true,null);}
return false;};dbxGroup.prototype.keypress=function(e,anchor)
{var parentbox=dbx.getTarget(null,'dbx\-box',anchor);if(/^(3[7-9])|(40)$/.test(e.keyCode.toString()))
{if(dbx.opera&&e.shiftKey){return true;}
if(!dbx.hasClass(dbx.getTarget(null,'dbx\-box',anchor),'dbx\-nograb'))
{parentbox.className+=' dbx-box-active';this.removeTooltip();var direction='';switch(e.keyCode)
{case 37:direction='W';break;case 38:direction='N';break;case 39:direction='E';break;case 40:direction='S';break;}
var wait=75;if(this.currentdir&&this.currentdir!=direction)
{direction+=this.currentdir.toLowerCase();switch(direction)
{case'En':direction='Ne';break;case'Es':direction='Se';break;case'Wn':direction='Nw';break;case'Ws':direction='Sw';break;}
clearTimeout(this.keytimer);wait=0;}
else
{this.currentdir=direction;}
var self=this;this.keytimer=setTimeout(function()
{if(!/^(Ns|Sn|Ew|Ww)$/.test(direction))
{if(self.dialog)
{var dbxid=dbx.getID(self.dialog);var box=self.boxes[dbxid];}
else
{box=dbx.getTarget(null,'dbx\-box',anchor);}
self.moveBoxByKeyboard(e,anchor,box,direction,self.confirm,true);}},wait);if(typeof e.preventDefault!='undefined'){e.preventDefault();}
else{return false;}
typeof e.stopPropagation!='undefined'?e.stopPropagation():e.cancelBubble=true;this.keydown=false;}}
else if(dbx.kde&&e.target==anchor&&(e.keyCode==13||e.keyCode==32))
{this.click(e,anchor);e.preventDefault();}
else
{this.removeActiveClasses('dbx\-box\-(target|active)');}
if(e.keyCode==13||e.keyCode==32)
{parentbox.className+=' dbx-box-active';}
return true;};dbxGroup.prototype.regenerateBoxOrder=function()
{this.order=[];var len=this.eles.length;for(var j=0;j<len;j++)
{if(dbx.hasClass(this.eles[j],'dbx\-box')&&!dbx.hasClass(this.eles[j],'dbx\-(clone|dummy)'))
{this.order.push(dbx.getID(this.eles[j])+(dbx.hasClass(this.eles[j],'dbx\-box\-open')?'+':'-'));}}
dbx.savedata[this.gid]=this.order.join(',');dbx.dbxobject=this;dbx.group=this.container;dbx.gid=this.gid;this.updateChildClasses();dbx.setCookieState();};dbxGroup.prototype.updateChildClasses=function()
{var boxids=[],eles=dbx.get('*',this.container);for(var i=0;i<eles.length;i++)
{if(dbx.hasClass(eles[i],'dbx\-box')&&!dbx.hasClass(eles[i],'dbx\-(dummy|clone)'))
{boxids.push(dbx.getID(eles[i]));}}
var children={'first':boxids[0],'last':boxids[boxids.length-1]};for(var i in children)
{if(dbx.unwanted(children,i)){continue;}
var box=this.boxes[children[i]];if(this.child[i]!=null)
{this.child[i]=dbx.removeClass(this.child[i],i+'\-child');if(this.boxclone&&dbx.getID(this.boxclone)==dbx.getID(this.child[i]))
{this.boxclone=dbx.removeClass(this.boxclone,i+'\-child');}
this.child[i]=null;}
box.className+=' '+i+'-child';this.child[i]=box;if(this.boxclone&&dbx.getID(this.boxclone)==dbx.getID(this.child[i]))
{this.boxclone.className+=' '+i+'-child';}}};dbxGroup.prototype.createClone=function(box,zorder,position,cname,children,source)
{var clone=this.container.appendChild(box.cloneNode(children));clone.source=source;clone.className+=' dbx-clone';if(cname!='')
{clone.className+=' '+cname;}
clone=dbx.removeClass(clone,'dbx\-box\-focus');clone.style.position='absolute';clone.style.visibility='hidden';clone.style.zIndex=zorder;clone.style.left=parseInt(position.x,10)+'px';clone.style.top=parseInt(position.y,10)+'px';clone.style.width=box.offsetWidth+'px';clone.style.height=box.offsetHeight+'px';return clone;};dbxGroup.prototype.createCloneBox=function(box,source)
{this.box=box;this.position={'x':this.box.offsetLeft,'y':this.box.offsetTop};this.difference={'x':(this.initial.x-this.position.x),'y':(this.initial.y-this.position.y)};this.boxclone=this.createClone(this.box,30000,this.position,'dbx-dragclone',true,source);this.boxclone.style.cursor='move';this.dragok=true;};dbxGroup.prototype.removeCloneBox=function()
{this.container.removeChild(this.boxclone);this.box.style.visibility='visible';this.box=null;};dbxGroup.prototype.removeActiveClasses=function(pattern)
{for(var i in this.boxes)
{if(dbx.unwanted(this.boxes,i)){continue;}
this.boxes[i]=dbx.removeClass(this.boxes[i],pattern);}};dbxGroup.prototype.moveBoxByMouse=function(clientX,clientY,confirm)
{if(this.orientation=='freeform')
{var clonepoint={'x':clientX-this.difference.x+(this.boxclone.offsetWidth/2),'y':clientY-this.difference.y+(this.boxclone.offsetHeight/2)};var differences=[];}
else
{var cloneprops={'xy':this.orientation=='vertical'?clientY-this.difference.y:clientX-this.difference.x,'wh':this.orientation=='vertical'?this.boxclone.offsetHeight:this.boxclone.offsetWidth};}
if(dbx.hide){this.box.style.visibility='hidden';}
this.removeActiveClasses('dbx\-box\-(target|active)');this.boxclone.style.visibility='visible';for(var i in this.boxes)
{if(dbx.unwanted(this.boxes,i)){continue;}
if(this.orientation=='freeform')
{if(dbx.hasClass(this.boxes[i],'dbx\-dummy')&&this.exhange=='swap'){continue;}
var boxpoint={'x':this.boxes[i].offsetLeft+(this.boxes[i].offsetWidth/2),'y':this.boxes[i].offsetTop+(this.boxes[i].offsetHeight/2)};differences.push([i,Math.round(Math.sqrt(Math.pow(Math.abs(clonepoint.x-boxpoint.x),2)+Math.pow(Math.abs(clonepoint.y-boxpoint.y),2)))]);if(this.boxes[i]==this.box)
{differences[differences.length-1][1]=Math.pow(10,20);if(confirm||this.dialog)
{this.updateDialog(this.box,'',null,null,'mouse');}}}
else
{var boxprops={'xy':this.orientation=='vertical'?this.boxes[i].offsetTop:this.boxes[i].offsetLeft,'wh':this.orientation=='vertical'?this.boxes[i].offsetHeight:this.boxes[i].offsetWidth};this.positive=this.direction=='down'||this.direction=='right';if
((this.positive&&cloneprops.xy+cloneprops.wh>boxprops.xy&&cloneprops.xy<boxprops.xy)||(!this.positive&&cloneprops.xy<boxprops.xy&&cloneprops.xy+cloneprops.wh>boxprops.xy))
{if(this.boxes[i]==this.box){return;}
var sibling=dbx.getSiblingBox(this.box,'nextSibling');if(this.box==sibling||this.boxes[i]==sibling){return;}
var index=i;break;}}}
if(this.orientation=='freeform')
{differences.sort(function(a,b){return a[1]-b[1];});index=differences[0][0];var targetbox=this.boxes[index];var originaltargetbox=targetbox;if(this.exchange=='insert'&&(this.direction=='down'||this.direction=='right'))
{targetbox=dbx.get('nextSibling',targetbox);}
if(targetbox==this.box){return;}
boxprops={'left':originaltargetbox.offsetLeft,'top':originaltargetbox.offsetTop};boxprops.right=boxprops.left+targetbox.offsetWidth;boxprops.bottom=boxprops.top+targetbox.offsetHeight;var proportion=confirm||this.dialog?0:0.1;var hypotonuse=Math.round(Math.sqrt(Math.pow(originaltargetbox.offsetWidth,2)+Math.pow(originaltargetbox.offsetHeight,2)));if(!(clonepoint.x>boxprops.left+(hypotonuse*proportion)&&clonepoint.x<boxprops.right-(hypotonuse*proportion)&&clonepoint.y>boxprops.top+(hypotonuse*proportion)&&clonepoint.y<boxprops.bottom-(hypotonuse*proportion)))
{return;}
if(this.last.box==targetbox&&this.last.direction==this.direction)
{return;}
var origpoint={'x':this.box.offsetLeft+(this.box.offsetWidth/2),'y':this.box.offsetTop+(this.box.offsetHeight/2)};boxpoint={'x':originaltargetbox.offsetLeft+(originaltargetbox.offsetWidth/2),'y':originaltargetbox.offsetTop+(originaltargetbox.offsetHeight/2)};var blocks=this.getBlocksDifference(origpoint,boxpoint,this.box);var compass=this.getCompassDirection(origpoint,boxpoint);if(this.functionExists('_testRules')&&!this._testRules(compass,blocks,this.box,null))
{if(confirm||this.dialog)
{this.updateDialog(originaltargetbox,' dbx-dialog-no',null,null,'mouse');}
return;}
if(confirm||this.dialog)
{if(!dbx.hasClass(targetbox,'dbx\-(dialog|dummy)'))
{originaltargetbox.className+=' dbx-box-target';}
this.updateDialog(originaltargetbox,' dbx-dialog-yes',null,null,'mouse');return;}
if(this.functionExists('_updateRulePointer')){this._updateRulePointer();}
this.last={'box':originaltargetbox,'direction':this.direction};}
else
{var targetbox=this.boxes[index];var originaltargetbox=targetbox;}
if(typeof index=='undefined'){return;}
if(!dbx.hasClass(originaltargetbox,'dbx\-(dialog|dummy)'))
{originaltargetbox.className+=' dbx-box-target';}
if(typeof dbx.onbeforestatechange!='undefined')
{var actions=dbx.compileAndDispatchOnBeforeStateChange(['proceed',this,this.container,this.gid,this.box,originaltargetbox,(this.orientation=='freeform'?this.exchange:'move')]);if(!actions.proceed){return;}}
if(this.orientation=='freeform')
{if(this.exchange=='swap')
{var visibox=originaltargetbox;}
else
{var add=false,pointer=0,theboxes=[],visiboxes=[];for(var i in this.boxes)
{if(dbx.unwanted(this.boxes,i)){continue;}
theboxes.push(this.boxes[i]);}
for(i=0;i<theboxes.length;i++)
{if(theboxes[i]==this.box){continue;}
visiboxes.push(theboxes[i]);}}}
else
{if(this.positive)
{var visibox=dbx.getSiblingBox(targetbox,'previousSibling');}
else
{visibox=targetbox;}}
if(typeof visiboxes!='undefined')
{var visiposes=[];for(i=0;i<visiboxes.length;i++)
{visiposes.push({'x':visiboxes[i].offsetLeft,'y':visiboxes[i].offsetTop});}}
else
{var visipos={'x':visibox.offsetLeft,'y':visibox.offsetTop};}
originaltargetbox=dbx.removeClass(originaltargetbox,'dbx\-box\-target');var prepos={'x':this.box.offsetLeft,'y':this.box.offsetTop};if(this.orientation=='freeform'&&this.exchange=='swap')
{var next=targetbox.nextSibling;if(next==this.box)
{targetbox.parentNode.insertBefore(this.box,targetbox);}
else
{this.box.parentNode.insertBefore(targetbox,this.box);next.parentNode.insertBefore(this.box,next);}}
else
{this.container.insertBefore(this.box,targetbox);}
this.updateChildClasses();this.initial.x+=(this.box.offsetLeft-prepos.x);this.initial.y+=(this.box.offsetTop-prepos.y);if(typeof visiboxes!='undefined'&&visiboxes.length>0)
{for(i=0;i<visiboxes.length;i++)
{new dbxAnimator(this,visiboxes[i],visiposes[i],this.resolution,false,null,true);}}
else if(visibox!=this.box)
{new dbxAnimator(this,visibox,visipos,this.resolution,false,null,true);}
if(!this.confirm&&!dbx.hide)
{new dbxAnimator(this,this.box,prepos,this.resolution,false,null,true);}};dbxGroup.prototype.getCompassDirection=function(a,b)
{var compass=a.y<b.y?'S':'N';if(a.y==b.y)
{compass=a.x<b.x?'E':'W';}
else if(a.x<b.x)
{compass+='e';}
else if(a.x>b.x)
{compass+='w';}
return compass;};dbxGroup.prototype.getBlocksDifference=function(a,b,box)
{var blocks=[parseInt(Math.abs(a.x-b.x)/box.offsetWidth,10),parseInt(Math.abs(a.y-b.y)/box.offsetHeight,10)];blocks.sort(function(a,b){return a-b;});return blocks;};dbxGroup.prototype.updateDialog=function(box,state,position,group,source)
{if(this.buffer)
{clearTimeout(this.buffer);this.buffer=null;}
var self=this;this.buffer=setTimeout(function()
{var boxpos={'x':box.offsetLeft,'y':box.offsetTop};if(position)
{boxpos.x+=position.x;boxpos.y+=position.y;}
self.clearDialog();self.dialog=self.createClone(box,29999,boxpos,'dbx-dialog'+state,false,source);self.dialog=dbx.removeClass(self.dialog,'dbx\-box\-(target|active|hover|focus)');self.dialog.style.visibility='visible';clearTimeout(self.buffer);self.buffer=null;},20);};dbxGroup.prototype.clearDialog=function()
{if(this.dialog)
{this.container.removeChild(this.dialog);this.dialog=null;}};dbxGroup.prototype.contains=function(outer,inner)
{if(inner==outer){return true;}
if(inner==null){return false;}
else{return this.contains(outer,inner.parentNode);}};dbxGroup.prototype.refocus=function(target)
{try{target.focus();}catch(err){}
var box=dbx.getTarget(null,'dbx\-box',target);if(!dbx.hasClass(box,'dbx-box-focus'))
{box.className+=' dbx-box-focus';}};function dbxAnimator(caller,box,pos,res,kbd,anchor,manual)
{this.caller=caller;if(this.caller.resolution==0){this.caller.resolution=1;}
this.box=box;this.timer=null;var before={'x':pos.x,'y':pos.y};var after={'x':this.box.offsetLeft,'y':this.box.offsetTop};if(!(before.x==after.x&&before.y==after.y))
{if(dbx.running>this.caller.boxes.length-1){return;}
var clone=this.caller.createClone(this.box,29999,arguments[2],'dbx-aniclone',true,'animator');clone.style.visibility='visible';this.box.style.visibility='hidden';var change={'x':after.x>before.x?after.x-before.x:0-(before.x-after.x),'y':after.y>before.y?after.y-before.y:0-(before.y-after.y)};this.animateClone(clone,before,change,res,kbd,anchor,manual);}};dbxAnimator.prototype.animateClone=function(clone,current,change,res,kbd,anchor,manual)
{var self=this;var count=0;dbx.running++;this.timer=window.setInterval(function()
{count++;current.x+=change.x/res;current.y+=change.y/res;clone.style.left=parseInt(current.x,10)+'px';clone.style.top=parseInt(current.y,10)+'px';if(count==res)
{window.clearInterval(self.timer);self.timer=null;dbx.running--;self.caller.container.removeChild(clone);self.box.style.visibility='visible';if(self.box.className.indexOf('dbxid')!=-1)
{self.box=dbx.removeClass(self.box,'dbx\-dummy');}
self.caller.boxes[dbx.getID(self.box)]=self.box;if(kbd&&manual)
{if(anchor&&anchor.parentNode.style.visibility!='hidden')
{setTimeout(function(){self.caller.refocus(anchor);},0);}
else if(self.caller.toggles)
{var button=self.caller.buttons[dbx.getID(self.box)];if(button&&typeof button.isactive!='undefined')
{self.caller.refocus(button);}}
else
{if(typeof self.box.focus=='function')
{setTimeout(function(){self.caller.refocus(self.box);},0);}}}
if(typeof dbx.onafteranimate=='function')
{setTimeout(function(){dbx.compileAndDispatchOnAfterAnimate(self.box,self.caller)},0);}}
if(typeof dbx.onanimate=='function'&&self.caller.resolution>1)
{dbx.compileAndDispatchOnAnimate(self.box,clone,self.caller,count,res)}},20);};if(typeof window.attachEvent!='undefined')
{window.attachEvent('onunload',function()
{var ev=['mousedown','mousemove','mouseup','mouseout','click','keydown','keyup','focus','blur','selectstart','statechange','boxdrag','boxopen','boxclose','ruletest','afteranimate','beforestatechange','animate'];var el=ev.length;var dl=document.all.length;for(var i=0;i<dl;i++)
{for(var j=0;j<el;j++)
{document.all[i]['on'+ev[j]]=null;}}});}