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('');
 	//Only fix for IE55 ~ IE7
 	
 	if(document.uniqueID && window.createPopup )
 	{
 	YUE.onAvailable(sId ,init );
 	return true;
 	
 	}else{return false};
 	};
 	
 	return constructor;
	} 