
/* - czHacks.js - */
// http://www.cozimo.com/portal_javascripts/czHacks.js?original=1
var czIsKHTML=navigator.userAgent.indexOf('KHTML')!=-1;var userAgentVersionIndex=navigator.userAgent.indexOf('Version');var userAgentVersion=parseFloat(navigator.userAgent.substring(userAgentVersionIndex+8));
function resizeLeftColumn(){var leftCol=document.getElementById('portal-column-one');if(leftCol){var targetWidth=leftCol.clientWidth-1;leftCol.style.width=targetWidth.toString()+"px"}};
function forceSafariLeftColumnWidth(){window.setTimeout('resizeLeftCol()',5)};if(czIsKHTML&&(userAgentVersion<3.1)){czAddEvent(window,'load',resizeLeftColumn);czAddEvent(window,'resize',forceSafariLeftColumnWidth)};
function debugOutput(str){var debugp=document.getElementById("DebugParagraph");if(!debugp){var elem=document.getElementById("Trash");if(elem){debugp=document.createElement('p');debugp.setAttribute('id',"DebugParagraph");elem.appendChild(debugp)}}
else{debugp.appendChild(document.createElement('br'))}
debugp.appendChild(document.createTextNode(str))};

/* - czCSS.js - */
// http://www.cozimo.com/portal_javascripts/czCSS.js?original=1
function czHasClassName(node,class_name){return new RegExp('\\b'+class_name+'\\b').test(node.className)};
function czAddClassName(node,class_name){if(!node.className){node.className=class_name} else if(!czHasClassName(node,class_name)){var className=node.className+" "+class_name;node.className=className.split(/\s+/).join(' ')}};
function czRemoveClassName(node,class_name){var className=node.className;if(className){className=className.replace(new RegExp('\\b'+class_name+'\\b'),'');className=className.replace(/\s+/g,' ');node.className=className.replace(/\s+$/g,'')}};
function getElementsByClassName(strClass,strTag,objContElm){strTag=strTag||"*";objContElm=objContElm||document;var objColl=(strTag=='*'&&document.all&&!window.opera)?document.all:objContElm.getElementsByTagName(strTag);var arr=new Array();var delim=strClass.indexOf('|')!=-1?'|':' ';var arrClass=strClass.split(delim);for(var i=0,j=objColl.length;i<j;i++){var arrObjClass=objColl[i].className.split(' ');if(delim==' '&&arrClass.length>arrObjClass.length) continue;var c=0;comparisonLoop:for(var k=0,l=arrObjClass.length;k<l;k++){for(var m=0,n=arrClass.length;m<n;m++){if(arrClass[m]==arrObjClass[k]) c++;if((delim=='|'&&c==1)||(delim==' '&&c==arrClass.length)){arr.push(objColl[i]);break comparisonLoop}}}}
return arr};Array.prototype.push=function(value){this[this.length]=value};

/* - czEvent.js - */
// http://www.cozimo.com/portal_javascripts/czEvent.js?original=1
function czAddEvent(element,type,handler){if(element.addEventListener){element.addEventListener(type,handler,false)} else{if(!handler.$$guid) handler.$$guid=czAddEvent.guid++;if(!element.events) element.events={};var handlers=element.events[type];if(!handlers){handlers=element.events[type]={};if(element["on"+type]){handlers[0]=element["on"+type]}}
handlers[handler.$$guid]=handler;element["on"+type]=czHandleEvent}};czAddEvent.guid=1;
function czRemoveEvent(element,type,handler){if(element.removeEventListener){element.removeEventListener(type,handler,false)} else{if(element.events&&element.events[type]){delete element.events[type][handler.$$guid]}}};
function czHandleEvent(e){var returnValue=true;var event=e||czFixEvent(((this.ownerDocument||this.document||this).parentWindow||window).event);var handlers=this.events[event.type];for(var i in handlers){this.$$handleEvent=handlers[i];if(this.$$handleEvent(event)===false){returnValue=false}}
return returnValue};
function czFixEvent(event){event.preventDefault=czFixEvent.preventDefault;event.stopPropagation=czFixEvent.stopPropagation;return event};czFixEvent.preventDefault=function(){this.returnValue=false};czFixEvent.stopPropagation=function(){this.cancelBubble=true};

