
var eXo={animation:{},browser:{},desktop:{},core:{},env:{portal:{},client:{},server:{}},portal:{},util:{},webui:{},widget:{},application:{browser:{}},ecm:{},calendar:{},contact:{},forum:{},mail:{},faq:{}};eXo.require=function(module,jsLocation){try{if(eval(module+' != null'))return;}catch(err){}
window.status="Loading Javascript Module "+module;if(jsLocation==null)jsLocation='/eXoResources/javascript/';var path=jsLocation+module.replace(/\./g,'/')+'.js';var request=eXo.core.Browser.createHttpRequest();request.open('GET',path,false);request.setRequestHeader("Cache-Control","max-age=86400");request.send(null);try{eval(request.responseText);}catch(err){alert(err+" : "+request.responseText);}};eXo.env.server.createPortalURL=function(targetComponentId,actionName,useAjax,params){var href=eXo.env.server.portalBaseURL+"?portal:componentId="+targetComponentId+"&portal:action="+actionName;if(params!=null){var len=params.length;for(var i=0;i<len;i++){href+="&"+params[i].name+"="+params[i].value;}}
if(useAjax)href+="&ajaxRequest=true";return href;};ImplodeExplode=function(){};ImplodeExplode.prototype.doInit=function(uiWindow,clickedElement,containerId,numberOfFrame){var container=document.getElementById(containerId);this.object=uiWindow;this.object.loop=numberOfFrame;this.object.iconX=eXo.core.Browser.findPosYInContainer(clickedElement,container);this.object.iconY=eXo.core.Browser.findPosXInContainer(clickedElement,container);this.object.iconW=clickedElement.offsetWidth;this.object.iconH=clickedElement.offsetHeight;if(this.object.animation==null){this.object.animation=document.createElement("div");container.appendChild(this.object.animation);this.object.animation.style.display="block";this.object.animation.style.background="#ffffff";this.object.animation.style.position="absolute";eXo.core.Browser.setOpacity(this.object.animation,50);this.object.animation.style.zIndex=this.object.maxIndex;}};ImplodeExplode.prototype.doCenterInit=function(uiWindow,clickedElement,containerId,numberOfFrame){var container=document.getElementById(containerId);this.object=uiWindow;this.object.loop=numberOfFrame;if(this.object.style.display=="none"){this.object.iconX=this.object.originalX+this.object.originalH/2;this.object.iconY=this.object.originalY+this.object.originalW/2;}else{this.object.iconX=eXo.core.Browser.findPosYInContainer(this.object,container)+this.object.offsetHeight/2;this.object.iconY=eXo.core.Browser.findPosXInContainer(this.object,container)+this.object.offsetWidth/2;}
this.object.iconW=1;this.object.iconH=1;if(this.object.animation==null){this.object.animation=document.createElement("div");container.appendChild(this.object.animation);this.object.animation.style.display="block";this.object.animation.style.background="white";this.object.animation.style.position="absolute";eXo.core.Browser.setOpacity(this.object.animation,40);this.object.animation.style.zIndex=this.object.maxIndex;}
uiWindow=this.object;};ImplodeExplode.prototype.explode=function(uiWindow,clickedElement,containerId,numberOfFrame,type){if(!this.busy){if(type){eXo.animation.ImplodeExplode.doCenterInit(uiWindow,clickedElement,containerId,numberOfFrame);}else{eXo.animation.ImplodeExplode.doInit(uiWindow,clickedElement,containerId,numberOfFrame);}
this.object.step=numberOfFrame-1;this.object.isShowed=true;eXo.animation.ImplodeExplode.doExplode(containerId);}};ImplodeExplode.prototype.implode=function(uiWindow,clickedElement,containerId,numberOfFrame,type){if(!this.busy){if(type){eXo.animation.ImplodeExplode.doCenterInit(uiWindow,clickedElement,containerId,numberOfFrame);}else{eXo.animation.ImplodeExplode.doInit(uiWindow,clickedElement,containerId,numberOfFrame);}
this.object.originalX=this.object.offsetTop;this.object.originalY=this.object.offsetLeft;this.object.originalW=this.object.offsetWidth;this.object.originalH=this.object.offsetHeight;this.object.step=1;if(this.object.style.display=="block"){this.object.style.display="none";}
this.object.isShowed=false;eXo.animation.ImplodeExplode.doImplode(containerId);}};ImplodeExplode.prototype.doImplode=function(containerId){this.busy=true;var container=document.getElementById(containerId);var win=this.object;var X0=win.originalX+(win.step*(win.iconX-win.originalX))/win.loop;var Y0=win.originalY+((X0-win.originalX)*(win.iconY-win.originalY))/(win.iconX-win.originalX);var W0=((win.originalW-win.iconW)*(win.loop-win.step))/win.loop+win.iconW;var H0=((win.originalH-win.iconH)*(win.loop-win.step))/win.loop+win.iconH;win.animation.style.top=X0+"px";win.animation.style.left=Y0+"px";win.animation.style.width=W0+"px";win.animation.style.height=H0+"px";win.step++;if(W0>win.iconW){setTimeout("eXo.animation.ImplodeExplode.doImplode('"+containerId+"');",0);}else{container.removeChild(win.animation);win.animation=null;this.busy=false;}};ImplodeExplode.prototype.doExplode=function(containerId){this.busy=true;var container=document.getElementById(containerId);var win=this.object;var X0=win.originalX+(win.step*(win.iconX-win.originalX))/win.loop;var Y0=win.originalY+((X0-win.originalX)*(win.iconY-win.originalY))/(win.iconX-win.originalX);var W0=((win.originalW-win.iconW)*(win.loop-win.step))/win.loop+win.iconW;var H0=((win.originalH-win.iconH)*(win.loop-win.step))/win.loop+win.iconH;win.animation.style.top=X0+"px";win.animation.style.left=Y0+"px";win.animation.style.width=W0+"px";win.animation.style.height=H0+"px";win.step--;if(W0<win.originalW){setTimeout("eXo.animation.ImplodeExplode.doExplode('"+containerId+"');",0);}else{win.style.top=X0+"px";win.style.left=Y0+"px";win.style.width=W0+"px";win.style.height=H0+"px";win.style.display="block";container.removeChild(win.animation);win.animation=null;this.busy=false;}};eXo.animation.ImplodeExplode=new ImplodeExplode();function ApplicationDescriptor(appId,application){this.appId=appId;this.application=application;};ApplicationDescriptor.prototype.createApplication=function(){return this.application.createApplicationInstance(this);};ApplicationDescriptor.prototype.destroyApplication=function(){return this.application.destroyApplicationInstance(this);};eXo.application.ApplicationDescriptor=ApplicationDescriptor.prototype.constructor;Array.prototype.clear=function(){this.length=0;};Array.prototype.remove=function(element){var result=false;var array=[];for(var i=0;i<this.length;i++){if(this[i]==element){result=true;}else{array.push(this[i]);}}
this.clear();for(var i=0;i<array.length;i++){this.push(array[i]);}
array=null;return result;};Array.prototype.contains=function(element){for(var i=0;i<this.length;i++){if(this[i]==element){return true;}}
return false;};Array.prototype.insertAt=function(what,iIndex){if(iIndex<this.length){var aAfter=this.splice(iIndex,100000,what);for(var i=0;i<aAfter.length;i++){this.push(aAfter[i]);}}else{this.push(what);}};Array.prototype.pushAll=function(array){if(array!=null){for(var i=0;i<array.length;i++){this.push(array[i]);}}};Array.prototype.each=function(iterator,context){iterator=iterator.bind(context);for(var i=0;i<this.length;i++){iterator(this[i]);}};function HashMap(){this.properties=new Object();this.length=0;};HashMap.prototype.copyProperties=function(names,object){for(var i=0;i<names.length;i++){var name=names[i];this.put(name,object[name]);}};HashMap.prototype.setProperties=function(object,clear){for(var name in this.properties){object[name]=this.properties[name];}};HashMap.prototype.get=function(name){return this.properties[name];};HashMap.prototype.remove=function(name){var value=this.properties[name];if(value!=null){this.properties[name]=null;this.length--;return value;}else{return null;}};HashMap.prototype.put=function(name,value){if(this.properties[name]==null){this.length++;}
this.properties[name]=value;};HashMap.prototype.size=function(){return this.length;};HashMap.prototype.clear=function(){this.properties=new Object();this.length=0;};eXo.core.HashMap=HashMap.prototype.constructor;function ExoDateTime(){};ExoDateTime.prototype.getTime=function(){var dateTime=new Date();var hour=dateTime.getHours();var minute=dateTime.getMinutes();var second=dateTime.getSeconds();if(hour<=9)hour="0"+hour;if(minute<=9)minute="0"+minute;var AM_PM="";if(hour<12){AM_PM="AM";}else if(hour==12){AM_PM="PM";}else{AM_PM="PM";hour=hour-12;}
var time="";time+=hour+":"+minute+" "+AM_PM;var digitalClock=document.getElementById("DigitalClock");digitalClock.innerHTML=time;setTimeout("eXo.core.ExoDateTime.getTime()",60000);};ExoDateTime.prototype.getDate=function(){var dateTime=new Date();var date=dateTime.getDate();var month=dateTime.getMonth();var year=dateTime.getFullYear();if(date<=9)date="0"+date;switch(month){case 0:month="Jan";break;case 1:month="Feb";break;case 2:month="Mar";break;case 3:month="Apl";break;case 4:month="May";break;case 5:month="Jun";break;case 6:month="Jul";break;case 7:month="Aug";break;case 8:month="Sep";break;case 9:month="Oct";break;case 10:month="Nov";break;case 11:month="Dec";break;default:month=month;break;}
var today=date+" "+month+" "+year;var dateElement=eXo.core.DOMUtil.findFirstDescendantByClass(document.body,"div","Date");dateElement.innerHTML=today;};eXo.core.ExoDateTime=new ExoDateTime();String.prototype.trim=function(){var tmp=this.replace(/^\s*/,'');return tmp.replace(/\s*$/,'');}
Function.prototype.bind=function(object){var method=this;return function(){method.apply(object,arguments);}}
Function.prototype.inherits=function(parentCtor){function tempCtor(){};tempCtor.prototype=parentCtor.prototype;this.superClass_=parentCtor.prototype;this.prototype=new tempCtor();this.prototype.constructor=this;};function DOMUtil(){this.hideElementList=new Array();};DOMUtil.prototype.hasClass=function(elemt,className){var reg=new RegExp('(^|\\s+)'+className+'(\\s+|$)');return reg.test(elemt['className']);};DOMUtil.prototype.addClass=function(elemt,className){if(this.hasClass(elemt,className))return;elemt['className']=[elemt['className'],className].join(' ');};DOMUtil.prototype.replaceClass=function(elemt,oldClazz,newClazz){elemt['className']=elemt['className'].replace(oldClazz,newClazz);};DOMUtil.prototype.getChildrenByTagName=function(element,tagName){var ln=0;var list=[];if(element&&element.childNodes)ln=element.childNodes.length;for(var k=0;k<ln;k++){if(element.childNodes[k].nodeName==tagName.toUpperCase())list.push(element.childNodes[k]);}
return list;};DOMUtil.prototype.findChildrenByClass=function(root,elementName,cssClass){if(elementName)elementName=elementName.toUpperCase();var elements=root.childNodes;var ln=elements.length;var list=[];for(var k=0;k<ln;k++){if(elementName==elements[k].nodeName&&this.hasClass(elements[k],cssClass)){list.push(elements[k]);}}
return list;};DOMUtil.prototype.findChildrenByAttribute=function(root,elementName,attrName,attrValue){if(elementName)elementName=elementName.toUpperCase();var elements=root.childNodes;var ln=elements.length;var list=[];for(var k=0;k<ln;k++){if(elementName==elements[k].nodeName){var retValue=elements[k].getAttribute(attrName);if(retValue==attrValue)list.push(elements[k]);}}
return list;};DOMUtil.prototype.findFirstChildByClass=function(root,elementName,cssClass){if(elementName!=null)elementName=elementName.toUpperCase();var elements=root.childNodes;for(var k=0;k<elements.length;k++){if(elementName==elements[k].nodeName&&this.hasClass(elements[k],cssClass)){return elements[k];}}
return null;};DOMUtil.prototype.findAncestorByClass=function(element,clazz){if(element==null)return null;var parent=element.parentNode;while(parent!=null){if(this.hasClass(parent,clazz))return parent;parent=parent.parentNode;}
return null;};DOMUtil.prototype.findAncestorsByClass=function(element,clazz){var list=[];var parent=element.parentNode;while(parent!=null){if(this.hasClass(parent,clazz))list.push(parent);parent=parent.parentNode;}
return list;};DOMUtil.prototype.findAncestorById=function(element,id){var parent=element.parentNode;while(parent!=null){if(parent.getAttributeNode&&parent.getAttributeNode("id")&&parent.getAttributeNode("id").value==id)return parent;parent=parent.parentNode;}
return null;};DOMUtil.prototype.findAncestorByTagName=function(element,tagName){var parent=element.parentNode;while(parent!=null){if(parent.nodeName&&parent.nodeName.toLowerCase()==tagName)return parent;parent=parent.parentNode;}
return null;};DOMUtil.prototype.findDescendantsByTag=function(root,tagName,list){var children=root.childNodes;var ln=children.length;var child=null;for(var k=0;k<ln;k++){child=children[k];if(tagName==null){list[list.length]=child;}else if(child.nodeName==null){continue;}else{if(tagName==child.nodeName.toLowerCase())list[list.length]=child;}
this.findDescendantsByTag(child,tagName,list);}};DOMUtil.prototype.findDescendantsByTagName=function(root,tagName){var list=[];this.findDescendantsByTag(root,tagName,list);return list;};DOMUtil.prototype.findDescendantsByClass=function(root,elementName,clazz){var elements=root.getElementsByTagName(elementName);var ln=elements.length;var list=[];this.findDescendantsByTag(root,elementName,elements);for(var k=0;k<ln;k++){if(this.hasClass(elements[k],clazz))list.push(elements[k]);}
return list;};DOMUtil.prototype.findFirstDescendantByClass=function(root,elementName,clazz){if(!root)return;var elements=root.getElementsByTagName(elementName);var ln=elements.length;for(var k=0;k<ln;k++){if(this.hasClass(elements[k],clazz))return elements[k];}
return null;};DOMUtil.prototype.findDescendantById=function(root,id){var elements=root.getElementsByTagName('*');var ln=elements.length;for(var i=0;i<ln;i++){if(elements[i].getAttributeNode&&elements[i].getAttributeNode("id")&&elements[i].getAttributeNode("id").value==id)return elements[i];}
return null;};DOMUtil.prototype.hasDescendant=function(root,obj){var elements=root.getElementsByTagName("*");var ln=elements.length;for(var k=0;k<ln;k++){if(elements[k]==obj)return true;}
return false;};DOMUtil.prototype.hasDescendantClass=function(root,clazz){var elements=root.getElementsByTagName("*");var ln=elements.length;for(var k=0;k<ln;k++){if(this.hasClass(elements[k],clazz))return true;}
return false;};DOMUtil.prototype.findNextElementByTagName=function(element,tagName){var nextElement=element.nextSibling;while(nextElement!=null){var nodeName=nextElement.nodeName;if(nodeName!=null)nodeName=nodeName.toLowerCase();if(nodeName==tagName)return nextElement;nextElement=nextElement.nextSibling;}
return null;};DOMUtil.prototype.findPreviousElementByTagName=function(element,tagName){var previousElement=element.previousSibling;while(previousElement!=null){var nodeName=previousElement.nodeName;if(nodeName!=null)nodeName=nodeName.toLowerCase();if(nodeName==tagName)return previousElement;previousElement=previousElement.previousSibling;}
return null;};DOMUtil.prototype.moveElemt=function(srcElemt,destElemt){if(typeof(srcElemt)=="string")srcElemt=document.getElementById(srcElemt);if(typeof(destElemt)=="string")destElemt=document.getElementById(destElemt);if(srcElemt&&destElemt)destElemt.appendChild(srcElemt);}
DOMUtil.prototype.createElementNode=function(innerHTML,tagName){var temporaryContainer=document.createElement(tagName);temporaryContainer.innerHTML=innerHTML;var applicationNode=this.getChildrenByTagName(temporaryContainer,"div")[0];return applicationNode;};DOMUtil.prototype.generateId=function(objectId){return(objectId+"-"+new Date().getTime()+Math.random().toString().substring(2));};DOMUtil.prototype.getStyle=function(element,style,intValue){var result=null;if(element.style[style]){result=element.style[style];}else if(element.currentStyle){result=element.currentStyle[style];}else if(document.defaultView&&document.defaultView.getComputedStyle){style=style.replace(/([A-Z])/g,"-$1");style=style.toLowerCase();var s=document.defaultView.getComputedStyle(element,"");result=s&&s.getPropertyValue(style);}
if(intValue&&result){var intRes=Number(result.match(/\d+/));if(!isNaN(intRes))result=intRes;}
return result;};DOMUtil.prototype.hideElements=function(){document.onclick=function(){var ln=eXo.core.DOMUtil.hideElementList.length;if(ln>0){for(var i=0;i<ln;i++){eXo.core.DOMUtil.hideElementList[i].style.display="none";}
eXo.core.DOMUtil.hideElementList.clear();}}};DOMUtil.prototype.listHideElements=function(object){if(!eXo.core.DOMUtil.hideElementList.contains(object)){eXo.core.DOMUtil.hideElementList.push(object);}};DOMUtil.prototype.removeElement=function(elemt){if(typeof(elemt)=="string")elemt=document.getElementById(elemt);if(!elemt)return;var parentElement=elemt.parentNode;parentElement.removeChild(elemt);};eXo.core.DOMUtil=new DOMUtil();function MouseObject(){this.init(null);};MouseObject.prototype.init=function(mouseEvent){this.mousexInPage=null;this.mouseyInPage=null;this.lastMousexInPage=null;this.lastMouseyInPage=null;this.mousexInClient=null;this.mouseyInClient=null;this.lastMousexInClient=null;this.lastMouseyInClient=null;this.deltax=null;this.deltay=null;if(mouseEvent!=null)this.update(mouseEvent);};MouseObject.prototype.update=function(mouseEvent){var x=eXo.core.Browser.findMouseXInPage(mouseEvent);var y=eXo.core.Browser.findMouseYInPage(mouseEvent);this.lastMousexInPage=this.mousexInPage!=null?this.mousexInPage:x;this.lastMouseyInPage=this.mouseyInPage!=null?this.mouseyInPage:y;this.mousexInPage=x;this.mouseyInPage=y;x=eXo.core.Browser.findMouseXInClient(mouseEvent);y=eXo.core.Browser.findMouseYInClient(mouseEvent);this.lastMousexInClient=this.mousexInClient!=null?this.mousexInClient:x;this.lastMouseyInClient=this.mouseyInClient!=null?this.mouseyInClient:y;this.mousexInClient=x;this.mouseyInClient=y;this.deltax=this.mousexInClient-this.lastMousexInClient;this.deltay=this.mouseyInClient-this.lastMouseyInClient;};function Browser(){this.onLoadCallback=new eXo.core.HashMap();this.onResizeCallback=new eXo.core.HashMap();this.onScrollCallback=new eXo.core.HashMap();this.breakStream;window.onresize=this.managerResize;window.onscroll=this.onScroll;this.initCommon();var detect=navigator.userAgent.toLowerCase();if(detect.indexOf("opera")+1)this.initOpera();else if(detect.indexOf("ie")+1)this.initIE();else if(detect.indexOf("safari")+1)this.initSafari();else this.initMozilla();};Browser.prototype.managerResize=function(){var Browser=eXo.core.Browser;clearTimeout(Browser.breakStream);Browser.breakStream=setTimeout(eXo.core.Browser.onResize,100);}
Browser.prototype.initCommon=function(){this.getBrowserHeight=function(){return document.documentElement.clientHeight;}
this.getBrowserWidth=function(){return document.documentElement.clientWidth;}
this.createHttpRequest=function(){return new XMLHttpRequest();}};Browser.prototype.initIE=function(){this.browserType="ie";this.createHttpRequest=function(){return new ActiveXObject("Msxml2.XMLHTTP");}
this.eventListener=function(object,event,operation){event="on"+event;object.attachEvent(event,operation);}
this.setOpacity=function(component,value){component.style.filter="alpha(opacity="+value+")";}
this.getEventSource=function(e){return window.event.srcElement;}};Browser.prototype.initMozilla=function(){this.browserType="mozilla";this.eventListener=function(object,event,operation){object.addEventListener(event,operation,false);}
this.setOpacity=function(component,value){component.style.opacity=value/100;}
this.getEventSource=function(e){return e.target;}};Browser.prototype.initSafari=function(){this.browserType="safari";this.getBrowserHeight=function(){return self.innerHeight;};this.getBrowserWidth=function(){return self.innerWidth;};this.eventListener=function(object,event,operation){object.addEventListener(event,operation,false);}
this.setOpacity=function(component,value){component.style.opacity=value/100;}
this.getEventSource=function(e){var targ=e.target;if(targ.nodeType==3)targ=targ.parentNode;return targ;}};Browser.prototype.initOpera=function(){this.browserType="opera";this.getBrowserHeight=function(){return document.body.clientHeight;}
this.getBrowserWidth=function(){return document.body.clientWidth;}};Browser.prototype.isIE6=function(){var agent=navigator.userAgent;return(agent.indexOf("MSIE 6")>=0);};Browser.prototype.isIE7=function(){var agent=navigator.userAgent;return(agent.indexOf("MSIE 7")>=0);};Browser.prototype.isFF=function(){return new RegExp("Firefox").test(navigator.userAgent);};Browser.prototype.findMouseXInClient=function(e){if(!e)e=window.event;return e.clientX;};Browser.prototype.findMouseYInClient=function(e){if(!e)e=window.event;return e.clientY;};Browser.prototype.addOnLoadCallback=function(id,method){this.onLoadCallback.put(id,method);};Browser.prototype.onLoad=function(){try{var callback=eXo.core.Browser.onLoadCallback;for(var name in callback.properties){var method=callback.get(name);if(typeof(method)=="function")method();}}catch(e){}
this.onLoadCallback=new eXo.core.HashMap();};Browser.prototype.addOnResizeCallback=function(id,method){this.onResizeCallback.put(id,method);};Browser.prototype.onResize=function(event){var callback=eXo.core.Browser.onResizeCallback;for(var name in callback.properties){var method=callback.get(name);if(typeof(method)=="function")method(event);}};Browser.prototype.addOnScrollCallback=function(id,method){this.onScrollCallback.put(id,method);};Browser.prototype.onScroll=function(event){var callback=eXo.core.Browser.onScrollCallback;for(var name in callback.properties){var method=callback.get(name);try{if(typeof(method)=="function")method(event);}catch(err){}}};Browser.prototype.getBrowserType=function(){return this.browserType;};Browser.prototype.findPosX=function(obj){var curleft=0;var str="";while(obj){curleft+=obj.offsetLeft;obj=obj.offsetParent;}
return curleft;};Browser.prototype.findPosY=function(obj){var curtop=0;while(obj){curtop+=obj.offsetTop;obj=obj.offsetParent;}
return curtop;};Browser.prototype.findPosXInContainer=function(obj,container){var objX=eXo.core.Browser.findPosX(obj);var containerX=eXo.core.Browser.findPosX(container);return(objX-containerX);};Browser.prototype.findPosYInContainer=function(obj,container){var objY=eXo.core.Browser.findPosY(obj);var containerY=eXo.core.Browser.findPosY(container);return(objY-containerY);};Browser.prototype.findMouseXInPage=function(e){var posx=-1;if(!e)e=window.event;if(e.pageX||e.pageY){posx=e.pageX;}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft;}
return posx;};Browser.prototype.findMouseYInPage=function(e){var posy=-1;if(!e)e=window.event;if(e.pageY){posy=e.pageY;}else if(e.clientX||e.clientY){if(document.documentElement&&document.documentElement.scrollTop){posy=e.clientY+document.documentElement.scrollTop;}else{posy=e.clientY+document.body.scrollTop;}}
return posy;};Browser.prototype.findMouseRelativeX=function(object,e){var posx=-1;var posXObject=eXo.core.Browser.findPosX(object);if(eXo.core.Browser.isIE7()){posXObject=posXObject/2;}
if(!e)e=window.event;if(e.pageX||e.pageY){posx=e.pageX-posXObject;}else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft-posXObject;}
return posx;};Browser.prototype.findMouseRelativeY=function(object,e){var posy=-1;var posYObject=eXo.core.Browser.findPosY(object);if(!e)e=window.event;if(e.pageY){posy=e.pageY-posYObject;}else if(e.clientX||e.clientY){if(document.documentElement&&document.documentElement.scrollTop){posy=e.clientY+document.documentElement.scrollTop-posYObject;}else{posy=e.clientY+document.body.scrollTop-posYObject;}}
return posy;};Browser.prototype.setPositionInContainer=function(container,component,posX,posY){var offsetX=component.offsetLeft;var offsetY=component.offsetTop;var posXInContainer=eXo.core.Browser.findPosXInContainer(component,container);var posYInContainer=eXo.core.Browser.findPosYInContainer(component,container);var deltaX=posX-(posXInContainer-offsetX);var deltaY=posY-(posYInContainer-offsetY);component.style.left=deltaX+"px";component.style.top=deltaY+"px";};Browser.prototype.setCookie=function(name,value,expiredays){var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays);document.cookie=name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString());};Browser.prototype.getCookie=function(name){if(document.cookie.length>0){var start=document.cookie.indexOf(name+"=")
if(start!=-1){start=start+name.length+1;var end=document.cookie.indexOf(";",start);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(start,end));}}
return"";};eXo.core.Browser=new Browser();eXo.core.Mouse=new MouseObject();function MouseEventManager(){};MouseEventManager.prototype.addMouseDownHandler=function(method){document.onmousedown=this.docMouseDownEvt;this.onMouseDownHandlers=method;};MouseEventManager.prototype.docMouseDownEvt=function(evt){if(!evt)evt=window.event;evt.cancelBubble=true;if(eXo.core.MouseEventManager.onMouseDownHandlers==null)return;if(typeof(eXo.core.MouseEventManager.onMouseDownHandlers)=="string")eval(eXo.core.MouseEventManager.onMouseDownHandlers);else eXo.core.MouseEventManager.onMouseDownHandlers(evt);document.onmousedown=null;};MouseEventManager.prototype.addMouseUpHandler=function(method){document.onmouseup=this.docMouseUpEvt;this.onMouseUpHandlers=method;};MouseEventManager.prototype.docMouseUpEvt=function(){var mouseUpHandlers=eXo.core.MouseEventManager.onMouseUpHandlers;};MouseEventManager.prototype.docMouseClickEvt=function(evt){if(!evt)evt=window.event;evt.cancelBubble=true;if(typeof(eXo.core.MouseEventManager.onMouseClickHandlers)=="string")eval(eXo.core.MouseEventManager.onMouseClickHandlers);else eXo.core.MouseEventManager.onMouseClickHandlers(evt);document.onclick=null;};MouseEventManager.prototype.addMouseClickHandler=function(method){document.onclick=this.docMouseClickEvt;this.onMouseClickHandlers=method;};eXo.core.MouseEventManager=new MouseEventManager();function UIMaskLayer(){};UIMaskLayer.prototype.createTransparentMask=function(){var mask=document.getElementById("TransparentMaskLayer");if(!mask){mask=document.createElement("div");mask.id="TransparentMaskLayer";mask.style.top="0px";mask.style.left="0px";eXo.core.Browser.setOpacity(mask,0);mask.style.backgroundColor="white";mask.style.zIndex="2";mask.style.position="absolute";mask.style.cursor="wait";mask.style.display="block";document.getElementsByTagName("body")[0].appendChild(mask);}
mask.style.width="100%";mask.style.height="100%";};UIMaskLayer.prototype.removeTransparentMask=function(){var mask=document.getElementById("TransparentMaskLayer");if(mask){mask.style.height="0";mask.style.width="0";}};UIMaskLayer.prototype.removeMasks=function(maskLayer){eXo.core.UIMaskLayer.removeTransparentMask();eXo.core.UIMaskLayer.removeMask(maskLayer);};UIMaskLayer.prototype.createMask=function(blockContainerId,object,opacity,position){try{var Browser=eXo.core.Browser;var blockContainer=document.getElementById(blockContainerId);var maskLayer=document.createElement("div");this.object=object;this.blockContainer=blockContainer;this.position=position;if(document.getElementById("MaskLayer")){document.getElementById("MaskLayer").id="subMaskLayer";}
blockContainer.appendChild(maskLayer);maskLayer.className="MaskLayer";maskLayer.id="MaskLayer";maskLayer.maxZIndex=3;maskLayer.style.width=blockContainer.offsetWidth+"px";maskLayer.style.height="100%";maskLayer.style.top="0px";maskLayer.style.left="0px";maskLayer.style.zIndex=maskLayer.maxZIndex;if(opacity){Browser.setOpacity(maskLayer,opacity);}
if(object!=null){if(object.nextSibling){maskLayer.nextSiblingOfObject=object.nextSibling;maskLayer.parentOfObject=null;}else{maskLayer.nextSiblingOfObject=null;maskLayer.parentOfObject=object.parentNode;}
object.style.zIndex=maskLayer.maxZIndex+1;object.style.display="block";blockContainer.appendChild(object);eXo.core.UIMaskLayer.setPosition();if((blockContainer.offsetWidth>object.offsetLeft+object.offsetWidth)&&(position=="TOP-RIGHT")||(position=="BOTTOM-RIGHT")){object.style.left=blockContainer.offsetWidth-object.offsetWidth+"px";}
eXo.core.UIMaskLayer.doScroll();}}catch(err){alert(err);}
return maskLayer;};UIMaskLayer.prototype.createMaskForFrame=function(blockContainerId,object,opacity){try{var Browser=eXo.core.Browser;if(typeof(blockContainerId)=="string")blockContainerId=document.getElementById(blockContainerId);var blockContainer=blockContainerId;var maskLayer=document.createElement("div");blockContainer.appendChild(maskLayer);maskLayer.className="MaskLayer";maskLayer.id=object.id+"MaskLayer";maskLayer.maxZIndex=3;maskLayer.style.width=blockContainer.offsetWidth+"px";maskLayer.style.height=blockContainer.offsetHeight+"px";maskLayer.style.top="0px";maskLayer.style.left="0px";maskLayer.style.zIndex=maskLayer.maxZIndex;if(opacity){Browser.setOpacity(maskLayer,opacity);}
if(object!=null){if(object.nextSibling){maskLayer.nextSiblingOfObject=object.nextSibling;maskLayer.parentOfObject=null;}else{maskLayer.nextSiblingOfObject=null;maskLayer.parentOfObject=object.parentNode;}
object.style.zIndex=maskLayer.maxZIndex+1;object.style.display="block";blockContainer.appendChild(object);}}catch(err){}
return maskLayer;};UIMaskLayer.prototype.doScroll=function(){if(document.getElementById("MaskLayer")){var maskLayer=document.getElementById("MaskLayer");maskLayer.style.top=document.documentElement.scrollTop+"px";setTimeout("eXo.core.UIMaskLayer.doScroll()",1);}else if(document.getElementById("subMaskLayer")){var subMaskLayer=document.getElementById("subMaskLayer");subMaskLayer.id="MaskLayer";eXo.core.UIMaskLayer.doScroll();}};UIMaskLayer.prototype.setPosition=function(){var UIMaskLayer=eXo.core.UIMaskLayer;var Browser=eXo.core.Browser;var object=UIMaskLayer.object;var blockContainer=UIMaskLayer.blockContainer;var position=UIMaskLayer.position;object.style.position="absolute";var left;var top;if(position=="TOP-LEFT"){left=0;top=0;}else if(position=="TOP-RIGHT"){return;}else if(position=="BOTTOM-LEFT"){left=0;top=Browser.getBrowserHeight()-object.offsetHeight+document.documentElement.scrollTop;}else if(position=="BOTTOM-RIGHT"){left=blockContainer.offsetWidth-object.offsetWidth;top=Browser.getBrowserHeight()-object.offsetHeight+document.documentElement.scrollTop;}else{left=(blockContainer.offsetWidth-object.offsetWidth)/2;top=(Browser.getBrowserHeight()-object.offsetHeight)/2+document.documentElement.scrollTop;}
object.style.left=left+"px";object.style.top=top+"px";};UIMaskLayer.prototype.removeMask=function(maskLayer){if(maskLayer){var parentNode=maskLayer.parentNode;maskLayer.nextSibling.style.display="none";if(maskLayer.nextSiblingOfObject){maskLayer.nextSiblingOfObject.parentNode.insertBefore(maskLayer.nextSibling,maskLayer.nextSiblingOfObject);maskLayer.nextSiblingOfObject=null;}else{maskLayer.parentOfObject.appendChild(maskLayer.nextSibling);maskLayer.parentOfObject=null;}
parentNode.removeChild(maskLayer);}};UIMaskLayer.prototype.resizeMaskLayer=function(){return;};eXo.core.UIMaskLayer=new UIMaskLayer();function Skin(){};Skin.prototype.addSkin=function(componentId,url){var skin=document.getElementById(componentId);if(skin!=null)return;var link=document.createElement('link');link.setAttribute('id',componentId);link.setAttribute('rel','stylesheet');link.setAttribute('type','text/css');link.setAttribute('href',url);var head=document.getElementsByTagName("head")[0];head.appendChild(link);};Skin.prototype.addCoreSkin=function(componentId,url){if(document.getElementById(componentId)==null){var coreSkin=document.getElementById("CoreSkin");var head=coreSkin.parentNode;var link=document.createElement('link');link.setAttribute('id',componentId);link.setAttribute('rel','stylesheet');link.setAttribute('type','text/css');link.setAttribute('href',url);head.insertBefore(link,coreSkin);}};Skin.prototype.addApplicationSkin=function(componentId,url){if(document.getElementById(componentId)==null){var coreSkin=document.getElementById("PortalSkin");var head=coreSkin.parentNode;var link=document.createElement('link');link.setAttribute('id',componentId);link.setAttribute('rel','stylesheet');link.setAttribute('type','text/css');link.setAttribute('href',url);head.insertBefore(link,coreSkin);}};if(!eXo.core.Skin){eXo.core.Skin=new Skin();};function DragDropEvent(clickObject,dragObject){this.clickObject=clickObject;if(dragObject&&dragObject!=null){this.dragObject=dragObject;}else{this.dragObject=clickObject;}
this.foundTargetObject=null;this.lastFoundTargetObject=null;this.junkMove=false;if(isNaN(parseInt(this.dragObject.style.left)))this.dragObject.style.left="0px";if(isNaN(parseInt(this.dragObject.style.top)))this.dragObject.style.top="0px";};DragDropEvent.prototype.update=function(foundTargetObject,junkMove){this.lastFoundTargetObject=this.foundTargetObject;this.foundTargetObject=foundTargetObject;this.junkMove=junkMove;}
DragDropEvent.prototype.isJunkMove=function(){return this.junkMove;};function DragDrop(){this.dropableTargets=null;this.dndEvent=null;this.initCallback=null;this.dragCallback=null;this.dropCallback=null;this.destroyCallback=null;this.isJunkMoveCallback=null;};DragDrop.prototype.init=function(dropableTargets,clickObject,dragObject,evt){eXo.core.Mouse.init(evt);this.dropableTargets=dropableTargets;var dndEvent=this.dndEvent=new DragDropEvent(clickObject,dragObject);document.onmousemove=this.onMouseMove;document.onmouseup=this.onDrop;document.onkeypress=this.onKeyPressEvt;if(this.initCallback!=null){this.initCallback(dndEvent);}};DragDrop.prototype.onKeyPressEvt=function(evt){if(!evt)evt=window.event;if(evt.keyCode==27)eXo.core.DragDrop.onDrop(evt);}
DragDrop.prototype.onMouseMove=function(evt){eXo.core.Mouse.update(evt);var dndEvent=eXo.core.DragDrop.dndEvent;dndEvent.backupMouseEvent=evt;var dragObject=dndEvent.dragObject;var y=parseInt(dragObject.style.top);var x=parseInt(dragObject.style.left);dragObject.style["left"]=x+eXo.core.Mouse.deltax+"px";dragObject.style["top"]=y+eXo.core.Mouse.deltay+"px";if(eXo.core.DragDrop.dragCallback!=null){var foundTarget=eXo.core.DragDrop.findDropableTarget(dndEvent,eXo.core.DragDrop.dropableTargets,evt);var junkMove=eXo.core.DragDrop.isJunkMove(dragObject,foundTarget);dndEvent.update(foundTarget,junkMove);eXo.core.DragDrop.dragCallback(dndEvent);}
return false;};DragDrop.prototype.onDrop=function(evt){if(eXo.core.DragDrop.dropCallback!=null){var dndEvent=eXo.core.DragDrop.dndEvent;dndEvent.backupMouseEvent=evt;var dragObject=dndEvent.dragObject;var foundTarget=eXo.core.DragDrop.findDropableTarget(dndEvent,eXo.core.DragDrop.dropableTargets,evt);var junkMove=eXo.core.DragDrop.isJunkMove(dragObject,foundTarget);dndEvent.update(foundTarget,junkMove);eXo.core.DragDrop.dropCallback(dndEvent);}
eXo.core.DragDrop.destroy();};DragDrop.prototype.destroy=function(){if(this.destroyCallback!=null){this.destroyCallback(this.dndEvent);}
document.onmousemove=null;document.onmouseup=null;document.onkeypress=null;this.dndEvent=null;this.dropableTargets=null;this.initCallback=null;this.dragCallback=null;this.dropCallback=null;this.destroyCallback=null;this.isJunkMoveCallback=null;};DragDrop.prototype.findDropableTarget=function(dndEvent,dropableTargets,mouseEvent){if(dropableTargets==null)return null;var mousexInPage=eXo.core.Browser.findMouseXInPage(mouseEvent);var mouseyInPage=eXo.core.Browser.findMouseYInPage(mouseEvent);var clickObject=dndEvent.clickObject;var dragObject=dndEvent.dragObject;var foundTarget=null;var len=dropableTargets.length;for(var i=0;i<len;i++){var ele=dropableTargets[i];if(dragObject!=ele&&this.isIn(mousexInPage,mouseyInPage,ele)){if(foundTarget==null){foundTarget=ele;}else{if(this.isAncestor(foundTarget,ele)){foundTarget=ele;}}}}
return foundTarget;};DragDrop.prototype.isAncestor=function(ancestor,child){var path=child.id;var parent=child.parentNode;while(parent!=null){path=parent.className+"/"+path;if(parent==ancestor)return true;var tmp=parent.parentNode;parent=tmp;}
return false;};DragDrop.prototype.isIn=function(x,y,component){var componentLeft=eXo.core.Browser.findPosX(component);var componentRight=componentLeft+component.offsetWidth;var componentTop=eXo.core.Browser.findPosY(component);var componentBottom=componentTop+component.offsetHeight;var isOver=false;var uiWorkspaceContainer=document.getElementById("UIWorkspaceContainer");if((uiWorkspaceContainer&&uiWorkspaceContainer.style.display!="none")&&eXo.core.Browser.isIE7()){componentRight=componentRight-uiWorkspaceContainer.clientWidth;}
if(eXo.core.Browser.getBrowserType()=="ie"){componentLeft=componentLeft/2;}
if((componentLeft<x)&&(x<componentRight)){if((componentTop<y)&&(y<componentBottom)){isOver=true;}}
return isOver;};DragDrop.prototype.isJunkMove=function(src,target){if(this.isJunkMoveCallback!=null){return this.isJunkMoveCallback(src,target);}
if(target==null)return true;return false;};eXo.core.DragDrop=new DragDrop();function TemplateEngine(){this.cacheTemplates=new eXo.core.HashMap();};TemplateEngine.prototype.merge=function(template,context,jsLocation){if(jsLocation==null)jsLocation='/eXoResources/javascript/';var path=jsLocation+template;var cacheDirective="max-age=864000";var script=this.cacheTemplates.get(path);if(script==null){window.status="Loading Javascript Template "+path;var request=eXo.core.Browser.createHttpRequest();request.open('GET',path,false);request.setRequestHeader("Cache-Control",cacheDirective);request.send(null);script=this.compile(request.responseText);this.cacheTemplates.put(path,script);}
return this.mergeScript(script,context);};TemplateEngine.prototype.toHTML=function(template,context){var script=this.compile(template);return this.mergeScript(script,context);};TemplateEngine.prototype.mergeScript=function(script,context){eXo.core.TemplateEngine.currentContext=context;eval(script);var result=eXo.core.TemplateEngine.currentResult;eXo.core.TemplateEngine.currentContext=null;eXo.core.TemplateEngine.currentResult=null;return result;};TemplateEngine.prototype.compile=function(template){template=template.replace(/\r/g,"");template=template.replace(/\t/g,"");template=template.replace(/\"/g,"\\\"");var lines=template.split(/\n/g);var script="var result = '' ;\n";script+="var context = eXo.core.TemplateEngine.currentContext ;\n";var inBlockCode=false;var len=lines.length;for(var i=0;i<len;i++){var line=lines[i];if(line.match(/^[ ]*<%[^=].*%>[ ]*$/)){line=line.replace(/<%/g,"");line=line.replace(/%>/g,"");script+=line+'\n';}else if(line.match(/^[ ]*<%[ ]*$/)){inBlockCode=true;}else if(line.match(/^[ ]*%>[ ]*$/)){inBlockCode=false;}else{if(inBlockCode==true){script+=line+'\n';}else{script+='result += "';line=line.replace(/<%=/g,"\" + ");line=line.replace(/%>/g," + \"");script+=line+'";\n';}}}
script+='eXo.core.TemplateEngine.currentResult = result ;';return script;};eXo.core.TemplateEngine=new TemplateEngine();function Spliter(){};Spliter.prototype.exeRowSplit=function(e,markerobj){_e=(window.event)?window.event:e;this.posY=_e.clientY;var marker=(typeof(markerobj)=="string")?document.getElementById(markerobj):markerobj;this.beforeArea=eXo.core.DOMUtil.findPreviousElementByTagName(marker,"div");this.afterArea=eXo.core.DOMUtil.findNextElementByTagName(marker,"div");this.beforeArea.style.height=this.beforeArea.offsetHeight+"px";this.afterArea.style.height=this.afterArea.offsetHeight+"px";this.beforeY=this.beforeArea.offsetHeight;this.afterY=this.afterArea.offsetHeight;document.onmousemove=eXo.core.Spliter.adjustHeight;document.onmouseup=eXo.core.Spliter.clear;};Spliter.prototype.adjustHeight=function(evt){evt=(window.event)?window.event:evt;var Spliter=eXo.core.Spliter;var delta=evt.clientY-Spliter.posY;var afterHeight=(Spliter.afterY-delta);var beforeHeight=(Spliter.beforeY+delta);if(beforeHeight<=0||afterHeight<=0)return;Spliter.beforeArea.style.height=beforeHeight+"px";Spliter.afterArea.style.height=afterHeight+"px";};Spliter.prototype.clear=function(){document.onmousemove=null;};eXo.core.Spliter=new Spliter();function Topic(){this.topics={};this.nextListenerInstanceId_=0;}
Topic.prototype._normalizeTopicName=function(topic){if(topic.charAt(topic.length-1)!='/'){topic=topic+"/";}
return topic;}
Topic.prototype._getNextListenerInstanceId=function(){return this.nextListenerInstanceId_++;};Topic.prototype.publish=function(senderId,topicName,message){topicName=this._normalizeTopicName(topicName);var event={senderId:senderId,message:message,topic:topicName};for(var topic in this.topics){if(topic&&topicName.indexOf(topic)===0){var callbacks=this.topics[topic];for(var j=0;j<callbacks.length;j++){callback=callbacks[j];callback["func"](event);}}}}
Topic.prototype.isSubscribed=function(topic,func){topic=this._normalizeTopicName(topic);callbacks=this.topics[topic];if(!callbacks)
return false;for(var i=0;i<callbacks.length;i++){callback=callbacks[i];if(callback["func"]==func){return true;}}
return false;}
Topic.prototype.subscribe=function(topic,func){topic=this._normalizeTopicName(topic);if(this.isSubscribed(topic,func))
return-1;if(!this.topics[topic]){this.topics[topic]=new Array();}
var id=this._getNextListenerInstanceId();this.topics[topic][this.topics[topic].length]={id:id,func:func};return id;}
Topic.prototype.unsubscribe=function(topic,id){topic=this._normalizeTopicName(topic);callbacks=this.topics[topic];if(!callbacks)
return false;var removed=false;for(var i=0;i<callbacks.length;i++){callback=callbacks[i];if(removed){callbacks[i-1]=callbacks[i];}
if(callback["id"]==id){delete callbacks[i];removed=true;}}
if(removed){callbacks.length=callbacks.length-1;}
return removed;}
eXo.core.Topic=new Topic();function UIWidget(){this.temp=0;this.zIndex=0;};UIWidget.prototype.init=function(uiWidget,inDesktop){uiWidget.onmouseover=eXo.widget.UIWidget.showWidgetControl;uiWidget.onmouseout=eXo.widget.UIWidget.hideWidgetControl;if(inDesktop){var appDescriptor=uiWidget.applicationDescriptor;uiWidget.style.width=appDescriptor.application.width;uiWidget.style.height=appDescriptor.application.height;uiWidget.style.position="absolute";var posX=appDescriptor.widget.positionX;var posY=appDescriptor.widget.positionY;var zIndex=appDescriptor.widget.zIndex;if(posX<0)posX=0;if(posY<0)posY=0;if(zIndex<0)zIndex=0;uiWidget.style.left=posX+"px";uiWidget.style.top=posY+"px";uiWidget.style.zIndex=zIndex;}};UIWidget.prototype.editWidget=function(selectedElement){var DOMUtil=eXo.core.DOMUtil;var uiWidget=DOMUtil.findAncestorByClass(selectedElement,"UIWidget");var editMode=DOMUtil.findFirstDescendantByClass(uiWidget,"div","EditMode");if(editMode){viewMode=DOMUtil.findNextElementByTagName(editMode,"div");if(editMode.style.display=="none"){editMode.style.position="absolute";editMode.style.display="block";editMode.style.left=viewMode.offsetWidth+"px";}else{editMode.style.display="none";}}};UIWidget.prototype.deleteWidget=function(selectedElement){var DOMUtil=eXo.core.DOMUtil;var uiWidgetContainer=DOMUtil.findAncestorByClass(selectedElement,"UIWidgetContainer");var uiPage=DOMUtil.findAncestorByClass(selectedElement,"UIPage");var uiWidget=DOMUtil.findAncestorByClass(selectedElement,"UIWidget");var containerBlockId;var isInControlWorkspace=false;if(uiPage){var uiPageIdNode=DOMUtil.findFirstDescendantByClass(uiPage,"div","id");containerBlockId=uiPageIdNode.innerHTML;}
else{containerBlockId=uiWidgetContainer.id;isInControlWorkspace=true;}
var params=[{name:"objectId",value:uiWidget.id}];if(confirm("Are you sure you want to delete this widget ?")){var result=ajaxAsyncGetRequest(eXo.env.server.createPortalURL(containerBlockId,"DeleteWidget",true,params),false);if(result=="OK"){DOMUtil.removeElement(uiWidget);if(isInControlWorkspace)eXo.webui.UIVerticalScroller.refreshScroll(0);}}};UIWidget.prototype.showWidgetControl=function(e){if(!e)e=window.event;e.cancelBubble=true;var DOMUtil=eXo.core.DOMUtil;var uiWidget=this;var widgetControl=DOMUtil.findFirstDescendantByClass(uiWidget,"div","WidgetControl");widgetControl.style.display="block";var uiPageDesktop=DOMUtil.findAncestorByClass(uiWidget,"UIPageDesktop");if(uiPageDesktop){var dragHandleArea=DOMUtil.findFirstDescendantByClass(widgetControl,"div","WidgetDragHandleArea");dragHandleArea.title="Drag this Widget";widgetControl.onmousedown=eXo.widget.UIWidget.initDND;}};UIWidget.prototype.hideWidgetControl=function(e){if(!e)e=window.event;e.cancelBubble=true;var uiWidget=this;var widgetControl=eXo.core.DOMUtil.findFirstDescendantByClass(uiWidget,"div","WidgetControl");widgetControl.style.display="none";};UIWidget.prototype.initDND=function(e){var DragDrop=eXo.core.DragDrop;var DOMUtil=eXo.core.DOMUtil;var uiPageDesktop=document.getElementById("UIPageDesktop");var limitX=50;DragDrop.initCallback=function(dndEvent){var dragObject=dndEvent.dragObject;var dragObjectX=dragObject.offsetLeft;var dragObjectY=dragObject.offsetTop;if(dragObjectX>limitX)dragObject.isIn=false;else dragObject.isIn=true;UIDesktop=eXo.desktop.UIDesktop;UIDesktop.resetZIndex(dragObject);dragObject.onclick=function(){UIDesktop.resetZIndex(this);}}
DragDrop.dragCallback=function(dndEvent){var dragObject=dndEvent.dragObject;var dragObjectX=dragObject.offsetLeft;var dragObjectY=dragObject.offsetTop;if(dragObjectX<limitX&&dragObject.isIn==false){dragObject.style.left="0px";}}
DragDrop.dropCallback=function(dndEvent){var dragObject=dndEvent.dragObject;var dragObjectX=dragObject.offsetLeft;var dragObjectY=dragObject.offsetTop;if(dragObjectX<limitX&&dragObject.isIn==true){dragObject.style.left="0px";}
if(dragObjectY<limitX){dragObject.style.top="0px";}
var offsetHeight=uiPageDesktop.offsetHeight-dragObject.offsetHeight-limitX;var offsetTop=dragObject.offsetTop;var offsetWidth=uiPageDesktop.offsetWidth-dragObject.offsetWidth-limitX;var offsetLeft=dragObject.offsetLeft;if(dragObject.offsetLeft<0)dragObject.style.left="0px";if(dragObject.offsetTop<0)dragObject.style.top="0px";if(offsetTop>offsetHeight)dragObject.style.top=(offsetHeight+limitX)+"px";if(offsetLeft>offsetWidth)dragObject.style.left=(offsetWidth+limitX)+"px";eXo.widget.UIWidget.saveWindowProperties(dragObject);}
var clickBlock=this;var dragBlock=eXo.core.DOMUtil.findAncestorByClass(this,"UIDragObject");DragDrop.init(null,clickBlock,dragBlock,e);};UIWidget.prototype.saveWindowProperties=function(object){var DOMUtil=eXo.core.DOMUtil;var uiPage=DOMUtil.findAncestorByClass(object,"UIPage");var uiPageIdNode=DOMUtil.findFirstDescendantByClass(uiPage,"div","id");containerBlockId=uiPageIdNode.innerHTML;var params=[{name:"objectId",value:object.id},{name:"posX",value:object.offsetLeft},{name:"posY",value:object.offsetTop},{name:"zIndex",value:object.style.zIndex}];ajaxAsyncGetRequest(eXo.env.server.createPortalURL(containerBlockId,"SaveWidgetProperties",true,params),false);};UIWidget.prototype.resizeContainer=function(){var widgets=document.getElementById("UIWidgets");if(widgets==null)return;var DOMUtil=eXo.core.DOMUtil;var workspacePanel=document.getElementById("UIWorkspacePanel");if(workspacePanel.style.display=="none")return;var uiWidgetContainer=DOMUtil.findFirstDescendantByClass(widgets,"div","UIWidgetContainer");if(uiWidgetContainer==null)return;var widgetNavigator=DOMUtil.findFirstChildByClass(uiWidgetContainer,"div","WidgetNavigator");var widgetContainerScrollArea=DOMUtil.findFirstChildByClass(uiWidgetContainer,"div","WidgetContainerScrollArea");var itemSelectorContainer=DOMUtil.findFirstChildByClass(widgets,"div","ItemSelectorContainer");var availableHeight=workspacePanel.offsetHeight-(itemSelectorContainer.offsetHeight+widgetNavigator.offsetHeight+40);if(eXo.core.Browser.isIE6()||workspacePanel.offsetHeight<1){var uiControlWorkspace=document.getElementById("UIControlWorkspace");var fixHeight=uiControlWorkspace.offsetHeight-153;fixHeight=(fixHeight<0)?0:fixHeight;if(widgetContainerScrollArea.offsetHeight==fixHeight)return;widgetContainerScrollArea.style.height=fixHeight+"px";}else{if(availableHeight<0)return;widgetContainerScrollArea.style.height=availableHeight+"px";}
widgetContainerScrollArea.style.overflow="hidden";};eXo.widget.UIWidget=new UIWidget();function UIAddWidget(){};UIAddWidget.prototype.show=function(){var DOMUtil=eXo.core.DOMUtil;var context=new Object();context.uiMaskWorkspace={width:"700px"}
context.uiMaskWorkspace.content=eXo.core.TemplateEngine.merge("eXo/widget/UIAddWidget.jstmpl",context);var innerHTML=eXo.core.TemplateEngine.merge("eXo/portal/UIMaskWorkspace.jstmpl",context);var uiMaskWorkspaceNode=DOMUtil.createElementNode(innerHTML,"div");eXo.core.UIMaskLayer.createMask("UIPortalApplication",uiMaskWorkspaceNode,30);};UIAddWidget.prototype.addWidget=function(widgetElement){var appDescriptor=widgetElement.applicationDescriptor;var uiWidgets=document.getElementById("UIWidgets");var widgetContainerScrollArea=eXo.core.DOMUtil.findFirstDescendantByClass(uiWidgets,"div","WidgetContainerScrollArea");widgetContainerScrollArea.appendChild(widgetElement);eXo.widget.UIWidget.init(widgetElement);var styleId=appDescriptor.appId+"Stylesheet";eXo.core.Skin.addSkin(styleId,appDescriptor.application.skin[eXo.env.client.skin]);eXo.webui.UIVerticalScroller.init();};UIAddWidget.prototype.addWidgetToDesktop=function(widgetElement){var appDescriptor=widgetElement.applicationDescriptor;var uiPageDesktop=document.getElementById("UIPageDesktop");if(uiPageDesktop==null)return;uiPageDesktop.appendChild(widgetElement);eXo.widget.UIWidget.init(widgetElement,true);var styleId=appDescriptor.appId+"Stylesheet";eXo.core.Skin.addSkin(styleId,appDescriptor.application.skin[eXo.env.client.skin]);};eXo.widget.UIAddWidget=new UIAddWidget();function UIExoWidget(){}
UIExoWidget.prototype.init=function(appName,appFolder,attrsWidget){this.appCategory="eXoWidgetWeb";this.appName=appName;this.attrsWidget=attrsWidget;this.appFolder=appFolder;var nameWidget=eXo.widget.UIExoWidget.getNameWidget(appName);this.appIcon="/eXoResources/skin/DefaultSkin/portal/webui/component/view/UIPageDesktop/icons/80x80/"+nameWidget+".png";this.skin={Default:"/eXoWidgetWeb/skin/"+appFolder+"/DefaultStylesheet.css",Mac:"/eXoWidgetWeb/skin/"+appFolder+"/MacStylesheet.css",Vista:"/eXoWidgetWeb/skin/"+appFolder+"/VistaStylesheet.css"};this.width="220px";this.height="auto";};UIExoWidget.prototype.createApplicationInstance=function(appDescriptor){var instance=new Object();var DOMUtil=eXo.core.DOMUtil;var appElement=document.getElementById(this.appName);if(appElement==null)return;appDescriptor.widget={positionX:appElement.getAttribute('posX'),positionY:appElement.getAttribute('posY'),zIndex:appElement.getAttribute('zIndex'),uiWidget:{}};var setWidgetData='appDescriptor.widget.uiWidget = { '+'temporaty : appElement, '+'appId : appElement.getAttribute(\'applicationId\') ';if(this.attrsWidget!=null&&this.attrsWidget.length>0){for(var i=0;i<this.attrsWidget.length;i++){var attrWidget=this.attrsWidget[i];setWidgetData+=','+attrWidget+': appElement.getAttribute(\''+attrWidget+'\')';}}
setWidgetData+='};';eval(setWidgetData);appDescriptor.widget.content=eXo.core.TemplateEngine.merge("eXo/widget/web/"+this.appFolder+"/"+this.appName+".jstmpl",appDescriptor,"/eXoWidgetWeb/javascript/");appDescriptor.widget.removeApplication="eXo.widget.web."+this.appName+".destroyInstance('"+appDescriptor.appId+"');";var innerHTML=eXo.core.TemplateEngine.merge("eXo/widget/UIWidget.jstmpl",appDescriptor);var applicationNode=DOMUtil.createElementNode(innerHTML,"div");applicationNode.applicationDescriptor=appDescriptor;return applicationNode;};UIExoWidget.prototype.initApplication=function(applicationId,instanceId){var DOMUtil=eXo.core.DOMUtil;var appDescriptor=new eXo.application.ApplicationDescriptor(instanceId,this);var appInstance=appDescriptor.createApplication();if(appInstance==null)return;appInstance.id=appInstance.applicationDescriptor.widget.uiWidget.appId;var appElement=appInstance.applicationDescriptor.widget.uiWidget.temporaty;var uiPageDesktop=DOMUtil.findAncestorByClass(appElement,"UIPageDesktop");if(uiPageDesktop==null)eXo.widget.UIAddWidget.addWidget(appInstance);else eXo.widget.UIAddWidget.addWidgetToDesktop(appInstance);DOMUtil.removeElement(appElement);};UIExoWidget.prototype.destroyApplicationInstance=function(appDescriptor){var applicationNode=document.getElementById(appDescriptor.appId);return applicationNode;};UIExoWidget.prototype.destroyInstance=function(instanceId){if(!confirm("Are you sure you want to delete this application?"))return;var appDescriptor=new eXo.application.ApplicationDescriptor(instanceId,this);var removeAppInstance=appDescriptor.destroyApplication();eXo.desktop.UIDesktop.removeJSApplication(removeAppInstance);};UIExoWidget.prototype.getNameWidget=function(nameWidget){var strlabel=nameWidget.charAt(2);for(var i=3;i<nameWidget.length;i++){strlabel=strlabel+nameWidget.charAt(i);}
return strlabel;};eXo.widget.UIExoWidget=new UIExoWidget();function UIDockbar(){this.curve=3;this.weight=2.3;this.isFirstTime=true;this.showDesktop=false;this.arrayImage=false;};UIDockbar.prototype.init=function(){var UIDockbar=eXo.desktop.UIDockbar;var uiDockbar=document.getElementById("UIDockBar");if(!uiDockbar)return;var imgObject=eXo.core.DOMUtil.findDescendantsByClass(uiDockbar,"img","Icon");UIDockbar.arrayImage=imgObject;uiDockbar.defaultIconSize=40;uiDockbar.originalBGDockbarHeight=47;if(imgObject.length>0&&imgObject[0].onmousemove==undefined)this.isFirstTime=true;if(this.isFirstTime==true){setTimeout("eXo.desktop.UIDockbar.waitOnLoad(eXo.desktop.UIDockbar.arrayImage)",0);this.isFirstTime=false;}
UIDockbar.resizeDockBar();uiDockbar.originalDockbarHeight=uiDockbar.offsetHeight;var portletsViewer=document.getElementById("PortletsViewer");var widgetsViewer=document.getElementById("WidgetsViewer");portletsViewer.onclick=this.viewPortlets;widgetsViewer.onclick=this.viewWidgets;};UIDockbar.prototype.waitOnLoad=function(images){var UIDockbar=eXo.desktop.UIDockbar;for(var i=0;i<images.length;i++){images[i].onmousemove=UIDockbar.animationEvt;images[i].onmouseover=UIDockbar.iconOverEvt;images[i].onmouseout=UIDockbar.iconOutEvt;if(eXo.core.Browser.isIE6()&&(images[i].alt!="")){images[i].runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+images[i].src+"', sizingMethod='scale')";images[i].src=images[i].alt;images[i].alt="";}}};UIDockbar.prototype.startDockBarEvt=function(evt){evt.cancelBubble=true;document.oncontextmenu=document.body.oncontextmenu=function(){return false};var uiPageDesktop=document.getElementById("UIPageDesktop");uiPageDesktop.onmouseover=eXo.desktop.UIDockbar.endDockBarEvt;};UIDockbar.prototype.endDockBarEvt=function(){this.onmouseover=null;document.oncontextmenu=document.body.oncontextmenu=function(){return true};eXo.webui.UIRightClickPopupMenu.hideContextMenu("DockbarContextMenu");eXo.desktop.UIDockbar.hideNavigation();eXo.desktop.UIDockbar.reset();};UIDockbar.prototype.iconOverEvt=function(){var uiDockbar=document.getElementById("UIDockBar");var objectXInDockbar=eXo.core.Browser.findPosXInContainer(this,uiDockbar);var iconContainer=document.getElementById("IconContainer");var tooltip=this.nextSibling;eXo.webui.UIRightClickPopupMenu.hideContextMenu("DockbarContextMenu");eXo.desktop.UIDockbar.hideNavigation();tooltip.style.display="block";tooltip.style.top=(-tooltip.offsetHeight)+"px";tooltip.style.left=objectXInDockbar+"px";}
UIDockbar.prototype.iconOutEvt=function(){var uiDockbar=document.getElementById("UIDockBar");var objectXInDockbar=eXo.core.Browser.findPosXInContainer(this,uiDockbar);var iconContainer=document.getElementById("IconContainer");var tooltipObjects=eXo.core.DOMUtil.findChildrenByClass(iconContainer,"span","Tooltip");this.nextSibling.style.display="none";}
UIDockbar.prototype.viewPortlets=function(){var uiPageDesktop=document.getElementById("UIPageDesktop");var children=eXo.core.DOMUtil.findDescendantsByClass(uiPageDesktop,"div","UIWindow");var srcMonitoringImage="/eXoResources/skin/DefaultSkin/portal/webui/component/view/UIPageDesktop/icons/80x80/Hide"+this.id+".png";var srcPortletsViewerImage="/eXoResources/skin/DefaultSkin/portal/webui/component/view/UIPageDesktop/icons/80x80/Show"+this.id+".png";eXo.desktop.UIDockbar.showDesktop=false;for(var i=0;i<children.length;i++){if(children[i].style.display=="block"){children[i].style.display="none";children[i].isShowed=true;eXo.desktop.UIDockbar.showDesktop=false;}else{if(children[i].isShowed){children[i].style.display="block";eXo.desktop.UIDockbar.showDesktop=true;}}}
if(eXo.desktop.UIDockbar.showDesktop){if(eXo.core.Browser.isIE6()){this.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+srcMonitoringImage+"', sizingMethod='scale')";}else{this.src=srcMonitoringImage;}}else{if(eXo.core.Browser.isIE6()){this.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+srcPortletsViewerImage+"', sizingMethod='scale')";}else{this.src=srcPortletsViewerImage;}}};UIDockbar.prototype.viewWidgets=function(){var uiPageDesktop=document.getElementById("UIPageDesktop");var children=eXo.core.DOMUtil.findDescendantsByClass(uiPageDesktop,"div","UIWidget");for(var i=0;i<children.length;i++){if(children[i].style.display!="none"){children[i].style.display="none";}else{children[i].style.display="block";}}};UIDockbar.prototype.animationEvt=function(e){var UIDockbar=eXo.desktop.UIDockbar;var curve=UIDockbar.curve;var weight=UIDockbar.weight;var fixBugImageElement=document.getElementById("FixBug");var uiPageDesktop=document.getElementById("UIPageDesktop");var fixIE7Position=uiPageDesktop.offsetLeft;var selectedIconX=eXo.desktop.UIDesktop.findPosXInDesktop(this);var middleIcon=selectedIconX+(this.offsetWidth/2);var mouseX=eXo.core.Browser.findMouseRelativeX(uiPageDesktop,e);var distanceWeight=(middleIcon-mouseX)/(2*curve*(middleIcon-selectedIconX));var selectedIconIndex=UIDockbar.findIndex(this);var icons=eXo.core.DOMUtil.findChildrenByClass(this.parentNode,"img","Icon");var uiDockbar=document.getElementById("UIDockBar");var dockbarCenter=document.getElementById("DockbarCenter");fixBugImageElement.style.height=uiDockbar.defaultIconSize+(uiDockbar.defaultIconSize*(weight-1))+"px";dockbarCenter.style.height=uiDockbar.originalBGDockbarHeight+(uiDockbar.defaultIconSize*(weight-1))+"px";for(var i=0;i<icons.length;i++){var deltaCurve=Math.abs(selectedIconIndex-i);var size=uiDockbar.defaultIconSize;if(deltaCurve<curve){if(i==selectedIconIndex){size=Math.round(uiDockbar.defaultIconSize+
uiDockbar.defaultIconSize*(weight-1)*((curve-deltaCurve)/curve-Math.abs(distanceWeight)));distanceWeight*=-1;}else{size=Math.round(uiDockbar.defaultIconSize+
uiDockbar.defaultIconSize*(weight-1)*((curve-deltaCurve)/curve+distanceWeight));}}
icons[i].style.width=size+"px";icons[i].style.height=size+"px";}
UIDockbar.resizeDockBar();};UIDockbar.prototype.findIndex=function(object){var icons=eXo.core.DOMUtil.findChildrenByClass(object.parentNode,"img","Icon");for(var i=0;i<icons.length;i++){if(icons[i]==object)return i;}};UIDockbar.prototype.removeDockbarIcon=function(idIcon){var icon=document.getElementById(idIcon);if(icon){var portlet=document.getElementById("UIWindow-"+idIcon.replace(/[a-zA-Z]*/,""));if(portlet)portlet.style.display="none";var toolTip=icon.previousSibling;eXo.core.DOMUtil.removeElement(icon);eXo.core.DOMUtil.removeElement(toolTip);}};UIDockbar.prototype.reset=function(){var UIDockbar=eXo.desktop.UIDockbar;var uiDockbar=document.getElementById("UIDockBar");var dockbarCenter=document.getElementById("DockbarCenter");dockbarCenter.style.height=uiDockbar.originalBGDockbarHeight+"px";var iconContainer=document.getElementById("IconContainer");var icons=eXo.core.DOMUtil.findChildrenByClass(iconContainer,"img","Icon");for(var i=0;i<icons.length;i++){icons[i].style.width=uiDockbar.defaultIconSize+"px";icons[i].style.height=uiDockbar.defaultIconSize+"px";}
var fixBugImageElement=document.getElementById("FixBug");fixBugImageElement.style.height=uiDockbar.defaultIconSize+"px";UIDockbar.resizeDockBar();};UIDockbar.prototype.resizeDockBar=function(){var uiPageDesktop=document.getElementById("UIPageDesktop");var uiDockbar=document.getElementById("UIDockBar");var iconContainer=document.getElementById("IconContainer");var icons=eXo.core.DOMUtil.findChildrenByClass(iconContainer,"img","Icon");var widthItemControl=0;for(var i=0;i<icons.length;i++){widthItemControl=(widthItemControl+icons[i].offsetWidth+5);}
var separators=eXo.core.DOMUtil.findChildrenByClass(iconContainer,"img","Separator");var totalWidthSeparators=0;for(var i=0;i<separators.length;i++){totalWidthSeparators=totalWidthSeparators+separators[i].offsetWidth+10;}
iconContainer.style.width=(widthItemControl+totalWidthSeparators+10)+"px";uiDockbar.style.width=(iconContainer.offsetWidth+10)+"px";uiDockbar.style.left=((uiPageDesktop.offsetWidth-uiDockbar.offsetWidth)/2)+"px";};UIDockbar.prototype.resetDesktopShowedStatus=function(uiPageDesktop,uiDockBar){var uiPageDesktopChildren=eXo.core.DOMUtil.getChildrenByTagName(uiPageDesktop,"div");for(var i=0;i<uiPageDesktopChildren.length;i++){if(uiPageDesktopChildren[i].isShowed==true&&uiPageDesktopChildren[i].style.display=="none"){uiPageDesktopChildren[i].isShowed=false;}}
if(this.showDesktop){var portletsViewer=eXo.core.DOMUtil.findDescendantById(uiDockBar,"PortletsViewer");var blankImage=portletsViewer.src;var srcMonitoringImage="/eXoResources/skin/DefaultSkin/portal/webui/component/view/UIPageDesktop/icons/80x80/HidePortletsViewer.png";if(eXo.core.Browser.isIE6()){portletsViewer.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+srcMonitoringImage+"', sizingMethod='scale')";portletsViewer.src=blankImage;}else{portletsViewer.src=srcMonitoringImage;}
this.showDesktop=false;}};UIDockbar.prototype.createApplicationIcon=function(iconUrl,iconId){var appIcon=document.createElement("img");appIcon.className="Icon";appIcon.src=iconUrl;appIcon.id=iconId;appIcon.style.marginRight="4px";if(eXo.core.Browser.isIE6()){appIcon.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+iconUrl+"', sizingMethod='scale')";appIcon.src="/eXoResources/skin/sharedImages/Blank.gif";appIcon.alt="";}
appIcon.onmousemove=eXo.desktop.UIDockbar.animationEvt;appIcon.onmouseover=eXo.desktop.UIDockbar.showTooltip;appIcon.onmouseout=eXo.desktop.UIDockbar.showTooltip;return appIcon;};UIDockbar.prototype.createApplicationTooltip=function(tooltip){var appTooltip=document.createElement("span");appTooltip.className="Tooltip";appTooltip.style.display="none";appTooltip.innerHTML=tooltip;return appTooltip;};UIDockbar.prototype.initNav=function(){var nav=document.getElementById("DockNavigation");eXo.portal.UIExoStartMenu.buildMenu(nav);};UIDockbar.prototype.showNavigation=function(event){event=event||window.event;event.cancelBubble=true;var uiDockbar=document.getElementById("UIDockBar");var dockNavigation=document.getElementById("DockNavigation");dockNavigation.style.display="block";dockNavigation.menuItemContainer=eXo.core.DOMUtil.findFirstDescendantByClass(dockNavigation,"div","MenuItemContainer");eXo.portal.UIExoStartMenu.createSlide(dockNavigation);eXo.core.Mouse.update(event);var fixWidthForIE7=0;var UIWorkingWorkspace=document.getElementById("UIWorkingWorkspace");if(eXo.core.Browser.isIE7()&&document.getElementById("UIDockBar")){fixWidthForIE7=UIWorkingWorkspace.offsetLeft;}
var intTop=eXo.core.Mouse.mouseyInPage-(eXo.core.Browser.findPosY(dockNavigation)-dockNavigation.offsetTop);var intLeft=eXo.core.Mouse.mousexInPage-(eXo.core.Browser.findPosX(dockNavigation)-dockNavigation.offsetLeft)+fixWidthForIE7;dockNavigation.style.left=intLeft+"px";var browserHeight=eXo.core.Browser.getBrowserHeight();if(dockNavigation.menuItemContainer.offsetHeight+64<browserHeight){dockNavigation.style.top=intTop+"px";}};UIDockbar.prototype.hideNavigation=function(event){var nav=document.getElementById("DockNavigation");nav.style.display="none";};eXo.desktop.UIDockbar=new UIDockbar();function UIDesktop(){};UIDesktop.prototype.init=function(){var pageDesktop=document.getElementById("UIPageDesktop");if(pageDesktop){eXo.desktop.UIDesktop.fixDesktop();var uiWindows=eXo.core.DOMUtil.findChildrenByClass(pageDesktop,"div","UIWindow");for(var i=0;i<uiWindows.length;i++){if(uiWindows[i].isFirstTime==false)continue;var blockResizes=eXo.core.DOMUtil.findDescendantsByClass(uiWindows[i],"div","UIResizableBlock");if(blockResizes.length>1)blockResizes[0].style.overflow="hidden";eXo.desktop.UIDesktop.backupWindowProperties(uiWindows[i]);}}};UIDesktop.prototype.fixDesktop=function(){var pageDesktop=document.getElementById("UIPageDesktop");var browserHeight=eXo.core.Browser.getBrowserHeight();if(pageDesktop)pageDesktop.style.height=browserHeight+"px";window.scroll(0,0);eXo.desktop.UIDockbar.init();};UIDesktop.prototype.resetZIndex=function(windowObject){var windowsInDesktop=eXo.core.DOMUtil.getChildrenByTagName(windowObject.parentNode,"div");var maxZIndex=windowObject.style.zIndex;var uiPopupWindow=eXo.core.DOMUtil.findDescendantsByClass(windowObject.parentNode,'div','UIPopupWindow');for(var i=0;i<uiPopupWindow.length;i++){if(uiPopupWindow[i].style.display=="block")return;}
for(var i=0;i<windowsInDesktop.length;i++){if((windowsInDesktop[i].className.indexOf("UIWindow")>=0)||(windowsInDesktop[i].className.indexOf("UIWidget")>=0)){if(parseInt(maxZIndex)<parseInt(windowsInDesktop[i].style.zIndex)){maxZIndex=windowsInDesktop[i].style.zIndex;}
if(parseInt(windowsInDesktop[i].style.zIndex)>=parseInt(windowObject.style.zIndex)){windowsInDesktop[i].style.zIndex=parseInt(windowsInDesktop[i].style.zIndex)-1;}}
if(windowsInDesktop[i].style.zIndex<0)windowsInDesktop[i].style.zIndex=1;}
windowObject.style.zIndex=maxZIndex;};UIDesktop.prototype.isMaxZIndex=function(object){var isMax=false;var DOMUtil=eXo.core.DOMUtil;var uiPageDesktop=document.getElementById("UIPageDesktop");var desktopApps=DOMUtil.getChildrenByTagName(uiPageDesktop,"div");var maxZIndex=parseInt(object.style.zIndex);for(var i=0;i<desktopApps.length;i++){if((desktopApps[i].className.indexOf("UIWindow")>=0)||(desktopApps[i].className.indexOf("UIWidget")>=0)){if(parseInt(desktopApps[i].style.zIndex)>maxZIndex)maxZIndex=desktopApps[i].style.zIndex;}}
if(object.style.zIndex==maxZIndex)isMax=true;return isMax;};UIDesktop.prototype.showHideWindow=function(uiWindow,clickedElement){if(typeof(uiWindow)=="string")this.object=document.getElementById(uiWindow);else this.object=uiWindow;this.object.maxIndex=eXo.desktop.UIDesktop.resetZIndex(this.object);var numberOfFrame=10;if(this.object.style.display=="block"){eXo.animation.ImplodeExplode.implode(this.object,clickedElement,"UIPageDesktop",numberOfFrame,false);eXo.desktop.UIWindow.saveWindowProperties(this.object,"HIDE");this.object.isShowed=false;}else{this.object.isShowed=true;var uiDockBar=document.getElementById("UIDockBar");var uiPageDesktop=document.getElementById("UIPageDesktop");eXo.desktop.UIDockbar.resetDesktopShowedStatus(uiPageDesktop,uiDockBar);eXo.animation.ImplodeExplode.explode(this.object,clickedElement,"UIPageDesktop",numberOfFrame,false);eXo.desktop.UIWindow.saveWindowProperties(this.object,"SHOW");if(eXo.core.Browser.isIE6()){this.object.style.filter="";}
var blockResizes=eXo.core.DOMUtil.findDescendantsByClass(this.object,"div","UIResizableBlock");if(blockResizes.length>1)blockResizes[0].style.overflow="hidden";}};UIDesktop.prototype.findPosXInDesktop=function(object){var uiPageDesktop=eXo.core.DOMUtil.findAncestorByClass(object,"UIPageDesktop");var posXUIPageDesktop=eXo.core.Browser.findPosX(uiPageDesktop);var posXObject=eXo.core.Browser.findPosX(object);return(posXObject-posXUIPageDesktop);};UIDesktop.prototype.findPosYInDesktop=function(object){var uiPageDesktop=eXo.core.DOMUtil.findAncestorByClass(object,"UIPageDesktop");var posYUIPageDesktop=eXo.core.Browser.findPosY(uiPageDesktop);var posYObject=eXo.core.Browser.findPosY(object);return(posYObject-posYUIPageDesktop);};UIDesktop.prototype.backupWindowProperties=function(uiWindow){uiWindow.originalX=eXo.desktop.UIDesktop.findPosYInDesktop(uiWindow);uiWindow.originalY=eXo.desktop.UIDesktop.findPosXInDesktop(uiWindow);uiWindow.originalW=uiWindow.offsetWidth;uiWindow.originalH=uiWindow.offsetHeight;uiWindow.style.visibility="visible";if(uiWindow.style.display=="")uiWindow.style.display="none";uiWindow.isShowed=false;uiWindow.isFirstTime=false;};UIDesktop.prototype.addApplicationToDesktop=function(application,appId,appLocation){try{eXo.require(application,appLocation);}catch(err){alert("Can Not Load Application!");}
eval(application).appLocation=appLocation;eval(application).initApplication(appId);};UIDesktop.prototype.addJSApplication=function(applicationNode){var appDescriptor=applicationNode.applicationDescriptor;var DOMUtil=eXo.core.DOMUtil;var uiPageDesktop=document.getElementById("UIPageDesktop");var iconContainer=document.getElementById("IconContainer");var windowsInDesktop=DOMUtil.findChildrenByClass(uiPageDesktop,"div","UIWindow");var lastElement=null;if(windowsInDesktop[windowsInDesktop.length-1]!=undefined){lastElement=DOMUtil.findNextElementByTagName(windowsInDesktop[windowsInDesktop.length-1],"div");}
if(lastElement==null){uiPageDesktop.appendChild(applicationNode);}else{uiPageDesktop.insertBefore(applicationNode,lastElement);}
var styleId=appDescriptor.appId+"Stylesheet";eXo.core.Skin.addSkin(styleId,appDescriptor.application.skin[eXo.env.client.skin]);var iconUrl=appDescriptor.application.appIcon;var iconId=appDescriptor.appId+"Icon";var appIcon=eXo.desktop.UIDockbar.createApplicationIcon(iconUrl,iconId);var tooltip=appDescriptor.application.appName;var appTooltip=eXo.desktop.UIDockbar.createApplicationTooltip(tooltip);var windowPosX=20;if(applicationNode.style.left!=""){windowPosX=(applicationNode.style.left).replace("px","");}
var windowPosY=20;if(applicationNode.style.top!=""){windowPosY=(applicationNode.style.top).replace("px","");}
eXo.desktop.UIWindow.init(applicationNode,true,windowPosX,windowPosY,appDescriptor.application.minWidth);eXo.desktop.UIDesktop.backupWindowProperties(applicationNode);appIcon.onclick=function(){eXo.desktop.UIDesktop.showHideWindow(applicationNode,this);}
eXo.desktop.UIDockbar.resizeDockBar();};UIDesktop.prototype.removeJSApplication=function(applicationNode){var uiPageDesktop=document.getElementById("UIPageDesktop");var iconContainer=document.getElementById("IconContainer");var appIcon=document.getElementById(applicationNode.id+"Icon");var appTooltip=eXo.core.DOMUtil.findNextElementByTagName(appIcon,"span");uiPageDesktop.removeChild(applicationNode);iconContainer.removeChild(appIcon);iconContainer.removeChild(appTooltip);eXo.desktop.UIDockbar.resizeDockBar();var params=[{name:"jsInstanceId",value:applicationNode.id}];ajaxGet(eXo.env.server.createPortalURL("UIPortal","RemoveJSApplicationToDesktop",true,params));};UIDesktop.prototype.removeApp=function(uri){var appId=uri.substr(uri.lastIndexOf("=")+1);var result=ajaxAsyncGetRequest(uri,false);if(result=="OK"){eXo.desktop.UIDesktop.removeWindow("UIWindow-"+appId);eXo.desktop.UIDockbar.removeDockbarIcon("DockItem"+appId);}};UIDesktop.prototype.removeWindow=function(idWindow){var uiWindow=document.getElementById("UIWindow-"+idWindow);if(uiWindow)eXo.core.DOMUtil.removeElement(uiWindow);};eXo.desktop.UIDesktop=new UIDesktop();function UIItemSelector(){this.backupClass;this.backupItem;};UIItemSelector.prototype.onOver=function(selectedElement,mouseOver){if(selectedElement.className=="Item"){eXo.webui.UIItemSelector.beforeActionHappen(selectedElement);}
if(mouseOver){this.backupClass=selectedElement.className;selectedElement.className="OverItem Item";}else{selectedElement.className=this.backupClass;}};UIItemSelector.prototype.onClick=function(clickedElement){var itemListContainer=clickedElement.parentNode;var allItems=eXo.core.DOMUtil.findDescendantsByClass(itemListContainer,"div","Item");eXo.webui.UIItemSelector.beforeActionHappen(clickedElement);if(this.allItems.length<=0)return;for(var i=0;i<allItems.length;i++){if(allItems[i]!=clickedElement){allItems[i].className="Item";this.onChangeItemDetail(clickedElement,true);}else{allItems[i].className="SelectedItem Item";this.backupClass="SelectedItem Item";this.onChangeItemDetail(clickedElement,false);}}};UIItemSelector.prototype.onChangeItemDetail=function(itemSelected,mouseOver){if(!this.allItems||this.allItems.length<=0)return;if(mouseOver){for(var i=0;i<this.allItems.length;i++){if(this.allItems[i]==itemSelected){this.itemDetails[i].style.display="block";}else{this.itemDetails[i].style.display="none";}}}else{for(var i=0;i<this.allItems.length;i++){if(this.allItems[i].className=="SelectedItem Item"){this.itemDetails[i].style.display="block";}else{this.itemDetails[i].style.display="none";}}}};UIItemSelector.prototype.onClickCategory=function(clickedElement,form,component,option){eXo.webui.UIItemSelector.onClick(clickedElement);if(eXo.webui.UIItemSelector.SelectedItem==null){eXo.webui.UIItemSelector.SelectedItem=new Object();}
eXo.webui.UIItemSelector.SelectedItem.component=component;eXo.webui.UIItemSelector.SelectedItem.option=option;};UIItemSelector.prototype.onClickOption=function(clickedElement,form,component,option){var itemDetailList=eXo.core.DOMUtil.findAncestorByClass(clickedElement,"ItemDetailList");var selectedItems=eXo.core.DOMUtil.findDescendantsByClass(itemDetailList,"div","SelectedItem");for(var i=0;i<selectedItems.length;i++){selectedItems[i].className="NormalItem";}
clickedElement.className="SelectedItem";if(eXo.webui.UIItemSelector.SelectedItem==null){eXo.webui.UIItemSelector.SelectedItem=new Object();}
eXo.webui.UIItemSelector.SelectedItem.component=component;eXo.webui.UIItemSelector.SelectedItem.option=option;};UIItemSelector.prototype.beforeActionHappen=function(selectedItem){DOMUtil=eXo.core.DOMUtil;this.uiItemSelector=DOMUtil.findAncestorByClass(selectedItem,"UIItemSelector");this.itemList=DOMUtil.findAncestorByClass(selectedItem,"ItemList");this.itemListContainer=DOMUtil.findAncestorByClass(selectedItem,"ItemListContainer");this.itemListAray=DOMUtil.findDescendantsByClass(this.itemListContainer.parentNode,"div","ItemList");if(this.itemListAray.length>1){this.itemDetailLists=DOMUtil.findDescendantsByClass(this.itemListContainer.parentNode,"div","ItemDetailList");this.itemDetailList=null;for(var i=0;i<this.itemListAray.length;i++){if(this.itemListAray[i].style.display=="none"){this.itemDetailLists[i].style.display="none";}else{this.itemDetailList=this.itemDetailLists[i];this.itemDetailList.style.display="block";}}}else{this.itemDetailList=DOMUtil.findFirstDescendantByClass(this.itemListContainer.parentNode,"div","ItemDetailList");}
this.itemDetails=DOMUtil.findDescendantsByClass(this.itemDetailList,"div","ItemDetail");var firstItemDescendant=DOMUtil.findFirstDescendantByClass(this.itemList,"div","Item");var firstItemParent=firstItemDescendant.parentNode;this.allItems=DOMUtil.findChildrenByClass(firstItemParent,"div","Item");};UIItemSelector.prototype.showPopupCategory=function(selectedNode){var DOMUtil=eXo.core.DOMUtil;var itemListContainer=DOMUtil.findAncestorByClass(selectedNode,"ItemListContainer");var uiPopupCategory=DOMUtil.findFirstDescendantByClass(itemListContainer,"div","UIPopupCategory");itemListContainer.style.position="relative";if(uiPopupCategory.style.display=="none"){uiPopupCategory.style.position="absolute";uiPopupCategory.style.top="23px";uiPopupCategory.style.left="0px";uiPopupCategory.style.display="block";uiPopupCategory.style.width="100%";}else{uiPopupCategory.style.display="none";}};UIItemSelector.prototype.selectCategory=function(selectedNode){var DOMUtil=eXo.core.DOMUtil;var uiPopupCategory=DOMUtil.findAncestorByClass(selectedNode,"UIPopupCategory");var itemListContainer=DOMUtil.findAncestorByClass(selectedNode,"OverflowContainer");var selectedNodeIndex=eXo.webui.UIItemSelector.findIndex(selectedNode);var itemLists=DOMUtil.findDescendantsByClass(itemListContainer,"div","ItemList");var itemDetailLists=DOMUtil.findDescendantsByClass(itemListContainer,"div","ItemDetailList");for(var i=0;i<itemLists.length;i++){if(i!=selectedNodeIndex){itemLists[i].style.display="none";itemDetailLists[i].style.display="none";}else{itemDetailLists[i].style.display="block";itemLists[i].style.display="block";}}
uiPopupCategory.style.display="none";};UIItemSelector.prototype.findIndex=function(object){var parentNode=object.parentNode;var objectElements=eXo.core.DOMUtil.findChildrenByClass(parentNode,"div",object.className);for(var i=0;i<objectElements.length;i++){if(objectElements[i]==object)return i;}};UIItemSelector.prototype.selectPageLayout=function(id,selectedIndex){var DOMUtil=eXo.core.DOMUtil;var uiDropDownControl=document.getElementById(id);var itemSelectorAncestor=DOMUtil.findAncestorByClass(uiDropDownControl,"ItemSelectorAncestor");var itemList=DOMUtil.findDescendantsByClass(itemSelectorAncestor,"div","ItemList");var itemSelectorLabel=DOMUtil.findDescendantsByClass(itemSelectorAncestor,"a","OptionItem");var uiItemSelector=DOMUtil.findAncestorByClass(uiDropDownControl,"UIItemSelector");var itemDetailList=DOMUtil.findDescendantsByClass(uiItemSelector,"div","ItemDetailList");if(itemList==null)return;for(i=0;i<itemSelectorLabel.length;++i){if(i>=itemList.length)continue;if(i==selectedIndex){itemList[i].style.display="block";if(itemDetailList.length<1)continue;itemDetailList[i].style.display="block";var selectedItem=DOMUtil.findFirstDescendantByClass(itemList[i],"div","SelectedItem");if(selectedItem==null)continue;var setValue=DOMUtil.findDescendantById(selectedItem,"SetValue");if(setValue==null)continue;eval(setValue.innerHTML);}else{itemList[i].style.display="none";if(itemDetailList.length>0)itemDetailList[i].style.display="none";}}};eXo.webui.UIItemSelector=new UIItemSelector();function UIForm(){};UIForm.prototype.getFormElemt=function(pattern){if(pattern.indexOf("#")==-1)return document.getElementById(pattern);var strArr=pattern.split("#");var portlet=document.getElementById(strArr[0]);return eXo.core.DOMUtil.findDescendantById(portlet,strArr[1]);}
UIForm.prototype.submitForm=function(formId,action,useAjax,callback){if(!callback)callback=null;var form=this.getFormElemt(formId);try{if(FCKeditorAPI&&typeof FCKeditorAPI=="object"){for(var name in FCKeditorAPI.__Instances){var oEditor;try{oEditor=FCKeditorAPI.__Instances[name];if(oEditor&&oEditor.GetParentForm&&oEditor.GetParentForm()==form){oEditor.UpdateLinkedField();}}catch(e){continue;}}}}catch(e){}
form.elements['formOp'].value=action;if(useAjax)ajaxPost(form,callback);else form.submit();};UIForm.prototype.submitEvent=function(formId,action,params){var form=this.getFormElemt(formId);try{if(FCKeditorAPI&&typeof FCKeditorAPI=="object"){for(var name in FCKeditorAPI.__Instances){var oEditor=FCKeditorAPI.__Instances[name];if(oEditor.GetParentForm&&oEditor.GetParentForm()==form){oEditor.UpdateLinkedField();}}}}catch(e){}
form.elements['formOp'].value=action;if(!form.originalAction)form.originalAction=form.action;form.action=form.originalAction+encodeURI(params);ajaxPost(form);};UIForm.prototype.selectBoxOnChange=function(formId,elemt){var selectBox=eXo.core.DOMUtil.findAncestorByClass(elemt,"UISelectBoxOnChange");var contentContainer=eXo.core.DOMUtil.findFirstDescendantByClass(selectBox,"div","SelectBoxContentContainer");var tabs=eXo.core.DOMUtil.findChildrenByClass(contentContainer,"div","SelectBoxContent");for(var i=0;i<tabs.length;i++){tabs[i].style.display="none";}
tabs[elemt.selectedIndex].style.display="block";};UIForm.prototype.setHiddenValue=function(formId,typeId,hiddenValue){var form=document.getElementById(formId);if(form==null){maskWorkspace=document.getElementById("UIMaskWorkspace");form=eXo.core.DOMUtil.findDescendantById(maskWorkspace,formId);}
form.elements[typeId].value=hiddenValue;};UIForm.prototype.serializeForm=function(formElement){var queryString="";var element;var elements=formElement.elements;this.addField=function(name,value){if(queryString.length>0)queryString+="&";queryString+=name+"="+encodeURIComponent(value);};for(var i=0;i<elements.length;i++){element=elements[i];switch(element.type){case"text":case"hidden":case"password":case"textarea":this.addField(element.name,element.value.replace(/\r/gi,""));break;case"checkbox":case"radio":if(element.checked)this.addField(element.name,element.value);break;case"select-one":if(element.selectedIndex>-1){this.addField(element.name,element.options[element.selectedIndex].value);}
break;case"select-multiple":while(element.selectedIndex!=-1){this.addField(element.name,element.options[element.selectedIndex].value);element.options[element.selectedIndex].selected=false;}
break;}}
return queryString;};eXo.webui.UIForm=new UIForm();function UIPopup(){this.zIndex=3;};UIPopup.prototype.init=function(popup,containerId){if(typeof(popup)=="string")popup=document.getElementById(popup);if(containerId)popup.containerId=containerId;popup.onmousedown=this.changezIndex;};UIPopup.prototype.changezIndex=function(){this.style.zIndex=++eXo.webui.UIPopup.zIndex;};UIPopup.prototype.create=function(){var popup=document.createElement("div");with(popup.style){position="relative";display="none";}
return popup;};UIPopup.prototype.setSize=function(popup,w,h){popup.style.width=w+"px";popup.style.height=h+"px";};UIPopup.prototype.show=function(popup){if(typeof(popup)=="string"){popup=document.getElementById(popup);}
var uiMaskWS=document.getElementById("UIMaskWorkspace");if(uiMaskWS){uiMaskWSzIndex=eXo.core.DOMUtil.getStyle(uiMaskWS,"zIndex");if(uiMaskWSzIndex&&(uiMaskWSzIndex>eXo.webui.UIPopup.zIndex)){eXo.webui.UIPopup.zIndex=uiMaskWSzIndex;}}
popup.style.zIndex=++eXo.webui.UIPopup.zIndex;popup.style.display="block";};UIPopup.prototype.hide=function(popup){if(typeof(popup)=="string"){popup=document.getElementById(popup);}
popup.style.display="none";};UIPopup.prototype.setPosition=function(popup,x,y){if(popup.containerId){var container=document.getElementById(popup.containerId);container.style.position="relative";}
popup.style.position="absolute";popup.style.top=y+"px";popup.style.left=x+"px";};UIPopup.prototype.setAlign=function(popup,pos){if(typeof(popup)=='string')popup=document.getElementById(popup);var intTop=0;var intLeft=0;switch(pos){case 1:intTop=0;intLeft=0;break;case 2:intTop=0;intLeft=(eXo.core.Browser.getBrowserWidth()-popup.offsetWidth);break;case 3:intTop=(eXo.core.Browser.getBrowserHeight()-popup.offsetHeight);intLeft=0;break;case 4:intTop=(eXo.core.Browser.getBrowserHeight()-popup.offsetHeight);intLeft=(eXo.core.Browser.getBrowserWidth()-popup.offsetWidth);break;default:intTop=(eXo.core.Browser.getBrowserHeight()-popup.offsetHeight)/2;intLeft=(eXo.core.Browser.getBrowserWidth()-popup.offsetWidth)/2;break;}
this.setPosition(popup,intLeft,intTop);};UIPopup.prototype.initDND=function(evt){var DragDrop=eXo.core.DragDrop;DragDrop.initCallback=null;DragDrop.dragCallback=null;DragDrop.dropCallback=null;var clickBlock=this;var dragBlock=eXo.core.DOMUtil.findAncestorByClass(this,"UIDragObject");DragDrop.init(null,clickBlock,dragBlock,evt);};eXo.webui.UIPopup=new UIPopup();function UIPopupSelectCategory(){};UIPopupSelectCategory.prototype.hide=function(){var ln=eXo.core.DOMUtil.hideElementList.length;if(ln>0){for(var i=0;i<ln;i++){eXo.core.DOMUtil.hideElementList[i].style.display="none";}}};UIPopupSelectCategory.prototype.show=function(obj,evt){if(!evt)evt=window.event;evt.cancelBubble=true;var DOMUtil=eXo.core.DOMUtil;var uiPopupCategory=DOMUtil.findFirstDescendantByClass(obj,'div','UIPopupCategory');if(!uiPopupCategory)return;if(uiPopupCategory.style.display=="none"){eXo.webui.UIPopupSelectCategory.hide();uiPopupCategory.style.display="block";eXo.core.DOMUtil.listHideElements(uiPopupCategory);}
else uiPopupCategory.style.display="none";}
eXo.webui.UIPopupSelectCategory=new UIPopupSelectCategory();function UIPopupWindow(){};UIPopupWindow.prototype.init=function(popupId,isShow,isResizable,showCloseButton,isShowMask){var DOMUtil=eXo.core.DOMUtil;this.superClass=eXo.webui.UIPopup;var popup=document.getElementById(popupId);var portalApp=document.getElementById("UIPortalApplication");if(popup==null)return;popup.style.visibility="hidden";var contentBlock=DOMUtil.findFirstDescendantByClass(popup,'div','PopupContent');if((eXo.core.Browser.getBrowserHeight()-100)<contentBlock.offsetHeight){contentBlock.style.height=(eXo.core.Browser.getBrowserHeight()-100)+"px";}
var popupBar=DOMUtil.findFirstDescendantByClass(popup,'div','PopupTitle');popupBar.onmousedown=this.initDND;if(isShow==false){this.superClass.hide(popup);if(isShowMask)eXo.webui.UIPopupWindow.showMask(popup,false);}
if(isResizable){var resizeBtn=DOMUtil.findFirstDescendantByClass(popup,"div","ResizeButton");resizeBtn.style.display='block';resizeBtn.onmousedown=this.startResizeEvt;portalApp.onmouseup=this.endResizeEvt;}
popup.style.visibility="visible";if(isShow==true)this.show(popup,isShowMask);};UIPopupWindow.prototype.showMask=function(popup,isShowPopup){var maskId=popup.id+"MaskLayer";var mask=document.getElementById(maskId);if(isShowPopup){if(mask==null)eXo.core.UIMaskLayer.createMaskForFrame(popup.parentNode,popup,1);}else{if(mask!=null)eXo.core.UIMaskLayer.removeMask(mask);}};UIPopupWindow.prototype.show=function(popup,isShowMask,middleBrowser){var DOMUtil=eXo.core.DOMUtil;if(typeof(popup)=="string")popup=document.getElementById(popup);var portalApp=document.getElementById("UIPortalApplication");var maskLayer=DOMUtil.findFirstDescendantByClass(portalApp,"div","UIMaskWorkspace");var zIndex=0;var currZIndex=0;if(maskLayer!=null){currZIndex=DOMUtil.getStyle(maskLayer,"zIndex");if(!isNaN(currZIndex)&&currZIndex>zIndex)zIndex=currZIndex;}
var popupWindows=DOMUtil.findDescendantsByClass(portalApp,"div","UIPopupWindow");var len=popupWindows.length;for(var i=0;i<len;i++){currZIndex=DOMUtil.getStyle(popupWindows[i],"zIndex");if(!isNaN(currZIndex)&&currZIndex>zIndex)zIndex=currZIndex;}
if(zIndex==0)zIndex=2000;if(isShowMask)eXo.webui.UIPopupWindow.showMask(popup,true);popup.style.visibility="hidden";this.superClass.show(popup);var offsetParent=popup.offsetParent;var scrollY=0;if(window.pageYOffset!=undefined)scrollY=window.pageYOffset;else if(document.documentElement!=undefined)scrollY=document.documentElement.scrollTop;else scrollY=document.body.scrollTop;if(offsetParent){var middleWindow=(eXo.core.DOMUtil.hasClass(offsetParent,"UIPopupWindow")||eXo.core.DOMUtil.hasClass(offsetParent,"UIWindow"));if(middleWindow){popup.style.top=Math.ceil((offsetParent.offsetHeight-popup.offsetHeight)/2)+"px";}
if(middleBrowser||!middleWindow){popup.style.top=Math.ceil((eXo.core.Browser.getBrowserHeight()-popup.offsetHeight)/2)+scrollY+"px";}
var checkHeight=popup.offsetHeight>300;if(document.getElementById("UIDockBar")&&checkHeight){popup.style.top="6px";}
popup.style.left=Math.ceil((offsetParent.offsetWidth-popup.offsetWidth)/2)+"px";}
if(eXo.core.Browser.findPosY(popup)<0)popup.style.top=scrollY+"px";popup.style.visibility="visible";};UIPopupWindow.prototype.increasezIndex=function(popup){var DOMUtil=eXo.core.DOMUtil;if(typeof(popup)=="string")popup=document.getElementById(popup);var portalApp=document.getElementById("UIPortalApplication");var uiLogin=DOMUtil.findFirstDescendantByClass(portalApp,"div","UILoginForm");if(uiLogin){var curMaskzIndex=parseInt(DOMUtil.getStyle(document.getElementById('UIMaskWorkspace'),"zIndex"));popup.style.zIndex=++curMaskzIndex+"";}}
UIPopupWindow.prototype.closePopupEvt=function(evt){eXo.core.DOMUtil.findAncestorByClass(this,"UIDragObject").style.display="none";}
UIPopupWindow.prototype.startResizeEvt=function(evt){var portalApp=document.getElementById("UIPortalApplication");eXo.webui.UIPopupWindow.popupId=eXo.core.DOMUtil.findAncestorByClass(this,"UIPopupWindow").id;portalApp.onmousemove=eXo.webui.UIPopupWindow.resize;portalApp.onmouseup=eXo.webui.UIPopupWindow.endResizeEvt;}
UIPopupWindow.prototype.resize=function(evt){var targetPopup=document.getElementById(eXo.webui.UIPopupWindow.popupId);var content=eXo.core.DOMUtil.findFirstDescendantByClass(targetPopup,"div","PopupContent");var pointerX=eXo.core.Browser.findMouseRelativeX(targetPopup,evt);var pointerY=eXo.core.Browser.findMouseRelativeY(targetPopup,evt);var delta=eXo.core.Browser.findPosYInContainer(content,targetPopup)+
content.style.borderWidth+content.style.padding+content.style.margin;if((1*pointerY-delta)>0)content.style.height=(1*pointerY-delta)+"px";targetPopup.style.height="auto";if(pointerX>200)targetPopup.style.width=(pointerX+5)+"px";};UIPopupWindow.prototype.endResizeEvt=function(evt){delete eXo.webui.UIPopupWindow.popupId;this.onmousemove=null;var portalApp=document.getElementById("UIPortalApplication");portalApp.onmouseup=null;eXo.portal.UIPortalControl.initAllManagers();}
UIPopupWindow.prototype.initDND=function(evt){var DragDrop=eXo.core.DragDrop;var DOMUtil=eXo.core.DOMUtil;DragDrop.initCallback=function(dndEvent){var dragObject=dndEvent.dragObject;dragObject.uiWindowContent=DOMUtil.findFirstDescendantByClass(dragObject,"div","PopupContent");if(eXo.core.Browser.browserType=="mozilla"){dragObject.uiWindowContent.style.overflow="hidden";var elements=eXo.core.DOMUtil.findDescendantsByClass(dragObject.uiWindowContent,"div","PopupMessageBox");for(var i=0;i<elements.length;i++){elements[i].style.overflow="hidden";}}}
DragDrop.dragCallback=function(dndEvent){}
DragDrop.dropCallback=function(dndEvent){var dragObject=dndEvent.dragObject;if(eXo.core.Browser.browserType=="mozilla"){dragObject.uiWindowContent.style.overflow="auto";var elements=eXo.core.DOMUtil.findDescendantsByClass(dragObject.uiWindowContent,"div","PopupMessageBox");for(var i=0;i<elements.length;i++){elements[i].style.overflow="auto";}}
var DOMUtil=eXo.core.DOMUtil;var offsetParent=dragObject.offsetParent;if(offsetParent){if(eXo.core.Browser.findPosY(dragObject)<0)dragObject.style.top=(0-offsetParent.offsetTop)+"px";}else{dragObject.style.top="0px";}}
var clickBlock=this;var dragBlock=eXo.core.DOMUtil.findAncestorByClass(this,"UIDragObject");DragDrop.init(null,clickBlock,dragBlock,evt);};eXo.webui.UIPopupWindow=new UIPopupWindow();UIVerticalScroller=function(){};UIVerticalScroller.prototype.init=function(){eXo.widget.UIWidget.resizeContainer();eXo.webui.UIVerticalScroller.refreshScroll(0);};UIVerticalScroller.prototype.refreshScroll=function(id){var DOMUtil=eXo.core.DOMUtil;var container=document.getElementById("UIWorkspaceContainer");if((container.style.display!="block")||!container)return;var itemContainer=document.getElementById("UIWidgets");if(itemContainer==null)return;var items=DOMUtil.findDescendantsByClass(itemContainer,"div","UIWidget");if(items==null||items.length<1)return;var scrollZone=DOMUtil.findFirstDescendantByClass(itemContainer,"div","ScrollZone");var widgetNavigator=DOMUtil.findFirstDescendantByClass(container,"div","WidgetNavigator");var iconButton=DOMUtil.findDescendantsByClass(widgetNavigator,"div","Icon");var downButton=iconButton[1];var upButton=iconButton[2];var itemSize=items.length;var index=0;for(var i=0;i<itemSize;++i){if(items[i].style.display=="block"){index=i;break;}}
if(index-id>itemSize-1||index==itemSize-1)downButton.className="Icon DisableScrollDownButton";if(index==0){upButton.className="Icon DisableScrollUpButton";if(id==1)return;}
if(itemSize<=0)return;for(var i=index;i<itemSize;++i){items[i].style.display="block";}
var maxHeight=scrollZone.offsetHeight+10;var itemsHeight=0;var tmp=0;var maxIndex=0;var temp=items[index].offsetHeight;if(id<0){items[index].style.display="none";}else{items[index-id].style.display="block";}
if(index<0)index=0;for(var i=index-id;i<itemSize;++i){tmp=items[i].offsetHeight;if(tmp>0&&tmp<209){tmp=229;}
if(DOMUtil.findFirstDescendantByClass(items[i],"div","UIWelcomeWidget")){tmp=146;}
itemsHeight+=tmp;if(itemsHeight>maxHeight){items[i].style.display="none";}else{maxIndex=i;}}
if(maxIndex==(itemSize-1))downButton.className="Icon DisableScrollDownButton";else downButton.className="Icon ScrollDownButton";if(maxHeight>=itemsHeight+temp){if(id<0){items[index].style.display="block";downButton.className="Icon DisableScrollDownButton";if(index==0)index=-1;}}
if(id<0)++index;else--index;if(index>0)upButton.className="Icon ScrollUpButton";else upButton.className="Icon DisableScrollUpButton";};eXo.webui.UIVerticalScroller=new UIVerticalScroller();function UIHorizontalTabs(){this.backupNavigationTabStyle;this.backupItemStyle;};UIHorizontalTabs.prototype.init=function(){};UIHorizontalTabs.prototype.changeTabNavigationStyle=function(clickedEle,over){if(clickedEle==null)return;if(!eXo.core.DOMUtil.hasClass(clickedEle,"UITab"))clickedEle=eXo.core.DOMUtil.findAncestorByClass(clickedEle,"UITab");var tabStyle=eXo.core.DOMUtil.getChildrenByTagName(clickedEle,"div")[0];if(over){this.backupNavigationTabStyle=tabStyle.className;tabStyle.className="HighlightNavigationTab";}else if(this.backupNavigationTabStyle){tabStyle.className=this.backupNavigationTabStyle;}}
UIHorizontalTabs.prototype.itemOver=function(selectedElement,over){if(over){this.backupItemStyle=selectedElement.className;if(selectedElement.className=="MenuItem"){selectedElement.className="MenuItemSelected";}else{selectedElement.className="MenuItemSelected MenuItemExpand";}}else{selectedElement.className=this.backupItemStyle;}};UIHorizontalTabs.prototype.displayTabContent=function(clickedEle){this.changeTabForUITabPane(clickedEle,null,null);};UIHorizontalTabs.prototype.changeTabForUITabPane=function(clickedEle,tabId,url){var DOMUtil=eXo.core.DOMUtil;var uiSelectTab=DOMUtil.findAncestorByClass(clickedEle,"UITab");var uiHorizontalTabs=DOMUtil.findAncestorByClass(clickedEle,"UIHorizontalTabs");var uiTabs=eXo.core.DOMUtil.findDescendantsByClass(uiHorizontalTabs,"div","UITab");var parentdHorizontalTab=uiHorizontalTabs.parentNode;var contentTabContainer=DOMUtil.findFirstDescendantByClass(parentdHorizontalTab,"div","UITabContentContainer");var uiTabContents=DOMUtil.findChildrenByClass(contentTabContainer,"div","UITabContent");var form=DOMUtil.getChildrenByTagName(contentTabContainer,"form");if(form.length>0){var tmp=DOMUtil.findChildrenByClass(form[0],"div","UITabContent");for(var i=0;i<tmp.length;i++){uiTabContents.push(tmp[i]);}}
var index=0;for(var i=0;i<uiTabs.length;i++){var styleTabDiv=DOMUtil.getChildrenByTagName(uiTabs[i],"div")[0];if(styleTabDiv.className=="DisabledTab")continue;if(uiSelectTab==uiTabs[i]){styleTabDiv.className="SelectedTab";index=i;continue;}
styleTabDiv.className="NormalTab";uiTabContents[i].style.display="none";}
uiTabContents[index].style.display="block";if(eXo.ecm.UIJCRExplorer){try{eXo.ecm.UIJCRExplorer.initViewNodeScroll();}catch(e){void(0);}}};UIHorizontalTabs.prototype.changeTabForUIFormTabpane=function(clickedElemt,formId,hiddenValue){this.displayTabContent(clickedElemt,formId,hiddenValue);eXo.webui.UIForm.setHiddenValue(formId,'currentSelectedTab',hiddenValue);};eXo.webui.UIHorizontalTabs=new UIHorizontalTabs();function UIPopupMenu(){this.elementsToHide=new Array();this.currentVisibleContainers=new Array();this.currentElement=null;};UIPopupMenu.prototype.init=function(popupMenu,container,x,y){this.superClass=eXo.webui.UIPopup;this.superClass.init(popupMenu,container.id);};UIPopupMenu.prototype.setPosition=function(popupMenu,x,y){this.superClass.setPosition(popupMenu,x,y);};UIPopupMenu.prototype.setSize=function(popup,w,h){this.superClass.setSize(popupMenu,w,h);};UIPopupMenu.prototype.pushVisibleContainer=function(containerId){eXo.webui.UIPopupMenu.currentVisibleContainers.push(containerId);};UIPopupMenu.prototype.popVisibleContainer=function(){eXo.webui.UIPopupMenu.currentVisibleContainers.pop();};UIPopupMenu.prototype.pushHiddenContainer=function(containerId){eXo.webui.UIPopupMenu.elementsToHide.push(containerId);};UIPopupMenu.prototype.setCloseTimeout=function(time){if(!time)time=100;setTimeout("eXo.webui.UIPopupMenu.doOnMenuItemOut()",time);};UIPopupMenu.prototype.createLink=function(menuItem,link){if(link&&link.href){menuItem.onclick=function(e){if(link.href.substr(0,7)=="http://")window.location.href=link.href;else eval(link.href);if(!e)e=window.event;if(e.stopPropagation)e.stopPropagation();e.cancelBubble=true;return false;}}};UIPopupMenu.prototype.doOnMenuItemOut=function(){while(eXo.webui.UIPopupMenu.elementsToHide.length>0){var container=document.getElementById(eXo.webui.UIPopupMenu.elementsToHide.shift());if(container){if(!eXo.webui.UIPopupMenu.currentVisibleContainers.contains(container.id)){eXo.webui.UIPopupMenu.hide(container);}}}};UIPopupMenu.prototype.showMenuItemContainer=function(menuItemContainer,x,y){this.superClass.setPosition(menuItemContainer,x,y);};UIPopupMenu.prototype.hide=function(object){if(typeof(object)=="string")object=document.getElementById(object);object.style.display="none";};UIPopupMenu.prototype.show=function(object){if(typeof(object)=="string")object=document.getElementById(object);object.style.display="block";};eXo.webui.UIPopupMenu=new UIPopupMenu();function UIDropDownControl(){};UIDropDownControl.prototype.init=function(id){};UIDropDownControl.prototype.selectItem=function(method,id,selectedIndex){if(method)method(id,selectedIndex);};UIDropDownControl.prototype.show=function(obj,evt){if(!evt)evt=window.event;evt.cancelBubble=true;var DOMUtil=eXo.core.DOMUtil;var itemContainer=DOMUtil.findNextElementByTagName(obj,'div');if(itemContainer){if(itemContainer.style.display=="none")itemContainer.style.display="block";else itemContainer.style.display="none";}};UIDropDownControl.prototype.hide=function(obj){if(typeof(obj)=="string")obj=document.getElementById(obj);obj.style.display="none";};UIDropDownControl.prototype.onclickEvt=function(obj){var DOMUtil=eXo.core.DOMUtil;var uiDropDownAnchor=DOMUtil.findAncestorByClass(obj,'UIDropDownAnchor');var uiDropDownTitle=DOMUtil.findPreviousElementByTagName(uiDropDownAnchor,'div');var uiDropDownMiddleTitle=DOMUtil.findFirstDescendantByClass(uiDropDownTitle,'div','DropDownSelectLabel');uiDropDownMiddleTitle.innerHTML=obj.innerHTML;uiDropDownAnchor.style.display='none';};eXo.webui.UIDropDownControl=new UIDropDownControl();function UIRightClickPopupMenu(){};UIRightClickPopupMenu.prototype.init=function(contextMenuId){var contextMenu=document.getElementById(contextMenuId);if(!contextMenu)return;contextMenu.onmousedown=function(e){if(!e)e=window.event;e.cancelBubble=true;}
var parentNode=contextMenu.parentNode;this.disableContextMenu(parentNode);}
UIRightClickPopupMenu.prototype.hideContextMenu=function(contextId){if(document.getElementById(contextId)){document.getElementById(contextId).style.display='none';eXo.core.MouseEventManager.onMouseDownHandlers=null;}}
UIRightClickPopupMenu.prototype.disableContextMenu=function(comp){if(typeof(comp)=="string")comp=document.getElementById(comp);comp.onmouseover=function(){document.oncontextmenu=document.body.oncontextmenu=function(){return false};}
comp.onmouseout=function(){document.oncontextmenu=document.body.oncontextmenu=function(){return true};}};UIRightClickPopupMenu.prototype.prepareObjectId=function(evt,elemt){var contextMenu=eXo.core.DOMUtil.findAncestorByClass(elemt,"UIRightClickPopupMenu");contextMenu.style.dispay="none";var href=elemt.getAttribute('href');if(href.indexOf("javascript")==0){eval(unescape(href).replace('_objectid_',encodeURI(contextMenu.objId.replace(/'/g,"\\'"))));eXo.core.MouseEventManager.docMouseDownEvt(evt);return false;}
elemt.setAttribute('href',href.replace('_objectid_',encodeURI(contextMenu.objId.replace(/'/g,"\\'"))));return true;}
UIRightClickPopupMenu.prototype.clickRightMouse=function(event,elemt,menuId,objId,params,opt){if(!event)event=window.event;eXo.core.MouseEventManager.docMouseDownEvt(event);var contextMenu=document.getElementById(menuId);contextMenu.objId=objId;if(!(((event.which)&&(event.which==2||event.which==3))||((event.button)&&(event.button==2)))){contextMenu.style.display='none';return;}
eXo.core.MouseEventManager.addMouseDownHandler("eXo.webui.UIRightClickPopupMenu.hideContextMenu('"+menuId+"');")
if(params){params=","+params+",";var items=contextMenu.getElementsByTagName("a");for(var i=0;i<items.length;i++){if(params.indexOf(items[i].getAttribute("exo:attr"))>-1){items[i].style.display='block';}else{items[i].style.display='none';}}}
var customItem=eXo.core.DOMUtil.findFirstChildByClass(elemt,"div","RightClickCustomItem");var tmpCustomItem=eXo.core.DOMUtil.findFirstDescendantByClass(contextMenu,"div","RightClickCustomItem");if(customItem){tmpCustomItem.innerHTML=customItem.innerHTML;tmpCustomItem.style.display="block";}else{tmpCustomItem.style.display="none";}
var fixWidthForIE7=0;var UIWorkingWorkspace=document.getElementById("UIWorkingWorkspace");if(eXo.core.Browser.isIE7()&&document.getElementById("UIDockBar")){if(event.clientX>UIWorkingWorkspace.offsetLeft)fixWidthForIE7=UIWorkingWorkspace.offsetLeft;}
eXo.core.Mouse.update(event);eXo.webui.UIPopup.show(contextMenu);var intTop=eXo.core.Mouse.mouseyInPage-(eXo.core.Browser.findPosY(contextMenu)-contextMenu.offsetTop);var intLeft=eXo.core.Mouse.mousexInPage-(eXo.core.Browser.findPosX(contextMenu)-contextMenu.offsetLeft)+fixWidthForIE7;var ctxMenuContainer=eXo.core.DOMUtil.findFirstChildByClass(contextMenu,"div","UIContextMenuContainer");switch(opt){case 1:intTop-=ctxMenuContainer.offsetHeight;break;case 2:break;case 3:break;case 4:break;default:if((eXo.core.Mouse.mouseyInClient+ctxMenuContainer.offsetHeight)>eXo.core.Browser.getBrowserHeight()){intTop-=ctxMenuContainer.offsetHeight;}
break;}
contextMenu.style.top=intTop+"px";contextMenu.style.left=intLeft+"px";};eXo.webui.UIRightClickPopupMenu=new UIRightClickPopupMenu();function UIVerticalSlideTabs(){};UIVerticalSlideTabs.prototype.slideInEffect=function(){if((parseInt(this.selectedTab.style.height)-30)>0){this.selectedTab.style.height=(parseInt(this.selectedTab.style.height)-30)+"px";setTimeout("eXo.webui.UIVerticalSlideTabs.slideInEffect()",3);}else{this.selectedTab.style.height="0px";this.selectedTab.style.display="none";delete this.selectedTab;this.clickedTab.style.display="block";setTimeout("eXo.webui.UIVerticalSlideTabs.slideOutEffect()",3);}}
UIVerticalSlideTabs.prototype.slideOutEffect=function(){if((parseInt(this.clickedTab.style.height)+30)<this.clickedTab.scrollHeight){this.clickedTab.style.height=(parseInt(this.clickedTab.style.height)+30)+"px";setTimeout("eXo.webui.UIVerticalSlideTabs.slideOutEffect()",3);}else{this.clickedTab.style.height=this.clickedTab.scrollHeight+"px";delete this.clickedTab;}}
UIVerticalSlideTabs.prototype.switchVTab=function(clickedElement){var uiClickedVTab=eXo.core.DOMUtil.findAncestorByClass(clickedElement,"UIVTab");var uiClickedVTabContent=eXo.core.DOMUtil.findFirstChildByClass(uiClickedVTab,"div","UIVTabContent");var uiVerticalSlideTabs=eXo.core.DOMUtil.findAncestorByClass(clickedElement,"UIVerticalSlideTabs");var uiVTabs=eXo.core.DOMUtil.findChildrenByClass(uiVerticalSlideTabs,"div","UIVTab");for(var i=0;i<uiVTabs.length;i++){if(eXo.core.DOMUtil.getChildrenByTagName(uiVTabs[i],"div")[0].className=="SelectedTab"){this.selectedTab=eXo.core.DOMUtil.findFirstChildByClass(uiVTabs[i],"div","UIVTabContent");eXo.core.DOMUtil.getChildrenByTagName(uiVTabs[i],"div")[0].className="NormalTab";break;}}
eXo.core.DOMUtil.getChildrenByTagName(uiClickedVTab,"div")[0].className="SelectedTab";this.clickedTab=uiClickedVTabContent;if(this.clickedTab!=this.selectedTab){if(this.selectedTab){this.slideInEffect();}else{this.clickedTab.style.display="block";this.slideOutEffect();}}};UIVerticalSlideTabs.prototype.onTabClick=function(clickedElement,normalStyle,selectedStyle){var uiClickedVTab=eXo.core.DOMUtil.findAncestorByClass(clickedElement,"UIVTab");var uiClickedVTabContent=eXo.core.DOMUtil.findFirstChildByClass(uiClickedVTab,"div","UIVTabContent");var uiVerticalSlideTabs=eXo.core.DOMUtil.findAncestorByClass(clickedElement,"UIVerticalSlideTabs");var uiVTab=eXo.core.DOMUtil.findChildrenByClass(uiVerticalSlideTabs,"div","UIVTab");if(eXo.core.DOMUtil.getChildrenByTagName(uiClickedVTab,"div")[0].className==normalStyle){for(var i=0;i<uiVTab.length;i++){eXo.core.DOMUtil.getChildrenByTagName(uiVTab[i],"div")[0].className=normalStyle;eXo.core.DOMUtil.findFirstChildByClass(uiVTab[i],"div","UIVTabContent").style.display="none";}
eXo.core.DOMUtil.getChildrenByTagName(uiClickedVTab,"div")[0].className=selectedStyle;uiClickedVTabContent.style.display="block";}else{eXo.core.DOMUtil.getChildrenByTagName(uiClickedVTab,"div")[0].className=normalStyle;uiClickedVTabContent.style.display="none";}};UIVerticalSlideTabs.prototype.onResize=function(uiVerticalSlideTabs,width,height){var vTabHeight=35;var uiVTabs=eXo.core.DOMUtil.findChildrenByClass(uiVerticalSlideTabs,"div","UIVTab");var uiVTab=this.getSelectedUIVTab(uiVerticalSlideTabs,"div","UIVTab");if(uiVTab==null)return;if(height!=null){var totalTabHeight=(vTabHeight*uiVTabs.length);var controlArea=eXo.core.DOMUtil.findFirstDescendantByClass(uiVTab,"div","ControlArea");var controlAreaHeight=0;if(controlArea!=null)controlAreaHeight=controlArea.offsetHeight;scrollArea=eXo.core.DOMUtil.findFirstDescendantByClass(uiVTab,"div","ScrollArea");if(scrollArea!=null){scrollArea.style.height=(height-controlAreaHeight-totalTabHeight-35)+"px";}}
if(width!=null){scrollArea.style.width=width+"px";}};UIVerticalSlideTabs.prototype.isSelectedUIVTab=function(uiVtab){var tabRight=eXo.core.DOMUtil.findFirstDescendantByClass(uiVtab,"div","TabRight");var changeIcon=eXo.core.DOMUtil.getChildrenByTagName(tabRight,"div")[0];if(changeIcon.className=="ExpandButton")return true;return false;};UIVerticalSlideTabs.prototype.getSelectedUIVTab=function(uiVerticalSlideTabs){var uiVTab=eXo.core.DOMUtil.findChildrenByClass(uiVerticalSlideTabs,"div","UIVTab");for(var i=0;i<uiVTab.length;i++){if(this.isSelectedUIVTab(uiVTab[i]))return uiVTab[i];}
return null;};UIVerticalSlideTabs.prototype.fitParentHeight=function(obj){this.onResize(obj,null,obj.parentNode.offsetHeight);}
eXo.webui.UIVerticalSlideTabs=new UIVerticalSlideTabs();function UIPermissionSelectorTab(){};UIPermissionSelectorTab.prototype.init=function(){};UIPermissionSelectorTab.prototype.displayBlockContent=function(clickedEle){var permissionTypeBar=eXo.core.DOMUtil.findAncestorByClass(clickedEle,"PermissionTypeBar");var permissionButton=eXo.core.DOMUtil.findChildrenByClass(permissionTypeBar,"div","PermissionButton");var selectedPermissionInfo=eXo.core.DOMUtil.findChildrenByClass(permissionTypeBar.parentNode,"div","SelectedPermissionInfo");for(var i=0;i<permissionButton.length;i++){if(permissionButton[i]==clickedEle){permissionButton[i].style.fontWeight="bold";selectedPermissionInfo[i].style.display="block";}else{permissionButton[i].style.fontWeight="100";selectedPermissionInfo[i].style.display="none";}}};eXo.webui.UIPermissionSelectorTab=new UIPermissionSelectorTab();function PortletResponse(responseDiv){var DOMUtil=eXo.core.DOMUtil;var div=eXo.core.DOMUtil.getChildrenByTagName(responseDiv,"div");this.portletId=div[0].innerHTML;this.portletTitle=div[1].innerHTML;this.portletMode=div[2].innerHTML;this.portletState=div[3].innerHTML;this.portletData=div[4].innerHTML;this.blocksToUpdate=null;var blocks=DOMUtil.findChildrenByClass(div[4],"div","BlockToUpdate");if(blocks.length>0){this.blocksToUpdate=new Array();for(var i=0;i<blocks.length;i++){var obj=new Object();var div=eXo.core.DOMUtil.getChildrenByTagName(blocks[i],"div");obj.blockId=div[0].innerHTML;obj.data=div[1];this.blocksToUpdate[i]=obj;}}else{this.scripts=eXo.core.DOMUtil.findDescendantsByTagName(div[4],"script");}};function PortalResponse(responseDiv){var DOMUtil=eXo.core.DOMUtil;this.portletResponses=new Array();var div=DOMUtil.getChildrenByTagName(responseDiv,"div");for(var i=0;i<div.length;i++){if(div[i].className=="PortletResponse"){this.portletResponses[this.portletResponses.length]=new PortletResponse(div[i]);}else if(div[i].className=="PortalResponseData"){this.data=div[i];var blocks=DOMUtil.findChildrenByClass(div[i],"div","BlockToUpdate");this.blocksToUpdate=new Array();for(var j=0;j<blocks.length;j++){var obj=new Object();var dataBlocks=DOMUtil.getChildrenByTagName(blocks[j],"div");obj.blockId=dataBlocks[0].innerHTML;obj.data=dataBlocks[1];this.blocksToUpdate[j]=obj;this.blocksToUpdate[j].scripts=eXo.core.DOMUtil.findDescendantsByTagName(dataBlocks[1],"script");}}else if(div[i].className=="PortalResponseScript"){this.script=div[i].innerHTML;div[i].style.display="none";}}};function appendScriptToHead(scriptId,scriptElement){var head=document.getElementsByTagName("head")[0];var descendant=eXo.core.DOMUtil.findDescendantById(head,scriptId);var script;if(descendant){head.removeChild(descendant);}
script=document.createElement('script');script.id=scriptId;script.type='text/javascript';if(scriptElement.src){script.src=scriptElement.src}else{script.text=scriptElement.innerHTML;}
head.appendChild(script);};function AjaxRequest(method,url,queryString){var instance=new Object();instance.timeout=80000;instance.aborted=false;if(method!=null)instance.method=method;else instance.method="GET";if(url!=null)instance.url=url;else instance.url=window.location.href;if(queryString!=null)instance.queryString=queryString;else instance.queryString=null;instance.request=null;instance.responseReceived=false;instance.status=null;instance.statusText=null;instance.responseText=null;instance.responseXML=null;instance.onTimeout=null;instance.onLoading=null;instance.onLoaded=null;instance.onInteractive=null;instance.onComplete=null;instance.onSuccess=null;instance.callBack=null;instance.onError=null;instance.onLoadingInternalHandled=false;instance.onLoadedInternalHandled=false;instance.onInteractiveInternalHandled=false;instance.onCompleteInternalHandled=false;instance.request=eXo.core.Browser.createHttpRequest();instance.request.onreadystatechange=function(){if(instance==null||instance.request==null){return;}
if(instance.request.readyState==1){instance.onLoadingInternal(instance);}
if(instance.request.readyState==2){instance.onLoadedInternal(instance);}
if(instance.request.readyState==3){instance.onInteractiveInternal(instance);}
if(instance.request.readyState==4){instance.onCompleteInternal(instance);}};instance.onLoadingInternal=function(){if(instance.onLoadingInternalHandled)return;if(typeof(instance.onLoading)=="function")instance.onLoading(instance);instance.onLoadingInternalHandled=true;};instance.onLoadedInternal=function(){if(instance.onLoadedInternalHandled)return;if(typeof(instance.onLoaded)=="function")instance.onLoaded(instance);instance.onLoadedInternalHandled=true;};instance.onInteractiveInternal=function(){if(instance.onInteractiveInternalHandled)return;if(typeof(instance.onInteractive)=="function")instance.onInteractive(instance);instance.onInteractiveInternalHandled=true;};instance.evalResponse=function(){try{return eval((instance.responseText||''));}catch(e){throw(new Error('Cannot eval the response'));}};instance.onCompleteInternal=function(){if(instance.onCompleteInternalHandled||instance.aborted)return;try{instance.responseReceived=true;instance.status=instance.request.status;instance.statusText=instance.request.statusText;instance.responseText=instance.request.responseText;instance.responseXML=instance.request.responseXML;}catch(err){return;}
if(typeof(instance.onComplete)=="function")instance.onComplete(instance);if(instance.request.status==200&&typeof(instance.onSuccess)=="function"){instance.onSuccess(instance);instance.onCompleteInternalHandled=true;if(typeof(instance.callBack)=="function"){instance.callBack(instance);}else if(instance.callBack){try{eval(instance.callBack);}
catch(e){throw(new Error('Can not execute callback...'));}}}else if(typeof(instance.onError)=="function"){instance.onError(instance);instance.onCompleteInternalHandled=false;}
delete instance.request['onreadystatechange'];instance.request=null;};instance.onTimeoutInternal=function(){if(instance==null||instance.request==null||instance.onCompleteInternalHandled)return;instance.aborted=true;instance.request.abort();if(typeof(instance.onTimeout)=="function")instance.onTimeout(instance);delete instance.request['onreadystatechange'];instance.request=null;};instance.process=function(){if(instance.request==null)return;instance.request.open(instance.method,instance.url,true);if(instance.method=="POST"){instance.request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");}else{instance.request.setRequestHeader("Content-Type","text/plain;charset=UTF-8");}
if(instance.timeout>0)setTimeout(instance.onTimeoutInternal,instance.timeout);instance.request.send(instance.queryString);};return instance;};function HttpResponseHandler(){var instance=new Object();instance.to=null;instance.executeScript=function(script){if(script==null||script=="")return;try{eval(script);return;}catch(err){}
var elements=script.split(';');if(elements!=null&&elements.length>0){for(var i=0;i<elements.length;i++){try{eval(elements[i]);}catch(err){alert(err+" : "+elements[i]+"  -- "+i);}}}};instance.updateBlocks=function(blocksToUpdate,parentId){if(blocksToUpdate==null)return;var parentBlock=null;if(parentId!=null&&parentId!="")parentBlock=document.getElementById(parentId);for(var i=0;i<blocksToUpdate.length;i++){var blockToUpdate=blocksToUpdate[i];var target=null;if(parentBlock!=null){target=eXo.core.DOMUtil.findDescendantById(parentBlock,blockToUpdate.blockId);}else{target=document.getElementById(blockToUpdate.blockId);}
if(target==null)alert("target  BlockToUpdate.blockId "+blockToUpdate.blockId);var newData=eXo.core.DOMUtil.findDescendantById(blockToUpdate.data,blockToUpdate.blockId);if(newData==null)alert("block to update Id "+blockToUpdate.blockId);target.innerHTML=newData.innerHTML;if(blockToUpdate.scripts){if(blockToUpdate.scripts.length>0){for(var k=0;k<blockToUpdate.scripts.length;k++){var encodedName='script_'+k+'_'+blockToUpdate.blockId;appendScriptToHead(encodedName,blockToUpdate.scripts[k]);}}}}};instance.ajaxTimeout=function(request){eXo.core.UIMaskLayer.removeMasks(eXo.portal.AjaxRequest.maskLayer);eXo.portal.AjaxRequest.maskLayer=null;eXo.portal.CurrentRequest=null;window.location.reload();}
instance.ajaxResponse=function(request){var temp=document.createElement("div");temp.innerHTML=this.request.responseText;var responseDiv=eXo.core.DOMUtil.findFirstDescendantByClass(temp,"div","PortalResponse");var response=new PortalResponse(responseDiv);var portletResponses=response.portletResponses;if(portletResponses!=null){for(var i=0;i<portletResponses.length;i++){var portletResponse=portletResponses[i];if(portletResponse.blocksToUpdate==null){var parentBlock=document.getElementById(portletResponse.portletId);var target=eXo.core.DOMUtil.findDescendantById(parentBlock,"PORTLET-FRAGMENT");target.innerHTML=portletResponse.portletData;if(portletResponse.scripts){if(portletResponse.scripts.length>0){for(var k=0;k<portletResponse.scripts.length;k++){var encodedName='script_'+k+'_'+portletResponse.portletId;appendScriptToHead(encodedName,portletResponse.scripts[k]);}}}}else{instance.updateBlocks(portletResponse.blocksToUpdate,portletResponse.portletId);}}}
if(response.blocksToUpdate==undefined){if(confirm("Session timeout. Refresh your browser?"))instance.ajaxTimeout(request);}
instance.updateBlocks(response.blocksToUpdate);instance.executeScript(response.script);clearTimeout(instance.to);eXo.core.UIMaskLayer.removeMasks(eXo.portal.AjaxRequest.maskLayer);eXo.portal.AjaxRequest.maskLayer=null;eXo.portal.CurrentRequest=null;};instance.ajaxLoading=function(request){eXo.core.UIMaskLayer.createTransparentMask();instance.to=setTimeout(function(){if(eXo.portal.AjaxRequest.maskLayer==null){var mask=document.getElementById("AjaxLoadingMask");eXo.portal.AjaxRequest.maskLayer=eXo.core.UIMaskLayer.createMask("UIPortalApplication",mask,30);eXo.core.Browser.addOnScrollCallback("5439383",eXo.core.UIMaskLayer.setPosition);}},2000);}
return instance;};function ajaxGet(url,callback){if(!callback)callback=null;doRequest("Get",url,null,callback);};function ajaxPost(formElement,callback){if(!callback)callback=null;var queryString=eXo.webui.UIForm.serializeForm(formElement);var url=formElement.action+"&ajaxRequest=true";doRequest("POST",url,queryString,callback);};function doRequest(method,url,queryString,callback){request=new AjaxRequest(method,url,queryString);handler=new HttpResponseHandler();request.onSuccess=handler.ajaxResponse;request.onLoading=handler.ajaxLoading;request.onTimeout=handler.ajaxTimeout;request.callBack=callback;eXo.portal.CurrentRequest=request;request.process();};function ajaxAbort(){eXo.core.UIMaskLayer.removeMasks(eXo.portal.AjaxRequest.maskLayer);eXo.portal.AjaxRequest.maskLayer=null;eXo.portal.CurrentRequest.request.abort();eXo.portal.CurrentRequest.aborted=true;eXo.portal.CurrentRequest=null;};function ajaxAsyncGetRequest(url,async){if(async==undefined)async=true;var request=eXo.core.Browser.createHttpRequest();request.open('GET',url,async);request.setRequestHeader("Cache-Control","max-age=86400");request.send(null);if(!async)return request.responseText;}
function ajaxRedirect(url){url=url.replace(/&amp;/g,"&");window.location.href=url;}
eXo.portal.AjaxRequest=AjaxRequest.prototype.constructor;function UIComponent(node){this.node=node;this.type=node.className;var children=eXo.core.DOMUtil.getChildrenByTagName(node,"div");this.metaData=children[0];this.control=children[1];this.layout=children[2];this.view=children[3];this.component="";var div=eXo.core.DOMUtil.getChildrenByTagName(this.metaData,"div");this.id=div[0].firstChild.nodeValue;this.title=div[1].firstChild.nodeValue;};UIComponent.prototype.getId=function(){return this.id;};UIComponent.prototype.getTitle=function(){return this.title;};UIComponent.prototype.getElement=function(){return this.node;};UIComponent.prototype.getUIComponentType=function(){return this.type;};UIComponent.prototype.getUIComponentBlock=function(){return this.node;};UIComponent.prototype.getControlBlock=function(){return this.control;};UIComponent.prototype.getLayoutBlock=function(){return this.layout;};UIComponent.prototype.getViewBlock=function(){return this.view;};function UIPortal(){this.portalUIComponentDragDrop=false;};UIPortal.prototype.getUIPortlets=function(){var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");var founds=eXo.core.DOMUtil.findDescendantsByClass(uiWorkingWorkspace,"div","UIPortlet");var components=new Array();for(j=0;j<founds.length;j++){components[components.length]=new UIComponent(founds[j]);}
return components;};UIPortal.prototype.getUIPortletsInUIPortal=function(){var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");var founds=eXo.core.DOMUtil.findDescendantsByClass(uiWorkingWorkspace,"div","UIPortlet");var components=new Array();for(var j=0;j<founds.length;j++){if(eXo.core.DOMUtil.findAncestorByClass(founds[j],'UIPage')==null){components[components.length]=new UIComponent(founds[j]);}}
return components;};UIPortal.prototype.getUIPortletsInUIPage=function(){var uiPage=document.getElementById("UIPage");var founds=eXo.core.DOMUtil.findDescendantsByClass(uiPage,"div","UIPortlet");var components=new Array();for(var j=0;j<founds.length;j++){components[components.length]=new UIComponent(founds[j]);}
return components;};UIPortal.prototype.getUIContainers=function(){var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");var founds=eXo.core.DOMUtil.findDescendantsByClass(uiWorkingWorkspace,"div","UIContainer");var components=new Array();for(var j=0;j<founds.length;j++){components[j]=new UIComponent(founds[j]);}
return components;};UIPortal.prototype.getUIPage=function(){var uiPortal=document.getElementById("UIPortal");return new UIComponent(eXo.core.DOMUtil.findFirstDescendantByClass(uiPortal,"div","UIPage"));};UIPortal.prototype.getUIPortal=function(){var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");return new UIComponent(eXo.core.DOMUtil.findFirstDescendantByClass(uiWorkingWorkspace,"div","UIPortal"));};UIPortal.prototype.switchViewModeToLayoutMode=function(uicomponent,swapContent){var layoutBlock=uicomponent.getLayoutBlock();if(layoutBlock.style.display=='block')return;var viewBlock=uicomponent.getViewBlock();if(swapContent){var contentNode=eXo.core.DOMUtil.findDescendantById(viewBlock,uicomponent.getId());if(contentNode!=null){layoutBlock.appendChild(contentNode);}}
try{viewBlock.style.display="none";layoutBlock.style.display="block";}catch(err){}};UIPortal.prototype.switchLayoutModeToViewMode=function(uicomponent,swapContent){var viewBlock=uicomponent.getViewBlock();if(viewBlock.style.display=='block')return;var layoutBlock=uicomponent.getLayoutBlock();if(swapContent){var contentNode=eXo.core.DOMUtil.findDescendantById(layoutBlock,uicomponent.getId());if(contentNode!=null){viewBlock.appendChild(contentNode);}}
viewBlock.style.display="block";layoutBlock.style.display="none";};UIPortal.prototype.switchMode=function(elemtClicked){if(elemtClicked.className=="Icon PreviewIcon"){elemtClicked.className="Icon LayoutModeIcon";this.showViewMode();this.showMaskLayer();}else{this.hideMaskLayer();elemtClicked.className="Icon PreviewIcon";this.showLayoutModeForPortal();}};UIPortal.prototype.switchModeForPage=function(elemtClicked){var layoutMode=this.showViewLayoutModeForPage();if(layoutMode==1){elemtClicked.className="Icon PagePreviewIcon";this.hideMaskLayer();}else if(layoutMode==0){elemtClicked.className="Icon PageLayoutModeIcon";this.showMaskLayer();}};UIPortal.prototype.showUIComponentControl=function(uicomponent,flag){var controlBlock=uicomponent.getControlBlock();var clickObject=eXo.core.DOMUtil.findFirstDescendantByClass(controlBlock,"div","DragControlArea");if(flag){clickObject.onmousedown=eXo.portal.PortalDragDrop.init;controlBlock.style.display='block';}else{controlBlock.onmousedown=null;controlBlock.style.display='none';}};UIPortal.prototype.showViewLayoutModeForPage=function(){var layoutMode=-1;var container=this.getUIContainers();var portlet=this.getUIPortletsInUIPage();if(portlet.length>0&&container.length>=0){for(var i=0;i<container.length;i++){var viewBlock=container[i].getViewBlock();if(viewBlock.style.display=='block'){this.switchViewModeToLayoutMode(container[i],true);this.showUIComponentControl(container[i],this.component=='UIContainer');if(layoutMode==-1)layoutMode=1;}else if(viewBlock.style.display=='none'){this.switchLayoutModeToViewMode(container[i],true);this.showUIComponentControl(container[i],false);if(layoutMode==-1)layoutMode=0;}}
for(var i=0;i<portlet.length;i++){var viewBlock=portlet[i].getViewBlock();if(viewBlock.style.display=='block'){this.switchViewModeToLayoutMode(portlet[i],false);this.showUIComponentControl(portlet[i],this.component=='UIPortlet');if(layoutMode==-1)layoutMode=1;}else if(viewBlock.style.display=='none'){this.switchLayoutModeToViewMode(portlet[i],false);this.showUIComponentControl(portlet[i],false);if(layoutMode==-1)layoutMode=0;}}}
return layoutMode;};UIPortal.prototype.showLayoutModeForPage=function(control){var uiPage=eXo.core.DOMUtil.findFirstDescendantByClass(document.body,"div","UIPage");if(uiPage==null)return;var viewPage=eXo.core.DOMUtil.findFirstDescendantByClass(uiPage,"div","VIEW-PAGE");var uiPageDesktop=document.getElementById("UIPageDesktop");var uiPortalApplication=document.getElementById("UIPortalApplication");if(uiPortalApplication.className!="Vista"){viewPage.style.border="solid 3px #dadada";}
viewPage.style.paddingTop="50px";viewPage.style.paddingRight="0px";viewPage.style.paddingBottom="50px";viewPage.style.paddingLeft="0px";if(control)this.component=control;var container=this.getUIContainers();for(var i=0;i<container.length;i++){this.switchViewModeToLayoutMode(container[i],true);this.showUIComponentControl(container[i],this.component=='UIContainer');var uiContainer=eXo.core.DOMUtil.findFirstDescendantByClass(viewPage,"div","UIContainer");if(uiContainer!=null){viewPage.style.border="none";viewPage.style.paddingTop="5px";viewPage.style.paddingRight="5px";viewPage.style.paddingBottom="5px";viewPage.style.paddingLeft="5px";}}
var portlet=this.getUIPortletsInUIPage();for(var i=0;i<portlet.length;i++){this.switchViewModeToLayoutMode(portlet[i],false);this.showUIComponentControl(portlet[i],this.component=='UIPortlet');var uiPortlet=eXo.core.DOMUtil.findFirstDescendantByClass(viewPage,"div","UIPortlet");if(uiPortlet!=null){viewPage.style.border="none";viewPage.style.paddingTop="5px";viewPage.style.paddingRight="5px";viewPage.style.paddingBottom="5px";viewPage.style.paddingLeft="5px";}}};UIPortal.prototype.showViewMode=function(){var portal=this.getUIPortal();this.switchLayoutModeToViewMode(portal,true);this.showUIComponentControl(portal,false);var uiPageDesktop=document.getElementById("UIPageDesktop");if(!uiPageDesktop){var page=this.getUIPage();this.switchLayoutModeToViewMode(page,true);this.showUIComponentControl(page,false);}
var container=this.getUIContainers();for(var i=0;i<container.length;i++){this.switchLayoutModeToViewMode(container[i],true);this.showUIComponentControl(container[i],false);}
var portlet=this.getUIPortletsInUIPortal();for(var i=0;i<portlet.length;i++){this.switchLayoutModeToViewMode(portlet[i],false);this.showUIComponentControl(portlet[i],false);}};UIPortal.prototype.showLayoutModeForPortal=function(control){if(control)this.component=control;var portal=this.getUIPortal();this.switchViewModeToLayoutMode(portal,true);this.showUIComponentControl(portal,this.component=='UIPortal');var page=this.getUIPage();this.switchViewModeToLayoutMode(page,false);this.showUIComponentControl(page,this.component=='UIPage');var container=this.getUIContainers();for(var i=0;i<container.length;i++){this.switchViewModeToLayoutMode(container[i],true);this.showUIComponentControl(container[i],this.component=='UIContainer');}
var portlet=this.getUIPortletsInUIPortal();for(var i=0;i<portlet.length;i++){this.switchViewModeToLayoutMode(portlet[i],false);this.showUIComponentControl(portlet[i],this.component=='UIPortlet');}};UIPortal.prototype.findUIComponentOf=function(element){var parent=element.parentNode;while(parent!=null){var className=parent.className;if(className=='UIPortlet'||className=='UIContainer'||className=='UIPage'||className=='UIPortal'){return parent;}
parent=parent.parentNode;}
return null;};UIPortal.prototype.showMaskLayer=function(){var uiPortalApplication=document.getElementById("UIPortalApplication");var object=document.createElement("div");object.className="PreviewMode";object.style.display="none";uiPortalApplication.appendChild(object);this.maskLayer=eXo.core.UIMaskLayer.createMask("UIPortalApplication",object,30,"TOP-RIGHT");this.maskLayer.title="Click here to turn off preview mode";this.maskLayer.style.cursor="pointer";this.maskLayer.onclick=function(){var layoutModeIcon=eXo.core.DOMUtil.findFirstDescendantByClass(uiPortalApplication,"a","LayoutModeIcon");var pageLayoutModeIcon=eXo.core.DOMUtil.findFirstDescendantByClass(uiPortalApplication,"a","PageLayoutModeIcon");if(layoutModeIcon){eXo.portal.UIPortal.switchMode(layoutModeIcon);}
if(pageLayoutModeIcon){eXo.portal.UIPortal.switchModeForPage(pageLayoutModeIcon);}}
this.maskLayer.style.zIndex=parseInt(object.style.zIndex)+1;eXo.core.Browser.addOnScrollCallback("3743892",eXo.core.UIMaskLayer.setPosition);};UIPortal.prototype.hideMaskLayer=function(){if(this.maskLayer){var uiPortalApplication=document.getElementById("UIPortalApplication");eXo.core.UIMaskLayer.removeMask(this.maskLayer);this.maskLayer=null;var maskObject=eXo.core.DOMUtil.findFirstDescendantByClass(uiPortalApplication,"div","PreviewMode");uiPortalApplication.removeChild(maskObject);}};UIPortal.prototype.changeSkin=function(url){var skin='';if(eXo.webui.UIItemSelector.SelectedItem!=undefined){skin=eXo.webui.UIItemSelector.SelectedItem.option;}
if(skin==undefined)skin='';ajaxAsyncGetRequest(url+'&skin='+skin,false);window.location.reload();};UIPortal.prototype.changeLanguage=function(url){var language='';if(eXo.webui.UIItemSelector.SelectedItem!=undefined){language=eXo.webui.UIItemSelector.SelectedItem.option;}
if(language==undefined)language='';ajaxAsyncGetRequest(url+'&language='+language,false);window.location.reload();};UIPortal.prototype.changePortal=function(accessPath,portal){window.location=eXo.env.server.context+"/"+accessPath+"/"+portal+"/";};UIPortal.prototype.popupButton=function(url,action){if(action==undefined)action='';window.location=url+'&action='+action;};UIPortal.prototype.createJSApplication=function(application,applicationId,instanceId,appLocation){if(application){eXo.require(application,appLocation);var createApplication=application+'.initApplication(\''+applicationId+'\',\''+instanceId+'\');';eval(createApplication);}};eXo.portal.UIPortalComponent=UIComponent.prototype.constructor;eXo.portal.UIPortal=new UIPortal();eXo.portal.UIComponent=UIPortal.prototype.constructor;function UIWorkspace(id){this.id=id;this.showControlWorkspace=false;this.isFirstTime=true;};eXo.portal.Workspace=new UIWorkspace("UIWorkspace");if(!eXo.portal.UIControlWorkspace){eXo.portal.UIControlWorkspace=new UIWorkspace("UIControlWorkspace");};eXo.portal.UIControlWorkspace.onResize=function(width,height){this.width=width;this.height=height;var uiWorkspace=document.getElementById(this.id);var uiWorkspaceContainer=document.getElementById("UIWorkspaceContainer");this.uiWorkspaceControl=document.getElementById("UIWorkspaceControl");var uiWorkspacePanel=document.getElementById("UIWorkspacePanel");uiWorkspace.style.width=width+"px";uiWorkspace.style.height=height+"px";if(eXo.portal.UIControlWorkspace.showControlWorkspace){uiWorkspaceContainer.style.display="block";uiWorkspaceContainer.style.width=eXo.portal.UIControlWorkspace.defaultWidth+"px";}
var startMenuContainer=document.getElementById("StartMenuContainer");startMenuContainer.style.display="none";uiWorkspacePanel.style.height=(height-this.uiWorkspaceControl.offsetHeight-23)+"px";uiWorkspacePanel.style.overflow="hidden";eXo.portal.UIControlWorkspace.slidebar.style.height=height+"px";eXo.portal.UIControlWorkspace.slidebar.style.overflow="hidden";uiWorkspace.style.top=document.documentElement.scrollTop+"px";};eXo.portal.UIControlWorkspace.onResizeDefault=function(){var cws=eXo.portal.UIControlWorkspace;cws.defaultWidth=250;cws.slidebarDefaultWidth=6;cws.slidebar=document.getElementById("ControlWorkspaceSlidebar");if(this.isFirstTime){cws.originalSlidebarWidth=cws.slidebar.offsetWidth;}
if(cws.showControlWorkspace){cws.slidebar.style.display="none";cws.onResize(cws.defaultWidth,eXo.core.Browser.getBrowserHeight());}else{cws.slidebar.style.display="block";cws.onResize(cws.slidebar.offsetWidth,eXo.core.Browser.getBrowserHeight());}};eXo.portal.UIControlWorkspace.setVisible=function(visible){var cws=eXo.portal.UIControlWorkspace;if(cws.isFirstTime==true&&visible&&cws.showControlWorkspace==false){cws.isFirstTime=false;cws.showWorkspace();}};eXo.portal.UIControlWorkspace.showWorkspace=function(){var cws=eXo.portal.UIControlWorkspace;var uiWorkspace=document.getElementById(this.id);var uiWorkspaceContainer=document.getElementById("UIWorkspaceContainer");var uiWorkspacePanel=document.getElementById("UIWorkspacePanel");var slidebar=document.getElementById("ControlWorkspaceSlidebar");var uiControlWorkspace=document.getElementById("UIControlWorkspace");if(cws.showControlWorkspace){cws.showControlWorkspace=false;uiWorkspaceContainer.style.display="none";slidebar.style.display="block";eXo.portal.UIControlWorkspace.width=eXo.portal.UIControlWorkspace.slidebar.offsetWidth;uiWorkspace.style.width=slidebar.offsetWidth+"px";eXo.portal.UIWorkingWorkspace.onResize(null,null);}else{cws.showControlWorkspace=true;slidebar.style.display="none";eXo.portal.UIControlWorkspace.width=cws.defaultWidth;uiWorkspace.style.width=cws.defaultWidth+"px";eXo.portal.UIWorkingWorkspace.onResize(null,null);uiWorkspaceContainer.style.display="block";uiWorkspaceContainer.style.width=cws.defaultWidth+"px";uiWorkspacePanel.style.height=(eXo.portal.UIControlWorkspace.height-
eXo.portal.UIControlWorkspace.uiWorkspaceControl.offsetHeight-23)+"px";eXo.webui.UIVerticalScroller.init();eXo.portal.UIPortalControl.fixHeight();}
var uiPageDesktop=document.getElementById("UIPageDesktop");if(uiPageDesktop)eXo.desktop.UIDockbar.resizeDockBar();eXo.portal.UIPortalControl.initAllManagers();if(uiPageDesktop){var DOMUtil=eXo.core.DOMUtil;var uiWidget=DOMUtil.findChildrenByClass(uiPageDesktop,"div","UIWidget");var uiControlWorkspace=document.getElementById("UIControlWorkspace");var size=uiWidget.length;var limitX=50;for(var i=0;i<size;i++){var dragObject=uiWidget[i];if(cws.showControlWorkspace){dragObject.style.left=(dragObject.offsetLeft-uiControlWorkspace.offsetWidth)+"px";}
else{dragObject.style.left=(dragObject.offsetLeft+uiControlWorkspace.offsetWidth+dragObject.offsetWidth)+"px";}
var offsetHeight=uiPageDesktop.offsetHeight-dragObject.offsetHeight-limitX;var offsetTop=dragObject.offsetTop;var offsetWidth=uiPageDesktop.offsetWidth-dragObject.offsetWidth-limitX;var offsetLeft=dragObject.offsetLeft;if(dragObject.offsetLeft<0)dragObject.style.left="0px";if(dragObject.offsetTop<0)dragObject.style.top="0px";if(offsetTop>offsetHeight)dragObject.style.top=(offsetHeight+limitX)+"px";if(offsetLeft>offsetWidth)dragObject.style.left=(offsetWidth+limitX)+"px";}}
var dropDownAnchors=eXo.core.DOMUtil.findDescendantsByClass(document,"div","UIDropDownAnchor");for(var i=0;i<dropDownAnchors.length;i++){if(dropDownAnchors[i].style.display!="none"){dropDownAnchors[i].style.display="none";}}
var params=[{name:"objectId",value:cws.showControlWorkspace}];ajaxAsyncGetRequest(eXo.env.server.createPortalURL(this.id,"SetVisible",true,params),false);};if(eXo.portal.UIWorkingWorkspace==undefined){eXo.portal.UIWorkingWorkspace=new UIWorkspace("UIWorkingWorkspace");};eXo.portal.UIWorkingWorkspace.onResize=function(){var uiWorkspace=document.getElementById(eXo.portal.UIWorkingWorkspace.id);var uiControlWorkspace=document.getElementById("UIControlWorkspace");var controlWorkspaceWidth=eXo.portal.UIControlWorkspace.width;if(eXo.core.Browser.isIE6()){var tabs=eXo.core.DOMUtil.findFirstDescendantByClass(uiWorkspace,"div","UIHorizontalTabs");if(tabs)tabs.style.left=0;}
if(uiControlWorkspace){uiWorkspace.style.marginLeft=controlWorkspaceWidth+"px";}else{uiWorkspace.style.marginLeft="0px";}};eXo.portal.UIWorkingWorkspace.resizeWorkspacePanel=function(h){var workspacePanel=document.getElementById("UIWorkspacePanel");workspacePanel.style.height=h+"px";};eXo.portal.UIWorkingWorkspace.reorganizeWindows=function(showControlWorkspace){var uiDesk=document.getElementById("UIPageDesktop");if(uiDesk){var uiCtrl=document.getElementById("UIControlWorkspace");var uiWindows=eXo.core.DOMUtil.findDescendantsByClass(uiDesk,"div","UIWindow");for(var k=0;k<uiWindows.length;k++){if(uiWindows[k].style.display!="none"){var uiWindow=uiWindows[k];if(showControlWorkspace){uiWindow.oldW=uiWindow.offsetWidth;if((uiWindow.offsetLeft+uiWindow.offsetWidth)>uiDesk.offsetWidth){uiWindow.style.width=(uiWindow.offsetWidth-eXo.portal.UIControlWorkspace.defaultWidth+eXo.portal.UIControlWorkspace.slidebarDefaultWidth)+"px";if((eXo.desktop.UIWindow.originalWidth+uiWindow.offsetLeft)>uiDesk.offsetWidth&&uiWindow.maximized){eXo.desktop.UIWindow.originalWidth-=eXo.portal.UIControlWorkspace.defaultWidth;}}}else{if(uiWindow.maximized){uiWindow.style.width=uiDesk.offsetWidth+"px";}else{uiWindow.style.width=uiWindow.oldW+"px";}}}}}};function UIPortalControl(){this.scrollManagers=new Array();this.t=0;};UIPortalControl.prototype.changeWindowState=function(id,state){var params=[{name:"portletId",value:id},{name:"objectId",value:state}];ajaxGet(eXo.env.server.createPortalURL("UIPortal","ChangeWindowState",true,params));};UIPortalControl.prototype.collapseTree=function(selectedElement){var DOMUtil=eXo.core.DOMUtil;var parentNode=DOMUtil.findAncestorByClass(selectedElement,"Node");var childrenContainer=DOMUtil.findFirstDescendantByClass(parentNode,"div","ChildrenContainer");var expandIcon=document.createElement('a');expandIcon.href=childrenContainer.getAttribute("actionLink");expandIcon.className="ExpandIcon";expandIcon.innerHTML=selectedElement.innerHTML;parentNode.removeChild(childrenContainer);parentNode.insertBefore(expandIcon,selectedElement);parentNode.removeChild(selectedElement);eXo.portal.UIPortalControl.fixHeight();};UIPortalControl.prototype.fixHeight=function(){var objectParent=document.getElementById("UIControlWorkspace");if(!objectParent)return;if(objectParent.bussy){objectParent.bussy=false;objectParent.recall=setTimeout("eXo.portal.UIPortalControl.fixHeight()",1000);}else{objectParent.bussy=true;clearTimeout(objectParent.recall);var DOMUtil=eXo.core.DOMUtil;var uiControlWSWorkingArea=document.getElementById("UIControlWSWorkingArea");var uiWorkspacePanel=document.getElementById("UIWorkspacePanel");var uiWorkspaceContainer=DOMUtil.findFirstDescendantByClass(objectParent,"div","UIWorkspaceContainer");if(uiWorkspaceContainer.style.display=="block"){var scrollArea=DOMUtil.findFirstDescendantByClass(objectParent,"div","ScrollArea");if(scrollArea!=null){var baseHeight=parseInt(uiWorkspacePanel.style.height);scrollArea.style.height="auto";var scrollAreaHeight=scrollArea.scrollHeight;var contentHeight=0;if(uiControlWSWorkingArea)contentHeight=uiControlWSWorkingArea.offsetHeight;var deltaResize=contentHeight-baseHeight;if(deltaResize>0&&(scrollAreaHeight>deltaResize)){scrollArea.style.overflowY="auto";scrollArea.style.height=scrollAreaHeight-deltaResize+"px";scrollArea.style.overflowX="hidden";}}}}};UIPortalControl.prototype.onKeyPress=function(){var uiPortalLoginFormControl=document.getElementById("UIPortalLoginFormControl");if(uiPortalLoginFormControl){uiPortalLoginFormControl.onkeypress=eXo.portal.UIPortalControl.onEnterPress;}};UIPortalControl.prototype.onEnterPress=function(e){var uiPortalLoginFormAction=document.getElementById("UIPortalLoginFormAction");if(uiPortalLoginFormAction){var code;if(!e)e=window.event;if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;if(code==13){if(this.t!=13){window.location.href=uiPortalLoginFormAction.href;}
this.t=code;}}};function ScrollManager(){this.id=null;this.elements=new Array();this.firstVisibleIndex=0;this.lastVisibleIndex=-1;this.otherHiddenElements=new Array();this.axis=0;this.currDirection=null;this.callback=null;this.initFunction=null;this.leftArrow=null;this.rightArrow=null;this.mainContainer=null;this.arrowsContainer=null
this.margin=6.9;};ScrollManager.prototype.initArrowButton=function(arrow,dir,normalClass,overClass,disabledClass){if(arrow){arrow.direction=dir;arrow.overClass=overClass;arrow.disabledClass=disabledClass;arrow.styleClass=normalClass;arrow.scrollMgr=this;arrow.onmouseover=this.mouseOverArrow;arrow.onmouseout=this.mouseOutArrow;arrow.onclick=this.scroll;if(dir=="left")this.leftArrow=arrow;else if(dir=="right")this.rightArrow=arrow;}};ScrollManager.prototype.enableArrow=function(arrow,enabled){if(arrow&&!enabled){arrow.className=arrow.disabledClass;arrow.onclick=null;}else if(arrow&&enabled){arrow.className=arrow.styleClass;arrow.onclick=this.scroll;}};ScrollManager.prototype.mouseOverArrow=function(e){var arrow=this;if(arrow.onclick&&arrow.className==arrow.styleClass){if(!e)e=window.event;if(arrow==eXo.core.Browser.getEventSource(e))arrow.className=arrow.overClass;}};ScrollManager.prototype.mouseOutArrow=function(e){var arrow=this;if(arrow.onclick&&arrow.className==arrow.overClass){arrow.className=arrow.styleClass;}};ScrollManager.prototype.init=function(){this.firstVisibleIndex=0;this.lastVisibleIndex=-1;if(this.arrowsContainer){this.arrowsContainer.style.display="none";this.arrowsContainer.space=null;this.mainContainer.space=null;}
var uiNavigationPortlet=eXo.core.DOMUtil.findAncestorByClass(this.mainContainer,"UINavigationPortlet");if(uiNavigationPortlet){var uiApplication=uiNavigationPortlet.parentNode;uiApplication.style.display="inline";}};ScrollManager.prototype.loadElements=function(elementClass,clean){if(clean)this.cleanElements();this.elements.clear();this.elements.pushAll(eXo.core.DOMUtil.findDescendantsByClass(this.mainContainer,"div",elementClass));};ScrollManager.prototype.checkAvailableSpace=function(maxSpace){if(!maxSpace)maxSpace=this.getElementSpace(this.mainContainer)-this.getElementSpace(this.arrowsContainer);var elementsSpace=0;var margin=0;var length=this.elements.length;for(var i=0;i<length;i++){elementsSpace+=this.getElementSpace(this.elements[i]);if(i+1<length)margin=this.getElementSpace(this.elements[i+1])/3;else margin=this.margin;if(elementsSpace+margin<maxSpace){this.elements[i].isVisible=true;this.lastVisibleIndex=i;}else{this.elements[i].isVisible=false;}}};ScrollManager.prototype.getElementsSpace=function(indexStart,indexEnd){if(indexStart==null&&indexEnd==null){indexStart=0;indexEnd=this.elements.length-1;}
var elementsSpace=0;if(indexStart>=0&&indexEnd<=this.elements.length-1){for(var i=indexStart;i<=indexEnd;i++){elementsSpace+=this.getElementSpace(this.elements[i]);}}
return elementsSpace;};ScrollManager.prototype.getElementSpace=function(element){if(element&&element.space){return element.space;}
var elementSpace=0;var wasHidden=false;if(element){if(element.style.display=="none"){element.style.display="block";wasHidden=true;}
if(this.axis==0){elementSpace+=element.offsetWidth;elementSpace+=eXo.core.DOMUtil.getStyle(element,"marginLeft",true);elementSpace+=eXo.core.DOMUtil.getStyle(element,"marginRight",true);if(element.decorator)elementSpace+=this.getElementSpace(element.decorator);}else if(this.axis==1){elementSpace+=element.offsetHeight;elementSpace+=eXo.core.DOMUtil.getStyle(element,"marginTop",true);elementSpace+=eXo.core.DOMUtil.getStyle(element,"marginBottom",true);if(element.decorator)elementSpace+=this.getElementSpace(element.decorator);}
if(wasHidden)element.style.display="none";element.space=elementSpace;}
return elementSpace;};ScrollManager.prototype.cleanElements=function(){for(var i=0;i<this.elements.length;i++){this.elements[i].space=null;if(this.elements[i].decorator)this.elements[i].decorator.space=null;}};ScrollManager.prototype.scroll=function(e){if(!e)e=window.event;e.cancelBubble=true;var src=eXo.core.Browser.getEventSource(e);if(src.scrollMgr&&src.onclick){if(src.scrollMgr.otherHiddenElements.length>0){for(var i=0;i<src.scrollMgr.otherHiddenElements.length;i++){src.scrollMgr.otherHiddenElements[i].isVisible=true;src.scrollMgr.otherHiddenElements[i].style.display="block";if(src.scrollMgr.currDirection==1)src.scrollMgr.firstVisibleIndex--;else if(src.scrollMgr.currDirection==0)src.scrollMgr.lastVisibleIndex++;}
src.scrollMgr.otherHiddenElements.clear();}
if(src.direction=="left")src.scrollMgr.scrollLeft();else if(src.direction=="right")src.scrollMgr.scrollRight();}
return false;};ScrollManager.prototype.scrollLeft=function(){if(this.firstVisibleIndex>0){this.currDirection=0;this.elements[this.lastVisibleIndex--].isVisible=false;this.getVisibleElements();this.renderElements();}};ScrollManager.prototype.scrollUp=function(){if(this.scrollMgr)this.scrollMgr.scrollLeft();};ScrollManager.prototype.scrollRight=function(){if(this.lastVisibleIndex<this.elements.length-1){this.currDirection=1;this.elements[this.firstVisibleIndex++].isVisible=false;this.getVisibleElements();this.renderElements();}};ScrollManager.prototype.scrollDown=function(){if(this.scrollMgr)this.scrollMgr.scrollRight();};ScrollManager.prototype.getVisibleElements=function(){var availableSpace=this.getElementSpace(this.mainContainer)-this.getElementSpace(this.arrowsContainer);var refereceIndex=0;var margin=0;var elementsSpace=0;if(this.currDirection){var length=this.elements.length;for(var i=this.firstVisibleIndex;i<length;i++){elementsSpace+=this.getElementSpace(this.elements[i]);if(i+1<length)margin=this.getElementSpace(this.elements[i+1])/3;else margin=this.margin;if(elementsSpace+margin<availableSpace){this.elements[i].isVisible=true;refereceIndex=i;}else this.elements[i].isVisible=false;}
if(this.lastVisibleIndex==refereceIndex)this.scrollRight();else this.lastVisibleIndex=refereceIndex;}else{for(var i=this.lastVisibleIndex;i>=0;i--){elementsSpace+=this.getElementSpace(this.elements[i]);margin=this.getElementSpace(this.elements[this.lastVisibleIndex])/3;if(elementsSpace+margin<availableSpace){this.elements[i].isVisible=true;refereceIndex=i;}else this.elements[i].isVisible=false;}
if(this.firstVisibleIndex==refereceIndex)this.scrollLeft();else this.firstVisibleIndex=refereceIndex;}};ScrollManager.prototype.renderElements=function(){for(var i=0;i<this.elements.length;i++){if(this.elements[i].isVisible){this.elements[i].style.display="block";}else{this.elements[i].style.display="none";this.arrowsContainer.style.display="block";}}
if(this.arrowsContainer.style.display=="block"){this.renderArrows();}
if(typeof(this.callback)=="function")this.callback();};ScrollManager.prototype.renderArrows=function(){if(this.firstVisibleIndex==0)this.enableArrow(this.leftArrow,false);else this.enableArrow(this.leftArrow,true);if(this.lastVisibleIndex==this.elements.length-1)this.enableArrow(this.rightArrow,false);else this.enableArrow(this.rightArrow,true);};UIPortalControl.prototype.initAllManagers=function(){var managers=eXo.portal.UIPortalControl.scrollManagers;for(var i=0;i<managers.length;i++){var mgrContainer=document.getElementById(managers[i].id);var mgrParent=eXo.core.DOMUtil.findAncestorByClass(mgrContainer,"UIWindow");var toInit=(mgrContainer!==null)&&(mgrParent===null||(mgrParent!==null&&mgrParent.style.display=="block"))&&(typeof(managers[i].initFunction)=="function");if(toInit){managers[i].initFunction();}}};UIPortalControl.prototype.newScrollManager=function(id_){if(eXo.portal.UIPortalControl.scrollManagers.length==0){eXo.core.Browser.addOnResizeCallback("initAllManagers",eXo.portal.UIPortalControl.initAllManagers);}
if(id_){var tmpMgr=new ScrollManager();tmpMgr.id=id_;eXo.portal.UIPortalControl.scrollManagers.push(tmpMgr);return tmpMgr;}else{alert('You must set an id to the new scroll manager !!');return null;}};eXo.portal.UIPortalControl=new UIPortalControl();function PortalDragDrop(){this.count=0;};PortalDragDrop.prototype.init=function(e){var DOMUtil=eXo.core.DOMUtil;var Browser=eXo.core.Browser;var DragDrop=eXo.core.DragDrop;DragDrop.initCallback=function(dndEvent){if(!eXo.core.Browser.isFF()&&document.getElementById("UIWorkingWorkspace")){document.getElementById("UIWorkingWorkspace").style.position="relative";}
var PortalDragDrop=eXo.portal.PortalDragDrop;this.origDragObjectStyle=new eXo.core.HashMap();var dragObject=dndEvent.dragObject;var properties=["top","left","zIndex","opacity","filter","position"];this.origDragObjectStyle.copyProperties(properties,dragObject.style);PortalDragDrop.originalDragObjectTop=Browser.findPosY(dragObject);var originalDragObjectLeft=Browser.findPosX(dragObject);var originalMousePositionY=Browser.findMouseYInPage(e);var originalMousePositionX=Browser.findMouseXInPage(e);PortalDragDrop.deltaYDragObjectAndMouse=originalMousePositionY-PortalDragDrop.originalDragObjectTop;PortalDragDrop.deltaXDragObjectAndMouse=originalMousePositionX-originalDragObjectLeft;PortalDragDrop.parentDragObject=dragObject.parentNode;PortalDragDrop.backupDragObjectWidth=dragObject.offsetWidth;PortalDragDrop.backupTopPosition=PortalDragDrop.originalDragObjectTop;PortalDragDrop.backupLeftPosition=originalDragObjectLeft;PortalDragDrop.backupOffsetWidth=dragObject.offsetWidth;PortalDragDrop.backupOffsetHeight=dragObject.offsetHeight;if(DOMUtil.findFirstChildByClass(dragObject,"div","CONTROL-BLOCK")==null){var cloneObject=dragObject.cloneNode(true);dragObject.parentNode.insertBefore(cloneObject,dragObject);dndEvent.dragObject=cloneObject;cloneObject.style.position="absolute";cloneObject.style.left=(Browser.findMouseXInPage(e)-
PortalDragDrop.deltaXDragObjectAndMouse)+"px";cloneObject.style.top=(Browser.findMouseYInPage(e)-
PortalDragDrop.deltaYDragObjectAndMouse-document.documentElement.scrollTop)+"px";cloneObject.style.opacity=0.5;cloneObject.style.filter="alpha(opacity=50)";cloneObject.style.width=PortalDragDrop.backupDragObjectWidth+"px";}}
DragDrop.dragCallback=function(dndEvent){var dragObject=dndEvent.dragObject;eXo.portal.PortalDragDrop.scrollOnDrag(dragObject,dndEvent);if((dndEvent.foundTargetObject)&&(dndEvent.lastFoundTargetObject)){var uiComponentLayout;if(dndEvent.foundTargetObject.className=="UIPage"){uiComponentLayout=DOMUtil.findFirstDescendantByClass(dndEvent.foundTargetObject,"div","VIEW-PAGE");}else if(dndEvent.foundTargetObject.className=="UIPortal"){uiComponentLayout=DOMUtil.findFirstDescendantByClass(dndEvent.foundTargetObject,"div","LAYOUT-PORTAL");}else{var foundUIComponent=new eXo.portal.UIPortalComponent(dndEvent.foundTargetObject);uiComponentLayout=foundUIComponent.getLayoutBlock();}
if(uiComponentLayout.className=="LAYOUT-CONTAINER")uiComponentLayout.style.height="auto";try{if(eXo.portal.PortalDragDrop.backupLastFoundTarget){var lastFoundUIComponent=new eXo.portal.UIPortalComponent(eXo.portal.PortalDragDrop.backupLastFoundTarget);var lastFoundComponentLayout=lastFoundUIComponent.getLayoutBlock();if((lastFoundComponentLayout.className=="LAYOUT-CONTAINER")&&(lastFoundComponentLayout.offsetHeight<30)){if(eXo.core.DOMUtil.findFirstDescendantByClass(lastFoundComponentLayout,"div","UIContainer")==null){lastFoundComponentLayout.style.height="60px";}}}}catch(err){}
dndEvent.foundTargetObject.uiComponentLayoutType=uiComponentLayout;var componentIdElement=DOMUtil.getChildrenByTagName(uiComponentLayout,"div")[0];var layoutTypeElement=DOMUtil.getChildrenByTagName(componentIdElement,"div")[0];eXo.portal.PortalDragDrop.layoutTypeElementNode=layoutTypeElement;if(layoutTypeElement!=null){var rowContainer=DOMUtil.findFirstDescendantByClass(uiComponentLayout,"div","UIRowContainer");var childRowContainer=DOMUtil.getChildrenByTagName(rowContainer,"div");var listComponent=new Array();for(var i=0;i<childRowContainer.length;i++){if((childRowContainer[i].className!="DragAndDropPreview")&&(childRowContainer[i]!=dragObject)){listComponent.push(childRowContainer[i]);}}
dndEvent.foundTargetObject.listComponentInTarget=listComponent;eXo.portal.PortalDragDrop.setDragObjectProperties(dragObject,childRowContainer,"row",dndEvent.backupMouseEvent);var insertPosition=eXo.portal.PortalDragDrop.findInsertPosition(listComponent,dragObject,"row");dndEvent.foundTargetObject.foundIndex=insertPosition;if(dndEvent.lastFoundTargetObject!=null){eXo.portal.PortalDragDrop.backupLastFoundTarget=dndEvent.lastFoundTargetObject;eXo.portal.PortalDragDrop.undoPreview(dndEvent);}
if(insertPosition>=0){rowContainer.insertBefore(eXo.portal.PortalDragDrop.createPreview("row"),listComponent[insertPosition]);}else{rowContainer.appendChild(eXo.portal.PortalDragDrop.createPreview("row"));}}else{var columnContainer=DOMUtil.findFirstDescendantByClass(uiComponentLayout,"table","UITableColumnContainer");var trContainer=DOMUtil.findFirstDescendantByClass(uiComponentLayout,"tr","TRContainer");var tdElementList=DOMUtil.getChildrenByTagName(trContainer,"td");var listComponent=new Array();for(var i=0;i<tdElementList.length;i++){if(DOMUtil.hasDescendantClass(uiComponentLayout,"DragAndDropPreview")){var previewBlock=DOMUtil.findFirstDescendantByClass(trContainer,"div","DragAndDropPreview");if((tdElementList[i]!=previewBlock.parentNode)&&(tdElementList[i]!=dragObject.parentNode)){listComponent.push(tdElementList[i]);}}else{listComponent.push(tdElementList[i]);}}
dndEvent.foundTargetObject.listComponentInTarget=listComponent;var insertPosition=eXo.portal.PortalDragDrop.findInsertPosition(listComponent,dragObject,"column");if(dndEvent.foundTargetObject==dndEvent.lastFoundTargetObject&&dndEvent.lastFoundTargetObject.foundIndex==insertPosition){return;}
dndEvent.foundTargetObject.foundIndex=insertPosition;if(dndEvent.lastFoundTargetObject!=null){eXo.portal.PortalDragDrop.undoPreview(dndEvent);}
eXo.portal.PortalDragDrop.tdInserted=document.createElement('td');eXo.portal.PortalDragDrop.tdInserted.appendChild(eXo.portal.PortalDragDrop.createPreview("column"));if(insertPosition>=0){trContainer.insertBefore(eXo.portal.PortalDragDrop.tdInserted,listComponent[insertPosition]);}else{trContainer.appendChild(eXo.portal.PortalDragDrop.tdInserted);}
eXo.portal.PortalDragDrop.setDragObjectProperties(dragObject,tdElementList,"column",dndEvent.backupMouseEvent);}
if((Browser.findPosY(dragObject)<2)||(Browser.findPosX(dragObject)+64>eXo.core.Browser.getBrowserWidth())){DragDrop.dropCallback(dndEvent);document.onmousemove=null;}}};DragDrop.dropCallback=function(dndEvent){this.origDragObjectStyle.setProperties(dndEvent.dragObject.style,false);if(dndEvent.foundTargetObject!=null){eXo.portal.PortalDragDrop.doDropCallback(dndEvent);}else{if(DOMUtil.findFirstChildByClass(dndEvent.dragObject,"div","CONTROL-BLOCK")==null){dndEvent.dragObject.parentNode.removeChild(dndEvent.dragObject);}
eXo.portal.PortalDragDrop.removeNullPreview();}}
var clickObject=this;var controlBlock=DOMUtil.findAncestorByClass(clickObject,"CONTROL-BLOCK");if(controlBlock!=null){var dragBlock=eXo.portal.UIPortal.findUIComponentOf(controlBlock);DragDrop.init(eXo.portal.PortalDragDrop.findDropableTargets(),clickObject,dragBlock,e);}else if(DOMUtil.findAncestorByClass(clickObject,"DragObjectPortlet")){var dragBlock=DOMUtil.findAncestorByClass(clickObject,"DragObjectPortlet");DragDrop.init(eXo.portal.PortalDragDrop.findDropableTargets(),clickObject,dragBlock,e);}else{DragDrop.init(eXo.portal.PortalDragDrop.findDropableTargets(),clickObject,clickObject,e);}};PortalDragDrop.prototype.doDropCallback=function(dndEvent){if(!dndEvent.lastFoundTargetObject){dndEvent.lastFoundTargetObject=eXo.portal.PortalDragDrop.backupLastFoundTarget;}
eXo.portal.PortalDragDrop.undoPreview(dndEvent);var srcElement=dndEvent.dragObject;var targetElement=dndEvent.foundTargetObject;var newComponent=false;if(eXo.core.DOMUtil.hasDescendantClass(srcElement,"DragControlArea")&&(targetElement.foundIndex!=null)){if(eXo.portal.PortalDragDrop.layoutTypeElementNode!=null){eXo.portal.PortalDragDrop.divRowContainerAddChild(srcElement,targetElement,targetElement.foundIndex);}else{eXo.portal.PortalDragDrop.tableColumnContainerAddChild(srcElement,targetElement,targetElement.foundIndex);}}
if(eXo.core.DOMUtil.findFirstChildByClass(dndEvent.dragObject,"div","CONTROL-BLOCK")==null){dndEvent.dragObject.parentNode.removeChild(dndEvent.dragObject);newComponent=true;}
var params=[{name:"srcID",value:(srcElement.id.replace(/^UIPortlet-/,"")).replace(/^UIContainer-/,"")},{name:"targetID",value:targetElement.id.replace(/^.*-/,"")},{name:"insertPosition",value:targetElement.foundIndex},{name:"newComponent",value:newComponent}];try{dndEvent.lastFoundTargetObject.foundIndex=-1;}catch(err){}
ajaxGet(eXo.env.server.createPortalURL("UIPortal","MoveChild",true,params));};PortalDragDrop.prototype.findDropableTargets=function(){var dropableTargets=new Array();var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");var uiPortal=eXo.core.DOMUtil.findFirstDescendantByClass(uiWorkingWorkspace,"div","UIPortal");var uiPage=eXo.core.DOMUtil.findFirstDescendantByClass(uiWorkingWorkspace,"div","UIPage");var viewPage=eXo.core.DOMUtil.findFirstDescendantByClass(uiPage,"div","VIEW-PAGE");var uiContainers=eXo.core.DOMUtil.findDescendantsByClass(uiWorkingWorkspace,"div","UIContainer");if(viewPage.style.display=="none"){dropableTargets.push(uiPortal);}else{dropableTargets.push(uiPage);}
for(var i=0;i<uiContainers.length;i++){dropableTargets.push(uiContainers[i]);}
return dropableTargets;};PortalDragDrop.prototype.scrollOnDrag=function(dragObject,dndEvent){var dragObjectTop=eXo.core.Browser.findPosY(dragObject);var browserHeight=eXo.core.Browser.getBrowserHeight();var mouseY=eXo.core.Browser.findMouseYInClient(dndEvent.backupMouseEvent);var deltaTopMouse=eXo.core.Browser.findMouseYInPage(dndEvent.backupMouseEvent)-mouseY;var deltaTop=mouseY-(Math.round(browserHeight*5/6));var deltaBottom=mouseY-(Math.round(browserHeight/6));if(deltaTop>0){document.documentElement.scrollTop+=deltaTop-5;}
if(deltaBottom<0&&document.documentElement.scrollTop>0){document.documentElement.scrollTop+=deltaBottom;}};PortalDragDrop.prototype.findInsertPosition=function(components,dragObject,layout){var dragObjectX=eXo.core.Browser.findPosX(dragObject);if(layout=="row"){for(var i=0;i<components.length;i++){var componentTop=eXo.core.Browser.findPosY(components[i]);var dragObjectTop=eXo.core.Browser.findPosY(dragObject);var componentMiddle=componentTop+Math.round(components[i].offsetHeight/2);if(dragObjectTop>componentMiddle)continue;else return i;}
return-1;}else{for(var i=0;i<components.length;i++){var componentInTD=eXo.core.DOMUtil.getChildrenByTagName(components[i],"div")[0];var componentX=eXo.core.Browser.findPosX(components[i]);if(dragObjectX>componentX)continue;else return i;}
return-1;}};PortalDragDrop.prototype.setDragObjectProperties=function(dragObject,listComponent,layout,e){var uiControlWorkspace=document.getElementById("UIControlWorkspace");var uiPage=eXo.core.DOMUtil.findAncestorByClass(dragObject,"UIPage");var csWidth=uiControlWorkspace.offsetWidth;if(eXo.core.Browser.isIE7()||(eXo.core.Browser.isIE6()&&(uiPage==null)))csWidth=csWidth*2;dragObject.style.position="absolute";if(eXo.core.DOMUtil.findFirstChildByClass(dragObject,"div","CONTROL-BLOCK")==null){dragObject.style.top=(eXo.core.Browser.findMouseYInPage(e)-
eXo.portal.PortalDragDrop.deltaYDragObjectAndMouse-document.documentElement.scrollTop)+"px";dragObject.style.left=(eXo.core.Browser.findMouseXInPage(e)-
eXo.portal.PortalDragDrop.deltaXDragObjectAndMouse)+"px";}else{dragObject.style.top=(eXo.core.Browser.findMouseYInPage(e)-
eXo.portal.PortalDragDrop.deltaYDragObjectAndMouse)+"px";dragObject.style.left=(eXo.core.Browser.findMouseXInPage(e)-csWidth-
eXo.portal.PortalDragDrop.deltaXDragObjectAndMouse)+"px";}
dragObject.style.width="300px";};PortalDragDrop.prototype.createPreview=function(layoutType){var previewBlock=document.createElement("div");var components=eXo.core.DragDrop.dndEvent.foundTargetObject.listComponentInTarget;previewBlock.className="DragAndDropPreview";previewBlock.id="DragAndDropPreview";if((layoutType=="column")&&(components.length>0)){var offsetWidthTR=components[0].parentNode.offsetWidth;var widthComponent=0;if(eXo.core.DOMUtil.findAncestorByClass(eXo.portal.PortalDragDrop.parentDragObject,"TRContainer")!=null){widthComponent=Math.round(offsetWidthTR/(components.length))-1;}else{widthComponent=Math.round(offsetWidthTR/(components.length+1))-1;}
eXo.portal.PortalDragDrop.tdInserted.style.width=widthComponent+"px";for(var i=0;i<components.length;i++){if(components[i]==eXo.portal.PortalDragDrop.parentDragObject){components[i].style.width="0px";}else{components[i].style.width=widthComponent+"px";}}
eXo.portal.PortalDragDrop.widthComponentInTarget=widthComponent;}
return previewBlock;};PortalDragDrop.prototype.removeNullPreview=function(){var dropObject=document.getElementById("DragAndDropPreview");if(dropObject&&dropObject.innerHTML==""){dropObject.parentNode.removeChild(dropObject);}}
PortalDragDrop.prototype.undoPreview=function(dndEvent){var DOMUtil=eXo.core.DOMUtil;var uiComponentLayout;try{if(dndEvent.lastFoundTargetObject.className=="UIPage"){uiComponentLayout=DOMUtil.findFirstDescendantByClass(dndEvent.lastFoundTargetObject,"div","VIEW-PAGE");}else if(dndEvent.lastFoundTargetObject.className=="UIPortal"){uiComponentLayout=DOMUtil.findFirstDescendantByClass(dndEvent.lastFoundTargetObject,"div","LAYOUT-PORTAL");}else{var foundUIComponent=new eXo.portal.UIPortalComponent(dndEvent.lastFoundTargetObject);uiComponentLayout=foundUIComponent.getLayoutBlock();}}catch(e){}
var componentIdElement=DOMUtil.getChildrenByTagName(uiComponentLayout,"div")[0];var layoutTypeElement=DOMUtil.getChildrenByTagName(componentIdElement,"div")[0];var dropHere=document.getElementById("DragAndDropPreview");var dragObject=dndEvent.dragObject;if(dropHere!=null){if(layoutTypeElement!=null){dropHere.parentNode.removeChild(dropHere);}else{var tableLayoutElement=DOMUtil.getChildrenByTagName(componentIdElement,"table")[0];var trContainer=DOMUtil.findFirstDescendantByClass(tableLayoutElement,"tr","TRContainer");trContainer.removeChild(dropHere.parentNode);childTRContainer=DOMUtil.getChildrenByTagName(trContainer,"td");for(var i=0;i<childTRContainer.length;i++){if(childTRContainer[i]==eXo.portal.PortalDragDrop.parentDragObject){childTRContainer[i].style.width="0px";}}}}
dragObject.style.border="none";};PortalDragDrop.prototype.divRowContainerAddChild=function(insertBlock,targetElement,insertPosition){var listComponent=eXo.core.DragDrop.dndEvent.foundTargetObject.listComponentInTarget;var uiRowContainer=eXo.core.DOMUtil.findFirstDescendantByClass(targetElement,"div","UIRowContainer");insertBlock.style.width="auto";if(insertPosition>=0){uiRowContainer.insertBefore(insertBlock,listComponent[insertPosition]);}else{uiRowContainer.appendChild(insertBlock);}
if(eXo.portal.PortalDragDrop.parentDragObject.parentNode.className=="TRContainer"){eXo.portal.PortalDragDrop.parentDragObject.parentNode.removeChild(eXo.portal.PortalDragDrop.parentDragObject);}};PortalDragDrop.prototype.tableColumnContainerAddChild=function(insertBlock,targetElement,insertPosition){var listComponent=eXo.core.DragDrop.dndEvent.foundTargetObject.listComponentInTarget;var DOMUtil=eXo.core.DOMUtil;var trContainer=DOMUtil.findFirstDescendantByClass(targetElement,"tr","TRContainer");var tdInserted=document.createElement('td');var checkTRContainerInsertBlock=DOMUtil.findAncestorByClass(insertBlock,"TRContainer");tdInserted.style.width=eXo.portal.PortalDragDrop.widthComponentInTarget+"px";tdInserted.appendChild(insertBlock);if(insertPosition>=0){trContainer.insertBefore(tdInserted,listComponent[insertPosition]);}else{trContainer.appendChild(tdInserted);}
insertBlock.style.width="auto";if(checkTRContainerInsertBlock){trContainer.removeChild(eXo.portal.PortalDragDrop.parentDragObject);}};PortalDragDrop.prototype.fixCss=function(){return;var DOMUtil=eXo.core.DOMUtil;uiPortal=document.getElementById("UIPortal-UIPortal");if(uiPortal){parentByClass=DOMUtil.findAncestorByClass(uiPortal,"Vista");if(parentByClass){layoutPortal=DOMUtil.findFirstDescendantByClass(uiPortal,"div","LAYOUT-PORTAL");viewPortal=DOMUtil.findFirstDescendantByClass(uiPortal,"div","VIEW-PORTAL");uiRowContainer=DOMUtil.findFirstDescendantByClass(uiPortal,"div","UIRowContainer");if(uiRowContainer!=null){if(layoutPortal.style.display=="block"||viewPortal.style.display=="none"){uiPortal.style.paddingTop="50px";uiPortal.style.paddingRight="0px";uiPortal.style.paddingBottom="50px";uiPortal.style.paddingLeft="0px";}else{uiPortal.style.padding="0px";}}}}};eXo.portal.PortalDragDrop=new PortalDragDrop();function UIPortalNavigation(){this.currentOpenedMenu=null;this.scrollMgr=null;this.scrollManagerLoaded=false;};UIPortalNavigation.prototype.init=function(popupMenu,container,x,y){this.superClass=eXo.webui.UIPopupMenu;this.superClass.init(popupMenu,container,x,y);this.tabStyleClass="MenuItem";this.itemStyleClass="NormalItem";this.selectedItemStyleClass="SelectedItem";this.itemOverStyleClass="OverItem";this.containerStyleClass="MenuItemContainer";this.buildMenu(popupMenu);};UIPortalNavigation.prototype.onLoad=function(){var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");var uiNavPortlets=eXo.core.DOMUtil.findDescendantsByClass(uiWorkingWorkspace,"div","UINavigationPortlet");if(uiNavPortlets.length){var mainContainer=eXo.core.DOMUtil.findFirstDescendantByClass(uiNavPortlets[0],"div","TabsContainer");eXo.portal.UIPortalNavigation.init(uiNavPortlets[0],mainContainer,0,0);for(var i=1;i<uiNavPortlets.length;++i){uiNavPortlets[i].style.display="none";}}};UIPortalNavigation.prototype.buildMenu=function(popupMenu){var DOMUtil=eXo.core.DOMUtil;var topContainer=DOMUtil.findFirstDescendantByClass(popupMenu,"div","TabsContainer");topContainer.id="PortalNavigationTopContainer";var topItems=DOMUtil.findDescendantsByClass(topContainer,"div","UITab");for(var i=0;i<topItems.length;i++){var item=topItems[i];item.onmouseover=eXo.portal.UIPortalNavigation.setTabStyleOnMouseOver;item.onmouseout=eXo.portal.UIPortalNavigation.setTabStyleOnMouseOut;if(!item.getAttribute('hidesubmenu')){item.onmousemove=eXo.portal.UIPortalNavigation.tabOnMouseMove;}
item.style.width=item.offsetWidth+"px";var container=DOMUtil.findFirstDescendantByClass(item,"div",this.containerStyleClass);if(container){if(eXo.core.Browser.browserType=="mozilla"||eXo.core.Browser.isIE7()){container.style.minWidth=item.offsetWidth+"px";}else{container.style.width=item.offsetWidth+"px";}}}
var menuItems=DOMUtil.findDescendantsByClass(topContainer,"div",this.tabStyleClass);for(var i=0;i<menuItems.length;i++){var menuItem=menuItems[i];menuItem.onmouseover=eXo.portal.UIPortalNavigation.onMenuItemOver;menuItem.onmouseout=eXo.portal.UIPortalNavigation.onMenuItemOut;var cont=DOMUtil.findAncestorByClass(menuItem,this.containerStyleClass);if(!cont.id)cont.id="PortalNavigationContainer-"+i+Math.random();cont.resized=false;}};UIPortalNavigation.prototype.setTabStyle=function(){var tab=this;var tabChildren=eXo.core.DOMUtil.getChildrenByTagName(tab,"div");if(tabChildren[0].className!="HighlightNavigationTab"){eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,true);}else{if(tabChildren.length<=1||tabChildren[1].id!=eXo.portal.UIPortalNavigation.currentOpenedMenu){eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,false);}}}
UIPortalNavigation.prototype.setTabStyleOnMouseOver=function(e){var tab=this;if(eXo.portal.UIPortalNavigation.previousMenuItem!=tab){eXo.portal.UIPortalNavigation.hideMenu();}
eXo.portal.UIPortalNavigation.setTabStyleOnMouseOut(e,tab);eXo.portal.UIPortalNavigation.previousMenuItem=tab;if(!eXo.portal.UIPortalNavigation.menuVisible){var menuItemContainer=eXo.core.DOMUtil.findFirstDescendantByClass(tab,"div",eXo.portal.UIPortalNavigation.containerStyleClass);var hideSubmenu=tab.getAttribute('hideSubmenu');if(menuItemContainer&&!hideSubmenu){eXo.portal.UIPortalNavigation.toggleSubMenu(e,tab,menuItemContainer);}}
eXo.portal.UIPortalNavigation.menuVisible=true;};UIPortalNavigation.prototype.setTabStyleOnMouseOut=function(e,src){var tab=src||this;var tabChildren=eXo.core.DOMUtil.getChildrenByTagName(tab,"div");if(tabChildren.length<=0){return;}
if(tabChildren[0].className!="HighlightNavigationTab"){eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,true);}else{if(tabChildren.length<=1||tabChildren[1].id!=eXo.portal.UIPortalNavigation.currentOpenedMenu){eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,false);}}
eXo.portal.UIPortalNavigation.hideMenuTimeout(500);}
UIPortalNavigation.prototype.tabOnMouseMove=function(){eXo.portal.UIPortalNavigation.cancelHideMenuContainer();};UIPortalNavigation.prototype.toggleSubMenu=function(e,tab,menuItemContainer){if(!e)e=window.event;e.cancelBubble=true;var src=eXo.core.Browser.getEventSource(e);if(src.tagName.toLowerCase()=="a"&&!menuItemContainer){if(src.href.substr(0,7)=="http://"){if(!src.target){window.location.href=src.href}else{return true;}}else eval(src.href);return false;}
var item=tab;var DOMUtil=eXo.core.DOMUtil;if(menuItemContainer){if(menuItemContainer.style.display=="none"){if(eXo.portal.UIPortalNavigation.currentOpenedMenu)eXo.portal.UIPortalNavigation.hideMenu();eXo.portal.UIPortalNavigation.superClass.pushVisibleContainer(menuItemContainer.id);var y=item.offsetHeight+item.offsetTop;var x=item.offsetLeft+2;eXo.portal.UIPortalNavigation.superClass.setPosition(menuItemContainer,x,y);eXo.portal.UIPortalNavigation.superClass.show(menuItemContainer);menuItemContainer.style.width=menuItemContainer.offsetWidth+2+"px";eXo.portal.UIPortalNavigation.currentOpenedMenu=menuItemContainer.id;var uiPortalApplication=document.getElementById("UIPortalApplication");uiPortalApplication.onclick=eXo.portal.UIPortalNavigation.hideMenu;}else{eXo.portal.UIPortalNavigation.hideMenuContainer();}}};UIPortalNavigation.prototype.cancelHideMenuContainer=function(){if(this.hideMenuTimeoutId){window.clearTimeout(this.hideMenuTimeoutId);}};UIPortalNavigation.prototype.closeMenuTimeout=function(){eXo.portal.UIPortalNavigation.hideMenuTimeout(200);};UIPortalNavigation.prototype.hideMenuTimeout=function(time){this.cancelHideMenuContainer();if(!time||time<=0){time=200;}
this.hideMenuTimeoutId=window.setTimeout('eXo.portal.UIPortalNavigation.hideMenu() ;',time);};UIPortalNavigation.prototype.hideMenuContainer=function(){var menuItemContainer=document.getElementById(eXo.portal.UIPortalNavigation.currentOpenedMenu);if(menuItemContainer){eXo.portal.UIPortalNavigation.superClass.pushHiddenContainer(menuItemContainer.id);eXo.portal.UIPortalNavigation.superClass.popVisibleContainer();eXo.portal.UIPortalNavigation.superClass.setCloseTimeout();eXo.portal.UIPortalNavigation.superClass.hide(menuItemContainer);eXo.portal.UIPortalNavigation.currentOpenedMenu=null;}
this.previousMenuItem=false;eXo.portal.UIPortalNavigation.menuVisible=false;};UIPortalNavigation.prototype.hideMenu=function(){if(eXo.portal.UIPortalNavigation.currentOpenedMenu){var currentItemContainer=document.getElementById(eXo.portal.UIPortalNavigation.currentOpenedMenu);var tab=eXo.core.DOMUtil.findAncestorByClass(currentItemContainer,"UITab");eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,false);}
eXo.portal.UIPortalNavigation.hideMenuContainer();};UIPortalNavigation.prototype.onMenuItemOver=function(e){var menuItem=this;var DOMUtil=eXo.core.DOMUtil;var subContainer=DOMUtil.findFirstDescendantByClass(menuItem,"div",eXo.portal.UIPortalNavigation.containerStyleClass);if(subContainer){eXo.portal.UIPortalNavigation.superClass.pushVisibleContainer(subContainer.id);eXo.portal.UIPortalNavigation.showMenuItemContainer(menuItem,subContainer);if(!subContainer.firstTime){subContainer.style.width=subContainer.offsetWidth+2+"px";subContainer.firstTime=true;}}
eXo.portal.UIPortalNavigation.cancelHideMenuContainer();};UIPortalNavigation.prototype.showMenuItemContainer=function(menuItem,menuItemContainer){var x=menuItem.offsetWidth;var y=menuItem.offsetTop;this.superClass.setPosition(menuItemContainer,x,y);this.superClass.show(menuItemContainer);};UIPortalNavigation.prototype.onMenuItemOut=function(e){var menuItem=this;var subContainer=eXo.core.DOMUtil.findFirstDescendantByClass(menuItem,"div",eXo.portal.UIPortalNavigation.containerStyleClass);if(subContainer){eXo.portal.UIPortalNavigation.superClass.pushHiddenContainer(subContainer.id);eXo.portal.UIPortalNavigation.superClass.popVisibleContainer();eXo.portal.UIPortalNavigation.superClass.setCloseTimeout(300);}};UIPortalNavigation.prototype.loadScroll=function(e){var uiNav=eXo.portal.UIPortalNavigation;var portalNav=document.getElementById("PortalNavigationTopContainer");if(portalNav){uiNav.scrollMgr=eXo.portal.UIPortalControl.newScrollManager("PortalNavigationTopContainer");uiNav.scrollMgr.initFunction=uiNav.initScroll;var tabs=eXo.core.DOMUtil.findAncestorByClass(portalNav,"UIHorizontalTabs");uiNav.scrollMgr.mainContainer=tabs;uiNav.scrollMgr.arrowsContainer=eXo.core.DOMUtil.findFirstDescendantByClass(tabs,"div","ScrollButtons");uiNav.scrollMgr.loadElements("UITab");var arrowButtons=eXo.core.DOMUtil.findDescendantsByTagName(uiNav.scrollMgr.arrowsContainer,"div");if(arrowButtons.length==2){uiNav.scrollMgr.initArrowButton(arrowButtons[0],"left","ScrollLeftButton","HighlightScrollLeftButton","DisableScrollLeftButton");uiNav.scrollMgr.initArrowButton(arrowButtons[1],"right","ScrollRightButton","HighlightScrollRightButton","DisableScrollRightButton");}
uiNav.scrollMgr.callback=uiNav.scrollCallback;uiNav.scrollManagerLoaded=true;uiNav.initScroll();}};UIPortalNavigation.prototype.initScroll=function(e){if(!eXo.portal.UIPortalNavigation.scrollManagerLoaded)eXo.portal.UIPortalNavigation.loadScroll();var scrollMgr=eXo.portal.UIPortalNavigation.scrollMgr;scrollMgr.init();scrollMgr.checkAvailableSpace();scrollMgr.renderElements();};UIPortalNavigation.prototype.scrollCallback=function(){};eXo.portal.UIPortalNavigation=new UIPortalNavigation();function UIMaskWorkspace(){};UIMaskWorkspace.prototype.init=function(maskId,show,width,height){var maskWorkpace=document.getElementById(maskId);this.maskWorkpace=maskWorkpace;if(this.maskWorkpace){if(width>-1)this.maskWorkpace.style.width=width+"px";if(show){if(eXo.portal.UIMaskWorkspace.maskLayer==null){var maskLayer=eXo.core.UIMaskLayer.createMask("UIPortalApplication",this.maskWorkpace,30);eXo.portal.UIMaskWorkspace.maskLayer=maskLayer;}
this.maskWorkpace.style.margin="auto";this.maskWorkpace.style.display="block";}else{if(eXo.portal.UIMaskWorkspace.maskLayer==undefined)return;eXo.core.UIMaskLayer.removeMask(eXo.portal.UIMaskWorkspace.maskLayer);eXo.portal.UIMaskWorkspace.maskLayer=null;this.maskWorkpace.style.display="none";}
if(height<0)return;}};UIMaskWorkspace.prototype.resetPosition=function(){var maskWorkpace=eXo.portal.UIMaskWorkspace.maskWorkpace;if(maskWorkpace&&(maskWorkpace.style.display=="block")){try{eXo.core.UIMaskLayer.blockContainer=document.getElementById("UIPortalApplication");eXo.core.UIMaskLayer.object=maskWorkpace;eXo.core.UIMaskLayer.setPosition();}catch(e){}}};eXo.portal.UIMaskWorkspace=new UIMaskWorkspace();function UIExoStartMenu(){this.buttonClicked=false;this.clipTop=1;this.clipBottom=1;this.stepScroll=10;this.itemStyleClass="MenuItem";this.itemOverStyleClass="MenuItemOver";this.containerStyleClass="MenuItemContainer";this.superClass=eXo.webui.UIPopupMenu;};UIExoStartMenu.prototype.init=function(popupMenu,container,x,y){var uiStart=eXo.portal.UIExoStartMenu;this.superClass.init(popupMenu,container.id,x,y);this.exoStartButton=eXo.core.DOMUtil.findFirstDescendantByClass(container,"div","ExoStartButton");this.exoStartButton.onmouseover=function(){if(!eXo.portal.UIExoStartMenu.buttonClicked)this.className="ExoStartButton ButtonOver";};this.exoStartButton.onmouseout=function(){if(!eXo.portal.UIExoStartMenu.buttonClicked)this.className="ExoStartButton ButtonNormal";};this.buildMenu(popupMenu);};UIExoStartMenu.prototype.onLoad=function(){var uiStartContainer=document.getElementById("StartMenuContainer");var uiExoStart=document.getElementById("UIExoStart");eXo.portal.UIExoStartMenu.init(uiStartContainer,uiExoStart,0,0);eXo.webui.UIPopupMenu.hide(uiStartContainer);eXo.core.ExoDateTime.getTime();};UIExoStartMenu.prototype.buildMenu=function(popupMenu){if(typeof(popupMenu)=="string")popupMenu=document.getElementById(popupMenu);var blockMenuItems=eXo.core.DOMUtil.findDescendantsByClass(popupMenu,"div",this.containerStyleClass);for(var i=0;i<blockMenuItems.length;i++){if(!blockMenuItems[i].id)blockMenuItems[i].id=Math.random().toString();blockMenuItems[i].resized=false;}
var menuItems=eXo.core.DOMUtil.findDescendantsByClass(popupMenu,"div",this.itemStyleClass);for(var i=0;i<menuItems.length;i++){var menuItemContainer=eXo.core.DOMUtil.findFirstChildByClass(menuItems[i],"div","MenuItemContainer");if(menuItemContainer)menuItems[i].menuItemContainer=menuItemContainer;menuItems[i].onmouseover=this.onMenuItemOver;menuItems[i].onmouseout=this.onMenuItemOut;var labelItem=eXo.core.DOMUtil.findFirstDescendantByClass(menuItems[i],"div","LabelItem");var link=eXo.core.DOMUtil.findDescendantsByTagName(labelItem,"a")[0];this.superClass.createLink(menuItems[i],link);}};UIExoStartMenu.prototype.onMenuItemOver=function(event){this.className=eXo.portal.UIExoStartMenu.itemOverStyleClass;this.style.position="relative";if(this.menuItemContainer){var menuItemContainer=this.menuItemContainer;var x=this.offsetWidth+this.offsetLeft;var rootX=eXo.core.Browser.findPosX(this);if(x+menuItemContainer.offsetWidth+rootX>eXo.core.Browser.getBrowserWidth()){x-=(menuItemContainer.offsetWidth+this.offsetWidth);}
if(eXo.core.Browser.isIE6())x-=10;menuItemContainer.style.left=x+"px";eXo.portal.UIExoStartMenu.createSlide(this);eXo.portal.UIExoStartMenu.superClass.pushVisibleContainer(this.menuItemContainer.id);}};UIExoStartMenu.prototype.createSlide=function(menuItem){var menuItemContainer=menuItem.menuItemContainer;menuItemContainer.style.display="block";if(!menuItemContainer.resized)eXo.portal.UIExoStartMenu.setContainerSize(menuItemContainer);var blockMenu=eXo.core.DOMUtil.findFirstDescendantByClass(menuItemContainer,"div","BlockMenu");var parentMenu=blockMenu.parentNode;var topElement=eXo.core.DOMUtil.findFirstChildByClass(parentMenu,"div","TopNavigator");var bottomElement=eXo.core.DOMUtil.findFirstChildByClass(parentMenu,"div","BottomNavigator");var menuContainer=eXo.core.DOMUtil.findFirstDescendantByClass(blockMenu,"div","MenuContainer");if(!menuContainer.id)menuContainer.id="eXo"+new Date().getTime()+Math.random().toString().substring(2);var browserHeight=eXo.core.Browser.getBrowserHeight();if(menuContainer.offsetHeight+64>browserHeight){var curentHeight=browserHeight-64;blockMenu.style.height=curentHeight+"px";topElement.style.display="block";bottomElement.style.display="block";if(!menuContainer.curentHeight||(menuContainer.curentHeight!=curentHeight)){eXo.portal.UIExoStartMenu.initSlide(menuContainer,curentHeight);}
topElement.onmousedown=function(){eXo.portal.UIExoStartMenu.scrollDown(menuContainer.id,curentHeight);};topElement.onmouseoup=function(){if(menuContainer.repeat){clearTimeout(menuContainer.repeat);menuContainer.repeat=null;}};topElement.onclick=function(event){clearTimeout(menuContainer.repeat);menuContainer.repeat=null;event=event||window.event;event.cancelBubble=true;};bottomElement.onmousedown=function(){eXo.portal.UIExoStartMenu.scrollUp(menuContainer.id,curentHeight);};bottomElement.onmouseoup=function(){if(menuContainer.repeat){clearTimeout(menuContainer.repeat);menuContainer.repeat=null;}};bottomElement.onclick=function(event){clearTimeout(menuContainer.repeat);menuContainer.repeat=null;event=event||window.event;event.cancelBubble=true;};}else{blockMenu.style.height=menuContainer.offsetHeight+"px";menuContainer.style.clip="rect(0px 1280px auto auto)";menuContainer.curentHeight=null;menuContainer.style.position="static";topElement.style.display="none";bottomElement.style.display="none";}
var Y=eXo.portal.UIExoStartMenu.getDimension(menuItem);if(Y!=undefined)menuItemContainer.style.top=Y+"px";};UIExoStartMenu.prototype.onMenuItemOut=function(event){this.className=eXo.portal.UIExoStartMenu.itemStyleClass;if(this.menuItemContainer){eXo.portal.UIExoStartMenu.superClass.pushHiddenContainer(this.menuItemContainer.id);eXo.portal.UIExoStartMenu.superClass.popVisibleContainer();eXo.portal.UIExoStartMenu.superClass.setCloseTimeout();}};UIExoStartMenu.prototype.showStartMenu=function(event){event=event||window.event;event.cancelBubble=true;var uiStartContainer=document.getElementById("StartMenuContainer");eXo.portal.UIExoStartMenu.exoStartButton.className="ExoStartButton ButtonClicked";if(uiStartContainer.style.display=="block"){eXo.portal.UIExoStartMenu.hideUIStartMenu();}else{eXo.portal.UIExoStartMenu.buttonClicked=true;var menuY=eXo.core.Browser.findPosY(eXo.portal.UIExoStartMenu.exoStartButton);this.superClass.show(uiStartContainer);var y=menuY-uiStartContainer.offsetHeight;if(window.pageYOffset)y-=window.pageYOffset;else if(document.documentElement.scrollTop)y-=document.documentElement.scrollTop;else if(document.body.scrollTop)y-=document.body.scrollTop;this.superClass.setPosition(uiStartContainer,0,y);uiStartContainer.style.width="238px";uiStartContainer.style.height=uiStartContainer.offsetHeight+"px";}
var uiPortalApplication=document.getElementById("UIPortalApplication");uiPortalApplication.onclick=eXo.portal.UIExoStartMenu.hideUIStartMenu;};UIExoStartMenu.prototype.hideUIStartMenu=function(){var uiStartContainer=document.getElementById("StartMenuContainer");eXo.webui.UIPopupMenu.hide(uiStartContainer);eXo.portal.UIExoStartMenu.buttonClicked=false;eXo.portal.UIExoStartMenu.exoStartButton.className="ExoStartButton ButtonNormal";eXo.portal.UIExoStartMenu.clearStartMenu();};UIExoStartMenu.prototype.clearStartMenu=function(){eXo.webui.UIPopupMenu.currentVisibleContainers.clear();eXo.webui.UIPopupMenu.setCloseTimeout();};UIExoStartMenu.prototype.getDimension=function(menuItem){if(document.documentElement.scrollTop!=undefined)var topPage=document.documentElement.scrollTop;else if(document.body)var topPage=document.body.scrollTop;var PosY=eXo.core.Browser.findPosY(menuItem)-topPage;var browserHeight=eXo.core.Browser.getBrowserHeight();var menuItemContainer=menuItem.menuItemContainer;var offsetHeight=menuItemContainer.offsetHeight;var deltaDown=browserHeight-PosY;if(offsetHeight<deltaDown)var y=0;else if(offsetHeight<PosY)var y=(-offsetHeight+menuItem.offsetHeight);else if(offsetHeight<browserHeight)var y=(-offsetHeight+deltaDown-6);return y;};UIExoStartMenu.prototype.initSlide=function(menuContainer,clipBottom){menuContainer.curentHeight=clipBottom;menuContainer.style.position="absolute";menuContainer.style.top=0+"px";menuContainer.style.clip='rect(0px, 1280px,'+clipBottom+'px, 0px)';};UIExoStartMenu.prototype.scrollUp=function(id,height){var scrollObject=document.getElementById(id);var menuHeight=scrollObject.offsetHeight-height-this.stepScroll;if(eXo.portal.UIExoStartMenu.clipBottom<menuHeight){eXo.portal.UIExoStartMenu.clipTop+=this.stepScroll;eXo.portal.UIExoStartMenu.clipBottom+=this.stepScroll;var clipTop=eXo.portal.UIExoStartMenu.clipTop;var clipBottom=eXo.portal.UIExoStartMenu.clipBottom+height;scrollObject.style.clip='rect('+clipTop+'px, 1280px,'+clipBottom+'px, 0px)';scrollObject.style.top=-clipTop+"px";if(scrollObject.repeat){clearTimeout(scrollObject.repeat);scrollObject.repeat=null;}
scrollObject.repeat=setTimeout("eXo.portal.UIExoStartMenu.scrollUp('"+id+"', "+height+")",1);}};UIExoStartMenu.prototype.scrollDown=function(id,height){var scrollObject=document.getElementById(id);if(eXo.portal.UIExoStartMenu.clipTop>this.stepScroll){eXo.portal.UIExoStartMenu.clipTop-=this.stepScroll;eXo.portal.UIExoStartMenu.clipBottom-=this.stepScroll;var clipTop=eXo.portal.UIExoStartMenu.clipTop;var clipBottom=eXo.portal.UIExoStartMenu.clipBottom+height;scrollObject.style.clip='rect('+clipTop+'px, 1280px,'+clipBottom+'px, 0px)';scrollObject.style.top=-clipTop+"px";if(scrollObject.repeat){clearTimeout(scrollObject.repeat);scrollObject.repeat=null;}
scrollObject.repeat=setTimeout("eXo.portal.UIExoStartMenu.scrollDown('"+id+"', "+height+")",1);}};UIExoStartMenu.prototype.setContainerSize=function(menuItemContainer){var menuCenter=eXo.core.DOMUtil.findFirstDescendantByClass(menuItemContainer,"div","StartMenuML");var menuTop=eXo.core.DOMUtil.findFirstDescendantByClass(menuItemContainer,"div","StartMenuTL");var decorator=eXo.core.DOMUtil.findFirstDescendantByClass(menuTop,"div","StartMenuTR");var menuBottom=menuTop.nextSibling;while(menuBottom.className!="StartMenuBL")menuBottom=menuBottom.nextSibling;var w=menuCenter.offsetWidth-decorator.offsetLeft;menuTop.style.width=w+"px";menuBottom.style.width=w+"px";menuCenter.style.width=w+"px";menuItemContainer.resized=true;if(eXo.core.Browser.isIE7()){var pageOwnerContainer=eXo.core.DOMUtil.findDescendantsByClass(menuItemContainer,"div","PageOwnerContainer");for(var i=0;i<pageOwnerContainer.length;i++){pageOwnerContainer[i].style.width="auto";pageOwnerContainer[i].style.width=pageOwnerContainer[i].offsetWidth+"px";}}};eXo.portal.UIExoStartMenu=new UIExoStartMenu();function UIBrowseContent(){this.bcManagers=new Array();};UIBrowseContent.prototype.waitForLoadComplete=function(){var homeButton=null;var bcPortlet=document.getElementById("UIBrowseContainer");if(bcPortlet)homeButton=eXo.core.DOMUtil.findFirstDescendantByClass(bcPortlet,"div","HomeTab");var tabs=eXo.core.DOMUtil.findFirstDescendantByClass(bcPortlet,"div","UIHorizontalTabs");if(homeButton&&tabs&&homeButton.offsetWidth==tabs.offsetWidth)window.setTimeout(eXo.portal.UIBrowseContent.waitForLoadComplete,100);else eXo.portal.UIBrowseContent.loadScroll();};UIBrowseContent.prototype.loadScroll=function(){var uiBC=eXo.portal.UIBrowseContent;uiBC.bcManagers.clear();var bcPortlet=document.getElementById("UIBrowseContainer");if(bcPortlet){var mainNav=eXo.core.DOMUtil.findFirstDescendantByClass(bcPortlet,"div","UICBMainNavigation");var mainBarMgr=eXo.portal.UIPortalControl.newScrollManager("UIBrowseContainer");mainBarMgr.mainContainer=mainNav;mainBarMgr.arrowsContainer=eXo.core.DOMUtil.findFirstDescendantByClass(mainNav,"div","NavigationButtonContainer");mainBarMgr.loadElements("UITab",true);var mainArrows=eXo.core.DOMUtil.findDescendantsByClass(mainBarMgr.arrowsContainer,"div","NavigationIcon");if(mainArrows.length==2){mainBarMgr.initArrowButton(mainArrows[0],"left","NavigationIcon ScrollBackArrow16x16Icon","NavigationIcon DisableBackArrow16x16Icon","NavigationIcon DisableBackArrow16x16Icon");mainBarMgr.initArrowButton(mainArrows[1],"right","NavigationIcon ScrollNextArrow16x16Icon","NavigationIcon DisableNextArrow16x16Icon","NavigationIcon DisableNextArrow16x16Icon");}
mainBarMgr.initFunction=uiBC.initScroll;mainBarMgr.callback=uiBC.mainMenuScrollCallback;uiBC.bcManagers.push(mainBarMgr);var subNav=eXo.core.DOMUtil.findFirstDescendantByClass(bcPortlet,"div","UICBSubNavigation");var subBarMgr=eXo.portal.UIPortalControl.newScrollManager("UIBrowseContainer");subBarMgr.mainContainer=subNav;subBarMgr.arrowsContainer=eXo.core.DOMUtil.findFirstDescendantByClass(subNav,"div","NavigationButtonContainer");subBarMgr.loadElements("ChildNodeItem",true);for(var i=0;i<subBarMgr.elements.length;i++){subBarMgr.elements[i].decorator=eXo.core.DOMUtil.findNextElementByTagName(subBarMgr.elements[i],"div");}
var subArrows=eXo.core.DOMUtil.findDescendantsByClass(subBarMgr.arrowsContainer,"div","NavigationIcon");if(subArrows.length==2){subBarMgr.initArrowButton(subArrows[0],"left","NavigationIcon ScrollBackArrow16x16Icon","NavigationIcon DisableBackArrow16x16Icon","NavigationIcon DisableBackArrow16x16Icon");subBarMgr.initArrowButton(subArrows[1],"right","NavigationIcon ScrollNextArrow16x16Icon","NavigationIcon DisableNextArrow16x16Icon","NavigationIcon DisableNextArrow16x16Icon");}
subBarMgr.initFunction=uiBC.initScroll;subBarMgr.callback=uiBC.subMenuScrollCallback;uiBC.bcManagers.push(subBarMgr);var pageNav=eXo.core.DOMUtil.findFirstDescendantByClass(bcPortlet,"div","UIEventViewer");var pageMenus=eXo.core.DOMUtil.findDescendantsByClass(pageNav,"div","SubContentTitle");for(var i=0;i<pageMenus.length;i++){var currMgr=eXo.portal.UIPortalControl.newScrollManager("UIBrowseContainer");currMgr.mainContainer=eXo.core.DOMUtil.findFirstDescendantByClass(pageMenus[i],"div","MiddleBar");currMgr.arrowsContainer=eXo.core.DOMUtil.findFirstDescendantByClass(pageMenus[i],"div","NavigationButtonContainer");currMgr.loadElements("ChildNode",true);for(var j=0;j<currMgr.elements.length;j++){currMgr.elements[j].decorator=eXo.core.DOMUtil.findNextElementByTagName(currMgr.elements[j],"div");}
var currArrows=eXo.core.DOMUtil.findDescendantsByClass(currMgr.arrowsContainer,"div","NavigationIcon");if(currArrows.length==2){currMgr.initArrowButton(currArrows[0],"left","NavigationIcon ScrollBackArrow16x16Icon","NavigationIcon DisableBackArrow16x16Icon","NavigationIcon DisableBackArrow16x16Icon");currMgr.initArrowButton(currArrows[1],"right","NavigationIcon ScrollNextArrow16x16Icon","NavigationIcon DisableNextArrow16x16Icon","NavigationIcon DisableNextArrow16x16Icon");}
currMgr.initFunction=uiBC.initScroll;currMgr.callback=uiBC.subMenuScrollCallback;uiBC.bcManagers.push(currMgr);}
uiBC.initScroll();}};UIBrowseContent.prototype.initScroll=function(){var uiBC=eXo.portal.UIBrowseContent;var bcPortlet=document.getElementById("UIBrowseContainer");var mainNav=eXo.core.DOMUtil.findFirstDescendantByClass(bcPortlet,"div","UICBMainNavigation");if(mainNav){if(uiBC.bcManagers.length>=1){var mainBarMgr=uiBC.bcManagers[0];mainBarMgr.init();mainBarMgr.loadElements("UITab",true);var homeButton=eXo.core.DOMUtil.findFirstDescendantByClass(mainBarMgr.mainContainer,"div","HomeTab");var maxSpace=mainBarMgr.getElementSpace(mainBarMgr.mainContainer)-mainBarMgr.getElementSpace(mainBarMgr.arrowsContainer)-mainBarMgr.margin-100;if(homeButton){maxSpace=maxSpace+100-mainBarMgr.getElementSpace(homeButton);}
mainBarMgr.checkAvailableSpace(maxSpace);mainBarMgr.renderElements();var subBarMgr=uiBC.bcManagers[1];subBarMgr.init();subBarMgr.loadElements("ChildNodeItem",true);subBarMgr.checkAvailableSpace();subBarMgr.renderElements();}
if(uiBC.bcManagers.length>=2){for(var i=2;i<uiBC.bcManagers.length;i++){var currMgr=uiBC.bcManagers[i];currMgr.init();currMgr.loadElements("ChildNode",true);currMgr.checkAvailableSpace();currMgr.renderElements();}}}};UIBrowseContent.prototype.mainMenuScrollCallback=function(){var homeButton=eXo.core.DOMUtil.findFirstDescendantByClass(this.mainContainer,"div","HomeTab");if(eXo.core.Browser.isIE7())this.cleanElements();var maxSpace=this.getElementSpace(this.mainContainer)-this.getElementSpace(this.arrowsContainer)-this.margin-100;if(homeButton){maxSpace=maxSpace+100-this.getElementSpace(homeButton);}
var elementsSpace=this.getElementsSpace(this.firstVisibleIndex,this.lastVisibleIndex);var delta=maxSpace-elementsSpace;if(delta<0){this.hideElements(delta);}};UIBrowseContent.prototype.subMenuScrollCallback=function(){for(var i=0;i<this.elements.length;i++){if(!this.elements[i].isVisible){this.elements[i].decorator.style.display="none";}else{this.elements[i].decorator.style.display="block";}}};eXo.portal.UIBrowseContent=new UIBrowseContent();function UIWindow(){this.maxIndex=0;};UIWindow.prototype.init=function(popup,isShow,posX,posY){this.superClass=eXo.webui.UIPopup;if(typeof(popup)=="string")popup=document.getElementById(popup);if(popup==null)return;var DOMUtil=eXo.core.DOMUtil;var uiPageDesktop=document.getElementById("UIPageDesktop");var uiApplication=DOMUtil.findFirstDescendantByClass(popup,"div","UIApplication");if(!uiApplication)return;if(popup.style.zIndex=="")popup.style.zIndex=++eXo.webui.UIPopup.zIndex;popup.onmousedown=this.mousedownOnPopup;var windowPortletInfo=DOMUtil.findFirstDescendantByClass(popup,"div","WindowPortletInfo");this.superClass.setPosition(popup,posX,posY);try{windowPortletInfo.onmousedown=this.initDND;}catch(err){alert("Error In DND: "+err);}
var windowPortletControl=DOMUtil.findFirstDescendantByClass(popup,"div","WindowPortletControl");var minimizedIcon=DOMUtil.findFirstDescendantByClass(windowPortletControl,"div","MinimizedIcon");minimizedIcon.onmouseup=this.minimizeWindowEvt;var maximizedIcon=DOMUtil.findFirstDescendantByClass(windowPortletControl,"div","MaximizedIcon");maximizedIcon.onmouseup=this.maximizeWindowEvt;var resizeArea=DOMUtil.findFirstDescendantByClass(popup,"div","ResizeArea");resizeArea.onmousedown=this.startResizeWindowEvt;if(posX==posY&&posX==0){popup.style.width="100%";popup.maximized=true;this.posX=15;this.posY=15;this.originalWidth=800;this.originalHeight=400;maximizedIcon.className="ControlIcon RestoreIcon";maximizedIcon.title="Restore Down";setTimeout(eXo.desktop.UIWindow.toForcus,1000);}};UIWindow.prototype.fixHeight=function(portletId){var portlet=document.getElementById(portletId);var delta=portlet.parentNode.offsetHeight-portlet.offsetHeight;var resizeObj=eXo.core.DOMUtil.findDescendantsByClass(portlet,'div','UIResizableBlock');for(var i=0;i<resizeObj.length;i++){var nHeight=parseInt(resizeObj[i].offsetHeight)+delta;if(nHeight<0)nHeight="0px";resizeObj[i].style.height=nHeight+'px';}};UIWindow.prototype.toForcus=function(){var DOMUtil=eXo.core.DOMUtil;var uiPageDesktop=document.getElementById("UIPageDesktop");var uiWidgets=DOMUtil.findDescendantsByClass(uiPageDesktop,"div","UIWidget");if(uiWidgets.length){for(var i=0;i<uiWidgets.length;i++){uiWidgets[i].style.zIndex=1;}}};UIWindow.prototype.mousedownOnPopup=function(evt){var isMaxZIndex=eXo.desktop.UIDesktop.isMaxZIndex(this);if(!isMaxZIndex)eXo.desktop.UIDesktop.resetZIndex(this);};UIWindow.prototype.maximizeWindowEvt=function(evt){var DOMUtil=eXo.core.DOMUtil;var portletWindow=DOMUtil.findAncestorByClass(this,"UIResizeObject");var uiWindow=eXo.desktop.UIWindow;var uiPageDesktop=document.getElementById("UIPageDesktop");var desktopWidth=uiPageDesktop.offsetWidth;var desktopHeight=uiPageDesktop.offsetHeight;var uiResizableBlock=DOMUtil.findDescendantsByClass(portletWindow,"div","UIResizableBlock");if(portletWindow.maximized){portletWindow.maximized=false;portletWindow.style.top=uiWindow.posY+"px";portletWindow.style.left=uiWindow.posX+"px";portletWindow.style.width=uiWindow.originalWidth+"px";for(var i=0;i<uiResizableBlock.length;i++){if(uiResizableBlock[i].originalHeight){uiResizableBlock[i].style.height=uiResizableBlock[i].originalHeight+"px";}else{uiResizableBlock[i].style.height=400+"px";}}
this.className="ControlIcon MaximizedIcon";}else{uiWindow.backupObjectProperties(portletWindow,uiResizableBlock);portletWindow.style.top="0px";portletWindow.style.left="0px";portletWindow.style.width="100%";portletWindow.style.height="auto";var delta=eXo.core.Browser.getBrowserHeight()-portletWindow.clientHeight;for(var i=0;i<uiResizableBlock.length;i++){uiResizableBlock[i].style.height=(parseInt(uiResizableBlock[i].clientHeight)+delta)+"px";}
portletWindow.style.height=portletWindow.clientHeight+"px";portletWindow.maximized=true;this.className="ControlIcon RestoreIcon";eXo.desktop.UIWindow.saveWindowProperties(portletWindow);}
eXo.portal.UIPortalControl.initAllManagers();};UIWindow.prototype.minimizeWindowEvt=function(evt){var DOMUtil=eXo.core.DOMUtil;var popup=DOMUtil.findAncestorByClass(this,"UIDragObject");var windows=DOMUtil.getChildrenByTagName(popup.parentNode,"div");var index=0;for(var j=0;j<windows.length;j++){if(popup==windows[j]){index=j;break;}}
var iconContainer=document.getElementById("IconContainer");var children=DOMUtil.findChildrenByClass(iconContainer,"img","Icon");eXo.desktop.UIDesktop.showHideWindow(popup,children[index+1]);};UIWindow.prototype.startResizeWindowEvt=function(evt){var portletWindow=eXo.core.DOMUtil.findAncestorByClass(this,"UIResizeObject");var uiWindow=eXo.desktop.UIWindow;if(portletWindow.maximized||uiWindow.portletWindow)return;if(!evt)evt=window.event;var uiPageDesktop=document.getElementById("UIPageDesktop");var uiApplication=eXo.core.DOMUtil.findFirstDescendantByClass(portletWindow,"div","UIApplication");var hasResizableClass=eXo.core.DOMUtil.hasDescendantClass(uiApplication,"UIResizableBlock");if(hasResizableClass)uiApplication.style.overflow="hidden";var portlet=eXo.core.DOMUtil.getChildrenByTagName(uiApplication,"div")[0];uiWindow.resizableObject=eXo.core.DOMUtil.findDescendantsByClass(portletWindow,"div","UIResizableBlock");uiWindow.initMouseX=evt.clientX;uiWindow.initMouseY=evt.clientY;uiWindow.backupObjectProperties(portletWindow,uiWindow.resizableObject);uiWindow.portletWindow=portletWindow;uiPageDesktop.onmousemove=uiWindow.resizeWindowEvt;uiPageDesktop.onmouseup=uiWindow.endResizeWindowEvt;};UIWindow.prototype.resizeWindowEvt=function(evt){if(!evt)evt=window.event;var uiWindow=eXo.desktop.UIWindow;var uiPageDesktop=document.getElementById("UIPageDesktop");var deltaX=evt.clientX-uiWindow.initMouseX;var deltaY=evt.clientY-uiWindow.initMouseY;var uiApplication=eXo.core.DOMUtil.findFirstDescendantByClass(uiWindow.portletWindow,"div","UIApplication");uiWindow.portletWindow.style.width=Math.max(10,(uiWindow.originalWidth+deltaX))+"px";for(var i=0;i<uiWindow.resizableObject.length;i++){uiWindow.resizableObject[i].style.height=Math.max(10,(uiWindow.resizableObject[i].originalHeight+deltaY))+"px";}};UIWindow.prototype.endResizeWindowEvt=function(evt){eXo.portal.UIPortalControl.initAllManagers();eXo.desktop.UIWindow.portletWindow=null;eXo.desktop.UIWindow.resizableObject=null;this.onmousemove=null;this.onmouseup=null;};UIWindow.prototype.backupObjectProperties=function(windowPortlet,resizableComponents){var UIWindow=eXo.desktop.UIWindow;for(var i=0;i<resizableComponents.length;i++){resizableComponents[i].originalWidth=resizableComponents[i].offsetWidth;resizableComponents[i].originalHeight=resizableComponents[i].offsetHeight;}
UIWindow.posX=eXo.desktop.UIDesktop.findPosXInDesktop(windowPortlet);UIWindow.posY=eXo.desktop.UIDesktop.findPosYInDesktop(windowPortlet);UIWindow.originalWidth=windowPortlet.offsetWidth;UIWindow.originalHeight=windowPortlet.offsetHeight;};UIWindow.prototype.initDND=function(e){var DOMUtil=eXo.core.DOMUtil;var DragDrop=eXo.core.DragDrop;var clickBlock=this;var dragBlock=DOMUtil.findAncestorByClass(this,"UIDragObject");var uiPageDeskTop=document.getElementById("UIPageDesktop");var maxIndex=eXo.desktop.UIWindow.maxIndex;var dragObjects=DOMUtil.findDescendantsByClass(uiPageDeskTop,"div","UIDragObject");if(dragObjects.length>0){for(var i=0;i<dragObjects.length;i++){var zIndex=dragObjects[i].style.zIndex||1;if(maxIndex<zIndex)maxIndex=parseInt(zIndex);}
maxIndex+=1;dragBlock.style.zIndex=maxIndex;}
if(!dragBlock.maximized){var uiApplication=DOMUtil.findFirstDescendantByClass(dragBlock,"div","UIApplication");var hiddenElements=new Array();DragDrop.initCallback=function(dndEvent){if(eXo.core.Browser.getBrowserType()=="mozilla"&&DOMUtil.getStyle(uiApplication,"overflow")=="auto"){hiddenElements.push(uiApplication);uiApplication.style.overflow="hidden";}
uiAppDescendants=DOMUtil.findDescendantsByTagName(uiApplication,"div");for(var i=0;i<uiAppDescendants.length;i++){if(DOMUtil.getStyle(uiAppDescendants[i],"overflow")=="auto"){hiddenElements.push(uiAppDescendants[i]);uiAppDescendants[i].style.overflow="hidden";}}};DragDrop.dragCallback=function(dndEvent){var dragObject=dndEvent.dragObject;var dragObjectY=eXo.core.Browser.findPosY(dragObject);var browserHeight=eXo.core.Browser.getBrowserHeight();var browserWidth=eXo.core.Browser.getBrowserWidth();var mouseX=eXo.core.Browser.findMouseXInPage(dndEvent.backupMouseEvent);if(dragObjectY<0){dragObject.style.top="0px";document.onmousemove=DragDrop.onDrop;}
if(dragObjectY>(browserHeight-25)){dragObject.style.top=(browserHeight-25)+"px";document.onmousemove=DragDrop.onDrop;}
var uiPageDesktop=document.getElementById("UIPageDesktop");var uiPageDesktopX=eXo.core.Browser.findPosX(uiPageDesktop);if(eXo.core.Browser.isIE7()){uiPageDesktopX=uiPageDesktopX/2;}
if((mouseX<uiPageDesktopX)||(mouseX>browserWidth)){document.onmousemove=DragDrop.onDrop;}};DragDrop.dropCallback=function(dndEvent){var dragObject=dndEvent.dragObject;eXo.desktop.UIWindow.saveWindowProperties(dragBlock);for(var i=0;i<hiddenElements.length;i++){hiddenElements[i].style.overflow="auto";}};DragDrop.init(null,clickBlock,dragBlock,e);}};UIWindow.prototype.onControlOver=function(element,isOver){var originalElementName=element.className;if(isOver){var overElementName="ControlIcon Over"+originalElementName.substr(originalElementName.indexOf(" ")+1,30);element.className=overElementName;if(element.className=="ControlIcon OverRestoreIcon"){element.title="Restore Down";}
if(element.className=="ControlIcon OverMaximizedIcon"){element.title="Maximize";}}else{var over=originalElementName.indexOf("Over");if(over>=0){var overElementName="ControlIcon "+originalElementName.substr(originalElementName.indexOf(" ")+5,30);element.className=overElementName;}}};UIWindow.prototype.saveWindowProperties=function(object,appStatus){var DOMUtil=eXo.core.DOMUtil;var uiPage=DOMUtil.findAncestorByClass(object,"UIPage");var uiPageIdNode=DOMUtil.findFirstDescendantByClass(uiPage,"div","id");containerBlockId=uiPageIdNode.innerHTML;var uiResizableBlock=DOMUtil.findFirstDescendantByClass(object,"div","UIResizableBlock");var params;if(!appStatus){params=[{name:"objectId",value:object.id.replace(/^UIWindow-/,"")},{name:"posX",value:parseInt(object.style.left)},{name:"posY",value:parseInt(object.style.top)},{name:"zIndex",value:object.style.zIndex},{name:"windowWidth",value:object.offsetWidth},{name:"windowHeight",value:uiResizableBlock.offsetHeight}];}else{params=[{name:"objectId",value:object.id.replace(/^UIWindow-/,"")},{name:"appStatus",value:appStatus}];}
ajaxAsyncGetRequest(eXo.env.server.createPortalURL(containerBlockId,"SaveWindowProperties",true,params),true);};eXo.desktop.UIWindow=new UIWindow();var FCKeditor=function(instanceName,width,height,toolbarSet,value)
{this.InstanceName=instanceName;this.Width=width||'100%';this.Height=height||'200';this.ToolbarSet=toolbarSet||'Default';this.Value=value||'';this.BasePath=FCKeditor.BasePath;this.CheckBrowser=true;this.DisplayErrors=true;this.Config=new Object();this.OnError=null;}
FCKeditor.BasePath='/portal/fckeditor/';FCKeditor.MinHeight=200;FCKeditor.MinWidth=750;FCKeditor.prototype.Version='2.5.1';FCKeditor.prototype.VersionBuild='17566';FCKeditor.prototype.Create=function()
{document.write(this.CreateHtml());}
FCKeditor.prototype.CreateHtml=function()
{if(!this.InstanceName||this.InstanceName.length==0)
{this._ThrowError(701,'You must specify an instance name.');return'';}
var sHtml='<div>';if(!this.CheckBrowser||this._IsCompatibleBrowser())
{sHtml+='<input type="hidden" id="'+this.InstanceName+'" name="'+this.InstanceName+'" value="'+this._HTMLEncode(this.Value)+'" style="display:none" />';sHtml+=this._GetConfigHtml();sHtml+=this._GetIFrameHtml();}
else
{var sWidth=this.Width.toString().indexOf('%')>0?this.Width:this.Width+'px';var sHeight=this.Height.toString().indexOf('%')>0?this.Height:this.Height+'px';sHtml+='<textarea name="'+this.InstanceName+'" rows="4" cols="40" style="width:'+sWidth+';height:'+sHeight+'">'+this._HTMLEncode(this.Value)+'<\/textarea>';}
sHtml+='</div>';return sHtml;}
FCKeditor.prototype.ReplaceTextarea=function()
{if(!this.CheckBrowser||this._IsCompatibleBrowser())
{var oTextarea=document.getElementById(this.InstanceName);var value=oTextarea.value;value=value.replace(/  /g,"&#32;&nbsp;");oTextarea.value=value;var colElementsByName=document.getElementsByName(this.InstanceName);var i=0;while(oTextarea||i==0)
{if(oTextarea&&oTextarea.tagName.toLowerCase()=='textarea')
break;oTextarea=colElementsByName[i++];}
if(!oTextarea)
{alert('Error: The TEXTAREA with id or name set to "'+this.InstanceName+'" was not found');return;}
oTextarea.style.display='none';this._InsertHtmlBefore(this._GetConfigHtml(),oTextarea);this._InsertHtmlBefore(this._GetIFrameHtml(),oTextarea);}}
FCKeditor.prototype._InsertHtmlBefore=function(html,element)
{if(element.insertAdjacentHTML)
element.insertAdjacentHTML('beforeBegin',html);else
{var oRange=document.createRange();oRange.setStartBefore(element);var oFragment=oRange.createContextualFragment(html);element.parentNode.insertBefore(oFragment,element);}}
FCKeditor.prototype._GetConfigHtml=function()
{var sConfig='';for(var o in this.Config)
{if(sConfig.length>0)sConfig+='&amp;';sConfig+=encodeURIComponent(o)+'='+encodeURIComponent(this.Config[o]);}
return'<input type="hidden" id="'+this.InstanceName+'___Config" value="'+sConfig+'" style="display:none" />';}
FCKeditor.prototype._GetIFrameHtml=function()
{var sFile='fckeditor.html';try
{if((/fcksource=true/i).test(window.top.location.search))
sFile='fckeditor.original.html';}
catch(e){}
var sLink=this.BasePath+'editor/'+sFile+'?InstanceName='+encodeURIComponent(this.InstanceName);if(this.ToolbarSet)sLink+='&amp;Toolbar='+this.ToolbarSet;return'<iframe id="'+this.InstanceName+'___Frame" src="'+sLink+'" width="'+this.Width+'" height="'+this.Height+'" frameborder="0" scrolling="no"></iframe>';}
FCKeditor.prototype._IsCompatibleBrowser=function()
{return FCKeditor_IsCompatibleBrowser();}
FCKeditor.prototype._ThrowError=function(errorNumber,errorDescription)
{this.ErrorNumber=errorNumber;this.ErrorDescription=errorDescription;if(this.DisplayErrors)
{document.write('<div style="COLOR: #ff0000">');document.write('[ FCKeditor Error '+this.ErrorNumber+': '+this.ErrorDescription+' ]');document.write('</div>');}
if(typeof(this.OnError)=='function')
this.OnError(this,errorNumber,errorDescription);}
FCKeditor.prototype._HTMLEncode=function(text)
{if(typeof(text)!="string")
text=text.toString();text=text.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return text;};(function()
{var textareaToEditor=function(textarea)
{var editor=new FCKeditor(textarea.name);editor.Width=Math.max(textarea.offsetWidth,FCKeditor.MinWidth);editor.Height=Math.max(textarea.offsetHeight,FCKeditor.MinHeight);return editor;}
FCKeditor.ReplaceAllTextareas=function()
{var textareas=document.getElementsByTagName('textarea');for(var i=0;i<textareas.length;i++)
{var editor=null;var textarea=textareas[i];var name=textarea.name;if(!name||name.length==0)
continue;if(typeof arguments[0]=='string')
{var classRegex=new RegExp('(?:^| )'+arguments[0]+'(?:$| )');if(!classRegex.test(textarea.className))
continue;}
else if(typeof arguments[0]=='function')
{editor=textareaToEditor(textarea);if(arguments[0](textarea,editor)===false)
continue;}
if(!editor)
editor=textareaToEditor(textarea);editor.ReplaceTextarea();}}})();function FCKeditor_IsCompatibleBrowser()
{return true;}