
/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* - fckeditor.js - */
// http://www.sun-n-sand.org/portal_javascripts/fckeditor.js?original=1
var FCKeditor=function(instanceName,width,height,toolbarSet,value){this.InstanceName=instanceName ;this.Width=width||'100%' ;this.Height=height||'200' ;this.ToolbarSet=toolbarSet||'Default' ;this.Value=value||'' ;this.BasePath=FCKeditor.BasePath ;this.CheckBrowser=true ;this.DisplayErrors=true ;this.Config=new Object() ;this.OnError=null }
FCKeditor.BasePath='/fckeditor/' ;FCKeditor.MinHeight=200 ;FCKeditor.MinWidth=750 ;FCKeditor.prototype.Version='2.6.3' ;FCKeditor.prototype.VersionBuild='19836' ;FCKeditor.prototype.Create=function(){document.write(this.CreateHtml()) }
FCKeditor.prototype.CreateHtml=function(){if(!this.InstanceName||this.InstanceName.length==0){this._ThrowError(701,'You must specify an instance name.') ;return '' }
var sHtml='' ;if(!this.CheckBrowser||this._IsCompatibleBrowser()){sHtml+='<input type="hidden" id="'+this.InstanceName+'" name="'+this.InstanceName+'" value="'+this._HTMLEncode(this.Value)+'" style="display:none" />' ;sHtml+=this._GetConfigHtml() ;sHtml+=this._GetIFrameHtml() }
else{var sWidth=this.Width.toString().indexOf('%')>0?this.Width:this.Width+'px' ;var sHeight=this.Height.toString().indexOf('%')>0?this.Height:this.Height+'px' ;sHtml+='<textarea name="'+this.InstanceName+'" rows="4" cols="40" style="width:'+sWidth+';height:'+sHeight ;if(this.TabIndex)
sHtml+='" tabindex="'+this.TabIndex ;sHtml+='">'+this._HTMLEncode(this.Value)+'<\/textarea>' }
return sHtml }
FCKeditor.prototype.ReplaceTextarea=function(){if(!this.CheckBrowser||this._IsCompatibleBrowser()){var oTextarea=document.getElementById(this.InstanceName) ;var colElementsByName=document.getElementsByName(this.InstanceName) ;var i=0;while(oTextarea||i==0){if(oTextarea&&oTextarea.tagName.toLowerCase()=='textarea')
break ;oTextarea=colElementsByName[i++] }
if(!oTextarea){alert('Error: The TEXTAREA with id or name set to "'+this.InstanceName+'" was not found') ;return }
oTextarea.style.display='none' ;if(oTextarea.tabIndex)
this.TabIndex=oTextarea.tabIndex ;this._InsertHtmlBefore(this._GetConfigHtml(),oTextarea) ;this._InsertHtmlBefore(this._GetIFrameHtml(),oTextarea) }}
FCKeditor.prototype._InsertHtmlBefore=function(html,element){if(element.insertAdjacentHTML)
element.insertAdjacentHTML('beforeBegin',html) ;else{var oRange=document.createRange() ;oRange.setStartBefore(element) ;var oFragment=oRange.createContextualFragment(html);element.parentNode.insertBefore(oFragment,element) }}
FCKeditor.prototype._GetConfigHtml=function(){var sConfig='' ;for(var o in this.Config){if(sConfig.length>0) sConfig+='&amp;' ;sConfig+=encodeURIComponent(o)+'='+encodeURIComponent(this.Config[o]) }
return '<input type="hidden" id="'+this.InstanceName+'___Config" value="'+sConfig+'" style="display:none" />' }
FCKeditor.prototype._GetIFrameHtml=function(){var sFile='fckeditor.html' ;try{if((/fcksource=true/i).test(window.top.location.search))
sFile='fckeditor.original.html' }
catch(e){}
var sLink=this.BasePath+'editor/'+sFile+'?InstanceName='+encodeURIComponent(this.InstanceName) ;if(this.ToolbarSet)
sLink+='&amp;Toolbar='+this.ToolbarSet ;html='<iframe id="'+this.InstanceName+'___Frame" src="'+sLink+'" width="'+this.Width+'" height="'+this.Height ;if(this.TabIndex)
html+='" tabindex="'+this.TabIndex ;html+='" frameborder="0" scrolling="no"></iframe>' ;return html }
FCKeditor.prototype._IsCompatibleBrowser=function(){return FCKeditor_IsCompatibleBrowser() }
FCKeditor.prototype._ThrowError=function(errorNumber,errorDescription){this.ErrorNumber=errorNumber ;this.ErrorDescription=errorDescription ;if(this.DisplayErrors){document.write('<div style="COLOR: #ff0000">') ;document.write('[ FCKeditor Error '+this.ErrorNumber+': '+this.ErrorDescription+' ]') ;document.write('</div>') }
if(typeof(this.OnError)=='function')
this.OnError(this,errorNumber,errorDescription) }
FCKeditor.prototype._HTMLEncode=function(text){if(typeof(text)!="string")
text=text.toString() ;text=text.replace(/&/g,"&amp;").replace(/"/g, "&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;") ;return text }
;(function(){var textareaToEditor=function(textarea){var editor=new FCKeditor(textarea.name) ;editor.Width=Math.max(textarea.offsetWidth,FCKeditor.MinWidth) ;editor.Height=Math.max(textarea.offsetHeight,FCKeditor.MinHeight) ;return editor }
FCKeditor.ReplaceAllTextareas=function(){var textareas=document.getElementsByTagName('textarea') ;for(var i=0 ;i<textareas.length ;i++){var editor=null ;var textarea=textareas[i] ;var name=textarea.name ;if(!name||name.length==0)
continue ;if(typeof arguments[0]=='string'){var classRegex=new RegExp('(?:^| )'+arguments[0]+'(?:$| )') ;if(!classRegex.test(textarea.className))
continue }
else if(typeof arguments[0]=='function'){editor=textareaToEditor(textarea) ;if(arguments[0](textarea,editor)===false)
continue }
if(!editor)
editor=textareaToEditor(textarea) ;editor.ReplaceTextarea() }}})() ;
function FCKeditor_IsCompatibleBrowser(){var sAgent=navigator.userAgent.toLowerCase() ;if(/*@cc_on!@*/false&&sAgent.indexOf("mac")==-1){var sBrowserVersion=navigator.appVersion.match(/MSIE (.\..)/)[1] ;return(sBrowserVersion>=5.5) }
if(navigator.product=="Gecko"&&navigator.productSub>=20030210&&!(typeof(opera)=='object'&&opera.postError))
return true ;if(window.opera&&window.opera.version&&parseFloat(window.opera.version())>=9.5)
return true ;if(sAgent.indexOf(' adobeair/')!=-1)
return(sAgent.match(/ adobeair\/(\d+)/ )[1] >= 1 ) ;	// Build must be at least v1
if(sAgent.indexOf(' applewebkit/')!=-1)
return(sAgent.match(/ applewebkit\/(\d+)/ )[1] >= 522 ) ;	// Build must be at least 522(v3)
return false }


/* - fck_plone.js - */
// http://www.sun-n-sand.org/portal_javascripts/fck_plone.js?original=1
var FCKBaseHref={};makeLinksRelative=function(basehref,contents){var base=basehref.replace('http://www.sun-n-sand.org','');var href=base.replace(/\/[^\/]*$/,'/');var hrefparts=href.split('/');return contents.replace(/(<[^>]* (?:src|href)=")([^"]*)"/g,
function(str,tag,url,offset,contents){url=url.replace('http://www.sun-n-sand.org','');if(url.substring(0,1)=='#'){str=tag+url+'"'}
else{var urlparts=url.split('#');var anchor=urlparts[1]||'';url=urlparts[0];var urlparts=url.split('/');var common=0;while(common<urlparts.length&&common<hrefparts.length&&urlparts[common]==hrefparts[common])
common++;var last=urlparts[common];if(common+1==urlparts.length&&last=='emptypage'){urlparts[common]=''}
if(common>0){var path=new Array();var i=0;for(;i+common<hrefparts.length-1;i++){path[i]='..'};while(common<urlparts.length){path[i++]=urlparts[common++]};if(i==0){path[i++]='.'}
str=path.join('/');if(anchor){str=[str,anchor].join('#')}
str=tag+str+'"'}}
return str})};finalizePublication=function(editorInstance){var oField=editorInstance.LinkedField;var fieldName=oField.name;var baseHref=FCKBaseHref[fieldName];if(baseHref){relativeLinksHtml=makeLinksRelative(FCKBaseHref[fieldName],editorInstance.GetXHTML());oField.value=relativeLinksHtml}}
getParamValue=function(id){value=document.getElementById(id).value;if(value=='true') return true;if(value=='false') return false;return value}
FCKeditor_Plone_start_instance=function(fckContainer,inputname){var inputContainer=document.getElementById(inputname+'_'+'cleaninput');if(inputContainer){var fckParams=['path_user','base_path','fck_basehref','links_basehref','input_url','allow_server_browsing','browser_root','allow_file_upload','allow_image_upload','allow_flash_upload','fck_skin_path','lang','fck_default_r2l','force_paste_as_text','allow_latin_entities','spellchecker','keyboard_entermode','keyboard_shiftentermode','fck_toolbar','editor_width','editor_height'];var fckValues={};for(var i=0;i<fckParams.length;i++){var id=inputname+'_'+fckParams [i];fckValues [fckParams [i]]=getParamValue(id)}
var oFck=new FCKeditor(inputname);var pathUser=fckValues ['path_user']+'/';oFck.BasePath=fckValues ['base_path']+'/';oFck.Config['CustomConfigurationsPath']=fckValues ['input_url']+'/fckconfigPlone.js?field_name='+inputname;oFck.BaseHref=fckValues ['fck_basehref'];FCKBaseHref[inputname]=fckValues ['links_basehref'];if(inputContainer.innerText!=undefined) oFck.Value=inputContainer.innerText;else oFck.Value=inputContainer.textContent;oFck.Config['LinkBrowser']=fckValues ['allow_server_browsing'];oFck.Config['LinkBrowserURL']=fckValues ['base_path']+'/fckbrowser/browser.html?field_name='+inputname+'&Connector='+fckValues ['input_url']+'/connectorPlone&ServerPath='+fckValues ['browser_root']+'&CurrentPath='+pathUser ;oFck.Config['LinkUpload']=fckValues ['allow_file_upload'] ;oFck.Config['LinkUploadURL']=fckValues ['input_url']+'/uploadPlone?field_name='+inputname+'&CurrentPath='+pathUser;oFck.Config['ImageBrowser']=fckValues ['allow_server_browsing'];oFck.Config['ImageBrowserURL']=fckValues ['base_path']+'/fckbrowser/browser.html?field_name='+inputname+'&Type=Image&Connector='+fckValues ['input_url']+'/connectorPlone&ServerPath='+fckValues ['browser_root']+'&CurrentPath='+pathUser ;oFck.Config['ImageUpload']=fckValues ['allow_image_upload'] ;oFck.Config['ImageUploadURL']=fckValues ['input_url']+'/uploadPlone?field_name='+inputname+'&CurrentPath='+pathUser;oFck.Config['FlashBrowser']=fckValues ['allow_server_browsing'];oFck.Config['FlashBrowserURL']=fckValues ['base_path']+'/fckbrowser/browser.html?field_name='+inputname+'&Type=Flash&Connector='+fckValues ['input_url']+'/connectorPlone&ServerPath='+fckValues ['browser_root']+'&CurrentPath='+pathUser ;oFck.Config['FlashUpload']=fckValues ['allow_flash_upload'] ;oFck.Config['FlashUploadURL']=fckValues ['input_url']+'/uploadPlone?field_name='+inputname+'&CurrentPath='+pathUser;oFck.Config['MediaBrowser']=fckValues ['allow_server_browsing'];oFck.Config['MediaBrowserURL']=fckValues ['base_path']+'/fckbrowser/browser.html?field_name='+inputname+'&Type=Media&Connector='+fckValues ['input_url']+'/connectorPlone&ServerPath='+fckValues ['browser_root']+'&CurrentPath='+pathUser ;oFck.Config['SkinPath']=fckValues ['base_path']+'/editor/'+fckValues ['fck_skin_path'];oFck.Config['AutoDetectLanguage']=false;oFck.Config['DefaultLanguage']=fckValues ['lang'];oFck.Config['ForcePasteAsPlainText']=fckValues ['force_paste_as_text'];oFck.Config['IncludeLatinEntities']=fckValues ['allow_latin_entities'];oFck.Config['SpellChecker']=fckValues ['spellchecker'];oFck.Config['EnterMode']=fckValues ['keyboard_entermode'];oFck.Config['ShiftEnterMode']=fckValues ['keyboard_shiftentermode'];oFck.ToolbarSet=fckValues ['fck_toolbar'];oFck.Width=fckValues ['editor_width'];oFck.Height=fckValues ['editor_height'];try{fckContainer.innerHTML=oFck.CreateHtml();document.getElementById(inputname+'_fckLoading').style.display='none'}
catch(e){document.getElementById(inputname+'_fckLoading').style.display='none';document.getElementById(inputname+'_fckError').style.display='block'}}}
Save_inline=function(fieldname,form,editorInstance){if(editorInstance.Commands.GetCommand('FitWindow').GetState()){kukit.log('Full screen mode must be disabled before saving inline');editorInstance.Commands.GetCommand('FitWindow').Execute()} ;saveField=document.getElementById(fieldname+'_fckSaveField');if(saveField){kukit.log('Fire the savekupu server event = save inline without submitting');saveField.style.visibility='visible';if(saveField.fireEvent){saveField.fireEvent('onChange')}
else{var evt=document.createEvent("HTMLEvents");evt.initEvent("change",true,true);saveField.dispatchEvent(evt)}
comp=(setTimeout("saveField.style.visibility='hidden'",2000));return false}
else{kukit.log('Try to submit the form in portal_factory');window.onbeforeunload=null;form.submit()}}


/* - ++resource++sns.roster.js/sns2.js - */
// http://www.sun-n-sand.org/portal_javascripts/++resource++sns.roster.js/sns2.js?original=1
dojo.require("tgc.data.QueryWriteStore");dojo.require("dojox.grid.DataGrid");dojo.require("dojox.grid.cells.dijit");dojo.require("dijit.form.Button");dojo.require("dijit.form.DateTextBox");(function(d){if(typeof sns=="undefined"){this.sns={_scopeName:"sns",rostergrid:null}}
var s=sns;s._memtypes={identifier:'abbrev',label:'name',items:[{abbrev:'regular',name:"Regular member"},{abbrev:'associate',name:"Associate member"},{abbrev:'junior',name:"Junior member"},{abbrev:'honorary',name:"Honorary member"},{abbrev:'applicant',name:"Applicant"},{abbrev:'nonmember',name:"Non-member"}]};s._newsletter={identifier:'abbrev',label:'name',items:[{abbrev:'None',name:"None"},{abbrev:'USMail',name:"US Mail"},{abbrev:'Email',name:"E-mail"}]};s.memtypestore=new dojo.data.ItemFileReadStore({data:s._memtypes});s.newsletterstore=new dojo.data.ItemFileReadStore({data:s._newsletter});s.rosterstore=new tgc.data.QueryWriteStore({requestMethod:"post",doClientSorting:true,doClientPaging:true,url:'/@@roster.json'});s._copyItem=function(item){var r=d.mixin({},item);delete r[s.rosterstore._S];delete r[s.rosterstore._0];delete r[s.rosterstore._N];return r};s.rosterstore._saveCustom=function(success,failure){var items={add:[],update:[],remove:[]};var item=null;for(identity in s.rosterstore._pending._modifiedItems){item=s.rosterstore._itemsByIdentity[identity];items.update.push(s._copyItem(item))}
for(identity in s.rosterstore._pending._newItems){item=s.rosterstore._itemsByIdentity[identity];items.add.push(s._copyItem(item))}
for(identity in s.rosterstore._pending._deletedItems){item=s.rosterstore._pending._deletedItems[identity];items.remove.push(s._copyItem(item))}
var request=d.toJson(items);var postArgs={url:"/@@roster-action",content:{action:request}};var handler=d.xhrPost(postArgs);handler.addCallback(success);handler.addErrback(failure)};s.rosterCellEdit=function(e){var item=s.rostergrid.getItem(e.rowIndex)};s.rosterSave=function(){s.buttonsDisable();s.rosterstore.save({onComplete: function(){sns.rostergrid.setSortInfo(0);sns.rostergrid.selection.clear();sns.rosterstore.close(null);sns.rostergrid.filter({id:'*'},true)}})};s.rosterRevert=function(){s.buttonsDisable();s.rosterstore.revert()};s.rowEdit=function(e){if(e.cellIndex==-1){var item=s.rostergrid.getItem(e.rowIndex);s.showUpdateDialog(item)}};s.buttonsEnable=function(e){s._btnsave.setDisabled(false);s._btncancel.setDisabled(false)};s.buttonsDisable=function(e){s._btnsave.setDisabled(true);s._btncancel.setDisabled(true)};s.memberProcess=function(){var data=s.theDialog.attr('value');if(!data){data=s.theDialog.getValues()}
var store=s.rosterstore;var item=s.theDialog.theItem;data.showemail=data._showemail[0]==='on';delete data._showemail;var dtj=data._datejoined;if(dtj!==null&&d.isObject(dtj)){dtj=d.date.locale.format(dtj,{datePattern:"yyyy-MM-dd",selector:"date"})}
data.datejoined=dtj;delete data._datejoined;if(item){for(var k in data){store.setValue(item,k,data[k])}
s.theDialog.theItem=null}
else{data.formatted_name='';store.newItem(data)}
s.theDialog.hide()};s.showAddDialog=function(){s.theDialog.reset();s.theDialog.theItem=null;s.theDialog.attr('title',s._dialogTitles.add);s.theDialog.show();s.theDialog.setValues({_showemail:['on']});s.theDialog.setValues({_datejoined:null})};s.showUpdateDialog=function(item){s.theDialog.reset();s.theDialog.theItem=item;s.theDialog.attr('title',s._dialogTitles.update);s.theDialog.show();item._showemail=[item.showemail?'on':'off'];var dtj=item.datejoined;item._datejoined=null;if(d.isString(dtj)){if(dtj.length>0){item._datejoined=d.date.stamp.fromISOString(dtj)}}
else{item._datejoined=dtj}
if(s.theDialog.isLoaded){s.theDialog.setValues(item)}
else{var conn=d.connect(s.theDialog,"onLoad", function(){s.theDialog.setValues(item);d.disconnect(conn)})}};s.do_init=function(params){var rosterdiv=d.byId(params.roster);var glayout=[[{name:'Last name',field:'lastname',width:'84px'},{name:'First name',field:'firstname',width:'64px'},{name:'Address',field:'address',colSpan:3,editable:true},{name:'Category',field:'category',width:'88px',editable:true,type:dojox.grid.cells.ComboBox,options:['regular','associate','junior','honorary','applicant','nonmember']},{name:'Send',field:'newsletter',width:'88px',editable:true,type:dojox.grid.cells.ComboBox,options:['None','USMail','Email']},{name:'E-mail',field:'email',width:'auto',editable:true}],[{name:'Company',field:'company'},{name:'Title',field:'title'},{name:'City',field:'city',width:'105px',editable:true},{name:'State',field:'state',width:'35px',editable:true},{name:'Zipcode',field:'zipcode',width:'80px',editable:true},{name:'Country',field:'country',colSpan:2},{name:'Phone',field:'phone',editable:true}]];s.rostergrid=new dojox.grid.DataGrid({store:s.rosterstore,structure:glayout,style:'height:420px;width:100%;font-size:90%;',rowSelector:"18px",rowsPerPage:100},rosterdiv);s.rostergrid.startup();d.connect(s.rostergrid,"onRowDblClick",s.rowEdit);var _rostersave=function(e){s.rosterSave();return true};var _rosterrevert=function(e){s.rosterRevert();return true};var _rosteradd=function(e){s.showAddDialog();return true};s._btnsave=new dijit.form.Button({onClick:_rostersave},'roster-save');s._btncancel=new dijit.form.Button({onClick:_rosterrevert},'roster-cancel');s._btnadd=new dijit.form.Button({onClick:_rosteradd},'roster-add');d.connect(s.rosterstore,"onNew",s.buttonsEnable);d.connect(s.rosterstore,"onSet",s.buttonsEnable);d.connect(s.rosterstore,"save",s.buttonsDisable);d.connect(s.rosterstore,"revert",s.buttonsDisable);d.query(".documentActions").style({display:'none'});d.query("#snsroster-right").style({'float':'right'});d.query("#snsroster-left").style({'float':'left'});s._dialogTitles={add:'Add Member',update:'Edit Member'};s.theDialog=new dijit.Dialog({title:s._dialogTitles.add,href:"++resource++sns.roster.js/adddlg.html"});d.style(s.theDialog.domNode,{overflow:'hidden'});s.buttonsDisable()}})(dojo);dojo.addOnLoad(function(){dojo.addClass(dojo.body(),"tundra");dojo.query('#roster-grid').forEach(function(_){sns.do_init({roster:_})})});
