/*******************************************************************************
	SelectBox ½ºÅ©¸³Æ®
	
	»ç¿ë¹ý:
	1. Select Box »ý¼º
		var select1 = new Selectbox(formName, fieldName, onchange, ondblclick, attribute);
			select1:	SelectBox °´Ã¼¸í (º°µµÀÇ ÁöÁ¤µÈ º¯¼ö¸í)
			formName: 	Æû ÀÌ¸§
			fieldName: 	Select Box¿¡¼­ ¼±ÅÃÇÒ¶§ ÀÔ·ÂÇÒ ÇÊµå¸í (type=hiddenÀ¸·Î ÁöÁ¤)
			value:		±âº»°ª(±âº»°ª°ú ÀÏÄ¡ÇÏ´Â OptionÀÌ ÀÖÀ¸¸é "selected"·Î ¼³Á¤ÇÑ´Ù.)
			onchange:	°ªÀ» ¼±ÅÃÇÒ¶§ È£ÃâÇÒ ÇÔ¼ö
			ondblclick:	¸¶¿ì½º ´õºíÅ¬¸¯À¸·Î °ªÀ» ¼±ÅÃÇÒ ¶§ È£ÃâÇÒ ÇÔ¼ö
			attribute: 	Select Box ¼Ó¼º
				width=(¼ýÀÚ):	Select Box ³ÐÀÌ
				height=(¼ýÀÚ): 	Select Box ³ôÀÌ(Ãß°¡µÈ optionÀÇ Å©±â°¡ ÁöÁ¤µÈ ³ôÀÌº¸´Ù Å«
								°æ¿ì¿¡´Â ½ºÅ©·Ñ, ÀÛÀº°æ¿ì´Â ÀÛÀº°ªÀ¸·Î ÁöÁ¤)
				size=(¼ýÀÚ):	Select BoxÀÇ Çü½Ä(1:ÄÞº¸¹Ú½º, 2:¹Ú½º)
				multiple=(yes|no):	°ªÀ» ¿©·¯°³ ¼±ÅÃÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ

		ex) var select1 = new Selectbox("form1", "text1", "func1()", "func2()", "width=200,height=200,size=1,multiple=no");				

	2. Option Ãß°¡
		select1.addOption(text, value, selected);
			text:		¿É¼Ç ÅØ½ºÆ®
			value:		¿É¼Ç °ª
			selected:	±âº» ¼±ÅÃµÈ°ª ("selected" ¶Ç´Â "")

		ex) select1.addOption("¼±ÅÃ1", "value1", "selected");
		
	3. Option »èÁ¦ 
		select1.removeOption(index);
		* index°ªÀÌ ¾øÀ» °æ¿ì ¸ðµÎ »èÁ¦ÇÑ´Ù.
		
	4. ¼±ÅÃµÈ Option °ª °¡Á®¿À±â
		var value = select1.getSelectedValue();
		* "multiple=yes" ÀÎ °æ¿ì °ªÀ» ArrayÇü½ÄÀ¸·Î ¹ÝÈ¯ÇÑ´Ù.
		
	5. ¼±ÅÃµÈ Option ÅØ½ºÆ® °¡Á®¿À±â
		var value = select1.getSelectedText();
		* "multiple=yes" ÀÎ °æ¿ì °ªÀ» ArrayÇü½ÄÀ¸·Î ¹ÝÈ¯ÇÑ´Ù.	
	
	6. ¼±ÅÃµÈ Option Index °¡Á®¿À±â
		var value = select1.getSelectedIndex();
		* "multiple=yes" ÀÎ °æ¿ì °ªÀ» ArrayÇü½ÄÀ¸·Î ¹ÝÈ¯ÇÑ´Ù.
	 
	7. ¼±ÅÃµÈ Option ¸ðµÎ »èÁ¦
		select1.removeSelectedOption();
	
	8. SelectBox ºñÈ°¼º
		select1.disable();
		
	9. SelectBox È°¼º
		select1.enable();
	
	Author: Kim Kyoung shil
*******************************************************************************/

// Select Box ÀÌ¹ÌÁö °æ·Î
//var selectboxImgPath		= "/lmsdata/images/";
var selectboxImgPath		= lmsIconPath;

