
/* 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 -
 */

/* - js/effects.js - */
// http://ceh.resourcehub.ssrc.org/portal_javascripts/js/effects.js?original=1
String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()} while(++i<3)} else{if(this.slice(0,1)=='#'){if(this.length==4) for(var i=1;i<4;i++) color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7) color=this.toLowerCase()}}
return(color.length==7?color:(arguments[0]||this))};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect( function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''))}).flatten().join('')};Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect( function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''))}).flatten().join('')};Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit) window.scrollBy(0,0);return element};Element.getInlineOpacity=function(element){return $(element).style.opacity||''};Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n)} catch(e){}};var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},Transitions:{linear:Prototype.K,sinoidal: function(pos){return(-Math.cos(pos*Math.PI)/2)+.5},reverse: function(pos){return 1-pos},flicker: function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+.75)+Math.random()/4;return pos>1?1:pos},wobble: function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+.5},pulse: function(pos,pulses){return(-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2)+.5},spring: function(pos){return 1-(Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6))},none: function(pos){return 0},full: function(pos){return 1}},DefaultOptions:{duration:1.0,fps:100,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'},tagifyText: function(element){var tagifyStyle='position:relative';if(Prototype.Browser.IE) tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each( function(child){if(child.nodeType==3){child.nodeValue.toArray().each( function(character){element.insertBefore(new Element('span',{style:tagifyStyle}).update(character==' '?String.fromCharCode(160):character),child)});Element.remove(child)}})},multiple: function(element,effect){var elements;if(((typeof element=='object')||Object.isFunction(element))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each( function(element,index){new effect(element,Object.extend(options,{delay:index * options.speed+masterDelay}))})},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle: function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options)}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize: function(){this.effects=[];this.interval=null},_each: function(iterator){this.effects._each(iterator)},add: function(effect){var timestamp=new Date().getTime();var position=Object.isString(effect.options.queue)?effect.options.queue:effect.options.queue.position;switch(position){case 'front':this.effects.findAll(function(e){return e.state=='idle'}).each( function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn});break;case 'with-last':timestamp=this.effects.pluck('startOn').max()||timestamp;break;case 'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break}
effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))
this.effects.push(effect);if(!this.interval)
this.interval=setInterval(this.loop.bind(this),15)},remove: function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop: function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++)
this.effects[i]&&this.effects[i].loop(timePos)}});Effect.Queues={instances:$H(),get: function(queueName){if(!Object.isString(queueName)) return queueName;return this.instances.get(queueName)||this.instances.set(queueName,new Effect.ScopedQueue())}};Effect.Queue=Effect.Queues.get('global');Effect.Base=Class.create({position:null,start: function(options){
function codeForEvent(options,eventName){return((options[eventName+'Internal']?'this.options.'+eventName+'Internal(this);':'')+(options[eventName]?'this.options.'+eventName+'(this);':''))}
if(options&&options.transition===false) options.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;this.render=(function(){
function dispatch(effect,eventName){if(effect.options[eventName+'Internal'])
effect.options[eventName+'Internal'](effect);if(effect.options[eventName])
effect.options[eventName](effect)}
return function(pos){if(this.state==="idle"){this.state="running";dispatch(this,'beforeSetup');if(this.setup) this.setup();dispatch(this,'afterSetup')}
if(this.state==="running"){pos=(this.options.transition(pos) * this.fromToDelta)+this.options.from;this.position=pos;dispatch(this,'beforeUpdate');if(this.update) this.update(pos);dispatch(this,'afterUpdate')}}})();this.event('beforeStart');if(!this.options.sync)
Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).add(this)},loop: function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish) this.finish();this.event('afterFinish');return}
var pos=(timePos-this.startOn)/this.totalTime,frame=(pos * this.totalFrames).round();if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame}}},cancel: function(){if(!this.options.sync)
Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).remove(this);this.state='finished'},event: function(eventName){if(this.options[eventName+'Internal']) this.options[eventName+'Internal'](this);if(this.options[eventName]) this.options[eventName](this)},inspect: function(){var data=$H();for(property in this)
if(!Object.isFunction(this[property])) data.set(property,this[property]);return '#<Effect:'+data.inspect()+',options:'+$H(this.options).inspect()+'>'}});Effect.Parallel=Class.create(Effect.Base,{initialize: function(effects){this.effects=effects||[];this.start(arguments[1])},update: function(position){this.effects.invoke('render',position)},finish: function(position){this.effects.each( function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish) effect.finish(position);effect.event('afterFinish')})}});Effect.Tween=Class.create(Effect.Base,{initialize: function(object,from,to){object=Object.isString(object)?$(object):object;var args=$A(arguments),method=args.last(),options=args.length==5?args[3]:null;this.method=Object.isFunction(method)?method.bind(object):Object.isFunction(object[method])?object[method].bind(object):
function(value){object[method]=value};this.start(Object.extend({from:from,to:to},options||{}))},update: function(position){this.method(position)}});Effect.Event=Class.create(Effect.Base,{initialize: function(){this.start(Object.extend({duration:0},arguments[0]||{}))},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize: function(element){this.element=$(element);if(!this.element) throw(Effect._elementDoesNotExistError);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options)},update: function(position){this.element.setOpacity(position)}});Effect.Move=Class.create(Effect.Base,{initialize: function(element){this.element=$(element);if(!this.element) throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options)},setup: function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop}},update: function(position){this.element.setStyle({left:(this.options.x * position+this.originalLeft).round()+'px',top:(this.options.y * position+this.originalTop).round()+'px'})}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}))};Effect.Scale=Class.create(Effect.Base,{initialize: function(element,percent){this.element=$(element);if(!this.element) throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options)},setup: function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each( function(k){this.originalStyle[k]=this.element.style[k]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each( function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if (/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]},update: function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor * position);if(this.options.scaleContent&&this.fontSize)
this.element.setStyle({fontSize:this.fontSize * currentScale+this.fontSizeType});this.setDimensions(this.dims[0] * currentScale,this.dims[1] * currentScale)},finish: function(position){if(this.restoreAfterFinish) this.element.setStyle(this.originalStyle)},setDimensions: function(height,width){var d={};if(this.options.scaleX) d.width=width.round()+'px';if(this.options.scaleY) d.height=height.round()+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY) d.top=this.originalTop-topd+'px';if(this.options.scaleX) d.left=this.originalLeft-leftd+'px'} else{if(this.options.scaleY) d.top=-topd+'px';if(this.options.scaleX) d.left=-leftd+'px'}}
this.element.setStyle(d)}});Effect.Highlight=Class.create(Effect.Base,{initialize: function(element){this.element=$(element);if(!this.element) throw(Effect._elementDoesNotExistError);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options)},setup: function(){if(this.element.getStyle('display')=='none'){this.cancel();return}
this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle('background-image');this.element.setStyle({backgroundImage:'none'})}
if(!this.options.endcolor)
this.options.endcolor=this.element.getStyle('background-color').parseColor('#ffffff');if(!this.options.restorecolor)
this.options.restorecolor=this.element.getStyle('background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this))},update: function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart())}.bind(this))})},finish: function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(element){var options=arguments[1]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset();if(options.offset) elementOffsets[1]+=options.offset;return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1],options,
function(p){scrollTo(scrollOffsets.left,p.round())})};Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal: function(effect){if(effect.options.to!=0) return;effect.element.hide().setStyle({opacity:oldOpacity})}},arguments[1]||{});return new Effect.Opacity(element,options)};Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal: function(effect){effect.element.forceRerendering()},beforeSetup: function(effect){effect.element.setOpacity(effect.options.from).show()}},arguments[1]||{});return new Effect.Opacity(element,options)};Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal: function(effect){Position.absolutize(effect.effects[0].element)},afterFinishInternal: function(effect){effect.effects[0].element.hide().setStyle(oldStyle)}},arguments[1]||{}))};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal: function(effect){effect.element.hide().undoClipping()}},arguments[1]||{}))};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup: function(effect){effect.element.makeClipping().setStyle({height:'0px'}).show()},afterFinishInternal: function(effect){effect.element.undoClipping()}},arguments[1]||{}))};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal: function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup: function(effect){effect.element.makePositioned().makeClipping()},afterFinishInternal: function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity})}})}},arguments[1]||{}))};Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left'),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup: function(effect){effect.effects[0].element.makePositioned()},afterFinishInternal: function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle)}},arguments[1]||{}))};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20,duration:0.5},arguments[1]||{});var distance=parseFloat(options.distance);var split=parseFloat(options.duration)/10.0;var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:distance,y:0,duration:split,afterFinishInternal: function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal: function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal: function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal: function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal: function(effect){new Effect.Move(effect.element,{x:-distance,y:0,duration:split,afterFinishInternal: function(effect){effect.element.undoPositioned().setStyle(oldStyle)}})}})}})}})}})}})};Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup: function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera) effect.element.setStyle({top:''});effect.element.makeClipping().setStyle({height:'0px'}).show()},afterUpdateInternal: function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'})},afterFinishInternal: function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom})}},arguments[1]||{}))};Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup: function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera) effect.element.setStyle({top:''});effect.element.makeClipping().show()},afterUpdateInternal: function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'})},afterFinishInternal: function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom})}},arguments[1]||{}))};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup: function(effect){effect.element.makeClipping()},afterFinishInternal: function(effect){effect.element.hide().undoClipping()}})};Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case 'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case 'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case 'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case 'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case 'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break}
return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup: function(effect){effect.element.hide().makeClipping().makePositioned()},afterFinishInternal: function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup: function(effect){effect.effects[0].element.setStyle({height:'0px'}).show()},afterFinishInternal: function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle)}},options))}})};Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case 'top-left':moveX=moveY=0;break;case 'top-right':moveX=dims.width;moveY=0;break;case 'bottom-left':moveX=0;moveY=dims.height;break;case 'bottom-right':moveX=dims.width;moveY=dims.height;break;case 'center':moveX=dims.width/2;moveY=dims.height/2;break}
return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal: function(effect){effect.effects[0].element.makePositioned().makeClipping()},afterFinishInternal: function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle)}},options))};Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{},oldOpacity=element.getInlineOpacity(),transition=options.transition||Effect.Transitions.linear,reverser=function(pos){return 1-transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2)+.5)};return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal: function(effect){effect.element.setStyle({opacity:oldOpacity})}},options),{transition:reverser}))};Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal: function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal: function(effect){effect.element.hide().undoClipping().setStyle(oldStyle)}})}},arguments[1]||{}))};Effect.Morph=Class.create(Effect.Base,{initialize: function(element){this.element=$(element);if(!this.element) throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(options.style)) this.style=$H(options.style);else{if(options.style.include(':'))
this.style=options.style.parseStyle();else{this.element.addClassName(options.style);this.style=$H(this.element.getStyles());this.element.removeClassName(options.style);var css=this.element.getStyles();this.style=this.style.reject(function(style){return style.value==css[style.key]});options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){effect.element.style[transform.style]=''})}}}
this.start(options)},setup: function(){
function parseColor(color){if(!color||['rgba(0, 0, 0, 0)','transparent'].include(color)) color='#ffffff';color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16)})}
this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color'} else if(property=='opacity'){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1})} else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null}
var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit}}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))))})},update: function(position){var style={},transform,i=this.transforms.length;while(i--)
style[(transform=this.transforms[i]).style]=transform.unit=='color'?'#'+(Math.round(transform.originalValue[0]+(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+(Math.round(transform.originalValue[1]+(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+(Math.round(transform.originalValue[2]+(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():(transform.originalValue+(transform.targetValue-transform.originalValue) * position).toFixed(3)+(transform.unit===null?'':transform.unit);this.element.setStyle(style,true)}});Effect.Transform=Class.create({initialize: function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks)},addTracks: function(tracks){tracks.each(function(track){track=$H(track);var data=track.values().first();this.tracks.push($H({ids:track.keys().first(),effect:Effect.Morph,options:{style:data}}))}.bind(this));return this},play: function(){return new Effect.Parallel(this.tracks.map(function(track){var ids=track.get('ids'),effect=track.get('effect'),options=track.get('options');var elements=[$(ids)||$$(ids)].flatten();return elements.map(function(e){return new effect(e,Object.extend({sync:true},options))})}).flatten(),this.options)}});Element.CSS_PROPERTIES=$w('backgroundColor backgroundPosition borderBottomColor borderBottomStyle '+'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth '+'borderRightColor borderRightStyle borderRightWidth borderSpacing '+'borderTopColor borderTopStyle borderTopWidth bottom clip color '+'fontSize fontWeight height left letterSpacing lineHeight '+'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+'maxWidth minHeight minWidth opacity outlineColor outlineOffset '+'outlineWidth paddingBottom paddingLeft paddingRight paddingTop '+'right textIndent top width wordSpacing zIndex');Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement('div');String.prototype.parseStyle=function(){var style,styleRules=$H();if(Prototype.Browser.WebKit)
style=new Element('div',{style:this}).style;else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';style=String.__parseStyleElement.childNodes[0].style}
Element.CSS_PROPERTIES.each(function(property){if(style[property]) styleRules.set(property,style[property])});if(Prototype.Browser.IE&&this.include('opacity'))
styleRules.set('opacity',this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);return styleRules};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(element){var css=document.defaultView.getComputedStyle($(element),null);return Element.CSS_PROPERTIES.inject({}, function(styles,property){styles[property]=css[property];return styles})}} else{Element.getStyles=function(element){element=$(element);var css=element.currentStyle,styles;styles=Element.CSS_PROPERTIES.inject({}, function(results,property){results[property]=css[property];return results});if(!styles.opacity) styles.opacity=element.getOpacity();return styles}}
Effect.Methods={morph: function(element,style){element=$(element);new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element},visualEffect: function(element,effect,options){element=$(element);var s=effect.dasherize().camelize(),klass=s.charAt(0).toUpperCase()+s.substring(1);new Effect[klass](element,options);return element},highlight: function(element,options){element=$(element);new Effect.Highlight(element,options);return element}};$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+'pulsate shake puff squish switchOff dropOut').each(
function(effect){Effect.Methods[effect]=function(element,options){element=$(element);Effect[effect.charAt(0).toUpperCase()+effect.substring(1)](element,options);return element}});$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
function(f){Effect.Methods[f]=Element[f]});Element.addMethods(Effect.Methods);

/* - js/modalbox.js - */
// http://ceh.resourcehub.ssrc.org/portal_javascripts/js/modalbox.js?original=1
if(!window.Modalbox)
var Modalbox=new Object();Modalbox.Methods={overrideAlert:false,focusableElements:new Array,currFocused:0,initialized:false,active:true,options:{title:"ModalBox Window",overlayClose:true,width:500,height:90,overlayOpacity:.65,overlayDuration:.25,slideDownDuration:.5,slideUpDuration:.5,resizeDuration:.25,inactiveFade:true,transitions:true,loadingString:"Please wait. Loading...",closeString:"Close window",closeValue:"&times;",params:{},method:'get',autoFocusing:true,aspnet:false},_options:new Object,setOptions: function(options){Object.extend(this.options,options||{})},_init: function(options){Object.extend(this._options,this.options);this.setOptions(options);this.MBoverlay=new Element("div",{id:"MB_overlay",opacity:"0"});this.MBwindow=new Element("div",{id:"MB_window",style:"display: none"}).update(this.MBframe=new Element("div",{id:"MB_frame"}).update(this.MBheader=new Element("div",{id:"MB_header"}).update(this.MBcaption=new Element("div",{id:"MB_caption"}))));this.MBclose=new Element("a",{id:"MB_close",title:this.options.closeString,href:"#"}).update("<span>"+this.options.closeValue+"</span>");this.MBheader.insert({'bottom':this.MBclose});this.MBcontent=new Element("div",{id:"MB_content"}).update(this.MBloading=new Element("div",{id:"MB_loading"}).update(this.options.loadingString));this.MBframe.insert({'bottom':this.MBcontent});var injectToEl=this.options.aspnet?$(document.body).down('form'):$(document.body);injectToEl.insert({'top':this.MBwindow});injectToEl.insert({'top':this.MBoverlay});this.initScrollX=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft;this.initScrollY=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;this.hideObserver=this._hide.bindAsEventListener(this);this.kbdObserver=this._kbdHandler.bindAsEventListener(this);this._initObservers();this.initialized=true},show: function(content,options){if(!this.initialized) this._init(options);this.content=content;this.setOptions(options);if(this.options.title)
$(this.MBcaption).update(this.options.title);else{$(this.MBheader).hide();$(this.MBcaption).hide()}
if(this.MBwindow.style.display=="none"){this._appear();this.event("onShow")}
else{this._update();this.event("onUpdate")}},hide: function(options){if(this.initialized){if(options&&typeof options.element!='function') Object.extend(this.options,options);this.event("beforeHide");if(this.options.transitions)
Effect.SlideUp(this.MBwindow,{duration:this.options.slideUpDuration,transition:Effect.Transitions.sinoidal,afterFinish:this._deinit.bind(this)});else{$(this.MBwindow).hide();this._deinit()}} else throw("Modalbox is not initialized.")},_hide: function(event){event.stop();if(event.element().id=='MB_overlay'&&!this.options.overlayClose) return false;this.hide()},alert: function(message){var html='<div class="MB_alert"><p>'+message+'</p><input type="button" onclick="Modalbox.hide()" value="OK" /></div>';Modalbox.show(html,{title:'Alert: '+document.title,width:300})},_appear: function(){if(Prototype.Browser.IE&&!navigator.appVersion.match(/\b7.0\b/)) { // Preparing IE 6 for showing modalbox
window.scrollTo(0,0);this._prepareIE("100%","hidden")}
this._setWidth();this._setPosition();if(this.options.transitions){$(this.MBoverlay).setStyle({opacity:0});new Effect.Fade(this.MBoverlay,{from:0,to:this.options.overlayOpacity,duration:this.options.overlayDuration,afterFinish: function(){new Effect.SlideDown(this.MBwindow,{duration:this.options.slideDownDuration,transition:Effect.Transitions.sinoidal,afterFinish: function(){this._setPosition();this.loadContent()}.bind(this)})}.bind(this)})} else{$(this.MBoverlay).setStyle({opacity:this.options.overlayOpacity});$(this.MBwindow).show();this._setPosition();this.loadContent()}
this._setWidthAndPosition=this._setWidthAndPosition.bindAsEventListener(this);Event.observe(window,"resize",this._setWidthAndPosition)},resize: function(byWidth,byHeight,options){var wHeight=$(this.MBwindow).getHeight();var wWidth=$(this.MBwindow).getWidth();var hHeight=$(this.MBheader).getHeight();var cHeight=$(this.MBcontent).getHeight();var newHeight=((wHeight-hHeight+byHeight)<cHeight)?(cHeight+hHeight-wHeight):byHeight;if(options) this.setOptions(options);if(this.options.transitions){new Effect.ScaleBy(this.MBwindow,byWidth,newHeight,{duration:this.options.resizeDuration,afterFinish: function(){this.event("_afterResize");this.event("afterResize")}.bind(this)})} else{this.MBwindow.setStyle({width:wWidth+byWidth+"px",height:wHeight+newHeight+"px"});setTimeout(function(){this.event("_afterResize");this.event("afterResize")}.bind(this),1)}},resizeToContent: function(options){var byHeight=this.options.height-this.MBwindow.offsetHeight;if(byHeight!=0){if(options) this.setOptions(options);Modalbox.resize(0,byHeight)}},resizeToInclude: function(element,options){var el=$(element);var elHeight=el.getHeight()+parseInt(el.getStyle('margin-top'))+parseInt(el.getStyle('margin-bottom'))+parseInt(el.getStyle('border-top-width'))+parseInt(el.getStyle('border-bottom-width'));if(elHeight>0){if(options) this.setOptions(options);Modalbox.resize(0,elHeight)}},_update: function(){$(this.MBcontent).update("");this.MBcontent.appendChild(this.MBloading);$(this.MBloading).update(this.options.loadingString);this.currentDims=[this.MBwindow.offsetWidth,this.MBwindow.offsetHeight];Modalbox.resize((this.options.width-this.currentDims[0]),(this.options.height-this.currentDims[1]),{_afterResize:this._loadAfterResize.bind(this)})},loadContent: function(){if(this.event("beforeLoad")!=false){if(typeof this.content=='string'){var htmlRegExp=new RegExp(/<\/?[^>]+>/gi);if(htmlRegExp.test(this.content)){this._insertContent(this.content.stripScripts());this._putContent(function(){this.content.extractScripts().map(function(script){return eval(script.replace("<!--","").replace("// -->",""))}.bind(window))}.bind(this))} else
new Ajax.Request(this.content,{method:this.options.method.toLowerCase(),parameters:this.options.params,onSuccess: function(transport){var response=new String(transport.responseText);this._insertContent(transport.responseText.stripScripts());this._putContent(function(){response.extractScripts().map(function(script){return eval(script.replace("<!--","").replace("// -->",""))}.bind(window))})}.bind(this),onException: function(instance,exception){Modalbox.hide();throw('Modalbox Loading Error: '+exception)}})} else if(typeof this.content=='object'){this._insertContent(this.content);this._putContent()} else{Modalbox.hide();throw('Modalbox Parameters Error: Please specify correct URL or HTML element (plain HTML or object)')}}},_insertContent: function(content){$(this.MBcontent).hide().update("");if(typeof content=='string'){setTimeout(function(){this.MBcontent.update(content)}.bind(this),1)} else if(typeof content=='object'){var _htmlObj=content.cloneNode(true);if(content.id) content.id="MB_"+content.id;$(content).select('*[id]').each(function(el){el.id="MB_"+el.id});this.MBcontent.appendChild(_htmlObj);this.MBcontent.down().show();if(Prototype.Browser.IE)
$$("#MB_content select").invoke('setStyle',{'visibility':''})}},_putContent: function(callback){if(this.options.height==this._options.height){setTimeout(function(){Modalbox.resize(0,$(this.MBcontent).getHeight()-$(this.MBwindow).getHeight()+$(this.MBheader).getHeight(),{afterResize: function(){this.MBcontent.show().makePositioned();this.focusableElements=this._findFocusableElements();this._setFocus();setTimeout(function(){if(callback!=undefined)
callback();this.event("afterLoad")}.bind(this),1)}.bind(this)})}.bind(this),1)} else{this._setWidth();this.MBcontent.setStyle({overflow:'auto',height:$(this.MBwindow).getHeight()-$(this.MBheader).getHeight()-13+'px'});this.MBcontent.show();this.focusableElements=this._findFocusableElements();this._setFocus();setTimeout(function(){if(callback!=undefined)
callback();this.event("afterLoad")}.bind(this),1)}},activate: function(options){this.setOptions(options);this.active=true;$(this.MBclose).observe("click",this.hideObserver);if(this.options.overlayClose)
$(this.MBoverlay).observe("click",this.hideObserver);$(this.MBclose).show();if(this.options.transitions&&this.options.inactiveFade)
new Effect.Appear(this.MBwindow,{duration:this.options.slideUpDuration})},deactivate: function(options){this.setOptions(options);this.active=false;$(this.MBclose).stopObserving("click",this.hideObserver);if(this.options.overlayClose)
$(this.MBoverlay).stopObserving("click",this.hideObserver);$(this.MBclose).hide();if(this.options.transitions&&this.options.inactiveFade)
new Effect.Fade(this.MBwindow,{duration:this.options.slideUpDuration,to:.75})},_initObservers: function(){$(this.MBclose).observe("click",this.hideObserver);if(this.options.overlayClose)
$(this.MBoverlay).observe("click",this.hideObserver);if(Prototype.Browser.IE)
Event.observe(document,"keydown",this.kbdObserver);else
Event.observe(document,"keypress",this.kbdObserver)},_removeObservers: function(){$(this.MBclose).stopObserving("click",this.hideObserver);if(this.options.overlayClose)
$(this.MBoverlay).stopObserving("click",this.hideObserver);if(Prototype.Browser.IE)
Event.stopObserving(document,"keydown",this.kbdObserver);else
Event.stopObserving(document,"keypress",this.kbdObserver)},_loadAfterResize: function(){this._setWidth();this._setPosition();this.loadContent()},_setFocus: function(){if(this.focusableElements.length>0&&this.options.autoFocusing==true){var firstEl=this.focusableElements.find(function(el){return el.tabIndex==1})||this.focusableElements.first();this.currFocused=this.focusableElements.toArray().indexOf(firstEl);firstEl.focus()} else if($(this.MBclose).visible())
$(this.MBclose).focus()},_findFocusableElements: function(){this.MBcontent.select('input:not([type~=hidden]), select, textarea, button, a[href]').invoke('addClassName','MB_focusable');return this.MBcontent.select('.MB_focusable')},_kbdHandler: function(event){var node=event.element();switch(event.keyCode){case Event.KEY_TAB:event.stop();if(node!=this.focusableElements[this.currFocused])
this.currFocused=this.focusableElements.toArray().indexOf(node);if(!event.shiftKey){if(this.currFocused==this.focusableElements.length-1){this.focusableElements.first().focus();this.currFocused=0} else{this.currFocused++;this.focusableElements[this.currFocused].focus()}} else{if(this.currFocused==0){this.focusableElements.last().focus();this.currFocused=this.focusableElements.length-1} else{this.currFocused--;this.focusableElements[this.currFocused].focus()}}
break;case Event.KEY_ESC:if(this.active) this._hide(event);break;case 32:this._preventScroll(event);break;case 0:if(event.which==32) this._preventScroll(event);break;case Event.KEY_UP:case Event.KEY_DOWN:case Event.KEY_PAGEDOWN:case Event.KEY_PAGEUP:case Event.KEY_HOME:case Event.KEY_END:if(Prototype.Browser.WebKit&&!["textarea","select"].include(node.tagName.toLowerCase()))
event.stop();else if((node.tagName.toLowerCase()=="input"&&["submit","button"].include(node.type))||(node.tagName.toLowerCase()=="a"))
event.stop();break}},_preventScroll: function(event){if(!["input","textarea","select","button"].include(event.element().tagName.toLowerCase()))
event.stop()},_deinit: function(){this._removeObservers();Event.stopObserving(window,"resize",this._setWidthAndPosition);if(this.options.transitions){Effect.toggle(this.MBoverlay,'appear',{duration:this.options.overlayDuration,afterFinish:this._removeElements.bind(this)})} else{this.MBoverlay.hide();this._removeElements()}
$(this.MBcontent).setStyle({overflow:'',height:''})},_removeElements: function(){$(this.MBoverlay).remove();$(this.MBwindow).remove();if(Prototype.Browser.IE&&!navigator.appVersion.match(/\b7.0\b/)){this._prepareIE("","");window.scrollTo(this.initScrollX,this.initScrollY)}
if(typeof this.content=='object'){if(this.content.id&&this.content.id.match(/MB_/)){this.content.id=this.content.id.replace(/MB_/,"")}
this.content.select('*[id]').each(function(el){el.id=el.id.replace(/MB_/,"")})}
this.initialized=false;this.event("afterHide");this.setOptions(this._options)},_setWidth: function(){$(this.MBwindow).setStyle({width:this.options.width+"px",height:this.options.height+"px"})},_setPosition: function(){$(this.MBwindow).setStyle({left:Math.round((Element.getWidth(document.body)-Element.getWidth(this.MBwindow))/2)+"px"})},_setWidthAndPosition: function(){$(this.MBwindow).setStyle({width:this.options.width+"px"});this._setPosition()},_getScrollTop: function(){var theTop;if(document.documentElement&&document.documentElement.scrollTop)
theTop=document.documentElement.scrollTop;else if(document.body)
theTop=document.body.scrollTop;return theTop},_prepareIE: function(height,overflow){$$('html, body').invoke('setStyle',{width:height,height:height,overflow:overflow});$$("select").invoke('setStyle',{'visibility':overflow})},event: function(eventName){if(this.options[eventName]){var returnValue=this.options[eventName]();this.options[eventName]=null;if(returnValue!=undefined)
return returnValue;else
return true}
return true}};Object.extend(Modalbox,Modalbox.Methods);if(Modalbox.overrideAlert) window.alert=Modalbox.alert;Effect.ScaleBy=Class.create();Object.extend(Object.extend(Effect.ScaleBy.prototype,Effect.Base.prototype),{initialize: function(element,byWidth,byHeight,options){this.element=$(element)
var options=Object.extend({scaleFromTop:true,scaleMode:'box',scaleByWidth:byWidth,scaleByHeight:byHeight},arguments[3]||{});this.start(options)},setup: function(){this.elementPositioning=this.element.getStyle('position');this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];this.deltaY=this.options.scaleByHeight;this.deltaX=this.options.scaleByWidth},update: function(position){var currentHeight=this.dims[0]+(this.deltaY * position);var currentWidth=this.dims[1]+(this.deltaX * position);currentHeight=(currentHeight>0)?currentHeight:0;currentWidth=(currentWidth>0)?currentWidth:0;this.setDimensions(currentHeight,currentWidth)},setDimensions: function(height,width){var d={};d.width=width+'px';d.height=height+'px';var topd=Math.round((height-this.dims[0])/2);var leftd=Math.round((width-this.dims[1])/2);if(this.elementPositioning=='absolute'||this.elementPositioning=='fixed'){if(!this.options.scaleFromTop) d.top=this.originalTop-topd+'px';d.left=this.originalLeft-leftd+'px'} else{if(!this.options.scaleFromTop) d.top=-topd+'px';d.left=-leftd+'px'}
this.element.setStyle(d)}});

/* - ++resource++rdb-search.js - */
// http://ceh.resourcehub.ssrc.org/portal_javascripts/++resource++rdb-search.js?original=1
var possible_portal_types=Array('Person','Institution','Resource','Project','Network','Dataset');var possible_criteria=Array('questions','topics','disciplines','locations','institutional_location','geographic_locations','country','people_role','people_gender','institution_other','resource_other','current_projects');var element_cache=Array();
function $_(id){var el=element_cache[id];if(el==null){el=$(id);element_cache[id]=el}
return el}
function _questions_exist(){return jQuery('#criteria-questions input[type=checkbox]').length!=0}
var valid_criteria={'Person':Array('topics','disciplines','locations','institutional_location','people_role','people_gender'),'Institution':Array('topics','country','institution_other'),'Resource':Array('topics','geographic_locations','resource_other'),'Project':Array('topics','current_projects'),'Network':Array('topics'),'Dataset':Array('topics','geographic_locations')};
function toggle_search_tab(portal_type){var was_selected=null;for(var x=0;x<possible_portal_types.length;x++){var possible=possible_portal_types[x];if(Element.hasClassName($_('tab-'+possible),'selected'))
was_selected=possible;Element.removeClassName($_('tab-'+possible),'selected')}
for(var x=0;x<possible_criteria.length;x++){var possible=possible_criteria[x];Element.removeClassName($_('subtab-'+possible),'visible')}
if(portal_type!=was_selected){Element.addClassName($_('tab-'+portal_type),'selected');for(var x=0;x<valid_criteria[portal_type].length;x++){var possible=valid_criteria[portal_type][x];Element.addClassName($_('subtab-'+possible),'visible')}
$_('portal_types').value=portal_type} else{$_('portal_types').value='';activate_criteria_tab('topics')}
if(portal_type!=was_selected){var el=$_('portlet-search-item-types');if(el!=null)
el.innerHTML=portal_type} else{var el=$_('portlet-search-item-types');if(el!=null)
el.innerHTML='All'}}
function activate_criteria_tab(criteria){var wrapper=jQuery("div#rdb-search-form-wrapper");var height_before=wrapper.height();var was_selected=jQuery("#subtab-"+criteria+".selected").length==1;for(var x=0;x<possible_criteria.length;x++){var possible=possible_criteria[x];Element.removeClassName($_('subtab-'+possible),'selected');Element.removeClassName($_('criteria-'+possible),'visible')}
if(!was_selected){Element.addClassName($_('subtab-'+criteria),'selected');Element.addClassName($_('subtab-'+criteria),'visible');Element.addClassName($_('criteria-'+criteria),'visible')}
wrapper.trigger("rdb-search-form-resized",[wrapper.height()-height_before])}
function toggle_advanced(){var search_block=$_('advanced-search-block');var search_link=$_('advanced-search-link');if(Element.hasClassName(search_block,'visible')){Element.removeClassName(search_block,'visible');Element.removeClassName(search_link,'active')} else{Element.addClassName(search_block,'visible');Element.addClassName(search_link,'active')}}
function reset_search_portlet(){var portlet=$('portlet-searching-for');if(portlet!=null){portlet.innerHTML='<dl id="portlet-search-terms"><dt>Profile Type</dt><dd id="portlet-search-item-types">All</dd>'}}
function clear_search(){var form=document.forms.rdb_search;reset_search_portlet();form.reset();unactivate_search_tab()}
function unactivate_search_tab(){var was_selected=null;for(var x=0;x<possible_portal_types.length;x++){var possible=possible_portal_types[x];if(Element.hasClassName($_('tab-'+possible),'selected'))
was_selected=possible}
if(was_selected!=null)
toggle_search_tab(was_selected)}
function preserve_search_criteria(form){for(var x=0;x<form.elements.length;x++){var el=form.elements[x];var name=el.name;if(name.indexOf('form.')>-1&&name!='form.portal_types'&&name!='form.search_text'){var value=el.value;if(value.length>0){var group=extract_group_from(name);toggle_portlet_value(group,value)}}}}
function _display_add_new_item(pt){var add_new_item=null;if(pt=="Dataset")
add_new_item=$('form-add-new-item-dataset');else
add_new_item=$('form-add-new-item');if(add_new_item!=null)
Element.removeClassName(add_new_item,'hiddenStructure')}
var rdb_search_form_initialized=0;
function _init_search_form(){if(rdb_search_form_initialized==1)
return;reset_search_portlet();var questions_exist=_questions_exist();if(questions_exist){valid_criteria['Person'].unshift('questions')
valid_criteria['Institution'].unshift('questions')
valid_criteria['Resource'].unshift('questions')}
Element.addClassName($_('subtab-topics'),'visible');if(questions_exist)
Element.addClassName($_('subtab-questions'),'visible');var portal_types=document.forms.rdb_search['form.portal_types'];if(portal_types!=null){pt=portal_types.value;_display_add_new_item(pt);if(pt!="")
toggle_search_tab(portal_types.value)}
preserve_search_criteria(document.forms.search_args);rdb_search_form_initialized=1}
function init_search_form(){if(window.addEventListener)
window.addEventListener("load",_init_search_form,false);else
window.attachEvent('onload',_init_search_form)}
function _init_search_results_form(){reset_search_portlet();preserve_search_criteria(document.forms.search_args);var el=$_('portlet-search-item-types');var pt_el=document.forms.search_args['form.portal_types'];if(el!=null&&pt_el!=null&&pt_el.value.length>0)
el.innerHTML=pt_el.value;if(pt_el!=null)
_display_add_new_item(pt_el.value)}
function init_search_results_form(){if(window.addEventListener)
window.addEventListener("load",_init_search_results_form,false);else
window.attachEvent('onload',_init_search_results_form)}


/* - topicwidget.js - */
// http://ceh.resourcehub.ssrc.org/portal_javascripts/topicwidget.js?original=1
var show_select_lock=false;
function show_select(sb_id){if(show_select_lock==true){return}
show_select_lock=true;if($(sb_id).style.display=='none'){$(sb_id).style.display='block';show_select_lock=false} else{$(sb_id).style.display='none';show_select_lock=false}}
function handle_change(check,included_list){var subchecks=check.parentNode.getElementsByTagName('INPUT');for(var x=0;x<subchecks.length;x++){var subcheck=subchecks[x];subcheck.checked=check.checked;handle_single_change(subcheck,included_list)}}
function handle_single_change(check,included_list){var newid=check.id+'_text';var labelid=check.id+'_label';if(check.checked){if(document.getElementById(newid)==null){var new_text=document.createElement('span');new_text.id=newid;new_text.className="included_topic_text";var fake_check='<input type="checkbox" checked="checked" disabled="false" />';new_text.innerHTML=fake_check+' '+$(labelid).innerHTML;new_text.style.display='none';$(included_list).appendChild(new_text);$(included_list).appendChild(document.createTextNode(' '));new_text.style.display='inline'}} else if(document.getElementById(newid)!=null){var del_func=function(e){document.getElementById(included_list).removeChild(e.element)}
document.getElementById(included_list).removeChild($(newid))}}
function sync_labels(sb_id,included_list){var checkboxes=$(sb_id).getElementsByTagName('input');for(var i=0;i<checkboxes.length;i++){var check=checkboxes[i];if(check.checked){handle_single_change(checkboxes[i],included_list)}}}
function handle_create(field,tabindex,folksonomy,addtextid){if($(addtextid).value==''){return}
var new_item=document.createElement('li');var old_id=field+'_'+String(tabindex-1);var new_checkbox=$(old_id).cloneNode(false);var new_label=$(old_id+"_label").cloneNode(false);var new_value=$(addtextid).value.escapeHTML();var new_value_tn=document.createTextNode(new_value)
var new_id=field+'_'+ ++tabindex;new_checkbox.id=new_id;new_label.id=new_id+"_label";new_label.htmlFor=new_id;new_label.appendChild(new_value_tn);new_checkbox.value=new_value;new_item.appendChild(new_checkbox);new_item.appendChild(new_label);$(folksonomy).appendChild(new_item);new_checkbox.checked=true;handle_change(new_checkbox)
$(addtextid).value=''}


/* - resourceref.js - */
// http://ceh.resourcehub.ssrc.org/portal_javascripts/resourceref.js?original=1
function modalbox_show(url,title){Modalbox.show(url,{title:title,height:document.viewport.getHeight()-20,overlayOpacity:.2,overlayDuration:.0,slideDownDuration:.2,slideUpDuration:.2,width:600})}
function resourcebrowser_open_search(portal_type){var url='search-and-add-popup'+'?form.portal_type:str='+portal_type;modalbox_show(url,'Search');resourcebrowser_added()}
function resourcebrowser_open_browser(field_name,in_url,field_real_name,portal_type){var url=in_url+'/'+'search-and-add-popup'+'?field_name='+field_name+'&form.display_inserting:bool=true'+'&form.portal_type:str='+portal_type;modalbox_show(url,'Browse');resourcebrowser_added()}
function resourcebrowser_edit_metadata(metadata_url){modalbox_show(metadata_url+'/@@edit-affiliation-metadata','Edit Affiliation');edit_affiliation_metadata_added()}
function resourcebrowser_remove_ref(uid,field_name){multi=1;if(multi){list=document.getElementById(field_name);list=list.options;for(var x=list.length-1;x>=0;x--){if(list[x].value==uid)
list[x]=null}
for(var x=0;x<list.length;x++){list[x].selected='selected'}
widget=document.getElementById('select-'+field_name+'-'+uid);widget.parentNode.removeChild(widget)} else{element=document.getElementById(widget_id);label_element=document.getElementById(widget_id+'_label');label_element.value="";element.value=""}}
function add_affiliation(uid,field_name,callback){var loc=window.location;loc=loc.protocol+'//'+loc.host+loc.pathname;loc=loc.sub('base_edit$','').sub('edit$','');new Ajax.Request(loc+'addAffiliation?name='+field_name+'&other='+uid,{method:'get',onSuccess:
function(transport){widget=$('archetypes-fieldname-'+field_name);widget.innerHTML=transport.responseText;if(callback!=null)
callback()}})}
function confirm_resourcebrowser_remove_ref(uid,field_name){var answer=confirm("Are you sure you want to delete this affiliation? "+"The "+field_name+" profile itself will not be "+"deleted.");if(answer){resourcebrowser_remove_ref(uid,field_name)}}
function go(url,new_window){if(new_window==true){window.open(url)} else{window.location=url}}
function spinner(el){el.update('<div id="MB_loading">Please wait. Loading...</div>')}
function resourcebrowser_add_ref(uid){field_name_el=document.getElementById('field_name');field_name=field_name_el.value;spinner($($$('.resourcebrowser')[0]));add_affiliation(uid,field_name, function(){var edit=jQuery('#select-'+field_name+'-'+uid+' input.edit');if(edit.length>0)
edit.click();else
Modalbox.hide()})}
function resourcebrowser_import(url){window.location=url+'/@@import_into_hub'}
function resourcebrowser_added(){if($('zc.page.browser_form_popup')==null){setTimeout('resourcebrowser_added()',150);return}
Event.observe('zc.page.browser_form_popup','submit',
function(event){Event.stop(event);spinner($('results'));$('zc.page.browser_form_popup').request({onSuccess: function(t){$('results').update(t.responseText);results_added();Modalbox._putContent()}})});Modalbox._putContent()}
function results_added(){var button=jQuery('#search-and-add-create-done');if(button!=null)
button.remove();var button_wrapper=jQuery('#search-and-add-create').parent().appendTo(jQuery('#search-and-add-actionButtons'));button=button_wrapper.children();button.show();button[0].id='search-and-add-create-done';$$('#results .listingBar a').each(function(el){el.observe('click',
function(event){spinner($('results'));new Ajax.Request(Event.element(event).href,{method:'get',onSuccess: function(t){$('results').update(t.responseText);results_added();Modalbox._putContent()}});Event.stop(event)})})}
function edit_affiliation_metadata_added(){if($('edit-affiliation-metadata')==null){setTimeout('edit_affiliation_metadata_added()',150);return}
form=$$('#edit-affiliation-metadata form')[0]
Event.observe(form,'submit',
function(event){Event.stop(event);$(form).request({onSuccess: function(t){var fieldname='institution';if($('archetypes-fieldname-person')!=null)
fieldname='person';refresh_widget(fieldname, function(){Modalbox.hide()})}});spinner($('edit-affiliation-metadata'))})}
function refresh_widget(field_name,callback){var loc=window.location;loc=loc.protocol+'//'+loc.host+loc.pathname;loc=loc.sub('base_edit$','').sub('edit$','');new Ajax.Request(loc+'refreshWidget?name='+field_name,{method:'get',onSuccess: function(transport){widget=$('archetypes-fieldname-'+field_name);widget.innerHTML=transport.responseText;if(callback!=null)
callback()}})}
function popup_search(){window.name='main';portal_type=document.getElementById('portal_type').value;resourcebrowser_open_search(portal_type)}

