function selectReplacement(obj) {
	// append a class to the select
	obj.className += ' replaced';
	// create list for styling
	var ul = document.createElement('ul');
	ul.className = 'selectReplacement';
	var opts = obj.options,
		selectedOpt = 0;
	for (var i=0; i<opts.length; i++)
		if (opts[i].selected) {
			selectedOpt = i;
			break;
		}
	
	for (var i=0; i<opts.length; i++) {
		var li = document.createElement('li'),
			txt = document.createTextNode(opts[i].text);
        
		li.appendChild(txt);
        li.selIndex = opts[i].index;
        li.selectID = obj.id;
        li.onclick = function(e) { 
			selectMe(this,e);
		}
        
		if (i == selectedOpt) {
			li.className = 'selected';
			li.onclick = function() {
				this.parentNode.className += ' selectOpen';
				this.onclick = function(e) {
					selectMe(this, e);
				}
			}
        }
		if (window.attachEvent) {
			li.onmouseover = function() {
				this.className += ' hover';
			}
			li.onmouseout = function() {
				this.className = this.className.replace(new RegExp(" hover\\b"), '');
			}
		}
        ul.appendChild(li);
	}
	// add the input and the ul
	obj.parentNode.appendChild(ul);
}

function selectMe(obj, e) {
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();

	var lis = obj.parentNode.getElementsByTagName('li');
	for (var i=0; i<lis.length; i++) {
		if (lis[i] != obj) { // not the selected list item
			lis[i].className='';
			lis[i].onclick = function(e) {
				selectMe(this,e);
			}
		} 
		else {
			setVal(obj.selectID, obj.selIndex);
			obj.className='selected';
			obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
			obj.onclick = function() {
				obj.parentNode.className += ' selectOpen';
				this.onclick = function(e) {
					selectMe(this,e);
				}
			}
		}
	}
}

function setVal(objID, selIndex) {
	document.getElementById(objID).selectedIndex = selIndex;
}

function setForm() {
	var s = document.getElementsByTagName('select');
	for (var i=0; i<s.length; i++)
		selectReplacement(s[i]);
		
		

	$().click(function() {
			if($("div#category-select-wrap ul.selectReplacement").hasClass("selectOpen")) {
				$("div#category-select-wrap ul.selectReplacement").removeClass("selectOpen");
			}
		}
	);


	$("div#category-select-wrap ul.selectReplacement").click(function(event) {
		 event.stopPropagation();
		 $(this).addClass("selectOpen");
		 var elm = $(this).children("li.selected").get(0);
		 elm.onclick = function(e) {
		 	selectMe(elm,e);
		}
	});
	

}

window.onload = function() {
	(document.all && !window.print) ? null : setForm();
}