// Select Box Å×µÎ¸® »ö»ó --> conf¿¡ Á¤ÀÇ
//var selectboxLineColor1	= "black";
//var selectboxLineColor2	= "black";

// Select Box ¹è°æ»ö --> conf¿¡ Á¤ÀÇ
//var selectboxBgColor		= "white";

// Select Box ÆùÆ® ÁöÁ¤
var selectboxFontSize		= "9pt"
var selectboxFontFamily		= "±¼¸²";

var selectboxAddCount		= 0;
var currentSelectBox		= null;

/**
 * Select Box »ý¼º
 */
function Selectbox(formName, fieldName, value, onchange, ondblclick, attribute) {

	var boxWidth		= getAttributeValue(attribute, "width");
	var boxHeight		= getAttributeValue(attribute, "height");
	var value			= nullToEmpty(value);
	var size			= nullToEmpty(getAttributeValue(attribute, "size"));
	var multiple		= nullToEmpty(getAttributeValue(attribute, "multiple"));
	var zindex			= nullToEmpty(getAttributeValue(attribute, "zindex"));
	
	if (size == "") {
		size = "1";
	}
	
	if (multiple == "yes" || multiple == "y" || multiple == "true" || multiple == "multiple") {
		size = "2";
		multiple = "multiple";
	}

	selectboxAddCount += 1;

	var selectboxId = "SELECTBOX"+selectboxAddCount;	
	
	// Select Box Ãâ·Â
	var selectboxStr = "";
	
	if (size == "1" && zindex == "") {
		selectboxStr = "<div id="+selectboxId+" onClick=\"displaySelectbox(this, '"+selectboxId+"')\"></div>";
	}else if(zindex == "1"){		
		selectboxStr = "<div id="+selectboxId+" onClick=\"displaySelectbox1(this, '"+selectboxId+"')\"></div>";
	}else {
		selectboxStr = "<div id="+selectboxId+" ></div>";
	}
	
	var fieldStr    = "<select name="+fieldName+" size="+size+" style='display:none' "+multiple+"></select>";
	
	document.write(fieldStr);
	
	document.write(selectboxStr);
	
	var selectboxObj = getObject(selectboxId);
	selectboxObj.formName			= formName;
	selectboxObj.fieldName			= fieldName;
	selectboxObj.onchangef			= onchange;
	selectboxObj.ondblclick			= nullToEmpty(ondblclick);
	selectboxObj.multiple			= multiple;
	selectboxObj.zindex				= zindex;
	selectboxObj.size				= size;	
	selectboxObj.selectedOptionId	= "";
	selectboxObj.optionArray		= new Array();	
	selectboxObj.disabled			= false;
	//selectboxObj.style.border		= "1px solid "+selectboxLineColor;
	selectboxObj.style.borderTop		= "1px solid "+selectboxLineColor1;
	selectboxObj.style.borderLeft		= "1px solid "+selectboxLineColor1;
	selectboxObj.style.borderRight		= "1px solid "+selectboxLineColor2;
	selectboxObj.style.borderBottom		= "1px solid "+selectboxLineColor2;
	selectboxObj.style.width		= boxWidth+"px";
	selectboxObj.style.backgroundColor = selectboxBgColor;

	var optionStyle = "";
	if (size == "1") {
		selectboxObj.style.height	= "18px";
		
		optionStyle = "overflow:hidden;font-size:"+selectboxFontSize+";"
			+ "font-family:"+selectboxFontFamily+";";
		if (browserType == "IE") {
			optionStyle += "padding-top:3px;text-overflow:ellipsis;";
		}
	}
	else {
		selectboxObj.style.height	= boxHeight+"px";
		
		optionStyle = "overflow:auto;font-size:"+selectboxFontSize+";"
			+ "font-family:"+selectboxFontFamily+";height:"+boxHeight+"px;";
	}

	var tbWidth = boxWidth - 20;
	
	var selectObjectStr = "";
	if (size == "1") {
		selectObjectStr = "<table border=0 cellspacing=0 cellpadding=0><tr><td width="+boxWidth+">"
			+ "<table style='table-layout:fixed;' border=0 cellspacing=0 cellpadding=1 width=100% height=100%><tr>"
			+ "<td id='"+selectboxId+"_value' nowrap style=\""+optionStyle+"\"></td>"
			+ "</tr></table>"
			+ "</td>"
			+ "<td>"
			+ "<table border=0 cellspacing=0 cellpadding=1 height=100%><tr>"
			+ "<td><img src=\""+selectboxImgPath+"icon_selectbox.gif\"></td>"
			+ "</tr></table>"
			+ "</td>";
			+ "</tr></table>";
	}
	else {
		selectObjectStr = "<div id='"+selectboxId+"_value' style='"+optionStyle+"'></div>";
	}
		
	selectboxObj.innerHTML = selectObjectStr;
	var valueObj = getObject(selectboxId+"_value");

	// Option Ç¥½Ã ¹Ú½º
	if (size == "1") {
		document.write("<div id="+selectboxId+"_optionBox></div>");
		var optionBox = getObject(selectboxId+"_optionBox");
		optionBox.style.position		= "absolute";
		optionBox.style.borderTop		= "1px solid "+selectboxLineColor1;
		optionBox.style.borderLeft		= "1px solid "+selectboxLineColor1;
		optionBox.style.borderRight		= "1px solid "+selectboxLineColor2;
		optionBox.style.borderBottom	= "1px solid "+selectboxLineColor2;
		optionBox.style.width			= boxWidth+"px";
		optionBox.style.height			= "18px";
		optionBox.style.background		= selectboxBgColor;
		optionBox.style.display			= "none";
		optionBox.style.overflow		= "auto";
		optionBox.style.scrollbarFaceColor		= "#FFFFFF";
		optionBox.style.scrollbarShadowColor	= "#FFFFFF"; 
		optionBox.style.scrollbarHighlightColor	= "#FFFFFF"; 
		optionBox.style.scrollbarTrackColor		= "#E9E9E9"; 
		optionBox.style.scrollbarArrowColor		= "#A3A3A3";
		optionBox.selectbox	= selectboxObj;
	}
	else {
		valueObj.style.scrollbarFaceColor		= "#FFFFFF";
		valueObj.style.scrollbarShadowColor		= "#FFFFFF"; 
		valueObj.style.scrollbarHighlightColor	= "#FFFFFF"; 
		valueObj.style.scrollbarTrackColor		= "#E9E9E9"; 
		valueObj.style.scrollbarArrowColor		= "#A3A3A3";
	}
	
	this.selectboxId	= selectboxId;
	this.selectboxObj	= selectboxObj;
	this.inputFleid		= getObject(selectboxId+"_input");
	this.selectedValue	= value;
	this.valueObj		= valueObj;
	this.optionBox		= optionBox;
	this.optionBoxTb	= getObject(selectboxId+"_tb");
	this.optionCount	= 0;
	this.boxHeight		= boxHeight;
	this.addSelectboxOption 	= addSelectboxOption;
	this.removeSelectboxOption	= removeSelectboxOption;
	this.resizeOptionBox		= resizeOptionBox;
	
	this.addOption	 			= addSelectboxOption;		// ¿É¼Ç Ãß°¡
	this.removeOption			= removeSelectboxOption;	// ¿É¼Ç »èÁ¦
	this.getSelectedValue		= getSelectboxOptionValue;	// ¼±ÅÃµÈ ¿É¼Ç°ª °¡Á®¿À±â
	this.getSelectedText		= getSelectboxOptionText;	// ¼±ÅÃµÈ ¿É¼Ç ÅØ½ºÆ® °¡Á®¿À±â
	this.getSelectedIndex		= getSelectboxOptionIndex;	// ¼±ÅÃµÈ ¿É¼Ç Index °¡Á®¿À±â
	this.removeSelectedOption	= removeSelectboxSelectedOption;	// ¼±ÅÃµÈ ¿É¼Ç »èÁ¦
	this.disable				= disableSelectbox;
	this.enable					= enableSelectbox;
}


