
Function.prototype.inheritsFrom=function(parentClass)
{this.prototype=new parentClass;this.prototype.constructor=this;this.prototype._parent=parentClass.prototype;}
var dhtmlapi={_isCSS:false,_isW3C:false,_isIE4:false,_isNN4:false,_isIE6CSS:false,isIE:false,isGecko:false,isSafari:false,isFirefox:false,isKonqueror:false,version:0,initialize:function()
{BrowserDetect.init();if(document.images){this._isCSS=(document.body&&document.body.style)?true:false;this._isW3C=(this._isCSS&&document.getElementById)?true:false;this._isIE4=(this._isCSS&&document.all)?true:false;this._isNN4=(document.layers)?true:false;this._isIE6CSS=(document.compatMode&&document.compatMode.indexOf("CSS1")>=0)?true:false;}
var ua=navigator.userAgent.toLowerCase();dhtmlapi.isIE=((ua.indexOf("msie")!=-1)&&(ua.indexOf("opera")==-1)&&(ua.indexOf("webtv")==-1));dhtmlapi.isGecko=(ua.indexOf("gecko")!=-1);dhtmlapi.isFirefox=(ua.toLowerCase().indexOf("firefox")!=-1);dhtmlapi.isKonqueror=(ua.indexOf("konqueror")!=-1);dhtmlapi.isSafari=(ua.toLowerCase().indexOf("safari")!=-1||ua.toLowerCase().indexOf("applewebkit")!=-1||BrowserDetect.browser=="Safari");var idx;var idxStart;var ch;var verstr;if(dhtmlapi.isIE==true){var offset=ua.indexOf("msie ");dhtmlapi.version=parseFloat(ua.substring(offset+5,ua.indexOf(";",offset)));}
if(dhtmlapi.isSafari==true){dhtmlapi.version=100;idx=ua.toLowerCase().indexOf('applewebkit/');if(idx!=-1){idx+=12;idxStart=idx;ch=ua.charAt(idx);while(ch>='0'&&ch<='9'){idx++;ch=ua.charAt(idx);}
verstr=ua.substring(idxStart,idx);dhtmlapi.version=parseInt(verstr);}
if(ua.indexOf("522")!=-1)
dhtmlapi.version=522;}
if(dhtmlapi.isFirefox==true){dhtmlapi.version=1;idx=ua.toLowerCase().indexOf('firefox/');if(idx!=-1){idx+=8;idxStart=idx;ch=ua.charAt(idx);while(ch>='0'&&ch<='9'){idx++;ch=ua.charAt(idx);}
verstr=ua.substring(idxStart,idx);dhtmlapi.version=parseInt(verstr);}}},isIE7:function()
{var plat=BrowserDetect.OS;var browser=BrowserDetect.browser;var version=BrowserDetect.version;if(plat=="Windows")
{if(browser=="Explorer"){if(version>6){return true;}}}
return false;},isMSIE:function()
{var plat=BrowserDetect.OS;var browser=BrowserDetect.browser;var version=BrowserDetect.version;if(plat=="Windows")
{if(browser=="Explorer"){return true;}}
return false;},isMac:function()
{var plat=BrowserDetect.OS;if(plat!="Windows"&&plat!="Linux")
{return true;}
return false;},isSecureBrowser:function(){var plat=BrowserDetect.OS;var browser=BrowserDetect.browser;var version=BrowserDetect.version;if(browser=="Explorer"){if(version>6){return true;}
else
return false;}
if(browser=="Firefox"){return true;}
if(browser="Safari"){return true;}
return false;},seekLayer:function(doc,name)
{var theObj;for(var i=0;i<doc.layers.length;i++){if(doc.layers[i].name==name){theObj=doc.layers[i];break;}
if(doc.layers[i].document.layers.length>0){theObj=seekLayer(document.layers[i].document,name);}}
return theObj;},getObject:function(obj)
{var theObj;if(typeof obj=="string"){if(this._isW3C){theObj=document.getElementById(obj);}
else if(this._isIE4){theObj=document.all(obj);}
else if(this._isNN4){theObj=seekLayer(document,obj);}}
else{theObj=obj;}
return theObj;},clearObject:function(obj)
{var elem=obj.firstChild;while(elem!=null){obj.removeChild(elem);elem=obj.firstChild;}},getStyleObject:function(obj)
{var theObj=this.getObject(obj);if(theObj&&this._isCSS){theObj=theObj.style;}
return theObj;},shiftTo:function(obj,x,y)
{var theObj=this.getStyleObject(obj);if(theObj){if(this._isCSS){var units=(typeof theObj.left=="string")?"px":0;theObj.left=x+units;theObj.top=y+units;}
else if(this._isNN4){theObj.moveTo(x,y);}}},shiftBy:function(obj,deltaX,deltaY)
{var theObj=this.getStyleObject(obj);if(theObj){if(this._isCSS){var units=(typeof theObj.left=="string")?"px":0;theObj.left=this.getObjectLeft(obj)+deltaX+units;theObj.top=this.getObjectTop(obj)+deltaY+units;}
else if(this._isNN4){theObj.moveBy(deltaX,deltaY);}}},setZIndex:function(obj,zOrder)
{var theObj=this.getStyleObject(obj);if(theObj){theObj.zIndex=zOrder;}},getZIndex:function(obj)
{var theObj=this.getStyleObject(obj);if(theObj){return theObj.zIndex;}
else{return 0;}},setBGColor:function(obj,color)
{var theObj=this.getStyleObject(obj);if(theObj){if(this._isNN4){theObj.bgColor=color;}
else if(this._isCSS){theObj.backgroundColor=color;}}},show:function(obj)
{var theObj=this.getStyleObject(obj);if(theObj){theObj.visibility="visible";}},hide:function(obj)
{var theObj=this.getStyleObject(obj);if(theObj){theObj.visibility="hidden";}},getObjectLeft:function(obj)
{var elem=this.getObject(obj);var result=0;if(elem.style["left"]){result=elem.style["left"];}
else if(elem.currentStyle){result=elem.currentStyle["left"];}
else if(document.defaultView&&document.defaultView.getComputedStyle){var style=document.defaultView;var cssDecl=style.getComputedStyle(elem,"");result=cssDecl.getPropertyValue("left");}
return parseInt(result);},getObjectStyle:function(obj,property)
{var elem=this.getObject(obj);var result=0;if(elem.style[property]){result=elem.style[property];}
else if(elem.currentStyle){result=elem.currentStyle[property];}
else if(document.defaultView&&document.defaultView.getComputedStyle){var style=document.defaultView;var cssDecl=style.getComputedStyle(elem,"");result=cssDecl.getPropertyValue(property);}
return parseInt(result);},getObjectTop:function(obj)
{var elem=this.getObject(obj);var result=0;if(elem.style["left"]){result=elem.style["top"];}
else if(elem.currentStyle){result=elem.currentStyle["top"];}
else if(document.defaultView&&document.defaultView.getComputedStyle){var style=document.defaultView;var cssDecl=style.getComputedStyle(elem,"");result=cssDecl.getPropertyValue("top");}
return parseInt(result);},getObjectWidth:function(obj)
{var elem=this.getObject(obj);var result=0;if(elem.offsetWidth){result=elem.offsetWidth;}
else if(elem.clip&&elem.clip.width){result=elem.clip.width;}
else if(elem.style){if(elem.style.pixelWidth)
result=elem.style.pixelWidth;else if(elem.style.width)
result=elem.style.width;}
return parseInt(result);},getObjectHeight:function(obj)
{var elem=this.getObject(obj);var result=0;if(elem.offsetHeight){result=elem.offsetHeight;}
else if(elem.clip&&elem.clip.height){result=elem.clip.height;}
else if(elem.style){if(elem.style.pixelHeight)
result=elem.style.pixelHeight;else if(elem.style.height)
result=elem.style.height;}
return parseInt(result);},getWindowLocation:function()
{var t=null;var l=null;if(this.isIE){t=window.screenTop;l=window.screenLeft;}
else{top=window.screenY;l=window.screenX;}
return{top:t,left:l};},getInsideWindowWidth:function()
{if(window.innerWidth){return window.innerWidth;}
else if(this._isIE6CSS){return document.body.parentNode.clientWidth;}
else if(document.body&&document.body.clientWidth){return document.body.clientWidth;}
return 0;},getInsideWindowHeight:function()
{if(window.innerHeight){return window.innerHeight;}
else if(this._isIE6CSS){return document.body.parentNode.clientHeight;}
else if(document.body&&document.body.clientHeight){return document.body.clientHeight;}
return 0;},centerOnElement:function(base,child)
{baseElem=this.getObject(base);childElem=this.getObject(child);var offsetTrail=baseElem;var offsetLeft=0;var offsetTop=0;while(offsetTrail){offsetLeft+=offsetTrail.offsetLeft;offsetTop+=offsetTrail.offsetTop;offsetTrail=offsetTrail.offsetParent;}
if(navigator.userAgent.indexOf("Mac")!=-1&&typeof document.body.leftMargin!="undefined"){offsetLeft+=document.body.leftMargin;offsetTop+=document.body.topMargin;}
childElem.style.left=offsetLeft+parseInt(baseElem.offsetWidth/2)-
parseInt(childElem.offsetWidth/2)+"px";childElem.style.top=offsetTop+parseInt(baseElem.offsetHeight/2)-
parseInt(childElem.offsetHeight/2)+"px";},centerOnWindow:function(elem)
{var obj=this.getObject(elem);var scrollX=0;var scrollY=0;if(document.body&&typeof document.body.scrollTop!="undefined"){scrollX+=document.body.scrollLeft;scrollY+=document.body.scrollTop;if(document.body.parentNode&&typeof document.body.parentNode.scrollTop!="undefined"){scrollX+=document.body.parentNode.scrollLeft;scrollY+=document.body.parentNode.scrollTop;}}
else if(typeof window.pageXOffset!="undefined"){scrollX+=window.pageXOffset;scrollY+=window.apgeYOffset;}
var x=Math.round((this.getInsideWindowWidth()/2)-
(this.getObjectWidth(obj)/2))+scrollX;var y=Math.round((this.getInsideWindowHeight()/2)-
(this.getObjectHeight(obj)/2))+scrollY;this.shiftTo(obj,x,y);this.show(obj);},getElementPosition:function(elem)
{var offsetTrail=this.getObject(elem);var offsetLeft=0;var offsetTop=0;while(offsetTrail){offsetLeft+=offsetTrail.offsetLeft;offsetTop+=offsetTrail.offsetTop;offsetTrail=offsetTrail.offsetParent;}
if(navigator.userAgent.indexOf("Mac")!=-1&&typeof document.body.leftMargin!="undefined")
{offsetLeft+=document.body.leftMargin;offsetTop+=document.body.topMargin;}
return{left:offsetLeft,top:offsetTop};},getPageScroll:function()
{var yScroll;var xScroll;if(self.pageXOffset)
xScroll=self.pageXOffset;else if(document.documentElement&&document.documentElement.scrollLeft)
xScroll=document.documentElement.scrollLeft;else if(document.body)
xScroll=document.body.scrollLeft;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;var obj={scrollX:xScroll,scrollY:yScroll}
return obj;},getPageSize:function(){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;}
return{pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:windowWidth,windowHeight:windowHeight};},getOpacity:function(obj)
{var opacity=null;if(this.isIE){var elem=dhtmlapi.getObject(obj);opacity=elem.style.filter;if(opacity==null||opacity=='')
return parseFloat("0.0");var arr=opacity.match(/alpha\(opacity=(.*)\)/);if(arr.length!=0){return parseFloat(arr[1])/100;}}
else{opacity=this.getObjectStyle(obj,'opacity');if(opacity!=null)
return parseFloat(opacity);}
return 1.0;},setOpacity:function(obj,value)
{var elem=dhtmlapi.getObject(obj);if(value==1)
{if(this.isIE){var old=elem.style.filter;elem.style.filter=old.replace(/alpha\([^\)]*\)/gi,'');}
else{if(this.isGecko&&!(this.isKonqueror||this.isSafari))
elem.style.opacity=0.999999;else
elem.style.opacity=null;}}else{if(value<0.00001)
value=0;elem.style.opacity=value;if(this.isIE){var old=elem.style.filter;old=old.replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+(value*100)+')';elem.style.filter=old;}}},getRangeText:function(rng)
{if(rng==null)
return null;if(this.isIE)
return rng.text;else
return rng.toString();}};if(String.prototype.localeCompare==null)
{String.prototype.localeCompare=function(dst){return((this==dst)?0:((this<dst)?-1:1));};}
var arrayUtils={append:function(array,element){array[array.length]=element;},insert:function(array,i,x){if(i<=0){return[x].concat(array);}else if(i>=array.length){return array.concat([x]);}else{return array.slice(0,i).concat([x],array.slice(i,array.length));}},insertAt:function(array,i,x){var save=null;for(var j=array.length-1;j>i;j--)
{array[j]=array[j-1];}
array[i]=x;},del:function(array,i){if(i==0){return array.slice(1);}else{return array.slice(0,i).concat(array.slice(i+1,array.length));}},clone:function(array){return array.concat();},push:function(array,x){return arrayUtils.insert(array,0,x);},pop:function(array){return arrayUtils.del(array,0);},find:function(array,x,compareFunc){for(var i in array){if((compareFunc!=null&&compareFunc(array[i],x)==0)||array[i]==x){return i-0;}}
return-1;},remove:function(array,x,compareFunc){var i=arrayUtils.find(array,x,compareFunc);return arrayUtils.del(array,i);},hasItem:function(array,x){for(var i in array){if(array[i]==x)
return true;}
return false;},addIfUnique:function(array,x){if(!arrayUtils.hasItem(array,x))
arrayUtils.append(array,x);}};function encode_base64(what)
{var base64_encodetable="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";var result="";var len=what.length;var x,y;var ptr=0;while(len-->0)
{x=what.charCodeAt(ptr++);result+=base64_encodetable.charAt((x>>2)&63);if(len--<=0)
{result+=base64_encodetable.charAt((x<<4)&63);result+="==";break;}
y=what.charCodeAt(ptr++);result+=base64_encodetable.charAt(((x<<4)|((y>>4)&15))&63);if(len--<=0)
{result+=base64_encodetable.charAt((y<<2)&63);result+="=";break;}
x=what.charCodeAt(ptr++);result+=base64_encodetable.charAt(((y<<2)|((x>>6)&3))&63);result+=base64_encodetable.charAt(x&63);}
return result;}
function decode_base64(what)
{var base64_decodetable=new Array(255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,52,53,54,55,56,57,58,59,60,61,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,63,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,255,255,255,255,255);var result="";var len=what.length;var x,y;var ptr=0;while(!isNaN(x=what.charCodeAt(ptr++)))
{if(x==13||x==10)
continue;if((x>127)||((x=base64_decodetable[x])==255))
return false;if((isNaN(y=what.charCodeAt(ptr++)))||((y=base64_decodetable[y])==255))
return false;result+=String.fromCharCode((x<<2)|(y>>4));if((x=what.charCodeAt(ptr++))==61)
{if((what.charCodeAt(ptr++)!=61)||(!isNaN(what.charCodeAt(ptr))))
return false;}
else
{if((x>127)||((x=base64_decodetable[x])==255))
return false;result+=String.fromCharCode((y<<4)|(x>>2));if((y=what.charCodeAt(ptr++))==61)
{if(!isNaN(what.charCodeAt(ptr)))
return false;}
else
{if((y>127)||((y=base64_decodetable[y])==255))
return false;result+=String.fromCharCode((x<<6)|y);}}}
return result;}
function wrap76(what)
{var result="";var i;for(i=0;i<what.length;i+=76)
{result+=what.substring(i,i+76)+String.fromCharCode(13)+String.fromCharCode(10);}
return result;}
function encryptURLParams(msg)
{var mode=0;var key="pikiwiki";var iv=null;var padding=1;var encrypt=1;var ciphertext=des(key,msg,encrypt,mode,iv,padding);var b64=encode_base64(ciphertext);return b64;}
var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;}
else if(dataProp)
return data[i].identity;}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1)return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser:[{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserWarning.object=null;BrowserWarning.prototype._cbFunc;BrowserWarning.prototype._dialog;function BrowserWarning(cbFunc)
{this._cbFunc=cbFunc;this._dialog=null;}
BrowserWarning.report=function(cbFunc)
{showWarn=Cookie.getCookie("pw_browserwarn");if(showWarn==null||showWarn==""||showWarn=="true"){var bw=new BrowserWarning(cbFunc);BrowserWarning.object=bw;bw.alert();}
else if(cbFunc!=null)
cbFunc(false);}
BrowserWarning.dialogCB=function()
{var bw=BrowserWarning.object;var elem=bw._dialog.getElementById("hidemessage");var exp=new Date();var now_plus_one_year=exp.getTime()+(365*24*3600*1000);exp.setTime(now_plus_one_year);Cookie.setCookie("pw_browserwarn",((elem.checked==true)?"false":"true"));if(bw._cbFunc!=null)
bw._cbFunc(true);}
BrowserWarning.prototype.alert=function()
{var plat=BrowserDetect.OS;var browser=BrowserDetect.browser;var version=BrowserDetect.version;var showWarn=false;var msg;if(httpuseragent!=null){var usera=httpuseragent.toLowerCase();if(usera.indexOf("yplus")!=-1)
browser="Yahoo";}
if(plat=="Mac"){if(browser=="Safari"){var ua=navigator.userAgent.toLowerCase();var isSafari3=false;if(ua.indexOf("522")!=-1)
isSafari3=true;if(ua.indexOf("")!=-1)
browser
if(isSafari3){showWarn=true;msg="Safari 3 does NOT support all PikiWiki features!<br/><br/>"+"Basic features, including viewing and editing pages work fine.  However:<br/><br/>"+"* You CANNOT directly drag & drop pictures, video, and other files onto PikiWiki pages.<br/>   "+"* INSTEAD, you CAN add files with our file upload tool.<br/>"+"* You CANNOT record audio or video to PikiWiki pages.<br/>"+"We are working hard to bring full support to the Mac.  Stay Tuned! ";}
else{showWarn=true;msg="Safari 2 is not fully supported!<br/><br/>"+"Safari 2 works OK to view PikiWiki pages.  However:<br/><br/>"+"* You CANNOT edit or make new PikiWiki pages.<br/>"+"* Your PikiWiki Home Page will be buggy.<br/><br/>"+"If you wish to edit pages, try PikiWiki with Safari 3 (Beta) or Firefox on the Mac.";}}
else{if(browser=="Firefox"){if(version=="2"){showWarn=true;msg="Firefox on the Mac is not fully supported!<br/><br/>"+"Basic features, including viewing and editing pages work fine.  However:<br/><br/>"+"* You CANNOT directly drag & drop pictures, video, and other files onto PikiWiki pages. <br/>"+"* INSTEAD, you CAN add files with our file upload tool.<br/>"+"* Recording Audio and Video may cause Firefox to close unexpectedly for some users. <br/><br/>"+"We are working hard to bring full support to the Mac.  Stay Tuned! ";}
else{showWarn=true;msg=msg="Your web browser, Firefox"+version+" is not supported by PikiWiki!<br/><br/>"+"It may work to some degree, but you will probably run into problems using your current browser.<br/>"+"We recommend the following browsers for the best PikiWiki experience:<br/><br/>"+"Windows:<br/>"+"Internet Explorer 6 or 7<br/>"+"Firefox 2<br/><br/>"+"Mac:<br/>"+"Safari 3<br/>"+"Firefox 2";}}
else{showWarn=true;msg="Your web browser is not supported by PikiWiki!<br/><br/>"+"It may work to some degree, but you will probably run into problems using your current browser.<br/>"+"We recommend the following browsers for the best PikiWiki experience:<br/><br/>"+"Windows:<br/>"+"Internet Explorer 6 or 7<br/>"+"Firefox 2<br/><br/>"+"Mac:<br/>"+"Safari 3<br/>"+"Firefox 2";}}}
else{if(plat=="Windows"){if(browser!="Firefox"&&browser!="Explorer"&&browser!="Safari"&&browser!="Yahoo"){showWarn=true;msg=msg="Your web browser is not supported by PikiWiki!<br/><br/>"+"It may work to some degree, but you will probably run into problems using your current browser.<br/>"+"We recommend the following browsers for the best PikiWiki experience:<br/><br/>"+"Windows:<br/>"+"Internet Explorer 6 or 7<br/>"+"Firefox 2<br/><br/>"+"Mac:<br/>"+"Safari 3<br/>"+"Firefox 2";}
else{if(browser=="Safari"){showWarn=true;msg="Safari 3 does NOT support all PikiWiki features!<br/><br/>"+"Basic features, including viewing and editing pages work fine.  However:<br/><br/>"+"* You CANNOT directly drag & drop pictures, video, and other files onto PikiWiki pages.<br/>   "+"* INSTEAD, you CAN add files with our file upload tool.<br/>"+"We are working hard to bring full support to Safari. Stay Tuned! ";}
if(browser=="Yahoo"&&version=="6"){showWarn=true;msg="The AT&T/Yahoo SBC browser does NOT support all PikiWiki features!<br/><br/>"+"Basic features, including viewing and editing pages work fine.  However:<br/><br/>"+"* You CANNOT directly drag & drop pictures, video, and other files onto PikiWiki pages.<br/>   "+"* INSTEAD, you CAN add files with our file upload tool.<br/>"+"There is a known bug by the Yahoo Browser dev team related with Java and Javascript.  <br/><br/> "+"Please use either Internet Explorer 6/7, or Firefox 2 if you'd like to use our drag and drop feature.";}}}
else{showWarn=true;msg="Your web browser is not supported by PikiWiki!<br/><br/>"+"It may work to some degree, but you will probably run into problems using your current browser.<br/>"+"We recommend the following browsers for the best PikiWiki experience:<br/><br/>"+"Windows:<br/>"+"Internet Explorer 6 or 7<br/>"+"Firefox 2<br/><br/>"+"Mac:<br/>"+"Safari 3<br/>"+"Firefox 2";}}
if(!showWarn){if(this._cbFunc!=null)
this._cbFunc(false);}
else{var options=["okButton","width=600"];this._dialog=ModalDialog.createInstance(options,BrowserWarning.dialogCB,null);var s='<table width="95%">'+'<tr valign=center><td align=left><div class=mediumText>'+msg+'<br><br></div></td></tr>'+'<tr><td align=center>'+'<input class=smallText type=checkbox id=hidemessage>'+'<span class=smallText>Don\'t show this message again</span>'+'</td></tr></table>';this._dialog.render(s);}}
ColorSelection.prototype._title;ColorSelection.prototype._colors;function ColorSelection(title,c1,c2,c3,c4,c5,c6)
{this._title=title;this._colors=new Array(6);this._colors[0]=c1;this._colors[1]=c2;this._colors[2]=c3;this._colors[3]=c4;this._colors[4]=c5;this._colors[5]=c6;}
ColorSelection.parse=function(xml)
{var list=xml.getElementsByTagName("color");if(list==null)return null;var color=list.item(0);if(color==null)return null;var title=color.getAttribute("title");var cs=new ColorSelection();cs._title=title;cs._colors=new Array(6);var idx=0;for(var elem=color.firstChild;elem;elem=elem.nextSibling){cs._colors[idx++]=xmlutils.getNodeText(elem);}
for(;idx<6;idx++)
cs._colors[idx]='black';return cs;}
ColorSelection.prototype.setColors=function(list)
{for(var i=0;i<6;i++)
this._colors[i]=list[i];}
ColorSelection.prototype.getData=function(columnId,clientData)
{var lc=null;var str='<div style="position:relative;height:16px;width:144px;">'+'  <div style="position:absolute;top:0px;left:0px;width:48;height:16;background-color:"'+this._colors[0]+';"></div>'+'  <div style="position:absolute;top:0px;left:48px;width:48;height:16;background-color:"'+this._colors[1]+';"></div>'+'  <div style="position:absolute;top:0px;left:96px;width:48;height:16;background-color:"'+this._colors[2]+';"></div>';str+='</div>';lc=new ListCell(ListCell.TYPE_CONTAINER,str,16,144);return lc;}
ColorSelection.prototype.toXmlString=function()
{var str='<color title="'+this._title+'">'+'<c1>'+this._colors[0]+'</c1>'+'<c2>'+this._colors[1]+'</c2>'+'<c3>'+this._colors[2]+'</c3>'+'<c4>'+this._colors[3]+'</c4>'+'<c5>'+this._colors[4]+'</c5>'+'<c6>'+this._colors[5]+'</c6>'+'</color>';return str;}
function Cookie()
{}
Cookie.clearCookie=function(cookieName){var now=new Date();var yesterday=new Date(now.getTime()-1000*60*60*24);this.setCookie(cookieName,'cookieValue',yesterday);};Cookie.setCookie=function(cookieName,cookieValue,expires,path,domain,secure){document.cookie=escape(cookieName)+'='+escape(cookieValue)
+(expires?'; expires='+expires.toGMTString():'')
+(path?'; path='+path:'')
+(domain?'; domain='+domain:'')
+(secure?'; secure':'');};Cookie.getCookie=function(cookieName){var cookieValue='';var posName=document.cookie.indexOf(escape(cookieName)+'=');if(posName!=-1){var posValue=posName+(escape(cookieName)+'=').length;var endPos=document.cookie.indexOf(';',posValue);if(endPos!=-1)cookieValue=unescape(document.cookie.substring(posValue,endPos));else cookieValue=unescape(document.cookie.substring(posValue));}
return(cookieValue);};var gDebugWindow=null;var gDebugMode=false;var gDebugWindowReady=false;function createDebugWindow()
{var params="height=450, width=700, resizable, scrollbars";gDebugWindow=window.open("debug.htm","debug",params);gDebugMode=true;}
function debugLog(str,doNotEscape)
{var mainWindow=window;if(!mainWindow.gDebugMode)
return;if(mainWindow.gDebugWindow==null||mainWindow.gDebugWindow!=null&&mainWindow.gDebugWindow.closed)
return;if(!mainWindow.gDebugWindowReady)
return;mainWindow.gDebugWindow.log(str,doNotEscape);}
function toggleDebugMode()
{ASSERT(isMainWindow(window));if(!gDebugMode)
{gDebugMode=true;if(gDebugWindow==null||gDebugWindow!=null&&gDebugWindow.closed)
{gDebugWindow=window.open("debugWindow.html","debug","height=450, width=700, resizable, scrollbars");}}
else
{gDebugMode=false;if(gDebugWindow!=null&&!gDebugWindow.closed)
gDebugWindow.close();gDebugWindow=null;}}
function des(key,message,encrypt,mode,iv,padding){var spfunction1=new Array(0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004);var spfunction2=new Array(-0x7fef7fe0,-0x7fff8000,0x8000,0x108020,0x100000,0x20,-0x7fefffe0,-0x7fff7fe0,-0x7fffffe0,-0x7fef7fe0,-0x7fef8000,-0x80000000,-0x7fff8000,0x100000,0x20,-0x7fefffe0,0x108000,0x100020,-0x7fff7fe0,0,-0x80000000,0x8000,0x108020,-0x7ff00000,0x100020,-0x7fffffe0,0,0x108000,0x8020,-0x7fef8000,-0x7ff00000,0x8020,0,0x108020,-0x7fefffe0,0x100000,-0x7fff7fe0,-0x7ff00000,-0x7fef8000,0x8000,-0x7ff00000,-0x7fff8000,0x20,-0x7fef7fe0,0x108020,0x20,0x8000,-0x80000000,0x8020,-0x7fef8000,0x100000,-0x7fffffe0,0x100020,-0x7fff7fe0,-0x7fffffe0,0x100020,0x108000,0,-0x7fff8000,0x8020,-0x80000000,-0x7fefffe0,-0x7fef7fe0,0x108000);var spfunction3=new Array(0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200);var spfunction4=new Array(0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080);var spfunction5=new Array(0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100);var spfunction6=new Array(0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010);var spfunction7=new Array(0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002);var spfunction8=new Array(0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000);var keys=des_createKeys(key);var m=0,i,j,temp,temp2,right1,right2,left,right,looping;var cbcleft,cbcleft2,cbcright,cbcright2
var endloop,loopinc;var len=message.length;var chunk=0;var iterations=keys.length==32?3:9;if(iterations==3){looping=encrypt?new Array(0,32,2):new Array(30,-2,-2);}
else{looping=encrypt?new Array(0,32,2,62,30,-2,64,96,2):new Array(94,62,-2,32,64,2,30,-2,-2);}
if(padding==2)message+="        ";else if(padding==1){temp=8-(len%8);message+=String.fromCharCode(temp,temp,temp,temp,temp,temp,temp,temp);}
else if(!padding)message+="\0\0\0\0\0\0\0\0";result="";tempresult="";if(mode==1){cbcleft=(iv.charCodeAt(m++)<<24)|(iv.charCodeAt(m++)<<16)|(iv.charCodeAt(m++)<<8)|iv.charCodeAt(m++);cbcright=(iv.charCodeAt(m++)<<24)|(iv.charCodeAt(m++)<<16)|(iv.charCodeAt(m++)<<8)|iv.charCodeAt(m++);m=0;}
while(m<len){left=(message.charCodeAt(m++)<<24)|(message.charCodeAt(m++)<<16)|(message.charCodeAt(m++)<<8)|message.charCodeAt(m++);right=(message.charCodeAt(m++)<<24)|(message.charCodeAt(m++)<<16)|(message.charCodeAt(m++)<<8)|message.charCodeAt(m++);if(mode==1){if(encrypt){left^=cbcleft;right^=cbcright;}else{cbcleft2=cbcleft;cbcright2=cbcright;cbcleft=left;cbcright=right;}}
temp=((left>>>4)^right)&0x0f0f0f0f;right^=temp;left^=(temp<<4);temp=((left>>>16)^right)&0x0000ffff;right^=temp;left^=(temp<<16);temp=((right>>>2)^left)&0x33333333;left^=temp;right^=(temp<<2);temp=((right>>>8)^left)&0x00ff00ff;left^=temp;right^=(temp<<8);temp=((left>>>1)^right)&0x55555555;right^=temp;left^=(temp<<1);left=((left<<1)|(left>>>31));right=((right<<1)|(right>>>31));for(j=0;j<iterations;j+=3){endloop=looping[j+1];loopinc=looping[j+2];for(i=looping[j];i!=endloop;i+=loopinc){right1=right^keys[i];right2=((right>>>4)|(right<<28))^keys[i+1];temp=left;left=right;right=temp^(spfunction2[(right1>>>24)&0x3f]|spfunction4[(right1>>>16)&0x3f]|spfunction6[(right1>>>8)&0x3f]|spfunction8[right1&0x3f]|spfunction1[(right2>>>24)&0x3f]|spfunction3[(right2>>>16)&0x3f]|spfunction5[(right2>>>8)&0x3f]|spfunction7[right2&0x3f]);}
temp=left;left=right;right=temp;}
left=((left>>>1)|(left<<31));right=((right>>>1)|(right<<31));temp=((left>>>1)^right)&0x55555555;right^=temp;left^=(temp<<1);temp=((right>>>8)^left)&0x00ff00ff;left^=temp;right^=(temp<<8);temp=((right>>>2)^left)&0x33333333;left^=temp;right^=(temp<<2);temp=((left>>>16)^right)&0x0000ffff;right^=temp;left^=(temp<<16);temp=((left>>>4)^right)&0x0f0f0f0f;right^=temp;left^=(temp<<4);if(mode==1){if(encrypt){cbcleft=left;cbcright=right;}else{left^=cbcleft2;right^=cbcright2;}}
tempresult+=String.fromCharCode((left>>>24),((left>>>16)&0xff),((left>>>8)&0xff),(left&0xff),(right>>>24),((right>>>16)&0xff),((right>>>8)&0xff),(right&0xff));chunk+=8;if(chunk==512){result+=tempresult;tempresult="";chunk=0;}}
return result+tempresult;}
function des_createKeys(key){pc2bytes0=new Array(0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204);pc2bytes1=new Array(0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101);pc2bytes2=new Array(0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808);pc2bytes3=new Array(0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000);pc2bytes4=new Array(0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010);pc2bytes5=new Array(0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420);pc2bytes6=new Array(0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002);pc2bytes7=new Array(0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800);pc2bytes8=new Array(0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002);pc2bytes9=new Array(0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408);pc2bytes10=new Array(0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020);pc2bytes11=new Array(0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200);pc2bytes12=new Array(0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010);pc2bytes13=new Array(0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105);var iterations=key.length>8?3:1;var keys=new Array(32*iterations);var shifts=new Array(0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0);var lefttemp,righttemp,m=0,n=0,temp;for(var j=0;j<iterations;j++){left=(key.charCodeAt(m++)<<24)|(key.charCodeAt(m++)<<16)|(key.charCodeAt(m++)<<8)|key.charCodeAt(m++);right=(key.charCodeAt(m++)<<24)|(key.charCodeAt(m++)<<16)|(key.charCodeAt(m++)<<8)|key.charCodeAt(m++);temp=((left>>>4)^right)&0x0f0f0f0f;right^=temp;left^=(temp<<4);temp=((right>>>-16)^left)&0x0000ffff;left^=temp;right^=(temp<<-16);temp=((left>>>2)^right)&0x33333333;right^=temp;left^=(temp<<2);temp=((right>>>-16)^left)&0x0000ffff;left^=temp;right^=(temp<<-16);temp=((left>>>1)^right)&0x55555555;right^=temp;left^=(temp<<1);temp=((right>>>8)^left)&0x00ff00ff;left^=temp;right^=(temp<<8);temp=((left>>>1)^right)&0x55555555;right^=temp;left^=(temp<<1);temp=(left<<8)|((right>>>20)&0x000000f0);left=(right<<24)|((right<<8)&0xff0000)|((right>>>8)&0xff00)|((right>>>24)&0xf0);right=temp;for(i=0;i<shifts.length;i++){if(shifts[i]){left=(left<<2)|(left>>>26);right=(right<<2)|(right>>>26);}
else{left=(left<<1)|(left>>>27);right=(right<<1)|(right>>>27);}
left&=-0xf;right&=-0xf;lefttemp=pc2bytes0[left>>>28]|pc2bytes1[(left>>>24)&0xf]|pc2bytes2[(left>>>20)&0xf]|pc2bytes3[(left>>>16)&0xf]|pc2bytes4[(left>>>12)&0xf]|pc2bytes5[(left>>>8)&0xf]|pc2bytes6[(left>>>4)&0xf];righttemp=pc2bytes7[right>>>28]|pc2bytes8[(right>>>24)&0xf]|pc2bytes9[(right>>>20)&0xf]|pc2bytes10[(right>>>16)&0xf]|pc2bytes11[(right>>>12)&0xf]|pc2bytes12[(right>>>8)&0xf]|pc2bytes13[(right>>>4)&0xf];temp=((righttemp>>>16)^lefttemp)&0x0000ffff;keys[n++]=lefttemp^temp;keys[n++]=righttemp^(temp<<16);}}
return keys;}
function stringToHex(s){var r="0x";var hexes=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");for(var i=0;i<s.length;i++){r+=hexes[s.charCodeAt(i)>>4]+hexes[s.charCodeAt(i)&0xf];}
return r;}
var EventUtils={x:0,y:0,operation:"",getEvent:function(e){return(e)?e:window.event;},getTargetElement:function(evt){return(evt.target)?evt.target:evt.srcElement;},getCurrentTarget:function(evt){return(evt.currentTarget)?evt.currentTarget:evt.srcElement;},getFromElement:function(evt){return(evt.relatedTarget)?evt.relatedTarget:evt.fromElement;},getToElement:function(evt){return(evt.relatedTarget)?evt.relatedTarget:evt.toElement;},preventDefault:function(evt){if(evt.returnValue)
evt.returnValue=false;else if(evt.preventDefault)
evt.preventDefault();else
return false;},stopPropagation:function(evt){evt.cancelBubble=true;if(evt.stopPropagation)
evt.stopPropagation();},getIframeEvent:function(e,frameId,etype){if(e!=null)
return e;for(var i=0;i<window.frames.length;i++)
{var fr=window.frames[i];if(fr.frameElement.id==frameId)
return fr.event;}
return null;}};Logger.object=null;Logger.prototype._window=null;Logger.prototype._table=null;Logger.prototype._rows=0;Logger.prototype._dateCache=null;Logger.prototype._msgCache=null;function Logger(options)
{this._window=window.open("","logwindow",options);var str='<html><head><title>Log Window</title></head><body>'+'<table id="logTable" bgcolor="white" width="720" border="1" align="center" cellspacing=0 cellpadding=1>'+'<tr>'+'  <td style="width:200px;font-size:10px;color:blue;">Date</td>'+'  <td style="width:500px;font-size:10px;color:blue;">Message</td>'+'</tr>'+'</table>'+'</body></html>';this._window.document.write(str);this._dateCache=new Array();this._msgCache=new Array();this._table=this._window.document.getElementById("logTable");}
Logger.getInstance=function(options)
{if(Logger.object!=null){try{Logger.object.clear();}catch(e){Logger.object=new Logger(options);}
finally{return Logger.object;}}
Logger.object=new Logger(options);return Logger.object;}
Logger.initialize=function()
{var logger=Logger.object;logger._table=logger._window.document.getElementById("logTable");if(logger._table==null){setTimeout("Logger.initialize()",25);return;}
for(var idx=0;idx<logger._msgCache.length;idx++){logger.appendMessage(logger._msgCache[idx],logger._dateCache[idx]);}}
Logger.prototype.clear=function()
{while(this._table.rows.length>0){this._table.deleteRow(0);}}
Logger.prototype.focus=function()
{this._window.focus();}
Logger.prototype.log=function(str)
{if(str==null||str==undefined)
return;if(this._table==null){setTimeout("Logger.initialize()",25);this.appendMessageToCache(str);return;}
var dstr=new Date().toLocaleString();this.appendMessage(str,dstr);this._table.scrollIntoView(false);}
Logger.prototype.appendMessageToCache=function(str)
{this._dateCache[this._dateCache.length]=new Date().toLocaleString();this._msgCache[this._msgCache.length]=str;}
Logger.prototype.appendMessage=function(str,dstr)
{var trow=this._table.insertRow(-1);this.appendDateCell(trow,dstr);this.appendTextCell(trow,str);this._rows++;}
Logger.prototype.appendDateCell=function(row,dstr)
{var cell=row.insertCell(-1);cell.style.fontSize="10px";var txt=this._window.document.createTextNode(dstr);cell.appendChild(txt);}
Logger.prototype.appendTextCell=function(row,str)
{var cell=row.insertCell(-1);cell.style.fontSize="10px";cell.innerHTML=this.escapeHtml(str);}
Logger.prototype.escapeHtml=function(text)
{if(text==null)
return"";text=text.replace(/&/g,"&amp;");text=text.replace(/</g,"&lt;");text=text.replace(/>/g,"&gt;");return text;}
var hexcase=0;var b64pad="";var chrsz=8;function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz));}
function b64_md5(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz));}
function str_md5(s){return binl2str(core_md5(str2binl(s),s.length*chrsz));}
function hex_hmac_md5(key,data){return binl2hex(core_hmac_md5(key,data));}
function b64_hmac_md5(key,data){return binl2b64(core_hmac_md5(key,data));}
function str_hmac_md5(key,data){return binl2str(core_hmac_md5(key,data));}
function md5_vm_test()
{return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72";}
function core_md5(x,len)
{x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16)
{var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);}
return Array(a,b,c,d);}
function md5_cmn(q,a,b,x,s,t)
{return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}
function md5_ff(a,b,c,d,x,s,t)
{return md5_cmn((b&c)|((~b)&d),a,b,x,s,t);}
function md5_gg(a,b,c,d,x,s,t)
{return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}
function md5_hh(a,b,c,d,x,s,t)
{return md5_cmn(b^c^d,a,b,x,s,t);}
function md5_ii(a,b,c,d,x,s,t)
{return md5_cmn(c^(b|(~d)),a,b,x,s,t);}
function core_hmac_md5(key,data)
{var bkey=str2binl(key);if(bkey.length>16)bkey=core_md5(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128);}
function safe_add(x,y)
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
function bit_rol(num,cnt)
{return(num<<cnt)|(num>>>(32-cnt));}
function str2binl(str)
{var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)
bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);return bin;}
function binl2str(bin)
{var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)
str+=String.fromCharCode((bin[i>>5]>>>(i%32))&mask);return str;}
function binl2hex(binarray)
{var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++)
{str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+
hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF);}
return str;}
function binl2b64(binarray)
{var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3)
{var triplet=(((binarray[i>>2]>>8*(i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&0xFF);for(var j=0;j<4;j++)
{if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt((triplet>>6*(3-j))&0x3F);}}
return str;}
MimeTypes.DEFAULT_MIME_TYPE="application/octet-stream";MimeTypes.mimeTypeList=null;MimeTypes.prototype._type;MimeTypes.prototype._subtype;MimeTypes.prototype._data;function MimeTypes(type,subtype,data)
{this._type=type;this._subtype=subtype;this._data=data;}
MimeTypes.add=function(suffix,mtype)
{if(suffix==null||mtype==null)
return;if(MimeTypes.mimeTypeList==null)
MimeTypes.mimeTypeList=new Object();MimeTypes.mimeTypeList[suffix]=mtype;}
MimeTypes.prototype.equals=function(typ,subtype)
{if(typ!=null){if(typ!=this._type)
return false;if(subtype!=null){if(subtype!=this._subtype)
return false;}
return true;}
else{return false;}}
MimeTypes.get=function(suffix)
{return MimeTypes.mimeTypeList[suffix];}
MimeTypes.getName=function(filename)
{var idx=filename.lastIndexOf("/");var name=null;if(idx==-1)
name=filename;else
name=filename.substr(idx+1);return name;}
MimeTypes.getMimeType=function(filename)
{if(filename==null)
return null;try{var name=MimeTypes.getName(filename);var idx=name.lastIndexOf('.');if(idx==-1)
return MimeTypes.DEFAULT_MIME_TYPE
var suffix=name.substring(idx+1).toLowerCase();var mt=MimeTypes.get(suffix);if(mt==null)
mt=MimeTypes.DEFAULT_MIME_TYPE;return mt;}catch(e){return MimeTypes.DEFAULT_MIME_TYPE}}
MimeTypes.isFileSuffix=function(filename,suffix)
{if(filename==null||suffix==null)
return false;var idx=filename.lastIndexOf(".");if(idx==-1)
return false;var str=filename.substr(idx+1);if(str.toUpperCase()==suffix.toUpperCase())
return true;else
return false;}
MimeTypes.isMimeType=function(elem,mtype)
{if(elem==null||mtype==null)
return false;var attr=null;if(typeof elem=="string")
attr=elem;else{attr=elem.getAttribute("mimeType");if(attr==null||attr=="")
return false;}
var str=null;if(mtype.indexOf("/")!=-1){str=attr;}
else{var idx=attr.indexOf("/");str=(idx==-1)?attr:attr.substring(0,idx);}
return(mtype==str)?true:false;}
MimeTypes.add('ai','application/postscript');MimeTypes.add('asf','video/x-ms-asf');MimeTypes.add('au','audio/basic');MimeTypes.add('avi','video/avi');MimeTypes.add('bm','image/bmp');MimeTypes.add('bmp','image/bmp');MimeTypes.add('css','text/css');MimeTypes.add('doc','application/msword');MimeTypes.add('dot','application/msword');MimeTypes.add('dvi','application/x-dvi');MimeTypes.add('eps','application/postscript');MimeTypes.add('exe','application/octet-stream');MimeTypes.add('gif','image/gif');MimeTypes.add('gz','application/x-compressed');MimeTypes.add('htm','text/href');MimeTypes.add('html','text/href');MimeTypes.add('htmls','text/href');MimeTypes.add('htx','text/href');MimeTypes.add('ico','image/x-icon');MimeTypes.add('jam','audio/x-jam');MimeTypes.add('java','text/plain');MimeTypes.add('jfif','image/jpeg');MimeTypes.add('jpe','image/jpeg');MimeTypes.add('jpeg','image/jpeg');MimeTypes.add('jpg','image/jpeg');MimeTypes.add('js','application/x-javascript');MimeTypes.add('kar','music/x-karaoke');MimeTypes.add('log','text/plain');MimeTypes.add('lst','text/plain');MimeTypes.add('m1v','video/mpeg');MimeTypes.add('m2a','audio/mpeg');MimeTypes.add('m2v','video/mpeg');MimeTypes.add('mjpg','video/x-motion-jpeg');MimeTypes.add('moov','video/quicktime');MimeTypes.add('mov','video/quicktime');MimeTypes.add('mp2','audio/mpeg');MimeTypes.add('mp3','application/mpeg3');MimeTypes.add('mpa','audio/mpeg');MimeTypes.add('mpa','video/mpeg');MimeTypes.add('mpe','video/mpeg');MimeTypes.add('mpeg','video/mpeg');MimeTypes.add('mpg','video/mpeg');MimeTypes.add('mpga','audio/mpeg');MimeTypes.add('pdf','application/pdf');MimeTypes.add('png','image/png');MimeTypes.add('ppt','application/powerpoint');MimeTypes.add('ps','application/postscript');MimeTypes.add('qif','image/x-quicktime');MimeTypes.add('qt','video/quicktime');MimeTypes.add('ra','audio/x-pn-realaudio');MimeTypes.add('rng','application/ringing-tones');MimeTypes.add('rt','text/richtext');MimeTypes.add('rtf','application/rtf');MimeTypes.add('swf','application/x-shockwave-flash');MimeTypes.add('tar','application/x-tar');MimeTypes.add('text','text/plain');MimeTypes.add('txt','text/plain');MimeTypes.add('wav','audio/wav');MimeTypes.add('xla','application/excel');MimeTypes.add('xlb','application/excel');MimeTypes.add('xlc','application/excel');MimeTypes.add('xld','application/excel');MimeTypes.add('xlk','application/excel');MimeTypes.add('xll','application/excel');MimeTypes.add('xlm','application/excel');MimeTypes.add('xls','application/excel');MimeTypes.add('xlt','application/excel');MimeTypes.add('xlv','application/excel');MimeTypes.add('xlw','application/excel');MimeTypes.add('xm','audio/xm');MimeTypes.add('xml','application/xml');MimeTypes.add('x-png','image/png');MimeTypes.add('zip','application/zip');Preferences.prototype._root;function Preferences()
{this._root=new Preference(null,null);}
Preferences.createInstance=function(preferences)
{var prefs=new Preferences();for(var i in preferences._list){var p=preferences._list[i];prefs.setPreference(p.getName(),p.getValue());}
return prefs;}
Preferences.parseXml=function(preferences)
{var p=new Preferences();var root=preferences;if(typeof preferences=="string"){xmlutils.loadXml(xmlutils.dom,preferences);root=xmlutils.dom.documentElement;}
var prefs=root.getElementsByTagName("preference");var elem=null;var name=null;var val=null;var pref=null;for(var i=0;i<prefs.length;i++){elem=prefs.item(i);name=elem.getAttribute("name");if(elem.firstChild.nodeType==3)
val=xmlutils.getNodeText(elem);else
val=elem;p.add(name,val);}
return p;}
Preferences.prototype.add=function(name,value)
{var node=this.get(name);if(node!=null){node.setValue(value);return;}
var namespace=name.split(".");var branch=this._root;var leaf=null;for(var i=0;i<namespace.length;i++)
{leaf=branch.get(namespace[i]);if(leaf==null)
{leaf=branch.add(namespace[i]);}
branch=leaf;}
branch.setValue(value);}
Preferences.prototype.get=function(name)
{var namespace=name.split('.');var leaf=null;var branch=this._root;for(var i=0;i<namespace.length;i++)
{leaf=branch.get(namespace[i]);if(leaf==null){return null;}
else
branch=leaf;}
return branch;}
Preferences.prototype.getPreferenceValue=function(name,defaultValue)
{var value=null;var pref=this.get(name);if(pref!=null)
value=pref.getValue();if(value==null&&defaultValue!=null)
value=defaultValue;return value;}
Preferences.prototype.setPreferenceValue=function(name,value)
{var pref=this.get(name);if(pref!=null){pref.setValue(value);return true;}
else{this.add(name,value);}
return false;}
Preferences.prototype.toXmlString=function()
{var str="<preferences>"+this._root.toXmlString(null)+"</preferences>";return str;}
Preference.prototype._name;Preference.prototype._value;Preference.prototype._leaves;function Preference(name,value)
{this._name=name;this._value=value;this._leaves=new Array(0);}
Preference.createCopy=function(preference)
{var pref=new Preference(preference.getName(),preference.getValue());return pref;}
Preference.prototype.add=function(name)
{var p=new Preference(name,null);this._leaves[this._leaves.length]=p;return p;}
Preference.prototype.equals=function(name)
{return(this._name==name);}
Preference.prototype.get=function(name)
{for(var i=0;i<this._leaves.length;i++)
{if(this._leaves[i].equals(name)==true)
return this._leaves[i];}
return null;}
Preference.prototype.getName=function()
{return this._name;}
Preference.prototype.getValue=function()
{return this._value;}
Preference.prototype.setValue=function(val)
{this._value=val;}
Preference.prototype.toXmlString=function(namespace)
{var ns=null;if(namespace!=null)
ns=namespace+"."+this._name;else
ns=this._name;var s="";if(this._value!=null){if(typeof this._value=="string")
s+='<preference name="'+ns+'">'+this._value+'</preference>';else
s+=xmlutils.getNodeXML(this._value);}
for(var i=0;i<this._leaves.length;i++)
{s+=this._leaves[i].toXmlString(ns);}
return s;}
Preference.prototype.toXml=function(elem,namespace)
{var ns=null;if(namespace!=null)
ns=namespace+"."+this._name;else
ns=this._name;var s="";if(this._value!=null){var prop=xmlutils.createTextElement("property",this._value);prop.setAttribute("name",ns);elem.appendChild(prop);}
for(var i=0;i<this._leaves.length;i++)
{this._leaves[i].toXml(elem,ns);}
return;}
RecordSet.prototype._data;RecordSet.prototype._sortfunc;function RecordSet(data,sortfunc)
{if(data==null){this._data=new Array(0);}
else{this._data=new Array(data.length);for(var i=0;i<data.length;i++)
{this._data[i]=data[i];}}
this._sortfunc=(sortfunc==null)?null:sortfunc;}
RecordSet.prototype.indexOf=function(item)
{if(this._data==null)
return-1;for(var i=0;i<this._data.length;i++){var obj=this._data[i];if(item.getOid()==obj.getOid()){return i;}}
return-1;}
RecordSet.prototype.item=function(idx)
{return this._data[idx];}
RecordSet.prototype.size=function()
{return this._data.length;}
RecordSet.prototype.sort=function(sortType)
{if(this._sortfunc!=null)
this._sortfunc(this,sortType);}
Soap.PARAMETER_STRING="string";Soap.PARAMETER_INTEGER="integer";Soap.PARAMETER_LONG="long";Soap.PARAMETER_BINARY="binary";Soap.PARAMETER_BOOLEAN="boolean";Soap.PARAMETER_XML="xml";Soap.prototype.header;Soap.prototype.body;Soap.prototype.fault;Soap.prototype.authentication;Soap.prototype.module;Soap.prototype.operation;Soap.prototype.parameters;function Soap()
{this.header=null;this.body=null;this.fault=null;this.authentication=null;this.module=null;this.operation=null;this.parameters=null;}
Soap.createSoapRequest=function(module,operation)
{var soap=new Soap();soap.module=module;soap.operation=operation;soap.authentication=null;return soap;}
Soap.createSoapResponse=function(xmlstr)
{var soap=new Soap();xmlutils.loadXml(xmlutils.dom,xmlstr);var env=xmlutils.dom.documentElement;var hdr=env.firstChild;var bdy=env.lastChild;var auth=hdr.getElementsByTagName("m_auth").item(0);soap.authentication=xmlutils.getNodeText(auth);var flt=Soap.parseFault(bdy);var elem=null;if(flt!=null)
{soap.fault=new SoapFault();for(elem=flt.firstChild;elem;elem=elem.nextSibling)
{var tagName=elem.tagName;var txt=xmlutils.getNodeText(elem);switch(tagName){case"faultcode":soap.fault.code=txt;break;case"faultstring":soap.fault.string=txt;break;case"faultactor":soap.fault.actor=txt;break;case"faultdetail":soap.fault.detail=txt;break;}}}
else{var elem=env.getElementsByTagName("response").item(0);soap.module=elem.getAttribute("module");soap.operation=elem.getAttribute("op");elem=elem.getElementsByTagName("param");soap.parameters=new Object();for(var i=0;i<elem.length;i++){var sp=SoapParameter.createInstance(elem.item(i));var n=sp.getName();soap.parameters[n]=sp;}}
return soap;}
Soap.parseFault=function(bdy)
{for(var elem=bdy.firstChild;elem!=null;elem=elem.nextSibling)
{var tagName=elem.tagName;if(tagName=="soap:Fault")
return elem;}
return null;}
Soap.prototype.toXmlString=function()
{var xmlstr=null;xmlstr='<?xml version="1.0" encoding="UTF-8"?>'+'<soap:Envelope '+'xmlns:soap="http://www.w3.org/2001/12/soap-envelope" '+'soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding" >';if(this.authentication!=null)
{xmlstr+='<soap:Header>'+' <m_auth xmlns:m="http://www.pikiwiki.com/soap" soap:mustUnderstand="1">'+
this.authentication+'</m_auth></soap:Header>';}
xmlstr+='<soap:Body>'+'<request module="'+this.module+'" op="'+this.operation+'">';for(var i in this.parameters){var sp=this.parameters[i];xmlstr+='<param name="'+sp.getName()+'" type="'+sp.getType()+'">'+
sp.getValue()+'</param>';}
xmlstr+='</request></soap:Body></soap:Envelope>';return xmlstr;}
Soap.prototype.isFault=function()
{return(this.fault!=null)?true:false;}
Soap.prototype.getFault=function()
{return this.fault;}
Soap.prototype.getAuthentication=function()
{return this.authentication;}
Soap.prototype.getParameter=function(name)
{if(this.parameters==null||name==null)
return null;return this.parameters[name];}
Soap.prototype.setAuthentication=function(value)
{this.authentication=value;}
Soap.prototype.setParameter=function(name,typ,value)
{var sp=new SoapParameter(name,typ,value);if(this.parameters==null)
this.parameters=new Object();this.parameters[name]=sp;}
SoapFault.prototype.code;SoapFault.prototype.string;SoapFault.prototype.actor;SoapFault.prototype.detail;function SoapFault()
{this.code=null;this.string=null;this.actor=null;this.detail=null;}
SoapParameter.prototype.name;SoapParameter.prototype.type;SoapParameter.prototype.value;function SoapParameter(name,typ,value)
{this.name=name;this.type=typ;this.value=value;}
SoapParameter.createInstance=function(elem)
{var typ=elem.getAttribute("type");var val=xmlutils.getNodeText(elem);if(typ=="xml")
val=xmlutils.getNodeXML(elem.firstChild);var sp=new SoapParameter(elem.getAttribute("name"),elem.getAttribute("type"),val);return sp;}
SoapParameter.prototype.getName=function(){return this.name;}
SoapParameter.prototype.getType=function(){return this.type;}
SoapParameter.prototype.getValue=function(){return this.value;}
SoapRequest.prototype.soapMsg;SoapRequest.prototype.authentication;SoapRequest.prototype.appCbFunc;SoapRequest.prototype.userCbFunc;SoapRequest.prototype.userData;SoapRequest.prototype.count;SoapRequest.prototype.host;SoapRequest.prototype.servletPath;function SoapRequest(soapMsg,host,servletPath,auth,appCbFunc,userCbFunc,userData)
{this.soapMsg=soapMsg;this.authentication=auth;this.appCbFunc=appCbFunc;this.userCbFunc=userCbFunc;this.userData=userData;this.host=host;this.servletPath=servletPath;this.count=0;}
Tree.TREE=parseInt("0x01");Tree.BINARY_TREE=parseInt("0x02");function Tree()
{}
Tree.find=function(tree_type,node,item,arg)
{var ret=false;if(tree_type==Tree.TREE)
{if(node.isEqual(item,arg)==true)
return node;if(node._children!=null)
{for(var i=0;i<node._children.length;i++)
{var childNode=node._children[i]
var foundNode=Tree.find(tree_type,childNode,item,arg);if(foundNode!=null)
return foundNode;}}
return null;}
return null;}
Tree.findChildren=function(list,parentNode)
{if(list==null)
return false;for(var i=0;i<list.length;i++){var obj=list[i];var oid=parentNode.getOid();if(parentNode.isParent(list[i])==true){parentNode.appendChild(obj);list.splice(i,1);i--;}}
for(var j=0;j<parentNode._children.length;j++){Tree.findChildren(list,parentNode._children[j]);}
return true;}
Tree.flatten=function(tree,list)
{if(tree!=null)
{if(tree.__left!=null){Tree.flatten(tree.__left,list);tree.__left=null;}
list[list.length]=tree;if(tree.__right!=null){Tree.flatten(tree.__right,list);tree.__right=null;}}}
Tree.remove=function(tree_type,node,itemOid)
{if(tree_type==Tree.TREE)
{if(node._children!=null)
{for(var i=0;i<node._children.length;i++)
{var childNode=node._children[i]
if(childNode.isEqual(itemOid)){node._children=arrayUtils.del(node._children,i);return childNode;}
else
Tree.remove(tree_type,childNode,itemOid);}}
return null;}}
Tree.sort=function(list,sortfunc)
{var top=null;var left_most_branch=null;var right_most_branch=null;var result=0;if(list==null||list.length==0)
return new Array(0);top=list[0];top.__left=null;top.__right=null;left_most_branch=top;right_most_branch=top;for(var i=1;i<list.length;i++){var ptr=top;var item=list[i];result=sortfunc(item,left_most_branch);if(result<=0){left_most_branch.__left=item;item.__left=null;item.__right=null;left_most_branch=item;continue;}
result=sortfunc(item,right_most_branch);if(result>0){right_most_branch.__right=item;item.__left=null;item.__right=null;right_most_branch=item;continue;}
while(true){result=sortfunc(item,ptr);if(result<=0){if(ptr.__left==null){ptr.__left=item;item.__left=null;item.__right=null;break;}
else
ptr=ptr.__left;}
else{if(ptr.__right==null){ptr.__right=item;item.__left=null;item.__right=null;break;}
else
ptr=ptr.__right;}}}
sorted_list=new Array();Tree.flatten(top,sorted_list);return sorted_list;}
Tree.traverse=function(tree_type,node,func,data)
{if(tree_type==Tree.TREE)
{func(node,data);if(node._children!=null)
{for(var i=0;i<node._children.length;i++)
{var childNode=node._children[i]
Tree.traverse(tree_type,childNode,func,data);}}
return null;}
return null;}
var UFO={req:["movie","width","height","majorversion","build"],opt:["play","loop","menu","quality","scale","salign","wmode","bgcolor","base","flashvars","devicefont","allowscriptaccess","seamlesstabbing","allowfullscreen","allownetworking"],optAtt:["id","name","align"],optExc:["swliveconnect"],ximovie:"ufo.swf",xiwidth:"400",xiheight:"260",ua:navigator.userAgent.toLowerCase(),pluginType:"",fv:[0,0],foList:[],create:function(FO,id){if(!UFO.uaHas("w3cdom")||UFO.uaHas("ieMac"))return;UFO.getFlashVersion();UFO.foList[id]=UFO.updateFO(FO);UFO.createCSS("#"+id,"visibility:hidden;");UFO.domLoad(id);},updateFO:function(FO){if(typeof FO.xi!="undefined"&&FO.xi=="true"){if(typeof FO.ximovie=="undefined")FO.ximovie=UFO.ximovie;if(typeof FO.xiwidth=="undefined")FO.xiwidth=UFO.xiwidth;if(typeof FO.xiheight=="undefined")FO.xiheight=UFO.xiheight;}
FO.mainCalled=false;return FO;},domLoad:function(id){var _t=setInterval(function(){if((document.getElementsByTagName("body")[0]!=null||document.body!=null)&&document.getElementById(id)!=null){UFO.main(id);clearInterval(_t);}},250);if(typeof document.addEventListener!="undefined"){document.addEventListener("DOMContentLoaded",function(){UFO.main(id);clearInterval(_t);},null);}},main:function(id){var _fo=UFO.foList[id];if(_fo.mainCalled)return;UFO.foList[id].mainCalled=true;document.getElementById(id).style.visibility="hidden";if(UFO.hasRequired(id)){if(UFO.hasFlashVersion(parseInt(_fo.majorversion,10),parseInt(_fo.build,10))){if(typeof _fo.setcontainercss!="undefined"&&_fo.setcontainercss=="true")UFO.setContainerCSS(id);UFO.writeSWF(id);}
else if(_fo.xi=="true"&&UFO.hasFlashVersion(6,65)){UFO.createDialog(id);}}
document.getElementById(id).style.visibility="visible";},createCSS:function(selector,declaration){var _h=document.getElementsByTagName("head")[0];var _s=UFO.createElement("style");if(!UFO.uaHas("ieWin"))_s.appendChild(document.createTextNode(selector+" {"+declaration+"}"));_s.setAttribute("type","text/css");_s.setAttribute("media","screen");_h.appendChild(_s);if(UFO.uaHas("ieWin")&&document.styleSheets&&document.styleSheets.length>0){var _ls=document.styleSheets[document.styleSheets.length-1];if(typeof _ls.addRule=="object")_ls.addRule(selector,declaration);}},setContainerCSS:function(id){var _fo=UFO.foList[id];var _w=/%/.test(_fo.width)?"":"px";var _h=/%/.test(_fo.height)?"":"px";UFO.createCSS("#"+id,"width:"+_fo.width+_w+"; height:"+_fo.height+_h+";");if(_fo.width=="100%"){UFO.createCSS("body","margin-left:0; margin-right:0; padding-left:0; padding-right:0;");}
if(_fo.height=="100%"){UFO.createCSS("html","height:100%; overflow:hidden;");UFO.createCSS("body","margin-top:0; margin-bottom:0; padding-top:0; padding-bottom:0; height:100%;");}},createElement:function(el){return(UFO.uaHas("xml")&&typeof document.createElementNS!="undefined")?document.createElementNS("http://www.w3.org/1999/xhtml",el):document.createElement(el);},createObjParam:function(el,aName,aValue){var _p=UFO.createElement("param");_p.setAttribute("name",aName);_p.setAttribute("value",aValue);el.appendChild(_p);},uaHas:function(ft){var _u=UFO.ua;switch(ft){case"w3cdom":return(typeof document.getElementById!="undefined"&&typeof document.getElementsByTagName!="undefined"&&(typeof document.createElement!="undefined"||typeof document.createElementNS!="undefined"));case"xml":var _m=document.getElementsByTagName("meta");var _l=_m.length;for(var i=0;i<_l;i++){if(/content-type/i.test(_m[i].getAttribute("http-equiv"))&&/xml/i.test(_m[i].getAttribute("content")))return true;}
return false;case"ieMac":return/msie/.test(_u)&&!/opera/.test(_u)&&/mac/.test(_u);case"ieWin":return/msie/.test(_u)&&!/opera/.test(_u)&&/win/.test(_u);case"gecko":return/gecko/.test(_u)&&!/applewebkit/.test(_u);case"opera":return/opera/.test(_u);case"safari":return/applewebkit/.test(_u);default:return false;}},getFlashVersion:function(){if(UFO.fv[0]!=0)return;if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){UFO.pluginType="npapi";var _d=navigator.plugins["Shockwave Flash"].description;if(typeof _d!="undefined"){_d=_d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var _m=parseInt(_d.replace(/^(.*)\..*$/,"$1"),10);var _r=/r/.test(_d)?parseInt(_d.replace(/^.*r(.*)$/,"$1"),10):0;UFO.fv=[_m,_r];}}
else if(window.ActiveXObject){UFO.pluginType="ax";try{var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}
catch(e){try{var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");UFO.fv=[6,0];_a.AllowScriptAccess="always";}
catch(e){if(UFO.fv[0]==6)return;}
try{var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}
catch(e){}}
if(typeof _a=="object"){var _d=_a.GetVariable("$version");if(typeof _d!="undefined"){_d=_d.replace(/^\S+\s+(.*)$/,"$1").split(",");UFO.fv=[parseInt(_d[0],10),parseInt(_d[2],10)];}}}},hasRequired:function(id){var _l=UFO.req.length;for(var i=0;i<_l;i++){if(typeof UFO.foList[id][UFO.req[i]]=="undefined")return false;}
return true;},hasFlashVersion:function(major,release){return(UFO.fv[0]>major||(UFO.fv[0]==major&&UFO.fv[1]>=release))?true:false;},writeSWF:function(id){var _fo=UFO.foList[id];var _e=document.getElementById(id);if(UFO.pluginType=="npapi"){if(UFO.uaHas("gecko")||UFO.uaHas("xml")){while(_e.hasChildNodes()){_e.removeChild(_e.firstChild);}
var _obj=UFO.createElement("object");_obj.setAttribute("type","application/x-shockwave-flash");_obj.setAttribute("data",_fo.movie);_obj.setAttribute("width",_fo.width);_obj.setAttribute("height",_fo.height);var _l=UFO.optAtt.length;for(var i=0;i<_l;i++){if(typeof _fo[UFO.optAtt[i]]!="undefined")_obj.setAttribute(UFO.optAtt[i],_fo[UFO.optAtt[i]]);}
var _o=UFO.opt.concat(UFO.optExc);var _l=_o.length;for(var i=0;i<_l;i++){if(typeof _fo[_o[i]]!="undefined")UFO.createObjParam(_obj,_o[i],_fo[_o[i]]);}
_e.appendChild(_obj);}
else{var _emb="";var _o=UFO.opt.concat(UFO.optAtt).concat(UFO.optExc);var _l=_o.length;for(var i=0;i<_l;i++){if(typeof _fo[_o[i]]!="undefined")_emb+=' '+_o[i]+'="'+_fo[_o[i]]+'"';}
_e.innerHTML='<embed type="application/x-shockwave-flash" src="'+_fo.movie+'" width="'+_fo.width+'" height="'+_fo.height+'" pluginspage="http://www.macromedia.com/go/getflashplayer"'+_emb+'></embed>';}}
else if(UFO.pluginType=="ax"){var _objAtt="";var _l=UFO.optAtt.length;for(var i=0;i<_l;i++){if(typeof _fo[UFO.optAtt[i]]!="undefined")_objAtt+=' '+UFO.optAtt[i]+'="'+_fo[UFO.optAtt[i]]+'"';}
var _objPar="";var _l=UFO.opt.length;for(var i=0;i<_l;i++){if(typeof _fo[UFO.opt[i]]!="undefined")_objPar+='<param name="'+UFO.opt[i]+'" value="'+_fo[UFO.opt[i]]+'" />';}
var _p=window.location.protocol=="https:"?"https:":"http:";_e.innerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+_objAtt+' width="'+_fo.width+'" height="'+_fo.height+'" codebase="'+_p+'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+_fo.majorversion+',0,'+_fo.build+',0"><param name="movie" value="'+_fo.movie+'" />'+_objPar+'</object>';}},createDialog:function(id){var _fo=UFO.foList[id];UFO.createCSS("html","height:100%; overflow:hidden;");UFO.createCSS("body","height:100%; overflow:hidden;");UFO.createCSS("#xi-con","position:absolute; left:0; top:0; z-index:1000; width:100%; height:100%; background-color:#fff; filter:alpha(opacity:75); opacity:0.75;");UFO.createCSS("#xi-dia","position:absolute; left:50%; top:50%; margin-left: -"+Math.round(parseInt(_fo.xiwidth,10)/2)+"px; margin-top: -"+Math.round(parseInt(_fo.xiheight,10)/2)+"px; width:"+_fo.xiwidth+"px; height:"+_fo.xiheight+"px;");var _b=document.getElementsByTagName("body")[0];var _c=UFO.createElement("div");_c.setAttribute("id","xi-con");var _d=UFO.createElement("div");_d.setAttribute("id","xi-dia");_c.appendChild(_d);_b.appendChild(_c);var _mmu=window.location;if(UFO.uaHas("xml")&&UFO.uaHas("safari")){var _mmd=document.getElementsByTagName("title")[0].firstChild.nodeValue=document.getElementsByTagName("title")[0].firstChild.nodeValue.slice(0,47)+" - Flash Player Installation";}
else{var _mmd=document.title=document.title.slice(0,47)+" - Flash Player Installation";}
var _mmp=UFO.pluginType=="ax"?"ActiveX":"PlugIn";var _uc=typeof _fo.xiurlcancel!="undefined"?"&xiUrlCancel="+_fo.xiurlcancel:"";var _uf=typeof _fo.xiurlfailed!="undefined"?"&xiUrlFailed="+_fo.xiurlfailed:"";UFO.foList["xi-dia"]={movie:_fo.ximovie,width:_fo.xiwidth,height:_fo.xiheight,majorversion:"6",build:"65",scale:"noborder",flashvars:"MMredirectURL="+_mmu+"&MMplayerType="+_mmp+"&MMdoctitle="+_mmd+_uc+_uf};UFO.writeSWF("xi-dia");},expressInstallCallback:function(){var _b=document.getElementsByTagName("body")[0];var _c=document.getElementById("xi-con");_b.removeChild(_c);UFO.createCSS("body","height:auto; overflow:auto;");UFO.createCSS("html","height:auto; overflow:auto;");},cleanupIELeaks:function(){var _o=document.getElementsByTagName("object");var _l=_o.length
for(var i=0;i<_l;i++){_o[i].style.display="none";for(var x in _o[i]){if(typeof _o[i][x]=="function"){_o[i][x]=null;}}}}};if(typeof window.attachEvent!="undefined"&&UFO.uaHas("ieWin")){window.attachEvent("onunload",UFO.cleanupIELeaks);}
var DAYTABLE=new Array("Sun ","Mon ","Tue ","Wed ","Thu ","Fri ","Sat ");var MONTHTABLE=new Array("Jan ","Feb ","Mar ","Apr ","May ","Jun ","Jul ","Aug ","Sep ","Oct ","Nov ","Dec ");var util={urlToString:function(val)
{var str=decodeURIComponent(val);return str;},dateToString:function(d)
{var s='';switch(d.getMonth()){case 0:s+='Jan';break;case 1:s+='Feb';break;case 2:s+='Mar';break;case 3:s+='Apr';break;case 4:s+='May';break;case 5:s+='Jun';break;case 6:s+='Jul';break;case 7:s+='Aug';break;case 8:s+='Sep';break;case 9:s+='Oct';break;case 10:s+='Nov';break;case 11:s+='Dec';break;}
s+=' '+d.getDate()+', '+d.getFullYear();return s;},isWhitespace:function(c){return(c==' '||c=='\t'||c=='\n'||c=='\r'||c=='\f'||c=='\v');},isEmpty:function(s){for(var i=0;i<s.length;i++){var c=s.charAt(i);if(!this.isWhitespace(c))return false;}
return true;},formatDate:function(dt)
{var str;var hr=dt.getHours();var hm=(hr<12)?" AM":" PM";if(hr>12)
hr-=12;else if(hr==0)
hr=12;var min=dt.getMinutes();var strmin=(min<10)?"0"+min:min;str=DAYTABLE[dt.getDay()]+MONTHTABLE[dt.getMonth()]+dt.getDate()+" "+dt.getFullYear()+" ";str+=hr+":"+strmin+hm;return str;},escapeHtmlString:function(val)
{var str=val.replace(/&/g,"&amp;");str=str.replace(/</g,"&lt;");str=str.replace(/>/g,"&gt;");return str;},titleFromUrl:function(url)
{var durl=decodeURI(url);var prefix=durl.lastIndexOf("/");var suffix=durl.lastIndexOf(".");if(prefix==-1)
return(suffix==-1)?durl:url.substring(0,suffix);else
return(suffix==-1)?durl.substr(prefix+1):durl.substring(prefix+1,suffix);},validEmailAddress:function(addr)
{if(addr==null||addr=="")
return false;if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(addr))
return true;else
return false;},validEmailAddress2:function(emailStr)
{var checkTLD=1;var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s"+specialChars+"\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;var atom=validChars+'+';var word="("+atom+"|"+quotedUser+")";var userPat=new RegExp("^"+word+"(\\."+word+")*$");var domainPat=new RegExp("^"+atom+"(\\."+atom+")*$");var matchArray=emailStr.match(emailPat);if(matchArray==null){return"Email address seems incorrect (check @ and .'s)";}
var user=matchArray[1];var domain=matchArray[2];for(i=0;i<user.length;i++){if(user.charCodeAt(i)>127)
return"Ths username contains invalid characters.";}
for(i=0;i<domain.length;i++){if(domain.charCodeAt(i)>127)
return"Ths domain name contains invalid characters.";}
if(user.match(userPat)==null)
return"The username doesn't seem to be valid.";var IPArray=domain.match(ipDomainPat);if(IPArray!=null){for(var i=1;i<=4;i++){if(IPArray[i]>255)
return"Destination IP address is invalid!";}
return null;}
var atomPat=new RegExp("^"+atom+"$");var domArr=domain.split(".");var len=domArr.length;for(i=0;i<len;i++){if(domArr[i].search(atomPat)==-1)
return"The domain name does not seem to be valid.";}
if(checkTLD&&domArr[domArr.length-1].length!=2&&domArr[domArr.length-1].search(knownDomsPat)==-1){return"The address must end in a well-known domain or two letter "+"country.";}
if(len<2)
return"This address is missing a hostname!";return null;},navigate:function(url)
{window.location.href=url;},openWindow:function(url)
{window.open(url);},openEditorCreatenSend:function()
{var url="editor.jsp?userOid=2&groupOid=1&topicOid=1&rw=true&new=true&title=My%20first%20page";var features="resizable,scrollbars,width=700,height=770";window.open(url,"",features);},openFeedback:function()
{var url="feedbackForm.jsp?url="+location.href+"&title="+document.title;var params="height=450,width=600";window.open(url,"feedbackWin",params);},openDemoVideo:function()
{window.open("demoVideo.jsp","demoVideo","height=600,width=800,resizable");},openWarning:function(urlt)
{var url=urlt;var params="height=400,width=400,resizable";window.open(url,"warning",params);},createPngHtml:function(id,src,alt,h,w)
{if(dhtmlapi.isIE==true&&dhtmlapi.version<7)
{str='<span id="'+id+'" style="display:inline-block; height:'+h+'px; width:'+w+'px; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+
src+'\', sizingMethod=\'scale\');"></span>';}
else{str='<img id="'+id+'" src="'+src+'" alt="'+alt+'" height='+h+' width='+w+'>';}
return str;},createPngElement:function(src,alt,h,w)
{if(dhtmlapi.isIE==true&&dhtmlapi.version<7)
{elem=document.createElement("span");elem.style.display="inline-block";elem.style.height=h+'px';elem.style.width=w+'px';elem.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='scale')";elem.title=(alt!=null)?alt:"";}
else{elem=document.createElement("img");elem.setAttribute("src",src);elem.title=elem.alt=(alt!=null)?alt:"";elem.height=h;elem.width=w;}
return elem;},setPngImage:function(elem,src)
{if(elem.tagName.toLowerCase()=="span")
elem.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+
src+"', sizingMethod='scale')";else
elem.src=src;},decodeAndDecrypt:function(val)
{var url='userOid=2&groupOid=1&topicOid=1&location=sandbox1&rw=true&new=true&title=My%20first%20page';return url;}};var NodeTypeEnum={NODE_ELEMENT:1,NODE_ATTRIBUTE:2,NODE_TEXT:3,NODE_CDATA_SECTION:4,NODE_ENTITY_REFERENCE:5,NODE_ENTITY:6,NODE_PROCESSING_INSTRUCTION:7,NODE_COMMENT:8,NODE_DOCUMENT:9,NODE_DOCUMENT_TYPE:10,NODE_DOCUMENT_FRAGMENT:11,NODE_NOTATION:12};var xmlutils={dom:null,initialize:function(){xmlutils.dom=xmlutils.getXMLDocument();},getXMLDocument:function(){var result=null;if(dhtmlapi.isIE){return new ActiveXObject("Microsoft.XMLDOM");}else if(dhtmlapi.isGecko){return document.implementation.createDocument("","",null);}},loadXml:function(xmldoc,xml){if(dhtmlapi.isIE){xmldoc.loadXML(xml);}else if(dhtmlapi.isGecko){var parser=new DOMParser();var doc=parser.parseFromString(xml,"text/xml");xmlutils.removeChildren(xmldoc);for(var i=0,len=doc.childNodes.length;i<len;i++)
{var importedNode=xmldoc.importNode(doc.childNodes.item(i),true);xmldoc.appendChild(importedNode);}}},getChildNode:function(node,nodeName,create){var result=null;if(dhtmlapi.isIE){result=node.selectSingleNode(nodeName);}else if(dhtmlapi.isGecko){var child=node.childNodes.item(0);while(child!=null){if(child.nodeName==nodeName){result=child;break;}
child=child.nextSibling;}}
if(result==null&&create){result=xmlutils.dom.createElement(nodeName);node.appendChild(result);}
return result;},getNodeText:function(node){var result="";var type=node.nodeType;if(type==NodeTypeEnum.NODE_TEXT||type==NodeTypeEnum.NODE_CDATA_SECTION){result+=node.nodeValue;}else if(type==NodeTypeEnum.NODE_ELEMENT){var child=node.childNodes.item(0);while(child!=null){result+=xmlutils.getNodeText(child);child=child.nextSibling;}}
return result;},getElementText:function(node,nodeName){var elem=xmlutils.getChildNode(node,nodeName);if(elem!=null)
return xmlutils.getNodeText(elem);else
return null;},setNodeText:function(node,text){xmlutils.removeChildren(node);node.appendChild(xmlutils.dom.createTextNode(text));},getNodeXML:function(node){if(dhtmlapi.isIE){return node.xml;}else if(dhtmlapi.isGecko){var objXMLSerializer=new XMLSerializer();return objXMLSerializer.serializeToString(node);}},createTextElement:function(nodeName,text){var node=xmlutils.dom.createElement(nodeName);xmlutils.setNodeText(node,text);return node;},prependChild:function(node,child){if(node.childNodes.length){node.insertBefore(child,node.childNodes.item(0));}else{node.appendChild(child);}},removeChildren:function(node){var child=node.childNodes.item(0);while(child!=null){var tmp=child.nextSibling;node.removeChild(child);child=tmp;}},selectSingleNode:function(node,nodeName,namespacePrefix){if(namespacePrefix==null){var nodes=node.getElementsByTagName(nodeName);return(nodes.length>0?nodes[0]:null);}else if(dhtmlapi.isIE){var nodes=node.getElementsByTagName(namespacePrefix+":"+nodeName);return(nodes.length>0?nodes[0]:null);}else if(dhtmlapi.isGecko){var nodes=node.getElementsByTagName(nodeName);if(nodes.length>0){var actualNodeName=namespacePrefix+":"+nodeName;for(var i=0,len=nodes.length;i<len;i++){var result=nodes[i];if(result.nodeName==actualNodeName)
return result;}}}
return null;},trim:function(value){var re=/\s*((\S+\s*)*)/;var le=/((\S+)*)\s*/;var trimR=value.replace(re,"$1");return trimR.replace(le,"$1");},encodeUTF:function(str,escapeURI)
{if(str==null)
return null;var escapedString="";var cc=0;for(var i=0;i<str.length;i++){cc=str.charCodeAt(i);if(cc<=127){if(escapeURI!=null&&cc==38)
escapedString+='&#38;'
else
escapedString+=str.charAt(i);}
else{escapedString+="&#"+cc+";";}}
return escapedString;}};ZIndex.BOTTOM_FIRST=0;ZIndex.BOTTOM_LAST=1023;ZIndex.WIDGET_FIRST=1024;ZIndex.WIDGET_LAST=60000;ZIndex.TOP_FIRST=60001;ZIndex.TOP_LAST=65535;ZIndex.PROGRESS_BAR=65520;ZIndex.MODAL_ALERT=65510;ZIndex.MODELESS_ALERT=65500;ZIndex.RIGHT_MENU=65495;ZIndex.WIDGET_FRAME=65490;ZIndex.MEDIA_EDIT=65490;ZIndex.IMAGE_MAGNIFY=65485;ZIndex.CHAT_EDIT=65480;ZIndex.TEXT_EDIT_PALETTE=65475;ZIndex.TEXT_EDIT=65470;ZIndex.CHAT_EXPANDED=65460;ZIndex.IMAGE_TOOLBAR=65450;ZIndex.EDITOR_TOOLBAR=65445;ZIndex.BACKGROUND=20;ZIndex.OPTOP=1;ZIndex.OPBOTTOM=2;ZIndex.OPFORWARD=3;ZIndex.OPBACKWARD=4;function ZIndex(top,bottom,forward,backward)
{this._top=top;this._bottom=bottom;this._forward=forward;this._backward=backward;}
ZIndex.createInstance=function(top,bottom,forward,backward)
{var zid=new ZIndex(top,bottom,forward,backward);return zid;}
Toolbar.toolbars=null;Toolbar.HORIZONTAL=parseInt("0x01");Toolbar.VERTICAL=parseInt("0x02");Toolbar.prototype._buttons;Toolbar.prototype._locations;Toolbar.prototype._name;Toolbar.prototype._container;Toolbar.prototype._orientation;Toolbar.prototype._table;Toolbar.prototype._defaultButton;Toolbar.prototype._listeners;Toolbar.prototype._padding;Toolbar.prototype._spacing;Toolbar.prototype._highlight;function Toolbar(name,container,height,width)
{this.initialize(name,container,height,width);}
Toolbar.removeInstance=function(tb)
{var name=tb._name;for(var i in Toolbar.toolbars)
{var ptr=Toolbar.toolbars[i];if(ptr._name==name){delete Toolbar.toolbars[i];return true;}}
return false;}
Toolbar.getToolbar=function(name)
{if(Toolbar.toolbars==null)
return null;var val=name;if(typeof name!="string"){var elem=name;while(elem!=null){if(elem.className=="toolbar"){val=elem.id;break;}
elem=elem.parentNode;}}
for(var i in Toolbar.toolbars)
{var tb=Toolbar.toolbars[i];if(tb._name==val)
return tb;}
return null;}
Toolbar.noop=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var typ=evt.type;evt.cancelBubble=true;}
Toolbar.handleMouseOver=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);if(target.className=="btnContainer")
target=target.firstChild;var tb=Toolbar.getToolbar(target);if(tb!=null&&tb._highlight==true)
tb.highlightButton(target);evt.cancelBubble=true;}
Toolbar.handleMouseOut=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);if(target.className=="btnContainer")
target=target.firstChild;var tb=Toolbar.getToolbar(target);if(tb!=null&&tb._highlight==true)
tb.unhighlightButton(target);evt.cancelBubble=true;}
Toolbar.handleMouseDown=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);if(target.className=="btnContainer")
target=target.firstChild;var tb=Toolbar.getToolbar(target);if(tb!=null)
tb.preselect(target);evt.cancelBubble=true;}
Toolbar.handleMouseUp=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);if(target.className=="btnContainer")
target=target.firstChild;var tb=Toolbar.getToolbar(target);if(tb!=null)
tb.processButton(target,evt.clientX,evt.clientY);evt.cancelBubble=true;}
Toolbar.handleDragStart=function(e)
{var evt=EventUtils.getEvent(e);evt.cancelBubble=true;return false;}
Toolbar.prototype.initialize=function(name,container,height,width)
{if(Toolbar.toolbars==null)
Toolbar.toolbars=new Object();this._name=name;this._container=container;this._orientation=Toolbar.HORIZONTAL;this._buttons=new Array();this._locations=new Array();this._defaultButton=null;this._listeners=new Array();this._padding=2;this._spacing=2;this._highlight=true;if(container==null)
return;var elem=document.createElement("div");elem.className="toolbar";elem.id=name;if(height!=null)
elem.style.height=height+'px';if(width!=null)
elem.style.width=width+'px';elem.onmouseup=Toolbar.noop;elem.onmousedown=Toolbar.noop;elem.onmousemove=Toolbar.noop;elem.ondragenter=Toolbar.disableDnD;elem.ondragover=Toolbar.disableDnD;this._container.appendChild(elem);this._table=elem;if(name!=null)
Toolbar.toolbars[this._name]=this;}
Toolbar.disableDnD=function(e){event.returnValue=false;}
Toolbar.prototype.addEventHandlers=function(obj)
{if(obj==null)
return false;obj.onmouseover=Toolbar.handleMouseOver;obj.onmouseout=Toolbar.handleMouseOut;obj.onmouseup=Toolbar.handleMouseUp;obj.onmousedown=Toolbar.handleMouseDown;obj.ondblclick=Toolbar.handleMouseDown;obj.ondragstart=Toolbar.handleDragStart;return true;}
Toolbar.prototype.add=function(btn)
{this.addX(btn,true);}
Toolbar.prototype.addRight=function(btn)
{this.addX(btn,false);}
Toolbar.prototype.addX=function(btn,left)
{var elem=btn.getElement();var container=btn.getContainer();var xcoord=0;var ycoord=0;var obj=null;if(this._orientation==Toolbar.VERTICAL){xcoord=this._padding;if(this._buttons.length==0){ycoord=this._spacing;}
else{obj=this._buttons[this._buttons.length-1].getContainer();ycoord=dhtmlapi.getObjectTop(obj)+dhtmlapi.getObjectHeight(obj)+this._spacing;}}
else{ycoord=this._padding;xcoord=this.getButtonLocation(left);if(left)
this.moveRightButtons(dhtmlapi.getObjectWidth(container)+this._spacing);}
container.style.position="absolute";container.style.top=ycoord+"px";container.style.left=xcoord+"px";if(btn.isActive()==true)
this.addEventHandlers(container);this._table.appendChild(container);this._buttons[this._buttons.length]=btn;this._locations[this._locations.length]=left;}
Toolbar.prototype.getButtonLocation=function(left)
{var xcoord;var obj;var btnLeft;var btnRight;btnLeft=this.getLastButton(true);btnRight=this.getLastButton(false);if(left){if(btnLeft!=null){obj=btnLeft.getContainer();xcoord=dhtmlapi.getObjectLeft(obj)+dhtmlapi.getObjectWidth(obj)+this._spacing;}
else{xcoord=this._spacing;}}
else{if(btnRight!=null){obj=btnRight.getContainer();xcoord=dhtmlapi.getObjectLeft(obj)+dhtmlapi.getObjectWidth(obj)+this._spacing;}
else{if(btnLeft!=null){obj=btnLeft.getContainer();xcoord=dhtmlapi.getObjectLeft(obj)+dhtmlapi.getObjectWidth(obj)+this._spacing;}
else{xcoord=this._spacing;}}}
return xcoord;}
Toolbar.prototype.clearButton=function(name)
{var btn=this.getButton(name);this.unselectButton(btn);}
Toolbar.prototype.setButton=function(name)
{var btn=this.getButton(name);this.selectButton(btn);}
Toolbar.prototype.getButtonById=function(elem)
{return this.getButton(elem.id.substr(4));}
Toolbar.prototype.getButton=function(name)
{for(var i=0;i<this._buttons.length;i++)
{if(this._buttons[i]._name==name)
return this._buttons[i];}
return null;}
Toolbar.prototype.getDefaultButton=function()
{return this._defaultButton;}
Toolbar.prototype.getSelectedButton=function()
{return this._selected;}
Toolbar.prototype.getMinimumWidth=function()
{var width=0;for(var i=0;i<this._buttons.length;i++)
{var obj=this._buttons[i].getContainer();width+=dhtmlapi.getObjectWidth(obj)+this._spacing;}
return width;}
Toolbar.prototype.getMinimumHeight=function()
{var height=0;for(var i=0;i<this._buttons.length;i++)
{var obj=this._buttons[i].getContainer();var cur=dhtmlapi.getObjectHeight(obj)+(this._padding*2);if(cur>height)
height=cur;}
return height;}
Toolbar.prototype.getLastButton=function(left)
{var btn=null;for(var i=0;i<this._buttons.length;i++)
{if(this._locations[i]==left)
btn=this._buttons[i];}
return btn;}
Toolbar.prototype.moveRightButtons=function(deltax)
{for(var i=0;i<this._buttons.length;i++)
{if(this._locations[i]==false){var container=this._buttons[i].getContainer();var oldx=dhtmlapi.getObjectLeft(container);var newx=oldx+deltax;container.style.left=newx+"px";}}}
Toolbar.prototype.getSelectedOperations=function()
{var list=new Array(0);var btn=null;for(var i=0;i<this._buttons.length;i++)
{btn=this._buttons[i];if(btn.isSelected())
list[list.length]=btn.getOperation();}
return list;}
Toolbar.prototype.highlightButton=function(elem)
{var btn=this.getButtonById(elem);var btnType=btn.getType();if(btnType==Button.BUTTON||btnType==Button.TOGGLE_BUTTON||btnType==Button.RADIO_BUTTON||btnType==Button.SELECTION_BUTTON)
{if(!btn.isEnabled()){elem.style.cursor="pointer";}
else if(btn.isSelected())
{}
else{elem.style.backgroundColor="#D3D3D3";elem.style.borderWidth="1px";elem.style.borderStyle="outset";elem.style.cursor="pointer";}}}
Toolbar.prototype.preselect=function(elem)
{var btn=this.getButtonById(elem);var btnType=btn.getType();var pressedImage=btn.getPressedImage();if(!btn.isEnabled())return;if(btnType==Button.BUTTON){if(pressedImage!=null){util.setPngImage(elem,pressedImage);}
else{elem.style.backgroundColor="#D3D3D3";elem.style.borderWidth="1px";elem.style.borderStyle="inset";elem.style.cursor="pointer";}}}
Toolbar.prototype.processButton=function(elem,clientX,clientY)
{var btn=this.getButtonById(elem);var btnType=btn.getType();var state="select";var pressedImage=btn.getPressedImage();if((btn==null)||(!btn.isEnabled()))return;if(btnType==Button.TOGGLE_BUTTON){if(btn.isSelected()){state="unselect";this.unselectButton(btn);}
else{this.selectButton(btn);}}
else if(btnType==Button.RADIO_BUTTON){for(var i=0;i<this._buttons.length;i++){var b=this._buttons[i];if(b.getType()==Button.RADIO_BUTTON&&b.isSelected()){this.unselectButton(b);}}
this.selectButton(btn);}
else{if(pressedImage!=null){util.setPngImage(elem,btn.getUnpressedImage());}
else{elem.style.backgroundColor="#D3D3D3";elem.style.borderWidth="0px";elem.style.borderStyle="none";elem.style.cursor="pointer";}}
if(elem.style.visibility=='hidden')
return;var btnObject=btn.getObject();if(btnObject!=null){btnObject.create(this,btn,this._container,clientX,clientY);}
else{for(var i=0;i<this._listeners.length;i++){var obj=this._listeners[i];obj.toolbarCB(this._name,state,btn.getOperation(),null,clientX,clientY);}}}
Toolbar.prototype.setOrientation=function(val)
{this._orientation=val;}
Toolbar.prototype.unregisterCallback=function(obj)
{if(obj!=null){;}
else{this._listeners=new Array(0);}}
Toolbar.prototype.registerCallback=function(obj)
{this._listeners[this._listeners.length]=obj;}
Toolbar.prototype.selectButtonCB=function(btn,state,value)
{for(var i=0;i<this._listeners.length;i++){var obj=this._listeners[i];obj.toolbarCB(this._name,state,btn.getOperation(),value);}
btn._object.destroy();}
Toolbar.prototype.selectDefaultButton=function()
{var elem=null;var defaultBtn=this.getDefaultButton();if(defaultBtn==null)
return;for(var i=0;i<this._buttons.length;i++){var b=this._buttons[i];if(b.getType()==Button.RADIO_BUTTON&&b.isSelected()){this.unselectButton(b);}}
this.processButton(defaultBtn.getElement());}
Toolbar.prototype.setDefaultButton=function(name)
{var button=this.getButton(name);if(button!=null)
this._defaultButton=button;}
Toolbar.prototype.setHighlight=function(val)
{if(val==false||val=="false")
this._highlight=false;else
this._highlight=true;}
Toolbar.prototype.setOpacity=function(fp)
{try{var x=parseFloat(fp);this._table.style.opacity=x;}
catch(e){;}}
Toolbar.prototype.setPadding=function(v)
{this._padding=v;}
Toolbar.prototype.setSpacing=function(v)
{this._spacing=v;}
Toolbar.prototype.getContainer=function()
{return this._container;}
Toolbar.prototype.unhighlightButton=function(elem)
{var btn=this.getButtonById(elem);var btnType=btn.getType();if(btnType==Button.VERTICAL_BAR)
return;if(!btn.isEnabled()){elem.style.cursor="pointer";}
else if(btn.isSelected())
{}
else{elem.style.backgroundColor="#D3D3D3";elem.style.borderWidth="0px";elem.style.borderStyle="none";elem.style.cursor="pointer";}}
Toolbar.prototype.selectButton=function(btn)
{if(btn==null)
return;if(!btn.isEnabled())return;var elem=btn.getElement();var pressedImage=btn.getPressedImage();var pressedSprite=btn.getPressedSprite();if(pressedImage!=null){util.setPngImage(elem,pressedImage);}
else if(pressedSprite!=null){elem.style.backgroundImage="url("+pressedSprite+")";elem.style.backgroundPosition=btn.getPressedSpriteOffset();}
else{elem.style.backgroundColor="#D3D3D3";elem.style.borderWidth="1px";elem.style.borderStyle="inset";elem.style.cursor="pointer";}
btn.select();}
Toolbar.prototype.unselectButton=function(btn)
{if(btn==null)
return;if(!btn.isEnabled())return;var elem=btn.getElement();var unpressedImage=btn.getUnpressedImage();var unpressedSprite=btn.getUnpressedSprite();if(unpressedImage!=null)
util.setPngImage(elem,unpressedImage);else if(unpressedSprite!=null){elem.style.backgroundImage="url("+unpressedSprite+")";elem.style.backgroundPosition=btn.getUnpressedSpriteOffset();}
else{elem.style.backgroundColor="#D3D3D3";elem.style.borderWidth="0px";elem.style.borderStyle="none";elem.style.cursor="pointer";}
btn.unSelect();}
Toolbar.prototype.hideButton=function(name)
{var btn=this.getButton(name);var elem=btn.getElement();elem.style.visibility="hidden";}
AddButton.prototype._html;function AddButton()
{this._html=null;}
AddButton.prototype.getContainer=function()
{return this._html;}
AddButton.createInstance=function()
{var container=null;var button=new AddButton();container=util.createPngElement('images/homepage/addbuttonnormal.png','',29,31);container.style.cursor='pointer';button._html=container;return button;}
AddButton.prototype.animate=function(normal)
{var srcImg=(normal)?"images/homepage/addbuttonnormal.png":"images/homepage/addbuttonrollover.png";util.setPngImage(this._html,srcImg);}
Button.IMAGE="Image";Button.TEXT="Text";Button.BUTTON=parseInt("0x0001",16);Button.TOGGLE_BUTTON=parseInt("0x0002",16);Button.RADIO_BUTTON=parseInt("0x0004",16);Button.SPACER_BUTTON=parseInt("0x0008",16);Button.VERTICAL_BAR=parseInt("0x0010",16);Button.defaultHeight=20;Button.defaultWidth=20;Button.randomValue=1;Button.prototype._name;Button.prototype._type;Button.prototype._height;Button.prototype._width;Button.prototype._operation;Button.prototype._container;Button.prototype._element;Button.prototype._selected;Button.prototype._object;Button.prototype._unpressedImage;Button.prototype._pressedImage;Button.prototype._disabledImage;Button.prototype._group;Button.prototype._enabled;Button.createButtonContainer=function(name,h,w)
{var c=document.createElement("div");var height=parseInt((h!=null)?h:this.defaultHeight);var width=parseInt((w!=null)?w:this.defaultWidth);c.setAttribute("id",name);c.className="btnContainer";c.style.position="absolute";if(h!=-1)
c.style.height=height+'px';if(w!=-1)
c.style.width=width+'px';return c;}
Button.createText=function(name,type,operation,text,obj,width)
{var w=null;try{w=parseInt(width);if(isNan(w))
w=parseInt(Button.defaultWidth);}
catch(ex){w=parseInt(Button.defaultWidth);}
var c=this.createButtonContainer(name,Button.defaultHeight,w);var elem=document.createElement("span");elem.id="btn_"+name;elem.innerHTML=text;elem.className="normalText";c.appendChild(elem);var b=new Button(name,type,operation,c,elem,obj);return b;}
Button.createImage=function(name,type,operation,src,h,w,alt,obj)
{var c=this.createButtonContainer(name,h,w);var elem=null;var srctype=src.toLowerCase().substr(src.length-3);if(srctype=='png')
elem=util.createPngElement(src,((alt!=null)?alt:''),h,w);else{elem=document.createElement("img");elem.setAttribute("src",src);elem.title=elem.alt=(alt!=null)?alt:"";elem.height=h;elem.width=w;}
elem.ondragenter=Toolbar.disableDnD;elem.ondragover=Toolbar.disableDnD;elem.ondragstart=Toolbar.handleDragStart;elem.onmousedown=Toolbar.handleDragStart;elem.id="btn_"+name;elem.className="btnImage";c.appendChild(elem);var b=new Button(name,type,operation,c,elem,obj);b.setUnPressedImage(src);b._height=h;b._width=w;return b;}
Button.createSprite=function(name,type,operation,src,h,w,ypos,xpos,title)
{var c=this.createButtonContainer(name,h,w);var elem=document.createElement("div");elem.id="btn_"+name;elem.style.height=h+"px";elem.style.width=w+"px";elem.style.cursor='pointer';elem.className="btnSprite";elem.style.backgroundImage="url("+src+")";elem.title=(title!=null)?title:"";var str=xpos+"px "+ypos+"px";elem.style.backgroundPosition=xpos+"px "+ypos+"px";c.appendChild(elem);var b=new Button(name,type,operation,c,elem,null);b._height=h;b._width=w;b.setUnPressedSprite(src,ypos,xpos);return b;}
Button.createObject=function(name,html)
{var c=this.createButtonContainer(name);c.innerHTML=html;}
Button.createOptionList=function(name,list,idx)
{if(list==null||list.length==0)
return;var c=this.createButtonContainer(name);var sel=document.createElement("select");sel.id="btn_"+name;sel.className="btnSelect";for(var i=0;i<list.length;i++){var obj=document.createElement("option");obj.text=list[i].text;obj.value=list[i].value;sel.add(obj);}
c.appendChild(sel);return null;}
Button.createSpacer=function(width,txt)
{var name="spacer"+Button.randomValue++;var c=this.createButtonContainer(name,Button.defaultHeight,width);var w=null;try{w=parseInt(width);}
catch(ex){w=parseInt(30);}
var span=document.createElement("span");span.id="btn_"+name;span.style.width=w+'px';if(txt!=null){span.style.textAlign="center";span.innerHTML=txt;}
c.appendChild(span);var b=new Button(name,Button.SPACER_BUTTON,"noop",c,span,null);return b;}
Button.createVerticalBar=function(height)
{var name="vbar"+Button.randomValue++;var c=this.createButtonContainer(name,height,5);var elem=document.createElement("div");var h=Math.round(height*0.80);elem.id="btn_"+name;elem.className="btnVerticalSeparator";elem.style.position="absolute";elem.style.width='1px';elem.style.height=h+'px';elem.style.top=0;elem.style.left=0;elem.style.backgroundColor="black";c.appendChild(elem);var b=new Button(name,Button.VERTICAL_BAR,"noop",c,elem,null);return b;}
function Button(name,type,operation,container,element,obj)
{this._name=name;this._type=type;this._operation=operation;this._container=container;this._element=element;this._selected=false;this._pressedImage=null;this._unpressedImage=null;this._disabledImage=null;this._group=null;this._enabled=true;if(obj==null||obj==undefined)
this._object=null;else
this._object=obj;}
Button.prototype.getContainer=function()
{return this._container;}
Button.prototype.getElement=function()
{return this._element;}
Button.prototype.getName=function()
{return this._name;}
Button.prototype.getObject=function()
{return this._object;}
Button.prototype.getOperation=function()
{return this._operation;}
Button.prototype.getPressedSprite=function()
{if(this._pressedSpriteSrc!=null)
return this._pressedSpriteSrc;else
return null;}
Button.prototype.getPressedSpriteOffset=function()
{return this._pressedSpriteXpos+"px "+this._pressedSpriteYpos+"px";}
Button.prototype.getPressedImage=function()
{if(this._pressedImage!=null)
return this._pressedImage.src;else
return null;}
Button.prototype.getType=function()
{return this._type;}
Button.prototype.getUnpressedImage=function()
{return this._unpressedImage;}
Button.prototype.getUnpressedSprite=function()
{return this._unpressedSpriteSrc;}
Button.prototype.getDisabledSpriteOffset=function()
{return this._disabledSpriteXpos+"px "+this._disabledSpriteYpos+"px";}
Button.prototype.getUnpressedSpriteOffset=function()
{return this._unpressedSpriteXpos+"px "+this._unpressedSpriteYpos+"px";}
Button.prototype.getDisabledImage=function()
{return this._disabledImage;}
Button.prototype.isActive=function()
{if(this._type==Button.SPACER_BUTTON||this._type==Button.VERTICAL_BAR)
return false;else
return true;}
Button.prototype.isSelected=function()
{return this._selected;}
Button.prototype.isEnabled=function()
{return this._enabled;}
Button.prototype.select=function()
{this._selected=true;}
Button.prototype.setGroupOid=function(grp)
{this._group=grp;}
Button.prototype.setPressedImage=function(pressedImage)
{this._pressedImage=new Image(this._width,this._height);this._pressedImage.src=pressedImage;}
Button.prototype.setUnPressedImage=function(src)
{this._unpressedImage=src;}
Button.prototype.setDisabledImage=function(src)
{this._disabledImage=src;}
Button.prototype.setDisabledSprite=function(src,ypos,xpos)
{this._disabledSpriteSrc=src;this._disabledSpriteXpos=xpos;this._disabledSpriteYpos=ypos;}
Button.prototype.setPressedSprite=function(src,ypos,xpos)
{this._pressedSpriteSrc=src;this._pressedSpriteXpos=xpos;this._pressedSpriteYpos=ypos;}
Button.prototype.setUnPressedSprite=function(src,ypos,xpos)
{this._unpressedSpriteSrc=src;this._unpressedSpriteXpos=xpos;this._unpressedSpriteYpos=ypos;}
Button.prototype.setDisabledSprite=function(src,ypos,xpos)
{this._disabledSpriteSrc=src;this._disabledSpriteXpos=xpos;this._disabledSpriteYpos=ypos;}
Button.prototype.unSelect=function()
{this._selected=false;}
Button.prototype.enable=function(enable)
{if(enable!=this._enabled){this._enabled=enable;if(enable==true){if(this._unpressedImage!=null)
util.setPngImage(this._element,this._unpressedImage);else if(this._unpressedSpriteSrc!=null){this._element.style.backgroundImage="url("+this._unpressedSpriteSrc+")";this._element.style.backgroundPosition=this.getUnpressedSpriteOffset();}
this._element.style.cursor="pointer";}
else{if(this._disabledImage!=null)
util.setPngImage(this._element,this._disabledImage);else if(this._disabledSpriteSrc!=null){this._element.style.backgroundImage="url("+this._disabledSpriteSrc+")";this._element.style.backgroundPosition=this.getDisabledSpriteOffset();}
this._element.style.cursor="default";}}}
FileUpload.object=null;FileUpload.prototype._parentElement=null;FileUpload.prototype._container=null;FileUpload.prototype._iframe=null;FileUpload.prototype._flashdiv=null;FileUpload.prototype._height;FileUpload.prototype._width;FileUpload.prototype._isOpened=false;var flashUpload=null;function FileUpload(parentElement,top,left)
{this._parentElement=parentElement;this._top=parseInt(top);this._left=parseInt(left);}
FileUpload.createInstance=function(parentElement,top,left)
{FileUpload.object=new FileUpload(parentElement,top,left);return FileUpload.object;}
FileUpload.prototype.initialize=function()
{var row;var col;var col2;var rowCounter=0;this._width=425;this._height=200;this._container=document.createElement("div");this._container.style.position="absolute";this._container.style.top=this._top+"px";this._container.style.left=this._left+"px";this._container.style.width=this._width+"px";this._container.style.height=this._height+"px";this._container.style.backgroundColor="#E4EDF2";this._container.style.border='solid black 2px';this._container.style.margin='0px';this._container.style.overflow="hidden";this._container.style.zIndex=ZIndex.PROGRESS_BAR;this._parentElement.appendChild(this._container);this._flashdiv=document.createElement("div");this._flashdiv.id="flashdiv";this._flashdiv.style.height="100%";this._flashdiv.style.width="100%";this._flashdiv.innerHTML="Flash failed loading or is not installed. Please click <a href='failedflashInstallation.html' target='_blank'>here for further instructions.</a>";this._isOpened=true;}
FileUpload.prototype.execute=function(host,context,pathOid,pageOid,objId,pageVersion,maxHeight,maxWidth)
{this._container.appendChild(this._flashdiv);var upload=0;if(groupOid==1)
upload=uploadBuildNShareMax;else
upload=uploadMax;var swfurl="flashUpload.swf?host="+host+"\u0026context="+context+"\u0026pathOid="+pathOid+"\u0026pageOid="+pageOid+"\u0026objId="+objId+"\u0026pageVersion="+pageVersion+"\u0026maxHeight="+maxHeight+"\u0026maxWidth="+maxWidth+"\u0026uploadMax="+upload+"\u0026groupOid="+groupOid+"\u0026uploadMaxRe="+uploadMax;var FO={movie:swfurl,width:"100%",height:"100%",majorversion:"8",build:"0"};UFO.create(FO,"flashdiv");}
FileUpload.prototype.close=function()
{this._flashdiv.innerHTML="";this._container.removeChild(this._flashdiv);this._parentElement.removeChild(this._container);this._isOpened=false;}
var FloatLayers=new Array();var FloatLayersByName=new Array();function addFloatLayer(n,offX,offY,spd){new FloatLayer(n,offX,offY,spd);}
function getFloatLayer(n){return FloatLayersByName[n];}
function alignFloatLayers(){for(var i=0;i<FloatLayers.length;i++)FloatLayers[i].align();}
function getXCoord(el){x=0;while(el){x+=el.offsetLeft;el=el.offsetParent;}
return x;}
function getYCoord(el){y=0;while(el){y+=el.offsetTop;el=el.offsetParent;}
return y;}
FloatLayer.prototype.setFloatToTop=setTopFloater;FloatLayer.prototype.setFloatToBottom=setBottomFloater;FloatLayer.prototype.setFloatToLeft=setLeftFloater;FloatLayer.prototype.setFloatToRight=setRightFloater;FloatLayer.prototype.initialize=defineFloater;FloatLayer.prototype.adjust=adjustFloater;FloatLayer.prototype.align=alignFloater;function FloatLayer(n,offX,offY,spd){this.index=FloatLayers.length;FloatLayers.push(this);FloatLayersByName[n]=this;this.name=n;this.floatX=0;this.floatY=0;this.tm=null;this.steps=spd;this.alignHorizontal=(offX>=0)?leftFloater:rightFloater;this.alignVertical=(offY>=0)?topFloater:bottomFloater;this.ifloatX=Math.abs(offX);this.ifloatY=Math.abs(offY);}
function defineFloater(){this.layer=document.getElementById(this.name);if(this.layer!=null){this.width=this.layer.offsetWidth;this.height=this.layer.offsetHeight;this.prevX=this.layer.offsetLeft;this.prevY=this.layer.offsetTop;}}
function adjustFloater(){this.tm=null;if(this.layer.style.position!='absolute')return;var dx=Math.abs(this.floatX-this.prevX);var dy=Math.abs(this.floatY-this.prevY);if(dx<this.steps/2)
cx=(dx>=1)?1:0;else
cx=Math.round(dx/this.steps);if(dy<this.steps/2)
cy=(dy>=1)?1:0;else
cy=Math.round(dy/this.steps);if(this.floatX>this.prevX)
this.prevX+=cx;else if(this.floatX<this.prevX)
this.prevX-=cx;if(this.floatY>this.prevY)
this.prevY+=cy;else if(this.floatY<this.prevY)
this.prevY-=cy;this.layer.style.left=this.prevX;this.layer.style.top=this.prevY;if(cx!=0||cy!=0){if(this.tm==null)this.tm=setTimeout('FloatLayers['+this.index+'].adjust()',50);}else
alignFloatLayers();}
function setLeftFloater(){this.alignHorizontal=leftFloater;}
function setRightFloater(){this.alignHorizontal=rightFloater;}
function setTopFloater(){this.alignVertical=topFloater;}
function setBottomFloater(){this.alignVertical=bottomFloater;}
function leftFloater(){this.floatX=document.body.scrollLeft+this.ifloatX;}
function topFloater(){this.floatY=document.body.scrollTop+this.ifloatY;}
function rightFloater(){this.floatX=document.body.scrollLeft+document.body.clientWidth-this.ifloatX-this.width;}
function bottomFloater(){this.floatY=document.body.scrollTop+document.body.clientHeight-this.ifloatY-this.height;}
function alignFloater(){if(this.layer==null)this.initialize();this.alignHorizontal();this.alignVertical();if(this.prevX!=this.floatX||this.prevY!=this.floatY){if(this.tm==null)this.tm=setTimeout('FloatLayers['+this.index+'].adjust()',50);}}
List.index=0;List.objects;List.prototype._id;List.prototype._height;List.prototype._width;List.prototype._columns;List.prototype._disabledColumn;List.prototype._data;List.prototype._clientData;List.prototype._clip;List.prototype._table;List.prototype._title;List.prototype._displayTitle;List.prototype._container;function List(columns,clip)
{this._id=List.generateName();this._height=0;this._width=0;this._columns=columns;this._data=null;this._clientData=null;this._clip=clip;this._table=null;this._container=null;this._title=null;this._displayTitle=true;this._disabledColumn=-1;}
List.getList=function(id)
{for(var i=0;i<List.objects.length;i++){if(List.objects[i]._id==id)
return List.objects[i];}
return null;}
List.generateName=function(uniqueId)
{var str="listComponent_"+((uniqueId!=null)?uniqueId:List.index++);return str;}
List.handleClick=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var selectedColumn=-1;var selectedRow=-1;var widgetId=null;for(var elem=target;;elem=elem.parentNode){widgetId=elem.getAttribute('widgetId');if(widgetId!=null){selectedColumn=elem.cellIndex;selectedRow=elem.parentNode.rowIndex;break;}}
var list=List.getList(widgetId);if(list==null)
return;var column=list._columns[selectedColumn];if(column._cbfunc!=null){column._cbfunc(list,selectedRow,list._data[selectedRow],column._cbfuncdata);}
return false;}
List.createInstance=function(columns,clip)
{var l=new List(columns,clip);if(List.objects==null)
List.objects=new Array();List.objects[List.objects.length]=l;return l;}
List.prototype.addRow=function(item)
{var table=this._table;var row=table.insertRow(table.rows.length);this._data[this._data.length]=item;this.createRow(row,this._columns,item);}
List.prototype.deleteRow=function(rowIdx)
{this._table.deleteRow(rowIdx);this._data.splice(rowIdx,1);}
List.prototype.disableColumn=function(idx)
{var row=this._title.rows[0];var col=row.cells[idx];var spn=col.firstChild;spn.innerHTML='&nbsp;';this._disabledColumn=idx;}
List.prototype.displayTitle=function(b)
{this._displayTitle=(b==false)?false:true;}
List.prototype.setData=function(data,userData)
{this._data=data;this._clientData=userData;this.redraw();}
List.prototype.enableColumn=function(idx)
{if(this._disabledColumn==-1)
return;var row=this._title.rows[0];var col=row.cells[this._disabledColumn];var spn=col.firstChild;spn.innerHTML=this._columns[this._disabledColumn]._title;this._disabledColumn=-1;}
List.prototype.toHtml=function(container)
{try{var height=dhtmlapi.getObjectHeight(container);var width=dhtmlapi.getObjectWidth(container);width=(width-15)/width;width=Math.floor(width*100)+"%";if(this._displayTitle==true){this._title=this.createTitleBar(container,width,this._columns);height-=dhtmlapi.getObjectHeight(this._title);}
var subcontainer=document.createElement("div");subcontainer.id="subcontainer";subcontainer.setAttribute('widgetId',this._id);subcontainer.className="listComponentContainer";subcontainer.style.border="solid black 0px";subcontainer.style.width="100%";subcontainer.style.height=(height-15)+'px';subcontainer.style.overflowY="auto";subcontainer.style.overflowX="hidden";this.populate(subcontainer,width,this._columns,this._data);container.appendChild(subcontainer);this._container=subcontainer;}catch(e){alert(e.message);return;}}
List.prototype.updateRow=function(rowIdx,item)
{this._data[rowIdx]=item;this._table.deleteRow(rowIdx);var row=this._table.insertRow(rowIdx);this.createRow(row,this._columns,item);}
List.prototype.createRow=function(row,columns,dataItem)
{var cdata=null;for(var j=0;j<columns.length;j++)
{cdata=columns[j];var col=row.insertCell(j);col.width=columns[j]._width;col.className=columns[j]._class;if(this._disabledColumn==j){var spn=document.createElement("span");spn.innerHTML='&nbsp;';continue;}
var lc=dataItem.getData(columns[j]._id,this._clientData);if(lc._type==ListCell.TYPE_STRING||lc._type==ListCell.TYPE_NUMBER)
{var spn=document.createElement("span");spn.innerHTML=lc._value;if(cdata._cbfunc!=null){spn.style.cursor='pointer';spn.onclick=List.handleClick;col.setAttribute('widgetId',this._id);}
col.appendChild(spn);}else if(lc._type==ListCell.TYPE_IMAGE){var img=document.createElement("img");img.src=lc._value;img.width=lc._width;img.height=lc._height;if(cdata._cbfunc!=null){img.style.cursor='pointer';img.onclick=List.handleClick;col.setAttribute('widgetId',this._id);}
col.appendChild(img);}else if(lc._type==ListCell.TYPE_CONTAINER){var div=document.createElement("div");div.innerHTML=lc._value;div.width=lc._width;div.height=lc._height;if(cdata._cbfunc!=null){div.style.cursor='pointer';div.onclick=List.handleClick;col.setAttribute('widgetId',this._id);}
col.appendChild(div);}else if(lc._type==ListCell.TYPE_BUTTON){var button=document.createElement("button");button.innerHTML=lc._value;button.className=columns[j]._class;if(cdata._cbfunc!=null){button.style.cursor='pointer';button.onclick=List.handleClick;col.setAttribute('widgetId',this._id);}
col.appendChild(button);}}}
List.prototype.createTitleBar=function(container,width,columns)
{if(columns!=null&&columns.length!=null)
{var tbar=document.createElement("table");tbar.id="titleBar";tbar.cellSpacing=0;tbar.cellPadding=0;tbar.border=0;tbar.width=width;tbar.className="listComponentTitleBar";var row=tbar.insertRow(0);for(var i=0;i<columns.length;i++)
{var col=row.insertCell(i);col.width=columns[i]._width;col.className=columns[i]._classHdr;var spn=document.createElement("span");spn.innerHTML=columns[i]._title;spn.noWrap=true;col.appendChild(spn);}
container.appendChild(tbar);return tbar;}}
List.prototype.defineColumns=function(columns)
{var colgroup=document.createElement("colgroup");for(var i=0;i<columns.length;i++)
{var col=document.createElement("col");if(columns[i].width!=null)
col.width=columns[i].width;colgroup.appendChild(col);}
this._table.appendChild(colgroup);}
List.prototype.populate=function(container,width,columns,data)
{this._table=document.createElement("table");this._table.id="list";this._table.className="listComponentList";this._table.border=0;this._table.cellSpacing=0;this._table.cellPadding=0;this._table.width=width;this.defineColumns(columns);container.appendChild(this._table);}
List.prototype.redraw=function()
{if(this._table!=null){while(this._table.rows.length>0)
this._table.deleteRow(0);}
if(this._data!=null){for(var i=0;i<this._data.length;i++)
{var row=this._table.insertRow(i);this.createRow(row,this._columns,this._data[i]);}}}
ListColumn.prototype._id;ListColumn.prototype._title;ListColumn.prototype._class;ListColumn.prototype._classHdr;ListColumn.prototype._width;ListColumn.prototype._cbfunc;ListColumn.prototype._cbfuncdata;function ListColumn(id,title,classname,classnameHdr,width,cbfunc,cbfuncdata)
{this._id=id;this._title=title;this._class=(classname!=null)?classname:"listComponentColumn";this._classHdr=(classnameHdr!=null)?classnameHdr:"listComponentColumn";this._width=width;this._cbfunc=cbfunc;this._cbfuncdata=cbfuncdata;}
ListCell.TYPE_STRING=parseInt("0x01");ListCell.TYPE_NUMBER=parseInt("0x02");ListCell.TYPE_IMAGE=parseInt("0x04");ListCell.TYPE_CONTAINER=parseInt("0x08");ListCell.TYPE_BUTTON=parseInt("0x10");ListCell.prototype._type;ListCell.prototype._value;ListCell.prototype._width;ListCell.prototype._height;function ListCell(type,value,height,width)
{this._type=type;this._value=value;this._height=height;this._width=width;}
function hideLoading()
{var obj=document.getElementById("loading-status");obj.style.visibility="hidden";removeLoadingLayer();}
function setLoadingDimensions()
{var obj=document.getElementById("loading-status");var dim=dhtmlapi.getPageScroll();obj.style.position="absolute";obj.style.left=dim.scrollX+(dhtmlapi.getInsideWindowWidth()*0.3)+'px';obj.style.top=dim.scrollY+200+'px';}
function showLoading(h,w)
{loadingLayer(h,w);var obj=document.getElementById("loading-status");obj.style.visibility="visible";var div=document.createElement('DIV');div.setAttribute('id','loading-refresher');document.body.appendChild(div);div.parentNode.removeChild(div);}
function loadingLayer(h,w)
{var layerlock=document.createElement("div");layerlock.setAttribute('id','layerlock');layerlock.style.position="absolute";layerlock.style.display="";layerlock.style.top="0px";layerlock.style.left="0px";layerlock.style.height=(h!=null)?h+"px":"100%";layerlock.style.width=(w!=null)?w+"px":"100%";layerlock.style.backgroundColor="white";layerlock.style.zIndex=ZIndex.PROGRESS_BAR-1;dhtmlapi.setOpacity(layerlock,0.4);document.body.appendChild(layerlock);}
function resizeLoadingLayer(h,w)
{var obj=document.getElementById('layerlock');if(obj!=null){obj.style.height=h+'px';obj.style.width=w+'px';}}
function removeLoadingLayer(){var obj=document.getElementById("layerlock");if(obj!=null)
document.body.removeChild(obj);}
ModalDialog.object=null;ModalDialog.prototype.id;ModalDialog.prototype.container;ModalDialog.prototype.dlg;ModalDialog.prototype.content;ModalDialog.prototype.top;ModalDialog.prototype.left;ModalDialog.prototype.height;ModalDialog.prototype.width;ModalDialog.prototype.attributes;ModalDialog.prototype.okButton;ModalDialog.prototype.okCallback;ModalDialog.prototype.cancelCallback;ModalDialog.prototype.options;function ModalDialog(options,okCallback,cancelCallback)
{this.id="dlg1";this.top=-1;this.left=-1;this.height=-1;this.width=400;this.dlg=null;this.content=null;this.container=null;this.attributes=new Object();this.okButton=false;this.okCallback=okCallback;this.cancelCallback=cancelCallback;this.options=""
if(options!=null)
{for(var i=0;i<options.length;i++)
{var nv=options[i].split('=');switch(nv[0])
{case'okButton':this.okButton=true;break;case'height':this.height=parseInt(nv[1]);break;case'width':this.width=parseInt(nv[1]);break;case'top':this.top=parseInt(nv[1]);break;case'left':this.left=parseInt(nv[1]);break;default:this.options+="&"+options[i];break;}}}}
ModalDialog.createInstance=function(options,okCallback,cancelCallback)
{if(ModalDialog.object!=null){alert("A Modal Dialog is already open");return null;}
ModalDialog.object=new ModalDialog(options,okCallback,cancelCallback);return ModalDialog.object;}
ModalDialog.alert=function(msg)
{var options=["okButton","width=400"];var dlg=ModalDialog.createInstance(options);var s='<table width="95%">'+'<tr valign=center>'+'  <td><img src="images/gui/hazard_icon.jpg" style="height:32px;width:32px;" alt="error dialog"></td>'+'  <td align=left><span class=mediumText>'+msg+'</span></td>'+'</tr></table>';dlg.render(s);}
ModalDialog.getElementById=function(id)
{return ModalDialog.object.getElementById(id);}
ModalDialog.getElementValue=function(id)
{return ModalDialog.object.getElementValue(id);}
ModalDialog.handleClick=function(e)
{}
ModalDialog.handleKeyPress=function(e)
{var dlg=ModalDialog.object;var evt=EventUtils.getIframeEvent(e,dlg.id,"keypress");var charnum=evt.keyCode;if(charnum==13){setTimeout("ModalDialog.invoke('ok')",0);}}
ModalDialog.handleBtnPress=function(val)
{var func="ModalDialog.invoke('"+val+"')";setTimeout(func,0);}
ModalDialog.invoke=function(val)
{var dlg=ModalDialog.object;if(val=='ok'&&dlg.okCallback!=null)
dlg.okCallback(dlg,val);else if(val=='cancel'&&dlg.cancelCallback!=null)
dlg.cancelCallback(dlg,val);dlg.close();delete ModalDialog.object;ModalDialog.object=null;}
ModalDialog.closeDialog=function(id)
{setTimeout("ModalDialog.invoke('cancel')",0);}
ModalDialog.prototype.close=function()
{document.body.removeChild(this.container);}
ModalDialog.prototype.render=function(str)
{this.content=str;var container=document.createElement("div");container.style.position='absolute';container.style.top='0px';container.style.left='0px';container.style.height=dhtmlapi.getInsideWindowHeight()+'px';container.style.width=dhtmlapi.getInsideWindowWidth()+'px';container.style.zIndex=50000;container.style.cursor='wait';container.style.backgroundImage="url(images/homepage/transparentw.gif)";container.style.backgroundRepeat="repeat";container.onmousedown=ModalDialog.handleClick;container.onmouseup=ModalDialog.handleClick;container.onclick=ModalDialog.handleClick;var dlg=document.createElement('iframe');dlg.id=this.id;dlg.className='normalText';dlg.src="modalDialog.htm?"+this.id+encodeURIComponent(this.options);dlg.frameBorder="no";dlg.scrolling="no";dlg.style.position='absolute';dlg.style.backgroundColor='#E4EDF2';if(this.height!=-1)
dlg.style.height=this.height+'px';if(this.width!=-1)
dlg.style.width=this.width+'px';container.appendChild(dlg);this.container=container;this.dlg=dlg;this.position();document.body.appendChild(container);}
ModalDialog.prototype.focus=function(id)
{var cd=ModalDialog.dlg.contentWindow.document;var obj=cd.getElementById(id);obj.focus();}
ModalDialog.loaded=function(id)
{var dialog=ModalDialog.object;var dlg=dialog.dlg;var doc=dlg.contentWindow.document;var ctr=doc.getElementById("dlgContainer");var v=dialog.content;if(dialog.okCallback!=null||dialog.cancelCallback!=null||dialog.okButton==true)
{v+='<div style="margin-top:10px;margin-bottom:10px;"><center>';if(dialog.okCallback!=null||dialog.okButton==true){v+='  <button id=dlgBtnOk class=normalText onclick="parent.ModalDialog.handleBtnPress(\'ok\')" style="width:70px;">Ok</button>';}
if(dialog.cancelCallback!=null)
{v+='<button id=dlgBtnCancel class=normalText onclick="parent.ModalDialog.handleBtnPress(\'cancel\')" style="width:70px;">Cancel</button>';}
v+='</div>';}
ctr.innerHTML=v;if(dialog.height==-1){var body_h=dhtmlapi.getObjectHeight(doc.body);dlg.style.height=parseInt(body_h)+'px';}
if(dialog.width==-1){var body_w=dhtmlapi.getObjectWidth(doc.body);dlg.style.width=parseInt(body_w)+'px';}
var list=ctr.getElementsByTagName("input");if(list==null||list.length==0)
list=ctr.getElementsByTagName("select");if(list==null||list.length==0)
list=ctr.getElementsByTagName("button");if(list!=null&&list.length!=0){list[0].focus();list[0].onkeyup=ModalDialog.handleKeyPress;}}
ModalDialog.prototype.setAttribute=function(name,value)
{this.attributes[name]=value;}
ModalDialog.prototype.getAttribute=function(name)
{return this.attributes[name];}
ModalDialog.prototype.getElementById=function(name)
{return this.dlg.contentWindow.document.getElementById(name);}
ModalDialog.prototype.getElementValue=function(name)
{var obj=this.dlg.contentWindow.document.getElementById(name);if(obj.tagName.toUpperCase()=="INPUT")
return obj.value;else if(obj.tagName.toUpperCase()=="SELECT")
return obj.options[obj.selectedIndex].value;else
return xmlutils.getNodeText(obj);}
ModalDialog.prototype.position=function()
{var t=0;var l=0;if(this.top==-1){var win_h=dhtmlapi.getInsideWindowHeight();t=parseInt((win_h-this.height)*.40);}
else
t=this.top;if(this.left==-1){var win_w=dhtmlapi.getInsideWindowWidth();l=parseInt((win_w-this.width)/2);}
else
l=this.left;this.dlg.style.top=t+'px';this.dlg.style.left=l+'px';}
PopupMenu.menu=null;PopupMenu.prototype._isVisible=null;PopupMenu.prototype._isItemSelected=null;PopupMenu.prototype._title=null;PopupMenu.prototype._items=null;PopupMenu.prototype._table=null;PopupMenu.prototype._container=null;PopupMenu.prototype._cbfunc=null;PopupMenu.prototype._cbobj=null;PopupMenu.prototype._fontFamily=null;PopupMenu.prototype._fontSize=null;function PopupMenu(title,cbfunc,cbobj)
{this._isVisible=false;this._isItemSelected=false;this._title=title;this._items=new Array(0);this._table=null;this._container=null;this._cbfunc=cbfunc;this._cbobj=cbobj;this._fontFamily=null;this._fontSize=null;}
PopupMenu.createInstance=function(parent,title,cbFunc,cbObj,width)
{var pmenu=new PopupMenu(title,cbFunc,cbObj);pmenu.createMenu(parent,width);if(PopupMenu.menu==null)
PopupMenu.menu=new Object();PopupMenu.menu[title]=pmenu;return pmenu;}
PopupMenu.getInstance=function(elem)
{var target=elem;while(target!=null&&target.className!='popupMenu')
target=target.parentNode;return PopupMenu.menu[target.id];}
PopupMenu.handleMenuItemMouseOver=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var pmenu=PopupMenu.getInstance(target);if(target.tagName!='TD')
target=target.parentNode;pmenu.highlightItem(target);}
PopupMenu.prototype.highlightItem=function(elem)
{var obj=null;if(typeof elem=="number"){var row=this._table.rows[elem];obj=row.cells[0];}
else
obj=elem;obj.style.backgroundColor='#EFEFEF';obj.style.border='none';obj.style.borderBottom='1px solid lightgrey';this._isItemSelected=true;}
PopupMenu.handleMenuItemMouseOut=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var pmenu=PopupMenu.getInstance(target);if(target.tagName!='TD')
target=target.parentNode;target.style.backgroundColor='#FFFFFF';target.style.border='solid lightgrey 1px';pmenu._isItemSelected=false;}
PopupMenu.handleMenuItemSelection=function(e)
{var evt=EventUtils.getEvent(e);var obj=EventUtils.getTargetElement(evt);var pmenu=PopupMenu.getInstance(obj);var cell=null;var span=null;if(obj.tagName=='TD')
{cell=obj;span=cell.firstChild;}
else if(obj.tagName=='SPAN')
{cell=obj.parentNode;span=obj;}
else{return;}
var idx=parseInt(cell.id.split('_')[1]);var op=pmenu._items[idx];if(op.operation==null)
return;pmenu.popdown();evt.cancelBubble=true;var x=dhtmlapi.getObjectLeft(pmenu._container);var y=dhtmlapi.getObjectTop(pmenu._container);if(pmenu._cbobj)
pmenu._cbfunc.call(pmenu._cbobj,op.title,op.operation,x,y);else
pmenu._cbfunc(op.title,op.operation,x,y);return false;}
PopupMenu.prototype.addMenuItem=function(title,operation)
{var idx=this._items.length;var row=this._table.insertRow(idx);var col=row.insertCell(0);col.id='item_'+idx;col.align='left';col.className='popupMenuItem';col.onmouseover=PopupMenu.handleMenuItemMouseOver;col.onmouseout=PopupMenu.handleMenuItemMouseOut;var spn=document.createElement("span");spn.innerHTML=title;if(this._fontFamily!=null)
spn.style.fontFamily=this._fontFamily;if(this._fontSize!=null)
spn.style.fontSize=this._fontSize;col.appendChild(spn);this._items[idx]={title:title,operation:operation};if(operation==null){col.style.color='lightgrey';}}
PopupMenu.prototype.createMenu=function(parent,width)
{var div=document.createElement("div");div.id=this._title;div.className='popupMenu';parent.appendChild(div);var t1=document.createElement("table");t1.width=width;t1.cellSpacing=1;t1.cellPadding=0;t1.bgcolor='lightgray';div.appendChild(t1);var row=t1.insertRow(0);var col=row.insertCell(0);var t2=document.createElement("table");t2.width=width-2;t2.cellSpacing=0;t2.cellPadding=0;col.appendChild(t2);this._table=t2;this._container=div;}
PopupMenu.prototype.isVisible=function()
{return this._isVisible;}
PopupMenu.prototype.isItemSelected=function()
{return this._isItemSelected;}
PopupMenu.prototype.popup=function(top,left)
{if(dhtmlapi.isIE){this._container.style.pixelLeft=left;this._container.style.pixelTop=top;}
else{this._container.style.left=left+'px';this._container.style.top=top+'px';}
this._container.style.visibility="visible";this._container.onclick=PopupMenu.handleMenuItemSelection;this._isVisible=true;return false;}
PopupMenu.prototype.popdown=function()
{this._isVisible=false;this._overpopupmenu=false;this._container.style.visibility="hidden";return true;}
PopupMenu.prototype.setFont=function(family,size)
{if(family!=null)
this._fontFamily=family;if(size!=null)
this._fontSize=size;}
ProgressBar.object=null;ProgressBar.SliderHeight=parseInt("25");ProgressBar.prototype._parentElement=null;ProgressBar.prototype._top;ProgressBar.prototype._left;ProgressBar.prototype._window=null;ProgressBar.prototype._interval=null;ProgressBar.prototype._container=null;ProgressBar.prototype._status=null;ProgressBar.prototype._footer=null;ProgressBar.prototype._dlgbtn=null;ProgressBar.prototype._details=null;ProgressBar.prototype._msgList=null;ProgressBar.prototype._slider1Container=null;ProgressBar.prototype._slider1=null;ProgressBar.prototype._slider1Header=null;ProgressBar.prototype._slider1Limit=0;ProgressBar.prototype._slider1Width=0;ProgressBar.prototype._slider2Container=null;ProgressBar.prototype._slider2=null;ProgressBar.prototype._slider2Header=null;ProgressBar.prototype._slider2Limit=0;ProgressBar.prototype._slider2Width=0;ProgressBar.prototype._toggle=null;ProgressBar.prototype._height;ProgressBar.prototype._width;ProgressBar.prototype._chunk=null;ProgressBar.prototype._btnfunc;ProgressBar.prototype._isOpened=false;ProgressBar.prototype._currentMessage=null;ProgressBar.prototype._messageLog=null;function ProgressBar(parentElement,top,left)
{this._parentElement=parentElement;this._top=parseInt(top);this._left=parseInt(left);}
ProgressBar.createInstance=function(parentElement,top,left)
{if(ProgressBar.object!=null)
return ProgressBar.object;ProgressBar.object=new ProgressBar(parentElement,top,left);return ProgressBar.object;}
ProgressBar.prototype.initialize=function(expanded,btnfunc,btntext,initialMsg)
{var row;var col;var col2;var rowCounter=0;this._width=425;this._currentMessage=null;this._btnfunc=btnfunc;this._messageLog=new Array(0);this._container=document.createElement("div");this._container.style.position="absolute";this._container.style.top=this._top+"px";this._container.style.left=this._left+"px";this._container.style.width=this._width+"px";this._container.style.border="solid lightblue 1px";this._container.style.backgroundColor="#3399CC";this._container.style.border='solid black 2px';this._container.style.margin='5px';this._container.style.overflow="hidden";this._container.style.zIndex=ZIndex.PROGRESS_BAR;this._parentElement.appendChild(this._container);this._isOpened=true;var tbl=document.createElement("table");tbl.border=0;tbl.cellPadding=5;tbl.cellSpacing=0;tbl.width="97%";this._container.appendChild(tbl);row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col.colSpan=2;this._status=this.createText((initialMsg!=null)?initialMsg:"");col.appendChild(this._status);if(expanded){row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col.colSpan=2;this._slider1Header=this.createSliderHeader();col.appendChild(this._slider1Header);row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col.colSpan=2;this._slider1Container=this.createSliderContainer();this._slider1=this.addSlider(this._slider1Container);col.appendChild(this._slider1Container);this._slider1Width=dhtmlapi.getObjectWidth(this._slider1Container)-2;this._slider1Limit=0;row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col.colSpan=2;this._slider2Header=this.createSliderHeader();col.appendChild(this._slider2Header);row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col.colSpan=2;this._slider2Container=this.createSliderContainer();this._slider2=this.addSlider(this._slider2Container);col.appendChild(this._slider2Container);this._slider2Width=dhtmlapi.getObjectWidth(this._slider2Container)-2;this._slider2Limit=0;}
else{this._slider1Header=this._slider2Header=null;this._slider1Container=this._slider2Container=null;this._slider1=this._slider2=null;this._slider1Width=this._slider2Width=0;this._slider1Limit=this._slider2Limit=0;}
row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col.colSpan=2;this._toggle=this.createButton(ProgressBar.handleToggle,"progressBarToggle","Show Details");col.appendChild(this._toggle);row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col.colSpan=2;this._details=document.createElement("div");this._details.className='normalText';this._details.style.display="none";this._details.style.height="200px";this._details.style.width="100%";this._details.style.overflow="scroll";this._details.style.border="inset lightgrey 1px";this._container.style.color="#FFFFFF";col.appendChild(this._details);this._msgList=document.createElement("table");this._msgList.align='right';this._msgList.style.width="100%";this._details.appendChild(this._msgList);row=tbl.insertRow(rowCounter++);col=row.insertCell(0);col2=row.insertCell(1);col2.align="right";this._footer=this.createText("");col.appendChild(this._footer);this._dlgbtn=this.createButton(ProgressBar.handlePress,"progressBarButton",btntext);col2.appendChild(this._dlgbtn);}
ProgressBar.prototype.createSliderHeader=function()
{var header=document.createElement("span");header.style.fontFamily="Century Gothic, Verdana, Arial, Helvetica, sans-serif";header.style.fontSize="10pt";header.style.color="#FFFFFF";header.innerHTML="";return header;}
ProgressBar.prototype.createSliderContainer=function()
{var container=document.createElement("div");container.style.position="relative";container.style.backgroundColor="white";container.style.border="solid black 1px";container.style.height=ProgressBar.SliderHeight+"px";container.style.width="100%";return container;}
ProgressBar.prototype.addSlider=function(container)
{var slider=document.createElement("div");var height=ProgressBar.SliderHeight;slider.style.position="absolute";slider.style.left="0px";slider.style.top="0px";slider.style.height=height+"px";slider.style.width="0px";slider.style.backgroundColor="#66CCFF";container.appendChild(slider);return slider;}
ProgressBar.prototype.createButton=function(handler,id,text)
{var btn=document.createElement("button");btn.id=id;btn.className='normalText';btn.onclick=handler;btn.innerHTML=text;btn.setAttribute('op',text);return btn;}
ProgressBar.prototype.createText=function(str)
{var text=document.createElement("span");text.className='normalText';text.style.color="#FFFFFF";text.innerHTML=str;return text;}
ProgressBar.handlePress=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var pbar=ProgressBar.object;pbar._btnfunc(pbar._dlgbtn.innerHTML);}
ProgressBar.handleToggle=function()
{var obj=ProgressBar.object;var btn=obj._toggle;var win=obj._window;var disp=ProgressBar.object._details.style.display;if(disp=='none'){btn.innerHTML="Hide Details";btn.setAttribute('op','hide');ProgressBar.object._details.style.display="block";}else{btn.innerHTML="Show Details";ProgressBar.object._details.style.display="none";}}
ProgressBar.prototype.setTitle=function(title)
{}
ProgressBar.prototype.log=function(msg)
{this._messageLog[this._messageLog.length]=msg;var tr=this._msgList.insertRow(this._msgList.rows.length);var td=tr.insertCell(0);td.innerHTML='<span class=normalText>'+msg+'</span><br>';}
ProgressBar.prototype.updateStatus=function(msg)
{if(msg==null)
return;var status_msg=msg;if(status_msg.length>64)
status_msg=msg.substring(0,61)+"...";this._status.innerHTML=status_msg;this._currentMessage=msg;this.log(msg);}
ProgressBar.prototype.updateFooter=function(msg)
{this._footer.innerHTML=msg;}
ProgressBar.prototype.resetSlider=function(which,limit)
{if((which==1)&&(this._slider1!=null)){this._slider1Limit=limit;this._slider1.style.width="0px";}
else if((which==2)&&(this._slider2!=null)){this._slider2Limit=limit;this._slider2.style.width="0px";}}
ProgressBar.prototype.setSliderText=function(which,msg)
{if((which==1)&&(this._slider1Header!=null)){this._slider1Header.innerHTML=msg;}
else if((which==2)&&(this._slider2Header!=null)){this._slider2Header.innerHTML=msg;}}
ProgressBar.prototype.setSliderPos=function(which,pos)
{var wd;if((which==1)&&(this._slider1!=null)){wd=Math.floor((pos*this._slider1Width)/this._slider1Limit);this._slider1.style.width=wd+"px";}
else if((which==2)&&(this._slider2!=null)){wd=Math.floor((pos*this._slider2Width)/this._slider2Limit);this._slider2.style.width=wd+"px";}}
ProgressBar.prototype.getSliderWidth=function(which)
{if(which==1)
return this._slider1Width;else if(which==2)
return this._slider2Width;else
return 0;}
ProgressBar.prototype.getSliderLimit=function(which)
{if(which==1)
return this._slider1Limit;else if(which==2)
return this._slider2Limit;else
return 0;}
ProgressBar.prototype.setButtonText=function(str)
{this._dlgbtn.innerHTML=str;}
ProgressBar.prototype.enableButton=function(enable)
{this._dlgbtn.disabled=!enable;}
ProgressBar.prototype.focusButton=function()
{this._dlgbtn.focus();}
ProgressBar.prototype.close=function()
{this._parentElement.removeChild(this._container);this._isOpened=false;}
ProgressBar.prototype.isOpened=function()
{return this._isOpened;}
SimpleList.CLASS_NAVIGATION="listNavItem";SimpleList.CLASS_TITLE="listTitle";SimpleList.counter=0;SimpleList.defaultColors=null;SimpleList.prototype._id;SimpleList.prototype._list;SimpleList.prototype._selectedIndex;SimpleList.prototype._colors;SimpleList.prototype._coxtentMenuOptions;SimpleList.prototype._table;SimpleList.prototype._iconColumn
SimpleList.prototype._dimensions;SimpleList.prototype._cbfunc;SimpleList.prototype._sortfunc;SimpleList.prototype._currentSortType;SimpleList.prototype._popupMenu;SimpleList.prototype._listContainerWidget;function SimpleList(width,colors,iconColumn,sortfunc,sortType)
{this._id="simpleList"+SimpleList.counter++;this._list=new RecordSet();this._selectedIndex=0;this._table=null;this._cbfunc=null;this._sortfunc=sortfunc;this._currentSortType=sortType;this._popupMenu=null;this._contextMenuOptions=null;this._iconColumn=iconColumn;this._colors=(colors!=null)?colors:SimpleList.defaultColors;this._dimensions=new Object();this._dimensions._height=21;this._dimensions._width=width;this._dimensions._indent=30;this._listContainerWidget=null;}
SimpleList.createInstance=function(width,colors,iconColumn,sortfunc,sortType)
{if(SimpleList.objects==null){SimpleList.objects=new Object();var obj=new Object();obj.backgroundColor='white';obj.textColor='black';obj.selectedBackgroundColor='lightblue';obj.selectedTextColor='blue';SimpleList.defaultColors=obj;}
var sl=new SimpleList(width,colors,iconColumn,sortfunc,sortType);SimpleList.objects[sl._id]=sl;return sl;}
SimpleList.getInstance=function(elem)
{while(elem!=null){var id=elem.getAttribute("simplelistid");if(id!=null)
return SimpleList.objects[id];else
elem=elem.parentNode;}
return null;}
SimpleList.handleClick=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var tc=SimpleList.getInstance(target);var etype=(evt.type=='click')?'select':'launch';while(target!=null&&target.tagName!="TR")
target=target.parentNode;var cellIdx=target.rowIndex
tc.unselectItem(tc._selectedIndex);tc._selectedIndex=cellIdx;tc.selectItem(tc._selectedIndex);if(tc._cbfunc)
tc._cbfunc(etype,tc._list.item(tc._selectedIndex));}
SimpleList.handleMouseDown=function(e){var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var slist=SimpleList.getInstance(target);if(evt.button==2){return false;}
if(slist._popupMenu!=null&&slist._popupMenu.isVisible()){if(slist._popupMenu.isItemSelected()){return false;}
else{slist._popupMenu.popdown();return false;}}}
SimpleList.handleContextMenu=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var slist=SimpleList.getInstance(target);if(slist._popupMenu==null)
return false;var top=evt.clientY+document.body.scrollTop;var left=evt.clientX+document.body.scrollLeft;slist._popupMenu.popup(top-10,left-10);slist._popupMenu.highlightItem(0);evt.returnValue=false;return false;}
SimpleList.contextMenuCB=function(title,operation,x,y){if(this._cbfunc!=null){var recordset=this._list;var item=recordset.item(this._selectedIndex);this._cbfunc(operation,item,this._selectedIndex);}}
SimpleList.prototype.getSelectedItem=function()
{if(this._selectedIndex>=0)
return this._list.item(this._selectedIndex);else
return null;}
SimpleList.prototype.redraw=function()
{if(this._table!=null){while(this._table.rows.length>0)
this._table.deleteRow(0);}
var spn=null;for(var i=0;i<this._list.size();i++)
{var obj=this._list.item(i);var name=obj.getName();var colIndex=0;tr=this._table.insertRow(i);tr.height=this._dimensions._height;tr.style.backgroundColor=this._colors.backgroundColor;td=tr.insertCell(colIndex);if(this._iconColumn==true){td.innerHTML="&nbsp;";}
else{td.innerHTML="&nbsp;";}
td=tr.insertCell(++colIndex);spn=document.createElement("span");spn.className=SimpleList.CLASS_NAVIGATION;spn.innerHTML=util.escapeHtmlString(obj.getName());td.appendChild(spn);if(i==this._selectedIndex)
this.selectItem(i);else
this.unselectItem(i);}}
SimpleList.prototype.setCallback=function(cbfunc)
{this._cbfunc=cbfunc;}
SimpleList.prototype.setHeight=function(val)
{this._dimensions._height=val;}
SimpleList.prototype.setWidth=function(val)
{this._dimensions._width=val;}
SimpleList.prototype.setData=function(list,defaultIndex,defaultItem)
{this._list=new RecordSet(list,this._sortfunc);if(defaultIndex!=null&&defaultIndex>=0&&defaultIndex<this._list.size())
this._selectedIndex=defaultIndex;this._list.sort(this._currentSortType);if(defaultItem!=null)
this._selectedIndex=this._list.indexOf(defaultItem);this.redraw();}
SimpleList.prototype.setColors=function(colors)
{if(colors!=null){this._colors=colors;this._listContainerWidget.style.backgroundColor=this._colors.backgroundColor;this.redraw();}}
SimpleList.prototype.setContextMenu=function(options)
{this._contextMenuOptions=options;}
SimpleList.prototype.sort=function(sortType,item)
{var selectedItem=this._list.item(this._selectedIndex);if(sortType!=null)
this._currentSortType=sortType;this._list.sort(sortType);this._selectedIndex=this._list.indexOf((item!=null)?item:selectedItem);this.redraw();}
SimpleList.prototype.update=function()
{}
SimpleList.prototype.toHtml=function(container)
{this._listContainerWidget=document.createElement("div");this._listContainerWidget.style.height=dhtmlapi.getObjectHeight(container)+"px";this._listContainerWidget.style.width=dhtmlapi.getObjectWidth(container)+"px";this._listContainerWidget.onmousedown=SimpleList.handleMouseDown;this._listContainerWidget.setAttribute('simplelistid',this._id);this._listContainerWidget.style.backgroundColor=this._colors.backgroundColor;container.appendChild(this._listContainerWidget);this._table=document.createElement("table");this._table.id=this._id;this._listContainerWidget.appendChild(this._table);var tr=null;var td=null;var span=null;var col=null;if(this._popupMenu==null&&this._contextMenuOptions!=null){this._popupMenu=PopupMenu.createInstance(document.body,this._id+"PopupMenu",SimpleList.contextMenuCB,this,82);this._popupMenu.setFont('Century Gothic, Verdana, Arial, Helvetica, sans-serif',"10px");for(var i=0;i<this._contextMenuOptions.length;i++)
this._popupMenu.addMenuItem(this._contextMenuOptions[i].name,this._contextMenuOptions[i].operation);}
this._table.border=0;this._table.cellPadding=0;this._table.cellSpacing=0;this._table.width="100%"
var colgroup=document.createElement("colgroup");var col=document.createElement("col");var width=this._dimensions._width;if(this._iconColumn==true){col.width=this._dimensions._indent;colgroup.appendChild(col);width-=this._dimensions._indent;}
else{col.width=5;colgroup.appendChild(col);width-=5;}
col=document.createElement("col");col.width=width;colgroup.appendChild(col);this._table.appendChild(colgroup);this.redraw();}
SimpleList.prototype.selectItem=function(idx)
{var tr=this._table.rows[idx];var td=tr.cells[1];var spn=td.firstChild;tr.style.backgroundColor=this._colors.selectedBackgroundColor;tr.onclick=null;tr.oncontextmenu=SimpleList.handleContextMenu;spn.style.color=this._colors.selectedTextColor;}
SimpleList.prototype.unselectItem=function(idx)
{var tr=this._table.rows[idx];var td=tr.cells[1];var spn=td.firstChild;tr.style.backgroundColor=this._colors.backgroundColor;tr.style.color=this._colors.textColor;tr.onclick=SimpleList.handleClick;tr.ondblclick=SimpleList.handleClick;tr.oncontextmenu=null;spn.style.color=this._colors.textColor;}
function Titlebar(name,container,height,width)
{this._parent.initialize.call(this,name,container,height,width);}
Titlebar.inheritsFrom(Toolbar);Titlebar.createInstance=function(name,container,height,width)
{var tb=new Titlebar(name,container,height,width);return tb;}
Titlebar.prototype.resize=function(newWidth)
{var rx=-1;var curWidth=dhtmlapi.getObjectWidth(this._container);var minWidth=this.getMinimumWidth();if(curWidth==newWidth)
return;if(newWidth<=minWidth&&curWidth>minWidth){rx=this.getButtonAreaWidth(true);}
else if(newWidth>minWidth){rx=newWidth-this.getButtonAreaWidth(false);}
if(rx>=0)
this.moveRightButtonsTo(rx);if(newWidth<=minWidth)
newWidth=minWidth;this.getContainer().style.width=newWidth+"px";}
Titlebar.prototype.moveRightButtons=function(deltax)
{var curWidth=dhtmlapi.getObjectWidth(this._container);var minWidth=this.getMinimumWidth()+deltax;if(minWidth>=curWidth)
this._parent.moveRightButtons.call(this,deltax);}
Titlebar.prototype.getButtonLocation=function(left)
{var loc=this._parent.getButtonLocation.call(this,left);return loc;}
Titlebar.prototype.setHandlers=function(handlerMouseUp,handlerMouseDown,handlerMouseMove)
{if(handlerMouseUp!=null)
this._container.onmouseup=handlerMouseUp;if(handlerMouseDown!=null)
this._container.onmousedown=handlerMouseDown;if(handlerMouseMove!=null)
this._container.onmousemove=handlerMouseMove;}
Titlebar.prototype.getButtonAreaWidth=function(left)
{var total=0;for(var i=0;i<this._buttons.length;i++)
{if(this._locations[i]==left)
total+=dhtmlapi.getObjectWidth(this._buttons[i].getContainer())+this._spacing;}
return total;}
Toolbar.prototype.moveRightButtonsTo=function(newx)
{for(var i=0;i<this._buttons.length;i++)
{if(this._locations[i]==false){var container=this._buttons[i].getContainer();var oldwidth=dhtmlapi.getObjectWidth(container);container.style.left=newx+"px";newx+=oldwidth+this._spacing;}}}
if(typeof YAHOO=="undefined"){var YAHOO={};}
YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;i=i+1){d=a[i].split(".");o=YAHOO;for(j=(d[0]=="YAHOO")?1:0;j<d.length;j=j+1){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}
return o;};YAHOO.log=function(msg,cat,src){var l=YAHOO.widget.Logger;if(l&&l.log){return l.log(msg,cat,src);}else{return false;}};YAHOO.init=function(){this.namespace("util","widget","example");if(typeof YAHOO_config!="undefined"){var l=YAHOO_config.listener,ls=YAHOO.env.listeners,unique=true,i;if(l){for(i=0;i<ls.length;i=i+1){if(ls[i]==l){unique=false;break;}}
if(unique){ls.push(l);}}}};YAHOO.register=function(name,mainClass,data){var mods=YAHOO.env.modules;if(!mods[name]){mods[name]={versions:[],builds:[]};}
var m=mods[name],v=data.version,b=data.build,ls=YAHOO.env.listeners;m.name=name;m.version=v;m.build=b;m.versions.push(v);m.builds.push(b);m.mainClass=mainClass;for(var i=0;i<ls.length;i=i+1){ls[i](m);}
if(mainClass){mainClass.VERSION=v;mainClass.BUILD=b;}else{YAHOO.log("mainClass is undefined for module "+name,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[],getVersion:function(name){return YAHOO.env.modules[name]||null;}};YAHOO.lang={isArray:function(obj){if(obj&&obj.constructor&&obj.constructor.toString().indexOf('Array')>-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=='number'&&isFinite(obj);},isObject:function(obj){return obj&&(typeof obj=='object'||YAHOO.lang.isFunction(obj));},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);}
return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){if(!superc||!subc){throw new Error("YAHOO.lang.extend failed, please check that "+"all dependencies are included.");}
var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;}
if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){if(!s||!r){throw new Error("YAHOO.lang.augment failed, please check that "+"all dependencies are included.");}
var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i<a.length;i=i+1){rp[a[i]]=sp[a[i]];}}else{for(p in sp){if(!rp[p]){rp[p]=sp[p];}}}}};YAHOO.init();YAHOO.util.Lang=YAHOO.lang;YAHOO.augment=YAHOO.lang.augment;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.2.2",build:"204"});YAHOO.util.Connect={_msxml_progid:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:'application/x-www-form-urlencoded; charset=UTF-8',_use_default_xhr_header:true,_default_xhr_header:'XMLHttpRequest',_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function()
{if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,'click',function(e){var obj=YAHOO.util.Event.getTarget(e);if(obj.type=='submit'){YAHOO.util.Connect._submitElementValue=encodeURIComponent(obj.name)+"="+encodeURIComponent(obj.value);}})
return true;}
return false;})(),setProgId:function(id)
{this._msxml_progid.unshift(id);},setDefaultPostHeader:function(b)
{this._use_default_post_header=b;},setDefaultXhrHeader:function(b)
{this._use_default_xhr_header=b;},setPollingInterval:function(i)
{if(typeof i=='number'&&isFinite(i)){this._polling_interval=i;}},createXhrObject:function(transactionId)
{var obj,http;try
{http=new XMLHttpRequest();obj={conn:http,tId:transactionId};}
catch(e)
{for(var i=0;i<this._msxml_progid.length;++i){try
{http=new ActiveXObject(this._msxml_progid[i]);obj={conn:http,tId:transactionId};break;}
catch(e){}}}
finally
{return obj;}},getConnectionObject:function()
{var o;var tId=this._transaction_id;try
{o=this.createXhrObject(tId);if(o){this._transaction_id++;}}
catch(e){}
finally
{return o;}},asyncRequest:function(method,uri,callback,postData)
{var o=this.getConnectionObject();if(!o){return null;}
else{if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(o.tId,callback,uri,postData);this.releaseObject(o);return;}
if(method.toUpperCase()=='GET'){if(this._sFormData.length!=0){uri+=((uri.indexOf('?')==-1)?'?':'&')+this._sFormData;}
else{uri+="?"+this._sFormData;}}
else if(method.toUpperCase()=='POST'){postData=postData?this._sFormData+"&"+postData:this._sFormData;}}
o.conn.open(method,uri,true);if(this._use_default_xhr_header){if(!this._default_headers['X-Requested-With']){this.initHeader('X-Requested-With',this._default_xhr_header,true);}}
if(this._isFormSubmit||(postData&&this._use_default_post_header)){this.initHeader('Content-Type',this._default_post_header);if(this._isFormSubmit){this.resetFormState();}}
if(this._has_default_headers||this._has_http_headers){this.setHeader(o);}
this.handleReadyState(o,callback);o.conn.send(postData||null);return o;}},syncRequest:function(method,uri,postData)
{var o=this.getConnectionObject();if(!o){return null;}
else{o.conn.open(method,uri,false);if(postData&&this._use_default_post_header){this.initHeader('Content-Type',this._default_post_header);}
if(this._has_http_headers){this.setHeader(o);}
o.conn.send(postData?postData:null);var isSync=true;var callback=new Object();callback.argument=null;return this.handleTransactionResponse(o,callback,null,isSync);}},handleReadyState:function(o,callback)
{var oConn=this;if(callback&&callback.timeout){this._timeOut[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}
this._poll[o.tId]=window.setInterval(function(){if(o.conn&&o.conn.readyState===4){window.clearInterval(oConn._poll[o.tId]);delete oConn._poll[o.tId];if(callback&&callback.timeout){delete oConn._timeOut[o.tId];}
oConn.handleTransactionResponse(o,callback);}},this._polling_interval);},handleTransactionResponse:function(o,callback,isAbort,isSync)
{if(!callback){this.releaseObject(o);return;}
var httpStatus,responseObject;try
{if(o.conn.status!==undefined&&o.conn.status!==0){httpStatus=o.conn.status;}
else{httpStatus=13030;}}
catch(e){httpStatus=13030;}
if(httpStatus>=200&&httpStatus<300||httpStatus===1223){responseObject=this.createResponseObject(o,callback.argument);if(isSync){this.releaseObject(o);return responseObject;}
if(callback.success){if(!callback.scope){callback.success(responseObject);}
else{callback.success.apply(callback.scope,[responseObject]);}}}
else{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
else{callback.failure.apply(callback.scope,[responseObject]);}}
break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
else{callback.failure.apply(callback.scope,[responseObject]);}}}}
this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg)
{var obj={};var headerObj={};try
{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i<header.length;i++){var delimitPos=header[i].indexOf(':');if(delimitPos!=-1){headerObj[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);}}}
catch(e){}
obj.tId=o.tId;obj.status=(o.conn.status==1223)?204:o.conn.status;obj.statusText=(o.conn.status==1223)?"No Content":o.conn.statusText;obj.getResponseHeader=headerObj;obj.getAllResponseHeaders=headerStr;obj.responseText=o.conn.responseText;obj.responseXML=o.conn.responseXML;if(typeof callbackArg!==undefined){obj.argument=callbackArg;}
return obj;},createExceptionObject:function(tId,callbackArg,isAbort)
{var COMM_CODE=0;var COMM_ERROR='communication failure';var ABORT_CODE=-1;var ABORT_ERROR='transaction aborted';var obj={};obj.tId=tId;if(isAbort){obj.status=ABORT_CODE;obj.statusText=ABORT_ERROR;}
else{obj.status=COMM_CODE;obj.statusText=COMM_ERROR;}
if(callbackArg){obj.argument=callbackArg;}
return obj;},initHeader:function(label,value,isDefault)
{var headerObj=(isDefault)?this._default_headers:this._http_headers;if(headerObj[label]===undefined){headerObj[label]=value;}
else{headerObj[label]=value+","+headerObj[label];}
if(isDefault){this._has_default_headers=true;}
else{this._has_http_headers=true;}},setHeader:function(o)
{if(this._has_default_headers){for(var prop in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,prop)){o.conn.setRequestHeader(prop,this._default_headers[prop]);}}}
if(this._has_http_headers){for(var prop in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,prop)){o.conn.setRequestHeader(prop,this._http_headers[prop]);}}
delete this._http_headers;this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){delete this._default_headers
this._default_headers={};this._has_default_headers=false;},setForm:function(formId,isUpload,secureUri)
{this.resetFormState();var oForm;if(typeof formId=='string'){oForm=(document.getElementById(formId)||document.forms[formId]);}
else if(typeof formId=='object'){oForm=formId;}
else{return;}
if(isUpload){this.createFrame(secureUri?secureUri:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=oForm;return;}
var oElement,oName,oValue,oDisabled;var hasSubmit=false;for(var i=0;i<oForm.elements.length;i++){oElement=oForm.elements[i];oDisabled=oForm.elements[i].disabled;oName=oForm.elements[i].name;oValue=oForm.elements[i].value;if(!oDisabled&&oName)
{switch(oElement.type)
{case'select-one':case'select-multiple':for(var j=0;j<oElement.options.length;j++){if(oElement.options[j].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text)+'&';}
else{this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text)+'&';}}}
break;case'radio':case'checkbox':if(oElement.checked){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}
break;case'file':case undefined:case'reset':case'button':break;case'submit':if(hasSubmit===false){if(this._hasSubmitListener){this._sFormData+=this._submitElementValue+'&';}
else{this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}
hasSubmit=true;}
break;default:this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';break;}}}
this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(secureUri){var frameId='yuiIO'+this._transaction_id;if(window.ActiveXObject){var io=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');if(typeof secureUri=='boolean'){io.src='javascript:false';}
else if(typeof secureURI=='string'){io.src=secureUri;}}
else{var io=document.createElement('iframe');io.id=frameId;io.name=frameId;}
io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData)
{var formElements=[];var postMessage=postData.split('&');for(var i=0;i<postMessage.length;i++){var delimitPos=postMessage[i].indexOf('=');if(delimitPos!=-1){formElements[i]=document.createElement('input');formElements[i].type='hidden';formElements[i].name=postMessage[i].substring(0,delimitPos);formElements[i].value=postMessage[i].substring(delimitPos+1);this._formNode.appendChild(formElements[i]);}}
return formElements;},uploadFile:function(id,callback,uri,postData){var frameId='yuiIO'+id;var uploadEncoding='multipart/form-data';var io=document.getElementById(frameId);this._formNode.setAttribute('action',uri);this._formNode.setAttribute('method','POST');this._formNode.setAttribute("target",frameId);if(this._formNode.encoding){this._formNode.encoding=uploadEncoding;}
else{this._formNode.enctype=uploadEncoding;}
if(postData){var oElements=this.appendPostData(postData);}
this._formNode.submit();if(oElements&&oElements.length>0){for(var i=0;i<oElements.length;i++){this._formNode.removeChild(oElements[i]);}}
this.resetFormState();var uploadCallback=function()
{var obj={};obj.tId=id;obj.argument=callback.argument;try
{obj.responseText=io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;obj.responseXML=io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;}
catch(e){}
if(callback&&callback.upload){if(!callback.scope){callback.upload(obj);}
else{callback.upload.apply(callback.scope,[obj]);}}
if(YAHOO.util.Event){YAHOO.util.Event.removeListener(io,"load",uploadCallback);}
else if(window.detachEvent){io.detachEvent('onload',uploadCallback);}
else{io.removeEventListener('load',uploadCallback,false);}
setTimeout(function(){document.body.removeChild(io);},100);};if(YAHOO.util.Event){YAHOO.util.Event.addListener(io,"load",uploadCallback);}
else if(window.attachEvent){io.attachEvent('onload',uploadCallback);}
else{io.addEventListener('load',uploadCallback,false);}},abort:function(o,callback,isTimeout)
{if(this.isCallInProgress(o)){o.conn.abort();window.clearInterval(this._poll[o.tId]);delete this._poll[o.tId];if(isTimeout){delete this._timeOut[o.tId];}
this.handleTransactionResponse(o,callback,true);return true;}
else{return false;}},isCallInProgress:function(o)
{if(o.conn){return o.conn.readyState!==4&&o.conn.readyState!==0;}
else{return false;}},releaseObject:function(o)
{o.conn=null;o=null;}};YAHOO.register("connection",YAHOO.util.Connect,{version:"2.2.2",build:"204"});Application.SOAP_MODULE_USER="userGroup";Application.SOAP_MODULE_CONTENT="content";Application.SOAP_MODULE_RESOURCE="resource";Application.prototype._name;Application.prototype._servletPath;Application.prototype._currentlyEditingPage;Application.prototype._connection;Application.prototype._currentSoapRequest;Application.prototype._currentSoapRequestType;Application.prototype._currentSoapRequestRetry;Application.prototype._soapRequests;Application._application=null;function Application(name)
{this._name=name;this._currentlyEditingPage=null;this._soapRequests=new Object();var idx=location.pathname.lastIndexOf("/");this._servletPath=location.pathname.slice(0,idx);Application._application=this;}
Application.getApplication=function()
{var win=window.opener;while(win!=undefined)
{var app=win.Application._application;if(app!=null)
return app;}
return null;}
Application.prototype.processSoapRequest=function(soapMsg,userCbFunc,appCbFunc,userData)
{this.processSoapRequestHostPath(location.host,this._servletPath,soapMsg,userCbFunc,appCbFunc,userData);}
Application.prototype.processSoapRequestHost=function(host,soapMsg,userCbFunc,appCbFunc,userData)
{this.processSoapRequestHostPath(host,this._servletPath,soapMsg,userCbFunc,appCbFunc,userData);}
Application.prototype.processSoapRequestHostPath=function(host,servletPath,soapMsg,userCbFunc,appCbFunc,userData)
{var uuid=Application.getUuid();var url=this.constructURL("/servlet/soapRequest",host,servletPath,uuid);soapMsg.setAuthentication(uuid);var callback={success:Application.handleSuccess,failure:Application.handleFailure,scope:Application,argument:null};var x=new Object();x.obj=this;x.uuid=uuid;callback.argument=x;var str=soapMsg.toXmlString();var sr=new SoapRequest(soapMsg,host,servletPath,uuid,appCbFunc,userCbFunc,userData);this._soapRequests[uuid]=sr;this._connection=YAHOO.util.Connect.asyncRequest('POST',url,callback,str);}
Application.prototype.retrySoapRequest=function(soapRequest)
{var count=soapRequest.count;if(soapRequest.count>2){alert("already retried - generate a fault here");return;}
soapRequest.count++;var uuid=Application.getUuid();var url=this.constructURL("/servlet/soapRequest",soapRequest.host,soapRequest.servletPath,uuid);soapRequest.soapMsg.setAuthentication(uuid);var callback={success:Application.handleSuccess,failure:Application.handleFailure,scope:Application,argument:null};var x=new Object();x.obj=this;x.uuid=uuid;callback.argument=x;var str=soapRequest.soapMsg.toXmlString();this._soapRequests[uuid]=soapRequest;this._connection=YAHOO.util.Connect.asyncRequest('POST',url,callback,str);}
Application.noop=function()
{}
Application.handleSuccess=function(o)
{var obj=o.argument.obj;var uuid=o.argument.uuid;var soapMsg=null;var auth=null;var sr=obj._soapRequests[uuid];obj._soapRequests[uuid]=null;delete obj._soapRequests[uuid];try{soapMsg=Soap.createSoapResponse(o.responseText);auth=soapMsg.getAuthentication();}catch(e){if(obj._connection!=null&&obj._connection.conn!=null){obj._connection.conn.abort();obj._connection.conn=null;obj._connection=null;}
obj.retrySoapRequest(sr);return;}
obj._connection=null;sr.appCbFunc.call(obj,soapMsg,sr.userCbFunc,sr.userData);}
Application.handleFailure=function(o)
{var obj=o.argument.obj;var status=o.status;var statusText=o.statusText;try{var uuid=o.argument.uuid;var sr=obj._soapRequests[uuid];var operation=sr.soapMsg.operation;if(operation=='logoutUser')
return;if(obj._connection!=null&&obj._connection.conn!=null){obj._connection.conn.abort();obj._connection.conn=null;obj._connection=null;}
obj.retrySoapRequest(sr);return;}catch(e){alert("There was a problem connecting to PikiWiki. Retry the operation, or exit PikiWiki and log back in.\n"+"status = "+status+" ["+statusText+"]");}}
Application.getUuid=function()
{var random=Math.floor(Math.random()*1000000000);return random;}
Application.prototype.constructURL=function(request,host,path,uuid)
{var str=location.protocol+"//"+host+path+request+"?__uuid__="+uuid;return str;}
Application.prototype.getUserData=function(userOid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"getUserData");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);return this.processSoapRequest(soap,cbfunc,this.getUserDataResponse);}
Application.prototype.getUserDataResponse=function(soapMsg,cbfunc)
{try{var userData=new Object();if(soapMsg.isFault()){userData.user=null;userData.fault="SoapFault from calling getUserData";}
else{userData.user=soapMsg.getParameter("user").getValue();userData.groups=soapMsg.getParameter("groups").getValue();}}catch(e){userData.user=null;userData.fault="An error occurred while trying to retrieve user profile data";}
cbfunc(userData);}
Application.prototype.updateUser=function(userOid,fname,lname,preferencesXml,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"updateUserProfile");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("firstName",Soap.PARAMETER_STRING,xmlutils.encodeUTF(fname,true));soap.setParameter("lastName",Soap.PARAMETER_STRING,xmlutils.encodeUTF(lname,true));soap.setParameter("userPreferences","xml",preferencesXml);return this.processSoapRequest(soap,cbfunc,this.updateUserPreferencesResponse);}
Application.prototype.updateUserPreferences=function(userOid,preferencesXml,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"updateUserProfile");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("userPreferences","xml",preferencesXml);soap.setParameter("preferencesOnly",Soap.PARAMETER_BOOLEAN,true);return this.processSoapRequest(soap,cbfunc,this.updateUserPreferencesResponse);}
Application.prototype.updateUserPreferencesResponse=function(soapMsg,cbfunc)
{var status=true;try{if(soapMsg.isFault()){status=false;}}catch(e){status=false;}
cbfunc(status);}
Application.prototype.login=function(email,password,cbfunc)
{var md5_pwd=hex_md5(password);var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"login");soap.setParameter("username",Soap.PARAMETER_STRING,email);soap.setParameter("pwd",Soap.PARAMETER_BINARY,md5_pwd);return this.processSoapRequest(soap,cbfunc,this.loginResponse);}
Application.prototype.loginResponse=function(soapMsg,cbfunc)
{var loginData=new Object();try{if(soapMsg.isFault()==false){loginData.authcode=soapMsg.getParameter("authcode").getValue();loginData.serverTimestamp=soapMsg.getParameter("serverTimestamp").getValue();loginData.userOid=soapMsg.getParameter("userOid").getValue();}
else{loginData.authcode=null;loginData.serverTimestamp=null;loginData.userOid=null;}}catch(e){loginData.authcode=null;loginData.serverTimestamp=null;}
cbfunc(loginData);}
Application.prototype.logoutUser=function(cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"logoutUser");return this.processSoapRequest(soap,cbfunc,this.logoutUserResponse);}
Application.prototype.logoutUserResponse=function(soapMsg,cbfunc)
{cbfunc("ok");}
Application.prototype.convertUser=function(action,oid,email,password,first,last,updates,cbfunc)
{var md5_pwd=hex_md5(password);var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"convertUser");soap.setParameter("action",Soap.PARAMETER_STRING,action);soap.setParameter("oid",Soap.PARAMETER_INTEGER,oid);soap.setParameter("email",Soap.PARAMETER_STRING,email);soap.setParameter("pwd",Soap.PARAMETER_STRING,md5_pwd);soap.setParameter("first",Soap.PARAMETER_STRING,first);soap.setParameter("last",Soap.PARAMETER_STRING,last);soap.setParameter("updates",Soap.PARAMETER_STRING,updates);return this.processSoapRequest(soap,cbfunc,this.convertUserResponse);}
Application.prototype.convertUserResponse=function(soapMsg,cbfunc)
{var obj=new Object();try{if(soapMsg.isFault()){obj.user=null;obj.fault=soapMsg.getFault();}
else{obj.user=soapMsg.getParameter("user").getValue();obj.fault=null;}}catch(e){obj.user=null;obj.fault=null;}
cbfunc(obj);}
Application.prototype.createURL=function(groupOid,pageOid,editable,cbfunc)
{if(pageOid==null)
pageOid=-1;var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"createURL");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("public",Soap.PARAMETER_BOOLEAN,true);return this.processSoapRequest(soap,cbfunc,this.createUrlResponse);}
Application.prototype.createUrlResponse=function(soapMsg,cbfunc)
{var obj=new Object();try{if(!soapMsg.isFault()){obj.url=soapMsg.getParameter("url").getValue();obj.url_ro=soapMsg.getParameter("url_ro").getValue();}}catch(e){obj=null;}
cbfunc(obj);}
Application.prototype.getPageContents=function(userOid,groupOid,pageOid,lockId,pageVersion,writeTimeout,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"getPageHtml");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("lockId",Soap.PARAMETER_INTEGER,lockId);soap.setParameter("pageVersion",Soap.PARAMETER_INTEGER,pageVersion);soap.setParameter("writeLock",Soap.PARAMETER_INTEGER,writeTimeout);return this.processSoapRequest(soap,cbfunc,this.getPageContentsResponse);}
Application.prototype.generatePageThumbnail=function(userOid,groupOid,pageOid)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"generatePageThumb");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);return this.processSoapRequest(soap,Application.noop,this.generatePageThumbnailResponse);}
Application.prototype.generatePageThumbnailResponse=function(soapMsg,cbfunc)
{var pageData=null;try{if(!soapMsg.isFault()){var status=soapMsg.getParameter("status").getValue();}
else{var fault=soapMsg.getFault();}}catch(e){pageData=null;}}
Application.prototype.getPageContentsFromUrl=function(url,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"getPageFromUrl");soap.setParameter("url",Soap.PARAMETER_STRING,url);return this.processSoapRequest(soap,cbfunc,this.getPageContentsResponse);}
Application.prototype.getPageContentsResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData=new Object();pageData.contents=soapMsg.getParameter("contents").getValue();pageData.status=soapMsg.getParameter("status").getValue();pageData.lock=soapMsg.getParameter("lock").getValue();pageData.lockOwner=soapMsg.getParameter("lockowner").getValue();pageData.version=soapMsg.getParameter("version").getValue();pageData.history=soapMsg.getParameter("history").getValue();pageData.users=soapMsg.getParameter("users").getValue();pageData.lastViewed=soapMsg.getParameter("lastviewed").getValue();pageData.readonly=false;sp=soapMsg.getParameter("readonly");if(sp!=null&&sp.getValue()=="true")
pageData.readonly=true;pageData.storageHost=soapMsg.getParameter("storageHost").getValue();pageData.storageContext=soapMsg.getParameter("storageContext").getValue();pageData.storagePath=soapMsg.getParameter("storagePath").getValue();var sp=soapMsg.getParameter("pageOid");if(sp!=null)
pageData.pageOid=sp.getValue();sp=soapMsg.getParameter("groupOid");if(sp!=null)
pageData.groupOid=sp.getValue();sp=soapMsg.getParameter("urltype");if(sp!=null&&sp.getValue()=="rw")
pageData.urltype='rw';else
pageData.urltype='ro';}
else{pageData.fault=soapMsg.getFault();}}catch(e){pageData=null;}
if(cbfunc!=null)
cbfunc(pageData);else
return pageData;}
Application.prototype.getPageXml=function(host,context,pageOid,storagePathOid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_RESOURCE,"getPageXml");soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("storagePathOid",Soap.PARAMETER_INTEGER,storagePathOid);return this.processSoapRequestHostPath(host,context,soap,cbfunc,this.getPageXmlResponse);}
Application.prototype.getPageXmlResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData.contents=soapMsg.getParameter("contents").getValue();}
else{pageData.fault=soapMsg.getFault();}}catch(e){pageData=null;}
if(cbfunc!=null)
cbfunc(pageData);else
return pageData;}
Application.prototype.createPageMetadata=function(userOid,groupOid,topicOid,title,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"createPage");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("topicOid",Soap.PARAMETER_INTEGER,topicOid);soap.setParameter("title",Soap.PARAMETER_STRING,xmlutils.encodeUTF(title,true));return this.processSoapRequest(soap,cbfunc,this.createPageStartResponse);}
Application.prototype.createPageStartResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData.info=soapMsg.getParameter("info").getValue();pageData.status=soapMsg.getParameter("status").getValue();pageData.lock=soapMsg.getParameter("lock").getValue();pageData.lockOwner=soapMsg.getParameter("lockowner").getValue();pageData.version=soapMsg.getParameter("version").getValue();pageData.storageHost=soapMsg.getParameter("storageHost").getValue();pageData.storageContext=soapMsg.getParameter("storageContext").getValue();pageData.storagePath=soapMsg.getParameter("storagePath").getValue();}
else
pageData.fault=soapMsg.getFault();}catch(e){pageData=null;}
cbfunc(pageData);}
Application.prototype.registerUser=function(first,last,email,pwd,pageOid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"createUserX");soap.setParameter("pwd",Soap.PARAMETER_STRING,pwd);soap.setParameter("email",Soap.PARAMETER_STRING,email);soap.setParameter("updates",Soap.PARAMETER_STRING,"weekly");soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("createGroup",Soap.PARAMETER_BOOLEAN,"false");if(first!=null)
soap.setParameter("first",Soap.PARAMETER_STRING,first);if(last!=null)
soap.setParameter("last",Soap.PARAMETER_STRING,last);return this.processSoapRequest(soap,cbfunc,this.registerUserResponse);}
Application.prototype.registerUserResponse=function(soapMsg,cbfunc)
{var data=new Object();try{if(!soapMsg.isFault()){data.groupName=soapMsg.getParameter("groupName").getValue();data.userOid=parseInt(soapMsg.getParameter("userOid").getValue());}
else{data.groupName=null;data.userOid=parseInt("-1");data.fault=soapMsg.getFault();}}catch(e){data.fault=new Object();data.fault.detail="An exception occurred during registerUser: "+e.getMessage();}
cbfunc(data);}
Application.prototype.setPageReadOnly=function(groupOid,topicOid,pageOid,readonly,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"updateReadOnlyStatus");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("topicOid",Soap.PARAMETER_INTEGER,topicOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("readonly",Soap.PARAMETER_BOOLEAN,readonly);return this.processSoapRequest(soap,cbfunc,this.setPageReadOnlyResponse);}
Application.prototype.setPageReadOnlyResponse=function(soapMsg,cbfunc)
{var pageData=null;try{if(!soapMsg.isFault()){pageData=new Object();pageData.groupOid=soapMsg.getParameter("groupOid").getValue();pageData.topicOid=soapMsg.getParameter("topicOid").getValue();pageData.pageOid=soapMsg.getParameter("pageOid").getValue();pageData.readonly=soapMsg.getParameter("readonly").getValue();pageData.status=soapMsg.getParameter("status").getValue();}}catch(e){pageData=null;}
cbfunc(pageData);}
Application.prototype.savePageStart=function(userOid,groupOid,pageOid,lockId,pageVersion,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"savePageStart");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("lockId",Soap.PARAMETER_INTEGER,lockId);soap.setParameter("pageVersion",Soap.PARAMETER_INTEGER,pageVersion);return this.processSoapRequest(soap,cbfunc,this.savePageStartResponse);}
Application.prototype.savePageStartResponse=function(soapMsg,cbfunc)
{var pageData=null;try{if(!soapMsg.isFault()){pageData=new Object();pageData.info=soapMsg.getParameter("info").getValue();pageData.status=soapMsg.getParameter("status").getValue();pageData.lock=soapMsg.getParameter("lock").getValue();pageData.lockOwner=soapMsg.getParameter("lockowner").getValue();pageData.version=soapMsg.getParameter("version").getValue();pageData.serveralias=soapMsg.getParameter("serveralias").getValue();}}catch(e){pageData=null;}
cbfunc(pageData);}
Application.prototype.updatePageMetadata=function(host,userOid,groupOid,pageOid,lockId,html,title,changeList,thumbGenList,nextId,thumbnail,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"updatePage");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("lockId",Soap.PARAMETER_INTEGER,lockId);soap.setParameter("title",Soap.PARAMETER_STRING,xmlutils.encodeUTF(title,true));soap.setParameter("nextobjectid",Soap.PARAMETER_INTEGER,nextId);soap.setParameter("changelist",Soap.PARAMETER_XML,changeList);soap.setParameter("thumbgenlist",Soap.PARAMETER_XML,xmlutils.encodeUTF(thumbGenList,true));soap.setParameter("thumbnail",Soap.PARAMETER_STRING,xmlutils.encodeUTF(thumbnail,true));soap.setParameter("html",Soap.PARAMETER_STRING,"<![CDATA["+html+"]]>");return this.processSoapRequestHost(host==null?location.host:host,soap,cbfunc,this.updatePageMetadataResponse);}
Application.prototype.updatePageMetadataResponse=function(soapMsg,cbfunc)
{var pageData=null;try{if(!soapMsg.isFault()){pageData=new Object();pageData.version=soapMsg.getParameter("version").getValue();}}catch(e){pageData=null;}
if(cbfunc!=null)
cbfunc(pageData);else
return pageData;}
Application.prototype.getViewDetails=function(userOid,groupOid,pageOid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"getViewDetails");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);return this.processSoapRequest(soap,cbfunc,this.getViewDetailsResponse);}
Application.prototype.getViewDetailsResponse=function(soapMsg,cbfunc)
{var pageData=null;try{if(!soapMsg.isFault()){pageData=new Object();pageData.status=soapMsg.getParameter("status").getValue();pageData.details=soapMsg.getParameter("viewdetails").getValue();}}catch(e){pageData=null;}
cbfunc(pageData);}
Application.prototype.releasePageLock=function(userOid,groupOid,pageOid,lockId,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"releaseLock");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("lockId",Soap.PARAMETER_INTEGER,lockId);return this.processSoapRequest(soap,cbfunc,this.releasePageLockResponse);}
Application.prototype.releasePageLockResponse=function(soapMsg,cbfunc)
{var ret=false;try{if(!soapMsg.isFault()){var status=soapMsg.getParameter("status").getValue();if(status=="ok")
ret=true;}}catch(e){ret=false;}
cbfunc(ret);}
Application.prototype.refreshPageLock=function(userOid,groupOid,pageOid,lockId,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"refreshLock");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("lockId",Soap.PARAMETER_INTEGER,lockId);return this.processSoapRequest(soap,cbfunc,this.refreshPageLockResponse);}
Application.prototype.refreshPageLockResponse=function(soapMsg,cbfunc)
{var ret=false;try{if(!soapMsg.isFault()){var status=soapMsg.getParameter("status").getValue();var lock=soapMsg.getParameter("lock").getValue();if(status=="ok")
ret=true;}}catch(e){ret=false;}
cbfunc(ret);}
Application.prototype.releasePageSaveLock=function(userOid,groupOid,pageOid,lockId,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"releaseSaveLock");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("lockId",Soap.PARAMETER_INTEGER,lockId);return this.processSoapRequest(soap,cbfunc,this.releasePageSaveLockResponse);}
Application.prototype.releasePageSaveLockResponse=function(soapMsg,cbfunc)
{var status=true;try{if(soapMsg.isFault()){status=false;}
else{var s=soapMsg.getParameter("status").getValue();var lock=soapMsg.getParameter("lock").getValue();if(status!="ok")
status=false;}}catch(e){status=false;}
cbfunc(status);}
Application.prototype.renamePage=function(userOid,groupOid,topicOid,pageOid,newPageName,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"renamePage");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("topicOid",Soap.PARAMETER_INTEGER,topicOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("title",Soap.PARAMETER_STRING,xmlutils.encodeUTF(newPageName,true));return this.processSoapRequest(soap,cbfunc,this.renamePageResponse);}
Application.prototype.renamePageResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData.oid=soapMsg.getParameter("pageOid").getValue();pageData.groupOid=soapMsg.getParameter("groupOid").getValue();pageData.topicOid=soapMsg.getParameter("topicOid").getValue();pageData.name=soapMsg.getParameter("pageName").getValue();}
else{pageData.oid=-1;}}catch(e){pageData.oid=-1;}
cbfunc(pageData);}
Application.prototype.movePage=function(userOid,groupOid,topicOid,newTopicOid,pageOid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"movePage");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("topicOid",Soap.PARAMETER_INTEGER,topicOid);soap.setParameter("newTopicOid",Soap.PARAMETER_INTEGER,newTopicOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);return this.processSoapRequest(soap,cbfunc,this.movePageResponse);}
Application.prototype.movePageResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData.oid=soapMsg.getParameter("pageOid").getValue();pageData.groupOid=soapMsg.getParameter("groupOid").getValue();pageData.topicOid=soapMsg.getParameter("topicOid").getValue();pageData.newTopicOid=soapMsg.getParameter("newTopicOid").getValue();}
else{pageData.oid=-1;}}catch(e){pageData.oid=-1;}
cbfunc(pageData);}
Application.prototype.deletePage=function(userOid,groupOid,topicOid,pageOid,title,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_CONTENT,"deletePage");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("topicOid",Soap.PARAMETER_INTEGER,topicOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("title",Soap.PARAMETER_STRING,xmlutils.encodeUTF(title,true));return this.processSoapRequest(soap,cbfunc,this.deletePageResponse);}
Application.prototype.deletePageResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData.oid=soapMsg.getParameter("pageOid").getValue();pageData.groupOid=soapMsg.getParameter("groupOid").getValue();pageData.topicOid=soapMsg.getParameter("topicOid").getValue();}
else{pageData.oid=-1;}}catch(e){pageData.oid=-1;}
cbfunc(pageData);}
Application.prototype.getUploadedWidgetInfo=function(host,context,pageOid,storagePathOid,pageVersion,objId,filename,cbfunc)
{var file=escape(filename);var soap=Soap.createSoapRequest(Application.SOAP_MODULE_RESOURCE,"getUploadedWidgetInfo");soap.setParameter("storagePathOid",Soap.PARAMETER_INTEGER,storagePathOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("pageVersion",Soap.PARAMETER_INTEGER,pageVersion);soap.setParameter("objId",Soap.PARAMETER_INTEGER,objId);soap.setParameter("filename",Soap.PARAMETER_STRING,xmlutils.encodeUTF(filename,true));return this.processSoapRequestHostPath(host,context,soap,cbfunc,this.getUploadedWidgetInfoResponse);}
Application.prototype.getUploadedWidgetInfoResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData.errcode=soapMsg.getParameter("errcode").getValue();pageData.url=soapMsg.getParameter("url").getValue();pageData.urlmaster=soapMsg.getParameter("urlmaster").getValue();pageData.urlarchive=soapMsg.getParameter("urlarchive").getValue();pageData.name=soapMsg.getParameter("name").getValue();pageData.width=soapMsg.getParameter("width").getValue();pageData.height=soapMsg.getParameter("height").getValue();pageData.image=soapMsg.getParameter("image").getValue();pageData.objid=soapMsg.getParameter("objid").getValue();}
else{pageData.errcode=2;}}catch(e){pageData.errcode=2;}
cbfunc(pageData);}
Application.prototype.rotateNoJava=function(host,context,srcurl,rotation,pageOid,storagePathOid,objId,pageVersion,logicalName,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_RESOURCE,"rotateNoJava");soap.setParameter("storagePathOid",Soap.PARAMETER_INTEGER,storagePathOid);soap.setParameter("pageOid",Soap.PARAMETER_INTEGER,pageOid);soap.setParameter("pageVersion",Soap.PARAMETER_INTEGER,pageVersion);soap.setParameter("objId",Soap.PARAMETER_INTEGER,objId);soap.setParameter("srcurl",Soap.PARAMETER_STRING,xmlutils.encodeUTF(srcurl,true));soap.setParameter("rotation",Soap.PARAMETER_STRING,rotation);soap.setParameter("logname",Soap.PARAMETER_STRING,xmlutils.encodeUTF(logicalName,true));return this.processSoapRequestHostPath(host,context,soap,cbfunc,this.rotateNoJavaResponse);}
Application.prototype.rotateNoJavaResponse=function(soapMsg,cbfunc)
{var pageData=new Object();try{if(!soapMsg.isFault()){pageData.errcode=soapMsg.getParameter("errcode").getValue();pageData.url=soapMsg.getParameter("url").getValue();pageData.urlmaster=soapMsg.getParameter("urlmaster").getValue();}
else{pageData.errcode=2;}}catch(e){pageData.errcode=2;}
cbfunc(pageData);}
Application.prototype.createGroup=function(userOid,title,defaultTopic,type,perms,pwd,cbfunc,userData)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"createGroup");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("title",Soap.PARAMETER_STRING,xmlutils.encodeUTF(title,true));soap.setParameter("defaultTopic",Soap.PARAMETER_STRING,defaultTopic);soap.setParameter("type",Soap.PARAMETER_STRING,type);soap.setParameter("pwd",Soap.PARAMETER_STRING,pwd);return this.processSoapRequest(soap,cbfunc,this.createGroupResponse,userData);}
Application.prototype.createGroupResponse=function(soapMsg,cbfunc,userData)
{var obj=new Object();obj.groupOid=-1;try{if(!soapMsg.isFault()){obj.groupOid=parseInt(soapMsg.getParameter("groupOid").getValue());obj.defaultTopicOid=parseInt(soapMsg.getParameter("defaultTopicOid").getValue());obj.creationDate=parseInt(soapMsg.getParameter("creationDate").getValue());obj.modificationDate=parseInt(soapMsg.getParameter("modificationDate").getValue());}}catch(e){obj.groupOid=-1;}
cbfunc(obj,userData);}
Application.prototype.renameGroup=function(userOid,groupOid,newGroupName,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"renameGroup");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("name",Soap.PARAMETER_STRING,xmlutils.encodeUTF(newGroupName,true));return this.processSoapRequest(soap,cbfunc,this.renameGroupResponse);}
Application.prototype.renameGroupResponse=function(soapMsg,cbfunc)
{var groupData=new Object();try{if(!soapMsg.isFault()){groupData.oid=soapMsg.getParameter("groupOid").getValue();groupData.name=soapMsg.getParameter("name").getValue();}
else{groupData.oid=-1;}}catch(e){groupData.oid=-1;}
cbfunc(groupData);}
Application.prototype.createGroupMember=function(userOid,groupOid,type,value,perms,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"createGroupMember");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("type",Soap.PARAMETER_INTEGER,type);soap.setParameter("value",Soap.PARAMETER_STRING,value);soap.setParameter("permissions",Soap.PARAMETER_INTEGER,perms);return this.processSoapRequest(soap,cbfunc,this.createGroupMemberResponse);}
Application.prototype.createGroupMemberResponse=function(soapMsg,cbfunc)
{var obj=new Object();obj.oid=-1;try{if(soapMsg.isFault()){obj.oid=-1;obj.fault=soapMsg.getFault();}
else{obj.oid=parseInt(soapMsg.getParameter("groupMemberOid").getValue());obj.member=soapMsg.getParameter("groupMember").getValue();}}catch(e){obj.oid=-1;obj.fault=null;}
cbfunc(obj);}
Application.prototype.deleteGroupMember=function(groupOid,oid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"deleteGroupMember");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("groupMemberOid",Soap.PARAMETER_INTEGER,oid);return this.processSoapRequest(soap,cbfunc,this.deleteGroupMemberResponse,cbfunc);}
Application.prototype.deleteGroupMemberResponse=function(soapMsg,cbfunc)
{var oid=-1;try{if(!soapMsg.isFault())
oid=parseInt(soapMsg.getParameter("groupMemberOid").getValue());}catch(e){oid=-1;}
cbfunc(oid);}
Application.prototype.updateGroupMember=function(groupOid,oid,typ,name,permissions,status,update,cbfunc,userData)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"updateGroupMember");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("groupMemberOid",Soap.PARAMETER_INTEGER,oid);soap.setParameter("type",Soap.PARAMETER_INTEGER,typ);soap.setParameter("permissions",Soap.PARAMETER_INTEGER,permissions);soap.setParameter("update",Soap.PARAMETER_INTEGER,update);return this.processSoapRequest(soap,cbfunc,this.updateGroupMemberResponse,cbfunc,userData);}
Application.prototype.updateGroupMemberResponse=function(soapMsg,cbfunc,userData)
{var obj=new Object();obj.oid=-1;try{if(!soapMsg.isFault()){obj.oid=parseInt(soapMsg.getParameter("groupMemberOid").getValue());obj.member=soapMsg.getParameter("groupMember").getValue();}}catch(e){obj.oid=-1;}
cbfunc(obj,userData);}
Application.prototype.retrieveGroupInvite=function(oid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"getGroupInvite");soap.setParameter("groupMemberOid",Soap.PARAMETER_INTEGER,oid);return this.processSoapRequest(soap,cbfunc,this.retrieveGroupInviteResponse);}
Application.prototype.retrieveGroupInviteResponse=function(soapMsg,cbfunc)
{var obj=new Object();obj.groupMember=null;obj.userIdentities=null;try{if(!soapMsg.isFault()){obj.groupMember=soapMsg.getParameter("groupMember").getValue();obj.userIdentities=soapMsg.getParameter("userIdentities").getValue();}}catch(e){obj.groupMember=null;obj.userIdentities=null;}
cbfunc(obj);}
Application.prototype.retrieveGroupInfo=function(oid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"getGroupInformation");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,oid);return this.processSoapRequest(soap,cbfunc,this.retrieveGroupInfoResponse);}
Application.prototype.retrieveGroupInfoResponse=function(soapMsg,cbfunc)
{var groupInfo=null;try{if(!soapMsg.isFault()){groupInfo=soapMsg.getParameter("groupInfo").getValue();}}catch(e){groupInfo=null;}
cbfunc(groupInfo);}
Application.prototype.retrieveGroupContents=function(userOid,groupOid,timestamp,cbfunc,userData)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"getGroupContents");soap.setParameter("userOid",Soap.PARAMETER_INTEGER,userOid);soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("timestamp",Soap.PARAMETER_LONG,((timestamp!=null)?timestamp.getTime():-1));return this.processSoapRequest(soap,cbfunc,this.retrieveGroupContentsResponse,userData);}
Application.prototype.retrieveGroupContentsResponse=function(soapMsg,cbfunc,userData)
{var oid=-1;var info=null;try{if(!soapMsg.isFault()){oid=soapMsg.getParameter("groupOid").getValue();var x=soapMsg.getParameter("groupInfo");info=(x==null)?null:x.getValue();}
else
oid=-1;}catch(e){oid=-1;}
cbfunc(oid,info,userData);}
Application.prototype.createTopic=function(title,groupOid,parentTopicOid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"createTopic");soap.setParameter("title",Soap.PARAMETER_STRING,xmlutils.encodeUTF(title,true));soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("parentOid",Soap.PARAMETER_INTEGER,parentTopicOid);return this.processSoapRequest(soap,cbfunc,this.createTopicResponse);}
Application.prototype.createTopicResponse=function(soapMsg,cbfunc)
{var topicData=new Object();try{if(!soapMsg.isFault()){topicData.oid=soapMsg.getParameter("topicOid").getValue();topicData.name=soapMsg.getParameter("topicName").getValue();topicData.parentOid=soapMsg.getParameter("parentOid").getValue();topicData.groupOid=soapMsg.getParameter("groupOid").getValue();}
else{topicData.oid=-1;}}catch(e){topicData.oid=-1;}
cbfunc(topicData);}
Application.prototype.renameTopic=function(groupOid,topicOid,newTopicName,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"renameTopic");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("topicOid",Soap.PARAMETER_INTEGER,topicOid);soap.setParameter("title",Soap.PARAMETER_STRING,xmlutils.encodeUTF(newTopicName,true));return this.processSoapRequest(soap,cbfunc,this.renameTopicResponse);}
Application.prototype.renameTopicResponse=function(soapMsg,cbfunc)
{var topicData=new Object();try{if(!soapMsg.isFault()){topicData.oid=soapMsg.getParameter("topicOid").getValue();topicData.name=soapMsg.getParameter("topicName").getValue();topicData.groupOid=soapMsg.getParameter("groupOid").getValue();}}catch(e){topicData.oid=-1;}
cbfunc(topicData);}
Application.prototype.deleteTopic=function(groupOid,topicOid,cbfunc)
{var soap=Soap.createSoapRequest(Application.SOAP_MODULE_USER,"deleteTopic");soap.setParameter("groupOid",Soap.PARAMETER_INTEGER,groupOid);soap.setParameter("topicOid",Soap.PARAMETER_INTEGER,topicOid);return this.processSoapRequest(soap,cbfunc,this.deleteTopicResponse);}
Application.prototype.deleteTopicResponse=function(soapMsg,cbfunc)
{var topicData=new Object();try{if(!soapMsg.isFault()){topicData.oid=soapMsg.getParameter("topicOid").getValue();topicData.groupOid=soapMsg.getParameter("groupOid").getValue();}
else{topicData.oid=-1;}}catch(e){topicData.oid=-1;}
cbfunc(topicData);}
Group.FILTER_PAGES_NONE=parseInt("0");Group.FILTER_PAGES_ALL=parseInt("-1");Group.FILTER_PAGES_MOST_POPULAR=parseInt("-2");Group.FILTER_PAGES_RECENTLY_CHANGED=parseInt("-3");Group.FILTER_PAGES_NEWEST=parseInt("-4");Group.prototype._oid;Group.prototype._title;Group.prototype._owner;Group.prototype._creation;Group.prototype._modification;Group.prototype._type;Group.prototype._pwd;Group.prototype._permissions;Group.prototype._location;Group.prototype._topics;Group.prototype._members;function Group(oid,title,owner,cdate,mdate,type,pwd,perm)
{this._oid=parseInt(oid);this._title=title;this._owner=owner;if(cdate!=-1)
this._creation=new Date(parseInt(cdate));else
this._creation=null;if(mdate!=-1)
this._modification=new Date(parseInt(mdate));else
this._modification=null;this._type=type;this._pwd=pwd;this._permissions=parseInt(perm);this._topics=null;this._members=new Array(0);}
Group.createGroupList=function(xmlstr)
{var idx=0;var end_idx=null;var list=new Array();while((idx=xmlstr.indexOf("<group>",idx))!=-1){end_idx=xmlstr.indexOf("</group>",idx+7);var str=xmlstr.substring(idx,end_idx+8);list.push(Group.createInstance(str));idx=end_idx+8;}
return list;}
Group.createInstance=function(xmlstr)
{var g=new Group();var ms=null;var env=null;var elem=null;try{if(typeof xmlstr=="string"){xmlutils.loadXml(xmlutils.dom,xmlstr);env=xmlutils.dom.documentElement;}
else
env=xmlstr;for(elem=env.firstChild;elem!=null;elem=elem.nextSibling){var name=elem.nodeName;var val=xmlutils.getNodeText(elem);switch(elem.nodeName){case'oid':g._oid=parseInt(val);break;case'title':g._title=val;break;case'owner':g._owner=parseInt(val);break;case'creation':if((ms=parseInt(val))==0)
g._creation=null;else{g._creation=new Date();g._creation.setTime(ms);}
break;case'modification':if((ms=parseInt(val))==0)
g._modification=null;else{g._modification=new Date();g._modification.setTime(ms);}
break;case'type':g._type=val;break;case'password':g._pwd=val;break;case'permissions':g._permissions=val;break;case'location':g._location=val;break;default:break;}}
g._topics=null;return g;}
catch(e){alert("Exception in Group.createInstance: "+e);return null;}}
Group.sort=function(g1,g2)
{var t1=g1.getTitle();var t2=g2.getTitle();if(t1==null)
return 1;else if(t2==null)
return-1;else
return t1.localeCompare(t2);}
Group.getGroup=function(glist,oid)
{try{var o=parseInt(oid);for(var i=0;i<glist.length;i++)
{if(glist[i].getOid()==oid)
return glist[i];}
return null;}
catch(e){return null;}}
Group.prototype.addTopic=function(topic)
{var parentTopic=this.getTopic(topic.getParentOid());if(parentTopic!=null){parentTopic.appendChild(topic);return true;}
else
return false;}
Group.prototype.addMember=function(member)
{var members=this._members;members[members.length]=member;}
Group.prototype.deleteMember=function(member)
{var members=this._members;for(var i=0;i<members.length;i++){var m=members[i];if(m.isEqual(member)){members.splice(i,1);return true;}}
return false;}
Group.prototype.clear=function()
{delete this._topics;delete this._members;this._topics=new Array();this._members=new Array();}
Group.prototype.createMembers=function(elem)
{try{var members=elem.getElementsByTagName("members");for(var member=elem.firstChild;member!=null;member=member.nextSibling)
{var m=Member.createInstance(member);this._members[this._members.length]=m;}
return true;}catch(e){return false;}}
Group.prototype.createStoragePaths=function(elem)
{var paths=new Array();try{var iPath=0;for(var path=elem.firstChild;path!=null;path=path.nextSibling)
{var storagePath=StoragePath.createInstance(path);if(storagePath!=null)
paths[iPath++]=storagePath;}
return paths;}catch(e){return paths;}}
Group.prototype.createPages=function(elem,paths)
{try{for(var page=elem.firstChild;page!=null;page=page.nextSibling)
{var p=PageX.createInstance(page);for(var i=0;i<paths.length;i++){if(paths[i].getOid()==p.getStoragePathOid())
p.setStoragePath(paths[i]);}
topic=Tree.find(Tree.TREE,this._topics,p.getTopicOid());if(topic!=null)
topic.addPage(p);}
return true;}catch(e){return false;}}
Group.prototype.createTopics=function(elem)
{var list=new Array();try{for(var topic=elem.firstChild;topic!=null;topic=topic.nextSibling){list.push(Topic.createInstance(topic));}
this._topics=new Topic(0,this._oid,"root",0);Tree.findChildren(list,this._topics);return true;}catch(e){return false;}}
Group.prototype.deleteTopic=function(topicOid)
{return Tree.remove(Tree.TREE,this._topics,topicOid);}
Group.prototype.getMemberList=function()
{return this._members;}
Group.prototype.getOid=function()
{return this._oid;}
Group.prototype.getName=function(){return this._title;}
Group.prototype.getTitle=function()
{return this._title;}
Group.prototype.getOwner=function()
{return this._owner;}
Group.prototype.getModificationDate=function()
{return this._modification;}
Group.prototype.getLocation=function()
{return this._location;}
Group.prototype.getTopics=function(recursive)
{var list=new Array(0);Tree.traverse(Tree.TREE,this._topics,Group.alltopics,list);return list;}
Group.prototype.getTopic=function(oid)
{return Tree.find(Tree.TREE,this._topics,oid);}
Group.prototype.getTopicByTitle=function(title)
{return Tree.find(Tree.TREE,this._topics,title,"title");}
Group.prototype.getDefaultTopic=function()
{return Tree.find(Tree.TREE,this._topics,0,"default");}
Group.prototype.setTitle=function(title)
{this._title=title;}
Group.prototype.update=function(groupData)
{this.clear();xmlutils.loadXml(xmlutils.dom,groupData);var env=xmlutils.dom.documentElement;var paths=null;for(var elem=env.firstChild;elem!=null;elem=elem.nextSibling){switch(elem.nodeName){case'members':this.createMembers(elem);break;case'storagePaths':paths=this.createStoragePaths(elem);break;case'topics':this.createTopics(elem);break;case'pages':this.createPages(elem,paths);break;default:break;}}}
Group.prototype.getPages=function(topicOid)
{var list=new Array(0);if(topicOid!=-1){var topic=this.getTopic(topicOid);Group.allpages(topic,list);}
else{Tree.traverse(Tree.TREE,this._topics,Group.allpages,list);}
return list;}
Group.prototype.getPage=function(pageOid)
{var list=new Array(0);Tree.traverse(Tree.TREE,this._topics,Group.allpages,list);var pg=null;for(var i=0;i<list.length;i++){if(list[i].getOid()==pageOid)
return list[i];}
return null;}
Group.prototype.getMostPopularPages=function(topicOid,howmany)
{var list=new Array(howmany);var i=null;for(i=0;i<list.length;i++)
list[i]=null;if(topicOid!=-1){var topic=this.getTopic(topicOid);Group.mostViewed(topic,list);}
else{Tree.traverse(Tree.TREE,this._topics,Group.mostViewed,list);}
for(i=0;i<list.length;i++){if(list[i]==null)
break;}
list.length=i;return list;}
Group.prototype.getRecentlyChangedPages=function(topicOid,lastDate)
{var list=new Array();var mdate=null;var pages=this.getPages(topicOid);for(var j=0;j<pages.length;j++){mdate=pages[j].getModificationDate();if(mdate.getTime()>=lastDate.getTime())
list[list.length]=pages[j];}
return list;}
Group.mostViewed=function(topic,list)
{var pages=topic.getPages();var i=0;var j=0;if(pages!=null){for(i=0;i<pages.length;i++){var page=pages[i];var vc=parseInt(page.getViewCount());var inserted=false;for(j=0;j<list.length;j++)
{if(list[j]==null)
break;var listvc=parseInt(list[j].getViewCount());if(vc>=listvc){arrayUtils.insertAt(list,j,page);inserted=true;break;}}
if(inserted==false)
list[j]=page;}}}
Group.allpages=function(topic,list)
{var pages=topic.getPages();if(pages!=null){for(var i=0;i<pages.length;i++){var status=pages[i].getStatus();if(status!=null&&status=="deleted")
continue;list[list.length]=pages[i];}}}
Group.alltopics=function(topic,list)
{if(topic.isRoot()==false)
list[list.length]=topic;}
Member.TYPE_REGISTERED_USER=parseInt("0x0001");Member.TYPE_EMAIL=parseInt("0x0002");Member.TYPE_URL=parseInt("0x0004");Member.UPDATE_DAILY=parseInt("0x0008");Member.UPDATE_WEEKLY=parseInt("0x0010");Member.prototype._oid
Member.prototype._groupOid;Member.prototype._type;Member.prototype._permissions;Member.prototype._status;Member.prototype._email;Member.prototype._registeredUserName;Member.prototype._registeredUserOid;Member.prototype._update;Member.prototype._lastEdit;Member.prototype._filesContributed;function Member(oid,groupOid,type,value,permissions,status)
{this._oid=oid;this._groupOid=groupOid;this._type=parseInt("-1");this._permissions=permissions;this._status=status;if(typeof type=="string")
this._type=parseInt(type);else if(typeof type=="number")
this._type=type;if(this._type==Member.TYPE_REGISTERED_USER)
this._registeredUserName=value;else if(this._type==Member.TYPE_EMAIL)
this._email=value;this._filesContributed=Math.round(5000*Math.random());var now=new Date();var dateInMS=now.getTime()-(Math.round(1000*60*60*24*30*Math.random()));this._lastEdit=new Date(dateInMS);}
Member.createInstance=function(xml)
{var m=new Member();var env=null;var elem=null;try{if(typeof xml=="string"){xmlutils.loadXml(xmlutils.dom,xml);env=xmlutils.dom.documentElement;}
else
env=xml;for(elem=env.firstChild;elem!=null;elem=elem.nextSibling){var name=elem.nodeName;var val=xmlutils.getNodeText(elem);switch(elem.nodeName){case'oid':m._oid=val;break;case'groupOid':m._groupOid=val;break;case'type':m._type=parseInt(val);break;case'permissions':m._permissions=val;break;case'status':m._status=parseInt(val);break;default:break;}}
if(m._type==Member.TYPE_REGISTERED_USER){elem=env.getElementsByTagName("registeredUserName").item(0);m._registeredUserName=xmlutils.getNodeText(elem);elem=env.getElementsByTagName("registeredUserOid").item(0);m._registeredUserOid=parseInt(xmlutils.getNodeText(elem));elem=env.getElementsByTagName("updates").item(0);m._update=xmlutils.getNodeText(elem);elem=env.getElementsByTagName("preferences").item(0);elem=env.getElementsByTagName("email").item(0);m._email=xmlutils.getNodeText(elem);}
else if(m._type==Member.TYPE_EMAIL){elem=env.getElementsByTagName("email").item(0);m._email=xmlutils.getNodeText(elem);}
else if(m._type==Member.TYPE_URL){elem=env.getElementsByTagName("url").item(0);}
this._filesContributed=Math.round(5000*Math.random());var now=new Date();var dateInMS=now.getTime()-(Math.round(1000*60*60*24*30*Math.random()));this._lastEdit=new Date(dateInMS);return m;}catch(e){alert("Member.createInstance: "+e);return null;}}
Member.prototype.formatDate=function(d)
{var str="";var month=d.getMonth()+1;var day=d.getDate();var year=d.getFullYear();if(month<10)
str+="0";str+=month+"/";if(day<10)
str+="0";str+=day+"/"+year;return str;}
Member.prototype.getData=function(columnId,clientData)
{var lc=null;var dataValue=null;if(columnId=="delete"){if((this._type==Member.TYPE_REGISTERED_USER)&&(clientData.getOwner()==this._registeredUserOid))
lc=new ListCell(ListCell.TYPE_STRING,"");else
lc=new ListCell(ListCell.TYPE_STRING,"Delete");}
else if(columnId=="memberstatus"){if(this._status==1||this._type==Member.TYPE_EMAIL)
dataValue="pending";else if(this._type==Member.TYPE_REGISTERED_USER)
dataValue="active";lc=new ListCell(ListCell.TYPE_STRING,dataValue);}
else if(columnId=="email"){if((this._type==Member.TYPE_REGISTERED_USER)||(this._type==Member.TYPE_EMAIL)){dataValue=this._email;if(this._type==Member.TYPE_REGISTERED_USER){if(clientData.getOwner()==this._registeredUserOid)
dataValue+=" *";}}
else
dataValue="---";lc=new ListCell(ListCell.TYPE_STRING,dataValue);}
else if(columnId=="type"){var t=null;if(this._type==Member.TYPE_REGISTERED_USER)
t="user";else if(this._type==Member.TYPE_EMAIL)
t="email";else if(this._type==Member.TYPE_URL)
t="url";lc=new ListCell(ListCell.TYPE_STRING,t);}
else if(columnId=="permissions"){switch(this._status){case 2:var str1=(this._permissions&2)!=0?'<img src="images/readactive.gif">':'<img src="images/readdisabled.gif">'
var str2=(this._permissions&13)!=0?'<img src="images/writeactive.gif">':'<img src="images/writedisabled.gif">'
lc=new ListCell(ListCell.TYPE_CONTAINER,str1+str2);break;case 1:lc=new ListCell(ListCell.TYPE_STRING,"PENDING");break;case 3:lc=new ListCell(ListCell.TYPE_STRING,"INACTIVE");break;default:lc=new ListCell(ListCell.TYPE_STRING,"UNKNOWN");break;}}
else if(columnId=="updates"){var t1="";if(this._type==Member.TYPE_REGISTERED_USER&&this._status==2)
t1=this._update;lc=new ListCell(ListCell.TYPE_STRING,t1);}
else if(columnId=="lastEdit"){var strx=(this._status==2)?this.formatDate(this._lastEdit):"";lc=new ListCell(ListCell.TYPE_STRING,strx);}
else if(columnId=="filesContributed"){if(this._status!=2)
lc=new ListCell(ListCell.TYPE_STRING,"");else
lc=new ListCell(ListCell.TYPE_NUMBER,this._filesContributed);}
else if(columnId=="allowwrite"){switch(this._status){case 2:case 1:lc=new ListCell(ListCell.TYPE_STRING,(this._permissions&13)!=0?"yes":"no");break;default:lc=new ListCell(ListCell.TYPE_STRING,"no");break;}}
return lc;}
Member.prototype.getOid=function()
{return this._oid;}
Member.prototype.getMemberStatus=function()
{return this._status;}
Member.prototype.isEqual=function(m)
{if(this._groupOid==m._groupOid&&this._type==m._type&&this._value==m._value){return true;}
else
return false;}
MsgCatalog.prototype._locale;MsgCatalog.prototype._messages;function MsgCatalog(locale)
{this._locale=locale;this._messages=new Object();}
MsgCatalog.prototype.addMessage=function(name,value)
{this._messages[name]=value;}
MsgCatalog.prototype.loadCatalog=function(data)
{var dom=xmlutils.getXMLDocument();xmlutils.loadXml(dom,data);var msgs=dom.getElementsByTagName("msg");for(var i=0;i<msgs.length;i++){var msg=msgs.item(i);var id=msg.getAttribute("id");var val=xmlutils.getNodeText(msg);this.addMessage(id,val);}}
MsgCatalog.prototype.getMessage=function(name)
{return this._messages[name];}
PageX.THUMBNAIL_UNAVAILABLE="images/homepage/thumbnail_unavailable.jpg";PageX.prototype._oid;PageX.prototype._title;PageX.prototype._topic;PageX.prototype._thumbnail;PageX.prototype._owner;PageX.prototype._group;PageX.prototype._creationDate;PageX.prototype._modificationDate;PageX.prototype._lastViewed;PageX.prototype._viewcount;PageX.prototype._editcount;PageX.prototype._latestEdit;PageX.prototype._latestView;PageX.prototype._status;PageX.prototype._readonly;PageX.prototype._storagePath;PageX.prototype._storagePathOid;function PageX(title,oid,owner,group,topic,create,modify,status,lastViewed,viewcount,editcount,latestEdit,latestView)
{this._oid=oid;this._title=title;this._thumbnail=PageX.THUMBNAIL_UNAVAILABLE;this._owner=owner;this._group=group;this._topic=topic;this._creationDate=new Date(parseInt(create));this._modificationDate=new Date(parseInt(modify));this._status=status;this._readonly=false;this._lastViewed=lastViewed;this._viewcount=viewcount;this._editcount=editcount;this._latestEdit=latestEdit;this._latestView=latestView;this._storagePath=null;this._storagePathOid=-1;}
PageX.createInstance=function(xmlstr)
{var p=new PageX();var ms=null;var env=null;var summary=null;var elem=null;try{if(typeof xmlstr=="string"){if(xmlstr!=null){xmlutils.loadXml(xmlutils.dom,xmlstr);env=xmlutils.dom.documentElement;}}
else
env=xmlstr;for(elem=env.firstChild;elem!=null;elem=elem.nextSibling){var name=elem.nodeName;var val=xmlutils.getNodeText(elem);switch(elem.nodeName){case'title':p._title=val;break;case'oid':p._oid=parseInt(val);break;case'thumbnail':p._thumbnail=val;break;case'owneroid':p._owner=parseInt(val);break;case'groupoid':p._group=parseInt(val);break;case'topicoid':p._topic=parseInt(val);break;case'storagePathOid':p._storagePathOid=parseInt(val);break;case'created':ms=parseInt(val);p._creationDate=(ms==0)?null:new Date(ms);break;case'modified':ms=parseInt(val);p._modificationDate=(ms==0)?null:new Date(ms);break;case'viewed':ms=parseInt(val);p._lastViewed=(ms==0)?null:new Date(ms);break;case'status':p._status=val;break;case'readonly':p._readonly=(val=='true')?true:false;break;case'summary':summary=elem;break;default:break;}}
if(summary!=null)
{if((elem=summary.getElementsByTagName("views").item(0))!=null)
p._viewcount=parseInt(xmlutils.getNodeText(elem));if((elem=summary.getElementsByTagName("edits").item(0))!=null)
p._editcount=parseInt(xmlutils.getNodeText(elem));if((elem=summary.getElementsByTagName("version"))!=null)
p._latestEdit=PageVersion.createInstance(xmlutils.getNodeText(elem));if((elem=summary.getElementsByTagName("view").item(0))!=null)
p._latestView=PageView.createInstance(xmlutils.getNodeText(elem));}
return p;}catch(e){alert("Page.createInstance: "+e);}}
PageX.prototype.getCreationDate=function(){return this._creationDate;}
PageX.getGridTitleMostPopular=function(pageObj)
{var str=pageObj.getTitle()+"&nbsp;("+pageObj.getViewCount()+")";return str;}
PageX.getGridTitleRecentlyChanged=function(pageObj)
{var str=pageObj.getTitle()+"&nbsp;("+pageObj.getModificationDate()+")";return str;}
PageX.prototype.getGroupOid=function(){return this._group;}
PageX.prototype.getStoragePathOid=function(){return this._storagePathOid;}
PageX.prototype.getModificationDate=function(){return this._modificationDate;}
PageX.prototype.getName=function(){return this.getTitle();}
PageX.prototype.getOid=function(){return this._oid;}
PageX.prototype.getOwner=function(){return this._owner;}
PageX.prototype.getReadOnly=function(){return this._readonly;}
PageX.prototype.getStatus=function(){return this._status;}
PageX.prototype.getThumbnail=function(){return this._thumbnail;}
PageX.prototype.getTitle=function(){return this._title;}
PageX.prototype.getTopicOid=function(){return this._topic;}
PageX.prototype.getViewCount=function(){return this._viewcount;}
PageX.prototype.getViewedDate=function(){return this._lastViewed;}
PageX.prototype.getEditCount=function(){return this._editCount;}
PageX.prototype.getLatestEdit=function(){return this._latestEdit;}
PageX.prototype.getLatestView=function(){return this._latestView;}
PageX.prototype.getStoragePath=function(){return this._storagePath;}
PageX.prototype.setStoragePath=function(val){this._storagePath=val;}
PageX.prototype.setReadOnly=function(val){this._readonly=val;}
PageX.prototype.setThumbnail=function(val){this._thumbnail=val;}
PageX.prototype.setTitle=function(val){this._title=val;}
PageX.prototype.setViewedDate=function(val)
{try{this._lastViewed=new Date(val);}catch(e){this._lastViewed=null;}}
PageX.sortByCreationDate=function(p1,p2)
{if(p1._creationDate==null)
return-1;if(p2._creationDate==null)
return 1;p1_ms=p1._creationDate.getTime();p2_ms=p2._creationDate.getTime();if(p1_ms==p2_ms)
return p1.getTitle().localeCompare(p2.getTitle());else
return(p1_ms>p2_ms)?1:-1;}
PageX.sortByModificationDate=function(p1,p2)
{if(p1._modificationDate==null)
return-1;if(p2._modificationDate==null)
return 1;p1_ms=p1._modificationDate.getTime();p2_ms=p2._modificationDate.getTime();if(p1_ms==p2_ms)
return p1.getTitle().localeCompare(p2.getTitle());else
return(p1_ms>p2_ms)?-1:1;}
PageX.sortByMostPopular=function(p1,p2)
{var p1_vc=p1.getViewCount();var p2_vc=p2.getViewCount();if(p1_vc==null)
return-1;if(p2_vc==null)
return 1;if(p1_vc==p2_vc)
return p1.getTitle().localeCompare(p2.getTitle());else
return(p1_vc>p2_vc)?-1:1;}
PageX.sortByTitle=function(p1,p2)
{var t1=p1.getTitle();var t2=p2.getTitle();if(t1==null)
return-1;if(t2==null)
return 1;return t1.localeCompare(t2);}
PageX.sortRecordSet=function(recordset,sortType)
{var sortfunc=PageX.sortByTitle;switch(sortType){case'orderCreated':sortfunc=PageX.sortByCreationDate;break;case'mostPopular':sortfunc=PageX.sortByMostPopular;break;case'recentlyChanged':sortfunc=PageX.sortByModificationDate;break;case'title':sortfunc=PageX.sortByTitle;break;default:break;}
recordset._data.sort(sortfunc);}
PageDetail.counter=0;PageDetail.objects=null;PageDetail.prototype._id;PageDetail.prototype._dimensions;PageDetail.prototype._colors;PageDetail.prototype._title;PageDetail.prototype._subtitle;PageDetail.prototype._page;PageDetail.prototype._cbfunc;PageDetail.prototype._thumbnail;PageDetail.prototype._titleWidget;PageDetail.prototype._subtitleWidget;PageDetail.prototype._advancedWidget;PageDetail.prototype._readonlyWidget;PageDetail.prototype._readonlyCheckBoxWidget;PageDetail.prototype._detailContainerWidget;PageDetail.prototype._ownerWidget;PageDetail.prototype._bottomContainerWidget;PageDetail.prototype._sharePageWidget;PageDetail.prototype._viewPageWidget;function PageDetail(title,dimensions,colors,cbfunc)
{this._id="pageDetail_"+PageDetail.counter++;this._dimensions=dimensions;this._title=title;this._subtitle="";this._colors=colors;this._page=null;this._cbfunc=cbfunc;this._thumbnail=null;this._titleWidget=null;this._subtitleWidget=null;this._advancedWidget=null;this._readonlyWidget=null;this._readonlyCheckBoxWidget=null;this._detailContainerWidget=null;this._ownerWidget=null;this._bottomContainerWidget=null;this._sharePageWidget=null;this._viewPageWidget=null;}
PageDetail.createInstance=function(title,dimensions,colors,cbfunc)
{var pd=new PageDetail(title,dimensions,colors,cbfunc);if(PageDetail.objects==null)
PageDetail.objects=new Object();PageDetail.objects[pd._id]=pd;return pd;}
PageDetail.getInstance=function(id)
{return PageDetail.objects[id];}
PageDetail.handleClick=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var id=target.getAttribute('widgetid');var op=target.getAttribute('op');var pd=PageDetail.getInstance(id);if(pd._cbfunc!=null)
pd._cbfunc(op,pd._page);}
PageDetail.handleLoadedImage=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getCurrentTarget(evt);var id=target.getAttribute('widgetid');var pd=PageDetail.getInstance(id);pd.loadThumbnail();}
PageDetail.handleErrorImage=function(e)
{if(this.src.indexOf('pagethumb.jpg')!=-1){var evt=EventUtils.getEvent(e);var target=EventUtils.getCurrentTarget(evt);var st=target.getAttribute('secondaryThumbnail');var loc=target.getAttribute('storageLocation');this.src=loc+st;}else{this.src=PageX.THUMBNAIL_UNAVAILABLE;}}
PageDetail.prototype.redraw=function()
{var parent=this._thumbnail.parentNode;parent.removeChild(this._thumbnail);this._thumbnail=document.createElement('img');parent.appendChild(this._thumbnail);if(this._page==null||this._page==undefined)
{this._ownerWidget.innerHTML="";this._viewPageWidget.innerHTML='';this._sharePageWidget.innerHTML='';this._advancedWidget.style.visibility='hidden';this._readonlyWidget.style.visibility='hidden';this._readonlyCheckBoxWidget.style.visibility='hidden';this._thumbnail.src=PageX.THUMBNAIL_UNAVAILABLE;}
else{var d=this._page.getModificationDate();this._ownerWidget.innerHTML='&nbsp;Total Views:&nbsp;'+this._page.getViewCount();this._sharePageWidget.innerHTML='Share Page';this._viewPageWidget.innerHTML='View Page';this._advancedWidget.style.visibility='visible';this._readonlyWidget.style.visibility='visible';this._readonlyCheckBoxWidget.style.visibility='visible';this.setReadOnly(this._page.getReadOnly());var groupOwner=Group.getGroup(groups,this._page._group).getOwner();if(this._page._owner==user.getOid()||groupOwner==user.getOid())
this._readonlyCheckBoxWidget.disabled=false;else
this._readonlyCheckBoxWidget.disabled=true;this._thumbnail.style.visiblity='hidden';this._thumbnail.onerror=PageDetail.handleErrorImage;var idx=this._page.getThumbnail().lastIndexOf("/");var thumbpath=this._page.getThumbnail().substring(0,idx);this._thumbnail.src=thumbpath+'/pagethumb.jpg';this._thumbnail.setAttribute('widgetid',this._id);this._thumbnail.setAttribute('op','editro');this._thumbnail.setAttribute('secondaryThumbnail',this._page.getThumbnail());this._thumbnail.setAttribute('storageLocation',this.getStorageLocation(this._page));this._thumbnail.style.cursor='pointer';this._thumbnail.onload=PageDetail.handleLoadedImage;this._thumbnail.onclick=PageDetail.handleClick;}
if(this._thumbnail.complete==true)
this.loadThumbnail();}
PageDetail.prototype.setColors=function(colors)
{if(colors!=null){this._colors=colors;this._detailContainerWidget.style.backgroundColor=this._colors.backgroundColor;this._bottomContainerWidget.style.backgroundColor=this._colors.footerColor;this._titleWidget.style.color=this._colors.titleColor;this._subtitleWidget.style.color=this._colors.subtitleColor;this._ownerWidget.style.color=this._colors.textColor;this._advancedWidget.style.color=this._colors.textColor;this._sharePageWidget.style.color=this._colors.textColor;this._viewPageWidget.style.color=this._colors.textColor;this._readonlyWidget.style.color=this._colors.textColor;}}
PageDetail.prototype.setData=function(p)
{this._page=p;this.redraw();}
PageDetail.prototype.setReadOnly=function(ro)
{if(ro==true||ro=="true")
this._readonlyCheckBoxWidget.checked=false;else
this._readonlyCheckBoxWidget.checked=true;}
PageDetail.prototype.setSubtitle=function(str)
{this._subtitle=str;if(this._subtitle!=null)
this._subtitleWidget.innerHTML=this._subtitle;}
PageDetail.prototype.toHtml=function(parent,top,left)
{var container=document.createElement('div');container.style.position='absolute';container.style.height=this._dimensions.totalHeight+'px';container.style.width=this._dimensions.totalWidth+'px';container.style.top=top+'px';container.style.left=left+'px';parent.appendChild(container);this.buildTitle(container);this.buildData(container);this.buildInputField(container);return container;}
PageDetail.prototype.buildTitle=function(container)
{var adj=(dhtmlapi.isIE==true)?2:0;var c1=document.createElement('div');c1.style.top='0px';c1.style.left='0px';c1.style.height=this._dimensions.titleHeight+'px';c1.style.width=this._dimensions.totalWidth+'px';c1.style.textAlign='center';c1.style.marginTop='auto';c1.style.marginBottom='auto';this._titleWidget=document.createElement('div');this._titleWidget.className='listViewTitle';this._titleWidget.innerHTML=this._title;this._titleWidget.style.color=this._colors.titleColor;this._titleWidget.style.paddingTop=(12+adj)+'px';this._titleWidget.style.height='auto';this._titleWidget.style.marginBottom='auto';c1.appendChild(this._titleWidget);this._subtitleWidget=document.createElement('div');this._subtitleWidget.className='listViewSubtitle';this._subtitleWidget.innerHTML="";this._subtitleWidget.style.color=this._colors.subtitleColor;c1.appendChild(this._subtitleWidget);container.appendChild(c1);}
PageDetail.prototype.buildData=function(container)
{var c1=document.createElement('div');c1.style.top=this._dimensions.titleHeight+'px';c1.style.left='0px';c1.style.height=this._dimensions.listHeight+'px';c1.style.width=(this._dimensions.totalWidth-3)+'px';c1.style.paddingLeft='3px';c1.style.overflowX='hidden';c1.style.overflowY='hidden';c1.style.backgroundColor=this._colors.backgroundColor;container.appendChild(c1);var width=dhtmlapi.getObjectWidth(c1);var thumbnail_width=parseInt(width*0.80);var sp=parseInt((width-thumbnail_width)/2);var obj=document.createElement('div');obj.style.position='relative';obj.style.height=thumbnail_width+'px';obj.style.width=thumbnail_width+'px';obj.style.top=sp+'px';obj.style.left=sp+'px';obj.style.overflow='hidden';obj.style.verticalAlign='middle';obj.style.textAlign='center';c1.appendChild(obj);this._thumbnail=document.createElement('img');this._thumbnail.setAttribute('widgetid',this._id);this._thumbnail.setAttribute('op','editro');this._thumbnail.src=PageX.THUMBNAIL_UNAVAILABLE;this._thumbnail.style.cursor='pointer';this._thumbnail.style.visibility='hidden';this._thumbnail.onload=PageDetail.handleLoadedImage;this._thumbnail.onerror=PageDetail.handleErrorImage;this._thumbnail.onclick=PageDetail.handleClick;obj.appendChild(this._thumbnail);c1.appendChild(document.createElement('br'));var tbl=document.createElement("table");tbl.width="90%";tbl.align='left';c1.appendChild(tbl);var tr=tbl.insertRow(0);var td=tr.insertCell(0);td.style.paddingLeft='10px';this._ownerWidget=document.createElement('span');this._ownerWidget.className='listViewSubtitle';this._ownerWidget.style.color=this._colors.textColor;this._ownerWidget.innerHTML='';td.appendChild(this._ownerWidget);tr=tbl.insertRow(1);td=tr.insertCell(0);td.style.paddingLeft='10px';this._advancedWidget=document.createElement('span');this._advancedWidget.setAttribute('widgetid',this._id);this._advancedWidget.setAttribute('op','properties');this._advancedWidget.className='listViewSubtitle';this._advancedWidget.style.color=this._colors.textColor;this._advancedWidget.style.cursor='pointer';this._advancedWidget.style.textDecoration='underline';this._advancedWidget.onclick=PageDetail.handleClick;this._advancedWidget.innerHTML='&nbsp;Page History';td.appendChild(this._advancedWidget);tr=tbl.insertRow(2);td=tr.insertCell(0);td.style.paddingLeft='10px';td.style.paddingTop='4px';this._readonlyCheckBoxWidget=document.createElement('input');this._readonlyCheckBoxWidget.type='checkbox';this._readonlyCheckBoxWidget.onclick=PageDetail.handleClick;this._readonlyCheckBoxWidget.setAttribute('widgetid',this._id);this._readonlyCheckBoxWidget.setAttribute('op','lock');td.appendChild(this._readonlyCheckBoxWidget);this._readonlyWidget=document.createElement('span');this._readonlyWidget.className='listViewSubtitle';this._readonlyWidget.innerHTML='&nbsp;Allow Editing';td.appendChild(this._readonlyWidget);this._detailContainerWidget=c1;}
PageDetail.prototype.buildInputField=function(container)
{var c1=document.createElement('div');c1.style.top=(this._dimensions.titleHeight+
this._dimensions.listHeight)+'px';c1.style.left='0px';c1.style.height=this._dimensions.inputFieldHeight+'px';c1.style.width=(this._dimensions.totalWidth-3)+'px';c1.style.paddingLeft='3px';c1.style.backgroundColor=this._colors.footerColor;c1.appendChild(document.createElement('br'));var tbl=document.createElement("table");tbl.width="90%";tbl.align='left';var tr=tbl.insertRow(0);var td_left=tr.insertCell(0);var td_right=tr.insertCell(1);td_left.nowrap=true;td_right.nowrap=true;c1.appendChild(tbl);this._sharePageWidget=document.createElement('a');this._sharePageWidget.setAttribute('widgetid',this._id);this._sharePageWidget.setAttribute('op','share');this._sharePageWidget.className='listViewSubtitle';this._sharePageWidget.innerHTML='Share Page';this._sharePageWidget.style.whiteSpace='nowrap';this._sharePageWidget.style.textDecoration='underline';this._sharePageWidget.style.cursor='pointer';this._sharePageWidget.onclick=PageDetail.handleClick;td_left.style.paddingLeft='5px';td_left.style.whiteSpace='nowrap';td_left.appendChild(this._sharePageWidget);this._viewPageWidget=document.createElement('a');this._viewPageWidget.setAttribute('widgetid',this._id);this._viewPageWidget.setAttribute('op','edit');this._viewPageWidget.className='listViewSubtitle';this._viewPageWidget.innerHTML='View Page';this._viewPageWidget.style.whiteSpace='nowrap';this._viewPageWidget.style.textDecoration='underline';this._viewPageWidget.style.cursor='pointer';this._viewPageWidget.onclick=PageDetail.handleClick;td_right.style.paddingLeft='0px';td_right.style.whiteSpace='nowrap';td_right.appendChild(this._viewPageWidget);container.appendChild(c1);this._bottomContainerWidget=c1;}
PageDetail.prototype.loadThumbnail=function()
{if(this._thumbnail.width!=NaN&&this._thumbnail.width>0&&this._thumbnail.height!=NaN&&this._thumbnail.height>0){var parent=this._thumbnail.parentNode;var width=dhtmlapi.getObjectWidth(parent);var height=dhtmlapi.getObjectHeight(parent);var ratio=parseFloat(this._thumbnail.width/this._thumbnail.height);if(ratio>1.0){this._thumbnail.width=width;this._thumbnail.height=parseInt(width/ratio);}
else{this._thumbnail.height=height;this._thumbnail.width=parseInt(height*ratio);}
this._thumbnail.style.visibility='visible';}}
PageDetail.prototype.getStorageLocation=function(page)
{var storagePath=page.getStoragePath();var isMaster=(storagePath.getServerType()==0);var storageLoc="";if(!isMaster)
storageLoc=location.protocol+"//"+storagePath.getServerUrl()+"/ewsstorage/";storageLoc=storageLoc+"_path_/"+storagePath.getOid()+"/";return storageLoc;}
PageVersion.prototype._revNumber;PageVersion.prototype._revTime;PageVersion.prototype._revUserOid;PageVersion.prototype._comment;function PageVersion(revNumber,revTime,revUserOid,comment)
{this._revNumber=revNumber;this._revTime=revTime;this._revUserOid=revUserOid;this._comment=comment;}
PageVersion.createInstance=function(xmlstr)
{var env=null;var ms=null;var pv=new PageVersion();try{if(typeof xmlstr=="string"){if(xmlstr!=""){xmlutils.loadXml(xmlutils.dom,xmlstr);env=xmlutils.dom.documentElement;}}
else
env=xmlstr;if(env!=null){for(elem=env.firstChild;elem!=null;elem=elem.nextSibling){var name=elem.nodeName;var val=xmlutils.getNodeText(elem);switch(name){case'revnumber':pv._revNumber=val;break;case'revtime':ms=parseInt(val);pv._revTime=(ms==0)?null:new Date(ms);break;case'revuseroid':pv._revUserOid=parseInt(val);break;case'comment':pv._comment=val;break;}}}
return pv;}catch(e){alert("PageVersion.createInstance: "+e);}}
PageVersion.prototype.isEqual=function(pv)
{if(this._revNumber==pv._revNumber&&this._revTime==pv._revTime&&this._revUserOid==pv._revUserOid&&this._comment==pv._comment){return true;}
else
return false;}
PageVersion.prototype.toXML=function()
{s="<revnumber>"+this._revNumber+"</revnumber>";s+="<revtime>"+((this._revTime==null)?0:this._revTime.getTime())+"</revtime>";s+="<revuseroid>"+this._revUserOid+"</revuseroid>";s+="<comment>"+((this._comment==null)?"":this._comment)+"</comment>";return s;}
PageVersion.prototype.toXMLObject=function()
{var rootNode=xmlutils.dom.createElement("version");var revNumber=xmlutils.dom.createElement("revnumber");var revTime=xmlutils.dom.createElement("revtime");var revUserOid=xmlutils.dom.createElement("revuseroid");var comment=xmlutils.dom.createElement("comment");xmlutils.setNodeText(revNumber,this._revNumber);xmlutils.setNodeText(revTime,((this._revTime==null)?0:this._revTime.getTime()));xmlutils.setNodeText(revUserOid,this._revUserOid);xmlutils.setNodeText(comment,((this._comment==null)?"":this._comment));rootNode.appendChild(revNumber);rootNode.appendChild(revTime);rootNode.appendChild(revUserOid);rootNode.appendChild(comment);return rootNode;}
PageVersion.prototype.getRevNumber=function()
{return this._revNumber;}
PageVersion.prototype.getRevTime=function()
{return this._revTime;}
PageVersion.prototype.getRevUserOid=function()
{return this._revUserOid;}
PageVersion.prototype.getComment=function()
{return this._revComment;}
PageView.rday=new Array("Sun ","Mon ","Tue ","Wed ","Thu ","Fri ","Sat ");PageView.rmonth=new Array("Jan ","Feb ","Mar ","Apr ","May ","Jun ","Jul ","Aug ","Sep ","Oct ","Nov ","Dec ");PageView.prototype._userOid;PageView.prototype._lastVersionView;PageView.prototype._viewTime;PageView.prototype._editVersion;PageView.prototype._userRecord;PageView.prototype._owner;function PageView(userOid,lastVersionView,viewTime,editVersion,userRecord,owner)
{this._userOid=userOid;this._lastVersionView=lastVersionView;this._viewTime=viewTime;this._editVersion=editVersion;this._userRecord=userRecord;this._owner=owner;}
PageView.createInstance=function(xmlstr)
{var idx=null;var end_idx=null;var ms=null;var pv=new PageView();try{idx=xmlstr.indexOf('uid="');end_idx=xmlstr.indexOf('"',idx+5);pv._userOid=parseInt(xmlstr.substring(idx+5,end_idx));idx=xmlstr.indexOf('version="',end_idx+1);end_idx=xmlstr.indexOf('"',idx+9);pv._lastVersionView=parseInt(xmlstr.substring(idx+9,end_idx));idx=xmlstr.indexOf('time="',end_idx+1);end_idx=xmlstr.indexOf('"',idx+6);ms=parseInt(xmlstr.substring(idx+6,end_idx));if(ms==0)
pv._viewTime=null;else
pv._viewTime=new Date(ms);pv._editVersion=null;pv._userRecord=null;pv._owner=false;return pv;}catch(e){alert("PageView.creatInstance: "+e);return null;}}
PageView.createEditInstance=function(versionRecord)
{var pv=new PageView();pv._userOid=versionRecord.getRevUserOid();pv._lastVersionView=-1;pv._viewTime=null;pv._editVersion=versionRecord;pv._userRecord=null;pv._owner=null;return pv;}
PageView.processViewDetails=function(xmlstr)
{var idx;var end_idx;var createOid;try{idx=xmlstr.indexOf("<createuser>",0);end_idx=xmlstr.indexOf("</createuser>",idx+12);var createOid=parseInt(xmlstr.substring(idx+12,end_idx));idx=xmlstr.indexOf("<viewhistory>",end_idx+13);end_idx=xmlstr.indexOf("</viewhistory>",idx+13);var viewStr=xmlstr.substring(idx+13,end_idx);idx=xmlstr.indexOf("<revisionhistory>",end_idx+14);end_idx=xmlstr.indexOf("</revisionhistory>",idx+17);var revisionStr=xmlstr.substring(idx+17,end_idx);idx=xmlstr.indexOf("<userlist>",end_idx+18);end_idx=xmlstr.indexOf("</userlist>",idx+10);var userStr=xmlstr.substring(idx+10,end_idx);var pvList=PageView.getViewList(viewStr);PageView.addEditList(revisionStr,pvList);var uList=PageView.getUserList(userStr);PageView.assignUserList(pvList,uList,createOid);return pvList;}catch(e){return null;}}
PageView.getViewList=function(xmlstr)
{var idx;var end_idx;var pvList=new Array();idx=xmlstr.indexOf("<view",0);while(idx!=-1){end_idx=xmlstr.indexOf("/>",idx+5);var viewStr=xmlstr.substring(idx+5,end_idx);var pvObj=PageView.createInstance(viewStr);pvList[pvList.length]=pvObj;idx=xmlstr.indexOf("<view",end_idx+2);}
return pvList;}
PageView.addEditList=function(xmlstr,pvList)
{var idx;var end_idx;idx=xmlstr.indexOf("<version>",0);while(idx!=-1){end_idx=xmlstr.indexOf("</version>",idx+9);var versionStr=xmlstr.substring(idx,end_idx+10);var versionObj=PageVersion.createInstance(versionStr);var pvObj=PageView.findUser(pvList,versionObj.getRevUserOid());if(pvObj==null){pvObj=PageView.createEditInstance(versionObj);pvList[pvList.length]=pvObj;}
else
pvObj._editVersion=versionObj;idx=xmlstr.indexOf("<version>",end_idx+10);}
return pvList;}
PageView.getUserList=function(xmlstr)
{var idx;var end_idx;var userList=new Array();idx=xmlstr.indexOf("<user>",0);while(idx!=-1){end_idx=xmlstr.indexOf("</user>",idx+6);var userStr=xmlstr.substring(idx,end_idx+7);var userObj=User.createInstance(userStr);if(userObj.getOid()==2){userObj.setFirstName("Guests");userObj.setLastName("");}
userList[userList.length]=userObj;idx=xmlstr.indexOf("<user>",end_idx+7);}
return userList;}
PageView.assignUserList=function(pvlist,ulist,createOid)
{for(i=0;i<pvlist.length;i++){if(pvlist[i].getUserOid()==createOid)
pvlist[i]._owner=true;for(j=0;j<ulist.length;j++){if(pvlist[i].getUserOid()==ulist[j].getOid()){pvlist[i]._userRecord=ulist[j];break;}}}}
PageView.findUser=function(pvList,oid)
{if(pvList!=null){for(i=0;i<pvList.length;i++){if(pvList[i].getUserOid()==oid)
return pvList[i];}}
return null;}
PageView.prototype.getData=function(columnId,clientData)
{var lc=null;var dataValue=null;if(columnId=="member"){dataValue=this.getDisplayName();if(this._owner)
dataValue+=" *";lc=new ListCell(ListCell.TYPE_STRING,dataValue);}
else if(columnId=="viewed"){dataValue=this.getViewTime();lc=new ListCell(ListCell.TYPE_STRING,dataValue==null?"---":this.formatDate(dataValue));}
else if(columnId=="edited"){dataValue=this.getEditTime();lc=new ListCell(ListCell.TYPE_STRING,dataValue==null?"---":this.formatDate(dataValue));}
return lc;}
PageView.prototype.getUserOid=function()
{return this._userOid;}
PageView.prototype.getLastVersionView=function()
{return this._lastVersionView;}
PageView.prototype.getViewTime=function()
{return this._viewTime;}
PageView.prototype.getEditTime=function()
{if(this._editVersion!=null)
return this._editVersion.getRevTime();return null;}
PageView.prototype.getEmail=function()
{if(this._userRecord==null)
return null;name=this._userRecord.getEmailAddress();return name;}
PageView.prototype.getDisplayName=function()
{if(this._userRecord==null)
return null;name=this._userRecord.getDisplayName();return name;}
PageView.prototype.formatDate=function(dt)
{return util.formatDate(dt);}
StoragePath.prototype._oid;StoragePath.prototype._serverOid;StoragePath.prototype._serverType;StoragePath.prototype._serverUrl;function StoragePath(oid,serverOid,serverType,serverUrl)
{this._oid=oid;this._serverOid=serverOid;this._serverType=serverType;this._serverUrl=serverUrl;}
StoragePath.createInstance=function(xmlstr)
{var sp=new StoragePath();try{if(typeof xmlstr=="string"){if(xmlstr!=null){xmlutils.loadXml(xmlutils.dom,xmlstr);env=xmlutils.dom.documentElement;}}
else
env=xmlstr;for(elem=env.firstChild;elem!=null;elem=elem.nextSibling){var name=elem.nodeName;var val=xmlutils.getNodeText(elem);switch(elem.nodeName){case'oid':sp._oid=parseInt(val);break;case'soid':sp._serverOid=parseInt(val);break;case'type':sp._serverType=parseInt(val);break;case'url':sp._serverUrl=val;break;default:break;}}
return sp;}catch(e){alert("StoragePath.createInstance: "+e);}}
StoragePath.prototype.getServerOid=function(){return this._serverOid;}
StoragePath.prototype.getOid=function(){return this._oid;}
StoragePath.prototype.getServerType=function(){return this._serverType;}
StoragePath.prototype.getServerUrl=function(){return this._serverUrl;}
Topic.prototype._oid;Topic.prototype._groupOid;Topic.prototype._title;Topic.prototype._parentOid;Topic.prototype._children;Topic.prototype._parent;Topic.prototype._pages;function Topic(oid,groupOid,title,parentOid)
{this._oid=parseInt(oid);this._groupOid=parseInt(groupOid);this._title=title;this._parentOid=parseInt(parentOid);this._children=new Array();this._parent=null;this._pages=new Array();}
Topic.createInstance=function(xml)
{var t=new Topic();var env=null;var elem=null;try{if(typeof xml=="string"){xmlutils.loadXml(xmlutils.dom,xml);env=xmlutils.dom.documentElement;}
else
env=xml;for(elem=env.firstChild;elem!=null;elem=elem.nextSibling){var name=elem.nodeName;var val=xmlutils.getNodeText(elem);switch(elem.nodeName){case'oid':t._oid=parseInt(val);break;case'groupoid':t._groupOid=parseInt(val);break;case'title':t._title=val;break;case'parentoid':t._parentOid=parseInt(val);break;default:break;}}
return t;}catch(e){alert("Topic.createInstance: "+e);return null;}}
Topic.insertPages=function(topics,pages)
{for(var i=0;i<pages.length;i++){var p=pages[i];Topic.insertPage(topics,p);}}
Topic.insertPage=function(topics,page)
{for(var i=0;i<topics.length;i++){var gt=topics[i];var oid=gt.getOid();if(oid==page.getTopic()){gt.addPage(page);return;}}}
Topic.getTotalPageCount=function(topic,data)
{data.counter+=topic.getPageCount();}
Topic.prototype.insert=function(newTopic)
{var oid=newTopic.getParentOid();var foundNode=Tree.find(Tree.TREE,this,oid);if(foundNode!=null)
{this.appendChild(newTopic);return true;}
return false;}
Topic.prototype.addPage=function(p)
{this._pages[this._pages.length]=p;}
Topic.prototype.appendChild=function(obj){this._children[this._children.length]=obj;}
Topic.prototype.deletePage=function(oid)
{for(var i=0;i<this._pages.length;i++){var p=this._pages[i]
if(p.getOid()==oid){this._pages.splice(i,1);return p;}}}
Topic.prototype.indexOf=function(pageOid)
{if(this._pages==null||pageOid==null)
return-1;for(var i=0;i<this._pages.length;i++){if(this._pages[i].getOid()==pageOid)
return i;}
return-1;}
Topic.prototype.isEqual=function(item,arg)
{if(arg==null)
return(this.getOid()==item)?true:false;else if(arg=="title")
return(this.getTitle()==item)?true:false;}
Topic.prototype.getParentOid=function(){return this._parentOid;}
Topic.prototype.getOid=function(){return this._oid;}
Topic.prototype.getPages=function(){return this._pages;}
Topic.prototype.getPageCount=function(){return((this._pages==null)?0:this._pages.length);}
Topic.prototype.getPage=function(oid){var list=this.getPages();if(list!=null)
{for(var i=0;i<list.length;i++){var p=list[i]
if(p.getOid()==oid){return p;}}}
return null;}
Topic.prototype.getTotalPages=function()
{var data=new Object();data.counter=0;Tree.traverse(Tree.TREE,this,Topic.getTotalPageCount,data);return data.counter;}
Topic.prototype.getName=function(){return this._title;}
Topic.prototype.getTitle=function(){return this._title;}
Topic.prototype.getGroupOid=function(){return this._groupOid;}
Topic.prototype.getParentOid=function(){return this._parentOid;}
Topic.prototype.isParent=function(child)
{return(this.getOid()==child.getParentOid())?true:false;}
Topic.prototype.isRoot=function(){return(this.getOid()==0)?true:false;}
Topic.prototype.setTitle=function(val){this._title=val;}
User.prototype._oid;User.prototype._email;User.prototype._first;User.prototype._last;User.prototype._lastLogin;User.prototype._preferences;User.prototype._userGroups;function User(oid,email,fname,lname,lastLogin)
{this._oid=oid;this._email=email;this._first=fname;this._last=lname;this._preferences=null;this._userGroups=null;try{var ms=parseInt(lastLogin);if(ms==0)
this._lastLogin=null;else
this._lastLogin=new Date(ms);}catch(e){this._lastLogin=null;}}
User.createInstance=function(xmlstr)
{var env=null;if(typeof xmlstr=="string"){if(xmlstr!=""){xmlutils.loadXml(xmlutils.dom,xmlstr);env=xmlutils.dom.documentElement;}}
else
env=xmlstr;return User.parseXml(env);}
User.parseXml=function(userElement)
{var u=new User();var elem=null;try{elem=userElement.getElementsByTagName("oid").item(0);u._oid=parseInt(xmlutils.getNodeText(elem));elem=userElement.getElementsByTagName("email").item(0);u._email=xmlutils.getNodeText(elem);elem=userElement.getElementsByTagName("firstname").item(0);u._first=xmlutils.getNodeText(elem);elem=userElement.getElementsByTagName("lastname").item(0);u._last=xmlutils.getNodeText(elem);elem=userElement.getElementsByTagName("profile").item(0);u.parseProfile(elem);var prefElement=userElement.getElementsByTagName("preferences");if(prefElement!=null&&prefElement.item(0)!=null){u._preferences=Preferences.parseXml(prefElement.item(0));}
elem=userElement.getElementsByTagName("lastlogin").item(0);var ms=parseInt(xmlutils.getNodeText(elem));if(ms==0)
u._lastLogin=null;else{u._lastLogin=new Date();u._lastLogin.setTime(ms);}
return u;}catch(e){alert("User.parseXml: "+e);return null;}}
User.prototype.parseProfile=function(profile)
{}
User.prototype.getFirstName=function(){return this._first;}
User.prototype.getLastName=function(){return this._last;}
User.prototype.getName=function()
{var str=(this._first!=null)?this._first:"";if(this._last!=null){if(str.length!=0)
str+=" ";str+=this._last;}
return str;}
User.prototype.getDisplayName=function()
{var dn=this.getName();if(dn==null||dn.length==0||dn=="")
dn=this.getEmailAddress();return dn;}
User.prototype.getOid=function()
{return this._oid;}
User.prototype.getLastLogin=function()
{return this._lastLogin;}
User.prototype.getPreferences=function(name)
{return this._preferences;}
User.prototype.setPreferences=function(preferences)
{this._preferences=preferences;}
User.prototype.setPreference=function(name,value)
{this._preferences.setPreferenceValue(name,value);}
User.prototype.getEmailAddress=function()
{return this._email;}
User.prototype.setEmailAddress=function(val)
{this._email=val;}
User.prototype.getEncryptedPassword=function()
{return"0x8675309";}
User.prototype.setFirstName=function(val)
{this._first=val;}
User.prototype.setLastName=function(val)
{this._last=val;}
function selectWhoWhatHow(id)
{var who=document.getElementById("who");var what=document.getElementById("what");var how=document.getElementById("how");var obj=null;var movie=null;who.style.backgroundImage="";what.style.backgroundImage="";how.style.backgroundImage="";switch(id){case"who":obj=who;movie='images/who.swf';break;case"what":obj=what;movie='images/what.swf';break;case"how":obj=how;movie='images/how.swf';break;default:return;}
obj.style.backgroundImage="url(images/tube.gif)";var wwh=document.getElementById("whoWhatHow");var s='<object id="xyzzy" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '+'        codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" '+'        width="100%" height="100%">'+'<param name="allowScriptAccess" value="sameDomain" />'+'<param name="movie" value="'+movie+'" />'+'<param name="loop" value="false" />'+'<param name="menu" value="false" />'+'<param name="quality" value="high" />'+'<param name="wmode" value="transparent" />'+'<param name="salign" value="tl" />'+'<param name="bgcolor" value="white" />'+'<param name="swliveconnect" value="true"/>'+'<embed src="'+movie+'" swliveconnect="true" loop="false" menu="false" quality="high"'+'             wmode="transparent" bgcolor="white" width="100%" height="100%" name="xyzzy"'+'             salign="tl" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"'+'             pluginspage="http://www.macromedia.com/go/getflashplayer" />'+'</object>';wwh.innerHTML=s;}
var isIE=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;var isWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)?true:false;var isOpera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;function ControlVersion()
{var version;var axo;var e;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");version=axo.GetVariable("$version");}catch(e){}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version="WIN 6,0,21,0";axo.AllowScriptAccess="always";version=axo.GetVariable("$version");}catch(e){}}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version=axo.GetVariable("$version");}catch(e){}}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version="WIN 3,0,18,0";}catch(e){}}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");version="WIN 2,0,0,11";}catch(e){version=-1;}}
return version;}
function GetSwfVer(){var flashVer=-1;if(navigator.plugins!=null&&navigator.plugins.length>0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var swVer2=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":"";var flashDescription=navigator.plugins["Shockwave Flash"+swVer2].description;var descArray=flashDescription.split(" ");var tempArrayMajor=descArray[2].split(".");var versionMajor=tempArrayMajor[0];var versionMinor=tempArrayMajor[1];if(descArray[3]!=""){tempArrayMinor=descArray[3].split("r");}else{tempArrayMinor=descArray[4].split("r");}
var versionRevision=tempArrayMinor[1]>0?tempArrayMinor[1]:0;var flashVer=versionMajor+"."+versionMinor+"."+versionRevision;}}
else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!=-1)flashVer=4;else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!=-1)flashVer=3;else if(navigator.userAgent.toLowerCase().indexOf("webtv")!=-1)flashVer=2;else if(isIE&&isWin&&!isOpera){flashVer=ControlVersion();}
return flashVer;}
function DetectFlashVer(reqMajorVer,reqMinorVer,reqRevision)
{versionStr=GetSwfVer();if(versionStr==-1){return false;}else if(versionStr!=0){if(isIE&&isWin&&!isOpera){tempArray=versionStr.split(" ");tempString=tempArray[1];versionArray=tempString.split(",");}else{versionArray=versionStr.split(".");}
var versionMajor=versionArray[0];var versionMinor=versionArray[1];var versionRevision=versionArray[2];if(versionMajor>parseFloat(reqMajorVer)){return true;}else if(versionMajor==parseFloat(reqMajorVer)){if(versionMinor>parseFloat(reqMinorVer))
return true;else if(versionMinor==parseFloat(reqMinorVer)){if(versionRevision>=parseFloat(reqRevision))
return true;}}
return false;}}
function AC_AddExtension(src,ext)
{if(src.indexOf('?')!=-1)
return src.replace(/\?/,ext+'?');else
return src+ext;}
function AC_Generateobj(objAttrs,params,embedAttrs)
{var str='';if(isIE&&isWin&&!isOpera)
{str+='<object ';for(var i in objAttrs)
str+=i+'="'+objAttrs[i]+'" ';for(var i in params)
str+='><param name="'+i+'" value="'+params[i]+'" /> ';str+='></object>';}else{str+='<embed ';for(var i in embedAttrs)
str+=i+'="'+embedAttrs[i]+'" ';str+='> </embed>';}
flashStr=str;}
function AC_FL_RunContent(){var ret=AC_GetArgs
(arguments,".swf","movie","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash");AC_Generateobj(ret.objAttrs,ret.params,ret.embedAttrs);}
function AC_GetArgs(args,ext,srcParamName,classid,mimeType){var ret=new Object();ret.embedAttrs=new Object();ret.params=new Object();ret.objAttrs=new Object();for(var i=0;i<args.length;i=i+2){var currArg=args[i].toLowerCase();switch(currArg){case"classid":break;case"pluginspage":ret.embedAttrs[args[i]]=args[i+1];break;case"src":case"movie":args[i+1]=AC_AddExtension(args[i+1],ext);ret.embedAttrs["src"]=args[i+1];ret.params[srcParamName]=args[i+1];break;case"onafterupdate":case"onbeforeupdate":case"onblur":case"oncellchange":case"onclick":case"ondblClick":case"ondrag":case"ondragend":case"ondragenter":case"ondragleave":case"ondragover":case"ondrop":case"onfinish":case"onfocus":case"onhelp":case"onmousedown":case"onmouseup":case"onmouseover":case"onmousemove":case"onmouseout":case"onkeypress":case"onkeydown":case"onkeyup":case"onload":case"onlosecapture":case"onpropertychange":case"onreadystatechange":case"onrowsdelete":case"onrowenter":case"onrowexit":case"onrowsinserted":case"onstart":case"onscroll":case"onbeforeeditfocus":case"onactivate":case"onbeforedeactivate":case"ondeactivate":case"type":case"codebase":case"id":ret.objAttrs[args[i]]=args[i+1];break;case"width":case"height":case"align":case"vspace":case"hspace":case"class":case"title":case"accesskey":case"name":case"tabindex":ret.embedAttrs[args[i]]=ret.objAttrs[args[i]]=args[i+1];break;default:ret.embedAttrs[args[i]]=ret.params[args[i]]=args[i+1];}}
ret.objAttrs["classid"]=classid;if(mimeType)ret.embedAttrs["type"]=mimeType;return ret;}
ListView.counter=0;ListView.objects=null;ListView.prototype._id;ListView.prototype._title;ListView.prototype._icon;ListView.prototype._subtitle;ListView.prototype._inputFieldLabel;ListView.prototype._buttonLabel;ListView.prototype._buttonCallback;ListView.prototype._dimensions;ListView.prototype._sorting;ListView.prototype._colors;ListView.prototype._container;ListView.prototype._titleWidget;ListView.prototype._subtitleWidget;ListView.prototype._dataWidget;ListView.prototype._sortWidget;ListView.prototype._dataContainerWidget;ListView.prototype._bottomContainerWidget;ListView.prototype._buttonWidget;ListView.prototype._inputWidget;function ListView(title,icon,dimensions,colors,iconColumn,cbFunc,sortFunc)
{this._id="listView_"+ListView.counter++;this._dimensions=dimensions;this._title=title;this._icon=icon;this._subtitle='';this._inputFieldLabel="";this._buttonLabel="";this._buttonCallback=cbFunc;this._titleWidget=null;this._subtitleWidget=null;this._dataContainerWidget=null;this._bottomContainerWidget=null;this._buttonWidget=null;this._inputWidget=null;this._dataWidget=SimpleList.createInstance(dimensions.totalWidth,colors,iconColumn,sortFunc,"title");this._dataWidget.setCallback(cbFunc);this._sortWidget=false;this._sorting=false;this._colors=colors;}
ListView.createInstance=function(title,icon,dimensions,colors,iconColumn,listFunc,btnFunc,sortFunc)
{var s=new ListView(title,icon,dimensions,colors,iconColumn,listFunc,btnFunc,sortFunc);if(ListView.objects==null){ListView.objects=new Object();}
ListView.objects[s._id]=s;return s;}
ListView.getInstance=function(id)
{return ListView.objects[id];}
ListView.normalButton=function(widgetId)
{var lv=ListView.getInstance(widgetId);lv._buttonWidget.animate(true);}
ListView.handleClick=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var widgetId=target.getAttribute('widgetid');var lv=ListView.getInstance(widgetId);if(lv._buttonCallback!=null)
lv._buttonCallback('new',null);}
ListView.handleSelectChange=function(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var lv=ListView.getInstance(target.getAttribute('widgetid'));var str=target.options[target.selectedIndex].value;lv._dataWidget.sort(str);}
ListView.prototype.disableField=function(fieldName)
{this._sortWidget.innerHTML="";}
ListView.prototype.getDimensions=function()
{var dim=new Object();dim.top=dhtmlapi.getObjectTop(this._container);dim.left=dhtmlapi.getObjectLeft(this._container);dim.height=dhtmlapi.getObjectHeight(this._container);dim.width=dhtmlapi.getObjectWidth(this._container);return dim;}
ListView.prototype.enableField=function(fieldName)
{this.buildSortField();}
ListView.prototype.getSelectedItem=function()
{return this._dataWidget.getSelectedItem();}
ListView.prototype.redraw=function()
{this._dataWidget.redraw();}
ListView.prototype.setContextMenu=function(options)
{this._dataWidget.setContextMenu(options);}
ListView.prototype.sort=function()
{this._dataWidget.sort();}
ListView.prototype.setColors=function(colors)
{if(colors!=null){this._colors=colors;this._titleWidget.style.color=this._colors.titleColor;this._bottomContainerWidget.style.backgroundColor=this._colors.footerColor;this._inputWidget.style.color=this._colors.textColor;this._dataWidget.setColors(colors);}}
ListView.prototype.setInputFields=function(label,btnTitle)
{this._inputFieldLabel=label;this._buttonLabel=btnTitle;}
ListView.prototype.setOverflow=function(val)
{this._dataContainerWidget.style.overflowY=val;}
ListView.prototype.setData=function(data,idx)
{this._dataWidget.setData(data,idx);}
ListView.prototype.setSorting=function(b)
{this._sorting=b;}
ListView.prototype.setSubtitle=function(str)
{}
ListView.prototype.toHtml=function(parent,top,left)
{var container=document.createElement('div');container.style.position='absolute';container.style.height=this._dimensions.totalHeight+'px';container.style.width=this._dimensions.totalWidth+'px';container.style.top=top+'px';container.style.left=left+'px';parent.appendChild(container);this._container=container;this.buildTitle(container);this.buildData(container);this.buildInputField(container);var c1=document.createElement('div');c1.style.top=(this._dimensions.titleHeight+
this._dimensions.listHeight+
this._dimensions.inputFieldHeight+3)+'px';c1.style.left='0px';c1.style.height=this._dimensions.sortFieldHeight+'px';c1.style.width=this._dimensions.totalWidth+'px';c1.style.paddingTop='5px';c1.style.paddingLeft='3px';container.appendChild(c1);this._sortWidget=c1;this.buildSortField();return container;}
ListView.prototype.buildTitle=function(container)
{var c1=document.createElement('div');c1.style.top='0px';c1.style.left='0px';c1.style.height=this._dimensions.titleHeight+'px';c1.style.width=this._dimensions.totalWidth+'px';c1.style.paddingLeft='10px';var icon=document.createElement('img');icon.src=this._icon;icon.height=48;icon.width=48;icon.style.verticalAlign='middle';c1.appendChild(icon);this._titleWidget=document.createElement('span');this._titleWidget.className='listViewTitle';this._titleWidget.innerHTML='&nbsp;&nbsp;'+this._title;this._titleWidget.style.color='purple';this._titleWidget.style.height='25px';this._titleWidget.style.marginTop='auto';this._titleWidget.style.marginBottom='auto';c1.appendChild(this._titleWidget);container.appendChild(c1);}
ListView.prototype.buildData=function(container)
{var c1=document.createElement('div');c1.style.top=this._dimensions.titleHeight+'px';c1.style.left='0px';c1.style.height=this._dimensions.listHeight+'px';c1.style.width=this._dimensions.totalWidth+'px';c1.style.backgroundColor=this._colors.backgroundColor;c1.style.overflowX='hidden';c1.style.overflowY='scroll';container.appendChild(c1);this._dataWidget.toHtml(c1);this._dataContainerWidget=c1;}
ListView.prototype.buildInputField=function(container)
{var c1=document.createElement('div');c1.style.top=(this._dimensions.titleHeight+
this._dimensions.listHeight)+'px';c1.style.left='0px';c1.style.height=this._dimensions.inputFieldHeight+'px';c1.style.width=this._dimensions.totalWidth+'px';c1.style.paddingLeft='3px';c1.style.backgroundColor=this._colors.footerColor;container.appendChild(c1);this._bottomContainerWidget=c1;c1.appendChild(document.createElement('br'));var l=this._inputFieldLabel;this._inputWidget=document.createElement('span');this._inputWidget.className='listViewSubtitle';this._inputWidget.innerHTML=(l!=null)?l:"&nbsp;";this._inputWidget.style.textDecoration='underline';this._inputWidget.style.color=this._colors.textColor;this._inputWidget.style.cursor='pointer';this._inputWidget.onclick=ListView.handleClick;this._inputWidget.setAttribute('widgetid',this._id);c1.appendChild(this._inputWidget);c1.appendChild(document.createElement('br'));c1.appendChild(document.createElement('br'));}
ListView.prototype.buildSortField=function()
{if(this._sorting==false)
return;var sel=document.createElement('select');sel.className='listViewSubtitle';sel.id='listViewSelect';sel.onchange=ListView.handleSelectChange;sel.setAttribute('widgetid',this._id);sel.options.length=0;sel.options[0]=new Option('Order Created','orderCreated',false,false);sel.options[1]=new Option('Most Popular','mostPopular',false,false);sel.options[2]=new Option('Recently Changed','recentlyChanged',false,false);sel.options[3]=new Option('Title','title',false,false);sel.options[3].selected=true;this._sortWidget.appendChild(sel);}
Compatibility.winLogo="images/compatibility/winlogo.png";Compatibility.macLogo="images/compatibility/applelogo.png";Compatibility.linuxLogo="images/compatibility/linuxlogo.png";Compatibility.ieLogo="images/compatibility/ielogo.png";Compatibility.firefoxLogo="images/compatibility/firefoxlogo.png";Compatibility.safariLogo="images/compatibility/safarilogo.png";Compatibility.flashLogo="images/compatibility/flashlogo.png";Compatibility.javaLogo="images/compatibility/javalogo.png";Compatibility.checkIcon="images/compatibility/check.png";Compatibility.errorIcon="images/compatibility/error.png";Compatibility.warningIcon="images/compatibility/warning.png";Compatibility.platform=null;Compatibility.javaVersion=null;Compatibility.requiredMajorVersion=9;Compatibility.requiredMinorVersion=0;Compatibility.requiredRevision=0;Compatibility.interval=1000;Compatibility.javaTimeout=0;Compatibility.state_cnt;function Compatibility(i)
{if(i!=null)
Compatibility.interval=i;Compatibility.state_cnt=0;}
Compatibility.setJavaVersion=function(ver)
{Compatibility.javaVersion=ver;}
Compatibility.check=function()
{switch(Compatibility.state_cnt++){case 0:Compatibility.checkPlatform();break;case 1:Compatibility.checkBrowser();break;case 2:Compatibility.checkFlash();break;case 3:Compatibility.checkJava();break;default:alert("done");return;}}
Compatibility.checkPlatform=function()
{var obj=document.getElementById("platformDetails");obj.innerHTML="<span class=styleDetails>Platform Check ... <i>in progress</i></span>";setTimeout("Compatibility.checkPlatformCB()",Compatibility.interval);}
Compatibility.checkPlatformCB=function()
{Compatibility.platform=BrowserDetect2.OS;var details="";var res=Compatibility.checkIcon;var lc=document.getElementById("platformLogoContainer");var det=document.getElementById("platformDetails");var elem=null;switch(Compatibility.platform){case"Mac":lc.appendChild(util.createPngElement(Compatibility.macLogo,"Mac",100,100));details="We support the Mac. However, the drag and drop feature within PikiWiki is not yet available on the Mac.";break;case"Windows":lc.appendChild(util.createPngElement(Compatibility.winLogo,"Windows",100,100));details="We support Windows.";break;case"Linux":lc.appendChild(util.createPngElement(Compatibility.linuxLogo,"Linux",100,100));res=Compatibility.warningIcon;details="You have Linux. Pikiwiki may work if you use Firefox 2 ... but no guarantees.";break;default:res=Compatibility.errorIcon;details="You are using an unknown OS. We might not work but try with Firefox 2 ... you need a browser that supports both Flash and Javascript.";}
var elem=util.createPngElement(res,"",100,100);elem.style.position='absolute';elem.style.top='0px';elem.style.left='0px';lc.appendChild(elem);det.innerHTML="<span class=styleMain>"+details+"</span>";Compatibility.check();}
Compatibility.checkBrowser=function()
{var obj=document.getElementById("browserDetails");obj.innerHTML="<span class=styleDetails>Browser Check ... <i>in progress</i></span>";setTimeout("Compatibility.checkBrowserCB()",Compatibility.interval);}
Compatibility.checkBrowserCB=function()
{var browser=BrowserDetect2.browser;var version=BrowserDetect2.version;version=version+'';var details="";var res=Compatibility.checkIcon;var lc=document.getElementById("browserLogoContainer");var det=document.getElementById("browserDetails");var elem=null;var plat=Compatibility.platform;if(plat=="Mac")
{switch(browser){case"Safari":if(version.indexOf("52")!=-1){details="We support Safari 3.0, which is currently in beta.";lc.appendChild(util.createPngElement(Compatibility.safariLogo,"Safari",100,100));}
else{details="We don't fully support Safari 2.0. You can view pages, but you cannot create or edit pages. "+"You may also run into other problems. For a better experience, download the latest version of Safari 3.0 "+"(beta) or get Firefox.";lc.appendChild(util.createPngElement(Compatibility.safariLogo,"Safari",100,100));res=Compatibility.warningIcon;}
break;case"Firefox":if(version>=2){details="We support Firefox 2+ for Mac but we are aware of some bugs and we are working on them. Currently Drag n Drop is not working due to a bug with java and Firefox";lc.appendChild(util.createPngElement(Compatibility.firefoxLogo,"Firefox",100,100));res=Compatibility.warningIcon;}
else{details="We don't support your firefox version. Please update to the latest version. ";lc.appendChild(util.createPngElement(Compatibility.firefoxLogo,"Firefox",100,100));res=Compatibility.errorIcon;}
break;default:details="You have "+browser+", which is not supported at this time. You may want to use Safari 3.0. But you can still give it a try.";res=Compatibility.errorIcon;break;}}
else if(plat=="Windows")
{switch(browser){case"Safari":details="We support Safari 3.0, which is currently in beta. However, the drag'n'drop feature does not work. "+"For a better experience, use either IE or Firefox.";lc.appendChild(util.createPngElement(Compatibility.safariLogo,"Safari",100,100));break;case"Firefox":if(version>=2){details="You have Firefox, which is a supported browser.";lc.appendChild(util.createPngElement(Compatibility.firefoxLogo,"Firefox",100,100));}else{details="We don't support your firefox version. But we believe most of the features will work.... ";lc.appendChild(util.createPngElement(Compatibility.firefoxLogo,"Firefox",100,100));res=Compatibility.warningIcon;}
break;case"Explorer":if(version>=6){details="Internet Explorer "+version+", PikiWiki likes you!!!";lc.appendChild(util.createPngElement(Compatibility.ieLogo,"IE",100,100));res=Compatibility.checkIcon;}
else{details="Your Internet Explorer "+version+" is too old - please update it.<br>Go to http://www.microsoft.com";lc.appendChild(util.createPngElement(Compatibility.ieLogo,"IE",100,100));res=Compatibility.errorIcon;}
break;default:details="You have "+browser+" which is not supported on Windows. Go get Firefox 2.0, Safari for Windows, or IE version 6 or 7.";res=Compatibility.errorIcon;break;}}
else if(plat=="Linux")
{if(browser=="Firefox"){details="You have Firefox, and PikiWiki should work. At least you should be able to view pages. Creating pages ... there may be some problems ...";lc.appendChild(util.createPngElement(Compatibility.firefoxLogo,"Linux",100,100));res=Compatibility.warningIcon;}
else{details="You are using "+browser+" on Linux. Sorry, we just aren't ready to support this browser right now. You can still give it a try.";res=Compatibility.errorIcon;}}
else{details="Your platform is "+Compatibility.platform+". This is not a supported platform.";res=Compatibility.errorIcon;}
var elem=util.createPngElement(res,"",100,100);elem.style.position='absolute';elem.style.top='0px';elem.style.left='0px';lc.appendChild(elem);det.innerHTML="<span class=styleMain>"+details+"</span>";Compatibility.check();}
Compatibility.checkFlash=function()
{var obj=document.getElementById("flashDetails");obj.innerHTML="<span class=styleDetails>Flash Verification ... <i>in progress</i></span>";setTimeout("Compatibility.checkFlashCB()",Compatibility.interval);}
Compatibility.checkFlashCB=function()
{var details="";var res=Compatibility.checkIcon;var lc=document.getElementById("flashLogoContainer");var det=document.getElementById("flashDetails");var elem=null;var hasReqestedVersion=DetectFlashVer(Compatibility.requiredMajorVersion,Compatibility.requiredMinorVersion,Compatibility.requiredRevision);lc.appendChild(util.createPngElement(Compatibility.flashLogo,"Linux",100,100));if(hasReqestedVersion){details="You have Flash "+GetSwfVer();}else{details='Flash does not seem to be installed on your computer. Please go to <br>'+'the Adobe website to <a href=http://www.adobe.com/go/getflash/>Get Flash</a>';res=Compatibility.errorIcon;}
var elem=util.createPngElement(res,"",100,100);elem.style.position='absolute';elem.style.top='0px';elem.style.left='0px';lc.appendChild(elem);det.innerHTML="<span class=styleMain>"+details+"</span>";Compatibility.check();}
Compatibility.failJavaCheck=function()
{var lc=document.getElementById("javaLogoContainer");var det=document.getElementById("javaDetails");lc.appendChild(util.createPngElement(Compatibility.javaLogo,"Java",100,100));var elem=util.createPngElement(Compatibility.errorIcon,"",100,100);elem.style.position='absolute';elem.style.top='0px';elem.style.left='0px';lc.appendChild(elem);det.innerHTML='<span class=styleMain>You need to enable/install Java. To do this, go to <a href="http://java.com" target=_blank>Sun\'s Java Website</a> and get the latest version</span>';}
Compatibility.checkJava=function()
{var obj=document.getElementById("javaDetails");if(BrowserDetect2.browser.toLowerCase()=="safari"||Compatibility.platform.toLowerCase()=="mac"){obj.innerHTML="";return;}
else
obj.innerHTML="<span class=styleDetails>Java Version Check ... <i>in progress</i></span>";if(Compatibility.javaVersion!=null)
setTimeout("Compatibility.checkJavaCB()",Compatibility.interval);else{if(Compatibility.javaTimeout>=15)
{Compatibility.failJavaCheck();return;}
else{Compatibility.javaTimeout++;setTimeout("Compatibility.checkJava()",2000);}}}
Compatibility.checkJavaCB=function()
{var details="";var res=null;var lc=document.getElementById("javaLogoContainer");var det=document.getElementById("javaDetails");var elem=null;lc.innerHTML="";lc.appendChild(util.createPngElement(Compatibility.javaLogo,"Java",100,100));if(navigator.javaEnabled()<1){details="You need to enable Java. To do this go to http://java.com/ and get the latest version of java.";res=Compatibility.errorIcon;}
else{details="You have Java "+Compatibility.javaVersion+". ";if(Compatibility.javaVersion.search("1.4.2")!=-1){res=Compatibility.errorIcon;details+="Your computer will not work with PikiWiki, you have to update the latest <a href='http://java.com/'>Java 1.6.</a>";}
else if(Compatibility.javaVersion.search("1.5")!=-1)
{res=Compatibility.warningIcon;details+="Your computer will work with PikiWiki, but we recommend you update to <a href='http://java.com/'>Java 1.6.</a>";}
else if(Compatibility.javaVersion.search("1.6")!=-1)
{details+="You have the latest Java version.";res=Compatibility.checkIcon;}
else{details+="You seem to have a very old version. <a href='http://java.com/'>Click here to update.</a>"
res=Compatibility.errorIcon;}}
var elem=util.createPngElement(res,"",100,100);elem.style.position='absolute';elem.style.top='0px';elem.style.left='0px';lc.appendChild(elem);det.innerHTML="<span class=styleMain>"+details+"</span>";}
var CurrentMember=null;var CurrentGroup=null;var UserIdentities=new Array();var email=null;var password=null;function goHome()
{window.location="/ews";}
function openCompatibility()
{var retUrl="/ews/inviteGroup.jsp?aclOid="+aclOid+"&type=new";window.location.href="compatibility.jsp?returnUrl="+escape(retUrl);}
function loadMemberData(aclOid)
{application.retrieveGroupInvite(aclOid,loadMemberDataCb);}
function loadMemberDataCb(data)
{var user;var data;var idx;var end_idx;var xmlstr;var count;if(data==null){loadMemberDataFinish(3);return;}
idx=data.groupMember.indexOf("<member>");if(idx==-1){cbfunc(3);return;}
end_idx=data.groupMember.indexOf("</member>",idx+8);xmlstr=data.groupMember.substring(idx,end_idx+9);CurrentMember=Member.createInstance(xmlstr);count=0;idx=0;while(idx<data.userIdentities.length){idx=data.userIdentities.indexOf("<user>",idx);if(idx==-1)
break;end_idx=data.userIdentities.indexOf("</user>",idx+6);if(end_idx==-1)
break;xmlstr=data.userIdentities.substring(idx,end_idx+7);user=User.createInstance(xmlstr);UserIdentities[count++]=user;idx=end_idx+7;}
application.retrieveGroupInfo(CurrentMember._groupOid,loadMemberData2);}
function loadMemberData2(data)
{var result=0;if(data==null)
result=3;else{CurrentGroup=Group.createInstance(data);if(CurrentMember.getMemberStatus()==2)
result=1;else if(CurrentMember.getMemberStatus()!=1)
result=2;else
result=0;}
loadMemberDataFinish(result);}
function loadMemberDataFinish(result)
{switch(result)
{case 0:displayMemberData();break;case 1:displayAlreadyJoined();break;case 2:displayLoadError("The group administrator has withdrawn your invitation.  Unfortunately, you will not be able to join this group.");break;default:displayLoadError("An error has occurred. Please check that you have the right URL address in your browser.");break;}}
function displayMemberData()
{var containerObj=document.getElementById("mainContainer");if(retType!=null&&retType=="new"){chooseNew();}
else if(UserIdentities.length==0)
{containerObj.innerHTML=getFormTemplateChoice();}
else{containerObj.innerHTML=getFormTemplateExist();}}
function getFormTemplateChoice()
{var s='<table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">'+'<tr><td colspan=2></td></tr>'+'<tr><td colspan=2 align=center>'+'  <span class="invitenormal">Hi,<strong> $$EMAIL$$</strong>, you\'re about to join Pikiwiki Group <strong>$$GROUPNAME$$</strong></span>'+'</td></tr>'+'<tr><td colspan=2 align=center>'+'  <span class=inviteNormal>We couldn\'t find you in our list of Pikiwiki users. Please choose which of the following pertains to you.</span>'+'</td></tr>'+'<tr style="padding-top:10px;">'+'  <td align=center>'+'    <img src="images/newtopikiwiki.gif" alt="new to pikiwiki" width="60" height="52" /><br /> <br />'+'    <button onclick="chooseNew()">I\'m New to Pikiwiki</button>'+'  </td><td align=center>'+'    <img src="images/knowpikiwiki.gif" alt="exists in pikiwiki" width="60" height="52" /><br /> <br />'+'    <button onclick="chooseAlt()">I already have a Pikiwiki account</button>'+'  </td>'+'</tr>'+'<tr style="padding-top:10px;"><td colspan=2 align=center>$$DESCRIPTOR$$</td></tr>'+'</table>';var theHtml=s.split("$$EMAIL$$").join(CurrentMember._email);theHtml=theHtml.split("$$GROUPNAME$$").join(CurrentGroup._title);theHtml=theHtml.split("$$DESCRIPTOR$$").join(getPikiwikiDescriptor());return theHtml;}
function getFormTemplateExist()
{var s='<table width=100%>'+'<tr><td></td></tr>'+'<tr><td align=center>'+'    <span class="invitenormal">Hi, <strong>$$EMAIL$$</strong>, you\'re about to join Pikiwiki Group <strong>$$GROUPNAME$$</strong>.</span>'+'</td></tr>'+'<tr><td align=center><span class="errorText" id=statusMsg>&nbsp;</span></td></tr>'+'<tr><td align=center><span class="invitenormal">$$INSTRUCTIONS$$</span></td></tr>'+'<tr><td>&nbsp;</td></tr>'+'<tr><td align=center>'+'  <span class=invitenormal>Your Password:</span>&nbsp;&nbsp;<input id=pwdExist class=invitenormal type=password value="">'+'</td></tr>'+'<tr><td align=center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+'<span class=normalText><a href="forgotPassword.jsp">Forget your password?</a></span></td></tr>'+'<tr><td>&nbsp;</td></tr>'+'<tr style="padding-top:25px;"><td align=center>'+'  <button  onclick="existSettings()">Yes, I want to join this group</button>'+'  <button  onclick="cancelSettings()">No, I don\'t want to join this group</button>'+'</td></tr>'+'<tr style="padding-top:10px;"><td align=center>$$DESCRIPTOR$$</td></tr>'+'</table>';var theHtml=s.split("$$EMAIL$$").join(CurrentMember._email);theHtml=theHtml.split("$$GROUPNAME$$").join(CurrentGroup._title);theHtml=theHtml.split("$$DESCRIPTOR$$").join(getPikiwikiDescriptor());theHtml=theHtml.split("$$INSTRUCTIONS$$").join("To join, simply supply your password and click on the YES link below. If you also want to login to PikiWiki, then enter your valid password.");return theHtml;}
function getPikiwikiDescriptor()
{var s='<table width=500 align=center cellspacing=0 cellpadding=0 border=0>'+'<tr style="height:10px;"><td>&nbsp;</td></tr>'+'<tr><td align=center>'+'    <span class=largeText style="font-size:24px;color:brown;">What is Pikiwiki??</span>'+'</td></tr>'+'<tr style="height:10px;"><td>&nbsp;</td></tr>'+'<tr><td align=left><span class=normalText>'+'  PikiWiki is a new and better way to share and preserve stories, pictures,'+'  video, and other personal content with friends and family.  You can quickly and'+'  easily create or contribute to a PikiWiki web page by dragging and dropping'+'  pictures, videos, and other content right from your computer and arrange it any'+'  way you want. No special software is required - just a web browser.<br><br>'+'  Give us a try - it only takes a few minutes to build your first PikiWiki page!<br><br>'+'  To learn more about PikiWiki, visit the home page at <a href="javascript:goHome();">www.pikiwiki.com.</a>'+'</span></td></tr>';return s;}
function goInviteCancel()
{var loc="/ews/inviteDecline.jsp?aclOid=";loc+=aclOid;window.location=loc;}
function updateTerms(id)
{var chk_terms=null;var chk_age=null;var str=null;if(dhtmlapi.isSafari==true){chk_terms=document.getElementById("terms").getAttribute("chk");chk_age=document.getElementById("age").getAttribute("chk");if(id=="terms")
str=(chk_terms=="true")?"false":"true";else
str=(chk_age=="true")?"false":"true";document.getElementById(id).setAttribute("chk",str);}
else{chk_terms=document.getElementById("terms").checked;chk_age=document.getElementById("age").checked;document.getElementById("joingroup").disabled=(chk_terms==true&&chk_age==true)?false:true;}}
function handleMouse(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var arr=target.src.split('/');var val=arr[arr.length-1];switch(val){case'whonormal.gif':target.src='images/whohover.gif';break;case'whatnormal.gif':target.src='images/whathover.gif';break;case'hownormal.gif':target.src='images/howhover.gif';break;case'whohover.gif':target.src='images/whonormal.gif';break;case'whathover.gif':target.src='images/whatnormal.gif';break;case'howhover.gif':target.src='images/hownormal.gif';break;default:break;}}
function validate()
{var fields=new Array(document.getElementById("email"),document.getElementById("pwd1"),document.getElementById("pwd2"));var names=new Array('email address','password','confirmation password');var count=0;var first=-1;for(i=0;i<fields.length;i++){if(util.isEmpty(fields[i].value)){count=count+1;if(first==-1)first=i;}}
if(count>0){alert((count==1)?'Please enter a '+names[first]+'.':'Please supply all required fields');fields[first].focus();return false;}
var emailValidationMsg=util.validEmailAddress2(fields[0].value);if(emailValidationMsg!=null)
{displayOpStatusReg(emailValidationMsg);fields[0].focus();return false;}
if(fields[1].value.length<6){displayOpStatusReg("Your password is too short it should be 6 or more characters long");fields[1].focus();return false;}
if(fields[1].value!=fields[2].value){alert('Passwords do not match.  Please try again.');fields[1].focus();return false;}
return true;}
function validateAlt()
{if(util.isEmpty(document.getElementById("loginAlt").value)||util.isEmpty(document.getElementById("pwdAlt").value)){alert('Please enter your email address and password');return false;}
return true;}
function validateExist()
{if(util.isEmpty(document.getElementById("pwdExist").value)){alert('Please enter your password');return false;}
return true;}
function displayOpError(msg)
{s='<table width="100%"  border="0" align="center" cellpadding="0" cellspacing="0">'+'<tr><td></td></tr>'+'<tr style="padding-top:10px;"><td align=center>'+'  <span class="invitenormal"><strong>$$ERRORTEXT$$</strong></span><br />'+'</td></tr>'+'<tr style="padding-top:10px;"><td align=center>'+'  <button onclick="goHome()">Go to Pikiwiki Homepage</button>'+'</td></tr></table>';var containerObj=document.getElementById("mainContainer");var theHtml=s.split("$$ERRORTEXT$$").join(msg);containerObj.innerHTML=theHtml;}
function displayLoadError(msg)
{var s='<table width="100%"  border="0" align="center" cellpadding="0" cellspacing="0">'+'<tr><td></tr></tr>'+'<tr style="padding-top:10px;"><td align="center">'+'  <span class="invitenormal"><strong>$$ERRORTEXT$$</strong></span><br />'+'</td></tr>'+'<tr style="padding-top:10px;"><td align=center>'+'  <button onclick="goHome()">Go to Pikiwiki Homepage</button>'+'</td></tr></table>';var containerObj=document.getElementById("mainContainer");var theHtml=s.split("$$ERRORTEXT$$").join(msg);containerObj.innerHTML=theHtml;}
function displayAlreadyJoined()
{var s='<table width="100%"  border="0" align="center" cellpadding="0" cellspacing="0">'+'<tr><td></td></tr>'+'<tr style="padding-top:10px;"><td align=center>'+'  <span class="inviteheader">It looks like you\'ve already joined this group</span><br>'+'  <span class="inviteheaderblue">Thank You!</span>'+'</td></tr>'+'<tr style="padding-top:10px;"><td align=center>'+'  <button onclick="goHome()">Go to Pikiwiki Homepage</button>'+'</td></tr></table>';var containerObj=document.getElementById("mainContainer");containerObj.innerHTML=s;}
function displayOpStatus(msg)
{var sobj=document.getElementById("statusMsg");if(sobj!=null)
sobj.innerHTML=msg;}
var link="<a style='cursor:pointer;'; href='javascript:goHome();'>";var link2="</a>";function chooseNew()
{var s='<table width=100%>'+'  <tr><td align=center>'+'    <span class="invitenormal">Hi, <strong>$$EMAIL$$</strong>, you\'re about to join Pikiwiki Group <strong>$$GROUPNAME$$</strong></span>'+'  </td></tr>'+'  <tr><td></td></tr>'+'  <tr><td></td></tr>'+'  <tr><td align=center><span class=errorText id=statusMsg></span></td></tr>'+'  <tr><td></td></tr>'+'  <tr><td align=center>'+'    <span class=inviteNormal>Please specify the following information so we may create your new account.</span>'+'  </td></tr>'+'  <tr><td>'+'    <table width="100%" border="0" align="left" cellpadding="2" cellspacing="5">'+'    <tr>'+'      <td align=right nowrap><span class=invitenormal>Your Email Address:</span></td>'+'      <td align=left><input id=email class=invitenormal type=text value="$$EMAIL$$"  size=25></td>'+'    </tr>'+'    <tr>'+'      <td align=right nowrap><span class=invitenormal>Select New Password:</span></td>'+'      <td align=left><input id=pwd1 class=invitenormal type=password value="" size=25></td>'+'    </tr>'+'    <tr>'+'      <td align=right nowrap><span class=invitenormal>Confirm Password:</span></td>'+'      <td align=left><input id=pwd2 class=invitenormal type=password value="" size=25></td>'+'    </tr> '+'    <tr>'+'      <td align=right nowrap><span class=invitenormal><strong>A few settings you can change now or later:</strong></span></td>'+'      <td align=left>&nbsp;</td>'+'    </tr> '+'    <tr>'+'      <td align=right nowrap><span class=invitenormal>Your First Name:</span></td>'+'      <td align=left><input id=first class=invitenormal type=text value="" size=25></td>'+'    </tr>'+'    <tr>'+'      <td align=right nowrap><span class=invitenormal>Your Last Name:</span></td>'+'      <td align=left><input id=last class=invitenormal type=text value="" size=25></td>'+'    </tr>  '+'    <tr>'+'      <td align=right nowrap><span class=invitenormal>Send updates to me no more than:</span></td>'+'      <td align=left><select id=updates class=invitenormal>'+'      <option value="15 minutes">Every 15 minutes</option>'+'      <option value="hourly">Hourly</option>'+'      <option value="daily" selected>Daily</option>'+'      <option value="weekly">Weekly</option>'+'      <option value="monthly">Monthly</option>'+'      <option value="never">Never</option>'+'      </select></td>'+'    </tr>'+'    <tr>'+'          <td>&nbsp;</td>'+'          <td align=left class=invitenormal nowrap><input type="checkbox" name="terms" id="terms" onclick="updateTerms(\'terms\')">'+'                I have read and agree to the<a href="terms.jsp"> terms of use.</a>'+'          </td>'+'    </tr>    '+'    <tr>'+'      <td>&nbsp;</td>    '+'      <td align=left class=invitenormal nowrap><input type="checkbox" name="age" id="age" onclick="updateTerms(\'age\')"> '+'         I certify that I am at least 13 years old.'+'      </td>'+'    </tr>      '+'    </table>'+'  </td></tr>'+'  <tr><td></td></tr>'+'  <tr class=ui_background style="padding-top:20px;">'+'    <td colspan=2 align="center">'+'      <button id="joingroup" name="joingroup" onclick="newSettings()" >Yes, register me with Pikiwiki and join this group</button>'+'      <button onclick="cancelSettings()">No, I don\'t want to join</button>'+'    </td>'+'  </tr>'+'</table>';var theHtml=s.split("$$EMAIL$$").join(CurrentMember._email);theHtml=theHtml.split("$$GROUPNAME$$").join(CurrentGroup._title);var containerObj=document.getElementById("mainContainer");containerObj.innerHTML=theHtml;}
function chooseAlt()
{var s='<table width="100%"  border="0" align="center" cellpadding="0" cellspacing="0">'+'<tr><td colspan=2></td></tr>'+'<tr><td colspan=2 align=center>'+'  <span class="invitenormal">Hi, <strong>$$EMAIL$$</strong>, you\'re about to join Pikiwiki Group <strong>$$GROUPNAME$$</strong></span>'+'</td></tr>'+'<tr><td colspan=2 align=center>'+'  <span class="invitenormal">Please specify your Pikiwiki login credentials below so we may add this group to your existing subscriptions.</span>'+'</td></tr>'+'<tr><td colspan=2 align=center><span class="errorText" id=statusMsg>&nbsp;</span></td></tr>'+'<tr><td colspan=2></td></tr>'+'<tr><td align=right><span class=invitenormal>Your Email Address:</span></td>'+'    <td align=left><input id=loginAlt class=invitenormal type=text value=""></td>'+'</tr>'+'<tr><td align=right><span class=invitenormal>Your Password:</span></td>'+'    <td align=left><input id=pwdAlt class=invitenormal type=password value=""></td>'+'</tr>'+'<tr class=ui_background style="padding-top:20px;"><td align=center colspan=2>'+'  <button  onclick="altSettings()">Yes, I want to join this group</button>'+'  <button  onclick="cancelSettings()">No, I don\'t want to join this group</button>'+'</td></tr></table>';var containerObj=document.getElementById("mainContainer");var theHtml=s.split("$$EMAIL$$").join(CurrentMember._email);theHtml=theHtml.split("$$GROUPNAME$$").join(CurrentGroup._title);containerObj.innerHTML=theHtml;}
function newSettings()
{if(dhtmlapi.isSafari==true){var chk_term=document.getElementById("terms").getAttribute("chk");var chk_age=document.getElementById("age").getAttribute("chk");if(chk_term!="true"||chk_age!="true"){alert("Before you can register, the terms of use and verification of your age "+"must be accepted by checking the boxes above.");return;}}
if(!validate())
return;email=document.getElementById("email").value;password=document.getElementById("pwd1").value;var selObj=document.getElementById("updates");var first=document.getElementById("first").value;var last=document.getElementById("last").value;var updates=selObj.options[selObj.selectedIndex].value;var resp=application.convertUser("new",aclOid,email,password,first,last,updates,handleResponse);}
function existSettings()
{email=CurrentMember._email;password=document.getElementById("pwdExist").value;var resp=application.convertUser("exist",aclOid,email,password,"junk","junk","junk",handleResponse);}
function altSettings()
{if(!validateAlt())
return;email=document.getElementById("loginAlt").value;password=document.getElementById("pwdAlt").value;var resp=application.convertUser("alt",aclOid,email,password,"junk","junk","junk",handleResponse);}
function handleResponse(resp)
{var expiration;var nowPlusOneYear;var value;var curValue;var curLogin;var curPassword;var arr;if(resp==null)
displayOpError("A Server Error has occurred.<br>Please try again.");else if(resp.user!=null){if(password!=null)
application.login(email,password,handleLoginResponse);else
goHome();}
else if(resp.fault.string=="eexist")
displayOpStatus("The email address you have selected has already been taken.<br>Please try again.");else if(resp.fault.string=="enoexist")
displayOpStatus("The email name you have specified does not exist. Please try again.");else if(resp.fault.string=="eauth")
displayOpStatus("Invalid password. Please try again.");else
displayOpError("A problem has occurred during the join process.");}
function handleLoginResponse(loginData)
{if(loginData==null||loginData.authcode==null)
goHome();else{var decodedParams='sts='+loginData.serverTimestamp+'&uo='+loginData.userOid+'&groupOid='+CurrentGroup.getOid();location.href='userHomePage.jsp?'+encryptURLParams(decodedParams);return;}}
function cancelSettings()
{goInviteCancel();}
function updateTermsReg()
{var disable=(document.getElementById("terms").checked==false)||(document.getElementById("age").checked==false);document.getElementById("register").disabled=disable;}
function validateReg()
{var fields=new Array(document.getElementById("newpassword"),document.getElementById("newpassword2"),document.getElementById("newemail"));var names=new Array('password','confirmation password','email address');var count=0;var first=-1;for(i=0;i<fields.length;i++){if(util.isEmpty(fields[i].value)){count=count+1;if(first==-1)first=i;}}
if(count>0){displayOpStatusReg((count==1)?'Please enter a '+names[first]+'.':'Please supply a login name, password and email address');fields[first].focus();return false;}
var emailValidationMsg=util.validEmailAddress2(fields[2].value);if(emailValidationMsg!=null)
{displayOpStatusReg(emailValidationMsg);fields[2].focus();return false;}
if(fields[0].value.length<6){displayOpStatusReg("Your password is too short it should be 6 or more characters long");fields[0].focus();return false;}
if(fields[0].value!=fields[1].value){displayOpStatusReg('Passwords do not match.  Please try again.');fields[1].focus();return false;}
return true;}
function displayOpStatusReg(msg)
{var sobj=document.getElementById("statusMsg");if(sobj!=null)
sobj.innerHTML=msg;}
function registerUser()
{if(validateReg()==false)
return false;document.forms.createUserForm.submit();}
var user=null;var groups=null;var defaultGroupOid=null;var currentGroup=null;var currentTopic=null;var currentPage=null;var mygroups=null;var myscrapbooks=null;var mypages=null;var myview=null;var usergroup=null;var pagedetail=null;var memberlist=null;var pagedetaillist=null;var addmember=null;var dimensions={totalHeight:470,totalWidth:185,titleHeight:65,listHeight:250,inputFieldHeight:55,sortFieldHeight:55};var pageDimensions=dimensions;pageDimensions.totalWidth+=10;var groupContextMenuOptions=[{name:'Rename',operation:'rename'},{name:"Manage Users",operation:'control_panel'}];var scrapbookContextMenuOptions=[{name:'Rename',operation:'rename'},{name:'Delete',operation:'delete'}];var pageContextMenuOptions=[{name:'Rename',operation:'rename'},{name:'Move',operation:'move'},{name:'Delete',operation:'delete'},{name:'View',operation:'edit'}];var systemColors=[new ColorSelection('presto blammo','#FEF1C5','#AD5450','#86C5CC','#000000','#FFFFFF','#000000'),new ColorSelection('garcia sola landscape','#FFFF00','#0000FF','#FFFFFF','#000000','#FFFFFF','#000000'),new ColorSelection('monochrome ice','#3D4650','#799E99','#326B63','#FFFFFF','#FFFFFF','#FFFFFF'),new ColorSelection('pulp fiction','#EDEB83','#677B54','#3B3D36','#000000','#FFFFFF','#FFFFFF'),new ColorSelection('tangled up in blue','#1764BF','#0F427E','#07213F','#FFFFFF','#FFFFFF','#FFFFFF'),new ColorSelection('sad dog','#979799','#34444B','#232D33','#FFFFFF','#FFFFFF','#FFFFFF'),new ColorSelection('grey goose','#83FFF4','#00B8FF','#0077FF','#000000','#FFFFFF','#FFFFFF'),new ColorSelection('little lake','#DD8E15','#97AA00','#70773B','#FFFFFF','#FFFFFF','#FFFFFF'),new ColorSelection('sonora desert','#D8C379','#E47400','#772600','#00000D','#000000','#FFFFFF'),new ColorSelection('garcia sola','#B8AF9C','#595441','#FFFFFF','#FFFFFF','#FFFFFF','#000000'),new ColorSelection('cool grays','#C6EDFF','#93B3BF','#62777E','#000000','#000000','#FFFFFF'),new ColorSelection('eastern shore','#CAC1B6','#CAAF8E','#7E7264','#FFFFFF','#FFFFFF','#FFFFFF'),new ColorSelection('eastern shore original','#CAC2B7','#779CC9','#656E7F','#FFFFFF','#FFFFFF','#FFFFFF'),new ColorSelection('aging fashionista','#FFF0C4','#83C6CC','#B15250','#000000','#000000','#FFFFFF'),new ColorSelection('jamba juice','#BDD63D','#60BC46','#FFDF04','#000000','#000000','#000000'),new ColorSelection('purps','#9197FF','#9360CC','#571A99','#FFFFFF','#FFFFFF','#FFFFFF'),new ColorSelection('scandinavian woodworking','#EDEBE2','#D8A554','#831111','#000000','#000000','#FFFFFF'),new ColorSelection('warm citrus pastels','#FDFB89','#FFBC80','#FF5D77','#000000','#000000','#FFFFFF'),new ColorSelection('cherry cheesecake','#F6E297','#B8111D','#4B1A1A','#000000','#000000','#FFFFFF')];var selectedColorScheme=systemColors[0];var mygroups_colors=null;var myscrapbooks_colors=null;var mypages_colors=null;var myview_colors=null;var serverTimestamp=null;var oneDay=1000*60*60*24;var oneWeek=oneDay*7;var oneMonth=oneDay*31;var dndSession=false;var preferencesDisplayed=false;function positionCopyright(loc)
{var h=loc;var iwh=dhtmlapi.getInsideWindowHeight();var obj=document.getElementById("copyright");if(h+25<iwh)
obj.style.top=(iwh-25)+"px";else
obj.style.top=h+"px";}
function profile()
{var container=document.getElementById("mainContainer");buildPreferences(container);loadUserPreferences();}
function logout()
{application.logoutUser(logoutCB);}
function logoutCB()
{location.href="index.jsp";}
function openHelpWindow()
{if(preferencesDisplayed==false)
util.openWindow('http://pikiwiki.com/help/questions/16/Walk+me+through+the+Group+Page..');else
util.openWindow('http://pikiwiki.com/help/questions/17/User+Preferences+Explained');}
function loadHomePage(userOid,ts,groupOid)
{loadColors();buildGroupView();serverTimestamp=ts;if(groupOid!=null)
defaultGroupOid=groupOid;application.getUserData(userOid,loadHomePageCB);positionCopyright(600);}
function loadHomePageCB(data)
{if(data.user==null){alert(data.fault);return false;}
var userdata=data.user;var groupdata=data.groups;user=User.createInstance(userdata);groups=Group.createGroupList(groupdata);groups=groups.sort(Group.sort);var uname=user.getEmailAddress();for(var i=0;i<groups.length;i++){if(uname==groups[i].getTitle()){var g=groups[i];groups.splice(i,1);groups.unshift(g);break;}}
try{var userColorScheme=user.getPreferences().getPreferenceValue("user.colorSelection");if(userColorScheme!=null){selectedColorScheme=ColorSelection.parse(userColorScheme);if(selectedColorScheme!=null){loadColors();mygroups.setColors(mygroups_colors);myscrapbooks.setColors(myscrapbooks_colors);mypages.setColors(mypages_colors);myview.setColors(myview_colors);setColorsPageDetail();setColorsGroupMember();}}}catch(e){;}
var lastLogin=user.getLastLogin();var lastLoginStr="";if(lastLogin!=null)
lastLoginStr+='Last Login: '+lastLogin.toLocaleDateString();obj=document.getElementById("username");obj.innerHTML="Logged in as: "+user.getEmailAddress();obj=document.getElementById("loginTimestamp");obj.innerHTML=lastLoginStr;var groupIdx=0;if(defaultGroupOid==null||defaultGroupOid<=0)
defaultGroupOid=groups[0].getOid();else{for(var i=0;i<groups.length;i++){if(groups[i].getOid()==defaultGroupOid){groupIdx=i;break;}}}
mygroups.setData(groups,groupIdx);var ts=null;application.retrieveGroupContents(user.getOid(),defaultGroupOid,ts,changeGroup);}
function loadColors()
{mygroups_colors={titleColor:'purple',subtitleColor:'black',backgroundColor:'#FFFFFF',textColor:'#000000',selectedBackgroundColor:selectedColorScheme._colors[0],selectedTextColor:selectedColorScheme._colors[3],footerColor:'#FFFFFF'};myscrapbooks_colors={titleColor:'purple',subtitleColor:'black',backgroundColor:selectedColorScheme._colors[0],textColor:selectedColorScheme._colors[3],selectedBackgroundColor:selectedColorScheme._colors[1],selectedTextColor:selectedColorScheme._colors[4],footerColor:selectedColorScheme._colors[0]};mypages_colors={titleColor:'purple',subtitleColor:'black',backgroundColor:selectedColorScheme._colors[1],textColor:selectedColorScheme._colors[4],selectedBackgroundColor:selectedColorScheme._colors[2],selectedTextColor:selectedColorScheme._colors[5],footerColor:selectedColorScheme._colors[1]};myview_colors={titleColor:'purple',subtitleColor:'black',backgroundColor:selectedColorScheme._colors[2],textColor:selectedColorScheme._colors[5],selectedBackgroundColor:selectedColorScheme._colors[2],selectedTextColor:selectedColorScheme._colors[5],footerColor:selectedColorScheme._colors[2]};}
function buildGroupView()
{var mc=document.getElementById("mainContainer");if(document.body.offsetWidth-794>=0){var leftAdj=(document.body.offsetWidth-794)/2;mc.style.left=leftAdj+"px";}
var h=dimensions.totalHeight;var w=(dimensions.totalWidth*4)+50;var str='';str+='<div style="position:absolute;height:18px;width:22px;top:0px;left:0px;">'+'  <img src="images/cornertopleft.gif" height="18" width="22">'+'</div>'+'<div style="position:absolute;height:18px;width:'+w+'px;top:0px;left:22px;background-color:#E4EDF2;"></div>'+'<div style="position:absolute;height:18px;width:22px;top:0px;left:'+(w+22)+'px;">'+'  <img src="images/cornertopright.gif" height="18" width="22">'+'</div>';str+='<div id="listContainer" style="position:absolute;top:18px;left:0px;height:'+h+'px;width:'+(w+44)+'px;background-color:#E4EDF2;"></div>';str+='<div style="position:absolute;height:18px;width:22px;top:'+(5+h)+'px;left:0px;">'+'  <img src="images/cornerbottomleft.gif" height="18" width="22">'+'</div>'+'<div style="position:absolute;height:18px;width:'+w+'px;top:'+(5+h)+'px;left:22px;background-color:#E4EDF2;"></div>'+'<div style="position:absolute;height:18px;width:22px;top:'+(5+h)+'px;left:'+(w+22)+'px;">'+'  <img src="images/cornerbottomright.gif" height="18" width="22">'+'</div>';str+='<div style="position:absolute;top:'+(h-30)+'px;left:35px;">'+
util.createPngHtml('manageGroupButton','images/homepage/manageusersnormal.png','manage users',28,150)+'</div>';mc.innerHTML=str;var obj=document.getElementById('manageGroupButton');obj.style.cursor='pointer';obj.onmouseover=manageGroupCB;obj.onmouseout=manageGroupCB;obj.onmousedown=manageGroupCB;obj.onmouseup=manageGroupCB;obj=document.getElementById('listContainer');obj.appendChild(buildGroupLists(dimensions));}
function buildGroupLists(dimensions)
{var container=document.createElement('div');container.style.position='relative';container.style.height=dimensions.totalHeight+'px';container.style.width=((dimensions.totalWidth*4)+10)+'px';container.style.top='0px';container.style.left='20px';container.style.backgroundColor='#E4EDF2';mygroups=ListView.createInstance('My Groups',"images/homepage/groups_icon.gif",dimensions,mygroups_colors,false,groupCallback);mygroups.setInputFields('Create a Group','+');mygroups.setContextMenu(groupContextMenuOptions);myscrapbooks=ListView.createInstance('Scrapbooks',"images/homepage/scrapbooks_icon.gif",dimensions,myscrapbooks_colors,false,topicCallback);myscrapbooks.setInputFields('Create a Scrapbook','+');myscrapbooks.setContextMenu(scrapbookContextMenuOptions);mypages=ListView.createInstance('Pages',"images/homepage/pages_icon.gif",dimensions,mypages_colors,false,pageCallback,PageX.sortRecordSet);mypages.setInputFields('Create a Page','+');mypages.setSorting(true);mypages.setContextMenu(pageContextMenuOptions);myview=PageDetail.createInstance('Page Summary',pageDimensions,myview_colors,pageCallback);mygroups.toHtml(container,0,5);myscrapbooks.toHtml(container,0,(dimensions.totalWidth*1)+5);mypages.toHtml(container,0,(dimensions.totalWidth*2)+5);myview.toHtml(container,0,(dimensions.totalWidth*3)+5);buildGroupMemberList(container,dimensions);buildPageDetail(container,dimensions);return container;}
function buildPageDetail(container,dim)
{var h=dim.titleHeight+dim.listHeight+dim.inputFieldHeight;pagedetail=document.createElement('div');pagedetail.style.position='absolute';pagedetail.style.display='none';pagedetail.style.height=h+'px';pagedetail.style.width=((dim.totalWidth*3)+4)+'px';pagedetail.style.top='0px';pagedetail.style.left='0px';container.appendChild(pagedetail);var d1=document.createElement('div');d1.style.position='absolute';d1.style.height=dim.titleHeight+'px';d1.style.width=(dim.totalWidth*3)+'px';d1.style.textAlign='center';d1.style.top='0px'
d1.style.left='0px';d1.style.backgroundColor='#E4EDF2';pagedetail.appendChild(d1);var spn=document.createElement("span");spn.id='pageDetailTitle';spn.innerHTML='Page Detail';spn.className='listViewTitle';spn.style.color=myview_colors.titleColor;d1.appendChild(spn);var d3=document.createElement('div');d3.id='pageDetailBody';d3.style.position='absolute';d3.style.height='20px';d3.style.width=(dim.totalWidth*3)+'px';d3.style.top=dim.titleHeight+'px';d3.style.left='5px';d3.style.backgroundColor=myview_colors.selectedBackgroundColor;pagedetail.appendChild(d3);var key=document.createElement('span');key.id='pageDetailKey';key.width=150;key.height=16;key.className='cellData';key.style.position='absolute';key.style.top='2px';key.innerHTML='* - page creator';key.style.left=((dim.totalWidth*3)-150)+'px';key.style.backgroundColor=myview_colors.selectedBackgroundColor;d3.appendChild(key);var img=document.createElement('input');img.type='image';img.src='images/closeicon.png';img.width=16;img.height=16;img.style.position='absolute';img.style.top='2px';img.style.left=((dim.totalWidth*3)-18)+'px';img.style.cursor='pointer';img.onclick=closePageDetail;d3.appendChild(img);var d2=document.createElement('div');d2.id='pageDetailContainer';d2.style.position='absolute';d2.style.height=(dim.listHeight-20)+'px';d2.style.width=(dim.totalWidth*3)+'px';d2.style.top=(dim.titleHeight+20)+'px'
d2.style.left='5px';d2.style.backgroundColor=myview_colors.selectedBackgroundColor;d2.style.border='solid blue 0px';d2.style.color=myview_colors.textColor;pagedetail.appendChild(d2);buildPageDetailList(d2);}
function setColorsPageDetail()
{var e=document.getElementById("pageDetailContainer");var f=document.getElementById("pageDetailBody");var g=document.getElementById("pageDetailKey");if(e!=null){e.style.backgroundColor=myview_colors.selectedBackgroundColor;e.style.color=myview_colors.textColor;}
if(g!=null){g.style.backgroundColor=myview_colors.selectedBackgroundColor;g.style.color=myview_colors.textColor;}
if(f!=null)f.style.backgroundColor=myview_colors.selectedBackgroundColor;}
function setColorsGroupMember()
{var e=document.getElementById("memberAccessHeader");var f=document.getElementById("memberAccessContainer");var g=document.getElementById("memberAccessFooter");var h=document.getElementById("memberAccessKey");if(e!=null)e.style.backgroundColor=mygroups_colors.selectedBackgroundColor;if(f!=null){f.style.backgroundColor=mygroups_colors.selectedBackgroundColor;f.style.color=mygroups_colors.selectedTextColor;}
if(g!=null){g.style.backgroundColor=mygroups_colors.selectedBackgroundColor;g.style.color=mygroups_colors.selectedTextColor;}
if(h!=null){h.style.backgroundColor=mygroups_colors.selectedBackgroundColor;h.style.color=mygroups_colors.selectedTextColor;}}
function buildPageDetailList(container)
{var cls="cellData";var clsHdr="cellTitle";var clip=true;var cols=new Array();cols[cols.length]=new ListColumn("member","Member",cls,clsHdr,"30%",null,null);cols[cols.length]=new ListColumn("viewed","Last Viewed",cls,clsHdr,"35%",null,null);cols[cols.length]=new ListColumn("edited","Last Edited",cls,clsHdr,"35%",null,null);pagedetaillist=List.createInstance(cols,clip);pagedetaillist.toHtml(container);}
function populatePageDetailList(pageData)
{if(pageData==null||pageData.status!="ok"){alert("Sorry, page details are not available");return false;}
var pvList=PageView.processViewDetails(pageData.details);pagedetaillist.setData(pvList);pagedetail.style.display='block';mypages.disableField("sort");}
function buildGroupMemberList(container,dim)
{var h=dim.titleHeight+dim.listHeight+dim.inputFieldHeight;usergroup=document.createElement('div');usergroup.style.position='absolute';usergroup.style.display='none';usergroup.style.height=h+'px';usergroup.style.width=(dim.totalWidth*3)+'px';usergroup.style.top=0+'px';usergroup.style.left=myscrapbooks.getDimensions().left+'px';container.appendChild(usergroup);var d1=document.createElement('div');d1.style.position='absolute';d1.style.height=dim.titleHeight+'px';d1.style.width=(dim.totalWidth*3)+'px';d1.style.textAlign='center';d1.style.top='0px'
d1.style.left='0px';d1.style.backgroundColor='#E4EDF2';var spn=document.createElement("span");spn.id='groupMemberTitle';spn.innerHTML='Members of Group';spn.className='listViewTitle';spn.style.color=mygroups_colors.titleColor;d1.appendChild(spn);usergroup.appendChild(d1);var dx=document.createElement('div');dx.id='memberAccessHeader';dx.style.position='absolute';dx.style.height='20px';dx.style.width=(dim.totalWidth*3)+'px';dx.style.top=dim.titleHeight+'px';dx.style.left='0px';dx.style.backgroundColor=mygroups_colors.selectedBackgroundColor;usergroup.appendChild(dx);var img=document.createElement('input');img.type='image';img.src='images/closeicon.png';img.width=16;img.height=16;img.style.position='absolute';img.style.top='2px';img.style.left=((dim.totalWidth*3)-18)+'px';img.style.cursor='pointer';img.onclick=manageGroupCB;dx.appendChild(img);var key=document.createElement('span');key.id='memberAccessKey';key.width=150;key.height=16;key.className='cellData';key.style.position='absolute';key.style.top='2px';key.innerHTML='* - group owner';key.style.left=((dim.totalWidth*3)-150)+'px';key.style.backgroundColor=myview_colors.selectedBackgroundColor;dx.appendChild(key);var d2=document.createElement('div');d2.id='memberAccessContainer';d2.style.position='absolute';d2.style.height=(dim.listHeight-20)+'px';d2.style.width=((dim.totalWidth*3)-5)+'px';d2.style.top=(dim.titleHeight+20)+'px'
d2.style.left='0px';d2.style.paddingLeft='5px';d2.style.backgroundColor=mygroups_colors.selectedBackgroundColor;d2.style.color=mygroups_colors.selectedTextColor;d2.style.overflowX='hidden';d2.style.overflowY='hidden';usergroup.appendChild(d2);buildMemberList(d2);var d3=document.createElement('div');d3.id='memberAccessFooter';d3.style.position='absolute';d3.style.height=dim.inputFieldHeight+'px';d3.style.width=(dim.totalWidth*3)+'px';d3.style.top=(dim.titleHeight+dim.listHeight)+'px';d3.style.left='0px';d3.style.backgroundColor=mygroups_colors.selectedBackgroundColor;d2.style.color=mygroups_colors.selectedTextColor;d3.style.border='solid blue 0px';usergroup.appendChild(d3);var d4=document.createElement("table");d4.id='addGroupMember';d4.style.visibility='hidden';d3.appendChild(d4);var tr=d4.insertRow(0);var td=tr.insertCell(0);td=tr.insertCell(1);spn=document.createElement('span');spn.className='listViewSubtitle';spn.innerHTML='Add New Member';td.appendChild(spn);td=tr.insertCell(2);td.colspan=3;tr=d4.insertRow(1);td=tr.insertCell(0);var fi=document.createElement('span');fi.className='formItem';fi.innerHTML='&nbsp;&nbsp;&nbsp;Email Address:&nbsp;&nbsp;';td.appendChild(fi);td=tr.insertCell(1);var inp=document.createElement('input');inp.type='text';inp.id='AddMemberName';inp.value='';inp.style.backgroundColor='lightblue';td.appendChild(inp);td=tr.insertCell(2);addmember=AddButton.createInstance();var abContainer=addmember.getContainer();abContainer.id='addMemberButton';abContainer.className='listViewSubtitle';abContainer.onclick=addMemberCB;td.appendChild(abContainer);}
function buildMemberList(container,mlist,isOwner)
{var cls="cellData";var clsHdr="cellTitle";var clsAction="cellAction";var clip=true;var cols=new Array();cols[cols.length]=new ListColumn("email","Email",cls,clsHdr,"45%",null,null);cols[cols.length]=new ListColumn("updates","Updates",cls,clsHdr,"20%",null,null);cols[cols.length]=new ListColumn("memberstatus","Member Status",cls,clsHdr,"20%",null,null);cols[cols.length]=new ListColumn("delete","",clsAction,cls,"15%",handleMember,"delete");memberlist=List.createInstance(cols,clip);memberlist.toHtml(container);}
function groupHelpCB(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var eventType=evt.type;if(target.id=='groupHelp'){if(eventType=='mouseover'){util.setPngImage(target,'images/homepage/questionhover.png');return false;}
else if(eventType=='mouseout'){util.setPngImage(target,'images/homepage/question.png');return false;}
else if(eventType=='mousedown'){util.setPngImage(target,'images/homepage/questionpressed.png');return false;}
else if(eventType=='mouseup'){util.setPngImage(target,'images/homepage/question.png');}
else if(eventType=='click'){util.openWindow('help.htm');}}}
function groupCallback(operation,grp)
{if(operation=='select'){var ts=null;application.retrieveGroupContents(user.getOid(),grp.getOid(),ts,changeGroup);}
else if(operation=='new'){newListItem('group','Group');}
else if(operation=='rename'){if(user.getOid()!=grp.getOwner()){alert("Only the owner can rename this group.");return;}
renameListItem(grp,'group');}
else if(operation=='control_panel'){manageGroup();}}
function changeGroup(oid,updatedGroupData)
{var group=Group.getGroup(groups,oid);if(updatedGroupData!=null)
group.update(updatedGroupData);var list=group.getTopics(true);var bogus_topic=new Topic(-1,-1,"All",-1);list[list.length]=bogus_topic;currentGroup=oid;currentTopic=list[0].getOid();myscrapbooks.setData(list,0);myscrapbooks.setSubtitle('in "'+group.getName()+'"');changeTopicCb(oid,null,currentTopic)
updateMemberList(group);}
function createGroup(groupTitle)
{var invalid_characters=/[\<\>]/g;var defaultScrapbook="Loose Pages";var groupType="public";var perms=15;var pwd="";if(groupTitle==""){alert("A group name needs to be specified to create a group");return false;}
if(invalid_characters.test(groupTitle)==true){alert("A group name cannot contain '<>' characters");return false;}
for(var i=0;i<groups.length;i++){if(groups[i].getName()==groupTitle){alert("A group with this name already exists.");return false;}}
var newGroup=new Group(-1,groupTitle,user.getOid(),null,null,groupType,pwd,perms,createGroupCb);application.createGroup(user.getOid(),groupTitle,defaultScrapbook,groupType,perms,pwd,createGroupCb,newGroup);}
function createGroupCb(data,newGroup)
{if(data==null||data.groupOid==-1){alert("Error: group "+groupTitle+" was not created");return;}
newGroup._oid=data.groupOid;newGroup._creation=new Date(parseInt(data.creationDate));newGroup._modification=new Date(parseInt(data.modificationDate));groups[groups.length]=newGroup;groups=groups.sort(Group.sort);var idx=0;for(var i=0;i<groups.length;i++){if(groups[i].getOid()==newGroup.getOid()){idx=i;break;}}
mygroups.setData(groups,idx);var ts=null;application.retrieveGroupContents(user.getOid(),newGroup._oid,ts,changeGroup);}
function renameGroupCb(data)
{if(data.oid==-1){alert("An error occurred while trying to rename this scrapbook.");}
else{var group=Group.getGroup(groups,data.oid);group.setTitle(data.name);if(data.oid==currentGroup)
{myscrapbooks.setSubtitle('in "'+group.getName()+'"');var sel=mygroups.getSelectedItem();var list=groups;mygroups.setData(list,sel);}}}
function createGroupURL()
{var groupOid=currentGroup;application.createURL(groupOid,null);}
function createGroupURLResponse(data)
{var url="url.htm?url="+data;var features="resizable,width=600,height=200";var win=window.open(url,"urlWindow",features);}
function topicCallback(operation,topic)
{if(operation=='select'){var modificationDate=Group.getGroup(groups,currentGroup).getModificationDate();application.retrieveGroupContents(user.getOid(),currentGroup,modificationDate,changeTopicCb,topic.getOid());}
else if(operation=='new'){newListItem('topic','Scrapbook');}
else if(operation=='rename'){if(topic.getOid()==-1)
alert("Please select an individual scrapbook to rename");else{var group=Group.getGroup(groups,currentGroup);var groupOid=currentGroup;renameListItem(topic,'topic');}}
else if(operation=='delete'){if(topic.getOid()==-1)
alert("Please select an individual scrapbook to delete");else if(confirm("Deleting a scrapbook will delete ALL pages in that scrapbook.\n"+"Do you really want to delete the scrapbook "+topic.getTitle()+" ?"))
{application.deleteTopic(currentGroup,topic.getOid(),deleteTopicCb);}
else
return;}
return;}
function changeTopicCb(groupOid,updatedGroupData,topicOid)
{var group=Group.getGroup(groups,groupOid);var list=null;var topic=group.getTopic(topicOid);var subtitle=null;currentTopic=topicOid;if(updatedGroupData!=null)
group.update(updatedGroupData);if(topicOid==-1){list=group.getPages(topicOid,Group.FILTER_PAGES_ALL);subtitle="All";}
else{list=topic.getPages();subtitle=topic.getName();}
mypages.setData(list,0);var page=mypages.getSelectedItem();mypages.setSubtitle('in "'+subtitle+'"');changePage(page);}
function createTopicCb(data)
{if(data.oid!=-1)
{var group=Group.getGroup(groups,data.groupOid);var nt=new Topic(data.oid,data.groupOid,data.name,data.parentOid);group.addTopic(nt);if(data.groupOid==currentGroup)
{var list=group.getTopics(true);var idx=0;for(var i=0;i<list.length;i++){if(list[i].getOid()==nt.getOid()){idx=i;break;}}
var bogus_topic=new Topic(-1,-1,"All",-1);list[list.length]=bogus_topic;myscrapbooks.setData(list,idx);changeTopicCb(group.getOid(),null,nt.getOid());}}}
function renameTopicCb(data)
{if(data.oid==-1){alert("An error occurred while trying to rename this scrapbook.");}
else{var group=Group.getGroup(groups,data.groupOid);var topic=group.getTopic(data.oid);topic.setTitle(data.name);if(data.oid==currentTopic)
{mypages.setSubtitle('in "'+topic.getName()+'"');var sel=myscrapbooks.getSelectedItem();var list=group.getTopics(true);var bogus_topic=new Topic(-1,-1,"All",-1);list[list.length]=bogus_topic;myscrapbooks.setData(list,sel);}}}
function deleteTopicCb(data)
{var group=Group.getGroup(groups,data.groupOid);var topic=group.deleteTopic(data.oid);if(data.groupOid==currentGroup)
changeGroup(currentGroup,null);}
function pageCallback(operation,p)
{var group=Group.getGroup(groups,currentGroup);if(operation=='share'){createLink(group,p);}
else if(operation=='properties'){if(pagedetail.style.display=='block'){return;}
mypages.setOverflow("hidden");myscrapbooks.setOverflow("hidden");mygroups.setOverflow("hidden");document.getElementById('pageDetailTitle').innerHTML="Page Details for: "+p.getTitle();application.getViewDetails(user.getOid(),currentGroup,p.getOid(),populatePageDetailList);}
else if(operation=='new'){if(currentTopic==-1){alert("A scrapbook must be selected before a page can be created");return;}
newListItem('page','Page');}
else if(operation=='select'){changePage(p);}
else if(operation=="edit"||operation=='launch'||operation=="editro"){var title=p.getTitle();var url="editor.jsp?userOid="+user.getOid()+"&pageOid="+p.getOid()+"&groupOid="+currentGroup+"&topicOid="+p.getTopicOid()+"&title="+encodeURIComponent(title,true)+"&mode=new";var features="resizable,scrollbars,width=700,height=770";var win=window.open(url,"",features);}
else if(operation=="delete"){if(confirm("Do you really want to delete the page "+p.getTitle()+" ???"))
{application.deletePage(user.getOid(),p.getGroupOid(),p.getTopicOid(),p.getOid(),p.getTitle(),deletePageCb);}
else
return;}
else if(operation=='lock'){var ro=p.getReadOnly();var new_ro=(ro==true)?false:true;application.setPageReadOnly(currentGroup,currentTopic,p.getOid(),new_ro,setPageReadOnlyCb);}
else if(operation=='move'){moveListItem(p,group,"page");}
else if(operation=="rename"){renameListItem(p,'page');}}
function setPageReadOnlyCb(data)
{var group=Group.getGroup(groups,data.groupOid);var topic=group.getTopic(data.topicOid);var p=topic.getPage(data.pageOid);var status=data.status;var ro=(data.readonly=="true"||data.readonly==true)?true:false;;myview.setReadOnly(ro);p.setReadOnly(ro);}
function changePage(p)
{myview.setData(p);var name=(p==null)?"":p.getName();myview.setSubtitle('of "'+name+'"');currentPage=(p==null)?-1:p.getOid();}
function renamePageCb(data)
{if(data.oid==-1)
alert("page rename failed -- revert back the title!");else{var group=Group.getGroup(groups,data.groupOid);var topic=group.getTopic(data.topicOid);var p=topic.getPage(data.oid);var list=topic.getPages();p.setTitle(data.name);mypages.setData(list,null,p);myview.setSubtitle('of "'+data.name+'"');}}
function deletePageCb(data)
{var group=Group.getGroup(groups,data.groupOid);var topic=group.getTopic(data.topicOid);topic.deletePage(data.oid);var list=group.getPages(currentTopic,Group.FILTER_PAGES_ALL);mypages.setData(list,0);changePage(mypages.getSelectedItem());}
function movePageCb(data)
{var group=Group.getGroup(groups,data.groupOid);var topic=group.getTopic(data.topicOid);var p=topic.deletePage(data.oid);var newTopic=group.getTopic(data.newTopicOid);p._topic=newTopic.getOid();newTopic.addPage(p);if(data.topicOid==currentTopic){var list=topic.getPages();mypages.setData(list,0);changePage(((list==null)?null:list[0]));}}
function createPageURL()
{var str=application.createURL(currentGroup,currentPage);var url="url.htm?url="+str;var features="resizable,width=600,height=200";var win=window.open(url,"urlWindow",features);}
function closePageDetail()
{pagedetail.style.display='none';mypages.enableField("sort");mypages.setOverflow("scroll");myscrapbooks.setOverflow("scroll");mygroups.setOverflow("scroll");}
function newPage(title)
{var group=Group.getGroup(groups,currentGroup);var topic=currentTopic;var url="editor.jsp?userOid="+user.getOid()+"&groupOid="+currentGroup+"&topicOid="+topic+"&rw=true"+"&new=true"+"&mode=new";if(title!=null&&title!="")
url+="&title="+encodeURIComponent(title);var features="resizable,scrollbars,width=700,height=770";var win=window.open(url,"",features);}
function updatePageInformation(groupOid,topicOid,pageOid)
{var group=Group.getGroup(groups,groupOid);var modificationDate=group.getModificationDate();var userData={groupOid:groupOid,topicOid:topicOid,pageOid:pageOid};application.retrieveGroupContents(user.getOid(),groupOid,modificationDate,updatePageInformationCb,userData);}
function updatePageInformationCb(groupOid,updatedGroupData,userData)
{if(groupOid!=currentGroup)
return;var group=Group.getGroup(groups,groupOid);var list=null;if(updatedGroupData!=null)
group.update(updatedGroupData);if(currentTopic==-1||currentTopic==userData.topicOid)
{if(currentTopic==-1){list=group.getPages(-1,Group.FILTER_PAGES_ALL);}
else{var topic=group.getTopic(userData.topicOid);list=topic.getPages();}
mypages.setData(list,0);changePage(mypages.getSelectedItem());}}
function manageGroupCB(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var eventType=evt.type;var obj=document.getElementById('manageGroupButton');if(eventType=='mouseover'){util.setPngImage(obj,'images/homepage/manageusershover.png');return false;}
else if(eventType=='mouseout'){util.setPngImage(obj,'images/homepage/manageusersnormal.png');return false;}
else if(eventType=='mousedown'){util.setPngImage(obj,'images/homepage/manageuserspressed.png');return false;}
else if(eventType=='mouseup'){util.setPngImage(obj,'images/homepage/manageusersnormal.png');}
manageGroup();}
function addMemberCB()
{if(addmember!=null)
addmember.animate(false);setTimeout("addMemberCB2()",500);}
function addMemberCB2()
{setTimeout("addMemberCB3()",500);newGroupMember();}
function addMemberCB3()
{if(addmember!=null)
addmember.animate(true);}
function manageGroup()
{if(pagedetail.style.display=='block'){return;}
if(usergroup.style.display=='none'){mypages.setOverflow("hidden");myscrapbooks.setOverflow("hidden");usergroup.style.display='block';var group=Group.getGroup(groups,currentGroup);updateMemberList(group);mypages.disableField("sort");}
else{mypages.setOverflow("scroll");myscrapbooks.setOverflow("scroll");usergroup.style.display='none';mypages.enableField("sort");}}
function updateMemberList(group)
{var ownerOid=group.getOwner();var userOid=user.getOid();var isOwner=(ownerOid==userOid);var obj=document.getElementById('addGroupMember');if(isOwner==null||isOwner!=true){obj.style.visibility='hidden';memberlist.disableColumn(2);memberlist.disableColumn(3);}
else{obj.style.visibility='visible';memberlist.enableColumn(2);memberlist.enableColumn(3);}
memberlist.setData(group.getMemberList(),group);obj=document.getElementById('groupMemberTitle');obj.innerHTML='Members of Group: '+group.getName();}
function handleMember(list,row,item,data)
{var group=Group.getGroup(groups,currentGroup);if(data=="delete"){var answer=confirm("Do you really want to delete this member?");if(answer){application.deleteGroupMember(currentGroup,item._oid,Application.noop);list.deleteRow(row);}}
else if(data=="edit"){var url='editMember.jsp?oid='+item._oid+'type='+item._type+'&name='+item._value+'&permissions='+item._permissions+'&updates='+'weekly'+'&rowIdx='+row;var features="height=400,width=300,resizable";var win=window.open(url,"editMember",features);}}
function newGroupMember()
{var typ=Member.TYPE_EMAIL;var name=document.getElementById("AddMemberName").value;var err=util.validEmailAddress2(name);if(err!=null)
{alert(err+"\nPlease enter a valid email address.");return false;}
var writeBox=true;var permissions=2;if(writeBox)
permissions+=13;var p=""+permissions;application.createGroupMember(user.getOid(),currentGroup,typ,name,permissions,newGroupMemberCb);}
function newGroupMemberCb(data)
{if(data.oid==-1){var msg="An error occurred while trying to add a new group member.";if(data.fault&&data.fault.detail)
msg+="\n"+data.fault.detail;alert(msg);return false;}
else{var gm=getGroupMember(data.member);if((gm!=null)&&(memberlist!=null))
{memberlist.addRow(gm);}
document.getElementById("AddMemberName").value="";return true;}}
function updateMember(oid,typ,name,permissions,status,update,rowIdx)
{application.updateGroupMember(currentGroup,oid,typ,name,permissions,status,update,updateMemberCb,rowIdx);}
function updateMemberCb(data,rowIdx)
{if(data.oid!=-1){gm=getGroupMember(data.member);if((gm!=null)&&(memberlist!=null))
memberlist.updateRow(rowIdx,gm);return true;}
else
return false;}
function getGroupMember(data)
{var idx=data.indexOf("<member>");var end_idx=data.indexOf("</member>",idx+8);var xmlstr=data.substring(idx,end_idx+9);var m=Member.createInstance(xmlstr);return m;}
function createLink(group,page)
{var options=["okButton","height=200","width=450"];var dlg=ModalDialog.createInstance(options);var disabled=(page.getReadOnly()==true)?"disabled":"";var s='<table width="90%">'+'<col width="10%"><col width="80%"><col width="10%">'+'<tr><td></td><td>'+'    <span class=normalText>To share this page, ';if(dhtmlapi.isIE)
s+='<a href="javascript:parent.copyLink()">copy</a>';else
s+='copy';s+=' this link into your E-mail and send it.</span>'+'</td><td><td></tr>'+'<tr><td></td><td>'+'  <input id=theLink class=normalText style="border:1px solid grey;" maxLength=100 size=65 value="... processing ..." onclick="parent.highlightLink()" readonly="true"></td><td></td></tr>'+'<tr style="height:10px;"><td colspan=3><input type=hidden id=theLinkAlternative value=""></td></tr>'+'<tr style="height:10px;"><td colspan=3></td></tr>'+'<tr style="vertical-align:middle;"><td></td>'+'    <td class=normalText>'+'        <span class=normalText><input type=checkbox id=allowEditing onclick="parent.switchLink()" '+disabled+'>Allow recipients to edit this page.</span>'+'    </td><td></td></tr>'+'</table>';dlg.render(s);application.createURL(group.getOid(),page.getOid(),false,createLinkCB);}
function highlightLink()
{var obj=ModalDialog.getElementById("theLink");obj.focus();obj.select();}
function copyLink()
{var obj=ModalDialog.getElementById('theLink');var url=obj.value;window.clipboardData.setData('Text',url);}
function switchLink()
{var obj=ModalDialog.getElementById("theLink");var alt=ModalDialog.getElementById("theLinkAlternative");var tmp=obj.value;obj.value=alt.value;alt.value=tmp;}
function createLinkCB(urls)
{var obj=ModalDialog.getElementById("theLink");var alt=ModalDialog.getElementById("theLinkAlternative");var len=urls.url.length;obj.maxlength=len+5;obj.value=urls.url_ro;alt.value=urls.url;}
function newListItem(category,title)
{var options=["height=130","width=350"];var dlg=ModalDialog.createInstance(options,handleListItem,handleListItem);dlg.setAttribute('category',category);dlg.setAttribute('operation','new');var s='<div class=largeText style="text-align:center;margin-left:0;margin-right:0;width:auto;font-weight:bold;">Create a '+title+'</div>';if(category=='page'){s+='<span class=smallText style="color:gray;text-align:center;">(specifying the page title at this point is optional)</span><br />';}
else
s+='<br/>';s+='<span class=normalText>New '+title+':&nbsp;</span><input class=normalText type=text id=newTitle size=30>';dlg.render(s);}
function renameListItem(obj,category)
{var name=obj.getTitle();var options=["height=130","width=350"];var dlg=ModalDialog.createInstance(options,handleListItem,handleListItem);dlg.setAttribute('category',category);dlg.setAttribute('operation','rename');dlg.setAttribute('groupOid',currentGroup);dlg.setAttribute('oid',obj.getOid());var s='<span class=normalText>Rename '+name+'</span><br>'+'<span class=normalText>To:&nbsp;</span><input class=normalText type=text id=renameTo size=30>';dlg.render(s);}
function moveListItem(data,group,category)
{var options=["height=130","width=350"];var dlg=ModalDialog.createInstance(options,handleListItem,handleListItem);dlg.setAttribute('category',category);dlg.setAttribute('operation','move');var s=null;if(category=='page'){var page=data;var pageTopicOid=page.getTopicOid();var list=group.getTopics(true);var topic=group.getTopic(pageTopicOid);s='<table border=0 align=center>'+'<tr><td align=center>'+'  <span class=normalText>Move '+page.getName()+'&nbsp;from&nbsp;<b>'+topic.getName()+'</b></span>'+'</td></tr>'+'<tr><td align=center>'+' <span class=normalText>into:&nbsp;</span><select class=normalText id=moveItemSelect>';for(var i=0;i<list.length;i++){if(list[i].getOid()==topic.getOid())
continue;s+='<option value="'+list[i].getOid()+'">'+list[i].getName()+'</option>';}
s+='</select></td></tr></table>';dlg.setAttribute('pageOid',page.getOid());dlg.setAttribute('groupOid',currentGroup);}
dlg.render(s);}
function handleListItem(dlg,response)
{var obj=document.body;var operation=dlg.getAttribute('operation');if(response=="ok")
{var group=Group.getGroup(groups,currentGroup);var topic=group.getTopic(currentTopic);var name=null;var category=dlg.getAttribute('category');if(operation=='new'){name=dlg.getElementValue('newTitle');if(category=='page'){newPage(name);}
else if(category=='topic'){var groupOid=currentGroup;var parentOid=0
if(name==null||name==""){alert("A title must be specified for the scrapbook for it to be created.");return false;}
var invalid_characters=/[\<\>]/g;if(invalid_characters.test(name)==true){alert("A scrapbook cannot contain '<>' characters");return false;}
application.createTopic(name,groupOid,parentOid,createTopicCb);}
else if(category=='group'){createGroup(name);}}
else if(operation=='rename'){name=dlg.getElementValue('renameTo');var groupOid=parseInt(dlg.getAttribute('groupOid'));var topicOid=parseInt(dlg.getAttribute('oid'));if(category=='topic'){application.renameTopic(groupOid,topicOid,name,renameTopicCb);}
else if(category=='page'){var userOid=user.getOid();var pageOid=parseInt(dlg.getAttribute('oid'));var groupOid=parseInt(dlg.getAttribute('groupOid'));group=Group.getGroup(groups,groupOid);var pg=group.getPage(pageOid);application.renamePage(userOid,groupOid,pg.getTopicOid(),pageOid,name,renamePageCb);}
else if(category=='group'){var userOid=user.getOid();var groupOid=parseInt(dlg.getAttribute('groupOid'));group=Group.getGroup(groups,groupOid);application.renameGroup(userOid,groupOid,name,renameGroupCb);}}
else if(operation=='move'){name=dlg.getElementValue("moveItemSelect");if(category=='page'){var pageOid=parseInt(dlg.getAttribute('pageOid'));var groupOid=parseInt(dlg.getAttribute('groupOid'));group=Group.getGroup(groups,groupOid);var pg=group.getPage(pageOid);var newTopic=group.getTopic(name);application.movePage(userOid,groupOid,pg.getTopicOid(),newTopic.getOid(),pageOid,movePageCb);}}}}
function setUserPreference(name,value)
{user.setPreference(name,value);var xmlstr=user.getPreferences().toXmlString();application.updateUserPreferences(user.getOid(),xmlstr,updateUserPreferencesCb);}
function updateUserPreferencesCb(data)
{}
function releaseMe(userOid,groupOid,pageOid,lockId,cb)
{if(cb==true){application.releasePageLock(userOid,groupOid,pageOid,lockId,Application.noop);}
else{var f="releaseMe("+userOid+", "+groupOid+", "+pageOid+", "+lockId+", true)";setTimeout(f,0);}}
function enableDNDSession()
{dndSession=true;}
function isDNDSession()
{return dndSession;}
function helpMe(e,moniker)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var evt=window.event;var clientX=evt.clientX;var clientY=evt.clientY;var scroll=dhtmlapi.getPageScroll();var obj=document.createElement('div');obj.id='helptext';obj.className='normalText';obj.style.backgroundColor='yellow';obj.style.cursor='pointer';obj.style.position='absolute';obj.style.top=(scroll.scrollY+clientY+10)+'px';obj.style.left='60px';obj.style.width="175px";obj.innerHTML="<p>Maximum image size allows you to specify the size of the image that is stored on the server. Larger images sizes of course take more space to store and take longer to download, but will provide better resolution.</p>";obj.onmouseout=helpClose;document.body.appendChild(obj);}
function helpClose(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);var obj=document.getElementById("helptext");document.body.removeChild(obj);}
function buildPreferences(container)
{preferencesDisplayed=true;container.innerHTML="";var str='<table align=center width="75%" style="border:1px solid lightgrey;">'+'<col width="30%"><col width="22%"><col width="48%">'+'<tr>'+'    <td><span class=normalText>First Name:</span></td>'+'    <td colspan=2><input id=firstName class=normalText type=text value=""></td>'+'</tr>'+'<tr>'+'    <td><span class=normalText>Last Name:</span></td>'+'    <td colspan=2><input id=lastName class=normalText type=text value=""></td>'+'</tr>'+'<tr>'+'    <td><span class=normalText>Email Address:</span></td>'+'    <td colspan=2><span id=emailAddress class=normalText></span></td>'+'</tr>'+'<tr><td><span class=normalText>Email me about changes:</span></td>'+'    <td colspan=2><select id="emailUpdates">'+'          <option value="15 minutes">Every 15 minutes</option>'+'          <option value="hourly">Hourly</option>'+'          <option value="daily">Daily</option>'+'          <option value="weekly">Weekly</option>'+'          <option value="monthly">Monthly</option>'+'          <option value="never">Never</option>'+'        </select></td></tr>'+'<tr><td colspan=3><br></td></tr>'+'<tr>'+'    <td><span class=normalText>Change Password:</span></td>'+'    <td colspan=3><input id=changePwd class=normalText type=password value=""></td>'+'</tr>'+'<tr>'+'    <td><span class=normalText>Confirm Password:</span></td>'+'    <td colspan=2><input id=confirmPwd class=normalText type=password value=""></td>'+'</tr>'+'<tr><td colspan=3><br></td></tr>'+'<tr>'+'    <td><span class=normalText>Always use drag and drop:</span></td>'+'    <td colspan=2><input id=dnd class=normalText type=checkbox value="dnd"></td>'+'</tr>'+'<tr>'+'    <td><span class=normalText>Always show tooltips</span></td>'+'    <td colspan=2><input id=tooltips class=normalText type=checkbox ></td>'+'</tr>'+'<tr>'+'    <td><span class=normalText>Chat Text Color:</span></td>'+'    <td colspan=2><select id="textColor">'+'          <option value="black">Black</option>'+'          <option value="red">Red</option>'+'          <option value="yellow">Yellow</option>'+'          <option value="blue">Blue</option>'+'          <option value="brown">Brown</option>'+'          <option value="gray">Gray</option>'+'          <option value="pink">Pink</option>'+'        </select></td></tr>'+'<tr>'+'    <td><span class=normalText>Default Text Font:</span></td>'+'    <td colspan=2><select id="textFont">'+'          <option value="Arial">Arial</option>'+'          <option value="Century Gothic">Century Gothic</option>'+'          <option value="Comic Sans MS">Comic Sans MS</option>'+'          <option value="Georgia">Georgia</option>'+'          <option value="Times New Roman">Times New Roman</option>'+'          <option value="Trebuchet">Trebuchet</option>'+'          <option value="Verdana">Verdana</option>'+'        </select></td></tr>'+'<tr>'+'    <td><span class=normalText>Default Text Size:</span></td>'+'    <td colspan=2><select id="textSize">'+'          <option value="9px">9</option>'+'          <option value="10px">10</option>'+'          <option value="12px">12</option>'+'          <option value="14px">14</option>'+'          <option value="16px">16</option>'+'          <option value="18px">18</option>'+'          <option value="24px">24</option>'+'          <option value="32px">32</option>'+'          <option value="48px">48</option>'+'        </select></td></tr>'+'<tr>'+'    <td><span class=normalText>Stored image size:&nbsp;&nbsp;&nbsp;</span></td>'+'    <td colspan=2><select id="imageSize">'+'          <option value="640x480">640x480</option>'+'          <option value="800x600">800x600</option>'+'          <option value="1024x768">1024x768</option>'+'          <option value="original">Original</option>'+'        </select></td></tr>'+'<tr>'+'  <td><span class=normalText>Color Scheme:</span></td>'+'  <td>'+'    <table id=selectedColorTable>'+'    <tr height=16>'+'      <td width=48></td>'+'      <td width=48></td>'+'      <td width=48></td>'+'    </tr>'+'    </table>'+'  </td>'+'  <td align=left><span id=selectedColorTitle class=normalText></span></td>'+'</tr>'+'<tr>'+'  <td><br></td>'+'  <td><div id=colorTableContainer></div></td>'+'  <td>&nbsp;</td>'+'</tr>'+'</table>'+'<br><br>'+'<table align=center width="90%">'+'<tr>'+'    <td colspan=2 align=center>'+'        <button class=normalText onclick="savePreferences()">Save</button>'+'        <button class=normalText onclick="reloadHomePageGuts(false)">Cancel</button>'+'    </td>'+'</tr>'+'</table>';container.innerHTML=str;buildColorTable();var mc=document.getElementById("mainContainer");var h=dhtmlapi.getObjectHeight(mc);var t=175;var btm=h+t+25;positionCopyright(btm);}
function buildColorTable()
{var container=document.getElementById("colorTableContainer");container.style.height='200px';container.style.width='172px';container.style.overflowY='scroll';container.style.border='solid lightgrey 2px';var tbl=document.createElement('table');container.appendChild(tbl);var tr=null;var td=null;var cs=null;for(var i=0;i<systemColors.length;i++){cs=systemColors[i];tr=tbl.insertRow(i);tr.style.height='16px';tr.onclick=handleColorSelection;for(var j=0;j<3;j++){td=tr.insertCell(j);td.style.backgroundColor=cs._colors[j];td.style.height='16px';td.style.width='48px';}}}
function updateSelectedColor(color)
{var obj=document.getElementById("selectedColorTable");var tr=obj.rows[0];var td=null;for(var i=0;i<3;i++)
{td=tr.cells[i];td.bgColor=color._colors[i];}
obj=document.getElementById("selectedColorTitle");obj.innerHTML=color._title;}
function handleColorSelection(e)
{var evt=EventUtils.getEvent(e);var target=EventUtils.getTargetElement(evt);while(target!=null&&target.tagName!="TR")
target=target.parentNode;selectedColorScheme=systemColors[target.rowIndex];updateSelectedColor(selectedColorScheme);}
function loadUserPreferences()
{var preferences=user.getPreferences();var val=preferences.getPreferenceValue("user.emailUpdates");var obj=document.getElementById("emailUpdates");var opts=obj.options;var i=0;for(var i=0;i<opts.length;i++)
opts[i].selected=(opts[i].value==val)?true:false;document.getElementById("firstName").value=user.getFirstName();document.getElementById("lastName").value=user.getLastName();document.getElementById("emailAddress").innerHTML=user.getEmailAddress();val=preferences.getPreferenceValue("editor.dnd",null);obj=document.getElementById("dnd");if(val==null)
obj.checked=false;else{if(val=="enabled")
obj.checked=true;else
obj.checked=false;}
val=preferences.getPreferenceValue("editor.tooltips","true");obj=document.getElementById("tooltips");obj.checked=(val=="true")?true:false;setSelectPreference(preferences,"editor.textColor","black","textColor");setSelectPreference(preferences,"editor.textFont","Arial","textFont");setSelectPreference(preferences,"editor.textSize","14px","textSize");val=preferences.getPreferenceValue("editor.imageSize","original");obj=document.getElementById("imageSize");opts=obj.options;for(var i=0;i<opts.length;i++)
opts[i].selected=(opts[i].value==val)?true:false;val=user.getEncryptedPassword();document.getElementById("changePwd").value=user.getEncryptedPassword();document.getElementById("confirmPwd").value=user.getEncryptedPassword();updateSelectedColor(selectedColorScheme);}
function setSelectPreference(preferences,name,defValue,id)
{var val=preferences.getPreferenceValue(name,defValue);var obj=document.getElementById(id);var opts=obj.options;for(var i=0;i<opts.length;i++)
opts[i].selected=(opts[i].value==val)?true:false;}
function savePreferences()
{var preferences=user.getPreferences();var val=document.getElementById("changePwd").value;var pwd_confirm=document.getElementById("confirmPwd").value;var pwd_updated=null;var email_updated=null;if(val!=""&&val!=user.getEncryptedPassword())
{if(val!=pwd_confirm){alert("Changed password is not correctly confirmed!\n"+"User preferences will not be saved.");return;}
else{pwd_updated=val;preferences.setPreferenceValue("user.pwd",pwd_updated);}}
var fname=document.getElementById("firstName").value;var lname=document.getElementById("lastName").value;var obj=document.getElementById("emailUpdates");preferences.setPreferenceValue("user.emailUpdates",obj.options[obj.selectedIndex].value);obj=document.getElementById("textColor");preferences.setPreferenceValue("editor.textColor",obj.options[obj.selectedIndex].value);obj=document.getElementById("textFont");preferences.setPreferenceValue("editor.textFont",obj.options[obj.selectedIndex].value);obj=document.getElementById("textSize");preferences.setPreferenceValue("editor.textSize",obj.options[obj.selectedIndex].value);obj=document.getElementById("imageSize");preferences.setPreferenceValue("editor.imageSize",obj.options[obj.selectedIndex].value);var str=selectedColorScheme.toXmlString();preferences.setPreferenceValue("user.colorSelection",str);var dnd=document.getElementById("dnd").checked;if(dnd)
preferences.setPreferenceValue("editor.dnd","enabled");else
preferences.setPreferenceValue("editor.dnd","disabled");var tooltips=document.getElementById("tooltips").checked;preferences.setPreferenceValue("editor.tooltips",(tooltips==true)?"true":"false");user.setPreferences(preferences);user.setFirstName(fname);user.setLastName(lname);application.updateUser(user.getOid(),fname,lname,preferences.toXmlString(),reloadHomePage);}
function reloadHomePage(status)
{if(status==true)
alert("User Preferences Saved");else
alert("An error occurred while updating your user preferences");reloadHomePageGuts(true);}
function reloadHomePageGuts(reload)
{preferencesDisplayed=false;buildGroupView();mygroups.setData(groups);if(reload)
loadColors();mygroups.setColors(mygroups_colors);myscrapbooks.setColors(myscrapbooks_colors);mypages.setColors(mypages_colors);myview.setColors(myview_colors);setColorsPageDetail();setColorsGroupMember();changeGroup(currentGroup);}