
LITHIUM.SearchForm=Class.create({'initialize':function(element,nodes){this.element=$(element);this.nodes=nodes;this.searchSelectElement=this.element.down(".search-granularity");this.searchButtonElement=this.element.down("input[type=submit]");Event.observe(this.searchSelectElement,'change',this.updateSearchButtonTitle.bindAsEventListener(this));this.updateSearchButtonTitle();},'updateSearchButtonTitle':function(){var currentOptionValue=$(this.searchSelectElement).value;$A(this.nodes.nodes).each(function(node){if(node.nodeName==currentOptionValue){this.searchButtonElement.title=node.nodeTitle;}}.bind(this));}});LITHIUM.SearchFormAuthorFilterUpdater=Class.create({'initialize':function(initCapsule){LITHIUM.ArgumentChecks.checkObjectFields(initCapsule,{'formElementId':'string','filterParamName':'string','authorFilterParamName':'string','delimiter':'string','equals':'string','toggleRequestParameters':'string','toggleFilter':'string','enterEvent':'string','localizedErrorText':'string','doesUserExistRemoteMethod':'string'});var formRef=$(initCapsule.formElementId);var fieldRef=formRef.down('.search-input');var ajaxFeedback=formRef.down('.AjaxFeedback');LITHIUM.ArgumentChecks.checkNotNull('formRef',formRef,'fieldRef',fieldRef,'ajaxFeedback',ajaxFeedback);function setAuthorValue(values){var newVal="";for(var i=1;i<values.length;i++){newVal+=values[i];if((i+1)<values.length){newVal+=initCapsule.equals;}}
fieldRef.value=newVal;}
function fireRerender(){var valueToFire=initCapsule.authorFilterParamName+initCapsule.equals+fieldRef.value
formRef.fire(initCapsule.toggleFilter,{'paramName':initCapsule.filterParamName,'paramValue':valueToFire,'state':true,'eventRaiser':formRef});}
function errorFeedbackEvent(userName){ajaxFeedback.addClassName(LITHIUM.Css.BASE_FEEDBACK_INLINE_ALERT);ajaxFeedback.down(".ajax-title").update("");ajaxFeedback.down(".ajax-message").update(userName+" "+initCapsule.localizedErrorText);ajaxFeedback.addClassName("ajax-error").removeClassName("hidden");}
function hideFeedbackEvent(){if(!ajaxFeedback.hasClassName("hidden")){ajaxFeedback.addClassName("ajax-error").addClassName("hidden");}}
document.observe(initCapsule.enterEvent,function(event){var searchField=event.memo.searchField;if(searchField&&searchField==fieldRef){Event.stop(event.memo.enterEvent);new Ajax.Request(initCapsule.doesUserExistRemoteMethod,{'method':'post','onSuccess':function(transport){if(transport.responseJSON.response.parameters[0].userExists){hideFeedbackEvent();fireRerender();}
else{errorFeedbackEvent(fieldRef.value);event.memo.onCompleteCallback();}},'parameters':{'userName':fieldRef.value}});}})
document.observe(initCapsule.toggleFilter,function(event){var filterValue=event.memo.paramValue;if(filterValue&&(event.memo.eventRaiser!=formRef)){hideFeedbackEvent();var values=filterValue.split(initCapsule.equals);if(values&&values[0]&&values[0]==initCapsule.authorFilterParamName){if(values.length>1){setAuthorValue(values);}}}});document.observe(initCapsule.toggleRequestParameters,function(event){var filterValues=event.memo.state[initCapsule.filterParamName];var authorInParams=false;if(filterValues){var items=filterValues.split(initCapsule.delimiter);for(var i=0;i<items.length;i++){var temp=items[i].split(initCapsule.equals,2);if(temp[0]&&temp[0]==initCapsule.authorFilterParamName){authorInParams=true;setAuthorValue(temp);hideFeedbackEvent();}}}
if(authorInParams==false){hideFeedbackEvent();fieldRef.value="";}});}});LITHIUM.AdvancedSearchSemaphore=Class.create({'initialize':function(elementId,eventToFireForVisibilityToggle,eventToHandleForVisibilityToggle){LITHIUM.ArgumentChecks.checkNotNull('elementId',elementId,'eventToFireForVisibilityToggle',eventToFireForVisibilityToggle,'eventToHandleForVisibilityToggle',eventToHandleForVisibilityToggle);var elemRef=$(elementId);LITHIUM.ArgumentChecks.checkNotNull('elemRef',elemRef);elemRef.observe('click',function(event){Event.stop(event);elemRef.toggle();elemRef.fire(eventToFireForVisibilityToggle);});document.observe(eventToHandleForVisibilityToggle,function(event){if(!event.memo.toggleFromPriorEvent){elemRef.toggle();}});}});