/**
 * Option Box Ç¥½Ã
 */
function displaySelectbox(obj, selectboxId) {
	var selectboxObj = getObject(selectboxId);
	if (selectboxObj.disabled == true) {
		return false;
	}
	
	var optionBox = getObject(selectboxId+"_optionBox");

	/*
	if (optionBox.moved != true) {
		var pos = getPosition(obj);
		moveObject(optionBox, pos.y + getHeight(obj), pos.x);
		optionBox.moved = true;
	}
	*/
	
	// ±âÁ¸¿¡ Ç¥½ÃµÈ Option Box°¡ ÀÖÀ¸¸é ´Ý±â
	if (currentSelectBox != null && 
			getObjectId(currentSelectBox) != selectboxId+"_optionBox") {
		offDisplay(currentSelectBox);
		currentSelectBox = null;		
	}
	
	var displayStyle = optionBox.style.display;
	if (displayStyle == "block") {
		offDisplay(optionBox);
		currentSelectBox = null;		
	}
	else {
		var selectboxPos 	= getPosition(optionBox.selectbox);
		var optionTop		= getTopPosition(optionBox);
		var selectboxHeight	= getHeight(optionBox.selectbox);
		var optionHeight	= parseInt(optionBox.optionHeight)
		var bottomEdge		= selectboxPos.y + selectboxHeight + optionHeight;
		var scrollY			= getScrollY();
		var docHeight		= getWindowHeight() + scrollY;

		if (bottomEdge > docHeight) {
			var newTop = selectboxPos.y - optionHeight;
			if (browserType == "NE") {
				newTop -= 2;
			}
			moveObject(optionBox, newTop, "");
		}
		else {
			if ((optionTop+scrollY) > selectboxPos.y) {
				var newTop = selectboxPos.y + selectboxHeight;
				moveObject(optionBox, newTop, "");
			}
		}

		makeOnTop(optionBox);
		onDisplay(optionBox);
		currentSelectBox = optionBox;		
	}
}

