/* 
 * 	File Name : SelectGuide.js 
 *	 
 *	2002.11.07 	by franksop
 *	modified	: 2002.12.04
 */

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 #AFB086; cursor:hand;";
var ScrollBarStyle = " scrollbar-face-color:#FFFFFF;scrollbar-shadow-color:#AEADAB;"
		+"scrollbar-highlight-color:#AEADAB;scrollbar-3dlight-color:#EEEEEE;"
		+"scrollbar-darkshadow-color:#EEEEEE;scrollbar-track-color:#EEEEEE;"
		+"scrollbar-arrow-color:#AEADAB;";
var ItemStyle = "text-indent:2px;cursor:hand;font-size:9pt;height:16px;padding-top:2px;";
var ALTStyle = "'filter:alpha(opacity=100); border:1 solid #AFB086'";

document.onmousedown = dispList;
SList = new Array();

function setSelectList(pSrc, pBG, pKin)
{
    this.IDX = SList.length;
    this.src = pSrc;
    this.bgcolor = pBG;
    this.goKin = pKin;		// ´õ ¸¹Àº Áö½ÄÀÎ º¸±â¸¦ À§ÇØ
    this.hideList = true;

    /* SelectList Object */
    this.Table;
    this.Title;
    this.List;
    this.Items;
    this.SelectedItemName;

    this.width;
    this.getWidth = getWidth;

    /* 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;

    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
	goKin	: go kinsearch 
*/
function SelectList(htmlSrc, bg, goKin)
{
    if ( UserAgent.indexOf("MSIE") < 0 || AppVersion < 5 ) {
	document.write(htmlSrc);

	return;
    } else { 
	if ( !bg ) bg = "#FEFFCB";
	var SListObj = new setSelectList(htmlSrc, bg, goKin);
	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 < 10 ) { scrollbarStyle = "hidden"; }
    else { scrollbarStyle = "scroll"; ListHeight = 160; }

    this.List = createObject(""
        +"<DIV id=bground style='"+ContourStyle+ScrollBarStyle
	+"z-index:1;background:"+this.bgcolor+";position:absolute;visibility:hidden;"
	+"width:"+(this.width+18)+";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=18 border=0"+TableCellAttr
	+" style='background-color:"+this.bgcolor+";'><tr>\n"
	+"<td width="+this.width+" nowrap></td>"
	+"<td style='display:none;'></td>"
	+"<td width=14><img src='http://static.naver.com/search/images5/arrow.gif' border=0></td>"
	+"</tr></table>");

    SelectedItemObj = createObject(""
	+"<div style='position:absolute;font-size:9pt;top:4px;left:2px;'>"+this.SelectedItemName
	+"</div>");

    TitleItem.cells(0).appendChild(SelectedItemObj);
    TitleItem.cells(1).appendChild(this.Items);

    this.Title = createObject(""
        +"<DIV style='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 = "#225688";
    f.style.color = "white";

    return;
}

function ListMouseOutEventHandler(f)
{
    f.style.background = this.bgcolor;
    f.style.color = "black";

    return;
}

function ListMouseDownEventHandler(f)
{
    var TChildren = this.Title.children(0).cells;
    var obj_length = this.Items.length;

    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;
	}
    }
    if ( this.goKin && ( obj_length - 1 ) == f.idx ) 
	location.href = this.Items.options[f.idx].value;

    this.SelectedItemName = SI_Name;
    TChildren(1).childNodes(0).outerHTML = this.Items.outerHTML;

    this.List.style.visibility = "hidden";

    return;
}

function getWidth()
{
    document.all.sl_Div.innerHTML = this.Items.outerHTML;
    this.width = document.all.sl_Div.scrollWidth - 20;

    return;
}

/* Select Guide ALT function 
	t : this
	f : form name 
	e : event
*/
var timeoutID;

function showSelectGuide(f, e)
{
    if ( UserAgent.indexOf("MSIE") < 0 || AppVersion < 5 ) return;
    else 
    {
	var realWidth = document.body.clientWidth - 148;
	var divWidth = document.all.sl_Div.scrollWidth;
    }

    document.all.sl_Div.style.visibility = "visible";

    if ( e.x < realWidth / 2 )
	document.all.sl_Div.style.left = e.x+document.body.scrollLeft + 5;
    else
	document.all.sl_Div.style.left = e.x+document.body.scrollLeft - divWidth -5;
    
    document.all.sl_Div.style.top = e.y + document.body.scrollTop + 5;

    return;
}

function showSelectGuide_ALT(t, f, e)
{
    if ( UserAgent.indexOf("MSIE") < 0 || AppVersion < 5 ) return;
    else 
    {
	var selected_index = 0;
	var sub_name, sub_url;
	var select_obj = f.u;
	var realWidth = document.body.clientWidth - 148;
	var meanWidth = realWidth / 2;
	var divWidth = document.all.sl_Div.scrollWidth;

	clearTimeout(timeoutID);

	if (select_obj.length) {
	    for ( i = 0; i < select_obj.length; i++ ) {
		if ( select_obj.options[i].selected ) {
		    selected_index = i;
		    sub_name = select_obj.options[i].innerText;
		    sub_url = select_obj.options[i].value;
		}
	    }
	} else sub_url = f.u.value;

	if ( sub_url.length >= 70 ) { 
	    sub_url = sub_url.substring(0, 60); 
	    sub_url = sub_url + "...";
	}
	
	if ( f.desc ) {
	    sub_url = f.desc.options[selected_index].innerText;
	}

	guide = ""
	    +"<table height=20 bgcolor=#FEFFCB"+TableCellAttr
	    +" style="+ALTStyle+"><tr><td style="+ItemStyle+">"
	    +"<font color=black style='font-size:9pt'>"+sub_url+"</font>"
	    +"</td><td width=10 nowrap></td></tr></table>";

	document.all.sl_Div.innerHTML = guide;
	document.all.sl_Div.style.visibility = "visible";

	if ( e.x < realWidth / 2 )
	    document.all.sl_Div.style.left = e.x+document.body.scrollLeft + 5;
	else
	    document.all.sl_Div.style.left = e.x+document.body.scrollLeft - divWidth -5;
	
	document.all.sl_Div.style.top = e.y + document.body.scrollTop + 5;
    }

    return;
}

function hideSelectGuide_ALT()
{
    document.all.sl_Div.style.visibility = "hidden";

    return;
}