/* - czCollapsible.js - */
// http://www.cozimo.com/portal_javascripts/czCollapsible.js?original=1
function czToggleCollapsible(e){var event=e||window.event;if(event.stopPropagation){event.stopPropagation()}
event.cancelBubble=true;if(hasClassName(this,'expandedController')){replaceClassName(this,'expandedController','collapsedController')}
else if(hasClassName(this,'collapsedController')){replaceClassName(this,'collapsedController','expandedController')}
var labelText=this.innerHTML;if(labelText.indexOf('View')!=-1){this.innerHTML=labelText.replace(/View/,'Hide')}
else if(labelText.indexOf('Hide')!=-1){this.innerHTML=labelText.replace(/Hide/,'View')}
var affectsIds=this.getAttribute('affects');if(affectsIds){var affectsIdsArray=affectsIds.split(' ');for(var i=0;i<affectsIdsArray.length;i++){var affectsId=affectsIdsArray[i];var collapsibleElement=document.getElementById(affectsId);if(!collapsibleElement){continue}
if(hasClassName(collapsibleElement,'collapsedContent')){replaceClassName(collapsibleElement,'collapsedContent','expandedContent')} else if(hasClassName(collapsibleElement,'expandedContent')){replaceClassName(collapsibleElement,'expandedContent','collapsedContent')}}}
return true};
function czCollapseController(element){if(element){if(hasClassName(element,'expandedController')){replaceClassName(element,'expandedController','collapsedController')}
else{addClassName(element,'collapsedController')}}};
function czExpandController(element){if(element){if(hasClassName(element,'collapsedController')){replaceClassName(element,'collapsedController','expandedController')}
else{addClassName(element,'expandedController')}}};
function czActivateCollapsibles(){if(!W3CDOM){return false}
var collapsibles=getElementsByClassName('collapsedController');collapsibles=collapsibles.concat(getElementsByClassName('expandedController'));for(var i=0;i<collapsibles.length;i++){var collapsible=collapsibles[i];czAddEvent(collapsible,'mousedown',czToggleCollapsible)}
return true};registerPloneFunction(czActivateCollapsibles);

/* - czSearch.js - */
// http://www.cozimo.com/portal_javascripts/czSearch.js?original=1
function czInitSearchBox(){var searchLink=document.getElementById('czSearchBox');var closeSearchLink=document.getElementById('closeSearch');var submitSearchLink=document.getElementById('submitSearch');if(searchLink){searchLink.onclick=czToggleSearchVisibility}
if(closeSearchLink){closeSearchLink.onclick=czToggleSearchVisibility}
if(submitSearchLink){submitSearchLink.onclick=czSubmitSearchForm}};
function czToggleSearchVisibility(){var searchBlock=document.getElementById('portal-searchbox');if(searchBlock){var displayStyle=searchBlock.style.display;var searchLink=document.getElementById('czSearchBox');if(!displayStyle||displayStyle=='none'){searchBlock.style.display='block';if(searchLink){if(!hasClassName(searchLink,'activeSearch')){addClassName(searchLink,'activeSearch')}}
var searchGadget=document.getElementById('searchGadget');if(searchGadget){searchGadget.focus()}}
else{searchBlock.style.display='none';var searchGadget=document.getElementById('searchGadget');if(searchGadget){searchGadget.value=''}
if(searchLink){if(hasClassName(searchLink,'activeSearch')){replaceClassName(searchLink,'activeSearch','')}}}}
return false};
function czSubmitSearchForm(){var searchForm=document.searchform;if(searchForm){searchForm.submit()}
return false};
function czAddEventSimple(obj,evt,fn){if(obj.addEventListener){obj.addEventListener(evt,fn,false)}
else if(obj.attachEvent){obj.attachEvent('on'+evt,fn)}};czAddEventSimple(window,'load',czInitSearchBox);