function selectbox_hidden(layer_id) 
    { 
        //var ly = eval(layer_id); 
        var ly = document.getElementById(layer_id); 
		
        // ·¹ÀÌ¾î ÁÂÇ¥ 
        var ly_left  = ly.offsetLeft; 
        var ly_top    = ly.offsetTop; 
        var ly_right  = ly.offsetLeft + ly.offsetWidth; 
        var ly_bottom = ly.offsetTop + ly.offsetHeight; 

        // ¼¿·ºÆ®¹Ú½ºÀÇ ÁÂÇ¥ 
        var el;        
        for (i=0; i<document.forms.length; i++) { 
            for (k=0; k<document.forms[i].length; k++) { 
                el = document.forms[i].elements[k];                
                if (el.type == "select-one") { // ¼¿·ºÆ® ¹Ú½ºÀÏ¶§
                    var el_left = el_top = 0; 
                    var obj = el; 
                    if (obj.offsetParent) { 
                        while (obj.offsetParent) { 
                            el_left += obj.offsetLeft; 
                            el_top  += obj.offsetTop; 
                            obj = obj.offsetParent; 
                        } 
                    } 
                    el_left  += el.clientLeft; 
                    el_top    += el.clientTop; 
                    el_right  = el_left + el.clientWidth; 
                    el_bottom = el_top + el.clientHeight; 

                    // ÁÂÇ¥¸¦ µûÁ® ·¹ÀÌ¾î°¡ ¼¿·ºÆ® ¹Ú½º¸¦ Ä§¹üÇßÀ¸¸é ¼¿·ºÆ® ¹Ú½º¸¦ hidden ½ÃÅ´
                   // if ( (el_left >= ly_left && el_top >= ly_top && el_left <= ly_right && el_top <= ly_bottom) || 
                   //     (el_right >= ly_left && el_right <= ly_right && el_top >= ly_top && el_top <= ly_bottom) || 
                   //     (el_left >= ly_left && el_bottom >= ly_top && el_right <= ly_right && el_bottom <= ly_bottom) || 
                   //     (el_left >= ly_left && el_left <= ly_right && el_bottom >= ly_top && el_bottom <= ly_bottom) ) 
                        el.style.visibility = 'hidden'; 
                } 
            } 
        } 
    } 

    // °¨Ãß¾îÁø ¼¿·ºÆ® ¹Ú½º¸¦ ¸ðµÎ º¸ÀÌ°Ô ÇÔ 
