YAHOO.namespace("YAHOO.Hack").FixIESelectWidth=new function(){var oSelf=this;var YUE=YAHOO.util.Event;var YUD=YAHOO.util.Dom;var oTimer={};var oAnim={};var nTimerId=0;var dLastFocalItem;var ie7=!!(document.uniqueID&&typeof(XMLHttpRequest)!="undefined");function init(el){el=el||this;if(el.tagName.toLowerCase()!="select"){throw Error("element ["+el.id+"] is not <select>");return}if(!YUD.hasClass(el.parentNode,"select-box")){throw Error("className select-box is not included for element ["+el.id+"]");return}var oRs=el.runtimeStyle;var oPRs=el.parentNode.runtimeStyle;oPRs.fonSize=0;var sDisplay=el.parentNode.currentStyle.display.toLowerCase();if(sDisplay==""||sDisplay=="inline"||sDisplay=="inline-block"){oPRs.display="inline-block";oPRs.width=el.offsetWidth+"px";oPRs.height=el.offsetHeight+"px";oPRs.position="relative";oRs.position="absolute";oRs.top=0;oRs.left=0}el._timerId=(nTimerId+=1);el.selectedIndex=Math.max(0,el.selectedIndex);oTimer["_"+el._timerId]=setTimeout("void(0)",0);oAnim["A"+el._timerId]=setTimeout("void(0)",0);YUE.on(el,"mouseover",onMouseOver);YUE.on(document,"mousedown",onMouseDown,el,true);YUE.on(el,"change",collapseSelect,el,true)}function collapseSelect(e){status++;this.runtimeStyle.width=""}function onMouseOver(e){var el=this;if(dLastFocalItem&&dLastFocalItem!=el){onMouseDown.call(dLastFocalItem,e)}var sTimerId="_"+el._timerId;var sAniId="A"+el._timerId;clearTimeout(oTimer[sTimerId]);var onTween=function(){clearTimeout(oAnim[sAniId]);if(Math.abs(nEndWidth-nStartWidth)>3){nStartWidth+=(nEndWidth-nStartWidth)/3;el.runtimeStyle.width=nStartWidth+"px";oAnim[sAniId]=setTimeout(onTween,0)}else{el.runtimeStyle.width="auto";el.selectedIndex=Math.max(0,el.selectedIndex)}};var nStartWidth=el.offsetWidth;el.runtimeStyle.width="auto";var nEndWidth=el.offsetWidth;clearTimeout(oAnim[sAniId]);onTween();el.focus();dLastFocalItem=el}function onMouseDown(e,el){el=(e.srcElement||e.target);if(el==this&&e.type!="mouseover"){status++;YUE.stopEvent(e);return false}el=this;clearTimeout(oAnim["A"+el._timerId]);var sTimerId="_"+el._timerId;var doItLater=function(){el.runtimeStyle.width=""};if(e.type=="mouseover"){doItLater()}else{oTimer[sTimerId]=setTimeout(doItLater,100)}}function constructor(sId){sId=[sId,""].join("");if(document.uniqueID&&window.createPopup){YUE.onAvailable(sId,init);return true}else{return false}}return constructor};
