function addHandler( type, el, handler ) {
	if( el.attachEvent ) {
		el.attachEvent( 'on'+type, handler );
	}
	else {
		el.addEventListener( type, handler, false );
	}
}

function extractLinksFromList( el ) {
	var liList = el.getElementsByTagName( 'li' );
	var theList = [];
	for( var i=0; i<liList.length; ++i ) {
		var li = liList[i];
		var aList = li.getElementsByTagName( 'a' );
		for( var j=0; j<aList.length; ++j ) {
			var a = aList[j];
			var item = {};
			item.text = a.innerHTML;
			item.href = a.href;
			theList.push(item);
		}
	}
	return theList;
}

function buildDropDownFromList( list, defaultText ) {
	var select = document.createElement( 'select' );

	if( defaultText ) {
		var option = document.createElement( 'option' );
		option.value = '';
		option.innerHTML = defaultText;
		select.appendChild( option );
	}
	
	for( var i=0; i <list.length; ++i ) {
		var item = list[i];
		var option = document.createElement( 'option' );
		option.value = item.href;
		option.innerHTML = item.text;
		select.appendChild( option );
	}
	
	addHandler( 'change', select,
		function(e) {
			if( !e ) {
				e = window.event;
			}
				
			var me = e.target || e.srcElement;
			
			if( me.value ) {
				top.location.href = me.value;
			}
		}
	);
	
	return select;
}

function enhanceRedirectSelector( titleId, listId ) {
	var title = document.getElementById( titleId );
	var selector =  document.getElementById( listId ) ;
	var theList = extractLinksFromList( selector );
	var dd = buildDropDownFromList( theList, title.innerHTML );
	selector.parentNode.insertBefore( dd, selector );
	selector.parentNode.removeChild( selector );
	title.parentNode.removeChild( title );
}