function selectbox_visible() 
    { 
        for (i=0; i<document.forms.length; i++) { 
            for (k=0; k<document.forms[i].length; k++) { 
                el = document.forms[i].elements[k];    
                if (el.type == "select-one" && el.style.visibility == 'hidden') 
                    el.style.visibility = 'visible'; 
            } 
        } 
    }


function displaySelectbox1(obj, selectboxId) {
	var optionBox = getObject(selectboxId+"_optionBox");

	/*
	if (optionBox.moved != true) {
		var pos = getPosition(obj);
		moveObject(optionBox, pos.y + getHeight(obj), pos.x);
		optionBox.moved = true;
	}
	*/
	
	// ±âÁ¸¿¡ Ç¥½ÃµÈ Option Box°¡ ÀÖÀ¸¸é ´Ý±â
	if (currentSelectBox != null && 
			getObjectId(currentSelectBox) != selectboxId+"_optionBox") {
		offDisplay(currentSelectBox);
		currentSelectBox = null;
	}
	
	var displayStyle = optionBox.style.display;
	if (displayStyle == "block") {
		offDisplay(optionBox);
		currentSelectBox = null;
		//if(this.zindex == "1")
		selectbox_visible();
	}
	else {
		var selectboxPos 	= getPosition(optionBox.selectbox);
		var optionTop		= getTopPosition(optionBox);
		var selectboxHeight	= getHeight(optionBox.selectbox);
		var optionHeight	= parseInt(optionBox.optionHeight)
		var bottomEdge		= selectboxPos.y + selectboxHeight + optionHeight;
		var scrollY			= getScrollY();
		var docHeight		= getWindowHeight() + scrollY;

		if (bottomEdge > docHeight) {
			var newTop = selectboxPos.y - optionHeight;
			if (browserType == "NE") {
				newTop -= 2;
			}
			moveObject(optionBox, newTop, "");
		}
		else {
			if ((optionTop+scrollY) > selectboxPos.y) {
				var newTop = selectboxPos.y + selectboxHeight;
				moveObject(optionBox, newTop, "");
			}
		}

		makeOnTop(optionBox);
		onDisplay(optionBox);
		currentSelectBox = optionBox;
		//if(this.zindex == "1")
		selectbox_hidden(selectboxId);		
	}
}


/**
 * Option Ãß°¡
 */
function addSelectboxOption(text, value, selected) {
	selected = nullToEmpty(selected);
	if (selected == "yes" || selected == "y" || selected == "true" || selected == "selected") {
		selected = true;
	}
	else if (this.selectedValue == value) {
		selected = true;
	}
	else {
		selected = false;
	}

	if (this.optionCount == 0 && this.size  == "1") {
		this.optionBox.style.height	= "18px";
	}

	var selectboxId		= this.selectboxId;
	var optionId 		= this.selectboxId+"_option"+this.optionCount;
	
	var option 			= document.createElement("div");
	option.id			= optionId;
	option.text			= text;
	option.value		= value;
	option.optionCount	= this.optionCount;
	option.style.height	= "18px";
	option.onselectstart  = function() {return false;};
	option.ondragstart    = function() {return false;};
	this.selectboxObj.optionArray[this.optionCount] = optionId;
	
	var overType = "";
	if (this.selectboxObj.size == "1") {
		overType = "onMouseOver=\"onSelectColor(this)\" onMouseOut=\"offSelectColor(this)\"";
	}
	
	var optionStr = "<table border=0 cellspacing=0 cellpadding=0 width=100% height=100%><tr>"
		+ "<td id='"+optionId+"_td' nowrap style=\"font-size:"+selectboxFontSize+";"
		+ "font-family:"+selectboxFontFamily+";cursor:default\" "
		+ "onClick=\"selectSelectboxOption(this, '"+selectboxId+"','"+optionId+"')\" "
		+ "ondblclick=\"dblclickSelectboxOption(this, '"+selectboxId+"','"+optionId+"')\" "
		+ overType+">"
		+ text
		+ "</td></tr></table>";
	option.innerHTML = optionStr;

	if (this.selectboxObj.size == "1") {
		this.optionBox.appendChild(option);
		// Option box ³ôÀÌ °è»ê
		this.resizeOptionBox();
	}
	else {
		this.valueObj.appendChild(option);
	}

	var optionTd =  getObject(optionId+"_td");
	
	if (this.selectboxObj.size == "1" && this.optionCount == 0) {
		optionTd.selected = true;
		onSelectColor(optionTd);
		this.selectboxObj.selectedOptionId = optionId;
		this.valueObj.innerHTML = text;
	}
	else if (selected == true) {
		if (this.selectboxObj.size == "1") {
			this.valueObj.innerHTML = text;
		}
		
		if (this.selectboxObj.multiple != "multiple") {
			var prevOptionTd = getObject(this.selectboxObj.selectedOptionId+"_td");
			offSelectColor(prevOptionTd);
		}
		
		optionTd.selected = true;
		onSelectColor(optionTd);
		this.selectboxObj.selectedOptionId = optionId;
	}
	else {
		optionTd.selected = false;
	}

	var selectForm = document.forms[this.selectboxObj.formName].elements[this.selectboxObj.fieldName];
	var newOption = new Option(text, value, false, false);
	selectForm.options[this.optionCount] = newOption;
	
	if (optionTd.selected == true) {
		selectForm.options[this.optionCount].selected = true;
	}
	
	this.optionCount += 1;
}


