	var _eui_gidx = 0;
	
	function EuiSelectBox(shadow) {
		this.shadow = shadow;
		this.visual = null;
		
		this.isAddedDocumentListener = false;
		_eui_gidx++;
	}
		
	EuiSelectBox.prototype.render = function() {
		var tag = 
		"<span class='eui-select-visual'>" +
			"<span class='title'>" +
				"<span class='text' style='width:" + this.shadow.css("width") +"'>" + $("option:selected", this.shadow).text() + "</span>" +
				"<span class='btn'><img src='/images/btn/btn_selectDown.gif'></span>" +
			"</span>" +
			"<span class='lists' style='width:" + (parseInt(this.shadow.css("width")) + 10) + "px'>";

		$("option", this.shadow).each(function() {
			tag += "<label class='item'>" + $(this).text() + "</label>";
		});
		
		tag +=
			"</span>" +
		"</span>";

		this.visual = $(tag).data("gidx", _eui_gidx);
		this.shadow.after(this.visual);
		this.addListener();
	}
	
	EuiSelectBox.prototype.addListener = function() {
		/*SelectBox ¸¦ Å¬¸¯ÇßÀ»¶§, list item toggle*/
		var visual = this.visual;
		var shadow = this.shadow;
		$(".title", visual).click(function() {
			$(".eui-select-visual").each(function() {
				if (visual.data("gidx") == $(this).data("gidx")) {
					$(".lists", visual).toggle();
				}
				else {
					/*ÀÚ½Å¿ÜÀÇ ´Ù¸¥ SelectBoxµéÀº Å¬¸¯½Ã list itemÀ» ´Ý¾ÆÁà¾ß ÇÑ´Ù.*/
					$(".lists", this).hide();
				}
			});
		});
		
		/*ItemÀ» Å¬¸¯ÇßÀ»¶§, ¿øº» SelectBoxÀÇ ÀÌº¥Æ®¸¦ Simulate*/
		$(".item", visual).click(function() {
			$(".text", visual).text($(this).text());
			$(".lists", visual).hide();
			
			/*onchange¼º°Ý¿¡ ¸Â°Ô ´Ù¸¥ ItemÀ» Å¬·¢ÇßÀ» °æ¿ì¸¸*/
			if (shadow.prop("selectedIndex") != $(this).index()) {	
				shadow.prop("selectedIndex", $(this).index());
				/*¿øº» SelectBoxÀÇ ÀÌº¥Æ®¸¦ È£Ãâ*/
				shadow.change();
			}
		});
		
		/*
			DocumentÀÇ ºó¿µ¿ªÀ» Å¬¸¯ÇßÀ» °æ¿ì, ÆîÃÄÁø SelectBox¸¦ ´Ý¾ÆÁØ´Ù.
			ÀÌ ÀÌº¥Æ®´Â ÇÏ³ª¸¸ µî·ÏµÇ¾î¾ß ÇÔÀ¸·Î, isAddedDocumentListener·Î AddÀ¯¹«¸¦ Ã¼Å©
		*/
		if (!this.isAddedDocumentListener) {
			$(document).click(function(e) {
				if(!$(e.target).parents(".eui-select-visual").length) {
					$(".eui-select-visual .lists").hide();
				}
			});
		}
		
		this.isAddedDocumentListener = true;
	}
	
	$(function() {
		$(".eui-select").each(function() {
			var euiSelectBox = new EuiSelectBox($(this));
			euiSelectBox.render();
		});
	});
