/* 
 * 	File Name : SelectGuide.js 
 *	 
 *	2002.11.07 	by franksop
 *	modified	: 2002.12.04
  *    2003.3.28 modified by Choi Song Ho : EventHandler Γί°‘
 */

var UserAgent = navigator.userAgent;
var AppVersion = (((navigator.appVersion.split('; '))[1].split(' '))[1]);

var SListMD = false;
var SListIDX = 0;

var TableCellAttr = " cellpadding=0 cellspacing=0";
var ContourStyle = " border:1px solid #bfbfbf; cursor:hand;";
var ScrollBarStyle = " scrollbar-face-color:#ffffff;scrollbar-shadow-color:#ffffff;"
		+"scrollbar-highlight-color:#ffffff;scrollbar-3dlight:#000000;"
		+"scrollbar-darkshadow-color:#d4d0c8;scrollbar-track-color:#ffffff;"
		+"scrollbar-arrow-color:#b3b3b3;";
var ItemStyle = "text-indent:2px;cursor:hand;font-size:9pt;color:#555555;height:14px;padding-top:2px;";


document.onmousedown = dispList;
SList = new Array();

function setSelectList(pSrc, pBG, strOnChangeEventHandlerName,strOnBeforeChangeEventHandlerName)
{
    this.IDX = SList.length;
    this.src = pSrc;
    this.bgcolor = pBG;
    this.hideList = true;

    /* SelectList Object */
    this.Table;
    this.Title;
    this.List;
    this.Items;
    this.SelectedItemName;

    this.width;
    this.getWidth = getWidth;
    
    // added by Choi, Song Ho
    this.strOnChangeEventHandlerName = strOnChangeEventHandlerName;
    this.strOnBeforeChangeEventHandlerName = strOnBeforeChangeEventHandlerName;    

    /* Create SelectList Object Function */
    this.itemObj = createObject;
    this.ListObj = createSListList;
    this.TitleObj = createSListTitle;
    this.TableObj = createSList;


    /* Select List Event Handler */
    this.TitleMouseDown = TitleMouseDownEventHandler;
    this.ListMouseOver = ListMouseOverEventHandler;
    this.ListMouseOut = ListMouseOutEventHandler;
    this.ListMouseDown = ListMouseDownEventHandler;
    
    // added by Choi
    this.SetItemSelected = SetListSelectedItem;
    //----------
    
    
    this.append = appendSList; 
    this.TableObj();

    SList[this.IDX] = this;

    return;
}

function appendSList()
{
    document.write("<div id=TempDiv></div>\n");
    document.all.TempDiv.appendChild(this.Table);
    document.all.TempDiv.removeNode();

    return;
}

/* Select Guide List function 
	htmlSrc	: SelectList html source 
	bg	: back ground color
	
	strOnChangeEventHandlerName : added by Choi Song Ho
	strOnBeforeChangeEventHandlerName : added by Choi Song Ho	
*/
function SelectList(htmlSrc, bg, strOnChangeEventHandlerName, strOnBeforeChangeEventHandlerName)
{
    if ( UserAgent.indexOf("MSIE") < 0 || AppVersion < 5 ) {
	document.write(htmlSrc);

	return;
    } else { 
	if ( !bg ) bg = "#ffffff";
	var SListObj = new setSelectList(htmlSrc, bg,strOnChangeEventHandlerName,strOnBeforeChangeEventHandlerName);
	SListObj.append();

	return SListObj;
    }
}

function createObject(pSrc)
{
    oObj = new Object();
    oObj.Div = document.createElement("DIV");
    oObj.Div.insertAdjacentHTML("afterBegin", pSrc);
    this.Items = oObj.Div.children(0);

    return this.Items;
}

function createSListList()
{
    var ListItem = "";
    var ListLength = this.Items.length;
    var ListHeight;
    var scrollbarStyle = "";

    for ( i = 0; i < ListLength; i++ ) {
        ListItem += "<DIV id=List idx="+i+" style="+ItemStyle
	    +" onMouseDown='SList["+this.IDX+"].ListMouseDown(this);'"
	    +" onMouseOver='SList["+this.IDX+"].ListMouseOver(this);'"
	    +" onMouseOut='SList["+this.IDX+"].ListMouseOut(this);'>"
	    +this.Items[i].innerText+"</DIV>";
    }

    if ( ListLength < 4 ) { scrollbarStyle = "hidden"; }
    else { scrollbarStyle = "scroll"; ListHeight = 74; }

    this.List = createObject(""
        +"<DIV id=bground style='"+ContourStyle+ScrollBarStyle
	+"z-index:1;background:"+this.bgcolor+";color:#f2f2f2; position:absolute;visibility:hidden;"
	+"width:"+(this.width+23)+";height:"+ListHeight+";overflow-Y:"+scrollbarStyle+";'>"
        +ListItem+"</DIV>");

    return;
}