/**
 * Option Box ³ôÀÌ °è»ê
 */
function resizeOptionBox() {
	var optionHeight = (this.optionCount+1) * 18 + 2;
	if (optionHeight > this.boxHeight) {
		optionHeight = this.boxHeight;
	}
	if (getHeight(this.optionBox) < this.boxHeight) {
		this.optionBox.style.height	= optionHeight+"px";
	}
	this.optionBox.optionHeight = optionHeight;
}


/**
 * OptionId¿¡ ´ëÇÑ index°ª °¡Á®¿À±â
 */
function getOptionIndex(selectboxObj, optionId) {
	var optionArray = selectboxObj.optionArray;
	var index = -1;
	for (var i=0; i<selectboxObj.optionArray.length; i++) {
		if (optionId == selectboxObj.optionArray[i]) {
			index = i;
			break;
		}
	}
	return index;
}


/**
 * Option ¼±ÅÃ
 */
function selectSelectboxOption(optionTd, selectboxId, optionId) {
	var selectboxObj	= getObject(selectboxId);
	if (selectboxObj.disabled == true) {
		return false;
	}
	var optionObj 		= getObject(optionId);
	var index			= getOptionIndex(selectboxObj, optionId);
	var optionField		= document.forms[selectboxObj.formName].elements[selectboxObj.fieldName].options[index];
	if (selectboxObj.size == "1") {
		var valueObj		= getObject(selectboxId+"_value");
		valueObj.innerHTML	= optionObj.text;
		onSelectColor(optionTd);
		optionField.selected = true;
	}
	else {
		if (selectboxObj.multiple == "multiple") {
			var opSelected = optionTd.selected;
			if (opSelected == true) {
				offSelectColor(optionTd)
				optionTd.selected 		= false;
				optionField.selected 	= false;
			}
			else {
				onSelectColor(optionTd);
				optionTd.selected 		= true;
				optionField.selected 	= true;
			}
		}
		else {
			onSelectColor(optionTd);
			optionField.selected = true;
			var selectedOptionId = selectboxObj.selectedOptionId;
			if (selectedOptionId != "" && selectedOptionId != optionId) {
				var prevOptionTd = getObject(selectedOptionId+"_td");
				offSelectColor(prevOptionTd);
			}
		}
	}
	selectboxObj.selectedOptionId = optionId;
	var optionBox 		= getObject(selectboxId+"_optionBox");
	currentSelectBox 	= null;
	offDisplay(optionBox);
	if (selectboxObj.onchangef != "") {
		eval(selectboxObj.onchangef);
	}
}


/**
 * ¸¶¿ì½º ´õºíÅ¬¸¯½Ã ½ÇÇà ÇÔ¼ö È£Ãâ
 */