/* - czPortalMessage.js - */
// http://www.cozimo.com/portal_javascripts/czPortalMessage.js?original=1
function czAttachCloseMessageCb(){var triggers=getElementsByClassName('messageDismissTrigger');for(var i=0;i<triggers.length;i++){var trigger=triggers[i];czAddEvent(trigger,'mousedown',czClosePortalMessage)}};
function czClosePortalMessage(){var portalMessageDiv=document.getElementById('czPortalMessage');if(portalMessageDiv){portalMessageDiv.parentNode.removeChild(portalMessageDiv)}
var portalStatusMessageDiv=document.getElementById('czPortalStatusMessage');if(portalStatusMessageDiv){portalStatusMessageDiv.parentNode.removeChild(portalStatusMessageDiv)}
return false};
function czAddPortalMessage(msg,dismissLabel){var contentDiv=document.getElementById('region-content');if(contentDiv){var currentMessages=getElementsByClassName('portalMessage','div',contentDiv);for(var i=0;i<currentMessages.length;i++){contentDiv.removeChild(currentMessages[i])}
var msgDiv=document.createElement('div');addClassName(msgDiv,'portalMessage');var msgDismiss=document.createElement('div');addClassName(msgDismiss,'messageDismissTrigger');addClassName(msgDismiss,'iceResizer');msgDiv.id='czPortalMessage';var msgDismissText=document.createTextNode(dismissLabel);msgDismiss.appendChild(msgDismissText);msgDiv.appendChild(msgDismiss);var msgTextNode=document.createTextNode(msg);msgDiv.appendChild(msgTextNode);czAddEvent(msgDismiss,'mousedown',czClosePortalMessage);contentDiv.insertBefore(msgDiv,contentDiv.childNodes[0]);czLerpMessage()}};registerPloneFunction(czAttachCloseMessageCb);

/* - czXMLHTTP.js - */
// http://www.cozimo.com/portal_javascripts/czXMLHTTP.js?original=1
function sendRequest(url,callback,postData){var req=createXMLHTTPObject();if(!req) return;var method=(postData)?"POST":"GET";var isMSIE=/MSIE (6|7|8)/.test(navigator.userAgent);if(method=="GET"&&isMSIE){if(url.indexOf('?')!=-1){url+='&rid='+Math.random()}
else{url+='?rid='+Math.random()}}
req.open(method,url,true);req.setRequestHeader('User-Agent','XMLHTTP/1.0');if(postData){req.setRequestHeader('Content-type','application/x-www-form-urlencoded')}
req.onreadystatechange=function(){if(req.readyState!=4) return;if(req.status!=200&&req.status!=304){alert('HTTP error '+req.status);return}
callback(req)};if(req.readyState==4) return;req.send(postData)};var XMLHttpFactories=[
function(){return new XMLHttpRequest()},
function(){return new ActiveXObject("Msxml2.XMLHTTP")},
function(){return new ActiveXObject("Msxml3.XMLHTTP")},
function(){return new ActiveXObject("Microsoft.XMLHTTP")},];
function createXMLHTTPObject(){var xmlhttp=false;for(var i=0;i<XMLHttpFactories.length;i++){try{xmlhttp=XMLHttpFactories[i]()}
catch(e){continue}
break}
return xmlhttp};

/* - czAsyncState.js - */
// http://www.cozimo.com/portal_javascripts/czAsyncState.js?original=1
function changeStateAsync(folderId,itemId,targetState){var qs='?itemId='+itemId;qs+='&folderId='+folderId;qs+='&targetState='+targetState;sendRequest('updateState'+qs,changeStateResponse);return false}
function changeStateResponse(req){var stateChangeResponse=eval('('+req.responseText+')');var status=stateChangeResponse.status;if(status!='OK'){alert(status);return}
var state=stateChangeResponse.state;var itemId=stateChangeResponse.itemId;var radioButton=document.getElementById('ca_'+itemId);if(radioButton){var lis=radioButton.getElementsByTagName('li');for(var i=0;i<lis.length;i++){var li=lis[i];if(li.innerHTML.indexOf(state)!=-1){replaceClassName(li,'radioUnselected','radioSelected')}
else{replaceClassName(li,'radioSelected','radioUnselected')}}
var stateContainer=radioButton;while((stateContainer.className.indexOf('stateContainer')==-1)&&(stateContainer!=document)){stateContainer=stateContainer.parentNode}
if(stateContainer.className.indexOf('stateContainer')!=-1){var divs=stateContainer.getElementsByTagName('div');for(var i=0;i<divs.length;++i){var div=divs[i];if(div.className.indexOf('itemState_'+itemId)!=-1){stateContainer.className=stateContainer.className.replace('publicRow','');stateContainer.className=stateContainer.className.replace('staffRow','');switch(state){case 'workgroup':div.innerHTML='WORKGROUP';div.className='itemState_'+itemId+' workgroupLabel';break;case 'public':div.innerHTML='PUBLIC';div.className='itemState_'+itemId+' publicLabel';stateContainer.className=stateContainer.className+' publicRow';break;case 'staff':div.innerHTML='STAFF';div.className='itemState_'+itemId+' staffLabel';stateContainer.className=stateContainer.className+' staffRow';break}
break}}}}}