function createSListTitle()
{
    var MaxLength = 0;
    var width;
    var ListLength = this.Items.length;

    for ( i = 0; i < ListLength; i++ ) {
	if (this.Items.options[i].selected) {
	    this.SelectedItemName = this.Items.options[i].innerText;
	    SelectedItemValue = this.Items.options[i].value;
	}
    }

    this.getWidth();
	
    TitleItem = createObject(""
	+"<table height=16 border=0"+TableCellAttr
	+" style='background-color:"+this.bgcolor+";'><tr>\n"
	+"<td width="+this.width+" nowrap></td>"
	+"<td style='display:none;'></td>"
	+"<td style='padding:0 1 0 5'><img src='../_images/common/arrow_001.gif' border=0></td>"
	+"</tr></table>");
	
    SelectedItemObj = createObject(""
	+"<div style='position:absolute;font-size:9pt;color:#555555;top:2px;left:2px;'>"+this.SelectedItemName
	+"</div>");

    TitleItem.cells(0).appendChild(SelectedItemObj);
    TitleItem.cells(1).appendChild(this.Items);

    this.Title = createObject(""
        +"<DIV style='color:#f2f2f2; position:relative;top:0px;left:0px;"+ContourStyle
	+"' onMouseDown='SList["+this.IDX+"].TitleMouseDown();'>"
        +TitleItem.outerHTML+"</DIV>");

    return;
}

function createSList()
{
    this.itemObj(this.src);
    this.TitleObj();
    this.ListObj();

    this.Table = createObject(""
        +"<table border=0"+TableCellAttr+">\n" 
	+"<tr><td></td></tr>"
        +"</table>");

    this.Table.cells(0).appendChild(this.Title);
    this.Table.cells(0).appendChild(this.List);

    return;
}

function dispList()
{
    var hideList = true;
    if ( event.srcElement.id == "bground") hideList = false; 
    if ( !SListMD ) {
	for ( i = 0; i < SList.length; i++ ) {
	    SList[i].hideList = true; 
	}
    }

    if ( SList.length > 0 ) {
	for ( i = 0; i < SList.length; i++ ) {
	    if ( SList[i].hideList && hideList )
		SList[i].List.style.visibility = "hidden";
	}

	SListMD = false;
	SList[SListIDX].Title.children(0).cells(0).childNodes(0).innerText = SList[SListIDX].SelectedItemName;
    }

    return;
}

function TitleMouseDownEventHandler()
{
    if ( this.List.style.visibility == "visible" ) {
	this.List.style.visibility = "hidden";
	this.hideList = true;
    } else { 
	this.List.style.visibility = "visible";
	this.hideList = false;
    }

    for ( i = 0; i < SList.length; i++ )
	if ( i != this.IDX ) SList[i].hideList = true;

    SList[SListIDX].Title.children(0).cells(0).childNodes(0).innerText = SList[SListIDX].SelectedItemName;
    SListMD = true;
    SListIDX = this.IDX;

    return;
}

function ListMouseOverEventHandler(f)
{
    f.style.background = "#f2f2f2";
    f.style.color = "#555555";

    return;
}

function ListMouseOutEventHandler(f)
{
    f.style.background = this.bgcolor;
    f.style.color = "#555555";

    return;
}

function ListMouseDownEventHandler(f)
{
    var TChildren = this.Title.children(0).cells;
    var obj_length = this.Items.length;
    var SI_Val; // by Choi, Song Ho

    for ( i = 0; i < obj_length; i++ ) {
	this.Items.options[i].selected = false;
	if ( i == f.idx ) {
	    this.Items.options[i].selected = true;
	    SI_Name = this.Items.options[i].innerText;
	    SI_Val = this.Items.options[i].value; // by Choi, Song Ho
	}
    }

	// added by Choi Song Ho
    if ( this.strOnBeforeChangeEventHandlerName != null )
    	if (! eval(this.strOnBeforeChangeEventHandlerName+ "('" + SI_Name + "' , '" + SI_Val + "');") )
    		return false;


    this.SelectedItemName = SI_Name;
    TChildren(1).childNodes(0).outerHTML = this.Items.outerHTML;

    this.List.style.visibility = "hidden";
    
    // added by Choi Song Ho
    if ( this.strOnChangeEventHandlerName != null )
    	eval(this.strOnChangeEventHandlerName+ "('" + SI_Name + "' , '" + SI_Val + "');");

    return;
}

// added by Choi
function SetListSelectedItem(no)
{
    
    var TChildren = this.Title.children(0).cells;
    var obj_length = this.Items.length;
    var SI_Val; // by Choi, Song Ho

    for ( i = 0; i < obj_length; i++ ) {
	this.Items.options[i].selected = false;
	if ( i == no ) {
	    this.Items.options[i].selected = true;
	    SI_Name = this.Items.options[i].innerText;
	  //  SI_Val = this.Items.options[i].value; // by Choi, Song Ho
	}
    }


    this.SelectedItemName = SI_Name;
    TChildren(1).childNodes(0).outerHTML = this.Items.outerHTML;

   this.Title.children(0).cells(0).childNodes(0).innerText = SI_Name;

    this.List.style.visibility = "hidden";

    return;
}
// ------------------

function getWidth()
{
    document.all.sl_Div.innerHTML = this.Items.outerHTML;
    this.width = document.all.sl_Div.scrollWidth - 23;

    return;
}