function dblclickSelectboxOption(optionTd, selectboxId, optionId) {
	var selectboxObj	= getObject(selectboxId);
	var optionObj 		= getObject(optionId);
	if (selectboxObj.multiple == "multiple") {
		var index			= getOptionIndex(selectboxObj, optionId);
		var optionField		= document.forms[selectboxObj.formName].elements[selectboxObj.fieldName].options[index];
		onSelectColor(optionTd);
		optionTd.selected = true;
		optionField.selected = true;
	}
	
	if (selectboxObj.ondblclick != "") {
		eval(selectboxObj.ondblclick);
	}
}


/**
 * Option »èÁ¦
 */
function removeSelectboxOption(index) {
	var selectField = document.forms[this.selectboxObj.formName].elements[this.selectboxObj.fieldName];
	var fleldLength = selectField.length;

	for (var i=0; i<=fleldLength; i++) {
		if (index == null) {
			selectField.options[0] = null;
		}
		else if (index == i) {
			selectField.options[i] = null;
		}
	}
	
	// ÁöÁ¤µÈ index°¡ ¾øÀ¸¸é ¸ðµÎ »èÁ¦
	if (index == null) {
		if (this.selectboxObj.size == "1") {
			this.optionBox.innerHTML 	= "";
			this.valueObj.innerHTML		= "";
			this.optionBox.style.height	= "18px";
			this.optionCount			= 0;
		}
		else {
			this.valueObj.innerHTML		= "";
			this.optionCount			= 0;
		}
		this.selectboxObj.optionArray = new Array();
	}
	// ÁöÁ¤µÈ index Ç×¸ñ »èÁ¦
	else {
		var optionId 	= this.selectboxObj.optionArray.splice(index, 1);
		var optionObj 	= getObject(optionId);
		if (this.selectboxObj.size == "1") {
			this.optionBox.removeChild(optionObj);
		}
		else {
			this.valueObj.removeChild(optionObj);
		}
	}
}


/**
 * ¼±ÅÃÇÑ °ª °¡Á®¿À±â
 */
function getSelectboxOptionValue() {
	var selectField = document.forms[this.selectboxObj.formName].elements[this.selectboxObj.fieldName];
	
	if (this.selectboxObj.multiple == "multiple") {
		var values = new Array();
		var count = 0;
		for (var i=0; i<selectField.length; i++) {
			if (selectField.options[i].selected == true) {
				values[count] = selectField.options[i].value;
				count += 1;
			}
		}
		return values;
	}
	else {
		return selectField.value;
	}
}


/**
 * ¼±ÅÃÇÑ °ªÀÇ ÅØ½ºÆ® °¡Á®¿À±â
 */
function getSelectboxOptionText() {
	var selectField = document.forms[this.selectboxObj.formName].elements[this.selectboxObj.fieldName];
	
	if (this.selectboxObj.multiple == "multiple") {
		var values = new Array();
		var count = 0;
		for (var i=0; i<selectField.length; i++) {
			if (selectField.options[i].selected == true) {
				values[count] = selectField.options[i].text;
				count += 1;
			}
		}
		return values;
	}
	else {
		var idx = selectField.selectedIndex;
		return selectField.options[idx].text;
	}
}


/**
 * ¼±ÅÃÇÑ °ªÀÇ Index °¡Á®¿À±â
 */
function getSelectboxOptionIndex() {
	var selectField = document.forms[this.selectboxObj.formName].elements[this.selectboxObj.fieldName];
	
	if (this.selectboxObj.multiple == "multiple") {
		var values = new Array();
		var count = 0;
		for (var i=0; i<selectField.length; i++) {
			if (selectField.options[i].selected == true) {
				values[count] = i;
				count += 1;
			}
		}
		return values;
	}
	else {
		return selectField.selectedIndex;
	}
}


/**
 * ¼±ÅÃµÈ ¿É¼Çµé¸¸ »èÁ¦
 */
function removeSelectboxSelectedOption() {
	var index = this.getSelectedIndex();
	
	while (index.length > 0) {
		this.removeOption(index.pop());
	}
}


/**
 * SelectBox ºñÈ°¼º
 */
function disableSelectbox() {
	this.selectboxObj.disabled = true;
}


/**
 * SelectBox È°¼º
 */
function enableSelectbox() {
	this.selectboxObj.disabled = false;
}
