/*!
 * Copyright (C) 2006-2011 IP Labs GmbH <http://www.iplabs.de/>
 * All rights reserved.
 * 
 * @require jade/ArrayUtils.js
 * @require jade/HTMLUtils.js
 */
var Utils;
if(Utils===undefined){alert("ContextBox depends on Utils")}function ContextBox(c,b,a){ContextBox.oOwner=null;
ContextBox.oActiveBox=null;ContextBox.oTimeOutHelper=null;this.chiefObj=null;this.chiefID=c;
this.cbId=b;this.timerObj=null;this.isOver=false;this.selectBtnObj=null;this.enabled=true;
this.allContexBoxes=[b];this.boxTimeout=500;this.alignment="bottom-left";this.offsetX=0;
this.offsetY=0;this.autoClose=true;this.useSelectorWidth=false;this.onDisplay=null;
this.onHide=null;this.writeToTheEndOfBody();this.bind(c,b);this.contextMenuCheck=(a===undefined||a);
if(this.contextMenuCheck){this.checkForContextMenu()}}ContextBox.prototype.bind=function(a){if(typeof(a)=="object"){this.chiefObj=a;
this.chiefID=a.id}else{this.chiefObj=document.getElementById(a)}this.chiefObj.onclick=this.display;
this.chiefObj.onmouseout=this.boxout;this.chiefObj.onmouseover=this.boxover;this.chiefObj.onfocus=new Function("this.blur();");
this.chiefObj.control=this};ContextBox.prototype.bindAdditionalId=function(b){var a;
a=document.getElementById(b);a.onclick=this.display;a.onmouseout=this.boxout;a.onmouseover=this.boxover;
a.onfocus=new Function("this.blur();");a.control=this};ContextBox.prototype.activateVisualEffectsBtn=function(){};
ContextBox.prototype.changeSelectorStatus=function(a){};ContextBox.prototype.writeToTheEndOfBody=function(a){var b;
if(a===undefined){a=this.cbId}b=document.getElementById(a);b=b.parentNode.removeChild(b);
document.getElementsByTagName("body")[0].appendChild(b)};ContextBox.prototype.display=function(m,b,l){var f,j,g,e,d,h,a,k,c;
if(this.control){return this.control.display(m?m:event,this.control.chiefObj)}if(!this.enabled){return false
}g=document.getElementById(this.cbId);e=g.getElementsByTagName("iframe")[0];if(typeof(l)=="undefined"){l=(g.style.display=="none")||(g.style.display=="none;")||(g.style.display=="")
}if(l){ContextBox.hide();ContextBox.oActiveBox=this;ContextBox.oOwner=b;d=jade.HTMLUtils.getDocumentOffset(b);
g.style.visibility="hidden";g.style.display="block";if(this.useSelectorWidth){if(g.offsetWidth<this.chiefObj.offsetWidth){g.style.width=this.chiefObj.offsetWidth+"px"
}}if(Utils.isIE){h=jade.HTMLUtils.getElementsByClassName(g,"contextMenu");for(f=0,j=h.length;
f<j;f++){a=h[f].getElementsByTagName("li");for(k=0,c=a.length;k<c;k++){if(a[k].childAnker!==undefined){a[k].childAnker.style.width=a[k].childAnker.offsetWidth+"px"
}}}}if(e!==undefined&&e!==null){e.style.width=g.offsetWidth+"px";e.style.height=g.offsetHeight+"px";
e.style.filter="alpha(opacity=0)";e.style.display="block"}switch(this.alignment){case"top-left":g.style.left=d.x+this.offsetX+"px";
g.style.top=d.y-g.offsetHeight+this.offsetY+"px";break;case"top-right":g.style.left=d.x+b.offsetWidth-g.offsetWidth+this.offsetX+"px";
g.style.top=d.y-g.offsetHeight+this.offsetY+"px";break;case"bottom-left":g.style.left=d.x+this.offsetX+"px";
g.style.top=d.y+b.offsetHeight+this.offsetY+"px";break;case"bottom-right":g.style.left=d.x+b.offsetWidth-g.offsetWidth+this.offsetX+"px";
g.style.top=d.y+b.offsetHeight+this.offsetY+"px";break}g.style.visibility="visible";
g.onmouseout=this.boxout;g.onmouseover=this.boxover;g.onmousedown=this.cancelEvent;
g.control=this;if((this.onDisplay!==null)&&(typeof(this.onDisplay)=="function")){this.onDisplay()
}}else{g.style.display="none";g.onmouseout=null;if(e!==undefined&&e!==null){e.style.display="none"
}if((this.onHide!==null)&&(typeof(this.onHide)=="function")){this.onHide()}}return false
};ContextBox.prototype.cancelEvent=function(a){if(!a){a=event}if(a.stopPropagation){a.stopPropagation()
}a.cancelBubble=true};ContextBox.prototype.boxout=function(a,b){if(this.control){return this.control.boxout(a?a:event,b)
}if(!this.enabled){return false}if(this.autoClose){window.clearTimeout(this.timerObj)
}if((b!==undefined)&&(!this.isOver)){this.hide()}else{this.isOver=false;if(this.autoClose){ContextBox.oTimeOutHelper=this;
this.timerObj=window.setTimeout("ContextBox.boxout()",this.boxTimeout)}}};ContextBox.boxout=function(){if(ContextBox.oTimeOutHelper!==null){ContextBox.oTimeOutHelper.boxout(null,true)
}};ContextBox.prototype.boxover=function(a){if(this.control){this.control.cancelEvent(a);
return this.control.boxover(a?a:event)}if(!this.enabled){return false}if(this.autoClose){window.clearTimeout(this.timerObj)
}this.isOver=true};ContextBox.prototype.chiefMouseDown=function(a){if(this.control){return this.control.chiefMouseDown(a?a:event)
}};ContextBox.prototype.chiefMouseUp=function(a){if(this.control){return this.control.chiefMouseUp(a?a:event)
}};ContextBox.prototype.hide=function(){this.display(null,null,false)};ContextBox.hide=function(){if(ContextBox.oActiveBox!==null){ContextBox.oActiveBox.hide()
}};ContextBox.getActiveContextBox=function(){return ContextBox.oActiveBox};ContextBox.getCurrentCaller=function(){return ContextBox.oOwner
};ContextBox.prototype.enable=function(){this.enabled=true};ContextBox.prototype.disable=function(){this.enabled=false
};ContextBox.prototype.checkForContextMenu=function(h){var f,k,j,c,d,g,b,a,e;if(h===undefined){h=this.cbId
}d=document.getElementById(h);g=jade.HTMLUtils.getElementsByClassName(d,"contextMenu");
for(f=0,j=g.length;f<j;f++){b=g[f].getElementsByTagName("li");for(k=0,c=b.length;
k<c;k++){a=b[k].getElementsByTagName("a");if(a.length>0){e=a[0];b[k].childAnker=a[0]
}else{e=b[k]}e.hoverElement=b[k];e.onmouseover=new Function('if(!jade.HTMLUtils.hasClassName(this.hoverElement, "off")) {jade.HTMLUtils.addClassName(this.hoverElement, "over");}');
if(Utils.isIE()){e.onmouseleave=new Function('if(!jade.HTMLUtils.hasClassName(this.hoverElement, "off")) {jade.HTMLUtils.removeClassName(this.hoverElement, "over");jade.HTMLUtils.removeClassName(this.hoverElement, "down");}')
}else{e.onmouseout=new Function('if(!jade.HTMLUtils.hasClassName(this.hoverElement, "off")) {jade.HTMLUtils.removeClassName(this.hoverElement, "over");jade.HTMLUtils.removeClassName(this.hoverElement, "down");}')
}e.onmousedown=new Function('if(!jade.HTMLUtils.hasClassName(this.hoverElement, "off")) {jade.HTMLUtils.removeClassName(this.hoverElement, "over"); jade.HTMLUtils.addClassName(this.hoverElement, "down");}')
}}};ContextBox.prototype.updateContexBox=function(){if(this.contextMenuCheck){this.checkForContextMenu()
}};ContextBox.prototype.addContexBox=function(a){this.allContexBoxes.push(a);this.writeToTheEndOfBody(a);
if(this.contextMenuCheck){this.checkForContextMenu(a)}};ContextBox.prototype.changeActiveContexBox=function(a){if(jade.ArrayUtils.contains(this.allContexBoxes,a)){ContextBox.hide();
this.cbId=a}};ContextBox.prototype.getContextBoxId=function(){return this.cbId};
