
var messageStack=stdClass.extend({constructor:function(el,settings){this.base();Object.extend(this.s,{timer:null,waitTime:10000,effectTime:5000,closeSelector:".close"});Object.extend(this.n,{el:el,childEl:[],tempContainer:document.createElement('div')});Object.extend(this.c,{messageFunctions:{success:this.successMessage.bind(this),error:this.errorMessage.bind(this)}});var eles=this.n.el.getElementsBySelector('ul');for(var x=0;x<eles.length;x++){var childEl={el:eles[x],timer:null}
this.startTimer(childEl);this._attachEvents(childEl);}},closeClicked:function(childEl){this.removeMessage(childEl);},addMessage:function(message,type){if(!this.n.el){return;}
if(typeof(this.c.messageFunctions[type])=="function"){var html=this.c.messageFunctions[type](message);}else{return;}
this.n.tempContainer.innerHTML=html;var childEl={el:this.n.tempContainer.firstChild,timer:null}
this.n.el.appendChild(childEl.el);this._attachEvents(childEl);Element.show(this.n.el);if(window.Effect){Effect.BlindDown(childEl.el,{duration:(this.s.effectTime/1000),afterFinishInternal:function(effect){effect.element.undoClipping();effect.element.style.height='';}});}else{Element.show(childEl.el);}
this.startTimer(childEl);},removeMessage:function(childEl){this.endTimer(childEl);if(window.Effect){Effect.Fade(childEl.el,{duration:(this.s.effectTime/1000)});}else{Element.hide(this.n.el);}},startTimer:function(childEl){this.endTimer(childEl);this.s.timer=setTimeout(this.removeMessage.bind(this,childEl),this.s.waitTime);},endTimer:function(childEl){if(childEl.timer!=null){clearTimeout(childEl.timer);childEl.timer=null;}},successMessage:function(message){var html='<ul class="success">';html+='<li class="title">Success</li>';html+='<li>'+message+'</li>';html+='</ul>';return html;},errorMessage:function(message){var html='<ul class="error">';html+='<li class="title">Error</li>';html+='<li>'+message+'</li>';html+='<li class="close">Close me</li>';html+='</ul>';return html;},_attachEvents:function(childEl){var eles=document.getElementsBySelector(this.s.closeSelector,(childEl.el||this.n.el));for(var x=0;x<eles.length;x++){this.eObserve(eles[x],'click',this.closeClicked.bind(this,childEl));}}});Behaviour.register({'#messagestack':function(el){new messageStack(el);}});Object.extend(Effect,{throbbers:[],Throb:function(node){var throbber={node:node,key:'throbber',throbber:document.createElement('div')}
Element.addClassName(throbber.throbber,"throbber");throbber.node.parentNode.insertBefore(throbber.throbber,throbber.node);var dims=Element.getDimensions(throbber.node);Object.extend(throbber.throbber.style,{position:"absolute",width:dims['width']+"px",height:dims['height']+"px"});if(document.all){throbber.iframe=document.createElement('iframe');Element.addClassName(throbber.iframe,"iFrame");Object.extend(throbber.iframe.style,{position:"absolute",width:dims['width']+"px",height:dims['height']+"px",filter:"alpha(opacity=0)",opacity:"0",zIndex:"2"});if(parseInt(throbber.node.style.zIndex)>1){Object.extend(throbber.iframe.style,{zIndex:parseInt(throbber.node.style.zIndex)+1});}
throbber.throbber.appendChild(throbber.iframe);}
Effect.throbbers.push(throbber);},CancelThrob:function(node){var throbber=null;for(var x=0;x<Effect.throbbers.length;x++){if(Effect.throbbers[x].node==node){throbber=Effect.throbbers.splice(x,1);break;}}
if(!throbber){return;}
throbber=throbber[0];throbber.throbber.parentNode.removeChild(throbber.throbber);}});var ConfirmDialog=kDialog2.extend({settings:function(settings){if(typeof(this.s)=='undefined'){this.base();Object.extendProperties(this.s,{'+innerTriggers':[{node:'.ok',event:'click',action:'onClickOK'},{node:'.cancel',event:'click',action:'onClickCancel'},{node:'.close',event:'click',action:'hide'}],'+innerZones':[{node:'.buttons',name:'buttons'}],'+zones':{heading:'Confirm',content:'  <p class="text">Please click OK or Cancel.</p>'+'  <form class="buttons">'+'   <input type="image" src="'+Config.templatePath+'i/button_ok.gif" alt = "OK" class="ok">'+'   <input type="image" src="'+Config.templatePath+'i/button_cancel.gif" alt = "Cancel" class="cancel">'+'  </form>'},onClickOK:function(){return true;},onClickCancel:function(){return true;}});this.s.innerZones.push({node:'.buttons',name:'buttons'});Object.extendProperties(this.s,settings);}},constructor:function(settings){this.settings(settings);this.create();},setButtons:function(html){this.setZone('buttons',html);},onClickOK:function(ele,e){Event.stop(e);if(this.s.onClickOK(this))this.hide();},onClickCancel:function(ele,e){Event.stop(e);if(this.s.onClickCancel(this))this.hide();}});var Recommend=stdClass.extend({constructor:function(el,settings){this.base();Object.extend(this.s,{moduleName:'AdminModules__AddString',json:{ver:'0.1',meta:{},data:{requests:[]}}});Object.extend(this.n,{el:el});Object.extend(this.c,{});this._attachEvents();},elOnClick:function(e){Event.stop(e);new kDialog2({'+zones':{heading:'Recommend to Peer',text:'<h2>Tell a Peer</h2><p class="padtop">Please fill out the form below to tell a peer about this page.</p><form enctype="application/x-www-form-urlencoded" method="post" action=""><fieldset><div><label>Your e-mail address:</label><div class="iefix">ryan@solutionset.com</div></div><div><label>Recipient\'s e-mail address:</label><div class="iefix"><input id="send_to_email" value="" maxlength="128" size="30" type="text" class="text" name="send_to_email"/></div></div><div><label>Subject:</label><div class="iefix"><input id="subject" maxlength="128" size="30" value="Interesting page from Autodesk Civil Engineering Community" type="text" class="text" name="subject"/></div></div><div><label>Message:</label><div class="iefix">I thought you might be interested in this article on SolutionSet CSP:<br/><br/>http://csp.php5.solutionset.com/</div></div><div><div class="iefix nolabel"><input name="__module__" value="RecommendedToPeer" type="hidden" class="hidden"/><input name="referer" value="http://csp.php5.solutionset.com/" type="hidden" class="hidden"/><input src="/themes/default/i/button_submit.gif" name="submit" value="send" type="image" class="image"/></div></div></fieldset><p>NOTE: The e-mail address(es) that you supply to use this service will be used only to send the requested article.</p></form>'},position:{exemplar:this.n.el.parentNode.parentNode,exemplarAnchor:'bottom right',selfAnchor:'top right',offsetY:0,offsetX:0},groupId:'RecommendDialog',groupLimit:1,startHidden:false});return;this.addRequest('getString',{id:this.n.el.id});this.JsonOut();},addRequest:function(requestName,dataObject){this.c.requests.push({id:this.c.requests.length,type:requestName,data:dataObject});},JsonOut:function(){this.s.json.data.requests=this.c.requests;var data='__json='+this.s.moduleName+'&data='+Object.toJSON(this.s.json);this.c.requests=[];var returnData='{"meta":{},"data":{"html":"<form><input type=\'hidden\' name=\'stringID\' value=\'1\' /><textarea name=\'value\'>&lt;h1&gt;Articles&lt;/h1&gt;</textarea><input value=\'Save\' type=\'image\' src=\'/themes/admin_default/i/button_save.gif\' alt=\'Save\'> <input value=\'Save\' type=\'image\' src=\'/themes/admin_default/i/button_cancel.gif\' alt=\'Cancel\' class=\'close\'></form>"},"responses":[{"id":1,"type":"getString","data":{"html":"&lt;h1&gt;Articles&lt;/h1&gt;"}}]}';this.JsonIn({responseText:returnData});},JsonIn:function(t){var result=t.responseText.evalJSON();(result.responses.length).times(function(i){if(result.responses[i].type=='getString'){this.insertForm(result.data.html);this._findCloseButtons();}}.bind(this));},_attachEvents:function(){this.eObserve(this.n.el,'click',this.elOnClick.bind(this));}});EventSelectors.register({'a.recommend':function(el,index){new Recommend(el);}},true);var rSelectClass=Class.create();rSelectClass.prototype={initialize:function(el,s){this.items=[];this.el=el;this.label=document.createElement('div');this.labelText=document.createElement('span');this.container=document.createElement('div');this.ulcontainer=document.createElement('div');this.imask=document.createElement('iframe');this.actualCols=0;this.ulInit=false;this.s={fixedWidth:true,className:'rSelectBox',selectedClass:'selected',hoverClass:'hover',toggleClass:'toggle',isMultiSelect:false,defaultLabel:'No Values Selected',pxPerChar:11,maxHeight:300,maxCols:1,pxPerRow:22,processed:'rSelectReplaced',width:null};for(var key in s){this.s[key]=s[key];}
if(this.s.fixedWidth&&!this.s.width){this.s.width=this.el.style.width?parseInt(this.el.style.width):Element.getDimensions(this.el).width}
if(this.el.hasClassName(this.s.processed)){return 0;}
Element.addClassName(this.el,this.s.processed);var multi=(this.el.attributes['multiple'])?this.el.attributes['multiple'].value:this.el.getAttribute('multiple');if(multi&&(multi.toLowerCase()=="multiple"||multi.toLowerCase()=="true")){this.s.isMultiSelect=true;}
Element.addClassName(this.container,this.s.className);if(this.el.className!=''){Element.addClassName(this.container,this.el.className);}
Event.observe(this.label,'click',this.clickLabel.bind(this));this.createContainer();Element.hide(this.el);},findElements:function(){var alleles=this.el.childNodes;var eles=new Array();var totalEles=0;var makeSelected=false;var currentRow=0;var ul=document.createElement('ul');for(var i=0;i<alleles.length;i++){switch(String(alleles[i].tagName).toLowerCase()){case'optgroup':eles.push(alleles[i]);var opts=alleles[i].getElementsByTagName('option');if(alleles[i].label){totalEles++;}
totalEles=totalEles+opts.length;case'option':if(alleles[i].childNodes.length==1){eles.push(alleles[i]);totalEles++;}}}
var expectedCols=(Math.ceil(totalEles*this.s.pxPerRow/this.s.maxHeight)>this.s.maxCols?this.s.maxCols:Math.ceil(totalEles*this.s.pxPerRow/this.s.maxHeight));for(var i=0;i<eles.length;i++){if(currentRow>Math.ceil(totalEles/expectedCols)-1){Element.addClassName(ul,'col');this.ulcontainer.appendChild(ul);ul=document.createElement('ul');currentRow=0;this.actualCols++;}
if(eles[i].selected&&eles[i].disabled){makeSelected=true;}
if(makeSelected&&!eles[i].disabled&&String(eles[i].tagName).toLowerCase()=="option"){makeSelected=false;eles[i].selected=true;}
switch(String(eles[i].tagName).toLowerCase()){case'optgroup':var li=document.createElement('li');var optgroupUl=document.createElement('ul');if(eles[i].label){Element.addClassName(li,'optlabel');if(eles[i].disabled){Element.addClassName(li,'disabled');Element.addClassName(optgroupUl,'disabled');}
li.innerHTML=eles[i].label;ul.appendChild(li);currentRow++;}
var opts=eles[i].getElementsByTagName('option');currentRow=currentRow+opts.length;for(var j=0;j<opts.length;j++){if(opts[j].selected&&(eles[i].disabled||opts[j].disabled)){makeSelected=true;}
if(makeSelected&&!eles[i].disabled&&!opts[j].disabled){makeSelected=false;opts[j].selected=true;}
this.createElement(opts[j],eles[i].disabled,optgroupUl);}
ul.appendChild(optgroupUl);break;case'option':if(eles[i].childNodes.length==1){this.createElement(eles[i],eles[i].disabled,ul);currentRow++;}
break;}}
this.actualCols++;if(this.actualCols>1){Element.addClassName(ul,'col');}
this.ulcontainer.appendChild(ul);},createElement:function(el,state,parent){var elSelected=(el.selected&&(!el.disabled&&(!el.parentNode||!el.parentNode.disabled)))?true:false;var itemvar={};itemvar.value=el.value;itemvar.el=el;itemvar.selected=elSelected;itemvar.disabled=(el.disabled||el.parentNode.disabled)?true:false;itemvar.text=el.text;itemvar.li=document.createElement('li');if(itemvar.el.className!=''){Element.addClassName(itemvar.li,itemvar.el.className);}
if(state==true){itemvar.li.innerHTML=el.text;Element.addClassName(itemvar.li,'disabled');}
else{itemvar.a=document.createElement('a');itemvar.a.href='javascript:void(0);';itemvar.text=el.text;if(this.s.isMultiSelect){itemvar.a.innerHTML='<input type="checkbox" '+((itemvar.selected)?' checked="checked"':'')+'> '+el.text;}else{itemvar.a.innerHTML=el.text;}
itemvar.li.appendChild(itemvar.a);}
parent.appendChild(itemvar.li);this.items.push(itemvar);if(elSelected){this.setLabel(el.text);}},createContainer:function(){Element.addClassName(this.label,'label');var icon=document.createElement('div');Element.addClassName(icon,'icon');icon.appendChild(this.labelText);this.label.appendChild(icon);this.container.appendChild(this.label);if(this.s.fixedWidth==true&&this.s.width){this.container.style.width=this.s.width+'px';}
DOM.insertAfter(this.container,this.el);var text=[];var opts=this.el.getElementsByTagName('option');for(var i=0,final=opts.length;i<final;i++)
if(opts[i].selected)
text.push(opts[i].text);text=text.join(', ');if(text=='')
text=this.s.defaultLabel;this.setLabel(text);},createUL:function(){Element.addClassName(this.ulcontainer,'ulcontainer');this.container.appendChild(this.ulcontainer);this.ulcontainer.show();var width=this.container.offsetWidth;var uldims=Element.getDimensions(this.ulcontainer);var uls=this.ulcontainer.childNodes;var ulswidth=0;for(i=0;i<uls.length;i++){if(uls[i].tagName.toLowerCase()=='ul'){ulswidth+=uls[i].offsetWidth;}}
if(ulswidth>width){this.ulcontainer.style.width=ulswidth+((!isNaN(this.s.maxHeight)&&uldims.height>this.s.maxHeight)?17:0)+'px';}
else if(this.s.fixedWidth==true){this.ulcontainer.style.width=width+'px';this.ulcontainer.style.width=width+(width-this.ulcontainer.offsetWidth)+'px';}
if(!isNaN(this.s.maxHeight)&&uldims.height>this.s.maxHeight){this.ulcontainer.style.height=this.s.maxHeight+'px';this.ulcontainer.style.overflow='auto';}
var left=String(Position.cumulativeOffset(this.ulcontainer));left=Number(left.substring(0,left.indexOf(',')));left+=Element.getDimensions(this.ulcontainer).width;if(Element.getDimensions(document.getElementsByTagName('body')[0]).width<left){this.ulcontainer.style.right="0px";}
var uldims=Element.getDimensions(this.ulcontainer);if(document.all){this.imask.scrolling='no';this.imask.frameborder='0';this.imask.style.display='none';this.imask.style.position='absolute';this.imask.style.marginTop='-1';this.imask.style.zIndex=10;this.ulcontainer.style.zIndex=11;this.imask.style.width=uldims.width+'px';this.imask.style.height=uldims.height+'px';this.container.appendChild(this.imask);this.imask.style.top=this.ulcontainer.style.top;if(Element.getDimensions(document.getElementsByTagName('body')[0]).width<left){this.imask.style.right="0px";}}
this.ulInit=true;},clickLabel:function(e){if(!this.ulInit){this.findElements();this.createUL();this.initializeULEvents();this.show();}
else
this.toggle();for(var i=0;i<this.items.length;i++){Element.removeClassName(this.items[i].li,this.s.hoverClass);Element.removeClassName(this.items[i].li,this.s.selectedClass);if(this.items[i].selected==true){Element.addClassName(this.items[i].li,this.s.hoverClass);Element.addClassName(this.items[i].li,this.s.selectedClass);}}
if(typeof(this.el.onclick)=='function'){this.el.onclick();}
if(!Element.visible(this.ulcontainer)){this.hide();if(typeof(this.el.onclose)=='function'){this.el.onclose();}
if(typeof(Event.fire)=='function'){Event.fire(this.el,"close");}}},toggle:function(){if(Element.visible(this.ulcontainer)){this.hide();}else{this.show();}},hide:function(){Element.hide(this.ulcontainer);if(document.all){Element.hide(this.imask);}},show:function(){Element.show(this.ulcontainer);if(document.all){Element.show(this.imask);}
var left=String(Position.cumulativeOffset(this.ulcontainer));left=Number(left.substring(0,left.indexOf(',')));left+=Element.getDimensions(this.ulcontainer).width;if(Element.getDimensions(document.getElementsByTagName('body')[0]).width<left){this.ulcontainer.style.right="0px";}},checkItem:function(itemvar,index){itemvar.selected=true;itemvar.el.selected=true;if(itemvar.li.getElementsByTagName('input')[0]){itemvar.li.getElementsByTagName('input')[0].checked=true;}
Element.addClassName(itemvar.li,this.s.selectedClass);if(index){this.el.selectedIndex=index;}},uncheckItem:function(itemvar){itemvar.selected=false;itemvar.el.selected=false;if(itemvar.li.getElementsByTagName('input')[0]){itemvar.li.getElementsByTagName('input')[0].checked=false;}
Element.removeClassName(itemvar.li,this.s.selectedClass);},onClick:function(e){var ele=Event.element(e);while(ele&&ele!=this.container){if(ele.tagName.toLowerCase()=='a'){break;}
ele=ele.parentNode;}
if(ele.tagName.toLowerCase()!='a'){return;}
if(this.s.isMultiSelect){for(var i=0;i<this.items.length;i++){if(this.items[i].a==ele){if(this.items[i].selected==true){this.uncheckItem(this.items[i]);}else{this.checkItem(this.items[i]);}
break;}}}else{for(var i=0;i<this.items.length;i++){if(this.items[i].a==ele){this.checkItem(this.items[i],i);}else{this.uncheckItem(this.items[i]);}}
this.hide();}
var allchecked=true;for(var x=0;x<this.items.length;x++){if(this.items[x].a==ele){var itemvar=this.items[x];}
if(this.items[x].selected==false&&!Element.hasClassName(this.items[x].li,this.s.toggleClass)&&!this.items[x].disabled){allchecked=false;}}
if(Element.hasClassName(itemvar.li,this.s.toggleClass)){for(var x=0;x<this.items.length;x++){if(allchecked){this.uncheckItem(this.items[x]);}else{if(!this.items[x].disabled){this.checkItem(this.items[x]);}}}}else if(allchecked){for(var x=0;x<this.items.length;x++){if(Element.hasClassName(this.items[x].li,this.s.toggleClass)){this.checkItem(this.items[x]);}}}else{for(var x=0;x<this.items.length;x++){if(Element.hasClassName(this.items[x].li,this.s.toggleClass)){this.uncheckItem(this.items[x]);}}}
this.updateLabel();if(typeof(this.el.onclick)=='function'){this.el.onclick();}
if(typeof(this.el.onchange)=='function'){this.el.onchange();}
if(typeof(Event.fire)=='function'){Event.fire(this.el,"change");}},onMouseOver:function(e){var ele=Event.element(e);if(ele.tagName.toLowerCase()!='a'&&ele.tagName.toLowerCase()!='li'){return;}
for(var i=0;i<this.items.length;i++){Element.removeClassName(this.items[i].li,this.s.hoverClass);if(this.items[i].a==ele){Element.addClassName(this.items[i].li,this.s.hoverClass);}}},initializeULEvents:function(){Event.observe(this.ulcontainer,'click',this.onClick.bind(this));Event.observe(this.ulcontainer,'mouseover',this.onMouseOver.bind(this));Event.observe(document,'click',this.onBlur.bind(this),false);Event.observe(window,'blur',this.onBlur.bind(this),false);},onBlur:function(e){var el=Event.element(e);var found=false;do{if(el==null||el==window||el==document.body)break;if(el==this.container){found=true;break;}}while(el=el.parentNode);if(!found&&Element.visible(this.ulcontainer)){this.hide();if(typeof(this.el.onclose)=='function'){this.el.onclose();}
if(typeof(Event.fire)=='function'){Event.fire(this.el,"close");}}},updateLabel:function(){var selectedItems=[];for(var x=0;x<this.items.length;x++){if(this.items[x].selected&&!Element.hasClassName(this.items[x].li,this.s.toggleClass)){selectedItems.push(this.items[x].text);}}
text=selectedItems.join(', ');if(text==''){text=this.s.defaultLabel;}
this.setLabel(text);},setLabel:function(text){var shorttext=text.substring(0,Math.round(this.s.width/this.s.pxPerChar));if(shorttext!=text)
text=shorttext.substring(0,shorttext.length-2)+'\u2026';var text=document.createTextNode(text);this.labelText.innerHTML='';this.labelText.insertBefore(text,this.labelText.firstChild);}}
EventSelectors.register({'select.rSelect':function(el){new rSelectClass(el,{});},'select.rSelectSmall':function(el){new rSelectClass(el,{fixedWidth:false,className:'rSelectBoxSmall'});},'select.rSelectNetwork':function(el){new rSelectClass(el,{defaultLabel:'My Network'});},'select.rSelectInvite':function(el){new rSelectClass(el,{width:'150'});}},true);