AE.define("app.XSelector",function(b){var a=YAHOO.lang,f=YAHOO.util.Dom,e=YAHOO.util.Event,c=f.get;function d(){var q=this,s=false;q.orgSelect=null;q.options=null;q.selectedIndex=-1;q.browseIndex=0;q.addNodeStatus=0;q.DATA={selectBox:null,inputEl:null,arrowEl:null,optionBox:null,optionOl:null,optionLis:[],mask:null};q.onChange=new YAHOO.util.CustomEvent("onChange",q);var p={selectId:"",fakeSelectId:"",selectBoxWH:[200,18],selectBoxZIndex:0,visibleOptions:20,optionBoxTop:"",arrowBoxLeft:"",isStick:0};q.init=function(u){p=a.merge(p,u);var t=p,v=q.DATA;q.orgSelect=c(t.selectId);v.selectBox=c(t.fakeSelectId);v.inputEl=f.getElementsByClassName("inputEl","input",v.selectBox)[0];v.arrowEl=f.getElementsByClassName("arrowNormal","div",v.selectBox)[0];if(!q.orgSelect){return}q.options=q.orgSelect.options;q.selectedIndex=q.orgSelect.selectedIndex;v.inputEl.value=(q.orgSelect[q.selectedIndex]).text;m();j();q.orgSelect.fakeSelect=q};q.dropdown=function(){var t=q.DATA;if(f.getStyle(t.optionBox,"visibility")=="hidden"){f.setStyle([t.optionBox,t.mask],"visibility","visible")}};q.rollup=function(){var t=q.DATA;if(f.getStyle(t.optionBox,"visibility")=="visible"){f.setStyle([t.optionBox,t.mask],"visibility","hidden")}if(p.isStick&&f.get("allCate")){f.setStyle(f.get("allCate"),"visibility","hidden")}};q.select=function(v){var u=q.DATA,t=u.optionLis[v];if(t.innerHTML!=""&&v!=q.selectedIndex){u.inputEl.value=t.childNodes[0].nodeValue;q.orgSelect.options[v].selected=true;q.selectedIndex=v;q.onChange.fire(q.orgSelect)}};var r=function(){var t=p,x=q.DATA;x.optionBox=l("div",{"class":"optionBox"});var w='<ol class="optionOl">';for(var u=0;u<q.options.length;u++){var v=q.options[u];if(v.text.match(/^-{3,}$/ig)!=null){w+='<li id="simulateOption'+u+'" class="optionLi subLine"></li>'}else{w+='<li id="simulateOption'+u+'" class="optionLi '+v.className+'">'+v.text+"</li>"}}w+="</ol>";x.optionBox.innerHTML=w;x.selectBox.appendChild(x.optionBox);x.optionOl=x.optionBox.firstChild;x.optionLis=x.optionOl.getElementsByTagName("li")};var j=function(){var t=p,v=q.DATA;var u=t.selectBoxWH[0]+"px";var w=t.selectBoxWH[1]+"px";f.setStyle(v.selectBox,"z-index",t.selectBoxZIndex);if(parseInt(YAHOO.env.ua.ie)==8){f.setStyle(v.selectBox,"display","inline-block")}f.setStyle(v.inputEl,"width",u);f.setStyle(v.inputEl,"height",w);f.setStyle(v.inputEl,"line-height",w);f.setStyle(v.arrowEl,"left",t.arrowBoxLeft);f.setStyle(v.arrowEl,"z-index",t.selectBoxZIndex+2)};var h=function(){var t=p,u=q.DATA;if(t.optionBoxTop&&t.optionBoxTop!=""){f.setStyle(u.optionBox,"top",t.optionBoxTop)}f.setStyle(u.optionBox,"z-index",t.selectBoxZIndex+1);f.setStyle(u.optionBox,"visibility","hidden");if(YAHOO.env.ua.ie===6){f.setStyle(u.optionBox,"width","10px")}if(u.optionOl.offsetWidth<u.inputEl.offsetWidth){f.setStyle(u.optionBox,"width",u.inputEl.offsetWidth+"px")}else{f.setStyle(u.optionBox,"width",u.optionOl.offsetWidth+"px")}if(u.optionLis.length>t.visibleOptions){f.setStyle(u.optionBox,"height",(u.optionLis[0].offsetHeight*t.visibleOptions)+"px")}f.setStyle(u.optionOl,"overflow","hidden")};var m=function(){var u=q.DATA,t=p;e.on(u.selectBox,"click",function(v){e.stopEvent(v);u.inputEl.focus();if(!s){r();h();n();k();s=true}if(f.getStyle(u.optionBox,"visibility")=="hidden"){u.optionBox.scrollTop=q.selectedIndex*u.optionLis[0].offsetHeight;o(q.selectedIndex);q.dropdown();if(p.isStick){i()}}else{q.rollup()}});e.on(u.selectBox,"mouseover",function(v){f.addClass(u.arrowEl,"arrowMouseover")});e.on(u.selectBox,"mouseout",function(v){f.removeClass(u.arrowEl,"arrowMouseover")})};var n=function(){var w=q.DATA,t=p;e.on(document,"click",q.rollup);e.on(w.inputEl,"keydown",function(y){e.stopEvent(y);if(y.altKey&&(y.keyCode==38||y.keyCode==40)){if(f.getStyle(w.optionBox,"visibility")=="hidden"){o(q.selectedIndex);q.dropdown()}else{q.rollup()}}if(!y.altKey){var A=0,z=w.optionLis[0].offsetHeight,x=Math.floor(w.optionBox.scrollTop/z);if(y.keyCode==38){A=(q.browseIndex<1)?0:q.browseIndex-1;if(q.browseIndex==x){w.optionBox.scrollTop=(x-1)*z}o(A);q.select(A)}else{if(y.keyCode==40){A=(q.browseIndex+1>=w.optionLis.length)?(w.optionLis.length-1):(q.browseIndex+1);if(q.browseIndex==x+t.visibleOptions-1){w.optionBox.scrollTop=(x+1)*z}o(A);q.select(A)}else{if(y.keyCode==13){q.rollup();q.select(q.browseIndex)}}}}});for(var u=0;u<w.optionLis.length;u++){var v=w.optionLis[u];e.on(v,"click",function(x){e.stopEvent(x);q.select(g(this));q.rollup()});e.on(v,"mouseover",function(x){e.stopEvent(x);o(g(this))})}};var k=function(){var t=p,u=q.DATA;u.mask=l("iframe",{frameBorder:"0",width:u.optionBox.offsetWidth,height:u.optionBox.offsetHeight});f.setStyle(u.mask,"position","absolute");f.setStyle(u.mask,"left",f.getStyle(u.optionBox,"left"));f.setStyle(u.mask,"top",f.getStyle(u.optionBox,"top"));f.setStyle(u.mask,"visibility","hidden");f.setStyle(u.mask,"z-index",t.selectBoxZIndex);u.selectBox.appendChild(u.mask)};var g=function(t){return parseInt(t.id.replace("simulateOption",""))};var o=function(u){var t=q.DATA;if(t.optionLis[u].innerHTML!=""){f.removeClass(f.getElementsByClassName("currentLi","li",t.optionOl),"currentLi");f.addClass(t.optionLis[u],"currentLi");if(p.isStick&&f.get("allCate")){f.removeClass(f.get("allCate"),"currentLi")}}q.browseIndex=u};var l=function(t,u){var v=document.createElement(t);for(var w in u){if(w=="class"){f.addClass(v,u[w])}else{v.setAttribute(w,u[w])}}return v};var i=function(){var v=q.DATA,t=v.optionBox.getElementsByTagName("li")[v.optionBox.getElementsByTagName("li").length-1];if(!q.addNodeStatus){var w=document.createElement("div"),u=document.createElement("div");tAllCate=document.createTextNode("\u00A0 In All Categories"),liHeight=34,startTop=v.optionBox.offsetTop+v.optionBox.offsetHeight-liHeight,cateWidth=v.optionBox.clientWidth;u.className="stickSubLine";w.setAttribute("id","allCate");w.className="stickAllCate";w.style.cssText="top:"+startTop+"px;width:"+cateWidth+"px;";w.appendChild(u);w.appendChild(tAllCate);v.selectBox.appendChild(w);q.addNodeStatus=1}else{w=f.get("allCate");f.setStyle(w,"visibility","visible")}e.on(w,"click",function(x){e.stopEvent(x);q.select(g(t));q.rollup()});e.on(w,"mouseover",function(y){e.stopEvent(y);var z=g(t);var x=q.DATA;f.removeClass(f.getElementsByClassName("currentLi","li",x.optionOl),"currentLi");f.addClass(w,"currentLi");q.browseIndex=z})}}b.create=function(h){var g=new d();g.init(h);return g};b.ctor=d}).use(function(a){AE.widget.xSelector=a.ctor});
