
var eXo={animation:{},browser:{},desktop:{},core:{},env:{portal:{},client:{},server:{}},portal:{},util:{},webui:{},gadget:{},application:{browser:{}},ecm:{},calendar:{},contact:{},forum:{},mail:{},faq:{},session:{},i18n:{}};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';eXo.loadJS(path);};eXo.loadJS=function(path){var request=eXo.core.Browser.createHttpRequest();request.open('GET',path,false);request.setRequestHeader("Cache-Control","max-age=86400");request.send(null);eXo.session.itvDestroy();if(eXo.session.canKeepState&&eXo.session.isOpen&&eXo.env.portal.accessMode=='private'){eXo.session.itvInit();}
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;};eXo.portal.logout=function(){window.location=eXo.env.server.createPortalURL("UIPortal","Logout",false);};eXo.session.openUrl=null;eXo.session.itvTime=null;eXo.session.itvObj=null;eXo.session.itvInit=function(){if(!eXo.session.openUrl)eXo.session.openUrl=eXo.env.server.createPortalURL("UIPortal","Ping",false);if(!eXo.session.itvTime)eXo.session.itvTime=1800;if(eXo.session.itvTime>0)eXo.session.itvObj=window.setTimeout("eXo.session.itvOpen()",(eXo.session.itvTime-10)*1000);};eXo.session.itvOpen=function(){var result=ajaxAsyncGetRequest(eXo.session.openUrl,false);if(!isNaN(result))eXo.session.itvTime=parseInt(result);};eXo.session.itvDestroy=function(){window.clearTimeout(eXo.session.itvObj);eXo.session.itvObj=null;};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.removeClass=function(elemt,className){var reg=new RegExp('(^|\\s+)'+className);elemt['className']=elemt['className'].replace(reg,'');};DOMUtil.prototype.replaceClass=function(elemt,oldClazz,newClazz){var reg=new RegExp('(^|\\s+)'+oldClazz);elemt['className']=elemt['className'].replace(reg,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.hasAncestor=function(root,obj){var prtEle=root.parentNode;while(prtEle){if(prtEle==obj)return true;prtEle=prtEle.parentNode;}
return false;};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=eXo.core.DOMUtil.cleanUpHiddenElements;};DOMUtil.prototype.cleanUpHiddenElements=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);};DOMUtil.prototype.getElementsBy=function(method,tag,root,apply){tag=tag||'*';root=(root)?this.get(root):null||document;if(!root){return[];}
var nodes=[],elements=root.getElementsByTagName(tag);for(var i=0,len=elements.length;i<len;++i){if(method(elements[i])){nodes[nodes.length]=elements[i];if(apply){apply(elements[i]);}}}
return nodes;}
DOMUtil.prototype.get=function(el){if(el&&(el.nodeType||el.item)){return el;}
if((typeof el==='string')||!el){return document.getElementById(el);}
if(el.length!==undefined){var c=[];for(var i=0,len=el.length;i<len;++i){c[c.length]=eXo.core.DOMUtil.get(el[i]);}
return c;}
return el;}
eXo.core.DOMUtil=new DOMUtil();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 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();this.detectBrowser();if(this.opera)this.initOpera();else if(this.ie)this.initIE();else if(this.webkit)this.initSafari();else this.initMozilla();};Browser.prototype.detectBrowser=function(){this.ie=0;this.opera=0;this.gecko=0;this.webkit=0;this.mobile=null;this.air=0;var ua=navigator.userAgent,m;if((/KHTML/).test(ua)){this.webkit=1;}
m=ua.match(/AppleWebKit\/([^\s]*)/);if(m&&m[1]){this.webkit=parseFloat(m[1]);if(/ Mobile\//.test(ua)){this.mobile="Apple";}else{m=ua.match(/NokiaN[^\/]*/);if(m){this.mobile=m[0];}}
m=ua.match(/AdobeAIR\/([^\s]*)/);if(m){this.air=m[0];}}
if(!this.webkit){m=ua.match(/Opera[\s\/]([^\s]*)/);if(m&&m[1]){this.opera=parseFloat(m[1]);m=ua.match(/Opera Mini[^;]*/);if(m){this.mobile=m[0];}}else{m=ua.match(/MSIE\s([^;]*)/);if(m&&m[1]){this.ie=parseFloat(m[1]);}else{m=ua.match(/Gecko\/([^\s]*)/);if(m){this.gecko=1;m=ua.match(/rv:([^\s\)]*)/);if(m&&m[1]){this.gecko=parseFloat(m[1]);}}}}}}
Browser.prototype.managerResize=function(){if(eXo.core.Browser.currheight!=document.documentElement.clientHeight){clearTimeout(eXo.core.Browser.breakStream);eXo.core.Browser.breakStream=setTimeout(eXo.core.Browser.onResize,100);}
eXo.core.Browser.currheight=document.documentElement.clientHeight;}
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 this.gecko;};Browser.prototype.isFF2=function(){return(navigator.userAgent.indexOf("Firefox/2")>=0);};Browser.prototype.isFF3=function(){return(navigator.userAgent.indexOf("Firefox/3")>=0);};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(){var callback=eXo.core.Browser.onLoadCallback;for(var name in callback.properties){var method=callback.get(name);if(typeof(method)=="function")try{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,isRTL){var curleft=0;var tmpObj=obj;while(tmpObj){curleft+=tmpObj.offsetLeft;tmpObj=tmpObj.offsetParent;}
if(isRTL)return curleft+obj.offsetWidth;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,isRTL){var objX=eXo.core.Browser.findPosX(obj,isRTL);var containerX=eXo.core.Browser.findPosX(container,isRTL);if(isRTL)return-(objX-containerX);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(!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"";};Browser.prototype.isDesktop=function(){if(document.getElementById("UIPageDesktop"))return true;return false;}
eXo.core.Browser=new Browser();eXo.core.Mouse=new MouseObject();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='/fckeditor/';FCKeditor.MinHeight=200;FCKeditor.MinWidth=750;FCKeditor.prototype.Version='2.6.6';FCKeditor.prototype.VersionBuild='25427';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='';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;if(this.TabIndex)
sHtml+='" tabindex="'+this.TabIndex;sHtml+='">'+
this._HTMLEncode(this.Value)+'<\/textarea>';}
return sHtml;}
FCKeditor.prototype.ReplaceTextarea=function()
{if(document.getElementById(this.InstanceName+'___Frame'))
return;if(!this.CheckBrowser||this._IsCompatibleBrowser())
{var oTextarea=document.getElementById(this.InstanceName);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';if(oTextarea.tabIndex)
this.TabIndex=oTextarea.tabIndex;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;var html='<iframe id="'+this.InstanceName+'___Frame" src="'+sLink+'" width="'+this.Width+'" height="'+this.Height;if(this.TabIndex)
html+='" tabindex="'+this.TabIndex;html+='" frameborder="0" scrolling="no"></iframe>';return html;}
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()
{var sAgent=navigator.userAgent.toLowerCase();if(false&&sAgent.indexOf("mac")==-1)
{var sBrowserVersion=navigator.appVersion.match(/MSIE (.\..)/)[1];return(sBrowserVersion>=5.5);}
if(navigator.product=="Gecko"&&navigator.productSub>=20030210&&!(typeof(opera)=='object'&&opera.postError))
return true;if(window.opera&&window.opera.version&&parseFloat(window.opera.version())>=9.5)
return true;if(sAgent.indexOf(' adobeair/')!=-1)
return(sAgent.match(/ adobeair\/(\d+)/)[1]>=1);if(sAgent.indexOf(' applewebkit/')!=-1)
return(sAgent.match(/ applewebkit\/(\d+)/)[1]>=522);return false;}
function WCMUtils(){}
WCMUtils.prototype.getHostName=function(){var parentLocation=window.parent.location;return parentLocation.href.substring(0,parentLocation.href.indexOf(parentLocation.pathname));};WCMUtils.prototype.request=function(url){var xmlHttpRequest=false;if(window.XMLHttpRequest){xmlHttpRequest=new window.XMLHttpRequest();xmlHttpRequest.open("GET",url,false);xmlHttpRequest.send("");return xmlHttpRequest.responseXML;}
else if(ActiveXObject("Microsoft.XMLDOM")){xmlHttpRequest=new ActiveXObject("Microsoft.XMLDOM");xmlHttpRequest.async=false;xmlHttpRequest.load(urlRequestXML);return xmlHttpRequest;}
return null;};WCMUtils.prototype.getCurrentNodes=function(navigations,selectedNodeUri){var currentNodes=new Array();var currentNodeUris=new Array();currentNodeUris=selectedNodeUri.split("/");for(var i in navigations){for(var j in navigations[i].nodes){if(navigations[i].nodes[j].name==currentNodeUris[0]){currentNodes[0]=navigations[i].nodes[j];break;}}}
var parent=currentNodes[0];for(var k=1;k<currentNodeUris.length;k++){if(parent.children=='null'){break;}
for(var n in parent.children){var node=parent.children[n];if(currentNodeUris[k]==node.name){currentNodes[k]=node;parent=node;break;}}}
return currentNodes;};WCMUtils.prototype.getRestContext=function(){return eXo.env.portal.context+"/"+eXo.env.portal.rest;};eXo.ecm.WCMUtils=new WCMUtils();function UIWCMTreeView(){this.constParentNode='UIWCMTreeParentNode';this.constChildNode='UIWCMTreeChildNode';this.constBreadcumbsElement='UITreeViewBreadcumbsElement';this.constComponentId="$uicomponent.id";this.oldId;this.ajaxAction="<%=uicomponent.event('ChangeNode','WCMTreeBuilderParameters')%>";while(this.ajaxAction.indexOf('amp;')>-1){this.ajaxAction=this.ajaxAction.replace("amp;","");}}
UIWCMTreeView.prototype.replaceAll=function(input,ch1,ch2){while(input.indexOf(ch1)>-1){input=input.replace(ch1,ch2);}
return input;};UIWCMTreeView.prototype.request=function(urlRequestXML,objChild){var httpRequest=null;var response=null;if(window.XMLHttpRequest){httpRequest=new XMLHttpRequest();}else if(window.ActiveXObject){httpRequest=new ActiveXObject("Microsoft.XMLHTTP");}else{alert("There was a problem retrieving the XML data!");return;}
try{httpRequest.open("GET",urlRequestXML,true);httpRequest.onreadystatechange=function(){if(httpRequest.readyState==4){if(httpRequest.status==200){response=httpRequest.responseXML;var list=response.getElementsByTagName("childNodes");if(list&&list.length>0){list=list[0].getElementsByTagName("childNode");objChild.innerHTML="";parentPath=document.getElementById(objChild.id.replace(eXo.ecm.UIWCMTreeView.constChildNode,eXo.ecm.UIWCMTreeView.constParentNode)).getAttribute("treePath");var restAction="";for(var i=0;i<list.length;i++){;workspaceName=list[i].getElementsByTagName("workspaceName")[0].childNodes[0].nodeValue;repositoryName=list[i].getElementsByTagName("repositoryName")[0].childNodes[0].nodeValue;name=list[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;nodePath=list[i].getElementsByTagName("nodePath")[0].childNodes[0].nodeValue;treePath=parentPath+"/"+name;firstId=eXo.ecm.UIWCMTreeView.replaceAll(eXo.ecm.UIWCMTreeView.replaceAll(treePath,"/","rp")," ","");restAction="eXo.ecm.UIWCMTreeView.selectNode('"+firstId+"','"+nodePath+"', '"+workspaceName+"', '"+repositoryName+"');"+
eXo.ecm.UIWCMTreeView.ajaxAction.replace("WCMTreeBuilderParameters",eXo.ecm.UIWCMTreeView.replaceAll(eXo.ecm.UIWCMTreeView.replaceAll(nodePath+"/"+workspaceName+"/"+firstId,"/","%2F")," ","+"));objChild.innerHTML+='<div class="NoneSelectNodeIcon" onclick="'+restAction+'" id="'+
eXo.ecm.UIWCMTreeView.constParentNode+firstId+'" treePath="'+treePath+'">'+'<div class="DefaultPageIcon">'+name+'</div>'+'</div>'+'<div class="ViewChildNodes" id="'+eXo.ecm.UIWCMTreeView.constChildNode+firstId+'"></div>';}}}else{alert(httpRequest.status+":"+httpRequest.statusText);}}}
httpRequest.send(null);}catch(e){alert('Failse: '+e.message)}};UIWCMTreeView.prototype.getDir=function(nodePath,workspaceName,repositoryName,objChild){if(objChild.innerHTML&&objChild.innerHTML.trim().length>0&&objChild.innerHTML!="<span></span>")return;var parentLocation=window.parent.location;hostName=parentLocation.href.substring(0,parentLocation.href.indexOf(parentLocation.pathname));var connector=eXo.ecm.WCMUtils.getRestContext()+"/wcmTreeContent/getChildNodes";connector+="?nodePath="+nodePath+"&workspaceName="+workspaceName+"&repositoryName="+repositoryName;try{this.request(connector,objChild);}catch(e){alert(e.message);}};UIWCMTreeView.prototype.selectNode=function(childId,nodePath,workspaceName,repositoryName){var objParent=document.getElementById(eXo.ecm.UIWCMTreeView.constParentNode+childId);if(objParent){objParent.style.fontWeight="bold";if(objParent.className=="NoneSelectNodeIcon")objParent.className="SelectNodeIcon";else objParent.className="NoneSelectNodeIcon";if(eXo.ecm.UIWCMTreeView.oldId!=(eXo.ecm.UIWCMTreeView.constParentNode+childId)){oldObject=document.getElementById(eXo.ecm.UIWCMTreeView.oldId);if(oldObject)oldObject.style.fontWeight="normal";eXo.ecm.UIWCMTreeView.oldId=eXo.ecm.UIWCMTreeView.constParentNode+childId;eXo.ecm.UIWCMTreeView.updateBreadcumbsElement(objParent);}}
var objChild=document.getElementById(eXo.ecm.UIWCMTreeView.constChildNode+childId);if(workspaceName&&repositoryName)this.getDir(nodePath,workspaceName,repositoryName,objChild);if(objChild)
if(objChild.style.display==="block")objChild.style.display="none";else objChild.style.display="block";};UIWCMTreeView.prototype.updateBreadcumbsElement=function(objParent){var objBreadcumbs=document.getElementById("UIWCMTreeViewBreadcumbsHomeIcon");objBreadcumbs.innerHTML="";var nodeNames=objParent.getAttribute("treePath").split("/");for(var i=nodeNames.length-1;i>=0;i--){var action="";newDiv=document.createElement("div");newDiv.id=eXo.ecm.UIWCMTreeView.constBreadcumbsElement+i;if(i<=1)newDiv.className="FirstNode";else newDiv.className="RightArrowIcon";if(i!=0)newDiv.innerHTML=nodeNames[i];else newDiv.innerHTML="";if(objParent){if(objParent.getAttribute("onclick")&&objParent.getAttribute("onclick")!=null&&objParent.getAttribute("onclick")!="null")
action=objParent.getAttribute("onclick");}else action="javaScript: void(0)";newDiv.setAttribute('onclick',action);brotherDiv=document.getElementById(eXo.ecm.UIWCMTreeView.constBreadcumbsElement+(i+1));if(brotherDiv)objBreadcumbs.insertBefore(newDiv,brotherDiv)
else objBreadcumbs.appendChild(newDiv);if(objParent!=null)objParent=objParent.parentNode;if(objParent&&objParent!=null&&objParent.id&&objParent.id!=null&&objParent.id.indexOf(eXo.ecm.UIWCMTreeView.constChildNode)>-1){objParentId=objParent.id.replace(eXo.ecm.UIWCMTreeView.constChildNode,eXo.ecm.UIWCMTreeView.constParentNode);objParent=document.getElementById(objParentId);}else{objParent=null;}}
objParent=document.getElementById(eXo.ecm.UIWCMTreeView.constBreadcumbsElement+(nodeNames.length-1));objParent.style.color="#1B59AA";objParent.setAttribute('onclick','javaScript:void(0)');};UIWCMTreeView.prototype.OpenOnePath=function(id,isLoad){var obj=document.getElementById("UIWCMTreeParentNode"+id);if(obj){var action=obj.getAttribute("onclick");if(action.indexOf("javascript:ajaxGet")>0)action=action.substring(0,action.indexOf("javascript:ajaxGet"));eval(action);}else setTimeout('eXo.ecm.UIWCMTreeView.OpenOnePath("'+id+'",'+isLoad+')',100);};UIWCMTreeView.prototype.OpenPath=function(path){var ids=path.split("/");var obj;for(var i=0;i<ids.length;i++){if(i==0){obj=document.getElementById("UIWCMTreeParentNode"+ids[i]);var parent=obj.parentNode;if(parent)parent.style.display="block";}
eXo.ecm.UIWCMTreeView.OpenOnePath(ids[i]);}};eXo.ecm.UIWCMTreeView=new UIWCMTreeView();function NewsletterManager(){}
NewsletterManager.prototype.checkAllSelected=function(checkBox){var elements=checkBox.form.elements;var checked=checkBox.checked;for(i=0;i<elements.length;i++){if(elements[i].type=="checkbox")
elements[i].checked=checked;}};NewsletterManager.prototype.checkBeforeDelete=function(uiSubscriptionsForm,checkMess,confirmMess){var isChecked=false;var elements=document.getElementById(uiSubscriptionsForm).elements;for(var i=0;i<elements.length;i++){if(elements[i].type=="checkbox"&&elements[i].checked==true)isChecked=true;}
if(isChecked==false){alert(checkMess);return false;}
return confirm(confirmMess);}
eXo.ecm.NewsletterManager=new NewsletterManager();function UIFormGeneratorPortlet(){}
UIFormGeneratorPortlet.prototype.init=function(){var DOMUtil=eXo.core.DOMUtil;var uiTabContentContainer=document.getElementById('UITabContentContainer');var uiTabContent=DOMUtil.findFirstDescendantByClass(uiTabContentContainer,'div','UITabContent');var menuitems=DOMUtil.findDescendantsByClass(uiTabContent,'div','LeftMenu');for(var i=0;i<menuitems.length;i++){menuitems[i].onclick=function(){eXo.ecm.UIFormGeneratorPortlet.renderComponent(this.getAttribute('elementType'));}}};UIFormGeneratorPortlet.prototype.renderComponent=function(typeComp){var formGenerator="";var fieldComponent="";var advancedOption="";var multivalue=false;switch(typeComp){case"label":fieldComponent+="<td class='FieldLabel' value='Label'>Label</td>";fieldComponent+="<td class='FieldComponent'></td>";break;case"input":fieldComponent+="<td class='FieldLabel' value='Input Text'>Input field</td>";fieldComponent+="<td class='FieldComponent'><input type='text' class='InputText' value=''/></td>";break;case"textarea":fieldComponent+="<td class='FieldLabel' value='Textarea'>Textarea field</td>";fieldComponent+="<td class='FieldComponent'><textarea class='Textarea'>Textarea value</textarea></td>";break;case"wysiwyg":if(!eXo.ecm.UIFormGeneratorPortlet.countFCK)eXo.ecm.UIFormGeneratorPortlet.countFCK=1;fieldComponent+="<td class='FieldLabel' value='WYSIWYG'>WYSIWYG field</td>";fieldComponent+="<td class='FieldComponent'><textarea class='Textarea' id='RichTextEditorContent_"+eXo.ecm.UIFormGeneratorPortlet.countFCK+"'>WYSIWYG value</textarea></td>";advancedOption+="<tr>";advancedOption+="<td class='FieldLabel'>Advance Options</td>";advancedOption+="<td class='FileComponent'>";advancedOption+="Toolbar: <select class='SelectBox'><option>SuperBasicWCM</option><option>BasicWCM</option><option>CompleteWCM</option><option>Basic</option></select>";advancedOption+="</td>";advancedOption+="</tr>";break;case"select":fieldComponent+="<td class='FieldLabel' value='Select'>Select field</td>";fieldComponent+="<td class='FieldComponent'><select class='SelectBox'><option index='1' value='option1'>Option 1</option></select></td>";multivalue=true;break;case"checkbox":fieldComponent+="<td class='FieldLabel' value='Checkbox'>Checkbox field</td>";fieldComponent+="<td class='FieldComponent'><div class='CheckboxButton'><input type='checkbox' class='CheckBox' value='checkbox1'/><span style='padding : 0 5px 0 19px; display:block; line-height:12px'>Checkbox 1</span><div style='clear:left'></div></div></td>";break;case"radio":fieldComponent+="<td class='FieldLabel' value='Radio'>Radio field</td>";fieldComponent+="<td class='FieldComponent'><div class='RadioButton' index='1'><input type='radio' class='Radio' value='radio1'/><span style='padding : 0 5px 0 19px; display:block; line-height:12px'>Radio 1</span><div style='clear:left'></div></div></td>";multivalue=true;break;case"datetime":fieldComponent+="<td class='FieldLabel' value='DateTime'>Datetime field</td>";fieldComponent+="<td class='FieldComponent'><input type='text' class='InputText' value='Datetime value'/></td>";advancedOption+="<tr>";advancedOption+="<td class='FieldLabel'>Advance Options</td>";advancedOption+="<td class='FileComponent'>";advancedOption+="Format: <select><option>dd/mm/yyyy</option><option>dd-mm-yyyy</option></select>";advancedOption+="</td>";advancedOption+="</tr>";break;case"upload":fieldComponent+="<td class='FieldLabel' value='Upload'>Upload field</td>";fieldComponent+="<td class='FieldComponent'><input type='file' class='Upload' disabled='disabled'/><img src='/eXoResources/skin/sharedImages/Blank.gif' alt='' class='UploadButton'/></td>";break;}
formGenerator+="<div class='TopContentBoxStyle'>";formGenerator+="<div class='UIForm UIFormEditBox'>";formGenerator+="<div class='HorizontalLayout'>";formGenerator+="<div class='FormContainer'>";formGenerator+="<table class='UIFormGrid'>";formGenerator+="<tr>";formGenerator+=fieldComponent;formGenerator+="<td class='FieldIcon'>";formGenerator+="<div class='EditBox'>";formGenerator+="<a class='ControlIcon DeleteIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.removeComponent(this);' title='Click here to remove this component'><span></span></a>";formGenerator+="<a class='ControlIcon EditIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.showEditBox(this);' title='Click here to edit property'><span></span></a>";formGenerator+="</div>";formGenerator+="<a class='ControlIcon DownIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.moveDownElement(this);' title='Move down component'><span></span></a>";formGenerator+="<a class='ControlIcon UpIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.moveUpElement(this);' title='Move up component'><span></span></a>";formGenerator+="<div class='ClearRight'><span></span></div>";formGenerator+="</td>";formGenerator+="</tr>";formGenerator+="</table>";formGenerator+="</div>";formGenerator+="</div>";formGenerator+="</div>";formGenerator+="</div>";formGenerator+="<div class='MiddleContentBoxStyle' style='display:none'>";formGenerator+="<div class='UIForm UIFormEditBox'>";formGenerator+="<div class='HorizontalLayout'>";formGenerator+="<div class='FormContainer'>";formGenerator+="<table class='UIFormGrid'>";formGenerator+="<tr>";formGenerator+="<td class='FieldLabel'>Field Label</td>";formGenerator+="<td class='FieldComponent'>";formGenerator+="<input type='text' class='InputText' onkeyup='eXo.ecm.UIFormGeneratorPortlet.updateLabel(this);'/>";formGenerator+="</td>";formGenerator+="</tr>";formGenerator+="<tr>";formGenerator+="<td class='FieldLabel'>Width</td>";formGenerator+="<td class='FieldComponent'>";formGenerator+="<input type='number' value='' class='InputText' style='width: 50%; float:left;' onkeyup='eXo.ecm.UIFormGeneratorPortlet.updateWidth(this);' />";formGenerator+="<div class='BoxRules'>";formGenerator+="Rules: <input class='Requied' type='checkbox' onchange='eXo.ecm.UIFormGeneratorPortlet.updateRequired(this);'>Required</input>";formGenerator+="</div>";formGenerator+="</td>";formGenerator+="<td class='FieldIcon'><span></span></td>";formGenerator+="</tr>";formGenerator+="<tr>";formGenerator+="<td class='FieldLabel'>Height</td>";formGenerator+="<td class='FieldComponent' style='padding:0px;'>";formGenerator+="<input type='number' value='' class='InputText' style='width: 50%; float:left;' onkeyup='eXo.ecm.UIFormGeneratorPortlet.updateHeight(this);' />";formGenerator+="</td>";formGenerator+="<td class='FieldIcon'><span></span></td>";formGenerator+="</tr>";formGenerator+="<tr>";formGenerator+="<td class='FieldLabel'>Default Value</td>";formGenerator+="<td class='FieldComponent'><input type='text' class='InputText' onkeyup='eXo.ecm.UIFormGeneratorPortlet.updateValue(event);' index='1'/></td>";formGenerator+="<td class='FieldIcon'>";if(multivalue){formGenerator+="<div class='DivIcon' index='1'>";formGenerator+="<a class='AddIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.addOption(this);'><span></span></a>";formGenerator+="<a class='RemoveIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.removeOption(this);'><span></span></a>";formGenerator+="<div style='clear:left;'><span></span></div>";formGenerator+="</div>";}else{formGenerator+="<span></span>";}
formGenerator+="</td>";formGenerator+="</tr>";formGenerator+=advancedOption
formGenerator+="<tr>";formGenerator+="<td class='FieldLabel'>Guidelines for User</td>";formGenerator+="<td class='FieldComponent'><textarea class='Textarea' onkeyup='eXo.ecm.UIFormGeneratorPortlet.updateGuide(this);'></textarea></td>";formGenerator+="<td class='FieldIcon'><span></span></td>";formGenerator+="</tr>";formGenerator+="</table>";formGenerator+="</div>";formGenerator+="</div>";formGenerator+="</div>";formGenerator+="</div>";var node=document.createElement('div');node.innerHTML=formGenerator;node.className='BoxContentBoxStyle';node.setAttribute('typeComponent',typeComp);document.getElementById('MiddleCenterViewBoxStyle').appendChild(node);if(typeComp=='wysiwyg'&&!FCKeditorAPI.GetInstance('RichTextEditorContent')){var oFCKEditor=new FCKeditor('RichTextEditorContent_'+eXo.ecm.UIFormGeneratorPortlet.countFCK);eXo.ecm.UIFormGeneratorPortlet.countFCK++;oFCKEditor.BasePath='/ecm-wcm-extension/fckeditor/';oFCKEditor.ToolbarSet='SuperBasicWCM';oFCKEditor.ReplaceTextarea();}};UIFormGeneratorPortlet.prototype.showEditBox=function(obj){var DOMUtil=eXo.core.DOMUtil;var parentNode=DOMUtil.findAncestorByClass(obj,"TopContentBoxStyle");var boxContent=DOMUtil.findNextElementByTagName(parentNode,"div");if(boxContent&&boxContent.style.display!='block'){boxContent.style.display='block';}else{boxContent.style.display='none';}};UIFormGeneratorPortlet.prototype.removeComponent=function(obj){var parentNode=eXo.core.DOMUtil.findAncestorByClass(obj,"BoxContentBoxStyle");if(parentNode){var confirmDelete=confirm("Are you sure to remove?");if(confirmDelete==true){document.getElementById('MiddleCenterViewBoxStyle').removeChild(parentNode);}else{return;}}};UIFormGeneratorPortlet.prototype.moveDownElement=function(obj){var DOMUtil=eXo.core.DOMUtil;var parentNode=DOMUtil.findAncestorByClass(obj,"BoxContentBoxStyle");var middContainer=document.getElementById('MiddleCenterViewBoxStyle');if(!middContainer||!parentNode)return;var tmpNode='';nextElt=DOMUtil.findNextElementByTagName(parentNode,'div');if(nextElt){tmpNode=nextElt.cloneNode(true);middContainer.removeChild(nextElt);middContainer.insertBefore(tmpNode,parentNode);}};UIFormGeneratorPortlet.prototype.moveUpElement=function(obj){var DOMUtil=eXo.core.DOMUtil;var parentNode=DOMUtil.findAncestorByClass(obj,"BoxContentBoxStyle");var middContainer=document.getElementById('MiddleCenterViewBoxStyle');if(!middContainer||!parentNode)return;previousElt=DOMUtil.findPreviousElementByTagName(parentNode,'div');if(!previousElt)return;var tmpNode=parentNode.cloneNode(true);middContainer.removeChild(parentNode);middContainer.insertBefore(parentNode,previousElt);};UIFormGeneratorPortlet.prototype.updateLabel=function(obj){var DOMUtil=eXo.core.DOMUtil;var parentNode=DOMUtil.findAncestorByClass(obj,'BoxContentBoxStyle');var labelNode=DOMUtil.findFirstDescendantByClass(parentNode,'td','FieldLabel');labelNode.innerHTML=obj.value;};UIFormGeneratorPortlet.prototype.updateWidth=function(obj){var DOMUtil=eXo.core.DOMUtil;var width='';if(obj.value==''){width=null;}else if(isNaN(parseFloat(obj.value))){alert('Number only');obj.value='';return false;}else{width=obj.value+'px';}
var parentNode=DOMUtil.findAncestorByClass(obj,'BoxContentBoxStyle');var containerNode=DOMUtil.findFirstDescendantByClass(parentNode,'div','TopContentBoxStyle');var componentNode=DOMUtil.findFirstDescendantByClass(containerNode,'td','FieldComponent');if(componentNode){var inputNode=componentNode.childNodes[0];if(inputNode)inputNode.style.width=width;}};UIFormGeneratorPortlet.prototype.updateHeight=function(obj){var DOMUtil=eXo.core.DOMUtil;var height='';if(obj.value==''){height=null;}else if(isNaN(parseFloat(obj.value))){alert('Number only');obj.value='';return false;}else{height=obj.value+'px';}
var parentNode=DOMUtil.findAncestorByClass(obj,'BoxContentBoxStyle');var containerNode=DOMUtil.findFirstDescendantByClass(parentNode,'div','TopContentBoxStyle');var componentNode=DOMUtil.findFirstDescendantByClass(containerNode,'td','FieldComponent');if(componentNode){var inputNode=componentNode.childNodes[0];if(inputNode)inputNode.style.height=height;}};UIFormGeneratorPortlet.prototype.updateRequired=function(obj){var DOMUtil=eXo.core.DOMUtil;var parentNode=DOMUtil.findAncestorByClass(obj,'BoxContentBoxStyle');var containerNode=DOMUtil.findFirstDescendantByClass(parentNode,'div','TopContentBoxStyle');var componentNode=DOMUtil.findFirstDescendantByClass(containerNode,'td','FieldComponent');var labelNode=DOMUtil.findFirstDescendantByClass(containerNode,'td','FieldLabel');if(!componentNode)return false;if(obj.checked){labelNode.setAttribute('mandatory','true');}else{labelNode.setAttribute('mandatory','false');}
var requiredNode=DOMUtil.getChildrenByTagName(componentNode,'span')[0];if(!requiredNode){requiredNode=document.createElement('span');requiredNode.style.color='red';requiredNode.innerHTML=' *';componentNode.appendChild(requiredNode);}else{componentNode.removeChild(requiredNode);}};UIFormGeneratorPortlet.prototype.updateValue=function(evt){var DOMUtil=eXo.core.DOMUtil;var srcEle=eXo.core.Browser.getEventSource(evt);if(!srcEle)return;var root=DOMUtil.findAncestorByClass(srcEle,'BoxContentBoxStyle');var componentNode=DOMUtil.findFirstDescendantByClass(root,'div','TopContentBoxStyle');var eltName=DOMUtil.findFirstDescendantByClass(componentNode,'td','FieldLabel').getAttribute('value');if(!eltName)return;switch(eltName){case"Label":var labelNode=DOMUtil.findFirstDescendantByClass(componentNode,'td','FieldComponent');labelNode.innerHTML=srcEle.value;break;case"Input Text":var inputNode=DOMUtil.findFirstDescendantByClass(componentNode,'input','InputText');inputNode.value=srcEle.value;break;case"Select":var selectNode=DOMUtil.findFirstDescendantByClass(componentNode,'select','SelectBox');var fieldNode=DOMUtil.findAncestorByClass(srcEle,'FieldComponent');var inputNodes=DOMUtil.getChildrenByTagName(fieldNode,'input');for(var i=0;i<inputNodes.length;i++){if(inputNodes[i]==srcEle){selectNode.options[i].value=srcEle.value;selectNode.options[i].innerHTML=srcEle.value;}}
break;case"Textarea":var textarea=DOMUtil.findFirstDescendantByClass(componentNode,'textarea','Textarea');textarea.value=srcEle.value;break
case"WYSIWYG":var oFCKEditor=FCKeditorAPI.GetInstance('RichTextEditorContent');oFCKEditor.SetHTML(srcEle.value);break;case"upload":break;case"Radio":var fieldComponent=DOMUtil.findFirstDescendantByClass(componentNode,"td","FieldComponent");var radioNodes=DOMUtil.findDescendantsByClass(fieldComponent,'div','RadioButton');var fieldNode=DOMUtil.findAncestorByClass(srcEle,'FieldComponent');var inputList=DOMUtil.getChildrenByTagName(fieldNode,'input');for(var i=0;i<inputList.length;i++){if(inputList[i]==srcEle){var radioInputNode=DOMUtil.findFirstDescendantByClass(radioNodes[i],'input','Radio');radioInputNode.value=srcEle.value;var radioTextNode=DOMUtil.findDescendantsByTagName(radioNodes[i],'span')[0];radioTextNode.innerHTML=srcEle.value;}}
break;case"Checkbox":var fieldComponent=DOMUtil.findFirstDescendantByClass(componentNode,"td","FieldComponent");var checkboxNodes=DOMUtil.findDescendantsByClass(fieldComponent,'div','CheckboxButton');var fieldNode=DOMUtil.findAncestorByClass(srcEle,'FieldComponent');var inputList=DOMUtil.getChildrenByTagName(fieldNode,'input');for(var i=0;i<inputList.length;i++){if(inputList[i]==srcEle){var chkInputNode=DOMUtil.findFirstDescendantByClass(checkboxNodes[i],'input','CheckBox');chkInputNode.value=srcEle.value;var chkTextNode=DOMUtil.findDescendantsByTagName(checkboxNodes[i],'span')[0];chkTextNode.innerHTML=srcEle.value;}}
break;}};UIFormGeneratorPortlet.prototype.updateGuide=function(objGuide){var DOMUtil=eXo.core.DOMUtil;var root=DOMUtil.findAncestorByClass(objGuide,'BoxContentBoxStyle');var componentNode=DOMUtil.findFirstDescendantByClass(root,'div','TopContentBoxStyle');var fieldLabel=DOMUtil.findFirstDescendantByClass(componentNode,'td','FieldLabel');fieldLabel.setAttribute("desc",objGuide.value);};UIFormGeneratorPortlet.prototype.insertAfter=function(referenceNode,newNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling);}
UIFormGeneratorPortlet.prototype.updateNodeIndex=function(elementNode,index){for(var i=parseInt(index);i<elementNode.length;i++){elementNode[i].setAttribute("index",parseInt(i)+1);}}
UIFormGeneratorPortlet.prototype.addOption=function(obj){var DOMUtil=eXo.core.DOMUtil;var ancestorNode=DOMUtil.findAncestorByClass(obj,'BoxContentBoxStyle');var containerNode=DOMUtil.findFirstDescendantByClass(ancestorNode,'div','TopContentBoxStyle');var componentNode=DOMUtil.findFirstDescendantByClass(containerNode,'td','FieldComponent');var selectNode=DOMUtil.findFirstDescendantByClass(componentNode,'select','SelectBox');var rowNode=DOMUtil.findAncestorByTagName(obj,'tr');var brotherNode=DOMUtil.findFirstDescendantByClass(rowNode,'td','FieldComponent');var brotherChildNodes=DOMUtil.findDescendantsByClass(brotherNode,'input','InputText');var radioContainer=DOMUtil.findDescendantsByClass(containerNode,'div','RadioButton');var upperIconNode=DOMUtil.findAncestorByClass(obj,'DivIcon');var currentIndex=upperIconNode.getAttribute("index");var index=parseInt(currentIndex)+1;var inputNode=document.createElement('input');inputNode.className='InputText';inputNode.setAttribute("index",index);inputNode.type='text';inputNode.onkeyup=this.updateValue;for(var j=0;j<brotherChildNodes.length;j++){if(brotherChildNodes[j].getAttribute("index")==currentIndex){eXo.ecm.UIFormGeneratorPortlet.insertAfter(brotherChildNodes[j],inputNode);}}
var strRNode="";strRNode+="<a class='AddIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.addOption(this);'><span></span></a>";strRNode+="<a class='RemoveIcon' onclick='eXo.ecm.UIFormGeneratorPortlet.removeOption(this);'><span></span></a>";strRNode+="<div style='clear:left;'><span></span></div>";var rNode=document.createElement('div');rNode.className="DivIcon";rNode.setAttribute("index",index);rNode.innerHTML=strRNode;eXo.ecm.UIFormGeneratorPortlet.insertAfter(upperIconNode,rNode);var arrayDivIcons=DOMUtil.findFirstDescendantByClass(rowNode,'td','FieldIcon').childNodes;var arrayInputTexts=DOMUtil.findDescendantsByClass(brotherNode,'input','InputText');eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(arrayDivIcons,index);eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(arrayInputTexts,index);switch(ancestorNode.getAttribute("typeComponent")){case"select":var optionNode=document.createElement('option');optionNode.setAttribute("index",index);optionNode.value="Option"+index;optionNode.innerHTML="Option"+index;for(var j=0;j<selectNode.length;j++){if(selectNode[j].getAttribute("index")==currentIndex){eXo.ecm.UIFormGeneratorPortlet.insertAfter(selectNode[j],optionNode);}}
eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(selectNode,index);for(var i=0;i<arrayInputTexts.length;i++){if(arrayInputTexts[i].value==""||arrayInputTexts[i].value.length<1){selectNode[i].value="Option"+selectNode[i].getAttribute("index");selectNode[i].text="Option"+selectNode[i].getAttribute("index");}}
break;case"radio":var radioNode=document.createElement("div");radioNode.setAttribute("index",index);radioNode.innerHTML='<input type="radio" class="Radio" value="radio'+index+'" /><span style="padding : 0 5px 0 19px; display:block; line-height:12px">Radio '+index+'</span><div style="clear:left"></div>';radioNode.className="RadioButton";for(var j=0;j<radioContainer.length;j++){if(radioContainer[j].getAttribute("index")==currentIndex){eXo.ecm.UIFormGeneratorPortlet.insertAfter(radioContainer[j],radioNode);}}
var rContainer=DOMUtil.findDescendantsByClass(containerNode,'div','RadioButton');var arrInputTexts=DOMUtil.findDescendantsByClass(brotherNode,'input','InputText');eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(rContainer,index);for(var i=0;i<rContainer.length;i++){if(arrInputTexts[i].value==""||arrInputTexts[i].value.length<1){rContainer[i].firstChild.value="radio"+rContainer[i].getAttribute("index");rContainer[i].firstChild.nextSibling.innerHTML="Radio "+rContainer[i].getAttribute("index");}}
break;case"checkbox":var checkboxNode=document.createElement("div");checkboxNode.innerHTML='<input type="checkbox" class="CheckBox" value="checkbox'+index+'" /><span style="padding : 0 5px 0 19px; display:block; line-height:12px">Checkbox '+index+'</span><div style="clear:left"></div>';checkboxNode.className="CheckboxButton";componentNode.appendChild(checkboxNode);break;}};UIFormGeneratorPortlet.prototype.removeOption=function(obj){var DOMUtil=eXo.core.DOMUtil;var ancestorNode=DOMUtil.findAncestorByClass(obj,'BoxContentBoxStyle');var containerNode=DOMUtil.findFirstDescendantByClass(ancestorNode,'div','TopContentBoxStyle');var componentNode=DOMUtil.findFirstDescendantByClass(containerNode,'td','FieldComponent');var selectNode=DOMUtil.findFirstDescendantByClass(componentNode,'select','SelectBox');var rowNode=DOMUtil.findAncestorByTagName(obj,'tr');var brotherNode=DOMUtil.findFirstDescendantByClass(rowNode,'td','FieldComponent');var brotherChildNodes=DOMUtil.findDescendantsByClass(brotherNode,'input','InputText');var radioContainer=DOMUtil.findDescendantsByClass(containerNode,'div','RadioButton');var upperIconNode=DOMUtil.findAncestorByClass(obj,'DivIcon');var currentIndex=upperIconNode.getAttribute("index");var index=parseInt(currentIndex)+1;for(var j=0;j<brotherChildNodes.length;j++){if(brotherChildNodes[j].getAttribute("index")==currentIndex){brotherChildNodes[j].parentNode.removeChild(brotherChildNodes[j]);}}
switch(ancestorNode.getAttribute("typeComponent")){case"select":for(var j=0;j<selectNode.length;j++){if(selectNode[j].getAttribute("index")==currentIndex){selectNode[j].parentNode.removeChild(selectNode[j]);}}
eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(selectNode,0);var arrInputTexts=DOMUtil.findDescendantsByClass(brotherNode,'input','InputText');for(var i=0;i<arrInputTexts.length;i++){if(arrInputTexts[i].value==""||arrInputTexts[i].value.length<1){selectNode[i].value="Option"+selectNode[i].getAttribute("index");selectNode[i].text="Option"+selectNode[i].getAttribute("index");}}
break;case"radio":for(var j=0;j<radioContainer.length;j++){if(radioContainer[j].getAttribute("index")==currentIndex){radioContainer[j].parentNode.removeChild(radioContainer[j]);}}
var rContainer=DOMUtil.findDescendantsByClass(containerNode,'div','RadioButton');var arrInputTexts=DOMUtil.findDescendantsByClass(brotherNode,'input','InputText');eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(rContainer,0);for(var i=0;i<rContainer.length;i++){if(arrInputTexts[i].value==""||arrInputTexts[i].value.length<1){rContainer[i].firstChild.value="Option"+rContainer[i].getAttribute("index");rContainer[i].firstChild.nextSibling.innerHTML="Option"+rContainer[i].getAttribute("index");}}
break;}
var arrayDivIcons=DOMUtil.findFirstDescendantByClass(rowNode,'td','FieldIcon').childNodes;var arrayInputTexts=DOMUtil.findDescendantsByClass(brotherNode,'input','InputText');for(var j=0;j<arrayDivIcons.length;j++){if(arrayDivIcons[j].getAttribute("index")==currentIndex){arrayDivIcons[j].parentNode.removeChild(arrayDivIcons[j]);}}
eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(arrayDivIcons,0);eXo.ecm.UIFormGeneratorPortlet.updateNodeIndex(arrayInputTexts,0);};UIFormGeneratorPortlet.prototype.getStringJsonObject=function(){var DOMUtil=eXo.core.DOMUtil;var root=document.getElementById('MiddleCenterViewBoxStyle');var boxsContent=DOMUtil.findDescendantsByClass(root,'div','BoxContentBoxStyle');var strJsonObject='{ "inputs" : [';for(var i=0;i<boxsContent.length;i++){strJsonObject+=eXo.ecm.UIFormGeneratorPortlet.getProperties(boxsContent[i]);if(i!=(boxsContent.length-1)){strJsonObject+=',';}}
strJsonObject+="]}";return strJsonObject;};UIFormGeneratorPortlet.prototype.getProperties=function(comp){var DOMUtil=eXo.core.DOMUtil;var strObject='{';strObject+='"type":"'+comp.getAttribute("typeComponent")+'",';var topContent=DOMUtil.findFirstDescendantByClass(comp,'div','TopContentBoxStyle');var fieldLabel=DOMUtil.findFirstDescendantByClass(topContent,'td','FieldLabel');var defaultValue=fieldLabel.getAttribute('value');var nameComp='';if(fieldLabel&&fieldLabel.innerHTML!=''){nameComp=fieldLabel.innerHTML;}else{nameComp=defaultValue;}
strObject+='"name":"'+nameComp+'",';switch(comp.getAttribute("typeComponent")){case"input":inputNode=DOMUtil.findFirstDescendantByClass(topContent,'input',"InputText");var width=inputNode.offsetWidth;var mandatory=fieldLabel.getAttribute('mandatory');var height=inputNode.offsetHeight;strObject+='"value":"'+inputNode.value+'","width":'+width+',"mandatory":'+mandatory+',"height":'+height+',';break;case"label":var labelNode=DOMUtil.findFirstDescendantByClass(topContent,'td','FieldComponent');strObject+='"value":"'+labelNode.innerHTML+'","width":0,"mandatory":'+mandatory+',"height":0,';break;case"textarea":var textareaNode=DOMUtil.findFirstDescendantByClass(topContent,'textarea',"Textarea");var width=textareaNode.offsetWidth;var mandatory=fieldLabel.getAttribute('mandatory');var height=textareaNode.offsetHeight;strObject+='"value":"'+textareaNode.value+'","width":'+width+',"mandatory":'+mandatory+',"height":'+height+',';break;case"wysiwyg":var midContent=DOMUtil.findNextElementByTagName(topContent,"div");var selectNode=DOMUtil.findFirstDescendantByClass(midContent,'select',"SelectBox");strObject+='"value":"Type content here...","width":0,"mandatory":'+mandatory+',"height":0,"advanced":"'+selectNode.value+'",';break;case"select":var selectNode=DOMUtil.findFirstDescendantByClass(topContent,'select',"SelectBox");var width=selectNode.offsetWidth;var mandatory=fieldLabel.getAttribute('mandatory');var height=selectNode.offsetHeight;strObject+='"value":"'+selectNode.value+'","width":'+width+',"mandatory":'+mandatory+',"height":'+height+',';var options=DOMUtil.getChildrenByTagName(selectNode,'option');var advOptions='';strObject+='"advanced":"';for(var i=0;i<options.length;i++){strObject+=options[i].value;if(i!=(options.length-1)){strObject+=",";}}
strObject+='",';break;case"upload":strObject+='"value":"null","width":0,"mandatory":'+mandatory+',"height":0,';break;case"radio":break;case"checkbox":break;}
strObject+='"guideline":"'+fieldLabel.getAttribute('desc')+'"';strObject+="}";return strObject;};UIFormGeneratorPortlet.prototype.submitForm=function(){var strJsonObject=eXo.ecm.UIFormGeneratorPortlet.getStringJsonObject();var inputHidden=document.getElementById("UIFormGeneratorJsonObjectStringInput");if(inputHidden)inputHidden.value=""+strJsonObject;};eXo.ecm.UIFormGeneratorPortlet=new UIFormGeneratorPortlet();function ContentListViewer(){}
ContentListViewer.prototype.initCheckedRadio=function(id){eXo.core.Browser.chkRadioId=id;};ContentListViewer.prototype.initCondition=function(formid){var formElement=document.getElementById(formid);var radioboxes=[];for(var i=0;i<formElement.elements.length;i++){if(formElement.elements[i].type=="radio")radioboxes.push(formElement.elements[i]);}
var i=radioboxes.length;while(i--){radioboxes[i].onclick=eXo.ecm.CLV.chooseCondition;}
if(eXo.core.Browser.chkRadioId&&eXo.core.Browser.chkRadioId!="null"){var selectedRadio=document.getElementById(eXo.core.Browser.chkRadioId);}else{var selectedRadio=radioboxes[0];}
var itemSelectedContainer=eXo.core.DOMUtil.findAncestorByClass(selectedRadio,"ContentSearchForm");var itemContainers=eXo.core.DOMUtil.findDescendantsByClass(selectedRadio.form,"div","ContentSearchForm");for(var i=0;i<itemContainers.length;i++){eXo.ecm.CLV.setCondition(itemContainers[i],true);}
eXo.ecm.CLV.enableCondition(itemSelectedContainer);};ContentListViewer.prototype.chooseCondition=function(){var me=this;var hiddenField=eXo.core.DOMUtil.findFirstDescendantByClass(me.form,"input","hidden");hiddenField.value=me.id;var itemSelectedContainer=eXo.core.DOMUtil.findAncestorByClass(me,"ContentSearchForm");var itemContainers=eXo.core.DOMUtil.findDescendantsByClass(me.form,"div","ContentSearchForm");for(var i=0;i<itemContainers.length;i++){eXo.ecm.CLV.setCondition(itemContainers[i],true);}
eXo.ecm.CLV.enableCondition(itemSelectedContainer);eXo.ecm.lastCondition=itemSelectedContainer;};ContentListViewer.prototype.enableCondition=function(itemContainer){if(eXo.ecm.lastCondition)eXo.ecm.CLV.setCondition(eXo.ecm.lastCondition,true);eXo.ecm.CLV.setCondition(itemContainer,false);};ContentListViewer.prototype.setCondition=function(itemContainer,state){var domUtil=eXo.core.DOMUtil;var action=domUtil.findDescendantsByTagName(itemContainer,"img");if(action&&action.length>0){for(var i=0;i<action.length;i++){if(state){action[i].style.visibility="hidden";}else{action[i].style.visibility="";}}}
var action=domUtil.findDescendantsByTagName(itemContainer,"input");if(action&&(action.length>0)){for(i=0;i<action.length;i++){if(action[i].type!="radio")action[i].disabled=state;}}
var action=domUtil.findDescendantsByTagName(itemContainer,"select");if(action&&(action.length>0)){for(i=0;i<action.length;i++){action[i].disabled=state;}}};ContentListViewer.prototype.setHiddenValue=function(){var inputHidden=document.getElementById("checkedRadioId");if(eXo.core.Browser.chkRadioId=="null"){inputHidden.value="name";document.getElementById("name").checked=true;}else{inputHidden.value=eXo.core.Browser.chkRadioId;document.getElementById(eXo.core.Browser.chkRadioId).checked=true;}};ContentListViewer.prototype.checkModeViewer=function(){var formObj=document.getElementById("UICLVConfig");var OrderOptions=eXo.core.DOMUtil.findDescendantsByClass(formObj,"tr","OrderBlock");var viewerModes=eXo.core.DOMUtil.findDescendantsByTagName(formObj,"input");for(var i=0;i<viewerModes.length;i++){if(viewerModes[i].getAttribute("name")=="ViewerMode"){if(viewerModes[i].value=="AutoViewerMode"){viewerModes[i].onclick=function(){for(var j=0;j<OrderOptions.length;j++){OrderOptions[j].style.display="";}};}else if(viewerModes[i].value=="ManualViewerMode"){viewerModes[i].onclick=function(){for(var k=0;k<OrderOptions.length;k++){OrderOptions[k].style.display="none";}};}}}};eXo.ecm.CLV=new ContentListViewer();function WCMFCKEditor(){}
WCMFCKEditor.prototype.insertCSSFromTextArea2FCK=function(Instance,ContentCSS){if(!Instance)return;var eContentCSS=document.getElementById(ContentCSS);var sContentCSSId=ContentCSS+"_Inline";var count=1;eContentCSS.onblur=updateStyle;function updateStyle(){var sValue=eContentCSS.value;if(!sValue)return;var iDoc=FCKeditorAPI.Instances[Instance].EditorWindow.document;var eHead=iDoc.getElementsByTagName("head")[0];var eStyle=iDoc.getElementById(sContentCSSId);if(eStyle){eHead.removeChild(eStyle);}
eStyle=iDoc.createElement("style");eStyle.setAttribute("type","text/css");eStyle.setAttribute("id",sContentCSSId);if(eXo.core.Browser.isFF()){eStyle.innerHTML=sValue;}else{eStyle.styleSheet.cssText=sValue;}
eHead.appendChild(eStyle);};(function checkFCKEditorAPI(){if(count<=5){try{updateStyle();if(updateStyle.time){clearTimeout(updateStyle.time);updateStyle.time=null;}}catch(e){count++;updateStyle.time=setTimeout(checkFCKEditorAPI,500);}}})();};eXo.ecm.WCMFCKEditor=new WCMFCKEditor();function CKEditor(){}
CKEditor.prototype.insertCSS=function(Instance,ContentCSS){if(!Instance)return;var eContentCSS=document.getElementById(ContentCSS);var sContentCSSId=ContentCSS+"_Inline";var count=1;eContentCSS.onblur=updateStyle;function updateStyle(){var sValue=eContentCSS.value;if(!sValue)return;var iDoc=CKEDITOR.instances[Instance].document.$;var eHead=iDoc.getElementsByTagName("head")[0];var eStyle=iDoc.getElementById(sContentCSSId);if(eStyle){eHead.removeChild(eStyle);}
eStyle=iDoc.createElement("style");eStyle.setAttribute("type","text/css");eStyle.setAttribute("id",sContentCSSId);if(eXo.core.Browser.isFF()){eStyle.innerHTML=sValue;}else{eStyle.styleSheet.cssText=sValue;}
eHead.appendChild(eStyle);};(function checkFCKEditorAPI(){if(count<=5){try{updateStyle();if(updateStyle.time){clearTimeout(updateStyle.time);updateStyle.time=null;}}catch(e){count++;updateStyle.time=setTimeout(checkFCKEditorAPI,500);}}})();};eXo.ecm.CKEditor=new CKEditor();function Cometd(){this._connected=false;this._polling=false;this._connecting=false;this.currentTransport=null;this.url='/cometd/cometd';this.id=null;this.exoId=null;this.exoToken=null;var Browser=eXo.core.Browser;this.clientId=Browser.getCookie('cometdClientID')||false;this.messageId=0;this.batch=0;this._subscriptions=[];this._messageQ=[];this._connectionReadyCallbacks=[];this._maxInterval=5*1000;this._backoffInterval=1000;this._maxTry=5;this._tryToOpenTunnelCnt=0;this._retryInterval=0;this._multiClientsDetectCnt=0;}
Cometd.prototype.init=function(forceDisconnect){this._tryToOpenTunnelCnt=0;if((!forceDisconnect&&this._connected)||this._connecting){return;}
if(!this.currentTransport){this.currentTransport=new eXo.portal.LongPollTransport();this.currentTransport.init(this);}
if(this.clientId)
this.currentTransport.initTunnel();else
this.currentTransport.initHandshake();};Cometd.prototype.addOnConnectionReadyCallback=function(handle){if(handle){this._connectionReadyCallbacks.push(handle);}};Cometd.prototype.removeOnConnectionReadtCallback=function(handle){for(var i=0;i<this._connectionReadyCallbacks.length;i++){if(this._connectionReadyCallbacks[i]==handle){this._connectionReadyCallbacks[i]=this._connectionReadyCallbacks[this._connectionReadyCallbacks.length-1];this._connectionReadyCallbacks.pop();break;}}};Cometd.prototype.deliver=function(messages){messages.each(this._deliver,this);return messages;}
Cometd.prototype.isConnected=function(){return this._connected;}
Cometd.prototype._deliver=function(message){if(!message['channel']){if(message['success']!==true){return;}}
this.lastMessage=message;if(message.advice){this.adviceBackup=this.advice;this.advice=message.advice;this.multiClients=message.advice['multiple-clients'];if(this.multiClients){this._multiClientsDetectCnt++;if(this._multiClientsDetectCnt==1){}}else{this._multiClientsDetectCnt=0;this.resetRetryInterval();}}
if((message['channel'])&&(message.channel.length>5)&&(message.channel.substr(0,5)=='/meta')){switch(message.channel){case'/meta/connect':if(message.successful&&!this._connected){this._connected=true;this.endBatch();}
break;case'/meta/subscribe':if(!message.successful){alert('todo manage error subscription');return;}
break;case'/meta/unsubscribe':if(!message.successful){alert('todo manage error unsubscription');return;}
break;}}
if(message.data){var tname=message.channel;var def=this._subscriptions[tname];if(def)
def(message);}}
Cometd.prototype._sendMessage=function(message){if(this.currentTransport&&this._connected&&this.batch==0){return this.currentTransport.sendMessages([message]);}
else{this._messageQ.push(message);}}
Cometd.prototype.subscribe=function(channel,callback){if(callback){var tname=channel;var subs=this._subscriptions[tname];if(!subs||subs.length==0){subs=[];var message={channel:'/meta/subscribe',subscription:channel,exoId:this.exoId,exoToken:this.exoToken}
this._sendMessage(message);}
this._subscriptions[tname]=callback;}}
Cometd.prototype.unsubscribe=function(channel){var tname=channel;if(this._subscriptions[tname]){this._subscriptions[tname]=null;}
this._sendMessage({channel:'/meta/unsubscribe',subscription:channel,exoId:this.exoId,exoToken:this.exoToken});}
Cometd.prototype.startBatch=function(){this.batch++;}
Cometd.prototype.increaseRetryInterval=function(){this.advice=this.advice||{};if(!this.advice.interval||(this.advice.interval&&this.advice.interval>this._maxInterval)){this.resetRetryInterval();}else{this._retryInterval+=this._backoffInterval;this.advice.interval=this._retryInterval;}}
Cometd.prototype.resetRetryInterval=function(){if(this.advice)
this.advice.interval=0;this._retryInterval=0;}
Cometd.prototype.endBatch=function(){this._tryToOpenTunnelCnt=0;this._connecting=false;for(var i=0;i<this._connectionReadyCallbacks.length;i++){var handler=this._connectionReadyCallbacks[i];if(handler){handler();}}
if(--this.batch<=0&&this.currentTransport&&this._connected){this.batch=0;var messages=this._messageQ;this._messageQ=[];if(messages.length>0){this.currentTransport.sendMessages(messages);}}}
Cometd.prototype.disconnect=function(){this._tryToOpenTunnelCnt=0;this._subscriptions.each(this.unsubscribe,this);this._messageQ=[];if(this.currentTransport){this.currentTransport.disconnect();}
if(!this._polling)
this._connected=false;}
Cometd.prototype._backoff=function(){if(!this.advice||!this.advice.interval){this.advice={reconnect:'retry',interval:0};}
this.increaseRetryInterval();}
function LongPollTransport(){var instance=new Object();instance.init=function(cometd){this._connectionType='long-polling';this._cometd=cometd;}
instance.startup=function(){var request=new eXo.portal.AjaxRequest('POST',this._cometd.url);request.onSuccess=this._cometd.deliver;request.process();}
instance.initHandshake=function(){var message={channel:'/meta/handshake',id:this._cometd.messageId++,exoId:this._cometd.exoId,exoToken:this._cometd.exoToken};var query='message='+eXo.core.JSON.stringify(message);var request=new eXo.portal.AjaxRequest('POST',this._cometd.url,query);request.onSuccess=function(request){this.finishInitHandshake(request.evalResponse());}.bind(this);request.onError=function(err){throw(new Error('request Error, need to manage this error'));}.bind(this);request.process();}
instance.finishInitHandshake=function(data){data=data[0];this._cometd.handshakeReturn=data;if(data['advice']){this._cometd.advice=data.advice;}
if(!data.successful){if(this._cometd.advice&&this._cometd.advice['reconnect']=='none'){return;}
if(this._cometd.advice&&this._cometd.advice['interval']&&this._cometd.advice.interval>0){setTimeout(function(){eXo.core.Cometd.init();},this._cometd._retryInterval);}else{this._cometd.init(this.url,this._props);}
return;}
if(data.version<this.minimumVersion){return;}
this._cometd.clientId=data.clientId;eXo.core.Browser.setCookie('cometdClientID',this._cometd.clientId,1);this.initTunnel();}
instance.initTunnel=function(){var message={channel:'/meta/connect',clientId:this._cometd.clientId,connectionType:this._connectionType,id:this._cometd.messageId++};this.openTunnelWith({message:eXo.core.JSON.stringify(message)});}
instance.openTunnelWith=function(content,url){this._cometd._polling=true;var query='message='+content.message;var request=new eXo.portal.AjaxRequest('POST',(url||this._cometd.url),query);request.timeout=180000;request.onSuccess=function(request){this._cometd._polling=false;if(request.status>=200&&request.status<300){this._cometd.deliver(request.evalResponse());}
else
this._cometd._backoff();this.tunnelReq=null;this.tunnelCollapse();}.bind(this);request.onError=function(err){this.tunnelReq=null;this._cometd._polling=false;this._cometd._tryToOpenTunnelCnt++;this.tunnelCollapse();throw(new Error('tunnel opening failed'));}.bind(this);request.process();}
instance.tunnelCollapse=function(){if(this._cometd._tryToOpenTunnelCnt>this._cometd._maxTry){return;}
if(!this._cometd._polling){this._cometd._polling=false;if(this._cometd['advice']){if(this._cometd.advice['reconnect']=='none'){return;}
if((this._cometd.advice['interval'])&&(this._cometd.advice.interval>0)){var transport=this;setTimeout(function(){transport._connect();},this._cometd._retryInterval);this._cometd.increaseRetryInterval();}else{this._connect();this._cometd.increaseRetryInterval();}}else{this._connect();this._cometd.increaseRetryInterval();}}}
instance._connect=function(){if((this._cometd['advice'])&&(this._cometd.advice['reconnect']=='handshake')){this._cometd.clientId=null;this._cometd.init(this._cometd.url,this._cometd._props);}else if(this._cometd._connected){this.openTunnelWith({message:eXo.core.JSON.stringify([{channel:'/meta/connect',connectionType:this._connectionType,clientId:this._cometd.clientId,timestamp:this.lastTimestamp,id:''+this._cometd.messageId++}])});}}
instance.sendMessages=function(messages){for(var i=0;i<messages.length;i++){messages[i].clientId=this._cometd.clientId;messages[i].id=''+this._cometd.messageId++;}
var query='message='+eXo.core.JSON.stringify(messages);var request=new eXo.portal.AjaxRequest('POST',this._cometd.url,query);request.onSuccess=function(request){this._cometd.deliver(request.evalResponse());}.bind(this);request.onError=function(err){throw(new Error('error sending the message'));}.bind(this);request.process();}
instance.disconnect=function(){var query='message='+eXo.core.JSON.stringify([{channel:'/meta/disconnect',clientId:this._cometd.clientId,id:''+this._cometd.messageId++}]);var request=new eXo.portal.AjaxRequest('POST',this._cometd.url,query);request.process();}
return instance;}
eXo.core.Cometd=new Cometd();eXo.portal.LongPollTransport=LongPollTransport.prototype.constructor;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(eXo.core.I18n.isLT()&&isNaN(parseInt(this.dragObject.style.left)))this.dragObject.style.left="0px";if(eXo.core.I18n.isRT()&&isNaN(parseInt(this.dragObject.style.right)))this.dragObject.style.right="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){if(evt&&evt.preventDefault)evt.preventDefault();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.onmouseout=this.onCancel;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=eXo.core.I18n.isRT()?parseInt(dragObject.style.right):parseInt(dragObject.style.left);if(eXo.core.I18n.isLT())dragObject.style["left"]=x+eXo.core.Mouse.deltax+"px";else dragObject.style["right"]=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.onCancel=function(evt){if(eXo.core.DragDrop.cancelCallback)eXo.core.DragDrop.cancelCallback(eXo.core.DragDrop.dndEvent);};DragDrop.prototype.destroy=function(){if(this.destroyCallback!=null){this.destroyCallback(this.dndEvent);}
document.onmousemove=null;document.onmouseup=null;document.onmouseout=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(eXo.core.DOMUtil.hasAncestor(ele,foundTarget)){foundTarget=ele;}}}}
return foundTarget;};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;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();var count=1;function DragDrop2(){var obj=null;DragDrop2.prototype.init=function(o,oRoot){o.onmousedown=eXo.core.DragDrop2.start;o.root=oRoot&&oRoot!=null?oRoot:o;o.root.onmousedown=function(){this.style.zIndex=++count;}
o.root.onDragStart=new Function();o.root.onDragEnd=new Function();o.root.onDrag=new Function();};DragDrop2.prototype.start=function(e){if(!e)e=window.event;if(((e.which)&&(e.which==2||e.which==3))||((e.button)&&(e.button==2))){return;}
var o=obj=this;e=eXo.core.DragDrop2.fixE(e);var y=parseInt(eXo.core.DOMUtil.getStyle(o.root,"top"));var x=parseInt(eXo.core.DOMUtil.getStyle(o.root,"left"));if(isNaN(x))x=0;if(isNaN(y))y=0;o.lastMouseX=eXo.core.Browser.findMouseXInPage(e);o.lastMouseY=eXo.core.Browser.findMouseYInPage(e);o.root.onDragStart(x,y,o.lastMouseX,o.lastMouseY,e);document.onmousemove=eXo.core.DragDrop2.drag;document.onmouseup=eXo.core.DragDrop2.end;document.onmouseout=eXo.core.DragDrop2.cancel;return false;};DragDrop2.prototype.drag=function(e){e=eXo.core.DragDrop2.fixE(e);var o=obj;var ey=eXo.core.Browser.findMouseYInPage(e);var ex=eXo.core.Browser.findMouseXInPage(e);var y=parseInt(eXo.core.DOMUtil.getStyle(o.root,"top"));var x=parseInt(eXo.core.DOMUtil.getStyle(o.root,"left"));if(isNaN(x))x=0;if(isNaN(y))y=0;var nx,ny;nx=x+(ex-o.lastMouseX);ny=y+(ey-o.lastMouseY);obj.root.style["left"]=nx+"px";obj.root.style["top"]=ny+"px";obj.lastMouseX=ex;obj.lastMouseY=ey;obj.root.onDrag(nx,ny,ex,ey,e);return false;};DragDrop2.prototype.end=function(e){e=eXo.core.DragDrop2.fixE(e);document.onmousemove=null;document.onmouseup=null;document.onmouseout=null;obj.root.onDragEnd(parseInt(obj.root.style["left"]),parseInt(obj.root.style["top"]),e.clientX,e.clientY);obj=null;};DragDrop2.prototype.cancel=function(e){if(obj.root.onCancel)obj.root.onCancel(e);};DragDrop2.prototype.fixE=function(e){if(typeof e=='undefined')e=window.event;if(typeof e.layerX=='undefined')e.layerX=e.offsetX;if(typeof e.layerY=='undefined')e.layerY=e.offsetY;return e;};};eXo.core.DragDrop2=new DragDrop2();function I18n(){this.init();}
I18n.prototype.init=function(){var html=document.getElementsByTagName('html')[0];var lang=html.getAttribute('xml:lang')||html.getAttribute('lang')||"en";var dir=html.getAttribute('dir')||"lt";this.lang=lang;this.dir=dir;this.orientation="rtl"==dir?"rt":"lt";this.lt=this.orientation=="lt";}
I18n.prototype.getLanguage=function(){return this.lang;}
I18n.prototype.getOrientation=function(){return this.orientation;}
I18n.prototype.getDir=function(){return!this.lt;}
I18n.prototype.isLT=function(){return this.lt;}
I18n.prototype.isRT=function(){return!this.lt;}
eXo.core.I18n=new I18n();if(!eXo.core.JSON){JSON=function(){function f(n){return n<10?'0'+n:n;}
Date.prototype.toJSON=function(){return this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z';};var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};function stringify(value,whitelist){var a,i,k,l,r=/["\\\x00-\x1f\x7f-\x9f]/g,v;switch(typeof value){case'string':return r.test(value)?'"'+value.replace(r,function(a){var c=m[a];if(c){return c;}
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+
(c%16).toString(16);})+'"':'"'+value+'"';case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
if(typeof value.toJSON==='function'){return stringify(value.toJSON());}
a=[];if(typeof value.length==='number'&&!(value.propertyIsEnumerable('length'))){l=value.length;for(i=0;i<l;i+=1){a.push(stringify(value[i],whitelist)||'null');}
return'['+a.join(',')+']';}
if(whitelist){l=whitelist.length;for(i=0;i<l;i+=1){k=whitelist[i];if(typeof k==='string'){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+':'+v);}}}}else{for(k in value){if(typeof k==='string'){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+':'+v);}}}}
return'{'+a.join(',')+'}';}}
return{stringify:stringify,parse:function(text,filter){var j;function walk(k,v){var i,n;if(v&&typeof v==='object'){for(i in v){if(Object.prototype.hasOwnProperty.apply(v,[i])){n=walk(i,v[i]);if(n!==undefined){v[i]=n;}}}}
return filter(k,v);}
if(/^[\],:{}\s]*$/.test(text.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof filter==='function'?walk('',j):j;}
throw new SyntaxError('parseJSON');}};}();eXo.core.JSON=JSON;}
function Loader(){this.wait=1;this.defaultAsyncWait=250;};Loader.prototype.init=function(scriptName,callback,context,params){var a=-1;var scriptNames=new Array();if(typeof(scriptName)!="string"&&scriptName.length){var _scriptNames=scriptName;for(var s=0;s<_scriptNames.length;s++){if(this.registered[_scriptNames[s]]||durl(_scriptNames[s])){scriptNames.push(_scriptNames[s]);}}
scriptName=scriptNames[0];a=1;}else{while(typeof(arguments[++a])=="string"){if(this.registered[scriptName]||durl(scriptName)){scriptNames.push(arguments[a]);}}}
callback=arguments[a];context=arguments[++a];params=arguments[++a];if(scriptNames.length>1){var cb=callback;callback=function(){eXo.core.Loader.init(scriptNames,cb,context,params);}}
var reg=this.registered[scriptName];if(!this.__durls)this.__durls={};if(durl(scriptName)&&scriptName.substring(0,4)=="url("){scriptName=scriptName.substring(4,scriptName.length-1);if(!this.__durls[scriptName]){scriptNames[0]=scriptName;this.register(scriptName,true,scriptName);reg=this.registered[scriptName];var callbackQueue=this.getCallbackQueue(scriptName);var cbitem=new this.CallbackItem(function(){eXo.core.Loader.__durls[scriptName]=true;});callbackQueue.push(cbitem);callbackQueue.push(new this.CallbackItem(callback,context,params));callback=undefined;context=undefined;}}
if(reg){for(var r=reg.requirements.length-1;r>=0;r--){if(this.registered[reg.requirements[r].name]){eXo.core.Loader.init(reg.requirements[r].name,function(){eXo.core.Loader.init(scriptName,callback,context,params);},context);return;}}
for(var u=0;u<reg.urls.length;u++){if(u==reg.urls.length-1){if(callback){this.load(reg.name,reg.urls[u],reg.remote,reg.asyncWait,new this.CallbackItem(callback,context,params));}else{this.load(reg.name,reg.urls[u],reg.remote,reg.asyncWait);}}else{this.load(reg.name,reg.urls[u],reg.remote,reg.asyncWait);}}}else{var cb=callback;if(cb){if(params&&typeof(params)!="string"&&params.length)cb.apply(context,params);else cb.call(context,params);}}};Loader.prototype.CallbackItem=function(_callback,_context,_params){this.callback=_callback;this.context=_context;this.params=_params;this.invoke=function(){var ctx=this.context?this.context:{};if(this.params&&typeof(this.params)!="string"&&this.params.length)this.callback.apply(ctx,this.params);else this.callback.call(ctx,this.params);};};Loader.prototype.Registration=function(_name,_version,_remote,_asyncWait,_urls){this.name=_name;var a=0;var arg=arguments[++a];var v=true;if(typeof(arg)=="string"){for(var c=0;c<arg.length;c++){if("1234567890.".indexOf(c)==-1){v=false;break;}}
if(v){this.version=arg;arg=arguments[++a];}else{this.version="1.0.0";}}
if(arg&&typeof(arg)=="boolean"){this.remote=arg;arg=arguments[++a];}else{this.remote=false;}
if(arg&&typeof(arg)=="number"){this.asyncWait=_asyncWait;}else{this.asyncWait=0;}
this.urls=new Array();if(arg&&arg.length&&typeof(arg)!="string"){this.urls=arg;}else{for(a=a;a<arguments.length;a++){if(arguments[a]&&typeof(arguments[a])=="string"){this.urls.push(arguments[a]);}}}
this.requirements=new Array();this.requires=function(resourceName,minimumVersion){if(!minimumVersion)minimumVersion="1.0.0";eXo.core.Loader.requirements.push({name:resourceName,minVersion:minimumVersion});return this;}
this.register=function(name,version,remote,asyncWait,urls){return eXo.core.Loader.register(name,version,remote,asyncWait,urls);}
return this;};Loader.prototype.register=function(name,version,remote,asyncWait,urls){var reg;if(typeof(name)=="object"){reg=name;reg=new this.Registration(reg.name,reg.version,reg.remote,reg.asyncWait,urls);}else{reg=new this.Registration(name,version,remote,asyncWait,urls);}
if(!this.registered)this.registered={};if(this.registered[name]&&window.console){window.console.log("Warning: Resource named \""+name+"\" was already registered with this.register(); overwritten.");}
this.registered[name]=reg;return reg;};Loader.prototype.getCallbackQueue=function(scriptUrl){if(!this.__callbackQueue){this.__callbackQueue={};}
var callbackQueue=this.__callbackQueue[scriptUrl];if(!callbackQueue){callbackQueue=this.__callbackQueue[scriptUrl]=new Array();}
return callbackQueue;};Loader.prototype.load=function(scriptName,scriptUrl,remote,asyncWait,cb){if(asyncWait==undefined)asyncWait=this.wait;if(remote&&asyncWait==0)asyncWait=this.defaultAsyncWait;if(!this.loadedScripts)this.loadedScripts=new Array();var callbackQueue=this.getCallbackQueue(scriptUrl);callbackQueue.push(new this.CallbackItem(function(){eXo.core.Loader.loadedScripts.push(eXo.core.Loader.registered[scriptName]);eXo.core.Loader.registered[scriptName]=false;},null));if(cb){callbackQueue.push(cb);if(callbackQueue.length>2)return;}
if(remote){this.srcScript(scriptUrl,asyncWait,callbackQueue);}else{var request=eXo.core.Browser.createHttpRequest();request.open('GET',scriptUrl,false);request.send(null);this.injectScript(request.responseText,scriptName);if(callbackQueue){for(var q=0;q<callbackQueue.length;q++){callbackQueue[q].invoke();}}
this.__callbackQueue[scriptUrl]=undefined;}};Loader.prototype.genScriptNode=function(){var scriptNode=document.createElement("script");scriptNode.setAttribute("type","text/javascript");scriptNode.setAttribute("language","JavaScript");return scriptNode;};Loader.prototype.srcScript=function(scriptUrl,asyncWait,callbackQueue){var scriptNode=this.genScriptNode();scriptNode.setAttribute("src",scriptUrl);if(callbackQueue){var execQueue=function(){eXo.core.Loader.__callbackQueue[scriptUrl]=undefined;for(var q=0;q<callbackQueue.length;q++){callbackQueue[q].invoke();}
callbackQueue=new Array();}
scriptNode.onload=scriptNode.onreadystatechange=function(){if((!scriptNode.readyState)||scriptNode.readyState=="loaded"||scriptNode.readyState=="complete"||scriptNode.readyState==4&&scriptNode.status==200){if(asyncWait>0){setTimeout(execQueue,asyncWait);}
else{execQueue();}}};}
var headNode=document.getElementsByTagName("head")[0];headNode.appendChild(scriptNode);};Loader.prototype.injectScript=function(scriptText,scriptName){var scriptNode=this.genScriptNode();try{scriptNode.setAttribute("name",scriptName);}catch(err){}
scriptNode.text=scriptText;var headNode=document.getElementsByTagName("head")[0];headNode.appendChild(scriptNode);};function durl(sc){var su=sc;if(sc&&sc.substring(0,4)=="url("){su=sc.substring(4,sc.length-1);}
var r=eXo.core.Loader.registered[su];return(!r&&(!this.__durls||!this.__durls[su])&&sc&&sc.length>4&&sc.substring(0,4)=="url(");};eXo.core.Loader=new Loader();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 AnimationSlider(){this.timerlen=5;this.slideAniLen=1000;this.timerID=new Array();this.startTime=new Array();this.obj=new Array();this.endHeight=new Array();this.moving=new Array();this.endSlideUpCallback=new Array();this.dir=new Array();}
AnimationSlider.prototype.slidedown=function(objname){if(this.moving[objname])
return;if(document.getElementById(objname).style.display!="none")
return;this.moving[objname]=true;this.dir[objname]="down";this.startslide(objname);}
AnimationSlider.prototype.slidedownup=function(objname,endSlideUpCallback){this.slidedown(objname);this.endSlideUpCallback[objname]=endSlideUpCallback;setTimeout("eXo.core.Notification.AnimationSlider.slideup('"+objname+"')",3000);}
AnimationSlider.prototype.slideup=function(objname){if(this.moving[objname])
return;if(document.getElementById(objname).style.display=="none")
return;this.moving[objname]=true;this.dir[objname]="up";this.startslide(objname);}
AnimationSlider.prototype.startslide=function(objname){this.obj[objname]=document.getElementById(objname);this.endHeight[objname]=parseInt(this.obj[objname].style.height);this.startTime[objname]=(new Date()).getTime();if(this.dir[objname]=="down"){this.obj[objname].style.height="1px";}
this.obj[objname].style.display="block";this.timerID[objname]=setInterval('eXo.core.Notification.AnimationSlider.slidetick(\''+objname+'\');',this.timerlen);}
AnimationSlider.prototype.slidetick=function(objname){var elapsed=(new Date()).getTime()-this.startTime[objname];if(elapsed>this.slideAniLen)
this.endSlide(objname);else{var before="before:"+this.obj[objname].id+"-"+this.obj[objname].style.height+"-";var d=Math.round(elapsed/this.slideAniLen*this.endHeight[objname]);if(this.dir[objname]=="up")
d=this.endHeight[objname]-d;this.obj[objname].style.height=d+"px";}
return;}
AnimationSlider.prototype.endSlide=function(objname){clearInterval(this.timerID[objname]);if(this.dir[objname]=="up"){this.obj[objname].style.display="none";if(this.endSlideUpCallback[objname]){this.endSlideUpCallback[objname](objname);}}
this.obj[objname].style.height=this.endHeight[objname]+"px";delete(this.moving[objname]);delete(this.timerID[objname]);delete(this.startTime[objname]);delete(this.endHeight[objname]);delete(this.obj[objname]);delete(this.dir[objname]);return;}
function Notification(){this.msgId=0;if(eXo.core.Topic!=null){eXo.core.Topic.subscribe("/eXo/portal/notification",function(event){eXo.core.Notification.addMessage(event.message);})}}
Notification.prototype.deleteBox=function(objname){var el=document.getElementById(objname);el.parentNode.removeChild(el);}
Notification.prototype.addMessage=function(msg){var currBoxId="messageBox_"+this.msgId++;var msgEl=document.createElement('div');msgEl.id=currBoxId;msgEl.style.width="200px";msgEl.style.height="75px";msgEl.style.display="none";msgEl.className="messageBox";msgEl.innerHTML="<div id='messageContent'>"+msg+"</div>";var msgsEl=document.getElementById("msgs");if(msgsEl==null){document.body.appendChild(document.createElement('div')).id="msgs";msgsEl=document.getElementById("msgs");}
msgsEl.appendChild(msgEl);eXo.core.Notification.AnimationSlider.slidedownup(currBoxId,this.deleteBox);}
eXo.core.Notification=new Notification();eXo.core.Notification.AnimationSlider=new AnimationSlider();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 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;}
Topic.prototype.initCometdBridge=function(){eXo.core.Cometd.subscribe("/eXo/topics",function(event){if(event.data!=null&&event.data.topic!=null&&event.data.sender!=null&&event.data.message!=null){eXo.core.Topic.publish(event.data.sender,event.data.topic,event.data.message);}
else{eXo.core.Topic.publish("Topic Cometd bridge","/eXo/portal/notification","error in the message received from Cometd:"+event);}});}
eXo.core.Topic=new Topic();function UIMaskLayer(){};UIMaskLayer.prototype.createTransparentMask=function(){var Browser=eXo.core.Browser;var ajaxLoading=document.getElementById("AjaxLoadingMask");var maskLayer=eXo.core.UIMaskLayer.createMask("UIPortalApplication",ajaxLoading,0);Browser.addOnScrollCallback("5439383",eXo.core.UIMaskLayer.setPosition);ajaxLoading.style.display="none";Browser.setOpacity(maskLayer,0);maskLayer.style.backgroundColor="white";maskLayer.style.cursor="wait";return maskLayer;};UIMaskLayer.prototype.showAjaxLoading=function(mask){var ajaxLoading=document.getElementById("AjaxLoadingMask");ajaxLoading.style.display="block";eXo.core.Browser.setOpacity(mask,30);mask.style.backgroundColor="black";}
UIMaskLayer.prototype.removeTransparentMask=function(){var mask=document.getElementById("TransparentMaskLayer");if(mask){mask.style.height="0px";mask.style.width="0px";}};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=4;maskLayer.style.width=Browser.getBrowserWidth()+"px";maskLayer.style.height=Browser.getBrowserHeight()+"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;object.style.display="block";blockContainer.appendChild(object);eXo.core.UIMaskLayer.setPosition();if(eXo.core.I18n.isLT()){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();}
if(maskLayer.parentNode.id=="UIPage"){eXo.core.UIMaskLayer.enablePageDesktop(false);}}catch(err){alert(err);}
Browser.addOnResizeCallback(maskLayer.id,eXo.core.UIMaskLayer.resizeMaskLayer);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+eXo.core.Browser.findPosY(blockContainer)+"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");if(document.documentElement&&document.documentElement.scrollTop){maskLayer.style.top=document.documentElement.scrollTop+"px";}else{maskLayer.style.top=document.body.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;var topPos;if(document.documentElement&&document.documentElement.scrollTop){topPos=document.documentElement.scrollTop;}else{topPos=document.body.scrollTop;}
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+topPos;}else if(position=="BOTTOM-RIGHT"){left=blockContainer.offsetWidth-object.offsetWidth;top=Browser.getBrowserHeight()-object.offsetHeight+topPos;}else{left=(blockContainer.offsetWidth-object.offsetWidth)/2;top=(Browser.getBrowserHeight()-object.offsetHeight)/2+topPos;}
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.enablePageDesktop=function(enabled){var pageDesktop=document.getElementById("UIPageDesktop");if(pageDesktop){if(enabled){pageDesktop.style.zIndex="";}else{pageDesktop.style.zIndex="-1";}}};UIMaskLayer.prototype.resizeMaskLayer=function(){var maskLayer=document.getElementById("MaskLayer");if(maskLayer){maskLayer.style.width=eXo.core.Browser.getBrowserWidth()+"px";maskLayer.style.height=eXo.core.Browser.getBrowserHeight()+"px";}};eXo.core.UIMaskLayer=new UIMaskLayer();eXo.gadget.UIGadget={createGadget:function(url,id,metadata,userPref,view,hostName,isdev,debug,nocache){window.gadgets=window.gadgets||{};eXo.gadgets=window.gadgets;if(!eXo.gadgets||!eXo.gadgets.rpc){eXo.core.Loader.register('rpc','1.0.0',true,0,hostName+'/js/rpc.js?c=1');eXo.core.Loader.register('eXo.gadgets.Gadgets','/eXoResources/javascript/eXo/gadget/Gadgets.js');eXo.core.Loader.register('eXo.gadgets.ExoBasedUserPrefStore','/eXoResources/javascript/eXo/gadget/ExoBasedUserPrefStore.js');}
eXo.core.Loader.init("rpc","eXo.gadgets.Gadgets","eXo.gadgets.ExoBasedUserPrefStore",eXo.gadget.UIGadget.createCallback,null,arguments);},createCallback:function(url,id,metadata,userPref,view,hostName,isdev,debug,nocache){var language=eXo.core.I18n.getLanguage();gadgets.container.setLanguage(language);var gadget;if(metadata!=null){gadget=gadgets.container.createGadget({specUrl:url,height:metadata.gadgets[0].height,secureToken:metadata.gadgets[0].secureToken,view:view});gadget.metadata=metadata.gadgets[0];}else{gadget=gadgets.container.createGadget({specUrl:url});}
gadget.parentId=id;gadget.debug=debug;gadget.nocache=nocache;gadget.isdev=isdev;gadget.serverBase_=hostName;gadgets.container.addGadget(gadget);if(userPref!=null)gadget.userPrefs_=userPref;var gadgetBlock=document.getElementById(id);gadgetBlock.innerHTML="<div id='gadget_"+gadget.id+"' class='UIGadgetContent'> </div>";gadgets.container.renderGadgets();var uiGadget=eXo.core.DOMUtil.findAncestorByClass(gadgetBlock,"UIGadget");if(uiGadget!=null){var isDesktop=false;if(uiGadget.parentNode.className=="UIPageDesktop"){uiGadget.style.position="absolute";isDesktop=true;}
else uiGadget.style.width="auto";eXo.gadget.UIGadget.init(uiGadget,isDesktop,gadget.metadata);}},init:function(uiGadget,inDesktop,metadata){var portletFragment=eXo.core.DOMUtil.findAncestorByClass(uiGadget,"PORTLET-FRAGMENT");if(portletFragment==null){uiGadget.onmouseover=eXo.gadget.UIGadget.showGadgetControl;uiGadget.onmouseout=eXo.gadget.UIGadget.hideGadgetControl;}else{var gadgetControl=eXo.core.DOMUtil.findFirstDescendantByClass(uiGadget,"div","GadgetControl");gadgetControl.style.display="block";var gadgetTitle=eXo.core.DOMUtil.findFirstDescendantByClass(gadgetControl,"div","GadgetTitle");gadgetTitle.style.display="block";if(metadata&&metadata.title!=null&&metadata.title.length>0)gadgetTitle.innerHTML=metadata.title;}
if(inDesktop){var dragHandleArea=eXo.core.DOMUtil.findFirstDescendantByClass(uiGadget,"div","GadgetDragHandleArea");if(uiGadget.style.zIndex<0)uiGadget.style.zIndex=0;eXo.core.DragDrop2.init(dragHandleArea,uiGadget);var uiPageDesktop=document.getElementById("UIPageDesktop");var offsetHeight=uiPageDesktop.offsetHeight-uiGadget.offsetHeight;var offsetWidth=uiPageDesktop.offsetWidth-uiGadget.offsetWidth;var dragPosX=uiGadget.offsetLeft;var dragPosY=uiGadget.offsetTop;if(dragPosX<0)uiGadget.style.left="0px";if(dragPosY<0)uiGadget.style.top="0px";if(dragPosY>offsetHeight)uiGadget.style.top=offsetHeight+"px";if(dragPosX>offsetWidth)uiGadget.style.left=offsetWidth+"px";uiGadget.onDragStart=function(x,y,lastMouseX,lastMouseY,e){var uiPageDesktop=document.getElementById("UIPageDesktop");if(uiPageDesktop==null)return;var uiGadgets=eXo.core.DOMUtil.findChildrenByClass(uiPageDesktop,"div","UIGadget");for(var i=0;i<uiGadgets.length;i++){var uiMask=eXo.core.DOMUtil.findFirstDescendantByClass(uiGadgets[i],"div","UIMask");if(uiMask!=null){var gadgetContent=eXo.core.DOMUtil.findFirstDescendantByClass(uiGadgets[i],"div","gadgets-gadget-content");uiMask.style.marginTop=-gadgetContent.offsetHeight+"px";uiMask.style.height=gadgetContent.offsetHeight+"px";uiMask.style.width=gadgetContent.offsetWidth+"px";uiMask.style.backgroundColor="white";eXo.core.Browser.setOpacity(uiMask,3);uiMask.style.display="block";}}}
uiGadget.onDrag=function(nx,ny,ex,ey,e){if(nx<0)uiGadget.style.left="0px";if(ny<0)uiGadget.style.top="0px";}
uiGadget.onDragEnd=function(x,y,clientX,clientY){var uiPageDesktop=document.getElementById("UIPageDesktop");var uiGadgets=eXo.core.DOMUtil.findChildrenByClass(uiPageDesktop,"div","UIGadget");for(var i=0;i<uiGadgets.length;i++){var uiMask=eXo.core.DOMUtil.findFirstDescendantByClass(uiGadgets[i],"div","UIMask");if(uiMask){uiMask.style.display="none";}}
var offsetHeight=uiPageDesktop.offsetHeight-uiGadget.offsetHeight;var offsetWidth=uiPageDesktop.offsetWidth-uiGadget.offsetWidth;var dragPosX=uiGadget.offsetLeft;var dragPosY=uiGadget.offsetTop;if(dragPosX<0)uiGadget.style.left="0px";if(dragPosY<0)uiGadget.style.top="0px";if(dragPosY>offsetHeight)uiGadget.style.top=offsetHeight+"px";if(dragPosX>offsetWidth)uiGadget.style.left=offsetWidth+"px";eXo.gadget.UIGadget.saveWindowProperties(uiGadget);}}},showGadgetControl:function(e){if(!e)e=window.event;e.cancelBubble=true;var DOMUtil=eXo.core.DOMUtil;var uiGadget=this;var gadgetControl=DOMUtil.findFirstDescendantByClass(uiGadget,"div","GadgetControl");gadgetControl.style.visibility="visible";var uiPageDesktop=DOMUtil.findAncestorByClass(uiGadget,"UIPageDesktop");if(uiPageDesktop){var dragHandleArea=DOMUtil.findFirstDescendantByClass(gadgetControl,"div","GadgetTitle");}},hideGadgetControl:function(e){if(!e)e=window.event;e.cancelBubble=true;var uiGadget=this;var gadgetControl=eXo.core.DOMUtil.findFirstDescendantByClass(uiGadget,"div","GadgetControl");gadgetControl.style.visibility="hidden";uiGadget.style.border="none";},editGadget:function(id){var DOMUtil=eXo.core.DOMUtil;var uiapp=document.getElementById(id);var id=eXo.core.DOMUtil.findFirstDescendantByClass(uiapp,"iframe","gadgets-gadget");var tempId=id.id.split('_')[2];gadgets.container.getGadget(tempId).handleOpenUserPrefsDialog();},minimizeGadget:function(selectedElement){var DOMUtil=eXo.core.DOMUtil;var uiGadget=DOMUtil.findAncestorByClass(selectedElement,"UIGadget");var portletFrag=DOMUtil.findAncestorByClass(uiGadget,"PORTLET-FRAGMENT");if(!portletFrag)return;var gadgetApp=DOMUtil.findFirstChildByClass(uiGadget,"div","GadgetApplication");var minimized=false;if(gadgetApp.style.display!="none"){minimized=true;gadgetApp.style.display="none";DOMUtil.replaceClass(selectedElement,"MinimizeGadget","RestoreGadget");selectedElement.title=selectedElement.getAttribute("unminiTitle");}else{minimized=false;gadgetApp.style.display="block";DOMUtil.replaceClass(selectedElement,"RestoreGadget","MinimizeGadget");selectedElement.title=selectedElement.getAttribute("miniTitle");}
var compId=portletFrag.parentNode.id;var uicomp=DOMUtil.findAncestorByClass(uiGadget,"UIDashboard");var href=eXo.env.server.portalBaseURL+"?portal:componentId="+compId;href+="&portal:type=action&uicomponent="+uicomp.id;href+="&op=MinimizeGadget";href+="&minimized="+minimized;href+="&objectId="+uiGadget.id+"&ajaxRequest=true";ajaxAsyncGetRequest(href);if(uiGadget.minimizeCallback)uiGadget.minimizeCallback(portletFrag.parentNode.id);},maximizeGadget:function(selectedElement){var DOMUtil=eXo.core.DOMUtil;var uiGadget=DOMUtil.findAncestorByClass(selectedElement,"UIGadget");var portletFrag=DOMUtil.findAncestorByClass(uiGadget,"PORTLET-FRAGMENT");if(!portletFrag)return;var compId=portletFrag.parentNode.id;var uicomp=DOMUtil.findAncestorByClass(uiGadget,"UIDashboard");var compDisplay=DOMUtil.findAncestorByClass(uiGadget,"UIDashboardContainer");var maximize=compDisplay?"maximize":"unmaximize";var href=eXo.env.server.portalBaseURL+"?portal:componentId="+compId;href+="&portal:type=action&uicomponent="+uicomp.id;href+="&op=MaximizeGadget";href+="&maximize="+maximize;href+="&objectId="+uiGadget.id+"&ajaxRequest=true";ajaxGet(href,true);},deleteGadget:function(selectedElement){var DOMUtil=eXo.core.DOMUtil;var uiPage=DOMUtil.findAncestorByClass(selectedElement,"UIPage");var uiGadget=DOMUtil.findAncestorByClass(selectedElement,"UIGadget");var containerBlockId;var portletFragment=DOMUtil.findAncestorByClass(uiGadget,"PORTLET-FRAGMENT");if(portletFragment!=null){var compId=portletFragment.parentNode.id;var uicomp=DOMUtil.findAncestorByClass(uiGadget,"UIDashboard").id;if(confirm(this.confirmDeleteGadget)){var href=eXo.env.server.portalBaseURL+"?portal:componentId="+compId;href+="&portal:type=action&uicomponent="+uicomp;href+="&op=DeleteGadget";href+="&objectId="+uiGadget.id+"&ajaxRequest=true";var uiDashboardCont=DOMUtil.findAncestorByClass(uiGadget,"UIDashboardContainer");if(uiDashboardCont){ajaxAsyncGetRequest(href);DOMUtil.removeElement(uiGadget);if(!DOMUtil.findFirstDescendantByClass(uiDashboardCont,"div","UIGadget")){DOMUtil.findFirstDescendantByClass(uiDashboardCont,"div","NoGadget").style.display="block";}}else{ajaxGet(href);}}}else{var uiPageIdNode=DOMUtil.findFirstDescendantByClass(uiPage,"div","id");containerBlockId=uiPageIdNode.innerHTML;if(confirm(this.confirmDeleteGadget)){var params=[{name:"objectId",value:uiGadget.id}];var result=ajaxAsyncGetRequest(eXo.env.server.createPortalURL(containerBlockId,"DeleteGadget",true,params),false);if(result=="OK"){DOMUtil.removeElement(uiGadget);}}}},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 gadgetApp=DOMUtil.findFirstDescendantByClass(object,"div","GadgetApplication");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,"SaveGadgetProperties",true,params),false);}}
function PortalDragDrop(){this.count=0;};PortalDragDrop.prototype.init=function(e){if(!e)e=window.event;if(((e.which)&&(e.which==2||e.which==3))||((e.button)&&(e.button==2)))return;var DOMUtil=eXo.core.DOMUtil;var Browser=eXo.core.Browser;var DragDrop=eXo.core.DragDrop;var Mouse=eXo.core.Mouse;var previewBlock=null;var previewTD=null;DragDrop.initCallback=function(dndEvent){var PortalDragDrop=eXo.portal.PortalDragDrop;this.origDragObjectStyle=new eXo.core.HashMap();var dragObject=dndEvent.dragObject;var properties=["top",eXo.core.I18n.isLT()?"left":"right","zIndex","opacity","filter","position"];this.origDragObjectStyle.copyProperties(properties,dragObject.style);var isComponent=!!DOMUtil.findFirstDescendantByClass(dragObject,"div","UIComponentBlock");var uiWorkingWS=document.getElementById("UIWorkingWorkspace");PortalDragDrop.positionRootObj=isComponent?uiWorkingWS:DOMUtil.findFirstDescendantByClass(uiWorkingWS,"div","UIPortalComposer");var originalDragObjectTop=Browser.findPosYInContainer(dragObject,PortalDragDrop.positionRootObj);var originalDragObjectLeft=Browser.findPosXInContainer(dragObject,PortalDragDrop.positionRootObj);PortalDragDrop.deltaYDragObjectAndMouse=Browser.findMouseRelativeY(dragObject,e);PortalDragDrop.deltaXDragObjectAndMouse=Browser.findMouseRelativeX(dragObject,e);if(!isComponent){var contentContainer=DOMUtil.findAncestorByClass(dragObject,"PopupContent");originalDragObjectTop-=contentContainer.scrollTop;PortalDragDrop.deltaYDragObjectAndMouse+=contentContainer.scrollTop;}
PortalDragDrop.parentDragObject=dragObject.parentNode;PortalDragDrop.backupDragObjectWidth=dragObject.offsetWidth;if(!isComponent){var cloneObject=dragObject.cloneNode(true);dragObject.parentNode.insertBefore(cloneObject,dragObject);cloneObject.style.opacity=0.5;cloneObject.style.filter="alpha(opacity=50)";cloneObject.style.width=PortalDragDrop.backupDragObjectWidth+"px";dndEvent.dragObject=cloneObject;}else{previewBlock=PortalDragDrop.createPreview();dragObject.parentNode.insertBefore(previewBlock,dragObject);dragObject.style.width="300px";var componentBlock=eXo.core.DOMUtil.findFirstDescendantByClass(dragObject,"div","UIComponentBlock");var editBlock=eXo.core.DOMUtil.findFirstChildByClass(componentBlock,"div","EDITION-BLOCK");if(editBlock){var newLayer=eXo.core.DOMUtil.findFirstDescendantByClass(editBlock,"div","NewLayer");if(newLayer)newLayer.style.width="300px";}}
dragObject.isComponent=isComponent;dragObject=dndEvent.dragObject;dragObject.style.position="absolute";if(eXo.core.I18n.isLT())dragObject.style.left=originalDragObjectLeft+"px";else dragObject.style.right=(PortalDragDrop.positionRootObj.offsetWidth-originalDragObjectLeft-dragObject.offsetWidth)+"px";dragObject.style.top=originalDragObjectTop+"px";eXo.portal.isInDragging=true;}
DragDrop.dragCallback=function(dndEvent){var dragObject=dndEvent.dragObject;eXo.portal.PortalDragDrop.scrollOnDrag(dndEvent);if(!dndEvent.foundTargetObject)return;var uiComponentLayout;if(dndEvent.foundTargetObject.className=="UIPage"){uiComponentLayout=DOMUtil.findFirstDescendantByClass(dndEvent.foundTargetObject,"div","VIEW-PAGE");}else if(dndEvent.foundTargetObject.className=="UIPortal"){if(eXo.portal.portalMode%2)uiComponentLayout=DOMUtil.findFirstDescendantByClass(dndEvent.foundTargetObject,"div","LAYOUT-PORTAL");else uiComponentLayout=DOMUtil.findFirstDescendantByClass(dndEvent.foundTargetObject,"div","VIEW-PORTAL");}else{var foundUIComponent=new eXo.portal.UIPortalComponent(dndEvent.foundTargetObject);if(eXo.portal.portalMode%2)uiComponentLayout=foundUIComponent.getLayoutBlock();else uiComponentLayout=foundUIComponent.getViewBlock();uiComponentLayout.style.height="auto";}
dndEvent.foundTargetObject.uiComponentLayoutType=uiComponentLayout;var componentIdElement=DOMUtil.getChildrenByTagName(uiComponentLayout,"div")[0];var layoutTypeElement=DOMUtil.getChildrenByTagName(componentIdElement,"div")[0];eXo.portal.PortalDragDrop.layoutTypeElementNode=layoutTypeElement;if(previewBlock==null)previewBlock=eXo.portal.PortalDragDrop.createPreview();if(previewTD||document.getElementById("PreviewTDBlock")){if(!previewTD)previewTD=document.getElementById("PreviewTDBlock");if(previewTD.parentNode)previewTD.parentNode.removeChild(previewTD);previewTD=null;}
if(layoutTypeElement!=null&&!DOMUtil.hasClass(layoutTypeElement,"UITableColumnContainer")){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;var insertPosition=eXo.portal.PortalDragDrop.findInsertPosition(listComponent,dragObject,"row");dndEvent.foundTargetObject.foundIndex=insertPosition;if(insertPosition>=0){rowContainer.insertBefore(previewBlock,listComponent[insertPosition]);}else{rowContainer.appendChild(previewBlock);}}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.hasAncestor(previewBlock,uiComponentLayout)){var td=tdElementList[i];if((td!=previewBlock.parentNode)&&(td!=dragObject.parentNode)){listComponent.push(td);}else if(td==dragObject.parentNode){td.style.width="0px";}}else{listComponent.push(tdElementList[i]);}}
dndEvent.foundTargetObject.listComponentInTarget=listComponent;var insertPosition=eXo.portal.PortalDragDrop.findInsertPosition(listComponent,dragObject,"column");dndEvent.foundTargetObject.foundIndex=insertPosition;var tdBlock=document.createElement("td");tdBlock.id=tdBlock.className="PreviewTDBlock";tdBlock.appendChild(previewBlock);previewTD=tdBlock;if(insertPosition>=0){trContainer.insertBefore(previewTD,listComponent[insertPosition]);}else{trContainer.appendChild(previewTD);}}};DragDrop.dropCallback=function(dndEvent){this.origDragObjectStyle.setProperties(dndEvent.dragObject.style,false);if(dndEvent.foundTargetObject!=null||(dndEvent.backupMouseEvent&&dndEvent.backupMouseEvent.keyCode!=27)){eXo.portal.PortalDragDrop.doDropCallback(dndEvent);}else{if(dndEvent.dragObject.parentNode.nodeName.toLowerCase()=="td"){dndEvent.dragObject.parentNode.style.width="auto";}
if(!dndEvent.dragObject.isComponent){dndEvent.dragObject.parentNode.removeChild(dndEvent.dragObject);}}
if(dndEvent.dragObject.isComponent){var componentBlock=eXo.core.DOMUtil.findFirstDescendantByClass(dndEvent.dragObject,"div","UIComponentBlock");var editBlock=eXo.core.DOMUtil.findFirstChildByClass(componentBlock,"div","EDITION-BLOCK");if(editBlock)editBlock.style.display="none";}
if(previewBlock)previewBlock.parentNode.removeChild(previewBlock);if(previewTD)previewTD.parentNode.removeChild(previewTD);previewBlock=previewTD=null;eXo.portal.isInDragging=false;eXo.portal.UIPortal.changeComposerSaveButton();dndEvent.dragObject.style.width="auto";};DragDrop.cancelCallback=function(dndEvent){if(Browser.browserType=="ie"&&Browser.findMouseYInClient(dndEvent.backupMouseEvent)<0){DragDrop.onDrop(dndEvent.backupMouseEvent);}};var clickObject=this;var componentBlock=DOMUtil.findAncestorByClass(clickObject,"UIComponentBlock");if(componentBlock!=null){var dragBlock=eXo.portal.UIPortal.findUIComponentOf(componentBlock);DragDrop.init(eXo.portal.PortalDragDrop.findDropableTargets(dragBlock),clickObject,dragBlock,e);}else{var dragBlock=DOMUtil.findAncestorByClass(clickObject,"DragObjectPortlet");if(dragBlock){DragDrop.init(eXo.portal.PortalDragDrop.findDropableTargets(dragBlock),clickObject,dragBlock,e);}else{DragDrop.init(eXo.portal.PortalDragDrop.findDropableTargets(dragBlock),clickObject,clickObject,e);}}};PortalDragDrop.prototype.doDropCallback=function(dndEvent){var srcElement=dndEvent.dragObject;var targetElement=dndEvent.foundTargetObject;if(!targetElement){if(!dndEvent.dragObject.isComponent){dndEvent.dragObject.parentNode.removeChild(dndEvent.dragObject);}
dndEvent.dragObject.style.width="auto";return;}
var newComponent=false;if(srcElement.isComponent&&(targetElement.foundIndex!=null)){if(eXo.portal.PortalDragDrop.layoutTypeElementNode!=null){eXo.portal.PortalDragDrop.divRowContainerAddChild(srcElement,targetElement,targetElement.foundIndex);}else{eXo.portal.PortalDragDrop.parentDragObject.style.width="auto";eXo.portal.PortalDragDrop.tableColumnContainerAddChild(srcElement,targetElement,targetElement.foundIndex);}}
if(!dndEvent.dragObject.isComponent){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(dragBlock){var DOMUtil=eXo.core.DOMUtil;var dropableTargets=new Array();var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");var uiPortal=DOMUtil.findFirstDescendantByClass(uiWorkingWorkspace,"div","UIPortal");var pagebody=document.getElementById("UIPageBody");var uiContainers=DOMUtil.findDescendantsByClass(uiWorkingWorkspace,"div","UIContainer");if(eXo.portal.portalMode&&pagebody){dropableTargets.push(uiPortal);}else{var uiPage=DOMUtil.findFirstDescendantByClass(uiWorkingWorkspace,"div","UIPage");if(uiPage)dropableTargets.push(uiPage);}
for(var i=0;i<uiContainers.length;i++){if(DOMUtil.hasAncestor(uiContainers[i],dragBlock))continue;if(DOMUtil.hasClass(uiContainers[i],"ProtectedContainer"))continue;dropableTargets.push(uiContainers[i]);}
return dropableTargets;};PortalDragDrop.prototype.scrollOnDrag=function(dndEvent){var workspaceHeight=document.getElementById("UIWorkingWorkspace").offsetHeight;var browserHeight=eXo.core.Browser.getBrowserHeight();if(workspaceHeight<=browserHeight)return;var mouseY=eXo.core.Browser.findMouseYInClient(dndEvent.backupMouseEvent);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){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{var dragObjectX=eXo.core.Browser.findPosX(dragObject);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.createPreview=function(layoutType){var previewBlock=document.createElement("div");previewBlock.className="DragAndDropPreview";previewBlock.id="DragAndDropPreview";return previewBlock;};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);}};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');tdInserted.appendChild(insertBlock);if(insertPosition>=0){trContainer.insertBefore(tdInserted,listComponent[insertPosition]);}else{trContainer.appendChild(tdInserted);}
insertBlock.style.width="auto";if(eXo.portal.PortalDragDrop.parentDragObject.nodeName.toLowerCase()=="td"){DOMUtil.removeElement(eXo.portal.PortalDragDrop.parentDragObject);}};eXo.portal.PortalDragDrop=new PortalDragDrop();function PortletResponse(responseDiv){var DOMUtil=eXo.core.DOMUtil;var div=eXo.core.DOMUtil.getChildrenByTagName(responseDiv,"div");this.portletId=div[0].innerHTML;this.portletData=div[1].innerHTML;this.blocksToUpdate=null;var blocks=DOMUtil.findChildrenByClass(div[1],"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;this.blocksToUpdate[i].scripts=eXo.core.DOMUtil.findDescendantsByTagName(div[1],"script");}}else{this.scripts=eXo.core.DOMUtil.findDescendantsByTagName(div[1],"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.isAsynchronize=function(){var isASync=false;var name="ajax_async";name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(instance.url);if(results!=null){isASync=(results[1]=="true")?true:false;}
return isASync;};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){instance.status=0;}
if(typeof(instance.onComplete)=="function")instance.onComplete(instance);if(instance.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(eXo.i18n.I18NMessage.getMessage("TargetBlockNotFound",new Array(blockToUpdate.blockId)));var newData=eXo.core.DOMUtil.findDescendantById(blockToUpdate.data,blockToUpdate.blockId);if(newData==null)alert(eXo.i18n.I18NMessage.getMessage("BlockUpdateNotFound",new Array(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.findFirstDescendantByClass(parentBlock,"div","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(eXo.i18n.I18NMessage.getMessage("SessionTimeout")))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){if(request.isAsynchronize())return;Browser=eXo.core.Browser;if(eXo.portal.AjaxRequest.maskLayer==null){eXo.portal.AjaxRequest.maskLayer=eXo.core.UIMaskLayer.createTransparentMask();}
instance.to=setTimeout(function(){if(eXo.portal.AjaxRequest.maskLayer!=null){eXo.core.UIMaskLayer.showAjaxLoading(eXo.portal.AjaxRequest.maskLayer);}},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();eXo.session.itvDestroy();if(eXo.session.canKeepState&&eXo.session.isOpen&&eXo.env.portal.accessMode=='private'){eXo.session.itvInit();}};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);eXo.session.itvDestroy();if(eXo.session.canKeepState&&eXo.session.isOpen&&eXo.env.portal.accessMode=='private'){eXo.session.itvInit();}
if(!async)return request.responseText;}
function ajaxRedirect(url){url=url.replace(/&amp;/g,"&");window.location.href=url;}
eXo.portal.AjaxRequest=AjaxRequest.prototype.constructor;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 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 UIComponent(node){if(!node)return null;this.node=node;this.type=node.className;var DOMUtil=eXo.core.DOMUtil;var componentBlock=DOMUtil.findFirstDescendantByClass(node,"div","UIComponentBlock");var children=DOMUtil.getChildrenByTagName(componentBlock,"div");for(var i=0;i<children.length;i++){if(DOMUtil.hasClass(children[i],"LAYOUT-BLOCK"))this.layout=children[i];else if(DOMUtil.hasClass(children[i],"VIEW-BLOCK"))this.view=children[i];else if(DOMUtil.hasClass(children[i],"EDITION-BLOCK"))this.control=children[i];}
this.component="";if(DOMUtil.hasClass(node,"UIPortal"))this.id=node.id.replace("UIPortal-","");else if(DOMUtil.hasClass(node,"UIPortlet"))this.id=node.id.replace("UIPortlet-","");else if(DOMUtil.hasClass(node,"UIContainer"))this.id=node.id.replace("UIContainer-","");else this.id=node.id;};UIComponent.prototype.getId=function(){return this.id;};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.blockOnMouseOver=function(event,portlet,isOver){var DOMUtil=eXo.core.DOMUtil;if(!eXo.portal.portalMode||eXo.portal.isInDragging)return;if(eXo.portal.portalMode<=2&&DOMUtil.hasClass(portlet,"UIContainer"))return;if(eXo.portal.portalMode>2&&eXo.portal.portalMode!=4&&DOMUtil.hasClass(portlet,"UIPortlet"))return;if(!event)event=window.event;event.cancelBubble=true;var component=DOMUtil.findFirstDescendantByClass(portlet,"div","UIComponentBlock");var children=DOMUtil.getChildrenByTagName(component,"div");var layoutBlock;var viewBlock;var editBlock;for(var i=0;i<children.length;i++){if(DOMUtil.hasClass(children[i],"LAYOUT-BLOCK"))layoutBlock=children[i];else if(DOMUtil.hasClass(children[i],"VIEW-BLOCK"))viewBlock=children[i];else if(DOMUtil.hasClass(children[i],"EDITION-BLOCK"))editBlock=children[i];}
if(!editBlock)return;if(isOver){var newLayer=DOMUtil.findFirstDescendantByClass(editBlock,"div","NewLayer");var height=0;var width=0;if(layoutBlock&&layoutBlock.style.display!="none"){height=layoutBlock.offsetHeight;width=layoutBlock.offsetWidth;}else if(viewBlock&&viewBlock.style.display!="none"){height=viewBlock.offsetHeight;width=viewBlock.offsetWidth;}
if(DOMUtil.hasClass(portlet,"UIPortlet")){newLayer.style.width=width+"px";newLayer.style.height=height+"px";}else{newLayer.parentNode.style.width=width+"px";var normalBlock=DOMUtil.findFirstChildByClass(portlet,"div","NormalContainerBlock");if(normalBlock)DOMUtil.replaceClass(normalBlock,"NormalContainerBlock","OverContainerBlock");}
newLayer.parentNode.style.top=-height+"px";editBlock.style.display="block";}else{editBlock.style.display="none";if(!DOMUtil.hasClass(portlet,"UIPortlet")){var normalBlock=DOMUtil.findFirstChildByClass(portlet,"div","OverContainerBlock");if(normalBlock)DOMUtil.replaceClass(normalBlock,"OverContainerBlock","NormalContainerBlock");}}
var controlPortlet=DOMUtil.findFirstDescendantByClass(editBlock,"div","CONTROL-PORTLET");if(controlPortlet){controlPortlet.style.display=eXo.portal.portalMode==4?"none":"block";}};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.getUIPageBody=function(){return new UIComponent(document.getElementById("UIPageBody"));};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||layoutBlock.style.display=='block')return;var viewBlock=uicomponent.getViewBlock();if(swapContent&&viewBlock){var contentNode=eXo.core.DOMUtil.findDescendantById(viewBlock,uicomponent.getId());if(contentNode!=null){layoutBlock.innerHTML="";layoutBlock.appendChild(contentNode);}}
try{layoutBlock.style.display="block";viewBlock.style.display="none";}catch(err){}};UIPortal.prototype.switchLayoutModeToViewMode=function(uicomponent,swapContent){var viewBlock=uicomponent.getViewBlock();if(!viewBlock||viewBlock.style.display=='block')return;var layoutBlock=uicomponent.getLayoutBlock();if(swapContent&&layoutBlock){var contentNode=eXo.core.DOMUtil.findDescendantById(layoutBlock,uicomponent.getId());if(contentNode!=null){viewBlock.innerHTML="";viewBlock.appendChild(contentNode);}}
try{viewBlock.style.display="block";layoutBlock.style.display="none";}catch(err){}};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();if(!controlBlock)return;var clickObject=eXo.core.DOMUtil.findFirstDescendantByClass(controlBlock,"div","DragControlArea");};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 uiWorkingWS=document.getElementById("UIWorkingWorkspace");var isRTL=eXo.core.I18n.isRT();var portal=this.getUIPortal();this.switchLayoutModeToViewMode(portal,true);this.showUIComponentControl(portal,false);var uiPageDesktop=document.getElementById("UIPageDesktop");var pageBody=this.getUIPageBody();if(!uiPageDesktop){this.switchLayoutModeToViewMode(pageBody,true);this.showUIComponentControl(pageBody,false);}
var container=this.getUIContainers();for(var i=0;i<container.length;i++){this.switchLayoutModeToViewMode(container[i],false);this.showUIComponentControl(container[i],eXo.portal.portalMode>2);}
var portlet=this.getUIPortlets();for(var i=0;i<portlet.length;i++){this.switchLayoutModeToViewMode(portlet[i],false);this.showUIComponentControl(portlet[i],true);var component=portlet[i].getUIComponentBlock();var mask=eXo.core.DOMUtil.findFirstDescendantByClass(component,"div","UIPortletMask");if(eXo.portal.portalMode&&mask&&!eXo.core.DOMUtil.hasAncestor(portlet[i].getElement(),pageBody.getElement())){mask.style.display="block";mask.style.height=component.offsetHeight+"px";mask.style.width=component.offsetWidth+"px";mask.style.top=-component.offsetHeight+"px";}else if(mask){mask.style.display="none";}}
if(!uiPageDesktop){if(container.length==0&&portlet.length==0){var pageIdElemt=document.getElementById("UIPage");var viewPage=eXo.core.DOMUtil.findAncestorByClass(pageIdElemt,"VIEW-PAGE");viewPage.style.paddingTop="50px";viewPage.style.paddingRight="0px";viewPage.style.paddingBottom="50px";viewPage.style.paddingLeft="0px";}
var pageBodyBlock=pageBody.getUIComponentBlock();var mask=eXo.core.DOMUtil.findFirstDescendantByClass(pageBodyBlock,"div","UIPageBodyMask");if(mask){mask.style.top=-pageBodyBlock.offsetHeight+"px";mask.style.height=pageBodyBlock.offsetHeight+"px";mask.style.width=pageBodyBlock.offsetWidth+"px";}}};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 pageBody=this.getUIPageBody();this.switchViewModeToLayoutMode(pageBody,false);this.showUIComponentControl(pageBody,this.component=='UIPageBody');var pageBodyBlock=pageBody.getUIComponentBlock();var mask=eXo.core.DOMUtil.findFirstDescendantByClass(pageBodyBlock,"div","UIPageBodyMask");if(mask)mask.style.display="none";var container=this.getUIContainers();for(var i=0;i<container.length;i++){this.switchViewModeToLayoutMode(container[i],false);this.showUIComponentControl(container[i],true);}
var portlet=this.getUIPortlets();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 DOMUtil=eXo.core.DOMUtil;var parent=element.parentNode;while(parent!=null){if(DOMUtil.hasClass(parent,'UIPortlet')||DOMUtil.hasClass(parent,'UIContainer')||DOMUtil.hasClass(parent,'UIPageBody')||DOMUtil.hasClass(parent,'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=this.previewTitle;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='';window.location=url+'&skin='+skin;};UIPortal.prototype.changeLanguage=function(url){var language='';if(eXo.webui.UIItemSelector.SelectedItem!=undefined){language=eXo.webui.UIItemSelector.SelectedItem.option;}
if(language==undefined)language='';window.location=url+'&language='+language;};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.removeComponent=function(componentId){var comp=document.getElementById(componentId);var viewPage=eXo.core.DOMUtil.findAncestorByClass(comp,"VIEW-PAGE");eXo.core.DOMUtil.removeElement(comp);if(viewPage&&eXo.portal.UIPortal.getUIContainers().length==0&&eXo.portal.UIPortal.getUIPortlets().length==0){viewPage.style.paddingTop="50px";viewPage.style.paddingRight="0px";viewPage.style.paddingBottom="50px";viewPage.style.paddingLeft="0px";}};UIPortal.prototype.changeComposerSaveButton=function(){if(eXo.portal.hasEditted==false){var uiWorkingWS=document.getElementById("UIWorkingWorkspace");var portalComposer=eXo.core.DOMUtil.findFirstDescendantByClass(uiWorkingWS,"div","UIPortalComposer");var saveButton=eXo.core.DOMUtil.findFirstDescendantByClass(portalComposer,"a","SaveButton");if(saveButton)eXo.core.DOMUtil.replaceClass(saveButton,"SaveButton","EdittedSaveButton");ajaxAsyncGetRequest(eXo.env.server.createPortalURL(portalComposer.id,"ChangeEdittedState",true));}};UIPortal.prototype.toggleComposer=function(clickedEle){var portalComposer=eXo.core.DOMUtil.findAncestorByClass(clickedEle,"UIPortalComposer");var middleBlock=eXo.core.DOMUtil.findFirstChildByClass(portalComposer,"div","MLPortalComposer");var bottomBlock=eXo.core.DOMUtil.findFirstChildByClass(portalComposer,"div","BLPortalComposer");var fakeBottom=eXo.core.DOMUtil.findFirstChildByClass(portalComposer,"div","Bottom");if(middleBlock&&middleBlock.style.display!="none"){middleBlock.style.display="none";bottomBlock.style.display="none";fakeBottom.style.display="block";eXo.core.DOMUtil.replaceClass(clickedEle,"ExpandIcon","CollapseIcon");}else{middleBlock.style.display="block";bottomBlock.style.display="block";fakeBottom.style.display="none";eXo.core.DOMUtil.replaceClass(clickedEle,"CollapseIcon","ExpandIcon");}
var requestStr=eXo.env.server.createPortalURL(portalComposer.id,"Toggle",true);ajaxAsyncGetRequest(requestStr);};UIPortal.prototype.collapseExpand=function(element){var subGroup=eXo.core.DOMUtil.findFirstChildByClass(element.parentNode,"div","ChildrenContainer");var className=element.className;if(!subGroup)return false;if(subGroup.style.display=="none"){if(className.indexOf("ExpandIcon")==0)element.className="CollapseIcon FloatLeft";subGroup.style.display="block";}else{if(className.indexOf("CollapseIcon")==0)element.className="ExpandIcon FloatLeft";subGroup.style.display="none";}
return true;};UIPortal.prototype.expandAll=function(element){if(this.isExpandAll==true)return true;return false;};eXo.portal.UIPortalComponent=UIComponent.prototype.constructor;eXo.portal.UIPortal=new UIPortal();eXo.portal.UIComponent=UIPortal.prototype.constructor;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");if(eXo.core.Browser.browserType!="ie"){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);}else{var newHTML="<div onclick=\""+childrenContainer.getAttribute("actionLink")+"\" class=\"ExpandIcon\">"+selectedElement.innerHTML+"</div>";parentNode.innerHTML=newHTML;}};UIPortalControl.prototype.onEnterPress=function(e){var e=window.event||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){uiPortalLoginFormAction.onclick();}
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;}};function VerticalScrollManager(){repeat=null;}
VerticalScrollManager.prototype.initScroll=function(clickedEle,isUp,step){var DOMUtil=eXo.core.DOMUtil;var verticalScroll=eXo.portal.VerticalScrollManager;var container=DOMUtil.findAncestorByClass(clickedEle,"ItemContainer");var middleCont=DOMUtil.findFirstDescendantByClass(container,"div","MiddleItemContainer");if(!middleCont.id)middleCont.id="IC"+new Date().getTime()+Math.random().toString().substring(2);verticalScroll.scrollComponent(middleCont.id,isUp,step);document.onmouseup=verticalScroll.cancelScroll;};VerticalScrollManager.prototype.scrollComponent=function(id,isUp,step){var verticalScroll=eXo.portal.VerticalScrollManager;var scrollComp=document.getElementById(id);if(isUp){scrollComp.scrollTop-=step;}else{scrollComp.scrollTop+=step;}
if(verticalScroll.repeat){verticalScroll.cancelScroll();}
verticalScroll.repeat=setTimeout("eXo.portal.VerticalScrollManager.scrollComponent('"+id+"',"+isUp+","+step+")",100);};VerticalScrollManager.prototype.cancelScroll=function(){clearTimeout(eXo.portal.VerticalScrollManager.repeat);eXo.portal.VerticalScrollManager.repeat=null;};eXo.portal.VerticalScrollManager=new VerticalScrollManager();eXo.portal.UIPortalControl=new UIPortalControl();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.isIE6()){container.style.width=item.offsetWidth+"px";}else{container.style.minWidth=item.offsetWidth+"px";}}}
var itemConts=DOMUtil.findDescendantsByClass(topContainer,"div",this.containerStyleClass);for(var i=0;i<itemConts.length;i++){var cont=itemConts[i];if(!cont.id)cont.id=DOMUtil.generateId("PortalNavigationContainer");cont.resized=false;var items=DOMUtil.findDescendantsByClass(cont,"div",this.tabStyleClass);if(items.length==0)cont.parentNode.removeChild(cont);for(var j=0;j<items.length;j++){items[j].onmouseover=eXo.portal.UIPortalNavigation.onMenuItemOver;items[j].onmouseout=eXo.portal.UIPortalNavigation.onMenuItemOut;}}};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){var DOMUtil=eXo.core.DOMUtil;if(eXo.core.Browser.browserType=="ie"){var navAncestor=DOMUtil.findAncestorByClass(tab,"UINavigationPortlet");var pageBody=document.getElementById("UIPageBody");if(pageBody){var uicomponents=DOMUtil.getChildrenByTagName(pageBody.parentNode,"div");for(var i=0;i<uicomponents.length;i++){var navPortlet=DOMUtil.findFirstDescendantByClass(uicomponents[i],"div","UINavigationPortlet");if(navPortlet&&(navAncestor!=navPortlet)){var tabsContainer=DOMUtil.findFirstDescendantByClass(navPortlet,"div","TabsContainer");tabsContainer.style.position="static";}}}}
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(300);}
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 offParent=item.offsetParent;var y=item.offsetHeight+item.offsetTop;var x=item.offsetLeft+2;if(eXo.core.I18n.isRT()){x=eXo.core.Browser.findPosX(offParent)+offParent.offsetWidth-eXo.core.Browser.findPosX(item)-item.offsetWidth;}
eXo.portal.UIPortalNavigation.superClass.setPosition(menuItemContainer,x,y,eXo.core.I18n.isRT());eXo.portal.UIPortalNavigation.superClass.show(menuItemContainer);menuItemContainer.style.width=menuItemContainer.offsetWidth-parseInt(DOMUtil.getStyle(menuItemContainer,"borderLeftWidth"))
-parseInt(DOMUtil.getStyle(menuItemContainer,"borderRightWidth"))+"px";var posXinBrowser=eXo.core.Browser.findPosX(menuItemContainer);if(eXo.core.I18n.isLT()){if(posXinBrowser+menuItemContainer.offsetWidth>=eXo.core.Browser.getBrowserWidth()){x+=(item.offsetWidth-menuItemContainer.offsetWidth);menuItemContainer.style.left=x+"px";}}else{if(posXinBrowser+item.offsetWidth<menuItemContainer.offsetWidth){x+=(item.offsetWidth-menuItemContainer.offsetWidth);menuItemContainer.style.right=x+"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();var DOMUtil=eXo.core.DOMUtil;if(eXo.core.Browser.browserType=="ie"){var pageBody=document.getElementById("UIPageBody");if(!pageBody)return;var uicomponents=DOMUtil.getChildrenByTagName(pageBody.parentNode,"div");for(var i=0;i<uicomponents.length;i++){var navPortlet=DOMUtil.findFirstDescendantByClass(uicomponents[i],"div","UINavigationPortlet");if(navPortlet){var tabsContainer=DOMUtil.findFirstDescendantByClass(navPortlet,"div","TabsContainer");tabsContainer.style.position="relative";}}}};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.show(menuItemContainer);var posRight=eXo.core.Browser.getBrowserWidth()-eXo.core.Browser.findPosX(menuItem)-menuItem.offsetWidth;var rootX=(eXo.core.I18n.isLT()?eXo.core.Browser.findPosX(menuItem):posRight);if(x+menuItemContainer.offsetWidth+rootX>eXo.core.Browser.getBrowserWidth()){x-=(menuItemContainer.offsetWidth+menuItem.offsetWidth);}
this.superClass.setPosition(menuItemContainer,x,y,eXo.core.I18n.isRT());};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 UIPortalNavigation2(){this.currentOpenedMenu=null;this.scrollMgr=null;this.scrollManagerLoaded=false;};UIPortalNavigation2.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);};UIPortalNavigation2.prototype.onLoad=function(){var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");var uiNavPortlets=eXo.core.DOMUtil.findDescendantsByClass(uiWorkingWorkspace,"div","UIPortalNavigationPortlet");if(uiNavPortlets.length){var mainContainer=eXo.core.DOMUtil.findFirstDescendantByClass(uiNavPortlets[0],"div","TabsContainer");eXo.portal.UIPortalNavigation2.init(uiNavPortlets[0],mainContainer,0,0);for(var i=1;i<uiNavPortlets.length;++i){uiNavPortlets[i].style.display="none";}}};UIPortalNavigation2.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.UIPortalNavigation2.setTabStyleOnMouseOver;item.onmouseout=eXo.portal.UIPortalNavigation2.setTabStyleOnMouseOut;if(!item.getAttribute('hidesubmenu')){item.onmousemove=eXo.portal.UIPortalNavigation2.tabOnMouseMove;}
item.style.width=item.offsetWidth+"px";var container=DOMUtil.findFirstDescendantByClass(item,"div",this.containerStyleClass);if(container){if(eXo.core.Browser.isIE6()){container.style.width=item.offsetWidth+"px";}else{container.style.minWidth=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.UIPortalNavigation2.onMenuItemOver;menuItem.onmouseout=eXo.portal.UIPortalNavigation2.onMenuItemOut;var cont=DOMUtil.findAncestorByClass(menuItem,this.containerStyleClass);if(!cont.id)cont.id="PortalNavigationContainer-"+i+Math.random();cont.resized=false;}};UIPortalNavigation2.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.UIPortalNavigation2.currentOpenedMenu){eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,false);}}}
UIPortalNavigation2.prototype.setTabStyleOnMouseOver=function(e){var tab=this;if(eXo.portal.UIPortalNavigation2.previousMenuItem!=tab){eXo.portal.UIPortalNavigation2.hideMenu();}
eXo.portal.UIPortalNavigation2.setTabStyleOnMouseOut(e,tab);eXo.portal.UIPortalNavigation2.previousMenuItem=tab;if(!eXo.portal.UIPortalNavigation2.menuVisible){var menuItemContainer=eXo.core.DOMUtil.findFirstDescendantByClass(tab,"div",eXo.portal.UIPortalNavigation2.containerStyleClass);var hideSubmenu=tab.getAttribute('hideSubmenu');if(menuItemContainer&&!hideSubmenu){eXo.portal.UIPortalNavigation2.toggleSubMenu(e,tab,menuItemContainer);}}
eXo.portal.UIPortalNavigation2.menuVisible=true;};UIPortalNavigation2.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.UIPortalNavigation2.currentOpenedMenu){eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,false);}}
eXo.portal.UIPortalNavigation2.hideMenuTimeout(500);}
UIPortalNavigation2.prototype.tabOnMouseMove=function(){eXo.portal.UIPortalNavigation2.cancelHideMenuContainer();};UIPortalNavigation2.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.UIPortalNavigation2.currentOpenedMenu)eXo.portal.UIPortalNavigation2.hideMenu();eXo.portal.UIPortalNavigation2.superClass.pushVisibleContainer(menuItemContainer.id);var offParent=item.offsetParent;var y=item.offsetHeight+item.offsetTop;var x=item.offsetLeft+2;if(eXo.core.I18n.isRT()){x=eXo.core.Browser.findPosX(offParent)+offParent.offsetWidth-eXo.core.Browser.findPosX(item)-item.offsetWidth;}
eXo.portal.UIPortalNavigation2.superClass.setPosition(menuItemContainer,x,y,eXo.core.I18n.isRT());eXo.portal.UIPortalNavigation2.superClass.show(menuItemContainer);eXo.portal.UIPortalNavigation2.currentOpenedMenu=menuItemContainer.id;var uiPortalApplication=document.getElementById("UIPortalApplication");uiPortalApplication.onclick=eXo.portal.UIPortalNavigation2.hideMenu;}else{eXo.portal.UIPortalNavigation2.hideMenuContainer();}}};UIPortalNavigation2.prototype.cancelHideMenuContainer=function(){if(this.hideMenuTimeoutId){window.clearTimeout(this.hideMenuTimeoutId);}};UIPortalNavigation2.prototype.closeMenuTimeout=function(){eXo.portal.UIPortalNavigation2.hideMenuTimeout(200);};UIPortalNavigation2.prototype.hideMenuTimeout=function(time){this.cancelHideMenuContainer();if(!time||time<=0){time=200;}
this.hideMenuTimeoutId=window.setTimeout('eXo.portal.UIPortalNavigation2.hideMenu() ;',time);};UIPortalNavigation2.prototype.hideMenuContainer=function(){var menuItemContainer=document.getElementById(eXo.portal.UIPortalNavigation2.currentOpenedMenu);if(menuItemContainer){eXo.portal.UIPortalNavigation2.superClass.pushHiddenContainer(menuItemContainer.id);eXo.portal.UIPortalNavigation2.superClass.popVisibleContainer();eXo.portal.UIPortalNavigation2.superClass.setCloseTimeout();eXo.portal.UIPortalNavigation2.superClass.hide(menuItemContainer);eXo.portal.UIPortalNavigation2.currentOpenedMenu=null;}
this.previousMenuItem=false;eXo.portal.UIPortalNavigation2.menuVisible=false;};UIPortalNavigation2.prototype.hideMenu=function(){if(eXo.portal.UIPortalNavigation2.currentOpenedMenu){var currentItemContainer=document.getElementById(eXo.portal.UIPortalNavigation2.currentOpenedMenu);var tab=eXo.core.DOMUtil.findAncestorByClass(currentItemContainer,"UITab");eXo.webui.UIHorizontalTabs.changeTabNavigationStyle(tab,false);}
eXo.portal.UIPortalNavigation2.hideMenuContainer();};UIPortalNavigation2.prototype.onMenuItemOver=function(e){var menuItem=this;var DOMUtil=eXo.core.DOMUtil;var subContainer=DOMUtil.findFirstDescendantByClass(menuItem,"div",eXo.portal.UIPortalNavigation2.containerStyleClass);if(subContainer){eXo.portal.UIPortalNavigation2.superClass.pushVisibleContainer(subContainer.id);eXo.portal.UIPortalNavigation2.showMenuItemContainer(menuItem,subContainer);if(!subContainer.firstTime){subContainer.style.width=subContainer.offsetWidth+2+"px";subContainer.firstTime=true;}}
eXo.portal.UIPortalNavigation2.cancelHideMenuContainer();};UIPortalNavigation2.prototype.showMenuItemContainer=function(menuItem,menuItemContainer){var x=menuItem.offsetWidth;var y=menuItem.offsetTop;this.superClass.show(menuItemContainer);var posRight=eXo.core.Browser.getBrowserWidth()-eXo.core.Browser.findPosX(menuItem)-menuItem.offsetWidth;var rootX=(eXo.core.I18n.isLT()?eXo.core.Browser.findPosX(menuItem):posRight);if(x+menuItemContainer.offsetWidth+rootX>eXo.core.Browser.getBrowserWidth()){x-=(menuItemContainer.offsetWidth+menuItem.offsetWidth);}
this.superClass.setPosition(menuItemContainer,x,y,eXo.core.I18n.isRT());};UIPortalNavigation2.prototype.onMenuItemOut=function(e){var menuItem=this;var subContainer=eXo.core.DOMUtil.findFirstDescendantByClass(menuItem,"div",eXo.portal.UIPortalNavigation2.containerStyleClass);if(subContainer){eXo.portal.UIPortalNavigation2.superClass.pushHiddenContainer(subContainer.id);eXo.portal.UIPortalNavigation2.superClass.popVisibleContainer();eXo.portal.UIPortalNavigation2.superClass.setCloseTimeout(300);}};UIPortalNavigation2.prototype.loadScroll=function(e){var uiNav=eXo.portal.UIPortalNavigation2;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();}};UIPortalNavigation2.prototype.initScroll=function(e){if(!eXo.portal.UIPortalNavigation2.scrollManagerLoaded)eXo.portal.UIPortalNavigation2.loadScroll();var scrollMgr=eXo.portal.UIPortalNavigation2.scrollMgr;scrollMgr.init();scrollMgr.checkAvailableSpace();scrollMgr.renderElements();};UIPortalNavigation2.prototype.scrollCallback=function(){};eXo.portal.UIPortalNavigation2=new UIPortalNavigation2();function UIWorkspace(id){this.id=id;this.isFirstTime=true;};eXo.portal.UIWorkspace=new UIWorkspace("UIWorkspace");if(eXo.portal.UIWorkingWorkspace==undefined){eXo.portal.UIWorkingWorkspace=new UIWorkspace("UIWorkingWorkspace");};eXo.portal.UIWorkingWorkspace.onResize=function(){var uiWorkspace=document.getElementById(eXo.portal.UIWorkingWorkspace.id);if(eXo.core.Browser.isIE6()){var tabs=eXo.core.DOMUtil.findFirstDescendantByClass(uiWorkspace,"div","UIHorizontalTabs");if(tabs)tabs.style.left=0;}};function UIColorPicker(){}
UIColorPicker.prototype.show=function(obj){document.onmousedown=new Function("eXo.webui.UIColorPicker.hide()");this.tableColor=eXo.core.DOMUtil.findNextElementByTagName(obj,"div");this.title=eXo.core.DOMUtil.findFirstDescendantByClass(obj,"span","DisplayValue");this.input=eXo.core.DOMUtil.findFirstDescendantByClass(obj.parentNode,"input","UIColorPickerValue");this.showHide();this.getSelectedValue();}
UIColorPicker.prototype.setColor=function(color){if(eXo.core.DOMUtil.hasClass(this.title,color)){this.hide();return;}
var className="DisplayValue "+color;this.title.className=className;this.input.value=color;this.hide();};UIColorPicker.prototype.clearSelectedValue=function(){var selectedValue=this.input.value;var colorCell=eXo.core.DOMUtil.findDescendantsByTagName(this.tableColor,"a");var len=colorCell.length;for(var i=0;i<len;i++){if(eXo.core.DOMUtil.hasClass(colorCell[i],"SelectedColorCell")){colorCell[i].className=colorCell[i].className.replace("SelectedColorCell","");break;}}};UIColorPicker.prototype.getSelectedValue=function(){var selectedValue=this.input.value;var colorCell=eXo.core.DOMUtil.findDescendantsByTagName(this.tableColor,"a");var len=colorCell.length;this.clearSelectedValue();for(var i=0;i<len;i++){if(eXo.core.DOMUtil.hasClass(colorCell[i],selectedValue)){eXo.core.DOMUtil.addClass(colorCell[i],"SelectedColorCell");break;}}};UIColorPicker.prototype.hide=function(){if(eXo.webui.UIColorPicker.tableColor){eXo.webui.UIColorPicker.tableColor.style.display="none";eXo.webui.UIColorPicker.tableColor=null;eXo.webui.UIColorPicker.title=null;eXo.webui.UIColorPicker.input=null;document.onmousedown=null;}};UIColorPicker.prototype.showHide=function(){var obj=this.tableColor;if(obj.style.display!="block"){obj.style.display="block";}else{obj.style.display="none";}};eXo.webui.UIColorPicker=new UIColorPicker();function UICombobox(){}
UICombobox.prototype.init=function(textbox){if(typeof(textbox)=="string")textbox=document.getElementById(textbox);textbox=eXo.core.DOMUtil.findNextElementByTagName(textbox,"input");var UICombobox=eXo.webui.UICombobox;var onfocus=textbox.getAttribute("onfocus");var onclick=textbox.getAttribute("onclick");if(!onfocus)textbox.onfocus=UICombobox.show;if(!onclick)textbox.onclick=UICombobox.show;};UICombobox.prototype.show=function(evt){var uiCombo=eXo.webui.UICombobox;uiCombo.items=eXo.core.DOMUtil.findDescendantsByTagName(this.parentNode,"a");if(uiCombo.list)uiCombo.list.style.display="none";uiCombo.list=eXo.core.DOMUtil.findFirstDescendantByClass(this.parentNode,"div","UIComboboxContainer");uiCombo.list.parentNode.style.position="absolute";uiCombo.fixForIE6(this);uiCombo.list.style.display="block";uiCombo.list.style.top=this.offsetHeight+"px";uiCombo.list.style.width=this.offsetWidth+"px";uiCombo.setSelectedItem(this);uiCombo.list.onmousedown=eXo.core.EventManager.cancelEvent;document.onmousedown=uiCombo.hide;};UICombobox.prototype.getSelectedItem=function(textbox){var val=textbox.value;var data=eval(textbox.getAttribute("options"));var len=data.length;for(var i=0;i<len;i++){if(val==data[i])return i;}
return false;};UICombobox.prototype.setSelectedItem=function(textbox){if(this.lastSelectedItem)eXo.core.DOMUtil.replaceClass(this.lastSelectedItem,"UIComboboxSelectedItem","");var selectedIndex=parseInt(this.getSelectedItem(textbox));if(selectedIndex>=0){eXo.core.DOMUtil.addClass(this.items[selectedIndex],"UIComboboxSelectedItem");this.lastSelectedItem=this.items[selectedIndex];var y=eXo.core.Browser.findPosYInContainer(this.lastSelectedItem,this.list);this.list.firstChild.scrollTop=y;var hidden=eXo.core.DOMUtil.findPreviousElementByTagName(textbox,"input");hidden.value=this.items[selectedIndex].getAttribute("value");}};UICombobox.prototype.fixForIE6=function(obj){if(!eXo.core.Browser.isIE6())return;if(eXo.core.DOMUtil.getChildrenByTagName(this.list,"iframe").length>0)return;var iframe=document.createElement("iframe");iframe.frameBorder=0;iframe.style.width=obj.offsetWidth+"px";this.list.appendChild(iframe);};UICombobox.prototype.cancelBubbe=function(evt){var _e=window.event||evt;_e.cancelBubble=true;};UICombobox.prototype.complete=function(obj,evt){if(evt.keyCode==16){this.setSelectedItem(obj);return;}
if(evt.keyCode==13){this.setSelectedItem(obj);this.hide();return;}
var sVal=obj.value.toLowerCase();if(evt.keyCode==8)sVal=sVal.substring(0,sVal.length-1)
if(sVal.length<1)return;var data=eval(obj.getAttribute("options").trim());var len=data.length;var tmp=null;for(var i=0;i<data.length;i++){tmp=data[i].trim();var idx=tmp.toLowerCase().indexOf(sVal,0);if(idx==0&&tmp.length>sVal.length){obj.value=data[i];if(obj.createTextRange){hRange=obj.createTextRange();hRange.findText(data[i].substr(sVal.length));hRange.select();}
else{obj.setSelectionRange(sVal.length,tmp.length);}
break;}}
this.setSelectedItem(obj);};UICombobox.prototype.hide=function(){eXo.webui.UICombobox.list.style.display="none";document.onmousedown=null;};UICombobox.prototype.getValue=function(obj){var UICombobox=eXo.webui.UICombobox;var val=obj.getAttribute("value");var hiddenField=eXo.core.DOMUtil.findNextElementByTagName(UICombobox.list.parentNode,"input");hiddenField.value=val;var text=eXo.core.DOMUtil.findNextElementByTagName(hiddenField,"input");text.value=eXo.core.DOMUtil.findFirstDescendantByClass(obj,"div","UIComboboxLabel").innerHTML;UICombobox.list.style.display="none";};eXo.webui.UICombobox=new UICombobox();function EventManager(){}
EventManager.prototype.cancelBubble=function(evt){if(eXo.core.Browser.browserType=='ie')
window.event.cancelBubble=true;else
evt.stopPropagation();};EventManager.prototype.cancelEvent=function(evt){eXo.core.EventManager.cancelBubble(evt);if(eXo.core.Browser.browserType=='ie')
window.event.returnValue=true;else
evt.preventDefault();};eXo.core.EventManager=new EventManager();function UIVirtualList(){}
UIVirtualList.prototype.init=function(componentId){var uiVirtualList=document.getElementById(componentId);if(uiVirtualList==null)return;uiVirtualList.style.height="300px";var children=eXo.core.DOMUtil.getChildrenByTagName(uiVirtualList,"div");var childrenHeight=0;for(var i=0;i<children.length;i++){childrenHeight+=children[i].offsetHeight;}
if(!uiVirtualList.isFinished&&childrenHeight<=uiVirtualList.offsetHeight){uiVirtualList.onscroll();}else{uiVirtualList.isInitiated=true;uiVirtualList.scrollTop=0;}}
UIVirtualList.prototype.getFeedBox=function(componentId){var DOMUtil=eXo.core.DOMUtil;var uiVirtualList=document.getElementById(componentId);var feedBox=DOMUtil.findFirstDescendantByClass(uiVirtualList,"div","FeedBox");if(feedBox==null){feedBox=DOMUtil.findFirstDescendantByClass(uiVirtualList,"tbody","FeedBox");}
return feedBox;}
UIVirtualList.prototype.scrollMove=function(uiVirtualList,url){if(uiVirtualList.isFinished||uiVirtualList.isLocked)return;var DOMUtil=eXo.core.DOMUtil;var componentHeight=uiVirtualList.offsetHeight;var scrollPosition=uiVirtualList.scrollTop;var scrollerHeight=uiVirtualList.scrollHeight;var scrollable_gap=scrollerHeight-(scrollPosition+componentHeight);if(scrollable_gap<=1){var feedBox=this.getFeedBox(uiVirtualList.id);var appendHTML=feedBox.innerHTML;uiVirtualList.storeHTML=appendHTML;uiVirtualList.isLocked=true;ajaxGet(url);}}
UIVirtualList.prototype.updateList=function(componentId){var DOMUtil=eXo.core.DOMUtil;var uiVirtualList=document.getElementById(componentId);if(uiVirtualList==null)return;var feedBox=this.getFeedBox(uiVirtualList.id);var loadedContent=uiVirtualList.storeHTML;if(eXo.core.Browser.browserType!="ie"){feedBox.innerHTML=loadedContent+feedBox.innerHTML;}else{var index=uiVirtualList.innerHTML.indexOf(feedBox.className);index=uiVirtualList.innerHTML.indexOf(">",index)+1;var firstSec=uiVirtualList.innerHTML.substring(0,index);var secondSec=uiVirtualList.innerHTML.substring(index);uiVirtualList.innerHTML=firstSec+loadedContent+secondSec;}
uiVirtualList.isLocked=false;if(!uiVirtualList.isFinished&&!uiVirtualList.isInitiated){this.init(componentId);}}
UIVirtualList.prototype.loadFinished=function(componentId){var uiVirtualList=document.getElementById(componentId);if(uiVirtualList==null)return;uiVirtualList.isFinished=true;}
eXo.webui.UIVirtualList=new UIVirtualList();function UIDashboard(){var currCol=null;var targetObj=null;UIDashboard.prototype.init=function(dragItem,dragObj){var DOMUtil=eXo.core.DOMUtil;eXo.core.DragDrop2.init(dragItem,dragObj);dragObj.onDragStart=function(x,y,lastMouseX,lastMouseY,e){var uiDashboard=eXo.webui.UIDashboard;var portletFragment=DOMUtil.findAncestorByClass(dragObj,"PORTLET-FRAGMENT");if(!portletFragment)return;var uiWorkingWS=document.getElementById("UIWorkingWorkspace");var gadgetContainer=DOMUtil.findFirstDescendantByClass(portletFragment,"div","GadgetContainer");var ggwidth=dragObj.offsetWidth;var ggheight=dragObj.offsetHeight;var mx=eXo.webui.UIDashboardUtil.findMouseRelativeX(uiWorkingWS,e);var ox=eXo.webui.UIDashboardUtil.findMouseRelativeX(dragObj,e);var x=mx-ox;var my=eXo.webui.UIDashboardUtil.findMouseRelativeY(uiWorkingWS,e);var oy=eXo.webui.UIDashboardUtil.findMouseRelativeY(dragObj,e);var y=my-oy;var temp=dragObj;while(temp.parentNode&&DOMUtil.hasDescendant(portletFragment,temp)){if(temp.scrollLeft>0)
x-=temp.scrollLeft;if(temp.scrollTop>0)
y-=temp.scrollTop;temp=temp.parentNode;}
var uiTarget=null;if(!DOMUtil.hasClass(dragObj,"SelectItem")){uiTarget=uiDashboard.createTarget(ggwidth,0);dragObj.parentNode.insertBefore(uiTarget,dragObj.nextSibling);currCol=eXo.webui.UIDashboardUtil.findColIndexInDashboard(dragObj);}else{var dragCopyObj=dragObj.cloneNode(true);DOMUtil.addClass(dragCopyObj,"CopyObj");dragObj.parentNode.insertBefore(dragCopyObj,dragObj);targetObj=null;}
dragObj.style.width=ggwidth+"px";var uiGadgets=DOMUtil.findDescendantsByClass(gadgetContainer,"div","UIGadget");for(var i=0;i<uiGadgets.length;i++){var uiMask=DOMUtil.findFirstDescendantByClass(uiGadgets[i],"div","UIMask");if(uiMask!=null){var gadgetApp=DOMUtil.findFirstDescendantByClass(uiGadgets[i],"div","GadgetApplication");uiMask.style.marginTop=-gadgetApp.offsetHeight+"px";uiMask.style.height=gadgetApp.offsetHeight+"px";uiMask.style.width=gadgetApp.offsetWidth+"px";uiMask.style.display="block";uiMask.style.backgroundColor="white";eXo.core.Browser.setOpacity(uiMask,3);}}
if(!DOMUtil.hasClass(dragObj,"Dragging"))
DOMUtil.addClass(dragObj,"Dragging");dragObj.style.position="absolute";eXo.webui.UIDashboardUtil.setPositionInContainer(uiWorkingWS,dragObj,x,y);if(uiTarget!=null){uiTarget.style.height=ggheight+"px";targetObj=uiTarget;}}
dragObj.onDrag=function(nx,ny,ex,ey,e){var uiTarget=targetObj;var portletFragment=DOMUtil.findAncestorByClass(dragObj,"PORTLET-FRAGMENT");if(!portletFragment)return;var dashboardCont=DOMUtil.findFirstDescendantByClass(portletFragment,"div","GadgetContainer");var cols=null;eXo.webui.UIDashboard.scrollOnDrag(dragObj);if(eXo.webui.UIDashboardUtil.isIn(ex,ey,dashboardCont)){if(!uiTarget){uiTarget=eXo.webui.UIDashboard.createTargetOfAnObject(dragObj);targetObj=uiTarget;}
var uiCol=currCol;if(!uiCol){if(!cols)cols=DOMUtil.findDescendantsByClass(dashboardCont,"div","UIColumn");for(var i=0;i<cols.length;i++){var uiColLeft=eXo.webui.UIDashboardUtil.findPosX(cols[i])-dashboardCont.scrollLeft;if(uiColLeft<ex&&ex<uiColLeft+cols[i].offsetWidth){currCol=uiCol=cols[i];break;}}}
if(!uiCol)return;var uiColLeft=eXo.webui.UIDashboardUtil.findPosX(uiCol)-dashboardCont.scrollLeft;if(uiColLeft<ex&&ex<uiColLeft+uiCol.offsetWidth){var gadgets=DOMUtil.findDescendantsByClass(uiCol,"div","UIGadget");for(var i=0;i<gadgets.length;i++){if(dragObj.id==gadgets[i].id){gadgets.splice(i,1);break;}}
if(gadgets.length==0){uiCol.appendChild(uiTarget);return;}
for(var i=0;i<gadgets.length;i++){var oy=eXo.webui.UIDashboardUtil.findPosY(gadgets[i])+(gadgets[i].offsetHeight/3)-dashboardCont.scrollTop;if(ey<=oy){uiCol.insertBefore(uiTarget,gadgets[i]);break;}
if(i==gadgets.length-1&&ey>oy)uiCol.appendChild(uiTarget);}}else{if(cols==null)cols=DOMUtil.findDescendantsByClass(dashboardCont,"div","UIColumn");for(var i=0;i<cols.length;i++){var uiColLeft=eXo.webui.UIDashboardUtil.findPosX(cols[i])-dashboardCont.scrollLeft;if(uiColLeft<ex&&ex<uiColLeft+cols[i].offsetWidth){currCol=cols[i];break;}}}}else{if(uiTarget!=null&&DOMUtil.hasClass(dragObj,"SelectItem")){uiTarget.parentNode.removeChild(uiTarget);targetObj=uiTarget=null;}}}
dragObj.onDragEnd=function(x,y,clientX,clientY){var uiDashboardUtil=eXo.webui.UIDashboardUtil;var portletFragment=DOMUtil.findAncestorByClass(dragObj,"PORTLET-FRAGMENT");if(!portletFragment)return;var masks=DOMUtil.findDescendantsByClass(portletFragment,"div","UIMask");for(var i=0;i<masks.length;i++){eXo.core.Browser.setOpacity(masks[i],100);masks[i].style.display="none";}
var uiTarget=targetObj;if(uiTarget&&!uiTarget.parentNode){uiTarget=null;}
dragObj.style.position="static";DOMUtil.removeClass(dragObj,"Dragging");var dragCopyObj=DOMUtil.findFirstDescendantByClass(portletFragment,"div","CopyObj");if(dragCopyObj){dragCopyObj.parentNode.replaceChild(dragObj,dragCopyObj);dragObj.style.width="auto";}
if(uiTarget){var col=uiDashboardUtil.findColIndexInDashboard(uiTarget);var row=uiDashboardUtil.findRowIndexInDashboard(uiTarget);var compId=portletFragment.parentNode.id;if(DOMUtil.hasClass(dragObj,"SelectItem")){var params=[{name:"colIndex",value:col},{name:"rowIndex",value:row},{name:"objectId",value:dragObj.id}];var url=uiDashboardUtil.createRequest(compId,'AddNewGadget',params);ajaxGet(url);}else{if(uiDashboardUtil.findColIndexInDashboard(dragObj)==col&&uiDashboardUtil.findRowIndexInDashboard(dragObj)==(row-1)){uiTarget.parentNode.removeChild(uiTarget);}else{uiTarget.parentNode.replaceChild(dragObj,uiTarget);row=uiDashboardUtil.findRowIndexInDashboard(dragObj);var params=[{name:"colIndex",value:col},{name:"rowIndex",value:row},{name:"objectId",value:dragObj.id}];var url=uiDashboardUtil.createRequest(compId,'MoveGadget',params);ajaxAsyncGetRequest(url);}}}
uiTarget=DOMUtil.findFirstDescendantByClass(portletFragment,"div","UITarget");while(uiTarget){DOMUtil.removeElement(uiTarget);uiTarget=eXo.core.DOMUtil.findFirstDescendantByClass(portletFragment,"div","UITarget");}
targetObj=currCol=null;}
dragObj.onCancel=function(e){if(eXo.core.Browser.browserType=="ie"&&eXo.core.Browser.findMouseYInClient()<0){eXo.core.DragDrop2.end(e);}}};UIDashboard.prototype.onLoad=function(windowId,canEdit){var portletWindow=document.getElementById(windowId);if(!portletWindow)return;var DOMUtil=eXo.core.DOMUtil;var uiDashboard=DOMUtil.findFirstDescendantByClass(portletWindow,"div","UIDashboard");var portletFragment=DOMUtil.findAncestorByClass(uiDashboard,"PORTLET-FRAGMENT");var uiContainer=DOMUtil.findFirstDescendantByClass(uiDashboard,"div","UIDashboardContainer");if(!uiContainer)return;var uiWindow=DOMUtil.findAncestorByClass(portletWindow,"UIWindow");if(uiWindow){if(!uiWindow.resizeCallback)uiWindow.resizeCallback=new eXo.core.HashMap();uiWindow.resizeCallback.put(DOMUtil.generateId(windowId),eXo.webui.UIDashboard.initHeight);}
var gadgetContainer=DOMUtil.findFirstChildByClass(uiContainer,"div","GadgetContainer");uiDashboard.style.overflow="hidden";portletFragment.style.overflow="hidden";if(eXo.core.Browser.isIE6())gadgetContainer.style.width="99.5%";var selectPopup=DOMUtil.findPreviousElementByTagName(uiContainer,"div");var closeButton=DOMUtil.findFirstDescendantByClass(selectPopup,"div","CloseButton");closeButton.onclick=eXo.webui.UIDashboard.showHideSelectContainer;var colsContainer=DOMUtil.findFirstChildByClass(gadgetContainer,"div","UIColumns");var columns=DOMUtil.findChildrenByClass(colsContainer,"div","UIColumn");var colsSize=0;for(var i=0;i<columns.length;i++){if(columns[i].style.display!="none")colsSize++;}
colsContainer.style.width="100%";eXo.webui.UIDashboard.initHeight(windowId);setTimeout("eXo.webui.UIDashboard.initDragDrop('"+windowId+"',"+canEdit+");",300);};UIDashboard.prototype.initDragDrop=function(windowId,canEdit){var DOMUtil=eXo.core.DOMUtil;var portletWindow=document.getElementById(windowId);var gadgetControls=DOMUtil.findDescendantsByClass(portletWindow,"div","GadgetControl");for(var j=0;j<gadgetControls.length;j++){var uiGadget=DOMUtil.findAncestorByClass(gadgetControls[j],"UIGadget");var iframe=DOMUtil.findFirstDescendantByClass(uiGadget,"iframe","gadgets-gadget");if(iframe){iframe.style.width="99.9%";}
var minimizeButton=DOMUtil.findFirstDescendantByClass(gadgetControls[j],"div","MinimizeAction");if(canEdit){eXo.webui.UIDashboard.init(gadgetControls[j],uiGadget);if(minimizeButton)minimizeButton.style.display="block";uiGadget.minimizeCallback=eXo.webui.UIDashboard.initHeight;}else{if(minimizeButton){minimizeButton.style.display="none";var controlBar=minimizeButton.parentNode;var closeButton=DOMUtil.findFirstChildByClass(controlBar,"div","CloseGadget");var editButton=DOMUtil.findFirstChildByClass(controlBar,"div","EditGadget");closeButton.style.display="none";editButton.style.display="none";}}}};UIDashboard.prototype.initHeight=function(windowId){var DOMUtil=eXo.core.DOMUtil;var portletWindow,uiWindow;if(typeof(windowId)!="string"){uiWindow=eXo.desktop.UIWindow.portletWindow;portletWindow=document.getElementById(uiWindow.id.replace(/^UIWindow-/,""));}else{portletWindow=document.getElementById(windowId);uiWindow=DOMUtil.findAncestorByClass("UIWindow");}
var uiDashboard=DOMUtil.findFirstDescendantByClass(portletWindow,"div","UIDashboard");var uiSelect=DOMUtil.findFirstDescendantByClass(uiDashboard,"div","UIDashboardSelectContainer");if(uiSelect&&document.getElementById("UIPageDesktop")){var itemCont=DOMUtil.findFirstChildByClass(uiSelect,"div","DashboardItemContainer");var middleItemCont=DOMUtil.findFirstDescendantByClass(uiSelect,"div","MiddleItemContainer");var topItemCont=DOMUtil.findNextElementByTagName(middleItemCont,"div");var bottomItemCont=DOMUtil.findPreviousElementByTagName(middleItemCont,"div");var uiContainer=DOMUtil.findFirstDescendantByClass(uiDashboard,"div","UIDashboardContainer");var minusHeight=0;var minusHeightEle=DOMUtil.findPreviousElementByTagName(middleItemCont.parentNode,"div");while(minusHeightEle){minusHeight+=minusHeightEle.offsetHeight;minusHeightEle=DOMUtil.findPreviousElementByTagName(minusHeightEle,"div");}
minusHeightEle=DOMUtil.findPreviousElementByTagName(itemCont,"div");while(minusHeightEle){minusHeight+=minusHeightEle.offsetHeight;minusHeightEle=DOMUtil.findPreviousElementByTagName(minusHeightEle,"div");}
minusHeightEle=null;var windowHeight=portletWindow.offsetHeight;if(uiWindow&&uiWindow.style.display=="none"){windowHeight=parseInt(DOMUtil.getStyle(portletFragment,"height"));}
var middleItemContHeight=windowHeight-minusHeight
-parseInt(DOMUtil.getStyle(itemCont,"paddingTop"))
-parseInt(DOMUtil.getStyle(itemCont,"paddingBottom"))
-5;if(middleItemContHeight<0){middleItemContHeight=0;}
middleItemCont.style.height=middleItemContHeight+"px";if(middleItemCont.offsetHeight>0){if(middleItemCont.scrollHeight>middleItemCont.offsetHeight){topItemCont.style.display="block";bottomItemCont.style.display="block";middleItemCont.style.height=middleItemCont.offsetHeight-topItemCont.offsetHeight-bottomItemCont.offsetHeight+"px";}else{topItemCont.style.display="none";bottomItemCont.style.display="none";middleItemCont.scrollTop=0;}}}};UIDashboard.prototype.initPopup=function(popup){if(typeof(popup)=="string")popup=document.getElementById(popup);if(!popup||popup.style.display=="none")return;var uiDashboard=eXo.core.DOMUtil.findAncestorByClass(popup,"UIDashboard");var deltaY=Math.ceil((uiDashboard.offsetHeight-popup.offsetHeight)/2);popup.style.top=eXo.core.Browser.findPosY(uiDashboard)+deltaY+"px";};UIDashboard.prototype.createTarget=function(width,height){var uiTarget=document.createElement("div");uiTarget.id="UITarget";uiTarget.className="UITarget";uiTarget.style.width=width+"px";uiTarget.style.height=height+"px";return uiTarget;};UIDashboard.prototype.createTargetOfAnObject=function(obj){var uiTarget=document.createElement("div");uiTarget.id="UITarget";uiTarget.className="UITarget";uiTarget.style.height=obj.offsetHeight+"px";return uiTarget;};UIDashboard.prototype.showHideSelectContainer=function(event){if(!event)event=window.event;var DOMUtil=eXo.core.DOMUtil;var comp=eXo.core.Browser.getEventSource(event);var uiDashboardPortlet=DOMUtil.findAncestorByClass(comp,"UIDashboard");var portletFragment=DOMUtil.findAncestorByClass(uiDashboardPortlet,"PORTLET-FRAGMENT");var uiContainer=DOMUtil.findFirstDescendantByClass(uiDashboardPortlet,"div","UIDashboardContainer");var uiSelectPopup=DOMUtil.findPreviousElementByTagName(uiContainer,"div");var addButton=DOMUtil.findFirstDescendantByClass(uiContainer,"div","ContainerControlBarL");var params;if(uiSelectPopup.style.display!="none"){uiSelectPopup.style.visibility="hidden";uiSelectPopup.style.display="none";addButton.style.visibility="visible";params=[{name:"isShow",value:false}];var url=eXo.webui.UIDashboardUtil.createRequest(portletFragment.parentNode.id,"SetShowSelectContainer",params);ajaxAsyncGetRequest(url,false);}else{addButton.style.visibility="hidden";params=[{name:"isShow",value:true}];var url=eXo.webui.UIDashboardUtil.createRequest(portletFragment.parentNode.id,"SetShowSelectContainer",params);ajaxGet(url);}};UIDashboard.prototype.onTabClick=function(clickElement,normalStyle,selectedType){var DOMUtil=eXo.core.DOMUtil;var category=DOMUtil.findAncestorByClass(clickElement,"GadgetCategory");var categoryContent=DOMUtil.findFirstChildByClass(category,"div","ItemsContainer");var categoriesContainer=DOMUtil.findAncestorByClass(category,"GadgetItemsContainer");var categories=DOMUtil.findChildrenByClass(categoriesContainer,"div","GadgetCategory");var gadgetTab=DOMUtil.findFirstChildByClass(category,"div","GadgetTab");if(DOMUtil.hasClass(gadgetTab,normalStyle)){for(var i=0;i<categories.length;i++){DOMUtil.findFirstChildByClass(categories[i],"div","GadgetTab").className="GadgetTab "+normalStyle;DOMUtil.findFirstChildByClass(categories[i],"div","ItemsContainer").style.display="none";}
DOMUtil.findFirstChildByClass(category,"div","GadgetTab").className="GadgetTab "+selectedType;categoryContent.style.display="block";}else{DOMUtil.findFirstChildByClass(category,"div","GadgetTab").className="GadgetTab "+normalStyle;categoryContent.style.display="none";}};UIDashboard.prototype.enableContainer=function(elemt){var DOMUtil=eXo.core.DOMUtil;if(DOMUtil.hasClass(elemt,"DisableContainer")){DOMUtil.replaceClass(elemt," DisableContainer","");}
var arrow=DOMUtil.findFirstChildByClass(elemt,"div","Arrow");if(DOMUtil.hasClass(arrow,"DisableArrowIcon"))DOMUtil.replaceClass(arrow," DisableArrowIcon","");};UIDashboard.prototype.disableContainer=function(elemt){var DOMUtil=eXo.core.DOMUtil;if(!DOMUtil.hasClass(elemt,"DisableContainer")){DOMUtil.addClass(elemt,"DisableContainer");}
var arrow=DOMUtil.findFirstChildByClass(elemt,"div","Arrow");if(!DOMUtil.hasClass(arrow,"DisableArrowIcon"))DOMUtil.addClass(arrow," DisableArrowIcon");};UIDashboard.prototype.scrollOnDrag=function(dragObj){var DOMUtil=eXo.core.DOMUtil;var dashboardUtil=eXo.webui.UIDashboardUtil;var uiDashboard=DOMUtil.findAncestorByClass(dragObj,"UIDashboard");var gadgetContainer=DOMUtil.findFirstDescendantByClass(uiDashboard,"div","GadgetContainer");var colCont=DOMUtil.findFirstChildByClass(gadgetContainer,"div","UIColumns");if(!DOMUtil.findFirstDescendantByClass(colCont,"div","UITarget"))return;var visibleWidth=gadgetContainer.offsetWidth;var visibleHeight=gadgetContainer.offsetHeight;var trueWidth=colCont.offsetWidth;var trueHeight=colCont.offsetHeight;var objLeft=dashboardUtil.findPosXInContainer(dragObj,gadgetContainer);var objRight=objLeft+dragObj.offsetWidth;var objTop=dashboardUtil.findPosYInContainer(dragObj,gadgetContainer);var objBottom=objTop+dragObj.offsetHeight;var deltaX=gadgetContainer.scrollLeft;if((trueWidth-(visibleWidth+deltaX)>0)&&objRight>visibleWidth){gadgetContainer.scrollLeft+=5;}else{if(objLeft<0&&deltaX>0)gadgetContainer.scrollLeft-=5;}
var controlBar=DOMUtil.findFirstChildByClass(gadgetContainer,"div","ContainerControlBarL");var buttonHeight=0;if(controlBar)buttonHeight=controlBar.offsetHeight;var deltaY=gadgetContainer.scrollTop;if((trueHeight-(visibleHeight-10-buttonHeight+deltaY)>0)&&objBottom>visibleHeight){gadgetContainer.scrollTop+=5;}else{if(objTop<0&&deltaY>0)gadgetContainer.scrollTop-=5;}};};eXo.webui.UIDashboard=new UIDashboard();function UIDashboardUtil(){UIDashboardUtil.prototype.findPosX=function(obj){var curleft=0;var uiWorkspaceContainer=document.getElementById("UIWorkspaceContainer");var uiWorkingWorkspace=document.getElementById("UIWorkingWorkspace");while(obj){if(uiWorkspaceContainer!=null&&uiWorkspaceContainer.style.display!="none"&&eXo.core.Browser.getBrowserType()=="ie"){var uiPageDesktop=document.getElementById("UIPageDesktop");if((uiPageDesktop!=null&&eXo.core.DOMUtil.hasClass(obj,"UIPageDesktop")&&eXo.core.Browser.isIE7())||(uiPageDesktop==null&&eXo.core.DOMUtil.hasClass(obj,"PORTLET-FRAGMENT"))){curleft+=(obj.offsetLeft-uiWorkingWorkspace.offsetLeft);obj=obj.offsetParent;continue;}}
curleft+=obj.offsetLeft;obj=obj.offsetParent;}
return curleft;};UIDashboardUtil.prototype.findPosY=function(obj){var curtop=0;while(obj){curtop+=obj.offsetTop;obj=obj.offsetParent;}
return curtop;};UIDashboardUtil.prototype.findMouseRelativeX=function(object,e){var posx=-1;var posXObject=eXo.webui.UIDashboardUtil.findPosX(object);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;};UIDashboardUtil.prototype.findMouseRelativeY=function(object,e){var posy=-1;var posYObject=eXo.webui.UIDashboardUtil.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;};UIDashboardUtil.prototype.findPosXInContainer=function(obj,container){var objX=eXo.webui.UIDashboardUtil.findPosX(obj);var containerX=eXo.webui.UIDashboardUtil.findPosX(container);return(objX-containerX);};UIDashboardUtil.prototype.findPosYInContainer=function(obj,container){var objY=eXo.webui.UIDashboardUtil.findPosY(obj);var containerY=eXo.webui.UIDashboardUtil.findPosY(container);return(objY-containerY);};UIDashboardUtil.prototype.setPositionInContainer=function(container,component,posX,posY){var offsetX=component.offsetLeft;var offsetY=component.offsetTop;var posXInContainer=eXo.webui.UIDashboardUtil.findPosXInContainer(component,container);var posYInContainer=eXo.webui.UIDashboardUtil.findPosYInContainer(component,container);var deltaX=posX-(posXInContainer-offsetX);var deltaY=posY-(posYInContainer-offsetY);component.style.left=deltaX+"px";component.style.top=deltaY+"px";};UIDashboardUtil.prototype.isIn=function(x,y,component){var componentLeft=eXo.webui.UIDashboardUtil.findPosX(component);var componentRight=componentLeft+component.offsetWidth;var componentTop=eXo.webui.UIDashboardUtil.findPosY(component);var componentBottom=componentTop+component.offsetHeight;var isOver=false;if((componentLeft<x)&&(x<componentRight)){if((componentTop<y)&&(y<componentBottom)){isOver=true;}}
return isOver;};UIDashboardUtil.prototype.findColIndexInDashboard=function(dragObj){var col=dragObj.parentNode;if(col==null)return null;var dashboardContainer=eXo.core.DOMUtil.findAncestorByClass(col,"DashboardContainer");var columns=eXo.core.DOMUtil.findDescendantsByClass(dashboardContainer,"div","UIColumn");for(var i=0;i<columns.length;i++){if(col.id==columns[i].id){return i;}}};UIDashboardUtil.prototype.findRowIndexInDashboard=function(dragObj){var modules=eXo.core.DOMUtil.getChildrenByTagName(dragObj.parentNode,"div");for(var i=0;i<modules.length;i++){if(modules[i].id==dragObj.id)return i;}};UIDashboardUtil.prototype.createRequest=function(componentId,action,params){var url=eXo.env.server.portalBaseURL;url+='?portal:componentId='+componentId+'&portal:type=action&uicomponent=UIDashboard&op='+action;url+='&ajaxRequest=true';if(params!=null){var len=params.length;for(var i=0;i<len;i++){url+="&"+params[i].name+"="+params[i].value;}}
return url;};};eXo.webui.UIDashboardUtil=new UIDashboardUtil();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 Browser=eXo.core.Browser;var dropDownAnchor=DOMUtil.findNextElementByTagName(obj,'div');if(dropDownAnchor){if(dropDownAnchor.style.display=="none"){dropDownAnchor.style.display="block";dropDownAnchor.style.visibility="visible";var middleCont=DOMUtil.findFirstDescendantByClass(dropDownAnchor,"div","MiddleItemContainer");var topCont=DOMUtil.findPreviousElementByTagName(middleCont,"div");var bottomCont=DOMUtil.findNextElementByTagName(middleCont,"div");topCont.style.display="block";bottomCont.style.display="block";var visibleHeight=Browser.getBrowserHeight()-Browser.findPosY(middleCont)-40;var scrollHeight=middleCont.scrollHeight;if(scrollHeight>visibleHeight){topCont.style.display="block";bottomCont.style.display="block";middleCont.style.height=visibleHeight-topCont.offsetHeight-bottomCont.offsetHeight+"px";topCont.onclick=function(event){event=event||window.event;event.cancelBubble=true;};bottomCont.onclick=function(event){event=event||window.event;event.cancelBubble=true;}}else{topCont.style.display="none";bottomCont.style.display="none";middleCont.scrollTop=0;middleCont.style.height="auto";}
DOMUtil.listHideElements(dropDownAnchor);}
else{dropDownAnchor.style.display="none";dropDownAnchor.style.visibility="hidden";}}};UIDropDownControl.prototype.hide=function(obj){if(typeof(obj)=="string")obj=document.getElementById(obj);obj.style.display="none";};UIDropDownControl.prototype.onclickEvt=function(obj,evt){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 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":for(var j=0;j<element.options.length;j++){if(element.options[j].selected)this.addField(element.name,element.options[j].value);}
break;}}
return queryString;};eXo.webui.UIForm=new UIForm();eXo.webui.UIForm.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){}
try{if(CKEDITOR&&typeof CKEDITOR=="object"){for(var i in CKEDITOR.instances){CKEDITOR.instances[i].updateElement();}}}catch(e){}
form.elements['formOp'].value=action;if(useAjax)ajaxPost(form,callback);else form.submit();};function getUrlParam(paramName){var oRegex=new RegExp("[\?&]"+paramName+"=([^&]+)","i");var oMatch=oRegex.exec(window.location.search);if(oMatch&&oMatch.length>1)return oMatch[1];else return"";}
function ajaxGet(url,callback){if(!callback)callback=null;var path=getUrlParam("path");if(path)url+="&path="+path;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";var path=getUrlParam("path");if(path)url+="&path="+path;doRequest("POST",url,queryString,callback);};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.checkContentAvailable=function(id){var tabContent=document.getElementById(id).parentNode;if(!tabContent.isLoaded){tabContent.isLoaded=true;return false;}
tabContent.style.display='block';return true;};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 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 UINotification(){this.timerlen=5;this.slideAniLen=1000;this.timerID=new Array();this.startTime=new Array();this.object=new Array();this.endHeight=new Array();this.moving=new Array();this.endSlideUpCallback=new Array();this.dir=new Array();this.importantNoti=new Array();this.flagNoti=new Array();this.totalCurrentMessage=0;this.numberMessageRecepted=0;this.numImptNoti=0;if(eXo.core.Topic!=null){eXo.core.Topic.subscribe("/eXo/portal/notification",function(event){eXo.webui.UINotification.addMessage(event.message);})}}
UINotification.prototype.slideDown=function(objectName){if(this.moving[objectName])return;if(document.getElementById(objectName).style.display!="none")return;this.moving[objectName]=true;this.dir[objectName]="down";this.startSlide(objectName);}
UINotification.prototype.slideDownUp=function(objectName,endSlideUpCallback){this.slideDown(objectName);this.endSlideUpCallback[objectName]=endSlideUpCallback;if(this.flagNoti[objectName])setTimeout("eXo.webui.UINotification.slideUp('"+objectName+"')",3000);}
UINotification.prototype.closeNotification=function(){for(var i=0;i<this.importantNoti.length;i++){this.flagNoti[this.importantNoti[i]]=true;setTimeout("eXo.webui.UINotification.slideUp('"+this.importantNoti[i]+"')",100);}}
UINotification.prototype.slideUp=function(objectName){if(this.moving[objectName])return;if(document.getElementById(objectName).style.display=="none")return;this.moving[objectName]=true;this.dir[objectName]="up";this.startSlide(objectName);}
UINotification.prototype.startSlide=function(objectName){this.object[objectName]=document.getElementById(objectName);this.endHeight[objectName]=parseInt(this.object[objectName].style.height);this.startTime[objectName]=(new Date()).getTime();if(this.dir[objectName]=="down"){this.object[objectName].style.height="1px";}
this.object[objectName].style.display="block";this.timerID[objectName]=setInterval('eXo.webui.UINotification.slideTick(\''+objectName+'\');',this.timerlen);}
UINotification.prototype.slideTick=function(objectName){var elapsed=(new Date()).getTime()-this.startTime[objectName];if(elapsed>this.slideAniLen)
this.endSlide(objectName);else{var before="before:"+this.object[objectName].id+"-"+this.object[objectName].style.height+"-";var d=Math.round(elapsed/this.slideAniLen*this.endHeight[objectName]);if(this.dir[objectName]=="up")
d=this.endHeight[objectName]-d;this.object[objectName].style.height=d+"px";}
return;}
UINotification.prototype.destroyUINotification=function(){var UINotification=document.getElementById("UINotification");document.getElementsByTagName("body")[0].removeChild(UINotification);}
UINotification.prototype.endSlide=function(objectName){clearInterval(this.timerID[objectName]);if(this.dir[objectName]=="up"){this.object[objectName].style.display="none";if(this.endSlideUpCallback[objectName]){this.endSlideUpCallback[objectName](objectName);this.totalCurrentMessage--;if(this.totalCurrentMessage==0){this.destroyUINotification();return;}}}
this.object[objectName].style.height=this.endHeight[objectName]+"px";delete(this.moving[objectName]);delete(this.timerID[objectName]);delete(this.startTime[objectName]);delete(this.endHeight[objectName]);delete(this.object[objectName]);delete(this.dir[objectName]);delete(this.flagNoti[objectName]);return;}
UINotification.prototype.deleteBox=function(objectName){var el=document.getElementById(objectName);el.parentNode.removeChild(el);}
UINotification.prototype.createFrameForMessages=function(){var htmlString="";htmlString+="<div class=\"UIPopupNotification\">";htmlString+="<div class=\"TLPopupNotification\">";htmlString+="<div class=\"TRPopupNotification\">";htmlString+="<div class=\"TCPopupNotification\" ><span></span></div>";htmlString+="</div>";htmlString+="</div>";htmlString+="<div class=\"MLPopupNotification\">";htmlString+="<div class=\"MRPopupNotification\">";htmlString+="<div class=\"MCPopupNotification\">";htmlString+="<div class=\"TitleNotification\">";htmlString+="<a class=\"ItemTitle\" href=\"#\">Notification</a>";htmlString+="<a class=\"Close\" href=\"#\" onclick=\"eXo.webui.UINotification.closeNotification();\"><span></span></a>";htmlString+="</div>";htmlString+="<div id=\"UINotificationContent\">";htmlString+="</div>";htmlString+="</div>";htmlString+="</div>";htmlString+="</div>";htmlString+="<div class=\"BLPopupNotification\">";htmlString+="<div class=\"BRPopupNotification\">";htmlString+="<div class=\"BCPopupNotification\"><span></span></div>";htmlString+="</div>";htmlString+="</div>";htmlString+="</div>";return htmlString;}
UINotification.prototype.addMessage=function(messageContent,flag){var currMessageBoxId="UIMessageBox_"+this.numberMessageRecepted++;var UIMessageContent=document.createElement('div');this.totalCurrentMessage++;this.flagNoti[currMessageBoxId]=flag;if(!flag){this.importantNoti[this.numImptNoti]=currMessageBoxId;this.numImptNoti++;}
UIMessageContent.id=currMessageBoxId;UIMessageContent.style.height="75px";UIMessageContent.style.display="none";UIMessageContent.className="Item";UIMessageContent.innerHTML="<div id='UIMessageContent'>"+messageContent+"</div>";var UINotification=document.getElementById("UINotification");if(UINotification==null){document.body.appendChild(document.createElement('div')).id="UINotification";UINotification=document.getElementById("UINotification");UINotification.className='UINotification';UINotification.innerHTML=this.createFrameForMessages();}
var msPanel=document.getElementById("UINotificationContent");msPanel.appendChild(UIMessageContent);eXo.webui.UINotification.slideDownUp(currMessageBoxId,this.deleteBox);}
eXo.webui.UINotification=new UINotification();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 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,isRTL){if(popup.containerId){var container=document.getElementById(popup.containerId);container.style.position="relative";}
popup.style.position="absolute";popup.style.top=y+"px";if(isRTL){popup.style.right=x+"px";popup.style.left="";}
else{popup.style.left=x+"px";popup.style.right="";}};UIPopup.prototype.setAlign=function(popup,pos,hozMargin,verMargin){if(typeof(popup)=='string')popup=document.getElementById(popup);var stdLeft=eXo.core.Browser.getBrowserWidth()-eXo.core.Browser.findPosX(document.getElementById("UIWorkingWorkspace"));var intTop=0;var intLeft=0;if(!hozMargin)hozMargin=0;if(!verMargin)verMargin=0;switch(pos){case 1:intTop=verMargin;intLeft=hozMargin;break;case 2:intTop=verMargin;intLeft=(stdLeft-popup.offsetWidth)-hozMargin;break;case 3:intTop=(eXo.core.Browser.getBrowserHeight()-popup.offsetHeight)-verMargin;intLeft=hozMargin;break;case 4:intTop=(eXo.core.Browser.getBrowserHeight()-popup.offsetHeight)-verMargin;intLeft=(stdLeft-popup.offsetWidth)-hozMargin;break;default:intTop=(eXo.core.Browser.getBrowserHeight()-popup.offsetHeight)/2;intLeft=(uiWorkingWS.offsetWidth-popup.offsetWidth)/2;break;}
this.setPosition(popup,intLeft,intTop,eXo.core.I18n.isRT());};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 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,isRTL){this.superClass.setPosition(popupMenu,x,y,isRTL);};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";object.style.visibility="hidden";};UIPopupMenu.prototype.show=function(object){if(typeof(object)=="string")object=document.getElementById(object);object.style.display="block";object.style.visibility="";};eXo.webui.UIPopupMenu=new UIPopupMenu();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);if(popup==null)return;popup.style.visibility="hidden";var contentBlock=DOMUtil.findFirstDescendantByClass(popup,'div','PopupContent');if(contentBlock&&(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;}
popup.style.visibility="hidden";if(isShow==true){var iframes=DOMUtil.findDescendantsByTagName(popup,"iframe");if(iframes.length>0){setTimeout("eXo.webui.UIPopupWindow.show('"+popupId+"',"+isShowMask+")",500);}else{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&&document.documentElement.scrollTop)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";}
if(eXo.core.DOMUtil.hasClass(offsetParent,"UIMaskWorkspace")){popup.style.top=Math.ceil((offsetParent.offsetHeight-popup.offsetHeight)/2)+"px";}
var checkHeight=popup.offsetHeight>300;if(document.getElementById("UIDockBar")&&checkHeight){popup.style.top="6px";}
if(eXo.core.I18n.lt)popup.style.left=Math.ceil((offsetParent.offsetWidth-popup.offsetWidth)/2)+"px";else popup.style.right=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){eXo.webui.UIPopupWindow.popupId=eXo.core.DOMUtil.findAncestorByClass(this,"UIPopupWindow").id;document.onmousemove=eXo.webui.UIPopupWindow.resize;document.onmouseup=eXo.webui.UIPopupWindow.endResizeEvt;}
var POPUP_WINDOW_BOTTOM_HEIGHT=50;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((pointerY-delta)>0)content.style.height=(pointerY-delta-POPUP_WINDOW_BOTTOM_HEIGHT)+"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;this.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(!dragObject.uiWindowContent)return;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){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 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();function UIPortlet(){this.maxIndex=0;};UIPortlet.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"){var hiddenAttribute=eval('('+eXo.core.DOMUtil.findFirstChildByClass(element,"div","").innerHTML+')');element.title=hiddenAttribute.modeTitle;}
if(element.className=="ControlIcon OverMaximizedIcon"){var hiddenAttribute=eval('('+eXo.core.DOMUtil.findFirstChildByClass(element,"div","").innerHTML+')');element.title=hiddenAttribute.normalTitle;}}else{var over=originalElementName.indexOf("Over");if(over>=0){var overElementName="ControlIcon "+originalElementName.substr(originalElementName.indexOf(" ")+5,30);element.className=overElementName;}}};eXo.webui.UIPortlet=new UIPortlet();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=function(){return false};}
comp.onmouseout=function(){document.oncontextmenu=function(){return true};}};UIRightClickPopupMenu.prototype.prepareObjectId=function(evt,elemt){var contextMenu=eXo.core.DOMUtil.findAncestorByClass(elemt,"UIRightClickPopupMenu");contextMenu.style.display="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.findFirstDescendantByClass(elemt,"div","RightClickCustomItem");var tmpCustomItem=eXo.core.DOMUtil.findFirstDescendantByClass(contextMenu,"div","RightClickCustomItem");if(tmpCustomItem){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 ctxMenuContainer=eXo.core.DOMUtil.findFirstChildByClass(contextMenu,"div","UIContextMenuContainer");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;if(eXo.core.I18n.isRT()){var scrollWidth=16;if(eXo.core.Browser.getBrowserType()=="mozilla")scrollWidth=0;intLeft=contextMenu.offsetParent.offsetWidth-intLeft+fixWidthForIE7+scrollWidth;var clickCenter=eXo.core.DOMUtil.findFirstDescendantByClass(contextMenu,"div","ClickCenterBottom");if(clickCenter){var clickCenterWidth=clickCenter?parseInt(eXo.core.DOMUtil.getStyle(clickCenter,"marginRight")):0;intLeft+=(ctxMenuContainer.offsetWidth-2*clickCenterWidth);}}
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;}
if(eXo.core.I18n.isLT()){contextMenu.style.left=eXo.core.Browser.getBrowserWidth()*0.5+"px";ctxMenuContainer.style.width="auto";ctxMenuContainer.style.width=ctxMenuContainer.offsetWidth+2+"px";contextMenu.style.left=intLeft+"px";}else{contextMenu.style.right=eXo.core.Browser.getBrowserWidth()*0.5+"px";ctxMenuContainer.style.width="auto";ctxMenuContainer.style.width=ctxMenuContainer.offsetWidth+2+"px";contextMenu.style.right=intLeft+"px";}
ctxMenuContainer.style.width=ctxMenuContainer.offsetWidth+"px";contextMenu.style.top=intTop+"px";};eXo.webui.UIRightClickPopupMenu=new UIRightClickPopupMenu();function UIUserSelector(){};UIUserSelector.prototype.init=function(cont){if(typeof(cont)=="string")cont=document.getElementById(cont);var checkboxes=eXo.core.DOMUtil.findDescendantsByClass(cont,"input","checkbox");if(checkboxes.length<=0)return;checkboxes[0].onclick=this.checkAll;var len=checkboxes.length;for(var i=1;i<len;i++){checkboxes[i].onclick=this.check;}};UIUserSelector.prototype.checkAll=function(){eXo.webui.UIUserSelector.checkAllItem(this);};UIUserSelector.prototype.getItems=function(obj){var table=eXo.core.DOMUtil.findAncestorByTagName(obj,"table");var checkboxes=eXo.core.DOMUtil.findDescendantsByClass(table,"input","checkbox");return checkboxes;};UIUserSelector.prototype.check=function(){eXo.webui.UIUserSelector.checkItem(this);};UIUserSelector.prototype.checkAllItem=function(obj){var checked=obj.checked;var items=eXo.webui.UIUserSelector.getItems(obj);var len=items.length;for(var i=1;i<len;i++){items[i].checked=checked;}};UIUserSelector.prototype.checkItem=function(obj){var checkboxes=eXo.webui.UIUserSelector.getItems(obj);var len=checkboxes.length;var state=true;if(!obj.checked){checkboxes[0].checked=false;}
else{for(var i=1;i<len;i++){state=state&&checkboxes[i].checked;}
checkboxes[0].checked=state;}};UIUserSelector.prototype.getKeynum=function(event){var keynum=false;if(window.event){keynum=window.event.keyCode;event=window.event;}else if(event.which){keynum=event.which;}
if(keynum==0){keynum=event.keyCode;}
return keynum;};UIUserSelector.prototype.captureInput=function(input,action){if(typeof(input)=="string")input=document.getElementById(input);input.form.onsubmit=eXo.webui.UIUserSelector.cancelSubmit;input.onkeypress=eXo.webui.UIUserSelector.onEnter;};UIUserSelector.prototype.onEnter=function(evt){var _e=evt||window.event;_e.cancelBubble=true;var keynum=eXo.webui.UIUserSelector.getKeynum(_e);if(keynum==13){var action=eXo.core.DOMUtil.findNextElementByTagName(this,"a");if(!action)action=eXo.core.DOMUtil.findPreviousElementByTagName(this,"a");action=String(action.href).replace("javascript:","").replace("%20","");eval(action);}};UIUserSelector.prototype.cancelSubmit=function(){return false;};eXo.webui.UIUserSelector=new UIUserSelector();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();String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));}
Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');}
Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodes(node):''));}).flatten().join('');}
Element.setStyle=function(element,style){element=$(element);for(k in style)element.style[k.camelize()]=style[k];}
Element.setContentZoom=function(element,percent){Element.setStyle(element,{fontSize:(percent/100)+'em'});if(navigator.appVersion.indexOf('AppleWebKit')>0)window.scrollBy(0,0);}
Element.getOpacity=function(element){var opacity;if(opacity=Element.getStyle(element,'opacity'))
return parseFloat(opacity);if(opacity=(Element.getStyle(element,'filter')||'').match(/alpha\(opacity=(.*)\)/))
if(opacity[1])return parseFloat(opacity[1])/100;return 1.0;}
Element.setOpacity=function(element,value){element=$(element);if(value==1){Element.setStyle(element,{opacity:(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:null});if(/MSIE/.test(navigator.userAgent))
Element.setStyle(element,{filter:Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});}else{if(value<0.00001)value=0;Element.setStyle(element,{opacity:value});if(/MSIE/.test(navigator.userAgent))
Element.setStyle(element,{filter:Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+value*100+')'});}}
Element.getInlineOpacity=function(element){return $(element).style.opacity||'';}
Element.childrenWithClassName=function(element,className){return $A($(element).getElementsByTagName('*')).select(function(c){return Element.hasClassName(c,className)});}
Array.prototype.call=function(){var args=arguments;this.each(function(f){f.apply(this,args)});}
var Effect={tagifyText:function(element){var tagifyStyle='position:relative';if(/MSIE/.test(navigator.userAgent))tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(Builder.node('span',{style:tagifyStyle},character==' '?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=='object')||(typeof element=='function'))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global')}},arguments[2]||{});Effect[Element.visible(element)?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};var Effect2=Effect;Effect.Transitions={}
Effect.Transitions.linear=function(pos){return pos;}
Effect.Transitions.sinoidal=function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5;}
Effect.Transitions.reverse=function(pos){return 1-pos;}
Effect.Transitions.flicker=function(pos){return((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;}
Effect.Transitions.wobble=function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;}
Effect.Transitions.pulse=function(pos){return(Math.floor(pos*10)%2==0?(pos*10-Math.floor(pos*10)):1-(pos*10-Math.floor(pos*10)));}
Effect.Transitions.none=function(pos){return 0;}
Effect.Transitions.full=function(pos){return 1;}
Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=(typeof effect.options.queue=='string')?effect.options.queue:effect.options.queue.position;switch(position){case'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break;}
effect.startOn+=timestamp;effect.finishOn+=timestamp;this.effects.push(effect);if(!this.interval)
this.interval=setInterval(this.loop.bind(this),40);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();this.effects.invoke('loop',timePos);}});Effect.Queues={instances:$H(),get:function(queueName){if(typeof queueName!='string')return queueName;if(!this.instances[queueName])
this.instances[queueName]=new Effect.ScopedQueue();return this.instances[queueName];}}
Effect.Queue=Effect.Queues.get('global');Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1.0,fps:25.0,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'}
Effect.Base=function(){};Effect.Base.prototype={position:null,start:function(options){this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.event('beforeStart');if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).add(this);},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return;}
var pos=(timePos-this.startOn)/(this.finishOn-this.startOn);var frame=Math.round(pos*this.options.fps*this.options.duration);if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},render:function(pos){if(this.state=='idle'){this.state='running';this.event('beforeSetup');if(this.setup)this.setup();this.event('afterSetup');}
if(this.state=='running'){if(this.options.transition)pos=this.options.transition(pos);pos*=(this.options.to-this.options.from);pos+=this.options.from;this.position=pos;this.event('beforeUpdate');if(this.update)this.update(pos);this.event('afterUpdate');}},cancel:function(){if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).remove(this);this.state='finished';},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this);},inspect:function(){return'#<Effect:'+$H(this).inspect()+',options:'+$H(this.options).inspect()+'>';}}
Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(/MSIE/.test(navigator.userAgent)&&(!this.element.hasLayout))
Element.setStyle(this.element,{zoom:1});var options=Object.extend({from:Element.getOpacity(this.element)||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){Element.setOpacity(this.element,position);}});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options);},setup:function(){Element.makePositioned(this.element);this.originalLeft=parseFloat(Element.getStyle(this.element,'left')||'0');this.originalTop=parseFloat(Element.getStyle(this.element,'top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(position){Element.setStyle(this.element,{left:this.options.x*position+this.originalLeft+'px',top:this.options.y*position+this.originalTop+'px'});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(element,percent){this.element=$(element)
var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=Element.getStyle(this.element,'position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=Element.getStyle(this.element,'font-size')||'100%';['em','px','%'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize)
Element.setStyle(this.element,{fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish)Element.setStyle(this.element,this.originalStyle);},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=width+'px';if(this.options.scaleY)d.height=height+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}}
Element.setStyle(this.element,d);}});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options);},setup:function(){if(Element.getStyle(this.element,'display')=='none'){this.cancel();return;}
this.oldStyle={backgroundImage:Element.getStyle(this.element,'background-image')};Element.setStyle(this.element,{backgroundImage:'none'});if(!this.options.endcolor)
this.options.endcolor=Element.getStyle(this.element,'background-color').parseColor('#ffffff');if(!this.options.restorecolor)
this.options.restorecolor=Element.getStyle(this.element,'background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this));},update:function(position){Element.setStyle(this.element,{backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart());}.bind(this))});},finish:function(){Element.setStyle(this.element,Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=Class.create();Object.extend(Object.extend(Effect.ScrollTo.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);this.start(arguments[1]||{});},setup:function(){Position.prepare();var offsets=Position.cumulativeOffset(this.element);if(this.options.offset)offsets[1]+=this.options.offset;var max=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-
(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);this.scrollStart=Position.deltaY;this.delta=(offsets[1]>max?max:offsets[1])-this.scrollStart;},update:function(position){Position.prepare();window.scrollTo(Position.deltaX,this.scrollStart+(position*this.delta));}});Effect.Fade=function(element){var oldOpacity=Element.getInlineOpacity(element);var options=Object.extend({from:Element.getOpacity(element)||1.0,to:0.0,afterFinishInternal:function(effect){with(Element){if(effect.options.to!=0)return;hide(effect.element);setStyle(effect.element,{opacity:oldOpacity});}}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.Appear=function(element){var options=Object.extend({from:(Element.getStyle(element,'display')=='none'?0.0:Element.getOpacity(element)||0.0),to:1.0,beforeSetup:function(effect){with(Element){setOpacity(effect.element,effect.options.from);show(effect.element);}}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.Puff=function(element){element=$(element);var oldStyle={opacity:Element.getInlineOpacity(element),position:Element.getStyle(element,'position')};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){with(Element){setStyle(effect.effects[0].element,{position:'absolute'});}},afterFinishInternal:function(effect){with(Element){hide(effect.effects[0].element);setStyle(effect.effects[0].element,oldStyle);}}},arguments[1]||{}));}
Effect.BlindUp=function(element){element=$(element);Element.makeClipping(element);return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){with(Element){[hide,undoClipping].call(effect.element);}}},arguments[1]||{}));}
Effect.BlindDown=function(element){element=$(element);var oldHeight=Element.getStyle(element,'height');var elementDimensions=Element.getDimensions(element);return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){with(Element){makeClipping(effect.element);setStyle(effect.element,{height:'0px'});show(effect.element);}},afterFinishInternal:function(effect){with(Element){undoClipping(effect.element);setStyle(effect.element,{height:oldHeight});}}},arguments[1]||{}));}
Effect.SwitchOff=function(element){element=$(element);var oldOpacity=Element.getInlineOpacity(element);return new Effect.Appear(element,{duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){with(Element){[makePositioned,makeClipping].call(effect.element);}},afterFinishInternal:function(effect){with(Element){[hide,undoClipping,undoPositioned].call(effect.element);setStyle(effect.element,{opacity:oldOpacity});}}})}});}
Effect.DropOut=function(element){element=$(element);var oldStyle={top:Element.getStyle(element,'top'),left:Element.getStyle(element,'left'),opacity:Element.getInlineOpacity(element)};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){with(Element){makePositioned(effect.effects[0].element);}},afterFinishInternal:function(effect){with(Element){[hide,undoPositioned].call(effect.effects[0].element);setStyle(effect.effects[0].element,oldStyle);}}},arguments[1]||{}));}
Effect.Shake=function(element){element=$(element);var oldStyle={top:Element.getStyle(element,'top'),left:Element.getStyle(element,'left')};return new Effect.Move(element,{x:20,y:0,duration:0.05,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-20,y:0,duration:0.05,afterFinishInternal:function(effect){with(Element){undoPositioned(effect.element);setStyle(effect.element,oldStyle);}}})}})}})}})}})}});}
Effect.SlideDown=function(element){element=$(element);Element.cleanWhitespace(element);var oldInnerBottom=Element.getStyle(element.firstChild,'bottom');var elementDimensions=Element.getDimensions(element);return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){with(Element){makePositioned(effect.element);makePositioned(effect.element.firstChild);if(window.opera)setStyle(effect.element,{top:''});makeClipping(effect.element);setStyle(effect.element,{height:'0px'});show(element);}},afterUpdateInternal:function(effect){with(Element){setStyle(effect.element.firstChild,{bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});}},afterFinishInternal:function(effect){with(Element){undoClipping(effect.element);undoPositioned(effect.element.firstChild);undoPositioned(effect.element);setStyle(effect.element.firstChild,{bottom:oldInnerBottom});}}},arguments[1]||{}));}
Effect.SlideUp=function(element){element=$(element);Element.cleanWhitespace(element);var oldInnerBottom=Element.getStyle(element.firstChild,'bottom');return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(effect){with(Element){makePositioned(effect.element);makePositioned(effect.element.firstChild);if(window.opera)setStyle(effect.element,{top:''});makeClipping(effect.element);show(element);}},afterUpdateInternal:function(effect){with(Element){setStyle(effect.element.firstChild,{bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});}},afterFinishInternal:function(effect){with(Element){[hide,undoClipping].call(effect.element);undoPositioned(effect.element.firstChild);undoPositioned(effect.element);setStyle(effect.element.firstChild,{bottom:oldInnerBottom});}}},arguments[1]||{}));}
Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(effect){with(Element){makeClipping(effect.element);}},afterFinishInternal:function(effect){with(Element){hide(effect.element);undoClipping(effect.element);}}});}
Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransistion:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:Element.getInlineOpacity(element)};var dims=Element.getDimensions(element);var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;}
return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){with(Element){hide(effect.element);makeClipping(effect.element);makePositioned(effect.element);}},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){with(Element){setStyle(effect.effects[0].element,{height:'0px'});show(effect.effects[0].element);}},afterFinishInternal:function(effect){with(Element){[undoClipping,undoPositioned].call(effect.effects[0].element);setStyle(effect.effects[0].element,oldStyle);}}},options))}});}
Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransistion:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:Element.getInlineOpacity(element)};var dims=Element.getDimensions(element);var moveX,moveY;switch(options.direction){case'top-left':moveX=moveY=0;break;case'top-right':moveX=dims.width;moveY=0;break;case'bottom-left':moveX=0;moveY=dims.height;break;case'bottom-right':moveX=dims.width;moveY=dims.height;break;case'center':moveX=dims.width/2;moveY=dims.height/2;break;}
return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){with(Element){[makePositioned,makeClipping].call(effect.effects[0].element)}},afterFinishInternal:function(effect){with(Element){[hide,undoClipping,undoPositioned].call(effect.effects[0].element);setStyle(effect.effects[0].element,oldStyle);}}},options));}
Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{};var oldOpacity=Element.getInlineOpacity(element);var transition=options.transition||Effect.Transitions.sinoidal;var reverser=function(pos){return transition(1-Effect.Transitions.pulse(pos))};reverser.bind(transition);return new Effect.Opacity(element,Object.extend(Object.extend({duration:3.0,from:0,afterFinishInternal:function(effect){Element.setStyle(effect.element,{opacity:oldOpacity});}},options),{transition:reverser}));}
Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};Element.makeClipping(element);return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){with(Element){[hide,undoClipping].call(effect.element);setStyle(effect.element,oldStyle);}}});}},arguments[1]||{}));}
var fileLoadingImage="/eXoDMSResources/skin/images/lightbox/loading.gif";var fileBottomNavCloseImage="/eXoDMSResources/skin/images/lightbox/closelabel.gif";var animate=true;var resizeSpeed=7;var borderSize=10;var imageArray=new Array;var activeImage;if(animate==true){overlayDuration=0.2;if(resizeSpeed>10){resizeSpeed=10;}
if(resizeSpeed<1){resizeSpeed=1;}
resizeDuration=(11-resizeSpeed)*0.15;}else{overlayDuration=0;resizeDuration=0;}
Object.extend(Element,{getWidth:function(element){element=$(element);return element.offsetWidth;},setWidth:function(element,w){element=$(element);element.style.width=w+"px";},setHeight:function(element,h){element=$(element);element.style.height=h+"px";},setTop:function(element,t){element=$(element);element.style.top=t+"px";},setSrc:function(element,src){element=$(element);element.src=src;},setHref:function(element,href){element=$(element);element.href=href;},setInnerHTML:function(element,content){element=$(element);element.innerHTML=content;}});Array.prototype.removeDuplicates=function(){for(i=0;i<this.length;i++){for(j=this.length-1;j>i;j--){if(this[i][0]==this[j][0]){this.splice(j,1);}}}}
Array.prototype.empty=function(){for(i=0;i<=this.length;i++){this.shift();}}
var Lightbox=Class.create();Lightbox.prototype={initialize:function(){if(!document.getElementsByTagName){return;}
var anchors=document.getElementsByTagName('a');var areas=document.getElementsByTagName('area');for(var i=0;i<anchors.length;i++){var anchor=anchors[i];var relAttribute=String(anchor.getAttribute('rel'));if(anchor.getAttribute('href')&&(relAttribute.toLowerCase().match('lightbox'))){anchor.onclick=function(){myLightbox.start(this);return false;}}}
for(var i=0;i<areas.length;i++){var area=areas[i];var relAttribute=String(area.getAttribute('rel'));if(area.getAttribute('href')&&(relAttribute.toLowerCase().match('lightbox'))){area.onclick=function(){myLightbox.start(this);return false;}}}
var objBody=document.getElementsByTagName("body").item(0);var objOverlay=document.createElement("div");objOverlay.setAttribute('id','overlay');objOverlay.style.display='none';objOverlay.onclick=function(){myLightbox.end();}
objBody.appendChild(objOverlay);var objLightbox=document.createElement("div");objLightbox.setAttribute('id','lightbox');objLightbox.style.display='none';objLightbox.onclick=function(e){if(!e)var e=window.event;var clickObj=Event.element(e).id;if(clickObj=='lightbox'){myLightbox.end();}};objBody.appendChild(objLightbox);var objOuterImageContainer=document.createElement("div");objOuterImageContainer.setAttribute('id','outerImageContainer');objLightbox.appendChild(objOuterImageContainer);if(animate){Element.setWidth('outerImageContainer',250);Element.setHeight('outerImageContainer',250);}else{Element.setWidth('outerImageContainer',1);Element.setHeight('outerImageContainer',1);}
var objImageContainer=document.createElement("div");objImageContainer.setAttribute('id','imageContainer');objOuterImageContainer.appendChild(objImageContainer);var objLightboxImage=document.createElement("img");objLightboxImage.setAttribute('id','lightboxImage');objImageContainer.appendChild(objLightboxImage);var objHoverNav=document.createElement("div");objHoverNav.setAttribute('id','hoverNav');objImageContainer.appendChild(objHoverNav);var objPrevLink=document.createElement("a");objPrevLink.setAttribute('id','prevLink');objPrevLink.setAttribute('href','#');objHoverNav.appendChild(objPrevLink);var objNextLink=document.createElement("a");objNextLink.setAttribute('id','nextLink');objNextLink.setAttribute('href','#');objHoverNav.appendChild(objNextLink);var objLoading=document.createElement("div");objLoading.setAttribute('id','loading');objImageContainer.appendChild(objLoading);var objLoadingLink=document.createElement("a");objLoadingLink.setAttribute('id','loadingLink');objLoadingLink.setAttribute('href','#');objLoadingLink.onclick=function(){myLightbox.end();return false;}
objLoading.appendChild(objLoadingLink);var objLoadingImage=document.createElement("img");objLoadingImage.setAttribute('src',fileLoadingImage);objLoadingLink.appendChild(objLoadingImage);var objImageDataContainer=document.createElement("div");objImageDataContainer.setAttribute('id','imageDataContainer');objImageDataContainer.className='clearfix';objLightbox.appendChild(objImageDataContainer);var objImageData=document.createElement("div");objImageData.setAttribute('id','imageData');objImageDataContainer.appendChild(objImageData);var objImageDetails=document.createElement("div");objImageDetails.setAttribute('id','imageDetails');objImageData.appendChild(objImageDetails);var objCaption=document.createElement("span");objCaption.setAttribute('id','caption');objImageDetails.appendChild(objCaption);var objNumberDisplay=document.createElement("span");objNumberDisplay.setAttribute('id','numberDisplay');objImageDetails.appendChild(objNumberDisplay);var objBottomNav=document.createElement("div");objBottomNav.setAttribute('id','bottomNav');objImageData.appendChild(objBottomNav);var objBottomNavCloseLink=document.createElement("a");objBottomNavCloseLink.setAttribute('id','bottomNavClose');objBottomNavCloseLink.setAttribute('href','#');objBottomNavCloseLink.onclick=function(){myLightbox.end();return false;}
objBottomNav.appendChild(objBottomNavCloseLink);var objBottomNavCloseImage=document.createElement("img");objBottomNavCloseImage.setAttribute('src',fileBottomNavCloseImage);objBottomNavCloseLink.appendChild(objBottomNavCloseImage);},start:function(imageLink){function getImageTitle(anchor){var ddimageTitle=anchor.getAttribute('title')
var ddimageTitleURL=(ddimageTitle!=null&&ddimageTitle!="")?anchor.getAttribute('rev'):null
return ddimageTitleFinal=(ddimageTitleURL!=null&&ddimageTitleURL!="")?'<a href="'+ddimageTitleURL+'" class="ddcaptionurl">'+ddimageTitle+'</a>':ddimageTitle};hideSelectBoxes();hideFlash();var arrayPageSize=getPageSize();Element.setHeight('overlay',arrayPageSize[1]);new Effect.Appear('overlay',{duration:overlayDuration,from:0.0,to:0.8});imageArray=[];imageNum=0;if(!document.getElementsByTagName){return;}
var anchors=document.getElementsByTagName('a');if((imageLink.getAttribute('rel')=='lightbox')){imageArray.push(new Array(imageLink.getAttribute('href'),getImageTitle(imageLink)));}else{for(var i=0;i<anchors.length;i++){var anchor=anchors[i];if(anchor.getAttribute('href')&&(anchor.getAttribute('rel')==imageLink.getAttribute('rel'))){imageArray.push(new Array(anchor.getAttribute('href'),getImageTitle(anchor)));}}
imageArray.removeDuplicates();while(imageArray[imageNum][0]!=imageLink.getAttribute('href')){imageNum++;}}
var arrayPageScroll=getPageScroll();var lightboxTop=arrayPageScroll[1]+(arrayPageSize[3]/10);Element.setTop('lightbox',lightboxTop);Element.show('lightbox');this.changeImage(imageNum);},changeImage:function(imageNum){activeImage=imageNum;if(animate){Element.show('loading');}
Element.hide('lightboxImage');Element.hide('hoverNav');Element.hide('prevLink');Element.hide('nextLink');Element.hide('imageDataContainer');Element.hide('numberDisplay');imgPreloader=new Image();imgPreloader.onload=function(){Element.setSrc('lightboxImage',imageArray[activeImage][0]);myLightbox.resizeImageContainer(imgPreloader.width,imgPreloader.height);}
imgPreloader.src=imageArray[activeImage][0];},resizeImageContainer:function(imgWidth,imgHeight){this.widthCurrent=Element.getWidth('outerImageContainer');this.heightCurrent=Element.getHeight('outerImageContainer');var widthNew=(imgWidth+(borderSize*2));var heightNew=(imgHeight+(borderSize*2));this.xScale=(widthNew/this.widthCurrent)*100;this.yScale=(heightNew/this.heightCurrent)*100;wDiff=this.widthCurrent-widthNew;hDiff=this.heightCurrent-heightNew;if(!(hDiff==0)){new Effect.Scale('outerImageContainer',this.yScale,{scaleX:false,duration:resizeDuration,queue:'front'});}
if(!(wDiff==0)){new Effect.Scale('outerImageContainer',this.xScale,{scaleY:false,delay:resizeDuration,duration:resizeDuration});}
if((hDiff==0)&&(wDiff==0)){if(navigator.appVersion.indexOf("MSIE")!=-1){pause(250);}else{pause(100);}}
Element.setHeight('prevLink',imgHeight);Element.setHeight('nextLink',imgHeight);Element.setWidth('imageDataContainer',widthNew);this.showImage();},showImage:function(){Element.hide('loading');new Effect.Appear('lightboxImage',{duration:resizeDuration,queue:'end',afterFinish:function(){myLightbox.updateDetails();}});this.preloadNeighborImages();},updateDetails:function(){Element.show('caption');Element.setInnerHTML('caption',imageArray[activeImage][1]);if(imageArray.length>1){Element.show('numberDisplay');Element.setInnerHTML('numberDisplay',"Image "+eval(activeImage+1)+" of "+imageArray.length);}
new Effect.Parallel([new Effect.SlideDown('imageDataContainer',{sync:true,duration:resizeDuration,from:0.0,to:1.0}),new Effect.Appear('imageDataContainer',{sync:true,duration:resizeDuration})],{duration:resizeDuration,afterFinish:function(){var arrayPageSize=getPageSize();Element.setHeight('overlay',arrayPageSize[1]);myLightbox.updateNav();}});},updateNav:function(){Element.show('hoverNav');if(activeImage!=0){Element.show('prevLink');document.getElementById('prevLink').onclick=function(){myLightbox.changeImage(activeImage-1);return false;}}
if(activeImage!=(imageArray.length-1)){Element.show('nextLink');document.getElementById('nextLink').onclick=function(){myLightbox.changeImage(activeImage+1);return false;}}
this.enableKeyboardNav();},enableKeyboardNav:function(){document.onkeydown=this.keyboardAction;},disableKeyboardNav:function(){document.onkeydown='';},keyboardAction:function(e){if(e==null){keycode=event.keyCode;escapeKey=27;}else{keycode=e.keyCode;escapeKey=e.DOM_VK_ESCAPE;}
key=String.fromCharCode(keycode).toLowerCase();if((key=='x')||(key=='o')||(key=='c')||(keycode==escapeKey)){myLightbox.end();}else if((key=='p')||(keycode==37)){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1);}}else if((key=='n')||(keycode==39)){if(activeImage!=(imageArray.length-1)){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage+1);}}},preloadNeighborImages:function(){if((imageArray.length-1)>activeImage){preloadNextImage=new Image();preloadNextImage.src=imageArray[activeImage+1][0];}
if(activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=imageArray[activeImage-1][0];}},end:function(){this.disableKeyboardNav();Element.hide('lightbox');new Effect.Fade('overlay',{duration:overlayDuration});showSelectBoxes();showFlash();}}
function getPageScroll(){var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;}else if(document.body){yScroll=document.body.scrollTop;}
arrayPageScroll=new Array('',yScroll)
return arrayPageScroll;}
function getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;}
function getKey(e){if(e==null){keycode=event.keyCode;}else{keycode=e.which;}
key=String.fromCharCode(keycode).toLowerCase();if(key=='x'){}}
function listenKey(){document.onkeypress=getKey;}
function showSelectBoxes(){var selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="visible";}}
function hideSelectBoxes(){var selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="hidden";}}
function showFlash(){var flashObjects=document.getElementsByTagName("object");for(i=0;i!=flashObjects.length;i++){flashObjects[i].style.visibility="visible";}
var flashEmbeds=document.getElementsByTagName("embeds");for(i=0;i!=flashEmbeds.length;i++){flashEmbeds[i].style.visibility="visible";}}
function hideFlash(){var flashObjects=document.getElementsByTagName("object");for(i=0;i!=flashObjects.length;i++){flashObjects[i].style.visibility="hidden";}
var flashEmbeds=document.getElementsByTagName("embeds");for(i=0;i!=flashEmbeds.length;i++){flashEmbeds[i].style.visibility="hidden";}}
function pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
while(curDate-date<ms);}
function initLightbox(){myLightbox=new Lightbox();}
Event.observe(window,'load',initLightbox,false);var Prototype={Version:'1.4.0',ScriptFragment:'(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',emptyFunction:function(){},K:function(x){return x}}
var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}}
var Abstract=new Object();Object.extend=function(destination,source){for(property in source){destination[property]=source[property];}
return destination;}
Object.inspect=function(object){try{if(object==undefined)return'undefined';if(object==null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}}
Function.prototype.bind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}}
Function.prototype.bindAsEventListener=function(object){var __method=this;return function(event){return __method.call(object,event||window.event);}}
Object.extend(Number.prototype,{toColorPart:function(){var digits=this.toString(16);if(this<16)return'0'+digits;return digits;},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;}});var Try={these:function(){var returnValue;for(var i=0;i<arguments.length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}}
var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback();}finally{this.currentlyExecuting=false;}}}}
function $(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string')
element=document.getElementById(element);if(arguments.length==1)
return element;elements.push(element);}
return elements;}
Object.extend(String.prototype,{stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(){return this.extractScripts().map(eval);},escapeHTML:function(){var div=document.createElement('div');var text=document.createTextNode(this);div.appendChild(text);return div.innerHTML;},unescapeHTML:function(){var div=document.createElement('div');div.innerHTML=this.stripTags();return div.childNodes[0]?div.childNodes[0].nodeValue:'';},toQueryParams:function(){var pairs=this.match(/^\??(.*)$/)[1].split('&');return pairs.inject({},function(params,pairString){var pair=pairString.split('=');params[pair[0]]=pair[1];return params;});},toArray:function(){return this.split('');},camelize:function(){var oStringList=this.split('-');if(oStringList.length==1)return oStringList[0];var camelizedString=this.indexOf('-')==0?oStringList[0].charAt(0).toUpperCase()+oStringList[0].substring(1):oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
return camelizedString;},inspect:function(){return"'"+this.replace('\\','\\\\').replace("'",'\\\'')+"'";}});String.prototype.parseQuery=String.prototype.toQueryParams;var $break=new Object();var $continue=new Object();var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){try{iterator(value,index++);}catch(e){if(e!=$continue)throw e;}});}catch(e){if(e!=$break)throw e;}},all:function(iterator){var result=true;this.each(function(value,index){result=result&&!!(iterator||Prototype.K)(value,index);if(!result)throw $break;});return result;},any:function(iterator){var result=true;this.each(function(value,index){if(result=!!(iterator||Prototype.K)(value,index))
throw $break;});return result;},collect:function(iterator){var results=[];this.each(function(value,index){results.push(iterator(value,index));});return results;},detect:function(iterator){var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break;}});return result;},findAll:function(iterator){var results=[];this.each(function(value,index){if(iterator(value,index))
results.push(value);});return results;},grep:function(pattern,iterator){var results=[];this.each(function(value,index){var stringValue=value.toString();if(stringValue.match(pattern))
results.push((iterator||Prototype.K)(value,index));})
return results;},include:function(object){var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inject:function(memo,iterator){this.each(function(value,index){memo=iterator(memo,value,index);});return memo;},invoke:function(method){var args=$A(arguments).slice(1);return this.collect(function(value){return value[method].apply(value,args);});},max:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value>=(result||value))
result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value<=(result||value))
result=value;});return result;},partition:function(iterator){var trues=[],falses=[];this.each(function(value,index){((iterator||Prototype.K)(value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value,index){results.push(value[property]);});return results;},reject:function(iterator){var results=[];this.each(function(value,index){if(!iterator(value,index))
results.push(value);});return results;},sortBy:function(iterator){return this.collect(function(value,index){return{value:value,criteria:iterator(value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');},toArray:function(){return this.collect(Prototype.K);},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=='function')
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){iterator(value=collections.pluck(index));return value;});},inspect:function(){return'#<Enumerable:'+this.toArray().inspect()+'>';}}
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(iterable){if(!iterable)return[];if(iterable.toArray){return iterable.toArray();}else{var results=[];for(var i=0;i<iterable.length;i++)
results.push(iterable[i]);return results;}}
Object.extend(Array.prototype,Enumerable);Array.prototype._reverse=Array.prototype.reverse;Object.extend(Array.prototype,{_each:function(iterator){for(var i=0;i<this.length;i++)
iterator(this[i]);},clear:function(){this.length=0;return this;},first:function(){return this[0];},last:function(){return this[this.length-1];},compact:function(){return this.select(function(value){return value!=undefined||value!=null;});},flatten:function(){return this.inject([],function(array,value){return array.concat(value.constructor==Array?value.flatten():[value]);});},without:function(){var values=$A(arguments);return this.select(function(value){return!values.include(value);});},indexOf:function(object){for(var i=0;i<this.length;i++)
if(this[i]==object)return i;return-1;},reverse:function(inline){return(inline!==false?this:this.toArray())._reverse();},shift:function(){var result=this[0];for(var i=0;i<this.length-1;i++)
this[i]=this[i+1];this.length--;return result;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';}});var Hash={_each:function(iterator){for(key in this){var value=this[key];if(typeof value=='function')continue;var pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},merge:function(hash){return $H(hash).inject($H(this),function(mergedHash,pair){mergedHash[pair.key]=pair.value;return mergedHash;});},toQueryString:function(){return this.map(function(pair){return pair.map(encodeURIComponent).join('=');}).join('&');},inspect:function(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}}
function $H(object){var hash=Object.extend({},object||{});Object.extend(hash,Enumerable);Object.extend(hash,Hash);return hash;}
ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;do{iterator(value);value=value.succ();}while(this.include(value));},include:function(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}});var $R=function(start,end,exclusive){return new ObjectRange(start,end,exclusive);}
var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')},function(){return new XMLHttpRequest()})||false;},activeRequestCount:0}
Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responderToAdd){if(!this.include(responderToAdd))
this.responders.push(responderToAdd);},unregister:function(responderToRemove){this.responders=this.responders.without(responderToRemove);},dispatch:function(callback,request,transport,json){this.each(function(responder){if(responder[callback]&&typeof responder[callback]=='function'){try{responder[callback].apply(responder,[request,transport,json]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++;},onComplete:function(){Ajax.activeRequestCount--;}});Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(options){this.options={method:'post',asynchronous:true,parameters:''}
Object.extend(this.options,options||{});},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300);},responseIsFailure:function(){return!this.responseIsSuccess();}}
Ajax.Request=Class.create();Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Request.prototype=Object.extend(new Ajax.Base(),{initialize:function(url,options){this.transport=Ajax.getTransport();this.setOptions(options);this.request(url);},request:function(url){var parameters=this.options.parameters||'';if(parameters.length>0)parameters+='&_=';try{this.url=url;if(this.options.method=='get'&&parameters.length>0)
this.url+=(this.url.match(/\?/)?'&':'?')+parameters;Ajax.Responders.dispatch('onCreate',this,this.transport);this.transport.open(this.options.method,this.url,this.options.asynchronous);if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);setTimeout((function(){this.respondToReadyState(1)}).bind(this),10);}
this.setRequestHeaders();var body=this.options.postBody?this.options.postBody:parameters;this.transport.send(this.options.method=='post'?body:null);}catch(e){this.dispatchException(e);}},setRequestHeaders:function(){var requestHeaders=['X-Requested-With','XMLHttpRequest','X-Prototype-Version',Prototype.Version];if(this.options.method=='post'){requestHeaders.push('Content-type','application/x-www-form-urlencoded');if(this.transport.overrideMimeType)
requestHeaders.push('Connection','close');}
if(this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders,this.options.requestHeaders);for(var i=0;i<requestHeaders.length;i+=2)
this.transport.setRequestHeader(requestHeaders[i],requestHeaders[i+1]);},onStateChange:function(){var readyState=this.transport.readyState;if(readyState!=1)
this.respondToReadyState(this.transport.readyState);},header:function(name){try{return this.transport.getResponseHeader(name);}catch(e){}},evalJSON:function(){try{return eval(this.header('X-JSON'));}catch(e){}},evalResponse:function(){try{return eval(this.transport.responseText);}catch(e){this.dispatchException(e);}},respondToReadyState:function(readyState){var event=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(event=='Complete'){try{(this.options['on'+this.transport.status]||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||Prototype.emptyFunction)(transport,json);}catch(e){this.dispatchException(e);}
if((this.header('Content-type')||'').match(/^text\/javascript/i))
this.evalResponse();}
try{(this.options['on'+event]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch('on'+event,this,transport,json);}catch(e){this.dispatchException(e);}
if(event=='Complete')
this.transport.onreadystatechange=Prototype.emptyFunction;},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.containers={success:container.success?$(container.success):$(container),failure:container.failure?$(container.failure):(container.success?null:$(container))}
this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,object){this.updateContent();onComplete(transport,object);}).bind(this);this.request(url);},updateContent:function(){var receiver=this.responseIsSuccess()?this.containers.success:this.containers.failure;var response=this.transport.responseText;if(!this.options.evalScripts)
response=response.stripScripts();if(receiver){if(this.options.insertion){new this.options.insertion(receiver,response);}else{Element.update(receiver,response);}}
if(this.responseIsSuccess()){if(this.onComplete)
setTimeout(this.onComplete.bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;}
this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});document.getElementsByClassName=function(className,parentElement){var children=($(parentElement)||document.body).getElementsByTagName('*');return $A(children).inject([],function(elements,child){if(child.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
elements.push(child);return elements;});}
if(!window.Element){var Element=new Object();}
Object.extend(Element,{visible:function(element){return $(element).style.display!='none';},toggle:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);Element[Element.visible(element)?'hide':'show'](element);}},hide:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='none';}},show:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='';}},remove:function(element){element=$(element);element.parentNode.removeChild(element);},update:function(element,html){$(element).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts()},10);},getHeight:function(element){element=$(element);return element.offsetHeight;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).include(className);},addClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).add(className);},removeClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).remove(className);},cleanWhitespace:function(element){element=$(element);for(var i=0;i<element.childNodes.length;i++){var node=element.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue))
Element.remove(node);}},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},scrollTo:function(element){element=$(element);var x=element.x?element.x:element.offsetLeft,y=element.y?element.y:element.offsetTop;window.scrollTo(x,y);},getStyle:function(element,style){element=$(element);var value=element.style[style.camelize()];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(style):null;}else if(element.currentStyle){value=element.currentStyle[style.camelize()];}}
if(window.opera&&['left','top','right','bottom'].include(style))
if(Element.getStyle(element,'position')=='static')value='auto';return value=='auto'?null:value;},setStyle:function(element,style){element=$(element);for(name in style)
element.style[name.camelize()]=style[name];},getDimensions:function(element){element=$(element);if(Element.getStyle(element,'display')!='none')
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display='none';els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}}},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}},makeClipping:function(element){element=$(element);if(element._overflow)return;element._overflow=element.style.overflow;if((Element.getStyle(element,'overflow')||'visible')!='hidden')
element.style.overflow='hidden';},undoClipping:function(element){element=$(element);if(element._overflow)return;element.style.overflow=element._overflow;element._overflow=undefined;}});var Toggle=new Object();Toggle.display=Element.toggle;Abstract.Insertion=function(adjacency){this.adjacency=adjacency;}
Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){if(this.element.tagName.toLowerCase()=='tbody'){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);}
setTimeout(function(){content.evalScripts()},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML='<table><tbody>'+this.content+'</tbody></table>';return $A(div.childNodes[0].childNodes[0].childNodes);}}
var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set(this.toArray().concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set(this.select(function(className){return className!=classNameToRemove;}).join(' '));},toString:function(){return this.toArray().join(' ');}}
Object.extend(Element.ClassNames.prototype,Enumerable);var Field={clear:function(){for(var i=0;i<arguments.length;i++)
$(arguments[i]).value='';},focus:function(element){$(element).focus();},present:function(){for(var i=0;i<arguments.length;i++)
if($(arguments[i]).value=='')return false;return true;},select:function(element){$(element).select();},activate:function(element){element=$(element);element.focus();if(element.select)
element.select();}}
var Form={serialize:function(form){var elements=Form.getElements($(form));var queryComponents=new Array();for(var i=0;i<elements.length;i++){var queryComponent=Form.Element.serialize(elements[i]);if(queryComponent)
queryComponents.push(queryComponent);}
return queryComponents.join('&');},getElements:function(form){form=$(form);var elements=new Array();for(tagName in Form.Element.Serializers){var tagElements=form.getElementsByTagName(tagName);for(var j=0;j<tagElements.length;j++)
elements.push(tagElements[j]);}
return elements;},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)
return inputs;var matchingInputs=new Array();for(var i=0;i<inputs.length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
continue;matchingInputs.push(input);}
return matchingInputs;},disable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.blur();element.disabled='true';}},enable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.disabled='';}},findFirstElement:function(form){return Form.getElements(form).find(function(element){return element.type!='hidden'&&!element.disabled&&['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){Field.activate(Form.findFirstElement(form));},reset:function(form){$(form).reset();}}
Form.Element={serialize:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter){var key=encodeURIComponent(parameter[0]);if(key.length==0)return;if(parameter[1].constructor!=Array)
parameter[1]=[parameter[1]];return parameter[1].map(function(value){return key+'='+encodeURIComponent(value);}).join('&');}},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter)
return parameter[1];}}
Form.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'submit':case'hidden':case'password':case'text':return Form.Element.Serializers.textarea(element);case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element);}
return false;},inputSelector:function(element){if(element.checked)
return[element.name,element.value];},textarea:function(element){return[element.name,element.value];},select:function(element){return Form.Element.Serializers[element.type=='select-one'?'selectOne':'selectMany'](element);},selectOne:function(element){var value='',opt,index=element.selectedIndex;if(index>=0){opt=element.options[index];value=opt.value;if(!value&&!('value'in opt))
value=opt.text;}
return[element.name,value];},selectMany:function(element){var value=new Array();for(var i=0;i<element.length;i++){var opt=element.options[i];if(opt.selected){var optValue=opt.value;if(!optValue&&!('value'in opt))
optValue=opt.text;value.push(optValue);}}
return[element.name,value];}}
var $F=Form.Element.getValue;Abstract.TimedObserver=function(){}
Abstract.TimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}}}
Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=function(){}
Abstract.EventObserver.prototype={initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
this.registerFormCallbacks();else
this.registerCallback(this.element);},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}},registerFormCallbacks:function(){var elements=Form.getElements(this.element);for(var i=0;i<elements.length;i++)
this.registerCallback(elements[i]);},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case'checkbox':case'radio':Event.observe(element,'click',this.onElementEvent.bind(this));break;case'password':case'text':case'textarea':case'select-one':case'select-multiple':Event.observe(element,'change',this.onElementEvent.bind(this));break;}}}}
Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create();Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element);}});if(!window.Event){var Event=new Object();}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer);}},unloadCache:function(){if(!Event.observers)return;for(var i=0;i<Event.observers.length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}
Event.observers=false;},observe:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';this._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){element.detachEvent('on'+name,observer);}}});Event.observe(window,'unload',Event.unloadCache,false);var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},realOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return[valueL,valueT];},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){p=Element.getStyle(element,'position');if(p=='relative'||p=='absolute')break;}}while(element);return[valueL,valueT];},offsetParent:function(element){if(element.offsetParent)return element.offsetParent;if(element==document.body)return element;while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return element;return document.body;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},clone:function(source,target){source=$(source);target=$(target);target.style.position='absolute';var offsets=this.cumulativeOffset(source);target.style.top=offsets[1]+'px';target.style.left=offsets[0]+'px';target.style.width=source.offsetWidth+'px';target.style.height=source.offsetHeight+'px';},page:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}while(element=element.parentNode);return[valueL,valueT];},clone:function(source,target){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{})
source=$(source);var p=Position.page(source);target=$(target);var delta=[0,0];var parent=null;if(Element.getStyle(target,'position')=='absolute'){parent=Position.offsetParent(target);delta=Position.page(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)target.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)target.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)target.style.width=source.offsetWidth+'px';if(options.setHeight)target.style.height=source.offsetHeight+'px';},absolutize:function(element){element=$(element);if(element.style.position=='absolute')return;Position.prepare();var offsets=Position.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';;element.style.left=left+'px';;element.style.width=width+'px';;element.style.height=height+'px';;},relativize:function(element){element=$(element);if(element.style.position=='relative')return;Position.prepare();element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;}}
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){Position.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return[valueL,valueT];}}
var Scriptaculous={Version:'1.5.1',require:function(libraryName){document.write('<script type="text/javascript" src="'+libraryName+'"></script>');},load:function(){if((typeof Prototype=='undefined')||parseFloat(Prototype.Version.split(".")[0]+"."+
Prototype.Version.split(".")[1])<1.4)
throw("script.aculo.us requires the Prototype JavaScript framework >= 1.4.0");$A(document.getElementsByTagName("script")).findAll(function(s){return(s.src&&s.src.match(/scriptaculous\.js(\?.*)?$/))}).each(function(s){var path=s.src.replace(/scriptaculous\.js(\?.*)?$/,'');var includes=s.src.match(/\?.*load=([a-z,]*)/);(includes?includes[1]:'builder,effects,dragdrop,controls,slider').split(',').each(function(include){Scriptaculous.require(path+include+'.js')});});}}
Scriptaculous.load();