var xeToolkit={};xeToolkit.Controls={};xeToolkit.Controls.SearchForm=Class.create({arrows:{UP:"icn-ext-ctr-arrow-up",DOWN:"icn-ext-ctr-arrow-down"},selectors:{ADVANCED_SEARCH:".advanced-search",TOGGLE_ADVANCED_SEARCH:".toggle-advanced-search",TOGGLE_ARROW:".toggle-arrow",INSERT_BUSINESS_ADDRESS:".insert-business-address",KEYWORDS_INPUT:"input[name='search[keywords]']"},initialize:function(b,c,a){this._form=b;this._isAdvanced=c;this._container=this._form.down(this.selectors.ADVANCED_SEARCH);this._input=this._form.down(this.selectors.KEYWORDS_INPUT);this._toggleLink=this._form.down(this.selectors.TOGGLE_ADVANCED_SEARCH);this._arrow=this._form.down(this.selectors.TOGGLE_ARROW);this._businessAddressLink=this._form.down(this.selectors.INSERT_BUSINESS_ADDRESS);this._businessAddress=a||{};this._initVisibility();this._initToggle();this._isAdvanced&&this._initInput();this._businessAddressLink&&this._initBusinessAddress()},_initVisibility:function(){if(this._container.visible()){this._arrow.removeClassName(this.arrows.DOWN).addClassName(this.arrows.UP)}},_initToggle:function(){this._toggleLink.observe("click",this._toggle.bind(this))},_toggle:function(a){a&&a.stop();if(this._arrow.hasClassName(this.arrows.DOWN)){this._arrow.removeClassName(this.arrows.DOWN).addClassName(this.arrows.UP)}else{this._arrow.removeClassName(this.arrows.UP).addClassName(this.arrows.DOWN)}Effect.toggle(this._container,"blind",{duration:0.5})},_initBusinessAddress:function(){this._businessAddressLink.observe("click",this._insertBusinessAddress.bind(this))},_initInput:function(){this._input.observe("click",function(){if(!this._container.visible()){this._toggle()}}.bind(this))},_insertBusinessAddress:function(a){a&&a.stop();for(var b in this._businessAddress){$(b).value=this._businessAddress[b]}}});xeToolkit.Controls.History={IFRAME_HTML:'<iframe src="/empty.html" id="history-iframe" width="1" height="1" frameborder="0"style="visibility: hidden; position: absolute"></iframe>',initialize:function(b,a){this._callback=b;this._initialValue=a;this._historyValues=[];this._initialValue&&this._historyValues.push(this._initialValue);if(Prototype.Browser.IE){this._iframe=this._createIframe();this._onLoad(function(){this._currentValue=this._getState();this._initialized=true;this._observeChange()}.bind(this))}else{this._currentValue=this._getState();this._observeChange()}},_createIframe:function(){if(document.loaded){$(document.body).insert(this.IFRAME_HTML)}else{document.write(this.IFRAME_HTML)}return $("history-iframe")},register:function(a){if(this._iframe){if(!this._initialized){return}var b=this._iframe.contentWindow.document;b.open();b.write("<html><body>"+a+"</body></html>");b.close()}else{document.location.hash="#"+a}this._historyValues.push(a);this._currentValue=this._getState()},_onLoad:function(a){this._iframe.onreadystatechange=function(){if(this.readyState=="complete"){a()}}},_onChange:function(a){if(this._iframe){this._onLoad(function(){setTimeout(a,100)})}else{setInterval(a,250)}},_getState:function(){var c;if(this._iframe){c=this._iframe.contentWindow.document.body.innerText}else{var b=document.location.href,a=b.lastIndexOf("#");if(a!=-1){c=b.substring(a+1)}}return c||this._initialValue},_observeChange:function(){this._onChange(function(){var a=this._getState();if(this._currentValue!=a&&this._historyValues.indexOf(a)!=-1){this._callback(a);this._currentValue=a}}.bind(this))}};xeToolkit.Controls.Pager=Class.create({initialize:function(b,a){this.domElements={parentContainer:b,listingContainer:b.down(".listing-container"),indicatorIcon:new Element("img",{src:"/img/xing/xe/ajax_indicator.gif"})};this._disabled=false;this.navigationElements=a||[];this.addLinks();xeToolkit.Controls.History.initialize(function(c){this.paginateTo(c,true)}.bind(this),document.location.pathname+document.location.search)},addLink:function(a){a=$(a);a&&a.observe("click",function(b){this.paginateTo(a.readAttribute("href"));b.stop()}.bind(this))},addLinks:function(){this.domElements.parentContainer.select("div.paging a").each(this.addLink.bind(this));this.navigationElements.each(this.addLink.bind(this))},paginateTo:function(b,a){if(this._disabled){return}new Ajax.Updater(this.domElements.parentContainer,b,{evalScripts:true,method:"get",parameters:{ajax:1},onCreate:function(){this._disabled=true;this.showIndicator();new Effect.Opacity(this.domElements.listingContainer,{from:1,to:0.2,duration:0.3})}.bind(this),onComplete:function(c){this._disabled=false;this.hideIndicator();this.update();xing.utils.Behaviors.update(this.domElements.listingContainer);if(this.domElements.listingContainer.viewportOffset().top<0){new Effect.ScrollTo(this.domElements.listingContainer,{duration:0.4})}if(!a){xeToolkit.Controls.History.register(b)}}.bind(this)})},update:function(){this.addLinks();this.domElements.listingContainer=this.domElements.parentContainer.down(".listing-container")},showIndicator:function(){this.domElements.indicatorIcon.addClassName("ajax-pager-indicator");this.domElements.indicatorIcon.setStyle({top:(this.domElements.parentContainer.getHeight()/2)+"px",left:"50%"});
this.domElements.parentContainer.insert(this.domElements.indicatorIcon);this.domElements.indicatorIcon.show()},hideIndicator:function(){this.domElements.indicatorIcon.hide()}});xeToolkit.Controls.Toolbox=Class.create({initialize:function(d,b){this._options=b||{};this._element=$(d);this._messages=$H();this._open=false;var e=this._element.down(".toolbox-load-message");if(e){this._messages.set("load",e)}var c=this._element.down(".toolbox-success-message");if(c){this._messages.set("success",c)}var a=this._element.down(".toolbox-error-message");if(a){this._messages.set("error",a)}this._onFailureCallback=this._options.onFailureCallback||Prototype.emptyFunction;this._onClickCallback=this._options.onClickCallback||Prototype.emptyFunction;this._head=this._element.down("a.expand");this._body=this._element.down("div.toolbox-body");this._body&&this._head.observe("click",this._clickItem.bind(this));this._form=this._element.down("form");this._form&&this._bindFormFunctions();this._effects={blind:this._doEffectBlind.bind(this)}},_clickItem:function(a){a.stop();return this._onClickCallback()||this._toggle()},_toggle:function(){if(this._body){if(this._options.effect){this._doEffects(this._options.effect)}else{this._body.toggle();this._element.toggleClassName("selected");this._open=!this._open}}this._form&&this._form.show()},_doEffects:function(a){if(this._effects[a]){this._effects[a](this._body,!this._open,function(){this._element.toggleClassName("selected")}.bind(this))}else{this._body.toggle();this._element.toggleClassName("selected");this._open=!this._open}},_doEffectBlind:function(a,c,d){if(!this._effectRun){var b={duration:0.7,beforeStart:function(){this._effectRun=!this._effectRun;d()}.bind(this),afterFinish:function(){this._effectRun=!this._effectRun}.bind(this)};c?Effect.BlindDown(a,b):Effect.BlindUp(a,b);this._open=!this._open}},_bindFormFunctions:function(){this._form.down("button."+(this._options.submitButton||"submit-button")).observe("click",this._sendForm.bind(this))},_sendForm:function(a){this._form.request({onCreate:(function(){this._form.addClassName("send");this._messages.get("success").hide();this._messages.get("error").hide();this._messages.get("load").show()}).bind(this),onSuccess:(function(){this._form.reset();this._messages.get("load").hide();this._messages.get("success").show()}).bind(this),onFailure:(function(){this._form.removeClassName("send");this._messages.get("load").hide();this._messages.get("error").show();this._onFailureCallback()}).bind(this)});a.stop()}});xeToolkit.Controls.Suggestor=Class.create({initialize:function(a){this._url=a.url;this._input=$(a.input);if(a.insertString==""){this._insertString=a.insertString}else{this._insertString=a.insertString||", "}this._tags=[];window.__TagSuggestor=new SimpleSuggestor(this._tags,{normalize:function(){return""}});this._suggestionAjaxQueue=new Array(2);document.observe("dom:loaded",this._documentReady.bind(this))},addToQueue:function(b){var a=xeToolkit.Events.getKeyCode(b);switch(a){case Event.KEY_DOWN:this._Suggestor.options.delay=0;break;case Event.KEY_LEFT:case Event.KEY_RIGHT:case Event.KEY_UP:case Event.KEY_PAGEUP:case Event.KEY_PAGEDOWN:case Event.KEY_ESC:break;default:this._Suggestor.options.delay=1500;var c={};c.timestamp=new Date();c.sent=false;this._suggestionAjaxQueue[0]=c;break}return false},checkQueue:function(){if(!this._suggestionAjaxQueue[0]){return false}var a=new Date();var b=$F(this._input);if(((a-this._suggestionAjaxQueue[0].timestamp)>150)&&!this._suggestionAjaxQueue[0].sent&&b.strip().length>0){this._suggestionAjaxQueue[0].sent=true;new Ajax.Request(this._url,{method:"get",parameters:"tags="+b,onComplete:(function(c){this._Suggestor.deactivate();this._Suggestor.updateSuggestions()}).bind(this)})}},_documentReady:function(){this._input.observe("keyup",this.addToQueue.bind(this));new PeriodicalExecuter(this.checkQueue.bind(this),0.4);this._Suggestor=new Autocompleter(this._input,{minTokenLength:1,ignoreMinTokenLengthOn:[Event.KEY_PAGEUP,Event.KEY_PAGEDOWN,Event.KEY_UP,Event.KEY_DOWN],suggestor:window.__TagSuggestor,popup:new PopUp(PopUp.position,{className:"auto-complete"}),select:new Select(),insertString:this._insertString})}});xeToolkit.Controls.SimpleToggle=Class.create({initialize:function(a){this._options=a||{};this._layer=this._options.layer;this._arrow=this._options.arrow;this._container=this._layer.up();this._options.opened&&this._toggleLayer({duration:0});this._listen()},_listen:function(){this._options.link.observe("click",function(a){a.stop&&a.stop();this._toggleLayer({duration:0.3});this._options.ajax&&this._put()}.bind(this))},_toggleLayer:function(a){if(Prototype.Browser.IE){this._layer.toggle();this._arrow.toggleClassName("icn-ext-ctr-up-big").toggleClassName("icn-ext-ctr-down-big");this._container.toggleClassName("selected")}else{this._layer.visible()?this._blindUp(a):this._blindDown(a)}},_blindUp:function(a){Effect.BlindUp(this._layer,{duration:a.duration,afterFinish:function(){this._arrow.toggleClassName("icn-ext-ctr-up-big").toggleClassName("icn-ext-ctr-down-big");
this._container.toggleClassName("selected")}.bind(this)})},_blindDown:function(a){Effect.BlindDown(this._layer,{duration:a.duration,beforeStart:function(){this._arrow.toggleClassName("icn-ext-ctr-up-big").toggleClassName("icn-ext-ctr-down-big");this._container.toggleClassName("selected")}.bind(this)})},_put:function(){var a={};a.method="put";a.parameters={authenticity_token:this._options.ajax.authenticityToken};a.parameters[this._options.ajax.key]=this._container.hasClassName("selected");new Ajax.Request(this._options.ajax.url,a)}});xeToolkit.Controls.SimpleAjax=Class.create({initialize:function(a){this._options=a||{};this._listen()},_listen:function(){this._options.layer.observe("submit",function(a){a.stop&&a.stop();this._options.ajax&&this._options.layer.request({onSuccess:function(){this._options.layer.replace(this._options.ajax.onSuccess);if(this._options.highlight){new Effect.Highlight(this._options.highlight.element,{endcolor:this._options.highlight.background,keepBackgroundImage:true})}}.bind(this)})}.bind(this))}});xeToolkit.Image={};xeToolkit.Image.preload=function(){$A(arguments).each(function(a){new Image().src=a})};xeToolkit.Events={};xeToolkit.Events.onMouseWheel=function(b,a){var b=$(b);var c=function(d){a.bind(b);a(d,xeToolkit.Events.getMouseWheelDelta(d))};if(b.addEventListener){b.addEventListener("DOMMouseScroll",c,false)}Event.observe(b,"mousewheel",c)};xeToolkit.Events.getMouseWheelDelta=function(a){var b=0;var a=a||window.event;if(a.wheelDelta){b=event.wheelDelta/40}else{if(a.detail){b=-a.detail}}return b};xeToolkit.Events.getKeyCode=function(a){var a=a||window.event;return a.keyCode||a.which||a.charCode};xeToolkit.Utils={};xeToolkit.Utils.replaceTBody=function(b,a){var c=document.createElement("div");c.innerHTML="<table>"+a+"</table>";b.parentNode.replaceChild(c.firstChild.tBodies[0],b)};xeToolkit.Utils.checkAllBoxes=function(b,a){b.getInputs("checkbox").each(function(c){c.checked=a})};xeToolkit.Utils.updateSummaryCheckbox=function(c){var a=c.down("input.check-all-boxes");if(a){var d=c.getInputs("checkbox").without(a);var b=d.all(function(e){return e.checked});a.checked=b}};xeToolkit.Utils.IFrameShim=Class.create({initialize:function(b,a){this.options=Object.extend({sync:$w("hide show setStyle clonePosition"),ieOnly:true},a||{});this.element=b;if(!this.options.ieOnly||this._browserNeedsToBeFixed()){this._createIframe();this._initElement();this.update()}},_createIframe:function(){var b=$H({position:"absolute",filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=0)","z-index":0,opacity:0,display:"none"});var a=b.inject("",function(c,d){return c+d.join(":")+";"});this.iframe=new Element("iframe",{src:"javascript:'<html></html>'",scrolling:"no",frameborder:0,style:a});this.element.insert(this.iframe)},_initElement:function(){if(this.options.sync){this.options.sync.each(function(b){var a=this.element[b];this.element[b]=function(){var c=a.apply(this.element,arguments);this.update();return c}.bind(this)}.bind(this))}},_browserNeedsToBeFixed:function(){var a=/MSIE\s+(5.5|6.0)/i;return Prototype.Browser.IE&&navigator.userAgent.match(a)},update:function(){var a=this.element.visible();if(a&&this.iframe){this.iframe.hide();(a?this.iframe.show():this.iframe.hide());this.iframe.clonePosition(this.element)}return this},hide:function(){(this.iframe&&this.iframe.hide());return this},show:function(){(this.iframe&&this.iframe.show());return this}});
