(function(){var A=YAHOO.lang,E=YAHOO.util.Dom,G=YAHOO.util.Event,C=ZC.Util,F=C.GetText,B;B=ZC.Core.Widget.Create("Text_AutoComplete");B.prototype.CustomSetupStart=function(){var N,L,U,J,P,I,R,S,K="width",M,T="ac-loading",Q,O;if(!this._elInput){return false}if(this.IsReadOnly()){return true}this.elContainer=document.createElement("div");E.insertBefore(this.elContainer,this._elInput);this.elContainer.appendChild(this._elInput);this._elList=document.createElement("div");E.insertAfter(this._elList,this._elInput);if(this.GetAttribDefault("OnlyFireLookupEvent")){this.oYUIDataSource=new YAHOO.util.FunctionDataSource(function(){return null})}else{this.oYUIDataSource=new YAHOO.util.XHRDataSource(this.GetAttrib("AjaxURL")+"&");this.oYUIDataSource.connXhrMode="cancelStaleRequests";this.oYUIDataSource.responseSchema={resultsList:"Results",fields:["key","value","HTML","Text","Value"]}}L=this.GetAttribDefault("AnimateDirection","V");U={animHoriz:(L.indexOf("H")!=-1),animVert:(L.indexOf("V")!=-1),maxResultsDisplayed:this.GetAttribDefault("MaxListLength",20),queryQuestionMark:false,queryDelay:0.5,typeAhead:this.GetAttribDefault("TypeAhead"),resultTypeList:false,forceSelection:false,minQueryLength:this.GetAttribDefault("MinSuggestLength",2),autoHighlight:this.GetAttribDefault("AutoHighlight",(this instanceof ZC.Core.Widget.Select_AutoComplete))};this.oYUIAutoComplete=new YAHOO.widget.AutoComplete(this._elInput,this._elList,this.oYUIDataSource,U);M=E.getStyle(this._elInput,K);if(M){E.setStyle(this._elList,K,M)}N=YAHOO.env.ua.ie;if(N){this.oYUIAutoComplete.useIFrame=(N<7);I=function(X,V,W){E.setStyle(W,"z-index",1000-(E.getRegion(W).top/10))};R=function(X,V,W){E.setStyle(W,"z-index","")};this.oYUIAutoComplete.dataReturnEvent.subscribe(I,this.elContainer);this.oYUIAutoComplete.containerCollapseEvent.subscribe(R,this.elContainer)}if(this.GetAttribDefault("ExtraFilter")){ZC.JSManager.GetEvent("ManagerInit").subscribe(function(){var V={},W=false;this._aOldValues={};C.ForEach(this.GetAttrib("ExtraFilter"),function(X){var Y=this.oForm.GetWidget(X);if(!Y){return }Y.AddEvent(function(b,a){var Z=a.GetValue();if(this._aOldValues[X]!=Z){this.Clear();this._aOldValues[X]=Z}},"change",this);V[X]=Y;this._aOldValues[X]=Y.GetValue();W=true},this);if(W){this.oYUIAutoComplete.generateRequest=function(X){delete V.query;return ZC.JSManager.URL(V,"?query="+X).substr(1)}}},this,true)}O=this.GetAttribDefault("ShowKey");this.oYUIAutoComplete.formatResult=function(X,Y,W){if(!A.isUndefined(X.HTML)){return X.HTML}var V=X.value;if(O){V+=" ("+X.key+")"}return V.replace(new RegExp(Y,"i"),"<strong>$&</strong>")};fnAddLoadingClass=function(){E.addClass(this.getInputEl(),T)};fnRemoveLoadingClass=function(){E.removeClass(this.getInputEl(),T)};this.oYUIAutoComplete.dataRequestEvent.subscribe(fnAddLoadingClass);this.oYUIAutoComplete.dataReturnEvent.subscribe(fnRemoveLoadingClass);this.oYUIAutoComplete.dataErrorEvent.subscribe(fnRemoveLoadingClass);S=function(){var V=E.getRegion(E.getFirstChild(this.getContainerEl())).union(E.getRegion(this.getInputEl())),X=E.getClientRegion(),W=[0,0];if(X.contains(V)){return }else{if(V.height>X.height){W=E.getXY(this.getInputEl())}else{W[1]=X.top+(V.bottom-X.bottom)+10}}C.ScrollPage(W)};this.oYUIAutoComplete.containerExpandEvent.subscribe(S);J=E.get(this._elInput.id+"_key");if(!J){J=document.createElement("input");J.type="hidden";J.name=this._elInput.name+"_key";E.insertAfter(J,this._elInput)}this._elHidden=J;G.on(this._elInput,"change",function(){if(this._elInput.value==""){this._elHidden.value=""}},this,true);P=function(X,W){var V=W[2];if(!A.isUndefined(V.Text)&&!A.isUndefined(V.Value)){this._elHidden.value=V.Value;this._elInput.value=V.Text}else{this._elHidden.value=V.key;this._elInput.value=V.value}this._EventDispatcher("change",V)};this.oYUIAutoComplete.itemSelectEvent.subscribe(P,this,true);return true};B.prototype.Destruct=function(){ZC.Core.Widget.Text_AutoComplete.superclass.Destruct.apply(this,arguments);this.oYUIAutoComplete=null;this._elHidden=null;this.oYUIDataSource=null};B.prototype.SetValue=function(I){this._elHidden.value=this._elInput.value=I};B.prototype.GetValue=function(){if(this._elHidden&&this._elHidden.value.replace(/(^\s+|\s+$)/,"")!=""){return this._elHidden.value}else{return this._elInput.value}};B.prototype.GetHTMLValue=B.prototype.GetTextValue=function(){return this._elInput.value};B.prototype.Clear=function(){this._elHidden.Value="";this._elInput.value="";this._EventDispatcher("change","")};B.prototype._WireUpEvent=function(I){if(I=="ACLookup"){this.oYUIAutoComplete.dataRequestEvent.subscribe(function(J,K){this._EventDispatcher("ACLookup",K[1],K[2])},this,true);return true}return B.superclass._WireUpEvent.apply(this,arguments)};var D=ZC.Core.Widget.Create("Select_AutoComplete","Core",B);D.prototype.CustomSetupStart=function(){var I,L,P,K,O,M,J,N;if(this.IsReadOnly()){return true}G.on(this._elInput,"change",function(){this.oYUIAutoComplete.forceSelection=true},this,true);if(!D.superclass.CustomSetupStart.call(this)){return false}this.oYUIAutoComplete.minQueryLength=this.GetAttribDefault("MinSuggestLength",0);this.elCurrentValue=E.get(this._elInput.id+"_currentvalue");this.elActionLinks=document.createElement("div");E.addClass(this.elActionLinks,"actionlinks");E.insertAfter(this.elActionLinks,this.elContainer);J=document.createElement("a");J.className="ac-changelink";J.innerHTML="["+F("change")+"]";J.href="#";G.on(J,"click",function(Q){G.stopEvent(Q);this.ShowAC()},this,true);this.elActionLinks.appendChild(J);this.elActionLinks.appendChild(document.createTextNode(" "));N=document.createElement("a");N.className="ac-clearlink";N.innerHTML="["+F("clear")+"]";N.href="#";G.on(N,"click",function(Q){G.stopEvent(Q);this.Clear()},this,true);this.elActionLinks.appendChild(N);if(this.elCurrentValue){E.addClass(this.elContainer,"hide")}else{E.addClass(this.elActionLinks,"hide");this.elCurrentValue=document.createElement("div");this.elCurrentValue.className="ac-currentvalue hide";E.setStyle(this.elCurrentValue,"opacity",0);E.insertBefore(this.elCurrentValue,this.elContainer)}this._elToggle=document.createElement("span");E.insertBefore(this._elToggle,this._elList);this.oYUIComboButton=new YAHOO.widget.Button({container:this._elToggle});I=function(){var R=this.oYUIAutoComplete,Q=this;if(R.isContainerOpen()){return }R.getInputEl().focus();setTimeout(function(){E.addClass(Q._elToggle,"open");R.sendQuery(Q._elInput.value)},0)};P=function(){var Q=this.oYUIAutoComplete;if(Q.isContainerOpen()){Q.collapseContainer()}else{I.call(this)}};K=function(S,R,Q){E.addClass(Q,"open")};O=function(S,R,Q){E.removeClass(Q,"open")};this.oYUIComboButton.on("click",P,this,true);this.oYUIAutoComplete.containerExpandEvent.subscribe(K,this._elToggle);this.oYUIAutoComplete.containerCollapseEvent.subscribe(O,this._elToggle);fnDisplayNoResults=function(S,R){var Q=R[2];if(Q.length==0){this._bNoResults=true;this.oYUIAutoComplete.clearList();this.oYUIAutoComplete.setFooter("No results found");this.oYUIAutoComplete.alwaysShowContainer=true;A.later(0,this.oYUIAutoComplete,function(){this.alwaysShowContainer=false;this.expandContainer()})}else{this._bNoResults=false;this.oYUIAutoComplete.setFooter("");this.oYUIAutoComplete.alwaysShowContainer=false}};this.oYUIAutoComplete.dataReturnEvent.subscribe(fnDisplayNoResults,this,true);this.oYUIKeyListener=new YAHOO.util.KeyListener(this._elInput,{keys:YAHOO.util.KeyListener.KEY.DOWN},{fn:I,scope:this,correctScope:true});this.oYUIKeyListener.enable();M=function(V,U){var R,Q,T,S=U[2];if(!A.isUndefined(S.Text)){T=S.Text}else{T=S.value}Q=new YAHOO.util.Anim(this.elCurrentValue,{opacity:{to:0}},0.1);Q.onComplete.subscribe(function(){this.elCurrentValue.innerHTML=T;E.removeClass(this.elCurrentValue,"hide");R.animate()},this,true);R=new YAHOO.util.Anim(this.elCurrentValue,{opacity:{to:1}},0.1);Q.animate();this.HideAC();this._elInput.value=""};this.oYUIAutoComplete.itemSelectEvent.subscribe(M,this,true);return true};D.prototype.Destruct=function(){D.superclass.Destruct.apply(this,arguments);this.elCurrentValue=null;this.elActionLinks=null;this._elToggle=null;this.oYUIComboButton=null;this.oYUIKeyListener=null};var H=function(I,L,M){if(YAHOO.env.ua.ie){E.addClass(L,"hide");E.removeClass(I,"hide");M.call(this)}else{var K,J;J=new YAHOO.util.Anim(L,{opacity:{to:0}},0.1);J.onComplete.subscribe(function(){E.addClass(L,"hide");K.animate()});K=new YAHOO.util.Anim(I,{opacity:{to:1}},0.1);K.onStart.subscribe(function(){E.setStyle(I,"opacity",0);E.removeClass(I,"hide")});if(M){K.onComplete.subscribe(M,this,true)}J.animate()}};D.prototype.ShowAC=function(I){if(A.isUndefined(I)){I=true}H.call(this,this.elContainer,this.elActionLinks,I?function(){this._elInput.focus()}:function(){})};D.prototype.HideAC=function(){H.call(this,this.elActionLinks,this.elContainer,function(){this.elActionLinks.focus()})};D.prototype.GetValue=function(){if(this._bNoResults){return""}return D.superclass.GetValue.apply(this,arguments)};D.prototype.Clear=function(){if(this.GetValue()==""){return }this._elInput.value="";this._elHidden.value="";this.ShowAC(false);var I=new YAHOO.util.Anim(this.elCurrentValue,{opacity:{to:0}},0.1);I.onComplete.subscribe(function(){E.addClass(this.elCurrentValue,"hide")},this,true);I.animate();this._EventDispatcher("change","")};B.prototype.GetHTMLValue=B.prototype.GetTextValue=function(){if(this.GetValue()==""){return""}return this.elCurrentValue.innerHTML};ZC.Core.Widget.Create("Select_AutoComplete_LeadStaff","ProspectIntranet",D)})();
