// JavaScript Document
function selectReplacement(obj) {
  obj.addClass('replaced');
  var ul = new Element('ul', {'class': 'selectReplacement'});
  var opts = obj.options;
  for (var i=0; i<opts.length; i++) {
	var selectedOpt;
	if (opts[i].selected) {
	  selectedOpt = i;
	  break;
	} else {
	  selectedOpt = 0;
	}
  }
  for (var i=0; i<opts.length; i++) {
	var li = new Element('li');
	li.setHTML(opts[i].text);
	li.selIndex = opts[i].index;
	li.selectID = obj.id;
	li.addEvent('click', function(e) {
		var ev = new Event(e);
		ev.stop;

	  	selectMe(ev.target);
	});
	if (i == selectedOpt) {
	  li.addClass('selected');
	  li.removeEvents('click');
	  li.addEvent('click',function(e) {
		var ev = new Event(e);
		ev.stop();

		ev.target.getParent().addClass('selectOpen');
		ev.target.removeEvents('click');
		ev.target.addEvent('click', function(e) {
			var ev = new Event(e);
			ev.stop();

		    selectMe(ev.target);
		});
	  });
	}
	li.addEvent('mouseenter', function(e){
		var ev = new Event(e);
		ev.stop();

		ev.target.addClass('hover');
	});
	li.addEvent('mouseleave', function(e){
		var ev = new Event(e);
		ev.stop();

		ev.target.removeClass('hover');
	});
	li.injectInside(ul);
  }
  ul.injectBefore(obj);
}
function selectMe(obj) {
	$ES('li', obj.getParent()).each(function(el) {
		if (el != obj) {
		  el.removeClass('selected');
  		  el.removeEvents('click');
		  el.addEvent('click', function(e) {
		  	var ev = new Event(e);
			ev.stop();

		  	selectMe(ev.target);
		  });
		} else {
		  $(obj.selectID).selectedIndex = obj.selIndex;
		  obj.addClass('selected');
		  obj.getParent().removeClass('selectOpen');
		  obj.removeEvents('click');
		  obj.addEvent('click', function(e){
				var ev = new Event(e);
				ev.stop();

					ev.target.getParent().addClass('selectOpen');
				ev.target.removeEvents('click');
				ev.target.addEvent('click', function(e){
					var ev = new Event(e);
					ev.stop();

					selectMe(ev.target);
				});
		  })
		}
  });
}

function initSelector() {
	window.addEvent('domready', function(e) {
		$ES('select').each(function(el) {
			selectReplacement(el);
		});
	});
}