/* - czAsyncRole.js - */
// http://www.cozimo.com/portal_javascripts/czAsyncRole.js?original=1
function changeRoleAsync(memberId,targetRole,altRole,workgroupId){var qs='?memberId='+memberId;qs+='&targetRole='+targetRole;qs+='&altRole='+altRole;qs+='&workgroupId='+workgroupId;sendRequest('updateRole'+qs,changeRoleResponse);return false};
function changeRoleResponse(req){var roleChangeResponse=eval('('+req.responseText+')');var role=roleChangeResponse.role;var memberId=roleChangeResponse.memberId;var workgroupId=roleChangeResponse.workgroupId;var radioButton=document.getElementById(workgroupId+memberId);if(radioButton){var lis=radioButton.getElementsByTagName('li');for(var i=0;i<lis.length;i++){var li=lis[i];var anchor=li.getElementsByTagName('a')[0];if(anchor.innerHTML.indexOf(role)!=-1){replaceClassName(li,'radioUnselected','radioSelected')}
else{replaceClassName(li,'radioSelected','radioUnselected')}}}};

/* - usableForms.js - */
// http://www.cozimo.com/portal_javascripts/usableForms.js?original=1
var containerTag='div';var compatible=(document.getElementById&&document.getElementsByTagName&&document.createElement&&!(navigator.userAgent.indexOf('MSIE 5')!=-1&&navigator.userAgent.indexOf('Mac')!=-1));if(compatible){document.write('<style>.accessibility{display: none}</style>');var waitingRoom=document.createElement('div')}
var hiddenFormFieldsPointers=new Object();
function prepareForm(){if(!compatible) return;var marker=document.createElement(containerTag);marker.style.display='none';var x=document.getElementsByTagName('select');for(var i=0;i<x.length;i++){addEvent(x[i],'change',showHideFields)}
var x=document.getElementsByTagName(containerTag);var hiddenFields=new Array;for(var i=0;i<x.length;i++){if(x[i].getAttribute('rel')){var y=getAllFormFields(x[i]);x[i].nestedRels=new Array();for(var j=0;j<y.length;j++){var rel=y[j].getAttribute('rel');if(!rel||rel=='none') continue;x[i].nestedRels.push(rel)}
if(!x[i].nestedRels.length){x[i].nestedRels=null}
hiddenFields.push(x[i])}}
while(hiddenFields.length){var rel=hiddenFields[0].getAttribute('rel');if(!hiddenFormFieldsPointers[rel])
hiddenFormFieldsPointers[rel]=new Array();var relIndex=hiddenFormFieldsPointers[rel].length;hiddenFormFieldsPointers[rel][relIndex]=hiddenFields[0];var newMarker=marker.cloneNode(true);newMarker.id=rel+relIndex;hiddenFields[0].parentNode.replaceChild(newMarker,hiddenFields[0]);waitingRoom.appendChild(hiddenFields.shift())}
setDefaults();addEvent(document,'click',showHideFields)};
function setDefaults(){var y=document.getElementsByTagName('input');for(var i=0;i<y.length;i++){if(y[i].checked&&y[i].getAttribute('rel')){intoMainForm(y[i].getAttribute('rel'))}}
var z=document.getElementsByTagName('select');for(var i=0;i<z.length;i++){if(z[i].options[z[i].selectedIndex].getAttribute('rel')){intoMainForm(z[i].options[z[i].selectedIndex].getAttribute('rel'))}}};
function showHideFields(e){if(!e) var e=window.event;var tg=e.target||e.srcElement;if(tg.nodeName=='LABEL'){var relatedFieldName=tg.getAttribute('for')||tg.getAttribute('htmlFor');tg=document.getElementById(relatedFieldName)}
if(!(tg.nodeName=='SELECT'&&e.type=='change')&&!(tg.nodeName=='INPUT'&&tg.getAttribute('rel'))) return;var fieldsToBeInserted=tg.getAttribute('rel');if(tg.type=='checkbox'){if(tg.checked){intoMainForm(fieldsToBeInserted)}
else{intoWaitingRoom(fieldsToBeInserted)}}
else if(tg.type=='radio'){removeOthers(tg.form[tg.name],fieldsToBeInserted);intoMainForm(fieldsToBeInserted)}
else if(tg.type=='select-one'){fieldsToBeInserted=tg.options[tg.selectedIndex].getAttribute('rel');removeOthers(tg.options,fieldsToBeInserted);intoMainForm(fieldsToBeInserted)}};
function removeOthers(others,fieldsToBeInserted){for(var i=0;i<others.length;i++){var show=others[i].getAttribute('rel');if(show==fieldsToBeInserted) continue;intoWaitingRoom(show)}};
function intoWaitingRoom(relation){if(relation=='none') return;var Elements=hiddenFormFieldsPointers[relation];for(var i=0;i<Elements.length;i++){waitingRoom.appendChild(Elements[i]);if(Elements[i].nestedRels){for(var j=0;j<Elements[i].nestedRels.length;j++){intoWaitingRoom(Elements[i].nestedRels[j])}}}};
function intoMainForm(relation){if(relation==null) return;if(relation=='none') return;var Elements=hiddenFormFieldsPointers[relation];for(var i=0;i<Elements.length;i++){var insertPoint=document.getElementById(relation+i);insertPoint.parentNode.insertBefore(Elements[i],insertPoint);if(Elements[i].nestedRels){var fields=getAllFormFields(Elements[i]);for(var j=0;j<fields.length;j++){if(!fields[j].getAttribute('rel')) continue;if(fields[j].checked||fields[j].selected)
intoMainForm(fields[j].getAttribute('rel'))}}}};
function getAllFormFields(node){var allFormFields=new Array;var x=node.getElementsByTagName('input');for(var i=0;i<x.length;i++){allFormFields.push(x[i])}
var y=node.getElementsByTagName('option');for(var i=0;i<y.length;i++){allFormFields.push(y[i])}
return allFormFields};
function addEvent(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false)}
else if(obj.attachEvent){obj.attachEvent("on"+type,fn)}};addEvent(window,"load",prepareForm);
function Array_push(){var A_p=0;for(A_p=0;A_p<arguments.length;A_p++){this[this.length]=arguments[A_p]}
return this.length};if(typeof Array.prototype.push=="undefined"){Array.prototype.push=Array_push};
function Array_shift(){var A_s=0;var response=this[0];for(A_s=0;A_s<this.length-1;A_s++){this[A_s]=this[A_s+1]}
this.length--;return response};if(typeof Array.prototype.shift=="undefined"){Array.prototype.shift=Array_shift}


/* - czUploadForm.js - */
// http://www.cozimo.com/portal_javascripts/czUploadForm.js?original=1
function czDisableSubmit(){var inputs=document.getElementsByTagName('input');for(var i=0;i<inputs.length;i++){var input=inputs[i];if(input.type=='submit'&&(input.value=='upload'||input.value=='upload and add another file')){czAddEvent(input,'click',czDisableInput)}}
return false};
function czDisableInput(){var name_input=document.getElementById('item_name');name_input.readOnly=true;var description_input=document.getElementById('item_description');description_input.readOnly=true;var inputDiv=this.parentNode;var elements=inputDiv.childNodes;for(var i=0;i<elements.length;i++){var element=elements[i];if(element.className){addClassName(elements[i],'hiddenStructure')}}
var loading=document.getElementById('loading');if(loading){removeClassName(loading,'hiddenStructure')}};registerPloneFunction(czDisableSubmit);
