
var SGL={isReady:false,ready:function(f){if(SGL.isReady){if(typeof f=='string'){eval(f);}else if(typeof f=='function'){f.apply(document);}}else{SGL.onReadyDomEvents.push(f);}},onReadyDomEvents:[],onReadyDom:function(){if(!SGL.isReady){SGL.isReady=true;if(SGL.onReadyDomEvents){for(var i=0,j=SGL.onReadyDomEvents.length;i<j;i++){if(typeof SGL.onReadyDomEvents[i]=='string'){eval(SGL.onReadyDomEvents[i]);}else if(typeof SGL.onReadyDomEvents[i]=='function'){SGL.onReadyDomEvents[i].apply(document);}}
SGL.onReadyDomEvents=null;}}}};new function(){if(document.addEventListener){document.addEventListener("DOMContentLoaded",SGL.onReadyDom,false);}
if(/WebKit/i.test(navigator.userAgent)){SGL.webkitTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(SGL.webkitTimer);SGL.webkitTimer=null;SGL.onReadyDom();}},10);}
oldWindowOnload=window.onload||null;window.onload=function(){if(oldWindowOnload){oldWindowOnload();}
SGL.onReadyDom();}}
function async_load()
{var node;try{node=top._asyncDom;node.removeChild(node.getElementsByTagName('script')[0]);}catch(e){}
try{document.getElementById('async_demo').appendChild(node);}catch(e){try{document.getElementById('async_demo').innerHTML=node.innerHTML;}catch(e2){};}}
function makeUrl(params)
{var ret=SGL_JS_FRONT_CONTROLLER!=''?SGL_JS_WEBROOT+'/'+SGL_JS_FRONT_CONTROLLER:SGL_JS_WEBROOT;var moduleName=params.module?params.module:'';var managerName=params.manager?params.manager:moduleName;switch(SGL_JS_URL_STRATEGY){case'SGL_UrlParser_ClassicStrategy':if(ret.charAt(ret.length-1)!='?'){ret=ret+'?';}
ret=ret+'moduleName='+escape(moduleName)+'&managerName='+escape(managerName);for(x in params){if(x=='module'||x=='manager'){continue;}
ret='&'+ret+escape(x)+'='+escape(params[x]);}
break;default:ret=ret+'/'+escape(moduleName)+'/'+escape(managerName)+'/';for(x in params){if(x=='module'||x=='manager'){continue;}
ret=ret+escape(x)+'/'+escape(params[x])+'/';}
break;}
return ret;}
SGL.ready(function(){var msg=document.getElementById('broadcastMessage');if(msg){msg.getElementsByTagName('a')[0].onclick=function(){msg.style.display='none';}}});function formErrorCheck()
{var labels=document.getElementsByTagName("label");if(labels){var labelWidth=labels[0].offsetWidth;if(document.all&&!window.sidebar){labelWidth+=3;}}
for(i=0;i<document.getElementsByTagName("form").length;i++){var errorSpans=document.forms[i].getElementsByTagName("span");if(errorSpans){for(j=0;j<errorSpans.length;j++){if(errorSpans[j].className=="error"){var parentObject=errorSpans[j].parentNode;parentObject.className+=" errorBlock";for(k=0;k<parentObject.childNodes.length;k++){if(parentObject.childNodes[k].nodeName=="INPUT"||parentObject.childNodes[k].nodeName=="SELECT"){parentObject.childNodes[k].style.marginLeft=labelWidth+"px";}}
if(field=parentObject.parentNode){if(field.className=="options"){var tabId=field.id;var tabs=document.getElementById("optionsLinks");var tabElements=tabs.getElementsByTagName("li");for(l=0;l<tabElements.length;l++){if(tabElements[l].className.match(new RegExp(tabId+"\\b"))){var errorTab=tabElements[l].childNodes;errorTab[0].className="error";var thisForm=document.forms[0].id;showSelectedOptions(thisForm,tabId);}}}}}}}}}
function collapseElement(display,elementId)
{var blockToCollapse=document.getElementById(elementId);if(display){blockToCollapse.style.display='block';}else{blockToCollapse.style.display='none';}}
function switchRowColorOnHover()
{var table=document.getElementsByTagName("table");for(var i=0;i<table.length;i++){var row=table[i].getElementsByTagName("tr");for(var j=0;j<row.length;j++){row[j].onmouseover=function(){if(this.className.search(new RegExp("back"))>=0){this.className+=" backHighlight";}}
row[j].onmouseout=function(){this.className=this.className.replace(new RegExp(" backHighlight\\b"),"");}}}}
function lockButtons(whichform)
{ua=new String(navigator.userAgent);if(ua.match(/IE/g)){for(i=1;i<whichform.elements.length;i++){if((whichform.elements[i].type=='submit')||(whichform.elements[i].type=='button'))
whichform.elements[i].disabled=true;}}
whichform.submit();}
function openWindow()
{var newWin=null;var url=openWindow.arguments[0];nArgs=openWindow.arguments.length;var width=openWindow.arguments[1];var height=openWindow.arguments[2];if(nArgs>1)
newWin=window.open("","newWindow","toolbar=no,width="+width+",height="+height+",directories=no,status=no,scrollbars=yes,resizable=no,menubar=no");else
newWin=window.open("","newWindow","toolbar=no,width="+SGL_JS_WINWIDTH+",height="+SGL_JS_WINHEIGHT+",directories=no,status=no,scrollbars=yes,resizable=no,menubar=no");newWin.location.href=url;}
function confirmSubmit(item,formName)
{var isActionProvided=false;var strAction='delete';if(arguments.length>2){isActionProvided=true;strAction=arguments[2];}
var evalFormName=eval('document.'+formName)
var flag=false
for(var count=0;count<evalFormName.elements.length;count++){var tipo=evalFormName.elements[count].type
if(tipo=='checkbox'&&evalFormName.elements[count].checked==true&&evalFormName.elements[count].name!='')
flag=true;}
if(flag==false){alert('You must select an element to '+strAction);return false;}
var agree=confirm("Are you sure you want to "+strAction+" this "+item+"?");if(agree){if(isActionProvided){formId=evalFormName.getAttribute('id');setActionAndSubmit(formId,strAction);}else{return true;}}
else
return false;}
function confirmDelete(item,formName)
{var isActionProvided=false;var strAction='delete';if(arguments.length>2){isActionProvided=true;strAction=arguments[2];}
var evalFormName=eval('document.'+formName)
var flag=false
var agree=confirm("Are you sure you want to "+strAction+" this "+item+"?");if(agree)
return true;else
return false;}
function confirmDeleteWithMsg(msg)
{var agree=confirm(msg);if(agree)
return true;else
return false;}
function confirmSave(formName)
{var evalFormName=eval('document.'+formName)
var flag=false
for(var count=0;count<evalFormName.elements.length;count++){var tipo=evalFormName.elements[count].type
if(tipo=='checkbox'&&evalFormName.elements[count].checked==true&&evalFormName.elements[count].name!='')
flag=true}
if(flag==false){alert('You must select an element to save')
return false}}
function confirmSend(formName)
{var evalFormName=eval('document.'+formName)
var flag=false
for(var count=0;count<evalFormName.elements.length;count++){var tipo=evalFormName.elements[count].type
if(tipo=='checkbox'&&evalFormName.elements[count].checked==true&&evalFormName.elements[count].name!='')
flag=true}
if(flag==false){alert('You must select at least one recipient')
return false}}
function confirmCategoryDelete(item)
{var agree=confirm("Are you sure you want to delete this "+item+"?");if(agree)
return true;else
return false;}
function verifySelectionMade()
{var moveForm=document.moveCategory.frmNewCatParentID
var selectedCat=moveForm.value
if(selectedCat==''){alert('Please select a new parent category')
return false;}else
return true;}
function checkInput(formName,fieldName)
{var f=eval('document.'+formName+'.'+fieldName)
if(f.value==''){alert('Please enter a value in the field before submitting');return false;}else
return true;}
function getSelectedValue(selectObj)
{return(selectObj.options[selectObj.selectedIndex].value);}
function toggleDisplay(myElement)
{boxElement=document.getElementById(myElement);if(boxElement){if(boxElement.style.display=='none'){boxElement.style.display='';}else{boxElement.style.display='none';}}}
function toggleSearchType(myElement)
{objFormKeywordSearch=document.getElementById('frmKeywordSearch');objFormAdvancedSearch=document.getElementById('frmAdvancedSearch');if(objFormKeywordSearch&&objFormAdvancedSearch){if(objFormKeywordSearch.className=='show'){objFormKeywordSearch.className='hide';objFormAdvancedSearch.className='show';}else{objFormKeywordSearch.className='show';objFormAdvancedSearch.className='hide';}}
return false;}
function confirmCustom(alertText,confirmText,formName)
{var evalFormName=eval('document.'+formName)
var flag=false
for(var count=0;count<evalFormName.elements.length;count++){var tipo=evalFormName.elements[count].type
if(tipo=='checkbox'&&evalFormName.elements[count].checked==true&&evalFormName.elements[count].name!='')
flag=true}
if(flag==false){alert(alertText)
return false}
var agree=confirm(confirmText);if(agree)
return true;else
return false;}
var oldDate;oldDate=new Array();function time_select_reset(prefix,changeBack){function setEmpty(id){if(dateSelector=document.getElementById(id)){oldDate=dateSelector.value;dateSelectorToShow=document.getElementById("frmExpiryDateToShow");oldDateToShow=dateSelectorToShow.innerHTML;if(dateSelector.value!=''){dateSelector.value='';dateSelectorToShow.innerHTML='';}}}
function setActive(id){if(dateSelector=document.getElementById(id)){dateSelector.value=oldDate;dateSelectorToShow.innerHTML=oldDateToShow;}}
if(document.getElementById(prefix+'NoExpire').checked){setEmpty('frmExpiryDate');}else{if(changeBack==true){setActive('frmExpiryDate');}}}
function setCheckboxes(the_form,element_name,do_check)
{var elts=(typeof(document.forms[the_form].elements[element_name])!='undefined')?document.forms[the_form].elements[element_name]:'';var elts_cnt=(typeof(elts.length)!='undefined')?elts.length:0;if(elts_cnt){for(var i=0;i<elts_cnt;i++){elts[i].checked=do_check;}}else if(element_name==false){var f=document.forms[the_form];for(var c=0;c<f.elements.length;c++)
if(f.elements[c].type=='checkbox'){f.elements[c].checked=do_check;}}else{elts.checked=do_check;}
return true;}
function applyToAllCheckboxes(formName,elementName,isChecked)
{if(isChecked){setCheckboxes(formName,elementName,true)}else{setCheckboxes(formName,elementName,false)}}
function toggleSelected(elem,state)
{var i;for(i=0;i<elem.length;i++){elem[i].selected=state;}}
function captureGlobalSearch(event)
{var key=event.which||event.keyCode;switch(key){case Event.KEY_RETURN:return validateSubmitGlobalSearch();break;}}
function validateSubmitGlobalSearch()
{var objForm=document.getElementById('frmGlobalSearch');if(objForm.elements['q'].value==''||objForm.elements['q'].value==INT_globalSearchCaption){return true;}
objForm.submit();}
function showFormSendToFriend()
{intJsVarDivBox_SendToFriend=dhtmlwindow.open('divBox_SendToFriend','div','intJsDhtmlWindow_sendToFriend','Send this Template to a Friend','width=700px,height=450px,left=200px,top=50px,resize=0,scrolling=1','recal');intJsVarDivBox_SendToFriend.moveTo('middle','middle');formErrorCheck();return false;}
var dhtmlwindow={imagefiles:[SGL_JS_WEBROOT+'/js/dhtmlwindow/min.gif',SGL_JS_WEBROOT+'/js/dhtmlwindow/close.gif',SGL_JS_WEBROOT+'/js/dhtmlwindow/restore.gif',SGL_JS_WEBROOT+'/js/dhtmlwindow/resize.gif'],ajaxbustcache:true,ajaxloadinghtml:'<b>Loading Page. Please wait...</b>',minimizeorder:0,zIndexvalue:100,tobjects:[],lastactivet:{},init:function(t){var domwindow=document.createElement("div")
domwindow.id=t
domwindow.className="dhtmlwindow"
var domwindowdata=''
domwindowdata='<div class="drag-handle">'
domwindowdata+='DHTML Window <div class="drag-controls"><img src="'+this.imagefiles[0]+'" title="Minimize" /><img src="'+this.imagefiles[1]+'" title="Close" /></div>'
domwindowdata+='</div>'
domwindowdata+='<div class="drag-contentarea"></div>'
domwindowdata+='<div class="drag-statusarea"><div class="drag-resizearea" style="background: transparent url('+this.imagefiles[3]+') top right no-repeat;">&nbsp;</div></div>'
domwindowdata+='</div>'
domwindow.innerHTML=domwindowdata
document.getElementById("dhtmlwindowholder").appendChild(domwindow)
var t=document.getElementById(t)
var divs=t.getElementsByTagName("div")
for(var i=0;i<divs.length;i++){if(/drag-/.test(divs[i].className))
t[divs[i].className.replace(/drag-/,"")]=divs[i]}
t.handle._parent=t
t.resizearea._parent=t
t.controls._parent=t
t.onclose=function(){return true}
t.onmousedown=function(){dhtmlwindow.setfocus(this)}
t.handle.onmousedown=dhtmlwindow.setupdrag
t.resizearea.onmousedown=dhtmlwindow.setupdrag
t.controls.onclick=dhtmlwindow.enablecontrols
t.show=function(){dhtmlwindow.show(this)}
t.hide=function(){dhtmlwindow.hide(this)}
t.close=function(){dhtmlwindow.close(this)}
t.setSize=function(w,h){dhtmlwindow.setSize(this,w,h)}
t.moveTo=function(x,y){dhtmlwindow.moveTo(this,x,y)}
t.isResize=function(bol){dhtmlwindow.isResize(this,bol)}
t.isScrolling=function(bol){dhtmlwindow.isScrolling(this,bol)}
t.load=function(contenttype,contentsource,title){dhtmlwindow.load(this,contenttype,contentsource,title)}
this.tobjects[this.tobjects.length]=t
return t},open:function(t,contenttype,contentsource,title,attr,recalonload){var d=dhtmlwindow
function getValue(Name){var config=new RegExp(Name+"=([^,]+)","i")
return(config.test(attr))?parseInt(RegExp.$1):0}
if(document.getElementById(t)==null)
t=this.init(t)
else
t=document.getElementById(t)
this.setfocus(t)
t.setSize(getValue(("width")),(getValue("height")))
var xpos=getValue("center")?"middle":getValue("left")
var ypos=getValue("center")?"middle":getValue("top")
if(typeof recalonload!="undefined"&&recalonload=="recal"&&this.scroll_top==0){if(window.attachEvent&&!window.opera)
this.addEvent(window,function(){setTimeout(function(){t.moveTo(xpos,ypos)},400)},"load")
else
this.addEvent(window,function(){t.moveTo(xpos,ypos)},"load")}
t.isResize(getValue("resize"))
t.isScrolling(getValue("scrolling"))
t.style.visibility="visible"
t.style.display="block"
t.contentarea.style.display="block"
t.moveTo(xpos,ypos)
t.load(contenttype,contentsource,title)
if(t.state=="minimized"&&t.controls.firstChild.title=="Restore"){t.controls.firstChild.setAttribute("src",dhtmlwindow.imagefiles[0])
t.controls.firstChild.setAttribute("title","Minimize")
t.state="fullview"}
return t},setSize:function(t,w,h){t.style.width=Math.max(parseInt(w),150)+"px"
t.contentarea.style.height=Math.max(parseInt(h),100)+"px"},moveTo:function(t,x,y){this.getviewpoint()
t.style.left=(x=="middle")?this.scroll_left+(this.docwidth-t.offsetWidth)/2+"px":this.scroll_left+parseInt(x)+"px"
t.style.top=(y=="middle")?this.scroll_top+(this.docheight-t.offsetHeight)/2+"px":this.scroll_top+parseInt(y)+"px"},isResize:function(t,bol){t.statusarea.style.display=(bol)?"block":"none"
t.resizeBool=(bol)?1:0},isScrolling:function(t,bol){t.contentarea.style.overflow=(bol)?"auto":"hidden"},load:function(t,contenttype,contentsource,title){if(t.isClosed){alert("DHTML Window has been closed, so no window to load contents into. Open/Create the window again.")
return}
var contenttype=contenttype.toLowerCase()
if(typeof title!="undefined")
t.handle.firstChild.nodeValue=title
if(contenttype=="inline")
t.contentarea.innerHTML=contentsource
else if(contenttype=="div"){var inlinedivref=document.getElementById(contentsource)
t.contentarea.innerHTML=(inlinedivref.defaultHTML||inlinedivref.innerHTML)
if(!inlinedivref.defaultHTML)
inlinedivref.defaultHTML=inlinedivref.innerHTML
inlinedivref.innerHTML=""
inlinedivref.style.display="none"}
else if(contenttype=="iframe"){t.contentarea.style.overflow="hidden"
if(!t.contentarea.firstChild||t.contentarea.firstChild.tagName!="IFRAME")
t.contentarea.innerHTML='<iframe src="" style="margin:0; padding:0; width:100%; height: 100%" name="_iframe-'+t.id+'"></iframe>'
window.frames["_iframe-"+t.id].location.replace(contentsource)}
else if(contenttype=="ajax"){this.ajax_connect(contentsource,t)}
t.contentarea.datatype=contenttype},setupdrag:function(e){var d=dhtmlwindow
var t=this._parent
d.etarget=this
var e=window.event||e
d.initmousex=e.clientX
d.initmousey=e.clientY
d.initx=parseInt(t.offsetLeft)
d.inity=parseInt(t.offsetTop)
d.width=parseInt(t.offsetWidth)
d.contentheight=parseInt(t.contentarea.offsetHeight)
if(t.contentarea.datatype=="iframe"){t.style.backgroundColor="#F8F8F8"
t.contentarea.style.visibility="hidden"}
document.onmousemove=d.getdistance
document.onmouseup=function(){if(t.contentarea.datatype=="iframe"){t.contentarea.style.backgroundColor="white"
t.contentarea.style.visibility="visible"}
d.stop()}
return false},getdistance:function(e){var d=dhtmlwindow
var etarget=d.etarget
var e=window.event||e
d.distancex=e.clientX-d.initmousex
d.distancey=e.clientY-d.initmousey
if(etarget.className=="drag-handle")
d.move(etarget._parent,e)
else if(etarget.className=="drag-resizearea")
d.resize(etarget._parent,e)
return false},getviewpoint:function(){var ie=document.all&&!window.opera
var domclientWidth=document.documentElement&&parseInt(document.documentElement.clientWidth)||100000
this.standardbody=(document.compatMode=="CSS1Compat")?document.documentElement:document.body
this.scroll_top=(ie)?this.standardbody.scrollTop:window.pageYOffset
this.scroll_left=(ie)?this.standardbody.scrollLeft:window.pageXOffset
this.docwidth=(ie)?this.standardbody.clientWidth:(/Safari/i.test(navigator.userAgent))?window.innerWidth:Math.min(domclientWidth,window.innerWidth-16)
this.docheight=(ie)?this.standardbody.clientHeight:window.innerHeight},rememberattrs:function(t){this.getviewpoint()
t.lastx=parseInt((t.style.left||t.offsetLeft))-dhtmlwindow.scroll_left
t.lasty=parseInt((t.style.top||t.offsetTop))-dhtmlwindow.scroll_top
t.lastwidth=parseInt(t.style.width)},move:function(t,e){t.style.left=dhtmlwindow.distancex+dhtmlwindow.initx+"px"
t.style.top=dhtmlwindow.distancey+dhtmlwindow.inity+"px"},resize:function(t,e){t.style.width=Math.max(dhtmlwindow.width+dhtmlwindow.distancex,150)+"px"
t.contentarea.style.height=Math.max(dhtmlwindow.contentheight+dhtmlwindow.distancey,100)+"px"},enablecontrols:function(e){var d=dhtmlwindow
var sourceobj=window.event?window.event.srcElement:e.target
if(/Minimize/i.test(sourceobj.getAttribute("title")))
d.minimize(sourceobj,this._parent)
else if(/Restore/i.test(sourceobj.getAttribute("title")))
d.restore(sourceobj,this._parent)
else if(/Close/i.test(sourceobj.getAttribute("title")))
d.close(this._parent)
return false},minimize:function(button,t){dhtmlwindow.rememberattrs(t)
button.setAttribute("src",dhtmlwindow.imagefiles[2])
button.setAttribute("title","Restore")
t.state="minimized"
t.contentarea.style.display="none"
t.statusarea.style.display="none"
if(typeof t.minimizeorder=="undefined"){dhtmlwindow.minimizeorder++
t.minimizeorder=dhtmlwindow.minimizeorder}
t.style.left="10px"
t.style.width="200px"
var windowspacing=t.minimizeorder*10
t.style.top=dhtmlwindow.scroll_top+dhtmlwindow.docheight-(t.handle.offsetHeight*t.minimizeorder)-windowspacing+"px"},restore:function(button,t){dhtmlwindow.getviewpoint()
button.setAttribute("src",dhtmlwindow.imagefiles[0])
button.setAttribute("title","Minimize")
t.state="fullview"
t.style.display="block"
t.contentarea.style.display="block"
if(t.resizeBool)
t.statusarea.style.display="block"
t.style.left=parseInt(t.lastx)+dhtmlwindow.scroll_left+"px"
t.style.top=parseInt(t.lasty)+dhtmlwindow.scroll_top+"px"
t.style.width=parseInt(t.lastwidth)+"px"},close:function(t){try{var closewinbol=t.onclose()}
catch(err){var closewinbol=true}
finally{if(typeof closewinbol=="undefined"){alert("An error has occured somwhere inside your \"onclose\" event handler")
var closewinbol=true}}
if(closewinbol){if(t.state!="minimized")
dhtmlwindow.rememberattrs(t)
if(window.frames["_iframe-"+t.id])
window.frames["_iframe-"+t.id].location.replace("about:blank")
else
t.contentarea.innerHTML=""
t.style.display="none"
t.isClosed=true}
return closewinbol},setopacity:function(targetobject,value){if(!targetobject)
return
if(targetobject.filters&&targetobject.filters[0]){if(typeof targetobject.filters[0].opacity=="number")
targetobject.filters[0].opacity=value*100
else
targetobject.style.filter="alpha(opacity="+value*100+")"}
else if(typeof targetobject.style.MozOpacity!="undefined")
targetobject.style.MozOpacity=value
else if(typeof targetobject.style.opacity!="undefined")
targetobject.style.opacity=value},setfocus:function(t){this.zIndexvalue++
t.style.zIndex=this.zIndexvalue
t.isClosed=false
this.setopacity(this.lastactivet.handle,0.5)
this.setopacity(t.handle,1)
this.lastactivet=t},show:function(t){if(t.isClosed){alert("DHTML Window has been closed, so nothing to show. Open/Create the window again.")
return}
if(t.lastx)
dhtmlwindow.restore(t.controls.firstChild,t)
else
t.style.display="block"
this.setfocus(t)
t.state="fullview"},hide:function(t){t.style.display="none"},ajax_connect:function(url,t){var page_request=false
var bustcacheparameter=""
if(window.XMLHttpRequest)
page_request=new XMLHttpRequest()
else if(window.ActiveXObject){try{page_request=new ActiveXObject("Msxml2.XMLHTTP")}
catch(e){try{page_request=new ActiveXObject("Microsoft.XMLHTTP")}
catch(e){}}}
else
return false
t.contentarea.innerHTML=this.ajaxloadinghtml
page_request.onreadystatechange=function(){dhtmlwindow.ajax_loadpage(page_request,t)}
if(this.ajaxbustcache)
bustcacheparameter=(url.indexOf("?")!=-1)?"&"+new Date().getTime():"?"+new Date().getTime()
page_request.open('GET',url+bustcacheparameter,true)
page_request.send(null)},ajax_loadpage:function(page_request,t){if(page_request.readyState==4&&(page_request.status==200||window.location.href.indexOf("http")==-1)){t.contentarea.innerHTML=page_request.responseText}},stop:function(){dhtmlwindow.etarget=null
document.onmousemove=null
document.onmouseup=null},addEvent:function(target,functionref,tasktype){var tasktype=(window.addEventListener)?tasktype:"on"+tasktype
if(target.addEventListener)
target.addEventListener(tasktype,functionref,false)
else if(target.attachEvent)
target.attachEvent(tasktype,functionref)},cleanup:function(){for(var i=0;i<dhtmlwindow.tobjects.length;i++){dhtmlwindow.tobjects[i].handle._parent=dhtmlwindow.tobjects[i].resizearea._parent=dhtmlwindow.tobjects[i].controls._parent=null}
window.onload=null}}
document.write('<div id="dhtmlwindowholder"><span style="display:none">.</span></div>')
window.onunload=dhtmlwindow.cleanup