dojo.require("dojo.io.*");
dojo.require("dojo.event.*");
dojo.require("dojo.html.iframe");
dojo.require("dojo.json");
dojo.require("dojo.collections.Dictionary");
if(typeof (autoCompleteJS)=="undefined"){
autoCompleteJS={DEFAULT_TEXT:"Enter Rutland Model#",NO_RESULT_TEXT:"no such model #",MAX_RETURN:5,checkingServer:false,ranAlready:false,visitMap:new dojo.collections.Dictionary(),everUsedMap:new dojo.collections.Dictionary(),iframeMap:new dojo.collections.Dictionary(),url:"",serverReady:false,bufferedInput:"",catalogID:null,blacklistedPrefix:"",lastInput:"",trim:function(_1){
return _1.replace(/^\s+|\s+$/g,"");
},errorHandler:function(_2,_3){
autoCompleteJS.bufferedInput="";
var _4="Fail to connect to backend server.\n"+_3.message;
alert(_4);
},suggest:function(_5,id){
if(!this.serverReady){
return;
}
_5=this.trim(_5);
if(_5.length==0){
this.displaySuggestions("",id);
return;
}
if((this.blacklistedPrefix.length!=0)&&(_5.indexOf(this.blacklistedPrefix)==0)){
this.displaySuggestions("",id);
return;
}
if(this.bufferedInput!=""){
this.bufferedInput=_5;
return;
}
this.lastInput=_5;
dojo.io.bind({url:this.url+"?catalogId="+this.catalogId+"&sku="+_5+"&id="+id,load:this.updateSuggestions,error:this.errorHandler,mimetype:"text/plain"});
},updateSuggestions:function(_7,_8,_9){
if(autoCompleteJS.bufferedInput!=""){
autoCompleteJS.suggest(this.bufferedInput);
return;
}
autoCompleteJS.bufferedInput="";
var _a=dojo.json.evalJson(_8);
var _b=_a["ms"];
var _c=_a["result"];
var id=_a["id"];
if(_c.length==0){
if((autoCompleteJS.blacklistedPrefix.length==0)||(autoCompleteJS.lastInput.indexOf(autoCompleteJS.blacklistedPrefix)!=0)){
autoCompleteJS.blacklistedPrefix=autoCompleteJS.lastInput;
}
}
autoCompleteJS.displaySuggestions(_c,id);
},displaySuggestions:function(_e,id){
var _10=dojo.byId(id+"_suggestionArea");
dojo.lang.forEach(document.getElementsByName(id+"_resultTD"),function(_11){
dojo.event.disconnect(_11,"onMouseOver",this,"mouseOverChoice");
dojo.event.disconnect(_11,"onclick",this,"clickChoice");
});
while(_10.firstChild){
_10.removeChild(_10.firstChild);
}
this.toggleSuggestion(false,id);
var _12=0;
if(!_e||_e.length==0){
_12++;
var _13=document.createElement("span");
_13.setAttribute("id",id+"_resultTD"+1);
_13.innerHTML=this.NO_RESULT_TEXT;
_10.appendChild(_13);
dojo.event.connect(_13,"onclick",this,"clickChoice");
}else{
var _14=document.createElement("span");
_14.innerHTML="<BR>";
for(i=0;i<_e.length;i++){
_12++;
if(i>=this.MAX_RETURN){
var _13=document.createElement("span");
_13.innerHTML="..and more";
_10.appendChild(_13);
_13.setAttribute("id",id+"_resultTD"+i);
break;
}
var _13=document.createElement("span");
_13.innerHTML=_e[i];
_10.appendChild(_13);
_13.setAttribute("id",id+"_resultTD"+i);
dojo.event.connect(_13,"onmouseover",this,"mouseOverChoice");
dojo.event.connect(_13,"onmouseout",this,"mouseOutChoice");
dojo.event.connect(_13,"onclick",this,"clickChoice");
}
}
var _15=_12*17;
dojo.html.setStyle(_10,"height",_15+"px");
var _16=dojo.html.toCoordinateObject(dojo.byId(id),true,dojo.html.boxSizing.BORDER_BOX);
dojo.html.setStyle(_10,"left",(_16.left)+"px");
dojo.html.setStyle(_10,"top",(_16.top+_16.height)+"px");
if(this.iframeMap.containsKey(id)){
var _17=this.iframeMap.item(id);
_17.size(_10);
_17.show();
}
},autocomplete:function(e){
var _19=this.findObj(e);
var _1a=_19.value;
var id=_19.id;
this.suggest(_1a,id);
},findObj:function(e){
var _1d;
if(!e){
var e=window.event;
}
if(e.target){
_1d=e.target;
}else{
if(e.srcElement){
_1d=e.srcElement;
}
}
if(_1d.nodeType==3){
_1d=_1d.parentNode;
}
return _1d;
},mouseOutChoice:function(e){
var obj=this.findObj(e);
dojo.html.setStyle(obj,"font-weight","normal");
},mouseOverChoice:function(e){
var obj=this.findObj(e);
dojo.html.setStyle(obj,"font-weight","bold");
},clickChoice:function(e){
var _23=this.findObj(e);
var id=_23.id;
var _25=(_23.innerHTML);
var _26=id.lastIndexOf("_");
var _27=id.substr(0,_26);
if(_25!=this.NO_RESULT_TEXT){
dojo.byId(_27).value=_25;
}
},hideSuggestion:function(id){
this.toggleSuggestion(true,id);
},toggleSuggestion:function(_29,id){
var _2b=document.getElementById(id+"_suggestionArea");
var _2c;
if(_29){
if(this.iframeMap.containsKey(id)){
_2c=this.iframeMap.item(id);
_2c.hide();
}
dojo.html.setStyle(_2b,"visibility","hidden");
}else{
if(this.iframeMap.containsKey(id)){
_2c=this.iframeMap.item(id);
}else{
_2c=new dojo.html.BackgroundIframe();
this.iframeMap.add(id,_2c);
}
_2c.setZIndex(_2b);
_2c.show();
dojo.html.setStyle(_2b,"visibility","visible");
}
},hideAll:function(e){
var _2e=this.findObj(e);
dojo.lang.forEach(dojo.html.getElementsByClass("textFieldAutoComplete"),function(_2f){
var id=_2f.id;
autoCompleteJS.toggleSuggestion(true,id);
});
},clearDefault:function(e){
var _32=this.findObj(e);
var id=_32.id;
if(this.trim(_32.value)==this.DEFAULT_TEXT){
_32.value="";
}
},putDefault:function(e){
var _35=this.findObj(e);
var id=_35.id;
autoCompleteJS.toggleSuggestion(true,id);
if(this.trim(_35.value)==""){
_35.value=this.DEFAULT_TEXT;
}
},checkAjaxServer:function(){
if(!autoCompleteJS.checkingServer&&!autoCompleteJS.serverReady){
autoCompleteJS.checkingServer=true;
dojo.io.bind({url:this.url+"?action=checkCount&catalogId="+this.catalogId,load:this.checkAjaxServerReturnOK,error:this.checkAjaxServerReturnFail,mimetype:"text/plain"});
}
},checkAjaxServerReturnOK:function(_37,_38,evt){
var _3a=dojo.json.evalJson(_38);
if(_3a["size"]>0){
autoCompleteJS.serverReady=true;
}else{
autoCompleteJS.serverReady=false;
}
autoCompleteJS.checkingServer=false;
},checkAjaxServerReturnFail:function(_3b,_3c,evt){
autoCompleteJS.serverReady=false;
autoCompleteJS.checkingServer=false;
},init:function(){
if(autoCompleteJS.ranAlready){
return;
}
autoCompleteJS.ranAlready=true;
dojo.event.connect(document.body,"onclick",autoCompleteJS,"hideAll");
dojo.lang.forEach(dojo.html.getElementsByClass("textFieldAutoComplete"),function(_3e){
_3e.value=autoCompleteJS.DEFAULT_TEXT;
dojo.event.connect(_3e,"onkeyup",autoCompleteJS,"autocomplete");
dojo.event.connect(_3e,"onkeydown",autoCompleteJS,"checkAjaxServer");
dojo.event.connect(_3e,"onfocus",autoCompleteJS,"checkAjaxServer");
dojo.event.connect(_3e,"onfocus",autoCompleteJS,"clearDefault");
autoCompleteJS.initDisplayDiv(_3e.id);
});
autoCompleteJS.url="/webapp/wcs/stores/skuAjaxServer";
},initDisplayDiv:function(_3f){
var div=document.createElement("div");
div.setAttribute("id",_3f+"_suggestionArea");
var _41=dojo.byId(_3f+"_div");
if(_3f.match(/accordian/i)!=null){
dojo.byId("StoreAccordian_QuickOrder").appendChild(div);
}else{
document.body.appendChild(div);
}
dojo.html.setClass(div,"suggestionArea");
}};
}
dojo.addOnLoad(autoCompleteJS.init);