LITHIUM.DropDownMenu=Class.create({initialize:function(element,activationEventType,options){this.element=$(element);this.menuLoaded=false;this.menuElement=this.element.down(".lia-menu-dropdown-items");this.options={useAnimation:false,effectsOpenOptions:{duration:.1,from:0,to:1.0},effectsCloseOptions:{duration:.1,from:1.0,to:0}};this.observers=[];this.bound={documentObserver:null};Object.extend(this.options,options||{});this.addEventListeners(activationEventType);this.element.reference=this;},addHoverStyle:function(){this.element.addClassName("dropdownHover");},removeHoverStyle:function(){$$('.dropdownHover').invoke("removeClassName","dropdownHover");},openMenu:function(){if(this.iframeElement==null){this.iframeElement=new Element("iframe",{"id":"dropDownShim","src":"javascript:void(0);","style":"display:none;"});this.element.up().appendChild(this.iframeElement);this.iframeElement.setStyle({"zIndex":"500","position":"absolute","frameborder":"0","border":"0"});}else{this.iframeElement.show();}
this.addHoverStyle();this.iframeElement.clonePosition(this.menuElement);},closeMenu:function(){Event.stopObserving(document,'click',this.bound.documentObserver);this.removeHoverStyle();this.iframeElement.hide();},clickEvent:function(event){var clickElement=Event.findElement(event,'a');if(typeof clickElement!='undefined'&&clickElement.name=="title"){$(clickElement).up().select("a.dialog-link").each(function(item){Event.observe(item,'click',this.closeMenu.bindAsEventListener(this));}.bind(this));$(clickElement).up().select("a.ajax-link").each(function(item){Event.observe(item,'click',this.closeMenu.bindAsEventListener(this));}.bind(this));this.bound.documentObserver=this.closeMenu.bindAsEventListener(this);Event.observe(document,'click',this.bound.documentObserver);this.openMenu();Event.stop(event);}},addEventListeners:function(activationEventType){if(activationEventType=="mouseover"){Event.observe(this.element,'mouseover',this.openMenu.bindAsEventListener(this));Event.observe(this.element,'mouseout',this.closeMenu.bindAsEventListener(this));}
else if(activationEventType=="click"){Event.observe(this.element,'click',this.clickEvent.bindAsEventListener(this));}
this.menuLoaded=true;},removeEventListeners:function(activationEventType){if(activationEventType=="mouseover"){Event.stopObserving(this.element,'mouseover',this.openMenu.bindAsEventListener(this));Event.stopObserving(this.element,'mouseout',this.closeMenu.bindAsEventListener(this));}
else if(activationEventType=="click"){Event.stopObserving(this.element,'click',this.clickEvent.bindAsEventListener(this));}}});LITHIUM.DropDownMenu.forceCloseMenu=function(element){element.up(".dropdownHover").reference.closeMenu();};

LITHIUM.ResizeImages=Class.create({initialize:function(element,maxWidth,elementCssSelector,maxWidthCssClass){this.element=element;var selected=$(this.element).select(elementCssSelector);selected.each(function(item){this.resizeImagesInElement(item,maxWidth,maxWidthCssClass)}.bind(this));},resizeImagesInElement:function(item,maxWidth,maxWidthClass){item.select('img').each(function(subItem){var siWidth=subItem.getWidth();if(siWidth>maxWidth){var siHeight=subItem.getHeight();var multiplier=maxWidth/siWidth;subItem.width=maxWidth;subItem.height=siHeight*multiplier;subItem.addClassName(maxWidthClass);}});}});

LITHIUM.TagList=Class.create({initialize:function(element,confirmationElementSelector,toggleSelector){this.element=$(element);this.confirmationElementSelector=confirmationElementSelector;this.element.select(toggleSelector).each(function(item){var selector=this.confirmationElementSelector;Event.observe(item,"click",function(event){Event.stop(event);item.up("li").down(selector).toggleClassName("hidden");});}.bind(this));}});
